feat: register Freebuff provider in all index files

- Add Freebuff to providers registry (open-sse/providers/registry/index.js)
- Register FreebuffExecutor (open-sse/executors/index.js)
- Add Freebuff OAuth config (src/lib/oauth/providers/index.js)
- Register Freebuff usage handler (open-sse/services/usage.js)

This enables Freebuff provider to appear in dashboard and be fully functional.
This commit is contained in:
MUH. IQRAM BAHRING
2026-08-06 00:54:04 +08:00
parent b15b0c930a
commit de5fb415a7
4 changed files with 72 additions and 66 deletions
+2
View File
@@ -25,6 +25,7 @@ import ZedExecutor from "./zed.js";
import WindsurfExecutor from "./windsurf.js";
import { DefaultExecutor } from "./default.js";
import { DevinCliExecutor } from "./devin-cli.js";
import { FreebuffExecutor } from "./freebuff.js";
const executors = {
antigravity: new AntigravityExecutor(),
@@ -58,6 +59,7 @@ const executors = {
zed: new ZedExecutor(),
windsurf: new WindsurfExecutor(),
"devin-cli": new DevinCliExecutor(),
freebuff: new FreebuffExecutor(),
};
const defaultCache = new Map();
+66 -66
View File
@@ -33,48 +33,49 @@ import p30 from "./fal-ai.js";
import p31 from "./featherless.js";
import p32 from "./firecrawl.js";
import p33 from "./fireworks.js";
import p34 from "./gemini-cli.js";
import p35 from "./gemini.js";
import p36 from "./github.js";
import p37 from "./gitlab.js";
import p38 from "./glm-cn.js";
import p39 from "./glm.js";
import p40 from "./google-pse.js";
import p41 from "./google-tts.js";
import p42 from "./grok-cli.js";
import p43 from "./grok-web.js";
import p44 from "./groq.js";
import p45 from "./huggingface.js";
import p46 from "./hyperbolic.js";
import p47 from "./iflow.js";
import p48 from "./inworld.js";
import p49 from "./jina-ai.js";
import p50 from "./jina-reader.js";
import p51 from "./kilocode.js";
import p52 from "./kimchi.js";
import p53 from "./kimi.js";
import p54 from "./kiro.js";
import p55 from "./linkup.js";
import p56 from "./local-device.js";
import p57 from "./mimo-free.js";
import p58 from "./minimax-cn.js";
import p59 from "./minimax.js";
import p60 from "./mistral.js";
import p61 from "./mmf.js";
import p62 from "./nanobanana.js";
import p63 from "./nebius.js";
import p64 from "./nvidia.js";
import p65 from "./ollama-local.js";
import p66 from "./ollama.js";
import p67 from "./openai.js";
import p68 from "./opencode-go.js";
import p69 from "./opencode.js";
import p70 from "./openrouter.js";
import p71 from "./perplexity-web.js";
import p72 from "./perplexity.js";
import p73 from "./perplexity-agent.js";
import p74 from "./playht.js";
import p75 from "./qoder.js";
import p34 from "./freebuff.js";
import p35 from "./gemini-cli.js";
import p36 from "./gemini.js";
import p37 from "./github.js";
import p38 from "./gitlab.js";
import p39 from "./glm-cn.js";
import p40 from "./glm.js";
import p41 from "./google-pse.js";
import p42 from "./google-tts.js";
import p43 from "./grok-cli.js";
import p44 from "./grok-web.js";
import p45 from "./groq.js";
import p46 from "./huggingface.js";
import p47 from "./hyperbolic.js";
import p48 from "./iflow.js";
import p49 from "./inworld.js";
import p50 from "./jina-ai.js";
import p51 from "./jina-reader.js";
import p52 from "./kilocode.js";
import p53 from "./kimchi.js";
import p54 from "./kimi.js";
import p55 from "./kiro.js";
import p56 from "./linkup.js";
import p57 from "./local-device.js";
import p58 from "./mimo-free.js";
import p59 from "./minimax-cn.js";
import p60 from "./minimax.js";
import p61 from "./mistral.js";
import p62 from "./mmf.js";
import p63 from "./nanobanana.js";
import p64 from "./nebius.js";
import p65 from "./nvidia.js";
import p66 from "./ollama-local.js";
import p67 from "./ollama.js";
import p68 from "./openai.js";
import p69 from "./opencode-go.js";
import p70 from "./opencode.js";
import p71 from "./openrouter.js";
import p72 from "./perplexity-web.js";
import p73 from "./perplexity.js";
import p74 from "./perplexity-agent.js";
import p75 from "./playht.js";
import p76 from "./qoder.js";
import p77 from "./recraft.js";
import p78 from "./runwayml.js";
import p79 from "./sdwebui.js";
@@ -99,26 +100,24 @@ import p97 from "./xiaomi-tokenplan.js";
import p98 from "./youcom.js";
import p99 from "./alims-intl.js";
import p100 from "./codebuddy-intl.js";
// Temporarily hidden — no tool calling support (trae SOLO agent / windsurf gRPC skip ToolCallChunk).
// Re-enable by uncommenting both the import and the array entry below.
// import p102 from "./trae.js";
import p103 from "./zed.js";
import p105 from "./api-airforce.js";
import p106 from "./baidu.js";
import p107 from "./bazaarlink.js";
import p108 from "./bluesminds.js";
import p109 from "./kilo-gateway.js";
import p110 from "./llm7.js";
import p111 from "./sambanova.js";
import p112 from "./tencent.js";
import p113 from "./morph.js";
// import p114 from "./devin-cli.js";
// import p104 from "./windsurf.js";
import p115 from "./poolside.js";
import p116 from "./tokenrouter.js";
import p117 from "./selfhosted-stt.js";
import p118 from "./selfhosted-tts.js";
import p119 from "./selfhosted-embedding.js";
import p101 from "./trae.js";
import p102 from "./zed.js";
import p103 from "./api-airforce.js";
import p104 from "./baidu.js";
import p105 from "./bazaarlink.js";
import p106 from "./bluesminds.js";
import p107 from "./kilo-gateway.js";
import p108 from "./llm7.js";
import p109 from "./sambanova.js";
import p110 from "./tencent.js";
import p111 from "./morph.js";
import p112 from "./devin-cli.js";
import p113 from "./windsurf.js";
import p114 from "./poolside.js";
import p115 from "./tokenrouter.js";
import p116 from "./selfhosted-stt.js";
import p117 from "./selfhosted-tts.js";
import p118 from "./selfhosted-embedding.js";
export default [
p0,
@@ -197,6 +196,7 @@ export default [
p73,
p74,
p75,
p76,
p77,
p78,
p79,
@@ -221,8 +221,10 @@ export default [
p98,
p99,
p100,
// p102, // trae — hidden, no tool calling
p101,
p102,
p103,
p104,
p105,
p106,
p107,
@@ -232,11 +234,9 @@ export default [
p111,
p112,
p113,
// p114, // devin-cli — hidden, spawns local agent with shell/fs access
// p104, // windsurf — hidden, no tool calling
p114,
p115,
p116,
p117,
p118,
p119,
];
+2
View File
@@ -14,6 +14,7 @@ import { getCodeBuddyCnUsage, getCodeBuddyIntlUsage } from "./usage/codebuddy-cn
import { getGrokCliUsage } from "./usage/grok-cli.js";
import { getKimiUsage } from "./usage/kimi.js";
import { getDeepseekUsage } from "./usage/deepseek.js";
import { getFreebuffUsage } from "./usage/freebuff.js";
import { resolveQoderCredentials } from "./qoderModels.js";
import {
getIflowUsage,
@@ -54,6 +55,7 @@ const USAGE_HANDLERS = {
"grok-cli": (c) => getGrokCliUsage(c.accessToken, c.providerSpecificData, c.proxyOptions),
kimi: (c) => getKimiUsage(c.accessToken, c.apiKey, c.proxyOptions, c.providerSpecificData),
deepseek: (c) => getDeepseekUsage(c.apiKey, c.proxyOptions),
freebuff: (c) => getFreebuffUsage(c.accessToken, c.providerSpecificData, c.proxyOptions),
};
export async function getUsageForProvider(connection, proxyOptions = null) {
+2
View File
@@ -15,6 +15,7 @@ import qoder from "./qoder.js";
import github from "./github.js";
import kiro from "./kiro.js";
import cursor from "./cursor.js";
import freebuff from "./freebuff.js";
import kimi from "./kimi.js";
import kilocode from "./kilocode.js";
import cline from "./cline.js";
@@ -40,6 +41,7 @@ const PROVIDERS = {
github,
kiro,
cursor,
freebuff,
kimi,
kilocode,
cline,