aboutsummaryrefslogtreecommitdiffstats
path: root/examples
AgeCommit message (Collapse)AuthorFilesLines
2026-10-20clone tool: fail instead of prompting, lowercase host, update only on 1Danilo M.2-1/+14
A missing or private https repo made git ask for a username through SSH_ASKPASS, which on this desktop is pinentry-qt: a login dialog popped up and the tool waited up to its 300 s timeout. SSH_ASKPASS is now unset and GIT_TERMINAL_PROMPT=0, so the clone fails in about 0.2 s with "terminal prompts disabled". The host is lowercased before the map lookup, so GitHub.com finds GITHUB. update pulls only when it is 1, so a model passing 0 gets the question, not a pull. test-clone.sh checks all three; the new checks fail on the previous script. Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
2026-10-19clone tool: name the target owner-repoDanilo M.3-16/+45
A generic repo such as evgen2571/wallpapers cloned into wallpapers; the target now takes the owner's name, collapsing when owner and repo match and falling back to the bare name when the URL has none.
2026-10-19clone tool: clone a public repo into the host's folderDanilo M.3-0/+223
A public URL is cloned into ~/Programming/GIT/<host-folder>/<repo>, the folder chosen by host from ~/.config/desktop-assistant/clone-hosts (github.com, gitlab.com, forge.slackware.nl seeded). An unknown host or an already-cloned repo stops and asks with a concrete action; approving a new host folder appends it to the map, so later clones of that host ask nothing. Update pulls with --ff-only, never clones over the folder. test-clone.sh stubs git and uses a scratch tree and map.
2026-10-19project tool: end the prompt with a period, plan-friendly opencode promptDanilo M.1-2/+5
The model sends the description without a final period, so the prompt read "...tool Fill in". opencode now starts in its plan agent, which cannot edit, so its prompt asks for a proposal instead. Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
2026-10-19project tool: start a new project and open an agent on itDanilo M.6-0/+1247
project.sh makes a folder in ~/Programming/GIT with AGENTS.md, CLAUDE.md, README.md and LICENSE (GPLv2 only, GPLv2+, GPLv3 or MIT, texts shipped in licenses/), commits it signed, and opens Claude Code or opencode in a kitty tab, or a new window when no kitty listens. The tool description asks the model to confirm before calling. Check: test-project.sh. Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
2026-10-19mode tool: read and set the desktop modesDanilo M.3-0/+98
dnd, presentation, nolock and quiet through statusctl. The output is read back after a set, so a set that did not land is not reported as done, and a running game's hold on presentation is named. test-mode.sh checks it against a scratch runtime dir. Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
2026-10-16Final review: startup probe, error messages, refusal exit, docsDanilo M.3-4/+4
A startup probe that failed with anything but OSError (llama-server not in router mode, an empty model list) crashed the daemon at boot, against its own comment; it is caught like the per-request failures now. llama-server's reasons reach the client: an HTTP error carries its body and an error chunk mid-stream its message, where the client used to see 'choices'. A daemon that refuses to start, or fails before serving, exits 1 instead of 0. assistant.sh no longer mistakes a --test run for the daemon. AGENTS.md said every section from Hardware to Kokoro was voice-only, which included findings the daemon still applies; it now names the voice ones. It also claimed a stopped reply emits nothing after done, while a late ctx can. The spec lists every error message, the example config no longer shows a non-default temperature as the default, and the updates tool stops telling the model not to read lists aloud. The spec is marked implemented. Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
2026-10-16Docs: desktop-assistant is a text daemon nowDanilo M.5-36/+2
README and AGENTS.md describe the socket protocol and the history instead of the voice pipeline; the voice-era findings stay, marked as such, since a return to voice starts from them and from the voice-v1 tag. The overlay spec is marked superseded, the daemon spec records what changed while planning, and the example tools lose their spoken announcements. Co-Authored-By: Claude Sonnet 5.5 <noreply@anthropic.com>
2026-09-26Stamp the time on each question, ask for digits, add a temperature keyDanilo M.1-0/+1
With the clock only in the system prompt, "what time is it?" asked again an hour later copied the old answer from history. The current question now carries the date and time too; history stays unstamped, because stamping every message made the model drop tool arguments (the finance account filter went from 6/6 to 0/6). Gemma garbles numbers it spells out in Italian ("trent settler"), 3 in 10 time answers. The default system prompt asks for digits, which Kokoro reads correctly: 20/20 clean. temperature in config.toml is sent with every request; unset keeps the llama-server preset's, which other clients share. Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
2026-09-26Add a Slackware updates tool and a restart scriptDanilo M.2-0/+251
updates.py compares the -current ChangeLog with the installed package database: the newest batch holding an installed package is the last one applied, everything newer is pending. The spoken summary gives counts, security fixes and a kernel bump, never package lists; report=true writes a full markdown recap and opens it in MD_EDITOR, detached. restart.sh stops a running assistant and its quickshell overlay and starts both again in their own session. Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
2026-09-26Document the overlay and record its findingsDanilo M.1-0/+9
Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
2026-09-26Read controller batteries, stop the model guessing system factsDanilo M.1-2/+11
- Game controllers report battery through their kernel driver, not BlueZ: bluetooth.sh falls back to the power supply named after the device address. - Asked for a VM's IP after a listing without one, the model made one up without calling a tool. The default system prompt now says facts about the user's computer, devices, accounts, mail, calendar or money come only from a tool, or it says it does not know. Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
2026-09-26Add bluetooth and vms example toolsDanilo M.4-0/+103
Read-only: bluetoothctl show/devices/info and virsh list, domstate, dominfo and domifaddr. Connecting devices and handling VMs are phase 2. The DHCP lease source is empty for bridged guests, so the VM's IP comes from ARP or the guest agent. Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
2026-09-26Fix mail counts and finance ranges found testing liveDanilo M.3-17/+36
- mail printed threads and the model called them emails; it now reports messages and threads. - finance spending takes a since date (default the first of the month) instead of a day count, and an optional asset account. The per-account listing needs an end date or the API rejects it; an unknown account name gets the user's accounts back. - Tool errors are capped at 2000 characters like normal output. Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
2026-09-26Add calc, mail, playing and finance example toolsDanilo M.7-0/+142
All read-only: each command is fixed in its tool file, so the model fills parameters but can never reach mailctl tag or firefly tx add. qalc reads "17.5% of 240" as a modulo, so the calc hint shows percent as a factor. Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
2026-09-26Fix issues found testing the tools liveDanilo M.2-6/+7
- The model has no clock and invented a 2025 start date for the calendar; the system prompt now carries the current date and time. - It also derived a wrong weekday from a date; agenda.py prints the weekday itself. - An announcement ran straight into the answer; a 0.6 s pause follows it. - The calendar days hint asks for 30 or more when looking for the next event. Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
2026-09-26Add weather tool on OpenWeatherMap, reusing the conky cache for homeDanilo M.2-0/+81
A bare city name is ambiguous for the API (plain "Rome" and "Roma" both resolve to Rome, US), so the parameter asks the model for City,CC and the output names the country. Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
2026-09-26Add calendar tool reading the vdirsyncer folder directlyDanilo M.2-0/+170
Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
2026-09-26Add example config and the now and search toolsDanilo M.4-0/+73
Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>