nexo-brain 2.0.0 → 2.1.0
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/README.md +140 -41
- package/package.json +15 -3
- package/src/__pycache__/auto_update.cpython-310.pyc +0 -0
- package/src/__pycache__/hnsw_index.cpython-310.pyc +0 -0
- package/src/__pycache__/hnsw_index.cpython-314.pyc +0 -0
- package/src/__pycache__/kg_populate.cpython-310.pyc +0 -0
- package/src/__pycache__/knowledge_graph.cpython-310.pyc +0 -0
- package/src/__pycache__/plugin_loader.cpython-310.pyc +0 -0
- package/src/__pycache__/tools_coordination.cpython-310.pyc +0 -0
- package/src/__pycache__/tools_credentials.cpython-310.pyc +0 -0
- package/src/__pycache__/tools_learnings.cpython-310.pyc +0 -0
- package/src/__pycache__/tools_menu.cpython-310.pyc +0 -0
- package/src/__pycache__/tools_reminders.cpython-310.pyc +0 -0
- package/src/__pycache__/tools_reminders_crud.cpython-310.pyc +0 -0
- package/src/__pycache__/tools_sessions.cpython-310.pyc +0 -0
- package/src/__pycache__/tools_task_history.cpython-310.pyc +0 -0
- package/src/cognitive/__pycache__/__init__.cpython-310.pyc +0 -0
- package/src/cognitive/__pycache__/__init__.cpython-312.pyc +0 -0
- package/src/cognitive/__pycache__/__init__.cpython-314.pyc +0 -0
- package/src/cognitive/__pycache__/_core.cpython-310.pyc +0 -0
- package/src/cognitive/__pycache__/_core.cpython-312.pyc +0 -0
- package/src/cognitive/__pycache__/_core.cpython-314.pyc +0 -0
- package/src/cognitive/__pycache__/_decay.cpython-310.pyc +0 -0
- package/src/cognitive/__pycache__/_decay.cpython-312.pyc +0 -0
- package/src/cognitive/__pycache__/_decay.cpython-314.pyc +0 -0
- package/src/cognitive/__pycache__/_ingest.cpython-310.pyc +0 -0
- package/src/cognitive/__pycache__/_ingest.cpython-312.pyc +0 -0
- package/src/cognitive/__pycache__/_ingest.cpython-314.pyc +0 -0
- package/src/cognitive/__pycache__/_memory.cpython-310.pyc +0 -0
- package/src/cognitive/__pycache__/_memory.cpython-312.pyc +0 -0
- package/src/cognitive/__pycache__/_memory.cpython-314.pyc +0 -0
- package/src/cognitive/__pycache__/_search.cpython-310.pyc +0 -0
- package/src/cognitive/__pycache__/_search.cpython-312.pyc +0 -0
- package/src/cognitive/__pycache__/_search.cpython-314.pyc +0 -0
- package/src/cognitive/__pycache__/_trust.cpython-310.pyc +0 -0
- package/src/cognitive/__pycache__/_trust.cpython-312.pyc +0 -0
- package/src/cognitive/__pycache__/_trust.cpython-314.pyc +0 -0
- package/src/crons/manifest.json +106 -0
- package/src/crons/sync.py +217 -0
- package/src/dashboard/__pycache__/__init__.cpython-310.pyc +0 -0
- package/src/dashboard/__pycache__/app.cpython-310.pyc +0 -0
- package/src/dashboard/app.py +16 -2
- package/src/dashboard/templates/dashboard.html +3 -2
- package/src/db/__pycache__/__init__.cpython-310.pyc +0 -0
- package/src/db/__pycache__/__init__.cpython-312.pyc +0 -0
- package/src/db/__pycache__/__init__.cpython-314.pyc +0 -0
- package/src/db/__pycache__/_core.cpython-310.pyc +0 -0
- package/src/db/__pycache__/_core.cpython-312.pyc +0 -0
- package/src/db/__pycache__/_core.cpython-314.pyc +0 -0
- package/src/db/__pycache__/_credentials.cpython-310.pyc +0 -0
- package/src/db/__pycache__/_credentials.cpython-312.pyc +0 -0
- package/src/db/__pycache__/_credentials.cpython-314.pyc +0 -0
- package/src/db/__pycache__/_entities.cpython-310.pyc +0 -0
- package/src/db/__pycache__/_entities.cpython-312.pyc +0 -0
- package/src/db/__pycache__/_entities.cpython-314.pyc +0 -0
- package/src/db/__pycache__/_episodic.cpython-310.pyc +0 -0
- package/src/db/__pycache__/_episodic.cpython-312.pyc +0 -0
- package/src/db/__pycache__/_episodic.cpython-314.pyc +0 -0
- package/src/db/__pycache__/_evolution.cpython-310.pyc +0 -0
- package/src/db/__pycache__/_evolution.cpython-312.pyc +0 -0
- package/src/db/__pycache__/_evolution.cpython-314.pyc +0 -0
- package/src/db/__pycache__/_fts.cpython-310.pyc +0 -0
- package/src/db/__pycache__/_fts.cpython-312.pyc +0 -0
- package/src/db/__pycache__/_fts.cpython-314.pyc +0 -0
- package/src/db/__pycache__/_learnings.cpython-310.pyc +0 -0
- package/src/db/__pycache__/_learnings.cpython-312.pyc +0 -0
- package/src/db/__pycache__/_learnings.cpython-314.pyc +0 -0
- package/src/db/__pycache__/_reminders.cpython-310.pyc +0 -0
- package/src/db/__pycache__/_reminders.cpython-312.pyc +0 -0
- package/src/db/__pycache__/_reminders.cpython-314.pyc +0 -0
- package/src/db/__pycache__/_schema.cpython-310.pyc +0 -0
- package/src/db/__pycache__/_schema.cpython-312.pyc +0 -0
- package/src/db/__pycache__/_schema.cpython-314.pyc +0 -0
- package/src/db/__pycache__/_sessions.cpython-310.pyc +0 -0
- package/src/db/__pycache__/_sessions.cpython-312.pyc +0 -0
- package/src/db/__pycache__/_sessions.cpython-314.pyc +0 -0
- package/src/db/__pycache__/_tasks.cpython-310.pyc +0 -0
- package/src/db/__pycache__/_tasks.cpython-312.pyc +0 -0
- package/src/db/__pycache__/_tasks.cpython-314.pyc +0 -0
- package/src/db/_episodic.py +1 -1
- package/src/db/_reminders.py +9 -5
- package/src/hooks/session-stop.sh +2 -1
- package/src/plugins/__pycache__/__init__.cpython-310.pyc +0 -0
- package/src/plugins/__pycache__/adaptive_mode.cpython-310.pyc +0 -0
- package/src/plugins/__pycache__/adaptive_mode.cpython-314.pyc +0 -0
- package/src/plugins/__pycache__/agents.cpython-310.pyc +0 -0
- package/src/plugins/__pycache__/artifact_registry.cpython-310.pyc +0 -0
- package/src/plugins/__pycache__/backup.cpython-310.pyc +0 -0
- package/src/plugins/__pycache__/cognitive_memory.cpython-310.pyc +0 -0
- package/src/plugins/__pycache__/core_rules.cpython-310.pyc +0 -0
- package/src/plugins/__pycache__/cortex.cpython-310.pyc +0 -0
- package/src/plugins/__pycache__/entities.cpython-310.pyc +0 -0
- package/src/plugins/__pycache__/episodic_memory.cpython-310.pyc +0 -0
- package/src/plugins/__pycache__/evolution.cpython-310.pyc +0 -0
- package/src/plugins/__pycache__/guard.cpython-310.pyc +0 -0
- package/src/plugins/__pycache__/knowledge_graph_tools.cpython-310.pyc +0 -0
- package/src/plugins/__pycache__/preferences.cpython-310.pyc +0 -0
- package/src/plugins/__pycache__/update.cpython-310.pyc +0 -0
- package/src/plugins/core_rules.py +34 -17
- package/src/plugins/update.py +18 -0
- package/src/scripts/check-context.py +4 -7
- package/src/scripts/deep-sleep/__pycache__/extract.cpython-314.pyc +0 -0
- package/src/scripts/deep-sleep/apply_findings.py +512 -167
- package/src/scripts/deep-sleep/collect.py +480 -0
- package/src/scripts/deep-sleep/extract-prompt.md +233 -0
- package/src/scripts/deep-sleep/extract.py +249 -0
- package/src/scripts/deep-sleep/synthesize-prompt.md +168 -0
- package/src/scripts/deep-sleep/synthesize.py +191 -0
- package/src/scripts/nexo-catchup.py +5 -8
- package/src/scripts/nexo-daily-self-audit.py +28 -19
- package/src/scripts/nexo-deep-sleep.sh +31 -16
- package/src/scripts/nexo-evolution-run.py +5 -20
- package/src/scripts/nexo-followup-hygiene.py +4 -2
- package/src/scripts/nexo-github-monitor.py +6 -9
- package/src/scripts/nexo-immune.py +4 -17
- package/src/scripts/nexo-learning-validator.py +0 -29
- package/src/scripts/nexo-postmortem-consolidator.py +9 -20
- package/src/scripts/nexo-proactive-dashboard.py +1 -0
- package/src/scripts/nexo-sleep.py +8 -18
- package/src/scripts/nexo-synthesis.py +8 -19
- package/src/tools_menu.py +1 -1
- package/src/tools_sessions.py +67 -0
- package/src/__pycache__/auto_close_sessions.cpython-310.pyc +0 -0
- package/src/__pycache__/auto_close_sessions.cpython-314.pyc +0 -0
- package/src/__pycache__/auto_update.cpython-314.pyc +0 -0
- package/src/__pycache__/claim_graph.cpython-310.pyc +0 -0
- package/src/__pycache__/claim_graph.cpython-314.pyc +0 -0
- package/src/__pycache__/evolution_cycle.cpython-310.pyc +0 -0
- package/src/__pycache__/evolution_cycle.cpython-314.pyc +0 -0
- package/src/__pycache__/kg_populate.cpython-314.pyc +0 -0
- package/src/__pycache__/knowledge_graph.cpython-314.pyc +0 -0
- package/src/__pycache__/maintenance.cpython-310.pyc +0 -0
- package/src/__pycache__/maintenance.cpython-314.pyc +0 -0
- package/src/__pycache__/migrate_embeddings.cpython-310.pyc +0 -0
- package/src/__pycache__/migrate_embeddings.cpython-314.pyc +0 -0
- package/src/__pycache__/plugin_loader.cpython-314.pyc +0 -0
- package/src/__pycache__/server.cpython-310.pyc +0 -0
- package/src/__pycache__/server.cpython-314.pyc +0 -0
- package/src/__pycache__/storage_router.cpython-310.pyc +0 -0
- package/src/__pycache__/storage_router.cpython-314.pyc +0 -0
- package/src/__pycache__/tools_coordination.cpython-314.pyc +0 -0
- package/src/__pycache__/tools_credentials.cpython-314.pyc +0 -0
- package/src/__pycache__/tools_learnings.cpython-314.pyc +0 -0
- package/src/__pycache__/tools_menu.cpython-314.pyc +0 -0
- package/src/__pycache__/tools_reminders.cpython-314.pyc +0 -0
- package/src/__pycache__/tools_reminders_crud.cpython-314.pyc +0 -0
- package/src/__pycache__/tools_sessions.cpython-314.pyc +0 -0
- package/src/__pycache__/tools_task_history.cpython-314.pyc +0 -0
- package/src/dashboard/__pycache__/__init__.cpython-314.pyc +0 -0
- package/src/dashboard/__pycache__/app.cpython-314.pyc +0 -0
- package/src/hooks/__pycache__/auto_capture.cpython-310.pyc +0 -0
- package/src/hooks/__pycache__/auto_capture.cpython-314.pyc +0 -0
- package/src/plugins/__pycache__/__init__.cpython-314.pyc +0 -0
- package/src/plugins/__pycache__/agents.cpython-314.pyc +0 -0
- package/src/plugins/__pycache__/artifact_registry.cpython-314.pyc +0 -0
- package/src/plugins/__pycache__/backup.cpython-314.pyc +0 -0
- package/src/plugins/__pycache__/cognitive_memory.cpython-314.pyc +0 -0
- package/src/plugins/__pycache__/core_rules.cpython-314.pyc +0 -0
- package/src/plugins/__pycache__/cortex.cpython-314.pyc +0 -0
- package/src/plugins/__pycache__/entities.cpython-314.pyc +0 -0
- package/src/plugins/__pycache__/episodic_memory.cpython-314.pyc +0 -0
- package/src/plugins/__pycache__/evolution.cpython-314.pyc +0 -0
- package/src/plugins/__pycache__/guard.cpython-314.pyc +0 -0
- package/src/plugins/__pycache__/knowledge_graph_tools.cpython-314.pyc +0 -0
- package/src/plugins/__pycache__/preferences.cpython-314.pyc +0 -0
- package/src/rules/__pycache__/__init__.cpython-310.pyc +0 -0
- package/src/rules/__pycache__/__init__.cpython-314.pyc +0 -0
- package/src/rules/__pycache__/migrate.cpython-310.pyc +0 -0
- package/src/rules/__pycache__/migrate.cpython-314.pyc +0 -0
- package/src/scripts/__pycache__/check-context.cpython-310.pyc +0 -0
- package/src/scripts/__pycache__/check-context.cpython-314.pyc +0 -0
- package/src/scripts/__pycache__/nexo-auto-update.cpython-310.pyc +0 -0
- package/src/scripts/__pycache__/nexo-auto-update.cpython-314.pyc +0 -0
- package/src/scripts/__pycache__/nexo-catchup.cpython-310.pyc +0 -0
- package/src/scripts/__pycache__/nexo-catchup.cpython-314.pyc +0 -0
- package/src/scripts/__pycache__/nexo-cognitive-decay.cpython-310.pyc +0 -0
- package/src/scripts/__pycache__/nexo-cognitive-decay.cpython-314.pyc +0 -0
- package/src/scripts/__pycache__/nexo-daily-self-audit.cpython-310.pyc +0 -0
- package/src/scripts/__pycache__/nexo-daily-self-audit.cpython-314.pyc +0 -0
- package/src/scripts/__pycache__/nexo-evolution-run.cpython-310.pyc +0 -0
- package/src/scripts/__pycache__/nexo-evolution-run.cpython-314.pyc +0 -0
- package/src/scripts/__pycache__/nexo-followup-hygiene.cpython-310.pyc +0 -0
- package/src/scripts/__pycache__/nexo-followup-hygiene.cpython-314.pyc +0 -0
- package/src/scripts/__pycache__/nexo-github-monitor.cpython-310.pyc +0 -0
- package/src/scripts/__pycache__/nexo-github-monitor.cpython-314.pyc +0 -0
- package/src/scripts/__pycache__/nexo-immune.cpython-310.pyc +0 -0
- package/src/scripts/__pycache__/nexo-immune.cpython-314.pyc +0 -0
- package/src/scripts/__pycache__/nexo-install.cpython-310.pyc +0 -0
- package/src/scripts/__pycache__/nexo-install.cpython-314.pyc +0 -0
- package/src/scripts/__pycache__/nexo-learning-housekeep.cpython-310.pyc +0 -0
- package/src/scripts/__pycache__/nexo-learning-housekeep.cpython-314.pyc +0 -0
- package/src/scripts/__pycache__/nexo-learning-validator.cpython-310.pyc +0 -0
- package/src/scripts/__pycache__/nexo-learning-validator.cpython-314.pyc +0 -0
- package/src/scripts/__pycache__/nexo-migrate.cpython-310.pyc +0 -0
- package/src/scripts/__pycache__/nexo-migrate.cpython-314.pyc +0 -0
- package/src/scripts/__pycache__/nexo-postmortem-consolidator.cpython-310.pyc +0 -0
- package/src/scripts/__pycache__/nexo-postmortem-consolidator.cpython-314.pyc +0 -0
- package/src/scripts/__pycache__/nexo-pre-commit.cpython-310.pyc +0 -0
- package/src/scripts/__pycache__/nexo-pre-commit.cpython-314.pyc +0 -0
- package/src/scripts/__pycache__/nexo-proactive-dashboard.cpython-310.pyc +0 -0
- package/src/scripts/__pycache__/nexo-proactive-dashboard.cpython-314.pyc +0 -0
- package/src/scripts/__pycache__/nexo-reflection.cpython-310.pyc +0 -0
- package/src/scripts/__pycache__/nexo-reflection.cpython-314.pyc +0 -0
- package/src/scripts/__pycache__/nexo-runtime-preflight.cpython-310.pyc +0 -0
- package/src/scripts/__pycache__/nexo-runtime-preflight.cpython-314.pyc +0 -0
- package/src/scripts/__pycache__/nexo-send-email.cpython-310.pyc +0 -0
- package/src/scripts/__pycache__/nexo-send-email.cpython-314.pyc +0 -0
- package/src/scripts/__pycache__/nexo-send-reply.cpython-310.pyc +0 -0
- package/src/scripts/__pycache__/nexo-send-reply.cpython-314.pyc +0 -0
- package/src/scripts/__pycache__/nexo-sleep.cpython-310.pyc +0 -0
- package/src/scripts/__pycache__/nexo-sleep.cpython-314.pyc +0 -0
- package/src/scripts/__pycache__/nexo-synthesis.cpython-310.pyc +0 -0
- package/src/scripts/__pycache__/nexo-synthesis.cpython-314.pyc +0 -0
- package/src/scripts/__pycache__/nexo-watchdog-smoke.cpython-310.pyc +0 -0
- package/src/scripts/__pycache__/nexo-watchdog-smoke.cpython-314.pyc +0 -0
- package/src/scripts/deep-sleep/__pycache__/analyze_session.cpython-310.pyc +0 -0
- package/src/scripts/deep-sleep/__pycache__/analyze_session.cpython-314.pyc +0 -0
- package/src/scripts/deep-sleep/__pycache__/apply_findings.cpython-310.pyc +0 -0
- package/src/scripts/deep-sleep/__pycache__/apply_findings.cpython-314.pyc +0 -0
- package/src/scripts/deep-sleep/__pycache__/collect_transcripts.cpython-310.pyc +0 -0
- package/src/scripts/deep-sleep/__pycache__/collect_transcripts.cpython-314.pyc +0 -0
- package/src/scripts/deep-sleep/analyze_session.py +0 -217
- package/src/scripts/deep-sleep/collect_transcripts.py +0 -145
- package/src/scripts/deep-sleep/prompt.md +0 -109
- package/tests/__pycache__/__init__.cpython-310.pyc +0 -0
- package/tests/__pycache__/__init__.cpython-314.pyc +0 -0
- package/tests/__pycache__/conftest.cpython-310-pytest-9.0.2.pyc +0 -0
- package/tests/__pycache__/conftest.cpython-310.pyc +0 -0
- package/tests/__pycache__/conftest.cpython-314-pytest-9.0.2.pyc +0 -0
- package/tests/__pycache__/test_cognitive.cpython-310-pytest-9.0.2.pyc +0 -0
- package/tests/__pycache__/test_cognitive.cpython-310.pyc +0 -0
- package/tests/__pycache__/test_cognitive.cpython-314-pytest-9.0.2.pyc +0 -0
- package/tests/__pycache__/test_knowledge_graph.cpython-310-pytest-9.0.2.pyc +0 -0
- package/tests/__pycache__/test_knowledge_graph.cpython-310.pyc +0 -0
- package/tests/__pycache__/test_knowledge_graph.cpython-314-pytest-9.0.2.pyc +0 -0
- package/tests/__pycache__/test_migrations.cpython-310-pytest-9.0.2.pyc +0 -0
- package/tests/__pycache__/test_migrations.cpython-310.pyc +0 -0
- package/tests/__pycache__/test_migrations.cpython-314-pytest-9.0.2.pyc +0 -0
package/README.md
CHANGED
|
@@ -6,7 +6,7 @@
|
|
|
6
6
|
[](https://github.com/wazionapps/nexo/stargazers)
|
|
7
7
|
[](https://www.gnu.org/licenses/agpl-3.0)
|
|
8
8
|
|
|
9
|
-
> The first AI memory system with architectural inhibitory control — the agent reasons about whether to act before acting. Cognitive Cortex, Context Continuity via auto-compaction hooks, Smart Startup, Context Packets, Auto-Prime,
|
|
9
|
+
> The first AI memory system with architectural inhibitory control — the agent reasons about whether to act before acting. Cognitive Cortex, Context Continuity via auto-compaction hooks, Smart Startup, Context Packets, Auto-Prime, 30 Core Rules as DNA, auto-update, auto-diary, and CLAUDE.md version tracker. Battle-tested from 6 months of production use, validated via multi-AI debate.
|
|
10
10
|
|
|
11
11
|
**NEXO Brain transforms any MCP-compatible AI agent from a stateless assistant into a cognitive partner that remembers, learns, forgets, adapts, and builds a relationship with you over time.**
|
|
12
12
|
|
|
@@ -198,7 +198,7 @@ This means long sessions (8+ hours) feel like one continuous conversation instea
|
|
|
198
198
|
|
|
199
199
|
## Cognitive Features
|
|
200
200
|
|
|
201
|
-
NEXO Brain provides
|
|
201
|
+
NEXO Brain provides **147+ MCP tools** across 20+ categories. These features implement cognitive science concepts that go beyond basic memory:
|
|
202
202
|
|
|
203
203
|
### Input Pipeline
|
|
204
204
|
|
|
@@ -267,28 +267,89 @@ NEXO Brain was evaluated on [LoCoMo](https://github.com/snap-research/locomo) (A
|
|
|
267
267
|
|
|
268
268
|
Full results in [`benchmarks/locomo/results/`](benchmarks/locomo/results/).
|
|
269
269
|
|
|
270
|
-
## Nervous System (
|
|
270
|
+
## Nervous System (v2.0.0)
|
|
271
271
|
|
|
272
|
-
NEXO Brain doesn't just respond — it runs autonomous processes in the background, like a biological nervous system.
|
|
272
|
+
NEXO Brain doesn't just respond — it runs 15 autonomous processes in the background, like a biological nervous system. They handle maintenance, health monitoring, and self-improvement without any user interaction:
|
|
273
273
|
|
|
274
274
|
| Script | Schedule | What It Does |
|
|
275
275
|
|--------|----------|-------------|
|
|
276
276
|
| **cognitive-decay** | 03:00 daily | Ebbinghaus decay + memory consolidation + duplicate merging + dreaming |
|
|
277
|
-
| **
|
|
278
|
-
| **
|
|
277
|
+
| **sleep** | 04:00 daily | Synaptic pruning, expired data cleanup |
|
|
278
|
+
| **deep-sleep** | 04:30 daily | 4-phase overnight pipeline: Collect→Extract→Synthesize→Apply. Analyzes all sessions, detects emotional patterns, abandoned projects, productivity issues, and auto-creates learnings |
|
|
279
|
+
| **self-audit** | 07:00 daily | Health checks, guard stats, trust score review, metrics |
|
|
280
|
+
| **postmortem** | 23:30 daily | Session consolidation, extract patterns from day's events |
|
|
279
281
|
| **catchup** | On boot | Runs any missed scheduled processes (Mac was off/asleep) |
|
|
280
|
-
| **
|
|
281
|
-
| **
|
|
282
|
-
| **
|
|
283
|
-
| **
|
|
284
|
-
| **
|
|
285
|
-
| **
|
|
282
|
+
| **tcc-approve** | On boot (macOS) | Auto-approve macOS permissions for Claude Code updates |
|
|
283
|
+
| **prevent-sleep** | Always (daemon) | Keeps machine awake for nocturnal processes (caffeinate/systemd-inhibit) |
|
|
284
|
+
| **evolution** | Weekly (Sun) | Self-improvement proposals — NEXO suggests and applies enhancements |
|
|
285
|
+
| **followup-hygiene** | Weekly (Sun) | Normalizes statuses, flags stale followups, cleans orphans |
|
|
286
|
+
| **immune** | Every 30 min | Quarantine processing, memory promotion/rejection, synaptic pruning |
|
|
287
|
+
| **synthesis** | Every 2 hours | Memory synthesis — discovers cross-memory patterns |
|
|
288
|
+
| **backup** | Every hour | SQLite database backups |
|
|
289
|
+
| **watchdog** | Every 5 min | Monitors services, LaunchAgents, and infrastructure health |
|
|
290
|
+
| **auto-close-sessions** | Every 5 min | Cleans stale sessions |
|
|
286
291
|
|
|
287
|
-
All
|
|
292
|
+
All processes are defined in `src/crons/manifest.json` and auto-synced to your system by `nexo_update`. On macOS they run via LaunchAgents; on Linux via systemd user timers (or crontab fallback). Personal crons (your own scripts) are never touched by the sync. If your Mac was asleep during a scheduled process, the catch-up script re-runs everything in order when it wakes.
|
|
288
293
|
|
|
289
|
-
|
|
294
|
+
## Deep Sleep v2 — Overnight Learning (v2.1.0)
|
|
290
295
|
|
|
291
|
-
|
|
296
|
+
Deep Sleep is a 4-phase pipeline that runs at 4:30 AM and makes NEXO smarter while you sleep:
|
|
297
|
+
|
|
298
|
+
```
|
|
299
|
+
Phase 1: COLLECT (Python)
|
|
300
|
+
├── Reads all session transcripts from the day
|
|
301
|
+
├── Splits each session into individual .txt files
|
|
302
|
+
└── Gathers DB state (followups, learnings, trust)
|
|
303
|
+
|
|
304
|
+
Phase 2: EXTRACT (Opus, one call per session)
|
|
305
|
+
├── 8 types of findings per session:
|
|
306
|
+
│ ├── Uncaptured corrections (user corrected agent, no learning saved)
|
|
307
|
+
│ ├── Self-corrected errors (knowledge gaps to fix)
|
|
308
|
+
│ ├── Unformalised ideas (mentioned but never tracked)
|
|
309
|
+
│ ├── Missed commitments (promised but no followup)
|
|
310
|
+
│ ├── Protocol violations (guard_check, heartbeat, change_log)
|
|
311
|
+
│ ├── Emotional signals (frustration, flow, satisfaction)
|
|
312
|
+
│ ├── Abandoned projects (started but not finished)
|
|
313
|
+
│ └── Productivity patterns (corrections, proactivity, tool efficiency)
|
|
314
|
+
└── Outputs per-session JSON with findings + emotional timeline
|
|
315
|
+
|
|
316
|
+
Phase 3: SYNTHESIZE (Opus, one call)
|
|
317
|
+
├── Cross-session patterns (same error in 5 sessions = systemic)
|
|
318
|
+
├── Daily mood arc with score (0.0 = terrible day, 1.0 = great day)
|
|
319
|
+
├── Recurring triggers (what causes frustration vs flow)
|
|
320
|
+
├── Productivity analysis (corrections, tool efficiency)
|
|
321
|
+
├── Abandoned project detection
|
|
322
|
+
├── Morning agenda (prioritized)
|
|
323
|
+
└── Calibration recommendations
|
|
324
|
+
|
|
325
|
+
Phase 4: APPLY (Python)
|
|
326
|
+
├── Auto-creates learnings from high-confidence findings
|
|
327
|
+
├── Creates followups for unfinished work
|
|
328
|
+
├── Updates mood_history in calibration.json (30-day rolling)
|
|
329
|
+
├── Generates session-tone.json (emotional guidance for next session)
|
|
330
|
+
└── Writes morning-briefing.md
|
|
331
|
+
```
|
|
332
|
+
|
|
333
|
+
### Session Tone — Emotional Intelligence
|
|
334
|
+
|
|
335
|
+
Deep Sleep generates a `session-tone.json` that tells NEXO how to behave next morning:
|
|
336
|
+
|
|
337
|
+
- **Agent made many mistakes yesterday** → Acknowledge them, show what was learned, demonstrate improvement
|
|
338
|
+
- **User had a bad day (mood < 40%)** → Supportive approach, lighter start, avoid known frustration triggers
|
|
339
|
+
- **User had a great day (mood > 70%)** → Reinforce momentum, reference wins, push ambitious goals
|
|
340
|
+
- **Agent was too reactive** → Be proactive today, don't wait for instructions
|
|
341
|
+
|
|
342
|
+
This is read by `nexo_smart_startup` and injected into every session's context. NEXO adapts its personality based on real behavioral data, not just configuration.
|
|
343
|
+
|
|
344
|
+
## Cron Manifest (v2.1.0)
|
|
345
|
+
|
|
346
|
+
All core crons are defined in `src/crons/manifest.json`. When you run `nexo_update`, the sync script:
|
|
347
|
+
- **Installs** new crons from the manifest
|
|
348
|
+
- **Updates** changed schedules/intervals
|
|
349
|
+
- **Removes** crons no longer in the manifest (only core ones)
|
|
350
|
+
- **Never touches** personal crons you created yourself
|
|
351
|
+
|
|
352
|
+
Run `python3 src/crons/sync.py --dry-run` to preview changes without applying.
|
|
292
353
|
|
|
293
354
|
## Dashboard (v1.6.0)
|
|
294
355
|
|
|
@@ -315,14 +376,13 @@ Memory alone doesn't make a co-operator. What makes the difference is the **beha
|
|
|
315
376
|
|
|
316
377
|
| Hook | When | What It Does |
|
|
317
378
|
|------|------|-------------|
|
|
318
|
-
| **SessionStart** | Session opens |
|
|
379
|
+
| **SessionStart (timestamp)** | Session opens | Writes session timestamp for staleness detection |
|
|
380
|
+
| **SessionStart (briefing)** | Session opens | Generates briefing from SQLite: overdue reminders, today's tasks, pending followups, active sessions. Cleans up post-mortem flags. |
|
|
319
381
|
| **Stop** | Session ends | Mandatory post-mortem: self-critique (5 questions), session buffer entry, followup creation, proactive seeds for next session |
|
|
320
|
-
| **PostToolUse** | After each tool call | Captures meaningful mutations to the Sensory Register +
|
|
321
|
-
| **
|
|
382
|
+
| **PostToolUse (capture)** | After each tool call | Captures meaningful mutations to the Sensory Register + auto-diary every 10 tool calls |
|
|
383
|
+
| **PostToolUse (inbox)** | After each tool call | Inter-terminal inbox delivery between parallel sessions |
|
|
384
|
+
| **PreCompact** | Before context compression | Saves full session checkpoint to SQLite — task, files, decisions, errors, reasoning thread + emergency diary |
|
|
322
385
|
| **PostCompact** | After context compression | Re-injects Core Memory Block so the session continues seamlessly from where it left off |
|
|
323
|
-
| **PreToolUse** | Before tool execution | Validates tool parameters and injects guard context for destructive operations |
|
|
324
|
-
| **Notification** | External events | Routes incoming notifications (GitHub, email, watchdog alerts) to the active session |
|
|
325
|
-
| **Caffeinate** | Always (optional) | Keeps Mac awake for nocturnal cognitive processes |
|
|
326
386
|
|
|
327
387
|
### The Session Lifecycle
|
|
328
388
|
|
|
@@ -419,8 +479,7 @@ The installer handles everything:
|
|
|
419
479
|
- Node.js project detected
|
|
420
480
|
Configuring MCP server...
|
|
421
481
|
Setting up nervous system...
|
|
422
|
-
|
|
423
|
-
13 LaunchAgent templates installed.
|
|
482
|
+
15 autonomous processes configured.
|
|
424
483
|
Dashboard configured at localhost:6174.
|
|
425
484
|
Caffeinate enabled.
|
|
426
485
|
Generating operator instructions...
|
|
@@ -451,26 +510,42 @@ That's it. No need to run `claude` manually. Your operator will greet you immedi
|
|
|
451
510
|
| Component | What | Where |
|
|
452
511
|
|-----------|------|-------|
|
|
453
512
|
| Cognitive engine | Python: fastembed, numpy, vector search | pip packages |
|
|
454
|
-
| MCP server |
|
|
455
|
-
| Plugins | Guard, episodic memory, cognitive memory, entities, preferences |
|
|
456
|
-
| Hooks (7) | SessionStart, Stop, PostToolUse, PreCompact, PostCompact
|
|
457
|
-
| Nervous system |
|
|
458
|
-
| Dashboard | Web UI at localhost:6174 (6 pages) |
|
|
513
|
+
| MCP server | 147+ tools for memory, cognition, learning, guard | NEXO_HOME/ |
|
|
514
|
+
| Plugins | Guard, episodic memory, cognitive memory, entities, preferences, update, etc. | Code: src/plugins/, Personal: NEXO_HOME/plugins/ |
|
|
515
|
+
| Hooks (7) | SessionStart, Stop, PostToolUse, PreCompact, PostCompact | NEXO_HOME/hooks/ |
|
|
516
|
+
| Nervous system | 15 autonomous processes (decay, sleep, audit, evolution, watchdog, etc.) | NEXO_HOME/scripts/ |
|
|
517
|
+
| Dashboard | Web UI at localhost:6174 (6 pages) | NEXO_HOME/dashboard/ |
|
|
459
518
|
| CLAUDE.md | Complete operator instructions (Codex, hooks, guard, trust, memory) | ~/.claude/CLAUDE.md |
|
|
460
|
-
|
|
|
461
|
-
| Auto-update |
|
|
462
|
-
|
|
|
519
|
+
| Schedule config | schedule.json with customizable process times and timezone | NEXO_HOME/config/ |
|
|
520
|
+
| Auto-update | Non-blocking startup check (5s max), opt-out via schedule.json | Built into server startup |
|
|
521
|
+
| CLAUDE.md tracker | Version-tracked core sections with safe updates preserving customizations | Built into auto-update |
|
|
522
|
+
| Auto-diary | 3-layer system: PostToolUse every 10 calls, PreCompact emergency, heartbeat DIARY_OVERDUE | Built into hooks |
|
|
523
|
+
| Claude Code config | MCP server + 7 hooks + 15 processes registered | ~/.claude/settings.json |
|
|
463
524
|
|
|
464
525
|
### Requirements
|
|
465
526
|
|
|
466
527
|
- **macOS or Linux** (Windows via [WSL](https://learn.microsoft.com/en-us/windows/wsl/install))
|
|
467
528
|
- **Node.js 18+** (for the installer)
|
|
468
|
-
- **Claude Opus (latest version) strongly recommended.** NEXO Brain provides
|
|
529
|
+
- **Claude Opus (latest version) strongly recommended.** NEXO Brain provides 147+ MCP tools across 20+ categories. This cognitive load requires a top-tier model with large context window. Smaller models (Haiku, Sonnet) may struggle with tool selection and produce inconsistent results. Opus handles all 147+ tools without hesitation.
|
|
469
530
|
- Python 3, Homebrew, and Claude Code are installed automatically if missing.
|
|
470
531
|
|
|
471
532
|
## Architecture
|
|
472
533
|
|
|
473
|
-
###
|
|
534
|
+
### Unified Code/Data Separation (v2.0.0)
|
|
535
|
+
|
|
536
|
+
NEXO Brain separates **code** (immutable, in the repo or npm package) from **data** (personal, in `NEXO_HOME`):
|
|
537
|
+
|
|
538
|
+
| Path | Contents |
|
|
539
|
+
|------|----------|
|
|
540
|
+
| `src/` (or npm package) | Server, plugins, hooks, scripts — never modified at runtime |
|
|
541
|
+
| `NEXO_HOME/` (default `~/.nexo/`) | Database, config, personal plugins, schedule, backups |
|
|
542
|
+
| `NEXO_HOME/config/schedule.json` | Customizable process schedules, timezone, auto_update flag |
|
|
543
|
+
| `NEXO_HOME/plugins/` | Personal plugins that override or extend repo plugins |
|
|
544
|
+
| `NEXO_HOME/data/` | SQLite databases (nexo.db, cognitive.db), migration state |
|
|
545
|
+
|
|
546
|
+
The plugin loader scans `src/plugins/` first (base), then `NEXO_HOME/plugins/` (personal override by filename). This dual-directory approach lets you extend NEXO without forking the repo.
|
|
547
|
+
|
|
548
|
+
### 147+ MCP Tools across 20+ Categories
|
|
474
549
|
|
|
475
550
|
| Category | Count | Tools | Purpose |
|
|
476
551
|
|----------|-------|-------|---------|
|
|
@@ -495,10 +570,11 @@ That's it. No need to run `claude` manually. Your operator will greet you immedi
|
|
|
495
570
|
| Adaptive & Somatic | 4 | adaptive_weights, adaptive_override, somatic_check, somatic_stats | Learned signal weights + pain memory per file |
|
|
496
571
|
| Knowledge Graph | 4 | kg_query, kg_path, kg_neighbors, kg_stats | Bi-temporal entity-relationship graph |
|
|
497
572
|
| Context Continuity | 2 | checkpoint_save, checkpoint_read | Auto-compaction session preservation |
|
|
573
|
+
| Update | 1 | update | Pull latest code, backup, migrate, verify (with rollback) |
|
|
498
574
|
|
|
499
575
|
### Plugin System
|
|
500
576
|
|
|
501
|
-
NEXO Brain supports hot-loadable plugins. Drop a `.py` file in
|
|
577
|
+
NEXO Brain supports hot-loadable plugins with a dual-directory loader. Base plugins live in `src/plugins/` (repo). Personal plugins go in `NEXO_HOME/plugins/` and can override base plugins by filename. Drop a `.py` file in `NEXO_HOME/plugins/`:
|
|
502
578
|
|
|
503
579
|
```python
|
|
504
580
|
# my_plugin.py
|
|
@@ -552,7 +628,7 @@ NEXO Brain is designed as an MCP server. Claude Code is the primary supported cl
|
|
|
552
628
|
npx nexo-brain
|
|
553
629
|
```
|
|
554
630
|
|
|
555
|
-
All
|
|
631
|
+
All 147+ tools are available immediately after installation. The installer configures Claude Code's `~/.claude/settings.json` automatically.
|
|
556
632
|
|
|
557
633
|
### OpenClaw
|
|
558
634
|
|
|
@@ -611,7 +687,7 @@ This replaces OpenClaw's default memory system with NEXO Brain's full cognitive
|
|
|
611
687
|
|
|
612
688
|
### Any MCP Client
|
|
613
689
|
|
|
614
|
-
NEXO Brain works with any application that supports the MCP protocol. Configure it as an MCP server pointing to
|
|
690
|
+
NEXO Brain works with any application that supports the MCP protocol. Configure it as an MCP server pointing to `server.py` in the code directory, with `NEXO_HOME` env var set.
|
|
615
691
|
|
|
616
692
|
## Listed On
|
|
617
693
|
|
|
@@ -648,22 +724,45 @@ If NEXO Brain is useful to you, consider:
|
|
|
648
724
|
|
|
649
725
|
[](https://star-history.com/#wazionapps/nexo&Date)
|
|
650
726
|
|
|
727
|
+
## Known Issues (v2.0.0)
|
|
728
|
+
|
|
729
|
+
| Priority | Issue | Planned |
|
|
730
|
+
|----------|-------|---------|
|
|
731
|
+
| P0 | Credentials stored in plaintext SQLite — protect with filesystem permissions | v2.1.0 |
|
|
732
|
+
| P0 | Shell hooks use SQL string interpolation (injection risk) | v2.1.0 |
|
|
733
|
+
| P0 | Dashboard has no authentication (localhost only) | v2.1.0 |
|
|
734
|
+
| P0 | Database migrations are fail-open (errors logged but not blocking) | v2.1.0 |
|
|
735
|
+
|
|
651
736
|
## Changelog
|
|
652
737
|
|
|
738
|
+
### v2.0.0 — Unified Architecture (2026-03-31)
|
|
739
|
+
- **Code/data separation**: Code in repo (`src/`), personal data in `NEXO_HOME` (default `~/.nexo/`). `NEXO_HOME` env var required.
|
|
740
|
+
- **Plugin loader dual-directory**: Scans `src/plugins/` (base) then `NEXO_HOME/plugins/` (personal override by filename).
|
|
741
|
+
- **Auto-update on startup**: Non-blocking (5s max), resilient, opt-out via `schedule.json`. Separate from manual `nexo_update` tool.
|
|
742
|
+
- **Auto-diary**: 3-layer system — PostToolUse every 10 calls, PreCompact emergency save, heartbeat DIARY_OVERDUE signal.
|
|
743
|
+
- **CLAUDE.md version tracker**: Section markers enable safe core updates without losing user customizations.
|
|
744
|
+
- **schedule.json**: Customizable process schedules with timezone support and `auto_update` flag.
|
|
745
|
+
- **15 autonomous processes**: Added auto-close-sessions, synthesis, backup, tcc-approve, prevent-sleep (cross-platform).
|
|
746
|
+
- **7 hooks**: SessionStart (timestamp + briefing), Stop, PostToolUse (capture + inbox), PreCompact, PostCompact.
|
|
747
|
+
- **147+ MCP tools**: Added `nexo_update` tool for manual updates with rollback.
|
|
748
|
+
- **Lambda fix**: Decay values were 24x too aggressive (STM: 7h to 7d, LTM: 2.4d to 60d).
|
|
749
|
+
- **Guard scoping**: Was returning 35+ irrelevant blocking rules; now scoped to area and gated to high/critical.
|
|
750
|
+
- **12 rounds of external audit**: ~60 findings resolved.
|
|
751
|
+
|
|
653
752
|
### v1.7.0 — Full Internationalization + Linux Support (2026-03-31)
|
|
654
753
|
- **Full i18n**: All UI strings, error messages, DB status values in English. NLP detection patterns retain bilingual keywords (Spanish + English) for multilingual user support.
|
|
655
754
|
- **Linux support**: systemd user timers (preferred) or crontab fallback for all automated cognitive processes.
|
|
656
755
|
- **Auto-resolve followups**: Change log entries automatically cross-reference and complete matching open followups.
|
|
657
756
|
- **Free-form learning categories**: No more hardcoded category validation — use any category name.
|
|
658
|
-
- **CLAUDE.md template rewrite**: 494
|
|
757
|
+
- **CLAUDE.md template rewrite**: 494 to 127 lines, compact procedural format with full heartbeat signal reactions.
|
|
659
758
|
- **Complete sanitization**: All hardcoded paths use `NEXO_HOME` env var. Zero personal data in the repo.
|
|
660
759
|
|
|
661
760
|
### v1.6.0 — Nervous System + Dashboard v2 (2026-03-30)
|
|
662
761
|
- **Nervous System**: 11 autonomous scripts (decay, deep sleep, self-audit, catchup, evolution, followup hygiene, immune, watchdog, github monitor, learning validator)
|
|
663
762
|
- **Dashboard v2**: 6 interactive pages at localhost:6174 (Overview, Graph, Memory, Somatic, Adaptive, Sessions)
|
|
664
|
-
- **LaunchAgent Templates**:
|
|
665
|
-
- **Hooks**:
|
|
666
|
-
- **Installer**: Now configures dashboard LaunchAgent, nervous system scripts, and all
|
|
763
|
+
- **LaunchAgent Templates**: macOS automation templates included in the package for scheduling the nervous system
|
|
764
|
+
- **Hooks**: 7 total — SessionStart, Stop, PostToolUse, PreCompact, PostCompact
|
|
765
|
+
- **Installer**: Now configures dashboard LaunchAgent, nervous system scripts, and all templates automatically
|
|
667
766
|
|
|
668
767
|
### v1.5.2 — Deep Sleep (2026-03-29)
|
|
669
768
|
- **Deep Sleep**: Reads full session transcripts (not just diary) — finds uncaptured corrections, protocol violations, missed commitments
|
|
@@ -719,7 +818,7 @@ If NEXO Brain is useful to you, consider:
|
|
|
719
818
|
- New tools: `nexo_checkpoint_save`, `nexo_checkpoint_read`
|
|
720
819
|
- Heartbeat automatically maintains checkpoint every interaction
|
|
721
820
|
- Core Memory Block re-injected post-compaction with task, files, decisions, reasoning thread
|
|
722
|
-
- 115+ total tools, 20 categories
|
|
821
|
+
- 115+ total tools at the time, 20 categories
|
|
723
822
|
|
|
724
823
|
### v1.0.0 — Cognitive Cortex + Stable Release (2026-03-26)
|
|
725
824
|
- **Cognitive Cortex**: architectural inhibitory control (ASK/PROPOSE/ACT modes)
|
package/package.json
CHANGED
|
@@ -1,8 +1,8 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "nexo-brain",
|
|
3
|
-
"version": "2.
|
|
3
|
+
"version": "2.1.0",
|
|
4
4
|
"mcpName": "io.github.wazionapps/nexo",
|
|
5
|
-
"description": "NEXO — Cognitive co-operator for Claude Code.
|
|
5
|
+
"description": "NEXO — Cognitive co-operator for Claude Code. Memory, emotional intelligence, overnight learning (Deep Sleep), cron management, trust scoring, and adaptive calibration.",
|
|
6
6
|
"bin": {
|
|
7
7
|
"nexo-brain": "./bin/nexo-brain.js"
|
|
8
8
|
},
|
|
@@ -26,7 +26,19 @@
|
|
|
26
26
|
"nervous-system",
|
|
27
27
|
"i18n",
|
|
28
28
|
"openclaw",
|
|
29
|
-
"openclaw-plugin"
|
|
29
|
+
"openclaw-plugin",
|
|
30
|
+
"auto-update",
|
|
31
|
+
"auto-diary",
|
|
32
|
+
"plugin-system",
|
|
33
|
+
"schedule-json",
|
|
34
|
+
"nexo-home",
|
|
35
|
+
"deep-sleep",
|
|
36
|
+
"emotional-intelligence",
|
|
37
|
+
"overnight-analysis",
|
|
38
|
+
"cron-manifest",
|
|
39
|
+
"session-tone",
|
|
40
|
+
"mood-tracking",
|
|
41
|
+
"productivity-analysis"
|
|
30
42
|
],
|
|
31
43
|
"author": "NEXO Brain <info@nexo-brain.com>",
|
|
32
44
|
"license": "AGPL-3.0",
|
|
Binary file
|
|
Binary file
|
|
Binary file
|
|
Binary file
|
|
Binary file
|
|
Binary file
|
|
Binary file
|
|
Binary file
|
|
Binary file
|
|
Binary file
|
|
Binary file
|
|
Binary file
|
|
Binary file
|
|
Binary file
|
|
Binary file
|
|
Binary file
|
|
Binary file
|
|
Binary file
|
|
Binary file
|
|
Binary file
|
|
Binary file
|
|
Binary file
|
|
Binary file
|
|
Binary file
|
|
Binary file
|
|
Binary file
|
|
Binary file
|
|
Binary file
|
|
Binary file
|
|
Binary file
|
|
Binary file
|
|
Binary file
|
|
Binary file
|
|
Binary file
|
|
Binary file
|
|
@@ -0,0 +1,106 @@
|
|
|
1
|
+
{
|
|
2
|
+
"$schema": "NEXO cron manifest — synced by nexo_update to LaunchAgents (macOS) or systemd timers (Linux)",
|
|
3
|
+
"version": 2,
|
|
4
|
+
"crons": [
|
|
5
|
+
{
|
|
6
|
+
"id": "deep-sleep",
|
|
7
|
+
"script": "scripts/nexo-deep-sleep.sh",
|
|
8
|
+
"type": "shell",
|
|
9
|
+
"schedule": {"hour": 4, "minute": 30},
|
|
10
|
+
"description": "Overnight session analysis — 4 phases: collect, extract, synthesize, apply",
|
|
11
|
+
"core": true
|
|
12
|
+
},
|
|
13
|
+
{
|
|
14
|
+
"id": "sleep",
|
|
15
|
+
"script": "scripts/nexo-sleep.py",
|
|
16
|
+
"schedule": {"hour": 4, "minute": 0},
|
|
17
|
+
"description": "Nightly memory consolidation and dream cycle",
|
|
18
|
+
"core": true
|
|
19
|
+
},
|
|
20
|
+
{
|
|
21
|
+
"id": "cognitive-decay",
|
|
22
|
+
"script": "scripts/nexo-cognitive-decay.py",
|
|
23
|
+
"schedule": {"hour": 3, "minute": 0},
|
|
24
|
+
"description": "Memory decay — reduce strength of unaccessed memories",
|
|
25
|
+
"core": true
|
|
26
|
+
},
|
|
27
|
+
{
|
|
28
|
+
"id": "learning-housekeep",
|
|
29
|
+
"script": "scripts/nexo-learning-housekeep.py",
|
|
30
|
+
"schedule": {"hour": 3, "minute": 15},
|
|
31
|
+
"description": "Archive stale learnings, deduplicate, validate",
|
|
32
|
+
"core": true
|
|
33
|
+
},
|
|
34
|
+
{
|
|
35
|
+
"id": "immune",
|
|
36
|
+
"script": "scripts/nexo-immune.py",
|
|
37
|
+
"interval_seconds": 1800,
|
|
38
|
+
"description": "Health monitor — checks MCP, DB, services, auto-repairs",
|
|
39
|
+
"core": true
|
|
40
|
+
},
|
|
41
|
+
{
|
|
42
|
+
"id": "watchdog",
|
|
43
|
+
"script": "scripts/nexo-watchdog.sh",
|
|
44
|
+
"type": "shell",
|
|
45
|
+
"interval_seconds": 1800,
|
|
46
|
+
"description": "System health checks — snapshots, logs, alerts",
|
|
47
|
+
"core": true
|
|
48
|
+
},
|
|
49
|
+
{
|
|
50
|
+
"id": "self-audit",
|
|
51
|
+
"script": "scripts/nexo-daily-self-audit.py",
|
|
52
|
+
"schedule": {"hour": 7, "minute": 0},
|
|
53
|
+
"description": "Daily self-audit — validates learnings, protocols, drift",
|
|
54
|
+
"core": true
|
|
55
|
+
},
|
|
56
|
+
{
|
|
57
|
+
"id": "postmortem",
|
|
58
|
+
"script": "scripts/nexo-postmortem-consolidator.py",
|
|
59
|
+
"schedule": {"hour": 23, "minute": 30},
|
|
60
|
+
"description": "Consolidate session post-mortems into patterns",
|
|
61
|
+
"core": true
|
|
62
|
+
},
|
|
63
|
+
{
|
|
64
|
+
"id": "evolution",
|
|
65
|
+
"script": "scripts/nexo-evolution-run.py",
|
|
66
|
+
"schedule": {"hour": 5, "minute": 0, "weekday": 0},
|
|
67
|
+
"description": "Weekly self-improvement cycle — propose and evaluate changes",
|
|
68
|
+
"core": true
|
|
69
|
+
},
|
|
70
|
+
{
|
|
71
|
+
"id": "followup-hygiene",
|
|
72
|
+
"script": "scripts/nexo-followup-hygiene.py",
|
|
73
|
+
"schedule": {"hour": 5, "minute": 0},
|
|
74
|
+
"description": "Clean stale followups, archive completed, validate dates",
|
|
75
|
+
"core": true
|
|
76
|
+
},
|
|
77
|
+
{
|
|
78
|
+
"id": "synthesis",
|
|
79
|
+
"script": "scripts/nexo-synthesis.py",
|
|
80
|
+
"interval_seconds": 7200,
|
|
81
|
+
"description": "Periodic synthesis — cross-reference learnings, decisions, changes",
|
|
82
|
+
"core": true
|
|
83
|
+
},
|
|
84
|
+
{
|
|
85
|
+
"id": "auto-close-sessions",
|
|
86
|
+
"script": "scripts/nexo-auto-close-sessions.py",
|
|
87
|
+
"interval_seconds": 300,
|
|
88
|
+
"description": "Close stale sessions that lost their parent process",
|
|
89
|
+
"core": true
|
|
90
|
+
},
|
|
91
|
+
{
|
|
92
|
+
"id": "github-monitor",
|
|
93
|
+
"script": "scripts/nexo-github-monitor.py",
|
|
94
|
+
"schedule": {"hour": 8, "minute": 0},
|
|
95
|
+
"description": "Monitor GitHub repo — issues, PRs, stars, auto-respond",
|
|
96
|
+
"core": true
|
|
97
|
+
},
|
|
98
|
+
{
|
|
99
|
+
"id": "catchup",
|
|
100
|
+
"script": "scripts/nexo-catchup.py",
|
|
101
|
+
"schedule": {"hour": 8, "minute": 30},
|
|
102
|
+
"description": "Morning catchup briefing for the user",
|
|
103
|
+
"core": true
|
|
104
|
+
}
|
|
105
|
+
]
|
|
106
|
+
}
|