Puhuvat päät agenteille: ? merkki jos agentti kysyy jotain. Lisäksi simulaatio näistä + chattiloki

This commit is contained in:
2026-04-03 12:50:31 +03:00
parent f266c121c2
commit 2e7ddf6f1e
2 changed files with 18 additions and 18 deletions

Binary file not shown.

View File

@@ -3,7 +3,7 @@
<head> <head>
<meta charset="UTF-8"> <meta charset="UTF-8">
<meta name="viewport" content="width=device-width, initial-scale=1.0"> <meta name="viewport" content="width=device-width, initial-scale=1.0">
<title>Kipinä Agent Playground</title> <title>Kipinä Agentic Playground</title>
<style> <style>
:root { :root {
--bg-color: #0d1117; --bg-color: #0d1117;
@@ -561,17 +561,17 @@
z-index: 10; z-index: 10;
} }
/* State: Kysymys (Sininen ?) */ /* State: Kysymys (Oranssi ?) */
.gallery-head-wrap.state-question::after { .gallery-head-wrap.state-question::after {
content: '?'; content: '?';
color: #ffffff; color: #ffffff;
font-weight: 900; font-weight: 900;
font-family: system-ui, -apple-system, sans-serif; font-family: system-ui, -apple-system, sans-serif;
animation: speech-pulse 1s infinite alternate; animation: speech-pulse 1s infinite alternate;
background: #1f6feb; border: 1px solid #58a6ff; background: #d29922; border: 1px solid #e3a830;
} }
.gallery-head.state-question { .gallery-head.state-question {
border-color: #58a6ff; box-shadow: 0 0 15px rgba(88, 166, 255, 0.4); border-color: #d29922; box-shadow: 0 0 15px rgba(210, 153, 34, 0.4);
animation: confused-shake 2s infinite ease-in-out; filter: grayscale(10%); opacity: 0.9; animation: confused-shake 2s infinite ease-in-out; filter: grayscale(10%); opacity: 0.9;
} }
@@ -686,7 +686,7 @@
<div class="container"> <div class="container">
<div style="display: flex; justify-content: space-between; align-items: flex-start; margin-bottom: 20px;"> <div style="display: flex; justify-content: space-between; align-items: flex-start; margin-bottom: 20px;">
<div> <div>
<h1 style="margin-bottom:0;" data-i18n="main_title"><span style="color:#ff6b00">Kipinä</span> <span>Agent Playground</span></h1> <h1 style="margin-bottom:0;" data-i18n="main_title"><span style="color:#ff6b00">Kipinä</span> <span>Agentic Playground</span></h1>
<p class="sub" style="margin-bottom:0;"><span data-i18n="main_subtitle">Hajautettu WebGPU Laskentaverkko</span> · <span id="hub-version" style="color:#58a6ff">-</span></p> <p class="sub" style="margin-bottom:0;"><span data-i18n="main_subtitle">Hajautettu WebGPU Laskentaverkko</span> · <span id="hub-version" style="color:#58a6ff">-</span></p>
</div> </div>
<div class="lang-selector"> <div class="lang-selector">
@@ -1298,7 +1298,7 @@
const exampleQ = questions[agent] || 'Mitä minun pitäisi tehdä seuraavaksi?'; const exampleQ = questions[agent] || 'Mitä minun pitäisi tehdä seuraavaksi?';
const reason = prompt.trim().length <= 15 ? 'Määrittely on tällä hetkellä liian lyhyt.' : 'Ohje on jätetty avoimeksi (? -merkki).'; const reason = prompt.trim().length <= 15 ? 'Määrittely on tällä hetkellä liian lyhyt.' : 'Ohje on jätetty avoimeksi (? -merkki).';
wrap.setAttribute('data-tooltip', ` ${agentTitle}: "${exampleQ}"\n\n(Agentti odottaa päätöstäsi: ${reason})`); wrap.setAttribute('data-tooltip', `[?] ${agentTitle}: "${exampleQ}"\n\n(Agentti odottaa päätöstäsi: ${reason})`);
} }
// Normaali keskustelu aktiivisena // Normaali keskustelu aktiivisena
else if (selectedAgents.has(agent)) { else if (selectedAgents.has(agent)) {
@@ -1369,13 +1369,13 @@
}; };
const simQuestions = { const simQuestions = {
client: ` ${agentTitle}: "Saisimmeko tähän vielä yhden muutoksen?"\n(Simuloitu lisätoive: "Voisimmeko muuttaa napin värit hieman kirkkaammiksi?")`, client: `[?] ${agentTitle}: "Saisimmeko tähän vielä yhden muutoksen?"\n(Simuloitu lisätoive: "Voisimmeko muuttaa napin värit hieman kirkkaammiksi?")`,
manager: ` ${agentTitle}: "Onko arkkitehtuuri jo valmis?"\n(Simuloitu kysely: "Laittakaa minulle päivitys rajapintojen tilanteesta.")`, manager: `[?] ${agentTitle}: "Onko arkkitehtuuri jo valmis?"\n(Simuloitu kysely: "Laittakaa minulle päivitys rajapintojen tilanteesta.")`,
coder: ` ${agentTitle}: "Täsmennystä kaivataan..."\n(Simuloitu kysely: "Tehdäänkö tämä komponentti uudestaan vai hyödynnetäänkö vanhaa?")`, coder: `[?] ${agentTitle}: "Täsmennystä kaivataan..."\n(Simuloitu kysely: "Tehdäänkö tämä komponentti uudestaan vai hyödynnetäänkö vanhaa?")`,
data: ` ${agentTitle}: "Outo tietorakenne?"\n(Simuloitu utelu: "Miksi asiakkaan lähettämä JSON on formatoitu näin? Pyydän korjausta.")`, data: `[?] ${agentTitle}: "Outo tietorakenne?"\n(Simuloitu utelu: "Miksi asiakkaan lähettämä JSON on formatoitu näin? Pyydän korjausta.")`,
qa: ` ${agentTitle}: "Puuttuvat testiolosuhteet?"\n(Simuloitu ihmettely: "Onko meillä valmista testidataa tälle skenaariolle?")`, qa: `[?] ${agentTitle}: "Puuttuvat testiolosuhteet?"\n(Simuloitu ihmettely: "Onko meillä valmista testidataa tälle skenaariolle?")`,
tester: ` ${agentTitle}: "Julkaisulupa?"\n(Simuloitu kysymys: "Docker-imaget ovat valmiina. Voidaanko painaa nappia?")`, tester: `[?] ${agentTitle}: "Julkaisulupa?"\n(Simuloitu kysymys: "Docker-imaget ovat valmiina. Voidaanko painaa nappia?")`,
observer: ` ${agentTitle}: "Laatumetriikat uupuvat..."\n(Simuloitu huomio: "Mittaustulokset viiveestä eivät ole saapuneet vielä lokiin.")` observer: `[?] ${agentTitle}: "Laatumetriikat uupuvat..."\n(Simuloitu huomio: "Mittaustulokset viiveestä eivät ole saapuneet vielä lokiin.")`
}; };
let textRaw = ""; let textRaw = "";
@@ -1386,10 +1386,10 @@
textRaw = txt.replace(/\n\(/g, ' - ').replace(/\)/g, ''); textRaw = txt.replace(/\n\(/g, ' - ').replace(/\)/g, '');
termColor = '#ff4444'; termColor = '#ff4444';
} else { } else {
const txt = simQuestions[randAgent] || ` ${agentTitle}: "Minulla olisi ehdotus..."`; const txt = simQuestions[randAgent] || `[?] ${agentTitle}: "Minulla olisi ehdotus..."`;
wrap.setAttribute('data-tooltip', txt); wrap.setAttribute('data-tooltip', txt);
textRaw = txt.replace(/\n\(/g, ' - ').replace(/\)/g, ''); textRaw = txt.replace(/\n\(/g, ' - ').replace(/\)/g, '');
termColor = '#58a6ff'; termColor = '#d29922';
} }
// Tulostetaan tapahtuma terminaaliin // Tulostetaan tapahtuma terminaaliin
@@ -2537,7 +2537,7 @@
const translations = { const translations = {
fi: { fi: {
main_title: "<span style=\"color:#ff6b00\">Kipinä</span> <span>Agent Playground</span>", main_title: "<span style=\"color:#ff6b00\">Kipinä</span> <span>Agentic Playground</span>",
main_subtitle: "Hajautettu WebGPU Laskentaverkko", main_subtitle: "Hajautettu WebGPU Laskentaverkko",
tab_network: "Laskentaverkko", tab_network: "Laskentaverkko",
tab_codelab: "Koodilaboratorio", tab_codelab: "Koodilaboratorio",
@@ -2563,7 +2563,7 @@
metric_uptime: "Käynnissä" metric_uptime: "Käynnissä"
}, },
se: { se: {
main_title: "<span style=\"color:#ff6b00\">Kipinä</span> <span>Agent Playground</span>", main_title: "<span style=\"color:#ff6b00\">Kipinä</span> <span>Agentic Playground</span>",
main_subtitle: "Decentraliserat WebGPU Beräkningsnätverk", main_subtitle: "Decentraliserat WebGPU Beräkningsnätverk",
tab_network: "Kalkylnätverk", tab_network: "Kalkylnätverk",
tab_codelab: "Kodlaboratorium", tab_codelab: "Kodlaboratorium",
@@ -2589,7 +2589,7 @@
metric_uptime: "Drifttid" metric_uptime: "Drifttid"
}, },
en: { en: {
main_title: "<span style=\"color:#ff6b00\">Kipinä</span> <span>Agent Playground</span>", main_title: "<span style=\"color:#ff6b00\">Kipinä</span> <span>Agentic Playground</span>",
main_subtitle: "Decentralized WebGPU Compute Network", main_subtitle: "Decentralized WebGPU Compute Network",
tab_network: "Compute Network", tab_network: "Compute Network",
tab_codelab: "Code Laboratory", tab_codelab: "Code Laboratory",