crewly 1.15.0 → 1.17.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 (311) hide show
  1. package/README.md +39 -5
  2. package/config/roles/developer/prompt.md +1 -1
  3. package/config/roles/orchestrator/prompt.md +20 -5
  4. package/config/runtime_scripts/runtime-config.json +7 -0
  5. package/config/skills/agent/core/calendar-create/SKILL.md +62 -0
  6. package/config/skills/agent/core/calendar-create/execute.sh +91 -0
  7. package/config/skills/agent/core/calendar-create/execute.test.sh +80 -0
  8. package/config/skills/agent/core/calendar-list/SKILL.md +58 -0
  9. package/config/skills/agent/core/calendar-list/execute.sh +88 -0
  10. package/config/skills/agent/core/calendar-list/execute.test.sh +71 -0
  11. package/config/skills/agent/core/count-json/SKILL.md +61 -0
  12. package/config/skills/agent/core/count-json/execute.sh +52 -0
  13. package/config/skills/agent/core/count-json/execute.test.sh +35 -0
  14. package/config/skills/agent/core/gmail-read/SKILL.md +61 -0
  15. package/config/skills/agent/core/gmail-read/execute.sh +62 -0
  16. package/config/skills/agent/core/gmail-read/execute.test.sh +68 -0
  17. package/config/skills/agent/core/gmail-search/SKILL.md +64 -0
  18. package/config/skills/agent/core/gmail-search/execute.sh +70 -0
  19. package/config/skills/agent/core/gmail-search/execute.test.sh +67 -0
  20. package/config/skills/agent/core/gmail-send/SKILL.md +69 -0
  21. package/config/skills/agent/core/gmail-send/execute.sh +114 -0
  22. package/config/skills/agent/core/gmail-send/execute.test.sh +83 -0
  23. package/config/skills/agent/core/record-prediction/SKILL.md +61 -0
  24. package/config/skills/agent/core/record-prediction/execute.sh +90 -0
  25. package/config/skills/agent/core/record-prediction/execute.test.sh +67 -0
  26. package/config/skills/agent/core/resolve-prediction/SKILL.md +61 -0
  27. package/config/skills/agent/core/resolve-prediction/execute.sh +87 -0
  28. package/config/skills/agent/core/resolve-prediction/execute.test.sh +74 -0
  29. package/config/skills/agent/core/set-focus/SKILL.md +64 -0
  30. package/config/skills/agent/core/set-focus/execute.sh +73 -0
  31. package/config/skills/agent/core/set-focus/execute.test.sh +67 -0
  32. package/config/skills/agent/core/suppress-noise/SKILL.md +59 -0
  33. package/config/skills/agent/core/suppress-noise/execute.sh +68 -0
  34. package/config/skills/agent/core/suppress-noise/execute.test.sh +58 -0
  35. package/config/skills/orchestrator/list-missions/SKILL.md +47 -0
  36. package/config/skills/orchestrator/list-missions/execute.sh +34 -0
  37. package/config/skills/orchestrator/list-missions/execute.test.sh +33 -0
  38. package/config/slack-master-app-manifest.json +64 -0
  39. package/dist/backend/backend/src/constants.d.ts +186 -0
  40. package/dist/backend/backend/src/constants.d.ts.map +1 -1
  41. package/dist/backend/backend/src/constants.js +196 -0
  42. package/dist/backend/backend/src/constants.js.map +1 -1
  43. package/dist/backend/backend/src/controllers/agent-self-improvement/agent-self-improvement.controller.d.ts +76 -0
  44. package/dist/backend/backend/src/controllers/agent-self-improvement/agent-self-improvement.controller.d.ts.map +1 -0
  45. package/dist/backend/backend/src/controllers/agent-self-improvement/agent-self-improvement.controller.js +262 -0
  46. package/dist/backend/backend/src/controllers/agent-self-improvement/agent-self-improvement.controller.js.map +1 -0
  47. package/dist/backend/backend/src/controllers/cloud/cloud.controller.d.ts.map +1 -1
  48. package/dist/backend/backend/src/controllers/cloud/cloud.controller.js +3 -1
  49. package/dist/backend/backend/src/controllers/cloud/cloud.controller.js.map +1 -1
  50. package/dist/backend/backend/src/controllers/google/google.controller.d.ts +100 -0
  51. package/dist/backend/backend/src/controllers/google/google.controller.d.ts.map +1 -0
  52. package/dist/backend/backend/src/controllers/google/google.controller.js +293 -0
  53. package/dist/backend/backend/src/controllers/google/google.controller.js.map +1 -0
  54. package/dist/backend/backend/src/controllers/google/google.routes.d.ts +26 -0
  55. package/dist/backend/backend/src/controllers/google/google.routes.d.ts.map +1 -0
  56. package/dist/backend/backend/src/controllers/google/google.routes.js +38 -0
  57. package/dist/backend/backend/src/controllers/google/google.routes.js.map +1 -0
  58. package/dist/backend/backend/src/controllers/oauth/oauth.routes.d.ts.map +1 -1
  59. package/dist/backend/backend/src/controllers/oauth/oauth.routes.js +31 -0
  60. package/dist/backend/backend/src/controllers/oauth/oauth.routes.js.map +1 -1
  61. package/dist/backend/backend/src/controllers/request-types.d.ts +6 -2
  62. package/dist/backend/backend/src/controllers/request-types.d.ts.map +1 -1
  63. package/dist/backend/backend/src/controllers/slack/slack.controller.d.ts.map +1 -1
  64. package/dist/backend/backend/src/controllers/slack/slack.controller.js +209 -2
  65. package/dist/backend/backend/src/controllers/slack/slack.controller.js.map +1 -1
  66. package/dist/backend/backend/src/controllers/team/team.controller.d.ts.map +1 -1
  67. package/dist/backend/backend/src/controllers/team/team.controller.js +4 -0
  68. package/dist/backend/backend/src/controllers/team/team.controller.js.map +1 -1
  69. package/dist/backend/backend/src/index.d.ts +1 -0
  70. package/dist/backend/backend/src/index.d.ts.map +1 -1
  71. package/dist/backend/backend/src/index.js +92 -8
  72. package/dist/backend/backend/src/index.js.map +1 -1
  73. package/dist/backend/backend/src/routes/api.routes.d.ts.map +1 -1
  74. package/dist/backend/backend/src/routes/api.routes.js +10 -0
  75. package/dist/backend/backend/src/routes/api.routes.js.map +1 -1
  76. package/dist/backend/backend/src/services/agent/agent-registration.service.d.ts +10 -0
  77. package/dist/backend/backend/src/services/agent/agent-registration.service.d.ts.map +1 -1
  78. package/dist/backend/backend/src/services/agent/agent-registration.service.js +32 -4
  79. package/dist/backend/backend/src/services/agent/agent-registration.service.js.map +1 -1
  80. package/dist/backend/backend/src/services/agent/opencode-runtime.service.d.ts +114 -0
  81. package/dist/backend/backend/src/services/agent/opencode-runtime.service.d.ts.map +1 -0
  82. package/dist/backend/backend/src/services/agent/opencode-runtime.service.js +185 -0
  83. package/dist/backend/backend/src/services/agent/opencode-runtime.service.js.map +1 -0
  84. package/dist/backend/backend/src/services/agent/runtime-agent.service.abstract.d.ts.map +1 -1
  85. package/dist/backend/backend/src/services/agent/runtime-agent.service.abstract.js +22 -1
  86. package/dist/backend/backend/src/services/agent/runtime-agent.service.abstract.js.map +1 -1
  87. package/dist/backend/backend/src/services/agent/runtime-exit-monitor.service.d.ts +1 -1
  88. package/dist/backend/backend/src/services/agent/runtime-exit-monitor.service.d.ts.map +1 -1
  89. package/dist/backend/backend/src/services/agent/runtime-exit-monitor.service.js +15 -3
  90. package/dist/backend/backend/src/services/agent/runtime-exit-monitor.service.js.map +1 -1
  91. package/dist/backend/backend/src/services/agent/runtime-service.factory.d.ts.map +1 -1
  92. package/dist/backend/backend/src/services/agent/runtime-service.factory.js +9 -0
  93. package/dist/backend/backend/src/services/agent/runtime-service.factory.js.map +1 -1
  94. package/dist/backend/backend/src/services/ai/prompt-builder.service.d.ts +23 -0
  95. package/dist/backend/backend/src/services/ai/prompt-builder.service.d.ts.map +1 -1
  96. package/dist/backend/backend/src/services/ai/prompt-builder.service.js +45 -0
  97. package/dist/backend/backend/src/services/ai/prompt-builder.service.js.map +1 -1
  98. package/dist/backend/backend/src/services/ai/prompt-modules/memory-reference.module.d.ts +43 -3
  99. package/dist/backend/backend/src/services/ai/prompt-modules/memory-reference.module.d.ts.map +1 -1
  100. package/dist/backend/backend/src/services/ai/prompt-modules/memory-reference.module.js +85 -4
  101. package/dist/backend/backend/src/services/ai/prompt-modules/memory-reference.module.js.map +1 -1
  102. package/dist/backend/backend/src/services/ai/prompt-modules/prompt-module.interface.d.ts +2 -0
  103. package/dist/backend/backend/src/services/ai/prompt-modules/prompt-module.interface.d.ts.map +1 -1
  104. package/dist/backend/backend/src/services/ai/prompt-modules/prompt-module.interface.js.map +1 -1
  105. package/dist/backend/backend/src/services/ai/prompt-modules/skills-reference.module.d.ts.map +1 -1
  106. package/dist/backend/backend/src/services/ai/prompt-modules/skills-reference.module.js +6 -0
  107. package/dist/backend/backend/src/services/ai/prompt-modules/skills-reference.module.js.map +1 -1
  108. package/dist/backend/backend/src/services/ai/self-improvement/agent-memory-provider.d.ts +45 -0
  109. package/dist/backend/backend/src/services/ai/self-improvement/agent-memory-provider.d.ts.map +1 -0
  110. package/dist/backend/backend/src/services/ai/self-improvement/agent-memory-provider.js +59 -0
  111. package/dist/backend/backend/src/services/ai/self-improvement/agent-memory-provider.js.map +1 -0
  112. package/dist/backend/backend/src/services/ai/self-improvement/consolidation-scheduler.service.d.ts +137 -0
  113. package/dist/backend/backend/src/services/ai/self-improvement/consolidation-scheduler.service.d.ts.map +1 -0
  114. package/dist/backend/backend/src/services/ai/self-improvement/consolidation-scheduler.service.js +216 -0
  115. package/dist/backend/backend/src/services/ai/self-improvement/consolidation-scheduler.service.js.map +1 -0
  116. package/dist/backend/backend/src/services/ai/self-improvement/prediction-calibration.service.d.ts +4 -1
  117. package/dist/backend/backend/src/services/ai/self-improvement/prediction-calibration.service.d.ts.map +1 -1
  118. package/dist/backend/backend/src/services/ai/self-improvement/prediction-calibration.service.js +3 -1
  119. package/dist/backend/backend/src/services/ai/self-improvement/prediction-calibration.service.js.map +1 -1
  120. package/dist/backend/backend/src/services/cloud/cloud-initializer.d.ts +8 -0
  121. package/dist/backend/backend/src/services/cloud/cloud-initializer.d.ts.map +1 -1
  122. package/dist/backend/backend/src/services/cloud/cloud-initializer.js +25 -0
  123. package/dist/backend/backend/src/services/cloud/cloud-initializer.js.map +1 -1
  124. package/dist/backend/backend/src/services/cloud/cloud-sync.types.d.ts +1 -1
  125. package/dist/backend/backend/src/services/cloud/cloud-sync.types.d.ts.map +1 -1
  126. package/dist/backend/backend/src/services/cloud/cloud-sync.types.js +1 -0
  127. package/dist/backend/backend/src/services/cloud/cloud-sync.types.js.map +1 -1
  128. package/dist/backend/backend/src/services/google/calendar.service.d.ts +98 -0
  129. package/dist/backend/backend/src/services/google/calendar.service.d.ts.map +1 -0
  130. package/dist/backend/backend/src/services/google/calendar.service.js +125 -0
  131. package/dist/backend/backend/src/services/google/calendar.service.js.map +1 -0
  132. package/dist/backend/backend/src/services/google/gmail.service.d.ts +165 -0
  133. package/dist/backend/backend/src/services/google/gmail.service.d.ts.map +1 -0
  134. package/dist/backend/backend/src/services/google/gmail.service.js +296 -0
  135. package/dist/backend/backend/src/services/google/gmail.service.js.map +1 -0
  136. package/dist/backend/backend/src/services/google/google-api.client.d.ts +44 -0
  137. package/dist/backend/backend/src/services/google/google-api.client.d.ts.map +1 -0
  138. package/dist/backend/backend/src/services/google/google-api.client.js +104 -0
  139. package/dist/backend/backend/src/services/google/google-api.client.js.map +1 -0
  140. package/dist/backend/backend/src/services/google/google-workspace-token.service.d.ts +159 -0
  141. package/dist/backend/backend/src/services/google/google-workspace-token.service.d.ts.map +1 -0
  142. package/dist/backend/backend/src/services/google/google-workspace-token.service.js +274 -0
  143. package/dist/backend/backend/src/services/google/google-workspace-token.service.js.map +1 -0
  144. package/dist/backend/backend/src/services/mcp-tool-definitions.d.ts +1 -1
  145. package/dist/backend/backend/src/services/mcp-tool-definitions.js +1 -1
  146. package/dist/backend/backend/src/services/mcp-tool-definitions.js.map +1 -1
  147. package/dist/backend/backend/src/services/runtime-adapter.d.ts +10 -1
  148. package/dist/backend/backend/src/services/runtime-adapter.d.ts.map +1 -1
  149. package/dist/backend/backend/src/services/runtime-adapter.js +12 -1
  150. package/dist/backend/backend/src/services/runtime-adapter.js.map +1 -1
  151. package/dist/backend/backend/src/services/settings/settings.service.d.ts.map +1 -1
  152. package/dist/backend/backend/src/services/settings/settings.service.js +1 -0
  153. package/dist/backend/backend/src/services/settings/settings.service.js.map +1 -1
  154. package/dist/backend/backend/src/services/slack/slack-agent-identity.service.d.ts +12 -1
  155. package/dist/backend/backend/src/services/slack/slack-agent-identity.service.d.ts.map +1 -1
  156. package/dist/backend/backend/src/services/slack/slack-agent-identity.service.js +30 -0
  157. package/dist/backend/backend/src/services/slack/slack-agent-identity.service.js.map +1 -1
  158. package/dist/backend/backend/src/services/slack/slack-cloud-config.service.d.ts +186 -0
  159. package/dist/backend/backend/src/services/slack/slack-cloud-config.service.d.ts.map +1 -0
  160. package/dist/backend/backend/src/services/slack/slack-cloud-config.service.js +409 -0
  161. package/dist/backend/backend/src/services/slack/slack-cloud-config.service.js.map +1 -0
  162. package/dist/backend/backend/src/services/slack/slack-initializer.d.ts +95 -1
  163. package/dist/backend/backend/src/services/slack/slack-initializer.d.ts.map +1 -1
  164. package/dist/backend/backend/src/services/slack/slack-initializer.js +284 -4
  165. package/dist/backend/backend/src/services/slack/slack-initializer.js.map +1 -1
  166. package/dist/backend/backend/src/services/slack/slack-instance-registry.service.d.ts +178 -0
  167. package/dist/backend/backend/src/services/slack/slack-instance-registry.service.d.ts.map +1 -0
  168. package/dist/backend/backend/src/services/slack/slack-instance-registry.service.js +392 -0
  169. package/dist/backend/backend/src/services/slack/slack-instance-registry.service.js.map +1 -0
  170. package/dist/backend/backend/src/services/slack/slack.service.d.ts +76 -1
  171. package/dist/backend/backend/src/services/slack/slack.service.d.ts.map +1 -1
  172. package/dist/backend/backend/src/services/slack/slack.service.js +234 -47
  173. package/dist/backend/backend/src/services/slack/slack.service.js.map +1 -1
  174. package/dist/backend/backend/src/services/v3/fallback-trigger-cleanup.subscriber.d.ts +78 -0
  175. package/dist/backend/backend/src/services/v3/fallback-trigger-cleanup.subscriber.d.ts.map +1 -0
  176. package/dist/backend/backend/src/services/v3/fallback-trigger-cleanup.subscriber.js +129 -0
  177. package/dist/backend/backend/src/services/v3/fallback-trigger-cleanup.subscriber.js.map +1 -0
  178. package/dist/backend/backend/src/services/v3/kr-skill-measurer.service.d.ts +117 -0
  179. package/dist/backend/backend/src/services/v3/kr-skill-measurer.service.d.ts.map +1 -0
  180. package/dist/backend/backend/src/services/v3/kr-skill-measurer.service.js +214 -0
  181. package/dist/backend/backend/src/services/v3/kr-skill-measurer.service.js.map +1 -0
  182. package/dist/backend/backend/src/services/v3/mission-reminder.service.d.ts +6 -0
  183. package/dist/backend/backend/src/services/v3/mission-reminder.service.d.ts.map +1 -1
  184. package/dist/backend/backend/src/services/v3/mission-reminder.service.js +33 -0
  185. package/dist/backend/backend/src/services/v3/mission-reminder.service.js.map +1 -1
  186. package/dist/backend/backend/src/services/v3/okr-owner-guidance.service.d.ts +116 -0
  187. package/dist/backend/backend/src/services/v3/okr-owner-guidance.service.d.ts.map +1 -0
  188. package/dist/backend/backend/src/services/v3/okr-owner-guidance.service.js +254 -0
  189. package/dist/backend/backend/src/services/v3/okr-owner-guidance.service.js.map +1 -0
  190. package/dist/backend/backend/src/types/index.d.ts +11 -1
  191. package/dist/backend/backend/src/types/index.d.ts.map +1 -1
  192. package/dist/backend/backend/src/types/index.js.map +1 -1
  193. package/dist/backend/backend/src/types/settings.types.d.ts +1 -1
  194. package/dist/backend/backend/src/types/settings.types.d.ts.map +1 -1
  195. package/dist/backend/backend/src/types/settings.types.js +7 -0
  196. package/dist/backend/backend/src/types/settings.types.js.map +1 -1
  197. package/dist/backend/backend/src/types/slack.types.d.ts +141 -2
  198. package/dist/backend/backend/src/types/slack.types.d.ts.map +1 -1
  199. package/dist/backend/backend/src/types/slack.types.js.map +1 -1
  200. package/dist/backend/backend/src/types/team-template.types.d.ts +2 -2
  201. package/dist/backend/backend/src/types/team-template.types.d.ts.map +1 -1
  202. package/dist/backend/backend/src/types/team-template.types.js +1 -1
  203. package/dist/backend/backend/src/types/team-template.types.js.map +1 -1
  204. package/dist/backend/backend/src/types/v2/mission.types.d.ts +2 -0
  205. package/dist/backend/backend/src/types/v2/mission.types.d.ts.map +1 -1
  206. package/dist/backend/backend/src/types/v2/mission.types.js.map +1 -1
  207. package/dist/backend/backend/src/utils/terminal-string-ops.d.ts +2 -0
  208. package/dist/backend/backend/src/utils/terminal-string-ops.d.ts.map +1 -1
  209. package/dist/backend/backend/src/utils/terminal-string-ops.js +14 -0
  210. package/dist/backend/backend/src/utils/terminal-string-ops.js.map +1 -1
  211. package/dist/backend/build-info.json +2 -2
  212. package/dist/cli/backend/src/constants.d.ts +186 -0
  213. package/dist/cli/backend/src/constants.d.ts.map +1 -1
  214. package/dist/cli/backend/src/constants.js +196 -0
  215. package/dist/cli/backend/src/constants.js.map +1 -1
  216. package/dist/cli/backend/src/services/agent/agent-registration.service.d.ts +10 -0
  217. package/dist/cli/backend/src/services/agent/agent-registration.service.d.ts.map +1 -1
  218. package/dist/cli/backend/src/services/agent/agent-registration.service.js +32 -4
  219. package/dist/cli/backend/src/services/agent/agent-registration.service.js.map +1 -1
  220. package/dist/cli/backend/src/services/agent/opencode-runtime.service.d.ts +114 -0
  221. package/dist/cli/backend/src/services/agent/opencode-runtime.service.d.ts.map +1 -0
  222. package/dist/cli/backend/src/services/agent/opencode-runtime.service.js +185 -0
  223. package/dist/cli/backend/src/services/agent/opencode-runtime.service.js.map +1 -0
  224. package/dist/cli/backend/src/services/agent/runtime-agent.service.abstract.d.ts.map +1 -1
  225. package/dist/cli/backend/src/services/agent/runtime-agent.service.abstract.js +22 -1
  226. package/dist/cli/backend/src/services/agent/runtime-agent.service.abstract.js.map +1 -1
  227. package/dist/cli/backend/src/services/agent/runtime-exit-monitor.service.d.ts +1 -1
  228. package/dist/cli/backend/src/services/agent/runtime-exit-monitor.service.d.ts.map +1 -1
  229. package/dist/cli/backend/src/services/agent/runtime-exit-monitor.service.js +15 -3
  230. package/dist/cli/backend/src/services/agent/runtime-exit-monitor.service.js.map +1 -1
  231. package/dist/cli/backend/src/services/agent/runtime-service.factory.d.ts.map +1 -1
  232. package/dist/cli/backend/src/services/agent/runtime-service.factory.js +9 -0
  233. package/dist/cli/backend/src/services/agent/runtime-service.factory.js.map +1 -1
  234. package/dist/cli/backend/src/services/ai/prompt-builder.service.d.ts +23 -0
  235. package/dist/cli/backend/src/services/ai/prompt-builder.service.d.ts.map +1 -1
  236. package/dist/cli/backend/src/services/ai/prompt-builder.service.js +45 -0
  237. package/dist/cli/backend/src/services/ai/prompt-builder.service.js.map +1 -1
  238. package/dist/cli/backend/src/services/ai/prompt-modules/memory-reference.module.d.ts +43 -3
  239. package/dist/cli/backend/src/services/ai/prompt-modules/memory-reference.module.d.ts.map +1 -1
  240. package/dist/cli/backend/src/services/ai/prompt-modules/memory-reference.module.js +85 -4
  241. package/dist/cli/backend/src/services/ai/prompt-modules/memory-reference.module.js.map +1 -1
  242. package/dist/cli/backend/src/services/ai/prompt-modules/prompt-module.interface.d.ts +2 -0
  243. package/dist/cli/backend/src/services/ai/prompt-modules/prompt-module.interface.d.ts.map +1 -1
  244. package/dist/cli/backend/src/services/ai/prompt-modules/prompt-module.interface.js.map +1 -1
  245. package/dist/cli/backend/src/services/ai/prompt-modules/skills-reference.module.d.ts.map +1 -1
  246. package/dist/cli/backend/src/services/ai/prompt-modules/skills-reference.module.js +6 -0
  247. package/dist/cli/backend/src/services/ai/prompt-modules/skills-reference.module.js.map +1 -1
  248. package/dist/cli/backend/src/services/ai/self-improvement/agent-memory-provider.d.ts +45 -0
  249. package/dist/cli/backend/src/services/ai/self-improvement/agent-memory-provider.d.ts.map +1 -0
  250. package/dist/cli/backend/src/services/ai/self-improvement/agent-memory-provider.js +59 -0
  251. package/dist/cli/backend/src/services/ai/self-improvement/agent-memory-provider.js.map +1 -0
  252. package/dist/cli/backend/src/services/ai/self-improvement/attention.service.d.ts +74 -0
  253. package/dist/cli/backend/src/services/ai/self-improvement/attention.service.d.ts.map +1 -0
  254. package/dist/cli/backend/src/services/ai/self-improvement/attention.service.js +132 -0
  255. package/dist/cli/backend/src/services/ai/self-improvement/attention.service.js.map +1 -0
  256. package/dist/cli/backend/src/services/ai/self-improvement/memory-consolidation.service.d.ts +107 -0
  257. package/dist/cli/backend/src/services/ai/self-improvement/memory-consolidation.service.d.ts.map +1 -0
  258. package/dist/cli/backend/src/services/ai/self-improvement/memory-consolidation.service.js +183 -0
  259. package/dist/cli/backend/src/services/ai/self-improvement/memory-consolidation.service.js.map +1 -0
  260. package/dist/cli/backend/src/services/ai/self-improvement/prediction-calibration.service.d.ts +100 -0
  261. package/dist/cli/backend/src/services/ai/self-improvement/prediction-calibration.service.d.ts.map +1 -0
  262. package/dist/cli/backend/src/services/ai/self-improvement/prediction-calibration.service.js +130 -0
  263. package/dist/cli/backend/src/services/ai/self-improvement/prediction-calibration.service.js.map +1 -0
  264. package/dist/cli/backend/src/services/cloud/cloud-sync.types.d.ts +1 -1
  265. package/dist/cli/backend/src/services/cloud/cloud-sync.types.d.ts.map +1 -1
  266. package/dist/cli/backend/src/services/cloud/cloud-sync.types.js +1 -0
  267. package/dist/cli/backend/src/services/cloud/cloud-sync.types.js.map +1 -1
  268. package/dist/cli/backend/src/services/mcp-tool-definitions.d.ts +1 -1
  269. package/dist/cli/backend/src/services/mcp-tool-definitions.js +1 -1
  270. package/dist/cli/backend/src/services/mcp-tool-definitions.js.map +1 -1
  271. package/dist/cli/backend/src/services/settings/settings.service.d.ts.map +1 -1
  272. package/dist/cli/backend/src/services/settings/settings.service.js +1 -0
  273. package/dist/cli/backend/src/services/settings/settings.service.js.map +1 -1
  274. package/dist/cli/backend/src/services/slack/slack-agent-identity.service.d.ts +12 -1
  275. package/dist/cli/backend/src/services/slack/slack-agent-identity.service.d.ts.map +1 -1
  276. package/dist/cli/backend/src/services/slack/slack-agent-identity.service.js +30 -0
  277. package/dist/cli/backend/src/services/slack/slack-agent-identity.service.js.map +1 -1
  278. package/dist/cli/backend/src/services/slack/slack.service.d.ts +76 -1
  279. package/dist/cli/backend/src/services/slack/slack.service.d.ts.map +1 -1
  280. package/dist/cli/backend/src/services/slack/slack.service.js +234 -47
  281. package/dist/cli/backend/src/services/slack/slack.service.js.map +1 -1
  282. package/dist/cli/backend/src/types/index.d.ts +11 -1
  283. package/dist/cli/backend/src/types/index.d.ts.map +1 -1
  284. package/dist/cli/backend/src/types/index.js.map +1 -1
  285. package/dist/cli/backend/src/types/settings.types.d.ts +1 -1
  286. package/dist/cli/backend/src/types/settings.types.d.ts.map +1 -1
  287. package/dist/cli/backend/src/types/settings.types.js +7 -0
  288. package/dist/cli/backend/src/types/settings.types.js.map +1 -1
  289. package/dist/cli/backend/src/types/slack.types.d.ts +141 -2
  290. package/dist/cli/backend/src/types/slack.types.d.ts.map +1 -1
  291. package/dist/cli/backend/src/types/slack.types.js.map +1 -1
  292. package/dist/cli/backend/src/types/team-template.types.d.ts +2 -2
  293. package/dist/cli/backend/src/types/team-template.types.d.ts.map +1 -1
  294. package/dist/cli/backend/src/types/team-template.types.js +1 -1
  295. package/dist/cli/backend/src/types/team-template.types.js.map +1 -1
  296. package/dist/cli/backend/src/types/v2/mission.types.d.ts +2 -0
  297. package/dist/cli/backend/src/types/v2/mission.types.d.ts.map +1 -1
  298. package/dist/cli/backend/src/types/v2/mission.types.js.map +1 -1
  299. package/dist/cli/backend/src/utils/terminal-string-ops.d.ts +2 -0
  300. package/dist/cli/backend/src/utils/terminal-string-ops.d.ts.map +1 -1
  301. package/dist/cli/backend/src/utils/terminal-string-ops.js +14 -0
  302. package/dist/cli/backend/src/utils/terminal-string-ops.js.map +1 -1
  303. package/dist/cli/cli/src/commands/onboard.d.ts +2 -2
  304. package/dist/cli/cli/src/commands/onboard.d.ts.map +1 -1
  305. package/dist/cli/cli/src/commands/onboard.js +15 -7
  306. package/dist/cli/cli/src/commands/onboard.js.map +1 -1
  307. package/frontend/dist/assets/{index-203224f9.js → index-c87332bf.js} +278 -278
  308. package/frontend/dist/assets/index-f6b4230e.css +42 -0
  309. package/frontend/dist/index.html +2 -2
  310. package/package.json +1 -1
  311. package/frontend/dist/assets/index-dcaf6c88.css +0 -42
@@ -0,0 +1,100 @@
1
+ /**
2
+ * Google Workspace Controller
3
+ *
4
+ * HTTP surface for Gmail + Calendar on the owner's account, mounted at
5
+ * `/api/google`. Backs the `gmail-*` / `calendar-*` agent skills and the
6
+ * Settings → Integrations "Google Workspace" card.
7
+ *
8
+ * Every failure answers `{ success: false, error, hint }`; a missing grant
9
+ * is a 409 `not_connected` whose `hint` is the Cloud consent URL so the
10
+ * caller can send the owner straight there.
11
+ *
12
+ * @module controllers/google/google.controller
13
+ */
14
+ import type { Request, Response } from 'express';
15
+ import { GoogleWorkspaceTokenService } from '../../services/google/google-workspace-token.service.js';
16
+ import { GmailService } from '../../services/google/gmail.service.js';
17
+ import { CalendarService } from '../../services/google/calendar.service.js';
18
+ /** The services the handlers use; swappable for tests. */
19
+ export interface GoogleControllerDeps {
20
+ tokens: GoogleWorkspaceTokenService;
21
+ gmail: GmailService;
22
+ calendar: CalendarService;
23
+ }
24
+ /**
25
+ * Replace (or, with null, reset) the services the handlers use. Tests only.
26
+ *
27
+ * @param next - Dependency set or null to rebuild lazily
28
+ */
29
+ export declare function setGoogleControllerDeps(next: GoogleControllerDeps | null): void;
30
+ /**
31
+ * Answer a failure with the contract's `{ success:false, error, hint }`
32
+ * shape. `not_connected` carries the consent URL as the hint; the other
33
+ * codes get a one-line next step.
34
+ *
35
+ * @param req - Incoming request (for the connect URL)
36
+ * @param res - Response
37
+ * @param err - The failure
38
+ */
39
+ export declare function sendGoogleError(req: Request, res: Response, err: unknown): void;
40
+ /**
41
+ * GET /api/google/status — `{ connected, cloudConnected, email?, scopes?, grantedAt? }`.
42
+ *
43
+ * @param req - Incoming request
44
+ * @param res - Response
45
+ */
46
+ export declare function getStatus(req: Request, res: Response): Promise<void>;
47
+ /**
48
+ * GET /api/google/connect-url — `{ url }` to open in the browser
49
+ * (Cloud `/start?token=<jwt>&returnUrl=<dashboard>/settings?tab=integrations`).
50
+ *
51
+ * @param req - Incoming request; optional `returnUrl` query
52
+ * @param res - Response
53
+ */
54
+ export declare function getConnectUrl(req: Request, res: Response): Promise<void>;
55
+ /**
56
+ * DELETE /api/google/disconnect — revoke on Cloud and forget the grant.
57
+ *
58
+ * @param req - Incoming request
59
+ * @param res - Response
60
+ */
61
+ export declare function disconnect(req: Request, res: Response): Promise<void>;
62
+ /**
63
+ * GET /api/google/gmail/search?q=&max= — search hits with headers + snippet.
64
+ *
65
+ * @param req - Incoming request
66
+ * @param res - Response
67
+ */
68
+ export declare function gmailSearch(req: Request, res: Response): Promise<void>;
69
+ /**
70
+ * GET /api/google/gmail/messages/:id — one message, body decoded, attachments listed.
71
+ *
72
+ * @param req - Incoming request
73
+ * @param res - Response
74
+ */
75
+ export declare function gmailRead(req: Request, res: Response): Promise<void>;
76
+ /**
77
+ * POST /api/google/gmail/send — body `{ to, cc?, subject, text, threadId?,
78
+ * inReplyTo?, dryRun? }`. With `dryRun: true` nothing is sent; the RFC 822
79
+ * preview comes back as `data.raw` instead.
80
+ *
81
+ * @param req - Incoming request
82
+ * @param res - Response
83
+ */
84
+ export declare function gmailSend(req: Request, res: Response): Promise<void>;
85
+ /**
86
+ * GET /api/google/calendar/events?from=&to=&calendarId=&max= — upcoming events.
87
+ *
88
+ * @param req - Incoming request
89
+ * @param res - Response
90
+ */
91
+ export declare function calendarList(req: Request, res: Response): Promise<void>;
92
+ /**
93
+ * POST /api/google/calendar/events — body `{ calendarId?, summary, start,
94
+ * end, description?, attendees?, timezone? }`.
95
+ *
96
+ * @param req - Incoming request
97
+ * @param res - Response
98
+ */
99
+ export declare function calendarCreate(req: Request, res: Response): Promise<void>;
100
+ //# sourceMappingURL=google.controller.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"google.controller.d.ts","sourceRoot":"","sources":["../../../../../../backend/src/controllers/google/google.controller.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;GAYG;AAEH,OAAO,KAAK,EAAE,OAAO,EAAE,QAAQ,EAAE,MAAM,SAAS,CAAC;AAGjD,OAAO,EACL,2BAA2B,EAE5B,MAAM,yDAAyD,CAAC;AACjE,OAAO,EAAE,YAAY,EAAoC,MAAM,wCAAwC,CAAC;AACxG,OAAO,EAAE,eAAe,EAAE,MAAM,2CAA2C,CAAC;AAI5E,0DAA0D;AAC1D,MAAM,WAAW,oBAAoB;IACnC,MAAM,EAAE,2BAA2B,CAAC;IACpC,KAAK,EAAE,YAAY,CAAC;IACpB,QAAQ,EAAE,eAAe,CAAC;CAC3B;AAkBD;;;;GAIG;AACH,wBAAgB,uBAAuB,CAAC,IAAI,EAAE,oBAAoB,GAAG,IAAI,GAAG,IAAI,CAE/E;AA+BD;;;;;;;;GAQG;AACH,wBAAgB,eAAe,CAAC,GAAG,EAAE,OAAO,EAAE,GAAG,EAAE,QAAQ,EAAE,GAAG,EAAE,OAAO,GAAG,IAAI,CA6B/E;AA0BD;;;;;GAKG;AACH,wBAAsB,SAAS,CAAC,GAAG,EAAE,OAAO,EAAE,GAAG,EAAE,QAAQ,GAAG,OAAO,CAAC,IAAI,CAAC,CAO1E;AAED;;;;;;GAMG;AACH,wBAAsB,aAAa,CAAC,GAAG,EAAE,OAAO,EAAE,GAAG,EAAE,QAAQ,GAAG,OAAO,CAAC,IAAI,CAAC,CAO9E;AAED;;;;;GAKG;AACH,wBAAsB,UAAU,CAAC,GAAG,EAAE,OAAO,EAAE,GAAG,EAAE,QAAQ,GAAG,OAAO,CAAC,IAAI,CAAC,CAO3E;AAED;;;;;GAKG;AACH,wBAAsB,WAAW,CAAC,GAAG,EAAE,OAAO,EAAE,GAAG,EAAE,QAAQ,GAAG,OAAO,CAAC,IAAI,CAAC,CAW5E;AAED;;;;;GAKG;AACH,wBAAsB,SAAS,CAAC,GAAG,EAAE,OAAO,EAAE,GAAG,EAAE,QAAQ,GAAG,OAAO,CAAC,IAAI,CAAC,CAO1E;AAED;;;;;;;GAOG;AACH,wBAAsB,SAAS,CAAC,GAAG,EAAE,OAAO,EAAE,GAAG,EAAE,QAAQ,GAAG,OAAO,CAAC,IAAI,CAAC,CAqB1E;AAED;;;;;GAKG;AACH,wBAAsB,YAAY,CAAC,GAAG,EAAE,OAAO,EAAE,GAAG,EAAE,QAAQ,GAAG,OAAO,CAAC,IAAI,CAAC,CAY7E;AAED;;;;;;GAMG;AACH,wBAAsB,cAAc,CAAC,GAAG,EAAE,OAAO,EAAE,GAAG,EAAE,QAAQ,GAAG,OAAO,CAAC,IAAI,CAAC,CAwB/E"}
@@ -0,0 +1,293 @@
1
+ /**
2
+ * Google Workspace Controller
3
+ *
4
+ * HTTP surface for Gmail + Calendar on the owner's account, mounted at
5
+ * `/api/google`. Backs the `gmail-*` / `calendar-*` agent skills and the
6
+ * Settings → Integrations "Google Workspace" card.
7
+ *
8
+ * Every failure answers `{ success: false, error, hint }`; a missing grant
9
+ * is a 409 `not_connected` whose `hint` is the Cloud consent URL so the
10
+ * caller can send the owner straight there.
11
+ *
12
+ * @module controllers/google/google.controller
13
+ */
14
+ import { GOOGLE_WORKSPACE_CONSTANTS } from '../../constants.js';
15
+ import { LoggerService } from '../../services/core/logger.service.js';
16
+ import { GoogleWorkspaceTokenService, GoogleWorkspaceError, } from '../../services/google/google-workspace-token.service.js';
17
+ import { GmailService, buildRfc822 } from '../../services/google/gmail.service.js';
18
+ import { CalendarService } from '../../services/google/calendar.service.js';
19
+ const logger = LoggerService.getInstance().createComponentLogger('GoogleController');
20
+ let deps = null;
21
+ /**
22
+ * Lazily build the real services (token service singleton + Gmail/Calendar
23
+ * bound to it).
24
+ *
25
+ * @returns The active dependency set
26
+ */
27
+ function getDeps() {
28
+ if (!deps) {
29
+ const tokens = GoogleWorkspaceTokenService.getInstance();
30
+ deps = { tokens, gmail: new GmailService({ tokens }), calendar: new CalendarService({ tokens }) };
31
+ }
32
+ return deps;
33
+ }
34
+ /**
35
+ * Replace (or, with null, reset) the services the handlers use. Tests only.
36
+ *
37
+ * @param next - Dependency set or null to rebuild lazily
38
+ */
39
+ export function setGoogleControllerDeps(next) {
40
+ deps = next;
41
+ }
42
+ /**
43
+ * Where Cloud should send the owner after consent: an explicit http(s)
44
+ * `returnUrl` query wins (the dashboard passes its own origin, which can
45
+ * differ from the API's in dev), else this API's origin + the Settings
46
+ * integrations tab.
47
+ *
48
+ * @param req - Incoming request
49
+ * @returns Absolute return URL
50
+ */
51
+ function resolveReturnUrl(req) {
52
+ const explicit = typeof req.query.returnUrl === 'string' ? req.query.returnUrl : '';
53
+ if (/^https?:\/\//i.test(explicit))
54
+ return explicit;
55
+ return `${req.protocol}://${req.get('host')}${GOOGLE_WORKSPACE_CONSTANTS.SETTINGS_RETURN_PATH}`;
56
+ }
57
+ /**
58
+ * The connect URL for this request, or null when not signed in to Cloud.
59
+ *
60
+ * @param req - Incoming request
61
+ * @returns Cloud consent-start URL or null
62
+ */
63
+ function connectUrlOrNull(req) {
64
+ try {
65
+ return getDeps().tokens.buildConnectUrl(resolveReturnUrl(req));
66
+ }
67
+ catch {
68
+ return null;
69
+ }
70
+ }
71
+ /**
72
+ * Answer a failure with the contract's `{ success:false, error, hint }`
73
+ * shape. `not_connected` carries the consent URL as the hint; the other
74
+ * codes get a one-line next step.
75
+ *
76
+ * @param req - Incoming request (for the connect URL)
77
+ * @param res - Response
78
+ * @param err - The failure
79
+ */
80
+ export function sendGoogleError(req, res, err) {
81
+ const CODES = GOOGLE_WORKSPACE_CONSTANTS.ERROR_CODES;
82
+ if (err instanceof GoogleWorkspaceError) {
83
+ let hint;
84
+ switch (err.code) {
85
+ case CODES.NOT_CONNECTED:
86
+ hint = connectUrlOrNull(req)
87
+ ?? 'Sign in to Crewly Cloud (Settings → Cloud), then connect Google Workspace under Settings → Integrations.';
88
+ break;
89
+ case CODES.NOT_LOGGED_IN:
90
+ hint = 'Sign in to Crewly Cloud first (Settings → Cloud).';
91
+ break;
92
+ case CODES.NOT_CONFIGURED:
93
+ hint = 'Crewly Cloud is not configured for Google Workspace; nothing to do on this instance.';
94
+ break;
95
+ case CODES.VALIDATION:
96
+ hint = 'Fix the request and retry.';
97
+ break;
98
+ default:
99
+ hint = err.status === 401
100
+ ? 'The Google token was rejected; retry once — the cache has been cleared.'
101
+ : 'Google or Crewly Cloud failed; retry later.';
102
+ }
103
+ res.status(err.status).json({ success: false, error: err.code, message: err.message, hint });
104
+ return;
105
+ }
106
+ const message = err instanceof Error ? err.message : String(err);
107
+ logger.error('Unexpected Google Workspace failure', { error: message });
108
+ res.status(500).json({ success: false, error: 'internal', message, hint: 'Check the backend log.' });
109
+ }
110
+ /**
111
+ * Read a query parameter as a trimmed string ('' when absent).
112
+ *
113
+ * @param req - Incoming request
114
+ * @param name - Parameter name
115
+ * @returns The value
116
+ */
117
+ function q(req, name) {
118
+ const v = req.query[name];
119
+ return typeof v === 'string' ? v.trim() : '';
120
+ }
121
+ /**
122
+ * Parse an optional integer query parameter.
123
+ *
124
+ * @param req - Incoming request
125
+ * @param name - Parameter name
126
+ * @returns The number or undefined
127
+ */
128
+ function qInt(req, name) {
129
+ const v = q(req, name);
130
+ return v ? Number.parseInt(v, 10) : undefined;
131
+ }
132
+ /**
133
+ * GET /api/google/status — `{ connected, cloudConnected, email?, scopes?, grantedAt? }`.
134
+ *
135
+ * @param req - Incoming request
136
+ * @param res - Response
137
+ */
138
+ export async function getStatus(req, res) {
139
+ try {
140
+ const data = await getDeps().tokens.status();
141
+ res.json({ success: true, data });
142
+ }
143
+ catch (err) {
144
+ sendGoogleError(req, res, err);
145
+ }
146
+ }
147
+ /**
148
+ * GET /api/google/connect-url — `{ url }` to open in the browser
149
+ * (Cloud `/start?token=<jwt>&returnUrl=<dashboard>/settings?tab=integrations`).
150
+ *
151
+ * @param req - Incoming request; optional `returnUrl` query
152
+ * @param res - Response
153
+ */
154
+ export async function getConnectUrl(req, res) {
155
+ try {
156
+ const url = getDeps().tokens.buildConnectUrl(resolveReturnUrl(req));
157
+ res.json({ success: true, data: { url } });
158
+ }
159
+ catch (err) {
160
+ sendGoogleError(req, res, err);
161
+ }
162
+ }
163
+ /**
164
+ * DELETE /api/google/disconnect — revoke on Cloud and forget the grant.
165
+ *
166
+ * @param req - Incoming request
167
+ * @param res - Response
168
+ */
169
+ export async function disconnect(req, res) {
170
+ try {
171
+ const data = await getDeps().tokens.disconnect();
172
+ res.json({ success: true, data });
173
+ }
174
+ catch (err) {
175
+ sendGoogleError(req, res, err);
176
+ }
177
+ }
178
+ /**
179
+ * GET /api/google/gmail/search?q=&max= — search hits with headers + snippet.
180
+ *
181
+ * @param req - Incoming request
182
+ * @param res - Response
183
+ */
184
+ export async function gmailSearch(req, res) {
185
+ try {
186
+ const query = q(req, 'q');
187
+ if (!query) {
188
+ throw new GoogleWorkspaceError(400, GOOGLE_WORKSPACE_CONSTANTS.ERROR_CODES.VALIDATION, '"q" is required');
189
+ }
190
+ const messages = await getDeps().gmail.search({ query, max: qInt(req, 'max') });
191
+ res.json({ success: true, data: { query, count: messages.length, messages } });
192
+ }
193
+ catch (err) {
194
+ sendGoogleError(req, res, err);
195
+ }
196
+ }
197
+ /**
198
+ * GET /api/google/gmail/messages/:id — one message, body decoded, attachments listed.
199
+ *
200
+ * @param req - Incoming request
201
+ * @param res - Response
202
+ */
203
+ export async function gmailRead(req, res) {
204
+ try {
205
+ const message = await getDeps().gmail.read(String(req.params.id ?? ''));
206
+ res.json({ success: true, data: message });
207
+ }
208
+ catch (err) {
209
+ sendGoogleError(req, res, err);
210
+ }
211
+ }
212
+ /**
213
+ * POST /api/google/gmail/send — body `{ to, cc?, subject, text, threadId?,
214
+ * inReplyTo?, dryRun? }`. With `dryRun: true` nothing is sent; the RFC 822
215
+ * preview comes back as `data.raw` instead.
216
+ *
217
+ * @param req - Incoming request
218
+ * @param res - Response
219
+ */
220
+ export async function gmailSend(req, res) {
221
+ try {
222
+ const body = (req.body ?? {});
223
+ const input = {
224
+ to: String(body.to ?? ''),
225
+ subject: String(body.subject ?? ''),
226
+ text: String(body.text ?? ''),
227
+ ...(body.cc ? { cc: String(body.cc) } : {}),
228
+ ...(body.threadId ? { threadId: String(body.threadId) } : {}),
229
+ ...(body.inReplyTo ? { inReplyTo: String(body.inReplyTo) } : {}),
230
+ };
231
+ if (body.dryRun === true) {
232
+ res.json({ success: true, data: { dryRun: true, raw: buildRfc822(input) } });
233
+ return;
234
+ }
235
+ const sent = await getDeps().gmail.send(input);
236
+ logger.info('Gmail message sent', { id: sent.id, threadId: sent.threadId, to: input.to });
237
+ res.json({ success: true, data: sent });
238
+ }
239
+ catch (err) {
240
+ sendGoogleError(req, res, err);
241
+ }
242
+ }
243
+ /**
244
+ * GET /api/google/calendar/events?from=&to=&calendarId=&max= — upcoming events.
245
+ *
246
+ * @param req - Incoming request
247
+ * @param res - Response
248
+ */
249
+ export async function calendarList(req, res) {
250
+ try {
251
+ const events = await getDeps().calendar.listEvents({
252
+ calendarId: q(req, 'calendarId') || undefined,
253
+ timeMin: q(req, 'from') || undefined,
254
+ timeMax: q(req, 'to') || undefined,
255
+ max: qInt(req, 'max'),
256
+ });
257
+ res.json({ success: true, data: { count: events.length, events } });
258
+ }
259
+ catch (err) {
260
+ sendGoogleError(req, res, err);
261
+ }
262
+ }
263
+ /**
264
+ * POST /api/google/calendar/events — body `{ calendarId?, summary, start,
265
+ * end, description?, attendees?, timezone? }`.
266
+ *
267
+ * @param req - Incoming request
268
+ * @param res - Response
269
+ */
270
+ export async function calendarCreate(req, res) {
271
+ try {
272
+ const body = (req.body ?? {});
273
+ const attendees = Array.isArray(body.attendees)
274
+ ? body.attendees.map((a) => String(a))
275
+ : typeof body.attendees === 'string'
276
+ ? body.attendees.split(',')
277
+ : [];
278
+ const event = await getDeps().calendar.createEvent({
279
+ calendarId: body.calendarId,
280
+ summary: String(body.summary ?? ''),
281
+ start: String(body.start ?? ''),
282
+ end: String(body.end ?? ''),
283
+ description: body.description,
284
+ attendees,
285
+ timezone: body.timezone,
286
+ });
287
+ res.json({ success: true, data: event });
288
+ }
289
+ catch (err) {
290
+ sendGoogleError(req, res, err);
291
+ }
292
+ }
293
+ //# sourceMappingURL=google.controller.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"google.controller.js","sourceRoot":"","sources":["../../../../../../backend/src/controllers/google/google.controller.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,26 @@
1
+ /**
2
+ * Google Workspace Routes
3
+ *
4
+ * Router for Gmail + Calendar on the owner's account via Crewly Cloud.
5
+ * Mounted at `/api/google` in the main API router.
6
+ *
7
+ * @module controllers/google/google.routes
8
+ */
9
+ import { Router } from 'express';
10
+ /**
11
+ * Creates the Google Workspace router.
12
+ *
13
+ * Routes:
14
+ * - GET /status — grant status (connected, email, scopes)
15
+ * - GET /connect-url — Cloud consent-start URL for the browser
16
+ * - DELETE /disconnect — revoke + forget the grant
17
+ * - GET /gmail/search — ?q=&max=
18
+ * - GET /gmail/messages/:id — read one message
19
+ * - POST /gmail/send — { to, cc?, subject, text, threadId?, inReplyTo?, dryRun? }
20
+ * - GET /calendar/events — ?from=&to=&calendarId=&max=
21
+ * - POST /calendar/events — { calendarId?, summary, start, end, description?, attendees?, timezone? }
22
+ *
23
+ * @returns Express router for /api/google routes
24
+ */
25
+ export declare function createGoogleRouter(): Router;
26
+ //# sourceMappingURL=google.routes.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"google.routes.d.ts","sourceRoot":"","sources":["../../../../../../backend/src/controllers/google/google.routes.ts"],"names":[],"mappings":"AAAA;;;;;;;GAOG;AAEH,OAAO,EAAE,MAAM,EAAE,MAAM,SAAS,CAAC;AAYjC;;;;;;;;;;;;;;GAcG;AACH,wBAAgB,kBAAkB,IAAI,MAAM,CAa3C"}
@@ -0,0 +1,38 @@
1
+ /**
2
+ * Google Workspace Routes
3
+ *
4
+ * Router for Gmail + Calendar on the owner's account via Crewly Cloud.
5
+ * Mounted at `/api/google` in the main API router.
6
+ *
7
+ * @module controllers/google/google.routes
8
+ */
9
+ import { Router } from 'express';
10
+ import { getStatus, getConnectUrl, disconnect, gmailSearch, gmailRead, gmailSend, calendarList, calendarCreate, } from './google.controller.js';
11
+ /**
12
+ * Creates the Google Workspace router.
13
+ *
14
+ * Routes:
15
+ * - GET /status — grant status (connected, email, scopes)
16
+ * - GET /connect-url — Cloud consent-start URL for the browser
17
+ * - DELETE /disconnect — revoke + forget the grant
18
+ * - GET /gmail/search — ?q=&max=
19
+ * - GET /gmail/messages/:id — read one message
20
+ * - POST /gmail/send — { to, cc?, subject, text, threadId?, inReplyTo?, dryRun? }
21
+ * - GET /calendar/events — ?from=&to=&calendarId=&max=
22
+ * - POST /calendar/events — { calendarId?, summary, start, end, description?, attendees?, timezone? }
23
+ *
24
+ * @returns Express router for /api/google routes
25
+ */
26
+ export function createGoogleRouter() {
27
+ const router = Router();
28
+ router.get('/status', getStatus);
29
+ router.get('/connect-url', getConnectUrl);
30
+ router.delete('/disconnect', disconnect);
31
+ router.get('/gmail/search', gmailSearch);
32
+ router.get('/gmail/messages/:id', gmailRead);
33
+ router.post('/gmail/send', gmailSend);
34
+ router.get('/calendar/events', calendarList);
35
+ router.post('/calendar/events', calendarCreate);
36
+ return router;
37
+ }
38
+ //# sourceMappingURL=google.routes.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"google.routes.js","sourceRoot":"","sources":["../../../../../../backend/src/controllers/google/google.routes.ts"],"names":[],"mappings":"AAAA;;;;;;;GAOG;AAEH,OAAO,EAAE,MAAM,EAAE,MAAM,SAAS,CAAC;AACjC,OAAO,EACL,SAAS,EACT,aAAa,EACb,UAAU,EACV,WAAW,EACX,SAAS,EACT,SAAS,EACT,YAAY,EACZ,cAAc,GACf,MAAM,wBAAwB,CAAC;AAEhC;;;;;;;;;;;;;;GAcG;AACH,MAAM,UAAU,kBAAkB;IAChC,MAAM,MAAM,GAAG,MAAM,EAAE,CAAC;IAExB,MAAM,CAAC,GAAG,CAAC,SAAS,EAAE,SAAS,CAAC,CAAC;IACjC,MAAM,CAAC,GAAG,CAAC,cAAc,EAAE,aAAa,CAAC,CAAC;IAC1C,MAAM,CAAC,MAAM,CAAC,aAAa,EAAE,UAAU,CAAC,CAAC;IACzC,MAAM,CAAC,GAAG,CAAC,eAAe,EAAE,WAAW,CAAC,CAAC;IACzC,MAAM,CAAC,GAAG,CAAC,qBAAqB,EAAE,SAAS,CAAC,CAAC;IAC7C,MAAM,CAAC,IAAI,CAAC,aAAa,EAAE,SAAS,CAAC,CAAC;IACtC,MAAM,CAAC,GAAG,CAAC,kBAAkB,EAAE,YAAY,CAAC,CAAC;IAC7C,MAAM,CAAC,IAAI,CAAC,kBAAkB,EAAE,cAAc,CAAC,CAAC;IAEhD,OAAO,MAAM,CAAC;AAChB,CAAC"}
@@ -1 +1 @@
1
- {"version":3,"file":"oauth.routes.d.ts","sourceRoot":"","sources":["../../../../../../backend/src/controllers/oauth/oauth.routes.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,MAAM,EAAmC,MAAM,SAAS,CAAC;AAmBlE;;;;;;;GAOG;AACH,wBAAgB,iBAAiB,IAAI,MAAM,CAiJ1C"}
1
+ {"version":3,"file":"oauth.routes.d.ts","sourceRoot":"","sources":["../../../../../../backend/src/controllers/oauth/oauth.routes.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,MAAM,EAAmC,MAAM,SAAS,CAAC;AAoBlE;;;;;;;GAOG;AACH,wBAAgB,iBAAiB,IAAI,MAAM,CA+K1C"}
@@ -3,6 +3,7 @@ import crypto from 'crypto';
3
3
  import { GOOGLE_OAUTH_CONSTANTS } from '../../constants.js';
4
4
  import { UserIdentityService } from '../../services/user/user-identity.service.js';
5
5
  import { LoggerService } from '../../services/core/logger.service.js';
6
+ import { OAuthReloginMonitorService } from '../../services/agent/oauth-relogin-monitor.service.js';
6
7
  /**
7
8
  * Build Google OAuth client config from environment variables.
8
9
  *
@@ -27,6 +28,36 @@ export function createOAuthRouter() {
27
28
  const router = Router();
28
29
  const users = UserIdentityService.getInstance();
29
30
  const logger = LoggerService.getInstance().createComponentLogger('OAuthRoutes');
31
+ /**
32
+ * GET /api/oauth/pending
33
+ *
34
+ * Every agent session currently parked on a runtime sign-in screen, as
35
+ * captured by the OAuth re-login monitor (url + device code + when it was
36
+ * first seen). The dashboard polls this for its global "Sign-in needed"
37
+ * banner; per-member detail is also exposed on GET /api/teams and the
38
+ * orchestrator's own on GET /api/orchestrator/status.
39
+ */
40
+ router.get('/pending', (_req, res) => {
41
+ try {
42
+ const pending = OAuthReloginMonitorService.getInstance()
43
+ .getAllLoginRequired()
44
+ .map(({ sessionName, runtimeType, url, code, detectedAt, notifiedAt }) => ({
45
+ sessionName,
46
+ runtimeType,
47
+ url,
48
+ code,
49
+ detectedAt,
50
+ notifiedAt,
51
+ }));
52
+ res.json({ success: true, data: pending, count: pending.length });
53
+ }
54
+ catch (error) {
55
+ res.status(500).json({
56
+ success: false,
57
+ error: error instanceof Error ? error.message : 'Failed to list pending logins',
58
+ });
59
+ }
60
+ });
30
61
  router.get('/google/start', async (req, res, next) => {
31
62
  try {
32
63
  const { clientId, redirectUri } = getGoogleConfig(req);
@@ -1 +1 @@
1
- {"version":3,"file":"oauth.routes.js","sourceRoot":"","sources":["../../../../../../backend/src/controllers/oauth/oauth.routes.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"oauth.routes.js","sourceRoot":"","sources":["../../../../../../backend/src/controllers/oauth/oauth.routes.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,MAAM,EAAmC,MAAM,SAAS,CAAC;AAClE,OAAO,MAAM,MAAM,QAAQ,CAAC;AAC5B,OAAO,EAAE,sBAAsB,EAAE,MAAM,oBAAoB,CAAC;AAC5D,OAAO,EAAE,mBAAmB,EAAE,MAAM,8CAA8C,CAAC;AACnF,OAAO,EAAE,aAAa,EAAE,MAAM,uCAAuC,CAAC;AACtE,OAAO,EAAE,0BAA0B,EAAE,MAAM,uDAAuD,CAAC;AAEnG;;;;;GAKG;AACH,SAAS,eAAe,CAAC,GAAY;IACnC,MAAM,QAAQ,GAAG,OAAO,CAAC,GAAG,CAAC,sBAAsB,IAAI,EAAE,CAAC;IAC1D,MAAM,YAAY,GAAG,OAAO,CAAC,GAAG,CAAC,0BAA0B,IAAI,EAAE,CAAC;IAClE,MAAM,WAAW,GAAG,OAAO,CAAC,GAAG,CAAC,yBAAyB,IAAI,GAAG,GAAG,CAAC,QAAQ,MAAM,GAAG,CAAC,GAAG,CAAC,MAAM,CAAC,4BAA4B,CAAC;IAC9H,OAAO,EAAE,QAAQ,EAAE,YAAY,EAAE,WAAW,EAAE,CAAC;AACjD,CAAC;AAED;;;;;;;GAOG;AACH,MAAM,UAAU,iBAAiB;IAC/B,MAAM,MAAM,GAAG,MAAM,EAAE,CAAC;IACxB,MAAM,KAAK,GAAG,mBAAmB,CAAC,WAAW,EAAE,CAAC;IAChD,MAAM,MAAM,GAAG,aAAa,CAAC,WAAW,EAAE,CAAC,qBAAqB,CAAC,aAAa,CAAC,CAAC;IAEhF;;;;;;;;OAQG;IACH,MAAM,CAAC,GAAG,CAAC,UAAU,EAAE,CAAC,IAAa,EAAE,GAAa,EAAE,EAAE;QACtD,IAAI,CAAC;YACH,MAAM,OAAO,GAAG,0BAA0B,CAAC,WAAW,EAAE;iBACrD,mBAAmB,EAAE;iBACrB,GAAG,CAAC,CAAC,EAAE,WAAW,EAAE,WAAW,EAAE,GAAG,EAAE,IAAI,EAAE,UAAU,EAAE,UAAU,EAAE,EAAE,EAAE,CAAC,CAAC;gBACzE,WAAW;gBACX,WAAW;gBACX,GAAG;gBACH,IAAI;gBACJ,UAAU;gBACV,UAAU;aACX,CAAC,CAAC,CAAC;YACN,GAAG,CAAC,IAAI,CAAC,EAAE,OAAO,EAAE,IAAI,EAAE,IAAI,EAAE,OAAO,EAAE,KAAK,EAAE,OAAO,CAAC,MAAM,EAAE,CAAC,CAAC;QACpE,CAAC;QAAC,OAAO,KAAK,EAAE,CAAC;YACf,GAAG,CAAC,MAAM,CAAC,GAAG,CAAC,CAAC,IAAI,CAAC;gBACnB,OAAO,EAAE,KAAK;gBACd,KAAK,EAAE,KAAK,YAAY,KAAK,CAAC,CAAC,CAAC,KAAK,CAAC,OAAO,CAAC,CAAC,CAAC,+BAA+B;aAChF,CAAC,CAAC;QACL,CAAC;IACH,CAAC,CAAC,CAAC;IAEH,MAAM,CAAC,GAAG,CAAC,eAAe,EAAE,KAAK,EAAE,GAAY,EAAE,GAAa,EAAE,IAAkB,EAAE,EAAE;QACpF,IAAI,CAAC;YACH,MAAM,EAAE,QAAQ,EAAE,WAAW,EAAE,GAAG,eAAe,CAAC,GAAG,CAAC,CAAC;YACvD,IAAI,CAAC,QAAQ,EAAE,CAAC;gBACd,GAAG,CAAC,MAAM,CAAC,GAAG,CAAC,CAAC,IAAI,CAAC,EAAE,OAAO,EAAE,KAAK,EAAE,KAAK,EAAE,0CAA0C,EAAE,CAAC,CAAC;gBAC5F,OAAO;YACT,CAAC;YAED,MAAM,WAAW,GAAG,GAAG,CAAC,KAAK,CAAC,WAAW,CAAC,CAAC,CAAC,MAAM,CAAC,GAAG,CAAC,KAAK,CAAC,WAAW,CAAC,CAAC,CAAC,CAAC,SAAS,CAAC;YAEtF,4DAA4D;YAC5D,IAAI,eAAe,GAAG,sBAAsB,CAAC,cAAc,CAAC;YAC5D,IAAI,GAAG,CAAC,KAAK,CAAC,MAAM,EAAE,CAAC;gBACrB,MAAM,SAAS,GAAG,MAAM,CAAC,GAAG,CAAC,KAAK,CAAC,MAAM,CAAC,CAAC;gBAC3C,wDAAwD;gBACxD,eAAe,GAAG,SAAS,CAAC,KAAK,CAAC,OAAO,CAAC,CAAC,MAAM,CAAC,OAAO,CAAQ,CAAC;YACpE,CAAC;YAED,MAAM,YAAY,GAAG;gBACnB,WAAW;gBACX,CAAC,EAAE,IAAI,CAAC,GAAG,EAAE;gBACb,KAAK,EAAE,MAAM,CAAC,UAAU,EAAE;aAC3B,CAAC;YACF,MAAM,KAAK,GAAG,MAAM,CAAC,IAAI,CAAC,IAAI,CAAC,SAAS,CAAC,YAAY,CAAC,CAAC,CAAC,QAAQ,CAAC,WAAW,CAAC,CAAC;YAE9E,MAAM,GAAG,GAAG,IAAI,GAAG,CAAC,sBAAsB,CAAC,aAAa,CAAC,CAAC;YAC1D,GAAG,CAAC,YAAY,CAAC,GAAG,CAAC,WAAW,EAAE,QAAQ,CAAC,CAAC;YAC5C,GAAG,CAAC,YAAY,CAAC,GAAG,CAAC,cAAc,EAAE,WAAW,CAAC,CAAC;YAClD,GAAG,CAAC,YAAY,CAAC,GAAG,CAAC,eAAe,EAAE,MAAM,CAAC,CAAC;YAC9C,GAAG,CAAC,YAAY,CAAC,GAAG,CAAC,aAAa,EAAE,SAAS,CAAC,CAAC;YAC/C,GAAG,CAAC,YAAY,CAAC,GAAG,CAAC,QAAQ,EAAE,SAAS,CAAC,CAAC;YAC1C,GAAG,CAAC,YAAY,CAAC,GAAG,CAAC,OAAO,EAAE,eAAe,CAAC,IAAI,CAAC,GAAG,CAAC,CAAC,CAAC;YACzD,GAAG,CAAC,YAAY,CAAC,GAAG,CAAC,OAAO,EAAE,KAAK,CAAC,CAAC;YAErC,GAAG,CAAC,IAAI,CAAC,EAAE,OAAO,EAAE,IAAI,EAAE,IAAI,EAAE,EAAE,OAAO,EAAE,GAAG,CAAC,QAAQ,EAAE,EAAE,KAAK,EAAE,EAAE,CAAC,CAAC;QACxE,CAAC;QAAC,OAAO,KAAK,EAAE,CAAC;YACf,IAAI,CAAC,KAAK,CAAC,CAAC;QACd,CAAC;IACH,CAAC,CAAC,CAAC;IAEH,MAAM,CAAC,GAAG,CAAC,kBAAkB,EAAE,KAAK,EAAE,GAAY,EAAE,GAAa,EAAE,IAAkB,EAAE,EAAE;QACvF,IAAI,CAAC;YACH,MAAM,IAAI,GAAG,GAAG,CAAC,KAAK,CAAC,IAAI,CAAC,CAAC,CAAC,MAAM,CAAC,GAAG,CAAC,KAAK,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC,EAAE,CAAC;YAC1D,MAAM,KAAK,GAAG,GAAG,CAAC,KAAK,CAAC,KAAK,CAAC,CAAC,CAAC,MAAM,CAAC,GAAG,CAAC,KAAK,CAAC,KAAK,CAAC,CAAC,CAAC,CAAC,EAAE,CAAC;YAC7D,IAAI,CAAC,IAAI,EAAE,CAAC;gBACV,GAAG,CAAC,MAAM,CAAC,GAAG,CAAC,CAAC,IAAI,CAAC,EAAE,OAAO,EAAE,KAAK,EAAE,KAAK,EAAE,cAAc,EAAE,CAAC,CAAC;gBAChE,OAAO;YACT,CAAC;YAED,MAAM,EAAE,QAAQ,EAAE,YAAY,EAAE,WAAW,EAAE,GAAG,eAAe,CAAC,GAAG,CAAC,CAAC;YACrE,IAAI,CAAC,QAAQ,IAAI,CAAC,YAAY,EAAE,CAAC;gBAC/B,GAAG,CAAC,MAAM,CAAC,GAAG,CAAC,CAAC,IAAI,CAAC,EAAE,OAAO,EAAE,KAAK,EAAE,KAAK,EAAE,6CAA6C,EAAE,CAAC,CAAC;gBAC/F,OAAO;YACT,CAAC;YAED,MAAM,SAAS,GAAG,MAAM,KAAK,CAAC,sBAAsB,CAAC,cAAc,EAAE;gBACnE,MAAM,EAAE,MAAM;gBACd,OAAO,EAAE,EAAE,cAAc,EAAE,mCAAmC,EAAE;gBAChE,IAAI,EAAE,IAAI,eAAe,CAAC;oBACxB,IAAI;oBACJ,SAAS,EAAE,QAAQ;oBACnB,aAAa,EAAE,YAAY;oBAC3B,YAAY,EAAE,WAAW;oBACzB,UAAU,EAAE,oBAAoB;iBACjC,CAAC;aACH,CAAC,CAAC;YAEH,IAAI,CAAC,SAAS,CAAC,EAAE,EAAE,CAAC;gBAClB,MAAM,OAAO,GAAG,MAAM,SAAS,CAAC,IAAI,EAAE,CAAC;gBACvC,GAAG,CAAC,MAAM,CAAC,GAAG,CAAC,CAAC,IAAI,CAAC,EAAE,OAAO,EAAE,KAAK,EAAE,KAAK,EAAE,kCAAkC,OAAO,EAAE,EAAE,CAAC,CAAC;gBAC7F,OAAO;YACT,CAAC;YAED,MAAM,SAAS,GAAG,MAAM,SAAS,CAAC,IAAI,EAKrC,CAAC;YAEF,MAAM,WAAW,GAAG,MAAM,KAAK,CAAC,sBAAsB,CAAC,iBAAiB,EAAE;gBACxE,OAAO,EAAE,EAAE,aAAa,EAAE,UAAU,SAAS,CAAC,YAAY,EAAE,EAAE;aAC/D,CAAC,CAAC;YAEH,IAAI,CAAC,WAAW,CAAC,EAAE,EAAE,CAAC;gBACpB,MAAM,OAAO,GAAG,MAAM,WAAW,CAAC,IAAI,EAAE,CAAC;gBACzC,GAAG,CAAC,MAAM,CAAC,GAAG,CAAC,CAAC,IAAI,CAAC,EAAE,OAAO,EAAE,KAAK,EAAE,KAAK,EAAE,kCAAkC,OAAO,EAAE,EAAE,CAAC,CAAC;gBAC7F,OAAO;YACT,CAAC;YAED,MAAM,OAAO,GAAG,MAAM,WAAW,CAAC,IAAI,EAAwB,CAAC;YAC/D,IAAI,CAAC,OAAO,CAAC,KAAK,EAAE,CAAC;gBACnB,GAAG,CAAC,MAAM,CAAC,GAAG,CAAC,CAAC,IAAI,CAAC,EAAE,OAAO,EAAE,KAAK,EAAE,KAAK,EAAE,sCAAsC,EAAE,CAAC,CAAC;gBACxF,OAAO;YACT,CAAC;YAED,IAAI,YAAY,GAA6B,EAAE,CAAC;YAChD,IAAI,KAAK,EAAE,CAAC;gBACV,IAAI,CAAC;oBACH,YAAY,GAAG,IAAI,CAAC,KAAK,CAAC,MAAM,CAAC,IAAI,CAAC,KAAK,EAAE,WAAW,CAAC,CAAC,QAAQ,CAAC,MAAM,CAAC,CAAC,CAAC;gBAC9E,CAAC;gBAAC,OAAO,GAAG,EAAE,CAAC;oBACb,MAAM,CAAC,IAAI,CAAC,uCAAuC,EAAE;wBACnD,KAAK,EAAE,GAAG,YAAY,KAAK,CAAC,CAAC,CAAC,GAAG,CAAC,OAAO,CAAC,CAAC,CAAC,MAAM,CAAC,GAAG,CAAC;qBACxD,CAAC,CAAC;gBACL,CAAC;YACH,CAAC;YAED,MAAM,IAAI,GAAG,MAAM,KAAK,CAAC,kBAAkB,CAAC;gBAC1C,KAAK,EAAE,OAAO,CAAC,KAAK;gBACpB,WAAW,EAAE,YAAY,CAAC,WAAW;aACtC,CAAC,CAAC;YAEH,IAAI,CAAC,SAAS,CAAC,aAAa,EAAE,CAAC;gBAC7B,MAAM,CAAC,IAAI,CAAC,8EAA8E,EAAE;oBAC1F,KAAK,EAAE,OAAO,CAAC,KAAK;iBACrB,CAAC,CAAC;YACL,CAAC;YAED,MAAM,KAAK,CAAC,cAAc,CAAC,IAAI,CAAC,EAAE,EAAE,QAAQ,EAAE;gBAC5C,YAAY,EAAE,SAAS,CAAC,aAAa,IAAI,SAAS,CAAC,YAAY;gBAC/D,WAAW,EAAE,SAAS,CAAC,YAAY;gBACnC,MAAM,EAAE,CAAC,SAAS,CAAC,KAAK,IAAI,EAAE,CAAC,CAAC,KAAK,CAAC,GAAG,CAAC,CAAC,MAAM,CAAC,OAAO,CAAC;aAC3D,CAAC,CAAC;YAEH,GAAG,CAAC,IAAI,CAAC;gBACP,OAAO,EAAE,IAAI;gBACb,IAAI,EAAE;oBACJ,MAAM,EAAE,IAAI,CAAC,EAAE;oBACf,KAAK,EAAE,IAAI,CAAC,KAAK;oBACjB,iBAAiB,EAAE,QAAQ;oBAC3B,WAAW,EAAE,IAAI,CAAC,WAAW;iBAC9B;gBACD,OAAO,EAAE,qCAAqC;aAC/C,CAAC,CAAC;QACL,CAAC;QAAC,OAAO,KAAK,EAAE,CAAC;YACf,IAAI,CAAC,KAAK,CAAC,CAAC;QACd,CAAC;IACH,CAAC,CAAC,CAAC;IAEH,OAAO,MAAM,CAAC;AAChB,CAAC"}
@@ -92,6 +92,8 @@ export interface CreateTeamMemberInput {
92
92
  avatar?: string;
93
93
  skillOverrides?: string[];
94
94
  excludedRoleSkills?: string[];
95
+ /** Owner-declared skill tags (normalised server-side) */
96
+ skills?: string[];
95
97
  /** Whether this member can delegate tasks (for hierarchical teams). */
96
98
  canDelegate?: boolean;
97
99
  /** Hierarchy level override (auto-set if not provided). */
@@ -190,7 +192,7 @@ export interface GenerateMemberContextQuery {
190
192
  * Request body for updating team member runtime type
191
193
  */
192
194
  export interface UpdateTeamMemberRuntimeRequestBody {
193
- runtimeType: 'claude-code' | 'gemini-cli' | 'codex-cli' | 'crewly-agent';
195
+ runtimeType: 'claude-code' | 'gemini-cli' | 'codex-cli' | 'opencode-cli' | 'crewly-agent';
194
196
  }
195
197
  /**
196
198
  * Member update data in team update request
@@ -199,10 +201,12 @@ export interface TeamMemberUpdate {
199
201
  name: string;
200
202
  role: string;
201
203
  systemPrompt: string;
202
- runtimeType?: 'claude-code' | 'gemini-cli' | 'codex-cli' | 'crewly-agent';
204
+ runtimeType?: 'claude-code' | 'gemini-cli' | 'codex-cli' | 'opencode-cli' | 'crewly-agent';
203
205
  avatar?: string;
204
206
  skillOverrides?: string[];
205
207
  excludedRoleSkills?: string[];
208
+ /** Owner-declared skill tags (normalised server-side) */
209
+ skills?: string[];
206
210
  }
207
211
  /**
208
212
  * Request body for updating team properties
@@ -1 +1 @@
1
- {"version":3,"file":"request-types.d.ts","sourceRoot":"","sources":["../../../../../backend/src/controllers/request-types.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"request-types.d.ts","sourceRoot":"","sources":["../../../../../backend/src/controllers/request-types.ts"],"names":[],"mappings":"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"}
@@ -1 +1 @@
1
- {"version":3,"file":"slack.controller.d.ts","sourceRoot":"","sources":["../../../../../../backend/src/controllers/slack/slack.controller.ts"],"names":[],"mappings":"AAAA;;;;;;;GAOG;AAiBH,QAAA,MAAM,MAAM,4CAAW,CAAC;AA+jCxB,eAAe,MAAM,CAAC"}
1
+ {"version":3,"file":"slack.controller.d.ts","sourceRoot":"","sources":["../../../../../../backend/src/controllers/slack/slack.controller.ts"],"names":[],"mappings":"AAAA;;;;;;;GAOG;AA0BH,QAAA,MAAM,MAAM,4CAAW,CAAC;AA2wCxB,eAAe,MAAM,CAAC"}