mirror of
https://github.com/openclaw/openclaw.git
synced 2026-06-22 20:38:10 +00:00
Summary: - Add a shared live provider catalog runtime for SDK-backed providers. - Route OpenAI, xAI, OpenCode Go, Chutes, DeepInfra, Venice, NVIDIA, and Vercel AI Gateway live model discovery through the shared helper. - Remove duplicated provider-local live catalog caching and harden auth marker stripping, empty live-result retries, and OpenAI custom-base-url handling. Verification: - node scripts/run-vitest.mjs extensions/openai/openai-provider.test.ts src/plugin-sdk/provider-catalog-live-runtime.test.ts src/commands/models/list.source-plan.test.ts extensions/opencode-go/index.test.ts extensions/nvidia/provider-catalog.test.ts - pnpm plugin-sdk:api:check - pnpm lint --threads=8 - pnpm run lint:extensions:bundled - pnpm run test:extensions:package-boundary:compile - pnpm check:import-cycles - pnpm exec oxfmt --check extensions/openai/openai-provider.ts extensions/openai/openai-provider.test.ts - git diff --check origin/main...HEAD - autoreview clean: no accepted/actionable findings reported - AWS Crabbox focused remote proof: run_364680d1bff8 / cbx_2456fffafe01 - Earlier same-PR AWS Crabbox live proof: run_1f05ccab368e / cbx_7375c79fcf9b Known proof gap: - Final current-code true live-provider smoke was blocked by Crabbox secret hydration, documented in the PR proof comment.
145 lines
2.8 KiB
TypeScript
145 lines
2.8 KiB
TypeScript
// Plugin Sdk Doc Metadata script supports OpenClaw repository automation.
|
|
export type PluginSdkDocCategory =
|
|
| "channel"
|
|
| "core"
|
|
| "legacy"
|
|
| "provider"
|
|
| "runtime"
|
|
| "utilities";
|
|
|
|
type PluginSdkDocMetadata = {
|
|
category: PluginSdkDocCategory;
|
|
};
|
|
|
|
export const pluginSdkDocMetadata = {
|
|
index: {
|
|
category: "legacy",
|
|
},
|
|
core: {
|
|
category: "core",
|
|
},
|
|
health: {
|
|
category: "core",
|
|
},
|
|
"approval-runtime": {
|
|
category: "runtime",
|
|
},
|
|
"approval-auth-runtime": {
|
|
category: "runtime",
|
|
},
|
|
"approval-client-runtime": {
|
|
category: "runtime",
|
|
},
|
|
"approval-delivery-runtime": {
|
|
category: "runtime",
|
|
},
|
|
"approval-native-runtime": {
|
|
category: "runtime",
|
|
},
|
|
"approval-reaction-runtime": {
|
|
category: "runtime",
|
|
},
|
|
"approval-reply-runtime": {
|
|
category: "runtime",
|
|
},
|
|
"plugin-entry": {
|
|
category: "core",
|
|
},
|
|
"access-groups": {
|
|
category: "channel",
|
|
},
|
|
"channel-actions": {
|
|
category: "channel",
|
|
},
|
|
"channel-config-schema": {
|
|
category: "channel",
|
|
},
|
|
"channel-config-schema-legacy": {
|
|
category: "channel",
|
|
},
|
|
"chat-channel-ids": {
|
|
category: "channel",
|
|
},
|
|
"channel-contract": {
|
|
category: "channel",
|
|
},
|
|
"channel-pairing": {
|
|
category: "channel",
|
|
},
|
|
"channel-ingress": {
|
|
category: "channel",
|
|
},
|
|
"channel-ingress-runtime": {
|
|
category: "channel",
|
|
},
|
|
"channel-reply-pipeline": {
|
|
category: "channel",
|
|
},
|
|
"channel-setup": {
|
|
category: "channel",
|
|
},
|
|
"command-auth": {
|
|
category: "channel",
|
|
},
|
|
zalouser: {
|
|
category: "channel",
|
|
},
|
|
"command-status": {
|
|
category: "channel",
|
|
},
|
|
"command-status-runtime": {
|
|
category: "runtime",
|
|
},
|
|
"secret-input": {
|
|
category: "channel",
|
|
},
|
|
"webhook-ingress": {
|
|
category: "channel",
|
|
},
|
|
"provider-onboard": {
|
|
category: "provider",
|
|
},
|
|
"provider-oauth-runtime": {
|
|
category: "provider",
|
|
},
|
|
"provider-selection-runtime": {
|
|
category: "provider",
|
|
},
|
|
"provider-catalog-live-runtime": {
|
|
category: "provider",
|
|
},
|
|
"runtime-store": {
|
|
category: "runtime",
|
|
},
|
|
"qa-live-transport-scenarios": {
|
|
category: "utilities",
|
|
},
|
|
"agent-runtime": {
|
|
category: "runtime",
|
|
},
|
|
"speech-core": {
|
|
category: "provider",
|
|
},
|
|
"realtime-voice": {
|
|
category: "provider",
|
|
},
|
|
"tts-runtime": {
|
|
category: "runtime",
|
|
},
|
|
"inline-image-data-url-runtime": {
|
|
category: "runtime",
|
|
},
|
|
"allow-from": {
|
|
category: "utilities",
|
|
},
|
|
"reply-payload": {
|
|
category: "utilities",
|
|
},
|
|
} as const satisfies Record<string, PluginSdkDocMetadata>;
|
|
|
|
export type PluginSdkDocEntrypoint = keyof typeof pluginSdkDocMetadata;
|
|
|
|
export function resolvePluginSdkDocImportSpecifier(entrypoint: PluginSdkDocEntrypoint): string {
|
|
return entrypoint === "index" ? "openclaw/plugin-sdk" : `openclaw/plugin-sdk/${entrypoint}`;
|
|
}
|