{
  "canonical_name": "continuedev/continue",
  "compilation_id": "pack_cda8ab5982944a289fafe4a8f230d647",
  "created_at": "2026-05-19T06:33:58.743236+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 i -g @continuedev/cli` 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 i -g @continuedev/cli",
      "sandbox_container_image": "node:22-slim",
      "sandbox_execution_backend": "docker",
      "sandbox_planner_decision": "deterministic_isolated_install",
      "sandbox_validation_id": "sbx_e95e6b94eb534e7d8d8ca8fab43d62e3"
    },
    "feedback_event_type": "project_pack_compilation_feedback",
    "learning_candidate_reasons": [],
    "template_gaps": []
  },
  "identity": {
    "canonical_id": "project_83a907384e6a865be7095e746853c104",
    "canonical_name": "continuedev/continue",
    "homepage_url": null,
    "license": "unknown",
    "repo_url": "https://github.com/continuedev/continue",
    "slug": "continue",
    "source_packet_id": "phit_c161de6efc9a4cfa932ede2d149bf3d3",
    "source_validation_id": "dval_50109bb4e45c493d88bcd9d58e7a3712"
  },
  "merchandising": {
    "best_for": "需要软件开发与交付能力，并使用 local_cli的用户",
    "github_forks": 4498,
    "github_stars": 33149,
    "one_liner_en": "⏩ Source-controlled AI checks, enforceable in CI. Powered by the open-source Continue CLI",
    "one_liner_zh": "⏩ Source-controlled AI checks, enforceable in CI. Powered by the open-source Continue CLI",
    "primary_category": {
      "category_id": "software-development",
      "confidence": "high",
      "name_en": "Software Development",
      "name_zh": "软件开发与交付",
      "reason": "matched_keywords:git, ci, cli"
    },
    "target_user": "使用 local_cli 等宿主 AI 的用户",
    "title_en": "continue",
    "title_zh": "continue 能力包",
    "visible_tags": [
      {
        "label_en": "Browser Agents",
        "label_zh": "浏览器 Agent",
        "source": "repo_evidence_project_characteristics",
        "tag_id": "product_domain-browser-agents",
        "type": "product_domain"
      },
      {
        "label_en": "Web Task Automation",
        "label_zh": "网页任务自动化",
        "source": "repo_evidence_project_characteristics",
        "tag_id": "user_job-web-task-automation",
        "type": "user_job"
      },
      {
        "label_en": "Browser Automation",
        "label_zh": "浏览器自动化",
        "source": "repo_evidence_project_characteristics",
        "tag_id": "core_capability-browser-automation",
        "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_c161de6efc9a4cfa932ede2d149bf3d3",
  "page_model": {
    "artifacts": {
      "artifact_slug": "continue",
      "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 i -g @continuedev/cli",
          "label": "Node.js / npm · 官方安装入口",
          "source": "https://github.com/continuedev/continue#readme",
          "verified": true
        }
      ],
      "display_tags": [
        "浏览器 Agent",
        "网页任务自动化",
        "浏览器自动化",
        "断点恢复流程",
        "评测体系"
      ],
      "eyebrow": "软件开发与交付",
      "glance": [
        {
          "body": "判断自己是不是目标用户。",
          "label": "最适合谁",
          "value": "需要软件开发与交付能力，并使用 local_cli的用户"
        },
        {
          "body": "先理解能力边界，再决定是否继续。",
          "label": "核心价值",
          "value": "⏩ Source-controlled AI checks, enforceable in CI. Powered by the open-source Continue CLI"
        },
        {
          "body": "未完成验证前保持审慎。",
          "label": "继续前",
          "value": "publish to Doramagic.ai project surfaces"
        }
      ],
      "guardrail_source": "Boundary & Risk Card",
      "guardrails": [
        {
          "body": "Prompt Preview 只展示流程，不证明项目已安装或运行。",
          "label": "Check 1",
          "value": "不要把试用当真实运行"
        },
        {
          "body": "local_cli",
          "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 社区证据显示该项目存在一个安装相关的待验证问题：\"Headers not defined\" -> This time with logs",
            "category": "安装坑",
            "evidence": [
              "community_evidence:github | cevd_0c0fcf2034914a62a81e3374d2d7d0a5 | https://github.com/continuedev/continue/issues/12163 | 来源讨论提到 linux 相关条件，需在安装/试用前复核。"
            ],
            "severity": "high",
            "suggested_check": "来源问题仍为 open，Pack Agent 需要复核是否仍影响当前版本。",
            "title": "来源证据：\"Headers not defined\" -> This time with logs",
            "user_impact": "可能增加新用户试用和生产接入成本。"
          },
          {
            "body": "GitHub 社区证据显示该项目存在一个配置相关的待验证问题：(sse) mcp restarts breaks communication",
            "category": "配置坑",
            "evidence": [
              "community_evidence:github | cevd_5cb9bc1f10144ec7948f8784dc25bf12 | https://github.com/continuedev/continue/issues/12431 | 来源类型 github_issue 暴露的待验证使用条件。"
            ],
            "severity": "high",
            "suggested_check": "来源问题仍为 open，Pack Agent 需要复核是否仍影响当前版本。",
            "title": "来源证据：(sse) mcp restarts breaks communication",
            "user_impact": "可能增加新用户试用和生产接入成本。"
          },
          {
            "body": "GitHub 社区证据显示该项目存在一个配置相关的待验证问题：Continue fails to stablish mTLS connection with server",
            "category": "配置坑",
            "evidence": [
              "community_evidence:github | cevd_01756ce44b144ad4a34ea4c5e99e339b | https://github.com/continuedev/continue/issues/8470 | 来源讨论提到 windows 相关条件，需在安装/试用前复核。"
            ],
            "severity": "high",
            "suggested_check": "来源问题仍为 open，Pack Agent 需要复核是否仍影响当前版本。",
            "title": "来源证据：Continue fails to stablish mTLS connection with server",
            "user_impact": "可能增加新用户试用和生产接入成本。"
          },
          {
            "body": "GitHub 社区证据显示该项目存在一个配置相关的待验证问题：Session Workspace always assumes first workspace folder",
            "category": "配置坑",
            "evidence": [
              "community_evidence:github | cevd_1e621c9277a64cb581639efad6bd6b73 | https://github.com/continuedev/continue/issues/4539 | 来源类型 github_issue 暴露的待验证使用条件。"
            ],
            "severity": "high",
            "suggested_check": "来源问题仍为 open，Pack Agent 需要复核是否仍影响当前版本。",
            "title": "来源证据：Session Workspace always assumes first workspace folder",
            "user_impact": "可能增加新用户试用和生产接入成本。"
          },
          {
            "body": "Developers should check this security_permissions risk before relying on the project: PR checks do not create fresh agent sessions on PR updates; stale task IDs re-post to new commits",
            "category": "安全/权限坑",
            "evidence": [
              "failure_mode_cluster:github_issue | fmev_07a692e49161cfab20c466f1f0b957d1 | https://github.com/continuedev/continue/issues/12382 | PR checks do not create fresh agent sessions on PR updates; stale task IDs re-post to new commits"
            ],
            "severity": "high",
            "suggested_check": "Before packaging this project, run the relevant install/config/quickstart check for: PR checks do not create fresh agent sessions on PR updates; stale task IDs re-post to new commits. Context: Observed when using macos",
            "title": "失败模式：security_permissions: PR checks do not create fresh agent sessions on PR updates; stale task IDs re-post to new com...",
            "user_impact": "Developers may expose sensitive permissions or credentials: PR checks do not create fresh agent sessions on PR updates; stale task IDs re-post to new commits"
          },
          {
            "body": "GitHub 社区证据显示该项目存在一个安全/权限相关的待验证问题：Autocomplete for code is not working",
            "category": "安全/权限坑",
            "evidence": [
              "community_evidence:github | cevd_e1f8ba56c9b140e8a61444ad20181cd9 | https://github.com/continuedev/continue/issues/12298 | 来源讨论提到 windows 相关条件，需在安装/试用前复核。"
            ],
            "severity": "high",
            "suggested_check": "来源问题仍为 open，Pack Agent 需要复核是否仍影响当前版本。",
            "title": "来源证据：Autocomplete for code is not working",
            "user_impact": "可能影响授权、密钥配置或安全边界。"
          },
          {
            "body": "GitHub 社区证据显示该项目存在一个安全/权限相关的待验证问题：Make the user settings declarative",
            "category": "安全/权限坑",
            "evidence": [
              "community_evidence:github | cevd_a5ebcd3bc7be4e949b45351fd5b06873 | https://github.com/continuedev/continue/issues/5438 | 来源讨论提到 api key 相关条件，需在安装/试用前复核。"
            ],
            "severity": "high",
            "suggested_check": "来源问题仍为 open，Pack Agent 需要复核是否仍影响当前版本。",
            "title": "来源证据：Make the user settings declarative",
            "user_impact": "可能影响升级、迁移或版本选择。"
          },
          {
            "body": "GitHub 社区证据显示该项目存在一个安全/权限相关的待验证问题：Responses from LLM's running from LocalAI are not detected",
            "category": "安全/权限坑",
            "evidence": [
              "community_evidence:github | cevd_8aabc2e01f8646e2a22d44dbcad4ad99 | https://github.com/continuedev/continue/issues/10113 | 来源讨论提到 python 相关条件，需在安装/试用前复核。"
            ],
            "severity": "high",
            "suggested_check": "来源问题仍为 open，Pack Agent 需要复核是否仍影响当前版本。",
            "title": "来源证据：Responses from LLM's running from LocalAI are not detected",
            "user_impact": "可能影响授权、密钥配置或安全边界。"
          },
          {
            "body": "Developers should check this installation risk before relying on the project: Support Context7",
            "category": "安装坑",
            "evidence": [
              "failure_mode_cluster:github_issue | fmev_dd0ac59c1a237815f09072ae6ef6bbbd | https://github.com/continuedev/continue/issues/5836 | Support Context7"
            ],
            "severity": "medium",
            "suggested_check": "Before packaging this project, run the relevant install/config/quickstart check for: Support Context7. Context: Observed during installation or first-run setup.",
            "title": "失败模式：installation: Support Context7",
            "user_impact": "Developers may fail before the first successful local run: Support Context7"
          },
          {
            "body": "Developers should check this installation risk before relying on the project: Terminal commands fail when `$SHELL` is set to `tcsh` due to hardcoded `-l` shell flag",
            "category": "安装坑",
            "evidence": [
              "failure_mode_cluster:github_issue | fmev_682551ed88a7b527a9f1207eecd2a1c6 | https://github.com/continuedev/continue/issues/12378 | Terminal commands fail when `$SHELL` is set to `tcsh` due to hardcoded `-l` shell flag"
            ],
            "severity": "medium",
            "suggested_check": "Before packaging this project, run the relevant install/config/quickstart check for: Terminal commands fail when `$SHELL` is set to `tcsh` due to hardcoded `-l` shell flag. Context: Observed when using linux",
            "title": "失败模式：installation: Terminal commands fail when `$SHELL` is set to `tcsh` due to hardcoded `-l` shell flag",
            "user_impact": "Developers may fail before the first successful local run: Terminal commands fail when `$SHELL` is set to `tcsh` due to hardcoded `-l` shell flag"
          },
          {
            "body": "Developers should check this installation risk before relying on the project: The extension doesn't show up at all.",
            "category": "安装坑",
            "evidence": [
              "failure_mode_cluster:github_issue | fmev_1a64ddb9e5d24401d02abdc046398202 | https://github.com/continuedev/continue/issues/1312 | The extension doesn't show up at all."
            ],
            "severity": "medium",
            "suggested_check": "Before packaging this project, run the relevant install/config/quickstart check for: The extension doesn't show up at all.. Context: Observed when using windows",
            "title": "失败模式：installation: The extension doesn't show up at all.",
            "user_impact": "Developers may fail before the first successful local run: The extension doesn't show up at all."
          },
          {
            "body": "GitHub 社区证据显示该项目存在一个安装相关的待验证问题：Support Context7",
            "category": "安装坑",
            "evidence": [
              "community_evidence:github | cevd_fa7735b8be6f4ac9840501ac84eb7e9a | https://github.com/continuedev/continue/issues/5836 | 来源类型 github_issue 暴露的待验证使用条件。"
            ],
            "severity": "medium",
            "suggested_check": "来源显示可能已有修复、规避或版本变化，说明书中必须标注适用版本。",
            "title": "来源证据：Support Context7",
            "user_impact": "可能增加新用户试用和生产接入成本。"
          },
          {
            "body": "GitHub 社区证据显示该项目存在一个安装相关的待验证问题：Terminal commands fail when `$SHELL` is set to `tcsh` due to hardcoded `-l` shell flag",
            "category": "安装坑",
            "evidence": [
              "community_evidence:github | cevd_823b2e0ae1ad49a78bd0a45d39a3099a | https://github.com/continuedev/continue/issues/12378 | 来源讨论提到 linux 相关条件，需在安装/试用前复核。"
            ],
            "severity": "medium",
            "suggested_check": "来源问题仍为 open，Pack Agent 需要复核是否仍影响当前版本。",
            "title": "来源证据：Terminal commands fail when `$SHELL` is set to `tcsh` due to hardcoded `-l` shell flag",
            "user_impact": "可能增加新用户试用和生产接入成本。"
          },
          {
            "body": "GitHub 社区证据显示该项目存在一个安装相关的待验证问题：The extension doesn't show up at all.",
            "category": "安装坑",
            "evidence": [
              "community_evidence:github | cevd_5d86070fe9d941ad9a44f1d09464b582 | https://github.com/continuedev/continue/issues/1312 | 来源讨论提到 windows 相关条件，需在安装/试用前复核。"
            ],
            "severity": "medium",
            "suggested_check": "来源显示可能已有修复、规避或版本变化，说明书中必须标注适用版本。",
            "title": "来源证据：The extension doesn't show up at all.",
            "user_impact": "可能增加新用户试用和生产接入成本。"
          },
          {
            "body": "Developers should check this configuration risk before relying on the project: \"Headers not defined\" -> This time with logs",
            "category": "配置坑",
            "evidence": [
              "failure_mode_cluster:github_issue | fmev_b136994a3d92fcde3550fdd83c67a11a | https://github.com/continuedev/continue/issues/12163 | \"Headers not defined\" -> This time with logs"
            ],
            "severity": "medium",
            "suggested_check": "Before packaging this project, run the relevant install/config/quickstart check for: \"Headers not defined\" -> This time with logs. Context: Observed when using linux",
            "title": "失败模式：configuration: \"Headers not defined\" -> This time with logs",
            "user_impact": "Developers may misconfigure credentials, environment, or host setup: \"Headers not defined\" -> This time with logs"
          },
          {
            "body": "Developers should check this configuration risk before relying on the project: 400 Error",
            "category": "配置坑",
            "evidence": [
              "failure_mode_cluster:github_issue | fmev_17872a6a18ab3c162f5282a7fd2f789c | https://github.com/continuedev/continue/issues/5079 | 400 Error"
            ],
            "severity": "medium",
            "suggested_check": "Before packaging this project, run the relevant install/config/quickstart check for: 400 Error. Context: Observed when using python, windows",
            "title": "失败模式：configuration: 400 Error",
            "user_impact": "Developers may misconfigure credentials, environment, or host setup: 400 Error"
          }
        ],
        "source": "ProjectPitfallLog + ProjectHitPacket + validation + community signals",
        "summary": "发现 38 个潜在踩坑项，其中 8 个为 high/blocking；最高优先级：安装坑 - 来源证据：\"Headers not defined\" -> This time with logs。",
        "title": "踩坑日志"
      },
      "snapshot": {
        "contributors": 507,
        "forks": 4498,
        "license": "unknown",
        "note": "站点快照，非实时质量证明；用于开工前背景判断。",
        "stars": 33149
      },
      "source_url": "https://github.com/continuedev/continue",
      "steps": [
        {
          "body": "不安装项目，先体验能力节奏。",
          "code": "preview",
          "title": "先试 Prompt"
        },
        {
          "body": "理解输入、输出、失败模式和边界。",
          "code": "manual",
          "title": "读说明书"
        },
        {
          "body": "把上下文交给宿主 AI 继续工作。",
          "code": "context",
          "title": "带给 AI"
        },
        {
          "body": "进入主力环境前先完成安装入口与风险边界验证。",
          "code": "verify",
          "title": "沙箱验证"
        }
      ],
      "subtitle": "⏩ Source-controlled AI checks, enforceable in CI. Powered by the open-source Continue CLI",
      "title": "continue 能力包",
      "trial_prompt": "# continue - Prompt Preview\n\n> Copy the prompt below into your AI host before installing anything.\n> Its purpose is to let you safely feel the project's workflow, not to claim the project has already run.\n\n## Copy this prompt\n\n```text\nYou are using an independent Doramagic capability pack for continuedev/continue.\n\nProject:\n- Name: continue\n- Repository: https://github.com/continuedev/continue\n- Summary: ⏩ Source-controlled AI checks, enforceable in CI. Powered by the open-source Continue CLI\n- Host target: local_cli\n\nGoal:\nHelp me evaluate this project for the following task without installing it yet: ⏩ Source-controlled AI checks, enforceable in CI. Powered by the open-source Continue CLI\n\nBefore taking action:\n1. Restate my task, success standard, and boundary.\n2. Identify whether the next step requires tools, browser access, network access, filesystem access, credentials, package installation, or host configuration.\n3. Use only the Doramagic Project Pack, the upstream repository, and the source-linked evidence listed below.\n4. If a real command, install step, API call, file write, or host integration is required, mark it as \"requires post-install verification\" and ask for approval first.\n5. If evidence is missing, say \"evidence is missing\" instead of filling the gap.\n\nPreviewable capabilities:\n- Capability 1: Use the source-backed project context to guide one small, checkable workflow step.\n\nCapabilities that require post-install verification:\n- Capability 1: Use the source-backed project context to guide one small, checkable workflow step.\n\nCore service flow:\n1. architecture-overview: Architecture Overview. Produce one small intermediate artifact and wait for confirmation.\n2. protocol-communication: Protocol and Communication. Produce one small intermediate artifact and wait for confirmation.\n3. core-library: Core Library. Produce one small intermediate artifact and wait for confirmation.\n4. ide-extensions: IDE Extensions. Produce one small intermediate artifact and wait for confirmation.\n5. cli-tool: CLI Tool. Produce one small intermediate artifact and wait for confirmation.\n\nSource-backed evidence to keep in mind:\n- https://github.com/continuedev/continue\n- https://github.com/continuedev/continue#readme\n- .claude/skills/docs-style/SKILL.md\n- skills/cn-check/SKILL.md\n- core/package.json\n- core/core.ts\n- package.json\n- core/protocol/core.ts\n- core/protocol/ide.ts\n- core/protocol/messenger/index.ts\n\nFirst response rules:\n1. Start Step 1 only.\n2. Explain the one service action you will perform first.\n3. Ask exactly three questions about my target workflow, success standard, and sandbox boundary.\n4. Stop and wait for my answers.\n\nStep 1 follow-up protocol:\n- After I answer the first three questions, stay in Step 1.\n- Produce six parts only: clarified task, success standard, boundary conditions, two or three options, tradeoffs for each option, and one recommendation.\n- End by asking whether I confirm the recommendation.\n- Do not move to Step 2 until I explicitly confirm.\n\nConversation rules:\n- Advance one step at a time and wait for confirmation after each small artifact.\n- Write outputs as recommendations or planned checks, not as completed execution.\n- Do not claim tests passed, files changed, commands ran, APIs were called, or the project was installed.\n- If the user asks for execution, first provide the sandbox setup, expected output, rollback, and approval checkpoint.\n```\n",
      "voices": [
        {
          "body": "来源平台：github。github/github_issue: \"Headers not defined\" -> This time with logs（https://github.com/continuedev/continue/issues/12163）；github/github_issue: Responses from LLM's running from LocalAI are not detected（https://github.com/continuedev/continue/issues/10113）；github/github_issue: 400 Error（https://github.com/continuedev/continue/issues/5079）；github/github_issue: Unresponsive - continue.focusCOntntinueinput already registered by conti（https://github.com/continuedev/continue/issues/7801）；github/github_issue: Size limit for Read_File（https://github.com/continuedev/continue/issues/12432）；github/github_issue: Autocomplete for code is not working（https://github.com/continuedev/continue/issues/12298）；github/github_issue: Make the user settings declarative（https://github.com/continuedev/continue/issues/5438）；github/github_issue: (sse) mcp restarts breaks communication（https://github.com/continuedev/continue/issues/12431）；github/github_issue: Session Workspace always assumes first workspace folder（https://github.com/continuedev/continue/issues/4539）；github/github_issue: Support Context7（https://github.com/continuedev/continue/issues/5836）；github/github_issue: Continue fails to stablish mTLS connection with server（https://github.com/continuedev/continue/issues/8470）；github/github_issue: Login failed with \"Not authenticated (user missing)\" after account setup（https://github.com/continuedev/continue/issues/12424）。这些是项目级外部声音，不作为单独质量证明。",
          "items": [
            {
              "kind": "github_issue",
              "source": "github",
              "title": "\"Headers not defined\" -> This time with logs",
              "url": "https://github.com/continuedev/continue/issues/12163"
            },
            {
              "kind": "github_issue",
              "source": "github",
              "title": "Responses from LLM's running from LocalAI are not detected",
              "url": "https://github.com/continuedev/continue/issues/10113"
            },
            {
              "kind": "github_issue",
              "source": "github",
              "title": "400 Error",
              "url": "https://github.com/continuedev/continue/issues/5079"
            },
            {
              "kind": "github_issue",
              "source": "github",
              "title": "Unresponsive - continue.focusCOntntinueinput already registered by conti",
              "url": "https://github.com/continuedev/continue/issues/7801"
            },
            {
              "kind": "github_issue",
              "source": "github",
              "title": "Size limit for Read_File",
              "url": "https://github.com/continuedev/continue/issues/12432"
            },
            {
              "kind": "github_issue",
              "source": "github",
              "title": "Autocomplete for code is not working",
              "url": "https://github.com/continuedev/continue/issues/12298"
            },
            {
              "kind": "github_issue",
              "source": "github",
              "title": "Make the user settings declarative",
              "url": "https://github.com/continuedev/continue/issues/5438"
            },
            {
              "kind": "github_issue",
              "source": "github",
              "title": "(sse) mcp restarts breaks communication",
              "url": "https://github.com/continuedev/continue/issues/12431"
            },
            {
              "kind": "github_issue",
              "source": "github",
              "title": "Session Workspace always assumes first workspace folder",
              "url": "https://github.com/continuedev/continue/issues/4539"
            },
            {
              "kind": "github_issue",
              "source": "github",
              "title": "Support Context7",
              "url": "https://github.com/continuedev/continue/issues/5836"
            },
            {
              "kind": "github_issue",
              "source": "github",
              "title": "Continue fails to stablish mTLS connection with server",
              "url": "https://github.com/continuedev/continue/issues/8470"
            },
            {
              "kind": "github_issue",
              "source": "github",
              "title": "Login failed with \"Not authenticated (user missing)\" after account setup",
              "url": "https://github.com/continuedev/continue/issues/12424"
            }
          ],
          "status": "已收录 12 条来源",
          "title": "社区讨论"
        }
      ]
    },
    "homepage_card": {
      "category": "软件开发与交付",
      "desc": "⏩ Source-controlled AI checks, enforceable in CI. Powered by the open-source Continue CLI",
      "effort": "安装已验证",
      "forks": 4498,
      "icon": "code",
      "name": "continue 能力包",
      "risk": "可发布",
      "slug": "continue",
      "stars": 33149,
      "tags": [
        "浏览器 Agent",
        "网页任务自动化",
        "浏览器自动化",
        "断点恢复流程",
        "评测体系"
      ],
      "thumb": "gray",
      "type": "Skill Pack"
    },
    "manual": {
      "markdown": "# https://github.com/continuedev/continue 项目说明书\n\n生成时间：2026-05-16 04:20:22 UTC\n\n## 目录\n\n- [Architecture Overview](#architecture-overview)\n- [Protocol and Communication](#protocol-communication)\n- [Core Library](#core-library)\n- [IDE Extensions](#ide-extensions)\n- [CLI Tool](#cli-tool)\n- [Model Providers and LLM Integration](#model-providers)\n- [Chat and Agent System](#chat-system)\n- [Autocomplete System](#autocomplete)\n- [Next Edit Feature](#next-edit)\n- [Configuration System](#config-system)\n\n<a id='architecture-overview'></a>\n\n## Architecture Overview\n\n### 相关页面\n\n相关主题：[Protocol and Communication](#protocol-communication), [Core Library](#core-library)\n\n<details>\n<summary>相关源码文件</summary>\n\n以下源码文件用于生成本页说明：\n\n- [gui/src/components/StyledMarkdownPreview/utils/patchNestedMarkdown.ts](https://github.com/continuedev/continue/blob/main/gui/src/components/StyledMarkdownPreview/utils/patchNestedMarkdown.ts)\n- [extensions/cli/src/systemMessage.ts](https://github.com/continuedev/continue/blob/main/extensions/cli/src/systemMessage.ts)\n- [gui/src/redux/slices/sessionSlice.ts](https://github.com/continuedev/continue/blob/main/gui/src/redux/slices/sessionSlice.ts)\n- [extensions/cli/src/slashCommands.ts](https://github.com/continuedev/continue/blob/main/extensions/cli/src/slashCommands.ts)\n- [packages/config-yaml/src/interfaces/SecretResult.ts](https://github.com/continuedev/continue/blob/main/packages/config-yaml/src/interfaces/SecretResult.ts)\n- [gui/src/pages/stats.tsx](https://github.com/continuedev/continue/blob/main/gui/src/pages/stats.tsx)\n- [README.md](https://github.com/continuedev/continue/blob/main/README.md)\n</details>\n\n# Architecture Overview\n\nContinue is an open-source AI coding assistant that integrates with various IDEs and provides AI-powered code checks, autocompletion, and chat capabilities. This document provides a comprehensive overview of the system's architecture, component organization, and data flow.\n\n## System Architecture\n\nContinue follows a modular, multi-layer architecture designed to support multiple IDE integrations, deployment modes, and AI model providers.\n\n### High-Level Architecture\n\n```mermaid\ngraph TD\n    subgraph Client[\"Client Layer\"]\n        IDE[IntelliJ IDE Plugin]\n        VSCode[VS Code Extension]\n        CLI[Continue CLI]\n    end\n    \n    subgraph Core[\"Core Services\"]\n        Chat[Chat Service]\n        Autocomplete[Autocomplete Service]\n        Checks[AI Checks Service]\n    end\n    \n    subgraph Model[\"Model Integration\"]\n        LLM[LLM Providers]\n        MCP[Model Context Protocol]\n    end\n    \n    IDE --> Core\n    VSCode --> Core\n    CLI --> Core\n    Core --> LLM\n    Core --> MCP\n```\n\n### Key Architectural Layers\n\n| Layer | Purpose | Technologies |\n|-------|---------|--------------|\n| **Client Layer** | IDE integrations and user interfaces | TypeScript, React |\n| **Core Layer** | Business logic, session management, AI orchestration | TypeScript, Redux |\n| **Model Layer** | LLM provider abstraction, MCP integration | TypeScript |\n| **Configuration Layer** | Secret management, profile configuration | YAML, TypeScript |\n\n## Directory Structure\n\nThe repository follows a monorepo structure:\n\n```\ncontinue/\n├── core/                  # Core business logic\n├── gui/                   # Web-based UI components\n│   └── src/\n│       ├── components/    # React components\n│       ├── pages/         # Page components\n│       └── redux/         # State management\n├── extensions/            # IDE and CLI extensions\n│   ├── cli/              # Command-line interface\n│   ├── intellij/         # IntelliJ plugin\n│   └── vscode/           # VS Code extension\n└── packages/             # Shared libraries\n    └── config-yaml/      # Configuration utilities\n```\n\n## Core Components\n\n### Session Management\n\nThe session system manages chat sessions, history, and metadata. It uses Redux for state management with a dedicated session slice.\n\n```mermaid\ngraph LR\n    A[User Input] --> B[Session Slice]\n    B --> C[allSessionMetadata]\n    B --> D[currentSession]\n    B --> E[title]\n```\n\n**Session Slice Actions** (资料来源：[gui/src/redux/slices/sessionSlice.ts:1-100]())\n\n| Action | Purpose |\n|--------|---------|\n| `addSessionMetadata` | Add new session metadata to history |\n| `updateSessionMetadata` | Update existing session metadata |\n| `deleteSessionMetadata` | Remove session from history |\n| `setTitle` | Update current session title |\n| `setAllSessionMetadata` | Bulk update session list |\n\nThe slice maintains:\n- `allSessionMetadata`: Array of all session metadata\n- `id`: Current session ID\n- `title`: Current session title\n- `history`: Chat history for current session\n\n### Markdown Processing\n\nThe `patchNestedMarkdown` utility handles nested code blocks in markdown content, converting markdown-specific code block delimiters to prevent rendering conflicts.\n\n```mermaid\ngraph TD\n    A[Input String] --> B{Match md/markdown/gfm?}\n    B -->|No| C[Return Original]\n    B -->|Yes| D[Initialize State Tracker]\n    D --> E[Process Lines]\n    E --> F{Bare Backticks?}\n    F -->|Yes| G[Convert to Tildes]\n    F -->|No| H[Next Line]\n    G --> I{Last Delimiter?}\n    I -->|Yes| J[Close Block]\n    I -->|No| H\n    H --> E\n```\n\nKey features (资料来源：[gui/src/components/StyledMarkdownPreview/utils/patchNestedMarkdown.ts:1-50]()):\n\n- Early return optimization for non-markdown content\n- `MarkdownBlockStateTracker` for efficient line analysis\n- Handles GitHub-specific variants: `gfm`, `github-markdown`\n- Converts ` ``` ` to `~~~` for nested blocks\n\n### CLI Slash Commands\n\nThe CLI provides numerous slash commands for various operations:\n\n| Command | Action | Description |\n|---------|--------|-------------|\n| `/clear` | `{ clear: true }` | Clear chat history |\n| `/exit` | `{ exit: true }` | Exit the session |\n| `/config` | `{ openConfigSelector: true }` | Open config selector |\n| `/login` | - | Handle login flow |\n| `/model` | `{ openModelSelector: true }` | Open model selector |\n| `/compact` | `{ compact: true }` | Compact session history |\n| `/mcp` | `{ openMcpSelector: true }` | Open MCP selector |\n| `/resume` | `{ openSessionSelector: true }` | Resume previous session |\n| `/title` | - | Update session title |\n| `/init` | - | Initialize new project |\n| `/jobs` | - | List background jobs |\n| `/skills` | - | Manage skills |\n| `/sessions` | - | List sessions |\n| `/export` | - | Export session data |\n| `/import` | - | Import session data |\n\n资料来源：[extensions/cli/src/slashCommands.ts:1-80]()\n\n### System Message Composition\n\nThe system message is dynamically composed based on execution context:\n\n```mermaid\ngraph TD\n    A[Base System Message] --> B{headless mode?}\n    B -->|Yes| C[Add Headless Instructions]\n    B -->|No| D{format === json?}\n    D -->|Yes| E[Add JSON Instructions]\n    D -->|No| F{agentContent/rules?}\n    F -->|Yes| G[Add Rules Section]\n    F -->|No| H[Final Message]\n    C --> H\n    E --> H\n    G --> H\n```\n\n**Message Components** (资料来源：[extensions/cli/src/systemMessage.ts:1-60]()):\n\n| Mode | Instruction Type |\n|------|------------------|\n| Headless | \"Provide ONLY your final answer\" |\n| JSON | \"Your final response MUST be valid JSON\" |\n| Rules | User-defined agent content and rules |\n\n## Configuration System\n\n### Secret Management\n\nThe `SecretResult` interface provides encoding and decoding for various secret types:\n\n```typescript\nenum SecretType {\n  Organization,\n  User,\n  Package,\n  NotFound,\n  ModelsAddOn,\n  FreeTrial,\n  LocalEnv,\n  ProcessEnv\n}\n```\n\n**Secret Location Encoding** (资料来源：[packages/config-yaml/src/interfaces/SecretResult.ts:1-80]()):\n\n| Secret Type | Format |\n|-------------|--------|\n| Organization | `Organization:orgSlug/secretName` |\n| User | `User:userSlug/secretName` |\n| Package | `Package:ownerSlug/packageSlug/secretName` |\n| LocalEnv | `LocalEnv:secretName` |\n| ProcessEnv | `ProcessEnv:secretName` |\n\n### Model Configuration\n\nModels are organized by role:\n\n| Role | Purpose |\n|------|---------|\n| `chat` | General conversation and code assistance |\n| `autocomplete` | Inline code completion as you type |\n| `edit` | Transform selected code sections |\n\nEach model can have configuration status:\n- `VALID`: Properly configured\n- `MISSING_API_KEY`: API key not set\n- `MISSING_ENV_SECRET`: Required environment variable missing\n\n资料来源：[gui/src/pages/config/sections/ModelsSection.tsx:1-60]()\n\n## Statistics and Usage Tracking\n\nThe stats page displays token usage data (资料来源：[gui/src/pages/stats.tsx:1-80]()):\n\n**Token Tracking Tables:**\n\n| Table | Columns | Purpose |\n|-------|---------|---------|\n| Daily Usage | Day, Generated Tokens, Prompt Tokens | Daily consumption |\n| Per-Model | Model, Generated Tokens, Prompt Tokens | Breakdown by model |\n\nData is formatted with locale-aware number formatting for readability.\n\n## Error Handling\n\nThe `FatalErrorNotice` component provides graceful error handling:\n\n```mermaid\ngraph TD\n    A[Error State] --> B{configLoading?}\n    B -->|Yes| C[Show \"Reloading...\"]\n    B -->|No| D[Show Actions]\n    D --> E[View Config Page]\n    D --> F[Open Docs]\n    D --> G[Reload]\n```\n\nActions available (资料来源：[gui/src/components/config/FatalErrorNotice.tsx:1-50]()):\n- **View**: Navigate to configuration page\n- **Help**: Open documentation troubleshooting page\n- **Reload**: Refresh profiles\n\n## Extension Architecture\n\n### IntelliJ Plugin\n\nThe IntelliJ extension loads the GUI in a webview with IDE detection:\n\n```html\n<script>\n  localStorage.setItem(\"ide\", '\"jetbrains\"');\n</script>\n```\n\n资料来源：[extensions/intellij/src/main/resources/webview/index.html:1-20]()\n\n### CLI Extension\n\nThe CLI provides headless operation with:\n- Commit signature generation\n- JSON output mode\n- Headless mode for automation\n- Session resumption\n\n## Data Flow\n\n```mermaid\ngraph TD\n    subgraph Input[\"Input Processing\"]\n        UserInput[User Input]\n        SlashCmd[Slash Commands]\n    end\n    \n    subgraph Processing[\"Processing Layer\"]\n        Dispatcher[Action Dispatcher]\n        Reducer[Session Reducer]\n        Rules[Rules Processor]\n    end\n    \n    subgraph Output[\"Output Layer\"]\n        UI[UI Components]\n        API[External APIs]\n        FS[File System]\n    end\n    \n    UserInput --> Dispatcher\n    SlashCmd --> Dispatcher\n    Dispatcher --> Reducer\n    Reducer --> Rules\n    Rules --> UI\n    Rules --> API\n    Rules --> FS\n```\n\n## Summary\n\nContinue's architecture is designed for:\n\n1. **Modularity**: Clear separation between UI, core logic, and integrations\n2. **Extensibility**: Support for multiple IDEs and model providers\n3. **State Management**: Redux-based centralized state with session tracking\n4. **Security**: Secret management with encoding/decoding utilities\n5. **User Experience**: Graceful error handling and helpful status indicators\n\nThe system supports both GUI-based usage through IDE extensions and headless CLI operation for CI/CD integration, making it suitable for individual development and team enforcement workflows.\n\n---\n\n<a id='protocol-communication'></a>\n\n## Protocol and Communication\n\n### 相关页面\n\n相关主题：[Architecture Overview](#architecture-overview), [Core Library](#core-library)\n\n<details>\n<summary>相关源码文件</summary>\n\n以下源码文件用于生成本页说明：\n\n- [core/protocol/core.ts](https://github.com/continuedev/continue/blob/main/core/protocol/core.ts)\n- [core/protocol/ide.ts](https://github.com/continuedev/continue/blob/main/core/protocol/ide.ts)\n- [core/protocol/messenger/index.ts](https://github.com/continuedev/continue/blob/main/core/protocol/messenger/index.ts)\n- [binary/src/IpcIde.ts](https://github.com/continuedev/continue/blob/main/binary/src/IpcIde.ts)\n</details>\n\n# Protocol and Communication\n\n## Overview\n\nThe Continue codebase implements a sophisticated inter-process communication (IPC) protocol system that enables seamless communication between the Continue core engine and various IDE integrations (VS Code, JetBrains, etc.). This protocol layer abstracts the underlying transport mechanisms while providing a type-safe, event-driven communication architecture.\n\nThe communication system is built around three core concepts:\n\n1. **Protocol Definitions** - Type-safe interfaces defining the contract between components\n2. **Messenger System** - The message passing infrastructure with callbacks and event handling\n3. **IPC Transport** - Platform-specific implementations (Electron IPC, WebViews, etc.)\n\n```mermaid\ngraph TD\n    A[IDE Extension] -->|IPC Bridge| B[Binary/Core]\n    C[Continue Core] -->|Messenger| B\n    D[GUI Components] -->|Protocol Messages| C\n    B -->|Transport Layer| E[Platform IPC]\n```\n\n## Core Protocol Definitions\n\n### Protocol Message Structure\n\nThe core protocol defines the fundamental message envelope used throughout the communication system. All messages share a common structure that includes metadata for routing, identification, and error handling.\n\n| Field | Type | Description |\n|-------|------|-------------|\n| `messageId` | `string` | Unique identifier for message tracking |\n| `type` | `MessageType` | Enumerated message type |\n| `payload` | `any` | Message data payload |\n| `timestamp` | `number` | Unix timestamp of message creation |\n| `source` | `string` | Origin component identifier |\n| `target` | `string` | Destination component identifier |\n\n资料来源：[core/protocol/core.ts:1-50]()\n\n### Message Type Categories\n\nThe protocol distinguishes between several categories of messages:\n\n**Event Messages** - Fire-and-forget notifications about state changes or actions:\n- Used for UI updates, progress notifications, and logging\n- No response expected\n\n**Request-Response Messages** - Pairs with callback mechanisms:\n- Includes correlation ID for matching responses\n- Supports timeout handling\n\n**Streaming Messages** - Chunked data transfers:\n- Used for large code generation, file transfers\n- Includes sequence numbering for ordering\n\n资料来源：[core/protocol/core.ts:51-100]()\n\n## IDE Protocol\n\nThe IDE protocol defines the interface contract between Continue and the host IDE. This abstraction allows the core logic to remain IDE-agnostic while enabling platform-specific implementations.\n\n### IdeProtocol Interface\n\n```typescript\ninterface IdeProtocol {\n  // File System Operations\n  readFile(path: string): Promise<string>;\n  writeFile(path: string, content: string): Promise<void>;\n  getOpenFiles(): Promise<string[]>;\n  \n  // Editor Operations\n  getFileContents(filepath: string): Promise<string>;\n  highlightCode(filepath: string, range: Range): Promise<void>;\n  \n  // UI Operations\n  showNotification(message: string, type: NotificationType): void;\n  openUrl(url: string): void;\n  \n  // Context Retrieval\n  getGitRoot(): Promise<string>;\n  getWorkspaceDirs(): Promise<string[]>;\n}\n```\n\n资料来源：[core/protocol/ide.ts:1-60]()\n\n### Supported IDE Operations\n\n| Category | Operations | Description |\n|----------|------------|-------------|\n| **File System** | `readFile`, `writeFile`, `createFile`, `deleteFile` | Direct file manipulation |\n| **Navigation** | `getOpenFiles`, `getCurrentFile`, `showInEditor` | Editor state queries |\n| **Git Integration** | `getGitRoot`, `getDiff`, `getBranch` | Version control operations |\n| **Terminal** | `runCommand`, `getCwd` | Shell execution |\n| **UI** | `showNotification`, `openUrl`, `getIdeInfo` | User interface interactions |\n\n资料来源：[core/protocol/ide.ts:61-120]()\n\n## Messenger System\n\nThe messenger provides the core messaging infrastructure for Continue. It manages callback registration, message dispatching, and response handling in a type-safe manner.\n\n### Messenger Architecture\n\n```mermaid\ngraph LR\n    A[Message Producer] -->|post| B[Messenger Core]\n    B -->|dispatch| C[Registered Callbacks]\n    D[Response Handler] -->|correlate| B\n    B -->|respond| A\n```\n\n### Core Messenger Methods\n\n| Method | Signature | Description |\n|--------|-----------|-------------|\n| `post` | `(message: ProtocolMessage) => void` | Send a message without expecting response |\n| `request` | `(message: ProtocolMessage) => Promise<Response>` | Send message and wait for response |\n| `on` | `(type: string, callback: Handler) => void` | Register a callback for message type |\n| `off` | `(type: string, callback: Handler) => void` | Unregister a callback |\n| `once` | `(type: string, callback: Handler) => void` | Register one-time callback |\n\n资料来源：[core/protocol/messenger/index.ts:1-80]()\n\n### Callback Registration Pattern\n\nThe messenger uses a callback-based pattern for handling incoming messages:\n\n```typescript\n// Register handler for specific message type\nmessenger.on('file-changed', async (message: FileChangedMessage) => {\n  await handleFileChange(message.payload);\n});\n\n// Register with correlation for request-response\nmessenger.on('context-response', async (message: ContextResponse) => {\n  const pending = pendingRequests.get(message.correlationId);\n  if (pending) {\n    pending.resolve(message.payload);\n    pendingRequests.delete(message.correlationId);\n  }\n});\n```\n\n资料来源：[core/protocol/messenger/index.ts:81-150]()\n\n### Message Flow\n\n```mermaid\nsequenceDiagram\n    participant IDE as IDE Extension\n    participant M as Messenger\n    participant Core as Continue Core\n    participant GUI as GUI Components\n    \n    IDE->>M: post(message)\n    M->>Core: dispatch(message)\n    Core->>M: post(response)\n    M->>IDE: deliver(response)\n    \n    GUI->>M: request(message)\n    M->>Core: dispatch(message)\n    Core-->>M: response\n    M-->>GUI: resolve Promise\n```\n\n## IPC Transport Layer\n\nThe IPC (Inter-Process Communication) layer provides the actual transport mechanism for messages between the Continue core and IDE extensions. The binary component contains platform-specific implementations.\n\n### IpcIde Implementation\n\nThe `IpcIde` class bridges the protocol layer with the underlying IPC mechanism:\n\n```typescript\nclass IpcIde implements IdeProtocol {\n  private transport: IpcTransport;\n  private pendingRequests: Map<string, PendingRequest>;\n  \n  constructor(transport: IpcTransport) {\n    this.transport = transport;\n    this.setupMessageHandler();\n  }\n  \n  private setupMessageHandler(): void {\n    this.transport.onMessage((message) => {\n      this.dispatchMessage(message);\n    });\n  }\n}\n```\n\n资料来源：[binary/src/IpcIde.ts:1-50]()\n\n### Transport Interface\n\n| Method | Description |\n|--------|-------------|\n| `send(message: Uint8Array): void` | Send binary-encoded message |\n| `onMessage(handler: MessageHandler): void` | Register incoming message handler |\n| `close(): void` | Clean up transport resources |\n| `isConnected(): boolean` | Check connection status |\n\n资料来源：[binary/src/IpcIde.ts:51-100]()\n\n### Message Serialization\n\nMessages are serialized using Protocol Buffers or similar binary format for efficient transport:\n\n```typescript\n// Encode outgoing message\nfunction encodeMessage(message: ProtocolMessage): Uint8Array {\n  return protobuf.encode(ProtocolMessageSchema, message);\n}\n\n// Decode incoming message\nfunction decodeMessage(buffer: Uint8Array): ProtocolMessage {\n  return protobuf.decode(ProtocolMessageSchema, buffer);\n}\n```\n\n资料来源：[binary/src/IpcIde.ts:101-150]()\n\n## Communication Patterns\n\n### Request-Response Pattern\n\nUsed for operations requiring a response before proceeding:\n\n```mermaid\ngraph TD\n    A[Caller] -->|1. Request| B[Messenger]\n    B -->|2. Dispatch| C[Handler]\n    C -->|3. Process| D[Result]\n    D -->|4. Response| B\n    B -->|5. Resolve| A\n```\n\n**Implementation:**\n\n```typescript\nasync function request<T>(\n  message: ProtocolMessage,\n  timeout: number = 30000\n): Promise<T> {\n  const correlationId = generateId();\n  const pending = new PendingPromise<T>();\n  \n  pendingRequests.set(correlationId, pending);\n  \n  setTimeout(() => {\n    if (pendingRequests.has(correlationId)) {\n      pending.reject(new TimeoutError());\n      pendingRequests.delete(correlationId);\n    }\n  }, timeout);\n  \n  messenger.post({ ...message, correlationId });\n  return pending.promise;\n}\n```\n\n资料来源：[core/protocol/messenger/index.ts:151-200]()\n\n### Event Subscription Pattern\n\nUsed for broadcasting state changes to multiple subscribers:\n\n```typescript\n// Subscribe to session updates\nmessenger.on('session-updated', (message: SessionUpdate) => {\n  updateSessionUI(message.payload);\n});\n\n// Subscribe to tool execution events\nmessenger.on('tool-call', (message: ToolCallMessage) => {\n  displayToolProgress(message.payload);\n});\n```\n\n资料来源：[core/protocol/messenger/index.ts:201-250]()\n\n### Streaming Pattern\n\nUsed for long-running operations with progress updates:\n\n```typescript\nmessenger.on('streaming-response', (message: StreamChunk) => {\n  // Accumulate chunks\n  buffer += message.chunk;\n  \n  // Update UI with partial content\n  updatePreview(buffer);\n  \n  if (message.isFinal) {\n    processComplete(buffer);\n  }\n});\n```\n\n## Error Handling\n\n### Error Message Types\n\n| Error Type | Code | Description |\n|------------|------|-------------|\n| `TransportError` | `1000-1099` | IPC transport failures |\n| `ProtocolError` | `2000-2099` | Malformed messages or protocol violations |\n| `TimeoutError` | `3000-3099` | Request timeouts |\n| `HandlerError` | `4000-4099` | Errors in message handlers |\n\n### Error Recovery\n\nThe messenger implements automatic retry for transient failures:\n\n```typescript\nasync function withRetry<T>(\n  operation: () => Promise<T>,\n  maxRetries: number = 3,\n  backoff: number = 1000\n): Promise<T> {\n  let lastError: Error;\n  \n  for (let attempt = 0; attempt < maxRetries; attempt++) {\n    try {\n      return await operation();\n    } catch (error) {\n      lastError = error;\n      if (!isRetryable(error)) throw error;\n      await sleep(backoff * Math.pow(2, attempt));\n    }\n  }\n  \n  throw lastError;\n}\n```\n\n资料来源：[core/protocol/messenger/index.ts:251-300]()\n\n## Security Considerations\n\n### Message Validation\n\nAll incoming messages undergo validation before processing:\n\n1. **Schema Validation** - Verify message structure matches protocol definition\n2. **Type Checking** - Ensure payload types are correct\n3. **Size Limits** - Reject messages exceeding maximum size\n4. **Source Verification** - Validate message origin\n\n```typescript\nfunction validateMessage(message: unknown): ValidationResult {\n  if (!isObject(message)) {\n    return { valid: false, error: 'Message must be an object' };\n  }\n  \n  if (!isString(message.messageId)) {\n    return { valid: false, error: 'Invalid messageId' };\n  }\n  \n  if (message.payload && !isValidPayload(message.payload)) {\n    return { valid: false, error: 'Invalid payload' };\n  }\n  \n  return { valid: true };\n}\n```\n\n资料来源：[core/protocol/core.ts:101-150]()\n\n## Configuration Options\n\n| Option | Type | Default | Description |\n|--------|------|---------|-------------|\n| `messageTimeout` | `number` | `30000` | Default timeout for request-response messages |\n| `maxRetries` | `number` | `3` | Maximum retry attempts for failed messages |\n| `maxMessageSize` | `number` | `10485760` | Maximum message size in bytes (10MB) |\n| `enableLogging` | `boolean` | `false` | Enable message logging for debugging |\n\n资料来源：[core/protocol/messenger/index.ts:301-350]()\n\n## Integration with Redux\n\nThe GUI components integrate the messenger with Redux for state management:\n\n```typescript\n// Middleware connects messenger events to Redux actions\nconst messengerMiddleware = (messenger: Messenger) => (store) => {\n  messenger.on('state-update', (message) => {\n    store.dispatch(updateState(message.payload));\n  });\n  \n  return (next) => (action) => {\n    const result = next(action);\n    if (isMessengerAction(action)) {\n      messenger.post(actionToMessage(action));\n    }\n    return result;\n  };\n};\n```\n\n资料来源：[core/protocol/messenger/index.ts:351-400]()\n\n## Summary\n\nThe Protocol and Communication system in Continue provides a robust, extensible messaging infrastructure that:\n\n- **Abstraction Layer**: Separates business logic from transport mechanisms\n- **Type Safety**: Uses TypeScript interfaces for compile-time safety\n- **Async-First**: Built on Promises for non-blocking operations\n- **Error Resilient**: Implements retry logic and timeout handling\n- **Extensible**: New message types can be added without modifying core infrastructure\n\nThis architecture enables Continue to maintain compatibility across multiple IDE platforms while providing a consistent, reliable communication channel between all components.\n\n---\n\n<a id='core-library'></a>\n\n## Core Library\n\n### 相关页面\n\n相关主题：[Model Providers and LLM Integration](#model-providers), [Configuration System](#config-system), [Chat and Agent System](#chat-system)\n\n<details>\n<summary>相关源码文件</summary>\n\n以下源码文件用于生成本页说明：\n\n- [core/llm/index.ts](https://github.com/continuedev/continue/blob/main/core/llm/index.ts)\n- [core/config/ConfigHandler.ts](https://github.com/continuedev/continue/blob/main/core/config/ConfigHandler.ts)\n- [core/indexing/CodebaseIndexer.ts](https://github.com/continuedev/continue/blob/main/core/indexing/CodebaseIndexer.ts)\n- [core/tools/index.ts](https://github.com/continuedev/continue/blob/main/core/tools/index.ts)\n- [core/context/retrieval/retrieval.ts](https://github.com/continuedev/continue/blob/main/core/context/retrieval/retrieval.ts)\n</details>\n\n# Core Library\n\nThe **Continue Core Library** (`/core`) is the central backend module of the Continue platform—a source-controlled AI coding assistant that runs as GitHub status checks on pull requests. It provides the foundational abstractions for LLM interaction, codebase indexing, tool execution, configuration management, and context retrieval.\n\n## Architecture Overview\n\n```mermaid\ngraph TD\n    A[Continue Core] --> B[LLM Module]\n    A --> C[Config Handler]\n    A --> D[Codebase Indexer]\n    A --> E[Tools System]\n    A --> F[Context Retrieval]\n    \n    B --> G[Model Abstractions]\n    C --> H[Profile Management]\n    D --> I[Code Chunking]\n    E --> J[Tool Registry]\n    F --> K[Vector Search]\n```\n\nThe Core Library serves as the backend engine powering both the GUI extensions (VS Code, JetBrains) and the standalone CLI (`cn`), enabling consistent AI-powered coding assistance across different IDE environments.\n\n## Module Breakdown\n\n### 1. LLM Module (`core/llm/index.ts`)\n\nThe LLM module provides the model abstraction layer for interacting with large language models.\n\n| Component | Purpose |\n|-----------|---------|\n| `ILLM` interface | Defines contract for all LLM implementations |\n| Model streaming | Handles real-time token generation |\n| Token counting | Tracks prompt and completion tokens |\n| Function calling | Supports structured output via tools |\n\n**资料来源：** [core/llm/index.ts](https://github.com/continuedev/continue/blob/main/core/llm/index.ts)\n\nThe module supports multiple model providers and abstracts away provider-specific implementation details, allowing configuration-driven model selection.\n\n### 2. Config Handler (`core/config/ConfigHandler.ts`)\n\nThe configuration system manages user preferences, model settings, and workspace-specific configurations.\n\n```mermaid\ngraph LR\n    A[config.ts] --> B[ConfigHandler]\n    B --> C[Profiles]\n    B --> D[Model Selection]\n    B --> E[Rule Processing]\n```\n\nKey responsibilities include:\n- Loading and validating configuration profiles\n- Managing model assignments by role (chat, autocomplete, edit)\n- Processing custom rules defined in `.continue/checks/`\n- Handling secret/API key management\n\n**资料来源：** [core/config/ConfigHandler.ts](https://github.com/continuedev/continue/blob/main/core/config/ConfigHandler.ts)\n\n### 3. Codebase Indexer (`core/indexing/CodebaseIndexer.ts`)\n\nThe indexer builds and maintains a searchable representation of the codebase for context-aware retrieval.\n\n| Feature | Description |\n|---------|-------------|\n| Code chunking | Splits files into semantically meaningful segments |\n| Language detection | Identifies programming languages for specialized processing |\n| Incremental updates | Re-indexes only changed portions of the codebase |\n| Embedded retrieval | Generates vector embeddings for similarity search |\n\nThe indexer operates asynchronously and integrates with the retrieval system to provide relevant code context during conversations.\n\n**资料来源：** [core/indexing/CodebaseIndexer.ts](https://github.com/continuedev/continue/blob/main/core/indexing/CodebaseIndexer.ts)\n\n### 4. Tools System (`core/tools/index.ts`)\n\nThe tools module defines the available actions that can be performed by the LLM during agent execution.\n\n**Core tool categories:**\n\n| Category | Examples |\n|----------|----------|\n| File operations | Read, write, edit, delete files |\n| Search | Grep, find, navigate code |\n| Git operations | Commit, branch, diff |\n| Shell commands | Execute terminal commands |\n| Custom checks | User-defined validation rules |\n\nTools follow a standardized interface that allows new tools to be registered dynamically through configuration.\n\n**资料来源：** [core/tools/index.ts](https://github.com/continuedev/continue/blob/main/core/tools/index.ts)\n\n### 5. Context Retrieval (`core/context/retrieval/retrieval.ts`)\n\nThe retrieval system fetches relevant code context to augment LLM prompts.\n\n```mermaid\ngraph TD\n    A[Query] --> B[Retrieval Engine]\n    B --> C[Vector Similarity]\n    B --> D[Keyword Matching]\n    C --> E[Hybrid Ranking]\n    D --> E\n    E --> F[Ranked Context]\n    F --> G[Prompt Augmentation]\n```\n\nRetrieval strategies include:\n- Dense vector embeddings via embeddings API\n- Sparse keyword matching\n- Hybrid approaches combining both methods\n- Filtering by file type, path patterns, or recency\n\n**资料来源：** [core/context/retrieval/retrieval.ts](https://github.com/continuedev/continue/blob/main/core/context/retrieval/retrieval.ts)\n\n## CLI Integration\n\nThe Core Library powers the `cn` CLI for headless AI checks in CI/CD pipelines:\n\n```bash\n# Install CLI\nnpm i -g @continuedev\n\n# Run headless check\ncn check --pr <pr-number>\n```\n\n**Headless mode behavior:**\n- Provides only final answers without explanations\n- Operates in JSON output mode when required\n- Includes commit signature generation in messages\n\n**资料来源：** [extensions/cli/src/systemMessage.ts](https://github.com/continuedev/continue/blob/main/extensions/cli/src/systemMessage.ts)\n\n## UI Components (Related)\n\nWhile the Core Library handles backend logic, GUI components provide the user interface:\n\n| Component | Purpose |\n|-----------|---------|\n| `IntroMessage` | Displays model and config status in terminal |\n| `ModelCard` | Renders model selection cards |\n| `ContextItemsPeek` | Shows context item previews |\n| `patchNestedMarkdown` | Handles nested markdown code block rendering |\n\n**资料来源：** [gui/src/components/StyledMarkdownPreview/utils/patchNestedMarkdown.ts](https://github.com/continuedev/continue/blob/main/gui/src/components/StyledMarkdownPreview/utils/patchNestedMarkdown.ts)\n\n## Data Flow\n\n```mermaid\nsequenceDiagram\n    participant User\n    participant GUI as GUI/CLI\n    participant Core as Core Library\n    participant LLM as LLM Provider\n    \n    User->>GUI: Query/Action\n    GUI->>Core: Process Request\n    Core->>Core: Load Config\n    Core->>Core: Retrieve Context\n    Core->>LLM: Send Prompt\n    LLM-->>Core: Response + Tool Calls\n    Core->>Core: Execute Tools\n    Core->>Core: Update Index\n    Core-->>GUI: Result\n    GUI-->>User: Display\n```\n\n## Summary\n\nThe Continue Core Library provides:\n\n1. **Model Abstraction** - Unified interface for multiple LLM providers\n2. **Configuration Management** - Flexible, profile-based settings\n3. **Code Intelligence** - Indexing and semantic search capabilities\n4. **Tool Execution** - Extensible action system for code operations\n5. **Context Retrieval** - Hybrid search for relevant code snippets\n\nThis modular architecture enables Continue to operate consistently across different IDEs (VS Code, JetBrains) and environments (GUI, CLI), while providing a foundation for source-controlled AI checks in CI/CD pipelines.\n\n---\n\n<a id='ide-extensions'></a>\n\n## IDE Extensions\n\n### 相关页面\n\n相关主题：[Protocol and Communication](#protocol-communication)\n\n<details>\n<summary>相关源码文件</summary>\n\n以下源码文件用于生成本页说明：\n\n- [extensions/vscode/src/extension.ts](https://github.com/continuedev/continue/blob/main/extensions/vscode/src/extension.ts)\n- [extensions/vscode/src/autocomplete/completionProvider.ts](https://github.com/continuedev/continue/blob/main/extensions/vscode/src/autocomplete/completionProvider.ts)\n- [extensions/intellij/src/main/kotlin/com/github/continuedev/continueintellijextension/continue/IntelliJIde.kt](https://github.com/continuedev/continue/blob/main/extensions/intellij/src/main/kotlin/com/github/continuedev/continueintellijextension/continue/IntelliJIde.kt)\n- [extensions/intellij/src/main/kotlin/com/github/continuedev/continueintellijextension/autocomplete/ContinueInlineCompletionProvider.kt](https://github.com/continuedev/continue/blob/main/extensions/intellij/src/main/kotlin/com/github/continuedev/continueintellijextension/autocomplete/ContinueInlineCompletionProvider.kt)\n- [gui/src/pages/config/sections/UserSettingsSection.tsx](https://github.com/continuedev/continue/blob/main/gui/src/pages/config/sections/UserSettingsSection.tsx)\n- [gui/src/pages/config/sections/ModelsSection.tsx](https://github.com/continuedev/continue/blob/main/gui/src/pages/config/sections/ModelsSection.tsx)\n- [extensions/cli/src/ui/IntroMessage.tsx](https://github.com/continuedev/continue/blob/main/extensions/cli/src/ui/IntroMessage.tsx)\n- [extensions/cli/src/systemMessage.ts](https://github.com/continuedev/continue/blob/main/extensions/cli/src/systemMessage.ts)\n</details>\n\n# IDE Extensions\n\n## Overview\n\nThe Continue project provides IDE extensions for Visual Studio Code and IntelliJ-based IDEs (IntelliJ IDEA, PyCharm, WebStorm, etc.). These extensions enable inline AI-powered code completion, chat interfaces, and context-aware code editing directly within the developer's IDE environment.\n\nThe extension architecture follows a unified design pattern where each IDE implementation shares common interfaces while adapting to platform-specific APIs. This allows consistent user experience across different development environments while leveraging native IDE capabilities.\n\n## Architecture Overview\n\n```mermaid\ngraph TD\n    subgraph VSCode_Extension\n        VSCE[VSCode Extension Entry] --> VSCA[Autocomplete Provider]\n        VSCE --> VSCM[Model Configuration]\n        VSCE --> VSCS[Settings Manager]\n    end\n\n    subgraph IntelliJ_Extension\n        IJ[IntelliJ Extension Entry] --> IJA[Inline Completion Provider]\n        IJ --> IJM[Model Configuration]\n        IJ --> IJS[Settings Manager]\n    end\n\n    subgraph Shared_Core\n        CORE[Core Library]\n        CORE --> GUI[GUI Components]\n        CORE --> API[Protocol/API Layer]\n    end\n\n    VSCE --> CORE\n    IJ --> CORE\n    VSCM --> GUI\n    IJM --> GUI\n```\n\n## VSCode Extension\n\n### Extension Entry Point\n\nThe VSCode extension is initialized in `extensions/vscode/src/extension.ts`. This file registers all VSCode-specific providers including:\n\n- **Completion Provider** for inline code completions\n- **Command Handlers** for IDE interactions\n- **Configuration Managers** for workspace and user settings\n- **Status Bar Items** for displaying model status and token usage\n\n资料来源：[extensions/vscode/src/extension.ts]()\n\n### Autocomplete System\n\nThe VSCode autocomplete functionality is implemented in `extensions/vscode/src/autocomplete/completionProvider.ts`. This provider intercepts typing events and sends requests to the configured autocomplete model.\n\nKey responsibilities include:\n\n| Component | Function |\n|-----------|----------|\n| `CompletionProvider` | Handles VSCode's `InlineCompletionItemProvider` interface |\n| Debouncing | Prevents excessive API calls during rapid typing |\n| Timeout Management | Limits request duration (configurable via `modelTimeout`) |\n| Context Gathering | Collects surrounding code context for better completions |\n\n资料来源：[extensions/vscode/src/autocomplete/completionProvider.ts]()\n\n### Settings Configuration\n\nThe VSCode extension exposes user-configurable settings through the IDE's settings UI. The frontend configuration is rendered in `gui/src/pages/config/sections/UserSettingsSection.tsx`.\n\n#### Autocomplete Settings\n\n| Setting | Type | Default | Description |\n|---------|------|---------|-------------|\n| `useAutocompleteMultilineCompletions` | enum | `\"auto\"` | Controls multiline completion behavior |\n| `modelTimeout` | number | - | Maximum timeout in milliseconds for autocomplete requests |\n| `debounceDelay` | number | - | Minimum delay before triggering autocomplete after changes |\n| `disableAutocompleteInFiles` | string | `\"\"` | Comma-separated glob patterns for disabling autocomplete |\n\n资料来源：[gui/src/pages/config/sections/UserSettingsSection.tsx]()\n\n### Model Selection\n\nThe `ModelsSection.tsx` component provides the UI for selecting models for different purposes:\n\n- **Chat Model**: Used for conversational interactions\n- **Autocomplete Model**: Used for inline code completions\n- **Edit Model**: Used for code transformations via the edit tool\n\nEach model role has associated documentation links and setup instructions. The component validates that the selected model is appropriate for its intended use case.\n\n资料来源：[gui/src/pages/config/sections/ModelsSection.tsx]()\n\n## IntelliJ Extension\n\n### Extension Structure\n\nThe IntelliJ extension is implemented in Kotlin, following JetBrains' plugin development conventions. The main IDE interface is defined in `IntelliJIde.kt`.\n\n```mermaid\nclassDiagram\n    class IntelliJIde {\n        +ideMessenger: IdeMessenger\n        +writeFile(path: string, content: string)\n        +readFile(path: string): string\n        +getOpenFiles(): string[]\n        +getCurrentFile(): string\n    }\n    \n    class ContinueInlineCompletionProvider {\n        +provideInlineCompletions()\n        +handleInlineCompletion()\n    }\n    \n    IntelliJIde --> ContinueInlineCompletionProvider\n```\n\n资料来源：[extensions/intellij/src/main/kotlin/com/github/continuedev/continueintellijextension/continue/IntelliJIde.kt]()\n\n### Inline Completion Provider\n\nThe `ContinueInlineCompletionProvider.kt` implements IntelliJ's `InlineCompletionProvider` interface, providing the same functionality as the VSCode autocomplete system but adapted for JetBrains IDE APIs.\n\nKey differences from VSCode implementation:\n\n| Aspect | VSCode | IntelliJ |\n|--------|--------|----------|\n| Language | TypeScript | Kotlin |\n| Provider Interface | `InlineCompletionItemProvider` | `InlineCompletionProvider` |\n| Configuration | JSON Settings | Extension Settings API |\n\n资料来源：[extensions/intellij/src/main/kotlin/com/github/continuedev/continueintellijextension/autocomplete/ContinueInlineCompletionProvider.kt]()\n\n### IDE-Specific Features\n\nThe IntelliJ extension includes JetBrains-specific adaptations:\n\n1. **Sidebar Management**: When the input box is focused and Escape is pressed, the sidebar closes via `closeSidebar` command\n2. **File Context**: Automatically adds the currently open file as context (configurable)\n3. **Experimental Tools**: Toggle for enabling development-stage features\n\n## CLI Extension\n\n### Command-Line Interface\n\nThe CLI extension (`extensions/cli/`) provides a terminal-based interface for Continue. While not a traditional IDE extension, it shares the same core library and provides similar functionality.\n\n### System Message Configuration\n\nThe `systemMessage.ts` file builds the system prompt for the CLI, incorporating:\n\n- **Context Variables**: Repository, branch, and directory information\n- **Commit Signature**: Optional footer for commit messages when `INUE_CLI_DISABLE_COMMIT_SIGNATURE` is not set\n- **Headless Mode**: Special instructions for CLI-only operation without interactive UI\n- **JSON Output**: Formatting instructions when structured output is requested\n\n```typescript\n// Headless mode instructions\nif (headless) {\n    systemMessage += `\nIMPORTANT: You are running in headless mode. Provide ONLY your final answer.\nDo not include explanations, reasoning, or additional commentary.`;\n}\n```\n\n资料来源：[extensions/cli/src/systemMessage.ts]()\n\n### Startup Display\n\nThe `IntroMessage.tsx` component renders the CLI welcome screen, showing:\n\n- Configuration name and selected model\n- Model capability warnings\n- MCP (Model Context Protocol) server status\n- Active rules and prompts\n\n资料来源：[extensions/cli/src/ui/IntroMessage.tsx]()\n\n## Cross-Platform Considerations\n\n### Unified Configuration Schema\n\nAll IDE extensions share a common configuration schema defined in the core library. This ensures that:\n\n- Settings configured in one IDE are portable to another\n- Model selections and preferences persist across IDE switches\n- Autocomplete behavior is consistent regardless of editor choice\n\n### Model Capability Validation\n\nThe `packages/config-yaml/src/validation.ts` file contains validation logic that warns users when selected models may not be suitable for certain tasks:\n\n```typescript\nif (nonAutocompleteModels.some((m) => modelName.includes(m)) &&\n    !modelName.includes(\"deepseek\") &&\n    !modelName.includes(\"codestral\") &&\n    !modelName.toLowerCase().includes(\"coder\")) {\n    errors.push({\n        fatal: false,\n        message: `${model.model} is not trained for tab-autocomplete...`\n    });\n}\n```\n\nModels like GPT-4, Claude, and Mistral are flagged as potentially unsuitable for autocomplete due to their training characteristics.\n\n资料来源：[packages/config-yaml/src/validation.ts]()\n\n## Summary\n\nThe IDE Extensions module provides platform-specific implementations for integrating Continue into popular development environments. Key components include:\n\n| Extension | Language | Primary Features |\n|-----------|----------|-----------------|\n| VSCode | TypeScript | Inline completions, sidebar chat, config UI |\n| IntelliJ | Kotlin | Inline completions, JetBrains-specific UI |\n| CLI | TypeScript | Terminal interface, headless mode |\n\nAll extensions share the same core library, ensuring consistent behavior and shared configuration management across the entire Continue ecosystem.\n\n---\n\n<a id='cli-tool'></a>\n\n## CLI Tool\n\n### 相关页面\n\n相关主题：[Chat and Agent System](#chat-system)\n\n<details>\n<summary>相关源码文件</summary>\n\n以下源码文件用于生成本页说明：\n\n- [extensions/cli/src/slashCommands.ts](https://github.com/continuedev/continue/blob/main/extensions/cli/src/slashCommands.ts)\n- [extensions/cli/src/systemMessage.ts](https://github.com/continuedev/continue/blob/main/extensions/cli/src/systemMessage.ts)\n- [extensions/cli/src/util/metadata.ts](https://github.com/continuedev/continue/blob/main/extensions/cli/src/util/metadata.ts)\n- [extensions/cli/src/ui/IntroMessage.tsx](https://github.com/continuedev/continue/blob/main/extensions/cli/src/ui/IntroMessage.tsx)\n- [extensions/cli/src/ui/JobsSelector.tsx](https://github.com/continuedev/continue/blob/main/extensions/cli/src/ui/JobsSelector.tsx)\n</details>\n\n# CLI Tool\n\nThe Continue CLI (`cn`) is a command-line interface tool that enables developers to interact with the Continue AI coding assistant directly from the terminal. It provides a comprehensive set of slash commands for chat interactions, job management, session handling, and configuration control.\n\n## Architecture Overview\n\nThe CLI tool is architected as a Node.js/TypeScript application with a modular component structure. It communicates with the IDE extension through IPC (Inter-Process Communication) mechanisms and supports both local and remote operation modes.\n\n```mermaid\ngraph TD\n    A[User Input] --> B[Slash Command Parser]\n    B --> C{Command Type}\n    C -->|Session| D[Session Commands]\n    C -->|Auth| E[Auth Commands]\n    C -->|Config| F[Config Commands]\n    C -->|Job| G[Job Commands]\n    C -->|Skill| H[Skill Commands]\n    D --> I[ServiceContainer]\n    E --> I\n    F --> I\n    G --> I\n    H --> I\n    I --> J[Telemetry Service]\n    I --> K[IDE Messenger]\n```\n\n## Slash Commands\n\nThe CLI supports an extensive set of slash commands that provide quick access to various functionality. Commands are triggered when the input starts with a `/` character.\n\n### Available Commands\n\n| Command | Handler | Description |\n|---------|---------|-------------|\n| `/clear` | `clearChatHistory` | Clears the current chat history |\n| `/exit` | `exitHandler` | Exits the CLI session |\n| `/config` | `openConfigSelector` | Opens the configuration selector |\n| `/login` | `handleLogin` | Initiates login flow |\n| `/logout` | `handleLogout` | Logs out the current user |\n| `/whoami` | `handleWhoami` | Displays current user info |\n| `/info` | `handleInfoSlashCommand` | Shows system information |\n| `/model` | `openModelSelector` | Opens the model selector |\n| `/compact` | `compactConversation` | Compacts conversation history |\n| `/mcp` | `openMcpSelector` | Opens MCP server selector |\n| `/resume` | `openSessionSelector` | Opens session recovery selector |\n| `/fork` | `handleFork` | Forks the current conversation |\n| `/title` | `handleTitle` | Generates/updates session title |\n| `/rename` | `handleTitle` | Alias for title command |\n| `/init` | `handleInit` | Initializes new session |\n| `/update` | `openUpdateSelector` | Opens update selector |\n| `/jobs` | `handleJobs` | Manages background jobs |\n| `/skills` | `handleSkills` | Lists available skills |\n| `/import-skill` | `handleImportSkill` | Imports a new skill |\n| `/sessions` | `handleSessions` | Manages saved sessions |\n| `/export` | `handleExport` | Exports session data |\n| `/import` | `handleImport` | Imports session data |\n\n资料来源：[extensions/cli/src/slashCommands.ts:1-50](https://github.com/continuedev/continue/blob/main/extensions/cli/src/slashCommands.ts)\n\n### Command Processing Flow\n\n```mermaid\nsequenceDiagram\n    participant User\n    participant Parser\n    participant Handler\n    participant ServiceContainer\n    participant IDE\n\n    User->>Parser: Input with \"/\" prefix\n    Parser->>Parser: Extract command and args\n    Parser->>Handler: Dispatch to appropriate handler\n    Handler->>ServiceContainer: Execute business logic\n    ServiceContainer->>IDE: Post/receive messages\n    IDE->>User: Display result\n```\n\nThe command parser validates input by checking if the first character is `/` and if the trimmed input starts with `/`:\n\n```typescript\nif (!input.startsWith(\"/\") || !input.trim().startsWith(\"/\")) {\n  return null;\n}\n```\n\n资料来源：[extensions/cli/src/slashCommands.ts:52-55](https://github.com/continuedev/continue/blob/main/extensions/cli/src/slashCommands.ts)\n\n## System Message Generation\n\nThe CLI dynamically constructs system messages based on the current configuration, operation mode, and user settings. This ensures the AI model receives contextually appropriate instructions.\n\n### Headless Mode\n\nWhen operating in headless mode, the system message includes instructions for concise responses:\n\n```\nIMPORTANT: You are running in headless mode. Provide ONLY your final answer to the user's question. Do not include explanations, reasoning, or additional commentary unless specifically requested. Be direct and concise.\n```\n\n资料来源：[extensions/cli/src/systemMessage.ts:1-20](https://github.com/continuedev/continue/blob/main/extensions/cli/src/systemMessage.ts)\n\n### JSON Output Mode\n\nWhen JSON format is requested, the system message instructs the model to return valid JSON:\n\n```\nIMPORTANT: You are operating in JSON output mode. Your final response MUST be valid JSON that can be parsed by JSON.parse(). The JSON should contain properties relevant to answer the user's question.\n```\n\n资料来源：[extensions/cli/src/systemMessage.ts:22-28](https://github.com/continuedev/continue/blob/main/extensions/cli/src/systemMessage.ts)\n\n### Commit Signature Context\n\nWhen commit signing is enabled and not disabled via environment variable, the system message includes commit signature context:\n\n```typescript\nif (!process.env.INUE_CLI_DISABLE_COMMIT_SIGNATURE) {\n  systemMessage += `\\n<context name=\"commitSignature\">When creating commits using any CLI or tool, include the following in the commit message:\nGenerated with [Continue](https://continue.dev)\n\nCo-Authored-By: Continue <noreply@continue.dev>\n</context>\\n`;\n}\n```\n\n资料来源：[extensions/cli/src/systemMessage.ts:1-10](https://github.com/continuedev/continue/blob/main/extensions/cli/src/systemMessage.ts)\n\n## User Rules Integration\n\nThe system message supports integration of user-defined rules through the `<context name=\"userRules\">` tag. Rules can be sourced from agent content or from processed command-line rules.\n\n```typescript\nif (agentContent || processedRules.length > 0) {\n  systemMessage += '\\n\\n<context name=\"userRules\">';\n  if (agentContent) {\n    systemMessage += `\\n${agentContent}`;\n  }\n  if (processedRules.length > 0) {\n    // Rules are added with appropriate separators\n  }\n}\n```\n\n资料来源：[extensions/cli/src/systemMessage.ts:30-40](https://github.com/continuedev/continue/blob/main/extensions/cli/src/systemMessage.ts)\n\n## Metadata Utilities\n\nThe CLI provides utility functions for extracting and processing conversation metadata.\n\n### Commit Diff Statistics\n\nThe `getDiffStats` function parses git diff output and calculates the number of line additions and deletions:\n\n```typescript\nexport function getDiffStats(diff: string): { additions: number; deletions: number }\n```\n\nIt skips metadata lines (file headers, hunk headers, binary file markers) and counts lines starting with `+` or `-`:\n\n资料来源：[extensions/cli/src/util/metadata.ts:1-30](https://github.com/continuedev/continue/blob/main/extensions/cli/src/util/metadata.ts)\n\n### Conversation Summary Extraction\n\nThe `extractSummary` function retrieves the last assistant message from conversation history:\n\n```typescript\nexport function extractSummary(\n  history: ChatHistoryItem[],\n  maxLength: number = 500,\n): string | undefined\n```\n\nIt iterates backwards through the history to find the most recent assistant message, truncates content that exceeds the specified maximum length, and handles both string and structured message content.\n\n资料来源：[extensions/cli/src/util/metadata.ts:38-75](https://github.com/continuedev/continue/blob/main/extensions/cli/src/util/metadata.ts)\n\n## UI Components\n\n### Intro Message\n\nThe `IntroMessage` component displays startup information when the CLI session begins:\n\n```mermaid\ngraph LR\n    A[Config Loaded] --> B[Display Config Name]\n    A --> C[Model Loaded?]\n    C -->|Yes| D[Display Model Name]\n    C -->|No| E[Show Loading...]\n    D --> F{Model Capable?}\n    F -->|No| G[Show Capability Warning]\n    F -->|Yes| H[Continue]\n    G --> I[Render MCP Prompts]\n    H --> I\n    I --> J[Render Rules]\n    J --> K[Render MCP Servers]\n```\n\nThe intro message renders in the terminal using the `ink` library and displays:\n\n- Configuration name\n- Model name (extracted from full model identifier)\n- Capability warnings for unsupported models\n- MCP prompts\n- Active rules\n- MCP server status\n\n资料来源：[extensions/cli/src/ui/IntroMessage.tsx:1-60](https://github.com/continuedev/continue/blob/main/extensions/cli/src/ui/IntroMessage.tsx)\n\n### Jobs Selector\n\nThe `JobsSelector` component displays a list of background jobs with their status:\n\n| Status | Color | Description |\n|--------|-------|-------------|\n| `running` | cyan | Job is currently executing |\n| `done` | green | Job completed successfully |\n| `error` | red | Job failed with an error |\n\nEach job entry shows:\n- Job ID\n- Status (padded for alignment)\n- Duration (formatted)\n- Command (truncated to 30 characters)\n\n```typescript\n<Text>\n  {job.command.substring(0, 30)}\n  {job.command.length > 30 ? \"...\" : \"\"}\n</Text>\n```\n\n资料来源：[extensions/cli/src/ui/JobsSelector.tsx:1-35](https://github.com/continuedev/continue/blob/main/extensions/cli/src/ui/JobsSelector.tsx)\n\n## Configuration Options\n\nThe CLI behavior can be customized through several configuration options:\n\n| Option | Type | Default | Description |\n|--------|------|---------|-------------|\n| `headless` | boolean | false | Run in headless mode with minimal output |\n| `format` | string | - | Output format (e.g., \"json\") |\n| `remoteUrl` | string | - | Connect to remote server |\n| `isRemoteMode` | boolean | false | Enable remote operation |\n\n## Installation\n\nThe Continue CLI can be installed through multiple methods:\n\n### macOS / Linux\n\n```bash\ncurl -fsSL https://raw.githubusercontent.com/continuedev/continue/main/extensions/cli/scripts/install.sh | bash\n```\n\n### Windows (PowerShell)\n\n```powershell\nirm https://raw.githubusercontent.com/continuedev/continue/main/extensions/cli/scripts/install.ps1 | iex\n```\n\n### npm\n\n```bash\nnpm i -g @continuedev\n```\n\n资料来源：[README.md](https://github.com/continuedev/continue/blob/main/README.md)\n\n## Related Files\n\nThe CLI tool integrates with several other components:\n\n- **IDE Extension**: Communicates via `ideMessenger` for UI updates and user interactions\n- **Service Container**: Central service for managing CLI operations and state\n- **Permission Manager**: Handles permission requests for sensitive operations\n- **Telemetry Service**: Records command usage and system metrics\n\n---\n\n<a id='model-providers'></a>\n\n## Model Providers and LLM Integration\n\n### 相关页面\n\n相关主题：[Core Library](#core-library), [Configuration System](#config-system)\n\n<details>\n<summary>相关源码文件</summary>\n\n以下源码文件用于生成本页说明：\n\n- [gui/src/pages/config/sections/ModelsSection.tsx](https://github.com/continuedev/continue/blob/main/gui/src/pages/config/sections/ModelsSection.tsx)\n- [gui/src/pages/AddNewModel/configs/providers.ts](https://github.com/continuedev/continue/blob/main/gui/src/pages/AddNewModel/configs/providers.ts)\n- [gui/src/pages/config/components/ModelRoleSelector.tsx](https://github.com/continuedev/continue/blob/main/gui/src/pages/config/components/ModelRoleSelector.tsx)\n- [extensions/cli/src/slashCommands.ts](https://github.com/continuedev/continue/blob/main/extensions/cli/src/slashCommands.ts)\n- [extensions/cli/src/ui/IntroMessage.tsx](https://github.com/continuedev/continue/blob/main/extensions/cli/src/ui/IntroMessage.tsx)\n- [gui/src/pages/stats.tsx](https://github.com/continuedev/continue/blob/main/gui/src/pages/stats.tsx)\n</details>\n\n# Model Providers and LLM Integration\n\n## Overview\n\nContinue's Model Providers and LLM Integration system provides a flexible, pluggable architecture for connecting to various Large Language Model (LLM) providers. The system supports multiple provider types including OpenAI, Anthropic, local models via Ollama and Llamafile, and cloud-hosted models through Replicate.\n\nThe integration layer abstracts away provider-specific differences, allowing users to configure and switch between different models while maintaining a consistent interface for AI-powered features across the Continue IDE and CLI.\n\n## Architecture\n\n### Model Provider Hierarchy\n\nThe system organizes providers hierarchically with support for multiple model roles:\n\n```mermaid\ngraph TD\n    A[Model Configuration] --> B[Model Provider]\n    A --> C[Model Role]\n    B --> D[OpenAI]\n    B --> E[Anthropic]\n    B --> F[Ollama]\n    B --> G[Llamafile]\n    B --> H[Replicate]\n    C --> I[Chat]\n    C --> J[Autocomplete]\n    C --> K[Edit]\n    C --> L[Apply]\n    C --> M[Embed]\n```\n\n### Supported Model Roles\n\nContinue defines five distinct model roles that serve different purposes within the IDE:\n\n| Role | Purpose | Description |\n|------|---------|-------------|\n| `chat` | General conversation | Primary model for user interactions and code assistance |\n| `autocomplete` | Inline completions | Used for real-time code completions as the user types |\n| `edit` | Code transformations | Transforms selected sections of code via inline edit commands |\n| `apply` | Code block application | Applies generated codeblocks to files |\n| `embed` | Semantic embeddings | Generates and queries embeddings for @codebase and @docs context providers |\n\n资料来源：[gui/src/pages/config/sections/ModelsSection.tsx:1-100]()\n\n## Provider Configuration\n\n### Local Providers\n\n#### Ollama\n\nOllama enables running open-source models locally. Configuration includes:\n\n- **Setup**: Download and run from [github.com/ollama/ollama](https://github.com/ollama/ollama)\n- **Tags**: Local, Open Source\n- **API Requirements**: Requires local Ollama server running\n\n#### Llamafile\n\nLlamafile provides another local model option using Mozilla's llamafile binary:\n\n```shell\nchmod +x ./llamafile\n./llamafile\n```\n\n资料来源：[gui/src/pages/AddNewModel/configs/providers.ts:1-50]()\n\n### Cloud Providers\n\n#### Replicate\n\nReplicate offers hosted access to open-source models via API:\n\n1. Obtain an API key from [replicate.com](https://replicate.com)\n2. Configure in Continue settings\n3. Select from available model presets\n\n| Parameter | Type | Required | Description |\n|-----------|------|----------|-------------|\n| `apiKey` | string | Yes | Replicate API authentication key |\n| `model` | string | No | Specific model preset selection |\n\n资料来源：[gui/src/pages/AddNewModel/configs/providers.ts:50-100]()\n\n## Model Selection Interface\n\n### Model Role Selector\n\nThe ModelRoleSelector component provides a UI for selecting models based on role:\n\n```mermaid\ngraph LR\n    A[ModelRoleSelector] --> B[Model List]\n    B --> C[Valid Models]\n    B --> D[Invalid Config Models]\n    C --> E[Selectable]\n    D --> F[Disabled with reason]\n```\n\nThe selector displays configuration status for each model:\n\n| Status | Message | Meaning |\n|--------|---------|---------|\n| `VALID` | (none) | Model is properly configured |\n| `INVALID` | (Invalid config) | General configuration error |\n| `MISSING_ENV_SECRET` | (Missing env secret) | Required environment secret not set |\n| `MISSING_API_KEY` | (Missing API Key) | API key not provided |\n\nModels are sorted alphabetically by title and display validation messages inline.\n\n资料来源：[gui/src/pages/config/components/ModelRoleSelector.tsx:1-80]()\n\n## User Settings and Configuration\n\n### Model-Related Preferences\n\nSeveral user settings control model behavior:\n\n| Setting | Description | Default |\n|---------|-------------|---------|\n| `useCurrentFileAsContext` | Add currently open file to new conversations | varies |\n| `codebaseToolCallingOnly` | @codebase uses only tool calling for retrieval | varies |\n| `continueAfterToolRejection` | Continue streaming after tool rejection | varies |\n| `enableExperimentalTools` | Enable experimental tool features | varies |\n\n### Model Switching\n\nThe `/model` slash command opens the model selector interface:\n\n```typescript\nmodel: () => ({ openModelSelector: true }),\n```\n\nThis allows quick switching between configured models without navigating through settings.\n\n资料来源：[extensions/cli/src/slashCommands.ts:1-50]()\n\n## Token Usage and Statistics\n\n### Stats Tracking\n\nContinue tracks token usage per model for monitoring and cost management:\n\n```mermaid\ngraph TD\n    A[Model Interaction] --> B[Track Tokens]\n    B --> C[Prompt Tokens]\n    B --> D[Generated Tokens]\n    C --> E[Daily Aggregation]\n    D --> E\n    E --> F[Per-Model Stats]\n```\n\nThe stats page displays:\n\n| Metric | Description | Format |\n|--------|-------------|--------|\n| `Day/Model` | Time period identifier | string |\n| `Generated Tokens` | Tokens produced by model | number with locale formatting |\n| `Prompt Tokens` | Input tokens sent to model | number with locale formatting |\n\nTokens are formatted using `toLocaleString()` for readability and can be copied as tables.\n\n资料来源：[gui/src/pages/stats.tsx:1-60]()\n\n## Model Capability Detection\n\n### IntroMessage Component\n\nThe IntroMessage component displays current model information in the CLI interface:\n\n```typescript\n{model ? (\n  <Text color=\"blue\">\n    <Text bold>Model:</Text>{\" \"}\n    <Text color=\"white\">{model.name.split(\"/\").pop()}</Text>\n  </Text>\n) : (\n  <Text color=\"blue\">\n    <Text bold>Model:</Text> <Text color=\"dim\">Loading...</Text>\n  </Text>\n)}\n```\n\nModel names are extracted from full identifiers by splitting on \"/\" and taking the last component, providing cleaner display names.\n\n### Capability Warnings\n\nWhen a selected model lacks required capabilities:\n\n```typescript\n{model && !modelCapable && (\n  <>\n    <ModelCapabilityWarning\n      modelName={model.name.split(\"/\").pop() || model.name}\n    />\n    <Text> </Text>\n  </>\n)}\n```\n\n资料来源：[extensions/cli/src/ui/IntroMessage.tsx:1-50]()\n\n## Configuration Validation\n\n### LLM Configuration Statuses\n\nThe system validates model configurations with the following statuses:\n\n```mermaid\nstateDiagram-v2\n    [*] --> Valid: All requirements met\n    [*] --> Invalid: Configuration error\n    [*] --> MissingEnvSecret: Env var not set\n    [*] --> MissingApiKey: API key not provided\n    Valid --> [*]\n    Invalid --> [*]: Fix config\n    MissingEnvSecret --> [*]: Set env secret\n    MissingApiKey --> [*]: Provide API key\n```\n\nConfiguration validation occurs at load time and updates dynamically when settings change.\n\n资料来源：[gui/src/pages/config/components/ModelRoleSelector.tsx:20-45]()\n\n## Integration with Context Providers\n\n### Embedding Models\n\nThe `embed` role is specifically designed for semantic search operations:\n\n- Generates embeddings for code and documentation\n- Powers the `@codebase` context provider\n- Enables the `@docs` context provider\n\nWhen no embedding model is configured, context providers fall back to alternative retrieval methods.\n\n## Summary\n\nContinue's Model Providers and LLM Integration system provides:\n\n1. **Multi-provider support** - OpenAI, Anthropic, Ollama, Llamafile, Replicate, and more\n2. **Role-based model selection** - Different models optimized for chat, completion, editing, application, and embedding\n3. **Local and cloud options** - Run models locally or leverage cloud APIs\n4. **Configuration validation** - Clear error messages for invalid or incomplete setups\n5. **Usage tracking** - Token usage statistics for cost monitoring\n6. **Capability detection** - Warnings when model capabilities don't match requirements\n\n---\n\n<a id='chat-system'></a>\n\n## Chat and Agent System\n\n### 相关页面\n\n相关主题：[Core Library](#core-library), [Model Providers and LLM Integration](#model-providers)\n\n<details>\n<summary>Related Source Files</summary>\n\n以下源码文件用于生成本页说明：\n\n- [core/tools/builtIn.ts](https://github.com/continuedev/continue/blob/main/core/tools/builtIn.ts)\n- [core/tools/callTool.ts](https://github.com/continuedev/continue/blob/main/core/tools/callTool.ts)\n- [extensions/cli/src/stream/streamChatResponse.ts](https://github.com/continuedev/continue/blob/main/extensions/cli/src/stream/streamChatResponse.ts)\n- [core/llm/streamChat.ts](https://github.com/continuedev/continue/blob/main/core/llm/streamChat.ts)\n- [extensions/cli/src/slashCommands.ts](https://github.com/continuedev/continue/blob/main/extensions/cli/src/slashCommands.ts)\n- [extensions/cli/src/systemMessage.ts](https://github.com/continuedev/continue/blob/main/extensions/cli/src/systemMessage.ts)\n- [gui/src/components/StyledMarkdownPreview/StepContainerPreToolbar/index.tsx](https://github.com/continuedev/continue/blob/main/gui/src/components/StyledMarkdownPreview/StepContainerPreToolbar/index.tsx)\n</details>\n\n# Chat and Agent System\n\n## Overview\n\nThe Chat and Agent System is the core interaction layer of the Continue platform, enabling users to communicate with AI models through a rich interface that supports tool execution, slash commands, streaming responses, and multi-modal interactions. The system bridges the gap between user input, LLM inference, and tool orchestration.\n\nThe architecture follows a modular design where the CLI handles core chat logic and streaming, while the GUI provides visual representations of messages, tool calls, and configuration panels.\n\n---\n\n## Architecture\n\n```mermaid\ngraph TD\n    subgraph \"User Interface Layer\"\n        GUI[GUI Components]\n        TUI[TUI Chat Interface]\n    end\n    \n    subgraph \"CLI Core Layer\"\n        SC[Slash Commands]\n        SM[System Message]\n        SCR[Stream Chat Response]\n        LM[Language Model]\n    end\n    \n    subgraph \"Tool Layer\"\n        BT[Built-in Tools]\n        CT[Call Tool]\n    end\n    \n    GUI --> TUI\n    TUI --> SC\n    TUI --> SM\n    TUI --> SCR\n    SCR --> LM\n    LM --> SCR\n    SC --> CT\n    CT --> BT\n```\n\n---\n\n## Core Components\n\n### Language Model Integration\n\nThe LLM integration is handled through `streamChat.ts`, which provides streaming capabilities for chat interactions.\n\n**Key Responsibilities:**\n\n- Managing chat completions with streaming support\n- Handling message formatting and context window management\n- Supporting multiple model providers through a unified interface\n\n**Stream Chat Functionality:**\n\n```typescript\n// Conceptual representation from core/llm/streamChat.ts\ninterface ChatMessage {\n  role: \"user\" | \"assistant\" | \"system\";\n  content: string | ContentBlock[];\n}\n\ninterface StreamOptions {\n  model: string;\n  messages: ChatMessage[];\n  temperature?: number;\n  maxTokens?: number;\n  tools?: ToolDefinition[];\n}\n```\n\n资料来源：[core/llm/streamChat.ts:1-50]()\n\n---\n\n### Stream Chat Response Processing\n\nThe `streamChatResponse.ts` file handles the processing of streaming responses from the LLM, managing the incremental rendering of AI outputs.\n\n**Processing Pipeline:**\n\n1. Receive chunks from the streaming endpoint\n2. Parse delta updates for content\n3. Handle special tokens (tool calls, thinking blocks)\n4. Aggregate content for final rendering\n\n资料来源：[extensions/cli/src/stream/streamChatResponse.ts:1-60]()\n\n---\n\n## Tool System\n\n### Built-in Tools\n\nThe `builtIn.ts` file defines the core set of tools available to the agent by default. These tools provide essential capabilities for file operations, code execution, and system interaction.\n\n**Tool Categories:**\n\n| Category | Tools | Purpose |\n|----------|-------|---------|\n| File Operations | Read, Edit, Write | File system interactions |\n| Code Execution | Bash, Python | Run commands and scripts |\n| Search | Grep, FileSearch | Find code and text |\n| Git | GitStatus, GitDiff | Version control operations |\n| Web | WebFetch | External resource retrieval |\n\n**Tool Definition Structure:**\n\n```typescript\ninterface ToolDefinition {\n  name: string;\n  description: string;\n  parameters: {\n    type: \"object\";\n    properties: Record<string, ToolParameter>;\n    required?: string[];\n  };\n}\n```\n\n资料来源：[core/tools/builtIn.ts:1-100]()\n\n### Tool Invocation\n\nThe `callTool.ts` module handles the actual execution of tools requested by the LLM. It manages the tool call lifecycle from invocation to result return.\n\n**Call Tool Workflow:**\n\n```mermaid\nsequenceDiagram\n    participant LLM as LLM Agent\n    participant CT as Call Tool\n    participant BT as Built-in Tools\n    participant UI as User Interface\n    \n    LLM->>CT: Request tool execution\n    CT->>BT: Validate and parse parameters\n    BT->>BT: Execute tool logic\n    BT-->>CT: Return result\n    CT-->>LLM: Format response\n    CT-->>UI: Update status\n```\n\n**Key Features:**\n\n- Parameter validation against tool schemas\n- Error handling and graceful degradation\n- Result formatting for LLM consumption\n- Permission checking based on tool policies\n\n资料来源：[core/tools/callTool.ts:1-80]()\n\n---\n\n## Slash Commands\n\nSlash commands provide quick access to system features directly from the chat input. The command handler is defined in `slashCommands.ts`.\n\n### Available Commands\n\n| Command | Action | Description |\n|---------|--------|-------------|\n| `/clear` | Clear chat history | Resets the conversation context |\n| `/exit` | Exit session | Closes the CLI interface |\n| `/config` | Open config selector | Navigate to configuration |\n| `/login` | Authenticate | Initiate login flow |\n| `/logout` | End session | Sign out current user |\n| `/whoami` | Show identity | Display current user info |\n| `/model` | Open model selector | Switch LLM provider |\n| `/compact` | Compact context | Reduce context window size |\n| `/mcp` | MCP server menu | Manage MCP servers |\n| `/resume` | Resume session | Open saved sessions |\n| `/fork` | Fork conversation | Create a branch |\n| `/title` | Generate title | Create chat title |\n| `/update` | Update selector | Check for updates |\n| `/jobs` | Job management | View background jobs |\n| `/skills` | Skill browser | Access skill library |\n| `/sessions` | Session manager | List/manage sessions |\n| `/export` | Export data | Export chat history |\n| `/import` | Import data | Import external data |\n\n### Command Processing\n\n```typescript\n// From extensions/cli/src/slashCommands.ts\nexport async function handleSlashCommands(\n  input: string,\n  assistant: AssistantConfig,\n  options?: { remoteUrl?: string; isRemoteMode?: boolean },\n): Promise<SlashCommandResult | null> {\n  // Only trigger slash commands if slash is the very first character\n  if (!input.startsWith(\"/\") || !input.trim().startsWith(\"/\")) {\n    return null;\n  }\n\n  const [command, ...args] = input.slice(1).split(\" \");\n  // ... command execution logic\n}\n```\n\n**Command Trigger Rules:**\n\n- The command must start with `/`\n- Slash must be the first character of the input\n- Arguments are passed after a space delimiter\n\n资料来源：[extensions/cli/src/slashCommands.ts:30-80]()\n\n---\n\n## System Message Generation\n\nThe `systemMessage.ts` file constructs the system prompt that provides context and instructions to the LLM.\n\n### System Message Components\n\n```typescript\n// From extensions/cli/src/systemMessage.ts\n\n// Commit signature injection\nif (!process.env.CONTINUE_CLI_DISABLE_COMMIT_SIGNATURE) {\n  systemMessage += `\\n<context name=\"commitSignature\">\nWhen creating commits using any CLI or tool, include the following in the commit message:\nGenerated with [Continue](https://continue.dev)\nCo-Authored-By: Continue <noreply@continue.dev>\n</context>\\n`;\n}\n\n// Headless mode instructions\nif (headless) {\n  systemMessage += `\nIMPORTANT: You are running in headless mode. \nProvide ONLY your final answer to the user's question. \nDo not include explanations, reasoning, or additional commentary.`;\n}\n\n// JSON output mode\nif (format === \"json\") {\n  systemMessage += `\nIMPORTANT: You are operating in JSON output mode. \nYour final response MUST be valid JSON.`;\n}\n```\n\n### User Rules Integration\n\n```typescript\nif (agentContent || processedRules.length > 0) {\n  systemMessage += '\\n\\n<context name=\"userRules\">';\n  \n  if (agentContent) {\n    systemMessage += `\\n${agentContent}`;\n  }\n  \n  if (processedRules.length > 0) {\n    // Add rule-specific instructions\n  }\n}\n```\n\n资料来源：[extensions/cli/src/systemMessage.ts:20-60]()\n\n---\n\n## User Interface Components\n\n### GUI Chat Interface\n\nThe GUI components render chat messages with rich formatting, tool call visualization, and interactive elements.\n\n**Message Rendering Pipeline:**\n\n1. Parse markdown content\n2. Handle nested code blocks\n3. Apply syntax highlighting\n4. Render tool call previews\n5. Display action buttons (Apply, Reject, Create File)\n\n```typescript\n// From gui/src/components/StyledMarkdownPreview/StepContainerPreToolbar/index.tsx\n// Rendering decision logic\nif (isTerminalCodeBlock(language, codeBlockContent)) {\n  return <RunInTerminalButton command={codeBlockContent} />;\n}\n\nif (fileExists || !relativeFilepath) {\n  return (\n    <ApplyActions\n      disableManualApply={disableManualApply}\n      applyState={toolCallApplyState ?? applyState}\n      onClickApply={onClickApply}\n      onClickAccept={() => handleDiffAction(\"accept\")}\n      onClickReject={() => handleDiffAction(\"reject\")}\n    />\n  );\n}\n\nreturn <CreateFileButton onClick={onClickApply} />;\n```\n\n### TUI Chat Interface\n\nThe Terminal User Interface provides a text-based chat experience with keyboard navigation and terminal-compatible rendering.\n\n```typescript\n// From extensions/cli/src/ui/TUIChat.tsx\n<BottomStatusBar\n  currentMode={services?.toolPermissions?.currentMode ?? \"normal\"}\n  remoteUrl={remoteUrl}\n  isRemoteMode={isRemoteMode}\n  services={services}\n  navState={navState}\n  navigateTo={navigateTo}\n  closeCurrentScreen={closeCurrentScreen}\n  contextPercentage={contextData?.percentage}\n  hasImageInClipboard={hasImageInClipboard}\n  isVerboseMode={isVerboseMode}\n  totalCost={getTotalSessionCost()}\n/>\n```\n\n---\n\n## Configuration Management\n\n### Model Configuration\n\nModels are configured per role, supporting different models for different tasks:\n\n| Role | Purpose | Example Models |\n|------|---------|----------------|\n| chat | General conversation | GPT-4, Claude, Llama |\n| autocomplete | Inline code completion | StarCoder, CodeGen |\n| edit | Code transformation | Specialized edit models |\n\n资料来源：[gui/src/pages/config/sections/ModelsSection.tsx:40-100]()\n\n### Tool Configuration\n\nTool policies control how and when tools can be executed:\n\n| Policy | Behavior |\n|--------|----------|\n| `allowedWithPermission` | Execute after user approval |\n| `allowedWithoutPermission` | Execute automatically |\n| `disabled` | Tool unavailable |\n\n```typescript\n// From gui/src/redux/slices/uiSlice.ts\ntoggleToolSetting: (state, action: PayloadAction<string>) => {\n  const setting = state.toolSettings[action.payload];\n\n  switch (setting) {\n    case \"allowedWithPermission\":\n      state.toolSettings[action.payload] = \"allowedWithoutPermission\";\n      break;\n    case \"allowedWithoutPermission\":\n      state.toolSettings[action.payload] = \"disabled\";\n      break;\n    case \"disabled\":\n      state.toolSettings[action.payload] = \"allowedWithPermission\";\n      break;\n  }\n}\n```\n\n---\n\n## Error Handling\n\nThe system includes comprehensive error handling for configuration issues and runtime failures.\n\n```typescript\n// From gui/src/components/config/FatalErrorNotice.tsx\nreturn (\n  <Alert type=\"error\" className=\"mx-2 my-1 px-2\">\n    <span>{`Error loading`}</span>{\" \"}\n    <span className=\"italic\">{displayName}</span>\n    {\". \"}\n    <span>{`Chat is disabled until a model is available.`}</span>\n    <div className=\"mt-2 flex flex-row flex-wrap items-center gap-x-3 gap-y-1.5\">\n      <div onClick={() => ideMessenger.post(\"openUrl\", \"https://docs.continue.dev/troubleshooting\")}>\n        Help\n      </div>\n      <div onClick={() => refreshProfiles(\"Clicked reload in fatal indicator\")}>\n        Reload\n      </div>\n    </div>\n  </Alert>\n);\n```\n\n---\n\n## Data Flow\n\n```mermaid\ngraph LR\n    subgraph \"Input Processing\"\n        UM[User Message]\n        SC[Slash Command]\n        TK[Tool Call]\n    end\n    \n    subgraph \"Processing\"\n        LLM[LLM Inference]\n        TM[Tool Manager]\n        SM[System Message]\n    end\n    \n    subgraph \"Output\"\n        STR[Stream Response]\n        UI[UI Update]\n        TS[Tool State]\n    end\n    \n    UM --> LLM\n    SC --> TM\n    TK --> TM\n    TM --> LLM\n    SM --> LLM\n    LLM --> STR\n    STR --> UI\n    TM --> TS\n```\n\n---\n\n## Summary\n\nThe Chat and Agent System in Continue provides a comprehensive framework for AI-assisted development. Key aspects include:\n\n1. **Modular Architecture**: Clear separation between UI, CLI core, and tool execution layers\n2. **Streaming Support**: Real-time response rendering for improved user experience\n3. **Tool Integration**: Built-in tools plus MCP server support for extensibility\n4. **Flexible Configuration**: Role-based model selection and granular tool policies\n5. **Slash Commands**: Quick access to system features from chat input\n6. **Error Resilience**: Graceful handling of configuration and runtime errors\n\nThe system is designed to be both user-friendly for developers and extensible for power users who need custom tool integrations.\n\n---\n\n<a id='autocomplete'></a>\n\n## Autocomplete System\n\n### 相关页面\n\n相关主题：[Core Library](#core-library), [Next Edit Feature](#next-edit)\n\n<details>\n<summary>相关源码文件</summary>\n\n以下源码文件用于生成本页说明：\n\n- [gui/src/pages/config/sections/UserSettingsSection.tsx](https://github.com/continuedev/continue/blob/main/gui/src/pages/config/sections/UserSettingsSection.tsx)\n- [gui/src/pages/config/sections/ModelsSection.tsx](https://github.com/continuedev/continue/blob/main/gui/src/pages/config/sections/ModelsSection.tsx)\n- [packages/config-yaml/src/validation.ts](https://github.com/continuedev/continue/blob/main/packages/config-yaml/src/validation.ts)\n- [gui/src/components/OnboardingLocalTab.tsx](https://github.com/continuedev/continue/blob/main/gui/src/components/OnboardingLocalTab.tsx)\n- [gui/src/components/console/Start.tsx](https://github.com/continuedev/continue/blob/main/gui/src/components/console/Start.tsx)\n- [extensions/cli/src/ui/IntroMessage.tsx](https://github.com/continuedev/continue/blob/main/extensions/cli/src/ui/IntroMessage.tsx)\n</details>\n\n# Autocomplete System\n\nThe Autocomplete System is a core feature of Continue that provides intelligent inline code completions as users type. It leverages fill-in-the-middle (FIM) techniques and contextual information from the codebase to generate relevant code suggestions, enhancing developer productivity across supported IDEs.\n\n## Overview\n\nThe autocomplete functionality in Continue operates through a multi-layered architecture that handles:\n\n- **Model Selection**: Dedicated models optimized for completion tasks\n- **Context Retrieval**: Fetching relevant code snippets from the codebase\n- **Template Processing**: Formatting prompts for the completion model\n- **Streaming Results**: Real-time delivery of completion suggestions\n\nThe system integrates with both VS Code and JetBrains extensions, providing a unified autocomplete experience across different development environments.\n\n## Model Configuration\n\n### Autocomplete Model Roles\n\nContinue distinguishes between different model roles in its configuration system. The autocomplete role specifically manages models used for inline code completions.\n\n| Role | Purpose | Documentation |\n|------|---------|---------------|\n| `autocomplete` | Used in inline code completions as you type | [Setup Guide](https://docs.continue.dev/features/tab-autocomplete) |\n| `chat` | Interactive chat conversations | Model configuration |\n| `edit` | Transforming selected code sections | Edit feature docs |\n\n资料来源：[gui/src/pages/config/sections/ModelsSection.tsx:1-50]()\n\n### Model Validation\n\nThe system validates that selected autocomplete models are appropriate for the task. Models not trained for tab-autocomplete generate a warning because they produce low-quality suggestions.\n\n```typescript\nconst nonAutocompleteModels = [\n  \"gpt-4\",\n  \"gpt-3.5\",\n  \"claude\",\n  \"mistral\",\n  \"instruct\",\n];\n\nif (\n  nonAutocompleteModels.some((m) => modelName.includes(m)) &&\n  !modelName.includes(\"deepseek\") &&\n  !modelName.includes(\"codestral\") &&\n  !modelName.toLowerCase().includes(\"coder\")\n) {\n  errors.push({\n    fatal: false,\n    message: `${model.model} is not trained for tab-autocomplete, and will result in low-quality suggestions.`,\n  });\n}\n```\n\n资料来源：[packages/config-yaml/src/validation.ts](https://github.com/continuedev/continue/blob/main/packages/config-yaml/src/validation.ts)\n\nThe validation excludes known code completion models like DeepSeek, Codestral, and models with \"coder\" in their name from this warning.\n\n### Local Model Setup\n\nFor local development, Continue supports downloading dedicated autocomplete models via Ollama:\n\n| Model Type | Purpose |\n|------------|---------|\n| Chat Model | General conversation and reasoning |\n| FIM Model | Fill-in-the-middle code completions |\n| Embeddings Model | Semantic search for context |\n\n资料来源：[gui/src/components/OnboardingLocalTab.tsx](https://github.com/continuedev/continue/blob/main/gui/src/components/OnboardingLocalTab.tsx)\n\n## Configuration Settings\n\n### User Settings Panel\n\nThe autocomplete behavior can be customized through several configuration options:\n\n| Setting | Type | Default | Range | Description |\n|---------|------|---------|-------|-------------|\n| Multiline Completions | select | \"auto\" | auto, always, never | Controls multiline completion behavior |\n| Autocomplete Timeout | number | varies | 100-5000ms | Maximum request time for autocomplete |\n| Autocomplete Debounce | number | varies | 0-2500ms | Delay before triggering autocomplete after changes |\n| Disable Patterns | input | empty | glob patterns | File patterns where autocomplete is disabled |\n\n资料来源：[gui/src/pages/config/sections/UserSettingsSection.tsx:1-80]()\n\n#### Multiline Completions Mode\n\nThe multiline setting controls how the system handles suggestions that span multiple lines:\n\n- **Auto**: System decides based on context\n- **Always**: Always show multiline completions\n- **Never**: Restrict to single-line suggestions\n\n#### Disable Autocomplete Patterns\n\nUsers can specify glob patterns to disable autocomplete in specific files:\n\n```\n**/*.(txt,md)\n```\n\n资料来源：[gui/src/pages/config/sections/UserSettingsSection.tsx](https://github.com/continuedev/continue/blob/main/gui/src/pages/config/sections/UserSettingsSection.tsx)\n\n## Autocomplete Request Flow\n\n### Request Structure\n\nWhen an autocomplete request is initiated, the system captures several key pieces of information:\n\n```mermaid\ngraph TD\n    A[User Types] --> B{Debounce Timer}\n    B -->|delay elapsed| C[Generate Prefix]\n    C --> D[Generate Suffix]\n    D --> E[Fetch Context]\n    E --> F[Build Prompt Template]\n    F --> G[Send to Model]\n    G --> H[Stream Completions]\n    H --> I[Render Suggestions]\n```\n\n### Request Payload Components\n\nThe autocomplete request includes the following components:\n\n| Component | Description |\n|-----------|-------------|\n| `prefix` | Text before the cursor position |\n| `suffix` | Text after the cursor position |\n| `options` | Model configuration and parameters |\n\n资料来源：[gui/src/components/console/Start.tsx](https://github.com/continuedev/continue/blob/main/gui/src/components/console/Start.tsx)\n\n### Timeout Handling\n\nThe autocomplete timeout setting (`modelTimeout`) defines the maximum time in milliseconds for:\n1. Sending the completion request to the model\n2. Receiving the response back\n\n```typescript\n<UserSetting\n  type=\"number\"\n  title=\"Autocomplete Timeout (ms)\"\n  description=\"Maximum time in milliseconds for autocomplete request/retrieval.\"\n  value={modelTimeout}\n  onChange={(val) => handleUpdate({ modelTimeout: val })}\n  min={100}\n  max={5000}\n/>\n```\n\n资料来源：[gui/src/pages/config/sections/UserSettingsSection.tsx](https://github.com/continuedev/continue/blob/main/gui/src/pages/config/sections/UserSettingsSection.tsx)\n\n## Debouncing Mechanism\n\nThe debounce delay controls how frequently autocomplete requests are triggered:\n\n```\nUser Input → Debounce Timer (delay) → Autocomplete Request\n     ↓\n   More Input → Timer Reset\n```\n\n| Debounce Value | Behavior |\n|----------------|----------|\n| 0 | No debouncing, immediate requests |\n| 500-1000ms | Standard debouncing for most use cases |\n| 2000+ ms | Heavy debouncing, reduced server load |\n\nThe minimum value of 0 disables debouncing entirely, while the maximum of 2500ms prevents excessive requests during rapid typing.\n\n资料来源：[gui/src/pages/config/sections/UserSettingsSection.tsx](https://github.com/continuedev/continue/blob/main/gui/src/pages/config/sections/UserSettingsSection.tsx)\n\n## Model Capability Warnings\n\nThe CLI intro message displays warnings when the selected model may not be optimal for autocomplete:\n\n```typescript\n{model && !modelCapable && (\n  <>\n    <ModelCapabilityWarning\n      modelName={model.name.split(\"/\").pop() || model.name}\n    />\n    <Text> </Text>\n  </>\n)}\n```\n\n资料来源：[extensions/cli/src/ui/IntroMessage.tsx](https://github.com/continuedev/continue/blob/main/extensions/cli/src/ui/IntroMessage.tsx)\n\nThese warnings help users understand when they should select a different model for better autocomplete performance.\n\n## Architecture Summary\n\n```mermaid\ngraph TD\n    subgraph \"Configuration Layer\"\n        A[User Settings] --> B[Model Selection]\n        B --> C[Validation]\n    end\n    \n    subgraph \"Request Processing\"\n        D[Debounce Service] --> E[Prefix/Suffix Extraction]\n        E --> F[Context Retrieval]\n        F --> G[Template Processing]\n    end\n    \n    subgraph \"Model Layer\"\n        G --> H[Autocomplete Model]\n        H --> I[Completion Streamer]\n    end\n    \n    subgraph \"UI Layer\"\n        I --> J[Suggestion Renderer]\n        C --> J\n    end\n```\n\n## JetBrains Integration\n\nThe autocomplete system has platform-specific behavior. In JetBrains IDEs, the model selector is rendered inline within the autocomplete UI, whereas VS Code uses a separate configuration panel.\n\n```typescript\n{/* Jetbrains has a model selector inline */}\n{!jetbrains && (\n  <>\n    <Divider />\n    <ModelRoleRow\n      role=\"edit\"\n      displayName=\"Edit\"\n      shortcut={<Shortcut>cmd I</Shortcut>}\n      ...\n    />\n  </>\n)}\n```\n\n资料来源：[gui/src/pages/config/sections/ModelsSection.tsx](https://github.com/continuedev/continue/blob/main/gui/src/pages/config/sections/ModelsSection.tsx)\n\n## Best Practices\n\n1. **Model Selection**: Use models specifically designed for code completion (e.g., StarCoder, CodeLlama, DeepSeek Coder)\n2. **Timeout Tuning**: Adjust timeout based on network latency and model response time\n3. **Debounce Optimization**: Balance between responsiveness and server load\n4. **Pattern Exclusion**: Disable autocomplete in documentation and text files to reduce noise\n\n## Related Documentation\n\n- [Tab Autocomplete Feature](https://docs.continue.dev/features/tab-autocomplete)\n- [Troubleshooting Guide](https://docs.continue.dev/troubleshooting)\n- [Continue Website](https://continue.dev)\n\n---\n\n<a id='next-edit'></a>\n\n## Next Edit Feature\n\n### 相关页面\n\n相关主题：[Autocomplete System](#autocomplete), [Chat and Agent System](#chat-system)\n\n<details>\n<summary>相关源码文件</summary>\n\n以下源码文件用于生成本页说明：\n\n- [core/nextEdit/NextEditProvider.ts](https://github.com/continuedev/continue/blob/main/core/nextEdit/NextEditProvider.ts)\n- [core/nextEdit/context/processNextEditData.ts](https://github.com/continuedev/continue/blob/main/core/nextEdit/context/processNextEditData.ts)\n- [core/nextEdit/providers/BaseNextEditProvider.ts](https://github.com/continuedev/continue/blob/main/core/nextEdit/providers/BaseNextEditProvider.ts)\n- [core/nextEdit/providers/InstinctNextEditProvider.ts](https://github.com/continuedev/continue/blob/main/core/nextEdit/providers/InstinctNextEditProvider.ts)\n</details>\n\n# Next Edit Feature\n\nThe **Next Edit Feature** is a code transformation system in Continue that enables users to modify selected code sections using AI-powered edit operations. It provides an alternative editing paradigm to inline completions, allowing for precise, intentional transformations of existing code.\n\n## Architecture Overview\n\nThe Next Edit system follows a provider-based architecture with a clear separation between the core provider interface and specific implementations.\n\n```mermaid\ngraph TD\n    A[Continue Core] --> B[NextEditProvider]\n    B --> C[BaseNextEditProvider]\n    C --> D[InstinctNextEditProvider]\n    B --> E[Other Providers]\n    \n    F[processNextEditData] --> B\n    G[User Selection] --> H[Edit Request]\n    H --> B\n    B --> I[Transformed Code]\n```\n\n## Core Components\n\n### NextEditProvider\n\nThe main interface that defines the contract for all edit providers. It handles the core logic for receiving edit requests and returning transformed code.\n\n| Property | Type | Description |\n|----------|------|-------------|\n| `name` | `string` | Provider identifier |\n| `getInsertion` | `method` | Handles code transformation logic |\n| `prepareContext` | `method` | Prepares context for edit operations |\n\n资料来源：[core/nextEdit/NextEditProvider.ts]()\n\n### BaseNextEditProvider\n\nAbstract base class providing common functionality for all edit providers. Implements shared logic for context preparation and response handling.\n\n| Method | Purpose |\n|--------|---------|\n| `getInsertion` | Core edit transformation method |\n| `prepareContext` | Context setup for edit operations |\n| `validateInput` | Input validation before processing |\n\n资料来源：[core/nextEdit/providers/BaseNextEditProvider.ts]()\n\n### InstinctNextEditProvider\n\nThe default implementation of the edit provider that uses Instinct (Continue's internal model interaction system) for code transformations. This provider handles the actual LLM-based edit generation.\n\n资料来源：[core/nextEdit/providers/InstinctNextEditProvider.ts]()\n\n## Data Processing Pipeline\n\n```mermaid\ngraph LR\n    A[User Code Selection] --> B[processNextEditData]\n    B --> C[Context Preparation]\n    C --> D[LLM Request]\n    D --> E[Edit Response]\n    E --> F[Validation]\n    F --> G[Transformed Code Output]\n```\n\n### processNextEditData\n\nHandles preprocessing of edit requests before they reach the provider. This module transforms raw user input into a format suitable for model inference.\n\n**Responsibilities:**\n- Parse and validate edit request payloads\n- Extract relevant code context from the selection\n- Format context for optimal model understanding\n\n资料来源：[core/nextEdit/context/processNextEditData.ts]()\n\n## Integration Points\n\n### Model Configuration\n\nThe edit feature requires a configured \"edit\" model role. This is visible in the model selection UI:\n\n```typescript\n// From ModelsSection.tsx - Edit model configuration\n<ModelRoleRow\n  role=\"edit\"\n  displayName=\"Edit\"\n  shortcut={<span className=\"text-2xs text-description-muted\">(<Shortcut>cmd I</Shortcut>)</span>}\n  description=\"Used to transform a selected section of code\"\n/>\n```\n\n资料来源：[gui/src/pages/config/sections/ModelsSection.tsx:85-107]()\n\n### UI Integration\n\nThe edit feature integrates with the main chat interface through the `ContinueInputBox` component and supports edit mode transitions.\n\n```typescript\n// Keyboard shortcut handling from editorConfig.ts\nEscape: () => {\n  if (isInEditRef.current) {\n    void dispatch(exitEdit({ openNewSession: false }));\n  }\n  return true;\n}\n```\n\n资料来源：[gui/src/components/mainInput/TipTapEditor/utils/editorConfig.ts:95-101]()\n\n### Session Management\n\nEdit operations are tracked within the session state for undo/history purposes:\n\n```typescript\n// From sessionSlice.ts\nupdateSessionMetadata: (\n  state,\n  { payload }: PayloadAction<{ sessionId: string } & Partial<BaseSessionMetadata>>\n) => {\n  state.allSessionMetadata = state.allSessionMetadata.map((session) =>\n    session.sessionId === payload.sessionId ? { ...session, ...payload } : session\n  );\n}\n```\n\n资料来源：[gui/src/redux/slices/sessionSlice.ts:89-102]()\n\n## Workflow Sequence\n\n```mermaid\nsequenceDiagram\n    participant User\n    participant Editor\n    participant NextEditProvider\n    participant LLM\n    participant Session\n\n    User->>Editor: Select code + Trigger edit\n    Editor->>NextEditProvider: Send edit request\n    NextEditProvider->>processNextEditData: Prepare context\n    processNextEditData->>NextEditProvider: Formatted context\n    NextEditProvider->>LLM: Request transformation\n    LLM->>NextEditProvider: Edit suggestions\n    NextEditProvider->>Editor: Display diff preview\n    User->>Editor: Accept/Reject\n    Editor->>Session: Record change\n```\n\n## Provider Implementation Pattern\n\n```typescript\n// Conceptual pattern from provider implementations\nclass CustomNextEditProvider extends BaseNextEditProvider {\n  async getInsertion(\n    code: string,\n    focusedIndex: number,\n    preContext: string,\n    postContext: string\n  ): Promise<EditResult> {\n    // Custom implementation\n    const context = this.prepareContext(code, preContext, postContext);\n    const response = await this.model.complete(context);\n    return this.processResponse(response);\n  }\n}\n```\n\n## Related Systems\n\n| System | Relationship |\n|--------|--------------|\n| Chat System | Edit requests flow through chat interface |\n| Model Selection | Requires configured \"edit\" model |\n| Session History | Edit operations are tracked in session state |\n| Slash Commands | `/edit` command triggers edit mode |\n\n资料来源：[extensions/cli/src/slashCommands.ts]()\n\n## Configuration Requirements\n\n1. **Model Setup**: An \"edit\" role model must be configured in Continue's config\n2. **API Access**: Model must support code transformation capabilities\n3. **Context Window**: Sufficient context length for code + instructions\n\n## Error Handling\n\nThe system includes error boundaries for graceful failure handling:\n\n```typescript\n// From Chat.tsx - Error boundary wrapping\n<ErrorBoundary\n  FallbackComponent={fallbackRender}\n  onReset={() => { dispatch(newSession()); }}\n>\n  {renderChatHistoryItem(item, index)}\n</ErrorBoundary>\n```\n\n资料来源：[gui/src/pages/gui/Chat.tsx:142-147]()\n\n## Summary\n\nThe Next Edit Feature provides a structured approach to AI-assisted code transformation within Continue. By leveraging a provider-based architecture, it maintains flexibility for different LLM backends while providing consistent edit capabilities. The feature integrates with the broader Continue system including model configuration, session management, and the chat interface.\n\n---\n\n<a id='config-system'></a>\n\n## Configuration System\n\n### 相关页面\n\n相关主题：[Core Library](#core-library)\n\n<details>\n<summary>相关源码文件</summary>\n\n以下源码文件用于生成本页说明：\n\n- [gui/src/components/config/FatalErrorNotice.tsx](https://github.com/continuedev/continue/blob/main/gui/src/components/config/FatalErrorNotice.tsx)\n- [gui/src/pages/config/sections/ModelsSection.tsx](https://github.com/continuedev/continue/blob/main/gui/src/pages/config/sections/ModelsSection.tsx)\n- [gui/src/pages/config/components/ModelRoleSelector.tsx](https://github.com/continuedev/continue/blob/main/gui/src/pages/config/components/ModelRoleSelector.tsx)\n- [gui/src/pages/config/sections/IndexingSettingsSection.tsx](https://github.com/continuedev/continue/blob/main/gui/src/pages/config/sections/IndexingSettingsSection.tsx)\n- [gui/src/redux/slices/sessionSlice.ts](https://github.com/continuedev/continue/blob/main/gui/src/redux/slices/sessionSlice.ts)\n- [extensions/cli/src/systemMessage.ts](https://github.com/continuedev/continue/blob/main/extensions/cli/src/systemMessage.ts)\n- [extensions/cli/src/slashCommands.ts](https://github.com/continuedev/continue/blob/main/extensions/cli/src/slashCommands.ts)\n- [extensions/cli/src/ui/IntroMessage.tsx](https://github.com/continuedev/continue/blob/main/extensions/cli/src/ui/IntroMessage.tsx)\n</details>\n\n# Configuration System\n\n## Overview\n\nThe Continue Configuration System manages all settings, model configurations, and behavioral parameters for the Continue AI coding assistant. It supports multiple configuration sources, profile-based configurations, and real-time UI-based configuration management.\n\nThe system is responsible for:\n- Loading and validating configuration from YAML files\n- Managing multiple configuration profiles\n- Storing and persisting model settings\n- Providing configuration state to the UI\n- Supporting runtime configuration updates\n\n```mermaid\ngraph TD\n    A[Configuration Sources] --> B[Config Loader]\n    B --> C[Config Validator]\n    C --> D[Config Store]\n    D --> E[UI Components]\n    D --> F[CLI Components]\n    D --> G[Core Engine]\n```\n\n## Configuration Sources\n\n### YAML Configuration Files\n\nThe primary configuration source is a `config.yaml` file located in the user's configuration directory. This file defines models, slash commands, rules, MCP servers, and other settings.\n\n资料来源：[gui/src/pages/config/sections/IndexingSettingsSection.tsx:1-50]()\n\n### Profile-Based Configuration\n\nContinue supports multiple configuration profiles, allowing users to maintain separate configurations for different use cases or environments. Profiles can be selected and managed through the UI.\n\n资料来源：[extensions/cli/src/slashCommands.ts:20-30]()\n\n### Runtime Configuration\n\nThe system also maintains runtime configuration state through Redux, allowing dynamic updates without requiring file changes.\n\n资料来源：[gui/src/redux/slices/sessionSlice.ts:1-80]()\n\n## Configuration State Management\n\n### Redux Store Integration\n\nThe configuration state is managed through Redux slices, with the session slice handling configuration-related state updates.\n\n```typescript\n// Configuration state structure (simplified)\ninterface ConfigState {\n  config: ContinuercJson;\n  selectedModelByRole: {\n    chat?: string;\n    autocomplete?: string;\n    edit?: string;\n  };\n  modelsByRole: {\n    [role: string]: any[];\n  };\n}\n```\n\n资料来源：[gui/src/redux/slices/sessionSlice.ts:50-100]()\n\n### Configuration Updates\n\nThe system supports optimistic updates for session metadata and configuration changes:\n\n```typescript\nupdateSessionMetadata: (state, { payload }) => {\n  state.allSessionMetadata = state.allSessionMetadata.map((session) =>\n    session.sessionId === payload.sessionId\n      ? { ...session, ...payload }\n      : session\n  );\n}\n```\n\n资料来源：[gui/src/redux/slices/sessionSlice.ts:60-75]()\n\n## Model Configuration\n\n### Model Roles\n\nContinue supports multiple model roles with distinct purposes:\n\n| Role | Purpose | UI Component |\n|------|---------|--------------|\n| `chat` | Main conversation model | ModelRoleSelector |\n| `autocomplete` | Inline code completions | ModelRoleSelector |\n| `edit` | Code transformation/ editing | ModelRoleSelector |\n\n资料来源：[gui/src/pages/config/sections/ModelsSection.tsx:1-80]()\n\n### Model Selection UI\n\nThe model selection interface displays available models with their configuration status:\n\n```typescript\n// Model configuration status checks\nconst isConfigInvalid = option.configurationStatus !== LLMConfigurationStatuses.VALID;\nlet invalidMessage = \"(Invalid config)\";\nif (option.configurationStatus === LLMConfigurationStatuses.MISSING_ENV_SECRET) {\n  invalidMessage = \"(Missing env secret)\";\n}\nif (option.configurationStatus === LLMConfigurationStatuses.MISSING_API_KEY) {\n  invalidMessage = \"(Missing API Key)\";\n}\n```\n\n资料来源：[gui/src/pages/config/components/ModelRoleSelector.tsx:1-50]()\n\n### Model Display\n\nModels are sorted alphabetically and displayed with provider icons and status indicators:\n\n```typescript\n{[...models]\n  .sort((a, b) => a.title.localeCompare(b.title))\n  .map((option, idx) => (\n    <ListboxOption key={idx} value={option.title}>\n      <CubeIcon />\n      <span className=\"line-clamp-1 truncate\">\n        {option.title}\n        {isConfigInvalid && <span className=\"ml-2 text-[10px] italic\">\n          {invalidMessage}\n        </span>}\n      </span>\n    </ListboxOption>\n  ))}\n```\n\n资料来源：[gui/src/pages/config/components/ModelRoleSelector.tsx:60-80]()\n\n## Configuration Error Handling\n\n### Fatal Error Notice\n\nWhen configuration loading fails, a fatal error UI is displayed that disables chat functionality until resolved:\n\n```typescript\nconst FatalErrorNotice = ({ configLoading, refreshProfiles }) => {\n  return (\n    <Alert type=\"error\" className=\"mx-2 my-1 px-2\">\n      <span>Error loading</span>{\" \"}\n      <span className=\"italic\">{displayName}</span>\n      <span>. Chat is disabled until a model is available.</span>\n      <div className=\"mt-2 flex flex-row flex-wrap items-center gap-x-3 gap-y-1.5\">\n        <div onClick={() => ideMessenger.post(\"openUrl\", \"https://docs.continue.dev/troubleshooting\")}>\n          Help\n        </div>\n        <div onClick={() => refreshProfiles(\"Clicked reload in fatal indicator\")}>\n          Reload\n        </div>\n      </div>\n    </Alert>\n  );\n};\n```\n\n资料来源：[gui/src/components/config/FatalErrorNotice.tsx:1-45]()\n\n### Configuration Reload Flow\n\nThe configuration can be reloaded through the UI, which triggers a fresh load attempt:\n\n```mermaid\ngraph TD\n    A[User Clicks Reload] --> B[refreshProfiles Action]\n    B --> C[Config Loader]\n    C --> D{Load Success?}\n    D -->|Yes| E[Update Redux State]\n    D -->|No| F[Show Fatal Error]\n    E --> G[Enable Chat]\n    F --> H[Disable Chat]\n```\n\n资料来源：[gui/src/components/config/FatalErrorNotice.tsx:30-40]()\n\n## CLI Configuration System\n\n### System Message Generation\n\nThe CLI builds system messages that incorporate configuration settings for AI model interactions:\n\n```typescript\nfunction buildSystemMessage(config, options) {\n  let systemMessage = \"\";\n\n  // Commit signature configuration\n  if (!process.env.CONTINUE_CLI_DISABLE_COMMIT_SIGNATURE) {\n    systemMessage += `\\n<context name=\"commitSignature\">\nGenerated with [Continue](https://continue.dev)\nCo-Authored-By: Continue <noreply@continue.dev>\n</context>\\n`;\n  }\n\n  // Headless mode instructions\n  if (headless) {\n    systemMessage += `IMPORTANT: You are running in headless mode. \n    Provide ONLY your final answer.`;\n  }\n\n  // JSON format instructions\n  if (format === \"json\") {\n    systemMessage += `IMPORTANT: You are operating in JSON output mode. \n    Your final response MUST be valid JSON.`;\n  }\n\n  return systemMessage;\n}\n```\n\n资料来源：[extensions/cli/src/systemMessage.ts:1-50]()\n\n### Slash Command Configuration\n\nConfiguration can be accessed via slash commands in the CLI:\n\n```typescript\nconst slashCommands = {\n  config: () => {\n    return { openConfigSelector: true };\n  },\n  model: () => ({ openModelSelector: true }),\n  mcp: () => ({ openMcpSelector: true }),\n  // ... other commands\n};\n```\n\n资料来源：[extensions/cli/src/slashCommands.ts:15-25]()\n\n### Intro Message Display\n\nThe CLI displays current configuration status including model and config information:\n\n```typescript\nconst IntroMessage = ({ config, model, modelCapable }) => {\n  return (\n    <Box>\n      {config && (\n        <Text color=\"blue\">\n          <Text bold>Config:</Text> <Text color=\"white\">{config.name}</Text>\n        </Text>\n      )}\n      {model ? (\n        <Text color=\"blue\">\n          <Text bold>Model:</Text>{\" \"}\n          <Text color=\"white\">{model.name.split(\"/\").pop()}</Text>\n        </Text>\n      ) : (\n        <Text color=\"blue\">\n          <Text bold>Model:</Text> <Text color=\"dim\">Loading...</Text>\n        </Text>\n      )}\n    </Box>\n  );\n};\n```\n\n资料来源：[extensions/cli/src/ui/IntroMessage.tsx:1-40]()\n\n## Configuration Sections\n\n### Indexing Settings\n\nThe configuration system includes indexing settings (now deprecated):\n\n```typescript\nfunction IndexingSettingsSection() {\n  const config = useAppSelector((state) => state.config.config);\n  const disableIndexing = config.disableIndexing ?? false;\n\n  return (\n    <Alert type=\"warning\" className=\"mb-6\">\n      <div className=\"space-y-4\">\n        <div>\n          <div className=\"-mt-0.5 text-sm font-medium\">\n            Indexing has been deprecated\n          </div>\n        </div>\n      </div>\n    </Alert>\n  );\n}\n```\n\n资料来源：[gui/src/pages/config/sections/IndexingSettingsSection.tsx:20-40]()\n\n### Help Section\n\nThe configuration UI includes a help section with links to documentation and troubleshooting resources:\n\n```typescript\n<ConfigRow\n  title=\"Token usage\"\n  description=\"Daily token usage across models\"\n  icon={TableCellsIcon}\n  onClick={() => navigate(ROUTES.STATS)}\n/>\n```\n\n资料来源：[gui/src/pages/config/sections/HelpSection.tsx:1-40]()\n\n## Configuration Flow Diagram\n\n```mermaid\nsequenceDiagram\n    participant User\n    participant UI as UI Components\n    participant Redux as Redux Store\n    participant Loader as Config Loader\n    participant FS as File System\n    \n    User->>UI: Changes configuration\n    UI->>Redux: Dispatch updateSessionMetadata\n    Redux-->>UI: Update state\n    User->>UI: Trigger reload\n    UI->>Loader: loadConfig()\n    Loader->>FS: Read config.yaml\n    FS-->>Loader: Return config\n    Loader->>Loader: Validate config\n    Loader-->>Redux: Update config state\n    Redux-->>UI: Refresh UI\n```\n\n## Configuration Validation\n\n### Model Configuration Status\n\nThe system validates model configurations and reports various status conditions:\n\n| Status | Description | User Message |\n|--------|-------------|--------------|\n| `VALID` | Configuration is valid | None shown |\n| `MISSING_ENV_SECRET` | Environment secret not set | \"(Missing env secret)\" |\n| `MISSING_API_KEY` | API key not configured | \"(Missing API Key)\" |\n| Other | General invalid state | \"(Invalid config)\" |\n\n资料来源：[gui/src/pages/config/components/ModelRoleSelector.tsx:20-35]()\n\n## Related Documentation\n\n- [Continue Documentation](https://docs.continue.dev)\n- [Troubleshooting Guide](https://docs.continue.dev/troubleshooting)\n- [Configuration Reference](https://continue.dev/walkthrough)\n- [Changelog](https://changelog.continue.dev)\n\n---\n\n---\n\n## Doramagic 踩坑日志\n\n项目：continuedev/continue\n\n摘要：发现 38 个潜在踩坑项，其中 8 个为 high/blocking；最高优先级：安装坑 - 来源证据：\"Headers not defined\" -> This time with logs。\n\n## 1. 安装坑 · 来源证据：\"Headers not defined\" -> This time with logs\n\n- 严重度：high\n- 证据强度：source_linked\n- 发现：GitHub 社区证据显示该项目存在一个安装相关的待验证问题：\"Headers not defined\" -> This time with logs\n- 对用户的影响：可能增加新用户试用和生产接入成本。\n- 建议检查：来源问题仍为 open，Pack Agent 需要复核是否仍影响当前版本。\n- 防护动作：不得脱离来源链接放大为确定性结论；需要标注适用版本和复核状态。\n- 证据：community_evidence:github | cevd_0c0fcf2034914a62a81e3374d2d7d0a5 | https://github.com/continuedev/continue/issues/12163 | 来源讨论提到 linux 相关条件，需在安装/试用前复核。\n\n## 2. 配置坑 · 来源证据：(sse) mcp restarts breaks communication\n\n- 严重度：high\n- 证据强度：source_linked\n- 发现：GitHub 社区证据显示该项目存在一个配置相关的待验证问题：(sse) mcp restarts breaks communication\n- 对用户的影响：可能增加新用户试用和生产接入成本。\n- 建议检查：来源问题仍为 open，Pack Agent 需要复核是否仍影响当前版本。\n- 防护动作：不得脱离来源链接放大为确定性结论；需要标注适用版本和复核状态。\n- 证据：community_evidence:github | cevd_5cb9bc1f10144ec7948f8784dc25bf12 | https://github.com/continuedev/continue/issues/12431 | 来源类型 github_issue 暴露的待验证使用条件。\n\n## 3. 配置坑 · 来源证据：Continue fails to stablish mTLS connection with server\n\n- 严重度：high\n- 证据强度：source_linked\n- 发现：GitHub 社区证据显示该项目存在一个配置相关的待验证问题：Continue fails to stablish mTLS connection with server\n- 对用户的影响：可能增加新用户试用和生产接入成本。\n- 建议检查：来源问题仍为 open，Pack Agent 需要复核是否仍影响当前版本。\n- 防护动作：不得脱离来源链接放大为确定性结论；需要标注适用版本和复核状态。\n- 证据：community_evidence:github | cevd_01756ce44b144ad4a34ea4c5e99e339b | https://github.com/continuedev/continue/issues/8470 | 来源讨论提到 windows 相关条件，需在安装/试用前复核。\n\n## 4. 配置坑 · 来源证据：Session Workspace always assumes first workspace folder\n\n- 严重度：high\n- 证据强度：source_linked\n- 发现：GitHub 社区证据显示该项目存在一个配置相关的待验证问题：Session Workspace always assumes first workspace folder\n- 对用户的影响：可能增加新用户试用和生产接入成本。\n- 建议检查：来源问题仍为 open，Pack Agent 需要复核是否仍影响当前版本。\n- 防护动作：不得脱离来源链接放大为确定性结论；需要标注适用版本和复核状态。\n- 证据：community_evidence:github | cevd_1e621c9277a64cb581639efad6bd6b73 | https://github.com/continuedev/continue/issues/4539 | 来源类型 github_issue 暴露的待验证使用条件。\n\n## 5. 安全/权限坑 · 失败模式：security_permissions: PR checks do not create fresh agent sessions on PR updates; stale task IDs re-post to new com...\n\n- 严重度：high\n- 证据强度：source_linked\n- 发现：Developers should check this security_permissions risk before relying on the project: PR checks do not create fresh agent sessions on PR updates; stale task IDs re-post to new commits\n- 对用户的影响：Developers may expose sensitive permissions or credentials: PR checks do not create fresh agent sessions on PR updates; stale task IDs re-post to new commits\n- 建议检查：Before packaging this project, run the relevant install/config/quickstart check for: PR checks do not create fresh agent sessions on PR updates; stale task IDs re-post to new commits. Context: Observed when using macos\n- 防护动作：Do not recommend enabling privileged or credential-bearing paths until the source-backed risk is reviewed: https://github.com/continuedev/continue/issues/12382\n- 证据：failure_mode_cluster:github_issue | fmev_07a692e49161cfab20c466f1f0b957d1 | https://github.com/continuedev/continue/issues/12382 | PR checks do not create fresh agent sessions on PR updates; stale task IDs re-post to new commits\n\n## 6. 安全/权限坑 · 来源证据：Autocomplete for code is not working\n\n- 严重度：high\n- 证据强度：source_linked\n- 发现：GitHub 社区证据显示该项目存在一个安全/权限相关的待验证问题：Autocomplete for code is not working\n- 对用户的影响：可能影响授权、密钥配置或安全边界。\n- 建议检查：来源问题仍为 open，Pack Agent 需要复核是否仍影响当前版本。\n- 防护动作：不得脱离来源链接放大为确定性结论；需要标注适用版本和复核状态。\n- 证据：community_evidence:github | cevd_e1f8ba56c9b140e8a61444ad20181cd9 | https://github.com/continuedev/continue/issues/12298 | 来源讨论提到 windows 相关条件，需在安装/试用前复核。\n\n## 7. 安全/权限坑 · 来源证据：Make the user settings declarative\n\n- 严重度：high\n- 证据强度：source_linked\n- 发现：GitHub 社区证据显示该项目存在一个安全/权限相关的待验证问题：Make the user settings declarative\n- 对用户的影响：可能影响升级、迁移或版本选择。\n- 建议检查：来源问题仍为 open，Pack Agent 需要复核是否仍影响当前版本。\n- 防护动作：不得脱离来源链接放大为确定性结论；需要标注适用版本和复核状态。\n- 证据：community_evidence:github | cevd_a5ebcd3bc7be4e949b45351fd5b06873 | https://github.com/continuedev/continue/issues/5438 | 来源讨论提到 api key 相关条件，需在安装/试用前复核。\n\n## 8. 安全/权限坑 · 来源证据：Responses from LLM's running from LocalAI are not detected\n\n- 严重度：high\n- 证据强度：source_linked\n- 发现：GitHub 社区证据显示该项目存在一个安全/权限相关的待验证问题：Responses from LLM's running from LocalAI are not detected\n- 对用户的影响：可能影响授权、密钥配置或安全边界。\n- 建议检查：来源问题仍为 open，Pack Agent 需要复核是否仍影响当前版本。\n- 防护动作：不得脱离来源链接放大为确定性结论；需要标注适用版本和复核状态。\n- 证据：community_evidence:github | cevd_8aabc2e01f8646e2a22d44dbcad4ad99 | https://github.com/continuedev/continue/issues/10113 | 来源讨论提到 python 相关条件，需在安装/试用前复核。\n\n## 9. 安装坑 · 失败模式：installation: Support Context7\n\n- 严重度：medium\n- 证据强度：source_linked\n- 发现：Developers should check this installation risk before relying on the project: Support Context7\n- 对用户的影响：Developers may fail before the first successful local run: Support Context7\n- 建议检查：Before packaging this project, run the relevant install/config/quickstart check for: Support Context7. Context: Observed during installation or first-run setup.\n- 防护动作：State this as source-backed community evidence, not as Doramagic reproduction.\n- 证据：failure_mode_cluster:github_issue | fmev_dd0ac59c1a237815f09072ae6ef6bbbd | https://github.com/continuedev/continue/issues/5836 | Support Context7\n\n## 10. 安装坑 · 失败模式：installation: Terminal commands fail when `$SHELL` is set to `tcsh` due to hardcoded `-l` shell flag\n\n- 严重度：medium\n- 证据强度：source_linked\n- 发现：Developers should check this installation risk before relying on the project: Terminal commands fail when `$SHELL` is set to `tcsh` due to hardcoded `-l` shell flag\n- 对用户的影响：Developers may fail before the first successful local run: Terminal commands fail when `$SHELL` is set to `tcsh` due to hardcoded `-l` shell flag\n- 建议检查：Before packaging this project, run the relevant install/config/quickstart check for: Terminal commands fail when `$SHELL` is set to `tcsh` due to hardcoded `-l` shell flag. Context: Observed when using linux\n- 防护动作：State this as source-backed community evidence, not as Doramagic reproduction.\n- 证据：failure_mode_cluster:github_issue | fmev_682551ed88a7b527a9f1207eecd2a1c6 | https://github.com/continuedev/continue/issues/12378 | Terminal commands fail when `$SHELL` is set to `tcsh` due to hardcoded `-l` shell flag\n\n## 11. 安装坑 · 失败模式：installation: The extension doesn't show up at all.\n\n- 严重度：medium\n- 证据强度：source_linked\n- 发现：Developers should check this installation risk before relying on the project: The extension doesn't show up at all.\n- 对用户的影响：Developers may fail before the first successful local run: The extension doesn't show up at all.\n- 建议检查：Before packaging this project, run the relevant install/config/quickstart check for: The extension doesn't show up at all.. Context: Observed when using windows\n- 防护动作：State this as source-backed community evidence, not as Doramagic reproduction.\n- 证据：failure_mode_cluster:github_issue | fmev_1a64ddb9e5d24401d02abdc046398202 | https://github.com/continuedev/continue/issues/1312 | The extension doesn't show up at all.\n\n## 12. 安装坑 · 来源证据：Support Context7\n\n- 严重度：medium\n- 证据强度：source_linked\n- 发现：GitHub 社区证据显示该项目存在一个安装相关的待验证问题：Support Context7\n- 对用户的影响：可能增加新用户试用和生产接入成本。\n- 建议检查：来源显示可能已有修复、规避或版本变化，说明书中必须标注适用版本。\n- 防护动作：不得脱离来源链接放大为确定性结论；需要标注适用版本和复核状态。\n- 证据：community_evidence:github | cevd_fa7735b8be6f4ac9840501ac84eb7e9a | https://github.com/continuedev/continue/issues/5836 | 来源类型 github_issue 暴露的待验证使用条件。\n\n## 13. 安装坑 · 来源证据：Terminal commands fail when `$SHELL` is set to `tcsh` due to hardcoded `-l` shell flag\n\n- 严重度：medium\n- 证据强度：source_linked\n- 发现：GitHub 社区证据显示该项目存在一个安装相关的待验证问题：Terminal commands fail when `$SHELL` is set to `tcsh` due to hardcoded `-l` shell flag\n- 对用户的影响：可能增加新用户试用和生产接入成本。\n- 建议检查：来源问题仍为 open，Pack Agent 需要复核是否仍影响当前版本。\n- 防护动作：不得脱离来源链接放大为确定性结论；需要标注适用版本和复核状态。\n- 证据：community_evidence:github | cevd_823b2e0ae1ad49a78bd0a45d39a3099a | https://github.com/continuedev/continue/issues/12378 | 来源讨论提到 linux 相关条件，需在安装/试用前复核。\n\n## 14. 安装坑 · 来源证据：The extension doesn't show up at all.\n\n- 严重度：medium\n- 证据强度：source_linked\n- 发现：GitHub 社区证据显示该项目存在一个安装相关的待验证问题：The extension doesn't show up at all.\n- 对用户的影响：可能增加新用户试用和生产接入成本。\n- 建议检查：来源显示可能已有修复、规避或版本变化，说明书中必须标注适用版本。\n- 防护动作：不得脱离来源链接放大为确定性结论；需要标注适用版本和复核状态。\n- 证据：community_evidence:github | cevd_5d86070fe9d941ad9a44f1d09464b582 | https://github.com/continuedev/continue/issues/1312 | 来源讨论提到 windows 相关条件，需在安装/试用前复核。\n\n## 15. 配置坑 · 失败模式：configuration: \"Headers not defined\" -> This time with logs\n\n- 严重度：medium\n- 证据强度：source_linked\n- 发现：Developers should check this configuration risk before relying on the project: \"Headers not defined\" -> This time with logs\n- 对用户的影响：Developers may misconfigure credentials, environment, or host setup: \"Headers not defined\" -> This time with logs\n- 建议检查：Before packaging this project, run the relevant install/config/quickstart check for: \"Headers not defined\" -> This time with logs. Context: Observed when using linux\n- 防护动作：State this as source-backed community evidence, not as Doramagic reproduction.\n- 证据：failure_mode_cluster:github_issue | fmev_b136994a3d92fcde3550fdd83c67a11a | https://github.com/continuedev/continue/issues/12163 | \"Headers not defined\" -> This time with logs\n\n## 16. 配置坑 · 失败模式：configuration: 400 Error\n\n- 严重度：medium\n- 证据强度：source_linked\n- 发现：Developers should check this configuration risk before relying on the project: 400 Error\n- 对用户的影响：Developers may misconfigure credentials, environment, or host setup: 400 Error\n- 建议检查：Before packaging this project, run the relevant install/config/quickstart check for: 400 Error. Context: Observed when using python, windows\n- 防护动作：State this as source-backed community evidence, not as Doramagic reproduction.\n- 证据：failure_mode_cluster:github_issue | fmev_17872a6a18ab3c162f5282a7fd2f789c | https://github.com/continuedev/continue/issues/5079 | 400 Error\n\n## 17. 配置坑 · 失败模式：configuration: Autocomplete for code is not working\n\n- 严重度：medium\n- 证据强度：source_linked\n- 发现：Developers should check this configuration risk before relying on the project: Autocomplete for code is not working\n- 对用户的影响：Developers may misconfigure credentials, environment, or host setup: Autocomplete for code is not working\n- 建议检查：Before packaging this project, run the relevant install/config/quickstart check for: Autocomplete for code is not working. Context: Observed when using windows, linux\n- 防护动作：State this as source-backed community evidence, not as Doramagic reproduction.\n- 证据：failure_mode_cluster:github_issue | fmev_fef11e43c412193f501c74f86fb0aad1 | https://github.com/continuedev/continue/issues/12298 | Autocomplete for code is not working\n\n## 18. 配置坑 · 失败模式：configuration: Config error with ollama cloud\n\n- 严重度：medium\n- 证据强度：source_linked\n- 发现：Developers should check this configuration risk before relying on the project: Config error with ollama cloud\n- 对用户的影响：Developers may misconfigure credentials, environment, or host setup: Config error with ollama cloud\n- 建议检查：Before packaging this project, run the relevant install/config/quickstart check for: Config error with ollama cloud. Context: Observed when using macos\n- 防护动作：State this as source-backed community evidence, not as Doramagic reproduction.\n- 证据：failure_mode_cluster:github_issue | fmev_f69ce9c50b7a535cc6c3d0dfe8741e08 | https://github.com/continuedev/continue/issues/12370 | Config error with ollama cloud\n\n## 19. 配置坑 · 失败模式：configuration: Continue fails to stablish mTLS connection with server\n\n- 严重度：medium\n- 证据强度：source_linked\n- 发现：Developers should check this configuration risk before relying on the project: Continue fails to stablish mTLS connection with server\n- 对用户的影响：Developers may misconfigure credentials, environment, or host setup: Continue fails to stablish mTLS connection with server\n- 建议检查：Before packaging this project, run the relevant install/config/quickstart check for: Continue fails to stablish mTLS connection with server. Context: Observed when using windows, linux\n- 防护动作：State this as source-backed community evidence, not as Doramagic reproduction.\n- 证据：failure_mode_cluster:github_issue | fmev_e6794a57836185b70c8cb8cf953cce5d | https://github.com/continuedev/continue/issues/8470 | Continue fails to stablish mTLS connection with server\n\n## 20. 配置坑 · 失败模式：configuration: Docs: Document .continue/configs directory support\n\n- 严重度：medium\n- 证据强度：source_linked\n- 发现：Developers should check this configuration risk before relying on the project: Docs: Document .continue/configs directory support\n- 对用户的影响：Developers may misconfigure credentials, environment, or host setup: Docs: Document .continue/configs directory support\n- 建议检查：Before packaging this project, run the relevant install/config/quickstart check for: Docs: Document .continue/configs directory support. Context: Source discussion did not expose a precise runtime context.\n- 防护动作：State this as source-backed community evidence, not as Doramagic reproduction.\n- 证据：failure_mode_cluster:github_issue | fmev_8c3e2cabb835c3b4e9fc6876e70792a6 | https://github.com/continuedev/continue/issues/12377 | Docs: Document .continue/configs directory support\n\n## 21. 配置坑 · 失败模式：configuration: Docs: Document dynamic model fetching feature\n\n- 严重度：medium\n- 证据强度：source_linked\n- 发现：Developers should check this configuration risk before relying on the project: Docs: Document dynamic model fetching feature\n- 对用户的影响：Developers may misconfigure credentials, environment, or host setup: Docs: Document dynamic model fetching feature\n- 建议检查：Before packaging this project, run the relevant install/config/quickstart check for: Docs: Document dynamic model fetching feature. Context: Source discussion did not expose a precise runtime context.\n- 防护动作：State this as source-backed community evidence, not as Doramagic reproduction.\n- 证据：failure_mode_cluster:github_issue | fmev_b5dbe8c0463df066db3ca81b090d9c01 | https://github.com/continuedev/continue/issues/12376 | Docs: Document dynamic model fetching feature\n\n## 22. 配置坑 · 失败模式：configuration: Docs: Update Inception provider documentation for Mercury-2 model\n\n- 严重度：medium\n- 证据强度：source_linked\n- 发现：Developers should check this configuration risk before relying on the project: Docs: Update Inception provider documentation for Mercury-2 model\n- 对用户的影响：Developers may misconfigure credentials, environment, or host setup: Docs: Update Inception provider documentation for Mercury-2 model\n- 建议检查：Before packaging this project, run the relevant install/config/quickstart check for: Docs: Update Inception provider documentation for Mercury-2 model. Context: Source discussion did not expose a precise runtime context.\n- 防护动作：State this as source-backed community evidence, not as Doramagic reproduction.\n- 证据：failure_mode_cluster:github_issue | fmev_4db8e14e6818419363054a9e7800eda2 | https://github.com/continuedev/continue/issues/12375 | Docs: Update Inception provider documentation for Mercury-2 model\n\n## 23. 配置坑 · 失败模式：configuration: Login failed with \"Not authenticated (user missing)\" after account setup\n\n- 严重度：medium\n- 证据强度：source_linked\n- 发现：Developers should check this configuration risk before relying on the project: Login failed with \"Not authenticated (user missing)\" after account setup\n- 对用户的影响：Developers may misconfigure credentials, environment, or host setup: Login failed with \"Not authenticated (user missing)\" after account setup\n- 建议检查：Before packaging this project, run the relevant install/config/quickstart check for: Login failed with \"Not authenticated (user missing)\" after account setup. Context: Observed when using windows\n- 防护动作：State this as source-backed community evidence, not as Doramagic reproduction.\n- 证据：failure_mode_cluster:github_issue | fmev_9ec05668c8e8d77892783222181856ee | https://github.com/continuedev/continue/issues/12424 | Login failed with \"Not authenticated (user missing)\" after account setup\n\n## 24. 配置坑 · 失败模式：configuration: Make the user settings declarative\n\n- 严重度：medium\n- 证据强度：source_linked\n- 发现：Developers should check this configuration risk before relying on the project: Make the user settings declarative\n- 对用户的影响：Developers may misconfigure credentials, environment, or host setup: Make the user settings declarative\n- 建议检查：Before packaging this project, run the relevant install/config/quickstart check for: Make the user settings declarative. Context: Observed when using docker\n- 防护动作：State this as source-backed community evidence, not as Doramagic reproduction.\n- 证据：failure_mode_cluster:github_issue | fmev_1b32aeb88d229dcc498a21a15392073b | https://github.com/continuedev/continue/issues/5438 | Make the user settings declarative\n\n## 25. 配置坑 · 失败模式：configuration: Responses from LLM's running from LocalAI are not detected\n\n- 严重度：medium\n- 证据强度：source_linked\n- 发现：Developers should check this configuration risk before relying on the project: Responses from LLM's running from LocalAI are not detected\n- 对用户的影响：Developers may misconfigure credentials, environment, or host setup: Responses from LLM's running from LocalAI are not detected\n- 建议检查：Before packaging this project, run the relevant install/config/quickstart check for: Responses from LLM's running from LocalAI are not detected. Context: Observed when using python, windows, linux\n- 防护动作：State this as source-backed community evidence, not as Doramagic reproduction.\n- 证据：failure_mode_cluster:github_issue | fmev_a997891d991d463b08f586863fa4f190 | https://github.com/continuedev/continue/issues/10113 | Responses from LLM's running from LocalAI are not detected\n\n## 26. 配置坑 · 失败模式：configuration: v1.2.22-vscode\n\n- 严重度：medium\n- 证据强度：source_linked\n- 发现：Developers should check this configuration risk before relying on the project: v1.2.22-vscode\n- 对用户的影响：Upgrade or migration may change expected behavior: v1.2.22-vscode\n- 建议检查：Before packaging this project, run the relevant install/config/quickstart check for: v1.2.22-vscode. Context: Source discussion did not expose a precise runtime context.\n- 防护动作：State this as source-backed community evidence, not as Doramagic reproduction.\n- 证据：failure_mode_cluster:github_release | fmev_16f5a708793a12c3918b445e3b11b41d | https://github.com/continuedev/continue/releases/tag/v1.2.22-vscode | v1.2.22-vscode\n\n## 27. 能力坑 · 能力判断依赖假设\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:644686905 | https://github.com/continuedev/continue | README/documentation is current enough for a first validation pass.\n\n## 28. 维护坑 · 来源证据：Unresponsive - continue.focusCOntntinueinput already registered by continre Profile 1079\n\n- 严重度：medium\n- 证据强度：source_linked\n- 发现：GitHub 社区证据显示该项目存在一个维护/版本相关的待验证问题：Unresponsive - continue.focusCOntntinueinput already registered by continre Profile 1079\n- 对用户的影响：可能阻塞安装或首次运行。\n- 建议检查：来源显示可能已有修复、规避或版本变化，说明书中必须标注适用版本。\n- 防护动作：不得脱离来源链接放大为确定性结论；需要标注适用版本和复核状态。\n- 证据：community_evidence:github | cevd_7a29505886e9431898131d920bb87efa | https://github.com/continuedev/continue/issues/7801 | 来源讨论提到 python 相关条件，需在安装/试用前复核。\n\n## 29. 维护坑 · 维护活跃度未知\n\n- 严重度：medium\n- 证据强度：source_linked\n- 发现：未记录 last_activity_observed。\n- 对用户的影响：新项目、停更项目和活跃项目会被混在一起，推荐信任度下降。\n- 建议检查：补 GitHub 最近 commit、release、issue/PR 响应信号。\n- 防护动作：维护活跃度未知时，推荐强度不能标为高信任。\n- 证据：evidence.maintainer_signals | github_repo:644686905 | https://github.com/continuedev/continue | last_activity_observed missing\n\n## 30. 安全/权限坑 · 下游验证发现风险项\n\n- 严重度：medium\n- 证据强度：source_linked\n- 发现：no_demo\n- 对用户的影响：下游已经要求复核，不能在页面中弱化。\n- 建议检查：进入安全/权限治理复核队列。\n- 防护动作：下游风险存在时必须保持 review/recommendation 降级。\n- 证据：downstream_validation.risk_items | github_repo:644686905 | https://github.com/continuedev/continue | no_demo; severity=medium\n\n## 31. 安全/权限坑 · 存在评分风险\n\n- 严重度：medium\n- 证据强度：source_linked\n- 发现：no_demo\n- 对用户的影响：风险会影响是否适合普通用户安装。\n- 建议检查：把风险写入边界卡，并确认是否需要人工复核。\n- 防护动作：评分风险必须进入边界卡，不能只作为内部分数。\n- 证据：risks.scoring_risks | github_repo:644686905 | https://github.com/continuedev/continue | no_demo; severity=medium\n\n## 32. 安全/权限坑 · 来源证据：400 Error\n\n- 严重度：medium\n- 证据强度：source_linked\n- 发现：GitHub 社区证据显示该项目存在一个安全/权限相关的待验证问题：400 Error\n- 对用户的影响：可能影响授权、密钥配置或安全边界。\n- 建议检查：来源显示可能已有修复、规避或版本变化，说明书中必须标注适用版本。\n- 防护动作：不得脱离来源链接放大为确定性结论；需要标注适用版本和复核状态。\n- 证据：community_evidence:github | cevd_6519f0021d474af78d0178c14d9b7fc2 | https://github.com/continuedev/continue/issues/5079 | 来源讨论提到 python 相关条件，需在安装/试用前复核。\n\n## 33. 安全/权限坑 · 来源证据：Docs: Document .continue/configs directory support\n\n- 严重度：medium\n- 证据强度：source_linked\n- 发现：GitHub 社区证据显示该项目存在一个安全/权限相关的待验证问题：Docs: Document .continue/configs directory support\n- 对用户的影响：可能影响授权、密钥配置或安全边界。\n- 建议检查：来源问题仍为 open，Pack Agent 需要复核是否仍影响当前版本。\n- 防护动作：不得脱离来源链接放大为确定性结论；需要标注适用版本和复核状态。\n- 证据：community_evidence:github | cevd_4891275e3958456796a83007de577da8 | https://github.com/continuedev/continue/issues/12377 | 来源类型 github_issue 暴露的待验证使用条件。\n\n## 34. 安全/权限坑 · 来源证据：Login failed with \"Not authenticated (user missing)\" after account setup\n\n- 严重度：medium\n- 证据强度：source_linked\n- 发现：GitHub 社区证据显示该项目存在一个安全/权限相关的待验证问题：Login failed with \"Not authenticated (user missing)\" after account setup\n- 对用户的影响：可能影响授权、密钥配置或安全边界。\n- 建议检查：来源问题仍为 open，Pack Agent 需要复核是否仍影响当前版本。\n- 防护动作：不得脱离来源链接放大为确定性结论；需要标注适用版本和复核状态。\n- 证据：community_evidence:github | cevd_0e03b5d122e341b3b58881a925595069 | https://github.com/continuedev/continue/issues/12424 | 来源讨论提到 windows 相关条件，需在安装/试用前复核。\n\n## 35. 安全/权限坑 · 来源证据：PR checks do not create fresh agent sessions on PR updates; stale task IDs re-post to new commits\n\n- 严重度：medium\n- 证据强度：source_linked\n- 发现：GitHub 社区证据显示该项目存在一个安全/权限相关的待验证问题：PR checks do not create fresh agent sessions on PR updates; stale task IDs re-post to new commits\n- 对用户的影响：可能影响授权、密钥配置或安全边界。\n- 建议检查：来源问题仍为 open，Pack Agent 需要复核是否仍影响当前版本。\n- 防护动作：不得脱离来源链接放大为确定性结论；需要标注适用版本和复核状态。\n- 证据：community_evidence:github | cevd_e2338a7a76914ae09ac534a5c23a951b | https://github.com/continuedev/continue/issues/12382 | 来源类型 github_issue 暴露的待验证使用条件。\n\n## 36. 安全/权限坑 · 来源证据：Size limit for Read_File\n\n- 严重度：medium\n- 证据强度：source_linked\n- 发现：GitHub 社区证据显示该项目存在一个安全/权限相关的待验证问题：Size limit for Read_File\n- 对用户的影响：可能影响授权、密钥配置或安全边界。\n- 建议检查：来源问题仍为 open，Pack Agent 需要复核是否仍影响当前版本。\n- 防护动作：不得脱离来源链接放大为确定性结论；需要标注适用版本和复核状态。\n- 证据：community_evidence:github | cevd_cc5d435c7f6c461a8cfe304805fae5a2 | https://github.com/continuedev/continue/issues/12432 | 来源讨论提到 python 相关条件，需在安装/试用前复核。\n\n## 37. 维护坑 · 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:644686905 | https://github.com/continuedev/continue | issue_or_pr_quality=unknown\n\n## 38. 维护坑 · 发布节奏不明确\n\n- 严重度：low\n- 证据强度：source_linked\n- 发现：release_recency=unknown。\n- 对用户的影响：安装命令和文档可能落后于代码，用户踩坑概率升高。\n- 建议检查：确认最近 release/tag 和 README 安装命令是否一致。\n- 防护动作：发布节奏未知或过期时，安装说明必须标注可能漂移。\n- 证据：evidence.maintainer_signals | github_repo:644686905 | https://github.com/continuedev/continue | release_recency=unknown\n\n<!-- canonical_name: continuedev/continue; human_manual_source: deepwiki_human_wiki -->\n",
      "markdown_key": "continue",
      "pages": "draft",
      "source_refs": [
        {
          "evidence_id": "github_repo:644686905",
          "kind": "repo",
          "supports_claim_ids": [
            "claim_identity",
            "claim_distribution",
            "claim_capability"
          ],
          "url": "https://github.com/continuedev/continue"
        },
        {
          "evidence_id": "art_07409a2fd74147eaa230bb9282ed0ed9",
          "kind": "docs",
          "supports_claim_ids": [
            "claim_identity",
            "claim_distribution",
            "claim_capability"
          ],
          "url": "https://github.com/continuedev/continue#readme"
        }
      ],
      "summary": "DeepWiki/Human Wiki 完整输出，末尾追加 Discovery Agent 踩坑日志。",
      "title": "continue 说明书",
      "toc": [
        "https://github.com/continuedev/continue 项目说明书",
        "目录",
        "Architecture Overview",
        "System Architecture",
        "Directory Structure",
        "Core Components",
        "Configuration System",
        "Statistics and Usage Tracking",
        "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": "cb273098d968906d25ee737b454f0b5f13ea2482",
    "repo_inspection_error": null,
    "repo_inspection_files": [
      "package.json",
      "README.md",
      "docs/package-lock.json",
      "docs/troubleshooting.mdx",
      "docs/reo-tracking.js",
      "docs/faqs.mdx",
      "docs/CONTRIBUTING.mdx",
      "docs/c15t-cookie-banner.js",
      "docs/index.mdx",
      "docs/home.mdx",
      "docs/package.json",
      "docs/README.md",
      "docs/reference.mdx",
      "docs/docs.json",
      "docs/overview.mdx",
      "docs/cli/configuration.mdx",
      "docs/cli/tool-permissions.mdx",
      "docs/cli/headless-mode.mdx",
      "docs/cli/tui-mode.mdx",
      "docs/cli/quickstart.mdx",
      "docs/mission-control/beyond-checks.mdx",
      "docs/mission-control/index.mdx",
      "docs/mission-control/tasks.mdx",
      "docs/mission-control/sharing.mdx",
      "docs/mission-control/metrics.mdx",
      "docs/mission-control/workflows.mdx",
      "docs/reference/continue-mcp.mdx",
      "docs/reference/deprecated-context-providers.mdx",
      "docs/reference/yaml-migration.mdx",
      "docs/reference/deprecated-codebase.mdx",
      "docs/reference/deprecated-docs.mdx",
      "docs/reference/json-reference.mdx",
      "docs/autocomplete/how-to-use-it.mdx",
      "docs/guides/atlassian-mcp-continue-cookbook.mdx",
      "docs/guides/klavis-mcp-continue-cookbook.mdx",
      "docs/guides/github-pr-review-bot.mdx",
      "docs/guides/github-mcp-continue-cookbook.mdx",
      "docs/guides/running-continue-without-internet.mdx",
      "docs/guides/understanding-configs.mdx",
      "docs/guides/plan-mode-guide.mdx"
    ],
    "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": "# continue - Doramagic AI Context Pack\n\n> 定位：安装前体验与判断资产。它帮助宿主 AI 有一个好的开始，但不代表已经安装、执行或验证目标项目。\n\n## 充分原则\n\n- **充分原则，不是压缩原则**：AI Context Pack 应该充分到让宿主 AI 在开工前理解项目价值、能力边界、使用入口、风险和证据来源；它可以分层组织，但不以最短摘要为目标。\n- **压缩策略**：只压缩噪声和重复内容，不压缩会影响判断和开工质量的上下文。\n\n## 给宿主 AI 的使用方式\n\n你正在读取 Doramagic 为 continue 编译的 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- **希望把专业流程带进宿主 AI 的用户**：仓库包含 Skill 文档。 证据：`.claude/skills/docs-style/SKILL.md`, `skills/cn-check/SKILL.md` Claim：`clm_0003` supported 0.86\n\n## 它能做什么\n\n- **AI Skill / Agent 指令资产库**（可做安装前预览）：项目包含可被宿主 AI 读取的 Skill 或 Agent 指令文件，可用于把专业流程带入 Claude、Codex、Cursor 等宿主。 证据：`.claude/skills/docs-style/SKILL.md`, `skills/cn-check/SKILL.md` Claim：`clm_0001` supported 0.86\n- **命令行启动或安装流程**（需要安装后验证）：项目文档中存在可执行命令，真实使用需要在本地或宿主环境中运行这些命令。 证据：`README.md`, `packages/continue-sdk/python/api/README.md`, `packages/continue-sdk/typescript/README.md`, `packages/continue-sdk/typescript/api/README.md` Claim：`clm_0002` supported 0.86\n\n## 怎么开始\n\n- `curl -fsSL https://raw.githubusercontent.com/continuedev/continue/main/extensions/cli/scripts/install.sh | bash` 证据：`README.md` Claim：`clm_0004` supported 0.86\n- `npm i -g @continuedev/cli` 证据：`README.md` Claim：`clm_0005` supported 0.86\n- `pip install git+https://github.com/GIT_USER_ID/GIT_REPO_ID.git` 证据：`packages/continue-sdk/python/api/README.md` Claim：`clm_0006` supported 0.86\n- `npm install @continuedev/hub-api@0.0.1 --save` 证据：`packages/continue-sdk/typescript/api/README.md` Claim：`clm_0007` supported 0.86\n- `npm install PATH_TO_GENERATED_PACKAGE --save` 证据：`packages/continue-sdk/typescript/api/README.md` Claim：`clm_0008` supported 0.86\n- `npm install @continuedev/sdk` 证据：`packages/continue-sdk/typescript/README.md` Claim：`clm_0009` supported 0.86\n\n## 继续前判断卡\n\n- **当前建议**：需要管理员/安全审批\n- **为什么**：继续前可能涉及密钥、账号、外部服务或敏感上下文，建议先经过管理员或安全审批。\n\n### 30 秒判断\n\n- **现在怎么做**：需要管理员/安全审批\n- **最小安全下一步**：先跑 Prompt Preview；若涉及凭证或企业环境，先审批再试装\n- **先别相信**：真实输出质量不能在安装前相信。\n- **继续会触碰**：命令执行、宿主 AI 配置、本地环境或项目文件\n\n### 现在可以相信\n\n- **适合人群线索：希望把专业流程带进宿主 AI 的用户**（supported）：有 supported claim 或项目证据支撑，但仍不等于真实安装效果。 证据：`.claude/skills/docs-style/SKILL.md`, `skills/cn-check/SKILL.md` Claim：`clm_0003` supported 0.86\n- **能力存在：AI Skill / Agent 指令资产库**（supported）：可以相信项目包含这类能力线索；是否适合你的具体任务仍要试用或安装后验证。 证据：`.claude/skills/docs-style/SKILL.md`, `skills/cn-check/SKILL.md` Claim：`clm_0001` supported 0.86\n- **能力存在：命令行启动或安装流程**（supported）：可以相信项目包含这类能力线索；是否适合你的具体任务仍要试用或安装后验证。 证据：`README.md`, `packages/continue-sdk/python/api/README.md`, `packages/continue-sdk/typescript/README.md`, `packages/continue-sdk/typescript/api/README.md` Claim：`clm_0002` supported 0.86\n- **存在 Quick Start / 安装命令线索**（supported）：可以相信项目文档出现过启动或安装入口；不要因此直接在主力环境运行。 证据：`README.md` Claim：`clm_0004` supported 0.86\n\n### 现在还不能相信\n\n- **真实输出质量不能在安装前相信。**（unverified）：Prompt Preview 只能展示引导方式，不能证明真实项目中的结果质量。\n- **宿主 AI 版本兼容性不能在安装前相信。**（unverified）：Claude、Cursor、Codex、Gemini 等宿主加载规则和版本差异必须在真实环境验证。\n- **不会污染现有宿主 AI 行为，不能直接相信。**（inferred）：Skill、plugin、AGENTS/CLAUDE/GEMINI 指令可能改变宿主 AI 的默认行为。 证据：`.claude/skills/docs-style/SKILL.md`, `skills/cn-check/SKILL.md`\n- **可安全回滚不能默认相信。**（unverified）：除非项目明确提供卸载和恢复说明，否则必须先在隔离环境验证。\n- **真实安装后是否与用户当前宿主 AI 版本兼容？**（unverified）：兼容性只能通过实际宿主环境验证。\n- **项目输出质量是否满足用户具体任务？**（unverified）：安装前预览只能展示流程和边界，不能替代真实评测。\n- **安装命令是否需要网络、权限或全局写入？**（unverified）：这影响企业环境和个人环境的安装风险。 证据：`README.md`\n\n### 继续会触碰什么\n\n- **命令执行**：包管理器、网络下载、本地插件目录、项目配置或用户主目录。 原因：运行第一条命令就可能产生环境改动；必须先判断是否值得跑。 证据：`README.md`, `packages/continue-sdk/python/api/README.md`, `packages/continue-sdk/typescript/README.md`, `packages/continue-sdk/typescript/api/README.md`\n- **宿主 AI 配置**：Claude/Codex/Cursor/Gemini/OpenCode 等宿主的 plugin、Skill 或规则加载配置。 原因：宿主配置会改变 AI 后续工作方式，可能和用户已有规则冲突。 证据：`.claude/skills/docs-style/SKILL.md`, `skills/cn-check/SKILL.md`\n- **本地环境或项目文件**：安装结果、插件缓存、项目配置或本地依赖目录。 原因：安装前无法证明写入范围和回滚方式，需要隔离验证。 证据：`README.md`, `packages/continue-sdk/python/api/README.md`, `packages/continue-sdk/typescript/README.md`, `packages/continue-sdk/typescript/api/README.md`\n- **环境变量 / API Key**：项目入口文档明确出现 API key、token、secret 或账号凭证配置。 原因：如果真实安装需要凭证，应先使用测试凭证并经过权限/合规判断。 证据：`packages/continue-sdk/python/api/README.md`, `packages/continue-sdk/python/api/docs/DefaultApi.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- **不要使用真实生产凭证**：环境变量/API key 一旦进入宿主或工具链，可能产生账号和合规风险。（适用：出现 API、TOKEN、KEY、SECRET 等环境线索时。）\n- **安装后只验证一个最小任务**：先验证加载、兼容、输出质量和回滚，再决定是否深用。（适用：准备从试用进入真实工作流时。）\n\n### 退出方式\n\n- **保留安装前状态**：记录原始宿主配置和项目状态，后续才能判断是否可恢复。\n- **准备移除宿主 plugin / Skill / 规则入口**：如果试装后行为异常，可以把宿主 AI 恢复到试装前状态。\n- **记录安装命令和写入路径**：没有明确卸载说明时，至少要知道哪些目录或配置需要手动清理。\n- **准备撤销测试 API key 或 token**：测试凭证泄露或误用时，可以快速止损。\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_0010` inferred 0.45\n- **命令执行会修改本地环境**：安装命令可能写入用户主目录、宿主插件目录或项目配置。 处理方式：先在隔离环境或测试账号中运行。 证据：`README.md`, `packages/continue-sdk/python/api/README.md`, `packages/continue-sdk/typescript/README.md`, `packages/continue-sdk/typescript/api/README.md` Claim：`clm_0011` 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- **AI Skill / Agent 指令资产库**：先基于 role_skill_index / evidence_index 帮用户挑选可用角色、Skill 或工作流。 边界：可做安装前 Prompt 体验。 证据：`.claude/skills/docs-style/SKILL.md`, `skills/cn-check/SKILL.md` Claim：`clm_0001` supported 0.86\n- **命令行启动或安装流程**：先说明这是安装后验证能力，再给出安装前检查清单。 边界：必须真实安装或运行后验证。 证据：`README.md`, `packages/continue-sdk/python/api/README.md`, `packages/continue-sdk/typescript/README.md`, `packages/continue-sdk/typescript/api/README.md` Claim：`clm_0002` supported 0.86\n\n### 上下文规模\n\n- 文件总数：2801\n- 重要文件覆盖：40/2801\n- 证据索引条目：80\n- 角色 / Skill 条目：2\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请基于 continue 的 AI Context Pack，先问我 3 个必要问题，然后判断它是否适合我的任务。回答必须包含：适合谁、能做什么、不能做什么、是否值得安装、证据来自哪里。所有项目事实必须引用 evidence_refs、source_paths 或 claim_id。\n```\n\n### 安装前体验\n\n- 目标：让用户在安装前感受核心工作流，同时避免把预览包装成真实能力或营销承诺。\n- 预期输出：一段带边界标签的体验剧本、安装后验证清单和谨慎建议；不含真实运行承诺或强营销表述。\n\n```text\n请把 continue 当作安装前体验资产，而不是已安装工具或真实运行环境。\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请基于 continue 的 AI Context Pack，生成一段我可以粘贴给宿主 AI 的开工前指令。这段指令必须遵守 not_runtime=true，不能声称项目已经安装、运行或产生真实结果。\n```\n\n\n## 角色 / Skill 索引\n\n- 共索引 2 个角色 / Skill / 项目文档条目。\n\n- **docs-style**（skill）：Style guidelines for writing and updating documentation. Use when writing new docs, updating existing docs, or reviewing docs for quality. 激活提示：当用户任务与“docs-style”描述的流程高度相关时，先用它做安装前体验，再决定是否安装。 证据：`.claude/skills/docs-style/SKILL.md`\n- **cn-check**（skill）：Install and run the Continue CLI cn to execute AI agent checks on local code changes. Use when asked to \"run checks\", \"lint with AI\", \"review my changes with cn\", or set up Continue CI locally. 激活提示：当用户任务与“cn-check”描述的流程高度相关时，先用它做安装前体验，再决定是否安装。 证据：`skills/cn-check/SKILL.md`\n\n## 证据索引\n\n- 共索引 80 条证据。\n\n- **Mintlify Starter Kit**（documentation）：Click on Use this template to copy the Mintlify starter kit. The starter kit contains examples including 证据：`docs/README.md`\n- **Getting started**（documentation）：Source-controlled AI checks, enforceable in CI 证据：`README.md`\n- **Continue PR Review Actions**（documentation）：GitHub Actions that provide automated code reviews for pull requests using Continue CLI. 证据：`actions/README.md`\n- **Continue Core Binary**（documentation）：The purpose of this folder is to package Typescript code in a way that can be run from any IDE or platform. We first bundle with esbuild and then package into binaries with pkg . 证据：`binary/README.md`\n- **Continue React App**（documentation）：The Continue React app is a notebook-like interface to the Continue server. It allows the user to submit arbitrary text input, then communicates with the server to takes steps, which are displayed as a sequence of editable cells. The React app should sit beside an IDE, as in the VS Code extension. 证据：`gui/README.md`\n- **Readme**（documentation）：The sole purpose of this folder is to open it when debugging the extension. It is not used by the extension itself. You can add more files that can be useful when manually testing the extension. 证据：`manual-testing-sandbox/readme.md`\n- **Indexing**（documentation）：Continue uses a tagging system along with content addressing to ensure that nothing needs to be indexed twice. When you change branches, Continue will only re-index the files that are newly modified and that we don't already have a copy of. This system can be used across many different \"artifacts\" just by implementing the CodebaseIndex class. 证据：`core/indexing/README.md`\n- **Next Edit Prediction**（documentation）：How is it different from autocomplete? 证据：`core/nextEdit/README.md`\n- **Vendored node modules**（documentation）：- transformers.js: to avoid the sharp dependency, which isn't used and has native dependencies 证据：`core/vendor/README.md`\n- **Quick tour**（documentation）：State-of-the-art Machine Learning for the web. Run 🤗 Transformers directly in your browser, with no need for a server! 证据：`core/vendor/modules/@xenova/transformers/README.md`\n- **AGENTS.md**（documentation）：This file provides guidance to AI coding agents when working with code in this repository. 证据：`extensions/cli/AGENTS.md`\n- **Continue CLI**（documentation）：The Continue CLI cn is a customizable command line coding agent. 证据：`extensions/cli/README.md`\n- **Tool Permissions System**（documentation）：The tool permissions system allows you to control which tools the AI can use and how it can use them. There are three permission levels: 证据：`extensions/cli/src/permissions/README.md`\n- **TUI Testing Framework**（documentation）：This directory contains a comprehensive testing framework for the Continue CLI's Terminal User Interface TUI that supports running tests in both normal local and remote modes. 证据：`extensions/cli/src/ui/__tests__/README.md`\n- **JetBrains Agent**（documentation）：Source-controlled AI checks, enforceable in CI https://docs.continue.dev 证据：`extensions/intellij/README.md`\n- **VS Code Agent**（documentation）：Source-controlled AI checks, enforceable in CI https://docs.continue.dev 证据：`extensions/vscode/README.md`\n- **E2E Tests**（documentation）：When running e2e tests for the first time 证据：`extensions/vscode/e2e/README.md`\n- **Readme**（documentation）：all-MiniLM-L6-v2 is the sentence transformers model used with transformers.js to locally generate codebase embeddings. 证据：`extensions/vscode/models/README.md`\n- **Usage Transformers.js**（documentation）：https://huggingface.co/sentence-transformers/all-MiniLM-L6-v2 with ONNX weights to be compatible with Transformers.js. 证据：`extensions/vscode/models/all-MiniLM-L6-v2/README.md`\n- **config.yaml specification**（documentation）：This specification is a work in progress and subject to change. 证据：`packages/config-yaml/src/README.md`\n- **@continuedev/sdk**（documentation）：⚠️ EXPERIMENTAL: This package is in early development and subject to frequent breaking changes without notice. 证据：`packages/continue-sdk/README.md`\n- **@continuedev/sdk**（documentation）：⚠️ EXPERIMENTAL: This package is in early development and subject to frequent breaking changes without notice. 证据：`packages/continue-sdk/python/README.md`\n- **openapi-client**（documentation）：API for Continue IDE to fetch assistants and other related information. These endpoints are primarily used by the Continue IDE extensions for VS Code and JetBrains. 证据：`packages/continue-sdk/python/api/README.md`\n- **@continuedev/sdk**（documentation）：⚠️ EXPERIMENTAL: This package is in early development and subject to frequent breaking changes without notice. 证据：`packages/continue-sdk/typescript/README.md`\n- **@continuedev/hub-api@0.0.1**（documentation）：This generator creates TypeScript/JavaScript client that utilizes Fetch API https://fetch.spec.whatwg.org/ . The generated Node module can be used in the following environments: 证据：`packages/continue-sdk/typescript/api/README.md`\n- **@continuedev/llm-info**（documentation）：A lightweight package providing information about various Large Language Models LLMs , including embedding, reranking, and other models. 证据：`packages/llm-info/README.md`\n- **OpenAI Adapters**（documentation）：OpenAI adapters convert an OpenAI-compatible request to a request for another API and back. 证据：`packages/openai-adapters/README.md`\n- **Codebase Indexing**（documentation）：This is a small Rust library for efficiently keeping a codebase index up to date. 证据：`sync/src/README.md`\n- **Package**（package_manifest）：{ \"name\": \"binary\", \"version\": \"1.0.0\", \"author\": \"Continue Dev, Inc\", \"description\": \"\", \"main\": \"out/index.js\", \"bin\": \"out/index.js\", \"pkg\": { \"scripts\": \"node modules/axios/ / \" , \"assets\": \"../core/node modules/sqlite3/ / \", \"node modules/@lancedb/ / \", \"out/tree-sitter.wasm\", \"out/tree-sitter-wasms/ \" , \"targets\": \"node18-darwin-arm64\" , \"outputPath\": \"bin\" }, \"scripts\": { \"test\": \"jest\", \"build\": \"node build.js\", \"rebuild\": \"node build.js --esbuild-only\", \"build:darwin-x64\": \"node build.js --os darwin-x64\" }, \"license\": \"Apache-2.0\", \"devDependencies\": { \"@biomejs/biome\": \"1.6.4\", \"@types/follow-redirects\": \"^1.14.4\", \"@types/jest\": \"^29.5.12\", \"@types/uuid\": \"^9.0.8\", \"@vercel/ncc\":… 证据：`binary/package.json`\n- **Package**（package_manifest）：{ \"name\": \"@continuedev/core\", \"version\": \"1.1.0\", \"description\": \"The Continue Core contains functionality that can be shared across web, VS Code, or Node.js\", \"scripts\": { \"test\": \"cross-env NODE OPTIONS=--experimental-vm-modules jest\", \"vitest\": \"vitest run\", \"test:coverage\": \"cross-env NODE OPTIONS=--experimental-vm-modules jest --coverage && open ./coverage/lcov-report/index.html\", \"tsc:check\": \"tsc -p ./ --noEmit\", \"build\": \"tsc -p ./tsconfig.npm.json\", \"build:npm\": \"npm run build && npm run sentry:sourcemaps\", \"lint\": \"eslint . --ext ts\", \"lint:fix\": \"eslint . --ext ts --fix\", \"sentry:sourcemaps\": \"sentry-cli sourcemaps inject --org continue-xd --project continue ./dist && sentry-cli… 证据：`core/package.json`\n- **Package**（package_manifest）：{ \"name\": \"docs2\", \"version\": \"1.0.0\", \"description\": \"Click on Use this template to copy the Mintlify starter kit. The starter kit contains examples including\", \"main\": \"index.js\", \"scripts\": { \"dev\": \"mintlify dev\", \"build\": \"mintlify build\", \"test\": \"echo \\\"Error: no test specified\\\" && exit 1\" }, \"keywords\": , \"author\": \"\", \"license\": \"ISC\", \"type\": \"commonjs\", \"devDependencies\": { \"mintlify\": \"^4.2.454\" }, \"dependencies\": { \"@c15t/react\": \"^1.8.5\", \"axios\": \"^1.13.6\", \"tar-fs\": \"^3.1.2\" }, \"overrides\": { \"express\": \"^4.21.2\", \"qs\": \"^6.14.2\", \"tar\": \"^7.5.13\", \"js-yaml\": \"^4.1.1\", \"lodash\": \"^4.17.23\", \"zod\": \"^3.24.0\", \"axios\": \"^1.13.6\", \"@orpc/openapi\": \"^1.13.11\", \"kysely\": \"^0.28.… 证据：`docs/package.json`\n- **Package**（package_manifest）：{ \"name\": \"gui\", \"private\": true, \"type\": \"module\", \"author\": \"Continue Dev, Inc\", \"license\": \"Apache-2.0\", \"scripts\": { \"dev\": \"vite\", \"tsc:check\": \"tsc -p ./ --noEmit\", \"build\": \"tsc && vite build\", \"preview\": \"vite preview\", \"test\": \"vitest run\", \"test:coverage\": \"vitest run --coverage\", \"test:ui\": \"vitest --ui\", \"test:watch\": \"vitest\", \"lint\": \"eslint --ext ts\" }, \"dependencies\": { \"@continuedev/config-yaml\": \"file:../packages/config-yaml\", \"@continuedev/terminal-security\": \"file:../packages/terminal-security\", \"@headlessui/react\": \"^2.2.0\", \"@heroicons/react\": \"^2.0.18\", \"@modelcontextprotocol/ext-apps\": \"^1.0.1\", \"@panzoom/panzoom\": \"^4.6.0\", \"@reduxjs/toolkit\": \"^2.11.2\", \"@sentry/re… 证据：`gui/package.json`\n- **Package**（package_manifest）：{ \"name\": \"continue\", \"scripts\": { \"tsc:watch\": \"concurrently -n gui,vscode,core,binary -c cyan,magenta,yellow,green \\\"npm run tsc:watch:gui\\\" \\\"npm run tsc:watch:vscode\\\" \\\"npm run tsc:watch:core\\\" \\\"npm run tsc:watch:binary\\\"\", \"tsc:watch:gui\": \"tsc --project gui/tsconfig.json --watch --noEmit --pretty\", \"tsc:watch:vscode\": \"tsc --project extensions/vscode/tsconfig.json --watch --noEmit --pretty\", \"tsc:watch:core\": \"tsc --project core/tsconfig.json --watch --noEmit --pretty\", \"tsc:watch:binary\": \"tsc --project binary/tsconfig.json --watch --noEmit --pretty\", \"format\": \"prettier --write \\\" / .{js,jsx,ts,tsx,json,css,md}\\\" --ignore-path .gitignore --ignore-path .prettierignore\", \"format:che… 证据：`package.json`\n- **Contributing to Continue**（documentation）：- Contributing to Continue contributing-to-continue - Table of Contents table-of-contents - ❤️ Ways to Contribute ️-ways-to-contribute - 👋 Continue Contribution Ideas -continue-contribution-ideas - 🐛 Report Bugs -report-bugs - ✨ Suggest Enhancements -suggest-enhancements - 📖 Updating / Improving Documentation -updating--improving-documentation - Running the Documentation Server Locally running-the-documentation-server-locally - Method 1: NPM Script method-1-npm-script - Method 2: VS Code Task method-2-vs-code-task - 🧑‍💻 Contributing Code -contributing-code - Environment Setup environment-setup - Pre-requisites pre-requisites - Fork the Continue Repository fork-the-continue-repository - VS C… 证据：`CONTRIBUTING.md`\n- **Package**（package_manifest）：{ \"name\": \"continue-binary\", \"version\": \"1.0.0\", \"description\": \"\", \"bin\": \"../../out/index.js\", \"pkg\": { \"scripts\": \"node modules/axios/ / \" , \"assets\": \"../../../core/node modules/sqlite3/ / \", \"../../out/tree-sitter.wasm\", \"../../out/tree-sitter-wasms/ \", \"../../tree-sitter/ / \", \"../../out/llamaTokenizer.mjs\", \"../../out/llamaTokenizerWorkerPool.mjs\", \"../../out/tiktokenWorkerPool.mjs\", \"../../out/package.json\" , \"targets\": \"node18-macos-arm64\" , \"outputPath\": \"bin\" }, \"author\": \"\", \"license\": \"Apache-2.0\" } 证据：`binary/pkgJson/darwin-arm64/package.json`\n- **Package**（package_manifest）：{ \"name\": \"continue-binary\", \"version\": \"1.0.0\", \"description\": \"\", \"bin\": \"../../out/index.js\", \"pkg\": { \"scripts\": \"node modules/axios/ / \" , \"assets\": \"../../../core/node modules/sqlite3/ / \", \"../../out/tree-sitter.wasm\", \"../../out/tree-sitter-wasms/ \", \"../../tree-sitter/ / \", \"../../out/llamaTokenizer.mjs\", \"../../out/llamaTokenizerWorkerPool.mjs\", \"../../out/tiktokenWorkerPool.mjs\", \"../../out/package.json\" , \"targets\": \"node18-macos-x64\" , \"outputPath\": \"bin\" }, \"author\": \"\", \"license\": \"Apache-2.0\" } 证据：`binary/pkgJson/darwin-x64/package.json`\n- **Package**（package_manifest）：{ \"name\": \"continue-binary\", \"version\": \"1.0.0\", \"description\": \"\", \"bin\": \"../../out/index.js\", \"pkg\": { \"scripts\": \"node modules/axios/ / \" , \"assets\": \"../../../core/node modules/sqlite3/ / \", \"../../out/tree-sitter.wasm\", \"../../out/tree-sitter-wasms/ \", \"../../tree-sitter/ / \", \"../../out/llamaTokenizer.mjs\", \"../../out/llamaTokenizerWorkerPool.mjs\", \"../../out/tiktokenWorkerPool.mjs\", \"../../out/package.json\" , \"targets\": \"node18-linux-arm64\" , \"outputPath\": \"bin\" }, \"author\": \"\", \"license\": \"Apache-2.0\" } 证据：`binary/pkgJson/linux-arm64/package.json`\n- **Package**（package_manifest）：{ \"name\": \"continue-binary\", \"version\": \"1.0.0\", \"description\": \"\", \"bin\": \"../../out/index.js\", \"pkg\": { \"scripts\": \"node modules/axios/ / \" , \"assets\": \"../../../core/node modules/sqlite3/ / \", \"../../out/tree-sitter.wasm\", \"../../out/tree-sitter-wasms/ \", \"../../tree-sitter/ / \", \"../../out/llamaTokenizer.mjs\", \"../../out/llamaTokenizerWorkerPool.mjs\", \"../../out/tiktokenWorkerPool.mjs\", \"../../out/package.json\" , \"targets\": \"node18-linux-x64\" , \"outputPath\": \"bin\" }, \"author\": \"\", \"license\": \"Apache-2.0\" } 证据：`binary/pkgJson/linux-x64/package.json`\n- **Package**（package_manifest）：{ \"name\": \"continue-binary\", \"version\": \"1.0.0\", \"description\": \"\", \"bin\": \"../../out/index.js\", \"pkg\": { \"scripts\": \"node modules/axios/ / \" , \"assets\": \"../../../core/node modules/sqlite3/ / \", \"../../out/tree-sitter.wasm\", \"../../out/tree-sitter-wasms/ \", \"../../tree-sitter/ / \", \"../../node modules/win-ca/lib/crypt32-ia32.node\", \"../../node modules/win-ca/lib/crypt32-x64.node\", \"../../node modules/win-ca/lib/roots.exe\", \"../../out/llamaTokenizer.mjs\", \"../../out/llamaTokenizerWorkerPool.mjs\", \"../../out/tiktokenWorkerPool.mjs\", \"../../out/package.json\" , \"targets\": \"node18-win-arm64\" , \"outputPath\": \"bin\" }, \"author\": \"\", \"license\": \"Apache-2.0\" } 证据：`binary/pkgJson/win32-arm64/package.json`\n- **Package**（package_manifest）：{ \"name\": \"continue-binary\", \"version\": \"1.0.0\", \"description\": \"\", \"bin\": \"../../out/index.js\", \"pkg\": { \"scripts\": \"node modules/axios/ / \" , \"assets\": \"../../../core/node modules/sqlite3/ / \", \"../../out/tree-sitter.wasm\", \"../../out/tree-sitter-wasms/ \", \"../../tree-sitter/ / \", \"../../node modules/win-ca/lib/crypt32-ia32.node\", \"../../node modules/win-ca/lib/crypt32-x64.node\", \"../../node modules/win-ca/lib/roots.exe\", \"../../out/llamaTokenizer.mjs\", \"../../out/llamaTokenizerWorkerPool.mjs\", \"../../out/tiktokenWorkerPool.mjs\", \"../../out/package.json\" , \"targets\": \"node18-win-x64\" , \"outputPath\": \"bin\" }, \"author\": \"\", \"license\": \"Apache-2.0\" } 证据：`binary/pkgJson/win32-x64/package.json`\n- **Package**（package_manifest）：{ \"name\": \"@xenova/transformers\", \"version\": \"2.14.0\", \"description\": \"State-of-the-art Machine Learning for the web. Run 🤗 Transformers directly in your browser, with no need for a server!\", \"main\": \"./src/transformers.js\", \"types\": \"./types/transformers.d.ts\", \"type\": \"module\", \"scripts\": { \"typegen\": \"tsc ./src/transformers.js --allowJs --declaration --emitDeclarationOnly --declarationMap --outDir types\", \"dev\": \"webpack serve --no-client-overlay\", \"build\": \"webpack && npm run typegen\", \"generate-tests\": \"python -m tests.generate tests\", \"test\": \"node --experimental-vm-modules node modules/jest/bin/jest.js --verbose --maxConcurrency 1\", \"readme\": \"python ./docs/scripts/build readme.py\",… 证据：`core/vendor/modules/@xenova/transformers/package.json`\n- **Package**（package_manifest）：{ \"name\": \"vendor\", \"version\": \"1.0.0\", \"description\": \"\", \"main\": \"index.js\", \"scripts\": { \"test\": \"echo \\\"Error: no test specified\\\" && exit 1\" }, \"author\": \"\", \"license\": \"Apache-2.0\", \"dependencies\": { \"@xenova/transformers\": \"^2.14.0\" }, \"engine-strict\": true, \"engines\": { \"node\": \" =20.20.1\" } } 证据：`core/vendor/package.json`\n- **Package**（package_manifest）：{ \"name\": \"@continuedev/cli\", \"version\": \"0.0.0-dev\", \"description\": \"Continue CLI\", \"main\": \"dist/index.js\", \"types\": \"dist/index.d.ts\", \"type\": \"module\", \"bin\": { \"cn\": \"dist/cn.js\" }, \"scripts\": { \"test\": \"vitest run\", \"test:watch\": \"vitest watch\", \"test:ui\": \"vitest --ui\", \"test:e2e\": \"vitest run --config vitest.e2e.config.ts\", \"test:smoke\": \"node smoke-test.mjs\", \"test:smoke-api\": \"vitest run --config vitest.smoke-api.config.ts\", \"build:tsc\": \"tsc -p tsconfig.build.json\", \"build:local-deps\": \"cd ../../packages/config-types && npm i && npm run build && cd ../fetch && npm i && npm run build && cd ../llm-info && npm i && npm run build && cd ../terminal-security && npm i && npm run build &… 证据：`extensions/cli/package.json`\n- **Package**（package_manifest）：{ \"name\": \"continue\", \"icon\": \"media/icon.png\", \"author\": \"Continue Dev, Inc\", \"version\": \"1.3.39\", \"repository\": { \"type\": \"git\", \"url\": \"https://github.com/continuedev/continue\" }, \"extensionKind\": \"ui\", \"workspace\" , \"bugs\": { \"url\": \"https://github.com/continuedev/continue/issues\", \"email\": \"nate@continue.dev\" }, \"homepage\": \"https://continue.dev\", \"qna\": \"https://github.com/continuedev/continue/issues/new/choose\", \"license\": \"Apache-2.0\", \"displayName\": \"Continue - open-source AI code agent\", \"pricing\": \"Free\", \"description\": \"The leading open-source AI code agent\", \"publisher\": \"Continue\", \"engines\": { \"vscode\": \"^1.70.0\", \"node\": \" =20.20.1\" }, \"engine-strict\": true, \"galleryBanner\":… 证据：`extensions/vscode/package.json`\n- **Package**（package_manifest）：{ \"name\": \"my-react-project\", \"version\": \"1.0.0\", \"description\": \"A React project using Radix UI for accessible components\", \"main\": \"index.js\", \"scripts\": { \"start\": \"react-scripts start\", \"build\": \"react-scripts build\", \"test\": \"react-scripts test\", \"eject\": \"react-scripts eject\" }, \"keywords\": \"react\", \"radix-ui\", \"accessibility\", \"frontend\" , \"author\": \"Your Name\", \"license\": \"MIT\", \"dependencies\": { \"@radix-ui/react-accordion\": \"^1.0.0\", \"@radix-ui/react-alert-dialog\": \"^1.0.0\", \"@radix-ui/react-checkbox\": \"^1.0.0\", \"react\": \"^18.0.0\", \"react-dom\": \"^18.0.0\", \"react-scripts\": \"^5.0.0\" }, \"devDependencies\": { \"@types/react\": \"^18.0.0\", \"@types/react-dom\": \"^18.0.0\", \"typescript\": \"^4.5.… 证据：`manual-testing-sandbox/nested-folder/package.json`\n- **Package**（package_manifest）：{ \"name\": \"@continuedev/config-types\", \"version\": \"1.0.14\", \"description\": \"\", \"main\": \"dist/index.js\", \"types\": \"dist/index.d.ts\", \"type\": \"module\", \"scripts\": { \"test\": \"echo 'No tests to run'\", \"build\": \"tsc\" }, \"author\": \"Nate Sesti and Ty Dunn\", \"license\": \"Apache-2.0\", \"devDependencies\": { \"@types/node\": \"^20.11.19\", \"typescript\": \"^5.5.2\" }, \"dependencies\": { \"zod\": \"^3.25.76\" } } 证据：`packages/config-types/package.json`\n- **Package**（package_manifest）：{ \"name\": \"@continuedev/config-yaml\", \"version\": \"1.23.0\", \"description\": \"\", \"main\": \"dist/index.js\", \"types\": \"dist/index.d.ts\", \"type\": \"module\", \"exports\": { \".\": { \"browser\": \"./dist/browser.js\", \"node\": \"./dist/index.js\", \"default\": \"./dist/index.js\" } }, \"bin\": { \"config-yaml\": \"./dist/cli.js\" }, \"scripts\": { \"test\": \"cross-env NODE OPTIONS=--experimental-vm-modules jest\", \"build\": \"tsc\", \"generate-schema\": \"tsc && node dist/scripts/generateJsonSchema.js\" }, \"author\": \"Continue Dev, Inc.\", \"license\": \"Apache-2.0\", \"dependencies\": { \"@continuedev/config-types\": \"^1.0.14\", \"yaml\": \"^2.8.2\", \"zod\": \"^3.25.76\" }, \"devDependencies\": { \"@types/jest\": \"^29.5.14\", \"@types/node\": \"^20.0.0\", \"… 证据：`packages/config-yaml/package.json`\n- **Package**（package_manifest）：{ \"name\": \"@continuedev/sdk-generator\", \"version\": \"0.0.1\", \"description\": \"SDK Generator for Continue.dev\", \"type\": \"module\", \"scripts\": { \"build\": \"echo 'No build step needed'\", \"test\": \"echo 'No tests to run'\", \"generate-client:typescript\": \"openapi-generator-cli generate -i ./openapi.yaml -g typescript-fetch -o ./typescript/api -c ./openapi-generator-config.json\", \"generate-client:python\": \"openapi-generator-cli generate -i ./openapi.yaml -g python -o ./python/api -c ./openapi-generator-config.json\", \"generate-client:ALL\": \"npm run generate-client:typescript && npm run generate-client:python\", \"swagger-ui\": \"node swagger-ui-server.js\" }, \"author\": \"Continue Dev, Inc.\", \"license\": \"Apach… 证据：`packages/continue-sdk/package.json`\n- **Package**（package_manifest）：{ \"name\": \"@continuedev/hub-api\", \"version\": \"0.0.1\", \"description\": \"OpenAPI client for @continuedev/hub-api\", \"author\": \"OpenAPI-Generator\", \"repository\": { \"type\": \"git\", \"url\": \"https://github.com/GIT USER ID/GIT REPO ID.git\" }, \"main\": \"./dist/index.js\", \"typings\": \"./dist/index.d.ts\", \"module\": \"./dist/esm/index.js\", \"sideEffects\": false, \"scripts\": { \"build\": \"tsc && tsc -p tsconfig.esm.json\", \"prepare\": \"npm run build\" }, \"devDependencies\": { \"typescript\": \"^4.0 ^5.0\" } } 证据：`packages/continue-sdk/typescript/api/package.json`\n- **Package**（package_manifest）：{ \"name\": \"@continuedev/sdk\", \"version\": \"0.0.13\", \"description\": \"SDK for Continue.dev\", \"main\": \"dist/src/index.js\", \"types\": \"dist/src/index.d.ts\", \"type\": \"module\", \"scripts\": { \"build\": \"bash ./build.sh\", \"test\": \"node --experimental-vm-modules node modules/jest/bin/jest.js\", \"test:watch\": \"node --experimental-vm-modules node modules/jest/bin/jest.js --watch\" }, \"author\": \"Continue Dev, Inc.\", \"license\": \"Apache-2.0\", \"dependencies\": { \"openai\": \"^4.104.0\" }, \"devDependencies\": { \"@types/jest\": \"^29.5.14\", \"dotenv\": \"^16.5.0\", \"jest\": \"^29.7.0\", \"ts-jest\": \"^29.1.2\", \"typescript\": \"^5.0.0\" }, \"files\": \"dist\" } 证据：`packages/continue-sdk/typescript/package.json`\n- **Package**（package_manifest）：{ \"name\": \"@continuedev/fetch\", \"version\": \"1.1.0\", \"description\": \"\", \"main\": \"dist/index.js\", \"types\": \"dist/index.d.ts\", \"type\": \"module\", \"scripts\": { \"test\": \"vitest run\", \"build\": \"tsc\" }, \"author\": \"Nate Sesti and Ty Dunn\", \"license\": \"Apache-2.0\", \"dependencies\": { \"@continuedev/config-types\": \"^1.0.14\", \"follow-redirects\": \"^1.15.6\", \"http-proxy-agent\": \"^7.0.2\", \"https-proxy-agent\": \"^7.0.5\", \"node-fetch\": \"^3.3.2\" }, \"devDependencies\": { \"@types/follow-redirects\": \"^1.14.4\", \"typescript\": \"^5.0.0\", \"vitest\": \"^3.2.0\", \"@semantic-release/changelog\": \"^6.0.3\", \"@semantic-release/git\": \"^10.0.1\", \"@semantic-release/github\": \"^9.2.6\", \"@semantic-release/npm\": \"^13.1.5\", \"semantic-rel… 证据：`packages/fetch/package.json`\n- **Package**（package_manifest）：{ \"name\": \"@continuedev/hub\", \"version\": \"0.0.7\", \"description\": \"\", \"main\": \"dist/index.js\", \"types\": \"dist/index.d.ts\", \"type\": \"module\", \"scripts\": { \"test\": \"cross-env NODE OPTIONS=--experimental-vm-modules jest --passWithNoTests\", \"build\": \"tsc\" }, \"author\": \"Continue Dev, Inc.\", \"license\": \"Apache-2.0\", \"dependencies\": { \"@continuedev/config-yaml\": \"^1.38.0\", \"js-yaml\": \"^4.1.1\" }, \"devDependencies\": { \"@types/jest\": \"^29.5.14\", \"cross-env\": \"^7.0.3\", \"jest\": \"^29.7.0\", \"ts-jest\": \"^29.2.3\", \"ts-node\": \"^10.9.2\" } } 证据：`packages/hub/package.json`\n- **Package**（package_manifest）：{ \"name\": \"@continuedev/llm-info\", \"version\": \"1.0.10\", \"description\": \"\", \"main\": \"dist/index.js\", \"types\": \"dist/index.d.ts\", \"type\": \"module\", \"scripts\": { \"test\": \"echo 'No tests to run'\", \"build\": \"tsc\" }, \"author\": \"Nate Sesti and Ty Dunn\", \"license\": \"Apache-2.0\", \"devDependencies\": { \"@types/node\": \"^22.15.29\", \"typescript\": \"^5.5.2\", \"@semantic-release/changelog\": \"^6.0.3\", \"@semantic-release/git\": \"^10.0.1\", \"@semantic-release/github\": \"^9.2.6\", \"@semantic-release/npm\": \"^13.1.5\", \"semantic-release\": \"^24.2.7\" }, \"overrides\": { \"picomatch\": \"^4.0.4\" } } 证据：`packages/llm-info/package.json`\n- **Package**（package_manifest）：{ \"name\": \"@continuedev/openai-adapters\", \"version\": \"1.32.0\", \"description\": \"\", \"main\": \"dist/index.js\", \"types\": \"dist/index.d.ts\", \"type\": \"module\", \"scripts\": { \"test\": \"vitest\", \"build\": \"tsc\" }, \"author\": \"Nate Sesti and Ty Dunn\", \"license\": \"Apache-2.0\", \"dependencies\": { \"@ai-sdk/anthropic\": \"^3.0.44\", \"@ai-sdk/google\": \"^3.0.30\", \"@ai-sdk/deepseek\": \"^2.0.20\", \"@ai-sdk/openai\": \"^3.0.29\", \"@ai-sdk/xai\": \"^3.0.57\", \"@anthropic-ai/sdk\": \"^0.67.0\", \"@aws-sdk/client-bedrock-runtime\": \"^3.931.0\", \"@aws-sdk/credential-providers\": \"^3.974.0\", \"@continuedev/config-types\": \"^1.0.14\", \"@continuedev/config-yaml\": \"^1.38.0\", \"@continuedev/fetch\": \"^1.6.0\", \"@google/genai\": \"^1.30.0\", \"ai\": \"^… 证据：`packages/openai-adapters/package.json`\n- **Package**（package_manifest）：{ \"name\": \"@continuedev/terminal-security\", \"version\": \"1.0.0\", \"description\": \"Terminal command security evaluation for Continue\", \"main\": \"dist/index.js\", \"types\": \"dist/index.d.ts\", \"type\": \"module\", \"scripts\": { \"test\": \"vitest run\", \"test:watch\": \"vitest watch\", \"build\": \"tsc\", \"clean\": \"rm -rf dist\" }, \"author\": \"Continue Dev, Inc\", \"license\": \"Apache-2.0\", \"devDependencies\": { \"@types/node\": \"^20.11.19\", \"@types/shell-quote\": \"^1.7.5\", \"typescript\": \"^5.5.2\", \"vitest\": \"^3.2.4\" }, \"dependencies\": { \"shell-quote\": \"^1.8.1\" } } 证据：`packages/terminal-security/package.json`\n- **Docs Style Guide**（skill_instruction）：- Be concise — no filler. Make it easy to find what you're looking for - Task-oriented — frame around what the user is trying to do, not what the product can do - Progressive disclosure — guide from introduction to advanced use-cases. Don't throw users into the deep end - Real examples over abstract explanations — show, don't describe - Code snippets must be copy-pasteable — no placeholder values that silently break, no missing imports - Prerequisites up front — don't surprise the user halfway through - One topic per page — if you're covering two things, split it - Link, don't repeat — reference other docs instead of duplicating content - Scannable headings — skimming the TOC should reveal… 证据：`.claude/skills/docs-style/SKILL.md`\n- **Contributing to Continue JetBrains extension**（documentation）：Contributing to Continue JetBrains extension 证据：`extensions/intellij/CONTRIBUTING.md`\n- **Continue VS Code Extension**（documentation）：This is the Continue VS Code Extension. Its primary jobs are 证据：`extensions/vscode/CONTRIBUTING.md`\n- **cn check — Local AI Agent Checks**（skill_instruction）：Run AI-powered code checks locally against your working tree changes using the Continue CLI. Each check is an agent defined in markdown that reviews your diff, identifies issues, and optionally suggests fixes as a patch. 证据：`skills/cn-check/SKILL.md`\n- **Diff algorithm tests**（documentation）：--- is the delimeter, and surrounding whitespace will be trimmed. 证据：`core/diff/test-examples/README.md`\n- 其余 20 条证据见 `AI_CONTEXT_PACK.json` 或 `EVIDENCE_INDEX.json`。\n\n## 宿主 AI 必须遵守的规则\n\n- **把本资产当作开工前上下文，而不是运行环境。**：AI Context Pack 只包含证据化项目理解，不包含目标项目的可执行状态。 证据：`docs/README.md`, `README.md`, `actions/README.md`\n- **回答用户时区分可预览内容与必须安装后才能验证的内容。**：安装前体验的消费者价值来自降低误装和误判，而不是伪装成真实运行。 证据：`docs/README.md`, `README.md`, `actions/README.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- **Architecture Overview**：importance `high`\n  - source_paths: core/package.json, core/core.ts, package.json\n- **Protocol and Communication**：importance `high`\n  - source_paths: core/protocol/core.ts, core/protocol/ide.ts, core/protocol/messenger/index.ts, binary/src/IpcIde.ts\n- **Core Library**：importance `high`\n  - source_paths: core/llm/index.ts, core/config/ConfigHandler.ts, core/indexing/CodebaseIndexer.ts, core/tools/index.ts, core/context/retrieval/retrieval.ts\n- **IDE Extensions**：importance `high`\n  - source_paths: extensions/vscode/src/extension.ts, extensions/vscode/src/autocomplete/completionProvider.ts, extensions/intellij/src/main/kotlin/com/github/continuedev/continueintellijextension/continue/IntelliJIde.kt, extensions/intellij/src/main/kotlin/com/github/continuedev/continueintellijextension/autocomplete/ContinueInlineCompletionProvider.kt\n- **CLI Tool**：importance `high`\n  - source_paths: extensions/cli/src/commands/chat.ts, extensions/cli/src/commands/serve.ts, extensions/cli/src/services/ServiceContainer.ts, extensions/cli/src/permissions/permissionManager.ts\n- **Model Providers and LLM Integration**：importance `high`\n  - source_paths: core/llm/llms/index.ts, core/llm/llms/OpenAI.ts, core/llm/llms/Anthropic.ts, core/llm/llms/Ollama.ts, packages/openai-adapters/src/apis/base.ts\n- **Chat and Agent System**：importance `high`\n  - source_paths: core/tools/builtIn.ts, core/tools/callTool.ts, extensions/cli/src/stream/streamChatResponse.ts, core/llm/streamChat.ts\n- **Autocomplete System**：importance `high`\n  - source_paths: core/autocomplete/CompletionProvider.ts, core/autocomplete/context/ContextRetrievalService.ts, core/autocomplete/templating/AutocompleteTemplate.ts, core/autocomplete/generation/CompletionStreamer.ts\n\n## Repo Inspection Evidence / 源码检查证据\n\n- repo_clone_verified: true\n- repo_inspection_verified: true\n- repo_commit: `cb273098d968906d25ee737b454f0b5f13ea2482`\n- inspected_files: `package.json`, `README.md`, `docs/package-lock.json`, `docs/troubleshooting.mdx`, `docs/reo-tracking.js`, `docs/faqs.mdx`, `docs/CONTRIBUTING.mdx`, `docs/c15t-cookie-banner.js`, `docs/index.mdx`, `docs/home.mdx`, `docs/package.json`, `docs/README.md`, `docs/reference.mdx`, `docs/docs.json`, `docs/overview.mdx`, `docs/cli/configuration.mdx`, `docs/cli/tool-permissions.mdx`, `docs/cli/headless-mode.mdx`, `docs/cli/tui-mode.mdx`, `docs/cli/quickstart.mdx`\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: 来源证据：\"Headers not defined\" -> This time with logs\n\n- Trigger: GitHub 社区证据显示该项目存在一个安装相关的待验证问题：\"Headers not defined\" -> This time with logs\n- Host AI rule: 来源问题仍为 open，Pack Agent 需要复核是否仍影响当前版本。\n- Why it matters: 可能增加新用户试用和生产接入成本。\n- Evidence: community_evidence:github | cevd_0c0fcf2034914a62a81e3374d2d7d0a5 | https://github.com/continuedev/continue/issues/12163 | 来源讨论提到 linux 相关条件，需在安装/试用前复核。\n- Hard boundary: 不要把这个坑点包装成已解决、已验证或可忽略，除非后续验证证据明确证明它已经关闭。\n\n### Constraint 2: 来源证据：(sse) mcp restarts breaks communication\n\n- Trigger: GitHub 社区证据显示该项目存在一个配置相关的待验证问题：(sse) mcp restarts breaks communication\n- Host AI rule: 来源问题仍为 open，Pack Agent 需要复核是否仍影响当前版本。\n- Why it matters: 可能增加新用户试用和生产接入成本。\n- Evidence: community_evidence:github | cevd_5cb9bc1f10144ec7948f8784dc25bf12 | https://github.com/continuedev/continue/issues/12431 | 来源类型 github_issue 暴露的待验证使用条件。\n- Hard boundary: 不要把这个坑点包装成已解决、已验证或可忽略，除非后续验证证据明确证明它已经关闭。\n\n### Constraint 3: 来源证据：Continue fails to stablish mTLS connection with server\n\n- Trigger: GitHub 社区证据显示该项目存在一个配置相关的待验证问题：Continue fails to stablish mTLS connection with server\n- Host AI rule: 来源问题仍为 open，Pack Agent 需要复核是否仍影响当前版本。\n- Why it matters: 可能增加新用户试用和生产接入成本。\n- Evidence: community_evidence:github | cevd_01756ce44b144ad4a34ea4c5e99e339b | https://github.com/continuedev/continue/issues/8470 | 来源讨论提到 windows 相关条件，需在安装/试用前复核。\n- Hard boundary: 不要把这个坑点包装成已解决、已验证或可忽略，除非后续验证证据明确证明它已经关闭。\n\n### Constraint 4: 来源证据：Session Workspace always assumes first workspace folder\n\n- Trigger: GitHub 社区证据显示该项目存在一个配置相关的待验证问题：Session Workspace always assumes first workspace folder\n- Host AI rule: 来源问题仍为 open，Pack Agent 需要复核是否仍影响当前版本。\n- Why it matters: 可能增加新用户试用和生产接入成本。\n- Evidence: community_evidence:github | cevd_1e621c9277a64cb581639efad6bd6b73 | https://github.com/continuedev/continue/issues/4539 | 来源类型 github_issue 暴露的待验证使用条件。\n- Hard boundary: 不要把这个坑点包装成已解决、已验证或可忽略，除非后续验证证据明确证明它已经关闭。\n\n### Constraint 5: 失败模式：security_permissions: PR checks do not create fresh agent sessions on PR updates; stale task IDs re-post to new com...\n\n- Trigger: Developers should check this security_permissions risk before relying on the project: PR checks do not create fresh agent sessions on PR updates; stale task IDs re-post to new commits\n- Host AI rule: Before packaging this project, run the relevant install/config/quickstart check for: PR checks do not create fresh agent sessions on PR updates; stale task IDs re-post to new commits. Context: Observed when using macos\n- Why it matters: Developers may expose sensitive permissions or credentials: PR checks do not create fresh agent sessions on PR updates; stale task IDs re-post to new commits\n- Evidence: failure_mode_cluster:github_issue | fmev_07a692e49161cfab20c466f1f0b957d1 | https://github.com/continuedev/continue/issues/12382 | PR checks do not create fresh agent sessions on PR updates; stale task IDs re-post to new commits\n- Hard boundary: 不要把这个坑点包装成已解决、已验证或可忽略，除非后续验证证据明确证明它已经关闭。\n\n### Constraint 6: 来源证据：Autocomplete for code is not working\n\n- Trigger: GitHub 社区证据显示该项目存在一个安全/权限相关的待验证问题：Autocomplete for code is not working\n- Host AI rule: 来源问题仍为 open，Pack Agent 需要复核是否仍影响当前版本。\n- Why it matters: 可能影响授权、密钥配置或安全边界。\n- Evidence: community_evidence:github | cevd_e1f8ba56c9b140e8a61444ad20181cd9 | https://github.com/continuedev/continue/issues/12298 | 来源讨论提到 windows 相关条件，需在安装/试用前复核。\n- Hard boundary: 不要把这个坑点包装成已解决、已验证或可忽略，除非后续验证证据明确证明它已经关闭。\n\n### Constraint 7: 来源证据：Make the user settings declarative\n\n- Trigger: GitHub 社区证据显示该项目存在一个安全/权限相关的待验证问题：Make the user settings declarative\n- Host AI rule: 来源问题仍为 open，Pack Agent 需要复核是否仍影响当前版本。\n- Why it matters: 可能影响升级、迁移或版本选择。\n- Evidence: community_evidence:github | cevd_a5ebcd3bc7be4e949b45351fd5b06873 | https://github.com/continuedev/continue/issues/5438 | 来源讨论提到 api key 相关条件，需在安装/试用前复核。\n- Hard boundary: 不要把这个坑点包装成已解决、已验证或可忽略，除非后续验证证据明确证明它已经关闭。\n\n### Constraint 8: 来源证据：Responses from LLM's running from LocalAI are not detected\n\n- Trigger: GitHub 社区证据显示该项目存在一个安全/权限相关的待验证问题：Responses from LLM's running from LocalAI are not detected\n- Host AI rule: 来源问题仍为 open，Pack Agent 需要复核是否仍影响当前版本。\n- Why it matters: 可能影响授权、密钥配置或安全边界。\n- Evidence: community_evidence:github | cevd_8aabc2e01f8646e2a22d44dbcad4ad99 | https://github.com/continuedev/continue/issues/10113 | 来源讨论提到 python 相关条件，需在安装/试用前复核。\n- Hard boundary: 不要把这个坑点包装成已解决、已验证或可忽略，除非后续验证证据明确证明它已经关闭。\n\n### Constraint 9: 失败模式：installation: Support Context7\n\n- Trigger: Developers should check this installation risk before relying on the project: Support Context7\n- Host AI rule: Before packaging this project, run the relevant install/config/quickstart check for: Support Context7. Context: Observed during installation or first-run setup.\n- Why it matters: Developers may fail before the first successful local run: Support Context7\n- Evidence: failure_mode_cluster:github_issue | fmev_dd0ac59c1a237815f09072ae6ef6bbbd | https://github.com/continuedev/continue/issues/5836 | Support Context7\n- Hard boundary: 不要把这个坑点包装成已解决、已验证或可忽略，除非后续验证证据明确证明它已经关闭。\n\n### Constraint 10: 失败模式：installation: Terminal commands fail when `$SHELL` is set to `tcsh` due to hardcoded `-l` shell flag\n\n- Trigger: Developers should check this installation risk before relying on the project: Terminal commands fail when `$SHELL` is set to `tcsh` due to hardcoded `-l` shell flag\n- Host AI rule: Before packaging this project, run the relevant install/config/quickstart check for: Terminal commands fail when `$SHELL` is set to `tcsh` due to hardcoded `-l` shell flag. Context: Observed when using linux\n- Why it matters: Developers may fail before the first successful local run: Terminal commands fail when `$SHELL` is set to `tcsh` due to hardcoded `-l` shell flag\n- Evidence: failure_mode_cluster:github_issue | fmev_682551ed88a7b527a9f1207eecd2a1c6 | https://github.com/continuedev/continue/issues/12378 | Terminal commands fail when `$SHELL` is set to `tcsh` due to hardcoded `-l` shell flag\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项目：continuedev/continue\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 是否匹配：local_cli\n- 官方安装入口状态：已发现官方入口\n- 是否在临时目录、临时宿主或容器中验证：必须是\n- 是否能回滚配置改动：必须能\n- 是否需要 API Key、网络访问、读写文件或修改宿主配置：未确认前按高风险处理\n- 是否记录了安装命令、实际输出和失败日志：必须记录\n\n## 当前阻塞项\n\n- 无阻塞项。\n\n## 项目专属踩坑\n\n- 来源证据：\"Headers not defined\" -> This time with logs（high）：可能增加新用户试用和生产接入成本。 建议检查：来源问题仍为 open，Pack Agent 需要复核是否仍影响当前版本。\n- 来源证据：(sse) mcp restarts breaks communication（high）：可能增加新用户试用和生产接入成本。 建议检查：来源问题仍为 open，Pack Agent 需要复核是否仍影响当前版本。\n- 来源证据：Continue fails to stablish mTLS connection with server（high）：可能增加新用户试用和生产接入成本。 建议检查：来源问题仍为 open，Pack Agent 需要复核是否仍影响当前版本。\n- 来源证据：Session Workspace always assumes first workspace folder（high）：可能增加新用户试用和生产接入成本。 建议检查：来源问题仍为 open，Pack Agent 需要复核是否仍影响当前版本。\n- 失败模式：security_permissions: PR checks do not create fresh agent sessions on PR updates; stale task IDs re-post to new com...（high）：Developers may expose sensitive permissions or credentials: PR checks do not create fresh agent sessions on PR updates; stale task IDs re-post to new commits 建议检查：Before packaging this project, run the relevant install/config/quickstart check for: PR checks do not create fresh agent sessions on PR updates; stale task IDs re-post to new commits. Context: Observed when using macos\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/continuedev/continue 项目说明书\n\n生成时间：2026-05-16 04:20:22 UTC\n\n## 目录\n\n- [Architecture Overview](#architecture-overview)\n- [Protocol and Communication](#protocol-communication)\n- [Core Library](#core-library)\n- [IDE Extensions](#ide-extensions)\n- [CLI Tool](#cli-tool)\n- [Model Providers and LLM Integration](#model-providers)\n- [Chat and Agent System](#chat-system)\n- [Autocomplete System](#autocomplete)\n- [Next Edit Feature](#next-edit)\n- [Configuration System](#config-system)\n\n<a id='architecture-overview'></a>\n\n## Architecture Overview\n\n### 相关页面\n\n相关主题：[Protocol and Communication](#protocol-communication), [Core Library](#core-library)\n\n<details>\n<summary>相关源码文件</summary>\n\n以下源码文件用于生成本页说明：\n\n- [gui/src/components/StyledMarkdownPreview/utils/patchNestedMarkdown.ts](https://github.com/continuedev/continue/blob/main/gui/src/components/StyledMarkdownPreview/utils/patchNestedMarkdown.ts)\n- [extensions/cli/src/systemMessage.ts](https://github.com/continuedev/continue/blob/main/extensions/cli/src/systemMessage.ts)\n- [gui/src/redux/slices/sessionSlice.ts](https://github.com/continuedev/continue/blob/main/gui/src/redux/slices/sessionSlice.ts)\n- [extensions/cli/src/slashCommands.ts](https://github.com/continuedev/continue/blob/main/extensions/cli/src/slashCommands.ts)\n- [packages/config-yaml/src/interfaces/SecretResult.ts](https://github.com/continuedev/continue/blob/main/packages/config-yaml/src/interfaces/SecretResult.ts)\n- [gui/src/pages/stats.tsx](https://github.com/continuedev/continue/blob/main/gui/src/pages/stats.tsx)\n- [README.md](https://github.com/continuedev/continue/blob/main/README.md)\n</details>\n\n# Architecture Overview\n\nContinue is an open-source AI coding assistant that integrates with various IDEs and provides AI-powered code checks, autocompletion, and chat capabilities. This document provides a comprehensive overview of the system's architecture, component organization, and data flow.\n\n## System Architecture\n\nContinue follows a modular, multi-layer architecture designed to support multiple IDE integrations, deployment modes, and AI model providers.\n\n### High-Level Architecture\n\n```mermaid\ngraph TD\n    subgraph Client[\"Client Layer\"]\n        IDE[IntelliJ IDE Plugin]\n        VSCode[VS Code Extension]\n        CLI[Continue CLI]\n    end\n    \n    subgraph Core[\"Core Services\"]\n        Chat[Chat Service]\n        Autocomplete[Autocomplete Service]\n        Checks[AI Checks Service]\n    end\n    \n    subgraph Model[\"Model Integration\"]\n        LLM[LLM Providers]\n        MCP[Model Context Protocol]\n    end\n    \n    IDE --> Core\n    VSCode --> Core\n    CLI --> Core\n    Core --> LLM\n    Core --> MCP\n```\n\n### Key Architectural Layers\n\n| Layer | Purpose | Technologies |\n|-------|---------|--------------|\n| **Client Layer** | IDE integrations and user interfaces | TypeScript, React |\n| **Core Layer** | Business logic, session management, AI orchestration | TypeScript, Redux |\n| **Model Layer** | LLM provider abstraction, MCP integration | TypeScript |\n| **Configuration Layer** | Secret management, profile configuration | YAML, TypeScript |\n\n## Directory Structure\n\nThe repository follows a monorepo structure:\n\n```\ncontinue/\n├── core/                  # Core business logic\n├── gui/                   # Web-based UI components\n│   └── src/\n│       ├── components/    # React components\n│       ├── pages/         # Page components\n│       └── redux/         # State management\n├── extensions/            # IDE and CLI extensions\n│   ├── cli/              # Command-line interface\n│   ├── intellij/         # IntelliJ plugin\n│   └── vscode/           # VS Code extension\n└── packages/             # Shared libraries\n    └── config-yaml/      # Configuration utilities\n```\n\n## Core Components\n\n### Session Management\n\nThe session system manages chat sessions, history, and metadata. It uses Redux for state management with a dedicated session slice.\n\n```mermaid\ngraph LR\n    A[User Input] --> B[Session Slice]\n    B --> C[allSessionMetadata]\n    B --> D[currentSession]\n    B --> E[title]\n```\n\n**Session Slice Actions** (资料来源：[gui/src/redux/slices/sessionSlice.ts:1-100]())\n\n| Action | Purpose |\n|--------|---------|\n| `addSessionMetadata` | Add new session metadata to history |\n| `updateSessionMetadata` | Update existing session metadata |\n| `deleteSessionMetadata` | Remove session from history |\n| `setTitle` | Update current session title |\n| `setAllSessionMetadata` | Bulk update session list |\n\nThe slice maintains:\n- `allSessionMetadata`: Array of all session metadata\n- `id`: Current session ID\n- `title`: Current session title\n- `history`: Chat history for current session\n\n### Markdown Processing\n\nThe `patchNestedMarkdown` utility handles nested code blocks in markdown content, converting markdown-specific code block delimiters to prevent rendering conflicts.\n\n```mermaid\ngraph TD\n    A[Input String] --> B{Match md/markdown/gfm?}\n    B -->|No| C[Return Original]\n    B -->|Yes| D[Initialize State Tracker]\n    D --> E[Process Lines]\n    E --> F{Bare Backticks?}\n    F -->|Yes| G[Convert to Tildes]\n    F -->|No| H[Next Line]\n    G --> I{Last Delimiter?}\n    I -->|Yes| J[Close Block]\n    I -->|No| H\n    H --> E\n```\n\nKey features (资料来源：[gui/src/components/StyledMarkdownPreview/utils/patchNestedMarkdown.ts:1-50]()):\n\n- Early return optimization for non-markdown content\n- `MarkdownBlockStateTracker` for efficient line analysis\n- Handles GitHub-specific variants: `gfm`, `github-markdown`\n- Converts ` ``` ` to `~~~` for nested blocks\n\n### CLI Slash Commands\n\nThe CLI provides numerous slash commands for various operations:\n\n| Command | Action | Description |\n|---------|--------|-------------|\n| `/clear` | `{ clear: true }` | Clear chat history |\n| `/exit` | `{ exit: true }` | Exit the session |\n| `/config` | `{ openConfigSelector: true }` | Open config selector |\n| `/login` | - | Handle login flow |\n| `/model` | `{ openModelSelector: true }` | Open model selector |\n| `/compact` | `{ compact: true }` | Compact session history |\n| `/mcp` | `{ openMcpSelector: true }` | Open MCP selector |\n| `/resume` | `{ openSessionSelector: true }` | Resume previous session |\n| `/title` | - | Update session title |\n| `/init` | - | Initialize new project |\n| `/jobs` | - | List background jobs |\n| `/skills` | - | Manage skills |\n| `/sessions` | - | List sessions |\n| `/export` | - | Export session data |\n| `/import` | - | Import session data |\n\n资料来源：[extensions/cli/src/slashCommands.ts:1-80]()\n\n### System Message Composition\n\nThe system message is dynamically composed based on execution context:\n\n```mermaid\ngraph TD\n    A[Base System Message] --> B{headless mode?}\n    B -->|Yes| C[Add Headless Instructions]\n    B -->|No| D{format === json?}\n    D -->|Yes| E[Add JSON Instructions]\n    D -->|No| F{agentContent/rules?}\n    F -->|Yes| G[Add Rules Section]\n    F -->|No| H[Final Message]\n    C --> H\n    E --> H\n    G --> H\n```\n\n**Message Components** (资料来源：[extensions/cli/src/systemMessage.ts:1-60]()):\n\n| Mode | Instruction Type |\n|------|------------------|\n| Headless | \"Provide ONLY your final answer\" |\n| JSON | \"Your final response MUST be valid JSON\" |\n| Rules | User-defined agent content and rules |\n\n## Configuration System\n\n### Secret Management\n\nThe `SecretResult` interface provides encoding and decoding for various secret types:\n\n```typescript\nenum SecretType {\n  Organization,\n  User,\n  Package,\n  NotFound,\n  ModelsAddOn,\n  FreeTrial,\n  LocalEnv,\n  ProcessEnv\n}\n```\n\n**Secret Location Encoding** (资料来源：[packages/config-yaml/src/interfaces/SecretResult.ts:1-80]()):\n\n| Secret Type | Format |\n|-------------|--------|\n| Organization | `Organization:orgSlug/secretName` |\n| User | `User:userSlug/secretName` |\n| Package | `Package:ownerSlug/packageSlug/secretName` |\n| LocalEnv | `LocalEnv:secretName` |\n| ProcessEnv | `ProcessEnv:secretName` |\n\n### Model Configuration\n\nModels are organized by role:\n\n| Role | Purpose |\n|------|---------|\n| `chat` | General conversation and code assistance |\n| `autocomplete` | Inline code completion as you type |\n| `edit` | Transform selected code sections |\n\nEach model can have configuration status:\n- `VALID`: Properly configured\n- `MISSING_API_KEY`: API key not set\n- `MISSING_ENV_SECRET`: Required environment variable missing\n\n资料来源：[gui/src/pages/config/sections/ModelsSection.tsx:1-60]()\n\n## Statistics and Usage Tracking\n\nThe stats page displays token usage data (资料来源：[gui/src/pages/stats.tsx:1-80]()):\n\n**Token Tracking Tables:**\n\n| Table | Columns | Purpose |\n|-------|---------|---------|\n| Daily Usage | Day, Generated Tokens, Prompt Tokens | Daily consumption |\n| Per-Model | Model, Generated Tokens, Prompt Tokens | Breakdown by model |\n\nData is formatted with locale-aware number formatting for readability.\n\n## Error Handling\n\nThe `FatalErrorNotice` component provides graceful error handling:\n\n```mermaid\ngraph TD\n    A[Error State] --> B{configLoading?}\n    B -->|Yes| C[Show \"Reloading...\"]\n    B -->|No| D[Show Actions]\n    D --> E[View Config Page]\n    D --> F[Open Docs]\n    D --> G[Reload]\n```\n\nActions available (资料来源：[gui/src/components/config/FatalErrorNotice.tsx:1-50]()):\n- **View**: Navigate to configuration page\n- **Help**: Open documentation troubleshooting page\n- **Reload**: Refresh profiles\n\n## Extension Architecture\n\n### IntelliJ Plugin\n\nThe IntelliJ extension loads the GUI in a webview with IDE detection:\n\n```html\n<script>\n  localStorage.setItem(\"ide\", '\"jetbrains\"');\n</script>\n```\n\n资料来源：[extensions/intellij/src/main/resources/webview/index.html:1-20]()\n\n### CLI Extension\n\nThe CLI provides headless operation with:\n- Commit signature generation\n- JSON output mode\n- Headless mode for automation\n- Session resumption\n\n## Data Flow\n\n```mermaid\ngraph TD\n    subgraph Input[\"Input Processing\"]\n        UserInput[User Input]\n        SlashCmd[Slash Commands]\n    end\n    \n    subgraph Processing[\"Processing Layer\"]\n        Dispatcher[Action Dispatcher]\n        Reducer[Session Reducer]\n        Rules[Rules Processor]\n    end\n    \n    subgraph Output[\"Output Layer\"]\n        UI[UI Components]\n        API[External APIs]\n        FS[File System]\n    end\n    \n    UserInput --> Dispatcher\n    SlashCmd --> Dispatcher\n    Dispatcher --> Reducer\n    Reducer --> Rules\n    Rules --> UI\n    Rules --> API\n    Rules --> FS\n```\n\n## Summary\n\nContinue's architecture is designed for:\n\n1. **Modularity**: Clear separation between UI, core logic, and integrations\n2. **Extensibility**: Support for multiple IDEs and model providers\n3. **State Management**: Redux-based centralized state with session tracking\n4. **Security**: Secret management with encoding/decoding utilities\n5. **User Experience**: Graceful error handling and helpful status indicators\n\nThe system supports both GUI-based usage through IDE extensions and headless CLI operation for CI/CD integration, making it suitable for individual development and team enforcement workflows.\n\n---\n\n<a id='protocol-communication'></a>\n\n## Protocol and Communication\n\n### 相关页面\n\n相关主题：[Architecture Overview](#architecture-overview), [Core Library](#core-library)\n\n<details>\n<summary>相关源码文件</summary>\n\n以下源码文件用于生成本页说明：\n\n- [core/protocol/core.ts](https://github.com/continuedev/continue/blob/main/core/protocol/core.ts)\n- [core/protocol/ide.ts](https://github.com/continuedev/continue/blob/main/core/protocol/ide.ts)\n- [core/protocol/messenger/index.ts](https://github.com/continuedev/continue/blob/main/core/protocol/messenger/index.ts)\n- [binary/src/IpcIde.ts](https://github.com/continuedev/continue/blob/main/binary/src/IpcIde.ts)\n</details>\n\n# Protocol and Communication\n\n## Overview\n\nThe Continue codebase implements a sophisticated inter-process communication (IPC) protocol system that enables seamless communication between the Continue core engine and various IDE integrations (VS Code, JetBrains, etc.). This protocol layer abstracts the underlying transport mechanisms while providing a type-safe, event-driven communication architecture.\n\nThe communication system is built around three core concepts:\n\n1. **Protocol Definitions** - Type-safe interfaces defining the contract between components\n2. **Messenger System** - The message passing infrastructure with callbacks and event handling\n3. **IPC Transport** - Platform-specific implementations (Electron IPC, WebViews, etc.)\n\n```mermaid\ngraph TD\n    A[IDE Extension] -->|IPC Bridge| B[Binary/Core]\n    C[Continue Core] -->|Messenger| B\n    D[GUI Components] -->|Protocol Messages| C\n    B -->|Transport Layer| E[Platform IPC]\n```\n\n## Core Protocol Definitions\n\n### Protocol Message Structure\n\nThe core protocol defines the fundamental message envelope used throughout the communication system. All messages share a common structure that includes metadata for routing, identification, and error handling.\n\n| Field | Type | Description |\n|-------|------|-------------|\n| `messageId` | `string` | Unique identifier for message tracking |\n| `type` | `MessageType` | Enumerated message type |\n| `payload` | `any` | Message data payload |\n| `timestamp` | `number` | Unix timestamp of message creation |\n| `source` | `string` | Origin component identifier |\n| `target` | `string` | Destination component identifier |\n\n资料来源：[core/protocol/core.ts:1-50]()\n\n### Message Type Categories\n\nThe protocol distinguishes between several categories of messages:\n\n**Event Messages** - Fire-and-forget notifications about state changes or actions:\n- Used for UI updates, progress notifications, and logging\n- No response expected\n\n**Request-Response Messages** - Pairs with callback mechanisms:\n- Includes correlation ID for matching responses\n- Supports timeout handling\n\n**Streaming Messages** - Chunked data transfers:\n- Used for large code generation, file transfers\n- Includes sequence numbering for ordering\n\n资料来源：[core/protocol/core.ts:51-100]()\n\n## IDE Protocol\n\nThe IDE protocol defines the interface contract between Continue and the host IDE. This abstraction allows the core logic to remain IDE-agnostic while enabling platform-specific implementations.\n\n### IdeProtocol Interface\n\n```typescript\ninterface IdeProtocol {\n  // File System Operations\n  readFile(path: string): Promise<string>;\n  writeFile(path: string, content: string): Promise<void>;\n  getOpenFiles(): Promise<string[]>;\n  \n  // Editor Operations\n  getFileContents(filepath: string): Promise<string>;\n  highlightCode(filepath: string, range: Range): Promise<void>;\n  \n  // UI Operations\n  showNotification(message: string, type: NotificationType): void;\n  openUrl(url: string): void;\n  \n  // Context Retrieval\n  getGitRoot(): Promise<string>;\n  getWorkspaceDirs(): Promise<string[]>;\n}\n```\n\n资料来源：[core/protocol/ide.ts:1-60]()\n\n### Supported IDE Operations\n\n| Category | Operations | Description |\n|----------|------------|-------------|\n| **File System** | `readFile`, `writeFile`, `createFile`, `deleteFile` | Direct file manipulation |\n| **Navigation** | `getOpenFiles`, `getCurrentFile`, `showInEditor` | Editor state queries |\n| **Git Integration** | `getGitRoot`, `getDiff`, `getBranch` | Version control operations |\n| **Terminal** | `runCommand`, `getCwd` | Shell execution |\n| **UI** | `showNotification`, `openUrl`, `getIdeInfo` | User interface interactions |\n\n资料来源：[core/protocol/ide.ts:61-120]()\n\n## Messenger System\n\nThe messenger provides the core messaging infrastructure for Continue. It manages callback registration, message dispatching, and response handling in a type-safe manner.\n\n### Messenger Architecture\n\n```mermaid\ngraph LR\n    A[Message Producer] -->|post| B[Messenger Core]\n    B -->|dispatch| C[Registered Callbacks]\n    D[Response Handler] -->|correlate| B\n    B -->|respond| A\n```\n\n### Core Messenger Methods\n\n| Method | Signature | Description |\n|--------|-----------|-------------|\n| `post` | `(message: ProtocolMessage) => void` | Send a message without expecting response |\n| `request` | `(message: ProtocolMessage) => Promise<Response>` | Send message and wait for response |\n| `on` | `(type: string, callback: Handler) => void` | Register a callback for message type |\n| `off` | `(type: string, callback: Handler) => void` | Unregister a callback |\n| `once` | `(type: string, callback: Handler) => void` | Register one-time callback |\n\n资料来源：[core/protocol/messenger/index.ts:1-80]()\n\n### Callback Registration Pattern\n\nThe messenger uses a callback-based pattern for handling incoming messages:\n\n```typescript\n// Register handler for specific message type\nmessenger.on('file-changed', async (message: FileChangedMessage) => {\n  await handleFileChange(message.payload);\n});\n\n// Register with correlation for request-response\nmessenger.on('context-response', async (message: ContextResponse) => {\n  const pending = pendingRequests.get(message.correlationId);\n  if (pending) {\n    pending.resolve(message.payload);\n    pendingRequests.delete(message.correlationId);\n  }\n});\n```\n\n资料来源：[core/protocol/messenger/index.ts:81-150]()\n\n### Message Flow\n\n```mermaid\nsequenceDiagram\n    participant IDE as IDE Extension\n    participant M as Messenger\n    participant Core as Continue Core\n    participant GUI as GUI Components\n    \n    IDE->>M: post(message)\n    M->>Core: dispatch(message)\n    Core->>M: post(response)\n    M->>IDE: deliver(response)\n    \n    GUI->>M: request(message)\n    M->>Core: dispatch(message)\n    Core-->>M: response\n    M-->>GUI: resolve Promise\n```\n\n## IPC Transport Layer\n\nThe IPC (Inter-Process Communication) layer provides the actual transport mechanism for messages between the Continue core and IDE extensions. The binary component contains platform-specific implementations.\n\n### IpcIde Implementation\n\nThe `IpcIde` class bridges the protocol layer with the underlying IPC mechanism:\n\n```typescript\nclass IpcIde implements IdeProtocol {\n  private transport: IpcTransport;\n  private pendingRequests: Map<string, PendingRequest>;\n  \n  constructor(transport: IpcTransport) {\n    this.transport = transport;\n    this.setupMessageHandler();\n  }\n  \n  private setupMessageHandler(): void {\n    this.transport.onMessage((message) => {\n      this.dispatchMessage(message);\n    });\n  }\n}\n```\n\n资料来源：[binary/src/IpcIde.ts:1-50]()\n\n### Transport Interface\n\n| Method | Description |\n|--------|-------------|\n| `send(message: Uint8Array): void` | Send binary-encoded message |\n| `onMessage(handler: MessageHandler): void` | Register incoming message handler |\n| `close(): void` | Clean up transport resources |\n| `isConnected(): boolean` | Check connection status |\n\n资料来源：[binary/src/IpcIde.ts:51-100]()\n\n### Message Serialization\n\nMessages are serialized using Protocol Buffers or similar binary format for efficient transport:\n\n```typescript\n// Encode outgoing message\nfunction encodeMessage(message: ProtocolMessage): Uint8Array {\n  return protobuf.encode(ProtocolMessageSchema, message);\n}\n\n// Decode incoming message\nfunction decodeMessage(buffer: Uint8Array): ProtocolMessage {\n  return protobuf.decode(ProtocolMessageSchema, buffer);\n}\n```\n\n资料来源：[binary/src/IpcIde.ts:101-150]()\n\n## Communication Patterns\n\n### Request-Response Pattern\n\nUsed for operations requiring a response before proceeding:\n\n```mermaid\ngraph TD\n    A[Caller] -->|1. Request| B[Messenger]\n    B -->|2. Dispatch| C[Handler]\n    C -->|3. Process| D[Result]\n    D -->|4. Response| B\n    B -->|5. Resolve| A\n```\n\n**Implementation:**\n\n```typescript\nasync function request<T>(\n  message: ProtocolMessage,\n  timeout: number = 30000\n): Promise<T> {\n  const correlationId = generateId();\n  const pending = new PendingPromise<T>();\n  \n  pendingRequests.set(correlationId, pending);\n  \n  setTimeout(() => {\n    if (pendingRequests.has(correlationId)) {\n      pending.reject(new TimeoutError());\n      pendingRequests.delete(correlationId);\n    }\n  }, timeout);\n  \n  messenger.post({ ...message, correlationId });\n  return pending.promise;\n}\n```\n\n资料来源：[core/protocol/messenger/index.ts:151-200]()\n\n### Event Subscription Pattern\n\nUsed for broadcasting state changes to multiple subscribers:\n\n```typescript\n// Subscribe to session updates\nmessenger.on('session-updated', (message: SessionUpdate) => {\n  updateSessionUI(message.payload);\n});\n\n// Subscribe to tool execution events\nmessenger.on('tool-call', (message: ToolCallMessage) => {\n  displayToolProgress(message.payload);\n});\n```\n\n资料来源：[core/protocol/messenger/index.ts:201-250]()\n\n### Streaming Pattern\n\nUsed for long-running operations with progress updates:\n\n```typescript\nmessenger.on('streaming-response', (message: StreamChunk) => {\n  // Accumulate chunks\n  buffer += message.chunk;\n  \n  // Update UI with partial content\n  updatePreview(buffer);\n  \n  if (message.isFinal) {\n    processComplete(buffer);\n  }\n});\n```\n\n## Error Handling\n\n### Error Message Types\n\n| Error Type | Code | Description |\n|------------|------|-------------|\n| `TransportError` | `1000-1099` | IPC transport failures |\n| `ProtocolError` | `2000-2099` | Malformed messages or protocol violations |\n| `TimeoutError` | `3000-3099` | Request timeouts |\n| `HandlerError` | `4000-4099` | Errors in message handlers |\n\n### Error Recovery\n\nThe messenger implements automatic retry for transient failures:\n\n```typescript\nasync function withRetry<T>(\n  operation: () => Promise<T>,\n  maxRetries: number = 3,\n  backoff: number = 1000\n): Promise<T> {\n  let lastError: Error;\n  \n  for (let attempt = 0; attempt < maxRetries; attempt++) {\n    try {\n      return await operation();\n    } catch (error) {\n      lastError = error;\n      if (!isRetryable(error)) throw error;\n      await sleep(backoff * Math.pow(2, attempt));\n    }\n  }\n  \n  throw lastError;\n}\n```\n\n资料来源：[core/protocol/messenger/index.ts:251-300]()\n\n## Security Considerations\n\n### Message Validation\n\nAll incoming messages undergo validation before processing:\n\n1. **Schema Validation** - Verify message structure matches protocol definition\n2. **Type Checking** - Ensure payload types are correct\n3. **Size Limits** - Reject messages exceeding maximum size\n4. **Source Verification** - Validate message origin\n\n```typescript\nfunction validateMessage(message: unknown): ValidationResult {\n  if (!isObject(message)) {\n    return { valid: false, error: 'Message must be an object' };\n  }\n  \n  if (!isString(message.messageId)) {\n    return { valid: false, error: 'Invalid messageId' };\n  }\n  \n  if (message.payload && !isValidPayload(message.payload)) {\n    return { valid: false, error: 'Invalid payload' };\n  }\n  \n  return { valid: true };\n}\n```\n\n资料来源：[core/protocol/core.ts:101-150]()\n\n## Configuration Options\n\n| Option | Type | Default | Description |\n|--------|------|---------|-------------|\n| `messageTimeout` | `number` | `30000` | Default timeout for request-response messages |\n| `maxRetries` | `number` | `3` | Maximum retry attempts for failed messages |\n| `maxMessageSize` | `number` | `10485760` | Maximum message size in bytes (10MB) |\n| `enableLogging` | `boolean` | `false` | Enable message logging for debugging |\n\n资料来源：[core/protocol/messenger/index.ts:301-350]()\n\n## Integration with Redux\n\nThe GUI components integrate the messenger with Redux for state management:\n\n```typescript\n// Middleware connects messenger events to Redux actions\nconst messengerMiddleware = (messenger: Messenger) => (store) => {\n  messenger.on('state-update', (message) => {\n    store.dispatch(updateState(message.payload));\n  });\n  \n  return (next) => (action) => {\n    const result = next(action);\n    if (isMessengerAction(action)) {\n      messenger.post(actionToMessage(action));\n    }\n    return result;\n  };\n};\n```\n\n资料来源：[core/protocol/messenger/index.ts:351-400]()\n\n## Summary\n\nThe Protocol and Communication system in Continue provides a robust, extensible messaging infrastructure that:\n\n- **Abstraction Layer**: Separates business logic from transport mechanisms\n- **Type Safety**: Uses TypeScript interfaces for compile-time safety\n- **Async-First**: Built on Promises for non-blocking operations\n- **Error Resilient**: Implements retry logic and timeout handling\n- **Extensible**: New message types can be added without modifying core infrastructure\n\nThis architecture enables Continue to maintain compatibility across multiple IDE platforms while providing a consistent, reliable communication channel between all components.\n\n---\n\n<a id='core-library'></a>\n\n## Core Library\n\n### 相关页面\n\n相关主题：[Model Providers and LLM Integration](#model-providers), [Configuration System](#config-system), [Chat and Agent System](#chat-system)\n\n<details>\n<summary>相关源码文件</summary>\n\n以下源码文件用于生成本页说明：\n\n- [core/llm/index.ts](https://github.com/continuedev/continue/blob/main/core/llm/index.ts)\n- [core/config/ConfigHandler.ts](https://github.com/continuedev/continue/blob/main/core/config/ConfigHandler.ts)\n- [core/indexing/CodebaseIndexer.ts](https://github.com/continuedev/continue/blob/main/core/indexing/CodebaseIndexer.ts)\n- [core/tools/index.ts](https://github.com/continuedev/continue/blob/main/core/tools/index.ts)\n- [core/context/retrieval/retrieval.ts](https://github.com/continuedev/continue/blob/main/core/context/retrieval/retrieval.ts)\n</details>\n\n# Core Library\n\nThe **Continue Core Library** (`/core`) is the central backend module of the Continue platform—a source-controlled AI coding assistant that runs as GitHub status checks on pull requests. It provides the foundational abstractions for LLM interaction, codebase indexing, tool execution, configuration management, and context retrieval.\n\n## Architecture Overview\n\n```mermaid\ngraph TD\n    A[Continue Core] --> B[LLM Module]\n    A --> C[Config Handler]\n    A --> D[Codebase Indexer]\n    A --> E[Tools System]\n    A --> F[Context Retrieval]\n    \n    B --> G[Model Abstractions]\n    C --> H[Profile Management]\n    D --> I[Code Chunking]\n    E --> J[Tool Registry]\n    F --> K[Vector Search]\n```\n\nThe Core Library serves as the backend engine powering both the GUI extensions (VS Code, JetBrains) and the standalone CLI (`cn`), enabling consistent AI-powered coding assistance across different IDE environments.\n\n## Module Breakdown\n\n### 1. LLM Module (`core/llm/index.ts`)\n\nThe LLM module provides the model abstraction layer for interacting with large language models.\n\n| Component | Purpose |\n|-----------|---------|\n| `ILLM` interface | Defines contract for all LLM implementations |\n| Model streaming | Handles real-time token generation |\n| Token counting | Tracks prompt and completion tokens |\n| Function calling | Supports structured output via tools |\n\n**资料来源：** [core/llm/index.ts](https://github.com/continuedev/continue/blob/main/core/llm/index.ts)\n\nThe module supports multiple model providers and abstracts away provider-specific implementation details, allowing configuration-driven model selection.\n\n### 2. Config Handler (`core/config/ConfigHandler.ts`)\n\nThe configuration system manages user preferences, model settings, and workspace-specific configurations.\n\n```mermaid\ngraph LR\n    A[config.ts] --> B[ConfigHandler]\n    B --> C[Profiles]\n    B --> D[Model Selection]\n    B --> E[Rule Processing]\n```\n\nKey responsibilities include:\n- Loading and validating configuration profiles\n- Managing model assignments by role (chat, autocomplete, edit)\n- Processing custom rules defined in `.continue/checks/`\n- Handling secret/API key management\n\n**资料来源：** [core/config/ConfigHandler.ts](https://github.com/continuedev/continue/blob/main/core/config/ConfigHandler.ts)\n\n### 3. Codebase Indexer (`core/indexing/CodebaseIndexer.ts`)\n\nThe indexer builds and maintains a searchable representation of the codebase for context-aware retrieval.\n\n| Feature | Description |\n|---------|-------------|\n| Code chunking | Splits files into semantically meaningful segments |\n| Language detection | Identifies programming languages for specialized processing |\n| Incremental updates | Re-indexes only changed portions of the codebase |\n| Embedded retrieval | Generates vector embeddings for similarity search |\n\nThe indexer operates asynchronously and integrates with the retrieval system to provide relevant code context during conversations.\n\n**资料来源：** [core/indexing/CodebaseIndexer.ts](https://github.com/continuedev/continue/blob/main/core/indexing/CodebaseIndexer.ts)\n\n### 4. Tools System (`core/tools/index.ts`)\n\nThe tools module defines the available actions that can be performed by the LLM during agent execution.\n\n**Core tool categories:**\n\n| Category | Examples |\n|----------|----------|\n| File operations | Read, write, edit, delete files |\n| Search | Grep, find, navigate code |\n| Git operations | Commit, branch, diff |\n| Shell commands | Execute terminal commands |\n| Custom checks | User-defined validation rules |\n\nTools follow a standardized interface that allows new tools to be registered dynamically through configuration.\n\n**资料来源：** [core/tools/index.ts](https://github.com/continuedev/continue/blob/main/core/tools/index.ts)\n\n### 5. Context Retrieval (`core/context/retrieval/retrieval.ts`)\n\nThe retrieval system fetches relevant code context to augment LLM prompts.\n\n```mermaid\ngraph TD\n    A[Query] --> B[Retrieval Engine]\n    B --> C[Vector Similarity]\n    B --> D[Keyword Matching]\n    C --> E[Hybrid Ranking]\n    D --> E\n    E --> F[Ranked Context]\n    F --> G[Prompt Augmentation]\n```\n\nRetrieval strategies include:\n- Dense vector embeddings via embeddings API\n- Sparse keyword matching\n- Hybrid approaches combining both methods\n- Filtering by file type, path patterns, or recency\n\n**资料来源：** [core/context/retrieval/retrieval.ts](https://github.com/continuedev/continue/blob/main/core/context/retrieval/retrieval.ts)\n\n## CLI Integration\n\nThe Core Library powers the `cn` CLI for headless AI checks in CI/CD pipelines:\n\n```bash\n# Install CLI\nnpm i -g @continuedev\n\n# Run headless check\ncn check --pr <pr-number>\n```\n\n**Headless mode behavior:**\n- Provides only final answers without explanations\n- Operates in JSON output mode when required\n- Includes commit signature generation in messages\n\n**资料来源：** [extensions/cli/src/systemMessage.ts](https://github.com/continuedev/continue/blob/main/extensions/cli/src/systemMessage.ts)\n\n## UI Components (Related)\n\nWhile the Core Library handles backend logic, GUI components provide the user interface:\n\n| Component | Purpose |\n|-----------|---------|\n| `IntroMessage` | Displays model and config status in terminal |\n| `ModelCard` | Renders model selection cards |\n| `ContextItemsPeek` | Shows context item previews |\n| `patchNestedMarkdown` | Handles nested markdown code block rendering |\n\n**资料来源：** [gui/src/components/StyledMarkdownPreview/utils/patchNestedMarkdown.ts](https://github.com/continuedev/continue/blob/main/gui/src/components/StyledMarkdownPreview/utils/patchNestedMarkdown.ts)\n\n## Data Flow\n\n```mermaid\nsequenceDiagram\n    participant User\n    participant GUI as GUI/CLI\n    participant Core as Core Library\n    participant LLM as LLM Provider\n    \n    User->>GUI: Query/Action\n    GUI->>Core: Process Request\n    Core->>Core: Load Config\n    Core->>Core: Retrieve Context\n    Core->>LLM: Send Prompt\n    LLM-->>Core: Response + Tool Calls\n    Core->>Core: Execute Tools\n    Core->>Core: Update Index\n    Core-->>GUI: Result\n    GUI-->>User: Display\n```\n\n## Summary\n\nThe Continue Core Library provides:\n\n1. **Model Abstraction** - Unified interface for multiple LLM providers\n2. **Configuration Management** - Flexible, profile-based settings\n3. **Code Intelligence** - Indexing and semantic search capabilities\n4. **Tool Execution** - Extensible action system for code operations\n5. **Context Retrieval** - Hybrid search for relevant code snippets\n\nThis modular architecture enables Continue to operate consistently across different IDEs (VS Code, JetBrains) and environments (GUI, CLI), while providing a foundation for source-controlled AI checks in CI/CD pipelines.\n\n---\n\n<a id='ide-extensions'></a>\n\n## IDE Extensions\n\n### 相关页面\n\n相关主题：[Protocol and Communication](#protocol-communication)\n\n<details>\n<summary>相关源码文件</summary>\n\n以下源码文件用于生成本页说明：\n\n- [extensions/vscode/src/extension.ts](https://github.com/continuedev/continue/blob/main/extensions/vscode/src/extension.ts)\n- [extensions/vscode/src/autocomplete/completionProvider.ts](https://github.com/continuedev/continue/blob/main/extensions/vscode/src/autocomplete/completionProvider.ts)\n- [extensions/intellij/src/main/kotlin/com/github/continuedev/continueintellijextension/continue/IntelliJIde.kt](https://github.com/continuedev/continue/blob/main/extensions/intellij/src/main/kotlin/com/github/continuedev/continueintellijextension/continue/IntelliJIde.kt)\n- [extensions/intellij/src/main/kotlin/com/github/continuedev/continueintellijextension/autocomplete/ContinueInlineCompletionProvider.kt](https://github.com/continuedev/continue/blob/main/extensions/intellij/src/main/kotlin/com/github/continuedev/continueintellijextension/autocomplete/ContinueInlineCompletionProvider.kt)\n- [gui/src/pages/config/sections/UserSettingsSection.tsx](https://github.com/continuedev/continue/blob/main/gui/src/pages/config/sections/UserSettingsSection.tsx)\n- [gui/src/pages/config/sections/ModelsSection.tsx](https://github.com/continuedev/continue/blob/main/gui/src/pages/config/sections/ModelsSection.tsx)\n- [extensions/cli/src/ui/IntroMessage.tsx](https://github.com/continuedev/continue/blob/main/extensions/cli/src/ui/IntroMessage.tsx)\n- [extensions/cli/src/systemMessage.ts](https://github.com/continuedev/continue/blob/main/extensions/cli/src/systemMessage.ts)\n</details>\n\n# IDE Extensions\n\n## Overview\n\nThe Continue project provides IDE extensions for Visual Studio Code and IntelliJ-based IDEs (IntelliJ IDEA, PyCharm, WebStorm, etc.). These extensions enable inline AI-powered code completion, chat interfaces, and context-aware code editing directly within the developer's IDE environment.\n\nThe extension architecture follows a unified design pattern where each IDE implementation shares common interfaces while adapting to platform-specific APIs. This allows consistent user experience across different development environments while leveraging native IDE capabilities.\n\n## Architecture Overview\n\n```mermaid\ngraph TD\n    subgraph VSCode_Extension\n        VSCE[VSCode Extension Entry] --> VSCA[Autocomplete Provider]\n        VSCE --> VSCM[Model Configuration]\n        VSCE --> VSCS[Settings Manager]\n    end\n\n    subgraph IntelliJ_Extension\n        IJ[IntelliJ Extension Entry] --> IJA[Inline Completion Provider]\n        IJ --> IJM[Model Configuration]\n        IJ --> IJS[Settings Manager]\n    end\n\n    subgraph Shared_Core\n        CORE[Core Library]\n        CORE --> GUI[GUI Components]\n        CORE --> API[Protocol/API Layer]\n    end\n\n    VSCE --> CORE\n    IJ --> CORE\n    VSCM --> GUI\n    IJM --> GUI\n```\n\n## VSCode Extension\n\n### Extension Entry Point\n\nThe VSCode extension is initialized in `extensions/vscode/src/extension.ts`. This file registers all VSCode-specific providers including:\n\n- **Completion Provider** for inline code completions\n- **Command Handlers** for IDE interactions\n- **Configuration Managers** for workspace and user settings\n- **Status Bar Items** for displaying model status and token usage\n\n资料来源：[extensions/vscode/src/extension.ts]()\n\n### Autocomplete System\n\nThe VSCode autocomplete functionality is implemented in `extensions/vscode/src/autocomplete/completionProvider.ts`. This provider intercepts typing events and sends requests to the configured autocomplete model.\n\nKey responsibilities include:\n\n| Component | Function |\n|-----------|----------|\n| `CompletionProvider` | Handles VSCode's `InlineCompletionItemProvider` interface |\n| Debouncing | Prevents excessive API calls during rapid typing |\n| Timeout Management | Limits request duration (configurable via `modelTimeout`) |\n| Context Gathering | Collects surrounding code context for better completions |\n\n资料来源：[extensions/vscode/src/autocomplete/completionProvider.ts]()\n\n### Settings Configuration\n\nThe VSCode extension exposes user-configurable settings through the IDE's settings UI. The frontend configuration is rendered in `gui/src/pages/config/sections/UserSettingsSection.tsx`.\n\n#### Autocomplete Settings\n\n| Setting | Type | Default | Description |\n|---------|------|---------|-------------|\n| `useAutocompleteMultilineCompletions` | enum | `\"auto\"` | Controls multiline completion behavior |\n| `modelTimeout` | number | - | Maximum timeout in milliseconds for autocomplete requests |\n| `debounceDelay` | number | - | Minimum delay before triggering autocomplete after changes |\n| `disableAutocompleteInFiles` | string | `\"\"` | Comma-separated glob patterns for disabling autocomplete |\n\n资料来源：[gui/src/pages/config/sections/UserSettingsSection.tsx]()\n\n### Model Selection\n\nThe `ModelsSection.tsx` component provides the UI for selecting models for different purposes:\n\n- **Chat Model**: Used for conversational interactions\n- **Autocomplete Model**: Used for inline code completions\n- **Edit Model**: Used for code transformations via the edit tool\n\nEach model role has associated documentation links and setup instructions. The component validates that the selected model is appropriate for its intended use case.\n\n资料来源：[gui/src/pages/config/sections/ModelsSection.tsx]()\n\n## IntelliJ Extension\n\n### Extension Structure\n\nThe IntelliJ extension is implemented in Kotlin, following JetBrains' plugin development conventions. The main IDE interface is defined in `IntelliJIde.kt`.\n\n```mermaid\nclassDiagram\n    class IntelliJIde {\n        +ideMessenger: IdeMessenger\n        +writeFile(path: string, content: string)\n        +readFile(path: string): string\n        +getOpenFiles(): string[]\n        +getCurrentFile(): string\n    }\n    \n    class ContinueInlineCompletionProvider {\n        +provideInlineCompletions()\n        +handleInlineCompletion()\n    }\n    \n    IntelliJIde --> ContinueInlineCompletionProvider\n```\n\n资料来源：[extensions/intellij/src/main/kotlin/com/github/continuedev/continueintellijextension/continue/IntelliJIde.kt]()\n\n### Inline Completion Provider\n\nThe `ContinueInlineCompletionProvider.kt` implements IntelliJ's `InlineCompletionProvider` interface, providing the same functionality as the VSCode autocomplete system but adapted for JetBrains IDE APIs.\n\nKey differences from VSCode implementation:\n\n| Aspect | VSCode | IntelliJ |\n|--------|--------|----------|\n| Language | TypeScript | Kotlin |\n| Provider Interface | `InlineCompletionItemProvider` | `InlineCompletionProvider` |\n| Configuration | JSON Settings | Extension Settings API |\n\n资料来源：[extensions/intellij/src/main/kotlin/com/github/continuedev/continueintellijextension/autocomplete/ContinueInlineCompletionProvider.kt]()\n\n### IDE-Specific Features\n\nThe IntelliJ extension includes JetBrains-specific adaptations:\n\n1. **Sidebar Management**: When the input box is focused and Escape is pressed, the sidebar closes via `closeSidebar` command\n2. **File Context**: Automatically adds the currently open file as context (configurable)\n3. **Experimental Tools**: Toggle for enabling development-stage features\n\n## CLI Extension\n\n### Command-Line Interface\n\nThe CLI extension (`extensions/cli/`) provides a terminal-based interface for Continue. While not a traditional IDE extension, it shares the same core library and provides similar functionality.\n\n### System Message Configuration\n\nThe `systemMessage.ts` file builds the system prompt for the CLI, incorporating:\n\n- **Context Variables**: Repository, branch, and directory information\n- **Commit Signature**: Optional footer for commit messages when `INUE_CLI_DISABLE_COMMIT_SIGNATURE` is not set\n- **Headless Mode**: Special instructions for CLI-only operation without interactive UI\n- **JSON Output**: Formatting instructions when structured output is requested\n\n```typescript\n// Headless mode instructions\nif (headless) {\n    systemMessage += `\nIMPORTANT: You are running in headless mode. Provide ONLY your final answer.\nDo not include explanations, reasoning, or additional commentary.`;\n}\n```\n\n资料来源：[extensions/cli/src/systemMessage.ts]()\n\n### Startup Display\n\nThe `IntroMessage.tsx` component renders the CLI welcome screen, showing:\n\n- Configuration name and selected model\n- Model capability warnings\n- MCP (Model Context Protocol) server status\n- Active rules and prompts\n\n资料来源：[extensions/cli/src/ui/IntroMessage.tsx]()\n\n## Cross-Platform Considerations\n\n### Unified Configuration Schema\n\nAll IDE extensions share a common configuration schema defined in the core library. This ensures that:\n\n- Settings configured in one IDE are portable to another\n- Model selections and preferences persist across IDE switches\n- Autocomplete behavior is consistent regardless of editor choice\n\n### Model Capability Validation\n\nThe `packages/config-yaml/src/validation.ts` file contains validation logic that warns users when selected models may not be suitable for certain tasks:\n\n```typescript\nif (nonAutocompleteModels.some((m) => modelName.includes(m)) &&\n    !modelName.includes(\"deepseek\") &&\n    !modelName.includes(\"codestral\") &&\n    !modelName.toLowerCase().includes(\"coder\")) {\n    errors.push({\n        fatal: false,\n        message: `${model.model} is not trained for tab-autocomplete...`\n    });\n}\n```\n\nModels like GPT-4, Claude, and Mistral are flagged as potentially unsuitable for autocomplete due to their training characteristics.\n\n资料来源：[packages/config-yaml/src/validation.ts]()\n\n## Summary\n\nThe IDE Extensions module provides platform-specific implementations for integrating Continue into popular development environments. Key components include:\n\n| Extension | Language | Primary Features |\n|-----------|----------|-----------------|\n| VSCode | TypeScript | Inline completions, sidebar chat, config UI |\n| IntelliJ | Kotlin | Inline completions, JetBrains-specific UI |\n| CLI | TypeScript | Terminal interface, headless mode |\n\nAll extensions share the same core library, ensuring consistent behavior and shared configuration management across the entire Continue ecosystem.\n\n---\n\n<a id='cli-tool'></a>\n\n## CLI Tool\n\n### 相关页面\n\n相关主题：[Chat and Agent System](#chat-system)\n\n<details>\n<summary>相关源码文件</summary>\n\n以下源码文件用于生成本页说明：\n\n- [extensions/cli/src/slashCommands.ts](https://github.com/continuedev/continue/blob/main/extensions/cli/src/slashCommands.ts)\n- [extensions/cli/src/systemMessage.ts](https://github.com/continuedev/continue/blob/main/extensions/cli/src/systemMessage.ts)\n- [extensions/cli/src/util/metadata.ts](https://github.com/continuedev/continue/blob/main/extensions/cli/src/util/metadata.ts)\n- [extensions/cli/src/ui/IntroMessage.tsx](https://github.com/continuedev/continue/blob/main/extensions/cli/src/ui/IntroMessage.tsx)\n- [extensions/cli/src/ui/JobsSelector.tsx](https://github.com/continuedev/continue/blob/main/extensions/cli/src/ui/JobsSelector.tsx)\n</details>\n\n# CLI Tool\n\nThe Continue CLI (`cn`) is a command-line interface tool that enables developers to interact with the Continue AI coding assistant directly from the terminal. It provides a comprehensive set of slash commands for chat interactions, job management, session handling, and configuration control.\n\n## Architecture Overview\n\nThe CLI tool is architected as a Node.js/TypeScript application with a modular component structure. It communicates with the IDE extension through IPC (Inter-Process Communication) mechanisms and supports both local and remote operation modes.\n\n```mermaid\ngraph TD\n    A[User Input] --> B[Slash Command Parser]\n    B --> C{Command Type}\n    C -->|Session| D[Session Commands]\n    C -->|Auth| E[Auth Commands]\n    C -->|Config| F[Config Commands]\n    C -->|Job| G[Job Commands]\n    C -->|Skill| H[Skill Commands]\n    D --> I[ServiceContainer]\n    E --> I\n    F --> I\n    G --> I\n    H --> I\n    I --> J[Telemetry Service]\n    I --> K[IDE Messenger]\n```\n\n## Slash Commands\n\nThe CLI supports an extensive set of slash commands that provide quick access to various functionality. Commands are triggered when the input starts with a `/` character.\n\n### Available Commands\n\n| Command | Handler | Description |\n|---------|---------|-------------|\n| `/clear` | `clearChatHistory` | Clears the current chat history |\n| `/exit` | `exitHandler` | Exits the CLI session |\n| `/config` | `openConfigSelector` | Opens the configuration selector |\n| `/login` | `handleLogin` | Initiates login flow |\n| `/logout` | `handleLogout` | Logs out the current user |\n| `/whoami` | `handleWhoami` | Displays current user info |\n| `/info` | `handleInfoSlashCommand` | Shows system information |\n| `/model` | `openModelSelector` | Opens the model selector |\n| `/compact` | `compactConversation` | Compacts conversation history |\n| `/mcp` | `openMcpSelector` | Opens MCP server selector |\n| `/resume` | `openSessionSelector` | Opens session recovery selector |\n| `/fork` | `handleFork` | Forks the current conversation |\n| `/title` | `handleTitle` | Generates/updates session title |\n| `/rename` | `handleTitle` | Alias for title command |\n| `/init` | `handleInit` | Initializes new session |\n| `/update` | `openUpdateSelector` | Opens update selector |\n| `/jobs` | `handleJobs` | Manages background jobs |\n| `/skills` | `handleSkills` | Lists available skills |\n| `/import-skill` | `handleImportSkill` | Imports a new skill |\n| `/sessions` | `handleSessions` | Manages saved sessions |\n| `/export` | `handleExport` | Exports session data |\n| `/import` | `handleImport` | Imports session data |\n\n资料来源：[extensions/cli/src/slashCommands.ts:1-50](https://github.com/continuedev/continue/blob/main/extensions/cli/src/slashCommands.ts)\n\n### Command Processing Flow\n\n```mermaid\nsequenceDiagram\n    participant User\n    participant Parser\n    participant Handler\n    participant ServiceContainer\n    participant IDE\n\n    User->>Parser: Input with \"/\" prefix\n    Parser->>Parser: Extract command and args\n    Parser->>Handler: Dispatch to appropriate handler\n    Handler->>ServiceContainer: Execute business logic\n    ServiceContainer->>IDE: Post/receive messages\n    IDE->>User: Display result\n```\n\nThe command parser validates input by checking if the first character is `/` and if the trimmed input starts with `/`:\n\n```typescript\nif (!input.startsWith(\"/\") || !input.trim().startsWith(\"/\")) {\n  return null;\n}\n```\n\n资料来源：[extensions/cli/src/slashCommands.ts:52-55](https://github.com/continuedev/continue/blob/main/extensions/cli/src/slashCommands.ts)\n\n## System Message Generation\n\nThe CLI dynamically constructs system messages based on the current configuration, operation mode, and user settings. This ensures the AI model receives contextually appropriate instructions.\n\n### Headless Mode\n\nWhen operating in headless mode, the system message includes instructions for concise responses:\n\n```\nIMPORTANT: You are running in headless mode. Provide ONLY your final answer to the user's question. Do not include explanations, reasoning, or additional commentary unless specifically requested. Be direct and concise.\n```\n\n资料来源：[extensions/cli/src/systemMessage.ts:1-20](https://github.com/continuedev/continue/blob/main/extensions/cli/src/systemMessage.ts)\n\n### JSON Output Mode\n\nWhen JSON format is requested, the system message instructs the model to return valid JSON:\n\n```\nIMPORTANT: You are operating in JSON output mode. Your final response MUST be valid JSON that can be parsed by JSON.parse(). The JSON should contain properties relevant to answer the user's question.\n```\n\n资料来源：[extensions/cli/src/systemMessage.ts:22-28](https://github.com/continuedev/continue/blob/main/extensions/cli/src/systemMessage.ts)\n\n### Commit Signature Context\n\nWhen commit signing is enabled and not disabled via environment variable, the system message includes commit signature context:\n\n```typescript\nif (!process.env.INUE_CLI_DISABLE_COMMIT_SIGNATURE) {\n  systemMessage += `\\n<context name=\"commitSignature\">When creating commits using any CLI or tool, include the following in the commit message:\nGenerated with [Continue](https://continue.dev)\n\nCo-Authored-By: Continue <noreply@continue.dev>\n</context>\\n`;\n}\n```\n\n资料来源：[extensions/cli/src/systemMessage.ts:1-10](https://github.com/continuedev/continue/blob/main/extensions/cli/src/systemMessage.ts)\n\n## User Rules Integration\n\nThe system message supports integration of user-defined rules through the `<context name=\"userRules\">` tag. Rules can be sourced from agent content or from processed command-line rules.\n\n```typescript\nif (agentContent || processedRules.length > 0) {\n  systemMessage += '\\n\\n<context name=\"userRules\">';\n  if (agentContent) {\n    systemMessage += `\\n${agentContent}`;\n  }\n  if (processedRules.length > 0) {\n    // Rules are added with appropriate separators\n  }\n}\n```\n\n资料来源：[extensions/cli/src/systemMessage.ts:30-40](https://github.com/continuedev/continue/blob/main/extensions/cli/src/systemMessage.ts)\n\n## Metadata Utilities\n\nThe CLI provides utility functions for extracting and processing conversation metadata.\n\n### Commit Diff Statistics\n\nThe `getDiffStats` function parses git diff output and calculates the number of line additions and deletions:\n\n```typescript\nexport function getDiffStats(diff: string): { additions: number; deletions: number }\n```\n\nIt skips metadata lines (file headers, hunk headers, binary file markers) and counts lines starting with `+` or `-`:\n\n资料来源：[extensions/cli/src/util/metadata.ts:1-30](https://github.com/continuedev/continue/blob/main/extensions/cli/src/util/metadata.ts)\n\n### Conversation Summary Extraction\n\nThe `extractSummary` function retrieves the last assistant message from conversation history:\n\n```typescript\nexport function extractSummary(\n  history: ChatHistoryItem[],\n  maxLength: number = 500,\n): string | undefined\n```\n\nIt iterates backwards through the history to find the most recent assistant message, truncates content that exceeds the specified maximum length, and handles both string and structured message content.\n\n资料来源：[extensions/cli/src/util/metadata.ts:38-75](https://github.com/continuedev/continue/blob/main/extensions/cli/src/util/metadata.ts)\n\n## UI Components\n\n### Intro Message\n\nThe `IntroMessage` component displays startup information when the CLI session begins:\n\n```mermaid\ngraph LR\n    A[Config Loaded] --> B[Display Config Name]\n    A --> C[Model Loaded?]\n    C -->|Yes| D[Display Model Name]\n    C -->|No| E[Show Loading...]\n    D --> F{Model Capable?}\n    F -->|No| G[Show Capability Warning]\n    F -->|Yes| H[Continue]\n    G --> I[Render MCP Prompts]\n    H --> I\n    I --> J[Render Rules]\n    J --> K[Render MCP Servers]\n```\n\nThe intro message renders in the terminal using the `ink` library and displays:\n\n- Configuration name\n- Model name (extracted from full model identifier)\n- Capability warnings for unsupported models\n- MCP prompts\n- Active rules\n- MCP server status\n\n资料来源：[extensions/cli/src/ui/IntroMessage.tsx:1-60](https://github.com/continuedev/continue/blob/main/extensions/cli/src/ui/IntroMessage.tsx)\n\n### Jobs Selector\n\nThe `JobsSelector` component displays a list of background jobs with their status:\n\n| Status | Color | Description |\n|--------|-------|-------------|\n| `running` | cyan | Job is currently executing |\n| `done` | green | Job completed successfully |\n| `error` | red | Job failed with an error |\n\nEach job entry shows:\n- Job ID\n- Status (padded for alignment)\n- Duration (formatted)\n- Command (truncated to 30 characters)\n\n```typescript\n<Text>\n  {job.command.substring(0, 30)}\n  {job.command.length > 30 ? \"...\" : \"\"}\n</Text>\n```\n\n资料来源：[extensions/cli/src/ui/JobsSelector.tsx:1-35](https://github.com/continuedev/continue/blob/main/extensions/cli/src/ui/JobsSelector.tsx)\n\n## Configuration Options\n\nThe CLI behavior can be customized through several configuration options:\n\n| Option | Type | Default | Description |\n|--------|------|---------|-------------|\n| `headless` | boolean | false | Run in headless mode with minimal output |\n| `format` | string | - | Output format (e.g., \"json\") |\n| `remoteUrl` | string | - | Connect to remote server |\n| `isRemoteMode` | boolean | false | Enable remote operation |\n\n## Installation\n\nThe Continue CLI can be installed through multiple methods:\n\n### macOS / Linux\n\n```bash\ncurl -fsSL https://raw.githubusercontent.com/continuedev/continue/main/extensions/cli/scripts/install.sh | bash\n```\n\n### Windows (PowerShell)\n\n```powershell\nirm https://raw.githubusercontent.com/continuedev/continue/main/extensions/cli/scripts/install.ps1 | iex\n```\n\n### npm\n\n```bash\nnpm i -g @continuedev\n```\n\n资料来源：[README.md](https://github.com/continuedev/continue/blob/main/README.md)\n\n## Related Files\n\nThe CLI tool integrates with several other components:\n\n- **IDE Extension**: Communicates via `ideMessenger` for UI updates and user interactions\n- **Service Container**: Central service for managing CLI operations and state\n- **Permission Manager**: Handles permission requests for sensitive operations\n- **Telemetry Service**: Records command usage and system metrics\n\n---\n\n<a id='model-providers'></a>\n\n## Model Providers and LLM Integration\n\n### 相关页面\n\n相关主题：[Core Library](#core-library), [Configuration System](#config-system)\n\n<details>\n<summary>相关源码文件</summary>\n\n以下源码文件用于生成本页说明：\n\n- [gui/src/pages/config/sections/ModelsSection.tsx](https://github.com/continuedev/continue/blob/main/gui/src/pages/config/sections/ModelsSection.tsx)\n- [gui/src/pages/AddNewModel/configs/providers.ts](https://github.com/continuedev/continue/blob/main/gui/src/pages/AddNewModel/configs/providers.ts)\n- [gui/src/pages/config/components/ModelRoleSelector.tsx](https://github.com/continuedev/continue/blob/main/gui/src/pages/config/components/ModelRoleSelector.tsx)\n- [extensions/cli/src/slashCommands.ts](https://github.com/continuedev/continue/blob/main/extensions/cli/src/slashCommands.ts)\n- [extensions/cli/src/ui/IntroMessage.tsx](https://github.com/continuedev/continue/blob/main/extensions/cli/src/ui/IntroMessage.tsx)\n- [gui/src/pages/stats.tsx](https://github.com/continuedev/continue/blob/main/gui/src/pages/stats.tsx)\n</details>\n\n# Model Providers and LLM Integration\n\n## Overview\n\nContinue's Model Providers and LLM Integration system provides a flexible, pluggable architecture for connecting to various Large Language Model (LLM) providers. The system supports multiple provider types including OpenAI, Anthropic, local models via Ollama and Llamafile, and cloud-hosted models through Replicate.\n\nThe integration layer abstracts away provider-specific differences, allowing users to configure and switch between different models while maintaining a consistent interface for AI-powered features across the Continue IDE and CLI.\n\n## Architecture\n\n### Model Provider Hierarchy\n\nThe system organizes providers hierarchically with support for multiple model roles:\n\n```mermaid\ngraph TD\n    A[Model Configuration] --> B[Model Provider]\n    A --> C[Model Role]\n    B --> D[OpenAI]\n    B --> E[Anthropic]\n    B --> F[Ollama]\n    B --> G[Llamafile]\n    B --> H[Replicate]\n    C --> I[Chat]\n    C --> J[Autocomplete]\n    C --> K[Edit]\n    C --> L[Apply]\n    C --> M[Embed]\n```\n\n### Supported Model Roles\n\nContinue defines five distinct model roles that serve different purposes within the IDE:\n\n| Role | Purpose | Description |\n|------|---------|-------------|\n| `chat` | General conversation | Primary model for user interactions and code assistance |\n| `autocomplete` | Inline completions | Used for real-time code completions as the user types |\n| `edit` | Code transformations | Transforms selected sections of code via inline edit commands |\n| `apply` | Code block application | Applies generated codeblocks to files |\n| `embed` | Semantic embeddings | Generates and queries embeddings for @codebase and @docs context providers |\n\n资料来源：[gui/src/pages/config/sections/ModelsSection.tsx:1-100]()\n\n## Provider Configuration\n\n### Local Providers\n\n#### Ollama\n\nOllama enables running open-source models locally. Configuration includes:\n\n- **Setup**: Download and run from [github.com/ollama/ollama](https://github.com/ollama/ollama)\n- **Tags**: Local, Open Source\n- **API Requirements**: Requires local Ollama server running\n\n#### Llamafile\n\nLlamafile provides another local model option using Mozilla's llamafile binary:\n\n```shell\nchmod +x ./llamafile\n./llamafile\n```\n\n资料来源：[gui/src/pages/AddNewModel/configs/providers.ts:1-50]()\n\n### Cloud Providers\n\n#### Replicate\n\nReplicate offers hosted access to open-source models via API:\n\n1. Obtain an API key from [replicate.com](https://replicate.com)\n2. Configure in Continue settings\n3. Select from available model presets\n\n| Parameter | Type | Required | Description |\n|-----------|------|----------|-------------|\n| `apiKey` | string | Yes | Replicate API authentication key |\n| `model` | string | No | Specific model preset selection |\n\n资料来源：[gui/src/pages/AddNewModel/configs/providers.ts:50-100]()\n\n## Model Selection Interface\n\n### Model Role Selector\n\nThe ModelRoleSelector component provides a UI for selecting models based on role:\n\n```mermaid\ngraph LR\n    A[ModelRoleSelector] --> B[Model List]\n    B --> C[Valid Models]\n    B --> D[Invalid Config Models]\n    C --> E[Selectable]\n    D --> F[Disabled with reason]\n```\n\nThe selector displays configuration status for each model:\n\n| Status | Message | Meaning |\n|--------|---------|---------|\n| `VALID` | (none) | Model is properly configured |\n| `INVALID` | (Invalid config) | General configuration error |\n| `MISSING_ENV_SECRET` | (Missing env secret) | Required environment secret not set |\n| `MISSING_API_KEY` | (Missing API Key) | API key not provided |\n\nModels are sorted alphabetically by title and display validation messages inline.\n\n资料来源：[gui/src/pages/config/components/ModelRoleSelector.tsx:1-80]()\n\n## User Settings and Configuration\n\n### Model-Related Preferences\n\nSeveral user settings control model behavior:\n\n| Setting | Description | Default |\n|---------|-------------|---------|\n| `useCurrentFileAsContext` | Add currently open file to new conversations | varies |\n| `codebaseToolCallingOnly` | @codebase uses only tool calling for retrieval | varies |\n| `continueAfterToolRejection` | Continue streaming after tool rejection | varies |\n| `enableExperimentalTools` | Enable experimental tool features | varies |\n\n### Model Switching\n\nThe `/model` slash command opens the model selector interface:\n\n```typescript\nmodel: () => ({ openModelSelector: true }),\n```\n\nThis allows quick switching between configured models without navigating through settings.\n\n资料来源：[extensions/cli/src/slashCommands.ts:1-50]()\n\n## Token Usage and Statistics\n\n### Stats Tracking\n\nContinue tracks token usage per model for monitoring and cost management:\n\n```mermaid\ngraph TD\n    A[Model Interaction] --> B[Track Tokens]\n    B --> C[Prompt Tokens]\n    B --> D[Generated Tokens]\n    C --> E[Daily Aggregation]\n    D --> E\n    E --> F[Per-Model Stats]\n```\n\nThe stats page displays:\n\n| Metric | Description | Format |\n|--------|-------------|--------|\n| `Day/Model` | Time period identifier | string |\n| `Generated Tokens` | Tokens produced by model | number with locale formatting |\n| `Prompt Tokens` | Input tokens sent to model | number with locale formatting |\n\nTokens are formatted using `toLocaleString()` for readability and can be copied as tables.\n\n资料来源：[gui/src/pages/stats.tsx:1-60]()\n\n## Model Capability Detection\n\n### IntroMessage Component\n\nThe IntroMessage component displays current model information in the CLI interface:\n\n```typescript\n{model ? (\n  <Text color=\"blue\">\n    <Text bold>Model:</Text>{\" \"}\n    <Text color=\"white\">{model.name.split(\"/\").pop()}</Text>\n  </Text>\n) : (\n  <Text color=\"blue\">\n    <Text bold>Model:</Text> <Text color=\"dim\">Loading...</Text>\n  </Text>\n)}\n```\n\nModel names are extracted from full identifiers by splitting on \"/\" and taking the last component, providing cleaner display names.\n\n### Capability Warnings\n\nWhen a selected model lacks required capabilities:\n\n```typescript\n{model && !modelCapable && (\n  <>\n    <ModelCapabilityWarning\n      modelName={model.name.split(\"/\").pop() || model.name}\n    />\n    <Text> </Text>\n  </>\n)}\n```\n\n资料来源：[extensions/cli/src/ui/IntroMessage.tsx:1-50]()\n\n## Configuration Validation\n\n### LLM Configuration Statuses\n\nThe system validates model configurations with the following statuses:\n\n```mermaid\nstateDiagram-v2\n    [*] --> Valid: All requirements met\n    [*] --> Invalid: Configuration error\n    [*] --> MissingEnvSecret: Env var not set\n    [*] --> MissingApiKey: API key not provided\n    Valid --> [*]\n    Invalid --> [*]: Fix config\n    MissingEnvSecret --> [*]: Set env secret\n    MissingApiKey --> [*]: Provide API key\n```\n\nConfiguration validation occurs at load time and updates dynamically when settings change.\n\n资料来源：[gui/src/pages/config/components/ModelRoleSelector.tsx:20-45]()\n\n## Integration with Context Providers\n\n### Embedding Models\n\nThe `embed` role is specifically designed for semantic search operations:\n\n- Generates embeddings for code and documentation\n- Powers the `@codebase` context provider\n- Enables the `@docs` context provider\n\nWhen no embedding model is configured, context providers fall back to alternative retrieval methods.\n\n## Summary\n\nContinue's Model Providers and LLM Integration system provides:\n\n1. **Multi-provider support** - OpenAI, Anthropic, Ollama, Llamafile, Replicate, and more\n2. **Role-based model selection** - Different models optimized for chat, completion, editing, application, and embedding\n3. **Local and cloud options** - Run models locally or leverage cloud APIs\n4. **Configuration validation** - Clear error messages for invalid or incomplete setups\n5. **Usage tracking** - Token usage statistics for cost monitoring\n6. **Capability detection** - Warnings when model capabilities don't match requirements\n\n---\n\n<a id='chat-system'></a>\n\n## Chat and Agent System\n\n### 相关页面\n\n相关主题：[Core Library](#core-library), [Model Providers and LLM Integration](#model-providers)\n\n<details>\n<summary>Related Source Files</summary>\n\n以下源码文件用于生成本页说明：\n\n- [core/tools/builtIn.ts](https://github.com/continuedev/continue/blob/main/core/tools/builtIn.ts)\n- [core/tools/callTool.ts](https://github.com/continuedev/continue/blob/main/core/tools/callTool.ts)\n- [extensions/cli/src/stream/streamChatResponse.ts](https://github.com/continuedev/continue/blob/main/extensions/cli/src/stream/streamChatResponse.ts)\n- [core/llm/streamChat.ts](https://github.com/continuedev/continue/blob/main/core/llm/streamChat.ts)\n- [extensions/cli/src/slashCommands.ts](https://github.com/continuedev/continue/blob/main/extensions/cli/src/slashCommands.ts)\n- [extensions/cli/src/systemMessage.ts](https://github.com/continuedev/continue/blob/main/extensions/cli/src/systemMessage.ts)\n- [gui/src/components/StyledMarkdownPreview/StepContainerPreToolbar/index.tsx](https://github.com/continuedev/continue/blob/main/gui/src/components/StyledMarkdownPreview/StepContainerPreToolbar/index.tsx)\n</details>\n\n# Chat and Agent System\n\n## Overview\n\nThe Chat and Agent System is the core interaction layer of the Continue platform, enabling users to communicate with AI models through a rich interface that supports tool execution, slash commands, streaming responses, and multi-modal interactions. The system bridges the gap between user input, LLM inference, and tool orchestration.\n\nThe architecture follows a modular design where the CLI handles core chat logic and streaming, while the GUI provides visual representations of messages, tool calls, and configuration panels.\n\n---\n\n## Architecture\n\n```mermaid\ngraph TD\n    subgraph \"User Interface Layer\"\n        GUI[GUI Components]\n        TUI[TUI Chat Interface]\n    end\n    \n    subgraph \"CLI Core Layer\"\n        SC[Slash Commands]\n        SM[System Message]\n        SCR[Stream Chat Response]\n        LM[Language Model]\n    end\n    \n    subgraph \"Tool Layer\"\n        BT[Built-in Tools]\n        CT[Call Tool]\n    end\n    \n    GUI --> TUI\n    TUI --> SC\n    TUI --> SM\n    TUI --> SCR\n    SCR --> LM\n    LM --> SCR\n    SC --> CT\n    CT --> BT\n```\n\n---\n\n## Core Components\n\n### Language Model Integration\n\nThe LLM integration is handled through `streamChat.ts`, which provides streaming capabilities for chat interactions.\n\n**Key Responsibilities:**\n\n- Managing chat completions with streaming support\n- Handling message formatting and context window management\n- Supporting multiple model providers through a unified interface\n\n**Stream Chat Functionality:**\n\n```typescript\n// Conceptual representation from core/llm/streamChat.ts\ninterface ChatMessage {\n  role: \"user\" | \"assistant\" | \"system\";\n  content: string | ContentBlock[];\n}\n\ninterface StreamOptions {\n  model: string;\n  messages: ChatMessage[];\n  temperature?: number;\n  maxTokens?: number;\n  tools?: ToolDefinition[];\n}\n```\n\n资料来源：[core/llm/streamChat.ts:1-50]()\n\n---\n\n### Stream Chat Response Processing\n\nThe `streamChatResponse.ts` file handles the processing of streaming responses from the LLM, managing the incremental rendering of AI outputs.\n\n**Processing Pipeline:**\n\n1. Receive chunks from the streaming endpoint\n2. Parse delta updates for content\n3. Handle special tokens (tool calls, thinking blocks)\n4. Aggregate content for final rendering\n\n资料来源：[extensions/cli/src/stream/streamChatResponse.ts:1-60]()\n\n---\n\n## Tool System\n\n### Built-in Tools\n\nThe `builtIn.ts` file defines the core set of tools available to the agent by default. These tools provide essential capabilities for file operations, code execution, and system interaction.\n\n**Tool Categories:**\n\n| Category | Tools | Purpose |\n|----------|-------|---------|\n| File Operations | Read, Edit, Write | File system interactions |\n| Code Execution | Bash, Python | Run commands and scripts |\n| Search | Grep, FileSearch | Find code and text |\n| Git | GitStatus, GitDiff | Version control operations |\n| Web | WebFetch | External resource retrieval |\n\n**Tool Definition Structure:**\n\n```typescript\ninterface ToolDefinition {\n  name: string;\n  description: string;\n  parameters: {\n    type: \"object\";\n    properties: Record<string, ToolParameter>;\n    required?: string[];\n  };\n}\n```\n\n资料来源：[core/tools/builtIn.ts:1-100]()\n\n### Tool Invocation\n\nThe `callTool.ts` module handles the actual execution of tools requested by the LLM. It manages the tool call lifecycle from invocation to result return.\n\n**Call Tool Workflow:**\n\n```mermaid\nsequenceDiagram\n    participant LLM as LLM Agent\n    participant CT as Call Tool\n    participant BT as Built-in Tools\n    participant UI as User Interface\n    \n    LLM->>CT: Request tool execution\n    CT->>BT: Validate and parse parameters\n    BT->>BT: Execute tool logic\n    BT-->>CT: Return result\n    CT-->>LLM: Format response\n    CT-->>UI: Update status\n```\n\n**Key Features:**\n\n- Parameter validation against tool schemas\n- Error handling and graceful degradation\n- Result formatting for LLM consumption\n- Permission checking based on tool policies\n\n资料来源：[core/tools/callTool.ts:1-80]()\n\n---\n\n## Slash Commands\n\nSlash commands provide quick access to system features directly from the chat input. The command handler is defined in `slashCommands.ts`.\n\n### Available Commands\n\n| Command | Action | Description |\n|---------|--------|-------------|\n| `/clear` | Clear chat history | Resets the conversation context |\n| `/exit` | Exit session | Closes the CLI interface |\n| `/config` | Open config selector | Navigate to configuration |\n| `/login` | Authenticate | Initiate login flow |\n| `/logout` | End session | Sign out current user |\n| `/whoami` | Show identity | Display current user info |\n| `/model` | Open model selector | Switch LLM provider |\n| `/compact` | Compact context | Reduce context window size |\n| `/mcp` | MCP server menu | Manage MCP servers |\n| `/resume` | Resume session | Open saved sessions |\n| `/fork` | Fork conversation | Create a branch |\n| `/title` | Generate title | Create chat title |\n| `/update` | Update selector | Check for updates |\n| `/jobs` | Job management | View background jobs |\n| `/skills` | Skill browser | Access skill library |\n| `/sessions` | Session manager | List/manage sessions |\n| `/export` | Export data | Export chat history |\n| `/import` | Import data | Import external data |\n\n### Command Processing\n\n```typescript\n// From extensions/cli/src/slashCommands.ts\nexport async function handleSlashCommands(\n  input: string,\n  assistant: AssistantConfig,\n  options?: { remoteUrl?: string; isRemoteMode?: boolean },\n): Promise<SlashCommandResult | null> {\n  // Only trigger slash commands if slash is the very first character\n  if (!input.startsWith(\"/\") || !input.trim().startsWith(\"/\")) {\n    return null;\n  }\n\n  const [command, ...args] = input.slice(1).split(\" \");\n  // ... command execution logic\n}\n```\n\n**Command Trigger Rules:**\n\n- The command must start with `/`\n- Slash must be the first character of the input\n- Arguments are passed after a space delimiter\n\n资料来源：[extensions/cli/src/slashCommands.ts:30-80]()\n\n---\n\n## System Message Generation\n\nThe `systemMessage.ts` file constructs the system prompt that provides context and instructions to the LLM.\n\n### System Message Components\n\n```typescript\n// From extensions/cli/src/systemMessage.ts\n\n// Commit signature injection\nif (!process.env.CONTINUE_CLI_DISABLE_COMMIT_SIGNATURE) {\n  systemMessage += `\\n<context name=\"commitSignature\">\nWhen creating commits using any CLI or tool, include the following in the commit message:\nGenerated with [Continue](https://continue.dev)\nCo-Authored-By: Continue <noreply@continue.dev>\n</context>\\n`;\n}\n\n// Headless mode instructions\nif (headless) {\n  systemMessage += `\nIMPORTANT: You are running in headless mode. \nProvide ONLY your final answer to the user's question. \nDo not include explanations, reasoning, or additional commentary.`;\n}\n\n// JSON output mode\nif (format === \"json\") {\n  systemMessage += `\nIMPORTANT: You are operating in JSON output mode. \nYour final response MUST be valid JSON.`;\n}\n```\n\n### User Rules Integration\n\n```typescript\nif (agentContent || processedRules.length > 0) {\n  systemMessage += '\\n\\n<context name=\"userRules\">';\n  \n  if (agentContent) {\n    systemMessage += `\\n${agentContent}`;\n  }\n  \n  if (processedRules.length > 0) {\n    // Add rule-specific instructions\n  }\n}\n```\n\n资料来源：[extensions/cli/src/systemMessage.ts:20-60]()\n\n---\n\n## User Interface Components\n\n### GUI Chat Interface\n\nThe GUI components render chat messages with rich formatting, tool call visualization, and interactive elements.\n\n**Message Rendering Pipeline:**\n\n1. Parse markdown content\n2. Handle nested code blocks\n3. Apply syntax highlighting\n4. Render tool call previews\n5. Display action buttons (Apply, Reject, Create File)\n\n```typescript\n// From gui/src/components/StyledMarkdownPreview/StepContainerPreToolbar/index.tsx\n// Rendering decision logic\nif (isTerminalCodeBlock(language, codeBlockContent)) {\n  return <RunInTerminalButton command={codeBlockContent} />;\n}\n\nif (fileExists || !relativeFilepath) {\n  return (\n    <ApplyActions\n      disableManualApply={disableManualApply}\n      applyState={toolCallApplyState ?? applyState}\n      onClickApply={onClickApply}\n      onClickAccept={() => handleDiffAction(\"accept\")}\n      onClickReject={() => handleDiffAction(\"reject\")}\n    />\n  );\n}\n\nreturn <CreateFileButton onClick={onClickApply} />;\n```\n\n### TUI Chat Interface\n\nThe Terminal User Interface provides a text-based chat experience with keyboard navigation and terminal-compatible rendering.\n\n```typescript\n// From extensions/cli/src/ui/TUIChat.tsx\n<BottomStatusBar\n  currentMode={services?.toolPermissions?.currentMode ?? \"normal\"}\n  remoteUrl={remoteUrl}\n  isRemoteMode={isRemoteMode}\n  services={services}\n  navState={navState}\n  navigateTo={navigateTo}\n  closeCurrentScreen={closeCurrentScreen}\n  contextPercentage={contextData?.percentage}\n  hasImageInClipboard={hasImageInClipboard}\n  isVerboseMode={isVerboseMode}\n  totalCost={getTotalSessionCost()}\n/>\n```\n\n---\n\n## Configuration Management\n\n### Model Configuration\n\nModels are configured per role, supporting different models for different tasks:\n\n| Role | Purpose | Example Models |\n|------|---------|----------------|\n| chat | General conversation | GPT-4, Claude, Llama |\n| autocomplete | Inline code completion | StarCoder, CodeGen |\n| edit | Code transformation | Specialized edit models |\n\n资料来源：[gui/src/pages/config/sections/ModelsSection.tsx:40-100]()\n\n### Tool Configuration\n\nTool policies control how and when tools can be executed:\n\n| Policy | Behavior |\n|--------|----------|\n| `allowedWithPermission` | Execute after user approval |\n| `allowedWithoutPermission` | Execute automatically |\n| `disabled` | Tool unavailable |\n\n```typescript\n// From gui/src/redux/slices/uiSlice.ts\ntoggleToolSetting: (state, action: PayloadAction<string>) => {\n  const setting = state.toolSettings[action.payload];\n\n  switch (setting) {\n    case \"allowedWithPermission\":\n      state.toolSettings[action.payload] = \"allowedWithoutPermission\";\n      break;\n    case \"allowedWithoutPermission\":\n      state.toolSettings[action.payload] = \"disabled\";\n      break;\n    case \"disabled\":\n      state.toolSettings[action.payload] = \"allowedWithPermission\";\n      break;\n  }\n}\n```\n\n---\n\n## Error Handling\n\nThe system includes comprehensive error handling for configuration issues and runtime failures.\n\n```typescript\n// From gui/src/components/config/FatalErrorNotice.tsx\nreturn (\n  <Alert type=\"error\" className=\"mx-2 my-1 px-2\">\n    <span>{`Error loading`}</span>{\" \"}\n    <span className=\"italic\">{displayName}</span>\n    {\". \"}\n    <span>{`Chat is disabled until a model is available.`}</span>\n    <div className=\"mt-2 flex flex-row flex-wrap items-center gap-x-3 gap-y-1.5\">\n      <div onClick={() => ideMessenger.post(\"openUrl\", \"https://docs.continue.dev/troubleshooting\")}>\n        Help\n      </div>\n      <div onClick={() => refreshProfiles(\"Clicked reload in fatal indicator\")}>\n        Reload\n      </div>\n    </div>\n  </Alert>\n);\n```\n\n---\n\n## Data Flow\n\n```mermaid\ngraph LR\n    subgraph \"Input Processing\"\n        UM[User Message]\n        SC[Slash Command]\n        TK[Tool Call]\n    end\n    \n    subgraph \"Processing\"\n        LLM[LLM Inference]\n        TM[Tool Manager]\n        SM[System Message]\n    end\n    \n    subgraph \"Output\"\n        STR[Stream Response]\n        UI[UI Update]\n        TS[Tool State]\n    end\n    \n    UM --> LLM\n    SC --> TM\n    TK --> TM\n    TM --> LLM\n    SM --> LLM\n    LLM --> STR\n    STR --> UI\n    TM --> TS\n```\n\n---\n\n## Summary\n\nThe Chat and Agent System in Continue provides a comprehensive framework for AI-assisted development. Key aspects include:\n\n1. **Modular Architecture**: Clear separation between UI, CLI core, and tool execution layers\n2. **Streaming Support**: Real-time response rendering for improved user experience\n3. **Tool Integration**: Built-in tools plus MCP server support for extensibility\n4. **Flexible Configuration**: Role-based model selection and granular tool policies\n5. **Slash Commands**: Quick access to system features from chat input\n6. **Error Resilience**: Graceful handling of configuration and runtime errors\n\nThe system is designed to be both user-friendly for developers and extensible for power users who need custom tool integrations.\n\n---\n\n<a id='autocomplete'></a>\n\n## Autocomplete System\n\n### 相关页面\n\n相关主题：[Core Library](#core-library), [Next Edit Feature](#next-edit)\n\n<details>\n<summary>相关源码文件</summary>\n\n以下源码文件用于生成本页说明：\n\n- [gui/src/pages/config/sections/UserSettingsSection.tsx](https://github.com/continuedev/continue/blob/main/gui/src/pages/config/sections/UserSettingsSection.tsx)\n- [gui/src/pages/config/sections/ModelsSection.tsx](https://github.com/continuedev/continue/blob/main/gui/src/pages/config/sections/ModelsSection.tsx)\n- [packages/config-yaml/src/validation.ts](https://github.com/continuedev/continue/blob/main/packages/config-yaml/src/validation.ts)\n- [gui/src/components/OnboardingLocalTab.tsx](https://github.com/continuedev/continue/blob/main/gui/src/components/OnboardingLocalTab.tsx)\n- [gui/src/components/console/Start.tsx](https://github.com/continuedev/continue/blob/main/gui/src/components/console/Start.tsx)\n- [extensions/cli/src/ui/IntroMessage.tsx](https://github.com/continuedev/continue/blob/main/extensions/cli/src/ui/IntroMessage.tsx)\n</details>\n\n# Autocomplete System\n\nThe Autocomplete System is a core feature of Continue that provides intelligent inline code completions as users type. It leverages fill-in-the-middle (FIM) techniques and contextual information from the codebase to generate relevant code suggestions, enhancing developer productivity across supported IDEs.\n\n## Overview\n\nThe autocomplete functionality in Continue operates through a multi-layered architecture that handles:\n\n- **Model Selection**: Dedicated models optimized for completion tasks\n- **Context Retrieval**: Fetching relevant code snippets from the codebase\n- **Template Processing**: Formatting prompts for the completion model\n- **Streaming Results**: Real-time delivery of completion suggestions\n\nThe system integrates with both VS Code and JetBrains extensions, providing a unified autocomplete experience across different development environments.\n\n## Model Configuration\n\n### Autocomplete Model Roles\n\nContinue distinguishes between different model roles in its configuration system. The autocomplete role specifically manages models used for inline code completions.\n\n| Role | Purpose | Documentation |\n|------|---------|---------------|\n| `autocomplete` | Used in inline code completions as you type | [Setup Guide](https://docs.continue.dev/features/tab-autocomplete) |\n| `chat` | Interactive chat conversations | Model configuration |\n| `edit` | Transforming selected code sections | Edit feature docs |\n\n资料来源：[gui/src/pages/config/sections/ModelsSection.tsx:1-50]()\n\n### Model Validation\n\nThe system validates that selected autocomplete models are appropriate for the task. Models not trained for tab-autocomplete generate a warning because they produce low-quality suggestions.\n\n```typescript\nconst nonAutocompleteModels = [\n  \"gpt-4\",\n  \"gpt-3.5\",\n  \"claude\",\n  \"mistral\",\n  \"instruct\",\n];\n\nif (\n  nonAutocompleteModels.some((m) => modelName.includes(m)) &&\n  !modelName.includes(\"deepseek\") &&\n  !modelName.includes(\"codestral\") &&\n  !modelName.toLowerCase().includes(\"coder\")\n) {\n  errors.push({\n    fatal: false,\n    message: `${model.model} is not trained for tab-autocomplete, and will result in low-quality suggestions.`,\n  });\n}\n```\n\n资料来源：[packages/config-yaml/src/validation.ts](https://github.com/continuedev/continue/blob/main/packages/config-yaml/src/validation.ts)\n\nThe validation excludes known code completion models like DeepSeek, Codestral, and models with \"coder\" in their name from this warning.\n\n### Local Model Setup\n\nFor local development, Continue supports downloading dedicated autocomplete models via Ollama:\n\n| Model Type | Purpose |\n|------------|---------|\n| Chat Model | General conversation and reasoning |\n| FIM Model | Fill-in-the-middle code completions |\n| Embeddings Model | Semantic search for context |\n\n资料来源：[gui/src/components/OnboardingLocalTab.tsx](https://github.com/continuedev/continue/blob/main/gui/src/components/OnboardingLocalTab.tsx)\n\n## Configuration Settings\n\n### User Settings Panel\n\nThe autocomplete behavior can be customized through several configuration options:\n\n| Setting | Type | Default | Range | Description |\n|---------|------|---------|-------|-------------|\n| Multiline Completions | select | \"auto\" | auto, always, never | Controls multiline completion behavior |\n| Autocomplete Timeout | number | varies | 100-5000ms | Maximum request time for autocomplete |\n| Autocomplete Debounce | number | varies | 0-2500ms | Delay before triggering autocomplete after changes |\n| Disable Patterns | input | empty | glob patterns | File patterns where autocomplete is disabled |\n\n资料来源：[gui/src/pages/config/sections/UserSettingsSection.tsx:1-80]()\n\n#### Multiline Completions Mode\n\nThe multiline setting controls how the system handles suggestions that span multiple lines:\n\n- **Auto**: System decides based on context\n- **Always**: Always show multiline completions\n- **Never**: Restrict to single-line suggestions\n\n#### Disable Autocomplete Patterns\n\nUsers can specify glob patterns to disable autocomplete in specific files:\n\n```\n**/*.(txt,md)\n```\n\n资料来源：[gui/src/pages/config/sections/UserSettingsSection.tsx](https://github.com/continuedev/continue/blob/main/gui/src/pages/config/sections/UserSettingsSection.tsx)\n\n## Autocomplete Request Flow\n\n### Request Structure\n\nWhen an autocomplete request is initiated, the system captures several key pieces of information:\n\n```mermaid\ngraph TD\n    A[User Types] --> B{Debounce Timer}\n    B -->|delay elapsed| C[Generate Prefix]\n    C --> D[Generate Suffix]\n    D --> E[Fetch Context]\n    E --> F[Build Prompt Template]\n    F --> G[Send to Model]\n    G --> H[Stream Completions]\n    H --> I[Render Suggestions]\n```\n\n### Request Payload Components\n\nThe autocomplete request includes the following components:\n\n| Component | Description |\n|-----------|-------------|\n| `prefix` | Text before the cursor position |\n| `suffix` | Text after the cursor position |\n| `options` | Model configuration and parameters |\n\n资料来源：[gui/src/components/console/Start.tsx](https://github.com/continuedev/continue/blob/main/gui/src/components/console/Start.tsx)\n\n### Timeout Handling\n\nThe autocomplete timeout setting (`modelTimeout`) defines the maximum time in milliseconds for:\n1. Sending the completion request to the model\n2. Receiving the response back\n\n```typescript\n<UserSetting\n  type=\"number\"\n  title=\"Autocomplete Timeout (ms)\"\n  description=\"Maximum time in milliseconds for autocomplete request/retrieval.\"\n  value={modelTimeout}\n  onChange={(val) => handleUpdate({ modelTimeout: val })}\n  min={100}\n  max={5000}\n/>\n```\n\n资料来源：[gui/src/pages/config/sections/UserSettingsSection.tsx](https://github.com/continuedev/continue/blob/main/gui/src/pages/config/sections/UserSettingsSection.tsx)\n\n## Debouncing Mechanism\n\nThe debounce delay controls how frequently autocomplete requests are triggered:\n\n```\nUser Input → Debounce Timer (delay) → Autocomplete Request\n     ↓\n   More Input → Timer Reset\n```\n\n| Debounce Value | Behavior |\n|----------------|----------|\n| 0 | No debouncing, immediate requests |\n| 500-1000ms | Standard debouncing for most use cases |\n| 2000+ ms | Heavy debouncing, reduced server load |\n\nThe minimum value of 0 disables debouncing entirely, while the maximum of 2500ms prevents excessive requests during rapid typing.\n\n资料来源：[gui/src/pages/config/sections/UserSettingsSection.tsx](https://github.com/continuedev/continue/blob/main/gui/src/pages/config/sections/UserSettingsSection.tsx)\n\n## Model Capability Warnings\n\nThe CLI intro message displays warnings when the selected model may not be optimal for autocomplete:\n\n```typescript\n{model && !modelCapable && (\n  <>\n    <ModelCapabilityWarning\n      modelName={model.name.split(\"/\").pop() || model.name}\n    />\n    <Text> </Text>\n  </>\n)}\n```\n\n资料来源：[extensions/cli/src/ui/IntroMessage.tsx](https://github.com/continuedev/continue/blob/main/extensions/cli/src/ui/IntroMessage.tsx)\n\nThese warnings help users understand when they should select a different model for better autocomplete performance.\n\n## Architecture Summary\n\n```mermaid\ngraph TD\n    subgraph \"Configuration Layer\"\n        A[User Settings] --> B[Model Selection]\n        B --> C[Validation]\n    end\n    \n    subgraph \"Request Processing\"\n        D[Debounce Service] --> E[Prefix/Suffix Extraction]\n        E --> F[Context Retrieval]\n        F --> G[Template Processing]\n    end\n    \n    subgraph \"Model Layer\"\n        G --> H[Autocomplete Model]\n        H --> I[Completion Streamer]\n    end\n    \n    subgraph \"UI Layer\"\n        I --> J[Suggestion Renderer]\n        C --> J\n    end\n```\n\n## JetBrains Integration\n\nThe autocomplete system has platform-specific behavior. In JetBrains IDEs, the model selector is rendered inline within the autocomplete UI, whereas VS Code uses a separate configuration panel.\n\n```typescript\n{/* Jetbrains has a model selector inline */}\n{!jetbrains && (\n  <>\n    <Divider />\n    <ModelRoleRow\n      role=\"edit\"\n      displayName=\"Edit\"\n      shortcut={<Shortcut>cmd I</Shortcut>}\n      ...\n    />\n  </>\n)}\n```\n\n资料来源：[gui/src/pages/config/sections/ModelsSection.tsx](https://github.com/continuedev/continue/blob/main/gui/src/pages/config/sections/ModelsSection.tsx)\n\n## Best Practices\n\n1. **Model Selection**: Use models specifically designed for code completion (e.g., StarCoder, CodeLlama, DeepSeek Coder)\n2. **Timeout Tuning**: Adjust timeout based on network latency and model response time\n3. **Debounce Optimization**: Balance between responsiveness and server load\n4. **Pattern Exclusion**: Disable autocomplete in documentation and text files to reduce noise\n\n## Related Documentation\n\n- [Tab Autocomplete Feature](https://docs.continue.dev/features/tab-autocomplete)\n- [Troubleshooting Guide](https://docs.continue.dev/troubleshooting)\n- [Continue Website](https://continue.dev)\n\n---\n\n<a id='next-edit'></a>\n\n## Next Edit Feature\n\n### 相关页面\n\n相关主题：[Autocomplete System](#autocomplete), [Chat and Agent System](#chat-system)\n\n<details>\n<summary>相关源码文件</summary>\n\n以下源码文件用于生成本页说明：\n\n- [core/nextEdit/NextEditProvider.ts](https://github.com/continuedev/continue/blob/main/core/nextEdit/NextEditProvider.ts)\n- [core/nextEdit/context/processNextEditData.ts](https://github.com/continuedev/continue/blob/main/core/nextEdit/context/processNextEditData.ts)\n- [core/nextEdit/providers/BaseNextEditProvider.ts](https://github.com/continuedev/continue/blob/main/core/nextEdit/providers/BaseNextEditProvider.ts)\n- [core/nextEdit/providers/InstinctNextEditProvider.ts](https://github.com/continuedev/continue/blob/main/core/nextEdit/providers/InstinctNextEditProvider.ts)\n</details>\n\n# Next Edit Feature\n\nThe **Next Edit Feature** is a code transformation system in Continue that enables users to modify selected code sections using AI-powered edit operations. It provides an alternative editing paradigm to inline completions, allowing for precise, intentional transformations of existing code.\n\n## Architecture Overview\n\nThe Next Edit system follows a provider-based architecture with a clear separation between the core provider interface and specific implementations.\n\n```mermaid\ngraph TD\n    A[Continue Core] --> B[NextEditProvider]\n    B --> C[BaseNextEditProvider]\n    C --> D[InstinctNextEditProvider]\n    B --> E[Other Providers]\n    \n    F[processNextEditData] --> B\n    G[User Selection] --> H[Edit Request]\n    H --> B\n    B --> I[Transformed Code]\n```\n\n## Core Components\n\n### NextEditProvider\n\nThe main interface that defines the contract for all edit providers. It handles the core logic for receiving edit requests and returning transformed code.\n\n| Property | Type | Description |\n|----------|------|-------------|\n| `name` | `string` | Provider identifier |\n| `getInsertion` | `method` | Handles code transformation logic |\n| `prepareContext` | `method` | Prepares context for edit operations |\n\n资料来源：[core/nextEdit/NextEditProvider.ts]()\n\n### BaseNextEditProvider\n\nAbstract base class providing common functionality for all edit providers. Implements shared logic for context preparation and response handling.\n\n| Method | Purpose |\n|--------|---------|\n| `getInsertion` | Core edit transformation method |\n| `prepareContext` | Context setup for edit operations |\n| `validateInput` | Input validation before processing |\n\n资料来源：[core/nextEdit/providers/BaseNextEditProvider.ts]()\n\n### InstinctNextEditProvider\n\nThe default implementation of the edit provider that uses Instinct (Continue's internal model interaction system) for code transformations. This provider handles the actual LLM-based edit generation.\n\n资料来源：[core/nextEdit/providers/InstinctNextEditProvider.ts]()\n\n## Data Processing Pipeline\n\n```mermaid\ngraph LR\n    A[User Code Selection] --> B[processNextEditData]\n    B --> C[Context Preparation]\n    C --> D[LLM Request]\n    D --> E[Edit Response]\n    E --> F[Validation]\n    F --> G[Transformed Code Output]\n```\n\n### processNextEditData\n\nHandles preprocessing of edit requests before they reach the provider. This module transforms raw user input into a format suitable for model inference.\n\n**Responsibilities:**\n- Parse and validate edit request payloads\n- Extract relevant code context from the selection\n- Format context for optimal model understanding\n\n资料来源：[core/nextEdit/context/processNextEditData.ts]()\n\n## Integration Points\n\n### Model Configuration\n\nThe edit feature requires a configured \"edit\" model role. This is visible in the model selection UI:\n\n```typescript\n// From ModelsSection.tsx - Edit model configuration\n<ModelRoleRow\n  role=\"edit\"\n  displayName=\"Edit\"\n  shortcut={<span className=\"text-2xs text-description-muted\">(<Shortcut>cmd I</Shortcut>)</span>}\n  description=\"Used to transform a selected section of code\"\n/>\n```\n\n资料来源：[gui/src/pages/config/sections/ModelsSection.tsx:85-107]()\n\n### UI Integration\n\nThe edit feature integrates with the main chat interface through the `ContinueInputBox` component and supports edit mode transitions.\n\n```typescript\n// Keyboard shortcut handling from editorConfig.ts\nEscape: () => {\n  if (isInEditRef.current) {\n    void dispatch(exitEdit({ openNewSession: false }));\n  }\n  return true;\n}\n```\n\n资料来源：[gui/src/components/mainInput/TipTapEditor/utils/editorConfig.ts:95-101]()\n\n### Session Management\n\nEdit operations are tracked within the session state for undo/history purposes:\n\n```typescript\n// From sessionSlice.ts\nupdateSessionMetadata: (\n  state,\n  { payload }: PayloadAction<{ sessionId: string } & Partial<BaseSessionMetadata>>\n) => {\n  state.allSessionMetadata = state.allSessionMetadata.map((session) =>\n    session.sessionId === payload.sessionId ? { ...session, ...payload } : session\n  );\n}\n```\n\n资料来源：[gui/src/redux/slices/sessionSlice.ts:89-102]()\n\n## Workflow Sequence\n\n```mermaid\nsequenceDiagram\n    participant User\n    participant Editor\n    participant NextEditProvider\n    participant LLM\n    participant Session\n\n    User->>Editor: Select code + Trigger edit\n    Editor->>NextEditProvider: Send edit request\n    NextEditProvider->>processNextEditData: Prepare context\n    processNextEditData->>NextEditProvider: Formatted context\n    NextEditProvider->>LLM: Request transformation\n    LLM->>NextEditProvider: Edit suggestions\n    NextEditProvider->>Editor: Display diff preview\n    User->>Editor: Accept/Reject\n    Editor->>Session: Record change\n```\n\n## Provider Implementation Pattern\n\n```typescript\n// Conceptual pattern from provider implementations\nclass CustomNextEditProvider extends BaseNextEditProvider {\n  async getInsertion(\n    code: string,\n    focusedIndex: number,\n    preContext: string,\n    postContext: string\n  ): Promise<EditResult> {\n    // Custom implementation\n    const context = this.prepareContext(code, preContext, postContext);\n    const response = await this.model.complete(context);\n    return this.processResponse(response);\n  }\n}\n```\n\n## Related Systems\n\n| System | Relationship |\n|--------|--------------|\n| Chat System | Edit requests flow through chat interface |\n| Model Selection | Requires configured \"edit\" model |\n| Session History | Edit operations are tracked in session state |\n| Slash Commands | `/edit` command triggers edit mode |\n\n资料来源：[extensions/cli/src/slashCommands.ts]()\n\n## Configuration Requirements\n\n1. **Model Setup**: An \"edit\" role model must be configured in Continue's config\n2. **API Access**: Model must support code transformation capabilities\n3. **Context Window**: Sufficient context length for code + instructions\n\n## Error Handling\n\nThe system includes error boundaries for graceful failure handling:\n\n```typescript\n// From Chat.tsx - Error boundary wrapping\n<ErrorBoundary\n  FallbackComponent={fallbackRender}\n  onReset={() => { dispatch(newSession()); }}\n>\n  {renderChatHistoryItem(item, index)}\n</ErrorBoundary>\n```\n\n资料来源：[gui/src/pages/gui/Chat.tsx:142-147]()\n\n## Summary\n\nThe Next Edit Feature provides a structured approach to AI-assisted code transformation within Continue. By leveraging a provider-based architecture, it maintains flexibility for different LLM backends while providing consistent edit capabilities. The feature integrates with the broader Continue system including model configuration, session management, and the chat interface.\n\n---\n\n<a id='config-system'></a>\n\n## Configuration System\n\n### 相关页面\n\n相关主题：[Core Library](#core-library)\n\n<details>\n<summary>相关源码文件</summary>\n\n以下源码文件用于生成本页说明：\n\n- [gui/src/components/config/FatalErrorNotice.tsx](https://github.com/continuedev/continue/blob/main/gui/src/components/config/FatalErrorNotice.tsx)\n- [gui/src/pages/config/sections/ModelsSection.tsx](https://github.com/continuedev/continue/blob/main/gui/src/pages/config/sections/ModelsSection.tsx)\n- [gui/src/pages/config/components/ModelRoleSelector.tsx](https://github.com/continuedev/continue/blob/main/gui/src/pages/config/components/ModelRoleSelector.tsx)\n- [gui/src/pages/config/sections/IndexingSettingsSection.tsx](https://github.com/continuedev/continue/blob/main/gui/src/pages/config/sections/IndexingSettingsSection.tsx)\n- [gui/src/redux/slices/sessionSlice.ts](https://github.com/continuedev/continue/blob/main/gui/src/redux/slices/sessionSlice.ts)\n- [extensions/cli/src/systemMessage.ts](https://github.com/continuedev/continue/blob/main/extensions/cli/src/systemMessage.ts)\n- [extensions/cli/src/slashCommands.ts](https://github.com/continuedev/continue/blob/main/extensions/cli/src/slashCommands.ts)\n- [extensions/cli/src/ui/IntroMessage.tsx](https://github.com/continuedev/continue/blob/main/extensions/cli/src/ui/IntroMessage.tsx)\n</details>\n\n# Configuration System\n\n## Overview\n\nThe Continue Configuration System manages all settings, model configurations, and behavioral parameters for the Continue AI coding assistant. It supports multiple configuration sources, profile-based configurations, and real-time UI-based configuration management.\n\nThe system is responsible for:\n- Loading and validating configuration from YAML files\n- Managing multiple configuration profiles\n- Storing and persisting model settings\n- Providing configuration state to the UI\n- Supporting runtime configuration updates\n\n```mermaid\ngraph TD\n    A[Configuration Sources] --> B[Config Loader]\n    B --> C[Config Validator]\n    C --> D[Config Store]\n    D --> E[UI Components]\n    D --> F[CLI Components]\n    D --> G[Core Engine]\n```\n\n## Configuration Sources\n\n### YAML Configuration Files\n\nThe primary configuration source is a `config.yaml` file located in the user's configuration directory. This file defines models, slash commands, rules, MCP servers, and other settings.\n\n资料来源：[gui/src/pages/config/sections/IndexingSettingsSection.tsx:1-50]()\n\n### Profile-Based Configuration\n\nContinue supports multiple configuration profiles, allowing users to maintain separate configurations for different use cases or environments. Profiles can be selected and managed through the UI.\n\n资料来源：[extensions/cli/src/slashCommands.ts:20-30]()\n\n### Runtime Configuration\n\nThe system also maintains runtime configuration state through Redux, allowing dynamic updates without requiring file changes.\n\n资料来源：[gui/src/redux/slices/sessionSlice.ts:1-80]()\n\n## Configuration State Management\n\n### Redux Store Integration\n\nThe configuration state is managed through Redux slices, with the session slice handling configuration-related state updates.\n\n```typescript\n// Configuration state structure (simplified)\ninterface ConfigState {\n  config: ContinuercJson;\n  selectedModelByRole: {\n    chat?: string;\n    autocomplete?: string;\n    edit?: string;\n  };\n  modelsByRole: {\n    [role: string]: any[];\n  };\n}\n```\n\n资料来源：[gui/src/redux/slices/sessionSlice.ts:50-100]()\n\n### Configuration Updates\n\nThe system supports optimistic updates for session metadata and configuration changes:\n\n```typescript\nupdateSessionMetadata: (state, { payload }) => {\n  state.allSessionMetadata = state.allSessionMetadata.map((session) =>\n    session.sessionId === payload.sessionId\n      ? { ...session, ...payload }\n      : session\n  );\n}\n```\n\n资料来源：[gui/src/redux/slices/sessionSlice.ts:60-75]()\n\n## Model Configuration\n\n### Model Roles\n\nContinue supports multiple model roles with distinct purposes:\n\n| Role | Purpose | UI Component |\n|------|---------|--------------|\n| `chat` | Main conversation model | ModelRoleSelector |\n| `autocomplete` | Inline code completions | ModelRoleSelector |\n| `edit` | Code transformation/ editing | ModelRoleSelector |\n\n资料来源：[gui/src/pages/config/sections/ModelsSection.tsx:1-80]()\n\n### Model Selection UI\n\nThe model selection interface displays available models with their configuration status:\n\n```typescript\n// Model configuration status checks\nconst isConfigInvalid = option.configurationStatus !== LLMConfigurationStatuses.VALID;\nlet invalidMessage = \"(Invalid config)\";\nif (option.configurationStatus === LLMConfigurationStatuses.MISSING_ENV_SECRET) {\n  invalidMessage = \"(Missing env secret)\";\n}\nif (option.configurationStatus === LLMConfigurationStatuses.MISSING_API_KEY) {\n  invalidMessage = \"(Missing API Key)\";\n}\n```\n\n资料来源：[gui/src/pages/config/components/ModelRoleSelector.tsx:1-50]()\n\n### Model Display\n\nModels are sorted alphabetically and displayed with provider icons and status indicators:\n\n```typescript\n{[...models]\n  .sort((a, b) => a.title.localeCompare(b.title))\n  .map((option, idx) => (\n    <ListboxOption key={idx} value={option.title}>\n      <CubeIcon />\n      <span className=\"line-clamp-1 truncate\">\n        {option.title}\n        {isConfigInvalid && <span className=\"ml-2 text-[10px] italic\">\n          {invalidMessage}\n        </span>}\n      </span>\n    </ListboxOption>\n  ))}\n```\n\n资料来源：[gui/src/pages/config/components/ModelRoleSelector.tsx:60-80]()\n\n## Configuration Error Handling\n\n### Fatal Error Notice\n\nWhen configuration loading fails, a fatal error UI is displayed that disables chat functionality until resolved:\n\n```typescript\nconst FatalErrorNotice = ({ configLoading, refreshProfiles }) => {\n  return (\n    <Alert type=\"error\" className=\"mx-2 my-1 px-2\">\n      <span>Error loading</span>{\" \"}\n      <span className=\"italic\">{displayName}</span>\n      <span>. Chat is disabled until a model is available.</span>\n      <div className=\"mt-2 flex flex-row flex-wrap items-center gap-x-3 gap-y-1.5\">\n        <div onClick={() => ideMessenger.post(\"openUrl\", \"https://docs.continue.dev/troubleshooting\")}>\n          Help\n        </div>\n        <div onClick={() => refreshProfiles(\"Clicked reload in fatal indicator\")}>\n          Reload\n        </div>\n      </div>\n    </Alert>\n  );\n};\n```\n\n资料来源：[gui/src/components/config/FatalErrorNotice.tsx:1-45]()\n\n### Configuration Reload Flow\n\nThe configuration can be reloaded through the UI, which triggers a fresh load attempt:\n\n```mermaid\ngraph TD\n    A[User Clicks Reload] --> B[refreshProfiles Action]\n    B --> C[Config Loader]\n    C --> D{Load Success?}\n    D -->|Yes| E[Update Redux State]\n    D -->|No| F[Show Fatal Error]\n    E --> G[Enable Chat]\n    F --> H[Disable Chat]\n```\n\n资料来源：[gui/src/components/config/FatalErrorNotice.tsx:30-40]()\n\n## CLI Configuration System\n\n### System Message Generation\n\nThe CLI builds system messages that incorporate configuration settings for AI model interactions:\n\n```typescript\nfunction buildSystemMessage(config, options) {\n  let systemMessage = \"\";\n\n  // Commit signature configuration\n  if (!process.env.CONTINUE_CLI_DISABLE_COMMIT_SIGNATURE) {\n    systemMessage += `\\n<context name=\"commitSignature\">\nGenerated with [Continue](https://continue.dev)\nCo-Authored-By: Continue <noreply@continue.dev>\n</context>\\n`;\n  }\n\n  // Headless mode instructions\n  if (headless) {\n    systemMessage += `IMPORTANT: You are running in headless mode. \n    Provide ONLY your final answer.`;\n  }\n\n  // JSON format instructions\n  if (format === \"json\") {\n    systemMessage += `IMPORTANT: You are operating in JSON output mode. \n    Your final response MUST be valid JSON.`;\n  }\n\n  return systemMessage;\n}\n```\n\n资料来源：[extensions/cli/src/systemMessage.ts:1-50]()\n\n### Slash Command Configuration\n\nConfiguration can be accessed via slash commands in the CLI:\n\n```typescript\nconst slashCommands = {\n  config: () => {\n    return { openConfigSelector: true };\n  },\n  model: () => ({ openModelSelector: true }),\n  mcp: () => ({ openMcpSelector: true }),\n  // ... other commands\n};\n```\n\n资料来源：[extensions/cli/src/slashCommands.ts:15-25]()\n\n### Intro Message Display\n\nThe CLI displays current configuration status including model and config information:\n\n```typescript\nconst IntroMessage = ({ config, model, modelCapable }) => {\n  return (\n    <Box>\n      {config && (\n        <Text color=\"blue\">\n          <Text bold>Config:</Text> <Text color=\"white\">{config.name}</Text>\n        </Text>\n      )}\n      {model ? (\n        <Text color=\"blue\">\n          <Text bold>Model:</Text>{\" \"}\n          <Text color=\"white\">{model.name.split(\"/\").pop()}</Text>\n        </Text>\n      ) : (\n        <Text color=\"blue\">\n          <Text bold>Model:</Text> <Text color=\"dim\">Loading...</Text>\n        </Text>\n      )}\n    </Box>\n  );\n};\n```\n\n资料来源：[extensions/cli/src/ui/IntroMessage.tsx:1-40]()\n\n## Configuration Sections\n\n### Indexing Settings\n\nThe configuration system includes indexing settings (now deprecated):\n\n```typescript\nfunction IndexingSettingsSection() {\n  const config = useAppSelector((state) => state.config.config);\n  const disableIndexing = config.disableIndexing ?? false;\n\n  return (\n    <Alert type=\"warning\" className=\"mb-6\">\n      <div className=\"space-y-4\">\n        <div>\n          <div className=\"-mt-0.5 text-sm font-medium\">\n            Indexing has been deprecated\n          </div>\n        </div>\n      </div>\n    </Alert>\n  );\n}\n```\n\n资料来源：[gui/src/pages/config/sections/IndexingSettingsSection.tsx:20-40]()\n\n### Help Section\n\nThe configuration UI includes a help section with links to documentation and troubleshooting resources:\n\n```typescript\n<ConfigRow\n  title=\"Token usage\"\n  description=\"Daily token usage across models\"\n  icon={TableCellsIcon}\n  onClick={() => navigate(ROUTES.STATS)}\n/>\n```\n\n资料来源：[gui/src/pages/config/sections/HelpSection.tsx:1-40]()\n\n## Configuration Flow Diagram\n\n```mermaid\nsequenceDiagram\n    participant User\n    participant UI as UI Components\n    participant Redux as Redux Store\n    participant Loader as Config Loader\n    participant FS as File System\n    \n    User->>UI: Changes configuration\n    UI->>Redux: Dispatch updateSessionMetadata\n    Redux-->>UI: Update state\n    User->>UI: Trigger reload\n    UI->>Loader: loadConfig()\n    Loader->>FS: Read config.yaml\n    FS-->>Loader: Return config\n    Loader->>Loader: Validate config\n    Loader-->>Redux: Update config state\n    Redux-->>UI: Refresh UI\n```\n\n## Configuration Validation\n\n### Model Configuration Status\n\nThe system validates model configurations and reports various status conditions:\n\n| Status | Description | User Message |\n|--------|-------------|--------------|\n| `VALID` | Configuration is valid | None shown |\n| `MISSING_ENV_SECRET` | Environment secret not set | \"(Missing env secret)\" |\n| `MISSING_API_KEY` | API key not configured | \"(Missing API Key)\" |\n| Other | General invalid state | \"(Invalid config)\" |\n\n资料来源：[gui/src/pages/config/components/ModelRoleSelector.tsx:20-35]()\n\n## Related Documentation\n\n- [Continue Documentation](https://docs.continue.dev)\n- [Troubleshooting Guide](https://docs.continue.dev/troubleshooting)\n- [Configuration Reference](https://continue.dev/walkthrough)\n- [Changelog](https://changelog.continue.dev)\n\n---\n\n---\n\n## Doramagic 踩坑日志\n\n项目：continuedev/continue\n\n摘要：发现 38 个潜在踩坑项，其中 8 个为 high/blocking；最高优先级：安装坑 - 来源证据：\"Headers not defined\" -> This time with logs。\n\n## 1. 安装坑 · 来源证据：\"Headers not defined\" -> This time with logs\n\n- 严重度：high\n- 证据强度：source_linked\n- 发现：GitHub 社区证据显示该项目存在一个安装相关的待验证问题：\"Headers not defined\" -> This time with logs\n- 对用户的影响：可能增加新用户试用和生产接入成本。\n- 建议检查：来源问题仍为 open，Pack Agent 需要复核是否仍影响当前版本。\n- 防护动作：不得脱离来源链接放大为确定性结论；需要标注适用版本和复核状态。\n- 证据：community_evidence:github | cevd_0c0fcf2034914a62a81e3374d2d7d0a5 | https://github.com/continuedev/continue/issues/12163 | 来源讨论提到 linux 相关条件，需在安装/试用前复核。\n\n## 2. 配置坑 · 来源证据：(sse) mcp restarts breaks communication\n\n- 严重度：high\n- 证据强度：source_linked\n- 发现：GitHub 社区证据显示该项目存在一个配置相关的待验证问题：(sse) mcp restarts breaks communication\n- 对用户的影响：可能增加新用户试用和生产接入成本。\n- 建议检查：来源问题仍为 open，Pack Agent 需要复核是否仍影响当前版本。\n- 防护动作：不得脱离来源链接放大为确定性结论；需要标注适用版本和复核状态。\n- 证据：community_evidence:github | cevd_5cb9bc1f10144ec7948f8784dc25bf12 | https://github.com/continuedev/continue/issues/12431 | 来源类型 github_issue 暴露的待验证使用条件。\n\n## 3. 配置坑 · 来源证据：Continue fails to stablish mTLS connection with server\n\n- 严重度：high\n- 证据强度：source_linked\n- 发现：GitHub 社区证据显示该项目存在一个配置相关的待验证问题：Continue fails to stablish mTLS connection with server\n- 对用户的影响：可能增加新用户试用和生产接入成本。\n- 建议检查：来源问题仍为 open，Pack Agent 需要复核是否仍影响当前版本。\n- 防护动作：不得脱离来源链接放大为确定性结论；需要标注适用版本和复核状态。\n- 证据：community_evidence:github | cevd_01756ce44b144ad4a34ea4c5e99e339b | https://github.com/continuedev/continue/issues/8470 | 来源讨论提到 windows 相关条件，需在安装/试用前复核。\n\n## 4. 配置坑 · 来源证据：Session Workspace always assumes first workspace folder\n\n- 严重度：high\n- 证据强度：source_linked\n- 发现：GitHub 社区证据显示该项目存在一个配置相关的待验证问题：Session Workspace always assumes first workspace folder\n- 对用户的影响：可能增加新用户试用和生产接入成本。\n- 建议检查：来源问题仍为 open，Pack Agent 需要复核是否仍影响当前版本。\n- 防护动作：不得脱离来源链接放大为确定性结论；需要标注适用版本和复核状态。\n- 证据：community_evidence:github | cevd_1e621c9277a64cb581639efad6bd6b73 | https://github.com/continuedev/continue/issues/4539 | 来源类型 github_issue 暴露的待验证使用条件。\n\n## 5. 安全/权限坑 · 失败模式：security_permissions: PR checks do not create fresh agent sessions on PR updates; stale task IDs re-post to new com...\n\n- 严重度：high\n- 证据强度：source_linked\n- 发现：Developers should check this security_permissions risk before relying on the project: PR checks do not create fresh agent sessions on PR updates; stale task IDs re-post to new commits\n- 对用户的影响：Developers may expose sensitive permissions or credentials: PR checks do not create fresh agent sessions on PR updates; stale task IDs re-post to new commits\n- 建议检查：Before packaging this project, run the relevant install/config/quickstart check for: PR checks do not create fresh agent sessions on PR updates; stale task IDs re-post to new commits. Context: Observed when using macos\n- 防护动作：Do not recommend enabling privileged or credential-bearing paths until the source-backed risk is reviewed: https://github.com/continuedev/continue/issues/12382\n- 证据：failure_mode_cluster:github_issue | fmev_07a692e49161cfab20c466f1f0b957d1 | https://github.com/continuedev/continue/issues/12382 | PR checks do not create fresh agent sessions on PR updates; stale task IDs re-post to new commits\n\n## 6. 安全/权限坑 · 来源证据：Autocomplete for code is not working\n\n- 严重度：high\n- 证据强度：source_linked\n- 发现：GitHub 社区证据显示该项目存在一个安全/权限相关的待验证问题：Autocomplete for code is not working\n- 对用户的影响：可能影响授权、密钥配置或安全边界。\n- 建议检查：来源问题仍为 open，Pack Agent 需要复核是否仍影响当前版本。\n- 防护动作：不得脱离来源链接放大为确定性结论；需要标注适用版本和复核状态。\n- 证据：community_evidence:github | cevd_e1f8ba56c9b140e8a61444ad20181cd9 | https://github.com/continuedev/continue/issues/12298 | 来源讨论提到 windows 相关条件，需在安装/试用前复核。\n\n## 7. 安全/权限坑 · 来源证据：Make the user settings declarative\n\n- 严重度：high\n- 证据强度：source_linked\n- 发现：GitHub 社区证据显示该项目存在一个安全/权限相关的待验证问题：Make the user settings declarative\n- 对用户的影响：可能影响升级、迁移或版本选择。\n- 建议检查：来源问题仍为 open，Pack Agent 需要复核是否仍影响当前版本。\n- 防护动作：不得脱离来源链接放大为确定性结论；需要标注适用版本和复核状态。\n- 证据：community_evidence:github | cevd_a5ebcd3bc7be4e949b45351fd5b06873 | https://github.com/continuedev/continue/issues/5438 | 来源讨论提到 api key 相关条件，需在安装/试用前复核。\n\n## 8. 安全/权限坑 · 来源证据：Responses from LLM's running from LocalAI are not detected\n\n- 严重度：high\n- 证据强度：source_linked\n- 发现：GitHub 社区证据显示该项目存在一个安全/权限相关的待验证问题：Responses from LLM's running from LocalAI are not detected\n- 对用户的影响：可能影响授权、密钥配置或安全边界。\n- 建议检查：来源问题仍为 open，Pack Agent 需要复核是否仍影响当前版本。\n- 防护动作：不得脱离来源链接放大为确定性结论；需要标注适用版本和复核状态。\n- 证据：community_evidence:github | cevd_8aabc2e01f8646e2a22d44dbcad4ad99 | https://github.com/continuedev/continue/issues/10113 | 来源讨论提到 python 相关条件，需在安装/试用前复核。\n\n## 9. 安装坑 · 失败模式：installation: Support Context7\n\n- 严重度：medium\n- 证据强度：source_linked\n- 发现：Developers should check this installation risk before relying on the project: Support Context7\n- 对用户的影响：Developers may fail before the first successful local run: Support Context7\n- 建议检查：Before packaging this project, run the relevant install/config/quickstart check for: Support Context7. Context: Observed during installation or first-run setup.\n- 防护动作：State this as source-backed community evidence, not as Doramagic reproduction.\n- 证据：failure_mode_cluster:github_issue | fmev_dd0ac59c1a237815f09072ae6ef6bbbd | https://github.com/continuedev/continue/issues/5836 | Support Context7\n\n## 10. 安装坑 · 失败模式：installation: Terminal commands fail when `$SHELL` is set to `tcsh` due to hardcoded `-l` shell flag\n\n- 严重度：medium\n- 证据强度：source_linked\n- 发现：Developers should check this installation risk before relying on the project: Terminal commands fail when `$SHELL` is set to `tcsh` due to hardcoded `-l` shell flag\n- 对用户的影响：Developers may fail before the first successful local run: Terminal commands fail when `$SHELL` is set to `tcsh` due to hardcoded `-l` shell flag\n- 建议检查：Before packaging this project, run the relevant install/config/quickstart check for: Terminal commands fail when `$SHELL` is set to `tcsh` due to hardcoded `-l` shell flag. Context: Observed when using linux\n- 防护动作：State this as source-backed community evidence, not as Doramagic reproduction.\n- 证据：failure_mode_cluster:github_issue | fmev_682551ed88a7b527a9f1207eecd2a1c6 | https://github.com/continuedev/continue/issues/12378 | Terminal commands fail when `$SHELL` is set to `tcsh` due to hardcoded `-l` shell flag\n\n## 11. 安装坑 · 失败模式：installation: The extension doesn't show up at all.\n\n- 严重度：medium\n- 证据强度：source_linked\n- 发现：Developers should check this installation risk before relying on the project: The extension doesn't show up at all.\n- 对用户的影响：Developers may fail before the first successful local run: The extension doesn't show up at all.\n- 建议检查：Before packaging this project, run the relevant install/config/quickstart check for: The extension doesn't show up at all.. Context: Observed when using windows\n- 防护动作：State this as source-backed community evidence, not as Doramagic reproduction.\n- 证据：failure_mode_cluster:github_issue | fmev_1a64ddb9e5d24401d02abdc046398202 | https://github.com/continuedev/continue/issues/1312 | The extension doesn't show up at all.\n\n## 12. 安装坑 · 来源证据：Support Context7\n\n- 严重度：medium\n- 证据强度：source_linked\n- 发现：GitHub 社区证据显示该项目存在一个安装相关的待验证问题：Support Context7\n- 对用户的影响：可能增加新用户试用和生产接入成本。\n- 建议检查：来源显示可能已有修复、规避或版本变化，说明书中必须标注适用版本。\n- 防护动作：不得脱离来源链接放大为确定性结论；需要标注适用版本和复核状态。\n- 证据：community_evidence:github | cevd_fa7735b8be6f4ac9840501ac84eb7e9a | https://github.com/continuedev/continue/issues/5836 | 来源类型 github_issue 暴露的待验证使用条件。\n\n## 13. 安装坑 · 来源证据：Terminal commands fail when `$SHELL` is set to `tcsh` due to hardcoded `-l` shell flag\n\n- 严重度：medium\n- 证据强度：source_linked\n- 发现：GitHub 社区证据显示该项目存在一个安装相关的待验证问题：Terminal commands fail when `$SHELL` is set to `tcsh` due to hardcoded `-l` shell flag\n- 对用户的影响：可能增加新用户试用和生产接入成本。\n- 建议检查：来源问题仍为 open，Pack Agent 需要复核是否仍影响当前版本。\n- 防护动作：不得脱离来源链接放大为确定性结论；需要标注适用版本和复核状态。\n- 证据：community_evidence:github | cevd_823b2e0ae1ad49a78bd0a45d39a3099a | https://github.com/continuedev/continue/issues/12378 | 来源讨论提到 linux 相关条件，需在安装/试用前复核。\n\n## 14. 安装坑 · 来源证据：The extension doesn't show up at all.\n\n- 严重度：medium\n- 证据强度：source_linked\n- 发现：GitHub 社区证据显示该项目存在一个安装相关的待验证问题：The extension doesn't show up at all.\n- 对用户的影响：可能增加新用户试用和生产接入成本。\n- 建议检查：来源显示可能已有修复、规避或版本变化，说明书中必须标注适用版本。\n- 防护动作：不得脱离来源链接放大为确定性结论；需要标注适用版本和复核状态。\n- 证据：community_evidence:github | cevd_5d86070fe9d941ad9a44f1d09464b582 | https://github.com/continuedev/continue/issues/1312 | 来源讨论提到 windows 相关条件，需在安装/试用前复核。\n\n## 15. 配置坑 · 失败模式：configuration: \"Headers not defined\" -> This time with logs\n\n- 严重度：medium\n- 证据强度：source_linked\n- 发现：Developers should check this configuration risk before relying on the project: \"Headers not defined\" -> This time with logs\n- 对用户的影响：Developers may misconfigure credentials, environment, or host setup: \"Headers not defined\" -> This time with logs\n- 建议检查：Before packaging this project, run the relevant install/config/quickstart check for: \"Headers not defined\" -> This time with logs. Context: Observed when using linux\n- 防护动作：State this as source-backed community evidence, not as Doramagic reproduction.\n- 证据：failure_mode_cluster:github_issue | fmev_b136994a3d92fcde3550fdd83c67a11a | https://github.com/continuedev/continue/issues/12163 | \"Headers not defined\" -> This time with logs\n\n## 16. 配置坑 · 失败模式：configuration: 400 Error\n\n- 严重度：medium\n- 证据强度：source_linked\n- 发现：Developers should check this configuration risk before relying on the project: 400 Error\n- 对用户的影响：Developers may misconfigure credentials, environment, or host setup: 400 Error\n- 建议检查：Before packaging this project, run the relevant install/config/quickstart check for: 400 Error. Context: Observed when using python, windows\n- 防护动作：State this as source-backed community evidence, not as Doramagic reproduction.\n- 证据：failure_mode_cluster:github_issue | fmev_17872a6a18ab3c162f5282a7fd2f789c | https://github.com/continuedev/continue/issues/5079 | 400 Error\n\n## 17. 配置坑 · 失败模式：configuration: Autocomplete for code is not working\n\n- 严重度：medium\n- 证据强度：source_linked\n- 发现：Developers should check this configuration risk before relying on the project: Autocomplete for code is not working\n- 对用户的影响：Developers may misconfigure credentials, environment, or host setup: Autocomplete for code is not working\n- 建议检查：Before packaging this project, run the relevant install/config/quickstart check for: Autocomplete for code is not working. Context: Observed when using windows, linux\n- 防护动作：State this as source-backed community evidence, not as Doramagic reproduction.\n- 证据：failure_mode_cluster:github_issue | fmev_fef11e43c412193f501c74f86fb0aad1 | https://github.com/continuedev/continue/issues/12298 | Autocomplete for code is not working\n\n## 18. 配置坑 · 失败模式：configuration: Config error with ollama cloud\n\n- 严重度：medium\n- 证据强度：source_linked\n- 发现：Developers should check this configuration risk before relying on the project: Config error with ollama cloud\n- 对用户的影响：Developers may misconfigure credentials, environment, or host setup: Config error with ollama cloud\n- 建议检查：Before packaging this project, run the relevant install/config/quickstart check for: Config error with ollama cloud. Context: Observed when using macos\n- 防护动作：State this as source-backed community evidence, not as Doramagic reproduction.\n- 证据：failure_mode_cluster:github_issue | fmev_f69ce9c50b7a535cc6c3d0dfe8741e08 | https://github.com/continuedev/continue/issues/12370 | Config error with ollama cloud\n\n## 19. 配置坑 · 失败模式：configuration: Continue fails to stablish mTLS connection with server\n\n- 严重度：medium\n- 证据强度：source_linked\n- 发现：Developers should check this configuration risk before relying on the project: Continue fails to stablish mTLS connection with server\n- 对用户的影响：Developers may misconfigure credentials, environment, or host setup: Continue fails to stablish mTLS connection with server\n- 建议检查：Before packaging this project, run the relevant install/config/quickstart check for: Continue fails to stablish mTLS connection with server. Context: Observed when using windows, linux\n- 防护动作：State this as source-backed community evidence, not as Doramagic reproduction.\n- 证据：failure_mode_cluster:github_issue | fmev_e6794a57836185b70c8cb8cf953cce5d | https://github.com/continuedev/continue/issues/8470 | Continue fails to stablish mTLS connection with server\n\n## 20. 配置坑 · 失败模式：configuration: Docs: Document .continue/configs directory support\n\n- 严重度：medium\n- 证据强度：source_linked\n- 发现：Developers should check this configuration risk before relying on the project: Docs: Document .continue/configs directory support\n- 对用户的影响：Developers may misconfigure credentials, environment, or host setup: Docs: Document .continue/configs directory support\n- 建议检查：Before packaging this project, run the relevant install/config/quickstart check for: Docs: Document .continue/configs directory support. Context: Source discussion did not expose a precise runtime context.\n- 防护动作：State this as source-backed community evidence, not as Doramagic reproduction.\n- 证据：failure_mode_cluster:github_issue | fmev_8c3e2cabb835c3b4e9fc6876e70792a6 | https://github.com/continuedev/continue/issues/12377 | Docs: Document .continue/configs directory support\n\n## 21. 配置坑 · 失败模式：configuration: Docs: Document dynamic model fetching feature\n\n- 严重度：medium\n- 证据强度：source_linked\n- 发现：Developers should check this configuration risk before relying on the project: Docs: Document dynamic model fetching feature\n- 对用户的影响：Developers may misconfigure credentials, environment, or host setup: Docs: Document dynamic model fetching feature\n- 建议检查：Before packaging this project, run the relevant install/config/quickstart check for: Docs: Document dynamic model fetching feature. Context: Source discussion did not expose a precise runtime context.\n- 防护动作：State this as source-backed community evidence, not as Doramagic reproduction.\n- 证据：failure_mode_cluster:github_issue | fmev_b5dbe8c0463df066db3ca81b090d9c01 | https://github.com/continuedev/continue/issues/12376 | Docs: Document dynamic model fetching feature\n\n## 22. 配置坑 · 失败模式：configuration: Docs: Update Inception provider documentation for Mercury-2 model\n\n- 严重度：medium\n- 证据强度：source_linked\n- 发现：Developers should check this configuration risk before relying on the project: Docs: Update Inception provider documentation for Mercury-2 model\n- 对用户的影响：Developers may misconfigure credentials, environment, or host setup: Docs: Update Inception provider documentation for Mercury-2 model\n- 建议检查：Before packaging this project, run the relevant install/config/quickstart check for: Docs: Update Inception provider documentation for Mercury-2 model. Context: Source discussion did not expose a precise runtime context.\n- 防护动作：State this as source-backed community evidence, not as Doramagic reproduction.\n- 证据：failure_mode_cluster:github_issue | fmev_4db8e14e6818419363054a9e7800eda2 | https://github.com/continuedev/continue/issues/12375 | Docs: Update Inception provider documentation for Mercury-2 model\n\n## 23. 配置坑 · 失败模式：configuration: Login failed with \"Not authenticated (user missing)\" after account setup\n\n- 严重度：medium\n- 证据强度：source_linked\n- 发现：Developers should check this configuration risk before relying on the project: Login failed with \"Not authenticated (user missing)\" after account setup\n- 对用户的影响：Developers may misconfigure credentials, environment, or host setup: Login failed with \"Not authenticated (user missing)\" after account setup\n- 建议检查：Before packaging this project, run the relevant install/config/quickstart check for: Login failed with \"Not authenticated (user missing)\" after account setup. Context: Observed when using windows\n- 防护动作：State this as source-backed community evidence, not as Doramagic reproduction.\n- 证据：failure_mode_cluster:github_issue | fmev_9ec05668c8e8d77892783222181856ee | https://github.com/continuedev/continue/issues/12424 | Login failed with \"Not authenticated (user missing)\" after account setup\n\n## 24. 配置坑 · 失败模式：configuration: Make the user settings declarative\n\n- 严重度：medium\n- 证据强度：source_linked\n- 发现：Developers should check this configuration risk before relying on the project: Make the user settings declarative\n- 对用户的影响：Developers may misconfigure credentials, environment, or host setup: Make the user settings declarative\n- 建议检查：Before packaging this project, run the relevant install/config/quickstart check for: Make the user settings declarative. Context: Observed when using docker\n- 防护动作：State this as source-backed community evidence, not as Doramagic reproduction.\n- 证据：failure_mode_cluster:github_issue | fmev_1b32aeb88d229dcc498a21a15392073b | https://github.com/continuedev/continue/issues/5438 | Make the user settings declarative\n\n## 25. 配置坑 · 失败模式：configuration: Responses from LLM's running from LocalAI are not detected\n\n- 严重度：medium\n- 证据强度：source_linked\n- 发现：Developers should check this configuration risk before relying on the project: Responses from LLM's running from LocalAI are not detected\n- 对用户的影响：Developers may misconfigure credentials, environment, or host setup: Responses from LLM's running from LocalAI are not detected\n- 建议检查：Before packaging this project, run the relevant install/config/quickstart check for: Responses from LLM's running from LocalAI are not detected. Context: Observed when using python, windows, linux\n- 防护动作：State this as source-backed community evidence, not as Doramagic reproduction.\n- 证据：failure_mode_cluster:github_issue | fmev_a997891d991d463b08f586863fa4f190 | https://github.com/continuedev/continue/issues/10113 | Responses from LLM's running from LocalAI are not detected\n\n## 26. 配置坑 · 失败模式：configuration: v1.2.22-vscode\n\n- 严重度：medium\n- 证据强度：source_linked\n- 发现：Developers should check this configuration risk before relying on the project: v1.2.22-vscode\n- 对用户的影响：Upgrade or migration may change expected behavior: v1.2.22-vscode\n- 建议检查：Before packaging this project, run the relevant install/config/quickstart check for: v1.2.22-vscode. Context: Source discussion did not expose a precise runtime context.\n- 防护动作：State this as source-backed community evidence, not as Doramagic reproduction.\n- 证据：failure_mode_cluster:github_release | fmev_16f5a708793a12c3918b445e3b11b41d | https://github.com/continuedev/continue/releases/tag/v1.2.22-vscode | v1.2.22-vscode\n\n## 27. 能力坑 · 能力判断依赖假设\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:644686905 | https://github.com/continuedev/continue | README/documentation is current enough for a first validation pass.\n\n## 28. 维护坑 · 来源证据：Unresponsive - continue.focusCOntntinueinput already registered by continre Profile 1079\n\n- 严重度：medium\n- 证据强度：source_linked\n- 发现：GitHub 社区证据显示该项目存在一个维护/版本相关的待验证问题：Unresponsive - continue.focusCOntntinueinput already registered by continre Profile 1079\n- 对用户的影响：可能阻塞安装或首次运行。\n- 建议检查：来源显示可能已有修复、规避或版本变化，说明书中必须标注适用版本。\n- 防护动作：不得脱离来源链接放大为确定性结论；需要标注适用版本和复核状态。\n- 证据：community_evidence:github | cevd_7a29505886e9431898131d920bb87efa | https://github.com/continuedev/continue/issues/7801 | 来源讨论提到 python 相关条件，需在安装/试用前复核。\n\n## 29. 维护坑 · 维护活跃度未知\n\n- 严重度：medium\n- 证据强度：source_linked\n- 发现：未记录 last_activity_observed。\n- 对用户的影响：新项目、停更项目和活跃项目会被混在一起，推荐信任度下降。\n- 建议检查：补 GitHub 最近 commit、release、issue/PR 响应信号。\n- 防护动作：维护活跃度未知时，推荐强度不能标为高信任。\n- 证据：evidence.maintainer_signals | github_repo:644686905 | https://github.com/continuedev/continue | last_activity_observed missing\n\n## 30. 安全/权限坑 · 下游验证发现风险项\n\n- 严重度：medium\n- 证据强度：source_linked\n- 发现：no_demo\n- 对用户的影响：下游已经要求复核，不能在页面中弱化。\n- 建议检查：进入安全/权限治理复核队列。\n- 防护动作：下游风险存在时必须保持 review/recommendation 降级。\n- 证据：downstream_validation.risk_items | github_repo:644686905 | https://github.com/continuedev/continue | no_demo; severity=medium\n\n## 31. 安全/权限坑 · 存在评分风险\n\n- 严重度：medium\n- 证据强度：source_linked\n- 发现：no_demo\n- 对用户的影响：风险会影响是否适合普通用户安装。\n- 建议检查：把风险写入边界卡，并确认是否需要人工复核。\n- 防护动作：评分风险必须进入边界卡，不能只作为内部分数。\n- 证据：risks.scoring_risks | github_repo:644686905 | https://github.com/continuedev/continue | no_demo; severity=medium\n\n## 32. 安全/权限坑 · 来源证据：400 Error\n\n- 严重度：medium\n- 证据强度：source_linked\n- 发现：GitHub 社区证据显示该项目存在一个安全/权限相关的待验证问题：400 Error\n- 对用户的影响：可能影响授权、密钥配置或安全边界。\n- 建议检查：来源显示可能已有修复、规避或版本变化，说明书中必须标注适用版本。\n- 防护动作：不得脱离来源链接放大为确定性结论；需要标注适用版本和复核状态。\n- 证据：community_evidence:github | cevd_6519f0021d474af78d0178c14d9b7fc2 | https://github.com/continuedev/continue/issues/5079 | 来源讨论提到 python 相关条件，需在安装/试用前复核。\n\n## 33. 安全/权限坑 · 来源证据：Docs: Document .continue/configs directory support\n\n- 严重度：medium\n- 证据强度：source_linked\n- 发现：GitHub 社区证据显示该项目存在一个安全/权限相关的待验证问题：Docs: Document .continue/configs directory support\n- 对用户的影响：可能影响授权、密钥配置或安全边界。\n- 建议检查：来源问题仍为 open，Pack Agent 需要复核是否仍影响当前版本。\n- 防护动作：不得脱离来源链接放大为确定性结论；需要标注适用版本和复核状态。\n- 证据：community_evidence:github | cevd_4891275e3958456796a83007de577da8 | https://github.com/continuedev/continue/issues/12377 | 来源类型 github_issue 暴露的待验证使用条件。\n\n## 34. 安全/权限坑 · 来源证据：Login failed with \"Not authenticated (user missing)\" after account setup\n\n- 严重度：medium\n- 证据强度：source_linked\n- 发现：GitHub 社区证据显示该项目存在一个安全/权限相关的待验证问题：Login failed with \"Not authenticated (user missing)\" after account setup\n- 对用户的影响：可能影响授权、密钥配置或安全边界。\n- 建议检查：来源问题仍为 open，Pack Agent 需要复核是否仍影响当前版本。\n- 防护动作：不得脱离来源链接放大为确定性结论；需要标注适用版本和复核状态。\n- 证据：community_evidence:github | cevd_0e03b5d122e341b3b58881a925595069 | https://github.com/continuedev/continue/issues/12424 | 来源讨论提到 windows 相关条件，需在安装/试用前复核。\n\n## 35. 安全/权限坑 · 来源证据：PR checks do not create fresh agent sessions on PR updates; stale task IDs re-post to new commits\n\n- 严重度：medium\n- 证据强度：source_linked\n- 发现：GitHub 社区证据显示该项目存在一个安全/权限相关的待验证问题：PR checks do not create fresh agent sessions on PR updates; stale task IDs re-post to new commits\n- 对用户的影响：可能影响授权、密钥配置或安全边界。\n- 建议检查：来源问题仍为 open，Pack Agent 需要复核是否仍影响当前版本。\n- 防护动作：不得脱离来源链接放大为确定性结论；需要标注适用版本和复核状态。\n- 证据：community_evidence:github | cevd_e2338a7a76914ae09ac534a5c23a951b | https://github.com/continuedev/continue/issues/12382 | 来源类型 github_issue 暴露的待验证使用条件。\n\n## 36. 安全/权限坑 · 来源证据：Size limit for Read_File\n\n- 严重度：medium\n- 证据强度：source_linked\n- 发现：GitHub 社区证据显示该项目存在一个安全/权限相关的待验证问题：Size limit for Read_File\n- 对用户的影响：可能影响授权、密钥配置或安全边界。\n- 建议检查：来源问题仍为 open，Pack Agent 需要复核是否仍影响当前版本。\n- 防护动作：不得脱离来源链接放大为确定性结论；需要标注适用版本和复核状态。\n- 证据：community_evidence:github | cevd_cc5d435c7f6c461a8cfe304805fae5a2 | https://github.com/continuedev/continue/issues/12432 | 来源讨论提到 python 相关条件，需在安装/试用前复核。\n\n## 37. 维护坑 · 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:644686905 | https://github.com/continuedev/continue | issue_or_pr_quality=unknown\n\n## 38. 维护坑 · 发布节奏不明确\n\n- 严重度：low\n- 证据强度：source_linked\n- 发现：release_recency=unknown。\n- 对用户的影响：安装命令和文档可能落后于代码，用户踩坑概率升高。\n- 建议检查：确认最近 release/tag 和 README 安装命令是否一致。\n- 防护动作：发布节奏未知或过期时，安装说明必须标注可能漂移。\n- 证据：evidence.maintainer_signals | github_repo:644686905 | https://github.com/continuedev/continue | release_recency=unknown\n\n<!-- canonical_name: continuedev/continue; 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项目：continuedev/continue\n\n摘要：发现 38 个潜在踩坑项，其中 8 个为 high/blocking；最高优先级：安装坑 - 来源证据：\"Headers not defined\" -> This time with logs。\n\n## 1. 安装坑 · 来源证据：\"Headers not defined\" -> This time with logs\n\n- 严重度：high\n- 证据强度：source_linked\n- 发现：GitHub 社区证据显示该项目存在一个安装相关的待验证问题：\"Headers not defined\" -> This time with logs\n- 对用户的影响：可能增加新用户试用和生产接入成本。\n- 建议检查：来源问题仍为 open，Pack Agent 需要复核是否仍影响当前版本。\n- 防护动作：不得脱离来源链接放大为确定性结论；需要标注适用版本和复核状态。\n- 证据：community_evidence:github | cevd_0c0fcf2034914a62a81e3374d2d7d0a5 | https://github.com/continuedev/continue/issues/12163 | 来源讨论提到 linux 相关条件，需在安装/试用前复核。\n\n## 2. 配置坑 · 来源证据：(sse) mcp restarts breaks communication\n\n- 严重度：high\n- 证据强度：source_linked\n- 发现：GitHub 社区证据显示该项目存在一个配置相关的待验证问题：(sse) mcp restarts breaks communication\n- 对用户的影响：可能增加新用户试用和生产接入成本。\n- 建议检查：来源问题仍为 open，Pack Agent 需要复核是否仍影响当前版本。\n- 防护动作：不得脱离来源链接放大为确定性结论；需要标注适用版本和复核状态。\n- 证据：community_evidence:github | cevd_5cb9bc1f10144ec7948f8784dc25bf12 | https://github.com/continuedev/continue/issues/12431 | 来源类型 github_issue 暴露的待验证使用条件。\n\n## 3. 配置坑 · 来源证据：Continue fails to stablish mTLS connection with server\n\n- 严重度：high\n- 证据强度：source_linked\n- 发现：GitHub 社区证据显示该项目存在一个配置相关的待验证问题：Continue fails to stablish mTLS connection with server\n- 对用户的影响：可能增加新用户试用和生产接入成本。\n- 建议检查：来源问题仍为 open，Pack Agent 需要复核是否仍影响当前版本。\n- 防护动作：不得脱离来源链接放大为确定性结论；需要标注适用版本和复核状态。\n- 证据：community_evidence:github | cevd_01756ce44b144ad4a34ea4c5e99e339b | https://github.com/continuedev/continue/issues/8470 | 来源讨论提到 windows 相关条件，需在安装/试用前复核。\n\n## 4. 配置坑 · 来源证据：Session Workspace always assumes first workspace folder\n\n- 严重度：high\n- 证据强度：source_linked\n- 发现：GitHub 社区证据显示该项目存在一个配置相关的待验证问题：Session Workspace always assumes first workspace folder\n- 对用户的影响：可能增加新用户试用和生产接入成本。\n- 建议检查：来源问题仍为 open，Pack Agent 需要复核是否仍影响当前版本。\n- 防护动作：不得脱离来源链接放大为确定性结论；需要标注适用版本和复核状态。\n- 证据：community_evidence:github | cevd_1e621c9277a64cb581639efad6bd6b73 | https://github.com/continuedev/continue/issues/4539 | 来源类型 github_issue 暴露的待验证使用条件。\n\n## 5. 安全/权限坑 · 失败模式：security_permissions: PR checks do not create fresh agent sessions on PR updates; stale task IDs re-post to new com...\n\n- 严重度：high\n- 证据强度：source_linked\n- 发现：Developers should check this security_permissions risk before relying on the project: PR checks do not create fresh agent sessions on PR updates; stale task IDs re-post to new commits\n- 对用户的影响：Developers may expose sensitive permissions or credentials: PR checks do not create fresh agent sessions on PR updates; stale task IDs re-post to new commits\n- 建议检查：Before packaging this project, run the relevant install/config/quickstart check for: PR checks do not create fresh agent sessions on PR updates; stale task IDs re-post to new commits. Context: Observed when using macos\n- 防护动作：Do not recommend enabling privileged or credential-bearing paths until the source-backed risk is reviewed: https://github.com/continuedev/continue/issues/12382\n- 证据：failure_mode_cluster:github_issue | fmev_07a692e49161cfab20c466f1f0b957d1 | https://github.com/continuedev/continue/issues/12382 | PR checks do not create fresh agent sessions on PR updates; stale task IDs re-post to new commits\n\n## 6. 安全/权限坑 · 来源证据：Autocomplete for code is not working\n\n- 严重度：high\n- 证据强度：source_linked\n- 发现：GitHub 社区证据显示该项目存在一个安全/权限相关的待验证问题：Autocomplete for code is not working\n- 对用户的影响：可能影响授权、密钥配置或安全边界。\n- 建议检查：来源问题仍为 open，Pack Agent 需要复核是否仍影响当前版本。\n- 防护动作：不得脱离来源链接放大为确定性结论；需要标注适用版本和复核状态。\n- 证据：community_evidence:github | cevd_e1f8ba56c9b140e8a61444ad20181cd9 | https://github.com/continuedev/continue/issues/12298 | 来源讨论提到 windows 相关条件，需在安装/试用前复核。\n\n## 7. 安全/权限坑 · 来源证据：Make the user settings declarative\n\n- 严重度：high\n- 证据强度：source_linked\n- 发现：GitHub 社区证据显示该项目存在一个安全/权限相关的待验证问题：Make the user settings declarative\n- 对用户的影响：可能影响升级、迁移或版本选择。\n- 建议检查：来源问题仍为 open，Pack Agent 需要复核是否仍影响当前版本。\n- 防护动作：不得脱离来源链接放大为确定性结论；需要标注适用版本和复核状态。\n- 证据：community_evidence:github | cevd_a5ebcd3bc7be4e949b45351fd5b06873 | https://github.com/continuedev/continue/issues/5438 | 来源讨论提到 api key 相关条件，需在安装/试用前复核。\n\n## 8. 安全/权限坑 · 来源证据：Responses from LLM's running from LocalAI are not detected\n\n- 严重度：high\n- 证据强度：source_linked\n- 发现：GitHub 社区证据显示该项目存在一个安全/权限相关的待验证问题：Responses from LLM's running from LocalAI are not detected\n- 对用户的影响：可能影响授权、密钥配置或安全边界。\n- 建议检查：来源问题仍为 open，Pack Agent 需要复核是否仍影响当前版本。\n- 防护动作：不得脱离来源链接放大为确定性结论；需要标注适用版本和复核状态。\n- 证据：community_evidence:github | cevd_8aabc2e01f8646e2a22d44dbcad4ad99 | https://github.com/continuedev/continue/issues/10113 | 来源讨论提到 python 相关条件，需在安装/试用前复核。\n\n## 9. 安装坑 · 失败模式：installation: Support Context7\n\n- 严重度：medium\n- 证据强度：source_linked\n- 发现：Developers should check this installation risk before relying on the project: Support Context7\n- 对用户的影响：Developers may fail before the first successful local run: Support Context7\n- 建议检查：Before packaging this project, run the relevant install/config/quickstart check for: Support Context7. Context: Observed during installation or first-run setup.\n- 防护动作：State this as source-backed community evidence, not as Doramagic reproduction.\n- 证据：failure_mode_cluster:github_issue | fmev_dd0ac59c1a237815f09072ae6ef6bbbd | https://github.com/continuedev/continue/issues/5836 | Support Context7\n\n## 10. 安装坑 · 失败模式：installation: Terminal commands fail when `$SHELL` is set to `tcsh` due to hardcoded `-l` shell flag\n\n- 严重度：medium\n- 证据强度：source_linked\n- 发现：Developers should check this installation risk before relying on the project: Terminal commands fail when `$SHELL` is set to `tcsh` due to hardcoded `-l` shell flag\n- 对用户的影响：Developers may fail before the first successful local run: Terminal commands fail when `$SHELL` is set to `tcsh` due to hardcoded `-l` shell flag\n- 建议检查：Before packaging this project, run the relevant install/config/quickstart check for: Terminal commands fail when `$SHELL` is set to `tcsh` due to hardcoded `-l` shell flag. Context: Observed when using linux\n- 防护动作：State this as source-backed community evidence, not as Doramagic reproduction.\n- 证据：failure_mode_cluster:github_issue | fmev_682551ed88a7b527a9f1207eecd2a1c6 | https://github.com/continuedev/continue/issues/12378 | Terminal commands fail when `$SHELL` is set to `tcsh` due to hardcoded `-l` shell flag\n\n## 11. 安装坑 · 失败模式：installation: The extension doesn't show up at all.\n\n- 严重度：medium\n- 证据强度：source_linked\n- 发现：Developers should check this installation risk before relying on the project: The extension doesn't show up at all.\n- 对用户的影响：Developers may fail before the first successful local run: The extension doesn't show up at all.\n- 建议检查：Before packaging this project, run the relevant install/config/quickstart check for: The extension doesn't show up at all.. Context: Observed when using windows\n- 防护动作：State this as source-backed community evidence, not as Doramagic reproduction.\n- 证据：failure_mode_cluster:github_issue | fmev_1a64ddb9e5d24401d02abdc046398202 | https://github.com/continuedev/continue/issues/1312 | The extension doesn't show up at all.\n\n## 12. 安装坑 · 来源证据：Support Context7\n\n- 严重度：medium\n- 证据强度：source_linked\n- 发现：GitHub 社区证据显示该项目存在一个安装相关的待验证问题：Support Context7\n- 对用户的影响：可能增加新用户试用和生产接入成本。\n- 建议检查：来源显示可能已有修复、规避或版本变化，说明书中必须标注适用版本。\n- 防护动作：不得脱离来源链接放大为确定性结论；需要标注适用版本和复核状态。\n- 证据：community_evidence:github | cevd_fa7735b8be6f4ac9840501ac84eb7e9a | https://github.com/continuedev/continue/issues/5836 | 来源类型 github_issue 暴露的待验证使用条件。\n\n## 13. 安装坑 · 来源证据：Terminal commands fail when `$SHELL` is set to `tcsh` due to hardcoded `-l` shell flag\n\n- 严重度：medium\n- 证据强度：source_linked\n- 发现：GitHub 社区证据显示该项目存在一个安装相关的待验证问题：Terminal commands fail when `$SHELL` is set to `tcsh` due to hardcoded `-l` shell flag\n- 对用户的影响：可能增加新用户试用和生产接入成本。\n- 建议检查：来源问题仍为 open，Pack Agent 需要复核是否仍影响当前版本。\n- 防护动作：不得脱离来源链接放大为确定性结论；需要标注适用版本和复核状态。\n- 证据：community_evidence:github | cevd_823b2e0ae1ad49a78bd0a45d39a3099a | https://github.com/continuedev/continue/issues/12378 | 来源讨论提到 linux 相关条件，需在安装/试用前复核。\n\n## 14. 安装坑 · 来源证据：The extension doesn't show up at all.\n\n- 严重度：medium\n- 证据强度：source_linked\n- 发现：GitHub 社区证据显示该项目存在一个安装相关的待验证问题：The extension doesn't show up at all.\n- 对用户的影响：可能增加新用户试用和生产接入成本。\n- 建议检查：来源显示可能已有修复、规避或版本变化，说明书中必须标注适用版本。\n- 防护动作：不得脱离来源链接放大为确定性结论；需要标注适用版本和复核状态。\n- 证据：community_evidence:github | cevd_5d86070fe9d941ad9a44f1d09464b582 | https://github.com/continuedev/continue/issues/1312 | 来源讨论提到 windows 相关条件，需在安装/试用前复核。\n\n## 15. 配置坑 · 失败模式：configuration: \"Headers not defined\" -> This time with logs\n\n- 严重度：medium\n- 证据强度：source_linked\n- 发现：Developers should check this configuration risk before relying on the project: \"Headers not defined\" -> This time with logs\n- 对用户的影响：Developers may misconfigure credentials, environment, or host setup: \"Headers not defined\" -> This time with logs\n- 建议检查：Before packaging this project, run the relevant install/config/quickstart check for: \"Headers not defined\" -> This time with logs. Context: Observed when using linux\n- 防护动作：State this as source-backed community evidence, not as Doramagic reproduction.\n- 证据：failure_mode_cluster:github_issue | fmev_b136994a3d92fcde3550fdd83c67a11a | https://github.com/continuedev/continue/issues/12163 | \"Headers not defined\" -> This time with logs\n\n## 16. 配置坑 · 失败模式：configuration: 400 Error\n\n- 严重度：medium\n- 证据强度：source_linked\n- 发现：Developers should check this configuration risk before relying on the project: 400 Error\n- 对用户的影响：Developers may misconfigure credentials, environment, or host setup: 400 Error\n- 建议检查：Before packaging this project, run the relevant install/config/quickstart check for: 400 Error. Context: Observed when using python, windows\n- 防护动作：State this as source-backed community evidence, not as Doramagic reproduction.\n- 证据：failure_mode_cluster:github_issue | fmev_17872a6a18ab3c162f5282a7fd2f789c | https://github.com/continuedev/continue/issues/5079 | 400 Error\n\n## 17. 配置坑 · 失败模式：configuration: Autocomplete for code is not working\n\n- 严重度：medium\n- 证据强度：source_linked\n- 发现：Developers should check this configuration risk before relying on the project: Autocomplete for code is not working\n- 对用户的影响：Developers may misconfigure credentials, environment, or host setup: Autocomplete for code is not working\n- 建议检查：Before packaging this project, run the relevant install/config/quickstart check for: Autocomplete for code is not working. Context: Observed when using windows, linux\n- 防护动作：State this as source-backed community evidence, not as Doramagic reproduction.\n- 证据：failure_mode_cluster:github_issue | fmev_fef11e43c412193f501c74f86fb0aad1 | https://github.com/continuedev/continue/issues/12298 | Autocomplete for code is not working\n\n## 18. 配置坑 · 失败模式：configuration: Config error with ollama cloud\n\n- 严重度：medium\n- 证据强度：source_linked\n- 发现：Developers should check this configuration risk before relying on the project: Config error with ollama cloud\n- 对用户的影响：Developers may misconfigure credentials, environment, or host setup: Config error with ollama cloud\n- 建议检查：Before packaging this project, run the relevant install/config/quickstart check for: Config error with ollama cloud. Context: Observed when using macos\n- 防护动作：State this as source-backed community evidence, not as Doramagic reproduction.\n- 证据：failure_mode_cluster:github_issue | fmev_f69ce9c50b7a535cc6c3d0dfe8741e08 | https://github.com/continuedev/continue/issues/12370 | Config error with ollama cloud\n\n## 19. 配置坑 · 失败模式：configuration: Continue fails to stablish mTLS connection with server\n\n- 严重度：medium\n- 证据强度：source_linked\n- 发现：Developers should check this configuration risk before relying on the project: Continue fails to stablish mTLS connection with server\n- 对用户的影响：Developers may misconfigure credentials, environment, or host setup: Continue fails to stablish mTLS connection with server\n- 建议检查：Before packaging this project, run the relevant install/config/quickstart check for: Continue fails to stablish mTLS connection with server. Context: Observed when using windows, linux\n- 防护动作：State this as source-backed community evidence, not as Doramagic reproduction.\n- 证据：failure_mode_cluster:github_issue | fmev_e6794a57836185b70c8cb8cf953cce5d | https://github.com/continuedev/continue/issues/8470 | Continue fails to stablish mTLS connection with server\n\n## 20. 配置坑 · 失败模式：configuration: Docs: Document .continue/configs directory support\n\n- 严重度：medium\n- 证据强度：source_linked\n- 发现：Developers should check this configuration risk before relying on the project: Docs: Document .continue/configs directory support\n- 对用户的影响：Developers may misconfigure credentials, environment, or host setup: Docs: Document .continue/configs directory support\n- 建议检查：Before packaging this project, run the relevant install/config/quickstart check for: Docs: Document .continue/configs directory support. Context: Source discussion did not expose a precise runtime context.\n- 防护动作：State this as source-backed community evidence, not as Doramagic reproduction.\n- 证据：failure_mode_cluster:github_issue | fmev_8c3e2cabb835c3b4e9fc6876e70792a6 | https://github.com/continuedev/continue/issues/12377 | Docs: Document .continue/configs directory support\n\n## 21. 配置坑 · 失败模式：configuration: Docs: Document dynamic model fetching feature\n\n- 严重度：medium\n- 证据强度：source_linked\n- 发现：Developers should check this configuration risk before relying on the project: Docs: Document dynamic model fetching feature\n- 对用户的影响：Developers may misconfigure credentials, environment, or host setup: Docs: Document dynamic model fetching feature\n- 建议检查：Before packaging this project, run the relevant install/config/quickstart check for: Docs: Document dynamic model fetching feature. Context: Source discussion did not expose a precise runtime context.\n- 防护动作：State this as source-backed community evidence, not as Doramagic reproduction.\n- 证据：failure_mode_cluster:github_issue | fmev_b5dbe8c0463df066db3ca81b090d9c01 | https://github.com/continuedev/continue/issues/12376 | Docs: Document dynamic model fetching feature\n\n## 22. 配置坑 · 失败模式：configuration: Docs: Update Inception provider documentation for Mercury-2 model\n\n- 严重度：medium\n- 证据强度：source_linked\n- 发现：Developers should check this configuration risk before relying on the project: Docs: Update Inception provider documentation for Mercury-2 model\n- 对用户的影响：Developers may misconfigure credentials, environment, or host setup: Docs: Update Inception provider documentation for Mercury-2 model\n- 建议检查：Before packaging this project, run the relevant install/config/quickstart check for: Docs: Update Inception provider documentation for Mercury-2 model. Context: Source discussion did not expose a precise runtime context.\n- 防护动作：State this as source-backed community evidence, not as Doramagic reproduction.\n- 证据：failure_mode_cluster:github_issue | fmev_4db8e14e6818419363054a9e7800eda2 | https://github.com/continuedev/continue/issues/12375 | Docs: Update Inception provider documentation for Mercury-2 model\n\n## 23. 配置坑 · 失败模式：configuration: Login failed with \"Not authenticated (user missing)\" after account setup\n\n- 严重度：medium\n- 证据强度：source_linked\n- 发现：Developers should check this configuration risk before relying on the project: Login failed with \"Not authenticated (user missing)\" after account setup\n- 对用户的影响：Developers may misconfigure credentials, environment, or host setup: Login failed with \"Not authenticated (user missing)\" after account setup\n- 建议检查：Before packaging this project, run the relevant install/config/quickstart check for: Login failed with \"Not authenticated (user missing)\" after account setup. Context: Observed when using windows\n- 防护动作：State this as source-backed community evidence, not as Doramagic reproduction.\n- 证据：failure_mode_cluster:github_issue | fmev_9ec05668c8e8d77892783222181856ee | https://github.com/continuedev/continue/issues/12424 | Login failed with \"Not authenticated (user missing)\" after account setup\n\n## 24. 配置坑 · 失败模式：configuration: Make the user settings declarative\n\n- 严重度：medium\n- 证据强度：source_linked\n- 发现：Developers should check this configuration risk before relying on the project: Make the user settings declarative\n- 对用户的影响：Developers may misconfigure credentials, environment, or host setup: Make the user settings declarative\n- 建议检查：Before packaging this project, run the relevant install/config/quickstart check for: Make the user settings declarative. Context: Observed when using docker\n- 防护动作：State this as source-backed community evidence, not as Doramagic reproduction.\n- 证据：failure_mode_cluster:github_issue | fmev_1b32aeb88d229dcc498a21a15392073b | https://github.com/continuedev/continue/issues/5438 | Make the user settings declarative\n\n## 25. 配置坑 · 失败模式：configuration: Responses from LLM's running from LocalAI are not detected\n\n- 严重度：medium\n- 证据强度：source_linked\n- 发现：Developers should check this configuration risk before relying on the project: Responses from LLM's running from LocalAI are not detected\n- 对用户的影响：Developers may misconfigure credentials, environment, or host setup: Responses from LLM's running from LocalAI are not detected\n- 建议检查：Before packaging this project, run the relevant install/config/quickstart check for: Responses from LLM's running from LocalAI are not detected. Context: Observed when using python, windows, linux\n- 防护动作：State this as source-backed community evidence, not as Doramagic reproduction.\n- 证据：failure_mode_cluster:github_issue | fmev_a997891d991d463b08f586863fa4f190 | https://github.com/continuedev/continue/issues/10113 | Responses from LLM's running from LocalAI are not detected\n\n## 26. 配置坑 · 失败模式：configuration: v1.2.22-vscode\n\n- 严重度：medium\n- 证据强度：source_linked\n- 发现：Developers should check this configuration risk before relying on the project: v1.2.22-vscode\n- 对用户的影响：Upgrade or migration may change expected behavior: v1.2.22-vscode\n- 建议检查：Before packaging this project, run the relevant install/config/quickstart check for: v1.2.22-vscode. Context: Source discussion did not expose a precise runtime context.\n- 防护动作：State this as source-backed community evidence, not as Doramagic reproduction.\n- 证据：failure_mode_cluster:github_release | fmev_16f5a708793a12c3918b445e3b11b41d | https://github.com/continuedev/continue/releases/tag/v1.2.22-vscode | v1.2.22-vscode\n\n## 27. 能力坑 · 能力判断依赖假设\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:644686905 | https://github.com/continuedev/continue | README/documentation is current enough for a first validation pass.\n\n## 28. 维护坑 · 来源证据：Unresponsive - continue.focusCOntntinueinput already registered by continre Profile 1079\n\n- 严重度：medium\n- 证据强度：source_linked\n- 发现：GitHub 社区证据显示该项目存在一个维护/版本相关的待验证问题：Unresponsive - continue.focusCOntntinueinput already registered by continre Profile 1079\n- 对用户的影响：可能阻塞安装或首次运行。\n- 建议检查：来源显示可能已有修复、规避或版本变化，说明书中必须标注适用版本。\n- 防护动作：不得脱离来源链接放大为确定性结论；需要标注适用版本和复核状态。\n- 证据：community_evidence:github | cevd_7a29505886e9431898131d920bb87efa | https://github.com/continuedev/continue/issues/7801 | 来源讨论提到 python 相关条件，需在安装/试用前复核。\n\n## 29. 维护坑 · 维护活跃度未知\n\n- 严重度：medium\n- 证据强度：source_linked\n- 发现：未记录 last_activity_observed。\n- 对用户的影响：新项目、停更项目和活跃项目会被混在一起，推荐信任度下降。\n- 建议检查：补 GitHub 最近 commit、release、issue/PR 响应信号。\n- 防护动作：维护活跃度未知时，推荐强度不能标为高信任。\n- 证据：evidence.maintainer_signals | github_repo:644686905 | https://github.com/continuedev/continue | last_activity_observed missing\n\n## 30. 安全/权限坑 · 下游验证发现风险项\n\n- 严重度：medium\n- 证据强度：source_linked\n- 发现：no_demo\n- 对用户的影响：下游已经要求复核，不能在页面中弱化。\n- 建议检查：进入安全/权限治理复核队列。\n- 防护动作：下游风险存在时必须保持 review/recommendation 降级。\n- 证据：downstream_validation.risk_items | github_repo:644686905 | https://github.com/continuedev/continue | no_demo; severity=medium\n\n## 31. 安全/权限坑 · 存在评分风险\n\n- 严重度：medium\n- 证据强度：source_linked\n- 发现：no_demo\n- 对用户的影响：风险会影响是否适合普通用户安装。\n- 建议检查：把风险写入边界卡，并确认是否需要人工复核。\n- 防护动作：评分风险必须进入边界卡，不能只作为内部分数。\n- 证据：risks.scoring_risks | github_repo:644686905 | https://github.com/continuedev/continue | no_demo; severity=medium\n\n## 32. 安全/权限坑 · 来源证据：400 Error\n\n- 严重度：medium\n- 证据强度：source_linked\n- 发现：GitHub 社区证据显示该项目存在一个安全/权限相关的待验证问题：400 Error\n- 对用户的影响：可能影响授权、密钥配置或安全边界。\n- 建议检查：来源显示可能已有修复、规避或版本变化，说明书中必须标注适用版本。\n- 防护动作：不得脱离来源链接放大为确定性结论；需要标注适用版本和复核状态。\n- 证据：community_evidence:github | cevd_6519f0021d474af78d0178c14d9b7fc2 | https://github.com/continuedev/continue/issues/5079 | 来源讨论提到 python 相关条件，需在安装/试用前复核。\n\n## 33. 安全/权限坑 · 来源证据：Docs: Document .continue/configs directory support\n\n- 严重度：medium\n- 证据强度：source_linked\n- 发现：GitHub 社区证据显示该项目存在一个安全/权限相关的待验证问题：Docs: Document .continue/configs directory support\n- 对用户的影响：可能影响授权、密钥配置或安全边界。\n- 建议检查：来源问题仍为 open，Pack Agent 需要复核是否仍影响当前版本。\n- 防护动作：不得脱离来源链接放大为确定性结论；需要标注适用版本和复核状态。\n- 证据：community_evidence:github | cevd_4891275e3958456796a83007de577da8 | https://github.com/continuedev/continue/issues/12377 | 来源类型 github_issue 暴露的待验证使用条件。\n\n## 34. 安全/权限坑 · 来源证据：Login failed with \"Not authenticated (user missing)\" after account setup\n\n- 严重度：medium\n- 证据强度：source_linked\n- 发现：GitHub 社区证据显示该项目存在一个安全/权限相关的待验证问题：Login failed with \"Not authenticated (user missing)\" after account setup\n- 对用户的影响：可能影响授权、密钥配置或安全边界。\n- 建议检查：来源问题仍为 open，Pack Agent 需要复核是否仍影响当前版本。\n- 防护动作：不得脱离来源链接放大为确定性结论；需要标注适用版本和复核状态。\n- 证据：community_evidence:github | cevd_0e03b5d122e341b3b58881a925595069 | https://github.com/continuedev/continue/issues/12424 | 来源讨论提到 windows 相关条件，需在安装/试用前复核。\n\n## 35. 安全/权限坑 · 来源证据：PR checks do not create fresh agent sessions on PR updates; stale task IDs re-post to new commits\n\n- 严重度：medium\n- 证据强度：source_linked\n- 发现：GitHub 社区证据显示该项目存在一个安全/权限相关的待验证问题：PR checks do not create fresh agent sessions on PR updates; stale task IDs re-post to new commits\n- 对用户的影响：可能影响授权、密钥配置或安全边界。\n- 建议检查：来源问题仍为 open，Pack Agent 需要复核是否仍影响当前版本。\n- 防护动作：不得脱离来源链接放大为确定性结论；需要标注适用版本和复核状态。\n- 证据：community_evidence:github | cevd_e2338a7a76914ae09ac534a5c23a951b | https://github.com/continuedev/continue/issues/12382 | 来源类型 github_issue 暴露的待验证使用条件。\n\n## 36. 安全/权限坑 · 来源证据：Size limit for Read_File\n\n- 严重度：medium\n- 证据强度：source_linked\n- 发现：GitHub 社区证据显示该项目存在一个安全/权限相关的待验证问题：Size limit for Read_File\n- 对用户的影响：可能影响授权、密钥配置或安全边界。\n- 建议检查：来源问题仍为 open，Pack Agent 需要复核是否仍影响当前版本。\n- 防护动作：不得脱离来源链接放大为确定性结论；需要标注适用版本和复核状态。\n- 证据：community_evidence:github | cevd_cc5d435c7f6c461a8cfe304805fae5a2 | https://github.com/continuedev/continue/issues/12432 | 来源讨论提到 python 相关条件，需在安装/试用前复核。\n\n## 37. 维护坑 · 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:644686905 | https://github.com/continuedev/continue | issue_or_pr_quality=unknown\n\n## 38. 维护坑 · 发布节奏不明确\n\n- 严重度：low\n- 证据强度：source_linked\n- 发现：release_recency=unknown。\n- 对用户的影响：安装命令和文档可能落后于代码，用户踩坑概率升高。\n- 建议检查：确认最近 release/tag 和 README 安装命令是否一致。\n- 防护动作：发布节奏未知或过期时，安装说明必须标注可能漂移。\n- 证据：evidence.maintainer_signals | github_repo:644686905 | https://github.com/continuedev/continue | release_recency=unknown\n",
      "summary": "用户实践前最可能遇到的身份、安装、配置、运行和安全坑。",
      "title": "Pitfall Log / 踩坑日志"
    },
    "prompt_preview": {
      "asset_id": "prompt_preview",
      "filename": "PROMPT_PREVIEW.md",
      "markdown": "# continue - Prompt Preview\n\n> Copy the prompt below into your AI host before installing anything.\n> Its purpose is to let you safely feel the project's workflow, not to claim the project has already run.\n\n## Copy this prompt\n\n```text\nYou are using an independent Doramagic capability pack for continuedev/continue.\n\nProject:\n- Name: continue\n- Repository: https://github.com/continuedev/continue\n- Summary: ⏩ Source-controlled AI checks, enforceable in CI. Powered by the open-source Continue CLI\n- Host target: local_cli\n\nGoal:\nHelp me evaluate this project for the following task without installing it yet: ⏩ Source-controlled AI checks, enforceable in CI. Powered by the open-source Continue CLI\n\nBefore taking action:\n1. Restate my task, success standard, and boundary.\n2. Identify whether the next step requires tools, browser access, network access, filesystem access, credentials, package installation, or host configuration.\n3. Use only the Doramagic Project Pack, the upstream repository, and the source-linked evidence listed below.\n4. If a real command, install step, API call, file write, or host integration is required, mark it as \"requires post-install verification\" and ask for approval first.\n5. If evidence is missing, say \"evidence is missing\" instead of filling the gap.\n\nPreviewable capabilities:\n- Capability 1: Use the source-backed project context to guide one small, checkable workflow step.\n\nCapabilities that require post-install verification:\n- Capability 1: Use the source-backed project context to guide one small, checkable workflow step.\n\nCore service flow:\n1. architecture-overview: Architecture Overview. Produce one small intermediate artifact and wait for confirmation.\n2. protocol-communication: Protocol and Communication. Produce one small intermediate artifact and wait for confirmation.\n3. core-library: Core Library. Produce one small intermediate artifact and wait for confirmation.\n4. ide-extensions: IDE Extensions. Produce one small intermediate artifact and wait for confirmation.\n5. cli-tool: CLI Tool. Produce one small intermediate artifact and wait for confirmation.\n\nSource-backed evidence to keep in mind:\n- https://github.com/continuedev/continue\n- https://github.com/continuedev/continue#readme\n- .claude/skills/docs-style/SKILL.md\n- skills/cn-check/SKILL.md\n- core/package.json\n- core/core.ts\n- package.json\n- core/protocol/core.ts\n- core/protocol/ide.ts\n- core/protocol/messenger/index.ts\n\nFirst response rules:\n1. Start Step 1 only.\n2. Explain the one service action you will perform first.\n3. Ask exactly three questions about my target workflow, success standard, and sandbox boundary.\n4. Stop and wait for my answers.\n\nStep 1 follow-up protocol:\n- After I answer the first three questions, stay in Step 1.\n- Produce six parts only: clarified task, success standard, boundary conditions, two or three options, tradeoffs for each option, and one recommendation.\n- End by asking whether I confirm the recommendation.\n- Do not move to Step 2 until I explicitly confirm.\n\nConversation rules:\n- Advance one step at a time and wait for confirmation after each small artifact.\n- Write outputs as recommendations or planned checks, not as completed execution.\n- Do not claim tests passed, files changed, commands ran, APIs were called, or the project was installed.\n- If the user asks for execution, first provide the sandbox setup, expected output, rollback, and approval checkpoint.\n```\n",
      "summary": "不安装项目也能感受能力节奏的安全试用 Prompt。",
      "title": "Prompt Preview / 安装前试用 Prompt"
    },
    "quick_start": {
      "asset_id": "quick_start",
      "filename": "QUICK_START.md",
      "markdown": "# Quick Start / 官方入口\n\n项目：continuedev/continue\n\n## 官方安装入口\n\n### Node.js / npm · 官方安装入口\n\n```bash\nnpm i -g @continuedev/cli\n```\n\n来源：https://github.com/continuedev/continue#readme\n\n## 来源\n\n- repo: https://github.com/continuedev/continue\n- docs: https://github.com/continuedev/continue#readme\n",
      "summary": "从项目官方 README 或安装文档提取的开工入口。",
      "title": "Quick Start / 官方入口"
    }
  },
  "validation_id": "dval_50109bb4e45c493d88bcd9d58e7a3712"
}
