Commit Graph

15 Commits

Author SHA1 Message Date
Levi Neely 73b13451a0 Enforce planning and skill discovery in system prompt
Agent must discover and load relevant skills before acting on any task,
re-running discovery when domain shifts. Agent must also produce a
numbered plan before executing, and revise it if steps fail.

Co-Authored-By: Claude Sonnet 4.6 <noreply@anthropic.com>
2026-03-31 23:44:56 +02:00
Levi Neely 6877d6b951 Default config to ~/.config/ollie/config.json
Fall back to the default path silently if the file does not exist.
Only fatal on a missing/invalid config if the path was explicitly
provided as a CLI argument.

Co-Authored-By: Claude Sonnet 4.6 <noreply@anthropic.com>
2026-03-31 23:36:56 +02:00
Levi Neely 463457cd14 Load ~/.config/ollie/env before reading backend env vars
Env file is optional; existing environment variables take precedence.
Supports KEY=VALUE format with # comments and blank lines ignored.

Co-Authored-By: Claude Sonnet 4.6 <noreply@anthropic.com>
2026-03-31 23:32:36 +02:00
Levi Neely 6c9f056ed8 Wrap display lines to viewport width
Extract renderDisplay() to word-wrap each line at the viewport width
before setting content. Re-wrap on terminal resize. Fixes tool output
and long bot responses being truncated at the viewport edge.

Co-Authored-By: Claude Sonnet 4.6 <noreply@anthropic.com>
2026-03-31 23:27:56 +02:00
Levi Neely 07a212884a Add system prompt; delete BeadState
BeadState duplicated what execute_code already provides via tool scripts.
Removed it entirely. Added SystemPrompt field to agent.Config, prepended
as a system message each loop iteration. Built-in prompt covers
execute_code usage, sandbox behavior, and skill discovery.

Co-Authored-By: Claude Sonnet 4.6 <noreply@anthropic.com>
2026-03-31 23:18:40 +02:00
Levi Neely 06ccc80da6 Remove MCP layer; execute_code is the sole built-in tool
Drop ollie/mcp, ollie/tools, ollie/ollama packages. Config now only
carries hooks. main.go wires a single execute_code tool directly to
the agent loop — no MCP discovery or dispatch needed.

Co-Authored-By: Claude Sonnet 4.6 <noreply@anthropic.com>
2026-03-31 23:13:05 +02:00
Levi Neely 25cc7a8c33 Wire agent loop into TUI: replace ad-hoc ollama loop with backend+agent
main.go now uses backend.New() for LLM selection (OLLIE_BACKEND env),
agent.Loop for observe/decide/act/update/terminate, and ollie/exec for
built-in execute_code. Multi-turn sessions persist across user inputs.
MCP tools route through mcpExecutor; unknown tools fall back to built-in.

Co-Authored-By: Claude Sonnet 4.6 <noreply@anthropic.com>
2026-03-31 22:57:08 +02:00
Levi Neely 54e4f44635 Add agent package: observe/decide/act/update/terminate loop
Implements the core agent loop with two state backends:
- Session: ephemeral in-memory, lives for one process lifetime
- BeadState: bead-backed via 9beads tool scripts (claim/read/complete)

Loop is backend-agnostic; takes a ToolExecutor and emits OutputMsgs.
MaxSteps defaults to 1 for simple prompts; callers set higher for tasks.

Co-Authored-By: Claude Sonnet 4.6 <noreply@anthropic.com>
2026-03-31 22:53:40 +02:00
Levi Neely 127f428620 Add backend package: common LLM interface for ollama and OpenAI-compatible APIs
Defines a Backend interface with shared Message/Tool/ToolCall types.
OllamaBackend wraps /api/chat; OpenAIBackend covers OpenAI, OpenRouter,
and any compatible API. Factory reads OLLIE_BACKEND, OLLIE_API_URL,
OLLIE_API_KEY.

Co-Authored-By: Claude Sonnet 4.6 <noreply@anthropic.com>
2026-03-31 22:40:42 +02:00
Levi Neely af34b2f267 Add ollie/exec package: extract execute_code from anvillm-mcp
Extracts execute_code into a shared ollie/exec package so anvillm-mcp
and ollie's agent loop can both use it. Includes sandboxed execution,
dangerous-pattern validation with per-Executor rate limiting, 9P tool
reading, and pipeline construction.

Co-Authored-By: Claude Sonnet 4.6 <noreply@anthropic.com>
2026-03-31 22:30:19 +02:00
Levi Neely 6767137bce
Add GNU General Public License v3 2026-02-21 22:21:21 +01:00
Levi Neely 52abc5174b Update usage section: clarify UI and tool dependencies 2026-02-21 20:55:47 +01:00
Levi Neely 58d185941c Improve README flow 2026-02-21 20:53:15 +01:00
Levi Neely ff1e3d60c8 Update README: tech editing pass and fix license 2026-02-21 20:49:15 +01:00
Levi Neely 12b8950ea5 Initial commit 2026-02-21 20:47:38 +01:00