crewly 1.0.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 (1208) hide show
  1. package/LICENSE +21 -0
  2. package/README.md +96 -0
  3. package/config/auto-assign/default-config.yaml +74 -0
  4. package/config/constants.d.ts.map +1 -0
  5. package/config/constants.test.ts +469 -0
  6. package/config/constants.ts +827 -0
  7. package/config/continuation/prompts/continue-work.md +60 -0
  8. package/config/continuation/prompts/max-iterations.md +41 -0
  9. package/config/continuation/prompts/quality-gates-failed.md +37 -0
  10. package/config/continuation/prompts/retry-error.md +59 -0
  11. package/config/continuation/prompts/task-assignment.md +60 -0
  12. package/config/index.d.ts.map +1 -0
  13. package/config/index.ts +87 -0
  14. package/config/orchestrator_tasks/prompts/assign-task-orchestrator-prompt-template.md +70 -0
  15. package/config/orchestrator_tasks/prompts/checkin-orchestrator-prompt-template.md +138 -0
  16. package/config/orchestrator_tasks/prompts/orchestrator-prompt.md +68 -0
  17. package/config/orchestrator_tasks/prompts/project-start-orchestrator-prompt-template.md +104 -0
  18. package/config/quality-gates/default-gates.test.ts +246 -0
  19. package/config/quality-gates/default-gates.ts +191 -0
  20. package/config/quality-gates/index.ts +21 -0
  21. package/config/roles/_common/memory-instructions.md +56 -0
  22. package/config/roles/architect/prompt.md +87 -0
  23. package/config/roles/architect/role.json +13 -0
  24. package/config/roles/backend-developer/prompt.md +86 -0
  25. package/config/roles/backend-developer/role.json +13 -0
  26. package/config/roles/designer/prompt.md +86 -0
  27. package/config/roles/designer/role.json +13 -0
  28. package/config/roles/developer/prompt.md +94 -0
  29. package/config/roles/developer/role.json +13 -0
  30. package/config/roles/frontend-developer/prompt.md +86 -0
  31. package/config/roles/frontend-developer/role.json +13 -0
  32. package/config/roles/fullstack-dev/prompt.md +86 -0
  33. package/config/roles/fullstack-dev/role.json +13 -0
  34. package/config/roles/generalist/prompt.md +87 -0
  35. package/config/roles/generalist/role.json +13 -0
  36. package/config/roles/orchestrator/prompt.md +865 -0
  37. package/config/roles/orchestrator/role.json +13 -0
  38. package/config/roles/product-manager/prompt.md +86 -0
  39. package/config/roles/product-manager/role.json +13 -0
  40. package/config/roles/qa/prompt.md +86 -0
  41. package/config/roles/qa/role.json +13 -0
  42. package/config/roles/qa-engineer/prompt.md +86 -0
  43. package/config/roles/qa-engineer/role.json +13 -0
  44. package/config/roles/sales/prompt.md +86 -0
  45. package/config/roles/sales/role.json +13 -0
  46. package/config/roles/support/prompt.md +86 -0
  47. package/config/roles/support/role.json +13 -0
  48. package/config/roles/tpm/prompt.md +87 -0
  49. package/config/roles/tpm/role.json +13 -0
  50. package/config/runtime_scripts/initialize_claude.sh +14 -0
  51. package/config/runtime_scripts/initialize_codex.sh +14 -0
  52. package/config/runtime_scripts/runtime-config.json +26 -0
  53. package/config/skills/_common/lib.sh +64 -0
  54. package/config/skills/agent/_common/lib.sh +4 -0
  55. package/config/skills/agent/accept-task/execute.sh +21 -0
  56. package/config/skills/agent/accept-task/instructions.md +20 -0
  57. package/config/skills/agent/accept-task/skill.json +20 -0
  58. package/config/skills/agent/block-task/execute.sh +26 -0
  59. package/config/skills/agent/block-task/instructions.md +22 -0
  60. package/config/skills/agent/block-task/skill.json +20 -0
  61. package/config/skills/agent/check-quality-gates/execute.sh +20 -0
  62. package/config/skills/agent/check-quality-gates/instructions.md +23 -0
  63. package/config/skills/agent/check-quality-gates/skill.json +20 -0
  64. package/config/skills/agent/complete-task/execute.sh +26 -0
  65. package/config/skills/agent/complete-task/instructions.md +22 -0
  66. package/config/skills/agent/complete-task/skill.json +20 -0
  67. package/config/skills/agent/get-my-context/execute.sh +23 -0
  68. package/config/skills/agent/get-my-context/instructions.md +21 -0
  69. package/config/skills/agent/get-my-context/skill.json +20 -0
  70. package/config/skills/agent/get-sops/execute.sh +24 -0
  71. package/config/skills/agent/get-sops/instructions.md +21 -0
  72. package/config/skills/agent/get-sops/skill.json +20 -0
  73. package/config/skills/agent/get-team-status/execute.sh +8 -0
  74. package/config/skills/agent/get-team-status/instructions.md +17 -0
  75. package/config/skills/agent/get-team-status/skill.json +20 -0
  76. package/config/skills/agent/manage-knowledge/execute.sh +60 -0
  77. package/config/skills/agent/manage-knowledge/instructions.md +46 -0
  78. package/config/skills/agent/nano-banana-image/.env +2 -0
  79. package/config/skills/agent/nano-banana-image/.env.example +6 -0
  80. package/config/skills/agent/nano-banana-image/generate.sh +73 -0
  81. package/config/skills/agent/nano-banana-image/instructions.md +50 -0
  82. package/config/skills/agent/nano-banana-image/skill.json +39 -0
  83. package/config/skills/agent/query-knowledge/execute.sh +30 -0
  84. package/config/skills/agent/query-knowledge/instructions.md +47 -0
  85. package/config/skills/agent/query-knowledge/skill.json +20 -0
  86. package/config/skills/agent/read-task/execute.sh +15 -0
  87. package/config/skills/agent/read-task/instructions.md +19 -0
  88. package/config/skills/agent/read-task/skill.json +20 -0
  89. package/config/skills/agent/recall/execute.sh +24 -0
  90. package/config/skills/agent/recall/instructions.md +23 -0
  91. package/config/skills/agent/recall/skill.json +20 -0
  92. package/config/skills/agent/record-learning/execute.sh +29 -0
  93. package/config/skills/agent/record-learning/instructions.md +24 -0
  94. package/config/skills/agent/record-learning/skill.json +20 -0
  95. package/config/skills/agent/register-self/execute.sh +28 -0
  96. package/config/skills/agent/register-self/instructions.md +18 -0
  97. package/config/skills/agent/register-self/skill.json +20 -0
  98. package/config/skills/agent/remember/execute.sh +29 -0
  99. package/config/skills/agent/remember/instructions.md +24 -0
  100. package/config/skills/agent/remember/skill.json +20 -0
  101. package/config/skills/agent/report-progress/execute.sh +28 -0
  102. package/config/skills/agent/report-progress/instructions.md +25 -0
  103. package/config/skills/agent/report-progress/skill.json +20 -0
  104. package/config/skills/agent/report-status/execute.sh +35 -0
  105. package/config/skills/agent/report-status/instructions.md +36 -0
  106. package/config/skills/agent/report-status/skill.json +20 -0
  107. package/config/skills/agent/send-chat-response/execute.sh +26 -0
  108. package/config/skills/agent/send-chat-response/instructions.md +22 -0
  109. package/config/skills/agent/send-chat-response/skill.json +20 -0
  110. package/config/skills/agent/send-message/execute.sh +17 -0
  111. package/config/skills/agent/send-message/instructions.md +20 -0
  112. package/config/skills/agent/send-message/skill.json +20 -0
  113. package/config/skills/agent/send-pdf-to-slack/execute.sh +182 -0
  114. package/config/skills/agent/send-pdf-to-slack/instructions.md +49 -0
  115. package/config/skills/agent/send-pdf-to-slack/skill.json +20 -0
  116. package/config/skills/chrome-browser/instructions.md +42 -0
  117. package/config/skills/chrome-browser/skill.json +39 -0
  118. package/config/skills/nano-banana-image/.env +2 -0
  119. package/config/skills/nano-banana-image/.env.example +6 -0
  120. package/config/skills/nano-banana-image/generate.sh +73 -0
  121. package/config/skills/nano-banana-image/instructions.md +50 -0
  122. package/config/skills/nano-banana-image/skill.json +39 -0
  123. package/config/skills/orchestrator/_common/lib.sh +4 -0
  124. package/config/skills/orchestrator/assign-task/execute.sh +11 -0
  125. package/config/skills/orchestrator/assign-task/instructions.md +17 -0
  126. package/config/skills/orchestrator/assign-task/skill.json +20 -0
  127. package/config/skills/orchestrator/assign-team-to-project/execute.sh +14 -0
  128. package/config/skills/orchestrator/assign-team-to-project/instructions.md +20 -0
  129. package/config/skills/orchestrator/assign-team-to-project/skill.json +20 -0
  130. package/config/skills/orchestrator/broadcast/execute.sh +35 -0
  131. package/config/skills/orchestrator/broadcast/instructions.md +19 -0
  132. package/config/skills/orchestrator/broadcast/skill.json +20 -0
  133. package/config/skills/orchestrator/cancel-schedule/execute.sh +13 -0
  134. package/config/skills/orchestrator/cancel-schedule/instructions.md +19 -0
  135. package/config/skills/orchestrator/cancel-schedule/skill.json +20 -0
  136. package/config/skills/orchestrator/complete-task/execute.sh +10 -0
  137. package/config/skills/orchestrator/complete-task/instructions.md +17 -0
  138. package/config/skills/orchestrator/complete-task/skill.json +20 -0
  139. package/config/skills/orchestrator/create-project/execute.sh +14 -0
  140. package/config/skills/orchestrator/create-project/instructions.md +21 -0
  141. package/config/skills/orchestrator/create-project/skill.json +20 -0
  142. package/config/skills/orchestrator/create-team/execute.sh +14 -0
  143. package/config/skills/orchestrator/create-team/instructions.md +21 -0
  144. package/config/skills/orchestrator/create-team/skill.json +20 -0
  145. package/config/skills/orchestrator/delegate-task/execute.sh +37 -0
  146. package/config/skills/orchestrator/delegate-task/instructions.md +23 -0
  147. package/config/skills/orchestrator/delegate-task/skill.json +20 -0
  148. package/config/skills/orchestrator/get-agent-logs/execute.sh +14 -0
  149. package/config/skills/orchestrator/get-agent-logs/instructions.md +20 -0
  150. package/config/skills/orchestrator/get-agent-logs/skill.json +20 -0
  151. package/config/skills/orchestrator/get-agent-status/execute.sh +22 -0
  152. package/config/skills/orchestrator/get-agent-status/instructions.md +19 -0
  153. package/config/skills/orchestrator/get-agent-status/skill.json +20 -0
  154. package/config/skills/orchestrator/get-project-overview/execute.sh +7 -0
  155. package/config/skills/orchestrator/get-project-overview/instructions.md +17 -0
  156. package/config/skills/orchestrator/get-project-overview/skill.json +20 -0
  157. package/config/skills/orchestrator/get-tasks/execute.sh +27 -0
  158. package/config/skills/orchestrator/get-tasks/instructions.md +17 -0
  159. package/config/skills/orchestrator/get-tasks/skill.json +20 -0
  160. package/config/skills/orchestrator/get-team-status/execute.sh +7 -0
  161. package/config/skills/orchestrator/get-team-status/instructions.md +17 -0
  162. package/config/skills/orchestrator/get-team-status/skill.json +20 -0
  163. package/config/skills/orchestrator/heartbeat/execute.sh +37 -0
  164. package/config/skills/orchestrator/heartbeat/instructions.md +24 -0
  165. package/config/skills/orchestrator/heartbeat/skill.json +20 -0
  166. package/config/skills/orchestrator/list-subscriptions/execute.sh +7 -0
  167. package/config/skills/orchestrator/list-subscriptions/instructions.md +17 -0
  168. package/config/skills/orchestrator/list-subscriptions/skill.json +20 -0
  169. package/config/skills/orchestrator/query-knowledge/execute.sh +30 -0
  170. package/config/skills/orchestrator/query-knowledge/instructions.md +47 -0
  171. package/config/skills/orchestrator/query-knowledge/skill.json +20 -0
  172. package/config/skills/orchestrator/recall/execute.sh +13 -0
  173. package/config/skills/orchestrator/recall/instructions.md +23 -0
  174. package/config/skills/orchestrator/recall/skill.json +20 -0
  175. package/config/skills/orchestrator/record-failure/execute.sh +13 -0
  176. package/config/skills/orchestrator/record-failure/instructions.md +22 -0
  177. package/config/skills/orchestrator/record-failure/skill.json +20 -0
  178. package/config/skills/orchestrator/record-learning/execute.sh +13 -0
  179. package/config/skills/orchestrator/record-learning/instructions.md +23 -0
  180. package/config/skills/orchestrator/record-learning/skill.json +20 -0
  181. package/config/skills/orchestrator/record-success/execute.sh +13 -0
  182. package/config/skills/orchestrator/record-success/instructions.md +22 -0
  183. package/config/skills/orchestrator/record-success/skill.json +20 -0
  184. package/config/skills/orchestrator/register-self/execute.sh +24 -0
  185. package/config/skills/orchestrator/register-self/instructions.md +21 -0
  186. package/config/skills/orchestrator/register-self/skill.json +20 -0
  187. package/config/skills/orchestrator/remember/execute.sh +15 -0
  188. package/config/skills/orchestrator/remember/instructions.md +24 -0
  189. package/config/skills/orchestrator/remember/skill.json +20 -0
  190. package/config/skills/orchestrator/reply-slack/execute.sh +174 -0
  191. package/config/skills/orchestrator/reply-slack/instructions.md +52 -0
  192. package/config/skills/orchestrator/reply-slack/skill.json +20 -0
  193. package/config/skills/orchestrator/restart-crewly/execute.sh +7 -0
  194. package/config/skills/orchestrator/restart-crewly/instructions.md +23 -0
  195. package/config/skills/orchestrator/restart-crewly/skill.json +20 -0
  196. package/config/skills/orchestrator/resume-session/execute.sh +22 -0
  197. package/config/skills/orchestrator/resume-session/instructions.md +31 -0
  198. package/config/skills/orchestrator/resume-session/skill.json +20 -0
  199. package/config/skills/orchestrator/schedule-check/execute.sh +35 -0
  200. package/config/skills/orchestrator/schedule-check/instructions.md +35 -0
  201. package/config/skills/orchestrator/schedule-check/skill.json +20 -0
  202. package/config/skills/orchestrator/send-key/execute.sh +17 -0
  203. package/config/skills/orchestrator/send-message/execute.sh +17 -0
  204. package/config/skills/orchestrator/send-message/instructions.md +20 -0
  205. package/config/skills/orchestrator/send-message/skill.json +20 -0
  206. package/config/skills/orchestrator/send-pdf-to-slack/execute.sh +182 -0
  207. package/config/skills/orchestrator/send-pdf-to-slack/instructions.md +49 -0
  208. package/config/skills/orchestrator/send-pdf-to-slack/skill.json +20 -0
  209. package/config/skills/orchestrator/set-goal/execute.sh +13 -0
  210. package/config/skills/orchestrator/set-goal/instructions.md +21 -0
  211. package/config/skills/orchestrator/set-goal/skill.json +20 -0
  212. package/config/skills/orchestrator/start-agent/execute.sh +15 -0
  213. package/config/skills/orchestrator/start-agent/instructions.md +20 -0
  214. package/config/skills/orchestrator/start-agent/skill.json +20 -0
  215. package/config/skills/orchestrator/start-team/execute.sh +14 -0
  216. package/config/skills/orchestrator/start-team/instructions.md +20 -0
  217. package/config/skills/orchestrator/start-team/skill.json +20 -0
  218. package/config/skills/orchestrator/stop-agent/execute.sh +15 -0
  219. package/config/skills/orchestrator/stop-agent/instructions.md +20 -0
  220. package/config/skills/orchestrator/stop-agent/skill.json +20 -0
  221. package/config/skills/orchestrator/stop-team/execute.sh +13 -0
  222. package/config/skills/orchestrator/stop-team/instructions.md +19 -0
  223. package/config/skills/orchestrator/stop-team/skill.json +20 -0
  224. package/config/skills/orchestrator/subscribe-event/execute.sh +19 -0
  225. package/config/skills/orchestrator/subscribe-event/instructions.md +21 -0
  226. package/config/skills/orchestrator/subscribe-event/skill.json +20 -0
  227. package/config/skills/orchestrator/terminate-agent/execute.sh +13 -0
  228. package/config/skills/orchestrator/terminate-agent/instructions.md +19 -0
  229. package/config/skills/orchestrator/terminate-agent/skill.json +20 -0
  230. package/config/skills/orchestrator/unsubscribe-event/execute.sh +13 -0
  231. package/config/skills/orchestrator/unsubscribe-event/instructions.md +19 -0
  232. package/config/skills/orchestrator/unsubscribe-event/skill.json +20 -0
  233. package/config/skills/orchestrator/update-focus/execute.sh +13 -0
  234. package/config/skills/orchestrator/update-focus/instructions.md +21 -0
  235. package/config/skills/orchestrator/update-focus/skill.json +20 -0
  236. package/config/skills/playwright-chrome-browser/instructions.md +95 -0
  237. package/config/skills/playwright-chrome-browser/skill.json +44 -0
  238. package/config/sops/common/blocker-handling.md +55 -0
  239. package/config/sops/common/communication-protocol.md +52 -0
  240. package/config/sops/developer/coding-standards.md +54 -0
  241. package/config/sops/developer/git-workflow.md +58 -0
  242. package/config/sops/developer/testing-requirements.md +62 -0
  243. package/config/sops/pm/progress-tracking.md +57 -0
  244. package/config/sops/pm/task-decomposition.md +59 -0
  245. package/config/sops/qa/testing-procedures.md +60 -0
  246. package/config/task_assignment/prompts/target-agent-assignment-prompt.md +119 -0
  247. package/config/task_starters/build_e2e_test_plan_prompt.json +51 -0
  248. package/config/task_starters/build_spec_prompt.json +79 -0
  249. package/config/task_starters/build_tasks_prompt.json +55 -0
  250. package/config/task_starters/prompts/build_spec_step1_project_requirements.md +120 -0
  251. package/config/task_starters/prompts/build_spec_step2_technical_design.md +147 -0
  252. package/config/task_starters/prompts/build_spec_step3_integration_testing.md +196 -0
  253. package/config/task_starters/prompts/build_tasks_step1_milestone_structure.md +274 -0
  254. package/config/task_starters/prompts/e2e_test_plan_step1_build_tests.md +391 -0
  255. package/config/task_starters/prompts/e2e_test_plan_step2_run_tests.md +240 -0
  256. package/dist/backend/backend/src/constants.d.ts +669 -0
  257. package/dist/backend/backend/src/constants.d.ts.map +1 -0
  258. package/dist/backend/backend/src/constants.js +482 -0
  259. package/dist/backend/backend/src/constants.js.map +1 -0
  260. package/dist/backend/backend/src/controllers/api.controller.d.ts +115 -0
  261. package/dist/backend/backend/src/controllers/api.controller.d.ts.map +1 -0
  262. package/dist/backend/backend/src/controllers/api.controller.js +427 -0
  263. package/dist/backend/backend/src/controllers/api.controller.js.map +1 -0
  264. package/dist/backend/backend/src/controllers/chat/chat.controller.d.ts +160 -0
  265. package/dist/backend/backend/src/controllers/chat/chat.controller.d.ts.map +1 -0
  266. package/dist/backend/backend/src/controllers/chat/chat.controller.js +555 -0
  267. package/dist/backend/backend/src/controllers/chat/chat.controller.js.map +1 -0
  268. package/dist/backend/backend/src/controllers/chat/chat.routes.d.ts +18 -0
  269. package/dist/backend/backend/src/controllers/chat/chat.routes.d.ts.map +1 -0
  270. package/dist/backend/backend/src/controllers/chat/chat.routes.js +39 -0
  271. package/dist/backend/backend/src/controllers/chat/chat.routes.js.map +1 -0
  272. package/dist/backend/backend/src/controllers/chat/index.d.ts +10 -0
  273. package/dist/backend/backend/src/controllers/chat/index.d.ts.map +1 -0
  274. package/dist/backend/backend/src/controllers/chat/index.js +10 -0
  275. package/dist/backend/backend/src/controllers/chat/index.js.map +1 -0
  276. package/dist/backend/backend/src/controllers/event-bus/event-bus.controller.d.ts +54 -0
  277. package/dist/backend/backend/src/controllers/event-bus/event-bus.controller.d.ts.map +1 -0
  278. package/dist/backend/backend/src/controllers/event-bus/event-bus.controller.js +123 -0
  279. package/dist/backend/backend/src/controllers/event-bus/event-bus.controller.js.map +1 -0
  280. package/dist/backend/backend/src/controllers/event-bus/event-bus.routes.d.ts +15 -0
  281. package/dist/backend/backend/src/controllers/event-bus/event-bus.routes.d.ts.map +1 -0
  282. package/dist/backend/backend/src/controllers/event-bus/event-bus.routes.js +27 -0
  283. package/dist/backend/backend/src/controllers/event-bus/event-bus.routes.js.map +1 -0
  284. package/dist/backend/backend/src/controllers/index.d.ts +10 -0
  285. package/dist/backend/backend/src/controllers/index.d.ts.map +1 -0
  286. package/dist/backend/backend/src/controllers/index.js +37 -0
  287. package/dist/backend/backend/src/controllers/index.js.map +1 -0
  288. package/dist/backend/backend/src/controllers/knowledge/index.d.ts +7 -0
  289. package/dist/backend/backend/src/controllers/knowledge/index.d.ts.map +1 -0
  290. package/dist/backend/backend/src/controllers/knowledge/index.js +7 -0
  291. package/dist/backend/backend/src/controllers/knowledge/index.js.map +1 -0
  292. package/dist/backend/backend/src/controllers/knowledge/knowledge.controller.d.ts +71 -0
  293. package/dist/backend/backend/src/controllers/knowledge/knowledge.controller.d.ts.map +1 -0
  294. package/dist/backend/backend/src/controllers/knowledge/knowledge.controller.js +237 -0
  295. package/dist/backend/backend/src/controllers/knowledge/knowledge.controller.js.map +1 -0
  296. package/dist/backend/backend/src/controllers/knowledge/knowledge.routes.d.ts +24 -0
  297. package/dist/backend/backend/src/controllers/knowledge/knowledge.routes.d.ts.map +1 -0
  298. package/dist/backend/backend/src/controllers/knowledge/knowledge.routes.js +34 -0
  299. package/dist/backend/backend/src/controllers/knowledge/knowledge.routes.js.map +1 -0
  300. package/dist/backend/backend/src/controllers/marketplace/index.d.ts +11 -0
  301. package/dist/backend/backend/src/controllers/marketplace/index.d.ts.map +1 -0
  302. package/dist/backend/backend/src/controllers/marketplace/index.js +11 -0
  303. package/dist/backend/backend/src/controllers/marketplace/index.js.map +1 -0
  304. package/dist/backend/backend/src/controllers/marketplace/marketplace.controller.d.ts +135 -0
  305. package/dist/backend/backend/src/controllers/marketplace/marketplace.controller.d.ts.map +1 -0
  306. package/dist/backend/backend/src/controllers/marketplace/marketplace.controller.js +228 -0
  307. package/dist/backend/backend/src/controllers/marketplace/marketplace.controller.js.map +1 -0
  308. package/dist/backend/backend/src/controllers/marketplace/marketplace.routes.d.ts +30 -0
  309. package/dist/backend/backend/src/controllers/marketplace/marketplace.routes.d.ts.map +1 -0
  310. package/dist/backend/backend/src/controllers/marketplace/marketplace.routes.js +44 -0
  311. package/dist/backend/backend/src/controllers/marketplace/marketplace.routes.js.map +1 -0
  312. package/dist/backend/backend/src/controllers/memory/index.d.ts +11 -0
  313. package/dist/backend/backend/src/controllers/memory/index.d.ts.map +1 -0
  314. package/dist/backend/backend/src/controllers/memory/index.js +11 -0
  315. package/dist/backend/backend/src/controllers/memory/index.js.map +1 -0
  316. package/dist/backend/backend/src/controllers/memory/memory.controller.d.ts +183 -0
  317. package/dist/backend/backend/src/controllers/memory/memory.controller.d.ts.map +1 -0
  318. package/dist/backend/backend/src/controllers/memory/memory.controller.js +505 -0
  319. package/dist/backend/backend/src/controllers/memory/memory.controller.js.map +1 -0
  320. package/dist/backend/backend/src/controllers/memory/memory.routes.d.ts +30 -0
  321. package/dist/backend/backend/src/controllers/memory/memory.routes.d.ts.map +1 -0
  322. package/dist/backend/backend/src/controllers/memory/memory.routes.js +46 -0
  323. package/dist/backend/backend/src/controllers/memory/memory.routes.js.map +1 -0
  324. package/dist/backend/backend/src/controllers/messaging/delivery-logs.controller.d.ts +5 -0
  325. package/dist/backend/backend/src/controllers/messaging/delivery-logs.controller.d.ts.map +1 -0
  326. package/dist/backend/backend/src/controllers/messaging/delivery-logs.controller.js +21 -0
  327. package/dist/backend/backend/src/controllers/messaging/delivery-logs.controller.js.map +1 -0
  328. package/dist/backend/backend/src/controllers/messaging/messaging.controller.d.ts +72 -0
  329. package/dist/backend/backend/src/controllers/messaging/messaging.controller.d.ts.map +1 -0
  330. package/dist/backend/backend/src/controllers/messaging/messaging.controller.js +164 -0
  331. package/dist/backend/backend/src/controllers/messaging/messaging.controller.js.map +1 -0
  332. package/dist/backend/backend/src/controllers/messaging/messaging.routes.d.ts +15 -0
  333. package/dist/backend/backend/src/controllers/messaging/messaging.routes.d.ts.map +1 -0
  334. package/dist/backend/backend/src/controllers/messaging/messaging.routes.js +31 -0
  335. package/dist/backend/backend/src/controllers/messaging/messaging.routes.js.map +1 -0
  336. package/dist/backend/backend/src/controllers/messaging/scheduled-messages.controller.d.ts +10 -0
  337. package/dist/backend/backend/src/controllers/messaging/scheduled-messages.controller.d.ts.map +1 -0
  338. package/dist/backend/backend/src/controllers/messaging/scheduled-messages.controller.js +223 -0
  339. package/dist/backend/backend/src/controllers/messaging/scheduled-messages.controller.js.map +1 -0
  340. package/dist/backend/backend/src/controllers/monitoring/file-watcher.controller.d.ts +121 -0
  341. package/dist/backend/backend/src/controllers/monitoring/file-watcher.controller.d.ts.map +1 -0
  342. package/dist/backend/backend/src/controllers/monitoring/file-watcher.controller.js +392 -0
  343. package/dist/backend/backend/src/controllers/monitoring/file-watcher.controller.js.map +1 -0
  344. package/dist/backend/backend/src/controllers/monitoring/monitoring.routes.d.ts +9 -0
  345. package/dist/backend/backend/src/controllers/monitoring/monitoring.routes.d.ts.map +1 -0
  346. package/dist/backend/backend/src/controllers/monitoring/monitoring.routes.js +15 -0
  347. package/dist/backend/backend/src/controllers/monitoring/monitoring.routes.js.map +1 -0
  348. package/dist/backend/backend/src/controllers/monitoring/terminal.controller.d.ts +117 -0
  349. package/dist/backend/backend/src/controllers/monitoring/terminal.controller.d.ts.map +1 -0
  350. package/dist/backend/backend/src/controllers/monitoring/terminal.controller.js +705 -0
  351. package/dist/backend/backend/src/controllers/monitoring/terminal.controller.js.map +1 -0
  352. package/dist/backend/backend/src/controllers/orchestrator/orchestrator.controller.d.ts +22 -0
  353. package/dist/backend/backend/src/controllers/orchestrator/orchestrator.controller.d.ts.map +1 -0
  354. package/dist/backend/backend/src/controllers/orchestrator/orchestrator.controller.js +465 -0
  355. package/dist/backend/backend/src/controllers/orchestrator/orchestrator.controller.js.map +1 -0
  356. package/dist/backend/backend/src/controllers/orchestrator/orchestrator.routes.d.ts +9 -0
  357. package/dist/backend/backend/src/controllers/orchestrator/orchestrator.routes.d.ts.map +1 -0
  358. package/dist/backend/backend/src/controllers/orchestrator/orchestrator.routes.js +26 -0
  359. package/dist/backend/backend/src/controllers/orchestrator/orchestrator.routes.js.map +1 -0
  360. package/dist/backend/backend/src/controllers/project/git.controller.d.ts +10 -0
  361. package/dist/backend/backend/src/controllers/project/git.controller.d.ts.map +1 -0
  362. package/dist/backend/backend/src/controllers/project/git.controller.js +160 -0
  363. package/dist/backend/backend/src/controllers/project/git.controller.js.map +1 -0
  364. package/dist/backend/backend/src/controllers/project/project.controller.d.ts +41 -0
  365. package/dist/backend/backend/src/controllers/project/project.controller.d.ts.map +1 -0
  366. package/dist/backend/backend/src/controllers/project/project.controller.js +1126 -0
  367. package/dist/backend/backend/src/controllers/project/project.controller.js.map +1 -0
  368. package/dist/backend/backend/src/controllers/project/project.routes.d.ts +19 -0
  369. package/dist/backend/backend/src/controllers/project/project.routes.d.ts.map +1 -0
  370. package/dist/backend/backend/src/controllers/project/project.routes.js +141 -0
  371. package/dist/backend/backend/src/controllers/project/project.routes.js.map +1 -0
  372. package/dist/backend/backend/src/controllers/quality-gate/quality-gate.controller.d.ts +32 -0
  373. package/dist/backend/backend/src/controllers/quality-gate/quality-gate.controller.d.ts.map +1 -0
  374. package/dist/backend/backend/src/controllers/quality-gate/quality-gate.controller.js +57 -0
  375. package/dist/backend/backend/src/controllers/quality-gate/quality-gate.controller.js.map +1 -0
  376. package/dist/backend/backend/src/controllers/request-types.d.ts +225 -0
  377. package/dist/backend/backend/src/controllers/request-types.d.ts.map +1 -0
  378. package/dist/backend/backend/src/controllers/request-types.js +8 -0
  379. package/dist/backend/backend/src/controllers/request-types.js.map +1 -0
  380. package/dist/backend/backend/src/controllers/self-improvement/index.d.ts +9 -0
  381. package/dist/backend/backend/src/controllers/self-improvement/index.d.ts.map +1 -0
  382. package/dist/backend/backend/src/controllers/self-improvement/index.js +9 -0
  383. package/dist/backend/backend/src/controllers/self-improvement/index.js.map +1 -0
  384. package/dist/backend/backend/src/controllers/self-improvement/self-improvement.controller.d.ts +11 -0
  385. package/dist/backend/backend/src/controllers/self-improvement/self-improvement.controller.d.ts.map +1 -0
  386. package/dist/backend/backend/src/controllers/self-improvement/self-improvement.controller.js +166 -0
  387. package/dist/backend/backend/src/controllers/self-improvement/self-improvement.controller.js.map +1 -0
  388. package/dist/backend/backend/src/controllers/session/session.controller.d.ts +80 -0
  389. package/dist/backend/backend/src/controllers/session/session.controller.d.ts.map +1 -0
  390. package/dist/backend/backend/src/controllers/session/session.controller.js +275 -0
  391. package/dist/backend/backend/src/controllers/session/session.controller.js.map +1 -0
  392. package/dist/backend/backend/src/controllers/session/session.routes.d.ts +19 -0
  393. package/dist/backend/backend/src/controllers/session/session.routes.d.ts.map +1 -0
  394. package/dist/backend/backend/src/controllers/session/session.routes.js +33 -0
  395. package/dist/backend/backend/src/controllers/session/session.routes.js.map +1 -0
  396. package/dist/backend/backend/src/controllers/settings/index.d.ts +18 -0
  397. package/dist/backend/backend/src/controllers/settings/index.d.ts.map +1 -0
  398. package/dist/backend/backend/src/controllers/settings/index.js +27 -0
  399. package/dist/backend/backend/src/controllers/settings/index.js.map +1 -0
  400. package/dist/backend/backend/src/controllers/settings/role.controller.d.ts +10 -0
  401. package/dist/backend/backend/src/controllers/settings/role.controller.d.ts.map +1 -0
  402. package/dist/backend/backend/src/controllers/settings/role.controller.js +365 -0
  403. package/dist/backend/backend/src/controllers/settings/role.controller.js.map +1 -0
  404. package/dist/backend/backend/src/controllers/settings/settings.controller.d.ts +10 -0
  405. package/dist/backend/backend/src/controllers/settings/settings.controller.d.ts.map +1 -0
  406. package/dist/backend/backend/src/controllers/settings/settings.controller.js +176 -0
  407. package/dist/backend/backend/src/controllers/settings/settings.controller.js.map +1 -0
  408. package/dist/backend/backend/src/controllers/skill/index.d.ts +17 -0
  409. package/dist/backend/backend/src/controllers/skill/index.d.ts.map +1 -0
  410. package/dist/backend/backend/src/controllers/skill/index.js +18 -0
  411. package/dist/backend/backend/src/controllers/skill/index.js.map +1 -0
  412. package/dist/backend/backend/src/controllers/skill/skill.controller.d.ts +10 -0
  413. package/dist/backend/backend/src/controllers/skill/skill.controller.d.ts.map +1 -0
  414. package/dist/backend/backend/src/controllers/skill/skill.controller.js +423 -0
  415. package/dist/backend/backend/src/controllers/skill/skill.controller.js.map +1 -0
  416. package/dist/backend/backend/src/controllers/slack/index.d.ts +17 -0
  417. package/dist/backend/backend/src/controllers/slack/index.d.ts.map +1 -0
  418. package/dist/backend/backend/src/controllers/slack/index.js +18 -0
  419. package/dist/backend/backend/src/controllers/slack/index.js.map +1 -0
  420. package/dist/backend/backend/src/controllers/slack/slack-thread.controller.d.ts +22 -0
  421. package/dist/backend/backend/src/controllers/slack/slack-thread.controller.d.ts.map +1 -0
  422. package/dist/backend/backend/src/controllers/slack/slack-thread.controller.js +59 -0
  423. package/dist/backend/backend/src/controllers/slack/slack-thread.controller.js.map +1 -0
  424. package/dist/backend/backend/src/controllers/slack/slack-thread.routes.d.ts +15 -0
  425. package/dist/backend/backend/src/controllers/slack/slack-thread.routes.d.ts.map +1 -0
  426. package/dist/backend/backend/src/controllers/slack/slack-thread.routes.js +21 -0
  427. package/dist/backend/backend/src/controllers/slack/slack-thread.routes.js.map +1 -0
  428. package/dist/backend/backend/src/controllers/slack/slack.controller.d.ts +11 -0
  429. package/dist/backend/backend/src/controllers/slack/slack.controller.d.ts.map +1 -0
  430. package/dist/backend/backend/src/controllers/slack/slack.controller.js +416 -0
  431. package/dist/backend/backend/src/controllers/slack/slack.controller.js.map +1 -0
  432. package/dist/backend/backend/src/controllers/system/config.controller.d.ts +4 -0
  433. package/dist/backend/backend/src/controllers/system/config.controller.d.ts.map +1 -0
  434. package/dist/backend/backend/src/controllers/system/config.controller.js +48 -0
  435. package/dist/backend/backend/src/controllers/system/config.controller.js.map +1 -0
  436. package/dist/backend/backend/src/controllers/system/errors.controller.d.ts +8 -0
  437. package/dist/backend/backend/src/controllers/system/errors.controller.d.ts.map +1 -0
  438. package/dist/backend/backend/src/controllers/system/errors.controller.js +99 -0
  439. package/dist/backend/backend/src/controllers/system/errors.controller.js.map +1 -0
  440. package/dist/backend/backend/src/controllers/system/scheduler.controller.d.ts +13 -0
  441. package/dist/backend/backend/src/controllers/system/scheduler.controller.d.ts.map +1 -0
  442. package/dist/backend/backend/src/controllers/system/scheduler.controller.js +63 -0
  443. package/dist/backend/backend/src/controllers/system/scheduler.controller.js.map +1 -0
  444. package/dist/backend/backend/src/controllers/system/system.controller.d.ts +67 -0
  445. package/dist/backend/backend/src/controllers/system/system.controller.d.ts.map +1 -0
  446. package/dist/backend/backend/src/controllers/system/system.controller.js +390 -0
  447. package/dist/backend/backend/src/controllers/system/system.controller.js.map +1 -0
  448. package/dist/backend/backend/src/controllers/system/system.routes.d.ts +9 -0
  449. package/dist/backend/backend/src/controllers/system/system.routes.d.ts.map +1 -0
  450. package/dist/backend/backend/src/controllers/system/system.routes.js +16 -0
  451. package/dist/backend/backend/src/controllers/system/system.routes.js.map +1 -0
  452. package/dist/backend/backend/src/controllers/task-management/assignments.controller.d.ts +5 -0
  453. package/dist/backend/backend/src/controllers/task-management/assignments.controller.d.ts.map +1 -0
  454. package/dist/backend/backend/src/controllers/task-management/assignments.controller.js +56 -0
  455. package/dist/backend/backend/src/controllers/task-management/assignments.controller.js.map +1 -0
  456. package/dist/backend/backend/src/controllers/task-management/in-progress-tasks.controller.d.ts +10 -0
  457. package/dist/backend/backend/src/controllers/task-management/in-progress-tasks.controller.d.ts.map +1 -0
  458. package/dist/backend/backend/src/controllers/task-management/in-progress-tasks.controller.js +43 -0
  459. package/dist/backend/backend/src/controllers/task-management/in-progress-tasks.controller.js.map +1 -0
  460. package/dist/backend/backend/src/controllers/task-management/task-management.controller.d.ts +95 -0
  461. package/dist/backend/backend/src/controllers/task-management/task-management.controller.d.ts.map +1 -0
  462. package/dist/backend/backend/src/controllers/task-management/task-management.controller.js +1034 -0
  463. package/dist/backend/backend/src/controllers/task-management/task-management.controller.js.map +1 -0
  464. package/dist/backend/backend/src/controllers/task-management/tasks.controller.d.ts +8 -0
  465. package/dist/backend/backend/src/controllers/task-management/tasks.controller.d.ts.map +1 -0
  466. package/dist/backend/backend/src/controllers/task-management/tasks.controller.js +117 -0
  467. package/dist/backend/backend/src/controllers/task-management/tasks.controller.js.map +1 -0
  468. package/dist/backend/backend/src/controllers/task-management/tickets.controller.d.ts +13 -0
  469. package/dist/backend/backend/src/controllers/task-management/tickets.controller.d.ts.map +1 -0
  470. package/dist/backend/backend/src/controllers/task-management/tickets.controller.js +212 -0
  471. package/dist/backend/backend/src/controllers/task-management/tickets.controller.js.map +1 -0
  472. package/dist/backend/backend/src/controllers/team/team.controller.d.ts +35 -0
  473. package/dist/backend/backend/src/controllers/team/team.controller.d.ts.map +1 -0
  474. package/dist/backend/backend/src/controllers/team/team.controller.js +1629 -0
  475. package/dist/backend/backend/src/controllers/team/team.controller.js.map +1 -0
  476. package/dist/backend/backend/src/controllers/team/team.routes.d.ts +9 -0
  477. package/dist/backend/backend/src/controllers/team/team.routes.d.ts.map +1 -0
  478. package/dist/backend/backend/src/controllers/team/team.routes.js +41 -0
  479. package/dist/backend/backend/src/controllers/team/team.routes.js.map +1 -0
  480. package/dist/backend/backend/src/controllers/teams-backup/teams-backup.controller.d.ts +32 -0
  481. package/dist/backend/backend/src/controllers/teams-backup/teams-backup.controller.d.ts.map +1 -0
  482. package/dist/backend/backend/src/controllers/teams-backup/teams-backup.controller.js +99 -0
  483. package/dist/backend/backend/src/controllers/teams-backup/teams-backup.controller.js.map +1 -0
  484. package/dist/backend/backend/src/controllers/teams-backup/teams-backup.routes.d.ts +15 -0
  485. package/dist/backend/backend/src/controllers/teams-backup/teams-backup.routes.d.ts.map +1 -0
  486. package/dist/backend/backend/src/controllers/teams-backup/teams-backup.routes.js +23 -0
  487. package/dist/backend/backend/src/controllers/teams-backup/teams-backup.routes.js.map +1 -0
  488. package/dist/backend/backend/src/controllers/types.d.ts +18 -0
  489. package/dist/backend/backend/src/controllers/types.d.ts.map +1 -0
  490. package/dist/backend/backend/src/controllers/types.js +2 -0
  491. package/dist/backend/backend/src/controllers/types.js.map +1 -0
  492. package/dist/backend/backend/src/controllers/utils/file-utils.d.ts +3 -0
  493. package/dist/backend/backend/src/controllers/utils/file-utils.d.ts.map +1 -0
  494. package/dist/backend/backend/src/controllers/utils/file-utils.js +98 -0
  495. package/dist/backend/backend/src/controllers/utils/file-utils.js.map +1 -0
  496. package/dist/backend/backend/src/index.d.ts +60 -0
  497. package/dist/backend/backend/src/index.d.ts.map +1 -0
  498. package/dist/backend/backend/src/index.js +872 -0
  499. package/dist/backend/backend/src/index.js.map +1 -0
  500. package/dist/backend/backend/src/middleware/agent-heartbeat.middleware.d.ts +22 -0
  501. package/dist/backend/backend/src/middleware/agent-heartbeat.middleware.d.ts.map +1 -0
  502. package/dist/backend/backend/src/middleware/agent-heartbeat.middleware.js +36 -0
  503. package/dist/backend/backend/src/middleware/agent-heartbeat.middleware.js.map +1 -0
  504. package/dist/backend/backend/src/models/Project.d.ts +18 -0
  505. package/dist/backend/backend/src/models/Project.d.ts.map +1 -0
  506. package/dist/backend/backend/src/models/Project.js +70 -0
  507. package/dist/backend/backend/src/models/Project.js.map +1 -0
  508. package/dist/backend/backend/src/models/ScheduledMessage.d.ts +27 -0
  509. package/dist/backend/backend/src/models/ScheduledMessage.d.ts.map +1 -0
  510. package/dist/backend/backend/src/models/ScheduledMessage.js +50 -0
  511. package/dist/backend/backend/src/models/ScheduledMessage.js.map +1 -0
  512. package/dist/backend/backend/src/models/Team.d.ts +20 -0
  513. package/dist/backend/backend/src/models/Team.d.ts.map +1 -0
  514. package/dist/backend/backend/src/models/Team.js +120 -0
  515. package/dist/backend/backend/src/models/Team.js.map +1 -0
  516. package/dist/backend/backend/src/models/Ticket.d.ts +24 -0
  517. package/dist/backend/backend/src/models/Ticket.d.ts.map +1 -0
  518. package/dist/backend/backend/src/models/Ticket.js +102 -0
  519. package/dist/backend/backend/src/models/Ticket.js.map +1 -0
  520. package/dist/backend/backend/src/models/index.d.ts +5 -0
  521. package/dist/backend/backend/src/models/index.d.ts.map +1 -0
  522. package/dist/backend/backend/src/models/index.js +5 -0
  523. package/dist/backend/backend/src/models/index.js.map +1 -0
  524. package/dist/backend/backend/src/routes/api.routes.d.ts +9 -0
  525. package/dist/backend/backend/src/routes/api.routes.d.ts.map +1 -0
  526. package/dist/backend/backend/src/routes/api.routes.js +81 -0
  527. package/dist/backend/backend/src/routes/api.routes.js.map +1 -0
  528. package/dist/backend/backend/src/routes/factory.routes.d.ts +19 -0
  529. package/dist/backend/backend/src/routes/factory.routes.d.ts.map +1 -0
  530. package/dist/backend/backend/src/routes/factory.routes.js +103 -0
  531. package/dist/backend/backend/src/routes/factory.routes.js.map +1 -0
  532. package/dist/backend/backend/src/routes/modules/assignments.routes.d.ts +4 -0
  533. package/dist/backend/backend/src/routes/modules/assignments.routes.d.ts.map +1 -0
  534. package/dist/backend/backend/src/routes/modules/assignments.routes.js +7 -0
  535. package/dist/backend/backend/src/routes/modules/assignments.routes.js.map +1 -0
  536. package/dist/backend/backend/src/routes/modules/config.routes.d.ts +4 -0
  537. package/dist/backend/backend/src/routes/modules/config.routes.d.ts.map +1 -0
  538. package/dist/backend/backend/src/routes/modules/config.routes.js +6 -0
  539. package/dist/backend/backend/src/routes/modules/config.routes.js.map +1 -0
  540. package/dist/backend/backend/src/routes/modules/delivery-logs.routes.d.ts +4 -0
  541. package/dist/backend/backend/src/routes/modules/delivery-logs.routes.d.ts.map +1 -0
  542. package/dist/backend/backend/src/routes/modules/delivery-logs.routes.js +7 -0
  543. package/dist/backend/backend/src/routes/modules/delivery-logs.routes.js.map +1 -0
  544. package/dist/backend/backend/src/routes/modules/errors.routes.d.ts +4 -0
  545. package/dist/backend/backend/src/routes/modules/errors.routes.d.ts.map +1 -0
  546. package/dist/backend/backend/src/routes/modules/errors.routes.js +10 -0
  547. package/dist/backend/backend/src/routes/modules/errors.routes.js.map +1 -0
  548. package/dist/backend/backend/src/routes/modules/quality-gate.routes.d.ts +20 -0
  549. package/dist/backend/backend/src/routes/modules/quality-gate.routes.d.ts.map +1 -0
  550. package/dist/backend/backend/src/routes/modules/quality-gate.routes.js +25 -0
  551. package/dist/backend/backend/src/routes/modules/quality-gate.routes.js.map +1 -0
  552. package/dist/backend/backend/src/routes/modules/scheduled-messages.routes.d.ts +4 -0
  553. package/dist/backend/backend/src/routes/modules/scheduled-messages.routes.d.ts.map +1 -0
  554. package/dist/backend/backend/src/routes/modules/scheduled-messages.routes.js +12 -0
  555. package/dist/backend/backend/src/routes/modules/scheduled-messages.routes.js.map +1 -0
  556. package/dist/backend/backend/src/routes/modules/scheduler.routes.d.ts +4 -0
  557. package/dist/backend/backend/src/routes/modules/scheduler.routes.d.ts.map +1 -0
  558. package/dist/backend/backend/src/routes/modules/scheduler.routes.js +9 -0
  559. package/dist/backend/backend/src/routes/modules/scheduler.routes.js.map +1 -0
  560. package/dist/backend/backend/src/routes/modules/system.routes.d.ts +4 -0
  561. package/dist/backend/backend/src/routes/modules/system.routes.d.ts.map +1 -0
  562. package/dist/backend/backend/src/routes/modules/system.routes.js +24 -0
  563. package/dist/backend/backend/src/routes/modules/system.routes.js.map +1 -0
  564. package/dist/backend/backend/src/routes/modules/task-management.routes.d.ts +4 -0
  565. package/dist/backend/backend/src/routes/modules/task-management.routes.d.ts.map +1 -0
  566. package/dist/backend/backend/src/routes/modules/task-management.routes.js +25 -0
  567. package/dist/backend/backend/src/routes/modules/task-management.routes.js.map +1 -0
  568. package/dist/backend/backend/src/routes/modules/terminal.routes.d.ts +29 -0
  569. package/dist/backend/backend/src/routes/modules/terminal.routes.d.ts.map +1 -0
  570. package/dist/backend/backend/src/routes/modules/terminal.routes.js +49 -0
  571. package/dist/backend/backend/src/routes/modules/terminal.routes.js.map +1 -0
  572. package/dist/backend/backend/src/services/agent/agent-heartbeat.service.d.ts +240 -0
  573. package/dist/backend/backend/src/services/agent/agent-heartbeat.service.d.ts.map +1 -0
  574. package/dist/backend/backend/src/services/agent/agent-heartbeat.service.js +524 -0
  575. package/dist/backend/backend/src/services/agent/agent-heartbeat.service.js.map +1 -0
  576. package/dist/backend/backend/src/services/agent/agent-registration.service.d.ts +398 -0
  577. package/dist/backend/backend/src/services/agent/agent-registration.service.d.ts.map +1 -0
  578. package/dist/backend/backend/src/services/agent/agent-registration.service.js +2863 -0
  579. package/dist/backend/backend/src/services/agent/agent-registration.service.js.map +1 -0
  580. package/dist/backend/backend/src/services/agent/agent-suspend.service.d.ts +118 -0
  581. package/dist/backend/backend/src/services/agent/agent-suspend.service.d.ts.map +1 -0
  582. package/dist/backend/backend/src/services/agent/agent-suspend.service.js +304 -0
  583. package/dist/backend/backend/src/services/agent/agent-suspend.service.js.map +1 -0
  584. package/dist/backend/backend/src/services/agent/claude-runtime.service.d.ts +71 -0
  585. package/dist/backend/backend/src/services/agent/claude-runtime.service.d.ts.map +1 -0
  586. package/dist/backend/backend/src/services/agent/claude-runtime.service.js +220 -0
  587. package/dist/backend/backend/src/services/agent/claude-runtime.service.js.map +1 -0
  588. package/dist/backend/backend/src/services/agent/codex-runtime.service.d.ts +43 -0
  589. package/dist/backend/backend/src/services/agent/codex-runtime.service.d.ts.map +1 -0
  590. package/dist/backend/backend/src/services/agent/codex-runtime.service.js +118 -0
  591. package/dist/backend/backend/src/services/agent/codex-runtime.service.js.map +1 -0
  592. package/dist/backend/backend/src/services/agent/disk-cleanup.service.d.ts +79 -0
  593. package/dist/backend/backend/src/services/agent/disk-cleanup.service.d.ts.map +1 -0
  594. package/dist/backend/backend/src/services/agent/disk-cleanup.service.js +137 -0
  595. package/dist/backend/backend/src/services/agent/disk-cleanup.service.js.map +1 -0
  596. package/dist/backend/backend/src/services/agent/file-watcher.service.d.ts +87 -0
  597. package/dist/backend/backend/src/services/agent/file-watcher.service.d.ts.map +1 -0
  598. package/dist/backend/backend/src/services/agent/file-watcher.service.js +312 -0
  599. package/dist/backend/backend/src/services/agent/file-watcher.service.js.map +1 -0
  600. package/dist/backend/backend/src/services/agent/gemini-runtime.service.d.ts +83 -0
  601. package/dist/backend/backend/src/services/agent/gemini-runtime.service.d.ts.map +1 -0
  602. package/dist/backend/backend/src/services/agent/gemini-runtime.service.js +300 -0
  603. package/dist/backend/backend/src/services/agent/gemini-runtime.service.js.map +1 -0
  604. package/dist/backend/backend/src/services/agent/git-integration.service.d.ts +131 -0
  605. package/dist/backend/backend/src/services/agent/git-integration.service.d.ts.map +1 -0
  606. package/dist/backend/backend/src/services/agent/git-integration.service.js +368 -0
  607. package/dist/backend/backend/src/services/agent/git-integration.service.js.map +1 -0
  608. package/dist/backend/backend/src/services/agent/idle-detection.service.d.ts +54 -0
  609. package/dist/backend/backend/src/services/agent/idle-detection.service.d.ts.map +1 -0
  610. package/dist/backend/backend/src/services/agent/idle-detection.service.js +156 -0
  611. package/dist/backend/backend/src/services/agent/idle-detection.service.js.map +1 -0
  612. package/dist/backend/backend/src/services/agent/pty-activity-tracker.service.d.ts +77 -0
  613. package/dist/backend/backend/src/services/agent/pty-activity-tracker.service.d.ts.map +1 -0
  614. package/dist/backend/backend/src/services/agent/pty-activity-tracker.service.js +104 -0
  615. package/dist/backend/backend/src/services/agent/pty-activity-tracker.service.js.map +1 -0
  616. package/dist/backend/backend/src/services/agent/runtime-agent.service.abstract.d.ts +114 -0
  617. package/dist/backend/backend/src/services/agent/runtime-agent.service.abstract.d.ts.map +1 -0
  618. package/dist/backend/backend/src/services/agent/runtime-agent.service.abstract.js +437 -0
  619. package/dist/backend/backend/src/services/agent/runtime-agent.service.abstract.js.map +1 -0
  620. package/dist/backend/backend/src/services/agent/runtime-exit-monitor.service.d.ts +81 -0
  621. package/dist/backend/backend/src/services/agent/runtime-exit-monitor.service.d.ts.map +1 -0
  622. package/dist/backend/backend/src/services/agent/runtime-exit-monitor.service.js +284 -0
  623. package/dist/backend/backend/src/services/agent/runtime-exit-monitor.service.js.map +1 -0
  624. package/dist/backend/backend/src/services/agent/runtime-service.factory.d.ts +71 -0
  625. package/dist/backend/backend/src/services/agent/runtime-service.factory.d.ts.map +1 -0
  626. package/dist/backend/backend/src/services/agent/runtime-service.factory.js +165 -0
  627. package/dist/backend/backend/src/services/agent/runtime-service.factory.js.map +1 -0
  628. package/dist/backend/backend/src/services/agent/tmux-command.service.d.ts +163 -0
  629. package/dist/backend/backend/src/services/agent/tmux-command.service.d.ts.map +1 -0
  630. package/dist/backend/backend/src/services/agent/tmux-command.service.js +962 -0
  631. package/dist/backend/backend/src/services/agent/tmux-command.service.js.map +1 -0
  632. package/dist/backend/backend/src/services/agent/tmux.service.d.ts +189 -0
  633. package/dist/backend/backend/src/services/agent/tmux.service.d.ts.map +1 -0
  634. package/dist/backend/backend/src/services/agent/tmux.service.js +673 -0
  635. package/dist/backend/backend/src/services/agent/tmux.service.js.map +1 -0
  636. package/dist/backend/backend/src/services/ai/context-loader.service.d.ts +40 -0
  637. package/dist/backend/backend/src/services/ai/context-loader.service.d.ts.map +1 -0
  638. package/dist/backend/backend/src/services/ai/context-loader.service.js +311 -0
  639. package/dist/backend/backend/src/services/ai/context-loader.service.js.map +1 -0
  640. package/dist/backend/backend/src/services/ai/prompt-builder.service.d.ts +183 -0
  641. package/dist/backend/backend/src/services/ai/prompt-builder.service.d.ts.map +1 -0
  642. package/dist/backend/backend/src/services/ai/prompt-builder.service.js +591 -0
  643. package/dist/backend/backend/src/services/ai/prompt-builder.service.js.map +1 -0
  644. package/dist/backend/backend/src/services/ai/prompt-template.service.d.ts +51 -0
  645. package/dist/backend/backend/src/services/ai/prompt-template.service.d.ts.map +1 -0
  646. package/dist/backend/backend/src/services/ai/prompt-template.service.js +99 -0
  647. package/dist/backend/backend/src/services/ai/prompt-template.service.js.map +1 -0
  648. package/dist/backend/backend/src/services/autonomous/auto-assign.service.d.ts +429 -0
  649. package/dist/backend/backend/src/services/autonomous/auto-assign.service.d.ts.map +1 -0
  650. package/dist/backend/backend/src/services/autonomous/auto-assign.service.js +852 -0
  651. package/dist/backend/backend/src/services/autonomous/auto-assign.service.js.map +1 -0
  652. package/dist/backend/backend/src/services/autonomous/budget.service.d.ts +319 -0
  653. package/dist/backend/backend/src/services/autonomous/budget.service.d.ts.map +1 -0
  654. package/dist/backend/backend/src/services/autonomous/budget.service.js +594 -0
  655. package/dist/backend/backend/src/services/autonomous/budget.service.js.map +1 -0
  656. package/dist/backend/backend/src/services/autonomous/index.d.ts +11 -0
  657. package/dist/backend/backend/src/services/autonomous/index.d.ts.map +1 -0
  658. package/dist/backend/backend/src/services/autonomous/index.js +11 -0
  659. package/dist/backend/backend/src/services/autonomous/index.js.map +1 -0
  660. package/dist/backend/backend/src/services/chat/chat.service.d.ts +358 -0
  661. package/dist/backend/backend/src/services/chat/chat.service.d.ts.map +1 -0
  662. package/dist/backend/backend/src/services/chat/chat.service.js +727 -0
  663. package/dist/backend/backend/src/services/chat/chat.service.js.map +1 -0
  664. package/dist/backend/backend/src/services/chat/index.d.ts +10 -0
  665. package/dist/backend/backend/src/services/chat/index.d.ts.map +1 -0
  666. package/dist/backend/backend/src/services/chat/index.js +10 -0
  667. package/dist/backend/backend/src/services/chat/index.js.map +1 -0
  668. package/dist/backend/backend/src/services/continuation/continuation-events.service.d.ts +152 -0
  669. package/dist/backend/backend/src/services/continuation/continuation-events.service.d.ts.map +1 -0
  670. package/dist/backend/backend/src/services/continuation/continuation-events.service.js +293 -0
  671. package/dist/backend/backend/src/services/continuation/continuation-events.service.js.map +1 -0
  672. package/dist/backend/backend/src/services/continuation/continuation.service.d.ts +278 -0
  673. package/dist/backend/backend/src/services/continuation/continuation.service.d.ts.map +1 -0
  674. package/dist/backend/backend/src/services/continuation/continuation.service.js +616 -0
  675. package/dist/backend/backend/src/services/continuation/continuation.service.js.map +1 -0
  676. package/dist/backend/backend/src/services/continuation/index.d.ts +14 -0
  677. package/dist/backend/backend/src/services/continuation/index.d.ts.map +1 -0
  678. package/dist/backend/backend/src/services/continuation/index.js +15 -0
  679. package/dist/backend/backend/src/services/continuation/index.js.map +1 -0
  680. package/dist/backend/backend/src/services/continuation/output-analyzer.service.d.ts +199 -0
  681. package/dist/backend/backend/src/services/continuation/output-analyzer.service.d.ts.map +1 -0
  682. package/dist/backend/backend/src/services/continuation/output-analyzer.service.js +390 -0
  683. package/dist/backend/backend/src/services/continuation/output-analyzer.service.js.map +1 -0
  684. package/dist/backend/backend/src/services/continuation/patterns/completion-patterns.d.ts +44 -0
  685. package/dist/backend/backend/src/services/continuation/patterns/completion-patterns.d.ts.map +1 -0
  686. package/dist/backend/backend/src/services/continuation/patterns/completion-patterns.js +82 -0
  687. package/dist/backend/backend/src/services/continuation/patterns/completion-patterns.js.map +1 -0
  688. package/dist/backend/backend/src/services/continuation/patterns/error-patterns.d.ts +37 -0
  689. package/dist/backend/backend/src/services/continuation/patterns/error-patterns.d.ts.map +1 -0
  690. package/dist/backend/backend/src/services/continuation/patterns/error-patterns.js +105 -0
  691. package/dist/backend/backend/src/services/continuation/patterns/error-patterns.js.map +1 -0
  692. package/dist/backend/backend/src/services/continuation/patterns/idle-patterns.d.ts +29 -0
  693. package/dist/backend/backend/src/services/continuation/patterns/idle-patterns.d.ts.map +1 -0
  694. package/dist/backend/backend/src/services/continuation/patterns/idle-patterns.js +49 -0
  695. package/dist/backend/backend/src/services/continuation/patterns/idle-patterns.js.map +1 -0
  696. package/dist/backend/backend/src/services/continuation/patterns/index.d.ts +12 -0
  697. package/dist/backend/backend/src/services/continuation/patterns/index.d.ts.map +1 -0
  698. package/dist/backend/backend/src/services/continuation/patterns/index.js +12 -0
  699. package/dist/backend/backend/src/services/continuation/patterns/index.js.map +1 -0
  700. package/dist/backend/backend/src/services/continuation/patterns/waiting-patterns.d.ts +34 -0
  701. package/dist/backend/backend/src/services/continuation/patterns/waiting-patterns.d.ts.map +1 -0
  702. package/dist/backend/backend/src/services/continuation/patterns/waiting-patterns.js +64 -0
  703. package/dist/backend/backend/src/services/continuation/patterns/waiting-patterns.js.map +1 -0
  704. package/dist/backend/backend/src/services/continuation/template-loader.service.d.ts +196 -0
  705. package/dist/backend/backend/src/services/continuation/template-loader.service.d.ts.map +1 -0
  706. package/dist/backend/backend/src/services/continuation/template-loader.service.js +323 -0
  707. package/dist/backend/backend/src/services/continuation/template-loader.service.js.map +1 -0
  708. package/dist/backend/backend/src/services/core/config.service.d.ts +85 -0
  709. package/dist/backend/backend/src/services/core/config.service.d.ts.map +1 -0
  710. package/dist/backend/backend/src/services/core/config.service.js +226 -0
  711. package/dist/backend/backend/src/services/core/config.service.js.map +1 -0
  712. package/dist/backend/backend/src/services/core/error-tracking.service.d.ts +98 -0
  713. package/dist/backend/backend/src/services/core/error-tracking.service.d.ts.map +1 -0
  714. package/dist/backend/backend/src/services/core/error-tracking.service.js +291 -0
  715. package/dist/backend/backend/src/services/core/error-tracking.service.js.map +1 -0
  716. package/dist/backend/backend/src/services/core/logger.service.d.ts +70 -0
  717. package/dist/backend/backend/src/services/core/logger.service.d.ts.map +1 -0
  718. package/dist/backend/backend/src/services/core/logger.service.js +350 -0
  719. package/dist/backend/backend/src/services/core/logger.service.js.map +1 -0
  720. package/dist/backend/backend/src/services/core/storage.service.d.ts +261 -0
  721. package/dist/backend/backend/src/services/core/storage.service.d.ts.map +1 -0
  722. package/dist/backend/backend/src/services/core/storage.service.js +1390 -0
  723. package/dist/backend/backend/src/services/core/storage.service.js.map +1 -0
  724. package/dist/backend/backend/src/services/core/teams-backup.service.d.ts +92 -0
  725. package/dist/backend/backend/src/services/core/teams-backup.service.d.ts.map +1 -0
  726. package/dist/backend/backend/src/services/core/teams-backup.service.js +120 -0
  727. package/dist/backend/backend/src/services/core/teams-backup.service.js.map +1 -0
  728. package/dist/backend/backend/src/services/event-bus/event-bus.service.d.ts +144 -0
  729. package/dist/backend/backend/src/services/event-bus/event-bus.service.d.ts.map +1 -0
  730. package/dist/backend/backend/src/services/event-bus/event-bus.service.js +337 -0
  731. package/dist/backend/backend/src/services/event-bus/event-bus.service.js.map +1 -0
  732. package/dist/backend/backend/src/services/event-bus/index.d.ts +7 -0
  733. package/dist/backend/backend/src/services/event-bus/index.d.ts.map +1 -0
  734. package/dist/backend/backend/src/services/event-bus/index.js +7 -0
  735. package/dist/backend/backend/src/services/event-bus/index.js.map +1 -0
  736. package/dist/backend/backend/src/services/factory/factory-sse.service.d.ts +163 -0
  737. package/dist/backend/backend/src/services/factory/factory-sse.service.d.ts.map +1 -0
  738. package/dist/backend/backend/src/services/factory/factory-sse.service.js +274 -0
  739. package/dist/backend/backend/src/services/factory/factory-sse.service.js.map +1 -0
  740. package/dist/backend/backend/src/services/factory.service.d.ts +157 -0
  741. package/dist/backend/backend/src/services/factory.service.d.ts.map +1 -0
  742. package/dist/backend/backend/src/services/factory.service.js +545 -0
  743. package/dist/backend/backend/src/services/factory.service.js.map +1 -0
  744. package/dist/backend/backend/src/services/index.d.ts +37 -0
  745. package/dist/backend/backend/src/services/index.d.ts.map +1 -0
  746. package/dist/backend/backend/src/services/index.js +50 -0
  747. package/dist/backend/backend/src/services/index.js.map +1 -0
  748. package/dist/backend/backend/src/services/knowledge/index.d.ts +7 -0
  749. package/dist/backend/backend/src/services/knowledge/index.d.ts.map +1 -0
  750. package/dist/backend/backend/src/services/knowledge/index.js +7 -0
  751. package/dist/backend/backend/src/services/knowledge/index.js.map +1 -0
  752. package/dist/backend/backend/src/services/knowledge/knowledge-search.service.d.ts +125 -0
  753. package/dist/backend/backend/src/services/knowledge/knowledge-search.service.d.ts.map +1 -0
  754. package/dist/backend/backend/src/services/knowledge/knowledge-search.service.js +247 -0
  755. package/dist/backend/backend/src/services/knowledge/knowledge-search.service.js.map +1 -0
  756. package/dist/backend/backend/src/services/knowledge/knowledge.service.d.ts +153 -0
  757. package/dist/backend/backend/src/services/knowledge/knowledge.service.d.ts.map +1 -0
  758. package/dist/backend/backend/src/services/knowledge/knowledge.service.js +409 -0
  759. package/dist/backend/backend/src/services/knowledge/knowledge.service.js.map +1 -0
  760. package/dist/backend/backend/src/services/marketplace/index.d.ts +11 -0
  761. package/dist/backend/backend/src/services/marketplace/index.d.ts.map +1 -0
  762. package/dist/backend/backend/src/services/marketplace/index.js +13 -0
  763. package/dist/backend/backend/src/services/marketplace/index.js.map +1 -0
  764. package/dist/backend/backend/src/services/marketplace/marketplace-installer.service.d.ts +47 -0
  765. package/dist/backend/backend/src/services/marketplace/marketplace-installer.service.d.ts.map +1 -0
  766. package/dist/backend/backend/src/services/marketplace/marketplace-installer.service.js +127 -0
  767. package/dist/backend/backend/src/services/marketplace/marketplace-installer.service.js.map +1 -0
  768. package/dist/backend/backend/src/services/marketplace/marketplace.service.d.ts +101 -0
  769. package/dist/backend/backend/src/services/marketplace/marketplace.service.d.ts.map +1 -0
  770. package/dist/backend/backend/src/services/marketplace/marketplace.service.js +207 -0
  771. package/dist/backend/backend/src/services/marketplace/marketplace.service.js.map +1 -0
  772. package/dist/backend/backend/src/services/memory/agent-memory.service.d.ts +259 -0
  773. package/dist/backend/backend/src/services/memory/agent-memory.service.d.ts.map +1 -0
  774. package/dist/backend/backend/src/services/memory/agent-memory.service.js +539 -0
  775. package/dist/backend/backend/src/services/memory/agent-memory.service.js.map +1 -0
  776. package/dist/backend/backend/src/services/memory/daily-log.service.d.ts +159 -0
  777. package/dist/backend/backend/src/services/memory/daily-log.service.d.ts.map +1 -0
  778. package/dist/backend/backend/src/services/memory/daily-log.service.js +272 -0
  779. package/dist/backend/backend/src/services/memory/daily-log.service.js.map +1 -0
  780. package/dist/backend/backend/src/services/memory/goal-tracking.service.d.ts +239 -0
  781. package/dist/backend/backend/src/services/memory/goal-tracking.service.d.ts.map +1 -0
  782. package/dist/backend/backend/src/services/memory/goal-tracking.service.js +353 -0
  783. package/dist/backend/backend/src/services/memory/goal-tracking.service.js.map +1 -0
  784. package/dist/backend/backend/src/services/memory/index.d.ts +16 -0
  785. package/dist/backend/backend/src/services/memory/index.d.ts.map +1 -0
  786. package/dist/backend/backend/src/services/memory/index.js +15 -0
  787. package/dist/backend/backend/src/services/memory/index.js.map +1 -0
  788. package/dist/backend/backend/src/services/memory/learning-accumulation.service.d.ts +228 -0
  789. package/dist/backend/backend/src/services/memory/learning-accumulation.service.d.ts.map +1 -0
  790. package/dist/backend/backend/src/services/memory/learning-accumulation.service.js +336 -0
  791. package/dist/backend/backend/src/services/memory/learning-accumulation.service.js.map +1 -0
  792. package/dist/backend/backend/src/services/memory/memory.service.d.ts +306 -0
  793. package/dist/backend/backend/src/services/memory/memory.service.d.ts.map +1 -0
  794. package/dist/backend/backend/src/services/memory/memory.service.js +517 -0
  795. package/dist/backend/backend/src/services/memory/memory.service.js.map +1 -0
  796. package/dist/backend/backend/src/services/memory/project-memory.service.d.ts +252 -0
  797. package/dist/backend/backend/src/services/memory/project-memory.service.d.ts.map +1 -0
  798. package/dist/backend/backend/src/services/memory/project-memory.service.js +600 -0
  799. package/dist/backend/backend/src/services/memory/project-memory.service.js.map +1 -0
  800. package/dist/backend/backend/src/services/memory/session-memory.service.d.ts +197 -0
  801. package/dist/backend/backend/src/services/memory/session-memory.service.d.ts.map +1 -0
  802. package/dist/backend/backend/src/services/memory/session-memory.service.js +369 -0
  803. package/dist/backend/backend/src/services/memory/session-memory.service.js.map +1 -0
  804. package/dist/backend/backend/src/services/messaging/index.d.ts +9 -0
  805. package/dist/backend/backend/src/services/messaging/index.d.ts.map +1 -0
  806. package/dist/backend/backend/src/services/messaging/index.js +9 -0
  807. package/dist/backend/backend/src/services/messaging/index.js.map +1 -0
  808. package/dist/backend/backend/src/services/messaging/message-queue.service.d.ts +198 -0
  809. package/dist/backend/backend/src/services/messaging/message-queue.service.d.ts.map +1 -0
  810. package/dist/backend/backend/src/services/messaging/message-queue.service.js +445 -0
  811. package/dist/backend/backend/src/services/messaging/message-queue.service.js.map +1 -0
  812. package/dist/backend/backend/src/services/messaging/queue-processor.service.d.ts +90 -0
  813. package/dist/backend/backend/src/services/messaging/queue-processor.service.d.ts.map +1 -0
  814. package/dist/backend/backend/src/services/messaging/queue-processor.service.js +324 -0
  815. package/dist/backend/backend/src/services/messaging/queue-processor.service.js.map +1 -0
  816. package/dist/backend/backend/src/services/messaging/response-router.service.d.ts +56 -0
  817. package/dist/backend/backend/src/services/messaging/response-router.service.d.ts.map +1 -0
  818. package/dist/backend/backend/src/services/messaging/response-router.service.js +134 -0
  819. package/dist/backend/backend/src/services/messaging/response-router.service.js.map +1 -0
  820. package/dist/backend/backend/src/services/messaging/sub-agent-message-queue.service.d.ts +84 -0
  821. package/dist/backend/backend/src/services/messaging/sub-agent-message-queue.service.d.ts.map +1 -0
  822. package/dist/backend/backend/src/services/messaging/sub-agent-message-queue.service.js +136 -0
  823. package/dist/backend/backend/src/services/messaging/sub-agent-message-queue.service.js.map +1 -0
  824. package/dist/backend/backend/src/services/monitoring/activity-monitor.service.d.ts +113 -0
  825. package/dist/backend/backend/src/services/monitoring/activity-monitor.service.d.ts.map +1 -0
  826. package/dist/backend/backend/src/services/monitoring/activity-monitor.service.js +473 -0
  827. package/dist/backend/backend/src/services/monitoring/activity-monitor.service.js.map +1 -0
  828. package/dist/backend/backend/src/services/monitoring/monitoring.service.d.ts +129 -0
  829. package/dist/backend/backend/src/services/monitoring/monitoring.service.d.ts.map +1 -0
  830. package/dist/backend/backend/src/services/monitoring/monitoring.service.js +469 -0
  831. package/dist/backend/backend/src/services/monitoring/monitoring.service.js.map +1 -0
  832. package/dist/backend/backend/src/services/monitoring/system-resource-alert.service.d.ts +48 -0
  833. package/dist/backend/backend/src/services/monitoring/system-resource-alert.service.d.ts.map +1 -0
  834. package/dist/backend/backend/src/services/monitoring/system-resource-alert.service.js +151 -0
  835. package/dist/backend/backend/src/services/monitoring/system-resource-alert.service.js.map +1 -0
  836. package/dist/backend/backend/src/services/monitoring/task-assignment-monitor.service.d.ts +71 -0
  837. package/dist/backend/backend/src/services/monitoring/task-assignment-monitor.service.d.ts.map +1 -0
  838. package/dist/backend/backend/src/services/monitoring/task-assignment-monitor.service.js +304 -0
  839. package/dist/backend/backend/src/services/monitoring/task-assignment-monitor.service.js.map +1 -0
  840. package/dist/backend/backend/src/services/monitoring/team-activity-websocket.service.d.ts +100 -0
  841. package/dist/backend/backend/src/services/monitoring/team-activity-websocket.service.d.ts.map +1 -0
  842. package/dist/backend/backend/src/services/monitoring/team-activity-websocket.service.js +285 -0
  843. package/dist/backend/backend/src/services/monitoring/team-activity-websocket.service.js.map +1 -0
  844. package/dist/backend/backend/src/services/monitoring/teams-json-watcher.service.d.ts +107 -0
  845. package/dist/backend/backend/src/services/monitoring/teams-json-watcher.service.d.ts.map +1 -0
  846. package/dist/backend/backend/src/services/monitoring/teams-json-watcher.service.js +568 -0
  847. package/dist/backend/backend/src/services/monitoring/teams-json-watcher.service.js.map +1 -0
  848. package/dist/backend/backend/src/services/orchestrator/improvement-marker.service.d.ts +231 -0
  849. package/dist/backend/backend/src/services/orchestrator/improvement-marker.service.d.ts.map +1 -0
  850. package/dist/backend/backend/src/services/orchestrator/improvement-marker.service.js +344 -0
  851. package/dist/backend/backend/src/services/orchestrator/improvement-marker.service.js.map +1 -0
  852. package/dist/backend/backend/src/services/orchestrator/improvement-startup.service.d.ts +156 -0
  853. package/dist/backend/backend/src/services/orchestrator/improvement-startup.service.d.ts.map +1 -0
  854. package/dist/backend/backend/src/services/orchestrator/improvement-startup.service.js +481 -0
  855. package/dist/backend/backend/src/services/orchestrator/improvement-startup.service.js.map +1 -0
  856. package/dist/backend/backend/src/services/orchestrator/index.d.ts +15 -0
  857. package/dist/backend/backend/src/services/orchestrator/index.d.ts.map +1 -0
  858. package/dist/backend/backend/src/services/orchestrator/index.js +15 -0
  859. package/dist/backend/backend/src/services/orchestrator/index.js.map +1 -0
  860. package/dist/backend/backend/src/services/orchestrator/orchestrator-restart.service.d.ts +112 -0
  861. package/dist/backend/backend/src/services/orchestrator/orchestrator-restart.service.d.ts.map +1 -0
  862. package/dist/backend/backend/src/services/orchestrator/orchestrator-restart.service.js +244 -0
  863. package/dist/backend/backend/src/services/orchestrator/orchestrator-restart.service.js.map +1 -0
  864. package/dist/backend/backend/src/services/orchestrator/orchestrator-status.service.d.ts +61 -0
  865. package/dist/backend/backend/src/services/orchestrator/orchestrator-status.service.d.ts.map +1 -0
  866. package/dist/backend/backend/src/services/orchestrator/orchestrator-status.service.js +156 -0
  867. package/dist/backend/backend/src/services/orchestrator/orchestrator-status.service.js.map +1 -0
  868. package/dist/backend/backend/src/services/orchestrator/safe-restart.service.d.ts +191 -0
  869. package/dist/backend/backend/src/services/orchestrator/safe-restart.service.d.ts.map +1 -0
  870. package/dist/backend/backend/src/services/orchestrator/safe-restart.service.js +393 -0
  871. package/dist/backend/backend/src/services/orchestrator/safe-restart.service.js.map +1 -0
  872. package/dist/backend/backend/src/services/orchestrator/self-improvement.service.d.ts +200 -0
  873. package/dist/backend/backend/src/services/orchestrator/self-improvement.service.d.ts.map +1 -0
  874. package/dist/backend/backend/src/services/orchestrator/self-improvement.service.js +394 -0
  875. package/dist/backend/backend/src/services/orchestrator/self-improvement.service.js.map +1 -0
  876. package/dist/backend/backend/src/services/orchestrator/state-persistence.service.d.ts +226 -0
  877. package/dist/backend/backend/src/services/orchestrator/state-persistence.service.d.ts.map +1 -0
  878. package/dist/backend/backend/src/services/orchestrator/state-persistence.service.js +504 -0
  879. package/dist/backend/backend/src/services/orchestrator/state-persistence.service.js.map +1 -0
  880. package/dist/backend/backend/src/services/project/active-projects.service.d.ts +39 -0
  881. package/dist/backend/backend/src/services/project/active-projects.service.d.ts.map +1 -0
  882. package/dist/backend/backend/src/services/project/active-projects.service.js +295 -0
  883. package/dist/backend/backend/src/services/project/active-projects.service.js.map +1 -0
  884. package/dist/backend/backend/src/services/project/task-folder.service.d.ts +48 -0
  885. package/dist/backend/backend/src/services/project/task-folder.service.d.ts.map +1 -0
  886. package/dist/backend/backend/src/services/project/task-folder.service.js +193 -0
  887. package/dist/backend/backend/src/services/project/task-folder.service.js.map +1 -0
  888. package/dist/backend/backend/src/services/project/task-tracking.service.d.ts +47 -0
  889. package/dist/backend/backend/src/services/project/task-tracking.service.d.ts.map +1 -0
  890. package/dist/backend/backend/src/services/project/task-tracking.service.js +330 -0
  891. package/dist/backend/backend/src/services/project/task-tracking.service.js.map +1 -0
  892. package/dist/backend/backend/src/services/project/task.service.d.ts +31 -0
  893. package/dist/backend/backend/src/services/project/task.service.d.ts.map +1 -0
  894. package/dist/backend/backend/src/services/project/task.service.js +193 -0
  895. package/dist/backend/backend/src/services/project/task.service.js.map +1 -0
  896. package/dist/backend/backend/src/services/project/ticket-editor.service.d.ts +129 -0
  897. package/dist/backend/backend/src/services/project/ticket-editor.service.d.ts.map +1 -0
  898. package/dist/backend/backend/src/services/project/ticket-editor.service.js +405 -0
  899. package/dist/backend/backend/src/services/project/ticket-editor.service.js.map +1 -0
  900. package/dist/backend/backend/src/services/prompt/index.d.ts +7 -0
  901. package/dist/backend/backend/src/services/prompt/index.d.ts.map +1 -0
  902. package/dist/backend/backend/src/services/prompt/index.js +7 -0
  903. package/dist/backend/backend/src/services/prompt/index.js.map +1 -0
  904. package/dist/backend/backend/src/services/prompt/prompt-generator.service.d.ts +106 -0
  905. package/dist/backend/backend/src/services/prompt/prompt-generator.service.d.ts.map +1 -0
  906. package/dist/backend/backend/src/services/prompt/prompt-generator.service.js +287 -0
  907. package/dist/backend/backend/src/services/prompt/prompt-generator.service.js.map +1 -0
  908. package/dist/backend/backend/src/services/quality/index.d.ts +10 -0
  909. package/dist/backend/backend/src/services/quality/index.d.ts.map +1 -0
  910. package/dist/backend/backend/src/services/quality/index.js +10 -0
  911. package/dist/backend/backend/src/services/quality/index.js.map +1 -0
  912. package/dist/backend/backend/src/services/quality/quality-gate.service.d.ts +223 -0
  913. package/dist/backend/backend/src/services/quality/quality-gate.service.d.ts.map +1 -0
  914. package/dist/backend/backend/src/services/quality/quality-gate.service.js +388 -0
  915. package/dist/backend/backend/src/services/quality/quality-gate.service.js.map +1 -0
  916. package/dist/backend/backend/src/services/session/index.d.ts +43 -0
  917. package/dist/backend/backend/src/services/session/index.d.ts.map +1 -0
  918. package/dist/backend/backend/src/services/session/index.js +46 -0
  919. package/dist/backend/backend/src/services/session/index.js.map +1 -0
  920. package/dist/backend/backend/src/services/session/pty/index.d.ts +11 -0
  921. package/dist/backend/backend/src/services/session/pty/index.d.ts.map +1 -0
  922. package/dist/backend/backend/src/services/session/pty/index.js +11 -0
  923. package/dist/backend/backend/src/services/session/pty/index.js.map +1 -0
  924. package/dist/backend/backend/src/services/session/pty/pty-session-backend.d.ts +258 -0
  925. package/dist/backend/backend/src/services/session/pty/pty-session-backend.d.ts.map +1 -0
  926. package/dist/backend/backend/src/services/session/pty/pty-session-backend.js +435 -0
  927. package/dist/backend/backend/src/services/session/pty/pty-session-backend.js.map +1 -0
  928. package/dist/backend/backend/src/services/session/pty/pty-session.d.ts +196 -0
  929. package/dist/backend/backend/src/services/session/pty/pty-session.d.ts.map +1 -0
  930. package/dist/backend/backend/src/services/session/pty/pty-session.js +393 -0
  931. package/dist/backend/backend/src/services/session/pty/pty-session.js.map +1 -0
  932. package/dist/backend/backend/src/services/session/pty/pty-terminal-buffer.d.ts +241 -0
  933. package/dist/backend/backend/src/services/session/pty/pty-terminal-buffer.d.ts.map +1 -0
  934. package/dist/backend/backend/src/services/session/pty/pty-terminal-buffer.js +351 -0
  935. package/dist/backend/backend/src/services/session/pty/pty-terminal-buffer.js.map +1 -0
  936. package/dist/backend/backend/src/services/session/session-backend.factory.d.ts +127 -0
  937. package/dist/backend/backend/src/services/session/session-backend.factory.d.ts.map +1 -0
  938. package/dist/backend/backend/src/services/session/session-backend.factory.js +226 -0
  939. package/dist/backend/backend/src/services/session/session-backend.factory.js.map +1 -0
  940. package/dist/backend/backend/src/services/session/session-backend.interface.d.ts +358 -0
  941. package/dist/backend/backend/src/services/session/session-backend.interface.d.ts.map +1 -0
  942. package/dist/backend/backend/src/services/session/session-backend.interface.js +19 -0
  943. package/dist/backend/backend/src/services/session/session-backend.interface.js.map +1 -0
  944. package/dist/backend/backend/src/services/session/session-command-helper.d.ts +327 -0
  945. package/dist/backend/backend/src/services/session/session-command-helper.d.ts.map +1 -0
  946. package/dist/backend/backend/src/services/session/session-command-helper.js +687 -0
  947. package/dist/backend/backend/src/services/session/session-command-helper.js.map +1 -0
  948. package/dist/backend/backend/src/services/session/session-state-persistence.d.ts +228 -0
  949. package/dist/backend/backend/src/services/session/session-state-persistence.d.ts.map +1 -0
  950. package/dist/backend/backend/src/services/session/session-state-persistence.js +394 -0
  951. package/dist/backend/backend/src/services/session/session-state-persistence.js.map +1 -0
  952. package/dist/backend/backend/src/services/settings/index.d.ts +10 -0
  953. package/dist/backend/backend/src/services/settings/index.d.ts.map +1 -0
  954. package/dist/backend/backend/src/services/settings/index.js +12 -0
  955. package/dist/backend/backend/src/services/settings/index.js.map +1 -0
  956. package/dist/backend/backend/src/services/settings/role.service.d.ts +276 -0
  957. package/dist/backend/backend/src/services/settings/role.service.d.ts.map +1 -0
  958. package/dist/backend/backend/src/services/settings/role.service.js +726 -0
  959. package/dist/backend/backend/src/services/settings/role.service.js.map +1 -0
  960. package/dist/backend/backend/src/services/settings/settings.service.d.ts +160 -0
  961. package/dist/backend/backend/src/services/settings/settings.service.d.ts.map +1 -0
  962. package/dist/backend/backend/src/services/settings/settings.service.js +294 -0
  963. package/dist/backend/backend/src/services/settings/settings.service.js.map +1 -0
  964. package/dist/backend/backend/src/services/skill/index.d.ts +10 -0
  965. package/dist/backend/backend/src/services/skill/index.d.ts.map +1 -0
  966. package/dist/backend/backend/src/services/skill/index.js +10 -0
  967. package/dist/backend/backend/src/services/skill/index.js.map +1 -0
  968. package/dist/backend/backend/src/services/skill/skill-catalog.service.d.ts +236 -0
  969. package/dist/backend/backend/src/services/skill/skill-catalog.service.d.ts.map +1 -0
  970. package/dist/backend/backend/src/services/skill/skill-catalog.service.js +550 -0
  971. package/dist/backend/backend/src/services/skill/skill-catalog.service.js.map +1 -0
  972. package/dist/backend/backend/src/services/skill/skill-executor.service.d.ts +135 -0
  973. package/dist/backend/backend/src/services/skill/skill-executor.service.d.ts.map +1 -0
  974. package/dist/backend/backend/src/services/skill/skill-executor.service.js +493 -0
  975. package/dist/backend/backend/src/services/skill/skill-executor.service.js.map +1 -0
  976. package/dist/backend/backend/src/services/skill/skill.service.d.ts +241 -0
  977. package/dist/backend/backend/src/services/skill/skill.service.d.ts.map +1 -0
  978. package/dist/backend/backend/src/services/skill/skill.service.js +542 -0
  979. package/dist/backend/backend/src/services/skill/skill.service.js.map +1 -0
  980. package/dist/backend/backend/src/services/slack/index.d.ts +13 -0
  981. package/dist/backend/backend/src/services/slack/index.d.ts.map +1 -0
  982. package/dist/backend/backend/src/services/slack/index.js +13 -0
  983. package/dist/backend/backend/src/services/slack/index.js.map +1 -0
  984. package/dist/backend/backend/src/services/slack/notify-reconciliation.service.d.ts +63 -0
  985. package/dist/backend/backend/src/services/slack/notify-reconciliation.service.d.ts.map +1 -0
  986. package/dist/backend/backend/src/services/slack/notify-reconciliation.service.js +182 -0
  987. package/dist/backend/backend/src/services/slack/notify-reconciliation.service.js.map +1 -0
  988. package/dist/backend/backend/src/services/slack/slack-image.service.d.ts +113 -0
  989. package/dist/backend/backend/src/services/slack/slack-image.service.d.ts.map +1 -0
  990. package/dist/backend/backend/src/services/slack/slack-image.service.js +329 -0
  991. package/dist/backend/backend/src/services/slack/slack-image.service.js.map +1 -0
  992. package/dist/backend/backend/src/services/slack/slack-initializer.d.ts +71 -0
  993. package/dist/backend/backend/src/services/slack/slack-initializer.d.ts.map +1 -0
  994. package/dist/backend/backend/src/services/slack/slack-initializer.js +106 -0
  995. package/dist/backend/backend/src/services/slack/slack-initializer.js.map +1 -0
  996. package/dist/backend/backend/src/services/slack/slack-orchestrator-bridge.d.ts +302 -0
  997. package/dist/backend/backend/src/services/slack/slack-orchestrator-bridge.d.ts.map +1 -0
  998. package/dist/backend/backend/src/services/slack/slack-orchestrator-bridge.js +806 -0
  999. package/dist/backend/backend/src/services/slack/slack-orchestrator-bridge.js.map +1 -0
  1000. package/dist/backend/backend/src/services/slack/slack-thread-store.service.d.ts +147 -0
  1001. package/dist/backend/backend/src/services/slack/slack-thread-store.service.d.ts.map +1 -0
  1002. package/dist/backend/backend/src/services/slack/slack-thread-store.service.js +258 -0
  1003. package/dist/backend/backend/src/services/slack/slack-thread-store.service.js.map +1 -0
  1004. package/dist/backend/backend/src/services/slack/slack.service.d.ts +219 -0
  1005. package/dist/backend/backend/src/services/slack/slack.service.d.ts.map +1 -0
  1006. package/dist/backend/backend/src/services/slack/slack.service.js +551 -0
  1007. package/dist/backend/backend/src/services/slack/slack.service.js.map +1 -0
  1008. package/dist/backend/backend/src/services/sop/index.d.ts +9 -0
  1009. package/dist/backend/backend/src/services/sop/index.d.ts.map +1 -0
  1010. package/dist/backend/backend/src/services/sop/index.js +9 -0
  1011. package/dist/backend/backend/src/services/sop/index.js.map +1 -0
  1012. package/dist/backend/backend/src/services/sop/sop.service.d.ts +286 -0
  1013. package/dist/backend/backend/src/services/sop/sop.service.d.ts.map +1 -0
  1014. package/dist/backend/backend/src/services/sop/sop.service.js +583 -0
  1015. package/dist/backend/backend/src/services/sop/sop.service.js.map +1 -0
  1016. package/dist/backend/backend/src/services/system/version-check.service.d.ts +112 -0
  1017. package/dist/backend/backend/src/services/system/version-check.service.d.ts.map +1 -0
  1018. package/dist/backend/backend/src/services/system/version-check.service.js +195 -0
  1019. package/dist/backend/backend/src/services/system/version-check.service.js.map +1 -0
  1020. package/dist/backend/backend/src/services/workflow/message-scheduler.service.d.ts +99 -0
  1021. package/dist/backend/backend/src/services/workflow/message-scheduler.service.d.ts.map +1 -0
  1022. package/dist/backend/backend/src/services/workflow/message-scheduler.service.js +408 -0
  1023. package/dist/backend/backend/src/services/workflow/message-scheduler.service.js.map +1 -0
  1024. package/dist/backend/backend/src/services/workflow/scheduler.service.d.ts +300 -0
  1025. package/dist/backend/backend/src/services/workflow/scheduler.service.d.ts.map +1 -0
  1026. package/dist/backend/backend/src/services/workflow/scheduler.service.js +924 -0
  1027. package/dist/backend/backend/src/services/workflow/scheduler.service.js.map +1 -0
  1028. package/dist/backend/backend/src/types/auto-assign.types.d.ts +271 -0
  1029. package/dist/backend/backend/src/types/auto-assign.types.d.ts.map +1 -0
  1030. package/dist/backend/backend/src/types/auto-assign.types.js +136 -0
  1031. package/dist/backend/backend/src/types/auto-assign.types.js.map +1 -0
  1032. package/dist/backend/backend/src/types/budget.types.d.ts +217 -0
  1033. package/dist/backend/backend/src/types/budget.types.d.ts.map +1 -0
  1034. package/dist/backend/backend/src/types/budget.types.js +82 -0
  1035. package/dist/backend/backend/src/types/budget.types.js.map +1 -0
  1036. package/dist/backend/backend/src/types/chat.types.d.ts +550 -0
  1037. package/dist/backend/backend/src/types/chat.types.d.ts.map +1 -0
  1038. package/dist/backend/backend/src/types/chat.types.js +743 -0
  1039. package/dist/backend/backend/src/types/chat.types.js.map +1 -0
  1040. package/dist/backend/backend/src/types/continuation.types.d.ts +237 -0
  1041. package/dist/backend/backend/src/types/continuation.types.d.ts.map +1 -0
  1042. package/dist/backend/backend/src/types/continuation.types.js +10 -0
  1043. package/dist/backend/backend/src/types/continuation.types.js.map +1 -0
  1044. package/dist/backend/backend/src/types/event-bus.types.d.ts +112 -0
  1045. package/dist/backend/backend/src/types/event-bus.types.d.ts.map +1 -0
  1046. package/dist/backend/backend/src/types/event-bus.types.js +82 -0
  1047. package/dist/backend/backend/src/types/event-bus.types.js.map +1 -0
  1048. package/dist/backend/backend/src/types/index.d.ts +161 -0
  1049. package/dist/backend/backend/src/types/index.d.ts.map +1 -0
  1050. package/dist/backend/backend/src/types/index.js +23 -0
  1051. package/dist/backend/backend/src/types/index.js.map +1 -0
  1052. package/dist/backend/backend/src/types/knowledge.types.d.ts +195 -0
  1053. package/dist/backend/backend/src/types/knowledge.types.d.ts.map +1 -0
  1054. package/dist/backend/backend/src/types/knowledge.types.js +38 -0
  1055. package/dist/backend/backend/src/types/knowledge.types.js.map +1 -0
  1056. package/dist/backend/backend/src/types/marketplace.types.d.ts +68 -0
  1057. package/dist/backend/backend/src/types/marketplace.types.d.ts.map +1 -0
  1058. package/dist/backend/backend/src/types/marketplace.types.js +6 -0
  1059. package/dist/backend/backend/src/types/marketplace.types.js.map +1 -0
  1060. package/dist/backend/backend/src/types/memory.types.d.ts +587 -0
  1061. package/dist/backend/backend/src/types/memory.types.d.ts.map +1 -0
  1062. package/dist/backend/backend/src/types/memory.types.js +47 -0
  1063. package/dist/backend/backend/src/types/memory.types.js.map +1 -0
  1064. package/dist/backend/backend/src/types/messaging.types.d.ts +216 -0
  1065. package/dist/backend/backend/src/types/messaging.types.d.ts.map +1 -0
  1066. package/dist/backend/backend/src/types/messaging.types.js +224 -0
  1067. package/dist/backend/backend/src/types/messaging.types.js.map +1 -0
  1068. package/dist/backend/backend/src/types/orchestrator-state.types.d.ts +482 -0
  1069. package/dist/backend/backend/src/types/orchestrator-state.types.d.ts.map +1 -0
  1070. package/dist/backend/backend/src/types/orchestrator-state.types.js +83 -0
  1071. package/dist/backend/backend/src/types/orchestrator-state.types.js.map +1 -0
  1072. package/dist/backend/backend/src/types/quality-gate.types.d.ts +171 -0
  1073. package/dist/backend/backend/src/types/quality-gate.types.d.ts.map +1 -0
  1074. package/dist/backend/backend/src/types/quality-gate.types.js +42 -0
  1075. package/dist/backend/backend/src/types/quality-gate.types.js.map +1 -0
  1076. package/dist/backend/backend/src/types/role.types.d.ts +260 -0
  1077. package/dist/backend/backend/src/types/role.types.d.ts.map +1 -0
  1078. package/dist/backend/backend/src/types/role.types.js +238 -0
  1079. package/dist/backend/backend/src/types/role.types.js.map +1 -0
  1080. package/dist/backend/backend/src/types/scheduler.types.d.ts +237 -0
  1081. package/dist/backend/backend/src/types/scheduler.types.d.ts.map +1 -0
  1082. package/dist/backend/backend/src/types/scheduler.types.js +32 -0
  1083. package/dist/backend/backend/src/types/scheduler.types.js.map +1 -0
  1084. package/dist/backend/backend/src/types/settings.types.d.ts +178 -0
  1085. package/dist/backend/backend/src/types/settings.types.d.ts.map +1 -0
  1086. package/dist/backend/backend/src/types/settings.types.js +206 -0
  1087. package/dist/backend/backend/src/types/settings.types.js.map +1 -0
  1088. package/dist/backend/backend/src/types/skill.types.d.ts +515 -0
  1089. package/dist/backend/backend/src/types/skill.types.d.ts.map +1 -0
  1090. package/dist/backend/backend/src/types/skill.types.js +481 -0
  1091. package/dist/backend/backend/src/types/skill.types.js.map +1 -0
  1092. package/dist/backend/backend/src/types/slack.types.d.ts +329 -0
  1093. package/dist/backend/backend/src/types/slack.types.d.ts.map +1 -0
  1094. package/dist/backend/backend/src/types/slack.types.js +66 -0
  1095. package/dist/backend/backend/src/types/slack.types.js.map +1 -0
  1096. package/dist/backend/backend/src/types/sop.types.d.ts +224 -0
  1097. package/dist/backend/backend/src/types/sop.types.d.ts.map +1 -0
  1098. package/dist/backend/backend/src/types/sop.types.js +85 -0
  1099. package/dist/backend/backend/src/types/sop.types.js.map +1 -0
  1100. package/dist/backend/backend/src/types/task-tracking.types.d.ts +91 -0
  1101. package/dist/backend/backend/src/types/task-tracking.types.d.ts.map +1 -0
  1102. package/dist/backend/backend/src/types/task-tracking.types.js +5 -0
  1103. package/dist/backend/backend/src/types/task-tracking.types.js.map +1 -0
  1104. package/dist/backend/backend/src/utils/async.utils.d.ts +68 -0
  1105. package/dist/backend/backend/src/utils/async.utils.d.ts.map +1 -0
  1106. package/dist/backend/backend/src/utils/async.utils.js +80 -0
  1107. package/dist/backend/backend/src/utils/async.utils.js.map +1 -0
  1108. package/dist/backend/backend/src/utils/defaultPrompts.d.ts +5 -0
  1109. package/dist/backend/backend/src/utils/defaultPrompts.d.ts.map +1 -0
  1110. package/dist/backend/backend/src/utils/defaultPrompts.js +285 -0
  1111. package/dist/backend/backend/src/utils/defaultPrompts.js.map +1 -0
  1112. package/dist/backend/backend/src/utils/file-io.utils.d.ts +102 -0
  1113. package/dist/backend/backend/src/utils/file-io.utils.d.ts.map +1 -0
  1114. package/dist/backend/backend/src/utils/file-io.utils.js +214 -0
  1115. package/dist/backend/backend/src/utils/file-io.utils.js.map +1 -0
  1116. package/dist/backend/backend/src/utils/package-root.d.ts +15 -0
  1117. package/dist/backend/backend/src/utils/package-root.d.ts.map +1 -0
  1118. package/dist/backend/backend/src/utils/package-root.js +38 -0
  1119. package/dist/backend/backend/src/utils/package-root.js.map +1 -0
  1120. package/dist/backend/backend/src/utils/process-recovery.d.ts +81 -0
  1121. package/dist/backend/backend/src/utils/process-recovery.d.ts.map +1 -0
  1122. package/dist/backend/backend/src/utils/process-recovery.js +283 -0
  1123. package/dist/backend/backend/src/utils/process-recovery.js.map +1 -0
  1124. package/dist/backend/backend/src/utils/prompt-resolver.d.ts +79 -0
  1125. package/dist/backend/backend/src/utils/prompt-resolver.d.ts.map +1 -0
  1126. package/dist/backend/backend/src/utils/prompt-resolver.js +132 -0
  1127. package/dist/backend/backend/src/utils/prompt-resolver.js.map +1 -0
  1128. package/dist/backend/backend/src/utils/resource-monitor.d.ts +177 -0
  1129. package/dist/backend/backend/src/utils/resource-monitor.d.ts.map +1 -0
  1130. package/dist/backend/backend/src/utils/resource-monitor.js +404 -0
  1131. package/dist/backend/backend/src/utils/resource-monitor.js.map +1 -0
  1132. package/dist/backend/backend/src/utils/security.d.ts +194 -0
  1133. package/dist/backend/backend/src/utils/security.d.ts.map +1 -0
  1134. package/dist/backend/backend/src/utils/security.js +533 -0
  1135. package/dist/backend/backend/src/utils/security.js.map +1 -0
  1136. package/dist/backend/backend/src/utils/terminal-output.utils.d.ts +54 -0
  1137. package/dist/backend/backend/src/utils/terminal-output.utils.d.ts.map +1 -0
  1138. package/dist/backend/backend/src/utils/terminal-output.utils.js +97 -0
  1139. package/dist/backend/backend/src/utils/terminal-output.utils.js.map +1 -0
  1140. package/dist/backend/backend/src/websocket/chat.gateway.d.ts +127 -0
  1141. package/dist/backend/backend/src/websocket/chat.gateway.d.ts.map +1 -0
  1142. package/dist/backend/backend/src/websocket/chat.gateway.js +306 -0
  1143. package/dist/backend/backend/src/websocket/chat.gateway.js.map +1 -0
  1144. package/dist/backend/backend/src/websocket/file-watcher.gateway.d.ts +54 -0
  1145. package/dist/backend/backend/src/websocket/file-watcher.gateway.d.ts.map +1 -0
  1146. package/dist/backend/backend/src/websocket/file-watcher.gateway.js +202 -0
  1147. package/dist/backend/backend/src/websocket/file-watcher.gateway.js.map +1 -0
  1148. package/dist/backend/backend/src/websocket/terminal.gateway.d.ts +310 -0
  1149. package/dist/backend/backend/src/websocket/terminal.gateway.d.ts.map +1 -0
  1150. package/dist/backend/backend/src/websocket/terminal.gateway.js +980 -0
  1151. package/dist/backend/backend/src/websocket/terminal.gateway.js.map +1 -0
  1152. package/dist/backend/config/constants.d.ts +722 -0
  1153. package/dist/backend/config/constants.d.ts.map +1 -0
  1154. package/dist/backend/config/constants.js +752 -0
  1155. package/dist/backend/config/constants.js.map +1 -0
  1156. package/dist/backend/config/index.d.ts +344 -0
  1157. package/dist/backend/config/index.d.ts.map +1 -0
  1158. package/dist/backend/config/index.js +42 -0
  1159. package/dist/backend/config/index.js.map +1 -0
  1160. package/dist/backend/config/quality-gates/default-gates.d.ts +71 -0
  1161. package/dist/backend/config/quality-gates/default-gates.d.ts.map +1 -0
  1162. package/dist/backend/config/quality-gates/default-gates.js +168 -0
  1163. package/dist/backend/config/quality-gates/default-gates.js.map +1 -0
  1164. package/dist/cli/cli/src/commands/logs.d.ts +7 -0
  1165. package/dist/cli/cli/src/commands/logs.d.ts.map +1 -0
  1166. package/dist/cli/cli/src/commands/logs.js +198 -0
  1167. package/dist/cli/cli/src/commands/logs.js.map +1 -0
  1168. package/dist/cli/cli/src/commands/start.d.ts +8 -0
  1169. package/dist/cli/cli/src/commands/start.d.ts.map +1 -0
  1170. package/dist/cli/cli/src/commands/start.js +254 -0
  1171. package/dist/cli/cli/src/commands/start.js.map +1 -0
  1172. package/dist/cli/cli/src/commands/status.d.ts +6 -0
  1173. package/dist/cli/cli/src/commands/status.d.ts.map +1 -0
  1174. package/dist/cli/cli/src/commands/status.js +130 -0
  1175. package/dist/cli/cli/src/commands/status.js.map +1 -0
  1176. package/dist/cli/cli/src/commands/stop.d.ts +6 -0
  1177. package/dist/cli/cli/src/commands/stop.d.ts.map +1 -0
  1178. package/dist/cli/cli/src/commands/stop.js +140 -0
  1179. package/dist/cli/cli/src/commands/stop.js.map +1 -0
  1180. package/dist/cli/cli/src/commands/upgrade.d.ts +26 -0
  1181. package/dist/cli/cli/src/commands/upgrade.d.ts.map +1 -0
  1182. package/dist/cli/cli/src/commands/upgrade.js +54 -0
  1183. package/dist/cli/cli/src/commands/upgrade.js.map +1 -0
  1184. package/dist/cli/cli/src/constants.d.ts +106 -0
  1185. package/dist/cli/cli/src/constants.d.ts.map +1 -0
  1186. package/dist/cli/cli/src/constants.js +88 -0
  1187. package/dist/cli/cli/src/constants.js.map +1 -0
  1188. package/dist/cli/cli/src/index.d.ts +3 -0
  1189. package/dist/cli/cli/src/index.d.ts.map +1 -0
  1190. package/dist/cli/cli/src/index.js +60 -0
  1191. package/dist/cli/cli/src/index.js.map +1 -0
  1192. package/dist/cli/cli/src/utils/version-check.d.ts +66 -0
  1193. package/dist/cli/cli/src/utils/version-check.d.ts.map +1 -0
  1194. package/dist/cli/cli/src/utils/version-check.js +192 -0
  1195. package/dist/cli/cli/src/utils/version-check.js.map +1 -0
  1196. package/dist/cli/config/constants.d.ts +722 -0
  1197. package/dist/cli/config/constants.d.ts.map +1 -0
  1198. package/dist/cli/config/constants.js +752 -0
  1199. package/dist/cli/config/constants.js.map +1 -0
  1200. package/dist/cli/config/index.d.ts +344 -0
  1201. package/dist/cli/config/index.d.ts.map +1 -0
  1202. package/dist/cli/config/index.js +42 -0
  1203. package/dist/cli/config/index.js.map +1 -0
  1204. package/frontend/dist/assets/index-5ddf71c8.css +33 -0
  1205. package/frontend/dist/assets/index-77b6a2a0.js +4919 -0
  1206. package/frontend/dist/index.html +19 -0
  1207. package/frontend/dist/logo/crewly-icon.svg +118 -0
  1208. package/package.json +121 -0
@@ -0,0 +1,1390 @@
1
+ import * as fs from 'fs/promises';
2
+ import * as path from 'path';
3
+ import { existsSync, mkdirSync, watch } from 'fs';
4
+ import { parse as parseYAML } from 'yaml';
5
+ import { TeamModel, ProjectModel, TicketModel } from '../../models/index.js';
6
+ import { v4 as uuidv4 } from 'uuid';
7
+ import * as os from 'os';
8
+ import { CREWLY_CONSTANTS, RUNTIME_TYPES } from '../../constants.js';
9
+ import { LoggerService } from './logger.service.js';
10
+ import { TeamsBackupService } from './teams-backup.service.js';
11
+ import { atomicWriteFile, withOperationLock } from '../../utils/file-io.utils.js';
12
+ export class StorageService {
13
+ static instance = null;
14
+ static instanceHome = null;
15
+ crewlyHome;
16
+ /** @deprecated Use teamsDir instead - kept for migration */
17
+ teamsFile;
18
+ /** Directory containing individual team files */
19
+ teamsDir;
20
+ /** Orchestrator status file */
21
+ orchestratorFile;
22
+ projectsFile;
23
+ runtimeFile;
24
+ scheduledMessagesFile;
25
+ deliveryLogsFile;
26
+ recurringChecksFile;
27
+ oneTimeChecksFile;
28
+ logger;
29
+ /** Flag to track if migration has been performed */
30
+ migrationDone = false;
31
+ constructor(crewlyHome) {
32
+ this.logger = LoggerService.getInstance().createComponentLogger('StorageService');
33
+ this.crewlyHome = crewlyHome || path.join(os.homedir(), '.crewly');
34
+ this.teamsFile = path.join(this.crewlyHome, 'teams.json'); // Legacy, kept for migration
35
+ this.teamsDir = path.join(this.crewlyHome, 'teams');
36
+ // Orchestrator now uses directory structure: teams/orchestrator/config.json
37
+ this.orchestratorFile = path.join(this.teamsDir, 'orchestrator', 'config.json');
38
+ this.projectsFile = path.join(this.crewlyHome, 'projects.json');
39
+ this.runtimeFile = path.join(this.crewlyHome, 'runtime.json');
40
+ this.scheduledMessagesFile = path.join(this.crewlyHome, 'scheduled-messages.json');
41
+ this.deliveryLogsFile = path.join(this.crewlyHome, 'message-delivery-logs.json');
42
+ this.recurringChecksFile = path.join(this.crewlyHome, 'recurring-checks.json');
43
+ this.oneTimeChecksFile = path.join(this.crewlyHome, 'one-time-checks.json');
44
+ this.ensureDirectories();
45
+ this.logger.info('StorageService initialized', { crewlyHome: this.crewlyHome });
46
+ }
47
+ /**
48
+ * Get singleton instance of StorageService to prevent multiple instances
49
+ * from interfering with each other's file operations
50
+ */
51
+ static getInstance(crewlyHome) {
52
+ const homeDir = crewlyHome || path.join(os.homedir(), '.crewly');
53
+ // Return existing instance if it matches the same home directory
54
+ if (StorageService.instance && StorageService.instanceHome === homeDir) {
55
+ return StorageService.instance;
56
+ }
57
+ // Create new instance if none exists or home directory changed
58
+ StorageService.instance = new StorageService(homeDir);
59
+ StorageService.instanceHome = homeDir;
60
+ return StorageService.instance;
61
+ }
62
+ /**
63
+ * Clear singleton instance (useful for testing)
64
+ */
65
+ static clearInstance() {
66
+ StorageService.instance = null;
67
+ StorageService.instanceHome = null;
68
+ }
69
+ /**
70
+ * Ensures the crewly home and teams directories exist, creating them if necessary
71
+ */
72
+ ensureDirectories() {
73
+ if (!existsSync(this.crewlyHome)) {
74
+ mkdirSync(this.crewlyHome, { recursive: true });
75
+ }
76
+ if (!existsSync(this.teamsDir)) {
77
+ mkdirSync(this.teamsDir, { recursive: true });
78
+ }
79
+ // Ensure orchestrator directory exists
80
+ const orchestratorDir = path.join(this.teamsDir, 'orchestrator');
81
+ if (!existsSync(orchestratorDir)) {
82
+ mkdirSync(orchestratorDir, { recursive: true });
83
+ }
84
+ }
85
+ /**
86
+ * Get the directory path for a team.
87
+ *
88
+ * @param teamId - The team ID
89
+ * @returns Path to the team directory
90
+ */
91
+ getTeamDir(teamId) {
92
+ return path.join(this.teamsDir, teamId);
93
+ }
94
+ /**
95
+ * Get the prompts directory path for a team.
96
+ *
97
+ * @param teamId - The team ID
98
+ * @returns Path to the team's prompts directory
99
+ */
100
+ getTeamPromptsDir(teamId) {
101
+ return path.join(this.teamsDir, teamId, 'prompts');
102
+ }
103
+ /**
104
+ * Get the prompt file path for a team member.
105
+ *
106
+ * @param teamId - The team ID
107
+ * @param memberId - The member ID
108
+ * @returns Path to the member's prompt file
109
+ */
110
+ getMemberPromptPath(teamId, memberId) {
111
+ return path.join(this.getTeamPromptsDir(teamId), `${memberId}.md`);
112
+ }
113
+ /**
114
+ * Get the orchestrator prompt file path.
115
+ *
116
+ * @returns Path to the orchestrator's prompt file
117
+ */
118
+ getOrchestratorPromptPath() {
119
+ return path.join(this.teamsDir, 'orchestrator', 'prompt.md');
120
+ }
121
+ /**
122
+ * Migrate from old storage formats to new directory structure.
123
+ * Handles: teams.json -> teams/{team-id}/config.json
124
+ * teams/{team-id}.json -> teams/{team-id}/config.json
125
+ * teams/orchestrator.json -> teams/orchestrator/config.json
126
+ */
127
+ async migrateFromLegacyTeamsFile() {
128
+ if (this.migrationDone) {
129
+ return;
130
+ }
131
+ this.migrationDone = true;
132
+ // Migration 1: From old teams.json (single file with all teams)
133
+ if (existsSync(this.teamsFile)) {
134
+ try {
135
+ const content = await fs.readFile(this.teamsFile, 'utf-8');
136
+ const data = JSON.parse(content);
137
+ // Migrate orchestrator to directory structure
138
+ if (data.orchestrator) {
139
+ const orchestratorDir = path.join(this.teamsDir, 'orchestrator');
140
+ if (!existsSync(orchestratorDir)) {
141
+ mkdirSync(orchestratorDir, { recursive: true });
142
+ }
143
+ if (!existsSync(this.orchestratorFile)) {
144
+ await atomicWriteFile(this.orchestratorFile, JSON.stringify(data.orchestrator, null, 2));
145
+ this.logger.info('Migrated orchestrator to directory structure');
146
+ }
147
+ }
148
+ // Migrate teams to directory structure
149
+ const teams = data.teams || (Array.isArray(data) ? data : []);
150
+ for (const team of teams) {
151
+ if (team.id) {
152
+ await this.migrateTeamToDirectory(team);
153
+ }
154
+ }
155
+ // Backup legacy file
156
+ const backupPath = `${this.teamsFile}.migrated.${Date.now()}`;
157
+ await fs.rename(this.teamsFile, backupPath);
158
+ this.logger.info('Legacy teams.json backed up after migration', { backupPath });
159
+ }
160
+ catch (error) {
161
+ this.logger.warn('Error during legacy teams.json migration (non-fatal)', {
162
+ error: error instanceof Error ? error.message : String(error),
163
+ });
164
+ }
165
+ }
166
+ // Migration 2: From flat team files (teams/{team-id}.json) to directory structure
167
+ await this.migrateFlatTeamFiles();
168
+ // Migration 3: From flat orchestrator file (teams/orchestrator.json) to directory
169
+ const flatOrchestratorFile = path.join(this.teamsDir, 'orchestrator.json');
170
+ if (existsSync(flatOrchestratorFile) && !existsSync(this.orchestratorFile)) {
171
+ try {
172
+ const content = await fs.readFile(flatOrchestratorFile, 'utf-8');
173
+ const orchestrator = JSON.parse(content);
174
+ const orchestratorDir = path.join(this.teamsDir, 'orchestrator');
175
+ if (!existsSync(orchestratorDir)) {
176
+ mkdirSync(orchestratorDir, { recursive: true });
177
+ }
178
+ await atomicWriteFile(this.orchestratorFile, JSON.stringify(orchestrator, null, 2));
179
+ await fs.rename(flatOrchestratorFile, `${flatOrchestratorFile}.migrated.${Date.now()}`);
180
+ this.logger.info('Migrated flat orchestrator.json to directory structure');
181
+ }
182
+ catch (error) {
183
+ this.logger.warn('Error migrating flat orchestrator.json (non-fatal)', {
184
+ error: error instanceof Error ? error.message : String(error),
185
+ });
186
+ }
187
+ }
188
+ }
189
+ /**
190
+ * Migrate flat team files (teams/{team-id}.json) to directory structure (teams/{team-id}/config.json).
191
+ */
192
+ async migrateFlatTeamFiles() {
193
+ try {
194
+ const files = await fs.readdir(this.teamsDir);
195
+ for (const file of files) {
196
+ // Skip directories and non-json files
197
+ if (!file.endsWith('.json') || file === 'orchestrator.json')
198
+ continue;
199
+ const filePath = path.join(this.teamsDir, file);
200
+ const stat = await fs.stat(filePath);
201
+ if (stat.isDirectory())
202
+ continue;
203
+ try {
204
+ const content = await fs.readFile(filePath, 'utf-8');
205
+ const team = JSON.parse(content);
206
+ if (team.id) {
207
+ await this.migrateTeamToDirectory(team);
208
+ // Backup flat file
209
+ await fs.rename(filePath, `${filePath}.migrated.${Date.now()}`);
210
+ this.logger.info('Migrated flat team file to directory', { teamId: team.id });
211
+ }
212
+ }
213
+ catch (error) {
214
+ this.logger.warn('Error migrating flat team file (non-fatal)', {
215
+ file,
216
+ error: error instanceof Error ? error.message : String(error),
217
+ });
218
+ }
219
+ }
220
+ }
221
+ catch (error) {
222
+ this.logger.warn('Error scanning for flat team files (non-fatal)', {
223
+ error: error instanceof Error ? error.message : String(error),
224
+ });
225
+ }
226
+ }
227
+ /**
228
+ * Migrate a team to the new directory structure.
229
+ * Creates teams/{team-id}/config.json and teams/{team-id}/prompts/{member-id}.md
230
+ */
231
+ async migrateTeamToDirectory(team) {
232
+ const teamDir = this.getTeamDir(team.id);
233
+ const teamConfigFile = path.join(teamDir, 'config.json');
234
+ const promptsDir = this.getTeamPromptsDir(team.id);
235
+ // Create team directory structure
236
+ if (!existsSync(teamDir)) {
237
+ mkdirSync(teamDir, { recursive: true });
238
+ }
239
+ if (!existsSync(promptsDir)) {
240
+ mkdirSync(promptsDir, { recursive: true });
241
+ }
242
+ // Save team config (without inline prompts if they exist)
243
+ if (!existsSync(teamConfigFile)) {
244
+ await atomicWriteFile(teamConfigFile, JSON.stringify(team, null, 2));
245
+ }
246
+ // Extract member prompts to individual files
247
+ for (const member of team.members || []) {
248
+ if (member.systemPrompt) {
249
+ const promptPath = this.getMemberPromptPath(team.id, member.id);
250
+ if (!existsSync(promptPath)) {
251
+ await atomicWriteFile(promptPath, member.systemPrompt);
252
+ this.logger.debug('Extracted member prompt to file', {
253
+ teamId: team.id,
254
+ memberId: member.id,
255
+ promptPath,
256
+ });
257
+ }
258
+ }
259
+ }
260
+ this.logger.info('Migrated team to directory structure', {
261
+ teamId: team.id,
262
+ teamName: team.name,
263
+ memberCount: team.members?.length || 0,
264
+ });
265
+ }
266
+ /**
267
+ * Creates default orchestrator configuration object
268
+ * @returns Default orchestrator settings with inactive status
269
+ */
270
+ createDefaultOrchestrator() {
271
+ return {
272
+ sessionName: CREWLY_CONSTANTS.SESSIONS.ORCHESTRATOR_NAME,
273
+ agentStatus: CREWLY_CONSTANTS.AGENT_STATUSES.INACTIVE,
274
+ workingStatus: CREWLY_CONSTANTS.WORKING_STATUSES.IDLE,
275
+ runtimeType: RUNTIME_TYPES.CLAUDE_CODE,
276
+ createdAt: new Date().toISOString(),
277
+ updatedAt: new Date().toISOString()
278
+ };
279
+ }
280
+ /**
281
+ * Ensures a storage file exists and is valid JSON, creating or recovering it if needed
282
+ * @param filePath - Path to the storage file
283
+ * @param defaultContent - Default content to use if file needs to be created/recovered
284
+ */
285
+ async ensureFile(filePath, defaultContent = []) {
286
+ const fileName = path.basename(filePath);
287
+ if (!existsSync(filePath)) {
288
+ this.logger.info('Creating new storage file', { file: fileName });
289
+ await atomicWriteFile(filePath, JSON.stringify(defaultContent, null, 2));
290
+ }
291
+ else {
292
+ // File exists - validate it's not corrupted
293
+ try {
294
+ const content = await fs.readFile(filePath, 'utf-8');
295
+ const parsed = JSON.parse(content);
296
+ // If file is empty or has invalid content (null/undefined), reinitialize with defaults
297
+ if (!content.trim() || parsed === null || parsed === undefined) {
298
+ this.logger.warn('Storage file exists but appears empty/corrupted, creating backup and initializing with defaults', {
299
+ file: fileName,
300
+ contentLength: content?.length || 0,
301
+ });
302
+ // Backup even empty files for debugging
303
+ const backupPath = `${filePath}.empty.${Date.now()}`;
304
+ try {
305
+ await fs.copyFile(filePath, backupPath);
306
+ this.logger.info('Backed up empty file', { backupPath });
307
+ }
308
+ catch {
309
+ // Ignore backup errors
310
+ }
311
+ await atomicWriteFile(filePath, JSON.stringify(defaultContent, null, 2));
312
+ }
313
+ }
314
+ catch (error) {
315
+ // File exists but can't be parsed - back it up and create new one
316
+ this.logger.warn('Storage file exists but cannot be parsed, backing up and reinitializing', {
317
+ file: fileName,
318
+ error: error instanceof Error ? error.message : String(error),
319
+ });
320
+ const backupPath = `${filePath}.backup.${Date.now()}`;
321
+ try {
322
+ await fs.copyFile(filePath, backupPath);
323
+ this.logger.info('Backed up corrupted file', { backupPath });
324
+ }
325
+ catch (backupError) {
326
+ this.logger.error('Failed to backup corrupted file', {
327
+ error: backupError instanceof Error ? backupError.message : String(backupError),
328
+ });
329
+ }
330
+ await atomicWriteFile(filePath, JSON.stringify(defaultContent, null, 2));
331
+ }
332
+ }
333
+ }
334
+ // Team management
335
+ /**
336
+ * Get all teams from team directories.
337
+ * Each team is stored as teams/{teamId}/config.json for isolation.
338
+ *
339
+ * @returns Array of all teams
340
+ */
341
+ async getTeams() {
342
+ try {
343
+ // Migrate from legacy format if needed
344
+ await this.migrateFromLegacyTeamsFile();
345
+ // Ensure teams directory exists
346
+ if (!existsSync(this.teamsDir)) {
347
+ mkdirSync(this.teamsDir, { recursive: true });
348
+ return [];
349
+ }
350
+ // Read all team directories
351
+ const entries = await fs.readdir(this.teamsDir, { withFileTypes: true });
352
+ const teamDirs = entries.filter(e => e.isDirectory() && e.name !== 'orchestrator');
353
+ const teams = [];
354
+ for (const dir of teamDirs) {
355
+ try {
356
+ const configPath = path.join(this.teamsDir, dir.name, 'config.json');
357
+ if (!existsSync(configPath)) {
358
+ continue; // Skip directories without config.json
359
+ }
360
+ const content = await fs.readFile(configPath, 'utf-8');
361
+ const team = JSON.parse(content);
362
+ const processedTeam = TeamModel.fromJSON(team).toJSON();
363
+ teams.push(processedTeam);
364
+ }
365
+ catch (fileError) {
366
+ this.logger.warn('Error reading team config, skipping', {
367
+ teamDir: dir.name,
368
+ error: fileError instanceof Error ? fileError.message : String(fileError),
369
+ });
370
+ }
371
+ }
372
+ this.logger.debug('Retrieved teams from storage', { count: teams.length });
373
+ return teams;
374
+ }
375
+ catch (error) {
376
+ this.logger.error('Error reading teams', {
377
+ error: error instanceof Error ? error.message : String(error),
378
+ });
379
+ return [];
380
+ }
381
+ }
382
+ /**
383
+ * Save a team to its directory structure.
384
+ * Each team is stored as teams/{teamId}/config.json for isolation and resilience.
385
+ * Member prompts are saved to teams/{teamId}/prompts/{memberId}.md
386
+ *
387
+ * @param team - The team to save
388
+ */
389
+ async saveTeam(team) {
390
+ const teamDir = this.getTeamDir(team.id);
391
+ const teamFile = path.join(teamDir, 'config.json');
392
+ const promptsDir = this.getTeamPromptsDir(team.id);
393
+ // Use operation lock on the team directory
394
+ return withOperationLock(teamDir, async () => {
395
+ try {
396
+ // Ensure team directory structure exists
397
+ if (!existsSync(teamDir)) {
398
+ mkdirSync(teamDir, { recursive: true });
399
+ }
400
+ if (!existsSync(promptsDir)) {
401
+ mkdirSync(promptsDir, { recursive: true });
402
+ }
403
+ // Check if this is an update or create
404
+ const isUpdate = existsSync(teamFile);
405
+ // Write team config to file
406
+ await atomicWriteFile(teamFile, JSON.stringify(team, null, 2));
407
+ // Save member prompts to individual files
408
+ for (const member of team.members || []) {
409
+ if (member.systemPrompt) {
410
+ const promptPath = this.getMemberPromptPath(team.id, member.id);
411
+ await atomicWriteFile(promptPath, member.systemPrompt);
412
+ }
413
+ }
414
+ this.logger.info('Team saved successfully', {
415
+ teamId: team.id,
416
+ teamName: team.name,
417
+ action: isUpdate ? 'updated' : 'created',
418
+ memberCount: team.members?.length || 0,
419
+ filePath: teamFile,
420
+ });
421
+ // Update teams backup (fire-and-forget, non-blocking)
422
+ this.updateTeamsBackup();
423
+ }
424
+ catch (error) {
425
+ this.logger.error('Error saving team', {
426
+ teamId: team.id,
427
+ teamName: team.name,
428
+ error: error instanceof Error ? error.message : String(error),
429
+ filePath: teamFile,
430
+ });
431
+ throw error;
432
+ }
433
+ });
434
+ }
435
+ /**
436
+ * Save a member's prompt file.
437
+ *
438
+ * @param teamId - The team ID
439
+ * @param memberId - The member ID
440
+ * @param prompt - The prompt content
441
+ */
442
+ async saveMemberPrompt(teamId, memberId, prompt) {
443
+ const promptsDir = this.getTeamPromptsDir(teamId);
444
+ const promptPath = this.getMemberPromptPath(teamId, memberId);
445
+ if (!existsSync(promptsDir)) {
446
+ mkdirSync(promptsDir, { recursive: true });
447
+ }
448
+ await atomicWriteFile(promptPath, prompt);
449
+ this.logger.debug('Saved member prompt', { teamId, memberId, promptPath });
450
+ }
451
+ /**
452
+ * Get a member's prompt from file.
453
+ *
454
+ * @param teamId - The team ID
455
+ * @param memberId - The member ID
456
+ * @returns The prompt content or null if not found
457
+ */
458
+ async getMemberPrompt(teamId, memberId) {
459
+ const promptPath = this.getMemberPromptPath(teamId, memberId);
460
+ if (!existsSync(promptPath)) {
461
+ return null;
462
+ }
463
+ try {
464
+ return await fs.readFile(promptPath, 'utf-8');
465
+ }
466
+ catch (error) {
467
+ this.logger.warn('Error reading member prompt', {
468
+ teamId,
469
+ memberId,
470
+ error: error instanceof Error ? error.message : String(error),
471
+ });
472
+ return null;
473
+ }
474
+ }
475
+ /**
476
+ * Find a team member by their session name.
477
+ *
478
+ * @param sessionName - The session name to search for
479
+ * @returns Object with team and member, or null if not found
480
+ */
481
+ async findMemberBySessionName(sessionName) {
482
+ try {
483
+ const teams = await this.getTeams();
484
+ for (const team of teams) {
485
+ for (const member of team.members || []) {
486
+ if (member.sessionName === sessionName) {
487
+ return { team, member };
488
+ }
489
+ }
490
+ }
491
+ return null;
492
+ }
493
+ catch (error) {
494
+ this.logger.error('Error finding member by session name', {
495
+ sessionName,
496
+ error: error instanceof Error ? error.message : String(error),
497
+ });
498
+ return null;
499
+ }
500
+ }
501
+ /**
502
+ * Save the orchestrator's prompt file.
503
+ *
504
+ * @param prompt - The prompt content
505
+ */
506
+ async saveOrchestratorPrompt(prompt) {
507
+ const orchestratorDir = path.join(this.teamsDir, 'orchestrator');
508
+ if (!existsSync(orchestratorDir)) {
509
+ mkdirSync(orchestratorDir, { recursive: true });
510
+ }
511
+ const promptPath = this.getOrchestratorPromptPath();
512
+ await atomicWriteFile(promptPath, prompt);
513
+ this.logger.debug('Saved orchestrator prompt', { promptPath });
514
+ }
515
+ /**
516
+ * Get the orchestrator's prompt from file.
517
+ *
518
+ * @returns The prompt content or null if not found
519
+ */
520
+ async getOrchestratorPrompt() {
521
+ const promptPath = this.getOrchestratorPromptPath();
522
+ if (!existsSync(promptPath)) {
523
+ return null;
524
+ }
525
+ try {
526
+ return await fs.readFile(promptPath, 'utf-8');
527
+ }
528
+ catch (error) {
529
+ this.logger.warn('Error reading orchestrator prompt', {
530
+ error: error instanceof Error ? error.message : String(error),
531
+ });
532
+ return null;
533
+ }
534
+ }
535
+ /**
536
+ * Delete a team by removing its directory.
537
+ *
538
+ * @param id - The team ID to delete
539
+ */
540
+ async deleteTeam(id) {
541
+ const teamDir = this.getTeamDir(id);
542
+ try {
543
+ if (existsSync(teamDir)) {
544
+ // Remove team directory recursively
545
+ await fs.rm(teamDir, { recursive: true, force: true });
546
+ this.logger.info('Team deleted successfully', { teamId: id, teamDir });
547
+ // Update teams backup (fire-and-forget, non-blocking)
548
+ this.updateTeamsBackup();
549
+ }
550
+ else {
551
+ this.logger.warn('Team directory not found for deletion', { teamId: id, teamDir });
552
+ }
553
+ }
554
+ catch (error) {
555
+ this.logger.error('Error deleting team', {
556
+ teamId: id,
557
+ error: error instanceof Error ? error.message : String(error),
558
+ });
559
+ throw error;
560
+ }
561
+ }
562
+ // Project management
563
+ async getProjects() {
564
+ try {
565
+ await this.ensureFile(this.projectsFile);
566
+ const content = await fs.readFile(this.projectsFile, 'utf-8');
567
+ const projects = JSON.parse(content);
568
+ this.logger.debug('Retrieved projects from storage', { count: projects.length });
569
+ return projects.map(project => ProjectModel.fromJSON(project).toJSON());
570
+ }
571
+ catch (error) {
572
+ this.logger.error('Error reading projects', {
573
+ error: error instanceof Error ? error.message : String(error),
574
+ });
575
+ return [];
576
+ }
577
+ }
578
+ async addProject(projectPath) {
579
+ try {
580
+ // Resolve to absolute path to ensure .crewly is created in the correct location
581
+ // If path is relative, resolve it relative to the parent directory of the current working directory
582
+ let resolvedProjectPath;
583
+ if (path.isAbsolute(projectPath)) {
584
+ resolvedProjectPath = projectPath;
585
+ }
586
+ else {
587
+ // Resolve relative to parent directory (where sibling projects should be)
588
+ const parentDir = path.dirname(process.cwd());
589
+ resolvedProjectPath = path.resolve(parentDir, projectPath);
590
+ }
591
+ const projectName = path.basename(resolvedProjectPath);
592
+ const projectId = uuidv4();
593
+ const project = new ProjectModel({
594
+ id: projectId,
595
+ name: projectName,
596
+ path: resolvedProjectPath,
597
+ teams: {},
598
+ status: 'stopped',
599
+ });
600
+ // Ensure project directory and .crewly structure exists with template files
601
+ mkdirSync(resolvedProjectPath, { recursive: true });
602
+ const crewlyDir = path.join(resolvedProjectPath, '.crewly');
603
+ if (!existsSync(crewlyDir)) {
604
+ mkdirSync(crewlyDir, { recursive: true });
605
+ mkdirSync(path.join(crewlyDir, 'tasks'), { recursive: true });
606
+ mkdirSync(path.join(crewlyDir, 'specs'), { recursive: true });
607
+ mkdirSync(path.join(crewlyDir, 'memory'), { recursive: true });
608
+ mkdirSync(path.join(crewlyDir, 'prompts'), { recursive: true });
609
+ // Create template files
610
+ await this.createProjectTemplateFiles(crewlyDir, projectName);
611
+ }
612
+ await this.saveProject(project.toJSON());
613
+ return project.toJSON();
614
+ }
615
+ catch (error) {
616
+ console.error('Error adding project:', error);
617
+ throw error;
618
+ }
619
+ }
620
+ async saveProject(project) {
621
+ try {
622
+ const projects = await this.getProjects();
623
+ const existingIndex = projects.findIndex(p => p.id === project.id);
624
+ const isUpdate = existingIndex >= 0;
625
+ if (isUpdate) {
626
+ projects[existingIndex] = project;
627
+ }
628
+ else {
629
+ projects.push(project);
630
+ }
631
+ const newContent = JSON.stringify(projects, null, 2);
632
+ await atomicWriteFile(this.projectsFile, newContent);
633
+ this.logger.info('Project saved successfully', {
634
+ projectId: project.id,
635
+ projectName: project.name,
636
+ action: isUpdate ? 'updated' : 'created',
637
+ totalProjects: projects.length,
638
+ filePath: this.projectsFile,
639
+ });
640
+ }
641
+ catch (error) {
642
+ this.logger.error('Error saving project', {
643
+ projectId: project.id,
644
+ projectName: project.name,
645
+ error: error instanceof Error ? error.message : String(error),
646
+ filePath: this.projectsFile,
647
+ });
648
+ throw error;
649
+ }
650
+ }
651
+ async deleteProject(id) {
652
+ try {
653
+ const projects = await this.getProjects();
654
+ const filteredProjects = projects.filter(p => p.id !== id);
655
+ await atomicWriteFile(this.projectsFile, JSON.stringify(filteredProjects, null, 2));
656
+ }
657
+ catch (error) {
658
+ console.error('Error deleting project:', error);
659
+ throw error;
660
+ }
661
+ }
662
+ // Ticket management
663
+ async getTickets(projectPath, filter) {
664
+ try {
665
+ const resolvedProjectPath = path.resolve(projectPath);
666
+ const ticketsDir = path.join(resolvedProjectPath, '.crewly', 'tasks');
667
+ if (!existsSync(ticketsDir)) {
668
+ return [];
669
+ }
670
+ const files = await fs.readdir(ticketsDir);
671
+ const yamlFiles = files.filter(file => file.endsWith('.yaml') || file.endsWith('.yml'));
672
+ const tickets = [];
673
+ for (const file of yamlFiles) {
674
+ try {
675
+ const filePath = path.join(ticketsDir, file);
676
+ const content = await fs.readFile(filePath, 'utf-8');
677
+ const ticket = this.parseTicketYAML(content);
678
+ tickets.push(ticket);
679
+ }
680
+ catch (error) {
681
+ console.error(`Error parsing ticket file ${file}:`, error);
682
+ }
683
+ }
684
+ // Apply filters
685
+ let filteredTickets = tickets;
686
+ if (filter) {
687
+ if (filter.status) {
688
+ filteredTickets = filteredTickets.filter(t => t.status === filter.status);
689
+ }
690
+ if (filter.assignedTo) {
691
+ filteredTickets = filteredTickets.filter(t => t.assignedTo === filter.assignedTo);
692
+ }
693
+ if (filter.projectId) {
694
+ filteredTickets = filteredTickets.filter(t => t.projectId === filter.projectId);
695
+ }
696
+ if (filter.priority) {
697
+ filteredTickets = filteredTickets.filter(t => t.priority === filter.priority);
698
+ }
699
+ }
700
+ return filteredTickets.sort((a, b) => new Date(b.createdAt).getTime() - new Date(a.createdAt).getTime());
701
+ }
702
+ catch (error) {
703
+ console.error('Error reading tickets:', error);
704
+ return [];
705
+ }
706
+ }
707
+ async saveTicket(projectPath, ticket) {
708
+ try {
709
+ const resolvedProjectPath = path.resolve(projectPath);
710
+ const ticketsDir = path.join(resolvedProjectPath, '.crewly', 'tasks');
711
+ if (!existsSync(ticketsDir)) {
712
+ mkdirSync(ticketsDir, { recursive: true });
713
+ }
714
+ const ticketModel = TicketModel.fromJSON(ticket);
715
+ const filename = `${ticket.id}.yaml`;
716
+ const filePath = path.join(ticketsDir, filename);
717
+ await fs.writeFile(filePath, ticketModel.toYAML());
718
+ }
719
+ catch (error) {
720
+ console.error('Error saving ticket:', error);
721
+ throw error;
722
+ }
723
+ }
724
+ async deleteTicket(projectPath, ticketId) {
725
+ try {
726
+ const resolvedProjectPath = path.resolve(projectPath);
727
+ const ticketsDir = path.join(resolvedProjectPath, '.crewly', 'tasks');
728
+ const filename = `${ticketId}.yaml`;
729
+ const filePath = path.join(ticketsDir, filename);
730
+ if (existsSync(filePath)) {
731
+ await fs.unlink(filePath);
732
+ }
733
+ }
734
+ catch (error) {
735
+ console.error('Error deleting ticket:', error);
736
+ throw error;
737
+ }
738
+ }
739
+ parseTicketYAML(content) {
740
+ const lines = content.split('\n');
741
+ let frontmatterEnd = -1;
742
+ let frontmatterStart = -1;
743
+ // Find YAML frontmatter
744
+ for (let i = 0; i < lines.length; i++) {
745
+ if (lines[i].trim() === '---') {
746
+ if (frontmatterStart === -1) {
747
+ frontmatterStart = i;
748
+ }
749
+ else {
750
+ frontmatterEnd = i;
751
+ break;
752
+ }
753
+ }
754
+ }
755
+ let frontmatter = {};
756
+ let description = '';
757
+ if (frontmatterStart !== -1 && frontmatterEnd !== -1) {
758
+ const yamlContent = lines.slice(frontmatterStart + 1, frontmatterEnd).join('\n');
759
+ frontmatter = parseYAML(yamlContent) || {};
760
+ description = lines.slice(frontmatterEnd + 1).join('\n').trim();
761
+ }
762
+ else {
763
+ description = content.trim();
764
+ }
765
+ return {
766
+ id: frontmatter.id || uuidv4(),
767
+ title: frontmatter.title || 'Untitled',
768
+ description: description,
769
+ status: frontmatter.status || 'open',
770
+ assignedTo: frontmatter.assignedTo,
771
+ priority: frontmatter.priority || 'medium',
772
+ labels: frontmatter.labels || [],
773
+ projectId: frontmatter.projectId || '',
774
+ createdAt: frontmatter.createdAt || new Date().toISOString(),
775
+ updatedAt: frontmatter.updatedAt || new Date().toISOString(),
776
+ };
777
+ }
778
+ // File watching
779
+ watchProject(projectPath) {
780
+ const resolvedProjectPath = path.resolve(projectPath);
781
+ const crewlyDir = path.join(resolvedProjectPath, '.crewly');
782
+ return watch(crewlyDir, { recursive: true }, (eventType, filename) => {
783
+ if (filename) {
784
+ console.log(`File ${eventType}: ${filename} in project ${resolvedProjectPath}`);
785
+ // Emit events that can be handled by WebSocket gateway
786
+ }
787
+ });
788
+ }
789
+ // Runtime state management
790
+ async getRuntimeState() {
791
+ try {
792
+ await this.ensureFile(this.runtimeFile, {});
793
+ const content = await fs.readFile(this.runtimeFile, 'utf-8');
794
+ return JSON.parse(content);
795
+ }
796
+ catch (error) {
797
+ console.error('Error reading runtime state:', error);
798
+ return {};
799
+ }
800
+ }
801
+ async saveRuntimeState(state) {
802
+ try {
803
+ await atomicWriteFile(this.runtimeFile, JSON.stringify(state, null, 2));
804
+ }
805
+ catch (error) {
806
+ console.error('Error saving runtime state:', error);
807
+ throw error;
808
+ }
809
+ }
810
+ /**
811
+ * Create template files for a new project
812
+ */
813
+ async createProjectTemplateFiles(crewlyDir, projectName) {
814
+ try {
815
+ // Project specification template
816
+ const projectSpecPath = path.join(crewlyDir, 'specs', 'project.md');
817
+ const projectSpecTemplate = `# ${projectName} - Project Specification
818
+
819
+ ## Overview
820
+ Brief description of ${projectName} and its goals.
821
+
822
+ ## Requirements
823
+ - List key functional requirements
824
+ - Non-functional requirements
825
+ - Technical constraints
826
+
827
+ ## Architecture
828
+ High-level system architecture and technology stack.
829
+
830
+ ## Implementation Plan
831
+ ### Phase 1: Foundation
832
+ - Core functionality setup
833
+ - Basic project structure
834
+ - Initial testing framework
835
+
836
+ ### Phase 2: Features
837
+ - Main feature implementation
838
+ - Integration and testing
839
+ - Performance optimization
840
+
841
+ ### Phase 3: Polish
842
+ - UI/UX improvements
843
+ - Documentation completion
844
+ - Deployment preparation
845
+
846
+ ## Acceptance Criteria
847
+ - [ ] All requirements implemented
848
+ - [ ] Tests passing (>90% coverage)
849
+ - [ ] Documentation complete
850
+ - [ ] Performance targets met
851
+ - [ ] Security review completed
852
+ `;
853
+ await fs.writeFile(projectSpecPath, projectSpecTemplate, 'utf8');
854
+ // README for the .crewly directory
855
+ const readmePath = path.join(crewlyDir, 'README.md');
856
+ const readmeTemplate = `# Crewly Project Directory
857
+
858
+ This directory contains Crewly-specific files for **${projectName}** project orchestration.
859
+
860
+ ## Structure
861
+
862
+ - **specs/**: Project specifications and requirements
863
+ - **tasks/**: Task items in YAML + Markdown format
864
+ - **memory/**: Agent memory and context files
865
+ - **prompts/**: Custom system prompts for team members
866
+
867
+ ## Usage
868
+
869
+ Crewly agents automatically read from these directories to understand:
870
+ - Project requirements and specifications
871
+ - Current tasks and their status
872
+ - Historical context and decisions
873
+ - Role-specific instructions
874
+
875
+ All files in this directory are monitored by Crewly for real-time updates.
876
+
877
+ ## Getting Started
878
+
879
+ 1. Update \`specs/project.md\` with your project requirements
880
+ 2. Create task items in \`tasks/\` directory for specific tasks
881
+ 3. Customize team member prompts in \`prompts/\` as needed
882
+ 4. Let Crewly orchestrate your development workflow!
883
+ `;
884
+ await fs.writeFile(readmePath, readmeTemplate, 'utf8');
885
+ // Sample ticket template
886
+ const sampleTicketPath = path.join(crewlyDir, 'tasks', 'sample-setup-task.yaml');
887
+ const ticketTemplate = `---
888
+ id: sample-setup-task
889
+ title: Project Setup and Configuration
890
+ status: todo
891
+ priority: high
892
+ assignedTo: ""
893
+ estimatedHours: 4
894
+ createdAt: ${new Date().toISOString()}
895
+ updatedAt: ${new Date().toISOString()}
896
+ tags:
897
+ - setup
898
+ - configuration
899
+ - infrastructure
900
+ ---
901
+
902
+ # Project Setup and Configuration
903
+
904
+ ## Description
905
+ Set up the basic project infrastructure and configuration for ${projectName}.
906
+
907
+ ## Acceptance Criteria
908
+ - [ ] Project structure created
909
+ - [ ] Build system configured
910
+ - [ ] Testing framework set up
911
+ - [ ] CI/CD pipeline configured
912
+ - [ ] Documentation structure established
913
+ - [ ] Development environment documented
914
+
915
+ ## Implementation Notes
916
+ This is a foundational task that should be completed first before other development work begins.
917
+
918
+ ## Test Plan
919
+ - Verify build process works correctly
920
+ - Confirm tests can be run successfully
921
+ - Check all documentation is accessible
922
+ - Validate development environment setup instructions
923
+ `;
924
+ await fs.writeFile(sampleTicketPath, ticketTemplate, 'utf8');
925
+ console.log(`Created Crewly template files for project: ${projectName}`);
926
+ }
927
+ catch (error) {
928
+ console.error('Error creating project template files:', error);
929
+ // Don't throw - project can still work without template files
930
+ }
931
+ }
932
+ // Scheduled Messages management
933
+ async getScheduledMessages() {
934
+ try {
935
+ await this.ensureFile(this.scheduledMessagesFile, []);
936
+ const content = await fs.readFile(this.scheduledMessagesFile, 'utf-8');
937
+ // Handle empty content or malformed JSON
938
+ if (!content.trim()) {
939
+ await atomicWriteFile(this.scheduledMessagesFile, JSON.stringify([], null, 2));
940
+ return [];
941
+ }
942
+ try {
943
+ return JSON.parse(content);
944
+ }
945
+ catch (parseError) {
946
+ console.error('Error parsing scheduled messages JSON, resetting file:', parseError);
947
+ // Reset the file with empty array if JSON is corrupted
948
+ await atomicWriteFile(this.scheduledMessagesFile, JSON.stringify([], null, 2));
949
+ return [];
950
+ }
951
+ }
952
+ catch (error) {
953
+ console.error('Error reading scheduled messages:', error);
954
+ return [];
955
+ }
956
+ }
957
+ async saveScheduledMessage(scheduledMessage) {
958
+ try {
959
+ const messages = await this.getScheduledMessages();
960
+ const existingIndex = messages.findIndex(m => m.id === scheduledMessage.id);
961
+ if (existingIndex >= 0) {
962
+ messages[existingIndex] = scheduledMessage;
963
+ }
964
+ else {
965
+ messages.push(scheduledMessage);
966
+ }
967
+ await atomicWriteFile(this.scheduledMessagesFile, JSON.stringify(messages, null, 2));
968
+ }
969
+ catch (error) {
970
+ console.error('Error saving scheduled message:', error);
971
+ throw error;
972
+ }
973
+ }
974
+ async getScheduledMessage(id) {
975
+ try {
976
+ const messages = await this.getScheduledMessages();
977
+ return messages.find(m => m.id === id);
978
+ }
979
+ catch (error) {
980
+ console.error('Error getting scheduled message:', error);
981
+ return undefined;
982
+ }
983
+ }
984
+ async deleteScheduledMessage(id) {
985
+ try {
986
+ const messages = await this.getScheduledMessages();
987
+ const filteredMessages = messages.filter(m => m.id !== id);
988
+ if (filteredMessages.length === messages.length) {
989
+ return false; // Message not found
990
+ }
991
+ await atomicWriteFile(this.scheduledMessagesFile, JSON.stringify(filteredMessages, null, 2));
992
+ return true;
993
+ }
994
+ catch (error) {
995
+ console.error('Error deleting scheduled message:', error);
996
+ throw error;
997
+ }
998
+ }
999
+ // Recurring Checks persistence
1000
+ /**
1001
+ * Get all persisted recurring checks.
1002
+ *
1003
+ * @returns Array of persisted ScheduledCheck entries
1004
+ */
1005
+ async getRecurringChecks() {
1006
+ try {
1007
+ await this.ensureFile(this.recurringChecksFile, []);
1008
+ const content = await fs.readFile(this.recurringChecksFile, 'utf-8');
1009
+ if (!content.trim()) {
1010
+ await atomicWriteFile(this.recurringChecksFile, JSON.stringify([], null, 2));
1011
+ return [];
1012
+ }
1013
+ try {
1014
+ return JSON.parse(content);
1015
+ }
1016
+ catch (parseError) {
1017
+ this.logger.error('Error parsing recurring checks JSON, resetting file', {
1018
+ error: parseError instanceof Error ? parseError.message : String(parseError),
1019
+ });
1020
+ await atomicWriteFile(this.recurringChecksFile, JSON.stringify([], null, 2));
1021
+ return [];
1022
+ }
1023
+ }
1024
+ catch (error) {
1025
+ this.logger.error('Error reading recurring checks', {
1026
+ error: error instanceof Error ? error.message : String(error),
1027
+ });
1028
+ return [];
1029
+ }
1030
+ }
1031
+ /**
1032
+ * Save or update a recurring check entry on disk.
1033
+ *
1034
+ * @param check - The ScheduledCheck to persist
1035
+ */
1036
+ async saveRecurringCheck(check) {
1037
+ try {
1038
+ const checks = await this.getRecurringChecks();
1039
+ const existingIndex = checks.findIndex(c => c.id === check.id);
1040
+ if (existingIndex >= 0) {
1041
+ checks[existingIndex] = check;
1042
+ }
1043
+ else {
1044
+ checks.push(check);
1045
+ }
1046
+ await atomicWriteFile(this.recurringChecksFile, JSON.stringify(checks, null, 2));
1047
+ }
1048
+ catch (error) {
1049
+ this.logger.error('Error saving recurring check', {
1050
+ error: error instanceof Error ? error.message : String(error),
1051
+ });
1052
+ throw error;
1053
+ }
1054
+ }
1055
+ /**
1056
+ * Delete a persisted recurring check by ID.
1057
+ *
1058
+ * @param id - The check ID to delete
1059
+ * @returns true if the check was found and deleted
1060
+ */
1061
+ async deleteRecurringCheck(id) {
1062
+ try {
1063
+ const checks = await this.getRecurringChecks();
1064
+ const filtered = checks.filter(c => c.id !== id);
1065
+ if (filtered.length === checks.length) {
1066
+ return false;
1067
+ }
1068
+ await atomicWriteFile(this.recurringChecksFile, JSON.stringify(filtered, null, 2));
1069
+ return true;
1070
+ }
1071
+ catch (error) {
1072
+ this.logger.error('Error deleting recurring check', {
1073
+ error: error instanceof Error ? error.message : String(error),
1074
+ });
1075
+ throw error;
1076
+ }
1077
+ }
1078
+ /**
1079
+ * Clear all persisted recurring checks.
1080
+ */
1081
+ async clearRecurringChecks() {
1082
+ try {
1083
+ await atomicWriteFile(this.recurringChecksFile, JSON.stringify([], null, 2));
1084
+ }
1085
+ catch (error) {
1086
+ this.logger.error('Error clearing recurring checks', {
1087
+ error: error instanceof Error ? error.message : String(error),
1088
+ });
1089
+ throw error;
1090
+ }
1091
+ }
1092
+ // One-Time Checks persistence
1093
+ /**
1094
+ * Get all persisted one-time checks.
1095
+ *
1096
+ * @returns Array of persisted ScheduledCheck entries
1097
+ */
1098
+ async getOneTimeChecks() {
1099
+ try {
1100
+ await this.ensureFile(this.oneTimeChecksFile, []);
1101
+ const content = await fs.readFile(this.oneTimeChecksFile, 'utf-8');
1102
+ if (!content.trim()) {
1103
+ await atomicWriteFile(this.oneTimeChecksFile, JSON.stringify([], null, 2));
1104
+ return [];
1105
+ }
1106
+ try {
1107
+ return JSON.parse(content);
1108
+ }
1109
+ catch (parseError) {
1110
+ this.logger.error('Error parsing one-time checks JSON, resetting file', {
1111
+ error: parseError instanceof Error ? parseError.message : String(parseError),
1112
+ });
1113
+ await atomicWriteFile(this.oneTimeChecksFile, JSON.stringify([], null, 2));
1114
+ return [];
1115
+ }
1116
+ }
1117
+ catch (error) {
1118
+ this.logger.error('Error reading one-time checks', {
1119
+ error: error instanceof Error ? error.message : String(error),
1120
+ });
1121
+ return [];
1122
+ }
1123
+ }
1124
+ /**
1125
+ * Save or update a one-time check entry on disk.
1126
+ *
1127
+ * @param check - The ScheduledCheck to persist
1128
+ */
1129
+ async saveOneTimeCheck(check) {
1130
+ try {
1131
+ const checks = await this.getOneTimeChecks();
1132
+ const existingIndex = checks.findIndex(c => c.id === check.id);
1133
+ if (existingIndex >= 0) {
1134
+ checks[existingIndex] = check;
1135
+ }
1136
+ else {
1137
+ checks.push(check);
1138
+ }
1139
+ await atomicWriteFile(this.oneTimeChecksFile, JSON.stringify(checks, null, 2));
1140
+ }
1141
+ catch (error) {
1142
+ this.logger.error('Error saving one-time check', {
1143
+ error: error instanceof Error ? error.message : String(error),
1144
+ });
1145
+ throw error;
1146
+ }
1147
+ }
1148
+ /**
1149
+ * Delete a persisted one-time check by ID.
1150
+ *
1151
+ * @param id - The check ID to delete
1152
+ * @returns true if the check was found and deleted
1153
+ */
1154
+ async deleteOneTimeCheck(id) {
1155
+ try {
1156
+ const checks = await this.getOneTimeChecks();
1157
+ const filtered = checks.filter(c => c.id !== id);
1158
+ if (filtered.length === checks.length) {
1159
+ return false;
1160
+ }
1161
+ await atomicWriteFile(this.oneTimeChecksFile, JSON.stringify(filtered, null, 2));
1162
+ return true;
1163
+ }
1164
+ catch (error) {
1165
+ this.logger.error('Error deleting one-time check', {
1166
+ error: error instanceof Error ? error.message : String(error),
1167
+ });
1168
+ throw error;
1169
+ }
1170
+ }
1171
+ /**
1172
+ * Clear all persisted one-time checks.
1173
+ */
1174
+ async clearOneTimeChecks() {
1175
+ try {
1176
+ await atomicWriteFile(this.oneTimeChecksFile, JSON.stringify([], null, 2));
1177
+ }
1178
+ catch (error) {
1179
+ this.logger.error('Error clearing one-time checks', {
1180
+ error: error instanceof Error ? error.message : String(error),
1181
+ });
1182
+ throw error;
1183
+ }
1184
+ }
1185
+ // Message Delivery Logs management
1186
+ async getDeliveryLogs() {
1187
+ try {
1188
+ await this.ensureFile(this.deliveryLogsFile);
1189
+ const content = await fs.readFile(this.deliveryLogsFile, 'utf-8');
1190
+ const logs = JSON.parse(content);
1191
+ // Sort by sentAt (newest first)
1192
+ return logs.sort((a, b) => new Date(b.sentAt).getTime() - new Date(a.sentAt).getTime());
1193
+ }
1194
+ catch (error) {
1195
+ console.error('Error reading delivery logs:', error);
1196
+ return [];
1197
+ }
1198
+ }
1199
+ async saveDeliveryLog(log) {
1200
+ try {
1201
+ const logs = await this.getDeliveryLogs();
1202
+ logs.unshift(log); // Add to beginning for newest first order
1203
+ // Keep only last 1000 logs to prevent file from getting too large
1204
+ const trimmedLogs = logs.slice(0, 1000);
1205
+ await atomicWriteFile(this.deliveryLogsFile, JSON.stringify(trimmedLogs, null, 2));
1206
+ }
1207
+ catch (error) {
1208
+ console.error('Error saving delivery log:', error);
1209
+ throw error;
1210
+ }
1211
+ }
1212
+ async clearDeliveryLogs() {
1213
+ try {
1214
+ await atomicWriteFile(this.deliveryLogsFile, JSON.stringify([], null, 2));
1215
+ }
1216
+ catch (error) {
1217
+ console.error('Error clearing delivery logs:', error);
1218
+ throw error;
1219
+ }
1220
+ }
1221
+ // Orchestrator management
1222
+ /**
1223
+ * Get orchestrator status from dedicated orchestrator.json file.
1224
+ *
1225
+ * @returns Orchestrator status object or null if not found
1226
+ */
1227
+ async getOrchestratorStatus() {
1228
+ try {
1229
+ // Migrate from legacy format if needed
1230
+ await this.migrateFromLegacyTeamsFile();
1231
+ // Check if orchestrator file exists
1232
+ if (!existsSync(this.orchestratorFile)) {
1233
+ // Create default orchestrator
1234
+ const orchestrator = this.createDefaultOrchestrator();
1235
+ await atomicWriteFile(this.orchestratorFile, JSON.stringify(orchestrator, null, 2));
1236
+ return orchestrator;
1237
+ }
1238
+ const content = await fs.readFile(this.orchestratorFile, 'utf-8');
1239
+ const orchestrator = JSON.parse(content);
1240
+ return orchestrator;
1241
+ }
1242
+ catch (error) {
1243
+ this.logger.error('Error reading orchestrator status', {
1244
+ error: error instanceof Error ? error.message : String(error),
1245
+ });
1246
+ return null;
1247
+ }
1248
+ }
1249
+ /**
1250
+ * Update agent status for orchestrator or any team member.
1251
+ * Orchestrator status is stored in teams/orchestrator.json.
1252
+ * Team member status is stored in the respective team's file.
1253
+ *
1254
+ * @param sessionName - Session name of the agent (CREWLY_CONSTANTS.SESSIONS.ORCHESTRATOR_NAME for orchestrator)
1255
+ * @param status - New agent status (CREWLY_CONSTANTS.AGENT_STATUSES.INACTIVE | CREWLY_CONSTANTS.AGENT_STATUSES.ACTIVATING | CREWLY_CONSTANTS.AGENT_STATUSES.ACTIVE)
1256
+ */
1257
+ async updateAgentStatus(sessionName, status) {
1258
+ // Handle orchestrator separately
1259
+ if (sessionName === CREWLY_CONSTANTS.SESSIONS.ORCHESTRATOR_NAME) {
1260
+ return withOperationLock(this.orchestratorFile, async () => {
1261
+ try {
1262
+ let orchestrator;
1263
+ if (existsSync(this.orchestratorFile)) {
1264
+ const content = await fs.readFile(this.orchestratorFile, 'utf-8');
1265
+ orchestrator = JSON.parse(content);
1266
+ }
1267
+ else {
1268
+ orchestrator = this.createDefaultOrchestrator();
1269
+ }
1270
+ orchestrator.agentStatus = status;
1271
+ orchestrator.updatedAt = new Date().toISOString();
1272
+ await atomicWriteFile(this.orchestratorFile, JSON.stringify(orchestrator, null, 2));
1273
+ this.logger.debug('Updated orchestrator status', { status });
1274
+ }
1275
+ catch (error) {
1276
+ this.logger.error('Error updating orchestrator status', {
1277
+ error: error instanceof Error ? error.message : String(error),
1278
+ });
1279
+ throw error;
1280
+ }
1281
+ });
1282
+ }
1283
+ // Handle regular team members - find the team containing this member
1284
+ try {
1285
+ const teams = await this.getTeams();
1286
+ let memberFound = false;
1287
+ for (const team of teams) {
1288
+ for (const member of team.members || []) {
1289
+ if (member.sessionName === sessionName) {
1290
+ member.agentStatus = status;
1291
+ member.updatedAt = new Date().toISOString();
1292
+ memberFound = true;
1293
+ // Save the updated team
1294
+ await this.saveTeam(team);
1295
+ this.logger.debug('Updated team member status', {
1296
+ sessionName,
1297
+ status,
1298
+ teamId: team.id,
1299
+ });
1300
+ break;
1301
+ }
1302
+ }
1303
+ if (memberFound)
1304
+ break;
1305
+ }
1306
+ if (!memberFound) {
1307
+ this.logger.warn('Agent not found in teams data', { sessionName });
1308
+ }
1309
+ }
1310
+ catch (error) {
1311
+ this.logger.error('Error updating agent status', {
1312
+ sessionName,
1313
+ error: error instanceof Error ? error.message : String(error),
1314
+ });
1315
+ throw error;
1316
+ }
1317
+ }
1318
+ /**
1319
+ * Update team member runtime type
1320
+ */
1321
+ async updateTeamMemberRuntimeType(teamId, memberId, runtimeType) {
1322
+ try {
1323
+ const teams = await this.getTeams();
1324
+ const team = teams.find(t => t.id === teamId);
1325
+ if (!team) {
1326
+ throw new Error(`Team not found: ${teamId}`);
1327
+ }
1328
+ const member = team.members.find(m => m.id === memberId);
1329
+ if (!member) {
1330
+ throw new Error(`Team member not found: ${memberId} in team ${teamId}`);
1331
+ }
1332
+ member.runtimeType = runtimeType;
1333
+ member.updatedAt = new Date().toISOString();
1334
+ await this.saveTeam(team);
1335
+ }
1336
+ catch (error) {
1337
+ console.error('Error updating team member runtime type:', error);
1338
+ throw error;
1339
+ }
1340
+ }
1341
+ /**
1342
+ * Update orchestrator runtime type in teams/orchestrator.json.
1343
+ *
1344
+ * @param runtimeType - The runtime type to set
1345
+ */
1346
+ async updateOrchestratorRuntimeType(runtimeType) {
1347
+ return withOperationLock(this.orchestratorFile, async () => {
1348
+ try {
1349
+ let orchestrator;
1350
+ if (existsSync(this.orchestratorFile)) {
1351
+ const content = await fs.readFile(this.orchestratorFile, 'utf-8');
1352
+ orchestrator = JSON.parse(content);
1353
+ }
1354
+ else {
1355
+ orchestrator = this.createDefaultOrchestrator();
1356
+ }
1357
+ orchestrator.runtimeType = runtimeType;
1358
+ orchestrator.updatedAt = new Date().toISOString();
1359
+ await atomicWriteFile(this.orchestratorFile, JSON.stringify(orchestrator, null, 2));
1360
+ this.logger.debug('Updated orchestrator runtime type', { runtimeType });
1361
+ }
1362
+ catch (error) {
1363
+ this.logger.error('Error updating orchestrator runtime type', {
1364
+ error: error instanceof Error ? error.message : String(error),
1365
+ });
1366
+ throw error;
1367
+ }
1368
+ });
1369
+ }
1370
+ /**
1371
+ * Update the teams backup file asynchronously.
1372
+ * Reads current teams and writes backup. Errors are logged but not thrown.
1373
+ */
1374
+ updateTeamsBackup() {
1375
+ this.getTeams()
1376
+ .then((teams) => TeamsBackupService.getInstance().updateBackup(teams))
1377
+ .catch((error) => {
1378
+ this.logger.warn('Failed to update teams backup', {
1379
+ error: error instanceof Error ? error.message : String(error),
1380
+ });
1381
+ });
1382
+ }
1383
+ /**
1384
+ * @deprecated Use updateAgentStatus instead
1385
+ */
1386
+ async updateOrchestratorStatus(status) {
1387
+ return this.updateAgentStatus(CREWLY_CONSTANTS.SESSIONS.ORCHESTRATOR_NAME, status);
1388
+ }
1389
+ }
1390
+ //# sourceMappingURL=storage.service.js.map