@openclaw/fireworks-provider 2026.10.10 → 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.
@@ -76,7 +76,7 @@ function isFireworksCatalogModelId(modelId) {
76
76
  return FIREWORKS_MANIFEST_PROVIDER.models.some((model) => model.id === modelId);
77
77
  }
78
78
  function buildFireworksCatalogModels() {
79
- return FIREWORKS_MANIFEST_PROVIDER.models.map((model) => structuredClone(model));
79
+ return FIREWORKS_MANIFEST_PROVIDER.models;
80
80
  }
81
81
  function buildFireworksProvider() {
82
82
  return buildManifestModelProviderConfig({
@@ -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-DfvLnVtM.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";
7
+ import { applyModelCompatPatch, buildProviderReplayFamilyHooks, normalizeProviderId, resolveFamilyForwardCompatModel } from "openclaw/plugin-sdk/provider-model-shared";
8
+ import { createPayloadPatchStreamWrapper, transformProviderStreamMessages } from "openclaw/plugin-sdk/provider-stream-shared";
8
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,7 +62,44 @@ 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
package/dist/onboard.js CHANGED
@@ -1,4 +1,4 @@
1
- import { a as FIREWORKS_DEFAULT_MODEL_REF, i as FIREWORKS_DEFAULT_MODEL_ID, o as buildFireworksCatalogModels, s as buildFireworksProvider } from "./.setup/provider-catalog-DfvLnVtM.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
3
  // extensions/fireworks/onboard.ts
4
4
  const { applyConfig: applyFireworksConfig } = createDefaultModelsConnectionPresetAppliers({
@@ -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-DfvLnVtM.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";
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@openclaw/fireworks-provider",
3
- "version": "2026.10.10",
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"
17
+ "pluginApi": ">=2026.11.5-beta.1"
18
18
  },
19
19
  "build": {
20
- "openclawVersion": "2026.10.10",
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"
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-DfvLnVtM.mjs","sha256":"dc1ece3f88597078aaeb50d044ecc8f0adfe60f16a4fb9f10e8afccfbfe0d8bc","facadeSource":null,"sources":["extensions/fireworks/openclaw.plugin.json","extensions/fireworks/provider-catalog.ts"]},{"output":"index.js","sha256":"dc3f75d17769c0e759b42824daae02c96051ec3648b74371030fee2c61373e27","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":"758edb8a23de30a1b28a29abc07096e68f7ffb1bcc1258e116b19530839f1bee","facadeSource":"extensions/fireworks/onboard.ts","sources":["extensions/fireworks/onboard.ts"]},{"output":"provider-catalog.js","sha256":"2c0b9420d89c816c783361ce3d83b50ce22f92ec9123293547b11cdbf70de6b3","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":"stream.js","sha256":"e5e8668ccf3a36c51f27b4dbeeb5c6eb5a2ad76c9c2682bbf9e49d89a39dfdb6","facadeSource":"extensions/fireworks/stream.ts","sources":["extensions/fireworks/stream.ts"]},{"output":"thinking-policy.js","sha256":"aa806c47625827818ec7da3f4cd9e997861b284034b1a31a75d92c10d52755bf","facadeSource":"extensions/fireworks/thinking-policy.ts","sources":["extensions/fireworks/thinking-policy.ts"]}],"unrenderedSources":[]}
package/dist/stream.js DELETED
@@ -1,49 +0,0 @@
1
- import { isFireworksKimiModelId } from "./model-id.js";
2
- import { l as isFireworksNativeModel } from "./.setup/provider-catalog-DfvLnVtM.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
- // 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
- export { wrapFireworksProviderStream };