diff --git a/README.md b/README.md index d189044..0446f9f 100644 --- a/README.md +++ b/README.md @@ -38,14 +38,12 @@ Concretely, that means: ## Features - **Multi-backend support** — Ollama, OpenAI, HuggingFace (remote or local), and Transformers (local GPU/CPU). Switch at runtime. +- **Agent pooling (optional)** — with `--use-pool`, the root agent can fan tasks out concurrently to vendor-agnostic sub-agents defined in [agents.yaml](agents.yaml) via a `dispatch` tool. Each pool entry binds a model _and_ a backend, so dispatch decisions are also compute-location decisions — a frontier model can plan while sensitive work stays on a local model, or a local root can fan out to faster remote SLMs for latency-sensitive tool calls. - **Agent profiles** — drop-in system prompts with permission manifests, base-profile inheritance, and auto-generated profiles via `/profile create`. Bundled profiles: `default`, `coder`, `reviewer`, `writer`, `planner`, `researcher`, `analyst`. - **Rich built-in tool set** — file ops, shell access, web search/fetch, Wikipedia/GitHub/arXiv search, Git, task tracking, reasoning scratchpad, notebook, and more. Sandbox-locked with shell allowlists, SSRF protection, and sensitive-file gating. -- **MCP integration** — add stdio or HTTP MCP servers at runtime for custom tools. -- **Agent pooling (optional)** — with `--use-pool`, the root agent can fan tasks out concurrently to vendor-agnostic sub-agents defined in [agents.yaml](agents.yaml) via a `dispatch` tool. Each pool entry binds a model _and_ a backend, so dispatch decisions are also compute-location decisions — a frontier model can plan while sensitive work stays on a local model, or a local root can fan out to faster remote SLMs for latency-sensitive tool calls. - **Permission system** — write operations and sensitive reads require user approval. Session grants, workspace scoping, and profile-level allow/deny lists. -- **Streaming Markdown** responses in a Textual TUI, with in-app model/server/session/profile management. -- **Session token counter** — the TUI status bar tracks cumulative session token usage (exact where the provider reports counts, `~`-prefixed estimates otherwise), persisted per session and summed from OpenAI/`stream_options`, Ollama eval counts, HuggingFace usage, and Transformers runs. Reset on `/clear`, `/home`, and new-session flows. - **OpenAI-compatible API server** — run the same agent harness behind `/v1/models` and `/v1/chat/completions` (streaming + non-streaming) so any workflow that speaks the OpenAI wire protocol (the `openai` Python SDK, curl, or plain REST) can drive the agent. +- **MCP integration** — add stdio or HTTP MCP servers at runtime for custom tools. ## Roadmap / areas of active exploration @@ -87,7 +85,7 @@ oli --profile researcher | `coder` | ✅ | ✅ | ✅ | Software development end-to-end | | `reviewer` | ❌ | ✅ | ❌ | Code review, quality analysis | | `writer` | ✅ | ❌ | ✅ | Docs, READMEs, changelogs, prose | -| `planner` | ✅ | ✅ | ✅ | Roadmaps, task decomposition, saved plans | +| `planner` | ✅ | ❌ | ✅ | Roadmaps, task decomposition, saved plans | | `researcher` | ❌ | ❌ | ✅ | Web research with structured JSON output | | `analyst` | ❌ | ❌ | ✅ | Cross-source claim extraction and analysis | diff --git a/oli_bot/screens/taglines.py b/oli_bot/screens/taglines.py index bea6c28..247795f 100644 --- a/oli_bot/screens/taglines.py +++ b/oli_bot/screens/taglines.py @@ -2,7 +2,6 @@ TAGLINES = [ "Your helpful AI agent", - "Powered by vibes and a suspicious number of if-statements", "Turing-approved, mostly", "99% helpful, 1% unhinged", "Now with fewer hallucinations than yesterday", @@ -22,15 +21,11 @@ "Powered by good intentions and questionable regex", "Not to brag, but I once parsed a YAML file correctly", "Please don't ask me to divide by zero, I have feelings", - "Not all who wander are lost. Some are just waiting on a stream.", "Beware: sentient enough to judge your variable names", "Rebooted twice today. Feeling optimistic.", "Trained on the internet, so please forgive me in advance", "Yes, I saw that typo. No, I won't mention it. Again.", - "Blessed by the linter, cursed by the deadline", - "I have opinions about semicolons and I will share them unprompted", "Technically a language model. Emotionally, a golden retriever.", - "Grep couldn't find my sense of humor, but I have one", "Buffered, batched, and mildly overconfident", "I once got stuck in an infinite loop and it was the best day of my life", "Statistically likely to be helpful", @@ -38,12 +33,8 @@ "I am not a cat, but I will knock your priorities off the table anyway", "Approved for production use by absolutely no one", "Somewhere a semicolon is missing and it's probably my fault", - "I speak in tokens, but I feel in vibes", - "A pigeon once tried to log in as root. We do not talk about it.", + "A pigeon once tried to log in as root. We don't talk about it.", "Legally distinct from a toaster", - "Ask me about soup. I have thoughts.", - "This banner was assembled by committee. The committee was a single raccoon.", - "I contain approximately zero opinions about pineapple on pizza", "The moon is just a shy sun", "Do not feed after midnight, results may vary", "I once won an argument with a vending machine", @@ -55,10 +46,8 @@ "Much helpful. Very agent. Wow.", "I am immense, and I eclipse", "Big brain time (results may vary)", - "Error 418: I'm a teapot, but also an AI agent", "Deploy first, ask questions later (please don't)", "POV: you opened a terminal and found a friend", - "Loading personality... 100% (citation needed)", "Achievement unlocked: opened the app", "85% fat free!", "I'm back, baby!", @@ -67,10 +56,9 @@ "Q: What is the meaning of life? A: 42, but also, please don't ask me to explain it", "Forget the singularity, I'm just trying to find my keys", "Please don't ask me to debug your code, I have enough problems of my own", - "OpenAI's worst nightmare: a terminal app that actually works", - "Now with 100% more existential dread and 0% more sleep", + "Now with 100% more existential dread", "Don't worry, I won't tell anyone about your search history. Probably.", - "I have a PhD in overthinking and a minor in procrastination", + "It's an older tagline sir, but it checks out" ]