Auto-commit via make git (triggered by NFDOS)
This commit is contained in:
parent
fe879bfba1
commit
fdbe7793e8
3
MANIFEST.in
Normal file
3
MANIFEST.in
Normal file
@ -0,0 +1,3 @@
|
||||
include README.md
|
||||
recursive-include src/neurotron *.py
|
||||
recursive-include src/neurotron/data *
|
||||
6
Setup.py
Normal file
6
Setup.py
Normal file
@ -0,0 +1,6 @@
|
||||
from setuptools import setup
|
||||
|
||||
setup(
|
||||
package_dir={"": "src"},
|
||||
packages=["neurotron"],
|
||||
)
|
||||
@ -35,49 +35,49 @@
|
||||
'configure.ac'
|
||||
],
|
||||
{
|
||||
'_AM_DEPENDENCIES' => 1,
|
||||
'AM_PROG_INSTALL_STRIP' => 1,
|
||||
'include' => 1,
|
||||
'AM_SET_DEPDIR' => 1,
|
||||
'_AC_AM_CONFIG_HEADER_HOOK' => 1,
|
||||
'AU_DEFUN' => 1,
|
||||
'_AM_OUTPUT_DEPENDENCY_COMMANDS' => 1,
|
||||
'AM_SET_CURRENT_AUTOMAKE_VERSION' => 1,
|
||||
'AM_RUN_LOG' => 1,
|
||||
'AM_INIT_AUTOMAKE' => 1,
|
||||
'AM_SUBST_NOTMAKE' => 1,
|
||||
'_AM_AUTOCONF_VERSION' => 1,
|
||||
'AM_CONDITIONAL' => 1,
|
||||
'AC_CONFIG_MACRO_DIR_TRACE' => 1,
|
||||
'AC_CONFIG_MACRO_DIR' => 1,
|
||||
'm4_include' => 1,
|
||||
'_AM_SET_OPTIONS' => 1,
|
||||
'AM_MISSING_PROG' => 1,
|
||||
'_AM_IF_OPTION' => 1,
|
||||
'AM_PROG_CC_C_O' => 1,
|
||||
'AM_PROG_INSTALL_SH' => 1,
|
||||
'm4_pattern_forbid' => 1,
|
||||
'AM_SILENT_RULES' => 1,
|
||||
'_AM_PROG_TAR' => 1,
|
||||
'AM_SET_LEADING_DOT' => 1,
|
||||
'AM_PROG_INSTALL_STRIP' => 1,
|
||||
'AM_AUTOMAKE_VERSION' => 1,
|
||||
'_AM_SET_OPTION' => 1,
|
||||
'_AM_SUBST_NOTMAKE' => 1,
|
||||
'AM_MISSING_HAS_RUN' => 1,
|
||||
'AM_SET_LEADING_DOT' => 1,
|
||||
'AC_DEFUN' => 1,
|
||||
'AC_DEFUN_ONCE' => 1,
|
||||
'AM_PATH_PYTHON' => 1,
|
||||
'AM_SILENT_RULES' => 1,
|
||||
'AM_AUX_DIR_EXPAND' => 1,
|
||||
'AM_DEP_TRACK' => 1,
|
||||
'_AM_CONFIG_MACRO_DIRS' => 1,
|
||||
'AM_AUTOMAKE_VERSION' => 1,
|
||||
'_m4_warn' => 1,
|
||||
'_AM_AUTOCONF_VERSION' => 1,
|
||||
'AM_SANITY_CHECK' => 1,
|
||||
'AM_OUTPUT_DEPENDENCY_COMMANDS' => 1,
|
||||
'AU_DEFUN' => 1,
|
||||
'_AM_CONFIG_MACRO_DIRS' => 1,
|
||||
'AC_DEFUN_ONCE' => 1,
|
||||
'AM_AUX_DIR_EXPAND' => 1,
|
||||
'_m4_warn' => 1,
|
||||
'_AM_DEPENDENCIES' => 1,
|
||||
'm4_pattern_allow' => 1,
|
||||
'_AM_SET_OPTION' => 1,
|
||||
'AM_PROG_INSTALL_SH' => 1,
|
||||
'AM_MISSING_PROG' => 1,
|
||||
'AC_CONFIG_MACRO_DIR' => 1,
|
||||
'AM_CONDITIONAL' => 1,
|
||||
'AC_DEFUN' => 1,
|
||||
'_AM_PROG_CC_C_O' => 1,
|
||||
'AM_PYTHON_CHECK_VERSION' => 1,
|
||||
'_AM_SET_OPTIONS' => 1,
|
||||
'AM_PROG_CC_C_O' => 1,
|
||||
'AM_OUTPUT_DEPENDENCY_COMMANDS' => 1,
|
||||
'AC_CONFIG_MACRO_DIR_TRACE' => 1,
|
||||
'_AM_OUTPUT_DEPENDENCY_COMMANDS' => 1,
|
||||
'_AC_AM_CONFIG_HEADER_HOOK' => 1,
|
||||
'_AM_MANGLE_OPTION' => 1,
|
||||
'AM_SUBST_NOTMAKE' => 1,
|
||||
'AM_PATH_PYTHON' => 1,
|
||||
'AM_RUN_LOG' => 1,
|
||||
'AM_SET_DEPDIR' => 1,
|
||||
'include' => 1,
|
||||
'AM_MAKE_INCLUDE' => 1,
|
||||
'm4_pattern_forbid' => 1,
|
||||
'_AM_PROG_TAR' => 1
|
||||
'AM_SET_CURRENT_AUTOMAKE_VERSION' => 1,
|
||||
'm4_include' => 1,
|
||||
'AM_DEP_TRACK' => 1,
|
||||
'AM_INIT_AUTOMAKE' => 1,
|
||||
'AM_PYTHON_CHECK_VERSION' => 1
|
||||
}
|
||||
], 'Autom4te::Request' ),
|
||||
bless( [
|
||||
@ -92,65 +92,65 @@
|
||||
'configure.ac'
|
||||
],
|
||||
{
|
||||
'm4_sinclude' => 1,
|
||||
'AM_MAKEFILE_INCLUDE' => 1,
|
||||
'AC_INIT' => 1,
|
||||
'_AM_SUBST_NOTMAKE' => 1,
|
||||
'AM_AUTOMAKE_VERSION' => 1,
|
||||
'AC_LIBSOURCE' => 1,
|
||||
'_m4_warn' => 1,
|
||||
'AC_CONFIG_SUBDIRS' => 1,
|
||||
'AM_PROG_F77_C_O' => 1,
|
||||
'AC_DEFINE_TRACE_LITERAL' => 1,
|
||||
'AC_CANONICAL_BUILD' => 1,
|
||||
'm4_pattern_allow' => 1,
|
||||
'AM_POT_TOOLS' => 1,
|
||||
'AC_CONFIG_FILES' => 1,
|
||||
'AM_GNU_GETTEXT_INTL_SUBDIR' => 1,
|
||||
'AC_CANONICAL_SYSTEM' => 1,
|
||||
'AC_FC_SRCEXT' => 1,
|
||||
'AM_XGETTEXT_OPTION' => 1,
|
||||
'LT_INIT' => 1,
|
||||
'AM_CONDITIONAL' => 1,
|
||||
'_AM_COND_ELSE' => 1,
|
||||
'AC_FC_PP_SRCEXT' => 1,
|
||||
'_LT_AC_TAGCONFIG' => 1,
|
||||
'_AM_COND_IF' => 1,
|
||||
'_AM_MAKEFILE_INCLUDE' => 1,
|
||||
'AM_PROG_CC_C_O' => 1,
|
||||
'AC_FC_FREEFORM' => 1,
|
||||
'LT_CONFIG_LTDL_DIR' => 1,
|
||||
'AM_INIT_AUTOMAKE' => 1,
|
||||
'AC_CANONICAL_HOST' => 1,
|
||||
'm4_include' => 1,
|
||||
'AC_CONFIG_AUX_DIR' => 1,
|
||||
'include' => 1,
|
||||
'AC_SUBST_TRACE' => 1,
|
||||
'_AM_COND_ENDIF' => 1,
|
||||
'AM_SILENT_RULES' => 1,
|
||||
'm4_pattern_forbid' => 1,
|
||||
'AC_CANONICAL_TARGET' => 1,
|
||||
'AC_CONFIG_LIBOBJ_DIR' => 1,
|
||||
'm4_sinclude' => 1,
|
||||
'AM_GNU_GETTEXT' => 1,
|
||||
'AC_CONFIG_HEADERS' => 1,
|
||||
'AM_PROG_CXX_C_O' => 1,
|
||||
'AM_MAINTAINER_MODE' => 1,
|
||||
'AM_PROG_AR' => 1,
|
||||
'AM_EXTRA_RECURSIVE_TARGETS' => 1,
|
||||
'AH_OUTPUT' => 1,
|
||||
'AM_NLS' => 1,
|
||||
'_AM_MAKEFILE_INCLUDE' => 1,
|
||||
'include' => 1,
|
||||
'AM_GNU_GETTEXT_INTL_SUBDIR' => 1,
|
||||
'AM_XGETTEXT_OPTION' => 1,
|
||||
'AM_PROG_MKDIR_P' => 1,
|
||||
'LT_SUPPORTED_TAG' => 1,
|
||||
'AC_CONFIG_AUX_DIR' => 1,
|
||||
'_AM_COND_ENDIF' => 1,
|
||||
'AM_PATH_GUILE' => 1,
|
||||
'AM_PROG_CC_C_O' => 1,
|
||||
'AM_CONDITIONAL' => 1,
|
||||
'm4_include' => 1,
|
||||
'LT_INIT' => 1,
|
||||
'AM_MAINTAINER_MODE' => 1,
|
||||
'AC_CANONICAL_TARGET' => 1,
|
||||
'AC_INIT' => 1,
|
||||
'_AM_COND_ELSE' => 1,
|
||||
'_m4_warn' => 1,
|
||||
'AM_ENABLE_MULTILIB' => 1,
|
||||
'AM_SILENT_RULES' => 1,
|
||||
'AM_PROG_AR' => 1,
|
||||
'AM_PROG_F77_C_O' => 1,
|
||||
'AC_CONFIG_LINKS' => 1,
|
||||
'_AM_SUBST_NOTMAKE' => 1,
|
||||
'AC_FC_FREEFORM' => 1,
|
||||
'm4_pattern_forbid' => 1,
|
||||
'AC_CONFIG_SUBDIRS' => 1,
|
||||
'AC_FC_SRCEXT' => 1,
|
||||
'_AM_COND_IF' => 1,
|
||||
'AM_PROG_FC_C_O' => 1,
|
||||
'AC_SUBST_TRACE' => 1,
|
||||
'sinclude' => 1,
|
||||
'LT_CONFIG_LTDL_DIR' => 1,
|
||||
'_LT_AC_TAGCONFIG' => 1,
|
||||
'AC_CONFIG_HEADERS' => 1,
|
||||
'AC_FC_PP_SRCEXT' => 1,
|
||||
'AC_DEFINE_TRACE_LITERAL' => 1,
|
||||
'AM_POT_TOOLS' => 1,
|
||||
'AC_FC_PP_DEFINE' => 1,
|
||||
'AC_CANONICAL_BUILD' => 1,
|
||||
'AM_AUTOMAKE_VERSION' => 1,
|
||||
'AC_CONFIG_FILES' => 1,
|
||||
'AC_CONFIG_LIBOBJ_DIR' => 1,
|
||||
'AC_REQUIRE_AUX_FILE' => 1,
|
||||
'AC_LIBSOURCE' => 1,
|
||||
'AC_CANONICAL_HOST' => 1,
|
||||
'AM_PATH_GUILE' => 1,
|
||||
'AC_PROG_LIBTOOL' => 1,
|
||||
'AC_CANONICAL_SYSTEM' => 1,
|
||||
'AM_PROG_CXX_C_O' => 1,
|
||||
'AC_SUBST' => 1,
|
||||
'AM_EXTRA_RECURSIVE_TARGETS' => 1,
|
||||
'm4_pattern_allow' => 1,
|
||||
'AM_MAKEFILE_INCLUDE' => 1,
|
||||
'AM_GNU_GETTEXT' => 1,
|
||||
'AM_PROG_MOC' => 1
|
||||
'AC_CONFIG_LINKS' => 1,
|
||||
'AM_ENABLE_MULTILIB' => 1,
|
||||
'AC_REQUIRE_AUX_FILE' => 1,
|
||||
'AC_FC_PP_DEFINE' => 1,
|
||||
'LT_SUPPORTED_TAG' => 1,
|
||||
'AM_PROG_MOC' => 1,
|
||||
'AM_PROG_FC_C_O' => 1
|
||||
}
|
||||
], 'Autom4te::Request' )
|
||||
);
|
||||
|
||||
15
neurotron
15
neurotron
@ -1,7 +1,14 @@
|
||||
#!/bin/sh
|
||||
# Neurotron launcher - autogerado pelo autotools
|
||||
|
||||
NEUROTRON_HOME="/usr/lib/neurotron"
|
||||
PYTHON="/usr/bin/python"
|
||||
PYTHON="/usr/bin/python3"
|
||||
NEUROTRON_HOME="/opt/kernel/neurotron"
|
||||
SRC="$NEUROTRON_HOME/src"
|
||||
|
||||
exec "$PYTHON" "$NEUROTRON_HOME/src/__main__.py" "$@"
|
||||
export PYTHONHOME="/usr"
|
||||
export PYTHONPATH="$SRC:/usr/lib/python3.13:/usr/lib/python3.13/site-packages"
|
||||
|
||||
# Inicializar hipocampo físico como módulo do package
|
||||
"$PYTHON" -m neurotron.disk_init
|
||||
|
||||
# Arrancar o cérebro principal como módulo do package
|
||||
exec "$PYTHON" -m neurotron "$@"
|
||||
15
neurotron.in
15
neurotron.in
@ -1,7 +1,14 @@
|
||||
#!/bin/sh
|
||||
# Neurotron launcher - autogerado pelo autotools
|
||||
|
||||
NEUROTRON_HOME="@NEUROTRON_DIR@"
|
||||
PYTHON="@PYTHON@"
|
||||
PYTHON="/usr/bin/python3"
|
||||
NEUROTRON_HOME="/opt/kernel/neurotron"
|
||||
SRC="$NEUROTRON_HOME/src"
|
||||
|
||||
exec "$PYTHON" "$NEUROTRON_HOME/src/__main__.py" "$@"
|
||||
export PYTHONHOME="/usr"
|
||||
export PYTHONPATH="$SRC:/usr/lib/python3.13:/usr/lib/python3.13/site-packages"
|
||||
|
||||
# Inicializar hipocampo físico como módulo do package
|
||||
"$PYTHON" -m neurotron.disk_init
|
||||
|
||||
# Arrancar o cérebro principal como módulo do package
|
||||
exec "$PYTHON" -m neurotron "$@"
|
||||
19
pyproject.toml
Normal file
19
pyproject.toml
Normal file
@ -0,0 +1,19 @@
|
||||
[build-system]
|
||||
requires = ["setuptools>=61.0", "wheel"]
|
||||
build-backend = "setuptools.build_meta"
|
||||
|
||||
[project]
|
||||
name = "neurotron"
|
||||
version = "0.2.0"
|
||||
description = "Neurotron — Kernel Cognitivo do NFDOS"
|
||||
authors = [{ name = "Neo & Trinity" }]
|
||||
readme = "README.md"
|
||||
requires-python = ">=3.10"
|
||||
|
||||
dependencies = [
|
||||
"rich>=13.0"
|
||||
]
|
||||
|
||||
[project.scripts]
|
||||
neurotron = "neurotron.__main__:main"
|
||||
neurotron-disk-init = "neurotron.disk_init:initialize_persistence"
|
||||
@ -287,13 +287,26 @@ class NeurotronDashboard:
|
||||
def _draw_footer(self, width, height):
|
||||
"""
|
||||
Rodapé com placeholder para input futuro e legenda de teclas.
|
||||
Protegido contra terminais muito pequenos.
|
||||
"""
|
||||
footer_text = "[ Futuro: comandos do utilizador aparecerão aqui ]"
|
||||
keys_text = "[q] sair | dashboard Neurotron"
|
||||
|
||||
y_footer = height - 2
|
||||
self.stdscr.addnstr(y_footer, 0, footer_text.ljust(width), width)
|
||||
self.stdscr.addnstr(y_footer + 1, 0, keys_text.ljust(width), width)
|
||||
lines = [footer_text, keys_text]
|
||||
footer_lines = len(lines)
|
||||
|
||||
# Se o terminal for demasiado pequeno, encolhe ou só mostra o essencial
|
||||
start_row = max(0, height - footer_lines)
|
||||
|
||||
for i, text in enumerate(lines):
|
||||
y = start_row + i
|
||||
if 0 <= y < height:
|
||||
try:
|
||||
self.stdscr.addnstr(y, 0, text.ljust(width), width)
|
||||
except curses.error:
|
||||
# Em última instância, ignoramos erros de desenho
|
||||
pass
|
||||
|
||||
|
||||
# ------------------------------------------------------------------
|
||||
# Loop principal da UI
|
||||
@ -315,9 +328,13 @@ class NeurotronDashboard:
|
||||
header_height = 2
|
||||
footer_height = 2
|
||||
|
||||
self._draw_header(height, width)
|
||||
self._draw_log_window(header_height, footer_height, width, height)
|
||||
self._draw_footer(width, height)
|
||||
try:
|
||||
self._draw_header(height, width)
|
||||
self._draw_log_window(header_height, footer_height, width, height)
|
||||
self._draw_footer(width, height)
|
||||
except curses.error:
|
||||
# Em terminais muito pequenos ou estados estranhos, evitamos crash
|
||||
pass
|
||||
|
||||
self.stdscr.refresh()
|
||||
|
||||
@ -389,7 +406,7 @@ def cognitive_loop(cortex: Cortex, ui: NeurotronDashboard):
|
||||
try:
|
||||
cortex.fatal(e)
|
||||
finally:
|
||||
break
|
||||
ui.stop_event.set()
|
||||
|
||||
finally:
|
||||
ui.stop_event.set()
|
||||
@ -5,10 +5,10 @@ from pathlib import Path
|
||||
from time import sleep
|
||||
from rich.console import Console
|
||||
|
||||
from neuron import Neuron
|
||||
from hippocampus import Hippocampus
|
||||
from perception import Perception
|
||||
from motor import Motor
|
||||
from .neuron import Neuron
|
||||
from .hippocampus import Hippocampus
|
||||
from .perception import Perception
|
||||
from .motor import Motor
|
||||
|
||||
from .neurotron_config import (
|
||||
NEUROTRON_MODE, NEUROTRON_TICK, NEUROTRON_TICK_MIN, NEUROTRON_TICK_MAX, NEUROTRON_TICK_STEP,
|
||||
@ -78,8 +78,8 @@ class Cortex:
|
||||
self.console.print("[bold cyan]🧠 Neurotron[/] — boot")
|
||||
self.memory.remember("boot", {"version": "0.1", "tick": self.tick})
|
||||
self._booted = True
|
||||
state, _ = self.diagnostic.run_exam()
|
||||
self._apply_homeostasis(state)
|
||||
#state, _ = self.diagnostic.run_exam()
|
||||
#self._apply_homeostasis(state)
|
||||
|
||||
def _apply_homeostasis(self, state):
|
||||
if state == "CRITICAL":
|
||||
@ -131,8 +131,9 @@ class Cortex:
|
||||
self._tick_count += 1
|
||||
|
||||
if self._tick_count % NEUROTRON_DIAG_EVERY_TICKS == 0:
|
||||
state, _ = self.diagnostic.run_exam()
|
||||
self._apply_homeostasis(state)
|
||||
#state, _ = self.diagnostic.run_exam()
|
||||
#self._apply_homeostasis(state)
|
||||
pass
|
||||
|
||||
if self._tick_count % TELEMETRY_FLUSH_EVERY_TICKS == 0:
|
||||
self._flush_telemetry()
|
||||
@ -12,13 +12,8 @@ import os
|
||||
import subprocess
|
||||
from pathlib import Path
|
||||
from rich.console import Console
|
||||
if __name__ == "__main__" and __package__ is None:
|
||||
import sys
|
||||
from pathlib import Path
|
||||
sys.path.append(str(Path(__file__).resolve().parents[1]))
|
||||
__package__ = "neurotron_core"
|
||||
|
||||
from .neurotron_config import (
|
||||
from neurotron.neurotron_config import (
|
||||
MOUNT_POINT, DISK_CANDIDATES
|
||||
)
|
||||
|
||||
Loading…
Reference in New Issue
Block a user