Skip to content

Releases: TensorLink-AI/Gnomon

Release list

v0.5.0

Choose a tag to compare

@github-actions github-actions released this 29 Aug 21:37
4391ed6

Gnomon 0.5.0 adds a governed context-intelligence layer without surrendering
numeric authority to an LLM. The history-only primary remains immutable;
context may be rejected, represented as a conditional scenario, or lead a
human-review recommendation only through explicit typed evidence contracts.

Highlights

  • Add strict, best-effort, and conditional-scenario publication modes with
    explicit support, provenance, primary-versus-selected relationships, and
    automation authority.
  • Compile deterministic schedules, recurrences, relationships, categorical
    states, cited covariate tables, and bounded model-authored candidates into
    the same replay-tested publication machinery. Unresolved or weak claims fail
    closed or remain visibly conditional.
  • Expand the MCP boundary for production agents with compact evidence-first
    profiles, reusable data and context references, structured recovery actions,
    bounded repairs, and verifier-enforced human-facing explanations.
  • Preserve the immutable primary across every prior-assisted path. Uncertain
    timing and structurally indistinct changes remain scenario-only or report
    no_distinct_numeric_path; neither can silently mutate the primary or
    authorize automation.
  • Add prospective, series-scoped outcome learning for candidate evidence,
    including cutoff-safe tracking, conservative multiplicity handling, and a
    fixed compromise path for supported best-effort recommendations.
  • Extend decision and threshold-risk outputs with bounded assessments,
    evidence sufficiency, explicit automation eligibility, action utility, and
    independently scored human judgment.
  • Add and harden ContextBench, OutcomeLearningBench, BreachBench, RecallBench,
    CiK, and workflow adapters with crash-safe checkpoints, strict resume
    identities, bounded concurrency, retained diagnostics, and sealed evidence.
  • Improve bitemporal safety, context provenance, scenario consequence
    reporting, gate explanations, rejection-reason accounting, and agent
    preservation measurement throughout the CLI, Python, MCP, and artifact
    surfaces.

Validation

  • Full repository suite: 2,528 passed, 1 skipped.
  • Crash-safe ContextBench engine stress run: 112/112 completed, every declared
    gate passed, zero temporal leakage, 100% empirical admission precision, and
    45.833% empirical admission recall.
  • Final Evidence/DeepSeek agent-boundary shard: 2/2 completed with publication
    parity, one exposed no_distinct_numeric_path relationship preserved 1/1,
    one exposed conditional-scenario contract preserved 1/1, and an exact
    zero-call resume replay.
  • CI passes on Python 3.11, 3.12, and 3.13, including package installation,
    deterministic benchmark evidence, and container smoke tests.

The complete change-by-change record follows and remains part of the source
distribution for auditability.

v0.4.0

Choose a tag to compare

@github-actions github-actions released this 01 Aug 09:46
bb47432

The beta-readiness release: real-world files work on first contact, a
fifth verb (aion detect) lands with graded anomaly detectors, joint
enrichments are adjudicated honestly, tracked evidence becomes
task-conditioned with an advisory router, and the README/docs describe
the system as it is. Content-addressed IDs are salted with the runtime
version, so all artifact IDs change with this release (inputs and
parameters hash identically otherwise); golden artifacts were refreshed
accordingly.

Evaluated anomaly detection (aion detect / aion_detect_anomalies)

  • New fifth canonical macro: candidate detectors — robust z-score,
    rolling-median residual, and forecast-interval exceedance — compete on a
    deterministic synthetic anomaly-injection grader (spikes, level shifts,
    dropouts at noise-scaled magnitudes, placement seeded from the series
    content) before any of them labels the real series. Supplying labelled
    anomaly timestamps switches selection to label F1.
  • Every candidate's precision/recall/F1 ships in the artifact alongside
    the winner; abstention below 16 observations is inconclusive, and a
    best grader F1 under 0.5 downgrades the run to
    conditionally_supported — if no detector can recover planted
    anomalies in this series' noise, real detections inherit that doubt.
  • Registered as the detect_anomalies operator; surfaced through the
    CLI, agent tools, and MCP from the registry as usual.

Series fingerprints, task-conditioned tracking, and the thin router

  • Every tracked run now records a deterministic, unit-free series
    fingerprint (trend, noise ratio, intermittency, direction-change rate,
    season) and a task dimension. Existing stores migrate in place
    (schema v3); legacy rows read as forecast.
  • aion track leaderboard --task ... and
    TrackingStore.leaderboard(project, task=...) condition realised
    performance on the task, so accumulated evidence transfers by data
    shape instead of restarting cold per project.
  • aion route / aion_route: a disclosed, advisory routing decision —
    verified capability filter, then a fingerprint-weighted realised-MASE
    prior claimed only once ≥10 scored records exist for the task. Every
    exclusion reason and the decision itself are recorded to the store for
    replay. Evaluated runs still backtest every candidate; an explicit
    model choice always wins.

Multi-task adapter seams

  • TSFMCapabilities.tasks declares the tasks an adapter has verifiably
    implemented (default: forecasting only); eligible_tsfms(task=...)
    filters on it. MOMENT declares forecast, detect_anomalies,
    impute, and embed.
  • The adapter protocol gains two optional verbs: reconstruct(history, mask) (masked reconstruction — anomaly signal and imputation) and
    embed(history). Both are implemented for MOMENT in-process and in
    the sandbox worker, whose JSON protocol now carries a mode field;
    stale sandbox worker scripts refresh automatically.
  • Installed multi-task sandboxes join the anomaly-detection candidate
    pool as reconstruction-error detectors and must win the same grader as
    the statistical detectors; a detector that cannot run scores zero with
    its error disclosed instead of failing the run.

Enrichment adjudication

  • Context events and covariates can now be supplied in the same forecast
    run. Each enrichment still passes its own independent, leakage-safe
    ablation gate; a new adjudication stage then runs a championship ladder —
    the base model against every admitted challenger (base + context,
    base + covariates, base + both) on identical selection folds — and picks
    the winner deterministically (best mean fold score, ties to fewest
    enrichments, then fixed candidate order).
  • The combined challenger composes the two admitted mechanisms: the
    covariate linear forecast plus the additive event effect, fitted per fold
    under that fold's cutoff. Its winner reports
    selected_model: "combined_enrichment".
  • The full comparison — candidates, per-fold scores, winner, and why — is
    recorded as an enrichment_adjudication evidence record in the artifact
    and its typed lineage, so the artifact proves the model choice.
  • The COMBINED_ENRICHMENT_UNSUPPORTED error is retired (a pure
    relaxation; see COMPATIBILITY.md). Single-enrichment runs are
    numerically unchanged.

Messy-data repair (disclosed, capped, deterministic)

Real-world CSVs now work on first contact. aion forecast --repair {off,safe,aggressive} (default safe):

  • safe normalises cell text only — mixed date formats (slash dates with
    provable day/month order, month names, epoch stamps), currency symbols,
    thousands/decimal separators, percent signs, accounting negatives,
    sentinel missing values (N/A, null, …), fully blank rows, and
    byte-identical duplicate rows. It never invents a value, moves a
    timestamp, or drops a data point.
  • aggressive opts into structural fixes: interior gaps linearly
    interpolated, jittered timestamps snapped to the inferred grid,
    conflicting duplicates resolved (last row wins), unparseable rows
    dropped, naive timestamps in mixed-timezone files assumed UTC — all
    capped (EXCESSIVE_REPAIR past ~30% of a series) and disclosed.
  • Every fix lands in a data_repair evidence record; assumptive fixes
    become series warnings, so support downgrades honestly.
  • Repairs fire only where strict parsing would fail: clean files remain
    byte-identical with unchanged artifact IDs.
  • aion inspect now diagnoses instead of rejecting: data_quality
    reports what the file needs (clean / repaired_safe /
    repaired_aggressive), lists the repairs, and prints the exact
    follow-up command.
  • New bundled example: examples/filthy_requests.csv.

Input formats

  • New always-on formats: .tsv, .json (array of objects),
    .jsonl/.ndjson, and gzip-compressed text inputs (.csv.gz, …).
  • .xlsx behind a new excel extra (pip install 'aion-forecast[excel]').
  • Semicolon/tab/pipe-delimited "CSV" detected under repair when the header
    provably names the mapped columns (disclosed as delimiter_detected);
    non-UTF-8 files fall back to Windows-1252 under repair (disclosed as an
    encoding_assumed assumption; strict mode raises INVALID_ENCODING).
  • aion capabilities reports the full input matrix.