diff --git a/DEVELOPMENT.md b/DEVELOPMENT.md index c30538e..c798f80 100644 --- a/DEVELOPMENT.md +++ b/DEVELOPMENT.md @@ -91,15 +91,16 @@ decision that this project's threat model does not cover ## Pointing the storyteller at Ollama -The endpoint, model and (unused) API key are **runtime settings stored in the -database**, not environment variables. Set them on the app's Settings page, or -with one request: +The endpoint, the model and the generation parameters are **runtime settings +stored in the database**, not environment variables. There is no API key field: +M2 removed it along with the cloud providers, and Ollama does not use one. Set +them on the app's Settings page, or with one request: ```bash curl -X PUT http://127.0.0.1:8000/api/settings \ -H 'Content-Type: application/json' \ -d '{"endpoint_url":"http://127.0.0.1:11434/v1","model":"qwen2.5:3b-instruct", - "api_mode":"chat","api_key":"","max_output_tokens":200, + "api_mode":"chat","max_output_tokens":200, "context_token_budget":4096}' ``` diff --git a/README.md b/README.md index 9fa5f10..ad9f342 100644 --- a/README.md +++ b/README.md @@ -121,18 +121,23 @@ Open http://localhost:5173. ## Connect a model -Open **Settings** in the app and point it at a local Ollama-compatible endpoint: +Ollama is the inference backend v1 supports. Open **Settings** in the app and point it at one: -| Where the model runs | Endpoint URL | Notes | +| Where Ollama runs | Endpoint URL | Notes | |---|---|---| -| Ollama, same machine | `http://localhost:11434/v1` | the default, and the simplest thing that works | -| Ollama, a machine on your own network | `http://:11434/v1` or `https:///v1` | see below | -| LM Studio, same machine | `http://localhost:1234/v1` | | +| The same machine | `http://localhost:11434/v1` | the default, and the simplest thing that works | +| A machine on your own network | `http://:11434/v1` or `https:///v1` | explicitly configured; see below | Model name, generation parameters, and (optionally) summary and embedding models for the Memory Bank are configured there too. No config files and no rebuild are needed. There is no API key field, because there is nothing to authenticate to. +The adapter underneath speaks the OpenAI-compatible protocol, because that is what Ollama +serves. That is an implementation detail, not a promise of support for arbitrary local +servers that happen to speak the same protocol. Public and cloud inference endpoints are +prohibited outright — see `planning/DECISIONS/002-ollama-only-v1.md` and +`planning/DECISIONS/011-local-inference-endpoint-policy.md`. + ### What the endpoint policy allows The address is checked when you save it and again before every request. Only loopback and @@ -146,7 +151,7 @@ machine serves HTTPS with a certificate from a CA you installed, it works: certi verified against your operating system's trust store as well as the bundled one. Verification itself is never relaxed, and there is no option to turn it off. -### Playing against a local shim +### Playing against a local shim (development only) `backend/tools/claude_shim.py` serves an OpenAI-compatible endpoint on `127.0.0.1:8787` backed by a command-line tool, which is useful for testing the turn engine against a stronger diff --git a/planning/BUILD-MILESTONES.md b/planning/BUILD-MILESTONES.md index 5067506..dcd74f6 100644 --- a/planning/BUILD-MILESTONES.md +++ b/planning/BUILD-MILESTONES.md @@ -1,6 +1,6 @@ # Adventure Storyteller — Production Build Milestones -**Status:** In implementation. M1 and M2 complete (2026-09-02); M3 next +**Status:** In implementation. M1, M2 and M3 complete and accepted (M1 and M2: 2026-09-02; M3: 2026-09-03); M4 — Named Save Points / Checkpoints — next **Base:** AI-DnD `d72f7c1bda0f34fccd84afb7a25c34eb01c901de` ## 1. Purpose