korrespond v1 premiere: Bedrock routing, engine picker, journal auto-save + status

- KorrespondAgent: add resolveDeployment() helper; fix classify/translate to use
  Haiku via Bedrock, draft to use Haiku (quick) or Sonnet (thorough) — fixes broken
  withDeployment('gpt-4o-mini') calls when DBN_BEDROCK_ENABLED=true
- korrespond.php: add Quick/Thorough engine picker (case_toggle already present)
- korrespond.js: pass engine in request payload
- api/korrespond.php: accept user-selected engine, auto-save to case_tool_results
  for paid users after each successful run, update deployment log label
- CaseResults: add korr_status to listForUser SELECT, add updateStatus() method
- result-action.php: add set_status action for correspondence journal
- account.php: show status dropdown (Draft/Sent/Reply received/Resolved) for
  korrespond entries in #analyses, wire JS change handler to result-action.php

Co-Authored-By: Claude Sonnet 4.6 <noreply@anthropic.com>
This commit is contained in:
2026-05-25 21:52:09 +02:00
parent c2735fa919
commit b2e1bf268d
7 changed files with 94 additions and 6 deletions
+8
View File
@@ -70,6 +70,14 @@ require_once __DIR__ . '/includes/layout.php';
<label><input type="radio" name="korrTone" value="warm"> Conciliatory-warm</label>
</div>
<!-- Engine -->
<div class="control-row" id="korrEngineControl">
<span class="control-label">Engine</span>
<label><input type="radio" name="korrEngine" value="azure_mini" checked> &#x2601;&#xFE0F; Quick <small class="control-hint">(~40-70s)</small></label>
<label><input type="radio" name="korrEngine" value="claude_sonnet"> &#x2601;&#xFE0F; Thorough &#9733;&#9733; <small class="control-hint">(~70-120s)</small></label>
</div>
<p class="upload-hint">Quick uses Claude Haiku 4.5 for drafting — fast and solid for standard correspondence. Thorough uses Claude Sonnet 4.6 — better at multi-statute cases, complex appeal grounds, and ECHR framing.</p>
<!-- Case context fields -->
<div class="dr-control-grid">
<div class="dr-control-card">