Tofuist poistettu Playgroundilta (jää Agent Builder -esimerkiksi)

Poistettu: avatar-kortti, gallery-head, agentPrompts-entry,
avatarMap, värimapit. Tofuist on edelleen Agent Builderin
esimerkkiagentti ja docs/tofu-cheatsheet.md säilytetään.

Co-Authored-By: Claude Opus 4.6 (1M context) <noreply@anthropic.com>
This commit is contained in:
2026-04-08 11:43:15 +03:00
parent 48c832c61b
commit aebc64e76e

View File

@@ -1069,10 +1069,6 @@
<img src="/avatars/laiskiainen_notext.png" alt="DevOps">
<div class="avatar-name">DevOps</div>
</div>
<div class="avatar-card" id="avatar-tofuist" data-agent="tofuist" onclick="selectAgent('tofuist', event)">
<img src="/avatars/gecko_notext.png" alt="Tofuist">
<div class="avatar-name">Tofuist</div>
</div>
<div class="avatar-card" id="avatar-observer" data-agent="observer" onclick="selectAgent('observer', event)">
<img src="/avatars/aikuinen_susi.png" alt="Tarkkailija">
<div class="avatar-name">Tarkkailija</div>
@@ -1107,7 +1103,6 @@
<div class="gallery-head-wrap" id="wrap-data"><img src="/avatars/pesukarhu_notext.png" id="gallery-data" class="gallery-head" alt="Data"></div>
<div class="gallery-head-wrap" id="wrap-qa"><img src="/avatars/susi_notext.png" id="gallery-qa" class="gallery-head" alt="QA"></div>
<div class="gallery-head-wrap" id="wrap-tester"><img src="/avatars/laiskiainen_notext.png" id="gallery-tester" class="gallery-head" alt="DevOps"></div>
<div class="gallery-head-wrap" id="wrap-tofuist"><img src="/avatars/gecko_notext.png" id="gallery-tofuist" class="gallery-head" alt="Tofuist"></div>
</div>
<div style="text-align: center; margin-top: 16px;">
<button class="btn" id="simu-btn" onclick="toggleSimulation()" style="font-size: 11px; padding: 4px 10px; background: #0d1a2d; border-color: #58a6ff;">Käynnistä simulaatio</button>
@@ -1302,7 +1297,6 @@ ZIP-paketti sisältäen:
data: { name: 'Data-Agentti — System Prompt', model: 'qwen2.5-coder:7b', default: 'Olet tietokanta-asiantuntija. Vastaat skeemojen suunnittelusta, SQL-kyselyiden optimoinnista ja datamalleista.' },
qa: { name: 'QA — System Prompt', model: 'qwen2.5-coder:7b', default: 'Olet laadunvarmistaja (QA). Kirjoitat testejä, etsit virheitä ja varmistat, että kaikki reunatapaukset on huomioitu.' },
tester: { name: 'DevOps — System Prompt', model: 'qwen2.5-coder:7b', default: 'Olet DevOps-insinööri. Kirjoitat Dockerfile- ja docker-compose.yml-tiedostot, README:t ja käynnistysohjeet. Käytä aina multi-stage Docker buildia ja docker compose -orkestrointia.' },
tofuist: { name: 'Tofuist — System Prompt', model: 'qwen2.5-coder:7b', docs: '/docs/tofu-cheatsheet.md', default: 'You are an OpenTofu/Terraform IaC specialist. You write HCL infrastructure code: providers, resources, modules, variables, outputs, state management, and encryption. You follow OpenTofu best practices: use planning behaviors before apply, handle resource lifecycle (create_before_destroy, prevent_destroy), configure state encryption for sensitive data, and structure code with clear module boundaries. Always output valid HCL code. Use provider references correctly (required_providers block). Prefer data sources over hardcoded values.' },
};
const selectedAgents = new Set();
let sharedPrompt = localStorage.getItem('kpn-shared-prompt') || '';
@@ -1530,7 +1524,7 @@ ZIP-paketti sisältäen:
const title = document.getElementById('prompt-modal-title');
const fields = document.getElementById('prompt-modal-fields');
const agentNames = { manager: 'Manageri', coder: 'Koodari', tester: 'DevOps', qa: 'QA', data: 'Data', tofuist: 'Tofuist' };
const agentNames = { manager: 'Manageri', coder: 'Koodari', tester: 'DevOps', qa: 'QA', data: 'Data' };
title.textContent = `${agentNames[agent] || agent}${label}`;
fields.innerHTML = modalPromptParts.map((f, i) => `
@@ -2292,7 +2286,7 @@ IMPORTANT: Include get_db() dependency for FastAPI` },
}
renderPipelineSteps();
// Päivitetään agentin avatar tooltip + vilahdus
const avatarMap = { manager: 'avatar-kpn', coder: 'avatar-coder', tester: 'avatar-tester', qa: 'avatar-qa', data: 'avatar-data', tofuist: 'avatar-tofuist' };
const avatarMap = { manager: 'avatar-kpn', coder: 'avatar-coder', tester: 'avatar-tester', qa: 'avatar-qa', data: 'avatar-data' };
const avatarId = avatarMap[agent];
if (avatarId) {
const el = document.getElementById(avatarId);
@@ -2322,7 +2316,7 @@ IMPORTANT: Include get_db() dependency for FastAPI` },
if (pipelineSteps.length === 0) { container.style.display = 'none'; return; }
container.style.display = 'flex';
container.innerHTML = pipelineSteps.map((s, i) => {
const colors = { manager: '#d29922', coder: '#3fb950', tester: '#58a6ff', qa: '#a371f7', data: '#d2a8ff', tofuist: '#e3a336' };
const colors = { manager: '#d29922', coder: '#3fb950', tester: '#58a6ff', qa: '#a371f7', data: '#d2a8ff' };
const color = colors[s.agent] || '#8b949e';
const icon = s.status === 'done' ? '✓' : s.status === 'active' ? '◷' : '◯';
const iconColor = s.status === 'done' ? '#3fb950' : s.status === 'active' ? '#d29922' : '#8b949e';
@@ -2989,8 +2983,8 @@ ${fixableFiles}`;
function generateProjectReport(task, files, steps, staticIssues) {
const fileEntries = Object.entries(files);
const agentNames = { manager: 'Manageri', coder: 'Koodari', tester: 'DevOps', qa: 'QA', data: 'Data', tofuist: 'Tofuist' };
const agentColors = { manager: '#d29922', coder: '#3fb950', tester: '#58a6ff', qa: '#a371f7', data: '#d2a8ff', tofuist: '#e3a336' };
const agentNames = { manager: 'Manageri', coder: 'Koodari', tester: 'DevOps', qa: 'QA', data: 'Data' };
const agentColors = { manager: '#d29922', coder: '#3fb950', tester: '#58a6ff', qa: '#a371f7', data: '#d2a8ff' };
// Syntaksikorostus: kevyt regex-pohjainen highlighter
function highlightCode(code, filename) {
@@ -3100,9 +3094,9 @@ ${filesHtml}
}
function generateWorkflowSwimlane(steps) {
const agentLabels = { manager: 'Manageri', coder: 'Koodari', tester: 'DevOps', qa: 'QA', data: 'Data', tofuist: 'Tofuist' };
const agentColors = { manager: '#d29922', coder: '#3fb950', tester: '#58a6ff', qa: '#a371f7', data: '#d2a8ff', tofuist: '#e3a336' };
const agentBgs = { manager: '#1c1206', coder: '#0d1a0d', tester: '#0d1520', qa: '#170d22', data: '#1a0d22', tofuist: '#1a1506' };
const agentLabels = { manager: 'Manageri', coder: 'Koodari', tester: 'DevOps', qa: 'QA', data: 'Data' };
const agentColors = { manager: '#d29922', coder: '#3fb950', tester: '#58a6ff', qa: '#a371f7', data: '#d2a8ff' };
const agentBgs = { manager: '#1c1206', coder: '#0d1a0d', tester: '#0d1520', qa: '#170d22', data: '#1a0d22' };
const stepDescs = { 'Suunnittelu': 'Jakaa projektin tiedostoiksi', 'Review': 'Tarkistaa koodin laadun', 'Testit': 'Kirjoittaa pytest-testit', 'Dockerfile': 'Generoi Docker-imagen', 'Compose': 'Palvelumääritys', 'README': 'Käyttöohjeet', 'Validointi': 'Tarkistaa yhteensopivuuden', 'Korjaukset': 'Korjaa löydetyt ongelmat' };
var agents = [];