源码快照 @ 2026-09-02 (source-only, 剔除非源码素材)
This commit is contained in:
@@ -0,0 +1,79 @@
|
||||
import { describe, expect, test } from "bun:test";
|
||||
import type { DynamicToolUIPart } from "ai";
|
||||
|
||||
import type { DenExternalMcpConnection } from "../src/app/lib/den";
|
||||
import {
|
||||
buildConnectorToolIdentities,
|
||||
resolveConnectorToolIdentity,
|
||||
} from "../src/react-app/domains/connections/connector-tool-identity";
|
||||
|
||||
function completedPart(toolName: string, input: Record<string, unknown>): DynamicToolUIPart {
|
||||
return {
|
||||
type: "dynamic-tool",
|
||||
toolName,
|
||||
toolCallId: `call-${toolName}`,
|
||||
state: "output-available",
|
||||
input,
|
||||
output: {},
|
||||
};
|
||||
}
|
||||
|
||||
const granolaConnection: DenExternalMcpConnection = {
|
||||
id: "emc_granola",
|
||||
name: "Meeting notes",
|
||||
url: "https://mcp.granola.ai/mcp",
|
||||
authType: "oauth",
|
||||
credentialMode: "per_member",
|
||||
connected: true,
|
||||
connectedAt: "2026-08-26T00:00:00.000Z",
|
||||
connectedForMe: true,
|
||||
nativeProviderKey: null,
|
||||
};
|
||||
|
||||
describe("connector tool identity", () => {
|
||||
test("recognizes native connector capabilities with a first-class local brand icon", () => {
|
||||
const identities = buildConnectorToolIdentities({ mcpServers: [], orgConnections: [] });
|
||||
const identity = resolveConnectorToolIdentity(
|
||||
completedPart("openwork-cloud_execute_capability", {
|
||||
name: "getCapabilitiesGoogleWorkspaceCalendarEvents",
|
||||
}),
|
||||
identities,
|
||||
);
|
||||
|
||||
expect(identity?.name).toBe("Google Workspace");
|
||||
expect(identity?.iconUrl).toEndWith("/ext-google-workspace.svg");
|
||||
});
|
||||
|
||||
test("uses the exact organization connector for opaque MCP capability names", () => {
|
||||
const identities = buildConnectorToolIdentities({
|
||||
mcpServers: [],
|
||||
orgConnections: [granolaConnection],
|
||||
});
|
||||
const identity = resolveConnectorToolIdentity(
|
||||
completedPart("openwork-cloud_execute_capability", {
|
||||
name: "mcp:emc_granola:ask_about_meetings",
|
||||
}),
|
||||
identities,
|
||||
);
|
||||
|
||||
expect(identity?.name).toBe("Meeting notes");
|
||||
expect(identity?.connectionId).toBe("emc_granola");
|
||||
expect(identity?.iconUrl).toContain("granola.ai");
|
||||
});
|
||||
|
||||
test("attributes projected direct tools to their connector namespace", () => {
|
||||
const identities = buildConnectorToolIdentities({ mcpServers: [], orgConnections: [] });
|
||||
const identity = resolveConnectorToolIdentity(
|
||||
completedPart("notion_search_pages", { query: "launch plan" }),
|
||||
identities,
|
||||
);
|
||||
|
||||
expect(identity?.name).toBe("Notion");
|
||||
expect(identity?.iconUrl).toEndWith("/ext-notion.svg");
|
||||
});
|
||||
|
||||
test("does not add connector branding to an unrelated tool", () => {
|
||||
const identities = buildConnectorToolIdentities({ mcpServers: [], orgConnections: [] });
|
||||
expect(resolveConnectorToolIdentity(completedPart("bash", { command: "pwd" }), identities)).toBeNull();
|
||||
});
|
||||
});
|
||||
Reference in New Issue
Block a user