Skip to content

Commit 7f72f34

Browse files
Merge pull request #1 from justinlietz93/dev
Dev
2 parents e745117 + 794670b commit 7f72f34

152 files changed

Lines changed: 17369 additions & 2505 deletions

File tree

Some content is hidden

Large Commits have some content hidden by default. Use the searchbox below for content that may be hidden.

.gitignore

Lines changed: 7 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -10,4 +10,10 @@ runs/
1010
*.log
1111
.DS_Store
1212
reports
13-
.arachnid_scans
13+
.arachnid_scans
14+
15+
# Experiments
16+
experiments/vdm_rt-main
17+
experiments/*/vdm_rt-main
18+
experiments/*/*/vdm_rt-main
19+
experiments/*/*/*/vdm_rt-main

README.md

Lines changed: 11 additions & 12 deletions
Original file line numberDiff line numberDiff line change
@@ -1,6 +1,6 @@
1-
![Void Dynamics Model Runtime Engine](/assets/vdm-rt_banner.png)
1+
![Void Dynamics Model Runtime Engine](/assets/vdm-rt_banner-2.png)
22

3-
# Base Cognitive Engine
3+
# VDM Cognitive Engine: Base Runtime
44

55
This package preserves the headless VDM runtime engine and removes the old frontend, physics harnesses, generated scan reports, corpus data, and accelerator experiments that are not required for the runtime path.
66

@@ -18,7 +18,7 @@ vdm_rt/nexus.py runtime facade and Nexus host object
1818
vdm_rt/cli/ CLI argument definitions
1919
vdm_rt/control/ headless process-control boundary
2020
vdm_rt/core/ retained engine, sparse connectome, ADC, SIE, maps, scouts, memory, signals
21-
vdm_rt/io/ runtime transduction, lexicon, and logging adapters
21+
vdm_rt/io/ receptor/actuator boundary ports and logging adapters
2222
vdm_rt/runtime/ loop, stepper, telemetry, phase, checkpointing, status helpers
2323
vdm_rt/utils/ logging utilities
2424
vdm_rt/tests/ retained engine/runtime/control/guard tests
@@ -55,10 +55,9 @@ Artifacts land in `runs/<timestamp>/` by default:
5555

5656
```text
5757
events.jsonl structured runtime logs
58-
utd_events.jsonl transduction output events
58+
utd_events.jsonl explicit motor-event audit records when a motor port emits
5959
phase.json optional external control-plane input when present
60-
state_<step>.h5 checkpoint when --checkpoint-every is enabled and h5py is available
61-
state_<step>.npz checkpoint fallback
60+
state_<step>.h5 checkpoint when --checkpoint-every is enabled
6261
```
6362

6463
## Runtime boundaries
@@ -67,8 +66,8 @@ The retained architecture is deliberately headless:
6766

6867
```text
6968
core numeric/state machinery, SIE, sparse connectome, maps, scouts, memory, signals
70-
runtime loop orchestration, per-tick helpers, telemetry, checkpoint/status emission
71-
io UTE/UTD, lexicon, logging
69+
runtime loop orchestration, per-tick helpers, telemetry, checkpoint/status helpers
70+
io UTE/UTD boundary ports and logging
7271
control subprocess/process boundary for future clients
7372
frontend removed
7473
```
@@ -83,19 +82,19 @@ in tracked, operator-visible TOML files under `config/`, split by subsystem so
8382
the config surface stays readable.
8483

8584
```text
86-
config/runtime.toml cross-cutting loop, event, territory, composer knobs
85+
config/runtime.toml cross-cutting loop, event, and territory knobs
8786
config/launch.toml command-line launch defaults
8887
config/sparse_connectome.toml sparse graph maintenance controls
8988
config/adc.toml announcement bus and ADC defaults
90-
config/stimulus.toml text-to-connectome stimulation defaults
91-
config/speech.toml autonomous speech and B1 detector defaults
89+
config/stimulus.toml explicit receptor-node stimulation defaults
90+
config/b1.toml live topology detector defaults
9291
config/maps.toml event map and memory/trail view defaults
9392
config/sie.toml Self-Improvement Engine runtime defaults
9493
config/persistence.toml checkpoint and resume defaults
9594
config/control.toml embedded control-plane defaults
9695
config/learning.toml optional REVGSP/GDSP adapter controls
9796
config/scouts.toml void-walker scout budgets and enable flags
98-
config/io.toml emitters, smoke checks, HTTP status, Redis status
97+
config/io.toml receptor queue, HTTP status, Redis status
9998
config/logging.toml JSONL and zip spool limits
10099
```
101100

assets/vdm-rt_banner-2.png

1.77 MB
Loading

cli/args.py

Lines changed: 7 additions & 17 deletions
Original file line numberDiff line numberDiff line change
@@ -57,21 +57,15 @@ def make_parser() -> argparse.ArgumentParser:
5757
p.add_argument('--bundle-size', dest='bundle_size', type=int, default=config_int("sparse_connectome.bundle_size", 3))
5858
p.add_argument('--prune-factor', dest='prune_factor', type=float, default=config_float("sparse_connectome.prune_factor", 0.10))
5959

60-
# Text→connectome stimulation (symbol→group)
61-
p.add_argument('--stim-group-size', dest='stim_group_size', type=int, default=config_int("stimulus.group_size", 4))
60+
# External receptor stimulation amplitude/decay. Receptor-node selection is not done here.
6261
p.add_argument('--stim-amp', dest='stim_amp', type=float, default=config_float("stimulus.amp", 0.05))
6362
p.add_argument('--stim-decay', dest='stim_decay', type=float, default=config_float("stimulus.decay", 0.90))
64-
p.add_argument('--stim-max-symbols', dest='stim_max_symbols', type=int, default=config_int("stimulus.max_symbols", 64))
65-
66-
# Self-speak and topology-spike detection (void-native)
67-
p.add_argument('--speak-auto', dest='speak_auto', action='store_true')
68-
p.add_argument('--no-speak-auto', dest='speak_auto', action='store_false')
69-
p.set_defaults(speak_auto=config_bool("speech.auto", True))
70-
p.add_argument('--speak-z', dest='speak_z', type=float, default=config_float("speech.z", 1.0))
71-
p.add_argument('--speak-hysteresis', dest='speak_hysteresis', type=float, default=config_float("speech.hysteresis", 1.0))
72-
p.add_argument('--speak-cooldown-ticks', dest='speak_cooldown_ticks', type=int, default=config_int("speech.cooldown_ticks", 10))
73-
p.add_argument('--speak-valence-thresh', dest='speak_valence_thresh', type=float, default=config_float("speech.valence_threshold", 0.01))
74-
p.add_argument('--b1-half-life-ticks', dest='b1_half_life_ticks', type=int, default=config_int("speech.b1.half_life_ticks", 50))
63+
64+
# Topology-spike detection (void-native, no output authorship)
65+
p.add_argument('--b1-z', dest='b1_z', type=float, default=config_float("b1.z", 1.0))
66+
p.add_argument('--b1-hysteresis', dest='b1_hysteresis', type=float, default=config_float("b1.hysteresis", 1.0))
67+
p.add_argument('--b1-cooldown-ticks', dest='b1_cooldown_ticks', type=int, default=config_int("b1.cooldown_ticks", 10))
68+
p.add_argument('--b1-half-life-ticks', dest='b1_half_life_ticks', type=int, default=config_int("b1.half_life_ticks", 50))
7569

7670
# Announcement bus / ADC tuning
7771
p.add_argument('--bus-capacity', dest='bus_capacity', type=int, default=config_int("bus.capacity", 65536))
@@ -82,10 +76,6 @@ def make_parser() -> argparse.ArgumentParser:
8276

8377
# Engram loader (optional)
8478
p.add_argument('--load-engram', dest='load_engram', type=str, default=_optional_str("persistence.load_engram"))
85-
# Optional embedded control server (disabled by default to avoid duplicate UI)
86-
p.add_argument('--control-server', dest='control_server', action='store_true')
87-
p.add_argument('--no-control-server', dest='control_server', action='store_false')
88-
p.set_defaults(control_server=config_bool("control.server_enabled", False))
8979
# Allow explicit reuse of an existing run directory (resume), otherwise a new timestamp dir is used
9080
p.add_argument('--run-dir', dest='run_dir', type=str, default=_optional_str("launch.run_dir"))
9181

config/README.md

Lines changed: 9 additions & 5 deletions
Original file line numberDiff line numberDiff line change
@@ -11,17 +11,21 @@ defaults; malformed TOML fails loudly so bad operator input is visible.
1111
Current files:
1212

1313
- `launch.toml` - command-line launch defaults and run-directory behavior.
14-
- `runtime.toml` - cross-cutting loop, event, territory, and composer knobs.
14+
- `runtime.toml` - cross-cutting loop, event, and territory knobs.
1515
- `sparse_connectome.toml` - sparse graph maintenance controls.
1616
- `adc.toml` - announcement bus and ADC defaults.
1717
- `b1.toml` - reserved Void B1 topology-meter defaults; not consumed by the default runtime until B1 ownership is resolved.
18-
- `stimulus.toml` - text-to-connectome stimulation defaults.
19-
- `speech.toml` - autonomous speech and B1 detector defaults.
18+
- `stimulus.toml` - explicit receptor-node stimulation defaults.
19+
- `b1.toml` - live topology detector defaults.
2020
- `maps.toml` - event map and memory/trail view defaults.
2121
- `sie.toml` - Self-Improvement Engine runtime defaults.
2222
- `persistence.toml` - checkpoint and resume defaults.
2323
- `control.toml` - embedded control-plane defaults.
2424
- `learning.toml` - experimental REVGSP/GDSP adapter controls; the default SparseConnectome path does not yet satisfy their required substrate contract.
2525
- `scouts.toml` - void-walker scout budgets and per-scout enable flags.
26-
- `io.toml` - emitters, smoke checks, HTTP status, and Redis status output.
27-
- `logging.toml` - JSONL and zip spool limits.
26+
- `io.toml` - receptor queue, HTTP status, and Redis status output.
27+
- `logging.toml` - JSONL and zip spool limits. `events.jsonl` uses the
28+
`events_*` limits, names containing `utd` use `utd_*`, and other JSONL files
29+
use `log_*`; `roll_check_every = 1` enforces active-file caps after each write.
30+
`zip_spool = true` instead selects the zip-buffer strategy and uses
31+
`zip_buffer_bytes` and `zip_ring_bytes` for those standard writers.

config/b1.toml

Lines changed: 5 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -1,6 +1,9 @@
1-
# Reserved B1 topology-meter defaults. These take effect only when VoidB1Meter
2-
# is wired as a runtime producer.
1+
# B1 topology detector defaults. These configure the live StreamingZEMA
2+
# topology-spike detector; they do not trigger text output.
33

44
[b1]
55
sample_edges = 4096
66
half_life_ticks = 50
7+
z = 1.0
8+
hysteresis = 1.0
9+
cooldown_ticks = 10

config/control.toml

Lines changed: 1 addition & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -1,7 +1,4 @@
1-
# Embedded control-plane defaults.
1+
# Headless control-plane defaults.
22

33
[control]
4-
server_enabled = false
5-
server_host = "127.0.0.1"
6-
server_port = 8765
74
feed_file_rate_lps = 20.0

config/io.toml

Lines changed: 0 additions & 13 deletions
Original file line numberDiff line numberDiff line change
@@ -1,15 +1,5 @@
11
# Runtime IO and optional external status outputs.
22

3-
[emitters]
4-
# Empty paths use run-directory defaults.
5-
utd_out = ""
6-
enable_thoughts = false
7-
thought_out = ""
8-
9-
[smoke]
10-
enable_macros_test = false
11-
enable_thoughts_test = false
12-
133
[status_http]
144
enabled = false
155
host = "127.0.0.1"
@@ -22,8 +12,5 @@ stream_status = "runtime:status"
2212
status_maxlen = 2000
2313

2414
[ute]
25-
use_stdin = true
2615
queue_maxsize = 1024
2716
poll_max_items = 32
28-
inbox_poll_seconds = 0.5
29-
ticker_interval_seconds = 1.0

config/logging.toml

Lines changed: 11 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -1,11 +1,17 @@
11
# Runtime file logging and spool limits.
22

33
[logging]
4-
# Use zip-spooled JSONL writers for bounded disk pressure.
4+
# Choose the active-file strategy for standard event and UTD writers.
5+
# true: use zip_buffer_bytes/zip_ring_bytes and append rotated buffers to a zip.
6+
# false: use the category-specific rolling limits below and archive old lines.
57
zip_spool = true
68

79
# Rolling JSONL caps, in MiB where the name says mb. Zero line caps mean
8-
# "unset; use byte caps".
10+
# "unset; use byte caps". Active files are checked after every write by
11+
# default, so small diagnostic runs honor these limits immediately.
12+
#
13+
# Category selection is filename-based: events.jsonl uses events_*, files whose
14+
# names contain "utd" use utd_*, and all other JSONL files use log_*.
915
events_max_mb = 256
1016
events_max_lines = 0
1117
events_archive_segment_mb = 512
@@ -18,8 +24,9 @@ log_max_mb = 128
1824
log_max_lines = 0
1925
log_archive_segment_mb = 256
2026
log_archive_segment_lines = 0
21-
roll_check_every = 200
27+
roll_check_every = 1
2228

23-
# Zip spooler byte caps.
29+
# Zip spooler byte caps. Values are exact positive byte limits; use a small
30+
# value for a quick local rotation test and a larger value for normal runs.
2431
zip_buffer_bytes = 1048576
2532
zip_ring_bytes = 65536

config/persistence.toml

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -3,7 +3,7 @@
33
[persistence]
44
checkpoint_every = 0
55
checkpoint_keep = 5
6-
checkpoint_format = "h5"
6+
checkpoint_format = "h5" # Only supported runtime checkpoint write format.
77

88
# Empty means no startup engram load. May be a checkpoint file or a run folder.
99
load_engram = ""

0 commit comments

Comments
 (0)