agent-tower 0.4.16-beta.0 → 0.4.16-beta.3

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 (211) hide show
  1. package/dist/app.test.js +2 -0
  2. package/dist/app.test.js.map +1 -1
  3. package/dist/git/git-cli.d.ts +18 -1
  4. package/dist/git/git-cli.d.ts.map +1 -1
  5. package/dist/git/git-cli.js +17 -1
  6. package/dist/git/git-cli.js.map +1 -1
  7. package/dist/git/worktree.manager.d.ts +29 -2
  8. package/dist/git/worktree.manager.d.ts.map +1 -1
  9. package/dist/git/worktree.manager.js +137 -16
  10. package/dist/git/worktree.manager.js.map +1 -1
  11. package/dist/git/worktree.manager.test.d.ts +2 -0
  12. package/dist/git/worktree.manager.test.d.ts.map +1 -0
  13. package/dist/git/worktree.manager.test.js +104 -0
  14. package/dist/git/worktree.manager.test.js.map +1 -0
  15. package/dist/mcp/http-client.d.ts.map +1 -1
  16. package/dist/mcp/http-client.js +8 -1
  17. package/dist/mcp/http-client.js.map +1 -1
  18. package/dist/middleware/tunnel-auth.d.ts.map +1 -1
  19. package/dist/middleware/tunnel-auth.js +2 -0
  20. package/dist/middleware/tunnel-auth.js.map +1 -1
  21. package/dist/output/__tests__/codex-parser.test.d.ts +2 -0
  22. package/dist/output/__tests__/codex-parser.test.d.ts.map +1 -0
  23. package/dist/output/__tests__/codex-parser.test.js +148 -0
  24. package/dist/output/__tests__/codex-parser.test.js.map +1 -0
  25. package/dist/output/codex-parser.d.ts +12 -0
  26. package/dist/output/codex-parser.d.ts.map +1 -1
  27. package/dist/output/codex-parser.js +129 -12
  28. package/dist/output/codex-parser.js.map +1 -1
  29. package/dist/routes/__tests__/attachments.test.d.ts +2 -0
  30. package/dist/routes/__tests__/attachments.test.d.ts.map +1 -0
  31. package/dist/routes/__tests__/attachments.test.js +86 -0
  32. package/dist/routes/__tests__/attachments.test.js.map +1 -0
  33. package/dist/routes/__tests__/filesystem.test.d.ts +2 -0
  34. package/dist/routes/__tests__/filesystem.test.d.ts.map +1 -0
  35. package/dist/routes/__tests__/filesystem.test.js +80 -0
  36. package/dist/routes/__tests__/filesystem.test.js.map +1 -0
  37. package/dist/routes/__tests__/previews.test.d.ts +2 -0
  38. package/dist/routes/__tests__/previews.test.d.ts.map +1 -0
  39. package/dist/routes/__tests__/previews.test.js +89 -0
  40. package/dist/routes/__tests__/previews.test.js.map +1 -0
  41. package/dist/routes/__tests__/tasks.test.d.ts +2 -0
  42. package/dist/routes/__tests__/tasks.test.d.ts.map +1 -0
  43. package/dist/routes/__tests__/tasks.test.js +72 -0
  44. package/dist/routes/__tests__/tasks.test.js.map +1 -0
  45. package/dist/routes/attachments.d.ts.map +1 -1
  46. package/dist/routes/attachments.js +36 -16
  47. package/dist/routes/attachments.js.map +1 -1
  48. package/dist/routes/filesystem.d.ts.map +1 -1
  49. package/dist/routes/filesystem.js +24 -3
  50. package/dist/routes/filesystem.js.map +1 -1
  51. package/dist/routes/index.d.ts.map +1 -1
  52. package/dist/routes/index.js +3 -0
  53. package/dist/routes/index.js.map +1 -1
  54. package/dist/routes/previews.d.ts +6 -0
  55. package/dist/routes/previews.d.ts.map +1 -0
  56. package/dist/routes/previews.js +413 -0
  57. package/dist/routes/previews.js.map +1 -0
  58. package/dist/routes/projects.d.ts.map +1 -1
  59. package/dist/routes/projects.js +1 -0
  60. package/dist/routes/projects.js.map +1 -1
  61. package/dist/routes/tasks.js +2 -2
  62. package/dist/routes/tasks.js.map +1 -1
  63. package/dist/routes/team-runs.d.ts.map +1 -1
  64. package/dist/routes/team-runs.js +18 -8
  65. package/dist/routes/team-runs.js.map +1 -1
  66. package/dist/routes/tunnel.d.ts.map +1 -1
  67. package/dist/routes/tunnel.js +20 -0
  68. package/dist/routes/tunnel.js.map +1 -1
  69. package/dist/routes/workspaces.d.ts.map +1 -1
  70. package/dist/routes/workspaces.js +15 -1
  71. package/dist/routes/workspaces.js.map +1 -1
  72. package/dist/services/__tests__/preview.service.test.d.ts +2 -0
  73. package/dist/services/__tests__/preview.service.test.d.ts.map +1 -0
  74. package/dist/services/__tests__/preview.service.test.js +29 -0
  75. package/dist/services/__tests__/preview.service.test.js.map +1 -0
  76. package/dist/services/__tests__/task.service.test.d.ts +2 -0
  77. package/dist/services/__tests__/task.service.test.d.ts.map +1 -0
  78. package/dist/services/__tests__/task.service.test.js +65 -0
  79. package/dist/services/__tests__/task.service.test.js.map +1 -0
  80. package/dist/services/__tests__/team-reconciler.service.test.js +525 -27
  81. package/dist/services/__tests__/team-reconciler.service.test.js.map +1 -1
  82. package/dist/services/__tests__/team-run.service.test.js +252 -0
  83. package/dist/services/__tests__/team-run.service.test.js.map +1 -1
  84. package/dist/services/__tests__/team-scheduler.service.test.js +551 -21
  85. package/dist/services/__tests__/team-scheduler.service.test.js.map +1 -1
  86. package/dist/services/__tests__/tunnel.service.test.d.ts +2 -0
  87. package/dist/services/__tests__/tunnel.service.test.d.ts.map +1 -0
  88. package/dist/services/__tests__/tunnel.service.test.js +138 -0
  89. package/dist/services/__tests__/tunnel.service.test.js.map +1 -0
  90. package/dist/services/__tests__/workspace.service.test.d.ts +2 -0
  91. package/dist/services/__tests__/workspace.service.test.d.ts.map +1 -0
  92. package/dist/services/__tests__/workspace.service.test.js +695 -0
  93. package/dist/services/__tests__/workspace.service.test.js.map +1 -0
  94. package/dist/services/attachment-context.d.ts +3 -0
  95. package/dist/services/attachment-context.d.ts.map +1 -0
  96. package/dist/services/attachment-context.js +34 -0
  97. package/dist/services/attachment-context.js.map +1 -0
  98. package/dist/services/preview.service.d.ts +19 -0
  99. package/dist/services/preview.service.d.ts.map +1 -0
  100. package/dist/services/preview.service.js +147 -0
  101. package/dist/services/preview.service.js.map +1 -0
  102. package/dist/services/project.service.d.ts +2 -0
  103. package/dist/services/project.service.d.ts.map +1 -1
  104. package/dist/services/project.service.js +87 -18
  105. package/dist/services/project.service.js.map +1 -1
  106. package/dist/services/session-manager.d.ts +12 -0
  107. package/dist/services/session-manager.d.ts.map +1 -1
  108. package/dist/services/task.service.d.ts +6 -0
  109. package/dist/services/task.service.d.ts.map +1 -1
  110. package/dist/services/task.service.js +15 -3
  111. package/dist/services/task.service.js.map +1 -1
  112. package/dist/services/team-lock.service.d.ts +3 -0
  113. package/dist/services/team-lock.service.d.ts.map +1 -1
  114. package/dist/services/team-lock.service.js +11 -0
  115. package/dist/services/team-lock.service.js.map +1 -1
  116. package/dist/services/team-run.service.d.ts +3 -0
  117. package/dist/services/team-run.service.d.ts.map +1 -1
  118. package/dist/services/team-run.service.js +288 -30
  119. package/dist/services/team-run.service.js.map +1 -1
  120. package/dist/services/team-scheduler.service.d.ts +15 -0
  121. package/dist/services/team-scheduler.service.d.ts.map +1 -1
  122. package/dist/services/team-scheduler.service.js +125 -32
  123. package/dist/services/team-scheduler.service.js.map +1 -1
  124. package/dist/services/tunnel.service.d.ts +31 -5
  125. package/dist/services/tunnel.service.d.ts.map +1 -1
  126. package/dist/services/tunnel.service.js +293 -32
  127. package/dist/services/tunnel.service.js.map +1 -1
  128. package/dist/services/workspace.service.d.ts +161 -7
  129. package/dist/services/workspace.service.d.ts.map +1 -1
  130. package/dist/services/workspace.service.js +396 -51
  131. package/dist/services/workspace.service.js.map +1 -1
  132. package/dist/web/assets/{AgentDemoPage-p9YI4_l4.js → AgentDemoPage-Bf6labVB.js} +1 -1
  133. package/dist/web/assets/{DemoPage-B5DTSEbS.js → DemoPage-DlfG47rV.js} +1 -1
  134. package/dist/web/assets/{GeneralSettingsPage-Cspr7Vol.js → GeneralSettingsPage-DefqwzVn.js} +1 -1
  135. package/dist/web/assets/MemberAvatar-DVw_TedB.js +1 -0
  136. package/dist/web/assets/NotificationSettingsPage-C9h1U1Za.js +1 -0
  137. package/dist/web/assets/{ProfileSettingsPage-CNugU40a.js → ProfileSettingsPage-BkZE2yVP.js} +1 -1
  138. package/dist/web/assets/ProjectKanbanPage-B1Ckl1uY.js +89 -0
  139. package/dist/web/assets/ProjectSettingsPage-ByZ13awb.js +2 -0
  140. package/dist/web/assets/{ProviderSettingsPage-D_KWkgRM.js → ProviderSettingsPage-DSQYe8B6.js} +12 -12
  141. package/dist/web/assets/TeamSettingsPage-DUukJ_Ih.js +1 -0
  142. package/dist/web/assets/agent-tower-logo-COx9gy77.png +0 -0
  143. package/dist/web/assets/{button-B6JaSbDB.js → button-Bpm98eOV.js} +1 -1
  144. package/dist/web/assets/{chevron-down-CACy4UFq.js → chevron-down-DSKKXCi8.js} +1 -1
  145. package/dist/web/assets/{chevron-right-DFWfnDJY.js → chevron-right-CZdDV9GU.js} +1 -1
  146. package/dist/web/assets/{chevron-up-CGlf6jzw.js → chevron-up-gnnlwvYe.js} +1 -1
  147. package/dist/web/assets/{circle-check-DMK8auwb.js → circle-check-DeD_VuLK.js} +1 -1
  148. package/dist/web/assets/{code-block-OCS4YCEC-Hn75KHRK.js → code-block-OCS4YCEC-BrGjkdjS.js} +1 -1
  149. package/dist/web/assets/{confirm-dialog-DHI2f7Ni.js → confirm-dialog-CEVVvAcE.js} +1 -1
  150. package/dist/web/assets/folder-picker-ZBQlFEWL.js +1 -0
  151. package/dist/web/assets/{index-BFAA3PTl.js → index-B5g4V0NU.js} +6 -6
  152. package/dist/web/assets/index-ltjI8o6A.css +1 -0
  153. package/dist/web/assets/loader-circle-GMfBClX0.js +1 -0
  154. package/dist/web/assets/{log-adapter-CeKrvZcz.js → log-adapter-DKKM3sxS.js} +1 -1
  155. package/dist/web/assets/{mermaid-NOHMQCX5-DJFgrXPd.js → mermaid-NOHMQCX5-D5USvUiZ.js} +4 -4
  156. package/dist/web/assets/{modal-B5IRN7QI.js → modal-JMpuh-LG.js} +1 -1
  157. package/dist/web/assets/{pencil-CJY6Ahn7.js → pencil-QrCW47nn.js} +1 -1
  158. package/dist/web/assets/{select-BPZZlla1.js → select-CINRzLiE.js} +1 -1
  159. package/dist/web/assets/upload-vFxZxKHo.js +1 -0
  160. package/dist/web/assets/{use-profiles-C2k04ICZ.js → use-profiles-SrVWPYv0.js} +1 -1
  161. package/dist/web/assets/{use-providers-C7fIDWzP.js → use-providers-BihMydl0.js} +1 -1
  162. package/dist/web/avatars/presets/avatar-preset-01-developer.png +0 -0
  163. package/dist/web/avatars/presets/avatar-preset-02-architect.png +0 -0
  164. package/dist/web/avatars/presets/avatar-preset-03-tester.png +0 -0
  165. package/dist/web/avatars/presets/avatar-preset-04-devops.png +0 -0
  166. package/dist/web/avatars/presets/avatar-preset-05-data-scientist.png +0 -0
  167. package/dist/web/avatars/presets/avatar-preset-06-frontend.png +0 -0
  168. package/dist/web/avatars/presets/avatar-preset-07-backend.png +0 -0
  169. package/dist/web/avatars/presets/avatar-preset-08-security.png +0 -0
  170. package/dist/web/avatars/presets/avatar-preset-09-project-manager.png +0 -0
  171. package/dist/web/avatars/presets/avatar-preset-10-product-manager.png +0 -0
  172. package/dist/web/avatars/presets/avatar-preset-11-scrum-master.png +0 -0
  173. package/dist/web/avatars/presets/avatar-preset-12-tech-lead.png +0 -0
  174. package/dist/web/avatars/presets/avatar-preset-13-coordinator.png +0 -0
  175. package/dist/web/avatars/presets/avatar-preset-14-mentor.png +0 -0
  176. package/dist/web/avatars/presets/avatar-preset-15-reviewer.png +0 -0
  177. package/dist/web/avatars/presets/avatar-preset-16-ui-designer.png +0 -0
  178. package/dist/web/avatars/presets/avatar-preset-17-ux-researcher.png +0 -0
  179. package/dist/web/avatars/presets/avatar-preset-18-documenter.png +0 -0
  180. package/dist/web/avatars/presets/avatar-preset-19-translator.png +0 -0
  181. package/dist/web/avatars/presets/avatar-preset-20-analyst.png +0 -0
  182. package/dist/web/avatars/presets/avatar-preset-21-consultant.png +0 -0
  183. package/dist/web/avatars/presets/avatar-preset-22-creative-director.png +0 -0
  184. package/dist/web/avatars/presets/avatar-preset-23-support.png +0 -0
  185. package/dist/web/avatars/presets/avatar-preset-24-assistant.png +0 -0
  186. package/dist/web/avatars/presets/avatar-preset-25-robot.png +0 -0
  187. package/dist/web/avatars/presets/avatar-preset-grid.png +0 -0
  188. package/dist/web/index.html +2 -2
  189. package/node_modules/@agent-tower/shared/dist/types.d.ts +9 -1
  190. package/node_modules/@agent-tower/shared/dist/types.d.ts.map +1 -1
  191. package/node_modules/@agent-tower/shared/dist/types.js.map +1 -1
  192. package/node_modules/@prisma/client/.prisma/client/edge.js +9 -5
  193. package/node_modules/@prisma/client/.prisma/client/index-browser.js +4 -0
  194. package/node_modules/@prisma/client/.prisma/client/index.d.ts +1242 -14
  195. package/node_modules/@prisma/client/.prisma/client/index.js +9 -5
  196. package/node_modules/@prisma/client/.prisma/client/package.json +1 -1
  197. package/node_modules/@prisma/client/.prisma/client/schema.prisma +47 -31
  198. package/node_modules/@prisma/client/.prisma/client/wasm.js +4 -0
  199. package/package.json +1 -1
  200. package/prisma/migrations/20260515000000_add_workspace_preview_target/migration.sql +2 -0
  201. package/prisma/migrations/20260526000000_add_team_run_main_and_dedicated_workspaces/migration.sql +21 -0
  202. package/prisma/schema.prisma +27 -11
  203. package/dist/web/assets/NotificationSettingsPage-C9VfrRr-.js +0 -1
  204. package/dist/web/assets/ProjectKanbanPage-CkGNuqxq.js +0 -87
  205. package/dist/web/assets/ProjectSettingsPage-f1dg0XMf.js +0 -2
  206. package/dist/web/assets/TeamSettingsPage-B6WciZyi.js +0 -1
  207. package/dist/web/assets/circle-alert-BSAUEd9O.js +0 -1
  208. package/dist/web/assets/folder-picker-CtQkbWfa.js +0 -1
  209. package/dist/web/assets/index-mBCb67dB.css +0 -1
  210. package/dist/web/assets/loader-circle-CkDnf8ST.js +0 -1
  211. package/dist/web/assets/use-projects-BxuE-ulT.js +0 -1
@@ -1,6 +1,6 @@
1
1
  import { prisma } from '../utils/index.js';
2
2
  import { TaskStatus, SessionStatus, SessionPurpose, WorkspaceStatus } from '../types/index.js';
3
- import { NotFoundError, InvalidStateTransitionError, } from '../errors.js';
3
+ import { NotFoundError, ValidationError, InvalidStateTransitionError, } from '../errors.js';
4
4
  import { WorktreeManager } from '../git/worktree.manager.js';
5
5
  import { ensureProjectIsMutable } from './project-guards.js';
6
6
  /**
@@ -14,6 +14,13 @@ const VALID_TRANSITIONS = {
14
14
  [TaskStatus.DONE]: [TaskStatus.TODO, TaskStatus.IN_PROGRESS, TaskStatus.IN_REVIEW, TaskStatus.CANCELLED],
15
15
  [TaskStatus.CANCELLED]: [TaskStatus.TODO, TaskStatus.IN_PROGRESS, TaskStatus.IN_REVIEW, TaskStatus.DONE],
16
16
  };
17
+ function normalizeTaskTitle(title) {
18
+ const normalized = title.trim();
19
+ if (normalized.length === 0) {
20
+ throw new ValidationError('Task title is required');
21
+ }
22
+ return normalized;
23
+ }
17
24
  export class TaskService {
18
25
  eventBus;
19
26
  sessionManager;
@@ -92,6 +99,7 @@ export class TaskService {
92
99
  * - 自动计算 position(同状态下最大 position + 1)
93
100
  */
94
101
  async create(projectId, input) {
102
+ const title = normalizeTaskTitle(input.title);
95
103
  // 校验项目存在
96
104
  const project = await prisma.project.findUnique({
97
105
  where: { id: projectId },
@@ -107,7 +115,7 @@ export class TaskService {
107
115
  });
108
116
  return prisma.task.create({
109
117
  data: {
110
- title: input.title,
118
+ title,
111
119
  description: input.description,
112
120
  priority: input.priority ?? 0,
113
121
  position: (maxPosition._max.position ?? 0) + 1,
@@ -119,6 +127,10 @@ export class TaskService {
119
127
  * 更新任务基本信息
120
128
  */
121
129
  async update(id, input) {
130
+ const normalizedInput = {
131
+ ...input,
132
+ ...(input.title !== undefined ? { title: normalizeTaskTitle(input.title) } : {}),
133
+ };
122
134
  const task = await prisma.task.findUnique({
123
135
  where: { id },
124
136
  include: { project: true },
@@ -129,7 +141,7 @@ export class TaskService {
129
141
  ensureProjectIsMutable(task.project, 'update tasks');
130
142
  return prisma.task.update({
131
143
  where: { id },
132
- data: input,
144
+ data: normalizedInput,
133
145
  });
134
146
  }
135
147
  /**
@@ -1 +1 @@
1
- {"version":3,"file":"task.service.js","sourceRoot":"","sources":["../../src/services/task.service.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"task.service.js","sourceRoot":"","sources":["../../src/services/task.service.ts"],"names":[],"mappings":"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"}
@@ -16,7 +16,10 @@ export declare class TeamLockService {
16
16
  getRequiredLocks(request: LockRequest): string[];
17
17
  canAcquire(lockKeys: string[]): boolean;
18
18
  acquire(ownerId: string, lockKeys: string[]): boolean;
19
+ isHeldBy(ownerId: string, lockKey: string): boolean;
20
+ release(ownerId: string, lockKeys: string[]): void;
19
21
  releaseByOwner(ownerId: string): void;
20
22
  listLocks(): HeldLock[];
21
23
  }
24
+ export declare const defaultTeamLockService: TeamLockService;
22
25
  //# sourceMappingURL=team-lock.service.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"team-lock.service.d.ts","sourceRoot":"","sources":["../../src/services/team-lock.service.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,sBAAsB,EAAE,eAAe,EAAE,MAAM,qBAAqB,CAAC;AAEnF,MAAM,WAAW,WAAW;IAC1B,SAAS,EAAE,MAAM,CAAC;IAClB,QAAQ,EAAE,MAAM,CAAC;IACjB,WAAW,CAAC,EAAE,MAAM,GAAG,IAAI,CAAC;IAC5B,SAAS,CAAC,EAAE,MAAM,GAAG,IAAI,CAAC;IAC1B,YAAY,EAAE,sBAAsB,CAAC;IACrC,eAAe,EAAE,eAAe,CAAC;CAClC;AAED,MAAM,WAAW,QAAQ;IACvB,GAAG,EAAE,MAAM,CAAC;IACZ,OAAO,EAAE,MAAM,CAAC;CACjB;AAED,qBAAa,eAAe;IAC1B,OAAO,CAAC,QAAQ,CAAC,KAAK,CAA6B;IAEnD,gBAAgB,CAAC,OAAO,EAAE,WAAW,GAAG,MAAM,EAAE;IAmBhD,UAAU,CAAC,QAAQ,EAAE,MAAM,EAAE,GAAG,OAAO;IAIvC,OAAO,CAAC,OAAO,EAAE,MAAM,EAAE,QAAQ,EAAE,MAAM,EAAE,GAAG,OAAO;IAkBrD,cAAc,CAAC,OAAO,EAAE,MAAM,GAAG,IAAI;IAQrC,SAAS,IAAI,QAAQ,EAAE;CAGxB"}
1
+ {"version":3,"file":"team-lock.service.d.ts","sourceRoot":"","sources":["../../src/services/team-lock.service.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,sBAAsB,EAAE,eAAe,EAAE,MAAM,qBAAqB,CAAC;AAEnF,MAAM,WAAW,WAAW;IAC1B,SAAS,EAAE,MAAM,CAAC;IAClB,QAAQ,EAAE,MAAM,CAAC;IACjB,WAAW,CAAC,EAAE,MAAM,GAAG,IAAI,CAAC;IAC5B,SAAS,CAAC,EAAE,MAAM,GAAG,IAAI,CAAC;IAC1B,YAAY,EAAE,sBAAsB,CAAC;IACrC,eAAe,EAAE,eAAe,CAAC;CAClC;AAED,MAAM,WAAW,QAAQ;IACvB,GAAG,EAAE,MAAM,CAAC;IACZ,OAAO,EAAE,MAAM,CAAC;CACjB;AAED,qBAAa,eAAe;IAC1B,OAAO,CAAC,QAAQ,CAAC,KAAK,CAA6B;IAEnD,gBAAgB,CAAC,OAAO,EAAE,WAAW,GAAG,MAAM,EAAE;IAmBhD,UAAU,CAAC,QAAQ,EAAE,MAAM,EAAE,GAAG,OAAO;IAIvC,OAAO,CAAC,OAAO,EAAE,MAAM,EAAE,QAAQ,EAAE,MAAM,EAAE,GAAG,OAAO;IAkBrD,QAAQ,CAAC,OAAO,EAAE,MAAM,EAAE,OAAO,EAAE,MAAM,GAAG,OAAO;IAInD,OAAO,CAAC,OAAO,EAAE,MAAM,EAAE,QAAQ,EAAE,MAAM,EAAE,GAAG,IAAI;IAQlD,cAAc,CAAC,OAAO,EAAE,MAAM,GAAG,IAAI;IAQrC,SAAS,IAAI,QAAQ,EAAE;CAGxB;AAED,eAAO,MAAM,sBAAsB,iBAAwB,CAAC"}
@@ -31,6 +31,16 @@ export class TeamLockService {
31
31
  }
32
32
  return true;
33
33
  }
34
+ isHeldBy(ownerId, lockKey) {
35
+ return this.locks.get(lockKey) === ownerId;
36
+ }
37
+ release(ownerId, lockKeys) {
38
+ for (const key of lockKeys) {
39
+ if (this.locks.get(key) === ownerId) {
40
+ this.locks.delete(key);
41
+ }
42
+ }
43
+ }
34
44
  releaseByOwner(ownerId) {
35
45
  for (const [key, currentOwnerId] of this.locks) {
36
46
  if (currentOwnerId === ownerId) {
@@ -42,4 +52,5 @@ export class TeamLockService {
42
52
  return [...this.locks.entries()].map(([key, ownerId]) => ({ key, ownerId }));
43
53
  }
44
54
  }
55
+ export const defaultTeamLockService = new TeamLockService();
45
56
  //# sourceMappingURL=team-lock.service.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"team-lock.service.js","sourceRoot":"","sources":["../../src/services/team-lock.service.ts"],"names":[],"mappings":"AAgBA,MAAM,OAAO,eAAe;IACT,KAAK,GAAG,IAAI,GAAG,EAAkB,CAAC;IAEnD,gBAAgB,CAAC,OAAoB;QACnC,MAAM,QAAQ,GAAG,IAAI,GAAG,EAAU,CAAC;QACnC,MAAM,kBAAkB,GAAG,OAAO,CAAC,eAAe,KAAK,QAAQ,IAAI,OAAO,CAAC,WAAW,IAAI,IAAI,CAAC;QAE/F,IAAI,kBAAkB,IAAI,OAAO,CAAC,YAAY,CAAC,UAAU,EAAE,CAAC;YAC1D,QAAQ,CAAC,GAAG,CAAC,aAAa,OAAO,CAAC,WAAW,QAAQ,CAAC,CAAC;QACzD,CAAC;QAED,IAAI,kBAAkB,IAAI,OAAO,CAAC,YAAY,CAAC,WAAW,EAAE,CAAC;YAC3D,QAAQ,CAAC,GAAG,CAAC,aAAa,OAAO,CAAC,WAAW,UAAU,CAAC,CAAC;QAC3D,CAAC;QAED,IAAI,OAAO,CAAC,YAAY,CAAC,cAAc,IAAI,OAAO,CAAC,SAAS,IAAI,IAAI,EAAE,CAAC;YACrE,QAAQ,CAAC,GAAG,CAAC,WAAW,OAAO,CAAC,SAAS,QAAQ,CAAC,CAAC;QACrD,CAAC;QAED,OAAO,CAAC,GAAG,QAAQ,CAAC,CAAC;IACvB,CAAC;IAED,UAAU,CAAC,QAAkB;QAC3B,OAAO,QAAQ,CAAC,KAAK,CAAC,CAAC,GAAG,EAAE,EAAE,CAAC,CAAC,IAAI,CAAC,KAAK,CAAC,GAAG,CAAC,GAAG,CAAC,CAAC,CAAC;IACvD,CAAC;IAED,OAAO,CAAC,OAAe,EAAE,QAAkB;QACzC,MAAM,UAAU,GAAG,CAAC,GAAG,IAAI,GAAG,CAAC,QAAQ,CAAC,CAAC,CAAC;QAC1C,MAAM,aAAa,GAAG,UAAU,CAAC,KAAK,CAAC,CAAC,GAAG,EAAE,EAAE;YAC7C,MAAM,cAAc,GAAG,IAAI,CAAC,KAAK,CAAC,GAAG,CAAC,GAAG,CAAC,CAAC;YAC3C,OAAO,cAAc,IAAI,IAAI,IAAI,cAAc,KAAK,OAAO,CAAC;QAC9D,CAAC,CAAC,CAAC;QAEH,IAAI,CAAC,aAAa,EAAE,CAAC;YACnB,OAAO,KAAK,CAAC;QACf,CAAC;QAED,KAAK,MAAM,GAAG,IAAI,UAAU,EAAE,CAAC;YAC7B,IAAI,CAAC,KAAK,CAAC,GAAG,CAAC,GAAG,EAAE,OAAO,CAAC,CAAC;QAC/B,CAAC;QAED,OAAO,IAAI,CAAC;IACd,CAAC;IAED,cAAc,CAAC,OAAe;QAC5B,KAAK,MAAM,CAAC,GAAG,EAAE,cAAc,CAAC,IAAI,IAAI,CAAC,KAAK,EAAE,CAAC;YAC/C,IAAI,cAAc,KAAK,OAAO,EAAE,CAAC;gBAC/B,IAAI,CAAC,KAAK,CAAC,MAAM,CAAC,GAAG,CAAC,CAAC;YACzB,CAAC;QACH,CAAC;IACH,CAAC;IAED,SAAS;QACP,OAAO,CAAC,GAAG,IAAI,CAAC,KAAK,CAAC,OAAO,EAAE,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC,GAAG,EAAE,OAAO,CAAC,EAAE,EAAE,CAAC,CAAC,EAAE,GAAG,EAAE,OAAO,EAAE,CAAC,CAAC,CAAC;IAC/E,CAAC;CACF"}
1
+ {"version":3,"file":"team-lock.service.js","sourceRoot":"","sources":["../../src/services/team-lock.service.ts"],"names":[],"mappings":"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"}
@@ -64,6 +64,7 @@ export declare class TeamRunService {
64
64
  updateTeamTemplate(id: string, input: UpdateTeamTemplateInput): Promise<TeamTemplate>;
65
65
  deleteTeamTemplate(id: string): Promise<void>;
66
66
  createTeamRun(taskId: string, input: CreateTeamRunInput): Promise<TeamRun>;
67
+ createTeamRunWithInitialRoomMessage(taskId: string, input: CreateTeamRunInput): Promise<TeamRun>;
67
68
  getTaskTeamRun(taskId: string): Promise<TeamRun>;
68
69
  getTeamRunById(id: string): Promise<TeamRun>;
69
70
  listTeamMembers(teamRunId: string): Promise<TeamMember[]>;
@@ -81,6 +82,8 @@ export declare class TeamRunService {
81
82
  private serializeMemberPreset;
82
83
  private serializeTeamTemplate;
83
84
  private serializeTeamRun;
85
+ private deriveTeamMemberStatuses;
86
+ private deriveTeamMemberStatus;
84
87
  private serializeTeamMember;
85
88
  private serializeRoomMessage;
86
89
  private serializeWorkRequest;
@@ -1 +1 @@
1
- {"version":3,"file":"team-run.service.d.ts","sourceRoot":"","sources":["../../src/services/team-run.service.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"team-run.service.d.ts","sourceRoot":"","sources":["../../src/services/team-run.service.ts"],"names":[],"mappings":"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"}
@@ -1,5 +1,6 @@
1
1
  import { ServiceError, NotFoundError, ValidationError } from '../errors.js';
2
2
  import { prisma } from '../utils/index.js';
3
+ import { appendAttachmentMarkdownContext } from './attachment-context.js';
3
4
  import { emitTeamRunInvalidated } from './team-run-events.js';
4
5
  const DEFAULT_CAPABILITIES = {
5
6
  readRoom: false,
@@ -14,6 +15,16 @@ const DEFAULT_CAPABILITIES = {
14
15
  mergeWorkspace: false,
15
16
  };
16
17
  const DEFAULT_SESSION_POLICY = 'new_per_request';
18
+ const ACTIVE_INVOCATION_STATUSES = [
19
+ 'QUEUED',
20
+ 'RUNNING',
21
+ 'SESSION_ENDED',
22
+ 'WAITING_ROOM_REPLY',
23
+ ];
24
+ const OPEN_WORK_REQUEST_STATUSES = [
25
+ 'PENDING_APPROVAL',
26
+ 'QUEUED',
27
+ ];
17
28
  function parseJsonField(value, fallback) {
18
29
  if (value == null || value === '') {
19
30
  return fallback;
@@ -31,6 +42,25 @@ function stringifyJson(value) {
31
42
  function toIso(date) {
32
43
  return date.toISOString();
33
44
  }
45
+ function applyStableInstanceNames(snapshots) {
46
+ const totalsByName = new Map();
47
+ for (const snapshot of snapshots) {
48
+ totalsByName.set(snapshot.name, (totalsByName.get(snapshot.name) ?? 0) + 1);
49
+ }
50
+ const seenByName = new Map();
51
+ return snapshots.map((snapshot) => {
52
+ const total = totalsByName.get(snapshot.name) ?? 0;
53
+ if (total <= 1) {
54
+ return snapshot;
55
+ }
56
+ const instanceIndex = (seenByName.get(snapshot.name) ?? 0) + 1;
57
+ seenByName.set(snapshot.name, instanceIndex);
58
+ return {
59
+ ...snapshot,
60
+ name: `${snapshot.name} #${instanceIndex}`,
61
+ };
62
+ });
63
+ }
34
64
  function toConflict(message) {
35
65
  return new ServiceError(message, 'CONFLICT', 409);
36
66
  }
@@ -40,6 +70,85 @@ function isUniqueConstraintError(error) {
40
70
  && 'code' in error
41
71
  && error.code === 'P2002';
42
72
  }
73
+ function buildInitialTaskRoomMessageContent(task) {
74
+ const title = task.title.trim();
75
+ if (title.length === 0) {
76
+ throw new ValidationError('Task title is required to create a TeamRun');
77
+ }
78
+ const description = task.description?.trim() ?? '';
79
+ return [title, description].filter(Boolean).join('\n\n');
80
+ }
81
+ function extractMentionTokens(content) {
82
+ const tokens = [];
83
+ const tokenPattern = /(^|[^\p{L}\p{N}_-])@([^\s@]+)/gu;
84
+ const trailingPunctuation = /[.,!?;:,。!?;:、)\]}>"'”’)】》]+$/u;
85
+ for (const match of content.matchAll(tokenPattern)) {
86
+ const token = (match[2] ?? '').replace(trailingPunctuation, '');
87
+ if (token.length > 0) {
88
+ tokens.push(token);
89
+ }
90
+ }
91
+ return tokens;
92
+ }
93
+ function deriveStructuredMentionsFromContent(content, members) {
94
+ const matchesByToken = new Map();
95
+ for (const member of members) {
96
+ const labels = Array.from(new Set([
97
+ member.name,
98
+ ...parseJsonField(member.aliases, []),
99
+ ].map((label) => label.trim()).filter(Boolean)));
100
+ for (const label of labels) {
101
+ const matches = matchesByToken.get(label) ?? [];
102
+ if (!matches.some((match) => match.memberId === member.id)) {
103
+ matches.push({ memberId: member.id, label });
104
+ }
105
+ matchesByToken.set(label, matches);
106
+ }
107
+ }
108
+ const mentions = [];
109
+ const mentionedMemberIds = new Set();
110
+ const tokens = extractMentionTokens(content);
111
+ for (const token of tokens) {
112
+ const matches = matchesByToken.get(token) ?? [];
113
+ if (matches.length !== 1 || mentionedMemberIds.has(matches[0].memberId)) {
114
+ continue;
115
+ }
116
+ const match = matches[0];
117
+ mentions.push({ memberId: match.memberId, label: match.label });
118
+ mentionedMemberIds.add(match.memberId);
119
+ }
120
+ return { mentions, tokenCount: tokens.length };
121
+ }
122
+ function assertMentionsReferenceMembers(mentions, memberIds) {
123
+ for (const mention of mentions) {
124
+ if (!memberIds.has(mention.memberId)) {
125
+ throw new NotFoundError('TeamMember', mention.memberId);
126
+ }
127
+ }
128
+ }
129
+ function resolveRoomMessageTargetRequests({ mentions, members, senderType, requesterMemberId, allowUserMessageFallback = true, }) {
130
+ if (mentions.length > 0) {
131
+ return mentions.map((mention) => ({
132
+ targetMemberId: mention.memberId,
133
+ ifBusy: mention.ifBusy ?? 'queue',
134
+ cancelQueued: mention.cancelQueued ?? false,
135
+ }));
136
+ }
137
+ if (!allowUserMessageFallback) {
138
+ return [];
139
+ }
140
+ if (senderType !== 'user' && senderType !== 'agent') {
141
+ return [];
142
+ }
143
+ return members
144
+ .filter((member) => member.triggerPolicy === 'USER_MESSAGES')
145
+ .filter((member) => member.id !== requesterMemberId)
146
+ .map((member) => ({
147
+ targetMemberId: member.id,
148
+ ifBusy: 'queue',
149
+ cancelQueued: false,
150
+ }));
151
+ }
43
152
  export class TeamRunService {
44
153
  async listMemberPresets() {
45
154
  const presets = await prisma.memberPreset.findMany({
@@ -175,11 +284,12 @@ export class TeamRunService {
175
284
  if (!task) {
176
285
  throw new NotFoundError('Task', taskId);
177
286
  }
287
+ buildInitialTaskRoomMessageContent(task);
178
288
  const existing = await prisma.teamRun.findUnique({ where: { taskId } });
179
289
  if (existing) {
180
290
  throw toConflict(`Task already has a TeamRun: ${taskId}`);
181
291
  }
182
- const snapshots = await this.buildTeamMemberSnapshots(input);
292
+ const snapshots = applyStableInstanceNames(await this.buildTeamMemberSnapshots(input));
183
293
  if (snapshots.length === 0) {
184
294
  throw new ValidationError('TeamRun must include at least one member');
185
295
  }
@@ -228,6 +338,126 @@ export class TeamRunService {
228
338
  });
229
339
  return teamRun;
230
340
  }
341
+ async createTeamRunWithInitialRoomMessage(taskId, input) {
342
+ const snapshots = applyStableInstanceNames(await this.buildTeamMemberSnapshots(input));
343
+ if (snapshots.length === 0) {
344
+ throw new ValidationError('TeamRun must include at least one member');
345
+ }
346
+ let teamRunId = '';
347
+ let projectId = '';
348
+ let createdTeamRun = null;
349
+ try {
350
+ createdTeamRun = await prisma.$transaction(async (tx) => {
351
+ const task = await tx.task.findUnique({ where: { id: taskId } });
352
+ if (!task) {
353
+ throw new NotFoundError('Task', taskId);
354
+ }
355
+ projectId = task.projectId;
356
+ const initialContent = buildInitialTaskRoomMessageContent(task);
357
+ const existing = await tx.teamRun.findUnique({ where: { taskId } });
358
+ if (existing) {
359
+ throw toConflict(`Task already has a TeamRun: ${taskId}`);
360
+ }
361
+ const teamRun = await tx.teamRun.create({
362
+ data: {
363
+ taskId,
364
+ mode: input.mode,
365
+ },
366
+ });
367
+ teamRunId = teamRun.id;
368
+ const members = [];
369
+ for (const snapshot of snapshots) {
370
+ const member = await tx.teamMember.create({
371
+ data: {
372
+ teamRunId: teamRun.id,
373
+ presetId: snapshot.presetId,
374
+ name: snapshot.name,
375
+ aliases: stringifyJson(snapshot.aliases),
376
+ providerId: snapshot.providerId,
377
+ rolePrompt: snapshot.rolePrompt,
378
+ capabilities: stringifyJson(snapshot.capabilities),
379
+ workspacePolicy: snapshot.workspacePolicy,
380
+ triggerPolicy: snapshot.triggerPolicy,
381
+ sessionPolicy: snapshot.sessionPolicy,
382
+ avatar: snapshot.avatar,
383
+ },
384
+ });
385
+ members.push(member);
386
+ }
387
+ const initialMentionParse = deriveStructuredMentionsFromContent(initialContent, members);
388
+ const message = await tx.roomMessage.create({
389
+ data: {
390
+ teamRunId: teamRun.id,
391
+ senderType: 'user',
392
+ senderId: null,
393
+ senderInvocationId: null,
394
+ kind: 'chat',
395
+ content: initialContent,
396
+ mentions: stringifyJson(initialMentionParse.mentions),
397
+ artifactRefs: stringifyJson([]),
398
+ attachmentIds: stringifyJson([]),
399
+ workRequestIds: stringifyJson([]),
400
+ },
401
+ });
402
+ const workRequestStatus = input.mode === 'CONFIRM'
403
+ ? 'PENDING_APPROVAL'
404
+ : 'QUEUED';
405
+ const targetRequests = resolveRoomMessageTargetRequests({
406
+ mentions: initialMentionParse.mentions,
407
+ members,
408
+ senderType: 'user',
409
+ requesterMemberId: null,
410
+ allowUserMessageFallback: initialMentionParse.tokenCount === 0,
411
+ });
412
+ const workRequestIds = [];
413
+ for (const targetRequest of targetRequests) {
414
+ const workRequest = await tx.workRequest.create({
415
+ data: {
416
+ teamRunId: teamRun.id,
417
+ requesterMemberId: null,
418
+ requesterType: 'user',
419
+ targetMemberId: targetRequest.targetMemberId,
420
+ triggerMessageId: message.id,
421
+ instruction: initialContent,
422
+ ifBusy: targetRequest.ifBusy,
423
+ cancelQueued: targetRequest.cancelQueued,
424
+ status: workRequestStatus,
425
+ },
426
+ });
427
+ workRequestIds.push(workRequest.id);
428
+ }
429
+ if (workRequestIds.length > 0) {
430
+ await tx.roomMessage.update({
431
+ where: { id: message.id },
432
+ data: { workRequestIds: stringifyJson(workRequestIds) },
433
+ });
434
+ }
435
+ const created = await tx.teamRun.findUnique({
436
+ where: { id: teamRun.id },
437
+ include: this.teamRunInclude(),
438
+ });
439
+ if (!created) {
440
+ throw new NotFoundError('TeamRun', teamRun.id);
441
+ }
442
+ return created;
443
+ });
444
+ }
445
+ catch (error) {
446
+ if (isUniqueConstraintError(error)) {
447
+ throw toConflict(`Task already has a TeamRun: ${taskId}`);
448
+ }
449
+ throw error;
450
+ }
451
+ const serialized = this.serializeTeamRun(createdTeamRun);
452
+ await emitTeamRunInvalidated({
453
+ teamRunId,
454
+ taskId,
455
+ projectId,
456
+ scopes: ['team-run', 'team-members', 'room-messages', 'work-requests', 'task'],
457
+ reason: 'team-run-created',
458
+ });
459
+ return serialized;
460
+ }
231
461
  async getTaskTeamRun(taskId) {
232
462
  const teamRun = await prisma.teamRun.findUnique({
233
463
  where: { taskId },
@@ -250,11 +480,26 @@ export class TeamRunService {
250
480
  }
251
481
  async listTeamMembers(teamRunId) {
252
482
  await this.assertTeamRunExists(teamRunId);
253
- const members = await prisma.teamMember.findMany({
254
- where: { teamRunId },
255
- orderBy: { createdAt: 'asc' },
256
- });
257
- return members.map((member) => this.serializeTeamMember(member));
483
+ const [members, invocations, workRequests] = await Promise.all([
484
+ prisma.teamMember.findMany({
485
+ where: { teamRunId },
486
+ orderBy: { createdAt: 'asc' },
487
+ }),
488
+ prisma.agentInvocation.findMany({
489
+ where: {
490
+ teamRunId,
491
+ status: { in: ACTIVE_INVOCATION_STATUSES },
492
+ },
493
+ }),
494
+ prisma.workRequest.findMany({
495
+ where: {
496
+ teamRunId,
497
+ status: { in: OPEN_WORK_REQUEST_STATUSES },
498
+ },
499
+ }),
500
+ ]);
501
+ const memberStatuses = this.deriveTeamMemberStatuses(members, invocations, workRequests);
502
+ return members.map((member) => this.serializeTeamMember(member, memberStatuses.get(member.id)));
258
503
  }
259
504
  async listRoomMessages(teamRunId) {
260
505
  await this.assertTeamRunExists(teamRunId);
@@ -291,15 +536,12 @@ export class TeamRunService {
291
536
  const workRequestStatus = teamRun.mode === 'CONFIRM'
292
537
  ? 'PENDING_APPROVAL'
293
538
  : 'QUEUED';
539
+ const workRequestInstruction = await appendAttachmentMarkdownContext(input.content, input.attachmentIds);
294
540
  let messageId = '';
295
541
  await prisma.$transaction(async (tx) => {
296
542
  const members = await tx.teamMember.findMany({ where: { teamRunId } });
297
543
  const memberIds = new Set(members.map((member) => member.id));
298
- for (const mention of mentions) {
299
- if (!memberIds.has(mention.memberId)) {
300
- throw new NotFoundError('TeamMember', mention.memberId);
301
- }
302
- }
544
+ assertMentionsReferenceMembers(mentions, memberIds);
303
545
  const requesterMemberId = senderType === 'agent'
304
546
  && input.senderId != null
305
547
  && memberIds.has(input.senderId)
@@ -338,22 +580,12 @@ export class TeamRunService {
338
580
  },
339
581
  });
340
582
  messageId = message.id;
341
- const targetRequests = mentions.length > 0
342
- ? mentions.map((mention) => ({
343
- targetMemberId: mention.memberId,
344
- ifBusy: mention.ifBusy ?? 'queue',
345
- cancelQueued: mention.cancelQueued ?? false,
346
- }))
347
- : senderType === 'user' || senderType === 'agent'
348
- ? members
349
- .filter((member) => member.triggerPolicy === 'USER_MESSAGES')
350
- .filter((member) => member.id !== requesterMemberId)
351
- .map((member) => ({
352
- targetMemberId: member.id,
353
- ifBusy: 'queue',
354
- cancelQueued: false,
355
- }))
356
- : [];
583
+ const targetRequests = resolveRoomMessageTargetRequests({
584
+ mentions,
585
+ members,
586
+ senderType,
587
+ requesterMemberId,
588
+ });
357
589
  const workRequestIds = [];
358
590
  for (const targetRequest of targetRequests) {
359
591
  const workRequest = await tx.workRequest.create({
@@ -363,7 +595,7 @@ export class TeamRunService {
363
595
  requesterType: senderType,
364
596
  targetMemberId: targetRequest.targetMemberId,
365
597
  triggerMessageId: message.id,
366
- instruction: input.content,
598
+ instruction: workRequestInstruction,
367
599
  ifBusy: targetRequest.ifBusy,
368
600
  cancelQueued: targetRequest.cancelQueued,
369
601
  status: workRequestStatus,
@@ -515,19 +747,44 @@ export class TeamRunService {
515
747
  };
516
748
  }
517
749
  serializeTeamRun(teamRun) {
750
+ const memberStatuses = this.deriveTeamMemberStatuses(teamRun.members ?? [], teamRun.invocations ?? [], teamRun.workRequests ?? []);
518
751
  return {
519
752
  ...teamRun,
520
753
  mode: teamRun.mode,
521
754
  reviewReason: teamRun.reviewReason,
522
755
  createdAt: toIso(teamRun.createdAt),
523
756
  updatedAt: toIso(teamRun.updatedAt),
524
- members: teamRun.members?.map((member) => this.serializeTeamMember(member)),
757
+ members: teamRun.members?.map((member) => this.serializeTeamMember(member, memberStatuses.get(member.id))),
525
758
  messages: teamRun.messages?.map((message) => this.serializeRoomMessage(message)),
526
759
  workRequests: teamRun.workRequests?.map((workRequest) => this.serializeWorkRequest(workRequest)),
527
760
  invocations: teamRun.invocations?.map((invocation) => this.serializeAgentInvocation(invocation)),
528
761
  };
529
762
  }
530
- serializeTeamMember(member) {
763
+ deriveTeamMemberStatuses(members, invocations = [], workRequests = []) {
764
+ const statuses = new Map();
765
+ for (const member of members) {
766
+ statuses.set(member.id, this.deriveTeamMemberStatus(member.id, invocations, workRequests));
767
+ }
768
+ return statuses;
769
+ }
770
+ deriveTeamMemberStatus(memberId, invocations, workRequests) {
771
+ const memberInvocations = invocations.filter((invocation) => invocation.memberId === memberId);
772
+ if (memberInvocations.some((invocation) => invocation.status === 'RUNNING'))
773
+ return 'RUNNING';
774
+ if (memberInvocations.some((invocation) => invocation.status === 'WAITING_ROOM_REPLY'))
775
+ return 'WAITING_ROOM_REPLY';
776
+ if (memberInvocations.some((invocation) => invocation.status === 'SESSION_ENDED'))
777
+ return 'SESSION_ENDED';
778
+ if (memberInvocations.some((invocation) => invocation.status === 'QUEUED'))
779
+ return 'QUEUED';
780
+ const memberWorkRequests = workRequests.filter((request) => request.targetMemberId === memberId);
781
+ if (memberWorkRequests.some((request) => request.status === 'QUEUED'))
782
+ return 'QUEUED';
783
+ if (memberWorkRequests.some((request) => request.status === 'PENDING_APPROVAL'))
784
+ return 'PENDING_APPROVAL';
785
+ return 'IDLE';
786
+ }
787
+ serializeTeamMember(member, status) {
531
788
  return {
532
789
  ...member,
533
790
  aliases: parseJsonField(member.aliases, []),
@@ -536,6 +793,7 @@ export class TeamRunService {
536
793
  triggerPolicy: member.triggerPolicy,
537
794
  sessionPolicy: member.sessionPolicy || DEFAULT_SESSION_POLICY,
538
795
  avatar: member.avatar ?? null,
796
+ status: status ?? 'IDLE',
539
797
  createdAt: toIso(member.createdAt),
540
798
  updatedAt: toIso(member.updatedAt),
541
799
  };