mirror of
https://git.mirrors.martin98.com/https://github.com/bytedance/deer-flow
synced 2025-08-20 00:59:05 +08:00
feat: move getChatStreamSettings to settings store
This commit is contained in:
parent
26b123dd03
commit
fa7d38db4b
@ -3,7 +3,7 @@
|
||||
|
||||
import { create } from "zustand";
|
||||
|
||||
import type { MCPServerMetadata } from "../mcp";
|
||||
import type { MCPServerMetadata, SimpleMCPServerMetadata } from "../mcp";
|
||||
|
||||
const SETTINGS_KEY = "deerflow.settings";
|
||||
|
||||
@ -68,4 +68,56 @@ export const saveSettings = () => {
|
||||
localStorage.setItem(SETTINGS_KEY, json);
|
||||
};
|
||||
|
||||
export const getChatStreamSettings = () => {
|
||||
let mcpSettings:
|
||||
| {
|
||||
servers: Record<
|
||||
string,
|
||||
MCPServerMetadata & {
|
||||
enabled_tools: string[];
|
||||
add_to_agents: string[];
|
||||
}
|
||||
>;
|
||||
}
|
||||
| undefined = undefined;
|
||||
const { mcp, general } = useSettingsStore.getState();
|
||||
const mcpServers = mcp.servers.filter((server) => server.enabled);
|
||||
if (mcpServers.length > 0) {
|
||||
mcpSettings = {
|
||||
servers: mcpServers.reduce((acc, cur) => {
|
||||
const { transport, env } = cur;
|
||||
let server: SimpleMCPServerMetadata;
|
||||
if (transport === "stdio") {
|
||||
server = {
|
||||
name: cur.name,
|
||||
transport,
|
||||
env,
|
||||
command: cur.command,
|
||||
args: cur.args,
|
||||
};
|
||||
} else {
|
||||
server = {
|
||||
name: cur.name,
|
||||
transport,
|
||||
env,
|
||||
url: cur.url,
|
||||
};
|
||||
}
|
||||
return {
|
||||
...acc,
|
||||
[cur.name]: {
|
||||
...server,
|
||||
enabled_tools: cur.tools.map((tool) => tool.name),
|
||||
add_to_agents: ["researcher"],
|
||||
},
|
||||
};
|
||||
}, {}),
|
||||
};
|
||||
}
|
||||
return {
|
||||
...general,
|
||||
mcpSettings,
|
||||
};
|
||||
};
|
||||
|
||||
loadSettings();
|
||||
|
@ -5,12 +5,11 @@ import { nanoid } from "nanoid";
|
||||
import { create } from "zustand";
|
||||
|
||||
import { chatStream, generatePodcast } from "../api";
|
||||
import type { MCPServerMetadata, SimpleMCPServerMetadata } from "../mcp";
|
||||
import type { Message } from "../messages";
|
||||
import { mergeMessage } from "../messages";
|
||||
import { parseJSON } from "../utils";
|
||||
|
||||
import { useSettingsStore } from "./settings-store";
|
||||
import { getChatStreamSettings } from "./settings-store";
|
||||
|
||||
const THREAD_ID = nanoid();
|
||||
|
||||
@ -140,59 +139,6 @@ export async function sendMessage(
|
||||
}
|
||||
}
|
||||
|
||||
function getChatStreamSettings() {
|
||||
let mcpSettings:
|
||||
| {
|
||||
servers: Record<
|
||||
string,
|
||||
MCPServerMetadata & {
|
||||
enabled_tools: string[];
|
||||
add_to_agents: string[];
|
||||
}
|
||||
>;
|
||||
}
|
||||
| undefined = undefined;
|
||||
const settings = useSettingsStore.getState();
|
||||
const mcpServers = settings.mcp.servers.filter((server) => server.enabled);
|
||||
if (mcpServers.length > 0) {
|
||||
mcpSettings = {
|
||||
servers: mcpServers.reduce((acc, cur) => {
|
||||
const { transport, env } = cur;
|
||||
let server: SimpleMCPServerMetadata;
|
||||
if (transport === "stdio") {
|
||||
server = {
|
||||
name: cur.name,
|
||||
transport,
|
||||
env,
|
||||
command: cur.command,
|
||||
args: cur.args,
|
||||
};
|
||||
} else {
|
||||
server = {
|
||||
name: cur.name,
|
||||
transport,
|
||||
env,
|
||||
url: cur.url,
|
||||
};
|
||||
}
|
||||
return {
|
||||
...acc,
|
||||
[cur.name]: {
|
||||
...server,
|
||||
enabled_tools: cur.tools.map((tool) => tool.name),
|
||||
add_to_agents: ["researcher"],
|
||||
},
|
||||
};
|
||||
}, {}),
|
||||
};
|
||||
}
|
||||
return {
|
||||
...settings.general,
|
||||
mcpSettings,
|
||||
};
|
||||
}
|
||||
|
||||
|
||||
function setResponding(value: boolean) {
|
||||
useStore.setState({ responding: value });
|
||||
}
|
||||
|
Loading…
x
Reference in New Issue
Block a user