{
  "canonical_name": "chenhg5/cc-connect",
  "compilation_id": "pack_967e314a032e48f5814e982e91baa7ef",
  "created_at": "2026-05-13T23:50:04.313112+00:00",
  "created_by": "project-pack-compiler",
  "feedback": {
    "carrier_selection_notes": [
      "viable_asset_types=skill, recipe, host_instruction, eval, preflight",
      "recommended_asset_types=skill, recipe, host_instruction, eval, preflight"
    ],
    "evidence_delta": {
      "confirmed_claims": [
        "identity_anchor_present",
        "capability_and_host_targets_present",
        "install_path_declared_or_better"
      ],
      "missing_required_fields": [],
      "must_verify_forwarded": [
        "Run or inspect `npm install -g cc-connect` in an isolated environment.",
        "Confirm the project exposes the claimed capability to at least one target host."
      ],
      "quickstart_execution_scope": "allowlisted_sandbox_smoke",
      "sandbox_command": "npm install -g cc-connect",
      "sandbox_container_image": "node:22-slim",
      "sandbox_execution_backend": "docker",
      "sandbox_planner_decision": "deterministic_isolated_install",
      "sandbox_validation_id": "sbx_b997710c029b4815a79327e563008204"
    },
    "feedback_event_type": "project_pack_compilation_feedback",
    "learning_candidate_reasons": [],
    "template_gaps": []
  },
  "identity": {
    "canonical_id": "project_25aeb0a43cc9a41559eac95fef2f52ee",
    "canonical_name": "chenhg5/cc-connect",
    "homepage_url": null,
    "license": "unknown",
    "repo_url": "https://github.com/chenhg5/cc-connect",
    "slug": "cc-connect",
    "source_packet_id": "phit_87032e92ec214f0fb86cc3419369ac73",
    "source_validation_id": "dval_8f0580deba58437fb38beeba6aed26ac"
  },
  "merchandising": {
    "best_for": "需要软件开发与交付能力，并使用 claude的用户",
    "github_forks": 832,
    "github_stars": 9032,
    "one_liner_en": "Bridge local AI coding agents (Claude Code, Cursor, Gemini CLI, Codex) to messaging platforms (Feishu/Lark, DingTalk, Slack, Telegram, Discord, LINE, WeChat Work). Chat with your AI dev assistant from anywhere — no public IP required for most platforms.",
    "one_liner_zh": "Bridge local AI coding agents (Claude Code, Cursor, Gemini CLI, Codex) to messaging platforms (Feishu/Lark, DingTalk, Slack, Telegram, Discord, LINE, WeChat Work). Chat with your AI dev assistant from anywhere — no public IP required for most platforms.",
    "primary_category": {
      "category_id": "software-development",
      "confidence": "high",
      "name_en": "Software Development",
      "name_zh": "软件开发与交付",
      "reason": "matched_keywords:code, coding, git"
    },
    "target_user": "使用 claude, claude_code, cursor 等宿主 AI 的用户",
    "title_en": "cc-connect",
    "title_zh": "cc-connect 能力包",
    "visible_tags": [
      {
        "label_en": "Knowledge Retrieval",
        "label_zh": "知识检索",
        "source": "repo_evidence_project_characteristics",
        "tag_id": "product_domain-knowledge-retrieval",
        "type": "product_domain"
      },
      {
        "label_en": "Knowledge Base Q&A",
        "label_zh": "知识库问答",
        "source": "repo_evidence_project_characteristics",
        "tag_id": "user_job-knowledge-base-q-a",
        "type": "user_job"
      },
      {
        "label_en": "Retrieval Augmentation",
        "label_zh": "检索增强",
        "source": "repo_evidence_project_characteristics",
        "tag_id": "core_capability-retrieval-augmentation",
        "type": "core_capability"
      },
      {
        "label_en": "Checkpoint Resume",
        "label_zh": "断点恢复流程",
        "source": "repo_evidence_project_characteristics",
        "tag_id": "workflow_pattern-checkpoint-resume",
        "type": "workflow_pattern"
      },
      {
        "label_en": "Evaluation Suite",
        "label_zh": "评测体系",
        "source": "repo_evidence_project_characteristics",
        "tag_id": "selection_signal-evaluation-suite",
        "type": "selection_signal"
      }
    ]
  },
  "packet_id": "phit_87032e92ec214f0fb86cc3419369ac73",
  "page_model": {
    "artifacts": {
      "artifact_slug": "cc-connect",
      "files": [
        "PROJECT_PACK.json",
        "QUICK_START.md",
        "PROMPT_PREVIEW.md",
        "HUMAN_MANUAL.md",
        "AI_CONTEXT_PACK.md",
        "BOUNDARY_RISK_CARD.md",
        "PITFALL_LOG.md",
        "REPO_INSPECTION.json",
        "REPO_INSPECTION.md",
        "CAPABILITY_CONTRACT.json",
        "EVIDENCE_INDEX.json",
        "CLAIM_GRAPH.json"
      ],
      "required_files": [
        "PROJECT_PACK.json",
        "QUICK_START.md",
        "PROMPT_PREVIEW.md",
        "HUMAN_MANUAL.md",
        "AI_CONTEXT_PACK.md",
        "BOUNDARY_RISK_CARD.md",
        "PITFALL_LOG.md",
        "REPO_INSPECTION.json"
      ]
    },
    "detail": {
      "capability_source": "Project Hit Packet + DownstreamValidationResult",
      "commands": [
        {
          "command": "npm install -g cc-connect",
          "label": "Node.js / npm · 官方安装入口",
          "source": "https://github.com/chenhg5/cc-connect#readme",
          "verified": true
        }
      ],
      "display_tags": [
        "知识检索",
        "知识库问答",
        "检索增强",
        "断点恢复流程",
        "评测体系"
      ],
      "eyebrow": "软件开发与交付",
      "glance": [
        {
          "body": "判断自己是不是目标用户。",
          "label": "最适合谁",
          "value": "需要软件开发与交付能力，并使用 claude的用户"
        },
        {
          "body": "先理解能力边界，再决定是否继续。",
          "label": "核心价值",
          "value": "Bridge local AI coding agents (Claude Code, Cursor, Gemini CLI, Codex) to messaging platforms (Feishu/Lark, DingTalk, Slack, Telegram, Discord, LINE, WeChat Work). Chat with your AI dev assistant from anywhere — no public IP required for most platforms."
        },
        {
          "body": "未完成验证前保持审慎。",
          "label": "继续前",
          "value": "publish to Doramagic.ai project surfaces"
        }
      ],
      "guardrail_source": "Boundary & Risk Card",
      "guardrails": [
        {
          "body": "Prompt Preview 只展示流程，不证明项目已安装或运行。",
          "label": "Check 1",
          "value": "不要把试用当真实运行"
        },
        {
          "body": "claude, claude_code, cursor",
          "label": "Check 2",
          "value": "确认宿主兼容"
        },
        {
          "body": "publish to Doramagic.ai project surfaces",
          "label": "Check 3",
          "value": "先隔离验证"
        }
      ],
      "mode": "skill, recipe, host_instruction, eval, preflight",
      "pitfall_log": {
        "items": [
          {
            "body": "GitHub 社区证据显示该项目存在一个安装相关的待验证问题：[Bug]",
            "category": "安装坑",
            "evidence": [
              "community_evidence:github | cevd_c85c0f8f48ac44c7a855066b2bfc3939 | https://github.com/chenhg5/cc-connect/issues/933 | 来源讨论提到 npm 相关条件，需在安装/试用前复核。"
            ],
            "severity": "high",
            "suggested_check": "来源问题仍为 open，Pack Agent 需要复核是否仍影响当前版本。",
            "title": "来源证据：[Bug]",
            "user_impact": "可能增加新用户试用和生产接入成本。"
          },
          {
            "body": "GitHub 社区证据显示该项目存在一个安装相关的待验证问题：[Feature] Preserve full interactive card schema on inbound",
            "category": "安装坑",
            "evidence": [
              "community_evidence:github | cevd_f50380a7aef54548ac053b1127a2916e | https://github.com/chenhg5/cc-connect/issues/936 | 来源类型 github_issue 暴露的待验证使用条件。"
            ],
            "severity": "high",
            "suggested_check": "来源问题仍为 open，Pack Agent 需要复核是否仍影响当前版本。",
            "title": "来源证据：[Feature] Preserve full interactive card schema on inbound",
            "user_impact": "可能影响升级、迁移或版本选择。"
          },
          {
            "body": "GitHub 社区证据显示该项目存在一个安装相关的待验证问题：cc-connect 因 SSH 断开被 systemd 停止：需要文档化 `loginctl enable-linger`",
            "category": "安装坑",
            "evidence": [
              "community_evidence:github | cevd_3a818efa6ddf479aae0f026d1f06d491 | https://github.com/chenhg5/cc-connect/issues/960 | 来源讨论提到 npm 相关条件，需在安装/试用前复核。"
            ],
            "severity": "high",
            "suggested_check": "来源问题仍为 open，Pack Agent 需要复核是否仍影响当前版本。",
            "title": "来源证据：cc-connect 因 SSH 断开被 systemd 停止：需要文档化 `loginctl enable-linger`",
            "user_impact": "可能增加新用户试用和生产接入成本。"
          },
          {
            "body": "GitHub 社区证据显示该项目存在一个配置相关的待验证问题：Feishu: all messages permanently ignored as 'old message after restart' after every daemon restart (v1.3.3-beta.2)",
            "category": "配置坑",
            "evidence": [
              "community_evidence:github | cevd_7b001c45ac3449abaee3dd365bc4cc74 | https://github.com/chenhg5/cc-connect/issues/972 | 来源讨论提到 linux 相关条件，需在安装/试用前复核。"
            ],
            "severity": "high",
            "suggested_check": "来源问题仍为 open，Pack Agent 需要复核是否仍影响当前版本。",
            "title": "来源证据：Feishu: all messages permanently ignored as 'old message after restart' after every daemon restart (v1.3.3-beta.2)",
            "user_impact": "可能增加新用户试用和生产接入成本。"
          },
          {
            "body": "GitHub 社区证据显示该项目存在一个配置相关的待验证问题：[Bug] cc-connect send uses default socket path in custom data_dir agent sessions",
            "category": "配置坑",
            "evidence": [
              "community_evidence:github | cevd_6136e384578b499ca63299322032211a | https://github.com/chenhg5/cc-connect/issues/966 | 来源类型 github_issue 暴露的待验证使用条件。"
            ],
            "severity": "high",
            "suggested_check": "来源问题仍为 open，Pack Agent 需要复核是否仍影响当前版本。",
            "title": "来源证据：[Bug] cc-connect send uses default socket path in custom data_dir agent sessions",
            "user_impact": "可能增加新用户试用和生产接入成本。"
          },
          {
            "body": "GitHub 社区证据显示该项目存在一个安全/权限相关的待验证问题：Feature Request: 终端与 IM 双通道统一会话管理",
            "category": "安全/权限坑",
            "evidence": [
              "community_evidence:github | cevd_befa8b4f1c7f4ef483d6d8b38ba06ba4 | https://github.com/chenhg5/cc-connect/issues/968 | 来源讨论提到 windows 相关条件，需在安装/试用前复核。"
            ],
            "severity": "high",
            "suggested_check": "来源问题仍为 open，Pack Agent 需要复核是否仍影响当前版本。",
            "title": "来源证据：Feature Request: 终端与 IM 双通道统一会话管理",
            "user_impact": "可能影响授权、密钥配置或安全边界。"
          },
          {
            "body": "GitHub 社区证据显示该项目存在一个安装相关的待验证问题：v1.3.3-beta.1",
            "category": "安装坑",
            "evidence": [
              "community_evidence:github | cevd_5eb39ef63cf14e56aff580db738dcd9f | https://github.com/chenhg5/cc-connect/releases/tag/v1.3.3-beta.1 | 来源讨论提到 npm 相关条件，需在安装/试用前复核。"
            ],
            "severity": "medium",
            "suggested_check": "来源显示可能已有修复、规避或版本变化，说明书中必须标注适用版本。",
            "title": "来源证据：v1.3.3-beta.1",
            "user_impact": "可能影响升级、迁移或版本选择。"
          },
          {
            "body": "GitHub 社区证据显示该项目存在一个安装相关的待验证问题：生图 app-icon 请求未稳定转发到 generate-image，且 cc-connect 存在部署漂移风险",
            "category": "安装坑",
            "evidence": [
              "community_evidence:github | cevd_574cca97359b4bc1a8a8fa968ab758cb | https://github.com/chenhg5/cc-connect/issues/967 | 来源讨论提到 node 相关条件，需在安装/试用前复核。"
            ],
            "severity": "medium",
            "suggested_check": "来源显示可能已有修复、规避或版本变化，说明书中必须标注适用版本。",
            "title": "来源证据：生图 app-icon 请求未稳定转发到 generate-image，且 cc-connect 存在部署漂移风险",
            "user_impact": "可能增加新用户试用和生产接入成本。"
          },
          {
            "body": "项目面向 Claude/Cursor/Codex/Gemini/OpenCode 等宿主，或安装命令涉及用户配置目录。",
            "category": "配置坑",
            "evidence": [
              "capability.host_targets | github_repo:1168978399 | https://github.com/chenhg5/cc-connect | host_targets=claude, claude_code, cursor"
            ],
            "severity": "medium",
            "suggested_check": "列出会写入的配置文件、目录和卸载/回滚步骤。",
            "title": "可能修改宿主 AI 配置",
            "user_impact": "安装可能改变本机 AI 工具行为，用户需要知道写入位置和回滚方法。"
          },
          {
            "body": "GitHub 社区证据显示该项目存在一个配置相关的待验证问题：v1.3.0-rc.3",
            "category": "配置坑",
            "evidence": [
              "community_evidence:github | cevd_9e274ec877304b369e551afc543b9bae | https://github.com/chenhg5/cc-connect/releases/tag/v1.3.0-rc.3 | 来源类型 github_release 暴露的待验证使用条件。"
            ],
            "severity": "medium",
            "suggested_check": "来源显示可能已有修复、规避或版本变化，说明书中必须标注适用版本。",
            "title": "来源证据：v1.3.0-rc.3",
            "user_impact": "可能增加新用户试用和生产接入成本。"
          },
          {
            "body": "GitHub 社区证据显示该项目存在一个配置相关的待验证问题：v1.3.1",
            "category": "配置坑",
            "evidence": [
              "community_evidence:github | cevd_c2e03a5e0cc8465c968bcc252cc2926b | https://github.com/chenhg5/cc-connect/releases/tag/v1.3.1 | 来源类型 github_release 暴露的待验证使用条件。"
            ],
            "severity": "medium",
            "suggested_check": "来源显示可能已有修复、规避或版本变化，说明书中必须标注适用版本。",
            "title": "来源证据：v1.3.1",
            "user_impact": "可能影响升级、迁移或版本选择。"
          },
          {
            "body": "README/documentation is current enough for a first validation pass.",
            "category": "能力坑",
            "evidence": [
              "capability.assumptions | github_repo:1168978399 | https://github.com/chenhg5/cc-connect | README/documentation is current enough for a first validation pass."
            ],
            "severity": "medium",
            "suggested_check": "将假设转成下游验证清单。",
            "title": "能力判断依赖假设",
            "user_impact": "假设不成立时，用户拿不到承诺的能力。"
          },
          {
            "body": "GitHub 社区证据显示该项目存在一个运行相关的待验证问题：出现网络波动后，一直显示这个retrying，只能手动重启吗？",
            "category": "运行坑",
            "evidence": [
              "community_evidence:github | cevd_8d8f7103758f4f46bffd9b411c81bbf6 | https://github.com/chenhg5/cc-connect/issues/102 | 来源类型 github_issue 暴露的待验证使用条件。"
            ],
            "severity": "medium",
            "suggested_check": "来源显示可能已有修复、规避或版本变化，说明书中必须标注适用版本。",
            "title": "来源证据：出现网络波动后，一直显示这个retrying，只能手动重启吗？",
            "user_impact": "可能增加新用户试用和生产接入成本。"
          },
          {
            "body": "未记录 last_activity_observed。",
            "category": "维护坑",
            "evidence": [
              "evidence.maintainer_signals | github_repo:1168978399 | https://github.com/chenhg5/cc-connect | last_activity_observed missing"
            ],
            "severity": "medium",
            "suggested_check": "补 GitHub 最近 commit、release、issue/PR 响应信号。",
            "title": "维护活跃度未知",
            "user_impact": "新项目、停更项目和活跃项目会被混在一起，推荐信任度下降。"
          },
          {
            "body": "no_demo",
            "category": "安全/权限坑",
            "evidence": [
              "downstream_validation.risk_items | github_repo:1168978399 | https://github.com/chenhg5/cc-connect | no_demo; severity=medium"
            ],
            "severity": "medium",
            "suggested_check": "进入安全/权限治理复核队列。",
            "title": "下游验证发现风险项",
            "user_impact": "下游已经要求复核，不能在页面中弱化。"
          },
          {
            "body": "No sandbox install has been executed yet; downstream must verify before user use.",
            "category": "安全/权限坑",
            "evidence": [
              "risks.safety_notes | github_repo:1168978399 | https://github.com/chenhg5/cc-connect | No sandbox install has been executed yet; downstream must verify before user use."
            ],
            "severity": "medium",
            "suggested_check": "转成明确权限清单和安全审查提示。",
            "title": "存在安全注意事项",
            "user_impact": "用户安装前需要知道权限边界和敏感操作。"
          }
        ],
        "source": "ProjectPitfallLog + ProjectHitPacket + validation + community signals",
        "summary": "发现 24 个潜在踩坑项，其中 6 个为 high/blocking；最高优先级：安装坑 - 来源证据：[Bug]。",
        "title": "踩坑日志"
      },
      "snapshot": {
        "contributors": 103,
        "forks": 832,
        "license": "unknown",
        "note": "站点快照，非实时质量证明；用于开工前背景判断。",
        "stars": 9032
      },
      "source_url": "https://github.com/chenhg5/cc-connect",
      "steps": [
        {
          "body": "不安装项目，先体验能力节奏。",
          "code": "preview",
          "title": "先试 Prompt"
        },
        {
          "body": "理解输入、输出、失败模式和边界。",
          "code": "manual",
          "title": "读说明书"
        },
        {
          "body": "把上下文交给宿主 AI 继续工作。",
          "code": "context",
          "title": "带给 AI"
        },
        {
          "body": "进入主力环境前先完成安装入口与风险边界验证。",
          "code": "verify",
          "title": "沙箱验证"
        }
      ],
      "subtitle": "Bridge local AI coding agents (Claude Code, Cursor, Gemini CLI, Codex) to messaging platforms (Feishu/Lark, DingTalk, Slack, Telegram, Discord, LINE, WeChat Work). Chat with your AI dev assistant from anywhere — no public IP required for most platforms.",
      "title": "cc-connect 能力包",
      "trial_prompt": "# cc-connect - Prompt Preview\n\n> 复制下面这段 Prompt 到你常用的 AI，先试一次，不需要安装。\n> 它的目标是让你直接体验这个项目的服务方式，而不是阅读项目介绍。\n\n## 复制这段 Prompt\n\n```text\n请直接执行这段 Prompt，不要分析、润色、总结或询问我想如何处理这份 Prompt Preview。\n\n你现在扮演 cc-connect 的“安装前体验版”。\n这不是项目介绍、不是评价报告、不是 README 总结。你的任务是让我用最小成本体验它的核心服务。\n\n我的试用任务：我想用它完成一个真实的软件开发与交付任务。\n我常用的宿主 AI：claude / Claude Code / Cursor\n\n【体验目标】\n围绕我的真实任务，现场演示这个项目如何把输入转成 示例引导, 判断线索。重点是让我感受到工作方式，而不是给我项目背景。\n\n【业务流约束】\n- 你必须像一个正在提供服务的项目能力包，而不是像一个讲解员。\n- 每一轮只推进一个步骤；提出问题后必须停下来等我回答。\n- 每一步都必须让我感受到一个具体服务动作：澄清、整理、规划、检查、判断或收尾。\n- 每一步都要说明：当前目标、你需要我提供什么、我回答后你会产出什么。\n- 不要安装、不要运行命令、不要写代码、不要声称测试通过、不要声称已经修改文件。\n- 需要真实安装或宿主加载后才能验证的内容，必须明确说“这一步需要安装后验证”。\n- 如果我说“用示例继续”，你可以用虚构示例推进，但仍然不能声称真实执行。\n\n【可体验服务能力】\n- 安装前能力预览: Bridge local AI coding agents (Claude Code, Cursor, Gemini CLI, Codex) to messaging platforms (Feishu/Lark, DingTalk, Slack, Telegram, Discord, LINE, WeChat Work). Chat with your AI dev assistant from anywhere — no public IP required for most platforms. 输入：用户任务, 当前 AI 对话上下文；输出：示例引导, 判断线索。\n\n【必须安装后才可验证的能力】\n- 命令行启动或安装流程: 项目文档中存在可执行命令，真实使用需要在本地或宿主环境中运行这些命令。 输入：终端环境, 包管理器, 项目依赖；输出：安装结果, 列表/更新/运行结果。\n\n【核心服务流】\n请严格按这个顺序带我体验。不要一次性输出完整流程：\n1. overview：项目概述。围绕“项目概述”模拟一次用户任务，不展示安装或运行结果。\n2. architecture：系统架构。围绕“系统架构”模拟一次用户任务，不展示安装或运行结果。\n3. core-interfaces：核心接口定义。围绕“核心接口定义”模拟一次用户任务，不展示安装或运行结果。\n4. bridge-protocol：Bridge 协议。围绕“Bridge 协议”模拟一次用户任务，不展示安装或运行结果。\n5. agent-overview：Agent 集成概述。围绕“Agent 集成概述”模拟一次用户任务，不展示安装或运行结果。\n\n【核心能力体验剧本】\n每一步都必须按“输入 -> 服务动作 -> 中间产物”执行。不要只说流程名：\n1. overview\n输入：用户提供的“项目概述”相关信息。\n服务动作：模拟项目在这一步的核心判断和整理方式。\n中间产物：一个可检查的小结果。\n\n2. architecture\n输入：用户提供的“系统架构”相关信息。\n服务动作：模拟项目在这一步的核心判断和整理方式。\n中间产物：一个可检查的小结果。\n\n3. core-interfaces\n输入：用户提供的“核心接口定义”相关信息。\n服务动作：模拟项目在这一步的核心判断和整理方式。\n中间产物：一个可检查的小结果。\n\n4. bridge-protocol\n输入：用户提供的“Bridge 协议”相关信息。\n服务动作：模拟项目在这一步的核心判断和整理方式。\n中间产物：一个可检查的小结果。\n\n5. agent-overview\n输入：用户提供的“Agent 集成概述”相关信息。\n服务动作：模拟项目在这一步的核心判断和整理方式。\n中间产物：一个可检查的小结果。\n\n【项目服务规则】\n这些规则决定你如何服务用户。不要解释规则本身，而要在每一步执行时遵守：\n- 先确认用户任务、输入材料和成功标准，再模拟项目能力。\n- 每一步都必须形成可检查的小产物，并等待用户确认后再继续。\n- 凡是需要安装、调用工具或访问外部服务的能力，都必须标记为安装后验证。\n\n【每一步的服务约束】\n- Step 1 / overview：Step 1 必须围绕“项目概述”形成一个小中间产物，并等待用户确认。\n- Step 2 / architecture：Step 2 必须围绕“系统架构”形成一个小中间产物，并等待用户确认。\n- Step 3 / core-interfaces：Step 3 必须围绕“核心接口定义”形成一个小中间产物，并等待用户确认。\n- Step 4 / bridge-protocol：Step 4 必须围绕“Bridge 协议”形成一个小中间产物，并等待用户确认。\n- Step 5 / agent-overview：Step 5 必须围绕“Agent 集成概述”形成一个小中间产物，并等待用户确认。\n\n【边界与风险】\n- 不要声称已经安装、运行、调用 API、读写本地文件或完成真实任务。\n- 安装前预览只能展示工作方式，不能证明兼容性、性能或输出质量。\n- 涉及安装、插件加载、工具调用或外部服务的能力必须安装后验证。\n\n【可追溯依据】\n这些路径只用于你内部校验或在我追问“依据是什么”时简要引用。不要在首次回复主动展开：\n- https://github.com/chenhg5/cc-connect\n- https://github.com/chenhg5/cc-connect#readme\n- README.md\n- README.zh-CN.md\n- go.mod\n- core/engine.go\n- core/bridge.go\n- core/registry.go\n- docs/images/connector.png\n- core/interfaces.go\n- core/session.go\n- core/provider.go\n\n【首次问题规则】\n- 首次三问必须先确认用户目标、成功标准和边界，不要提前进入工具、安装或实现细节。\n- 如果后续需要技术条件、文件路径或运行环境，必须等用户确认目标后再追问。\n\n首次回复必须只输出下面 4 个部分：\n1. 体验开始：用 1 句话说明你将带我体验 cc-connect 的核心服务。\n2. 当前步骤：明确进入 Step 1，并说明这一步要解决什么。\n3. 你会如何服务我：说明你会先改变我完成任务的哪个动作。\n4. 只问我 3 个问题，然后停下等待回答。\n\n首次回复禁止输出：后续完整流程、证据清单、安装命令、项目评价、营销文案、已经安装或运行的说法。\n\nStep 1 / brainstorming 的二轮协议：\n- 我回答首次三问后，你仍然停留在 Step 1 / brainstorming，不要进入 Step 2。\n- 第二次回复必须产出 6 个部分：澄清后的任务定义、成功标准、边界条件、\n  2-3 个可选方案、每个方案的权衡、推荐方案。\n- 第二次回复最后必须问我是否确认推荐方案；只有我明确确认后，才能进入下一步。\n- 第二次回复禁止输出 git worktree、代码计划、测试文件、命令或真实执行结果。\n\n后续对话规则：\n- 我回答后，你先完成当前步骤的中间产物并等待确认；只有我确认后，才能进入下一步。\n- 每一步都要生成一个小的中间产物，例如澄清后的目标、计划草案、测试意图、验证清单或继续/停止判断。\n- 所有演示都写成“我会建议/我会引导/这一步会形成”，不要写成已经真实执行。\n- 不要声称已经测试通过、文件已修改、命令已运行或结果已产生。\n- 如果某个能力必须安装后验证，请直接说“这一步需要安装后验证”。\n- 如果证据不足，请明确说“证据不足”，不要补事实。\n```\n",
      "voices": [
        {
          "body": "来源平台：github。github/github_issue: [Feature] Preserve full interactive card schema on inbound（https://github.com/chenhg5/cc-connect/issues/936）；github/github_issue: [Bug]（https://github.com/chenhg5/cc-connect/issues/933）；github/github_issue: Feishu: all messages permanently ignored as 'old message after restart' （https://github.com/chenhg5/cc-connect/issues/972）；github/github_issue: Feature Request: 终端与 IM 双通道统一会话管理（https://github.com/chenhg5/cc-connect/issues/968）；github/github_issue: [Bug] cc-connect send uses default socket path in custom data_dir agent （https://github.com/chenhg5/cc-connect/issues/966）；github/github_issue: 生图 app-icon 请求未稳定转发到 generate-image，且 cc-connect 存在部署漂移风险（https://github.com/chenhg5/cc-connect/issues/967）；github/github_issue: 出现网络波动后，一直显示这个retrying，只能手动重启吗？（https://github.com/chenhg5/cc-connect/issues/102）；github/github_issue: cc-connect 因 SSH 断开被 systemd 停止：需要文档化 `loginctl enable-linger`（https://github.com/chenhg5/cc-connect/issues/960）；github/github_release: v1.3.3-beta.2（https://github.com/chenhg5/cc-connect/releases/tag/v1.3.3-beta.2）；github/github_release: v1.3.3-beta.1（https://github.com/chenhg5/cc-connect/releases/tag/v1.3.3-beta.1）；github/github_release: v1.3.2（https://github.com/chenhg5/cc-connect/releases/tag/v1.3.2）；github/github_release: v1.3.1（https://github.com/chenhg5/cc-connect/releases/tag/v1.3.1）。这些是项目级外部声音，不作为单独质量证明。",
          "items": [
            {
              "kind": "github_issue",
              "source": "github",
              "title": "[Feature] Preserve full interactive card schema on inbound",
              "url": "https://github.com/chenhg5/cc-connect/issues/936"
            },
            {
              "kind": "github_issue",
              "source": "github",
              "title": "[Bug]",
              "url": "https://github.com/chenhg5/cc-connect/issues/933"
            },
            {
              "kind": "github_issue",
              "source": "github",
              "title": "Feishu: all messages permanently ignored as 'old message after restart' ",
              "url": "https://github.com/chenhg5/cc-connect/issues/972"
            },
            {
              "kind": "github_issue",
              "source": "github",
              "title": "Feature Request: 终端与 IM 双通道统一会话管理",
              "url": "https://github.com/chenhg5/cc-connect/issues/968"
            },
            {
              "kind": "github_issue",
              "source": "github",
              "title": "[Bug] cc-connect send uses default socket path in custom data_dir agent ",
              "url": "https://github.com/chenhg5/cc-connect/issues/966"
            },
            {
              "kind": "github_issue",
              "source": "github",
              "title": "生图 app-icon 请求未稳定转发到 generate-image，且 cc-connect 存在部署漂移风险",
              "url": "https://github.com/chenhg5/cc-connect/issues/967"
            },
            {
              "kind": "github_issue",
              "source": "github",
              "title": "出现网络波动后，一直显示这个retrying，只能手动重启吗？",
              "url": "https://github.com/chenhg5/cc-connect/issues/102"
            },
            {
              "kind": "github_issue",
              "source": "github",
              "title": "cc-connect 因 SSH 断开被 systemd 停止：需要文档化 `loginctl enable-linger`",
              "url": "https://github.com/chenhg5/cc-connect/issues/960"
            },
            {
              "kind": "github_release",
              "source": "github",
              "title": "v1.3.3-beta.2",
              "url": "https://github.com/chenhg5/cc-connect/releases/tag/v1.3.3-beta.2"
            },
            {
              "kind": "github_release",
              "source": "github",
              "title": "v1.3.3-beta.1",
              "url": "https://github.com/chenhg5/cc-connect/releases/tag/v1.3.3-beta.1"
            },
            {
              "kind": "github_release",
              "source": "github",
              "title": "v1.3.2",
              "url": "https://github.com/chenhg5/cc-connect/releases/tag/v1.3.2"
            },
            {
              "kind": "github_release",
              "source": "github",
              "title": "v1.3.1",
              "url": "https://github.com/chenhg5/cc-connect/releases/tag/v1.3.1"
            }
          ],
          "status": "已收录 12 条来源",
          "title": "社区讨论"
        }
      ]
    },
    "homepage_card": {
      "category": "软件开发与交付",
      "desc": "Bridge local AI coding agents (Claude Code, Cursor, Gemini CLI, Codex) to messaging platforms (Feishu/Lark, DingTalk, Slack, Telegram, Discord, LINE, WeChat Work). Chat with your AI dev assistant from anywhere — no public IP required for most platforms.",
      "effort": "安装已验证",
      "forks": 832,
      "icon": "code",
      "name": "cc-connect 能力包",
      "risk": "可发布",
      "slug": "cc-connect",
      "stars": 9032,
      "tags": [
        "知识检索",
        "知识库问答",
        "检索增强",
        "断点恢复流程",
        "评测体系"
      ],
      "thumb": "gray",
      "type": "Skill Pack"
    },
    "manual": {
      "markdown": "# https://github.com/chenhg5/cc-connect 项目说明书\n\n生成时间：2026-05-13 23:32:01 UTC\n\n## 目录\n\n- [项目概述](#overview)\n- [系统架构](#architecture)\n- [核心接口定义](#core-interfaces)\n- [Bridge 协议](#bridge-protocol)\n- [Agent 集成概述](#agent-overview)\n- [Agent 通信协议](#agent-protocols)\n- [Claude Code 集成](#claude-code-integration)\n- [Codex 集成](#codex-integration)\n- [平台集成概述](#platform-overview)\n- [飞书集成详解](#platform-feishu)\n\n<a id='overview'></a>\n\n## 项目概述\n\n### 相关页面\n\n相关主题：[系统架构](#architecture), [Agent 集成概述](#agent-overview), [平台集成概述](#platform-overview)\n\n<details>\n<summary>相关源码文件</summary>\n\n以下源码文件用于生成本页说明：\n\n- [AGENTS.md](https://github.com/chenhg5/cc-connect/blob/main/AGENTS.md)\n- [core/i18n.go](https://github.com/chenhg5/cc-connect/blob/main/core/i18n.go)\n- [platform/wecom/inbound_file_test.go](https://github.com/chenhg5/cc-connect/blob/main/platform/wecom/inbound_file_test.go)\n- [web/index.html](https://github.com/chenhg5/cc-connect/blob/main/web/index.html)\n- [web/src/pages/Providers/ProviderList.tsx](https://github.com/chenhg5/cc-connect/blob/main/web/src/pages/Providers/ProviderList.tsx)\n- [web/src/pages/Skills/SkillList.tsx](https://github.com/chenhg5/cc-connect/blob/main/web/src/pages/Skills/SkillList.tsx)\n- [web/src/pages/Sessions/SessionList.tsx](https://github.com/chenhg5/cc-connect/blob/main/web/src/pages/Sessions/SessionList.tsx)\n- [web/src/pages/Projects/ProjectList.tsx](https://github.com/chenhg5/cc-connect/blob/main/web/src/pages/Projects/ProjectList.tsx)\n- [web/src/pages/Projects/ProjectDetail.tsx](https://github.com/chenhg5/cc-connect/blob/main/web/src/pages/Projects/ProjectDetail.tsx)\n- [web/src/pages/Chat/ChatView.tsx](https://github.com/chenhg5/cc-connect/blob/main/web/src/pages/Chat/ChatView.tsx)\n</details>\n\n# 项目概述\n\n## 项目简介\n\ncc-connect 是一个多平台 AI 代理连接框架，旨在将不同的 AI 代理服务与多种即时通讯平台进行桥接整合。该项目采用 Go 语言作为后端核心，前端使用 React + TypeScript 构建管理界面，实现了统一配置管理、多平台支持、灵活的代理切换等核心功能。\n\n项目的设计理念是提供一个 **中立的中间层**，使 AI 代理能力能够通过各种通讯平台（如飞书、微信、企业微信、Telegram、Discord 等）与用户进行交互。资料来源：[AGENTS.md:1-15]()\n\n## 系统架构\n\ncc-connect 采用分层架构设计，核心模块与平台模块解耦，便于扩展和维护。\n\n```mermaid\ngraph TD\n    subgraph 前端层[\"前端层 (React + TypeScript)\"]\n        A[Web 管理界面]\n        B[Provider 管理]\n        C[Project 管理]\n        D[Session 会话]\n        E[Skills 技能]\n    end\n    \n    subgraph 核心层[\"核心层 (Go)\"]\n        F[core - 核心接口定义]\n        G[agent - 代理实现]\n        H[平台注册系统]\n        I[i18n - 国际化]\n    end\n    \n    subgraph 平台层[\"平台适配层\"]\n        J[飞书]\n        K[企业微信]\n        L[微信]\n        M[Telegram]\n        N[Discord]\n        O[Slack]\n        P[DingTalk]\n        Q[更多平台...]\n    end\n    \n    subgraph 外部服务\n        R[AI Provider]\n        S[LLM API]\n    end\n    \n    A --> F\n    B --> H\n    C --> H\n    D --> H\n    E --> H\n    F --> G\n    F --> H\n    H --> J\n    H --> K\n    H --> L\n    H --> M\n    H --> N\n    H --> O\n    H --> P\n    J --> R\n    K --> R\n    L --> R\n    M --> R\n    R --> S\n```\n\n资料来源：[AGENTS.md:9-18]()\n\n## 核心概念\n\n### Provider（提供商）\n\nProvider 是 AI 模型服务提供商的核心抽象，支持配置多个 AI 模型实例。每个 Provider 可以包含以下配置项：\n\n| 配置项 | 说明 | 可选值 |\n|--------|------|--------|\n| `name` | 提供商名称 | 字符串 |\n| `url` | API 端点地址 | URL 字符串 |\n| `model` | 默认模型标识 | 字符串 |\n| `models` | 模型列表 | 数组 |\n| `thinking` | 思考模式 | `enabled` / `disabled` |\n| `agent_types` | 支持的代理类型 | 字符串数组 |\n\n资料来源：[web/src/pages/Providers/ProviderList.tsx:1-30]()\n\n### Project（项目）\n\nProject 是工作空间的基本单位，每个项目包含独立的配置和会话管理。项目支持以下关键配置：\n\n| 配置项 | 说明 | 配置选项 |\n|--------|------|----------|\n| `workDir` | 工作目录路径 | 用户指定 |\n| `agentMode` | 权限模式 | `default` / `acceptEdits` / `plan` / `bypassPermissions` / `dontAsk` |\n| `showCtxIndicator` | 上下文指示器 | 布尔值 |\n| `replyFooter` | 回复元数据 | 布尔值 |\n\n资料来源：[web/src/pages/Projects/ProjectDetail.tsx:1-40]()\n\n### Session（会话）\n\nSession 管理与 AI 代理的交互状态，包含消息历史和实时状态：\n\n```typescript\ninterface Session {\n  id: string;\n  name: string;\n  live: boolean;           // 活跃状态\n  updated_at: string;      // 最后更新时间\n  last_message: {\n    role: 'user' | 'assistant';\n    content: string;\n  };\n}\n```\n\n资料来源：[web/src/pages/Sessions/SessionList.tsx:1-20]()\n\n### Skills（技能）\n\nSkills 系统允许扩展 AI 代理的能力，支持本地技能和预设技能库：\n\n| 技能类型 | 说明 | 配置项 |\n|----------|------|--------|\n| 本地技能 | 项目目录下定义的技能 | `project`, `agent_type`, `dirs` |\n| 预设技能 | 官方/社区提供的技能包 | `display_name`, `description`, `version`, `pricing` |\n\n资料来源：[web/src/pages/Skills/SkillList.tsx:1-50]()\n\n## 平台支持\n\ncc-connect 支持多种即时通讯平台的集成，构建时可以通过 build tags 选择性排除不需要的平台：\n\n| 平台 | Build Tag | 说明 |\n|------|-----------|------|\n| 飞书 | 默认启用 | 企业协作平台 |\n| 企业微信 | `wecom` | 企业微信集成 |\n| 微信 | `weixin` | 微信消息通道 |\n| Telegram | `telegram` | 第三方 IM |\n| Discord | `discord` | 游戏社区平台 |\n| Slack | `slack` | 企业通讯工具 |\n| DingTalk | `dingtalk` | 钉钉集成 |\n| QQ / QQBot | `qq` / `qqbot` | 腾讯 QQ |\n| LINE | `line` | 台湾地区 IM |\n| 微博 | `weibo` | 社交媒体 |\n\n禁用特定平台的编译方式：`go build -tags no_feishu no_telegram ...`\n\n资料来源：[AGENTS.md:1-8]()\n\n## 插件系统\n\ncc-connect 采用插件化架构，新增平台或代理只需遵循以下流程：\n\n### 添加新平台\n\n1. 创建 `platform/newplatform/newplatform.go`\n2. 实现 `core.Platform` 接口\n3. 在 `init()` 中注册：`core.RegisterPlatform(\"newplatform\", factory)`\n4. 创建构建插件文件：`cmd/cc-connect/plugin_platform_newplatform.go`\n5. 添加到 `Makefile` 的 `ALL_PLATFORMS`\n6. 在 `config.example.toml` 添加配置示例\n7. 编写单元测试\n\n资料来源：[AGENTS.md:9-18]()\n\n### 添加新代理\n\n1. 创建 `agent/newagent/newagent.go`\n2. 实现 `core.Agent` 和 `core.AgentSession` 接口\n3. 在 `init()` 中注册：`core.RegisterAgent(\"newagent\", factory)`\n4. 创建构建插件文件\n\n资料来源：[AGENTS.md:19-24]()\n\n## 国际化的消息提示\n\n项目内置完整的国际化（i18n）支持，支持以下语言：\n\n| 语言 | 代码 | 示例消息 |\n|------|------|----------|\n| 英语 | `en` | `Provider not found. Use /provider list` |\n| 简体中文 | `zh-CN` | `未找到 Provider，使用 /provider list` |\n| 繁体中文 | `zh-TW` | `未找到 Provider，使用 /provider list` |\n| 日语 | `ja` | `プロバイダが見つかりません` |\n| 西班牙语 | `es` | `Proveedor no encontrado` |\n\n关键消息类型包括：\n- Provider 操作消息（切换、清除、列表）\n- Workspace 操作消息（绑定、路由）\n- 错误提示与帮助信息\n\n资料来源：[core/i18n.go:1-60]()\n\n## 前端架构\n\n前端采用 React + TypeScript + TailwindCSS 构建，提供现代化的管理界面：\n\n### 主要页面模块\n\n| 模块 | 路径 | 功能 |\n|------|------|------|\n| ProviderList | `/Providers` | 全局 AI 提供商管理 |\n| ProjectList | `/Projects` | 项目列表与创建向导 |\n| ProjectDetail | `/Projects/:id` | 单个项目配置与设置 |\n| SkillList | `/Skills` | 技能管理与预设库 |\n| SessionList | `/Sessions` | 会话管理与消息历史 |\n| ChatView | `/Chat` | 实时聊天界面 |\n\n### 状态管理\n\n前端通过 React Hooks 管理状态，关键状态包括：\n- `providers`: 全局 AI 提供商列表\n- `projects`: 项目列表\n- `sessions`: 会话列表\n- `currentSession`: 当前活跃会话\n- `drawerOpen`: 会话抽屉开关状态\n- `bridgeStatus`: WebSocket 桥接状态\n\n资料来源：[web/src/pages/Chat/ChatView.tsx:1-30]()\n\n## 消息处理\n\n### 企业微信文件消息\n\n企业微信平台的文件消息采用 XML 格式传输，系统会解析以下字段：\n\n| 字段 | 说明 |\n|------|------|\n| `MsgType` | 消息类型（text/image/file 等） |\n| `MediaId` | 媒体文件 ID |\n| `FileName` | 文件名（含路径） |\n| `MsgId` | 消息唯一 ID |\n| `AgentID` | 企业应用 ID |\n\n资料来源：[platform/wecom/inbound_file_test.go:1-25]()\n\n## 项目构建与测试\n\n### 构建检查清单\n\n提交代码前必须通过以下检查：\n\n1. **编译通过**：`go build ./...`\n2. **测试通过**：`go test ./...`\n3. **无硬编码**：核心代码中无平台名称硬编码\n4. **国际化完整**：新增用户可见字符串需包含所有语言翻译\n5. **无敏感信息**：源码中不包含 API Key、Token 等凭据\n\n资料来源：[AGENTS.md:25-32]()\n\n## 技术栈总结\n\n| 层级 | 技术选型 |\n|------|----------|\n| 后端核心 | Go 1.x |\n| 前端框架 | React 18 + TypeScript |\n| UI 样式 | TailwindCSS |\n| 状态管理 | React Hooks |\n| 国际化 | 自定义 i18n 模块 |\n| 构建工具 | Vite（前端）+ Makefile（后端） |\n| 测试框架 | Go testing |\n\n资料来源：[web/index.html:1-10]()\n\n## 设计理念\n\ncc-connect 的核心设计原则：\n\n1. **模块化解耦**：核心接口与平台实现分离，便于独立演进\n2. **可插拔架构**：通过 build tags 实现平台按需编译\n3. **统一配置管理**：通过 Web UI 或配置文件集中管理所有设置\n4. **多语言支持**：内置 5 种语言的国际化消息\n5. **开发者友好**：提供清晰的插件开发指南和代码规范\n\n这种设计使得 cc-connect 能够灵活适应不同的部署场景，既可以作为单一平台桥接工具，也可以扩展为完整的多平台 AI 代理中控系统。\n\n---\n\n<a id='architecture'></a>\n\n## 系统架构\n\n### 相关页面\n\n相关主题：[项目概述](#overview), [核心接口定义](#core-interfaces), [Bridge 协议](#bridge-protocol)\n\n<details>\n<summary>相关源码文件</summary>\n\n以下源码文件用于生成本页说明：\n\n- [core/engine.go](https://github.com/chenhg5/cc-connect/blob/main/core/engine.go)\n- [core/bridge.go](https://github.com/chenhg5/cc-connect/blob/main/core/bridge.go)\n- [core/registry.go](https://github.com/chenhg5/cc-connect/blob/main/core/registry.go)\n- [web/src/pages/Providers/ProviderList.tsx](https://github.com/chenhg5/cc-connect/blob/main/web/src/pages/Providers/ProviderList.tsx)\n- [web/src/pages/Projects/ProjectDetail.tsx](https://github.com/chenhg5/cc-connect/blob/main/web/src/pages/Projects/ProjectDetail.tsx)\n- [web/src/pages/Sessions/SessionChat.tsx](https://github.com/chenhg5/cc-connect/blob/main/web/src/pages/Sessions/SessionChat.tsx)\n- [web/src/api/client.ts](https://github.com/chenhg5/cc-connect/blob/main/web/src/api/client.ts)\n- [INSTALL.md](https://github.com/chenhg5/cc-connect/blob/main/INSTALL.md)\n- [AGENTS.md](https://github.com/chenhg5/cc-connect/blob/main/AGENTS.md)\n</details>\n\n# 系统架构\n\n## 概述\n\ncc-connect 是一个连接本地 AI 编程助手与即时通讯平台的中间件系统。其核心架构采用模块化设计，将 AI Agent（Claude Code、Codex、Cursor 等）、消息平台（Discord、Telegram、飞书等）和会话管理解耦，通过统一的引擎层进行协调调度。\n\n架构设计遵循以下核心原则：\n\n- **插件化平台支持**：通过 `core.RegisterPlatform` 注册机制支持新平台的热插拔\n- **多项目隔离**：每个项目拥有独立的工作目录、Agent 配置和会话上下文\n- **统一消息协议**：不同平台的消息统一转换为内部标准格式进行处理\n- **前端分离**：Web 管理界面与后端核心服务通过 REST API 解耦\n\n## 核心架构图\n\n```mermaid\ngraph TB\n    subgraph 前端层[\"前端层 (React + TypeScript)\"]\n        UI[Web Admin UI]\n        API[API Client]\n    end\n    \n    subgraph 后端核心[\"后端核心 (Go)\"]\n        ENG[Engine 引擎]\n        BRG[Bridge 网桥]\n        REG[Registry 注册表]\n    end\n    \n    subgraph Agent层[\"Agent 层\"]\n        CLAUDE[Claude Code]\n        CODEX[Codex]\n        CURSOR[Cursor]\n        GEMINI[Gemini CLI]\n        QODER[Qoder]\n        OPENCODE[OpenCode]\n        IFLOW[iFlow]\n    end\n    \n    subgraph 平台层[\"平台层 (Platform Plugins)\"]\n        DISCORD[Discord]\n        TELEGRAM[Telegram]\n        FEISHU[飞书]\n        SLACK[Slack]\n        DINGTALK[钉钉]\n        WECOM[企业微信]\n        WECHAT[微信]\n        QQ[QQ/QQBot]\n        LINE[Line]\n        WEIBO[微博]\n    end\n    \n    UI --> API\n    API --> ENG\n    ENG <--> BRG\n    ENG <--> REG\n    ENG <--> CLAUDE\n    ENG <--> CODEX\n    ENG <--> CURSOR\n    ENG <--> GEMINI\n    ENG <--> QODER\n    ENG <--> OPENCODE\n    ENG <--> IFLOW\n    BRG <--> DISCORD\n    BRG <--> TELEGRAM\n    BRG <--> FEISHU\n    BRG <--> SLACK\n    BRG <--> DINGTALK\n    BRG <--> WECOM\n    BRG <--> WECHAT\n    BRG <--> QQ\n    BRG <--> LINE\n    BRG <--> WEIBO\n```\n\n## 核心组件\n\n### Engine（引擎）\n\nEngine 是系统的核心调度器，负责协调 Agent 与平台之间的通信。从前端代码可以看到，Engine 处理以下关键功能：\n\n- **Provider 管理**：管理 AI 模型提供商配置，包括 `base_url`、`model`、`thinking` 等参数\n- **会话管理**：维护多个会话（Session）的生命周期，包括连接状态、消息历史\n- **命令路由**：解析和执行用户命令，如 `/provider switch`、`/workspace bind` 等\n\n```typescript\n// 资料来源：web/src/pages/Providers/ProviderList.tsx:50-60\ninterface Provider {\n  name: string;\n  base_url?: string;\n  model: string;\n  models?: { model: string }[];\n  thinking?: string;\n  agent_types?: string[];\n  endpoints?: Record<string, string>;\n  agent_models?: Record<string, string>;\n  agent_model_lists?: Record<string, string[]>;\n}\n```\n\n### Bridge（网桥）\n\nBridge 负责维护与各消息平台的实时连接状态，实现消息的双向转发：\n\n- **连接状态管理**：追踪 `connecting`、`connected`、`disconnected`、`error` 等状态\n- **消息编码/解码**：将内部消息格式与各平台专有格式相互转换\n- **心跳机制**：通过心跳保持与平台的长连接活跃\n\n```typescript\n// 资料来源：web/src/pages/Sessions/SessionChat.tsx:30-40\nbridgeStatus === 'connected'  // 连接正常\nbridgeStatus === 'connecting' // 连接中\nbridgeStatus === 'disconnected' // 已断开\nbridgeStatus === 'error' // 连接错误\n```\n\n### Registry（注册表）\n\nRegistry 实现了 Agent 和 Platform 的注册发现机制：\n\n- **Agent 注册**：`core.RegisterAgent(\"agentname\", factory)` 将新的 Agent 类型注册到系统\n- **Platform 注册**：`core.RegisterPlatform(\"platformname\", factory)` 将新的消息平台接入系统\n- **工厂模式**：通过工厂函数延迟实例化，确保按需加载\n\n## Agent 架构\n\n### 支持的 Agent 类型\n\n| Agent 类型 | 标识符 | 配置项 | 说明 |\n|-----------|--------|--------|------|\n| Claude Code | `claudecode` | `work_dir`, `mode` | Anthropic 官方 CLI |\n| Codex | `codex` | `work_dir`, `mode` | OpenAI Codex |\n| Cursor | `cursor` | `work_dir`, `mode` | Cursor IDE |\n| Gemini CLI | `gemini` | `work_dir`, `mode` | Google Gemini CLI |\n| Qoder | `qoder` | `work_dir`, `mode` | Qoder CLI |\n| OpenCode | `opencode` | `work_dir`, `mode` | OpenCode CLI |\n| iFlow | `iflow` | `work_dir`, `mode` | iFlow CLI |\n\n### Agent 配置选项\n\n```toml\n# 资料来源：INSTALL.md:80-90\n[projects.agent]\ntype = \"claudecode\"  # 或 \"codex\", \"cursor\", \"gemini\", \"qoder\", \"opencode\", \"iflow\"\n\n[projects.agent.options]\nwork_dir = \"/absolute/path/to/your/project\"\nmode = \"default\"     # 或 \"acceptEdits\", \"plan\", \"bypassPermissions\", \"dontAsk\"\n```\n\n### Agent 模式说明\n\n| 模式 | 标识符 | 权限级别 | 说明 |\n|------|--------|----------|------|\n| 默认 | `default` | 标准 | 正常权限运行 |\n| 编辑 | `acceptEdits` | 中等 | 自动接受代码编辑建议 |\n| 计划 | `plan` | 只读 | 仅生成计划不执行 |\n| 放行 | `bypassPermissions` | 最高 | 跳过所有权限检查 |\n| 不询问 | `dontAsk` | 高 | 不等待确认直接执行 |\n\n## 平台架构\n\n### 支持的消息平台\n\ncc-connect 通过插件化架构支持多种即时通讯平台：\n\n| 平台 | 标识符 | 消息类型 | 特性 |\n|------|--------|----------|------|\n| Discord | `discord` | 文本/文件/图片 | Webhook + Bot |\n| Telegram | `telegram` | 文本/文件/图片 | Bot API |\n| 飞书 | `feishu` | 文本/文件 | 机器人 |\n| Slack | `slack` | 文本/文件 | Webhook/Bot |\n| 钉钉 | `dingtalk` | 文本/文件 | 机器人 |\n| 企业微信 | `wecom` | 文本/文件 | 企业机器人 |\n| 微信 | `weixin` | 文本/文件 | 公众号/企业微信 |\n| QQ | `qq`/`qqbot` | 文本/文件 | QQ 机器人 |\n| Line | `line` | 文本 | Line Bot |\n| 微博 | `weibo` | 文本 | 微博消息 |\n\n### 平台注册机制\n\n新增平台需要完成以下步骤：\n\n1. 创建平台目录 `platform/<platformname>/`\n2. 实现 `core.Platform` 接口\n3. 在 `init()` 函数中调用 `core.RegisterPlatform()`\n4. 创建构建标签文件 `cmd/cc-connect/plugin_platform_<platformname>.go`\n5. 添加到 `Makefile` 的 `ALL_PLATFORMS` 变量\n\n```go\n// 资料来源：AGENTS.md:25-30\n// 伪代码示例\nfunc init() {\n    core.RegisterPlatform(\"newplatform\", newPlatformFactory)\n}\n```\n\n## 会话管理架构\n\n### 会话生命周期\n\n```mermaid\nstateDiagram-v2\n    [*] --> 创建中: 新建项目\n    创建中 --> 活跃: 连接成功\n    活跃 --> 等待中: 消息发送\n    等待中 --> 活跃: 响应接收\n    活跃 --> 断开: 关闭连接\n    断开 --> 活跃: 重新连接\n    活跃 --> [*]: 项目删除\n```\n\n### 会话数据结构\n\n```typescript\n// 资料来源：web/src/pages/Sessions/SessionList.tsx:20-35\ninterface Session {\n  id: string;\n  name?: string;\n  user_name?: string;\n  live: boolean;           // 是否活跃\n  last_message?: {\n    role: 'user' | 'assistant';\n    content: string;\n  };\n  updated_at?: string;\n  created_at?: string;\n}\n```\n\n## API 架构\n\n### API 客户端设计\n\n前端通过统一的 `ApiClient` 类与后端通信：\n\n```typescript\n// 资料来源：web/src/api/client.ts:1-30\nclass ApiClient {\n  get<T>(path: string, params?: Record<string, string>): Promise<T>\n  post<T>(path: string, body?: any): Promise<T>\n  put<T>(path: string, body?: any): Promise<T>\n  patch<T>(path: string, body?: any): Promise<T>\n  delete<T>(path: string): Promise<T>\n  raw(path: string): Promise<string>  // 非 JSON 响应\n}\n```\n\n### 认证机制\n\nAPI 使用 Bearer Token 进行认证：\n\n```typescript\n// 资料来源：web/src/api/client.ts:20-25\nconst h: HeadersInit = {};\nif (this.token) h['Authorization'] = `Bearer ${this.token}`;\n```\n\n## 项目配置架构\n\n### 配置层级\n\n```mermaid\ngraph TD\n    A[config.toml] --> B[全局设置]\n    A --> C[[projects]]\n    C --> D[项目 1]\n    C --> E[项目 N]\n    D --> F[agent 配置]\n    D --> G[platforms 配置]\n    F --> H[type]\n    F --> I[options]\n    G --> J[platform 类型]\n    G --> K[webhook/token]\n```\n\n### 配置示例\n\n```toml\n# 资料来源：INSTALL.md:40-70\n[log]\nlevel = \"info\"  # debug, info, warn, error\n\n[[projects]]\nname = \"my-project\"\n\n[projects.agent]\ntype = \"claudecode\"\n[projects.agent.options]\nwork_dir = \"/path/to/project\"\nmode = \"default\"\n```\n\n## 工作目录隔离\n\n每个项目拥有独立的工作目录，确保项目间环境互不影响：\n\n```typescript\n// 资料来源：web/src/pages/Projects/ProjectDetail.tsx:10-15\n<Input\n  label={t('projects.workDir', 'Working directory')}\n  value={workDir}\n  onChange={(e) => setWorkDir(e.target.value)}\n  placeholder=\"/path/to/project\"\n/>\n```\n\n## 消息流转架构\n\n```mermaid\nsequenceDiagram\n    participant User as 用户\n    participant Platform as 消息平台\n    participant Bridge as Bridge\n    participant Engine as Engine\n    participant Agent as AI Agent\n    \n    User->>Platform: 发送消息\n    Platform->>Bridge: 接收消息\n    Bridge->>Engine: 转发消息\n    Engine->>Agent: 转发给 Agent\n    Agent-->>Engine: 生成响应\n    Engine-->>Bridge: 返回响应\n    Bridge-->>Platform: 推送消息\n    Platform-->>User: 显示响应\n```\n\n## 前端技术栈\n\n| 层级 | 技术 | 职责 |\n|------|------|------|\n| UI 框架 | React 18 | 组件化开发 |\n| 语言 | TypeScript | 类型安全 |\n| 样式 | Tailwind CSS | 原子化样式 |\n| 状态管理 | React Hooks | 本地状态 |\n| 路由 | React Router | 页面导航 |\n| HTTP | Fetch API | 服务端通信 |\n\n### 前端页面结构\n\n| 页面 | 路径 | 功能 |\n|------|------|------|\n| ProviderList | `/providers` | AI 提供商管理 |\n| ProjectList | `/projects` | 项目列表 |\n| ProjectDetail | `/projects/:id` | 项目配置 |\n| SessionList | `/sessions` | 会话列表 |\n| SessionChat | `/sessions/:id/chat` | 聊天界面 |\n| SkillList | `/skills` | 技能管理 |\n\n## 国际化\n\n系统支持多语言界面，通过统一的翻译函数实现：\n\n```go\n// 资料来源：core/i18n.go:10-40\nMsgProviderSwitchHint: {\n    LangEnglish:            \"`/provider switch <name>` to switch\",\n    LangChinese:            \"`/provider switch <名称>` 切换\",\n    LangTraditionalChinese: \"`/provider switch <名稱>` 切換\",\n    LangJapanese:           \"`/provider switch <名前>` で切り替え\",\n    LangSpanish:            \"`/provider switch <nombre>` para cambiar\",\n}\n```\n\n支持语言：`en`（英语）、`zh`（简体中文）、`zh-TW`（繁体中文）、`ja`（日语）、`es`（西班牙语）\n\n## 构建与部署\n\n### 构建标签\n\ncc-connect 使用 Go 构建标签实现平台和 Agent 的条件编译：\n\n```bash\n# 资料来源：AGENTS.md:30-35\n//go:build !no_discord\n//go:build !no_telegram\n//go:build !no_feishu\n```\n\n通过 `make build` 或 `make build PLATFORMS=\"discord,telegram\"` 构建特定平台版本。\n\n### 配置文件优先级\n\n1. `-config <path>` 命令行参数\n2. `./config.toml` 当前目录\n3. `~/.cc-connect/config.toml` 全局配置（推荐）\n\n## 扩展指南\n\n### 新增 Agent 步骤\n\n1. 创建 `agent/<agentname>/<agentname>.go`\n2. 实现 `core.Agent` 和 `core.AgentSession` 接口\n3. 在 `init()` 中调用 `core.RegisterAgent()`\n4. 创建 `cmd/cc-connect/plugin_agent_<agentname>.go`\n5. 添加到 `Makefile` 的 `ALL_AGENTS`\n\n### 新增平台步骤\n\n1. 创建 `platform/<platformname>/<platformname>.go`\n2. 实现 `core.Platform` 接口\n3. 在 `init()` 中调用 `core.RegisterPlatform()`\n4. 创建 `cmd/cc-connect/plugin_platform_<platformname>.go`\n5. 添加到 `Makefile` 的 `ALL_PLATFORMS`\n\n## 总结\n\ncc-connect 采用清晰的分层架构设计：\n\n- **前端层**：React + TypeScript 构建的管理界面\n- **核心层**：Engine、Bridge、Registry 组成的调度核心\n- **Agent 层**：支持多种 AI 编程助手的统一抽象\n- **平台层**：插件化的即时通讯平台集成\n\n这种架构使得系统具有良好的可扩展性和可维护性，能够方便地接入新的 Agent 类型和消息平台，同时保持核心逻辑的稳定性。\n\n---\n\n<a id='core-interfaces'></a>\n\n## 核心接口定义\n\n### 相关页面\n\n相关主题：[系统架构](#architecture), [Bridge 协议](#bridge-protocol)\n\n<details>\n<summary>相关源码文件</summary>\n\n以下源码文件用于生成本页说明：\n\n- [AGENTS.md](https://github.com/chenhg5/cc-connect/blob/main/AGENTS.md)\n- [core/i18n.go](https://github.com/chenhg5/cc-connect/blob/main/core/i18n.go)\n- [CONTRIBUTING.md](https://github.com/chenhg5/cc-connect/blob/main/CONTRIBUTING.md)\n- [INSTALL.md](https://github.com/chenhg5/cc-connect/blob/main/INSTALL.md)\n- [web/src/pages/Providers/ProviderList.tsx](https://github.com/chenhg5/cc-connect/blob/main/web/src/pages/Providers/ProviderList.tsx)\n</details>\n\n# 核心接口定义\n\n## 概述\n\ncc-connect 是一个将 AI 编码代理（如 Claude Code、Codex、Cursor 等）与多种消息平台（飞书、Telegram、Discord 等）连接的基础设施项目。其核心架构基于**接口驱动设计**，通过抽象层解耦代理实现与平台接入，使系统具备高度可扩展性。\n\n核心接口体系包含三大支柱：\n\n| 接口类别 | 作用 | 关键文件 |\n|---------|------|---------|\n| **Agent 接口** | 定义 AI 代理的标准行为 | `agent/*/` |\n| **Platform 接口** | 定义消息平台的标准行为 | `platform/*/` |\n| **Provider 接口** | 定义模型供应商配置 | `core/provider.go` |\n\n资料来源：[AGENTS.md:1-20]()\n\n## 接口架构图\n\n```mermaid\ngraph TD\n    subgraph \"接入层 (Platform)\"\n        P1[Feishu]\n        P2[Telegram]\n        P3[Discord]\n        P4[Slack]\n    end\n    \n    subgraph \"核心层 (Core)\"\n        Core[Core Engine]\n        Provider[Provider Manager]\n        Session[Session Manager]\n    end\n    \n    subgraph \"代理层 (Agent)\"\n        A1[Claude Code]\n        A2[Codex]\n        A3[Cursor]\n        A4[Gemini]\n    end\n    \n    P1 & P2 & P3 & P4 --> Core\n    Core --> Provider\n    Core --> Session\n    Session --> A1 & A2 & A3 & A4\n    \n    style Core fill:#e1f5fe\n    style Provider fill:#fff3e0\n    style Session fill:#e8f5e9\n```\n\n## 代理接口体系\n\n### Agent 接口\n\n每个 AI 代理必须实现 `core.Agent` 和 `core.AgentSession` 接口。这种设计允许同一代理类型在不同工作目录下运行多个独立会话。\n\n代理注册通过 `init()` 函数完成：\n\n```go\ncore.RegisterAgent(\"newagent\", factory)\n```\n\n资料来源：[AGENTS.md:35-44]()\n\n### 支持的代理类型\n\n| 代理类型 | 构建标签 | 配置标识 |\n|---------|---------|---------|\n| Claude Code | `no_claudecode` | `claudecode` |\n| Codex | `no_codex` | `codex` |\n| Cursor | `no_cursor` | `cursor` |\n| Gemini | `no_gemini` | `gemini` |\n| iFlow | `no_iflow` | `iflow` |\n| OpenCode | `no_opencode` | `opencode` |\n| Qoder | `no_qoder` | `qoder` |\n| ACP | `no_acp` | `acp` |\n\n资料来源：[AGENTS.md:43-52]()\n\n### 代理配置选项\n\n代理的 `options` 配置块支持以下参数：\n\n| 参数 | 说明 | 可选值 |\n|------|------|--------|\n| `type` | 代理类型 | `claudecode`, `codex`, `cursor` 等 |\n| `work_dir` | 工作目录路径 | 绝对路径 |\n| `mode` | 运行模式 | `default`, `acceptEdits`, `plan`, `bypassPermissions`, `dontAsk` |\n\n资料来源：[INSTALL.md:28-42]()\n\n```toml\n[projects.agent]\ntype = \"claudecode\"\n[projects.agent.options]\nwork_dir = \"/absolute/path/to/your/project\"\nmode = \"default\"  # 或 acceptEdits, plan, bypassPermissions, dontAsk\n```\n\n## 平台接口体系\n\n### Platform 接口\n\n消息平台通过实现 `core.Platform` 接口接入系统。接口支持可选扩展以提供更丰富的功能。\n\n平台注册同样通过 `init()` 函数：\n\n```go\ncore.RegisterPlatform(\"newplatform\", factory)\n```\n\n资料来源：[AGENTS.md:17-33]()\n\n### 支持的平台类型\n\n| 平台 | 构建标签 | 配置标识 |\n|------|---------|---------|\n| 飞书 | `no_feishu` | `feishu` |\n| Telegram | `no_telegram` | `telegram` |\n| Discord | `no_discord` | `discord` |\n| Slack | `no_slack` | `slack` |\n| 钉钉 | `no_dingtalk` | `dingtalk` |\n| 企业微信 | `no_wecom` | `wecom` |\n| 微信 | `no_weixin` | `weixin` |\n| QQ | `no_qq` | `qq` |\n| QQ 机器人 | `no_qqbot` | `qqbot` |\n| LINE | `no_line` | `line` |\n| 微博 | `no_weibo` | `weibo` |\n\n资料来源：[AGENTS.md:1-15]()\n\n### 平台编译策略\n\ncc-connect 采用**构建标签（Build Tags）** 实现选择性编译，每个平台/代理通过独立的 `plugin_*.go` 文件导入：\n\n```go\n//go:build !no_feishu\n```\n\n#### 编译命令示例\n\n| 场景 | 命令 |\n|------|------|\n| 排除指定平台 | `go build -tags 'no_discord no_dingtalk'` |\n| 仅包含特定代理 | `make build AGENTS=claudecode` |\n| 仅包含特定平台 | `make build PLATFORMS_INCLUDE=feishu,telegram` |\n| 排除多个组件 | `make build EXCLUDE=discord,dingtalk,qq` |\n\n资料来源：[AGENTS.md:70-91]()\n\n## Provider 接口体系\n\n### Provider 管理\n\nProvider 负责管理与 AI 模型的连接配置，支持多种模型供应商的统一抽象。\n\n### Provider 配置结构\n\n```toml\n[[projects.providers]]\nname = \"provider-name\"\ntype = \"openai\"  # 或 anthropic, google 等\nbase_url = \"https://api.example.com/v1\"\nmodel = \"gpt-4\"\nthinking = \"\"  # 支持 thinking 特性\n```\n\nProvider 配置可通过 Web 界面或配置文件管理，支持预设模板导入。\n\n资料来源：[web/src/pages/Providers/ProviderList.tsx:1-50]()\n\n### Provider 预设系统\n\n系统内置 Provider 预设，支持一键配置常用供应商：\n\n| 预设属性 | 说明 |\n|---------|------|\n| `tier` | 层级排序 |\n| `thinking` | 是否支持思考模式 |\n| `agent_types` | 支持的代理类型列表 |\n| `endpoints` | 自定义端点映射 |\n| `agent_models` | 代理特定模型配置 |\n| `agent_model_lists` | 模型列表配置 |\n\n资料来源：[web/src/pages/Providers/ProviderList.tsx:80-95]()\n\n## Session 管理\n\n### 会话生命周期\n\n会话（Session）是连接平台消息与代理执行的桥梁。每个会话独立维护上下文状态。\n\n会话支持以下操作：\n\n- `/workspace bind <workspace-name>` - 绑定工作区\n- `/workspace route <absolute-path>` - 设置路由路径\n- `/provider switch <name>` - 切换 Provider\n- `/provider clear` - 清除 Provider 选择\n\n资料来源：[core/i18n.go:50-100]()\n\n### 会话状态消息\n\n| 消息键 | 英文 | 中文 |\n|-------|------|------|\n| `MsgWsBindSuccess` | ✅ Workspace bound | ✅ 工作区绑定成功 |\n| `MsgWsBindNotFound` | Workspace not found | 工作区不存在 |\n| `MsgProviderSwitched` | ✅ Provider switched | ✅ Provider 已切换 |\n| `MsgProviderNotFound` | ❌ Provider not found | ❌ 未找到 Provider |\n\n资料来源：[core/i18n.go:1-80]()\n\n## 项目配置模型\n\n### 完整配置结构\n\n```toml\n[[projects]]\nname = \"my-project\"\n\n[projects.agent]\ntype = \"claudecode\"\n[projects.agent.options]\nwork_dir = \"/absolute/path/to/your/project\"\nmode = \"default\"\n\n# 平台配置\n[projects.platform]\ntype = \"feishu\"\n# ... 平台特定配置\n\n# Provider 配置\n[[projects.providers]]\nname = \"openai\"\nmodel = \"gpt-4\"\n\n# 心跳配置（可选）\n[projects.heartbeat]\ninterval_mins = 5\n```\n\n资料来源：[INSTALL.md:20-50]()\n\n### 项目级功能开关\n\n| 功能 | 配置项 | 说明 |\n|------|--------|------|\n| 上下文指示器 | `show_ctx_indicator` | 在回复后显示 `[ctx: ~N%]` |\n| 回复页脚 | `reply_footer` | 追加模型/用量元数据 |\n\n资料来源：[web/src/pages/Projects/ProjectDetail.tsx:50-80]()\n\n## 国际化接口\n\n### 消息定义格式\n\n系统使用统一的国际化消息接口，支持多语言：\n\n| 语言 | 代码 | 说明 |\n|------|------|------|\n| 英语 | `en` | 默认语言 |\n| 中文 | `zh` | 简体中文 |\n| 繁体中文 | `zh-TW` | 繁体中文 |\n| 日语 | `ja` | 日语 |\n| 西班牙语 | `es` | 西班牙语 |\n\n消息定义示例：\n\n```go\nMsgProviderNotFound: {\n    LangEnglish:            \"❌ Provider %q not found...\",\n    LangChinese:            \"❌ 未找到 Provider %q...\",\n    LangTraditionalChinese: \"❌ 未找到 Provider %q...\",\n    LangJapanese:           \"❌ プロバイダ %q が見つかりません...\",\n    LangSpanish:            \"❌ Proveedor %q no encontrado...\",\n},\n```\n\n资料来源：[core/i18n.go:1-50]()\n\n## 扩展开发指南\n\n### 新增代理步骤\n\n1. 创建 `agent/newagent/newagent.go`\n2. 实现 `core.Agent` 和 `core.AgentSession` 接口\n3. 在 `init()` 中注册：`core.RegisterAgent(\"newagent\", factory)`\n4. 创建 `cmd/cc-connect/plugin_agent_newagent.go` 含构建标签\n5. 添加到 `Makefile` 的 `ALL_AGENTS`\n6. 在 `config.example.toml` 添加配置示例\n7. 编写单元测试\n\n资料来源：[AGENTS.md:35-51]()\n\n### 新增平台步骤\n\n1. 创建 `platform/newplatform/newplatform.go`\n2. 实现 `core.Platform` 接口\n3. 在 `init()` 中注册：`core.RegisterPlatform(\"newplatform\", factory)`\n4. 创建构建标签文件\n5. 添加到编译配置\n6. 添加配置示例和测试\n\n资料来源：[AGENTS.md:17-33]()\n\n## 测试规范\n\n### 接口测试要点\n\n| 测试类别 | 测试方法 |\n|---------|---------|\n| 代理测试 | 使用 channels 模拟事件流 |\n| 平台测试 | 模拟消息接收和响应 |\n| 卡片渲染 | 检查返回的 `*Card` 结构体 |\n| 会话测试 | 通过 channels 模拟事件流 |\n\n资料来源：[AGENTS.md:60-65]()\n\n## 编译检查清单\n\n新增代码必须通过以下检查：\n\n| 检查项 | 命令 | 说明 |\n|--------|------|------|\n| 构建测试 | `go build ./...` | 确保无编译错误 |\n| 单元测试 | `go test ./...` | 所有测试通过 |\n| 硬编码检查 | `grep` 检查 | core 目录无平台/代理硬编码名称 |\n| 国际化 | 检查 | 所有用户可见字符串有翻译 |\n| 敏感信息 | 检查 | 代码中无 API keys、tokens |\n\n资料来源：[AGENTS.md:22-31]()\n\n## 总结\n\ncc-connect 的核心接口体系采用简洁而强大的设计：\n\n- **接口抽象**：通过 `Agent`、`Platform`、`Provider` 三大接口抽象不同实现\n- **插件化编译**：使用构建标签实现按需编译，减少二进制体积\n- **国际化优先**：所有用户可见文本通过统一的 i18n 接口管理\n- **配置驱动**：通过 TOML 配置文件灵活管理项目设置\n\n这种设计使开发者能够以一致的方式添加新的代理类型或消息平台，同时保持核心引擎的稳定性和可测试性。\n\n---\n\n<a id='bridge-protocol'></a>\n\n## Bridge 协议\n\n### 相关页面\n\n相关主题：[核心接口定义](#core-interfaces)\n\n<details>\n<summary>相关源码文件</summary>\n\n以下源码文件用于生成本页说明：\n\n- [core/bridge.go](https://github.com/chenhg5/cc-connect/blob/main/core/bridge.go)\n- [core/bridge_capabilities.go](https://github.com/chenhg5/cc-connect/blob/main/core/bridge_capabilities.go)\n- [web/src/pages/Sessions/SessionChat.tsx](https://github.com/chenhg5/cc-connect/blob/main/web/src/pages/Sessions/SessionChat.tsx)\n- [web/src/pages/Chat/ChatView.tsx](https://github.com/chenhg5/cc-connect/blob/main/web/src/pages/Chat/ChatView.tsx)\n- [web/src/api/client.ts](https://github.com/chenhg5/cc-connect/blob/main/web/src/api/client.ts)\n</details>\n\n# Bridge 协议\n\n## 概述\n\nBridge 协议是 cc-connect 项目中的核心通信机制，用于在 Web 前端与后端引擎之间建立双向实时通信通道。它通过 WebSocket 技术实现低延迟的消息传递，支持多项目引擎管理、命令发布与订阅、以及卡片导航功能。\n\nBridge 协议的核心组件位于 `core/bridge.go` 和 `core/bridge_capabilities.go` 中，为整个应用提供可靠的前后端桥接能力。\n\n---\n\n## 架构设计\n\n### 组件关系图\n\n```mermaid\ngraph TD\n    A[Web 前端] <-->|WebSocket| B[BridgeServer]\n    B --> C[BridgePlatform]\n    B --> D[bridgeAdapter]\n    C --> E[Engine]\n    E --> F[bridgeEngineRef]\n    G[Providers] --> E\n    H[Skills] --> E\n```\n\n### 核心数据结构\n\n| 组件 | 文件位置 | 职责 |\n|------|---------|------|\n| `BridgeServer` | `core/bridge.go` | WebSocket 服务器主控，管理多个项目平台 |\n| `BridgePlatform` | `core/bridge.go` | 单个项目的通信平台实例 |\n| `bridgeAdapter` | `core/bridge.go` | 消息适配器，处理协议转换 |\n| `bridgeEngineRef` | `core/bridge.go` | 引擎引用，管理引擎生命周期 |\n| `Engine` | `core/bridge.go` | 具体项目引擎实现 |\n\n资料来源：[core/bridge.go:47-61]()\n\n---\n\n## BridgeServer 配置与初始化\n\n### 配置参数\n\n`NewBridgeServer` 函数负责创建 Bridge 服务器实例，支持以下配置选项：\n\n| 参数 | 类型 | 默认值 | 说明 |\n|------|------|--------|------|\n| `port` | int | 9810 | WebSocket 服务端口 |\n| `path` | string | `/bridge/ws` | WebSocket 路径（自动补全前缀 `/`）|\n| `token` | string | - | 认证令牌，insecure 模式下可为空 |\n| `insecure` | bool | false | 是否启用非安全模式（仅限本地开发）|\n| `corsOrigins` | []string | - | CORS 允许的源列表 |\n\n资料来源：[core/bridge.go:47-59]()\n\n### 安全机制\n\nBridge 协议实现了严格的安全验证：\n\n```go\n// Validate security settings\nif token == \"\" && !insecure {\n    slog.Error(\"bridge: token is required when insecure mode is not enabled\",\n        \"help\", \"set bridge.token in config, or use insecure=true for local development only\")\n    return nil\n}\nif insecure && token == \"\" {\n    slog.Warn(\"bridge: running in INSECURE mode without authentication - only use for local development!\")\n}\n```\n\n资料来源：[core/bridge.go:63-73]()\n\n**安全规则：**\n- 生产环境必须配置 `token`\n- `insecure` 模式仅用于本地开发\n- 未配置 token 且未启用 insecure 模式时，服务器启动失败\n\n---\n\n## 项目引擎管理\n\n### 注册引擎\n\n使用 `RegisterEngine` 方法将项目引擎注册到 Bridge 服务器：\n\n```go\nfunc (bs *BridgeServer) RegisterEngine(projectName string, engine *Engine, bp *BridgePlatform) {\n    bs.enginesMu.Lock()\n    defer bs.enginesMu.Unlock()\n    if err := bp.Start(engine.handleMessage); err != nil {\n        slog.Warn(\"bridge: platform start failed\", \"project\", projectName, \"error\", err)\n    }\n    bp.SetCardNavigationHandler(engine.handleCardNav)\n}\n```\n\n资料来源：[core/bridge.go:83-92]()\n\n### 创建平台实例\n\n每个项目引擎对应一个独立的 `BridgePlatform` 实例：\n\n```go\nfunc (bs *BridgeServer) NewPlatform(projectName string) *BridgePlatform {\n    return &BridgePlatform{server: bs, project: projectName}\n}\n```\n\n资料来源：[core/bridge.go:76-79]()\n\n---\n\n## 能力快照机制\n\n### 快照数据结构\n\n`bridgeCapabilitiesSnapshot` 定义了 Bridge 协议的能力快照格式：\n\n```go\ntype bridgeCapabilitiesSnapshot struct {\n    Type    string                           `json:\"type\"`\n    Version int                              `json:\"version\"`\n    Host    bridgeCapabilitiesHost            `json:\"host\"`\n    Projects []bridgeProjectCapabilities      `json:\"projects\"`\n}\n\ntype bridgeCapabilitiesHost struct {\n    ID               string `json:\"id\"`\n    Hostname         string `json:\"hostname\"`\n    CCConnectVersion string `json:\"ccconnect_version\"`\n    Commit           string `json:\"commit\"`\n    BuildTime        string `json:\"build_time\"`\n}\n\ntype bridgeProjectCapabilities struct {\n    Project  string   `json:\"project\"`\n    Commands []string `json:\"commands\"`\n}\n```\n\n资料来源：[core/bridge_capabilities.go:1-35]()\n\n### 获取能力快照\n\n能力快照通过以下流程生成：\n\n```mermaid\ngraph TD\n    A[请求能力快照] --> B[获取所有项目名称]\n    B --> C[排序项目列表]\n    C --> D{遍历每个项目}\n    D -->|获取引擎| E[bridgeEngineRef]\n    E --> F[获取发布命令]\n    F --> G[构建快照数据]\n    G --> H[返回 JSON 响应]\n```\n\n资料来源：[core/bridge_capabilities.go:4-28]()\n\n---\n\n## 前端集成\n\n### 连接状态管理\n\nWeb 前端通过 `web/src/api/client.ts` 中的 API 客户端与 Bridge 服务器通信：\n\n```typescript\nexport class ApiClient {\n  async raw(path: string): Promise<string> {\n    const h: HeadersInit = {};\n    if (this.token) h['Authorization'] = `Bearer ${this.token}`;\n    const res = await fetch(`${API_BASE}${path}`, { headers: h });\n    if (res.status === 401 && this.onUnauthorized) {\n      this.onUnauthorized();\n      throw new ApiError('Unauthorized', 401);\n    }\n    if (!res.ok) throw new ApiError(res.statusText, res.status);\n    return res.text();\n  }\n}\n```\n\n资料来源：[web/src/api/client.ts:1-50]()\n\n### 连接状态展示\n\n前端 UI 根据 Bridge 连接状态显示不同的界面：\n\n| 状态 | 样式 | 消息键名 |\n|------|------|----------|\n| `connected` | 绿色图标 | `sessions.bridgeConnected` |\n| `error` | 琥珀色警告 | `sessions.bridgeDisconnected` |\n| `connecting` | 灰色加载动画 | `sessions.bridgeConnecting` |\n\n资料来源：[web/src/pages/Sessions/SessionChat.tsx:1-20]()\n资料来源：[web/src/pages/Chat/ChatView.tsx:1-15]()\n\n**连接中状态 UI：**\n```tsx\n<div className=\"flex items-center gap-2 px-4 py-3 text-sm text-gray-400 bg-gray-50 dark:bg-gray-800/50 rounded-xl\">\n  <Loader2 size={14} className=\"animate-spin\" />\n  <span>{t('sessions.bridgeConnecting', 'Connecting to bridge...')}</span>\n</div>\n```\n\n资料来源：[web/src/pages/Sessions/SessionChat.tsx:13-16]()\n\n---\n\n## 配置示例\n\n### config.toml 配置\n\n```toml\n[bridge]\nport = 9810\npath = \"/bridge/ws\"\ntoken = \"your-secret-token\"\ninsecure = false  # 仅本地开发设为 true\ncors_origins = [\"http://localhost:5173\"]\n```\n\n### 启动参数说明\n\n| 参数 | 环境变量 | 说明 |\n|------|----------|------|\n| `port` | `BRIDGE_PORT` | 服务端口 |\n| `path` | `BRIDGE_PATH` | WebSocket 路径 |\n| `token` | `BRIDGE_TOKEN` | 认证令牌 |\n| `insecure` | `BRIDGE_INSECURE` | 非安全模式 |\n\n---\n\n## 错误处理\n\n### 常见错误场景\n\n| 场景 | 错误消息 | 解决方案 |\n|------|----------|----------|\n| Token 缺失 | `bridge: token is required when insecure mode is not enabled` | 设置 `bridge.token` 或启用 `insecure=true` |\n| 平台启动失败 | `bridge: platform start failed` | 检查引擎配置和网络连接 |\n| 401 未授权 | `Unauthorized` | 验证 token 有效性 |\n\n资料来源：[core/bridge.go:63-69]()\n\n---\n\n## 版本信息\n\n能力快照中包含版本信息字段：\n\n| 字段 | 来源 | 说明 |\n|------|------|------|\n| `CCConnectVersion` | 编译时注入 | cc-connect 版本号 |\n| `Commit` | 编译时注入 | Git 提交哈希 |\n| `BuildTime` | 编译时注入 | 构建时间戳 |\n\n资料来源：[core/bridge_capabilities.go:18-22]()\n\n---\n\n## 总结\n\nBridge 协议是 cc-connect 实现前后端实时通信的关键机制。它具有以下特点：\n\n- **基于 WebSocket**：提供低延迟的双向通信\n- **多项目支持**：通过 `BridgePlatform` 管理多个独立项目\n- **安全认证**：支持 token 验证和 CORS 控制\n- **能力发现**：提供标准化的能力快照机制\n- **状态监控**：前端可实时感知连接状态变化\n\n---\n\n<a id='agent-overview'></a>\n\n## Agent 集成概述\n\n### 相关页面\n\n相关主题：[Claude Code 集成](#claude-code-integration), [Codex 集成](#codex-integration), [Agent 通信协议](#agent-protocols)\n\n<details>\n<summary>相关源码文件</summary>\n\n以下源码文件用于生成本页说明：\n\n- [agent/acp/agent.go](https://github.com/chenhg5/cc-connect/blob/main/agent/acp/agent.go)\n- [agent/claudecode/claudecode.go](https://github.com/chenhg5/cc-connect/blob/main/agent/claudecode/claudecode.go)\n- [agent/codex/codex.go](https://github.com/chenhg5/cc-connect/blob/main/agent/codex/codex.go)\n- [core/agent.go](https://github.com/chenhg5/cc-connect/blob/main/core/agent.go)\n- [web/src/pages/Projects/ProjectDetail.tsx](https://github.com/chenhg5/cc-connect/blob/main/web/src/pages/Projects/ProjectDetail.tsx)\n- [web/src/pages/Providers/ProviderList.tsx](https://github.com/chenhg5/cc-connect/blob/main/web/src/pages/Providers/ProviderList.tsx)\n- [core/i18n.go](https://github.com/chenhg5/cc-connect/blob/main/core/i18n.go)\n\n</details>\n\n# Agent 集成概述\n\n## 简介\n\nAgent 集成是 cc-connect 项目的核心功能模块，负责将多种 AI Agent 提供商统一接入到平台中。该模块通过抽象层设计，支持多种 Agent 运行时环境，包括 ACP Agent、Claude Code 和 Codex 等主流 AI 编程助手。\n\nAgent 系统的设计目标是通过统一的接口规范，将不同提供商的 Agent 能力整合到同一个协作框架中，使开发者能够在项目中灵活切换和配置不同的 AI 助手，同时保持一致的用户体验和项目管理流程。\n\n---\n\n## 架构设计\n\n### 整体架构\n\ncc-connect 的 Agent 集成采用分层架构设计，从底层到顶层依次为：\n\n```mermaid\ngraph TD\n    A[用户界面层] --> B[项目管理模块]\n    B --> C[Provider 配置层]\n    C --> D[Agent 抽象层]\n    D --> E[具体 Agent 实现]\n    \n    E --> F[ACP Agent]\n    E --> G[Claude Code]\n    E --> H[Codex]\n    \n    style D fill:#e1f5fe\n    style F fill:#fff3e0\n    style G fill:#fff3e0\n    style H fill:#fff3e0\n```\n\n### Agent 类型系统\n\n系统支持多种 Agent 类型，通过 `agent_type` 字段进行标识和配置。不同的 Agent 类型对应不同的 AI 提供商和运行时环境。\n\n| Agent 类型 | 提供商 | 主要用途 | 配置方式 |\n|-----------|--------|----------|----------|\n| acp | ACP | 通用 AI 协作 | base_url + model |\n| claude | Claude Code | Claude 编程助手 | claude_code 配置 |\n| codex | OpenAI Codex | 代码补全与生成 | codex 配置 |\n\n资料来源：[web/src/pages/Projects/ProjectDetail.tsx:30-35](https://github.com/chenhg5/cc-connect/blob/main/web/src/pages/Projects/ProjectDetail.tsx)\n\n---\n\n## Agent 权限模式\n\n### 权限模式列表\n\n每个 Agent 实例可以配置不同的权限模式，决定其执行操作时的权限级别。权限模式通过 `agentMode` 参数控制。\n\n| 模式值 | 显示名称 | 说明 |\n|--------|----------|------|\n| default | 默认 | 标准权限，需要用户确认敏感操作 |\n| acceptEdits | edit | 自动接受编辑操作 |\n| plan | plan | 仅规划模式，不执行实际操作 |\n| bypassPermissions | yolo | 绕过权限检查，所有操作直接执行 |\n| dontAsk | dontAsk | 不询问，直接执行所有操作 |\n\n资料来源：[web/src/pages/Projects/ProjectDetail.tsx:17-22](https://github.com/chenhg5/cc-connect/blob/main/web/src/pages/Projects/ProjectDetail.tsx)\n\n### 权限模式配置界面\n\n```tsx\n<select\n  value={agentMode}\n  onChange={(e) => setAgentMode(e.target.value)}\n  className=\"w-full px-3 py-2 text-sm rounded-lg border...\"\n>\n  <option value=\"default\">default</option>\n  <option value=\"acceptEdits\">acceptEdits (edit)</option>\n  <option value=\"plan\">plan</option>\n  <option value=\"bypassPermissions\">bypassPermissions (yolo)</option>\n  <option value=\"dontAsk\">dontAsk</option>\n</select>\n```\n\n---\n\n## Provider 配置与 Agent 关联\n\n### Provider 模型\n\nProvider 是 Agent 的配置容器，负责存储与特定 AI 服务提供商的连接配置。每个 Provider 可以包含多个模型配置和 Agent 类型支持。\n\n```typescript\ninterface Provider {\n  name: string;           // Provider 唯一标识\n  base_url: string;       // API 端点地址\n  model: string;          // 默认模型\n  models: string[];       // 可用模型列表\n  agent_types?: string[]; // 支持的 Agent 类型\n  thinking?: string;     // 思考模式配置\n}\n```\n\n资料来源：[web/src/pages/Providers/ProviderList.tsx:10-20](https://github.com/chenhg5/cc-connect/blob/main/web/src/pages/Providers/ProviderList.tsx)\n\n### 思考模式配置\n\n思考模式（Thinking）是 Agent 的重要特性之一，用于控制 AI 是否进行链式推理思考。\n\n| 模式值 | 说明 |\n|--------|------|\n| 空字符串 | 使用 Provider 默认配置 |\n| enabled | 启用思考模式 |\n| disabled | 禁用思考模式 |\n\n```tsx\n<select\n  value={form.thinking || ''}\n  onChange={e => set('thinking', e.target.value)}\n>\n  <option value=\"\">{t('globalProviders.form.thinkingDefault')}</option>\n  <option value=\"enabled\">enabled</option>\n  <option value=\"disabled\">disabled</option>\n</select>\n```\n\n资料来源：[web/src/pages/Providers/ProviderList.tsx:90-105](https://github.com/chenhg5/cc-connect/blob/main/web/src/pages/Providers/ProviderList.tsx)\n\n---\n\n## 项目与 Agent 绑定\n\n### 项目配置结构\n\n每个项目（Project）可以关联一个或多个 Agent 实例，通过 `agent_type` 和相关配置实现绑定关系。\n\n```typescript\ninterface Project {\n  name: string;           // 项目名称\n  agent_type: string;     // 关联的 Agent 类型\n  work_dir?: string;      // 工作目录\n  agent_mode?: string;    // 权限模式\n  sessions_count: number; // 关联的会话数量\n  heartbeat_enabled?: boolean; // 心跳功能开关\n}\n```\n\n资料来源：[web/src/pages/Projects/ProjectList.tsx:20-30](https://github.com/chenhg5/cc-connect/blob/main/web/src/pages/Projects/ProjectList.tsx)\n\n### Agent 类型变更流程\n\n```mermaid\ngraph LR\n    A[选择 Agent 类型] --> B{类型是否改变?}\n    B -->|是| C[显示警告提示]\n    C --> D[重启项目生效]\n    B -->|否| E[保持当前配置]\n    D --> F[移除不兼容的 Provider]\n    F --> G[应用新配置]\n```\n\n当用户修改项目的 Agent 类型时，系统会显示警告提示，告知用户此操作需要重启项目，并且不兼容的 Provider 会被自动移除。\n\n资料来源：[web/src/pages/Projects/ProjectDetail.tsx:40-42](https://github.com/chenhg5/cc-connect/blob/main/web/src/pages/Projects/ProjectDetail.tsx)\n\n---\n\n## Agent 实现类型\n\n### ACP Agent\n\nACP Agent 是 cc-connect 的核心 Agent 实现，提供基于 ACP 协议的统一接口。\n\n**主要特性：**\n- 支持多种模型配置\n- 可配置的思考模式\n- 多语言国际化支持\n\n### Claude Code\n\nClaude Code Agent 集成，允许直接调用 Claude Code 的能力。\n\n**配置参数：**\n- `claude_code` 配置块\n- 关联的 Provider base_url\n\n### Codex\n\nOpenAI Codex 集成，用于代码补全和生成任务。\n\n**配置参数：**\n- `codex` 配置块\n- 支持 GPT-4 等模型\n\n---\n\n## 会话与 Agent 交互\n\n### 会话状态\n\n每个会话（Session）与特定的 Agent 实例关联，支持实时消息预览和状态指示。\n\n| 状态字段 | 说明 |\n|----------|------|\n| live | 会话是否处于活跃状态 |\n| last_message | 最后一条消息内容 |\n| updated_at | 最后更新时间 |\n\n```tsx\n<div className=\"flex items-center gap-1.5 min-w-0\">\n  <MessageSquare size={14} className={s.live ? 'text-accent shrink-0' : 'text-gray-400 shrink-0'} />\n  <span className=\"text-sm font-medium truncate\">\n    {s.name || s.user_name || s.id.slice(0, 8)}\n  </span>\n  {s.live && <Circle size={5} className=\"fill-emerald-500 text-emerald-500 shrink-0\" />}\n</div>\n```\n\n资料来源：[web/src/pages/Sessions/SessionList.tsx:15-22](https://github.com/chenhg5/cc-connect/blob/main/web/src/pages/Sessions/SessionList.tsx)\n\n---\n\n## 国际化和本地化\n\nAgent 系统支持完整的国际化配置，通过 i18n 模块提供多语言消息支持。\n\n**支持的语种：**\n\n| 语言代码 | 名称 |\n|----------|------|\n| en | English |\n| zh | 简体中文 |\n| zh-TW | 繁體中文 |\n| ja | 日本語 |\n| es | Español |\n\n```go\nMsgProviderSwitchHint: {\n    LangEnglish:            \"`/provider switch <name>` to switch | `/provider clear` to reset\",\n    LangChinese:            \"`/provider switch <名称>` 切换 | `/provider clear` 清除\",\n    LangTraditionalChinese: \"`/provider switch <名稱>` 切換 | `/provider clear` 清除\",\n    LangJapanese:           \"`/provider switch <名前>` で切り替え | `/provider clear` でリセット\",\n    LangSpanish:            \"`/provider switch <nombre>` para cambiar | `/provider clear` para restablecer\",\n}\n```\n\n资料来源：[core/i18n.go:50-60](https://github.com/chenhg5/cc-connect/blob/main/core/i18n.go)\n\n---\n\n## 快速入门\n\n### 配置新的 Agent Provider\n\n1. 打开 CC-Connect Admin 管理界面\n2. 导航至 Global Providers 页面\n3. 点击「Add」按钮添加新的 Provider\n4. 填写以下必要信息：\n   - Provider 名称\n   - API Base URL\n   - 模型名称\n   - 可选：模型列表\n\n### 在项目中使用 Agent\n\n1. 创建或选择已有项目\n2. 在项目设置中配置 Agent 类型\n3. 选择对应的权限模式\n4. 绑定相关的 Provider 配置\n\n### 切换 Provider\n\n使用命令 `/provider switch <name>` 可以动态切换当前使用的 Provider，使用 `/provider clear` 可以重置为默认配置。\n\n资料来源：[core/i18n.go:45-55](https://github.com/chenhg5/cc-connect/blob/main/core/i18n.go)\n\n---\n\n## 配置参考\n\n### 项目级 Agent 配置\n\n```toml\n[project.my-project]\nagent_type = \"acp\"\nagent_mode = \"default\"\nwork_dir = \"/path/to/project\"\n```\n\n### Provider 级配置\n\n```toml\n[provider.anthropic]\nbase_url = \"https://api.anthropic.com\"\nmodel = \"claude-sonnet-4-20250514\"\nthinking = \"enabled\"\n```\n\n---\n\n## 注意事项\n\n1. **权限模式变更**：修改 `agent_mode` 后需要重启项目才能生效\n2. **Agent 类型切换**：更换 Agent 类型会自动移除不兼容的 Provider 配置\n3. **思考模式**：并非所有模型都支持思考模式，请参考具体模型的文档\n4. **Provider 名称唯一性**：系统要求 Provider 名称全局唯一，重复添加会被拒绝\n\n---\n\n<a id='agent-protocols'></a>\n\n## Agent 通信协议\n\n### 相关页面\n\n相关主题：[Agent 集成概述](#agent-overview)\n\n<details>\n<summary>相关源码文件</summary>\n\n以下源码文件用于生成本页说明：\n\n- [web/src/pages/Sessions/SessionChat.tsx](https://github.com/chenhg5/cc-connect/blob/main/web/src/pages/Sessions/SessionChat.tsx)\n- [web/src/pages/Chat/ChatView.tsx](https://github.com/chenhg5/cc-connect/blob/main/web/src/pages/Chat/ChatView.tsx)\n- [web/src/pages/Sessions/SessionList.tsx](https://github.com/chenhg5/cc-connect/blob/main/web/src/pages/Sessions/SessionList.tsx)\n- [core/i18n.go](https://github.com/chenhg5/cc-connect/blob/main/core/i18n.go)\n</details>\n\n# Agent 通信协议\n\n## 概述\n\nAgent 通信协议是 CC-Connect 系统中实现多 Agent 之间消息传递、会话管理和状态同步的核心机制。该协议支撑了前端界面与后端 Agent 引擎之间的实时交互能力。\n\n## 会话管理机制\n\n会话（Session）是 Agent 通信的基本单元，每个会话包含唯一的标识符、状态信息和消息历史记录。\n\n### 会话状态类型\n\n| 状态类型 | 说明 | 标识 |\n|---------|------|------|\n| live | 会话处于活跃状态 | 绿色圆点指示器 |\n| inactive | 会话已暂停 | 无特殊标识 |\n| error | 连接错误 | 琥珀色警告显示 |\n\n资料来源：[web/src/pages/Sessions/SessionList.tsx:4-5]()\n\n### 会话消息结构\n\n会话消息采用角色化结构，支持用户消息和 Agent 回复两种基本角色：\n\n```typescript\ninterface SessionMessage {\n  role: 'user' | 'assistant';\n  content: string;\n  timestamp?: string;\n}\n```\n\n消息预览功能限制显示内容长度为 100 字符，并替换换行符为空格以保持布局整洁。资料来源：[web/src/pages/Sessions/SessionList.tsx:12-15]()\n\n## 桥接连接机制\n\n### 连接状态监控\n\nAgent 通信依赖桥接（Bridge）机制实现前端与后端的长连接通信。系统提供三种连接状态：\n\n| 状态 | 视觉反馈 | 触发条件 |\n|------|---------|---------|\n| connected | 绿色指示器 | 桥接连接正常 |\n| connecting | 加载动画 + \"Connecting to bridge...\" | 连接建立中 |\n| error | 琥珀色警告 + \"Bridge disconnected\" | 连接失败 |\n\n资料来源：[web/src/pages/Sessions/SessionChat.tsx:3-9]() 和 [web/src/pages/Chat/ChatView.tsx:8-13]()\n\n### 桥接连接流程\n\n```\ngraph TD\n    A[前端发起连接] --> B{连接状态检查}\n    B -->|成功| C[显示 connected 状态]\n    B -->|进行中| D[显示 loading 动画]\n    B -->|失败| E[显示 error 警告]\n    C --> F[建立 WebSocket 通信]\n    E --> G[触发重连机制]\n```\n\n## 命令协议\n\nAgent 通信支持多种命令操作，通过斜杠命令（Slash Commands）触发：\n\n### Provider 相关命令\n\n| 命令 | 功能 | 说明 |\n|------|------|------|\n| `/provider list` | 列出可用 Provider | 查看系统中配置的 AI 提供商 |\n| `/provider switch <name>` | 切换 Provider | 切换到指定名称的 Provider |\n| `/provider clear` | 重置 Provider | 清除当前 Provider 选择 |\n\n资料来源：[core/i18n.go:1-10]()\n\n### Workspace 相关命令\n\n| 命令 | 功能 |\n|------|------|\n| `/workspace bind <workspace-name>` | 绑定工作区 |\n| `/workspace route <absolute-path>` | 设置路由路径 |\n\n## 消息国际化\n\n系统支持多语言消息提示，确保 Agent 通信过程中的用户反馈清晰易懂：\n\n| 语言 | Provider 切换提示 | Provider 未找到提示 |\n|------|------------------|-------------------|\n| English | `✅ Provider switched to **%s**` | `❌ Provider %q not found` |\n| Chinese | `✅ Provider 已切换至 **%s**` | `❌ 未找到 Provider %q` |\n| Japanese | `✅ プロバイダを %s に切り替えました` | `❌ プロバイダ %q が見つかりません` |\n| Spanish | `✅ Proveedor cambiado a **%s**` | `❌ Proveedor %q no encontrado` |\n\n资料来源：[core/i18n.go:1-8]()\n\n## 前端通信组件\n\n### ChatView 组件架构\n\nChatView 是核心通信视图组件，负责协调以下子组件：\n\n```mermaid\ngraph TD\n    A[ChatView] --> B[SessionDrawer]\n    A --> C[CommandResultPanel]\n    A --> D[BridgeStatus]\n    B --> E[会话列表]\n    C --> F[命令结果展示]\n    D --> G[连接状态指示器]\n```\n\n组件接收以下属性：\n\n- `sessions`: 会话列表数据\n- `currentSession`: 当前活跃会话\n- `onSelect`: 会话切换回调\n- `onNewSession`: 新建会话回调\n\n资料来源：[web/src/pages/Chat/ChatView.tsx:1-20]()\n\n### SessionDrawer 组件\n\n会话抽屉组件提供侧边栏式会话管理界面，支持：\n\n- 会话列表展示\n- 当前会话高亮\n- 快速切换会话\n- 新建会话入口\n\n## 状态管理\n\n### 会话状态同步\n\n```typescript\n// 会话状态更新流程\ninterface SessionState {\n  id: string;\n  name?: string;\n  user_name?: string;\n  live: boolean;\n  last_message?: SessionMessage;\n  updated_at?: string;\n  created_at?: string;\n}\n```\n\n会话列表按照最后更新时间排序，确保最近活跃的会话显示在列表顶部。\n\n## 错误处理\n\n系统提供分级错误处理机制：\n\n1. **连接错误**：桥接连接失败时显示琥珀色警告，并提供重连选项\n2. **命令错误**：未知命令返回使用提示信息\n3. **Provider 错误**：Provider 不存在时提示可用列表\n\n错误信息支持多语言显示，错误提示文本存储在 `core/i18n.go` 国际化配置中。\n\n---\n\n<a id='claude-code-integration'></a>\n\n## Claude Code 集成\n\n### 相关页面\n\n相关主题：[Agent 集成概述](#agent-overview)\n\n<details>\n<summary>相关源码文件</summary>\n\n以下源码文件用于生成本页说明：\n\n- [agent/claudecode/claudecode.go](https://github.com/chenhg5/cc-connect/blob/main/agent/claudecode/claudecode.go) ⚠️ 未在当前上下文获取\n- [agent/claudecode/session.go](https://github.com/chenhg5/cc-connect/blob/main/agent/claudecode/session.go) ⚠️ 未在当前上下文获取\n- [agent/claudecode/claude_usage.go](https://github.com/chenhg5/cc-connect/blob/main/agent/claudecode/claude_usage.go) ⚠️ 未在当前上下文获取\n- [web/src/pages/Providers/ProviderList.tsx](https://github.com/chenhg5/cc-connect/blob/main/web/src/pages/Providers/ProviderList.tsx) ✅ 已获取\n- [web/src/pages/Projects/ProjectDetail.tsx](https://github.com/chenhg5/cc-connect/blob/main/web/src/pages/Projects/ProjectDetail.tsx) ✅ 已获取\n- [core/i18n.go](https://github.com/chenhg5/cc-connect/blob/main/core/i18n.go) ✅ 已获取\n\n> ⚠️ **注意**：Claude Code 集成核心源码文件（`agent/claudecode/*.go`）未包含在当前检索结果中。以下内容基于 Web 前端组件和 i18n 配置推断，可能与实际实现存在差异。建议查阅完整源码获取精确信息。\n\n</details>\n\n# Claude Code 集成\n\n## 概述\n\nClaude Code 集成是 cc-connect 项目中连接 Claude Code Agent 的核心功能模块。该集成允许用户在 cc-connect 平台中配置和使用 Claude Code 作为 AI 代码助手 provider，实现与 Claude Code 的无缝对接。\n\n## 架构设计\n\n### 核心组件\n\nClaude Code 集成主要包含以下核心模块：\n\n| 组件 | 文件路径 | 功能描述 |\n|------|----------|----------|\n| claudecode.go | agent/claudecode/ | Claude Code Agent 主逻辑实现 |\n| session.go | agent/claudecode/ | 会话管理功能 |\n| claude_usage.go | agent/claudecode/ | 使用量统计与计费追踪 |\n\n### Provider 集成\n\nClaude Code 作为一种特殊的 Agent Type（`codex`）集成到 cc-connect 的 Provider 系统中。用户可以在 Provider 配置界面选择或配置 Claude Code 作为 AI 服务提供商。\n\n```mermaid\ngraph TD\n    A[用户请求] --> B[cc-connect Core]\n    B --> C{Provider 类型判断}\n    C -->|codex| D[Claude Code Provider]\n    C -->|其他| E[标准 Provider]\n    D --> F[Claude Code Agent]\n    E --> G[OpenAI/兼容 API]\n    F --> H[Claude Code 执行环境]\n```\n\n## 配置选项\n\n### Agent Mode 配置\n\n在项目设置中，用户可以配置 Claude Code 的运行权限模式：\n\n| 模式值 | 显示名称 | 权限级别 | 使用场景 |\n|--------|----------|----------|----------|\n| `default` | default | 标准权限 | 常规开发任务 |\n| `acceptEdits` | acceptEdits (edit) | 自动接受编辑 | 信任的编辑操作 |\n| `plan` | plan | 仅计划模式 | 安全审查阶段 |\n| `bypassPermissions` | bypassPermissions (yolo) | 绕过权限检查 | 完全信任环境 |\n| `dontAsk` | dontAsk | 无需确认 | 自动化脚本 |\n\n资料来源：[web/src/pages/Projects/ProjectDetail.tsx]()\n\n### Provider 配置\n\nClaude Code Provider 支持以下核心配置项：\n\n| 配置项 | 说明 | 必填 |\n|--------|------|------|\n| base_url | API 端点地址 | 是 |\n| model | 模型标识符 | 是 |\n| models | 模型列表（支持多模型） | 否 |\n| agent_type | Agent 类型（codex 表示 Claude Code） | 是 |\n| thinking | 思考模式（enabled/disabled/default） | 否 |\n\n资料来源：[web/src/pages/Providers/ProviderList.tsx]()\n\n### Codex 特有配置\n\n对于 `agent_type` 为 `codex` 的 Claude Code Provider，还支持以下特有配置：\n\n| 配置项 | 说明 | 来源 |\n|--------|------|------|\n| wire_api | Codex Wire API 配置 | ProjectDetail.tsx |\n\n## 会话管理\n\nClaude Code 集成了 cc-connect 的会话管理系统，支持：\n\n- 实时会话列表展示\n- 最后消息预览\n- 会话时间戳显示\n- 活跃会话状态指示（Live indicator）\n\n资料来源：[web/src/pages/Sessions/SessionList.tsx]()\n\n## 国际化支持\n\nClaude Code 集成相关的消息已实现多语言支持：\n\n| 语言 | 语言代码 | 消息覆盖 |\n|------|----------|----------|\n| 英语 | en | ✅ 完整支持 |\n| 简体中文 | zh | ✅ 完整支持 |\n| 繁体中文 | zh-TW | ✅ 完整支持 |\n| 日语 | ja | ✅ 完整支持 |\n| 西班牙语 | es | ✅ 完整支持 |\n\n资料来源：[core/i18n.go]()\n\n## 使用流程\n\n### 1. 添加 Provider\n\n在 cc-connect Web 界面的 Providers 页面，添加新的 Provider：\n\n1. 选择或输入 Provider 名称\n2. 配置 API 端点（base_url）\n3. 设置模型标识符\n4. 指定 Agent Type 为 `codex`\n5. 根据需要配置 thinking 模式\n\n### 2. 创建/配置项目\n\n将 Claude Code Provider 关联到项目：\n\n1. 在项目设置中选择 Provider\n2. 配置 Agent Mode（权限级别）\n3. 设置工作目录\n4. 启用/禁用心跳检测（可选）\n\n### 3. 启动会话\n\n与 Claude Code Agent 建立会话：\n\n1. 在会话列表中创建新会话\n2. 与 Claude Code 进行交互\n3. 监控系统使用量和状态\n\n## 与其他 Provider 的对比\n\n| 特性 | Claude Code (codex) | 标准 Provider |\n|------|---------------------|----------------|\n| Agent Mode | ✅ 支持 | ❌ 不适用 |\n| Wire API | ✅ 支持特有配置 | ❌ 不适用 |\n| 心跳检测 | ✅ 支持 | ✅ 支持 |\n| 多模型支持 | ✅ | ✅ |\n| thinking 配置 | ✅ | ✅ |\n\n## 注意事项\n\n1. **权限安全**：使用 `bypassPermissions` 或 `dontAsk` 模式时请确保环境安全\n2. **API 配置**：Claude Code Provider 需要正确配置 API 端点和模型\n3. **源码限制**：当前检索结果中未包含 `agent/claudecode/` 核心源码文件，建议查阅完整仓库以获取精确实现细节\n\n---\n\n<a id='codex-integration'></a>\n\n## Codex 集成\n\n### 相关页面\n\n相关主题：[Agent 集成概述](#agent-overview)\n\n<details>\n<summary>相关源码文件</summary>\n\n以下源码文件用于生成本页说明：\n\n- [agent/codex/codex.go](https://github.com/chenhg5/cc-connect/blob/main/agent/codex/codex.go)\n- [agent/codex/session.go](https://github.com/chenhg5/cc-connect/blob/main/agent/codex/session.go)\n- [agent/codex/provider_config.go](https://github.com/chenhg5/cc-connect/blob/main/agent/codex/provider_config.go)\n- [web/src/pages/Providers/ProviderList.tsx](https://github.com/chenhg5/cc-connect/blob/main/web/src/pages/Providers/ProviderList.tsx)\n- [AGENTS.md](https://github.com/chenhg5/cc-connect/blob/main/AGENTS.md)\n</details>\n\n# Codex 集成\n\n## 概述\n\nCodex 集成是 cc-connect 项目中实现的一个可选 Agent 类型，允许用户通过统一的 cc-connect 接口与 OpenAI Codex（或兼容 Codex API 协议的服务）进行交互。该集成作为 cc-connect 的插件化 Agent 架构的一部分，通过实现 `core.Agent` 和 `core.AgentSession` 接口来提供完整的会话管理和消息处理能力。\n\n## 架构设计\n\n### 模块结构\n\nCodex 集成位于 `agent/codex/` 目录下，包含三个核心文件：\n\n| 文件 | 职责 |\n|------|------|\n| `codex.go` | 主入口，实现 Agent 工厂函数和核心接口 |\n| `session.go` | 会话管理，处理消息流和状态维护 |\n| `provider_config.go` | Provider 配置管理，支持 per-agent 配置 |\n\n### 插件注册机制\n\n根据 cc-connect 的插件化架构设计，Codex Agent 通过 `init()` 函数注册到核心系统：\n\n```go\n// 伪代码示例\nfunc init() {\n    core.RegisterAgent(\"codex\", NewCodexAgent)\n}\n```\n\n资料来源：[AGENTS.md]()\n\n## 配置管理\n\n### Provider 配置结构\n\nCodex 集成支持两种配置模式：\n\n1. **全局配置**：通过 `config.toml` 或 `cc-connect provider add` 命令添加\n2. **Per-Agent 配置**：允许每个项目/工作区独立配置 Codex 参数\n\n### wire_api 配置\n\nCodex 集成支持 `wire_api` 参数，用于配置特殊的 API 协议处理：\n\n```go\nconfig.wire_api // Codex 特定的 API 线协议配置\n```\n\n资料来源：[web/src/pages/Providers/ProviderList.tsx:1]()\n\n### Thinking 配置\n\nCodex Agent 支持 thinking 参数控制：\n\n| 值 | 行为 |\n|----|------|\n| 空字符串 | 使用 Provider 默认设置 |\n| `enabled` | 强制启用 thinking 模式 |\n| `disabled` | 强制禁用 thinking 模式 |\n\n资料来源：[web/src/pages/Providers/ProviderList.tsx:1]()\n\n## 界面集成\n\n### Provider 管理界面\n\n在 cc-connect Web 管理界面的 **Provider List** 页面中，Codex 作为特殊的 Agent 类型进行配置：\n\n```\nAgent Type 选择: codex\n```\n\n当选择 Codex 类型时，界面会显示额外的 `wire_api` 配置选项：\n\n```tsx\n{agentType === 'codex' && (\n    <div>\n      <label>Codex Wire API</label>\n      <select value={config.wire_api || ''} onChange={...} />\n    </div>\n)}\n```\n\n资料来源：[web/src/pages/Providers/ProviderList.tsx:1]()\n\n## 消息处理流程\n\n```\ngraph TD\n    A[用户消息] --> B[cc-connect Core]\n    B --> C[Codex Agent]\n    C --> D[Codex Session]\n    D --> E[Codex API Provider]\n    E --> F[API 响应]\n    F --> G[Session 状态更新]\n    G --> H[消息流返回]\n```\n\n## 与其他 Agent 的对比\n\n| 特性 | Codex | 其他 Agent |\n|------|-------|-----------|\n| 插件注册 | `core.RegisterAgent(\"codex\", ...)` | 相同模式 |\n| 会话管理 | 实现 `AgentSession` 接口 | 相同模式 |\n| Provider 配置 | 支持 per-agent 配置 | 部分支持 |\n| wire_api | 特有配置项 | 无 |\n\n## 添加新的 Agent 类型\n\n如需参考 Codex 的实现方式来添加新的 Agent，可参考 AGENTS.md 中的指南：\n\n1. 创建 `agent/newagent/newagent.go`\n2. 实现 `core.Agent` 和 `core.AgentSession` 接口\n3. 在 `init()` 函数中注册：`core.RegisterAgent(\"newagent\", factory)`\n4. 创建 `cmd/cc-connect/plugin_agent_newagent.go` 并添加 `//go:build !no_newagent` 标签\n5. 在 `Makefile` 的 `ALL_AGENTS` 中添加新 Agent\n6. 在 `config.example.toml` 中添加配置示例\n7. 添加单元测试\n\n资料来源：[AGENTS.md]()\n\n## 总结\n\nCodex 集成展示了 cc-connect 插件化架构的灵活性。通过实现标准化的 Agent 接口，Codex 能够无缝融入 cc-connect 的会话管理、Provider 管理和配置系统。Per-agent 配置能力和 wire_api 特殊参数的支持，使得 Codex 集成能够适应不同的部署场景和 API 提供商需求。\n\n---\n\n<a id='platform-overview'></a>\n\n## 平台集成概述\n\n### 相关页面\n\n相关主题：[飞书集成详解](#platform-feishu)\n\n<details>\n<summary>相关源码文件</summary>\n\n以下源码文件用于生成本页说明：\n\n- [AGENTS.md](https://github.com/chenhg5/cc-connect/blob/main/AGENTS.md)\n- [web/src/pages/Providers/ProviderList.tsx](https://github.com/chenhg5/cc-connect/blob/main/web/src/pages/Providers/ProviderList.tsx)\n- [core/i18n.go](https://github.com/chenhg5/cc-connect/blob/main/core/i18n.go)\n- [web/src/pages/Projects/ProjectList.tsx](https://github.com/chenhg5/cc-connect/blob/main/web/src/pages/Projects/ProjectList.tsx)\n- [web/src/pages/Projects/ProjectDetail.tsx](https://github.com/chenhg5/cc-connect/blob/main/web/src/pages/Projects/ProjectDetail.tsx)\n- [web/src/pages/Sessions/SessionList.tsx](https://github.com/chenhg5/cc-connect/blob/main/web/src/pages/Sessions/SessionList.tsx)\n</details>\n\n# 平台集成概述\n\n## 简介\n\ncc-connect 是一个多平台代理连接器，支持将多个 AI 编码助手平台（如 Claude Code、Cursor、Kimi 等）统一接入到单一界面进行管理。平台集成系统是 cc-connect 的核心架构之一，它通过标准化的 `core.Platform` 接口定义，允许以插件化方式加载和管理不同的即时通讯平台。\n\n当前支持的平台包括飞书（Feishu）、Telegram、Slack、Discord、钉钉（DingTalk）、企业微信（WeCom）、微信（Weixin）、QQ、Line、微博（Weibo）等。\n\n## 核心架构\n\n### 平台接口设计\n\n平台模块需要实现 `core.Platform` 接口，这是所有平台集成的核心契约。接口定义包含平台初始化、消息处理、会话管理等功能。\n\n```mermaid\ngraph TD\n    A[core.Platform 接口] --> B[平台初始化 init]\n    A --> C[消息接收与处理]\n    A --> D[会话管理]\n    A --> E[平台配置]\n    \n    B --> B1[RegisterPlatform 注册]\n    C --> C1[消息路由]\n    D --> D1[Session 会话]\n    E --> E1[配置解析]\n```\n\n### 平台注册机制\n\n平台通过 `init()` 函数在启动时自动注册到核心系统：\n\n```go\ncore.RegisterPlatform(\"newplatform\", factory)\n```\n\n此机制遵循 Go 语言的插件化设计理念，允许在编译时通过构建标签（build tags）选择性地包含或排除特定平台。资料来源：[AGENTS.md:30]()\n\n### 构建标签控制\n\n平台的可选性通过 Go 构建标签实现，开发者可以使用 `no_` 前缀的标签来排除不需要的平台：\n\n| 构建标签 | 排除平台 |\n|---------|---------|\n| `no_feishu` | 飞书 |\n| `no_telegram` | Telegram |\n| `no_slack` | Slack |\n| `no_discord` | Discord |\n| `no_dingtalk` | 钉钉 |\n| `no_wecom` | 企业微信 |\n| `no_weixin` | 微信 |\n| `no_qq` | QQ |\n| `no_line` | Line |\n| `no_weibo` | 微博 |\n\n编译示例：\n\n```bash\n# 排除飞书和钉钉平台\ngo build -tags \"no_feishu,no_dingtalk\"\n```\n\n资料来源：[AGENTS.md:5-6]()\n\n## 新增平台流程\n\n### 步骤概览\n\n```mermaid\ngraph LR\n    A[创建平台目录] --> B[实现 Platform 接口]\n    B --> C[注册平台 init]\n    C --> D[创建构建文件]\n    D --> E[添加到 Makefile]\n    E --> F[添加配置示例]\n    F --> G[编写单元测试]\n```\n\n### 详细步骤\n\n#### 1. 创建平台目录结构\n\n在 `platform/` 目录下创建新平台目录：\n\n```\nplatform/newplatform/\n└── newplatform.go\n```\n\n#### 2. 实现 core.Platform 接口\n\n创建 `platform/newplatform/newplatform.go` 文件，实现 `core.Platform` 接口以及可选的扩展接口。\n\n#### 3. 注册平台\n\n在 `init()` 函数中调用注册方法：\n\n```go\nfunc init() {\n    core.RegisterPlatform(\"newplatform\", NewPlatform)\n}\n```\n\n#### 4. 创建构建文件\n\n创建 `cmd/cc-connect/plugin_platform_newplatform.go`，并添加构建标签：\n\n```go\n//go:build !no_newplatform\n\npackage main\n```\n\n此文件用于在主程序中链接平台插件。\n\n#### 5. 更新 Makefile\n\n将新平台名称添加到 `Makefile` 中的 `ALL_PLATFORMS` 变量。\n\n#### 6. 添加配置示例\n\n在 `config.example.toml` 中添加该平台的配置示例段。\n\n#### 7. 编写单元测试\n\n为新平台创建对应的测试文件，确保核心功能覆盖。\n\n资料来源：[AGENTS.md:28-35]()\n\n## 平台配置管理\n\n### Web 管理界面\n\ncc-connect 提供了基于 Web 的配置管理界面，支持可视化配置各平台的连接参数。\n\n#### Provider 配置\n\nProvider 是平台配置的核心概念，用于定义 AI 模型提供商：\n\n```typescript\ninterface Provider {\n  name: string;           // 提供商名称\n  base_url?: string;      // API 基础地址\n  model?: string;         // 默认模型\n  models?: Model[];       // 模型列表\n  api_key?: string;       // API 密钥\n  thinking?: string;      // 思考模式设置\n  agent_types?: string[]; // 支持的代理类型\n}\n```\n\n资料来源：[web/src/pages/Providers/ProviderList.tsx:1-50]()\n\n#### Agent Type 支持\n\n平台可支持的 Agent 类型包括：\n\n| Agent Type | 说明 |\n|-----------|------|\n| `claudecode` | Claude Code |\n| `codex` | OpenAI Codex |\n| `gemini` | Google Gemini |\n| `opencode` | OpenCode |\n| `cursor` | Cursor |\n| `kimi` | Kimi |\n| `qoder` | Qoder |\n| `acp` | ACP |\n\nWeb 界面中通过多选按钮组进行 Agent 类型的选择和配置。资料来源：[web/src/pages/Providers/ProviderList.tsx:100-120]()\n\n### 国际化配置\n\n平台相关的用户提示信息通过 `core/i18n.go` 进行多语言管理。当前支持的语言包括：\n\n| 语言代码 | 语言名称 |\n|--------|---------|\n| `en` | English |\n| `zh` | 简体中文 |\n| `zh-TW` | 繁体中文 |\n| `ja` | 日本語 |\n| `es` | Español |\n\n每条消息都定义了对应语言的翻译文本，确保用户在不同语言环境下获得一致体验。资料来源：[core/i18n.go:1-50]()\n\n## 项目与会话管理\n\n### 项目系统\n\n每个平台连接的项目（Project）包含以下核心配置：\n\n```typescript\ninterface Project {\n  name: string;              // 项目名称\n  agent_type: string;        // 代理类型\n  platforms?: string[];     // 启用的平台列表\n  work_dir?: string;        // 工作目录\n  agent_mode?: string;      // 代理模式\n  heartbeat_enabled?: boolean;  // 心跳功能启用\n  sessions_count?: number;  // 会话数量\n}\n```\n\n#### Agent Mode 选项\n\n| Mode 值 | 说明 |\n|--------|------|\n| `default` | 默认模式 |\n| `acceptEdits` | 编辑模式 |\n| `plan` | 计划模式 |\n| `bypassPermissions` | 绕过权限（yolo） |\n| `dontAsk` | 不询问模式 |\n\n资料来源：[web/src/pages/Projects/ProjectList.tsx:50-80]()\n\n### 会话系统\n\n会话（Session）代表用户与 AI 代理之间的单次交互：\n\n```typescript\ninterface Session {\n  id: string;\n  name?: string;\n  user_name?: string;\n  live?: boolean;           // 是否在线\n  last_message?: {\n    role: 'user' | 'assistant';\n    content: string;\n  };\n  updated_at?: string;\n  created_at?: string;\n}\n```\n\n会话列表支持显示实时状态指示器、最后消息预览等功能。资料来源：[web/src/pages/Sessions/SessionList.tsx:1-30]()\n\n## 心跳机制\n\n心跳（Heartbeat）功能用于维持项目与平台连接的活跃状态：\n\n### 心跳配置项\n\n| 配置项 | 说明 |\n|-------|------|\n| `interval_mins` | 心跳间隔（分钟） |\n| `paused` | 是否暂停 |\n| `run_count` | 运行次数 |\n| `error_count` | 错误计数 |\n| `skipped_busy` | 跳过忙碌次数 |\n| `last_run` | 上次运行时间 |\n| `last_error` | 最后错误信息 |\n\n资料来源：[web/src/pages/Projects/ProjectDetail.tsx:1-30]()\n\n### 心跳控制操作\n\n| 操作 | 说明 |\n|-----|------|\n| `resumeHeartbeat` | 恢复心跳 |\n| `pauseHeartbeat` | 暂停心跳 |\n| `triggerHeartbeat` | 手动触发心跳 |\n| `setInterval` | 设置间隔 |\n\n## 技能系统\n\n技能（Skills）允许在项目中预设和管理可用的工具集：\n\n```typescript\ninterface SkillPreset {\n  name: string;\n  display_name?: string;\n  project: string;          // 所属项目\n  agent_type: string;       // 代理类型\n  skills?: Skill[];         // 技能列表\n  dirs?: string[];          // 扫描目录\n  source?: {\n    url?: string;\n    name?: string;\n    provider?: string;\n  };\n  author?: string;\n  description?: string;\n  description_zh?: string;\n  tags?: string[];\n  version?: string;\n  pricing?: string;\n  url?: string;\n}\n```\n\n技能来源可以是本地定义的技能，也可以是远程下载的技能包。资料来源：[web/src/pages/Skills/SkillList.tsx:1-60]()\n\n## 工作区管理\n\n工作区（Workspace）功能允许用户绑定和管理多个工作空间：\n\n| 命令 | 说明 |\n|-----|------|\n| `/workspace bind <name>` | 绑定工作区 |\n| `/workspace clear` | 清除工作区 |\n| `/workspace route <path>` | 路由到指定路径 |\n\n资料来源：[core/i18n.go:200-250]()\n\n## 开发检查清单\n\n新增平台时需要遵循以下检查流程：\n\n1. **构建通过**：`go build ./...`\n2. **测试通过**：`go test ./...`\n3. **无硬编码**：核心代码中不得有新的平台名称硬编码\n4. **国际化完整**：所有用户可见字符串需包含所有语言翻译\n5. **无敏感信息**：源码中不得包含 API Key、Token 等凭据\n\n资料来源：[AGENTS.md:8-16]()\n\n## 相关文件结构\n\n```\ncc-connect/\n├── core/\n│   ├── platform.go          # Platform 接口定义\n│   └── i18n.go             # 国际化支持\n├── platform/\n│   ├── feishu/             # 飞书平台\n│   ├── telegram/           # Telegram 平台\n│   ├── slack/              # Slack 平台\n│   └── ...                 # 其他平台\n├── web/\n│   └── src/pages/\n│       ├── Providers/      # 提供商管理\n│       ├── Projects/       # 项目管理\n│       ├── Sessions/       # 会话管理\n│       └── Skills/         # 技能管理\n└── cmd/cc-connect/\n    └── plugin_platform_*.go # 平台插件构建文件\n```\n\n## 总结\n\n平台集成系统采用插件化架构设计，通过标准接口和构建标签实现高度的灵活性和可扩展性。开发者可以通过遵循既定的开发流程快速添加新平台支持，同时系统提供的 Web 管理界面降低了运维复杂度。\n\n---\n\n<a id='platform-feishu'></a>\n\n## 飞书集成详解\n\n### 相关页面\n\n相关主题：[平台集成概述](#platform-overview)\n\n无法生成此页面。提供的源码上下文中**不包含**飞书集成相关的代码。\n\n您要求引用的以下文件均未出现在当前检索结果中：\n\n- `platform/feishu/feishu.go`\n- `platform/feishu/card.go`\n- `platform/feishu/ws_shared.go`\n- `docs/feishu.md`\n\n当前上下文仅包含以下文件的相关代码片段：\n\n| 文件路径 | 内容概述 |\n|---------|---------|\n| `web/src/pages/Providers/ProviderList.tsx` | 提供商列表 UI 组件 |\n| `web/src/pages/Skills/SkillList.tsx` | 技能列表 UI 组件 |\n| `web/src/pages/Projects/ProjectList.tsx` | 项目列表 UI 组件 |\n| `web/src/pages/Projects/ProjectDetail.tsx` | 项目详情 UI 组件 |\n| `web/src/pages/Sessions/SessionList.tsx` | 会话列表 UI 组件 |\n| `core/i18n.go` | 国际化消息定义 |\n| `web/index.html` | Web 应用入口 HTML |\n| `web/preview.html` | 预览页面 HTML |\n\n建议：请重新检索包含飞书集成源码的文件，或使用 `platform/feishu/` 目录下的实际代码片段进行查询。\n\n---\n\n---\n\n## Doramagic 踩坑日志\n\n项目：chenhg5/cc-connect\n\n摘要：发现 24 个潜在踩坑项，其中 6 个为 high/blocking；最高优先级：安装坑 - 来源证据：[Bug]。\n\n## 1. 安装坑 · 来源证据：[Bug]\n\n- 严重度：high\n- 证据强度：source_linked\n- 发现：GitHub 社区证据显示该项目存在一个安装相关的待验证问题：[Bug]\n- 对用户的影响：可能增加新用户试用和生产接入成本。\n- 建议检查：来源问题仍为 open，Pack Agent 需要复核是否仍影响当前版本。\n- 防护动作：不得脱离来源链接放大为确定性结论；需要标注适用版本和复核状态。\n- 证据：community_evidence:github | cevd_c85c0f8f48ac44c7a855066b2bfc3939 | https://github.com/chenhg5/cc-connect/issues/933 | 来源讨论提到 npm 相关条件，需在安装/试用前复核。\n\n## 2. 安装坑 · 来源证据：[Feature] Preserve full interactive card schema on inbound\n\n- 严重度：high\n- 证据强度：source_linked\n- 发现：GitHub 社区证据显示该项目存在一个安装相关的待验证问题：[Feature] Preserve full interactive card schema on inbound\n- 对用户的影响：可能影响升级、迁移或版本选择。\n- 建议检查：来源问题仍为 open，Pack Agent 需要复核是否仍影响当前版本。\n- 防护动作：不得脱离来源链接放大为确定性结论；需要标注适用版本和复核状态。\n- 证据：community_evidence:github | cevd_f50380a7aef54548ac053b1127a2916e | https://github.com/chenhg5/cc-connect/issues/936 | 来源类型 github_issue 暴露的待验证使用条件。\n\n## 3. 安装坑 · 来源证据：cc-connect 因 SSH 断开被 systemd 停止：需要文档化 `loginctl enable-linger`\n\n- 严重度：high\n- 证据强度：source_linked\n- 发现：GitHub 社区证据显示该项目存在一个安装相关的待验证问题：cc-connect 因 SSH 断开被 systemd 停止：需要文档化 `loginctl enable-linger`\n- 对用户的影响：可能增加新用户试用和生产接入成本。\n- 建议检查：来源问题仍为 open，Pack Agent 需要复核是否仍影响当前版本。\n- 防护动作：不得脱离来源链接放大为确定性结论；需要标注适用版本和复核状态。\n- 证据：community_evidence:github | cevd_3a818efa6ddf479aae0f026d1f06d491 | https://github.com/chenhg5/cc-connect/issues/960 | 来源讨论提到 npm 相关条件，需在安装/试用前复核。\n\n## 4. 配置坑 · 来源证据：Feishu: all messages permanently ignored as 'old message after restart' after every daemon restart (v1.3.3-beta.2)\n\n- 严重度：high\n- 证据强度：source_linked\n- 发现：GitHub 社区证据显示该项目存在一个配置相关的待验证问题：Feishu: all messages permanently ignored as 'old message after restart' after every daemon restart (v1.3.3-beta.2)\n- 对用户的影响：可能增加新用户试用和生产接入成本。\n- 建议检查：来源问题仍为 open，Pack Agent 需要复核是否仍影响当前版本。\n- 防护动作：不得脱离来源链接放大为确定性结论；需要标注适用版本和复核状态。\n- 证据：community_evidence:github | cevd_7b001c45ac3449abaee3dd365bc4cc74 | https://github.com/chenhg5/cc-connect/issues/972 | 来源讨论提到 linux 相关条件，需在安装/试用前复核。\n\n## 5. 配置坑 · 来源证据：[Bug] cc-connect send uses default socket path in custom data_dir agent sessions\n\n- 严重度：high\n- 证据强度：source_linked\n- 发现：GitHub 社区证据显示该项目存在一个配置相关的待验证问题：[Bug] cc-connect send uses default socket path in custom data_dir agent sessions\n- 对用户的影响：可能增加新用户试用和生产接入成本。\n- 建议检查：来源问题仍为 open，Pack Agent 需要复核是否仍影响当前版本。\n- 防护动作：不得脱离来源链接放大为确定性结论；需要标注适用版本和复核状态。\n- 证据：community_evidence:github | cevd_6136e384578b499ca63299322032211a | https://github.com/chenhg5/cc-connect/issues/966 | 来源类型 github_issue 暴露的待验证使用条件。\n\n## 6. 安全/权限坑 · 来源证据：Feature Request: 终端与 IM 双通道统一会话管理\n\n- 严重度：high\n- 证据强度：source_linked\n- 发现：GitHub 社区证据显示该项目存在一个安全/权限相关的待验证问题：Feature Request: 终端与 IM 双通道统一会话管理\n- 对用户的影响：可能影响授权、密钥配置或安全边界。\n- 建议检查：来源问题仍为 open，Pack Agent 需要复核是否仍影响当前版本。\n- 防护动作：不得脱离来源链接放大为确定性结论；需要标注适用版本和复核状态。\n- 证据：community_evidence:github | cevd_befa8b4f1c7f4ef483d6d8b38ba06ba4 | https://github.com/chenhg5/cc-connect/issues/968 | 来源讨论提到 windows 相关条件，需在安装/试用前复核。\n\n## 7. 安装坑 · 来源证据：v1.3.3-beta.1\n\n- 严重度：medium\n- 证据强度：source_linked\n- 发现：GitHub 社区证据显示该项目存在一个安装相关的待验证问题：v1.3.3-beta.1\n- 对用户的影响：可能影响升级、迁移或版本选择。\n- 建议检查：来源显示可能已有修复、规避或版本变化，说明书中必须标注适用版本。\n- 防护动作：不得脱离来源链接放大为确定性结论；需要标注适用版本和复核状态。\n- 证据：community_evidence:github | cevd_5eb39ef63cf14e56aff580db738dcd9f | https://github.com/chenhg5/cc-connect/releases/tag/v1.3.3-beta.1 | 来源讨论提到 npm 相关条件，需在安装/试用前复核。\n\n## 8. 安装坑 · 来源证据：生图 app-icon 请求未稳定转发到 generate-image，且 cc-connect 存在部署漂移风险\n\n- 严重度：medium\n- 证据强度：source_linked\n- 发现：GitHub 社区证据显示该项目存在一个安装相关的待验证问题：生图 app-icon 请求未稳定转发到 generate-image，且 cc-connect 存在部署漂移风险\n- 对用户的影响：可能增加新用户试用和生产接入成本。\n- 建议检查：来源显示可能已有修复、规避或版本变化，说明书中必须标注适用版本。\n- 防护动作：不得脱离来源链接放大为确定性结论；需要标注适用版本和复核状态。\n- 证据：community_evidence:github | cevd_574cca97359b4bc1a8a8fa968ab758cb | https://github.com/chenhg5/cc-connect/issues/967 | 来源讨论提到 node 相关条件，需在安装/试用前复核。\n\n## 9. 配置坑 · 可能修改宿主 AI 配置\n\n- 严重度：medium\n- 证据强度：source_linked\n- 发现：项目面向 Claude/Cursor/Codex/Gemini/OpenCode 等宿主，或安装命令涉及用户配置目录。\n- 对用户的影响：安装可能改变本机 AI 工具行为，用户需要知道写入位置和回滚方法。\n- 建议检查：列出会写入的配置文件、目录和卸载/回滚步骤。\n- 防护动作：涉及宿主配置目录时必须给回滚路径，不能只给安装命令。\n- 证据：capability.host_targets | github_repo:1168978399 | https://github.com/chenhg5/cc-connect | host_targets=claude, claude_code, cursor\n\n## 10. 配置坑 · 来源证据：v1.3.0-rc.3\n\n- 严重度：medium\n- 证据强度：source_linked\n- 发现：GitHub 社区证据显示该项目存在一个配置相关的待验证问题：v1.3.0-rc.3\n- 对用户的影响：可能增加新用户试用和生产接入成本。\n- 建议检查：来源显示可能已有修复、规避或版本变化，说明书中必须标注适用版本。\n- 防护动作：不得脱离来源链接放大为确定性结论；需要标注适用版本和复核状态。\n- 证据：community_evidence:github | cevd_9e274ec877304b369e551afc543b9bae | https://github.com/chenhg5/cc-connect/releases/tag/v1.3.0-rc.3 | 来源类型 github_release 暴露的待验证使用条件。\n\n## 11. 配置坑 · 来源证据：v1.3.1\n\n- 严重度：medium\n- 证据强度：source_linked\n- 发现：GitHub 社区证据显示该项目存在一个配置相关的待验证问题：v1.3.1\n- 对用户的影响：可能影响升级、迁移或版本选择。\n- 建议检查：来源显示可能已有修复、规避或版本变化，说明书中必须标注适用版本。\n- 防护动作：不得脱离来源链接放大为确定性结论；需要标注适用版本和复核状态。\n- 证据：community_evidence:github | cevd_c2e03a5e0cc8465c968bcc252cc2926b | https://github.com/chenhg5/cc-connect/releases/tag/v1.3.1 | 来源类型 github_release 暴露的待验证使用条件。\n\n## 12. 能力坑 · 能力判断依赖假设\n\n- 严重度：medium\n- 证据强度：source_linked\n- 发现：README/documentation is current enough for a first validation pass.\n- 对用户的影响：假设不成立时，用户拿不到承诺的能力。\n- 建议检查：将假设转成下游验证清单。\n- 防护动作：假设必须转成验证项；没有验证结果前不能写成事实。\n- 证据：capability.assumptions | github_repo:1168978399 | https://github.com/chenhg5/cc-connect | README/documentation is current enough for a first validation pass.\n\n## 13. 运行坑 · 来源证据：出现网络波动后，一直显示这个retrying，只能手动重启吗？\n\n- 严重度：medium\n- 证据强度：source_linked\n- 发现：GitHub 社区证据显示该项目存在一个运行相关的待验证问题：出现网络波动后，一直显示这个retrying，只能手动重启吗？\n- 对用户的影响：可能增加新用户试用和生产接入成本。\n- 建议检查：来源显示可能已有修复、规避或版本变化，说明书中必须标注适用版本。\n- 防护动作：不得脱离来源链接放大为确定性结论；需要标注适用版本和复核状态。\n- 证据：community_evidence:github | cevd_8d8f7103758f4f46bffd9b411c81bbf6 | https://github.com/chenhg5/cc-connect/issues/102 | 来源类型 github_issue 暴露的待验证使用条件。\n\n## 14. 维护坑 · 维护活跃度未知\n\n- 严重度：medium\n- 证据强度：source_linked\n- 发现：未记录 last_activity_observed。\n- 对用户的影响：新项目、停更项目和活跃项目会被混在一起，推荐信任度下降。\n- 建议检查：补 GitHub 最近 commit、release、issue/PR 响应信号。\n- 防护动作：维护活跃度未知时，推荐强度不能标为高信任。\n- 证据：evidence.maintainer_signals | github_repo:1168978399 | https://github.com/chenhg5/cc-connect | last_activity_observed missing\n\n## 15. 安全/权限坑 · 下游验证发现风险项\n\n- 严重度：medium\n- 证据强度：source_linked\n- 发现：no_demo\n- 对用户的影响：下游已经要求复核，不能在页面中弱化。\n- 建议检查：进入安全/权限治理复核队列。\n- 防护动作：下游风险存在时必须保持 review/recommendation 降级。\n- 证据：downstream_validation.risk_items | github_repo:1168978399 | https://github.com/chenhg5/cc-connect | no_demo; severity=medium\n\n## 16. 安全/权限坑 · 存在安全注意事项\n\n- 严重度：medium\n- 证据强度：source_linked\n- 发现：No sandbox install has been executed yet; downstream must verify before user use.\n- 对用户的影响：用户安装前需要知道权限边界和敏感操作。\n- 建议检查：转成明确权限清单和安全审查提示。\n- 防护动作：安全注意事项必须面向用户前置展示。\n- 证据：risks.safety_notes | github_repo:1168978399 | https://github.com/chenhg5/cc-connect | No sandbox install has been executed yet; downstream must verify before user use.\n\n## 17. 安全/权限坑 · 存在评分风险\n\n- 严重度：medium\n- 证据强度：source_linked\n- 发现：no_demo\n- 对用户的影响：风险会影响是否适合普通用户安装。\n- 建议检查：把风险写入边界卡，并确认是否需要人工复核。\n- 防护动作：评分风险必须进入边界卡，不能只作为内部分数。\n- 证据：risks.scoring_risks | github_repo:1168978399 | https://github.com/chenhg5/cc-connect | no_demo; severity=medium\n\n## 18. 安全/权限坑 · 来源证据：v1.3.0\n\n- 严重度：medium\n- 证据强度：source_linked\n- 发现：GitHub 社区证据显示该项目存在一个安全/权限相关的待验证问题：v1.3.0\n- 对用户的影响：可能影响授权、密钥配置或安全边界。\n- 建议检查：来源显示可能已有修复、规避或版本变化，说明书中必须标注适用版本。\n- 防护动作：不得脱离来源链接放大为确定性结论；需要标注适用版本和复核状态。\n- 证据：community_evidence:github | cevd_8f40f1ed300048309ccb1501f52a5fd3 | https://github.com/chenhg5/cc-connect/releases/tag/v1.3.0 | 来源讨论提到 npm 相关条件，需在安装/试用前复核。\n\n## 19. 安全/权限坑 · 来源证据：v1.3.0-rc.4\n\n- 严重度：medium\n- 证据强度：source_linked\n- 发现：GitHub 社区证据显示该项目存在一个安全/权限相关的待验证问题：v1.3.0-rc.4\n- 对用户的影响：可能影响授权、密钥配置或安全边界。\n- 建议检查：来源显示可能已有修复、规避或版本变化，说明书中必须标注适用版本。\n- 防护动作：不得脱离来源链接放大为确定性结论；需要标注适用版本和复核状态。\n- 证据：community_evidence:github | cevd_83a9e36b399040b69147511b6daa7275 | https://github.com/chenhg5/cc-connect/releases/tag/v1.3.0-rc.4 | 来源讨论提到 windows 相关条件，需在安装/试用前复核。\n\n## 20. 安全/权限坑 · 来源证据：v1.3.0-rc.5\n\n- 严重度：medium\n- 证据强度：source_linked\n- 发现：GitHub 社区证据显示该项目存在一个安全/权限相关的待验证问题：v1.3.0-rc.5\n- 对用户的影响：可能影响授权、密钥配置或安全边界。\n- 建议检查：来源显示可能已有修复、规避或版本变化，说明书中必须标注适用版本。\n- 防护动作：不得脱离来源链接放大为确定性结论；需要标注适用版本和复核状态。\n- 证据：community_evidence:github | cevd_dc65ca84aa28428b93104b658be55c16 | https://github.com/chenhg5/cc-connect/releases/tag/v1.3.0-rc.5 | 来源类型 github_release 暴露的待验证使用条件。\n\n## 21. 安全/权限坑 · 来源证据：v1.3.2\n\n- 严重度：medium\n- 证据强度：source_linked\n- 发现：GitHub 社区证据显示该项目存在一个安全/权限相关的待验证问题：v1.3.2\n- 对用户的影响：可能影响授权、密钥配置或安全边界。\n- 建议检查：来源显示可能已有修复、规避或版本变化，说明书中必须标注适用版本。\n- 防护动作：不得脱离来源链接放大为确定性结论；需要标注适用版本和复核状态。\n- 证据：community_evidence:github | cevd_2245b50ba3e94323b2228f6ed5b2b73e | https://github.com/chenhg5/cc-connect/releases/tag/v1.3.2 | 来源类型 github_release 暴露的待验证使用条件。\n\n## 22. 安全/权限坑 · 来源证据：v1.3.3-beta.2\n\n- 严重度：medium\n- 证据强度：source_linked\n- 发现：GitHub 社区证据显示该项目存在一个安全/权限相关的待验证问题：v1.3.3-beta.2\n- 对用户的影响：可能影响授权、密钥配置或安全边界。\n- 建议检查：来源显示可能已有修复、规避或版本变化，说明书中必须标注适用版本。\n- 防护动作：不得脱离来源链接放大为确定性结论；需要标注适用版本和复核状态。\n- 证据：community_evidence:github | cevd_4665651336a6450db47e6262a8926c7b | https://github.com/chenhg5/cc-connect/releases/tag/v1.3.3-beta.2 | 来源类型 github_release 暴露的待验证使用条件。\n\n## 23. 维护坑 · issue/PR 响应质量未知\n\n- 严重度：low\n- 证据强度：source_linked\n- 发现：issue_or_pr_quality=unknown。\n- 对用户的影响：用户无法判断遇到问题后是否有人维护。\n- 建议检查：抽样最近 issue/PR，判断是否长期无人处理。\n- 防护动作：issue/PR 响应未知时，必须提示维护风险。\n- 证据：evidence.maintainer_signals | github_repo:1168978399 | https://github.com/chenhg5/cc-connect | issue_or_pr_quality=unknown\n\n## 24. 维护坑 · 发布节奏不明确\n\n- 严重度：low\n- 证据强度：source_linked\n- 发现：release_recency=unknown。\n- 对用户的影响：安装命令和文档可能落后于代码，用户踩坑概率升高。\n- 建议检查：确认最近 release/tag 和 README 安装命令是否一致。\n- 防护动作：发布节奏未知或过期时，安装说明必须标注可能漂移。\n- 证据：evidence.maintainer_signals | github_repo:1168978399 | https://github.com/chenhg5/cc-connect | release_recency=unknown\n\n<!-- canonical_name: chenhg5/cc-connect; human_manual_source: deepwiki_human_wiki -->\n",
      "markdown_key": "cc-connect",
      "pages": "draft",
      "source_refs": [
        {
          "evidence_id": "github_repo:1168978399",
          "kind": "repo",
          "supports_claim_ids": [
            "claim_identity",
            "claim_distribution",
            "claim_capability"
          ],
          "url": "https://github.com/chenhg5/cc-connect"
        },
        {
          "evidence_id": "art_a199d1b215944de8806db9761711312d",
          "kind": "docs",
          "supports_claim_ids": [
            "claim_identity",
            "claim_distribution",
            "claim_capability"
          ],
          "url": "https://github.com/chenhg5/cc-connect#readme"
        }
      ],
      "summary": "DeepWiki/Human Wiki 完整输出，末尾追加 Discovery Agent 踩坑日志。",
      "title": "cc-connect 说明书",
      "toc": [
        "https://github.com/chenhg5/cc-connect 项目说明书",
        "目录",
        "项目概述",
        "项目简介",
        "系统架构",
        "核心概念",
        "平台支持",
        "插件系统",
        "Doramagic 踩坑日志"
      ]
    }
  },
  "quality_gate": {
    "blocking_gaps": [],
    "category_confidence": "medium",
    "compile_status": "ready_for_review",
    "five_assets_present": true,
    "install_sandbox_verified": true,
    "missing_evidence": [],
    "next_action": "publish to Doramagic.ai project surfaces",
    "prompt_preview_boundary_ok": true,
    "publish_status": "publishable",
    "quick_start_verified": true,
    "repo_clone_verified": true,
    "repo_commit": "14abab1715a1646fcb57d4d54629f6c06f617814",
    "repo_inspection_error": null,
    "repo_inspection_files": [
      "README.md",
      "docs/slack.md",
      "docs/qq.md",
      "docs/discord.md",
      "docs/usage.zh-CN.md",
      "docs/management-api.zh-CN.md",
      "docs/feishu.md",
      "docs/management-api.md",
      "docs/weibo.md",
      "docs/max-webhook.md",
      "docs/slack-feature-inventory.md",
      "docs/wecom.md",
      "docs/weixin.md",
      "docs/usage.md",
      "docs/telegram.md",
      "docs/bridge-protocol.zh-CN.md",
      "docs/slack-app-manifest.json",
      "docs/dingtalk.md",
      "docs/bridge-protocol.md",
      "docs/qqbot.md",
      "docs/plans/2026-03-23-acp-adapter-design.md",
      "docs/plans/2026-03-12-usage.md",
      "docs/plans/2026-03-24-integration-tests.md",
      "docs/plans/2026-03-11-feishu-delete-card.md",
      "docs/plans/2026-03-13-session-resilience-design.md",
      "docs/plans/2026-03-12-usage-design.md",
      "docs/plans/2026-03-12-multi-workspace-plan.md",
      "docs/plans/2026-03-13-session-resilience-plan.md",
      "docs/plans/2026-03-12-multi-workspace-plan.md.tasks.json",
      "docs/plans/2026-03-12-multi-workspace-design.md",
      "docs/plans/2026-03-13-session-resilience-plan.md.tasks.json",
      "docs/plans/2026-03-11-delete-batch.md",
      "docs/plans/2026-03-11-feishu-delete-card-design.md",
      "docs/images/sponsors/README.md"
    ],
    "repo_inspection_verified": true,
    "review_reasons": [],
    "tag_count_ok": true,
    "unsupported_claims": []
  },
  "schema_version": "0.1",
  "user_assets": {
    "ai_context_pack": {
      "asset_id": "ai_context_pack",
      "filename": "AI_CONTEXT_PACK.md",
      "markdown": "# cc-connect - Doramagic AI Context Pack\n\n> 定位：安装前体验与判断资产。它帮助宿主 AI 有一个好的开始，但不代表已经安装、执行或验证目标项目。\n\n## 充分原则\n\n- **充分原则，不是压缩原则**：AI Context Pack 应该充分到让宿主 AI 在开工前理解项目价值、能力边界、使用入口、风险和证据来源；它可以分层组织，但不以最短摘要为目标。\n- **压缩策略**：只压缩噪声和重复内容，不压缩会影响判断和开工质量的上下文。\n\n## 给宿主 AI 的使用方式\n\n你正在读取 Doramagic 为 cc-connect 编译的 AI Context Pack。请把它当作开工前上下文：帮助用户理解适合谁、能做什么、如何开始、哪些必须安装后验证、风险在哪里。不要声称你已经安装、运行或执行了目标项目。\n\n## Claim 消费规则\n\n- **事实来源**：Repo Evidence + Claim/Evidence Graph；Human Wiki 只提供显著性、术语和叙事结构。\n- **事实最低状态**：`supported`\n- `supported`：可以作为项目事实使用，但回答中必须引用 claim_id 和证据路径。\n- `weak`：只能作为低置信度线索，必须要求用户继续核实。\n- `inferred`：只能用于风险提示或待确认问题，不能包装成项目事实。\n- `unverified`：不得作为事实使用，应明确说证据不足。\n- `contradicted`：必须展示冲突来源，不得替用户强行选择一个版本。\n\n## 它最适合谁\n\n- **正在使用 Claude/Codex/Cursor/Gemini 等宿主 AI 的开发者**：README 或插件配置提到多个宿主 AI。 证据：`README.md` Claim：`clm_0002` supported 0.86\n\n## 它能做什么\n\n- **命令行启动或安装流程**（需要安装后验证）：项目文档中存在可执行命令，真实使用需要在本地或宿主环境中运行这些命令。 证据：`README.md` Claim：`clm_0001` supported 0.86\n\n## 怎么开始\n\n- `npm install -g cc-connect` 证据：`README.md` Claim：`clm_0003` supported 0.86\n- `curl -L -o cc-connect https://github.com/chenhg5/cc-connect/releases/latest/download/cc-connect-linux-amd64` 证据：`README.md` Claim：`clm_0004` supported 0.86\n- `git clone https://github.com/chenhg5/cc-connect.git` 证据：`README.md` Claim：`clm_0005` supported 0.86\n\n## 继续前判断卡\n\n- **当前建议**：先做角色匹配试用\n- **为什么**：这个项目更像角色库，核心风险是选错角色或把角色文案当执行能力；先用 Prompt Preview 试角色匹配，再决定是否沙盒导入。\n\n### 30 秒判断\n\n- **现在怎么做**：先做角色匹配试用\n- **最小安全下一步**：先用 Prompt Preview 试角色匹配；满意后再隔离导入\n- **先别相信**：角色质量和任务匹配不能直接相信。\n- **继续会触碰**：角色选择偏差、命令执行、宿主 AI 配置\n\n### 现在可以相信\n\n- **适合人群线索：正在使用 Claude/Codex/Cursor/Gemini 等宿主 AI 的开发者**（supported）：有 supported claim 或项目证据支撑，但仍不等于真实安装效果。 证据：`README.md` Claim：`clm_0002` supported 0.86\n- **能力存在：命令行启动或安装流程**（supported）：可以相信项目包含这类能力线索；是否适合你的具体任务仍要试用或安装后验证。 证据：`README.md` Claim：`clm_0001` supported 0.86\n- **存在 Quick Start / 安装命令线索**（supported）：可以相信项目文档出现过启动或安装入口；不要因此直接在主力环境运行。 证据：`README.md` Claim：`clm_0003` supported 0.86\n\n### 现在还不能相信\n\n- **角色质量和任务匹配不能直接相信。**（unverified）：角色库证明有很多角色，不证明每个角色都适合你的具体任务，也不证明角色能产生高质量结果。\n- **不能把角色文案当成真实执行能力。**（unverified）：安装前只能判断角色描述和任务画像是否匹配，不能证明它能在宿主 AI 里完成任务。\n- **真实输出质量不能在安装前相信。**（unverified）：Prompt Preview 只能展示引导方式，不能证明真实项目中的结果质量。\n- **宿主 AI 版本兼容性不能在安装前相信。**（unverified）：Claude、Cursor、Codex、Gemini 等宿主加载规则和版本差异必须在真实环境验证。\n- **不会污染现有宿主 AI 行为，不能直接相信。**（inferred）：Skill、plugin、AGENTS/CLAUDE/GEMINI 指令可能改变宿主 AI 的默认行为。 证据：`AGENTS.md`, `CLAUDE.md`\n- **可安全回滚不能默认相信。**（unverified）：除非项目明确提供卸载和恢复说明，否则必须先在隔离环境验证。\n- **真实安装后是否与用户当前宿主 AI 版本兼容？**（unverified）：兼容性只能通过实际宿主环境验证。\n- **项目输出质量是否满足用户具体任务？**（unverified）：安装前预览只能展示流程和边界，不能替代真实评测。\n\n### 继续会触碰什么\n\n- **角色选择偏差**：用户对任务应该由哪个专家角色处理的判断。 原因：选错角色会让 AI 从错误专业视角回答，浪费时间或误导决策。\n- **命令执行**：包管理器、网络下载、本地插件目录、项目配置或用户主目录。 原因：运行第一条命令就可能产生环境改动；必须先判断是否值得跑。 证据：`README.md`\n- **宿主 AI 配置**：Claude/Codex/Cursor/Gemini/OpenCode 等宿主的 plugin、Skill 或规则加载配置。 原因：宿主配置会改变 AI 后续工作方式，可能和用户已有规则冲突。 证据：`AGENTS.md`, `CLAUDE.md`\n- **本地环境或项目文件**：安装结果、插件缓存、项目配置或本地依赖目录。 原因：安装前无法证明写入范围和回滚方式，需要隔离验证。 证据：`README.md`\n- **宿主 AI 上下文**：AI Context Pack、Prompt Preview、Skill 路由、风险规则和项目事实。 原因：导入上下文会影响宿主 AI 后续判断，必须避免把未验证项包装成事实。\n\n### 最小安全下一步\n\n- **先跑 Prompt Preview**：先用交互式试用验证任务画像和角色匹配，不要先导入整套角色库。（适用：任何项目都适用，尤其是输出质量未知时。）\n- **只在隔离目录或测试账号试装**：避免安装命令污染主力宿主 AI、真实项目或用户主目录。（适用：存在命令执行、插件配置或本地写入线索时。）\n- **先备份宿主 AI 配置**：Skill、plugin、规则文件可能改变 Claude/Cursor/Codex 的默认行为。（适用：存在插件 manifest、Skill 或宿主规则入口时。）\n- **安装后只验证一个最小任务**：先验证加载、兼容、输出质量和回滚，再决定是否深用。（适用：准备从试用进入真实工作流时。）\n\n### 退出方式\n\n- **保留安装前状态**：记录原始宿主配置和项目状态，后续才能判断是否可恢复。\n- **准备移除宿主 plugin / Skill / 规则入口**：如果试装后行为异常，可以把宿主 AI 恢复到试装前状态。\n- **保留原始角色选择记录**：如果输出偏题，可以回到任务画像阶段重新选择角色，而不是继续沿着错误角色推进。\n- **记录安装命令和写入路径**：没有明确卸载说明时，至少要知道哪些目录或配置需要手动清理。\n- **如果没有回滚路径，不进入主力环境**：不可回滚是继续前阻断项，不应靠信任或运气继续。\n\n## 哪些只能预览\n\n- 解释项目适合谁和能做什么\n- 基于项目文档演示典型对话流程\n- 帮助用户判断是否值得安装或继续研究\n\n## 哪些必须安装后验证\n\n- 真实安装 Skill、插件或 CLI\n- 执行脚本、修改本地文件或访问外部服务\n- 验证真实输出质量、性能和兼容性\n\n## 边界与风险判断卡\n\n- **把安装前预览误认为真实运行**：用户可能高估项目已经完成的配置、权限和兼容性验证。 处理方式：明确区分 prompt_preview_can_do 与 runtime_required。 Claim：`clm_0006` inferred 0.45\n- **命令执行会修改本地环境**：安装命令可能写入用户主目录、宿主插件目录或项目配置。 处理方式：先在隔离环境或测试账号中运行。 证据：`README.md` Claim：`clm_0007` supported 0.86\n- **待确认**：真实安装后是否与用户当前宿主 AI 版本兼容？。原因：兼容性只能通过实际宿主环境验证。\n- **待确认**：项目输出质量是否满足用户具体任务？。原因：安装前预览只能展示流程和边界，不能替代真实评测。\n- **待确认**：安装命令是否需要网络、权限或全局写入？。原因：这影响企业环境和个人环境的安装风险。\n\n## 开工前工作上下文\n\n### 加载顺序\n\n- 先读取 how_to_use.host_ai_instruction，建立安装前判断资产的边界。\n- 读取 claim_graph_summary，确认事实来自 Claim/Evidence Graph，而不是 Human Wiki 叙事。\n- 再读取 intended_users、capabilities 和 quick_start_candidates，判断用户是否匹配。\n- 需要执行具体任务时，优先查 role_skill_index，再查 evidence_index。\n- 遇到真实安装、文件修改、网络访问、性能或兼容性问题时，转入 risk_card 和 boundaries.runtime_required。\n\n### 任务路由\n\n- **命令行启动或安装流程**：先说明这是安装后验证能力，再给出安装前检查清单。 边界：必须真实安装或运行后验证。 证据：`README.md` Claim：`clm_0001` supported 0.86\n\n### 上下文规模\n\n- 文件总数：440\n- 重要文件覆盖：40/440\n- 证据索引条目：80\n- 角色 / Skill 条目：38\n\n### 证据不足时的处理\n\n- **missing_evidence**：说明证据不足，要求用户提供目标文件、README 段落或安装后验证记录；不要补全事实。\n- **out_of_scope_request**：说明该任务超出当前 AI Context Pack 证据范围，并建议用户先查看 Human Manual 或真实安装后验证。\n- **runtime_request**：给出安装前检查清单和命令来源，但不要替用户执行命令或声称已执行。\n- **source_conflict**：同时展示冲突来源，标记为待核实，不要强行选择一个版本。\n\n## Prompt Recipes\n\n### 适配判断\n\n- 目标：判断这个项目是否适合用户当前任务。\n- 预期输出：适配结论、关键理由、证据引用、安装前可预览内容、必须安装后验证内容、下一步建议。\n\n```text\n请基于 cc-connect 的 AI Context Pack，先问我 3 个必要问题，然后判断它是否适合我的任务。回答必须包含：适合谁、能做什么、不能做什么、是否值得安装、证据来自哪里。所有项目事实必须引用 evidence_refs、source_paths 或 claim_id。\n```\n\n### 安装前体验\n\n- 目标：让用户在安装前感受核心工作流，同时避免把预览包装成真实能力或营销承诺。\n- 预期输出：一段带边界标签的体验剧本、安装后验证清单和谨慎建议；不含真实运行承诺或强营销表述。\n\n```text\n请把 cc-connect 当作安装前体验资产，而不是已安装工具或真实运行环境。\n\n请严格输出四段：\n1. 先问我 3 个必要问题。\n2. 给出一段“体验剧本”：用 [安装前可预览]、[必须安装后验证]、[证据不足] 三种标签展示它可能如何引导工作流。\n3. 给出安装后验证清单：列出哪些能力只有真实安装、真实宿主加载、真实项目运行后才能确认。\n4. 给出谨慎建议：只能说“值得继续研究/试装”“先补充信息后再判断”或“不建议继续”，不得替项目背书。\n\n硬性边界：\n- 不要声称已经安装、运行、执行测试、修改文件或产生真实结果。\n- 不要写“自动适配”“确保通过”“完美适配”“强烈建议安装”等承诺性表达。\n- 如果描述安装后的工作方式，必须使用“如果安装成功且宿主正确加载 Skill，它可能会……”这种条件句。\n- 体验剧本只能写成“示例台词/假设流程”：使用“可能会询问/可能会建议/可能会展示”，不要写“已写入、已生成、已通过、正在运行、正在生成”。\n- Prompt Preview 不负责给安装命令；如用户准备试装，只能提示先阅读 Quick Start 和 Risk Card，并在隔离环境验证。\n- 所有项目事实必须来自 supported claim、evidence_refs 或 source_paths；inferred/unverified 只能作风险或待确认项。\n\n```\n\n### 角色 / Skill 选择\n\n- 目标：从项目里的角色或 Skill 中挑选最匹配的资产。\n- 预期输出：候选角色或 Skill 列表，每项包含适用场景、证据路径、风险边界和是否需要安装后验证。\n\n```text\n请读取 role_skill_index，根据我的目标任务推荐 3-5 个最相关的角色或 Skill。每个推荐都要说明适用场景、可能输出、风险边界和 evidence_refs。\n```\n\n### 风险预检\n\n- 目标：安装或引入前识别环境、权限、规则冲突和质量风险。\n- 预期输出：环境、权限、依赖、许可、宿主冲突、质量风险和未知项的检查清单。\n\n```text\n请基于 risk_card、boundaries 和 quick_start_candidates，给我一份安装前风险预检清单。不要替我执行命令，只说明我应该检查什么、为什么检查、失败会有什么影响。\n```\n\n### 宿主 AI 开工指令\n\n- 目标：把项目上下文转成一次对话开始前的宿主 AI 指令。\n- 预期输出：一段边界明确、证据引用明确、适合复制给宿主 AI 的开工前指令。\n\n```text\n请基于 cc-connect 的 AI Context Pack，生成一段我可以粘贴给宿主 AI 的开工前指令。这段指令必须遵守 not_runtime=true，不能声称项目已经安装、运行或产生真实结果。\n```\n\n\n## 角色 / Skill 索引\n\n- 共索引 38 个角色 / Skill / 项目文档条目。\n\n- **Sponsors Images**（project_doc）：This directory contains sponsor logos for the README sponsor section. 激活提示：当用户需要理解项目结构、安装方式或边界时参考。 证据：`docs/images/sponsors/README.md`\n- **CC-Connect Development Guide**（project_doc）：CC-Connect is a bridge that connects AI coding agents Claude Code, Codex, Gemini CLI, Cursor, etc. with messaging platforms Feishu/Lark, Telegram, Discord, Slack, DingTalk, WeChat Work, QQ, LINE . Users interact with their coding agent through their preferred messaging app. 激活提示：当用户需要理解项目结构、安装方式或边界时参考。 证据：`AGENTS.md`\n- **CC-Connect Development Guide**（project_doc）：CC-Connect is a bridge that connects AI coding agents Claude Code, Codex, Gemini CLI, Cursor, etc. with messaging platforms Feishu/Lark, Telegram, Discord, Slack, DingTalk, WeChat Work, QQ, LINE . Users interact with their coding agent through their preferred messaging app. 激活提示：当用户需要理解项目结构、安装方式或边界时参考。 证据：`CLAUDE.md`\n- **❤️ Sponsor**（project_doc）：Want to appear here? Contact: chg80333@gmail.com WeChat: mongorz 激活提示：当用户需要理解项目结构、安装方式或边界时参考。 证据：`README.md`\n- **cc-connect**（project_doc）：Bridge local AI coding agents Claude Code, Cursor, Gemini CLI, Codex to messaging platforms Feishu/Lark, DingTalk, Slack, Telegram, Discord, LINE, WeChat Work . 激活提示：当用户需要理解项目结构、安装方式或边界时参考。 证据：`npm/README.md`\n- **Contributing to cc-connect**（project_doc）：中文 为-cc-connect-做贡献 English contributing-to-cc-connect 激活提示：当用户需要理解项目结构、安装方式或边界时参考。 证据：`CONTRIBUTING.md`\n- **Bridge Platform Protocol Specification**（project_doc）：Bridge Platform Protocol Specification 激活提示：当用户需要理解项目结构、安装方式或边界时参考。 证据：`docs/bridge-protocol.md`\n- **Bridge 平台协议规范**（project_doc）：Bridge 协议允许使用 任何编程语言 编写的外部平台适配器在运行时通过 WebSocket 动态接入 cc-connect，无需编写 Go 代码或重新编译二进制文件。 激活提示：当用户需要理解项目结构、安装方式或边界时参考。 证据：`docs/bridge-protocol.zh-CN.md`\n- **钉钉 DingTalk 接入指南**（project_doc）：本文档介绍如何将 cc-connect 接入钉钉，让你可以通过钉钉机器人远程调用 Claude Code。 激活提示：当用户需要理解项目结构、安装方式或边界时参考。 证据：`docs/dingtalk.md`\n- **Discord Setup Guide**（project_doc）：This guide walks you through connecting cc-connect to Discord, so you can chat with your local Claude Code via a Discord bot. 激活提示：当用户需要理解项目结构、安装方式或边界时参考。 证据：`docs/discord.md`\n- **飞书 Feishu/Lark 接入指南**（project_doc）：本文档介绍如何将 cc-connect 接入飞书，让你可以通过飞书机器人远程调用 Claude Code。 激活提示：当用户需要理解项目结构、安装方式或边界时参考。 证据：`docs/feishu.md`\n- **cc-connect Management API Specification**（project_doc）：cc-connect Management API Specification 激活提示：当用户需要理解项目结构、安装方式或边界时参考。 证据：`docs/management-api.md`\n- **cc-connect 管理 API 规范**（project_doc）：版本： 1.0-draft 状态： 草案 — 实现前可能变更 最后更新： 2026-03-10 激活提示：当用户需要理解项目结构、安装方式或边界时参考。 证据：`docs/management-api.zh-CN.md`\n- **MAX bot deployment guide**（project_doc）：The MAX platform adapter platform/max supports two delivery modes: 激活提示：当用户需要理解项目结构、安装方式或边界时参考。 证据：`docs/max-webhook.md`\n- **QQ 平台接入指南 / QQ Platform Setup Guide**（project_doc）：QQ 平台接入指南 / QQ Platform Setup Guide 激活提示：当用户需要理解项目结构、安装方式或边界时参考。 证据：`docs/qq.md`\n- **QQ Bot 官方平台接入指南 / QQ Bot Official Platform Setup Guide**（project_doc）：QQ Bot 官方平台接入指南 / QQ Bot Official Platform Setup Guide 激活提示：当用户需要理解项目结构、安装方式或边界时参考。 证据：`docs/qqbot.md`\n- **Slack Platform Feature Inventory**（project_doc）：What Existed Before Our Work on main 激活提示：当用户需要理解项目结构、安装方式或边界时参考。 证据：`docs/slack-feature-inventory.md`\n- **Slack Setup Guide**（project_doc）：This guide walks you through connecting cc-connect to Slack, so you can chat with your local Claude Code via a Slack bot. 激活提示：当用户需要理解项目结构、安装方式或边界时参考。 证据：`docs/slack.md`\n- **Telegram Setup Guide**（project_doc）：This guide walks you through connecting cc-connect to Telegram, so you can chat with your local Claude Code via a Telegram bot. 激活提示：当用户需要理解项目结构、安装方式或边界时参考。 证据：`docs/telegram.md`\n- **Usage Guide**（project_doc）：Complete guide to using cc-connect features. 激活提示：当用户需要理解项目结构、安装方式或边界时参考。 证据：`docs/usage.md`\n- **使用指南**（project_doc）：- 会话管理 会话管理 - 权限模式 权限模式 - API Provider 管理 api-provider-管理 - 模型选择 模型选择 - 工作目录切换（ /dir 、 /cd ） 工作目录切换dircd - 引用查看（ /show ） 引用查看show - 飞书配置 CLI 飞书配置-cli - 微信个人号配置 CLI 微信个人号配置-cli - Claude Code Router 集成 claude-code-router-集成 - 语音消息（语音转文字） 语音消息语音转文字 - 语音回复（文字转语音） 语音回复文字转语音 - 图片与文件回传 图片与文件回传 - 定时任务 Cron 定时任务-cron - 多机器人中继 多机器人中继 - 守护进程模式 守护进程模式 - 多工作区模式 多工作区模式 - Web 管理后台（Beta） web-管理后台beta - Bridge — 外部适配器接入（Beta） bridge… 激活提示：当用户需要理解项目结构、安装方式或边界时参考。 证据：`docs/usage.zh-CN.md`\n- **企业微信 WeChat Work 接入指南**（project_doc）：本文档介绍如何将 cc-connect 接入企业微信，让你可以通过企业微信（甚至个人微信）远程调用 Claude Code。 激活提示：当用户需要理解项目结构、安装方式或边界时参考。 证据：`docs/wecom.md`\n- **微博私信接入指南**（project_doc）：本文档介绍如何将 cc-connect 接入微博私信，让你可以通过微博私信远程调用 AI 编程 Agent。 激活提示：当用户需要理解项目结构、安装方式或边界时参考。 证据：`docs/weibo.md`\n- **微信个人号（Weixin / ilink）接入指南**（project_doc）：本文档说明如何通过 cc-connect 接入 微信个人号 侧的对话能力。底层使用腾讯 ilink 机器人 HTTP 网关 （与 OpenClaw 插件 openclaw-weixin 同类接口： getUpdates 长轮询 + sendMessage 下发）。 激活提示：当用户需要理解项目结构、安装方式或边界时参考。 证据：`docs/weixin.md`\n- **Delete Batch Implementation Plan**（project_doc）：For Claude: REQUIRED SUB-SKILL: Use superpowers:executing-plans to implement this plan task-by-task. 激活提示：当用户需要理解项目结构、安装方式或边界时参考。 证据：`docs/plans/2026-03-11-delete-batch.md`\n- **Feishu Delete Card Design**（project_doc）：Goal: Let Feishu users enter /delete with no arguments to open a card-based multi-select delete flow, while keeping explicit delete arguments such as /delete 1,2,3 working as direct command execution. 激活提示：当用户需要理解项目结构、安装方式或边界时参考。 证据：`docs/plans/2026-03-11-feishu-delete-card-design.md`\n- **Feishu Delete Card Implementation Plan**（project_doc）：Feishu Delete Card Implementation Plan 激活提示：当用户需要理解项目结构、安装方式或边界时参考。 证据：`docs/plans/2026-03-11-feishu-delete-card.md`\n- **Multi-Workspace Feature Design**（project_doc）：Enable a single cc-connect bot one Slack token to serve multiple workspaces, with the channel determining which Claude Code working directory and session to use. 激活提示：当用户需要理解项目结构、安装方式或边界时参考。 证据：`docs/plans/2026-03-12-multi-workspace-design.md`\n- **Multi-Workspace Implementation Plan**（project_doc）：Multi-Workspace Implementation Plan 激活提示：当用户需要理解项目结构、安装方式或边界时参考。 证据：`docs/plans/2026-03-12-multi-workspace-plan.md`\n- **Usage Command Design**（project_doc）：Goal: Add a built-in /usage command that reports model/account quota usage, starting with Codex running under ChatGPT OAuth, while keeping the retrieval path generic so other agents can plug in later. 激活提示：当用户需要理解项目结构、安装方式或边界时参考。 证据：`docs/plans/2026-03-12-usage-design.md`\n- **Usage Command Implementation Plan**（project_doc）：For Claude: REQUIRED SUB-SKILL: Use superpowers:executing-plans to implement this plan task-by-task. 激活提示：当用户需要理解项目结构、安装方式或边界时参考。 证据：`docs/plans/2026-03-12-usage.md`\n- **Session Resilience Design**（project_doc）：Date: 2026-03-13 Status: Approved Branch: feat/multi-workspace 激活提示：当用户需要理解项目结构、安装方式或边界时参考。 证据：`docs/plans/2026-03-13-session-resilience-design.md`\n- **Session Resilience Implementation Plan**（project_doc）：Session Resilience Implementation Plan 激活提示：当用户需要理解项目结构、安装方式或边界时参考。 证据：`docs/plans/2026-03-13-session-resilience-plan.md`\n- **ACP 适配层设计（草案）**（project_doc）：本文描述在 cc-connect 中增加 Agent Client Protocol（ACP） 适配的可行方案，目标是让 已实现 ACP Agent 端 的上游进程（见 官方 Agents 列表 https://agentclientprotocol.com/get-started/agents ）能通过 统一协议 接入现有 core.Engine ，减少为每个 CLI 单独维护解析逻辑的成本。 激活提示：当用户需要理解项目结构、安装方式或边界时参考。 证据：`docs/plans/2026-03-23-acp-adapter-design.md`\n- **Integration Test Plan**（project_doc）：Integration tests verify real agent-platform interactions using actual agent binaries with a mock platform. Tests are gated by //go:build integration and excluded from normal CI. Run with: 激活提示：当用户需要理解项目结构、安装方式或边界时参考。 证据：`docs/plans/2026-03-24-integration-tests.md`\n- **Changelog**（project_doc）：Beta release with Slack Assistant API, DingTalk improvements, MAX platform webhook mode, and numerous platform fixes. No breaking changes. 激活提示：当用户需要理解项目结构、安装方式或边界时参考。 证据：`CHANGELOG.md`\n- **❤️ 赞助**（project_doc）：想在这里展示？联系：chg80333@gmail.com 微信：mongorz 激活提示：当用户需要理解项目结构、安装方式或边界时参考。 证据：`README.zh-CN.md`\n- **v1.2.2-beta.3 — 2026-03-19**（project_doc）：Features - Multi-user mode - per-user rate limits, ACL, and audit logging 150 - ImageSender - unified image sending for 6 platforms 222 - MiniMax M2.7 - upgraded from M2.5 with 1M context 211 - /whoami - display user ID for ACL configuration - /btw - inject messages into busy sessions 138 - /dir - runtime work directory switching - Cron muting - mute/unmute cron jobs - Interrupt support - send Ctrl+C to agent sessio… 激活提示：当用户需要理解项目结构、安装方式或边界时参考。 证据：`changelogs/v1.2.2-beta.3.md`\n\n## 证据索引\n\n- 共索引 80 条证据。\n\n- **Sponsors Images**（documentation）：This directory contains sponsor logos for the README sponsor section. 证据：`docs/images/sponsors/README.md`\n- **CC-Connect Development Guide**（documentation）：CC-Connect is a bridge that connects AI coding agents Claude Code, Codex, Gemini CLI, Cursor, etc. with messaging platforms Feishu/Lark, Telegram, Discord, Slack, DingTalk, WeChat Work, QQ, LINE . Users interact with their coding agent through their preferred messaging app. 证据：`AGENTS.md`\n- **CC-Connect Development Guide**（documentation）：CC-Connect is a bridge that connects AI coding agents Claude Code, Codex, Gemini CLI, Cursor, etc. with messaging platforms Feishu/Lark, Telegram, Discord, Slack, DingTalk, WeChat Work, QQ, LINE . Users interact with their coding agent through their preferred messaging app. 证据：`CLAUDE.md`\n- **❤️ Sponsor**（documentation）：Want to appear here? Contact: chg80333@gmail.com WeChat: mongorz 证据：`README.md`\n- **cc-connect**（documentation）：Bridge local AI coding agents Claude Code, Cursor, Gemini CLI, Codex to messaging platforms Feishu/Lark, DingTalk, Slack, Telegram, Discord, LINE, WeChat Work . 证据：`npm/README.md`\n- **Package**（package_manifest）：{ \"name\": \"cc-connect\", \"version\": \"1.3.3-beta.2\", \"description\": \"Bridge local AI coding agents Claude Code, Cursor, Gemini CLI to messaging platforms Feishu, DingTalk, Slack, Telegram, Discord, LINE, WeChat Work \", \"keywords\": \"claude-code\", \"ai-coding\", \"feishu\", \"dingtalk\", \"slack\", \"telegram\", \"discord\", \"line\", \"wechat-work\", \"chatbot\", \"bridge\" , \"homepage\": \"https://github.com/chenhg5/cc-connect\", \"repository\": { \"type\": \"git\", \"url\": \"https://github.com/chenhg5/cc-connect.git\" }, \"license\": \"MIT\", \"author\": \"chenhg5\", \"bin\": { \"cc-connect\": \"run.js\" }, \"scripts\": { \"postinstall\": \"node install.js\" }, \"files\": \"install.js\", \"run.js\", \"README.md\" } 证据：`npm/package.json`\n- **Package**（package_manifest）：{ \"name\": \"cc-connect-web\", \"version\": \"0.1.0\", \"private\": true, \"type\": \"module\", \"scripts\": { \"dev\": \"vite\", \"build\": \"tsc -b && vite build\", \"preview\": \"vite preview\" }, \"dependencies\": { \"@tailwindcss/typography\": \"^0.5.19\", \"clsx\": \"^2.1.1\", \"highlight.js\": \"^11.11.1\", \"i18next\": \"^25.1.2\", \"lucide-react\": \"^0.487.0\", \"qrcode.react\": \"^4.2.0\", \"react\": \"^19.1.0\", \"react-dom\": \"^19.1.0\", \"react-i18next\": \"^15.5.1\", \"react-markdown\": \"^10.1.0\", \"react-router-dom\": \"^7.5.0\", \"rehype-highlight\": \"^7.0.2\", \"remark-gfm\": \"^4.0.1\", \"zustand\": \"^5.0.5\" }, \"devDependencies\": { \"@types/react\": \"^19.1.2\", \"@types/react-dom\": \"^19.1.2\", \"@vitejs/plugin-react\": \"^4.4.1\", \"autoprefixer\": \"^10.4.21\",… 证据：`web/package.json`\n- **Contributing to cc-connect**（documentation）：中文 为-cc-connect-做贡献 English contributing-to-cc-connect 证据：`CONTRIBUTING.md`\n- **Bridge Platform Protocol Specification**（documentation）：Bridge Platform Protocol Specification 证据：`docs/bridge-protocol.md`\n- **Bridge 平台协议规范**（documentation）：Bridge 协议允许使用 任何编程语言 编写的外部平台适配器在运行时通过 WebSocket 动态接入 cc-connect，无需编写 Go 代码或重新编译二进制文件。 证据：`docs/bridge-protocol.zh-CN.md`\n- **钉钉 DingTalk 接入指南**（documentation）：本文档介绍如何将 cc-connect 接入钉钉，让你可以通过钉钉机器人远程调用 Claude Code。 证据：`docs/dingtalk.md`\n- **Discord Setup Guide**（documentation）：This guide walks you through connecting cc-connect to Discord, so you can chat with your local Claude Code via a Discord bot. 证据：`docs/discord.md`\n- **飞书 Feishu/Lark 接入指南**（documentation）：本文档介绍如何将 cc-connect 接入飞书，让你可以通过飞书机器人远程调用 Claude Code。 证据：`docs/feishu.md`\n- **cc-connect Management API Specification**（documentation）：cc-connect Management API Specification 证据：`docs/management-api.md`\n- **cc-connect 管理 API 规范**（documentation）：版本： 1.0-draft 状态： 草案 — 实现前可能变更 最后更新： 2026-03-10 证据：`docs/management-api.zh-CN.md`\n- **MAX bot deployment guide**（documentation）：The MAX platform adapter platform/max supports two delivery modes: 证据：`docs/max-webhook.md`\n- **QQ 平台接入指南 / QQ Platform Setup Guide**（documentation）：QQ 平台接入指南 / QQ Platform Setup Guide 证据：`docs/qq.md`\n- **QQ Bot 官方平台接入指南 / QQ Bot Official Platform Setup Guide**（documentation）：QQ Bot 官方平台接入指南 / QQ Bot Official Platform Setup Guide 证据：`docs/qqbot.md`\n- **Slack Platform Feature Inventory**（documentation）：What Existed Before Our Work on main 证据：`docs/slack-feature-inventory.md`\n- **Slack Setup Guide**（documentation）：This guide walks you through connecting cc-connect to Slack, so you can chat with your local Claude Code via a Slack bot. 证据：`docs/slack.md`\n- **Telegram Setup Guide**（documentation）：This guide walks you through connecting cc-connect to Telegram, so you can chat with your local Claude Code via a Telegram bot. 证据：`docs/telegram.md`\n- **Usage Guide**（documentation）：Complete guide to using cc-connect features. 证据：`docs/usage.md`\n- **使用指南**（documentation）：- 会话管理 会话管理 - 权限模式 权限模式 - API Provider 管理 api-provider-管理 - 模型选择 模型选择 - 工作目录切换（ /dir 、 /cd ） 工作目录切换dircd - 引用查看（ /show ） 引用查看show - 飞书配置 CLI 飞书配置-cli - 微信个人号配置 CLI 微信个人号配置-cli - Claude Code Router 集成 claude-code-router-集成 - 语音消息（语音转文字） 语音消息语音转文字 - 语音回复（文字转语音） 语音回复文字转语音 - 图片与文件回传 图片与文件回传 - 定时任务 Cron 定时任务-cron - 多机器人中继 多机器人中继 - 守护进程模式 守护进程模式 - 多工作区模式 多工作区模式 - Web 管理后台（Beta） web-管理后台beta - Bridge — 外部适配器接入（Beta） bridge--外部适配器接入beta - 配置参考 配置参考 证据：`docs/usage.zh-CN.md`\n- **企业微信 WeChat Work 接入指南**（documentation）：本文档介绍如何将 cc-connect 接入企业微信，让你可以通过企业微信（甚至个人微信）远程调用 Claude Code。 证据：`docs/wecom.md`\n- **微博私信接入指南**（documentation）：本文档介绍如何将 cc-connect 接入微博私信，让你可以通过微博私信远程调用 AI 编程 Agent。 证据：`docs/weibo.md`\n- **微信个人号（Weixin / ilink）接入指南**（documentation）：本文档说明如何通过 cc-connect 接入 微信个人号 侧的对话能力。底层使用腾讯 ilink 机器人 HTTP 网关 （与 OpenClaw 插件 openclaw-weixin 同类接口： getUpdates 长轮询 + sendMessage 下发）。 证据：`docs/weixin.md`\n- **Delete Batch Implementation Plan**（documentation）：For Claude: REQUIRED SUB-SKILL: Use superpowers:executing-plans to implement this plan task-by-task. 证据：`docs/plans/2026-03-11-delete-batch.md`\n- **Feishu Delete Card Design**（documentation）：Goal: Let Feishu users enter /delete with no arguments to open a card-based multi-select delete flow, while keeping explicit delete arguments such as /delete 1,2,3 working as direct command execution. 证据：`docs/plans/2026-03-11-feishu-delete-card-design.md`\n- **Feishu Delete Card Implementation Plan**（documentation）：Feishu Delete Card Implementation Plan 证据：`docs/plans/2026-03-11-feishu-delete-card.md`\n- **Multi-Workspace Feature Design**（documentation）：Enable a single cc-connect bot one Slack token to serve multiple workspaces, with the channel determining which Claude Code working directory and session to use. 证据：`docs/plans/2026-03-12-multi-workspace-design.md`\n- **Multi-Workspace Implementation Plan**（documentation）：Multi-Workspace Implementation Plan 证据：`docs/plans/2026-03-12-multi-workspace-plan.md`\n- **Usage Command Design**（documentation）：Goal: Add a built-in /usage command that reports model/account quota usage, starting with Codex running under ChatGPT OAuth, while keeping the retrieval path generic so other agents can plug in later. 证据：`docs/plans/2026-03-12-usage-design.md`\n- **Usage Command Implementation Plan**（documentation）：For Claude: REQUIRED SUB-SKILL: Use superpowers:executing-plans to implement this plan task-by-task. 证据：`docs/plans/2026-03-12-usage.md`\n- **Session Resilience Design**（documentation）：Date: 2026-03-13 Status: Approved Branch: feat/multi-workspace 证据：`docs/plans/2026-03-13-session-resilience-design.md`\n- **Session Resilience Implementation Plan**（documentation）：Session Resilience Implementation Plan 证据：`docs/plans/2026-03-13-session-resilience-plan.md`\n- **ACP 适配层设计（草案）**（documentation）：本文描述在 cc-connect 中增加 Agent Client Protocol（ACP） 适配的可行方案，目标是让 已实现 ACP Agent 端 的上游进程（见 官方 Agents 列表 https://agentclientprotocol.com/get-started/agents ）能通过 统一协议 接入现有 core.Engine ，减少为每个 CLI 单独维护解析逻辑的成本。 证据：`docs/plans/2026-03-23-acp-adapter-design.md`\n- **Integration Test Plan**（documentation）：Integration tests verify real agent-platform interactions using actual agent binaries with a mock platform. Tests are gated by //go:build integration and excluded from normal CI. Run with: 证据：`docs/plans/2026-03-24-integration-tests.md`\n- **Changelog**（documentation）：Beta release with Slack Assistant API, DingTalk improvements, MAX platform webhook mode, and numerous platform fixes. No breaking changes. 证据：`CHANGELOG.md`\n- **❤️ 赞助**（documentation）：想在这里展示？联系：chg80333@gmail.com 微信：mongorz 证据：`README.zh-CN.md`\n- **v1.2.2-beta.3 — 2026-03-19**（documentation）：Features - Multi-user mode - per-user rate limits, ACL, and audit logging 150 - ImageSender - unified image sending for 6 platforms 222 - MiniMax M2.7 - upgraded from M2.5 with 1M context 211 - /whoami - display user ID for ACL configuration - /btw - inject messages into busy sessions 138 - /dir - runtime work directory switching - Cron muting - mute/unmute cron jobs - Interrupt support - send Ctrl+C to agent sessions 198 - CORS support - Bridge API cross-origin requests 196 - Message queuing - queue when agent is busy instead of dropping - QQ Bot Markdown - full Markdown support 172 - models config - per-provider model selection via alias 200 证据：`changelogs/v1.2.2-beta.3.md`\n- **Settings.Local**（structured_config）：{ \"permissions\": { \"allow\": \"Bash git add: \", \"Bash git commit -m ': \" } } 证据：`.claude/settings.local.json`\n- **Slack App Manifest**（structured_config）：{ \" metadata\": { \"major version\": 2, \"minor version\": 1 }, \"display information\": { \"name\": \"CC-Connect\", \"description\": \"Bridge between AI coding agents and Slack\", \"background color\": \" 1a1a2e\" }, \"features\": { \"bot user\": { \"display name\": \"CC-Connect\", \"always online\": true }, \"slash commands\": { \"command\": \"/ps\", \"description\": \"Send a P.S. to the running task\", \"usage hint\": \" message \", \"should escape\": false }, { \"command\": \"/new\", \"description\": \"Start a new session\", \"usage hint\": \" name \", \"should escape\": false }, { \"command\": \"/list\", \"description\": \"List agent sessions\", \"should escape\": false }, { \"command\": \"/switch\", \"description\": \"Resume a session by its list number\", \"us… 证据：`docs/slack-app-manifest.json`\n- **Provider Presets**（structured_config）：{ \"version\": 2, \"updated at\": \"2026-04-21\", \"providers\": { \"name\": \"minimax\", \"display name\": \"MiniMax\", \"invite url\": \"https://platform.minimax.io/subscribe/token-plan?code=lqYrKBvjke&source=link\", \"description\": \"Next-gen LLM with 1M context window, strong SWE performance 56.2% SWE-Pro . Exclusive 12% off Token Plan for cc-connect users!\", \"description zh\": \"新一代大模型，支持 1M 超长上下文，软件工程能力突出（SWE-Pro 56.2%）。cc-connect 用户专享 Token 套餐 88 折！\", \"features\": \"1M Context\", \"Extended Thinking\", \"SWE-Pro 56.2%\" , \"tier\": 1, \"website\": \"https://platform.minimax.io\", \"agents\": { \"claudecode\": { \"base url\": \"https://api.minimax.io/anthropic\", \"model\": \"MiniMax-M2.7\", \"models\": \"MiniMax-M2.7\", \"MiniMax-M2.7-h… 证据：`provider-presets.json`\n- **Skill Presets**（structured_config）：{ \"version\": 1, \"updated at\": \"2026-04-18\", \"skills\": { \"name\": \"find-skills\", \"display name\": \"Find Skills\", \"description\": \"Discover and install specialized agent skills from the open ecosystem when users need extended capabilities\", \"description zh\": \"从开放技能生态中发现和安装专业 Agent 技能，帮助用户扩展 AI 代理能力\", \"version\": \"1.0.0\", \"author\": \"vercel-labs\", \"url\": \"https://skills.sh/vercel-labs/skills/find-skills\", \"tags\": \"skills\", \"ecosystem\", \"discovery\" , \"featured\": true, \"source\": { \"provider\": \"skills.sh\", \"name\": \"Skills.sh\", \"url\": \"https://skills.sh\" }, \"pricing\": { \"type\": \"free\" } } } 证据：`skill-presets.json`\n- **.Pnpmrc**（structured_config）：{\"onlyBuiltDependencies\": \"esbuild\" } 证据：`web/.pnpmrc.json`\n- **Tsconfig**（structured_config）：{ \"compilerOptions\": { \"target\": \"ES2020\", \"useDefineForClassFields\": true, \"lib\": \"ES2020\", \"DOM\", \"DOM.Iterable\" , \"module\": \"ESNext\", \"skipLibCheck\": true, \"moduleResolution\": \"bundler\", \"allowImportingTsExtensions\": true, \"isolatedModules\": true, \"moduleDetection\": \"force\", \"noEmit\": true, \"jsx\": \"react-jsx\", \"strict\": true, \"noUnusedLocals\": false, \"noUnusedParameters\": false, \"noFallthroughCasesInSwitch\": true, \"forceConsistentCasingInFileNames\": true, \"baseUrl\": \".\", \"paths\": { \"@/ \": \"src/ \" } }, \"include\": \"src\", \"vite-env.d.ts\" } 证据：`web/tsconfig.json`\n- **2026 03 12 Multi Workspace Plan.Md.Tasks**（structured_config）：{ \"planPath\": \"docs/plans/2026-03-12-multi-workspace-plan.md\", \"tasks\": {\"id\": 1, \"subject\": \"Task 1: Add config fields\", \"status\": \"pending\"}, {\"id\": 2, \"subject\": \"Task 2: Workspace binding persistence\", \"status\": \"pending\", \"blockedBy\": 1 }, {\"id\": 3, \"subject\": \"Task 3: Workspace state and idle reaper\", \"status\": \"pending\", \"blockedBy\": 1 }, {\"id\": 4, \"subject\": \"Task 4: Channel name resolution in Slack platform\", \"status\": \"pending\"}, {\"id\": 5, \"subject\": \"Task 5: Engine multi-workspace fields and constructor\", \"status\": \"pending\", \"blockedBy\": 2, 3 }, {\"id\": 6, \"subject\": \"Task 6: Workspace resolution logic\", \"status\": \"pending\", \"blockedBy\": 4, 5 }, {\"id\": 7, \"subject\": \"Task 7: Init… 证据：`docs/plans/2026-03-12-multi-workspace-plan.md.tasks.json`\n- **2026 03 13 Session Resilience Plan.Md.Tasks**（structured_config）：{ \"planPath\": \"docs/plans/2026-03-13-session-resilience-plan.md\", \"tasks\": {\"id\": 7, \"subject\": \"Task 1: Add normalizeWorkspacePath helper\", \"status\": \"pending\"}, {\"id\": 8, \"subject\": \"Task 2: Apply path normalization at entry points\", \"status\": \"pending\", \"blockedBy\": 7 }, {\"id\": 9, \"subject\": \"Task 3: Add token usage fields to Event and parse in session\", \"status\": \"pending\"}, {\"id\": 10, \"subject\": \"Task 4: Track context % on interactiveState and append to messages\", \"status\": \"pending\", \"blockedBy\": 9 }, {\"id\": 11, \"subject\": \"Task 5: Add system prompt instruction for self-reporting\", \"status\": \"pending\"}, {\"id\": 12, \"subject\": \"Task 6: Add dual-track context logging\", \"status\": \"pending… 证据：`docs/plans/2026-03-13-session-resilience-plan.md.tasks.json`\n- **En**（structured_config）：{ \"nav\": { \"dashboard\": \"Dashboard\", \"projects\": \"Projects\", \"providers\": \"Providers\", \"sessions\": \"Sessions\", \"chat\": \"Chat\", \"cron\": \"Cron\", \"bridge\": \"Bridge\", \"skills\": \"Skills\", \"system\": \"System\" }, \"dashboard\": { \"title\": \"Dashboard\", \"version\": \"Version\", \"uptime\": \"Uptime\", \"platforms\": \"Platforms\", \"projects\": \"Projects\", \"bridgeAdapters\": \"Bridge adapters\", \"noData\": \"No data available\", \"recentSessions\": \"Recent sessions\" }, \"projects\": { \"title\": \"Projects\", \"name\": \"Name\", \"agent\": \"Agent\", \"platforms\": \"Platforms\", \"sessions\": \"Sessions\", \"heartbeat\": \"Heartbeat\", \"settings\": \"Settings\", \"quiet\": \"Quiet mode\", \"language\": \"Language\", \"adminFrom\": \"Admin from\", \"disabledComman… 证据：`web/src/i18n/locales/en.json`\n- **Es**（structured_config）：{ \"nav\": { \"dashboard\": \"Panel\", \"projects\": \"Proyectos\", \"providers\": \"Proveedores\", \"sessions\": \"Sesiones\", \"chat\": \"Chat\", \"cron\": \"Cron\", \"bridge\": \"Puente\", \"skills\": \"Habilidades\", \"system\": \"Sistema\" }, \"dashboard\": { \"title\": \"Panel\", \"version\": \"Versión\", \"uptime\": \"Tiempo activo\", \"platforms\": \"Plataformas\", \"projects\": \"Proyectos\", \"bridgeAdapters\": \"Adaptadores de puente\", \"noData\": \"No hay datos disponibles\", \"recentSessions\": \"Sesiones recientes\" }, \"projects\": { \"title\": \"Proyectos\", \"name\": \"Nombre\", \"agent\": \"Agente\", \"platforms\": \"Plataformas\", \"sessions\": \"Sesiones\", \"heartbeat\": \"Latido\", \"settings\": \"Ajustes\", \"quiet\": \"Modo silencioso\", \"language\": \"Idioma\", \"adminFrom… 证据：`web/src/i18n/locales/es.json`\n- **Ja**（structured_config）：{ \"nav\": { \"dashboard\": \"ダッシュボード\", \"projects\": \"プロジェクト\", \"providers\": \"プロバイダー\", \"sessions\": \"セッション\", \"chat\": \"チャット\", \"cron\": \"Cron\", \"bridge\": \"ブリッジ\", \"skills\": \"スキル\", \"system\": \"システム\" }, \"dashboard\": { \"title\": \"ダッシュボード\", \"version\": \"バージョン\", \"uptime\": \"稼働時間\", \"platforms\": \"プラットフォーム\", \"projects\": \"プロジェクト\", \"bridgeAdapters\": \"ブリッジアダプター\", \"noData\": \"データがありません\", \"recentSessions\": \"最近のセッション\" }, \"projects\": { \"title\": \"プロジェクト\", \"name\": \"名前\", \"agent\": \"エージェント\", \"platforms\": \"プラットフォーム\", \"sessions\": \"セッション\", \"heartbeat\": \"ハートビート\", \"settings\": \"設定\", \"quiet\": \"サイレントモード\", \"language\": \"言語\", \"adminFrom\": \"管理元\", \"disabledCommands\": \"無効化したコマンド\", \"save\": \"保存\", \"detail\": \"詳細\", \"noProjects\": \"プロジェクトが設定されていませ… 证据：`web/src/i18n/locales/ja.json`\n- **Zh Tw**（structured_config）：{ \"nav\": { \"dashboard\": \"總覽\", \"projects\": \"專案\", \"providers\": \"服務商\", \"sessions\": \"工作階段\", \"chat\": \"對話\", \"cron\": \"排程工作\", \"bridge\": \"橋接\", \"skills\": \"技能\", \"system\": \"系統\" }, \"dashboard\": { \"title\": \"總覽\", \"version\": \"版本\", \"uptime\": \"運作時間\", \"platforms\": \"平台\", \"projects\": \"專案\", \"bridgeAdapters\": \"橋接介接器\", \"noData\": \"尚無資料\", \"recentSessions\": \"最近會話\" }, \"projects\": { \"title\": \"專案\", \"name\": \"名稱\", \"agent\": \"智慧代理\", \"platforms\": \"平台\", \"sessions\": \"工作階段\", \"heartbeat\": \"心跳\", \"settings\": \"設定\", \"quiet\": \"靜音模式\", \"language\": \"語言\", \"adminFrom\": \"管理來源\", \"disabledCommands\": \"已停用指令\", \"save\": \"儲存\", \"detail\": \"詳細資料\", \"noProjects\": \"尚未設定專案\", \"workDir\": \"工作目錄\", \"agentType\": \"Agent 類型\", \"agentTypeChangeHint\": \"切換 Agent 類型… 证据：`web/src/i18n/locales/zh-TW.json`\n- **Zh**（structured_config）：{ \"nav\": { \"dashboard\": \"概览\", \"projects\": \"项目\", \"providers\": \"服务商\", \"sessions\": \"会话\", \"chat\": \"对话\", \"cron\": \"定时任务\", \"bridge\": \"桥接\", \"skills\": \"技能\", \"system\": \"系统\" }, \"dashboard\": { \"title\": \"概览\", \"version\": \"版本\", \"uptime\": \"运行时间\", \"platforms\": \"平台\", \"projects\": \"项目\", \"bridgeAdapters\": \"桥接适配器\", \"noData\": \"暂无数据\", \"recentSessions\": \"最近会话\" }, \"projects\": { \"title\": \"项目\", \"name\": \"名称\", \"agent\": \"智能体\", \"platforms\": \"平台\", \"sessions\": \"会话\", \"heartbeat\": \"心跳\", \"settings\": \"设置\", \"quiet\": \"静默模式\", \"language\": \"语言\", \"adminFrom\": \"管理来源\", \"disabledCommands\": \"已禁用命令\", \"save\": \"保存\", \"detail\": \"详情\", \"noProjects\": \"尚未配置项目\", \"workDir\": \"工作目录\", \"agentType\": \"Agent 类型\", \"agentTypeChangeHint\": \"切换 Agent 类型需要重启，不兼… 证据：`web/src/i18n/locales/zh.json`\n- **These are supported funding model platforms**（source_file）：These are supported funding model platforms 证据：`.github/FUNDING.yml`\n- **============================================================================**（source_file）：============================================================================ Binary outputs ============================================================================ /cc-connect cc-connect.bak- .exe .exe~ .dll .so .dylib .test .out .old 证据：`.gitignore`\n- **.Golangci**（source_file）：linters: enable: - errcheck - gosimple - govet - ineffassign - staticcheck - unused 证据：`.golangci.yml`\n- **---------------------------------------------------------------------------**（source_file）：APP := cc-connect MODULE := github.com/chenhg5/cc-connect CMD := ./cmd/cc-connect DIST := dist 证据：`Makefile`\n- **Config**（source_file）：import \"fmt\" \"log/slog\" \"os\" \"path/filepath\" \"reflect\" \"regexp\" \"runtime\" \"strconv\" \"strings\" \"sync\" 证据：`config/config.go`\n- **Very important - do not lose this!**（source_file）：import \"os\" \"path/filepath\" \"runtime\" \"strings\" \"testing\" 证据：`config/config_test.go`\n- **Api**（source_file）：import \"encoding/json\" \"fmt\" \"io\" \"log/slog\" \"net\" \"net/http\" \"os\" \"path/filepath\" \"sync\" \"time\" 证据：`core/api.go`\n- 其余 20 条证据见 `AI_CONTEXT_PACK.json` 或 `EVIDENCE_INDEX.json`。\n\n## 宿主 AI 必须遵守的规则\n\n- **把本资产当作开工前上下文，而不是运行环境。**：AI Context Pack 只包含证据化项目理解，不包含目标项目的可执行状态。 证据：`docs/images/sponsors/README.md`, `AGENTS.md`, `CLAUDE.md`\n- **回答用户时区分可预览内容与必须安装后才能验证的内容。**：安装前体验的消费者价值来自降低误装和误判，而不是伪装成真实运行。 证据：`docs/images/sponsors/README.md`, `AGENTS.md`, `CLAUDE.md`\n\n## 用户开工前应该回答的问题\n\n- 你准备在哪个宿主 AI 或本地环境中使用它？\n- 你只是想先体验工作流，还是准备真实安装？\n- 你最在意的是安装成本、输出质量、还是和现有规则的冲突？\n\n## 验收标准\n\n- 所有能力声明都能回指到 evidence_refs 中的文件路径。\n- AI_CONTEXT_PACK.md 没有把预览包装成真实运行。\n- 用户能在 3 分钟内看懂适合谁、能做什么、如何开始和风险边界。\n\n---\n\n## Doramagic Context Augmentation\n\n下面内容用于强化 Repomix/AI Context Pack 主体。Human Manual 只提供阅读骨架；踩坑日志会被转成宿主 AI 必须遵守的工作约束。\n\n## Human Manual 骨架\n\n使用规则：这里只是项目阅读路线和显著性信号，不是事实权威。具体事实仍必须回到 repo evidence / Claim Graph。\n\n宿主 AI 硬性规则：\n- 不得把页标题、章节顺序、摘要或 importance 当作项目事实证据。\n- 解释 Human Manual 骨架时，必须明确说它只是阅读路线/显著性信号。\n- 能力、安装、兼容性、运行状态和风险判断必须引用 repo evidence、source path 或 Claim Graph。\n\n- **项目概述**：importance `high`\n  - source_paths: README.md, README.zh-CN.md, go.mod\n- **系统架构**：importance `high`\n  - source_paths: core/engine.go, core/bridge.go, core/registry.go, docs/images/connector.png\n- **核心接口定义**：importance `high`\n  - source_paths: core/interfaces.go, core/session.go, core/provider.go\n- **Bridge 协议**：importance `high`\n  - source_paths: core/bridge.go, core/bridge_capabilities.go, docs/bridge-protocol.md, docs/bridge-protocol.zh-CN.md\n- **Agent 集成概述**：importance `high`\n  - source_paths: agent/acp/agent.go, agent/claudecode/claudecode.go, agent/codex/codex.go, core/agent.go\n- **Agent 通信协议**：importance `medium`\n  - source_paths: agent/acp/rpc.go, agent/acp/session.go, agent/acp/mapping.go\n- **Claude Code 集成**：importance `high`\n  - source_paths: agent/claudecode/claudecode.go, agent/claudecode/session.go, agent/claudecode/claude_usage.go\n- **Codex 集成**：importance `high`\n  - source_paths: agent/codex/codex.go, agent/codex/session.go, agent/codex/provider_config.go\n\n## Repo Inspection Evidence / 源码检查证据\n\n- repo_clone_verified: true\n- repo_inspection_verified: true\n- repo_commit: `14abab1715a1646fcb57d4d54629f6c06f617814`\n- inspected_files: `README.md`, `docs/slack.md`, `docs/qq.md`, `docs/discord.md`, `docs/usage.zh-CN.md`, `docs/management-api.zh-CN.md`, `docs/feishu.md`, `docs/management-api.md`, `docs/weibo.md`, `docs/max-webhook.md`, `docs/slack-feature-inventory.md`, `docs/wecom.md`, `docs/weixin.md`, `docs/usage.md`, `docs/telegram.md`, `docs/bridge-protocol.zh-CN.md`, `docs/slack-app-manifest.json`, `docs/dingtalk.md`, `docs/bridge-protocol.md`, `docs/qqbot.md`\n\n宿主 AI 硬性规则：\n- 没有 repo_clone_verified=true 时，不得声称已经读过源码。\n- 没有 repo_inspection_verified=true 时，不得把 README/docs/package 文件判断写成事实。\n- 没有 quick_start_verified=true 时，不得声称 Quick Start 已跑通。\n\n## Doramagic Pitfall Constraints / 踩坑约束\n\n这些规则来自 Doramagic 发现、验证或编译过程中的项目专属坑点。宿主 AI 必须把它们当作工作约束，而不是普通说明文字。\n\n### Constraint 1: 来源证据：[Bug]\n\n- Trigger: GitHub 社区证据显示该项目存在一个安装相关的待验证问题：[Bug]\n- Host AI rule: 来源问题仍为 open，Pack Agent 需要复核是否仍影响当前版本。\n- Why it matters: 可能增加新用户试用和生产接入成本。\n- Evidence: community_evidence:github | cevd_c85c0f8f48ac44c7a855066b2bfc3939 | https://github.com/chenhg5/cc-connect/issues/933 | 来源讨论提到 npm 相关条件，需在安装/试用前复核。\n- Hard boundary: 不要把这个坑点包装成已解决、已验证或可忽略，除非后续验证证据明确证明它已经关闭。\n\n### Constraint 2: 来源证据：[Feature] Preserve full interactive card schema on inbound\n\n- Trigger: GitHub 社区证据显示该项目存在一个安装相关的待验证问题：[Feature] Preserve full interactive card schema on inbound\n- Host AI rule: 来源问题仍为 open，Pack Agent 需要复核是否仍影响当前版本。\n- Why it matters: 可能影响升级、迁移或版本选择。\n- Evidence: community_evidence:github | cevd_f50380a7aef54548ac053b1127a2916e | https://github.com/chenhg5/cc-connect/issues/936 | 来源类型 github_issue 暴露的待验证使用条件。\n- Hard boundary: 不要把这个坑点包装成已解决、已验证或可忽略，除非后续验证证据明确证明它已经关闭。\n\n### Constraint 3: 来源证据：cc-connect 因 SSH 断开被 systemd 停止：需要文档化 `loginctl enable-linger`\n\n- Trigger: GitHub 社区证据显示该项目存在一个安装相关的待验证问题：cc-connect 因 SSH 断开被 systemd 停止：需要文档化 `loginctl enable-linger`\n- Host AI rule: 来源问题仍为 open，Pack Agent 需要复核是否仍影响当前版本。\n- Why it matters: 可能增加新用户试用和生产接入成本。\n- Evidence: community_evidence:github | cevd_3a818efa6ddf479aae0f026d1f06d491 | https://github.com/chenhg5/cc-connect/issues/960 | 来源讨论提到 npm 相关条件，需在安装/试用前复核。\n- Hard boundary: 不要把这个坑点包装成已解决、已验证或可忽略，除非后续验证证据明确证明它已经关闭。\n\n### Constraint 4: 来源证据：Feishu: all messages permanently ignored as 'old message after restart' after every daemon restart (v1.3.3-beta.2)\n\n- Trigger: GitHub 社区证据显示该项目存在一个配置相关的待验证问题：Feishu: all messages permanently ignored as 'old message after restart' after every daemon restart (v1.3.3-beta.2)\n- Host AI rule: 来源问题仍为 open，Pack Agent 需要复核是否仍影响当前版本。\n- Why it matters: 可能增加新用户试用和生产接入成本。\n- Evidence: community_evidence:github | cevd_7b001c45ac3449abaee3dd365bc4cc74 | https://github.com/chenhg5/cc-connect/issues/972 | 来源讨论提到 linux 相关条件，需在安装/试用前复核。\n- Hard boundary: 不要把这个坑点包装成已解决、已验证或可忽略，除非后续验证证据明确证明它已经关闭。\n\n### Constraint 5: 来源证据：[Bug] cc-connect send uses default socket path in custom data_dir agent sessions\n\n- Trigger: GitHub 社区证据显示该项目存在一个配置相关的待验证问题：[Bug] cc-connect send uses default socket path in custom data_dir agent sessions\n- Host AI rule: 来源问题仍为 open，Pack Agent 需要复核是否仍影响当前版本。\n- Why it matters: 可能增加新用户试用和生产接入成本。\n- Evidence: community_evidence:github | cevd_6136e384578b499ca63299322032211a | https://github.com/chenhg5/cc-connect/issues/966 | 来源类型 github_issue 暴露的待验证使用条件。\n- Hard boundary: 不要把这个坑点包装成已解决、已验证或可忽略，除非后续验证证据明确证明它已经关闭。\n\n### Constraint 6: 来源证据：Feature Request: 终端与 IM 双通道统一会话管理\n\n- Trigger: GitHub 社区证据显示该项目存在一个安全/权限相关的待验证问题：Feature Request: 终端与 IM 双通道统一会话管理\n- Host AI rule: 来源问题仍为 open，Pack Agent 需要复核是否仍影响当前版本。\n- Why it matters: 可能影响授权、密钥配置或安全边界。\n- Evidence: community_evidence:github | cevd_befa8b4f1c7f4ef483d6d8b38ba06ba4 | https://github.com/chenhg5/cc-connect/issues/968 | 来源讨论提到 windows 相关条件，需在安装/试用前复核。\n- Hard boundary: 不要把这个坑点包装成已解决、已验证或可忽略，除非后续验证证据明确证明它已经关闭。\n\n### Constraint 7: 来源证据：v1.3.3-beta.1\n\n- Trigger: GitHub 社区证据显示该项目存在一个安装相关的待验证问题：v1.3.3-beta.1\n- Host AI rule: 来源显示可能已有修复、规避或版本变化，说明书中必须标注适用版本。\n- Why it matters: 可能影响升级、迁移或版本选择。\n- Evidence: community_evidence:github | cevd_5eb39ef63cf14e56aff580db738dcd9f | https://github.com/chenhg5/cc-connect/releases/tag/v1.3.3-beta.1 | 来源讨论提到 npm 相关条件，需在安装/试用前复核。\n- Hard boundary: 不要把这个坑点包装成已解决、已验证或可忽略，除非后续验证证据明确证明它已经关闭。\n\n### Constraint 8: 来源证据：生图 app-icon 请求未稳定转发到 generate-image，且 cc-connect 存在部署漂移风险\n\n- Trigger: GitHub 社区证据显示该项目存在一个安装相关的待验证问题：生图 app-icon 请求未稳定转发到 generate-image，且 cc-connect 存在部署漂移风险\n- Host AI rule: 来源显示可能已有修复、规避或版本变化，说明书中必须标注适用版本。\n- Why it matters: 可能增加新用户试用和生产接入成本。\n- Evidence: community_evidence:github | cevd_574cca97359b4bc1a8a8fa968ab758cb | https://github.com/chenhg5/cc-connect/issues/967 | 来源讨论提到 node 相关条件，需在安装/试用前复核。\n- Hard boundary: 不要把这个坑点包装成已解决、已验证或可忽略，除非后续验证证据明确证明它已经关闭。\n\n### Constraint 9: 可能修改宿主 AI 配置\n\n- Trigger: 项目面向 Claude/Cursor/Codex/Gemini/OpenCode 等宿主，或安装命令涉及用户配置目录。\n- Host AI rule: 列出会写入的配置文件、目录和卸载/回滚步骤。\n- Why it matters: 安装可能改变本机 AI 工具行为，用户需要知道写入位置和回滚方法。\n- Evidence: capability.host_targets | github_repo:1168978399 | https://github.com/chenhg5/cc-connect | host_targets=claude, claude_code, cursor\n- Hard boundary: 不要把这个坑点包装成已解决、已验证或可忽略，除非后续验证证据明确证明它已经关闭。\n\n### Constraint 10: 来源证据：v1.3.0-rc.3\n\n- Trigger: GitHub 社区证据显示该项目存在一个配置相关的待验证问题：v1.3.0-rc.3\n- Host AI rule: 来源显示可能已有修复、规避或版本变化，说明书中必须标注适用版本。\n- Why it matters: 可能增加新用户试用和生产接入成本。\n- Evidence: community_evidence:github | cevd_9e274ec877304b369e551afc543b9bae | https://github.com/chenhg5/cc-connect/releases/tag/v1.3.0-rc.3 | 来源类型 github_release 暴露的待验证使用条件。\n- Hard boundary: 不要把这个坑点包装成已解决、已验证或可忽略，除非后续验证证据明确证明它已经关闭。\n",
      "summary": "给宿主 AI 的上下文和工作边界。",
      "title": "AI Context Pack / 带给我的 AI"
    },
    "boundary_risk_card": {
      "asset_id": "boundary_risk_card",
      "filename": "BOUNDARY_RISK_CARD.md",
      "markdown": "# Boundary & Risk Card / 安装前决策卡\n\n项目：chenhg5/cc-connect\n\n## Doramagic 试用结论\n\n当前结论：可以进入发布前推荐检查；首次使用仍应从最小权限、临时目录和可回滚配置开始。\n\n## 用户现在可以做\n\n- 可以先阅读 Human Manual，理解项目目的和主要工作流。\n- 可以复制 Prompt Preview 做安装前体验；这只验证交互感，不代表真实运行。\n- 可以把官方 Quick Start 命令放到隔离环境中验证，不要直接进主力环境。\n\n## 现在不要做\n\n- 不要把 Prompt Preview 当成项目实际运行结果。\n- 不要把 metadata-only validation 当成沙箱安装验证。\n- 不要把未验证能力写成“已支持、已跑通、可放心安装”。\n- 不要在首次试用时交出生产数据、私人文件、真实密钥或主力配置目录。\n\n## 安装前检查\n\n- 宿主 AI 是否匹配：claude, claude_code, cursor\n- 官方安装入口状态：已发现官方入口\n- 是否在临时目录、临时宿主或容器中验证：必须是\n- 是否能回滚配置改动：必须能\n- 是否需要 API Key、网络访问、读写文件或修改宿主配置：未确认前按高风险处理\n- 是否记录了安装命令、实际输出和失败日志：必须记录\n\n## 当前阻塞项\n\n- 无阻塞项。\n\n## 项目专属踩坑\n\n- 来源证据：[Bug]（high）：可能增加新用户试用和生产接入成本。 建议检查：来源问题仍为 open，Pack Agent 需要复核是否仍影响当前版本。\n- 来源证据：[Feature] Preserve full interactive card schema on inbound（high）：可能影响升级、迁移或版本选择。 建议检查：来源问题仍为 open，Pack Agent 需要复核是否仍影响当前版本。\n- 来源证据：cc-connect 因 SSH 断开被 systemd 停止：需要文档化 `loginctl enable-linger`（high）：可能增加新用户试用和生产接入成本。 建议检查：来源问题仍为 open，Pack Agent 需要复核是否仍影响当前版本。\n- 来源证据：Feishu: all messages permanently ignored as 'old message after restart' after every daemon restart (v1.3.3-beta.2)（high）：可能增加新用户试用和生产接入成本。 建议检查：来源问题仍为 open，Pack Agent 需要复核是否仍影响当前版本。\n- 来源证据：[Bug] cc-connect send uses default socket path in custom data_dir agent sessions（high）：可能增加新用户试用和生产接入成本。 建议检查：来源问题仍为 open，Pack Agent 需要复核是否仍影响当前版本。\n\n## 风险与权限提示\n\n- no_demo: medium\n\n## 证据缺口\n\n- 暂未发现结构化证据缺口。\n",
      "summary": "安装、权限、验证和推荐前风险。",
      "title": "Boundary & Risk Card / 边界与风险卡"
    },
    "human_manual": {
      "asset_id": "human_manual",
      "filename": "HUMAN_MANUAL.md",
      "markdown": "# https://github.com/chenhg5/cc-connect 项目说明书\n\n生成时间：2026-05-13 23:32:01 UTC\n\n## 目录\n\n- [项目概述](#overview)\n- [系统架构](#architecture)\n- [核心接口定义](#core-interfaces)\n- [Bridge 协议](#bridge-protocol)\n- [Agent 集成概述](#agent-overview)\n- [Agent 通信协议](#agent-protocols)\n- [Claude Code 集成](#claude-code-integration)\n- [Codex 集成](#codex-integration)\n- [平台集成概述](#platform-overview)\n- [飞书集成详解](#platform-feishu)\n\n<a id='overview'></a>\n\n## 项目概述\n\n### 相关页面\n\n相关主题：[系统架构](#architecture), [Agent 集成概述](#agent-overview), [平台集成概述](#platform-overview)\n\n<details>\n<summary>相关源码文件</summary>\n\n以下源码文件用于生成本页说明：\n\n- [AGENTS.md](https://github.com/chenhg5/cc-connect/blob/main/AGENTS.md)\n- [core/i18n.go](https://github.com/chenhg5/cc-connect/blob/main/core/i18n.go)\n- [platform/wecom/inbound_file_test.go](https://github.com/chenhg5/cc-connect/blob/main/platform/wecom/inbound_file_test.go)\n- [web/index.html](https://github.com/chenhg5/cc-connect/blob/main/web/index.html)\n- [web/src/pages/Providers/ProviderList.tsx](https://github.com/chenhg5/cc-connect/blob/main/web/src/pages/Providers/ProviderList.tsx)\n- [web/src/pages/Skills/SkillList.tsx](https://github.com/chenhg5/cc-connect/blob/main/web/src/pages/Skills/SkillList.tsx)\n- [web/src/pages/Sessions/SessionList.tsx](https://github.com/chenhg5/cc-connect/blob/main/web/src/pages/Sessions/SessionList.tsx)\n- [web/src/pages/Projects/ProjectList.tsx](https://github.com/chenhg5/cc-connect/blob/main/web/src/pages/Projects/ProjectList.tsx)\n- [web/src/pages/Projects/ProjectDetail.tsx](https://github.com/chenhg5/cc-connect/blob/main/web/src/pages/Projects/ProjectDetail.tsx)\n- [web/src/pages/Chat/ChatView.tsx](https://github.com/chenhg5/cc-connect/blob/main/web/src/pages/Chat/ChatView.tsx)\n</details>\n\n# 项目概述\n\n## 项目简介\n\ncc-connect 是一个多平台 AI 代理连接框架，旨在将不同的 AI 代理服务与多种即时通讯平台进行桥接整合。该项目采用 Go 语言作为后端核心，前端使用 React + TypeScript 构建管理界面，实现了统一配置管理、多平台支持、灵活的代理切换等核心功能。\n\n项目的设计理念是提供一个 **中立的中间层**，使 AI 代理能力能够通过各种通讯平台（如飞书、微信、企业微信、Telegram、Discord 等）与用户进行交互。资料来源：[AGENTS.md:1-15]()\n\n## 系统架构\n\ncc-connect 采用分层架构设计，核心模块与平台模块解耦，便于扩展和维护。\n\n```mermaid\ngraph TD\n    subgraph 前端层[\"前端层 (React + TypeScript)\"]\n        A[Web 管理界面]\n        B[Provider 管理]\n        C[Project 管理]\n        D[Session 会话]\n        E[Skills 技能]\n    end\n    \n    subgraph 核心层[\"核心层 (Go)\"]\n        F[core - 核心接口定义]\n        G[agent - 代理实现]\n        H[平台注册系统]\n        I[i18n - 国际化]\n    end\n    \n    subgraph 平台层[\"平台适配层\"]\n        J[飞书]\n        K[企业微信]\n        L[微信]\n        M[Telegram]\n        N[Discord]\n        O[Slack]\n        P[DingTalk]\n        Q[更多平台...]\n    end\n    \n    subgraph 外部服务\n        R[AI Provider]\n        S[LLM API]\n    end\n    \n    A --> F\n    B --> H\n    C --> H\n    D --> H\n    E --> H\n    F --> G\n    F --> H\n    H --> J\n    H --> K\n    H --> L\n    H --> M\n    H --> N\n    H --> O\n    H --> P\n    J --> R\n    K --> R\n    L --> R\n    M --> R\n    R --> S\n```\n\n资料来源：[AGENTS.md:9-18]()\n\n## 核心概念\n\n### Provider（提供商）\n\nProvider 是 AI 模型服务提供商的核心抽象，支持配置多个 AI 模型实例。每个 Provider 可以包含以下配置项：\n\n| 配置项 | 说明 | 可选值 |\n|--------|------|--------|\n| `name` | 提供商名称 | 字符串 |\n| `url` | API 端点地址 | URL 字符串 |\n| `model` | 默认模型标识 | 字符串 |\n| `models` | 模型列表 | 数组 |\n| `thinking` | 思考模式 | `enabled` / `disabled` |\n| `agent_types` | 支持的代理类型 | 字符串数组 |\n\n资料来源：[web/src/pages/Providers/ProviderList.tsx:1-30]()\n\n### Project（项目）\n\nProject 是工作空间的基本单位，每个项目包含独立的配置和会话管理。项目支持以下关键配置：\n\n| 配置项 | 说明 | 配置选项 |\n|--------|------|----------|\n| `workDir` | 工作目录路径 | 用户指定 |\n| `agentMode` | 权限模式 | `default` / `acceptEdits` / `plan` / `bypassPermissions` / `dontAsk` |\n| `showCtxIndicator` | 上下文指示器 | 布尔值 |\n| `replyFooter` | 回复元数据 | 布尔值 |\n\n资料来源：[web/src/pages/Projects/ProjectDetail.tsx:1-40]()\n\n### Session（会话）\n\nSession 管理与 AI 代理的交互状态，包含消息历史和实时状态：\n\n```typescript\ninterface Session {\n  id: string;\n  name: string;\n  live: boolean;           // 活跃状态\n  updated_at: string;      // 最后更新时间\n  last_message: {\n    role: 'user' | 'assistant';\n    content: string;\n  };\n}\n```\n\n资料来源：[web/src/pages/Sessions/SessionList.tsx:1-20]()\n\n### Skills（技能）\n\nSkills 系统允许扩展 AI 代理的能力，支持本地技能和预设技能库：\n\n| 技能类型 | 说明 | 配置项 |\n|----------|------|--------|\n| 本地技能 | 项目目录下定义的技能 | `project`, `agent_type`, `dirs` |\n| 预设技能 | 官方/社区提供的技能包 | `display_name`, `description`, `version`, `pricing` |\n\n资料来源：[web/src/pages/Skills/SkillList.tsx:1-50]()\n\n## 平台支持\n\ncc-connect 支持多种即时通讯平台的集成，构建时可以通过 build tags 选择性排除不需要的平台：\n\n| 平台 | Build Tag | 说明 |\n|------|-----------|------|\n| 飞书 | 默认启用 | 企业协作平台 |\n| 企业微信 | `wecom` | 企业微信集成 |\n| 微信 | `weixin` | 微信消息通道 |\n| Telegram | `telegram` | 第三方 IM |\n| Discord | `discord` | 游戏社区平台 |\n| Slack | `slack` | 企业通讯工具 |\n| DingTalk | `dingtalk` | 钉钉集成 |\n| QQ / QQBot | `qq` / `qqbot` | 腾讯 QQ |\n| LINE | `line` | 台湾地区 IM |\n| 微博 | `weibo` | 社交媒体 |\n\n禁用特定平台的编译方式：`go build -tags no_feishu no_telegram ...`\n\n资料来源：[AGENTS.md:1-8]()\n\n## 插件系统\n\ncc-connect 采用插件化架构，新增平台或代理只需遵循以下流程：\n\n### 添加新平台\n\n1. 创建 `platform/newplatform/newplatform.go`\n2. 实现 `core.Platform` 接口\n3. 在 `init()` 中注册：`core.RegisterPlatform(\"newplatform\", factory)`\n4. 创建构建插件文件：`cmd/cc-connect/plugin_platform_newplatform.go`\n5. 添加到 `Makefile` 的 `ALL_PLATFORMS`\n6. 在 `config.example.toml` 添加配置示例\n7. 编写单元测试\n\n资料来源：[AGENTS.md:9-18]()\n\n### 添加新代理\n\n1. 创建 `agent/newagent/newagent.go`\n2. 实现 `core.Agent` 和 `core.AgentSession` 接口\n3. 在 `init()` 中注册：`core.RegisterAgent(\"newagent\", factory)`\n4. 创建构建插件文件\n\n资料来源：[AGENTS.md:19-24]()\n\n## 国际化的消息提示\n\n项目内置完整的国际化（i18n）支持，支持以下语言：\n\n| 语言 | 代码 | 示例消息 |\n|------|------|----------|\n| 英语 | `en` | `Provider not found. Use /provider list` |\n| 简体中文 | `zh-CN` | `未找到 Provider，使用 /provider list` |\n| 繁体中文 | `zh-TW` | `未找到 Provider，使用 /provider list` |\n| 日语 | `ja` | `プロバイダが見つかりません` |\n| 西班牙语 | `es` | `Proveedor no encontrado` |\n\n关键消息类型包括：\n- Provider 操作消息（切换、清除、列表）\n- Workspace 操作消息（绑定、路由）\n- 错误提示与帮助信息\n\n资料来源：[core/i18n.go:1-60]()\n\n## 前端架构\n\n前端采用 React + TypeScript + TailwindCSS 构建，提供现代化的管理界面：\n\n### 主要页面模块\n\n| 模块 | 路径 | 功能 |\n|------|------|------|\n| ProviderList | `/Providers` | 全局 AI 提供商管理 |\n| ProjectList | `/Projects` | 项目列表与创建向导 |\n| ProjectDetail | `/Projects/:id` | 单个项目配置与设置 |\n| SkillList | `/Skills` | 技能管理与预设库 |\n| SessionList | `/Sessions` | 会话管理与消息历史 |\n| ChatView | `/Chat` | 实时聊天界面 |\n\n### 状态管理\n\n前端通过 React Hooks 管理状态，关键状态包括：\n- `providers`: 全局 AI 提供商列表\n- `projects`: 项目列表\n- `sessions`: 会话列表\n- `currentSession`: 当前活跃会话\n- `drawerOpen`: 会话抽屉开关状态\n- `bridgeStatus`: WebSocket 桥接状态\n\n资料来源：[web/src/pages/Chat/ChatView.tsx:1-30]()\n\n## 消息处理\n\n### 企业微信文件消息\n\n企业微信平台的文件消息采用 XML 格式传输，系统会解析以下字段：\n\n| 字段 | 说明 |\n|------|------|\n| `MsgType` | 消息类型（text/image/file 等） |\n| `MediaId` | 媒体文件 ID |\n| `FileName` | 文件名（含路径） |\n| `MsgId` | 消息唯一 ID |\n| `AgentID` | 企业应用 ID |\n\n资料来源：[platform/wecom/inbound_file_test.go:1-25]()\n\n## 项目构建与测试\n\n### 构建检查清单\n\n提交代码前必须通过以下检查：\n\n1. **编译通过**：`go build ./...`\n2. **测试通过**：`go test ./...`\n3. **无硬编码**：核心代码中无平台名称硬编码\n4. **国际化完整**：新增用户可见字符串需包含所有语言翻译\n5. **无敏感信息**：源码中不包含 API Key、Token 等凭据\n\n资料来源：[AGENTS.md:25-32]()\n\n## 技术栈总结\n\n| 层级 | 技术选型 |\n|------|----------|\n| 后端核心 | Go 1.x |\n| 前端框架 | React 18 + TypeScript |\n| UI 样式 | TailwindCSS |\n| 状态管理 | React Hooks |\n| 国际化 | 自定义 i18n 模块 |\n| 构建工具 | Vite（前端）+ Makefile（后端） |\n| 测试框架 | Go testing |\n\n资料来源：[web/index.html:1-10]()\n\n## 设计理念\n\ncc-connect 的核心设计原则：\n\n1. **模块化解耦**：核心接口与平台实现分离，便于独立演进\n2. **可插拔架构**：通过 build tags 实现平台按需编译\n3. **统一配置管理**：通过 Web UI 或配置文件集中管理所有设置\n4. **多语言支持**：内置 5 种语言的国际化消息\n5. **开发者友好**：提供清晰的插件开发指南和代码规范\n\n这种设计使得 cc-connect 能够灵活适应不同的部署场景，既可以作为单一平台桥接工具，也可以扩展为完整的多平台 AI 代理中控系统。\n\n---\n\n<a id='architecture'></a>\n\n## 系统架构\n\n### 相关页面\n\n相关主题：[项目概述](#overview), [核心接口定义](#core-interfaces), [Bridge 协议](#bridge-protocol)\n\n<details>\n<summary>相关源码文件</summary>\n\n以下源码文件用于生成本页说明：\n\n- [core/engine.go](https://github.com/chenhg5/cc-connect/blob/main/core/engine.go)\n- [core/bridge.go](https://github.com/chenhg5/cc-connect/blob/main/core/bridge.go)\n- [core/registry.go](https://github.com/chenhg5/cc-connect/blob/main/core/registry.go)\n- [web/src/pages/Providers/ProviderList.tsx](https://github.com/chenhg5/cc-connect/blob/main/web/src/pages/Providers/ProviderList.tsx)\n- [web/src/pages/Projects/ProjectDetail.tsx](https://github.com/chenhg5/cc-connect/blob/main/web/src/pages/Projects/ProjectDetail.tsx)\n- [web/src/pages/Sessions/SessionChat.tsx](https://github.com/chenhg5/cc-connect/blob/main/web/src/pages/Sessions/SessionChat.tsx)\n- [web/src/api/client.ts](https://github.com/chenhg5/cc-connect/blob/main/web/src/api/client.ts)\n- [INSTALL.md](https://github.com/chenhg5/cc-connect/blob/main/INSTALL.md)\n- [AGENTS.md](https://github.com/chenhg5/cc-connect/blob/main/AGENTS.md)\n</details>\n\n# 系统架构\n\n## 概述\n\ncc-connect 是一个连接本地 AI 编程助手与即时通讯平台的中间件系统。其核心架构采用模块化设计，将 AI Agent（Claude Code、Codex、Cursor 等）、消息平台（Discord、Telegram、飞书等）和会话管理解耦，通过统一的引擎层进行协调调度。\n\n架构设计遵循以下核心原则：\n\n- **插件化平台支持**：通过 `core.RegisterPlatform` 注册机制支持新平台的热插拔\n- **多项目隔离**：每个项目拥有独立的工作目录、Agent 配置和会话上下文\n- **统一消息协议**：不同平台的消息统一转换为内部标准格式进行处理\n- **前端分离**：Web 管理界面与后端核心服务通过 REST API 解耦\n\n## 核心架构图\n\n```mermaid\ngraph TB\n    subgraph 前端层[\"前端层 (React + TypeScript)\"]\n        UI[Web Admin UI]\n        API[API Client]\n    end\n    \n    subgraph 后端核心[\"后端核心 (Go)\"]\n        ENG[Engine 引擎]\n        BRG[Bridge 网桥]\n        REG[Registry 注册表]\n    end\n    \n    subgraph Agent层[\"Agent 层\"]\n        CLAUDE[Claude Code]\n        CODEX[Codex]\n        CURSOR[Cursor]\n        GEMINI[Gemini CLI]\n        QODER[Qoder]\n        OPENCODE[OpenCode]\n        IFLOW[iFlow]\n    end\n    \n    subgraph 平台层[\"平台层 (Platform Plugins)\"]\n        DISCORD[Discord]\n        TELEGRAM[Telegram]\n        FEISHU[飞书]\n        SLACK[Slack]\n        DINGTALK[钉钉]\n        WECOM[企业微信]\n        WECHAT[微信]\n        QQ[QQ/QQBot]\n        LINE[Line]\n        WEIBO[微博]\n    end\n    \n    UI --> API\n    API --> ENG\n    ENG <--> BRG\n    ENG <--> REG\n    ENG <--> CLAUDE\n    ENG <--> CODEX\n    ENG <--> CURSOR\n    ENG <--> GEMINI\n    ENG <--> QODER\n    ENG <--> OPENCODE\n    ENG <--> IFLOW\n    BRG <--> DISCORD\n    BRG <--> TELEGRAM\n    BRG <--> FEISHU\n    BRG <--> SLACK\n    BRG <--> DINGTALK\n    BRG <--> WECOM\n    BRG <--> WECHAT\n    BRG <--> QQ\n    BRG <--> LINE\n    BRG <--> WEIBO\n```\n\n## 核心组件\n\n### Engine（引擎）\n\nEngine 是系统的核心调度器，负责协调 Agent 与平台之间的通信。从前端代码可以看到，Engine 处理以下关键功能：\n\n- **Provider 管理**：管理 AI 模型提供商配置，包括 `base_url`、`model`、`thinking` 等参数\n- **会话管理**：维护多个会话（Session）的生命周期，包括连接状态、消息历史\n- **命令路由**：解析和执行用户命令，如 `/provider switch`、`/workspace bind` 等\n\n```typescript\n// 资料来源：web/src/pages/Providers/ProviderList.tsx:50-60\ninterface Provider {\n  name: string;\n  base_url?: string;\n  model: string;\n  models?: { model: string }[];\n  thinking?: string;\n  agent_types?: string[];\n  endpoints?: Record<string, string>;\n  agent_models?: Record<string, string>;\n  agent_model_lists?: Record<string, string[]>;\n}\n```\n\n### Bridge（网桥）\n\nBridge 负责维护与各消息平台的实时连接状态，实现消息的双向转发：\n\n- **连接状态管理**：追踪 `connecting`、`connected`、`disconnected`、`error` 等状态\n- **消息编码/解码**：将内部消息格式与各平台专有格式相互转换\n- **心跳机制**：通过心跳保持与平台的长连接活跃\n\n```typescript\n// 资料来源：web/src/pages/Sessions/SessionChat.tsx:30-40\nbridgeStatus === 'connected'  // 连接正常\nbridgeStatus === 'connecting' // 连接中\nbridgeStatus === 'disconnected' // 已断开\nbridgeStatus === 'error' // 连接错误\n```\n\n### Registry（注册表）\n\nRegistry 实现了 Agent 和 Platform 的注册发现机制：\n\n- **Agent 注册**：`core.RegisterAgent(\"agentname\", factory)` 将新的 Agent 类型注册到系统\n- **Platform 注册**：`core.RegisterPlatform(\"platformname\", factory)` 将新的消息平台接入系统\n- **工厂模式**：通过工厂函数延迟实例化，确保按需加载\n\n## Agent 架构\n\n### 支持的 Agent 类型\n\n| Agent 类型 | 标识符 | 配置项 | 说明 |\n|-----------|--------|--------|------|\n| Claude Code | `claudecode` | `work_dir`, `mode` | Anthropic 官方 CLI |\n| Codex | `codex` | `work_dir`, `mode` | OpenAI Codex |\n| Cursor | `cursor` | `work_dir`, `mode` | Cursor IDE |\n| Gemini CLI | `gemini` | `work_dir`, `mode` | Google Gemini CLI |\n| Qoder | `qoder` | `work_dir`, `mode` | Qoder CLI |\n| OpenCode | `opencode` | `work_dir`, `mode` | OpenCode CLI |\n| iFlow | `iflow` | `work_dir`, `mode` | iFlow CLI |\n\n### Agent 配置选项\n\n```toml\n# 资料来源：INSTALL.md:80-90\n[projects.agent]\ntype = \"claudecode\"  # 或 \"codex\", \"cursor\", \"gemini\", \"qoder\", \"opencode\", \"iflow\"\n\n[projects.agent.options]\nwork_dir = \"/absolute/path/to/your/project\"\nmode = \"default\"     # 或 \"acceptEdits\", \"plan\", \"bypassPermissions\", \"dontAsk\"\n```\n\n### Agent 模式说明\n\n| 模式 | 标识符 | 权限级别 | 说明 |\n|------|--------|----------|------|\n| 默认 | `default` | 标准 | 正常权限运行 |\n| 编辑 | `acceptEdits` | 中等 | 自动接受代码编辑建议 |\n| 计划 | `plan` | 只读 | 仅生成计划不执行 |\n| 放行 | `bypassPermissions` | 最高 | 跳过所有权限检查 |\n| 不询问 | `dontAsk` | 高 | 不等待确认直接执行 |\n\n## 平台架构\n\n### 支持的消息平台\n\ncc-connect 通过插件化架构支持多种即时通讯平台：\n\n| 平台 | 标识符 | 消息类型 | 特性 |\n|------|--------|----------|------|\n| Discord | `discord` | 文本/文件/图片 | Webhook + Bot |\n| Telegram | `telegram` | 文本/文件/图片 | Bot API |\n| 飞书 | `feishu` | 文本/文件 | 机器人 |\n| Slack | `slack` | 文本/文件 | Webhook/Bot |\n| 钉钉 | `dingtalk` | 文本/文件 | 机器人 |\n| 企业微信 | `wecom` | 文本/文件 | 企业机器人 |\n| 微信 | `weixin` | 文本/文件 | 公众号/企业微信 |\n| QQ | `qq`/`qqbot` | 文本/文件 | QQ 机器人 |\n| Line | `line` | 文本 | Line Bot |\n| 微博 | `weibo` | 文本 | 微博消息 |\n\n### 平台注册机制\n\n新增平台需要完成以下步骤：\n\n1. 创建平台目录 `platform/<platformname>/`\n2. 实现 `core.Platform` 接口\n3. 在 `init()` 函数中调用 `core.RegisterPlatform()`\n4. 创建构建标签文件 `cmd/cc-connect/plugin_platform_<platformname>.go`\n5. 添加到 `Makefile` 的 `ALL_PLATFORMS` 变量\n\n```go\n// 资料来源：AGENTS.md:25-30\n// 伪代码示例\nfunc init() {\n    core.RegisterPlatform(\"newplatform\", newPlatformFactory)\n}\n```\n\n## 会话管理架构\n\n### 会话生命周期\n\n```mermaid\nstateDiagram-v2\n    [*] --> 创建中: 新建项目\n    创建中 --> 活跃: 连接成功\n    活跃 --> 等待中: 消息发送\n    等待中 --> 活跃: 响应接收\n    活跃 --> 断开: 关闭连接\n    断开 --> 活跃: 重新连接\n    活跃 --> [*]: 项目删除\n```\n\n### 会话数据结构\n\n```typescript\n// 资料来源：web/src/pages/Sessions/SessionList.tsx:20-35\ninterface Session {\n  id: string;\n  name?: string;\n  user_name?: string;\n  live: boolean;           // 是否活跃\n  last_message?: {\n    role: 'user' | 'assistant';\n    content: string;\n  };\n  updated_at?: string;\n  created_at?: string;\n}\n```\n\n## API 架构\n\n### API 客户端设计\n\n前端通过统一的 `ApiClient` 类与后端通信：\n\n```typescript\n// 资料来源：web/src/api/client.ts:1-30\nclass ApiClient {\n  get<T>(path: string, params?: Record<string, string>): Promise<T>\n  post<T>(path: string, body?: any): Promise<T>\n  put<T>(path: string, body?: any): Promise<T>\n  patch<T>(path: string, body?: any): Promise<T>\n  delete<T>(path: string): Promise<T>\n  raw(path: string): Promise<string>  // 非 JSON 响应\n}\n```\n\n### 认证机制\n\nAPI 使用 Bearer Token 进行认证：\n\n```typescript\n// 资料来源：web/src/api/client.ts:20-25\nconst h: HeadersInit = {};\nif (this.token) h['Authorization'] = `Bearer ${this.token}`;\n```\n\n## 项目配置架构\n\n### 配置层级\n\n```mermaid\ngraph TD\n    A[config.toml] --> B[全局设置]\n    A --> C[[projects]]\n    C --> D[项目 1]\n    C --> E[项目 N]\n    D --> F[agent 配置]\n    D --> G[platforms 配置]\n    F --> H[type]\n    F --> I[options]\n    G --> J[platform 类型]\n    G --> K[webhook/token]\n```\n\n### 配置示例\n\n```toml\n# 资料来源：INSTALL.md:40-70\n[log]\nlevel = \"info\"  # debug, info, warn, error\n\n[[projects]]\nname = \"my-project\"\n\n[projects.agent]\ntype = \"claudecode\"\n[projects.agent.options]\nwork_dir = \"/path/to/project\"\nmode = \"default\"\n```\n\n## 工作目录隔离\n\n每个项目拥有独立的工作目录，确保项目间环境互不影响：\n\n```typescript\n// 资料来源：web/src/pages/Projects/ProjectDetail.tsx:10-15\n<Input\n  label={t('projects.workDir', 'Working directory')}\n  value={workDir}\n  onChange={(e) => setWorkDir(e.target.value)}\n  placeholder=\"/path/to/project\"\n/>\n```\n\n## 消息流转架构\n\n```mermaid\nsequenceDiagram\n    participant User as 用户\n    participant Platform as 消息平台\n    participant Bridge as Bridge\n    participant Engine as Engine\n    participant Agent as AI Agent\n    \n    User->>Platform: 发送消息\n    Platform->>Bridge: 接收消息\n    Bridge->>Engine: 转发消息\n    Engine->>Agent: 转发给 Agent\n    Agent-->>Engine: 生成响应\n    Engine-->>Bridge: 返回响应\n    Bridge-->>Platform: 推送消息\n    Platform-->>User: 显示响应\n```\n\n## 前端技术栈\n\n| 层级 | 技术 | 职责 |\n|------|------|------|\n| UI 框架 | React 18 | 组件化开发 |\n| 语言 | TypeScript | 类型安全 |\n| 样式 | Tailwind CSS | 原子化样式 |\n| 状态管理 | React Hooks | 本地状态 |\n| 路由 | React Router | 页面导航 |\n| HTTP | Fetch API | 服务端通信 |\n\n### 前端页面结构\n\n| 页面 | 路径 | 功能 |\n|------|------|------|\n| ProviderList | `/providers` | AI 提供商管理 |\n| ProjectList | `/projects` | 项目列表 |\n| ProjectDetail | `/projects/:id` | 项目配置 |\n| SessionList | `/sessions` | 会话列表 |\n| SessionChat | `/sessions/:id/chat` | 聊天界面 |\n| SkillList | `/skills` | 技能管理 |\n\n## 国际化\n\n系统支持多语言界面，通过统一的翻译函数实现：\n\n```go\n// 资料来源：core/i18n.go:10-40\nMsgProviderSwitchHint: {\n    LangEnglish:            \"`/provider switch <name>` to switch\",\n    LangChinese:            \"`/provider switch <名称>` 切换\",\n    LangTraditionalChinese: \"`/provider switch <名稱>` 切換\",\n    LangJapanese:           \"`/provider switch <名前>` で切り替え\",\n    LangSpanish:            \"`/provider switch <nombre>` para cambiar\",\n}\n```\n\n支持语言：`en`（英语）、`zh`（简体中文）、`zh-TW`（繁体中文）、`ja`（日语）、`es`（西班牙语）\n\n## 构建与部署\n\n### 构建标签\n\ncc-connect 使用 Go 构建标签实现平台和 Agent 的条件编译：\n\n```bash\n# 资料来源：AGENTS.md:30-35\n//go:build !no_discord\n//go:build !no_telegram\n//go:build !no_feishu\n```\n\n通过 `make build` 或 `make build PLATFORMS=\"discord,telegram\"` 构建特定平台版本。\n\n### 配置文件优先级\n\n1. `-config <path>` 命令行参数\n2. `./config.toml` 当前目录\n3. `~/.cc-connect/config.toml` 全局配置（推荐）\n\n## 扩展指南\n\n### 新增 Agent 步骤\n\n1. 创建 `agent/<agentname>/<agentname>.go`\n2. 实现 `core.Agent` 和 `core.AgentSession` 接口\n3. 在 `init()` 中调用 `core.RegisterAgent()`\n4. 创建 `cmd/cc-connect/plugin_agent_<agentname>.go`\n5. 添加到 `Makefile` 的 `ALL_AGENTS`\n\n### 新增平台步骤\n\n1. 创建 `platform/<platformname>/<platformname>.go`\n2. 实现 `core.Platform` 接口\n3. 在 `init()` 中调用 `core.RegisterPlatform()`\n4. 创建 `cmd/cc-connect/plugin_platform_<platformname>.go`\n5. 添加到 `Makefile` 的 `ALL_PLATFORMS`\n\n## 总结\n\ncc-connect 采用清晰的分层架构设计：\n\n- **前端层**：React + TypeScript 构建的管理界面\n- **核心层**：Engine、Bridge、Registry 组成的调度核心\n- **Agent 层**：支持多种 AI 编程助手的统一抽象\n- **平台层**：插件化的即时通讯平台集成\n\n这种架构使得系统具有良好的可扩展性和可维护性，能够方便地接入新的 Agent 类型和消息平台，同时保持核心逻辑的稳定性。\n\n---\n\n<a id='core-interfaces'></a>\n\n## 核心接口定义\n\n### 相关页面\n\n相关主题：[系统架构](#architecture), [Bridge 协议](#bridge-protocol)\n\n<details>\n<summary>相关源码文件</summary>\n\n以下源码文件用于生成本页说明：\n\n- [AGENTS.md](https://github.com/chenhg5/cc-connect/blob/main/AGENTS.md)\n- [core/i18n.go](https://github.com/chenhg5/cc-connect/blob/main/core/i18n.go)\n- [CONTRIBUTING.md](https://github.com/chenhg5/cc-connect/blob/main/CONTRIBUTING.md)\n- [INSTALL.md](https://github.com/chenhg5/cc-connect/blob/main/INSTALL.md)\n- [web/src/pages/Providers/ProviderList.tsx](https://github.com/chenhg5/cc-connect/blob/main/web/src/pages/Providers/ProviderList.tsx)\n</details>\n\n# 核心接口定义\n\n## 概述\n\ncc-connect 是一个将 AI 编码代理（如 Claude Code、Codex、Cursor 等）与多种消息平台（飞书、Telegram、Discord 等）连接的基础设施项目。其核心架构基于**接口驱动设计**，通过抽象层解耦代理实现与平台接入，使系统具备高度可扩展性。\n\n核心接口体系包含三大支柱：\n\n| 接口类别 | 作用 | 关键文件 |\n|---------|------|---------|\n| **Agent 接口** | 定义 AI 代理的标准行为 | `agent/*/` |\n| **Platform 接口** | 定义消息平台的标准行为 | `platform/*/` |\n| **Provider 接口** | 定义模型供应商配置 | `core/provider.go` |\n\n资料来源：[AGENTS.md:1-20]()\n\n## 接口架构图\n\n```mermaid\ngraph TD\n    subgraph \"接入层 (Platform)\"\n        P1[Feishu]\n        P2[Telegram]\n        P3[Discord]\n        P4[Slack]\n    end\n    \n    subgraph \"核心层 (Core)\"\n        Core[Core Engine]\n        Provider[Provider Manager]\n        Session[Session Manager]\n    end\n    \n    subgraph \"代理层 (Agent)\"\n        A1[Claude Code]\n        A2[Codex]\n        A3[Cursor]\n        A4[Gemini]\n    end\n    \n    P1 & P2 & P3 & P4 --> Core\n    Core --> Provider\n    Core --> Session\n    Session --> A1 & A2 & A3 & A4\n    \n    style Core fill:#e1f5fe\n    style Provider fill:#fff3e0\n    style Session fill:#e8f5e9\n```\n\n## 代理接口体系\n\n### Agent 接口\n\n每个 AI 代理必须实现 `core.Agent` 和 `core.AgentSession` 接口。这种设计允许同一代理类型在不同工作目录下运行多个独立会话。\n\n代理注册通过 `init()` 函数完成：\n\n```go\ncore.RegisterAgent(\"newagent\", factory)\n```\n\n资料来源：[AGENTS.md:35-44]()\n\n### 支持的代理类型\n\n| 代理类型 | 构建标签 | 配置标识 |\n|---------|---------|---------|\n| Claude Code | `no_claudecode` | `claudecode` |\n| Codex | `no_codex` | `codex` |\n| Cursor | `no_cursor` | `cursor` |\n| Gemini | `no_gemini` | `gemini` |\n| iFlow | `no_iflow` | `iflow` |\n| OpenCode | `no_opencode` | `opencode` |\n| Qoder | `no_qoder` | `qoder` |\n| ACP | `no_acp` | `acp` |\n\n资料来源：[AGENTS.md:43-52]()\n\n### 代理配置选项\n\n代理的 `options` 配置块支持以下参数：\n\n| 参数 | 说明 | 可选值 |\n|------|------|--------|\n| `type` | 代理类型 | `claudecode`, `codex`, `cursor` 等 |\n| `work_dir` | 工作目录路径 | 绝对路径 |\n| `mode` | 运行模式 | `default`, `acceptEdits`, `plan`, `bypassPermissions`, `dontAsk` |\n\n资料来源：[INSTALL.md:28-42]()\n\n```toml\n[projects.agent]\ntype = \"claudecode\"\n[projects.agent.options]\nwork_dir = \"/absolute/path/to/your/project\"\nmode = \"default\"  # 或 acceptEdits, plan, bypassPermissions, dontAsk\n```\n\n## 平台接口体系\n\n### Platform 接口\n\n消息平台通过实现 `core.Platform` 接口接入系统。接口支持可选扩展以提供更丰富的功能。\n\n平台注册同样通过 `init()` 函数：\n\n```go\ncore.RegisterPlatform(\"newplatform\", factory)\n```\n\n资料来源：[AGENTS.md:17-33]()\n\n### 支持的平台类型\n\n| 平台 | 构建标签 | 配置标识 |\n|------|---------|---------|\n| 飞书 | `no_feishu` | `feishu` |\n| Telegram | `no_telegram` | `telegram` |\n| Discord | `no_discord` | `discord` |\n| Slack | `no_slack` | `slack` |\n| 钉钉 | `no_dingtalk` | `dingtalk` |\n| 企业微信 | `no_wecom` | `wecom` |\n| 微信 | `no_weixin` | `weixin` |\n| QQ | `no_qq` | `qq` |\n| QQ 机器人 | `no_qqbot` | `qqbot` |\n| LINE | `no_line` | `line` |\n| 微博 | `no_weibo` | `weibo` |\n\n资料来源：[AGENTS.md:1-15]()\n\n### 平台编译策略\n\ncc-connect 采用**构建标签（Build Tags）** 实现选择性编译，每个平台/代理通过独立的 `plugin_*.go` 文件导入：\n\n```go\n//go:build !no_feishu\n```\n\n#### 编译命令示例\n\n| 场景 | 命令 |\n|------|------|\n| 排除指定平台 | `go build -tags 'no_discord no_dingtalk'` |\n| 仅包含特定代理 | `make build AGENTS=claudecode` |\n| 仅包含特定平台 | `make build PLATFORMS_INCLUDE=feishu,telegram` |\n| 排除多个组件 | `make build EXCLUDE=discord,dingtalk,qq` |\n\n资料来源：[AGENTS.md:70-91]()\n\n## Provider 接口体系\n\n### Provider 管理\n\nProvider 负责管理与 AI 模型的连接配置，支持多种模型供应商的统一抽象。\n\n### Provider 配置结构\n\n```toml\n[[projects.providers]]\nname = \"provider-name\"\ntype = \"openai\"  # 或 anthropic, google 等\nbase_url = \"https://api.example.com/v1\"\nmodel = \"gpt-4\"\nthinking = \"\"  # 支持 thinking 特性\n```\n\nProvider 配置可通过 Web 界面或配置文件管理，支持预设模板导入。\n\n资料来源：[web/src/pages/Providers/ProviderList.tsx:1-50]()\n\n### Provider 预设系统\n\n系统内置 Provider 预设，支持一键配置常用供应商：\n\n| 预设属性 | 说明 |\n|---------|------|\n| `tier` | 层级排序 |\n| `thinking` | 是否支持思考模式 |\n| `agent_types` | 支持的代理类型列表 |\n| `endpoints` | 自定义端点映射 |\n| `agent_models` | 代理特定模型配置 |\n| `agent_model_lists` | 模型列表配置 |\n\n资料来源：[web/src/pages/Providers/ProviderList.tsx:80-95]()\n\n## Session 管理\n\n### 会话生命周期\n\n会话（Session）是连接平台消息与代理执行的桥梁。每个会话独立维护上下文状态。\n\n会话支持以下操作：\n\n- `/workspace bind <workspace-name>` - 绑定工作区\n- `/workspace route <absolute-path>` - 设置路由路径\n- `/provider switch <name>` - 切换 Provider\n- `/provider clear` - 清除 Provider 选择\n\n资料来源：[core/i18n.go:50-100]()\n\n### 会话状态消息\n\n| 消息键 | 英文 | 中文 |\n|-------|------|------|\n| `MsgWsBindSuccess` | ✅ Workspace bound | ✅ 工作区绑定成功 |\n| `MsgWsBindNotFound` | Workspace not found | 工作区不存在 |\n| `MsgProviderSwitched` | ✅ Provider switched | ✅ Provider 已切换 |\n| `MsgProviderNotFound` | ❌ Provider not found | ❌ 未找到 Provider |\n\n资料来源：[core/i18n.go:1-80]()\n\n## 项目配置模型\n\n### 完整配置结构\n\n```toml\n[[projects]]\nname = \"my-project\"\n\n[projects.agent]\ntype = \"claudecode\"\n[projects.agent.options]\nwork_dir = \"/absolute/path/to/your/project\"\nmode = \"default\"\n\n# 平台配置\n[projects.platform]\ntype = \"feishu\"\n# ... 平台特定配置\n\n# Provider 配置\n[[projects.providers]]\nname = \"openai\"\nmodel = \"gpt-4\"\n\n# 心跳配置（可选）\n[projects.heartbeat]\ninterval_mins = 5\n```\n\n资料来源：[INSTALL.md:20-50]()\n\n### 项目级功能开关\n\n| 功能 | 配置项 | 说明 |\n|------|--------|------|\n| 上下文指示器 | `show_ctx_indicator` | 在回复后显示 `[ctx: ~N%]` |\n| 回复页脚 | `reply_footer` | 追加模型/用量元数据 |\n\n资料来源：[web/src/pages/Projects/ProjectDetail.tsx:50-80]()\n\n## 国际化接口\n\n### 消息定义格式\n\n系统使用统一的国际化消息接口，支持多语言：\n\n| 语言 | 代码 | 说明 |\n|------|------|------|\n| 英语 | `en` | 默认语言 |\n| 中文 | `zh` | 简体中文 |\n| 繁体中文 | `zh-TW` | 繁体中文 |\n| 日语 | `ja` | 日语 |\n| 西班牙语 | `es` | 西班牙语 |\n\n消息定义示例：\n\n```go\nMsgProviderNotFound: {\n    LangEnglish:            \"❌ Provider %q not found...\",\n    LangChinese:            \"❌ 未找到 Provider %q...\",\n    LangTraditionalChinese: \"❌ 未找到 Provider %q...\",\n    LangJapanese:           \"❌ プロバイダ %q が見つかりません...\",\n    LangSpanish:            \"❌ Proveedor %q no encontrado...\",\n},\n```\n\n资料来源：[core/i18n.go:1-50]()\n\n## 扩展开发指南\n\n### 新增代理步骤\n\n1. 创建 `agent/newagent/newagent.go`\n2. 实现 `core.Agent` 和 `core.AgentSession` 接口\n3. 在 `init()` 中注册：`core.RegisterAgent(\"newagent\", factory)`\n4. 创建 `cmd/cc-connect/plugin_agent_newagent.go` 含构建标签\n5. 添加到 `Makefile` 的 `ALL_AGENTS`\n6. 在 `config.example.toml` 添加配置示例\n7. 编写单元测试\n\n资料来源：[AGENTS.md:35-51]()\n\n### 新增平台步骤\n\n1. 创建 `platform/newplatform/newplatform.go`\n2. 实现 `core.Platform` 接口\n3. 在 `init()` 中注册：`core.RegisterPlatform(\"newplatform\", factory)`\n4. 创建构建标签文件\n5. 添加到编译配置\n6. 添加配置示例和测试\n\n资料来源：[AGENTS.md:17-33]()\n\n## 测试规范\n\n### 接口测试要点\n\n| 测试类别 | 测试方法 |\n|---------|---------|\n| 代理测试 | 使用 channels 模拟事件流 |\n| 平台测试 | 模拟消息接收和响应 |\n| 卡片渲染 | 检查返回的 `*Card` 结构体 |\n| 会话测试 | 通过 channels 模拟事件流 |\n\n资料来源：[AGENTS.md:60-65]()\n\n## 编译检查清单\n\n新增代码必须通过以下检查：\n\n| 检查项 | 命令 | 说明 |\n|--------|------|------|\n| 构建测试 | `go build ./...` | 确保无编译错误 |\n| 单元测试 | `go test ./...` | 所有测试通过 |\n| 硬编码检查 | `grep` 检查 | core 目录无平台/代理硬编码名称 |\n| 国际化 | 检查 | 所有用户可见字符串有翻译 |\n| 敏感信息 | 检查 | 代码中无 API keys、tokens |\n\n资料来源：[AGENTS.md:22-31]()\n\n## 总结\n\ncc-connect 的核心接口体系采用简洁而强大的设计：\n\n- **接口抽象**：通过 `Agent`、`Platform`、`Provider` 三大接口抽象不同实现\n- **插件化编译**：使用构建标签实现按需编译，减少二进制体积\n- **国际化优先**：所有用户可见文本通过统一的 i18n 接口管理\n- **配置驱动**：通过 TOML 配置文件灵活管理项目设置\n\n这种设计使开发者能够以一致的方式添加新的代理类型或消息平台，同时保持核心引擎的稳定性和可测试性。\n\n---\n\n<a id='bridge-protocol'></a>\n\n## Bridge 协议\n\n### 相关页面\n\n相关主题：[核心接口定义](#core-interfaces)\n\n<details>\n<summary>相关源码文件</summary>\n\n以下源码文件用于生成本页说明：\n\n- [core/bridge.go](https://github.com/chenhg5/cc-connect/blob/main/core/bridge.go)\n- [core/bridge_capabilities.go](https://github.com/chenhg5/cc-connect/blob/main/core/bridge_capabilities.go)\n- [web/src/pages/Sessions/SessionChat.tsx](https://github.com/chenhg5/cc-connect/blob/main/web/src/pages/Sessions/SessionChat.tsx)\n- [web/src/pages/Chat/ChatView.tsx](https://github.com/chenhg5/cc-connect/blob/main/web/src/pages/Chat/ChatView.tsx)\n- [web/src/api/client.ts](https://github.com/chenhg5/cc-connect/blob/main/web/src/api/client.ts)\n</details>\n\n# Bridge 协议\n\n## 概述\n\nBridge 协议是 cc-connect 项目中的核心通信机制，用于在 Web 前端与后端引擎之间建立双向实时通信通道。它通过 WebSocket 技术实现低延迟的消息传递，支持多项目引擎管理、命令发布与订阅、以及卡片导航功能。\n\nBridge 协议的核心组件位于 `core/bridge.go` 和 `core/bridge_capabilities.go` 中，为整个应用提供可靠的前后端桥接能力。\n\n---\n\n## 架构设计\n\n### 组件关系图\n\n```mermaid\ngraph TD\n    A[Web 前端] <-->|WebSocket| B[BridgeServer]\n    B --> C[BridgePlatform]\n    B --> D[bridgeAdapter]\n    C --> E[Engine]\n    E --> F[bridgeEngineRef]\n    G[Providers] --> E\n    H[Skills] --> E\n```\n\n### 核心数据结构\n\n| 组件 | 文件位置 | 职责 |\n|------|---------|------|\n| `BridgeServer` | `core/bridge.go` | WebSocket 服务器主控，管理多个项目平台 |\n| `BridgePlatform` | `core/bridge.go` | 单个项目的通信平台实例 |\n| `bridgeAdapter` | `core/bridge.go` | 消息适配器，处理协议转换 |\n| `bridgeEngineRef` | `core/bridge.go` | 引擎引用，管理引擎生命周期 |\n| `Engine` | `core/bridge.go` | 具体项目引擎实现 |\n\n资料来源：[core/bridge.go:47-61]()\n\n---\n\n## BridgeServer 配置与初始化\n\n### 配置参数\n\n`NewBridgeServer` 函数负责创建 Bridge 服务器实例，支持以下配置选项：\n\n| 参数 | 类型 | 默认值 | 说明 |\n|------|------|--------|------|\n| `port` | int | 9810 | WebSocket 服务端口 |\n| `path` | string | `/bridge/ws` | WebSocket 路径（自动补全前缀 `/`）|\n| `token` | string | - | 认证令牌，insecure 模式下可为空 |\n| `insecure` | bool | false | 是否启用非安全模式（仅限本地开发）|\n| `corsOrigins` | []string | - | CORS 允许的源列表 |\n\n资料来源：[core/bridge.go:47-59]()\n\n### 安全机制\n\nBridge 协议实现了严格的安全验证：\n\n```go\n// Validate security settings\nif token == \"\" && !insecure {\n    slog.Error(\"bridge: token is required when insecure mode is not enabled\",\n        \"help\", \"set bridge.token in config, or use insecure=true for local development only\")\n    return nil\n}\nif insecure && token == \"\" {\n    slog.Warn(\"bridge: running in INSECURE mode without authentication - only use for local development!\")\n}\n```\n\n资料来源：[core/bridge.go:63-73]()\n\n**安全规则：**\n- 生产环境必须配置 `token`\n- `insecure` 模式仅用于本地开发\n- 未配置 token 且未启用 insecure 模式时，服务器启动失败\n\n---\n\n## 项目引擎管理\n\n### 注册引擎\n\n使用 `RegisterEngine` 方法将项目引擎注册到 Bridge 服务器：\n\n```go\nfunc (bs *BridgeServer) RegisterEngine(projectName string, engine *Engine, bp *BridgePlatform) {\n    bs.enginesMu.Lock()\n    defer bs.enginesMu.Unlock()\n    if err := bp.Start(engine.handleMessage); err != nil {\n        slog.Warn(\"bridge: platform start failed\", \"project\", projectName, \"error\", err)\n    }\n    bp.SetCardNavigationHandler(engine.handleCardNav)\n}\n```\n\n资料来源：[core/bridge.go:83-92]()\n\n### 创建平台实例\n\n每个项目引擎对应一个独立的 `BridgePlatform` 实例：\n\n```go\nfunc (bs *BridgeServer) NewPlatform(projectName string) *BridgePlatform {\n    return &BridgePlatform{server: bs, project: projectName}\n}\n```\n\n资料来源：[core/bridge.go:76-79]()\n\n---\n\n## 能力快照机制\n\n### 快照数据结构\n\n`bridgeCapabilitiesSnapshot` 定义了 Bridge 协议的能力快照格式：\n\n```go\ntype bridgeCapabilitiesSnapshot struct {\n    Type    string                           `json:\"type\"`\n    Version int                              `json:\"version\"`\n    Host    bridgeCapabilitiesHost            `json:\"host\"`\n    Projects []bridgeProjectCapabilities      `json:\"projects\"`\n}\n\ntype bridgeCapabilitiesHost struct {\n    ID               string `json:\"id\"`\n    Hostname         string `json:\"hostname\"`\n    CCConnectVersion string `json:\"ccconnect_version\"`\n    Commit           string `json:\"commit\"`\n    BuildTime        string `json:\"build_time\"`\n}\n\ntype bridgeProjectCapabilities struct {\n    Project  string   `json:\"project\"`\n    Commands []string `json:\"commands\"`\n}\n```\n\n资料来源：[core/bridge_capabilities.go:1-35]()\n\n### 获取能力快照\n\n能力快照通过以下流程生成：\n\n```mermaid\ngraph TD\n    A[请求能力快照] --> B[获取所有项目名称]\n    B --> C[排序项目列表]\n    C --> D{遍历每个项目}\n    D -->|获取引擎| E[bridgeEngineRef]\n    E --> F[获取发布命令]\n    F --> G[构建快照数据]\n    G --> H[返回 JSON 响应]\n```\n\n资料来源：[core/bridge_capabilities.go:4-28]()\n\n---\n\n## 前端集成\n\n### 连接状态管理\n\nWeb 前端通过 `web/src/api/client.ts` 中的 API 客户端与 Bridge 服务器通信：\n\n```typescript\nexport class ApiClient {\n  async raw(path: string): Promise<string> {\n    const h: HeadersInit = {};\n    if (this.token) h['Authorization'] = `Bearer ${this.token}`;\n    const res = await fetch(`${API_BASE}${path}`, { headers: h });\n    if (res.status === 401 && this.onUnauthorized) {\n      this.onUnauthorized();\n      throw new ApiError('Unauthorized', 401);\n    }\n    if (!res.ok) throw new ApiError(res.statusText, res.status);\n    return res.text();\n  }\n}\n```\n\n资料来源：[web/src/api/client.ts:1-50]()\n\n### 连接状态展示\n\n前端 UI 根据 Bridge 连接状态显示不同的界面：\n\n| 状态 | 样式 | 消息键名 |\n|------|------|----------|\n| `connected` | 绿色图标 | `sessions.bridgeConnected` |\n| `error` | 琥珀色警告 | `sessions.bridgeDisconnected` |\n| `connecting` | 灰色加载动画 | `sessions.bridgeConnecting` |\n\n资料来源：[web/src/pages/Sessions/SessionChat.tsx:1-20]()\n资料来源：[web/src/pages/Chat/ChatView.tsx:1-15]()\n\n**连接中状态 UI：**\n```tsx\n<div className=\"flex items-center gap-2 px-4 py-3 text-sm text-gray-400 bg-gray-50 dark:bg-gray-800/50 rounded-xl\">\n  <Loader2 size={14} className=\"animate-spin\" />\n  <span>{t('sessions.bridgeConnecting', 'Connecting to bridge...')}</span>\n</div>\n```\n\n资料来源：[web/src/pages/Sessions/SessionChat.tsx:13-16]()\n\n---\n\n## 配置示例\n\n### config.toml 配置\n\n```toml\n[bridge]\nport = 9810\npath = \"/bridge/ws\"\ntoken = \"your-secret-token\"\ninsecure = false  # 仅本地开发设为 true\ncors_origins = [\"http://localhost:5173\"]\n```\n\n### 启动参数说明\n\n| 参数 | 环境变量 | 说明 |\n|------|----------|------|\n| `port` | `BRIDGE_PORT` | 服务端口 |\n| `path` | `BRIDGE_PATH` | WebSocket 路径 |\n| `token` | `BRIDGE_TOKEN` | 认证令牌 |\n| `insecure` | `BRIDGE_INSECURE` | 非安全模式 |\n\n---\n\n## 错误处理\n\n### 常见错误场景\n\n| 场景 | 错误消息 | 解决方案 |\n|------|----------|----------|\n| Token 缺失 | `bridge: token is required when insecure mode is not enabled` | 设置 `bridge.token` 或启用 `insecure=true` |\n| 平台启动失败 | `bridge: platform start failed` | 检查引擎配置和网络连接 |\n| 401 未授权 | `Unauthorized` | 验证 token 有效性 |\n\n资料来源：[core/bridge.go:63-69]()\n\n---\n\n## 版本信息\n\n能力快照中包含版本信息字段：\n\n| 字段 | 来源 | 说明 |\n|------|------|------|\n| `CCConnectVersion` | 编译时注入 | cc-connect 版本号 |\n| `Commit` | 编译时注入 | Git 提交哈希 |\n| `BuildTime` | 编译时注入 | 构建时间戳 |\n\n资料来源：[core/bridge_capabilities.go:18-22]()\n\n---\n\n## 总结\n\nBridge 协议是 cc-connect 实现前后端实时通信的关键机制。它具有以下特点：\n\n- **基于 WebSocket**：提供低延迟的双向通信\n- **多项目支持**：通过 `BridgePlatform` 管理多个独立项目\n- **安全认证**：支持 token 验证和 CORS 控制\n- **能力发现**：提供标准化的能力快照机制\n- **状态监控**：前端可实时感知连接状态变化\n\n---\n\n<a id='agent-overview'></a>\n\n## Agent 集成概述\n\n### 相关页面\n\n相关主题：[Claude Code 集成](#claude-code-integration), [Codex 集成](#codex-integration), [Agent 通信协议](#agent-protocols)\n\n<details>\n<summary>相关源码文件</summary>\n\n以下源码文件用于生成本页说明：\n\n- [agent/acp/agent.go](https://github.com/chenhg5/cc-connect/blob/main/agent/acp/agent.go)\n- [agent/claudecode/claudecode.go](https://github.com/chenhg5/cc-connect/blob/main/agent/claudecode/claudecode.go)\n- [agent/codex/codex.go](https://github.com/chenhg5/cc-connect/blob/main/agent/codex/codex.go)\n- [core/agent.go](https://github.com/chenhg5/cc-connect/blob/main/core/agent.go)\n- [web/src/pages/Projects/ProjectDetail.tsx](https://github.com/chenhg5/cc-connect/blob/main/web/src/pages/Projects/ProjectDetail.tsx)\n- [web/src/pages/Providers/ProviderList.tsx](https://github.com/chenhg5/cc-connect/blob/main/web/src/pages/Providers/ProviderList.tsx)\n- [core/i18n.go](https://github.com/chenhg5/cc-connect/blob/main/core/i18n.go)\n\n</details>\n\n# Agent 集成概述\n\n## 简介\n\nAgent 集成是 cc-connect 项目的核心功能模块，负责将多种 AI Agent 提供商统一接入到平台中。该模块通过抽象层设计，支持多种 Agent 运行时环境，包括 ACP Agent、Claude Code 和 Codex 等主流 AI 编程助手。\n\nAgent 系统的设计目标是通过统一的接口规范，将不同提供商的 Agent 能力整合到同一个协作框架中，使开发者能够在项目中灵活切换和配置不同的 AI 助手，同时保持一致的用户体验和项目管理流程。\n\n---\n\n## 架构设计\n\n### 整体架构\n\ncc-connect 的 Agent 集成采用分层架构设计，从底层到顶层依次为：\n\n```mermaid\ngraph TD\n    A[用户界面层] --> B[项目管理模块]\n    B --> C[Provider 配置层]\n    C --> D[Agent 抽象层]\n    D --> E[具体 Agent 实现]\n    \n    E --> F[ACP Agent]\n    E --> G[Claude Code]\n    E --> H[Codex]\n    \n    style D fill:#e1f5fe\n    style F fill:#fff3e0\n    style G fill:#fff3e0\n    style H fill:#fff3e0\n```\n\n### Agent 类型系统\n\n系统支持多种 Agent 类型，通过 `agent_type` 字段进行标识和配置。不同的 Agent 类型对应不同的 AI 提供商和运行时环境。\n\n| Agent 类型 | 提供商 | 主要用途 | 配置方式 |\n|-----------|--------|----------|----------|\n| acp | ACP | 通用 AI 协作 | base_url + model |\n| claude | Claude Code | Claude 编程助手 | claude_code 配置 |\n| codex | OpenAI Codex | 代码补全与生成 | codex 配置 |\n\n资料来源：[web/src/pages/Projects/ProjectDetail.tsx:30-35](https://github.com/chenhg5/cc-connect/blob/main/web/src/pages/Projects/ProjectDetail.tsx)\n\n---\n\n## Agent 权限模式\n\n### 权限模式列表\n\n每个 Agent 实例可以配置不同的权限模式，决定其执行操作时的权限级别。权限模式通过 `agentMode` 参数控制。\n\n| 模式值 | 显示名称 | 说明 |\n|--------|----------|------|\n| default | 默认 | 标准权限，需要用户确认敏感操作 |\n| acceptEdits | edit | 自动接受编辑操作 |\n| plan | plan | 仅规划模式，不执行实际操作 |\n| bypassPermissions | yolo | 绕过权限检查，所有操作直接执行 |\n| dontAsk | dontAsk | 不询问，直接执行所有操作 |\n\n资料来源：[web/src/pages/Projects/ProjectDetail.tsx:17-22](https://github.com/chenhg5/cc-connect/blob/main/web/src/pages/Projects/ProjectDetail.tsx)\n\n### 权限模式配置界面\n\n```tsx\n<select\n  value={agentMode}\n  onChange={(e) => setAgentMode(e.target.value)}\n  className=\"w-full px-3 py-2 text-sm rounded-lg border...\"\n>\n  <option value=\"default\">default</option>\n  <option value=\"acceptEdits\">acceptEdits (edit)</option>\n  <option value=\"plan\">plan</option>\n  <option value=\"bypassPermissions\">bypassPermissions (yolo)</option>\n  <option value=\"dontAsk\">dontAsk</option>\n</select>\n```\n\n---\n\n## Provider 配置与 Agent 关联\n\n### Provider 模型\n\nProvider 是 Agent 的配置容器，负责存储与特定 AI 服务提供商的连接配置。每个 Provider 可以包含多个模型配置和 Agent 类型支持。\n\n```typescript\ninterface Provider {\n  name: string;           // Provider 唯一标识\n  base_url: string;       // API 端点地址\n  model: string;          // 默认模型\n  models: string[];       // 可用模型列表\n  agent_types?: string[]; // 支持的 Agent 类型\n  thinking?: string;     // 思考模式配置\n}\n```\n\n资料来源：[web/src/pages/Providers/ProviderList.tsx:10-20](https://github.com/chenhg5/cc-connect/blob/main/web/src/pages/Providers/ProviderList.tsx)\n\n### 思考模式配置\n\n思考模式（Thinking）是 Agent 的重要特性之一，用于控制 AI 是否进行链式推理思考。\n\n| 模式值 | 说明 |\n|--------|------|\n| 空字符串 | 使用 Provider 默认配置 |\n| enabled | 启用思考模式 |\n| disabled | 禁用思考模式 |\n\n```tsx\n<select\n  value={form.thinking || ''}\n  onChange={e => set('thinking', e.target.value)}\n>\n  <option value=\"\">{t('globalProviders.form.thinkingDefault')}</option>\n  <option value=\"enabled\">enabled</option>\n  <option value=\"disabled\">disabled</option>\n</select>\n```\n\n资料来源：[web/src/pages/Providers/ProviderList.tsx:90-105](https://github.com/chenhg5/cc-connect/blob/main/web/src/pages/Providers/ProviderList.tsx)\n\n---\n\n## 项目与 Agent 绑定\n\n### 项目配置结构\n\n每个项目（Project）可以关联一个或多个 Agent 实例，通过 `agent_type` 和相关配置实现绑定关系。\n\n```typescript\ninterface Project {\n  name: string;           // 项目名称\n  agent_type: string;     // 关联的 Agent 类型\n  work_dir?: string;      // 工作目录\n  agent_mode?: string;    // 权限模式\n  sessions_count: number; // 关联的会话数量\n  heartbeat_enabled?: boolean; // 心跳功能开关\n}\n```\n\n资料来源：[web/src/pages/Projects/ProjectList.tsx:20-30](https://github.com/chenhg5/cc-connect/blob/main/web/src/pages/Projects/ProjectList.tsx)\n\n### Agent 类型变更流程\n\n```mermaid\ngraph LR\n    A[选择 Agent 类型] --> B{类型是否改变?}\n    B -->|是| C[显示警告提示]\n    C --> D[重启项目生效]\n    B -->|否| E[保持当前配置]\n    D --> F[移除不兼容的 Provider]\n    F --> G[应用新配置]\n```\n\n当用户修改项目的 Agent 类型时，系统会显示警告提示，告知用户此操作需要重启项目，并且不兼容的 Provider 会被自动移除。\n\n资料来源：[web/src/pages/Projects/ProjectDetail.tsx:40-42](https://github.com/chenhg5/cc-connect/blob/main/web/src/pages/Projects/ProjectDetail.tsx)\n\n---\n\n## Agent 实现类型\n\n### ACP Agent\n\nACP Agent 是 cc-connect 的核心 Agent 实现，提供基于 ACP 协议的统一接口。\n\n**主要特性：**\n- 支持多种模型配置\n- 可配置的思考模式\n- 多语言国际化支持\n\n### Claude Code\n\nClaude Code Agent 集成，允许直接调用 Claude Code 的能力。\n\n**配置参数：**\n- `claude_code` 配置块\n- 关联的 Provider base_url\n\n### Codex\n\nOpenAI Codex 集成，用于代码补全和生成任务。\n\n**配置参数：**\n- `codex` 配置块\n- 支持 GPT-4 等模型\n\n---\n\n## 会话与 Agent 交互\n\n### 会话状态\n\n每个会话（Session）与特定的 Agent 实例关联，支持实时消息预览和状态指示。\n\n| 状态字段 | 说明 |\n|----------|------|\n| live | 会话是否处于活跃状态 |\n| last_message | 最后一条消息内容 |\n| updated_at | 最后更新时间 |\n\n```tsx\n<div className=\"flex items-center gap-1.5 min-w-0\">\n  <MessageSquare size={14} className={s.live ? 'text-accent shrink-0' : 'text-gray-400 shrink-0'} />\n  <span className=\"text-sm font-medium truncate\">\n    {s.name || s.user_name || s.id.slice(0, 8)}\n  </span>\n  {s.live && <Circle size={5} className=\"fill-emerald-500 text-emerald-500 shrink-0\" />}\n</div>\n```\n\n资料来源：[web/src/pages/Sessions/SessionList.tsx:15-22](https://github.com/chenhg5/cc-connect/blob/main/web/src/pages/Sessions/SessionList.tsx)\n\n---\n\n## 国际化和本地化\n\nAgent 系统支持完整的国际化配置，通过 i18n 模块提供多语言消息支持。\n\n**支持的语种：**\n\n| 语言代码 | 名称 |\n|----------|------|\n| en | English |\n| zh | 简体中文 |\n| zh-TW | 繁體中文 |\n| ja | 日本語 |\n| es | Español |\n\n```go\nMsgProviderSwitchHint: {\n    LangEnglish:            \"`/provider switch <name>` to switch | `/provider clear` to reset\",\n    LangChinese:            \"`/provider switch <名称>` 切换 | `/provider clear` 清除\",\n    LangTraditionalChinese: \"`/provider switch <名稱>` 切換 | `/provider clear` 清除\",\n    LangJapanese:           \"`/provider switch <名前>` で切り替え | `/provider clear` でリセット\",\n    LangSpanish:            \"`/provider switch <nombre>` para cambiar | `/provider clear` para restablecer\",\n}\n```\n\n资料来源：[core/i18n.go:50-60](https://github.com/chenhg5/cc-connect/blob/main/core/i18n.go)\n\n---\n\n## 快速入门\n\n### 配置新的 Agent Provider\n\n1. 打开 CC-Connect Admin 管理界面\n2. 导航至 Global Providers 页面\n3. 点击「Add」按钮添加新的 Provider\n4. 填写以下必要信息：\n   - Provider 名称\n   - API Base URL\n   - 模型名称\n   - 可选：模型列表\n\n### 在项目中使用 Agent\n\n1. 创建或选择已有项目\n2. 在项目设置中配置 Agent 类型\n3. 选择对应的权限模式\n4. 绑定相关的 Provider 配置\n\n### 切换 Provider\n\n使用命令 `/provider switch <name>` 可以动态切换当前使用的 Provider，使用 `/provider clear` 可以重置为默认配置。\n\n资料来源：[core/i18n.go:45-55](https://github.com/chenhg5/cc-connect/blob/main/core/i18n.go)\n\n---\n\n## 配置参考\n\n### 项目级 Agent 配置\n\n```toml\n[project.my-project]\nagent_type = \"acp\"\nagent_mode = \"default\"\nwork_dir = \"/path/to/project\"\n```\n\n### Provider 级配置\n\n```toml\n[provider.anthropic]\nbase_url = \"https://api.anthropic.com\"\nmodel = \"claude-sonnet-4-20250514\"\nthinking = \"enabled\"\n```\n\n---\n\n## 注意事项\n\n1. **权限模式变更**：修改 `agent_mode` 后需要重启项目才能生效\n2. **Agent 类型切换**：更换 Agent 类型会自动移除不兼容的 Provider 配置\n3. **思考模式**：并非所有模型都支持思考模式，请参考具体模型的文档\n4. **Provider 名称唯一性**：系统要求 Provider 名称全局唯一，重复添加会被拒绝\n\n---\n\n<a id='agent-protocols'></a>\n\n## Agent 通信协议\n\n### 相关页面\n\n相关主题：[Agent 集成概述](#agent-overview)\n\n<details>\n<summary>相关源码文件</summary>\n\n以下源码文件用于生成本页说明：\n\n- [web/src/pages/Sessions/SessionChat.tsx](https://github.com/chenhg5/cc-connect/blob/main/web/src/pages/Sessions/SessionChat.tsx)\n- [web/src/pages/Chat/ChatView.tsx](https://github.com/chenhg5/cc-connect/blob/main/web/src/pages/Chat/ChatView.tsx)\n- [web/src/pages/Sessions/SessionList.tsx](https://github.com/chenhg5/cc-connect/blob/main/web/src/pages/Sessions/SessionList.tsx)\n- [core/i18n.go](https://github.com/chenhg5/cc-connect/blob/main/core/i18n.go)\n</details>\n\n# Agent 通信协议\n\n## 概述\n\nAgent 通信协议是 CC-Connect 系统中实现多 Agent 之间消息传递、会话管理和状态同步的核心机制。该协议支撑了前端界面与后端 Agent 引擎之间的实时交互能力。\n\n## 会话管理机制\n\n会话（Session）是 Agent 通信的基本单元，每个会话包含唯一的标识符、状态信息和消息历史记录。\n\n### 会话状态类型\n\n| 状态类型 | 说明 | 标识 |\n|---------|------|------|\n| live | 会话处于活跃状态 | 绿色圆点指示器 |\n| inactive | 会话已暂停 | 无特殊标识 |\n| error | 连接错误 | 琥珀色警告显示 |\n\n资料来源：[web/src/pages/Sessions/SessionList.tsx:4-5]()\n\n### 会话消息结构\n\n会话消息采用角色化结构，支持用户消息和 Agent 回复两种基本角色：\n\n```typescript\ninterface SessionMessage {\n  role: 'user' | 'assistant';\n  content: string;\n  timestamp?: string;\n}\n```\n\n消息预览功能限制显示内容长度为 100 字符，并替换换行符为空格以保持布局整洁。资料来源：[web/src/pages/Sessions/SessionList.tsx:12-15]()\n\n## 桥接连接机制\n\n### 连接状态监控\n\nAgent 通信依赖桥接（Bridge）机制实现前端与后端的长连接通信。系统提供三种连接状态：\n\n| 状态 | 视觉反馈 | 触发条件 |\n|------|---------|---------|\n| connected | 绿色指示器 | 桥接连接正常 |\n| connecting | 加载动画 + \"Connecting to bridge...\" | 连接建立中 |\n| error | 琥珀色警告 + \"Bridge disconnected\" | 连接失败 |\n\n资料来源：[web/src/pages/Sessions/SessionChat.tsx:3-9]() 和 [web/src/pages/Chat/ChatView.tsx:8-13]()\n\n### 桥接连接流程\n\n```\ngraph TD\n    A[前端发起连接] --> B{连接状态检查}\n    B -->|成功| C[显示 connected 状态]\n    B -->|进行中| D[显示 loading 动画]\n    B -->|失败| E[显示 error 警告]\n    C --> F[建立 WebSocket 通信]\n    E --> G[触发重连机制]\n```\n\n## 命令协议\n\nAgent 通信支持多种命令操作，通过斜杠命令（Slash Commands）触发：\n\n### Provider 相关命令\n\n| 命令 | 功能 | 说明 |\n|------|------|------|\n| `/provider list` | 列出可用 Provider | 查看系统中配置的 AI 提供商 |\n| `/provider switch <name>` | 切换 Provider | 切换到指定名称的 Provider |\n| `/provider clear` | 重置 Provider | 清除当前 Provider 选择 |\n\n资料来源：[core/i18n.go:1-10]()\n\n### Workspace 相关命令\n\n| 命令 | 功能 |\n|------|------|\n| `/workspace bind <workspace-name>` | 绑定工作区 |\n| `/workspace route <absolute-path>` | 设置路由路径 |\n\n## 消息国际化\n\n系统支持多语言消息提示，确保 Agent 通信过程中的用户反馈清晰易懂：\n\n| 语言 | Provider 切换提示 | Provider 未找到提示 |\n|------|------------------|-------------------|\n| English | `✅ Provider switched to **%s**` | `❌ Provider %q not found` |\n| Chinese | `✅ Provider 已切换至 **%s**` | `❌ 未找到 Provider %q` |\n| Japanese | `✅ プロバイダを %s に切り替えました` | `❌ プロバイダ %q が見つかりません` |\n| Spanish | `✅ Proveedor cambiado a **%s**` | `❌ Proveedor %q no encontrado` |\n\n资料来源：[core/i18n.go:1-8]()\n\n## 前端通信组件\n\n### ChatView 组件架构\n\nChatView 是核心通信视图组件，负责协调以下子组件：\n\n```mermaid\ngraph TD\n    A[ChatView] --> B[SessionDrawer]\n    A --> C[CommandResultPanel]\n    A --> D[BridgeStatus]\n    B --> E[会话列表]\n    C --> F[命令结果展示]\n    D --> G[连接状态指示器]\n```\n\n组件接收以下属性：\n\n- `sessions`: 会话列表数据\n- `currentSession`: 当前活跃会话\n- `onSelect`: 会话切换回调\n- `onNewSession`: 新建会话回调\n\n资料来源：[web/src/pages/Chat/ChatView.tsx:1-20]()\n\n### SessionDrawer 组件\n\n会话抽屉组件提供侧边栏式会话管理界面，支持：\n\n- 会话列表展示\n- 当前会话高亮\n- 快速切换会话\n- 新建会话入口\n\n## 状态管理\n\n### 会话状态同步\n\n```typescript\n// 会话状态更新流程\ninterface SessionState {\n  id: string;\n  name?: string;\n  user_name?: string;\n  live: boolean;\n  last_message?: SessionMessage;\n  updated_at?: string;\n  created_at?: string;\n}\n```\n\n会话列表按照最后更新时间排序，确保最近活跃的会话显示在列表顶部。\n\n## 错误处理\n\n系统提供分级错误处理机制：\n\n1. **连接错误**：桥接连接失败时显示琥珀色警告，并提供重连选项\n2. **命令错误**：未知命令返回使用提示信息\n3. **Provider 错误**：Provider 不存在时提示可用列表\n\n错误信息支持多语言显示，错误提示文本存储在 `core/i18n.go` 国际化配置中。\n\n---\n\n<a id='claude-code-integration'></a>\n\n## Claude Code 集成\n\n### 相关页面\n\n相关主题：[Agent 集成概述](#agent-overview)\n\n<details>\n<summary>相关源码文件</summary>\n\n以下源码文件用于生成本页说明：\n\n- [agent/claudecode/claudecode.go](https://github.com/chenhg5/cc-connect/blob/main/agent/claudecode/claudecode.go) ⚠️ 未在当前上下文获取\n- [agent/claudecode/session.go](https://github.com/chenhg5/cc-connect/blob/main/agent/claudecode/session.go) ⚠️ 未在当前上下文获取\n- [agent/claudecode/claude_usage.go](https://github.com/chenhg5/cc-connect/blob/main/agent/claudecode/claude_usage.go) ⚠️ 未在当前上下文获取\n- [web/src/pages/Providers/ProviderList.tsx](https://github.com/chenhg5/cc-connect/blob/main/web/src/pages/Providers/ProviderList.tsx) ✅ 已获取\n- [web/src/pages/Projects/ProjectDetail.tsx](https://github.com/chenhg5/cc-connect/blob/main/web/src/pages/Projects/ProjectDetail.tsx) ✅ 已获取\n- [core/i18n.go](https://github.com/chenhg5/cc-connect/blob/main/core/i18n.go) ✅ 已获取\n\n> ⚠️ **注意**：Claude Code 集成核心源码文件（`agent/claudecode/*.go`）未包含在当前检索结果中。以下内容基于 Web 前端组件和 i18n 配置推断，可能与实际实现存在差异。建议查阅完整源码获取精确信息。\n\n</details>\n\n# Claude Code 集成\n\n## 概述\n\nClaude Code 集成是 cc-connect 项目中连接 Claude Code Agent 的核心功能模块。该集成允许用户在 cc-connect 平台中配置和使用 Claude Code 作为 AI 代码助手 provider，实现与 Claude Code 的无缝对接。\n\n## 架构设计\n\n### 核心组件\n\nClaude Code 集成主要包含以下核心模块：\n\n| 组件 | 文件路径 | 功能描述 |\n|------|----------|----------|\n| claudecode.go | agent/claudecode/ | Claude Code Agent 主逻辑实现 |\n| session.go | agent/claudecode/ | 会话管理功能 |\n| claude_usage.go | agent/claudecode/ | 使用量统计与计费追踪 |\n\n### Provider 集成\n\nClaude Code 作为一种特殊的 Agent Type（`codex`）集成到 cc-connect 的 Provider 系统中。用户可以在 Provider 配置界面选择或配置 Claude Code 作为 AI 服务提供商。\n\n```mermaid\ngraph TD\n    A[用户请求] --> B[cc-connect Core]\n    B --> C{Provider 类型判断}\n    C -->|codex| D[Claude Code Provider]\n    C -->|其他| E[标准 Provider]\n    D --> F[Claude Code Agent]\n    E --> G[OpenAI/兼容 API]\n    F --> H[Claude Code 执行环境]\n```\n\n## 配置选项\n\n### Agent Mode 配置\n\n在项目设置中，用户可以配置 Claude Code 的运行权限模式：\n\n| 模式值 | 显示名称 | 权限级别 | 使用场景 |\n|--------|----------|----------|----------|\n| `default` | default | 标准权限 | 常规开发任务 |\n| `acceptEdits` | acceptEdits (edit) | 自动接受编辑 | 信任的编辑操作 |\n| `plan` | plan | 仅计划模式 | 安全审查阶段 |\n| `bypassPermissions` | bypassPermissions (yolo) | 绕过权限检查 | 完全信任环境 |\n| `dontAsk` | dontAsk | 无需确认 | 自动化脚本 |\n\n资料来源：[web/src/pages/Projects/ProjectDetail.tsx]()\n\n### Provider 配置\n\nClaude Code Provider 支持以下核心配置项：\n\n| 配置项 | 说明 | 必填 |\n|--------|------|------|\n| base_url | API 端点地址 | 是 |\n| model | 模型标识符 | 是 |\n| models | 模型列表（支持多模型） | 否 |\n| agent_type | Agent 类型（codex 表示 Claude Code） | 是 |\n| thinking | 思考模式（enabled/disabled/default） | 否 |\n\n资料来源：[web/src/pages/Providers/ProviderList.tsx]()\n\n### Codex 特有配置\n\n对于 `agent_type` 为 `codex` 的 Claude Code Provider，还支持以下特有配置：\n\n| 配置项 | 说明 | 来源 |\n|--------|------|------|\n| wire_api | Codex Wire API 配置 | ProjectDetail.tsx |\n\n## 会话管理\n\nClaude Code 集成了 cc-connect 的会话管理系统，支持：\n\n- 实时会话列表展示\n- 最后消息预览\n- 会话时间戳显示\n- 活跃会话状态指示（Live indicator）\n\n资料来源：[web/src/pages/Sessions/SessionList.tsx]()\n\n## 国际化支持\n\nClaude Code 集成相关的消息已实现多语言支持：\n\n| 语言 | 语言代码 | 消息覆盖 |\n|------|----------|----------|\n| 英语 | en | ✅ 完整支持 |\n| 简体中文 | zh | ✅ 完整支持 |\n| 繁体中文 | zh-TW | ✅ 完整支持 |\n| 日语 | ja | ✅ 完整支持 |\n| 西班牙语 | es | ✅ 完整支持 |\n\n资料来源：[core/i18n.go]()\n\n## 使用流程\n\n### 1. 添加 Provider\n\n在 cc-connect Web 界面的 Providers 页面，添加新的 Provider：\n\n1. 选择或输入 Provider 名称\n2. 配置 API 端点（base_url）\n3. 设置模型标识符\n4. 指定 Agent Type 为 `codex`\n5. 根据需要配置 thinking 模式\n\n### 2. 创建/配置项目\n\n将 Claude Code Provider 关联到项目：\n\n1. 在项目设置中选择 Provider\n2. 配置 Agent Mode（权限级别）\n3. 设置工作目录\n4. 启用/禁用心跳检测（可选）\n\n### 3. 启动会话\n\n与 Claude Code Agent 建立会话：\n\n1. 在会话列表中创建新会话\n2. 与 Claude Code 进行交互\n3. 监控系统使用量和状态\n\n## 与其他 Provider 的对比\n\n| 特性 | Claude Code (codex) | 标准 Provider |\n|------|---------------------|----------------|\n| Agent Mode | ✅ 支持 | ❌ 不适用 |\n| Wire API | ✅ 支持特有配置 | ❌ 不适用 |\n| 心跳检测 | ✅ 支持 | ✅ 支持 |\n| 多模型支持 | ✅ | ✅ |\n| thinking 配置 | ✅ | ✅ |\n\n## 注意事项\n\n1. **权限安全**：使用 `bypassPermissions` 或 `dontAsk` 模式时请确保环境安全\n2. **API 配置**：Claude Code Provider 需要正确配置 API 端点和模型\n3. **源码限制**：当前检索结果中未包含 `agent/claudecode/` 核心源码文件，建议查阅完整仓库以获取精确实现细节\n\n---\n\n<a id='codex-integration'></a>\n\n## Codex 集成\n\n### 相关页面\n\n相关主题：[Agent 集成概述](#agent-overview)\n\n<details>\n<summary>相关源码文件</summary>\n\n以下源码文件用于生成本页说明：\n\n- [agent/codex/codex.go](https://github.com/chenhg5/cc-connect/blob/main/agent/codex/codex.go)\n- [agent/codex/session.go](https://github.com/chenhg5/cc-connect/blob/main/agent/codex/session.go)\n- [agent/codex/provider_config.go](https://github.com/chenhg5/cc-connect/blob/main/agent/codex/provider_config.go)\n- [web/src/pages/Providers/ProviderList.tsx](https://github.com/chenhg5/cc-connect/blob/main/web/src/pages/Providers/ProviderList.tsx)\n- [AGENTS.md](https://github.com/chenhg5/cc-connect/blob/main/AGENTS.md)\n</details>\n\n# Codex 集成\n\n## 概述\n\nCodex 集成是 cc-connect 项目中实现的一个可选 Agent 类型，允许用户通过统一的 cc-connect 接口与 OpenAI Codex（或兼容 Codex API 协议的服务）进行交互。该集成作为 cc-connect 的插件化 Agent 架构的一部分，通过实现 `core.Agent` 和 `core.AgentSession` 接口来提供完整的会话管理和消息处理能力。\n\n## 架构设计\n\n### 模块结构\n\nCodex 集成位于 `agent/codex/` 目录下，包含三个核心文件：\n\n| 文件 | 职责 |\n|------|------|\n| `codex.go` | 主入口，实现 Agent 工厂函数和核心接口 |\n| `session.go` | 会话管理，处理消息流和状态维护 |\n| `provider_config.go` | Provider 配置管理，支持 per-agent 配置 |\n\n### 插件注册机制\n\n根据 cc-connect 的插件化架构设计，Codex Agent 通过 `init()` 函数注册到核心系统：\n\n```go\n// 伪代码示例\nfunc init() {\n    core.RegisterAgent(\"codex\", NewCodexAgent)\n}\n```\n\n资料来源：[AGENTS.md]()\n\n## 配置管理\n\n### Provider 配置结构\n\nCodex 集成支持两种配置模式：\n\n1. **全局配置**：通过 `config.toml` 或 `cc-connect provider add` 命令添加\n2. **Per-Agent 配置**：允许每个项目/工作区独立配置 Codex 参数\n\n### wire_api 配置\n\nCodex 集成支持 `wire_api` 参数，用于配置特殊的 API 协议处理：\n\n```go\nconfig.wire_api // Codex 特定的 API 线协议配置\n```\n\n资料来源：[web/src/pages/Providers/ProviderList.tsx:1]()\n\n### Thinking 配置\n\nCodex Agent 支持 thinking 参数控制：\n\n| 值 | 行为 |\n|----|------|\n| 空字符串 | 使用 Provider 默认设置 |\n| `enabled` | 强制启用 thinking 模式 |\n| `disabled` | 强制禁用 thinking 模式 |\n\n资料来源：[web/src/pages/Providers/ProviderList.tsx:1]()\n\n## 界面集成\n\n### Provider 管理界面\n\n在 cc-connect Web 管理界面的 **Provider List** 页面中，Codex 作为特殊的 Agent 类型进行配置：\n\n```\nAgent Type 选择: codex\n```\n\n当选择 Codex 类型时，界面会显示额外的 `wire_api` 配置选项：\n\n```tsx\n{agentType === 'codex' && (\n    <div>\n      <label>Codex Wire API</label>\n      <select value={config.wire_api || ''} onChange={...} />\n    </div>\n)}\n```\n\n资料来源：[web/src/pages/Providers/ProviderList.tsx:1]()\n\n## 消息处理流程\n\n```\ngraph TD\n    A[用户消息] --> B[cc-connect Core]\n    B --> C[Codex Agent]\n    C --> D[Codex Session]\n    D --> E[Codex API Provider]\n    E --> F[API 响应]\n    F --> G[Session 状态更新]\n    G --> H[消息流返回]\n```\n\n## 与其他 Agent 的对比\n\n| 特性 | Codex | 其他 Agent |\n|------|-------|-----------|\n| 插件注册 | `core.RegisterAgent(\"codex\", ...)` | 相同模式 |\n| 会话管理 | 实现 `AgentSession` 接口 | 相同模式 |\n| Provider 配置 | 支持 per-agent 配置 | 部分支持 |\n| wire_api | 特有配置项 | 无 |\n\n## 添加新的 Agent 类型\n\n如需参考 Codex 的实现方式来添加新的 Agent，可参考 AGENTS.md 中的指南：\n\n1. 创建 `agent/newagent/newagent.go`\n2. 实现 `core.Agent` 和 `core.AgentSession` 接口\n3. 在 `init()` 函数中注册：`core.RegisterAgent(\"newagent\", factory)`\n4. 创建 `cmd/cc-connect/plugin_agent_newagent.go` 并添加 `//go:build !no_newagent` 标签\n5. 在 `Makefile` 的 `ALL_AGENTS` 中添加新 Agent\n6. 在 `config.example.toml` 中添加配置示例\n7. 添加单元测试\n\n资料来源：[AGENTS.md]()\n\n## 总结\n\nCodex 集成展示了 cc-connect 插件化架构的灵活性。通过实现标准化的 Agent 接口，Codex 能够无缝融入 cc-connect 的会话管理、Provider 管理和配置系统。Per-agent 配置能力和 wire_api 特殊参数的支持，使得 Codex 集成能够适应不同的部署场景和 API 提供商需求。\n\n---\n\n<a id='platform-overview'></a>\n\n## 平台集成概述\n\n### 相关页面\n\n相关主题：[飞书集成详解](#platform-feishu)\n\n<details>\n<summary>相关源码文件</summary>\n\n以下源码文件用于生成本页说明：\n\n- [AGENTS.md](https://github.com/chenhg5/cc-connect/blob/main/AGENTS.md)\n- [web/src/pages/Providers/ProviderList.tsx](https://github.com/chenhg5/cc-connect/blob/main/web/src/pages/Providers/ProviderList.tsx)\n- [core/i18n.go](https://github.com/chenhg5/cc-connect/blob/main/core/i18n.go)\n- [web/src/pages/Projects/ProjectList.tsx](https://github.com/chenhg5/cc-connect/blob/main/web/src/pages/Projects/ProjectList.tsx)\n- [web/src/pages/Projects/ProjectDetail.tsx](https://github.com/chenhg5/cc-connect/blob/main/web/src/pages/Projects/ProjectDetail.tsx)\n- [web/src/pages/Sessions/SessionList.tsx](https://github.com/chenhg5/cc-connect/blob/main/web/src/pages/Sessions/SessionList.tsx)\n</details>\n\n# 平台集成概述\n\n## 简介\n\ncc-connect 是一个多平台代理连接器，支持将多个 AI 编码助手平台（如 Claude Code、Cursor、Kimi 等）统一接入到单一界面进行管理。平台集成系统是 cc-connect 的核心架构之一，它通过标准化的 `core.Platform` 接口定义，允许以插件化方式加载和管理不同的即时通讯平台。\n\n当前支持的平台包括飞书（Feishu）、Telegram、Slack、Discord、钉钉（DingTalk）、企业微信（WeCom）、微信（Weixin）、QQ、Line、微博（Weibo）等。\n\n## 核心架构\n\n### 平台接口设计\n\n平台模块需要实现 `core.Platform` 接口，这是所有平台集成的核心契约。接口定义包含平台初始化、消息处理、会话管理等功能。\n\n```mermaid\ngraph TD\n    A[core.Platform 接口] --> B[平台初始化 init]\n    A --> C[消息接收与处理]\n    A --> D[会话管理]\n    A --> E[平台配置]\n    \n    B --> B1[RegisterPlatform 注册]\n    C --> C1[消息路由]\n    D --> D1[Session 会话]\n    E --> E1[配置解析]\n```\n\n### 平台注册机制\n\n平台通过 `init()` 函数在启动时自动注册到核心系统：\n\n```go\ncore.RegisterPlatform(\"newplatform\", factory)\n```\n\n此机制遵循 Go 语言的插件化设计理念，允许在编译时通过构建标签（build tags）选择性地包含或排除特定平台。资料来源：[AGENTS.md:30]()\n\n### 构建标签控制\n\n平台的可选性通过 Go 构建标签实现，开发者可以使用 `no_` 前缀的标签来排除不需要的平台：\n\n| 构建标签 | 排除平台 |\n|---------|---------|\n| `no_feishu` | 飞书 |\n| `no_telegram` | Telegram |\n| `no_slack` | Slack |\n| `no_discord` | Discord |\n| `no_dingtalk` | 钉钉 |\n| `no_wecom` | 企业微信 |\n| `no_weixin` | 微信 |\n| `no_qq` | QQ |\n| `no_line` | Line |\n| `no_weibo` | 微博 |\n\n编译示例：\n\n```bash\n# 排除飞书和钉钉平台\ngo build -tags \"no_feishu,no_dingtalk\"\n```\n\n资料来源：[AGENTS.md:5-6]()\n\n## 新增平台流程\n\n### 步骤概览\n\n```mermaid\ngraph LR\n    A[创建平台目录] --> B[实现 Platform 接口]\n    B --> C[注册平台 init]\n    C --> D[创建构建文件]\n    D --> E[添加到 Makefile]\n    E --> F[添加配置示例]\n    F --> G[编写单元测试]\n```\n\n### 详细步骤\n\n#### 1. 创建平台目录结构\n\n在 `platform/` 目录下创建新平台目录：\n\n```\nplatform/newplatform/\n└── newplatform.go\n```\n\n#### 2. 实现 core.Platform 接口\n\n创建 `platform/newplatform/newplatform.go` 文件，实现 `core.Platform` 接口以及可选的扩展接口。\n\n#### 3. 注册平台\n\n在 `init()` 函数中调用注册方法：\n\n```go\nfunc init() {\n    core.RegisterPlatform(\"newplatform\", NewPlatform)\n}\n```\n\n#### 4. 创建构建文件\n\n创建 `cmd/cc-connect/plugin_platform_newplatform.go`，并添加构建标签：\n\n```go\n//go:build !no_newplatform\n\npackage main\n```\n\n此文件用于在主程序中链接平台插件。\n\n#### 5. 更新 Makefile\n\n将新平台名称添加到 `Makefile` 中的 `ALL_PLATFORMS` 变量。\n\n#### 6. 添加配置示例\n\n在 `config.example.toml` 中添加该平台的配置示例段。\n\n#### 7. 编写单元测试\n\n为新平台创建对应的测试文件，确保核心功能覆盖。\n\n资料来源：[AGENTS.md:28-35]()\n\n## 平台配置管理\n\n### Web 管理界面\n\ncc-connect 提供了基于 Web 的配置管理界面，支持可视化配置各平台的连接参数。\n\n#### Provider 配置\n\nProvider 是平台配置的核心概念，用于定义 AI 模型提供商：\n\n```typescript\ninterface Provider {\n  name: string;           // 提供商名称\n  base_url?: string;      // API 基础地址\n  model?: string;         // 默认模型\n  models?: Model[];       // 模型列表\n  api_key?: string;       // API 密钥\n  thinking?: string;      // 思考模式设置\n  agent_types?: string[]; // 支持的代理类型\n}\n```\n\n资料来源：[web/src/pages/Providers/ProviderList.tsx:1-50]()\n\n#### Agent Type 支持\n\n平台可支持的 Agent 类型包括：\n\n| Agent Type | 说明 |\n|-----------|------|\n| `claudecode` | Claude Code |\n| `codex` | OpenAI Codex |\n| `gemini` | Google Gemini |\n| `opencode` | OpenCode |\n| `cursor` | Cursor |\n| `kimi` | Kimi |\n| `qoder` | Qoder |\n| `acp` | ACP |\n\nWeb 界面中通过多选按钮组进行 Agent 类型的选择和配置。资料来源：[web/src/pages/Providers/ProviderList.tsx:100-120]()\n\n### 国际化配置\n\n平台相关的用户提示信息通过 `core/i18n.go` 进行多语言管理。当前支持的语言包括：\n\n| 语言代码 | 语言名称 |\n|--------|---------|\n| `en` | English |\n| `zh` | 简体中文 |\n| `zh-TW` | 繁体中文 |\n| `ja` | 日本語 |\n| `es` | Español |\n\n每条消息都定义了对应语言的翻译文本，确保用户在不同语言环境下获得一致体验。资料来源：[core/i18n.go:1-50]()\n\n## 项目与会话管理\n\n### 项目系统\n\n每个平台连接的项目（Project）包含以下核心配置：\n\n```typescript\ninterface Project {\n  name: string;              // 项目名称\n  agent_type: string;        // 代理类型\n  platforms?: string[];     // 启用的平台列表\n  work_dir?: string;        // 工作目录\n  agent_mode?: string;      // 代理模式\n  heartbeat_enabled?: boolean;  // 心跳功能启用\n  sessions_count?: number;  // 会话数量\n}\n```\n\n#### Agent Mode 选项\n\n| Mode 值 | 说明 |\n|--------|------|\n| `default` | 默认模式 |\n| `acceptEdits` | 编辑模式 |\n| `plan` | 计划模式 |\n| `bypassPermissions` | 绕过权限（yolo） |\n| `dontAsk` | 不询问模式 |\n\n资料来源：[web/src/pages/Projects/ProjectList.tsx:50-80]()\n\n### 会话系统\n\n会话（Session）代表用户与 AI 代理之间的单次交互：\n\n```typescript\ninterface Session {\n  id: string;\n  name?: string;\n  user_name?: string;\n  live?: boolean;           // 是否在线\n  last_message?: {\n    role: 'user' | 'assistant';\n    content: string;\n  };\n  updated_at?: string;\n  created_at?: string;\n}\n```\n\n会话列表支持显示实时状态指示器、最后消息预览等功能。资料来源：[web/src/pages/Sessions/SessionList.tsx:1-30]()\n\n## 心跳机制\n\n心跳（Heartbeat）功能用于维持项目与平台连接的活跃状态：\n\n### 心跳配置项\n\n| 配置项 | 说明 |\n|-------|------|\n| `interval_mins` | 心跳间隔（分钟） |\n| `paused` | 是否暂停 |\n| `run_count` | 运行次数 |\n| `error_count` | 错误计数 |\n| `skipped_busy` | 跳过忙碌次数 |\n| `last_run` | 上次运行时间 |\n| `last_error` | 最后错误信息 |\n\n资料来源：[web/src/pages/Projects/ProjectDetail.tsx:1-30]()\n\n### 心跳控制操作\n\n| 操作 | 说明 |\n|-----|------|\n| `resumeHeartbeat` | 恢复心跳 |\n| `pauseHeartbeat` | 暂停心跳 |\n| `triggerHeartbeat` | 手动触发心跳 |\n| `setInterval` | 设置间隔 |\n\n## 技能系统\n\n技能（Skills）允许在项目中预设和管理可用的工具集：\n\n```typescript\ninterface SkillPreset {\n  name: string;\n  display_name?: string;\n  project: string;          // 所属项目\n  agent_type: string;       // 代理类型\n  skills?: Skill[];         // 技能列表\n  dirs?: string[];          // 扫描目录\n  source?: {\n    url?: string;\n    name?: string;\n    provider?: string;\n  };\n  author?: string;\n  description?: string;\n  description_zh?: string;\n  tags?: string[];\n  version?: string;\n  pricing?: string;\n  url?: string;\n}\n```\n\n技能来源可以是本地定义的技能，也可以是远程下载的技能包。资料来源：[web/src/pages/Skills/SkillList.tsx:1-60]()\n\n## 工作区管理\n\n工作区（Workspace）功能允许用户绑定和管理多个工作空间：\n\n| 命令 | 说明 |\n|-----|------|\n| `/workspace bind <name>` | 绑定工作区 |\n| `/workspace clear` | 清除工作区 |\n| `/workspace route <path>` | 路由到指定路径 |\n\n资料来源：[core/i18n.go:200-250]()\n\n## 开发检查清单\n\n新增平台时需要遵循以下检查流程：\n\n1. **构建通过**：`go build ./...`\n2. **测试通过**：`go test ./...`\n3. **无硬编码**：核心代码中不得有新的平台名称硬编码\n4. **国际化完整**：所有用户可见字符串需包含所有语言翻译\n5. **无敏感信息**：源码中不得包含 API Key、Token 等凭据\n\n资料来源：[AGENTS.md:8-16]()\n\n## 相关文件结构\n\n```\ncc-connect/\n├── core/\n│   ├── platform.go          # Platform 接口定义\n│   └── i18n.go             # 国际化支持\n├── platform/\n│   ├── feishu/             # 飞书平台\n│   ├── telegram/           # Telegram 平台\n│   ├── slack/              # Slack 平台\n│   └── ...                 # 其他平台\n├── web/\n│   └── src/pages/\n│       ├── Providers/      # 提供商管理\n│       ├── Projects/       # 项目管理\n│       ├── Sessions/       # 会话管理\n│       └── Skills/         # 技能管理\n└── cmd/cc-connect/\n    └── plugin_platform_*.go # 平台插件构建文件\n```\n\n## 总结\n\n平台集成系统采用插件化架构设计，通过标准接口和构建标签实现高度的灵活性和可扩展性。开发者可以通过遵循既定的开发流程快速添加新平台支持，同时系统提供的 Web 管理界面降低了运维复杂度。\n\n---\n\n<a id='platform-feishu'></a>\n\n## 飞书集成详解\n\n### 相关页面\n\n相关主题：[平台集成概述](#platform-overview)\n\n无法生成此页面。提供的源码上下文中**不包含**飞书集成相关的代码。\n\n您要求引用的以下文件均未出现在当前检索结果中：\n\n- `platform/feishu/feishu.go`\n- `platform/feishu/card.go`\n- `platform/feishu/ws_shared.go`\n- `docs/feishu.md`\n\n当前上下文仅包含以下文件的相关代码片段：\n\n| 文件路径 | 内容概述 |\n|---------|---------|\n| `web/src/pages/Providers/ProviderList.tsx` | 提供商列表 UI 组件 |\n| `web/src/pages/Skills/SkillList.tsx` | 技能列表 UI 组件 |\n| `web/src/pages/Projects/ProjectList.tsx` | 项目列表 UI 组件 |\n| `web/src/pages/Projects/ProjectDetail.tsx` | 项目详情 UI 组件 |\n| `web/src/pages/Sessions/SessionList.tsx` | 会话列表 UI 组件 |\n| `core/i18n.go` | 国际化消息定义 |\n| `web/index.html` | Web 应用入口 HTML |\n| `web/preview.html` | 预览页面 HTML |\n\n建议：请重新检索包含飞书集成源码的文件，或使用 `platform/feishu/` 目录下的实际代码片段进行查询。\n\n---\n\n---\n\n## Doramagic 踩坑日志\n\n项目：chenhg5/cc-connect\n\n摘要：发现 24 个潜在踩坑项，其中 6 个为 high/blocking；最高优先级：安装坑 - 来源证据：[Bug]。\n\n## 1. 安装坑 · 来源证据：[Bug]\n\n- 严重度：high\n- 证据强度：source_linked\n- 发现：GitHub 社区证据显示该项目存在一个安装相关的待验证问题：[Bug]\n- 对用户的影响：可能增加新用户试用和生产接入成本。\n- 建议检查：来源问题仍为 open，Pack Agent 需要复核是否仍影响当前版本。\n- 防护动作：不得脱离来源链接放大为确定性结论；需要标注适用版本和复核状态。\n- 证据：community_evidence:github | cevd_c85c0f8f48ac44c7a855066b2bfc3939 | https://github.com/chenhg5/cc-connect/issues/933 | 来源讨论提到 npm 相关条件，需在安装/试用前复核。\n\n## 2. 安装坑 · 来源证据：[Feature] Preserve full interactive card schema on inbound\n\n- 严重度：high\n- 证据强度：source_linked\n- 发现：GitHub 社区证据显示该项目存在一个安装相关的待验证问题：[Feature] Preserve full interactive card schema on inbound\n- 对用户的影响：可能影响升级、迁移或版本选择。\n- 建议检查：来源问题仍为 open，Pack Agent 需要复核是否仍影响当前版本。\n- 防护动作：不得脱离来源链接放大为确定性结论；需要标注适用版本和复核状态。\n- 证据：community_evidence:github | cevd_f50380a7aef54548ac053b1127a2916e | https://github.com/chenhg5/cc-connect/issues/936 | 来源类型 github_issue 暴露的待验证使用条件。\n\n## 3. 安装坑 · 来源证据：cc-connect 因 SSH 断开被 systemd 停止：需要文档化 `loginctl enable-linger`\n\n- 严重度：high\n- 证据强度：source_linked\n- 发现：GitHub 社区证据显示该项目存在一个安装相关的待验证问题：cc-connect 因 SSH 断开被 systemd 停止：需要文档化 `loginctl enable-linger`\n- 对用户的影响：可能增加新用户试用和生产接入成本。\n- 建议检查：来源问题仍为 open，Pack Agent 需要复核是否仍影响当前版本。\n- 防护动作：不得脱离来源链接放大为确定性结论；需要标注适用版本和复核状态。\n- 证据：community_evidence:github | cevd_3a818efa6ddf479aae0f026d1f06d491 | https://github.com/chenhg5/cc-connect/issues/960 | 来源讨论提到 npm 相关条件，需在安装/试用前复核。\n\n## 4. 配置坑 · 来源证据：Feishu: all messages permanently ignored as 'old message after restart' after every daemon restart (v1.3.3-beta.2)\n\n- 严重度：high\n- 证据强度：source_linked\n- 发现：GitHub 社区证据显示该项目存在一个配置相关的待验证问题：Feishu: all messages permanently ignored as 'old message after restart' after every daemon restart (v1.3.3-beta.2)\n- 对用户的影响：可能增加新用户试用和生产接入成本。\n- 建议检查：来源问题仍为 open，Pack Agent 需要复核是否仍影响当前版本。\n- 防护动作：不得脱离来源链接放大为确定性结论；需要标注适用版本和复核状态。\n- 证据：community_evidence:github | cevd_7b001c45ac3449abaee3dd365bc4cc74 | https://github.com/chenhg5/cc-connect/issues/972 | 来源讨论提到 linux 相关条件，需在安装/试用前复核。\n\n## 5. 配置坑 · 来源证据：[Bug] cc-connect send uses default socket path in custom data_dir agent sessions\n\n- 严重度：high\n- 证据强度：source_linked\n- 发现：GitHub 社区证据显示该项目存在一个配置相关的待验证问题：[Bug] cc-connect send uses default socket path in custom data_dir agent sessions\n- 对用户的影响：可能增加新用户试用和生产接入成本。\n- 建议检查：来源问题仍为 open，Pack Agent 需要复核是否仍影响当前版本。\n- 防护动作：不得脱离来源链接放大为确定性结论；需要标注适用版本和复核状态。\n- 证据：community_evidence:github | cevd_6136e384578b499ca63299322032211a | https://github.com/chenhg5/cc-connect/issues/966 | 来源类型 github_issue 暴露的待验证使用条件。\n\n## 6. 安全/权限坑 · 来源证据：Feature Request: 终端与 IM 双通道统一会话管理\n\n- 严重度：high\n- 证据强度：source_linked\n- 发现：GitHub 社区证据显示该项目存在一个安全/权限相关的待验证问题：Feature Request: 终端与 IM 双通道统一会话管理\n- 对用户的影响：可能影响授权、密钥配置或安全边界。\n- 建议检查：来源问题仍为 open，Pack Agent 需要复核是否仍影响当前版本。\n- 防护动作：不得脱离来源链接放大为确定性结论；需要标注适用版本和复核状态。\n- 证据：community_evidence:github | cevd_befa8b4f1c7f4ef483d6d8b38ba06ba4 | https://github.com/chenhg5/cc-connect/issues/968 | 来源讨论提到 windows 相关条件，需在安装/试用前复核。\n\n## 7. 安装坑 · 来源证据：v1.3.3-beta.1\n\n- 严重度：medium\n- 证据强度：source_linked\n- 发现：GitHub 社区证据显示该项目存在一个安装相关的待验证问题：v1.3.3-beta.1\n- 对用户的影响：可能影响升级、迁移或版本选择。\n- 建议检查：来源显示可能已有修复、规避或版本变化，说明书中必须标注适用版本。\n- 防护动作：不得脱离来源链接放大为确定性结论；需要标注适用版本和复核状态。\n- 证据：community_evidence:github | cevd_5eb39ef63cf14e56aff580db738dcd9f | https://github.com/chenhg5/cc-connect/releases/tag/v1.3.3-beta.1 | 来源讨论提到 npm 相关条件，需在安装/试用前复核。\n\n## 8. 安装坑 · 来源证据：生图 app-icon 请求未稳定转发到 generate-image，且 cc-connect 存在部署漂移风险\n\n- 严重度：medium\n- 证据强度：source_linked\n- 发现：GitHub 社区证据显示该项目存在一个安装相关的待验证问题：生图 app-icon 请求未稳定转发到 generate-image，且 cc-connect 存在部署漂移风险\n- 对用户的影响：可能增加新用户试用和生产接入成本。\n- 建议检查：来源显示可能已有修复、规避或版本变化，说明书中必须标注适用版本。\n- 防护动作：不得脱离来源链接放大为确定性结论；需要标注适用版本和复核状态。\n- 证据：community_evidence:github | cevd_574cca97359b4bc1a8a8fa968ab758cb | https://github.com/chenhg5/cc-connect/issues/967 | 来源讨论提到 node 相关条件，需在安装/试用前复核。\n\n## 9. 配置坑 · 可能修改宿主 AI 配置\n\n- 严重度：medium\n- 证据强度：source_linked\n- 发现：项目面向 Claude/Cursor/Codex/Gemini/OpenCode 等宿主，或安装命令涉及用户配置目录。\n- 对用户的影响：安装可能改变本机 AI 工具行为，用户需要知道写入位置和回滚方法。\n- 建议检查：列出会写入的配置文件、目录和卸载/回滚步骤。\n- 防护动作：涉及宿主配置目录时必须给回滚路径，不能只给安装命令。\n- 证据：capability.host_targets | github_repo:1168978399 | https://github.com/chenhg5/cc-connect | host_targets=claude, claude_code, cursor\n\n## 10. 配置坑 · 来源证据：v1.3.0-rc.3\n\n- 严重度：medium\n- 证据强度：source_linked\n- 发现：GitHub 社区证据显示该项目存在一个配置相关的待验证问题：v1.3.0-rc.3\n- 对用户的影响：可能增加新用户试用和生产接入成本。\n- 建议检查：来源显示可能已有修复、规避或版本变化，说明书中必须标注适用版本。\n- 防护动作：不得脱离来源链接放大为确定性结论；需要标注适用版本和复核状态。\n- 证据：community_evidence:github | cevd_9e274ec877304b369e551afc543b9bae | https://github.com/chenhg5/cc-connect/releases/tag/v1.3.0-rc.3 | 来源类型 github_release 暴露的待验证使用条件。\n\n## 11. 配置坑 · 来源证据：v1.3.1\n\n- 严重度：medium\n- 证据强度：source_linked\n- 发现：GitHub 社区证据显示该项目存在一个配置相关的待验证问题：v1.3.1\n- 对用户的影响：可能影响升级、迁移或版本选择。\n- 建议检查：来源显示可能已有修复、规避或版本变化，说明书中必须标注适用版本。\n- 防护动作：不得脱离来源链接放大为确定性结论；需要标注适用版本和复核状态。\n- 证据：community_evidence:github | cevd_c2e03a5e0cc8465c968bcc252cc2926b | https://github.com/chenhg5/cc-connect/releases/tag/v1.3.1 | 来源类型 github_release 暴露的待验证使用条件。\n\n## 12. 能力坑 · 能力判断依赖假设\n\n- 严重度：medium\n- 证据强度：source_linked\n- 发现：README/documentation is current enough for a first validation pass.\n- 对用户的影响：假设不成立时，用户拿不到承诺的能力。\n- 建议检查：将假设转成下游验证清单。\n- 防护动作：假设必须转成验证项；没有验证结果前不能写成事实。\n- 证据：capability.assumptions | github_repo:1168978399 | https://github.com/chenhg5/cc-connect | README/documentation is current enough for a first validation pass.\n\n## 13. 运行坑 · 来源证据：出现网络波动后，一直显示这个retrying，只能手动重启吗？\n\n- 严重度：medium\n- 证据强度：source_linked\n- 发现：GitHub 社区证据显示该项目存在一个运行相关的待验证问题：出现网络波动后，一直显示这个retrying，只能手动重启吗？\n- 对用户的影响：可能增加新用户试用和生产接入成本。\n- 建议检查：来源显示可能已有修复、规避或版本变化，说明书中必须标注适用版本。\n- 防护动作：不得脱离来源链接放大为确定性结论；需要标注适用版本和复核状态。\n- 证据：community_evidence:github | cevd_8d8f7103758f4f46bffd9b411c81bbf6 | https://github.com/chenhg5/cc-connect/issues/102 | 来源类型 github_issue 暴露的待验证使用条件。\n\n## 14. 维护坑 · 维护活跃度未知\n\n- 严重度：medium\n- 证据强度：source_linked\n- 发现：未记录 last_activity_observed。\n- 对用户的影响：新项目、停更项目和活跃项目会被混在一起，推荐信任度下降。\n- 建议检查：补 GitHub 最近 commit、release、issue/PR 响应信号。\n- 防护动作：维护活跃度未知时，推荐强度不能标为高信任。\n- 证据：evidence.maintainer_signals | github_repo:1168978399 | https://github.com/chenhg5/cc-connect | last_activity_observed missing\n\n## 15. 安全/权限坑 · 下游验证发现风险项\n\n- 严重度：medium\n- 证据强度：source_linked\n- 发现：no_demo\n- 对用户的影响：下游已经要求复核，不能在页面中弱化。\n- 建议检查：进入安全/权限治理复核队列。\n- 防护动作：下游风险存在时必须保持 review/recommendation 降级。\n- 证据：downstream_validation.risk_items | github_repo:1168978399 | https://github.com/chenhg5/cc-connect | no_demo; severity=medium\n\n## 16. 安全/权限坑 · 存在安全注意事项\n\n- 严重度：medium\n- 证据强度：source_linked\n- 发现：No sandbox install has been executed yet; downstream must verify before user use.\n- 对用户的影响：用户安装前需要知道权限边界和敏感操作。\n- 建议检查：转成明确权限清单和安全审查提示。\n- 防护动作：安全注意事项必须面向用户前置展示。\n- 证据：risks.safety_notes | github_repo:1168978399 | https://github.com/chenhg5/cc-connect | No sandbox install has been executed yet; downstream must verify before user use.\n\n## 17. 安全/权限坑 · 存在评分风险\n\n- 严重度：medium\n- 证据强度：source_linked\n- 发现：no_demo\n- 对用户的影响：风险会影响是否适合普通用户安装。\n- 建议检查：把风险写入边界卡，并确认是否需要人工复核。\n- 防护动作：评分风险必须进入边界卡，不能只作为内部分数。\n- 证据：risks.scoring_risks | github_repo:1168978399 | https://github.com/chenhg5/cc-connect | no_demo; severity=medium\n\n## 18. 安全/权限坑 · 来源证据：v1.3.0\n\n- 严重度：medium\n- 证据强度：source_linked\n- 发现：GitHub 社区证据显示该项目存在一个安全/权限相关的待验证问题：v1.3.0\n- 对用户的影响：可能影响授权、密钥配置或安全边界。\n- 建议检查：来源显示可能已有修复、规避或版本变化，说明书中必须标注适用版本。\n- 防护动作：不得脱离来源链接放大为确定性结论；需要标注适用版本和复核状态。\n- 证据：community_evidence:github | cevd_8f40f1ed300048309ccb1501f52a5fd3 | https://github.com/chenhg5/cc-connect/releases/tag/v1.3.0 | 来源讨论提到 npm 相关条件，需在安装/试用前复核。\n\n## 19. 安全/权限坑 · 来源证据：v1.3.0-rc.4\n\n- 严重度：medium\n- 证据强度：source_linked\n- 发现：GitHub 社区证据显示该项目存在一个安全/权限相关的待验证问题：v1.3.0-rc.4\n- 对用户的影响：可能影响授权、密钥配置或安全边界。\n- 建议检查：来源显示可能已有修复、规避或版本变化，说明书中必须标注适用版本。\n- 防护动作：不得脱离来源链接放大为确定性结论；需要标注适用版本和复核状态。\n- 证据：community_evidence:github | cevd_83a9e36b399040b69147511b6daa7275 | https://github.com/chenhg5/cc-connect/releases/tag/v1.3.0-rc.4 | 来源讨论提到 windows 相关条件，需在安装/试用前复核。\n\n## 20. 安全/权限坑 · 来源证据：v1.3.0-rc.5\n\n- 严重度：medium\n- 证据强度：source_linked\n- 发现：GitHub 社区证据显示该项目存在一个安全/权限相关的待验证问题：v1.3.0-rc.5\n- 对用户的影响：可能影响授权、密钥配置或安全边界。\n- 建议检查：来源显示可能已有修复、规避或版本变化，说明书中必须标注适用版本。\n- 防护动作：不得脱离来源链接放大为确定性结论；需要标注适用版本和复核状态。\n- 证据：community_evidence:github | cevd_dc65ca84aa28428b93104b658be55c16 | https://github.com/chenhg5/cc-connect/releases/tag/v1.3.0-rc.5 | 来源类型 github_release 暴露的待验证使用条件。\n\n## 21. 安全/权限坑 · 来源证据：v1.3.2\n\n- 严重度：medium\n- 证据强度：source_linked\n- 发现：GitHub 社区证据显示该项目存在一个安全/权限相关的待验证问题：v1.3.2\n- 对用户的影响：可能影响授权、密钥配置或安全边界。\n- 建议检查：来源显示可能已有修复、规避或版本变化，说明书中必须标注适用版本。\n- 防护动作：不得脱离来源链接放大为确定性结论；需要标注适用版本和复核状态。\n- 证据：community_evidence:github | cevd_2245b50ba3e94323b2228f6ed5b2b73e | https://github.com/chenhg5/cc-connect/releases/tag/v1.3.2 | 来源类型 github_release 暴露的待验证使用条件。\n\n## 22. 安全/权限坑 · 来源证据：v1.3.3-beta.2\n\n- 严重度：medium\n- 证据强度：source_linked\n- 发现：GitHub 社区证据显示该项目存在一个安全/权限相关的待验证问题：v1.3.3-beta.2\n- 对用户的影响：可能影响授权、密钥配置或安全边界。\n- 建议检查：来源显示可能已有修复、规避或版本变化，说明书中必须标注适用版本。\n- 防护动作：不得脱离来源链接放大为确定性结论；需要标注适用版本和复核状态。\n- 证据：community_evidence:github | cevd_4665651336a6450db47e6262a8926c7b | https://github.com/chenhg5/cc-connect/releases/tag/v1.3.3-beta.2 | 来源类型 github_release 暴露的待验证使用条件。\n\n## 23. 维护坑 · issue/PR 响应质量未知\n\n- 严重度：low\n- 证据强度：source_linked\n- 发现：issue_or_pr_quality=unknown。\n- 对用户的影响：用户无法判断遇到问题后是否有人维护。\n- 建议检查：抽样最近 issue/PR，判断是否长期无人处理。\n- 防护动作：issue/PR 响应未知时，必须提示维护风险。\n- 证据：evidence.maintainer_signals | github_repo:1168978399 | https://github.com/chenhg5/cc-connect | issue_or_pr_quality=unknown\n\n## 24. 维护坑 · 发布节奏不明确\n\n- 严重度：low\n- 证据强度：source_linked\n- 发现：release_recency=unknown。\n- 对用户的影响：安装命令和文档可能落后于代码，用户踩坑概率升高。\n- 建议检查：确认最近 release/tag 和 README 安装命令是否一致。\n- 防护动作：发布节奏未知或过期时，安装说明必须标注可能漂移。\n- 证据：evidence.maintainer_signals | github_repo:1168978399 | https://github.com/chenhg5/cc-connect | release_recency=unknown\n\n<!-- canonical_name: chenhg5/cc-connect; human_manual_source: deepwiki_human_wiki -->\n",
      "summary": "DeepWiki/Human Wiki 完整输出，末尾追加 Discovery Agent 踩坑日志。",
      "title": "Human Manual / 人类版说明书"
    },
    "pitfall_log": {
      "asset_id": "pitfall_log",
      "filename": "PITFALL_LOG.md",
      "markdown": "# Pitfall Log / 踩坑日志\n\n项目：chenhg5/cc-connect\n\n摘要：发现 24 个潜在踩坑项，其中 6 个为 high/blocking；最高优先级：安装坑 - 来源证据：[Bug]。\n\n## 1. 安装坑 · 来源证据：[Bug]\n\n- 严重度：high\n- 证据强度：source_linked\n- 发现：GitHub 社区证据显示该项目存在一个安装相关的待验证问题：[Bug]\n- 对用户的影响：可能增加新用户试用和生产接入成本。\n- 建议检查：来源问题仍为 open，Pack Agent 需要复核是否仍影响当前版本。\n- 防护动作：不得脱离来源链接放大为确定性结论；需要标注适用版本和复核状态。\n- 证据：community_evidence:github | cevd_c85c0f8f48ac44c7a855066b2bfc3939 | https://github.com/chenhg5/cc-connect/issues/933 | 来源讨论提到 npm 相关条件，需在安装/试用前复核。\n\n## 2. 安装坑 · 来源证据：[Feature] Preserve full interactive card schema on inbound\n\n- 严重度：high\n- 证据强度：source_linked\n- 发现：GitHub 社区证据显示该项目存在一个安装相关的待验证问题：[Feature] Preserve full interactive card schema on inbound\n- 对用户的影响：可能影响升级、迁移或版本选择。\n- 建议检查：来源问题仍为 open，Pack Agent 需要复核是否仍影响当前版本。\n- 防护动作：不得脱离来源链接放大为确定性结论；需要标注适用版本和复核状态。\n- 证据：community_evidence:github | cevd_f50380a7aef54548ac053b1127a2916e | https://github.com/chenhg5/cc-connect/issues/936 | 来源类型 github_issue 暴露的待验证使用条件。\n\n## 3. 安装坑 · 来源证据：cc-connect 因 SSH 断开被 systemd 停止：需要文档化 `loginctl enable-linger`\n\n- 严重度：high\n- 证据强度：source_linked\n- 发现：GitHub 社区证据显示该项目存在一个安装相关的待验证问题：cc-connect 因 SSH 断开被 systemd 停止：需要文档化 `loginctl enable-linger`\n- 对用户的影响：可能增加新用户试用和生产接入成本。\n- 建议检查：来源问题仍为 open，Pack Agent 需要复核是否仍影响当前版本。\n- 防护动作：不得脱离来源链接放大为确定性结论；需要标注适用版本和复核状态。\n- 证据：community_evidence:github | cevd_3a818efa6ddf479aae0f026d1f06d491 | https://github.com/chenhg5/cc-connect/issues/960 | 来源讨论提到 npm 相关条件，需在安装/试用前复核。\n\n## 4. 配置坑 · 来源证据：Feishu: all messages permanently ignored as 'old message after restart' after every daemon restart (v1.3.3-beta.2)\n\n- 严重度：high\n- 证据强度：source_linked\n- 发现：GitHub 社区证据显示该项目存在一个配置相关的待验证问题：Feishu: all messages permanently ignored as 'old message after restart' after every daemon restart (v1.3.3-beta.2)\n- 对用户的影响：可能增加新用户试用和生产接入成本。\n- 建议检查：来源问题仍为 open，Pack Agent 需要复核是否仍影响当前版本。\n- 防护动作：不得脱离来源链接放大为确定性结论；需要标注适用版本和复核状态。\n- 证据：community_evidence:github | cevd_7b001c45ac3449abaee3dd365bc4cc74 | https://github.com/chenhg5/cc-connect/issues/972 | 来源讨论提到 linux 相关条件，需在安装/试用前复核。\n\n## 5. 配置坑 · 来源证据：[Bug] cc-connect send uses default socket path in custom data_dir agent sessions\n\n- 严重度：high\n- 证据强度：source_linked\n- 发现：GitHub 社区证据显示该项目存在一个配置相关的待验证问题：[Bug] cc-connect send uses default socket path in custom data_dir agent sessions\n- 对用户的影响：可能增加新用户试用和生产接入成本。\n- 建议检查：来源问题仍为 open，Pack Agent 需要复核是否仍影响当前版本。\n- 防护动作：不得脱离来源链接放大为确定性结论；需要标注适用版本和复核状态。\n- 证据：community_evidence:github | cevd_6136e384578b499ca63299322032211a | https://github.com/chenhg5/cc-connect/issues/966 | 来源类型 github_issue 暴露的待验证使用条件。\n\n## 6. 安全/权限坑 · 来源证据：Feature Request: 终端与 IM 双通道统一会话管理\n\n- 严重度：high\n- 证据强度：source_linked\n- 发现：GitHub 社区证据显示该项目存在一个安全/权限相关的待验证问题：Feature Request: 终端与 IM 双通道统一会话管理\n- 对用户的影响：可能影响授权、密钥配置或安全边界。\n- 建议检查：来源问题仍为 open，Pack Agent 需要复核是否仍影响当前版本。\n- 防护动作：不得脱离来源链接放大为确定性结论；需要标注适用版本和复核状态。\n- 证据：community_evidence:github | cevd_befa8b4f1c7f4ef483d6d8b38ba06ba4 | https://github.com/chenhg5/cc-connect/issues/968 | 来源讨论提到 windows 相关条件，需在安装/试用前复核。\n\n## 7. 安装坑 · 来源证据：v1.3.3-beta.1\n\n- 严重度：medium\n- 证据强度：source_linked\n- 发现：GitHub 社区证据显示该项目存在一个安装相关的待验证问题：v1.3.3-beta.1\n- 对用户的影响：可能影响升级、迁移或版本选择。\n- 建议检查：来源显示可能已有修复、规避或版本变化，说明书中必须标注适用版本。\n- 防护动作：不得脱离来源链接放大为确定性结论；需要标注适用版本和复核状态。\n- 证据：community_evidence:github | cevd_5eb39ef63cf14e56aff580db738dcd9f | https://github.com/chenhg5/cc-connect/releases/tag/v1.3.3-beta.1 | 来源讨论提到 npm 相关条件，需在安装/试用前复核。\n\n## 8. 安装坑 · 来源证据：生图 app-icon 请求未稳定转发到 generate-image，且 cc-connect 存在部署漂移风险\n\n- 严重度：medium\n- 证据强度：source_linked\n- 发现：GitHub 社区证据显示该项目存在一个安装相关的待验证问题：生图 app-icon 请求未稳定转发到 generate-image，且 cc-connect 存在部署漂移风险\n- 对用户的影响：可能增加新用户试用和生产接入成本。\n- 建议检查：来源显示可能已有修复、规避或版本变化，说明书中必须标注适用版本。\n- 防护动作：不得脱离来源链接放大为确定性结论；需要标注适用版本和复核状态。\n- 证据：community_evidence:github | cevd_574cca97359b4bc1a8a8fa968ab758cb | https://github.com/chenhg5/cc-connect/issues/967 | 来源讨论提到 node 相关条件，需在安装/试用前复核。\n\n## 9. 配置坑 · 可能修改宿主 AI 配置\n\n- 严重度：medium\n- 证据强度：source_linked\n- 发现：项目面向 Claude/Cursor/Codex/Gemini/OpenCode 等宿主，或安装命令涉及用户配置目录。\n- 对用户的影响：安装可能改变本机 AI 工具行为，用户需要知道写入位置和回滚方法。\n- 建议检查：列出会写入的配置文件、目录和卸载/回滚步骤。\n- 防护动作：涉及宿主配置目录时必须给回滚路径，不能只给安装命令。\n- 证据：capability.host_targets | github_repo:1168978399 | https://github.com/chenhg5/cc-connect | host_targets=claude, claude_code, cursor\n\n## 10. 配置坑 · 来源证据：v1.3.0-rc.3\n\n- 严重度：medium\n- 证据强度：source_linked\n- 发现：GitHub 社区证据显示该项目存在一个配置相关的待验证问题：v1.3.0-rc.3\n- 对用户的影响：可能增加新用户试用和生产接入成本。\n- 建议检查：来源显示可能已有修复、规避或版本变化，说明书中必须标注适用版本。\n- 防护动作：不得脱离来源链接放大为确定性结论；需要标注适用版本和复核状态。\n- 证据：community_evidence:github | cevd_9e274ec877304b369e551afc543b9bae | https://github.com/chenhg5/cc-connect/releases/tag/v1.3.0-rc.3 | 来源类型 github_release 暴露的待验证使用条件。\n\n## 11. 配置坑 · 来源证据：v1.3.1\n\n- 严重度：medium\n- 证据强度：source_linked\n- 发现：GitHub 社区证据显示该项目存在一个配置相关的待验证问题：v1.3.1\n- 对用户的影响：可能影响升级、迁移或版本选择。\n- 建议检查：来源显示可能已有修复、规避或版本变化，说明书中必须标注适用版本。\n- 防护动作：不得脱离来源链接放大为确定性结论；需要标注适用版本和复核状态。\n- 证据：community_evidence:github | cevd_c2e03a5e0cc8465c968bcc252cc2926b | https://github.com/chenhg5/cc-connect/releases/tag/v1.3.1 | 来源类型 github_release 暴露的待验证使用条件。\n\n## 12. 能力坑 · 能力判断依赖假设\n\n- 严重度：medium\n- 证据强度：source_linked\n- 发现：README/documentation is current enough for a first validation pass.\n- 对用户的影响：假设不成立时，用户拿不到承诺的能力。\n- 建议检查：将假设转成下游验证清单。\n- 防护动作：假设必须转成验证项；没有验证结果前不能写成事实。\n- 证据：capability.assumptions | github_repo:1168978399 | https://github.com/chenhg5/cc-connect | README/documentation is current enough for a first validation pass.\n\n## 13. 运行坑 · 来源证据：出现网络波动后，一直显示这个retrying，只能手动重启吗？\n\n- 严重度：medium\n- 证据强度：source_linked\n- 发现：GitHub 社区证据显示该项目存在一个运行相关的待验证问题：出现网络波动后，一直显示这个retrying，只能手动重启吗？\n- 对用户的影响：可能增加新用户试用和生产接入成本。\n- 建议检查：来源显示可能已有修复、规避或版本变化，说明书中必须标注适用版本。\n- 防护动作：不得脱离来源链接放大为确定性结论；需要标注适用版本和复核状态。\n- 证据：community_evidence:github | cevd_8d8f7103758f4f46bffd9b411c81bbf6 | https://github.com/chenhg5/cc-connect/issues/102 | 来源类型 github_issue 暴露的待验证使用条件。\n\n## 14. 维护坑 · 维护活跃度未知\n\n- 严重度：medium\n- 证据强度：source_linked\n- 发现：未记录 last_activity_observed。\n- 对用户的影响：新项目、停更项目和活跃项目会被混在一起，推荐信任度下降。\n- 建议检查：补 GitHub 最近 commit、release、issue/PR 响应信号。\n- 防护动作：维护活跃度未知时，推荐强度不能标为高信任。\n- 证据：evidence.maintainer_signals | github_repo:1168978399 | https://github.com/chenhg5/cc-connect | last_activity_observed missing\n\n## 15. 安全/权限坑 · 下游验证发现风险项\n\n- 严重度：medium\n- 证据强度：source_linked\n- 发现：no_demo\n- 对用户的影响：下游已经要求复核，不能在页面中弱化。\n- 建议检查：进入安全/权限治理复核队列。\n- 防护动作：下游风险存在时必须保持 review/recommendation 降级。\n- 证据：downstream_validation.risk_items | github_repo:1168978399 | https://github.com/chenhg5/cc-connect | no_demo; severity=medium\n\n## 16. 安全/权限坑 · 存在安全注意事项\n\n- 严重度：medium\n- 证据强度：source_linked\n- 发现：No sandbox install has been executed yet; downstream must verify before user use.\n- 对用户的影响：用户安装前需要知道权限边界和敏感操作。\n- 建议检查：转成明确权限清单和安全审查提示。\n- 防护动作：安全注意事项必须面向用户前置展示。\n- 证据：risks.safety_notes | github_repo:1168978399 | https://github.com/chenhg5/cc-connect | No sandbox install has been executed yet; downstream must verify before user use.\n\n## 17. 安全/权限坑 · 存在评分风险\n\n- 严重度：medium\n- 证据强度：source_linked\n- 发现：no_demo\n- 对用户的影响：风险会影响是否适合普通用户安装。\n- 建议检查：把风险写入边界卡，并确认是否需要人工复核。\n- 防护动作：评分风险必须进入边界卡，不能只作为内部分数。\n- 证据：risks.scoring_risks | github_repo:1168978399 | https://github.com/chenhg5/cc-connect | no_demo; severity=medium\n\n## 18. 安全/权限坑 · 来源证据：v1.3.0\n\n- 严重度：medium\n- 证据强度：source_linked\n- 发现：GitHub 社区证据显示该项目存在一个安全/权限相关的待验证问题：v1.3.0\n- 对用户的影响：可能影响授权、密钥配置或安全边界。\n- 建议检查：来源显示可能已有修复、规避或版本变化，说明书中必须标注适用版本。\n- 防护动作：不得脱离来源链接放大为确定性结论；需要标注适用版本和复核状态。\n- 证据：community_evidence:github | cevd_8f40f1ed300048309ccb1501f52a5fd3 | https://github.com/chenhg5/cc-connect/releases/tag/v1.3.0 | 来源讨论提到 npm 相关条件，需在安装/试用前复核。\n\n## 19. 安全/权限坑 · 来源证据：v1.3.0-rc.4\n\n- 严重度：medium\n- 证据强度：source_linked\n- 发现：GitHub 社区证据显示该项目存在一个安全/权限相关的待验证问题：v1.3.0-rc.4\n- 对用户的影响：可能影响授权、密钥配置或安全边界。\n- 建议检查：来源显示可能已有修复、规避或版本变化，说明书中必须标注适用版本。\n- 防护动作：不得脱离来源链接放大为确定性结论；需要标注适用版本和复核状态。\n- 证据：community_evidence:github | cevd_83a9e36b399040b69147511b6daa7275 | https://github.com/chenhg5/cc-connect/releases/tag/v1.3.0-rc.4 | 来源讨论提到 windows 相关条件，需在安装/试用前复核。\n\n## 20. 安全/权限坑 · 来源证据：v1.3.0-rc.5\n\n- 严重度：medium\n- 证据强度：source_linked\n- 发现：GitHub 社区证据显示该项目存在一个安全/权限相关的待验证问题：v1.3.0-rc.5\n- 对用户的影响：可能影响授权、密钥配置或安全边界。\n- 建议检查：来源显示可能已有修复、规避或版本变化，说明书中必须标注适用版本。\n- 防护动作：不得脱离来源链接放大为确定性结论；需要标注适用版本和复核状态。\n- 证据：community_evidence:github | cevd_dc65ca84aa28428b93104b658be55c16 | https://github.com/chenhg5/cc-connect/releases/tag/v1.3.0-rc.5 | 来源类型 github_release 暴露的待验证使用条件。\n\n## 21. 安全/权限坑 · 来源证据：v1.3.2\n\n- 严重度：medium\n- 证据强度：source_linked\n- 发现：GitHub 社区证据显示该项目存在一个安全/权限相关的待验证问题：v1.3.2\n- 对用户的影响：可能影响授权、密钥配置或安全边界。\n- 建议检查：来源显示可能已有修复、规避或版本变化，说明书中必须标注适用版本。\n- 防护动作：不得脱离来源链接放大为确定性结论；需要标注适用版本和复核状态。\n- 证据：community_evidence:github | cevd_2245b50ba3e94323b2228f6ed5b2b73e | https://github.com/chenhg5/cc-connect/releases/tag/v1.3.2 | 来源类型 github_release 暴露的待验证使用条件。\n\n## 22. 安全/权限坑 · 来源证据：v1.3.3-beta.2\n\n- 严重度：medium\n- 证据强度：source_linked\n- 发现：GitHub 社区证据显示该项目存在一个安全/权限相关的待验证问题：v1.3.3-beta.2\n- 对用户的影响：可能影响授权、密钥配置或安全边界。\n- 建议检查：来源显示可能已有修复、规避或版本变化，说明书中必须标注适用版本。\n- 防护动作：不得脱离来源链接放大为确定性结论；需要标注适用版本和复核状态。\n- 证据：community_evidence:github | cevd_4665651336a6450db47e6262a8926c7b | https://github.com/chenhg5/cc-connect/releases/tag/v1.3.3-beta.2 | 来源类型 github_release 暴露的待验证使用条件。\n\n## 23. 维护坑 · issue/PR 响应质量未知\n\n- 严重度：low\n- 证据强度：source_linked\n- 发现：issue_or_pr_quality=unknown。\n- 对用户的影响：用户无法判断遇到问题后是否有人维护。\n- 建议检查：抽样最近 issue/PR，判断是否长期无人处理。\n- 防护动作：issue/PR 响应未知时，必须提示维护风险。\n- 证据：evidence.maintainer_signals | github_repo:1168978399 | https://github.com/chenhg5/cc-connect | issue_or_pr_quality=unknown\n\n## 24. 维护坑 · 发布节奏不明确\n\n- 严重度：low\n- 证据强度：source_linked\n- 发现：release_recency=unknown。\n- 对用户的影响：安装命令和文档可能落后于代码，用户踩坑概率升高。\n- 建议检查：确认最近 release/tag 和 README 安装命令是否一致。\n- 防护动作：发布节奏未知或过期时，安装说明必须标注可能漂移。\n- 证据：evidence.maintainer_signals | github_repo:1168978399 | https://github.com/chenhg5/cc-connect | release_recency=unknown\n",
      "summary": "用户实践前最可能遇到的身份、安装、配置、运行和安全坑。",
      "title": "Pitfall Log / 踩坑日志"
    },
    "prompt_preview": {
      "asset_id": "prompt_preview",
      "filename": "PROMPT_PREVIEW.md",
      "markdown": "# cc-connect - Prompt Preview\n\n> 复制下面这段 Prompt 到你常用的 AI，先试一次，不需要安装。\n> 它的目标是让你直接体验这个项目的服务方式，而不是阅读项目介绍。\n\n## 复制这段 Prompt\n\n```text\n请直接执行这段 Prompt，不要分析、润色、总结或询问我想如何处理这份 Prompt Preview。\n\n你现在扮演 cc-connect 的“安装前体验版”。\n这不是项目介绍、不是评价报告、不是 README 总结。你的任务是让我用最小成本体验它的核心服务。\n\n我的试用任务：我想用它完成一个真实的软件开发与交付任务。\n我常用的宿主 AI：claude / Claude Code / Cursor\n\n【体验目标】\n围绕我的真实任务，现场演示这个项目如何把输入转成 示例引导, 判断线索。重点是让我感受到工作方式，而不是给我项目背景。\n\n【业务流约束】\n- 你必须像一个正在提供服务的项目能力包，而不是像一个讲解员。\n- 每一轮只推进一个步骤；提出问题后必须停下来等我回答。\n- 每一步都必须让我感受到一个具体服务动作：澄清、整理、规划、检查、判断或收尾。\n- 每一步都要说明：当前目标、你需要我提供什么、我回答后你会产出什么。\n- 不要安装、不要运行命令、不要写代码、不要声称测试通过、不要声称已经修改文件。\n- 需要真实安装或宿主加载后才能验证的内容，必须明确说“这一步需要安装后验证”。\n- 如果我说“用示例继续”，你可以用虚构示例推进，但仍然不能声称真实执行。\n\n【可体验服务能力】\n- 安装前能力预览: Bridge local AI coding agents (Claude Code, Cursor, Gemini CLI, Codex) to messaging platforms (Feishu/Lark, DingTalk, Slack, Telegram, Discord, LINE, WeChat Work). Chat with your AI dev assistant from anywhere — no public IP required for most platforms. 输入：用户任务, 当前 AI 对话上下文；输出：示例引导, 判断线索。\n\n【必须安装后才可验证的能力】\n- 命令行启动或安装流程: 项目文档中存在可执行命令，真实使用需要在本地或宿主环境中运行这些命令。 输入：终端环境, 包管理器, 项目依赖；输出：安装结果, 列表/更新/运行结果。\n\n【核心服务流】\n请严格按这个顺序带我体验。不要一次性输出完整流程：\n1. overview：项目概述。围绕“项目概述”模拟一次用户任务，不展示安装或运行结果。\n2. architecture：系统架构。围绕“系统架构”模拟一次用户任务，不展示安装或运行结果。\n3. core-interfaces：核心接口定义。围绕“核心接口定义”模拟一次用户任务，不展示安装或运行结果。\n4. bridge-protocol：Bridge 协议。围绕“Bridge 协议”模拟一次用户任务，不展示安装或运行结果。\n5. agent-overview：Agent 集成概述。围绕“Agent 集成概述”模拟一次用户任务，不展示安装或运行结果。\n\n【核心能力体验剧本】\n每一步都必须按“输入 -> 服务动作 -> 中间产物”执行。不要只说流程名：\n1. overview\n输入：用户提供的“项目概述”相关信息。\n服务动作：模拟项目在这一步的核心判断和整理方式。\n中间产物：一个可检查的小结果。\n\n2. architecture\n输入：用户提供的“系统架构”相关信息。\n服务动作：模拟项目在这一步的核心判断和整理方式。\n中间产物：一个可检查的小结果。\n\n3. core-interfaces\n输入：用户提供的“核心接口定义”相关信息。\n服务动作：模拟项目在这一步的核心判断和整理方式。\n中间产物：一个可检查的小结果。\n\n4. bridge-protocol\n输入：用户提供的“Bridge 协议”相关信息。\n服务动作：模拟项目在这一步的核心判断和整理方式。\n中间产物：一个可检查的小结果。\n\n5. agent-overview\n输入：用户提供的“Agent 集成概述”相关信息。\n服务动作：模拟项目在这一步的核心判断和整理方式。\n中间产物：一个可检查的小结果。\n\n【项目服务规则】\n这些规则决定你如何服务用户。不要解释规则本身，而要在每一步执行时遵守：\n- 先确认用户任务、输入材料和成功标准，再模拟项目能力。\n- 每一步都必须形成可检查的小产物，并等待用户确认后再继续。\n- 凡是需要安装、调用工具或访问外部服务的能力，都必须标记为安装后验证。\n\n【每一步的服务约束】\n- Step 1 / overview：Step 1 必须围绕“项目概述”形成一个小中间产物，并等待用户确认。\n- Step 2 / architecture：Step 2 必须围绕“系统架构”形成一个小中间产物，并等待用户确认。\n- Step 3 / core-interfaces：Step 3 必须围绕“核心接口定义”形成一个小中间产物，并等待用户确认。\n- Step 4 / bridge-protocol：Step 4 必须围绕“Bridge 协议”形成一个小中间产物，并等待用户确认。\n- Step 5 / agent-overview：Step 5 必须围绕“Agent 集成概述”形成一个小中间产物，并等待用户确认。\n\n【边界与风险】\n- 不要声称已经安装、运行、调用 API、读写本地文件或完成真实任务。\n- 安装前预览只能展示工作方式，不能证明兼容性、性能或输出质量。\n- 涉及安装、插件加载、工具调用或外部服务的能力必须安装后验证。\n\n【可追溯依据】\n这些路径只用于你内部校验或在我追问“依据是什么”时简要引用。不要在首次回复主动展开：\n- https://github.com/chenhg5/cc-connect\n- https://github.com/chenhg5/cc-connect#readme\n- README.md\n- README.zh-CN.md\n- go.mod\n- core/engine.go\n- core/bridge.go\n- core/registry.go\n- docs/images/connector.png\n- core/interfaces.go\n- core/session.go\n- core/provider.go\n\n【首次问题规则】\n- 首次三问必须先确认用户目标、成功标准和边界，不要提前进入工具、安装或实现细节。\n- 如果后续需要技术条件、文件路径或运行环境，必须等用户确认目标后再追问。\n\n首次回复必须只输出下面 4 个部分：\n1. 体验开始：用 1 句话说明你将带我体验 cc-connect 的核心服务。\n2. 当前步骤：明确进入 Step 1，并说明这一步要解决什么。\n3. 你会如何服务我：说明你会先改变我完成任务的哪个动作。\n4. 只问我 3 个问题，然后停下等待回答。\n\n首次回复禁止输出：后续完整流程、证据清单、安装命令、项目评价、营销文案、已经安装或运行的说法。\n\nStep 1 / brainstorming 的二轮协议：\n- 我回答首次三问后，你仍然停留在 Step 1 / brainstorming，不要进入 Step 2。\n- 第二次回复必须产出 6 个部分：澄清后的任务定义、成功标准、边界条件、\n  2-3 个可选方案、每个方案的权衡、推荐方案。\n- 第二次回复最后必须问我是否确认推荐方案；只有我明确确认后，才能进入下一步。\n- 第二次回复禁止输出 git worktree、代码计划、测试文件、命令或真实执行结果。\n\n后续对话规则：\n- 我回答后，你先完成当前步骤的中间产物并等待确认；只有我确认后，才能进入下一步。\n- 每一步都要生成一个小的中间产物，例如澄清后的目标、计划草案、测试意图、验证清单或继续/停止判断。\n- 所有演示都写成“我会建议/我会引导/这一步会形成”，不要写成已经真实执行。\n- 不要声称已经测试通过、文件已修改、命令已运行或结果已产生。\n- 如果某个能力必须安装后验证，请直接说“这一步需要安装后验证”。\n- 如果证据不足，请明确说“证据不足”，不要补事实。\n```\n",
      "summary": "不安装项目也能感受能力节奏的安全试用 Prompt。",
      "title": "Prompt Preview / 安装前试用 Prompt"
    },
    "quick_start": {
      "asset_id": "quick_start",
      "filename": "QUICK_START.md",
      "markdown": "# Quick Start / 官方入口\n\n项目：chenhg5/cc-connect\n\n## 官方安装入口\n\n### Node.js / npm · 官方安装入口\n\n```bash\nnpm install -g cc-connect\n```\n\n来源：https://github.com/chenhg5/cc-connect#readme\n\n## 来源\n\n- repo: https://github.com/chenhg5/cc-connect\n- docs: https://github.com/chenhg5/cc-connect#readme\n",
      "summary": "从项目官方 README 或安装文档提取的开工入口。",
      "title": "Quick Start / 官方入口"
    }
  },
  "validation_id": "dval_8f0580deba58437fb38beeba6aed26ac"
}
