From e92d1cedb3a3d132fb2a40c594641157685d3833 Mon Sep 17 00:00:00 2001 From: Jay Date: Sat, 11 Apr 2026 23:54:26 +0900 Subject: [PATCH] Bump version to v1.0.9 to fix RegExp invalid syntax in webview --- package.json | 2 +- src/extension.ts | 12 ++++++------ 2 files changed, 7 insertions(+), 7 deletions(-) diff --git a/package.json b/package.json index 24d4edd..2dd5cc5 100644 --- a/package.json +++ b/package.json @@ -2,7 +2,7 @@ "name": "connect-ai-lab", "displayName": "Connect AI LAB", "description": "100% 로컬 AI 코딩 에이전트 — 파일 생성, 코드 편집, 터미널 실행을 오프라인으로. Ollama + Gemma/Llama/DeepSeek 지원.", - "version": "1.0.8", + "version": "1.0.9", "publisher": "connectailab", "license": "MIT", "icon": "assets/icon.png", diff --git a/src/extension.ts b/src/extension.ts index 891f761..b419d87 100644 --- a/src/extension.ts +++ b/src/extension.ts @@ -616,12 +616,12 @@ input.addEventListener('input',()=>{input.style.height='auto';input.style.height function getTime(){return new Date().toLocaleTimeString('ko-KR',{hour:'2-digit',minute:'2-digit'})} function esc(s){const d=document.createElement('div');d.innerText=s;return d.innerHTML} function fmt(t){ - t=t.replace(new RegExp('([\\s\\S]*?)<\\/create_file>', 'g'),(_,p,c)=>'
\uD83D\uDCC1 '+esc(p)+' \u2014 \uC790\uB3D9 \uC0DD\uC131\uB428
'+esc(c)+'
'); - t=t.replace(new RegExp('([\\s\\S]*?)<\\/edit_file>', 'g'),(_,p,c)=>'
\u270F\uFE0F '+esc(p)+' \u2014 \uD3B8\uC9D1\uB428
'+esc(c)+'
'); - t=t.replace(new RegExp('([\\s\\S]*?)<\\/run_command>', 'g'),(_,c)=>'
\u25B6 '+esc(c)+'
'); - t=t.replace(new RegExp('\\x60\\x60\\x60(\\w*)\\n([\\s\\S]*?)\\x60\\x60\\x60', 'g'),(_,lang,c)=>{const l=lang||'code';return '
'+l+'
'+esc(c)+'
'}); - t=t.replace(new RegExp('\\x60([^\\x60]+)\\x60', 'g'),(_,c)=>''+esc(c)+''); - t=t.replace(new RegExp('\\*\\*([^*]+)\\*\\*', 'g'),'$1'); + t=t.replace(new RegExp('([\\\\s\\\\S]*?)<\\\\/create_file>', 'g'),(_,p,c)=>'
\uD83D\uDCC1 '+esc(p)+' \u2014 \uC790\uB3D9 \uC0DD\uC131\uB428
'+esc(c)+'
'); + t=t.replace(new RegExp('([\\\\s\\\\S]*?)<\\\\/edit_file>', 'g'),(_,p,c)=>'
\u270F\uFE0F '+esc(p)+' \u2014 \uD3B8\uC9D1\uB428
'+esc(c)+'
'); + t=t.replace(new RegExp('([\\\\s\\\\S]*?)<\\\\/run_command>', 'g'),(_,c)=>'
\u25B6 '+esc(c)+'
'); + t=t.replace(new RegExp('\\\\x60\\\\x60\\\\x60(\\\\w*)\\\\n([\\\\s\\\\S]*?)\\\\x60\\\\x60\\\\x60', 'g'),(_,lang,c)=>{const l=lang||'code';return '
'+l+'
'+esc(c)+'
'}); + t=t.replace(new RegExp('\\\\x60([^\\\\x60]+)\\\\x60', 'g'),(_,c)=>''+esc(c)+''); + t=t.replace(new RegExp('\\\\*\\\\*([^*]+)\\\\*\\\\*', 'g'),'$1'); return t; } function copyCode(btn){const code=btn.parentElement.querySelector('code');if(!code)return;navigator.clipboard.writeText(code.innerText).then(()=>{btn.textContent='\u2713 Copied';btn.classList.add('copied');setTimeout(()=>{btn.textContent='Copy';btn.classList.remove('copied')},1500)})}