Skip to content

Commit e02d923

Browse files
authored
feat: add model provider registry and config-driven provider settings (#837)
* docs: add model provider registry SSOT plan * docs: expand model provider registry plan * docs: align provider plan with OpenClaw * docs: align provider plan with OpenClaw * Ralph iteration 1: work in progress * Ralph iteration 2: work in progress * Ralph iteration 3: work in progress * Ralph iteration 4: work in progress * Ralph iteration 5: work in progress * Ralph iteration 6: work in progress * Ralph iteration 1: work in progress * Ralph iteration 2: work in progress * Ralph iteration 3: work in progress * Ralph iteration 4: work in progress * Ralph iteration 5: work in progress * fix ralph loop * fix: scope BYOK model inventory by provider key * fix: align provider validation and oauth persistence * fix: preserve custom labels and provider headers * chore: ignore local opencode workspace files * fix: preserve secret-backed providers in compiled config * fix: stabilize desktop dev startup and provider icons * fix: restore custom provider actions and add model probe * fix: refine provider settings list and labels * fix: improve provider metadata and Xiaomi model support * fix: vendor provider logos locally * fix: refine provider labels and local icons * fix: streamline custom provider creation * fix: align google ai studio with openclaw docs * feat: add more BYOK model providers * fix: update NVIDIA API key link * fix: restore launchd start build stability * fix: restore quota fallback byok selection * fix: use saved provider key for model refresh * fix: preserve custom provider model ids Keep slash-qualified model ids intact for custom provider runtimes so compatible gateways receive the exact upstream model name. Also narrow models-page API key validation inputs to strings so the web build succeeds with saved secret refs. * fix: sync oauth auth profiles into new workspaces * fix: preserve aliased BYOK selection and fallback models
1 parent a5128d1 commit e02d923

105 files changed

Lines changed: 9928 additions & 6760 deletions

File tree

Some content is hidden

Large Commits have some content hidden by default. Use the searchbox below for content that may be hidden.

.gitignore

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -38,3 +38,4 @@ apps/desktop/build-config.json
3838
.claude/worktrees
3939
.claude/worktrees/
4040
.task/
41+
.opencode/

apps/controller/openapi.json

Lines changed: 1087 additions & 269 deletions
Large diffs are not rendered by default.

apps/controller/scripts/bundle-runtime-plugins.mjs

Lines changed: 8 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -30,6 +30,11 @@ const MANIFEST_ID_FIXES = {
3030
"wecom-openclaw-plugin": "wecom",
3131
};
3232

33+
function shouldCopyPluginPath(source) {
34+
const basename = path.basename(source);
35+
return basename !== ".bin" && basename !== "node_modules";
36+
}
37+
3338
function getVirtualStoreNodeModules(realPkgPath) {
3439
let currentPath = realPkgPath;
3540
while (currentPath !== dirname(currentPath)) {
@@ -157,7 +162,7 @@ async function bundlePlugin({ id, npmName }) {
157162
recursive: true,
158163
force: true,
159164
dereference: true,
160-
filter: (source) => path.basename(source) !== ".bin",
165+
filter: shouldCopyPluginPath,
161166
});
162167
await maybeFixPluginManifest(outputDir);
163168

@@ -217,11 +222,12 @@ async function bundlePlugin({ id, npmName }) {
217222

218223
const destinationPath = path.join(outputNodeModules, packageName);
219224
await mkdir(path.dirname(destinationPath), { recursive: true });
225+
await rm(destinationPath, { recursive: true, force: true });
220226
await cp(realPackagePath, destinationPath, {
221227
recursive: true,
222228
force: true,
223229
dereference: true,
224-
filter: (source) => path.basename(source) !== ".bin",
230+
filter: shouldCopyPluginPath,
225231
});
226232
}
227233
}

apps/controller/src/lib/byok-providers.ts

Lines changed: 0 additions & 24 deletions
This file was deleted.

0 commit comments

Comments
 (0)