Commit Graph

4133 Commits

Author SHA1 Message Date
Peter Steinberger 21270c2586
fix: resolve post-rebase typecheck drift 2026-04-05 14:53:53 +01:00
Peter Steinberger 629baf5fa7
refactor: move plugin setup and memory capabilities to registries 2026-04-05 14:53:53 +01:00
Tak Hoffman d28b02a7b1
fix: preserve Foundry image capability through runtime 2026-04-05 08:36:11 -05:00
Peter Steinberger 9a0d88a868
refactor: move talk config contract under plugin 2026-04-05 14:26:35 +01:00
Peter Steinberger 89e8c8672c
fix: break bundled channel bootstrap cycles 2026-04-05 14:20:31 +01:00
Vincent Koc 9efc033434 fix(anthropic): seed claude-cli model switches 2026-04-05 14:18:02 +01:00
Peter Steinberger e8cbc1ee8a
fix(discord): support carbon ratelimit signature drift 2026-04-05 14:11:43 +01:00
Peter Steinberger 9ddc3576d1
refactor: move elevenlabs talk config into plugin 2026-04-05 14:11:10 +01:00
Peter Steinberger c731c1e61f
fix(discord): sync proxy request client with carbon 2026-04-05 14:07:32 +01:00
Peter Steinberger 760c4be438
feat(agents): add provider-owned system prompt contributions 2026-04-05 14:05:41 +01:00
Vincent Koc 1a7c2a9bc8 fix(auth): persist claude-cli login profiles 2026-04-05 14:03:36 +01:00
Peter Steinberger 21d5f7a915
fix(test): restore signal test api boundary 2026-04-05 13:52:33 +01:00
Ayaan Zaidi 75752a862d
fix(plugins): add required bedrock mantle config schema 2026-04-05 18:11:37 +05:30
Ayaan Zaidi e4206007cc
fix(memory): stabilize manager runtime lazy import 2026-04-05 18:11:37 +05:30
Peter Steinberger d70162864a
chore(deps): update direct dependencies 2026-04-05 13:33:16 +01:00
Peter Steinberger c039675054
refactor(test): split channel contract helpers by policy 2026-04-05 13:15:22 +01:00
Vincent Koc fc9648b620 docs: add Bedrock inference profiles and Bedrock Mantle provider coverage, re-sort changelog 2026-04-05 13:04:47 +01:00
Peter Steinberger 88ea0751a9
fix(test): add lightweight whatsapp group-policy seam 2026-04-05 12:57:58 +01:00
Peter Steinberger 81c095d945
fix(test): break zalo group-policy import cycle 2026-04-05 12:57:58 +01:00
wirjo dbac5fa258
feat(bedrock): add Bedrock Mantle (OpenAI-compatible) provider (#61296)
* feat(bedrock): add Bedrock Mantle (OpenAI-compatible) provider

New amazon-bedrock-mantle extension that provides auto-discovery and
authentication for Amazon Bedrock Mantle endpoints.

Mantle (bedrock-mantle.<region>.api.aws) is Amazon Bedrock's OpenAI-
compatible API surface, separate from the existing bedrock-runtime
(ConverseStream) endpoint. It has its own model catalog including
models not available via ConverseStream (e.g. openai.gpt-oss-120b,
mistral.devstral-2-123b).

Extension structure:
- discovery.ts: Model discovery via GET /v1/models (OpenAI format),
  bearer token resolution, implicit provider configuration
- register.sync.runtime.ts: Provider registration with catalog,
  error classification (rate limits, context overflow)
- openclaw.plugin.json: Plugin manifest, enabledByDefault

Auth support:
- Long-lived Bedrock API key (AWS_BEARER_TOKEN_BEDROCK env var)
  created from the AWS Console → used directly as Bearer token
- Pre-generated SigV4-derived tokens (via aws-bedrock-token-generator)
  set in AWS_BEARER_TOKEN_BEDROCK → works transparently

Provider config (auto-resolved when AWS_BEARER_TOKEN_BEDROCK is set):
  api: "openai-completions"
  baseUrl: "https://bedrock-mantle.<region>.api.aws/v1"
  auth: "api-key" (bearer token)

Available in 12 regions: us-east-1, us-east-2, us-west-2,
ap-northeast-1, ap-south-1, ap-southeast-3, eu-central-1,
eu-west-1, eu-west-2, eu-south-1, eu-north-1, sa-east-1

Tests: 15 passing (13 discovery + 2 plugin registration)

* chore(bedrock): clarify mantle bearer auth scope

---------

Co-authored-by: Vincent Koc <vincentkoc@ieee.org>
2026-04-05 12:53:54 +01:00
Peter Steinberger deb212d3b0
fix(openai): tighten gpt chat action turns 2026-04-05 12:53:35 +01:00
Peter Steinberger d0afdb56ce
fix: honor minimax api host during provider discovery 2026-04-05 12:53:23 +01:00
wirjo 78fe96f2d4
feat(bedrock): add inference profile discovery and region injection (#61299)
* feat(bedrock): add inference profile discovery and region injection

Inference profiles (cross-region and application) work with ConverseStream
but require the SDK client region to match the profile region. Without
this, users get "The provided model identifier is invalid" errors when
using cross-region profiles like us.anthropic.claude-sonnet-4-6.

Changes:

1. Inference profile discovery (discovery.ts):
   - Call ListInferenceProfiles alongside ListFoundationModels (parallel)
   - Inference profiles INHERIT capabilities from their underlying
     foundation model (modalities, reasoning, context window, cost)
   - resolveBaseModelId() maps profile → foundation model:
     "us.anthropic.claude-sonnet-4-6" → "anthropic.claude-sonnet-4-6"
     Application ARNs → extract model ID from models[].modelArn
   - Graceful degradation if IAM lacks bedrock:ListInferenceProfiles
   - Provider filter applies to profiles via underlying model ARNs

2. Region injection (register.sync.runtime.ts):
   - Extract region from provider baseUrl or bedrockDiscovery.region
   - Pass through to pi-ai options.region in wrapStreamFn
   - Ensures SDK client connects to correct regional endpoint

3. Inference profile model detection (anthropic-family-cache-semantics.ts):
   - isAnthropicBedrockModel() now recognizes application inference
     profile ARNs (arn:aws:bedrock:...:application-inference-profile/*)

4. Tests (discovery.test.ts):
   - New: inference profile inheritance test (4 models: 1 foundation +
     3 profiles, verifies capability inheritance, inactive filtering)
   - New: graceful AccessDeniedException handling test
   - Updated: all existing tests for dual-API discovery pattern

Fixes #55642

* fix(bedrock): preserve inference profile model lookup

---------

Co-authored-by: Vincent Koc <vincentkoc@ieee.org>
2026-04-05 12:52:03 +01:00
Andrii Furmanets 379f0d78e6 Slack: route live DM replies to channel 2026-04-05 19:53:23 +09:00
Vincent Koc 63db3443f1 fix(plugin-sdk): prefer canonical private-network opt-in 2026-04-05 11:45:09 +01:00
Peter Steinberger 2d7ec1b641
refactor: split zai config sdk seam 2026-04-05 11:19:05 +01:00
Peter Steinberger be526d6423
refactor: split provider stream sdk seams 2026-04-05 11:19:05 +01:00
Peter Steinberger 0a21eebf56
fix(openai): keep gpt chat replies concise 2026-04-05 11:16:28 +01:00
Vincent Koc f02e435188
fix(google): support gemini cli personal oauth (#61260)
* fix(google): support gemini cli personal oauth

* Apply suggestion from @greptile-apps[bot]

Co-authored-by: greptile-apps[bot] <165735046+greptile-apps[bot]@users.noreply.github.com>

* fix(google): prefer gemini settings over auth env fallback

* chore(changelog): format rebased gemini entry

---------

Co-authored-by: greptile-apps[bot] <165735046+greptile-apps[bot]@users.noreply.github.com>
2026-04-05 11:12:54 +01:00
Vincent Koc be5a2611b9
test(anthropic): reuse wizard prompter helper (#61280) 2026-04-05 11:09:00 +01:00
Vincent Koc 3b84884793
fix(agents): harden host-managed claude-cli auth path (#61276) 2026-04-05 11:02:18 +01:00
Vincent Koc 3fa70f3044
fix(google): support gemini cli 2.5 model ids (#61261)
* fix(google): realign gemini cli model defaults

* fix(google): keep gemini cli defaults while adding 2.5 support

* fix(google): preserve gemini template reasoning flags

* fix(google): fall back to cli templates for gemini 2.5 ids

* fix(google): keep gemini cli 3.1 clones local
2026-04-05 10:43:20 +01:00
Vincent Koc d609f71c9b
fix(feishu): gate reasoning previews to stream sessions (#61271) 2026-04-05 10:40:22 +01:00
Peter Steinberger e468da1040
fix: improve gpt execution flow and visibility 2026-04-05 10:32:58 +01:00
Vincent Koc 4954d025e2
fix(telegram): gate reasoning previews to stream sessions (#61266) 2026-04-05 10:22:26 +01:00
Peter Steinberger 1fb0b4f557 fix: avoid stale claude-cli auth fallback (#61234) (thanks @darkamenosa) 2026-04-05 18:19:33 +09:00
Tuyen 7e724c6140 Anthropic: seed claude-cli runtime auth on setup 2026-04-05 18:19:33 +09:00
Tuyen 72ba7c8995 Anthropic: address claude-cli review feedback 2026-04-05 18:19:33 +09:00
Tuyen cd348659ce Anthropic: fix claude-cli runtime auth 2026-04-05 18:19:33 +09:00
Vincent Koc ef3a185225 fix(ci): keep bedrock config compat inside the extension 2026-04-05 10:08:47 +01:00
wesley 1030b498de
fix(acpx): retry persisted resume ids cleanly (#52209)
* fix(acpx): store agent session ID when session/load fails

When an ACP agent (e.g. Gemini CLI) rejects the acpx-generated session
ID via session/load and falls back to session/new, the agent-returned
session ID was previously discarded. This caused identity stuck at
pending forever, multi-turn failures, lost completion events, and
persistent reconcile warnings.

- Parse ACP protocol stream in runTurn() to capture agent session IDs
- Flip resolveRuntimeResumeSessionId() to prefer agentSessionId
- Add createIdentityFromHandleEvent() for handle-sourced identity
- Layer handle event identity before status in reconcile
- Add regression tests for load fallback and restart resume

Closes #52182

* ACPX: prefer decoded session ids

* ACPX: refresh runtime handle state from status

---------

Co-authored-by: Wesley <imwyvern@users.noreply.github.com>
2026-04-05 10:01:59 +01:00
Vincent Koc 2489913ede refactor(tlon): align internal network naming 2026-04-05 09:59:50 +01:00
Peter Steinberger 4a85810091
fix: migrate bedrock discovery config in doctor 2026-04-05 09:55:55 +01:00
Peter Steinberger 19de5d1b56
refactor: move provider discovery config into plugins 2026-04-05 09:55:55 +01:00
Vincent Koc 4613f121ad
fix(agents): preserve native Anthropic replay tool ids (#61254)
* fix(agents): preserve native Anthropic replay tool ids

* docs(changelog): note native Anthropic replay ids

* fix(agents): preserve native Anthropic replay ids selectively
2026-04-05 09:53:52 +01:00
Peter Steinberger 3d952aa35d fix(agents): preserve claude cli backend defaults 2026-04-05 17:51:41 +09:00
Vincent Koc 19e97193d3 fix(ci): make discord doctor loading bundler-safe 2026-04-05 09:48:11 +01:00
Peter Steinberger 455c642acb
feat: add implicit discovery toggles 2026-04-05 09:27:48 +01:00
Peter Steinberger bff55b55cb
style: normalize import ordering and wrapping 2026-04-05 09:26:39 +01:00
Peter Steinberger 5ac07b8ef0
fix: normalize huggingface refs and discovery timeout 2026-04-05 09:18:17 +01:00