diff --git a/webui/src/pages/ToolsPage.svelte b/webui/src/pages/ToolsPage.svelte new file mode 100644 index 0000000..c26a89c --- /dev/null +++ b/webui/src/pages/ToolsPage.svelte @@ -0,0 +1,185 @@ + + +
+
+ + + 工具 + Skills + MCP + + + +
+ + {#if loading} +
加载中…
+ {:else if error} +
{error}
+ {:else if tab === "tools"} +
event.preventDefault()}> + +
+ {#each filters as [value, label]} + + {/each} +
+
+
+ ◇ 只读 + ⇉ 可并发 + △ 有副作用 + ■ 独占 +
+
+ {#each filtered as tool (tool.name)} +
+
+
+

{tool.name}

+
{tool.call_count} 次调用
+
+ {tool.source} +
+

{tool.description}

+
+ {#if tool.read_only}◇ 只读{/if} + {#if tool.concurrency_safe}⇉ 可并发{/if} + {#if !tool.read_only}△ 有副作用{/if} + {#if tool.exclusive}■ 独占{/if} +
+
+ 参数 schema +
{schema(tool)}
+
+
+ {:else} +
没有匹配的工具
+ {/each} +
+ {:else if tab === "skills"} +
+ {#each skills as skill (skill.name)} +
+
+
+

{skill.name}

+

{skill.description}

+
{skill.source}
+
+ {#if skill.always}always{/if} +
+
+ {:else} +
暂无 Skills
+ {/each} +
+ {:else} +
+
{servers.length}MCP 服务器
+
{connected}已连接
+
{servers.reduce((sum, server) => sum + (server.tools || 0), 0)}工具总数
+
+
+ {#each servers as server (server.name)} +
+
+
+

{server.name}

+
{server.tools || 0} 个工具
+
+ {server.connected ? "已连接" : "未连接"} +
+
+ {:else} +
暂无 MCP 服务器
+ {/each} +
+ {/if} +
+ +