57 lines
2.7 KiB
Org Mode
57 lines
2.7 KiB
Org Mode
#+TITLE: System Manifest (manifest.org)
|
|
#+AUTHOR: Agent
|
|
#+FILETAGS: :harness:manifest:
|
|
#+STARTUP: content
|
|
#+PROPERTY: header-args:lisp :tangle ../passepartout.asd
|
|
|
|
* Overview: Architectural Intent
|
|
|
|
The Manifest is the ASDF system definition for Passepartout. It defines what files belong to the harness, which external libraries are required, and how the test infrastructure is organized.
|
|
|
|
The ~passepartout.asd~ file tangled from this manifest is what ~ql:quickload :passepartout~ reads to load the system. The files are loaded in the order listed here — dependencies first, then each pipeline stage in order.
|
|
|
|
* Implementation
|
|
|
|
** Main System
|
|
|
|
The core system. The combined ~:depends-on~ list pulls in every external library the agent needs: networking (usocket, dexador, hunchentoot), concurrency (bordeaux-threads), utilities (uiop, cl-ppcre, cl-json, str), security (ironclad), and configuration (cl-dotenv, uuid).
|
|
|
|
Components are loaded in sequence (~:serial t~): package first (defines the public API), then skills (does the defskill macro), then communication (defines the protocol), then memory (defines org-object), then context (defines peripheral vision), then each pipeline stage in order (perceive, reason, act), then doctor (diagnostics), then loop (orchestration).
|
|
|
|
#+begin_src lisp
|
|
(defsystem :passepartout
|
|
:name "Passepartout"
|
|
:author "Amr Gharbeia"
|
|
:version "0.3.0"
|
|
:license "AGPLv3"
|
|
:description "The Probabilistic-Deterministic Lisp Machine"
|
|
:depends-on (:usocket :bordeaux-threads :dexador :uiop :cl-dotenv :cl-ppcre :hunchentoot :ironclad :str :cl-json :uuid)
|
|
:serial t
|
|
:components ((:file "lisp/core-defpackage")
|
|
(:file "lisp/core-skills")
|
|
(:file "lisp/core-communication")
|
|
(:file "lisp/core-memory")
|
|
(:file "lisp/core-context")
|
|
(:file "lisp/core-loop-perceive")
|
|
(:file "lisp/core-loop-reason")
|
|
(:file "lisp/core-loop-act")
|
|
(:file "lisp/core-loop")))
|
|
#+end_src
|
|
|
|
** Test System
|
|
|
|
Tests are embedded directly in each module's source file — see the `* Test Suite` section at the end of each `.org` file. No separate test system is needed.
|
|
|
|
** TUI System
|
|
|
|
The TUI is a standalone system that depends on Croatoan (ncurses bindings) in addition to the core opencortex system. It's loaded separately because Croatoan requires a terminal and is not needed for daemon-mode operation.
|
|
|
|
#+begin_src lisp
|
|
(defsystem :passepartout/tui
|
|
:depends-on (:passepartout :croatoan :usocket :bordeaux-threads)
|
|
:serial t
|
|
:components ((:file "lisp/gateway-tui-model")
|
|
(:file "lisp/gateway-tui-view")
|
|
(:file "lisp/gateway-tui-main")))
|
|
#+end_src
|