Kepler365 commited on
Commit
d7b6ce2
Β·
verified Β·
1 Parent(s): b3a32fe

Upload README.md with huggingface_hub

Browse files
Files changed (1) hide show
  1. README.md +174 -1
README.md CHANGED
@@ -1,3 +1,176 @@
 
 
 
 
 
 
 
 
1
  ---
2
- license: mit
 
 
 
 
 
 
 
 
 
3
  ---
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
1
+ # πŸ‰ Dunoon Daemon
2
+
3
+ > **Your Personal, Persistent Local AI Companion & Story Engine**
4
+
5
+ Welcome to **Dunoon Daemon** β€” a fully autonomous, local-first multi-agent companion suite designed for creative writers, tabletop roleplayers, and anyone seeking persistent AI companions that never forget.
6
+
7
+ Everything runs entirely on your local hardware. No cloud subscriptions, no telemetry leaks, and zero mandatory internet connections once your models and weights are loaded[cite: 35].
8
+
9
  ---
10
+
11
+ ## ✨ Key Capabilities
12
+
13
+ * **Strict Session-Scoped Memory**: Tiered storage (Working Memory, Deep Memory, Factual Vaults, and Journals) isolated in per-companion vaults (`data/sessions/<session_id>/vaults/`)[cite: 4, 35].
14
+ * **Dynamic OCEAN Psychology**: Simulates Big Five personality variance and daily emotional shifts affecting tone, vocabulary, and empathy levels[cite: 3, 35].
15
+ * **Dual Arena Debate Deck**: Host live multi-agent debates with dynamic topic intervention, user injection, and autonomous event triggers[cite: 5, 35].
16
+ * **Universal Multimodal Perception**: Ingests images, transcribes spoken audio tracks via local Whisper, parses PDFs, Word docs, and plain text code files.
17
+ * **Expressive Eye Telemetry**: Dual vector digital eyes respond dynamically to hidden LLM affective metadata envelopes (`<!--meta:{...}-->`)[cite: 7, 21, 35].
18
+ * **Multi-Archetype Neural Speech**: Built-in Edge TTS streaming with local SAPI5 fallback and smooth audio fade-out logic[cite: 26, 35].
19
+
20
  ---
21
+
22
+ ## πŸš€ Quick Start Guide
23
+
24
+ ### Prerequisites
25
+ * **OS**: Windows 10/11 (64-bit)[cite: 35]
26
+ * **Python**: 3.11+ (if running from source)[cite: 35]
27
+ * **GPU**: NVIDIA (CUDA) or AMD/Intel (Vulkan) recommended; CPU fallback supported[cite: 4, 35].
28
+
29
+ ### 1. Launch the Engine
30
+ Open `controller.py` or run the standalone executable[cite: 35]. Select your preferred inference pipeline:
31
+ * **Native C++ Server**: Click **πŸ“‚ Load GGUF Model** to point to any local GGUF file[cite: 5, 35]. The daemon auto-detects your GPU, pulls optimized binaries into `bin/`, and spins up `llama-server.exe`[cite: 5, 8, 20, 35].
32
+ * **LM Studio (Local API)**: Start the Local Server in LM Studio (port 1234), and the Daemon connects automatically[cite: 2, 5, 35].
33
+
34
+ ### 2. Create a Companion
35
+ 1. Click **βž• New Chat** and name your session[cite: 5, 35].
36
+ 2. Choose a baseline personality mode (**Dynamic OCEAN** recommended)[cite: 3, 5, 35].
37
+ 3. Click **🎭 Edit Persona** to roll a random archetype or configure your custom character directives and backstory[cite: 5, 22, 35].
38
+
39
+ ### 3. Open Dialogue
40
+ Double-click your companion in the session deck to launch the active chat canvas[cite: 5, 35].
41
+
42
+ ---
43
+
44
+ ## ⚑ Slash Command Reference
45
+
46
+ Execute these commands directly in the dialogue input bar for rapid control[cite: 6, 35]:
47
+
48
+ * `/remember <text>` β€” Forces direct storage into the permanent Journal Vault[cite: 6, 13, 35].
49
+ * `/memories` or `/vault` β€” Displays diagnostic counts across all memory tiers[cite: 6, 35].
50
+ * `/forget <n>` β€” Purges the last *n* conversational turns from context[cite: 6, 35].
51
+ * `/clear` β€” Clears visual canvas history without altering memory vaults[cite: 6, 35].
52
+ * `/character` β€” Displays active OCEAN traits and daily mood shifts[cite: 3, 6, 35].
53
+ * `/baseline` β€” Locks personality into a neutral, analytical state[cite: 6, 35].
54
+ * `/ubaseline` β€” Re-enables dynamic daily mood variance[cite: 3, 6, 35].
55
+ * `/status` β€” Displays active model, endpoint, and voice provider[cite: 6, 35].
56
+ * `/see` or `/upload` β€” Opens file staging browser for multimodal ingestion[cite: 6, 35].
57
+ * `/splash` β€” Forces Python garbage collection to free RAM/VRAM[cite: 6, 35].
58
+ * `/eject` β€” Unloads GGUF models and completely flushes VRAM[cite: 5, 6, 35].
59
+ * `/talk 1 | 2 | 3` β€” Sets vocal reading speed: Slow (1), Medium (2), or Fast (3)[cite: 6, 26, 35].
60
+
61
+ ---
62
+
63
+ ## πŸ“ Repository Structure
64
+
65
+ ```text
66
+ DunoonDaemonApp/
67
+ β”œβ”€β”€ bin/ # Native engine binaries (llama-server.exe, runtimes)[cite: 4, 20, 35]
68
+ β”œβ”€β”€ data/[cite: 4, 35]
69
+ β”‚ β”œβ”€β”€ audio_cache/ # Temporary speech cache[cite: 4, 35]
70
+ β”‚ └── sessions/ # Session registry & isolated companion vaults[cite: 4, 24, 35]
71
+ β”‚ β”œβ”€β”€ sessions.json # Master session catalog[cite: 4, 24, 35]
72
+ β”‚ └── <session_id>/ # Isolated per-companion sub-vault[cite: 4, 35]
73
+ β”‚ └── vaults/[cite: 4, 35]
74
+ β”‚ β”œβ”€β”€ working_memory.json # Short-term working buffer[cite: 4, 19, 35]
75
+ β”‚ β”œβ”€β”€ deep_memory.json # Consolidated episodic memory[cite: 4, 13, 35]
76
+ β”‚ β”œβ”€β”€ journal_vault.json # High-salience structured journal entries[cite: 4, 10, 35]
77
+ β”‚ β”œβ”€β”€ embeddings.json # Per-session SentenceTransformer vector store[cite: 4, 14, 35]
78
+ β”‚ β”œβ”€β”€ intent_memory.json # Procedural mandates & directives[cite: 4, 16, 35]
79
+ β”‚ β”œβ”€β”€ task_memory.json # Workflow & step-tracking memory[cite: 4, 16, 35]
80
+ β”‚ β”œβ”€β”€ factual_memory.json # Core biographical facts[cite: 4, 16, 35]
81
+ β”‚ β”œβ”€β”€ continuation_memory.json[cite: 4, 16, 35]
82
+ β”‚ β”œβ”€β”€ reset_memory.json[cite: 4, 16, 35]
83
+ β”‚ └── prune_telemetry.json[cite: 4, 23, 35]
84
+ β”œβ”€β”€ models/ # Local GGUF models & mmproj vision projectors[cite: 4, 20, 35]
85
+ β”œβ”€β”€ brain.py # Central cognitive routing & CPU affinity[cite: 1, 35]
86
+ β”œβ”€β”€ bridge.py # LM Studio local API bridge[cite: 2, 35]
87
+ β”œβ”€β”€ character.py # OCEAN Big Five profiling & daily mood variance[cite: 3, 35]
88
+ β”œβ”€β”€ config.py # Portable path resolution & hardware detection[cite: 4, 35]
89
+ β”œβ”€β”€ controller.py # Main deck UI, session manager, & Dual Arena host[cite: 5, 35]
90
+ β”œβ”€β”€ dunoon_daemon.py # Autonomous companion chat canvas & multimodal deck[cite: 6, 35]
91
+ β”œβ”€β”€ eye_engine.py # Expressive vector eye telemetry & pupil dynamics[cite: 7, 35]
92
+ β”œβ”€β”€ fetch_engine.py # C++ binary & runtime auto-fetcher[cite: 8, 35]
93
+ β”œβ”€β”€ journal_entry.py / journal_vault.py # Structured salience journaling & atomic storage[cite: 9, 10, 35]
94
+ β”œβ”€β”€ memory_api.py # Public ingestion gateway[cite: 12, 35]
95
+ β”œβ”€β”€ memory_deep.py / memory_working.py # Thread-safe tiered memory engines[cite: 13, 19, 35]
96
+ β”œβ”€β”€ memory_embeddings.py # Local vector embedding & semantic cosine search[cite: 14, 35]
97
+ β”œβ”€β”€ memory_integrity.py # Vault sanitizer & auto-healer[cite: 15, 35]
98
+ β”œβ”€β”€ memory_router.py # Semantic intent & vault classification router[cite: 16, 35]
99
+ β”œβ”€β”€ memory_transfer.py # Cross-persona insight distillation bridge[cite: 17, 35]
100
+ β”œβ”€β”€ memory_validation.py # Sanitization & private data filter[cite: 18, 35]
101
+ β”œβ”€β”€ model_handler.py # Native C++ subprocess manager & zombie cleaner[cite: 20, 35]
102
+ β”œβ”€β”€ overmind.py # Context fusion & dual-channel telemetry engine[cite: 21, 35]
103
+ β”œβ”€β”€ persona.py # Procedural persona synthesis engine[cite: 22, 35]
104
+ β”œβ”€β”€ prune.py # Sleep cycle consolidation & capacity controller[cite: 23, 35]
105
+ β”œβ”€β”€ session_manager.py # Session registry & disk persistence[cite: 24, 35]
106
+ β”œβ”€β”€ significance.py # Vector salience & entropy scoring engine[cite: 28, 35]
107
+ β”œβ”€β”€ skin_manager.py # Dynamic theme palettes & widget skinning[cite: 29, 35]
108
+ β”œβ”€β”€ state_engine.py # Conversation heuristic mood tracker[cite: 25, 35]
109
+ β”œβ”€β”€ tts_handler.py # Multi-archetype neural voice engine[cite: 26, 35]
110
+ └── vault_auto_repair.py # Global & session vault format repair[cite: 27, 35]
111
+ [ User Dialogue / Staged Artifact ]
112
+ β”‚
113
+ β–Ό
114
+ β”Œβ”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”
115
+ β”‚ memory_validationβ”‚ ─── Blocks sensitive credentials & malformed payloads
116
+ β””β”€β”€β”€β”€β”€β”€β”€β”€β”€β”¬β”€β”€β”€β”€β”€β”€β”€β”€β”˜
117
+ β”‚
118
+ β–Ό
119
+ β”Œβ”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”
120
+ β”‚ memory_router β”‚ ─── Semantic subspace matching across intent/task/facts
121
+ β””β”€β”€β”€β”€β”€β”€β”€β”€β”€β”¬β”€β”€β”€β”€β”€β”€β”€β”€β”˜
122
+ β”‚
123
+ β”Œβ”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”Όβ”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”
124
+ β”‚ β”‚ β”‚
125
+ β–Ό β–Ό β–Ό
126
+ [ Working ] [ Intent / Task / Facts ] [ Deep / Journal ]
127
+ β”‚ β”‚ β”‚
128
+ β”‚ β””β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”¬β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”˜
129
+ β”‚ β”‚
130
+ β–Ό β–Ό
131
+ β”Œβ”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”
132
+ β”‚ Thread-Safe Atomic Persistence Layer (_lock + .tmp swap)β”‚
133
+ β””β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”¬β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”˜
134
+ β”‚
135
+ β–Ό
136
+ β”Œβ”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”
137
+ β”‚ memory_embeddings β”‚ (Local SentenceTransformers)
138
+ β”‚ Per-Session Vector DB β”‚
139
+ β””β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”¬β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€οΏ½οΏ½β”˜
140
+ β”‚
141
+ β–Ό
142
+ β”Œβ”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”
143
+ β”‚ overmind.py β”‚
144
+ β”‚ β”‚
145
+ β”‚ β€’ System Directives + Dynamic OCEAN Profile (character) β”‚
146
+ β”‚ β€’ Heuristic State Mood Offsets (state_engine) β”‚
147
+ β”‚ β€’ Semantic Memory Retrieval (Working + Deep + Journals) β”‚
148
+ β”‚ β€’ Filtered Cross-Persona Insights (memory_transfer) β”‚
149
+ β”‚ β€’ Recency-Ranked History Buffer β”‚
150
+ β””β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”¬β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”˜
151
+ β”‚
152
+ β–Ό
153
+ β”Œβ”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”
154
+ β”‚ Dynamic Inference Execution β”‚
155
+ β”‚ β”œβ”€ Native C++ llama-server β”‚
156
+ β”‚ └─ LM Studio API (Fallback) β”‚
157
+ β””β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”¬β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”˜
158
+ β”‚
159
+ β–Ό
160
+ [ Dual-Channel Output Stream ]
161
+ β”œβ”€β”€ <!--meta:{...}--> ──► [ Eye Telemetry / Signal Engine ]
162
+ └── Clean Dialogue ──► [ Typewriter UI + Neural Voice TTS ]
163
+ β”‚
164
+ β–Ό (Background Idle Hook)
165
+ β”Œβ”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”
166
+ β”‚ run_session_sleep_cycle β”‚
167
+ β”‚ (Consolidation & Prune) β”‚
168
+ β””β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”˜
169
+ git clone https://github.com/your-username/DunoonDaemonApp.git
170
+ cd DunoonDaemonApp
171
+ pip install requests psutil pygame edge-tts pyttsx3 sentence-transformers numpy Pillow pypdf python-docx faster-whisper
172
+ python controller.py
173
+ πŸ“œ Dedication & License
174
+ Distributed under the MIT License.
175
+
176
+ Dedicated to the loyal companions who walk with us through every realm, and the code that keeps their echoes alive. For Kylo.