@openclaw/meta-provider 2026.7.2-beta.5 → 2026.8.1-beta.2

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
package/README.md CHANGED
@@ -1,20 +1,49 @@
1
1
  # Meta provider
2
2
 
3
- Bundled OpenClaw provider plugin for the **Meta API** — an OpenAI-compatible
3
+ Official OpenClaw provider plugin for the **Meta API** — an OpenAI-compatible
4
4
  **Responses API** endpoint (`POST /v1/responses`).
5
5
 
6
6
  - **Base URL:** `https://api.meta.ai/v1`
7
7
  - **Auth:** `Authorization: Bearer $MODEL_API_KEY`
8
- - **Model:** `muse-spark-1.1` (reasoning model)
8
+ - **Models:** `muse-spark-1.1`, `muse-spark-1.2`, `muse-spark-1.2-contributor` (reasoning models)
9
9
  - Context window: 1,048,576 tokens (input + output share the budget)
10
- - Maximum output: 131,072 tokens
11
- - Reasoning effort: `minimal | low | medium | high | xhigh` (default: `high`)
10
+ - Reasoning effort: `minimal | low | medium | high | xhigh` (OpenClaw default: `high`)
12
11
  - Vision: image input in `user` messages
13
12
  - Tool calling + streaming
14
13
  - Stateless encrypted reasoning replay (`store: false`)
15
14
 
15
+ > [!WARNING]
16
+ > Meta's [pricing documentation](https://dev.meta.ai/docs/pricing-rate-limits/) and
17
+ > [Terms of Service](https://dev.meta.ai/legal/terms-of-service) distinguish Standard
18
+ > Services from Contributor/Discounted Services:
19
+ >
20
+ > - Standard Services are the default. Meta says prompts and completions submitted to
21
+ > Standard Services are not used to train Meta models.
22
+ > - By using Contributor/Discounted Services, you permit Meta to use Content submitted
23
+ > to and generated by those services as described in the Terms. Under the Terms, use
24
+ > of Discounted Services acknowledges that permission. You must not submit sensitive,
25
+ > confidential, or personal information to the Discounted Services.
26
+ >
27
+ > Meta's [Geographic Use Policy](https://dev.meta.ai/legal/geographic-use-policy)
28
+ > governs availability. It limits API access in some jurisdictions and adds end-user
29
+ > deployment restrictions for products built with the Contributor/Discounted model;
30
+ > those additional restrictions do not apply to your own use or products built with
31
+ > Standard Services.
32
+
33
+ Meta's [model catalog](https://dev.meta.ai/docs/models) lists text, image, video,
34
+ audio, and PDF input for these models. OpenClaw's model catalog directly represents
35
+ text and image input only; the other upstream modalities are not model-manifest input
36
+ values. Meta does not publish an exact maximum-output figure for these catalog rows.
37
+
16
38
  ## Usage
17
39
 
40
+ Install the plugin and restart Gateway:
41
+
42
+ ```bash
43
+ openclaw plugins install @openclaw/meta-provider
44
+ openclaw gateway restart
45
+ ```
46
+
18
47
  Set the API key and select the model:
19
48
 
20
49
  ```bash
@@ -37,7 +66,10 @@ Or run onboarding and choose **Meta**.
37
66
  ## Thinking / reasoning
38
67
 
39
68
  `--thinking <level>` and `/think <level>` map to Responses API `reasoning.effort`.
40
- Default thinking level is `high`. `off` maps to `minimal` because Muse Spark does
69
+ OpenClaw defaults to `high`. Meta's
70
+ [reasoning documentation](https://dev.meta.ai/docs/reasoning/) says that an
71
+ omitted effort uses a model-determined level, so `high` is an OpenClaw policy rather
72
+ than Meta's omitted-parameter default. `off` maps to `minimal` because Muse Spark does
41
73
  not accept `none`.
42
74
 
43
75
  ## Docs
@@ -51,4 +83,4 @@ export MODEL_API_KEY=<key>
51
83
  pnpm test:live -- extensions/meta/meta.live.test.ts
52
84
  ```
53
85
 
54
- Live tests call `muse-spark-1.1` on `/v1/responses`.
86
+ The live suite exercises enabled Meta cases against `POST /v1/responses`.
package/dist/api.js CHANGED
@@ -1,4 +1,4 @@
1
- import { n as META_MODEL_CATALOG, r as buildMetaCatalogModels, t as META_BASE_URL } from "./models-BHj_98-y.js";
1
+ import { META_BASE_URL, META_MODEL_CATALOG, buildMetaCatalogModels } from "./models.js";
2
2
  import { META_DEFAULT_MODEL_REF, applyMetaConfig } from "./onboard.js";
3
3
  import { buildMetaProvider } from "./provider-catalog.js";
4
4
  export { META_BASE_URL, META_DEFAULT_MODEL_REF, META_MODEL_CATALOG, applyMetaConfig, buildMetaCatalogModels, buildMetaProvider };
package/dist/index.js CHANGED
@@ -1,4 +1,4 @@
1
- import { i as openclaw_plugin_default } from "./models-BHj_98-y.js";
1
+ import { t as openclaw_plugin_default } from "./openclaw.plugin-Drxs3Dwe.js";
2
2
  import { applyMetaConfig } from "./onboard.js";
3
3
  import { buildMetaProvider } from "./provider-catalog.js";
4
4
  import { wrapMetaProviderStream } from "./stream.js";
@@ -8,7 +8,7 @@ import { buildProviderReplayFamilyHooks } from "openclaw/plugin-sdk/provider-mod
8
8
  var meta_default = defineSingleProviderPluginEntry({
9
9
  id: "meta",
10
10
  name: "Meta Provider",
11
- description: "Bundled Meta provider plugin",
11
+ description: "Meta provider plugin",
12
12
  manifest: openclaw_plugin_default,
13
13
  provider: {
14
14
  label: "Meta",
@@ -24,8 +24,9 @@ var meta_default = defineSingleProviderPluginEntry({
24
24
  liveModelDiscovery: true
25
25
  },
26
26
  ...buildProviderReplayFamilyHooks({ family: "openai-compatible" }),
27
+ wrapSimpleCompletionStreamFn: wrapMetaProviderStream,
27
28
  wrapStreamFn: wrapMetaProviderStream,
28
- resolveThinkingProfile: ({ modelId }) => resolveMetaThinkingProfile(modelId)
29
+ resolveThinkingProfile: resolveMetaThinkingProfile
29
30
  }
30
31
  });
31
32
  //#endregion
package/dist/models.js CHANGED
@@ -1,2 +1,20 @@
1
- import { n as META_MODEL_CATALOG, r as buildMetaCatalogModels, t as META_BASE_URL } from "./models-BHj_98-y.js";
1
+ import { t as openclaw_plugin_default } from "./openclaw.plugin-Drxs3Dwe.js";
2
+ import { buildManifestModelDefinition } from "openclaw/plugin-sdk/provider-catalog-shared";
3
+ //#region extensions/meta/models.ts
4
+ /**
5
+ * Meta model catalog helpers derived from the plugin manifest.
6
+ */
7
+ const META_MANIFEST_CATALOG = openclaw_plugin_default.modelCatalog.providers["meta"];
8
+ /** Base URL for Meta OpenAI-compatible inference. */
9
+ const META_BASE_URL = META_MANIFEST_CATALOG.baseUrl;
10
+ /** Meta model catalog entries from the plugin manifest. */
11
+ const META_MODEL_CATALOG = META_MANIFEST_CATALOG.models;
12
+ /** Builds normalized Meta catalog model definitions. */
13
+ function buildMetaCatalogModels() {
14
+ return META_MODEL_CATALOG.map(buildManifestModelDefinition({
15
+ providerId: "meta",
16
+ catalog: META_MANIFEST_CATALOG
17
+ }));
18
+ }
19
+ //#endregion
2
20
  export { META_BASE_URL, META_MODEL_CATALOG, buildMetaCatalogModels };
package/dist/onboard.js CHANGED
@@ -1,4 +1,5 @@
1
- import { i as openclaw_plugin_default, r as buildMetaCatalogModels, t as META_BASE_URL } from "./models-BHj_98-y.js";
1
+ import { t as openclaw_plugin_default } from "./openclaw.plugin-Drxs3Dwe.js";
2
+ import { META_BASE_URL, buildMetaCatalogModels } from "./models.js";
2
3
  import { readManifestProviderDefaultModelRef } from "openclaw/plugin-sdk/provider-catalog-shared";
3
4
  import { createModelCatalogPresetAppliers } from "openclaw/plugin-sdk/provider-onboard";
4
5
  //#region extensions/meta/onboard.ts
@@ -7,9 +8,10 @@ import { createModelCatalogPresetAppliers } from "openclaw/plugin-sdk/provider-o
7
8
  */
8
9
  /** Default Meta model reference used after onboarding. */
9
10
  const META_DEFAULT_MODEL_REF = readManifestProviderDefaultModelRef(openclaw_plugin_default, "meta");
10
- const metaPresetAppliers = createModelCatalogPresetAppliers({
11
+ /** Applies Meta provider/catalog config and default model aliases. */
12
+ const { applyConfig: applyMetaConfig } = createModelCatalogPresetAppliers({
11
13
  primaryModelRef: META_DEFAULT_MODEL_REF,
12
- resolveParams: (_cfg) => ({
14
+ resolveParams: () => ({
13
15
  providerId: "meta",
14
16
  api: "openai-responses",
15
17
  baseUrl: META_BASE_URL,
@@ -20,9 +22,5 @@ const metaPresetAppliers = createModelCatalogPresetAppliers({
20
22
  }]
21
23
  })
22
24
  });
23
- /** Applies Meta provider/catalog config and default model aliases. */
24
- function applyMetaConfig(cfg) {
25
- return metaPresetAppliers.applyConfig(cfg);
26
- }
27
25
  //#endregion
28
26
  export { META_DEFAULT_MODEL_REF, applyMetaConfig };
@@ -0,0 +1,149 @@
1
+ //#region extensions/meta/openclaw.plugin.json
2
+ var openclaw_plugin_default = {
3
+ id: "meta",
4
+ activation: { "onStartup": false },
5
+ enabledByDefault: true,
6
+ providers: ["meta"],
7
+ providerEndpoints: [{
8
+ "endpointClass": "meta-native",
9
+ "hosts": ["api.meta.ai"]
10
+ }],
11
+ providerRequest: { "providers": { "meta": { "family": "meta" } } },
12
+ modelCatalog: {
13
+ "providers": { "meta": {
14
+ "baseUrl": "https://api.meta.ai/v1",
15
+ "api": "openai-responses",
16
+ "defaultModel": "muse-spark-1.1",
17
+ "models": [
18
+ {
19
+ "id": "muse-spark-1.1",
20
+ "name": "Muse Spark 1.1",
21
+ "reasoning": true,
22
+ "input": ["text", "image"],
23
+ "contextWindow": 1048576,
24
+ "maxTokens": 131072,
25
+ "thinkingLevelMap": {
26
+ "off": "minimal",
27
+ "minimal": "minimal",
28
+ "low": "low",
29
+ "medium": "medium",
30
+ "high": "high",
31
+ "xhigh": "xhigh"
32
+ },
33
+ "compat": {
34
+ "supportsTools": true,
35
+ "supportsReasoningEffort": true,
36
+ "supportedReasoningEfforts": [
37
+ "minimal",
38
+ "low",
39
+ "medium",
40
+ "high",
41
+ "xhigh"
42
+ ]
43
+ },
44
+ "cost": {
45
+ "input": 1.25,
46
+ "output": 4.25,
47
+ "cacheRead": .15,
48
+ "cacheWrite": 0
49
+ }
50
+ },
51
+ {
52
+ "id": "muse-spark-1.2",
53
+ "name": "Muse Spark 1.2",
54
+ "reasoning": true,
55
+ "input": ["text", "image"],
56
+ "contextWindow": 1048576,
57
+ "maxTokens": 131072,
58
+ "thinkingLevelMap": {
59
+ "off": "minimal",
60
+ "minimal": "minimal",
61
+ "low": "low",
62
+ "medium": "medium",
63
+ "high": "high",
64
+ "xhigh": "xhigh"
65
+ },
66
+ "compat": {
67
+ "supportsTools": true,
68
+ "supportsReasoningEffort": true,
69
+ "supportedReasoningEfforts": [
70
+ "minimal",
71
+ "low",
72
+ "medium",
73
+ "high",
74
+ "xhigh"
75
+ ]
76
+ },
77
+ "cost": {
78
+ "input": 1.25,
79
+ "output": 4.25,
80
+ "cacheRead": .15,
81
+ "cacheWrite": 0
82
+ }
83
+ },
84
+ {
85
+ "id": "muse-spark-1.2-contributor",
86
+ "name": "Muse Spark 1.2 Contributor",
87
+ "reasoning": true,
88
+ "input": ["text", "image"],
89
+ "contextWindow": 1048576,
90
+ "maxTokens": 131072,
91
+ "thinkingLevelMap": {
92
+ "off": "minimal",
93
+ "minimal": "minimal",
94
+ "low": "low",
95
+ "medium": "medium",
96
+ "high": "high",
97
+ "xhigh": "xhigh"
98
+ },
99
+ "compat": {
100
+ "supportsTools": true,
101
+ "supportsReasoningEffort": true,
102
+ "supportedReasoningEfforts": [
103
+ "minimal",
104
+ "low",
105
+ "medium",
106
+ "high",
107
+ "xhigh"
108
+ ]
109
+ },
110
+ "cost": {
111
+ "input": .1,
112
+ "output": .2,
113
+ "cacheRead": .002,
114
+ "cacheWrite": 0
115
+ }
116
+ }
117
+ ]
118
+ } },
119
+ "discovery": { "meta": "refreshable" }
120
+ },
121
+ setup: { "providers": [{
122
+ "id": "meta",
123
+ "authMethods": ["api-key"],
124
+ "envVars": ["MODEL_API_KEY"]
125
+ }] },
126
+ providerAuthChoices: [{
127
+ "provider": "meta",
128
+ "method": "api-key",
129
+ "choiceId": "meta-api-key",
130
+ "appGuidedSecret": true,
131
+ "choiceLabel": "Meta API key",
132
+ "choiceHint": "Meta (Responses API)",
133
+ "groupId": "meta",
134
+ "groupLabel": "Meta",
135
+ "groupHint": "Meta (Responses API)",
136
+ "onboardingFeatured": true,
137
+ "optionKey": "metaApiKey",
138
+ "cliFlag": "--meta-api-key",
139
+ "cliOption": "--meta-api-key <key>",
140
+ "cliDescription": "Meta API key"
141
+ }],
142
+ configSchema: {
143
+ "type": "object",
144
+ "additionalProperties": false,
145
+ "properties": {}
146
+ }
147
+ };
148
+ //#endregion
149
+ export { openclaw_plugin_default as t };
@@ -1,12 +1,15 @@
1
- import { r as buildMetaCatalogModels, t as META_BASE_URL } from "./models-BHj_98-y.js";
1
+ import { t as openclaw_plugin_default } from "./openclaw.plugin-Drxs3Dwe.js";
2
+ import { buildManifestModelProviderConfig } from "openclaw/plugin-sdk/provider-catalog-shared";
2
3
  //#region extensions/meta/provider-catalog.ts
4
+ /**
5
+ * Meta model provider builder.
6
+ */
3
7
  /** Builds the Meta OpenAI-compatible model provider config. */
4
8
  function buildMetaProvider() {
5
- return {
6
- baseUrl: META_BASE_URL,
7
- api: "openai-responses",
8
- models: buildMetaCatalogModels()
9
- };
9
+ return buildManifestModelProviderConfig({
10
+ providerId: "meta",
11
+ catalog: openclaw_plugin_default.modelCatalog.providers.meta
12
+ });
10
13
  }
11
14
  //#endregion
12
15
  export { buildMetaProvider };
package/dist/stream.js CHANGED
@@ -1,25 +1,18 @@
1
- import { streamSimple } from "openclaw/plugin-sdk/llm";
2
- import { streamWithPayloadPatch } from "openclaw/plugin-sdk/provider-stream-shared";
1
+ import { createPayloadPatchStreamWrapper } from "openclaw/plugin-sdk/provider-stream-shared";
2
+ import { filterStringEntries } from "openclaw/plugin-sdk/string-coerce-runtime";
3
3
  //#region extensions/meta/stream.ts
4
4
  const META_REASONING_ENCRYPTED_CONTENT_INCLUDE = "reasoning.encrypted_content";
5
- function ensureMetaResponsesReplayFields(payloadObj) {
6
- const existing = payloadObj.include;
7
- const include = Array.isArray(existing) ? existing.filter((entry) => typeof entry === "string") : [];
8
- if (!include.includes(META_REASONING_ENCRYPTED_CONTENT_INCLUDE)) include.push(META_REASONING_ENCRYPTED_CONTENT_INCLUDE);
9
- payloadObj.include = include;
10
- payloadObj.store = false;
11
- }
12
- function createMetaResponsesWrapper(baseStreamFn) {
13
- const underlying = baseStreamFn ?? streamSimple;
14
- return (model, context, options) => streamWithPayloadPatch(underlying, model, context, options, (payloadObj) => {
15
- if (model.provider !== "meta" || model.api !== "openai-responses") return;
5
+ function wrapMetaProviderStream(ctx) {
6
+ if (ctx.provider !== "meta" || (ctx.sourceApi ?? ctx.model?.api) !== "openai-responses") return;
7
+ return createPayloadPatchStreamWrapper(ctx.streamFn, ({ payload, model, options }) => {
8
+ if (model.provider !== "meta") return;
9
+ if (options?.maxTokens === 0 && payload.max_output_tokens === void 0) payload.max_output_tokens = model.maxTokens;
16
10
  if (!model.reasoning) return;
17
- ensureMetaResponsesReplayFields(payloadObj);
11
+ const include = filterStringEntries(payload.include);
12
+ if (!include.includes(META_REASONING_ENCRYPTED_CONTENT_INCLUDE)) include.push(META_REASONING_ENCRYPTED_CONTENT_INCLUDE);
13
+ payload.include = include;
14
+ payload.store = false;
18
15
  });
19
16
  }
20
- function wrapMetaProviderStream(ctx) {
21
- if (ctx.provider !== "meta" || ctx.model?.api !== "openai-responses") return;
22
- return createMetaResponsesWrapper(ctx.streamFn);
23
- }
24
17
  //#endregion
25
18
  export { wrapMetaProviderStream };
package/dist/thinking.js CHANGED
@@ -1,8 +1,6 @@
1
+ import { META_MODEL_CATALOG } from "./models.js";
1
2
  //#region extensions/meta/thinking.ts
2
- const META_REASONING_MODEL_ID = "muse-spark-1.1";
3
- function isMetaReasoningModelId(modelId) {
4
- return modelId.toLowerCase() === META_REASONING_MODEL_ID;
5
- }
3
+ const META_REASONING_MODEL_IDS = new Set(META_MODEL_CATALOG.filter((model) => model.reasoning).map((model) => model.id.toLowerCase()));
6
4
  const META_THINKING_PROFILE = {
7
5
  levels: [
8
6
  "off",
@@ -14,8 +12,8 @@ const META_THINKING_PROFILE = {
14
12
  ].map((id) => ({ id })),
15
13
  defaultLevel: "high"
16
14
  };
17
- function resolveMetaThinkingProfile(modelId) {
18
- return isMetaReasoningModelId(modelId) ? META_THINKING_PROFILE : void 0;
15
+ function resolveMetaThinkingProfile(context) {
16
+ return context.reasoning ?? META_REASONING_MODEL_IDS.has(context.modelId.toLowerCase()) ? META_THINKING_PROFILE : void 0;
19
17
  }
20
18
  //#endregion
21
19
  export { resolveMetaThinkingProfile };
@@ -64,6 +64,78 @@
64
64
  "cacheRead": 0.15,
65
65
  "cacheWrite": 0
66
66
  }
67
+ },
68
+ {
69
+ "id": "muse-spark-1.2",
70
+ "name": "Muse Spark 1.2",
71
+ "reasoning": true,
72
+ "input": [
73
+ "text",
74
+ "image"
75
+ ],
76
+ "contextWindow": 1048576,
77
+ "maxTokens": 131072,
78
+ "thinkingLevelMap": {
79
+ "off": "minimal",
80
+ "minimal": "minimal",
81
+ "low": "low",
82
+ "medium": "medium",
83
+ "high": "high",
84
+ "xhigh": "xhigh"
85
+ },
86
+ "compat": {
87
+ "supportsTools": true,
88
+ "supportsReasoningEffort": true,
89
+ "supportedReasoningEfforts": [
90
+ "minimal",
91
+ "low",
92
+ "medium",
93
+ "high",
94
+ "xhigh"
95
+ ]
96
+ },
97
+ "cost": {
98
+ "input": 1.25,
99
+ "output": 4.25,
100
+ "cacheRead": 0.15,
101
+ "cacheWrite": 0
102
+ }
103
+ },
104
+ {
105
+ "id": "muse-spark-1.2-contributor",
106
+ "name": "Muse Spark 1.2 Contributor",
107
+ "reasoning": true,
108
+ "input": [
109
+ "text",
110
+ "image"
111
+ ],
112
+ "contextWindow": 1048576,
113
+ "maxTokens": 131072,
114
+ "thinkingLevelMap": {
115
+ "off": "minimal",
116
+ "minimal": "minimal",
117
+ "low": "low",
118
+ "medium": "medium",
119
+ "high": "high",
120
+ "xhigh": "xhigh"
121
+ },
122
+ "compat": {
123
+ "supportsTools": true,
124
+ "supportsReasoningEffort": true,
125
+ "supportedReasoningEfforts": [
126
+ "minimal",
127
+ "low",
128
+ "medium",
129
+ "high",
130
+ "xhigh"
131
+ ]
132
+ },
133
+ "cost": {
134
+ "input": 0.1,
135
+ "output": 0.2,
136
+ "cacheRead": 0.002,
137
+ "cacheWrite": 0
138
+ }
67
139
  }
68
140
  ]
69
141
  }
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@openclaw/meta-provider",
3
- "version": "2026.7.2-beta.5",
3
+ "version": "2026.8.1-beta.2",
4
4
  "description": "OpenClaw Meta provider plugin.",
5
5
  "repository": {
6
6
  "type": "git",
@@ -18,11 +18,11 @@
18
18
  "minHostVersion": ">=2026.6.11"
19
19
  },
20
20
  "compat": {
21
- "pluginApi": ">=2026.7.2-beta.5"
21
+ "pluginApi": ">=2026.8.1-beta.2"
22
22
  },
23
23
  "build": {
24
- "openclawVersion": "2026.7.2-beta.5",
25
- "bundledDist": true
24
+ "openclawVersion": "2026.8.1-beta.2",
25
+ "bundledDist": false
26
26
  },
27
27
  "release": {
28
28
  "publishToClawHub": true,
@@ -38,7 +38,7 @@
38
38
  "README.md"
39
39
  ],
40
40
  "peerDependencies": {
41
- "openclaw": ">=2026.7.2-beta.5"
41
+ "openclaw": ">=2026.8.1-beta.2"
42
42
  },
43
43
  "peerDependenciesMeta": {
44
44
  "openclaw": {
@@ -1,99 +0,0 @@
1
- import { buildManifestModelDefinition } from "openclaw/plugin-sdk/provider-catalog-shared";
2
- //#region extensions/meta/openclaw.plugin.json
3
- var openclaw_plugin_default = {
4
- id: "meta",
5
- activation: { "onStartup": false },
6
- enabledByDefault: true,
7
- providers: ["meta"],
8
- providerEndpoints: [{
9
- "endpointClass": "meta-native",
10
- "hosts": ["api.meta.ai"]
11
- }],
12
- providerRequest: { "providers": { "meta": { "family": "meta" } } },
13
- modelCatalog: {
14
- "providers": { "meta": {
15
- "baseUrl": "https://api.meta.ai/v1",
16
- "api": "openai-responses",
17
- "defaultModel": "muse-spark-1.1",
18
- "models": [{
19
- "id": "muse-spark-1.1",
20
- "name": "Muse Spark 1.1",
21
- "reasoning": true,
22
- "input": ["text", "image"],
23
- "contextWindow": 1048576,
24
- "maxTokens": 131072,
25
- "thinkingLevelMap": {
26
- "off": "minimal",
27
- "minimal": "minimal",
28
- "low": "low",
29
- "medium": "medium",
30
- "high": "high",
31
- "xhigh": "xhigh"
32
- },
33
- "compat": {
34
- "supportsTools": true,
35
- "supportsReasoningEffort": true,
36
- "supportedReasoningEfforts": [
37
- "minimal",
38
- "low",
39
- "medium",
40
- "high",
41
- "xhigh"
42
- ]
43
- },
44
- "cost": {
45
- "input": 1.25,
46
- "output": 4.25,
47
- "cacheRead": .15,
48
- "cacheWrite": 0
49
- }
50
- }]
51
- } },
52
- "discovery": { "meta": "refreshable" }
53
- },
54
- setup: { "providers": [{
55
- "id": "meta",
56
- "authMethods": ["api-key"],
57
- "envVars": ["MODEL_API_KEY"]
58
- }] },
59
- providerAuthChoices: [{
60
- "provider": "meta",
61
- "method": "api-key",
62
- "choiceId": "meta-api-key",
63
- "appGuidedSecret": true,
64
- "choiceLabel": "Meta API key",
65
- "choiceHint": "Meta (Responses API)",
66
- "groupId": "meta",
67
- "groupLabel": "Meta",
68
- "groupHint": "Meta (Responses API)",
69
- "onboardingFeatured": true,
70
- "optionKey": "metaApiKey",
71
- "cliFlag": "--meta-api-key",
72
- "cliOption": "--meta-api-key <key>",
73
- "cliDescription": "Meta API key"
74
- }],
75
- configSchema: {
76
- "type": "object",
77
- "additionalProperties": false,
78
- "properties": {}
79
- }
80
- };
81
- //#endregion
82
- //#region extensions/meta/models.ts
83
- /**
84
- * Meta model catalog helpers derived from the plugin manifest.
85
- */
86
- const META_MANIFEST_CATALOG = openclaw_plugin_default.modelCatalog.providers["meta"];
87
- /** Base URL for Meta OpenAI-compatible inference. */
88
- const META_BASE_URL = META_MANIFEST_CATALOG.baseUrl;
89
- /** Meta model catalog entries from the plugin manifest. */
90
- const META_MODEL_CATALOG = META_MANIFEST_CATALOG.models;
91
- /** Builds normalized Meta catalog model definitions. */
92
- function buildMetaCatalogModels() {
93
- return META_MODEL_CATALOG.map(buildManifestModelDefinition({
94
- providerId: "meta",
95
- catalog: META_MANIFEST_CATALOG
96
- }));
97
- }
98
- //#endregion
99
- export { openclaw_plugin_default as i, META_MODEL_CATALOG as n, buildMetaCatalogModels as r, META_BASE_URL as t };