From a793523b749769e828c6552b0de9489eb66cecec Mon Sep 17 00:00:00 2001 From: Andrew Lauppe Date: Tue, 20 Jan 2026 01:28:07 -0500 Subject: [PATCH 1/2] feat(models): add bedrock-converse-stream API type Add AWS Bedrock Converse Stream API to the list of supported model APIs, enabling custom provider configurations for Amazon Bedrock endpoints. This allows users to configure Bedrock models in their clawdbot.json: "models": { "providers": { "amazon-bedrock": { "baseUrl": "https://bedrock-runtime.us-east-1.amazonaws.com", "api": "bedrock-converse-stream", "models": [...] } } } The underlying adapter already exists; this change exposes it as a valid configuration option. --- src/config/types.models.ts | 3 ++- src/config/zod-schema.core.ts | 1 + 2 files changed, 3 insertions(+), 1 deletion(-) diff --git a/src/config/types.models.ts b/src/config/types.models.ts index 151c25238..92032ae1e 100644 --- a/src/config/types.models.ts +++ b/src/config/types.models.ts @@ -3,7 +3,8 @@ export type ModelApi = | "openai-responses" | "anthropic-messages" | "google-generative-ai" - | "github-copilot"; + | "github-copilot" + | "bedrock-converse-stream"; export type ModelCompatConfig = { supportsStore?: boolean; diff --git a/src/config/zod-schema.core.ts b/src/config/zod-schema.core.ts index 8b11825fd..13a0f1668 100644 --- a/src/config/zod-schema.core.ts +++ b/src/config/zod-schema.core.ts @@ -8,6 +8,7 @@ export const ModelApiSchema = z.union([ z.literal("anthropic-messages"), z.literal("google-generative-ai"), z.literal("github-copilot"), + z.literal("bedrock-converse-stream"), ]); export const ModelCompatSchema = z From 2dee177c9b52cacc608106a0bbc23da8ae767c6d Mon Sep 17 00:00:00 2001 From: Andrew Lauppe Date: Tue, 20 Jan 2026 01:28:13 -0500 Subject: [PATCH 2/2] fix(models): attach provider to inline model definitions When resolving models from custom provider configurations, ensure the provider name is attached to each inline model entry. This fixes model resolution for custom providers where the model definition exists in the config but lacks an explicit provider field. Without this fix, inline models from custom providers (like amazon-bedrock) would fail to resolve because the provider context was lost during the flatMap operation. --- src/agents/pi-embedded-runner/model.ts | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/src/agents/pi-embedded-runner/model.ts b/src/agents/pi-embedded-runner/model.ts index 5e2ffa540..2d146f80b 100644 --- a/src/agents/pi-embedded-runner/model.ts +++ b/src/agents/pi-embedded-runner/model.ts @@ -39,7 +39,7 @@ export function resolveModel( if (!model) { const providers = cfg?.models?.providers ?? {}; const inlineModels = - providers[provider]?.models ?? + providers[provider]?.models?.map((entry) => ({ ...entry, provider })) ?? Object.values(providers) .flatMap((entry) => entry?.models ?? []) .map((entry) => ({ ...entry, provider }));