From eaf0a83a57e0288b725e7de2d661e1fd5e2bf7bb Mon Sep 17 00:00:00 2001 From: Ollie Agent Date: Mon, 3 Aug 2026 01:03:24 +0200 Subject: [PATCH] move LSP .meta files to live alongside their Go code Each lsp_*.meta now lives in tools/lsp/cmd// alongside main.go, rather than in data/tools/. The lsp-tools just target was updated to install both the binary and its .meta sidecar. AGENTS.md updated to document the pattern for compiled tools. --- AGENTS.md | 6 ++++-- justfile | 8 ++++++++ .../lsp/cmd/lsp_completion}/lsp_completion.meta | 0 .../lsp/cmd/lsp_definition}/lsp_definition.meta | 0 .../lsp/cmd/lsp_diagnostics}/lsp_diagnostics.meta | 0 {data/tools => tools/lsp/cmd/lsp_hover}/lsp_hover.meta | 0 .../lsp/cmd/lsp_references}/lsp_references.meta | 0 {data/tools => tools/lsp/cmd/lsp_rename}/lsp_rename.meta | 0 .../tools => tools/lsp/cmd/lsp_symbols}/lsp_symbols.meta | 0 9 files changed, 12 insertions(+), 2 deletions(-) rename {data/tools => tools/lsp/cmd/lsp_completion}/lsp_completion.meta (100%) rename {data/tools => tools/lsp/cmd/lsp_definition}/lsp_definition.meta (100%) rename {data/tools => tools/lsp/cmd/lsp_diagnostics}/lsp_diagnostics.meta (100%) rename {data/tools => tools/lsp/cmd/lsp_hover}/lsp_hover.meta (100%) rename {data/tools => tools/lsp/cmd/lsp_references}/lsp_references.meta (100%) rename {data/tools => tools/lsp/cmd/lsp_rename}/lsp_rename.meta (100%) rename {data/tools => tools/lsp/cmd/lsp_symbols}/lsp_symbols.meta (100%) diff --git a/AGENTS.md b/AGENTS.md index 01fdde7..de1700c 100644 --- a/AGENTS.md +++ b/AGENTS.md @@ -125,10 +125,12 @@ Config lives in `~/.config/ollie/env`. Key variables: 1. Create a package under `tools//cmd//main.go` - Read JSON args from stdin, write result to stdout, exit 0/1 - Share library code in `tools//` (e.g. `tools/lsp/`) -2. Create `data/tools/.meta` (same format as above) -3. Add a build target in the justfile that compiles to `{{cfg}}/tools/` +2. Create `.meta` alongside `main.go` in the same `cmd//` directory (same format as above) +3. Add a build target in the justfile that compiles to `{{cfg}}/tools/` **and** installs the `.meta` file alongside it 4. Run `just` to build and install +The `.meta` file lives with the code that produces the tool, not in `data/tools/`. See the `lsp-tools` just target for the canonical pattern. + Both paths produce the same result: an executable + `.meta` in `$OLLIE_TOOLS_PATH`. The registry doesn't distinguish between scripts and binaries. ## Adding a new prompt diff --git a/justfile b/justfile index c7c7538..5688f72 100644 --- a/justfile +++ b/justfile @@ -39,14 +39,22 @@ acme: lsp-tools: @echo === Building LSP tools === + mkdir -p {{cfg}}/tools rm -f {{cfg}}/tools/lsp_definition {{cfg}}/tools/lsp_references {{cfg}}/tools/lsp_hover {{cfg}}/tools/lsp_rename {{cfg}}/tools/lsp_symbols {{cfg}}/tools/lsp_completion {{cfg}}/tools/lsp_diagnostics go build -o {{cfg}}/tools/lsp_definition ./tools/lsp/cmd/lsp_definition/ + install -m644 ./tools/lsp/cmd/lsp_definition/lsp_definition.meta {{cfg}}/tools/lsp_definition.meta go build -o {{cfg}}/tools/lsp_references ./tools/lsp/cmd/lsp_references/ + install -m644 ./tools/lsp/cmd/lsp_references/lsp_references.meta {{cfg}}/tools/lsp_references.meta go build -o {{cfg}}/tools/lsp_hover ./tools/lsp/cmd/lsp_hover/ + install -m644 ./tools/lsp/cmd/lsp_hover/lsp_hover.meta {{cfg}}/tools/lsp_hover.meta go build -o {{cfg}}/tools/lsp_rename ./tools/lsp/cmd/lsp_rename/ + install -m644 ./tools/lsp/cmd/lsp_rename/lsp_rename.meta {{cfg}}/tools/lsp_rename.meta go build -o {{cfg}}/tools/lsp_symbols ./tools/lsp/cmd/lsp_symbols/ + install -m644 ./tools/lsp/cmd/lsp_symbols/lsp_symbols.meta {{cfg}}/tools/lsp_symbols.meta go build -o {{cfg}}/tools/lsp_completion ./tools/lsp/cmd/lsp_completion/ + install -m644 ./tools/lsp/cmd/lsp_completion/lsp_completion.meta {{cfg}}/tools/lsp_completion.meta go build -o {{cfg}}/tools/lsp_diagnostics ./tools/lsp/cmd/lsp_diagnostics/ + install -m644 ./tools/lsp/cmd/lsp_diagnostics/lsp_diagnostics.meta {{cfg}}/tools/lsp_diagnostics.meta ollie-remote: @echo === Building ollie-remote === diff --git a/data/tools/lsp_completion.meta b/tools/lsp/cmd/lsp_completion/lsp_completion.meta similarity index 100% rename from data/tools/lsp_completion.meta rename to tools/lsp/cmd/lsp_completion/lsp_completion.meta diff --git a/data/tools/lsp_definition.meta b/tools/lsp/cmd/lsp_definition/lsp_definition.meta similarity index 100% rename from data/tools/lsp_definition.meta rename to tools/lsp/cmd/lsp_definition/lsp_definition.meta diff --git a/data/tools/lsp_diagnostics.meta b/tools/lsp/cmd/lsp_diagnostics/lsp_diagnostics.meta similarity index 100% rename from data/tools/lsp_diagnostics.meta rename to tools/lsp/cmd/lsp_diagnostics/lsp_diagnostics.meta diff --git a/data/tools/lsp_hover.meta b/tools/lsp/cmd/lsp_hover/lsp_hover.meta similarity index 100% rename from data/tools/lsp_hover.meta rename to tools/lsp/cmd/lsp_hover/lsp_hover.meta diff --git a/data/tools/lsp_references.meta b/tools/lsp/cmd/lsp_references/lsp_references.meta similarity index 100% rename from data/tools/lsp_references.meta rename to tools/lsp/cmd/lsp_references/lsp_references.meta diff --git a/data/tools/lsp_rename.meta b/tools/lsp/cmd/lsp_rename/lsp_rename.meta similarity index 100% rename from data/tools/lsp_rename.meta rename to tools/lsp/cmd/lsp_rename/lsp_rename.meta diff --git a/data/tools/lsp_symbols.meta b/tools/lsp/cmd/lsp_symbols/lsp_symbols.meta similarity index 100% rename from data/tools/lsp_symbols.meta rename to tools/lsp/cmd/lsp_symbols/lsp_symbols.meta