It would be nice to have an extension system where I can easly share code, tools, skills in one package that don't really belong into Autolith itself. I am thinking of search providers like https://parallel.ai/.
My thoughts are that it should look like a plugin system where you can easily share a few lines to init.lisp that points to a git repository or local directory and autolith will scan the plugin configuration on startup and start installing these in the background. This should probably also work from the repl itself to try stuff out or let the agent figure stuff out while having some safeguard i.e. permission check for installing plugins.
(plugin-define "planning"
:source "https://github.com/foobar/autolith-addon-planning"
:ref '(:tag "v1.2.0")
:config (lambda (plugin) ...)) ; runs after load
More spec keys: :entry, :deps, :local (dev checkout), :enabled, :build, :init, :deactivate, :on-failure. :ref also accepts :commit, :branch, :version.
A plugin itself would ideally be a simple git repository with a manifest that tells Autolith about itself and what features it offers.
;; autolith-plugin.sexp
(:name "planning"
:entry "init.lisp" ; or :system "autolith-addon-planning"
:skills "skills/"
:description "Planning tools and commands")
;; src/init.lisp -- runs in #:autolith
(define-application-command "/plan" ...)
(define-context-contributor "planner-advice" ...)
Ideally it should be responsive in the repl so it shows when its installing and what plugins are installed.
> (plugins)
planning v1.2.0 loaded 3 systems already locked
vault main failed: could not load entry file
It would be nice to have an extension system where I can easly share code, tools, skills in one package that don't really belong into Autolith itself. I am thinking of search providers like https://parallel.ai/.
My thoughts are that it should look like a plugin system where you can easily share a few lines to init.lisp that points to a git repository or local directory and autolith will scan the plugin configuration on startup and start installing these in the background. This should probably also work from the repl itself to try stuff out or let the agent figure stuff out while having some safeguard i.e. permission check for installing plugins.
A plugin itself would ideally be a simple git repository with a manifest that tells Autolith about itself and what features it offers.
Ideally it should be responsive in the repl so it shows when its installing and what plugins are installed.