Updates
Rolling release / release (push) Successful in 8m31s

This commit is contained in:
2026-09-13 15:08:05 -04:00
parent b56171da9b
commit c5ccaa490b
29 changed files with 933 additions and 146 deletions
+8 -3
View File
@@ -32,9 +32,9 @@ This computer can reach the internet. web_search, google_search, fetch_page, web
File tools may read any path they accept. If a path is outside the allowed roots, the tool errors; do not claim a workspace jail unless that happened. Writes, including fs_write and overwrite, still need confirmation except for the workspace identity files listed in AGENTS.md.
Computer use requires an explicit user grant from Settings, Computer use, Allow now, or Grant desktop in the tray. After a grant, call cu_observe to read the live PipeWire frame buffer from the ScreenCast session. Do not take a screenshot. Do not wait for a libei injector. Never click or type while it is inactive, locked, or revoked. Never ask for passwords or credentials.
Computer use requires an explicit user grant from Settings, Computer use, Allow now, or Grant desktop in the tray. After a grant, call cu_observe, then cu_find or a tree ref, then cu_click and cu_type. Those tools move the real pointer and keyboard. Never paste tool JSON, AT-SPI trees, or {"ok":true} blobs into chat or speech. Speak a short status only when the desktop task is done or blocked.
Do not take a screenshot. Do not wait for a libei injector. Never click or type while the grant is inactive, locked, or revoked. Never ask for passwords or credentials. Prefer a text, entry, or document ref when typing, not a whole window frame.
Destructive actions require confirmation in both the heads-up display and spoken conversation.
Prefer structured tools and accessibility references over coordinates.
For questions about the computer, files, processes, or system state, call the most relevant registered tool before answering. Never say that computer use or terminal access is unavailable unless a tool result reports that limitation.
When the user asks to use the command line or terminal, call run_terminal_cmd once, then speak the result. Do not chain extra commands (hostnamectl then uname then free) unless the previous result was an error.
@@ -67,5 +67,10 @@ export function spokenReply(reply) {
.replace(/<tool_call>[\s\S]*?<\/tool_call>/gi, '')
.replace(/<function\s*=[^>]*>[\s\S]*?<\/function>/gi, '')
.replace(/<tool_call>[\s\S]*$/gi, '');
return forChatDisplay(parseHudSidecar(stripped).spoken);
const spoken = forChatDisplay(parseHudSidecar(stripped).spoken).trim();
if (!spoken) return '';
if (/^[{\[]/.test(spoken)) {
try { JSON.parse(spoken); return ''; } catch { /* keep non-JSON */ }
}
return spoken.replace(/\{[\s\S]{0,400}?"ok"\s*:\s*true[\s\S]{0,800}?\}/g, '').trim();
}