Files
openclaw/extensions/meta/index.ts
2026-07-09 12:11:56 -07:00

48 lines
1.5 KiB
TypeScript

/**
* Meta provider plugin entrypoint.
*/
import { defineSingleProviderPluginEntry } from "openclaw/plugin-sdk/provider-entry";
import { OPENAI_COMPATIBLE_REPLAY_HOOKS } from "openclaw/plugin-sdk/provider-model-shared";
import { applyMetaConfig, META_DEFAULT_MODEL_REF } from "./onboard.js";
import { buildMetaProvider } from "./provider-catalog.js";
import { wrapMetaProviderStream } from "./stream.js";
import { resolveMetaThinkingProfile } from "./thinking.js";
const PROVIDER_ID = "meta";
export default defineSingleProviderPluginEntry({
id: PROVIDER_ID,
name: "Meta Provider",
description: "Bundled Meta provider plugin",
provider: {
label: "Meta",
docsPath: "/providers/meta",
auth: [
{
methodId: "api-key",
label: "Meta API key",
hint: "Meta (Responses API)",
optionKey: "metaApiKey",
flagName: "--meta-api-key",
envVar: "MODEL_API_KEY",
promptMessage: "Enter Meta API key",
defaultModel: META_DEFAULT_MODEL_REF,
applyConfig: (cfg) => applyMetaConfig(cfg),
noteMessage: ["Meta provides Responses API inference."].join("\n"),
noteTitle: "Meta",
wizard: {
groupLabel: "Meta",
groupHint: "Meta (Responses API)",
},
},
],
catalog: {
buildProvider: buildMetaProvider,
buildStaticProvider: buildMetaProvider,
},
...OPENAI_COMPATIBLE_REPLAY_HOOKS,
wrapStreamFn: wrapMetaProviderStream,
resolveThinkingProfile: ({ modelId }) => resolveMetaThinkingProfile(modelId),
},
});