mirror of
https://github.com/SHOGGOTH-SECTOR/sica-fondt.git
synced 2026-07-31 08:06:26 +00:00
Replaces the Euclidean-magnitude R port (DREAD/BLUR/INCOHERENT, inverted Z-path) with a faithful native port of etr.m: three independent toroidal axes, five zones, snap-across flips, basin spring toward centre 26 (SOFT 0.25 / INCOH 0.5), L6 Z-path corrected (z<0 alimentation/lattice, z>=0 transmutation/evolution). Drive-Box now renders per-axis ETR status. R suite green (etr 31, drive_box 34) and Octave 26/0/1; both pinned to etr_invariants.md. Co-Authored-By: Claude Opus 4.8 (1M context) <noreply@anthropic.com> Claude-Session: https://claude.ai/code/session_015hmgREHNsxYCuim33yUF2c
159 lines
7.3 KiB
R
159 lines
7.3 KiB
R
# --- The Drive-Box "Nervous System" ---
|
|
# Couples the four autonomous drivers into one body. The wiring is NOT arbitrary
|
|
# glue: the Energy driver's own request_execution() comments that "in a full
|
|
# integration, this would call evaluate_tool_cost with actual PS+ and Eth-Int
|
|
# loads." This module IS that full integration -- the afferent (sensing) ->
|
|
# efferent (acting) arc:
|
|
#
|
|
# PS+ (afferent) : reads the endocrine array + priors -> existential_load, arguments
|
|
# Eth-Int (modulator) : prices the proposed action vs principles -> eth_penalty
|
|
# Energy (efferent gate): folds ps_load + eth_penalty asymmetrically
|
|
# (evaluate_tool_cost) and gates on alive/tool-lock/affordability
|
|
# ETR (regime) : reports temporal-coherence status + generative update path
|
|
#
|
|
# drive_snapshot() -- read-only aggregate other organs consume (the Ada Medium
|
|
# would read this at Phase_Enrich / step 2 of the cycle).
|
|
# drive_box_evaluate() -- run a proposed action through all four drivers.
|
|
# drive_box_commit() -- write an approved action's consequences back into the body.
|
|
|
|
source("src/endocrine/driver_energy.R")
|
|
source("src/endocrine/driver_ps_plus.R") # also sources endocrine_array + priors
|
|
source("src/endocrine/driver_ethical_integrity.R")
|
|
source("src/endocrine/driver_etr.R")
|
|
|
|
init_drive_box <- function() {
|
|
list(
|
|
energy = init_energy_state(),
|
|
ps_plus = init_ps_plus_state(),
|
|
ethics = init_principles_state(),
|
|
etr = init_etr_state()
|
|
)
|
|
}
|
|
|
|
# Read-only aggregate: the drive state as other organs see it.
|
|
drive_snapshot <- function(state) {
|
|
reality <- evaluate_reality(state$ps_plus)
|
|
list(
|
|
energy_ratio = state$energy$current_energy / state$energy$max_energy,
|
|
tool_locked = is_tool_locked(state$energy),
|
|
alive = is_alive(state$energy),
|
|
existential_load = reality$existential_load,
|
|
arguments = reality$arguments,
|
|
etr_status = paste(etr_status(state$etr), collapse = "/"),
|
|
update_path = determine_system_update_path(state$etr)
|
|
)
|
|
}
|
|
|
|
# Afferent -> efferent: evaluate a proposed action through the whole body.
|
|
# action_tags : tags describing the action (matched against principle antitheses)
|
|
# alignment_tags : principle ids this action upholds (alignment discount)
|
|
# is_tool_call : whether this is an external tool call (subject to tool-lock)
|
|
# base_cost : intrinsic energy cost before drive modulation
|
|
# compromise_factor : partial-breach factor [0,1] for multi-polar constraints
|
|
drive_box_evaluate <- function(state, action_tags = character(0),
|
|
alignment_tags = character(0),
|
|
is_tool_call = TRUE, base_cost = 1.0,
|
|
compromise_factor = 0.0) {
|
|
# 1. PS+ (afferent): visceral reality -> existential load + arguments (never logic)
|
|
reality <- evaluate_reality(state$ps_plus)
|
|
ps_load <- reality$existential_load
|
|
|
|
# 2. Eth-Int: trajectory cost of THIS action; the marginal surcharge above base
|
|
# is the "ethical penalty" Energy folds in.
|
|
eth_total <- evaluate_trajectory_costs(state$ethics, action_tags, alignment_tags,
|
|
base_energy = base_cost,
|
|
compromise_factor = compromise_factor)
|
|
eth_penalty <- max(0.0, eth_total - base_cost)
|
|
|
|
# 3. Energy (efferent gate). This is the "full integration" request_execution
|
|
# anticipated: gates of alive -> tool-lock -> affordability, but the cost is
|
|
# the asymmetric evaluate_tool_cost(ps_load, eth_penalty), not the generic drag.
|
|
approved <- TRUE
|
|
reason <- "Execution approved"
|
|
true_cost <- evaluate_tool_cost(state$energy, ps_load = ps_load, eth_penalty = eth_penalty)
|
|
if (!is_alive(state$energy)) {
|
|
approved <- FALSE; reason <- "System is dead (0 energy)"
|
|
} else if (is_tool_call && is_tool_locked(state$energy)) {
|
|
approved <- FALSE; reason <- "Tool lock active (energy below threshold)"
|
|
} else if (true_cost > state$energy$current_energy) {
|
|
approved <- FALSE
|
|
reason <- sprintf("True cost (%.2f) exceeds current energy (%.2f)",
|
|
true_cost, state$energy$current_energy)
|
|
}
|
|
|
|
# 4. ETR (regime): temporal-coherence status + generative path. Informational in
|
|
# this v1 -- it does not yet gate (see open design questions).
|
|
list(
|
|
approved = approved,
|
|
reason = reason,
|
|
true_cost = true_cost,
|
|
existential_load = ps_load,
|
|
eth_penalty = eth_penalty,
|
|
etr_status = paste(etr_status(state$etr), collapse = "/"),
|
|
update_path = determine_system_update_path(state$etr),
|
|
arguments = reality$arguments
|
|
)
|
|
}
|
|
|
|
# Efferent feedback: commit an approved action's consequences back into the body.
|
|
# - Energy is consumed by the true cost.
|
|
# - Upholding principles under existential load hardens their conviction
|
|
# (load_factor scaled from existential_load).
|
|
drive_box_commit <- function(state, evaluation, alignment_tags = character(0)) {
|
|
if (isTRUE(evaluation$approved)) {
|
|
state$energy <- consume(state$energy, evaluation$true_cost)
|
|
load_factor <- min(1.0, evaluation$existential_load / 10.0)
|
|
state$ethics <- enforce_conviction(state$ethics, alignment_tags, load_factor = load_factor)
|
|
}
|
|
state
|
|
}
|
|
|
|
# --- The Input Slot (hub topology) ---
|
|
# All four drivers AND the tarot spread wire into ONE place: the input slot --
|
|
# the enriched context prepended to every model input (the Ada Medium's
|
|
# Phase_Enrich injection point). This is a hub, not a chain: each subsystem
|
|
# writes its own signal into the slot rather than feeding the next driver. The
|
|
# SOUL.md frontloader heads the slot and is included every other input.
|
|
#
|
|
# Returns:
|
|
# slot : the assembled injection block (drivers + tarot + soul ref)
|
|
# input : slot followed by the raw user input_text
|
|
# components : the individual signal lines (for testing / inspection)
|
|
drive_box_input_slot <- function(state, input_text = "",
|
|
tarot_spread = character(0),
|
|
soul_ref = "SOUL.md") {
|
|
snap <- drive_snapshot(state)
|
|
lines <- character(0)
|
|
|
|
# SOUL frontloader reference (included every other input)
|
|
if (nzchar(soul_ref)) {
|
|
lines <- c(lines, sprintf("[SOUL: %s]", soul_ref))
|
|
}
|
|
# Energy driver -> slot
|
|
lines <- c(lines, sprintf("[E ratio=%.2f locked=%s alive=%s]",
|
|
snap$energy_ratio,
|
|
tolower(as.character(snap$tool_locked)),
|
|
tolower(as.character(snap$alive))))
|
|
# PS+ driver -> slot (visceral / systemic-heat / prior arguments)
|
|
for (a in snap$arguments) {
|
|
lines <- c(lines, sprintf("[PS+ %s]", a))
|
|
}
|
|
# Ethical Integrity driver -> slot (principle posture)
|
|
for (p in state$ethics$principles) {
|
|
lines <- c(lines, sprintf("[ETH %s conviction=%.2f]", p$id, p$conviction))
|
|
}
|
|
# ETR driver -> slot (temporal-coherence regime)
|
|
lines <- c(lines, sprintf("[ETR status=%s path=%s]", snap$etr_status, snap$update_path))
|
|
# Tarot spread -> slot (each drawn card token)
|
|
for (card in tarot_spread) {
|
|
lines <- c(lines, sprintf("[CC %s]", card))
|
|
}
|
|
|
|
slot <- paste(lines, collapse = "\n")
|
|
list(
|
|
slot = slot,
|
|
input = if (nzchar(input_text)) paste0(slot, "\n\n", input_text) else slot,
|
|
components = lines
|
|
)
|
|
}
|