ichor(D2): start the Pony wiring — broker + D1 barrier + envelope

Name the medium Ichor and scaffold it in Pony at src/ichor:
- Envelope {source,dest,provenance,payload} mirroring Ada Organ_Message
- Broker actor: register + perfusion route; Brain-bound traffic crosses D1
- Barrier (D1) admit: Pony provenance-law mirror + Ada FFI seam sketched
- StubOrgan + main smoke wiring (deliver internal, reject external)
- ichor_ada_shim.c: C/Fortran binding seam to Ada Trust_Guard (stub)
Not compiled in-env (no ponyc). Updates D2 spec to SCAFFOLD/Pony.

Co-Authored-By: Claude Opus 4.8 (1M context) <noreply@anthropic.com>
Claude-Session: https://claude.ai/code/session_015hmgREHNsxYCuim33yUF2c
This commit is contained in:
Claude
2026-06-18 14:09:34 +00:00
parent e7bc39c09a
commit 786d4662c9
8 changed files with 261 additions and 4 deletions
+64
View File
@@ -0,0 +1,64 @@
"""
Ichor — the perfusion medium ("the blood"). D2.
The one envelope every organ emits and consumes. Mirrors the Ada D1
`Organ_Message {Source, Destination, Provenance, Payload}` so the Pony broker
and the Ada border (Trust_Boundary) speak the same shape across the seam.
Envelope is `class val`: immutable and sendable between actors.
"""
type OrganId is
( DriveBox | EnergyTorus | Soul | Metacog | Brain
| AdaBorder | Storage | MiniRag | UnknownOrgan )
primitive DriveBox
fun string(): String => "drive_box"
primitive EnergyTorus
fun string(): String => "etr"
primitive Soul
fun string(): String => "soul"
primitive Metacog
fun string(): String => "metacog"
primitive Brain
fun string(): String => "brain"
primitive AdaBorder
fun string(): String => "ada_border"
primitive Storage
fun string(): String => "storage"
primitive MiniRag
fun string(): String => "mini_rag"
primitive UnknownOrgan
fun string(): String => "unknown"
type Provenance is ( SystemInternal | UserInput | OrganSecretion | External )
primitive SystemInternal
fun string(): String => "system_internal"
primitive UserInput
fun string(): String => "user_input"
primitive OrganSecretion
fun string(): String => "organ_secretion"
primitive External
fun string(): String => "external"
class val Envelope
let source: OrganId
let dest: OrganId
let provenance: Provenance
let payload: String
new val create(
source': OrganId,
dest': OrganId,
provenance': Provenance,
payload': String)
=>
source = source'
dest = dest'
provenance = provenance'
payload = payload'
fun string(): String =>
source.string() + " -> " + dest.string()
+ " [" + provenance.string() + "] " + payload