consolidate build system into justfile

- Remove all Makefiles and mkfiles from root and submodules
- All install targets now use ~/.local/ instead of /usr/
- Replace cp+chmod with install throughout
- Install every file individually with explicit permissions
- Add install-kde to 9P path (KDE works with both backends)
- Add install-el for Emacs frontend (~/.config/emacs/ellie)
- Add test targets (test-core, test-9p)
- No sudo required for any operation
This commit is contained in:
Ollie Agent 2026-07-19 13:03:08 +02:00
parent adea9cb627
commit 601a28d0e0
9 changed files with 231 additions and 332 deletions

2
9p

@ -1 +1 @@
Subproject commit ebc82f338b165d6fa64d0c07d3819ef58e1a7df5
Subproject commit 29b08a87ad806b2f62221b6949cfe2a1904d6af5

150
Makefile
View File

@ -1,150 +0,0 @@
# Ollie monorepo build system
#
# Two paths:
# make (default) 9P frontend: core, 9p, acme, httpgw, webui + install
# make dbus D-Bus frontend: core, dbus (ollied), kde/*, httpgw, webui + install
#
# Build and install are separate phases. No sudo. No building during install.
.PHONY: all dbus build-9p build-dbus install install-dbus uninstall \
core 9p acme httpgw webui kde data scripts contrib help clean
# === Default (9P) path ===
all: build-9p install
build-9p: core 9p acme httpgw webui
install: data scripts contrib
cp -f prompts/SYSTEM_PROMPT-9p.md $(HOME)/.config/ollie/prompts/SYSTEM_PROMPT.md
@echo === Install complete (9P) ===
# === D-Bus path ===
dbus: build-dbus install-dbus
build-dbus: core dbus-bin kde httpgw webui
install-dbus: data scripts contrib
cp -f prompts/SYSTEM_PROMPT-dbus.md $(HOME)/.config/ollie/prompts/SYSTEM_PROMPT.md
@echo === Install complete (D-Bus) ===
# === Individual build targets ===
core:
@echo === Building ollie-core ===
$(MAKE) -C core
dbus-bin:
@echo === Building ollie-dbus (ollied) ===
$(MAKE) -C dbus
9p:
@echo === Building ollie-9p ===
$(MAKE) -C 9p
acme:
@echo === Building ollie-acme ===
$(MAKE) -C acme
httpgw:
@echo === Building ollie-httpgw ===
$(MAKE) -C httpgw
webui:
@echo === Building ollie-webui ===
cd webui && npm run build
kde:
@echo === Building kde tools ===
$(MAKE) -C kde
# === Install targets (no building!) ===
data:
@echo === Installing data ===
mkdir -p $(HOME)/.config/ollie/agents
mkdir -p $(HOME)/.config/ollie/sandbox
mkdir -p $(HOME)/.config/ollie/skills
mkdir -p $(HOME)/.config/ollie/tools
rm -rf $(HOME)/.config/ollie/prompts
mkdir -p $(HOME)/.config/ollie/prompts
cp -rf agents/* $(HOME)/.config/ollie/agents
cp -rf prompts/* $(HOME)/.config/ollie/prompts
cp -rf sandbox/* $(HOME)/.config/ollie/sandbox
cp -rf skills/* $(HOME)/.config/ollie/skills
cp -rf tools/_lib $(HOME)/.config/ollie/tools/_lib
cp -rf tools/* $(HOME)/.config/ollie/tools
cp -rf tools/cascade $(HOME)/.config/ollie/tools/cascade
cp doc/help.md $(HOME)/.config/ollie/help.md
scripts:
@echo === Installing scripts ===
mkdir -p $(HOME)/.config/ollie/scripts/s $(HOME)/.config/ollie/scripts/u $(HOME)/.config/ollie/scripts/x
cp -f scripts/s/sh $(HOME)/.config/ollie/scripts/s/sh
cp -f scripts/s/ls $(HOME)/.config/ollie/scripts/s/ls
cp -f scripts/s/kill $(HOME)/.config/ollie/scripts/s/kill
cp -f scripts/s/b $(HOME)/.config/ollie/scripts/s/b
cp -f scripts/s/bfg $(HOME)/.config/ollie/scripts/s/bfg
cp -f scripts/s/bbg $(HOME)/.config/ollie/scripts/s/bbg
cp -f scripts/s/cleanup $(HOME)/.config/ollie/scripts/s/cleanup
cp -f scripts/u/optimize $(HOME)/.config/ollie/scripts/u/optimize
cp -f scripts/u/complete $(HOME)/.config/ollie/scripts/u/complete
cp -f scripts/u/cascade $(HOME)/.config/ollie/scripts/u/cascade
cp -f scripts/x/elevate $(HOME)/.config/ollie/scripts/x/elevate
cp -f scripts/x/elevate-adapter-superpowerd $(HOME)/.config/ollie/scripts/x/elevate-adapter-superpowerd
cp -f scripts/x/elevate-adapter-start $(HOME)/.config/ollie/scripts/x/elevate-adapter-start
cp -f scripts/x/bd $(HOME)/.config/ollie/scripts/x/bd
cp -f scripts/x/prime $(HOME)/.config/ollie/scripts/x/prime
cp -f scripts/x/freeloader $(HOME)/.config/ollie/scripts/x/freeloader
chmod 755 \
$(HOME)/.config/ollie/scripts/s/b \
$(HOME)/.config/ollie/scripts/s/bfg \
$(HOME)/.config/ollie/scripts/s/bbg \
$(HOME)/.config/ollie/scripts/s/cleanup \
$(HOME)/.config/ollie/scripts/u/optimize \
$(HOME)/.config/ollie/scripts/u/complete \
$(HOME)/.config/ollie/scripts/u/cascade \
$(HOME)/.config/ollie/scripts/x/elevate \
$(HOME)/.config/ollie/scripts/x/elevate-adapter-superpowerd \
$(HOME)/.config/ollie/scripts/x/elevate-adapter-start \
$(HOME)/.config/ollie/scripts/x/bd \
$(HOME)/.config/ollie/scripts/x/prime \
$(HOME)/.config/ollie/scripts/x/freeloader
contrib:
@echo === Installing contrib scripts ===
cp -f contrib/ollie-remount $(HOME)/bin/ollie-remount
chmod 755 $(HOME)/bin/ollie-remount
uninstall:
@echo === Uninstalling ollie ===
rm -f $(HOME)/bin/olliesrv $(HOME)/bin/ollie-9p-mount
rm -f $(HOME)/bin/ollie-httpgw
rm -f $(HOME)/bin/Ollie $(HOME)/bin/Kmpl $(HOME)/bin/Oi
rm -f $(HOME)/bin/ollie-remount $(HOME)/bin/ollie-watchdog
rm -rf $(HOME)/.config/ollie
$(MAKE) -C dbus uninstall 2>/dev/null || true
$(MAKE) -C kde uninstall 2>/dev/null || true
@echo === Uninstall complete ===
clean:
$(MAKE) -C core clean 2>/dev/null || true
$(MAKE) -C 9p clean 2>/dev/null || true
$(MAKE) -C dbus clean 2>/dev/null || true
$(MAKE) -C acme clean 2>/dev/null || true
$(MAKE) -C httpgw clean 2>/dev/null || true
$(MAKE) -C kde clean 2>/dev/null || true
help:
@echo 'Ollie monorepo build targets:'
@echo ' all - Build 9P path + install (default)'
@echo ' dbus - Build D-Bus path + install'
@echo ' build-9p - Build only (9P path): core, 9p, acme, httpgw, webui'
@echo ' build-dbus - Build only (D-Bus path): core, ollied, kde, httpgw, webui'
@echo ' install - Install data/scripts/contrib (9P prompt)'
@echo ' install-dbus - Install data/scripts/contrib (D-Bus prompt)'
@echo ' data - Install agents, prompts, skills, tools to ~/.config/ollie/'
@echo ' scripts - Install shell scripts to ~/.config/ollie/scripts/'
@echo ' contrib - Install contrib scripts to ~/bin/'
@echo ' uninstall - Remove all installed files'
@echo ' clean - Clean all build artifacts'
@echo ''
@echo 'Submodules must be initialized first:'
@echo ' git submodule update --init --recursive'

2
acme

@ -1 +1 @@
Subproject commit 03c3f1382c159ec1bfd3cab4d7d27610410b7f32
Subproject commit 2c1810b604482d8feade309151c1dddadc84b0cc

2
core

@ -1 +1 @@
Subproject commit 519869a00360ffb8b6ff5e2e21902d84d937e271
Subproject commit b4b0f2068d4c5f30373193811014c3a213e255e2

2
dbus

@ -1 +1 @@
Subproject commit 0f5fd23340a5afd689988a4287e7db18bc163012
Subproject commit 8d031fa5257ffd120d4d32a329c924169c8d892a

2
httpgw

@ -1 +1 @@
Subproject commit e88940df198a87aab0096a5930b5eab90bc90e49
Subproject commit 35cf8ad0d922272b0b5750022c315ae346456c55

280
justfile
View File

@ -20,7 +20,7 @@ dbus: build-dbus install-dbus
# === Build targets ===
build-9p: core ninep acme httpgw webui
build-9p: core ninep acme httpgw webui kde
build-dbus: core dbus-bin kde httpgw webui
@ -40,9 +40,9 @@ dbus-bin:
acme:
@echo === Building ollie-acme ===
cd acme && go build -o {{bin}}/Ollie .
cp acme/scripts/Kmpl {{bin}}/Kmpl
cp acme/scripts/Oi {{bin}}/Oi
chmod 755 {{bin}}/Kmpl {{bin}}/Oi
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 ===
@ -59,64 +59,202 @@ kde:
# === Install targets ===
install-9p: install-data install-scripts install-contrib
cp -f prompts/SYSTEM_PROMPT-9p.md {{cfg}}/prompts/SYSTEM_PROMPT.md
install-9p: install-data install-scripts install-contrib install-kde install-el
install -m644 prompts/SYSTEM_PROMPT-9p.md {{cfg}}/prompts/SYSTEM_PROMPT.md
mkdir -p ~/.config/autostart
install -m644 9p/org.ollie.olliesrv.desktop ~/.config/autostart/
@echo === Install complete \(9P\) ===
install-dbus: install-data install-scripts install-contrib
cp -f prompts/SYSTEM_PROMPT-dbus.md {{cfg}}/prompts/SYSTEM_PROMPT.md
install-dbus: install-data install-scripts install-contrib install-dbus-bin install-kde
install -m644 prompts/SYSTEM_PROMPT-dbus.md {{cfg}}/prompts/SYSTEM_PROMPT.md
@echo === Install complete \(D-Bus\) ===
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\) ===
mkdir -p ~/.local/bin
install -m755 kde/build-cmake/ollie-tray ~/.local/bin/
install -m755 kde/build-cmake/ollie-gui ~/.local/bin/
# 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
# KRunner plugin
mkdir -p ~/.local/lib/qt6/plugins/kf6/krunner
install -m755 kde/build-cmake/lib/kf6/krunner/krunner_ollie.so \
~/.local/lib/qt6/plugins/kf6/krunner/
# Kate plugin
mkdir -p ~/.local/lib/qt6/plugins/kf6/ktexteditor
install -m755 kde/build-cmake/lib/ktexteditor/ollie_kate.so \
~/.local/lib/qt6/plugins/kf6/ktexteditor/
# Plasmoid QML plugin library + metadata
mkdir -p ~/.local/lib/qt6/qml/org/ollie/private
install -m755 kde/build-cmake/org/ollie/private/ollie-plasmoid-pluginplugin.so \
~/.local/lib/qt6/qml/org/ollie/private/libollie-plasmoid-pluginplugin.so
install -m644 kde/build-cmake/org/ollie/private/ollie-plasmoid-plugin.qmltypes \
~/.local/lib/qt6/qml/org/ollie/private/
install -m755 kde/build-cmake/lib/libollie-plasmoid-plugin.so ~/.local/lib/
printf 'module org.ollie.private\nplugin ollie-plasmoid-pluginplugin\ntypeinfo ollie-plasmoid-plugin.qmltypes\ndepends QtQuick\n' | \
tee ~/.local/lib/qt6/qml/org/ollie/private/qmldir > /dev/null
# Plasmoid package (user-local)
kpackagetool6 -t Plasma/Applet -u kde/plasmoid/ 2>/dev/null || \
kpackagetool6 -t Plasma/Applet -i kde/plasmoid/
# Dolphin service menus + helper scripts
mkdir -p ~/.local/share/kio/servicemenus
rm -f ~/.local/share/kio/servicemenus/ollie-actions.desktop
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/
# Finalize
kquitapp6 krunner 2>/dev/null; true
@echo === KDE install complete ===
@echo 'NOTE: Ensure the following are in your environment:'
@echo ' export QT_PLUGIN_PATH=~/.local/lib/qt6/plugins${QT_PLUGIN_PATH:+:$QT_PLUGIN_PATH}'
@echo ' export QML2_IMPORT_PATH=~/.local/lib/qt6/qml${QML2_IMPORT_PATH:+:$QML2_IMPORT_PATH}'
@echo ' export LD_LIBRARY_PATH=~/.local/lib${LD_LIBRARY_PATH:+:$LD_LIBRARY_PATH}'
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 ===
mkdir -p {{cfg}}/agents {{cfg}}/sandbox {{cfg}}/prompts {{cfg}}/skills {{cfg}}/tools
cp -rf agents/* {{cfg}}/agents/
cp -rf prompts/* {{cfg}}/prompts/
cp -rf sandbox/* {{cfg}}/sandbox/
cp -rf skills/* {{cfg}}/skills/
cp -rf tools/* {{cfg}}/tools/
cp doc/help.md {{cfg}}/help.md
# 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
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-9p.md {{cfg}}/prompts/SYSTEM_PROMPT-9p.md
install -m644 prompts/SYSTEM_PROMPT-dbus.md {{cfg}}/prompts/SYSTEM_PROMPT-dbus.md
install -m644 prompts/SYSTEM_PROMPT_DEVSTRAL-9p.md {{cfg}}/prompts/SYSTEM_PROMPT_DEVSTRAL-9p.md
install -m644 prompts/SYSTEM_PROMPT_QWEN-9p.md {{cfg}}/prompts/SYSTEM_PROMPT_QWEN-9p.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
cp -f scripts/s/sh {{cfg}}/scripts/s/sh
cp -f scripts/s/ls {{cfg}}/scripts/s/ls
cp -f scripts/s/kill {{cfg}}/scripts/s/kill
cp -f scripts/s/b {{cfg}}/scripts/s/b
cp -f scripts/s/bfg {{cfg}}/scripts/s/bfg
cp -f scripts/s/bbg {{cfg}}/scripts/s/bbg
cp -f scripts/s/cleanup {{cfg}}/scripts/s/cleanup
cp -f scripts/u/optimize {{cfg}}/scripts/u/optimize
cp -f scripts/u/complete {{cfg}}/scripts/u/complete
cp -f scripts/u/cascade {{cfg}}/scripts/u/cascade
cp -f scripts/x/elevate {{cfg}}/scripts/x/elevate
cp -f scripts/x/elevate-adapter-superpowerd {{cfg}}/scripts/x/elevate-adapter-superpowerd
cp -f scripts/x/elevate-adapter-start {{cfg}}/scripts/x/elevate-adapter-start
cp -f scripts/x/bd {{cfg}}/scripts/x/bd
cp -f scripts/x/prime {{cfg}}/scripts/x/prime
cp -f scripts/x/freeloader {{cfg}}/scripts/x/freeloader
chmod 755 \
{{cfg}}/scripts/s/b \
{{cfg}}/scripts/s/bfg \
{{cfg}}/scripts/s/bbg \
{{cfg}}/scripts/s/cleanup \
{{cfg}}/scripts/u/optimize \
{{cfg}}/scripts/u/complete \
{{cfg}}/scripts/u/cascade \
{{cfg}}/scripts/x/elevate \
{{cfg}}/scripts/x/elevate-adapter-superpowerd \
{{cfg}}/scripts/x/elevate-adapter-start \
{{cfg}}/scripts/x/bd \
{{cfg}}/scripts/x/prime \
{{cfg}}/scripts/x/freeloader
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}}
cp -f contrib/ollie-remount {{bin}}/ollie-remount
cp -f scripts/s/ollie-watchdog {{bin}}/ollie-watchdog
chmod 755 {{bin}}/ollie-remount {{bin}}/ollie-watchdog
install -m755 contrib/ollie-remount {{bin}}/ollie-remount
install -m755 scripts/s/ollie-watchdog {{bin}}/ollie-watchdog
# === Uninstall ===
@ -124,22 +262,51 @@ 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
rm -f {{bin}}/Ollie {{bin}}/Kmpl {{bin}}/Oi {{bin}}/Theo
rm -f {{bin}}/ollie-remount {{bin}}/ollie-watchdog
rm -rf {{cfg}}
cd dbus && make uninstall 2>/dev/null || true
cd kde && make uninstall 2>/dev/null || true
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/lib/libollie-plasmoid-plugin.so
rm -f ~/.local/lib/qt6/plugins/kf6/krunner/krunner_ollie.so
rm -f ~/.local/lib/qt6/plugins/kf6/ktexteditor/ollie_kate.so
rm -rf ~/.local/lib/qt6/qml/org/ollie
kpackagetool6 -t Plasma/Applet -r org.ollie.plasmoid 2>/dev/null; true
rm -f ~/.local/share/kio/servicemenus/ollie-actions.desktop
kquitapp6 krunner 2>/dev/null; true
# Emacs
rm -rf ~/.config/emacs/ellie
@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
cd dbus && rm -f ollied 2>/dev/null || true
cd kde && rm -rf build-cmake 2>/dev/null || true
rm -f {{bin}}/Ollie {{bin}}/Kmpl {{bin}}/Oi {{bin}}/Theo
rm -f dbus/ollied
rm -rf kde/build-cmake
# === Help ===
@ -151,7 +318,10 @@ help:
@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 | 9p | dbus-bin | acme | httpgw | webui | kde'
@echo 'Individual: just core | ninep | dbus-bin | acme | httpgw | webui | kde'

2
kde

@ -1 +1 @@
Subproject commit 51af575e489ef53468b761dc1954230eef11d85f
Subproject commit d0caaa1f63735f0a4055c87b97aa310ee8b85f74

121
mkfile
View File

@ -1,121 +0,0 @@
# Ollie monorepo build system
#
# Two paths:
# mk (default) 9P frontend: core, 9p, acme, httpgw, webui + install
# mk dbus D-Bus frontend: core, dbus (ollied), kde/*, httpgw, webui + install
#
# Build and install are separate phases. No sudo. No building during install.
# === Default (9P) path ===
all:V: build-9p install
build-9p:V: core 9p acme httpgw webui
install:V: data scripts contrib
cp -f prompts/SYSTEM_PROMPT-9p.md $HOME/.config/ollie/prompts/SYSTEM_PROMPT.md
echo === Install complete \(9P\) ===
# === D-Bus path ===
dbus:V: build-dbus install-dbus
build-dbus:V: core dbus-bin kde httpgw webui
install-dbus:V: data scripts contrib
cp -f prompts/SYSTEM_PROMPT-dbus.md $HOME/.config/ollie/prompts/SYSTEM_PROMPT.md
echo === Install complete \(D-Bus\) ===
# === Individual build targets ===
core:V:
echo === Building ollie-core ===
cd core && mk
dbus-bin:V:
echo === Building ollie-dbus \(ollied\) ===
cd dbus && mk
9p:V:
echo === Building ollie-9p ===
cd 9p && mk
acme:V:
echo === Building ollie-acme ===
cd acme && mk
httpgw:V:
echo === Building ollie-httpgw ===
cd httpgw && mk
webui:V:
echo === Building ollie-webui ===
cd webui && npm run build
kde:V:
echo === Building kde tools ===
cd kde && mk
# === Install targets (no building!) ===
data:V:
echo === Installing data ===
mkdir -p $HOME/.config/ollie/agents
mkdir -p $HOME/.config/ollie/sandbox
mkdir -p $HOME/.config/ollie/prompts
mkdir -p $HOME/.config/ollie/skills
mkdir -p $HOME/.config/ollie/tools
cp -rf agents/* $HOME/.config/ollie/agents
cp -rf prompts/* $HOME/.config/ollie/prompts
cp -rf sandbox/* $HOME/.config/ollie/sandbox
cp -rf skills/* $HOME/.config/ollie/skills
cp -rf tools/* $HOME/.config/ollie/tools
cp doc/help.md $HOME/.config/ollie/help.md
scripts:V:
echo === Installing scripts ===
mkdir -p $HOME/.config/ollie/scripts/s $HOME/.config/ollie/scripts/u $HOME/.config/ollie/scripts/x
cp -f scripts/s/sh $HOME/.config/ollie/scripts/s/sh
cp -f scripts/s/ls $HOME/.config/ollie/scripts/s/ls
cp -f scripts/s/kill $HOME/.config/ollie/scripts/s/kill
cp -f scripts/s/b $HOME/.config/ollie/scripts/s/b
cp -f scripts/s/bfg $HOME/.config/ollie/scripts/s/bfg
cp -f scripts/s/bbg $HOME/.config/ollie/scripts/s/bbg
cp -f scripts/s/cleanup $HOME/.config/ollie/scripts/s/cleanup
cp -f scripts/u/optimize $HOME/.config/ollie/scripts/u/optimize
cp -f scripts/u/complete $HOME/.config/ollie/scripts/u/complete
cp -f scripts/u/cascade $HOME/.config/ollie/scripts/u/cascade
cp -f scripts/x/elevate $HOME/.config/ollie/scripts/x/elevate
cp -f scripts/x/elevate-adapter-superpowerd $HOME/.config/ollie/scripts/x/elevate-adapter-superpowerd
cp -f scripts/x/elevate-adapter-start $HOME/.config/ollie/scripts/x/elevate-adapter-start
cp -f scripts/x/bd $HOME/.config/ollie/scripts/x/bd
cp -f scripts/x/prime $HOME/.config/ollie/scripts/x/prime
cp -f scripts/x/freeloader $HOME/.config/ollie/scripts/x/freeloader
chmod 755 $HOME/.config/ollie/scripts/s/b $HOME/.config/ollie/scripts/s/bfg $HOME/.config/ollie/scripts/s/bbg $HOME/.config/ollie/scripts/s/cleanup $HOME/.config/ollie/scripts/u/optimize $HOME/.config/ollie/scripts/u/complete $HOME/.config/ollie/scripts/u/cascade $HOME/.config/ollie/scripts/x/elevate $HOME/.config/ollie/scripts/x/elevate-adapter-superpowerd $HOME/.config/ollie/scripts/x/elevate-adapter-start $HOME/.config/ollie/scripts/x/bd $HOME/.config/ollie/scripts/x/prime $HOME/.config/ollie/scripts/x/freeloader
contrib:V:
echo === Installing contrib scripts ===
cp -f contrib/ollie-remount $HOME/bin/ollie-remount
cp -f scripts/s/ollie-watchdog $HOME/bin/ollie-watchdog
chmod 755 $HOME/bin/ollie-remount $HOME/bin/ollie-watchdog
uninstall:V:
echo === Uninstalling ollie ===
rm -f $HOME/bin/olliesrv $HOME/bin/ollie-9p-mount
rm -f $HOME/bin/ollie-httpgw
rm -f $HOME/bin/Ollie $HOME/bin/Kmpl $HOME/bin/Oi
rm -f $HOME/bin/ollie-remount $HOME/bin/ollie-watchdog
rm -rf $HOME/.config/ollie
echo === Uninstall complete ===
help:V:
echo 'Ollie monorepo build targets:'
echo ' all - Build 9P path + install (default)'
echo ' dbus - Build D-Bus path + install'
echo ' build-9p - Build only (9P path): core, 9p, acme, httpgw, webui'
echo ' build-dbus - Build only (D-Bus path): core, ollied, kde, httpgw, webui'
echo ' install - Install data/scripts/contrib (9P prompt)'
echo ' install-dbus - Install data/scripts/contrib (D-Bus prompt)'
echo ' data - Install agents, prompts, skills, tools to ~/.config/ollie/'
echo ' scripts - Install shell scripts to ~/.config/ollie/scripts/'
echo ' contrib - Install contrib scripts to ~/bin/'
echo ' uninstall - Remove all installed files'
echo ''
echo 'Submodules must be initialized first:'
echo ' git submodule update --init --recursive'