diff --git a/network-poc/frontend/src/pages/index.astro b/network-poc/frontend/src/pages/index.astro index 0868d06..bf50d73 100644 --- a/network-poc/frontend/src/pages/index.astro +++ b/network-poc/frontend/src/pages/index.astro @@ -612,7 +612,7 @@ OUTPUT FORMAT: // === Terminal commands === const kpnCommands = { - 'kpn': ['help','run','project','pipeline','load','status','models','clear'], + 'kpn': ['help','run','project','pipeline','stop','load','status','models','clear'], 'kpn run': ['coder','coder-3b','manager','tester','qa','qwen-coder','smollm-135m'], 'kpn load': ['1','2'], 'kpn project': ['"'], @@ -682,11 +682,21 @@ OUTPUT FORMAT: if (sub === 'help' || !sub) { termLog(' kpn run <malli> "prompti" — aja tehtävä', '#a5d6ff'); termLog(' kpn project "kuvaus" — monivaiheinen projekti', '#a5d6ff'); - termLog(' kpn pipeline "tehtävä" — nopea: manageri→koodari→testaaja', '#a5d6ff'); + termLog(' kpn pipeline "tehtävä" — nopea: asiakas→manageri→koodari→testaaja', '#a5d6ff'); + termLog(' kpn stop — keskeytä pipeline', '#a5d6ff'); termLog(' kpn load — lataa kielimalli', '#a5d6ff'); termLog(' kpn models — mallit', '#a5d6ff'); termLog(' kpn status — verkon tila', '#a5d6ff'); termLog(' kpn clear — tyhjennä', '#a5d6ff'); + } else if (sub === 'stop') { + if (pipelineAbort) { + pipelineAbort.abort(); + pipelineAbort = null; + termLog(' ✋ Pipeline keskeytetty', '#d29922'); + highlightAgent(null); + } else { + termLog(' Ei käynnissä olevaa pipelinea', '#8b949e'); + } } else if (sub === 'clear') { termPanel.innerHTML = ''; } else if (sub === 'load') { const btn = document.getElementById('compute-btn'); @@ -785,6 +795,7 @@ OUTPUT FORMAT: } async function kpnProject(task) { + pipelineAbort = new AbortController(); const cli = agents.client || Object.values(agents)[0]; const mgr = agents.manager || Object.values(agents)[1]; const cdr = agents.coder || Object.values(agents)[2]; @@ -1034,6 +1045,7 @@ OUTPUT FORMAT: } async function kpnPipelineSimple(task) { + pipelineAbort = new AbortController(); const cli = agents.client || Object.values(agents)[0]; termLog(`━━━ Pipeline ━━━`); termLog(`\n[1/4] ${esc(cli.name)} — vaatimukset`); diff --git a/network-poc/nodes.db b/network-poc/nodes.db index 19e9928..ee0f37a 100644 Binary files a/network-poc/nodes.db and b/network-poc/nodes.db differ