Zhen Ye Claude Opus 4.6 (1M context) commited on
Commit
3954da2
·
1 Parent(s): 5940d42

fix: replace model names with analyst-style labels in reasoning trace

Browse files

GPT-4o → Primary Analyst, Claude → Validator A, Gemini → Validator B.
Loading text now reads "Cross-validating with intelligent analysts..."

Co-Authored-By: Claude Opus 4.6 (1M context) <noreply@anthropic.com>

Files changed (1) hide show
  1. demo/js/explain.js +7 -7
demo/js/explain.js CHANGED
@@ -44,7 +44,7 @@ async function loadExplainability(jobId, trackId) {
44
  if (_explainAbort) _explainAbort.abort();
45
  _explainAbort = new AbortController();
46
 
47
- panel.innerHTML = '<div class="explain-loading"><div class="explain-spinner"></div><span>Analyzing with GPT-4o, Claude, and Gemini...</span></div>';
48
 
49
  try {
50
  const resp = await fetch(`${ISR.API_BASE}/inspect/explain/${jobId}/${encodeURIComponent(trackId)}`, { signal: _explainAbort.signal });
@@ -97,9 +97,9 @@ function renderExplainGraph(data, container) {
97
  + '</div></div>';
98
 
99
  var llmHtml = '<div class="ex-llm-strip">'
100
- + '<span class="ex-llm-tag active">GPT-4o</span>'
101
- + '<span class="ex-llm-tag' + (data.consensus_bar && data.consensus_bar.validators_available >= 1 ? ' active' : '') + '">Claude</span>'
102
- + '<span class="ex-llm-tag' + (data.consensus_bar && data.consensus_bar.validators_available >= 2 ? ' active' : '') + '">Gemini</span>'
103
  + '</div>';
104
 
105
  // Trunk line
@@ -348,7 +348,7 @@ function render3DGraph(data, wrap) {
348
  html += '<strong style="color:' + node.color + ';font-size:12px">' + ISR.escHtml(node.label) + '</strong>';
349
  if (node.nodeType === 'feature' && node.nodeData.feat) {
350
  var f = node.nodeData.feat;
351
- if (f.reasoning) html += '<div style="margin-top:5px;padding-top:5px;border-top:1px solid rgba(255,255,255,0.1);color:#cbd5e1"><span style="color:#10b981;font-weight:600">GPT-4o:</span> ' + ISR.escHtml(f.reasoning) + '</div>';
352
  var vals = f.validators || {};
353
  Object.keys(vals).forEach(function(name) {
354
  var v = vals[name];
@@ -358,10 +358,10 @@ function render3DGraph(data, wrap) {
358
  });
359
  } else if (node.nodeType === 'category' && node.nodeData.features) {
360
  html += '<div style="margin-top:4px;color:#94a3b8">' + node.nodeData.features.length + ' features analyzed</div>';
361
- if (validatorsAvailable > 0) html += '<div style="color:#94a3b8">Validated by Claude + Gemini</div>';
362
  } else if (node.nodeType === 'verdict') {
363
  if (node.nodeData.reasoning_summary) html += '<div style="margin-top:4px;color:#cbd5e1">' + ISR.escHtml(node.nodeData.reasoning_summary) + '</div>';
364
- if (validatorsAvailable > 0) html += '<div style="margin-top:3px;color:#94a3b8">Claude: ' + claudeAgreed + '/' + claudeTotal + ' \u00b7 Gemini: ' + geminiAgreed + '/' + geminiTotal + '</div>';
365
  } else if (node.nodeType === 'input') {
366
  if (data.reasoning_summary) html += '<div style="margin-top:4px;color:#cbd5e1">' + ISR.escHtml(data.reasoning_summary) + '</div>';
367
  html += '<div style="margin-top:3px;color:#94a3b8">Mission: ' + ISR.escHtml((ISR.STATE.mission || 'N/A').slice(0, 50)) + '</div>';
 
44
  if (_explainAbort) _explainAbort.abort();
45
  _explainAbort = new AbortController();
46
 
47
+ panel.innerHTML = '<div class="explain-loading"><div class="explain-spinner"></div><span>Cross-validating with intelligent analysts...</span></div>';
48
 
49
  try {
50
  const resp = await fetch(`${ISR.API_BASE}/inspect/explain/${jobId}/${encodeURIComponent(trackId)}`, { signal: _explainAbort.signal });
 
97
  + '</div></div>';
98
 
99
  var llmHtml = '<div class="ex-llm-strip">'
100
+ + '<span class="ex-llm-tag active">Primary Analyst</span>'
101
+ + '<span class="ex-llm-tag' + (data.consensus_bar && data.consensus_bar.validators_available >= 1 ? ' active' : '') + '">Validator A</span>'
102
+ + '<span class="ex-llm-tag' + (data.consensus_bar && data.consensus_bar.validators_available >= 2 ? ' active' : '') + '">Validator B</span>'
103
  + '</div>';
104
 
105
  // Trunk line
 
348
  html += '<strong style="color:' + node.color + ';font-size:12px">' + ISR.escHtml(node.label) + '</strong>';
349
  if (node.nodeType === 'feature' && node.nodeData.feat) {
350
  var f = node.nodeData.feat;
351
+ if (f.reasoning) html += '<div style="margin-top:5px;padding-top:5px;border-top:1px solid rgba(255,255,255,0.1);color:#cbd5e1"><span style="color:#10b981;font-weight:600">Primary Analyst:</span> ' + ISR.escHtml(f.reasoning) + '</div>';
352
  var vals = f.validators || {};
353
  Object.keys(vals).forEach(function(name) {
354
  var v = vals[name];
 
358
  });
359
  } else if (node.nodeType === 'category' && node.nodeData.features) {
360
  html += '<div style="margin-top:4px;color:#94a3b8">' + node.nodeData.features.length + ' features analyzed</div>';
361
+ if (validatorsAvailable > 0) html += '<div style="color:#94a3b8">Cross-validated by independent analysts</div>';
362
  } else if (node.nodeType === 'verdict') {
363
  if (node.nodeData.reasoning_summary) html += '<div style="margin-top:4px;color:#cbd5e1">' + ISR.escHtml(node.nodeData.reasoning_summary) + '</div>';
364
+ if (validatorsAvailable > 0) html += '<div style="margin-top:3px;color:#94a3b8">Validator A: ' + claudeAgreed + '/' + claudeTotal + ' \u00b7 Validator B: ' + geminiAgreed + '/' + geminiTotal + '</div>';
365
  } else if (node.nodeType === 'input') {
366
  if (data.reasoning_summary) html += '<div style="margin-top:4px;color:#cbd5e1">' + ISR.escHtml(data.reasoning_summary) + '</div>';
367
  html += '<div style="margin-top:3px;color:#94a3b8">Mission: ' + ISR.escHtml((ISR.STATE.mission || 'N/A').slice(0, 50)) + '</div>';