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.
- package/dist/app.test.js +2 -0
- package/dist/app.test.js.map +1 -1
- package/dist/git/git-cli.d.ts +18 -1
- package/dist/git/git-cli.d.ts.map +1 -1
- package/dist/git/git-cli.js +17 -1
- package/dist/git/git-cli.js.map +1 -1
- package/dist/git/worktree.manager.d.ts +29 -2
- package/dist/git/worktree.manager.d.ts.map +1 -1
- package/dist/git/worktree.manager.js +137 -16
- package/dist/git/worktree.manager.js.map +1 -1
- package/dist/git/worktree.manager.test.d.ts +2 -0
- package/dist/git/worktree.manager.test.d.ts.map +1 -0
- package/dist/git/worktree.manager.test.js +104 -0
- package/dist/git/worktree.manager.test.js.map +1 -0
- package/dist/mcp/http-client.d.ts.map +1 -1
- package/dist/mcp/http-client.js +8 -1
- package/dist/mcp/http-client.js.map +1 -1
- package/dist/middleware/tunnel-auth.d.ts.map +1 -1
- package/dist/middleware/tunnel-auth.js +2 -0
- package/dist/middleware/tunnel-auth.js.map +1 -1
- package/dist/output/__tests__/codex-parser.test.d.ts +2 -0
- package/dist/output/__tests__/codex-parser.test.d.ts.map +1 -0
- package/dist/output/__tests__/codex-parser.test.js +148 -0
- package/dist/output/__tests__/codex-parser.test.js.map +1 -0
- package/dist/output/codex-parser.d.ts +12 -0
- package/dist/output/codex-parser.d.ts.map +1 -1
- package/dist/output/codex-parser.js +129 -12
- package/dist/output/codex-parser.js.map +1 -1
- package/dist/routes/__tests__/attachments.test.d.ts +2 -0
- package/dist/routes/__tests__/attachments.test.d.ts.map +1 -0
- package/dist/routes/__tests__/attachments.test.js +86 -0
- package/dist/routes/__tests__/attachments.test.js.map +1 -0
- package/dist/routes/__tests__/filesystem.test.d.ts +2 -0
- package/dist/routes/__tests__/filesystem.test.d.ts.map +1 -0
- package/dist/routes/__tests__/filesystem.test.js +80 -0
- package/dist/routes/__tests__/filesystem.test.js.map +1 -0
- package/dist/routes/__tests__/previews.test.d.ts +2 -0
- package/dist/routes/__tests__/previews.test.d.ts.map +1 -0
- package/dist/routes/__tests__/previews.test.js +89 -0
- package/dist/routes/__tests__/previews.test.js.map +1 -0
- package/dist/routes/__tests__/tasks.test.d.ts +2 -0
- package/dist/routes/__tests__/tasks.test.d.ts.map +1 -0
- package/dist/routes/__tests__/tasks.test.js +72 -0
- package/dist/routes/__tests__/tasks.test.js.map +1 -0
- package/dist/routes/attachments.d.ts.map +1 -1
- package/dist/routes/attachments.js +36 -16
- package/dist/routes/attachments.js.map +1 -1
- package/dist/routes/filesystem.d.ts.map +1 -1
- package/dist/routes/filesystem.js +24 -3
- package/dist/routes/filesystem.js.map +1 -1
- package/dist/routes/index.d.ts.map +1 -1
- package/dist/routes/index.js +3 -0
- package/dist/routes/index.js.map +1 -1
- package/dist/routes/previews.d.ts +6 -0
- package/dist/routes/previews.d.ts.map +1 -0
- package/dist/routes/previews.js +413 -0
- package/dist/routes/previews.js.map +1 -0
- package/dist/routes/projects.d.ts.map +1 -1
- package/dist/routes/projects.js +1 -0
- package/dist/routes/projects.js.map +1 -1
- package/dist/routes/tasks.js +2 -2
- package/dist/routes/tasks.js.map +1 -1
- package/dist/routes/team-runs.d.ts.map +1 -1
- package/dist/routes/team-runs.js +18 -8
- package/dist/routes/team-runs.js.map +1 -1
- package/dist/routes/tunnel.d.ts.map +1 -1
- package/dist/routes/tunnel.js +20 -0
- package/dist/routes/tunnel.js.map +1 -1
- package/dist/routes/workspaces.d.ts.map +1 -1
- package/dist/routes/workspaces.js +15 -1
- package/dist/routes/workspaces.js.map +1 -1
- package/dist/services/__tests__/preview.service.test.d.ts +2 -0
- package/dist/services/__tests__/preview.service.test.d.ts.map +1 -0
- package/dist/services/__tests__/preview.service.test.js +29 -0
- package/dist/services/__tests__/preview.service.test.js.map +1 -0
- package/dist/services/__tests__/task.service.test.d.ts +2 -0
- package/dist/services/__tests__/task.service.test.d.ts.map +1 -0
- package/dist/services/__tests__/task.service.test.js +65 -0
- package/dist/services/__tests__/task.service.test.js.map +1 -0
- package/dist/services/__tests__/team-reconciler.service.test.js +525 -27
- package/dist/services/__tests__/team-reconciler.service.test.js.map +1 -1
- package/dist/services/__tests__/team-run.service.test.js +252 -0
- package/dist/services/__tests__/team-run.service.test.js.map +1 -1
- package/dist/services/__tests__/team-scheduler.service.test.js +551 -21
- package/dist/services/__tests__/team-scheduler.service.test.js.map +1 -1
- package/dist/services/__tests__/tunnel.service.test.d.ts +2 -0
- package/dist/services/__tests__/tunnel.service.test.d.ts.map +1 -0
- package/dist/services/__tests__/tunnel.service.test.js +138 -0
- package/dist/services/__tests__/tunnel.service.test.js.map +1 -0
- package/dist/services/__tests__/workspace.service.test.d.ts +2 -0
- package/dist/services/__tests__/workspace.service.test.d.ts.map +1 -0
- package/dist/services/__tests__/workspace.service.test.js +695 -0
- package/dist/services/__tests__/workspace.service.test.js.map +1 -0
- package/dist/services/attachment-context.d.ts +3 -0
- package/dist/services/attachment-context.d.ts.map +1 -0
- package/dist/services/attachment-context.js +34 -0
- package/dist/services/attachment-context.js.map +1 -0
- package/dist/services/preview.service.d.ts +19 -0
- package/dist/services/preview.service.d.ts.map +1 -0
- package/dist/services/preview.service.js +147 -0
- package/dist/services/preview.service.js.map +1 -0
- package/dist/services/project.service.d.ts +2 -0
- package/dist/services/project.service.d.ts.map +1 -1
- package/dist/services/project.service.js +87 -18
- package/dist/services/project.service.js.map +1 -1
- package/dist/services/session-manager.d.ts +12 -0
- package/dist/services/session-manager.d.ts.map +1 -1
- package/dist/services/task.service.d.ts +6 -0
- package/dist/services/task.service.d.ts.map +1 -1
- package/dist/services/task.service.js +15 -3
- package/dist/services/task.service.js.map +1 -1
- package/dist/services/team-lock.service.d.ts +3 -0
- package/dist/services/team-lock.service.d.ts.map +1 -1
- package/dist/services/team-lock.service.js +11 -0
- package/dist/services/team-lock.service.js.map +1 -1
- package/dist/services/team-run.service.d.ts +3 -0
- package/dist/services/team-run.service.d.ts.map +1 -1
- package/dist/services/team-run.service.js +288 -30
- package/dist/services/team-run.service.js.map +1 -1
- package/dist/services/team-scheduler.service.d.ts +15 -0
- package/dist/services/team-scheduler.service.d.ts.map +1 -1
- package/dist/services/team-scheduler.service.js +125 -32
- package/dist/services/team-scheduler.service.js.map +1 -1
- package/dist/services/tunnel.service.d.ts +31 -5
- package/dist/services/tunnel.service.d.ts.map +1 -1
- package/dist/services/tunnel.service.js +293 -32
- package/dist/services/tunnel.service.js.map +1 -1
- package/dist/services/workspace.service.d.ts +161 -7
- package/dist/services/workspace.service.d.ts.map +1 -1
- package/dist/services/workspace.service.js +396 -51
- package/dist/services/workspace.service.js.map +1 -1
- package/dist/web/assets/{AgentDemoPage-p9YI4_l4.js → AgentDemoPage-Bf6labVB.js} +1 -1
- package/dist/web/assets/{DemoPage-B5DTSEbS.js → DemoPage-DlfG47rV.js} +1 -1
- package/dist/web/assets/{GeneralSettingsPage-Cspr7Vol.js → GeneralSettingsPage-DefqwzVn.js} +1 -1
- package/dist/web/assets/MemberAvatar-DVw_TedB.js +1 -0
- package/dist/web/assets/NotificationSettingsPage-C9h1U1Za.js +1 -0
- package/dist/web/assets/{ProfileSettingsPage-CNugU40a.js → ProfileSettingsPage-BkZE2yVP.js} +1 -1
- package/dist/web/assets/ProjectKanbanPage-B1Ckl1uY.js +89 -0
- package/dist/web/assets/ProjectSettingsPage-ByZ13awb.js +2 -0
- package/dist/web/assets/{ProviderSettingsPage-D_KWkgRM.js → ProviderSettingsPage-DSQYe8B6.js} +12 -12
- package/dist/web/assets/TeamSettingsPage-DUukJ_Ih.js +1 -0
- package/dist/web/assets/agent-tower-logo-COx9gy77.png +0 -0
- package/dist/web/assets/{button-B6JaSbDB.js → button-Bpm98eOV.js} +1 -1
- package/dist/web/assets/{chevron-down-CACy4UFq.js → chevron-down-DSKKXCi8.js} +1 -1
- package/dist/web/assets/{chevron-right-DFWfnDJY.js → chevron-right-CZdDV9GU.js} +1 -1
- package/dist/web/assets/{chevron-up-CGlf6jzw.js → chevron-up-gnnlwvYe.js} +1 -1
- package/dist/web/assets/{circle-check-DMK8auwb.js → circle-check-DeD_VuLK.js} +1 -1
- package/dist/web/assets/{code-block-OCS4YCEC-Hn75KHRK.js → code-block-OCS4YCEC-BrGjkdjS.js} +1 -1
- package/dist/web/assets/{confirm-dialog-DHI2f7Ni.js → confirm-dialog-CEVVvAcE.js} +1 -1
- package/dist/web/assets/folder-picker-ZBQlFEWL.js +1 -0
- package/dist/web/assets/{index-BFAA3PTl.js → index-B5g4V0NU.js} +6 -6
- package/dist/web/assets/index-ltjI8o6A.css +1 -0
- package/dist/web/assets/loader-circle-GMfBClX0.js +1 -0
- package/dist/web/assets/{log-adapter-CeKrvZcz.js → log-adapter-DKKM3sxS.js} +1 -1
- package/dist/web/assets/{mermaid-NOHMQCX5-DJFgrXPd.js → mermaid-NOHMQCX5-D5USvUiZ.js} +4 -4
- package/dist/web/assets/{modal-B5IRN7QI.js → modal-JMpuh-LG.js} +1 -1
- package/dist/web/assets/{pencil-CJY6Ahn7.js → pencil-QrCW47nn.js} +1 -1
- package/dist/web/assets/{select-BPZZlla1.js → select-CINRzLiE.js} +1 -1
- package/dist/web/assets/upload-vFxZxKHo.js +1 -0
- package/dist/web/assets/{use-profiles-C2k04ICZ.js → use-profiles-SrVWPYv0.js} +1 -1
- package/dist/web/assets/{use-providers-C7fIDWzP.js → use-providers-BihMydl0.js} +1 -1
- package/dist/web/avatars/presets/avatar-preset-01-developer.png +0 -0
- package/dist/web/avatars/presets/avatar-preset-02-architect.png +0 -0
- package/dist/web/avatars/presets/avatar-preset-03-tester.png +0 -0
- package/dist/web/avatars/presets/avatar-preset-04-devops.png +0 -0
- package/dist/web/avatars/presets/avatar-preset-05-data-scientist.png +0 -0
- package/dist/web/avatars/presets/avatar-preset-06-frontend.png +0 -0
- package/dist/web/avatars/presets/avatar-preset-07-backend.png +0 -0
- package/dist/web/avatars/presets/avatar-preset-08-security.png +0 -0
- package/dist/web/avatars/presets/avatar-preset-09-project-manager.png +0 -0
- package/dist/web/avatars/presets/avatar-preset-10-product-manager.png +0 -0
- package/dist/web/avatars/presets/avatar-preset-11-scrum-master.png +0 -0
- package/dist/web/avatars/presets/avatar-preset-12-tech-lead.png +0 -0
- package/dist/web/avatars/presets/avatar-preset-13-coordinator.png +0 -0
- package/dist/web/avatars/presets/avatar-preset-14-mentor.png +0 -0
- package/dist/web/avatars/presets/avatar-preset-15-reviewer.png +0 -0
- package/dist/web/avatars/presets/avatar-preset-16-ui-designer.png +0 -0
- package/dist/web/avatars/presets/avatar-preset-17-ux-researcher.png +0 -0
- package/dist/web/avatars/presets/avatar-preset-18-documenter.png +0 -0
- package/dist/web/avatars/presets/avatar-preset-19-translator.png +0 -0
- package/dist/web/avatars/presets/avatar-preset-20-analyst.png +0 -0
- package/dist/web/avatars/presets/avatar-preset-21-consultant.png +0 -0
- package/dist/web/avatars/presets/avatar-preset-22-creative-director.png +0 -0
- package/dist/web/avatars/presets/avatar-preset-23-support.png +0 -0
- package/dist/web/avatars/presets/avatar-preset-24-assistant.png +0 -0
- package/dist/web/avatars/presets/avatar-preset-25-robot.png +0 -0
- package/dist/web/avatars/presets/avatar-preset-grid.png +0 -0
- package/dist/web/index.html +2 -2
- package/node_modules/@agent-tower/shared/dist/types.d.ts +9 -1
- package/node_modules/@agent-tower/shared/dist/types.d.ts.map +1 -1
- package/node_modules/@agent-tower/shared/dist/types.js.map +1 -1
- package/node_modules/@prisma/client/.prisma/client/edge.js +9 -5
- package/node_modules/@prisma/client/.prisma/client/index-browser.js +4 -0
- package/node_modules/@prisma/client/.prisma/client/index.d.ts +1242 -14
- package/node_modules/@prisma/client/.prisma/client/index.js +9 -5
- package/node_modules/@prisma/client/.prisma/client/package.json +1 -1
- package/node_modules/@prisma/client/.prisma/client/schema.prisma +47 -31
- package/node_modules/@prisma/client/.prisma/client/wasm.js +4 -0
- package/package.json +1 -1
- package/prisma/migrations/20260515000000_add_workspace_preview_target/migration.sql +2 -0
- package/prisma/migrations/20260526000000_add_team_run_main_and_dedicated_workspaces/migration.sql +21 -0
- package/prisma/schema.prisma +27 -11
- package/dist/web/assets/NotificationSettingsPage-C9VfrRr-.js +0 -1
- package/dist/web/assets/ProjectKanbanPage-CkGNuqxq.js +0 -87
- package/dist/web/assets/ProjectSettingsPage-f1dg0XMf.js +0 -2
- package/dist/web/assets/TeamSettingsPage-B6WciZyi.js +0 -1
- package/dist/web/assets/circle-alert-BSAUEd9O.js +0 -1
- package/dist/web/assets/folder-picker-CtQkbWfa.js +0 -1
- package/dist/web/assets/index-mBCb67dB.css +0 -1
- package/dist/web/assets/loader-circle-CkDnf8ST.js +0 -1
- 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
|
|
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:
|
|
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":"AAAA,OAAO,KAAK,EACV,eAAe,EAGf,YAAY,EACZ,WAAW,EACX,eAAe,EACf,qBAAqB,EACrB,iBAAiB,EACjB,UAAU,EACV,sBAAsB,EACtB,uBAAuB,
|
|
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
|
|
254
|
-
|
|
255
|
-
|
|
256
|
-
|
|
257
|
-
|
|
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
|
-
|
|
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 =
|
|
342
|
-
|
|
343
|
-
|
|
344
|
-
|
|
345
|
-
|
|
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:
|
|
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
|
-
|
|
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
|
};
|