Fix Bedrock advocate synthesis: engine guard, response_format, Claude engine option

- DeepResearchAgent: engine guard now accepts dbn_legal_v3, claude_sonnet, claude_haiku
  (previously stripped these to azure_mini, breaking dbn_legal_v3 selection and
  preventing Claude engines from reaching the correct synthesis branch)
- DbnBedrockGateway: remove response_format=json_object from chat payload — LiteLLM
  converts this to a tool-use constraint for Bedrock, routing output into tool_calls
  instead of content (root cause of the {} empty brief)
- advocate.php: add Claude Sonnet 4.6 (AWS Bedrock) engine option
- account, billing, dashboard, nav, min-sak: pending UI/flow changes from prior sessions

Co-Authored-By: Claude Sonnet 4.6 <noreply@anthropic.com>
This commit is contained in:
2026-05-25 20:22:12 +02:00
parent 8205a22205
commit b78ab1e257
8 changed files with 1226 additions and 802 deletions
+4 -3
View File
@@ -96,9 +96,10 @@ final class DbnBedrockGateway
'temperature' => (float)($options['temperature'] ?? 0.2),
'max_tokens' => $options['max_tokens'] ?? 1200,
];
if (!empty($options['json'])) {
$payload['response_format'] = ['type' => 'json_object'];
}
// response_format is intentionally omitted for Claude via Bedrock.
// LiteLLM converts json_object to a tool-use constraint, routing output
// into tool_calls instead of content. Claude follows JSON instructions
// in the system prompt without needing response_format.
return $this->postJson($this->liteLlmUrl, $payload, (int)($options['timeout'] ?? 90));
}