Update ConnectAI codebase
This commit is contained in:
@@ -1011,6 +1011,42 @@
|
||||
});
|
||||
break;
|
||||
}
|
||||
case 'devilRebuttal': {
|
||||
// Devil Agent (도현) 카드. main assistant 답변 직후 chat 하단에 한 장 추가.
|
||||
// 사용자가 '재반박' 누르면 그 텍스트가 다음 user prompt 로 가서 main turn 한 번 더 돌고,
|
||||
// 재반박-입장 hint 가 prompt 에 prepend 됨.
|
||||
const v = msg.value || {};
|
||||
const chatEl = document.getElementById('chat');
|
||||
if (!chatEl) break;
|
||||
const card = document.createElement('div');
|
||||
card.className = 'devil-rebuttal-card';
|
||||
const persona = String(v.persona || '도현');
|
||||
const text = String(v.text || '');
|
||||
card.innerHTML = `
|
||||
<div class="devil-rebuttal-head">🎭 <strong>${escAttr(persona)}</strong>이(가) 반박합니다</div>
|
||||
<div class="devil-rebuttal-body"></div>
|
||||
<div class="devil-rebuttal-actions">
|
||||
<button class="devil-reply">재반박</button>
|
||||
<button class="devil-dismiss ghost">넘기기</button>
|
||||
</div>`;
|
||||
// body 는 textContent 로 안전하게.
|
||||
card.querySelector('.devil-rebuttal-body').textContent = text;
|
||||
chatEl.appendChild(card);
|
||||
chatEl.scrollTop = chatEl.scrollHeight;
|
||||
card.querySelector('.devil-dismiss').addEventListener('click', () => card.remove());
|
||||
card.querySelector('.devil-reply').addEventListener('click', () => {
|
||||
// 입력창에 prefix 채워서 사용자가 자기 반박 입력하게.
|
||||
const input = document.getElementById('input');
|
||||
if (input) {
|
||||
input.value = `[${persona}의 반박에 답변] `;
|
||||
input.focus();
|
||||
// 커서 끝으로.
|
||||
try { input.setSelectionRange(input.value.length, input.value.length); } catch {}
|
||||
}
|
||||
card.remove();
|
||||
});
|
||||
break;
|
||||
}
|
||||
case 'companyAlignmentCard': {
|
||||
// Intent Alignment 카드. kind에 따라 4가지 모드:
|
||||
// - 'auto-proceed' : confidence high → 자동 진행 안내(읽기 전용)
|
||||
|
||||
Reference in New Issue
Block a user