feat: wire code agent runs to tool mode

This commit is contained in:
John
2026-07-02 07:16:47 +08:00
parent e17dcaf4a8
commit 0271d83756
6 changed files with 343 additions and 22 deletions
+17 -4
View File
@@ -1061,11 +1061,18 @@ export function createTkmindProxy({
});
}
async function reconcileSessionPolicyForUser(userId, sessionId) {
async function getSessionPolicyForToolMode(userId, toolMode = 'chat') {
if (toolMode === 'code' && userAuth.getCodeAgentSessionPolicy) {
return userAuth.getCodeAgentSessionPolicy(userId);
}
return userAuth.getAgentSessionPolicy(userId);
}
async function reconcileSessionPolicyForUser(userId, sessionId, { toolMode = 'chat' } = {}) {
if (!userId || !sessionId) return;
const target = await resolveTarget(sessionId);
const workingDir = await userAuth.resolveWorkingDir(userId);
const sessionPolicy = await userAuth.getAgentSessionPolicy(userId);
const sessionPolicy = await getSessionPolicyForToolMode(userId, toolMode);
const publishLayout = await userAuth.getUserPublishLayout(userId);
const userMemories = conversationMemoryService?.listMemories
? await conversationMemoryService.listMemories(userId, { limit: 40 }).catch(() => [])
@@ -1091,7 +1098,13 @@ export function createTkmindProxy({
);
}
async function submitSessionReplyForUser(userId, sessionId, requestId, userMessage) {
async function submitSessionReplyForUser(
userId,
sessionId,
requestId,
userMessage,
{ toolMode = 'chat' } = {},
) {
if (!userId || !sessionId) throw new Error('缺少会话信息');
const owns = await userAuth.ownsSession(userId, sessionId);
if (!owns) throw new Error('无权访问该会话');
@@ -1103,7 +1116,7 @@ export function createTkmindProxy({
throw err;
}
await reconcileSessionPolicyForUser(userId, sessionId);
await reconcileSessionPolicyForUser(userId, sessionId, { toolMode });
await applySessionLlmProvider(sessionId);
const user = await userAuth.getUserById(userId);