1use super::SupportedApp;
2
3#[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
14pub struct AppInfoProvider;
16
17impl AppInfoProvider {
18 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