qwen-code/packages/web-shell/client/components/agents/agent-tool-options.ts
ytahdn c0fee1b609
feat(web-shell): add workspace agent management (#7572)
* feat(web-shell): add workspace agent management

* test(web-shell): remove unstable extensions page tests

* fix(agents): address management review feedback

---------

Co-authored-by: ytahdn <ytahdn@gmail.com>
2026-07-23 08:42:08 +00:00

44 lines
1.1 KiB
TypeScript

import type {
DaemonWorkspaceMcpToolStatus,
DaemonWorkspaceToolStatus,
} from '@qwen-code/webui/daemon-react-sdk';
export function canAddSelection(
selection: ReadonlySet<string>,
value: string,
): boolean {
return Boolean(value) && !selection.has(value);
}
export function selectBuiltInTools(
tools: DaemonWorkspaceToolStatus[],
mcpTools: Record<string, DaemonWorkspaceMcpToolStatus[]>,
): DaemonWorkspaceToolStatus[] {
const mcpNames = new Set(
Object.values(mcpTools).flatMap((items) => items.map((tool) => tool.name)),
);
return tools.filter(
(tool) =>
tool.enabled &&
!tool.name.startsWith('mcp__') &&
!mcpNames.has(tool.name),
);
}
export function selectDiscoverableMcpServerNames(
servers: Array<{
name: string;
disabled: boolean;
status: string;
mcpStatus?: 'connected' | 'connecting' | 'disconnected';
}>,
): string[] {
return servers
.filter(
(server) =>
!server.disabled &&
(server.mcpStatus === 'connected' ||
(server.mcpStatus === undefined && server.status === 'ok')),
)
.map((server) => server.name);
}