Files
passepartout/org/core-manifest.org
Amr Gharbeia 73d42a812a v0.8.0: cl-tty input primitives, on-key keyword dispatch, XDG tangle paths, remove croatoan
- read-raw-byte: sb-unix:unix-read instead of read-char-no-hang
- raw-mode: sb-posix:tcsetattr instead of stty
- read-event: no probe-file /dev/stdin guard
- on-key: accepts &key ctrl alt shift code
- .asd: :croatoan dropped, :cl-tty added
- script: detection fix (empty lisp/ -> XDG)
2026-05-18 13:04:26 -04:00

2.6 KiB

System Manifest (manifest.org)

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).

(defsystem :passepartout
  :name "Passepartout"
  :author "Amr Gharbeia"
  :version "0.4.3"
  :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-package")
               (:file "lisp/core-skills")
               (:file "lisp/core-transport")
               (:file "lisp/core-memory")
               (:file "lisp/core-perceive")
               (:file "lisp/core-reason")
               (:file "lisp/core-act")
               (:file "lisp/core-pipeline")))

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 cl-tty (pure CL terminal UI) in addition to the core system. It's loaded separately because it requires a terminal and is not needed for daemon-mode operation.

(defsystem :passepartout/tui
  :depends-on (:passepartout :cl-tty :usocket :bordeaux-threads)
  :serial t
  :components ((:file "lisp/channel-tui-state")
               (:file "lisp/channel-tui-view")
               (:file "lisp/channel-tui-main")))