@openclaw/fireworks-provider 2026.10.10-beta.5 → 2026.11.5-beta.1

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.
@@ -1,5 +1,5 @@
1
1
  import { buildManifestModelProviderConfig, readManifestProviderDefaultModelRef } from "openclaw/plugin-sdk/provider-catalog-shared";
2
- //#region extensions/fireworks/openclaw.plugin.json
2
+ // extensions/fireworks/openclaw.plugin.json
3
3
  var openclaw_plugin_default = {
4
4
  id: "fireworks",
5
5
  categories: ["models"],
@@ -57,8 +57,7 @@ var openclaw_plugin_default = {
57
57
  "properties": {}
58
58
  }
59
59
  };
60
- //#endregion
61
- //#region extensions/fireworks/provider-catalog.ts
60
+ // extensions/fireworks/provider-catalog.ts
62
61
  const FIREWORKS_MANIFEST_PROVIDER = buildManifestModelProviderConfig({
63
62
  providerId: "fireworks",
64
63
  catalog: openclaw_plugin_default.modelCatalog.providers.fireworks
@@ -77,7 +76,7 @@ function isFireworksCatalogModelId(modelId) {
77
76
  return FIREWORKS_MANIFEST_PROVIDER.models.some((model) => model.id === modelId);
78
77
  }
79
78
  function buildFireworksCatalogModels() {
80
- return FIREWORKS_MANIFEST_PROVIDER.models.map((model) => structuredClone(model));
79
+ return FIREWORKS_MANIFEST_PROVIDER.models;
81
80
  }
82
81
  function buildFireworksProvider() {
83
82
  return buildManifestModelProviderConfig({
@@ -85,5 +84,4 @@ function buildFireworksProvider() {
85
84
  catalog: openclaw_plugin_default.modelCatalog.providers.fireworks
86
85
  });
87
86
  }
88
- //#endregion
89
87
  export { FIREWORKS_DEFAULT_MODEL_REF as a, isFireworksCatalogModelId as c, FIREWORKS_DEFAULT_MODEL_ID as i, isFireworksNativeModel as l, FIREWORKS_DEFAULT_CONTEXT_WINDOW as n, buildFireworksCatalogModels as o, FIREWORKS_DEFAULT_MAX_TOKENS as r, buildFireworksProvider as s, FIREWORKS_BASE_URL as t, openclaw_plugin_default as u };
@@ -0,0 +1 @@
1
+ {"version":3,"entries":[{"output":"index.js","source":"extensions/fireworks/index.ts"},{"output":"model-id.js","source":"extensions/fireworks/model-id.ts"},{"output":"onboard.js","source":"extensions/fireworks/onboard.ts"},{"output":"provider-catalog.js","source":"extensions/fireworks/provider-catalog.ts"},{"output":"provider-policy-api.js","source":"extensions/fireworks/provider-policy-api.ts"},{"output":"thinking-policy.js","source":"extensions/fireworks/thinking-policy.ts"}],"chunks":[{"output":".setup/provider-catalog-BVZMHYyD.mjs","sha256":"8ac36227c2727eaf18847c7030b9542ef038a053a7920a644d80307cd09a66bf","facadeSource":null,"sources":["extensions/fireworks/openclaw.plugin.json","extensions/fireworks/provider-catalog.ts"]},{"output":"index.js","sha256":"15b22bbf8985e493d6914468be312f441ea8b456b7a205f969c7661dcfbef341","facadeSource":"extensions/fireworks/index.ts","sources":["extensions/fireworks/index.ts"]},{"output":"model-id.js","sha256":"a32577e8b1032846aa3489e6cb0a10733a3054e6510cd5c718fd2a3f87072d66","facadeSource":"extensions/fireworks/model-id.ts","sources":["extensions/fireworks/model-id.ts"]},{"output":"onboard.js","sha256":"a6a669a48a7c5a6c727d5ec5b5e31eb71669c5350f465aed120397c4420a6916","facadeSource":"extensions/fireworks/onboard.ts","sources":["extensions/fireworks/onboard.ts"]},{"output":"provider-catalog.js","sha256":"815c04c269c06702fe74fd1d22faf3256c14636e3c6fab7fc8d1a05f185b77c3","facadeSource":"extensions/fireworks/provider-catalog.ts","sources":[]},{"output":"provider-policy-api.js","sha256":"a93ed686b607b8b2da4880d2a0f6333a3387bc3f9256ba86dace39829fcd4b15","facadeSource":"extensions/fireworks/provider-policy-api.ts","sources":["extensions/fireworks/provider-policy-api.ts"]},{"output":"thinking-policy.js","sha256":"aa806c47625827818ec7da3f4cd9e997861b284034b1a31a75d92c10d52755bf","facadeSource":"extensions/fireworks/thinking-policy.ts","sources":["extensions/fireworks/thinking-policy.ts"]}],"unrenderedSources":[]}
package/dist/index.js CHANGED
@@ -1,12 +1,17 @@
1
1
  import { isFireworksKimiModelId } from "./model-id.js";
2
- import { c as isFireworksCatalogModelId, i as FIREWORKS_DEFAULT_MODEL_ID, l as isFireworksNativeModel, n as FIREWORKS_DEFAULT_CONTEXT_WINDOW, r as FIREWORKS_DEFAULT_MAX_TOKENS, t as FIREWORKS_BASE_URL, u as openclaw_plugin_default } from "./.setup/provider-catalog-D1IIkEc_.mjs";
2
+ import { c as isFireworksCatalogModelId, i as FIREWORKS_DEFAULT_MODEL_ID, l as isFireworksNativeModel, n as FIREWORKS_DEFAULT_CONTEXT_WINDOW, r as FIREWORKS_DEFAULT_MAX_TOKENS, t as FIREWORKS_BASE_URL, u as openclaw_plugin_default } from "./.setup/provider-catalog-BVZMHYyD.mjs";
3
3
  import { applyFireworksConfig } from "./onboard.js";
4
- import { wrapFireworksProviderStream } from "./stream.js";
5
4
  import { resolveFireworksThinkingProfile } from "./thinking-policy.js";
5
+ import { calculateCost, streamSimple } from "openclaw/plugin-sdk/llm";
6
6
  import { defineSingleProviderPluginEntry } from "openclaw/plugin-sdk/provider-entry";
7
- import { applyModelCompatPatch, buildProviderReplayFamilyHooks, resolveFamilyForwardCompatModel } from "openclaw/plugin-sdk/provider-model-shared";
8
- //#region extensions/fireworks/index.ts
7
+ import { applyModelCompatPatch, buildProviderReplayFamilyHooks, normalizeProviderId, resolveFamilyForwardCompatModel } from "openclaw/plugin-sdk/provider-model-shared";
8
+ import { createPayloadPatchStreamWrapper, transformProviderStreamMessages } from "openclaw/plugin-sdk/provider-stream-shared";
9
+ // extensions/fireworks/index.ts
9
10
  const PROVIDER_ID = "fireworks";
11
+ function isFireworksProviderId(providerId) {
12
+ const normalized = normalizeProviderId(providerId);
13
+ return normalized === "fireworks" || normalized === "fireworks-ai";
14
+ }
10
15
  function isFireworksGlmModelId(modelId) {
11
16
  const normalized = modelId.trim().toLowerCase();
12
17
  const lastSegment = normalized.split("/").pop() ?? normalized;
@@ -57,11 +62,47 @@ var fireworks_default = defineSingleProviderPluginEntry({
57
62
  supportsPromptCacheKey: model.compat?.supportsPromptCacheKey ?? true,
58
63
  supportsLongCacheRetention: model.compat?.supportsLongCacheRetention ?? false
59
64
  }) : model,
60
- wrapStreamFn: wrapFireworksProviderStream,
65
+ wrapStreamFn(ctx) {
66
+ if (!isFireworksProviderId(ctx.provider) || (ctx.sourceApi ?? ctx.model?.api) !== "openai-completions") return;
67
+ const isKimi = isFireworksKimiModelId(ctx.modelId);
68
+ const isNative = isFireworksNativeModel(ctx.model, ctx.sourceApi);
69
+ if (!isKimi && !isNative) return;
70
+ const underlying = isKimi ? createPayloadPatchStreamWrapper(ctx.streamFn, ({ payload }) => {
71
+ payload.thinking = { type: "disabled" };
72
+ delete payload.reasoning;
73
+ delete payload.reasoning_effort;
74
+ delete payload.reasoningEffort;
75
+ }) : ctx.streamFn ?? streamSimple;
76
+ if (!isNative) return underlying;
77
+ return async (model, context, options) => {
78
+ let cache;
79
+ const stream = await underlying(model, context, {
80
+ ...options,
81
+ onResponse(response, responseModel) {
82
+ const prompt = Number(response.headers["fireworks-prompt-tokens"]?.trim() || NaN);
83
+ const read = Number(response.headers["fireworks-cached-prompt-tokens"]?.trim() || NaN);
84
+ cache = Number.isSafeInteger(prompt) && Number.isSafeInteger(read) && read >= 0 && read <= prompt ? {
85
+ prompt,
86
+ read
87
+ } : void 0;
88
+ return options?.onResponse?.(response, responseModel);
89
+ }
90
+ });
91
+ return transformProviderStreamMessages(stream, (message) => {
92
+ const usage = message.usage;
93
+ if (!cache || usage.cacheTelemetry?.state !== "unavailable" || usage.input + usage.cacheRead + usage.cacheWrite !== cache.prompt) return;
94
+ usage.input -= cache.read;
95
+ usage.cacheRead = cache.read;
96
+ usage.cacheTelemetry = { state: "available" };
97
+ const billedTotal = usage.cost.total;
98
+ calculateCost(model, usage);
99
+ if (usage.cost.totalOrigin === "provider-billed") usage.cost.total = billedTotal;
100
+ });
101
+ };
102
+ },
61
103
  resolveThinkingProfile: ({ modelId }) => resolveFireworksThinkingProfile(modelId),
62
104
  resolveDynamicModel: resolveFireworksDynamicModel,
63
105
  isModernModelRef: () => true
64
106
  }
65
107
  });
66
- //#endregion
67
108
  export { fireworks_default as default };
package/dist/model-id.js CHANGED
@@ -1,8 +1,7 @@
1
- //#region extensions/fireworks/model-id.ts
1
+ // extensions/fireworks/model-id.ts
2
2
  function isFireworksKimiModelId(modelId) {
3
3
  const normalized = modelId.trim().toLowerCase();
4
4
  const lastSegment = normalized.split("/").pop() ?? normalized;
5
5
  return /^kimi-k2(?:p[56]|[.-][56])(?:[-_].+)?$/.test(lastSegment);
6
6
  }
7
- //#endregion
8
7
  export { isFireworksKimiModelId };
package/dist/onboard.js CHANGED
@@ -1,6 +1,6 @@
1
- import { a as FIREWORKS_DEFAULT_MODEL_REF, i as FIREWORKS_DEFAULT_MODEL_ID, o as buildFireworksCatalogModels, s as buildFireworksProvider } from "./.setup/provider-catalog-D1IIkEc_.mjs";
1
+ import { a as FIREWORKS_DEFAULT_MODEL_REF, i as FIREWORKS_DEFAULT_MODEL_ID, o as buildFireworksCatalogModels, s as buildFireworksProvider } from "./.setup/provider-catalog-BVZMHYyD.mjs";
2
2
  import { createDefaultModelsConnectionPresetAppliers } from "openclaw/plugin-sdk/provider-onboard";
3
- //#region extensions/fireworks/onboard.ts
3
+ // extensions/fireworks/onboard.ts
4
4
  const { applyConfig: applyFireworksConfig } = createDefaultModelsConnectionPresetAppliers({
5
5
  primaryModelRef: FIREWORKS_DEFAULT_MODEL_REF,
6
6
  resolveParams: () => {
@@ -18,5 +18,4 @@ const { applyConfig: applyFireworksConfig } = createDefaultModelsConnectionPrese
18
18
  };
19
19
  }
20
20
  });
21
- //#endregion
22
21
  export { applyFireworksConfig };
@@ -1 +1 @@
1
- export { t as FIREWORKS_BASE_URL, n as FIREWORKS_DEFAULT_CONTEXT_WINDOW, r as FIREWORKS_DEFAULT_MAX_TOKENS, i as FIREWORKS_DEFAULT_MODEL_ID, a as FIREWORKS_DEFAULT_MODEL_REF, o as buildFireworksCatalogModels, s as buildFireworksProvider, c as isFireworksCatalogModelId, l as isFireworksNativeModel } from "./.setup/provider-catalog-D1IIkEc_.mjs";
1
+ export { t as FIREWORKS_BASE_URL, n as FIREWORKS_DEFAULT_CONTEXT_WINDOW, r as FIREWORKS_DEFAULT_MAX_TOKENS, i as FIREWORKS_DEFAULT_MODEL_ID, a as FIREWORKS_DEFAULT_MODEL_REF, o as buildFireworksCatalogModels, s as buildFireworksProvider, c as isFireworksCatalogModelId, l as isFireworksNativeModel } from "./.setup/provider-catalog-BVZMHYyD.mjs";
@@ -1,7 +1,6 @@
1
1
  import { resolveFireworksThinkingProfile } from "./thinking-policy.js";
2
- //#region extensions/fireworks/provider-policy-api.ts
2
+ // extensions/fireworks/provider-policy-api.ts
3
3
  function resolveThinkingProfile(params) {
4
4
  return resolveFireworksThinkingProfile(params.modelId);
5
5
  }
6
- //#endregion
7
6
  export { resolveThinkingProfile };
@@ -1,5 +1,5 @@
1
1
  import { isFireworksKimiModelId } from "./model-id.js";
2
- //#region extensions/fireworks/thinking-policy.ts
2
+ // extensions/fireworks/thinking-policy.ts
3
3
  const FIREWORKS_KIMI_THINKING_PROFILE = {
4
4
  levels: [{ id: "off" }],
5
5
  defaultLevel: "off"
@@ -7,5 +7,4 @@ const FIREWORKS_KIMI_THINKING_PROFILE = {
7
7
  function resolveFireworksThinkingProfile(modelId) {
8
8
  return isFireworksKimiModelId(modelId) ? FIREWORKS_KIMI_THINKING_PROFILE : void 0;
9
9
  }
10
- //#endregion
11
10
  export { resolveFireworksThinkingProfile };
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@openclaw/fireworks-provider",
3
- "version": "2026.10.10-beta.5",
3
+ "version": "2026.11.5-beta.1",
4
4
  "description": "OpenClaw Fireworks provider plugin",
5
5
  "type": "module",
6
6
  "openclaw": {
@@ -14,10 +14,10 @@
14
14
  "minHostVersion": ">=2026.6.9"
15
15
  },
16
16
  "compat": {
17
- "pluginApi": ">=2026.10.10-beta.5"
17
+ "pluginApi": ">=2026.11.5-beta.1"
18
18
  },
19
19
  "build": {
20
- "openclawVersion": "2026.10.10-beta.5",
20
+ "openclawVersion": "2026.11.5-beta.1",
21
21
  "bundledDist": false
22
22
  },
23
23
  "release": {
@@ -40,7 +40,7 @@
40
40
  "assets/activity.svg"
41
41
  ],
42
42
  "peerDependencies": {
43
- "openclaw": ">=2026.10.10-beta.5"
43
+ "openclaw": ">=2026.11.5-beta.1"
44
44
  },
45
45
  "peerDependenciesMeta": {
46
46
  "openclaw": {
@@ -1 +0,0 @@
1
- {"version":3,"entries":[{"output":"index.js","source":"extensions/fireworks/index.ts"},{"output":"model-id.js","source":"extensions/fireworks/model-id.ts"},{"output":"onboard.js","source":"extensions/fireworks/onboard.ts"},{"output":"provider-catalog.js","source":"extensions/fireworks/provider-catalog.ts"},{"output":"provider-policy-api.js","source":"extensions/fireworks/provider-policy-api.ts"},{"output":"stream.js","source":"extensions/fireworks/stream.ts"},{"output":"thinking-policy.js","source":"extensions/fireworks/thinking-policy.ts"}],"chunks":[{"output":".setup/provider-catalog-D1IIkEc_.mjs","sha256":"3cc82370ddd39c277dd363ea8fa6dc86e171bb84d7c10f1d461e3ba7a7ca8bd8","facadeSource":null,"sources":["extensions/fireworks/openclaw.plugin.json","extensions/fireworks/provider-catalog.ts"]},{"output":"index.js","sha256":"cf5583228257e7e3896ba190974411c62dd0f144f27394ebd94f06859e3a3b9e","facadeSource":"extensions/fireworks/index.ts","sources":["extensions/fireworks/index.ts"]},{"output":"model-id.js","sha256":"93b1e0dc5a9033fffbc908214458cc7f3465eb4da21320e5e2c30456448b085a","facadeSource":"extensions/fireworks/model-id.ts","sources":["extensions/fireworks/model-id.ts"]},{"output":"onboard.js","sha256":"7de0e5a72ef7eabb9b2fceb8b623cee820e1808b6b9b44344d2a69031be8c973","facadeSource":"extensions/fireworks/onboard.ts","sources":["extensions/fireworks/onboard.ts"]},{"output":"provider-catalog.js","sha256":"33bd724ddb2a2e4a12875e10c5b2bb80f944fc9f392b9d02b4dd08925fcc444c","facadeSource":"extensions/fireworks/provider-catalog.ts","sources":[]},{"output":"provider-policy-api.js","sha256":"02dc5facb55ff520d892c2baf659d1810b27bd328816e748f756ed7145227f4f","facadeSource":"extensions/fireworks/provider-policy-api.ts","sources":["extensions/fireworks/provider-policy-api.ts"]},{"output":"stream.js","sha256":"3e9a2cf307f670ee54030053d2198844a8eee7b645efa9752c7ae630104b1c10","facadeSource":"extensions/fireworks/stream.ts","sources":["extensions/fireworks/stream.ts"]},{"output":"thinking-policy.js","sha256":"ea2515e404046e0af9cfe2b520d62d06a1edcb217196e2ea6c11d30c0a4a0af0","facadeSource":"extensions/fireworks/thinking-policy.ts","sources":["extensions/fireworks/thinking-policy.ts"]}],"unrenderedSources":[]}
package/dist/stream.js DELETED
@@ -1,50 +0,0 @@
1
- import { isFireworksKimiModelId } from "./model-id.js";
2
- import { l as isFireworksNativeModel } from "./.setup/provider-catalog-D1IIkEc_.mjs";
3
- import { normalizeProviderId } from "openclaw/plugin-sdk/provider-model-shared";
4
- import { calculateCost, streamSimple } from "openclaw/plugin-sdk/llm";
5
- import { createPayloadPatchStreamWrapper, transformProviderStreamMessages } from "openclaw/plugin-sdk/provider-stream-shared";
6
- //#region extensions/fireworks/stream.ts
7
- function isFireworksProviderId(providerId) {
8
- const normalized = normalizeProviderId(providerId);
9
- return normalized === "fireworks" || normalized === "fireworks-ai";
10
- }
11
- function wrapFireworksProviderStream(ctx) {
12
- if (!isFireworksProviderId(ctx.provider) || (ctx.sourceApi ?? ctx.model?.api) !== "openai-completions") return;
13
- const isKimi = isFireworksKimiModelId(ctx.modelId);
14
- const isNative = isFireworksNativeModel(ctx.model, ctx.sourceApi);
15
- if (!isKimi && !isNative) return;
16
- const underlying = isKimi ? createPayloadPatchStreamWrapper(ctx.streamFn, ({ payload }) => {
17
- payload.thinking = { type: "disabled" };
18
- delete payload.reasoning;
19
- delete payload.reasoning_effort;
20
- delete payload.reasoningEffort;
21
- }) : ctx.streamFn ?? streamSimple;
22
- if (!isNative) return underlying;
23
- return async (model, context, options) => {
24
- let cache;
25
- const stream = await underlying(model, context, {
26
- ...options,
27
- onResponse(response, responseModel) {
28
- const prompt = Number(response.headers["fireworks-prompt-tokens"]?.trim() || NaN);
29
- const read = Number(response.headers["fireworks-cached-prompt-tokens"]?.trim() || NaN);
30
- cache = Number.isSafeInteger(prompt) && Number.isSafeInteger(read) && read >= 0 && read <= prompt ? {
31
- prompt,
32
- read
33
- } : void 0;
34
- return options?.onResponse?.(response, responseModel);
35
- }
36
- });
37
- return transformProviderStreamMessages(stream, (message) => {
38
- const usage = message.usage;
39
- if (!cache || usage.cacheTelemetry?.state !== "unavailable" || usage.input + usage.cacheRead + usage.cacheWrite !== cache.prompt) return;
40
- usage.input -= cache.read;
41
- usage.cacheRead = cache.read;
42
- usage.cacheTelemetry = { state: "available" };
43
- const billedTotal = usage.cost.total;
44
- calculateCost(model, usage);
45
- if (usage.cost.totalOrigin === "provider-billed") usage.cost.total = billedTotal;
46
- });
47
- };
48
- }
49
- //#endregion
50
- export { wrapFireworksProviderStream };