crewly 1.20.192 → 1.20.193

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 (458) hide show
  1. package/config/constants.ts +11 -0
  2. package/config/hooks/subagent-guard/subagent.sh +113 -0
  3. package/config/roles/architect/prompt.md +1 -1
  4. package/config/roles/auditor/prompt.md +1 -1
  5. package/config/roles/backend-developer/prompt.md +1 -1
  6. package/config/roles/content-strategist/prompt.md +2 -2
  7. package/config/roles/designer/prompt.md +1 -1
  8. package/config/roles/developer/prompt.md +2 -2
  9. package/config/roles/frontend-developer/prompt.md +1 -1
  10. package/config/roles/fullstack-dev/prompt.md +1 -1
  11. package/config/roles/generalist/prompt.md +1 -1
  12. package/config/roles/ops/prompt.md +1 -1
  13. package/config/roles/orchestrator/prompt.md +2 -2
  14. package/config/roles/product-manager/prompt.md +1 -1
  15. package/config/roles/qa/prompt.md +1 -1
  16. package/config/roles/qa-engineer/prompt.md +1 -1
  17. package/config/roles/researcher/prompt.md +1 -1
  18. package/config/roles/sales/prompt.md +1 -1
  19. package/config/roles/support/prompt.md +1 -1
  20. package/config/roles/team-leader/prompt.md +1 -1
  21. package/config/roles/tpm/prompt.md +1 -1
  22. package/config/roles/ux-designer/prompt.md +1 -1
  23. package/config/skills/_common/complete-body-shape.test.sh +17 -0
  24. package/config/skills/agent/core/complete-task/SKILL.md +27 -4
  25. package/config/skills/agent/core/complete-task/execute.sh +23 -3
  26. package/config/skills/agent/core/complete-task/execute.test.sh +34 -0
  27. package/config/skills/agent/core/handoff-task/execute.sh +1 -1
  28. package/config/skills/agent/core/report-status/SKILL.md +27 -4
  29. package/config/skills/agent/core/report-status/execute.sh +104 -4
  30. package/config/skills/agent/core/todo-add/SKILL.md +16 -2
  31. package/config/skills/agent/core/todo-add/execute.sh +21 -5
  32. package/config/skills/agent/core/todo-add/execute.test.sh +14 -0
  33. package/config/skills/agent/core/todo-tasks/SKILL.md +4 -3
  34. package/config/skills/agent/core/todo-update/SKILL.md +13 -2
  35. package/config/skills/agent/core/todo-update/execute.sh +41 -3
  36. package/config/skills/agent/core/todo-update/execute.test.sh +7 -0
  37. package/config/skills/marketplace-registry.ts +4 -4
  38. package/config/skills/orchestrator/complete-task/SKILL.md +13 -6
  39. package/config/skills/orchestrator/complete-task/execute.sh +22 -3
  40. package/config/skills/orchestrator/delegate-task/execute.sh +2 -2
  41. package/config/skills/orchestrator/harness-login/SKILL.md +9 -1
  42. package/config/skills/orchestrator/harness-login/execute.sh +12 -4
  43. package/config/skills/orchestrator/harness-login/execute.test.sh +7 -0
  44. package/config/skills/team-leader/delegate-task/execute.sh +1 -1
  45. package/config/skills/team-leader/verify-output/SKILL.md +18 -1
  46. package/config/skills/team-leader/verify-output/execute.sh +28 -0
  47. package/config/skills/team-leader/verify-output/execute.test.sh +27 -0
  48. package/dist/backend/backend/src/constants.d.ts +135 -2
  49. package/dist/backend/backend/src/constants.d.ts.map +1 -1
  50. package/dist/backend/backend/src/constants.js +136 -1
  51. package/dist/backend/backend/src/constants.js.map +1 -1
  52. package/dist/backend/backend/src/controllers/canva/canva.controller.d.ts +6 -0
  53. package/dist/backend/backend/src/controllers/canva/canva.controller.d.ts.map +1 -1
  54. package/dist/backend/backend/src/controllers/canva/canva.controller.js +13 -2
  55. package/dist/backend/backend/src/controllers/canva/canva.controller.js.map +1 -1
  56. package/dist/backend/backend/src/controllers/canva/canva.routes.d.ts.map +1 -1
  57. package/dist/backend/backend/src/controllers/canva/canva.routes.js +3 -1
  58. package/dist/backend/backend/src/controllers/canva/canva.routes.js.map +1 -1
  59. package/dist/backend/backend/src/controllers/cloud/cloud.controller.d.ts.map +1 -1
  60. package/dist/backend/backend/src/controllers/cloud/cloud.controller.js +4 -1
  61. package/dist/backend/backend/src/controllers/cloud/cloud.controller.js.map +1 -1
  62. package/dist/backend/backend/src/controllers/connector/connector.controller.d.ts +4 -0
  63. package/dist/backend/backend/src/controllers/connector/connector.controller.d.ts.map +1 -1
  64. package/dist/backend/backend/src/controllers/connector/connector.controller.js +32 -3
  65. package/dist/backend/backend/src/controllers/connector/connector.controller.js.map +1 -1
  66. package/dist/backend/backend/src/controllers/connector/grant-sharing.handler.d.ts +41 -0
  67. package/dist/backend/backend/src/controllers/connector/grant-sharing.handler.d.ts.map +1 -0
  68. package/dist/backend/backend/src/controllers/connector/grant-sharing.handler.js +75 -0
  69. package/dist/backend/backend/src/controllers/connector/grant-sharing.handler.js.map +1 -0
  70. package/dist/backend/backend/src/controllers/google/google.controller.d.ts +6 -0
  71. package/dist/backend/backend/src/controllers/google/google.controller.d.ts.map +1 -1
  72. package/dist/backend/backend/src/controllers/google/google.controller.js +19 -0
  73. package/dist/backend/backend/src/controllers/google/google.controller.js.map +1 -1
  74. package/dist/backend/backend/src/controllers/google/google.routes.d.ts.map +1 -1
  75. package/dist/backend/backend/src/controllers/google/google.routes.js +3 -1
  76. package/dist/backend/backend/src/controllers/google/google.routes.js.map +1 -1
  77. package/dist/backend/backend/src/controllers/harness/owner-login.controller.d.ts.map +1 -1
  78. package/dist/backend/backend/src/controllers/harness/owner-login.controller.js +22 -3
  79. package/dist/backend/backend/src/controllers/harness/owner-login.controller.js.map +1 -1
  80. package/dist/backend/backend/src/controllers/microsoft/microsoft-todo.controller.d.ts +19 -2
  81. package/dist/backend/backend/src/controllers/microsoft/microsoft-todo.controller.d.ts.map +1 -1
  82. package/dist/backend/backend/src/controllers/microsoft/microsoft-todo.controller.js +37 -4
  83. package/dist/backend/backend/src/controllers/microsoft/microsoft-todo.controller.js.map +1 -1
  84. package/dist/backend/backend/src/controllers/microsoft/microsoft-todo.routes.d.ts.map +1 -1
  85. package/dist/backend/backend/src/controllers/microsoft/microsoft-todo.routes.js +3 -1
  86. package/dist/backend/backend/src/controllers/microsoft/microsoft-todo.routes.js.map +1 -1
  87. package/dist/backend/backend/src/controllers/monitoring/terminal.controller.d.ts +9 -0
  88. package/dist/backend/backend/src/controllers/monitoring/terminal.controller.d.ts.map +1 -1
  89. package/dist/backend/backend/src/controllers/monitoring/terminal.controller.js +26 -0
  90. package/dist/backend/backend/src/controllers/monitoring/terminal.controller.js.map +1 -1
  91. package/dist/backend/backend/src/controllers/people/people.routes.d.ts +25 -0
  92. package/dist/backend/backend/src/controllers/people/people.routes.d.ts.map +1 -0
  93. package/dist/backend/backend/src/controllers/people/people.routes.js +90 -0
  94. package/dist/backend/backend/src/controllers/people/people.routes.js.map +1 -0
  95. package/dist/backend/backend/src/controllers/request-types.d.ts +2 -0
  96. package/dist/backend/backend/src/controllers/request-types.d.ts.map +1 -1
  97. package/dist/backend/backend/src/controllers/system/runtime-fallback.controller.d.ts +22 -1
  98. package/dist/backend/backend/src/controllers/system/runtime-fallback.controller.d.ts.map +1 -1
  99. package/dist/backend/backend/src/controllers/system/runtime-fallback.controller.js +143 -3
  100. package/dist/backend/backend/src/controllers/system/runtime-fallback.controller.js.map +1 -1
  101. package/dist/backend/backend/src/controllers/task-pool/task-pool.controller.d.ts +25 -3
  102. package/dist/backend/backend/src/controllers/task-pool/task-pool.controller.d.ts.map +1 -1
  103. package/dist/backend/backend/src/controllers/task-pool/task-pool.controller.js +125 -19
  104. package/dist/backend/backend/src/controllers/task-pool/task-pool.controller.js.map +1 -1
  105. package/dist/backend/backend/src/controllers/team/team.controller.d.ts.map +1 -1
  106. package/dist/backend/backend/src/controllers/team/team.controller.js +14 -0
  107. package/dist/backend/backend/src/controllers/team/team.controller.js.map +1 -1
  108. package/dist/backend/backend/src/index.d.ts.map +1 -1
  109. package/dist/backend/backend/src/index.js +44 -1
  110. package/dist/backend/backend/src/index.js.map +1 -1
  111. package/dist/backend/backend/src/routes/api.routes.d.ts.map +1 -1
  112. package/dist/backend/backend/src/routes/api.routes.js +3 -0
  113. package/dist/backend/backend/src/routes/api.routes.js.map +1 -1
  114. package/dist/backend/backend/src/services/agent/agent-registration.service.d.ts +13 -0
  115. package/dist/backend/backend/src/services/agent/agent-registration.service.d.ts.map +1 -1
  116. package/dist/backend/backend/src/services/agent/agent-registration.service.js +28 -3
  117. package/dist/backend/backend/src/services/agent/agent-registration.service.js.map +1 -1
  118. package/dist/backend/backend/src/services/agent/control-plane-guard.service.d.ts +3 -2
  119. package/dist/backend/backend/src/services/agent/control-plane-guard.service.d.ts.map +1 -1
  120. package/dist/backend/backend/src/services/agent/control-plane-guard.service.js +14 -3
  121. package/dist/backend/backend/src/services/agent/control-plane-guard.service.js.map +1 -1
  122. package/dist/backend/backend/src/services/agent/fresh-task-conversation.service.d.ts +28 -1
  123. package/dist/backend/backend/src/services/agent/fresh-task-conversation.service.d.ts.map +1 -1
  124. package/dist/backend/backend/src/services/agent/fresh-task-conversation.service.js +48 -4
  125. package/dist/backend/backend/src/services/agent/fresh-task-conversation.service.js.map +1 -1
  126. package/dist/backend/backend/src/services/agent/idle-detection.service.js +1 -1
  127. package/dist/backend/backend/src/services/agent/idle-detection.service.js.map +1 -1
  128. package/dist/backend/backend/src/services/agent/oauth-relogin-monitor.service.d.ts +2 -1
  129. package/dist/backend/backend/src/services/agent/oauth-relogin-monitor.service.d.ts.map +1 -1
  130. package/dist/backend/backend/src/services/agent/oauth-relogin-monitor.service.js +17 -4
  131. package/dist/backend/backend/src/services/agent/oauth-relogin-monitor.service.js.map +1 -1
  132. package/dist/backend/backend/src/services/agent/runtime-exit-monitor.service.d.ts +14 -0
  133. package/dist/backend/backend/src/services/agent/runtime-exit-monitor.service.d.ts.map +1 -1
  134. package/dist/backend/backend/src/services/agent/runtime-exit-monitor.service.js +38 -0
  135. package/dist/backend/backend/src/services/agent/runtime-exit-monitor.service.js.map +1 -1
  136. package/dist/backend/backend/src/services/agent/runtime-session-recovery.d.ts +34 -0
  137. package/dist/backend/backend/src/services/agent/runtime-session-recovery.d.ts.map +1 -1
  138. package/dist/backend/backend/src/services/agent/runtime-session-recovery.js +49 -5
  139. package/dist/backend/backend/src/services/agent/runtime-session-recovery.js.map +1 -1
  140. package/dist/backend/backend/src/services/ai/prompt-modules/communication.module.d.ts.map +1 -1
  141. package/dist/backend/backend/src/services/ai/prompt-modules/communication.module.js +8 -1
  142. package/dist/backend/backend/src/services/ai/prompt-modules/communication.module.js.map +1 -1
  143. package/dist/backend/backend/src/services/ai/prompt-modules/lazy-anti-patterns.module.js +1 -1
  144. package/dist/backend/backend/src/services/ai/prompt-modules/lazy-anti-patterns.module.js.map +1 -1
  145. package/dist/backend/backend/src/services/canva/canva-token.service.d.ts +17 -4
  146. package/dist/backend/backend/src/services/canva/canva-token.service.d.ts.map +1 -1
  147. package/dist/backend/backend/src/services/canva/canva-token.service.js +49 -17
  148. package/dist/backend/backend/src/services/canva/canva-token.service.js.map +1 -1
  149. package/dist/backend/backend/src/services/chat-v2/chat-v2.dispatcher.service.d.ts +24 -0
  150. package/dist/backend/backend/src/services/chat-v2/chat-v2.dispatcher.service.d.ts.map +1 -1
  151. package/dist/backend/backend/src/services/chat-v2/chat-v2.dispatcher.service.js +52 -0
  152. package/dist/backend/backend/src/services/chat-v2/chat-v2.dispatcher.service.js.map +1 -1
  153. package/dist/backend/backend/src/services/cloud/cloud-disconnect-notice.service.d.ts +17 -2
  154. package/dist/backend/backend/src/services/cloud/cloud-disconnect-notice.service.d.ts.map +1 -1
  155. package/dist/backend/backend/src/services/cloud/cloud-disconnect-notice.service.js +30 -6
  156. package/dist/backend/backend/src/services/cloud/cloud-disconnect-notice.service.js.map +1 -1
  157. package/dist/backend/backend/src/services/cloud/cloud-disconnect-notice.utils.d.ts +38 -2
  158. package/dist/backend/backend/src/services/cloud/cloud-disconnect-notice.utils.d.ts.map +1 -1
  159. package/dist/backend/backend/src/services/cloud/cloud-disconnect-notice.utils.js +63 -1
  160. package/dist/backend/backend/src/services/cloud/cloud-disconnect-notice.utils.js.map +1 -1
  161. package/dist/backend/backend/src/services/cloud/cloud-sync.service.d.ts +74 -4
  162. package/dist/backend/backend/src/services/cloud/cloud-sync.service.d.ts.map +1 -1
  163. package/dist/backend/backend/src/services/cloud/cloud-sync.service.js +204 -56
  164. package/dist/backend/backend/src/services/cloud/cloud-sync.service.js.map +1 -1
  165. package/dist/backend/backend/src/services/cloud/cloud-sync.types.d.ts +19 -0
  166. package/dist/backend/backend/src/services/cloud/cloud-sync.types.d.ts.map +1 -1
  167. package/dist/backend/backend/src/services/cloud/cloud-sync.types.js.map +1 -1
  168. package/dist/backend/backend/src/services/event-bus/event-to-workitem-bridge.service.d.ts.map +1 -1
  169. package/dist/backend/backend/src/services/event-bus/event-to-workitem-bridge.service.js +3 -0
  170. package/dist/backend/backend/src/services/event-bus/event-to-workitem-bridge.service.js.map +1 -1
  171. package/dist/backend/backend/src/services/google/google-workspace-token.service.d.ts +25 -2
  172. package/dist/backend/backend/src/services/google/google-workspace-token.service.d.ts.map +1 -1
  173. package/dist/backend/backend/src/services/google/google-workspace-token.service.js +48 -7
  174. package/dist/backend/backend/src/services/google/google-workspace-token.service.js.map +1 -1
  175. package/dist/backend/backend/src/services/harness/claude-accounts.d.ts +207 -0
  176. package/dist/backend/backend/src/services/harness/claude-accounts.d.ts.map +1 -0
  177. package/dist/backend/backend/src/services/harness/claude-accounts.js +306 -0
  178. package/dist/backend/backend/src/services/harness/claude-accounts.js.map +1 -0
  179. package/dist/backend/backend/src/services/harness/harness-credentials.store.d.ts +35 -0
  180. package/dist/backend/backend/src/services/harness/harness-credentials.store.d.ts.map +1 -1
  181. package/dist/backend/backend/src/services/harness/harness-credentials.store.js +48 -0
  182. package/dist/backend/backend/src/services/harness/harness-credentials.store.js.map +1 -1
  183. package/dist/backend/backend/src/services/harness/harness-relogin.service.d.ts +70 -1
  184. package/dist/backend/backend/src/services/harness/harness-relogin.service.d.ts.map +1 -1
  185. package/dist/backend/backend/src/services/harness/harness-relogin.service.js +156 -19
  186. package/dist/backend/backend/src/services/harness/harness-relogin.service.js.map +1 -1
  187. package/dist/backend/backend/src/services/harness/harness.types.d.ts +2 -0
  188. package/dist/backend/backend/src/services/harness/harness.types.d.ts.map +1 -1
  189. package/dist/backend/backend/src/services/harness/harness.types.js.map +1 -1
  190. package/dist/backend/backend/src/services/harness/login-broker.service.d.ts +19 -4
  191. package/dist/backend/backend/src/services/harness/login-broker.service.d.ts.map +1 -1
  192. package/dist/backend/backend/src/services/harness/login-broker.service.js +46 -7
  193. package/dist/backend/backend/src/services/harness/login-broker.service.js.map +1 -1
  194. package/dist/backend/backend/src/services/harness/owner-login-request.d.ts +18 -2
  195. package/dist/backend/backend/src/services/harness/owner-login-request.d.ts.map +1 -1
  196. package/dist/backend/backend/src/services/harness/owner-login-request.js +31 -7
  197. package/dist/backend/backend/src/services/harness/owner-login-request.js.map +1 -1
  198. package/dist/backend/backend/src/services/marketplace/marketplace-installer.service.d.ts +21 -0
  199. package/dist/backend/backend/src/services/marketplace/marketplace-installer.service.d.ts.map +1 -1
  200. package/dist/backend/backend/src/services/marketplace/marketplace-installer.service.js +39 -1
  201. package/dist/backend/backend/src/services/marketplace/marketplace-installer.service.js.map +1 -1
  202. package/dist/backend/backend/src/services/messaging/queue-processor.service.d.ts +11 -0
  203. package/dist/backend/backend/src/services/messaging/queue-processor.service.d.ts.map +1 -1
  204. package/dist/backend/backend/src/services/messaging/queue-processor.service.js +29 -0
  205. package/dist/backend/backend/src/services/messaging/queue-processor.service.js.map +1 -1
  206. package/dist/backend/backend/src/services/messaging/sub-agent-message-queue.service.d.ts +5 -0
  207. package/dist/backend/backend/src/services/messaging/sub-agent-message-queue.service.d.ts.map +1 -1
  208. package/dist/backend/backend/src/services/messaging/sub-agent-message-queue.service.js +13 -0
  209. package/dist/backend/backend/src/services/messaging/sub-agent-message-queue.service.js.map +1 -1
  210. package/dist/backend/backend/src/services/microsoft/microsoft-todo.service.d.ts +87 -5
  211. package/dist/backend/backend/src/services/microsoft/microsoft-todo.service.d.ts.map +1 -1
  212. package/dist/backend/backend/src/services/microsoft/microsoft-todo.service.js +151 -12
  213. package/dist/backend/backend/src/services/microsoft/microsoft-todo.service.js.map +1 -1
  214. package/dist/backend/backend/src/services/microsoft/microsoft-token.service.d.ts +17 -4
  215. package/dist/backend/backend/src/services/microsoft/microsoft-token.service.d.ts.map +1 -1
  216. package/dist/backend/backend/src/services/microsoft/microsoft-token.service.js +45 -17
  217. package/dist/backend/backend/src/services/microsoft/microsoft-token.service.js.map +1 -1
  218. package/dist/backend/backend/src/services/monitoring/claude-session-tokens.service.d.ts +53 -7
  219. package/dist/backend/backend/src/services/monitoring/claude-session-tokens.service.d.ts.map +1 -1
  220. package/dist/backend/backend/src/services/monitoring/claude-session-tokens.service.js +77 -14
  221. package/dist/backend/backend/src/services/monitoring/claude-session-tokens.service.js.map +1 -1
  222. package/dist/backend/backend/src/services/monitoring/claude-transcript-sync.service.d.ts +53 -1
  223. package/dist/backend/backend/src/services/monitoring/claude-transcript-sync.service.d.ts.map +1 -1
  224. package/dist/backend/backend/src/services/monitoring/claude-transcript-sync.service.js +130 -29
  225. package/dist/backend/backend/src/services/monitoring/claude-transcript-sync.service.js.map +1 -1
  226. package/dist/backend/backend/src/services/people/acting-for.service.d.ts +151 -0
  227. package/dist/backend/backend/src/services/people/acting-for.service.d.ts.map +1 -0
  228. package/dist/backend/backend/src/services/people/acting-for.service.js +224 -0
  229. package/dist/backend/backend/src/services/people/acting-for.service.js.map +1 -0
  230. package/dist/backend/backend/src/services/people/dedicated-agent.d.ts +89 -0
  231. package/dist/backend/backend/src/services/people/dedicated-agent.d.ts.map +1 -0
  232. package/dist/backend/backend/src/services/people/dedicated-agent.js +113 -0
  233. package/dist/backend/backend/src/services/people/dedicated-agent.js.map +1 -0
  234. package/dist/backend/backend/src/services/people/grant-sharing.d.ts +79 -0
  235. package/dist/backend/backend/src/services/people/grant-sharing.d.ts.map +1 -0
  236. package/dist/backend/backend/src/services/people/grant-sharing.js +135 -0
  237. package/dist/backend/backend/src/services/people/grant-sharing.js.map +1 -0
  238. package/dist/backend/backend/src/services/people/people-directory.service.d.ts +181 -0
  239. package/dist/backend/backend/src/services/people/people-directory.service.d.ts.map +1 -0
  240. package/dist/backend/backend/src/services/people/people-directory.service.js +317 -0
  241. package/dist/backend/backend/src/services/people/people-directory.service.js.map +1 -0
  242. package/dist/backend/backend/src/services/reconciler/reconciler-data-provider.js.map +1 -1
  243. package/dist/backend/backend/src/services/runtime-fallback/effective-runtime.d.ts +29 -1
  244. package/dist/backend/backend/src/services/runtime-fallback/effective-runtime.d.ts.map +1 -1
  245. package/dist/backend/backend/src/services/runtime-fallback/effective-runtime.js +40 -0
  246. package/dist/backend/backend/src/services/runtime-fallback/effective-runtime.js.map +1 -1
  247. package/dist/backend/backend/src/services/runtime-fallback/runtime-availability.d.ts +8 -1
  248. package/dist/backend/backend/src/services/runtime-fallback/runtime-availability.d.ts.map +1 -1
  249. package/dist/backend/backend/src/services/runtime-fallback/runtime-availability.js +16 -2
  250. package/dist/backend/backend/src/services/runtime-fallback/runtime-availability.js.map +1 -1
  251. package/dist/backend/backend/src/services/runtime-fallback/runtime-fallback.service.d.ts +60 -1
  252. package/dist/backend/backend/src/services/runtime-fallback/runtime-fallback.service.d.ts.map +1 -1
  253. package/dist/backend/backend/src/services/runtime-fallback/runtime-fallback.service.js +140 -8
  254. package/dist/backend/backend/src/services/runtime-fallback/runtime-fallback.service.js.map +1 -1
  255. package/dist/backend/backend/src/services/runtime-fallback/runtime-fallback.store.js +1 -1
  256. package/dist/backend/backend/src/services/runtime-fallback/runtime-fallback.store.js.map +1 -1
  257. package/dist/backend/backend/src/services/runtime-fallback/runtime-fallback.types.d.ts +20 -7
  258. package/dist/backend/backend/src/services/runtime-fallback/runtime-fallback.types.d.ts.map +1 -1
  259. package/dist/backend/backend/src/services/runtime-fallback/runtime-fallback.types.js +24 -7
  260. package/dist/backend/backend/src/services/runtime-fallback/runtime-fallback.types.js.map +1 -1
  261. package/dist/backend/backend/src/services/runtime-fallback/runtime-fallback.wiring.d.ts.map +1 -1
  262. package/dist/backend/backend/src/services/runtime-fallback/runtime-fallback.wiring.js +12 -2
  263. package/dist/backend/backend/src/services/runtime-fallback/runtime-fallback.wiring.js.map +1 -1
  264. package/dist/backend/backend/src/services/runtime-fallback/runtime-usage-probe.d.ts +7 -1
  265. package/dist/backend/backend/src/services/runtime-fallback/runtime-usage-probe.d.ts.map +1 -1
  266. package/dist/backend/backend/src/services/runtime-fallback/runtime-usage-probe.js +18 -3
  267. package/dist/backend/backend/src/services/runtime-fallback/runtime-usage-probe.js.map +1 -1
  268. package/dist/backend/backend/src/services/slack/slack-agent-dm.service.d.ts.map +1 -1
  269. package/dist/backend/backend/src/services/slack/slack-agent-dm.service.js +3 -0
  270. package/dist/backend/backend/src/services/slack/slack-agent-dm.service.js.map +1 -1
  271. package/dist/backend/backend/src/services/slack/slack-orchestrator-bridge.d.ts +10 -0
  272. package/dist/backend/backend/src/services/slack/slack-orchestrator-bridge.d.ts.map +1 -1
  273. package/dist/backend/backend/src/services/slack/slack-orchestrator-bridge.js +51 -0
  274. package/dist/backend/backend/src/services/slack/slack-orchestrator-bridge.js.map +1 -1
  275. package/dist/backend/backend/src/services/slack/slack-team-channel.service.d.ts +9 -0
  276. package/dist/backend/backend/src/services/slack/slack-team-channel.service.d.ts.map +1 -1
  277. package/dist/backend/backend/src/services/slack/slack-team-channel.service.js +46 -0
  278. package/dist/backend/backend/src/services/slack/slack-team-channel.service.js.map +1 -1
  279. package/dist/backend/backend/src/services/task-pool/completion-evidence.service.d.ts +105 -0
  280. package/dist/backend/backend/src/services/task-pool/completion-evidence.service.d.ts.map +1 -0
  281. package/dist/backend/backend/src/services/task-pool/completion-evidence.service.js +238 -0
  282. package/dist/backend/backend/src/services/task-pool/completion-evidence.service.js.map +1 -0
  283. package/dist/backend/backend/src/services/task-pool/task-pool.service.d.ts.map +1 -1
  284. package/dist/backend/backend/src/services/task-pool/task-pool.service.js +4 -0
  285. package/dist/backend/backend/src/services/task-pool/task-pool.service.js.map +1 -1
  286. package/dist/backend/backend/src/services/usage/usage-stats.service.d.ts +39 -12
  287. package/dist/backend/backend/src/services/usage/usage-stats.service.d.ts.map +1 -1
  288. package/dist/backend/backend/src/services/usage/usage-stats.service.js +61 -20
  289. package/dist/backend/backend/src/services/usage/usage-stats.service.js.map +1 -1
  290. package/dist/backend/backend/src/services/v3/agent-auto-claim.service.d.ts +2 -0
  291. package/dist/backend/backend/src/services/v3/agent-auto-claim.service.d.ts.map +1 -1
  292. package/dist/backend/backend/src/services/v3/agent-auto-claim.service.js +9 -0
  293. package/dist/backend/backend/src/services/v3/agent-auto-claim.service.js.map +1 -1
  294. package/dist/backend/backend/src/services/v3/workitem-dispatch.subscriber.d.ts +10 -0
  295. package/dist/backend/backend/src/services/v3/workitem-dispatch.subscriber.d.ts.map +1 -1
  296. package/dist/backend/backend/src/services/v3/workitem-dispatch.subscriber.js +45 -2
  297. package/dist/backend/backend/src/services/v3/workitem-dispatch.subscriber.js.map +1 -1
  298. package/dist/backend/backend/src/types/index.d.ts +12 -1
  299. package/dist/backend/backend/src/types/index.d.ts.map +1 -1
  300. package/dist/backend/backend/src/types/index.js.map +1 -1
  301. package/dist/backend/backend/src/types/messaging.types.d.ts +5 -0
  302. package/dist/backend/backend/src/types/messaging.types.d.ts.map +1 -1
  303. package/dist/backend/backend/src/types/messaging.types.js.map +1 -1
  304. package/dist/backend/backend/src/types/v2/completion-evidence.types.d.ts +77 -0
  305. package/dist/backend/backend/src/types/v2/completion-evidence.types.d.ts.map +1 -0
  306. package/dist/backend/backend/src/types/v2/completion-evidence.types.js +119 -0
  307. package/dist/backend/backend/src/types/v2/completion-evidence.types.js.map +1 -0
  308. package/dist/backend/backend/src/types/v2/work-item.types.d.ts +13 -0
  309. package/dist/backend/backend/src/types/v2/work-item.types.d.ts.map +1 -1
  310. package/dist/backend/backend/src/types/v2/work-item.types.js.map +1 -1
  311. package/dist/backend/build-info.json +2 -2
  312. package/dist/backend/config/constants.d.ts +11 -0
  313. package/dist/backend/config/constants.d.ts.map +1 -1
  314. package/dist/backend/config/constants.js +11 -0
  315. package/dist/backend/config/constants.js.map +1 -1
  316. package/dist/cli/backend/src/constants.d.ts +135 -2
  317. package/dist/cli/backend/src/constants.d.ts.map +1 -1
  318. package/dist/cli/backend/src/constants.js +136 -1
  319. package/dist/cli/backend/src/constants.js.map +1 -1
  320. package/dist/cli/backend/src/services/agent/agent-registration.service.d.ts +13 -0
  321. package/dist/cli/backend/src/services/agent/agent-registration.service.d.ts.map +1 -1
  322. package/dist/cli/backend/src/services/agent/agent-registration.service.js +28 -3
  323. package/dist/cli/backend/src/services/agent/agent-registration.service.js.map +1 -1
  324. package/dist/cli/backend/src/services/agent/control-plane-guard.service.d.ts +3 -2
  325. package/dist/cli/backend/src/services/agent/control-plane-guard.service.d.ts.map +1 -1
  326. package/dist/cli/backend/src/services/agent/control-plane-guard.service.js +14 -3
  327. package/dist/cli/backend/src/services/agent/control-plane-guard.service.js.map +1 -1
  328. package/dist/cli/backend/src/services/agent/fresh-task-conversation.service.d.ts +28 -1
  329. package/dist/cli/backend/src/services/agent/fresh-task-conversation.service.d.ts.map +1 -1
  330. package/dist/cli/backend/src/services/agent/fresh-task-conversation.service.js +48 -4
  331. package/dist/cli/backend/src/services/agent/fresh-task-conversation.service.js.map +1 -1
  332. package/dist/cli/backend/src/services/agent/oauth-relogin-monitor.service.d.ts +2 -1
  333. package/dist/cli/backend/src/services/agent/oauth-relogin-monitor.service.d.ts.map +1 -1
  334. package/dist/cli/backend/src/services/agent/oauth-relogin-monitor.service.js +17 -4
  335. package/dist/cli/backend/src/services/agent/oauth-relogin-monitor.service.js.map +1 -1
  336. package/dist/cli/backend/src/services/agent/runtime-exit-monitor.service.d.ts +14 -0
  337. package/dist/cli/backend/src/services/agent/runtime-exit-monitor.service.d.ts.map +1 -1
  338. package/dist/cli/backend/src/services/agent/runtime-exit-monitor.service.js +38 -0
  339. package/dist/cli/backend/src/services/agent/runtime-exit-monitor.service.js.map +1 -1
  340. package/dist/cli/backend/src/services/agent/runtime-session-recovery.d.ts +34 -0
  341. package/dist/cli/backend/src/services/agent/runtime-session-recovery.d.ts.map +1 -1
  342. package/dist/cli/backend/src/services/agent/runtime-session-recovery.js +49 -5
  343. package/dist/cli/backend/src/services/agent/runtime-session-recovery.js.map +1 -1
  344. package/dist/cli/backend/src/services/ai/prompt-modules/communication.module.d.ts.map +1 -1
  345. package/dist/cli/backend/src/services/ai/prompt-modules/communication.module.js +8 -1
  346. package/dist/cli/backend/src/services/ai/prompt-modules/communication.module.js.map +1 -1
  347. package/dist/cli/backend/src/services/ai/prompt-modules/lazy-anti-patterns.module.js +1 -1
  348. package/dist/cli/backend/src/services/ai/prompt-modules/lazy-anti-patterns.module.js.map +1 -1
  349. package/dist/cli/backend/src/services/chat-v2/chat-v2.dispatcher.service.d.ts +24 -0
  350. package/dist/cli/backend/src/services/chat-v2/chat-v2.dispatcher.service.d.ts.map +1 -1
  351. package/dist/cli/backend/src/services/chat-v2/chat-v2.dispatcher.service.js +52 -0
  352. package/dist/cli/backend/src/services/chat-v2/chat-v2.dispatcher.service.js.map +1 -1
  353. package/dist/cli/backend/src/services/cloud/cloud-sync.service.d.ts +74 -4
  354. package/dist/cli/backend/src/services/cloud/cloud-sync.service.d.ts.map +1 -1
  355. package/dist/cli/backend/src/services/cloud/cloud-sync.service.js +204 -56
  356. package/dist/cli/backend/src/services/cloud/cloud-sync.service.js.map +1 -1
  357. package/dist/cli/backend/src/services/cloud/cloud-sync.types.d.ts +19 -0
  358. package/dist/cli/backend/src/services/cloud/cloud-sync.types.d.ts.map +1 -1
  359. package/dist/cli/backend/src/services/cloud/cloud-sync.types.js.map +1 -1
  360. package/dist/cli/backend/src/services/harness/claude-accounts.d.ts +207 -0
  361. package/dist/cli/backend/src/services/harness/claude-accounts.d.ts.map +1 -0
  362. package/dist/cli/backend/src/services/harness/claude-accounts.js +306 -0
  363. package/dist/cli/backend/src/services/harness/claude-accounts.js.map +1 -0
  364. package/dist/cli/backend/src/services/harness/harness-credentials.store.d.ts +35 -0
  365. package/dist/cli/backend/src/services/harness/harness-credentials.store.d.ts.map +1 -1
  366. package/dist/cli/backend/src/services/harness/harness-credentials.store.js +48 -0
  367. package/dist/cli/backend/src/services/harness/harness-credentials.store.js.map +1 -1
  368. package/dist/cli/backend/src/services/harness/harness-relogin.service.d.ts +70 -1
  369. package/dist/cli/backend/src/services/harness/harness-relogin.service.d.ts.map +1 -1
  370. package/dist/cli/backend/src/services/harness/harness-relogin.service.js +156 -19
  371. package/dist/cli/backend/src/services/harness/harness-relogin.service.js.map +1 -1
  372. package/dist/cli/backend/src/services/harness/harness.types.d.ts +2 -0
  373. package/dist/cli/backend/src/services/harness/harness.types.d.ts.map +1 -1
  374. package/dist/cli/backend/src/services/harness/harness.types.js.map +1 -1
  375. package/dist/cli/backend/src/services/harness/login-broker.service.d.ts +19 -4
  376. package/dist/cli/backend/src/services/harness/login-broker.service.d.ts.map +1 -1
  377. package/dist/cli/backend/src/services/harness/login-broker.service.js +46 -7
  378. package/dist/cli/backend/src/services/harness/login-broker.service.js.map +1 -1
  379. package/dist/cli/backend/src/services/harness/owner-login-request.d.ts +18 -2
  380. package/dist/cli/backend/src/services/harness/owner-login-request.d.ts.map +1 -1
  381. package/dist/cli/backend/src/services/harness/owner-login-request.js +31 -7
  382. package/dist/cli/backend/src/services/harness/owner-login-request.js.map +1 -1
  383. package/dist/cli/backend/src/services/marketplace/marketplace-installer.service.d.ts +21 -0
  384. package/dist/cli/backend/src/services/marketplace/marketplace-installer.service.d.ts.map +1 -1
  385. package/dist/cli/backend/src/services/marketplace/marketplace-installer.service.js +39 -1
  386. package/dist/cli/backend/src/services/marketplace/marketplace-installer.service.js.map +1 -1
  387. package/dist/cli/backend/src/services/messaging/queue-processor.service.d.ts +11 -0
  388. package/dist/cli/backend/src/services/messaging/queue-processor.service.d.ts.map +1 -1
  389. package/dist/cli/backend/src/services/messaging/queue-processor.service.js +29 -0
  390. package/dist/cli/backend/src/services/messaging/queue-processor.service.js.map +1 -1
  391. package/dist/cli/backend/src/services/messaging/sub-agent-message-queue.service.d.ts +5 -0
  392. package/dist/cli/backend/src/services/messaging/sub-agent-message-queue.service.d.ts.map +1 -1
  393. package/dist/cli/backend/src/services/messaging/sub-agent-message-queue.service.js +13 -0
  394. package/dist/cli/backend/src/services/messaging/sub-agent-message-queue.service.js.map +1 -1
  395. package/dist/cli/backend/src/services/monitoring/claude-session-tokens.service.d.ts +197 -0
  396. package/dist/cli/backend/src/services/monitoring/claude-session-tokens.service.d.ts.map +1 -0
  397. package/dist/cli/backend/src/services/monitoring/claude-session-tokens.service.js +455 -0
  398. package/dist/cli/backend/src/services/monitoring/claude-session-tokens.service.js.map +1 -0
  399. package/dist/cli/backend/src/services/people/acting-for.service.d.ts +151 -0
  400. package/dist/cli/backend/src/services/people/acting-for.service.d.ts.map +1 -0
  401. package/dist/cli/backend/src/services/people/acting-for.service.js +224 -0
  402. package/dist/cli/backend/src/services/people/acting-for.service.js.map +1 -0
  403. package/dist/cli/backend/src/services/people/dedicated-agent.d.ts +89 -0
  404. package/dist/cli/backend/src/services/people/dedicated-agent.d.ts.map +1 -0
  405. package/dist/cli/backend/src/services/people/dedicated-agent.js +113 -0
  406. package/dist/cli/backend/src/services/people/dedicated-agent.js.map +1 -0
  407. package/dist/cli/backend/src/services/people/people-directory.service.d.ts +181 -0
  408. package/dist/cli/backend/src/services/people/people-directory.service.d.ts.map +1 -0
  409. package/dist/cli/backend/src/services/people/people-directory.service.js +317 -0
  410. package/dist/cli/backend/src/services/people/people-directory.service.js.map +1 -0
  411. package/dist/cli/backend/src/services/runtime-fallback/effective-runtime.d.ts +29 -1
  412. package/dist/cli/backend/src/services/runtime-fallback/effective-runtime.d.ts.map +1 -1
  413. package/dist/cli/backend/src/services/runtime-fallback/effective-runtime.js +40 -0
  414. package/dist/cli/backend/src/services/runtime-fallback/effective-runtime.js.map +1 -1
  415. package/dist/cli/backend/src/services/runtime-fallback/runtime-fallback.types.d.ts +20 -7
  416. package/dist/cli/backend/src/services/runtime-fallback/runtime-fallback.types.d.ts.map +1 -1
  417. package/dist/cli/backend/src/services/runtime-fallback/runtime-fallback.types.js +24 -7
  418. package/dist/cli/backend/src/services/runtime-fallback/runtime-fallback.types.js.map +1 -1
  419. package/dist/cli/backend/src/services/slack/slack-agent-dm.service.d.ts.map +1 -1
  420. package/dist/cli/backend/src/services/slack/slack-agent-dm.service.js +3 -0
  421. package/dist/cli/backend/src/services/slack/slack-agent-dm.service.js.map +1 -1
  422. package/dist/cli/backend/src/services/slack/slack-orchestrator-bridge.d.ts +10 -0
  423. package/dist/cli/backend/src/services/slack/slack-orchestrator-bridge.d.ts.map +1 -1
  424. package/dist/cli/backend/src/services/slack/slack-orchestrator-bridge.js +51 -0
  425. package/dist/cli/backend/src/services/slack/slack-orchestrator-bridge.js.map +1 -1
  426. package/dist/cli/backend/src/services/slack/slack-team-channel.service.d.ts +9 -0
  427. package/dist/cli/backend/src/services/slack/slack-team-channel.service.d.ts.map +1 -1
  428. package/dist/cli/backend/src/services/slack/slack-team-channel.service.js +46 -0
  429. package/dist/cli/backend/src/services/slack/slack-team-channel.service.js.map +1 -1
  430. package/dist/cli/backend/src/services/task-pool/task-pool.service.d.ts.map +1 -1
  431. package/dist/cli/backend/src/services/task-pool/task-pool.service.js +4 -0
  432. package/dist/cli/backend/src/services/task-pool/task-pool.service.js.map +1 -1
  433. package/dist/cli/backend/src/types/index.d.ts +12 -1
  434. package/dist/cli/backend/src/types/index.d.ts.map +1 -1
  435. package/dist/cli/backend/src/types/index.js.map +1 -1
  436. package/dist/cli/backend/src/types/messaging.types.d.ts +5 -0
  437. package/dist/cli/backend/src/types/messaging.types.d.ts.map +1 -1
  438. package/dist/cli/backend/src/types/messaging.types.js.map +1 -1
  439. package/dist/cli/backend/src/types/v2/work-item.types.d.ts +13 -0
  440. package/dist/cli/backend/src/types/v2/work-item.types.d.ts.map +1 -1
  441. package/dist/cli/backend/src/types/v2/work-item.types.js.map +1 -1
  442. package/dist/cli/cli/src/utils/marketplace.d.ts +21 -0
  443. package/dist/cli/cli/src/utils/marketplace.d.ts.map +1 -1
  444. package/dist/cli/cli/src/utils/marketplace.js +35 -1
  445. package/dist/cli/cli/src/utils/marketplace.js.map +1 -1
  446. package/dist/cli/config/constants.d.ts +11 -0
  447. package/dist/cli/config/constants.d.ts.map +1 -1
  448. package/dist/cli/config/constants.js +11 -0
  449. package/dist/cli/config/constants.js.map +1 -1
  450. package/dist/cli/config/skills/marketplace-registry.d.ts +4 -4
  451. package/dist/cli/config/skills/marketplace-registry.js +4 -4
  452. package/frontend/dist/assets/{index-5b7af029.js → index-465d1f8f.js} +293 -293
  453. package/frontend/dist/assets/{index-fc715ec3.css → index-5e967795.css} +1 -1
  454. package/frontend/dist/index.html +2 -2
  455. package/package.json +1 -1
  456. package/packages/crewly-agent/src/runtime/tool-registry.test.ts +45 -0
  457. package/packages/crewly-agent/src/runtime/tool-registry.ts +40 -5
  458. package/packages/crewly-agent/src/test/isolated-home.test.ts +24 -0
@@ -4,6 +4,8 @@
4
4
  * What agents can do: list task lists (and create one), list the tasks of a
5
5
  * list (open ones by default), add a task (note, due date, importance),
6
6
  * update a task (complete / reopen, retitle, re-date) and delete one.
7
+ * Tasks carry steps (Graph `checklistItems`, #835): add creates them, update
8
+ * adds / checks / unchecks / removes them, and listing shows them.
7
9
  *
8
10
  * Lists are named by id or by display name (case-insensitive); no name at
9
11
  * all means the owner's default list ("Tasks", `wellknownListName:
@@ -50,6 +52,19 @@ export interface TodoTask {
50
52
  note?: string;
51
53
  /** `YYYY-MM-DD`, completed tasks only. */
52
54
  completedAt?: string;
55
+ /** Steps in To Do order; present only when the task has any. */
56
+ steps?: TodoStep[];
57
+ }
58
+ /** One step of a task (Graph `checklistItem`). */
59
+ export interface TodoStep {
60
+ id: string;
61
+ title: string;
62
+ checked: boolean;
63
+ }
64
+ /** A step that could not be written, with Graph's reason. */
65
+ export interface TodoStepFailure {
66
+ step: string;
67
+ error: string;
53
68
  }
54
69
  /** `listTasks` input. */
55
70
  export interface TodoListTasksInput {
@@ -67,6 +82,8 @@ export interface TodoAddTaskInput {
67
82
  /** `YYYY-MM-DD` */
68
83
  due?: string;
69
84
  importance?: string;
85
+ /** Step titles to create on the new task, in order. */
86
+ steps?: string[];
70
87
  }
71
88
  /** `updateTask` input. `due: null` clears the due date. */
72
89
  export interface TodoUpdateTaskInput {
@@ -78,6 +95,14 @@ export interface TodoUpdateTaskInput {
78
95
  importance?: string;
79
96
  /** true → completed, false → reopened (notStarted). */
80
97
  complete?: boolean;
98
+ /** Step titles to append. */
99
+ addSteps?: string[];
100
+ /** Steps to tick, by id or title (case-insensitive). */
101
+ checkSteps?: string[];
102
+ /** Steps to untick, by id or title. */
103
+ uncheckSteps?: string[];
104
+ /** Steps to delete, by id or title. */
105
+ removeSteps?: string[];
81
106
  }
82
107
  /** Reference to the list an operation acted on. */
83
108
  export interface TodoListRef {
@@ -106,6 +131,12 @@ interface WireTask {
106
131
  };
107
132
  dueDateTime?: WireDateTimeTimeZone | null;
108
133
  completedDateTime?: WireDateTimeTimeZone | null;
134
+ checklistItems?: WireChecklistItem[];
135
+ }
136
+ interface WireChecklistItem {
137
+ id?: string;
138
+ displayName?: string;
139
+ isChecked?: boolean;
109
140
  }
110
141
  /**
111
142
  * Trim a Graph `todoTaskList`.
@@ -128,6 +159,31 @@ export declare function noteText(body: WireTask['body']): string | undefined;
128
159
  * @returns Trimmed task
129
160
  */
130
161
  export declare function toTask(t: WireTask): TodoTask;
162
+ /**
163
+ * Trim a Graph `checklistItem` (a task step).
164
+ *
165
+ * @param c - Wire checklist item
166
+ * @returns Trimmed step
167
+ */
168
+ export declare function toStep(c: WireChecklistItem): TodoStep;
169
+ /**
170
+ * Clean a list of step titles: trimmed, empties dropped, capped in length
171
+ * and count.
172
+ *
173
+ * @param titles - Raw titles (undefined = none)
174
+ * @returns Clean titles, in order
175
+ * @throws MicrosoftError(400, validation) when more than STEPS_MAX_PER_CALL are given
176
+ */
177
+ export declare function cleanStepTitles(titles: readonly string[] | undefined): string[];
178
+ /**
179
+ * Pick the step a reference names: exact id, then case-insensitive title.
180
+ *
181
+ * @param steps - The task's steps
182
+ * @param ref - Step id or title
183
+ * @returns The step
184
+ * @throws MicrosoftError(404, not_found) when nothing matches; (400, validation) when a title is ambiguous
185
+ */
186
+ export declare function pickStep(steps: TodoStep[], ref: string): TodoStep;
131
187
  /**
132
188
  * Validate a `YYYY-MM-DD` date and turn it into Graph's `dueDateTime`.
133
189
  *
@@ -202,25 +258,51 @@ export declare class MicrosoftTodoService {
202
258
  /**
203
259
  * `POST /me/todo/lists/{id}/tasks`.
204
260
  *
205
- * @param input - List, title, note, due, importance
206
- * @returns The list and the new task
207
- * @throws MicrosoftError(400, validation) for a missing title / bad due / bad importance
261
+ * Steps are created one by one after the task (`POST …/checklistItems`).
262
+ * A step that fails does not fail the call — the task already exists, and
263
+ * a retry would duplicate it — so it is reported in `failedSteps`.
264
+ *
265
+ * @param input - List, title, note, due, importance, steps
266
+ * @returns The list, the new task (with its steps) and any steps not created
267
+ * @throws MicrosoftError(400, validation) for a missing title / bad due / bad importance / too many steps
208
268
  */
209
269
  addTask(input: TodoAddTaskInput): Promise<{
210
270
  list: TodoListRef;
211
271
  task: TodoTask;
272
+ failedSteps?: TodoStepFailure[];
212
273
  }>;
213
274
  /**
214
275
  * `PATCH /me/todo/lists/{id}/tasks/{taskId}`.
215
276
  *
216
- * @param input - List, task id, and the fields to change
277
+ * Step changes (#835) run after the task PATCH, against the task's current
278
+ * steps: add (append), check / uncheck (`PATCH …/checklistItems/{id}`), then
279
+ * remove. Steps are named by id or title. With only step changes, the task
280
+ * itself is read, not patched. The returned task carries its steps.
281
+ *
282
+ * @param input - List, task id, the fields to change, and step changes
217
283
  * @returns The list and the updated task
218
- * @throws MicrosoftError(400, validation) when nothing is changed or a value is bad
284
+ * @throws MicrosoftError(400, validation) when nothing is changed or a value is bad; (404, not_found) for an unknown step
219
285
  */
220
286
  updateTask(input: TodoUpdateTaskInput): Promise<{
221
287
  list: TodoListRef;
222
288
  task: TodoTask;
223
289
  }>;
290
+ /**
291
+ * `GET …/tasks/{id}/checklistItems`.
292
+ *
293
+ * @param stepsUrl - The task's checklistItems URL
294
+ * @returns The task's steps in To Do order
295
+ */
296
+ private listSteps;
297
+ /**
298
+ * Create steps on a task, in order, one `POST …/checklistItems` each.
299
+ *
300
+ * @param listId - List id
301
+ * @param taskId - Task id
302
+ * @param titles - Clean step titles
303
+ * @returns The steps created and the ones that failed (with Graph's reason)
304
+ */
305
+ private createSteps;
224
306
  /**
225
307
  * `DELETE /me/todo/lists/{id}/tasks/{taskId}`.
226
308
  *
@@ -1 +1 @@
1
- {"version":3,"file":"microsoft-todo.service.d.ts","sourceRoot":"","sources":["../../../../../../backend/src/services/microsoft/microsoft-todo.service.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"microsoft-todo.service.d.ts","sourceRoot":"","sources":["../../../../../../backend/src/services/microsoft/microsoft-todo.service.ts"],"names":[],"mappings":"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"}
@@ -4,6 +4,8 @@
4
4
  * What agents can do: list task lists (and create one), list the tasks of a
5
5
  * list (open ones by default), add a task (note, due date, importance),
6
6
  * update a task (complete / reopen, retitle, re-date) and delete one.
7
+ * Tasks carry steps (Graph `checklistItems`, #835): add creates them, update
8
+ * adds / checks / unchecks / removes them, and listing shows them.
7
9
  *
8
10
  * Lists are named by id or by display name (case-insensitive); no name at
9
11
  * all means the owner's default list ("Tasks", `wellknownListName:
@@ -62,6 +64,7 @@ export function noteText(body) {
62
64
  */
63
65
  export function toTask(t) {
64
66
  const note = noteText(t.body);
67
+ const steps = (t.checklistItems ?? []).map(toStep);
65
68
  const due = t.dueDateTime?.dateTime?.slice(0, 10);
66
69
  const completedAt = t.status === 'completed' ? t.completedDateTime?.dateTime?.slice(0, 10) : undefined;
67
70
  return {
@@ -72,8 +75,54 @@ export function toTask(t) {
72
75
  ...(due ? { due } : {}),
73
76
  ...(note ? { note } : {}),
74
77
  ...(completedAt ? { completedAt } : {}),
78
+ ...(steps.length > 0 ? { steps } : {}),
75
79
  };
76
80
  }
81
+ /**
82
+ * Trim a Graph `checklistItem` (a task step).
83
+ *
84
+ * @param c - Wire checklist item
85
+ * @returns Trimmed step
86
+ */
87
+ export function toStep(c) {
88
+ return { id: c.id ?? '', title: c.displayName ?? '', checked: c.isChecked === true };
89
+ }
90
+ /**
91
+ * Clean a list of step titles: trimmed, empties dropped, capped in length
92
+ * and count.
93
+ *
94
+ * @param titles - Raw titles (undefined = none)
95
+ * @returns Clean titles, in order
96
+ * @throws MicrosoftError(400, validation) when more than STEPS_MAX_PER_CALL are given
97
+ */
98
+ export function cleanStepTitles(titles) {
99
+ const out = (titles ?? []).map((t) => String(t).trim().slice(0, MICROSOFT_TODO_CONSTANTS.TITLE_MAX_LENGTH)).filter(Boolean);
100
+ if (out.length > MICROSOFT_TODO_CONSTANTS.STEPS_MAX_PER_CALL) {
101
+ throw new MicrosoftError(400, CODES.VALIDATION, `at most ${MICROSOFT_TODO_CONSTANTS.STEPS_MAX_PER_CALL} steps per call (got ${out.length})`);
102
+ }
103
+ return out;
104
+ }
105
+ /**
106
+ * Pick the step a reference names: exact id, then case-insensitive title.
107
+ *
108
+ * @param steps - The task's steps
109
+ * @param ref - Step id or title
110
+ * @returns The step
111
+ * @throws MicrosoftError(404, not_found) when nothing matches; (400, validation) when a title is ambiguous
112
+ */
113
+ export function pickStep(steps, ref) {
114
+ const wanted = ref.trim();
115
+ const byId = steps.find((st) => st.id === wanted);
116
+ if (byId)
117
+ return byId;
118
+ const byTitle = steps.filter((st) => st.title.trim().toLowerCase() === wanted.toLowerCase());
119
+ if (byTitle.length === 1)
120
+ return byTitle[0];
121
+ if (byTitle.length > 1) {
122
+ throw new MicrosoftError(400, CODES.VALIDATION, `Several steps are called "${wanted}"; pass the step id instead (${byTitle.map((st) => st.id).join(', ')})`);
123
+ }
124
+ throw new MicrosoftError(404, CODES.NOT_FOUND, `No step called "${wanted}". Steps: ${steps.map((st) => st.title).join(', ') || '(none)'}`);
125
+ }
77
126
  /**
78
127
  * Validate a `YYYY-MM-DD` date and turn it into Graph's `dueDateTime`.
79
128
  *
@@ -201,15 +250,30 @@ export class MicrosoftTodoService {
201
250
  url.searchParams.set('$top', String(limit));
202
251
  if (!input.includeCompleted)
203
252
  url.searchParams.set('$filter', "status ne 'completed'");
204
- const data = await this.request(url.toString());
253
+ const expanded = new URL(url.toString());
254
+ expanded.searchParams.set('$expand', 'checklistItems');
255
+ let data;
256
+ try {
257
+ data = await this.request(expanded.toString());
258
+ }
259
+ catch (err) {
260
+ // Steps are extra: if Graph refuses the expand, answer as before without them.
261
+ if (!(err instanceof MicrosoftError) || err.code !== CODES.VALIDATION)
262
+ throw err;
263
+ data = await this.request(url.toString());
264
+ }
205
265
  return { list: { id: list.id, name: list.name }, tasks: (data.value ?? []).map(toTask), hasMore: Boolean(data['@odata.nextLink']) };
206
266
  }
207
267
  /**
208
268
  * `POST /me/todo/lists/{id}/tasks`.
209
269
  *
210
- * @param input - List, title, note, due, importance
211
- * @returns The list and the new task
212
- * @throws MicrosoftError(400, validation) for a missing title / bad due / bad importance
270
+ * Steps are created one by one after the task (`POST …/checklistItems`).
271
+ * A step that fails does not fail the call — the task already exists, and
272
+ * a retry would duplicate it — so it is reported in `failedSteps`.
273
+ *
274
+ * @param input - List, title, note, due, importance, steps
275
+ * @returns The list, the new task (with its steps) and any steps not created
276
+ * @throws MicrosoftError(400, validation) for a missing title / bad due / bad importance / too many steps
213
277
  */
214
278
  async addTask(input) {
215
279
  const title = (input.title ?? '').trim().slice(0, MICROSOFT_TODO_CONSTANTS.TITLE_MAX_LENGTH);
@@ -223,16 +287,29 @@ export class MicrosoftTodoService {
223
287
  body.dueDateTime = toDueDateTime(input.due);
224
288
  if (input.importance?.trim())
225
289
  body.importance = toImportance(input.importance);
290
+ const steps = cleanStepTitles(input.steps);
226
291
  const list = await this.resolveList(input.list);
227
- const task = await this.request(`${this.base}/${encodeURIComponent(list.id)}/tasks`, { method: 'POST', body });
228
- return { list: { id: list.id, name: list.name }, task: toTask(task) };
292
+ const task = toTask(await this.request(`${this.base}/${encodeURIComponent(list.id)}/tasks`, { method: 'POST', body }));
293
+ if (steps.length === 0)
294
+ return { list: { id: list.id, name: list.name }, task };
295
+ const { created, failed } = await this.createSteps(list.id, task.id, steps);
296
+ return {
297
+ list: { id: list.id, name: list.name },
298
+ task: { ...task, ...(created.length > 0 ? { steps: created } : {}) },
299
+ ...(failed.length > 0 ? { failedSteps: failed } : {}),
300
+ };
229
301
  }
230
302
  /**
231
303
  * `PATCH /me/todo/lists/{id}/tasks/{taskId}`.
232
304
  *
233
- * @param input - List, task id, and the fields to change
305
+ * Step changes (#835) run after the task PATCH, against the task's current
306
+ * steps: add (append), check / uncheck (`PATCH …/checklistItems/{id}`), then
307
+ * remove. Steps are named by id or title. With only step changes, the task
308
+ * itself is read, not patched. The returned task carries its steps.
309
+ *
310
+ * @param input - List, task id, the fields to change, and step changes
234
311
  * @returns The list and the updated task
235
- * @throws MicrosoftError(400, validation) when nothing is changed or a value is bad
312
+ * @throws MicrosoftError(400, validation) when nothing is changed or a value is bad; (404, not_found) for an unknown step
236
313
  */
237
314
  async updateTask(input) {
238
315
  const taskId = (input.taskId ?? '').trim();
@@ -255,12 +332,74 @@ export class MicrosoftTodoService {
255
332
  body.importance = toImportance(input.importance);
256
333
  if (input.complete !== undefined)
257
334
  body.status = input.complete ? 'completed' : 'notStarted';
258
- if (Object.keys(body).length === 0) {
259
- throw new MicrosoftError(400, CODES.VALIDATION, 'nothing to change: give complete, title, note, due or importance');
335
+ const addSteps = cleanStepTitles(input.addSteps);
336
+ const checkSteps = cleanStepTitles(input.checkSteps);
337
+ const uncheckSteps = cleanStepTitles(input.uncheckSteps);
338
+ const removeSteps = cleanStepTitles(input.removeSteps);
339
+ const stepChanges = addSteps.length + checkSteps.length + uncheckSteps.length + removeSteps.length;
340
+ if (Object.keys(body).length === 0 && stepChanges === 0) {
341
+ throw new MicrosoftError(400, CODES.VALIDATION, 'nothing to change: give complete, title, note, due, importance or a step change');
260
342
  }
261
343
  const list = await this.resolveList(input.list);
262
- const task = await this.request(`${this.base}/${encodeURIComponent(list.id)}/tasks/${encodeURIComponent(taskId)}`, { method: 'PATCH', body });
263
- return { list: { id: list.id, name: list.name }, task: toTask(task) };
344
+ const taskUrl = `${this.base}/${encodeURIComponent(list.id)}/tasks/${encodeURIComponent(taskId)}`;
345
+ const listRef = { id: list.id, name: list.name };
346
+ if (stepChanges === 0) {
347
+ return { list: listRef, task: toTask(await this.request(taskUrl, { method: 'PATCH', body })) };
348
+ }
349
+ const task = toTask(Object.keys(body).length > 0 ? await this.request(taskUrl, { method: 'PATCH', body }) : await this.request(taskUrl));
350
+ const stepsUrl = `${taskUrl}/checklistItems`;
351
+ const current = await this.listSteps(stepsUrl);
352
+ // Resolve every reference before writing, so a typo changes nothing.
353
+ const toCheck = checkSteps.map((ref) => pickStep(current, ref));
354
+ const toUncheck = uncheckSteps.map((ref) => pickStep(current, ref));
355
+ const toRemove = removeSteps.map((ref) => pickStep(current, ref));
356
+ for (const title of addSteps) {
357
+ await this.request(stepsUrl, { method: 'POST', body: { displayName: title } });
358
+ }
359
+ for (const st of toCheck)
360
+ await this.request(`${stepsUrl}/${encodeURIComponent(st.id)}`, { method: 'PATCH', body: { isChecked: true } });
361
+ for (const st of toUncheck)
362
+ await this.request(`${stepsUrl}/${encodeURIComponent(st.id)}`, { method: 'PATCH', body: { isChecked: false } });
363
+ for (const st of new Set(toRemove))
364
+ await this.request(`${stepsUrl}/${encodeURIComponent(st.id)}`, { method: 'DELETE' });
365
+ const steps = await this.listSteps(stepsUrl);
366
+ const updated = { ...task };
367
+ delete updated.steps;
368
+ if (steps.length > 0)
369
+ updated.steps = steps;
370
+ return { list: listRef, task: updated };
371
+ }
372
+ /**
373
+ * `GET …/tasks/{id}/checklistItems`.
374
+ *
375
+ * @param stepsUrl - The task's checklistItems URL
376
+ * @returns The task's steps in To Do order
377
+ */
378
+ async listSteps(stepsUrl) {
379
+ const data = await this.request(stepsUrl);
380
+ return (data.value ?? []).map(toStep);
381
+ }
382
+ /**
383
+ * Create steps on a task, in order, one `POST …/checklistItems` each.
384
+ *
385
+ * @param listId - List id
386
+ * @param taskId - Task id
387
+ * @param titles - Clean step titles
388
+ * @returns The steps created and the ones that failed (with Graph's reason)
389
+ */
390
+ async createSteps(listId, taskId, titles) {
391
+ const url = `${this.base}/${encodeURIComponent(listId)}/tasks/${encodeURIComponent(taskId)}/checklistItems`;
392
+ const created = [];
393
+ const failed = [];
394
+ for (const title of titles) {
395
+ try {
396
+ created.push(toStep(await this.request(url, { method: 'POST', body: { displayName: title } })));
397
+ }
398
+ catch (err) {
399
+ failed.push({ step: title, error: err instanceof Error ? err.message : String(err) });
400
+ }
401
+ }
402
+ return { created, failed };
264
403
  }
265
404
  /**
266
405
  * `DELETE /me/todo/lists/{id}/tasks/{taskId}`.
@@ -1 +1 @@
1
- {"version":3,"file":"microsoft-todo.service.js","sourceRoot":"","sources":["../../../../../../backend/src/services/microsoft/microsoft-todo.service.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"microsoft-todo.service.js","sourceRoot":"","sources":["../../../../../../backend/src/services/microsoft/microsoft-todo.service.ts"],"names":[],"mappings":"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"}
@@ -11,6 +11,7 @@
11
11
  *
12
12
  * @module services/microsoft/microsoft-token.service
13
13
  */
14
+ import { type GrantOwnership, type GrantSharing } from '../people/grant-sharing.js';
14
15
  /** The slice of the Cloud client the service needs (injectable for tests). */
15
16
  export interface MicrosoftCloudClient {
16
17
  isConnected(): boolean;
@@ -24,7 +25,7 @@ export interface MicrosoftTokenServiceDeps {
24
25
  now?: () => number;
25
26
  }
26
27
  /** `GET /api/microsoft-todo/status` payload. */
27
- export interface MicrosoftStatus {
28
+ export interface MicrosoftStatus extends GrantOwnership {
28
29
  connected: boolean;
29
30
  cloudConnected: boolean;
30
31
  microsoftUserId?: string;
@@ -61,8 +62,9 @@ export declare class MicrosoftTokenService {
61
62
  private readonly cloud;
62
63
  private readonly fetchImpl;
63
64
  private readonly nowFn;
64
- private cached;
65
- private inflight;
65
+ /** Cached token per person the call acts for (issue #968: never handed to another person) */
66
+ private readonly cached;
67
+ private readonly inflight;
66
68
  constructor(deps?: MicrosoftTokenServiceDeps);
67
69
  /**
68
70
  * Process-wide instance.
@@ -109,7 +111,18 @@ export declare class MicrosoftTokenService {
109
111
  * @returns URL to open
110
112
  * @throws MicrosoftError(401, not_logged_in) when not signed in to Cloud
111
113
  */
112
- buildConnectUrl(returnUrl: string): string;
114
+ buildConnectUrl(returnUrl: string, authorizedBy?: string): string;
115
+ /**
116
+ * Change who owns the grant and who it is shared with (issue #968). Owner
117
+ * action; Cloud stores it and enforces it on every token request.
118
+ *
119
+ * @param change - New owner and/or sharing
120
+ * @returns Ownership as Cloud now reports it
121
+ */
122
+ setSharing(change: {
123
+ authorizedBy?: string;
124
+ sharing?: GrantSharing;
125
+ }): Promise<GrantOwnership>;
113
126
  private refresh;
114
127
  private cloudRequest;
115
128
  }
@@ -1 +1 @@
1
- {"version":3,"file":"microsoft-token.service.d.ts","sourceRoot":"","sources":["../../../../../../backend/src/services/microsoft/microsoft-token.service.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;GAYG;AAMH,8EAA8E;AAC9E,MAAM,WAAW,oBAAoB;IACnC,WAAW,IAAI,OAAO,CAAC;IACvB,QAAQ,IAAI,MAAM,GAAG,IAAI,CAAC;IAC1B,WAAW,IAAI,MAAM,GAAG,IAAI,CAAC;CAC9B;AAED,gCAAgC;AAChC,MAAM,WAAW,yBAAyB;IACxC,KAAK,CAAC,EAAE,oBAAoB,CAAC;IAC7B,SAAS,CAAC,EAAE,OAAO,KAAK,CAAC;IACzB,GAAG,CAAC,EAAE,MAAM,MAAM,CAAC;CACpB;AAED,gDAAgD;AAChD,MAAM,WAAW,eAAe;IAC9B,SAAS,EAAE,OAAO,CAAC;IACnB,cAAc,EAAE,OAAO,CAAC;IACxB,eAAe,CAAC,EAAE,MAAM,CAAC;IACzB,WAAW,CAAC,EAAE,MAAM,CAAC;IACrB,KAAK,CAAC,EAAE,MAAM,CAAC;IACf,MAAM,CAAC,EAAE,MAAM,EAAE,CAAC;IAClB,SAAS,CAAC,EAAE,MAAM,CAAC;CACpB;AAoBD,oFAAoF;AACpF,qBAAa,cAAe,SAAQ,KAAK;aAErB,MAAM,EAAE,MAAM;aACd,IAAI,EAAE,MAAM;IAE5B,iEAAiE;aACjD,iBAAiB,CAAC,EAAE,MAAM;gBAJ1B,MAAM,EAAE,MAAM,EACd,IAAI,EAAE,MAAM,EAC5B,OAAO,EAAE,MAAM;IACf,iEAAiE;IACjD,iBAAiB,CAAC,EAAE,MAAM,YAAA;CAK7C;AAED;;;;;;;GAOG;AACH,wBAAgB,eAAe,CAAC,UAAU,EAAE,MAAM,EAAE,IAAI,EAAE,MAAM,GAAG,SAAS,EAAE,OAAO,EAAE,MAAM,GAAG,SAAS,GAAG,cAAc,CAezH;AAED;;GAEG;AACH,qBAAa,qBAAqB;IAChC,OAAO,CAAC,MAAM,CAAC,QAAQ,CAAsC;IAC7D,OAAO,CAAC,QAAQ,CAAC,MAAM,CAAkB;IACzC,OAAO,CAAC,QAAQ,CAAC,KAAK,CAAuB;IAC7C,OAAO,CAAC,QAAQ,CAAC,SAAS,CAAe;IACzC,OAAO,CAAC,QAAQ,CAAC,KAAK,CAAe;IACrC,OAAO,CAAC,MAAM,CAA6D;IAC3E,OAAO,CAAC,QAAQ,CAAgC;gBAEpC,IAAI,GAAE,yBAA8B;IAOhD;;;;OAIG;IACH,MAAM,CAAC,WAAW,IAAI,qBAAqB;IAK3C,mCAAmC;IACnC,MAAM,CAAC,aAAa,IAAI,IAAI;IAI5B;;;;OAIG;IACH,gBAAgB,IAAI,OAAO;IAI3B;;;;;OAKG;IACG,cAAc,IAAI,OAAO,CAAC,MAAM,CAAC;IASvC,mEAAmE;IACnE,UAAU,IAAI,IAAI;IAIlB;;;;;OAKG;IACG,MAAM,IAAI,OAAO,CAAC,eAAe,CAAC;IAuBxC;;;;OAIG;IACG,UAAU,IAAI,OAAO,CAAC;QAAE,OAAO,EAAE,OAAO,CAAA;KAAE,CAAC;IAMjD;;;;;;OAMG;IACH,eAAe,CAAC,SAAS,EAAE,MAAM,GAAG,MAAM;YAY5B,OAAO;YAcP,YAAY;CA2B3B"}
1
+ {"version":3,"file":"microsoft-token.service.d.ts","sourceRoot":"","sources":["../../../../../../backend/src/services/microsoft/microsoft-token.service.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;GAYG;AAIH,OAAO,EAAyC,KAAK,cAAc,EAAE,KAAK,YAAY,EAAE,MAAM,4BAA4B,CAAC;AAK3H,8EAA8E;AAC9E,MAAM,WAAW,oBAAoB;IACnC,WAAW,IAAI,OAAO,CAAC;IACvB,QAAQ,IAAI,MAAM,GAAG,IAAI,CAAC;IAC1B,WAAW,IAAI,MAAM,GAAG,IAAI,CAAC;CAC9B;AAED,gCAAgC;AAChC,MAAM,WAAW,yBAAyB;IACxC,KAAK,CAAC,EAAE,oBAAoB,CAAC;IAC7B,SAAS,CAAC,EAAE,OAAO,KAAK,CAAC;IACzB,GAAG,CAAC,EAAE,MAAM,MAAM,CAAC;CACpB;AAED,gDAAgD;AAChD,MAAM,WAAW,eAAgB,SAAQ,cAAc;IACrD,SAAS,EAAE,OAAO,CAAC;IACnB,cAAc,EAAE,OAAO,CAAC;IACxB,eAAe,CAAC,EAAE,MAAM,CAAC;IACzB,WAAW,CAAC,EAAE,MAAM,CAAC;IACrB,KAAK,CAAC,EAAE,MAAM,CAAC;IACf,MAAM,CAAC,EAAE,MAAM,EAAE,CAAC;IAClB,SAAS,CAAC,EAAE,MAAM,CAAC;CACpB;AAoBD,oFAAoF;AACpF,qBAAa,cAAe,SAAQ,KAAK;aAErB,MAAM,EAAE,MAAM;aACd,IAAI,EAAE,MAAM;IAE5B,iEAAiE;aACjD,iBAAiB,CAAC,EAAE,MAAM;gBAJ1B,MAAM,EAAE,MAAM,EACd,IAAI,EAAE,MAAM,EAC5B,OAAO,EAAE,MAAM;IACf,iEAAiE;IACjD,iBAAiB,CAAC,EAAE,MAAM,YAAA;CAK7C;AAED;;;;;;;GAOG;AACH,wBAAgB,eAAe,CAAC,UAAU,EAAE,MAAM,EAAE,IAAI,EAAE,MAAM,GAAG,SAAS,EAAE,OAAO,EAAE,MAAM,GAAG,SAAS,GAAG,cAAc,CAezH;AAED;;GAEG;AACH,qBAAa,qBAAqB;IAChC,OAAO,CAAC,MAAM,CAAC,QAAQ,CAAsC;IAC7D,OAAO,CAAC,QAAQ,CAAC,MAAM,CAAkB;IACzC,OAAO,CAAC,QAAQ,CAAC,KAAK,CAAuB;IAC7C,OAAO,CAAC,QAAQ,CAAC,SAAS,CAAe;IACzC,OAAO,CAAC,QAAQ,CAAC,KAAK,CAAe;IACrC,6FAA6F;IAC7F,OAAO,CAAC,QAAQ,CAAC,MAAM,CAAmE;IAC1F,OAAO,CAAC,QAAQ,CAAC,QAAQ,CAAsC;gBAEnD,IAAI,GAAE,yBAA8B;IAOhD;;;;OAIG;IACH,MAAM,CAAC,WAAW,IAAI,qBAAqB;IAK3C,mCAAmC;IACnC,MAAM,CAAC,aAAa,IAAI,IAAI;IAI5B;;;;OAIG;IACH,gBAAgB,IAAI,OAAO;IAI3B;;;;;OAKG;IACG,cAAc,IAAI,OAAO,CAAC,MAAM,CAAC;IAWvC,mEAAmE;IACnE,UAAU,IAAI,IAAI;IAIlB;;;;;OAKG;IACG,MAAM,IAAI,OAAO,CAAC,eAAe,CAAC;IAyBxC;;;;OAIG;IACG,UAAU,IAAI,OAAO,CAAC;QAAE,OAAO,EAAE,OAAO,CAAA;KAAE,CAAC;IAMjD;;;;;;OAMG;IACH,eAAe,CAAC,SAAS,EAAE,MAAM,EAAE,YAAY,CAAC,EAAE,MAAM,GAAG,MAAM;IAcjE;;;;;;OAMG;IACG,UAAU,CAAC,MAAM,EAAE;QAAE,YAAY,CAAC,EAAE,MAAM,CAAC;QAAC,OAAO,CAAC,EAAE,YAAY,CAAA;KAAE,GAAG,OAAO,CAAC,cAAc,CAAC;YAMtF,OAAO;YAcP,YAAY;CA+B3B"}