DOCS / PYTHON API

Python API

Use the public domain contracts, application services, and reference adapters from your own Python application.

PHASE 1 · PRE-1.0PYTHON 3.11+EDIT ON GITHUB ↗

The public surface

Import fromWhat you get
lumis_sdk.domainStrict vendor-neutral contracts: incidents, evidence, diagnoses, truth states, playbooks, policies, proposals, approvals, verification, audit.
lumis_sdk.applicationDiagnosisService, EvidenceService, ProposalService, learn_from_verification, and run_guarded_lifecycle.
lumis_sdk.portsReplaceable capability protocols for evidence, model, memory, reporting, context, policy, approval, verification, and audit.
lumis_sdk.adaptersReference implementations: deterministic rules, SQLite memory, local JSON evidence, Markdown/JSON reports, webhook normalization, plugin catalog.
lumis_sdk.configload_config, load_diagnosis_rule, migrate_config_file, and the strict v1 document models.
lumis_sdk.testkitDeterministic fakes, fixture builders, and reusable contract assertions for CI.
lumis_sdk.evaluationDeterministic replay evaluation over versioned corpora.

A first diagnosis

python
import asyncio
from pathlib import Path

from lumis_sdk.application import DiagnosisService
from lumis_sdk.config import load_config
from lumis_sdk.domain import IncidentInput

config = load_config(Path("lumis.yml"))
service = DiagnosisService(rules=config.rules)
incident = IncidentInput(
    source_tool="local-log",
    pipeline_name=config.project,
    raw_payload={"log": "ERROR KeyError: customer_id"},
)
diagnosis = asyncio.run(service.diagnose(incident))

DiagnosisService always runs the deterministic adapter first. Unknown results may route through a ModelGateway only when policy and dependency injection both allow it—there is nothing to disable, because nothing is enabled by default.

Strict contracts

Public domain models reject unknown fields. This makes integration mistakes visible immediately and prevents provider-specific data from silently leaking into core contracts. Everything is typed; mypy runs over the SDK source in CI.