llm_link/apps/
info.rs

1use super::SupportedApp;
2
3/// 应用信息结构
4#[derive(Debug, Clone)]
5pub struct AppInfo {
6    pub name: String,
7    pub description: String,
8    pub port: u16,
9    pub protocol: String,
10    pub endpoints: Vec<String>,
11    pub auth_required: bool,
12}
13
14/// 应用信息提供器
15pub struct AppInfoProvider;
16
17impl AppInfoProvider {
18    /// 获取应用信息
19    pub fn get_app_info(app: &SupportedApp) -> AppInfo {
20        match app {
21            SupportedApp::CodexCLI => AppInfo {
22                name: "Codex CLI".to_string(),
23                description: "OpenAI Codex CLI tool for AI-powered coding assistance".to_string(),
24                port: 8088,
25                protocol: "OpenAI API".to_string(),
26                endpoints: vec![
27                    "POST /v1/chat/completions".to_string(),
28                    "GET /v1/models".to_string(),
29                ],
30                auth_required: true,
31            },
32            SupportedApp::ClaudeCode => AppInfo {
33                name: "Claude Code".to_string(),
34                description: "Anthropic Claude for code generation and analysis".to_string(),
35                port: 8089,
36                protocol: "Anthropic API".to_string(),
37                endpoints: vec![
38                    "POST /v1/messages".to_string(),
39                    "GET /v1/models".to_string(),
40                ],
41                auth_required: true,
42            },
43            SupportedApp::Zed => AppInfo {
44                name: "Zed".to_string(),
45                description: "Zed editor with AI assistant integration".to_string(),
46                port: 11434,
47                protocol: "Ollama API".to_string(),
48                endpoints: vec![
49                    "POST /api/chat".to_string(),
50                    "POST /api/generate".to_string(),
51                    "GET /api/tags".to_string(),
52                ],
53                auth_required: false,
54            },
55        }
56    }
57}
58