From e4fab8cfb15818a82c751e6e46b7d9a9c1daf3c1 Mon Sep 17 00:00:00 2001 From: Ollie Agent Date: Tue, 28 Jul 2026 22:47:12 +0200 Subject: [PATCH] remove call_tool and pipe references from docs --- core | 2 +- doc/ARCHITECTURE.md | 6 ++---- doc/CORE.md | 31 ------------------------------- doc/OBSERVATIONS.md | 2 +- doc/REMOTE_EXECUTION.md | 7 +++---- doc/USAGE.md | 4 ++-- 6 files changed, 9 insertions(+), 43 deletions(-) diff --git a/core b/core index b26bd7f..18d0019 160000 --- a/core +++ b/core @@ -1 +1 @@ -Subproject commit b26bd7f5803521282f8cba8827e70a5b32b81edc +Subproject commit 18d00191f8c5ba2634692d0f7c6b082698effc1a diff --git a/doc/ARCHITECTURE.md b/doc/ARCHITECTURE.md index 2c88a87..f392626 100644 --- a/doc/ARCHITECTURE.md +++ b/doc/ARCHITECTURE.md @@ -67,7 +67,7 @@ D-Bus-only mode: olliesrv -no9p (same interface, no filesystem listener) │ │ (loop.go) │ │ (messages, │ │ ┌──────────────────┐ │ │ │ │ │ │ task state, │ │ │ execute.Server │ │ │ │ │ stream ←────┼──┤ compaction) │ │ │ (execute_code, │ │ │ -│ │ dispatch ───┼──┼───────────────┼──┤ │ call_tool, pipe)│ │ │ +│ │ dispatch ───┼──┼───────────────┼──┤ │ execute_code) │ │ │ │ └─────────────┘ └──────────────┘ │ └────────┬─────────┘ │ │ │ └───────────┼────────────┘ │ └──────────────────────────────────────────────────┼──────────────┘ @@ -103,7 +103,7 @@ The core is a Go library (`ollie/pkg/`) with no binary. Frontends import it as a | `pkg/log/` | Structured logging | | `pkg/paths/` | Config and data directory resolution | | `pkg/tools/` | Server and Dispatcher interfaces | -| `pkg/tools/execute/` | The execute.Server (execute_code, call_tool, pipe) | +| `pkg/tools/execute/` | The execute.Server (execute_code) | | `pkg/tools/execute/tool.go` | Named tool script discovery and execution | | `internal/sandbox/` | Landlock sandbox config and command wrapper | @@ -279,8 +279,6 @@ The tool system has exactly one built-in server (`execute.Server`) that exposes | Executor | Purpose | |---|---| | `execute_code` | Run inline code steps (bash, python3, perl, lua, ...) | -| `call_tool` | Run named scripts from `OLLIE_TOOLS_PATH` | -| `pipe` | Sequential pipeline chaining stdout→stdin across steps | All other capabilities are **tool scripts** — executable files discovered from `OLLIE_TOOLS_PATH` (default: `~/.config/ollie/tools`). diff --git a/doc/CORE.md b/doc/CORE.md index 0772e45..c76bf25 100644 --- a/doc/CORE.md +++ b/doc/CORE.md @@ -33,7 +33,6 @@ core/ │ ├── server.go Server struct, Decl factory, ListTools, options │ ├── code.go Step resolution, validation, dispatch routing │ ├── tool.go Named tool script discovery and execution -│ ├── pipe.go Pipeline stage execution, parallel fan-out │ ├── flock.go Advisory locking, parallelism classification │ └── tier.go Result tier classification (hot/warm/cold) └── internal/ @@ -404,36 +403,6 @@ Runs inline code steps sequentially (or parallel via `{parallel: [...]}`). **Supported languages:** bash, python3, perl, lua, awk, sed, jq, ed, expect, bc. -#### call_tool - -Runs named tool scripts from `OLLIE_TOOLS_PATH`. - -**Input schema:** -```json -{ - "calls": [{"tool": "file_read", "args": ["/path"]}], - "timeout": 30, - "sandbox": "default" -} -``` - -Parallel fan-out is automatic for consecutive calls to `ollie:parallel read` tools. - -#### pipe - -Sequential pipeline — each stage's stdout feeds the next stage's stdin. - -**Input schema:** -```json -{ - "stages": [ - {"tool": "file_grep", "args": ["TODO", "--path=src/"]}, - {"code": "wc -l"} - ], - "timeout": 30 -} -``` - ### Code Validation Before execution, inline code is checked against dangerous patterns: diff --git a/doc/OBSERVATIONS.md b/doc/OBSERVATIONS.md index 2ca5992..23888a0 100644 --- a/doc/OBSERVATIONS.md +++ b/doc/OBSERVATIONS.md @@ -41,4 +41,4 @@ This enables prompt pipelines where each stage transforms, filters, or augments the previous stage's output — all with standard shell syntax. -**Tool schema complexity and model capability** — The execute package originally exposed a single `execute_code` tool with a unified schema covering inline steps, stdin-chained pipelines, named tool scripts, parallel fan-out, elevated execution, and sandbox selection. Larger models with strong reasoning handled this without difficulty. Smaller models struggled: common failure modes included emitting both `steps` and `pipe` in the same call, confusing the two execution modes, and ignoring named tool scripts in favour of reimplementing them inline. The tool was therefore split into three purpose-specific primitives — `execute_code` (inline code, `steps` key), `call_tool` (named scripts, `calls` key), and `pipe` (stdin-chained pipeline, `stages` key) — giving smaller models a narrow, unambiguous contract per tool. The `{parallel: [...]}` fan-out option is retained inside `execute_code` and `pipe` stages. The trade-off: a minor ergonomic regression for large models that handled the unified schema well, offset by significantly more reliable behaviour from smaller models. +**Tool schema complexity and model capability** — The execute package originally exposed a single `execute_code` tool with a unified schema covering inline steps, stdin-chained pipelines, named tool scripts, parallel fan-out, elevated execution, and sandbox selection. Larger models with strong reasoning handled this without difficulty. Smaller models struggled: common failure modes included confusing execution modes and ignoring named tool scripts in favour of reimplementing them inline. The tool was therefore split into two primitives — `execute_code` (inline code) and the tool registry (named scripts promoted to native callables) — giving smaller models a narrow, unambiguous contract per tool. The `{parallel: [...]}` fan-out option is retained inside `execute_code` stages. diff --git a/doc/REMOTE_EXECUTION.md b/doc/REMOTE_EXECUTION.md index d63e9f5..6901c88 100644 --- a/doc/REMOTE_EXECUTION.md +++ b/doc/REMOTE_EXECUTION.md @@ -190,8 +190,7 @@ Option 2 is simplest and matches goq's philosophy of "the remote is a mirror of | Component | Location | Why | |---|---|---| | execute_code | Remote | Needs remote filesystem, build tools | -| call_tool (file_*) | Remote | File I/O targets remote tree | -| call_tool (lsp_*) | Remote | Language server needs remote source | +| Named tool scripts | Remote | File I/O targets remote tree | | Sandbox | Remote | Landrun enforces on the execution host | | Working directory | Remote | The project lives there | @@ -218,7 +217,7 @@ All five phases are implemented: - `remote/` submodule with `main.go` - Wraps `execute.Server` with JSON-RPC stdio interface - Embeds `sandbox-remote.yaml` and tool scripts via `go:embed` -- RPC methods: `execute_code`, `call_tool`, `pipe`, `list_tools`, `host_info`, `ping` +- RPC methods: `execute_code`, `list_tools`, `host_info`, `ping` ### Phase 2: SSH bootstrap ✓ - `core/pkg/remote/bootstrap.sh` embedded template @@ -229,7 +228,7 @@ All five phases are implemented: ### Phase 3: RemoteServer adapter ✓ - `core/pkg/remote/remote.go` implements `tools.Server` - `ListTools()` calls remote `list_tools` RPC -- `CallTool()` passes tool name as RPC method (routes execute_code/call_tool/pipe) +- `CallTool()` passes tool name as RPC method (routes execute_code) - `HostInfo` fetched after connect (platform, arch, is_git_repo) ### Phase 4: Session integration ✓ diff --git a/doc/USAGE.md b/doc/USAGE.md index 240f3b5..1804f13 100644 --- a/doc/USAGE.md +++ b/doc/USAGE.md @@ -222,7 +222,7 @@ $OLLIE/s/bfg "list 5 blog post ideas" | grep -v "^$" | head -3 | $OLLIE/s/bfg "e $OLLIE/u/optimize -n 3 -cm qwen/qwen3-8b -jm anthropic/claude-opus-4-6 "explain recursion" ``` -Progress goes to stderr; pipe the optimized prompt with content into a subsequent call: +Progress goes to stderr; feed the optimized prompt with content into a subsequent call: ```sh prompt=$($OLLIE/u/optimize "translate this to Spanish" 2>/dev/null) @@ -698,7 +698,7 @@ Each tool script embeds its documentation and metadata in comment headers: # **Args**: `[arg1, arg2]` # # ``` -# call_tool: calls=[{tool: "my_tool", args: ["value"]}] +# file_edit: args=["/path", "old", "new"] # ``` # # **Constraints**: any notes for the model.