-
Result
-
{error || JSON.stringify(result, null, 2) || "No run yet."}
+
+
+
+
+
+
+
Browser bridge sends bounded base64 JSON; API clients can use typed FileUpload.
+ {documents.length ?
{documents.length} file(s) ready. Manual quote rows will be ignored for this run.
: null}
+
+
+
+ {quotes.map((quote, index) => (
+
+ ))}
+
+
+
+
+
+
+
+
+
+
+ Recommendation
+ {!result ? No result yet. Run the fixture to produce the acceptance receipt.
: (
+ <>
+
+ Winner
+ {result.recommendation?.vendor}
+
+ {result.recommendation?.rationale}
+
+ - Score
- {result.recommendation?.score}
+ - Total
- {result.recommendation?.total_price}
+ - Delivery
- {result.recommendation?.delivery_days} days
+ - Warranty
- {result.recommendation?.warranty_months} months
+
+ Ranked quotes
+
+ {(result.ranked_quotes || []).map((quote) => - {quote.vendor}: {quote.score} pts
)}
+
+ Execution receipt
+ {result.execution_receipt?.payload_sha256 || "persisted by gateway/runtime"}
+ >
+ )}
+
+
+
);