Commit Graph

26876 Commits

Author SHA1 Message Date
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
31f5463a1c refactor(agents): enrich tool descriptions 2026-04-05 13:31:57 +01:00
Peter Steinberger
987f4bba80 test: make vitest worker caps deterministic 2026-04-05 13:31:15 +01:00
Peter Steinberger
c74b222ec1 test: keep chutes env discovery on test harness 2026-04-05 13:31:15 +01:00
Peter Steinberger
9f7aaa8ad7 test: route vitest through node launcher 2026-04-05 13:31:15 +01:00
Peter Steinberger
074af3f40e test: speed up vitest launcher startup 2026-04-05 13:31:15 +01:00
Peter Steinberger
6f5ba51f74 docs: update IRC host examples 2026-04-05 13:27:04 +01:00
Peter Steinberger
1dc3da6eda refactor(agents): use structured tool definitions 2026-04-05 13:26:34 +01:00
Vincent Koc
7343d1b2ad fix(runtime): guard import-time side effects 2026-04-05 13:20:06 +01:00
Peter Steinberger
aca488d5be fix(gateway): keep watch restarts in-process 2026-04-05 13:16:22 +01:00
Peter Steinberger
2f5d6c859d style(test): normalize group policy helper export 2026-04-05 13:15:22 +01:00
Peter Steinberger
c039675054 refactor(test): split channel contract helpers by policy 2026-04-05 13:15:22 +01:00
Peter Steinberger
e9bf9fde06 test: split legacy pi-tools schema shards 2026-04-05 13:10:16 +01:00
Peter Steinberger
a060b89e3f fix(ci): remove duplicate grok test provider inference 2026-04-05 13:07: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
Vincent Koc
35b132c7eb fix(config): lazy bootstrap markdown table defaults 2026-04-05 13:04:19 +01:00
Peter Steinberger
227a13bd55 fix: pin defu to 6.1.5 2026-04-05 13:03:30 +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
Peter Steinberger
2635e07bf0 fix(openai): add multilingual gpt ack prompts 2026-04-05 12:57:41 +01:00
Peter Steinberger
76da484bed fix: infer synthetic provider auth in implicit tests 2026-04-05 12:54:09 +01:00
Peter Steinberger
21ef63d9f2 test: use threads for core vitest projects 2026-04-05 12:54:09 +01:00
Peter Steinberger
19c081d4a2 test: relax vitest host throttle on big machines 2026-04-05 12:54:09 +01:00
Peter Steinberger
41d08a6feb test: restore thread-first vitest defaults 2026-04-05 12:54:08 +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
259338565a test: normalize minimax provider timeout formatting 2026-04-05 12:53:24 +01:00
Peter Steinberger
59a243e46b test: stabilize provider discovery matrix cases 2026-04-05 12:53:24 +01:00
Peter Steinberger
d0afdb56ce fix: honor minimax api host during provider discovery 2026-04-05 12:53:23 +01:00
Peter Steinberger
bc7f845714 test: speed up focused pi-tools tool tests 2026-04-05 12:53:15 +01:00
Peter Steinberger
dbcd35f6c2 test: decouple pi-tools params test imports 2026-04-05 12:53:15 +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
Vincent Koc
5f6ba749ff fix(test): restore thread-first vitest defaults 2026-04-05 12:37:39 +01:00
Peter Steinberger
b9d26fd1a4 docs: add arabic locale scaffolding 2026-04-05 12:37:22 +01:00
Peter Steinberger
996dccb19c feat(agents): add structured execution item events 2026-04-05 12:36:33 +01:00
Peter Steinberger
3b7e6152d1 fix: retry reasoning-required compaction with minimal thinking 2026-04-05 12:35:50 +01:00
Vincent Koc
c9e505f54a docs(changelog): sort and verify new entries 2026-04-05 12:32:16 +01:00
Peter Steinberger
8ad6dd92d7 ci: retrigger stalled main workflow 2026-04-05 12:19:24 +01:00
Mariano
4175caee6e fix(agents): suppress commentary-phase output leaks (#61282)
Merged via squash.

Prepared head SHA: e392904f73
Co-authored-by: mbelinky <132747814+mbelinky@users.noreply.github.com>
Co-authored-by: mbelinky <132747814+mbelinky@users.noreply.github.com>
Reviewed-by: @mbelinky
2026-04-05 13:04:12 +02:00
Peter Steinberger
1bf5339b98 fix(gateway): pin startup channel registry 2026-04-05 12:01:03 +01:00
Peter Steinberger
283a6c65b7 ci: clone docs mirror without checkout api 2026-04-05 11:55:24 +01:00
Peter Steinberger
7fc3b22f53 fix: update changelog for Slack DM live reply routing (#59030) (thanks @afurm) 2026-04-05 19:53:23 +09:00
Andrii Furmanets
379f0d78e6 Slack: route live DM replies to channel 2026-04-05 19:53:23 +09:00
Peter Steinberger
25da786c68 docs: add generated locale picker support 2026-04-05 11:53:02 +01:00
Vincent Koc
cfe66c6e02 test(contracts): guard config footprint regressions 2026-04-05 11:48:40 +01:00
Peter Steinberger
fef155cdbc fix: tighten file tool schemas for openai 2026-04-05 11:46:34 +01:00
Vincent Koc
63db3443f1 fix(plugin-sdk): prefer canonical private-network opt-in 2026-04-05 11:45:09 +01:00
Peter Steinberger
0f58cef75e fix: finalize facade re-entry landing cleanup (#61180) (thanks @adam91holt) 2026-04-05 11:42:29 +01:00