Assistant node, and the Control tab as one conversation (openpanel V5)

run_turn takes its tools, system prompt and tool caller; the chat passes the
MCP tools as before. The assistant node offers one tool per wired target,
reads its other inputs as context, streams its reply a sentence at a time,
warms the provider on `listening` and says so when the provider is not there.
Completions share the per-server HTTP client. wren replies when nothing reads
`unhandled`, stt shows a note when nothing was heard. /ai/control lists one
conversation per entry node with the messages to watch.
This commit is contained in:
Melvin Strobl
2026-10-19 23:23:25 +02:00
parent 4df7bdb057
commit a286cf4ceb
21 changed files with 937 additions and 184 deletions
@@ -126,6 +126,8 @@ function subscribeKey(key: string, listener: Listener) {
}
export const liveStore = {
/** Told of every change to one key, such as `value:<name>`, as it happens. */
subscribe: subscribeKey,
setValue(name: string, value: LiveValue) {
values.set(name, value)
notify(`value:${name}`)