agent-tower 0.5.2-beta.5 → 0.5.3-beta.0
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/dist/cli.js +14 -0
- package/dist/cli.js.map +1 -1
- package/dist/executors/__tests__/base.executor.test.js +12 -0
- package/dist/executors/__tests__/base.executor.test.js.map +1 -1
- package/dist/executors/execution-env.d.ts +1 -1
- package/dist/executors/execution-env.d.ts.map +1 -1
- package/dist/executors/execution-env.js +4 -0
- package/dist/executors/execution-env.js.map +1 -1
- package/dist/routes/conversations.d.ts +3 -0
- package/dist/routes/conversations.d.ts.map +1 -0
- package/dist/routes/conversations.js +102 -0
- package/dist/routes/conversations.js.map +1 -0
- 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/sessions.d.ts.map +1 -1
- package/dist/routes/sessions.js +37 -21
- package/dist/routes/sessions.js.map +1 -1
- package/dist/services/__tests__/conversation.service.test.d.ts +2 -0
- package/dist/services/__tests__/conversation.service.test.d.ts.map +1 -0
- package/dist/services/__tests__/conversation.service.test.js +102 -0
- package/dist/services/__tests__/conversation.service.test.js.map +1 -0
- package/dist/services/commit-message.service.d.ts.map +1 -1
- package/dist/services/commit-message.service.js +4 -0
- package/dist/services/commit-message.service.js.map +1 -1
- package/dist/services/conversation.service.d.ts +26 -0
- package/dist/services/conversation.service.d.ts.map +1 -0
- package/dist/services/conversation.service.js +224 -0
- package/dist/services/conversation.service.js.map +1 -0
- package/dist/services/session-manager.d.ts +69 -13
- package/dist/services/session-manager.d.ts.map +1 -1
- package/dist/services/session-manager.js +107 -42
- package/dist/services/session-manager.js.map +1 -1
- package/dist/services/task.service.d.ts +2 -2
- package/dist/services/terminal-manager.d.ts.map +1 -1
- package/dist/services/terminal-manager.js +2 -0
- package/dist/services/terminal-manager.js.map +1 -1
- package/dist/services/workspace.service.d.ts +9 -7
- package/dist/services/workspace.service.d.ts.map +1 -1
- package/dist/types/index.d.ts +4 -0
- package/dist/types/index.d.ts.map +1 -1
- package/dist/types/index.js +6 -0
- package/dist/types/index.js.map +1 -1
- package/dist/web/assets/AgentDemoPage-CUgqAjq9.js +1 -0
- package/dist/web/assets/ConversationPage-Cyiw8Hra.js +3 -0
- package/dist/web/assets/CreateTaskInput-BILlpv9b.js +2 -0
- package/dist/web/assets/{DemoPage-CaV94VWQ.js → DemoPage-SywVXjL0.js} +1 -1
- package/dist/web/assets/{GeneralSettingsPage-CyBUcF5g.js → GeneralSettingsPage-CTymytF6.js} +1 -1
- package/dist/web/assets/Icons-DmLVnVdg.js +1 -0
- package/dist/web/assets/{McpSettingsPage-CzE9eriX.js → McpSettingsPage-DyolUN8C.js} +1 -1
- package/dist/web/assets/{MemberAvatar-ChVx4wRa.js → MemberAvatar-u6jTOiDY.js} +1 -1
- package/dist/web/assets/NotificationSettingsPage-BBop2Bu4.js +1 -0
- package/dist/web/assets/ProfileSettingsPage-Bw-eI0cF.js +3 -0
- package/dist/web/assets/ProjectKanbanPage-BFf2FZVz.js +89 -0
- package/dist/web/assets/ProjectSettingsPage-BJ4sOhMl.js +2 -0
- package/dist/web/assets/{ProviderSettingsPage-DRUxVjQu.js → ProviderSettingsPage-BlLaN0i2.js} +19 -19
- package/dist/web/assets/{SettingsMasterDetail-CTXxGe3o.js → SettingsMasterDetail-CdimTj5n.js} +1 -1
- package/dist/web/assets/TeamSettingsPage-CqQTc5AI.js +1 -0
- package/dist/web/assets/arc-Ddp5hhH6.js +1 -0
- package/dist/web/assets/architectureDiagram-3BPJPVTR-CpK7WDLU.js +36 -0
- package/dist/web/assets/{arrow-left-D8mdzO_t.js → arrow-left-B6KMicbE.js} +1 -1
- package/dist/web/assets/blockDiagram-GPEHLZMM-6_0hov2h.js +132 -0
- package/dist/web/assets/c4Diagram-AAUBKEIU-Br6Tzu3R.js +10 -0
- package/dist/web/assets/channel-Bg_GO2e9.js +1 -0
- package/dist/web/assets/check-D9lM__p8.js +1 -0
- package/dist/web/assets/{chevron-down-DBS9-_Q3.js → chevron-down-Cur5jANy.js} +1 -1
- package/dist/web/assets/{chevron-right-pRSZZk-l.js → chevron-right-R3KVa8oQ.js} +1 -1
- package/dist/web/assets/{chevron-up-Bv9reJY4.js → chevron-up-DcLdFanO.js} +1 -1
- package/dist/web/assets/chunk-2J33WTMH-D8zyttB-.js +1 -0
- package/dist/web/assets/chunk-4BX2VUAB-Cqi9xJ8M.js +1 -0
- package/dist/web/assets/chunk-55IACEB6-Dxjaitf1.js +1 -0
- package/dist/web/assets/chunk-727SXJPM-CAn8Y9XB.js +206 -0
- package/dist/web/assets/chunk-AQP2D5EJ-B4sECH9U.js +231 -0
- package/dist/web/assets/chunk-FMBD7UC4-Ckd3e1dg.js +15 -0
- package/dist/web/assets/chunk-ND2GUHAM-h5WBT7BK.js +1 -0
- package/dist/web/assets/chunk-QZHKN3VN-Cdzk46MK.js +1 -0
- package/dist/web/assets/{circle-alert-DdGuxtmq.js → circle-alert-OKyZ9U2p.js} +1 -1
- package/dist/web/assets/classDiagram-4FO5ZUOK-BeJctdRx.js +1 -0
- package/dist/web/assets/classDiagram-v2-Q7XG4LA2-BeJctdRx.js +1 -0
- package/dist/web/assets/{code-block-OCS4YCEC-k5CJUaBc.js → code-block-OCS4YCEC-VMJOsrkF.js} +1 -1
- package/dist/web/assets/{confirm-dialog-Bit5jNx2.js → confirm-dialog-BAnxa2C9.js} +1 -1
- package/dist/web/assets/cose-bilkent-S5V4N54A-CbFey2pd.js +1 -0
- package/dist/web/assets/cytoscape.esm-D3_iZ_3b.js +321 -0
- package/dist/web/assets/dagre-BM42HDAG-Bd2eIyf3.js +4 -0
- package/dist/web/assets/defaultLocale-DX6XiGOO.js +1 -0
- package/dist/web/assets/diagram-2AECGRRQ-CXONvVnW.js +43 -0
- package/dist/web/assets/diagram-5GNKFQAL-B2E90mVs.js +10 -0
- package/dist/web/assets/diagram-KO2AKTUF-ByaC99pb.js +3 -0
- package/dist/web/assets/diagram-LMA3HP47-DwVBF2fn.js +24 -0
- package/dist/web/assets/diagram-OG6HWLK6-FWRddceo.js +24 -0
- package/dist/web/assets/erDiagram-TEJ5UH35-ye6i3SGj.js +85 -0
- package/dist/web/assets/flowDiagram-I6XJVG4X-B6l7qTcg.js +162 -0
- package/dist/web/assets/folder-B0m3OL2U.js +1 -0
- package/dist/web/assets/folder-picker-D5XrSfLA.js +1 -0
- package/dist/web/assets/ganttDiagram-6RSMTGT7-BCCqDrep.js +292 -0
- package/dist/web/assets/gitGraphDiagram-PVQCEYII-Ca4ANaSw.js +106 -0
- package/dist/web/assets/graph--OzhPTMs.js +1 -0
- package/dist/web/assets/index-C4twOgZR.css +1 -0
- package/dist/web/assets/index-C9hQg1KT.js +303 -0
- package/dist/web/assets/{index-B48HCCvn.js → index-DbO4YyUv.js} +6 -6
- package/dist/web/assets/infoDiagram-5YYISTIA-D1V1Tezr.js +2 -0
- package/dist/web/assets/init-Gi6I4Gst.js +1 -0
- package/dist/web/assets/{input-CapacyJb.js → input-Dqnd4oTj.js} +1 -1
- package/dist/web/assets/ishikawaDiagram-YF4QCWOH-DnGiJn9p.js +70 -0
- package/dist/web/assets/journeyDiagram-JHISSGLW-QFxbLfhN.js +139 -0
- package/dist/web/assets/kanban-definition-UN3LZRKU-BA2nBc7B.js +89 -0
- package/dist/web/assets/katex-HP8lGamR.js +257 -0
- package/dist/web/assets/{layers-CifLa7KP.js → layers-CfFYGUtI.js} +1 -1
- package/dist/web/assets/layout-SsrduOYp.js +1 -0
- package/dist/web/assets/linear-DpASQZmA.js +1 -0
- package/dist/web/assets/{loader-circle-CRx0_e2Z.js → loader-circle-B5Lfi46Y.js} +1 -1
- package/dist/web/assets/log-adapter-CjgRCCYG.js +1 -0
- package/dist/web/assets/{mermaid-NOHMQCX5-TDWqrpYr.js → mermaid-NOHMQCX5-7FmPQynq.js} +60 -60
- package/dist/web/assets/{message-square-BQB-4uFy.js → message-square-CEefL0sf.js} +1 -1
- package/dist/web/assets/mindmap-definition-RKZ34NQL-C7QuD-ms.js +96 -0
- package/dist/web/assets/modal-CAB_bs-c.js +1 -0
- package/dist/web/assets/ordinal-Cboi1Yqb.js +1 -0
- package/dist/web/assets/{pencil-D0ZsDzqo.js → pencil-B__GQn9r.js} +1 -1
- package/dist/web/assets/pieDiagram-4H26LBE5-Bf5diCKb.js +30 -0
- package/dist/web/assets/quadrantDiagram-W4KKPZXB-BMbcPnH3.js +7 -0
- package/dist/web/assets/requirementDiagram-4Y6WPE33-CUPvJXMk.js +84 -0
- package/dist/web/assets/{rotate-ccw-Cm5Zx65C.js → rotate-ccw-5d-eMwsw.js} +1 -1
- package/dist/web/assets/sankeyDiagram-5OEKKPKP-C77g6vmK.js +40 -0
- package/dist/web/assets/{select-YFykpbyQ.js → select-BJfNuuIV.js} +1 -1
- package/dist/web/assets/sequenceDiagram-3UESZ5HK-xGOV8CdQ.js +162 -0
- package/dist/web/assets/stateDiagram-AJRCARHV-Bc0piegy.js +1 -0
- package/dist/web/assets/stateDiagram-v2-BHNVJYJU-CiRT9t6d.js +1 -0
- package/dist/web/assets/{switch-D5RS57YU.js → switch-bLlDOWNp.js} +1 -1
- package/dist/web/assets/{terminal-r3vqhdyt.js → terminal-Bh2qSv0U.js} +1 -1
- package/dist/web/assets/{textarea-PjCFOxmD.js → textarea-BcVRpxhF.js} +1 -1
- package/dist/web/assets/timeline-definition-PNZ67QCA-CcACRt_V.js +120 -0
- package/dist/web/assets/trash-2-8Pu6lwnW.js +1 -0
- package/dist/web/assets/{upload-BkWqEmQd.js → upload-DNwyW_bv.js} +1 -1
- package/dist/web/assets/{use-profiles-Ch0Rlrh-.js → use-profiles-BIqkQu69.js} +1 -1
- package/dist/web/assets/{use-providers-CSQgeUSp.js → use-providers-BOyY0DcV.js} +1 -1
- package/dist/web/assets/vennDiagram-CIIHVFJN-BC9RHBQ5.js +34 -0
- package/dist/web/assets/wardley-L42UT6IY-BgPj73Dc.js +161 -0
- package/dist/web/assets/wardleyDiagram-YWT4CUSO-PbfDUndy.js +78 -0
- package/dist/web/assets/xychartDiagram-2RQKCTM6-D87KYJUM.js +7 -0
- package/dist/web/index.html +2 -2
- package/node_modules/@agent-tower/shared/dist/types.d.ts +41 -1
- package/node_modules/@agent-tower/shared/dist/types.d.ts.map +1 -1
- package/node_modules/@agent-tower/shared/dist/types.js +8 -0
- package/node_modules/@agent-tower/shared/dist/types.js.map +1 -1
- package/node_modules/@prisma/client/.prisma/client/edge.js +21 -6
- package/node_modules/@prisma/client/.prisma/client/index-browser.js +14 -0
- package/node_modules/@prisma/client/.prisma/client/index.d.ts +1789 -211
- package/node_modules/@prisma/client/.prisma/client/index.js +21 -6
- package/node_modules/@prisma/client/.prisma/client/package.json +1 -1
- package/node_modules/@prisma/client/.prisma/client/schema.prisma +34 -14
- package/node_modules/@prisma/client/.prisma/client/wasm.js +14 -0
- package/package.json +1 -1
- package/prisma/migrations/20260618000000_add_conversations/migration.sql +79 -0
- package/prisma/schema.prisma +22 -2
- package/dist/web/assets/AgentDemoPage-DYU0dSD9.js +0 -1
- package/dist/web/assets/NotificationSettingsPage-C68vNTcP.js +0 -1
- package/dist/web/assets/ProfileSettingsPage-CRz5C2OS.js +0 -3
- package/dist/web/assets/ProjectKanbanPage-Tmp1bu4q.js +0 -89
- package/dist/web/assets/ProjectSettingsPage-CVTWLRxT.js +0 -2
- package/dist/web/assets/TeamSettingsPage-DjP8gj71.js +0 -1
- package/dist/web/assets/check-CadkXmJ-.js +0 -1
- package/dist/web/assets/folder-picker-DSfmubl6.js +0 -1
- package/dist/web/assets/index-LbQD7FZK.css +0 -1
- package/dist/web/assets/log-adapter-CtvxzS4j.js +0 -1
- package/dist/web/assets/modal-B6TZLhQ2.js +0 -1
|
@@ -136,6 +136,10 @@ export class CommitMessageService {
|
|
|
136
136
|
});
|
|
137
137
|
if (!session || session.purpose !== SessionPurpose.COMMIT_MSG)
|
|
138
138
|
return;
|
|
139
|
+
if (!session.workspaceId || !session.workspace) {
|
|
140
|
+
console.warn(`[CommitMessageService] COMMIT_MSG session ${sessionId} has no workspace, skipping cache`);
|
|
141
|
+
return;
|
|
142
|
+
}
|
|
139
143
|
const commitMessage = this.extractCommitMessage(sessionId, session.logSnapshot);
|
|
140
144
|
if (!commitMessage) {
|
|
141
145
|
console.warn(`[CommitMessageService] No commit message extracted from session ${sessionId}`);
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"commit-message.service.js","sourceRoot":"","sources":["../../src/services/commit-message.service.ts"],"names":[],"mappings":"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
|
|
1
|
+
{"version":3,"file":"commit-message.service.js","sourceRoot":"","sources":["../../src/services/commit-message.service.ts"],"names":[],"mappings":"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"}
|
|
@@ -0,0 +1,26 @@
|
|
|
1
|
+
import type { Conversation } from '@agent-tower/shared';
|
|
2
|
+
import type { SessionManager } from './session-manager.js';
|
|
3
|
+
export interface CreateConversationInput {
|
|
4
|
+
prompt: string;
|
|
5
|
+
providerId: string;
|
|
6
|
+
variant?: string;
|
|
7
|
+
attachmentIds?: string[];
|
|
8
|
+
}
|
|
9
|
+
export interface SendConversationMessageInput {
|
|
10
|
+
message: string;
|
|
11
|
+
providerId?: string;
|
|
12
|
+
attachmentIds?: string[];
|
|
13
|
+
}
|
|
14
|
+
export declare function getConversationRoot(): string;
|
|
15
|
+
export declare function assertPathInsideConversationRoot(targetPath: string, root?: string): string;
|
|
16
|
+
export declare class ConversationService {
|
|
17
|
+
private readonly sessionManager;
|
|
18
|
+
constructor(sessionManager: SessionManager);
|
|
19
|
+
list(limit?: number): Promise<Conversation[]>;
|
|
20
|
+
findById(id: string): Promise<Conversation | null>;
|
|
21
|
+
create(input: CreateConversationInput): Promise<Conversation>;
|
|
22
|
+
sendMessage(id: string, input: SendConversationMessageInput): Promise<Conversation>;
|
|
23
|
+
stop(id: string): Promise<Conversation>;
|
|
24
|
+
delete(id: string): Promise<boolean>;
|
|
25
|
+
}
|
|
26
|
+
//# sourceMappingURL=conversation.service.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"conversation.service.d.ts","sourceRoot":"","sources":["../../src/services/conversation.service.ts"],"names":[],"mappings":"AAMA,OAAO,KAAK,EAAE,YAAY,EAAE,MAAM,qBAAqB,CAAC;AAIxD,OAAO,KAAK,EAAE,cAAc,EAAE,MAAM,sBAAsB,CAAC;AAU3D,MAAM,WAAW,uBAAuB;IACtC,MAAM,EAAE,MAAM,CAAC;IACf,UAAU,EAAE,MAAM,CAAC;IACnB,OAAO,CAAC,EAAE,MAAM,CAAC;IACjB,aAAa,CAAC,EAAE,MAAM,EAAE,CAAC;CAC1B;AAED,MAAM,WAAW,4BAA4B;IAC3C,OAAO,EAAE,MAAM,CAAC;IAChB,UAAU,CAAC,EAAE,MAAM,CAAC;IACpB,aAAa,CAAC,EAAE,MAAM,EAAE,CAAC;CAC1B;AAmED,wBAAgB,mBAAmB,IAAI,MAAM,CAE5C;AAED,wBAAgB,gCAAgC,CAAC,UAAU,EAAE,MAAM,EAAE,IAAI,SAAwB,GAAG,MAAM,CAkBzG;AAED,qBAAa,mBAAmB;IAClB,OAAO,CAAC,QAAQ,CAAC,cAAc;gBAAd,cAAc,EAAE,cAAc;IAErD,IAAI,CAAC,KAAK,SAAK;IAUf,QAAQ,CAAC,EAAE,EAAE,MAAM;IAQnB,MAAM,CAAC,KAAK,EAAE,uBAAuB;IAmErC,WAAW,CAAC,EAAE,EAAE,MAAM,EAAE,KAAK,EAAE,4BAA4B;IA+B3D,IAAI,CAAC,EAAE,EAAE,MAAM;IAkBf,MAAM,CAAC,EAAE,EAAE,MAAM;CAkBxB"}
|
|
@@ -0,0 +1,224 @@
|
|
|
1
|
+
import fs from 'node:fs/promises';
|
|
2
|
+
import path from 'node:path';
|
|
3
|
+
import { randomUUID } from 'node:crypto';
|
|
4
|
+
import { prisma } from '../utils/index.js';
|
|
5
|
+
import { SessionContext, SessionStatus } from '../types/index.js';
|
|
6
|
+
import { NotFoundError, ServiceError, ValidationError } from '../errors.js';
|
|
7
|
+
import { getProviderById } from '../executors/index.js';
|
|
8
|
+
import { resolveDataDir } from '../utils/data-dir.js';
|
|
9
|
+
import { appendAttachmentMarkdownContext } from './attachment-context.js';
|
|
10
|
+
const CONVERSATIONS_DIR = 'conversations';
|
|
11
|
+
const TITLE_MAX_LENGTH = 80;
|
|
12
|
+
function pad(value) {
|
|
13
|
+
return String(value).padStart(2, '0');
|
|
14
|
+
}
|
|
15
|
+
function formatTimestamp(date = new Date()) {
|
|
16
|
+
return [
|
|
17
|
+
date.getFullYear(),
|
|
18
|
+
pad(date.getMonth() + 1),
|
|
19
|
+
pad(date.getDate()),
|
|
20
|
+
'-',
|
|
21
|
+
pad(date.getHours()),
|
|
22
|
+
pad(date.getMinutes()),
|
|
23
|
+
pad(date.getSeconds()),
|
|
24
|
+
].join('');
|
|
25
|
+
}
|
|
26
|
+
function compactWhitespace(value) {
|
|
27
|
+
return value.replace(/\s+/g, ' ').trim();
|
|
28
|
+
}
|
|
29
|
+
function titleFromPrompt(prompt) {
|
|
30
|
+
const compact = compactWhitespace(prompt);
|
|
31
|
+
if (compact.length <= TITLE_MAX_LENGTH) {
|
|
32
|
+
return compact;
|
|
33
|
+
}
|
|
34
|
+
return `${compact.slice(0, TITLE_MAX_LENGTH - 3).trimEnd()}...`;
|
|
35
|
+
}
|
|
36
|
+
function parseTokenUsage(tokenUsage) {
|
|
37
|
+
if (!tokenUsage)
|
|
38
|
+
return null;
|
|
39
|
+
try {
|
|
40
|
+
return JSON.parse(tokenUsage);
|
|
41
|
+
}
|
|
42
|
+
catch {
|
|
43
|
+
return null;
|
|
44
|
+
}
|
|
45
|
+
}
|
|
46
|
+
function dateToIso(value) {
|
|
47
|
+
return value ? value.toISOString() : null;
|
|
48
|
+
}
|
|
49
|
+
function toConversationDto(conversation) {
|
|
50
|
+
const session = conversation.session;
|
|
51
|
+
if (!session) {
|
|
52
|
+
throw new ServiceError('Conversation has no session', 'CONVERSATION_SESSION_MISSING', 409);
|
|
53
|
+
}
|
|
54
|
+
return {
|
|
55
|
+
id: conversation.id,
|
|
56
|
+
title: conversation.title,
|
|
57
|
+
directoryName: conversation.directoryName,
|
|
58
|
+
workingDir: conversation.workingDir,
|
|
59
|
+
sessionId: session.id,
|
|
60
|
+
agentType: session.agentType,
|
|
61
|
+
status: session.status,
|
|
62
|
+
providerId: session.providerId ?? null,
|
|
63
|
+
variant: session.variant ?? null,
|
|
64
|
+
tokenUsage: parseTokenUsage(session.tokenUsage),
|
|
65
|
+
deletedAt: dateToIso(conversation.deletedAt),
|
|
66
|
+
lastActiveAt: conversation.lastActiveAt.toISOString(),
|
|
67
|
+
createdAt: conversation.createdAt.toISOString(),
|
|
68
|
+
updatedAt: conversation.updatedAt.toISOString(),
|
|
69
|
+
};
|
|
70
|
+
}
|
|
71
|
+
export function getConversationRoot() {
|
|
72
|
+
return path.join(resolveDataDir(), CONVERSATIONS_DIR);
|
|
73
|
+
}
|
|
74
|
+
export function assertPathInsideConversationRoot(targetPath, root = getConversationRoot()) {
|
|
75
|
+
const resolvedRoot = path.resolve(root);
|
|
76
|
+
const resolvedTarget = path.resolve(targetPath);
|
|
77
|
+
const relative = path.relative(resolvedRoot, resolvedTarget);
|
|
78
|
+
if (relative === ''
|
|
79
|
+
|| relative.startsWith('..')
|
|
80
|
+
|| path.isAbsolute(relative)) {
|
|
81
|
+
throw new ServiceError('Conversation directory is outside the managed conversations root', 'UNSAFE_CONVERSATION_PATH', 400);
|
|
82
|
+
}
|
|
83
|
+
return resolvedTarget;
|
|
84
|
+
}
|
|
85
|
+
export class ConversationService {
|
|
86
|
+
sessionManager;
|
|
87
|
+
constructor(sessionManager) {
|
|
88
|
+
this.sessionManager = sessionManager;
|
|
89
|
+
}
|
|
90
|
+
async list(limit = 50) {
|
|
91
|
+
const conversations = await prisma.conversation.findMany({
|
|
92
|
+
where: { deletedAt: null },
|
|
93
|
+
include: { session: true },
|
|
94
|
+
orderBy: [{ lastActiveAt: 'desc' }, { createdAt: 'desc' }],
|
|
95
|
+
take: Math.min(Math.max(limit, 1), 100),
|
|
96
|
+
});
|
|
97
|
+
return conversations.map(toConversationDto);
|
|
98
|
+
}
|
|
99
|
+
async findById(id) {
|
|
100
|
+
const conversation = await prisma.conversation.findFirst({
|
|
101
|
+
where: { id, deletedAt: null },
|
|
102
|
+
include: { session: true },
|
|
103
|
+
});
|
|
104
|
+
return conversation ? toConversationDto(conversation) : null;
|
|
105
|
+
}
|
|
106
|
+
async create(input) {
|
|
107
|
+
const rawPrompt = input.prompt.trim();
|
|
108
|
+
if (!rawPrompt) {
|
|
109
|
+
throw new ValidationError('Prompt is required');
|
|
110
|
+
}
|
|
111
|
+
const prompt = await appendAttachmentMarkdownContext(rawPrompt, input.attachmentIds);
|
|
112
|
+
const provider = getProviderById(input.providerId);
|
|
113
|
+
if (!provider) {
|
|
114
|
+
throw new ValidationError(`Provider not found: ${input.providerId}`);
|
|
115
|
+
}
|
|
116
|
+
const conversationId = randomUUID();
|
|
117
|
+
const root = getConversationRoot();
|
|
118
|
+
const directoryName = `${formatTimestamp()}-${conversationId.slice(0, 8)}`;
|
|
119
|
+
const workingDir = assertPathInsideConversationRoot(path.join(root, directoryName), root);
|
|
120
|
+
await fs.mkdir(workingDir, { recursive: true });
|
|
121
|
+
let created;
|
|
122
|
+
try {
|
|
123
|
+
created = await prisma.conversation.create({
|
|
124
|
+
data: {
|
|
125
|
+
id: conversationId,
|
|
126
|
+
title: titleFromPrompt(rawPrompt),
|
|
127
|
+
directoryName,
|
|
128
|
+
workingDir,
|
|
129
|
+
lastActiveAt: new Date(),
|
|
130
|
+
session: {
|
|
131
|
+
create: {
|
|
132
|
+
context: SessionContext.CONVERSATION,
|
|
133
|
+
agentType: provider.agentType,
|
|
134
|
+
variant: input.variant ?? 'DEFAULT',
|
|
135
|
+
providerId: provider.id,
|
|
136
|
+
prompt,
|
|
137
|
+
status: SessionStatus.PENDING,
|
|
138
|
+
},
|
|
139
|
+
},
|
|
140
|
+
},
|
|
141
|
+
include: { session: true },
|
|
142
|
+
});
|
|
143
|
+
}
|
|
144
|
+
catch (error) {
|
|
145
|
+
await fs.rm(workingDir, { recursive: true, force: true }).catch(() => { });
|
|
146
|
+
throw error;
|
|
147
|
+
}
|
|
148
|
+
if (!created.session) {
|
|
149
|
+
throw new ServiceError('Conversation session was not created', 'CONVERSATION_SESSION_MISSING', 500);
|
|
150
|
+
}
|
|
151
|
+
try {
|
|
152
|
+
await this.sessionManager.start(created.session.id);
|
|
153
|
+
}
|
|
154
|
+
catch (error) {
|
|
155
|
+
await prisma.session.update({
|
|
156
|
+
where: { id: created.session.id },
|
|
157
|
+
data: { status: SessionStatus.FAILED },
|
|
158
|
+
}).catch(() => { });
|
|
159
|
+
throw error;
|
|
160
|
+
}
|
|
161
|
+
const refreshed = await prisma.conversation.findUniqueOrThrow({
|
|
162
|
+
where: { id: created.id },
|
|
163
|
+
include: { session: true },
|
|
164
|
+
});
|
|
165
|
+
return toConversationDto(refreshed);
|
|
166
|
+
}
|
|
167
|
+
async sendMessage(id, input) {
|
|
168
|
+
const message = await appendAttachmentMarkdownContext(input.message.trim(), input.attachmentIds);
|
|
169
|
+
if (!message) {
|
|
170
|
+
throw new ValidationError('Message is required');
|
|
171
|
+
}
|
|
172
|
+
const conversation = await prisma.conversation.findFirst({
|
|
173
|
+
where: { id, deletedAt: null },
|
|
174
|
+
include: { session: true },
|
|
175
|
+
});
|
|
176
|
+
if (!conversation) {
|
|
177
|
+
throw new NotFoundError('Conversation', id);
|
|
178
|
+
}
|
|
179
|
+
if (!conversation.session) {
|
|
180
|
+
throw new ServiceError('Conversation has no session', 'CONVERSATION_SESSION_MISSING', 409);
|
|
181
|
+
}
|
|
182
|
+
await this.sessionManager.sendMessage(conversation.session.id, message, input.providerId);
|
|
183
|
+
const updated = await prisma.conversation.update({
|
|
184
|
+
where: { id },
|
|
185
|
+
data: { lastActiveAt: new Date() },
|
|
186
|
+
include: { session: true },
|
|
187
|
+
});
|
|
188
|
+
return toConversationDto(updated);
|
|
189
|
+
}
|
|
190
|
+
async stop(id) {
|
|
191
|
+
const conversation = await prisma.conversation.findFirst({
|
|
192
|
+
where: { id, deletedAt: null },
|
|
193
|
+
include: { session: true },
|
|
194
|
+
});
|
|
195
|
+
if (!conversation) {
|
|
196
|
+
throw new NotFoundError('Conversation', id);
|
|
197
|
+
}
|
|
198
|
+
if (conversation.session) {
|
|
199
|
+
await this.sessionManager.stop(conversation.session.id);
|
|
200
|
+
}
|
|
201
|
+
const updated = await prisma.conversation.findUniqueOrThrow({
|
|
202
|
+
where: { id },
|
|
203
|
+
include: { session: true },
|
|
204
|
+
});
|
|
205
|
+
return toConversationDto(updated);
|
|
206
|
+
}
|
|
207
|
+
async delete(id) {
|
|
208
|
+
const conversation = await prisma.conversation.findFirst({
|
|
209
|
+
where: { id, deletedAt: null },
|
|
210
|
+
include: { session: true },
|
|
211
|
+
});
|
|
212
|
+
if (!conversation) {
|
|
213
|
+
throw new NotFoundError('Conversation', id);
|
|
214
|
+
}
|
|
215
|
+
if (conversation.session) {
|
|
216
|
+
await this.sessionManager.stop(conversation.session.id).catch(() => { });
|
|
217
|
+
}
|
|
218
|
+
const safePath = assertPathInsideConversationRoot(conversation.workingDir);
|
|
219
|
+
await fs.rm(safePath, { recursive: true, force: true });
|
|
220
|
+
await prisma.conversation.delete({ where: { id } });
|
|
221
|
+
return true;
|
|
222
|
+
}
|
|
223
|
+
}
|
|
224
|
+
//# sourceMappingURL=conversation.service.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"conversation.service.js","sourceRoot":"","sources":["../../src/services/conversation.service.ts"],"names":[],"mappings":"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"}
|
|
@@ -32,7 +32,17 @@ export declare class SessionManager {
|
|
|
32
32
|
commitMessage: string | null;
|
|
33
33
|
previewTarget: string | null;
|
|
34
34
|
hibernatedAt: Date | null;
|
|
35
|
-
};
|
|
35
|
+
} | null;
|
|
36
|
+
conversation: {
|
|
37
|
+
id: string;
|
|
38
|
+
createdAt: Date;
|
|
39
|
+
updatedAt: Date;
|
|
40
|
+
title: string;
|
|
41
|
+
deletedAt: Date | null;
|
|
42
|
+
workingDir: string;
|
|
43
|
+
directoryName: string;
|
|
44
|
+
lastActiveAt: Date;
|
|
45
|
+
} | null;
|
|
36
46
|
processes: {
|
|
37
47
|
exitCode: number | null;
|
|
38
48
|
pid: number | null;
|
|
@@ -47,7 +57,9 @@ export declare class SessionManager {
|
|
|
47
57
|
createdAt: Date;
|
|
48
58
|
status: string;
|
|
49
59
|
updatedAt: Date;
|
|
50
|
-
workspaceId: string;
|
|
60
|
+
workspaceId: string | null;
|
|
61
|
+
conversationId: string | null;
|
|
62
|
+
context: string;
|
|
51
63
|
variant: string;
|
|
52
64
|
providerId: string | null;
|
|
53
65
|
prompt: string;
|
|
@@ -61,7 +73,9 @@ export declare class SessionManager {
|
|
|
61
73
|
createdAt: Date;
|
|
62
74
|
status: string;
|
|
63
75
|
updatedAt: Date;
|
|
64
|
-
workspaceId: string;
|
|
76
|
+
workspaceId: string | null;
|
|
77
|
+
conversationId: string | null;
|
|
78
|
+
context: string;
|
|
65
79
|
variant: string;
|
|
66
80
|
providerId: string | null;
|
|
67
81
|
prompt: string;
|
|
@@ -70,7 +84,7 @@ export declare class SessionManager {
|
|
|
70
84
|
tokenUsage: string | null;
|
|
71
85
|
}>;
|
|
72
86
|
start(id: string): Promise<({
|
|
73
|
-
workspace: {
|
|
87
|
+
workspace: ({
|
|
74
88
|
task: {
|
|
75
89
|
id: string;
|
|
76
90
|
createdAt: Date;
|
|
@@ -99,14 +113,26 @@ export declare class SessionManager {
|
|
|
99
113
|
commitMessage: string | null;
|
|
100
114
|
previewTarget: string | null;
|
|
101
115
|
hibernatedAt: Date | null;
|
|
102
|
-
};
|
|
116
|
+
}) | null;
|
|
117
|
+
conversation: {
|
|
118
|
+
id: string;
|
|
119
|
+
createdAt: Date;
|
|
120
|
+
updatedAt: Date;
|
|
121
|
+
title: string;
|
|
122
|
+
deletedAt: Date | null;
|
|
123
|
+
workingDir: string;
|
|
124
|
+
directoryName: string;
|
|
125
|
+
lastActiveAt: Date;
|
|
126
|
+
} | null;
|
|
103
127
|
} & {
|
|
104
128
|
agentType: string;
|
|
105
129
|
id: string;
|
|
106
130
|
createdAt: Date;
|
|
107
131
|
status: string;
|
|
108
132
|
updatedAt: Date;
|
|
109
|
-
workspaceId: string;
|
|
133
|
+
workspaceId: string | null;
|
|
134
|
+
conversationId: string | null;
|
|
135
|
+
context: string;
|
|
110
136
|
variant: string;
|
|
111
137
|
providerId: string | null;
|
|
112
138
|
prompt: string;
|
|
@@ -115,7 +141,7 @@ export declare class SessionManager {
|
|
|
115
141
|
tokenUsage: string | null;
|
|
116
142
|
}) | null>;
|
|
117
143
|
startFollowUp(id: string, resumeFromSessionId: string): Promise<({
|
|
118
|
-
workspace: {
|
|
144
|
+
workspace: ({
|
|
119
145
|
task: {
|
|
120
146
|
id: string;
|
|
121
147
|
createdAt: Date;
|
|
@@ -144,14 +170,26 @@ export declare class SessionManager {
|
|
|
144
170
|
commitMessage: string | null;
|
|
145
171
|
previewTarget: string | null;
|
|
146
172
|
hibernatedAt: Date | null;
|
|
147
|
-
};
|
|
173
|
+
}) | null;
|
|
174
|
+
conversation: {
|
|
175
|
+
id: string;
|
|
176
|
+
createdAt: Date;
|
|
177
|
+
updatedAt: Date;
|
|
178
|
+
title: string;
|
|
179
|
+
deletedAt: Date | null;
|
|
180
|
+
workingDir: string;
|
|
181
|
+
directoryName: string;
|
|
182
|
+
lastActiveAt: Date;
|
|
183
|
+
} | null;
|
|
148
184
|
} & {
|
|
149
185
|
agentType: string;
|
|
150
186
|
id: string;
|
|
151
187
|
createdAt: Date;
|
|
152
188
|
status: string;
|
|
153
189
|
updatedAt: Date;
|
|
154
|
-
workspaceId: string;
|
|
190
|
+
workspaceId: string | null;
|
|
191
|
+
conversationId: string | null;
|
|
192
|
+
context: string;
|
|
155
193
|
variant: string;
|
|
156
194
|
providerId: string | null;
|
|
157
195
|
prompt: string;
|
|
@@ -160,7 +198,7 @@ export declare class SessionManager {
|
|
|
160
198
|
tokenUsage: string | null;
|
|
161
199
|
}) | null>;
|
|
162
200
|
sendMessage(id: string, message: string, providerId?: string): Promise<({
|
|
163
|
-
workspace: {
|
|
201
|
+
workspace: ({
|
|
164
202
|
task: {
|
|
165
203
|
id: string;
|
|
166
204
|
createdAt: Date;
|
|
@@ -189,14 +227,26 @@ export declare class SessionManager {
|
|
|
189
227
|
commitMessage: string | null;
|
|
190
228
|
previewTarget: string | null;
|
|
191
229
|
hibernatedAt: Date | null;
|
|
192
|
-
};
|
|
230
|
+
}) | null;
|
|
231
|
+
conversation: {
|
|
232
|
+
id: string;
|
|
233
|
+
createdAt: Date;
|
|
234
|
+
updatedAt: Date;
|
|
235
|
+
title: string;
|
|
236
|
+
deletedAt: Date | null;
|
|
237
|
+
workingDir: string;
|
|
238
|
+
directoryName: string;
|
|
239
|
+
lastActiveAt: Date;
|
|
240
|
+
} | null;
|
|
193
241
|
} & {
|
|
194
242
|
agentType: string;
|
|
195
243
|
id: string;
|
|
196
244
|
createdAt: Date;
|
|
197
245
|
status: string;
|
|
198
246
|
updatedAt: Date;
|
|
199
|
-
workspaceId: string;
|
|
247
|
+
workspaceId: string | null;
|
|
248
|
+
conversationId: string | null;
|
|
249
|
+
context: string;
|
|
200
250
|
variant: string;
|
|
201
251
|
providerId: string | null;
|
|
202
252
|
prompt: string;
|
|
@@ -210,7 +260,9 @@ export declare class SessionManager {
|
|
|
210
260
|
createdAt: Date;
|
|
211
261
|
status: string;
|
|
212
262
|
updatedAt: Date;
|
|
213
|
-
workspaceId: string;
|
|
263
|
+
workspaceId: string | null;
|
|
264
|
+
conversationId: string | null;
|
|
265
|
+
context: string;
|
|
214
266
|
variant: string;
|
|
215
267
|
providerId: string | null;
|
|
216
268
|
prompt: string;
|
|
@@ -241,6 +293,10 @@ export declare class SessionManager {
|
|
|
241
293
|
private scheduleSnapshotPersist;
|
|
242
294
|
private flushSnapshotPersist;
|
|
243
295
|
private extractTokenUsageFromSnapshot;
|
|
296
|
+
private findSessionExecutionRecord;
|
|
297
|
+
private isConversationSession;
|
|
298
|
+
private ensureExecutionRecordIsLive;
|
|
299
|
+
private getExecutionWorkingDir;
|
|
244
300
|
/**
|
|
245
301
|
* Session 完成后检查 Task 是否可以自动推进状态。
|
|
246
302
|
*
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"session-manager.d.ts","sourceRoot":"","sources":["../../src/services/session-manager.ts"],"names":[],"mappings":"
|
|
1
|
+
{"version":3,"file":"session-manager.d.ts","sourceRoot":"","sources":["../../src/services/session-manager.ts"],"names":[],"mappings":"AAEA,OAAO,EAAE,SAAS,EAA6D,MAAM,mBAAmB,CAAC;AAezG,OAAO,KAAK,EAAE,QAAQ,EAAE,MAAM,sBAAsB,CAAC;AAErD,OAAO,EAAE,qBAAqB,EAAE,MAAM,8BAA8B,CAAC;AAUrE,UAAU,kBAAkB;IAC1B,oBAAoB,CAAC,EAAE,OAAO,CAAC;CAChC;AASD,qBAAa,cAAc;IAUb,OAAO,CAAC,QAAQ,CAAC,QAAQ;IATrC,OAAO,CAAC,SAAS,CAAoC;IACrD,OAAO,CAAC,aAAa,CAAmC;IACxD,OAAO,CAAC,YAAY,CAAwC;IAC5D,OAAO,CAAC,mBAAmB,CAAoD;IAC/E,OAAO,CAAC,mBAAmB,CAAoC;IAC/D,OAAO,CAAC,qBAAqB,CAAoC;IACjE,OAAO,CAAC,QAAQ,CAAC,cAAc,CAAwB;IACvD,OAAO,CAAC,MAAM,CAAC,QAAQ,CAAC,oBAAoB,CAAQ;gBAEvB,QAAQ,EAAE,QAAQ,EAAE,cAAc,CAAC,EAAE,qBAAqB;IA4CjF,QAAQ,CAAC,EAAE,EAAE,MAAM;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;IAOnB,MAAM,CAAC,WAAW,EAAE,MAAM,EAAE,SAAS,EAAE,SAAS,EAAE,MAAM,EAAE,MAAM,EAAE,OAAO,GAAE,MAAkB,EAAE,UAAU,CAAC,EAAE,MAAM;;;;;;;;;;;;;;;;IAuBlH,KAAK,CAAC,EAAE,EAAE,MAAM;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;IA2DhB,aAAa,CAAC,EAAE,EAAE,MAAM,EAAE,mBAAmB,EAAE,MAAM;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;IAkFrD,WAAW,CAAC,EAAE,EAAE,MAAM,EAAE,OAAO,EAAE,MAAM,EAAE,UAAU,CAAC,EAAE,MAAM;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;IA4I5D,IAAI,CAAC,EAAE,EAAE,MAAM,EAAE,OAAO,GAAE,kBAAuB;;;;;;;;;;;;;;;;IA6DvD,UAAU,CAAC,SAAS,EAAE,MAAM,EAAE,IAAI,EAAE,MAAM,GAAG,IAAI;IAMjD,MAAM,CAAC,SAAS,EAAE,MAAM,EAAE,IAAI,EAAE,MAAM,EAAE,IAAI,EAAE,MAAM,GAAG,IAAI;IAM3D;;OAEG;IACH,UAAU,IAAI,IAAI;IAclB,OAAO,CAAC,qBAAqB;IAkB7B,OAAO,CAAC,cAAc;YAeR,gCAAgC;YAqEhC,oBAAoB;IAsClC,OAAO,CAAC,YAAY;IAapB,OAAO,CAAC,6BAA6B;YAavB,0BAA0B;IAsBxC;;;;OAIG;YACW,iBAAiB;YA8BjB,wBAAwB;IAItC,OAAO,CAAC,uBAAuB;YAyBjB,oBAAoB;IA8FlC,OAAO,CAAC,6BAA6B;YAUvB,0BAA0B;IAUxC,OAAO,CAAC,qBAAqB;IAI7B,OAAO,CAAC,2BAA2B;IAcnC,OAAO,CAAC,sBAAsB;IAc9B;;;;;;;OAOG;YACW,oBAAoB;IA4ClC;;OAEG;IACH,OAAO,CAAC,8BAA8B;IAUtC;;;;;;;OAOG;YACW,mBAAmB;IAwCjC;;;;OAIG;YACW,iBAAiB;CA0EhC"}
|