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

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 (216) 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 +5 -1
  16. package/dist/mcp/http-client.d.ts.map +1 -1
  17. package/dist/mcp/http-client.js +13 -3
  18. package/dist/mcp/http-client.js.map +1 -1
  19. package/dist/mcp/server.d.ts.map +1 -1
  20. package/dist/mcp/server.js +33 -3
  21. package/dist/mcp/server.js.map +1 -1
  22. package/dist/middleware/tunnel-auth.d.ts.map +1 -1
  23. package/dist/middleware/tunnel-auth.js +2 -0
  24. package/dist/middleware/tunnel-auth.js.map +1 -1
  25. package/dist/output/__tests__/codex-parser.test.d.ts +2 -0
  26. package/dist/output/__tests__/codex-parser.test.d.ts.map +1 -0
  27. package/dist/output/__tests__/codex-parser.test.js +148 -0
  28. package/dist/output/__tests__/codex-parser.test.js.map +1 -0
  29. package/dist/output/codex-parser.d.ts +12 -0
  30. package/dist/output/codex-parser.d.ts.map +1 -1
  31. package/dist/output/codex-parser.js +129 -12
  32. package/dist/output/codex-parser.js.map +1 -1
  33. package/dist/routes/__tests__/attachments.test.d.ts +2 -0
  34. package/dist/routes/__tests__/attachments.test.d.ts.map +1 -0
  35. package/dist/routes/__tests__/attachments.test.js +86 -0
  36. package/dist/routes/__tests__/attachments.test.js.map +1 -0
  37. package/dist/routes/__tests__/filesystem.test.d.ts +2 -0
  38. package/dist/routes/__tests__/filesystem.test.d.ts.map +1 -0
  39. package/dist/routes/__tests__/filesystem.test.js +80 -0
  40. package/dist/routes/__tests__/filesystem.test.js.map +1 -0
  41. package/dist/routes/__tests__/previews.test.d.ts +2 -0
  42. package/dist/routes/__tests__/previews.test.d.ts.map +1 -0
  43. package/dist/routes/__tests__/previews.test.js +89 -0
  44. package/dist/routes/__tests__/previews.test.js.map +1 -0
  45. package/dist/routes/__tests__/tasks.test.d.ts +2 -0
  46. package/dist/routes/__tests__/tasks.test.d.ts.map +1 -0
  47. package/dist/routes/__tests__/tasks.test.js +72 -0
  48. package/dist/routes/__tests__/tasks.test.js.map +1 -0
  49. package/dist/routes/attachments.d.ts.map +1 -1
  50. package/dist/routes/attachments.js +36 -16
  51. package/dist/routes/attachments.js.map +1 -1
  52. package/dist/routes/filesystem.d.ts.map +1 -1
  53. package/dist/routes/filesystem.js +24 -3
  54. package/dist/routes/filesystem.js.map +1 -1
  55. package/dist/routes/index.d.ts.map +1 -1
  56. package/dist/routes/index.js +3 -0
  57. package/dist/routes/index.js.map +1 -1
  58. package/dist/routes/previews.d.ts +6 -0
  59. package/dist/routes/previews.d.ts.map +1 -0
  60. package/dist/routes/previews.js +413 -0
  61. package/dist/routes/previews.js.map +1 -0
  62. package/dist/routes/projects.d.ts.map +1 -1
  63. package/dist/routes/projects.js +1 -0
  64. package/dist/routes/projects.js.map +1 -1
  65. package/dist/routes/tasks.js +2 -2
  66. package/dist/routes/tasks.js.map +1 -1
  67. package/dist/routes/team-runs.d.ts.map +1 -1
  68. package/dist/routes/team-runs.js +36 -9
  69. package/dist/routes/team-runs.js.map +1 -1
  70. package/dist/routes/tunnel.d.ts.map +1 -1
  71. package/dist/routes/tunnel.js +20 -0
  72. package/dist/routes/tunnel.js.map +1 -1
  73. package/dist/routes/workspaces.d.ts.map +1 -1
  74. package/dist/routes/workspaces.js +15 -1
  75. package/dist/routes/workspaces.js.map +1 -1
  76. package/dist/services/__tests__/preview.service.test.d.ts +2 -0
  77. package/dist/services/__tests__/preview.service.test.d.ts.map +1 -0
  78. package/dist/services/__tests__/preview.service.test.js +29 -0
  79. package/dist/services/__tests__/preview.service.test.js.map +1 -0
  80. package/dist/services/__tests__/task.service.test.d.ts +2 -0
  81. package/dist/services/__tests__/task.service.test.d.ts.map +1 -0
  82. package/dist/services/__tests__/task.service.test.js +65 -0
  83. package/dist/services/__tests__/task.service.test.js.map +1 -0
  84. package/dist/services/__tests__/team-reconciler.service.test.js +720 -28
  85. package/dist/services/__tests__/team-reconciler.service.test.js.map +1 -1
  86. package/dist/services/__tests__/team-run.service.test.js +416 -0
  87. package/dist/services/__tests__/team-run.service.test.js.map +1 -1
  88. package/dist/services/__tests__/team-scheduler.service.test.js +680 -26
  89. package/dist/services/__tests__/team-scheduler.service.test.js.map +1 -1
  90. package/dist/services/__tests__/tunnel.service.test.d.ts +2 -0
  91. package/dist/services/__tests__/tunnel.service.test.d.ts.map +1 -0
  92. package/dist/services/__tests__/tunnel.service.test.js +138 -0
  93. package/dist/services/__tests__/tunnel.service.test.js.map +1 -0
  94. package/dist/services/__tests__/workspace.service.test.d.ts +2 -0
  95. package/dist/services/__tests__/workspace.service.test.d.ts.map +1 -0
  96. package/dist/services/__tests__/workspace.service.test.js +695 -0
  97. package/dist/services/__tests__/workspace.service.test.js.map +1 -0
  98. package/dist/services/attachment-context.d.ts +3 -0
  99. package/dist/services/attachment-context.d.ts.map +1 -0
  100. package/dist/services/attachment-context.js +34 -0
  101. package/dist/services/attachment-context.js.map +1 -0
  102. package/dist/services/preview.service.d.ts +19 -0
  103. package/dist/services/preview.service.d.ts.map +1 -0
  104. package/dist/services/preview.service.js +147 -0
  105. package/dist/services/preview.service.js.map +1 -0
  106. package/dist/services/project.service.d.ts +2 -0
  107. package/dist/services/project.service.d.ts.map +1 -1
  108. package/dist/services/project.service.js +87 -18
  109. package/dist/services/project.service.js.map +1 -1
  110. package/dist/services/session-manager.d.ts +12 -0
  111. package/dist/services/session-manager.d.ts.map +1 -1
  112. package/dist/services/task.service.d.ts +6 -0
  113. package/dist/services/task.service.d.ts.map +1 -1
  114. package/dist/services/task.service.js +15 -3
  115. package/dist/services/task.service.js.map +1 -1
  116. package/dist/services/team-lock.service.d.ts +3 -0
  117. package/dist/services/team-lock.service.d.ts.map +1 -1
  118. package/dist/services/team-lock.service.js +11 -0
  119. package/dist/services/team-lock.service.js.map +1 -1
  120. package/dist/services/team-run.service.d.ts +34 -1
  121. package/dist/services/team-run.service.d.ts.map +1 -1
  122. package/dist/services/team-run.service.js +370 -30
  123. package/dist/services/team-run.service.js.map +1 -1
  124. package/dist/services/team-scheduler.service.d.ts +22 -1
  125. package/dist/services/team-scheduler.service.d.ts.map +1 -1
  126. package/dist/services/team-scheduler.service.js +148 -33
  127. package/dist/services/team-scheduler.service.js.map +1 -1
  128. package/dist/services/tunnel.service.d.ts +31 -5
  129. package/dist/services/tunnel.service.d.ts.map +1 -1
  130. package/dist/services/tunnel.service.js +293 -32
  131. package/dist/services/tunnel.service.js.map +1 -1
  132. package/dist/services/workspace.service.d.ts +161 -7
  133. package/dist/services/workspace.service.d.ts.map +1 -1
  134. package/dist/services/workspace.service.js +396 -51
  135. package/dist/services/workspace.service.js.map +1 -1
  136. package/dist/web/assets/{AgentDemoPage-p9YI4_l4.js → AgentDemoPage-BhDnxdmh.js} +1 -1
  137. package/dist/web/assets/{DemoPage-B5DTSEbS.js → DemoPage-CJBc0NZf.js} +1 -1
  138. package/dist/web/assets/{GeneralSettingsPage-Cspr7Vol.js → GeneralSettingsPage-CEjDPmtD.js} +1 -1
  139. package/dist/web/assets/MemberAvatar-DxRCLAoK.js +1 -0
  140. package/dist/web/assets/NotificationSettingsPage-i77lmSic.js +1 -0
  141. package/dist/web/assets/{ProfileSettingsPage-CNugU40a.js → ProfileSettingsPage-DcGLD5O-.js} +1 -1
  142. package/dist/web/assets/ProjectKanbanPage-CX-NY7hx.js +89 -0
  143. package/dist/web/assets/ProjectSettingsPage-BBfroQPA.js +2 -0
  144. package/dist/web/assets/{ProviderSettingsPage-D_KWkgRM.js → ProviderSettingsPage-BdxbO1E9.js} +12 -12
  145. package/dist/web/assets/TeamSettingsPage-CTWGO79W.js +1 -0
  146. package/dist/web/assets/agent-tower-logo-COx9gy77.png +0 -0
  147. package/dist/web/assets/{button-B6JaSbDB.js → button-RDdre_kF.js} +1 -1
  148. package/dist/web/assets/{chevron-down-CACy4UFq.js → chevron-down-Cfeapk0v.js} +1 -1
  149. package/dist/web/assets/{chevron-right-DFWfnDJY.js → chevron-right-BE6LVCii.js} +1 -1
  150. package/dist/web/assets/{chevron-up-CGlf6jzw.js → chevron-up-CEEz4jJv.js} +1 -1
  151. package/dist/web/assets/{circle-check-DMK8auwb.js → circle-check-0imI5gEL.js} +1 -1
  152. package/dist/web/assets/{code-block-OCS4YCEC-Hn75KHRK.js → code-block-OCS4YCEC-D4c9zDcq.js} +1 -1
  153. package/dist/web/assets/{confirm-dialog-DHI2f7Ni.js → confirm-dialog--HDqEa-R.js} +1 -1
  154. package/dist/web/assets/folder-picker-CKfogW-o.js +1 -0
  155. package/dist/web/assets/index-BHmOCKAn.css +1 -0
  156. package/dist/web/assets/{index-BFAA3PTl.js → index-DbGCpy8E.js} +9 -9
  157. package/dist/web/assets/loader-circle-BAUFMewp.js +1 -0
  158. package/dist/web/assets/{log-adapter-CeKrvZcz.js → log-adapter-DKKM3sxS.js} +1 -1
  159. package/dist/web/assets/{mermaid-NOHMQCX5-DJFgrXPd.js → mermaid-NOHMQCX5-BkaKG_2K.js} +4 -4
  160. package/dist/web/assets/{modal-B5IRN7QI.js → modal-3rdeMVPn.js} +1 -1
  161. package/dist/web/assets/{pencil-CJY6Ahn7.js → pencil-CqWv0WcO.js} +1 -1
  162. package/dist/web/assets/{select-BPZZlla1.js → select-DHVfUr22.js} +1 -1
  163. package/dist/web/assets/upload-D3aqtSCY.js +1 -0
  164. package/dist/web/assets/{use-profiles-C2k04ICZ.js → use-profiles-BznmWvqM.js} +1 -1
  165. package/dist/web/assets/{use-providers-C7fIDWzP.js → use-providers-DIHUIuEZ.js} +1 -1
  166. package/dist/web/avatars/presets/avatar-preset-01-developer.png +0 -0
  167. package/dist/web/avatars/presets/avatar-preset-02-architect.png +0 -0
  168. package/dist/web/avatars/presets/avatar-preset-03-tester.png +0 -0
  169. package/dist/web/avatars/presets/avatar-preset-04-devops.png +0 -0
  170. package/dist/web/avatars/presets/avatar-preset-05-data-scientist.png +0 -0
  171. package/dist/web/avatars/presets/avatar-preset-06-frontend.png +0 -0
  172. package/dist/web/avatars/presets/avatar-preset-07-backend.png +0 -0
  173. package/dist/web/avatars/presets/avatar-preset-08-security.png +0 -0
  174. package/dist/web/avatars/presets/avatar-preset-09-project-manager.png +0 -0
  175. package/dist/web/avatars/presets/avatar-preset-10-product-manager.png +0 -0
  176. package/dist/web/avatars/presets/avatar-preset-11-scrum-master.png +0 -0
  177. package/dist/web/avatars/presets/avatar-preset-12-tech-lead.png +0 -0
  178. package/dist/web/avatars/presets/avatar-preset-13-coordinator.png +0 -0
  179. package/dist/web/avatars/presets/avatar-preset-14-mentor.png +0 -0
  180. package/dist/web/avatars/presets/avatar-preset-15-reviewer.png +0 -0
  181. package/dist/web/avatars/presets/avatar-preset-16-ui-designer.png +0 -0
  182. package/dist/web/avatars/presets/avatar-preset-17-ux-researcher.png +0 -0
  183. package/dist/web/avatars/presets/avatar-preset-18-documenter.png +0 -0
  184. package/dist/web/avatars/presets/avatar-preset-19-translator.png +0 -0
  185. package/dist/web/avatars/presets/avatar-preset-20-analyst.png +0 -0
  186. package/dist/web/avatars/presets/avatar-preset-21-consultant.png +0 -0
  187. package/dist/web/avatars/presets/avatar-preset-22-creative-director.png +0 -0
  188. package/dist/web/avatars/presets/avatar-preset-23-support.png +0 -0
  189. package/dist/web/avatars/presets/avatar-preset-24-assistant.png +0 -0
  190. package/dist/web/avatars/presets/avatar-preset-25-robot.png +0 -0
  191. package/dist/web/avatars/presets/avatar-preset-grid.png +0 -0
  192. package/dist/web/index.html +2 -2
  193. package/node_modules/@agent-tower/shared/dist/types.d.ts +13 -1
  194. package/node_modules/@agent-tower/shared/dist/types.d.ts.map +1 -1
  195. package/node_modules/@agent-tower/shared/dist/types.js.map +1 -1
  196. package/node_modules/@prisma/client/.prisma/client/edge.js +11 -5
  197. package/node_modules/@prisma/client/.prisma/client/index-browser.js +6 -0
  198. package/node_modules/@prisma/client/.prisma/client/index.d.ts +1309 -14
  199. package/node_modules/@prisma/client/.prisma/client/index.js +11 -5
  200. package/node_modules/@prisma/client/.prisma/client/package.json +1 -1
  201. package/node_modules/@prisma/client/.prisma/client/schema.prisma +70 -52
  202. package/node_modules/@prisma/client/.prisma/client/wasm.js +6 -0
  203. package/package.json +1 -1
  204. package/prisma/migrations/20260515000000_add_workspace_preview_target/migration.sql +2 -0
  205. package/prisma/migrations/20260526000000_add_team_run_main_and_dedicated_workspaces/migration.sql +21 -0
  206. package/prisma/migrations/20260529000000_add_team_member_queue_management_policy/migration.sql +2 -0
  207. package/prisma/schema.prisma +29 -11
  208. package/dist/web/assets/NotificationSettingsPage-C9VfrRr-.js +0 -1
  209. package/dist/web/assets/ProjectKanbanPage-CkGNuqxq.js +0 -87
  210. package/dist/web/assets/ProjectSettingsPage-f1dg0XMf.js +0 -2
  211. package/dist/web/assets/TeamSettingsPage-B6WciZyi.js +0 -1
  212. package/dist/web/assets/circle-alert-BSAUEd9O.js +0 -1
  213. package/dist/web/assets/folder-picker-CtQkbWfa.js +0 -1
  214. package/dist/web/assets/index-mBCb67dB.css +0 -1
  215. package/dist/web/assets/loader-circle-CkDnf8ST.js +0 -1
  216. package/dist/web/assets/use-projects-BxuE-ulT.js +0 -1
@@ -35,6 +35,7 @@ function presetInput(name, aliases = [name.toLowerCase()]) {
35
35
  workspacePolicy: 'dedicated',
36
36
  triggerPolicy: 'MENTION_ONLY',
37
37
  sessionPolicy: 'new_per_request',
38
+ queueManagementPolicy: 'own_only',
38
39
  avatar: null,
39
40
  };
40
41
  }
@@ -93,6 +94,7 @@ describe('TeamRunService', () => {
93
94
  expect(preset.aliases).toEqual(['reviewer', 'review']);
94
95
  expect(preset.capabilities).toEqual(capabilities);
95
96
  expect(preset.sessionPolicy).toBe('new_per_request');
97
+ expect(preset.queueManagementPolicy).toBe('own_only');
96
98
  });
97
99
  it('preserves session policy in MemberPreset and TeamMember snapshots', async () => {
98
100
  const preset = await service.createMemberPreset({
@@ -125,6 +127,39 @@ describe('TeamRunService', () => {
125
127
  name: 'Reviewer',
126
128
  });
127
129
  });
130
+ it('preserves repeated MemberPresets in TeamTemplate members', async () => {
131
+ const preset = await service.createMemberPreset(presetInput('Implementer', ['impl']));
132
+ const template = await service.createTeamTemplate({
133
+ name: 'Parallel implementers',
134
+ memberPresetIds: [preset.id, preset.id, preset.id],
135
+ });
136
+ expect(template.members).toHaveLength(3);
137
+ expect(template.members?.map((member) => member.memberPresetId)).toEqual([preset.id, preset.id, preset.id]);
138
+ expect(template.members?.map((member) => member.position)).toEqual([0, 1, 2]);
139
+ expect(template.members?.map((member) => member.memberPreset?.name)).toEqual([
140
+ 'Implementer',
141
+ 'Implementer',
142
+ 'Implementer',
143
+ ]);
144
+ });
145
+ it('updates TeamTemplate members with repeated MemberPresets in order', async () => {
146
+ const first = await service.createMemberPreset(presetInput('Implementer', ['impl']));
147
+ const second = await service.createMemberPreset(presetInput('Reviewer', ['review']));
148
+ const template = await service.createTeamTemplate({
149
+ name: 'Initial team',
150
+ memberPresetIds: [second.id],
151
+ });
152
+ const updated = await service.updateTeamTemplate(template.id, {
153
+ memberPresetIds: [first.id, second.id, first.id],
154
+ });
155
+ expect(updated.members).toHaveLength(3);
156
+ expect(updated.members?.map((member) => member.memberPresetId)).toEqual([
157
+ first.id,
158
+ second.id,
159
+ first.id,
160
+ ]);
161
+ expect(updated.members?.map((member) => member.position)).toEqual([0, 1, 2]);
162
+ });
128
163
  it('creates TeamMember snapshots from multiple MemberPresets', async () => {
129
164
  const first = await service.createMemberPreset(presetInput('Planner', ['planner']));
130
165
  const second = await service.createMemberPreset(presetInput('Coder', ['coder']));
@@ -137,6 +172,57 @@ describe('TeamRunService', () => {
137
172
  expect(teamRun.members?.map((member) => member.name)).toEqual(['Planner', 'Coder']);
138
173
  expect(teamRun.members?.map((member) => member.presetId)).toEqual([first.id, second.id]);
139
174
  });
175
+ it('creates stable instance names when the same MemberPreset is selected more than once', async () => {
176
+ const preset = await service.createMemberPreset(presetInput('Implementer', ['impl']));
177
+ const task = await createTask();
178
+ const teamRun = await service.createTeamRun(task.id, {
179
+ mode: 'AUTO',
180
+ memberPresetIds: [preset.id, preset.id, preset.id],
181
+ });
182
+ expect(teamRun.members).toHaveLength(3);
183
+ expect(teamRun.members?.map((member) => member.name)).toEqual([
184
+ 'Implementer #1',
185
+ 'Implementer #2',
186
+ 'Implementer #3',
187
+ ]);
188
+ expect(teamRun.members?.map((member) => member.presetId)).toEqual([preset.id, preset.id, preset.id]);
189
+ expect(teamRun.members?.map((member) => member.aliases)).toEqual([['impl'], ['impl'], ['impl']]);
190
+ });
191
+ it('creates stable instance names for repeated explicit TeamRun members', async () => {
192
+ const task = await createTask();
193
+ const teamRun = await service.createTeamRun(task.id, {
194
+ mode: 'AUTO',
195
+ members: [
196
+ presetInput('Implementer', ['impl']),
197
+ presetInput('Implementer', ['impl']),
198
+ ],
199
+ });
200
+ expect(teamRun.members).toHaveLength(2);
201
+ expect(teamRun.members?.map((member) => member.name)).toEqual([
202
+ 'Implementer #1',
203
+ 'Implementer #2',
204
+ ]);
205
+ expect(teamRun.members?.map((member) => member.presetId)).toEqual([null, null]);
206
+ });
207
+ it('creates stable instance names across TeamTemplate and explicit MemberPreset duplicates', async () => {
208
+ const preset = await service.createMemberPreset(presetInput('Implementer', ['impl']));
209
+ const task = await createTask();
210
+ const template = await service.createTeamTemplate({
211
+ name: 'Three implementers',
212
+ memberPresetIds: [preset.id, preset.id],
213
+ });
214
+ const teamRun = await service.createTeamRun(task.id, {
215
+ mode: 'AUTO',
216
+ teamTemplateId: template.id,
217
+ memberPresetIds: [preset.id],
218
+ });
219
+ expect(teamRun.members).toHaveLength(3);
220
+ expect(teamRun.members?.map((member) => member.name)).toEqual([
221
+ 'Implementer #1',
222
+ 'Implementer #2',
223
+ 'Implementer #3',
224
+ ]);
225
+ });
140
226
  it('keeps TeamMember snapshots unchanged after updating a MemberPreset', async () => {
141
227
  const preset = await service.createMemberPreset(presetInput('Implementer', ['impl']));
142
228
  const task = await createTask();
@@ -225,6 +311,282 @@ describe('TeamRunService', () => {
225
311
  status: 'PENDING_APPROVAL',
226
312
  });
227
313
  });
314
+ it('derives TeamMember status from active invocations and open WorkRequests', async () => {
315
+ const runningPreset = await service.createMemberPreset(presetInput('Runner'));
316
+ const pendingPreset = await service.createMemberPreset(presetInput('Pending'));
317
+ const queuedPreset = await service.createMemberPreset(presetInput('Queued'));
318
+ const task = await createTask();
319
+ const teamRun = await service.createTeamRun(task.id, {
320
+ mode: 'CONFIRM',
321
+ memberPresetIds: [runningPreset.id, pendingPreset.id, queuedPreset.id],
322
+ });
323
+ const [runningMember, pendingMember, queuedMember] = teamRun.members ?? [];
324
+ expect(runningMember).toBeDefined();
325
+ expect(pendingMember).toBeDefined();
326
+ expect(queuedMember).toBeDefined();
327
+ const workspace = await prisma.workspace.create({
328
+ data: {
329
+ taskId: task.id,
330
+ branchName: 'team-shared-status',
331
+ worktreePath: testDir,
332
+ status: 'ACTIVE',
333
+ },
334
+ });
335
+ const runningRequest = await prisma.workRequest.create({
336
+ data: {
337
+ teamRunId: teamRun.id,
338
+ requesterMemberId: null,
339
+ requesterType: 'user',
340
+ targetMemberId: runningMember.id,
341
+ triggerMessageId: 'running-trigger',
342
+ instruction: 'Running work',
343
+ status: 'STARTED',
344
+ },
345
+ });
346
+ await prisma.agentInvocation.create({
347
+ data: {
348
+ teamRunId: teamRun.id,
349
+ workRequestId: runningRequest.id,
350
+ memberId: runningMember.id,
351
+ workspaceId: workspace.id,
352
+ sessionId: null,
353
+ status: 'RUNNING',
354
+ },
355
+ });
356
+ await prisma.workRequest.create({
357
+ data: {
358
+ teamRunId: teamRun.id,
359
+ requesterMemberId: null,
360
+ requesterType: 'user',
361
+ targetMemberId: pendingMember.id,
362
+ triggerMessageId: 'pending-trigger',
363
+ instruction: 'Pending work',
364
+ status: 'PENDING_APPROVAL',
365
+ },
366
+ });
367
+ await prisma.workRequest.create({
368
+ data: {
369
+ teamRunId: teamRun.id,
370
+ requesterMemberId: null,
371
+ requesterType: 'user',
372
+ targetMemberId: queuedMember.id,
373
+ triggerMessageId: 'queued-trigger',
374
+ instruction: 'Queued work',
375
+ status: 'QUEUED',
376
+ },
377
+ });
378
+ const members = await service.listTeamMembers(teamRun.id);
379
+ const statuses = new Map(members.map((member) => [member.id, member.status]));
380
+ expect(statuses.get(runningMember.id)).toBe('RUNNING');
381
+ expect(statuses.get(pendingMember.id)).toBe('PENDING_APPROVAL');
382
+ expect(statuses.get(queuedMember.id)).toBe('QUEUED');
383
+ });
384
+ it('lists only current member pending and queued WorkRequests by default', async () => {
385
+ const firstPreset = await service.createMemberPreset(presetInput('First'));
386
+ const secondPreset = await service.createMemberPreset(presetInput('Second'));
387
+ const task = await createTask();
388
+ const teamRun = await service.createTeamRun(task.id, {
389
+ mode: 'AUTO',
390
+ memberPresetIds: [firstPreset.id, secondPreset.id],
391
+ });
392
+ const [firstMember, secondMember] = teamRun.members ?? [];
393
+ expect(firstMember).toBeDefined();
394
+ expect(secondMember).toBeDefined();
395
+ const firstMessage = await prisma.roomMessage.create({
396
+ data: {
397
+ teamRunId: teamRun.id,
398
+ senderType: 'user',
399
+ senderId: null,
400
+ senderInvocationId: null,
401
+ kind: 'chat',
402
+ content: 'First queued request\n\nwith more context',
403
+ mentions: '[]',
404
+ workRequestIds: '[]',
405
+ artifactRefs: '[]',
406
+ attachmentIds: '[]',
407
+ },
408
+ });
409
+ const secondMessage = await prisma.roomMessage.create({
410
+ data: {
411
+ teamRunId: teamRun.id,
412
+ senderType: 'user',
413
+ senderId: null,
414
+ senderInvocationId: null,
415
+ kind: 'chat',
416
+ content: 'Second queued request',
417
+ mentions: '[]',
418
+ workRequestIds: '[]',
419
+ artifactRefs: '[]',
420
+ attachmentIds: '[]',
421
+ },
422
+ });
423
+ const firstQueued = await prisma.workRequest.create({
424
+ data: {
425
+ teamRunId: teamRun.id,
426
+ requesterMemberId: null,
427
+ requesterType: 'user',
428
+ targetMemberId: firstMember.id,
429
+ triggerMessageId: firstMessage.id,
430
+ instruction: 'First queued request',
431
+ status: 'QUEUED',
432
+ },
433
+ });
434
+ await prisma.workRequest.create({
435
+ data: {
436
+ teamRunId: teamRun.id,
437
+ requesterMemberId: null,
438
+ requesterType: 'user',
439
+ targetMemberId: firstMember.id,
440
+ triggerMessageId: firstMessage.id,
441
+ instruction: 'Started request',
442
+ status: 'STARTED',
443
+ },
444
+ });
445
+ await prisma.workRequest.create({
446
+ data: {
447
+ teamRunId: teamRun.id,
448
+ requesterMemberId: null,
449
+ requesterType: 'user',
450
+ targetMemberId: secondMember.id,
451
+ triggerMessageId: secondMessage.id,
452
+ instruction: 'Second queued request',
453
+ status: 'QUEUED',
454
+ },
455
+ });
456
+ const queue = await service.listQueuedWorkRequestsForMember(teamRun.id, firstMember.id);
457
+ expect(queue).toMatchObject({
458
+ teamRunId: teamRun.id,
459
+ currentMemberId: firstMember.id,
460
+ queueManagementPolicy: 'own_only',
461
+ canManageTeamRunQueue: false,
462
+ });
463
+ expect(queue.workRequests).toHaveLength(1);
464
+ expect(queue.workRequests[0]).toMatchObject({
465
+ id: firstQueued.id,
466
+ targetMemberId: firstMember.id,
467
+ status: 'QUEUED',
468
+ targetMember: {
469
+ id: firstMember.id,
470
+ name: firstMember.name,
471
+ label: firstMember.name,
472
+ },
473
+ triggerMessage: {
474
+ id: firstMessage.id,
475
+ senderType: 'user',
476
+ kind: 'chat',
477
+ contentPreview: 'First queued request with more context',
478
+ },
479
+ });
480
+ });
481
+ it('lists all pending and queued WorkRequests for members with team_pending queueManagementPolicy', async () => {
482
+ const managerPreset = await service.createMemberPreset({
483
+ ...presetInput('Manager'),
484
+ queueManagementPolicy: 'team_pending',
485
+ });
486
+ const workerPreset = await service.createMemberPreset(presetInput('Worker'));
487
+ const task = await createTask();
488
+ const teamRun = await service.createTeamRun(task.id, {
489
+ mode: 'CONFIRM',
490
+ memberPresetIds: [managerPreset.id, workerPreset.id],
491
+ });
492
+ const [manager, worker] = teamRun.members ?? [];
493
+ expect(manager).toBeDefined();
494
+ expect(worker).toBeDefined();
495
+ const message = await prisma.roomMessage.create({
496
+ data: {
497
+ teamRunId: teamRun.id,
498
+ senderType: 'user',
499
+ senderId: null,
500
+ senderInvocationId: null,
501
+ kind: 'chat',
502
+ content: 'Queue visible to manager',
503
+ mentions: '[]',
504
+ workRequestIds: '[]',
505
+ artifactRefs: '[]',
506
+ attachmentIds: '[]',
507
+ },
508
+ });
509
+ const workerPending = await prisma.workRequest.create({
510
+ data: {
511
+ teamRunId: teamRun.id,
512
+ requesterMemberId: null,
513
+ requesterType: 'user',
514
+ targetMemberId: worker.id,
515
+ triggerMessageId: message.id,
516
+ instruction: 'Worker pending',
517
+ status: 'PENDING_APPROVAL',
518
+ createdAt: new Date(Date.UTC(2026, 0, 1, 0, 0, 1)),
519
+ },
520
+ });
521
+ const managerQueued = await prisma.workRequest.create({
522
+ data: {
523
+ teamRunId: teamRun.id,
524
+ requesterMemberId: null,
525
+ requesterType: 'user',
526
+ targetMemberId: manager.id,
527
+ triggerMessageId: message.id,
528
+ instruction: 'Manager queued',
529
+ status: 'QUEUED',
530
+ createdAt: new Date(Date.UTC(2026, 0, 1, 0, 0, 2)),
531
+ },
532
+ });
533
+ const queue = await service.listQueuedWorkRequestsForMember(teamRun.id, manager.id);
534
+ expect(queue.canManageTeamRunQueue).toBe(true);
535
+ expect(queue.queueManagementPolicy).toBe('team_pending');
536
+ expect(queue.workRequests.map((request) => request.id)).toEqual([workerPending.id, managerQueued.id]);
537
+ expect(queue.workRequests[0]).toMatchObject({
538
+ targetMemberId: worker.id,
539
+ targetMember: {
540
+ id: worker.id,
541
+ name: worker.name,
542
+ label: worker.name,
543
+ },
544
+ });
545
+ });
546
+ it('creates WorkRequests only for the selected memberId when same-name members are mentioned', async () => {
547
+ const task = await createTask();
548
+ const teamRun = await service.createTeamRun(task.id, {
549
+ mode: 'AUTO',
550
+ members: [
551
+ presetInput('Coder'),
552
+ presetInput('Coder'),
553
+ ],
554
+ });
555
+ const [firstCoder, secondCoder] = teamRun.members ?? [];
556
+ expect(firstCoder).toBeDefined();
557
+ expect(secondCoder).toBeDefined();
558
+ const message = await service.createRoomMessage(teamRun.id, {
559
+ content: '@Coder please implement this',
560
+ mentions: [{ memberId: secondCoder.id, label: secondCoder.name }],
561
+ });
562
+ const requests = await service.listWorkRequests(teamRun.id);
563
+ expect(message.mentions).toEqual([{ memberId: secondCoder.id, label: secondCoder.name }]);
564
+ expect(message.workRequestIds).toEqual([requests[0]?.id]);
565
+ expect(requests).toHaveLength(1);
566
+ expect(requests[0]).toMatchObject({
567
+ targetMemberId: secondCoder.id,
568
+ triggerMessageId: message.id,
569
+ instruction: '@Coder please implement this',
570
+ status: 'QUEUED',
571
+ });
572
+ expect(requests[0]?.targetMemberId).not.toBe(firstCoder.id);
573
+ });
574
+ it('does not parse text @name into WorkRequests when structured mentions are omitted', async () => {
575
+ const task = await createTask();
576
+ const teamRun = await service.createTeamRun(task.id, {
577
+ mode: 'AUTO',
578
+ members: [
579
+ presetInput('Coder'),
580
+ presetInput('Coder'),
581
+ ],
582
+ });
583
+ const message = await service.createRoomMessage(teamRun.id, {
584
+ content: '@Coder please implement this',
585
+ });
586
+ expect(message.mentions).toEqual([]);
587
+ expect(message.workRequestIds).toEqual([]);
588
+ await expect(service.listWorkRequests(teamRun.id)).resolves.toEqual([]);
589
+ });
228
590
  it('does not create USER_MESSAGES WorkRequests when a user message already has mentions', async () => {
229
591
  const leaderPreset = await service.createMemberPreset(userMessagesPresetInput('Leader'));
230
592
  const coderPreset = await service.createMemberPreset(presetInput('Coder'));
@@ -430,6 +792,60 @@ describe('TeamRunService', () => {
430
792
  expect(message.attachmentIds).toEqual(['attachment-1', 'attachment-2']);
431
793
  expect(messages[0]?.attachmentIds).toEqual(['attachment-1', 'attachment-2']);
432
794
  });
795
+ it('adds attachment markdown context to WorkRequest instructions from RoomMessage attachmentIds', async () => {
796
+ const preset = await service.createMemberPreset(presetInput('Coder'));
797
+ const task = await createTask();
798
+ const teamRun = await service.createTeamRun(task.id, {
799
+ mode: 'AUTO',
800
+ memberPresetIds: [preset.id],
801
+ });
802
+ const attachment = await prisma.attachment.create({
803
+ data: {
804
+ originalName: 'screenshot.png',
805
+ mimeType: 'image/png',
806
+ sizeBytes: 128,
807
+ storagePath: path.join(testDir, 'screenshot.png'),
808
+ hash: 'attachment-context-hash',
809
+ },
810
+ });
811
+ const message = await service.createRoomMessage(teamRun.id, {
812
+ content: 'Please inspect this UI',
813
+ mentions: [{ memberId: teamRun.members[0].id, label: 'Coder' }],
814
+ attachmentIds: [attachment.id],
815
+ });
816
+ const request = await prisma.workRequest.findUnique({
817
+ where: { id: message.workRequestIds[0] },
818
+ });
819
+ expect(request?.instruction).toBe(`Please inspect this UI\n\nAttachments:\n![screenshot.png](${attachment.storagePath})`);
820
+ });
821
+ it('does not duplicate WorkRequest attachment context when content already includes the storage path', async () => {
822
+ const preset = await service.createMemberPreset(presetInput('Coder'));
823
+ const task = await createTask();
824
+ const teamRun = await service.createTeamRun(task.id, {
825
+ mode: 'AUTO',
826
+ memberPresetIds: [preset.id],
827
+ });
828
+ const attachment = await prisma.attachment.create({
829
+ data: {
830
+ originalName: 'screenshot.png',
831
+ mimeType: 'image/png',
832
+ sizeBytes: 128,
833
+ storagePath: path.join(testDir, 'screenshot-dedup.png'),
834
+ hash: 'attachment-context-dedup-hash',
835
+ },
836
+ });
837
+ const content = `Please inspect this UI\n\n![screenshot.png](${attachment.storagePath})`;
838
+ const message = await service.createRoomMessage(teamRun.id, {
839
+ content,
840
+ mentions: [{ memberId: teamRun.members[0].id, label: 'Coder' }],
841
+ attachmentIds: [attachment.id],
842
+ });
843
+ const request = await prisma.workRequest.findUnique({
844
+ where: { id: message.workRequestIds[0] },
845
+ });
846
+ expect(request?.instruction).toBe(content);
847
+ expect(request?.instruction).not.toContain('Attachments:');
848
+ });
433
849
  it('returns a clear conflict when creating a second TeamRun for one Task', async () => {
434
850
  const preset = await service.createMemberPreset(presetInput('Coder'));
435
851
  const task = await createTask();
@@ -1 +1 @@
1
- {"version":3,"file":"team-run.service.test.js","sourceRoot":"","sources":["../../../src/services/__tests__/team-run.service.test.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"team-run.service.test.js","sourceRoot":"","sources":["../../../src/services/__tests__/team-run.service.test.ts"],"names":[],"mappings":"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"}