diff --git a/ui/assets/app.js b/ui/assets/app.js index 1a228e3..8c945ad 100644 --- a/ui/assets/app.js +++ b/ui/assets/app.js @@ -216,6 +216,41 @@ async function sendChat() { } } +async function runSelfImprove() { + const cfg = getConfig(); + const objective = document.getElementById("improveObjective").value.trim() || "Improve assistant quality and reliability"; + const maxRaw = Number(document.getElementById("improveMax").value || 5); + const maxProposals = Math.max(1, Math.min(20, Number.isFinite(maxRaw) ? maxRaw : 5)); + const summary = document.getElementById("improveSummary"); + const list = document.getElementById("improveProposals"); + summary.textContent = "Generating proposals..."; + list.innerHTML = ""; + try { + const data = await apiPost("/assistant/self-improve", { + objective, + release_name: cfg.releaseName || null, + max_proposals: maxProposals, + feedback_limit: 50, + action_limit: 50, + include_edited_feedback: true, + include_rejected_feedback: true, + include_blocked_actions: true, + apply: false, + }); + summary.textContent = `${data.summary || ""}\n\nsignals: feedback=${data.signals?.feedback_rows ?? 0}, blocked_actions=${data.signals?.blocked_action_rows ?? 0}`; + renderRows(list, data.proposals || [], (p) => ` +
${p.proposal_id}: ${p.title}
+
${p.problem}
+
risk=${p.risk} | auto_apply_safe=${p.auto_apply_safe}
+
files=${(p.files || []).join(", ") || "-"}
+
tests=${(p.tests || []).join(" | ") || "-"}
+
${p.change || ""}
+ `); + } catch (e) { + summary.textContent = `Error: ${String(e)}`; + } +} + document.getElementById("saveConfig").addEventListener("click", saveConfig); document.getElementById("refreshMeta").addEventListener("click", loadMeta); document.getElementById("loadInbox").addEventListener("click", loadInbox); @@ -223,6 +258,7 @@ document.getElementById("loadTasks").addEventListener("click", loadTasks); document.getElementById("makeDraft").addEventListener("click", makeDraft); document.getElementById("saveLearn").addEventListener("click", saveLearn); document.getElementById("sendChat").addEventListener("click", sendChat); +document.getElementById("runImprove").addEventListener("click", runSelfImprove); loadConfig(); loadMeta(); diff --git a/ui/index.html b/ui/index.html index 3a07f36..0e5c607 100644 --- a/ui/index.html +++ b/ui/index.html @@ -77,6 +77,19 @@
+ +
+
+

Self-Improve

+
+ + + +
+
+

+      
+