Show local AI activity feedback
Build and publish static assets / publish (push) Successful in 8m21s

This commit is contained in:
Ein Anderssono
2026-10-19 12:36:43 +02:00
parent 2794b8904c
commit 214f3b5cbd
9 changed files with 67 additions and 45 deletions
+19 -4
View File
@@ -1,6 +1,6 @@
/* Browser-only, best-effort assistance. All executable/model/prompt assets come from our static service. */
(function (global) {
const base = '/static/wllama-gemma3-v1/';
const base = '/static/wllama-gemma3-v2/';
const dbName = 'ai-spel-local-assistance-v1';
let enginePromise;
let loadedEngine;
@@ -161,12 +161,27 @@
}
async function assist(message, transcript, worldSnapshot) {
if (!enabled || !loadedEngine || !await isAccepted()) return {};
return boundedInfer('prepare_turn', {player_message: message.slice(0, 1200), recent_dialogue: transcript.slice(-12).map(line => line.slice(0, 240)), world_snapshot: JSON.stringify(worldSnapshot).slice(0, 1200)}, 5000);
announce({type: 'activity', text: 'Lokal Gemma 3 körs på den här enheten för att förbereda handlingen.'});
try {
const result = await boundedInfer('prepare_turn', {player_message: message.slice(0, 1200), recent_dialogue: transcript.slice(-12).map(line => line.slice(0, 240)), world_snapshot: JSON.stringify(worldSnapshot).slice(0, 1200)}, 5000);
announce({type: 'activity', text: 'Lokal Gemma 3 är klar. Originalhandlingen skickas nu vidare till berättartjänsten.'});
return result;
} catch (error) {
announce({type: 'activity', text: 'Lokal Gemma 3 kunde inte förbereda handlingen. Originaltexten skickas ändå vidare till berättartjänsten.'});
throw error;
}
}
async function offline(message, transcript, worldSnapshot) {
if (!enabled || !loadedEngine || !await isAccepted()) return '';
const result = await boundedInfer('offline_help', {player_message: message.slice(0, 1200), recent_dialogue: transcript.slice(-12).map(line => line.slice(0, 240)), world_snapshot: JSON.stringify(worldSnapshot).slice(0, 1200)}, 10000);
return String(result.offline_reply || 'Jag kan inte skapa ett lokalt förslag med den information som finns sparad.');
announce({type: 'activity', text: 'Lokal Gemma 3 arbetar offline med ett osparat hjälpförslag.'});
try {
const result = await boundedInfer('offline_help', {player_message: message.slice(0, 1200), recent_dialogue: transcript.slice(-12).map(line => line.slice(0, 240)), world_snapshot: JSON.stringify(worldSnapshot).slice(0, 1200)}, 10000);
announce({type: 'activity', text: 'Lokal Gemma 3 har skapat ett osparat hjälpförslag.'});
return String(result.offline_reply || 'Jag kan inte skapa ett lokalt förslag med den information som finns sparad.');
} catch (error) {
announce({type: 'activity', text: 'Lokal Gemma 3 kunde inte skapa ett offlineförslag.'});
throw error;
}
}
async function settings(command) {
const normalized = command.trim().toLocaleLowerCase('sv');