Korjattu: agents ja defaultAgents siirretty scriptin alkuun (let hoisting)

Co-Authored-By: Claude Opus 4.6 (1M context) <noreply@anthropic.com>
This commit is contained in:
Jaakko Vanhala
2026-04-09 21:40:35 +03:00
parent 8beac57b50
commit 84d13153ed

View File

@@ -57,6 +57,16 @@ import AgentBar from "../components/AgentBar.astro";
} }
// === Globaalit tilat === // === Globaalit tilat ===
const defaultAgents = {
manager: { name: 'Manageri', avatar: '/avatars/owl.png', model: 'qwen-coder', prompt: 'You are a project manager. Break tasks into files, prioritize, coordinate.', order: 0 },
coder: { name: 'Koodari', avatar: '/avatars/chameleon.png', model: 'qwen-coder', prompt: 'You are an expert developer. Write clean, working code. Respond with code only.', order: 1 },
tester: { name: 'Testaaja', avatar: '/avatars/mantis.png', model: 'qwen-coder', prompt: 'You are a code reviewer. Find bugs, suggest improvements. Be brief.', order: 2 },
qa: { name: 'QA', avatar: '/avatars/tortoise.png', model: 'qwen-coder', prompt: 'You are a QA engineer. Write tests, verify edge cases.', order: 3 },
data: { name: 'Data', avatar: '/avatars/elephant.png', model: 'qwen-coder', prompt: 'You are a database expert. Design schemas, optimize queries.', order: 4 },
};
let agents = JSON.parse(localStorage.getItem('kpn-agents') || 'null') || JSON.parse(JSON.stringify(defaultAgents));
function saveAgents() { localStorage.setItem('kpn-agents', JSON.stringify(agents)); }
function getAgentModel(name) { const a = agents[name]; return a ? a.model : name; }
// === Tab switching === // === Tab switching ===
window.switchTab = function(tab) { window.switchTab = function(tab) {
@@ -424,25 +434,6 @@ import AgentBar from "../components/AgentBar.astro";
}; };
// Agenttiprompti-mapping // Agenttiprompti-mapping
// === Agenttikonfiguraatio (localStorage-persistenssi) ===
const defaultAgents = {
manager: { name: 'Manageri', avatar: '/avatars/owl.png', model: 'qwen-coder', prompt: 'You are a project manager. Break tasks into files, prioritize, coordinate.', order: 0 },
coder: { name: 'Koodari', avatar: '/avatars/chameleon.png', model: 'qwen-coder', prompt: 'You are an expert developer. Write clean, working code. Respond with code only.', order: 1 },
tester: { name: 'Testaaja', avatar: '/avatars/mantis.png', model: 'qwen-coder', prompt: 'You are a code reviewer. Find bugs, suggest improvements. Be brief.', order: 2 },
qa: { name: 'QA', avatar: '/avatars/tortoise.png', model: 'qwen-coder', prompt: 'You are a QA engineer. Write tests, verify edge cases.', order: 3 },
data: { name: 'Data', avatar: '/avatars/elephant.png', model: 'qwen-coder', prompt: 'You are a database expert. Design schemas, optimize queries.', order: 4 },
};
// Ladataan tallennettu konfiguraatio tai oletukset
let agents = JSON.parse(localStorage.getItem('kpn-agents') || 'null') || JSON.parse(JSON.stringify(defaultAgents));
function saveAgents() { localStorage.setItem('kpn-agents', JSON.stringify(agents)); }
// Agenttimallin haku nimellä
function getAgentModel(name) {
const a = agents[name];
return a ? a.model : name; // fallback: käytetään nimeä mallina
}
const agentModels = new Proxy({}, { get: (_, key) => getAgentModel(key) }); const agentModels = new Proxy({}, { get: (_, key) => getAgentModel(key) });
function termExec(cmd) { function termExec(cmd) {