Commit Graph

1391 Commits

Author SHA1 Message Date
Levi Neely d49c0f05dc update kde submodule: add remote field to session dialog 2026-07-31 10:54:46 +02:00
Levi Neely a73899bc2f session: reject creation with non-existent cwd
When a session is created with a cwd that doesn't exist, all tool
execution fails with a confusing 'fork/exec landrun: no such file or
directory' because exec.Command sets cmd.Dir to the non-existent path.

Validate that cwd exists and is a directory at session creation time,
returning a clear error instead of allowing a broken session.

Also includes the earlier USER/NAMESPACE env export fix (agent.go,
shell.go) for the ollie-9p namespace path issue.
2026-07-31 09:28:44 +02:00
Levi Neely ae59151344 toolsrv: export USER and NAMESPACE to shell environment
ollie-9p computes its namespace path from $USER and $DISPLAY via
client.Namespace(). When run inside the sandboxed shell, USER was not
guaranteed to be in the environment, producing /tmp/ns..:0/ollie.

Fix: explicitly inject USER into envExtra in SetSessionEnv (alongside
OLLIE_SESSION_ID and OLLIE_UNAME). Also export the computed NAMESPACE
to cmd.Env so ollie-9p can use it directly without recomputing.
2026-07-31 09:22:43 +02:00
Levi Neely c846220b69 update kde submodule: remove reaction UI artifacts 2026-07-31 09:19:49 +02:00
Ollie Agent 2cda2cd38f update kde submodule pointer 2026-07-31 09:09:50 +02:00
Ollie Agent f37e81d8cc remove emoji reaction feature (core, dbus, KDE GUI) 2026-07-31 09:09:24 +02:00
Ollie Agent cfdedb2e5e help.md: sync to actual 9P tree (agent/ subdir, elevate/, toolsrv.*, react, no t/) 2026-07-31 08:46:02 +02:00
Ollie Agent 03e66c8a0a rewrite help.md: remove dead 9P dirs (sk/, u/, x/, tmp/, tr/), use 9p commands 2026-07-31 08:43:14 +02:00
Ollie Agent 3d4ac9699e remove transcript archive docs (dead feature) 2026-07-31 08:42:13 +02:00
Ollie Agent 9abf16d75f remove SUPERPOWERD and OLLIE_TRANSCRIPT_PATH references 2026-07-31 08:40:37 +02:00
Ollie Agent 5ce4477316 remove stale IDEAS_CONTROLLER.md (dead /home/lkn/mnt/ollie/session/ refs) 2026-07-31 08:37:26 +02:00
Ollie Agent 5021dedabe docs: replace /home/lkn/mnt/ollie/session/ paths with 9p commands 2026-07-31 08:36:47 +02:00
Ollie Agent e968f5407e env: remove OLLIE mount point variable from managed vars and defaults 2026-07-31 08:02:17 +02:00
Ollie Agent cb98439339 docs: remove dead s/ls, s/kill, s/cleanup refs; fix ollie-9p remove→rm 2026-07-31 07:56:39 +02:00
Ollie Agent 855671d8ac remove dead acme scripts (Kmpl, Oi, Theo, Wtf) and stale data/scripts/README 2026-07-31 07:50:41 +02:00
Ollie Agent 7a69f14277 toolsrv: typed RateLimitedError, agent loop: don't count rate-limited calls as consecutive errors 2026-07-31 07:46:32 +02:00
Ollie Agent 5c27a948bd docs: remove stale s/ u/ x/ script namespace references 2026-07-31 07:31:58 +02:00
Ollie Agent 93225704f8 docs: document sudo and tool variants 2026-07-31 07:20:52 +02:00
Ollie Agent 3ea6bc3865 docs: declare the declarative tool registration paradigm 2026-07-30 23:50:04 +02:00
Ollie Agent cb5f99b332 fix ResolveTool to check OLLIE_TOOLS_PATH for variant cmd names 2026-07-30 23:40:24 +02:00
Ollie Agent 3d65d787a2 elevate: broker credential support for privileged tool execution 2026-07-30 23:37:57 +02:00
Ollie Agent 5955562c1d system_logs: first variant-based tool + OR match support
Adds system_logs with two variants:
- journalctl (systemd hosts): unit, since, lines, grep
- dmesg (any Linux): source, lines, grep

Both declare sudo: true — privilege escalation is handled by dispatch.

Also adds OR support in match conditions: array values mean any must
pass. Combined with AND across keys:
  {"binary": ["journalctl", "systemd-cat"], "os": "linux"}
  = (journalctl OR systemd-cat) AND linux
2026-07-30 23:28:37 +02:00
Ollie Agent 5c7df3a9fe docs: document variants and update WRITING_TOOLS for network transparency 2026-07-30 23:14:53 +02:00
Ollie Agent ca8af814e9 toolsrv: conditional tool variants for heterogeneous hosts
A .meta file can now declare multiple variants, each gated by match
conditions. The first variant where all conditions pass determines the
tool's schema, documentation, and executable. If no variant matches,
the tool is hidden from the registry on that host.

Match conditions:
  binary  — exec.LookPath or absolute path stat
  file    — os.Stat (file or dir exists)
  os      — runtime.GOOS
  arch    — runtime.GOARCH
  env     — environment variable is non-empty
  nenv    — environment variable is empty

This enables network-transparent tool declarations: one .meta file
works across heterogeneous hosts (systemd vs syslog, apt vs pacman,
GUI vs headless). When ollie-remote deploys to a different machine,
tools adapt their contract to what's actually available.

No variants field = current behavior, zero breaking changes.
2026-07-30 23:13:31 +02:00
Ollie Agent 44e420fc7e toolsrv: support cmd field in .meta for external tool resolution
Tools no longer need to be co-located in $OLLIE_TOOLS_PATH. The .meta
sidecar can specify a cmd field pointing to any executable:
- Absolute path: use directly
- Bare name: resolve via $PATH

Resolution order: OLLIE_TOOLS_PATH/<name> → meta.cmd → PATH lookup.
Local wrappers always win, enabling simplified interfaces over complex
system binaries.

Rewrites doc/WRITING_TOOLS.md to document the plugin model: any
executable + .meta = tool, no source tree integration required.
2026-07-30 23:02:08 +02:00
Ollie Agent 059cceed5c AGENTS.md: document both script and compiled tool paths 2026-07-30 22:54:54 +02:00
Ollie Agent ebd994fe7e doc/EVOLUTION: add LSP Go port to Phase 12 2026-07-30 22:54:28 +02:00
Ollie Agent 9f947e93ec docs: update repo layout for tools/builtin, tools/lsp, data/ 2026-07-30 22:53:48 +02:00
Ollie Agent 5a84e8b326 toolsrv: fix Registry.discover() to use .meta files
The Registry had its own discover() method that still required
'ollie:prompt' in file content — the old header-based check that was
removed from DiscoverTools(). This caused tool_load to fail for ALL
tools (not just Go binaries) since .meta is now the sole metadata source.

Fix: delegate to DiscoverTools() which correctly scans .meta files.
2026-07-30 22:50:49 +02:00
Ollie Agent 46a990cd42 tools/lsp: fix arg field names to match .meta schema
Binaries now read path/line/col (matching the .meta schema the model
sees) instead of file/line/character. Also fix col to be 1-indexed
(matching the schema description) with proper -1 conversion to LSP
0-indexed protocol.
2026-07-30 22:47:27 +02:00
Ollie Agent 36e42057d4 justfile: rm stale files before go build (overwrite safety) 2026-07-30 22:43:03 +02:00
Ollie Agent 77b4b624cf tools/lsp: port LSP tools from Python to Go
Implements a bridge daemon + client architecture in pure Go:
- tools/lsp/ — shared library (adapter registry, LSP server management,
  JSON-RPC framing, bridge daemon, client)
- tools/lsp/cmd/{lsp_definition,lsp_references,lsp_hover,lsp_rename,
  lsp_symbols,lsp_completion,lsp_diagnostics}/ — individual binaries

Each binary:
- Reads JSON args from stdin (same contract as before)
- Connects to bridge daemon over Unix socket (starts it if needed)
- Bridge manages long-lived LSP server processes (gopls, clangd, intelephense)
- Bridge auto-exits after 5min idle

Removes:
- Python LSP tool scripts (data/tools/lsp_*)
- Python LSP library (data/tools/_lib/lsp/)

Adds lsp-tools build target to justfile. The .meta sidecar files remain
in data/tools/ and are installed alongside the compiled binaries.
2026-07-30 22:10:56 +02:00
Ollie Agent 1015536f2c tools: move builtins to tools/builtin/
Prepares tools/ as the umbrella for all tool implementations:
- tools/builtin/ — in-process handlers (shell, reasoning, tool/skill registry)
- tools/lsp/ — (next) Go LSP tools with shared client library

Package rename: ollie/tools → ollie/tools/builtin
2026-07-30 22:04:32 +02:00
Ollie Agent ba8db09143 justfile: fix .meta install loop and remove dead targets
- Fix for loop: just doesn't need $$ escaping (that produces PID)
- Remove empty install-scripts and install-contrib targets
- Fold script installs into install-data
2026-07-30 21:55:21 +02:00
Ollie Agent 63f602fb07 README: fix custom tools description 2026-07-30 21:52:58 +02:00
Ollie Agent a632f630ce README: update for current architecture
- Remove terminal/s/sh/bfg from diagram and frontends
- Update repo layout table (data/, mount/, skills)
- Fix env var descriptions (u/complete → code completion)
- Update intro text
2026-07-30 21:52:25 +02:00
Ollie Agent 6ef99918e0 doc: add Phase 12 to EVOLUTION.md 2026-07-30 21:50:18 +02:00
Ollie Agent 69b2c2cc40 tool metadata: replace header comment parsing with .meta sidecar files
The tool registry now reads metadata exclusively from JSON .meta sidecar
files alongside each tool executable. Header comment parsing (ollie:prompt,
ollie:tier, ollie:parallel, args_json) is removed entirely.

- Add toolsrv/meta.go: MetaFile struct, LoadMetaFile, ToolInfoFromMeta
- Rewrite discover.go: scans .meta files only
- Rewrite schema.go: ParseToolInfo reads .meta only
- Rewrite tier.go: tier/readOnly from .meta only
- Generate .meta for all 35 tools
- Update all docs: README, AGENTS.md, ARCHITECTURE, CORE, USAGE, WRITING_TOOLS
2026-07-30 21:48:42 +02:00
Ollie Agent 942cad2dee rename contrib/{prompts,scripts,services,tools,skills,agents} → data/
These are project data files, not community contributions.
contrib/elisp stays as-is.
2026-07-30 21:40:11 +02:00
Ollie Agent ddddb1f53b remove s/, u/, x/ script namespaces and 9P backing
All session scripts (s/sh, s/b, s/bfg, s/bbg, s/ls, s/kill, s/cleanup),
utility scripts (u/optimize, u/complete, u/cascade, u/escalate), and
internal scripts (x/bd, x/prime, x/freeloader, x/task) are removed.

These are replaced by:
- generate, complete, route files (ollie-9p rdwr)
- integrated elevation broker
- D-Bus/9P session management

Also removes:
- 9P rootFileOrder entries and permission map for script files
- Script-serving catch-all in rootOpen
- prependOlliePath (no x/ scripts to shadow PATH with)

ollie-watchdog moved to contrib/scripts/ alongside ollie-remount.
2026-07-30 21:36:54 +02:00
Ollie Agent ffe45c4f1f docs: replace s/sh, s/bfg, s/bbg references with generate/complete/route
These scripts have been removed. Update all documentation to reference
the current interfaces: ollie-9p rdwr generate, complete, and route.
2026-07-30 21:31:10 +02:00
Ollie Agent d9871e686a docs: replace s/{sh,b,bfg,bbg} references with generate/complete/route
These scripts were removed. Update all documentation to reference the
current alternatives: ollie-9p rdwr generate, ollie-9p rdwr complete,
and ollie-9p rdwr route.
2026-07-30 21:30:18 +02:00
Ollie Agent a306cbbce6 remove dead session scripts s/{sh,b,bfg,bbg} 2026-07-30 21:24:54 +02:00
Ollie Agent 0cea373207 mount: document purpose and fix misleading comment
Add README.md explaining the network transparency role of the mount
package. Replace 'kept as a convenience' comment with one that explains
why it exists and how it differs from local 9pfuse.
2026-07-30 21:23:25 +02:00
Ollie Agent dd8520abb7 Revert "remove dead mount/ package and olliesrv mount subcommand"
This reverts commit bcfdda26b4.
2026-07-30 21:19:11 +02:00
Ollie Agent bcfdda26b4 remove dead mount/ package and olliesrv mount subcommand
The FUSE-based 9P mount (mount/) was unused — all actual mounting
uses 9pfuse via ollie-remount. Remove the package, the olliesrv mount
subcommand, and the go-fuse dependency.
2026-07-30 21:18:52 +02:00
Ollie Agent 96dc6e442b main.go for olliesrv 2026-07-30 21:14:26 +02:00
Ollie Agent 35cbee0e35 update kde submodule: fix justfile paths 2026-07-30 20:51:32 +02:00
Ollie Agent b2a3e7121f justfile: move install-kde* rules to kde/justfile
The install-kde and install-kde-kf5 targets are now invoked via
'just -f kde/justfile install-kde' from the install/install-kf5 recipes.
Removed the standalone install-kde* targets from the root justfile.
2026-07-30 20:44:31 +02:00
Ollie Agent d6544ba892 fix justfiles: quote echo args with parens, remove stale cd kde
- KDE justfile: quote @echo arguments containing parentheses (sh syntax)
- KDE justfile: remove 'cd kde &&' prefix from cmake commands (already
  running from kde/ directory when invoked via just -f)
- Root justfile: quote all @echo arguments with parentheses
- KDE justfile: fix cmake install prefix and j*(nproc) typo
2026-07-30 20:43:08 +02:00