Files
OpenJarvis/docs/api/core.md
T
Jon Saad-FalconandClaude Opus 4.6 852259f18b Restructure codebase into 5-pillar architecture with MCP tool management, composition layer, and structured learning
Phase 1: Move RoutingContext to core/types.py, add RouterPolicy and QueryAnalyzer ABCs to intelligence/_stubs.py
Phase 2: Move memory backends to tools/storage/, convert memory/ to backward-compat shims
Phase 3: Add MCPToolAdapter, storage MCP tools, upgrade MCP server to spec 2025-11-25
Phase 4: Add SystemBuilder + JarvisSystem composition layer (system.py)
Phase 5: Add InstrumentedEngine for opt-in telemetry, simplify all agents
Phase 6: Add LearningPolicy ABC taxonomy with SFTPolicy, AgentAdvisorPolicy, ICLUpdaterPolicy
Phase 7: Update config schema (ToolsConfig, MCPConfig, TracesConfig, per-pillar learning policies)

Also: update all docs, README (DSPy-inspired), CLAUDE.md, and add logo assets.
1391 tests pass, 32 skipped. Zero new lint errors. Full backward compatibility via shims.

Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com>
2026-02-22 05:57:13 +00:00

6.3 KiB

Core Module

The core module contains the foundational abstractions shared across all OpenJarvis pillars: the decorator-based registry system for runtime discovery, canonical data types, configuration loading with hardware detection, and the pub/sub event bus for inter-pillar communication.

Registry System

The registry pattern is the primary extension mechanism. Each pillar has its own typed registry subclass. New implementations are added by decorating a class with @XRegistry.register("name").

RegistryBase

::: openjarvis.core.registry.RegistryBase options: show_source: true members_order: source

ModelRegistry

::: openjarvis.core.registry.ModelRegistry options: show_source: true members_order: source

EngineRegistry

::: openjarvis.core.registry.EngineRegistry options: show_source: true members_order: source

MemoryRegistry

::: openjarvis.core.registry.MemoryRegistry options: show_source: true members_order: source

AgentRegistry

::: openjarvis.core.registry.AgentRegistry options: show_source: true members_order: source

ToolRegistry

::: openjarvis.core.registry.ToolRegistry options: show_source: true members_order: source

RouterPolicyRegistry

::: openjarvis.core.registry.RouterPolicyRegistry options: show_source: true members_order: source

BenchmarkRegistry

::: openjarvis.core.registry.BenchmarkRegistry options: show_source: true members_order: source

ChannelRegistry

::: openjarvis.core.registry.ChannelRegistry options: show_source: true members_order: source

LearningRegistry

::: openjarvis.core.registry.LearningRegistry options: show_source: true members_order: source


Types

Canonical data types shared across all OpenJarvis pillars, including message structures, model specifications, telemetry records, and trace objects.

Role

::: openjarvis.core.types.Role options: show_source: true members_order: source

Quantization

::: openjarvis.core.types.Quantization options: show_source: true members_order: source

StepType

::: openjarvis.core.types.StepType options: show_source: true members_order: source

ToolCall

::: openjarvis.core.types.ToolCall options: show_source: true members_order: source

Message

::: openjarvis.core.types.Message options: show_source: true members_order: source

Conversation

::: openjarvis.core.types.Conversation options: show_source: true members_order: source

ModelSpec

::: openjarvis.core.types.ModelSpec options: show_source: true members_order: source

ToolResult

::: openjarvis.core.types.ToolResult options: show_source: true members_order: source

TelemetryRecord

::: openjarvis.core.types.TelemetryRecord options: show_source: true members_order: source

TraceStep

::: openjarvis.core.types.TraceStep options: show_source: true members_order: source

Trace

::: openjarvis.core.types.Trace options: show_source: true members_order: source

RoutingContext

::: openjarvis.core.types.RoutingContext options: show_source: true members_order: source


Configuration

Configuration loading, hardware detection, and engine recommendation. User configuration lives at ~/.openjarvis/config.toml. The load_config() function detects hardware, fills sensible defaults, then overlays any user overrides from the TOML file.

JarvisConfig

::: openjarvis.core.config.JarvisConfig options: show_source: true members_order: source

EngineConfig

::: openjarvis.core.config.EngineConfig options: show_source: true members_order: source

IntelligenceConfig

::: openjarvis.core.config.IntelligenceConfig options: show_source: true members_order: source

LearningConfig

::: openjarvis.core.config.LearningConfig options: show_source: true members_order: source

MemoryConfig

::: openjarvis.core.config.MemoryConfig options: show_source: true members_order: source

AgentConfig

::: openjarvis.core.config.AgentConfig options: show_source: true members_order: source

ServerConfig

::: openjarvis.core.config.ServerConfig options: show_source: true members_order: source

TelemetryConfig

::: openjarvis.core.config.TelemetryConfig options: show_source: true members_order: source

TracesConfig

::: openjarvis.core.config.TracesConfig options: show_source: true members_order: source

StorageConfig

::: openjarvis.core.config.StorageConfig options: show_source: true members_order: source

MCPConfig

::: openjarvis.core.config.MCPConfig options: show_source: true members_order: source

ToolsConfig

::: openjarvis.core.config.ToolsConfig options: show_source: true members_order: source

HardwareInfo

::: openjarvis.core.config.HardwareInfo options: show_source: true members_order: source

GpuInfo

::: openjarvis.core.config.GpuInfo options: show_source: true members_order: source

detect_hardware

::: openjarvis.core.config.detect_hardware options: show_source: true

load_config

::: openjarvis.core.config.load_config options: show_source: true

recommend_engine

::: openjarvis.core.config.recommend_engine options: show_source: true


Event Bus

Thread-safe pub/sub event bus for inter-pillar telemetry. Any pillar can emit events (e.g. INFERENCE_END) and any other pillar can react without direct coupling.

EventType

::: openjarvis.core.events.EventType options: show_source: true members_order: source

Event

::: openjarvis.core.events.Event options: show_source: true members_order: source

EventBus

::: openjarvis.core.events.EventBus options: show_source: true members_order: source

get_event_bus

::: openjarvis.core.events.get_event_bus options: show_source: true

reset_event_bus

::: openjarvis.core.events.reset_event_bus options: show_source: true