Releases: TensorLink-AI/Gnomon
Release list
v0.5.0
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 exposedno_distinct_numeric_pathrelationship 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
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 isinconclusive, 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_anomaliesoperator; 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 ataskdimension. Existing stores migrate in place
(schema v3); legacy rows read asforecast. 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.tasksdeclares the tasks an adapter has verifiably
implemented (default: forecasting only);eligible_tsfms(task=...)
filters on it. MOMENT declaresforecast,detect_anomalies,
impute, andembed.- 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 amodefield;
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 anenrichment_adjudicationevidence record in the artifact
and its typed lineage, so the artifact proves the model choice. - The
COMBINED_ENRICHMENT_UNSUPPORTEDerror is retired (a pure
relaxation; seeCOMPATIBILITY.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):
safenormalises 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.aggressiveopts 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_REPAIRpast ~30% of a series) and disclosed.- Every fix lands in a
data_repairevidence 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 inspectnow 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, …). .xlsxbehind a newexcelextra (pip install 'aion-forecast[excel]').- Semicolon/tab/pipe-delimited "CSV" detected under repair when the header
provably names the mapped columns (disclosed asdelimiter_detected);
non-UTF-8 files fall back to Windows-1252 under repair (disclosed as an
encoding_assumedassumption; strict mode raisesINVALID_ENCODING). aion capabilitiesreports the full input matrix.