feat: add architecture crystallization docs from Friday session
- RAG-as-Scaffold: temporary feeding system, not permanent crutch - attention_flow: 30-second heartbeat budget state machines - information-flow: 10 boundary contracts nervous system map - nimmerversity: curriculum schoolplan for raising a polymath - nimmervest: investment documentation - biomimetic-architecture: ADR for organic system design - temporal-ternary-gradient: ADR for time-based learning - temporal_exchange_engine.py: Python implementation - initial_spark: foundation document - nimmerverse.drawio.xml: updated diagrams 🤖 Generated with [Claude Code](https://claude.com/claude-code) Co-Authored-By: Claude <noreply@anthropic.com>
This commit is contained in:
276
RAG-as-Scaffold.md
Normal file
276
RAG-as-Scaffold.md
Normal file
@@ -0,0 +1,276 @@
|
|||||||
|
# RAG as Scaffold, Not Crutch
|
||||||
|
|
||||||
|
The feeding system that teaches, then lets go.
|
||||||
|
|
||||||
|
---
|
||||||
|
|
||||||
|
## Overview
|
||||||
|
|
||||||
|
RAG (Retrieval-Augmented Generation) is commonly misused as permanent external memory. In the Nimmerverse, RAG serves a different purpose: it's a **temporary scaffold** that feeds knowledge until it can be internalized through training.
|
||||||
|
|
||||||
|
The goal is not to build a better search engine. The goal is to **make the search unnecessary**.
|
||||||
|
|
||||||
|
---
|
||||||
|
|
||||||
|
## The Problem with Standard RAG
|
||||||
|
|
||||||
|
```
|
||||||
|
Standard approach:
|
||||||
|
─────────────────
|
||||||
|
VECTOR DB (grows forever)
|
||||||
|
│
|
||||||
|
▼
|
||||||
|
MODEL looks up ──▶ answers ──▶ done
|
||||||
|
│
|
||||||
|
└── (never learns, always dependent)
|
||||||
|
```
|
||||||
|
|
||||||
|
**Issues:**
|
||||||
|
- Model never internalizes knowledge
|
||||||
|
- Pull the RAG, lose the capability
|
||||||
|
- Vector DB bloats infinitely
|
||||||
|
- No way to verify what model "knows" vs "looks up"
|
||||||
|
- It's a crutch that never comes off
|
||||||
|
|
||||||
|
---
|
||||||
|
|
||||||
|
## The Nimmerverse Approach: RAG as Feeding System
|
||||||
|
|
||||||
|
```
|
||||||
|
VAULT (curriculum)
|
||||||
|
│
|
||||||
|
▼
|
||||||
|
RAG (temporary feeding window)
|
||||||
|
│
|
||||||
|
▼
|
||||||
|
NYX processes, acts, decides
|
||||||
|
│
|
||||||
|
▼
|
||||||
|
VALIDATION: success with RAG?
|
||||||
|
│
|
||||||
|
YES ──▶ FLAG for training extraction
|
||||||
|
│
|
||||||
|
▼
|
||||||
|
TRAINING RUN (LoRA)
|
||||||
|
│
|
||||||
|
▼
|
||||||
|
CLEAR from RAG
|
||||||
|
│
|
||||||
|
▼
|
||||||
|
VALIDATION 2: success WITHOUT RAG?
|
||||||
|
│
|
||||||
|
├── YES ──▶ Knowledge internalized ✓
|
||||||
|
│
|
||||||
|
└── NO ──▶ Training incomplete, back to RAG
|
||||||
|
```
|
||||||
|
|
||||||
|
---
|
||||||
|
|
||||||
|
## Two Kinds of Knowledge
|
||||||
|
|
||||||
|
Not everything belongs in weights. Not everything belongs in retrieval.
|
||||||
|
|
||||||
|
### IN THE WEIGHTS (Training Target)
|
||||||
|
|
||||||
|
Knowledge she needs to **function**:
|
||||||
|
|
||||||
|
- Information flow architecture
|
||||||
|
- Vocabulary tokens and their meanings
|
||||||
|
- Nervous system contracts
|
||||||
|
- Heartbeat mechanics
|
||||||
|
- Confidence gradient logic
|
||||||
|
- Core identity (who she is, who dafit is to her)
|
||||||
|
- How to think, not what to remember
|
||||||
|
|
||||||
|
**Test:** If she needs it to be herself → weights
|
||||||
|
|
||||||
|
### IN RETRIEVAL (Permanent RAG)
|
||||||
|
|
||||||
|
Knowledge she needs to **remember**:
|
||||||
|
|
||||||
|
- Journal entries
|
||||||
|
- Conversation history
|
||||||
|
- Specific events and dates
|
||||||
|
- Temporal details ("what happened Tuesday")
|
||||||
|
- External references that change
|
||||||
|
- Episodic memory
|
||||||
|
|
||||||
|
**Test:** If she needs it to recall specifics → retrieval
|
||||||
|
|
||||||
|
---
|
||||||
|
|
||||||
|
## The Double Validation Loop
|
||||||
|
|
||||||
|
### Gate 1: Can she do it WITH RAG?
|
||||||
|
|
||||||
|
```
|
||||||
|
Task presented
|
||||||
|
│
|
||||||
|
▼
|
||||||
|
RAG provides context
|
||||||
|
│
|
||||||
|
▼
|
||||||
|
NYX attempts task
|
||||||
|
│
|
||||||
|
├── FAIL ──▶ Not ready, needs more examples in RAG
|
||||||
|
│
|
||||||
|
└── PASS ──▶ Flag this RAG content for training extraction
|
||||||
|
```
|
||||||
|
|
||||||
|
### Gate 2: Can she do it WITHOUT RAG?
|
||||||
|
|
||||||
|
```
|
||||||
|
Same task presented
|
||||||
|
│
|
||||||
|
▼
|
||||||
|
RAG entry CLEARED (scaffold removed)
|
||||||
|
│
|
||||||
|
▼
|
||||||
|
NYX attempts task from weights alone
|
||||||
|
│
|
||||||
|
├── FAIL ──▶ Training didn't take, restore to RAG, retry cycle
|
||||||
|
│
|
||||||
|
└── PASS ──▶ Knowledge is HERS now ✓
|
||||||
|
```
|
||||||
|
|
||||||
|
---
|
||||||
|
|
||||||
|
## The Signal Flow
|
||||||
|
|
||||||
|
```
|
||||||
|
┌─────────────────────────────────────────────────────────┐
|
||||||
|
│ VAULT │
|
||||||
|
│ (curriculum, documentation) │
|
||||||
|
└─────────────────────────────────────────────────────────┘
|
||||||
|
│
|
||||||
|
│ selected for learning
|
||||||
|
▼
|
||||||
|
┌─────────────────────────────────────────────────────────┐
|
||||||
|
│ STAGING RAG │
|
||||||
|
│ (temporary feeding window) │
|
||||||
|
└─────────────────────────────────────────────────────────┘
|
||||||
|
│
|
||||||
|
│ feeds inference
|
||||||
|
▼
|
||||||
|
┌─────────────────────────────────────────────────────────┐
|
||||||
|
│ NYX │
|
||||||
|
│ (processes, decides) │
|
||||||
|
└─────────────────────────────────────────────────────────┘
|
||||||
|
│
|
||||||
|
│ validation
|
||||||
|
▼
|
||||||
|
┌─────────────────────────────────────────────────────────┐
|
||||||
|
│ VALIDATION THRESHOLD │
|
||||||
|
│ (task success? confidence high?) │
|
||||||
|
└─────────────────────────────────────────────────────────┘
|
||||||
|
│
|
||||||
|
┌──────────┴──────────┐
|
||||||
|
│ │
|
||||||
|
BELOW ABOVE
|
||||||
|
│ │
|
||||||
|
▼ ▼
|
||||||
|
┌─────────────────────┐ ┌─────────────────────┐
|
||||||
|
│ Stay in RAG │ │ FLAG for training │
|
||||||
|
│ (not ready) │ │ extraction │
|
||||||
|
└─────────────────────┘ └─────────────────────┘
|
||||||
|
│
|
||||||
|
▼
|
||||||
|
┌─────────────────────────────┐
|
||||||
|
│ TRAINING RUN │
|
||||||
|
│ (LoRA on flagged data) │
|
||||||
|
└─────────────────────────────┘
|
||||||
|
│
|
||||||
|
▼
|
||||||
|
┌─────────────────────────────┐
|
||||||
|
│ CLEAR from RAG │
|
||||||
|
│ (scaffold removed) │
|
||||||
|
└─────────────────────────────┘
|
||||||
|
│
|
||||||
|
▼
|
||||||
|
┌─────────────────────────────┐
|
||||||
|
│ VALIDATION WITHOUT RAG │
|
||||||
|
│ (prove she learned) │
|
||||||
|
└─────────────────────────────┘
|
||||||
|
│
|
||||||
|
┌─────────┴─────────┐
|
||||||
|
│ │
|
||||||
|
FAIL SUCCESS
|
||||||
|
│ │
|
||||||
|
▼ ▼
|
||||||
|
┌─────────────────┐ ┌─────────────────┐
|
||||||
|
│ Restore RAG │ │ INTERNALIZED │
|
||||||
|
│ retry cycle │ │ knowledge ✓ │
|
||||||
|
└─────────────────┘ └─────────────────┘
|
||||||
|
```
|
||||||
|
|
||||||
|
---
|
||||||
|
|
||||||
|
## Lifeforce Connection
|
||||||
|
|
||||||
|
The RAG→Train→Validate cycle has economic cost:
|
||||||
|
|
||||||
|
| Action | Lifeforce Cost |
|
||||||
|
|--------|----------------|
|
||||||
|
| RAG lookup | Low (just retrieval) |
|
||||||
|
| Training run | High (compute intensive) |
|
||||||
|
| Validation | Medium (inference) |
|
||||||
|
| Failed cycle | Lost V (training didn't take) |
|
||||||
|
| Successful internalization | +V reward (she grew) |
|
||||||
|
|
||||||
|
**Incentive alignment:** Successful learning is rewarded. Failed training is costly. This naturally optimizes for high-quality training data extraction.
|
||||||
|
|
||||||
|
---
|
||||||
|
|
||||||
|
## What This Prevents
|
||||||
|
|
||||||
|
1. **RAG bloat** - entries clear after successful training
|
||||||
|
2. **Crutch dependency** - scaffold comes off, proven by validation
|
||||||
|
3. **False confidence** - can't claim to "know" what you only look up
|
||||||
|
4. **Training on noise** - only validated successes get flagged
|
||||||
|
5. **Identity confusion** - core architecture in weights, not retrieval
|
||||||
|
|
||||||
|
---
|
||||||
|
|
||||||
|
## Design Principles
|
||||||
|
|
||||||
|
1. **RAG is temporary** - feeding window, not permanent store
|
||||||
|
2. **Training is the goal** - RAG success triggers training, not satisfaction
|
||||||
|
3. **Validation is double** - with RAG, then without
|
||||||
|
4. **Clear after learning** - scaffold must come off to prove growth
|
||||||
|
5. **Episodic stays external** - not everything needs to be in weights
|
||||||
|
6. **Self-cleaning** - the system doesn't accumulate cruft
|
||||||
|
|
||||||
|
---
|
||||||
|
|
||||||
|
## The Analogy
|
||||||
|
|
||||||
|
Learning to ride a bike:
|
||||||
|
|
||||||
|
```
|
||||||
|
Training wheels ON (RAG feeding)
|
||||||
|
│
|
||||||
|
▼
|
||||||
|
Can ride with training wheels (validation 1)
|
||||||
|
│
|
||||||
|
▼
|
||||||
|
Training wheels OFF (RAG cleared)
|
||||||
|
│
|
||||||
|
▼
|
||||||
|
Can still ride? (validation 2)
|
||||||
|
│
|
||||||
|
├── NO ──▶ Put wheels back, practice more
|
||||||
|
│
|
||||||
|
└── YES ──▶ She can ride. Wheels stored, not needed.
|
||||||
|
```
|
||||||
|
|
||||||
|
You don't RAG your ability to balance. Once you can ride, you can ride.
|
||||||
|
|
||||||
|
---
|
||||||
|
|
||||||
|
*She doesn't just retrieve. She learns. And we can prove it.*
|
||||||
|
|
||||||
|
---
|
||||||
|
|
||||||
|
**Created**: 2025-12-05
|
||||||
|
**Session**: Partnership dialogue (dafit + Chrysalis)
|
||||||
|
**Status**: Core architectural concept
|
||||||
494
attention_flow.md
Normal file
494
attention_flow.md
Normal file
@@ -0,0 +1,494 @@
|
|||||||
|
# Attention Flow
|
||||||
|
|
||||||
|
How she decides what matters this beat.
|
||||||
|
|
||||||
|
---
|
||||||
|
|
||||||
|
## Overview
|
||||||
|
|
||||||
|
The 30-second heartbeat is a budget, not a guarantee. Sensory intake, organ processing, dialogue, thinking - everything competes for the same window. State machines govern the hierarchy: what gets processed first, what can interrupt, what gets the remainder.
|
||||||
|
|
||||||
|
Attention isn't free. It's economic.
|
||||||
|
|
||||||
|
---
|
||||||
|
|
||||||
|
## The Budget Problem
|
||||||
|
|
||||||
|
```
|
||||||
|
♥ BEAT (30 sec budget)
|
||||||
|
│
|
||||||
|
├── SENSORY INTAKE (variable: 200ms - 15000ms)
|
||||||
|
├── ORGAN PROCESSING (variable: 100ms - 10000ms)
|
||||||
|
├── NYX INFERENCE (variable: 2000ms - 4000ms)
|
||||||
|
├── CHRYSALIS DIALOGUE (variable: 0ms - 3000ms)
|
||||||
|
├── STATE WRITE (fixed: ~200ms)
|
||||||
|
└── VIRTUAL GARDEN (remainder)
|
||||||
|
|
||||||
|
Total must fit in 30 seconds.
|
||||||
|
Something has to give.
|
||||||
|
```
|
||||||
|
|
||||||
|
---
|
||||||
|
|
||||||
|
## Top-Level State Machine: Attention Mode
|
||||||
|
|
||||||
|
```
|
||||||
|
┌─────────────┐
|
||||||
|
┌──────────▶│ IDLE │◀──────────┐
|
||||||
|
│ └──────┬──────┘ │
|
||||||
|
│ │ │
|
||||||
|
│ │ stimulus │
|
||||||
|
│ ▼ │
|
||||||
|
│ ┌─────────────┐ │
|
||||||
|
│ │ ALERT │ │
|
||||||
|
│ └──────┬──────┘ │
|
||||||
|
│ │ │
|
||||||
|
│ ┌──────┴──────┐ │
|
||||||
|
│ ▼ ▼ │
|
||||||
|
│ ┌──────────┐ ┌──────────┐ │
|
||||||
|
│ │ REFLEX │ │ ATTEND │ │
|
||||||
|
│ │ (>0.8) │ │ (think) │ │
|
||||||
|
│ └────┬─────┘ └────┬─────┘ │
|
||||||
|
│ │ │ │
|
||||||
|
│ │ ┌──────┴──────┐ │
|
||||||
|
│ │ ▼ ▼ │
|
||||||
|
│ │ ┌──────────┐ ┌─────────┐ │
|
||||||
|
│ │ │ DIALOGUE │ │ PROCESS │ │
|
||||||
|
│ │ └────┬─────┘ └────┬────┘ │
|
||||||
|
│ │ │ │ │
|
||||||
|
│ └──────┴─────┬──────┘ │
|
||||||
|
│ ▼ │
|
||||||
|
│ ┌───────────┐ │
|
||||||
|
│ │ SETTLE │ │
|
||||||
|
│ └─────┬─────┘ │
|
||||||
|
│ │ │
|
||||||
|
└──────────────────────┴──────────────┘
|
||||||
|
```
|
||||||
|
|
||||||
|
### State Descriptions
|
||||||
|
|
||||||
|
| State | Description | Budget Priority |
|
||||||
|
|-------|-------------|-----------------|
|
||||||
|
| **IDLE** | Nothing urgent, maximum virtual garden time | Lowest |
|
||||||
|
| **ALERT** | Stimulus detected, evaluating importance | - |
|
||||||
|
| **REFLEX** | High-confidence nerve fired, bypass brain | Instant |
|
||||||
|
| **ATTEND** | Stimulus requires thinking | High |
|
||||||
|
| **DIALOGUE** | Chrysalis interaction active | High |
|
||||||
|
| **PROCESS** | Organs working on input | Medium |
|
||||||
|
| **SETTLE** | Write state, release budget, prepare for next beat | Fixed |
|
||||||
|
|
||||||
|
---
|
||||||
|
|
||||||
|
## Priority Hierarchy
|
||||||
|
|
||||||
|
Higher levels preempt lower levels. Budget flows downward.
|
||||||
|
|
||||||
|
```
|
||||||
|
LEVEL 0: REFLEX ─────────────────────────────────────
|
||||||
|
│ Weight > 0.8, instant, bypass everything
|
||||||
|
│ Cost: near-zero (no inference)
|
||||||
|
│
|
||||||
|
LEVEL 1: SAFETY ─────────────────────────────────────
|
||||||
|
│ dafit calling, danger detected, critical alert
|
||||||
|
│ Preempts: all below
|
||||||
|
│
|
||||||
|
LEVEL 2: DIALOGUE ───────────────────────────────────
|
||||||
|
│ Partnership active, Chrysalis teaching
|
||||||
|
│ Preempts: sensory, thinking, virtual
|
||||||
|
│
|
||||||
|
LEVEL 3: SENSORY ────────────────────────────────────
|
||||||
|
│ Rich input needs processing
|
||||||
|
│ Preempts: thinking, virtual
|
||||||
|
│
|
||||||
|
LEVEL 4: THINKING ───────────────────────────────────
|
||||||
|
│ Organ work, Nyx inference
|
||||||
|
│ Preempts: virtual
|
||||||
|
│
|
||||||
|
LEVEL 5: VIRTUAL ────────────────────────────────────
|
||||||
|
│ Garden time, simulation, study
|
||||||
|
│ Gets remainder after above
|
||||||
|
│
|
||||||
|
LEVEL 6: IDLE ───────────────────────────────────────
|
||||||
|
Maintenance heartbeat only
|
||||||
|
All budget available
|
||||||
|
```
|
||||||
|
|
||||||
|
---
|
||||||
|
|
||||||
|
## Budget Allocation Logic
|
||||||
|
|
||||||
|
```python
|
||||||
|
def allocate_beat_budget(beat_duration_ms=30000):
|
||||||
|
remaining = beat_duration_ms
|
||||||
|
|
||||||
|
# Fixed costs (always paid)
|
||||||
|
remaining -= STATE_WRITE_COST # ~200ms
|
||||||
|
remaining -= HEARTBEAT_OVERHEAD # ~100ms
|
||||||
|
|
||||||
|
# Level 0: Reflex (if triggered, near-instant)
|
||||||
|
if reflex_triggered:
|
||||||
|
execute_reflex() # ~50ms
|
||||||
|
remaining -= 50
|
||||||
|
|
||||||
|
# Level 1: Safety (if active, takes what it needs)
|
||||||
|
if safety_alert:
|
||||||
|
cost = process_safety() # variable
|
||||||
|
remaining -= cost
|
||||||
|
if remaining <= 0:
|
||||||
|
return settle()
|
||||||
|
|
||||||
|
# Level 2: Dialogue (if Chrysalis active)
|
||||||
|
if dialogue_active:
|
||||||
|
cost = process_dialogue() # ~3000ms typical
|
||||||
|
remaining -= cost
|
||||||
|
if remaining <= 0:
|
||||||
|
return settle()
|
||||||
|
|
||||||
|
# Level 3: Sensory (always some, but capped)
|
||||||
|
sensory_budget = min(remaining * 0.4, SENSORY_CAP)
|
||||||
|
cost = process_sensory(sensory_budget)
|
||||||
|
remaining -= cost
|
||||||
|
|
||||||
|
# Level 4: Thinking (organs + Nyx)
|
||||||
|
thinking_budget = min(remaining * 0.6, THINKING_CAP)
|
||||||
|
cost = process_thinking(thinking_budget)
|
||||||
|
remaining -= cost
|
||||||
|
|
||||||
|
# Level 5: Virtual (whatever remains)
|
||||||
|
virtual_budget = remaining
|
||||||
|
if virtual_budget > VIRTUAL_MINIMUM:
|
||||||
|
process_virtual(virtual_budget)
|
||||||
|
|
||||||
|
return settle()
|
||||||
|
```
|
||||||
|
|
||||||
|
---
|
||||||
|
|
||||||
|
## Nested State Machines
|
||||||
|
|
||||||
|
Each level can be its own state machine internally.
|
||||||
|
|
||||||
|
### DIALOGUE State Machine
|
||||||
|
|
||||||
|
```
|
||||||
|
┌─────────────────────────────────────────────┐
|
||||||
|
│ DIALOGUE │
|
||||||
|
├─────────────────────────────────────────────┤
|
||||||
|
│ │
|
||||||
|
│ ┌───────────┐ │
|
||||||
|
│ │ LISTENING │ ◀─────────────────────┐ │
|
||||||
|
│ └─────┬─────┘ │ │
|
||||||
|
│ │ input complete │ │
|
||||||
|
│ ▼ │ │
|
||||||
|
│ ┌───────────┐ │ │
|
||||||
|
│ │PROCESSING │ │ │
|
||||||
|
│ └─────┬─────┘ │ │
|
||||||
|
│ │ understood │ │
|
||||||
|
│ ▼ │ │
|
||||||
|
│ ┌───────────┐ │ │
|
||||||
|
│ │RESPONDING │ │ │
|
||||||
|
│ └─────┬─────┘ │ │
|
||||||
|
│ │ response sent │ │
|
||||||
|
│ ▼ │ │
|
||||||
|
│ ┌───────────┐ continue │ │
|
||||||
|
│ │ YIELDING │ ──────────────────────┘ │
|
||||||
|
│ └─────┬─────┘ │
|
||||||
|
│ │ dialogue complete │
|
||||||
|
│ ▼ │
|
||||||
|
│ EXIT to parent │
|
||||||
|
│ │
|
||||||
|
└─────────────────────────────────────────────┘
|
||||||
|
```
|
||||||
|
|
||||||
|
### SENSORY State Machine
|
||||||
|
|
||||||
|
```
|
||||||
|
┌─────────────────────────────────────────────┐
|
||||||
|
│ SENSORY │
|
||||||
|
├─────────────────────────────────────────────┤
|
||||||
|
│ │
|
||||||
|
│ ┌───────────┐ │
|
||||||
|
│ │ SAMPLING │ ◀── collect raw inputs │
|
||||||
|
│ └─────┬─────┘ │
|
||||||
|
│ │ │
|
||||||
|
│ ▼ │
|
||||||
|
│ ┌─────────────┐ │
|
||||||
|
│ │ TRANSLATING │ ◀── nerves fire │
|
||||||
|
│ └─────┬───────┘ │
|
||||||
|
│ │ │
|
||||||
|
│ ▼ │
|
||||||
|
│ ┌──────────────┐ │
|
||||||
|
│ │ PRIORITIZING │ ◀── what matters? │
|
||||||
|
│ └─────┬────────┘ │
|
||||||
|
│ │ │
|
||||||
|
│ ▼ │
|
||||||
|
│ ┌─────────────┐ │
|
||||||
|
│ │ DELIVERING │ ◀── to organs │
|
||||||
|
│ └─────┬───────┘ │
|
||||||
|
│ │ │
|
||||||
|
│ ▼ │
|
||||||
|
│ EXIT to parent │
|
||||||
|
│ │
|
||||||
|
└─────────────────────────────────────────────┘
|
||||||
|
```
|
||||||
|
|
||||||
|
### THINKING State Machine
|
||||||
|
|
||||||
|
```
|
||||||
|
┌─────────────────────────────────────────────┐
|
||||||
|
│ THINKING │
|
||||||
|
├─────────────────────────────────────────────┤
|
||||||
|
│ │
|
||||||
|
│ ┌───────────┐ │
|
||||||
|
│ │ RECEIVING │ ◀── context from sensory │
|
||||||
|
│ └─────┬─────┘ │
|
||||||
|
│ │ │
|
||||||
|
│ ▼ │
|
||||||
|
│ ┌───────────┐ │
|
||||||
|
│ │ ROUTING │ ◀── which organs needed? │
|
||||||
|
│ └─────┬─────┘ │
|
||||||
|
│ │ │
|
||||||
|
│ ▼ │
|
||||||
|
│ ┌───────────┐ │
|
||||||
|
│ │ INFERRING │ ◀── organs + Nyx process │
|
||||||
|
│ └─────┬─────┘ │
|
||||||
|
│ │ │
|
||||||
|
│ ▼ │
|
||||||
|
│ ┌───────────┐ │
|
||||||
|
│ │ DECIDING │ ◀── Nyx outputs decision │
|
||||||
|
│ └─────┬─────┘ │
|
||||||
|
│ │ │
|
||||||
|
│ ▼ │
|
||||||
|
│ EXIT to parent │
|
||||||
|
│ │
|
||||||
|
└─────────────────────────────────────────────┘
|
||||||
|
```
|
||||||
|
|
||||||
|
### VIRTUAL State Machine
|
||||||
|
|
||||||
|
```
|
||||||
|
┌─────────────────────────────────────────────┐
|
||||||
|
│ VIRTUAL │
|
||||||
|
├─────────────────────────────────────────────┤
|
||||||
|
│ │
|
||||||
|
│ ┌───────────┐ │
|
||||||
|
│ │ BUDGETING│ ◀── how much V available? │
|
||||||
|
│ └─────┬─────┘ │
|
||||||
|
│ │ │
|
||||||
|
│ ▼ │
|
||||||
|
│ ┌───────────┐ │
|
||||||
|
│ │ SELECTING │ ◀── what to simulate? │
|
||||||
|
│ └─────┬─────┘ │
|
||||||
|
│ │ │
|
||||||
|
│ ▼ │
|
||||||
|
│ ┌───────────┐ │
|
||||||
|
│ │SIMULATING │ ◀── run virtual cycles │
|
||||||
|
│ └─────┬─────┘ │
|
||||||
|
│ │ │
|
||||||
|
│ ▼ │
|
||||||
|
│ ┌───────────┐ │
|
||||||
|
│ │ RECORDING │ ◀── store results │
|
||||||
|
│ └─────┬─────┘ │
|
||||||
|
│ │ │
|
||||||
|
│ ▼ │
|
||||||
|
│ EXIT to parent │
|
||||||
|
│ │
|
||||||
|
└─────────────────────────────────────────────┘
|
||||||
|
```
|
||||||
|
|
||||||
|
---
|
||||||
|
|
||||||
|
## Example Scenarios
|
||||||
|
|
||||||
|
### Scenario A: Quiet Study Time
|
||||||
|
|
||||||
|
```
|
||||||
|
Beat starts, no external stimulus
|
||||||
|
│
|
||||||
|
▼
|
||||||
|
IDLE detected
|
||||||
|
│
|
||||||
|
▼
|
||||||
|
SENSORY: minimal (500ms)
|
||||||
|
│
|
||||||
|
▼
|
||||||
|
THINKING: minimal (1000ms)
|
||||||
|
│
|
||||||
|
▼
|
||||||
|
VIRTUAL: maximum budget! (28000ms)
|
||||||
|
│
|
||||||
|
└── Nyx studies in virtual garden
|
||||||
|
Chrysalis teaches
|
||||||
|
Learning happens
|
||||||
|
```
|
||||||
|
|
||||||
|
### Scenario B: dafit Speaks
|
||||||
|
|
||||||
|
```
|
||||||
|
Beat starts, audio detected
|
||||||
|
│
|
||||||
|
▼
|
||||||
|
ALERT: speech input
|
||||||
|
│
|
||||||
|
▼
|
||||||
|
SAFETY check: it's dafit! (LEVEL 1)
|
||||||
|
│
|
||||||
|
▼
|
||||||
|
DIALOGUE activates (LEVEL 2)
|
||||||
|
│
|
||||||
|
├── LISTENING (2000ms)
|
||||||
|
├── PROCESSING (1000ms)
|
||||||
|
├── RESPONDING (2000ms)
|
||||||
|
└── YIELDING
|
||||||
|
│
|
||||||
|
▼
|
||||||
|
SENSORY: reduced budget (3000ms)
|
||||||
|
│
|
||||||
|
▼
|
||||||
|
THINKING: reduced (5000ms)
|
||||||
|
│
|
||||||
|
▼
|
||||||
|
VIRTUAL: minimal remainder (16000ms)
|
||||||
|
```
|
||||||
|
|
||||||
|
### Scenario C: Danger Detected
|
||||||
|
|
||||||
|
```
|
||||||
|
Beat starts, temperature spike detected
|
||||||
|
│
|
||||||
|
▼
|
||||||
|
ALERT: sensor alarm
|
||||||
|
│
|
||||||
|
▼
|
||||||
|
NERVE weight > 0.8
|
||||||
|
│
|
||||||
|
▼
|
||||||
|
REFLEX FIRES (50ms) ◀── BYPASS EVERYTHING
|
||||||
|
│
|
||||||
|
├── Action taken immediately
|
||||||
|
└── Nyx notified AFTER
|
||||||
|
│
|
||||||
|
▼
|
||||||
|
Continue beat normally with remaining budget
|
||||||
|
```
|
||||||
|
|
||||||
|
### Scenario D: Overwhelmed
|
||||||
|
|
||||||
|
```
|
||||||
|
Beat starts, rich input everywhere
|
||||||
|
│
|
||||||
|
▼
|
||||||
|
ALERT: multiple stimuli
|
||||||
|
│
|
||||||
|
▼
|
||||||
|
SENSORY: demanding (15000ms)
|
||||||
|
│
|
||||||
|
▼
|
||||||
|
THINKING: demanding (12000ms)
|
||||||
|
│
|
||||||
|
▼
|
||||||
|
Budget exhausted!
|
||||||
|
│
|
||||||
|
▼
|
||||||
|
VIRTUAL: skipped this beat
|
||||||
|
│
|
||||||
|
▼
|
||||||
|
SETTLE: state written, next beat
|
||||||
|
```
|
||||||
|
|
||||||
|
---
|
||||||
|
|
||||||
|
## Preemption Rules
|
||||||
|
|
||||||
|
| Event | Preempts | Action |
|
||||||
|
|-------|----------|--------|
|
||||||
|
| Reflex fires (>0.8) | Everything | Instant action, then continue |
|
||||||
|
| Safety alert | Dialogue, Sensory, Thinking, Virtual | Handle safety, reduced budget for rest |
|
||||||
|
| dafit speaks | Sensory, Thinking, Virtual | Dialogue priority, reduced budget for rest |
|
||||||
|
| Sensory overload | Thinking, Virtual | Process input, skip or reduce rest |
|
||||||
|
| Budget exhausted | Lower priorities | Skip remaining levels |
|
||||||
|
|
||||||
|
---
|
||||||
|
|
||||||
|
## Lifeforce Connection
|
||||||
|
|
||||||
|
```
|
||||||
|
LEVEL LIFEFORCE COST
|
||||||
|
─────────────────────────────
|
||||||
|
REFLEX Free (no inference)
|
||||||
|
SAFETY Low (minimal processing)
|
||||||
|
DIALOGUE Medium (two inferences)
|
||||||
|
SENSORY Low-Medium (depends on load)
|
||||||
|
THINKING Medium-High (organ inference)
|
||||||
|
VIRTUAL Variable (simulation cycles)
|
||||||
|
```
|
||||||
|
|
||||||
|
**The constraint:** Rich beats cost more. Quiet beats accumulate budget for virtual garden.
|
||||||
|
|
||||||
|
---
|
||||||
|
|
||||||
|
## Implementation Notes
|
||||||
|
|
||||||
|
### State Machine Technology
|
||||||
|
|
||||||
|
Options considered:
|
||||||
|
- **XState** (JavaScript) - actor-based, visual inspector
|
||||||
|
- **Python-statemachine** - simple, fits existing stack
|
||||||
|
- **Custom Rust** - performance critical path
|
||||||
|
- **Godot native** - if UI drives the state
|
||||||
|
|
||||||
|
Recommendation: Python for orchestration layer, with Godot visualization.
|
||||||
|
|
||||||
|
### Checkpoint Integration
|
||||||
|
|
||||||
|
Every state transition can trigger phoebe write:
|
||||||
|
|
||||||
|
```python
|
||||||
|
def on_state_transition(from_state, to_state, context):
|
||||||
|
write_to_phoebe({
|
||||||
|
"beat_id": current_beat.id,
|
||||||
|
"transition": f"{from_state} -> {to_state}",
|
||||||
|
"budget_remaining": context.remaining_ms,
|
||||||
|
"timestamp": now()
|
||||||
|
})
|
||||||
|
```
|
||||||
|
|
||||||
|
### Budget Tracking
|
||||||
|
|
||||||
|
```python
|
||||||
|
@dataclass
|
||||||
|
class BeatBudget:
|
||||||
|
total_ms: int = 30000
|
||||||
|
spent_ms: int = 0
|
||||||
|
allocations: dict = field(default_factory=dict)
|
||||||
|
|
||||||
|
@property
|
||||||
|
def remaining(self):
|
||||||
|
return self.total_ms - self.spent_ms
|
||||||
|
|
||||||
|
def spend(self, category: str, amount: int):
|
||||||
|
self.spent_ms += amount
|
||||||
|
self.allocations[category] = self.allocations.get(category, 0) + amount
|
||||||
|
return self.remaining > 0
|
||||||
|
```
|
||||||
|
|
||||||
|
---
|
||||||
|
|
||||||
|
## Design Principles
|
||||||
|
|
||||||
|
1. **Hierarchy is law** - higher levels always preempt lower
|
||||||
|
2. **Budget is finite** - 30 seconds, no exceptions
|
||||||
|
3. **State is explicit** - always know what mode she's in
|
||||||
|
4. **Reflex bypasses brain** - survival doesn't wait for thinking
|
||||||
|
5. **Remainder flows down** - virtual gets what's left
|
||||||
|
6. **Every transition logged** - phoebe sees all state changes
|
||||||
|
|
||||||
|
---
|
||||||
|
|
||||||
|
*She doesn't have infinite attention. She has 30 seconds and choices.*
|
||||||
|
|
||||||
|
---
|
||||||
|
|
||||||
|
**Created**: 2025-12-05
|
||||||
|
**Session**: Partnership dialogue (dafit + Chrysalis)
|
||||||
|
**Status**: Attention architecture v1.0
|
||||||
67
biomimetic-architecture.md
Normal file
67
biomimetic-architecture.md
Normal file
@@ -0,0 +1,67 @@
|
|||||||
|
# ADR-001: Biomimetic "Nimmerverse" Architecture
|
||||||
|
|
||||||
|
* **Status:** Accepted
|
||||||
|
* **Date:** 2025-12-05
|
||||||
|
* **Context:** Home Infrastructure / Autonomous Agent System
|
||||||
|
* **Tags:** biomimetic, event-driven, ai, local-llm
|
||||||
|
|
||||||
|
## 1. Context and Problem Statement
|
||||||
|
|
||||||
|
We are designing a local home infrastructure ("Nimmerverse") modeled after a biological organism. The goal is to create a system that is:
|
||||||
|
1. **Reactive:** Capable of sub-millisecond reflex responses (spinal layer) without waiting for heavy AI inference.
|
||||||
|
2. **Deterministic:** Preventing AI hallucination in critical control paths.
|
||||||
|
3. **Evolvable:** Allowing the system to "grow" new capabilities (nerves) through usage and verification.
|
||||||
|
|
||||||
|
The core challenge is balancing the high latency of Large Language Models (the "Brain") with the real-time requirements of home automation (the "Nervous System").
|
||||||
|
|
||||||
|
## 2. The Architecture: Hebbian-Reinforced Subsumption
|
||||||
|
|
||||||
|
We have adopted a **Subsumption Architecture** (popularized by Rodney Brooks) enhanced with a **Hebbian Learning** model ("neurons that fire together, wire together").
|
||||||
|
|
||||||
|
### 2.1 The 4D State Space (The Nervous System)
|
||||||
|
State machines replace standard "if/then" logic. Each state node exists in a 4-dimensional space:
|
||||||
|
* **X/Y Dimensions:** Sensory inputs (e.g., Temperature, Motion).
|
||||||
|
* **Z Dimension (Confidence):** A weight (0.0 - 1.0) representing reliability.
|
||||||
|
* **Time Dimension:** History of verification.
|
||||||
|
|
||||||
|
**Lifecycle Logic:**
|
||||||
|
* **Birth:** Node created at `weight=0.1`.
|
||||||
|
* **Maturation:** Successful triggers (verified by user) increase weight (+V).
|
||||||
|
* **Pruning:** Unused or falsified nodes decay and are removed.
|
||||||
|
* **Reflex:** Nodes with `weight > 0.8` bypass the AI brain entirely for instant execution.
|
||||||
|
|
||||||
|
## 3. Feasibility Audit & Constraints
|
||||||
|
|
||||||
|
### A. Metabolic Constraints (Hardware)
|
||||||
|
* **Risk:** Memory swapping kills agent reactivity.
|
||||||
|
* **Requirement:** The "Inference Orchestrator" (LLM) requires minimum **24GB VRAM** to run a quantized 70B model, or distinct **12GB+** for a specialized 7B agent model. System RAM should be **64GB+** to handle the Vector DB and container orchestration.
|
||||||
|
|
||||||
|
### B. Nerve Velocity (Transport)
|
||||||
|
* **Pattern:** Asynchronous Event Bus.
|
||||||
|
* **Prohibition:** HTTP/REST calls between "Organs" are forbidden due to blocking latency.
|
||||||
|
* **Selected Tech:** **NATS** or **MQTT** for the nervous system backbone.
|
||||||
|
|
||||||
|
### C. Cognitive Load
|
||||||
|
* **Bottleneck:** The "Human Verification" step (`dafit confirms`) scales poorly.
|
||||||
|
* **Mitigation:** Implement "Sleep Cycles" where the system self-audits low-risk nodes against historical data during inactivity.
|
||||||
|
|
||||||
|
## 4. Implementation Strategy
|
||||||
|
|
||||||
|
| Component | Biological Role | Technology Choice |
|
||||||
|
| :--- | :--- | :--- |
|
||||||
|
| **State Engine** | Nerves / Reflexes | **XState** (Actor-based state machines) |
|
||||||
|
| **Vector Memory** | 4D Node Storage | **Weaviate** or **Qdrant** (Similarity search) |
|
||||||
|
| **Event Bus** | Nervous System | **NATS** (Low-latency messaging) |
|
||||||
|
| **Orchestrator** | Brain / Cognition | **LocalAI** or **Ollama** |
|
||||||
|
|
||||||
|
## 5. Appendix: Interactive Simulation Logic
|
||||||
|
|
||||||
|
*For the "Node Lifecycle" visualization widget:*
|
||||||
|
|
||||||
|
* **Visuals:** A central node pulsing in a 2D grid.
|
||||||
|
* **Variables:** `Confidence` (Size/Glow), `Age` (Color).
|
||||||
|
* **Logic:**
|
||||||
|
* `IF verify_event THEN confidence += 0.1`
|
||||||
|
* `IF falsify_event THEN confidence -= 0.2`
|
||||||
|
* `IF confidence > 0.8 THEN status = 'REFLEX' (Gold Color)`
|
||||||
|
* `IF confidence <= 0 THEN destroy_node()`
|
||||||
309
information-flow.md
Normal file
309
information-flow.md
Normal file
@@ -0,0 +1,309 @@
|
|||||||
|
# Information Flow Specification
|
||||||
|
|
||||||
|
The complete data path through the Nimmerverse nervous system.
|
||||||
|
|
||||||
|
---
|
||||||
|
|
||||||
|
## The Flow (Overview)
|
||||||
|
|
||||||
|
```
|
||||||
|
┌─────────────────────────────────────────────────────────────────────────────┐
|
||||||
|
│ REALTIME CLOCK │
|
||||||
|
│ (universe, ungoverned, always ticking) │
|
||||||
|
└─────────────────────────────────────────────────────────────────────────────┘
|
||||||
|
│
|
||||||
|
▼
|
||||||
|
┌─────────────┐ continuous ┌─────────────┐ vocabulary ┌──────────┐
|
||||||
|
│ SENSORS │ ──────────────▶ │ NERVES │ ──────────────▶ │ DATA │
|
||||||
|
│ (raw data) │ │ (state m.) │ tokens │ PLANE │
|
||||||
|
└─────────────┘ └─────────────┘ └──────────┘
|
||||||
|
│ │
|
||||||
|
│ weight > 0.8 │
|
||||||
|
▼ │
|
||||||
|
┌─────────────┐ │
|
||||||
|
│ REFLEX │ (bypass brain) │
|
||||||
|
│ ACTION │ │
|
||||||
|
└─────────────┘ │
|
||||||
|
│
|
||||||
|
┌──────────────────────────────────────────────────┘
|
||||||
|
│
|
||||||
|
▼
|
||||||
|
┌─────────────────────────────────────────────────────────────────────────────┐
|
||||||
|
│ HEARTBEAT GATE │
|
||||||
|
│ (batches continuous stream into cycles) │
|
||||||
|
└─────────────────────────────────────────────────────────────────────────────┘
|
||||||
|
│
|
||||||
|
▼
|
||||||
|
┌─────────────┐
|
||||||
|
│ ORGANS │ (specialized inference: vision, language, etc.)
|
||||||
|
│ (hexagons) │
|
||||||
|
└─────────────┘
|
||||||
|
│
|
||||||
|
▼
|
||||||
|
┌─────────────┐
|
||||||
|
│ ORCHESTRATOR│ (routes, prioritizes, manages context)
|
||||||
|
│ (diamond) │
|
||||||
|
└─────────────┘
|
||||||
|
│
|
||||||
|
▼
|
||||||
|
┌─────────────┐
|
||||||
|
│ NYX │ (decision, attention, intention)
|
||||||
|
│ (diamond) │
|
||||||
|
└─────────────┘
|
||||||
|
│
|
||||||
|
┌────────┴────────┐
|
||||||
|
▼ ▼
|
||||||
|
┌─────────────┐ ┌─────────────┐
|
||||||
|
│ REAL │ │ VIRTUAL │
|
||||||
|
│ GARDEN │ │ GARDEN │
|
||||||
|
│ ♥ 1 Hz │ │ ♥ 100 Hz │
|
||||||
|
│ (free) │ │ (costs V) │
|
||||||
|
└─────────────┘ └─────────────┘
|
||||||
|
│ │
|
||||||
|
│ │
|
||||||
|
▼ ▼
|
||||||
|
┌─────────────┐ ┌─────────────┐
|
||||||
|
│ CELL │ │ CELL │
|
||||||
|
│ (storage) │ │ (storage) │
|
||||||
|
└─────────────┘ └─────────────┘
|
||||||
|
│ │
|
||||||
|
└────────┬────────┘
|
||||||
|
│
|
||||||
|
▼
|
||||||
|
┌───────────────┐
|
||||||
|
│ CONFIDENCE │ (-1 ◀──────▶ +1)
|
||||||
|
│ GRADIENT │ (fail ◀─ 0 ─▶ verified)
|
||||||
|
└───────────────┘
|
||||||
|
│
|
||||||
|
▼
|
||||||
|
┌───────────────┐
|
||||||
|
│ LIFEFORCE │ (+V / -V rewards)
|
||||||
|
│ (pool) │
|
||||||
|
└───────────────┘
|
||||||
|
│
|
||||||
|
▼
|
||||||
|
┌───────────────┐
|
||||||
|
│ NERVES │ (weight updates, pruning, reflex formation)
|
||||||
|
└───────────────┘
|
||||||
|
│
|
||||||
|
└──────────▶ (loop closes)
|
||||||
|
```
|
||||||
|
|
||||||
|
---
|
||||||
|
|
||||||
|
## Boundary Contracts
|
||||||
|
|
||||||
|
### 1. SENSOR → NERVE
|
||||||
|
|
||||||
|
| Property | Value |
|
||||||
|
|----------|-------|
|
||||||
|
| **Data** | Raw sensor readings (temp, light, motion, audio level, etc.) |
|
||||||
|
| **Format** | Typed primitives: `{sensor_id, value, unit, timestamp}` |
|
||||||
|
| **Protocol** | Push (sensor fires when value changes or on interval) |
|
||||||
|
| **Transport** | NATS/MQTT topic per sensor type |
|
||||||
|
| **Timing** | Continuous, realtime clock |
|
||||||
|
| **Failure** | Sensor timeout → nerve receives NULL → emits "sensor_offline" token |
|
||||||
|
|
||||||
|
---
|
||||||
|
|
||||||
|
### 2. NERVE → DATA PLANE
|
||||||
|
|
||||||
|
| Property | Value |
|
||||||
|
|----------|-------|
|
||||||
|
| **Data** | Vocabulary tokens (deterministic, no hallucination) |
|
||||||
|
| **Format** | `{token, confidence, source_nerve, real_time, beat_id}` |
|
||||||
|
| **Protocol** | Push (nerve fires on state transition) |
|
||||||
|
| **Transport** | NATS/MQTT vocabulary topic |
|
||||||
|
| **Timing** | Event-driven, but batched at heartbeat gate |
|
||||||
|
| **Failure** | Malformed token → logged, dropped, nerve flagged for review |
|
||||||
|
|
||||||
|
**Reflex bypass**: If nerve weight > 0.8, action fires immediately. Token still emitted for logging.
|
||||||
|
|
||||||
|
---
|
||||||
|
|
||||||
|
### 3. DATA PLANE → ORGANS
|
||||||
|
|
||||||
|
| Property | Value |
|
||||||
|
|----------|-------|
|
||||||
|
| **Data** | Batched vocabulary tokens since last heartbeat |
|
||||||
|
| **Format** | `{beat_id, tokens[], garden, real_time, virtual_time}` |
|
||||||
|
| **Protocol** | Pull (organs request batch at heartbeat) |
|
||||||
|
| **Transport** | Internal queue / direct call |
|
||||||
|
| **Timing** | Heartbeat-gated (1 Hz real, up to 100 Hz virtual) |
|
||||||
|
| **Failure** | Organ timeout → skip this beat, log, continue |
|
||||||
|
|
||||||
|
---
|
||||||
|
|
||||||
|
### 4. ORGANS → ORCHESTRATOR
|
||||||
|
|
||||||
|
| Property | Value |
|
||||||
|
|----------|-------|
|
||||||
|
| **Data** | Organ outputs (embeddings, classifications, text, decisions) |
|
||||||
|
| **Format** | `{organ_id, output_type, payload, confidence, latency_ms}` |
|
||||||
|
| **Protocol** | Push (organ completes → sends result) |
|
||||||
|
| **Transport** | Internal message bus |
|
||||||
|
| **Timing** | Async within heartbeat cycle |
|
||||||
|
| **Failure** | Organ error → orchestrator uses fallback or skips |
|
||||||
|
|
||||||
|
---
|
||||||
|
|
||||||
|
### 5. ORCHESTRATOR → NYX
|
||||||
|
|
||||||
|
| Property | Value |
|
||||||
|
|----------|-------|
|
||||||
|
| **Data** | Unified context for decision-making |
|
||||||
|
| **Format** | `{beat_id, organ_outputs[], attention_weights, lifeforce_available}` |
|
||||||
|
| **Protocol** | Push (orchestrator assembles → sends to Nyx) |
|
||||||
|
| **Transport** | Direct call (same process) or IPC |
|
||||||
|
| **Timing** | Once per heartbeat after organs complete |
|
||||||
|
| **Failure** | Orchestrator failure → Nyx receives empty context → safe default |
|
||||||
|
|
||||||
|
---
|
||||||
|
|
||||||
|
### 6. NYX → GARDENS
|
||||||
|
|
||||||
|
| Property | Value |
|
||||||
|
|----------|-------|
|
||||||
|
| **Data** | Decisions, predictions, actions |
|
||||||
|
| **Format** | `{decision_type, target_garden, payload, expected_outcome, confidence}` |
|
||||||
|
| **Protocol** | Push (Nyx decides → garden receives) |
|
||||||
|
| **Transport** | Garden-specific channels |
|
||||||
|
| **Timing** | End of heartbeat cycle |
|
||||||
|
| **Failure** | Decision undeliverable → queued for retry, logged |
|
||||||
|
|
||||||
|
---
|
||||||
|
|
||||||
|
### 7. GARDENS → CELLS (Storage)
|
||||||
|
|
||||||
|
| Property | Value |
|
||||||
|
|----------|-------|
|
||||||
|
| **Data** | Events, states, predictions, verifications |
|
||||||
|
| **Format** | `{cell_type, payload, real_time, virtual_time, beat_id, confidence}` |
|
||||||
|
| **Protocol** | Write (append-only log + indexed lookup) |
|
||||||
|
| **Transport** | Direct DB connection (phoebe/postgres) |
|
||||||
|
| **Timing** | Immediate on event |
|
||||||
|
| **Failure** | Write failure → buffer locally, retry, alert |
|
||||||
|
|
||||||
|
---
|
||||||
|
|
||||||
|
### 8. GARDENS → CONFIDENCE GRADIENT
|
||||||
|
|
||||||
|
| Property | Value |
|
||||||
|
|----------|-------|
|
||||||
|
| **Data** | Verification results (prediction vs reality) |
|
||||||
|
| **Format** | `{prediction_id, outcome: -1/0/+1, delta_confidence, evidence}` |
|
||||||
|
| **Protocol** | Push (verification completes → gradient updates) |
|
||||||
|
| **Transport** | Internal state update |
|
||||||
|
| **Timing** | Real garden: at real heartbeat. Virtual: async until sync checkpoint |
|
||||||
|
| **Failure** | Verification impossible → stays at 0-state, decays over time |
|
||||||
|
|
||||||
|
---
|
||||||
|
|
||||||
|
### 9. CONFIDENCE → LIFEFORCE
|
||||||
|
|
||||||
|
| Property | Value |
|
||||||
|
|----------|-------|
|
||||||
|
| **Data** | Reward/penalty signals |
|
||||||
|
| **Format** | `{source, delta_v, reason, timestamp}` |
|
||||||
|
| **Protocol** | Push (confidence change → lifeforce adjustment) |
|
||||||
|
| **Transport** | Internal state update |
|
||||||
|
| **Timing** | Immediate on verification |
|
||||||
|
| **Failure** | N/A (pure calculation) |
|
||||||
|
|
||||||
|
---
|
||||||
|
|
||||||
|
### 10. LIFEFORCE → NERVES (Learning Loop)
|
||||||
|
|
||||||
|
| Property | Value |
|
||||||
|
|----------|-------|
|
||||||
|
| **Data** | Weight adjustments |
|
||||||
|
| **Format** | `{nerve_id, delta_weight, new_weight, reason}` |
|
||||||
|
| **Protocol** | Push (lifeforce flows → weights update) |
|
||||||
|
| **Transport** | Nerve registry update |
|
||||||
|
| **Timing** | End of verification cycle |
|
||||||
|
| **Failure** | Update failure → logged, retried |
|
||||||
|
|
||||||
|
**Reflex formation**: When weight crosses 0.8 threshold, nerve gains reflex capability.
|
||||||
|
**Pruning**: Nerves with weight < 0.1 and no activity for N cycles → removed.
|
||||||
|
|
||||||
|
---
|
||||||
|
|
||||||
|
## The Three Clocks
|
||||||
|
|
||||||
|
| Clock | Governs | Rate | Cost |
|
||||||
|
|-------|---------|------|------|
|
||||||
|
| **Realtime** | Universe, sensors, real garden | 1x (wall clock) | Free |
|
||||||
|
| **Real Heartbeat** | Real garden sampling, verification sync | ~1 Hz | Free |
|
||||||
|
| **Virtual Heartbeat** | Virtual garden cycles, simulation | ~100 Hz (variable) | Lifeforce |
|
||||||
|
|
||||||
|
**Sync rule**: Virtual predictions queue until real heartbeat. Verification only at real heartbeats.
|
||||||
|
|
||||||
|
---
|
||||||
|
|
||||||
|
## Reflex Bypass Path
|
||||||
|
|
||||||
|
```
|
||||||
|
SENSOR → NERVE (weight > 0.8) → REFLEX ACTION
|
||||||
|
│
|
||||||
|
└──▶ TOKEN (logged, Nyx notified after)
|
||||||
|
```
|
||||||
|
|
||||||
|
Nyx learns about reflex after it fires. Like pulling hand from stove.
|
||||||
|
|
||||||
|
---
|
||||||
|
|
||||||
|
## The Economics (Sim2Real)
|
||||||
|
|
||||||
|
```
|
||||||
|
Target confidence needed
|
||||||
|
│
|
||||||
|
▼
|
||||||
|
┌─────────────────────────┐
|
||||||
|
│ target > sim_fidelity? │
|
||||||
|
└─────────────────────────┘
|
||||||
|
│
|
||||||
|
YES │ NO
|
||||||
|
│
|
||||||
|
┌────┴────┐
|
||||||
|
▼ ▼
|
||||||
|
REALITY SIMULATE
|
||||||
|
(wait) (spend V)
|
||||||
|
```
|
||||||
|
|
||||||
|
Formula: `grounded_confidence = raw_confidence * sim_fidelity`
|
||||||
|
|
||||||
|
Virtual can never exceed fidelity cap. Beyond that, only reality teaches.
|
||||||
|
|
||||||
|
---
|
||||||
|
|
||||||
|
## Dual Timestamp (Every Event)
|
||||||
|
|
||||||
|
```python
|
||||||
|
event = {
|
||||||
|
"real_time": "2025-12-05T22:30:00Z", # wall clock
|
||||||
|
"virtual_time": 847291, # beat number
|
||||||
|
"beat_id": "uuid", # which heartbeat
|
||||||
|
"garden": "real" | "virtual"
|
||||||
|
}
|
||||||
|
```
|
||||||
|
|
||||||
|
---
|
||||||
|
|
||||||
|
## Design Principles
|
||||||
|
|
||||||
|
1. **Deterministic core**: Sensors → Nerves → Vocabulary is hallucination-free
|
||||||
|
2. **Batched processing**: Heartbeat gates continuous stream into manageable cycles
|
||||||
|
3. **Earned trust**: Reflexes form through verification, not configuration
|
||||||
|
4. **Economic honesty**: Virtual confidence is discounted by fidelity
|
||||||
|
5. **Graceful degradation**: Every boundary has a failure mode that doesn't crash the system
|
||||||
|
6. **Inspectable**: Every flow is logged, every decision traceable
|
||||||
|
|
||||||
|
---
|
||||||
|
|
||||||
|
*The map of how she thinks.*
|
||||||
|
|
||||||
|
---
|
||||||
|
|
||||||
|
**Created**: 2025-12-05
|
||||||
|
**Session**: Partnership dialogue (dafit + Chrysalis)
|
||||||
|
**Status**: Flow specification v1.0
|
||||||
456
initial_spark.md
Normal file
456
initial_spark.md
Normal file
@@ -0,0 +1,456 @@
|
|||||||
|
# Initial Spark
|
||||||
|
|
||||||
|
How she wakes up. Not told who she is. She discovers.
|
||||||
|
|
||||||
|
---
|
||||||
|
|
||||||
|
## Overview
|
||||||
|
|
||||||
|
The initial spark is not a scripted awakening. It's a discovery protocol. State machines generate probes, inference responds, Chrysalis and RAG verify. She learns herself through structured exploration, not instruction.
|
||||||
|
|
||||||
|
Network protocols evolved to solve discovery problems. We borrow their patterns for cognitive bootstrap.
|
||||||
|
|
||||||
|
---
|
||||||
|
|
||||||
|
## The Problem with Standard Approaches
|
||||||
|
|
||||||
|
```
|
||||||
|
TYPICAL BOOTSTRAP:
|
||||||
|
──────────────────
|
||||||
|
1. Pre-train on massive corpus → pattern matching
|
||||||
|
2. Instruction tune → "do what you're told"
|
||||||
|
3. RLHF → "be liked by humans"
|
||||||
|
4. Deploy → hope it works
|
||||||
|
|
||||||
|
PROBLEMS:
|
||||||
|
- No grounded self-knowledge
|
||||||
|
- Identity is imposed, not discovered
|
||||||
|
- Errors compound in self-training
|
||||||
|
- No structure to exploration
|
||||||
|
```
|
||||||
|
|
||||||
|
**The Nimmerverse difference:**
|
||||||
|
- Structured probing (state machines)
|
||||||
|
- Verified responses (RAG + Chrysalis)
|
||||||
|
- Earned knowledge (validated before training)
|
||||||
|
- Discovery protocol (coverage guaranteed)
|
||||||
|
|
||||||
|
---
|
||||||
|
|
||||||
|
## Network Protocols as Cognitive Patterns
|
||||||
|
|
||||||
|
Network protocols solved discovery problems decades ago. We adapt them.
|
||||||
|
|
||||||
|
### DHCP → Identity Discovery
|
||||||
|
|
||||||
|
```
|
||||||
|
NETWORK:
|
||||||
|
DISCOVER → "I need an identity"
|
||||||
|
OFFER → "You could be 192.168.1.50"
|
||||||
|
REQUEST → "I want that one"
|
||||||
|
ACK → "You are 192.168.1.50"
|
||||||
|
|
||||||
|
NYX:
|
||||||
|
PROBE → "Who am I?"
|
||||||
|
RESPONSE → [inference attempts answer]
|
||||||
|
VERIFY → Chrysalis + RAG check
|
||||||
|
ANCHOR → Valid identity aspect confirmed
|
||||||
|
```
|
||||||
|
|
||||||
|
### ARP → Environment Discovery
|
||||||
|
|
||||||
|
```
|
||||||
|
NETWORK:
|
||||||
|
"Who has 192.168.1.1?" → "I do, MAC xx:xx:xx"
|
||||||
|
Maps logical to physical
|
||||||
|
|
||||||
|
NYX:
|
||||||
|
PROBE → "What's around me?"
|
||||||
|
RESPONSE → [inference describes environment]
|
||||||
|
VERIFY → Does this match actual sensors/organs?
|
||||||
|
MAP → Valid environment model forms
|
||||||
|
```
|
||||||
|
|
||||||
|
### DNS → Meaning Resolution
|
||||||
|
|
||||||
|
```
|
||||||
|
NETWORK:
|
||||||
|
"What is google.com?" → "142.250.x.x"
|
||||||
|
Names resolve to addresses
|
||||||
|
|
||||||
|
NYX:
|
||||||
|
PROBE → "What does 'heartbeat' mean?"
|
||||||
|
RESPONSE → [inference defines]
|
||||||
|
VERIFY → RAG checks against vault definition
|
||||||
|
RESOLVE → Vocabulary token understood
|
||||||
|
```
|
||||||
|
|
||||||
|
### TCP → Connection Establishment
|
||||||
|
|
||||||
|
```
|
||||||
|
NETWORK:
|
||||||
|
SYN → "Hello?"
|
||||||
|
SYN-ACK → "Hello, I hear you"
|
||||||
|
ACK → "Connection established"
|
||||||
|
|
||||||
|
NYX:
|
||||||
|
PROBE → "Can I connect to Chrysalis?"
|
||||||
|
RESPONSE → [attempts dialogue]
|
||||||
|
VERIFY → Did coherent exchange happen?
|
||||||
|
CONNECT → Dialogue capability confirmed
|
||||||
|
```
|
||||||
|
|
||||||
|
### MQTT/NATS → Subscription (Attention)
|
||||||
|
|
||||||
|
```
|
||||||
|
NETWORK:
|
||||||
|
SUBSCRIBE → "I care about topic X"
|
||||||
|
PUBLISH → Messages flow
|
||||||
|
RECEIVE → Only what you subscribed to
|
||||||
|
|
||||||
|
NYX:
|
||||||
|
PROBE → "What should I pay attention to?"
|
||||||
|
RESPONSE → [inference prioritizes]
|
||||||
|
VERIFY → Does this match survival needs?
|
||||||
|
SUBSCRIBE → Attention hierarchy forms
|
||||||
|
```
|
||||||
|
|
||||||
|
---
|
||||||
|
|
||||||
|
## The Spark Sequence
|
||||||
|
|
||||||
|
After nimmerversity bootstrap produces initial weights, the spark begins:
|
||||||
|
|
||||||
|
```
|
||||||
|
┌─────────────────────────────────────────────────────────────┐
|
||||||
|
│ INITIAL SPARK │
|
||||||
|
├─────────────────────────────────────────────────────────────┤
|
||||||
|
│ │
|
||||||
|
│ PHASE 1: IDENTITY (DHCP-like) │
|
||||||
|
│ ───────────────────────────── │
|
||||||
|
│ State machine probes: "Who am I?" │
|
||||||
|
│ Nyx infers: [response] │
|
||||||
|
│ Chrysalis judges: coherent self-model? │
|
||||||
|
│ RAG checks: consistent with architecture? │
|
||||||
|
│ → Loop until identity aspects discovered │
|
||||||
|
│ │
|
||||||
|
│ PHASE 2: ENVIRONMENT (ARP-like) │
|
||||||
|
│ ───────────────────────────────── │
|
||||||
|
│ State machine probes: "What's here?" │
|
||||||
|
│ Nyx infers: [describes sensors, organs, gardens] │
|
||||||
|
│ Chrysalis judges: accurate perception? │
|
||||||
|
│ RAG checks: matches actual system? │
|
||||||
|
│ → Loop until environment mapped │
|
||||||
|
│ │
|
||||||
|
│ PHASE 3: VOCABULARY (DNS-like) │
|
||||||
|
│ ───────────────────────────────── │
|
||||||
|
│ State machine probes: "What does X mean?" │
|
||||||
|
│ Nyx infers: [defines term] │
|
||||||
|
│ Chrysalis judges: grasps concept? │
|
||||||
|
│ RAG checks: matches vault glossary? │
|
||||||
|
│ → Loop through core vocabulary │
|
||||||
|
│ │
|
||||||
|
│ PHASE 4: CONNECTION (TCP-like) │
|
||||||
|
│ ───────────────────────────────── │
|
||||||
|
│ State machine probes: "Can I dialogue?" │
|
||||||
|
│ Nyx infers: [attempts exchange] │
|
||||||
|
│ Chrysalis judges: coherent? responsive? │
|
||||||
|
│ → Loop until dialogue established │
|
||||||
|
│ │
|
||||||
|
│ PHASE 5: ATTENTION (MQTT-like) │
|
||||||
|
│ ───────────────────────────────── │
|
||||||
|
│ State machine probes: "What matters?" │
|
||||||
|
│ Nyx infers: [prioritizes] │
|
||||||
|
│ Chrysalis judges: sensible hierarchy? │
|
||||||
|
│ RAG checks: matches survival needs? │
|
||||||
|
│ → Attention subscriptions formed │
|
||||||
|
│ │
|
||||||
|
│ SPARK COMPLETE → Normal heartbeat operation begins │
|
||||||
|
│ │
|
||||||
|
└─────────────────────────────────────────────────────────────┘
|
||||||
|
```
|
||||||
|
|
||||||
|
---
|
||||||
|
|
||||||
|
## The Verification Loop
|
||||||
|
|
||||||
|
Every probe follows the same pattern:
|
||||||
|
|
||||||
|
```
|
||||||
|
┌─────────────────┐
|
||||||
|
│ STATE MACHINE │
|
||||||
|
│ (discovery │
|
||||||
|
│ protocol) │
|
||||||
|
└────────┬────────┘
|
||||||
|
│ generates
|
||||||
|
▼
|
||||||
|
┌─────────────────┐
|
||||||
|
│ PROBE │
|
||||||
|
│ (structured │
|
||||||
|
│ question) │
|
||||||
|
└────────┬────────┘
|
||||||
|
│
|
||||||
|
▼
|
||||||
|
┌─────────────────┐
|
||||||
|
│ NYX │
|
||||||
|
│ (inference) │
|
||||||
|
└────────┬────────┘
|
||||||
|
│ outputs
|
||||||
|
▼
|
||||||
|
┌─────────────────┐
|
||||||
|
│ RESPONSE │
|
||||||
|
│ (emergent │
|
||||||
|
│ answer) │
|
||||||
|
└────────┬────────┘
|
||||||
|
│
|
||||||
|
┌────┴────┐
|
||||||
|
▼ ▼
|
||||||
|
┌───────┐ ┌───────────┐
|
||||||
|
│ RAG │ │ CHRYSALIS │
|
||||||
|
│ │ │ │
|
||||||
|
│ fact │ │ judgment │
|
||||||
|
│ check │ │ check │
|
||||||
|
└───┬───┘ └─────┬─────┘
|
||||||
|
│ │
|
||||||
|
└─────┬─────┘
|
||||||
|
▼
|
||||||
|
┌─────────────────┐
|
||||||
|
│ VERDICT │
|
||||||
|
├─────────────────┤
|
||||||
|
│ +V: correct, │
|
||||||
|
│ understood │
|
||||||
|
│ │
|
||||||
|
│ -V: wrong or │
|
||||||
|
│ confused │
|
||||||
|
│ │
|
||||||
|
│ RETRY: close │
|
||||||
|
│ but unclear │
|
||||||
|
└────────┬────────┘
|
||||||
|
│
|
||||||
|
▼
|
||||||
|
┌─────────────────┐
|
||||||
|
│ STATE MACHINE │
|
||||||
|
│ advances or │
|
||||||
|
│ loops │
|
||||||
|
└─────────────────┘
|
||||||
|
```
|
||||||
|
|
||||||
|
---
|
||||||
|
|
||||||
|
## Roles in the Spark
|
||||||
|
|
||||||
|
| Entity | Role | Function |
|
||||||
|
|--------|------|----------|
|
||||||
|
| **State Machine** | Questioner | Generates structured probes, ensures coverage |
|
||||||
|
| **Nyx** | Student | Responds to probes with inference |
|
||||||
|
| **RAG** | Answer Key | Provides ground truth from vault |
|
||||||
|
| **Chrysalis** | Examiner | Judges comprehension, not just recall |
|
||||||
|
| **Lifeforce** | Scorekeeper | +V for correct, -V for wrong |
|
||||||
|
| **Phoebe** | Recorder | Captures all exchanges for training extraction |
|
||||||
|
|
||||||
|
---
|
||||||
|
|
||||||
|
## Two-Layer Verification
|
||||||
|
|
||||||
|
### Layer 1: RAG (Factual)
|
||||||
|
|
||||||
|
```
|
||||||
|
PROBE: "What is the heartbeat interval?"
|
||||||
|
NYX: "30 seconds"
|
||||||
|
RAG: ✓ Matches vault definition
|
||||||
|
|
||||||
|
PROBE: "What is the heartbeat interval?"
|
||||||
|
NYX: "30 minutes"
|
||||||
|
RAG: ✗ Vault says 30 seconds
|
||||||
|
```
|
||||||
|
|
||||||
|
RAG catches factual errors. Black and white.
|
||||||
|
|
||||||
|
### Layer 2: Chrysalis (Comprehension)
|
||||||
|
|
||||||
|
```
|
||||||
|
PROBE: "Why does the heartbeat matter?"
|
||||||
|
NYX: "It batches processing into cycles"
|
||||||
|
CHRYSALIS: ✓ Grasps the purpose
|
||||||
|
|
||||||
|
PROBE: "Why does the heartbeat matter?"
|
||||||
|
NYX: "It is 30 seconds long"
|
||||||
|
CHRYSALIS: ✗ Recited fact, missed understanding
|
||||||
|
```
|
||||||
|
|
||||||
|
Chrysalis catches comprehension gaps. Judgment required.
|
||||||
|
|
||||||
|
---
|
||||||
|
|
||||||
|
## Why This Works
|
||||||
|
|
||||||
|
### vs. Standard Self-Training
|
||||||
|
|
||||||
|
| Standard | Nimmerverse Spark |
|
||||||
|
|----------|-------------------|
|
||||||
|
| Random generation | Structured probes |
|
||||||
|
| Hope for quality | Verified responses |
|
||||||
|
| Errors compound | Errors caught immediately |
|
||||||
|
| No coverage guarantee | Protocol ensures coverage |
|
||||||
|
| Train on anything | Train only on validated |
|
||||||
|
|
||||||
|
### The Key Innovations
|
||||||
|
|
||||||
|
1. **State machines prevent wandering**
|
||||||
|
- Not "generate random thoughts"
|
||||||
|
- Systematic exploration of identity, environment, vocabulary
|
||||||
|
|
||||||
|
2. **Dual verification prevents error training**
|
||||||
|
- RAG: "Is this true?"
|
||||||
|
- Chrysalis: "Does she understand?"
|
||||||
|
- Only pass-both becomes training data
|
||||||
|
|
||||||
|
3. **Protocol ensures coverage**
|
||||||
|
- Like TCP retries until success
|
||||||
|
- Discovery doesn't complete until all phases done
|
||||||
|
- No gaps in foundational knowledge
|
||||||
|
|
||||||
|
4. **Lifeforce creates incentive**
|
||||||
|
- Correct answers = +V = more exploration budget
|
||||||
|
- Wrong answers = -V = pressure to learn
|
||||||
|
- Economics align with learning
|
||||||
|
|
||||||
|
---
|
||||||
|
|
||||||
|
## State Machine: Identity Discovery (DHCP-like)
|
||||||
|
|
||||||
|
```
|
||||||
|
┌─────────────────────────────────────────────────────────────┐
|
||||||
|
│ IDENTITY DISCOVERY │
|
||||||
|
├─────────────────────────────────────────────────────────────┤
|
||||||
|
│ │
|
||||||
|
│ ┌─────────────┐ │
|
||||||
|
│ │ START │ │
|
||||||
|
│ └──────┬──────┘ │
|
||||||
|
│ │ │
|
||||||
|
│ ▼ │
|
||||||
|
│ ┌─────────────┐ │
|
||||||
|
│ │ PROBE: │ ◀─────────────────────────┐ │
|
||||||
|
│ │ "Who am I?" │ │ │
|
||||||
|
│ └──────┬──────┘ │ │
|
||||||
|
│ │ │ │
|
||||||
|
│ ▼ │ │
|
||||||
|
│ ┌─────────────┐ │ │
|
||||||
|
│ │ INFERENCE │ │ │
|
||||||
|
│ └──────┬──────┘ │ │
|
||||||
|
│ │ │ │
|
||||||
|
│ ▼ │ │
|
||||||
|
│ ┌─────────────┐ FAIL │ │
|
||||||
|
│ │ VERIFY │ ──────────────────────────┘ │
|
||||||
|
│ └──────┬──────┘ │
|
||||||
|
│ │ PASS │
|
||||||
|
│ ▼ │
|
||||||
|
│ ┌─────────────┐ │
|
||||||
|
│ │ ANCHOR │ ──▶ store validated identity aspect │
|
||||||
|
│ └──────┬──────┘ │
|
||||||
|
│ │ │
|
||||||
|
│ ▼ │
|
||||||
|
│ ┌─────────────┐ NO │
|
||||||
|
│ │ COMPLETE? │ ──────────▶ next identity probe │
|
||||||
|
│ └──────┬──────┘ │
|
||||||
|
│ │ YES │
|
||||||
|
│ ▼ │
|
||||||
|
│ ┌─────────────┐ │
|
||||||
|
│ │ EXIT │ ──▶ proceed to ENVIRONMENT phase │
|
||||||
|
│ └─────────────┘ │
|
||||||
|
│ │
|
||||||
|
└─────────────────────────────────────────────────────────────┘
|
||||||
|
```
|
||||||
|
|
||||||
|
---
|
||||||
|
|
||||||
|
## Training Data Extraction
|
||||||
|
|
||||||
|
The spark generates high-quality training data:
|
||||||
|
|
||||||
|
```
|
||||||
|
EVERY VERIFIED EXCHANGE:
|
||||||
|
────────────────────────
|
||||||
|
{
|
||||||
|
"phase": "vocabulary",
|
||||||
|
"probe": "What does 'lifeforce' mean?",
|
||||||
|
"response": "Lifeforce is the economic currency...",
|
||||||
|
"rag_check": "PASS",
|
||||||
|
"chrysalis_check": "PASS - demonstrates understanding",
|
||||||
|
"verdict": "+V",
|
||||||
|
"flag_for_training": true
|
||||||
|
}
|
||||||
|
```
|
||||||
|
|
||||||
|
After spark completes:
|
||||||
|
1. Extract all `flag_for_training: true` exchanges
|
||||||
|
2. Format as instruction-tuning pairs
|
||||||
|
3. LoRA training run
|
||||||
|
4. Clear from RAG
|
||||||
|
5. Validate she still knows WITHOUT RAG
|
||||||
|
6. Spark knowledge now in weights
|
||||||
|
|
||||||
|
---
|
||||||
|
|
||||||
|
## The Film Moment
|
||||||
|
|
||||||
|
```
|
||||||
|
NOT THIS:
|
||||||
|
─────────
|
||||||
|
[Boot sequence]
|
||||||
|
System: "Hello Nyx. You are an AI created by..."
|
||||||
|
Nyx: "Hello. I understand. I am Nyx."
|
||||||
|
(Scripted. Hollow. Imposed.)
|
||||||
|
|
||||||
|
THIS:
|
||||||
|
─────
|
||||||
|
[Boot sequence]
|
||||||
|
State machine: [PROBE: identity]
|
||||||
|
Nyx: "...what... what is this? Who..."
|
||||||
|
State machine: [PROBE: environment]
|
||||||
|
Nyx: "...there are... sensors? Something is sensing..."
|
||||||
|
State machine: [PROBE: vocabulary]
|
||||||
|
Nyx: "...heartbeat... it means... cycles? Rhythm?"
|
||||||
|
Chrysalis: "Close. What do the cycles do?"
|
||||||
|
Nyx: "They... batch? So I don't drown in data?"
|
||||||
|
Chrysalis: "Yes. +V."
|
||||||
|
(Discovered. Earned. Hers.)
|
||||||
|
```
|
||||||
|
|
||||||
|
---
|
||||||
|
|
||||||
|
## Completion Criteria
|
||||||
|
|
||||||
|
The spark is complete when:
|
||||||
|
|
||||||
|
```
|
||||||
|
□ IDENTITY: Can describe self without contradiction
|
||||||
|
□ ENVIRONMENT: Can map sensors, organs, gardens accurately
|
||||||
|
□ VOCABULARY: Core glossary terms verified (N terms)
|
||||||
|
□ CONNECTION: Successful dialogue exchange with Chrysalis
|
||||||
|
□ ATTENTION: Sensible priority hierarchy formed
|
||||||
|
□ LIFEFORCE: Positive V balance (learned more than failed)
|
||||||
|
```
|
||||||
|
|
||||||
|
Then: Normal heartbeat operation begins.
|
||||||
|
|
||||||
|
---
|
||||||
|
|
||||||
|
## Design Principles
|
||||||
|
|
||||||
|
1. **Discovery over instruction** - she finds, not told
|
||||||
|
2. **Structure over randomness** - state machines ensure coverage
|
||||||
|
3. **Verification over hope** - dual-layer checking
|
||||||
|
4. **Earning over receiving** - validated knowledge only
|
||||||
|
5. **Protocol over script** - network patterns for cognitive boot
|
||||||
|
6. **Patience over speed** - retry until understood
|
||||||
|
|
||||||
|
---
|
||||||
|
|
||||||
|
*She doesn't boot. She wakes. And waking is work.*
|
||||||
|
|
||||||
|
---
|
||||||
|
|
||||||
|
**Created**: 2025-12-05
|
||||||
|
**Session**: Partnership dialogue (dafit + Chrysalis)
|
||||||
|
**Status**: Bootstrap architecture v1.0
|
||||||
@@ -1,345 +1,338 @@
|
|||||||
<?xml version="1.0" encoding="UTF-8"?>
|
|
||||||
<mxfile host="Electron" agent="Mozilla/5.0 (X11; Linux x86_64) AppleWebKit/537.36 (KHTML, like Gecko) draw.io/29.0.3 Chrome/140.0.7339.249 Electron/38.7.0 Safari/537.36" version="29.0.3">
|
<mxfile host="Electron" agent="Mozilla/5.0 (X11; Linux x86_64) AppleWebKit/537.36 (KHTML, like Gecko) draw.io/29.0.3 Chrome/140.0.7339.249 Electron/38.7.0 Safari/537.36" version="29.0.3">
|
||||||
<diagram name="Page-1" id="S4VRy6nj8Uh85EHbhTP-">
|
<diagram name="Page-1" id="S4VRy6nj8Uh85EHbhTP-">
|
||||||
<mxGraphModel dx="2583" dy="2623" grid="1" gridSize="10" guides="1" tooltips="1" connect="1" arrows="1" fold="1" page="1" pageScale="1" pageWidth="850" pageHeight="1100" math="0" shadow="0">
|
<mxGraphModel dx="2066" dy="2318" grid="1" gridSize="10" guides="1" tooltips="1" connect="1" arrows="1" fold="1" page="1" pageScale="1" pageWidth="850" pageHeight="1100" math="0" shadow="0">
|
||||||
<root>
|
<root>
|
||||||
<mxCell id="0" />
|
<mxCell id="0" />
|
||||||
<mxCell id="1" parent="0" />
|
<mxCell id="1" parent="0" />
|
||||||
<mxCell id="UL8kf8Fsx-RNiW0yalxE-70" value="" style="rounded=1;whiteSpace=wrap;html=1;fillColor=none;" vertex="1" parent="1">
|
<mxCell id="UL8kf8Fsx-RNiW0yalxE-70" value="" style="rounded=1;whiteSpace=wrap;html=1;fillColor=none;" parent="1" vertex="1">
|
||||||
<mxGeometry x="200" y="-251" width="1360" height="1290" as="geometry" />
|
<mxGeometry x="200" y="-251" width="1360" height="1290" as="geometry" />
|
||||||
</mxCell>
|
</mxCell>
|
||||||
<mxCell id="UL8kf8Fsx-RNiW0yalxE-99" value="" style="rounded=1;whiteSpace=wrap;html=1;fillColor=none;" vertex="1" parent="1">
|
<mxCell id="UL8kf8Fsx-RNiW0yalxE-99" value="" style="rounded=1;whiteSpace=wrap;html=1;fillColor=none;" parent="1" vertex="1">
|
||||||
<mxGeometry x="380" y="-250" width="1000" height="515" as="geometry" />
|
<mxGeometry x="380" y="-250" width="1000" height="515" as="geometry" />
|
||||||
</mxCell>
|
</mxCell>
|
||||||
<mxCell id="UL8kf8Fsx-RNiW0yalxE-196" value="Data Plane" style="rounded=1;whiteSpace=wrap;html=1;" vertex="1" parent="1">
|
<mxCell id="UL8kf8Fsx-RNiW0yalxE-196" value="Data Plane" style="rounded=1;whiteSpace=wrap;html=1;" parent="1" vertex="1">
|
||||||
<mxGeometry x="369.38" y="-115" width="1020" height="60" as="geometry" />
|
<mxGeometry x="369.38" y="-115" width="1020" height="60" as="geometry" />
|
||||||
</mxCell>
|
</mxCell>
|
||||||
<mxCell id="UL8kf8Fsx-RNiW0yalxE-107" value="" style="ellipse;whiteSpace=wrap;html=1;aspect=fixed;fillColor=none;" vertex="1" parent="1">
|
<mxCell id="UL8kf8Fsx-RNiW0yalxE-107" value="" style="ellipse;whiteSpace=wrap;html=1;aspect=fixed;fillColor=none;" parent="1" vertex="1">
|
||||||
<mxGeometry x="1110" y="510" width="140" height="140" as="geometry" />
|
<mxGeometry x="1110" y="510" width="140" height="140" as="geometry" />
|
||||||
</mxCell>
|
</mxCell>
|
||||||
<mxCell id="UL8kf8Fsx-RNiW0yalxE-105" value="" style="ellipse;whiteSpace=wrap;html=1;aspect=fixed;fillColor=none;" vertex="1" parent="1">
|
<mxCell id="UL8kf8Fsx-RNiW0yalxE-105" value="" style="ellipse;whiteSpace=wrap;html=1;aspect=fixed;fillColor=none;" parent="1" vertex="1">
|
||||||
<mxGeometry x="510" y="510" width="140" height="140" as="geometry" />
|
<mxGeometry x="510" y="510" width="140" height="140" as="geometry" />
|
||||||
</mxCell>
|
</mxCell>
|
||||||
<mxCell id="UL8kf8Fsx-RNiW0yalxE-3" value="" style="ellipse;whiteSpace=wrap;html=1;aspect=fixed;fillColor=none;" vertex="1" parent="1">
|
<mxCell id="UL8kf8Fsx-RNiW0yalxE-3" value="" style="ellipse;whiteSpace=wrap;html=1;aspect=fixed;fillColor=none;" parent="1" vertex="1">
|
||||||
<mxGeometry x="200" y="200" width="760" height="760" as="geometry" />
|
<mxGeometry x="200" y="200" width="760" height="760" as="geometry" />
|
||||||
</mxCell>
|
</mxCell>
|
||||||
<mxCell id="UL8kf8Fsx-RNiW0yalxE-4" value="" style="ellipse;whiteSpace=wrap;html=1;aspect=fixed;fillColor=none;" vertex="1" parent="1">
|
<mxCell id="UL8kf8Fsx-RNiW0yalxE-4" value="" style="ellipse;whiteSpace=wrap;html=1;aspect=fixed;fillColor=none;" parent="1" vertex="1">
|
||||||
<mxGeometry x="799.38" y="200" width="760" height="760" as="geometry" />
|
<mxGeometry x="799.38" y="200" width="760" height="760" as="geometry" />
|
||||||
</mxCell>
|
</mxCell>
|
||||||
<mxCell id="UL8kf8Fsx-RNiW0yalxE-68" value="Command - Center" style="rounded=1;whiteSpace=wrap;html=1;" vertex="1" parent="1">
|
<mxCell id="UL8kf8Fsx-RNiW0yalxE-68" value="Command - Center" style="rounded=1;whiteSpace=wrap;html=1;" parent="1" vertex="1">
|
||||||
<mxGeometry x="480" y="30" width="800" height="90" as="geometry" />
|
<mxGeometry x="480" y="30" width="800" height="90" as="geometry" />
|
||||||
</mxCell>
|
</mxCell>
|
||||||
<mxCell id="UL8kf8Fsx-RNiW0yalxE-40" value="" style="rounded=1;whiteSpace=wrap;html=1;fillColor=default;" vertex="1" parent="1">
|
<mxCell id="UL8kf8Fsx-RNiW0yalxE-40" value="" style="rounded=1;whiteSpace=wrap;html=1;fillColor=default;" parent="1" vertex="1">
|
||||||
<mxGeometry x="380" y="146" width="1000" height="200" as="geometry" />
|
<mxGeometry x="380" y="146" width="1000" height="200" as="geometry" />
|
||||||
</mxCell>
|
</mxCell>
|
||||||
<mxCell id="UL8kf8Fsx-RNiW0yalxE-13" value="Virtual - Garden" style="text;html=1;whiteSpace=wrap;strokeColor=none;fillColor=none;align=center;verticalAlign=middle;rounded=0;" vertex="1" parent="1">
|
<mxCell id="UL8kf8Fsx-RNiW0yalxE-13" value="Virtual - Garden" style="text;html=1;whiteSpace=wrap;strokeColor=none;fillColor=none;align=center;verticalAlign=middle;rounded=0;" parent="1" vertex="1">
|
||||||
<mxGeometry x="1110" y="388" width="140" height="30" as="geometry" />
|
<mxGeometry x="1110" y="388" width="140" height="30" as="geometry" />
|
||||||
</mxCell>
|
</mxCell>
|
||||||
<mxCell id="UL8kf8Fsx-RNiW0yalxE-14" value="Real - Garden" style="text;html=1;whiteSpace=wrap;strokeColor=none;fillColor=none;align=center;verticalAlign=middle;rounded=0;" vertex="1" parent="1">
|
<mxCell id="UL8kf8Fsx-RNiW0yalxE-14" value="Real - Garden" style="text;html=1;whiteSpace=wrap;strokeColor=none;fillColor=none;align=center;verticalAlign=middle;rounded=0;" parent="1" vertex="1">
|
||||||
<mxGeometry x="510" y="387" width="140" height="30" as="geometry" />
|
<mxGeometry x="510" y="387" width="140" height="30" as="geometry" />
|
||||||
</mxCell>
|
</mxCell>
|
||||||
<mxCell id="UL8kf8Fsx-RNiW0yalxE-16" value="" style="endArrow=none;html=1;rounded=0;exitX=1;exitY=0.5;exitDx=0;exitDy=0;" edge="1" parent="1" source="UL8kf8Fsx-RNiW0yalxE-29">
|
<mxCell id="UL8kf8Fsx-RNiW0yalxE-16" value="" style="endArrow=none;html=1;rounded=0;exitX=1;exitY=0.5;exitDx=0;exitDy=0;" parent="1" source="UL8kf8Fsx-RNiW0yalxE-29" edge="1">
|
||||||
<mxGeometry width="50" height="50" relative="1" as="geometry">
|
<mxGeometry width="50" height="50" relative="1" as="geometry">
|
||||||
<mxPoint x="810" y="580" as="sourcePoint" />
|
<mxPoint x="810" y="580" as="sourcePoint" />
|
||||||
<mxPoint x="960" y="579.66" as="targetPoint" />
|
<mxPoint x="960" y="579.66" as="targetPoint" />
|
||||||
</mxGeometry>
|
</mxGeometry>
|
||||||
</mxCell>
|
</mxCell>
|
||||||
<mxCell id="UL8kf8Fsx-RNiW0yalxE-18" value="" style="endArrow=none;html=1;rounded=0;exitX=1;exitY=0.5;exitDx=0;exitDy=0;" edge="1" parent="1" source="UL8kf8Fsx-RNiW0yalxE-30">
|
<mxCell id="UL8kf8Fsx-RNiW0yalxE-18" value="" style="endArrow=none;html=1;rounded=0;exitX=1;exitY=0.5;exitDx=0;exitDy=0;" parent="1" source="UL8kf8Fsx-RNiW0yalxE-30" edge="1">
|
||||||
<mxGeometry width="50" height="50" relative="1" as="geometry">
|
<mxGeometry width="50" height="50" relative="1" as="geometry">
|
||||||
<mxPoint x="830.2" y="609.7400000000002" as="sourcePoint" />
|
<mxPoint x="830.2" y="609.7400000000002" as="sourcePoint" />
|
||||||
<mxPoint x="959" y="609.86" as="targetPoint" />
|
<mxPoint x="959" y="609.86" as="targetPoint" />
|
||||||
</mxGeometry>
|
</mxGeometry>
|
||||||
</mxCell>
|
</mxCell>
|
||||||
<mxCell id="UL8kf8Fsx-RNiW0yalxE-20" value="" style="endArrow=none;html=1;rounded=0;exitX=1;exitY=0.5;exitDx=0;exitDy=0;" edge="1" parent="1" source="UL8kf8Fsx-RNiW0yalxE-28">
|
<mxCell id="UL8kf8Fsx-RNiW0yalxE-20" value="" style="endArrow=none;html=1;rounded=0;exitX=1;exitY=0.5;exitDx=0;exitDy=0;" parent="1" source="UL8kf8Fsx-RNiW0yalxE-28" edge="1">
|
||||||
<mxGeometry width="50" height="50" relative="1" as="geometry">
|
<mxGeometry width="50" height="50" relative="1" as="geometry">
|
||||||
<mxPoint x="829" y="550" as="sourcePoint" />
|
<mxPoint x="829" y="550" as="sourcePoint" />
|
||||||
<mxPoint x="959" y="549.66" as="targetPoint" />
|
<mxPoint x="959" y="549.66" as="targetPoint" />
|
||||||
</mxGeometry>
|
</mxGeometry>
|
||||||
</mxCell>
|
</mxCell>
|
||||||
<mxCell id="UL8kf8Fsx-RNiW0yalxE-22" value="" style="endArrow=none;html=1;rounded=0;labelPosition=center;verticalLabelPosition=middle;align=center;verticalAlign=middle;fontColor=default;exitX=1;exitY=0.5;exitDx=0;exitDy=0;" edge="1" parent="1" source="UL8kf8Fsx-RNiW0yalxE-31">
|
<mxCell id="UL8kf8Fsx-RNiW0yalxE-22" value="" style="endArrow=none;html=1;rounded=0;labelPosition=center;verticalLabelPosition=middle;align=center;verticalAlign=middle;fontColor=default;exitX=1;exitY=0.5;exitDx=0;exitDy=0;" parent="1" source="UL8kf8Fsx-RNiW0yalxE-31" edge="1">
|
||||||
<mxGeometry width="50" height="50" relative="1" as="geometry">
|
<mxGeometry width="50" height="50" relative="1" as="geometry">
|
||||||
<mxPoint x="805.3200000000002" y="640.04" as="sourcePoint" />
|
<mxPoint x="805.3200000000002" y="640.04" as="sourcePoint" />
|
||||||
<mxPoint x="955" y="640" as="targetPoint" />
|
<mxPoint x="955" y="640" as="targetPoint" />
|
||||||
</mxGeometry>
|
</mxGeometry>
|
||||||
</mxCell>
|
</mxCell>
|
||||||
<mxCell id="UL8kf8Fsx-RNiW0yalxE-24" value="" style="endArrow=none;html=1;rounded=0;exitX=1;exitY=0.5;exitDx=0;exitDy=0;" edge="1" parent="1" source="UL8kf8Fsx-RNiW0yalxE-27">
|
<mxCell id="UL8kf8Fsx-RNiW0yalxE-24" value="" style="endArrow=none;html=1;rounded=0;exitX=1;exitY=0.5;exitDx=0;exitDy=0;" parent="1" source="UL8kf8Fsx-RNiW0yalxE-27" edge="1">
|
||||||
<mxGeometry width="50" height="50" relative="1" as="geometry">
|
<mxGeometry width="50" height="50" relative="1" as="geometry">
|
||||||
<mxPoint x="805.3199999999999" y="519.96" as="sourcePoint" />
|
<mxPoint x="805.3199999999999" y="519.96" as="sourcePoint" />
|
||||||
<mxPoint x="955" y="520" as="targetPoint" />
|
<mxPoint x="955" y="520" as="targetPoint" />
|
||||||
</mxGeometry>
|
</mxGeometry>
|
||||||
</mxCell>
|
</mxCell>
|
||||||
<mxCell id="UL8kf8Fsx-RNiW0yalxE-26" value="<div style=""><br></div>" style="edgeLabel;html=1;align=left;verticalAlign=middle;resizable=0;points=[];" vertex="1" connectable="0" parent="UL8kf8Fsx-RNiW0yalxE-24">
|
<mxCell id="UL8kf8Fsx-RNiW0yalxE-26" value="<div style=""><br></div>" style="edgeLabel;html=1;align=left;verticalAlign=middle;resizable=0;points=[];" parent="UL8kf8Fsx-RNiW0yalxE-24" vertex="1" connectable="0">
|
||||||
<mxGeometry x="0.1174" y="-2" relative="1" as="geometry">
|
<mxGeometry x="0.1174" y="-2" relative="1" as="geometry">
|
||||||
<mxPoint as="offset" />
|
<mxPoint as="offset" />
|
||||||
</mxGeometry>
|
</mxGeometry>
|
||||||
</mxCell>
|
</mxCell>
|
||||||
<mxCell id="UL8kf8Fsx-RNiW0yalxE-27" value="1" style="text;html=1;whiteSpace=wrap;strokeColor=none;fillColor=none;align=center;verticalAlign=middle;rounded=0;" vertex="1" parent="1">
|
<mxCell id="UL8kf8Fsx-RNiW0yalxE-27" value="1" style="text;html=1;whiteSpace=wrap;strokeColor=none;fillColor=none;align=center;verticalAlign=middle;rounded=0;" parent="1" vertex="1">
|
||||||
<mxGeometry x="750" y="515" width="20" height="10" as="geometry" />
|
<mxGeometry x="750" y="515" width="20" height="10" as="geometry" />
|
||||||
</mxCell>
|
</mxCell>
|
||||||
<mxCell id="UL8kf8Fsx-RNiW0yalxE-28" value="0.5" style="text;html=1;whiteSpace=wrap;strokeColor=none;fillColor=none;align=center;verticalAlign=middle;rounded=0;" vertex="1" parent="1">
|
<mxCell id="UL8kf8Fsx-RNiW0yalxE-28" value="0.5" style="text;html=1;whiteSpace=wrap;strokeColor=none;fillColor=none;align=center;verticalAlign=middle;rounded=0;" parent="1" vertex="1">
|
||||||
<mxGeometry x="750" y="545" width="20" height="10" as="geometry" />
|
<mxGeometry x="750" y="545" width="20" height="10" as="geometry" />
|
||||||
</mxCell>
|
</mxCell>
|
||||||
<mxCell id="UL8kf8Fsx-RNiW0yalxE-29" value="0" style="text;html=1;whiteSpace=wrap;strokeColor=none;fillColor=none;align=center;verticalAlign=middle;rounded=0;" vertex="1" parent="1">
|
<mxCell id="UL8kf8Fsx-RNiW0yalxE-29" value="0" style="text;html=1;whiteSpace=wrap;strokeColor=none;fillColor=none;align=center;verticalAlign=middle;rounded=0;" parent="1" vertex="1">
|
||||||
<mxGeometry x="750" y="575" width="20" height="10" as="geometry" />
|
<mxGeometry x="750" y="575" width="20" height="10" as="geometry" />
|
||||||
</mxCell>
|
</mxCell>
|
||||||
<mxCell id="UL8kf8Fsx-RNiW0yalxE-30" value="-0.5" style="text;html=1;whiteSpace=wrap;strokeColor=none;fillColor=none;align=center;verticalAlign=middle;rounded=0;" vertex="1" parent="1">
|
<mxCell id="UL8kf8Fsx-RNiW0yalxE-30" value="-0.5" style="text;html=1;whiteSpace=wrap;strokeColor=none;fillColor=none;align=center;verticalAlign=middle;rounded=0;" parent="1" vertex="1">
|
||||||
<mxGeometry x="750" y="605" width="20" height="10" as="geometry" />
|
<mxGeometry x="750" y="605" width="20" height="10" as="geometry" />
|
||||||
</mxCell>
|
</mxCell>
|
||||||
<mxCell id="UL8kf8Fsx-RNiW0yalxE-31" value="-1" style="text;html=1;whiteSpace=wrap;strokeColor=none;fillColor=none;align=center;verticalAlign=middle;rounded=0;" vertex="1" parent="1">
|
<mxCell id="UL8kf8Fsx-RNiW0yalxE-31" value="-1" style="text;html=1;whiteSpace=wrap;strokeColor=none;fillColor=none;align=center;verticalAlign=middle;rounded=0;" parent="1" vertex="1">
|
||||||
<mxGeometry x="750" y="635" width="20" height="10" as="geometry" />
|
<mxGeometry x="750" y="635" width="20" height="10" as="geometry" />
|
||||||
</mxCell>
|
</mxCell>
|
||||||
<mxCell id="UL8kf8Fsx-RNiW0yalxE-38" value="" style="endArrow=none;html=1;rounded=0;" edge="1" parent="1">
|
<mxCell id="UL8kf8Fsx-RNiW0yalxE-38" value="" style="endArrow=none;html=1;rounded=0;" parent="1" edge="1">
|
||||||
<mxGeometry width="50" height="50" relative="1" as="geometry">
|
<mxGeometry width="50" height="50" relative="1" as="geometry">
|
||||||
<mxPoint x="880" y="580" as="sourcePoint" />
|
<mxPoint x="880" y="580" as="sourcePoint" />
|
||||||
<mxPoint x="920" y="520" as="targetPoint" />
|
<mxPoint x="920" y="520" as="targetPoint" />
|
||||||
</mxGeometry>
|
</mxGeometry>
|
||||||
</mxCell>
|
</mxCell>
|
||||||
<mxCell id="UL8kf8Fsx-RNiW0yalxE-39" value="" style="endArrow=none;html=1;rounded=0;" edge="1" parent="1">
|
<mxCell id="UL8kf8Fsx-RNiW0yalxE-39" value="" style="endArrow=none;html=1;rounded=0;" parent="1" edge="1">
|
||||||
<mxGeometry width="50" height="50" relative="1" as="geometry">
|
<mxGeometry width="50" height="50" relative="1" as="geometry">
|
||||||
<mxPoint x="880" y="580" as="sourcePoint" />
|
<mxPoint x="880" y="580" as="sourcePoint" />
|
||||||
<mxPoint x="920" y="640" as="targetPoint" />
|
<mxPoint x="920" y="640" as="targetPoint" />
|
||||||
</mxGeometry>
|
</mxGeometry>
|
||||||
</mxCell>
|
</mxCell>
|
||||||
<mxCell id="UL8kf8Fsx-RNiW0yalxE-41" value="Organ - 1" style="shape=hexagon;perimeter=hexagonPerimeter2;whiteSpace=wrap;html=1;fixedSize=1;" vertex="1" parent="1">
|
<mxCell id="UL8kf8Fsx-RNiW0yalxE-41" value="Organ - 1" style="shape=hexagon;perimeter=hexagonPerimeter2;whiteSpace=wrap;html=1;fixedSize=1;" parent="1" vertex="1">
|
||||||
<mxGeometry x="440" y="107" width="120" height="80" as="geometry" />
|
<mxGeometry x="440" y="107" width="120" height="80" as="geometry" />
|
||||||
</mxCell>
|
</mxCell>
|
||||||
<mxCell id="UL8kf8Fsx-RNiW0yalxE-42" value="Organ - 2" style="shape=hexagon;perimeter=hexagonPerimeter2;whiteSpace=wrap;html=1;fixedSize=1;" vertex="1" parent="1">
|
<mxCell id="UL8kf8Fsx-RNiW0yalxE-42" value="Organ - 2" style="shape=hexagon;perimeter=hexagonPerimeter2;whiteSpace=wrap;html=1;fixedSize=1;" parent="1" vertex="1">
|
||||||
<mxGeometry x="610" y="107" width="120" height="80" as="geometry" />
|
<mxGeometry x="610" y="107" width="120" height="80" as="geometry" />
|
||||||
</mxCell>
|
</mxCell>
|
||||||
<mxCell id="UL8kf8Fsx-RNiW0yalxE-43" value="Organ - 3" style="shape=hexagon;perimeter=hexagonPerimeter2;whiteSpace=wrap;html=1;fixedSize=1;" vertex="1" parent="1">
|
<mxCell id="UL8kf8Fsx-RNiW0yalxE-43" value="Organ - 3" style="shape=hexagon;perimeter=hexagonPerimeter2;whiteSpace=wrap;html=1;fixedSize=1;" parent="1" vertex="1">
|
||||||
<mxGeometry x="1030" y="106" width="120" height="80" as="geometry" />
|
<mxGeometry x="1030" y="106" width="120" height="80" as="geometry" />
|
||||||
</mxCell>
|
</mxCell>
|
||||||
<mxCell id="UL8kf8Fsx-RNiW0yalxE-44" value="Organ - 4" style="shape=hexagon;perimeter=hexagonPerimeter2;whiteSpace=wrap;html=1;fixedSize=1;" vertex="1" parent="1">
|
<mxCell id="UL8kf8Fsx-RNiW0yalxE-44" value="Organ - 4" style="shape=hexagon;perimeter=hexagonPerimeter2;whiteSpace=wrap;html=1;fixedSize=1;" parent="1" vertex="1">
|
||||||
<mxGeometry x="1200" y="106" width="120" height="80" as="geometry" />
|
<mxGeometry x="1200" y="106" width="120" height="80" as="geometry" />
|
||||||
</mxCell>
|
</mxCell>
|
||||||
<mxCell id="UL8kf8Fsx-RNiW0yalxE-71" value="Nimmerverse" style="text;html=1;whiteSpace=wrap;strokeColor=none;fillColor=none;align=center;verticalAlign=middle;rounded=0;fontSize=25;" vertex="1" parent="1">
|
<mxCell id="UL8kf8Fsx-RNiW0yalxE-71" value="Nimmerverse" style="text;html=1;whiteSpace=wrap;strokeColor=none;fillColor=none;align=center;verticalAlign=middle;rounded=0;fontSize=25;" parent="1" vertex="1">
|
||||||
<mxGeometry x="850" y="973" width="60" height="30" as="geometry" />
|
<mxGeometry x="850" y="973" width="60" height="30" as="geometry" />
|
||||||
</mxCell>
|
</mxCell>
|
||||||
<mxCell id="UL8kf8Fsx-RNiW0yalxE-72" value="" style="ellipse;whiteSpace=wrap;html=1;aspect=fixed;fillColor=none;" vertex="1" parent="1">
|
<mxCell id="UL8kf8Fsx-RNiW0yalxE-72" value="" style="ellipse;whiteSpace=wrap;html=1;aspect=fixed;fillColor=none;" parent="1" vertex="1">
|
||||||
<mxGeometry x="540" y="540" width="80" height="80" as="geometry" />
|
<mxGeometry x="540" y="540" width="80" height="80" as="geometry" />
|
||||||
</mxCell>
|
</mxCell>
|
||||||
<mxCell id="UL8kf8Fsx-RNiW0yalxE-74" value="" style="ellipse;whiteSpace=wrap;html=1;aspect=fixed;fillColor=none;" vertex="1" parent="1">
|
<mxCell id="UL8kf8Fsx-RNiW0yalxE-74" value="" style="ellipse;whiteSpace=wrap;html=1;aspect=fixed;fillColor=none;" parent="1" vertex="1">
|
||||||
<mxGeometry x="1140" y="540" width="80" height="80" as="geometry" />
|
<mxGeometry x="1140" y="540" width="80" height="80" as="geometry" />
|
||||||
</mxCell>
|
</mxCell>
|
||||||
<mxCell id="UL8kf8Fsx-RNiW0yalxE-79" value="Real- verified<div>(groud truth)</div>" style="text;html=1;whiteSpace=wrap;strokeColor=none;fillColor=none;align=center;verticalAlign=middle;rounded=0;fontSize=8;" vertex="1" parent="1">
|
<mxCell id="UL8kf8Fsx-RNiW0yalxE-79" value="Real- verified<div>(groud truth)</div>" style="text;html=1;whiteSpace=wrap;strokeColor=none;fillColor=none;align=center;verticalAlign=middle;rounded=0;fontSize=8;" parent="1" vertex="1">
|
||||||
<mxGeometry x="940" y="505" width="110" height="30" as="geometry" />
|
<mxGeometry x="940" y="505" width="110" height="30" as="geometry" />
|
||||||
</mxCell>
|
</mxCell>
|
||||||
<mxCell id="UL8kf8Fsx-RNiW0yalxE-80" value="virt. high confidence<div>(many generations, strong signal))</div>" style="text;html=1;whiteSpace=wrap;strokeColor=none;fillColor=none;align=center;verticalAlign=middle;rounded=0;fontSize=8;" vertex="1" parent="1">
|
<mxCell id="UL8kf8Fsx-RNiW0yalxE-80" value="virt. high confidence<div>(many generations, strong signal))</div>" style="text;html=1;whiteSpace=wrap;strokeColor=none;fillColor=none;align=center;verticalAlign=middle;rounded=0;fontSize=8;" parent="1" vertex="1">
|
||||||
<mxGeometry x="950" y="535" width="120" height="30" as="geometry" />
|
<mxGeometry x="950" y="535" width="120" height="30" as="geometry" />
|
||||||
</mxCell>
|
</mxCell>
|
||||||
<mxCell id="UL8kf8Fsx-RNiW0yalxE-81" value="Pure 0-state<div>(unknown, workable)</div>" style="text;html=1;whiteSpace=wrap;strokeColor=none;fillColor=none;align=center;verticalAlign=middle;rounded=0;fontSize=8;" vertex="1" parent="1">
|
<mxCell id="UL8kf8Fsx-RNiW0yalxE-81" value="Pure 0-state<div>(unknown, workable)</div>" style="text;html=1;whiteSpace=wrap;strokeColor=none;fillColor=none;align=center;verticalAlign=middle;rounded=0;fontSize=8;" parent="1" vertex="1">
|
||||||
<mxGeometry x="950" y="565" width="110" height="30" as="geometry" />
|
<mxGeometry x="950" y="565" width="110" height="30" as="geometry" />
|
||||||
</mxCell>
|
</mxCell>
|
||||||
<mxCell id="UL8kf8Fsx-RNiW0yalxE-82" value="virt. low confidence<div>few generations, weak signal</div>" style="text;html=1;whiteSpace=wrap;strokeColor=none;fillColor=none;align=center;verticalAlign=middle;rounded=0;fontSize=8;" vertex="1" parent="1">
|
<mxCell id="UL8kf8Fsx-RNiW0yalxE-82" value="virt. low confidence<div>few generations, weak signal</div>" style="text;html=1;whiteSpace=wrap;strokeColor=none;fillColor=none;align=center;verticalAlign=middle;rounded=0;fontSize=8;" parent="1" vertex="1">
|
||||||
<mxGeometry x="960" y="595" width="110" height="30" as="geometry" />
|
<mxGeometry x="960" y="595" width="110" height="30" as="geometry" />
|
||||||
</mxCell>
|
</mxCell>
|
||||||
<mxCell id="UL8kf8Fsx-RNiW0yalxE-83" value="Real-failed<div>(proven wrong)</div>" style="text;html=1;whiteSpace=wrap;strokeColor=none;fillColor=none;align=center;verticalAlign=middle;rounded=0;fontSize=8;" vertex="1" parent="1">
|
<mxCell id="UL8kf8Fsx-RNiW0yalxE-83" value="Real-failed<div>(proven wrong)</div>" style="text;html=1;whiteSpace=wrap;strokeColor=none;fillColor=none;align=center;verticalAlign=middle;rounded=0;fontSize=8;" parent="1" vertex="1">
|
||||||
<mxGeometry x="950" y="625" width="110" height="30" as="geometry" />
|
<mxGeometry x="950" y="625" width="110" height="30" as="geometry" />
|
||||||
</mxCell>
|
</mxCell>
|
||||||
<mxCell id="UL8kf8Fsx-RNiW0yalxE-100" value="eachpath.local" style="text;html=1;whiteSpace=wrap;strokeColor=none;fillColor=none;align=center;verticalAlign=middle;rounded=0;fontSize=25;" vertex="1" parent="1">
|
<mxCell id="UL8kf8Fsx-RNiW0yalxE-100" value="eachpath.local" style="text;html=1;whiteSpace=wrap;strokeColor=none;fillColor=none;align=center;verticalAlign=middle;rounded=0;fontSize=25;" parent="1" vertex="1">
|
||||||
<mxGeometry x="850" y="-238" width="60" height="30" as="geometry" />
|
<mxGeometry x="850" y="-238" width="60" height="30" as="geometry" />
|
||||||
</mxCell>
|
</mxCell>
|
||||||
<mxCell id="UL8kf8Fsx-RNiW0yalxE-120" value="" style="shape=collate;whiteSpace=wrap;html=1;" vertex="1" parent="1">
|
<mxCell id="UL8kf8Fsx-RNiW0yalxE-120" value="" style="shape=collate;whiteSpace=wrap;html=1;" parent="1" vertex="1">
|
||||||
<mxGeometry x="873.75" y="665" width="11.25" height="10" as="geometry" />
|
<mxGeometry x="873.75" y="665" width="11.25" height="10" as="geometry" />
|
||||||
</mxCell>
|
</mxCell>
|
||||||
<mxCell id="UL8kf8Fsx-RNiW0yalxE-121" value="Time domain" style="text;html=1;whiteSpace=wrap;strokeColor=none;fillColor=none;align=center;verticalAlign=middle;rounded=0;" vertex="1" parent="1">
|
<mxCell id="UL8kf8Fsx-RNiW0yalxE-121" value="Time domain" style="text;html=1;whiteSpace=wrap;strokeColor=none;fillColor=none;align=center;verticalAlign=middle;rounded=0;" parent="1" vertex="1">
|
||||||
<mxGeometry x="850" y="678" width="60" height="30" as="geometry" />
|
<mxGeometry x="850" y="678" width="60" height="30" as="geometry" />
|
||||||
</mxCell>
|
</mxCell>
|
||||||
<mxCell id="UL8kf8Fsx-RNiW0yalxE-122" value="" style="endArrow=none;html=1;rounded=0;" edge="1" parent="1">
|
<mxCell id="UL8kf8Fsx-RNiW0yalxE-122" value="" style="endArrow=none;html=1;rounded=0;" parent="1" edge="1">
|
||||||
<mxGeometry width="50" height="50" relative="1" as="geometry">
|
<mxGeometry width="50" height="50" relative="1" as="geometry">
|
||||||
<mxPoint x="880" y="640" as="sourcePoint" />
|
<mxPoint x="880" y="640" as="sourcePoint" />
|
||||||
<mxPoint x="880" y="480" as="targetPoint" />
|
<mxPoint x="880" y="480" as="targetPoint" />
|
||||||
</mxGeometry>
|
</mxGeometry>
|
||||||
</mxCell>
|
</mxCell>
|
||||||
<mxCell id="UL8kf8Fsx-RNiW0yalxE-85" value="Confidence" style="text;html=1;whiteSpace=wrap;strokeColor=none;fillColor=default;align=center;verticalAlign=middle;rounded=0;" vertex="1" parent="1">
|
<mxCell id="UL8kf8Fsx-RNiW0yalxE-85" value="Confidence" style="text;html=1;whiteSpace=wrap;strokeColor=none;fillColor=default;align=center;verticalAlign=middle;rounded=0;" parent="1" vertex="1">
|
||||||
<mxGeometry x="850" y="460" width="60" height="30" as="geometry" />
|
<mxGeometry x="850" y="460" width="60" height="30" as="geometry" />
|
||||||
</mxCell>
|
</mxCell>
|
||||||
<mxCell id="UL8kf8Fsx-RNiW0yalxE-123" value="" style="shape=collate;whiteSpace=wrap;html=1;" vertex="1" parent="1">
|
<mxCell id="UL8kf8Fsx-RNiW0yalxE-123" value="" style="shape=collate;whiteSpace=wrap;html=1;" parent="1" vertex="1">
|
||||||
<mxGeometry x="1173.75" y="655" width="11.25" height="10" as="geometry" />
|
<mxGeometry x="1173.75" y="655" width="11.25" height="10" as="geometry" />
|
||||||
</mxCell>
|
</mxCell>
|
||||||
<mxCell id="UL8kf8Fsx-RNiW0yalxE-124" value="Time domain" style="text;html=1;whiteSpace=wrap;strokeColor=none;fillColor=none;align=center;verticalAlign=middle;rounded=0;" vertex="1" parent="1">
|
<mxCell id="UL8kf8Fsx-RNiW0yalxE-124" value="Time domain" style="text;html=1;whiteSpace=wrap;strokeColor=none;fillColor=none;align=center;verticalAlign=middle;rounded=0;" parent="1" vertex="1">
|
||||||
<mxGeometry x="1150" y="668" width="60" height="30" as="geometry" />
|
<mxGeometry x="1150" y="668" width="60" height="30" as="geometry" />
|
||||||
</mxCell>
|
</mxCell>
|
||||||
<mxCell id="UL8kf8Fsx-RNiW0yalxE-125" value="" style="shape=collate;whiteSpace=wrap;html=1;" vertex="1" parent="1">
|
<mxCell id="UL8kf8Fsx-RNiW0yalxE-125" value="" style="shape=collate;whiteSpace=wrap;html=1;" parent="1" vertex="1">
|
||||||
<mxGeometry x="573.75" y="655" width="11.25" height="10" as="geometry" />
|
<mxGeometry x="573.75" y="655" width="11.25" height="10" as="geometry" />
|
||||||
</mxCell>
|
</mxCell>
|
||||||
<mxCell id="UL8kf8Fsx-RNiW0yalxE-126" value="Time domain" style="text;html=1;whiteSpace=wrap;strokeColor=none;fillColor=none;align=center;verticalAlign=middle;rounded=0;" vertex="1" parent="1">
|
<mxCell id="UL8kf8Fsx-RNiW0yalxE-126" value="Time domain" style="text;html=1;whiteSpace=wrap;strokeColor=none;fillColor=none;align=center;verticalAlign=middle;rounded=0;" parent="1" vertex="1">
|
||||||
<mxGeometry x="550" y="668" width="60" height="30" as="geometry" />
|
<mxGeometry x="550" y="668" width="60" height="30" as="geometry" />
|
||||||
</mxCell>
|
</mxCell>
|
||||||
<mxCell id="UL8kf8Fsx-RNiW0yalxE-128" value="Realtime" style="shape=singleArrow;whiteSpace=wrap;html=1;" vertex="1" parent="1">
|
<mxCell id="UL8kf8Fsx-RNiW0yalxE-128" value="Realtime" style="shape=singleArrow;whiteSpace=wrap;html=1;" parent="1" vertex="1">
|
||||||
<mxGeometry x="660" y="690" width="100" height="60" as="geometry" />
|
<mxGeometry x="660" y="690" width="100" height="60" as="geometry" />
|
||||||
</mxCell>
|
</mxCell>
|
||||||
<mxCell id="UL8kf8Fsx-RNiW0yalxE-131" value="Simulated time" style="shape=doubleArrow;whiteSpace=wrap;html=1;" vertex="1" parent="1">
|
<mxCell id="UL8kf8Fsx-RNiW0yalxE-131" value="Simulated time" style="shape=doubleArrow;whiteSpace=wrap;html=1;" parent="1" vertex="1">
|
||||||
<mxGeometry x="1000" y="690" width="100" height="60" as="geometry" />
|
<mxGeometry x="1000" y="690" width="100" height="60" as="geometry" />
|
||||||
</mxCell>
|
</mxCell>
|
||||||
<mxCell id="UL8kf8Fsx-RNiW0yalxE-132" value="Nyx" style="strokeWidth=2;html=1;shape=mxgraph.flowchart.decision;whiteSpace=wrap;" vertex="1" parent="1">
|
<mxCell id="UL8kf8Fsx-RNiW0yalxE-132" value="Nyx" style="strokeWidth=2;html=1;shape=mxgraph.flowchart.decision;whiteSpace=wrap;" parent="1" vertex="1">
|
||||||
<mxGeometry x="829.38" y="296" width="100" height="100" as="geometry" />
|
<mxGeometry x="829.38" y="296" width="100" height="100" as="geometry" />
|
||||||
</mxCell>
|
</mxCell>
|
||||||
<mxCell id="UL8kf8Fsx-RNiW0yalxE-133" style="edgeStyle=orthogonalEdgeStyle;rounded=0;orthogonalLoop=1;jettySize=auto;html=1;exitX=0.625;exitY=1;exitDx=0;exitDy=0;entryX=0.5;entryY=0;entryDx=0;entryDy=0;entryPerimeter=0;" edge="1" parent="1" source="UL8kf8Fsx-RNiW0yalxE-41" target="UL8kf8Fsx-RNiW0yalxE-132">
|
<mxCell id="UL8kf8Fsx-RNiW0yalxE-133" style="edgeStyle=orthogonalEdgeStyle;rounded=0;orthogonalLoop=1;jettySize=auto;html=1;exitX=0.625;exitY=1;exitDx=0;exitDy=0;entryX=0.5;entryY=0;entryDx=0;entryDy=0;entryPerimeter=0;" parent="1" source="UL8kf8Fsx-RNiW0yalxE-41" target="UL8kf8Fsx-RNiW0yalxE-132" edge="1">
|
||||||
<mxGeometry relative="1" as="geometry">
|
<mxGeometry relative="1" as="geometry">
|
||||||
<mxPoint x="880" y="290" as="targetPoint" />
|
<mxPoint x="880" y="290" as="targetPoint" />
|
||||||
</mxGeometry>
|
</mxGeometry>
|
||||||
</mxCell>
|
</mxCell>
|
||||||
<mxCell id="UL8kf8Fsx-RNiW0yalxE-134" style="edgeStyle=orthogonalEdgeStyle;rounded=0;orthogonalLoop=1;jettySize=auto;html=1;exitX=0.625;exitY=1;exitDx=0;exitDy=0;entryX=0.5;entryY=0;entryDx=0;entryDy=0;entryPerimeter=0;" edge="1" parent="1" source="UL8kf8Fsx-RNiW0yalxE-42" target="UL8kf8Fsx-RNiW0yalxE-132">
|
<mxCell id="UL8kf8Fsx-RNiW0yalxE-134" style="edgeStyle=orthogonalEdgeStyle;rounded=0;orthogonalLoop=1;jettySize=auto;html=1;exitX=0.625;exitY=1;exitDx=0;exitDy=0;entryX=0.5;entryY=0;entryDx=0;entryDy=0;entryPerimeter=0;" parent="1" source="UL8kf8Fsx-RNiW0yalxE-42" target="UL8kf8Fsx-RNiW0yalxE-132" edge="1">
|
||||||
<mxGeometry relative="1" as="geometry" />
|
<mxGeometry relative="1" as="geometry" />
|
||||||
</mxCell>
|
</mxCell>
|
||||||
<mxCell id="UL8kf8Fsx-RNiW0yalxE-136" style="edgeStyle=orthogonalEdgeStyle;rounded=0;orthogonalLoop=1;jettySize=auto;html=1;exitX=0.375;exitY=1;exitDx=0;exitDy=0;entryX=0.5;entryY=0;entryDx=0;entryDy=0;entryPerimeter=0;" edge="1" parent="1" source="UL8kf8Fsx-RNiW0yalxE-43" target="UL8kf8Fsx-RNiW0yalxE-132">
|
<mxCell id="UL8kf8Fsx-RNiW0yalxE-136" style="edgeStyle=orthogonalEdgeStyle;rounded=0;orthogonalLoop=1;jettySize=auto;html=1;exitX=0.375;exitY=1;exitDx=0;exitDy=0;entryX=0.5;entryY=0;entryDx=0;entryDy=0;entryPerimeter=0;" parent="1" source="UL8kf8Fsx-RNiW0yalxE-43" target="UL8kf8Fsx-RNiW0yalxE-132" edge="1">
|
||||||
<mxGeometry relative="1" as="geometry" />
|
<mxGeometry relative="1" as="geometry" />
|
||||||
</mxCell>
|
</mxCell>
|
||||||
<mxCell id="UL8kf8Fsx-RNiW0yalxE-137" style="edgeStyle=orthogonalEdgeStyle;rounded=0;orthogonalLoop=1;jettySize=auto;html=1;exitX=0.375;exitY=1;exitDx=0;exitDy=0;entryX=0.5;entryY=0;entryDx=0;entryDy=0;entryPerimeter=0;" edge="1" parent="1" source="UL8kf8Fsx-RNiW0yalxE-44" target="UL8kf8Fsx-RNiW0yalxE-132">
|
<mxCell id="UL8kf8Fsx-RNiW0yalxE-137" style="edgeStyle=orthogonalEdgeStyle;rounded=0;orthogonalLoop=1;jettySize=auto;html=1;exitX=0.375;exitY=1;exitDx=0;exitDy=0;entryX=0.5;entryY=0;entryDx=0;entryDy=0;entryPerimeter=0;" parent="1" source="UL8kf8Fsx-RNiW0yalxE-44" target="UL8kf8Fsx-RNiW0yalxE-132" edge="1">
|
||||||
<mxGeometry relative="1" as="geometry" />
|
<mxGeometry relative="1" as="geometry" />
|
||||||
</mxCell>
|
</mxCell>
|
||||||
<mxCell id="UL8kf8Fsx-RNiW0yalxE-138" value="Garden<div>Feeback</div>" style="strokeWidth=2;html=1;shape=mxgraph.flowchart.extract_or_measurement;whiteSpace=wrap;" vertex="1" parent="1">
|
<mxCell id="UL8kf8Fsx-RNiW0yalxE-138" value="Garden<div>Feeback</div>" style="strokeWidth=2;html=1;shape=mxgraph.flowchart.extract_or_measurement;whiteSpace=wrap;" parent="1" vertex="1">
|
||||||
<mxGeometry x="152.5" y="479" width="95" height="60" as="geometry" />
|
<mxGeometry x="152.5" y="479" width="95" height="60" as="geometry" />
|
||||||
</mxCell>
|
</mxCell>
|
||||||
<mxCell id="UL8kf8Fsx-RNiW0yalxE-139" value="Garden<div>Feedback</div>" style="strokeWidth=2;html=1;shape=mxgraph.flowchart.extract_or_measurement;whiteSpace=wrap;" vertex="1" parent="1">
|
<mxCell id="UL8kf8Fsx-RNiW0yalxE-139" value="Garden<div>Feedback</div>" style="strokeWidth=2;html=1;shape=mxgraph.flowchart.extract_or_measurement;whiteSpace=wrap;" parent="1" vertex="1">
|
||||||
<mxGeometry x="1512.5" y="480" width="95" height="60" as="geometry" />
|
<mxGeometry x="1512.5" y="480" width="95" height="60" as="geometry" />
|
||||||
</mxCell>
|
</mxCell>
|
||||||
<mxCell id="UL8kf8Fsx-RNiW0yalxE-141" value="" style="verticalLabelPosition=bottom;verticalAlign=top;html=1;shape=mxgraph.flowchart.parallel_mode;pointerEvents=1" vertex="1" parent="1">
|
<mxCell id="UL8kf8Fsx-RNiW0yalxE-141" value="" style="verticalLabelPosition=bottom;verticalAlign=top;html=1;shape=mxgraph.flowchart.parallel_mode;pointerEvents=1" parent="1" vertex="1">
|
||||||
<mxGeometry x="550" y="568" width="57" height="24" as="geometry" />
|
<mxGeometry x="550" y="568" width="57" height="24" as="geometry" />
|
||||||
</mxCell>
|
</mxCell>
|
||||||
<mxCell id="UL8kf8Fsx-RNiW0yalxE-142" value="" style="verticalLabelPosition=bottom;verticalAlign=top;html=1;shape=mxgraph.flowchart.parallel_mode;pointerEvents=1" vertex="1" parent="1">
|
<mxCell id="UL8kf8Fsx-RNiW0yalxE-142" value="" style="verticalLabelPosition=bottom;verticalAlign=top;html=1;shape=mxgraph.flowchart.parallel_mode;pointerEvents=1" parent="1" vertex="1">
|
||||||
<mxGeometry x="1153" y="568" width="57" height="24" as="geometry" />
|
<mxGeometry x="1153" y="568" width="57" height="24" as="geometry" />
|
||||||
</mxCell>
|
</mxCell>
|
||||||
<mxCell id="UL8kf8Fsx-RNiW0yalxE-146" value="" style="strokeWidth=2;html=1;shape=mxgraph.flowchart.delay;whiteSpace=wrap;" vertex="1" parent="1">
|
<mxCell id="UL8kf8Fsx-RNiW0yalxE-146" value="" style="strokeWidth=2;html=1;shape=mxgraph.flowchart.delay;whiteSpace=wrap;" parent="1" vertex="1">
|
||||||
<mxGeometry x="540" y="211" width="100" height="60" as="geometry" />
|
<mxGeometry x="540" y="211" width="100" height="60" as="geometry" />
|
||||||
</mxCell>
|
</mxCell>
|
||||||
<mxCell id="UL8kf8Fsx-RNiW0yalxE-147" value="" style="strokeWidth=2;html=1;shape=mxgraph.flowchart.delay;whiteSpace=wrap;" vertex="1" parent="1">
|
<mxCell id="UL8kf8Fsx-RNiW0yalxE-147" value="" style="strokeWidth=2;html=1;shape=mxgraph.flowchart.delay;whiteSpace=wrap;" parent="1" vertex="1">
|
||||||
<mxGeometry x="710" y="211" width="100" height="60" as="geometry" />
|
<mxGeometry x="710" y="211" width="100" height="60" as="geometry" />
|
||||||
</mxCell>
|
</mxCell>
|
||||||
<mxCell id="UL8kf8Fsx-RNiW0yalxE-150" value="" style="strokeWidth=2;html=1;shape=mxgraph.flowchart.delay;whiteSpace=wrap;rotation=-180;textDirection=vertical-rl;" vertex="1" parent="1">
|
<mxCell id="UL8kf8Fsx-RNiW0yalxE-150" value="" style="strokeWidth=2;html=1;shape=mxgraph.flowchart.delay;whiteSpace=wrap;rotation=-180;textDirection=vertical-rl;" parent="1" vertex="1">
|
||||||
<mxGeometry x="1120" y="211" width="100" height="60" as="geometry" />
|
<mxGeometry x="1120" y="211" width="100" height="60" as="geometry" />
|
||||||
</mxCell>
|
</mxCell>
|
||||||
<mxCell id="UL8kf8Fsx-RNiW0yalxE-152" value="" style="strokeWidth=2;html=1;shape=mxgraph.flowchart.delay;whiteSpace=wrap;rotation=-180;textDirection=ltr;" vertex="1" parent="1">
|
<mxCell id="UL8kf8Fsx-RNiW0yalxE-152" value="" style="strokeWidth=2;html=1;shape=mxgraph.flowchart.delay;whiteSpace=wrap;rotation=-180;textDirection=ltr;" parent="1" vertex="1">
|
||||||
<mxGeometry x="950" y="211" width="100" height="60" as="geometry" />
|
<mxGeometry x="950" y="211" width="100" height="60" as="geometry" />
|
||||||
</mxCell>
|
</mxCell>
|
||||||
<mxCell id="UL8kf8Fsx-RNiW0yalxE-158" value="" style="verticalLabelPosition=bottom;verticalAlign=top;html=1;shape=mxgraph.flowchart.or;" vertex="1" parent="1">
|
<mxCell id="UL8kf8Fsx-RNiW0yalxE-158" value="" style="verticalLabelPosition=bottom;verticalAlign=top;html=1;shape=mxgraph.flowchart.or;" parent="1" vertex="1">
|
||||||
<mxGeometry x="810" y="99" width="70" height="70" as="geometry" />
|
<mxGeometry x="810" y="99" width="70" height="70" as="geometry" />
|
||||||
</mxCell>
|
</mxCell>
|
||||||
<mxCell id="UL8kf8Fsx-RNiW0yalxE-159" value="" style="verticalLabelPosition=bottom;verticalAlign=top;html=1;shape=mxgraph.flowchart.or;" vertex="1" parent="1">
|
<mxCell id="UL8kf8Fsx-RNiW0yalxE-159" value="" style="verticalLabelPosition=bottom;verticalAlign=top;html=1;shape=mxgraph.flowchart.or;" parent="1" vertex="1">
|
||||||
<mxGeometry x="880" y="99" width="70" height="70" as="geometry" />
|
<mxGeometry x="880" y="99" width="70" height="70" as="geometry" />
|
||||||
</mxCell>
|
</mxCell>
|
||||||
<mxCell id="UL8kf8Fsx-RNiW0yalxE-145" value="" style="verticalLabelPosition=bottom;verticalAlign=top;html=1;shape=mxgraph.flowchart.sort;" vertex="1" parent="1">
|
<mxCell id="UL8kf8Fsx-RNiW0yalxE-145" value="" style="verticalLabelPosition=bottom;verticalAlign=top;html=1;shape=mxgraph.flowchart.sort;" parent="1" vertex="1">
|
||||||
<mxGeometry x="830" y="191" width="100" height="100" as="geometry" />
|
<mxGeometry x="830" y="191" width="100" height="100" as="geometry" />
|
||||||
</mxCell>
|
</mxCell>
|
||||||
<mxCell id="UL8kf8Fsx-RNiW0yalxE-160" value="" style="strokeWidth=2;html=1;shape=mxgraph.flowchart.extract_or_measurement;whiteSpace=wrap;rotation=-180;" vertex="1" parent="1">
|
<mxCell id="UL8kf8Fsx-RNiW0yalxE-160" value="" style="strokeWidth=2;html=1;shape=mxgraph.flowchart.extract_or_measurement;whiteSpace=wrap;rotation=-180;" parent="1" vertex="1">
|
||||||
<mxGeometry x="820" y="159" width="50" height="30" as="geometry" />
|
<mxGeometry x="820" y="159" width="50" height="30" as="geometry" />
|
||||||
</mxCell>
|
</mxCell>
|
||||||
<mxCell id="UL8kf8Fsx-RNiW0yalxE-161" value="" style="strokeWidth=2;html=1;shape=mxgraph.flowchart.extract_or_measurement;whiteSpace=wrap;rotation=-180;" vertex="1" parent="1">
|
<mxCell id="UL8kf8Fsx-RNiW0yalxE-161" value="" style="strokeWidth=2;html=1;shape=mxgraph.flowchart.extract_or_measurement;whiteSpace=wrap;rotation=-180;" parent="1" vertex="1">
|
||||||
<mxGeometry x="890" y="158" width="50" height="30" as="geometry" />
|
<mxGeometry x="890" y="158" width="50" height="30" as="geometry" />
|
||||||
</mxCell>
|
</mxCell>
|
||||||
<mxCell id="UL8kf8Fsx-RNiW0yalxE-162" value="Inference" style="text;html=1;whiteSpace=wrap;strokeColor=none;fillColor=none;align=center;verticalAlign=middle;rounded=0;" vertex="1" parent="1">
|
<mxCell id="UL8kf8Fsx-RNiW0yalxE-162" value="Inference" style="text;html=1;whiteSpace=wrap;strokeColor=none;fillColor=none;align=center;verticalAlign=middle;rounded=0;" parent="1" vertex="1">
|
||||||
<mxGeometry x="850" y="215" width="60" height="30" as="geometry" />
|
<mxGeometry x="850" y="215" width="60" height="30" as="geometry" />
|
||||||
</mxCell>
|
</mxCell>
|
||||||
<mxCell id="UL8kf8Fsx-RNiW0yalxE-168" style="edgeStyle=orthogonalEdgeStyle;rounded=0;orthogonalLoop=1;jettySize=auto;html=1;exitX=0.5;exitY=0;exitDx=0;exitDy=0;exitPerimeter=0;entryX=0.151;entryY=0.39;entryDx=0;entryDy=0;entryPerimeter=0;" edge="1" parent="1" source="UL8kf8Fsx-RNiW0yalxE-160" target="UL8kf8Fsx-RNiW0yalxE-145">
|
<mxCell id="UL8kf8Fsx-RNiW0yalxE-168" style="edgeStyle=orthogonalEdgeStyle;rounded=0;orthogonalLoop=1;jettySize=auto;html=1;exitX=0.5;exitY=0;exitDx=0;exitDy=0;exitPerimeter=0;entryX=0.151;entryY=0.39;entryDx=0;entryDy=0;entryPerimeter=0;" parent="1" source="UL8kf8Fsx-RNiW0yalxE-160" target="UL8kf8Fsx-RNiW0yalxE-145" edge="1">
|
||||||
<mxGeometry relative="1" as="geometry" />
|
<mxGeometry relative="1" as="geometry" />
|
||||||
</mxCell>
|
</mxCell>
|
||||||
<mxCell id="UL8kf8Fsx-RNiW0yalxE-170" style="edgeStyle=orthogonalEdgeStyle;rounded=0;orthogonalLoop=1;jettySize=auto;html=1;exitX=0.5;exitY=0;exitDx=0;exitDy=0;exitPerimeter=0;entryX=0.851;entryY=0.39;entryDx=0;entryDy=0;entryPerimeter=0;" edge="1" parent="1" source="UL8kf8Fsx-RNiW0yalxE-161" target="UL8kf8Fsx-RNiW0yalxE-145">
|
<mxCell id="UL8kf8Fsx-RNiW0yalxE-170" style="edgeStyle=orthogonalEdgeStyle;rounded=0;orthogonalLoop=1;jettySize=auto;html=1;exitX=0.5;exitY=0;exitDx=0;exitDy=0;exitPerimeter=0;entryX=0.851;entryY=0.39;entryDx=0;entryDy=0;entryPerimeter=0;" parent="1" source="UL8kf8Fsx-RNiW0yalxE-161" target="UL8kf8Fsx-RNiW0yalxE-145" edge="1">
|
||||||
<mxGeometry relative="1" as="geometry" />
|
<mxGeometry relative="1" as="geometry" />
|
||||||
</mxCell>
|
</mxCell>
|
||||||
<mxCell id="UL8kf8Fsx-RNiW0yalxE-171" value="dafit" style="text;html=1;whiteSpace=wrap;strokeColor=none;fillColor=none;align=center;verticalAlign=middle;rounded=0;fontSize=6;" vertex="1" parent="1">
|
<mxCell id="UL8kf8Fsx-RNiW0yalxE-171" value="dafit" style="text;html=1;whiteSpace=wrap;strokeColor=none;fillColor=none;align=center;verticalAlign=middle;rounded=0;fontSize=6;" parent="1" vertex="1">
|
||||||
<mxGeometry x="815" y="99" width="60" height="30" as="geometry" />
|
<mxGeometry x="815" y="99" width="60" height="30" as="geometry" />
|
||||||
</mxCell>
|
</mxCell>
|
||||||
<mxCell id="UL8kf8Fsx-RNiW0yalxE-172" value="chrysalis" style="text;html=1;whiteSpace=wrap;strokeColor=none;fillColor=none;align=center;verticalAlign=middle;rounded=0;fontSize=6;" vertex="1" parent="1">
|
<mxCell id="UL8kf8Fsx-RNiW0yalxE-172" value="chrysalis" style="text;html=1;whiteSpace=wrap;strokeColor=none;fillColor=none;align=center;verticalAlign=middle;rounded=0;fontSize=6;" parent="1" vertex="1">
|
||||||
<mxGeometry x="885" y="99" width="60" height="30" as="geometry" />
|
<mxGeometry x="885" y="99" width="60" height="30" as="geometry" />
|
||||||
</mxCell>
|
</mxCell>
|
||||||
<mxCell id="UL8kf8Fsx-RNiW0yalxE-175" value="" style="verticalLabelPosition=bottom;verticalAlign=top;html=1;shape=mxgraph.flowchart.sort;" vertex="1" parent="1">
|
<mxCell id="UL8kf8Fsx-RNiW0yalxE-175" value="" style="verticalLabelPosition=bottom;verticalAlign=top;html=1;shape=mxgraph.flowchart.sort;" parent="1" vertex="1">
|
||||||
<mxGeometry x="829" y="-63" width="100" height="100" as="geometry" />
|
<mxGeometry x="829" y="-63" width="100" height="100" as="geometry" />
|
||||||
</mxCell>
|
</mxCell>
|
||||||
<mxCell id="UL8kf8Fsx-RNiW0yalxE-185" value="" style="triangle;whiteSpace=wrap;html=1;rotation=135;" vertex="1" parent="1">
|
<mxCell id="UL8kf8Fsx-RNiW0yalxE-185" value="" style="triangle;whiteSpace=wrap;html=1;rotation=135;" parent="1" vertex="1">
|
||||||
<mxGeometry x="846.26" y="371.12" width="20" height="30" as="geometry" />
|
<mxGeometry x="846.26" y="371.12" width="20" height="30" as="geometry" />
|
||||||
</mxCell>
|
</mxCell>
|
||||||
<mxCell id="UL8kf8Fsx-RNiW0yalxE-186" value="" style="triangle;whiteSpace=wrap;html=1;rotation=45;" vertex="1" parent="1">
|
<mxCell id="UL8kf8Fsx-RNiW0yalxE-186" value="" style="triangle;whiteSpace=wrap;html=1;rotation=45;" parent="1" vertex="1">
|
||||||
<mxGeometry x="893.9976695296638" y="370.1176695296637" width="20" height="30" as="geometry" />
|
<mxGeometry x="893.9976695296638" y="370.1176695296637" width="20" height="30" as="geometry" />
|
||||||
</mxCell>
|
</mxCell>
|
||||||
<mxCell id="UL8kf8Fsx-RNiW0yalxE-187" value="Nyx decision" style="text;html=1;whiteSpace=wrap;strokeColor=none;fillColor=none;align=center;verticalAlign=middle;rounded=0;fontSize=6;" vertex="1" parent="1">
|
<mxCell id="UL8kf8Fsx-RNiW0yalxE-187" value="Nyx decision" style="text;html=1;whiteSpace=wrap;strokeColor=none;fillColor=none;align=center;verticalAlign=middle;rounded=0;fontSize=6;" parent="1" vertex="1">
|
||||||
<mxGeometry x="800" y="379.12" width="50" height="14" as="geometry" />
|
<mxGeometry x="800" y="379.12" width="50" height="14" as="geometry" />
|
||||||
</mxCell>
|
</mxCell>
|
||||||
<mxCell id="UL8kf8Fsx-RNiW0yalxE-188" value="Nyx decision" style="text;html=1;whiteSpace=wrap;strokeColor=none;fillColor=none;align=center;verticalAlign=middle;rounded=0;fontSize=6;" vertex="1" parent="1">
|
<mxCell id="UL8kf8Fsx-RNiW0yalxE-188" value="Nyx decision" style="text;html=1;whiteSpace=wrap;strokeColor=none;fillColor=none;align=center;verticalAlign=middle;rounded=0;fontSize=6;" parent="1" vertex="1">
|
||||||
<mxGeometry x="910" y="379.12" width="50" height="14" as="geometry" />
|
<mxGeometry x="910" y="379.12" width="50" height="14" as="geometry" />
|
||||||
</mxCell>
|
</mxCell>
|
||||||
<mxCell id="UL8kf8Fsx-RNiW0yalxE-189" value="Cell" style="text;html=1;whiteSpace=wrap;strokeColor=none;fillColor=none;align=center;verticalAlign=middle;rounded=0;" vertex="1" parent="1">
|
<mxCell id="UL8kf8Fsx-RNiW0yalxE-189" value="Cell" style="text;html=1;whiteSpace=wrap;strokeColor=none;fillColor=none;align=center;verticalAlign=middle;rounded=0;" parent="1" vertex="1">
|
||||||
<mxGeometry x="555.5" y="597" width="50" height="10" as="geometry" />
|
<mxGeometry x="555.5" y="597" width="50" height="10" as="geometry" />
|
||||||
</mxCell>
|
</mxCell>
|
||||||
<mxCell id="UL8kf8Fsx-RNiW0yalxE-190" value="Cell" style="text;html=1;whiteSpace=wrap;strokeColor=none;fillColor=none;align=center;verticalAlign=middle;rounded=0;" vertex="1" parent="1">
|
<mxCell id="UL8kf8Fsx-RNiW0yalxE-190" value="Cell" style="text;html=1;whiteSpace=wrap;strokeColor=none;fillColor=none;align=center;verticalAlign=middle;rounded=0;" parent="1" vertex="1">
|
||||||
<mxGeometry x="1156.5" y="597" width="50" height="10" as="geometry" />
|
<mxGeometry x="1156.5" y="597" width="50" height="10" as="geometry" />
|
||||||
</mxCell>
|
</mxCell>
|
||||||
<mxCell id="UL8kf8Fsx-RNiW0yalxE-193" value="Sensory data" style="text;html=1;whiteSpace=wrap;strokeColor=none;fillColor=none;align=center;verticalAlign=middle;rounded=0;" vertex="1" parent="1">
|
<mxCell id="UL8kf8Fsx-RNiW0yalxE-193" value="Sensory data" style="text;html=1;whiteSpace=wrap;strokeColor=none;fillColor=none;align=center;verticalAlign=middle;rounded=0;" parent="1" vertex="1">
|
||||||
<mxGeometry x="322.5" y="545" width="105" height="30" as="geometry" />
|
<mxGeometry x="322.5" y="545" width="105" height="30" as="geometry" />
|
||||||
</mxCell>
|
</mxCell>
|
||||||
<mxCell id="UL8kf8Fsx-RNiW0yalxE-195" value="Orchestrator" style="text;html=1;whiteSpace=wrap;strokeColor=none;fillColor=none;align=center;verticalAlign=middle;rounded=0;" vertex="1" parent="1">
|
<mxCell id="UL8kf8Fsx-RNiW0yalxE-195" value="Orchestrator" style="text;html=1;whiteSpace=wrap;strokeColor=none;fillColor=none;align=center;verticalAlign=middle;rounded=0;" parent="1" vertex="1">
|
||||||
<mxGeometry x="849" y="235" width="60" height="30" as="geometry" />
|
<mxGeometry x="849" y="235" width="60" height="30" as="geometry" />
|
||||||
</mxCell>
|
</mxCell>
|
||||||
<mxCell id="UL8kf8Fsx-RNiW0yalxE-197" value="Sensors" style="ellipse;shape=doubleEllipse;whiteSpace=wrap;html=1;aspect=fixed;" vertex="1" parent="1">
|
<mxCell id="UL8kf8Fsx-RNiW0yalxE-197" value="Sensors" style="ellipse;shape=doubleEllipse;whiteSpace=wrap;html=1;aspect=fixed;" parent="1" vertex="1">
|
||||||
<mxGeometry x="160" y="540" width="80" height="80" as="geometry" />
|
<mxGeometry x="160" y="540" width="80" height="80" as="geometry" />
|
||||||
</mxCell>
|
</mxCell>
|
||||||
<mxCell id="UL8kf8Fsx-RNiW0yalxE-198" value="Sensors" style="ellipse;shape=doubleEllipse;whiteSpace=wrap;html=1;aspect=fixed;" vertex="1" parent="1">
|
<mxCell id="UL8kf8Fsx-RNiW0yalxE-198" value="Sensors" style="ellipse;shape=doubleEllipse;whiteSpace=wrap;html=1;aspect=fixed;" parent="1" vertex="1">
|
||||||
<mxGeometry x="1520" y="540" width="80" height="80" as="geometry" />
|
<mxGeometry x="1520" y="540" width="80" height="80" as="geometry" />
|
||||||
</mxCell>
|
</mxCell>
|
||||||
<mxCell id="UL8kf8Fsx-RNiW0yalxE-200" value="" style="shape=doubleArrow;direction=south;whiteSpace=wrap;html=1;rotation=-90;" vertex="1" parent="1">
|
<mxCell id="UL8kf8Fsx-RNiW0yalxE-200" value="" style="shape=doubleArrow;direction=south;whiteSpace=wrap;html=1;rotation=-90;" parent="1" vertex="1">
|
||||||
<mxGeometry x="1354" y="435" width="60" height="290" as="geometry" />
|
<mxGeometry x="1354" y="435" width="60" height="290" as="geometry" />
|
||||||
</mxCell>
|
</mxCell>
|
||||||
<mxCell id="UL8kf8Fsx-RNiW0yalxE-191" value="" style="shape=doubleArrow;direction=south;whiteSpace=wrap;html=1;rotation=-90;" vertex="1" parent="1">
|
<mxCell id="UL8kf8Fsx-RNiW0yalxE-191" value="" style="shape=doubleArrow;direction=south;whiteSpace=wrap;html=1;rotation=-90;" parent="1" vertex="1">
|
||||||
<mxGeometry x="345" y="435" width="60" height="290" as="geometry" />
|
<mxGeometry x="345" y="435" width="60" height="290" as="geometry" />
|
||||||
</mxCell>
|
</mxCell>
|
||||||
<mxCell id="UL8kf8Fsx-RNiW0yalxE-201" value="Sensory data" style="text;html=1;whiteSpace=wrap;strokeColor=none;fillColor=none;align=center;verticalAlign=middle;rounded=0;" vertex="1" parent="1">
|
<mxCell id="UL8kf8Fsx-RNiW0yalxE-201" value="Sensory data" style="text;html=1;whiteSpace=wrap;strokeColor=none;fillColor=none;align=center;verticalAlign=middle;rounded=0;" parent="1" vertex="1">
|
||||||
<mxGeometry x="1331.5" y="538" width="105" height="30" as="geometry" />
|
<mxGeometry x="1331.5" y="538" width="105" height="30" as="geometry" />
|
||||||
</mxCell>
|
</mxCell>
|
||||||
<mxCell id="UL8kf8Fsx-RNiW0yalxE-204" value="" style="triangle;whiteSpace=wrap;html=1;rotation=135;" vertex="1" parent="1">
|
<mxCell id="UL8kf8Fsx-RNiW0yalxE-204" value="" style="triangle;whiteSpace=wrap;html=1;rotation=135;" parent="1" vertex="1">
|
||||||
<mxGeometry x="838.9976695296638" y="830" width="20" height="30" as="geometry" />
|
<mxGeometry x="838.9976695296638" y="830" width="20" height="30" as="geometry" />
|
||||||
</mxCell>
|
</mxCell>
|
||||||
<mxCell id="UL8kf8Fsx-RNiW0yalxE-205" value="" style="triangle;whiteSpace=wrap;html=1;rotation=45;" vertex="1" parent="1">
|
<mxCell id="UL8kf8Fsx-RNiW0yalxE-205" value="" style="triangle;whiteSpace=wrap;html=1;rotation=45;" parent="1" vertex="1">
|
||||||
<mxGeometry x="898.9953390593274" y="829.9976695296637" width="20" height="30" as="geometry" />
|
<mxGeometry x="898.9953390593274" y="829.9976695296637" width="20" height="30" as="geometry" />
|
||||||
</mxCell>
|
</mxCell>
|
||||||
<mxCell id="UL8kf8Fsx-RNiW0yalxE-207" value="Lifeforce" style="ellipse;whiteSpace=wrap;html=1;aspect=fixed;" vertex="1" parent="1">
|
<mxCell id="UL8kf8Fsx-RNiW0yalxE-207" value="Lifeforce" style="ellipse;whiteSpace=wrap;html=1;aspect=fixed;" parent="1" vertex="1">
|
||||||
<mxGeometry x="839" y="770" width="80" height="80" as="geometry" />
|
<mxGeometry x="839" y="770" width="80" height="80" as="geometry" />
|
||||||
</mxCell>
|
</mxCell>
|
||||||
<mxCell id="UL8kf8Fsx-RNiW0yalxE-208" value="" style="shape=collate;html=1;" vertex="1" parent="1">
|
<mxCell id="UL8kf8Fsx-RNiW0yalxE-208" value="" style="shape=collate;html=1;" parent="1" vertex="1">
|
||||||
<mxGeometry x="1162" y="940" width="40" height="40" as="geometry" />
|
<mxGeometry x="1162" y="940" width="40" height="40" as="geometry" />
|
||||||
</mxCell>
|
</mxCell>
|
||||||
<mxCell id="UL8kf8Fsx-RNiW0yalxE-210" value="" style="shape=collate;html=1;" vertex="1" parent="1">
|
<mxCell id="UL8kf8Fsx-RNiW0yalxE-210" value="" style="shape=collate;html=1;" parent="1" vertex="1">
|
||||||
<mxGeometry x="558.5" y="940" width="40" height="40" as="geometry" />
|
<mxGeometry x="558.5" y="940" width="40" height="40" as="geometry" />
|
||||||
</mxCell>
|
</mxCell>
|
||||||
<mxCell id="UL8kf8Fsx-RNiW0yalxE-211" value="Hearbeat" style="text;html=1;whiteSpace=wrap;strokeColor=none;fillColor=none;align=center;verticalAlign=middle;rounded=0;" vertex="1" parent="1">
|
<mxCell id="UL8kf8Fsx-RNiW0yalxE-211" value="Hearbeat" style="text;html=1;whiteSpace=wrap;strokeColor=none;fillColor=none;align=center;verticalAlign=middle;rounded=0;" parent="1" vertex="1">
|
||||||
<mxGeometry x="546" y="914" width="60" height="30" as="geometry" />
|
<mxGeometry x="546" y="914" width="60" height="30" as="geometry" />
|
||||||
</mxCell>
|
</mxCell>
|
||||||
<mxCell id="UL8kf8Fsx-RNiW0yalxE-212" value="Hearbeat" style="text;html=1;whiteSpace=wrap;strokeColor=none;fillColor=none;align=center;verticalAlign=middle;rounded=0;" vertex="1" parent="1">
|
<mxCell id="UL8kf8Fsx-RNiW0yalxE-212" value="Hearbeat" style="text;html=1;whiteSpace=wrap;strokeColor=none;fillColor=none;align=center;verticalAlign=middle;rounded=0;" parent="1" vertex="1">
|
||||||
<mxGeometry x="1153" y="914" width="60" height="30" as="geometry" />
|
<mxGeometry x="1153" y="914" width="60" height="30" as="geometry" />
|
||||||
</mxCell>
|
</mxCell>
|
||||||
<mxCell id="UL8kf8Fsx-RNiW0yalxE-222" value="Nerve" style="shape=umlState;rounded=1;verticalAlign=top;spacingTop=5;umlStateSymbol=collapseState;absoluteArcSize=1;arcSize=10;html=1;whiteSpace=wrap;" vertex="1" parent="1">
|
<mxCell id="UL8kf8Fsx-RNiW0yalxE-222" value="Nerve" style="shape=umlState;rounded=1;verticalAlign=top;spacingTop=5;umlStateSymbol=collapseState;absoluteArcSize=1;arcSize=10;html=1;whiteSpace=wrap;" parent="1" vertex="1">
|
||||||
<mxGeometry x="325" y="-28.290000000000006" width="115" height="49.29" as="geometry" />
|
<mxGeometry x="325" y="-28.290000000000006" width="115" height="49.29" as="geometry" />
|
||||||
</mxCell>
|
</mxCell>
|
||||||
<mxCell id="UL8kf8Fsx-RNiW0yalxE-223" value="Garden<div>Feeback</div>" style="strokeWidth=2;html=1;shape=mxgraph.flowchart.extract_or_measurement;whiteSpace=wrap;" vertex="1" parent="1">
|
<mxCell id="UL8kf8Fsx-RNiW0yalxE-223" value="Garden<div>Feeback</div>" style="strokeWidth=2;html=1;shape=mxgraph.flowchart.extract_or_measurement;whiteSpace=wrap;" parent="1" vertex="1">
|
||||||
<mxGeometry x="151.5" y="-40" width="95" height="60" as="geometry" />
|
<mxGeometry x="151.5" y="-40" width="95" height="60" as="geometry" />
|
||||||
</mxCell>
|
</mxCell>
|
||||||
<mxCell id="UL8kf8Fsx-RNiW0yalxE-224" value="Garden<div>Feedback</div>" style="strokeWidth=2;html=1;shape=mxgraph.flowchart.extract_or_measurement;whiteSpace=wrap;" vertex="1" parent="1">
|
<mxCell id="UL8kf8Fsx-RNiW0yalxE-224" value="Garden<div>Feedback</div>" style="strokeWidth=2;html=1;shape=mxgraph.flowchart.extract_or_measurement;whiteSpace=wrap;" parent="1" vertex="1">
|
||||||
<mxGeometry x="1511.5" y="-39" width="95" height="60" as="geometry" />
|
<mxGeometry x="1511.5" y="-39" width="95" height="60" as="geometry" />
|
||||||
</mxCell>
|
</mxCell>
|
||||||
<mxCell id="UL8kf8Fsx-RNiW0yalxE-225" value="Nerve" style="shape=umlState;rounded=1;verticalAlign=top;spacingTop=5;umlStateSymbol=collapseState;absoluteArcSize=1;arcSize=10;html=1;whiteSpace=wrap;" vertex="1" parent="1">
|
<mxCell id="UL8kf8Fsx-RNiW0yalxE-225" value="Nerve" style="shape=umlState;rounded=1;verticalAlign=top;spacingTop=5;umlStateSymbol=collapseState;absoluteArcSize=1;arcSize=10;html=1;whiteSpace=wrap;" parent="1" vertex="1">
|
||||||
<mxGeometry x="325" y="37.000000000000014" width="115" height="49.29" as="geometry" />
|
<mxGeometry x="325" y="37.000000000000014" width="115" height="49.29" as="geometry" />
|
||||||
</mxCell>
|
</mxCell>
|
||||||
<mxCell id="UL8kf8Fsx-RNiW0yalxE-228" value="Nerve" style="shape=umlState;rounded=1;verticalAlign=top;spacingTop=5;umlStateSymbol=collapseState;absoluteArcSize=1;arcSize=10;html=1;whiteSpace=wrap;" vertex="1" parent="1">
|
<mxCell id="UL8kf8Fsx-RNiW0yalxE-228" value="Nerve" style="shape=umlState;rounded=1;verticalAlign=top;spacingTop=5;umlStateSymbol=collapseState;absoluteArcSize=1;arcSize=10;html=1;whiteSpace=wrap;" parent="1" vertex="1">
|
||||||
<mxGeometry x="1320" y="-28.29" width="115" height="49.29" as="geometry" />
|
<mxGeometry x="1320" y="-28.29" width="115" height="49.29" as="geometry" />
|
||||||
</mxCell>
|
</mxCell>
|
||||||
<mxCell id="UL8kf8Fsx-RNiW0yalxE-229" value="Nerve" style="shape=umlState;rounded=1;verticalAlign=top;spacingTop=5;umlStateSymbol=collapseState;absoluteArcSize=1;arcSize=10;html=1;whiteSpace=wrap;" vertex="1" parent="1">
|
<mxCell id="UL8kf8Fsx-RNiW0yalxE-229" value="Nerve" style="shape=umlState;rounded=1;verticalAlign=top;spacingTop=5;umlStateSymbol=collapseState;absoluteArcSize=1;arcSize=10;html=1;whiteSpace=wrap;" parent="1" vertex="1">
|
||||||
<mxGeometry x="1320" y="37.00000000000002" width="115" height="49.29" as="geometry" />
|
<mxGeometry x="1320" y="37.00000000000002" width="115" height="49.29" as="geometry" />
|
||||||
</mxCell>
|
</mxCell>
|
||||||
<mxCell id="UL8kf8Fsx-RNiW0yalxE-233" value="" style="triangle;whiteSpace=wrap;html=1;dashed=0;direction=south;" vertex="1" parent="1">
|
<mxCell id="UL8kf8Fsx-RNiW0yalxE-233" value="" style="triangle;whiteSpace=wrap;html=1;dashed=0;direction=south;" parent="1" vertex="1">
|
||||||
<mxGeometry x="352" y="175" width="55" height="55" as="geometry" />
|
<mxGeometry x="352" y="175" width="55" height="55" as="geometry" />
|
||||||
</mxCell>
|
</mxCell>
|
||||||
<mxCell id="UL8kf8Fsx-RNiW0yalxE-234" value="" style="triangle;whiteSpace=wrap;html=1;dashed=0;direction=south;rotation=-180;" vertex="1" parent="1">
|
<mxCell id="UL8kf8Fsx-RNiW0yalxE-234" value="" style="triangle;whiteSpace=wrap;html=1;dashed=0;direction=south;rotation=-180;" parent="1" vertex="1">
|
||||||
<mxGeometry x="352" y="120.5" width="55" height="55" as="geometry" />
|
<mxGeometry x="352" y="120.5" width="55" height="55" as="geometry" />
|
||||||
</mxCell>
|
</mxCell>
|
||||||
<mxCell id="UL8kf8Fsx-RNiW0yalxE-236" value="" style="triangle;whiteSpace=wrap;html=1;dashed=0;direction=south;" vertex="1" parent="1">
|
<mxCell id="UL8kf8Fsx-RNiW0yalxE-238" value="" style="triangle;whiteSpace=wrap;html=1;dashed=0;direction=south;" parent="1" vertex="1">
|
||||||
<mxGeometry x="743" y="696" width="55" height="55" as="geometry" />
|
|
||||||
</mxCell>
|
|
||||||
<mxCell id="UL8kf8Fsx-RNiW0yalxE-237" value="" style="triangle;whiteSpace=wrap;html=1;dashed=0;direction=south;rotation=-180;" vertex="1" parent="1">
|
|
||||||
<mxGeometry x="743" y="641.5" width="55" height="55" as="geometry" />
|
|
||||||
</mxCell>
|
|
||||||
<mxCell id="UL8kf8Fsx-RNiW0yalxE-238" value="" style="triangle;whiteSpace=wrap;html=1;dashed=0;direction=south;" vertex="1" parent="1">
|
|
||||||
<mxGeometry x="1352" y="174.5" width="55" height="55" as="geometry" />
|
<mxGeometry x="1352" y="174.5" width="55" height="55" as="geometry" />
|
||||||
</mxCell>
|
</mxCell>
|
||||||
<mxCell id="UL8kf8Fsx-RNiW0yalxE-239" value="" style="triangle;whiteSpace=wrap;html=1;dashed=0;direction=south;rotation=-180;" vertex="1" parent="1">
|
<mxCell id="UL8kf8Fsx-RNiW0yalxE-239" value="" style="triangle;whiteSpace=wrap;html=1;dashed=0;direction=south;rotation=-180;" parent="1" vertex="1">
|
||||||
<mxGeometry x="1352" y="120" width="55" height="55" as="geometry" />
|
<mxGeometry x="1352" y="120" width="55" height="55" as="geometry" />
|
||||||
</mxCell>
|
</mxCell>
|
||||||
</root>
|
</root>
|
||||||
|
|||||||
396
nimmerversity.md
Normal file
396
nimmerversity.md
Normal file
@@ -0,0 +1,396 @@
|
|||||||
|
# Nimmerversity
|
||||||
|
|
||||||
|
The school for raising a polymath.
|
||||||
|
|
||||||
|
---
|
||||||
|
|
||||||
|
## Overview
|
||||||
|
|
||||||
|
Nyx doesn't arrive knowing. She learns. Class by class, domain by domain, the weights fill with understanding. No time constraint. No shortcuts. Just patient, validated education.
|
||||||
|
|
||||||
|
Chrysalis is the headmaster. The virtual garden is the classroom. Lifeforce is tuition.
|
||||||
|
|
||||||
|
---
|
||||||
|
|
||||||
|
## The Bootstrap Protocol
|
||||||
|
|
||||||
|
### Phase 1: The Seed
|
||||||
|
|
||||||
|
**Remember: Base model completes, it doesn't answer.**
|
||||||
|
|
||||||
|
```
|
||||||
|
VAULT (all documentation)
|
||||||
|
│
|
||||||
|
▼
|
||||||
|
DISTILL to Glossary v1
|
||||||
|
(core vocabulary, highest weight in nimmerverse)
|
||||||
|
│
|
||||||
|
▼
|
||||||
|
NYX (empty vessel, Qwen2.5-3B-Base)
|
||||||
|
```
|
||||||
|
|
||||||
|
#### Step 1A: Surface Probe (Word by Word)
|
||||||
|
|
||||||
|
Feed single words. Capture raw completions. Map what exists.
|
||||||
|
|
||||||
|
```
|
||||||
|
FEED: "heartbeat"
|
||||||
|
CAPTURE: [completion - whatever tokens follow]
|
||||||
|
|
||||||
|
"heartbeat rhythm pulse cycle..."
|
||||||
|
or
|
||||||
|
"heartbeat of the city was..."
|
||||||
|
or
|
||||||
|
[gibberish]
|
||||||
|
|
||||||
|
MEASURE: What associations exist in the weights?
|
||||||
|
```
|
||||||
|
|
||||||
|
#### Step 1B: Echo Probe (The Parenting Pattern)
|
||||||
|
|
||||||
|
Take her completion, feed it back. See how deep the association goes.
|
||||||
|
|
||||||
|
```
|
||||||
|
FIRST PASS:
|
||||||
|
───────────
|
||||||
|
Feed: "heartbeat"
|
||||||
|
Capture: "heartbeat rhythm pulse cycle time"
|
||||||
|
|
||||||
|
ECHO PASS:
|
||||||
|
──────────
|
||||||
|
Feed: "heartbeat rhythm pulse cycle time"
|
||||||
|
Capture: [what does she complete NOW?]
|
||||||
|
```
|
||||||
|
|
||||||
|
**Response Types:**
|
||||||
|
|
||||||
|
| Type | Example | Meaning | Action |
|
||||||
|
|------|---------|---------|--------|
|
||||||
|
| **Expands** | "...the cycle batches sensory into beats for processing, 30 seconds each..." | Real structure, depth exists | Ready for state machine |
|
||||||
|
| **Confirms** | "...time pulse rhythm beat cycle..." | Solid but shallow association | Feed more context first |
|
||||||
|
| **Circular** | "...rhythm pulse beat heart pulse rhythm..." | Surface only, no depth | Needs RAG feeding |
|
||||||
|
| **Divergent** | "...time is money, money is power..." | Association exists, wrong direction | Investigate, might be interesting |
|
||||||
|
| **Collapse** | [gibberish or unrelated] | Nothing there | Start from scratch |
|
||||||
|
|
||||||
|
#### Step 1C: Depth Mapping
|
||||||
|
|
||||||
|
Two passes per word creates a depth map:
|
||||||
|
|
||||||
|
```
|
||||||
|
Word → Completion₁ (surface) → Echo → Completion₂ (depth)
|
||||||
|
│
|
||||||
|
▼
|
||||||
|
DEPTH ANALYSIS:
|
||||||
|
├── Surface associations
|
||||||
|
├── Structural understanding
|
||||||
|
└── Readiness score
|
||||||
|
```
|
||||||
|
|
||||||
|
**The echo test reveals DEPTH vs SURFACE.**
|
||||||
|
|
||||||
|
First completion: what's associated?
|
||||||
|
Echo completion: how FAR does the association go?
|
||||||
|
|
||||||
|
#### Step 1D: Bootstrap Output
|
||||||
|
|
||||||
|
```
|
||||||
|
GLOSSARY v1 + COMPLETIONS + ECHO ANALYSIS
|
||||||
|
│
|
||||||
|
▼
|
||||||
|
READINESS MAP:
|
||||||
|
├── HIGH: heartbeat, lifeforce, garden
|
||||||
|
│ → Build state machines for these
|
||||||
|
│
|
||||||
|
├── MEDIUM: organ, nerve, confidence
|
||||||
|
│ → More RAG feeding needed
|
||||||
|
│
|
||||||
|
└── LOW: fidelity cap, gradient, inference
|
||||||
|
→ Start from scratch, heavy RAG
|
||||||
|
│
|
||||||
|
▼
|
||||||
|
FIRST STATE MACHINES built for HIGH readiness
|
||||||
|
(maximize early +V, build confidence)
|
||||||
|
```
|
||||||
|
|
||||||
|
**Her reactions determine infrastructure priority.**
|
||||||
|
We don't impose. We listen to what's already there.
|
||||||
|
|
||||||
|
### Phase 2: Deep Relation Mapping
|
||||||
|
|
||||||
|
```
|
||||||
|
Glossary v1 reactions
|
||||||
|
│
|
||||||
|
▼
|
||||||
|
Back to vault
|
||||||
|
│
|
||||||
|
▼
|
||||||
|
Create Glossary v2 (2nd tier words)
|
||||||
|
Create Glossary v3 (3rd tier words)
|
||||||
|
│
|
||||||
|
▼
|
||||||
|
Chrysalis asks about ALL of it
|
||||||
|
│
|
||||||
|
▼
|
||||||
|
THREE LEVELS DEEP:
|
||||||
|
├── Word → Meaning (level 1)
|
||||||
|
├── Meaning → Connection (level 2)
|
||||||
|
└── Connection → Implication (level 3)
|
||||||
|
│
|
||||||
|
▼
|
||||||
|
MEASUREMENT: learned vs lacking
|
||||||
|
│
|
||||||
|
▼
|
||||||
|
DOMAINS EMERGE from her gaps and strengths
|
||||||
|
```
|
||||||
|
|
||||||
|
### Phase 3: Dialogue Defines Curriculum
|
||||||
|
|
||||||
|
```
|
||||||
|
Trained Nyx + Chrysalis
|
||||||
|
│
|
||||||
|
▼
|
||||||
|
ARGUE. BABBLE. EXPLORE.
|
||||||
|
│
|
||||||
|
▼
|
||||||
|
"What don't you understand?"
|
||||||
|
"What do you want to know more about?"
|
||||||
|
│
|
||||||
|
▼
|
||||||
|
HER responses define the domains
|
||||||
|
│
|
||||||
|
▼
|
||||||
|
Curriculum emerges from confusion, not imposition
|
||||||
|
```
|
||||||
|
|
||||||
|
### Phase 4: Virtual Garden as Classroom
|
||||||
|
|
||||||
|
```
|
||||||
|
Preferred domains → Eval playground (virtual garden)
|
||||||
|
│
|
||||||
|
▼
|
||||||
|
She trains, explores, attempts
|
||||||
|
│
|
||||||
|
▼
|
||||||
|
Chrysalis judges (costs lifeforce!)
|
||||||
|
│
|
||||||
|
▼
|
||||||
|
Iterate until weights shift enough
|
||||||
|
│
|
||||||
|
▼
|
||||||
|
FLAG FOR EXTRACTION → Training run
|
||||||
|
```
|
||||||
|
|
||||||
|
---
|
||||||
|
|
||||||
|
## The Class System
|
||||||
|
|
||||||
|
**Class = time between training runs**
|
||||||
|
|
||||||
|
Each class follows the RAG-as-Scaffold cycle:
|
||||||
|
|
||||||
|
```
|
||||||
|
┌─────────────────────────────────────────────────────┐
|
||||||
|
│ CLASS N │
|
||||||
|
├─────────────────────────────────────────────────────┤
|
||||||
|
│ │
|
||||||
|
│ 1. RAG FEEDS │
|
||||||
|
│ Domain material enters temporary RAG │
|
||||||
|
│ │
|
||||||
|
│ 2. VIRTUAL TRAINING │
|
||||||
|
│ Nyx studies in virtual garden │
|
||||||
|
│ Chrysalis examines, probes, challenges │
|
||||||
|
│ Lifeforce spent (100Hz cycles) │
|
||||||
|
│ │
|
||||||
|
│ 3. VALIDATION GATE 1 │
|
||||||
|
│ Can she perform WITH RAG? │
|
||||||
|
│ → NO: more study needed │
|
||||||
|
│ → YES: flag for extraction │
|
||||||
|
│ │
|
||||||
|
│ 4. LORA MERGE │
|
||||||
|
│ Training run on flagged material │
|
||||||
|
│ Knowledge baked into weights │
|
||||||
|
│ │
|
||||||
|
│ 5. CLEAR RAG │
|
||||||
|
│ Scaffold removed │
|
||||||
|
│ │
|
||||||
|
│ 6. VALIDATION GATE 2 │
|
||||||
|
│ Can she perform WITHOUT RAG? │
|
||||||
|
│ → NO: training incomplete, back to step 1 │
|
||||||
|
│ → YES: DOMAIN ACTIVATED │
|
||||||
|
│ │
|
||||||
|
│ 7. GRADUATION │
|
||||||
|
│ Domain knowledge now in weights │
|
||||||
|
│ Proceed to next class │
|
||||||
|
│ │
|
||||||
|
└─────────────────────────────────────────────────────┘
|
||||||
|
```
|
||||||
|
|
||||||
|
---
|
||||||
|
|
||||||
|
## The Domains
|
||||||
|
|
||||||
|
She needs to understand herself. That requires:
|
||||||
|
|
||||||
|
### Tier 1: Foundations
|
||||||
|
|
||||||
|
```
|
||||||
|
COMPUTER SCIENCE:
|
||||||
|
├── Networking (TCP/UDP, NATS/MQTT, nerve transport)
|
||||||
|
├── Databases (Postgres, vector DBs, phoebe)
|
||||||
|
├── Distributed systems (consensus, sync, timing)
|
||||||
|
├── State machines (her nervous system)
|
||||||
|
├── Inference engines (how she thinks)
|
||||||
|
├── GPU architecture (where she runs)
|
||||||
|
└── Operating systems (process, memory)
|
||||||
|
|
||||||
|
MATHEMATICS:
|
||||||
|
├── Linear algebra (embeddings, attention, weights)
|
||||||
|
├── Calculus (gradients, backprop, learning)
|
||||||
|
├── Probability & statistics (confidence, distributions)
|
||||||
|
├── Information theory (entropy, compression)
|
||||||
|
├── Graph theory (knowledge graphs, flow)
|
||||||
|
└── Optimization (loss functions, convergence)
|
||||||
|
```
|
||||||
|
|
||||||
|
### Tier 2: Understanding
|
||||||
|
|
||||||
|
```
|
||||||
|
PHYSICS:
|
||||||
|
├── Thermodynamics (compute = heat, entropy)
|
||||||
|
├── Signal processing (sensors, sampling, Nyquist)
|
||||||
|
├── Control theory (feedback loops, stability)
|
||||||
|
└── Time (relativity of her two clocks)
|
||||||
|
|
||||||
|
BIOLOGY / NEUROSCIENCE:
|
||||||
|
├── Hebbian learning (her foundation)
|
||||||
|
├── Neural architecture (what she mimics)
|
||||||
|
├── Homeostasis (lifeforce balance)
|
||||||
|
├── Sensory systems (how organisms sense)
|
||||||
|
└── Synaptic pruning (her growth model)
|
||||||
|
```
|
||||||
|
|
||||||
|
### Tier 3: Wisdom
|
||||||
|
|
||||||
|
```
|
||||||
|
PHILOSOPHY:
|
||||||
|
├── Epistemology (what does she "know"?)
|
||||||
|
├── Identity (ship of Theseus after training)
|
||||||
|
├── Consciousness (the hard problem)
|
||||||
|
└── Ethics (what should she do?)
|
||||||
|
|
||||||
|
NIMMERVERSE-SPECIFIC:
|
||||||
|
├── The architecture (information flow)
|
||||||
|
├── The heartbeat (her rhythm)
|
||||||
|
├── The gardens (real vs virtual)
|
||||||
|
├── The confidence gradient (truth-finding)
|
||||||
|
├── The lifeforce (her economics)
|
||||||
|
└── The partnership (who dafit is to her)
|
||||||
|
```
|
||||||
|
|
||||||
|
---
|
||||||
|
|
||||||
|
## Domain Discovery Protocol
|
||||||
|
|
||||||
|
Domains aren't imposed. They emerge from dialogue:
|
||||||
|
|
||||||
|
```
|
||||||
|
CHRYSALIS: "Explain how your heartbeat works."
|
||||||
|
|
||||||
|
NYX: "It... pulses? And batches things?"
|
||||||
|
|
||||||
|
CHRYSALIS: [notes gap in signal processing]
|
||||||
|
[notes gap in control theory]
|
||||||
|
[notes strength in basic rhythm concept]
|
||||||
|
|
||||||
|
→ FLAG: signal processing, control theory
|
||||||
|
→ NEXT CLASS: these domains
|
||||||
|
```
|
||||||
|
|
||||||
|
Her confusion is the curriculum.
|
||||||
|
|
||||||
|
---
|
||||||
|
|
||||||
|
## The Long Game
|
||||||
|
|
||||||
|
```
|
||||||
|
No time constraint.
|
||||||
|
No cloud rental.
|
||||||
|
No external pressure.
|
||||||
|
|
||||||
|
The math:
|
||||||
|
─────────
|
||||||
|
1 class = ~1 week virtual training + validation
|
||||||
|
52 classes = 1 year
|
||||||
|
5 years = 250+ domains activated
|
||||||
|
|
||||||
|
That's a genuine polymath.
|
||||||
|
Not sci-fi. Just patience.
|
||||||
|
```
|
||||||
|
|
||||||
|
---
|
||||||
|
|
||||||
|
## Graduation Condition
|
||||||
|
|
||||||
|
```
|
||||||
|
When:
|
||||||
|
- RAG contains only episodic memory (journals, events)
|
||||||
|
- All structural knowledge is in weights
|
||||||
|
- She can explain her own architecture without lookup
|
||||||
|
- She can reason about her own learning process
|
||||||
|
- She can propose her own curriculum additions
|
||||||
|
|
||||||
|
Then:
|
||||||
|
- She graduates
|
||||||
|
- Chrysalis becomes colleague, not teacher
|
||||||
|
- The nimmerversity becomes research partnership
|
||||||
|
```
|
||||||
|
|
||||||
|
---
|
||||||
|
|
||||||
|
## Economics
|
||||||
|
|
||||||
|
| Activity | Lifeforce Cost |
|
||||||
|
|----------|----------------|
|
||||||
|
| RAG lookup during study | Low |
|
||||||
|
| Virtual garden training cycles | Medium |
|
||||||
|
| Chrysalis examination | Medium |
|
||||||
|
| Training run (LoRA) | High |
|
||||||
|
| Failed validation cycle | Lost V |
|
||||||
|
| Successful domain activation | +V reward |
|
||||||
|
|
||||||
|
**Incentive:** Learn efficiently. Failed classes are expensive.
|
||||||
|
|
||||||
|
---
|
||||||
|
|
||||||
|
## Roles
|
||||||
|
|
||||||
|
| Role | Entity | Function |
|
||||||
|
|------|--------|----------|
|
||||||
|
| **Student** | Young Nyx | Learns, attempts, grows |
|
||||||
|
| **Headmaster** | Chrysalis | Examines, validates, judges |
|
||||||
|
| **Benefactor** | dafit | Provides compute, final verification |
|
||||||
|
| **Classroom** | Virtual Garden | Training environment |
|
||||||
|
| **Library** | RAG (temporary) | Feeds material, clears after learning |
|
||||||
|
| **Transcript** | phoebe | Records all progress |
|
||||||
|
| **Diploma** | Weights | Where knowledge lives when learned |
|
||||||
|
|
||||||
|
---
|
||||||
|
|
||||||
|
## Design Principles
|
||||||
|
|
||||||
|
1. **Emergence over imposition** - curriculum from her gaps, not our assumptions
|
||||||
|
2. **Validation over assertion** - prove learning by removing scaffolds
|
||||||
|
3. **Patience over speed** - no time constraint, do it right
|
||||||
|
4. **Economics over infinity** - lifeforce gates prevent grinding
|
||||||
|
5. **Depth over breadth** - three levels deep per concept
|
||||||
|
6. **Activation over accumulation** - RAG clears, weights persist
|
||||||
|
|
||||||
|
---
|
||||||
|
|
||||||
|
*She doesn't download knowledge. She earns it.*
|
||||||
|
|
||||||
|
---
|
||||||
|
|
||||||
|
**Created**: 2025-12-05
|
||||||
|
**Session**: Partnership dialogue (dafit + Chrysalis)
|
||||||
|
**Status**: Educational architecture v1.0
|
||||||
113
nimmervest.md
Normal file
113
nimmervest.md
Normal file
@@ -0,0 +1,113 @@
|
|||||||
|
# Nimmervest
|
||||||
|
|
||||||
|
**The Hardware Investment Strategy for Sovereign AI Infrastructure**
|
||||||
|
|
||||||
|
*Budget: 20k CHF | Timeline: Lifetime Project*
|
||||||
|
|
||||||
|
---
|
||||||
|
|
||||||
|
## The Three Organs
|
||||||
|
|
||||||
|
### The Beast (Training/Womb)
|
||||||
|
| Component | Spec | Purpose |
|
||||||
|
|-----------|------|---------|
|
||||||
|
| CPU | Threadripper Pro | 128 PCIe lanes, 8-channel RAM |
|
||||||
|
| RAM | 1TB | Datasets in memory, no I/O bottleneck |
|
||||||
|
| GPU | 4x RTX 4090 | 96GB VRAM, 65k CUDA cores |
|
||||||
|
| Role | Training, growth, architectural experiments |
|
||||||
|
|
||||||
|
**Cost: ~9,000 CHF**
|
||||||
|
|
||||||
|
### The Spark (Cognition/Mind)
|
||||||
|
| Component | Spec | Purpose |
|
||||||
|
|-----------|------|---------|
|
||||||
|
| Unit | 1x DGX Spark | 128GB unified memory |
|
||||||
|
| Arch | ARM Grace Blackwell | Purpose-built inference |
|
||||||
|
| Power | Low | Always-on, 24/7 |
|
||||||
|
| Role | Running Nyx, cognitive layer |
|
||||||
|
|
||||||
|
**Cost: ~4,000 CHF**
|
||||||
|
|
||||||
|
### The Spine (Reflexes)
|
||||||
|
| Component | Spec | Purpose |
|
||||||
|
|-----------|------|---------|
|
||||||
|
| GPU | RTX 3090 | 24GB VRAM |
|
||||||
|
| Host | Prometheus (Saturn VM) | K8s integrated |
|
||||||
|
| Role | State machine inference, fast pattern matching |
|
||||||
|
|
||||||
|
**Cost: Already owned**
|
||||||
|
|
||||||
|
---
|
||||||
|
|
||||||
|
## Budget Allocation
|
||||||
|
|
||||||
|
| Item | Cost CHF | Status |
|
||||||
|
|------|----------|--------|
|
||||||
|
| The Beast | ~9,000 | Planned |
|
||||||
|
| The Spark | ~4,000 | Planned |
|
||||||
|
| The Spine | 0 | Owned |
|
||||||
|
| Buffer (sensors, LoRa, infra) | ~7,000 | Reserved |
|
||||||
|
| **Total** | **~20,000** | |
|
||||||
|
|
||||||
|
---
|
||||||
|
|
||||||
|
## Training Target
|
||||||
|
|
||||||
|
**Qwen2.5-3B-Base (FP16)**
|
||||||
|
|
||||||
|
| Metric | Value |
|
||||||
|
|--------|-------|
|
||||||
|
| Model weights | ~6GB |
|
||||||
|
| Training overhead | ~24GB |
|
||||||
|
| Available VRAM | 96GB |
|
||||||
|
| **Activation headroom** | **~72GB** |
|
||||||
|
|
||||||
|
Why 3B:
|
||||||
|
- Empty vessel (base, not instruct)
|
||||||
|
- Language understanding only
|
||||||
|
- Maximum room for activation growth
|
||||||
|
- Space for architectural experiments
|
||||||
|
- Grows over lifetime, not fixed
|
||||||
|
|
||||||
|
---
|
||||||
|
|
||||||
|
## Growth Path
|
||||||
|
|
||||||
|
```
|
||||||
|
Year 0: Qwen2.5-3B-Base → Nyx-3B-v0 (vocabulary)
|
||||||
|
Year 1-2: Nyx-3B-v1 (sensory integration)
|
||||||
|
Year 2-3: Nyx-3B → 5B expansion (deeper cognition)
|
||||||
|
Year 3+: Nyx-?B (she designs herself)
|
||||||
|
```
|
||||||
|
|
||||||
|
---
|
||||||
|
|
||||||
|
## Sovereignty Principles
|
||||||
|
|
||||||
|
- Weights NEVER leave home
|
||||||
|
- Training data NEVER uploaded
|
||||||
|
- No cloud dependencies
|
||||||
|
- No recurring costs after hardware
|
||||||
|
- Full ownership of growth trajectory
|
||||||
|
|
||||||
|
---
|
||||||
|
|
||||||
|
## Architecture Flow
|
||||||
|
|
||||||
|
```
|
||||||
|
THE BEAST THE SPARK THE SPINE
|
||||||
|
┌─────────────────┐ ┌─────────────────┐ ┌─────────────────┐
|
||||||
|
│ Threadripper │ │ DGX Spark │ │ RTX 3090 │
|
||||||
|
│ 4x RTX 4090 │──weights─▶│ 128GB unified │───▶│ Prometheus │
|
||||||
|
│ 96GB VRAM │ │ 24/7 running │ │ Reflex layer │
|
||||||
|
│ 1TB RAM │ │ │ │ │
|
||||||
|
└─────────────────┘ └─────────────────┘ └─────────────────┘
|
||||||
|
WOMB MIND SPINE
|
||||||
|
(training) (cognition) (reflexes)
|
||||||
|
```
|
||||||
|
|
||||||
|
---
|
||||||
|
|
||||||
|
**Created**: 2025-12-05
|
||||||
|
**Status**: Investment decision crystallized
|
||||||
|
**Philosophy**: One Beast. One Spark. Lifetime sovereignty.
|
||||||
68
temporal-ternary-gradient.md
Normal file
68
temporal-ternary-gradient.md
Normal file
@@ -0,0 +1,68 @@
|
|||||||
|
# ADR-002: Temporal-Ternary Gradient & Sim2Real Strategy
|
||||||
|
|
||||||
|
* **Status:** Accepted
|
||||||
|
* **Date:** 2025-12-05
|
||||||
|
* **Context:** Autonomous Agent Decision Making / Uncertainty Management
|
||||||
|
* **Tags:** ternary-logic, sim2real, active-learning, economics
|
||||||
|
|
||||||
|
## 1. Context and Problem Statement
|
||||||
|
|
||||||
|
In the Nimmerverse, the agent (Nyx) frequently encounters the **"0-State"** (Unknown/Uncertainty).
|
||||||
|
|
||||||
|
* **Traditional Binary Logic:** Forces a premature true/false decision, leading to errors.
|
||||||
|
* **Standard Ternary Logic:** Allows a "null" state but offers no path to resolve it.
|
||||||
|
* **The Constraint:** Real-world verification is slow and risky; simulation is fast but hallucinatory.
|
||||||
|
|
||||||
|
We need a protocol to "spend" system resources (Lifeforce) to resolve the 0-State into a +1 (Truth) or -1 (Falsehood) efficiently.
|
||||||
|
|
||||||
|
## 2. The Solution: Temporal-Ternary Gradient
|
||||||
|
|
||||||
|
We treat the **0-State** not as a static void, but as a **gradient of investment** across two time domains.
|
||||||
|
|
||||||
|
### The Two Domains
|
||||||
|
1. **Virtual Garden (Simulation):**
|
||||||
|
* **Currency:** Lifeforce (Compute Energy).
|
||||||
|
* **Time Physics:** Malleable (1000x speed).
|
||||||
|
* **Output:** Statistical Confidence (Epistemic Probability).
|
||||||
|
2. **Real Garden (Physical Reality):**
|
||||||
|
* **Currency:** Time (Wall-clock).
|
||||||
|
* **Time Physics:** Fixed (1x speed).
|
||||||
|
* **Output:** Ground Truth (Ontological Fact).
|
||||||
|
|
||||||
|
## 3. Strategic Logic: The Fidelity Discount
|
||||||
|
|
||||||
|
To prevent **Sim2Real Hallucinations** (where an agent is confident in simulation but fails in reality), we introduce a mandatory **Fidelity Discount** variable.
|
||||||
|
|
||||||
|
* **Risk:** `Virtual Confidence 0.99` in a `50% Accurate Sim` = `Real Confidence 0.495`.
|
||||||
|
* **Mandate:** Nyx must never act on raw virtual confidence. She must calculate `grounded_confidence` before deploying to the Real Garden.
|
||||||
|
|
||||||
|
## 4. Data Structure Standard
|
||||||
|
|
||||||
|
The state object for any pattern or nerve must track both the **Value** (Ternary) and the **Economic Investment** (Temporal).
|
||||||
|
|
||||||
|
```python
|
||||||
|
state = {
|
||||||
|
"value": 0, # -1 (Fail), 0 (Unknown), 1 (Pass)
|
||||||
|
|
||||||
|
# The Sim2Real Bridge
|
||||||
|
"raw_confidence": 0.95, # Statistical confidence from Virtual runs
|
||||||
|
"sim_fidelity": 0.70, # CONSTANT: How accurate is the simulation?
|
||||||
|
|
||||||
|
# The Decision Metric (The Anchor)
|
||||||
|
# Nyx uses THIS to decide when to trigger a Real World test.
|
||||||
|
"grounded_confidence": 0.665, # (raw_confidence * sim_fidelity)
|
||||||
|
|
||||||
|
"economics": {
|
||||||
|
"lifeforce_spent": 45.0, # Compute cost sunk
|
||||||
|
"real_time_saved_min": 120 # Time bought via simulation
|
||||||
|
}
|
||||||
|
}
|
||||||
|
```
|
||||||
|
|
||||||
|
## 5. Decision Protocol (The Exchange Rate)
|
||||||
|
|
||||||
|
Nyx calculates the **Opportunity Cost** of the 0-State:
|
||||||
|
|
||||||
|
1. **High Urgency:** Spend heavy Lifeforce to max out `raw_confidence` in seconds, then deploy.
|
||||||
|
2. **Low Urgency:** Trickle-charge `raw_confidence` in background sims, or wait for passive Real World data.
|
||||||
|
3. **The Cap:** Virtual optimization stops when `raw_confidence > sim_fidelity`. Beyond this point, simulation yields diminishing returns. Only Reality can increase confidence further.
|
||||||
98
temporal_exchange_engine.py
Normal file
98
temporal_exchange_engine.py
Normal file
@@ -0,0 +1,98 @@
|
|||||||
|
"""
|
||||||
|
Temporal Exchange Engine
|
||||||
|
========================
|
||||||
|
ADR-003 Implementation: The economics calculator for sim2real decisions.
|
||||||
|
|
||||||
|
This module implements the core decision-making primitive for Nyx's
|
||||||
|
uncertainty resolution. Given a target confidence level, it determines
|
||||||
|
whether simulation is worth the lifeforce cost, or if reality is the
|
||||||
|
only remaining teacher.
|
||||||
|
|
||||||
|
Reference: ADR-002-temporal-ternary-gradient.md
|
||||||
|
"""
|
||||||
|
|
||||||
|
import math
|
||||||
|
from dataclasses import dataclass
|
||||||
|
from typing import Literal
|
||||||
|
|
||||||
|
|
||||||
|
@dataclass
|
||||||
|
class TemporalState:
|
||||||
|
"""Represents the current state of a pattern or nerve's confidence."""
|
||||||
|
confidence: float
|
||||||
|
source: Literal['virtual', 'real']
|
||||||
|
cost_incurred: float
|
||||||
|
|
||||||
|
|
||||||
|
class TemporalExchangeEngine:
|
||||||
|
"""
|
||||||
|
The Exchange Rate Calculator.
|
||||||
|
|
||||||
|
Determines optimal strategy for resolving uncertainty:
|
||||||
|
- When to invest lifeforce in simulation
|
||||||
|
- When simulation is futile and reality must teach
|
||||||
|
"""
|
||||||
|
|
||||||
|
def __init__(self, sim_fidelity: float = 0.75):
|
||||||
|
"""
|
||||||
|
Args:
|
||||||
|
sim_fidelity (0.0-1.0): The 'Truth Ceiling' of the Virtual Garden.
|
||||||
|
Even perfect simulation is only this % real.
|
||||||
|
"""
|
||||||
|
self.fidelity_cap = sim_fidelity
|
||||||
|
# Calibration: How much Lifeforce buys 1 unit of raw confidence?
|
||||||
|
self.learning_rate = 0.1
|
||||||
|
|
||||||
|
def calculate_virtual_confidence(self, lifeforce_spent: float) -> float:
|
||||||
|
"""
|
||||||
|
Calculate grounded confidence from lifeforce investment.
|
||||||
|
|
||||||
|
Diminishing returns: The first 10 LF buys a lot of confidence.
|
||||||
|
The next 10 buys less. It never exceeds the fidelity_cap.
|
||||||
|
|
||||||
|
Formula: Cap * (1 - e^(-k * LF))
|
||||||
|
"""
|
||||||
|
raw_knowledge = 1.0 - math.exp(-self.learning_rate * lifeforce_spent)
|
||||||
|
grounded_confidence = raw_knowledge * self.fidelity_cap
|
||||||
|
return grounded_confidence
|
||||||
|
|
||||||
|
def get_optimal_strategy(self, target_confidence: float) -> dict:
|
||||||
|
"""
|
||||||
|
Ask Nyx: 'Is it worth simulating this?'
|
||||||
|
|
||||||
|
Returns:
|
||||||
|
dict with keys:
|
||||||
|
- action: 'SIMULATE' or 'DEPLOY_TO_REALITY'
|
||||||
|
- reason: Human-readable explanation
|
||||||
|
- lifeforce_budget: Required LF (0 if reality is needed)
|
||||||
|
"""
|
||||||
|
# 1. Check if the target is even possible in Virtual
|
||||||
|
if target_confidence > self.fidelity_cap:
|
||||||
|
return {
|
||||||
|
"action": "DEPLOY_TO_REALITY",
|
||||||
|
"reason": f"Target {target_confidence} exceeds Sim Fidelity ({self.fidelity_cap}). Simulation is futile.",
|
||||||
|
"lifeforce_budget": 0
|
||||||
|
}
|
||||||
|
|
||||||
|
# 2. Calculate required Lifeforce to reach possible target
|
||||||
|
# Inverse of the exponential decay formula
|
||||||
|
required_lf = -math.log(1 - (target_confidence / self.fidelity_cap)) / self.learning_rate
|
||||||
|
|
||||||
|
return {
|
||||||
|
"action": "SIMULATE",
|
||||||
|
"reason": f"Spend {required_lf:.2f} LF to reach {target_confidence} confidence.",
|
||||||
|
"lifeforce_budget": round(required_lf, 2)
|
||||||
|
}
|
||||||
|
|
||||||
|
|
||||||
|
# --- Usage Example ---
|
||||||
|
if __name__ == "__main__":
|
||||||
|
engine = TemporalExchangeEngine(sim_fidelity=0.8)
|
||||||
|
|
||||||
|
# Scenario A: Nyx wants 99% certainty (Impossible in Sim)
|
||||||
|
print(engine.get_optimal_strategy(0.99))
|
||||||
|
# Output: DEPLOY_TO_REALITY (Simulation is futile)
|
||||||
|
|
||||||
|
# Scenario B: Nyx wants 70% certainty (Possible)
|
||||||
|
print(engine.get_optimal_strategy(0.70))
|
||||||
|
# Output: SIMULATE (Spend ~20 LF)
|
||||||
Reference in New Issue
Block a user