Update ConnectAI codebase

This commit is contained in:
g1nation
2026-05-18 08:15:01 +09:00
parent 88664c7c6e
commit 86cacaeb03
38 changed files with 1043 additions and 99 deletions
+73
View File
@@ -57,6 +57,20 @@
const googleFeedback = $('googleFeedback');
const googleError = $('googleError');
// ---- Devil Agent ----
const devilEnabled = $('devilEnabled');
// ---- Cloud LLM Providers ----
const prOpenrouterEnabled = $('prOpenrouterEnabled');
const prOpenrouterKey = $('prOpenrouterKey');
const prOpenrouterDefault = $('prOpenrouterDefault');
const prAnthropicEnabled = $('prAnthropicEnabled');
const prAnthropicKey = $('prAnthropicKey');
const prAnthropicDefault = $('prAnthropicDefault');
const prGeminiEnabled = $('prGeminiEnabled');
const prGeminiKey = $('prGeminiKey');
const prGeminiDefault = $('prGeminiDefault');
// ---- Banner ----
const bannerError = $('bannerError');
@@ -157,6 +171,43 @@
googleDisconnectBtn.addEventListener('click', () => vscode.postMessage({ type: 'google.disconnect' }));
googleIcalRefreshBtn.addEventListener('click', () => vscode.postMessage({ type: 'google.icalRefresh' }));
// ---- Devil Agent listener ----
devilEnabled.addEventListener('change', (e) =>
vscode.postMessage({ type: 'devilAgent.toggle', enabled: e.target.checked })
);
// ---- Cloud LLM Providers listeners ----
prOpenrouterEnabled.addEventListener('change', (e) =>
vscode.postMessage({ type: 'providers.update', providerId: 'openrouter', enabled: e.target.checked })
);
document.querySelector('[data-save="providers.openrouter.apiKey"]').addEventListener('click', () => {
vscode.postMessage({ type: 'providers.update', providerId: 'openrouter', apiKey: prOpenrouterKey.value });
prOpenrouterKey.value = '';
});
document.querySelector('[data-save="providers.openrouter.defaultModel"]').addEventListener('click', () =>
vscode.postMessage({ type: 'providers.update', providerId: 'openrouter', defaultModel: prOpenrouterDefault.value })
);
prAnthropicEnabled.addEventListener('change', (e) =>
vscode.postMessage({ type: 'providers.update', providerId: 'anthropic', enabled: e.target.checked })
);
document.querySelector('[data-save="providers.anthropic.apiKey"]').addEventListener('click', () => {
vscode.postMessage({ type: 'providers.update', providerId: 'anthropic', apiKey: prAnthropicKey.value });
prAnthropicKey.value = '';
});
document.querySelector('[data-save="providers.anthropic.defaultModel"]').addEventListener('click', () =>
vscode.postMessage({ type: 'providers.update', providerId: 'anthropic', defaultModel: prAnthropicDefault.value })
);
prGeminiEnabled.addEventListener('change', (e) =>
vscode.postMessage({ type: 'providers.update', providerId: 'gemini', enabled: e.target.checked })
);
document.querySelector('[data-save="providers.gemini.apiKey"]').addEventListener('click', () => {
vscode.postMessage({ type: 'providers.update', providerId: 'gemini', apiKey: prGeminiKey.value });
prGeminiKey.value = '';
});
document.querySelector('[data-save="providers.gemini.defaultModel"]').addEventListener('click', () =>
vscode.postMessage({ type: 'providers.update', providerId: 'gemini', defaultModel: prGeminiDefault.value })
);
document.querySelector('[data-save="advanced.ctxSize"]').addEventListener('click', () =>
vscode.postMessage({ type: 'advanced.update', maxContextSize: Number(advCtxSize.value) })
);
@@ -332,6 +383,28 @@
? `마지막 새로고침: ${g.lastIcalFetchAt.slice(0, 16).replace('T', ' ')}`
: '';
}
// ---- Devil Agent ----
if (state.devilAgent) {
devilEnabled.checked = !!state.devilAgent.enabled;
}
// ---- Cloud LLM Providers ----
const pr = state.providers;
if (pr) {
// OpenRouter
prOpenrouterEnabled.checked = !!pr.openrouter.enabled;
prOpenrouterKey.placeholder = pr.openrouter.hasApiKey ? '••• 저장됨 (덮어쓰려면 새 값)' : 'sk-or-...';
setIfNotFocused(prOpenrouterDefault, pr.openrouter.defaultModel);
// Anthropic
prAnthropicEnabled.checked = !!pr.anthropic.enabled;
prAnthropicKey.placeholder = pr.anthropic.hasApiKey ? '••• 저장됨 (덮어쓰려면 새 값)' : 'sk-ant-...';
setIfNotFocused(prAnthropicDefault, pr.anthropic.defaultModel);
// Gemini
prGeminiEnabled.checked = !!pr.gemini.enabled;
prGeminiKey.placeholder = pr.gemini.hasApiKey ? '••• 저장됨 (덮어쓰려면 새 값)' : 'AIzaSy...';
setIfNotFocused(prGeminiDefault, pr.gemini.defaultModel);
}
}
vscode.postMessage({ type: 'ready' });