passepartout v0.7.2 (Gate Trace + HITL + Search + 11 more features): - Gate trace visualization with Ctrl+G toggle - HITL inline panels with styled collapse on approve/deny - Agent identity file + /identity command - Safe-tool read-only allowlist - Message search mode with Up/Down nav and highlights - Context budget visibility with section breakdown - Session rewind /sessions /resume /rewind - Undo/redo per operation - Context debugging /context why /context dropped - Tool hardening (timeouts, write verify, read-only cache) - Tag stack severity tiers + trigger counts - Merkle provenance audit + audit-verify - Self-help /help <topic> reads USER_MANUAL.org - Live CONFIG section in system prompts - Pads: Page Up/Down scroll by 10 lines Core 92/92 TUI Main 104/104 TUI View 29/29 Neuro 13/13
174 lines
12 KiB
Org Mode
174 lines
12 KiB
Org Mode
#+TITLE: Whitehead's Logic & Process Philosophy → Passepartout
|
||
#+FILETAGS: :notes:whitehead:logic:philosophy:architecture:passepartout:
|
||
|
||
* Purpose
|
||
|
||
Alfred North Whitehead's two major bodies of work — /Principia Mathematica/ (1910–1913, with Bertrand Russell) and /Process and Reality/ (1929) — are assessed for their applicability to Passepartout's architecture, gate stack, knowledge graph, and self-descriptive vocabulary.
|
||
|
||
* Historical Connection: PM → Lisp
|
||
|
||
Principia Mathematica is a direct ancestor of Lisp. Alonzo Church's lambda calculus (1930s), from which John McCarthy built Lisp (1958), was a response to PM's foundational program. PM's notation:
|
||
|
||
#+BEGIN_EXAMPLE
|
||
(x).φx ≡ (for all x, φ holds of x)
|
||
(∃x).φx ≡ (there exists x such that φ holds)
|
||
* x̂(φx) ≡ (the class of x satisfying φ)
|
||
ιx(φx) ≡ (the unique x satisfying φ)
|
||
#+END_EXAMPLE
|
||
|
||
These map directly to Lisp: ~(lambda (x) (φ x))~, ~(class (x) (φ x))~, ~(the (x) (φ x))~. McCarthy cited PM as an influence. The connection is genetic, not metaphorical.
|
||
|
||
* Contribution 1: Ramified Theory of Types → Gate Stack
|
||
|
||
** The Problem PM Solved
|
||
|
||
Russell's paradox ("the set of all sets that do not contain themselves") proved that unrestricted comprehension produces contradictions. PM's solution: a /ramified theory of types/ that assigns every propositional function a type level. A function can only apply to arguments of a lower type — self-application is syntactically invalid.
|
||
|
||
** The Problem Passepartout Faces
|
||
|
||
Passepartout's dispatcher gate stack (vectors 0–8b active, 9–18 planned) currently enforces safety through runtime predicates. But there is no /structural/ guarantee preventing a request from modifying the rules that validate it. Gate vector 2 (self-build-core) catches this empirically — a request modifies core → rejected. But this is a heuristic, not a theorem.
|
||
|
||
** The PM-Type Solution
|
||
|
||
Assign every cognitive tool a ~:type-level~ integer. Assign every gate vector a ~:type-level~ integer. The dispatcher framework, before running any gate predicate, checks:
|
||
|
||
#+BEGIN_SRC lisp
|
||
(defun gate-type-check (signal gate-vector)
|
||
(let ((signal-type-level (getf (signal-meta signal) :type-level))
|
||
(gate-type-level (gate-vector-type-level gate-vector)))
|
||
(if (>= signal-type-level gate-type-level)
|
||
:reject-type-violation ; self-referential — reject
|
||
:pass))) ; safe — proceed to predicate
|
||
#+END_SRC
|
||
|
||
A request to modify dispatcher rules (type-level 5) cannot pass a gate of type-level 4 or lower. No predicate needed — it's a structural prohibition, just as PM's theory of types makes self-membership syntactically invalid.
|
||
|
||
** Concrete Implementation
|
||
|
||
- ~defgate~ gains a ~:type-level~ keyword argument (default 0)
|
||
- Each cognitive tool registered via ~def-cognitive-tool~ inherits a ~:type-level~
|
||
- The dispatcher's ~run-gates~ function checks type-level before predicate evaluation
|
||
- Gate vector 2b (self-build-core) at type-level 5; write-file at type-level 3; read-file at type-level 1
|
||
- ~30 lines in ~core-dispatcher.lisp~~; no new dependencies; v0.7.2 viable
|
||
|
||
* Contribution 2: Theory of Descriptions → Reference Resolution
|
||
|
||
** The Problem PM Solved
|
||
|
||
PM's theory of descriptions addresses: "the current king of France is bald" — a sentence that seems to refer to something that doesn't exist. PM formalizes:
|
||
|
||
#+BEGIN_EXAMPLE
|
||
ιx(φx) = "the unique x such that φ holds"
|
||
#+END_EXAMPLE
|
||
|
||
A statement about ~ιx(φx)~ is false (not meaningless) when there is no unique x satisfying φ. This is the origin of definite description semantics in modern linguistics and programming.
|
||
|
||
** The Problem Passepartout Faces
|
||
|
||
When the user says "the function that validates secrets," the agent must resolve this to a specific code entity. Natural language is ambiguous — there might be multiple functions matching the description. Resolving to the wrong one causes incorrect actions.
|
||
|
||
** The PM-Description Solution
|
||
|
||
A cognitive tool that checks descriptional uniqueness before resolution:
|
||
|
||
#+BEGIN_SRC lisp
|
||
(def-cognitive-tool :resolve-reference
|
||
(query-string &key (max-candidates 10)
|
||
(context-path *current-context*))
|
||
"Resolve a definite description to a unique referent."
|
||
(let ((candidates (search-knowledge-graph query-string
|
||
:source-path context-path
|
||
:limit max-candidates)))
|
||
(cond
|
||
((null candidates)
|
||
(values nil :no-referent query-string))
|
||
((> (length candidates) 1)
|
||
(values nil :ambiguous candidates))
|
||
(t
|
||
(values (first candidates) :unique nil)))))
|
||
#+END_SRC
|
||
|
||
~40 lines as a skill in v0.7.2. When VivaceGraph ships (v3.0.0), descriptions become native Prolog queries with uniqueness constraints.
|
||
|
||
* Contribution 3: Process and Reality → Architectural Vocabulary
|
||
|
||
Whitehead's process philosophy is a metaphysics of /becoming/ rather than /being/. The fundamental entities are not substances (atoms, objects) but /processes/ (/actual entities/, /occasions of experience/. This maps precisely to Passepartout's pipeline architecture.
|
||
|
||
** Mapping Whiteheadian Concepts to Passepartout
|
||
|
||
| Whiteheadian Concept | Passepartout Mapping | Significance |
|
||
|--------------------------------|---------------------------------------------|----------------------------------------------|
|
||
| Actual entity (actual occasion) | An event/signal in the pipeline | The fundamental unit — everything else is abstraction |
|
||
| Prehension | A gate's grasping of a signal | How one entity "takes account of" another |
|
||
| Positive prehension | A gate passing a signal | The signal is included in the concrescence |
|
||
| Negative prehension | A gate rejecting a signal | The signal is excluded from the concrescence |
|
||
| Concrescence | The pipeline process from input to output | Many prehensions → one satisfaction |
|
||
| Subjective aim | The agent's active goal / plan | The telos directing which prehensions matter |
|
||
| Eternal objects | Pure concepts in the knowledge graph | Universals — types, functions, categories |
|
||
| Nexus | A cluster of related memory objects | A Merkle subtree |
|
||
| Satisfaction | The final agent response | The "completed" entity — determinate output |
|
||
| Transition | From one signal to the next | The pipeline's forward motion |
|
||
| Causal efficacy | The agent's past context (memory) | What is prehended from the settled past |
|
||
| Presentational immediacy | The current signal (user input) | What is prehended from the immediate present |
|
||
|
||
** The Foveal-Peripheral Model in Whiteheadian Terms
|
||
|
||
Passepartout's foveal-peripheral model (near focus = current signal, far periphery = context window + memory) maps to Whitehead's distinction:
|
||
|
||
- /Presentational immediacy/ (perception of the contemporary world, vivid but superficial) = foveal focus on the current signal
|
||
- /Causal efficacy/ (prehension of the past, dim but causally powerful) = peripheral context from memory
|
||
|
||
This is not merely poetic. Whitehead argues that all perception is in the "mixed mode" of symbolic reference — the synthesis of presentational immediacy and causal efficacy. Passepartout's think() function does exactly this: it synthesizes the current signal (presentational immediacy) with context from memory (causal efficacy) into a response.
|
||
|
||
** Why This Matters for Self-Documentation
|
||
|
||
Passepartout already has the pipeline. Whitehead gives it a /descriptive vocabulary/:
|
||
|
||
- "I am concrescing signal 47 through gates 0-8" ≠ poetry — it's a precise description of dispatcher operation.
|
||
- "Gate 3 has negatively prehended signal 136" = "the secret-content gate rejected signal 136."
|
||
- "The satisfaction includes a file-write prehension with Merkle commit abc123" = "the response contains a file write with the given merkle hash."
|
||
|
||
The agent can use this vocabulary in its ~/why~ output (gate trace in human-readable form) and in the ARCHITECTURE.org documentation. The terms are precise, standard (Whitehead's /Process and Reality/ is a recognized philosophical text), and already map perfectly to Passepartout's design.
|
||
|
||
* Contribution 4: VivaceGraph + PM Types (v3.0.0)
|
||
|
||
When the knowledge graph ships in v3.0.0, every entity inherits PM's type hierarchy:
|
||
|
||
- Entities have ~:pm-type-level~ metadata
|
||
- Queries cannot return entities of the same level as the querying function
|
||
- Self-referential knowledge becomes structurally impossible — no "this entity defines its own type level"
|
||
- The KG query layer enforces this at the Prolog level, not through runtime checks
|
||
|
||
This is the same contribution as Contribution 1, but applied to the /knowledge base/ rather than the /execution layer/. The dispatcher prevents self-referential /actions/; the KG prevents self-referential /facts/.
|
||
|
||
* What Would NOT Be Useful
|
||
|
||
** Implementing PM's Full Formalism
|
||
|
||
PM takes 300+ pages to prove ~1+1=2~. The notation (~*54·43~) is notoriously unreadable. Using it as a reasoning engine would be a catastrophic waste of effort — the /ideas/ (type theory, descriptions, propositional functions) are what matter, not the notation. Implement the ideas, not the pages.
|
||
|
||
** Process Theology
|
||
|
||
Whitehead's later work includes a concept of God (the "principle of concretion," the "Eros of the Universe") that has no useful mapping to an agent architecture. Skip it.
|
||
|
||
** Full Whiteheadian Metaphysics
|
||
|
||
The 25 categories of existence, the eight categories of explanation, the nine categoreal obligations — these are philosophical commitments, not engineering requirements. Select the concepts that map to the architecture; don't build a process-philosophy engine.
|
||
|
||
* Summary: What to Ship and When
|
||
|
||
| Contribution | Lines | Depends On | Earliest Release | Impact |
|
||
|----------------------------+-------+----------------+------------------+-----------------------------------------------|
|
||
| Type-level gates | ~30 | dispatcher | v0.7.2 | Provable safety against self-modification |
|
||
| Description tool | ~40 | search | v0.7.2 | Better reference resolution |
|
||
| Whiteheadian doc vocabulary | prose | docs/ | anytime | Sharper architectural self-description |
|
||
| KG type hierarchy | built-in | VivaceGraph | v3.0.0 | Structural anti-self-reference in facts |
|
||
|
||
Whitehead is the rare case where philosophy is directly engineerable. PM's type theory /is/ the solution to a real Passepartout problem; the process ontology /describes/ the pipeline more precisely than any existing vocabulary.
|
||
|
||
* Relation to Passepartout's Neuro-Symbolic Architecture
|
||
|
||
Passepartout is level 4 neuro-symbolic (symbolic gates + neural LLM, deterministic components coordinate heterogeneous systems). PM's type theory adds level-5 properties: /structural/ safety guarantees rather than /empirical/ ones. The dispatcher becomes not just a runtime gate stack but a type-theoretic framework where category errors are impossible by construction — just as PM made Russell's paradox impossible by construction.
|
||
|
||
The Whiteheadian vocabulary reinforces the architectural identity: Passepartout is not a chatbot with safety checks. It is a /process/ — a continuous concrescence of prehensions producing satisfactions — whose safety is guaranteed by the type structure of the prehending entities.
|