diff --git a/AGENTS.md b/AGENTS.md index 927805c..12aebe3 100644 --- a/AGENTS.md +++ b/AGENTS.md @@ -39,38 +39,42 @@ Three locations have prompt and tool files. The **source of truth** depends on w | Location | Purpose | Deployed by | |----------|---------|-------------| -| `9p/prompts/`, `9p/tools/` | Canonical source for the 9P server | `make -C 9p` installs to `~/.config/ollie/` | -| `9p/skills/`, `kde/skills/` | Shared `agent-skills` submodule (same repo in both) | `make data` copies to `~/.config/ollie/skills/` | -| `kde/prompts/`, `kde/tools/` | KDE-specific copies (may diverge for KDE-only tools like `gui_*`) | CMake install | -| Root `prompts/`, `tools/` | Top-level copies installed by `make data` from monorepo root | `make data` | +| `9p/prompts/`, `9p/tools/` | Canonical source for the 9P server | `just install-data` | +| `9p/skills/`, `kde/skills/` | Shared `agent-skills` submodule (same repo in both) | `just install-data` | +| `kde/prompts/`, `kde/tools/` | KDE-specific copies (may diverge for KDE-only tools like `gui_*`) | `just install-kde` | +| Root `prompts/`, `tools/` | Top-level copies installed by `just install-data` | `just install-data` | -The root-level `make data` target copies `agents/`, `prompts/`, `tools/`, `sandbox/` (and `skills/` from submodules) into `~/.config/ollie/`. **Do not edit `~/.config/ollie/` directly** — changes are overwritten on next install. +The `just install-data` target copies `agents/`, `prompts/`, `tools/`, `sandbox/` (and `skills/` from submodules) into `~/.config/ollie/`. **Do not edit `~/.config/ollie/` directly** — changes are overwritten on next install. When adding a new prompt/tool that should be available to all frontends, add it to both `9p/prompts/` (or `9p/tools/`) and the root `prompts/` (or `tools/`) directory. ## Build System ```bash -# From monorepo root: -make # build everything + install data/scripts -make core # just core library -make 9p # just 9P server -make dbus # just D-Bus daemon -make httpgw # just HTTP gateway -make webui # just web UI (needs npm) -make data # install agents/prompts/tools/skills to ~/.config/ollie/ -make scripts # install CLI scripts +# From monorepo root (pick one): +just # 9P path (recommended): core, 9p, acme, kde, httpgw, webui, emacs +just dbus # D-Bus path (KDE-only): core, ollied, kde, httpgw, webui -# KDE (from kde/): -mkdir build-kf6 && cd build-kf6 && cmake .. && make +# Individual components: +just core # core library +just ninep # 9P server +just acme # acme frontend +just kde # KDE integration +just httpgw # HTTP gateway +just webui # web UI (needs npm) +just dbus-bin # D-Bus daemon (ollied) -# Individual Go submodules: -cd core && make -cd 9p && make -cd dbus && make +# Install targets (run automatically by the above): +just install-data # agents, prompts, tools, skills → ~/.config/ollie/ +just install-scripts # CLI scripts → ~/.config/ollie/scripts/ +just install-kde # KDE plugins, desktop file, env → ~/.local/ +just install-el # ellie.el → ~/.config/emacs/ellie/ + +# Test: +just test # run all tests (core + 9p) ``` -There's also a Plan 9 `mkfile` at the root and in submodules for `mk` users. +Requires [just](https://github.com/casey/just): `cargo install just` ## Testing @@ -142,13 +146,13 @@ Config lives in `~/.config/ollie/env`. Key variables: 1. Create an executable script in `tools/` (and `9p/tools/`, `kde/tools/` if needed) 2. Add header comments: `# description:`, `# args:`, optionally `# ollie:parallel read` or `# ollie:tier cold` 3. Create a matching `prompts/tools-*.md` documentation file (and in `9p/prompts/`, `kde/prompts/`) -4. Run `make data` to install +4. Run `just install-data` to install ## Adding a new prompt 1. Write the markdown file in `9p/prompts/` and root `prompts/` 2. If it should be loaded by default, add a `$OLLIE_CFG_PATH/scripts/x/prime ` entry to `agents/default.json` -3. Run `make data` to install +3. Run `just install-data` to install ## Submodule workflow diff --git a/README.md b/README.md index dc43ffb..bb2ea07 100644 --- a/README.md +++ b/README.md @@ -265,26 +265,21 @@ Or after cloning: git submodule update --init --recursive ``` -Build and install everything from the monorepo root: +Build and install (pick one): ```sh -mk +just # 9P path (recommended): core, 9p, acme, kde, httpgw, webui, emacs +just dbus # D-Bus path (KDE-only): core, ollied, kde, httpgw, webui ``` -Or build specific components: +These are mutually exclusive — pick the one that matches your setup. + +Requires [just](https://github.com/casey/just): ```sh -mk core # Core library -mk 9p # 9P filesystem server -mk httpgw # HTTP gateway -mk webui # Web UI (requires Node.js + npm) -mk dbus # D-Bus daemon -mk data # Install agents/prompts/tools/skills to ~/.config/ollie/ -mk scripts # Install CLI scripts +cargo install just ``` -For KDE, build from `kde/` with CMake. For Emacs, copy `el/ellie.el` into your config and `(require 'ellie)`. - See [doc/USAGE.md](doc/USAGE.md) for usage instructions. ## Configuration diff --git a/doc/USAGE.md b/doc/USAGE.md index 1fbf999..79fc14a 100644 --- a/doc/USAGE.md +++ b/doc/USAGE.md @@ -42,7 +42,7 @@ The rendered context window for any session is readable at `s/{id}/context` — Examples below assume `$OLLIE` is set to the ollie mount point (default: `$HOME/mnt/ollie`). Scripts under `s/` and `u/` are available directly via the mounted filesystem -after running `mk && mk scripts`. +after running `just`. ## Interactive shell @@ -506,9 +506,7 @@ custom scripts — interact with `olliesrv` without a 9P client library. ### Build ```sh -mk httpgw # from repo root -# or -cd httpgw && mk +just httpgw ``` Produces `~/bin/ollie-httpgw`. @@ -597,9 +595,7 @@ in the browser. ### Build ```sh -mk webui # from repo root -# or -cd webui && npm run build +just webui ``` Requires Node.js and npm. Output lands in `webui/dist/`.