@openclaw/fireworks-provider 0.0.0 → 2026.6.11

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,3 +1,13 @@
1
- # @openclaw/fireworks-provider
1
+ # Fireworks OpenClaw provider
2
2
 
3
- Bootstrap reservation for the OpenClaw Fireworks provider package.
3
+ Official OpenClaw provider plugin for Fireworks.
4
+
5
+ ## Install
6
+
7
+ ```sh
8
+ openclaw plugins install @openclaw/fireworks-provider
9
+ ```
10
+
11
+ ## Docs
12
+
13
+ See `docs/providers/fireworks.md` in the OpenClaw repository, or the published docs at `https://docs.openclaw.ai/providers/fireworks`.
package/dist/index.js ADDED
@@ -0,0 +1,83 @@
1
+ import { isFireworksKimiModelId } from "./model-id.js";
2
+ import { n as FIREWORKS_DEFAULT_CONTEXT_WINDOW, o as buildFireworksProvider, r as FIREWORKS_DEFAULT_MAX_TOKENS, s as isFireworksCatalogModelId, t as FIREWORKS_BASE_URL } from "./provider-catalog-DfjnZjS3.js";
3
+ import { FIREWORKS_DEFAULT_MODEL_REF, applyFireworksConfig } from "./onboard.js";
4
+ import { wrapFireworksProviderStream } from "./stream.js";
5
+ import { resolveFireworksThinkingProfile } from "./thinking-policy.js";
6
+ import { defineSingleProviderPluginEntry } from "openclaw/plugin-sdk/provider-entry";
7
+ import { DEFAULT_CONTEXT_TOKENS, OPENAI_COMPATIBLE_REPLAY_HOOKS, cloneFirstTemplateModel, normalizeModelCompat } from "openclaw/plugin-sdk/provider-model-shared";
8
+ //#region extensions/fireworks/index.ts
9
+ const PROVIDER_ID = "fireworks";
10
+ function isFireworksGlmModelId(modelId) {
11
+ const normalized = modelId.trim().toLowerCase();
12
+ const lastSegment = normalized.split("/").pop() ?? normalized;
13
+ return /^glm[-_.]/.test(lastSegment);
14
+ }
15
+ function resolveFireworksDynamicInput(modelId) {
16
+ return isFireworksGlmModelId(modelId) ? ["text"] : ["text", "image"];
17
+ }
18
+ function resolveFireworksDynamicModel(ctx) {
19
+ const modelId = ctx.modelId.trim();
20
+ if (!modelId) return;
21
+ if (isFireworksCatalogModelId(modelId)) return;
22
+ const isKimiModel = isFireworksKimiModelId(modelId);
23
+ const input = resolveFireworksDynamicInput(modelId);
24
+ return cloneFirstTemplateModel({
25
+ providerId: PROVIDER_ID,
26
+ modelId,
27
+ templateIds: ["accounts/fireworks/routers/kimi-k2p5-turbo"],
28
+ ctx,
29
+ patch: {
30
+ provider: PROVIDER_ID,
31
+ reasoning: !isKimiModel,
32
+ input
33
+ }
34
+ }) ?? normalizeModelCompat({
35
+ id: modelId,
36
+ name: modelId,
37
+ provider: PROVIDER_ID,
38
+ api: "openai-completions",
39
+ baseUrl: FIREWORKS_BASE_URL,
40
+ reasoning: !isKimiModel,
41
+ input,
42
+ cost: {
43
+ input: 0,
44
+ output: 0,
45
+ cacheRead: 0,
46
+ cacheWrite: 0
47
+ },
48
+ contextWindow: FIREWORKS_DEFAULT_CONTEXT_WINDOW,
49
+ maxTokens: FIREWORKS_DEFAULT_MAX_TOKENS || DEFAULT_CONTEXT_TOKENS
50
+ });
51
+ }
52
+ var fireworks_default = defineSingleProviderPluginEntry({
53
+ id: PROVIDER_ID,
54
+ name: "Fireworks Provider",
55
+ description: "Bundled Fireworks AI provider plugin",
56
+ provider: {
57
+ label: "Fireworks",
58
+ aliases: ["fireworks-ai"],
59
+ docsPath: "/providers/fireworks",
60
+ auth: [{
61
+ methodId: "api-key",
62
+ label: "Fireworks API key",
63
+ hint: "API key",
64
+ optionKey: "fireworksApiKey",
65
+ flagName: "--fireworks-api-key",
66
+ envVar: "FIREWORKS_API_KEY",
67
+ promptMessage: "Enter Fireworks API key",
68
+ defaultModel: FIREWORKS_DEFAULT_MODEL_REF,
69
+ applyConfig: (cfg) => applyFireworksConfig(cfg)
70
+ }],
71
+ catalog: {
72
+ buildProvider: buildFireworksProvider,
73
+ allowExplicitBaseUrl: true
74
+ },
75
+ ...OPENAI_COMPATIBLE_REPLAY_HOOKS,
76
+ wrapStreamFn: wrapFireworksProviderStream,
77
+ resolveThinkingProfile: ({ modelId }) => resolveFireworksThinkingProfile(modelId),
78
+ resolveDynamicModel: (ctx) => resolveFireworksDynamicModel(ctx),
79
+ isModernModelRef: () => true
80
+ }
81
+ });
82
+ //#endregion
83
+ export { fireworks_default as default };
@@ -0,0 +1,8 @@
1
+ //#region extensions/fireworks/model-id.ts
2
+ function isFireworksKimiModelId(modelId) {
3
+ const normalized = modelId.trim().toLowerCase();
4
+ const lastSegment = normalized.split("/").pop() ?? normalized;
5
+ return /^kimi-k2(?:p[56]|[.-][56])(?:[-_].+)?$/.test(lastSegment);
6
+ }
7
+ //#endregion
8
+ export { isFireworksKimiModelId };
@@ -0,0 +1,26 @@
1
+ import { a as buildFireworksCatalogModels, i as FIREWORKS_DEFAULT_MODEL_ID, o as buildFireworksProvider } from "./provider-catalog-DfjnZjS3.js";
2
+ import { createDefaultModelsPresetAppliers } from "openclaw/plugin-sdk/provider-onboard";
3
+ //#region extensions/fireworks/onboard.ts
4
+ const FIREWORKS_DEFAULT_MODEL_REF = `fireworks/${FIREWORKS_DEFAULT_MODEL_ID}`;
5
+ const fireworksPresetAppliers = createDefaultModelsPresetAppliers({
6
+ primaryModelRef: FIREWORKS_DEFAULT_MODEL_REF,
7
+ resolveParams: (_cfg) => {
8
+ const defaultProvider = buildFireworksProvider();
9
+ return {
10
+ providerId: "fireworks",
11
+ api: defaultProvider.api ?? "openai-completions",
12
+ baseUrl: defaultProvider.baseUrl,
13
+ defaultModels: buildFireworksCatalogModels(),
14
+ defaultModelId: FIREWORKS_DEFAULT_MODEL_ID,
15
+ aliases: [{
16
+ modelRef: FIREWORKS_DEFAULT_MODEL_REF,
17
+ alias: "Kimi K2.5 Turbo"
18
+ }]
19
+ };
20
+ }
21
+ });
22
+ function applyFireworksConfig(cfg) {
23
+ return fireworksPresetAppliers.applyConfig(cfg);
24
+ }
25
+ //#endregion
26
+ export { FIREWORKS_DEFAULT_MODEL_REF, applyFireworksConfig };
@@ -0,0 +1,67 @@
1
+ import { buildManifestModelProviderConfig } from "openclaw/plugin-sdk/provider-catalog-shared";
2
+ //#region extensions/fireworks/openclaw.plugin.json
3
+ var modelCatalog = {
4
+ "providers": { "fireworks": {
5
+ "baseUrl": "https://api.fireworks.ai/inference/v1",
6
+ "api": "openai-completions",
7
+ "models": [{
8
+ "id": "accounts/fireworks/models/kimi-k2p6",
9
+ "name": "Kimi K2.6",
10
+ "reasoning": false,
11
+ "input": ["text", "image"],
12
+ "contextWindow": 262144,
13
+ "maxTokens": 262144,
14
+ "cost": {
15
+ "input": .95,
16
+ "output": 4,
17
+ "cacheRead": 0,
18
+ "cacheWrite": 0
19
+ }
20
+ }, {
21
+ "id": "accounts/fireworks/routers/kimi-k2p5-turbo",
22
+ "name": "Kimi K2.5 Turbo (Fire Pass)",
23
+ "reasoning": false,
24
+ "input": ["text", "image"],
25
+ "contextWindow": 256e3,
26
+ "maxTokens": 256e3,
27
+ "compat": { "unsupportedToolSchemaKeywords": ["not"] },
28
+ "cost": {
29
+ "input": 0,
30
+ "output": 0,
31
+ "cacheRead": 0,
32
+ "cacheWrite": 0
33
+ }
34
+ }]
35
+ } },
36
+ "discovery": { "fireworks": "static" }
37
+ };
38
+ //#endregion
39
+ //#region extensions/fireworks/provider-catalog.ts
40
+ const FIREWORKS_MANIFEST_PROVIDER = buildManifestModelProviderConfig({
41
+ providerId: "fireworks",
42
+ catalog: modelCatalog.providers.fireworks
43
+ });
44
+ const FIREWORKS_BASE_URL = FIREWORKS_MANIFEST_PROVIDER.baseUrl;
45
+ const FIREWORKS_DEFAULT_MODEL_ID = "accounts/fireworks/routers/kimi-k2p5-turbo";
46
+ function requireFireworksManifestModel(id) {
47
+ const model = FIREWORKS_MANIFEST_PROVIDER.models.find((entry) => entry.id === id);
48
+ if (!model) throw new Error(`Missing Fireworks modelCatalog row ${id}`);
49
+ return model;
50
+ }
51
+ const FIREWORKS_DEFAULT_MODEL = requireFireworksManifestModel(FIREWORKS_DEFAULT_MODEL_ID);
52
+ const FIREWORKS_DEFAULT_CONTEXT_WINDOW = FIREWORKS_DEFAULT_MODEL.contextWindow;
53
+ const FIREWORKS_DEFAULT_MAX_TOKENS = FIREWORKS_DEFAULT_MODEL.maxTokens;
54
+ function isFireworksCatalogModelId(modelId) {
55
+ return FIREWORKS_MANIFEST_PROVIDER.models.some((model) => model.id === modelId);
56
+ }
57
+ function buildFireworksCatalogModels() {
58
+ return FIREWORKS_MANIFEST_PROVIDER.models.map((model) => structuredClone(model));
59
+ }
60
+ function buildFireworksProvider() {
61
+ return buildManifestModelProviderConfig({
62
+ providerId: "fireworks",
63
+ catalog: modelCatalog.providers.fireworks
64
+ });
65
+ }
66
+ //#endregion
67
+ export { buildFireworksCatalogModels as a, FIREWORKS_DEFAULT_MODEL_ID as i, FIREWORKS_DEFAULT_CONTEXT_WINDOW as n, buildFireworksProvider as o, FIREWORKS_DEFAULT_MAX_TOKENS as r, isFireworksCatalogModelId as s, FIREWORKS_BASE_URL as t };
@@ -0,0 +1,2 @@
1
+ import { a as buildFireworksCatalogModels, i as FIREWORKS_DEFAULT_MODEL_ID, n as FIREWORKS_DEFAULT_CONTEXT_WINDOW, o as buildFireworksProvider, r as FIREWORKS_DEFAULT_MAX_TOKENS, s as isFireworksCatalogModelId, t as FIREWORKS_BASE_URL } from "./provider-catalog-DfjnZjS3.js";
2
+ export { FIREWORKS_BASE_URL, FIREWORKS_DEFAULT_CONTEXT_WINDOW, FIREWORKS_DEFAULT_MAX_TOKENS, FIREWORKS_DEFAULT_MODEL_ID, buildFireworksCatalogModels, buildFireworksProvider, isFireworksCatalogModelId };
@@ -0,0 +1,7 @@
1
+ import { resolveFireworksThinkingProfile } from "./thinking-policy.js";
2
+ //#region extensions/fireworks/provider-policy-api.ts
3
+ function resolveThinkingProfile(params) {
4
+ return resolveFireworksThinkingProfile(params.modelId);
5
+ }
6
+ //#endregion
7
+ export { resolveThinkingProfile };
package/dist/stream.js ADDED
@@ -0,0 +1,24 @@
1
+ import { isFireworksKimiModelId } from "./model-id.js";
2
+ import { normalizeProviderId } from "openclaw/plugin-sdk/provider-model-shared";
3
+ import { streamSimple } from "openclaw/plugin-sdk/llm";
4
+ import { streamWithPayloadPatch } from "openclaw/plugin-sdk/provider-stream-shared";
5
+ //#region extensions/fireworks/stream.ts
6
+ function isFireworksProviderId(providerId) {
7
+ const normalized = normalizeProviderId(providerId);
8
+ return normalized === "fireworks" || normalized === "fireworks-ai";
9
+ }
10
+ function createFireworksKimiThinkingDisabledWrapper(baseStreamFn) {
11
+ const underlying = baseStreamFn ?? streamSimple;
12
+ return (model, context, options) => streamWithPayloadPatch(underlying, model, context, options, (payloadObj) => {
13
+ payloadObj.thinking = { type: "disabled" };
14
+ delete payloadObj.reasoning;
15
+ delete payloadObj.reasoning_effort;
16
+ delete payloadObj.reasoningEffort;
17
+ });
18
+ }
19
+ function wrapFireworksProviderStream(ctx) {
20
+ if (!isFireworksProviderId(ctx.provider) || ctx.model?.api !== "openai-completions" || !isFireworksKimiModelId(ctx.modelId)) return;
21
+ return createFireworksKimiThinkingDisabledWrapper(ctx.streamFn);
22
+ }
23
+ //#endregion
24
+ export { createFireworksKimiThinkingDisabledWrapper, wrapFireworksProviderStream };
@@ -0,0 +1,12 @@
1
+ import { isFireworksKimiModelId } from "./model-id.js";
2
+ //#region extensions/fireworks/thinking-policy.ts
3
+ const FIREWORKS_KIMI_THINKING_PROFILE = {
4
+ levels: [{ id: "off" }],
5
+ defaultLevel: "off"
6
+ };
7
+ function resolveFireworksThinkingProfile(modelId) {
8
+ if (!isFireworksKimiModelId(modelId)) return;
9
+ return FIREWORKS_KIMI_THINKING_PROFILE;
10
+ }
11
+ //#endregion
12
+ export { resolveFireworksThinkingProfile };
@@ -0,0 +1,12 @@
1
+ {
2
+ "name": "@openclaw/fireworks-provider",
3
+ "version": "2026.6.11",
4
+ "lockfileVersion": 3,
5
+ "requires": true,
6
+ "packages": {
7
+ "": {
8
+ "name": "@openclaw/fireworks-provider",
9
+ "version": "2026.6.11"
10
+ }
11
+ }
12
+ }
@@ -0,0 +1,80 @@
1
+ {
2
+ "id": "fireworks",
3
+ "activation": {
4
+ "onStartup": false
5
+ },
6
+ "enabledByDefault": true,
7
+ "providers": ["fireworks"],
8
+ "setup": {
9
+ "providers": [
10
+ {
11
+ "id": "fireworks",
12
+ "envVars": ["FIREWORKS_API_KEY"]
13
+ }
14
+ ]
15
+ },
16
+ "providerAuthChoices": [
17
+ {
18
+ "provider": "fireworks",
19
+ "method": "api-key",
20
+ "choiceId": "fireworks-api-key",
21
+ "choiceLabel": "Fireworks API key",
22
+ "groupId": "fireworks",
23
+ "groupLabel": "Fireworks",
24
+ "groupHint": "API key",
25
+ "optionKey": "fireworksApiKey",
26
+ "cliFlag": "--fireworks-api-key",
27
+ "cliOption": "--fireworks-api-key <key>",
28
+ "cliDescription": "Fireworks API key"
29
+ }
30
+ ],
31
+ "modelCatalog": {
32
+ "providers": {
33
+ "fireworks": {
34
+ "baseUrl": "https://api.fireworks.ai/inference/v1",
35
+ "api": "openai-completions",
36
+ "models": [
37
+ {
38
+ "id": "accounts/fireworks/models/kimi-k2p6",
39
+ "name": "Kimi K2.6",
40
+ "reasoning": false,
41
+ "input": ["text", "image"],
42
+ "contextWindow": 262144,
43
+ "maxTokens": 262144,
44
+ "cost": {
45
+ "input": 0.95,
46
+ "output": 4,
47
+ "cacheRead": 0,
48
+ "cacheWrite": 0
49
+ }
50
+ },
51
+ {
52
+ "id": "accounts/fireworks/routers/kimi-k2p5-turbo",
53
+ "name": "Kimi K2.5 Turbo (Fire Pass)",
54
+ "reasoning": false,
55
+ "input": ["text", "image"],
56
+ "contextWindow": 256000,
57
+ "maxTokens": 256000,
58
+ "compat": {
59
+ "unsupportedToolSchemaKeywords": ["not"]
60
+ },
61
+ "cost": {
62
+ "input": 0,
63
+ "output": 0,
64
+ "cacheRead": 0,
65
+ "cacheWrite": 0
66
+ }
67
+ }
68
+ ]
69
+ }
70
+ },
71
+ "discovery": {
72
+ "fireworks": "static"
73
+ }
74
+ },
75
+ "configSchema": {
76
+ "type": "object",
77
+ "additionalProperties": false,
78
+ "properties": {}
79
+ }
80
+ }
package/package.json CHANGED
@@ -1,13 +1,50 @@
1
1
  {
2
2
  "name": "@openclaw/fireworks-provider",
3
- "version": "0.0.0",
4
- "description": "Bootstrap reservation for the OpenClaw Fireworks provider package.",
3
+ "version": "2026.6.11",
4
+ "description": "OpenClaw Fireworks provider plugin",
5
+ "type": "module",
6
+ "openclaw": {
7
+ "extensions": [
8
+ "./index.ts"
9
+ ],
10
+ "install": {
11
+ "clawhubSpec": "clawhub:@openclaw/fireworks-provider",
12
+ "npmSpec": "@openclaw/fireworks-provider",
13
+ "defaultChoice": "npm",
14
+ "minHostVersion": ">=2026.6.9"
15
+ },
16
+ "compat": {
17
+ "pluginApi": ">=2026.6.11"
18
+ },
19
+ "build": {
20
+ "openclawVersion": "2026.6.11",
21
+ "bundledDist": false
22
+ },
23
+ "release": {
24
+ "publishToClawHub": true,
25
+ "publishToNpm": true
26
+ },
27
+ "runtimeExtensions": [
28
+ "./dist/index.js"
29
+ ]
30
+ },
5
31
  "repository": {
6
32
  "type": "git",
7
- "url": "git+https://github.com/openclaw/openclaw.git"
33
+ "url": "https://github.com/openclaw/openclaw"
34
+ },
35
+ "files": [
36
+ "dist/**",
37
+ "openclaw.plugin.json",
38
+ "npm-shrinkwrap.json",
39
+ "README.md"
40
+ ],
41
+ "peerDependencies": {
42
+ "openclaw": ">=2026.6.11"
43
+ },
44
+ "peerDependenciesMeta": {
45
+ "openclaw": {
46
+ "optional": true
47
+ }
8
48
  },
9
- "license": "Apache-2.0",
10
- "publishConfig": {
11
- "access": "public"
12
- }
49
+ "bundledDependencies": []
13
50
  }