chore: version up to v2.80.30 and package vsix
This commit is contained in:
+128
-1
@@ -157,6 +157,72 @@
|
||||
const agentPrompt = document.getElementById('agentPrompt');
|
||||
const negativePrompt = document.getElementById('negativePrompt');
|
||||
const updateAgentBtn = document.getElementById('updateAgentBtn');
|
||||
const agentMapOverlay = document.getElementById('agentMapOverlay');
|
||||
const closeAgentMapBtn = document.getElementById('closeAgentMapBtn');
|
||||
const cancelAgentMapBtn = document.getElementById('cancelAgentMapBtn');
|
||||
const saveAgentMapBtn = document.getElementById('saveAgentMapBtn');
|
||||
const editAgentMapJsonBtn = document.getElementById('editAgentMapJsonBtn');
|
||||
const addKnowledgeFolderBtn = document.getElementById('addKnowledgeFolderBtn');
|
||||
const addSkillFolderBtn = document.getElementById('addSkillFolderBtn');
|
||||
const addSkillFileBtn = document.getElementById('addSkillFileBtn');
|
||||
const knowledgeFolderList = document.getElementById('knowledgeFolderList');
|
||||
const skillFolderList = document.getElementById('skillFolderList');
|
||||
const agentMapAgentName = document.getElementById('agentMapAgentName');
|
||||
const agentMapStatus = document.getElementById('agentMapStatus');
|
||||
|
||||
let agentMapDraft = { agentPath: '', name: '', knowledgeFolders: [], skillFolders: [] };
|
||||
|
||||
function renderAgentMapLists() {
|
||||
const renderList = (listEl, items, kind) => {
|
||||
listEl.innerHTML = '';
|
||||
items.forEach((p, idx) => {
|
||||
const li = document.createElement('li');
|
||||
li.className = 'map-item';
|
||||
const icon = document.createElement('span');
|
||||
icon.className = 'map-item-icon';
|
||||
icon.textContent = kind === 'knowledge' ? '📁' : (p.endsWith('.md') || p.endsWith('.markdown') ? '📄' : '📁');
|
||||
const pathEl = document.createElement('span');
|
||||
pathEl.className = 'map-item-path';
|
||||
pathEl.textContent = p;
|
||||
pathEl.title = p;
|
||||
const removeBtn = document.createElement('button');
|
||||
removeBtn.className = 'map-item-remove';
|
||||
removeBtn.textContent = '✕';
|
||||
removeBtn.title = '연결 해제';
|
||||
removeBtn.onclick = () => {
|
||||
items.splice(idx, 1);
|
||||
renderAgentMapLists();
|
||||
};
|
||||
li.appendChild(icon);
|
||||
li.appendChild(pathEl);
|
||||
li.appendChild(removeBtn);
|
||||
listEl.appendChild(li);
|
||||
});
|
||||
};
|
||||
renderList(knowledgeFolderList, agentMapDraft.knowledgeFolders, 'knowledge');
|
||||
renderList(skillFolderList, agentMapDraft.skillFolders, 'skill');
|
||||
}
|
||||
|
||||
function openAgentMapModal() {
|
||||
if (!agentSel || agentSel.value === 'none' || !agentSel.value) {
|
||||
showToast('에이전트를 먼저 선택하세요.');
|
||||
return;
|
||||
}
|
||||
agentMapStatus.className = 'map-status';
|
||||
agentMapStatus.textContent = '불러오는 중...';
|
||||
agentMapDraft = { agentPath: agentSel.value, name: agentSel.options[agentSel.selectedIndex]?.text || '', knowledgeFolders: [], skillFolders: [] };
|
||||
agentMapAgentName.textContent = agentMapDraft.name;
|
||||
knowledgeFolderList.innerHTML = '';
|
||||
skillFolderList.innerHTML = '';
|
||||
agentMapOverlay.classList.add('visible');
|
||||
vscode.postMessage({ type: 'getAgentMap', agentPath: agentSel.value });
|
||||
}
|
||||
|
||||
function closeAgentMapModal() {
|
||||
agentMapOverlay.classList.remove('visible');
|
||||
agentMapStatus.textContent = '';
|
||||
agentMapStatus.className = 'map-status';
|
||||
}
|
||||
|
||||
let streamBody = null;
|
||||
let internetEnabled = false;
|
||||
@@ -387,6 +453,41 @@
|
||||
}
|
||||
vscode.postMessage({ type: 'getKnowledgeScope', agentPath: msg.selected });
|
||||
break;
|
||||
case 'agentMapData':
|
||||
if (msg.value) {
|
||||
agentMapDraft = {
|
||||
agentPath: agentMapDraft.agentPath,
|
||||
name: agentMapDraft.name,
|
||||
knowledgeFolders: Array.isArray(msg.value.knowledgeFolders) ? msg.value.knowledgeFolders.slice() : [],
|
||||
skillFolders: Array.isArray(msg.value.skillFolders) ? msg.value.skillFolders.slice() : [],
|
||||
};
|
||||
renderAgentMapLists();
|
||||
agentMapStatus.textContent = msg.value.exists ? '' : '새 매핑입니다. 저장하면 생성됩니다.';
|
||||
agentMapStatus.className = 'map-status';
|
||||
}
|
||||
break;
|
||||
case 'pickedPath':
|
||||
if (msg.value && msg.value.path && agentMapOverlay.classList.contains('visible')) {
|
||||
const target = (msg.value.kind === 'knowledgeFolder')
|
||||
? agentMapDraft.knowledgeFolders
|
||||
: agentMapDraft.skillFolders;
|
||||
if (!target.includes(msg.value.path)) {
|
||||
target.push(msg.value.path);
|
||||
renderAgentMapLists();
|
||||
}
|
||||
}
|
||||
break;
|
||||
case 'agentMapSaved':
|
||||
if (msg.value && msg.value.ok) {
|
||||
agentMapStatus.className = 'map-status ok';
|
||||
agentMapStatus.textContent = '저장되었습니다.';
|
||||
vscode.postMessage({ type: 'getKnowledgeScope', agentPath: agentMapDraft.agentPath });
|
||||
setTimeout(closeAgentMapModal, 700);
|
||||
} else {
|
||||
agentMapStatus.className = 'map-status error';
|
||||
agentMapStatus.textContent = '저장 실패: ' + (msg.value?.error || '알 수 없는 오류');
|
||||
}
|
||||
break;
|
||||
case 'knowledgeScope':
|
||||
if (knowledgeScopeSel) {
|
||||
knowledgeScopeSel.innerHTML = '';
|
||||
@@ -706,11 +807,37 @@
|
||||
};
|
||||
|
||||
if (editKnowledgeMapBtn) {
|
||||
editKnowledgeMapBtn.onclick = () => vscode.postMessage({ type: 'editKnowledgeMap' });
|
||||
editKnowledgeMapBtn.onclick = () => openAgentMapModal();
|
||||
}
|
||||
if (reloadKnowledgeMapBtn) {
|
||||
reloadKnowledgeMapBtn.onclick = () => vscode.postMessage({ type: 'getKnowledgeScope', agentPath: agentSel.value });
|
||||
}
|
||||
if (closeAgentMapBtn) closeAgentMapBtn.onclick = closeAgentMapModal;
|
||||
if (cancelAgentMapBtn) cancelAgentMapBtn.onclick = closeAgentMapModal;
|
||||
if (editAgentMapJsonBtn) {
|
||||
editAgentMapJsonBtn.onclick = () => vscode.postMessage({ type: 'editKnowledgeMap' });
|
||||
}
|
||||
if (addKnowledgeFolderBtn) {
|
||||
addKnowledgeFolderBtn.onclick = () => vscode.postMessage({ type: 'pickPath', kind: 'knowledgeFolder' });
|
||||
}
|
||||
if (addSkillFolderBtn) {
|
||||
addSkillFolderBtn.onclick = () => vscode.postMessage({ type: 'pickPath', kind: 'skillFolder' });
|
||||
}
|
||||
if (addSkillFileBtn) {
|
||||
addSkillFileBtn.onclick = () => vscode.postMessage({ type: 'pickPath', kind: 'skillFile' });
|
||||
}
|
||||
if (saveAgentMapBtn) {
|
||||
saveAgentMapBtn.onclick = () => {
|
||||
agentMapStatus.className = 'map-status';
|
||||
agentMapStatus.textContent = '저장 중...';
|
||||
vscode.postMessage({
|
||||
type: 'saveAgentMap',
|
||||
agentPath: agentMapDraft.agentPath,
|
||||
knowledgeFolders: agentMapDraft.knowledgeFolders,
|
||||
skillFolders: agentMapDraft.skillFolders,
|
||||
});
|
||||
};
|
||||
}
|
||||
|
||||
editAgentBtn.onclick = () => {
|
||||
if (agentSel.value === 'none') return;
|
||||
|
||||
Reference in New Issue
Block a user