{
  "canonical_name": "OpenBB-finance/OpenBB",
  "compilation_id": "pack_51de8796c73244848e6b0c5ce781c81d",
  "created_at": "2026-05-22T04:09:46.169362+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 `pip install openbb` 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": "pip install openbb",
      "sandbox_container_image": "python:3.12-slim",
      "sandbox_execution_backend": "docker",
      "sandbox_planner_decision": "deterministic_isolated_install",
      "sandbox_validation_id": "sbx_23a9a1744f0e4a3a97d9429fb365cb19"
    },
    "feedback_event_type": "project_pack_compilation_feedback",
    "learning_candidate_reasons": [],
    "template_gaps": []
  },
  "identity": {
    "canonical_id": "project_ab6a93ad1602edf82f97a26589a1b3ae",
    "canonical_name": "OpenBB-finance/OpenBB",
    "homepage_url": null,
    "license": "unknown",
    "repo_url": "https://github.com/OpenBB-finance/OpenBB",
    "slug": "openbb",
    "source_packet_id": "phit_1e4dc47e7db44065be5c279bbe9f57d9",
    "source_validation_id": "dval_967c28e63a4a4d4cac2093da0aab6a6b"
  },
  "merchandising": {
    "best_for": "需要数据分析与投资研究能力，并使用 local_cli的用户",
    "github_forks": 6756,
    "github_stars": 67378,
    "one_liner_en": "Financial data platform for analysts, quants and AI agents.",
    "one_liner_zh": "Financial data platform for analysts, quants and AI agents.",
    "primary_category": {
      "category_id": "data-market-research",
      "confidence": "high",
      "name_en": "Data & Market Research",
      "name_zh": "数据分析与投资研究",
      "reason": "matched_keywords:data, finance, financial"
    },
    "target_user": "使用 local_cli 等宿主 AI 的用户",
    "title_en": "OpenBB",
    "title_zh": "OpenBB 能力包",
    "visible_tags": [
      {
        "label_en": "MCP Tools",
        "label_zh": "MCP 工具",
        "source": "repo_evidence_project_characteristics",
        "tag_id": "product_domain-mcp-tools",
        "type": "product_domain"
      },
      {
        "label_en": "Knowledge Base Q&A",
        "label_zh": "知识库问答",
        "source": "repo_evidence_project_characteristics",
        "tag_id": "user_job-knowledge-base-q-a",
        "type": "user_job"
      },
      {
        "label_en": "Workflow Automation",
        "label_zh": "流程自动化",
        "source": "repo_evidence_project_characteristics",
        "tag_id": "core_capability-workflow-automation",
        "type": "core_capability"
      },
      {
        "label_en": "Automated Workflow",
        "label_zh": "自动化工作流",
        "source": "repo_evidence_project_characteristics",
        "tag_id": "workflow_pattern-automated-workflow",
        "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_1e4dc47e7db44065be5c279bbe9f57d9",
  "page_model": {
    "artifacts": {
      "artifact_slug": "openbb",
      "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": "pip install openbb",
          "label": "Python / pip · 官方安装入口",
          "source": "https://github.com/OpenBB-finance/OpenBB#readme",
          "verified": true
        }
      ],
      "display_tags": [
        "MCP 工具",
        "知识库问答",
        "流程自动化",
        "自动化工作流",
        "评测体系"
      ],
      "eyebrow": "数据分析与投资研究",
      "glance": [
        {
          "body": "判断自己是不是目标用户。",
          "label": "最适合谁",
          "value": "需要数据分析与投资研究能力，并使用 local_cli的用户"
        },
        {
          "body": "先理解能力边界，再决定是否继续。",
          "label": "核心价值",
          "value": "Financial data platform for analysts, quants and AI agents."
        },
        {
          "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 社区证据显示该项目存在一个安全/权限相关的待验证问题：[FR] Add Bank of Canada Valet API as a new provider extension",
            "category": "安全/权限坑",
            "evidence": [
              "community_evidence:github | cevd_a8349d4112564c48b29615f3530e81e4 | https://github.com/OpenBB-finance/OpenBB/issues/7490 | 来源讨论提到 api key 相关条件，需在安装/试用前复核。"
            ],
            "severity": "high",
            "suggested_check": "来源问题仍为 open，Pack Agent 需要复核是否仍影响当前版本。",
            "title": "来源证据：[FR] Add Bank of Canada Valet API as a new provider extension",
            "user_impact": "可能影响授权、密钥配置或安全边界。"
          },
          {
            "body": "GitHub 社区证据显示该项目存在一个安全/权限相关的待验证问题：[FR] Add Real-time Cryptocurrency Data Provider Integration",
            "category": "安全/权限坑",
            "evidence": [
              "community_evidence:github | cevd_e1bb7e5c7c0a4dc2bea2a256ed74a0b0 | https://github.com/OpenBB-finance/OpenBB/issues/7177 | 来源讨论提到 api key 相关条件，需在安装/试用前复核。"
            ],
            "severity": "high",
            "suggested_check": "来源问题仍为 open，Pack Agent 需要复核是否仍影响当前版本。",
            "title": "来源证据：[FR] Add Real-time Cryptocurrency Data Provider Integration",
            "user_impact": "可能影响授权、密钥配置或安全边界。"
          },
          {
            "body": "GitHub 社区证据显示该项目存在一个安全/权限相关的待验证问题：[FR] Signed audit receipts for MCP server tool calls (regulatory compliance)",
            "category": "安全/权限坑",
            "evidence": [
              "community_evidence:github | cevd_01ea12beef924e199679c6d2d1b91c73 | https://github.com/OpenBB-finance/OpenBB/issues/7455 | 来源讨论提到 npm 相关条件，需在安装/试用前复核。"
            ],
            "severity": "high",
            "suggested_check": "来源问题仍为 open，Pack Agent 需要复核是否仍影响当前版本。",
            "title": "来源证据：[FR] Signed audit receipts for MCP server tool calls (regulatory compliance)",
            "user_impact": "可能影响授权、密钥配置或安全边界。"
          },
          {
            "body": "项目文本出现 secret/private key/privacy/trading/finance 等敏感关键词。",
            "category": "安全/权限坑",
            "evidence": [
              "packet_text.keyword_scan | github_repo:323048702 | https://github.com/OpenBB-finance/OpenBB | matched secret / private key / privacy / trading / finance keyword"
            ],
            "severity": "high",
            "suggested_check": "补敏感数据流、密钥存储和权限边界审查。",
            "title": "涉及密钥、隐私或敏感领域",
            "user_impact": "金融、交易、隐私和密钥场景必须比普通工具更保守。"
          },
          {
            "body": "Developers should check this installation risk before relying on the project: OpenBB Platform v4.5.0",
            "category": "安装坑",
            "evidence": [
              "failure_mode_cluster:github_release | fmev_3acb4d0463ffb0d96b55088fc42477e1 | https://github.com/OpenBB-finance/OpenBB/releases/tag/v4.5.0 | OpenBB Platform v4.5.0"
            ],
            "severity": "medium",
            "suggested_check": "Before packaging this project, run the relevant install/config/quickstart check for: OpenBB Platform v4.5.0. Context: Observed when using python",
            "title": "失败模式：installation: OpenBB Platform v4.5.0",
            "user_impact": "Upgrade or migration may change expected behavior: OpenBB Platform v4.5.0"
          },
          {
            "body": "Developers should check this installation risk before relying on the project: OpenBB Platform v4.6.0",
            "category": "安装坑",
            "evidence": [
              "failure_mode_cluster:github_release | fmev_c32f0b655c075b88a71f35f893ae1f90 | https://github.com/OpenBB-finance/OpenBB/releases/tag/v4.6.0 | OpenBB Platform v4.6.0"
            ],
            "severity": "medium",
            "suggested_check": "Before packaging this project, run the relevant install/config/quickstart check for: OpenBB Platform v4.6.0. Context: Observed when using python",
            "title": "失败模式：installation: OpenBB Platform v4.6.0",
            "user_impact": "Upgrade or migration may change expected behavior: OpenBB Platform v4.6.0"
          },
          {
            "body": "Developers should check this installation risk before relying on the project: [Bug] Openbb 4.5.0 cannot import name 'OBBject_EquityInfo' from 'openbb_core.app.provider_interface'",
            "category": "安装坑",
            "evidence": [
              "failure_mode_cluster:github_issue | fmev_a7115ea0142ee2b52fad8606fc7d47ec | https://github.com/OpenBB-finance/OpenBB/issues/7279 | [Bug] Openbb 4.5.0 cannot import name 'OBBject_EquityInfo' from 'openbb_core.app.provider_interface'"
            ],
            "severity": "medium",
            "suggested_check": "Before packaging this project, run the relevant install/config/quickstart check for: [Bug] Openbb 4.5.0 cannot import name 'OBBject_EquityInfo' from 'openbb_core.app.provider_interface'. Context: Observed when using python, docker",
            "title": "失败模式：installation: [Bug] Openbb 4.5.0 cannot import name 'OBBject_EquityInfo' from 'openbb_core.app.provider_int...",
            "user_impact": "Developers may fail before the first successful local run: [Bug] Openbb 4.5.0 cannot import name 'OBBject_EquityInfo' from 'openbb_core.app.provider_interface'"
          },
          {
            "body": "Developers should check this installation risk before relying on the project: [Bug] PyWry WebView Fails to Launch on Ubuntu 24.04",
            "category": "安装坑",
            "evidence": [
              "failure_mode_cluster:github_issue | fmev_c48a7161974013fd9895ea98894b35bd | https://github.com/OpenBB-finance/OpenBB/issues/7148 | [Bug] PyWry WebView Fails to Launch on Ubuntu 24.04"
            ],
            "severity": "medium",
            "suggested_check": "Before packaging this project, run the relevant install/config/quickstart check for: [Bug] PyWry WebView Fails to Launch on Ubuntu 24.04. Context: Observed when using python, linux",
            "title": "失败模式：installation: [Bug] PyWry WebView Fails to Launch on Ubuntu 24.04",
            "user_impact": "Developers may fail before the first successful local run: [Bug] PyWry WebView Fails to Launch on Ubuntu 24.04"
          },
          {
            "body": "Developers should check this installation risk before relying on the project: [FR] Add Bank of Canada Valet API as a new provider extension",
            "category": "安装坑",
            "evidence": [
              "failure_mode_cluster:github_issue | fmev_3ee0b5efd611f4c6c49174e1a6ba1006 | https://github.com/OpenBB-finance/OpenBB/issues/7490 | [FR] Add Bank of Canada Valet API as a new provider extension"
            ],
            "severity": "medium",
            "suggested_check": "Before packaging this project, run the relevant install/config/quickstart check for: [FR] Add Bank of Canada Valet API as a new provider extension. Context: Observed when using python",
            "title": "失败模式：installation: [FR] Add Bank of Canada Valet API as a new provider extension",
            "user_impact": "Developers may fail before the first successful local run: [FR] Add Bank of Canada Valet API as a new provider extension"
          },
          {
            "body": "GitHub 社区证据显示该项目存在一个安装相关的待验证问题：[Bug] PyWry WebView Fails to Launch on Ubuntu 24.04",
            "category": "安装坑",
            "evidence": [
              "community_evidence:github | cevd_c068fa0d9cac4fb7b74d875b22d312d7 | https://github.com/OpenBB-finance/OpenBB/issues/7148 | 来源讨论提到 python 相关条件，需在安装/试用前复核。"
            ],
            "severity": "medium",
            "suggested_check": "来源显示可能已有修复、规避或版本变化，说明书中必须标注适用版本。",
            "title": "来源证据：[Bug] PyWry WebView Fails to Launch on Ubuntu 24.04",
            "user_impact": "可能阻塞安装或首次运行。"
          },
          {
            "body": "GitHub 社区证据显示该项目存在一个安装相关的待验证问题：[Bug] Widgets not saving their position and size after refresh",
            "category": "安装坑",
            "evidence": [
              "community_evidence:github | cevd_b7792ca1efe649c085e18a8a6be37d49 | https://github.com/OpenBB-finance/OpenBB/issues/7479 | 来源类型 github_issue 暴露的待验证使用条件。"
            ],
            "severity": "medium",
            "suggested_check": "来源显示可能已有修复、规避或版本变化，说明书中必须标注适用版本。",
            "title": "来源证据：[Bug] Widgets not saving their position and size after refresh",
            "user_impact": "可能增加新用户试用和生产接入成本。"
          },
          {
            "body": "Developers should check this configuration risk before relying on the project: [FR] Add Real-time Cryptocurrency Data Provider Integration",
            "category": "配置坑",
            "evidence": [
              "failure_mode_cluster:github_issue | fmev_45a17b16742dbd042ef1b9e8d373939d | https://github.com/OpenBB-finance/OpenBB/issues/7177 | [FR] Add Real-time Cryptocurrency Data Provider Integration"
            ],
            "severity": "medium",
            "suggested_check": "Before packaging this project, run the relevant install/config/quickstart check for: [FR] Add Real-time Cryptocurrency Data Provider Integration. Context: Source discussion did not expose a precise runtime context.",
            "title": "失败模式：configuration: [FR] Add Real-time Cryptocurrency Data Provider Integration",
            "user_impact": "Developers may misconfigure credentials, environment, or host setup: [FR] Add Real-time Cryptocurrency Data Provider Integration"
          },
          {
            "body": "Developers should check this configuration risk before relying on the project: [FR] Signed audit receipts for MCP server tool calls (regulatory compliance)",
            "category": "配置坑",
            "evidence": [
              "failure_mode_cluster:github_issue | fmev_3b139ec9599d5d33e68020e4e802c7e6 | https://github.com/OpenBB-finance/OpenBB/issues/7455 | [FR] Signed audit receipts for MCP server tool calls (regulatory compliance)",
              "failure_mode_cluster:github_issue | fmev_cc0ef568cdbda130dfa0c7df4a8f4021 | https://github.com/OpenBB-finance/OpenBB/issues/7455 | [FR] Signed audit receipts for MCP server tool calls (regulatory compliance)"
            ],
            "severity": "medium",
            "suggested_check": "Before packaging this project, run the relevant install/config/quickstart check for: [FR] Signed audit receipts for MCP server tool calls (regulatory compliance). Context: Observed when using node",
            "title": "失败模式：configuration: [FR] Signed audit receipts for MCP server tool calls (regulatory compliance)",
            "user_impact": "Developers may misconfigure credentials, environment, or host setup: [FR] Signed audit receipts for MCP server tool calls (regulatory compliance)"
          },
          {
            "body": "README/documentation is current enough for a first validation pass.",
            "category": "能力坑",
            "evidence": [
              "capability.assumptions | github_repo:323048702 | https://github.com/OpenBB-finance/OpenBB | README/documentation is current enough for a first validation pass."
            ],
            "severity": "medium",
            "suggested_check": "将假设转成下游验证清单。",
            "title": "能力判断依赖假设",
            "user_impact": "假设不成立时，用户拿不到承诺的能力。"
          },
          {
            "body": "GitHub 社区证据显示该项目存在一个运行相关的待验证问题：ODP Desktop v1.0.2",
            "category": "运行坑",
            "evidence": [
              "community_evidence:github | cevd_cf07c5d467e44c168f2650a3c4404f46 | https://github.com/OpenBB-finance/OpenBB/releases/tag/Open-Data-Platform-v1.0.2 | 来源讨论提到 windows 相关条件，需在安装/试用前复核。"
            ],
            "severity": "medium",
            "suggested_check": "来源显示可能已有修复、规避或版本变化，说明书中必须标注适用版本。",
            "title": "来源证据：ODP Desktop v1.0.2",
            "user_impact": "可能增加新用户试用和生产接入成本。"
          },
          {
            "body": "Developers should check this migration risk before relying on the project: OpenBB V4.7.0",
            "category": "维护坑",
            "evidence": [
              "failure_mode_cluster:github_release | fmev_d2f3cd7047c12b8378dbba16461be269 | https://github.com/OpenBB-finance/OpenBB/releases/tag/v4.7.0 | OpenBB V4.7.0"
            ],
            "severity": "medium",
            "suggested_check": "Before packaging this project, run the relevant install/config/quickstart check for: OpenBB V4.7.0. Context: Observed when using python",
            "title": "失败模式：migration: OpenBB V4.7.0",
            "user_impact": "Upgrade or migration may change expected behavior: OpenBB V4.7.0"
          }
        ],
        "source": "ProjectPitfallLog + ProjectHitPacket + validation + community signals",
        "summary": "发现 29 个潜在踩坑项，其中 4 个为 high/blocking；最高优先级：安全/权限坑 - 来源证据：[FR] Add Bank of Canada Valet API as a new provider extension。",
        "title": "踩坑日志"
      },
      "snapshot": {
        "contributors": 268,
        "forks": 6756,
        "license": "unknown",
        "note": "站点快照，非实时质量证明；用于开工前背景判断。",
        "stars": 67378
      },
      "source_url": "https://github.com/OpenBB-finance/OpenBB",
      "steps": [
        {
          "body": "不安装项目，先体验能力节奏。",
          "code": "preview",
          "title": "先试 Prompt"
        },
        {
          "body": "理解输入、输出、失败模式和边界。",
          "code": "manual",
          "title": "读说明书"
        },
        {
          "body": "把上下文交给宿主 AI 继续工作。",
          "code": "context",
          "title": "带给 AI"
        },
        {
          "body": "进入主力环境前先完成安装入口与风险边界验证。",
          "code": "verify",
          "title": "沙箱验证"
        }
      ],
      "subtitle": "Financial data platform for analysts, quants and AI agents.",
      "title": "OpenBB 能力包",
      "trial_prompt": "# OpenBB - 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 OpenBB-finance/OpenBB.\n\nProject:\n- Name: OpenBB\n- Repository: https://github.com/OpenBB-finance/OpenBB\n- Summary: Financial data platform for analysts, quants and AI agents.\n- Host target: local_cli\n\nGoal:\nHelp me evaluate this project for the following task without installing it yet: Financial data platform for analysts, quants and AI agents.\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. page-introduction: Introduction to OpenBB Platform. Produce one small intermediate artifact and wait for confirmation.\n2. page-installation: Installation Guide. Produce one small intermediate artifact and wait for confirmation.\n3. page-architecture: System Architecture. Produce one small intermediate artifact and wait for confirmation.\n4. page-core-concepts: Core Concepts. Produce one small intermediate artifact and wait for confirmation.\n5. page-obbject-system: OBBject System. Produce one small intermediate artifact and wait for confirmation.\n\nSource-backed evidence to keep in mind:\n- https://github.com/OpenBB-finance/OpenBB\n- https://github.com/OpenBB-finance/OpenBB#readme\n- openbb_platform/extensions/mcp_server/openbb_mcp_server/skills/build_workspace_app/SKILL.md\n- openbb_platform/extensions/mcp_server/openbb_mcp_server/skills/configure_mcp_server/SKILL.md\n- openbb_platform/extensions/mcp_server/openbb_mcp_server/skills/develop_extension/SKILL.md\n- openbb_platform/extensions/mcp_server/openbb_mcp_server/skills/work_with_server/SKILL.md\n- README.md\n- openbb_platform/README.md\n- openbb_platform/pyproject.toml\n- cli/pyproject.toml\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: [FR] Signed audit receipts for MCP server tool calls (regulatory complia（https://github.com/OpenBB-finance/OpenBB/issues/7455）；github/github_issue: [FR] Signed audit receipts for MCP server tool calls (regulatory complia（https://github.com/OpenBB-finance/OpenBB/issues/7455）；github/github_issue: [FR] Add Bank of Canada Valet API as a new provider extension（https://github.com/OpenBB-finance/OpenBB/issues/7490）；github/github_issue: [Bug] Widgets not saving their position and size after refresh（https://github.com/OpenBB-finance/OpenBB/issues/7479）；github/github_issue: [FR] Add Real-time Cryptocurrency Data Provider Integration（https://github.com/OpenBB-finance/OpenBB/issues/7177）；github/github_issue: [Bug] Openbb 4.5.0 cannot import name 'OBBject_EquityInfo' from 'openbb_（https://github.com/OpenBB-finance/OpenBB/issues/7279）；github/github_issue: [Bug] PyWry WebView Fails to Launch on Ubuntu 24.04（https://github.com/OpenBB-finance/OpenBB/issues/7148）；github/github_release: ODP Desktop v1.0.2（https://github.com/OpenBB-finance/OpenBB/releases/tag/Open-Data-Platform-v1.0.2）；github/github_release: OpenBB V4.7.0（https://github.com/OpenBB-finance/OpenBB/releases/tag/v4.7.0）；github/github_release: ODP Desktop v1.0.1（https://github.com/OpenBB-finance/OpenBB/releases/tag/Open-Data-Platform-v1.0.1）；github/github_release: OpenBB Platform v4.6.0（https://github.com/OpenBB-finance/OpenBB/releases/tag/v4.6.0）；github/github_release: OpenBB Platform v4.5.0（https://github.com/OpenBB-finance/OpenBB/releases/tag/v4.5.0）。这些是项目级外部声音，不作为单独质量证明。",
          "items": [
            {
              "kind": "github_issue",
              "source": "github",
              "title": "[FR] Signed audit receipts for MCP server tool calls (regulatory complia",
              "url": "https://github.com/OpenBB-finance/OpenBB/issues/7455"
            },
            {
              "kind": "github_issue",
              "source": "github",
              "title": "[FR] Signed audit receipts for MCP server tool calls (regulatory complia",
              "url": "https://github.com/OpenBB-finance/OpenBB/issues/7455"
            },
            {
              "kind": "github_issue",
              "source": "github",
              "title": "[FR] Add Bank of Canada Valet API as a new provider extension",
              "url": "https://github.com/OpenBB-finance/OpenBB/issues/7490"
            },
            {
              "kind": "github_issue",
              "source": "github",
              "title": "[Bug] Widgets not saving their position and size after refresh",
              "url": "https://github.com/OpenBB-finance/OpenBB/issues/7479"
            },
            {
              "kind": "github_issue",
              "source": "github",
              "title": "[FR] Add Real-time Cryptocurrency Data Provider Integration",
              "url": "https://github.com/OpenBB-finance/OpenBB/issues/7177"
            },
            {
              "kind": "github_issue",
              "source": "github",
              "title": "[Bug] Openbb 4.5.0 cannot import name 'OBBject_EquityInfo' from 'openbb_",
              "url": "https://github.com/OpenBB-finance/OpenBB/issues/7279"
            },
            {
              "kind": "github_issue",
              "source": "github",
              "title": "[Bug] PyWry WebView Fails to Launch on Ubuntu 24.04",
              "url": "https://github.com/OpenBB-finance/OpenBB/issues/7148"
            },
            {
              "kind": "github_release",
              "source": "github",
              "title": "ODP Desktop v1.0.2",
              "url": "https://github.com/OpenBB-finance/OpenBB/releases/tag/Open-Data-Platform-v1.0.2"
            },
            {
              "kind": "github_release",
              "source": "github",
              "title": "OpenBB V4.7.0",
              "url": "https://github.com/OpenBB-finance/OpenBB/releases/tag/v4.7.0"
            },
            {
              "kind": "github_release",
              "source": "github",
              "title": "ODP Desktop v1.0.1",
              "url": "https://github.com/OpenBB-finance/OpenBB/releases/tag/Open-Data-Platform-v1.0.1"
            },
            {
              "kind": "github_release",
              "source": "github",
              "title": "OpenBB Platform v4.6.0",
              "url": "https://github.com/OpenBB-finance/OpenBB/releases/tag/v4.6.0"
            },
            {
              "kind": "github_release",
              "source": "github",
              "title": "OpenBB Platform v4.5.0",
              "url": "https://github.com/OpenBB-finance/OpenBB/releases/tag/v4.5.0"
            }
          ],
          "status": "已收录 12 条来源",
          "title": "社区讨论"
        }
      ]
    },
    "homepage_card": {
      "category": "数据分析与投资研究",
      "desc": "Financial data platform for analysts, quants and AI agents.",
      "effort": "安装已验证",
      "forks": 6756,
      "icon": "chart",
      "name": "OpenBB 能力包",
      "risk": "可发布",
      "slug": "openbb",
      "stars": 67378,
      "tags": [
        "MCP 工具",
        "知识库问答",
        "流程自动化",
        "自动化工作流",
        "评测体系"
      ],
      "thumb": "green",
      "type": "Skill Pack"
    },
    "manual": {
      "markdown": "# https://github.com/OpenBB-finance/OpenBB 项目说明书\n\n生成时间：2026-05-17 18:27:47 UTC\n\n## 目录\n\n- [Introduction to OpenBB Platform](#page-introduction)\n- [Installation Guide](#page-installation)\n- [System Architecture](#page-architecture)\n- [Core Concepts](#page-core-concepts)\n- [OBBject System](#page-obbject-system)\n- [Provider Interface](#page-provider-interface)\n- [Data Providers Overview](#page-providers-overview)\n- [Developing Custom Providers](#page-provider-development)\n- [Extensions System](#page-extensions)\n- [Charting and Visualization](#page-charting)\n- [Command Line Interface](#page-cli)\n- [Desktop Application](#page-desktop-app)\n\n<a id='page-introduction'></a>\n\n## Introduction to OpenBB Platform\n\n### 相关页面\n\n相关主题：[Installation Guide](#page-installation), [System Architecture](#page-architecture)\n\n<details>\n<summary>相关源码文件</summary>\n\n以下源码文件用于生成本页说明：\n\n- [README.md](https://github.com/OpenBB-finance/OpenBB/blob/main/README.md)\n- [openbb_platform/README.md](https://github.com/OpenBB-finance/OpenBB/blob/main/openbb_platform/README.md)\n- [cli/README.md](https://github.com/OpenBB-finance/OpenBB/blob/main/cli/README.md)\n- [openbb_platform/extensions/news/README.md](https://github.com/OpenBB-finance/OpenBB/blob/main/openbb_platform/extensions/news/README.md)\n- [openbb_platform/extensions/commodity/README.md](https://github.com/OpenBB-finance/OpenBB/blob/main/openbb_platform/extensions/commodity/README.md)\n- [openbb_platform/extensions/economy/README.md](https://github.com/OpenBB-finance/OpenBB/blob/main/openbb_platform/extensions/economy/README.md)\n- [openbb_platform/extensions/technical/README.md](https://github.com/OpenBB-finance/OpenBB/blob/main/openbb_platform/extensions/technical/README.md)\n- [openbb_platform/extensions/derivatives/README.md](https://github.com/OpenBB-finance/OpenBB/blob/main/openbb_platform/extensions/derivatives/README.md)\n- [openbb_platform/extensions/regulators/README.md](https://github.com/OpenBB-finance/OpenBB/blob/main/openbb_platform/extensions/regulators/README.md)\n- [openbb_platform/extensions/mcp_server/README.md](https://github.com/OpenBB-finance/OpenBB/blob/main/openbb_platform/extensions/mcp_server/README.md)\n- [openbb_platform/providers/fmp/README.md](https://github.com/OpenBB-finance/OpenBB/blob/main/openbb_platform/providers/fmp/README.md)\n- [openbb_platform/providers/government_us/README.md](https://github.com/OpenBB-finance/OpenBB/blob/main/openbb_platform/providers/government_us/README.md)\n- [openbb_platform/providers/imf/README.md](https://github.com/OpenBB-finance/OpenBB/blob/main/openbb_platform/providers/imf/README.md)\n</details>\n\n# Introduction to OpenBB Platform\n\n## Overview\n\nThe OpenBB Platform is an open-source data integration foundation for financial data, designed to provide unified access to various financial data sources through a standardized Python interface. It enables developers and analysts to access market data, economic indicators, company fundamentals, and more through a consistent API. 资料来源：[README.md](https://github.com/OpenBB-finance/OpenBB/blob/main/README.md)\n\nThe platform follows a \"connect once, consume everywhere\" architecture, allowing seamless integration between different components and enabling data to be consumed across multiple interfaces including Python SDK, REST API, and the OpenBB Workspace enterprise UI. 资料来源：[README.md](https://github.com/OpenBB-finance/OpenBB/blob/main/README.md)\n\n## Architecture\n\nThe OpenBB Platform consists of several interconnected layers that work together to deliver financial data to end users.\n\n### System Architecture Diagram\n\n```mermaid\ngraph TD\n    A[OpenBB Workspace] <--> B[OpenBB Platform REST API]\n    B <--> C[Core Engine]\n    C <--> D[Extensions]\n    C <--> E[Data Providers]\n    D --> F[Technical Analysis]\n    D --> G[Economy]\n    D --> H[News]\n    D --> I[Commodity]\n    D --> J[Derivatives]\n    D --> K[Regulators]\n    D --> L[MCP Server]\n    E --> M[FMP]\n    E --> N[IMF]\n    E --> O[US Government]\n```\n\n### Key Components\n\n| Component | Description | Type |\n|-----------|-------------|------|\n| Core Engine | Central processing unit handling requests and data normalization | Core |\n| Extensions | Domain-specific functionality modules | Plugin |\n| Providers | Data source integrations (FMP, IMF, Government US, etc.) | Plugin |\n| REST API | FastAPI-based HTTP interface for programmatic access | Interface |\n| Python SDK | Native Python interface via `obb` object | Interface |\n| MCP Server | Model Context Protocol server for AI agent integration | Extension |\n\n## Installation\n\n### Python Package Installation\n\nThe primary method to install OpenBB Platform is via pip:\n\n```bash\npip install openbb\n```\n\nAfter installation, you can immediately start using the platform:\n\n```python\nfrom openbb import obb\noutput = obb.equity.price.historical(\"AAPL\")\ndf = output.to_dataframe()\n```\n\n资料来源：[README.md](https://github.com/OpenBB-finance/OpenBB/blob/main/README.md)\n\n### Local Development Setup\n\nFor local development with source code access, the following requirements must be met:\n\n- Git\n- Python 3.10 - 3.13\n- Virtual Environment with `poetry` installed\n- Local copy of the [GitHub repository](https://github.com/OpenBB-finance/OpenBB.git)\n\nTo install for local development:\n\n1. Activate your virtual environment\n2. Navigate to the `openbb_platform` folder\n3. Run `python dev_install.py -e` to install all packages in editable mode\n\n资料来源：[openbb_platform/README.md](https://github.com/OpenBB-finance/OpenBB/blob/main/openbb_platform/README.md)\n\n## Python SDK Usage\n\n### Basic Usage\n\nThe OpenBB Platform provides a unified `obb` object for all operations:\n\n```python\nfrom openbb import obb\n\n# Fetch equity historical data\nresult = obb.equity.price.historical(\"AAPL\", start_date=\"2023-01-01\")\ndf = result.to_dataframe()\n```\n\n### Setting API Keys\n\nMany data providers require API keys for authentication:\n\n```python\nfrom openbb import obb\nobb.user.credentials.fred_api_key = \"REPLACE_ME\"\nobb.user.credentials.polygon_api_key = \"REPLACE_ME\"\n```\n\n资料来源：[openbb_platform/README.md](https://github.com/OpenBB-finance/OpenBB/blob/main/openbb_platform/README.md)\n\n## REST API\n\nThe OpenBB Platform includes a ready-to-use REST API built with FastAPI. To start the API server:\n\n```bash\nuvicorn openbb_core.api.rest_api:app --host 0.0.0.0 --port 8000 --reload\n```\n\nAPI documentation is available under `/docs` endpoint. 资料来源：[openbb_platform/README.md](https://github.com/OpenBB-finance/OpenBB/blob/main/openbb_platform/README.md)\n\n### API Configuration\n\nRuntime settings and configurations for the REST API can be adjusted through system settings. See the [official documentation](https://docs.openbb.co/platform/settings/system_settings#api-settings) for detailed configuration options.\n\n## Extensions Ecosystem\n\nExtensions provide domain-specific functionality and can be installed independently. Each extension follows the same installation pattern via pip.\n\n### Available Extensions\n\n| Extension | Package Name | Description |\n|-----------|--------------|-------------|\n| Technical Analysis | `openbb-technical` | Technical analysis tools, indicators, and oscillators |\n| Economy | `openbb-economy` | Global macroeconomic data access |\n| News | `openbb-news` | News data integration |\n| Commodity | `openbb-commodity` | Commodity-related data and commands |\n| Derivatives | `openbb-derivatives` | Derivatives market data |\n| Regulators | `openbb-regulators` | Data from global market regulators |\n| MCP Server | `openbb-mcp-server` | Model Context Protocol server for AI agents |\n\n### Extension Installation\n\nInstall any extension using pip:\n\n```bash\npip install openbb-technical\npip install openbb-economy\npip install openbb-news\n```\n\n资料来源：[openbb_platform/extensions/technical/README.md](https://github.com/OpenBB-finance/OpenBB/blob/main/openbb_platform/extensions/technical/README.md), [openbb_platform/extensions/economy/README.md](https://github.com/OpenBB-finance/OpenBB/blob/main/openbb_platform/extensions/economy/README.md), [openbb_platform/extensions/news/README.md](https://github.com/OpenBB-finance/OpenBB/blob/main/openbb_platform/extensions/news/README.md)\n\n### MCP Server Extension\n\nThe MCP (Model Context Protocol) Server extension allows OpenBB Platform routes to be exposed as tools for AI agents. It supports inline MCP configuration for granular control:\n\n```python\nfrom openbb_mcp_server.models.mcp_config import MCPConfigModel\n```\n\nConfiguration properties include:\n\n- **`expose`** (`Optional[bool]`): Hide/show routes from MCP server\n- **`mcp_type`** (`Optional[MCPType]`): Classify as `\"tool\"`, `\"resource\"`, or `\"resource_template\"`\n- **`methods`** (`Optional[list[HTTPMethod]]`): Specify HTTP methods to expose\n\n资料来源：[openbb_platform/extensions/mcp_server/README.md](https://github.com/OpenBB-finance/OpenBB/blob/main/openbb_platform/extensions/mcp_server/README.md)\n\n## Data Providers\n\nProviders are integrations that connect to external data sources. They can be installed as separate packages.\n\n### Provider Installation\n\nProviders are installed via pip and then registered with the platform:\n\n```bash\npip install openbb-fmp\npip install openbb-imf\npip install openbb-us-government\n```\n\nAfter installation, rebuild Python static assets:\n\n```bash\nopenbb-build\n```\n\n资料来源：[openbb_platform/providers/fmp/README.md](https://github.com/OpenBB-finance/OpenBB/blob/main/openbb_platform/providers/fmp/README.md), [openbb_platform/providers/imf/README.md](https://github.com/OpenBB-finance/OpenBB/blob/main/openbb_platform/providers/imf/README.md)\n\n### Official Providers\n\n| Provider | Package | Description |\n|----------|---------|-------------|\n| Financial Modeling Prep | `openbb-fmp` | Company fundamentals, stock data, financial statements |\n| IMF | `openbb-imf` | International Monetary Fund data via SDMX API |\n| US Government | `openbb-us-government` | US Government data from data.gov |\n\n### US Government Provider Coverage\n\nThe US Government provider covers:\n\n- `obb.commodity.psd_report`\n- `obb.commodity.psd_data`\n- `obb.commodity.weather_bulletins`\n- `obb.fixed_income.government.treasury_auctions`\n- `obb.fixed_income.government.treasury_prices`\n\nAll covered services require no registration. 资料来源：[openbb_platform/providers/government_us/README.md](https://github.com/OpenBB-finance/OpenBB/blob/main/openbb_platform/providers/government_us/README.md)\n\n### IMF Provider Implementation\n\nThe IMF provider uses SDMX API to access dataflows. Key implementation details:\n\n- User input validation via constraints API for each dimension\n- Cached metadata contains all potential parameter values\n- Network requests made when code lists are not included in cache\n\n资料来源：[openbb_platform/providers/imf/README.md](https://github.com/OpenBB-finance/OpenBB/blob/main/openbb_platform/providers/imf/README.md)\n\n## Integration with OpenBB Workspace\n\nOpenBB Workspace is an enterprise UI that complements the open-source data platform. The platform's architecture enables seamless integration between the two components.\n\n### Data Flow\n\n```mermaid\ngraph LR\n    A[OpenBB Platform] -->|Custom Backend| B[OpenBB Workspace]\n    B -->|Visualization| C[Analyst Dashboard]\n    A -->|REST API| D[Third-party Applications]\n```\n\n### Connecting Platform to Workspace\n\n1. Start the API server with `openbb-api` (starts FastAPI on localhost port 6900)\n2. Add the server to OpenBB Workspace\n3. Access widgets and data exploration tools through the dashboard\n\n资料来源：[openbb_platform/providers/imf/README.md](https://github.com/OpenBB-finance/OpenBB/blob/main/openbb_platform/providers/imf/README.md)\n\n## CLI Integration\n\nThe OpenBB Platform can be accessed via the command-line interface:\n\n```bash\npip install openbb-cli\nopenbb\n```\n\n资料来源：[cli/README.md](https://github.com/OpenBB-finance/OpenBB/blob/main/cli/README.md)\n\n## Development with Cookiecutter\n\nFor developers creating new extensions or providers, the OpenBB Cookiecutter template provides a standardized project structure:\n\n```bash\npip install openbb-cookiecutter\nopenbb-cookiecutter\n```\n\nDevelopment workflow:\n\n1. Generate project from template\n2. Create Python environment for the project\n3. Install with `pip install -e .`\n4. Trigger static file generation with `openbb-build`\n5. Import package or start API\n\n资料来源：[cookiecutter/README.md](https://github.com/OpenBB-finance/OpenBB/blob/main/cookiecutter/README.md)\n\n## Getting Help and Contributing\n\n### Documentation\n\nComplete documentation is available at [https://docs.openbb.co](https://docs.openbb.co):\n\n- [Platform Documentation](https://docs.openbb.co/platform)\n- [API Reference](https://docs.openbb.co/python/reference)\n- [Developer Guide](https://docs.openbb.co/platform/developer_guide/contributing)\n\n### Community and Support\n\n| Channel | Link |\n|---------|------|\n| Discord | [openbb.co/discord](https://openbb.co/discord) |\n| GitHub Issues | [GitHub Issues](https://github.com/OpenBB-finance/OpenBB/issues) |\n| Social Media | [openbb.co/links](https://openbb.co/links) |\n\n### Issue Templates\n\n- [Bug Report](https://github.com/OpenBB-finance/OpenBB/issues/new?assignees=&labels=bug&template=bug_report.md)\n- [Improvement Suggestion](https://github.com/OpenBB-finance/OpenBB/issues/new?assignees=&labels=enhancement&template=enhancement.md)\n- [Feature Request](https://github.com/OpenBB-finance/OpenBB/issues/new?assignees=&labels=new+feature&template=feature_request.md)\n\n## License and Disclaimer\n\nThe OpenBB Platform is distributed under the **AGPLv3 License**.\n\n**Disclaimer**: Trading in financial instruments involves high risks including the risk of losing some, or all, of your investment amount. The data contained in the Open Data Platform is not necessarily accurate. OpenBB and any provider of data will not accept liability for any loss or damage as a result of trading or reliance on the information displayed.\n\n资料来源：[README.md](https://github.com/OpenBB-finance/OpenBB/blob/main/README.md)\n\n---\n\n<a id='page-installation'></a>\n\n## Installation Guide\n\n### 相关页面\n\n相关主题：[Introduction to OpenBB Platform](#page-introduction), [Command Line Interface](#page-cli)\n\n<details>\n<summary>相关源码文件</summary>\n\n以下源码文件用于生成本页说明：\n\n- [openbb_platform/README.md](https://github.com/OpenBB-finance/OpenBB/blob/main/openbb_platform/README.md)\n- [cli/README.md](https://github.com/OpenBB-finance/OpenBB/blob/main/cli/README.md)\n- [openbb_platform/extensions/news/README.md](https://github.com/OpenBB-finance/OpenBB/blob/main/openbb_platform/extensions/news/README.md)\n- [openbb_platform/extensions/commodity/README.md](https://github.com/OpenBB-finance/OpenBB/blob/main/openbb_platform/extensions/commodity/README.md)\n- [openbb_platform/extensions/mcp_server/README.md](https://github.com/OpenBB-finance/OpenBB/blob/main/openbb_platform/extensions/mcp_server/README.md)\n- [cookiecutter/README.md](https://github.com/OpenBB-finance/OpenBB/blob/main/cookiecutter/README.md)\n- [openbb_platform/providers/cftc/README.md](https://github.com/OpenBB-finance/OpenBB/blob/main/openbb_platform/providers/cftc/README.md)\n- [openbb_platform/providers/multpl/README.md](https://github.com/OpenBB-finance/OpenBB/blob/main/openbb_platform/providers/multpl/README.md)\n</details>\n\n# Installation Guide\n\nThis guide provides comprehensive instructions for installing and configuring the OpenBB Platform ecosystem. The installation process supports multiple deployment methods including the Python Package (ODP), CLI interface, Platform extensions, and provider integrations.\n\n## Overview\n\nThe OpenBB Platform consists of several interconnected components that can be installed independently or together. The architecture supports modular installation, allowing users to install only the components they need for their specific use case.\n\n```mermaid\ngraph TD\n    A[OpenBB Platform Core] --> B[CLI Interface]\n    A --> C[Python API]\n    A --> D[Extensions]\n    A --> E[Providers]\n    D --> D1[News Extension]\n    D --> D2[Commodity Extension]\n    D --> D3[MCP Server]\n    E --> E1[CFTC Provider]\n    E --> E2[Multpl Provider]\n    E --> E3[Congress Gov Provider]\n```\n\n## Python Package Installation\n\nThe OpenBB Platform Python Package (ODP) serves as the core installation method for all components.\n\n### Standard Installation via PyPI\n\nThe recommended method for installing the OpenBB Platform is through PyPI using pip:\n\n```bash\npip install openbb\n```\n\n资料来源：[README.md](https://github.com/OpenBB-finance/OpenBB/blob/main/README.md)\n\n### Platform Installation\n\nThe Platform package includes the core libraries and dependencies required for data analysis and financial computations. After installation, the Platform can be accessed programmatically:\n\n```python\nfrom openbb import obb\n\n# Example: Fetch S&P 500 multiples data\ndata = obb.index.sp500_multiples()\n```\n\n资料来源：[openbb_platform/providers/multpl/README.md](https://github.com/OpenBB-finance/OpenBB/blob/main/openbb_platform/providers/multpl/README.md)\n\n## CLI Installation\n\nThe OpenBB CLI provides a command-line interface for interacting with the Platform.\n\n### Installation via PyPI\n\n```bash\npip install openbb-cli\n```\n\n资料来源：[cli/README.md](https://github.com/OpenBB-finance/OpenBB/blob/main/cli/pyproject.toml)\n\n### Deployment\n\nAfter installation, deploy the OpenBB Platform CLI by running:\n\n```bash\nopenbb\n```\n\n资料来源：[cli/README.md](https://github.com/OpenBB-finance/OpenBB/blob/main/cli/README.md)\n\n### Installation Verification\n\nA successful installation produces the following output:\n\n![OpenBB CLI Interface](https://github.com/OpenBB-finance/OpenBB/assets/48914296/f606bb6e-fa00-4fc8-bad2-8269bb4fc38e)\n\n## Extension Installation\n\nExtensions extend the core Platform functionality with specialized features. Each extension is distributed as a separate Python package installable via pip.\n\n### News Extension\n\nThe News Extension provides news aggregation capabilities for the OpenBB Platform.\n\n```bash\npip install openbb-news\n```\n\n资料来源：[openbb_platform/extensions/news/README.md](https://github.com/OpenBB-finance/OpenBB/blob/main/openbb_platform/extensions/news/README.md)\n\n### Commodity Extension\n\nThe Commodity Extension provides commands for commodity-related financial data.\n\n```bash\npip install openbb-commodity\n```\n\n资料来源：[openbb_platform/extensions/commodity/README.md](https://github.com/OpenBB-finance/OpenBB/blob/main/openbb_platform/extensions/commodity/README.md)\n\n### MCP Server Extension\n\nThe MCP Server Extension exposes OpenBB Platform endpoints as Model Context Protocol (MCP) tools, enabling AI assistant integration.\n\n```bash\npip install openbb-mcp-server\n```\n\n资料来源：[openbb_platform/extensions/mcp_server/README.md](https://github.com/OpenBB-finance/OpenBB/blob/main/openbb_platform/extensions/mcp_server/README.md)\n\n### Extension Configuration via MCP\n\nThe MCP Server extension supports inline configuration using the `MCPConfigModel`:\n\n```python\nfrom openbb_mcp_server.models.mcp_config import MCPConfigModel\n```\n\nThe configuration supports the following properties:\n\n| Property | Type | Description |\n|----------|------|-------------|\n| `expose` | `Optional[bool]` | Set to `False` to hide a route from the MCP server |\n| `mcp_type` | `Optional[MCPType]` | Classify as `\"tool\"`, `\"resource\"`, or `\"resource_template\"` |\n| `methods` | `Optional[list[HTTPMethod]]` | Specify HTTP methods to expose |\n\n资料来源：[openbb_platform/extensions/mcp_server/README.md](https://github.com/OpenBB-finance/OpenBB/blob/main/openbb_platform/extensions/mcp_server/README.md)\n\n## Provider Installation\n\nProviders are data source integrations that supply financial and economic data to the Platform.\n\n### Available Providers\n\n| Provider | Package | Command |\n|----------|---------|---------|\n| CFTC | openbb-cftc | `pip install openbb-cftc` |\n| Multpl | openbb-multpl | `pip install openbb-multpl` |\n| Congress Gov | openbb-congress-gov | Included in Platform core |\n\n资料来源：[openbb_platform/providers/cftc/README.md](https://github.com/OpenBB-finance/OpenBB/blob/main/openbb_platform/providers/cftc/README.md)\n\n### CFTC Provider Usage\n\nThe CFTC provider provides Commitments of Traders (COT) data:\n\n```python\nfrom openbb import obb\n\n# Search for commodities\nsearch_results = obb.cftc.cot_search(query=\"gold\")\nprint(search_results.to_df())\n\n# Fetch specific report\nreport = obb.cftc.cot(code=\"CFTC_088695\", measure=\"percent_of_oi\", limit=4)\nprint(report.to_df().T)\n```\n\n资料来源：[openbb_platform/providers/cftc/README.md](https://github.com/OpenBB-finance/OpenBB/blob/main/openbb_platform/providers/cftc/README.md)\n\n### Multpl Provider Usage\n\nThe Multpl provider provides S&P 500 data:\n\n```python\nfrom openbb import obb\n\ndata = obb.index.sp500_multiples()\n```\n\n资料来源：[openbb_platform/providers/multpl/README.md](https://github.com/OpenBB-finance/OpenBB/blob/main/openbb_platform/providers/multpl/README.md)\n\n### Congress Gov Provider Usage\n\nThe Congress Gov provider provides US Congressional data:\n\n```python\nfrom openbb import obb\n\n# Get recent bills\nbills = obb.uscongress.bills(limit=10)\n\n# Get bill details\nbill_info = obb.uscongress.bill_info(bill_url=\"119/hr/1\")\n```\n\n资料来源：[openbb_platform/providers/congress_gov/README.md](https://github.com/OpenBB-finance/OpenBB/blob/main/openbb_platform/providers/congress_gov/README.md)\n\n## REST API Deployment\n\nThe Platform can be deployed as a REST API for remote access and integration with other applications.\n\n### Starting the API Server\n\n```bash\nopenbb-api\n```\n\nThis starts the server over localhost, making the Platform accessible via HTTP endpoints.\n\n资料来源：[openbb_platform/providers/cftc/README.md](https://github.com/OpenBB-finance/OpenBB/blob/main/openbb_platform/providers/cftc/README.md)\n\n### Platform Connection\n\nTo connect to the Platform from external applications:\n\n1. Navigate to the \"Apps\" tab\n2. Click on \"Connect backend\"\n3. Fill in the connection form:\n   - **Name:** Open Data Platform\n   - **URL:** `http://127.0.0.1:6900`\n4. Click \"Test\" to verify connectivity\n5. Click \"Add\" to complete the connection\n\n资料来源：[README.md](https://github.com/OpenBB-finance/OpenBB/blob/main/README.md)\n\n## Development Environment Setup\n\nFor developers contributing to the OpenBB Platform, a cookiecutter template is available to scaffold new extensions and providers.\n\n### Cookiecutter Template\n\n1. Install the cookiecutter template:\n```bash\npip install openbb-cookiecutter\n```\n\n2. Navigate to the desired output location and run:\n```bash\nopenbb-cookiecutter\n```\n\n3. Create a new Python environment for the project.\n\n4. Install the generated package:\n```bash\npip install -e .\n```\n\n5. Generate Python static files:\n```bash\nopenbb-build\n```\n\n6. Import the package or start the API.\n\n资料来源：[cookiecutter/README.md](https://github.com/OpenBB-finance/OpenBB/blob/main/cookiecutter/README.md)\n\n## Installation Workflow\n\n```mermaid\ngraph TD\n    A[Start Installation] --> B{Select Installation Type}\n    B -->|Python Package| C[pip install openbb]\n    B -->|CLI| D[pip install openbb-cli]\n    B -->|Extensions| E[Select Required Extensions]\n    B -->|Providers| F[Select Required Providers]\n    E --> G[pip install openbb-{extension}]\n    F --> H[pip install openbb-{provider}]\n    C --> I{Additional Components?}\n    D --> I\n    G --> J[Verify Installation]\n    H --> J\n    I -->|Yes| E\n    I -->|No| J\n    J --> K[Configure Environment]\n    K --> L[Start Using OpenBB]\n```\n\n## Installation Sources Reference\n\n| Component | Installation Source | Documentation |\n|-----------|---------------------|---------------|\n| Core Platform | PyPI (`pip install openbb`) | [docs.openbb.co](https://docs.openbb.co/python/installation) |\n| CLI | PyPI (`pip install openbb-cli`) | [docs.openbb.co/cli](https://docs.openbb.co/cli/installation) |\n| Platform Extensions | Individual PyPI packages | [docs.openbb.co/platform](https://docs.openbb.co/platform/developer_guide/contributing) |\n| Cookiecutter | PyPI (`pip install openbb-cookiecutter`) | [docs.openbb.co/python/developer](https://docs.openbb.co/python/developer) |\n\n## Troubleshooting\n\n### Common Installation Issues\n\n1. **Dependency Conflicts**: Ensure Python 3.8+ is installed and consider using a virtual environment\n2. **Permission Errors**: Use `--user` flag or virtual environments to avoid system-wide installations\n3. **Network Issues**: Verify PyPI connectivity and consider using mirrors if necessary\n\n### Verification Steps\n\nAfter installation, verify the setup by importing the core module:\n\n```bash\npython -c \"from openbb import obb; print(obb)\"\n```\n\nFor CLI verification:\n\n```bash\nopenbb --version\n```\n\n## Additional Resources\n\n- **User Documentation**: [docs.openbb.co](https://docs.openbb.co)\n- **Developer Documentation**: [docs.openbb.co/python/developer](https://docs.openbb.co/python/developer)\n- **Platform Developer Guide**: [docs.openbb.co/platform/developer_guide/contributing](https://docs.openbb.co/platform/developer_guide/contributing)\n- **Support**: support@openbb.co\n- **General Inquiries**: hello@openbb.co\n\n---\n\n<a id='page-architecture'></a>\n\n## System Architecture\n\n### 相关页面\n\n相关主题：[Core Concepts](#page-core-concepts), [OBBject System](#page-obbject-system)\n\n<details>\n<summary>相关源码文件</summary>\n\n以下源码文件用于生成本页说明：\n\n- [openbb_platform/core/openbb_core/api/rest_api.py](https://github.com/OpenBB-finance/OpenBB/blob/main/openbb_platform/core/openbb_core/api/rest_api.py)\n- [openbb_platform/README.md](https://github.com/OpenBB-finance/OpenBB/blob/main/openbb_platform/README.md)\n- [openbb_platform/providers/README.md](https://github.com/OpenBB-finance/OpenBB/blob/main/openbb_platform/providers/README.md)\n- [openbb_platform/extensions/platform_api/README.md](https://github.com/OpenBB-finance/OpenBB/blob/main/openbb_platform/extensions/platform_api/README.md)\n- [openbb_platform/extensions/mcp_server/README.md](https://github.com/OpenBB-finance/OpenBB/blob/main/openbb_platform/extensions/mcp_server/README.md)\n- [cli/README.md](https://github.com/OpenBB-finance/OpenBB/blob/main/cli/README.md)\n- [desktop/src/routes/installation-progress.tsx](https://github.com/OpenBB-finance/OpenBB/blob/main/desktop/src/routes/installation-progress.tsx)\n- [desktop/src/routes/backends.tsx](https://github.com/OpenBB-finance/OpenBB/blob/main/desktop/src/routes/backends.tsx)\n- [desktop/src-tauri/src/tauri_handlers/credentials.rs](https://github.com/OpenBB-finance/OpenBB/blob/main/desktop/src-tauri/src/tauri_handlers/credentials.rs)\n</details>\n\n# System Architecture\n\n## Overview\n\nThe OpenBB Platform is a modular, extensible investment research platform designed to provide financial data and analytics through multiple interfaces. The system architecture follows a plugin-based design pattern that separates core functionality from data providers and interface implementations.\n\n资料来源：[openbb_platform/README.md]()\n\n## High-Level Architecture\n\nThe OpenBB Platform consists of three primary deployment targets:\n\n| Layer | Component | Description |\n|-------|-----------|-------------|\n| **Core** | Platform Core | Shared libraries, data models, provider registry, and query execution engine |\n| **Interface** | CLI | Terminal-based interactive interface |\n| **Interface** | Desktop | Cross-platform desktop application (Tauri-based) |\n| **Interface** | REST API | FastAPI-based HTTP API server |\n| **Extension** | MCP Server | Model Context Protocol integration for AI tooling |\n| **Extension** | Platform API | Widgets and workspace applications |\n\n资料来源：[cli/README.md](), [openbb_platform/README.md]()\n\n## Architecture Diagram\n\n```mermaid\ngraph TD\n    subgraph \"Interface Layer\"\n        CLI[CLI<br>openbb command]\n        DESKTOP[Desktop App<br>Tauri + React]\n        API[REST API<br>FastAPI]\n    end\n\n    subgraph \"Extension Layer\"\n        MCP[MCP Server<br>Model Context Protocol]\n        PLATFORM_API[Platform API<br>Widgets & Apps]\n    end\n\n    subgraph \"Core Layer\"\n        APP[App Module<br>openbb_core.app]\n        REGISTRY[Provider Registry]\n        EXECUTOR[Query Executor]\n    end\n\n    subgraph \"Provider Layer\"\n        GOV_US[Government US Provider]\n        CFTC[CFTC Provider]\n        MULTPL[Multpl Provider]\n        NEWS[News Extension]\n        COMMODITY[Commodity Extension]\n        CUSTOM[Custom Providers]\n    end\n\n    CLI --> APP\n    DESKTOP --> APP\n    API --> APP\n    MCP --> APP\n    PLATFORM_API --> APP\n\n    APP --> REGISTRY\n    APP --> EXECUTOR\n\n    REGISTRY --> GOV_US\n    REGISTRY --> CFTC\n    REGISTRY --> MULTPL\n    REGISTRY --> NEWS\n    REGISTRY --> COMMODITY\n    REGISTRY --> CUSTOM\n\n    EXECUTOR --> REGISTRY\n```\n\n## Component Details\n\n### Platform Core\n\nThe core module (`openbb_core`) contains the fundamental infrastructure for the entire platform:\n\n- **Data Models**: Standardized schemas for financial data\n- **Provider Registry**: Dynamic registration and discovery of data providers\n- **Query Executor**: Handles request routing and execution across providers\n- **Authentication**: API key management and credential handling\n\n资料来源：[openbb_platform/README.md](), [openbb_platform/providers/README.md]()\n\n### Provider System\n\nThe provider architecture allows data sources to be implemented as pluggable extensions. Each provider follows a standardized structure:\n\n```\nopenbb_platform/providers/<provider_name>/\n├── README.md\n├── pyproject.toml\n├── poetry.lock\n├── tests/\n└── openbb_<provider_name>/\n    ├── __init__.py\n    ├── models/\n    │   └── <model>.py\n    └── utils/\n        └── <helper>.py\n```\n\n资料来源：[openbb_platform/providers/README.md]()\n\n#### Supported Provider Categories\n\n| Category | Examples | Functionality |\n|----------|----------|---------------|\n| Government Data | `obb.fixed_income.government.treasury_auctions` | US Treasury and regulatory data |\n| Commodity | `obb.commodity.psd_report`, `obb.commodity.weather_bulletins` | Commodity market data |\n| Futures/COT | `obb.cftc.cot`, `obb.cftc.cot_search` | CFTC Commitments of Traders |\n| Market Indices | `obb.index.sp500_multiples` | Index and market multiples |\n| News | News Extension | Financial news aggregation |\n| Regulatory | Regulators Extension | Global market regulator data |\n\n资料来源：[openbb_platform/providers/government_us/README.md](), [openbb_platform/providers/cftc/README.md](), [openbb_platform/providers/multpl/README.md]()\n\n### REST API Architecture\n\nThe FastAPI-based REST API provides programmatic access to all platform functionality:\n\n```python\napp = FastAPI(\n    title=system.api_settings.title,\n    description=system.api_settings.description,\n    version=system.api_settings.version,\n    servers=[\n        {\"url\": s.url, \"description\": s.description}\n        for s in system.api_settings.servers\n    ],\n)\napp.add_middleware(\n    CORSMiddleware,\n    allow_origins=system.api_settings.cors.allow_origins,\n    allow_methods=system.api_settings.cors.allow_methods,\n    allow_headers=system.api_settings.cors.allow_headers,\n)\n```\n\n资料来源：[openbb_platform/core/openbb_core/api/rest_api.py:38-70]()\n\n#### API Configuration Options\n\nThe REST API supports configurable settings including:\n\n- `title`: API title\n- `description`: API description\n- `version`: API version\n- `terms_of_service`: Terms of service URL\n- `contact`: Contact information (name, URL, email)\n- `license_info`: License details (name, URL)\n- `servers`: Server configurations with URLs and descriptions\n- `cors`: Cross-Origin Resource Sharing settings\n\nStart the API server with:\n\n```bash\nuvicorn openbb_core.api.rest_api:app --host 0.0.0.0 --port 8000 --reload\n```\n\n资料来源：[openbb_platform/core/openbb_core/api/rest_api.py](), [openbb_platform/README.md]()\n\n### MCP Server Extension\n\nThe Model Context Protocol (MCP) server integration exposes OpenBB functionality as tools for AI assistants:\n\n```json\n{\n  \"description\": \"Generate a brief summary of GDP for a country.\",\n  \"messages\": [\n    {\n      \"role\": \"user\",\n      \"content\": {\n        \"type\": \"text\",\n        \"text\": \"Use the tool, economy_gdp, to perform the following task.\\n\\nProvide a concise summary of the GDP for Japan over the last 10 years.\"\n      }\n    }\n  ]\n}\n```\n\n#### MCP Configuration Options\n\n| Property | Type | Description |\n|----------|------|-------------|\n| `expose` | `Optional[bool]` | Set to `False` to hide a route from MCP server |\n| `mcp_type` | `Optional[MCPType]` | Classify as `\"tool\"`, `\"resource\"`, or `\"resource_template\"` |\n| `methods` | `Optional[list[HTTPMethod]]` | Specify HTTP methods to expose |\n\n资料来源：[openbb_platform/extensions/mcp_server/README.md]()\n\n### Desktop Application Architecture\n\nThe desktop application uses Tauri (Rust backend) with React frontend:\n\n```mermaid\ngraph LR\n    subgraph \"Desktop Frontend\"\n        UI[React Components]\n        ROUTES[Routes: installation-progress, backends, api-keys, environments]\n    end\n\n    subgraph \"Tauri Backend\"\n        HANDLERS[Tauri Handlers]\n        CREDENTIALS[Credentials Handler]\n    end\n\n    UI --> HANDLERS\n    HANDLERS --> CREDENTIALS\n```\n\n#### Desktop Installation Flow\n\nThe desktop application manages installation through phases:\n\n1. **Miniforge Setup**: Python environment manager installation\n2. **Core Libraries**: OpenBB environment with dependencies\n3. **Extensions**: User-selected extensions and PyPI packages\n\n资料来源：[desktop/src/routes/installation-progress.tsx](), [desktop/src/routes/backends.tsx]()\n\n#### Credential Management\n\nThe desktop application handles credential storage through platform-specific editors:\n\n| Platform | Editor | Configuration |\n|----------|--------|---------------|\n| Windows | Notepad | `.env`, `.condarc`, etc. |\n| macOS | TextEdit | Basic text editing |\n| Linux | gedit/kate/leafpad/mousepad/xed | Multiple fallback editors |\n\n资料来源：[desktop/src-tauri/src/tauri_handlers/credentials.rs]()\n\n### Platform API Extension\n\nThe Platform API extension provides widget management and workspace functionality:\n\n| File | Default Location | Purpose |\n|------|------------------|---------|\n| `widgets.json` | `~/OpenBBUserData/widgets.json` | Widget configuration |\n| `workspace_apps.json` | `~/OpenBBUserData/workspace_apps.json` | Custom workspace apps |\n\nConfiguration options:\n- `--editable`: Enable live editing without rebuild\n- `--no-build`: Serve file directly without build process\n- `--widgets-json`: Custom widgets file path\n- `--apps-json`: Custom apps file path\n\n资料来源：[openbb_platform/extensions/platform_api/README.md]()\n\n## Deployment Workflow\n\n```mermaid\ngraph TD\n    A[User Installation] --> B{M Installation Target}\n    B -->|CLI| C[pip install openbb-cli]\n    B -->|Desktop| D[Download Desktop App]\n    B -->|Platform| E[pip install openbb-platform]\n    B -->|Extension| F[pip install openbb-<extension>]\n\n    C --> G[openbb command]\n    D --> H[Tauri Desktop App]\n    E --> I[REST API Server]\n    F --> J[Add-on Functionality]\n\n    G --> K[Python Runtime + Providers]\n    H --> K\n    I --> K\n    J --> K\n\n    K --> L[Data Providers]\n```\n\n资料来源：[cli/README.md](), [openbb_platform/README.md](), [openbb_platform/extensions/news/README.md](), [openbb_platform/extensions/commodity/README.md]()\n\n## Local Development Setup\n\nFor local development, the platform uses Poetry for dependency management:\n\n```bash\n# 1. Clone repository\ngit clone https://github.com/OpenBB-finance/OpenBB.git\n\n# 2. Navigate to platform directory\ncd openbb_platform\n\n# 3. Install in editable mode\npython dev_install.py -e\n```\n\nRequirements:\n- Git\n- Python 3.10 - 3.13\n- Virtual Environment with Poetry installed\n\n资料来源：[openbb_platform/README.md]()\n\n## Security Architecture\n\n### API Key Management\n\nAPI keys are managed through the `obb.user.credentials` interface:\n\n```python\nfrom openbb import obb\nobb.user.credentials.fred_api_key = \"REPLACE_ME\"\nobb.user.credentials.polygon_api_key = \"REPLACE_ME\"\n```\n\n### File-Based Credential Storage\n\n| File | Format | Purpose |\n|------|--------|---------|\n| `.env` | Environment variables | API keys and secrets |\n| `.condarc` | YAML | Conda configuration |\n| `config.py` | Python | User preferences |\n\nThe desktop application provides UI for importing/exporting credentials as JSON or `.env` files.\n\n资料来源：[openbb_platform/README.md](), [desktop/src/routes/api-keys.tsx]()\n\n## Extension Discovery\n\nThe OpenBB Hub provides a centralized location for discovering extensions:\n\n```bash\n# Browse available extensions\n# https://my.openbb.co/app/platform/extensions\n```\n\nAvailable extension types:\n- Data Providers (e.g., `openbb-us-government`, `openbb-multpl`)\n- Data Services (e.g., `openbb-news`, `openbb-commodity`)\n- Integration Adapters (e.g., `openbb-mcp-server`, `openbb-regulators`)\n\n资料来源：[cli/README.md](), [openbb_platform/providers/government_us/README.md](), [openbb_platform/providers/multpl/README.md]()\n\n## Conclusion\n\nThe OpenBB Platform architecture emphasizes modularity, extensibility, and multi-interface support. The core layer handles data abstraction and provider management, while the interface layer provides diverse ways to interact with the platform. The extension system enables third-party contributions while maintaining consistency across the ecosystem.\n\n---\n\n<a id='page-core-concepts'></a>\n\n## Core Concepts\n\n### 相关页面\n\n相关主题：[System Architecture](#page-architecture), [OBBject System](#page-obbject-system), [Provider Interface](#page-provider-interface)\n\n<details>\n<summary>相关源码文件</summary>\n\n以下源码文件用于生成本页说明：\n\n- [openbb_platform/core/openbb_core/app/model/obbject.py](https://github.com/OpenBB-finance/OpenBB/blob/main/openbb_platform/core/openbb_core/app/model/obbject.py)\n- [openbb_platform/core/openbb_core/provider/abstract/provider.py](https://github.com/OpenBB-finance/OpenBB/blob/main/openbb_platform/core/openbb_core/provider/abstract/provider.py)\n- [openbb_platform/core/openbb_core/provider/abstract/fetcher.py](https://github.com/OpenBB-finance/OpenBB/blob/main/openbb_platform/core/openbb_core/provider/abstract/fetcher.py)\n- [openbb_platform/core/openbb_core/provider/abstract/data.py](https://github.com/OpenBB-finance/OpenBB/blob/main/openbb_platform/core/openbb_core/provider/abstract/data.py)\n- [openbb_platform/providers/README.md](https://github.com/OpenBB-finance/OpenBB/blob/main/openbb_platform/providers/README.md)\n- [openbb_platform/extensions/news/README.md](https://github.com/OpenBB-finance/OpenBB/blob/main/openbb_platform/extensions/news/README.md)\n</details>\n\n# Core Concepts\n\nThe OpenBB Platform is a modular financial data infrastructure designed to provide unified access to diverse financial data sources. Built on Python with a FastAPI REST API layer, the platform abstracts data provider complexity behind a consistent interface, enabling developers and analysts to access market data, economic indicators, and financial analytics through a standardized workflow.\n\nThis page documents the fundamental architectural concepts that underpin the OpenBB Platform, including the OBBject data model, the provider abstraction system, the fetcher pattern, and the extension mechanism.\n\n---\n\n## Architecture Overview\n\nThe OpenBB Platform follows a layered architecture that separates concerns between data sources, data processing, and API delivery. At its core, the platform uses an abstraction layer that allows multiple data providers to be integrated without affecting the consumer API.\n\n```mermaid\ngraph TD\n    subgraph \"Client Layer\"\n        CLI[OpenBB CLI]\n        REST[REST API]\n        PY[Python SDK]\n    end\n    \n    subgraph \"Core Platform\"\n        ROUTER[Router / API Routes]\n        OBB[OBBject Model]\n        HUB[Extension Hub]\n    end\n    \n    subgraph \"Provider Abstraction\"\n        PROVIDER[Provider Base Class]\n        FETCHER[Fetcher Abstract]\n        DATA[Data Models]\n    end\n    \n    subgraph \"Providers\"\n        FRED[FRED Provider]\n        POLYGON[Polygon Provider]\n        FINVIZ[Finviz Provider]\n        CFTC[CFTC Provider]\n        CUSTOM[Custom Providers]\n    end\n    \n    CLI --> ROUTER\n    REST --> ROUTER\n    PY --> OBB\n    ROUTER --> OBB\n    OBB --> PROVIDER\n    PROVIDER --> FETCHER\n    FETCHER --> DATA\n    PROVIDER --> FRED\n    PROVIDER --> POLYGON\n    PROVIDER --> FINVIZ\n    PROVIDER --> CFTC\n    PROVIDER --> CUSTOM\n```\n\n资料来源：[openbb_platform/README.md](https://github.com/OpenBB-finance/OpenBB/blob/main/openbb_platform/README.md)\n\n---\n\n## OBBject Model\n\nThe OBBject is the fundamental data container in the OpenBB Platform. Every data response returned by the platform is encapsulated within an OBBject, providing a consistent interface for accessing results, metadata, and utility methods.\n\n### Purpose and Scope\n\nThe OBBject serves multiple roles within the platform:\n\n- **Data Container**: Holds the actual results from data providers in a structured format\n- **Metadata Carrier**: Includes provider information, warnings, and pagination details\n- **Serialization Interface**: Supports conversion to various formats (DataFrame, CSV, JSON)\n- **Chainable Results**: Enables method chaining for data transformation\n\n资料来源：[openbb_platform/core/openbb_core/app/model/obbject.py](https://github.com/OpenBB-finance/OpenBB/blob/main/openbb_platform/core/openbb_core/app/model/obbject.py)\n\n### OBBject Structure\n\n| Component | Type | Description |\n|-----------|------|-------------|\n| `results` | Any | The primary data returned by the query |\n| `provider` | str | Name of the data provider that supplied the data |\n| `params` | dict | Parameters used in the original request |\n| `metadata` | dict | Additional context about the response |\n| `warnings` | list | Any warnings generated during retrieval |\n| `chart` | object | Optional charting configuration |\n\n### Usage Pattern\n\n```python\nfrom openbb import obb\n\n# Standard query returning an OBBject\nresult = obb.equity.price.historical(symbol=\"AAPL\", provider=\"polygon\")\n\n# Access results\nprint(result.results)\n\n# Convert to DataFrame\ndf = result.to_df()\n\n# Access metadata\nprint(result.provider)\nprint(result.params)\n```\n\n---\n\n## Provider System\n\nThe provider system is the abstraction layer that enables the OpenBB Platform to integrate multiple data sources through a unified interface. Each provider implements a common interface while handling the specifics of its underlying data source.\n\n### Provider Architecture\n\n```mermaid\nclassDiagram\n    class Provider {\n        <<abstract>>\n        +name: str\n        +website: str\n        +description: str\n        +credentials: dict\n        +repositories: list\n        +models: dict\n        +router: APIRouter\n        +fetch_standard_data()\n        +fetch_data()\n    }\n    \n    class Model {\n        <<abstract>>\n        +provider: Provider\n        +name: str\n        +query_params: BaseModel\n        +data: BaseModel\n        +transform()\n    }\n    \n    Provider --> Model : contains\n    \n    class PolygonProvider {\n        +name = \"polygon\"\n        +credentials: [api_key]\n    }\n    \n    class FREDProvider {\n        +name = \"fred\"\n        +credentials: [api_key]\n    }\n    \n    class FinvizProvider {\n        +name = \"finviz\"\n    }\n    \n    PolygonProvider --|> Provider\n    FREDProvider --|> Provider\n    FinvizProvider --|> Provider\n```\n\n资料来源：[openbb_platform/core/openbb_core/provider/abstract/provider.py](https://github.com/OpenBB-finance/OpenBB/blob/main/openbb_platform/core/openbb_core/provider/abstract/provider.py)\n\n### Provider Directory Structure\n\nEach provider follows a standardized directory structure:\n\n```\nopenbb_platform\n└───providers\n    └───<provider_name>\n        ├── README.md\n        ├── pyproject.toml\n        ├── poetry.lock\n        ├── tests/\n        └── openbb_<provider_name>\n            ├── __init__.py\n            ├── models/\n            │   ├── <model_name>.py\n            │   └── ...\n            └── utils/\n                ├── <helper>.py\n                └── ...\n```\n\n资料来源：[openbb_platform/providers/README.md](https://github.com/OpenBB-finance/OpenBB/blob/main/openbb_platform/providers/README.md)\n\n### Available Provider Categories\n\n| Category | Description | Example Endpoints |\n|----------|-------------|-------------------|\n| Market Data | Real-time and historical market prices | `obb.equity.price.historical` |\n| Economic | Economic indicators and datasets | `obb.economy.gdp`, `obb.economy.cpi` |\n| Government | US government financial data | `obb.fixed_income.government.treasury_auctions` |\n| Commodities | Commodity market data | `obb.commodity.psd_report` |\n| News | Financial news aggregation | News extension endpoints |\n| Technical | Technical analysis indicators | `obb.technical.indicators` |\n\n---\n\n## Fetcher Pattern\n\nThe fetcher is the abstraction responsible for executing data retrieval requests against a specific provider. Fetchers handle the transformation of query parameters into API calls and normalize the response into the platform's standard data models.\n\n### Fetcher Lifecycle\n\n```mermaid\nsequenceDiagram\n    participant Client as Client Request\n    participant Fetcher as Fetcher\n    participant Provider as Provider API\n    participant Model as Data Model\n    \n    Client->>Fetcher: Execute query with parameters\n    Fetcher->>Provider: Build and send API request\n    Provider-->>Fetcher: Raw response data\n    Fetcher->>Model: Parse and validate response\n    Model-->>Fetcher: Normalized data object\n    Fetcher-->>Client: OBBject with results\n```\n\n资料来源：[openbb_platform/core/openbb_core/provider/abstract/fetcher.py](https://github.com/OpenBB-finance/OpenBB/blob/main/openbb_platform/core/openbb_core/provider/abstract/fetcher.py)\n\n### Fetcher Configuration\n\n| Parameter | Type | Description |\n|-----------|------|-------------|\n| `definitions` | dict | Mapping of endpoint names to definitions |\n| `credentials` | Credentials | Provider authentication credentials |\n| `param_fields` | list | Fields to include in query parameters |\n| `data_fields` | list | Fields to include in response data |\n| `optional_params` | list | Parameters that are optional |\n| `requires_credential` | list | Credentials required for this fetcher |\n\n### Implementation Pattern\n\nFetchers typically implement the following method signature:\n\n```python\ndef fetch_data(\n    query: QueryParams,\n    credentials: Credentials,\n    **kwargs\n) -> OBBject:\n    \"\"\"\n    Fetch data from the provider and return an OBBject.\n    \n    Args:\n        query: Query parameters from the user request\n        credentials: Provider credentials\n        \n    Returns:\n        OBBject: The normalized response data\n    \"\"\"\n```\n\n---\n\n## Data Models\n\nData models in the OpenBB Platform define the structure of both request parameters and response data. They use Pydantic for validation and serialization, ensuring type safety throughout the platform.\n\n### Data Model Hierarchy\n\n```mermaid\ngraph TD\n    subgraph \"Data Models\"\n        QUERY[QueryParams Model]\n        RESPONSE[Response Model]\n        FIELD[Field Definitions]\n    end\n    \n    QUERY -->|validates| REQUEST[Incoming Request]\n    RESPONSE -->|defines| RESULTS[Query Results]\n    FIELD -->|composes| QUERY\n    FIELD -->|composes| RESPONSE\n```\n\n资料来源：[openbb_platform/core/openbb_core/provider/abstract/data.py](https://github.com/OpenBB-finance/OpenBB/blob/main/openbb_platform/core/openbb_core/provider/abstract/data.py)\n\n### Model Fields Configuration\n\n| Field Property | Type | Purpose |\n|---------------|------|---------|\n| `description` | str | Human-readable field description |\n| `alias` | str | Alternative name for the field |\n| `default` | Any | Default value if not provided |\n| `ge` / `le` | int | Greater than or less than constraints |\n| `pattern` | str | Regex pattern for validation |\n| `deprecated` | bool | Mark field as deprecated |\n\n### Example Data Model\n\n```python\nfrom openbb_core.provider.abstract.data import Data\nfrom pydantic import Field\n\nclass HistoricalData(Data):\n    date: str = Field(description=\"Date of the data point\")\n    open: float = Field(description=\"Opening price\")\n    high: float = Field(description=\"High price\")\n    low: float = Field(description=\"Low price\")\n    close: float = Field(description=\"Closing price\")\n    volume: int = Field(description=\"Trading volume\")\n```\n\n---\n\n## Extension System\n\nThe extension system allows the OpenBB Platform to be extended with additional functionality through modular packages. Extensions can add new endpoints, data sources, and features without modifying the core platform.\n\n### Extension Types\n\n| Extension Type | Purpose | Example |\n|---------------|---------|---------|\n| Provider | Add new data source integration | `openbb-fred`, `openbb-finviz` |\n| Feature | Add new analytical capabilities | `openbb-technical` |\n| Utility | Add helper functions and tools | `openbb-mcp-server` |\n| UI | Add dashboard widgets and apps | Workspace custom apps |\n\n### Extension Installation\n\nExtensions are installed as Python packages and automatically discovered by the platform:\n\n```bash\npip install openbb-news\npip install openbb-commodity\npip install openbb-technical\npip install openbb-regulators\n```\n\n资料来源：[openbb_platform/extensions/news/README.md](https://github.com/OpenBB-finance/OpenBB/blob/main/openbb_platform/extensions/news/README.md)\n\n### Extension Discovery Flow\n\n```mermaid\ngraph LR\n    A[Platform Startup] --> B[Scan Extensions Directory]\n    B --> C{Found Extension?}\n    C -->|Yes| D[Load Extension Package]\n    C -->|No| E[Continue]\n    D --> F[Register Routes]\n    F --> G[Register Providers]\n    G --> H[Extension Available]\n    E --> H\n```\n\n---\n\n## API Access Patterns\n\n### REST API\n\nThe OpenBB Platform includes a FastAPI-based REST API for programmatic access:\n\n```bash\nuvicorn openbb_core.api.rest_api:app --host 0.0.0.0 --port 8000 --reload\n```\n\nAPI documentation is available at `/docs` endpoint when the server is running.\n\n资料来源：[openbb_platform/README.md](https://github.com/OpenBB-finance/OpenBB/blob/main/openbb_platform/README.md)\n\n### Python SDK\n\nThe Python SDK provides the most direct access to platform functionality:\n\n```python\nfrom openbb import obb\n\n# Set credentials\nobb.user.credentials.fred_api_key = \"REPLACE_ME\"\nobb.user.credentials.polygon_api_key = \"REPLACE_ME\"\n\n# Query data\nresult = obb.equity.price.historical(symbol=\"AAPL\", provider=\"polygon\")\n```\n\n### CLI Access\n\nThe command-line interface offers interactive access:\n\n```bash\nopenbb\n```\n\n---\n\n## Provider-Specific Endpoints\n\n### CFTC Provider\n\nThe Commodity Futures Trading Commission (CFTC) provider offers Commitments of Traders data:\n\n| Endpoint | Description |\n|----------|-------------|\n| `obb.cftc.cot` | Get Commitments of Traders report |\n| `obb.cftc.cot_search` | Search CFTC contract codes |\n\n```python\nfrom openbb import obb\n\nsearch_results = obb.cftc.cot_search(query=\"gold\")\nreport = obb.cftc.cot(code=\"CFTC_088695\", measure=\"percent_of_oi\", limit=4)\n```\n\n### Congress Provider\n\nThe US Congress provider provides legislative tracking:\n\n| Endpoint | Description |\n|----------|-------------|\n| `obb.uscongress.bills` | Get recent bills |\n| `obb.uscongress.bill_info` | Get detailed bill information |\n\n### Government US Provider\n\nGovernment data endpoints include:\n\n| Endpoint | Description |\n|----------|-------------|\n| `obb.commodity.psd_report` | PSD commodity reports |\n| `obb.commodity.psd_data` | PSD data tables |\n| `obb.fixed_income.government.treasury_auctions` | Treasury auction data |\n\n---\n\n## Next Steps\n\n- Review the [Installation Guide](../installation.md) for setting up the platform\n- Explore the [Provider Documentation](../providers/) for available data sources\n- Learn about [Extension Development](../developer_guide/contributing.md) to create custom extensions\n- Consult the [API Reference](../reference/) for detailed endpoint documentation\n\n---\n\n<a id='page-obbject-system'></a>\n\n## OBBject System\n\n### 相关页面\n\n相关主题：[Core Concepts](#page-core-concepts), [Charting and Visualization](#page-charting)\n\n# OBBject System\n\n> **Note:** This wiki page is based on available documentation and README files in the repository. The core implementation files for the OBBject system (`openbb_platform/core/openbb_core/app/model/obbject.py`, `openbb_platform/core/openbb_core/app/model/abstract/results.py`, and `openbb_platform/core/integration/test_obbject.py`) were not available in the provided context for detailed analysis. The information below reflects the system's role and usage as observed across the platform.\n\n## Overview\n\nThe OBBject system is the core data structure framework within the OpenBB Platform that handles standardized return types from all data provider queries. Every function endpoint in the platform returns an OBBject, ensuring consistent response handling across the entire system.\n\n## Architecture\n\nThe OBBject serves as the universal wrapper for all platform outputs, providing:\n\n- **Standardized data formats** across all providers\n- **Metadata attachment** for query context\n- **Flexible conversion methods** between different data representations\n- **Results abstraction** through inheritance from `AbstractResults`\n\n## Data Flow\n\n```mermaid\ngraph TD\n    A[User Query via obb] --> B[OpenBB Core]\n    B --> C[Provider Function Call]\n    C --> D[Data Provider API]\n    D --> E[Provider Response Parser]\n    E --> F[OBBject Construction]\n    F --> G[Results with Metadata]\n    G --> H[User: .to_df, .to_dict, .to_chart]\n```\n\n## Usage Patterns\n\n### Basic Return Type\n\nAll platform endpoints return OBBject instances:\n\n```python\nfrom openbb import obb\n\n# Returns OBBject\nresult = obb.cftc.cot_search(query=\"gold\")\nprint(result.to_df())\n```\n\n### Data Conversion Methods\n\n| Method | Description |\n|--------|-------------|\n| `to_df()` | Convert results to pandas DataFrame |\n| `to_dict()` | Convert results to dictionary format |\n| `to_chart()` | Generate chart-ready data structure |\n\n## Integration Points\n\nThe OBBject system integrates with:\n\n- **Provider System**: All data providers return standardized OBBject instances\n- **REST API**: Responses are automatically serialized from OBBject format\n- **CLI Interface**: Tabular display powered by OBBject conversion\n- **Workspace Widgets**: Data binding through OBBject metadata\n\n## Test Coverage\n\nThe `openbb_platform/core/integration/test_obbject.py` file contains integration tests verifying OBBject behavior across different provider scenarios and edge cases.\n\n## Platform-Wide Consistency\n\nThe OpenBB Platform enforces OBBject returns through the core framework, ensuring that whether accessing:\n\n- `obb.cftc.cot`\n- `obb.cftc.cot_search`\n- `obb.equity.screener(provider=\"finviz\")`\n- `obb.economy.indicators`\n\nAll responses follow the same structure and interface conventions.\n\n---\n\n<a id='page-provider-interface'></a>\n\n## Provider Interface\n\n### 相关页面\n\n相关主题：[Core Concepts](#page-core-concepts), [Data Providers Overview](#page-providers-overview), [Developing Custom Providers](#page-provider-development)\n\n<details>\n<summary>相关源码文件</summary>\n\n以下源码文件用于生成本页说明：\n\n- [openbb_platform/core/openbb_core/provider/abstract/query_params.py](https://github.com/OpenBB-finance/OpenBB/blob/main/openbb_platform/core/openbb_core/provider/abstract/query_params.py)\n- [openbb_platform/core/openbb_core/provider/abstract/fetcher.py](https://github.com/OpenBB-finance/OpenBB/blob/main/openbb_platform/core/openbb_core/provider/abstract/fetcher.py)\n- [openbb_platform/core/openbb_core/provider/abstract/provider.py](https://github.com/OpenBB-finance/OpenBB/blob/main/openbb_platform/core/openbb_core/provider/abstract/provider.py)\n- [openbb_platform/core/openbb_core/provider/registry_map.py](https://github.com/OpenBB-finance/OpenBB/blob/main/openbb_platform/core/openbb_core/provider/registry_map.py)\n- [openbb_platform/providers/README.md](https://github.com/OpenBB-finance/OpenBB/blob/main/openbb_platform/providers/README.md)\n- [openbb_platform/providers/fmp/README.md](https://github.com/OpenBB-finance/OpenBB/blob/main/openbb_platform/providers/fmp/README.md)\n- [openbb_platform/providers/government_us/README.md](https://github.com/OpenBB-finance/OpenBB/blob/main/openbb_platform/providers/government_us/README.md)\n- [openbb_platform/providers/cftc/README.md](https://github.com/OpenBB-finance/OpenBB/blob/main/openbb_platform/providers/cftc/README.md)\n</details>\n\n# Provider Interface\n\n## Overview\n\nThe Provider Interface is a core architectural component of the OpenBB Platform that abstracts data acquisition from various financial data sources. It provides a unified API for querying external data providers while maintaining provider-specific implementations behind a common interface.\n\nThe Provider system enables OpenBB to integrate multiple data sources (FMP, Alpha Vantage, US Government data, CFTC, IMF, etc.) through a standardized abstraction layer, allowing users to query different providers using a consistent interface.\n\n## Architecture\n\n```mermaid\ngraph TD\n    A[OpenBB User/Application] --> B[Provider Interface]\n    B --> C[Registry Map]\n    C --> D[Provider: FMP]\n    C --> E[Provider: Government US]\n    C --> F[Provider: CFTC]\n    C --> G[Provider: IMF]\n    C --> H[Provider: Custom]\n    \n    D --> I[Models]\n    E --> I\n    F --> I\n    G --> I\n    \n    I --> J[Query Params]\n    I --> K[Response Models]\n    \n    J --> L[Fetchers]\n    L --> M[External API]\n    M --> N[Data Normalization]\n    N --> O[Standardized Output]\n```\n\n## Core Components\n\n### 1. Provider Abstract Class\n\nThe base `Provider` class defines the interface that all providers must implement. Each provider declares its available endpoints, authentication requirements, and routing information.\n\n| Property | Type | Description |\n|----------|------|-------------|\n| name | str | Unique identifier for the provider |\n| website | str | Provider's official website |\n| description | str | Brief description of the provider |\n| credentials | dict | Required API credentials/keys |\n| available_endpoints | list | Endpoints provided by this source |\n| url | str | Base URL for API requests |\n\n资料来源：[openbb_platform/core/openbb_core/provider/abstract/provider.py]()\n\n### 2. Query Params\n\nQuery parameters define the input schema for each endpoint. They validate and serialize user requests before passing them to the fetcher.\n\n| Parameter | Type | Description |\n|-----------|------|-------------|\n| provider | Optional[str] | Override default provider for this query |\n| use_cache | bool | Enable/disable response caching |\n| chunk | bool | Split large responses into chunks |\n| date | Optional[date] | Filter data by specific date |\n| start_date | Optional[date] | Filter data from this date |\n| end_date | Optional[date] | Filter data until this date |\n| limit | Optional[int] | Maximum number of results |\n\n资料来源：[openbb_platform/core/openbb_core/provider/abstract/query_params.py]()\n\n### 3. Fetcher\n\nThe `Fetcher` class handles the actual data retrieval from external APIs. It processes query parameters, makes HTTP requests, and normalizes responses.\n\n| Component | Description |\n|-----------|-------------|\n| transform | Method to normalize raw API response |\n| extract | Method to extract relevant fields from response |\n| validate | Method to validate response data |\n\n资料来源：[openbb_platform/core/openbb_core/provider/abstract/fetcher.py]()\n\n### 4. Registry Map\n\nThe Registry Map maintains a centralized catalog of all registered providers and their endpoints, enabling dynamic discovery and routing.\n\n```mermaid\nclassDiagram\n    class RegistryMap {\n        +dict providers\n        +dict routers\n        +register_provider()\n        +get_provider()\n        +list_providers()\n        +get_endpoint()\n    }\n    \n    class Provider {\n        +str name\n        +list endpoints\n        +register()\n    }\n    \n    class Router {\n        +str name\n        +add_route()\n        +get_routes()\n    }\n    \n    RegistryMap --> Provider\n    RegistryMap --> Router\n```\n\n资料来源：[openbb_platform/core/openbb_core/provider/registry_map.py]()\n\n## Provider Structure\n\nProviders in OpenBB follow a standardized directory structure:\n\n```\nopenbb_platform/providers/<provider_name>/\n├── README.md\n├── pyproject.toml\n├── poetry.lock\n├── tests/\n│   └── ...\n└── openbb_<provider_name>/\n    ├── __init__.py\n    ├── models/\n    │   ├── __init__.py\n    │   └── <model_files>.py\n    └── utils/\n        ├── __init__.py\n        └── <helper_files>.py\n```\n\n资料来源：[openbb_platform/providers/README.md]()\n\n## Creating a Custom Provider\n\n### Step 1: Create Provider Directory\n\nCreate a new directory under `openbb_platform/providers/` with your provider name.\n\n### Step 2: Define Models\n\nModels define data structures for querying endpoints and storing responses:\n\n```python\nfrom pydantic import BaseModel, Field\nfrom openbb_core.provider.abstract.query_params import QueryParams\n\nclass CustomQuoteQueryParams(QueryParams):\n    symbol: str = Field(description=\"Stock symbol to query\")\n    provider: Optional[str] = None\n```\n\n### Step 3: Implement Fetcher\n\n```python\nfrom openbb_core.provider.abstract.fetcher import Fetcher\n\nclass CustomQuoteFetcher(Fetcher):\n    @staticmethod\n    def transform(params: dict, response: httpx.Response) -> BaseModel:\n        # Transform and normalize response data\n        return NormalizedQuote(**transformed_data)\n```\n\n### Step 4: Register Provider\n\n```python\nfrom openbb_core.provider.abstract.provider import Provider\n\nclass CustomProvider(Provider):\n    name = \"custom_provider\"\n    website = \"https://custom-api.example.com\"\n    \n    @property\n    def router(self):\n        return CustomRouter()\n```\n\n## Provider Examples\n\n### Financial Modeling Prep (FMP)\n\n```python\nfrom openbb import obb\n\n# Search for companies\nsearch_results = obb.company.search(query=\"Apple\")\nprint(search_results.to_df())\n\n# Get financial statements\nbalance_sheet = obb.company.balance(symbol=\"AAPL\", provider=\"fmp\")\nprint(balance_sheet.to_df())\n```\n\n资料来源：[openbb_platform/providers/fmp/README.md]()\n\n### US Government Data\n\n```python\nfrom openbb import obb\n\n# Treasury auctions\nauctions = obb.fixed_income.government.treasury_auctions()\nprint(auctions.to_df())\n\n# Treasury prices\nprices = obb.fixed_income.government.treasury_prices()\nprint(prices.to_df())\n```\n\n资料来源：[openbb_platform/providers/government_us/README.md]()\n\n### CFTC Commitments of Traders\n\n```python\nfrom openbb import obb\n\n# Search CFTC codes\nsearch_results = obb.cftc.cot_search(query=\"gold\")\nprint(search_results.to_df())\n\n# Get report\nreport = obb.cftc.cot(code=\"CFTC_088695\", measure=\"percent_of_oi\")\nprint(report.to_df().T)\n```\n\n资料来源：[openbb_platform/providers/cftc/README.md]()\n\n## Integration with REST API\n\nThe Provider system integrates seamlessly with the OpenBB Platform REST API:\n\n```bash\nuvicorn openbb_core.api.rest_api:app --host 0.0.0.0 --port 8000 --reload\n```\n\nAPI documentation is available at `/docs` endpoint.\n\n资料来源：[openbb_platform/core/openbb_core/api/rest_api.py]()\n\n## Configuration\n\n### API Keys\n\nProviders requiring authentication use the credentials system:\n\n```python\nfrom openbb import obb\n\nobb.user.credentials.fmp_api_key = \"YOUR_API_KEY\"\nobb.user.credentials.polygon_api_key = \"YOUR_API_KEY\"\n```\n\n### Provider Selection\n\nWhen multiple providers support an endpoint, specify the provider explicitly:\n\n```python\n# Use specific provider\nresult = obb.equity.quote(symbol=\"AAPL\", provider=\"fmp\")\n\n# Use default provider\nresult = obb.equity.quote(symbol=\"AAPL\")\n```\n\n## Best Practices\n\n| Practice | Description |\n|----------|-------------|\n| Error Handling | Always wrap provider calls in try-except blocks |\n| Caching | Enable caching for frequently accessed data |\n| Rate Limiting | Respect provider rate limits |\n| Validation | Use query parameter validation |\n| Documentation | Document custom providers in README.md |\n\n## Supported Providers\n\n| Provider | Category | Registration Required |\n|----------|----------|----------------------|\n| FMP | Financial Data | Yes |\n| Alpha Vantage | Financial Data | Yes |\n| US Government | Government Data | No |\n| CFTC | Commodities | No |\n| IMF | Economic Indicators | No |\n\n资料来源：[openbb_platform/providers/README.md]()\n\n## Conclusion\n\nThe Provider Interface is fundamental to OpenBB's extensibility. By adhering to the abstract interfaces defined in the core module, developers can integrate new data sources while maintaining a consistent API experience for end users. The registry-based architecture enables dynamic provider discovery and seamless switching between data sources.\n\n---\n\n<a id='page-providers-overview'></a>\n\n## Data Providers Overview\n\n### 相关页面\n\n相关主题：[Provider Interface](#page-provider-interface), [Developing Custom Providers](#page-provider-development)\n\n<details>\n<summary>相关源码文件</summary>\n\n以下源码文件用于生成本页说明：\n\n- [openbb_platform/providers/README.md](https://github.com/OpenBB-finance/OpenBB/blob/main/openbb_platform/providers/README.md)\n- [openbb_platform/providers/fmp/README.md](https://github.com/OpenBB-finance/OpenBB/blob/main/openbb_platform/providers/fmp/README.md)\n- [openbb_platform/providers/government_us/README.md](https://github.com/OpenBB-finance/OpenBB/blob/main/openbb_platform/providers/government_us/README.md)\n- [openbb_platform/providers/tmx/README.md](https://github.com/OpenBB-finance/OpenBB/blob/main/openbb_platform/providers/tmx/README.md)\n- [openbb_platform/providers/multpl/README.md](https://github.com/OpenBB-finance/OpenBB/blob/main/openbb_platform/providers/multpl/README.md)\n- [openbb_platform/providers/imf/README.md](https://github.com/OpenBB-finance/OpenBB/blob/main/openbb_platform/providers/imf/README.md)\n- [openbb_platform/providers/finra/README.md](https://github.com/OpenBB-finance/OpenBB/blob/main/openbb_platform/providers/finra/README.md)\n- [openbb_platform/providers/famafrench/README.md](https://github.com/OpenBB-finance/OpenBB/blob/main/openbb_platform/providers/famafrench/README.md)\n</details>\n\n# Data Providers Overview\n\nData Providers in the OpenBB Platform serve as extension modules that integrate external financial data sources into the unified OpenBB ecosystem. These providers enable users to access a wide variety of financial data including equity prices, economic indicators, commodity data, government reports, and more through a consistent API interface.\n\n## Architecture Overview\n\nThe OpenBB Platform uses a modular provider architecture where each data source is implemented as a separate Python package extension. Providers communicate with their respective external APIs, transform the responses into standardized data models, and expose endpoints through the unified OpenBB interface.\n\n```mermaid\ngraph TD\n    A[OpenBB Platform Core] --> B[Provider Extensions]\n    B --> C[Data Provider 1]\n    B --> D[Data Provider 2]\n    B --> N[Data Provider N]\n    C --> E[External API 1]\n    D --> F[External API 2]\n    N --> G[External API N]\n    E --> H[Standardized Data Models]\n    F --> H\n    G --> H\n```\n\nProviders follow a consistent structure that ensures maintainability and enables the platform to automatically discover and load endpoints. 资料来源：[openbb_platform/providers/README.md]()\n\n## Provider Directory Structure\n\nEvery provider follows a standardized directory layout to ensure consistency across the codebase. This structure separates concerns between data models, utilities, and tests.\n\n```\nopenbb_platform\n└───providers\n    └───<provider_name>\n        │   README.md\n        │   pyproject.toml\n        │   poetry.lock\n        ├───tests\n        └───openbb_<provider_name>\n            │   __init__.py\n            ├───models\n            │   ├───<some model>.py\n            │   └───...\n            └───utils\n                ├───<some helper>.py\n                └───...\n```\n\nThe `models` directory contains data structures that define both the request parameters for querying provider endpoints and the response data structures. The `utils` directory houses helper functions used internally by the provider. 资料来源：[openbb_platform/providers/README.md]()\n\n## Available Data Providers\n\nThe OpenBB Platform supports numerous data providers across various financial domains. Below is a comprehensive table of documented providers.\n\n| Provider | Package Name | Data Domain | Registration Required |\n|----------|-------------|-------------|----------------------|\n| Financial Modeling Prep | `openbb-fmp` | Equity, Fundamentals, Estimates | Yes |\n| US Government | `openbb-us-government` | Treasury, Commodity Reports | No |\n| TMX | `openbb-tmx` | Canadian Markets, Derivatives | Varies |\n| Multpl | `openbb-multpl` | S&P 500 Multiples, Index Data | No |\n| IMF | `openbb-imf` | Economic Indicators, CPI, Shipping | No |\n| FINRA | `openbb-finra` | Market Regulatory Data | Varies |\n| Fama-French | `openbb-famafrench` | Research Factors, Portfolios | No |\n| News | `openbb-news` | Financial News | Varies |\n| Regulators | `openbb-regulators` | Global Market Regulators | Varies |\n| Commodity | `openbb-commodity` | Commodity Data | Varies |\n\n## Provider Installation\n\nEach provider is distributed as a separate Python package installable via pip. The general installation pattern follows a consistent command structure.\n\n```bash\npip install openbb-<provider_name>\n```\n\n### Installation Examples\n\n**Financial Modeling Prep:**\n```bash\npip install openbb-fmp\n```\n资料来源：[openbb_platform/providers/fmp/README.md]()\n\n**US Government:**\n```bash\npip install openbb-us-government\n```\n资料来源：[openbb_platform/providers/government_us/README.md]()\n\n**TMX (Community Provider):**\n```bash\npip install openbb-tmx\n```\nAlternatively, install from local directory for development:\n```bash\npip install -e .\n```\n资料来源：[openbb_platform/providers/tmx/README.md]()\n\n## Endpoint Coverage Examples\n\nDifferent providers offer varying levels of endpoint coverage. Below are examples of what each provider exposes.\n\n### US Government Provider\n\nThe US Government provider covers endpoints with no registration requirement, making it ideal for accessing public data.\n\n| Endpoint | Description |\n|----------|-------------|\n| `obb.commodity.psd_report` | PSD Commodity Reports |\n| `obb.commodity.psd_data` | PSD Data Sets |\n| `obb.commodity.weather_bulletins` | Weather Bulletins |\n| `obb.commodity.weather_bulletins_download` | Download Bulletins |\n| `obb.fixed_income.government.treasury_auctions` | Treasury Auctions |\n| `obb.fixed_income.government.treasury_prices` | Treasury Prices |\n\n资料来源：[openbb_platform/providers/government_us/README.md]()\n\n### TMX Provider\n\nThe TMX provider offers Canadian market data including derivatives and equity information.\n\n| Endpoint Category | Coverage |\n|-------------------|----------|\n| `.derivatives.options.chains` | Historical EOD chains from 2009 |\n| `.equity.calendar.earnings` | Earnings Calendars |\n| `.equity.estimates.consensus` | Consensus Estimates |\n| `.equity.discovery.gainers` | Best Performers |\n| `.equity.fundamental.dividends` | Dividend History |\n| `.equity.fundamental.filings` | SEC Filings |\n| `.equity.ownership.insider_trading` | Insider Trading (3/6/12 months) |\n| `.equity.price.quote` | Real-time Quotes |\n| `.equity.price.historical` | Daily/Weekly/Monthly/Intraday |\n| `.equity.search` | Symbol Search |\n\n资料来源：[openbb_platform/providers/tmx/README.md]()\n\n### IMF Provider\n\nThe IMF provider provides extensive economic data including indicators and shipping information.\n\n**Primary Endpoints:**\n- `obb.economy.available_indicators`\n- `obb.economy.indicators`\n- `obb.economy.cpi`\n- `obb.economy.direction_of_trade`\n- `obb.economy.spi` (Shipping)\n\n**Utility Endpoints (for UI integrations):**\n- `obb.imf_utils.get_dataflow_dimensions`\n- `obb.imf_utils.list_dataflow_choices`\n- `obb.imf_utils.list_dataflows`\n- `obb.imf_utils.list_indicators_by_dataflow`\n- `obb.imf_utils.list_port_id_choices`\n- `obb.imf_utils.list_table_choices`\n- `obb.imf_utils.list_tables`\n- `obb.imf_utils.presentation_table`\n\nThe \"Choices\" endpoints are specifically utilized by OpenBB Workspace to populate widget dropdown menus. 资料来源：[openbb_platform/providers/imf/README.md]()\n\n### Multpl Provider\n\nThe Multpl provider offers simple integration for S&P 500 related data.\n\n**Available Endpoints:**\n- `obb.index.sp500_multiples`\n\n资料来源：[openbb_platform/providers/multpl/README.md]()\n\n### Fama-French Provider\n\nThe Fama-French provider integrates academic research factor data. It includes metadata about the data source and formation methodology.\n\n**Metadata Structure:**\n```python\nfactors.extra[\"results_metadata\"]\n```\n\nExample metadata output:\n```json\n{\n    'description': 'This file was created using the 202504 CRSP database...',\n    'frequency': 'monthly',\n    'formations': ['Mkt-RF', 'SMB', 'HML', 'RF']\n}\n```\n\nThe frequency and formations metadata fields indicate whether data is monthly, daily, or another frequency, and the specific factor formations available. 资料来源：[openbb_platform/providers/famafrench/README.md]()\n\n## Provider Data Flow\n\n```mermaid\ngraph LR\n    A[User Query] --> B[OpenBB Core API]\n    B --> C[Provider Router]\n    C --> D[Provider Models]\n    D --> E[External API Request]\n    E --> F[Response Parser]\n    F --> G[Standard Model]\n    G --> H[Platform Output]\n```\n\n## Creating New Providers\n\nTo create a new provider for the OpenBB Platform, follow these steps:\n\n1. Create a new directory under `openbb_platform/providers/<provider_name>/`\n2. Implement the required directory structure (models, utils, tests)\n3. Define data models for requests and responses\n4. Implement the provider logic to communicate with external APIs\n5. Add a `pyproject.toml` for package configuration\n6. Create a `README.md` with installation and usage documentation\n7. Publish to PyPI for distribution via `pip install openbb-<provider_name>`\n\nFor detailed contribution guidelines, refer to the main CONTRIBUTING file in the repository. 资料来源：[openbb_platform/providers/README.md]()\n\n## Extension Types\n\nBeyond standard data providers, the OpenBB Platform supports additional extension types that enhance functionality:\n\n| Extension Type | Purpose |\n|---------------|---------|\n| **Data Providers** | Fetch and transform external financial data |\n| **News Extension** | `openbb-news` - Provides news aggregation |\n| **Regulators Extension** | `openbb-regulators` - Global market regulator data |\n| **Commodity Extension** | `openbb-commodity` - Commodity-specific commands |\n| **MCP Server** | Model Context Protocol integration for AI tools |\n\nThese extensions can be installed using `pip install openbb-<extension_name>` and are documented in the `openbb_platform/extensions/` directory.\n\n---\n\n<a id='page-provider-development'></a>\n\n## Developing Custom Providers\n\n### 相关页面\n\n相关主题：[Provider Interface](#page-provider-interface), [Data Providers Overview](#page-providers-overview), [Extensions System](#page-extensions)\n\n<details>\n<summary>相关源码文件</summary>\n\n以下源码文件用于生成本页说明：\n\n- [openbb_platform/extensions/mcp_server/README.md](https://github.com/OpenBB-finance/OpenBB/blob/main/openbb_platform/extensions/mcp_server/README.md)\n- [openbb_platform/core/openbb_core/api/rest_api.py](https://github.com/OpenBB-finance/OpenBB/blob/main/openbb_platform/core/openbb_core/api/rest_api.py)\n- [cookiecutter/openbb_cookiecutter/template/{{cookiecutter.project_tag}}/{{cookiecutter.package_name}}/providers/{{cookiecutter.provider_name}}/models/example.py](https://github.com/OpenBB-finance/OpenBB/blob/main/cookiecutter/openbb_cookiecutter/template/{{cookiecutter.project_tag}}/{{cookiecutter.package_name}}/providers/{{cookiecutter.provider_name}}/models/example.py)\n- [cookiecutter/openbb_cookiecutter/template/{{cookiecutter.project_tag}}/{{cookiecutter.package_name}}/providers/{{cookiecutter.provider_name}}/utils/helpers.py](https://github.com/OpenBB-finance/OpenBB/blob/main/cookiecutter/openbb_cookiecutter/template/{{cookiecutter.project_tag}}/{{cookiecutter.package_name}}/providers/{{cookiecutter.provider_name}}/utils/helpers.py)\n- [openbb_platform/providers/fmp/openbb_fmp/utils/helpers.py](https://github.com/OpenBB-finance/OpenBB/blob/main/openbb_platform/providers/fmp/openbb_fmp/utils/helpers.py)\n- [desktop/src/components/InstallComponents.tsx](https://github.com/OpenBB-finance/OpenBB/blob/main/desktop/src/components/InstallComponents.tsx)\n</details>\n\n# Developing Custom Providers\n\n## Overview\n\nCustom providers extend the OpenBB Platform by integrating new data sources for financial information. The platform uses a standardized architecture that allows developers to create providers following established patterns, enabling seamless integration with the existing OpenBB ecosystem including the REST API, MCP server, and desktop interface.\n\nThe provider system is designed around modularity—each provider consists of data models, authentication handlers, and utility functions that work together to fetch, transform, and expose financial data through a unified interface.\n\n## Architecture Overview\n\n```mermaid\ngraph TD\n    A[Custom Provider] --> B[Data Models]\n    A --> C[Authentication]\n    A --> D[Utility Helpers]\n    B --> E[REST API Router]\n    C --> E\n    D --> E\n    E --> F[OpenBB Platform API]\n    F --> G[MCP Server]\n    F --> H[Desktop Interface]\n    F --> I[Direct SDK Access]\n```\n\n## Provider Structure\n\nEach custom provider follows a consistent directory structure:\n\n```\n{{cookiecutter.package_name}}/\n└── providers/\n    └── {{cookiecutter.provider_name}}/\n        ├── models/\n        │   └── example.py          # Data models\n        ├── utils/\n        │   └── helpers.py          # Utility functions\n        └── __init__.py             # Provider initialization\n```\n\n### Data Models\n\nData models define the schema for the financial data your provider will return. The OpenBB Platform uses standardized model classes that inherit from base types:\n\n```python\n# cookiecutter template structure\nclass ExampleModel:\n    \"\"\"Example data model for custom provider.\"\"\"\n    \n    symbol: str\n    name: str\n    price: float\n    timestamp: datetime\n    \n    @field_validator('price')\n    @classmethod\n    def validate_price(cls, v):\n        if v < 0:\n            raise ValueError(\"Price must be non-negative\")\n        return v\n```\n\n资料来源：[cookiecutter/.../models/example.py]()\n\n### Utility Helpers\n\nHelper functions handle common operations like API requests, data transformation, and authentication:\n\n```python\nimport requests\nfrom typing import Optional, Dict, Any\n\ndef get_data(\n    url: str,\n    params: Optional[Dict[str, Any]] = None,\n    headers: Optional[Dict[str, str]] = None,\n    timeout: int = 30\n) -> Dict[str, Any]:\n    \"\"\"Fetch data from the provider's API endpoint.\"\"\"\n    response = requests.get(url, params=params, headers=headers, timeout=timeout)\n    response.raise_for_status()\n    return response.json()\n\ndef transform_response(data: Dict[str, Any]) -> Dict[str, Any]:\n    \"\"\"Transform provider-specific response format to OpenBB standard format.\"\"\"\n    return {\n        \"symbol\": data.get(\"symbol\", \"\"),\n        \"name\": data.get(\"companyName\", \"\"),\n        \"price\": float(data.get(\"price\", 0)),\n        \"timestamp\": data.get(\"timestamp\")\n    }\n```\n\n资料来源：[cookiecutter/.../utils/helpers.py]()\n资料来源：[openbb_platform/providers/fmp/openbb_fmp/utils/helpers.py]()\n\n## Provider Configuration\n\n### MCP Server Integration\n\nCustom providers can be exposed through the Model Context Protocol (MCP) server, allowing AI assistants to interact with your data:\n\n```python\nfrom openbb_mcp_server.models.mcp_config import MCPConfigModel\n\n# In your route definition\nopenapi_extra = {\n    \"mcp_config\": MCPConfigModel(\n        expose=True,\n        mcp_type=\"tool\",\n        methods=[\"GET\"]\n    )\n}\n```\n\n**MCP Configuration Properties:**\n\n| Property | Type | Description |\n|----------|------|-------------|\n| `expose` | `Optional[bool]` | Set to `False` to hide from MCP server |\n| `mcp_type` | `Optional[MCPType]` | Type: `\"tool\"`, `\"resource\"`, or `\"resource_template\"` |\n| `methods` | `Optional[list[HTTPMethod]]` | HTTP methods to expose |\n\n资料来源：[openbb_platform/extensions/mcp_server/README.md]()\n\n### REST API Registration\n\nThe OpenBB Platform uses FastAPI for its REST API. Providers register through the `AppLoader`:\n\n```python\nfrom fastapi import FastAPI\nfrom openbb_core.api.rest_api import AppLoader\n\n# Providers are automatically loaded via the extension system\n# The router is added through the provider's __init__.py\n```\n\nThe API server is configured with CORS middleware:\n\n```python\napp.add_middleware(\n    CORSMiddleware,\n    allow_origins=system.api_settings.cors.allow_origins,\n    allow_methods=system.api_settings.cors.allow_methods,\n    allow_headers=system.api_settings.cors.allow_headers,\n)\n```\n\n资料来源：[openbb_platform/core/openbb_core/api/rest_api.py]()\n\n## Creating a Provider from Template\n\nThe OpenBB Cookiecutter template provides a starting point for new providers:\n\n```bash\ncookiecutter gh:OpenBB-finance/OpenBB --directory cookiecutter\n```\n\nThe generated template includes:\n\n- Pre-configured directory structure\n- Example model implementations\n- Utility function templates\n- Authentication patterns\n- Test scaffolding\n\n## Extension Installation System\n\nThe desktop interface provides a mechanism for users to discover and install provider extensions:\n\n```typescript\n// Extensions are fetched from GitHub configuration\nconst [providersRes, routersRes, obbjectsRes] = await Promise.all([\n  fetch(\"https://raw.githubusercontent.com/OpenBB-finance/OpenBB/main/assets/extensions/provider.json\"),\n  fetch(\"https://raw.githubusercontent.com/OpenBB-finance/OpenBB/main/assets/extensions/router.json\"),\n  fetch(\"https://raw.githubusercontent.com/OpenBB-finance/OpenBB/main/assets/extensions/obbject.json\"),\n]);\n```\n\n资料来源：[desktop/src/components/InstallComponents.tsx]()\n\n### Extension Categories\n\n| Category ID | Description |\n|-------------|-------------|\n| `providers` | Data source integrations |\n| `routers` | Custom API endpoints |\n| `obbjects` | Custom data object types |\n| `extras` | Additional PyPI packages |\n\n## Workflow Diagram\n\n```mermaid\ngraph LR\n    A[Create Provider] --> B[Define Models]\n    B --> C[Implement Helpers]\n    C --> D[Register Routes]\n    D --> E[Add MCP Config]\n    E --> F[Test Provider]\n    F --> G[Publish Extension]\n    G --> H[User Installs]\n    H --> I[Available in Platform]\n```\n\n## Best Practices\n\n### Authentication Handling\n\n- Store API keys securely using environment variables\n- Implement token refresh logic for OAuth flows\n- Provide clear error messages for authentication failures\n\n### Data Validation\n\n- Validate all incoming data against expected schemas\n- Use field validators for type checking and constraints\n- Handle missing or null values gracefully\n\n### Error Handling\n\n- Implement retry logic for transient failures\n- Log errors with sufficient context for debugging\n- Return standardized error responses\n\n### Performance Considerations\n\n- Cache frequently accessed data when appropriate\n- Use connection pooling for API requests\n- Implement request batching where the API supports it\n\n## See Also\n\n- [OpenBB Platform Extensions](../extensions/index.md)\n- [MCP Server Documentation](../extensions/mcp_server/index.md)\n- [REST API Reference](../api-rest/index.md)\n- [Cookiecutter Template Repository](https://github.com/OpenBB-finance/OpenBB/tree/main/cookiecutter)\n\n---\n\n<a id='page-extensions'></a>\n\n## Extensions System\n\n### 相关页面\n\n相关主题：[Core Concepts](#page-core-concepts), [Charting and Visualization](#page-charting)\n\n<details>\n<summary>相关源码文件</summary>\n\n以下源码文件用于生成本页说明：\n\n- [openbb_platform/extensions/equity/openbb_equity/__init__.py](https://github.com/OpenBB-finance/OpenBB/blob/main/openbb_platform/extensions/equity/openbb_equity/__init__.py)\n- [openbb_platform/extensions/crypto/openbb_crypto/__init__.py](https://github.com/OpenBB-finance/OpenBB/blob/main/openbb_platform/extensions/crypto/openbb_crypto/__init__.py)\n- [openbb_platform/extensions/fixedincome/openbb_fixedincome/__init__.py](https://github.com/OpenBB-finance/OpenBB/blob/main/openbb_platform/extensions/fixedincome/openbb_fixedincome/__init__.py)\n- [openbb_platform/core/openbb_core/app/extension_loader.py](https://github.com/OpenBB-finance/OpenBB/blob/main/openbb_platform/core/openbb_core/app/extension_loader.py)\n</details>\n\n# Extensions System\n\n## Overview\n\nThe OpenBB Extensions System is a modular architecture that allows users to extend the core platform functionality through optional packages called \"extensions.\" These extensions provide specialized data sources, additional features, and domain-specific tools for various financial market segments.\n\nExtensions in OpenBB serve as the primary mechanism for feature expansion, enabling users to install only the components they need while keeping the core platform lightweight. The system supports both official OpenBB extensions and third-party community extensions.\n\n## Architecture\n\n### Core Components\n\nThe Extensions System consists of several interconnected components:\n\n| Component | Purpose | Location |\n|-----------|---------|----------|\n| Extension Loader | Discovers and loads extensions at runtime | `openbb_platform/core/openbb_core/app/extension_loader.py` |\n| Extension Package | Python package with specialized functionality | `openbb_platform/extensions/<name>/` |\n| Environment Manager | Manages extension installation in isolated environments | `desktop/src-tauri/src/tauri_handlers/environments.rs` |\n| UI Integration | Frontend component for extension management | `desktop/src/routes/environments.tsx` |\n\n### Extension Types\n\nOpenBB extensions are categorized into several types based on their functionality:\n\n```mermaid\ngraph TD\n    A[OpenBB Platform] --> B[Core Extensions]\n    A --> C[Data Provider Extensions]\n    A --> D[Feature Extensions]\n    \n    B --> B1[Equity]\n    B --> B2[Economy]\n    B --> B3[Crypto]\n    B --> B4[Fixed Income]\n    \n    C --> C1[Government US]\n    C --> C2[IMF]\n    C --> C3[CFTC]\n    C --> C4[Multpl]\n    \n    D --> D1[News]\n    D --> D2[MCP Server]\n    D --> D3[Regulators]\n```\n\n## Extension Discovery and Loading\n\n### Extension Loader Mechanism\n\nThe extension loader (`extension_loader.py`) handles the discovery and loading of extensions. It performs the following operations:\n\n1. **Package Discovery**: Scans installed Python packages for OpenBB extension markers\n2. **Dependency Resolution**: Ensures all extension dependencies are available\n3. **Router Registration**: Registers extension routers with the main application\n4. **Initialization**: Calls extension `__init__.py` to set up routes and handlers\n\n```mermaid\ngraph LR\n    A[Scan Packages] --> B[Identify Extensions]\n    B --> C{Check Dependencies}\n    C -->|Missing| D[Log Warning]\n    C -->|Satisfied| E[Load Extension]\n    E --> F[Register Router]\n    F --> G[Ready for Use]\n```\n\n### Loading Process Flow\n\nExtensions follow a specific loading sequence to ensure proper initialization order:\n\n1. Core platform initializes first\n2. Extension loader scans for available extensions\n3. Each extension's dependencies are verified\n4. Extensions are loaded in dependency order\n5. Extension routers are registered with FastAPI\n6. Extensions become available via `obb.<extension>.<method>`\n\n## Extension Package Structure\n\n### Standard Layout\n\nEach OpenBB extension follows a consistent directory structure:\n\n```\nopenbb_platform/extensions/<extension_name>/\n├── README.md                    # Documentation\n├── pyproject.toml              # Package configuration\n├── poetry.lock                 # Dependency lock file\n├── openbb_<extension_name>/\n│   ├── __init__.py            # Router registration\n│   └── ...\n└── tests/\n    └── ...\n```\n\n### Required Components\n\n| File | Purpose |\n|------|---------|\n| `__init__.py` | Contains router definition and extension metadata |\n| `pyproject.toml` | Package metadata, dependencies, and build configuration |\n| `README.md` | Installation instructions and feature documentation |\n\n## Extension Categories\n\n### 1. Core Extensions\n\nCore extensions provide essential market data functionality:\n\n#### Equity Extension\n\nThe Equity extension (`openbb_equity`) provides equity market data tools including:\n\n- Historical price data\n- Fundamental analysis\n- Analyst estimates\n- Options data\n- Ownership information\n- Short interest data\n\n**Installation:**\n```bash\npip install openbb-equity\n```\n\n#### Fixed Income Extension\n\nThe Fixed Income extension (`openbb_fixedincome`) offers fixed income market tools:\n\n- Government bond data\n- Treasury auctions\n- Treasury prices\n- Credit spreads\n\n#### Economy Extension\n\nProvides global macroeconomic data access including:\n\n- GDP indicators\n- CPI data\n- Trade statistics\n- Economic indicators\n\n#### Crypto Extension\n\nCryptocurrency market data including:\n\n- Price data\n- Trading volumes\n- Market capitalization\n- Exchange data\n\n### 2. Data Provider Extensions\n\nData providers extend the platform's data sources:\n\n#### Government US (`openbb-us-government`)\n\nProvides US Government data from data.gov:\n\n| Endpoint | Function |\n|----------|----------|\n| `obb.commodity.psd_report` | PSD reports |\n| `obb.commodity.psd_data` | PSD data |\n| `obb.commodity.weather_bulletins` | Weather bulletins |\n| `obb.fixed_income.government.treasury_auctions` | Treasury auctions |\n| `obb.fixed_income.government.treasury_prices` | Treasury prices |\n\n**Installation:**\n```bash\npip install openbb-us-government\n```\n\n#### CFTC Provider\n\nCommitments of Traders (COT) data including:\n\n- `obb.cftc.cot` - COT reports\n- `obb.cftc.cot_search` - Search COT data\n\n#### IMF Provider\n\nInternational Monetary Fund data with endpoints:\n\n- `obb.economy.indicators`\n- `obb.economy.cpi`\n- `obb.economy.direction_of_trade`\n- `obb.economy.shipping.*`\n\n#### Multpl Provider\n\nS&P 500 valuation metrics:\n\n- `obb.index.sp500_multiples`\n\n### 3. Feature Extensions\n\n#### News Extension\n\nAggregates financial news from multiple sources.\n\n**Installation:**\n```bash\npip install openbb-news\n```\n\n#### MCP Server Extension\n\nModel Context Protocol server for AI integrations. Provides:\n\n- Tool exposure as MCP resources\n- FastAPI route exposure\n- Custom prompt definitions\n\nConfiguration via `openapi_extra.mcp_config`:\n\n| Property | Type | Description |\n|----------|------|-------------|\n| `expose` | `Optional[bool]` | Hide/show route from MCP server |\n| `mcp_type` | `Optional[MCPType]` | Classification: `\"tool\"`, `\"resource\"`, or `\"resource_template\"` |\n| `methods` | `Optional[list[HTTPMethod]]` | HTTP methods to expose |\n\n#### Regulators Extension\n\nProvides structure for data from global market regulators.\n\n**Installation:**\n```bash\npip install openbb-regulators\n```\n\n## Environment-Based Extension Management\n\n### Concept\n\nExtensions can be installed within isolated Python environments, allowing users to:\n\n- Maintain separate extension sets for different use cases\n- Avoid dependency conflicts between extensions\n- Enable/disable extension groups easily\n\n### Environment Handler Architecture\n\nThe desktop application uses a Rust-based backend for environment management:\n\n```mermaid\ngraph TD\n    A[Frontend Environment UI] --> B[Tauri Command]\n    B --> C[environments.rs Handler]\n    C --> D{Conda Environment?}\n    D -->|base| E[System Conda Install]\n    D -->|custom| F[Named Environment Install]\n    E --> G[Install Extensions]\n    F --> G\n    G --> H[Refresh Extensions List]\n```\n\n### Extension Installation in Environments\n\nThe environment handler processes extensions with special prefixes:\n\n```python\n# Prefix handling logic from environments.rs\nif extension.startswith(\"conda:\"):\n    # Add to conda package list\n    conda_packages.push(extension.strip_prefix(\"conda:\"))\nelse:\n    # Add to pip packages\n    pip_packages.push(extension)\n```\n\n### Caching Strategy\n\nThe environment extensions list is cached locally:\n\n```typescript\n// Cache structure in environments.tsx\nconst cache = cachedData ? JSON.parse(cachedData) : {};\ncache[env.name] = result.extensions;\nlocalStorage.setItem(ENV_EXTENSIONS_CACHE_KEY, JSON.stringify(cache));\n```\n\n## Installation and Setup\n\n### Installation Phases\n\nThe desktop installation process consists of three phases:\n\n```mermaid\ngraph TD\n    A[Phase 1: Miniforge] --> B[Phase 2: Core Setup]\n    B --> C[Phase 3: Extension Select]\n    \n    A --> |Miniforge + Conda| D[Python Environment]\n    B --> |Core Libraries| D\n    C --> |Optional Packages| D\n```\n\n### Initial Installation Components\n\nWhen setting up a new environment, the following components are installed:\n\n| Component | Purpose |\n|-----------|---------|\n| Miniforge | Python environment manager |\n| Core libraries | OpenBB platform dependencies |\n| iPython | Interactive Python shell |\n| Jupyter Lab | Web-based development environment |\n\n### Extension Selection UI\n\nThe extension selection phase allows users to:\n\n1. Select which extensions to install\n2. Add additional PyPI packages\n3. Configure environment-specific settings\n\n## Error Handling\n\n### Extension Loading Errors\n\n| Error Type | Cause | Resolution |\n|------------|-------|------------|\n| Missing Dependency | Extension requires unavailable package | Install missing package |\n| Import Failure | Extension module has errors | Check extension installation |\n| Router Conflict | Duplicate endpoint definitions | Review extension configuration |\n\n### Installation Errors\n\nThe system handles installation errors gracefully:\n\n```typescript\n// Error display with retry option\n{createEnvironmentError && (\n    <div className=\"p-3 bg-theme-secondary border border-red-500\">\n        <p>{extractStderr(createEnvironmentError)}</p>\n        <Button onClick={() => createEnvironment([])}>Retry</Button>\n    </div>\n)}\n```\n\n## API Reference\n\n### Extension Loading API\n\nExtensions are accessed through the main `obb` object:\n\n```python\nfrom openbb import obb\n\n# Access equity data\nresult = obb.equity.price_history(symbol=\"AAPL\")\n\n# Access fixed income data\nresult = obb.fixed_income.government.treasury_auctions()\n\n# Access CFTC data\nresult = obb.cftc.cot(code=\"CFTC_088695\", measure=\"percent_of_oi\")\n```\n\n### Extension Router Pattern\n\nExtensions define routers for API endpoints:\n\n```python\n# Example from extension __init__.py\nfrom openbb_core.provider.standard_routes import router\n\n@router.command()\nasync def endpoint(params: Model):\n    # Implementation\n    pass\n```\n\n## Best Practices\n\n### Extension Development\n\n1. Follow the standard directory structure\n2. Define clear router endpoints\n3. Use Pydantic models for request/response validation\n4. Document all endpoints in README.md\n5. Include comprehensive test coverage\n\n### Extension Installation\n\n1. Verify Python environment compatibility\n2. Check dependency requirements\n3. Use virtual environments for testing\n4. Review extension permissions and data access\n\n## See Also\n\n- [OpenBB Platform Documentation](https://docs.openbb.co/python/)\n- [Provider Development Guide](../CONTRIBUTING.md)\n- [MCP Server Extension](../extensions/mcp_server/README.md)\n- [Equity Extension](../extensions/equity/README.md)\n\n---\n\n<a id='page-charting'></a>\n\n## Charting and Visualization\n\n### 相关页面\n\n相关主题：[OBBject System](#page-obbject-system), [Extensions System](#page-extensions)\n\n<details>\n<summary>相关源码文件</summary>\n\n以下源码文件用于生成本页说明：\n\n- [openbb_platform/obbject_extensions/charting/openbb_charting/charting.py](https://github.com/OpenBB-finance/OpenBB/blob/main/openbb_platform/obbject_extensions/charting/openbb_charting/charting.py)\n- [openbb_platform/obbject_extensions/charting/openbb_charting/core/openbb_figure.py](https://github.com/OpenBB-finance/OpenBB/blob/main/openbb_platform/obbject_extensions/charting/openbb_charting/core/openbb_figure.py)\n- [openbb_platform/obbject_extensions/charting/openbb_charting/core/plotly_ta/ta_class.py](https://github.com/OpenBB-finance/OpenBB/blob/main/openbb_platform/obbject_extensions/charting/openbb_charting/core/plotly_ta/ta_class.py)\n- [openbb_platform/obbject_extensions/charting/README.md](https://github.com/OpenBB-finance/OpenBB/blob/main/openbb_platform/obbject_extensions/charting/README.md)\n</details>\n\n# Charting and Visualization\n\nThe OpenBB charting and visualization system provides an interactive charting library built on top of Plotly. It functions as an **OBBject extension**, meaning charting capabilities are automatically available on every command result returned by the OpenBB Platform.\n\n## Overview\n\nThe charting extension transforms raw financial data into interactive visualizations with support for:\n\n- **Technical Analysis Indicators** - SMA, EMA, MACD, RSI, Bollinger Bands, Stochastic Oscillator, ADX, and more\n- **Prebuilt Charts** - Dedicated visualizations for specific endpoints\n- **Custom Charts** - User-defined charts from DataFrames without Plotly knowledge\n- **OHLCV Time Series** - Specialized handling for candlestick and financial time series data\n\n资料来源：[openbb_platform/obbject_extensions/charting/README.md:1-10]()\n\n## Architecture\n\n```mermaid\ngraph TD\n    A[\"OBBject<br/>(Command Result)\"] --> B[\"charting accessor\"]\n    B --> C[\"OpenBBFigure\"]\n    B --> D[\"Charting Methods\"]\n    B --> E[\"Technical Analysis\"]\n    \n    C --> F[\"Plotly Figure\"]\n    C --> G[\"Raw Data Dict\"]\n    \n    D --> H[\"create_3d_surface()\"]\n    D --> I[\"create_bar_chart()\"]\n    D --> J[\"create_line_chart()\"]\n    D --> K[\"create_correlation_matrix()\"]\n    D --> L[\"to_chart()\"]\n    \n    E --> M[\"PlotlyTA Class\"]\n    \n    M --> N[\"sma, ema, macd\"]\n    M --> O[\"rsi, adx, bbands\"]\n    M --> P[\"stoch, and more\"]\n```\n\n### Core Components\n\n| Component | File Path | Purpose |\n|-----------|-----------|---------|\n| `Charting` | `openbb_charting/charting.py` | Main extension class with `indicators()` and `functions()` methods |\n| `OpenBBFigure` | `openbb_charting/core/openbb_figure.py` | Wrapper for Plotly figures with data extraction |\n| `PlotlyTA` | `openbb_charting/core/plotly_ta/ta_class.py` | Technical analysis indicator engine |\n\n资料来源：[openbb_platform/obbject_extensions/charting/README.md:50-60]()\n\n## Installation\n\n```bash\n# Base installation\npip install openbb-charting\n\n# With native OS window support\npip install \"openbb-charting[pywry]\"\n```\n\n### Linux Dependencies\n\n| Distribution | Command |\n|-------------|---------|\n| Debian/Ubuntu/Mint | `sudo apt install libwebkit2gtk-4.1-dev libgtk-3-dev` |\n| Arch Linux/Manjaro | `sudo pacman -S webkit2gtk` |\n| Fedora | `sudo dnf install gtk3-devel webkit2gtk3-devel` |\n\n资料来源：[openbb_platform/obbject_extensions/charting/README.md:15-35]()\n\n## Basic Usage\n\n### Enabling Charts on Command Results\n\n```python\nfrom openbb import obb\n\n# Method 1: Set chart=True argument\nequity_data = obb.equity.price.historical(symbol=\"TSLA\", chart=True)\n\n# Method 2: Access charting on existing result\nres = obb.equity.price.historical(\"AAPL\")\nres.charting.show()\n```\n\nBoth methods produce identical results. The `chart=True` parameter returns an OBBject with a `chart` attribute containing Plotly JSON data.\n\n资料来源：[openbb_platform/obbject_extensions/charting/README.md:50-75]()\n\n### Displaying Charts\n\n```python\n# Get chart data\nequity_data = obb.equity.price.historical(symbol=\"TSLA\", chart=True)\n\n# Display in native window\nequity_data.show()\n```\n\n## Custom Charts from DataFrames\n\nCreate visualizations directly from Pandas DataFrames without Plotly knowledge:\n\n```python\nres = obb.equity.price.historical(\"AAPL\", chart=True)\n\n# Available charting methods\nsurface_3d = res.charting.create_3d_surface\nbar_chart = res.charting.create_bar_chart\nline_chart = res.charting.create_line_chart\ncorrelation_matrix = res.charting.create_correlation_matrix\n```\n\nThe `data` parameter accepts either `OBBject.results` as a list or any Pandas DataFrame instance.\n\n资料来源：[openbb_platform/obbject_extensions/charting/README.md:95-110]()\n\n## Technical Analysis Integration\n\n### Available Indicators\n\n```python\nfrom openbb_charting import Charting\n\n# List all available indicators\nCharting.indicators()\n```\n\n| Indicator | Parameters | Description |\n|-----------|------------|-------------|\n| `sma` | `length` | Simple Moving Average |\n| `ema` | `length` (list supported) | Exponential Moving Average |\n| `macd` | `fast`, `slow`, `signal` | Moving Average Convergence Divergence |\n| `rsi` | `length` | Relative Strength Index |\n| `adx` | `length` | Average Directional Index |\n| `bbands` | `length`, `std` | Bollinger Bands |\n| `stoch` | `length` | Stochastic Oscillator |\n\n资料来源：[openbb_platform/obbject_extensions/charting/README.md:30-45]()\n\n### Using the `to_chart()` Method\n\nThe `to_chart()` method is an advanced feature that passes `**kwargs` to the `PlotlyTA` class for custom visualizations with technical indicators.\n\n```python\nfrom openbb import obb\n\nres = obb.equity.price.historical(\"AAPL\")\n\nindicators = dict(\n    sma=dict(length=[20, 30, 50]),\n    adx=dict(length=14),\n    rsi=dict(length=14),\n    macd=dict(fast=12, slow=26, signal=9),\n    bbands=dict(length=20, std=2),\n    stoch=dict(length=14),\n)\nres.charting.to_chart(**{\"indicators\": indicators})\n```\n\n> **Note:** This method only works with standardized data and is designed for OHLCV time series.\n\n资料来源：[openbb_platform/obbject_extensions/charting/README.md:55-80]()\n\n### Discovering Supported Endpoints\n\nNot all endpoints have dedicated charts. To discover supported endpoints:\n\n```python\nfrom openbb_charting import Charting\n\nCharting.functions()\n```\n\nThis returns a list of endpoints that have prebuilt charting support.\n\n资料来源：[openbb_platform/obbject_extensions/charting/README.md:95-100]()\n\n## OpenBBFigure Class\n\nThe `OpenBBFigure` class wraps Plotly figures with additional functionality:\n\n```python\nfrom openbb_charting.core.openbb_figure import OpenBBFigure\n```\n\n### Return Value Structure\n\nWhen using charting methods, the return type is:\n\n```python\nTuple[OpenBBFigure, Dict[str, Any]]\n```\n\n| Return Element | Type | Description |\n|---------------|------|-------------|\n| First | `OpenBBFigure` | Interactive Plotly figure |\n| Second | `Dict[str, Any]` | Raw data used by the API |\n\n## Creating Custom Chart Extensions\n\n### Poetry Plugin Configuration\n\nAdd visualization to an existing Platform command via `pyproject.toml`:\n\n```toml\n[tool.poetry.plugins.\"openbb_charting_extension\"]\nmy_extension = \"openbb_my_extension.my_extension_views:MyExtensionViews\"\n```\n\nThe `openbb_charting_extension` entry point is **mandatory** for discovery.\n\n资料来源：[openbb_platform/obbject_extensions/charting/README.md:100-115]()\n\n### Extension Views Module\n\n```python\n\"\"\"Views for MyExtension.\"\"\"\n\nfrom typing import Any, Dict, Tuple\n\nfrom openbb_charting.charts.price_historical import price_historical\nfrom openbb_charting.core.openbb_figure import OpenBBFigure\n\n\nclass MyExtensionViews:\n    \"\"\"MyExtension Views.\"\"\"\n\n    @staticmethod\n    def my_extension_price_historical(\n        **kwargs,\n    ) -> Tuple[OpenBBFigure, Dict[str, Any]]:\n        \"\"\"MyExtension Price Historical Chart.\"\"\"\n        return price_historical(**kwargs)\n```\n\nAfter implementation, charts are accessible via:\n- Python interface: `obb.equity.price.historical(\"SYMBOL\", chart=True)`\n- Direct access: `result.charting.show()`\n\n资料来源：[openbb_platform/obbject_extensions/charting/README.md:115-135]()\n\n## Workflow Summary\n\n```mermaid\ngraph LR\n    A[\"obb.equity.price.historical()\"] --> B{chart=True?}\n    B -->|Yes| C[\"Returns OBBject<br/>with chart data\"]\n    B -->|No| D[\"Returns OBBject<br/>without chart data\"]\n    \n    C --> E[\"result.charting.show()\"]\n    C --> F[\"result.charting.create_bar_chart()\"]\n    C --> G[\"result.charting.to_chart()\"]\n    \n    D --> H[\"result.charting.to_chart()\"]\n    H --> I[\"Must have OHLCV data\"]\n    \n    E --> J[\"Display visualization\"]\n    F --> K[\"Custom chart from data\"]\n    G --> L[\"TA indicators overlay\"]\n```\n\n## Summary Table: Charting Methods\n\n| Method | Input | Use Case |\n|--------|-------|----------|\n| `show()` | None | Display current chart in native window |\n| `to_chart(indicators={})` | Dict of indicator configs | Add TA indicators to time series |\n| `create_3d_surface(data=...)` | DataFrame or list | 3D surface visualization |\n| `create_bar_chart(data=...)` | DataFrame or list | Bar chart from any data |\n| `create_line_chart(data=...)` | DataFrame or list | Line chart from any data |\n| `create_correlation_matrix(data=...)` | DataFrame or list | Correlation heatmap |\n| `indicators()` | None | List available TA indicators |\n| `functions()` | None | List supported endpoint charts |\n\n---\n\n<a id='page-cli'></a>\n\n## Command Line Interface\n\n### 相关页面\n\n相关主题：[Installation Guide](#page-installation)\n\nThe provided context does not include the CLI source files mentioned in the query (cli/openbb_cli/cli.py, cli/openbb_cli/controllers/cli_controller.py, cli/openbb_cli/argparse_translator/argparse_translator.py, cli/README.md). The context only contains files related to the desktop application UI, backend handlers, and platform extensions.\n\nTo create an accurate technical wiki page about the Command Line Interface based on actual source code, I would need access to the CLI implementation files. Without these files, I cannot provide verified technical details about:\n\n- The CLI entry point and main command structure\n- The controller architecture and command handlers\n- The argparse translation system\n- Available commands and their parameters\n- The CLI's interaction with the OpenBB Platform\n\nCould you please provide the CLI source files from the repository so I can generate an accurate and well-sourced technical wiki page?\n\n---\n\n<a id='page-desktop-app'></a>\n\n## Desktop Application\n\n### 相关页面\n\n相关主题：[Installation Guide](#page-installation)\n\n<details>\n<summary>Relevant Source Files</summary>\n\n以下源码文件用于生成本页说明：\n\n- [desktop/src/routes/backends.tsx](https://github.com/OpenBB-finance/OpenBB/blob/main/desktop/src/routes/backends.tsx)\n- [desktop/src/routes/installation-progress.tsx](https://github.com/OpenBB-finance/OpenBB/blob/main/desktop/src/routes/installation-progress.tsx)\n- [desktop/src/components/AddExtensionSelector.tsx](https://github.com/OpenBB-finance/OpenBB/blob/main/desktop/src/components/AddExtensionSelector.tsx)\n- [desktop/src/components/InstallComponents.tsx](https://github.com/OpenBB-finance/OpenBB/blob/main/desktop/src/components/InstallComponents.tsx)\n- [desktop/src/components/Icon.tsx](https://github.com/OpenBB-finance/OpenBB/blob/main/desktop/src/components/Icon.tsx)\n- [desktop/src/routes/environments.tsx](https://github.com/OpenBB-finance/OpenBB/blob/main/desktop/src/routes/environments.tsx)\n- [desktop/src/routes/api-keys.tsx](https://github.com/OpenBB-finance/OpenBB/blob/main/desktop/src/routes/api-keys.tsx)\n- [openbb_platform/extensions/mcp_server/README.md](https://github.com/OpenBB-finance/OpenBB/blob/main/openbb_platform/extensions/mcp_server/README.md)\n</details>\n\n# Desktop Application\n\nThe OpenBB Desktop Application provides a comprehensive graphical interface for managing financial data workflows, Python environments, API keys, and backend services. Built with React and TypeScript for the frontend, the desktop app offers users a visual approach to configuring and operating the OpenBB platform without requiring command-line interaction.\n\n## Architecture Overview\n\nThe desktop application follows a client-side rendering architecture using React Router for navigation and Tauri as the desktop runtime. The frontend communicates with backend services through IPC (Inter-Process Communication) mechanisms provided by Tauri.\n\n```mermaid\ngraph TD\n    subgraph Desktop[\"Desktop Application\"]\n        subgraph UI[\"React Frontend\"]\n            Routes[\"Routes/Pages\"]\n            Components[\"UI Components\"]\n            State[\"State Management\"]\n        end\n        subgraph Tauri[\"Tauri Backend\"]\n            TauriHandlers[\"Tauri Handlers\"]\n            IPC[\"IPC Commands\"]\n        end\n    end\n    subgraph Services[\"External Services\"]\n        Python[\"Python Environments\"]\n        OpenBB[\"OpenBB Platform\"]\n        APIs[\"Third-party APIs\"]\n    end\n    \n    UI --> Tauri\n    Tauri --> IPC\n    IPC --> Services\n```\n\n### Key Technologies\n\n| Component | Technology | Purpose |\n|-----------|------------|---------|\n| Frontend Framework | React 18+ | UI rendering and component management |\n| Routing | React Router (createFileRoute) | Page navigation and URL handling |\n| Desktop Runtime | Tauri | Native desktop functionality |\n| Styling | Tailwind CSS + Theme System | Visual design and theming |\n| State | React Hooks | Local and shared state management |\n\n## Route Structure\n\nThe desktop application defines several key routes for managing different aspects of the OpenBB platform.\n\n### Route Hierarchy\n\n| Route Path | Component | Purpose |\n|------------|-----------|---------|\n| `/backends` | BackendsPage | Manage backend services and configurations |\n| `/environments` | EnvironmentsPage | Create and manage Python environments |\n| `/installation-progress` | InstallationProgressPage | Track installation workflow progress |\n| `/api-keys` | APIKeysPage | Manage third-party API credentials |\n\n资料来源：[desktop/src/routes/environments.tsx](desktop/src/routes/environments.tsx) (route definition)\n\n## Backend Management\n\nThe `/backends` route provides functionality for managing OpenBB backend services, including starting, stopping, and configuring backend processes.\n\n### Backend Configuration Panel\n\n```mermaid\ngraph LR\n    A[User Action] --> B{Backend Running?}\n    B -->|Yes| C[Show Process ID]\n    B -->|No| D[Start Backend]\n    D --> E[Wait for Initialization]\n    E --> F[Confirm Service URL]\n    F --> G[Display Backend Panel]\n```\n\n### Key Features\n\n- **Process Management**: Monitor and control backend process lifecycle\n- **Working Directory Selection**: Configure the directory from which the backend executable runs (defaults to `{installation_directory}/backends`)\n- **Command Configuration**: Customize the backend startup command (default: `openbb-api`)\n- **Service Initialization**: Display loading state while waiting for service to initialize\n- **Process ID Tracking**: Show the PID of running backend processes\n\n资料来源：[desktop/src/routes/backends.tsx](desktop/src/routes/backends.tsx)\n\n### Backend Configuration Parameters\n\n| Parameter | Type | Description | Default |\n|-----------|------|-------------|---------|\n| `command` | string | Backend startup command | `openbb-api` |\n| `workingDir` | string | Execution directory | `{install_dir}/backends` |\n| `extractedPid` | number | Process identifier | - |\n| `urlConfirmed` | boolean | Service URL verified | false |\n\n## Environment Management\n\nThe `/environments` route enables users to create, manage, and configure Python virtual environments using Miniforge.\n\n### Environment Creation Workflow\n\n```mermaid\ngraph TD\n    A[Start Create Environment] --> B[Step 1: Name]\n    B --> C{Valid Name?}\n    C -->|No| B\n    C -->|Yes| D[Step 2: Python Version]\n    D --> E[Select Python]\n    E --> F[Step 3: Extensions]\n    F --> G[Select Extensions]\n    G --> H[Create Environment]\n    H --> I{Success?}\n    I -->|No| J[Show Error + Retry]\n    I -->|Yes| K[Environment Ready]\n```\n\n### Environment Name Validation\n\nEnvironment names must follow specific conventions for compatibility with Conda:\n\n```\nPattern: /^[a-z0-9-]+$/\nAllowed: lowercase letters, numbers, hyphens\nForbidden: uppercase, spaces, special characters\n```\n\n资料来源：[desktop/src/routes/environments.tsx](desktop/src/routes/environments.tsx)\n\n### Environment States\n\n| State | Description | UI Treatment |\n|-------|-------------|---------------|\n| `loading` | Fetching environment list | Spinner + loading text |\n| `creating` | Environment creation in progress | Progress indicator |\n| `error` | Operation failed | Red error panel with retry option |\n| `complete` | Operation successful | Success message |\n\n## Installation Progress\n\nThe installation workflow guides users through the complete setup process in sequential phases.\n\n### Installation Phases\n\n```mermaid\ngraph LR\n    A[phase: version_select] --> B[phase: extension_select]\n    B --> C[phase: installing]\n    C --> D{Result}\n    D -->|Success| E[Complete]\n    D -->|Failure| F[Error State]\n    D -->|Cancelled| G[phase: cancelled]\n```\n\n### Phase Breakdown\n\n| Phase | Step Indicator | Description |\n|-------|----------------|-------------|\n| `version_select` | STEP 1 OF 3 | Select Python version via Miniforge |\n| `extension_select` | STEP 3 OF 3 | Choose OpenBB extensions and additional packages |\n| `installing` | N/A | Installation in progress |\n| `cancelled` | N/A | User cancelled installation |\n| `error` | N/A | Installation failed |\n\n### Initial Installation Components\n\nThe base installation includes:\n\n- **Miniforge**: Python environment manager\n- **OpenBB Environment**: Core libraries and dependencies\n- **iPython & Jupyter Lab**: Interactive computing tools\n\n资料来源：[desktop/src/routes/installation-progress.tsx](desktop/src/routes/installation-progress.tsx)\n\n## Extension Management\n\nExtensions extend the functionality of the OpenBB platform by providing additional data sources, analytical tools, and integrations.\n\n### Extension Selector Component\n\nThe `AddExtensionSelector` component provides a user interface for browsing and selecting extensions.\n\n```mermaid\ngraph TD\n    A[AddExtensionSelector] --> B[Extension List]\n    A --> C[Conda Packages]\n    A --> D[Custom PyPI Packages]\n    A --> E[OpenBB Extensions]\n    B --> F[Search/Filter]\n    C --> G[Package Counter]\n    D --> G\n    E --> G\n    G --> H[Install Button]\n```\n\n### Extension Selection States\n\n| Selection Type | Counter Display | Example |\n|----------------|-----------------|---------|\n| Conda packages | `{n} Conda` | `2 Conda` |\n| PyPI packages | `{n} PyPI` | `3 PyPI` |\n| OpenBB extensions | `{n} OpenBB extensions` | `5 OpenBB extensions` |\n\n资料来源：[desktop/src/components/AddExtensionSelector.tsx](desktop/src/components/AddExtensionSelector.tsx)\n\n### Extension Display Features\n\nExtensions are displayed with setup instructions rendered via `ReactMarkdown`:\n\n- **Images**: Max height 300px, lazy loading\n- **Links**: Open in new tab with `rel=\"noreferrer noopener\"`\n- **Code blocks**: Themed with `bg-theme-tertiary`\n- **Paragraphs**: Styled with `text-theme-secondary`\n\n资料来源：[desktop/src/components/InstallComponents.tsx](desktop/src/components/InstallComponents.tsx)\n\n## API Key Management\n\nThe `/api-keys` route provides secure storage and management for third-party API credentials.\n\n### API Key Operations\n\n| Operation | Description | UI Element |\n|-----------|-------------|------------|\n| Add | Add new API key via modal | \"Add API Key\" button |\n| Edit | Modify existing key | Edit icon button |\n| Delete | Remove key from storage | Delete action |\n| Copy | Copy key value to clipboard | Copy icon button |\n| Import | Import keys from JSON/ENV file | \"Import Keys\" button |\n\n### Modal Modes\n\nThe API key modal operates in two modes:\n\n| Mode | Header Text | Purpose |\n|------|-------------|---------|\n| `add` | Add API Key | Create new credential entry |\n| `edit` | Edit API Key | Modify existing credential |\n\n### File Import Support\n\nThe import functionality accepts:\n\n- `.json` format\n- `.env` format\n\n资料来源：[desktop/src/routes/api-keys.tsx](desktop/src/routes/api-keys.tsx)\n\n## UI Components Library\n\n### Icon System\n\nThe application uses a centralized icon system defined in `Icon.tsx`.\n\n```tsx\n// OpenBB Logo Component\nexport const FileIcon = (props: React.ComponentProps<\"svg\">) => (\n    <svg viewBox=\"0 0 16 16\" fill=\"none\" stroke=\"currentColor\" {...props}>\n        {/* SVG path data */}\n    </svg>\n);\n```\n\nIcons are integrated using the `CustomIcon` component with named identifiers.\n\n### Button Variants\n\n| Variant | Class | Usage |\n|---------|-------|-------|\n| `primary` | `button-primary` | Main actions |\n| `secondary` | `button-secondary` | Secondary actions |\n| `outline` | `button-outline` | Alternative actions |\n| `ghost` | `button-ghost` | Subtle actions |\n| `danger` | `button-danger` | Destructive actions |\n\n### Tooltip System\n\nTooltips provide contextual help using the `Tooltip` component:\n\n```tsx\n<Tooltip content=\"Descriptive text\" className=\"tooltip-theme\">\n    <Button>Action</Button>\n</Tooltip>\n```\n\n## Theme System\n\nThe desktop application implements a comprehensive theme system with CSS custom properties.\n\n### Theme Color Classes\n\n| Class | Usage | Example |\n|-------|-------|---------|\n| `bg-theme-primary` | Main background | Cards, panels |\n| `bg-theme-secondary` | Secondary background | Modals, dialogs |\n| `bg-theme-tertiary` | Tertiary background | Input fields, wells |\n| `text-theme-primary` | Primary text | Headings, labels |\n| `text-theme-secondary` | Secondary text | Body content |\n| `text-theme-muted` | Muted text | Hints, placeholders |\n| `border-theme` | Border color | Input borders |\n| `border-theme-accent` | Accent borders | Focus states |\n\n### Status Colors\n\n| Status | Color | Usage |\n|--------|-------|-------|\n| Success | `green-500` | Completed actions |\n| Error | `red-500` | Failed operations |\n| Warning | `yellow-500` | Warnings |\n| Info | `accent-color` | Loading, progress |\n\n## State Management Patterns\n\n### Form State Handling\n\nInput validation follows a consistent pattern:\n\n```typescript\n// Name validation regex\nconst isValidName = (name: string): boolean => {\n    return /^[a-z0-9-]+$/.test(name);\n};\n```\n\n### Loading States\n\n| State Variable | Component | Indicator |\n|----------------|-----------|-----------|\n| `creationLoading` | Environment creation | Spinner + \"This may take several minutes\" |\n| `extensionsLoading` | Extension list | Loading indicator |\n| `isInstalling` | Extension installation | \"Installing...\" button text |\n\n### Error Handling\n\nErrors are displayed in styled containers:\n\n```tsx\n{error && (\n    <div className=\"p-3 bg-theme-secondary border border-red-500/50 rounded text-red-500\">\n        <p>{error}</p>\n    </div>\n)}\n```\n\n## MCP Server Integration\n\nThe desktop application can expose backend functionality through the Model Context Protocol (MCP), allowing integration with AI assistants and external tools.\n\n### MCP Configuration Options\n\n| Property | Type | Description |\n|----------|------|-------------|\n| `expose` | `Optional[bool]` | Hide/show route from MCP |\n| `mcp_type` | `Optional[MCPType]` | Classification: tool, resource, resource_template |\n| `methods` | `Optional[list[HTTPMethod]]` | HTTP methods to expose |\n\n资料来源：[openbb_platform/extensions/mcp_server/README.md](openbb_platform/extensions/mcp_server/README.md)\n\n## Navigation and Route Validation\n\nRoutes use search parameter validation:\n\n```typescript\nexport const Route = createFileRoute(\"/environments\")({\n    component: EnvironmentsPage,\n    validateSearch: (search: Record<string, unknown>) => {\n        return {\n            directory: search.directory as string | undefined,\n            userDataDir: search.userDataDir as string | undefined,\n        };\n    },\n});\n```\n\n### Route Search Parameters\n\n| Parameter | Type | Source |\n|-----------|------|--------|\n| `directory` | `string \\| undefined` | Installation directory path |\n| `userDataDir` | `string \\| undefined` | User data directory path |\n\n---\n\n---\n\n## Doramagic Pitfall Log\n\nProject: OpenBB-finance/OpenBB\n\nSummary: Found 29 potential pitfall items; 4 are high/blocking. Highest priority: security_permissions - 来源证据：[FR] Add Bank of Canada Valet API as a new provider extension.\n\n## 1. security_permissions · 来源证据：[FR] Add Bank of Canada Valet API as a new provider extension\n\n- Severity: high\n- Evidence strength: source_linked\n- Finding: GitHub 社区证据显示该项目存在一个安全/权限相关的待验证问题：[FR] Add Bank of Canada Valet API as a new provider extension\n- User impact: 可能影响授权、密钥配置或安全边界。\n- Suggested check: 来源问题仍为 open，Pack Agent 需要复核是否仍影响当前版本。\n- Guardrail action: 不得脱离来源链接放大为确定性结论；需要标注适用版本和复核状态。\n- Evidence: community_evidence:github | cevd_a8349d4112564c48b29615f3530e81e4 | https://github.com/OpenBB-finance/OpenBB/issues/7490 | 来源讨论提到 api key 相关条件，需在安装/试用前复核。\n\n## 2. security_permissions · 来源证据：[FR] Add Real-time Cryptocurrency Data Provider Integration\n\n- Severity: high\n- Evidence strength: source_linked\n- Finding: GitHub 社区证据显示该项目存在一个安全/权限相关的待验证问题：[FR] Add Real-time Cryptocurrency Data Provider Integration\n- User impact: 可能影响授权、密钥配置或安全边界。\n- Suggested check: 来源问题仍为 open，Pack Agent 需要复核是否仍影响当前版本。\n- Guardrail action: 不得脱离来源链接放大为确定性结论；需要标注适用版本和复核状态。\n- Evidence: community_evidence:github | cevd_e1bb7e5c7c0a4dc2bea2a256ed74a0b0 | https://github.com/OpenBB-finance/OpenBB/issues/7177 | 来源讨论提到 api key 相关条件，需在安装/试用前复核。\n\n## 3. security_permissions · 来源证据：[FR] Signed audit receipts for MCP server tool calls (regulatory compliance)\n\n- Severity: high\n- Evidence strength: source_linked\n- Finding: GitHub 社区证据显示该项目存在一个安全/权限相关的待验证问题：[FR] Signed audit receipts for MCP server tool calls (regulatory compliance)\n- User impact: 可能影响授权、密钥配置或安全边界。\n- Suggested check: 来源问题仍为 open，Pack Agent 需要复核是否仍影响当前版本。\n- Guardrail action: 不得脱离来源链接放大为确定性结论；需要标注适用版本和复核状态。\n- Evidence: community_evidence:github | cevd_01ea12beef924e199679c6d2d1b91c73 | https://github.com/OpenBB-finance/OpenBB/issues/7455 | 来源讨论提到 npm 相关条件，需在安装/试用前复核。\n\n## 4. security_permissions · 涉及密钥、隐私或敏感领域\n\n- Severity: high\n- Evidence strength: source_linked\n- Finding: 项目文本出现 secret/private key/privacy/trading/finance 等敏感关键词。\n- User impact: 金融、交易、隐私和密钥场景必须比普通工具更保守。\n- Suggested check: 补敏感数据流、密钥存储和权限边界审查。\n- Guardrail action: 敏感领域或密钥场景必须保守推荐并要求人工复核。\n- Evidence: packet_text.keyword_scan | github_repo:323048702 | https://github.com/OpenBB-finance/OpenBB | matched secret / private key / privacy / trading / finance keyword\n\n## 5. installation · 失败模式：installation: OpenBB Platform v4.5.0\n\n- Severity: medium\n- Evidence strength: source_linked\n- Finding: Developers should check this installation risk before relying on the project: OpenBB Platform v4.5.0\n- User impact: Upgrade or migration may change expected behavior: OpenBB Platform v4.5.0\n- Suggested check: Before packaging this project, run the relevant install/config/quickstart check for: OpenBB Platform v4.5.0. Context: Observed when using python\n- Guardrail action: State this as source-backed community evidence, not as Doramagic reproduction.\n- Evidence: failure_mode_cluster:github_release | fmev_3acb4d0463ffb0d96b55088fc42477e1 | https://github.com/OpenBB-finance/OpenBB/releases/tag/v4.5.0 | OpenBB Platform v4.5.0\n\n## 6. installation · 失败模式：installation: OpenBB Platform v4.6.0\n\n- Severity: medium\n- Evidence strength: source_linked\n- Finding: Developers should check this installation risk before relying on the project: OpenBB Platform v4.6.0\n- User impact: Upgrade or migration may change expected behavior: OpenBB Platform v4.6.0\n- Suggested check: Before packaging this project, run the relevant install/config/quickstart check for: OpenBB Platform v4.6.0. Context: Observed when using python\n- Guardrail action: State this as source-backed community evidence, not as Doramagic reproduction.\n- Evidence: failure_mode_cluster:github_release | fmev_c32f0b655c075b88a71f35f893ae1f90 | https://github.com/OpenBB-finance/OpenBB/releases/tag/v4.6.0 | OpenBB Platform v4.6.0\n\n## 7. installation · 失败模式：installation: [Bug] Openbb 4.5.0 cannot import name 'OBBject_EquityInfo' from 'openbb_core.app.provider_int...\n\n- Severity: medium\n- Evidence strength: source_linked\n- Finding: Developers should check this installation risk before relying on the project: [Bug] Openbb 4.5.0 cannot import name 'OBBject_EquityInfo' from 'openbb_core.app.provider_interface'\n- User impact: Developers may fail before the first successful local run: [Bug] Openbb 4.5.0 cannot import name 'OBBject_EquityInfo' from 'openbb_core.app.provider_interface'\n- Suggested check: Before packaging this project, run the relevant install/config/quickstart check for: [Bug] Openbb 4.5.0 cannot import name 'OBBject_EquityInfo' from 'openbb_core.app.provider_interface'. Context: Observed when using python, docker\n- Guardrail action: State this as source-backed community evidence, not as Doramagic reproduction.\n- Evidence: failure_mode_cluster:github_issue | fmev_a7115ea0142ee2b52fad8606fc7d47ec | https://github.com/OpenBB-finance/OpenBB/issues/7279 | [Bug] Openbb 4.5.0 cannot import name 'OBBject_EquityInfo' from 'openbb_core.app.provider_interface'\n\n## 8. installation · 失败模式：installation: [Bug] PyWry WebView Fails to Launch on Ubuntu 24.04\n\n- Severity: medium\n- Evidence strength: source_linked\n- Finding: Developers should check this installation risk before relying on the project: [Bug] PyWry WebView Fails to Launch on Ubuntu 24.04\n- User impact: Developers may fail before the first successful local run: [Bug] PyWry WebView Fails to Launch on Ubuntu 24.04\n- Suggested check: Before packaging this project, run the relevant install/config/quickstart check for: [Bug] PyWry WebView Fails to Launch on Ubuntu 24.04. Context: Observed when using python, linux\n- Guardrail action: State this as source-backed community evidence, not as Doramagic reproduction.\n- Evidence: failure_mode_cluster:github_issue | fmev_c48a7161974013fd9895ea98894b35bd | https://github.com/OpenBB-finance/OpenBB/issues/7148 | [Bug] PyWry WebView Fails to Launch on Ubuntu 24.04\n\n## 9. installation · 失败模式：installation: [FR] Add Bank of Canada Valet API as a new provider extension\n\n- Severity: medium\n- Evidence strength: source_linked\n- Finding: Developers should check this installation risk before relying on the project: [FR] Add Bank of Canada Valet API as a new provider extension\n- User impact: Developers may fail before the first successful local run: [FR] Add Bank of Canada Valet API as a new provider extension\n- Suggested check: Before packaging this project, run the relevant install/config/quickstart check for: [FR] Add Bank of Canada Valet API as a new provider extension. Context: Observed when using python\n- Guardrail action: State this as source-backed community evidence, not as Doramagic reproduction.\n- Evidence: failure_mode_cluster:github_issue | fmev_3ee0b5efd611f4c6c49174e1a6ba1006 | https://github.com/OpenBB-finance/OpenBB/issues/7490 | [FR] Add Bank of Canada Valet API as a new provider extension\n\n## 10. installation · 来源证据：[Bug] PyWry WebView Fails to Launch on Ubuntu 24.04\n\n- Severity: medium\n- Evidence strength: source_linked\n- Finding: GitHub 社区证据显示该项目存在一个安装相关的待验证问题：[Bug] PyWry WebView Fails to Launch on Ubuntu 24.04\n- User impact: 可能阻塞安装或首次运行。\n- Suggested check: 来源显示可能已有修复、规避或版本变化，说明书中必须标注适用版本。\n- Guardrail action: 不得脱离来源链接放大为确定性结论；需要标注适用版本和复核状态。\n- Evidence: community_evidence:github | cevd_c068fa0d9cac4fb7b74d875b22d312d7 | https://github.com/OpenBB-finance/OpenBB/issues/7148 | 来源讨论提到 python 相关条件，需在安装/试用前复核。\n\n## 11. installation · 来源证据：[Bug] Widgets not saving their position and size after refresh\n\n- Severity: medium\n- Evidence strength: source_linked\n- Finding: GitHub 社区证据显示该项目存在一个安装相关的待验证问题：[Bug] Widgets not saving their position and size after refresh\n- User impact: 可能增加新用户试用和生产接入成本。\n- Suggested check: 来源显示可能已有修复、规避或版本变化，说明书中必须标注适用版本。\n- Guardrail action: 不得脱离来源链接放大为确定性结论；需要标注适用版本和复核状态。\n- Evidence: community_evidence:github | cevd_b7792ca1efe649c085e18a8a6be37d49 | https://github.com/OpenBB-finance/OpenBB/issues/7479 | 来源类型 github_issue 暴露的待验证使用条件。\n\n## 12. configuration · 失败模式：configuration: [FR] Add Real-time Cryptocurrency Data Provider Integration\n\n- Severity: medium\n- Evidence strength: source_linked\n- Finding: Developers should check this configuration risk before relying on the project: [FR] Add Real-time Cryptocurrency Data Provider Integration\n- User impact: Developers may misconfigure credentials, environment, or host setup: [FR] Add Real-time Cryptocurrency Data Provider Integration\n- Suggested check: Before packaging this project, run the relevant install/config/quickstart check for: [FR] Add Real-time Cryptocurrency Data Provider Integration. Context: Source discussion did not expose a precise runtime context.\n- Guardrail action: State this as source-backed community evidence, not as Doramagic reproduction.\n- Evidence: failure_mode_cluster:github_issue | fmev_45a17b16742dbd042ef1b9e8d373939d | https://github.com/OpenBB-finance/OpenBB/issues/7177 | [FR] Add Real-time Cryptocurrency Data Provider Integration\n\n## 13. configuration · 失败模式：configuration: [FR] Signed audit receipts for MCP server tool calls (regulatory compliance)\n\n- Severity: medium\n- Evidence strength: source_linked\n- Finding: Developers should check this configuration risk before relying on the project: [FR] Signed audit receipts for MCP server tool calls (regulatory compliance)\n- User impact: Developers may misconfigure credentials, environment, or host setup: [FR] Signed audit receipts for MCP server tool calls (regulatory compliance)\n- Suggested check: Before packaging this project, run the relevant install/config/quickstart check for: [FR] Signed audit receipts for MCP server tool calls (regulatory compliance). Context: Observed when using node\n- Guardrail action: State this as source-backed community evidence, not as Doramagic reproduction.\n- Evidence: failure_mode_cluster:github_issue | fmev_3b139ec9599d5d33e68020e4e802c7e6 | https://github.com/OpenBB-finance/OpenBB/issues/7455 | [FR] Signed audit receipts for MCP server tool calls (regulatory compliance), failure_mode_cluster:github_issue | fmev_cc0ef568cdbda130dfa0c7df4a8f4021 | https://github.com/OpenBB-finance/OpenBB/issues/7455 | [FR] Signed audit receipts for MCP server tool calls (regulatory compliance)\n\n## 14. capability · 能力判断依赖假设\n\n- Severity: medium\n- Evidence strength: source_linked\n- Finding: README/documentation is current enough for a first validation pass.\n- User impact: 假设不成立时，用户拿不到承诺的能力。\n- Suggested check: 将假设转成下游验证清单。\n- Guardrail action: 假设必须转成验证项；没有验证结果前不能写成事实。\n- Evidence: capability.assumptions | github_repo:323048702 | https://github.com/OpenBB-finance/OpenBB | README/documentation is current enough for a first validation pass.\n\n## 15. runtime · 来源证据：ODP Desktop v1.0.2\n\n- Severity: medium\n- Evidence strength: source_linked\n- Finding: GitHub 社区证据显示该项目存在一个运行相关的待验证问题：ODP Desktop v1.0.2\n- User impact: 可能增加新用户试用和生产接入成本。\n- Suggested check: 来源显示可能已有修复、规避或版本变化，说明书中必须标注适用版本。\n- Guardrail action: 不得脱离来源链接放大为确定性结论；需要标注适用版本和复核状态。\n- Evidence: community_evidence:github | cevd_cf07c5d467e44c168f2650a3c4404f46 | https://github.com/OpenBB-finance/OpenBB/releases/tag/Open-Data-Platform-v1.0.2 | 来源讨论提到 windows 相关条件，需在安装/试用前复核。\n\n## 16. maintenance · 失败模式：migration: OpenBB V4.7.0\n\n- Severity: medium\n- Evidence strength: source_linked\n- Finding: Developers should check this migration risk before relying on the project: OpenBB V4.7.0\n- User impact: Upgrade or migration may change expected behavior: OpenBB V4.7.0\n- Suggested check: Before packaging this project, run the relevant install/config/quickstart check for: OpenBB V4.7.0. Context: Observed when using python\n- Guardrail action: State this as source-backed community evidence, not as Doramagic reproduction.\n- Evidence: failure_mode_cluster:github_release | fmev_d2f3cd7047c12b8378dbba16461be269 | https://github.com/OpenBB-finance/OpenBB/releases/tag/v4.7.0 | OpenBB V4.7.0\n\n## 17. maintenance · 维护活跃度未知\n\n- Severity: medium\n- Evidence strength: source_linked\n- Finding: 未记录 last_activity_observed。\n- User impact: 新项目、停更项目和活跃项目会被混在一起，推荐信任度下降。\n- Suggested check: 补 GitHub 最近 commit、release、issue/PR 响应信号。\n- Guardrail action: 维护活跃度未知时，推荐强度不能标为高信任。\n- Evidence: evidence.maintainer_signals | github_repo:323048702 | https://github.com/OpenBB-finance/OpenBB | last_activity_observed missing\n\n## 18. security_permissions · 下游验证发现风险项\n\n- Severity: medium\n- Evidence strength: source_linked\n- Finding: no_demo\n- User impact: 下游已经要求复核，不能在页面中弱化。\n- Suggested check: 进入安全/权限治理复核队列。\n- Guardrail action: 下游风险存在时必须保持 review/recommendation 降级。\n- Evidence: downstream_validation.risk_items | github_repo:323048702 | https://github.com/OpenBB-finance/OpenBB | no_demo; severity=medium\n\n## 19. security_permissions · 存在评分风险\n\n- Severity: medium\n- Evidence strength: source_linked\n- Finding: no_demo\n- User impact: 风险会影响是否适合普通用户安装。\n- Suggested check: 把风险写入边界卡，并确认是否需要人工复核。\n- Guardrail action: 评分风险必须进入边界卡，不能只作为内部分数。\n- Evidence: risks.scoring_risks | github_repo:323048702 | https://github.com/OpenBB-finance/OpenBB | no_demo; severity=medium\n\n## 20. security_permissions · 来源证据：ODP Desktop v1.0.1\n\n- Severity: medium\n- Evidence strength: source_linked\n- Finding: GitHub 社区证据显示该项目存在一个安全/权限相关的待验证问题：ODP Desktop v1.0.1\n- User impact: 可能增加新用户试用和生产接入成本。\n- Suggested check: 来源显示可能已有修复、规避或版本变化，说明书中必须标注适用版本。\n- Guardrail action: 不得脱离来源链接放大为确定性结论；需要标注适用版本和复核状态。\n- Evidence: community_evidence:github | cevd_b5b0cf96b9b1456e8192a80e8c9fbcfd | https://github.com/OpenBB-finance/OpenBB/releases/tag/Open-Data-Platform-v1.0.1 | 来源讨论提到 windows 相关条件，需在安装/试用前复核。\n\n## 21. security_permissions · 来源证据：OpenBB Platform v4.5.0\n\n- Severity: medium\n- Evidence strength: source_linked\n- Finding: GitHub 社区证据显示该项目存在一个安全/权限相关的待验证问题：OpenBB Platform v4.5.0\n- User impact: 可能影响升级、迁移或版本选择。\n- Suggested check: 来源显示可能已有修复、规避或版本变化，说明书中必须标注适用版本。\n- Guardrail action: 不得脱离来源链接放大为确定性结论；需要标注适用版本和复核状态。\n- Evidence: community_evidence:github | cevd_ff4708f0690c485c9453a90b7b1f926a | https://github.com/OpenBB-finance/OpenBB/releases/tag/v4.5.0 | 来源讨论提到 python 相关条件，需在安装/试用前复核。\n\n## 22. security_permissions · 来源证据：OpenBB Platform v4.6.0\n\n- Severity: medium\n- Evidence strength: source_linked\n- Finding: GitHub 社区证据显示该项目存在一个安全/权限相关的待验证问题：OpenBB Platform v4.6.0\n- User impact: 可能影响升级、迁移或版本选择。\n- Suggested check: 来源显示可能已有修复、规避或版本变化，说明书中必须标注适用版本。\n- Guardrail action: 不得脱离来源链接放大为确定性结论；需要标注适用版本和复核状态。\n- Evidence: community_evidence:github | cevd_58ecf0b5c49441d7818b4f384f522024 | https://github.com/OpenBB-finance/OpenBB/releases/tag/v4.6.0 | 来源讨论提到 python 相关条件，需在安装/试用前复核。\n\n## 23. security_permissions · 来源证据：OpenBB V4.7.0\n\n- Severity: medium\n- Evidence strength: source_linked\n- Finding: GitHub 社区证据显示该项目存在一个安全/权限相关的待验证问题：OpenBB V4.7.0\n- User impact: 可能影响升级、迁移或版本选择。\n- Suggested check: 来源显示可能已有修复、规避或版本变化，说明书中必须标注适用版本。\n- Guardrail action: 不得脱离来源链接放大为确定性结论；需要标注适用版本和复核状态。\n- Evidence: community_evidence:github | cevd_487435c8c60a497092f647438af74f89 | https://github.com/OpenBB-finance/OpenBB/releases/tag/v4.7.0 | 来源讨论提到 python 相关条件，需在安装/试用前复核。\n\n## 24. security_permissions · 来源证据：[Bug] Openbb 4.5.0 cannot import name 'OBBject_EquityInfo' from 'openbb_core.app.provider_interface'\n\n- Severity: medium\n- Evidence strength: source_linked\n- Finding: GitHub 社区证据显示该项目存在一个安全/权限相关的待验证问题：[Bug] Openbb 4.5.0 cannot import name 'OBBject_EquityInfo' from 'openbb_core.app.provider_interface'\n- User impact: 可能影响授权、密钥配置或安全边界。\n- Suggested check: 来源显示可能已有修复、规避或版本变化，说明书中必须标注适用版本。\n- Guardrail action: 不得脱离来源链接放大为确定性结论；需要标注适用版本和复核状态。\n- Evidence: community_evidence:github | cevd_95461e0340ed4ee5a724d3d6966b0bcf | https://github.com/OpenBB-finance/OpenBB/issues/7279 | 来源讨论提到 python 相关条件，需在安装/试用前复核。\n\n## 25. capability · 失败模式：capability: [Bug] Widgets not saving their position and size after refresh\n\n- Severity: low\n- Evidence strength: source_linked\n- Finding: Developers should check this capability risk before relying on the project: [Bug] Widgets not saving their position and size after refresh\n- User impact: Developers may hit a documented source-backed failure mode: [Bug] Widgets not saving their position and size after refresh\n- Suggested check: Before packaging this project, run the relevant install/config/quickstart check for: [Bug] Widgets not saving their position and size after refresh. Context: Source discussion did not expose a precise runtime context.\n- Guardrail action: State this as source-backed community evidence, not as Doramagic reproduction.\n- Evidence: failure_mode_cluster:github_issue | fmev_033f4288382da3f950cd941ddba1d67b | https://github.com/OpenBB-finance/OpenBB/issues/7479 | [Bug] Widgets not saving their position and size after refresh\n\n## 26. runtime · 失败模式：performance: ODP Desktop v1.0.1\n\n- Severity: low\n- Evidence strength: source_linked\n- Finding: Developers should check this performance risk before relying on the project: ODP Desktop v1.0.1\n- User impact: Upgrade or migration may change expected behavior: ODP Desktop v1.0.1\n- Suggested check: Before packaging this project, run the relevant install/config/quickstart check for: ODP Desktop v1.0.1. Context: Observed when using windows, macos\n- Guardrail action: State this as source-backed community evidence, not as Doramagic reproduction.\n- Evidence: failure_mode_cluster:github_release | fmev_7f6699c43b69d6dddb40e92afc05c849 | https://github.com/OpenBB-finance/OpenBB/releases/tag/Open-Data-Platform-v1.0.1 | ODP Desktop v1.0.1\n\n## 27. maintenance · issue/PR 响应质量未知\n\n- Severity: low\n- Evidence strength: source_linked\n- Finding: issue_or_pr_quality=unknown。\n- User impact: 用户无法判断遇到问题后是否有人维护。\n- Suggested check: 抽样最近 issue/PR，判断是否长期无人处理。\n- Guardrail action: issue/PR 响应未知时，必须提示维护风险。\n- Evidence: evidence.maintainer_signals | github_repo:323048702 | https://github.com/OpenBB-finance/OpenBB | issue_or_pr_quality=unknown\n\n## 28. maintenance · 发布节奏不明确\n\n- Severity: low\n- Evidence strength: source_linked\n- Finding: release_recency=unknown。\n- User impact: 安装命令和文档可能落后于代码，用户踩坑概率升高。\n- Suggested check: 确认最近 release/tag 和 README 安装命令是否一致。\n- Guardrail action: 发布节奏未知或过期时，安装说明必须标注可能漂移。\n- Evidence: evidence.maintainer_signals | github_repo:323048702 | https://github.com/OpenBB-finance/OpenBB | release_recency=unknown\n\n## 29. maintenance · 失败模式：maintenance: ODP Desktop v1.0.2\n\n- Severity: low\n- Evidence strength: source_linked\n- Finding: Developers should check this maintenance risk before relying on the project: ODP Desktop v1.0.2\n- User impact: Upgrade or migration may change expected behavior: ODP Desktop v1.0.2\n- Suggested check: Before packaging this project, run the relevant install/config/quickstart check for: ODP Desktop v1.0.2. Context: Observed when using windows\n- Guardrail action: State this as source-backed community evidence, not as Doramagic reproduction.\n- Evidence: failure_mode_cluster:github_release | fmev_c611176eed42d564fe51eebbd73c3402 | https://github.com/OpenBB-finance/OpenBB/releases/tag/Open-Data-Platform-v1.0.2 | ODP Desktop v1.0.2\n\n<!-- canonical_name: OpenBB-finance/OpenBB; human_manual_source: deepwiki_human_wiki -->\n",
      "markdown_key": "openbb",
      "pages": "draft",
      "source_refs": [
        {
          "evidence_id": "github_repo:323048702",
          "kind": "repo",
          "supports_claim_ids": [
            "claim_identity",
            "claim_distribution",
            "claim_capability"
          ],
          "url": "https://github.com/OpenBB-finance/OpenBB"
        },
        {
          "evidence_id": "art_035a0b2cef63491a87aace5e297502e4",
          "kind": "docs",
          "supports_claim_ids": [
            "claim_identity",
            "claim_distribution",
            "claim_capability"
          ],
          "url": "https://github.com/OpenBB-finance/OpenBB#readme"
        }
      ],
      "summary": "DeepWiki/Human Wiki output with a Doramagic pitfall appendix.",
      "title": "OpenBB 说明书",
      "toc": [
        "https://github.com/OpenBB-finance/OpenBB 项目说明书",
        "目录",
        "Introduction to OpenBB Platform",
        "Overview",
        "Architecture",
        "Installation",
        "Python SDK Usage",
        "Fetch equity historical data",
        "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": "186cbb068c194fb11adc57bb492a75e474ef4103",
    "repo_inspection_error": null,
    "repo_inspection_files": [
      "README.md",
      "examples/content.json",
      "examples/README.md",
      "examples/openbb-apachebeam/README.md",
      "examples/streamlit/news.py",
      "examples/openbb-apachebeam/tests/test_obb_pipeline.py",
      "examples/openbb-apachebeam/tests/__init__.py"
    ],
    "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": "# openbb-platform - Doramagic AI Context Pack\n\n> 定位：安装前体验与判断资产。它帮助宿主 AI 有一个好的开始，但不代表已经安装、执行或验证目标项目。\n\n## 充分原则\n\n- **充分原则，不是压缩原则**：AI Context Pack 应该充分到让宿主 AI 在开工前理解项目价值、能力边界、使用入口、风险和证据来源；它可以分层组织，但不以最短摘要为目标。\n- **压缩策略**：只压缩噪声和重复内容，不压缩会影响判断和开工质量的上下文。\n\n## 给宿主 AI 的使用方式\n\n你正在读取 Doramagic 为 openbb-platform 编译的 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 文档。 证据：`openbb_platform/extensions/mcp_server/openbb_mcp_server/skills/build_workspace_app/SKILL.md`, `openbb_platform/extensions/mcp_server/openbb_mcp_server/skills/configure_mcp_server/SKILL.md`, `openbb_platform/extensions/mcp_server/openbb_mcp_server/skills/develop_extension/SKILL.md`, `openbb_platform/extensions/mcp_server/openbb_mcp_server/skills/work_with_server/SKILL.md` Claim：`clm_0003` supported 0.86\n\n## 它能做什么\n\n- **AI Skill / Agent 指令资产库**（可做安装前预览）：项目包含可被宿主 AI 读取的 Skill 或 Agent 指令文件，可用于把专业流程带入 Claude、Codex、Cursor 等宿主。 证据：`openbb_platform/extensions/mcp_server/openbb_mcp_server/skills/build_workspace_app/SKILL.md`, `openbb_platform/extensions/mcp_server/openbb_mcp_server/skills/configure_mcp_server/SKILL.md`, `openbb_platform/extensions/mcp_server/openbb_mcp_server/skills/develop_extension/SKILL.md`, `openbb_platform/extensions/mcp_server/openbb_mcp_server/skills/work_with_server/SKILL.md` Claim：`clm_0001` supported 0.86\n- **命令行启动或安装流程**（需要安装后验证）：项目文档中存在可执行命令，真实使用需要在本地或宿主环境中运行这些命令。 证据：`README.md` Claim：`clm_0002` supported 0.86\n\n## 怎么开始\n\n- `pip install \"openbb[all]\"` 证据：`README.md` Claim：`clm_0004` supported 0.86\n\n## 继续前判断卡\n\n- **当前建议**：先做研究框架试用\n- **为什么**：这个项目面向研究工作流，核心风险是资料可信度和输出质量；先用 Prompt Preview 验证研究框架，再在隔离环境试装。\n\n### 30 秒判断\n\n- **现在怎么做**：先做研究框架试用\n- **最小安全下一步**：先用 Prompt Preview 验证研究框架；满意后再隔离试装\n- **先别相信**：研究结论、引用和实验结果不能在安装前相信。\n- **继续会触碰**：研究判断、命令执行、宿主 AI 配置\n\n### 现在可以相信\n\n- **适合人群线索：希望把专业流程带进宿主 AI 的用户**（supported）：有 supported claim 或项目证据支撑，但仍不等于真实安装效果。 证据：`openbb_platform/extensions/mcp_server/openbb_mcp_server/skills/build_workspace_app/SKILL.md`, `openbb_platform/extensions/mcp_server/openbb_mcp_server/skills/configure_mcp_server/SKILL.md`, `openbb_platform/extensions/mcp_server/openbb_mcp_server/skills/develop_extension/SKILL.md`, `openbb_platform/extensions/mcp_server/openbb_mcp_server/skills/work_with_server/SKILL.md` Claim：`clm_0003` supported 0.86\n- **能力存在：AI Skill / Agent 指令资产库**（supported）：可以相信项目包含这类能力线索；是否适合你的具体任务仍要试用或安装后验证。 证据：`openbb_platform/extensions/mcp_server/openbb_mcp_server/skills/build_workspace_app/SKILL.md`, `openbb_platform/extensions/mcp_server/openbb_mcp_server/skills/configure_mcp_server/SKILL.md`, `openbb_platform/extensions/mcp_server/openbb_mcp_server/skills/develop_extension/SKILL.md`, `openbb_platform/extensions/mcp_server/openbb_mcp_server/skills/work_with_server/SKILL.md` Claim：`clm_0001` supported 0.86\n- **能力存在：命令行启动或安装流程**（supported）：可以相信项目包含这类能力线索；是否适合你的具体任务仍要试用或安装后验证。 证据：`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）：研究 Skill 可以组织问题和路径，但不能替代真实资料检索、论文核验和实验复现。\n- **是否适合你的具体研究领域不能直接相信。**（unverified）：Skill 覆盖很多研究主题，不代表对你的领域、资料要求和可信度标准足够。\n- **真实输出质量不能在安装前相信。**（unverified）：Prompt Preview 只能展示引导方式，不能证明真实项目中的结果质量。\n- **宿主 AI 版本兼容性不能在安装前相信。**（unverified）：Claude、Cursor、Codex、Gemini 等宿主加载规则和版本差异必须在真实环境验证。\n- **不会污染现有宿主 AI 行为，不能直接相信。**（inferred）：Skill、plugin、AGENTS/CLAUDE/GEMINI 指令可能改变宿主 AI 的默认行为。 证据：`openbb_platform/extensions/mcp_server/openbb_mcp_server/skills/build_workspace_app/SKILL.md`, `openbb_platform/extensions/mcp_server/openbb_mcp_server/skills/configure_mcp_server/SKILL.md`, `openbb_platform/extensions/mcp_server/openbb_mcp_server/skills/develop_extension/SKILL.md`, `openbb_platform/extensions/mcp_server/openbb_mcp_server/skills/work_with_server/SKILL.md`\n- **可安全回滚不能默认相信。**（unverified）：除非项目明确提供卸载和恢复说明，否则必须先在隔离环境验证。\n- **真实安装后是否与用户当前宿主 AI 版本兼容？**（unverified）：兼容性只能通过实际宿主环境验证。\n- **项目输出质量是否满足用户具体任务？**（unverified）：安装前预览只能展示流程和边界，不能替代真实评测。\n\n### 继续会触碰什么\n\n- **研究判断**：问题拆解、资料路径、实验路径、结论结构和可信度判断。 原因：研究型 Skill 可能让输出看起来更专业，但不能替代真实证据核验。\n- **命令执行**：包管理器、网络下载、本地插件目录、项目配置或用户主目录。 原因：运行第一条命令就可能产生环境改动；必须先判断是否值得跑。 证据：`README.md`\n- **宿主 AI 配置**：Claude/Codex/Cursor/Gemini/OpenCode 等宿主的 plugin、Skill 或规则加载配置。 原因：宿主配置会改变 AI 后续工作方式，可能和用户已有规则冲突。 证据：`openbb_platform/extensions/mcp_server/openbb_mcp_server/skills/build_workspace_app/SKILL.md`, `openbb_platform/extensions/mcp_server/openbb_mcp_server/skills/configure_mcp_server/SKILL.md`, `openbb_platform/extensions/mcp_server/openbb_mcp_server/skills/develop_extension/SKILL.md`, `openbb_platform/extensions/mcp_server/openbb_mcp_server/skills/work_with_server/SKILL.md`\n- **本地环境或项目文件**：安装结果、插件缓存、项目配置或本地依赖目录。 原因：安装前无法证明写入范围和回滚方式，需要隔离验证。 证据：`README.md`\n- **宿主 AI 上下文**：AI Context Pack、Prompt Preview、Skill 路由、风险规则和项目事实。 原因：导入上下文会影响宿主 AI 后续判断，必须避免把未验证项包装成事实。\n\n### 最小安全下一步\n\n- **先跑 Prompt Preview**：先验证它能否正确界定研究问题和证据边界，不要先相信研究输出。（适用：任何项目都适用，尤其是输出质量未知时。）\n- **只在隔离目录或测试账号试装**：避免安装命令污染主力宿主 AI、真实项目或用户主目录。（适用：存在命令执行、插件配置或本地写入线索时。）\n- **先备份宿主 AI 配置**：Skill、plugin、规则文件可能改变 Claude/Cursor/Codex 的默认行为。（适用：存在插件 manifest、Skill 或宿主规则入口时。）\n- **安装后只验证一个最小任务**：先验证加载、兼容、输出质量和回滚，再决定是否深用。（适用：准备从试用进入真实工作流时。）\n\n### 退出方式\n\n- **保留安装前状态**：记录原始宿主配置和项目状态，后续才能判断是否可恢复。\n- **准备移除宿主 plugin / Skill / 规则入口**：如果试装后行为异常，可以把宿主 AI 恢复到试装前状态。\n- **保留资料和结论核验清单**：如果后续发现引用或实验路径不可靠，可以回到证据边界阶段重新校验。\n- **记录安装命令和写入路径**：没有明确卸载说明时，至少要知道哪些目录或配置需要手动清理。\n- **如果没有回滚路径，不进入主力环境**：不可回滚是继续前阻断项，不应靠信任或运气继续。\n\n## 哪些只能预览\n\n- 解释项目适合谁和能做什么\n- 基于项目文档演示典型对话流程\n- 帮助用户判断是否值得安装或继续研究\n\n## 哪些必须安装后验证\n\n- 真实安装 Skill、插件或 CLI\n- 执行脚本、修改本地文件或访问外部服务\n- 验证真实输出质量、性能和兼容性\n\n## 边界与风险判断卡\n\n- **把安装前预览误认为真实运行**：用户可能高估项目已经完成的配置、权限和兼容性验证。 处理方式：明确区分 prompt_preview_can_do 与 runtime_required。 Claim：`clm_0005` inferred 0.45\n- **命令执行会修改本地环境**：安装命令可能写入用户主目录、宿主插件目录或项目配置。 处理方式：先在隔离环境或测试账号中运行。 证据：`README.md` Claim：`clm_0006` 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 体验。 证据：`openbb_platform/extensions/mcp_server/openbb_mcp_server/skills/build_workspace_app/SKILL.md`, `openbb_platform/extensions/mcp_server/openbb_mcp_server/skills/configure_mcp_server/SKILL.md`, `openbb_platform/extensions/mcp_server/openbb_mcp_server/skills/develop_extension/SKILL.md`, `openbb_platform/extensions/mcp_server/openbb_mcp_server/skills/work_with_server/SKILL.md` Claim：`clm_0001` supported 0.86\n- **命令行启动或安装流程**：先说明这是安装后验证能力，再给出安装前检查清单。 边界：必须真实安装或运行后验证。 证据：`README.md` Claim：`clm_0002` supported 0.86\n\n### 上下文规模\n\n- 文件总数：2043\n- 重要文件覆盖：40/2043\n- 证据索引条目：80\n- 角色 / Skill 条目：4\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请基于 openbb-platform 的 AI Context Pack，先问我 3 个必要问题，然后判断它是否适合我的任务。回答必须包含：适合谁、能做什么、不能做什么、是否值得安装、证据来自哪里。所有项目事实必须引用 evidence_refs、source_paths 或 claim_id。\n```\n\n### 安装前体验\n\n- 目标：让用户在安装前感受核心工作流，同时避免把预览包装成真实能力或营销承诺。\n- 预期输出：一段带边界标签的体验剧本、安装后验证清单和谨慎建议；不含真实运行承诺或强营销表述。\n\n```text\n请把 openbb-platform 当作安装前体验资产，而不是已安装工具或真实运行环境。\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请基于 openbb-platform 的 AI Context Pack，生成一段我可以粘贴给宿主 AI 的开工前指令。这段指令必须遵守 not_runtime=true，不能声称项目已经安装、运行或产生真实结果。\n```\n\n\n## 角色 / Skill 索引\n\n- 共索引 4 个角色 / Skill / 项目文档条目。\n\n- **build_workspace_app**（skill）：This guide covers the full lifecycle of building, running, and serving a custom OpenBB Workspace application from an extension project scaffolded by openbb-cookiecutter . It assumes the project shell already exists see the develop extension skill for scaffolding instructions . 激活提示：当用户任务与“build_workspace_app”描述的流程高度相关时，先用它做安装前体验，再决定是否安装。 证据：`openbb_platform/extensions/mcp_server/openbb_mcp_server/skills/build_workspace_app/SKILL.md`\n- **configure_mcp_server**（skill）：This guide covers installation, configuration, authentication, tool discovery, prompt management, and client integration for openbb-mcp-server . 激活提示：当用户任务与“configure_mcp_server”描述的流程高度相关时，先用它做安装前体验，再决定是否安装。 证据：`openbb_platform/extensions/mcp_server/openbb_mcp_server/skills/configure_mcp_server/SKILL.md`\n- **develop_extension**（skill）：This is a complete guide for creating a new OpenBB Platform extension from scratch. Follow every phase in order. When the user says \"build me an application that does X\", use this guide to scaffold, implement, install, and verify the extension. 激活提示：当用户任务与“develop_extension”描述的流程高度相关时，先用它做安装前体验，再决定是否安装。 证据：`openbb_platform/extensions/mcp_server/openbb_mcp_server/skills/develop_extension/SKILL.md`\n- **work_with_server**（skill）：This guide explains how to call tools, interpret responses, discover capabilities, use prompts, and handle errors when interacting with an OpenBB MCP server. 激活提示：当用户任务与“work_with_server”描述的流程高度相关时，先用它做安装前体验，再决定是否安装。 证据：`openbb_platform/extensions/mcp_server/openbb_mcp_server/skills/work_with_server/SKILL.md`\n\n## 证据索引\n\n- 共索引 80 条证据。\n\n- **OpenBB Workspace**（documentation）：! Twitter https://img.shields.io/twitter/url/https/twitter.com/openbb finance.svg?style=social&label=Follow%20%40openbb finance https://x.com/openbb finance ! Discord Shield https://img.shields.io/discord/831165782750789672 https://discord.com/invite/xPHTuHCmuV ! Open in Dev Containers https://img.shields.io/static/v1?label=Dev%20Containers&message=Open&color=blue&logo=visualstudiocode https://vscode.dev/redirect?url=vscode://ms-vscode-remote.remote-containers/cloneInVolume?url=https://github.com/OpenBB-finance/OpenBB ! PyPI https://img.shields.io/pypi/v/openbb?color=blue&label=PyPI%20Package https://pypi.org/project/openbb/ 证据：`README.md`\n- **Assets**（documentation）：This folder should hold assets read by OpenBB applications, such as OpenBB Hub or marketing website. 证据：`assets/README.md`\n- **OpenBB Platform CLI**（documentation）：! Downloads https://static.pepy.tech/badge/openbb https://pepy.tech/project/openbb ! LatestRelease https://badge.fury.io/py/openbb.svg https://github.com/OpenBB-finance/OpenBB 证据：`cli/README.md`\n- **OpenBB ODP Extensions Cookiecutter**（documentation）：Cookiecutter https://cookiecutter.readthedocs.io/en/1.7.2/ is a command-line utility that creates projects from templates. 证据：`cookiecutter/README.md`\n- **Open Data Platform - by OpenBB - Desktop Application**（documentation）：Open Data Platform - by OpenBB - Desktop Application 证据：`desktop/README.md`\n- **Jupyter Notebook Examples Using the OpenBB Platform**（documentation）：Jupyter Notebook Examples Using the OpenBB Platform 证据：`examples/README.md`\n- **OpenBB Platform**（documentation）：! Downloads https://static.pepy.tech/badge/openbb https://pepy.tech/project/openbb ! LatestRelease https://badge.fury.io/py/openbb.svg https://github.com/OpenBB-finance/OpenBB 证据：`openbb_platform/README.md`\n- **OpenBB Workflows**（documentation）：This directory contains the workflows for the OpenBB 🦋 Project. The workflows are: 证据：`.github/workflows/README.md`\n- **OpenBB ODP Extensions Cookiecutter Template**（documentation）：OpenBB ODP Extensions Cookiecutter Template 证据：`cookiecutter/openbb_cookiecutter/template/{{cookiecutter.project_tag}}/README.md`\n- **OBB Dataflow Sample**（documentation）：This is a sample on how to invoke OBB fetchers in an Apache Beam pipeline. GCP Dataflow is built on Apache Beam 证据：`examples/openbb-apachebeam/README.md`\n- **Open Data Platform by OpenBB**（documentation）：Open Data Platform by OpenBB ODP is the open-source toolset that helps data engineers integrate proprietary, licensed, and public data sources into downstream applications like AI copilots and research dashboards. 证据：`openbb_platform/core/README.md`\n- **Extensions**（documentation）：In this folder you can find the extensions that were created or are supported by OpenBB. 证据：`openbb_platform/extensions/README.md`\n- **Commodity Extension for OpenBB Platform**（documentation）：Commodity Extension for OpenBB Platform 证据：`openbb_platform/extensions/commodity/README.md`\n- **Crypto data extension for OpenBB Platform**（documentation）：Crypto data extension for OpenBB Platform 证据：`openbb_platform/extensions/crypto/README.md`\n- **OpenBB Currency Extension**（documentation）：This extension provides currency exchange related data for the OpenBB Platform. 证据：`openbb_platform/extensions/currency/README.md`\n- **OpenBB Derivatives Extension**（documentation）：This extension provides derivatives data for the OpenBB Platform. 证据：`openbb_platform/extensions/derivatives/README.md`\n- **The OpenBB DevTools Extension**（documentation）：This extension aggregates the dependencies that facilitate a nice development experience for OpenBB. It does not contain any code itself, but rather pulls in the following dependencies: 证据：`openbb_platform/extensions/devtools/README.md`\n- **Econometrics extension for OpenBB Platform**（documentation）：Econometrics extension for OpenBB Platform 证据：`openbb_platform/extensions/econometrics/README.md`\n- **OpenBB Economy Extension**（documentation）：The Economy extension provides global macroeconomic data access for the OpenBB Platform. 证据：`openbb_platform/extensions/economy/README.md`\n- **OpenBB Equity Extension**（documentation）：This extension provides equity market data tools for the OpenBB Platform. 证据：`openbb_platform/extensions/equity/README.md`\n- **ETF data extension for OpenBB SDK**（documentation）：This extension provides a set of commands for ETF data retrieval. 证据：`openbb_platform/extensions/etf/README.md`\n- **OpenBB Fixed Income Extension**（documentation）：This extension provides fixed income data for the OpenBB Platform. 证据：`openbb_platform/extensions/fixedincome/README.md`\n- **OpenBB Index Extension**（documentation）：The Index extension provides global and european index data access for the OpenBB Platform. 证据：`openbb_platform/extensions/index/README.md`\n- **OpenBB MCP Server**（documentation）：This extension enables LLM agents to interact with OpenBB Platform's REST API endpoints through the MCP protocol. 证据：`openbb_platform/extensions/mcp_server/README.md`\n- **OpenBB News Extension**（documentation）：This extension provides news for the OpenBB Platform. 证据：`openbb_platform/extensions/news/README.md`\n- **OpenBB Platform API Launcher**（documentation）：This package is responsible for launching and configuring an OpenBB Platform environment, or FastAPI instance, to use as an OpenBB Workspace custom backend https://docs.openbb.co/workspace/data-integration . 证据：`openbb_platform/extensions/platform_api/README.md`\n- **OpenBB QA Extension**（documentation）：This extension provides Quantitative Analysis QA tools for the OpenBB Platform. 证据：`openbb_platform/extensions/quantitative/README.md`\n- **OpenBB Regulators Extension**（documentation）：This extension provides a structure for data sourced from various global market regulators. 证据：`openbb_platform/extensions/regulators/README.md`\n- **OpenBB Technical Analysis Extension**（documentation）：OpenBB Technical Analysis Extension 证据：`openbb_platform/extensions/technical/README.md`\n- **OpenBB Charting extension**（documentation）：This extension provides a charting library for OpenBB Platform. 证据：`openbb_platform/obbject_extensions/charting/README.md`\n- **Providers**（documentation）：In this folder you can find the providers that were created or are supported by OpenBB. 证据：`openbb_platform/providers/README.md`\n- **OpenBB Alpha Vantage Provider**（documentation）：This extension integrates the Alpha Vantage https://www.alphavantage.co/ data provider into the OpenBB Platform. 证据：`openbb_platform/providers/alpha_vantage/README.md`\n- **OpenBB Benzinga Provider**（documentation）：This extension integrates the Benzinga https://www.benzinga.com/ data provider into the OpenBB Platform. 证据：`openbb_platform/providers/benzinga/README.md`\n- **OpenBB Biztoc Provider**（documentation）：This extension integrates the Biztoc data provider into the OpenBB Platform. 证据：`openbb_platform/providers/biztoc/README.md`\n- **BLS Provider Extension**（documentation）：This extension integrates the BLS data provider into the OpenBB Platform. 证据：`openbb_platform/providers/bls/README.md`\n- **OpenBB CBOE Provider**（documentation）：This extension integrates the CBOE https://www.cboe.com/ data provider into the OpenBB Platform. 证据：`openbb_platform/providers/cboe/README.md`\n- **CFTC Provider Extension**（documentation）：This package provides full access to the CFTC Commitment of Traders database. Reports are fetched by CFTC Code e.g. 13874+ and returns the full history of the contract. 证据：`openbb_platform/providers/cftc/README.md`\n- **Congress.gov Provider**（documentation）：This provider integrates with the Congress.gov API to provide access to U.S. legislative data and text. 证据：`openbb_platform/providers/congress_gov/README.md`\n- **OpenBB Deribit Provider Extension**（documentation）：- obb.derivatives.options.chains - Support for symbols: - BTC - ETH - XRP - SOL - BNB - PAXG - obb.derivatives.futures.curve - Support for symbols: - BTC - ETH - PAXG - obb.derivatives.futures.historical - Support for symbols Perpetual Futures : - ADAUSDC - ALGOUSDC - AVAXUSDC - BCHUSDC - BNBUSDC - BTC - BTCUSDC - BTCUSDT - DOGEUSDC - DOTUSDC - ETH - ETHUSDC - ETHUSDT - LINKUSDC - LTCUSDC - NEARUSDC - PAXGUSDC - SOLUSDC - TRXUSDC - UNIUSDC - XRPUSDC - Additional symbols include all Deribit instrument names of current open contracts for BTC, ETH, and PAXG futures. - obb.derivatives.futures.instruments - Reference data for all current futures instruments. - obb.derivatives.futures.info - Key… 证据：`openbb_platform/providers/deribit/README.md`\n- **OpenBB ECB Provider**（documentation）：This extension integrates the ECB https://data.ecb.europa.eu/ data provider into the OpenBB Platform. 证据：`openbb_platform/providers/ecb/README.md`\n- **OpenBB EconDB Provider**（documentation）：This extension integrates the EconDB https://econdb.com/ data provider into the OpenBB Platform. 证据：`openbb_platform/providers/econdb/README.md`\n- **OpenBB EIA Provider Extension**（documentation）：This module integrates the EIA https://eia.gov data provider into the OpenBB Platform. 证据：`openbb_platform/providers/eia/README.md`\n- **OpenBB Fama-French Extension**（documentation）：This extension implements the Ken French data library Source: https://mba.tuck.dartmouth.edu/pages/faculty/ken.french/data library.html as an OpenBB Platform Provider and Router extension. 证据：`openbb_platform/providers/famafrench/README.md`\n- **OpenBB Federal Reserve Provider**（documentation）：This extension integrates the Federal Reserve https://www.federalreserve.gov/data.htm data provider into the OpenBB Platform. It focuses on Federal Reserve data not published to FRED. No authorization is required for access. 证据：`openbb_platform/providers/federal_reserve/README.md`\n- **OpenBB FINRA Provider**（documentation）：This extension integrates the FINRA https://finra.org/ data provider into the OpenBB Platform. 证据：`openbb_platform/providers/finra/README.md`\n- **OpenBB Finviz Data Provider Extension**（documentation）：OpenBB Finviz Data Provider Extension 证据：`openbb_platform/providers/finviz/README.md`\n- **OpenBB Financial Modeling Prep Provider**（documentation）：OpenBB Financial Modeling Prep Provider 证据：`openbb_platform/providers/fmp/README.md`\n- **OpenBB FRED Provider**（documentation）：This extension integrates the FRED https://fred.stlouisfed.org/docs/api/fred/ data provider into the OpenBB Platform. 证据：`openbb_platform/providers/fred/README.md`\n- **OpenBB Government US Provider**（documentation）：This extension integrates the US Government https://data.gov data provider into the OpenBB Platform. 证据：`openbb_platform/providers/government_us/README.md`\n- **OpenBB IMF Provider Extension**（documentation）：This package adds the openbb-imf provider extension to the Open Data Platform by OpenBB. 证据：`openbb_platform/providers/imf/README.md`\n- **OpenBB Intrinio Provider**（documentation）：This extension integrates the Intrinio https://intrinio.com/ data provider into the OpenBB Platform. 证据：`openbb_platform/providers/intrinio/README.md`\n- **Multpl Provider Extension**（documentation）：This is an implementation of the data published to https://multpl.com https;//multpl.com 证据：`openbb_platform/providers/multpl/README.md`\n- **OpenBB Nasdaq Provider**（documentation）：This extension integrates the Nasdaq https://www.nasdaq.com data provider into the OpenBB Platform. 证据：`openbb_platform/providers/nasdaq/README.md`\n- **OpenBB OECD Provider**（documentation）：This extension integrates the OECD https://stats.oecd.org data provider into the OpenBB Platform. 证据：`openbb_platform/providers/oecd/README.md`\n- **OpenBB SEC Provider**（documentation）：This extension integrates the SEC https://www.sec.gov/edgar data provider into the OpenBB Platform. 证据：`openbb_platform/providers/sec/README.md`\n- **OpenBB Seeking Alpha Provider**（documentation）：This extension integrates the Seeking Alpha https://seekingalpha.com data provider into the OpenBB Platform. 证据：`openbb_platform/providers/seeking_alpha/README.md`\n- **OpenBB Stockgrid Provider**（documentation）：This extension integrates the Stockgrid https://Stockgrid.io/ data provider into the OpenBB Platform. 证据：`openbb_platform/providers/stockgrid/README.md`\n- **OpenBB Tiingo Provider**（documentation）：This extension integrates the Tiingo https://www.tiingo.com/ data provider into the OpenBB Platform. 证据：`openbb_platform/providers/tiingo/README.md`\n- **OpenBB TMX Provider**（documentation）：This extension integrates the TMX https://www.tmx.com data provider into the OpenBB Platform. 证据：`openbb_platform/providers/tmx/README.md`\n- **OpenBB Tradier Provider**（documentation）：This extension integrates the Tradier https://tradier.com data provider into the OpenBB Platform. 证据：`openbb_platform/providers/tradier/README.md`\n- 其余 20 条证据见 `AI_CONTEXT_PACK.json` 或 `EVIDENCE_INDEX.json`。\n\n## 宿主 AI 必须遵守的规则\n\n- **把本资产当作开工前上下文，而不是运行环境。**：AI Context Pack 只包含证据化项目理解，不包含目标项目的可执行状态。 证据：`README.md`, `assets/README.md`, `cli/README.md`\n- **回答用户时区分可预览内容与必须安装后才能验证的内容。**：安装前体验的消费者价值来自降低误装和误判，而不是伪装成真实运行。 证据：`README.md`, `assets/README.md`, `cli/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\nThe following material strengthens the Repomix/AI Context Pack body. Human Manual is only a reading skeleton; pitfall logs become hard operating constraints for the host AI.\n\n## Human Manual Skeleton\n\nUsage rule: this is only a reading path and salience signal, not factual authority. Concrete facts must still come from repo evidence / Claim Graph.\n\nHard rules for the host AI:\n- Do not treat page titles, order, summaries, or importance as project facts.\n- When explaining the Human Manual skeleton, state that it is only a reading path / salience signal.\n- Capability, installation, compatibility, runtime status, and risk judgments must cite repo evidence, source paths, or Claim Graph.\n\n- **Introduction to OpenBB Platform**：importance `high`\n  - source_paths: README.md, openbb_platform/README.md\n- **Installation Guide**：importance `high`\n  - source_paths: openbb_platform/pyproject.toml, cli/pyproject.toml, openbb_platform/README.md\n- **System Architecture**：importance `high`\n  - source_paths: openbb_platform/core/openbb_core/app/__init__.py, openbb_platform/core/openbb_core/provider/registry.py, openbb_platform/core/openbb_core/provider/query_executor.py\n- **Core Concepts**：importance `high`\n  - source_paths: openbb_platform/core/openbb_core/app/model/obbject.py, openbb_platform/core/openbb_core/provider/abstract/provider.py, openbb_platform/core/openbb_core/provider/abstract/fetcher.py, openbb_platform/core/openbb_core/provider/abstract/data.py\n- **OBBject System**：importance `high`\n  - source_paths: openbb_platform/core/openbb_core/app/model/obbject.py, openbb_platform/core/openbb_core/app/model/abstract/results.py, openbb_platform/core/integration/test_obbject.py\n- **Provider Interface**：importance `high`\n  - source_paths: openbb_platform/core/openbb_core/provider/abstract/query_params.py, openbb_platform/core/openbb_core/provider/abstract/fetcher.py, openbb_platform/core/openbb_core/provider/abstract/provider.py, openbb_platform/core/openbb_core/provider/registry_map.py\n- **Data Providers Overview**：importance `high`\n  - source_paths: openbb_platform/providers/fmp/README.md, openbb_platform/providers/fred/README.md, openbb_platform/providers/yfinance/README.md, openbb_platform/providers/README.md\n- **Developing Custom Providers**：importance `medium`\n  - source_paths: cookiecutter/openbb_cookiecutter/template/{{cookiecutter.project_tag}}/{{cookiecutter.package_name}}/providers/{{cookiecutter.provider_name}}/models/example.py, cookiecutter/openbb_cookiecutter/template/{{cookiecutter.project_tag}}/{{cookiecutter.package_name}}/providers/{{cookiecutter.provider_name}}/utils/helpers.py, openbb_platform/providers/fmp/openbb_fmp/utils/helpers.py\n\n## Repo Inspection Evidence\n\n- repo_clone_verified: true\n- repo_inspection_verified: true\n- repo_commit: `186cbb068c194fb11adc57bb492a75e474ef4103`\n- inspected_files: `README.md`, `examples/content.json`, `examples/README.md`, `examples/openbb-apachebeam/README.md`, `examples/streamlit/news.py`, `examples/openbb-apachebeam/tests/test_obb_pipeline.py`, `examples/openbb-apachebeam/tests/__init__.py`\n\nHard rules for the host AI:\n- Without repo_clone_verified=true, do not claim the source code has been read.\n- Without repo_inspection_verified=true, do not turn README/docs/package observations into facts.\n- Without quick_start_verified=true, do not claim the Quick Start has been successfully run.\n\n## Doramagic Pitfall Constraints\n\nThese rules come from Doramagic discovery, validation, or compilation pitfalls. The host AI must treat them as operating constraints, not general background notes.\n\n### Constraint 1: 来源证据：[FR] Add Bank of Canada Valet API as a new provider extension\n\n- Trigger: GitHub 社区证据显示该项目存在一个安全/权限相关的待验证问题：[FR] Add Bank of Canada Valet API as a new provider extension\n- Host AI rule: 来源问题仍为 open，Pack Agent 需要复核是否仍影响当前版本。\n- Why it matters: 可能影响授权、密钥配置或安全边界。\n- Evidence: community_evidence:github | cevd_a8349d4112564c48b29615f3530e81e4 | https://github.com/OpenBB-finance/OpenBB/issues/7490 | 来源讨论提到 api key 相关条件，需在安装/试用前复核。\n- Hard boundary: do not present this pitfall as solved, verified, or safe to ignore unless later validation evidence explicitly closes it.\n\n### Constraint 2: 来源证据：[FR] Add Real-time Cryptocurrency Data Provider Integration\n\n- Trigger: GitHub 社区证据显示该项目存在一个安全/权限相关的待验证问题：[FR] Add Real-time Cryptocurrency Data Provider Integration\n- Host AI rule: 来源问题仍为 open，Pack Agent 需要复核是否仍影响当前版本。\n- Why it matters: 可能影响授权、密钥配置或安全边界。\n- Evidence: community_evidence:github | cevd_e1bb7e5c7c0a4dc2bea2a256ed74a0b0 | https://github.com/OpenBB-finance/OpenBB/issues/7177 | 来源讨论提到 api key 相关条件，需在安装/试用前复核。\n- Hard boundary: do not present this pitfall as solved, verified, or safe to ignore unless later validation evidence explicitly closes it.\n\n### Constraint 3: 来源证据：[FR] Signed audit receipts for MCP server tool calls (regulatory compliance)\n\n- Trigger: GitHub 社区证据显示该项目存在一个安全/权限相关的待验证问题：[FR] Signed audit receipts for MCP server tool calls (regulatory compliance)\n- Host AI rule: 来源问题仍为 open，Pack Agent 需要复核是否仍影响当前版本。\n- Why it matters: 可能影响授权、密钥配置或安全边界。\n- Evidence: community_evidence:github | cevd_01ea12beef924e199679c6d2d1b91c73 | https://github.com/OpenBB-finance/OpenBB/issues/7455 | 来源讨论提到 npm 相关条件，需在安装/试用前复核。\n- Hard boundary: do not present this pitfall as solved, verified, or safe to ignore unless later validation evidence explicitly closes it.\n\n### Constraint 4: 涉及密钥、隐私或敏感领域\n\n- Trigger: 项目文本出现 secret/private key/privacy/trading/finance 等敏感关键词。\n- Host AI rule: 补敏感数据流、密钥存储和权限边界审查。\n- Why it matters: 金融、交易、隐私和密钥场景必须比普通工具更保守。\n- Evidence: packet_text.keyword_scan | github_repo:323048702 | https://github.com/OpenBB-finance/OpenBB | matched secret / private key / privacy / trading / finance keyword\n- Hard boundary: do not present this pitfall as solved, verified, or safe to ignore unless later validation evidence explicitly closes it.\n\n### Constraint 5: 失败模式：installation: OpenBB Platform v4.5.0\n\n- Trigger: Developers should check this installation risk before relying on the project: OpenBB Platform v4.5.0\n- Host AI rule: Before packaging this project, run the relevant install/config/quickstart check for: OpenBB Platform v4.5.0. Context: Observed when using python\n- Why it matters: Upgrade or migration may change expected behavior: OpenBB Platform v4.5.0\n- Evidence: failure_mode_cluster:github_release | fmev_3acb4d0463ffb0d96b55088fc42477e1 | https://github.com/OpenBB-finance/OpenBB/releases/tag/v4.5.0 | OpenBB Platform v4.5.0\n- Hard boundary: do not present this pitfall as solved, verified, or safe to ignore unless later validation evidence explicitly closes it.\n\n### Constraint 6: 失败模式：installation: OpenBB Platform v4.6.0\n\n- Trigger: Developers should check this installation risk before relying on the project: OpenBB Platform v4.6.0\n- Host AI rule: Before packaging this project, run the relevant install/config/quickstart check for: OpenBB Platform v4.6.0. Context: Observed when using python\n- Why it matters: Upgrade or migration may change expected behavior: OpenBB Platform v4.6.0\n- Evidence: failure_mode_cluster:github_release | fmev_c32f0b655c075b88a71f35f893ae1f90 | https://github.com/OpenBB-finance/OpenBB/releases/tag/v4.6.0 | OpenBB Platform v4.6.0\n- Hard boundary: do not present this pitfall as solved, verified, or safe to ignore unless later validation evidence explicitly closes it.\n\n### Constraint 7: 失败模式：installation: [Bug] Openbb 4.5.0 cannot import name 'OBBject_EquityInfo' from 'openbb_core.app.provider_int...\n\n- Trigger: Developers should check this installation risk before relying on the project: [Bug] Openbb 4.5.0 cannot import name 'OBBject_EquityInfo' from 'openbb_core.app.provider_interface'\n- Host AI rule: Before packaging this project, run the relevant install/config/quickstart check for: [Bug] Openbb 4.5.0 cannot import name 'OBBject_EquityInfo' from 'openbb_core.app.provider_interface'. Context: Observed when using python, docker\n- Why it matters: Developers may fail before the first successful local run: [Bug] Openbb 4.5.0 cannot import name 'OBBject_EquityInfo' from 'openbb_core.app.provider_interface'\n- Evidence: failure_mode_cluster:github_issue | fmev_a7115ea0142ee2b52fad8606fc7d47ec | https://github.com/OpenBB-finance/OpenBB/issues/7279 | [Bug] Openbb 4.5.0 cannot import name 'OBBject_EquityInfo' from 'openbb_core.app.provider_interface'\n- Hard boundary: do not present this pitfall as solved, verified, or safe to ignore unless later validation evidence explicitly closes it.\n\n### Constraint 8: 失败模式：installation: [Bug] PyWry WebView Fails to Launch on Ubuntu 24.04\n\n- Trigger: Developers should check this installation risk before relying on the project: [Bug] PyWry WebView Fails to Launch on Ubuntu 24.04\n- Host AI rule: Before packaging this project, run the relevant install/config/quickstart check for: [Bug] PyWry WebView Fails to Launch on Ubuntu 24.04. Context: Observed when using python, linux\n- Why it matters: Developers may fail before the first successful local run: [Bug] PyWry WebView Fails to Launch on Ubuntu 24.04\n- Evidence: failure_mode_cluster:github_issue | fmev_c48a7161974013fd9895ea98894b35bd | https://github.com/OpenBB-finance/OpenBB/issues/7148 | [Bug] PyWry WebView Fails to Launch on Ubuntu 24.04\n- Hard boundary: do not present this pitfall as solved, verified, or safe to ignore unless later validation evidence explicitly closes it.\n\n### Constraint 9: 失败模式：installation: [FR] Add Bank of Canada Valet API as a new provider extension\n\n- Trigger: Developers should check this installation risk before relying on the project: [FR] Add Bank of Canada Valet API as a new provider extension\n- Host AI rule: Before packaging this project, run the relevant install/config/quickstart check for: [FR] Add Bank of Canada Valet API as a new provider extension. Context: Observed when using python\n- Why it matters: Developers may fail before the first successful local run: [FR] Add Bank of Canada Valet API as a new provider extension\n- Evidence: failure_mode_cluster:github_issue | fmev_3ee0b5efd611f4c6c49174e1a6ba1006 | https://github.com/OpenBB-finance/OpenBB/issues/7490 | [FR] Add Bank of Canada Valet API as a new provider extension\n- Hard boundary: do not present this pitfall as solved, verified, or safe to ignore unless later validation evidence explicitly closes it.\n\n### Constraint 10: 来源证据：[Bug] PyWry WebView Fails to Launch on Ubuntu 24.04\n\n- Trigger: GitHub 社区证据显示该项目存在一个安装相关的待验证问题：[Bug] PyWry WebView Fails to Launch on Ubuntu 24.04\n- Host AI rule: 来源显示可能已有修复、规避或版本变化，说明书中必须标注适用版本。\n- Why it matters: 可能阻塞安装或首次运行。\n- Evidence: community_evidence:github | cevd_c068fa0d9cac4fb7b74d875b22d312d7 | https://github.com/OpenBB-finance/OpenBB/issues/7148 | 来源讨论提到 python 相关条件，需在安装/试用前复核。\n- Hard boundary: do not present this pitfall as solved, verified, or safe to ignore unless later validation evidence explicitly closes it.\n",
      "summary": "Context and operating boundaries for host AI agents.",
      "title": "AI Context Pack"
    },
    "boundary_risk_card": {
      "asset_id": "boundary_risk_card",
      "filename": "BOUNDARY_RISK_CARD.md",
      "markdown": "# Boundary & Risk Card\n\nProject: OpenBB-finance/OpenBB\n\n## Doramagic Trial Decision\n\nCurrent decision: it can enter pre-publication recommendation checks. First use should still start with least privilege, a temporary directory, and reversible configuration.\n\n## What The User Can Do Now\n\n- Read the Human Manual first to understand the project purpose and main workflows.\n- Use Prompt Preview for pre-install exploration; it validates interaction shape, not real execution.\n- Run official Quick Start commands only inside an isolated environment, not a primary setup.\n\n## Do Not Do Yet\n\n- Do not treat Prompt Preview as a real project execution result.\n- Do not treat metadata-only validation as sandbox installation validation.\n- Do not describe unverified capabilities as supported, working, or safe to install.\n- Do not provide production data, private files, real secrets, or primary host configuration on first trial.\n\n## Pre-Install Checklist\n\n- Host AI match: local_cli\n- Official installation entry status: official entry point found\n- Isolated temporary directory, temporary host, or container validation: required\n- Configuration rollback path: required\n- API keys, network access, file access, or host configuration changes: treat as high risk until confirmed\n- Installation command, actual output, and failure logs: must be recorded\n\n## Current Blockers\n\n- No blockers.\n\n## Project-Specific Pitfalls\n\n- 来源证据：[FR] Add Bank of Canada Valet API as a new provider extension (high): 可能影响授权、密钥配置或安全边界。 Suggested check: 来源问题仍为 open，Pack Agent 需要复核是否仍影响当前版本。\n- 来源证据：[FR] Add Real-time Cryptocurrency Data Provider Integration (high): 可能影响授权、密钥配置或安全边界。 Suggested check: 来源问题仍为 open，Pack Agent 需要复核是否仍影响当前版本。\n- 来源证据：[FR] Signed audit receipts for MCP server tool calls (regulatory compliance) (high): 可能影响授权、密钥配置或安全边界。 Suggested check: 来源问题仍为 open，Pack Agent 需要复核是否仍影响当前版本。\n- 涉及密钥、隐私或敏感领域 (high): 金融、交易、隐私和密钥场景必须比普通工具更保守。 Suggested check: 补敏感数据流、密钥存储和权限边界审查。\n- 失败模式：installation: OpenBB Platform v4.5.0 (medium): Upgrade or migration may change expected behavior: OpenBB Platform v4.5.0 Suggested check: Before packaging this project, run the relevant install/config/quickstart check for: OpenBB Platform v4.5.0. Context: Observed when using python\n\n## Risk And Permission Notes\n\n- no_demo: medium\n\n## Evidence Gaps\n\n- No structured evidence gaps are currently visible.\n",
      "summary": "Installation, permission, validation, and pre-recommendation risks.",
      "title": "Boundary & Risk Card"
    },
    "human_manual": {
      "asset_id": "human_manual",
      "filename": "HUMAN_MANUAL.md",
      "markdown": "# https://github.com/OpenBB-finance/OpenBB 项目说明书\n\n生成时间：2026-05-17 18:27:47 UTC\n\n## 目录\n\n- [Introduction to OpenBB Platform](#page-introduction)\n- [Installation Guide](#page-installation)\n- [System Architecture](#page-architecture)\n- [Core Concepts](#page-core-concepts)\n- [OBBject System](#page-obbject-system)\n- [Provider Interface](#page-provider-interface)\n- [Data Providers Overview](#page-providers-overview)\n- [Developing Custom Providers](#page-provider-development)\n- [Extensions System](#page-extensions)\n- [Charting and Visualization](#page-charting)\n- [Command Line Interface](#page-cli)\n- [Desktop Application](#page-desktop-app)\n\n<a id='page-introduction'></a>\n\n## Introduction to OpenBB Platform\n\n### 相关页面\n\n相关主题：[Installation Guide](#page-installation), [System Architecture](#page-architecture)\n\n<details>\n<summary>相关源码文件</summary>\n\n以下源码文件用于生成本页说明：\n\n- [README.md](https://github.com/OpenBB-finance/OpenBB/blob/main/README.md)\n- [openbb_platform/README.md](https://github.com/OpenBB-finance/OpenBB/blob/main/openbb_platform/README.md)\n- [cli/README.md](https://github.com/OpenBB-finance/OpenBB/blob/main/cli/README.md)\n- [openbb_platform/extensions/news/README.md](https://github.com/OpenBB-finance/OpenBB/blob/main/openbb_platform/extensions/news/README.md)\n- [openbb_platform/extensions/commodity/README.md](https://github.com/OpenBB-finance/OpenBB/blob/main/openbb_platform/extensions/commodity/README.md)\n- [openbb_platform/extensions/economy/README.md](https://github.com/OpenBB-finance/OpenBB/blob/main/openbb_platform/extensions/economy/README.md)\n- [openbb_platform/extensions/technical/README.md](https://github.com/OpenBB-finance/OpenBB/blob/main/openbb_platform/extensions/technical/README.md)\n- [openbb_platform/extensions/derivatives/README.md](https://github.com/OpenBB-finance/OpenBB/blob/main/openbb_platform/extensions/derivatives/README.md)\n- [openbb_platform/extensions/regulators/README.md](https://github.com/OpenBB-finance/OpenBB/blob/main/openbb_platform/extensions/regulators/README.md)\n- [openbb_platform/extensions/mcp_server/README.md](https://github.com/OpenBB-finance/OpenBB/blob/main/openbb_platform/extensions/mcp_server/README.md)\n- [openbb_platform/providers/fmp/README.md](https://github.com/OpenBB-finance/OpenBB/blob/main/openbb_platform/providers/fmp/README.md)\n- [openbb_platform/providers/government_us/README.md](https://github.com/OpenBB-finance/OpenBB/blob/main/openbb_platform/providers/government_us/README.md)\n- [openbb_platform/providers/imf/README.md](https://github.com/OpenBB-finance/OpenBB/blob/main/openbb_platform/providers/imf/README.md)\n</details>\n\n# Introduction to OpenBB Platform\n\n## Overview\n\nThe OpenBB Platform is an open-source data integration foundation for financial data, designed to provide unified access to various financial data sources through a standardized Python interface. It enables developers and analysts to access market data, economic indicators, company fundamentals, and more through a consistent API. 资料来源：[README.md](https://github.com/OpenBB-finance/OpenBB/blob/main/README.md)\n\nThe platform follows a \"connect once, consume everywhere\" architecture, allowing seamless integration between different components and enabling data to be consumed across multiple interfaces including Python SDK, REST API, and the OpenBB Workspace enterprise UI. 资料来源：[README.md](https://github.com/OpenBB-finance/OpenBB/blob/main/README.md)\n\n## Architecture\n\nThe OpenBB Platform consists of several interconnected layers that work together to deliver financial data to end users.\n\n### System Architecture Diagram\n\n```mermaid\ngraph TD\n    A[OpenBB Workspace] <--> B[OpenBB Platform REST API]\n    B <--> C[Core Engine]\n    C <--> D[Extensions]\n    C <--> E[Data Providers]\n    D --> F[Technical Analysis]\n    D --> G[Economy]\n    D --> H[News]\n    D --> I[Commodity]\n    D --> J[Derivatives]\n    D --> K[Regulators]\n    D --> L[MCP Server]\n    E --> M[FMP]\n    E --> N[IMF]\n    E --> O[US Government]\n```\n\n### Key Components\n\n| Component | Description | Type |\n|-----------|-------------|------|\n| Core Engine | Central processing unit handling requests and data normalization | Core |\n| Extensions | Domain-specific functionality modules | Plugin |\n| Providers | Data source integrations (FMP, IMF, Government US, etc.) | Plugin |\n| REST API | FastAPI-based HTTP interface for programmatic access | Interface |\n| Python SDK | Native Python interface via `obb` object | Interface |\n| MCP Server | Model Context Protocol server for AI agent integration | Extension |\n\n## Installation\n\n### Python Package Installation\n\nThe primary method to install OpenBB Platform is via pip:\n\n```bash\npip install openbb\n```\n\nAfter installation, you can immediately start using the platform:\n\n```python\nfrom openbb import obb\noutput = obb.equity.price.historical(\"AAPL\")\ndf = output.to_dataframe()\n```\n\n资料来源：[README.md](https://github.com/OpenBB-finance/OpenBB/blob/main/README.md)\n\n### Local Development Setup\n\nFor local development with source code access, the following requirements must be met:\n\n- Git\n- Python 3.10 - 3.13\n- Virtual Environment with `poetry` installed\n- Local copy of the [GitHub repository](https://github.com/OpenBB-finance/OpenBB.git)\n\nTo install for local development:\n\n1. Activate your virtual environment\n2. Navigate to the `openbb_platform` folder\n3. Run `python dev_install.py -e` to install all packages in editable mode\n\n资料来源：[openbb_platform/README.md](https://github.com/OpenBB-finance/OpenBB/blob/main/openbb_platform/README.md)\n\n## Python SDK Usage\n\n### Basic Usage\n\nThe OpenBB Platform provides a unified `obb` object for all operations:\n\n```python\nfrom openbb import obb\n\n# Fetch equity historical data\nresult = obb.equity.price.historical(\"AAPL\", start_date=\"2023-01-01\")\ndf = result.to_dataframe()\n```\n\n### Setting API Keys\n\nMany data providers require API keys for authentication:\n\n```python\nfrom openbb import obb\nobb.user.credentials.fred_api_key = \"REPLACE_ME\"\nobb.user.credentials.polygon_api_key = \"REPLACE_ME\"\n```\n\n资料来源：[openbb_platform/README.md](https://github.com/OpenBB-finance/OpenBB/blob/main/openbb_platform/README.md)\n\n## REST API\n\nThe OpenBB Platform includes a ready-to-use REST API built with FastAPI. To start the API server:\n\n```bash\nuvicorn openbb_core.api.rest_api:app --host 0.0.0.0 --port 8000 --reload\n```\n\nAPI documentation is available under `/docs` endpoint. 资料来源：[openbb_platform/README.md](https://github.com/OpenBB-finance/OpenBB/blob/main/openbb_platform/README.md)\n\n### API Configuration\n\nRuntime settings and configurations for the REST API can be adjusted through system settings. See the [official documentation](https://docs.openbb.co/platform/settings/system_settings#api-settings) for detailed configuration options.\n\n## Extensions Ecosystem\n\nExtensions provide domain-specific functionality and can be installed independently. Each extension follows the same installation pattern via pip.\n\n### Available Extensions\n\n| Extension | Package Name | Description |\n|-----------|--------------|-------------|\n| Technical Analysis | `openbb-technical` | Technical analysis tools, indicators, and oscillators |\n| Economy | `openbb-economy` | Global macroeconomic data access |\n| News | `openbb-news` | News data integration |\n| Commodity | `openbb-commodity` | Commodity-related data and commands |\n| Derivatives | `openbb-derivatives` | Derivatives market data |\n| Regulators | `openbb-regulators` | Data from global market regulators |\n| MCP Server | `openbb-mcp-server` | Model Context Protocol server for AI agents |\n\n### Extension Installation\n\nInstall any extension using pip:\n\n```bash\npip install openbb-technical\npip install openbb-economy\npip install openbb-news\n```\n\n资料来源：[openbb_platform/extensions/technical/README.md](https://github.com/OpenBB-finance/OpenBB/blob/main/openbb_platform/extensions/technical/README.md), [openbb_platform/extensions/economy/README.md](https://github.com/OpenBB-finance/OpenBB/blob/main/openbb_platform/extensions/economy/README.md), [openbb_platform/extensions/news/README.md](https://github.com/OpenBB-finance/OpenBB/blob/main/openbb_platform/extensions/news/README.md)\n\n### MCP Server Extension\n\nThe MCP (Model Context Protocol) Server extension allows OpenBB Platform routes to be exposed as tools for AI agents. It supports inline MCP configuration for granular control:\n\n```python\nfrom openbb_mcp_server.models.mcp_config import MCPConfigModel\n```\n\nConfiguration properties include:\n\n- **`expose`** (`Optional[bool]`): Hide/show routes from MCP server\n- **`mcp_type`** (`Optional[MCPType]`): Classify as `\"tool\"`, `\"resource\"`, or `\"resource_template\"`\n- **`methods`** (`Optional[list[HTTPMethod]]`): Specify HTTP methods to expose\n\n资料来源：[openbb_platform/extensions/mcp_server/README.md](https://github.com/OpenBB-finance/OpenBB/blob/main/openbb_platform/extensions/mcp_server/README.md)\n\n## Data Providers\n\nProviders are integrations that connect to external data sources. They can be installed as separate packages.\n\n### Provider Installation\n\nProviders are installed via pip and then registered with the platform:\n\n```bash\npip install openbb-fmp\npip install openbb-imf\npip install openbb-us-government\n```\n\nAfter installation, rebuild Python static assets:\n\n```bash\nopenbb-build\n```\n\n资料来源：[openbb_platform/providers/fmp/README.md](https://github.com/OpenBB-finance/OpenBB/blob/main/openbb_platform/providers/fmp/README.md), [openbb_platform/providers/imf/README.md](https://github.com/OpenBB-finance/OpenBB/blob/main/openbb_platform/providers/imf/README.md)\n\n### Official Providers\n\n| Provider | Package | Description |\n|----------|---------|-------------|\n| Financial Modeling Prep | `openbb-fmp` | Company fundamentals, stock data, financial statements |\n| IMF | `openbb-imf` | International Monetary Fund data via SDMX API |\n| US Government | `openbb-us-government` | US Government data from data.gov |\n\n### US Government Provider Coverage\n\nThe US Government provider covers:\n\n- `obb.commodity.psd_report`\n- `obb.commodity.psd_data`\n- `obb.commodity.weather_bulletins`\n- `obb.fixed_income.government.treasury_auctions`\n- `obb.fixed_income.government.treasury_prices`\n\nAll covered services require no registration. 资料来源：[openbb_platform/providers/government_us/README.md](https://github.com/OpenBB-finance/OpenBB/blob/main/openbb_platform/providers/government_us/README.md)\n\n### IMF Provider Implementation\n\nThe IMF provider uses SDMX API to access dataflows. Key implementation details:\n\n- User input validation via constraints API for each dimension\n- Cached metadata contains all potential parameter values\n- Network requests made when code lists are not included in cache\n\n资料来源：[openbb_platform/providers/imf/README.md](https://github.com/OpenBB-finance/OpenBB/blob/main/openbb_platform/providers/imf/README.md)\n\n## Integration with OpenBB Workspace\n\nOpenBB Workspace is an enterprise UI that complements the open-source data platform. The platform's architecture enables seamless integration between the two components.\n\n### Data Flow\n\n```mermaid\ngraph LR\n    A[OpenBB Platform] -->|Custom Backend| B[OpenBB Workspace]\n    B -->|Visualization| C[Analyst Dashboard]\n    A -->|REST API| D[Third-party Applications]\n```\n\n### Connecting Platform to Workspace\n\n1. Start the API server with `openbb-api` (starts FastAPI on localhost port 6900)\n2. Add the server to OpenBB Workspace\n3. Access widgets and data exploration tools through the dashboard\n\n资料来源：[openbb_platform/providers/imf/README.md](https://github.com/OpenBB-finance/OpenBB/blob/main/openbb_platform/providers/imf/README.md)\n\n## CLI Integration\n\nThe OpenBB Platform can be accessed via the command-line interface:\n\n```bash\npip install openbb-cli\nopenbb\n```\n\n资料来源：[cli/README.md](https://github.com/OpenBB-finance/OpenBB/blob/main/cli/README.md)\n\n## Development with Cookiecutter\n\nFor developers creating new extensions or providers, the OpenBB Cookiecutter template provides a standardized project structure:\n\n```bash\npip install openbb-cookiecutter\nopenbb-cookiecutter\n```\n\nDevelopment workflow:\n\n1. Generate project from template\n2. Create Python environment for the project\n3. Install with `pip install -e .`\n4. Trigger static file generation with `openbb-build`\n5. Import package or start API\n\n资料来源：[cookiecutter/README.md](https://github.com/OpenBB-finance/OpenBB/blob/main/cookiecutter/README.md)\n\n## Getting Help and Contributing\n\n### Documentation\n\nComplete documentation is available at [https://docs.openbb.co](https://docs.openbb.co):\n\n- [Platform Documentation](https://docs.openbb.co/platform)\n- [API Reference](https://docs.openbb.co/python/reference)\n- [Developer Guide](https://docs.openbb.co/platform/developer_guide/contributing)\n\n### Community and Support\n\n| Channel | Link |\n|---------|------|\n| Discord | [openbb.co/discord](https://openbb.co/discord) |\n| GitHub Issues | [GitHub Issues](https://github.com/OpenBB-finance/OpenBB/issues) |\n| Social Media | [openbb.co/links](https://openbb.co/links) |\n\n### Issue Templates\n\n- [Bug Report](https://github.com/OpenBB-finance/OpenBB/issues/new?assignees=&labels=bug&template=bug_report.md)\n- [Improvement Suggestion](https://github.com/OpenBB-finance/OpenBB/issues/new?assignees=&labels=enhancement&template=enhancement.md)\n- [Feature Request](https://github.com/OpenBB-finance/OpenBB/issues/new?assignees=&labels=new+feature&template=feature_request.md)\n\n## License and Disclaimer\n\nThe OpenBB Platform is distributed under the **AGPLv3 License**.\n\n**Disclaimer**: Trading in financial instruments involves high risks including the risk of losing some, or all, of your investment amount. The data contained in the Open Data Platform is not necessarily accurate. OpenBB and any provider of data will not accept liability for any loss or damage as a result of trading or reliance on the information displayed.\n\n资料来源：[README.md](https://github.com/OpenBB-finance/OpenBB/blob/main/README.md)\n\n---\n\n<a id='page-installation'></a>\n\n## Installation Guide\n\n### 相关页面\n\n相关主题：[Introduction to OpenBB Platform](#page-introduction), [Command Line Interface](#page-cli)\n\n<details>\n<summary>相关源码文件</summary>\n\n以下源码文件用于生成本页说明：\n\n- [openbb_platform/README.md](https://github.com/OpenBB-finance/OpenBB/blob/main/openbb_platform/README.md)\n- [cli/README.md](https://github.com/OpenBB-finance/OpenBB/blob/main/cli/README.md)\n- [openbb_platform/extensions/news/README.md](https://github.com/OpenBB-finance/OpenBB/blob/main/openbb_platform/extensions/news/README.md)\n- [openbb_platform/extensions/commodity/README.md](https://github.com/OpenBB-finance/OpenBB/blob/main/openbb_platform/extensions/commodity/README.md)\n- [openbb_platform/extensions/mcp_server/README.md](https://github.com/OpenBB-finance/OpenBB/blob/main/openbb_platform/extensions/mcp_server/README.md)\n- [cookiecutter/README.md](https://github.com/OpenBB-finance/OpenBB/blob/main/cookiecutter/README.md)\n- [openbb_platform/providers/cftc/README.md](https://github.com/OpenBB-finance/OpenBB/blob/main/openbb_platform/providers/cftc/README.md)\n- [openbb_platform/providers/multpl/README.md](https://github.com/OpenBB-finance/OpenBB/blob/main/openbb_platform/providers/multpl/README.md)\n</details>\n\n# Installation Guide\n\nThis guide provides comprehensive instructions for installing and configuring the OpenBB Platform ecosystem. The installation process supports multiple deployment methods including the Python Package (ODP), CLI interface, Platform extensions, and provider integrations.\n\n## Overview\n\nThe OpenBB Platform consists of several interconnected components that can be installed independently or together. The architecture supports modular installation, allowing users to install only the components they need for their specific use case.\n\n```mermaid\ngraph TD\n    A[OpenBB Platform Core] --> B[CLI Interface]\n    A --> C[Python API]\n    A --> D[Extensions]\n    A --> E[Providers]\n    D --> D1[News Extension]\n    D --> D2[Commodity Extension]\n    D --> D3[MCP Server]\n    E --> E1[CFTC Provider]\n    E --> E2[Multpl Provider]\n    E --> E3[Congress Gov Provider]\n```\n\n## Python Package Installation\n\nThe OpenBB Platform Python Package (ODP) serves as the core installation method for all components.\n\n### Standard Installation via PyPI\n\nThe recommended method for installing the OpenBB Platform is through PyPI using pip:\n\n```bash\npip install openbb\n```\n\n资料来源：[README.md](https://github.com/OpenBB-finance/OpenBB/blob/main/README.md)\n\n### Platform Installation\n\nThe Platform package includes the core libraries and dependencies required for data analysis and financial computations. After installation, the Platform can be accessed programmatically:\n\n```python\nfrom openbb import obb\n\n# Example: Fetch S&P 500 multiples data\ndata = obb.index.sp500_multiples()\n```\n\n资料来源：[openbb_platform/providers/multpl/README.md](https://github.com/OpenBB-finance/OpenBB/blob/main/openbb_platform/providers/multpl/README.md)\n\n## CLI Installation\n\nThe OpenBB CLI provides a command-line interface for interacting with the Platform.\n\n### Installation via PyPI\n\n```bash\npip install openbb-cli\n```\n\n资料来源：[cli/README.md](https://github.com/OpenBB-finance/OpenBB/blob/main/cli/pyproject.toml)\n\n### Deployment\n\nAfter installation, deploy the OpenBB Platform CLI by running:\n\n```bash\nopenbb\n```\n\n资料来源：[cli/README.md](https://github.com/OpenBB-finance/OpenBB/blob/main/cli/README.md)\n\n### Installation Verification\n\nA successful installation produces the following output:\n\n![OpenBB CLI Interface](https://github.com/OpenBB-finance/OpenBB/assets/48914296/f606bb6e-fa00-4fc8-bad2-8269bb4fc38e)\n\n## Extension Installation\n\nExtensions extend the core Platform functionality with specialized features. Each extension is distributed as a separate Python package installable via pip.\n\n### News Extension\n\nThe News Extension provides news aggregation capabilities for the OpenBB Platform.\n\n```bash\npip install openbb-news\n```\n\n资料来源：[openbb_platform/extensions/news/README.md](https://github.com/OpenBB-finance/OpenBB/blob/main/openbb_platform/extensions/news/README.md)\n\n### Commodity Extension\n\nThe Commodity Extension provides commands for commodity-related financial data.\n\n```bash\npip install openbb-commodity\n```\n\n资料来源：[openbb_platform/extensions/commodity/README.md](https://github.com/OpenBB-finance/OpenBB/blob/main/openbb_platform/extensions/commodity/README.md)\n\n### MCP Server Extension\n\nThe MCP Server Extension exposes OpenBB Platform endpoints as Model Context Protocol (MCP) tools, enabling AI assistant integration.\n\n```bash\npip install openbb-mcp-server\n```\n\n资料来源：[openbb_platform/extensions/mcp_server/README.md](https://github.com/OpenBB-finance/OpenBB/blob/main/openbb_platform/extensions/mcp_server/README.md)\n\n### Extension Configuration via MCP\n\nThe MCP Server extension supports inline configuration using the `MCPConfigModel`:\n\n```python\nfrom openbb_mcp_server.models.mcp_config import MCPConfigModel\n```\n\nThe configuration supports the following properties:\n\n| Property | Type | Description |\n|----------|------|-------------|\n| `expose` | `Optional[bool]` | Set to `False` to hide a route from the MCP server |\n| `mcp_type` | `Optional[MCPType]` | Classify as `\"tool\"`, `\"resource\"`, or `\"resource_template\"` |\n| `methods` | `Optional[list[HTTPMethod]]` | Specify HTTP methods to expose |\n\n资料来源：[openbb_platform/extensions/mcp_server/README.md](https://github.com/OpenBB-finance/OpenBB/blob/main/openbb_platform/extensions/mcp_server/README.md)\n\n## Provider Installation\n\nProviders are data source integrations that supply financial and economic data to the Platform.\n\n### Available Providers\n\n| Provider | Package | Command |\n|----------|---------|---------|\n| CFTC | openbb-cftc | `pip install openbb-cftc` |\n| Multpl | openbb-multpl | `pip install openbb-multpl` |\n| Congress Gov | openbb-congress-gov | Included in Platform core |\n\n资料来源：[openbb_platform/providers/cftc/README.md](https://github.com/OpenBB-finance/OpenBB/blob/main/openbb_platform/providers/cftc/README.md)\n\n### CFTC Provider Usage\n\nThe CFTC provider provides Commitments of Traders (COT) data:\n\n```python\nfrom openbb import obb\n\n# Search for commodities\nsearch_results = obb.cftc.cot_search(query=\"gold\")\nprint(search_results.to_df())\n\n# Fetch specific report\nreport = obb.cftc.cot(code=\"CFTC_088695\", measure=\"percent_of_oi\", limit=4)\nprint(report.to_df().T)\n```\n\n资料来源：[openbb_platform/providers/cftc/README.md](https://github.com/OpenBB-finance/OpenBB/blob/main/openbb_platform/providers/cftc/README.md)\n\n### Multpl Provider Usage\n\nThe Multpl provider provides S&P 500 data:\n\n```python\nfrom openbb import obb\n\ndata = obb.index.sp500_multiples()\n```\n\n资料来源：[openbb_platform/providers/multpl/README.md](https://github.com/OpenBB-finance/OpenBB/blob/main/openbb_platform/providers/multpl/README.md)\n\n### Congress Gov Provider Usage\n\nThe Congress Gov provider provides US Congressional data:\n\n```python\nfrom openbb import obb\n\n# Get recent bills\nbills = obb.uscongress.bills(limit=10)\n\n# Get bill details\nbill_info = obb.uscongress.bill_info(bill_url=\"119/hr/1\")\n```\n\n资料来源：[openbb_platform/providers/congress_gov/README.md](https://github.com/OpenBB-finance/OpenBB/blob/main/openbb_platform/providers/congress_gov/README.md)\n\n## REST API Deployment\n\nThe Platform can be deployed as a REST API for remote access and integration with other applications.\n\n### Starting the API Server\n\n```bash\nopenbb-api\n```\n\nThis starts the server over localhost, making the Platform accessible via HTTP endpoints.\n\n资料来源：[openbb_platform/providers/cftc/README.md](https://github.com/OpenBB-finance/OpenBB/blob/main/openbb_platform/providers/cftc/README.md)\n\n### Platform Connection\n\nTo connect to the Platform from external applications:\n\n1. Navigate to the \"Apps\" tab\n2. Click on \"Connect backend\"\n3. Fill in the connection form:\n   - **Name:** Open Data Platform\n   - **URL:** `http://127.0.0.1:6900`\n4. Click \"Test\" to verify connectivity\n5. Click \"Add\" to complete the connection\n\n资料来源：[README.md](https://github.com/OpenBB-finance/OpenBB/blob/main/README.md)\n\n## Development Environment Setup\n\nFor developers contributing to the OpenBB Platform, a cookiecutter template is available to scaffold new extensions and providers.\n\n### Cookiecutter Template\n\n1. Install the cookiecutter template:\n```bash\npip install openbb-cookiecutter\n```\n\n2. Navigate to the desired output location and run:\n```bash\nopenbb-cookiecutter\n```\n\n3. Create a new Python environment for the project.\n\n4. Install the generated package:\n```bash\npip install -e .\n```\n\n5. Generate Python static files:\n```bash\nopenbb-build\n```\n\n6. Import the package or start the API.\n\n资料来源：[cookiecutter/README.md](https://github.com/OpenBB-finance/OpenBB/blob/main/cookiecutter/README.md)\n\n## Installation Workflow\n\n```mermaid\ngraph TD\n    A[Start Installation] --> B{Select Installation Type}\n    B -->|Python Package| C[pip install openbb]\n    B -->|CLI| D[pip install openbb-cli]\n    B -->|Extensions| E[Select Required Extensions]\n    B -->|Providers| F[Select Required Providers]\n    E --> G[pip install openbb-{extension}]\n    F --> H[pip install openbb-{provider}]\n    C --> I{Additional Components?}\n    D --> I\n    G --> J[Verify Installation]\n    H --> J\n    I -->|Yes| E\n    I -->|No| J\n    J --> K[Configure Environment]\n    K --> L[Start Using OpenBB]\n```\n\n## Installation Sources Reference\n\n| Component | Installation Source | Documentation |\n|-----------|---------------------|---------------|\n| Core Platform | PyPI (`pip install openbb`) | [docs.openbb.co](https://docs.openbb.co/python/installation) |\n| CLI | PyPI (`pip install openbb-cli`) | [docs.openbb.co/cli](https://docs.openbb.co/cli/installation) |\n| Platform Extensions | Individual PyPI packages | [docs.openbb.co/platform](https://docs.openbb.co/platform/developer_guide/contributing) |\n| Cookiecutter | PyPI (`pip install openbb-cookiecutter`) | [docs.openbb.co/python/developer](https://docs.openbb.co/python/developer) |\n\n## Troubleshooting\n\n### Common Installation Issues\n\n1. **Dependency Conflicts**: Ensure Python 3.8+ is installed and consider using a virtual environment\n2. **Permission Errors**: Use `--user` flag or virtual environments to avoid system-wide installations\n3. **Network Issues**: Verify PyPI connectivity and consider using mirrors if necessary\n\n### Verification Steps\n\nAfter installation, verify the setup by importing the core module:\n\n```bash\npython -c \"from openbb import obb; print(obb)\"\n```\n\nFor CLI verification:\n\n```bash\nopenbb --version\n```\n\n## Additional Resources\n\n- **User Documentation**: [docs.openbb.co](https://docs.openbb.co)\n- **Developer Documentation**: [docs.openbb.co/python/developer](https://docs.openbb.co/python/developer)\n- **Platform Developer Guide**: [docs.openbb.co/platform/developer_guide/contributing](https://docs.openbb.co/platform/developer_guide/contributing)\n- **Support**: support@openbb.co\n- **General Inquiries**: hello@openbb.co\n\n---\n\n<a id='page-architecture'></a>\n\n## System Architecture\n\n### 相关页面\n\n相关主题：[Core Concepts](#page-core-concepts), [OBBject System](#page-obbject-system)\n\n<details>\n<summary>相关源码文件</summary>\n\n以下源码文件用于生成本页说明：\n\n- [openbb_platform/core/openbb_core/api/rest_api.py](https://github.com/OpenBB-finance/OpenBB/blob/main/openbb_platform/core/openbb_core/api/rest_api.py)\n- [openbb_platform/README.md](https://github.com/OpenBB-finance/OpenBB/blob/main/openbb_platform/README.md)\n- [openbb_platform/providers/README.md](https://github.com/OpenBB-finance/OpenBB/blob/main/openbb_platform/providers/README.md)\n- [openbb_platform/extensions/platform_api/README.md](https://github.com/OpenBB-finance/OpenBB/blob/main/openbb_platform/extensions/platform_api/README.md)\n- [openbb_platform/extensions/mcp_server/README.md](https://github.com/OpenBB-finance/OpenBB/blob/main/openbb_platform/extensions/mcp_server/README.md)\n- [cli/README.md](https://github.com/OpenBB-finance/OpenBB/blob/main/cli/README.md)\n- [desktop/src/routes/installation-progress.tsx](https://github.com/OpenBB-finance/OpenBB/blob/main/desktop/src/routes/installation-progress.tsx)\n- [desktop/src/routes/backends.tsx](https://github.com/OpenBB-finance/OpenBB/blob/main/desktop/src/routes/backends.tsx)\n- [desktop/src-tauri/src/tauri_handlers/credentials.rs](https://github.com/OpenBB-finance/OpenBB/blob/main/desktop/src-tauri/src/tauri_handlers/credentials.rs)\n</details>\n\n# System Architecture\n\n## Overview\n\nThe OpenBB Platform is a modular, extensible investment research platform designed to provide financial data and analytics through multiple interfaces. The system architecture follows a plugin-based design pattern that separates core functionality from data providers and interface implementations.\n\n资料来源：[openbb_platform/README.md]()\n\n## High-Level Architecture\n\nThe OpenBB Platform consists of three primary deployment targets:\n\n| Layer | Component | Description |\n|-------|-----------|-------------|\n| **Core** | Platform Core | Shared libraries, data models, provider registry, and query execution engine |\n| **Interface** | CLI | Terminal-based interactive interface |\n| **Interface** | Desktop | Cross-platform desktop application (Tauri-based) |\n| **Interface** | REST API | FastAPI-based HTTP API server |\n| **Extension** | MCP Server | Model Context Protocol integration for AI tooling |\n| **Extension** | Platform API | Widgets and workspace applications |\n\n资料来源：[cli/README.md](), [openbb_platform/README.md]()\n\n## Architecture Diagram\n\n```mermaid\ngraph TD\n    subgraph \"Interface Layer\"\n        CLI[CLI<br>openbb command]\n        DESKTOP[Desktop App<br>Tauri + React]\n        API[REST API<br>FastAPI]\n    end\n\n    subgraph \"Extension Layer\"\n        MCP[MCP Server<br>Model Context Protocol]\n        PLATFORM_API[Platform API<br>Widgets & Apps]\n    end\n\n    subgraph \"Core Layer\"\n        APP[App Module<br>openbb_core.app]\n        REGISTRY[Provider Registry]\n        EXECUTOR[Query Executor]\n    end\n\n    subgraph \"Provider Layer\"\n        GOV_US[Government US Provider]\n        CFTC[CFTC Provider]\n        MULTPL[Multpl Provider]\n        NEWS[News Extension]\n        COMMODITY[Commodity Extension]\n        CUSTOM[Custom Providers]\n    end\n\n    CLI --> APP\n    DESKTOP --> APP\n    API --> APP\n    MCP --> APP\n    PLATFORM_API --> APP\n\n    APP --> REGISTRY\n    APP --> EXECUTOR\n\n    REGISTRY --> GOV_US\n    REGISTRY --> CFTC\n    REGISTRY --> MULTPL\n    REGISTRY --> NEWS\n    REGISTRY --> COMMODITY\n    REGISTRY --> CUSTOM\n\n    EXECUTOR --> REGISTRY\n```\n\n## Component Details\n\n### Platform Core\n\nThe core module (`openbb_core`) contains the fundamental infrastructure for the entire platform:\n\n- **Data Models**: Standardized schemas for financial data\n- **Provider Registry**: Dynamic registration and discovery of data providers\n- **Query Executor**: Handles request routing and execution across providers\n- **Authentication**: API key management and credential handling\n\n资料来源：[openbb_platform/README.md](), [openbb_platform/providers/README.md]()\n\n### Provider System\n\nThe provider architecture allows data sources to be implemented as pluggable extensions. Each provider follows a standardized structure:\n\n```\nopenbb_platform/providers/<provider_name>/\n├── README.md\n├── pyproject.toml\n├── poetry.lock\n├── tests/\n└── openbb_<provider_name>/\n    ├── __init__.py\n    ├── models/\n    │   └── <model>.py\n    └── utils/\n        └── <helper>.py\n```\n\n资料来源：[openbb_platform/providers/README.md]()\n\n#### Supported Provider Categories\n\n| Category | Examples | Functionality |\n|----------|----------|---------------|\n| Government Data | `obb.fixed_income.government.treasury_auctions` | US Treasury and regulatory data |\n| Commodity | `obb.commodity.psd_report`, `obb.commodity.weather_bulletins` | Commodity market data |\n| Futures/COT | `obb.cftc.cot`, `obb.cftc.cot_search` | CFTC Commitments of Traders |\n| Market Indices | `obb.index.sp500_multiples` | Index and market multiples |\n| News | News Extension | Financial news aggregation |\n| Regulatory | Regulators Extension | Global market regulator data |\n\n资料来源：[openbb_platform/providers/government_us/README.md](), [openbb_platform/providers/cftc/README.md](), [openbb_platform/providers/multpl/README.md]()\n\n### REST API Architecture\n\nThe FastAPI-based REST API provides programmatic access to all platform functionality:\n\n```python\napp = FastAPI(\n    title=system.api_settings.title,\n    description=system.api_settings.description,\n    version=system.api_settings.version,\n    servers=[\n        {\"url\": s.url, \"description\": s.description}\n        for s in system.api_settings.servers\n    ],\n)\napp.add_middleware(\n    CORSMiddleware,\n    allow_origins=system.api_settings.cors.allow_origins,\n    allow_methods=system.api_settings.cors.allow_methods,\n    allow_headers=system.api_settings.cors.allow_headers,\n)\n```\n\n资料来源：[openbb_platform/core/openbb_core/api/rest_api.py:38-70]()\n\n#### API Configuration Options\n\nThe REST API supports configurable settings including:\n\n- `title`: API title\n- `description`: API description\n- `version`: API version\n- `terms_of_service`: Terms of service URL\n- `contact`: Contact information (name, URL, email)\n- `license_info`: License details (name, URL)\n- `servers`: Server configurations with URLs and descriptions\n- `cors`: Cross-Origin Resource Sharing settings\n\nStart the API server with:\n\n```bash\nuvicorn openbb_core.api.rest_api:app --host 0.0.0.0 --port 8000 --reload\n```\n\n资料来源：[openbb_platform/core/openbb_core/api/rest_api.py](), [openbb_platform/README.md]()\n\n### MCP Server Extension\n\nThe Model Context Protocol (MCP) server integration exposes OpenBB functionality as tools for AI assistants:\n\n```json\n{\n  \"description\": \"Generate a brief summary of GDP for a country.\",\n  \"messages\": [\n    {\n      \"role\": \"user\",\n      \"content\": {\n        \"type\": \"text\",\n        \"text\": \"Use the tool, economy_gdp, to perform the following task.\\n\\nProvide a concise summary of the GDP for Japan over the last 10 years.\"\n      }\n    }\n  ]\n}\n```\n\n#### MCP Configuration Options\n\n| Property | Type | Description |\n|----------|------|-------------|\n| `expose` | `Optional[bool]` | Set to `False` to hide a route from MCP server |\n| `mcp_type` | `Optional[MCPType]` | Classify as `\"tool\"`, `\"resource\"`, or `\"resource_template\"` |\n| `methods` | `Optional[list[HTTPMethod]]` | Specify HTTP methods to expose |\n\n资料来源：[openbb_platform/extensions/mcp_server/README.md]()\n\n### Desktop Application Architecture\n\nThe desktop application uses Tauri (Rust backend) with React frontend:\n\n```mermaid\ngraph LR\n    subgraph \"Desktop Frontend\"\n        UI[React Components]\n        ROUTES[Routes: installation-progress, backends, api-keys, environments]\n    end\n\n    subgraph \"Tauri Backend\"\n        HANDLERS[Tauri Handlers]\n        CREDENTIALS[Credentials Handler]\n    end\n\n    UI --> HANDLERS\n    HANDLERS --> CREDENTIALS\n```\n\n#### Desktop Installation Flow\n\nThe desktop application manages installation through phases:\n\n1. **Miniforge Setup**: Python environment manager installation\n2. **Core Libraries**: OpenBB environment with dependencies\n3. **Extensions**: User-selected extensions and PyPI packages\n\n资料来源：[desktop/src/routes/installation-progress.tsx](), [desktop/src/routes/backends.tsx]()\n\n#### Credential Management\n\nThe desktop application handles credential storage through platform-specific editors:\n\n| Platform | Editor | Configuration |\n|----------|--------|---------------|\n| Windows | Notepad | `.env`, `.condarc`, etc. |\n| macOS | TextEdit | Basic text editing |\n| Linux | gedit/kate/leafpad/mousepad/xed | Multiple fallback editors |\n\n资料来源：[desktop/src-tauri/src/tauri_handlers/credentials.rs]()\n\n### Platform API Extension\n\nThe Platform API extension provides widget management and workspace functionality:\n\n| File | Default Location | Purpose |\n|------|------------------|---------|\n| `widgets.json` | `~/OpenBBUserData/widgets.json` | Widget configuration |\n| `workspace_apps.json` | `~/OpenBBUserData/workspace_apps.json` | Custom workspace apps |\n\nConfiguration options:\n- `--editable`: Enable live editing without rebuild\n- `--no-build`: Serve file directly without build process\n- `--widgets-json`: Custom widgets file path\n- `--apps-json`: Custom apps file path\n\n资料来源：[openbb_platform/extensions/platform_api/README.md]()\n\n## Deployment Workflow\n\n```mermaid\ngraph TD\n    A[User Installation] --> B{M Installation Target}\n    B -->|CLI| C[pip install openbb-cli]\n    B -->|Desktop| D[Download Desktop App]\n    B -->|Platform| E[pip install openbb-platform]\n    B -->|Extension| F[pip install openbb-<extension>]\n\n    C --> G[openbb command]\n    D --> H[Tauri Desktop App]\n    E --> I[REST API Server]\n    F --> J[Add-on Functionality]\n\n    G --> K[Python Runtime + Providers]\n    H --> K\n    I --> K\n    J --> K\n\n    K --> L[Data Providers]\n```\n\n资料来源：[cli/README.md](), [openbb_platform/README.md](), [openbb_platform/extensions/news/README.md](), [openbb_platform/extensions/commodity/README.md]()\n\n## Local Development Setup\n\nFor local development, the platform uses Poetry for dependency management:\n\n```bash\n# 1. Clone repository\ngit clone https://github.com/OpenBB-finance/OpenBB.git\n\n# 2. Navigate to platform directory\ncd openbb_platform\n\n# 3. Install in editable mode\npython dev_install.py -e\n```\n\nRequirements:\n- Git\n- Python 3.10 - 3.13\n- Virtual Environment with Poetry installed\n\n资料来源：[openbb_platform/README.md]()\n\n## Security Architecture\n\n### API Key Management\n\nAPI keys are managed through the `obb.user.credentials` interface:\n\n```python\nfrom openbb import obb\nobb.user.credentials.fred_api_key = \"REPLACE_ME\"\nobb.user.credentials.polygon_api_key = \"REPLACE_ME\"\n```\n\n### File-Based Credential Storage\n\n| File | Format | Purpose |\n|------|--------|---------|\n| `.env` | Environment variables | API keys and secrets |\n| `.condarc` | YAML | Conda configuration |\n| `config.py` | Python | User preferences |\n\nThe desktop application provides UI for importing/exporting credentials as JSON or `.env` files.\n\n资料来源：[openbb_platform/README.md](), [desktop/src/routes/api-keys.tsx]()\n\n## Extension Discovery\n\nThe OpenBB Hub provides a centralized location for discovering extensions:\n\n```bash\n# Browse available extensions\n# https://my.openbb.co/app/platform/extensions\n```\n\nAvailable extension types:\n- Data Providers (e.g., `openbb-us-government`, `openbb-multpl`)\n- Data Services (e.g., `openbb-news`, `openbb-commodity`)\n- Integration Adapters (e.g., `openbb-mcp-server`, `openbb-regulators`)\n\n资料来源：[cli/README.md](), [openbb_platform/providers/government_us/README.md](), [openbb_platform/providers/multpl/README.md]()\n\n## Conclusion\n\nThe OpenBB Platform architecture emphasizes modularity, extensibility, and multi-interface support. The core layer handles data abstraction and provider management, while the interface layer provides diverse ways to interact with the platform. The extension system enables third-party contributions while maintaining consistency across the ecosystem.\n\n---\n\n<a id='page-core-concepts'></a>\n\n## Core Concepts\n\n### 相关页面\n\n相关主题：[System Architecture](#page-architecture), [OBBject System](#page-obbject-system), [Provider Interface](#page-provider-interface)\n\n<details>\n<summary>相关源码文件</summary>\n\n以下源码文件用于生成本页说明：\n\n- [openbb_platform/core/openbb_core/app/model/obbject.py](https://github.com/OpenBB-finance/OpenBB/blob/main/openbb_platform/core/openbb_core/app/model/obbject.py)\n- [openbb_platform/core/openbb_core/provider/abstract/provider.py](https://github.com/OpenBB-finance/OpenBB/blob/main/openbb_platform/core/openbb_core/provider/abstract/provider.py)\n- [openbb_platform/core/openbb_core/provider/abstract/fetcher.py](https://github.com/OpenBB-finance/OpenBB/blob/main/openbb_platform/core/openbb_core/provider/abstract/fetcher.py)\n- [openbb_platform/core/openbb_core/provider/abstract/data.py](https://github.com/OpenBB-finance/OpenBB/blob/main/openbb_platform/core/openbb_core/provider/abstract/data.py)\n- [openbb_platform/providers/README.md](https://github.com/OpenBB-finance/OpenBB/blob/main/openbb_platform/providers/README.md)\n- [openbb_platform/extensions/news/README.md](https://github.com/OpenBB-finance/OpenBB/blob/main/openbb_platform/extensions/news/README.md)\n</details>\n\n# Core Concepts\n\nThe OpenBB Platform is a modular financial data infrastructure designed to provide unified access to diverse financial data sources. Built on Python with a FastAPI REST API layer, the platform abstracts data provider complexity behind a consistent interface, enabling developers and analysts to access market data, economic indicators, and financial analytics through a standardized workflow.\n\nThis page documents the fundamental architectural concepts that underpin the OpenBB Platform, including the OBBject data model, the provider abstraction system, the fetcher pattern, and the extension mechanism.\n\n---\n\n## Architecture Overview\n\nThe OpenBB Platform follows a layered architecture that separates concerns between data sources, data processing, and API delivery. At its core, the platform uses an abstraction layer that allows multiple data providers to be integrated without affecting the consumer API.\n\n```mermaid\ngraph TD\n    subgraph \"Client Layer\"\n        CLI[OpenBB CLI]\n        REST[REST API]\n        PY[Python SDK]\n    end\n    \n    subgraph \"Core Platform\"\n        ROUTER[Router / API Routes]\n        OBB[OBBject Model]\n        HUB[Extension Hub]\n    end\n    \n    subgraph \"Provider Abstraction\"\n        PROVIDER[Provider Base Class]\n        FETCHER[Fetcher Abstract]\n        DATA[Data Models]\n    end\n    \n    subgraph \"Providers\"\n        FRED[FRED Provider]\n        POLYGON[Polygon Provider]\n        FINVIZ[Finviz Provider]\n        CFTC[CFTC Provider]\n        CUSTOM[Custom Providers]\n    end\n    \n    CLI --> ROUTER\n    REST --> ROUTER\n    PY --> OBB\n    ROUTER --> OBB\n    OBB --> PROVIDER\n    PROVIDER --> FETCHER\n    FETCHER --> DATA\n    PROVIDER --> FRED\n    PROVIDER --> POLYGON\n    PROVIDER --> FINVIZ\n    PROVIDER --> CFTC\n    PROVIDER --> CUSTOM\n```\n\n资料来源：[openbb_platform/README.md](https://github.com/OpenBB-finance/OpenBB/blob/main/openbb_platform/README.md)\n\n---\n\n## OBBject Model\n\nThe OBBject is the fundamental data container in the OpenBB Platform. Every data response returned by the platform is encapsulated within an OBBject, providing a consistent interface for accessing results, metadata, and utility methods.\n\n### Purpose and Scope\n\nThe OBBject serves multiple roles within the platform:\n\n- **Data Container**: Holds the actual results from data providers in a structured format\n- **Metadata Carrier**: Includes provider information, warnings, and pagination details\n- **Serialization Interface**: Supports conversion to various formats (DataFrame, CSV, JSON)\n- **Chainable Results**: Enables method chaining for data transformation\n\n资料来源：[openbb_platform/core/openbb_core/app/model/obbject.py](https://github.com/OpenBB-finance/OpenBB/blob/main/openbb_platform/core/openbb_core/app/model/obbject.py)\n\n### OBBject Structure\n\n| Component | Type | Description |\n|-----------|------|-------------|\n| `results` | Any | The primary data returned by the query |\n| `provider` | str | Name of the data provider that supplied the data |\n| `params` | dict | Parameters used in the original request |\n| `metadata` | dict | Additional context about the response |\n| `warnings` | list | Any warnings generated during retrieval |\n| `chart` | object | Optional charting configuration |\n\n### Usage Pattern\n\n```python\nfrom openbb import obb\n\n# Standard query returning an OBBject\nresult = obb.equity.price.historical(symbol=\"AAPL\", provider=\"polygon\")\n\n# Access results\nprint(result.results)\n\n# Convert to DataFrame\ndf = result.to_df()\n\n# Access metadata\nprint(result.provider)\nprint(result.params)\n```\n\n---\n\n## Provider System\n\nThe provider system is the abstraction layer that enables the OpenBB Platform to integrate multiple data sources through a unified interface. Each provider implements a common interface while handling the specifics of its underlying data source.\n\n### Provider Architecture\n\n```mermaid\nclassDiagram\n    class Provider {\n        <<abstract>>\n        +name: str\n        +website: str\n        +description: str\n        +credentials: dict\n        +repositories: list\n        +models: dict\n        +router: APIRouter\n        +fetch_standard_data()\n        +fetch_data()\n    }\n    \n    class Model {\n        <<abstract>>\n        +provider: Provider\n        +name: str\n        +query_params: BaseModel\n        +data: BaseModel\n        +transform()\n    }\n    \n    Provider --> Model : contains\n    \n    class PolygonProvider {\n        +name = \"polygon\"\n        +credentials: [api_key]\n    }\n    \n    class FREDProvider {\n        +name = \"fred\"\n        +credentials: [api_key]\n    }\n    \n    class FinvizProvider {\n        +name = \"finviz\"\n    }\n    \n    PolygonProvider --|> Provider\n    FREDProvider --|> Provider\n    FinvizProvider --|> Provider\n```\n\n资料来源：[openbb_platform/core/openbb_core/provider/abstract/provider.py](https://github.com/OpenBB-finance/OpenBB/blob/main/openbb_platform/core/openbb_core/provider/abstract/provider.py)\n\n### Provider Directory Structure\n\nEach provider follows a standardized directory structure:\n\n```\nopenbb_platform\n└───providers\n    └───<provider_name>\n        ├── README.md\n        ├── pyproject.toml\n        ├── poetry.lock\n        ├── tests/\n        └── openbb_<provider_name>\n            ├── __init__.py\n            ├── models/\n            │   ├── <model_name>.py\n            │   └── ...\n            └── utils/\n                ├── <helper>.py\n                └── ...\n```\n\n资料来源：[openbb_platform/providers/README.md](https://github.com/OpenBB-finance/OpenBB/blob/main/openbb_platform/providers/README.md)\n\n### Available Provider Categories\n\n| Category | Description | Example Endpoints |\n|----------|-------------|-------------------|\n| Market Data | Real-time and historical market prices | `obb.equity.price.historical` |\n| Economic | Economic indicators and datasets | `obb.economy.gdp`, `obb.economy.cpi` |\n| Government | US government financial data | `obb.fixed_income.government.treasury_auctions` |\n| Commodities | Commodity market data | `obb.commodity.psd_report` |\n| News | Financial news aggregation | News extension endpoints |\n| Technical | Technical analysis indicators | `obb.technical.indicators` |\n\n---\n\n## Fetcher Pattern\n\nThe fetcher is the abstraction responsible for executing data retrieval requests against a specific provider. Fetchers handle the transformation of query parameters into API calls and normalize the response into the platform's standard data models.\n\n### Fetcher Lifecycle\n\n```mermaid\nsequenceDiagram\n    participant Client as Client Request\n    participant Fetcher as Fetcher\n    participant Provider as Provider API\n    participant Model as Data Model\n    \n    Client->>Fetcher: Execute query with parameters\n    Fetcher->>Provider: Build and send API request\n    Provider-->>Fetcher: Raw response data\n    Fetcher->>Model: Parse and validate response\n    Model-->>Fetcher: Normalized data object\n    Fetcher-->>Client: OBBject with results\n```\n\n资料来源：[openbb_platform/core/openbb_core/provider/abstract/fetcher.py](https://github.com/OpenBB-finance/OpenBB/blob/main/openbb_platform/core/openbb_core/provider/abstract/fetcher.py)\n\n### Fetcher Configuration\n\n| Parameter | Type | Description |\n|-----------|------|-------------|\n| `definitions` | dict | Mapping of endpoint names to definitions |\n| `credentials` | Credentials | Provider authentication credentials |\n| `param_fields` | list | Fields to include in query parameters |\n| `data_fields` | list | Fields to include in response data |\n| `optional_params` | list | Parameters that are optional |\n| `requires_credential` | list | Credentials required for this fetcher |\n\n### Implementation Pattern\n\nFetchers typically implement the following method signature:\n\n```python\ndef fetch_data(\n    query: QueryParams,\n    credentials: Credentials,\n    **kwargs\n) -> OBBject:\n    \"\"\"\n    Fetch data from the provider and return an OBBject.\n    \n    Args:\n        query: Query parameters from the user request\n        credentials: Provider credentials\n        \n    Returns:\n        OBBject: The normalized response data\n    \"\"\"\n```\n\n---\n\n## Data Models\n\nData models in the OpenBB Platform define the structure of both request parameters and response data. They use Pydantic for validation and serialization, ensuring type safety throughout the platform.\n\n### Data Model Hierarchy\n\n```mermaid\ngraph TD\n    subgraph \"Data Models\"\n        QUERY[QueryParams Model]\n        RESPONSE[Response Model]\n        FIELD[Field Definitions]\n    end\n    \n    QUERY -->|validates| REQUEST[Incoming Request]\n    RESPONSE -->|defines| RESULTS[Query Results]\n    FIELD -->|composes| QUERY\n    FIELD -->|composes| RESPONSE\n```\n\n资料来源：[openbb_platform/core/openbb_core/provider/abstract/data.py](https://github.com/OpenBB-finance/OpenBB/blob/main/openbb_platform/core/openbb_core/provider/abstract/data.py)\n\n### Model Fields Configuration\n\n| Field Property | Type | Purpose |\n|---------------|------|---------|\n| `description` | str | Human-readable field description |\n| `alias` | str | Alternative name for the field |\n| `default` | Any | Default value if not provided |\n| `ge` / `le` | int | Greater than or less than constraints |\n| `pattern` | str | Regex pattern for validation |\n| `deprecated` | bool | Mark field as deprecated |\n\n### Example Data Model\n\n```python\nfrom openbb_core.provider.abstract.data import Data\nfrom pydantic import Field\n\nclass HistoricalData(Data):\n    date: str = Field(description=\"Date of the data point\")\n    open: float = Field(description=\"Opening price\")\n    high: float = Field(description=\"High price\")\n    low: float = Field(description=\"Low price\")\n    close: float = Field(description=\"Closing price\")\n    volume: int = Field(description=\"Trading volume\")\n```\n\n---\n\n## Extension System\n\nThe extension system allows the OpenBB Platform to be extended with additional functionality through modular packages. Extensions can add new endpoints, data sources, and features without modifying the core platform.\n\n### Extension Types\n\n| Extension Type | Purpose | Example |\n|---------------|---------|---------|\n| Provider | Add new data source integration | `openbb-fred`, `openbb-finviz` |\n| Feature | Add new analytical capabilities | `openbb-technical` |\n| Utility | Add helper functions and tools | `openbb-mcp-server` |\n| UI | Add dashboard widgets and apps | Workspace custom apps |\n\n### Extension Installation\n\nExtensions are installed as Python packages and automatically discovered by the platform:\n\n```bash\npip install openbb-news\npip install openbb-commodity\npip install openbb-technical\npip install openbb-regulators\n```\n\n资料来源：[openbb_platform/extensions/news/README.md](https://github.com/OpenBB-finance/OpenBB/blob/main/openbb_platform/extensions/news/README.md)\n\n### Extension Discovery Flow\n\n```mermaid\ngraph LR\n    A[Platform Startup] --> B[Scan Extensions Directory]\n    B --> C{Found Extension?}\n    C -->|Yes| D[Load Extension Package]\n    C -->|No| E[Continue]\n    D --> F[Register Routes]\n    F --> G[Register Providers]\n    G --> H[Extension Available]\n    E --> H\n```\n\n---\n\n## API Access Patterns\n\n### REST API\n\nThe OpenBB Platform includes a FastAPI-based REST API for programmatic access:\n\n```bash\nuvicorn openbb_core.api.rest_api:app --host 0.0.0.0 --port 8000 --reload\n```\n\nAPI documentation is available at `/docs` endpoint when the server is running.\n\n资料来源：[openbb_platform/README.md](https://github.com/OpenBB-finance/OpenBB/blob/main/openbb_platform/README.md)\n\n### Python SDK\n\nThe Python SDK provides the most direct access to platform functionality:\n\n```python\nfrom openbb import obb\n\n# Set credentials\nobb.user.credentials.fred_api_key = \"REPLACE_ME\"\nobb.user.credentials.polygon_api_key = \"REPLACE_ME\"\n\n# Query data\nresult = obb.equity.price.historical(symbol=\"AAPL\", provider=\"polygon\")\n```\n\n### CLI Access\n\nThe command-line interface offers interactive access:\n\n```bash\nopenbb\n```\n\n---\n\n## Provider-Specific Endpoints\n\n### CFTC Provider\n\nThe Commodity Futures Trading Commission (CFTC) provider offers Commitments of Traders data:\n\n| Endpoint | Description |\n|----------|-------------|\n| `obb.cftc.cot` | Get Commitments of Traders report |\n| `obb.cftc.cot_search` | Search CFTC contract codes |\n\n```python\nfrom openbb import obb\n\nsearch_results = obb.cftc.cot_search(query=\"gold\")\nreport = obb.cftc.cot(code=\"CFTC_088695\", measure=\"percent_of_oi\", limit=4)\n```\n\n### Congress Provider\n\nThe US Congress provider provides legislative tracking:\n\n| Endpoint | Description |\n|----------|-------------|\n| `obb.uscongress.bills` | Get recent bills |\n| `obb.uscongress.bill_info` | Get detailed bill information |\n\n### Government US Provider\n\nGovernment data endpoints include:\n\n| Endpoint | Description |\n|----------|-------------|\n| `obb.commodity.psd_report` | PSD commodity reports |\n| `obb.commodity.psd_data` | PSD data tables |\n| `obb.fixed_income.government.treasury_auctions` | Treasury auction data |\n\n---\n\n## Next Steps\n\n- Review the [Installation Guide](../installation.md) for setting up the platform\n- Explore the [Provider Documentation](../providers/) for available data sources\n- Learn about [Extension Development](../developer_guide/contributing.md) to create custom extensions\n- Consult the [API Reference](../reference/) for detailed endpoint documentation\n\n---\n\n<a id='page-obbject-system'></a>\n\n## OBBject System\n\n### 相关页面\n\n相关主题：[Core Concepts](#page-core-concepts), [Charting and Visualization](#page-charting)\n\n# OBBject System\n\n> **Note:** This wiki page is based on available documentation and README files in the repository. The core implementation files for the OBBject system (`openbb_platform/core/openbb_core/app/model/obbject.py`, `openbb_platform/core/openbb_core/app/model/abstract/results.py`, and `openbb_platform/core/integration/test_obbject.py`) were not available in the provided context for detailed analysis. The information below reflects the system's role and usage as observed across the platform.\n\n## Overview\n\nThe OBBject system is the core data structure framework within the OpenBB Platform that handles standardized return types from all data provider queries. Every function endpoint in the platform returns an OBBject, ensuring consistent response handling across the entire system.\n\n## Architecture\n\nThe OBBject serves as the universal wrapper for all platform outputs, providing:\n\n- **Standardized data formats** across all providers\n- **Metadata attachment** for query context\n- **Flexible conversion methods** between different data representations\n- **Results abstraction** through inheritance from `AbstractResults`\n\n## Data Flow\n\n```mermaid\ngraph TD\n    A[User Query via obb] --> B[OpenBB Core]\n    B --> C[Provider Function Call]\n    C --> D[Data Provider API]\n    D --> E[Provider Response Parser]\n    E --> F[OBBject Construction]\n    F --> G[Results with Metadata]\n    G --> H[User: .to_df, .to_dict, .to_chart]\n```\n\n## Usage Patterns\n\n### Basic Return Type\n\nAll platform endpoints return OBBject instances:\n\n```python\nfrom openbb import obb\n\n# Returns OBBject\nresult = obb.cftc.cot_search(query=\"gold\")\nprint(result.to_df())\n```\n\n### Data Conversion Methods\n\n| Method | Description |\n|--------|-------------|\n| `to_df()` | Convert results to pandas DataFrame |\n| `to_dict()` | Convert results to dictionary format |\n| `to_chart()` | Generate chart-ready data structure |\n\n## Integration Points\n\nThe OBBject system integrates with:\n\n- **Provider System**: All data providers return standardized OBBject instances\n- **REST API**: Responses are automatically serialized from OBBject format\n- **CLI Interface**: Tabular display powered by OBBject conversion\n- **Workspace Widgets**: Data binding through OBBject metadata\n\n## Test Coverage\n\nThe `openbb_platform/core/integration/test_obbject.py` file contains integration tests verifying OBBject behavior across different provider scenarios and edge cases.\n\n## Platform-Wide Consistency\n\nThe OpenBB Platform enforces OBBject returns through the core framework, ensuring that whether accessing:\n\n- `obb.cftc.cot`\n- `obb.cftc.cot_search`\n- `obb.equity.screener(provider=\"finviz\")`\n- `obb.economy.indicators`\n\nAll responses follow the same structure and interface conventions.\n\n---\n\n<a id='page-provider-interface'></a>\n\n## Provider Interface\n\n### 相关页面\n\n相关主题：[Core Concepts](#page-core-concepts), [Data Providers Overview](#page-providers-overview), [Developing Custom Providers](#page-provider-development)\n\n<details>\n<summary>相关源码文件</summary>\n\n以下源码文件用于生成本页说明：\n\n- [openbb_platform/core/openbb_core/provider/abstract/query_params.py](https://github.com/OpenBB-finance/OpenBB/blob/main/openbb_platform/core/openbb_core/provider/abstract/query_params.py)\n- [openbb_platform/core/openbb_core/provider/abstract/fetcher.py](https://github.com/OpenBB-finance/OpenBB/blob/main/openbb_platform/core/openbb_core/provider/abstract/fetcher.py)\n- [openbb_platform/core/openbb_core/provider/abstract/provider.py](https://github.com/OpenBB-finance/OpenBB/blob/main/openbb_platform/core/openbb_core/provider/abstract/provider.py)\n- [openbb_platform/core/openbb_core/provider/registry_map.py](https://github.com/OpenBB-finance/OpenBB/blob/main/openbb_platform/core/openbb_core/provider/registry_map.py)\n- [openbb_platform/providers/README.md](https://github.com/OpenBB-finance/OpenBB/blob/main/openbb_platform/providers/README.md)\n- [openbb_platform/providers/fmp/README.md](https://github.com/OpenBB-finance/OpenBB/blob/main/openbb_platform/providers/fmp/README.md)\n- [openbb_platform/providers/government_us/README.md](https://github.com/OpenBB-finance/OpenBB/blob/main/openbb_platform/providers/government_us/README.md)\n- [openbb_platform/providers/cftc/README.md](https://github.com/OpenBB-finance/OpenBB/blob/main/openbb_platform/providers/cftc/README.md)\n</details>\n\n# Provider Interface\n\n## Overview\n\nThe Provider Interface is a core architectural component of the OpenBB Platform that abstracts data acquisition from various financial data sources. It provides a unified API for querying external data providers while maintaining provider-specific implementations behind a common interface.\n\nThe Provider system enables OpenBB to integrate multiple data sources (FMP, Alpha Vantage, US Government data, CFTC, IMF, etc.) through a standardized abstraction layer, allowing users to query different providers using a consistent interface.\n\n## Architecture\n\n```mermaid\ngraph TD\n    A[OpenBB User/Application] --> B[Provider Interface]\n    B --> C[Registry Map]\n    C --> D[Provider: FMP]\n    C --> E[Provider: Government US]\n    C --> F[Provider: CFTC]\n    C --> G[Provider: IMF]\n    C --> H[Provider: Custom]\n    \n    D --> I[Models]\n    E --> I\n    F --> I\n    G --> I\n    \n    I --> J[Query Params]\n    I --> K[Response Models]\n    \n    J --> L[Fetchers]\n    L --> M[External API]\n    M --> N[Data Normalization]\n    N --> O[Standardized Output]\n```\n\n## Core Components\n\n### 1. Provider Abstract Class\n\nThe base `Provider` class defines the interface that all providers must implement. Each provider declares its available endpoints, authentication requirements, and routing information.\n\n| Property | Type | Description |\n|----------|------|-------------|\n| name | str | Unique identifier for the provider |\n| website | str | Provider's official website |\n| description | str | Brief description of the provider |\n| credentials | dict | Required API credentials/keys |\n| available_endpoints | list | Endpoints provided by this source |\n| url | str | Base URL for API requests |\n\n资料来源：[openbb_platform/core/openbb_core/provider/abstract/provider.py]()\n\n### 2. Query Params\n\nQuery parameters define the input schema for each endpoint. They validate and serialize user requests before passing them to the fetcher.\n\n| Parameter | Type | Description |\n|-----------|------|-------------|\n| provider | Optional[str] | Override default provider for this query |\n| use_cache | bool | Enable/disable response caching |\n| chunk | bool | Split large responses into chunks |\n| date | Optional[date] | Filter data by specific date |\n| start_date | Optional[date] | Filter data from this date |\n| end_date | Optional[date] | Filter data until this date |\n| limit | Optional[int] | Maximum number of results |\n\n资料来源：[openbb_platform/core/openbb_core/provider/abstract/query_params.py]()\n\n### 3. Fetcher\n\nThe `Fetcher` class handles the actual data retrieval from external APIs. It processes query parameters, makes HTTP requests, and normalizes responses.\n\n| Component | Description |\n|-----------|-------------|\n| transform | Method to normalize raw API response |\n| extract | Method to extract relevant fields from response |\n| validate | Method to validate response data |\n\n资料来源：[openbb_platform/core/openbb_core/provider/abstract/fetcher.py]()\n\n### 4. Registry Map\n\nThe Registry Map maintains a centralized catalog of all registered providers and their endpoints, enabling dynamic discovery and routing.\n\n```mermaid\nclassDiagram\n    class RegistryMap {\n        +dict providers\n        +dict routers\n        +register_provider()\n        +get_provider()\n        +list_providers()\n        +get_endpoint()\n    }\n    \n    class Provider {\n        +str name\n        +list endpoints\n        +register()\n    }\n    \n    class Router {\n        +str name\n        +add_route()\n        +get_routes()\n    }\n    \n    RegistryMap --> Provider\n    RegistryMap --> Router\n```\n\n资料来源：[openbb_platform/core/openbb_core/provider/registry_map.py]()\n\n## Provider Structure\n\nProviders in OpenBB follow a standardized directory structure:\n\n```\nopenbb_platform/providers/<provider_name>/\n├── README.md\n├── pyproject.toml\n├── poetry.lock\n├── tests/\n│   └── ...\n└── openbb_<provider_name>/\n    ├── __init__.py\n    ├── models/\n    │   ├── __init__.py\n    │   └── <model_files>.py\n    └── utils/\n        ├── __init__.py\n        └── <helper_files>.py\n```\n\n资料来源：[openbb_platform/providers/README.md]()\n\n## Creating a Custom Provider\n\n### Step 1: Create Provider Directory\n\nCreate a new directory under `openbb_platform/providers/` with your provider name.\n\n### Step 2: Define Models\n\nModels define data structures for querying endpoints and storing responses:\n\n```python\nfrom pydantic import BaseModel, Field\nfrom openbb_core.provider.abstract.query_params import QueryParams\n\nclass CustomQuoteQueryParams(QueryParams):\n    symbol: str = Field(description=\"Stock symbol to query\")\n    provider: Optional[str] = None\n```\n\n### Step 3: Implement Fetcher\n\n```python\nfrom openbb_core.provider.abstract.fetcher import Fetcher\n\nclass CustomQuoteFetcher(Fetcher):\n    @staticmethod\n    def transform(params: dict, response: httpx.Response) -> BaseModel:\n        # Transform and normalize response data\n        return NormalizedQuote(**transformed_data)\n```\n\n### Step 4: Register Provider\n\n```python\nfrom openbb_core.provider.abstract.provider import Provider\n\nclass CustomProvider(Provider):\n    name = \"custom_provider\"\n    website = \"https://custom-api.example.com\"\n    \n    @property\n    def router(self):\n        return CustomRouter()\n```\n\n## Provider Examples\n\n### Financial Modeling Prep (FMP)\n\n```python\nfrom openbb import obb\n\n# Search for companies\nsearch_results = obb.company.search(query=\"Apple\")\nprint(search_results.to_df())\n\n# Get financial statements\nbalance_sheet = obb.company.balance(symbol=\"AAPL\", provider=\"fmp\")\nprint(balance_sheet.to_df())\n```\n\n资料来源：[openbb_platform/providers/fmp/README.md]()\n\n### US Government Data\n\n```python\nfrom openbb import obb\n\n# Treasury auctions\nauctions = obb.fixed_income.government.treasury_auctions()\nprint(auctions.to_df())\n\n# Treasury prices\nprices = obb.fixed_income.government.treasury_prices()\nprint(prices.to_df())\n```\n\n资料来源：[openbb_platform/providers/government_us/README.md]()\n\n### CFTC Commitments of Traders\n\n```python\nfrom openbb import obb\n\n# Search CFTC codes\nsearch_results = obb.cftc.cot_search(query=\"gold\")\nprint(search_results.to_df())\n\n# Get report\nreport = obb.cftc.cot(code=\"CFTC_088695\", measure=\"percent_of_oi\")\nprint(report.to_df().T)\n```\n\n资料来源：[openbb_platform/providers/cftc/README.md]()\n\n## Integration with REST API\n\nThe Provider system integrates seamlessly with the OpenBB Platform REST API:\n\n```bash\nuvicorn openbb_core.api.rest_api:app --host 0.0.0.0 --port 8000 --reload\n```\n\nAPI documentation is available at `/docs` endpoint.\n\n资料来源：[openbb_platform/core/openbb_core/api/rest_api.py]()\n\n## Configuration\n\n### API Keys\n\nProviders requiring authentication use the credentials system:\n\n```python\nfrom openbb import obb\n\nobb.user.credentials.fmp_api_key = \"YOUR_API_KEY\"\nobb.user.credentials.polygon_api_key = \"YOUR_API_KEY\"\n```\n\n### Provider Selection\n\nWhen multiple providers support an endpoint, specify the provider explicitly:\n\n```python\n# Use specific provider\nresult = obb.equity.quote(symbol=\"AAPL\", provider=\"fmp\")\n\n# Use default provider\nresult = obb.equity.quote(symbol=\"AAPL\")\n```\n\n## Best Practices\n\n| Practice | Description |\n|----------|-------------|\n| Error Handling | Always wrap provider calls in try-except blocks |\n| Caching | Enable caching for frequently accessed data |\n| Rate Limiting | Respect provider rate limits |\n| Validation | Use query parameter validation |\n| Documentation | Document custom providers in README.md |\n\n## Supported Providers\n\n| Provider | Category | Registration Required |\n|----------|----------|----------------------|\n| FMP | Financial Data | Yes |\n| Alpha Vantage | Financial Data | Yes |\n| US Government | Government Data | No |\n| CFTC | Commodities | No |\n| IMF | Economic Indicators | No |\n\n资料来源：[openbb_platform/providers/README.md]()\n\n## Conclusion\n\nThe Provider Interface is fundamental to OpenBB's extensibility. By adhering to the abstract interfaces defined in the core module, developers can integrate new data sources while maintaining a consistent API experience for end users. The registry-based architecture enables dynamic provider discovery and seamless switching between data sources.\n\n---\n\n<a id='page-providers-overview'></a>\n\n## Data Providers Overview\n\n### 相关页面\n\n相关主题：[Provider Interface](#page-provider-interface), [Developing Custom Providers](#page-provider-development)\n\n<details>\n<summary>相关源码文件</summary>\n\n以下源码文件用于生成本页说明：\n\n- [openbb_platform/providers/README.md](https://github.com/OpenBB-finance/OpenBB/blob/main/openbb_platform/providers/README.md)\n- [openbb_platform/providers/fmp/README.md](https://github.com/OpenBB-finance/OpenBB/blob/main/openbb_platform/providers/fmp/README.md)\n- [openbb_platform/providers/government_us/README.md](https://github.com/OpenBB-finance/OpenBB/blob/main/openbb_platform/providers/government_us/README.md)\n- [openbb_platform/providers/tmx/README.md](https://github.com/OpenBB-finance/OpenBB/blob/main/openbb_platform/providers/tmx/README.md)\n- [openbb_platform/providers/multpl/README.md](https://github.com/OpenBB-finance/OpenBB/blob/main/openbb_platform/providers/multpl/README.md)\n- [openbb_platform/providers/imf/README.md](https://github.com/OpenBB-finance/OpenBB/blob/main/openbb_platform/providers/imf/README.md)\n- [openbb_platform/providers/finra/README.md](https://github.com/OpenBB-finance/OpenBB/blob/main/openbb_platform/providers/finra/README.md)\n- [openbb_platform/providers/famafrench/README.md](https://github.com/OpenBB-finance/OpenBB/blob/main/openbb_platform/providers/famafrench/README.md)\n</details>\n\n# Data Providers Overview\n\nData Providers in the OpenBB Platform serve as extension modules that integrate external financial data sources into the unified OpenBB ecosystem. These providers enable users to access a wide variety of financial data including equity prices, economic indicators, commodity data, government reports, and more through a consistent API interface.\n\n## Architecture Overview\n\nThe OpenBB Platform uses a modular provider architecture where each data source is implemented as a separate Python package extension. Providers communicate with their respective external APIs, transform the responses into standardized data models, and expose endpoints through the unified OpenBB interface.\n\n```mermaid\ngraph TD\n    A[OpenBB Platform Core] --> B[Provider Extensions]\n    B --> C[Data Provider 1]\n    B --> D[Data Provider 2]\n    B --> N[Data Provider N]\n    C --> E[External API 1]\n    D --> F[External API 2]\n    N --> G[External API N]\n    E --> H[Standardized Data Models]\n    F --> H\n    G --> H\n```\n\nProviders follow a consistent structure that ensures maintainability and enables the platform to automatically discover and load endpoints. 资料来源：[openbb_platform/providers/README.md]()\n\n## Provider Directory Structure\n\nEvery provider follows a standardized directory layout to ensure consistency across the codebase. This structure separates concerns between data models, utilities, and tests.\n\n```\nopenbb_platform\n└───providers\n    └───<provider_name>\n        │   README.md\n        │   pyproject.toml\n        │   poetry.lock\n        ├───tests\n        └───openbb_<provider_name>\n            │   __init__.py\n            ├───models\n            │   ├───<some model>.py\n            │   └───...\n            └───utils\n                ├───<some helper>.py\n                └───...\n```\n\nThe `models` directory contains data structures that define both the request parameters for querying provider endpoints and the response data structures. The `utils` directory houses helper functions used internally by the provider. 资料来源：[openbb_platform/providers/README.md]()\n\n## Available Data Providers\n\nThe OpenBB Platform supports numerous data providers across various financial domains. Below is a comprehensive table of documented providers.\n\n| Provider | Package Name | Data Domain | Registration Required |\n|----------|-------------|-------------|----------------------|\n| Financial Modeling Prep | `openbb-fmp` | Equity, Fundamentals, Estimates | Yes |\n| US Government | `openbb-us-government` | Treasury, Commodity Reports | No |\n| TMX | `openbb-tmx` | Canadian Markets, Derivatives | Varies |\n| Multpl | `openbb-multpl` | S&P 500 Multiples, Index Data | No |\n| IMF | `openbb-imf` | Economic Indicators, CPI, Shipping | No |\n| FINRA | `openbb-finra` | Market Regulatory Data | Varies |\n| Fama-French | `openbb-famafrench` | Research Factors, Portfolios | No |\n| News | `openbb-news` | Financial News | Varies |\n| Regulators | `openbb-regulators` | Global Market Regulators | Varies |\n| Commodity | `openbb-commodity` | Commodity Data | Varies |\n\n## Provider Installation\n\nEach provider is distributed as a separate Python package installable via pip. The general installation pattern follows a consistent command structure.\n\n```bash\npip install openbb-<provider_name>\n```\n\n### Installation Examples\n\n**Financial Modeling Prep:**\n```bash\npip install openbb-fmp\n```\n资料来源：[openbb_platform/providers/fmp/README.md]()\n\n**US Government:**\n```bash\npip install openbb-us-government\n```\n资料来源：[openbb_platform/providers/government_us/README.md]()\n\n**TMX (Community Provider):**\n```bash\npip install openbb-tmx\n```\nAlternatively, install from local directory for development:\n```bash\npip install -e .\n```\n资料来源：[openbb_platform/providers/tmx/README.md]()\n\n## Endpoint Coverage Examples\n\nDifferent providers offer varying levels of endpoint coverage. Below are examples of what each provider exposes.\n\n### US Government Provider\n\nThe US Government provider covers endpoints with no registration requirement, making it ideal for accessing public data.\n\n| Endpoint | Description |\n|----------|-------------|\n| `obb.commodity.psd_report` | PSD Commodity Reports |\n| `obb.commodity.psd_data` | PSD Data Sets |\n| `obb.commodity.weather_bulletins` | Weather Bulletins |\n| `obb.commodity.weather_bulletins_download` | Download Bulletins |\n| `obb.fixed_income.government.treasury_auctions` | Treasury Auctions |\n| `obb.fixed_income.government.treasury_prices` | Treasury Prices |\n\n资料来源：[openbb_platform/providers/government_us/README.md]()\n\n### TMX Provider\n\nThe TMX provider offers Canadian market data including derivatives and equity information.\n\n| Endpoint Category | Coverage |\n|-------------------|----------|\n| `.derivatives.options.chains` | Historical EOD chains from 2009 |\n| `.equity.calendar.earnings` | Earnings Calendars |\n| `.equity.estimates.consensus` | Consensus Estimates |\n| `.equity.discovery.gainers` | Best Performers |\n| `.equity.fundamental.dividends` | Dividend History |\n| `.equity.fundamental.filings` | SEC Filings |\n| `.equity.ownership.insider_trading` | Insider Trading (3/6/12 months) |\n| `.equity.price.quote` | Real-time Quotes |\n| `.equity.price.historical` | Daily/Weekly/Monthly/Intraday |\n| `.equity.search` | Symbol Search |\n\n资料来源：[openbb_platform/providers/tmx/README.md]()\n\n### IMF Provider\n\nThe IMF provider provides extensive economic data including indicators and shipping information.\n\n**Primary Endpoints:**\n- `obb.economy.available_indicators`\n- `obb.economy.indicators`\n- `obb.economy.cpi`\n- `obb.economy.direction_of_trade`\n- `obb.economy.spi` (Shipping)\n\n**Utility Endpoints (for UI integrations):**\n- `obb.imf_utils.get_dataflow_dimensions`\n- `obb.imf_utils.list_dataflow_choices`\n- `obb.imf_utils.list_dataflows`\n- `obb.imf_utils.list_indicators_by_dataflow`\n- `obb.imf_utils.list_port_id_choices`\n- `obb.imf_utils.list_table_choices`\n- `obb.imf_utils.list_tables`\n- `obb.imf_utils.presentation_table`\n\nThe \"Choices\" endpoints are specifically utilized by OpenBB Workspace to populate widget dropdown menus. 资料来源：[openbb_platform/providers/imf/README.md]()\n\n### Multpl Provider\n\nThe Multpl provider offers simple integration for S&P 500 related data.\n\n**Available Endpoints:**\n- `obb.index.sp500_multiples`\n\n资料来源：[openbb_platform/providers/multpl/README.md]()\n\n### Fama-French Provider\n\nThe Fama-French provider integrates academic research factor data. It includes metadata about the data source and formation methodology.\n\n**Metadata Structure:**\n```python\nfactors.extra[\"results_metadata\"]\n```\n\nExample metadata output:\n```json\n{\n    'description': 'This file was created using the 202504 CRSP database...',\n    'frequency': 'monthly',\n    'formations': ['Mkt-RF', 'SMB', 'HML', 'RF']\n}\n```\n\nThe frequency and formations metadata fields indicate whether data is monthly, daily, or another frequency, and the specific factor formations available. 资料来源：[openbb_platform/providers/famafrench/README.md]()\n\n## Provider Data Flow\n\n```mermaid\ngraph LR\n    A[User Query] --> B[OpenBB Core API]\n    B --> C[Provider Router]\n    C --> D[Provider Models]\n    D --> E[External API Request]\n    E --> F[Response Parser]\n    F --> G[Standard Model]\n    G --> H[Platform Output]\n```\n\n## Creating New Providers\n\nTo create a new provider for the OpenBB Platform, follow these steps:\n\n1. Create a new directory under `openbb_platform/providers/<provider_name>/`\n2. Implement the required directory structure (models, utils, tests)\n3. Define data models for requests and responses\n4. Implement the provider logic to communicate with external APIs\n5. Add a `pyproject.toml` for package configuration\n6. Create a `README.md` with installation and usage documentation\n7. Publish to PyPI for distribution via `pip install openbb-<provider_name>`\n\nFor detailed contribution guidelines, refer to the main CONTRIBUTING file in the repository. 资料来源：[openbb_platform/providers/README.md]()\n\n## Extension Types\n\nBeyond standard data providers, the OpenBB Platform supports additional extension types that enhance functionality:\n\n| Extension Type | Purpose |\n|---------------|---------|\n| **Data Providers** | Fetch and transform external financial data |\n| **News Extension** | `openbb-news` - Provides news aggregation |\n| **Regulators Extension** | `openbb-regulators` - Global market regulator data |\n| **Commodity Extension** | `openbb-commodity` - Commodity-specific commands |\n| **MCP Server** | Model Context Protocol integration for AI tools |\n\nThese extensions can be installed using `pip install openbb-<extension_name>` and are documented in the `openbb_platform/extensions/` directory.\n\n---\n\n<a id='page-provider-development'></a>\n\n## Developing Custom Providers\n\n### 相关页面\n\n相关主题：[Provider Interface](#page-provider-interface), [Data Providers Overview](#page-providers-overview), [Extensions System](#page-extensions)\n\n<details>\n<summary>相关源码文件</summary>\n\n以下源码文件用于生成本页说明：\n\n- [openbb_platform/extensions/mcp_server/README.md](https://github.com/OpenBB-finance/OpenBB/blob/main/openbb_platform/extensions/mcp_server/README.md)\n- [openbb_platform/core/openbb_core/api/rest_api.py](https://github.com/OpenBB-finance/OpenBB/blob/main/openbb_platform/core/openbb_core/api/rest_api.py)\n- [cookiecutter/openbb_cookiecutter/template/{{cookiecutter.project_tag}}/{{cookiecutter.package_name}}/providers/{{cookiecutter.provider_name}}/models/example.py](https://github.com/OpenBB-finance/OpenBB/blob/main/cookiecutter/openbb_cookiecutter/template/{{cookiecutter.project_tag}}/{{cookiecutter.package_name}}/providers/{{cookiecutter.provider_name}}/models/example.py)\n- [cookiecutter/openbb_cookiecutter/template/{{cookiecutter.project_tag}}/{{cookiecutter.package_name}}/providers/{{cookiecutter.provider_name}}/utils/helpers.py](https://github.com/OpenBB-finance/OpenBB/blob/main/cookiecutter/openbb_cookiecutter/template/{{cookiecutter.project_tag}}/{{cookiecutter.package_name}}/providers/{{cookiecutter.provider_name}}/utils/helpers.py)\n- [openbb_platform/providers/fmp/openbb_fmp/utils/helpers.py](https://github.com/OpenBB-finance/OpenBB/blob/main/openbb_platform/providers/fmp/openbb_fmp/utils/helpers.py)\n- [desktop/src/components/InstallComponents.tsx](https://github.com/OpenBB-finance/OpenBB/blob/main/desktop/src/components/InstallComponents.tsx)\n</details>\n\n# Developing Custom Providers\n\n## Overview\n\nCustom providers extend the OpenBB Platform by integrating new data sources for financial information. The platform uses a standardized architecture that allows developers to create providers following established patterns, enabling seamless integration with the existing OpenBB ecosystem including the REST API, MCP server, and desktop interface.\n\nThe provider system is designed around modularity—each provider consists of data models, authentication handlers, and utility functions that work together to fetch, transform, and expose financial data through a unified interface.\n\n## Architecture Overview\n\n```mermaid\ngraph TD\n    A[Custom Provider] --> B[Data Models]\n    A --> C[Authentication]\n    A --> D[Utility Helpers]\n    B --> E[REST API Router]\n    C --> E\n    D --> E\n    E --> F[OpenBB Platform API]\n    F --> G[MCP Server]\n    F --> H[Desktop Interface]\n    F --> I[Direct SDK Access]\n```\n\n## Provider Structure\n\nEach custom provider follows a consistent directory structure:\n\n```\n{{cookiecutter.package_name}}/\n└── providers/\n    └── {{cookiecutter.provider_name}}/\n        ├── models/\n        │   └── example.py          # Data models\n        ├── utils/\n        │   └── helpers.py          # Utility functions\n        └── __init__.py             # Provider initialization\n```\n\n### Data Models\n\nData models define the schema for the financial data your provider will return. The OpenBB Platform uses standardized model classes that inherit from base types:\n\n```python\n# cookiecutter template structure\nclass ExampleModel:\n    \"\"\"Example data model for custom provider.\"\"\"\n    \n    symbol: str\n    name: str\n    price: float\n    timestamp: datetime\n    \n    @field_validator('price')\n    @classmethod\n    def validate_price(cls, v):\n        if v < 0:\n            raise ValueError(\"Price must be non-negative\")\n        return v\n```\n\n资料来源：[cookiecutter/.../models/example.py]()\n\n### Utility Helpers\n\nHelper functions handle common operations like API requests, data transformation, and authentication:\n\n```python\nimport requests\nfrom typing import Optional, Dict, Any\n\ndef get_data(\n    url: str,\n    params: Optional[Dict[str, Any]] = None,\n    headers: Optional[Dict[str, str]] = None,\n    timeout: int = 30\n) -> Dict[str, Any]:\n    \"\"\"Fetch data from the provider's API endpoint.\"\"\"\n    response = requests.get(url, params=params, headers=headers, timeout=timeout)\n    response.raise_for_status()\n    return response.json()\n\ndef transform_response(data: Dict[str, Any]) -> Dict[str, Any]:\n    \"\"\"Transform provider-specific response format to OpenBB standard format.\"\"\"\n    return {\n        \"symbol\": data.get(\"symbol\", \"\"),\n        \"name\": data.get(\"companyName\", \"\"),\n        \"price\": float(data.get(\"price\", 0)),\n        \"timestamp\": data.get(\"timestamp\")\n    }\n```\n\n资料来源：[cookiecutter/.../utils/helpers.py]()\n资料来源：[openbb_platform/providers/fmp/openbb_fmp/utils/helpers.py]()\n\n## Provider Configuration\n\n### MCP Server Integration\n\nCustom providers can be exposed through the Model Context Protocol (MCP) server, allowing AI assistants to interact with your data:\n\n```python\nfrom openbb_mcp_server.models.mcp_config import MCPConfigModel\n\n# In your route definition\nopenapi_extra = {\n    \"mcp_config\": MCPConfigModel(\n        expose=True,\n        mcp_type=\"tool\",\n        methods=[\"GET\"]\n    )\n}\n```\n\n**MCP Configuration Properties:**\n\n| Property | Type | Description |\n|----------|------|-------------|\n| `expose` | `Optional[bool]` | Set to `False` to hide from MCP server |\n| `mcp_type` | `Optional[MCPType]` | Type: `\"tool\"`, `\"resource\"`, or `\"resource_template\"` |\n| `methods` | `Optional[list[HTTPMethod]]` | HTTP methods to expose |\n\n资料来源：[openbb_platform/extensions/mcp_server/README.md]()\n\n### REST API Registration\n\nThe OpenBB Platform uses FastAPI for its REST API. Providers register through the `AppLoader`:\n\n```python\nfrom fastapi import FastAPI\nfrom openbb_core.api.rest_api import AppLoader\n\n# Providers are automatically loaded via the extension system\n# The router is added through the provider's __init__.py\n```\n\nThe API server is configured with CORS middleware:\n\n```python\napp.add_middleware(\n    CORSMiddleware,\n    allow_origins=system.api_settings.cors.allow_origins,\n    allow_methods=system.api_settings.cors.allow_methods,\n    allow_headers=system.api_settings.cors.allow_headers,\n)\n```\n\n资料来源：[openbb_platform/core/openbb_core/api/rest_api.py]()\n\n## Creating a Provider from Template\n\nThe OpenBB Cookiecutter template provides a starting point for new providers:\n\n```bash\ncookiecutter gh:OpenBB-finance/OpenBB --directory cookiecutter\n```\n\nThe generated template includes:\n\n- Pre-configured directory structure\n- Example model implementations\n- Utility function templates\n- Authentication patterns\n- Test scaffolding\n\n## Extension Installation System\n\nThe desktop interface provides a mechanism for users to discover and install provider extensions:\n\n```typescript\n// Extensions are fetched from GitHub configuration\nconst [providersRes, routersRes, obbjectsRes] = await Promise.all([\n  fetch(\"https://raw.githubusercontent.com/OpenBB-finance/OpenBB/main/assets/extensions/provider.json\"),\n  fetch(\"https://raw.githubusercontent.com/OpenBB-finance/OpenBB/main/assets/extensions/router.json\"),\n  fetch(\"https://raw.githubusercontent.com/OpenBB-finance/OpenBB/main/assets/extensions/obbject.json\"),\n]);\n```\n\n资料来源：[desktop/src/components/InstallComponents.tsx]()\n\n### Extension Categories\n\n| Category ID | Description |\n|-------------|-------------|\n| `providers` | Data source integrations |\n| `routers` | Custom API endpoints |\n| `obbjects` | Custom data object types |\n| `extras` | Additional PyPI packages |\n\n## Workflow Diagram\n\n```mermaid\ngraph LR\n    A[Create Provider] --> B[Define Models]\n    B --> C[Implement Helpers]\n    C --> D[Register Routes]\n    D --> E[Add MCP Config]\n    E --> F[Test Provider]\n    F --> G[Publish Extension]\n    G --> H[User Installs]\n    H --> I[Available in Platform]\n```\n\n## Best Practices\n\n### Authentication Handling\n\n- Store API keys securely using environment variables\n- Implement token refresh logic for OAuth flows\n- Provide clear error messages for authentication failures\n\n### Data Validation\n\n- Validate all incoming data against expected schemas\n- Use field validators for type checking and constraints\n- Handle missing or null values gracefully\n\n### Error Handling\n\n- Implement retry logic for transient failures\n- Log errors with sufficient context for debugging\n- Return standardized error responses\n\n### Performance Considerations\n\n- Cache frequently accessed data when appropriate\n- Use connection pooling for API requests\n- Implement request batching where the API supports it\n\n## See Also\n\n- [OpenBB Platform Extensions](../extensions/index.md)\n- [MCP Server Documentation](../extensions/mcp_server/index.md)\n- [REST API Reference](../api-rest/index.md)\n- [Cookiecutter Template Repository](https://github.com/OpenBB-finance/OpenBB/tree/main/cookiecutter)\n\n---\n\n<a id='page-extensions'></a>\n\n## Extensions System\n\n### 相关页面\n\n相关主题：[Core Concepts](#page-core-concepts), [Charting and Visualization](#page-charting)\n\n<details>\n<summary>相关源码文件</summary>\n\n以下源码文件用于生成本页说明：\n\n- [openbb_platform/extensions/equity/openbb_equity/__init__.py](https://github.com/OpenBB-finance/OpenBB/blob/main/openbb_platform/extensions/equity/openbb_equity/__init__.py)\n- [openbb_platform/extensions/crypto/openbb_crypto/__init__.py](https://github.com/OpenBB-finance/OpenBB/blob/main/openbb_platform/extensions/crypto/openbb_crypto/__init__.py)\n- [openbb_platform/extensions/fixedincome/openbb_fixedincome/__init__.py](https://github.com/OpenBB-finance/OpenBB/blob/main/openbb_platform/extensions/fixedincome/openbb_fixedincome/__init__.py)\n- [openbb_platform/core/openbb_core/app/extension_loader.py](https://github.com/OpenBB-finance/OpenBB/blob/main/openbb_platform/core/openbb_core/app/extension_loader.py)\n</details>\n\n# Extensions System\n\n## Overview\n\nThe OpenBB Extensions System is a modular architecture that allows users to extend the core platform functionality through optional packages called \"extensions.\" These extensions provide specialized data sources, additional features, and domain-specific tools for various financial market segments.\n\nExtensions in OpenBB serve as the primary mechanism for feature expansion, enabling users to install only the components they need while keeping the core platform lightweight. The system supports both official OpenBB extensions and third-party community extensions.\n\n## Architecture\n\n### Core Components\n\nThe Extensions System consists of several interconnected components:\n\n| Component | Purpose | Location |\n|-----------|---------|----------|\n| Extension Loader | Discovers and loads extensions at runtime | `openbb_platform/core/openbb_core/app/extension_loader.py` |\n| Extension Package | Python package with specialized functionality | `openbb_platform/extensions/<name>/` |\n| Environment Manager | Manages extension installation in isolated environments | `desktop/src-tauri/src/tauri_handlers/environments.rs` |\n| UI Integration | Frontend component for extension management | `desktop/src/routes/environments.tsx` |\n\n### Extension Types\n\nOpenBB extensions are categorized into several types based on their functionality:\n\n```mermaid\ngraph TD\n    A[OpenBB Platform] --> B[Core Extensions]\n    A --> C[Data Provider Extensions]\n    A --> D[Feature Extensions]\n    \n    B --> B1[Equity]\n    B --> B2[Economy]\n    B --> B3[Crypto]\n    B --> B4[Fixed Income]\n    \n    C --> C1[Government US]\n    C --> C2[IMF]\n    C --> C3[CFTC]\n    C --> C4[Multpl]\n    \n    D --> D1[News]\n    D --> D2[MCP Server]\n    D --> D3[Regulators]\n```\n\n## Extension Discovery and Loading\n\n### Extension Loader Mechanism\n\nThe extension loader (`extension_loader.py`) handles the discovery and loading of extensions. It performs the following operations:\n\n1. **Package Discovery**: Scans installed Python packages for OpenBB extension markers\n2. **Dependency Resolution**: Ensures all extension dependencies are available\n3. **Router Registration**: Registers extension routers with the main application\n4. **Initialization**: Calls extension `__init__.py` to set up routes and handlers\n\n```mermaid\ngraph LR\n    A[Scan Packages] --> B[Identify Extensions]\n    B --> C{Check Dependencies}\n    C -->|Missing| D[Log Warning]\n    C -->|Satisfied| E[Load Extension]\n    E --> F[Register Router]\n    F --> G[Ready for Use]\n```\n\n### Loading Process Flow\n\nExtensions follow a specific loading sequence to ensure proper initialization order:\n\n1. Core platform initializes first\n2. Extension loader scans for available extensions\n3. Each extension's dependencies are verified\n4. Extensions are loaded in dependency order\n5. Extension routers are registered with FastAPI\n6. Extensions become available via `obb.<extension>.<method>`\n\n## Extension Package Structure\n\n### Standard Layout\n\nEach OpenBB extension follows a consistent directory structure:\n\n```\nopenbb_platform/extensions/<extension_name>/\n├── README.md                    # Documentation\n├── pyproject.toml              # Package configuration\n├── poetry.lock                 # Dependency lock file\n├── openbb_<extension_name>/\n│   ├── __init__.py            # Router registration\n│   └── ...\n└── tests/\n    └── ...\n```\n\n### Required Components\n\n| File | Purpose |\n|------|---------|\n| `__init__.py` | Contains router definition and extension metadata |\n| `pyproject.toml` | Package metadata, dependencies, and build configuration |\n| `README.md` | Installation instructions and feature documentation |\n\n## Extension Categories\n\n### 1. Core Extensions\n\nCore extensions provide essential market data functionality:\n\n#### Equity Extension\n\nThe Equity extension (`openbb_equity`) provides equity market data tools including:\n\n- Historical price data\n- Fundamental analysis\n- Analyst estimates\n- Options data\n- Ownership information\n- Short interest data\n\n**Installation:**\n```bash\npip install openbb-equity\n```\n\n#### Fixed Income Extension\n\nThe Fixed Income extension (`openbb_fixedincome`) offers fixed income market tools:\n\n- Government bond data\n- Treasury auctions\n- Treasury prices\n- Credit spreads\n\n#### Economy Extension\n\nProvides global macroeconomic data access including:\n\n- GDP indicators\n- CPI data\n- Trade statistics\n- Economic indicators\n\n#### Crypto Extension\n\nCryptocurrency market data including:\n\n- Price data\n- Trading volumes\n- Market capitalization\n- Exchange data\n\n### 2. Data Provider Extensions\n\nData providers extend the platform's data sources:\n\n#### Government US (`openbb-us-government`)\n\nProvides US Government data from data.gov:\n\n| Endpoint | Function |\n|----------|----------|\n| `obb.commodity.psd_report` | PSD reports |\n| `obb.commodity.psd_data` | PSD data |\n| `obb.commodity.weather_bulletins` | Weather bulletins |\n| `obb.fixed_income.government.treasury_auctions` | Treasury auctions |\n| `obb.fixed_income.government.treasury_prices` | Treasury prices |\n\n**Installation:**\n```bash\npip install openbb-us-government\n```\n\n#### CFTC Provider\n\nCommitments of Traders (COT) data including:\n\n- `obb.cftc.cot` - COT reports\n- `obb.cftc.cot_search` - Search COT data\n\n#### IMF Provider\n\nInternational Monetary Fund data with endpoints:\n\n- `obb.economy.indicators`\n- `obb.economy.cpi`\n- `obb.economy.direction_of_trade`\n- `obb.economy.shipping.*`\n\n#### Multpl Provider\n\nS&P 500 valuation metrics:\n\n- `obb.index.sp500_multiples`\n\n### 3. Feature Extensions\n\n#### News Extension\n\nAggregates financial news from multiple sources.\n\n**Installation:**\n```bash\npip install openbb-news\n```\n\n#### MCP Server Extension\n\nModel Context Protocol server for AI integrations. Provides:\n\n- Tool exposure as MCP resources\n- FastAPI route exposure\n- Custom prompt definitions\n\nConfiguration via `openapi_extra.mcp_config`:\n\n| Property | Type | Description |\n|----------|------|-------------|\n| `expose` | `Optional[bool]` | Hide/show route from MCP server |\n| `mcp_type` | `Optional[MCPType]` | Classification: `\"tool\"`, `\"resource\"`, or `\"resource_template\"` |\n| `methods` | `Optional[list[HTTPMethod]]` | HTTP methods to expose |\n\n#### Regulators Extension\n\nProvides structure for data from global market regulators.\n\n**Installation:**\n```bash\npip install openbb-regulators\n```\n\n## Environment-Based Extension Management\n\n### Concept\n\nExtensions can be installed within isolated Python environments, allowing users to:\n\n- Maintain separate extension sets for different use cases\n- Avoid dependency conflicts between extensions\n- Enable/disable extension groups easily\n\n### Environment Handler Architecture\n\nThe desktop application uses a Rust-based backend for environment management:\n\n```mermaid\ngraph TD\n    A[Frontend Environment UI] --> B[Tauri Command]\n    B --> C[environments.rs Handler]\n    C --> D{Conda Environment?}\n    D -->|base| E[System Conda Install]\n    D -->|custom| F[Named Environment Install]\n    E --> G[Install Extensions]\n    F --> G\n    G --> H[Refresh Extensions List]\n```\n\n### Extension Installation in Environments\n\nThe environment handler processes extensions with special prefixes:\n\n```python\n# Prefix handling logic from environments.rs\nif extension.startswith(\"conda:\"):\n    # Add to conda package list\n    conda_packages.push(extension.strip_prefix(\"conda:\"))\nelse:\n    # Add to pip packages\n    pip_packages.push(extension)\n```\n\n### Caching Strategy\n\nThe environment extensions list is cached locally:\n\n```typescript\n// Cache structure in environments.tsx\nconst cache = cachedData ? JSON.parse(cachedData) : {};\ncache[env.name] = result.extensions;\nlocalStorage.setItem(ENV_EXTENSIONS_CACHE_KEY, JSON.stringify(cache));\n```\n\n## Installation and Setup\n\n### Installation Phases\n\nThe desktop installation process consists of three phases:\n\n```mermaid\ngraph TD\n    A[Phase 1: Miniforge] --> B[Phase 2: Core Setup]\n    B --> C[Phase 3: Extension Select]\n    \n    A --> |Miniforge + Conda| D[Python Environment]\n    B --> |Core Libraries| D\n    C --> |Optional Packages| D\n```\n\n### Initial Installation Components\n\nWhen setting up a new environment, the following components are installed:\n\n| Component | Purpose |\n|-----------|---------|\n| Miniforge | Python environment manager |\n| Core libraries | OpenBB platform dependencies |\n| iPython | Interactive Python shell |\n| Jupyter Lab | Web-based development environment |\n\n### Extension Selection UI\n\nThe extension selection phase allows users to:\n\n1. Select which extensions to install\n2. Add additional PyPI packages\n3. Configure environment-specific settings\n\n## Error Handling\n\n### Extension Loading Errors\n\n| Error Type | Cause | Resolution |\n|------------|-------|------------|\n| Missing Dependency | Extension requires unavailable package | Install missing package |\n| Import Failure | Extension module has errors | Check extension installation |\n| Router Conflict | Duplicate endpoint definitions | Review extension configuration |\n\n### Installation Errors\n\nThe system handles installation errors gracefully:\n\n```typescript\n// Error display with retry option\n{createEnvironmentError && (\n    <div className=\"p-3 bg-theme-secondary border border-red-500\">\n        <p>{extractStderr(createEnvironmentError)}</p>\n        <Button onClick={() => createEnvironment([])}>Retry</Button>\n    </div>\n)}\n```\n\n## API Reference\n\n### Extension Loading API\n\nExtensions are accessed through the main `obb` object:\n\n```python\nfrom openbb import obb\n\n# Access equity data\nresult = obb.equity.price_history(symbol=\"AAPL\")\n\n# Access fixed income data\nresult = obb.fixed_income.government.treasury_auctions()\n\n# Access CFTC data\nresult = obb.cftc.cot(code=\"CFTC_088695\", measure=\"percent_of_oi\")\n```\n\n### Extension Router Pattern\n\nExtensions define routers for API endpoints:\n\n```python\n# Example from extension __init__.py\nfrom openbb_core.provider.standard_routes import router\n\n@router.command()\nasync def endpoint(params: Model):\n    # Implementation\n    pass\n```\n\n## Best Practices\n\n### Extension Development\n\n1. Follow the standard directory structure\n2. Define clear router endpoints\n3. Use Pydantic models for request/response validation\n4. Document all endpoints in README.md\n5. Include comprehensive test coverage\n\n### Extension Installation\n\n1. Verify Python environment compatibility\n2. Check dependency requirements\n3. Use virtual environments for testing\n4. Review extension permissions and data access\n\n## See Also\n\n- [OpenBB Platform Documentation](https://docs.openbb.co/python/)\n- [Provider Development Guide](../CONTRIBUTING.md)\n- [MCP Server Extension](../extensions/mcp_server/README.md)\n- [Equity Extension](../extensions/equity/README.md)\n\n---\n\n<a id='page-charting'></a>\n\n## Charting and Visualization\n\n### 相关页面\n\n相关主题：[OBBject System](#page-obbject-system), [Extensions System](#page-extensions)\n\n<details>\n<summary>相关源码文件</summary>\n\n以下源码文件用于生成本页说明：\n\n- [openbb_platform/obbject_extensions/charting/openbb_charting/charting.py](https://github.com/OpenBB-finance/OpenBB/blob/main/openbb_platform/obbject_extensions/charting/openbb_charting/charting.py)\n- [openbb_platform/obbject_extensions/charting/openbb_charting/core/openbb_figure.py](https://github.com/OpenBB-finance/OpenBB/blob/main/openbb_platform/obbject_extensions/charting/openbb_charting/core/openbb_figure.py)\n- [openbb_platform/obbject_extensions/charting/openbb_charting/core/plotly_ta/ta_class.py](https://github.com/OpenBB-finance/OpenBB/blob/main/openbb_platform/obbject_extensions/charting/openbb_charting/core/plotly_ta/ta_class.py)\n- [openbb_platform/obbject_extensions/charting/README.md](https://github.com/OpenBB-finance/OpenBB/blob/main/openbb_platform/obbject_extensions/charting/README.md)\n</details>\n\n# Charting and Visualization\n\nThe OpenBB charting and visualization system provides an interactive charting library built on top of Plotly. It functions as an **OBBject extension**, meaning charting capabilities are automatically available on every command result returned by the OpenBB Platform.\n\n## Overview\n\nThe charting extension transforms raw financial data into interactive visualizations with support for:\n\n- **Technical Analysis Indicators** - SMA, EMA, MACD, RSI, Bollinger Bands, Stochastic Oscillator, ADX, and more\n- **Prebuilt Charts** - Dedicated visualizations for specific endpoints\n- **Custom Charts** - User-defined charts from DataFrames without Plotly knowledge\n- **OHLCV Time Series** - Specialized handling for candlestick and financial time series data\n\n资料来源：[openbb_platform/obbject_extensions/charting/README.md:1-10]()\n\n## Architecture\n\n```mermaid\ngraph TD\n    A[\"OBBject<br/>(Command Result)\"] --> B[\"charting accessor\"]\n    B --> C[\"OpenBBFigure\"]\n    B --> D[\"Charting Methods\"]\n    B --> E[\"Technical Analysis\"]\n    \n    C --> F[\"Plotly Figure\"]\n    C --> G[\"Raw Data Dict\"]\n    \n    D --> H[\"create_3d_surface()\"]\n    D --> I[\"create_bar_chart()\"]\n    D --> J[\"create_line_chart()\"]\n    D --> K[\"create_correlation_matrix()\"]\n    D --> L[\"to_chart()\"]\n    \n    E --> M[\"PlotlyTA Class\"]\n    \n    M --> N[\"sma, ema, macd\"]\n    M --> O[\"rsi, adx, bbands\"]\n    M --> P[\"stoch, and more\"]\n```\n\n### Core Components\n\n| Component | File Path | Purpose |\n|-----------|-----------|---------|\n| `Charting` | `openbb_charting/charting.py` | Main extension class with `indicators()` and `functions()` methods |\n| `OpenBBFigure` | `openbb_charting/core/openbb_figure.py` | Wrapper for Plotly figures with data extraction |\n| `PlotlyTA` | `openbb_charting/core/plotly_ta/ta_class.py` | Technical analysis indicator engine |\n\n资料来源：[openbb_platform/obbject_extensions/charting/README.md:50-60]()\n\n## Installation\n\n```bash\n# Base installation\npip install openbb-charting\n\n# With native OS window support\npip install \"openbb-charting[pywry]\"\n```\n\n### Linux Dependencies\n\n| Distribution | Command |\n|-------------|---------|\n| Debian/Ubuntu/Mint | `sudo apt install libwebkit2gtk-4.1-dev libgtk-3-dev` |\n| Arch Linux/Manjaro | `sudo pacman -S webkit2gtk` |\n| Fedora | `sudo dnf install gtk3-devel webkit2gtk3-devel` |\n\n资料来源：[openbb_platform/obbject_extensions/charting/README.md:15-35]()\n\n## Basic Usage\n\n### Enabling Charts on Command Results\n\n```python\nfrom openbb import obb\n\n# Method 1: Set chart=True argument\nequity_data = obb.equity.price.historical(symbol=\"TSLA\", chart=True)\n\n# Method 2: Access charting on existing result\nres = obb.equity.price.historical(\"AAPL\")\nres.charting.show()\n```\n\nBoth methods produce identical results. The `chart=True` parameter returns an OBBject with a `chart` attribute containing Plotly JSON data.\n\n资料来源：[openbb_platform/obbject_extensions/charting/README.md:50-75]()\n\n### Displaying Charts\n\n```python\n# Get chart data\nequity_data = obb.equity.price.historical(symbol=\"TSLA\", chart=True)\n\n# Display in native window\nequity_data.show()\n```\n\n## Custom Charts from DataFrames\n\nCreate visualizations directly from Pandas DataFrames without Plotly knowledge:\n\n```python\nres = obb.equity.price.historical(\"AAPL\", chart=True)\n\n# Available charting methods\nsurface_3d = res.charting.create_3d_surface\nbar_chart = res.charting.create_bar_chart\nline_chart = res.charting.create_line_chart\ncorrelation_matrix = res.charting.create_correlation_matrix\n```\n\nThe `data` parameter accepts either `OBBject.results` as a list or any Pandas DataFrame instance.\n\n资料来源：[openbb_platform/obbject_extensions/charting/README.md:95-110]()\n\n## Technical Analysis Integration\n\n### Available Indicators\n\n```python\nfrom openbb_charting import Charting\n\n# List all available indicators\nCharting.indicators()\n```\n\n| Indicator | Parameters | Description |\n|-----------|------------|-------------|\n| `sma` | `length` | Simple Moving Average |\n| `ema` | `length` (list supported) | Exponential Moving Average |\n| `macd` | `fast`, `slow`, `signal` | Moving Average Convergence Divergence |\n| `rsi` | `length` | Relative Strength Index |\n| `adx` | `length` | Average Directional Index |\n| `bbands` | `length`, `std` | Bollinger Bands |\n| `stoch` | `length` | Stochastic Oscillator |\n\n资料来源：[openbb_platform/obbject_extensions/charting/README.md:30-45]()\n\n### Using the `to_chart()` Method\n\nThe `to_chart()` method is an advanced feature that passes `**kwargs` to the `PlotlyTA` class for custom visualizations with technical indicators.\n\n```python\nfrom openbb import obb\n\nres = obb.equity.price.historical(\"AAPL\")\n\nindicators = dict(\n    sma=dict(length=[20, 30, 50]),\n    adx=dict(length=14),\n    rsi=dict(length=14),\n    macd=dict(fast=12, slow=26, signal=9),\n    bbands=dict(length=20, std=2),\n    stoch=dict(length=14),\n)\nres.charting.to_chart(**{\"indicators\": indicators})\n```\n\n> **Note:** This method only works with standardized data and is designed for OHLCV time series.\n\n资料来源：[openbb_platform/obbject_extensions/charting/README.md:55-80]()\n\n### Discovering Supported Endpoints\n\nNot all endpoints have dedicated charts. To discover supported endpoints:\n\n```python\nfrom openbb_charting import Charting\n\nCharting.functions()\n```\n\nThis returns a list of endpoints that have prebuilt charting support.\n\n资料来源：[openbb_platform/obbject_extensions/charting/README.md:95-100]()\n\n## OpenBBFigure Class\n\nThe `OpenBBFigure` class wraps Plotly figures with additional functionality:\n\n```python\nfrom openbb_charting.core.openbb_figure import OpenBBFigure\n```\n\n### Return Value Structure\n\nWhen using charting methods, the return type is:\n\n```python\nTuple[OpenBBFigure, Dict[str, Any]]\n```\n\n| Return Element | Type | Description |\n|---------------|------|-------------|\n| First | `OpenBBFigure` | Interactive Plotly figure |\n| Second | `Dict[str, Any]` | Raw data used by the API |\n\n## Creating Custom Chart Extensions\n\n### Poetry Plugin Configuration\n\nAdd visualization to an existing Platform command via `pyproject.toml`:\n\n```toml\n[tool.poetry.plugins.\"openbb_charting_extension\"]\nmy_extension = \"openbb_my_extension.my_extension_views:MyExtensionViews\"\n```\n\nThe `openbb_charting_extension` entry point is **mandatory** for discovery.\n\n资料来源：[openbb_platform/obbject_extensions/charting/README.md:100-115]()\n\n### Extension Views Module\n\n```python\n\"\"\"Views for MyExtension.\"\"\"\n\nfrom typing import Any, Dict, Tuple\n\nfrom openbb_charting.charts.price_historical import price_historical\nfrom openbb_charting.core.openbb_figure import OpenBBFigure\n\n\nclass MyExtensionViews:\n    \"\"\"MyExtension Views.\"\"\"\n\n    @staticmethod\n    def my_extension_price_historical(\n        **kwargs,\n    ) -> Tuple[OpenBBFigure, Dict[str, Any]]:\n        \"\"\"MyExtension Price Historical Chart.\"\"\"\n        return price_historical(**kwargs)\n```\n\nAfter implementation, charts are accessible via:\n- Python interface: `obb.equity.price.historical(\"SYMBOL\", chart=True)`\n- Direct access: `result.charting.show()`\n\n资料来源：[openbb_platform/obbject_extensions/charting/README.md:115-135]()\n\n## Workflow Summary\n\n```mermaid\ngraph LR\n    A[\"obb.equity.price.historical()\"] --> B{chart=True?}\n    B -->|Yes| C[\"Returns OBBject<br/>with chart data\"]\n    B -->|No| D[\"Returns OBBject<br/>without chart data\"]\n    \n    C --> E[\"result.charting.show()\"]\n    C --> F[\"result.charting.create_bar_chart()\"]\n    C --> G[\"result.charting.to_chart()\"]\n    \n    D --> H[\"result.charting.to_chart()\"]\n    H --> I[\"Must have OHLCV data\"]\n    \n    E --> J[\"Display visualization\"]\n    F --> K[\"Custom chart from data\"]\n    G --> L[\"TA indicators overlay\"]\n```\n\n## Summary Table: Charting Methods\n\n| Method | Input | Use Case |\n|--------|-------|----------|\n| `show()` | None | Display current chart in native window |\n| `to_chart(indicators={})` | Dict of indicator configs | Add TA indicators to time series |\n| `create_3d_surface(data=...)` | DataFrame or list | 3D surface visualization |\n| `create_bar_chart(data=...)` | DataFrame or list | Bar chart from any data |\n| `create_line_chart(data=...)` | DataFrame or list | Line chart from any data |\n| `create_correlation_matrix(data=...)` | DataFrame or list | Correlation heatmap |\n| `indicators()` | None | List available TA indicators |\n| `functions()` | None | List supported endpoint charts |\n\n---\n\n<a id='page-cli'></a>\n\n## Command Line Interface\n\n### 相关页面\n\n相关主题：[Installation Guide](#page-installation)\n\nThe provided context does not include the CLI source files mentioned in the query (cli/openbb_cli/cli.py, cli/openbb_cli/controllers/cli_controller.py, cli/openbb_cli/argparse_translator/argparse_translator.py, cli/README.md). The context only contains files related to the desktop application UI, backend handlers, and platform extensions.\n\nTo create an accurate technical wiki page about the Command Line Interface based on actual source code, I would need access to the CLI implementation files. Without these files, I cannot provide verified technical details about:\n\n- The CLI entry point and main command structure\n- The controller architecture and command handlers\n- The argparse translation system\n- Available commands and their parameters\n- The CLI's interaction with the OpenBB Platform\n\nCould you please provide the CLI source files from the repository so I can generate an accurate and well-sourced technical wiki page?\n\n---\n\n<a id='page-desktop-app'></a>\n\n## Desktop Application\n\n### 相关页面\n\n相关主题：[Installation Guide](#page-installation)\n\n<details>\n<summary>Relevant Source Files</summary>\n\n以下源码文件用于生成本页说明：\n\n- [desktop/src/routes/backends.tsx](https://github.com/OpenBB-finance/OpenBB/blob/main/desktop/src/routes/backends.tsx)\n- [desktop/src/routes/installation-progress.tsx](https://github.com/OpenBB-finance/OpenBB/blob/main/desktop/src/routes/installation-progress.tsx)\n- [desktop/src/components/AddExtensionSelector.tsx](https://github.com/OpenBB-finance/OpenBB/blob/main/desktop/src/components/AddExtensionSelector.tsx)\n- [desktop/src/components/InstallComponents.tsx](https://github.com/OpenBB-finance/OpenBB/blob/main/desktop/src/components/InstallComponents.tsx)\n- [desktop/src/components/Icon.tsx](https://github.com/OpenBB-finance/OpenBB/blob/main/desktop/src/components/Icon.tsx)\n- [desktop/src/routes/environments.tsx](https://github.com/OpenBB-finance/OpenBB/blob/main/desktop/src/routes/environments.tsx)\n- [desktop/src/routes/api-keys.tsx](https://github.com/OpenBB-finance/OpenBB/blob/main/desktop/src/routes/api-keys.tsx)\n- [openbb_platform/extensions/mcp_server/README.md](https://github.com/OpenBB-finance/OpenBB/blob/main/openbb_platform/extensions/mcp_server/README.md)\n</details>\n\n# Desktop Application\n\nThe OpenBB Desktop Application provides a comprehensive graphical interface for managing financial data workflows, Python environments, API keys, and backend services. Built with React and TypeScript for the frontend, the desktop app offers users a visual approach to configuring and operating the OpenBB platform without requiring command-line interaction.\n\n## Architecture Overview\n\nThe desktop application follows a client-side rendering architecture using React Router for navigation and Tauri as the desktop runtime. The frontend communicates with backend services through IPC (Inter-Process Communication) mechanisms provided by Tauri.\n\n```mermaid\ngraph TD\n    subgraph Desktop[\"Desktop Application\"]\n        subgraph UI[\"React Frontend\"]\n            Routes[\"Routes/Pages\"]\n            Components[\"UI Components\"]\n            State[\"State Management\"]\n        end\n        subgraph Tauri[\"Tauri Backend\"]\n            TauriHandlers[\"Tauri Handlers\"]\n            IPC[\"IPC Commands\"]\n        end\n    end\n    subgraph Services[\"External Services\"]\n        Python[\"Python Environments\"]\n        OpenBB[\"OpenBB Platform\"]\n        APIs[\"Third-party APIs\"]\n    end\n    \n    UI --> Tauri\n    Tauri --> IPC\n    IPC --> Services\n```\n\n### Key Technologies\n\n| Component | Technology | Purpose |\n|-----------|------------|---------|\n| Frontend Framework | React 18+ | UI rendering and component management |\n| Routing | React Router (createFileRoute) | Page navigation and URL handling |\n| Desktop Runtime | Tauri | Native desktop functionality |\n| Styling | Tailwind CSS + Theme System | Visual design and theming |\n| State | React Hooks | Local and shared state management |\n\n## Route Structure\n\nThe desktop application defines several key routes for managing different aspects of the OpenBB platform.\n\n### Route Hierarchy\n\n| Route Path | Component | Purpose |\n|------------|-----------|---------|\n| `/backends` | BackendsPage | Manage backend services and configurations |\n| `/environments` | EnvironmentsPage | Create and manage Python environments |\n| `/installation-progress` | InstallationProgressPage | Track installation workflow progress |\n| `/api-keys` | APIKeysPage | Manage third-party API credentials |\n\n资料来源：[desktop/src/routes/environments.tsx](desktop/src/routes/environments.tsx) (route definition)\n\n## Backend Management\n\nThe `/backends` route provides functionality for managing OpenBB backend services, including starting, stopping, and configuring backend processes.\n\n### Backend Configuration Panel\n\n```mermaid\ngraph LR\n    A[User Action] --> B{Backend Running?}\n    B -->|Yes| C[Show Process ID]\n    B -->|No| D[Start Backend]\n    D --> E[Wait for Initialization]\n    E --> F[Confirm Service URL]\n    F --> G[Display Backend Panel]\n```\n\n### Key Features\n\n- **Process Management**: Monitor and control backend process lifecycle\n- **Working Directory Selection**: Configure the directory from which the backend executable runs (defaults to `{installation_directory}/backends`)\n- **Command Configuration**: Customize the backend startup command (default: `openbb-api`)\n- **Service Initialization**: Display loading state while waiting for service to initialize\n- **Process ID Tracking**: Show the PID of running backend processes\n\n资料来源：[desktop/src/routes/backends.tsx](desktop/src/routes/backends.tsx)\n\n### Backend Configuration Parameters\n\n| Parameter | Type | Description | Default |\n|-----------|------|-------------|---------|\n| `command` | string | Backend startup command | `openbb-api` |\n| `workingDir` | string | Execution directory | `{install_dir}/backends` |\n| `extractedPid` | number | Process identifier | - |\n| `urlConfirmed` | boolean | Service URL verified | false |\n\n## Environment Management\n\nThe `/environments` route enables users to create, manage, and configure Python virtual environments using Miniforge.\n\n### Environment Creation Workflow\n\n```mermaid\ngraph TD\n    A[Start Create Environment] --> B[Step 1: Name]\n    B --> C{Valid Name?}\n    C -->|No| B\n    C -->|Yes| D[Step 2: Python Version]\n    D --> E[Select Python]\n    E --> F[Step 3: Extensions]\n    F --> G[Select Extensions]\n    G --> H[Create Environment]\n    H --> I{Success?}\n    I -->|No| J[Show Error + Retry]\n    I -->|Yes| K[Environment Ready]\n```\n\n### Environment Name Validation\n\nEnvironment names must follow specific conventions for compatibility with Conda:\n\n```\nPattern: /^[a-z0-9-]+$/\nAllowed: lowercase letters, numbers, hyphens\nForbidden: uppercase, spaces, special characters\n```\n\n资料来源：[desktop/src/routes/environments.tsx](desktop/src/routes/environments.tsx)\n\n### Environment States\n\n| State | Description | UI Treatment |\n|-------|-------------|---------------|\n| `loading` | Fetching environment list | Spinner + loading text |\n| `creating` | Environment creation in progress | Progress indicator |\n| `error` | Operation failed | Red error panel with retry option |\n| `complete` | Operation successful | Success message |\n\n## Installation Progress\n\nThe installation workflow guides users through the complete setup process in sequential phases.\n\n### Installation Phases\n\n```mermaid\ngraph LR\n    A[phase: version_select] --> B[phase: extension_select]\n    B --> C[phase: installing]\n    C --> D{Result}\n    D -->|Success| E[Complete]\n    D -->|Failure| F[Error State]\n    D -->|Cancelled| G[phase: cancelled]\n```\n\n### Phase Breakdown\n\n| Phase | Step Indicator | Description |\n|-------|----------------|-------------|\n| `version_select` | STEP 1 OF 3 | Select Python version via Miniforge |\n| `extension_select` | STEP 3 OF 3 | Choose OpenBB extensions and additional packages |\n| `installing` | N/A | Installation in progress |\n| `cancelled` | N/A | User cancelled installation |\n| `error` | N/A | Installation failed |\n\n### Initial Installation Components\n\nThe base installation includes:\n\n- **Miniforge**: Python environment manager\n- **OpenBB Environment**: Core libraries and dependencies\n- **iPython & Jupyter Lab**: Interactive computing tools\n\n资料来源：[desktop/src/routes/installation-progress.tsx](desktop/src/routes/installation-progress.tsx)\n\n## Extension Management\n\nExtensions extend the functionality of the OpenBB platform by providing additional data sources, analytical tools, and integrations.\n\n### Extension Selector Component\n\nThe `AddExtensionSelector` component provides a user interface for browsing and selecting extensions.\n\n```mermaid\ngraph TD\n    A[AddExtensionSelector] --> B[Extension List]\n    A --> C[Conda Packages]\n    A --> D[Custom PyPI Packages]\n    A --> E[OpenBB Extensions]\n    B --> F[Search/Filter]\n    C --> G[Package Counter]\n    D --> G\n    E --> G\n    G --> H[Install Button]\n```\n\n### Extension Selection States\n\n| Selection Type | Counter Display | Example |\n|----------------|-----------------|---------|\n| Conda packages | `{n} Conda` | `2 Conda` |\n| PyPI packages | `{n} PyPI` | `3 PyPI` |\n| OpenBB extensions | `{n} OpenBB extensions` | `5 OpenBB extensions` |\n\n资料来源：[desktop/src/components/AddExtensionSelector.tsx](desktop/src/components/AddExtensionSelector.tsx)\n\n### Extension Display Features\n\nExtensions are displayed with setup instructions rendered via `ReactMarkdown`:\n\n- **Images**: Max height 300px, lazy loading\n- **Links**: Open in new tab with `rel=\"noreferrer noopener\"`\n- **Code blocks**: Themed with `bg-theme-tertiary`\n- **Paragraphs**: Styled with `text-theme-secondary`\n\n资料来源：[desktop/src/components/InstallComponents.tsx](desktop/src/components/InstallComponents.tsx)\n\n## API Key Management\n\nThe `/api-keys` route provides secure storage and management for third-party API credentials.\n\n### API Key Operations\n\n| Operation | Description | UI Element |\n|-----------|-------------|------------|\n| Add | Add new API key via modal | \"Add API Key\" button |\n| Edit | Modify existing key | Edit icon button |\n| Delete | Remove key from storage | Delete action |\n| Copy | Copy key value to clipboard | Copy icon button |\n| Import | Import keys from JSON/ENV file | \"Import Keys\" button |\n\n### Modal Modes\n\nThe API key modal operates in two modes:\n\n| Mode | Header Text | Purpose |\n|------|-------------|---------|\n| `add` | Add API Key | Create new credential entry |\n| `edit` | Edit API Key | Modify existing credential |\n\n### File Import Support\n\nThe import functionality accepts:\n\n- `.json` format\n- `.env` format\n\n资料来源：[desktop/src/routes/api-keys.tsx](desktop/src/routes/api-keys.tsx)\n\n## UI Components Library\n\n### Icon System\n\nThe application uses a centralized icon system defined in `Icon.tsx`.\n\n```tsx\n// OpenBB Logo Component\nexport const FileIcon = (props: React.ComponentProps<\"svg\">) => (\n    <svg viewBox=\"0 0 16 16\" fill=\"none\" stroke=\"currentColor\" {...props}>\n        {/* SVG path data */}\n    </svg>\n);\n```\n\nIcons are integrated using the `CustomIcon` component with named identifiers.\n\n### Button Variants\n\n| Variant | Class | Usage |\n|---------|-------|-------|\n| `primary` | `button-primary` | Main actions |\n| `secondary` | `button-secondary` | Secondary actions |\n| `outline` | `button-outline` | Alternative actions |\n| `ghost` | `button-ghost` | Subtle actions |\n| `danger` | `button-danger` | Destructive actions |\n\n### Tooltip System\n\nTooltips provide contextual help using the `Tooltip` component:\n\n```tsx\n<Tooltip content=\"Descriptive text\" className=\"tooltip-theme\">\n    <Button>Action</Button>\n</Tooltip>\n```\n\n## Theme System\n\nThe desktop application implements a comprehensive theme system with CSS custom properties.\n\n### Theme Color Classes\n\n| Class | Usage | Example |\n|-------|-------|---------|\n| `bg-theme-primary` | Main background | Cards, panels |\n| `bg-theme-secondary` | Secondary background | Modals, dialogs |\n| `bg-theme-tertiary` | Tertiary background | Input fields, wells |\n| `text-theme-primary` | Primary text | Headings, labels |\n| `text-theme-secondary` | Secondary text | Body content |\n| `text-theme-muted` | Muted text | Hints, placeholders |\n| `border-theme` | Border color | Input borders |\n| `border-theme-accent` | Accent borders | Focus states |\n\n### Status Colors\n\n| Status | Color | Usage |\n|--------|-------|-------|\n| Success | `green-500` | Completed actions |\n| Error | `red-500` | Failed operations |\n| Warning | `yellow-500` | Warnings |\n| Info | `accent-color` | Loading, progress |\n\n## State Management Patterns\n\n### Form State Handling\n\nInput validation follows a consistent pattern:\n\n```typescript\n// Name validation regex\nconst isValidName = (name: string): boolean => {\n    return /^[a-z0-9-]+$/.test(name);\n};\n```\n\n### Loading States\n\n| State Variable | Component | Indicator |\n|----------------|-----------|-----------|\n| `creationLoading` | Environment creation | Spinner + \"This may take several minutes\" |\n| `extensionsLoading` | Extension list | Loading indicator |\n| `isInstalling` | Extension installation | \"Installing...\" button text |\n\n### Error Handling\n\nErrors are displayed in styled containers:\n\n```tsx\n{error && (\n    <div className=\"p-3 bg-theme-secondary border border-red-500/50 rounded text-red-500\">\n        <p>{error}</p>\n    </div>\n)}\n```\n\n## MCP Server Integration\n\nThe desktop application can expose backend functionality through the Model Context Protocol (MCP), allowing integration with AI assistants and external tools.\n\n### MCP Configuration Options\n\n| Property | Type | Description |\n|----------|------|-------------|\n| `expose` | `Optional[bool]` | Hide/show route from MCP |\n| `mcp_type` | `Optional[MCPType]` | Classification: tool, resource, resource_template |\n| `methods` | `Optional[list[HTTPMethod]]` | HTTP methods to expose |\n\n资料来源：[openbb_platform/extensions/mcp_server/README.md](openbb_platform/extensions/mcp_server/README.md)\n\n## Navigation and Route Validation\n\nRoutes use search parameter validation:\n\n```typescript\nexport const Route = createFileRoute(\"/environments\")({\n    component: EnvironmentsPage,\n    validateSearch: (search: Record<string, unknown>) => {\n        return {\n            directory: search.directory as string | undefined,\n            userDataDir: search.userDataDir as string | undefined,\n        };\n    },\n});\n```\n\n### Route Search Parameters\n\n| Parameter | Type | Source |\n|-----------|------|--------|\n| `directory` | `string \\| undefined` | Installation directory path |\n| `userDataDir` | `string \\| undefined` | User data directory path |\n\n---\n\n---\n\n## Doramagic Pitfall Log\n\nProject: OpenBB-finance/OpenBB\n\nSummary: Found 29 potential pitfall items; 4 are high/blocking. Highest priority: security_permissions - 来源证据：[FR] Add Bank of Canada Valet API as a new provider extension.\n\n## 1. security_permissions · 来源证据：[FR] Add Bank of Canada Valet API as a new provider extension\n\n- Severity: high\n- Evidence strength: source_linked\n- Finding: GitHub 社区证据显示该项目存在一个安全/权限相关的待验证问题：[FR] Add Bank of Canada Valet API as a new provider extension\n- User impact: 可能影响授权、密钥配置或安全边界。\n- Suggested check: 来源问题仍为 open，Pack Agent 需要复核是否仍影响当前版本。\n- Guardrail action: 不得脱离来源链接放大为确定性结论；需要标注适用版本和复核状态。\n- Evidence: community_evidence:github | cevd_a8349d4112564c48b29615f3530e81e4 | https://github.com/OpenBB-finance/OpenBB/issues/7490 | 来源讨论提到 api key 相关条件，需在安装/试用前复核。\n\n## 2. security_permissions · 来源证据：[FR] Add Real-time Cryptocurrency Data Provider Integration\n\n- Severity: high\n- Evidence strength: source_linked\n- Finding: GitHub 社区证据显示该项目存在一个安全/权限相关的待验证问题：[FR] Add Real-time Cryptocurrency Data Provider Integration\n- User impact: 可能影响授权、密钥配置或安全边界。\n- Suggested check: 来源问题仍为 open，Pack Agent 需要复核是否仍影响当前版本。\n- Guardrail action: 不得脱离来源链接放大为确定性结论；需要标注适用版本和复核状态。\n- Evidence: community_evidence:github | cevd_e1bb7e5c7c0a4dc2bea2a256ed74a0b0 | https://github.com/OpenBB-finance/OpenBB/issues/7177 | 来源讨论提到 api key 相关条件，需在安装/试用前复核。\n\n## 3. security_permissions · 来源证据：[FR] Signed audit receipts for MCP server tool calls (regulatory compliance)\n\n- Severity: high\n- Evidence strength: source_linked\n- Finding: GitHub 社区证据显示该项目存在一个安全/权限相关的待验证问题：[FR] Signed audit receipts for MCP server tool calls (regulatory compliance)\n- User impact: 可能影响授权、密钥配置或安全边界。\n- Suggested check: 来源问题仍为 open，Pack Agent 需要复核是否仍影响当前版本。\n- Guardrail action: 不得脱离来源链接放大为确定性结论；需要标注适用版本和复核状态。\n- Evidence: community_evidence:github | cevd_01ea12beef924e199679c6d2d1b91c73 | https://github.com/OpenBB-finance/OpenBB/issues/7455 | 来源讨论提到 npm 相关条件，需在安装/试用前复核。\n\n## 4. security_permissions · 涉及密钥、隐私或敏感领域\n\n- Severity: high\n- Evidence strength: source_linked\n- Finding: 项目文本出现 secret/private key/privacy/trading/finance 等敏感关键词。\n- User impact: 金融、交易、隐私和密钥场景必须比普通工具更保守。\n- Suggested check: 补敏感数据流、密钥存储和权限边界审查。\n- Guardrail action: 敏感领域或密钥场景必须保守推荐并要求人工复核。\n- Evidence: packet_text.keyword_scan | github_repo:323048702 | https://github.com/OpenBB-finance/OpenBB | matched secret / private key / privacy / trading / finance keyword\n\n## 5. installation · 失败模式：installation: OpenBB Platform v4.5.0\n\n- Severity: medium\n- Evidence strength: source_linked\n- Finding: Developers should check this installation risk before relying on the project: OpenBB Platform v4.5.0\n- User impact: Upgrade or migration may change expected behavior: OpenBB Platform v4.5.0\n- Suggested check: Before packaging this project, run the relevant install/config/quickstart check for: OpenBB Platform v4.5.0. Context: Observed when using python\n- Guardrail action: State this as source-backed community evidence, not as Doramagic reproduction.\n- Evidence: failure_mode_cluster:github_release | fmev_3acb4d0463ffb0d96b55088fc42477e1 | https://github.com/OpenBB-finance/OpenBB/releases/tag/v4.5.0 | OpenBB Platform v4.5.0\n\n## 6. installation · 失败模式：installation: OpenBB Platform v4.6.0\n\n- Severity: medium\n- Evidence strength: source_linked\n- Finding: Developers should check this installation risk before relying on the project: OpenBB Platform v4.6.0\n- User impact: Upgrade or migration may change expected behavior: OpenBB Platform v4.6.0\n- Suggested check: Before packaging this project, run the relevant install/config/quickstart check for: OpenBB Platform v4.6.0. Context: Observed when using python\n- Guardrail action: State this as source-backed community evidence, not as Doramagic reproduction.\n- Evidence: failure_mode_cluster:github_release | fmev_c32f0b655c075b88a71f35f893ae1f90 | https://github.com/OpenBB-finance/OpenBB/releases/tag/v4.6.0 | OpenBB Platform v4.6.0\n\n## 7. installation · 失败模式：installation: [Bug] Openbb 4.5.0 cannot import name 'OBBject_EquityInfo' from 'openbb_core.app.provider_int...\n\n- Severity: medium\n- Evidence strength: source_linked\n- Finding: Developers should check this installation risk before relying on the project: [Bug] Openbb 4.5.0 cannot import name 'OBBject_EquityInfo' from 'openbb_core.app.provider_interface'\n- User impact: Developers may fail before the first successful local run: [Bug] Openbb 4.5.0 cannot import name 'OBBject_EquityInfo' from 'openbb_core.app.provider_interface'\n- Suggested check: Before packaging this project, run the relevant install/config/quickstart check for: [Bug] Openbb 4.5.0 cannot import name 'OBBject_EquityInfo' from 'openbb_core.app.provider_interface'. Context: Observed when using python, docker\n- Guardrail action: State this as source-backed community evidence, not as Doramagic reproduction.\n- Evidence: failure_mode_cluster:github_issue | fmev_a7115ea0142ee2b52fad8606fc7d47ec | https://github.com/OpenBB-finance/OpenBB/issues/7279 | [Bug] Openbb 4.5.0 cannot import name 'OBBject_EquityInfo' from 'openbb_core.app.provider_interface'\n\n## 8. installation · 失败模式：installation: [Bug] PyWry WebView Fails to Launch on Ubuntu 24.04\n\n- Severity: medium\n- Evidence strength: source_linked\n- Finding: Developers should check this installation risk before relying on the project: [Bug] PyWry WebView Fails to Launch on Ubuntu 24.04\n- User impact: Developers may fail before the first successful local run: [Bug] PyWry WebView Fails to Launch on Ubuntu 24.04\n- Suggested check: Before packaging this project, run the relevant install/config/quickstart check for: [Bug] PyWry WebView Fails to Launch on Ubuntu 24.04. Context: Observed when using python, linux\n- Guardrail action: State this as source-backed community evidence, not as Doramagic reproduction.\n- Evidence: failure_mode_cluster:github_issue | fmev_c48a7161974013fd9895ea98894b35bd | https://github.com/OpenBB-finance/OpenBB/issues/7148 | [Bug] PyWry WebView Fails to Launch on Ubuntu 24.04\n\n## 9. installation · 失败模式：installation: [FR] Add Bank of Canada Valet API as a new provider extension\n\n- Severity: medium\n- Evidence strength: source_linked\n- Finding: Developers should check this installation risk before relying on the project: [FR] Add Bank of Canada Valet API as a new provider extension\n- User impact: Developers may fail before the first successful local run: [FR] Add Bank of Canada Valet API as a new provider extension\n- Suggested check: Before packaging this project, run the relevant install/config/quickstart check for: [FR] Add Bank of Canada Valet API as a new provider extension. Context: Observed when using python\n- Guardrail action: State this as source-backed community evidence, not as Doramagic reproduction.\n- Evidence: failure_mode_cluster:github_issue | fmev_3ee0b5efd611f4c6c49174e1a6ba1006 | https://github.com/OpenBB-finance/OpenBB/issues/7490 | [FR] Add Bank of Canada Valet API as a new provider extension\n\n## 10. installation · 来源证据：[Bug] PyWry WebView Fails to Launch on Ubuntu 24.04\n\n- Severity: medium\n- Evidence strength: source_linked\n- Finding: GitHub 社区证据显示该项目存在一个安装相关的待验证问题：[Bug] PyWry WebView Fails to Launch on Ubuntu 24.04\n- User impact: 可能阻塞安装或首次运行。\n- Suggested check: 来源显示可能已有修复、规避或版本变化，说明书中必须标注适用版本。\n- Guardrail action: 不得脱离来源链接放大为确定性结论；需要标注适用版本和复核状态。\n- Evidence: community_evidence:github | cevd_c068fa0d9cac4fb7b74d875b22d312d7 | https://github.com/OpenBB-finance/OpenBB/issues/7148 | 来源讨论提到 python 相关条件，需在安装/试用前复核。\n\n## 11. installation · 来源证据：[Bug] Widgets not saving their position and size after refresh\n\n- Severity: medium\n- Evidence strength: source_linked\n- Finding: GitHub 社区证据显示该项目存在一个安装相关的待验证问题：[Bug] Widgets not saving their position and size after refresh\n- User impact: 可能增加新用户试用和生产接入成本。\n- Suggested check: 来源显示可能已有修复、规避或版本变化，说明书中必须标注适用版本。\n- Guardrail action: 不得脱离来源链接放大为确定性结论；需要标注适用版本和复核状态。\n- Evidence: community_evidence:github | cevd_b7792ca1efe649c085e18a8a6be37d49 | https://github.com/OpenBB-finance/OpenBB/issues/7479 | 来源类型 github_issue 暴露的待验证使用条件。\n\n## 12. configuration · 失败模式：configuration: [FR] Add Real-time Cryptocurrency Data Provider Integration\n\n- Severity: medium\n- Evidence strength: source_linked\n- Finding: Developers should check this configuration risk before relying on the project: [FR] Add Real-time Cryptocurrency Data Provider Integration\n- User impact: Developers may misconfigure credentials, environment, or host setup: [FR] Add Real-time Cryptocurrency Data Provider Integration\n- Suggested check: Before packaging this project, run the relevant install/config/quickstart check for: [FR] Add Real-time Cryptocurrency Data Provider Integration. Context: Source discussion did not expose a precise runtime context.\n- Guardrail action: State this as source-backed community evidence, not as Doramagic reproduction.\n- Evidence: failure_mode_cluster:github_issue | fmev_45a17b16742dbd042ef1b9e8d373939d | https://github.com/OpenBB-finance/OpenBB/issues/7177 | [FR] Add Real-time Cryptocurrency Data Provider Integration\n\n## 13. configuration · 失败模式：configuration: [FR] Signed audit receipts for MCP server tool calls (regulatory compliance)\n\n- Severity: medium\n- Evidence strength: source_linked\n- Finding: Developers should check this configuration risk before relying on the project: [FR] Signed audit receipts for MCP server tool calls (regulatory compliance)\n- User impact: Developers may misconfigure credentials, environment, or host setup: [FR] Signed audit receipts for MCP server tool calls (regulatory compliance)\n- Suggested check: Before packaging this project, run the relevant install/config/quickstart check for: [FR] Signed audit receipts for MCP server tool calls (regulatory compliance). Context: Observed when using node\n- Guardrail action: State this as source-backed community evidence, not as Doramagic reproduction.\n- Evidence: failure_mode_cluster:github_issue | fmev_3b139ec9599d5d33e68020e4e802c7e6 | https://github.com/OpenBB-finance/OpenBB/issues/7455 | [FR] Signed audit receipts for MCP server tool calls (regulatory compliance), failure_mode_cluster:github_issue | fmev_cc0ef568cdbda130dfa0c7df4a8f4021 | https://github.com/OpenBB-finance/OpenBB/issues/7455 | [FR] Signed audit receipts for MCP server tool calls (regulatory compliance)\n\n## 14. capability · 能力判断依赖假设\n\n- Severity: medium\n- Evidence strength: source_linked\n- Finding: README/documentation is current enough for a first validation pass.\n- User impact: 假设不成立时，用户拿不到承诺的能力。\n- Suggested check: 将假设转成下游验证清单。\n- Guardrail action: 假设必须转成验证项；没有验证结果前不能写成事实。\n- Evidence: capability.assumptions | github_repo:323048702 | https://github.com/OpenBB-finance/OpenBB | README/documentation is current enough for a first validation pass.\n\n## 15. runtime · 来源证据：ODP Desktop v1.0.2\n\n- Severity: medium\n- Evidence strength: source_linked\n- Finding: GitHub 社区证据显示该项目存在一个运行相关的待验证问题：ODP Desktop v1.0.2\n- User impact: 可能增加新用户试用和生产接入成本。\n- Suggested check: 来源显示可能已有修复、规避或版本变化，说明书中必须标注适用版本。\n- Guardrail action: 不得脱离来源链接放大为确定性结论；需要标注适用版本和复核状态。\n- Evidence: community_evidence:github | cevd_cf07c5d467e44c168f2650a3c4404f46 | https://github.com/OpenBB-finance/OpenBB/releases/tag/Open-Data-Platform-v1.0.2 | 来源讨论提到 windows 相关条件，需在安装/试用前复核。\n\n## 16. maintenance · 失败模式：migration: OpenBB V4.7.0\n\n- Severity: medium\n- Evidence strength: source_linked\n- Finding: Developers should check this migration risk before relying on the project: OpenBB V4.7.0\n- User impact: Upgrade or migration may change expected behavior: OpenBB V4.7.0\n- Suggested check: Before packaging this project, run the relevant install/config/quickstart check for: OpenBB V4.7.0. Context: Observed when using python\n- Guardrail action: State this as source-backed community evidence, not as Doramagic reproduction.\n- Evidence: failure_mode_cluster:github_release | fmev_d2f3cd7047c12b8378dbba16461be269 | https://github.com/OpenBB-finance/OpenBB/releases/tag/v4.7.0 | OpenBB V4.7.0\n\n## 17. maintenance · 维护活跃度未知\n\n- Severity: medium\n- Evidence strength: source_linked\n- Finding: 未记录 last_activity_observed。\n- User impact: 新项目、停更项目和活跃项目会被混在一起，推荐信任度下降。\n- Suggested check: 补 GitHub 最近 commit、release、issue/PR 响应信号。\n- Guardrail action: 维护活跃度未知时，推荐强度不能标为高信任。\n- Evidence: evidence.maintainer_signals | github_repo:323048702 | https://github.com/OpenBB-finance/OpenBB | last_activity_observed missing\n\n## 18. security_permissions · 下游验证发现风险项\n\n- Severity: medium\n- Evidence strength: source_linked\n- Finding: no_demo\n- User impact: 下游已经要求复核，不能在页面中弱化。\n- Suggested check: 进入安全/权限治理复核队列。\n- Guardrail action: 下游风险存在时必须保持 review/recommendation 降级。\n- Evidence: downstream_validation.risk_items | github_repo:323048702 | https://github.com/OpenBB-finance/OpenBB | no_demo; severity=medium\n\n## 19. security_permissions · 存在评分风险\n\n- Severity: medium\n- Evidence strength: source_linked\n- Finding: no_demo\n- User impact: 风险会影响是否适合普通用户安装。\n- Suggested check: 把风险写入边界卡，并确认是否需要人工复核。\n- Guardrail action: 评分风险必须进入边界卡，不能只作为内部分数。\n- Evidence: risks.scoring_risks | github_repo:323048702 | https://github.com/OpenBB-finance/OpenBB | no_demo; severity=medium\n\n## 20. security_permissions · 来源证据：ODP Desktop v1.0.1\n\n- Severity: medium\n- Evidence strength: source_linked\n- Finding: GitHub 社区证据显示该项目存在一个安全/权限相关的待验证问题：ODP Desktop v1.0.1\n- User impact: 可能增加新用户试用和生产接入成本。\n- Suggested check: 来源显示可能已有修复、规避或版本变化，说明书中必须标注适用版本。\n- Guardrail action: 不得脱离来源链接放大为确定性结论；需要标注适用版本和复核状态。\n- Evidence: community_evidence:github | cevd_b5b0cf96b9b1456e8192a80e8c9fbcfd | https://github.com/OpenBB-finance/OpenBB/releases/tag/Open-Data-Platform-v1.0.1 | 来源讨论提到 windows 相关条件，需在安装/试用前复核。\n\n## 21. security_permissions · 来源证据：OpenBB Platform v4.5.0\n\n- Severity: medium\n- Evidence strength: source_linked\n- Finding: GitHub 社区证据显示该项目存在一个安全/权限相关的待验证问题：OpenBB Platform v4.5.0\n- User impact: 可能影响升级、迁移或版本选择。\n- Suggested check: 来源显示可能已有修复、规避或版本变化，说明书中必须标注适用版本。\n- Guardrail action: 不得脱离来源链接放大为确定性结论；需要标注适用版本和复核状态。\n- Evidence: community_evidence:github | cevd_ff4708f0690c485c9453a90b7b1f926a | https://github.com/OpenBB-finance/OpenBB/releases/tag/v4.5.0 | 来源讨论提到 python 相关条件，需在安装/试用前复核。\n\n## 22. security_permissions · 来源证据：OpenBB Platform v4.6.0\n\n- Severity: medium\n- Evidence strength: source_linked\n- Finding: GitHub 社区证据显示该项目存在一个安全/权限相关的待验证问题：OpenBB Platform v4.6.0\n- User impact: 可能影响升级、迁移或版本选择。\n- Suggested check: 来源显示可能已有修复、规避或版本变化，说明书中必须标注适用版本。\n- Guardrail action: 不得脱离来源链接放大为确定性结论；需要标注适用版本和复核状态。\n- Evidence: community_evidence:github | cevd_58ecf0b5c49441d7818b4f384f522024 | https://github.com/OpenBB-finance/OpenBB/releases/tag/v4.6.0 | 来源讨论提到 python 相关条件，需在安装/试用前复核。\n\n## 23. security_permissions · 来源证据：OpenBB V4.7.0\n\n- Severity: medium\n- Evidence strength: source_linked\n- Finding: GitHub 社区证据显示该项目存在一个安全/权限相关的待验证问题：OpenBB V4.7.0\n- User impact: 可能影响升级、迁移或版本选择。\n- Suggested check: 来源显示可能已有修复、规避或版本变化，说明书中必须标注适用版本。\n- Guardrail action: 不得脱离来源链接放大为确定性结论；需要标注适用版本和复核状态。\n- Evidence: community_evidence:github | cevd_487435c8c60a497092f647438af74f89 | https://github.com/OpenBB-finance/OpenBB/releases/tag/v4.7.0 | 来源讨论提到 python 相关条件，需在安装/试用前复核。\n\n## 24. security_permissions · 来源证据：[Bug] Openbb 4.5.0 cannot import name 'OBBject_EquityInfo' from 'openbb_core.app.provider_interface'\n\n- Severity: medium\n- Evidence strength: source_linked\n- Finding: GitHub 社区证据显示该项目存在一个安全/权限相关的待验证问题：[Bug] Openbb 4.5.0 cannot import name 'OBBject_EquityInfo' from 'openbb_core.app.provider_interface'\n- User impact: 可能影响授权、密钥配置或安全边界。\n- Suggested check: 来源显示可能已有修复、规避或版本变化，说明书中必须标注适用版本。\n- Guardrail action: 不得脱离来源链接放大为确定性结论；需要标注适用版本和复核状态。\n- Evidence: community_evidence:github | cevd_95461e0340ed4ee5a724d3d6966b0bcf | https://github.com/OpenBB-finance/OpenBB/issues/7279 | 来源讨论提到 python 相关条件，需在安装/试用前复核。\n\n## 25. capability · 失败模式：capability: [Bug] Widgets not saving their position and size after refresh\n\n- Severity: low\n- Evidence strength: source_linked\n- Finding: Developers should check this capability risk before relying on the project: [Bug] Widgets not saving their position and size after refresh\n- User impact: Developers may hit a documented source-backed failure mode: [Bug] Widgets not saving their position and size after refresh\n- Suggested check: Before packaging this project, run the relevant install/config/quickstart check for: [Bug] Widgets not saving their position and size after refresh. Context: Source discussion did not expose a precise runtime context.\n- Guardrail action: State this as source-backed community evidence, not as Doramagic reproduction.\n- Evidence: failure_mode_cluster:github_issue | fmev_033f4288382da3f950cd941ddba1d67b | https://github.com/OpenBB-finance/OpenBB/issues/7479 | [Bug] Widgets not saving their position and size after refresh\n\n## 26. runtime · 失败模式：performance: ODP Desktop v1.0.1\n\n- Severity: low\n- Evidence strength: source_linked\n- Finding: Developers should check this performance risk before relying on the project: ODP Desktop v1.0.1\n- User impact: Upgrade or migration may change expected behavior: ODP Desktop v1.0.1\n- Suggested check: Before packaging this project, run the relevant install/config/quickstart check for: ODP Desktop v1.0.1. Context: Observed when using windows, macos\n- Guardrail action: State this as source-backed community evidence, not as Doramagic reproduction.\n- Evidence: failure_mode_cluster:github_release | fmev_7f6699c43b69d6dddb40e92afc05c849 | https://github.com/OpenBB-finance/OpenBB/releases/tag/Open-Data-Platform-v1.0.1 | ODP Desktop v1.0.1\n\n## 27. maintenance · issue/PR 响应质量未知\n\n- Severity: low\n- Evidence strength: source_linked\n- Finding: issue_or_pr_quality=unknown。\n- User impact: 用户无法判断遇到问题后是否有人维护。\n- Suggested check: 抽样最近 issue/PR，判断是否长期无人处理。\n- Guardrail action: issue/PR 响应未知时，必须提示维护风险。\n- Evidence: evidence.maintainer_signals | github_repo:323048702 | https://github.com/OpenBB-finance/OpenBB | issue_or_pr_quality=unknown\n\n## 28. maintenance · 发布节奏不明确\n\n- Severity: low\n- Evidence strength: source_linked\n- Finding: release_recency=unknown。\n- User impact: 安装命令和文档可能落后于代码，用户踩坑概率升高。\n- Suggested check: 确认最近 release/tag 和 README 安装命令是否一致。\n- Guardrail action: 发布节奏未知或过期时，安装说明必须标注可能漂移。\n- Evidence: evidence.maintainer_signals | github_repo:323048702 | https://github.com/OpenBB-finance/OpenBB | release_recency=unknown\n\n## 29. maintenance · 失败模式：maintenance: ODP Desktop v1.0.2\n\n- Severity: low\n- Evidence strength: source_linked\n- Finding: Developers should check this maintenance risk before relying on the project: ODP Desktop v1.0.2\n- User impact: Upgrade or migration may change expected behavior: ODP Desktop v1.0.2\n- Suggested check: Before packaging this project, run the relevant install/config/quickstart check for: ODP Desktop v1.0.2. Context: Observed when using windows\n- Guardrail action: State this as source-backed community evidence, not as Doramagic reproduction.\n- Evidence: failure_mode_cluster:github_release | fmev_c611176eed42d564fe51eebbd73c3402 | https://github.com/OpenBB-finance/OpenBB/releases/tag/Open-Data-Platform-v1.0.2 | ODP Desktop v1.0.2\n\n<!-- canonical_name: OpenBB-finance/OpenBB; human_manual_source: deepwiki_human_wiki -->\n",
      "summary": "DeepWiki/Human Wiki output with a Doramagic pitfall appendix.",
      "title": "Human Manual"
    },
    "pitfall_log": {
      "asset_id": "pitfall_log",
      "filename": "PITFALL_LOG.md",
      "markdown": "# Pitfall Log\n\nProject: OpenBB-finance/OpenBB\n\nSummary: Found 29 potential pitfall items; 4 are high/blocking. Highest priority: security_permissions - 来源证据：[FR] Add Bank of Canada Valet API as a new provider extension.\n\n## 1. security_permissions · 来源证据：[FR] Add Bank of Canada Valet API as a new provider extension\n\n- Severity: high\n- Evidence strength: source_linked\n- Finding: GitHub 社区证据显示该项目存在一个安全/权限相关的待验证问题：[FR] Add Bank of Canada Valet API as a new provider extension\n- User impact: 可能影响授权、密钥配置或安全边界。\n- Suggested check: 来源问题仍为 open，Pack Agent 需要复核是否仍影响当前版本。\n- Guardrail action: 不得脱离来源链接放大为确定性结论；需要标注适用版本和复核状态。\n- Evidence: community_evidence:github | cevd_a8349d4112564c48b29615f3530e81e4 | https://github.com/OpenBB-finance/OpenBB/issues/7490 | 来源讨论提到 api key 相关条件，需在安装/试用前复核。\n\n## 2. security_permissions · 来源证据：[FR] Add Real-time Cryptocurrency Data Provider Integration\n\n- Severity: high\n- Evidence strength: source_linked\n- Finding: GitHub 社区证据显示该项目存在一个安全/权限相关的待验证问题：[FR] Add Real-time Cryptocurrency Data Provider Integration\n- User impact: 可能影响授权、密钥配置或安全边界。\n- Suggested check: 来源问题仍为 open，Pack Agent 需要复核是否仍影响当前版本。\n- Guardrail action: 不得脱离来源链接放大为确定性结论；需要标注适用版本和复核状态。\n- Evidence: community_evidence:github | cevd_e1bb7e5c7c0a4dc2bea2a256ed74a0b0 | https://github.com/OpenBB-finance/OpenBB/issues/7177 | 来源讨论提到 api key 相关条件，需在安装/试用前复核。\n\n## 3. security_permissions · 来源证据：[FR] Signed audit receipts for MCP server tool calls (regulatory compliance)\n\n- Severity: high\n- Evidence strength: source_linked\n- Finding: GitHub 社区证据显示该项目存在一个安全/权限相关的待验证问题：[FR] Signed audit receipts for MCP server tool calls (regulatory compliance)\n- User impact: 可能影响授权、密钥配置或安全边界。\n- Suggested check: 来源问题仍为 open，Pack Agent 需要复核是否仍影响当前版本。\n- Guardrail action: 不得脱离来源链接放大为确定性结论；需要标注适用版本和复核状态。\n- Evidence: community_evidence:github | cevd_01ea12beef924e199679c6d2d1b91c73 | https://github.com/OpenBB-finance/OpenBB/issues/7455 | 来源讨论提到 npm 相关条件，需在安装/试用前复核。\n\n## 4. security_permissions · 涉及密钥、隐私或敏感领域\n\n- Severity: high\n- Evidence strength: source_linked\n- Finding: 项目文本出现 secret/private key/privacy/trading/finance 等敏感关键词。\n- User impact: 金融、交易、隐私和密钥场景必须比普通工具更保守。\n- Suggested check: 补敏感数据流、密钥存储和权限边界审查。\n- Guardrail action: 敏感领域或密钥场景必须保守推荐并要求人工复核。\n- Evidence: packet_text.keyword_scan | github_repo:323048702 | https://github.com/OpenBB-finance/OpenBB | matched secret / private key / privacy / trading / finance keyword\n\n## 5. installation · 失败模式：installation: OpenBB Platform v4.5.0\n\n- Severity: medium\n- Evidence strength: source_linked\n- Finding: Developers should check this installation risk before relying on the project: OpenBB Platform v4.5.0\n- User impact: Upgrade or migration may change expected behavior: OpenBB Platform v4.5.0\n- Suggested check: Before packaging this project, run the relevant install/config/quickstart check for: OpenBB Platform v4.5.0. Context: Observed when using python\n- Guardrail action: State this as source-backed community evidence, not as Doramagic reproduction.\n- Evidence: failure_mode_cluster:github_release | fmev_3acb4d0463ffb0d96b55088fc42477e1 | https://github.com/OpenBB-finance/OpenBB/releases/tag/v4.5.0 | OpenBB Platform v4.5.0\n\n## 6. installation · 失败模式：installation: OpenBB Platform v4.6.0\n\n- Severity: medium\n- Evidence strength: source_linked\n- Finding: Developers should check this installation risk before relying on the project: OpenBB Platform v4.6.0\n- User impact: Upgrade or migration may change expected behavior: OpenBB Platform v4.6.0\n- Suggested check: Before packaging this project, run the relevant install/config/quickstart check for: OpenBB Platform v4.6.0. Context: Observed when using python\n- Guardrail action: State this as source-backed community evidence, not as Doramagic reproduction.\n- Evidence: failure_mode_cluster:github_release | fmev_c32f0b655c075b88a71f35f893ae1f90 | https://github.com/OpenBB-finance/OpenBB/releases/tag/v4.6.0 | OpenBB Platform v4.6.0\n\n## 7. installation · 失败模式：installation: [Bug] Openbb 4.5.0 cannot import name 'OBBject_EquityInfo' from 'openbb_core.app.provider_int...\n\n- Severity: medium\n- Evidence strength: source_linked\n- Finding: Developers should check this installation risk before relying on the project: [Bug] Openbb 4.5.0 cannot import name 'OBBject_EquityInfo' from 'openbb_core.app.provider_interface'\n- User impact: Developers may fail before the first successful local run: [Bug] Openbb 4.5.0 cannot import name 'OBBject_EquityInfo' from 'openbb_core.app.provider_interface'\n- Suggested check: Before packaging this project, run the relevant install/config/quickstart check for: [Bug] Openbb 4.5.0 cannot import name 'OBBject_EquityInfo' from 'openbb_core.app.provider_interface'. Context: Observed when using python, docker\n- Guardrail action: State this as source-backed community evidence, not as Doramagic reproduction.\n- Evidence: failure_mode_cluster:github_issue | fmev_a7115ea0142ee2b52fad8606fc7d47ec | https://github.com/OpenBB-finance/OpenBB/issues/7279 | [Bug] Openbb 4.5.0 cannot import name 'OBBject_EquityInfo' from 'openbb_core.app.provider_interface'\n\n## 8. installation · 失败模式：installation: [Bug] PyWry WebView Fails to Launch on Ubuntu 24.04\n\n- Severity: medium\n- Evidence strength: source_linked\n- Finding: Developers should check this installation risk before relying on the project: [Bug] PyWry WebView Fails to Launch on Ubuntu 24.04\n- User impact: Developers may fail before the first successful local run: [Bug] PyWry WebView Fails to Launch on Ubuntu 24.04\n- Suggested check: Before packaging this project, run the relevant install/config/quickstart check for: [Bug] PyWry WebView Fails to Launch on Ubuntu 24.04. Context: Observed when using python, linux\n- Guardrail action: State this as source-backed community evidence, not as Doramagic reproduction.\n- Evidence: failure_mode_cluster:github_issue | fmev_c48a7161974013fd9895ea98894b35bd | https://github.com/OpenBB-finance/OpenBB/issues/7148 | [Bug] PyWry WebView Fails to Launch on Ubuntu 24.04\n\n## 9. installation · 失败模式：installation: [FR] Add Bank of Canada Valet API as a new provider extension\n\n- Severity: medium\n- Evidence strength: source_linked\n- Finding: Developers should check this installation risk before relying on the project: [FR] Add Bank of Canada Valet API as a new provider extension\n- User impact: Developers may fail before the first successful local run: [FR] Add Bank of Canada Valet API as a new provider extension\n- Suggested check: Before packaging this project, run the relevant install/config/quickstart check for: [FR] Add Bank of Canada Valet API as a new provider extension. Context: Observed when using python\n- Guardrail action: State this as source-backed community evidence, not as Doramagic reproduction.\n- Evidence: failure_mode_cluster:github_issue | fmev_3ee0b5efd611f4c6c49174e1a6ba1006 | https://github.com/OpenBB-finance/OpenBB/issues/7490 | [FR] Add Bank of Canada Valet API as a new provider extension\n\n## 10. installation · 来源证据：[Bug] PyWry WebView Fails to Launch on Ubuntu 24.04\n\n- Severity: medium\n- Evidence strength: source_linked\n- Finding: GitHub 社区证据显示该项目存在一个安装相关的待验证问题：[Bug] PyWry WebView Fails to Launch on Ubuntu 24.04\n- User impact: 可能阻塞安装或首次运行。\n- Suggested check: 来源显示可能已有修复、规避或版本变化，说明书中必须标注适用版本。\n- Guardrail action: 不得脱离来源链接放大为确定性结论；需要标注适用版本和复核状态。\n- Evidence: community_evidence:github | cevd_c068fa0d9cac4fb7b74d875b22d312d7 | https://github.com/OpenBB-finance/OpenBB/issues/7148 | 来源讨论提到 python 相关条件，需在安装/试用前复核。\n\n## 11. installation · 来源证据：[Bug] Widgets not saving their position and size after refresh\n\n- Severity: medium\n- Evidence strength: source_linked\n- Finding: GitHub 社区证据显示该项目存在一个安装相关的待验证问题：[Bug] Widgets not saving their position and size after refresh\n- User impact: 可能增加新用户试用和生产接入成本。\n- Suggested check: 来源显示可能已有修复、规避或版本变化，说明书中必须标注适用版本。\n- Guardrail action: 不得脱离来源链接放大为确定性结论；需要标注适用版本和复核状态。\n- Evidence: community_evidence:github | cevd_b7792ca1efe649c085e18a8a6be37d49 | https://github.com/OpenBB-finance/OpenBB/issues/7479 | 来源类型 github_issue 暴露的待验证使用条件。\n\n## 12. configuration · 失败模式：configuration: [FR] Add Real-time Cryptocurrency Data Provider Integration\n\n- Severity: medium\n- Evidence strength: source_linked\n- Finding: Developers should check this configuration risk before relying on the project: [FR] Add Real-time Cryptocurrency Data Provider Integration\n- User impact: Developers may misconfigure credentials, environment, or host setup: [FR] Add Real-time Cryptocurrency Data Provider Integration\n- Suggested check: Before packaging this project, run the relevant install/config/quickstart check for: [FR] Add Real-time Cryptocurrency Data Provider Integration. Context: Source discussion did not expose a precise runtime context.\n- Guardrail action: State this as source-backed community evidence, not as Doramagic reproduction.\n- Evidence: failure_mode_cluster:github_issue | fmev_45a17b16742dbd042ef1b9e8d373939d | https://github.com/OpenBB-finance/OpenBB/issues/7177 | [FR] Add Real-time Cryptocurrency Data Provider Integration\n\n## 13. configuration · 失败模式：configuration: [FR] Signed audit receipts for MCP server tool calls (regulatory compliance)\n\n- Severity: medium\n- Evidence strength: source_linked\n- Finding: Developers should check this configuration risk before relying on the project: [FR] Signed audit receipts for MCP server tool calls (regulatory compliance)\n- User impact: Developers may misconfigure credentials, environment, or host setup: [FR] Signed audit receipts for MCP server tool calls (regulatory compliance)\n- Suggested check: Before packaging this project, run the relevant install/config/quickstart check for: [FR] Signed audit receipts for MCP server tool calls (regulatory compliance). Context: Observed when using node\n- Guardrail action: State this as source-backed community evidence, not as Doramagic reproduction.\n- Evidence: failure_mode_cluster:github_issue | fmev_3b139ec9599d5d33e68020e4e802c7e6 | https://github.com/OpenBB-finance/OpenBB/issues/7455 | [FR] Signed audit receipts for MCP server tool calls (regulatory compliance), failure_mode_cluster:github_issue | fmev_cc0ef568cdbda130dfa0c7df4a8f4021 | https://github.com/OpenBB-finance/OpenBB/issues/7455 | [FR] Signed audit receipts for MCP server tool calls (regulatory compliance)\n\n## 14. capability · 能力判断依赖假设\n\n- Severity: medium\n- Evidence strength: source_linked\n- Finding: README/documentation is current enough for a first validation pass.\n- User impact: 假设不成立时，用户拿不到承诺的能力。\n- Suggested check: 将假设转成下游验证清单。\n- Guardrail action: 假设必须转成验证项；没有验证结果前不能写成事实。\n- Evidence: capability.assumptions | github_repo:323048702 | https://github.com/OpenBB-finance/OpenBB | README/documentation is current enough for a first validation pass.\n\n## 15. runtime · 来源证据：ODP Desktop v1.0.2\n\n- Severity: medium\n- Evidence strength: source_linked\n- Finding: GitHub 社区证据显示该项目存在一个运行相关的待验证问题：ODP Desktop v1.0.2\n- User impact: 可能增加新用户试用和生产接入成本。\n- Suggested check: 来源显示可能已有修复、规避或版本变化，说明书中必须标注适用版本。\n- Guardrail action: 不得脱离来源链接放大为确定性结论；需要标注适用版本和复核状态。\n- Evidence: community_evidence:github | cevd_cf07c5d467e44c168f2650a3c4404f46 | https://github.com/OpenBB-finance/OpenBB/releases/tag/Open-Data-Platform-v1.0.2 | 来源讨论提到 windows 相关条件，需在安装/试用前复核。\n\n## 16. maintenance · 失败模式：migration: OpenBB V4.7.0\n\n- Severity: medium\n- Evidence strength: source_linked\n- Finding: Developers should check this migration risk before relying on the project: OpenBB V4.7.0\n- User impact: Upgrade or migration may change expected behavior: OpenBB V4.7.0\n- Suggested check: Before packaging this project, run the relevant install/config/quickstart check for: OpenBB V4.7.0. Context: Observed when using python\n- Guardrail action: State this as source-backed community evidence, not as Doramagic reproduction.\n- Evidence: failure_mode_cluster:github_release | fmev_d2f3cd7047c12b8378dbba16461be269 | https://github.com/OpenBB-finance/OpenBB/releases/tag/v4.7.0 | OpenBB V4.7.0\n\n## 17. maintenance · 维护活跃度未知\n\n- Severity: medium\n- Evidence strength: source_linked\n- Finding: 未记录 last_activity_observed。\n- User impact: 新项目、停更项目和活跃项目会被混在一起，推荐信任度下降。\n- Suggested check: 补 GitHub 最近 commit、release、issue/PR 响应信号。\n- Guardrail action: 维护活跃度未知时，推荐强度不能标为高信任。\n- Evidence: evidence.maintainer_signals | github_repo:323048702 | https://github.com/OpenBB-finance/OpenBB | last_activity_observed missing\n\n## 18. security_permissions · 下游验证发现风险项\n\n- Severity: medium\n- Evidence strength: source_linked\n- Finding: no_demo\n- User impact: 下游已经要求复核，不能在页面中弱化。\n- Suggested check: 进入安全/权限治理复核队列。\n- Guardrail action: 下游风险存在时必须保持 review/recommendation 降级。\n- Evidence: downstream_validation.risk_items | github_repo:323048702 | https://github.com/OpenBB-finance/OpenBB | no_demo; severity=medium\n\n## 19. security_permissions · 存在评分风险\n\n- Severity: medium\n- Evidence strength: source_linked\n- Finding: no_demo\n- User impact: 风险会影响是否适合普通用户安装。\n- Suggested check: 把风险写入边界卡，并确认是否需要人工复核。\n- Guardrail action: 评分风险必须进入边界卡，不能只作为内部分数。\n- Evidence: risks.scoring_risks | github_repo:323048702 | https://github.com/OpenBB-finance/OpenBB | no_demo; severity=medium\n\n## 20. security_permissions · 来源证据：ODP Desktop v1.0.1\n\n- Severity: medium\n- Evidence strength: source_linked\n- Finding: GitHub 社区证据显示该项目存在一个安全/权限相关的待验证问题：ODP Desktop v1.0.1\n- User impact: 可能增加新用户试用和生产接入成本。\n- Suggested check: 来源显示可能已有修复、规避或版本变化，说明书中必须标注适用版本。\n- Guardrail action: 不得脱离来源链接放大为确定性结论；需要标注适用版本和复核状态。\n- Evidence: community_evidence:github | cevd_b5b0cf96b9b1456e8192a80e8c9fbcfd | https://github.com/OpenBB-finance/OpenBB/releases/tag/Open-Data-Platform-v1.0.1 | 来源讨论提到 windows 相关条件，需在安装/试用前复核。\n\n## 21. security_permissions · 来源证据：OpenBB Platform v4.5.0\n\n- Severity: medium\n- Evidence strength: source_linked\n- Finding: GitHub 社区证据显示该项目存在一个安全/权限相关的待验证问题：OpenBB Platform v4.5.0\n- User impact: 可能影响升级、迁移或版本选择。\n- Suggested check: 来源显示可能已有修复、规避或版本变化，说明书中必须标注适用版本。\n- Guardrail action: 不得脱离来源链接放大为确定性结论；需要标注适用版本和复核状态。\n- Evidence: community_evidence:github | cevd_ff4708f0690c485c9453a90b7b1f926a | https://github.com/OpenBB-finance/OpenBB/releases/tag/v4.5.0 | 来源讨论提到 python 相关条件，需在安装/试用前复核。\n\n## 22. security_permissions · 来源证据：OpenBB Platform v4.6.0\n\n- Severity: medium\n- Evidence strength: source_linked\n- Finding: GitHub 社区证据显示该项目存在一个安全/权限相关的待验证问题：OpenBB Platform v4.6.0\n- User impact: 可能影响升级、迁移或版本选择。\n- Suggested check: 来源显示可能已有修复、规避或版本变化，说明书中必须标注适用版本。\n- Guardrail action: 不得脱离来源链接放大为确定性结论；需要标注适用版本和复核状态。\n- Evidence: community_evidence:github | cevd_58ecf0b5c49441d7818b4f384f522024 | https://github.com/OpenBB-finance/OpenBB/releases/tag/v4.6.0 | 来源讨论提到 python 相关条件，需在安装/试用前复核。\n\n## 23. security_permissions · 来源证据：OpenBB V4.7.0\n\n- Severity: medium\n- Evidence strength: source_linked\n- Finding: GitHub 社区证据显示该项目存在一个安全/权限相关的待验证问题：OpenBB V4.7.0\n- User impact: 可能影响升级、迁移或版本选择。\n- Suggested check: 来源显示可能已有修复、规避或版本变化，说明书中必须标注适用版本。\n- Guardrail action: 不得脱离来源链接放大为确定性结论；需要标注适用版本和复核状态。\n- Evidence: community_evidence:github | cevd_487435c8c60a497092f647438af74f89 | https://github.com/OpenBB-finance/OpenBB/releases/tag/v4.7.0 | 来源讨论提到 python 相关条件，需在安装/试用前复核。\n\n## 24. security_permissions · 来源证据：[Bug] Openbb 4.5.0 cannot import name 'OBBject_EquityInfo' from 'openbb_core.app.provider_interface'\n\n- Severity: medium\n- Evidence strength: source_linked\n- Finding: GitHub 社区证据显示该项目存在一个安全/权限相关的待验证问题：[Bug] Openbb 4.5.0 cannot import name 'OBBject_EquityInfo' from 'openbb_core.app.provider_interface'\n- User impact: 可能影响授权、密钥配置或安全边界。\n- Suggested check: 来源显示可能已有修复、规避或版本变化，说明书中必须标注适用版本。\n- Guardrail action: 不得脱离来源链接放大为确定性结论；需要标注适用版本和复核状态。\n- Evidence: community_evidence:github | cevd_95461e0340ed4ee5a724d3d6966b0bcf | https://github.com/OpenBB-finance/OpenBB/issues/7279 | 来源讨论提到 python 相关条件，需在安装/试用前复核。\n\n## 25. capability · 失败模式：capability: [Bug] Widgets not saving their position and size after refresh\n\n- Severity: low\n- Evidence strength: source_linked\n- Finding: Developers should check this capability risk before relying on the project: [Bug] Widgets not saving their position and size after refresh\n- User impact: Developers may hit a documented source-backed failure mode: [Bug] Widgets not saving their position and size after refresh\n- Suggested check: Before packaging this project, run the relevant install/config/quickstart check for: [Bug] Widgets not saving their position and size after refresh. Context: Source discussion did not expose a precise runtime context.\n- Guardrail action: State this as source-backed community evidence, not as Doramagic reproduction.\n- Evidence: failure_mode_cluster:github_issue | fmev_033f4288382da3f950cd941ddba1d67b | https://github.com/OpenBB-finance/OpenBB/issues/7479 | [Bug] Widgets not saving their position and size after refresh\n\n## 26. runtime · 失败模式：performance: ODP Desktop v1.0.1\n\n- Severity: low\n- Evidence strength: source_linked\n- Finding: Developers should check this performance risk before relying on the project: ODP Desktop v1.0.1\n- User impact: Upgrade or migration may change expected behavior: ODP Desktop v1.0.1\n- Suggested check: Before packaging this project, run the relevant install/config/quickstart check for: ODP Desktop v1.0.1. Context: Observed when using windows, macos\n- Guardrail action: State this as source-backed community evidence, not as Doramagic reproduction.\n- Evidence: failure_mode_cluster:github_release | fmev_7f6699c43b69d6dddb40e92afc05c849 | https://github.com/OpenBB-finance/OpenBB/releases/tag/Open-Data-Platform-v1.0.1 | ODP Desktop v1.0.1\n\n## 27. maintenance · issue/PR 响应质量未知\n\n- Severity: low\n- Evidence strength: source_linked\n- Finding: issue_or_pr_quality=unknown。\n- User impact: 用户无法判断遇到问题后是否有人维护。\n- Suggested check: 抽样最近 issue/PR，判断是否长期无人处理。\n- Guardrail action: issue/PR 响应未知时，必须提示维护风险。\n- Evidence: evidence.maintainer_signals | github_repo:323048702 | https://github.com/OpenBB-finance/OpenBB | issue_or_pr_quality=unknown\n\n## 28. maintenance · 发布节奏不明确\n\n- Severity: low\n- Evidence strength: source_linked\n- Finding: release_recency=unknown。\n- User impact: 安装命令和文档可能落后于代码，用户踩坑概率升高。\n- Suggested check: 确认最近 release/tag 和 README 安装命令是否一致。\n- Guardrail action: 发布节奏未知或过期时，安装说明必须标注可能漂移。\n- Evidence: evidence.maintainer_signals | github_repo:323048702 | https://github.com/OpenBB-finance/OpenBB | release_recency=unknown\n\n## 29. maintenance · 失败模式：maintenance: ODP Desktop v1.0.2\n\n- Severity: low\n- Evidence strength: source_linked\n- Finding: Developers should check this maintenance risk before relying on the project: ODP Desktop v1.0.2\n- User impact: Upgrade or migration may change expected behavior: ODP Desktop v1.0.2\n- Suggested check: Before packaging this project, run the relevant install/config/quickstart check for: ODP Desktop v1.0.2. Context: Observed when using windows\n- Guardrail action: State this as source-backed community evidence, not as Doramagic reproduction.\n- Evidence: failure_mode_cluster:github_release | fmev_c611176eed42d564fe51eebbd73c3402 | https://github.com/OpenBB-finance/OpenBB/releases/tag/Open-Data-Platform-v1.0.2 | ODP Desktop v1.0.2\n",
      "summary": "Identity, installation, configuration, runtime, and safety pitfalls before user trial.",
      "title": "Pitfall Log"
    },
    "prompt_preview": {
      "asset_id": "prompt_preview",
      "filename": "PROMPT_PREVIEW.md",
      "markdown": "# OpenBB - 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 OpenBB-finance/OpenBB.\n\nProject:\n- Name: OpenBB\n- Repository: https://github.com/OpenBB-finance/OpenBB\n- Summary: Financial data platform for analysts, quants and AI agents.\n- Host target: local_cli\n\nGoal:\nHelp me evaluate this project for the following task without installing it yet: Financial data platform for analysts, quants and AI agents.\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. page-introduction: Introduction to OpenBB Platform. Produce one small intermediate artifact and wait for confirmation.\n2. page-installation: Installation Guide. Produce one small intermediate artifact and wait for confirmation.\n3. page-architecture: System Architecture. Produce one small intermediate artifact and wait for confirmation.\n4. page-core-concepts: Core Concepts. Produce one small intermediate artifact and wait for confirmation.\n5. page-obbject-system: OBBject System. Produce one small intermediate artifact and wait for confirmation.\n\nSource-backed evidence to keep in mind:\n- https://github.com/OpenBB-finance/OpenBB\n- https://github.com/OpenBB-finance/OpenBB#readme\n- openbb_platform/extensions/mcp_server/openbb_mcp_server/skills/build_workspace_app/SKILL.md\n- openbb_platform/extensions/mcp_server/openbb_mcp_server/skills/configure_mcp_server/SKILL.md\n- openbb_platform/extensions/mcp_server/openbb_mcp_server/skills/develop_extension/SKILL.md\n- openbb_platform/extensions/mcp_server/openbb_mcp_server/skills/work_with_server/SKILL.md\n- README.md\n- openbb_platform/README.md\n- openbb_platform/pyproject.toml\n- cli/pyproject.toml\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\nProject: OpenBB-finance/OpenBB\n\n## Official Entry Points\n\n### Python / pip · 官方安装入口\n\n```bash\npip install openbb\n```\n\nSource：https://github.com/OpenBB-finance/OpenBB#readme\n\n## Sources\n\n- repo: https://github.com/OpenBB-finance/OpenBB\n- docs: https://github.com/OpenBB-finance/OpenBB#readme\n",
      "summary": "Entry points extracted from official README or installation documentation.",
      "title": "Quick Start"
    }
  },
  "validation_id": "dval_967c28e63a4a4d4cac2093da0aab6a6b"
}
