crewly 1.3.30 → 1.4.0

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (673) hide show
  1. package/config/constants.ts +18 -3
  2. package/config/hooks/install-hooks.sh +88 -0
  3. package/config/hooks/pre-commit +104 -0
  4. package/config/orchestrator_tasks/prompts/orchestrator-prompt.md +17 -24
  5. package/config/roles/auditor/role.json +13 -0
  6. package/config/roles/orchestrator/prompt.md +25 -0
  7. package/config/roles/product-manager/prompt.md +18 -1
  8. package/config/roles/researcher/prompt.md +110 -0
  9. package/config/roles/team-leader/prompt.md +31 -8
  10. package/config/roles/team-leader/tl-addon.md +40 -9
  11. package/config/roles/ux-designer/prompt.md +111 -0
  12. package/config/skills/_common/lib.sh +33 -0
  13. package/config/skills/agent/browse-stealth/{instructions.md → SKILL.md} +40 -0
  14. package/config/skills/agent/chrome-attach/SKILL.md +84 -0
  15. package/config/skills/agent/chrome-attach/execute.sh +279 -0
  16. package/config/skills/agent/competitor-content-tracker/{instructions.md → SKILL.md} +34 -0
  17. package/config/skills/agent/computer-use/{instructions.md → SKILL.md} +43 -0
  18. package/config/skills/agent/content-calendar/{instructions.md → SKILL.md} +32 -0
  19. package/config/skills/agent/content-repurposer/{instructions.md → SKILL.md} +38 -0
  20. package/config/skills/agent/content-writer/{instructions.md → SKILL.md} +38 -0
  21. package/config/skills/agent/core/accept-task/{instructions.md → SKILL.md} +37 -0
  22. package/config/skills/agent/core/block-task/{instructions.md → SKILL.md} +37 -0
  23. package/config/skills/agent/core/check-quality-gates/{instructions.md → SKILL.md} +40 -0
  24. package/config/skills/agent/core/complete-task/{instructions.md → SKILL.md} +37 -0
  25. package/config/skills/agent/core/complete-task/execute.sh +15 -0
  26. package/config/skills/agent/core/generate-pdf/{instructions.md → SKILL.md} +42 -0
  27. package/config/skills/agent/core/get-my-context/{instructions.md → SKILL.md} +38 -0
  28. package/config/skills/agent/core/get-sops/{instructions.md → SKILL.md} +38 -0
  29. package/config/skills/agent/core/get-team-norms/execute.sh +106 -0
  30. package/config/skills/agent/core/get-team-status/SKILL.md +55 -0
  31. package/config/skills/agent/core/handoff-task/execute.sh +150 -0
  32. package/config/skills/agent/core/heartbeat/{instructions.md → SKILL.md} +27 -0
  33. package/config/skills/agent/core/marketplace-search/{instructions.md → SKILL.md} +41 -0
  34. package/config/skills/agent/core/query-knowledge/{instructions.md → SKILL.md} +40 -0
  35. package/config/skills/agent/core/read-task/SKILL.md +56 -0
  36. package/config/skills/agent/core/recall/{instructions.md → SKILL.md} +38 -0
  37. package/config/skills/agent/core/record-learning/{instructions.md → SKILL.md} +38 -0
  38. package/config/skills/agent/core/register-self/SKILL.md +54 -0
  39. package/config/skills/agent/core/remember/{instructions.md → SKILL.md} +37 -0
  40. package/config/skills/agent/core/remember/execute.sh +6 -0
  41. package/config/skills/agent/core/reply-chat/{instructions.md → SKILL.md} +37 -0
  42. package/config/skills/agent/core/report-progress/{instructions.md → SKILL.md} +38 -0
  43. package/config/skills/agent/core/report-status/{instructions.md → SKILL.md} +39 -0
  44. package/config/skills/agent/core/send-chat-response/{instructions.md → SKILL.md} +37 -0
  45. package/config/skills/agent/core/send-message/SKILL.md +58 -0
  46. package/config/skills/agent/core/update-team-norm/execute.sh +115 -0
  47. package/config/skills/agent/desktop-app-control/{instructions.md → SKILL.md} +42 -0
  48. package/config/skills/agent/trend-monitor/{instructions.md → SKILL.md} +34 -0
  49. package/config/skills/agent/vnc-browser/{instructions.md → SKILL.md} +38 -0
  50. package/config/skills/auditor/score-task/SKILL.md +28 -0
  51. package/config/skills/auditor/score-task/execute.sh +21 -0
  52. package/config/skills/examples/enterprise-skill-example.json +22 -0
  53. package/config/skills/examples/premium-skill-example.json +22 -0
  54. package/config/skills/orchestrator/assign-task/SKILL.md +41 -0
  55. package/config/skills/orchestrator/assign-team-to-project/{instructions.md → SKILL.md} +25 -0
  56. package/config/skills/orchestrator/broadcast/{instructions.md → SKILL.md} +24 -0
  57. package/config/skills/orchestrator/broadcast-to-org/{instructions.md → SKILL.md} +25 -0
  58. package/config/skills/orchestrator/cancel-all-schedules/{instructions.md → SKILL.md} +5 -0
  59. package/config/skills/orchestrator/cancel-schedule/SKILL.md +43 -0
  60. package/config/skills/orchestrator/complete-task/SKILL.md +41 -0
  61. package/config/skills/orchestrator/create-project/{instructions.md → SKILL.md} +24 -0
  62. package/config/skills/orchestrator/create-team/{instructions.md → SKILL.md} +24 -0
  63. package/config/skills/orchestrator/delegate-task/{instructions.md → SKILL.md} +27 -0
  64. package/config/skills/orchestrator/delegate-task/execute.sh +31 -2
  65. package/config/skills/orchestrator/get-agent-logs/{instructions.md → SKILL.md} +25 -0
  66. package/config/skills/orchestrator/get-agent-status/{instructions.md → SKILL.md} +24 -0
  67. package/config/skills/orchestrator/get-project-overview/SKILL.md +41 -0
  68. package/config/skills/orchestrator/get-tasks/SKILL.md +41 -0
  69. package/config/skills/orchestrator/get-team-status/SKILL.md +43 -0
  70. package/config/skills/orchestrator/handle-agent-failure/{instructions.md → SKILL.md} +27 -0
  71. package/config/skills/orchestrator/heartbeat/{instructions.md → SKILL.md} +24 -0
  72. package/config/skills/orchestrator/list-schedules/{instructions.md → SKILL.md} +5 -0
  73. package/config/skills/orchestrator/list-subscriptions/SKILL.md +41 -0
  74. package/config/skills/orchestrator/query-knowledge/{instructions.md → SKILL.md} +28 -0
  75. package/config/skills/orchestrator/read-session-logs/{instructions.md → SKILL.md} +26 -0
  76. package/config/skills/orchestrator/read-system-logs/{instructions.md → SKILL.md} +25 -0
  77. package/config/skills/orchestrator/recall/{instructions.md → SKILL.md} +24 -0
  78. package/config/skills/orchestrator/record-failure/{instructions.md → SKILL.md} +27 -0
  79. package/config/skills/orchestrator/record-learning/{instructions.md → SKILL.md} +24 -0
  80. package/config/skills/orchestrator/record-success/{instructions.md → SKILL.md} +26 -0
  81. package/config/skills/orchestrator/register-self/{instructions.md → SKILL.md} +24 -0
  82. package/config/skills/orchestrator/remember/{instructions.md → SKILL.md} +24 -0
  83. package/config/skills/orchestrator/reply-chat/{instructions.md → SKILL.md} +25 -0
  84. package/config/skills/orchestrator/reply-chat/execute.sh +0 -13
  85. package/config/skills/orchestrator/reply-gchat/{instructions.md → SKILL.md} +25 -0
  86. package/config/skills/orchestrator/reply-gchat/execute.sh +0 -18
  87. package/config/skills/orchestrator/reply-slack/{instructions.md → SKILL.md} +24 -0
  88. package/config/skills/orchestrator/reply-slack/execute.sh +18 -31
  89. package/config/skills/orchestrator/report-bug/{instructions.md → SKILL.md} +26 -0
  90. package/config/skills/orchestrator/restart-crewly/{instructions.md → SKILL.md} +26 -0
  91. package/config/skills/orchestrator/resume-session/{instructions.md → SKILL.md} +24 -0
  92. package/config/skills/orchestrator/schedule-check/{instructions.md → SKILL.md} +24 -0
  93. package/config/skills/orchestrator/send-key/{instructions.md → SKILL.md} +26 -0
  94. package/config/skills/orchestrator/send-message/{instructions.md → SKILL.md} +24 -0
  95. package/config/skills/orchestrator/send-pdf-to-slack/{instructions.md → SKILL.md} +27 -0
  96. package/config/skills/orchestrator/set-goal/{instructions.md → SKILL.md} +26 -0
  97. package/config/skills/orchestrator/start-agent/{instructions.md → SKILL.md} +24 -0
  98. package/config/skills/orchestrator/start-team/{instructions.md → SKILL.md} +24 -0
  99. package/config/skills/orchestrator/stop-agent/{instructions.md → SKILL.md} +24 -0
  100. package/config/skills/orchestrator/stop-team/SKILL.md +43 -0
  101. package/config/skills/orchestrator/subscribe-event/{instructions.md → SKILL.md} +24 -0
  102. package/config/skills/orchestrator/terminate-agent/{instructions.md → SKILL.md} +24 -0
  103. package/config/skills/orchestrator/unsubscribe-event/SKILL.md +42 -0
  104. package/config/skills/orchestrator/update-focus/{instructions.md → SKILL.md} +26 -0
  105. package/config/skills/orchestrator/update-team/{instructions.md → SKILL.md} +24 -0
  106. package/config/skills/team-leader/aggregate-results/{instructions.md → SKILL.md} +26 -0
  107. package/config/skills/team-leader/decompose-goal/{instructions.md → SKILL.md} +26 -0
  108. package/config/skills/team-leader/delegate-task/{instructions.md → SKILL.md} +26 -0
  109. package/config/skills/team-leader/delegate-task/execute.sh +14 -6
  110. package/config/skills/team-leader/delegate-task/execute.test.sh +401 -0
  111. package/config/skills/team-leader/handle-failure/{instructions.md → SKILL.md} +27 -0
  112. package/config/skills/team-leader/schedule-check/{instructions.md → SKILL.md} +26 -0
  113. package/config/skills/team-leader/start-agent/{instructions.md → SKILL.md} +26 -0
  114. package/config/skills/team-leader/stop-agent/{instructions.md → SKILL.md} +26 -0
  115. package/config/skills/team-leader/verify-output/{instructions.md → SKILL.md} +27 -0
  116. package/config/templates/agent-agents-md.md +35 -0
  117. package/config/templates/agent-gemini-md.md +35 -0
  118. package/config/templates/code-review-team/team-config.json +7 -0
  119. package/config/templates/content-generation-team/norms/brand-guidelines.md +64 -0
  120. package/config/templates/content-generation-team/norms/content-review.md +66 -0
  121. package/config/templates/content-generation-team/norms/publish-checklist.md +58 -0
  122. package/config/templates/content-generation-team/team-config.json +8 -0
  123. package/config/templates/dev-fullstack/norms/code-commit-sop.md +40 -0
  124. package/config/templates/dev-fullstack/norms/quality-gates.md +35 -0
  125. package/config/templates/dev-fullstack/template.json +17 -1
  126. package/config/templates/education-smb/template.json +10 -1
  127. package/config/templates/insurance-smb/template.json +10 -1
  128. package/config/templates/research-analysis/norms/research-methodology.md +36 -0
  129. package/config/templates/research-analysis/norms/source-citation.md +33 -0
  130. package/config/templates/research-analysis/template.json +17 -1
  131. package/config/templates/security-audit-team.json +67 -0
  132. package/config/templates/social-media-ops/norms/engagement-rules.md +35 -0
  133. package/config/templates/social-media-ops/norms/posting-schedule.md +43 -0
  134. package/config/templates/social-media-ops/template.json +17 -1
  135. package/config/templates/video-production/template.json +10 -1
  136. package/dist/backend/backend/src/constants.d.ts +80 -11
  137. package/dist/backend/backend/src/constants.d.ts.map +1 -1
  138. package/dist/backend/backend/src/constants.js +85 -11
  139. package/dist/backend/backend/src/constants.js.map +1 -1
  140. package/dist/backend/backend/src/controllers/approvals/approvals.controller.d.ts +99 -0
  141. package/dist/backend/backend/src/controllers/approvals/approvals.controller.d.ts.map +1 -0
  142. package/dist/backend/backend/src/controllers/approvals/approvals.controller.js +183 -0
  143. package/dist/backend/backend/src/controllers/approvals/approvals.controller.js.map +1 -0
  144. package/dist/backend/backend/src/controllers/approvals/approvals.routes.d.ts +15 -0
  145. package/dist/backend/backend/src/controllers/approvals/approvals.routes.d.ts.map +1 -0
  146. package/dist/backend/backend/src/controllers/approvals/approvals.routes.js +27 -0
  147. package/dist/backend/backend/src/controllers/approvals/approvals.routes.js.map +1 -0
  148. package/dist/backend/backend/src/controllers/cloud/cloud-google-auth.controller.d.ts +70 -0
  149. package/dist/backend/backend/src/controllers/cloud/cloud-google-auth.controller.d.ts.map +1 -0
  150. package/dist/backend/backend/src/controllers/cloud/cloud-google-auth.controller.js +368 -0
  151. package/dist/backend/backend/src/controllers/cloud/cloud-google-auth.controller.js.map +1 -0
  152. package/dist/backend/backend/src/controllers/cloud/cloud.controller.d.ts +24 -0
  153. package/dist/backend/backend/src/controllers/cloud/cloud.controller.d.ts.map +1 -1
  154. package/dist/backend/backend/src/controllers/cloud/cloud.controller.js +195 -3
  155. package/dist/backend/backend/src/controllers/cloud/cloud.controller.js.map +1 -1
  156. package/dist/backend/backend/src/controllers/cloud/cloud.routes.d.ts +9 -4
  157. package/dist/backend/backend/src/controllers/cloud/cloud.routes.d.ts.map +1 -1
  158. package/dist/backend/backend/src/controllers/cloud/cloud.routes.js +19 -5
  159. package/dist/backend/backend/src/controllers/cloud/cloud.routes.js.map +1 -1
  160. package/dist/backend/backend/src/controllers/cloud/index.d.ts +1 -0
  161. package/dist/backend/backend/src/controllers/cloud/index.d.ts.map +1 -1
  162. package/dist/backend/backend/src/controllers/cloud/index.js +1 -0
  163. package/dist/backend/backend/src/controllers/cloud/index.js.map +1 -1
  164. package/dist/backend/backend/src/controllers/index.d.ts.map +1 -1
  165. package/dist/backend/backend/src/controllers/index.js +2 -0
  166. package/dist/backend/backend/src/controllers/index.js.map +1 -1
  167. package/dist/backend/backend/src/controllers/marketplace/marketplace.controller.js +1 -1
  168. package/dist/backend/backend/src/controllers/marketplace/marketplace.controller.js.map +1 -1
  169. package/dist/backend/backend/src/controllers/marketplace/template-marketplace.routes.d.ts +3 -3
  170. package/dist/backend/backend/src/controllers/marketplace/template-marketplace.routes.js +9 -9
  171. package/dist/backend/backend/src/controllers/marketplace/template-marketplace.routes.js.map +1 -1
  172. package/dist/backend/backend/src/controllers/memory/memory.controller.js +6 -6
  173. package/dist/backend/backend/src/controllers/memory/memory.controller.js.map +1 -1
  174. package/dist/backend/backend/src/controllers/messaging/messenger.routes.d.ts +0 -7
  175. package/dist/backend/backend/src/controllers/messaging/messenger.routes.d.ts.map +1 -1
  176. package/dist/backend/backend/src/controllers/messaging/messenger.routes.js +2 -135
  177. package/dist/backend/backend/src/controllers/messaging/messenger.routes.js.map +1 -1
  178. package/dist/backend/backend/src/controllers/monitoring/terminal.controller.d.ts +14 -0
  179. package/dist/backend/backend/src/controllers/monitoring/terminal.controller.d.ts.map +1 -1
  180. package/dist/backend/backend/src/controllers/monitoring/terminal.controller.js +106 -3
  181. package/dist/backend/backend/src/controllers/monitoring/terminal.controller.js.map +1 -1
  182. package/dist/backend/backend/src/controllers/oauth/oauth.routes.d.ts.map +1 -1
  183. package/dist/backend/backend/src/controllers/oauth/oauth.routes.js +8 -1
  184. package/dist/backend/backend/src/controllers/oauth/oauth.routes.js.map +1 -1
  185. package/dist/backend/backend/src/controllers/payment/payment.controller.js +2 -2
  186. package/dist/backend/backend/src/controllers/payment/payment.controller.js.map +1 -1
  187. package/dist/backend/backend/src/controllers/payment/payment.routes.d.ts +3 -3
  188. package/dist/backend/backend/src/controllers/payment/payment.routes.d.ts.map +1 -1
  189. package/dist/backend/backend/src/controllers/payment/payment.routes.js +4 -14
  190. package/dist/backend/backend/src/controllers/payment/payment.routes.js.map +1 -1
  191. package/dist/backend/backend/src/controllers/payment/payment.types.d.ts +15 -94
  192. package/dist/backend/backend/src/controllers/payment/payment.types.d.ts.map +1 -1
  193. package/dist/backend/backend/src/controllers/payment/payment.types.js +11 -35
  194. package/dist/backend/backend/src/controllers/payment/payment.types.js.map +1 -1
  195. package/dist/backend/backend/src/controllers/pr-review/pr-review.controller.d.ts +49 -0
  196. package/dist/backend/backend/src/controllers/pr-review/pr-review.controller.d.ts.map +1 -0
  197. package/dist/backend/backend/src/controllers/pr-review/pr-review.controller.js +138 -0
  198. package/dist/backend/backend/src/controllers/pr-review/pr-review.controller.js.map +1 -0
  199. package/dist/backend/backend/src/controllers/pr-review/pr-review.routes.d.ts +20 -0
  200. package/dist/backend/backend/src/controllers/pr-review/pr-review.routes.d.ts.map +1 -0
  201. package/dist/backend/backend/src/controllers/pr-review/pr-review.routes.js +30 -0
  202. package/dist/backend/backend/src/controllers/pr-review/pr-review.routes.js.map +1 -0
  203. package/dist/backend/backend/src/controllers/quality-gate/quality-gate.controller.d.ts +12 -0
  204. package/dist/backend/backend/src/controllers/quality-gate/quality-gate.controller.d.ts.map +1 -1
  205. package/dist/backend/backend/src/controllers/quality-gate/quality-gate.controller.js +107 -0
  206. package/dist/backend/backend/src/controllers/quality-gate/quality-gate.controller.js.map +1 -1
  207. package/dist/backend/backend/src/controllers/request-types.d.ts +20 -1
  208. package/dist/backend/backend/src/controllers/request-types.d.ts.map +1 -1
  209. package/dist/backend/backend/src/controllers/slack/slack.controller.d.ts.map +1 -1
  210. package/dist/backend/backend/src/controllers/slack/slack.controller.js +11 -5
  211. package/dist/backend/backend/src/controllers/slack/slack.controller.js.map +1 -1
  212. package/dist/backend/backend/src/controllers/task-management/task-management.controller.d.ts +46 -0
  213. package/dist/backend/backend/src/controllers/task-management/task-management.controller.d.ts.map +1 -1
  214. package/dist/backend/backend/src/controllers/task-management/task-management.controller.js +598 -326
  215. package/dist/backend/backend/src/controllers/task-management/task-management.controller.js.map +1 -1
  216. package/dist/backend/backend/src/controllers/team/team.controller.d.ts +12 -0
  217. package/dist/backend/backend/src/controllers/team/team.controller.d.ts.map +1 -1
  218. package/dist/backend/backend/src/controllers/team/team.controller.js +178 -49
  219. package/dist/backend/backend/src/controllers/team/team.controller.js.map +1 -1
  220. package/dist/backend/backend/src/controllers/team/team.routes.d.ts.map +1 -1
  221. package/dist/backend/backend/src/controllers/team/team.routes.js +2 -1
  222. package/dist/backend/backend/src/controllers/team/team.routes.js.map +1 -1
  223. package/dist/backend/backend/src/controllers/template/template.controller.d.ts +11 -0
  224. package/dist/backend/backend/src/controllers/template/template.controller.d.ts.map +1 -1
  225. package/dist/backend/backend/src/controllers/template/template.controller.js +59 -0
  226. package/dist/backend/backend/src/controllers/template/template.controller.js.map +1 -1
  227. package/dist/backend/backend/src/controllers/template/template.routes.d.ts.map +1 -1
  228. package/dist/backend/backend/src/controllers/template/template.routes.js +2 -1
  229. package/dist/backend/backend/src/controllers/template/template.routes.js.map +1 -1
  230. package/dist/backend/backend/src/controllers/workspace/workspace.controller.d.ts +39 -0
  231. package/dist/backend/backend/src/controllers/workspace/workspace.controller.d.ts.map +1 -0
  232. package/dist/backend/backend/src/controllers/workspace/workspace.controller.js +120 -0
  233. package/dist/backend/backend/src/controllers/workspace/workspace.controller.js.map +1 -0
  234. package/dist/backend/backend/src/controllers/workspace/workspace.routes.d.ts +18 -0
  235. package/dist/backend/backend/src/controllers/workspace/workspace.routes.d.ts.map +1 -0
  236. package/dist/backend/backend/src/controllers/workspace/workspace.routes.js +27 -0
  237. package/dist/backend/backend/src/controllers/workspace/workspace.routes.js.map +1 -0
  238. package/dist/backend/backend/src/index.d.ts.map +1 -1
  239. package/dist/backend/backend/src/index.js +108 -15
  240. package/dist/backend/backend/src/index.js.map +1 -1
  241. package/dist/backend/backend/src/middleware/require-auth.middleware.d.ts +20 -0
  242. package/dist/backend/backend/src/middleware/require-auth.middleware.d.ts.map +1 -0
  243. package/dist/backend/backend/src/middleware/require-auth.middleware.js +21 -0
  244. package/dist/backend/backend/src/middleware/require-auth.middleware.js.map +1 -0
  245. package/dist/backend/backend/src/routes/api.routes.d.ts.map +1 -1
  246. package/dist/backend/backend/src/routes/api.routes.js +18 -5
  247. package/dist/backend/backend/src/routes/api.routes.js.map +1 -1
  248. package/dist/backend/backend/src/routes/modules/quality-gate.routes.d.ts +2 -1
  249. package/dist/backend/backend/src/routes/modules/quality-gate.routes.d.ts.map +1 -1
  250. package/dist/backend/backend/src/routes/modules/quality-gate.routes.js +4 -2
  251. package/dist/backend/backend/src/routes/modules/quality-gate.routes.js.map +1 -1
  252. package/dist/backend/backend/src/routes/modules/task-management.routes.d.ts.map +1 -1
  253. package/dist/backend/backend/src/routes/modules/task-management.routes.js +8 -0
  254. package/dist/backend/backend/src/routes/modules/task-management.routes.js.map +1 -1
  255. package/dist/backend/backend/src/routes/modules/terminal.routes.d.ts.map +1 -1
  256. package/dist/backend/backend/src/routes/modules/terminal.routes.js +4 -0
  257. package/dist/backend/backend/src/routes/modules/terminal.routes.js.map +1 -1
  258. package/dist/backend/backend/src/services/agent/adaptive-heartbeat.service.d.ts +149 -0
  259. package/dist/backend/backend/src/services/agent/adaptive-heartbeat.service.d.ts.map +1 -0
  260. package/dist/backend/backend/src/services/agent/adaptive-heartbeat.service.js +200 -0
  261. package/dist/backend/backend/src/services/agent/adaptive-heartbeat.service.js.map +1 -0
  262. package/dist/backend/backend/src/services/agent/agent-heartbeat-monitor.service.d.ts +13 -0
  263. package/dist/backend/backend/src/services/agent/agent-heartbeat-monitor.service.d.ts.map +1 -1
  264. package/dist/backend/backend/src/services/agent/agent-heartbeat-monitor.service.js +65 -6
  265. package/dist/backend/backend/src/services/agent/agent-heartbeat-monitor.service.js.map +1 -1
  266. package/dist/backend/backend/src/services/agent/agent-registration.service.d.ts +57 -0
  267. package/dist/backend/backend/src/services/agent/agent-registration.service.d.ts.map +1 -1
  268. package/dist/backend/backend/src/services/agent/agent-registration.service.js +259 -67
  269. package/dist/backend/backend/src/services/agent/agent-registration.service.js.map +1 -1
  270. package/dist/backend/backend/src/services/agent/auditor-scheduler.service.d.ts +66 -20
  271. package/dist/backend/backend/src/services/agent/auditor-scheduler.service.d.ts.map +1 -1
  272. package/dist/backend/backend/src/services/agent/auditor-scheduler.service.js +261 -60
  273. package/dist/backend/backend/src/services/agent/auditor-scheduler.service.js.map +1 -1
  274. package/dist/backend/backend/src/services/agent/claude-runtime.service.d.ts +19 -0
  275. package/dist/backend/backend/src/services/agent/claude-runtime.service.d.ts.map +1 -1
  276. package/dist/backend/backend/src/services/agent/claude-runtime.service.js +80 -0
  277. package/dist/backend/backend/src/services/agent/claude-runtime.service.js.map +1 -1
  278. package/dist/backend/backend/src/services/agent/context-window-monitor.service.d.ts +11 -0
  279. package/dist/backend/backend/src/services/agent/context-window-monitor.service.d.ts.map +1 -1
  280. package/dist/backend/backend/src/services/agent/context-window-monitor.service.js +49 -1
  281. package/dist/backend/backend/src/services/agent/context-window-monitor.service.js.map +1 -1
  282. package/dist/backend/backend/src/services/agent/crewly-agent/agent-runner.service.d.ts +150 -5
  283. package/dist/backend/backend/src/services/agent/crewly-agent/agent-runner.service.d.ts.map +1 -1
  284. package/dist/backend/backend/src/services/agent/crewly-agent/agent-runner.service.js +426 -18
  285. package/dist/backend/backend/src/services/agent/crewly-agent/agent-runner.service.js.map +1 -1
  286. package/dist/backend/backend/src/services/agent/crewly-agent/approval-queue.service.d.ts +161 -0
  287. package/dist/backend/backend/src/services/agent/crewly-agent/approval-queue.service.d.ts.map +1 -0
  288. package/dist/backend/backend/src/services/agent/crewly-agent/approval-queue.service.js +237 -0
  289. package/dist/backend/backend/src/services/agent/crewly-agent/approval-queue.service.js.map +1 -0
  290. package/dist/backend/backend/src/services/agent/crewly-agent/audit-trail.service.d.ts +74 -0
  291. package/dist/backend/backend/src/services/agent/crewly-agent/audit-trail.service.d.ts.map +1 -0
  292. package/dist/backend/backend/src/services/agent/crewly-agent/audit-trail.service.js +140 -0
  293. package/dist/backend/backend/src/services/agent/crewly-agent/audit-trail.service.js.map +1 -0
  294. package/dist/backend/backend/src/services/agent/crewly-agent/auditor-tools.d.ts.map +1 -1
  295. package/dist/backend/backend/src/services/agent/crewly-agent/auditor-tools.js +50 -2
  296. package/dist/backend/backend/src/services/agent/crewly-agent/auditor-tools.js.map +1 -1
  297. package/dist/backend/backend/src/services/agent/crewly-agent/crewly-agent-runtime.service.d.ts +16 -1
  298. package/dist/backend/backend/src/services/agent/crewly-agent/crewly-agent-runtime.service.d.ts.map +1 -1
  299. package/dist/backend/backend/src/services/agent/crewly-agent/crewly-agent-runtime.service.js +46 -5
  300. package/dist/backend/backend/src/services/agent/crewly-agent/crewly-agent-runtime.service.js.map +1 -1
  301. package/dist/backend/backend/src/services/agent/crewly-agent/in-process-log-buffer.d.ts +23 -1
  302. package/dist/backend/backend/src/services/agent/crewly-agent/in-process-log-buffer.d.ts.map +1 -1
  303. package/dist/backend/backend/src/services/agent/crewly-agent/in-process-log-buffer.js +37 -8
  304. package/dist/backend/backend/src/services/agent/crewly-agent/in-process-log-buffer.js.map +1 -1
  305. package/dist/backend/backend/src/services/agent/crewly-agent/index.d.ts +3 -1
  306. package/dist/backend/backend/src/services/agent/crewly-agent/index.d.ts.map +1 -1
  307. package/dist/backend/backend/src/services/agent/crewly-agent/index.js +3 -1
  308. package/dist/backend/backend/src/services/agent/crewly-agent/index.js.map +1 -1
  309. package/dist/backend/backend/src/services/agent/crewly-agent/mcp-tool-bridge.d.ts +135 -0
  310. package/dist/backend/backend/src/services/agent/crewly-agent/mcp-tool-bridge.d.ts.map +1 -0
  311. package/dist/backend/backend/src/services/agent/crewly-agent/mcp-tool-bridge.js +185 -0
  312. package/dist/backend/backend/src/services/agent/crewly-agent/mcp-tool-bridge.js.map +1 -0
  313. package/dist/backend/backend/src/services/agent/crewly-agent/model-manager.d.ts +10 -2
  314. package/dist/backend/backend/src/services/agent/crewly-agent/model-manager.d.ts.map +1 -1
  315. package/dist/backend/backend/src/services/agent/crewly-agent/model-manager.js +27 -9
  316. package/dist/backend/backend/src/services/agent/crewly-agent/model-manager.js.map +1 -1
  317. package/dist/backend/backend/src/services/agent/crewly-agent/rate-limiter.d.ts +143 -0
  318. package/dist/backend/backend/src/services/agent/crewly-agent/rate-limiter.d.ts.map +1 -0
  319. package/dist/backend/backend/src/services/agent/crewly-agent/rate-limiter.js +264 -0
  320. package/dist/backend/backend/src/services/agent/crewly-agent/rate-limiter.js.map +1 -0
  321. package/dist/backend/backend/src/services/agent/crewly-agent/smoke-test.js +2 -2
  322. package/dist/backend/backend/src/services/agent/crewly-agent/tool-registry.d.ts +64 -2
  323. package/dist/backend/backend/src/services/agent/crewly-agent/tool-registry.d.ts.map +1 -1
  324. package/dist/backend/backend/src/services/agent/crewly-agent/tool-registry.js +927 -39
  325. package/dist/backend/backend/src/services/agent/crewly-agent/tool-registry.js.map +1 -1
  326. package/dist/backend/backend/src/services/agent/crewly-agent/types.d.ts +166 -3
  327. package/dist/backend/backend/src/services/agent/crewly-agent/types.d.ts.map +1 -1
  328. package/dist/backend/backend/src/services/agent/crewly-agent/types.js +55 -1
  329. package/dist/backend/backend/src/services/agent/crewly-agent/types.js.map +1 -1
  330. package/dist/backend/backend/src/services/agent/runtime-exit-monitor.service.d.ts.map +1 -1
  331. package/dist/backend/backend/src/services/agent/runtime-exit-monitor.service.js +17 -2
  332. package/dist/backend/backend/src/services/agent/runtime-exit-monitor.service.js.map +1 -1
  333. package/dist/backend/backend/src/services/ai/prompt-builder.service.d.ts +37 -0
  334. package/dist/backend/backend/src/services/ai/prompt-builder.service.d.ts.map +1 -1
  335. package/dist/backend/backend/src/services/ai/prompt-builder.service.js +170 -3
  336. package/dist/backend/backend/src/services/ai/prompt-builder.service.js.map +1 -1
  337. package/dist/backend/backend/src/services/browser/chrome-discovery.service.d.ts +108 -0
  338. package/dist/backend/backend/src/services/browser/chrome-discovery.service.d.ts.map +1 -0
  339. package/dist/backend/backend/src/services/browser/chrome-discovery.service.js +251 -0
  340. package/dist/backend/backend/src/services/browser/chrome-discovery.service.js.map +1 -0
  341. package/dist/backend/backend/src/services/cloud/cloud-client.service.d.ts +12 -0
  342. package/dist/backend/backend/src/services/cloud/cloud-client.service.d.ts.map +1 -1
  343. package/dist/backend/backend/src/services/cloud/cloud-client.service.js +19 -0
  344. package/dist/backend/backend/src/services/cloud/cloud-client.service.js.map +1 -1
  345. package/dist/backend/backend/src/services/cloud/device-auto-discovery.service.d.ts +191 -0
  346. package/dist/backend/backend/src/services/cloud/device-auto-discovery.service.d.ts.map +1 -0
  347. package/dist/backend/backend/src/services/cloud/device-auto-discovery.service.js +415 -0
  348. package/dist/backend/backend/src/services/cloud/device-auto-discovery.service.js.map +1 -0
  349. package/dist/backend/backend/src/services/cloud/device-identity.service.d.ts +89 -0
  350. package/dist/backend/backend/src/services/cloud/device-identity.service.d.ts.map +1 -0
  351. package/dist/backend/backend/src/services/cloud/device-identity.service.js +148 -0
  352. package/dist/backend/backend/src/services/cloud/device-identity.service.js.map +1 -0
  353. package/dist/backend/backend/src/services/core/tracing.service.d.ts +127 -0
  354. package/dist/backend/backend/src/services/core/tracing.service.d.ts.map +1 -0
  355. package/dist/backend/backend/src/services/core/tracing.service.js +238 -0
  356. package/dist/backend/backend/src/services/core/tracing.service.js.map +1 -0
  357. package/dist/backend/backend/src/services/event-bus/event-bus.service.d.ts.map +1 -1
  358. package/dist/backend/backend/src/services/event-bus/event-bus.service.js +11 -3
  359. package/dist/backend/backend/src/services/event-bus/event-bus.service.js.map +1 -1
  360. package/dist/backend/backend/src/services/index.d.ts +1 -0
  361. package/dist/backend/backend/src/services/index.d.ts.map +1 -1
  362. package/dist/backend/backend/src/services/index.js +1 -0
  363. package/dist/backend/backend/src/services/index.js.map +1 -1
  364. package/dist/backend/backend/src/services/knowledge/embedding-provider.d.ts +78 -0
  365. package/dist/backend/backend/src/services/knowledge/embedding-provider.d.ts.map +1 -0
  366. package/dist/backend/backend/src/services/knowledge/embedding-provider.js +164 -0
  367. package/dist/backend/backend/src/services/knowledge/embedding-provider.js.map +1 -0
  368. package/dist/backend/backend/src/services/knowledge/index.d.ts +1 -0
  369. package/dist/backend/backend/src/services/knowledge/index.d.ts.map +1 -1
  370. package/dist/backend/backend/src/services/knowledge/index.js +1 -0
  371. package/dist/backend/backend/src/services/knowledge/index.js.map +1 -1
  372. package/dist/backend/backend/src/services/knowledge/knowledge-search.service.d.ts +91 -11
  373. package/dist/backend/backend/src/services/knowledge/knowledge-search.service.d.ts.map +1 -1
  374. package/dist/backend/backend/src/services/knowledge/knowledge-search.service.js +244 -15
  375. package/dist/backend/backend/src/services/knowledge/knowledge-search.service.js.map +1 -1
  376. package/dist/backend/backend/src/services/knowledge/vector-store.service.d.ts +331 -0
  377. package/dist/backend/backend/src/services/knowledge/vector-store.service.d.ts.map +1 -0
  378. package/dist/backend/backend/src/services/knowledge/vector-store.service.js +814 -0
  379. package/dist/backend/backend/src/services/knowledge/vector-store.service.js.map +1 -0
  380. package/dist/backend/backend/src/services/marketplace/marketplace-installer.service.d.ts.map +1 -1
  381. package/dist/backend/backend/src/services/marketplace/marketplace-installer.service.js +8 -11
  382. package/dist/backend/backend/src/services/marketplace/marketplace-installer.service.js.map +1 -1
  383. package/dist/backend/backend/src/services/marketplace/marketplace.service.d.ts.map +1 -1
  384. package/dist/backend/backend/src/services/marketplace/marketplace.service.js +1 -0
  385. package/dist/backend/backend/src/services/marketplace/marketplace.service.js.map +1 -1
  386. package/dist/backend/backend/src/services/memory/context-flush.service.d.ts +73 -0
  387. package/dist/backend/backend/src/services/memory/context-flush.service.d.ts.map +1 -0
  388. package/dist/backend/backend/src/services/memory/context-flush.service.js +131 -0
  389. package/dist/backend/backend/src/services/memory/context-flush.service.js.map +1 -0
  390. package/dist/backend/backend/src/services/memory/learning-accumulation.service.d.ts +23 -2
  391. package/dist/backend/backend/src/services/memory/learning-accumulation.service.d.ts.map +1 -1
  392. package/dist/backend/backend/src/services/memory/learning-accumulation.service.js +78 -16
  393. package/dist/backend/backend/src/services/memory/learning-accumulation.service.js.map +1 -1
  394. package/dist/backend/backend/src/services/memory/memory.service.d.ts +38 -0
  395. package/dist/backend/backend/src/services/memory/memory.service.d.ts.map +1 -1
  396. package/dist/backend/backend/src/services/memory/memory.service.js +121 -2
  397. package/dist/backend/backend/src/services/memory/memory.service.js.map +1 -1
  398. package/dist/backend/backend/src/services/messaging/adapters/google-chat-messenger.adapter.d.ts +29 -207
  399. package/dist/backend/backend/src/services/messaging/adapters/google-chat-messenger.adapter.d.ts.map +1 -1
  400. package/dist/backend/backend/src/services/messaging/adapters/google-chat-messenger.adapter.js +97 -683
  401. package/dist/backend/backend/src/services/messaging/adapters/google-chat-messenger.adapter.js.map +1 -1
  402. package/dist/backend/backend/src/services/messaging/google-chat-initializer.d.ts.map +1 -1
  403. package/dist/backend/backend/src/services/messaging/google-chat-initializer.js +13 -12
  404. package/dist/backend/backend/src/services/messaging/google-chat-initializer.js.map +1 -1
  405. package/dist/backend/backend/src/services/messaging/messenger-adapter.interface.d.ts +2 -0
  406. package/dist/backend/backend/src/services/messaging/messenger-adapter.interface.d.ts.map +1 -1
  407. package/dist/backend/backend/src/services/messaging/queue-processor.service.d.ts +6 -23
  408. package/dist/backend/backend/src/services/messaging/queue-processor.service.d.ts.map +1 -1
  409. package/dist/backend/backend/src/services/messaging/queue-processor.service.js +48 -184
  410. package/dist/backend/backend/src/services/messaging/queue-processor.service.js.map +1 -1
  411. package/dist/backend/backend/src/services/monitoring/activity-monitor.service.d.ts.map +1 -1
  412. package/dist/backend/backend/src/services/monitoring/activity-monitor.service.js +51 -5
  413. package/dist/backend/backend/src/services/monitoring/activity-monitor.service.js.map +1 -1
  414. package/dist/backend/backend/src/services/orchestrator/index.d.ts +1 -1
  415. package/dist/backend/backend/src/services/orchestrator/index.d.ts.map +1 -1
  416. package/dist/backend/backend/src/services/orchestrator/index.js +1 -1
  417. package/dist/backend/backend/src/services/orchestrator/index.js.map +1 -1
  418. package/dist/backend/backend/src/services/orchestrator/orchestrator-heartbeat-monitor.service.d.ts +65 -0
  419. package/dist/backend/backend/src/services/orchestrator/orchestrator-heartbeat-monitor.service.d.ts.map +1 -1
  420. package/dist/backend/backend/src/services/orchestrator/orchestrator-heartbeat-monitor.service.js +165 -2
  421. package/dist/backend/backend/src/services/orchestrator/orchestrator-heartbeat-monitor.service.js.map +1 -1
  422. package/dist/backend/backend/src/services/orchestrator/orchestrator-status.service.d.ts +8 -0
  423. package/dist/backend/backend/src/services/orchestrator/orchestrator-status.service.d.ts.map +1 -1
  424. package/dist/backend/backend/src/services/orchestrator/orchestrator-status.service.js +23 -0
  425. package/dist/backend/backend/src/services/orchestrator/orchestrator-status.service.js.map +1 -1
  426. package/dist/backend/backend/src/services/payment/stripe.service.d.ts +95 -43
  427. package/dist/backend/backend/src/services/payment/stripe.service.d.ts.map +1 -1
  428. package/dist/backend/backend/src/services/payment/stripe.service.js +229 -190
  429. package/dist/backend/backend/src/services/payment/stripe.service.js.map +1 -1
  430. package/dist/backend/backend/src/services/pr-review/pr-review.service.d.ts +181 -0
  431. package/dist/backend/backend/src/services/pr-review/pr-review.service.d.ts.map +1 -0
  432. package/dist/backend/backend/src/services/pr-review/pr-review.service.js +336 -0
  433. package/dist/backend/backend/src/services/pr-review/pr-review.service.js.map +1 -0
  434. package/dist/backend/backend/src/services/project/task-tracking.service.d.ts +23 -0
  435. package/dist/backend/backend/src/services/project/task-tracking.service.d.ts.map +1 -1
  436. package/dist/backend/backend/src/services/project/task-tracking.service.js +88 -0
  437. package/dist/backend/backend/src/services/project/task-tracking.service.js.map +1 -1
  438. package/dist/backend/backend/src/services/session/index.d.ts +2 -0
  439. package/dist/backend/backend/src/services/session/index.d.ts.map +1 -1
  440. package/dist/backend/backend/src/services/session/index.js +2 -0
  441. package/dist/backend/backend/src/services/session/index.js.map +1 -1
  442. package/dist/backend/backend/src/services/session/session-handoff.service.d.ts +260 -0
  443. package/dist/backend/backend/src/services/session/session-handoff.service.d.ts.map +1 -0
  444. package/dist/backend/backend/src/services/session/session-handoff.service.js +565 -0
  445. package/dist/backend/backend/src/services/session/session-handoff.service.js.map +1 -0
  446. package/dist/backend/backend/src/services/skill/index.d.ts +1 -0
  447. package/dist/backend/backend/src/services/skill/index.d.ts.map +1 -1
  448. package/dist/backend/backend/src/services/skill/index.js +1 -0
  449. package/dist/backend/backend/src/services/skill/index.js.map +1 -1
  450. package/dist/backend/backend/src/services/skill/skill-catalog.service.d.ts +25 -6
  451. package/dist/backend/backend/src/services/skill/skill-catalog.service.d.ts.map +1 -1
  452. package/dist/backend/backend/src/services/skill/skill-catalog.service.js +78 -20
  453. package/dist/backend/backend/src/services/skill/skill-catalog.service.js.map +1 -1
  454. package/dist/backend/backend/src/services/skill/skill-tier.service.d.ts +116 -0
  455. package/dist/backend/backend/src/services/skill/skill-tier.service.d.ts.map +1 -0
  456. package/dist/backend/backend/src/services/skill/skill-tier.service.js +155 -0
  457. package/dist/backend/backend/src/services/skill/skill-tier.service.js.map +1 -0
  458. package/dist/backend/backend/src/services/skill/skill.service.d.ts +35 -7
  459. package/dist/backend/backend/src/services/skill/skill.service.d.ts.map +1 -1
  460. package/dist/backend/backend/src/services/skill/skill.service.js +128 -35
  461. package/dist/backend/backend/src/services/skill/skill.service.js.map +1 -1
  462. package/dist/backend/backend/src/services/slack/slack-orchestrator-bridge.d.ts +50 -47
  463. package/dist/backend/backend/src/services/slack/slack-orchestrator-bridge.d.ts.map +1 -1
  464. package/dist/backend/backend/src/services/slack/slack-orchestrator-bridge.js +267 -202
  465. package/dist/backend/backend/src/services/slack/slack-orchestrator-bridge.js.map +1 -1
  466. package/dist/backend/backend/src/services/slack/slack.service.d.ts +28 -2
  467. package/dist/backend/backend/src/services/slack/slack.service.d.ts.map +1 -1
  468. package/dist/backend/backend/src/services/slack/slack.service.js +69 -3
  469. package/dist/backend/backend/src/services/slack/slack.service.js.map +1 -1
  470. package/dist/backend/backend/src/services/template/template.service.d.ts +19 -1
  471. package/dist/backend/backend/src/services/template/template.service.d.ts.map +1 -1
  472. package/dist/backend/backend/src/services/template/template.service.js +110 -3
  473. package/dist/backend/backend/src/services/template/template.service.js.map +1 -1
  474. package/dist/backend/backend/src/services/whatsapp/whatsapp-orchestrator-bridge.d.ts +11 -0
  475. package/dist/backend/backend/src/services/whatsapp/whatsapp-orchestrator-bridge.d.ts.map +1 -1
  476. package/dist/backend/backend/src/services/whatsapp/whatsapp-orchestrator-bridge.js +57 -3
  477. package/dist/backend/backend/src/services/whatsapp/whatsapp-orchestrator-bridge.js.map +1 -1
  478. package/dist/backend/backend/src/services/workflow/message-scheduler.service.d.ts.map +1 -1
  479. package/dist/backend/backend/src/services/workflow/message-scheduler.service.js +6 -0
  480. package/dist/backend/backend/src/services/workflow/message-scheduler.service.js.map +1 -1
  481. package/dist/backend/backend/src/services/workflow/scheduler.service.d.ts +52 -0
  482. package/dist/backend/backend/src/services/workflow/scheduler.service.d.ts.map +1 -1
  483. package/dist/backend/backend/src/services/workflow/scheduler.service.js +319 -6
  484. package/dist/backend/backend/src/services/workflow/scheduler.service.js.map +1 -1
  485. package/dist/backend/backend/src/types/chat.types.d.ts +2 -2
  486. package/dist/backend/backend/src/types/chat.types.d.ts.map +1 -1
  487. package/dist/backend/backend/src/types/chat.types.js +18 -22
  488. package/dist/backend/backend/src/types/chat.types.js.map +1 -1
  489. package/dist/backend/backend/src/types/index.d.ts +38 -1
  490. package/dist/backend/backend/src/types/index.d.ts.map +1 -1
  491. package/dist/backend/backend/src/types/index.js.map +1 -1
  492. package/dist/backend/backend/src/types/marketplace.types.d.ts +1 -1
  493. package/dist/backend/backend/src/types/marketplace.types.d.ts.map +1 -1
  494. package/dist/backend/backend/src/types/scheduler.types.d.ts +4 -0
  495. package/dist/backend/backend/src/types/scheduler.types.d.ts.map +1 -1
  496. package/dist/backend/backend/src/types/scheduler.types.js.map +1 -1
  497. package/dist/backend/backend/src/types/skill.types.d.ts +4 -0
  498. package/dist/backend/backend/src/types/skill.types.d.ts.map +1 -1
  499. package/dist/backend/backend/src/types/skill.types.js.map +1 -1
  500. package/dist/backend/backend/src/types/task-tracking.types.d.ts +6 -0
  501. package/dist/backend/backend/src/types/task-tracking.types.d.ts.map +1 -1
  502. package/dist/backend/backend/src/types/task-tracking.types.js.map +1 -1
  503. package/dist/backend/backend/src/types/team-template.types.d.ts +2 -0
  504. package/dist/backend/backend/src/types/team-template.types.d.ts.map +1 -1
  505. package/dist/backend/backend/src/types/team-template.types.js.map +1 -1
  506. package/dist/backend/backend/src/utils/skill-md-parser.d.ts +38 -0
  507. package/dist/backend/backend/src/utils/skill-md-parser.d.ts.map +1 -0
  508. package/dist/backend/backend/src/utils/skill-md-parser.js +47 -0
  509. package/dist/backend/backend/src/utils/skill-md-parser.js.map +1 -0
  510. package/dist/backend/backend/src/websocket/terminal.gateway.d.ts +49 -139
  511. package/dist/backend/backend/src/websocket/terminal.gateway.d.ts.map +1 -1
  512. package/dist/backend/backend/src/websocket/terminal.gateway.js +143 -502
  513. package/dist/backend/backend/src/websocket/terminal.gateway.js.map +1 -1
  514. package/dist/backend/config/constants.d.ts +18 -3
  515. package/dist/backend/config/constants.d.ts.map +1 -1
  516. package/dist/backend/config/constants.js +18 -3
  517. package/dist/backend/config/constants.js.map +1 -1
  518. package/dist/cli/backend/src/constants.d.ts +80 -11
  519. package/dist/cli/backend/src/constants.d.ts.map +1 -1
  520. package/dist/cli/backend/src/constants.js +85 -11
  521. package/dist/cli/backend/src/constants.js.map +1 -1
  522. package/dist/cli/backend/src/services/knowledge/embedding-provider.d.ts +78 -0
  523. package/dist/cli/backend/src/services/knowledge/embedding-provider.d.ts.map +1 -0
  524. package/dist/cli/backend/src/services/knowledge/embedding-provider.js +164 -0
  525. package/dist/cli/backend/src/services/knowledge/embedding-provider.js.map +1 -0
  526. package/dist/cli/backend/src/services/knowledge/knowledge-search.service.d.ts +91 -11
  527. package/dist/cli/backend/src/services/knowledge/knowledge-search.service.d.ts.map +1 -1
  528. package/dist/cli/backend/src/services/knowledge/knowledge-search.service.js +244 -15
  529. package/dist/cli/backend/src/services/knowledge/knowledge-search.service.js.map +1 -1
  530. package/dist/cli/backend/src/services/knowledge/vector-store.service.d.ts +331 -0
  531. package/dist/cli/backend/src/services/knowledge/vector-store.service.d.ts.map +1 -0
  532. package/dist/cli/backend/src/services/knowledge/vector-store.service.js +814 -0
  533. package/dist/cli/backend/src/services/knowledge/vector-store.service.js.map +1 -0
  534. package/dist/cli/backend/src/services/memory/memory.service.d.ts +38 -0
  535. package/dist/cli/backend/src/services/memory/memory.service.d.ts.map +1 -1
  536. package/dist/cli/backend/src/services/memory/memory.service.js +121 -2
  537. package/dist/cli/backend/src/services/memory/memory.service.js.map +1 -1
  538. package/dist/cli/backend/src/types/chat.types.d.ts +2 -2
  539. package/dist/cli/backend/src/types/chat.types.d.ts.map +1 -1
  540. package/dist/cli/backend/src/types/chat.types.js +18 -22
  541. package/dist/cli/backend/src/types/chat.types.js.map +1 -1
  542. package/dist/cli/backend/src/types/index.d.ts +38 -1
  543. package/dist/cli/backend/src/types/index.d.ts.map +1 -1
  544. package/dist/cli/backend/src/types/index.js.map +1 -1
  545. package/dist/cli/backend/src/types/scheduler.types.d.ts +4 -0
  546. package/dist/cli/backend/src/types/scheduler.types.d.ts.map +1 -1
  547. package/dist/cli/backend/src/types/scheduler.types.js.map +1 -1
  548. package/dist/cli/backend/src/types/skill.types.d.ts +4 -0
  549. package/dist/cli/backend/src/types/skill.types.d.ts.map +1 -1
  550. package/dist/cli/backend/src/types/skill.types.js.map +1 -1
  551. package/dist/cli/cli/src/commands/onboard.d.ts +19 -2
  552. package/dist/cli/cli/src/commands/onboard.d.ts.map +1 -1
  553. package/dist/cli/cli/src/commands/onboard.js +58 -15
  554. package/dist/cli/cli/src/commands/onboard.js.map +1 -1
  555. package/dist/cli/cli/src/commands/pair.d.ts +46 -0
  556. package/dist/cli/cli/src/commands/pair.d.ts.map +1 -0
  557. package/dist/cli/cli/src/commands/pair.js +258 -0
  558. package/dist/cli/cli/src/commands/pair.js.map +1 -0
  559. package/dist/cli/cli/src/commands/service.d.ts +86 -0
  560. package/dist/cli/cli/src/commands/service.d.ts.map +1 -0
  561. package/dist/cli/cli/src/commands/service.js +687 -0
  562. package/dist/cli/cli/src/commands/service.js.map +1 -0
  563. package/dist/cli/cli/src/index.js +17 -0
  564. package/dist/cli/cli/src/index.js.map +1 -1
  565. package/dist/cli/config/constants.d.ts +18 -3
  566. package/dist/cli/config/constants.d.ts.map +1 -1
  567. package/dist/cli/config/constants.js +18 -3
  568. package/dist/cli/config/constants.js.map +1 -1
  569. package/frontend/dist/assets/index-1d23cce8.js +4919 -0
  570. package/frontend/dist/assets/index-60a9e4ea.css +33 -0
  571. package/frontend/dist/index.html +2 -2
  572. package/package.json +22 -9
  573. package/config/skills/agent/browse-stealth/skill.json +0 -20
  574. package/config/skills/agent/competitor-content-tracker/skill.json +0 -22
  575. package/config/skills/agent/computer-use/skill.json +0 -29
  576. package/config/skills/agent/content-calendar/skill.json +0 -22
  577. package/config/skills/agent/content-repurposer/skill.json +0 -22
  578. package/config/skills/agent/content-writer/skill.json +0 -22
  579. package/config/skills/agent/core/accept-task/skill.json +0 -20
  580. package/config/skills/agent/core/block-task/skill.json +0 -20
  581. package/config/skills/agent/core/check-quality-gates/skill.json +0 -20
  582. package/config/skills/agent/core/complete-task/skill.json +0 -20
  583. package/config/skills/agent/core/generate-pdf/skill.json +0 -20
  584. package/config/skills/agent/core/get-my-context/skill.json +0 -20
  585. package/config/skills/agent/core/get-sops/skill.json +0 -20
  586. package/config/skills/agent/core/get-team-status/instructions.md +0 -17
  587. package/config/skills/agent/core/get-team-status/skill.json +0 -20
  588. package/config/skills/agent/core/heartbeat/skill.json +0 -20
  589. package/config/skills/agent/core/marketplace-search/skill.json +0 -20
  590. package/config/skills/agent/core/query-knowledge/skill.json +0 -20
  591. package/config/skills/agent/core/read-task/instructions.md +0 -19
  592. package/config/skills/agent/core/read-task/skill.json +0 -20
  593. package/config/skills/agent/core/recall/skill.json +0 -20
  594. package/config/skills/agent/core/record-learning/skill.json +0 -20
  595. package/config/skills/agent/core/register-self/instructions.md +0 -18
  596. package/config/skills/agent/core/register-self/skill.json +0 -20
  597. package/config/skills/agent/core/remember/skill.json +0 -20
  598. package/config/skills/agent/core/reply-chat/skill.json +0 -20
  599. package/config/skills/agent/core/report-progress/skill.json +0 -20
  600. package/config/skills/agent/core/report-status/skill.json +0 -20
  601. package/config/skills/agent/core/send-chat-response/skill.json +0 -20
  602. package/config/skills/agent/core/send-message/instructions.md +0 -20
  603. package/config/skills/agent/core/send-message/skill.json +0 -20
  604. package/config/skills/agent/desktop-app-control/skill.json +0 -33
  605. package/config/skills/agent/trend-monitor/skill.json +0 -22
  606. package/config/skills/agent/vnc-browser/skill.json +0 -20
  607. package/config/skills/orchestrator/assign-task/instructions.md +0 -17
  608. package/config/skills/orchestrator/assign-task/skill.json +0 -20
  609. package/config/skills/orchestrator/assign-team-to-project/skill.json +0 -20
  610. package/config/skills/orchestrator/broadcast/skill.json +0 -20
  611. package/config/skills/orchestrator/broadcast-to-org/skill.json +0 -20
  612. package/config/skills/orchestrator/cancel-all-schedules/skill.json +0 -17
  613. package/config/skills/orchestrator/cancel-schedule/instructions.md +0 -19
  614. package/config/skills/orchestrator/cancel-schedule/skill.json +0 -20
  615. package/config/skills/orchestrator/complete-task/instructions.md +0 -17
  616. package/config/skills/orchestrator/complete-task/skill.json +0 -20
  617. package/config/skills/orchestrator/create-project/skill.json +0 -20
  618. package/config/skills/orchestrator/create-team/skill.json +0 -20
  619. package/config/skills/orchestrator/delegate-task/skill.json +0 -20
  620. package/config/skills/orchestrator/get-agent-logs/skill.json +0 -20
  621. package/config/skills/orchestrator/get-agent-status/skill.json +0 -20
  622. package/config/skills/orchestrator/get-project-overview/instructions.md +0 -17
  623. package/config/skills/orchestrator/get-project-overview/skill.json +0 -20
  624. package/config/skills/orchestrator/get-tasks/instructions.md +0 -17
  625. package/config/skills/orchestrator/get-tasks/skill.json +0 -20
  626. package/config/skills/orchestrator/get-team-status/instructions.md +0 -17
  627. package/config/skills/orchestrator/get-team-status/skill.json +0 -20
  628. package/config/skills/orchestrator/handle-agent-failure/skill.json +0 -20
  629. package/config/skills/orchestrator/heartbeat/skill.json +0 -20
  630. package/config/skills/orchestrator/list-schedules/skill.json +0 -12
  631. package/config/skills/orchestrator/list-subscriptions/instructions.md +0 -17
  632. package/config/skills/orchestrator/list-subscriptions/skill.json +0 -20
  633. package/config/skills/orchestrator/query-knowledge/skill.json +0 -20
  634. package/config/skills/orchestrator/read-session-logs/skill.json +0 -20
  635. package/config/skills/orchestrator/read-system-logs/skill.json +0 -20
  636. package/config/skills/orchestrator/recall/skill.json +0 -20
  637. package/config/skills/orchestrator/record-failure/skill.json +0 -20
  638. package/config/skills/orchestrator/record-learning/skill.json +0 -20
  639. package/config/skills/orchestrator/record-success/skill.json +0 -20
  640. package/config/skills/orchestrator/register-self/skill.json +0 -20
  641. package/config/skills/orchestrator/remember/skill.json +0 -20
  642. package/config/skills/orchestrator/reply-chat/skill.json +0 -20
  643. package/config/skills/orchestrator/reply-gchat/skill.json +0 -20
  644. package/config/skills/orchestrator/reply-slack/skill.json +0 -20
  645. package/config/skills/orchestrator/report-bug/skill.json +0 -20
  646. package/config/skills/orchestrator/restart-crewly/skill.json +0 -20
  647. package/config/skills/orchestrator/resume-session/skill.json +0 -20
  648. package/config/skills/orchestrator/schedule-check/skill.json +0 -20
  649. package/config/skills/orchestrator/send-key/skill.json +0 -20
  650. package/config/skills/orchestrator/send-message/skill.json +0 -20
  651. package/config/skills/orchestrator/send-pdf-to-slack/skill.json +0 -20
  652. package/config/skills/orchestrator/set-goal/skill.json +0 -20
  653. package/config/skills/orchestrator/start-agent/skill.json +0 -20
  654. package/config/skills/orchestrator/start-team/skill.json +0 -20
  655. package/config/skills/orchestrator/stop-agent/skill.json +0 -20
  656. package/config/skills/orchestrator/stop-team/instructions.md +0 -19
  657. package/config/skills/orchestrator/stop-team/skill.json +0 -20
  658. package/config/skills/orchestrator/subscribe-event/skill.json +0 -20
  659. package/config/skills/orchestrator/terminate-agent/skill.json +0 -20
  660. package/config/skills/orchestrator/unsubscribe-event/instructions.md +0 -19
  661. package/config/skills/orchestrator/unsubscribe-event/skill.json +0 -20
  662. package/config/skills/orchestrator/update-focus/skill.json +0 -20
  663. package/config/skills/orchestrator/update-team/skill.json +0 -20
  664. package/config/skills/team-leader/aggregate-results/skill.json +0 -20
  665. package/config/skills/team-leader/decompose-goal/skill.json +0 -20
  666. package/config/skills/team-leader/delegate-task/skill.json +0 -20
  667. package/config/skills/team-leader/handle-failure/skill.json +0 -20
  668. package/config/skills/team-leader/schedule-check/skill.json +0 -20
  669. package/config/skills/team-leader/start-agent/skill.json +0 -20
  670. package/config/skills/team-leader/stop-agent/skill.json +0 -20
  671. package/config/skills/team-leader/verify-output/skill.json +0 -20
  672. package/frontend/dist/assets/index-0e5673b0.css +0 -33
  673. package/frontend/dist/assets/index-adae9eb6.js +0 -5213
@@ -0,0 +1,161 @@
1
+ /**
2
+ * Approval Queue Service
3
+ *
4
+ * Manages pending tool approval requests for the Crewly Agent runtime.
5
+ * When a tool requires approval (based on SecurityPolicy.requireApproval),
6
+ * execution is blocked and a PendingApproval entry is created. External
7
+ * callers (API, auditor) can then approve or reject the request.
8
+ *
9
+ * @module services/agent/crewly-agent/approval-queue.service
10
+ */
11
+ import type { ToolSensitivity } from './types.js';
12
+ /**
13
+ * Status of an approval request.
14
+ */
15
+ export type ApprovalStatus = 'pending' | 'approved' | 'rejected' | 'expired';
16
+ /**
17
+ * A single pending approval entry.
18
+ */
19
+ export interface PendingApproval {
20
+ /** Unique approval ID */
21
+ id: string;
22
+ /** Agent session that requested the tool call */
23
+ sessionName: string;
24
+ /** Name of the tool awaiting approval */
25
+ toolName: string;
26
+ /** Sensitivity classification of the tool */
27
+ sensitivity: ToolSensitivity;
28
+ /** Sanitized arguments passed to the tool */
29
+ args: Record<string, unknown>;
30
+ /** Current status */
31
+ status: ApprovalStatus;
32
+ /** ISO timestamp when the approval was requested */
33
+ requestedAt: string;
34
+ /** ISO timestamp when the approval was resolved (approved/rejected/expired) */
35
+ resolvedAt?: string;
36
+ /** Who resolved the approval (e.g. 'api', 'auditor', 'auto-expire') */
37
+ resolvedBy?: string;
38
+ /** Reason for rejection (if rejected) */
39
+ reason?: string;
40
+ }
41
+ /**
42
+ * Result of resolving (approve/reject) an approval request.
43
+ */
44
+ export interface ApprovalResolution {
45
+ /** Whether the resolution was successful */
46
+ success: boolean;
47
+ /** The resolved approval entry */
48
+ approval?: PendingApproval;
49
+ /** Error message if resolution failed */
50
+ error?: string;
51
+ }
52
+ /**
53
+ * In-memory approval queue for tool execution requests.
54
+ *
55
+ * Stores pending approvals and provides approve/reject operations.
56
+ * Approvals that exceed the TTL are automatically marked as expired
57
+ * when queried.
58
+ *
59
+ * @example
60
+ * ```typescript
61
+ * const queue = new ApprovalQueueService();
62
+ * const approval = queue.enqueue('session-1', 'edit_file', 'destructive', { path: '/foo' });
63
+ * // Later, approve it:
64
+ * const result = queue.approve(approval.id, 'api');
65
+ * ```
66
+ */
67
+ export declare class ApprovalQueueService {
68
+ private static instance;
69
+ private approvals;
70
+ private idCounter;
71
+ private ttlMs;
72
+ /**
73
+ * Get the shared singleton instance.
74
+ * All agent-runners and API controllers share the same queue.
75
+ *
76
+ * @returns The shared ApprovalQueueService instance
77
+ */
78
+ static getInstance(): ApprovalQueueService;
79
+ /**
80
+ * Reset the singleton instance (for testing only).
81
+ */
82
+ static resetInstance(): void;
83
+ /**
84
+ * Create a new ApprovalQueueService.
85
+ *
86
+ * @param ttlMs - Time-to-live for pending approvals in milliseconds
87
+ */
88
+ constructor(ttlMs?: number);
89
+ /**
90
+ * Add a new approval request to the queue.
91
+ *
92
+ * @param sessionName - Agent session requesting approval
93
+ * @param toolName - Name of the tool
94
+ * @param sensitivity - Sensitivity classification
95
+ * @param args - Sanitized tool arguments
96
+ * @returns The created PendingApproval entry
97
+ */
98
+ enqueue(sessionName: string, toolName: string, sensitivity: ToolSensitivity, args: Record<string, unknown>): PendingApproval;
99
+ /**
100
+ * Approve a pending approval request.
101
+ *
102
+ * @param id - Approval ID to approve
103
+ * @param resolvedBy - Who is approving (e.g. 'api', 'auditor')
104
+ * @returns Resolution result
105
+ */
106
+ approve(id: string, resolvedBy?: string): ApprovalResolution;
107
+ /**
108
+ * Reject a pending approval request.
109
+ *
110
+ * @param id - Approval ID to reject
111
+ * @param resolvedBy - Who is rejecting
112
+ * @param reason - Reason for rejection
113
+ * @returns Resolution result
114
+ */
115
+ reject(id: string, resolvedBy?: string, reason?: string): ApprovalResolution;
116
+ /**
117
+ * Get all pending approval requests.
118
+ *
119
+ * @param sessionName - Optional filter by session name
120
+ * @returns Array of pending approvals
121
+ */
122
+ getPending(sessionName?: string): PendingApproval[];
123
+ /**
124
+ * Get a specific approval by ID.
125
+ *
126
+ * @param id - Approval ID
127
+ * @returns The approval entry or undefined
128
+ */
129
+ getById(id: string): PendingApproval | undefined;
130
+ /**
131
+ * Get the count of currently pending approvals.
132
+ *
133
+ * @returns Number of pending approvals
134
+ */
135
+ getPendingCount(): number;
136
+ /**
137
+ * Clear all approvals (for testing or reset).
138
+ */
139
+ clear(): void;
140
+ /**
141
+ * Resolve a pending approval with the given status.
142
+ *
143
+ * @param id - Approval ID
144
+ * @param status - New status
145
+ * @param resolvedBy - Who resolved it
146
+ * @param reason - Optional reason (for rejections)
147
+ * @returns Resolution result
148
+ */
149
+ private resolve;
150
+ /**
151
+ * Expire stale pending approvals that have exceeded the TTL.
152
+ */
153
+ private expireStale;
154
+ /**
155
+ * Get the oldest pending approval.
156
+ *
157
+ * @returns Oldest pending approval or undefined
158
+ */
159
+ private getOldestPending;
160
+ }
161
+ //# sourceMappingURL=approval-queue.service.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"approval-queue.service.d.ts","sourceRoot":"","sources":["../../../../../../../backend/src/services/agent/crewly-agent/approval-queue.service.ts"],"names":[],"mappings":"AAAA;;;;;;;;;GASG;AAEH,OAAO,KAAK,EAAE,eAAe,EAAE,MAAM,YAAY,CAAC;AAQlD;;GAEG;AACH,MAAM,MAAM,cAAc,GAAG,SAAS,GAAG,UAAU,GAAG,UAAU,GAAG,SAAS,CAAC;AAE7E;;GAEG;AACH,MAAM,WAAW,eAAe;IAC9B,yBAAyB;IACzB,EAAE,EAAE,MAAM,CAAC;IACX,iDAAiD;IACjD,WAAW,EAAE,MAAM,CAAC;IACpB,yCAAyC;IACzC,QAAQ,EAAE,MAAM,CAAC;IACjB,6CAA6C;IAC7C,WAAW,EAAE,eAAe,CAAC;IAC7B,6CAA6C;IAC7C,IAAI,EAAE,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,CAAC;IAC9B,qBAAqB;IACrB,MAAM,EAAE,cAAc,CAAC;IACvB,oDAAoD;IACpD,WAAW,EAAE,MAAM,CAAC;IACpB,+EAA+E;IAC/E,UAAU,CAAC,EAAE,MAAM,CAAC;IACpB,uEAAuE;IACvE,UAAU,CAAC,EAAE,MAAM,CAAC;IACpB,yCAAyC;IACzC,MAAM,CAAC,EAAE,MAAM,CAAC;CACjB;AAED;;GAEG;AACH,MAAM,WAAW,kBAAkB;IACjC,4CAA4C;IAC5C,OAAO,EAAE,OAAO,CAAC;IACjB,kCAAkC;IAClC,QAAQ,CAAC,EAAE,eAAe,CAAC;IAC3B,yCAAyC;IACzC,KAAK,CAAC,EAAE,MAAM,CAAC;CAChB;AAED;;;;;;;;;;;;;;GAcG;AACH,qBAAa,oBAAoB;IAC/B,OAAO,CAAC,MAAM,CAAC,QAAQ,CAAqC;IAC5D,OAAO,CAAC,SAAS,CAA2C;IAC5D,OAAO,CAAC,SAAS,CAAK;IACtB,OAAO,CAAC,KAAK,CAAS;IAEtB;;;;;OAKG;IACH,MAAM,CAAC,WAAW,IAAI,oBAAoB;IAO1C;;OAEG;IACH,MAAM,CAAC,aAAa,IAAI,IAAI;IAI5B;;;;OAIG;gBACS,KAAK,GAAE,MAAgC;IAInD;;;;;;;;OAQG;IACH,OAAO,CACL,WAAW,EAAE,MAAM,EACnB,QAAQ,EAAE,MAAM,EAChB,WAAW,EAAE,eAAe,EAC5B,IAAI,EAAE,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,GAC5B,eAAe;IA+BlB;;;;;;OAMG;IACH,OAAO,CAAC,EAAE,EAAE,MAAM,EAAE,UAAU,GAAE,MAAc,GAAG,kBAAkB;IAInE;;;;;;;OAOG;IACH,MAAM,CAAC,EAAE,EAAE,MAAM,EAAE,UAAU,GAAE,MAAc,EAAE,MAAM,CAAC,EAAE,MAAM,GAAG,kBAAkB;IAInF;;;;;OAKG;IACH,UAAU,CAAC,WAAW,CAAC,EAAE,MAAM,GAAG,eAAe,EAAE;IAWnD;;;;;OAKG;IACH,OAAO,CAAC,EAAE,EAAE,MAAM,GAAG,eAAe,GAAG,SAAS;IAMhD;;;;OAIG;IACH,eAAe,IAAI,MAAM;IAQzB;;OAEG;IACH,KAAK,IAAI,IAAI;IAKb;;;;;;;;OAQG;IACH,OAAO,CAAC,OAAO;IA0Bf;;OAEG;IACH,OAAO,CAAC,WAAW;IAuBnB;;;;OAIG;IACH,OAAO,CAAC,gBAAgB;CAUzB"}
@@ -0,0 +1,237 @@
1
+ /**
2
+ * Approval Queue Service
3
+ *
4
+ * Manages pending tool approval requests for the Crewly Agent runtime.
5
+ * When a tool requires approval (based on SecurityPolicy.requireApproval),
6
+ * execution is blocked and a PendingApproval entry is created. External
7
+ * callers (API, auditor) can then approve or reject the request.
8
+ *
9
+ * @module services/agent/crewly-agent/approval-queue.service
10
+ */
11
+ /** Maximum number of pending approvals before oldest are auto-rejected */
12
+ const MAX_PENDING_APPROVALS = 100;
13
+ /** Default TTL for pending approvals in milliseconds (10 minutes) */
14
+ const DEFAULT_APPROVAL_TTL_MS = 10 * 60 * 1000;
15
+ /**
16
+ * In-memory approval queue for tool execution requests.
17
+ *
18
+ * Stores pending approvals and provides approve/reject operations.
19
+ * Approvals that exceed the TTL are automatically marked as expired
20
+ * when queried.
21
+ *
22
+ * @example
23
+ * ```typescript
24
+ * const queue = new ApprovalQueueService();
25
+ * const approval = queue.enqueue('session-1', 'edit_file', 'destructive', { path: '/foo' });
26
+ * // Later, approve it:
27
+ * const result = queue.approve(approval.id, 'api');
28
+ * ```
29
+ */
30
+ export class ApprovalQueueService {
31
+ static instance = null;
32
+ approvals = new Map();
33
+ idCounter = 0;
34
+ ttlMs;
35
+ /**
36
+ * Get the shared singleton instance.
37
+ * All agent-runners and API controllers share the same queue.
38
+ *
39
+ * @returns The shared ApprovalQueueService instance
40
+ */
41
+ static getInstance() {
42
+ if (!ApprovalQueueService.instance) {
43
+ ApprovalQueueService.instance = new ApprovalQueueService();
44
+ }
45
+ return ApprovalQueueService.instance;
46
+ }
47
+ /**
48
+ * Reset the singleton instance (for testing only).
49
+ */
50
+ static resetInstance() {
51
+ ApprovalQueueService.instance = null;
52
+ }
53
+ /**
54
+ * Create a new ApprovalQueueService.
55
+ *
56
+ * @param ttlMs - Time-to-live for pending approvals in milliseconds
57
+ */
58
+ constructor(ttlMs = DEFAULT_APPROVAL_TTL_MS) {
59
+ this.ttlMs = ttlMs;
60
+ }
61
+ /**
62
+ * Add a new approval request to the queue.
63
+ *
64
+ * @param sessionName - Agent session requesting approval
65
+ * @param toolName - Name of the tool
66
+ * @param sensitivity - Sensitivity classification
67
+ * @param args - Sanitized tool arguments
68
+ * @returns The created PendingApproval entry
69
+ */
70
+ enqueue(sessionName, toolName, sensitivity, args) {
71
+ this.expireStale();
72
+ // Enforce max pending limit — reject oldest if full
73
+ if (this.getPendingCount() >= MAX_PENDING_APPROVALS) {
74
+ const oldest = this.getOldestPending();
75
+ if (oldest) {
76
+ oldest.status = 'rejected';
77
+ oldest.resolvedAt = new Date().toISOString();
78
+ oldest.resolvedBy = 'auto-overflow';
79
+ oldest.reason = 'Approval queue overflow — auto-rejected oldest entry';
80
+ }
81
+ }
82
+ this.idCounter++;
83
+ const id = `approval-${this.idCounter}-${Date.now()}`;
84
+ const approval = {
85
+ id,
86
+ sessionName,
87
+ toolName,
88
+ sensitivity,
89
+ args,
90
+ status: 'pending',
91
+ requestedAt: new Date().toISOString(),
92
+ };
93
+ this.approvals.set(id, approval);
94
+ return approval;
95
+ }
96
+ /**
97
+ * Approve a pending approval request.
98
+ *
99
+ * @param id - Approval ID to approve
100
+ * @param resolvedBy - Who is approving (e.g. 'api', 'auditor')
101
+ * @returns Resolution result
102
+ */
103
+ approve(id, resolvedBy = 'api') {
104
+ return this.resolve(id, 'approved', resolvedBy);
105
+ }
106
+ /**
107
+ * Reject a pending approval request.
108
+ *
109
+ * @param id - Approval ID to reject
110
+ * @param resolvedBy - Who is rejecting
111
+ * @param reason - Reason for rejection
112
+ * @returns Resolution result
113
+ */
114
+ reject(id, resolvedBy = 'api', reason) {
115
+ return this.resolve(id, 'rejected', resolvedBy, reason);
116
+ }
117
+ /**
118
+ * Get all pending approval requests.
119
+ *
120
+ * @param sessionName - Optional filter by session name
121
+ * @returns Array of pending approvals
122
+ */
123
+ getPending(sessionName) {
124
+ this.expireStale();
125
+ const pending = [];
126
+ for (const approval of this.approvals.values()) {
127
+ if (approval.status !== 'pending')
128
+ continue;
129
+ if (sessionName && approval.sessionName !== sessionName)
130
+ continue;
131
+ pending.push({ ...approval });
132
+ }
133
+ return pending;
134
+ }
135
+ /**
136
+ * Get a specific approval by ID.
137
+ *
138
+ * @param id - Approval ID
139
+ * @returns The approval entry or undefined
140
+ */
141
+ getById(id) {
142
+ const approval = this.approvals.get(id);
143
+ if (!approval)
144
+ return undefined;
145
+ return { ...approval };
146
+ }
147
+ /**
148
+ * Get the count of currently pending approvals.
149
+ *
150
+ * @returns Number of pending approvals
151
+ */
152
+ getPendingCount() {
153
+ let count = 0;
154
+ for (const approval of this.approvals.values()) {
155
+ if (approval.status === 'pending')
156
+ count++;
157
+ }
158
+ return count;
159
+ }
160
+ /**
161
+ * Clear all approvals (for testing or reset).
162
+ */
163
+ clear() {
164
+ this.approvals.clear();
165
+ this.idCounter = 0;
166
+ }
167
+ /**
168
+ * Resolve a pending approval with the given status.
169
+ *
170
+ * @param id - Approval ID
171
+ * @param status - New status
172
+ * @param resolvedBy - Who resolved it
173
+ * @param reason - Optional reason (for rejections)
174
+ * @returns Resolution result
175
+ */
176
+ resolve(id, status, resolvedBy, reason) {
177
+ const approval = this.approvals.get(id);
178
+ if (!approval) {
179
+ return { success: false, error: `Approval '${id}' not found` };
180
+ }
181
+ if (approval.status !== 'pending') {
182
+ return {
183
+ success: false,
184
+ error: `Approval '${id}' is already ${approval.status}`,
185
+ approval: { ...approval },
186
+ };
187
+ }
188
+ approval.status = status;
189
+ approval.resolvedAt = new Date().toISOString();
190
+ approval.resolvedBy = resolvedBy;
191
+ if (reason)
192
+ approval.reason = reason;
193
+ return { success: true, approval: { ...approval } };
194
+ }
195
+ /**
196
+ * Expire stale pending approvals that have exceeded the TTL.
197
+ */
198
+ expireStale() {
199
+ const now = Date.now();
200
+ const resolvedRetentionMs = this.ttlMs * 3; // Keep resolved entries 3x TTL then prune
201
+ for (const [id, approval] of this.approvals.entries()) {
202
+ if (approval.status === 'pending') {
203
+ const requestedAt = new Date(approval.requestedAt).getTime();
204
+ if (now - requestedAt > this.ttlMs) {
205
+ approval.status = 'expired';
206
+ approval.resolvedAt = new Date().toISOString();
207
+ approval.resolvedBy = 'auto-expire';
208
+ approval.reason = 'Approval request expired';
209
+ }
210
+ }
211
+ else if (approval.resolvedAt) {
212
+ // Prune resolved entries that are older than retention window
213
+ const resolvedAt = new Date(approval.resolvedAt).getTime();
214
+ if (now - resolvedAt > resolvedRetentionMs) {
215
+ this.approvals.delete(id);
216
+ }
217
+ }
218
+ }
219
+ }
220
+ /**
221
+ * Get the oldest pending approval.
222
+ *
223
+ * @returns Oldest pending approval or undefined
224
+ */
225
+ getOldestPending() {
226
+ let oldest;
227
+ for (const approval of this.approvals.values()) {
228
+ if (approval.status !== 'pending')
229
+ continue;
230
+ if (!oldest || approval.requestedAt < oldest.requestedAt) {
231
+ oldest = approval;
232
+ }
233
+ }
234
+ return oldest;
235
+ }
236
+ }
237
+ //# sourceMappingURL=approval-queue.service.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"approval-queue.service.js","sourceRoot":"","sources":["../../../../../../../backend/src/services/agent/crewly-agent/approval-queue.service.ts"],"names":[],"mappings":"AAAA;;;;;;;;;GASG;AAIH,0EAA0E;AAC1E,MAAM,qBAAqB,GAAG,GAAG,CAAC;AAElC,qEAAqE;AACrE,MAAM,uBAAuB,GAAG,EAAE,GAAG,EAAE,GAAG,IAAI,CAAC;AA6C/C;;;;;;;;;;;;;;GAcG;AACH,MAAM,OAAO,oBAAoB;IACvB,MAAM,CAAC,QAAQ,GAAgC,IAAI,CAAC;IACpD,SAAS,GAAiC,IAAI,GAAG,EAAE,CAAC;IACpD,SAAS,GAAG,CAAC,CAAC;IACd,KAAK,CAAS;IAEtB;;;;;OAKG;IACH,MAAM,CAAC,WAAW;QAChB,IAAI,CAAC,oBAAoB,CAAC,QAAQ,EAAE,CAAC;YACnC,oBAAoB,CAAC,QAAQ,GAAG,IAAI,oBAAoB,EAAE,CAAC;QAC7D,CAAC;QACD,OAAO,oBAAoB,CAAC,QAAQ,CAAC;IACvC,CAAC;IAED;;OAEG;IACH,MAAM,CAAC,aAAa;QAClB,oBAAoB,CAAC,QAAQ,GAAG,IAAI,CAAC;IACvC,CAAC;IAED;;;;OAIG;IACH,YAAY,QAAgB,uBAAuB;QACjD,IAAI,CAAC,KAAK,GAAG,KAAK,CAAC;IACrB,CAAC;IAED;;;;;;;;OAQG;IACH,OAAO,CACL,WAAmB,EACnB,QAAgB,EAChB,WAA4B,EAC5B,IAA6B;QAE7B,IAAI,CAAC,WAAW,EAAE,CAAC;QAEnB,oDAAoD;QACpD,IAAI,IAAI,CAAC,eAAe,EAAE,IAAI,qBAAqB,EAAE,CAAC;YACpD,MAAM,MAAM,GAAG,IAAI,CAAC,gBAAgB,EAAE,CAAC;YACvC,IAAI,MAAM,EAAE,CAAC;gBACX,MAAM,CAAC,MAAM,GAAG,UAAU,CAAC;gBAC3B,MAAM,CAAC,UAAU,GAAG,IAAI,IAAI,EAAE,CAAC,WAAW,EAAE,CAAC;gBAC7C,MAAM,CAAC,UAAU,GAAG,eAAe,CAAC;gBACpC,MAAM,CAAC,MAAM,GAAG,sDAAsD,CAAC;YACzE,CAAC;QACH,CAAC;QAED,IAAI,CAAC,SAAS,EAAE,CAAC;QACjB,MAAM,EAAE,GAAG,YAAY,IAAI,CAAC,SAAS,IAAI,IAAI,CAAC,GAAG,EAAE,EAAE,CAAC;QAEtD,MAAM,QAAQ,GAAoB;YAChC,EAAE;YACF,WAAW;YACX,QAAQ;YACR,WAAW;YACX,IAAI;YACJ,MAAM,EAAE,SAAS;YACjB,WAAW,EAAE,IAAI,IAAI,EAAE,CAAC,WAAW,EAAE;SACtC,CAAC;QAEF,IAAI,CAAC,SAAS,CAAC,GAAG,CAAC,EAAE,EAAE,QAAQ,CAAC,CAAC;QACjC,OAAO,QAAQ,CAAC;IAClB,CAAC;IAED;;;;;;OAMG;IACH,OAAO,CAAC,EAAU,EAAE,aAAqB,KAAK;QAC5C,OAAO,IAAI,CAAC,OAAO,CAAC,EAAE,EAAE,UAAU,EAAE,UAAU,CAAC,CAAC;IAClD,CAAC;IAED;;;;;;;OAOG;IACH,MAAM,CAAC,EAAU,EAAE,aAAqB,KAAK,EAAE,MAAe;QAC5D,OAAO,IAAI,CAAC,OAAO,CAAC,EAAE,EAAE,UAAU,EAAE,UAAU,EAAE,MAAM,CAAC,CAAC;IAC1D,CAAC;IAED;;;;;OAKG;IACH,UAAU,CAAC,WAAoB;QAC7B,IAAI,CAAC,WAAW,EAAE,CAAC;QACnB,MAAM,OAAO,GAAsB,EAAE,CAAC;QACtC,KAAK,MAAM,QAAQ,IAAI,IAAI,CAAC,SAAS,CAAC,MAAM,EAAE,EAAE,CAAC;YAC/C,IAAI,QAAQ,CAAC,MAAM,KAAK,SAAS;gBAAE,SAAS;YAC5C,IAAI,WAAW,IAAI,QAAQ,CAAC,WAAW,KAAK,WAAW;gBAAE,SAAS;YAClE,OAAO,CAAC,IAAI,CAAC,EAAE,GAAG,QAAQ,EAAE,CAAC,CAAC;QAChC,CAAC;QACD,OAAO,OAAO,CAAC;IACjB,CAAC;IAED;;;;;OAKG;IACH,OAAO,CAAC,EAAU;QAChB,MAAM,QAAQ,GAAG,IAAI,CAAC,SAAS,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC;QACxC,IAAI,CAAC,QAAQ;YAAE,OAAO,SAAS,CAAC;QAChC,OAAO,EAAE,GAAG,QAAQ,EAAE,CAAC;IACzB,CAAC;IAED;;;;OAIG;IACH,eAAe;QACb,IAAI,KAAK,GAAG,CAAC,CAAC;QACd,KAAK,MAAM,QAAQ,IAAI,IAAI,CAAC,SAAS,CAAC,MAAM,EAAE,EAAE,CAAC;YAC/C,IAAI,QAAQ,CAAC,MAAM,KAAK,SAAS;gBAAE,KAAK,EAAE,CAAC;QAC7C,CAAC;QACD,OAAO,KAAK,CAAC;IACf,CAAC;IAED;;OAEG;IACH,KAAK;QACH,IAAI,CAAC,SAAS,CAAC,KAAK,EAAE,CAAC;QACvB,IAAI,CAAC,SAAS,GAAG,CAAC,CAAC;IACrB,CAAC;IAED;;;;;;;;OAQG;IACK,OAAO,CACb,EAAU,EACV,MAA+B,EAC/B,UAAkB,EAClB,MAAe;QAEf,MAAM,QAAQ,GAAG,IAAI,CAAC,SAAS,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC;QACxC,IAAI,CAAC,QAAQ,EAAE,CAAC;YACd,OAAO,EAAE,OAAO,EAAE,KAAK,EAAE,KAAK,EAAE,aAAa,EAAE,aAAa,EAAE,CAAC;QACjE,CAAC;QACD,IAAI,QAAQ,CAAC,MAAM,KAAK,SAAS,EAAE,CAAC;YAClC,OAAO;gBACL,OAAO,EAAE,KAAK;gBACd,KAAK,EAAE,aAAa,EAAE,gBAAgB,QAAQ,CAAC,MAAM,EAAE;gBACvD,QAAQ,EAAE,EAAE,GAAG,QAAQ,EAAE;aAC1B,CAAC;QACJ,CAAC;QAED,QAAQ,CAAC,MAAM,GAAG,MAAM,CAAC;QACzB,QAAQ,CAAC,UAAU,GAAG,IAAI,IAAI,EAAE,CAAC,WAAW,EAAE,CAAC;QAC/C,QAAQ,CAAC,UAAU,GAAG,UAAU,CAAC;QACjC,IAAI,MAAM;YAAE,QAAQ,CAAC,MAAM,GAAG,MAAM,CAAC;QAErC,OAAO,EAAE,OAAO,EAAE,IAAI,EAAE,QAAQ,EAAE,EAAE,GAAG,QAAQ,EAAE,EAAE,CAAC;IACtD,CAAC;IAED;;OAEG;IACK,WAAW;QACjB,MAAM,GAAG,GAAG,IAAI,CAAC,GAAG,EAAE,CAAC;QACvB,MAAM,mBAAmB,GAAG,IAAI,CAAC,KAAK,GAAG,CAAC,CAAC,CAAC,0CAA0C;QAEtF,KAAK,MAAM,CAAC,EAAE,EAAE,QAAQ,CAAC,IAAI,IAAI,CAAC,SAAS,CAAC,OAAO,EAAE,EAAE,CAAC;YACtD,IAAI,QAAQ,CAAC,MAAM,KAAK,SAAS,EAAE,CAAC;gBAClC,MAAM,WAAW,GAAG,IAAI,IAAI,CAAC,QAAQ,CAAC,WAAW,CAAC,CAAC,OAAO,EAAE,CAAC;gBAC7D,IAAI,GAAG,GAAG,WAAW,GAAG,IAAI,CAAC,KAAK,EAAE,CAAC;oBACnC,QAAQ,CAAC,MAAM,GAAG,SAAS,CAAC;oBAC5B,QAAQ,CAAC,UAAU,GAAG,IAAI,IAAI,EAAE,CAAC,WAAW,EAAE,CAAC;oBAC/C,QAAQ,CAAC,UAAU,GAAG,aAAa,CAAC;oBACpC,QAAQ,CAAC,MAAM,GAAG,0BAA0B,CAAC;gBAC/C,CAAC;YACH,CAAC;iBAAM,IAAI,QAAQ,CAAC,UAAU,EAAE,CAAC;gBAC/B,8DAA8D;gBAC9D,MAAM,UAAU,GAAG,IAAI,IAAI,CAAC,QAAQ,CAAC,UAAU,CAAC,CAAC,OAAO,EAAE,CAAC;gBAC3D,IAAI,GAAG,GAAG,UAAU,GAAG,mBAAmB,EAAE,CAAC;oBAC3C,IAAI,CAAC,SAAS,CAAC,MAAM,CAAC,EAAE,CAAC,CAAC;gBAC5B,CAAC;YACH,CAAC;QACH,CAAC;IACH,CAAC;IAED;;;;OAIG;IACK,gBAAgB;QACtB,IAAI,MAAmC,CAAC;QACxC,KAAK,MAAM,QAAQ,IAAI,IAAI,CAAC,SAAS,CAAC,MAAM,EAAE,EAAE,CAAC;YAC/C,IAAI,QAAQ,CAAC,MAAM,KAAK,SAAS;gBAAE,SAAS;YAC5C,IAAI,CAAC,MAAM,IAAI,QAAQ,CAAC,WAAW,GAAG,MAAM,CAAC,WAAW,EAAE,CAAC;gBACzD,MAAM,GAAG,QAAQ,CAAC;YACpB,CAAC;QACH,CAAC;QACD,OAAO,MAAM,CAAC;IAChB,CAAC"}
@@ -0,0 +1,74 @@
1
+ /**
2
+ * Audit Trail Service
3
+ *
4
+ * Provides file-based persistence for the security audit trail.
5
+ * Writes audit entries as append-only JSONL (one JSON object per line)
6
+ * for structured, queryable audit logging.
7
+ *
8
+ * @module services/agent/crewly-agent/audit-trail.service
9
+ */
10
+ import type { AuditEntry, AuditLogFilters } from './types.js';
11
+ /**
12
+ * File-based audit trail service.
13
+ *
14
+ * Persists audit entries as append-only JSONL files organized by session.
15
+ * Each session gets its own log file for easy per-agent auditing.
16
+ *
17
+ * @example
18
+ * ```typescript
19
+ * const trail = new AuditTrailService('/path/to/.crewly', 'agent-session-1');
20
+ * await trail.initialize();
21
+ * await trail.append(auditEntry);
22
+ * const entries = await trail.query({ limit: 50 });
23
+ * ```
24
+ */
25
+ export declare class AuditTrailService {
26
+ private crewlyHome;
27
+ private sessionName;
28
+ private logDir;
29
+ private logFile;
30
+ private initialized;
31
+ /**
32
+ * Create a new AuditTrailService.
33
+ *
34
+ * @param crewlyHome - Path to the .crewly directory
35
+ * @param sessionName - Agent session name for log file naming
36
+ */
37
+ constructor(crewlyHome: string, sessionName: string);
38
+ /**
39
+ * Initialize the audit trail by ensuring the log directory exists.
40
+ *
41
+ * @throws Error if directory creation fails
42
+ */
43
+ initialize(): Promise<void>;
44
+ /**
45
+ * Append an audit entry to the log file.
46
+ *
47
+ * @param entry - Audit entry to persist
48
+ * @throws Error if not initialized or write fails
49
+ */
50
+ append(entry: AuditEntry): Promise<void>;
51
+ /**
52
+ * Query persisted audit entries with optional filters.
53
+ *
54
+ * Reads the log file and returns matching entries in reverse
55
+ * chronological order (most recent first).
56
+ *
57
+ * @param filters - Query filters for limit, sensitivity, and toolName
58
+ * @returns Filtered audit entries
59
+ */
60
+ query(filters: AuditLogFilters): Promise<AuditEntry[]>;
61
+ /**
62
+ * Get the path to the audit log file.
63
+ *
64
+ * @returns Absolute path to the JSONL log file
65
+ */
66
+ getLogFilePath(): string;
67
+ /**
68
+ * Check if the service has been initialized.
69
+ *
70
+ * @returns True if initialize() has been called successfully
71
+ */
72
+ isInitialized(): boolean;
73
+ }
74
+ //# sourceMappingURL=audit-trail.service.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"audit-trail.service.d.ts","sourceRoot":"","sources":["../../../../../../../backend/src/services/agent/crewly-agent/audit-trail.service.ts"],"names":[],"mappings":"AAAA;;;;;;;;GAQG;AAIH,OAAO,KAAK,EAAE,UAAU,EAAE,eAAe,EAAE,MAAM,YAAY,CAAC;AAQ9D;;;;;;;;;;;;;GAaG;AACH,qBAAa,iBAAiB;IAC5B,OAAO,CAAC,UAAU,CAAS;IAC3B,OAAO,CAAC,WAAW,CAAS;IAC5B,OAAO,CAAC,MAAM,CAAS;IACvB,OAAO,CAAC,OAAO,CAAS;IACxB,OAAO,CAAC,WAAW,CAAS;IAE5B;;;;;OAKG;gBACS,UAAU,EAAE,MAAM,EAAE,WAAW,EAAE,MAAM;IAOnD;;;;OAIG;IACG,UAAU,IAAI,OAAO,CAAC,IAAI,CAAC;IAKjC;;;;;OAKG;IACG,MAAM,CAAC,KAAK,EAAE,UAAU,GAAG,OAAO,CAAC,IAAI,CAAC;IAQ9C;;;;;;;;OAQG;IACG,KAAK,CAAC,OAAO,EAAE,eAAe,GAAG,OAAO,CAAC,UAAU,EAAE,CAAC;IAmC5D;;;;OAIG;IACH,cAAc,IAAI,MAAM;IAIxB;;;;OAIG;IACH,aAAa,IAAI,OAAO;CAGzB"}
@@ -0,0 +1,140 @@
1
+ /**
2
+ * Audit Trail Service
3
+ *
4
+ * Provides file-based persistence for the security audit trail.
5
+ * Writes audit entries as append-only JSONL (one JSON object per line)
6
+ * for structured, queryable audit logging.
7
+ *
8
+ * @module services/agent/crewly-agent/audit-trail.service
9
+ */
10
+ import { promises as fsPromises } from 'fs';
11
+ import { join } from 'path';
12
+ /** Default directory name for audit logs under .crewly */
13
+ const AUDIT_DIR = 'audit-logs';
14
+ /** Maximum lines to read when querying the log file */
15
+ const MAX_QUERY_LINES = 10000;
16
+ /**
17
+ * File-based audit trail service.
18
+ *
19
+ * Persists audit entries as append-only JSONL files organized by session.
20
+ * Each session gets its own log file for easy per-agent auditing.
21
+ *
22
+ * @example
23
+ * ```typescript
24
+ * const trail = new AuditTrailService('/path/to/.crewly', 'agent-session-1');
25
+ * await trail.initialize();
26
+ * await trail.append(auditEntry);
27
+ * const entries = await trail.query({ limit: 50 });
28
+ * ```
29
+ */
30
+ export class AuditTrailService {
31
+ crewlyHome;
32
+ sessionName;
33
+ logDir;
34
+ logFile;
35
+ initialized = false;
36
+ /**
37
+ * Create a new AuditTrailService.
38
+ *
39
+ * @param crewlyHome - Path to the .crewly directory
40
+ * @param sessionName - Agent session name for log file naming
41
+ */
42
+ constructor(crewlyHome, sessionName) {
43
+ this.crewlyHome = crewlyHome;
44
+ this.sessionName = sessionName;
45
+ this.logDir = join(crewlyHome, AUDIT_DIR);
46
+ this.logFile = join(this.logDir, `${sanitizeFilename(sessionName)}.jsonl`);
47
+ }
48
+ /**
49
+ * Initialize the audit trail by ensuring the log directory exists.
50
+ *
51
+ * @throws Error if directory creation fails
52
+ */
53
+ async initialize() {
54
+ await fsPromises.mkdir(this.logDir, { recursive: true });
55
+ this.initialized = true;
56
+ }
57
+ /**
58
+ * Append an audit entry to the log file.
59
+ *
60
+ * @param entry - Audit entry to persist
61
+ * @throws Error if not initialized or write fails
62
+ */
63
+ async append(entry) {
64
+ if (!this.initialized) {
65
+ throw new Error('AuditTrailService not initialized. Call initialize() first.');
66
+ }
67
+ const line = JSON.stringify(entry) + '\n';
68
+ await fsPromises.appendFile(this.logFile, line, 'utf8');
69
+ }
70
+ /**
71
+ * Query persisted audit entries with optional filters.
72
+ *
73
+ * Reads the log file and returns matching entries in reverse
74
+ * chronological order (most recent first).
75
+ *
76
+ * @param filters - Query filters for limit, sensitivity, and toolName
77
+ * @returns Filtered audit entries
78
+ */
79
+ async query(filters) {
80
+ if (!this.initialized) {
81
+ throw new Error('AuditTrailService not initialized. Call initialize() first.');
82
+ }
83
+ let content;
84
+ try {
85
+ content = await fsPromises.readFile(this.logFile, 'utf8');
86
+ }
87
+ catch (err) {
88
+ // File doesn't exist yet — no entries
89
+ if (err.code === 'ENOENT') {
90
+ return [];
91
+ }
92
+ throw err;
93
+ }
94
+ const lines = content.trim().split('\n').filter(Boolean);
95
+ // Parse from end (most recent first), apply filters
96
+ let entries = [];
97
+ const startIdx = Math.max(0, lines.length - MAX_QUERY_LINES);
98
+ for (let i = lines.length - 1; i >= startIdx && entries.length < filters.limit; i--) {
99
+ try {
100
+ const entry = JSON.parse(lines[i]);
101
+ if (filters.sensitivity && entry.sensitivity !== filters.sensitivity)
102
+ continue;
103
+ if (filters.toolName && entry.toolName !== filters.toolName)
104
+ continue;
105
+ entries.push(entry);
106
+ }
107
+ catch {
108
+ // Skip malformed lines
109
+ }
110
+ }
111
+ return entries;
112
+ }
113
+ /**
114
+ * Get the path to the audit log file.
115
+ *
116
+ * @returns Absolute path to the JSONL log file
117
+ */
118
+ getLogFilePath() {
119
+ return this.logFile;
120
+ }
121
+ /**
122
+ * Check if the service has been initialized.
123
+ *
124
+ * @returns True if initialize() has been called successfully
125
+ */
126
+ isInitialized() {
127
+ return this.initialized;
128
+ }
129
+ }
130
+ /**
131
+ * Sanitize a session name for use as a filename.
132
+ * Replaces non-alphanumeric characters (except hyphens and underscores) with hyphens.
133
+ *
134
+ * @param name - Raw session name
135
+ * @returns Sanitized filename-safe string
136
+ */
137
+ function sanitizeFilename(name) {
138
+ return name.replace(/[^a-zA-Z0-9_-]/g, '-');
139
+ }
140
+ //# sourceMappingURL=audit-trail.service.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"audit-trail.service.js","sourceRoot":"","sources":["../../../../../../../backend/src/services/agent/crewly-agent/audit-trail.service.ts"],"names":[],"mappings":"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"}
@@ -1 +1 @@
1
- {"version":3,"file":"auditor-tools.d.ts","sourceRoot":"","sources":["../../../../../../../backend/src/services/agent/crewly-agent/auditor-tools.ts"],"names":[],"mappings":"AAAA;;;;;;;;GAQG;AAKH,OAAO,KAAK,EAAE,eAAe,EAAE,MAAM,iBAAiB,CAAC;AACvD,OAAO,KAAK,EAAE,cAAc,EAAE,MAAM,YAAY,CAAC;AAKjD;;;;;;;;;GASG;AACH,wBAAgB,kBAAkB,CAChC,MAAM,EAAE,eAAe,EACvB,WAAW,EAAE,MAAM,GAClB,MAAM,CAAC,MAAM,EAAE,cAAc,CAAC,CA4MhC;AAED;;;;GAIG;AACH,wBAAgB,mBAAmB,IAAI,MAAM,EAAE,CAM9C"}
1
+ {"version":3,"file":"auditor-tools.d.ts","sourceRoot":"","sources":["../../../../../../../backend/src/services/agent/crewly-agent/auditor-tools.ts"],"names":[],"mappings":"AAAA;;;;;;;;GAQG;AAKH,OAAO,KAAK,EAAE,eAAe,EAAE,MAAM,iBAAiB,CAAC;AACvD,OAAO,KAAK,EAAE,cAAc,EAAE,MAAM,YAAY,CAAC;AAMjD;;;;;;;;;GASG;AACH,wBAAgB,kBAAkB,CAChC,MAAM,EAAE,eAAe,EACvB,WAAW,EAAE,MAAM,GAClB,MAAM,CAAC,MAAM,EAAE,cAAc,CAAC,CAsQhC;AAED;;;;GAIG;AACH,wBAAgB,mBAAmB,IAAI,MAAM,EAAE,CAM9C"}