# Ollie monorepo build system # # Two paths: # just (default) 9P frontend: core, 9p, acme, httpgw, webui + install # just dbus D-Bus frontend: core, dbus (ollied), kde, httpgw, webui + install # # Build and install are separate phases. No sudo. set dotenv-load := false home := env_var('HOME') cfg := home / ".config/ollie" bin := home / "bin" # === Default (9P) path === default: build-9p install-9p # === D-Bus path === dbus: build-dbus install-dbus # === Build targets === build-9p: core ninep acme httpgw webui kde build-dbus: core dbus-bin kde httpgw webui core: @echo === Building ollie-core === cd core && go build ./... ninep: @echo === Building ollie-9p === cd 9p && go build -buildvcs=false -o {{bin}}/olliesrv . cd 9p && go build -buildvcs=false -o {{bin}}/ollie-9p-mount ./cmd/ollie-9p-mount/ dbus-bin: @echo === Building ollie-dbus (ollied) === cd dbus && go build -o ollied . acme: @echo === Building ollie-acme === cd acme && go build -o {{bin}}/Ollie . install -m755 acme/scripts/Kmpl {{bin}}/Kmpl install -m755 acme/scripts/Oi {{bin}}/Oi install -m755 acme/scripts/Theo {{bin}}/Theo httpgw: @echo === Building ollie-httpgw === cd httpgw && go build -o {{bin}}/ollie-httpgw . webui: @echo === Building ollie-webui === cd webui && npm run build kde: @echo === Building kde tools === cd kde && cmake -B build-cmake -S . -DCMAKE_INSTALL_PREFIX=~/.local cd kde && cmake --build build-cmake -j$(nproc) # === Install targets === install-9p: test install-data install-scripts install-contrib install-kde install-el install -m644 prompts/SYSTEM_PROMPT.md {{cfg}}/prompts/SYSTEM_PROMPT.md install -m644 prompts/session-9p.md {{cfg}}/prompts/session.md mkdir -p ~/.config/autostart install -m644 9p/org.ollie.olliesrv.desktop ~/.config/autostart/ @echo === Install complete \(9P\) === @echo 'Restart Plasma to pick up KDE plugins.' install-dbus: test install-data install-scripts install-contrib install-dbus-bin install-kde install -m644 prompts/SYSTEM_PROMPT.md {{cfg}}/prompts/SYSTEM_PROMPT.md install -m644 prompts/session-dbus.md {{cfg}}/prompts/session.md @echo === Install complete \(D-Bus\) === @echo 'Restart Plasma to pick up KDE plugins.' install-dbus-bin: @echo === Installing ollied === mkdir -p ~/.local/bin install -m755 dbus/ollied ~/.local/bin/ mkdir -p ~/.config/autostart install -m644 dbus/org.ollie.SessionManager.desktop ~/.config/autostart/ install-kde: @echo === Installing ollie-kde \(KF6\) === cmake --install kde/build-cmake # Desktop file and icon mkdir -p ~/.local/share/applications install -m644 kde/gui/org.ollie.gui.desktop ~/.local/share/applications/ mkdir -p ~/.local/share/icons/hicolor/scalable/apps install -m644 kde/gui/ollie.svg ~/.local/share/icons/hicolor/scalable/apps/ollie.svg # Dolphin service menus + helper scripts mkdir -p ~/.local/share/kio/servicemenus install -m755 kde/dolphin/ollie-actions.desktop ~/.local/share/kio/servicemenus/ install -m755 kde/dolphin/ollie-ask ~/.local/bin/ install -m755 kde/dolphin/ollie-session-here ~/.local/bin/ # Plasma session environment mkdir -p ~/.config/plasma-workspace/env install -m755 kde/99-ollie.sh ~/.config/plasma-workspace/env/99-ollie.sh # Finalize kbuildsycoca6 --noincremental 2>/dev/null; true kquitapp6 krunner 2>/dev/null; true @echo === KDE install complete. Restart Plasma to pick up plugins. === install-el: @echo === Installing ellie.el === mkdir -p ~/.config/emacs/ellie install -m644 el/ellie.el ~/.config/emacs/ellie/ellie.el install-data: @echo === Installing data === # Agents mkdir -p {{cfg}}/agents install -m644 agents/copilot.json {{cfg}}/agents/copilot.json install -m644 agents/default.json {{cfg}}/agents/default.json install -m644 agents/explorer.json {{cfg}}/agents/explorer.json install -m644 agents/librarian.json {{cfg}}/agents/librarian.json install -m644 agents/partner.json {{cfg}}/agents/partner.json install -m644 agents/README.md {{cfg}}/agents/README.md install -m644 agents/taskmanager.json {{cfg}}/agents/taskmanager.json install -m644 agents/theo.json {{cfg}}/agents/theo.json # Prompts mkdir -p {{cfg}}/prompts mkdir -p {{cfg}}/memory install -m644 prompts/agent-coding.md {{cfg}}/prompts/agent-coding.md install -m644 prompts/agent-copilot.md {{cfg}}/prompts/agent-copilot.md install -m644 prompts/agent-explorer.md {{cfg}}/prompts/agent-explorer.md install -m644 prompts/agent-librarian.md {{cfg}}/prompts/agent-librarian.md install -m644 prompts/agent-partner.md {{cfg}}/prompts/agent-partner.md install -m644 prompts/agent-taskmanager.md {{cfg}}/prompts/agent-taskmanager.md install -m644 prompts/agent-theo.md {{cfg}}/prompts/agent-theo.md install -m644 prompts/SYSTEM_PROMPT.md {{cfg}}/prompts/SYSTEM_PROMPT.md install -m644 prompts/SYSTEM_PROMPT_DEVSTRAL.md {{cfg}}/prompts/SYSTEM_PROMPT_DEVSTRAL.md install -m644 prompts/SYSTEM_PROMPT_QWEN.md {{cfg}}/prompts/SYSTEM_PROMPT_QWEN.md install -m644 prompts/session-9p.md {{cfg}}/prompts/session-9p.md install -m644 prompts/session-dbus.md {{cfg}}/prompts/session-dbus.md install -m644 prompts/tools-elevate.md {{cfg}}/prompts/tools-elevate.md install -m644 prompts/tools-file.md {{cfg}}/prompts/tools-file.md install -m644 prompts/tools-image.md {{cfg}}/prompts/tools-image.md install -m644 prompts/tools-lsp.md {{cfg}}/prompts/tools-lsp.md install -m644 prompts/tools-memory.md {{cfg}}/prompts/tools-memory.md install -m644 prompts/tools-process.md {{cfg}}/prompts/tools-process.md install -m644 prompts/tools-reasoning.md {{cfg}}/prompts/tools-reasoning.md install -m644 prompts/tools-subagent.md {{cfg}}/prompts/tools-subagent.md # Sandbox mkdir -p {{cfg}}/sandbox install -m644 sandbox/default.yaml {{cfg}}/sandbox/default.yaml install -m644 sandbox/restricted.yaml {{cfg}}/sandbox/restricted.yaml # Skills mkdir -p {{cfg}}/skills/acme-api {{cfg}}/skills/agent-kb {{cfg}}/skills/denote \ {{cfg}}/skills/duckduckgo-search {{cfg}}/skills/github-cli {{cfg}}/skills/rc-shell \ {{cfg}}/skills/web-dev-browser-screencapture {{cfg}}/skills/write-skills install -m644 skills/LICENSE.md {{cfg}}/skills/LICENSE.md install -m644 skills/README.md {{cfg}}/skills/README.md install -m644 skills/acme-api/SKILL.md {{cfg}}/skills/acme-api/SKILL.md install -m644 skills/agent-kb/SKILL.md {{cfg}}/skills/agent-kb/SKILL.md install -m644 skills/denote/SKILL.md {{cfg}}/skills/denote/SKILL.md install -m644 skills/duckduckgo-search/SKILL.md {{cfg}}/skills/duckduckgo-search/SKILL.md install -m644 skills/github-cli/SKILL.md {{cfg}}/skills/github-cli/SKILL.md install -m644 skills/rc-shell/SKILL.md {{cfg}}/skills/rc-shell/SKILL.md install -m644 skills/web-dev-browser-screencapture/SKILL.md {{cfg}}/skills/web-dev-browser-screencapture/SKILL.md install -m644 skills/write-skills/SKILL.md {{cfg}}/skills/write-skills/SKILL.md # Tools (executables) mkdir -p {{cfg}}/tools/_lib/lsp/adapters install -m755 tools/browser_screencap {{cfg}}/tools/browser_screencap install -m755 tools/denote_view {{cfg}}/tools/denote_view install -m755 tools/env {{cfg}}/tools/env install -m755 tools/file_edit {{cfg}}/tools/file_edit install -m755 tools/file_glob {{cfg}}/tools/file_glob install -m755 tools/file_grep {{cfg}}/tools/file_grep install -m755 tools/file_read {{cfg}}/tools/file_read install -m755 tools/file_write {{cfg}}/tools/file_write install -m755 tools/grep {{cfg}}/tools/grep install -m755 tools/gui_accessibility {{cfg}}/tools/gui_accessibility install -m755 tools/gui_activities {{cfg}}/tools/gui_activities install -m755 tools/gui_apps {{cfg}}/tools/gui_apps install -m755 tools/gui_brightness {{cfg}}/tools/gui_brightness install -m755 tools/gui_clipboard {{cfg}}/tools/gui_clipboard install -m755 tools/gui_files {{cfg}}/tools/gui_files install -m755 tools/gui_input {{cfg}}/tools/gui_input install -m755 tools/gui_media {{cfg}}/tools/gui_media install -m755 tools/gui_notify {{cfg}}/tools/gui_notify install -m755 tools/gui_screenshot {{cfg}}/tools/gui_screenshot install -m755 tools/gui_shortcuts {{cfg}}/tools/gui_shortcuts install -m755 tools/gui_windows {{cfg}}/tools/gui_windows install -m755 tools/image_read {{cfg}}/tools/image_read install -m755 tools/lsp_completion {{cfg}}/tools/lsp_completion install -m755 tools/lsp_definition {{cfg}}/tools/lsp_definition install -m755 tools/lsp_diagnostics {{cfg}}/tools/lsp_diagnostics install -m755 tools/lsp_hover {{cfg}}/tools/lsp_hover install -m755 tools/lsp_references {{cfg}}/tools/lsp_references install -m755 tools/lsp_rename {{cfg}}/tools/lsp_rename install -m755 tools/lsp_symbols {{cfg}}/tools/lsp_symbols install -m755 tools/memory_recall {{cfg}}/tools/memory_recall install -m755 tools/memory_remember {{cfg}}/tools/memory_remember install -m755 tools/process_dismiss {{cfg}}/tools/process_dismiss install -m755 tools/process_list {{cfg}}/tools/process_list install -m755 tools/process_output {{cfg}}/tools/process_output install -m755 tools/process_signal {{cfg}}/tools/process_signal install -m755 tools/reasoning_think {{cfg}}/tools/reasoning_think install -m755 tools/route {{cfg}}/tools/route install -m755 tools/subagent_generate {{cfg}}/tools/subagent_generate install -m755 tools/subagent_spawn {{cfg}}/tools/subagent_spawn # Tools (library modules) install -m644 tools/_lib/__init__.py {{cfg}}/tools/_lib/__init__.py install -m644 tools/_lib/lsp/__init__.py {{cfg}}/tools/_lib/lsp/__init__.py install -m644 tools/_lib/lsp/bridge.py {{cfg}}/tools/_lib/lsp/bridge.py install -m644 tools/_lib/lsp/client.py {{cfg}}/tools/_lib/lsp/client.py install -m644 tools/_lib/lsp/workspace.py {{cfg}}/tools/_lib/lsp/workspace.py install -m644 tools/_lib/lsp/adapters/__init__.py {{cfg}}/tools/_lib/lsp/adapters/__init__.py install -m644 tools/_lib/lsp/adapters/clangd.py {{cfg}}/tools/_lib/lsp/adapters/clangd.py install -m644 tools/_lib/lsp/adapters/gopls.py {{cfg}}/tools/_lib/lsp/adapters/gopls.py install -m644 tools/_lib/lsp/adapters/intelephense.py {{cfg}}/tools/_lib/lsp/adapters/intelephense.py # Help install -m644 doc/help.md {{cfg}}/help.md install-scripts: @echo === Installing scripts === mkdir -p {{cfg}}/scripts/s {{cfg}}/scripts/u {{cfg}}/scripts/x install -m755 scripts/s/sh {{cfg}}/scripts/s/sh install -m755 scripts/s/ls {{cfg}}/scripts/s/ls install -m755 scripts/s/kill {{cfg}}/scripts/s/kill install -m755 scripts/s/b {{cfg}}/scripts/s/b install -m755 scripts/s/bfg {{cfg}}/scripts/s/bfg install -m755 scripts/s/bbg {{cfg}}/scripts/s/bbg install -m755 scripts/s/cleanup {{cfg}}/scripts/s/cleanup install -m755 scripts/u/optimize {{cfg}}/scripts/u/optimize install -m755 scripts/u/complete {{cfg}}/scripts/u/complete install -m755 scripts/u/cascade {{cfg}}/scripts/u/cascade install -m755 scripts/x/elevate {{cfg}}/scripts/x/elevate install -m755 scripts/x/elevate-adapter-superpowerd {{cfg}}/scripts/x/elevate-adapter-superpowerd install -m755 scripts/x/elevate-adapter-start {{cfg}}/scripts/x/elevate-adapter-start install -m755 scripts/x/bd {{cfg}}/scripts/x/bd install -m755 scripts/x/prime {{cfg}}/scripts/x/prime install -m755 scripts/x/freeloader {{cfg}}/scripts/x/freeloader install-contrib: @echo === Installing contrib scripts === mkdir -p {{bin}} install -m755 contrib/ollie-remount {{bin}}/ollie-remount install -m755 scripts/s/ollie-watchdog {{bin}}/ollie-watchdog # === Uninstall === uninstall: @echo === Uninstalling ollie === rm -f {{bin}}/olliesrv {{bin}}/ollie-9p-mount rm -f {{bin}}/ollie-httpgw rm -f {{bin}}/Ollie {{bin}}/Kmpl {{bin}}/Oi {{bin}}/Theo rm -f {{bin}}/ollie-remount {{bin}}/ollie-watchdog rm -rf {{cfg}} rm -f ~/.config/autostart/org.ollie.olliesrv.desktop # D-Bus daemon pkill -u "$(id -u)" -x ollied 2>/dev/null; true rm -f ~/.local/bin/ollied rm -f ~/.config/autostart/org.ollie.SessionManager.desktop # KDE rm -f ~/.local/bin/ollie-tray ~/.local/bin/ollie-gui rm -f ~/.local/bin/ollie-ask ~/.local/bin/ollie-session-here rm -f ~/.local/share/applications/org.ollie.gui.desktop rm -f ~/.local/share/icons/hicolor/scalable/apps/ollie.svg rm -f ~/.local/lib64/qt6/plugins/kf6/krunner/krunner_ollie.so rm -f ~/.local/lib64/qt6/plugins/ktexteditor/ollie_kate.so rm -rf ~/.local/share/plasma/plasmoids/org.ollie.plasmoid rm -rf ~/.local/lib64/qml/org/ollie rm -f ~/.local/share/kio/servicemenus/ollie-actions.desktop kquitapp6 krunner 2>/dev/null; true # Emacs rm -rf ~/.config/emacs/ellie # Plasma env rm -f ~/.config/plasma-workspace/env/99-ollie.sh @echo === Uninstall complete === # === Test targets === test: test-core test-9p test-core: @echo === Testing ollie-core === cd core && go test ./... test-9p: @echo === Testing ollie-9p === cd 9p && go test ./... # === Clean === clean: cd core && go clean ./... 2>/dev/null || true rm -f {{bin}}/olliesrv {{bin}}/ollie-9p-mount rm -f {{bin}}/ollie-httpgw rm -f {{bin}}/Ollie {{bin}}/Kmpl {{bin}}/Oi {{bin}}/Theo rm -f dbus/ollied rm -rf kde/build-cmake # === Help === help: @echo 'Ollie monorepo build targets:' @echo ' just Build 9P path + install (default)' @echo ' just dbus Build D-Bus path + install' @echo ' just build-9p Build only (9P): core, 9p, acme, httpgw, webui' @echo ' just build-dbus Build only (D-Bus): core, ollied, kde, httpgw, webui' @echo ' just install-9p Install with 9P prompt' @echo ' just install-dbus Install with D-Bus prompt' @echo ' just test Run all tests (core + 9p)' @echo ' just test-core Run core tests' @echo ' just test-9p Run 9p tests' @echo ' just uninstall Remove all installed files' @echo ' just clean Clean build artifacts' @echo '' @echo 'Individual: just core | ninep | dbus-bin | acme | httpgw | webui | kde'