Commit Graph

379 Commits

Author SHA1 Message Date
Levi Neely 0b9f345930 README: add ollie-9p client section, fix stale pkg/ paths 2026-07-29 18:14:41 +02:00
Levi Neely c96982c1ec update imports for core/ restructure
ollie/pkg/X → ollie/X, execute.Registry → tools.Registry,
remote.Dial → execute.RemoteDial, config.Load → agent.Load
2026-07-29 18:10:32 +02:00
Levi Neely acfc4854d4 elevate: wire SessionValid to verify session existence 2026-07-29 16:30:31 +02:00
Levi Neely 563c6dce2f elevate: wire turn rate limiter reset on prompt submission
Adds resetElevation callback to sessionHelper, called when a new
prompt is written (turn boundary). The Manager passes
broker.ResetTurn(sessionID) via ManagerConfig.ResetElevation.
2026-07-29 16:22:28 +02:00
Levi Neely c19c8d0cb5 prompts/docs: replace execute_code with shell
- system_prompt.md: update output protocol reference
- README.md: update flag descriptions and example output
2026-07-29 14:44:18 +02:00
Levi Neely 2d4ce13272 dbus: emit ConfigChanged on agent switch, fix agent default override
- Add agent watcher goroutine that emits ConfigChanged(session, key, value)
  D-Bus signal when the per-session agent name changes
- Add ConfigChanged to introspection XML
- Fix CreateSession: only apply OLLIE_DEFAULT_AGENT when no agent arg was
  explicitly provided. Previously, passing agent=default would trigger the
  env override, making it impossible to select a specific agent from the GUI.
2026-07-29 11:04:01 +02:00
Levi Neely f0942e81ba session: wire registries via Options instead of post-hoc
Pass WithToolRegistry/WithSkillsRegistry into execute.Decl() so every
Server the factory creates has registries set. Removes fragile post-
construction wiring that only applied to the first dispatcher instance.
2026-07-29 10:50:26 +02:00
Levi Neely 0a9392e5fd system_prompt: add tool-first principle — prefer dedicated tools over shell 2026-07-29 09:48:23 +02:00
lkn bc9c8d5336 add Sandbox & Elevation section to system prompt with max-3-retry rule 2026-07-29 00:44:17 +02:00
lkn f1cbda64c7 add skills and autonomous loading behavior to system prompt 2026-07-29 00:17:58 +02:00
lkn aa1b7d1e1c add skills registry and skill_list/skill_load/skill_active built-in dispatchers 2026-07-29 00:16:39 +02:00
lkn c221426af4 remove root-level /tools from 9P filesystem listing and dead toolsResult field 2026-07-29 00:01:06 +02:00
lkn 6b57fe1f77 move Tool Registry from session_9p.md to system_prompt.md (decoupled from 9P) 2026-07-28 23:27:32 +02:00
lkn 7bcaf7422c update session_9p.md: use tool_list/tool_load/tool_active instead of ollie-9p 2026-07-28 23:26:30 +02:00
lkn df199cd202 execute_code -> shell: simplify to single bash command, remove steps/parallel/detach/language 2026-07-28 23:03:35 +02:00
lkn faaaf0f014 remove SYSTEM_PROMPT_QWEN.md and all references 2026-07-28 22:42:45 +02:00
lkn d5ed0a545f remove allowExecutors from config, execute server, and agent JSONs 2026-07-28 22:39:15 +02:00
lkn de8abb0b7a prompts: tool registry instructions using ollie-9p syntax 2026-07-28 22:15:41 +02:00
lkn 7c15f9ec3b session wiring: use execute.SetToolRegistry instead of separate registry server 2026-07-28 22:08:53 +02:00
lkn b387b33593 tool registry: lazy-loading tool promotion via s/{sid}/tools 2026-07-28 14:57:43 +02:00
lkn 96dda6e5f0 9p: files for per-session dynamic tool loading and inspection 2026-07-28 14:12:41 +02:00
lkn f1f039da20 sync QWEN system prompt with default 2026-07-27 20:37:34 +02:00
lkn 77aabfbe04 ResolveSystemPrompt: expand env, fall back to embedded by filename 2026-07-27 20:31:50 +02:00
lkn 86880feb3a embed Qwen system prompt; remove Devstral 2026-07-27 20:23:58 +02:00
lkn ecbe8067f2 add reactions file to 9P session tree 2026-07-27 19:59:50 +02:00
lkn 57053c4e48 add reactions file to 9P session tree 2026-07-27 19:52:49 +02:00
lkn 35cc360b08 add GetReactions D-Bus method 2026-07-27 19:47:18 +02:00
lkn 8c7dba5cf7 9P/D-Bus ReactTo and assistant:id headers 2026-07-27 19:12:12 +02:00
lkn f962f26451 update system prompt for categorized reaction format 2026-07-27 18:30:01 +02:00
lkn ad66560091 add React method to D-Bus introspection XML 2026-07-27 18:12:09 +02:00
Levi Neely 4a60edc893 add React D-Bus method
Exposes React(sessionID, emoji) over D-Bus so GUI clients can
send emoji reactions without direct 9P access.
2026-07-27 15:33:24 +02:00
Levi Neely d95313d682 add react file and reaction semantics in system prompt
New 9P file s/{id}/react: write an emoji to record a reaction to the
most recent assistant response. The reaction is passive feedback —
no model turn is triggered.

The system prompt now documents how agents should interpret emoji
reactions (positive/negative/confused) and silently adjust behavior.
2026-07-27 15:26:14 +02:00
Levi Neely 300d07b2aa remove ollie-9p-mount binary, inline FUSE into olliesrv
The mount logic is now a library package (mount/) called directly
by `olliesrv mount`. No external binary needed.

Per-session auto-mounts are gone entirely. The mount subcommand
remains for network-transparent human access to remote servers.
2026-07-27 11:51:56 +02:00
Levi Neely 8ef22ab90d rename 9p client to ollie-9p
Avoids shadowing plan9port. Binary auto-discovers server and
identity without flags.
2026-07-27 11:44:55 +02:00
Levi Neely cafe38292f session: remove auto-mount on session creation
Agents now use the 9p client binary directly instead of FUSE mounts.
Remove startMount() calls and OLLIE= env var from session env.
Mounts remain available for human use but are no longer auto-started.
2026-07-27 11:41:42 +02:00
Levi Neely 666acceb0b 9p client: auto-discover aname from \$OLLIE_UNAME
Remove -A flag. The client always attaches with the UID from
\$OLLIE_UNAME. Agents use it transparently without knowing about
9P attach semantics.
2026-07-27 11:35:27 +02:00
Levi Neely 80cc32d0ee 9p: add standalone 9P client binary
Complete 9P client that replaces plan9port dependency.
Subcommands: read, write, rdwr, stat, ls, create, remove, mkdir.
Supports -a addr, -A aname for attach identity, -n for no auth.
Uses 9fans.net/go/plan9/client library (already in go.mod).
2026-07-27 11:32:26 +02:00
Levi Neely e40d266206 session: parallelize session restoration on startup
Load persisted session JSONs sequentially (fast disk reads),
then fan out restoreSession calls in parallel. Each session
restoration involves backend init, prompt resolution, and
potentially SSH connections for remote sessions.
2026-07-27 11:13:36 +02:00
Levi Neely c59f1c57d7 olliesrv: remove SSH agent proxy startup 2026-07-27 11:06:23 +02:00
Levi Neely 238d8214a3 olliesrv: expose elevate/ and s/{id}/elevate via 9P
- /elevate/policy: read/write global policy (YAML)
- /elevate/pending/: list pending requests
- /elevate/pending/<id>: read summary, write approve/deny/persist
- /s/{id}/elevate: read/write session policy (includes global)
2026-07-27 11:03:20 +02:00
Levi Neely 324abd025b olliesrv: start SSH agent proxy alongside elevation broker 2026-07-27 10:49:31 +02:00
Levi Neely 8e348680dc olliesrv: wire integrated elevation broker
Start the elevation broker on $OLLIE_ELEVATE_SOCKET at daemon
startup. D-Bus notifications with approve/deny/persist actions
map back to broker.Resolve() via ActionInvoked signals.

Replaces the external superpowerd adapter.
2026-07-27 10:33:34 +02:00
lkn 76807dd879 sort D-Bus ListModels results 2026-07-26 19:01:19 +02:00
lkn 1a545be58f restore active sessions from data directory 2026-07-26 12:10:11 +02:00
lkn cbd249e5f9 9p: remove daemon subcommands, simplify to foreground-only
Drop start/fgstart/stop/status subcommands. olliesrv now runs
directly in the foreground; lifecycle managed by the supervisor
(systemd, openrc, or xdg-autostart). Keep mount as a convenience
subcommand for mounting remote 9P servers via 9pfuse.

- Remove daemonize(), stopServer(), isRunning(), pid file management
- runServer() no longer takes pidPath
- Move desktop file to main repo services/xdg-autostart/
- Update README examples
2026-07-25 18:20:14 +02:00
Levi Neely af7363cb1d dbus: add remote parameter to CreateSession
The D-Bus method was missing the remote parameter that session.Manager
already supports. Add it as the 6th arg after system_prompt so frontends
can create remote execution sessions via D-Bus.
2026-07-24 11:58:01 +02:00
lkn 32abf7a00c 9p: add ListModelsByBackend D-Bus method 2026-07-21 15:32:41 +02:00
lkn 88a4119707 docs: document peer/ operations (touch/rm/write) 2026-07-21 14:57:30 +02:00
lkn 4a87d25f22 README: add tools, state, peer/, proc/ to filesystem layout 2026-07-21 14:51:18 +02:00
lkn c289f5c7fd prompts: mark 9P as preferred, D-Bus as fallback 2026-07-21 14:45:20 +02:00