Commit Graph

502 Commits

Author SHA1 Message Date
Levi Neely 6c2860e19e prompts: restore original tools-reasoning content
Co-Authored-By: Claude Sonnet 4.6 <noreply@anthropic.com>
2026-04-26 19:09:05 +02:00
Levi Neely 2f9e392320 restore reasoning_think tool and prompt
Co-Authored-By: Claude Sonnet 4.6 <noreply@anthropic.com>
2026-04-26 19:07:13 +02:00
Levi Neely e4c76603ba remove reasoning_think tool and prompt
Backend now streams native thinking tokens via StreamEvent.Reasoning.
The no-op scratchpad tool is redundant.

Co-Authored-By: Claude Sonnet 4.6 <noreply@anthropic.com>
2026-04-26 19:04:03 +02:00
Levi Neely 30c90a62b0 update core submodule
Co-Authored-By: Claude Sonnet 4.6 <noreply@anthropic.com>
2026-04-26 19:01:32 +02:00
Levi Neely 71ff7d7da2 update core submodule
Co-Authored-By: Claude Sonnet 4.6 <noreply@anthropic.com>
2026-04-26 18:57:05 +02:00
Levi Neely 39c925bd7f update core submodule
Co-Authored-By: Claude Sonnet 4.6 <noreply@anthropic.com>
2026-04-26 18:55:37 +02:00
Levi Neely 6e91471937 update core submodule
Co-Authored-By: Claude Sonnet 4.6 <noreply@anthropic.com>
2026-04-26 18:50:40 +02:00
Levi Neely d9e9ca1b52 file tools: simplify to read/edit/write without sentinel machinery
system prompt: require task list for multi-step work
agents: remove preTurn hook; rely on agentSpawn prime + system prompt
backend: require OLLIE_BACKEND/OLLIE_MODEL env vars

Co-Authored-By: Claude Sonnet 4.6 <noreply@anthropic.com>
2026-04-26 18:29:18 +02:00
Levi Neely 5942ba78a9 core: update submodule (social token refresh) 2026-04-26 18:11:30 +02:00
Levi Neely 49ad3236b9 update SYSTEM_PROMPT.md 2026-04-26 15:57:29 +02:00
Levi Neely 1746b853a5 update httpgw and webui submodules 2026-04-26 15:54:38 +02:00
Levi Neely 8a25cc5384 update webui submodule 2026-04-26 15:24:57 +02:00
Levi Neely b950ffd99f update httpgw and webui submodules 2026-04-26 15:23:15 +02:00
Levi Neely 18a7840b3c agents: add SYSTEM_PROMPT to prompt array, move all prime calls from hooks 2026-04-26 15:10:22 +02:00
Levi Neely d333bf290a agents: extract prompts to markdown, assemble via executable prompt
Move inline JSON prompt strings to prompts/agent-*.md files, referenced
via $OLLIE/x/prime in the new executable prompt array. Move all
prime calls (tools-*, beads) from hooks.agentSpawn into prompt.

Rename greybeard to sysarchitect.
2026-04-26 15:00:46 +02:00
Levi Neely e844bc0964 update core submodule: preserve session on clean interrupt
Co-Authored-By: Claude Sonnet 4.6 <noreply@anthropic.com>
2026-04-26 13:36:52 +02:00
Levi Neely b5a0765fc1 tools/agents: skip blank task_add args; remind task_check when plan has open tasks
preTurn now has two branches: no plan → remind task_add; open tasks → remind
task_check. Blank/whitespace-only arguments to task_add are silently skipped.

Co-Authored-By: Claude Sonnet 4.6 <noreply@anthropic.com>
2026-04-26 13:26:03 +02:00
Levi Neely f6f56a570f update core submodule: recover DeepSeek DSML tool calls
Co-Authored-By: Claude Sonnet 4.6 <noreply@anthropic.com>
2026-04-26 13:17:36 +02:00
Levi Neely 70f9aed14e agents: restore preTurn task_add reminder
Removing it caused the model to fall back to reasoning_think for planning.
The preTurn reminder is necessary to override that behavior.

Co-Authored-By: Claude Sonnet 4.6 <noreply@anthropic.com>
2026-04-26 13:13:48 +02:00
Levi Neely f4b6cfa4f9 agents: revert preTurn reminder; tools-task prime is sufficient
Co-Authored-By: Claude Sonnet 4.6 <noreply@anthropic.com>
2026-04-26 13:12:23 +02:00
Levi Neely dcf7d4010f tools/prompts: fix task_add printf bug; point agents at t/idx for tool discovery
printf format string starting with '-' was treated as a flag; use '--' to
terminate option parsing. Agents reading individual tool scripts to understand
them should use $OLLIE/t/idx instead.

Co-Authored-By: Claude Sonnet 4.6 <noreply@anthropic.com>
2026-04-26 13:10:36 +02:00
Levi Neely 2d20f95b93 agents: name task_add explicitly in preTurn reminder
Co-Authored-By: Claude Sonnet 4.6 <noreply@anthropic.com>
2026-04-26 13:07:59 +02:00
Levi Neely e44874bec5 prompts: compress tools-task to match other tool prompt style
Co-Authored-By: Claude Sonnet 4.6 <noreply@anthropic.com>
2026-04-26 13:06:09 +02:00
Levi Neely 68246cd527 agents: preTurn reminder to plan before acting when plan is empty
Co-Authored-By: Claude Sonnet 4.6 <noreply@anthropic.com>
2026-04-26 13:04:46 +02:00
Levi Neely 21eb442a9c prompts: tighten tools-task trigger — plan before any action
Co-Authored-By: Claude Sonnet 4.6 <noreply@anthropic.com>
2026-04-26 13:01:52 +02:00
Levi Neely 6453fc15bc prompts: allow grep on session files, not full read
Co-Authored-By: Claude Sonnet 4.6 <noreply@anthropic.com>
2026-04-26 13:01:16 +02:00
Levi Neely e905b35bbb prompts: forbid reading ollie session files (chat, log)
Agents must not read $OLLIE/s/*/chat or similar to reconstruct context
— the conversation is already in the context window. memory_recall is
the right tool for cross-session facts.

Co-Authored-By: Claude Sonnet 4.6 <noreply@anthropic.com>
2026-04-26 13:00:45 +02:00
Levi Neely c4251866e1 update 9p submodule: fix empty write handling
Co-Authored-By: Claude Sonnet 4.6 <noreply@anthropic.com>
2026-04-26 12:50:13 +02:00
Levi Neely b1251e7ef5 update httpgw submodule ref
Co-Authored-By: Claude Sonnet 4.6 <noreply@anthropic.com>
2026-04-26 12:36:11 +02:00
Levi Neely 84e7b29015 agents: inline bd prime conditional; simplify task dispatcher
Replace 'task prime' hook with inline .beads walk in all agent configs —
no wrapper script needed. Drop 'prime' subcommand from scripts/x/task.

Co-Authored-By: Claude Sonnet 4.6 <noreply@anthropic.com>
2026-04-26 12:31:34 +02:00
Levi Neely b7f6b08e6a task: session plan checklist; replace todo.sh fallback
- tools/task_add, task_check, task_clear: manage s/{sid}/plan markdown checklist
- prompts/tools-task.md: agent command reference, injected at spawn via prime tools-task
- agents: add 'prime tools-task' to agentSpawn in all configs
- scripts/x/task: show_plan() on 'task list'; drop todo.sh fallback (wrong tool)
- prompts/tools-todosh.md: removed (no longer needed)
- prompts/tools-subagent.md: add coordination model documentation
- core: update submodule ref (s/{sid}/plan 9p endpoint)

Co-Authored-By: Claude Sonnet 4.6 <noreply@anthropic.com>
2026-04-26 12:30:14 +02:00
Levi Neely 1a01002f7b planning: observe step, task dispatcher, tool parallel annotations, graceful degradation
- agents: agentSpawn uses 'task prime', postTurn uses 'task list' (observe step)
- scripts/x/task: dispatcher routes to bd (beads) or todo.sh based on availability
- prompts/tools-todosh.md: prime context for todo.sh fallback
- tools: add '# ollie:parallel read' annotation to file_read, file_glob, file_grep,
  file_grep, memory_recall, reasoning_think, denote_view
- core: update submodule ref

Co-Authored-By: Claude Sonnet 4.6 <noreply@anthropic.com>
2026-04-26 09:00:54 +02:00
Levi Neely c170917ff2 agents: revert postTurn bd list (premature)
Co-Authored-By: Claude Sonnet 4.6 <noreply@anthropic.com>
2026-04-25 23:56:31 +02:00
Levi Neely c0a4fd1525 agents: observe step via postTurn bd list
All agents now run `bd list --status open` after each turn. Output is
injected into session history (not stdout) so the model is aware of open
tasks on the next turn without triggering autonomous continuation.

Co-Authored-By: Claude Sonnet 4.6 <noreply@anthropic.com>
2026-04-25 23:53:11 +02:00
Levi Neely df4d8a3a19 agents: move tool primes to agentSpawn; update core submodule
Tool primes (tools-file, tools-reasoning, tools-memory, tools-subagent,
tools-elevate) moved from preTurn to agentSpawn across all agent configs.
Context is now injected once at session refresh points (start, post-clear,
post-compaction) rather than repeated on every turn.

Co-Authored-By: Claude Sonnet 4.6 <noreply@anthropic.com>
2026-04-25 19:38:27 +02:00
Levi Neely fd3ba91519 update el submodule: fix spec→cfg 2026-04-25 12:34:58 +02:00
Levi Neely 1fe136a2c2 update tui submodule: rebuild session layer 2026-04-25 12:33:19 +02:00
Levi Neely 2f8d18dc51 elevate: auto-start adapter via agentSpawn hook
Add x/elevate-adapter-start: checks if the adapter is already listening
(connect test), starts it in the background if not. Exits 0 always so it
never blocks session startup. Wire it into agentSpawn in all agent configs
and install it via mkfile.

Co-Authored-By: Claude Sonnet 4.6 <noreply@anthropic.com>
2026-04-25 11:54:29 +02:00
Levi Neely 778af112db fix: strip script dir from sys.path before imports in x/ Python scripts
Python adds the script directory to sys.path[0] at startup and tries to
create a FileFinder for it. When the script lives on a 9P FUSE mount the
FileFinder init fails before any stdlib import can succeed. sys is a
builtin and loads without filesystem access, so strip the path first.

Co-Authored-By: Claude Sonnet 4.6 <noreply@anthropic.com>
2026-04-25 11:49:03 +02:00
Levi Neely b9b4a1fe1d mkfile: install elevate-adapter-superpowerd with scripts
Co-Authored-By: Claude Sonnet 4.6 <noreply@anthropic.com>
2026-04-25 11:47:51 +02:00
Levi Neely 5ff7f189f5 update core submodule (OLLIE_ELEVATE_SOCKET in env)
Co-Authored-By: Claude Sonnet 4.6 <noreply@anthropic.com>
2026-04-25 11:45:53 +02:00
Levi Neely 16d4fc57ff elevate: default socket to XDG_RUNTIME_DIR, add to sandbox env
Both x/elevate and elevate-adapter-superpowerd now default the socket
path to $XDG_RUNTIME_DIR/ollie/elevate.sock (falling back to
/run/user/<uid>/ollie/elevate.sock) when OLLIE_ELEVATE_SOCKET is unset.
Add OLLIE_ELEVATE_SOCKET to env sections of both sandbox configs.
Add {XDG_RUNTIME_DIR}/ollie to restricted sandbox filesystem rw rules
so x/elevate can reach the socket. Update README env block and
scripts/README socket path docs.

Co-Authored-By: Claude Sonnet 4.6 <noreply@anthropic.com>
2026-04-25 11:43:24 +02:00
Levi Neely 7a88fb3437 implement generic x/elevate with socket broker pattern
x/elevate is now a generic client: reads OLLIE_ELEVATE_SOCKET, sends
{cmd,cwd}, reads back {stdout,stderr,exit_code}. All backend-specific
logic moves to adapters. Add elevate-adapter-superpowerd as the
reference adapter: owns the socket lifecycle, translates the ollie
protocol to superpowerd JSON-RPC ExecuteCommand. Add OLLIE_ELEVATE_SOCKET
to env docs. Update scripts/README.md with protocol spec, adapter
setup, and guide for writing custom adapters.

Co-Authored-By: Claude Sonnet 4.6 <noreply@anthropic.com>
2026-04-25 11:41:54 +02:00
Levi Neely 1de43c1105 docs: reframe x/elevate as sandbox escape hatch, not privilege escalation
The purpose is to run steps outside the Landlock sandbox, not to gain
privileges. Clarify the constraint (kernel-enforced, must reach an
external process), reframe the minimal example and superpowerd walkthrough
accordingly.

Co-Authored-By: Claude Sonnet 4.6 <noreply@anthropic.com>
2026-04-25 11:33:22 +02:00
Levi Neely 2eefe5a01d docs: correct custom elevation backend section
sudo/doas don't work: Landlock is kernel-level and applies regardless
of user privileges within the sandboxed process. The backend must hand
the command to a process spawned outside landrun entirely. The
superpowerd Unix socket pattern is the right model.

Co-Authored-By: Claude Sonnet 4.6 <noreply@anthropic.com>
2026-04-25 11:32:09 +02:00
Levi Neely 8700373c63 docs: remove incorrect session token injection paragraph
x/elevate handles token acquisition itself via the re-exec through
superpowers run-session when SUPERPOWERD_SESSION_TOKEN is absent.
No manual injection is needed; the paragraph was wrong.

Co-Authored-By: Claude Sonnet 4.6 <noreply@anthropic.com>
2026-04-25 11:30:13 +02:00
Levi Neely 0eaa4dc8eb docs: remove broken superpowerd link, treat as hypothetical
Co-Authored-By: Claude Sonnet 4.6 <noreply@anthropic.com>
2026-04-25 11:26:37 +02:00
Levi Neely 61491ce786 docs: expand x/elevate with full backend setup guide
Document the plugin interface contract (args, cwd, stdout/exit code),
plugin path resolution (OLLIE_PLUGINS_PATH / ~/.config/ollie/scripts/x/),
a minimal exec-only example, a step-by-step walkthrough of the default
superpowerd implementation including session token injection, and custom
backend examples (sudo, doas, disable).

Co-Authored-By: Claude Sonnet 4.6 <noreply@anthropic.com>
2026-04-25 11:23:47 +02:00
Levi Neely df651908c4 docs: document x/ namespace and x/elevate in scripts/README.md
Add x/ to the namespace list and add an x/elevate section describing
its role as the elevation plugin for execute_code elevated steps, the
calling convention, the default superpowerd implementation, and how to
replace or disable it.

Co-Authored-By: Claude Sonnet 4.6 <noreply@anthropic.com>
2026-04-25 11:22:29 +02:00
Levi Neely d42778c61a docs: correct Sandboxing section in ARCHITECTURE.md
Sandboxing is not layered. It is applied specifically to execute_code:
each step is wrapped with landrun using a named config from
~/.config/ollie/sandbox/<name>.yaml (default: "default"). Steps marked
elevated:true bypass the sandbox via x/elevate. Remove superpowerd
reference.

Co-Authored-By: Claude Sonnet 4.6 <noreply@anthropic.com>
2026-04-25 11:21:29 +02:00