#+TITLE - Web Dashboard Skill #+AUTHOR - org-agent #+SKILL_NAME - skill-web-interface This skill provides a lightweight web interface for the Neurosymbolic Kernel using the Hunchentoot server. * Web Server Implementation #+begin_src lisp (defvar *web-server* nil) (defun start-dashboard (&optional (port 8080)) "Starts the Hunchentoot dashboard server." (unless *web-server* (setf *web-server* (make-instance 'hunchentoot:easy-acceptor :port port)) (hunchentoot:start *web-server*) (kernel-log "WEB - Dashboard live on port ~a" port))) (hunchentoot:define-easy-handler (dashboard-home :uri "/") () (setf (hunchentoot:content-type*) "text/html") (let* ((skills (org-agent:context-list-all-skills)) (telemetry (mapcar (lambda (s) (let ((stats (org-agent:context-get-skill-telemetry (getf s :name)))) (format nil "
~{~a~%~}
" telemetry (org-agent:context-get-system-logs 20))))
;; Start the dashboard upon skill load
(let* ((env-port (uiop:getenv "ORG_AGENT_WEB_PORT"))
(port (if env-port (parse-integer env-port :junk-allowed t) 8080)))
(start-dashboard port))
#+end_src
* Registration
#+begin_src lisp
(defskill :skill-web-interface
:priority 10 ; Low priority, background service
:trigger (lambda (context) nil)
:neuro (lambda (context) nil)
:symbolic (lambda (action context) action))
#+end_src