Update meta descriptions and enhance documentation for dstalk project

- Revised meta description to include multi-endpoint routing and decoupled frontends.
- Updated Open Graph description to reflect the addition of endpoint management in plugins.
- Changed lead paragraph to highlight the new ten functional plugins and their capabilities.
- Adjusted project statistics to indicate the inclusion of Web frontend and endpoint management plugin.
- Enhanced architecture section to clarify the role of ten functional plugins and the new web frontend.
- Updated command list to include new commands for multi-endpoint management and file operations.
- Revised public C API documentation to reflect the addition of the ai_endpoint_mgr service.
- Expanded roadmap to include the Boost.Beast Web frontend and multi-endpoint capabilities.
- Improved contribution guidelines to reflect the current state of the project and encourage community involvement.
This commit is contained in:
2026-06-03 21:42:48 +08:00
parent f9d978556a
commit 431ef92284
2 changed files with 102 additions and 64 deletions

View File

@@ -3,10 +3,10 @@
<head>
<meta charset="UTF-8">
<meta name="viewport" content="width=device-width, initial-scale=1.0">
<meta name="description" content="dstalk 是兼容 OpenAI 风格接口与 Anthropic API 的 C/C++ AI 编程 CLI采用 dstalk_core.dll 插件宿主 + 多前端解耦架构。">
<meta name="description" content="dstalk 是兼容 OpenAI 风格接口与 Anthropic API 的 C/C++ AI 编程 CLI采用 dstalk_core.dll 插件宿主、多 endpoint 路由和 CLI/GUI/Web 多前端解耦架构。">
<meta name="theme-color" content="#0b1020">
<meta property="og:title" content="dstalk — C/C++ AI 编程 CLI">
<meta property="og:description" content="OpenAI-compatible / Anthropic 驱动C ABI 可嵌入dstalk_core.dll 作为插件宿主,9 个功能插件覆盖 AI、网络、会话、LSP 与工具。">
<meta property="og:description" content="OpenAI-compatible / Anthropic 驱动C ABI 可嵌入dstalk_core.dll 作为插件宿主,10 个功能插件覆盖 AI、endpoint 管理、网络、会话、LSP 与工具。">
<meta property="og:type" content="website">
<link rel="alternate" hreflang="zh-CN" href="https://dstalk.top/">
<link rel="alternate" hreflang="en" href="https://dstalk.top/en.html">
@@ -213,7 +213,7 @@
<div>
<div class="eyebrow">dstalk.top 是 dstalk 项目的官方网站</div>
<h1><span>ds</span>talk</h1>
<p class="lead">兼容 OpenAI 风格接口与 Anthropic API 的 AI 编程 CLI。核心采用 C11 / C++20 编写,以 dstalk_core.dll 作为插件宿主暴露稳定 C ABI9 个功能插件 (AI、网络、LSP、会话、文件、工具等) 编译为独立 DLL通过统一接口接入 CLI、SDL3 GUI 与第三方宿主。</p>
<p class="lead">兼容 OpenAI 风格接口与 Anthropic API 的 AI 编程 CLI。核心采用 C11 / C++20 编写,以 dstalk_core.dll 作为插件宿主暴露稳定 C ABI10 个功能插件AI、endpoint 管理、网络、LSP、会话、文件、工具等编译为独立 DLL通过统一接口接入 CLI、SDL3 GUI、Boost.Beast Web 前端与第三方宿主。</p>
<div class="actions">
<a class="btn btn-primary" href="#quickstart">开始使用</a>
<a class="btn btn-secondary" href="https://git.pulsareon.com/pulsareon/dstalk">查看源代码</a>
@@ -222,13 +222,13 @@
<span class="badge">v0.1.0</span>
<span class="badge">C11 / C++20</span>
<span class="badge">插件宿主 + C ABI</span>
<span class="badge">9 个插件</span>
<span class="badge">10 个插件</span>
<span class="badge">GPL v3.0</span>
</div>
<div class="stats" aria-label="项目状态">
<span class="stat"><strong>核心</strong>dstalk_core.dll (插件宿主)</span>
<span class="stat"><strong>前端</strong>CLI + SDL3 GUI</span>
<span class="stat"><strong>插件</strong>openai · anthropic · network · lsp · session · context · config · file-io · tools</span>
<span class="stat"><strong>前端</strong>CLI + SDL3 GUI + Web</span>
<span class="stat"><strong>插件</strong>openai · anthropic · endpoint_mgr · network · lsp · session · context · config · file-io · tools</span>
</div>
</div>
<div class="terminal" aria-label="dstalk 命令行示例">
@@ -256,10 +256,10 @@ AI: dstalk-core 是插件宿主,负责插件加载、服务注册、
</div>
<div class="cards">
<article class="card"><div class="icon">C</div><h3>零 Node.js 运行时</h3><p>核心以 C11 / C++20 构建,目标是毫秒级启动和更低内存占用,适合终端长期交互。</p></article>
<article class="card"><div class="icon">ABI</div><h3>稳定 C ABI</h3><p>公开 dstalk_init、dstalk_service_query 等宿主函数和 8 种服务 vtable (AI、会话、HTTP、文件、LSP 等),方便 C/C++、Python、Rust、C#、Go 嵌入。</p></article>
<article class="card"><div class="icon">AI</div><h3>API 兼容</h3><p>内置 OpenAI-compatible 与 Anthropic 两个 AI 插件通过 config.toml 中的 ai.provider 在 OpenAI 风格接口与 Anthropic API 之间切换</p></article>
<article class="card"><div class="icon">CLI</div><h3>CLIGUI 前端</h3><p>dstalk-cli 提供 ANSI 终端 UIdstalk-gui 基于 SDL3 跨平台窗口,共享同一组核心能力。</p></article>
<article class="card"><div class="icon">PLG</div><h3>插件化宿主</h3><p>核心仅做插件加载、服务注册、事件总线和配置管理AI、网络、LSP、会话等能力均为独立 DLL可以替换或扩展。</p></article>
<article class="card"><div class="icon">ABI</div><h3>稳定 C ABI</h3><p>公开 dstalk_init、dstalk_service_query 等宿主函数和 9 种服务 vtableAI、endpoint 管理、会话、HTTP、文件、LSP 等,方便 C/C++、Python、Rust、C#、Go 嵌入。</p></article>
<article class="card"><div class="icon">AI</div><h3>endpoint 路由</h3><p>内置 OpenAI-compatible 与 Anthropic 两个 AI 插件,并通过 ai_endpoint_mgr 管理多个命名 endpoint前端优先按 active endpoint 路由,/status 可查看脱敏状态</p></article>
<article class="card"><div class="icon">CLI</div><h3>CLIGUI 与 Web 三前端</h3><p>dstalk-cli 提供 ANSI 终端 UIdstalk-gui 基于 SDL3 跨平台窗口,dstalk-web 基于 Boost.Beast + SSE三者共享同一组核心能力。</p></article>
<article class="card"><div class="icon">PLG</div><h3>插件化宿主</h3><p>核心仅做插件加载、服务注册、事件总线和配置管理AI、endpoint 管理、网络、LSP、会话等能力均为独立 DLL可以替换或扩展。</p></article>
<article class="card"><div class="icon">OSS</div><h3>开源可改造</h3><p>项目采用 GNU GPL v3.0,附带示例插件、单元测试与教程文档,适合学习、二次开发和本地工作流定制。</p></article>
</div>
</section>
@@ -285,12 +285,22 @@ setup.bat
cd ..
build.bat
<span class="cmd"># 创建 config.toml</span>
<span class="cmd"># 单 Provider 模式 / legacy single provider</span>
ai.provider = "ai_openai"
api.base_url = "https://api.openai.com/v1"
api.api_key = "sk-xxxxxxxx"
api.model = "gpt-4o"
<span class="cmd"># 多 Endpoint 模式 / multi-endpoint</span>
endpoints.names = "openai_main, anthropic_alt"
endpoints.active = "openai_main"
endpoint.openai_main.provider = "ai_openai"
endpoint.openai_main.api_key = "sk-xxxxxxxx"
endpoint.openai_main.model = "gpt-4o"
endpoint.anthropic_alt.provider = "ai_anthropic"
endpoint.anthropic_alt.api_key = "sk-ant-xxxx"
endpoint.anthropic_alt.model = "claude-sonnet"
<span class="cmd"># 运行 CLI</span>
build/bin/dstalk_cli.exe config.toml</code></pre>
</div>
@@ -300,22 +310,22 @@ build/bin/dstalk_cli.exe config.toml</code></pre>
<section id="architecture" class="container section">
<div class="section-head">
<h2>插件宿主 + 多前端解耦架构</h2>
<p>dstalk_core.dll 作为插件宿主负责插件加载、服务注册、事件总线和配置管理AI、网络、LSP、会话、文件 IO、工具等 9 个功能插件编译为独立 DLL前端只通过 C ABI 触达核心能力。GUI 通过 CMake 选项 DSTALK_BUILD_GUI 启用。</p>
<p>dstalk_core.dll 作为插件宿主负责插件加载、服务注册、事件总线和配置管理AI、endpoint 管理、网络、LSP、会话、文件 IO、工具等 10 个功能插件编译为独立 DLL前端只通过 C ABI 触达核心能力。GUI 与 Web 分别通过 CMake 选项 DSTALK_BUILD_GUI / DSTALK_BUILD_WEB 启用。</p>
</div>
<div class="terminal architecture">
<div class="terminal-top"><span class="dot"></span><span class="dot"></span><span class="dot"></span><span class="terminal-title">architecture</span></div>
<pre><code>┌─────────────────────────────────────────────────────┐
│ Frontends │
│ dstalk-cli (ANSI UI) dstalk-gui (SDL3)
│ dstalk-cli (ANSI) dstalk-gui (SDL3) dstalk-web (SSE)
└───────────────────────┬─────────────────────────────┘
│ C ABI
┌───────────────────────▼─────────────────────────────┐
│ dstalk_core.dll — 插件宿主 │
│ 插件加载 · 服务注册 · 事件总线 · 配置管理 │
├───────────────┬───────────────┬─────────────────────┤
│ openai (ai) │ anthropic (ai)│ network (http)
│ lsp (client) │ session │ context
│ config │ file-io │ tools
│ openai (ai) │ anthropic (ai)│ endpoint_mgr
│ network(http)│ lsp (client) │ session │
│ context │ config │ file-io · tools
└───────────────┴───────────────┴─────────────────────┘
Boost.JSON · Boost.Asio / Beast · OpenSSL TLS</code></pre>
</div>
@@ -332,9 +342,11 @@ build/bin/dstalk_cli.exe config.toml</code></pre>
<tr><td>核心库</td><td>C11 / C++20dstalk_core.dll插件宿主公开 C ABI</td><td><span class="ok">已启用</span></td></tr>
<tr><td>CLI 前端</td><td>ANSI 终端 UI调用 dstalk/dstalk_host.h</td><td><span class="ok">已启用</span></td></tr>
<tr><td>GUI 前端</td><td>SDL3 图形化前端CMake 选项 DSTALK_BUILD_GUI 启用</td><td><span class="todo">可选构建</span></td></tr>
<tr><td>插件</td><td>9 个功能插件 (openai · anthropic · network · lsp · session · context · config · file-io · tools),独立 DLL</td><td><span class="ok">已启用</span></td></tr>
<tr><td>测试</td><td>10 个测试目标覆盖插件宿主、事件总线、服务注册、插件加载及各 AI 插件CTest 集成</td><td><span class="ok">已启用</span></td></tr>
<tr><td>文档</td><td>docs/tutorial、docs/reference (commands、plugin-abi)、docs/explanation (architecture、plugin-lifecycle、security-logging)</td><td><span class="ok">发布</span></td></tr>
<tr><td>Web 前端</td><td>Boost.Beast HTTP + SSE 流式前端CMake 选项 DSTALK_BUILD_WEB 启用</td><td><span class="todo">可选构建</span></td></tr>
<tr><td>前端公共库</td><td>dstalk_frontend_common 复用配置发现、初始化和服务查询逻辑</td><td><span class="ok">已启用</span></td></tr>
<tr><td>插件</td><td>10 个功能插件openai · anthropic · endpoint_mgr · network · lsp · session · context · config · file-io · tools独立 DLL</td><td><span class="ok">启用</span></td></tr>
<tr><td>测试</td><td>11 个测试目标覆盖插件宿主、事件总线、服务注册、插件加载、endpoint manager 及各 AI 插件CTest 集成</td><td><span class="ok">已启用</span></td></tr>
<tr><td>文档</td><td>docs/tutorial、docs/referencecommands、config、plugin-abi、docs/explanationarchitecture、plugin-lifecycle、security-logging</td><td><span class="ok">已发布</span></td></tr>
<tr><td>示例</td><td>examples/example_plugin 展示插件开发模板</td><td><span class="ok">已提供</span></td></tr>
<tr><td>依赖管理</td><td>Conan2boost/1.86.0openssl/3.4.1</td><td><span class="ok">已配置</span></td></tr>
<tr><td>构建系统</td><td>CMake 3.21+NinjaLLVM/ClangCMakePresets</td><td><span class="ok">已配置</span></td></tr>
@@ -351,10 +363,15 @@ build/bin/dstalk_cli.exe config.toml</code></pre>
<div class="panel table-wrap">
<table>
<tr><th>命令</th><th>说明</th><th>示例</th></tr>
<tr><td>/help</td><td>显示帮助</td><td>/help</td></tr>
<tr><td>/help / /h</td><td>显示命令列表</td><td>/help</td></tr>
<tr><td>/quit / /q</td><td>退出程序</td><td>/quit</td></tr>
<tr><td>/clear</td><td>清空当前会话上下文</td><td>/clear</td></tr>
<tr><td>/model &lt;name&gt;</td><td>切换当前模型</td><td>/model gpt-4o</td></tr>
<tr><td>/file read &lt;path&gt;</td><td>读取文件内容并输出到终端</td><td>/file read README.md</td></tr>
<tr><td>/context</td><td>显示当前 Token 数和消息条数</td><td>/context</td></tr>
<tr><td>/status</td><td>显示当前运行状态(脱敏,不打印完整 API Key</td><td>/status</td></tr>
<tr><td>/model &lt;name&gt;</td><td>切换当前模型;多 endpoint 模式下作用于 active endpoint</td><td>/model gpt-4o</td></tr>
<tr><td>/file list [path]</td><td>列出目录内容,不填 path 列出当前目录</td><td>/file list src/</td></tr>
<tr><td>/file show &lt;path&gt;</td><td>查看文件内容</td><td>/file show README.md</td></tr>
<tr><td>/file read &lt;path&gt;</td><td>读取文件内容(同 /file show</td><td>/file read config.toml</td></tr>
<tr><td>/file write &lt;path&gt; &lt;content&gt;</td><td>写入文件内容</td><td>/file write note.txt hello</td></tr>
<tr><td>/save &lt;path&gt; / /load &lt;path&gt;</td><td>保存或恢复会话</td><td>/save session.json</td></tr>
</table>
@@ -364,7 +381,7 @@ build/bin/dstalk_cli.exe config.toml</code></pre>
<section id="api" class="container section">
<div class="section-head">
<h2>公开 C API</h2>
<p>dstalk 通过 4 个公开头文件暴露能力dstalk_host.h 管理宿主生命周期与插件dstalk_services.h 定义 8 种服务 vtabledstalk_lsp.h 提供独立 LSP 客户端dstalk_types.h 共享消息与事件类型。前端通过 dstalk_service_query() 获取服务指针,再经函数指针调用具体能力。</p>
<p>dstalk 通过 4 个公开头文件暴露能力dstalk_host.h 管理宿主生命周期与插件dstalk_services.h 定义 9 种服务 vtable(含 ai_endpoint_mgrdstalk_lsp.h 提供独立 LSP 客户端dstalk_types.h 共享消息与事件类型。前端通过 dstalk_service_query() 获取服务指针,再经函数指针调用具体能力。</p>
</div>
<div class="terminal">
<div class="terminal-top"><span class="dot"></span><span class="dot"></span><span class="dot"></span><span class="terminal-title">dstalk_host.h — 宿主 API</span></div>
@@ -393,7 +410,7 @@ void dstalk_set_diag_callback(dstalk_diag_cb cb);</code></pre>
</div>
<div class="terminal" style="margin-top:16px">
<div class="terminal-top"><span class="dot"></span><span class="dot"></span><span class="dot"></span><span class="terminal-title">dstalk_services.h — 服务 vtable 示例</span></div>
<pre><code><span class="dim">// AI 服务: dstalk_service_query("ai.openai", 0)</span>
<pre><code><span class="dim">// AI 服务: dstalk_service_query("ai_openai", 1)</span>
typedef struct {
int (*configure)(const char* provider, const char* base_url,
const char* api_key, const char* model,
@@ -404,24 +421,26 @@ typedef struct {
void (*free_result)(dstalk_chat_result_t* result);
} dstalk_ai_service_t;
<span class="dim">// 同模式: dstalk_session_service_t, dstalk_http_service_t,</span>
<span class="dim">// dstalk_file_io_service_t, dstalk_config_service_t,</span>
<span class="dim">// dstalk_tools_service_t, dstalk_lsp_service_t</span></code></pre>
<span class="dim">// endpoint manager: dstalk_service_query("ai_endpoint_mgr", 1)</span>
<span class="dim">// 同模式: dstalk_ai_endpoint_mgr_t, dstalk_session_service_t,</span>
<span class="dim">// dstalk_http_service_t, dstalk_file_io_service_t,</span>
<span class="dim">// dstalk_config_service_t, dstalk_tools_service_t, dstalk_lsp_service_t</span></code></pre>
</div>
</section>
<section id="roadmap" class="container section">
<div class="section-head">
<h2>路线图</h2>
<p>插件宿主、CLI、SDL3 GUI、9 个核心插件、测试与文档已经就位;后续聚焦在能力深化与生态扩展。</p>
<p>插件宿主、CLI、SDL3 GUI、Boost.Beast Web、10 个核心插件、测试与文档已经就位;后续聚焦在能力深化与生态扩展。</p>
</div>
<div class="panel table-wrap">
<table>
<tr><th>阶段</th><th>内容</th><th>状态</th></tr>
<tr><td>骨架</td><td>项目骨架、CMake/Ninja 构建、Conan 依赖、DLL 导出、前端主循环</td><td><span class="ok">已完成</span></td></tr>
<tr><td>插件宿主</td><td>插件加载、服务注册、事件总线、配置管理;9 个核心插件 (openai · anthropic · network · lsp · session · context · config · file-io · tools)</td><td><span class="ok">已完成</span></td></tr>
<tr><td>对话能力</td><td>HTTPS 网络层、OpenAI-compatible / Anthropic API 适配、流式输出、多轮会话、文件读写工具</td><td><span class="ok">已可用</span></td></tr>
<tr><td>GUI 前端</td><td>SDL3 图形化窗口 (DSTALK_BUILD_GUI),作为可选前端与 CLI 共享插件宿主</td><td><span class="todo">可选构建</span></td></tr>
<tr><td>插件宿主</td><td>插件加载、服务注册、事件总线、配置管理;10 个核心插件openai · anthropic · endpoint_mgr · network · lsp · session · context · config · file-io · tools</td><td><span class="ok">已完成</span></td></tr>
<tr><td>对话能力</td><td>HTTPS 网络层、OpenAI-compatible / Anthropic API 适配、流式输出、多轮会话、工具调用与文件读写</td><td><span class="ok">已可用</span></td></tr>
<tr><td>多 endpoint</td><td>ai_endpoint_mgr 管理多个命名 AI endpoint前端优先按 active endpoint 路由,/status 输出脱敏状态</td><td><span class="ok">已可用</span></td></tr>
<tr><td>GUI / Web 前端</td><td>SDL3 图形化窗口与 Boost.Beast Web + SSE作为可选前端与 CLI 共享插件宿主</td><td><span class="todo">可选构建</span></td></tr>
<tr><td>下一阶段</td><td>LSP 集成深化、第三方插件 SDK、跨平台分发与文档持续完善</td><td><span class="todo">计划中</span></td></tr>
</table>
</div>
@@ -433,7 +452,7 @@ typedef struct {
<p>dstalk 是开放项目,欢迎对 C/C++、命令行体验、AI API 适配、GUI、文档和测试感兴趣的开发者一起参与。</p>
</div>
<div class="cards">
<article class="card"><div class="icon">PR</div><h3>提交代码改进</h3><p>核心、CLI、SDL3 GUI 与 9 个插件 (AI、网络、LSP、会话、文件、工具等) 都欢迎补丁,跨平台兼容与构建脚本也有空间。</p></article>
<article class="card"><div class="icon">PR</div><h3>提交代码改进</h3><p>核心、CLI、SDL3 GUI、Web 前端与 10 个插件AI、endpoint 管理、网络、LSP、会话、文件、工具等都欢迎补丁,跨平台兼容与构建脚本也有空间。</p></article>
<article class="card"><div class="icon">PLG</div><h3>开发新插件</h3><p>参考 examples/example_plugin 和 docs/reference/plugin-abi.md通过 C ABI 注册新服务,把自己的模型、工具或数据源接入 dstalk。</p></article>
<article class="card"><div class="icon">DOC</div><h3>完善文档与测试</h3><p>docs/tutorial、docs/reference 已经成形,欢迎补充教程、命令速查、插件 ABI 说明,以及 host_api_test / smoke_test 的覆盖面。</p></article>
</div>