mirror of
https://git.mirrors.martin98.com/https://github.com/bytedance/deer-flow
synced 2025-08-20 17:29:09 +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 { create } from "zustand";
|
||||||
|
|
||||||
import type { MCPServerMetadata } from "../mcp";
|
import type { MCPServerMetadata, SimpleMCPServerMetadata } from "../mcp";
|
||||||
|
|
||||||
const SETTINGS_KEY = "deerflow.settings";
|
const SETTINGS_KEY = "deerflow.settings";
|
||||||
|
|
||||||
@ -68,4 +68,56 @@ export const saveSettings = () => {
|
|||||||
localStorage.setItem(SETTINGS_KEY, json);
|
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();
|
loadSettings();
|
||||||
|
@ -5,12 +5,11 @@ import { nanoid } from "nanoid";
|
|||||||
import { create } from "zustand";
|
import { create } from "zustand";
|
||||||
|
|
||||||
import { chatStream, generatePodcast } from "../api";
|
import { chatStream, generatePodcast } from "../api";
|
||||||
import type { MCPServerMetadata, SimpleMCPServerMetadata } from "../mcp";
|
|
||||||
import type { Message } from "../messages";
|
import type { Message } from "../messages";
|
||||||
import { mergeMessage } from "../messages";
|
import { mergeMessage } from "../messages";
|
||||||
import { parseJSON } from "../utils";
|
import { parseJSON } from "../utils";
|
||||||
|
|
||||||
import { useSettingsStore } from "./settings-store";
|
import { getChatStreamSettings } from "./settings-store";
|
||||||
|
|
||||||
const THREAD_ID = nanoid();
|
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) {
|
function setResponding(value: boolean) {
|
||||||
useStore.setState({ responding: value });
|
useStore.setState({ responding: value });
|
||||||
}
|
}
|
||||||
|
Loading…
x
Reference in New Issue
Block a user