feat: kakao_send_message 에이전트 도구화 + 멀티기기 메인챗 세션 동기화 + 터미널 전체화면
- src/tools/kakao.ts: 기존 KakaoNotify를 kakao_send_message 도구로 노출, 코드에디터에서는 차단 - app.js/server-v2.ts: 메인챗 마지막 활성 세션을 서버에 기록해 새 기기에서 열 때 자동 이어보기 - code.html/code.js/styles.css: 서버 터미널 패널 전체화면 토글 (Esc로 종료) - companion.py: .vbs 자동시작 시 cwd가 System32로 잡히는 문제 방지 위해 홈 디렉터리로 고정 - papa 워크스페이스: 우즈베크어 학습 진행상황, 서버 이름(지서버/클로서버) 메모 갱신 Co-Authored-By: Claude Sonnet 5 <noreply@anthropic.com>
This commit is contained in:
@@ -775,6 +775,10 @@ function createXtermShell(container, shellId) {
|
||||
toggleCodeTerminal();
|
||||
return false;
|
||||
}
|
||||
if (e.type === 'keydown' && e.key === 'Escape' && codeTermFullscreen) {
|
||||
toggleCodeTermFullscreen();
|
||||
return false;
|
||||
}
|
||||
return true;
|
||||
});
|
||||
const inst = { term, fitAddon, ptyReady: false };
|
||||
@@ -893,6 +897,23 @@ function toggleCodeTerminal() {
|
||||
}
|
||||
if (monacoEditor) setTimeout(() => monacoEditor.layout(), 60);
|
||||
}
|
||||
let codeTermFullscreen = false;
|
||||
function toggleCodeTermFullscreen() {
|
||||
const panel = document.getElementById('code-term-panel');
|
||||
const btn = document.getElementById('code-term-fullscreen-btn');
|
||||
if (!panel) return;
|
||||
codeTermFullscreen = !codeTermFullscreen;
|
||||
panel.classList.toggle('code-term-fullscreen', codeTermFullscreen);
|
||||
if (btn) { btn.classList.toggle('active', codeTermFullscreen); btn.title = codeTermFullscreen ? '전체화면 종료 (Esc)' : '전체화면'; }
|
||||
setTimeout(() => {
|
||||
const s = codeTermShells.find(s => s.id === activeCodeTermShellId);
|
||||
if (s?.fitAddon) s.fitAddon.fit();
|
||||
if (s?.term) s.term.focus();
|
||||
}, 60);
|
||||
}
|
||||
document.addEventListener('keydown', e => {
|
||||
if (e.key === 'Escape' && codeTermFullscreen) toggleCodeTermFullscreen();
|
||||
});
|
||||
// ── Browser Preview Panel ────────────────────────────────────────────────────
|
||||
let codePreviewOpen = false;
|
||||
function toggleCodePreview() {
|
||||
|
||||
Reference in New Issue
Block a user