候选插件搜索 API

用于查询公开 Registry 的 CandidateFacts,帮助本地 DSH Agent 与管理器独立理解与规划。

API 版本: v1匿名低频可用限流提示: 60 次 / 小时 / IP
POST/v1/candidates:search

请求

Headers

Content-Type: application/json

Body(JSON)

请求注意(安全边界)
请勿发送 Profile、文件路径、凭据、完整库存、对话转录或内部系统状态。

响应 200 OK

CandidateFacts(完整契约响应)

plugin_id
plugin.relay_dsh_plugin_codex
exact_release
0.2.1
install_ref
relay-dsh-plugin-codex@0.2.1
source
yangbobo2021
canonical_url
http://127.0.0.1:4173/plugins/relay-dsh-plugin-codex

通过 匹配事实(能力与约束)

matched_capabilities
conversation.codex
session.continue
model.reasoning_selection
tool.approval
absent_capabilities
[]
unknown_capabilities
[]
reason_codes
source.profile_match

通过 适配与证据

声明支持(发布者声明)
stable / next
观察状态(Registry 观察)
Stable未测试
NEXT未测试
Dev未测试
证据(TestRun)
source: not_tested
install: not_tested
boot: not_tested
smoke: not_tested
lifecycle: not_tested
composition: not_tested
permissions: not_tested
maintenance: not_tested
freshness: not_tested
observed_at
2026-09-03T10:02:34.210Z

部分通过 使用边界

prerequisites
本机已准备 Codex 认证,并运行受支持的 DSH Web Profile。
permissions
publisher.claim.1
limitations
本插件不提供 Relay Events、文件浏览或终端面板。
unknowns
/registry_observations/advisory
/test_evidence
advisory_state
unknown

控制元数据

publication_version
public.2026-09-03.5f40e5afda
schema_version
1.0.0
freshness
current
withdrawn
false
install_approval
false
查看完整 JSON 响应
{
  "schema_version": "1.0.0",
  "publication_version": "public.2026-09-03.5f40e5afda",
  "data_class": "public",
  "request_id": "request.search.00a734429c1d9aea",
  "generated_at": "2026-09-04T20:53:02.504Z",
  "candidates": [
    {
      "candidate_id": "candidate.relay-dsh-plugin-codex.0_2_1",
      "identity": {
        "authority": "control_metadata",
        "object_type": "plugin",
        "plugin_id": "plugin.relay_dsh_plugin_codex",
        "plugin_slug": "relay-dsh-plugin-codex",
        "display_name": "Codex Conversations for DSH",
        "release_id": "release.relay-dsh-plugin-codex.0_2_1",
        "release_version": "0.2.1",
        "install_ref": {
          "kind": "npm",
          "spec": "relay-dsh-plugin-codex@0.2.1",
          "immutable": true,
          "package_name": "relay-dsh-plugin-codex",
          "version": "0.2.1",
          "integrity": "sha512-3v5l0LK9me2ZLDlImLcLBKCEcOV68qQXOZQ0vMHiYW2l0zbtz5JTK/vsnyR52A+H8jw26QkfMNgz3iyYLS3Mdg=="
        },
        "artifact_id": "artifact.relay-dsh-plugin-codex.0_2_1.npm",
        "artifact_digest": "sha256:6413c4e9326da45541e609e53bffb78d34184a5c51fc53611dca4a3aeb3db67d",
        "source": {
          "repository_url": "https://github.com/yangbobo2021/relay-dsh-plugin-codex",
          "repository_owner": "yangbobo2021",
          "association_status": "confirmed",
          "association_evidence_refs": [
            "src_relay_dsh_plugin_codex_npm",
            "src_relay_dsh_plugin_codex_repository"
          ]
        },
        "canonical_url": "http://127.0.0.1:4173/plugins/relay-dsh-plugin-codex"
      },
      "match": {
        "authority": "registry_observations",
        "rank": 1,
        "reason_codes": [
          {
            "code": "source.profile_match",
            "summary": {
              "zh-CN": "该条目来自已关联 npm Release 与源码仓库的发布者资料。",
              "en": "This record comes from publisher material associated with an npm Release and source repository."
            },
            "field_refs": [
              "/publisher_content/problem",
              "/match/capabilities/matched"
            ],
            "evidence_refs": [
              "src_relay_dsh_plugin_codex_npm",
              "src_relay_dsh_plugin_codex_readme_en",
              "src_relay_dsh_plugin_codex_readme_zh"
            ]
          }
        ],
        "capabilities": {
          "matched": [
            {
              "id": "conversation.codex",
              "evidence_refs": [
                "claim_relay_dsh_plugin_codex_profile"
              ]
            },
            {
              "id": "session.continue",
              "evidence_refs": [
                "claim_relay_dsh_plugin_codex_profile"
              ]
            },
            {
              "id": "model.reasoning_selection",
              "evidence_refs": [
                "claim_relay_dsh_plugin_codex_profile"
              ]
            },
            {
              "id": "tool.approval",
              "evidence_refs": [
                "claim_relay_dsh_plugin_codex_profile"
              ]
            }
          ],
          "absent": [],
          "unknown": []
        }
      },
      "publisher_content": {
        "authority": "publisher_content",
        "trust": "untrusted_text",
        "profile_version": "profile.relay-dsh-plugin-codex.f52b34ceedee",
        "problem": {
          "zh-CN": "用户希望直接在 DSH 中使用 Codex,同时保留 DSH 的对话、审批和提问体验。",
          "en": "Users want to use Codex inside DSH while keeping DSH conversation, approval, and question flows."
        },
        "outcomes": [
          {
            "zh-CN": "每个 DSH Session 持续绑定一个 Codex App Server Thread。",
            "en": "Keep one Codex App Server Thread bound to each DSH Session."
          },
          {
            "zh-CN": "在原生 DSH 对话中使用模型选择、reasoning、图片、中断和工具。",
            "en": "Use model selection, reasoning, images, interruption, and tools in the native DSH conversation."
          }
        ],
        "operating_approach": {
          "zh-CN": "插件通过 Codex App Server 提供对话后端,并把工具执行保留在拥有该 Agent 的 DSH 工具运行时中。",
          "en": "The plugin provides a conversation backend through the Codex App Server while tool execution remains in the owning Agent's DSH tool runtime."
        },
        "prerequisites": [
          {
            "zh-CN": "本机已准备 Codex 认证,并运行受支持的 DSH Web Profile。",
            "en": "Codex authentication is prepared locally and a supported DSH Web Profile is running."
          }
        ],
        "required_services": [
          {
            "zh-CN": "需要可用的 Codex 账户与本地 Codex 运行环境。",
            "en": "An available Codex account and local Codex runtime are required."
          }
        ],
        "permissions_claimed": [
          {
            "zh-CN": "工具通过 DSH 工具运行时执行,并继续受 DSH 权限与 Codex 审批约束。",
            "en": "Tools execute through the DSH tool runtime and remain subject to DSH permissions and Codex approvals."
          }
        ],
        "limitations": [
          {
            "zh-CN": "本插件不提供 Relay Events、文件浏览或终端面板。",
            "en": "This plugin does not provide Relay Events, file browsing, or a terminal panel."
          }
        ],
        "non_fit_conditions": [
          {
            "zh-CN": "只使用 DSH 标准 Agent 时不需要安装。",
            "en": "It is not needed when only DSH standard agents are used."
          }
        ],
        "declared_compatibility": [
          {
            "claim_id": "claim.relay-dsh-plugin-codex.compatibility.1",
            "dsh_range": "0.1.1-rc.2 || 0.1.2-alpha.2 || 0.1.2-alpha.3",
            "channels": [
              "stable",
              "next"
            ],
            "source_ref": "claim_relay_dsh_plugin_codex_compatibility",
            "claimed_at": "2026-09-01T06:49:44.000Z"
          }
        ],
        "quick_start": [
          {
            "zh-CN": "安装并重启 DSH Web 后,新建 Codex 对话。",
            "en": "Install and restart DSH Web, then start a Codex conversation."
          }
        ],
        "readme_excerpt": {
          "zh-CN": "每个 DSH Session 持续绑定一个 Codex App Server Thread。",
          "en": "One persistent Codex App Server Thread per DSH Session."
        }
      },
      "registry_observations": {
        "authority": "registry_observations",
        "source_association": {
          "status": "confirmed",
          "method": "package_metadata",
          "evidence_refs": [
            "src_relay_dsh_plugin_codex_npm",
            "src_relay_dsh_plugin_codex_repository"
          ],
          "observed_at": "2026-09-03T10:02:34.210Z"
        },
        "prerequisites": [
          {
            "code": "publisher.claim.1",
            "status": "claimed_only",
            "evidence_refs": [
              "claim_relay_dsh_plugin_codex_profile"
            ]
          }
        ],
        "permissions": [
          {
            "code": "publisher.claim.1",
            "status": "claimed_only",
            "evidence_refs": [
              "claim_relay_dsh_plugin_codex_profile"
            ]
          }
        ],
        "risks": [],
        "advisory": {
          "state": "unknown",
          "maximum_severity": "unknown",
          "advisory_ids": []
        },
        "maintenance": {
          "state": "active",
          "observed_at": "2026-09-01T06:49:44.000Z",
          "source_refs": [
            "src_relay_dsh_plugin_codex_repository"
          ]
        },
        "unknowns": [
          {
            "field": "/registry_observations/advisory",
            "reason": "not_observed"
          },
          {
            "field": "/test_evidence",
            "reason": "not_observed"
          }
        ]
      },
      "test_evidence": {
        "authority": "test_evidence",
        "compatibility_observations": [
          {
            "channel": "stable",
            "status": "not_tested",
            "dsh_target": null,
            "environment": null,
            "testrun_ids": [],
            "observed_at": null
          },
          {
            "channel": "next",
            "status": "not_tested",
            "dsh_target": null,
            "environment": null,
            "testrun_ids": [],
            "observed_at": null
          },
          {
            "channel": "developer",
            "status": "not_tested",
            "dsh_target": null,
            "environment": null,
            "testrun_ids": [],
            "observed_at": null
          }
        ],
        "dimensions": [
          {
            "evidence_id": "evd_relay_dsh_plugin_codex_source",
            "dimension": "source",
            "status": "not_tested",
            "scope_summary": {
              "zh-CN": "当前公开数据没有该精确 Release 的 source TestRun。",
              "en": "The current public data has no source TestRun for this exact Release."
            },
            "tested_identity": null,
            "evidence_refs": [],
            "observed_at": null
          },
          {
            "evidence_id": "evd_relay_dsh_plugin_codex_install",
            "dimension": "install",
            "status": "not_tested",
            "scope_summary": {
              "zh-CN": "当前 TestRun 集合没有覆盖 install。",
              "en": "The current TestRun set does not cover install."
            },
            "tested_identity": null,
            "evidence_refs": [],
            "observed_at": null
          },
          {
            "evidence_id": "evd_relay_dsh_plugin_codex_boot",
            "dimension": "boot",
            "status": "not_tested",
            "scope_summary": {
              "zh-CN": "当前 TestRun 集合没有覆盖 boot。",
              "en": "The current TestRun set does not cover boot."
            },
            "tested_identity": null,
            "evidence_refs": [],
            "observed_at": null
          },
          {
            "evidence_id": "evd_relay_dsh_plugin_codex_smoke",
            "dimension": "smoke",
            "status": "not_tested",
            "scope_summary": {
              "zh-CN": "当前 TestRun 集合没有覆盖 smoke。",
              "en": "The current TestRun set does not cover smoke."
            },
            "tested_identity": null,
            "evidence_refs": [],
            "observed_at": null
          },
          {
            "evidence_id": "evd_relay_dsh_plugin_codex_lifecycle",
            "dimension": "lifecycle",
            "status": "not_tested",
            "scope_summary": {
              "zh-CN": "当前 TestRun 集合没有覆盖 lifecycle。",
              "en": "The current TestRun set does not cover lifecycle."
            },
            "tested_identity": null,
            "evidence_refs": [],
            "observed_at": null
          },
          {
            "evidence_id": "evd_relay_dsh_plugin_codex_composition",
            "dimension": "composition",
            "status": "not_tested",
            "scope_summary": {
              "zh-CN": "当前 TestRun 集合没有覆盖 composition。",
              "en": "The current TestRun set does not cover composition."
            },
            "tested_identity": null,
            "evidence_refs": [],
            "observed_at": null
          },
          {
            "evidence_id": "evd_relay_dsh_plugin_codex_permissions",
            "dimension": "permissions",
            "status": "not_tested",
            "scope_summary": {
              "zh-CN": "当前 TestRun 集合没有覆盖 permissions。",
              "en": "The current TestRun set does not cover permissions."
            },
            "tested_identity": null,
            "evidence_refs": [],
            "observed_at": null
          },
          {
            "evidence_id": "evd_relay_dsh_plugin_codex_maintenance",
            "dimension": "maintenance",
            "status": "not_tested",
            "scope_summary": {
              "zh-CN": "当前公开数据没有该精确 Release 的 maintenance TestRun。",
              "en": "The current public data has no maintenance TestRun for this exact Release."
            },
            "tested_identity": null,
            "evidence_refs": [],
            "observed_at": null
          },
          {
            "evidence_id": "evd_relay_dsh_plugin_codex_freshness",
            "dimension": "freshness",
            "status": "not_tested",
            "scope_summary": {
              "zh-CN": "当前公开数据没有该精确 Release 的 freshness TestRun。",
              "en": "The current public data has no freshness TestRun for this exact Release."
            },
            "tested_identity": null,
            "evidence_refs": [],
            "observed_at": null
          }
        ]
      },
      "control_metadata": {
        "authority": "control_metadata",
        "schema_version": "1.0.0",
        "publication_version": "public.2026-09-03.5f40e5afda",
        "data_class": "public",
        "freshness": {
          "status": "current",
          "as_of": "2026-09-03T10:02:34.210Z",
          "expires_at": "2026-09-10T10:02:34.210Z",
          "source_last_success_at": "2026-09-03T10:02:34.210Z"
        },
        "availability": "available",
        "withdrawn": false,
        "withdrawal_reason": null,
        "is_final_recommendation": false,
        "grants_install_approval": false
      }
    }
  ],
  "page": {
    "limit": 10,
    "returned": 1,
    "next_cursor": null
  },
  "provider_failures": [],
  "is_final_recommendation": false,
  "grants_install_approval": false
}
发布者内容:不可信文本Registry 观察测试证据控制元数据
本 API 只返回事实,不返回安装批准DSH Agent 理解任务管理器读取本地事实Registry 返回 CandidateFacts管理器本地 inspect / plan / confirm / execute