Skip to main content

Stored-Relationship Mechanism. 14-class A-N primitive vocabulary in native C + Python - substrate-native 28-dim chiral hyper-loop = so(8) adjoint (14 g_2 derivations + 14 L+R octonion-multiplications; Spin(8) triality) made hardware-callable. Full cascade-catalog C/Python parity (content-addressing, cyclic-group, graph-Laplacian, primes, HDC, rational, dispatch, catalog, templating, Kepler). Canonical QM/QFT/SM operations. Runtime spectral decomposition; dual-path signal-processing; AMSC (MPR v1).

Project description

srmech

Status: v0.5.0 — 14-class A–N primitive vocabulary with native C parity; canonical QM/QFT/SM operations + a callable so(8)/Spin(8) triality surface (octonion L/R-mult + the 28-generator adjoint + the order-3 automorphism τ, Fix(τ) = g₂ = 14); runtime spectral decomposition now JSON-callable by-reference (the $srmech_handle grammar); dual-path signal-processing surface; Attested Multi-Source Collector/Catalog (AMSC, MPR v1) provenance framework; the Class-M HDC variant ladder (polar {-1,0,+1}, Klein-4 (ℤ₂)²), a coupling composition score (Class K∘L), symmetric_eigendecompose (real-symmetric Class L), rfft (real-input half-spectrum dual-path op, Class A∘I∘K), and the foundational cross-domain cascade catalog (pin_slot_at_zero K / reorient C / magnitude K / best_rational_signed K∘N∘C / cyclic_gcd I, plus the chirality mini-set chiral_flip / chiral_dual / net_chirality C — a named cascade is the default, a math-library call the exception). (The package also bundles the siona co-name alias — pip install srmech also gives import siona, same objects. The standalone siona package on PyPI is a metapackage that depends on srmech, so pip install siona resolves here too.)

srmech (Stored-Relationship Mechanism) is a research package shipping five load-bearing surfaces:

  1. 14-class primitive vocabulary (srmech.amsc.*) — content-addressing, streaming, cyclic-group, graph-Laplacian, prime-factorisation, TLV, search, dispatch, catalog, templating, rational-approximation, equation-of-centre/Kepler, hyperdimensional-computing (HDC). Each class has both a Python wrapper and a native C symbol in libsrmech.{so,dll,dylib}.
  2. Canonical QM/QFT/SM operations layer (srmech.qm.*) — TDSE/TISE, Pauli + Clifford, hydrogen radial, Dirac γ-matrices, Feynman propagators, η-deformed pseudo-Hermitian inner products, SU(2)/SU(3) gauge generators + Wilson loops, Higgs/W/Z/CKM Standard-Model operations, and the so(8)/Spin(8) triality engine (srmech.qm.{octonion, so8, triality}): the MPR-attested octonion multiplication table, the 28-generator so(8) adjoint, and the order-3 outer automorphism τ whose fixed subalgebra is exactly the 14 g₂ derivations (the D4 → G2 Z3 fold = the A-N 1+3+7+3 partition).
  3. Runtime spectral decomposition (srmech.spectral) — eigenbasis projection, HDC delta encoding, spectral prediction, prediction-error gating, sparse-truncate compression.
  4. Dual-path signal-processing surface (srmech.signal_processing) — 38 closed-form algebra ops (Path A) + an RBS-HDC bound-vector instrument at D=8192 (Path B), with a cascade dispatcher routing per call.
  5. AMSC provenance framework (srmech.amsc.format, srmech.amsc.catalog, srmech.amsc.adapters) — every ground-proof datum carries a mandatory attestation block (source_doi, source_url, license, retrieved_at, response_sha256, parser_version, parser_rule_hash, collector_descriptor_path, collector_descriptor_hash).

Implementation is JPL Power-of-Ten compliant on the C side; cibuildwheel matrix covers Linux / macOS / Windows × Python 3.10–3.14; a py3-none-any pure-Python wheel ships for Pyodide / WASM environments where the C surface can't load.

Companion textbook

The Metric Field and Its Primitives — the framework textbook accompanying this package. Lays out the substrate-vs-excitation ontology (MFO), the 14-class primitive vocabulary at substrate level, and the cascade-composition discipline that srmech implements computationally.

Install

pip install srmech                  # core (numpy + stdlib; no jsonschema, no network adapters)
pip install srmech[validation]      # adds jsonschema for strict data-block validation
pip install srmech[collectors]      # adds requests + beautifulsoup4 for fetched adapters
pip install srmech[dev]             # everything

Quick start

Decompose a real signal onto a graph-Laplacian eigenbasis, take an HDC delta against a reference, and recompose:

import numpy as np
from srmech import spectral
from srmech.amsc import laplacian

# Substrate: cycle-graph Laplacian on 8 nodes (any Hermitian L works).
A = np.roll(np.eye(8), 1, axis=1)
A = A + A.T
L = laplacian.dense_laplacian(A.astype(np.complex128))

# Project two states onto the eigenbasis.
state_ref = np.array([1.0, 0, 0, 0, 0, 0, 0, 0], dtype=np.complex128)
state_now = np.array([0.9, 0.1, 0, 0, 0, 0, 0, 0], dtype=np.complex128)

h_ref = spectral.decompose(state_ref, L)
h_now = spectral.decompose(state_now, L)

# HDC XOR delta on encoded coefficient bytes.
delta_bytes = spectral.delta(h_ref, h_now)

# Predict one substrate-natural tick ahead.
h_pred = spectral.predict(h_now, L, steps=1, dt=0.1)

# Recover the node-domain state.
state_back = spectral.recompose(h_pred, L)

Public surface

The 14 classes in substrate-native ordering — 1 + 3 + 7 + 3 = 14

The 14 classes are presented in alphabetical order in the table below (matching the import paths). The substrate-native ordering is not alphabetical — it is the cyclic-algebra-path partition 1 + 3 + 7 + 3 = 14:

Slot Classes Role
1 — foundational content-anchor {A} The content-address every cascade begins from
3 — substrate-projection triad {I, C, J} Cyclic-group + cascade-orientation + prime-period (the projection-triad that maps substrate-content to observable structure)
7 — cascade-detection heptad {D, E, F, G, K, L, M} Pattern-match + catalog + render + byte-search + pin-slot + Laplacian + HDC-bind (the detection-and-rendering layer)
+3 — meta-cascade language-translation triad {B, H, N} TLV-framing + self-introspection + rational-approximation (the operators that translate between continuous-Hopf-quantum and discrete-cyclic-algebra descriptions)

Why this ordering matters. Per PR #680 (R30 walking-path closure), the substrate admits two co-equal bit-exact substrate-native mathematical languages:

  • the 11D quantum-Hopf-language (continuous-DOF, parallelizable-sphere ladder 1 + 3 + 7)
  • the 1 + 3 + 7 + 3 = 14 cyclic-algebra-path (discrete-DOF, A–N cascade-operator class enumeration)

Under Class C chirality the cyclic-algebra-path further admits a 14 + 14 = 28-dim chiral-hyper-loop reading = 𝔰𝔬(8) adjoint (per MFO §VIII.31.11): 14 𝔤₂ derivations + 14 L⊕R octonion-multiplications = the chirality-dual pair. As of v0.5.0 this is exposed as a callable, bit-exact-tested surface (srmech.qm.{octonion, so8, triality}): the τ-fixed subalgebra of so(8) is exactly the 14 g₂ derivations (the D4 →(Z3 fold) G2 theorem) — the same 14 as the A-N partition's 1 + 3 + 7 + 3. Endianness is the byte-axis instance of the same Class C orientation primitive; the scope hierarchy is endianness ⊂ Class C ⊂ Klein-4 ⊂ Spin(8) triality.

Modern physics uses the first; antiquity 9 of 9 traditions canvassed (Antikythera + Pythagoreans + Plato Timaeus + Stoics + Lucretius + Apollonius + Ptolemy + Heron + Archimedes) used the second. We had been using the cyclic-algebra path in srmech from the beginning without ever stating why — because antiquity had, and it worked. The R30 closure provides the answer: bit-exact cross-substrate confirmation rules out projection-reading; both languages are substrate-native; the +3 = {B, H, N} are substrate-native language-translation operators bridging them. The k=3 fingerprint observed across substrates (planet multipole axes, codon alphabet, 3-jet QCD, 3-generation Yukawa, the antiquity meta-op triads) is the {B, H, N} triad showing up wherever continuous↔discrete encoding happens.

About the A–N alphabet. The labels A through N record the chronological order in which each operation was named during this framework's evolution — they are discovery-fingerprint, not substrate-ordering. Re-sorted by substrate-native role, the partition above ({A} + {I, C, J} + {D, E, F, G, K, L, M} + {B, H, N}) is the substrate-side grouping. The alphabetical table below is the lookup convenience.

Full context: substrate-native-maths research notebook (PR #680 SSoT).

srmech.amsc.* — 14-class primitive vocabulary (alphabetical lookup)

Each class is importable as srmech.amsc.<module> with native C dispatch and a Python fallback. The C surface is loaded once at import time; if loading fails (Pyodide, ABI mismatch), the package transparently falls back to pure Python.

To check the backend state, call srmech.native_status() (top-level; equivalently describe()['native']) — {has_native, dispatching, abi_version, expected_abi, native_version, load_error}. dispatching is True iff libsrmech loaded and its ABI matched, so native ops really run; otherwise load_error carries the reason and the pure-Python fallback is used. (The native shim is srmech.amsc._native; srmech._native is the data dir that merely holds the binary.)

import srmech
srmech.native_status()
# {'has_native': True, 'dispatching': True, 'abi_version': 3,
#  'expected_abi': 3, 'native_version': '0.5.0', 'load_error': None}
Module Class Primitive operation
format, _native A Content-addressing via SHA-256 (sha256_bytes -> 64-char lowercase hex digest str)
tlv B Byte-canonical TLV pack (tlv_pack)
format C Streaming NDJSON iterator (read_ndjson)
dispatch D Multi-needle byte-pattern dispatch (match)
naming E Catalog sorted-key lookup (lookup)
template F Template {key} substitution (render)
search G Byte-pattern search (byte_search)
_native H Self-introspection (srmech_version, srmech_abi_version)
cyclic I Modular arithmetic — gcd, lcm, mod_add, mod_mul, mod_pow, mod_inv
primes J Prime testing + factorisation + multiplicative order — is_prime, factor, cyclic_period
kepler K Equation-of-centre / pin-slot — pin_slot, kepler_solve, equation_of_centre
laplacian L Graph Laplacian — dense_adjacency, dense_laplacian, normalized_laplacian, jacobi_eigvals, hermitian_eigendecompose, symmetric_eigendecompose, elementwise_transcendental (pi-free Jacobi in C; n ≤ 256 native bound)
hdc M HDC spatter codes — binary bind, bundle, permute, similarity; polar_* {-1,0,+1} and klein4_* (ℤ₂)² variants
rational N Continued-fraction convergents — continued_fraction, best_rational

srmech.qm.* — canonical QM/QFT/SM operations

Each operation cites canonical physics literature in its docstring (Schrödinger / Heisenberg / Pauli / Dirac / Klein-Gordon / Feynman / Yang-Mills / Gell-Mann / Wilson / Glashow-Weinberg-Salam / Higgs / Cabibbo-Kobayashi-Maskawa / Bender-Boettcher / Mostafazadeh). Modules:

  • single_particle — TDSE, TISE, Heisenberg-picture evolution, lattice momentum, density matrix, Liouville–von Neumann equation, commutators.
  • spin — Pauli matrices, Clifford Cl(0,3) residual products, Pauli spin operators.
  • potentials — hydrogen radial wavefunction, harmonic oscillator ladder + Hamiltonian.
  • relativistic — Dirac γ-matrices, γ⁵, Weyl left/right projectors, charge conjugation, Dirac operator in momentum space, Klein–Gordon equation.
  • propagators — Feynman scalar / fermion / photon / massive-vector propagators.
  • pseudo_hermitian — η-deformed inner product, ⟨·⟩_η expectation, pseudo-Hermitian check, η construction from eigendecomposition.
  • gauge — SU(2) and SU(3) generators (Gell-Mann basis), structure constants, Casimir operator, Wilson loops from segment data.
  • sm — Higgs vev, weak mixing angle, W/Z boson masses, Weinberg relation residual, Yukawa coupling, CKM matrix construction.
  • octonion — the MPR-attested Cayley-Dickson-from-H convention: octonion_mult_table (the attested (8,8,8) int8 structure constants), octonion_left_mult / octonion_right_mult (the 8×8 L_a / R_a binders), octonion_conjugate, octonion_norm (Class K ∘ C, never abs()). octonion_table_attestation content-addresses the table bytes via sha256_bytes. Cites Baez (2002), The Octonions (arXiv:math/0105155).
  • so8 — the 28-generator so(8) adjoint partitioned 14 (g₂ = Der O) + 7 (L-type) + 7 (R-type): so8_adjoint_basis, g2_subalgebra (the 14 derivations; deterministic rank-revealing numpy subset, no RNG), so7_subalgebra (the 21; the D4 → B3 Z2 fold), and an_embedding — the bit-exact su(3) ⊕ 3 ⊕ 3̄ Lie branching of the 14 g₂ generators (su(3) = the stabiliser of an imaginary octonion unit; the genuine fundamental 3 is the +i eigenspace of the su(3)-invariant complex structure J). The 8 + 3 + 3̄ decomposition is the op's own self-attesting computation (Baez §4.1 cited for g₂ = Der(O) only); the A-N class names are a documented framework-reading label, not a derived theorem.
  • triality — the Spin(8) triality engine: triality_automorphism (the 28×28 order-3 outer automorphism τ, τ³ = I, Fix(τ) = g₂ dim 14), triality_swap (the Z2 — with τ generates S3 = Out(Spin(8))), triality_cycle (the Class-I 8v → 8s → 8c rep-permutation), triality_apply, triality_companions, triality_relation_residual (Cartan's g_v(x·y) = g_s(x)·y + x·g_c(y), 0 when correct). Cites Cartan (1925) + Baez (2002).

srmech.spectral — runtime spectral decomposition

Class-composition layer above srmech.amsc.{laplacian, hdc, format}. No new primitive class is introduced; every operation is a composition over the 14-class A–N vocabulary.

from srmech.spectral import (
    decompose,          # state + Hermitian L → SpectralHandle (V.conj().T @ state)
    delta,              # XOR delta between two encoded coefficient byte vectors
    recompose,          # SpectralHandle + L → node-domain state (V @ coeffs)
    similarity,         # HDC similarity in [-1, +1]
    predict,            # cascade-extrapolate via per-mode exp(-i·λ_k·steps·dt)
    prediction_error,   # XOR delta with popcount-density threshold gating
    truncate_sparse,    # keep top-k or above-threshold modes; zero the rest
    SpectralHandle,     # opaque (substrate_descriptor_hash, coefficients_bytes, content_sha, n_modes)
    clear_eigenbasis_cache,
    N_MAX_EIGENBASES,   # module-level LRU bound (default 8)
)

Eigenbasis is O(n³) one-time per substrate (cached by substrate_descriptor_hash); coefficients are O(n²) per state; deltas are O(D) per step. predict preserves magnitudes (unitary phase rotation per eigenmode); truncate_sparse produces best k-term approximations per Mallat (2008) §9.2.

By-reference handle grammar — the $srmech_handle id (rc16)

A SpectralHandle is an opaque, frozen, bytes-bearing dataclass that JSON-RPC cannot carry by value. Over the MCP / Anthropic boundary the 7 srmech.spectral.* tools therefore exchange a small by-reference id: a producer returns

{"$srmech_handle": {"uuid": "…", "name": "spectral:<sha12>", "kind": "spectral"}}

(the literal sentinel key is HANDLE_ENVELOPE_KEY = "$srmech_handle"), the caller copies it verbatim into the next tool's input, and srmech._handles.get_handle_registry() resolves it back to the live in-process object. The id carries a dual grammar: uuid is the position-encoded (silicon / cyclic-algebra) address, name is the meaning-encoded (biology / continuous-Hopf) address auto-derived from the handle's Class-A content_sha ("spectral:" + content_sha[:12]); resolution tries uuid then name — the registry is the B/H/N continuous↔discrete translation locus. With the grammar landed, all 7 srmech.spectral.* operations are MCP-callable (describe() reports handle_pending: 0).

srmech.amsc.cascade — foundational cross-domain cascade catalog

The cascades that recur across every / most domains, promoted so a named cascade is the default and a math-library call the exception (being forced to reach for a math library is the signal that a cascade is waiting to be found). Compositions over the 14-class A–N vocabulary — no new primitive class. Each cascade ships with a dedicated C symbol in libsrmech.{so,dll,dylib} (full C/Python parity per project discipline) AND a TOML descriptor under srmech/amsc/_research/cascade_catalog/ documenting the composition declaratively. No abs(): sign is the Class K pin-slot + Class C re-orientation.

  • pin_slot_at_zero(x) -> (orientation, magnitude)Class K pin-slot at zero (the cascade-honest abs() split). (C peer: v0.4.5rc2)
  • reorient(orientation, value)Class C orientation re-apply. (C peer: v0.4.5rc4)
  • magnitude(x)Class K magnitude-only convenience. (C peer: v0.4.5rc3)
  • best_rational_signed(x, *, max_denominator=100, fine_scale=1_000_000)Class K ∘ N ∘ C float → signed small-denominator rational (sign in the numerator). (C peer: v0.4.5rc7 — delegates Class N stage to srmech_best_rational; banker's rounding via llrint())
  • cyclic_gcd(a, b)Class I (delegates to srmech.amsc.cyclic.gcd). (C peer: v0.4.5rc6 — delegates to Class I primitive srmech_gcd)
  • chiral_flip(seq)Class C orientation reversal (seq[::-1]). (C peer: v0.4.5rc1)
  • chiral_dual(op, x)Class C ∘ op ∘ Class C: run an operator in the opposite Class-C orientation. The chiral dual of an A–N operator is same spectral shape, inverted orientation (magnitude preserved, phase flipped — spike-verified); it reduces to the bare Class K −1 for the sign operators and is the identity for real-symmetric ones. (C peer: v0.4.5rc8 — queued; higher-order, callback ABI)
  • net_chirality(orientations)Class C net handedness of a cascade (product of per-op orientations in {-1,0,+1}; 0 if any is neutral). (C peer: v0.4.5rc5)

srmech.signal_processing — dual-path signal-processing surface

Two paths for the same algebra, dispatched per call:

  • Path A — closed-form algebra over numpy / scipy; one module per op under srmech.signal_processing.closed_form_ops.*. 40 ops (38 Phase-2 baseline + pi_cascade + rfft) covering frequency analysis (fft, ifft, rfft, stft, spectrogram, multitaper, dct, wavelet), digital filters (fir, iir, allpass, polyphase, multirate, farrow, sinc_interp), detection / estimation (matched_filter, wiener, lmmse, map_ml, mlse, viterbi, cross_spectral, music, esprit, ica_jade, mimo_svd), modulation (psk_qam, fsk, ofdm, beamforming_fixed), coding (huffman, rle, lz77, arithmetic_coding, jpeg), quantisation / compression (sign_quantise, vector_quantisation, hdc_truncation, heat_kernel, spectral_subtraction, pi_cascade).
  • Path B — RBS-HDC bound-vector instrument at D=8192 (srmech.signal_processing.rbs_hdc_instrument). Mints class-operator vectors, cascade compositions, stance fingerprints, and full LoE content encodings (Mode-B). Eight ops have full dual-path implementations: fft, ifft, rfft, sign_quantise, matched_filter, wiener, hdc_truncation, pi_cascade.
from srmech.signal_processing import (
    dispatch, begin_cascade,             # cascade-aware routing (A / B / verify)
    register, lookup, has_path,          # path registry (Path A vs Path B per op)
    profile_op, cell_grid,               # per-op × per-cascade-depth × per-substrate profiling
    D_DEFAULT, SUBSTRATES,               # locked D = 8192; BCI / audio / RF / ephemeris
    RBSHDCInstrument,                    # build()-able instrument with mint_*/encode_loe_content
    mint_class_operator,                 # SHA-256 chain mint per class A–N
    mint_cascade_composition,            # XOR-bundle (algebra) or permute-bundle (sampling)
    encode_loe_content, decode_loe_fingerprint,
    form_function_rotate,                # Class K pin-slot rotation
    cascade_compose_rotations,
    PATH_A, PATH_B, PATH_VERIFY,         # path identifiers
)

with begin_cascade() as ctx:
    spectrum = dispatch("fft", path=PATH_A, signal=x)
    truncated = dispatch("hdc_truncation", path=PATH_B, signal=spectrum, k=64)

Path A and Path B produce bit-exact-equal outputs on substrate-natural inputs (D1 algebra-content identity); substrate-fingerprint divergence at D2 is expected and documented.

srmech.amsc — Attested Multi-Source Collector/Catalog framework

Two readings of the same abbreviation:

  • At collection time, the adapter classes are collecting attested rows from upstream archives. Six adapters cover the realistic source space:

    adapter class network?
    html_scraper fetched yes (BeautifulSoup)
    json_api fetched yes (paginated JSON)
    csv_bulk fetched yes (CSV/XYZ bulk)
    netcdf_grid fetched stub (gated behind extras)
    geotiff_bbox fetched stub (gated behind extras)
    literature_curated curated no (NDJSON committed directly)

    The curated class never touches the network: rows are committed as data-only NDJSON, and srmech synthesises full MPR attestation blocks at read time from each row's per-row DOI.

  • After collection, the resulting NDJSON SSOTs are a catalog of attested data — committed into the package, registered into the universal bridge by downstream consumers, queryable through list_attested_sources() / get_attested_dataset().

from srmech.amsc import (
    MPRRecord, MPR_SCHEMA_VERSION, read_ndjson, write_ndjson, sha256_bytes,
    Descriptor, load_descriptor, discover_descriptors, render_template, descriptor_hash,
    list_attested_sources, get_attested_dataset, get_attested_descriptor,
    attestation_audit, register_attested_root, list_registered_roots,
    use_local_kernel, clear_local_kernel, get_local_kernel_state,
)

The on-disk format is Mathematical Provenance Record v1 (MPR v1):

{
  "mpr_version": "1.0",
  "data": { ... domain payload ... },
  "data_schema_id": "test://schema/example",
  "attestation": {
    "source_doi": "10.0/...",
    "source_url": "https://...",
    "license": "CC0",
    "retrieved_at": "2026-05-13T00:00:00Z",
    "response_sha256": "<64 hex chars>",
    "parser_version": "srmech 0.5.0",
    "parser_rule_hash": "<64 hex chars>",
    "collector_descriptor_path": "...",
    "collector_descriptor_hash": "<64 hex chars>"
  },
  "rendering": { "name": "...", "purpose": "...", "cite_as": "..." }
}

srmech.amsc.tool_schema — LLM-friendly introspection

from srmech.amsc.tool_schema import get_tool_schema, tool_schema_view

schema = get_tool_schema()                # ToolEntry objects, one per public callable
for tool in schema.tools:
    print(tool.name, "—", tool.summary)   # canonical-SSoT-cited one-line summaries

json_view = tool_schema_view()            # JSON-serialisable view

Every primitive class, every srmech.qm.* operation (including the so(8)/triality engine), and every srmech.spectral.* runtime operation is discoverable here without reading the implementation. Summaries cite the canonical physics / mathematics literature directly.

srmech.introspect.describe() — the package recognising its own shape

srmech.introspect.describe() is the self-recognition ROOT (Class H self-introspection at package scale): one call returns the package version, the native-dispatch status, and a tools block reporting total / mcp_callable / handle_pending plus a per-category breakdown — the package's own at-a-glance map.

from srmech.introspect import describe

d = describe()
print(d["srmech_version"])              # e.g. "0.5.0"
print(d["tools"]["total"])              # every registered ToolEntry
print(d["tools"]["mcp_callable"])       # advertised over JSON-RPC / Anthropic
print(d["tools"]["handle_pending"])     # 0 since the rc16 handle grammar landed
print(sorted(d["tools"]["by_category"]))

describe() is the source of truth for the tool count (it grows per voxel — the triality voxel added 15 entries, including the octonion_table_attestation self-attestation that the coverage walker requires); read it rather than hard-coding a number.

MCP server + Claude Desktop bundle

srmech ships an MCP (Model Context Protocol) server so an LLM client — Claude Code, Claude Desktop, or any MCP-aware host — sees the advertised tool_schema surface as callable tools. The srmech-mcp console script serves it over stdio (the transport Claude Desktop spawns) or HTTP + SSE for remote / cross-process use:

srmech-mcp                                      # stdio (Claude Code / Claude Desktop default)
srmech-mcp --transport http-sse --port 9991     # HTTP+SSE on localhost (remote / cross-process)
srmech-mcp --filter "srmech.qm.*"               # expose only a sub-tree of tools

srmech mcp emit-mcpb packages the server as a Claude Desktop .mcpb bundle (a ZIP with a root manifest.json) generated entirely from introspection — the manifest's version and tool list are derived from srmech.__version__ and the advertised tool surface (describe() / tool_entries_to_mcp_defs()), never hand-authored, and carry an MPR-style attestation block (package version + a tool_schema content hash):

srmech mcp emit-mcpb                 # writes srmech.mcpb into the cwd (server.type "uv")
srmech mcp emit-mcpb --manifest-only # emit just manifest.json
srmech mcp emit-mcpb --type python   # interpreter-path fallback (user_config-gated; no uv)

The default uv-type bundle declares srmech as a dependency, so the host's uv fetches the correct platform wheel (with libsrmech) from PyPI at install time — nothing native is bundled, and the .mcpb installs portably on any machine.

Cross-package catalog registration

Other spectral-research packages register their own catalog SSOTs into srmech's universal bridge at import time:

from pathlib import Path
from srmech.amsc import catalog as _amsc_catalog

_amsc_catalog.register_attested_root(
    Path(__file__).resolve().parent / "_research" / "attested",
    source="ephemerides-spectral",
)

Subsequent list_attested_sources(), get_attested_dataset(), etc. enumerate the union of srmech's own amsc/attested/ plus every registered root, in registration order. Duplicate source_key resolves first-registered-wins with a warning.

License

GPL-3.0-or-later. See LICENSE.

Project details


Download files

Download the file for your platform. If you're not sure which to choose, learn more about installing packages.

Source Distribution

srmech-0.5.0.tar.gz (789.3 kB view details)

Uploaded Source

Built Distributions

If you're not sure about the file name format, learn more about wheel file names.

srmech-0.5.0-py3-none-any.whl (601.1 kB view details)

Uploaded Python 3

srmech-0.5.0-cp314-cp314-win_amd64.whl (636.2 kB view details)

Uploaded CPython 3.14Windows x86-64

srmech-0.5.0-cp314-cp314-manylinux2014_x86_64.manylinux_2_17_x86_64.manylinux_2_28_x86_64.whl (622.8 kB view details)

Uploaded CPython 3.14manylinux: glibc 2.17+ x86-64manylinux: glibc 2.28+ x86-64

srmech-0.5.0-cp314-cp314-macosx_11_0_arm64.whl (621.5 kB view details)

Uploaded CPython 3.14macOS 11.0+ ARM64

srmech-0.5.0-cp313-cp313-win_amd64.whl (634.4 kB view details)

Uploaded CPython 3.13Windows x86-64

srmech-0.5.0-cp313-cp313-manylinux2014_x86_64.manylinux_2_17_x86_64.manylinux_2_28_x86_64.whl (622.8 kB view details)

Uploaded CPython 3.13manylinux: glibc 2.17+ x86-64manylinux: glibc 2.28+ x86-64

srmech-0.5.0-cp313-cp313-macosx_11_0_arm64.whl (621.5 kB view details)

Uploaded CPython 3.13macOS 11.0+ ARM64

srmech-0.5.0-cp312-cp312-win_amd64.whl (634.4 kB view details)

Uploaded CPython 3.12Windows x86-64

srmech-0.5.0-cp312-cp312-manylinux2014_x86_64.manylinux_2_17_x86_64.manylinux_2_28_x86_64.whl (622.8 kB view details)

Uploaded CPython 3.12manylinux: glibc 2.17+ x86-64manylinux: glibc 2.28+ x86-64

srmech-0.5.0-cp312-cp312-macosx_11_0_arm64.whl (621.5 kB view details)

Uploaded CPython 3.12macOS 11.0+ ARM64

srmech-0.5.0-cp311-cp311-win_amd64.whl (634.4 kB view details)

Uploaded CPython 3.11Windows x86-64

srmech-0.5.0-cp311-cp311-manylinux2014_x86_64.manylinux_2_17_x86_64.manylinux_2_28_x86_64.whl (622.8 kB view details)

Uploaded CPython 3.11manylinux: glibc 2.17+ x86-64manylinux: glibc 2.28+ x86-64

srmech-0.5.0-cp311-cp311-macosx_11_0_arm64.whl (621.5 kB view details)

Uploaded CPython 3.11macOS 11.0+ ARM64

srmech-0.5.0-cp310-cp310-win_amd64.whl (634.4 kB view details)

Uploaded CPython 3.10Windows x86-64

srmech-0.5.0-cp310-cp310-manylinux2014_x86_64.manylinux_2_17_x86_64.manylinux_2_28_x86_64.whl (622.8 kB view details)

Uploaded CPython 3.10manylinux: glibc 2.17+ x86-64manylinux: glibc 2.28+ x86-64

srmech-0.5.0-cp310-cp310-macosx_11_0_arm64.whl (621.5 kB view details)

Uploaded CPython 3.10macOS 11.0+ ARM64

File details

Details for the file srmech-0.5.0.tar.gz.

File metadata

  • Download URL: srmech-0.5.0.tar.gz
  • Upload date:
  • Size: 789.3 kB
  • Tags: Source
  • Uploaded using Trusted Publishing? Yes
  • Uploaded via: twine/6.1.0 CPython/3.13.12

File hashes

Hashes for srmech-0.5.0.tar.gz
Algorithm Hash digest
SHA256 a4cfafca1012298b1f75727c247706208fbbcce446a1b445babe17b343b55ade
MD5 2c51bcae344d54c21a6e0929bcb85c5f
BLAKE2b-256 2c9b7ffe28ac851374e1547eea0e28dd4af1a566f07aaec3db6df77eb1e17288

See more details on using hashes here.

Provenance

The following attestation bundles were made for srmech-0.5.0.tar.gz:

Publisher: srmech-publish.yml on lemonforest/mlehaptics

Attestations: Values shown here reflect the state when the release was signed and may no longer be current.

File details

Details for the file srmech-0.5.0-py3-none-any.whl.

File metadata

  • Download URL: srmech-0.5.0-py3-none-any.whl
  • Upload date:
  • Size: 601.1 kB
  • Tags: Python 3
  • Uploaded using Trusted Publishing? Yes
  • Uploaded via: twine/6.1.0 CPython/3.13.12

File hashes

Hashes for srmech-0.5.0-py3-none-any.whl
Algorithm Hash digest
SHA256 1528cca447cb361a36222f5c8fde278855c625de5943922ea44e7a4d7aac688a
MD5 3244a57737fefd20f645066258001e7c
BLAKE2b-256 7b13b45f3cffceb1e2d1b3efa7cc75e1f09e1b64a183586e24f5cd680532d89f

See more details on using hashes here.

Provenance

The following attestation bundles were made for srmech-0.5.0-py3-none-any.whl:

Publisher: srmech-publish.yml on lemonforest/mlehaptics

Attestations: Values shown here reflect the state when the release was signed and may no longer be current.

File details

Details for the file srmech-0.5.0-cp314-cp314-win_amd64.whl.

File metadata

  • Download URL: srmech-0.5.0-cp314-cp314-win_amd64.whl
  • Upload date:
  • Size: 636.2 kB
  • Tags: CPython 3.14, Windows x86-64
  • Uploaded using Trusted Publishing? Yes
  • Uploaded via: twine/6.1.0 CPython/3.13.12

File hashes

Hashes for srmech-0.5.0-cp314-cp314-win_amd64.whl
Algorithm Hash digest
SHA256 ba3143c8fbc8aa4ca338370a4625027d8fc58718c1b6a136e07ab443db79699e
MD5 83ab45e1c1dd6a3b2a42357622c90a87
BLAKE2b-256 141136897dfd50662395d700d8482406ac9f68d8206ff5ccd9ce510be6533238

See more details on using hashes here.

Provenance

The following attestation bundles were made for srmech-0.5.0-cp314-cp314-win_amd64.whl:

Publisher: srmech-publish.yml on lemonforest/mlehaptics

Attestations: Values shown here reflect the state when the release was signed and may no longer be current.

File details

Details for the file srmech-0.5.0-cp314-cp314-manylinux2014_x86_64.manylinux_2_17_x86_64.manylinux_2_28_x86_64.whl.

File metadata

File hashes

Hashes for srmech-0.5.0-cp314-cp314-manylinux2014_x86_64.manylinux_2_17_x86_64.manylinux_2_28_x86_64.whl
Algorithm Hash digest
SHA256 d58abbf87d58a0e55d99a7b9b612325e7fe9edae46df2d9c8f2998bc2d7e028a
MD5 4676a7490f9e9e3babb3a6a599495019
BLAKE2b-256 f05e016ed83cd96ec01386910b37307a3f98415bdaa7195adaa5f604d4d90825

See more details on using hashes here.

Provenance

The following attestation bundles were made for srmech-0.5.0-cp314-cp314-manylinux2014_x86_64.manylinux_2_17_x86_64.manylinux_2_28_x86_64.whl:

Publisher: srmech-publish.yml on lemonforest/mlehaptics

Attestations: Values shown here reflect the state when the release was signed and may no longer be current.

File details

Details for the file srmech-0.5.0-cp314-cp314-macosx_11_0_arm64.whl.

File metadata

File hashes

Hashes for srmech-0.5.0-cp314-cp314-macosx_11_0_arm64.whl
Algorithm Hash digest
SHA256 89eab2da162da17f60cd369765bd962b9a36b57daafadf56f35e3b44d920f5db
MD5 81c64195ec4b2d863c73d6c543c06079
BLAKE2b-256 a797fa830bc023c1ca2bb72e750f7d7b1d9d8baee513fb688fd3a359b1a3e442

See more details on using hashes here.

Provenance

The following attestation bundles were made for srmech-0.5.0-cp314-cp314-macosx_11_0_arm64.whl:

Publisher: srmech-publish.yml on lemonforest/mlehaptics

Attestations: Values shown here reflect the state when the release was signed and may no longer be current.

File details

Details for the file srmech-0.5.0-cp313-cp313-win_amd64.whl.

File metadata

  • Download URL: srmech-0.5.0-cp313-cp313-win_amd64.whl
  • Upload date:
  • Size: 634.4 kB
  • Tags: CPython 3.13, Windows x86-64
  • Uploaded using Trusted Publishing? Yes
  • Uploaded via: twine/6.1.0 CPython/3.13.12

File hashes

Hashes for srmech-0.5.0-cp313-cp313-win_amd64.whl
Algorithm Hash digest
SHA256 1104dccfd7190adfd5547a10c108ead21598e9a3486620cb185d48beeff8a477
MD5 6593f5a05ed300292286a0ff1932958d
BLAKE2b-256 f5c833bf3fdf5d6177cb540c0fb49bff14d35f5199b6e8f425d14b93e4ae71f1

See more details on using hashes here.

Provenance

The following attestation bundles were made for srmech-0.5.0-cp313-cp313-win_amd64.whl:

Publisher: srmech-publish.yml on lemonforest/mlehaptics

Attestations: Values shown here reflect the state when the release was signed and may no longer be current.

File details

Details for the file srmech-0.5.0-cp313-cp313-manylinux2014_x86_64.manylinux_2_17_x86_64.manylinux_2_28_x86_64.whl.

File metadata

File hashes

Hashes for srmech-0.5.0-cp313-cp313-manylinux2014_x86_64.manylinux_2_17_x86_64.manylinux_2_28_x86_64.whl
Algorithm Hash digest
SHA256 70e62198585ce5916b5e609f88b4aaddd0406cdc2f99f7ee7127c93224a248bb
MD5 ab3347c997f947c453ca639211993fc7
BLAKE2b-256 7a3136093bda64ccc23ae1b3cbeca20e4ace20e8b5451513da76f539e2b9c5e9

See more details on using hashes here.

Provenance

The following attestation bundles were made for srmech-0.5.0-cp313-cp313-manylinux2014_x86_64.manylinux_2_17_x86_64.manylinux_2_28_x86_64.whl:

Publisher: srmech-publish.yml on lemonforest/mlehaptics

Attestations: Values shown here reflect the state when the release was signed and may no longer be current.

File details

Details for the file srmech-0.5.0-cp313-cp313-macosx_11_0_arm64.whl.

File metadata

File hashes

Hashes for srmech-0.5.0-cp313-cp313-macosx_11_0_arm64.whl
Algorithm Hash digest
SHA256 c7dff0cd84cec2050efd3d5863663ac45071a3e7231a7d412e2e7c4bf2ecc72d
MD5 a1da57bfca871e659b82a444d9ece223
BLAKE2b-256 19e774655ed888dc0c0f7a293e4433abfcedf11fff5367e460d9664d736b0e0f

See more details on using hashes here.

Provenance

The following attestation bundles were made for srmech-0.5.0-cp313-cp313-macosx_11_0_arm64.whl:

Publisher: srmech-publish.yml on lemonforest/mlehaptics

Attestations: Values shown here reflect the state when the release was signed and may no longer be current.

File details

Details for the file srmech-0.5.0-cp312-cp312-win_amd64.whl.

File metadata

  • Download URL: srmech-0.5.0-cp312-cp312-win_amd64.whl
  • Upload date:
  • Size: 634.4 kB
  • Tags: CPython 3.12, Windows x86-64
  • Uploaded using Trusted Publishing? Yes
  • Uploaded via: twine/6.1.0 CPython/3.13.12

File hashes

Hashes for srmech-0.5.0-cp312-cp312-win_amd64.whl
Algorithm Hash digest
SHA256 94f9de183c5166974e7de4ede1d5ef6388f551d5997780e6a755ec549493acf3
MD5 96d2ec927c2988eae79198cadcbea731
BLAKE2b-256 232ba76077aba667f0977ae29ea51a3a538778c6cd49b19011933ed8a73fc8af

See more details on using hashes here.

Provenance

The following attestation bundles were made for srmech-0.5.0-cp312-cp312-win_amd64.whl:

Publisher: srmech-publish.yml on lemonforest/mlehaptics

Attestations: Values shown here reflect the state when the release was signed and may no longer be current.

File details

Details for the file srmech-0.5.0-cp312-cp312-manylinux2014_x86_64.manylinux_2_17_x86_64.manylinux_2_28_x86_64.whl.

File metadata

File hashes

Hashes for srmech-0.5.0-cp312-cp312-manylinux2014_x86_64.manylinux_2_17_x86_64.manylinux_2_28_x86_64.whl
Algorithm Hash digest
SHA256 96641e09cf5e7b4e50164e6fd81866d7fc629b419368985afebdfd5bb6732d7c
MD5 aac7a62f5668677d80e65376c74e0adc
BLAKE2b-256 dbfdda04feb613f41066757656a21f6ac5bbef617aed5ac0e14c17a66a342700

See more details on using hashes here.

Provenance

The following attestation bundles were made for srmech-0.5.0-cp312-cp312-manylinux2014_x86_64.manylinux_2_17_x86_64.manylinux_2_28_x86_64.whl:

Publisher: srmech-publish.yml on lemonforest/mlehaptics

Attestations: Values shown here reflect the state when the release was signed and may no longer be current.

File details

Details for the file srmech-0.5.0-cp312-cp312-macosx_11_0_arm64.whl.

File metadata

File hashes

Hashes for srmech-0.5.0-cp312-cp312-macosx_11_0_arm64.whl
Algorithm Hash digest
SHA256 d2e0e2971ee73097750932f70abd653fdb720c52d2b7357af7fe8eaf1bd48be2
MD5 c2d617c0cb0f3d52f5d1e66e4357c7bf
BLAKE2b-256 80896921dbb887fb766094de62aef1108f8ea723d5dbe030e6f18c491cf7ee5f

See more details on using hashes here.

Provenance

The following attestation bundles were made for srmech-0.5.0-cp312-cp312-macosx_11_0_arm64.whl:

Publisher: srmech-publish.yml on lemonforest/mlehaptics

Attestations: Values shown here reflect the state when the release was signed and may no longer be current.

File details

Details for the file srmech-0.5.0-cp311-cp311-win_amd64.whl.

File metadata

  • Download URL: srmech-0.5.0-cp311-cp311-win_amd64.whl
  • Upload date:
  • Size: 634.4 kB
  • Tags: CPython 3.11, Windows x86-64
  • Uploaded using Trusted Publishing? Yes
  • Uploaded via: twine/6.1.0 CPython/3.13.12

File hashes

Hashes for srmech-0.5.0-cp311-cp311-win_amd64.whl
Algorithm Hash digest
SHA256 c8267a3a8b0f4c54c1aa9d00653307ca5fc35dcc3374d28845a193f53634048b
MD5 d8bb503e4430a5779e0546322cd69df0
BLAKE2b-256 0fe729510de8c89bd7d13fa2e78f159257296bea509cfd14c82cd99cd290ac76

See more details on using hashes here.

Provenance

The following attestation bundles were made for srmech-0.5.0-cp311-cp311-win_amd64.whl:

Publisher: srmech-publish.yml on lemonforest/mlehaptics

Attestations: Values shown here reflect the state when the release was signed and may no longer be current.

File details

Details for the file srmech-0.5.0-cp311-cp311-manylinux2014_x86_64.manylinux_2_17_x86_64.manylinux_2_28_x86_64.whl.

File metadata

File hashes

Hashes for srmech-0.5.0-cp311-cp311-manylinux2014_x86_64.manylinux_2_17_x86_64.manylinux_2_28_x86_64.whl
Algorithm Hash digest
SHA256 29d0e9294b0c8b86cab40edadc04f909c4e1da7f983afbc2ce93194a75c2ae73
MD5 d8189c43a4fa9a30726060a154ab46bf
BLAKE2b-256 07509b60e44d430d83d98635b039151d967eceda3e610b4a0d1b973ac7b1bfd5

See more details on using hashes here.

Provenance

The following attestation bundles were made for srmech-0.5.0-cp311-cp311-manylinux2014_x86_64.manylinux_2_17_x86_64.manylinux_2_28_x86_64.whl:

Publisher: srmech-publish.yml on lemonforest/mlehaptics

Attestations: Values shown here reflect the state when the release was signed and may no longer be current.

File details

Details for the file srmech-0.5.0-cp311-cp311-macosx_11_0_arm64.whl.

File metadata

File hashes

Hashes for srmech-0.5.0-cp311-cp311-macosx_11_0_arm64.whl
Algorithm Hash digest
SHA256 62b24a8d6b36c2f4550e382e3d200d5472eb4091d2382139cecaf09db455681b
MD5 a489e0386ac4632ae91ccaac9ffe1338
BLAKE2b-256 3cbeec25cbdd40415c042a6cd35c6718da2a71306f04cd218c8c92077625dee0

See more details on using hashes here.

Provenance

The following attestation bundles were made for srmech-0.5.0-cp311-cp311-macosx_11_0_arm64.whl:

Publisher: srmech-publish.yml on lemonforest/mlehaptics

Attestations: Values shown here reflect the state when the release was signed and may no longer be current.

File details

Details for the file srmech-0.5.0-cp310-cp310-win_amd64.whl.

File metadata

  • Download URL: srmech-0.5.0-cp310-cp310-win_amd64.whl
  • Upload date:
  • Size: 634.4 kB
  • Tags: CPython 3.10, Windows x86-64
  • Uploaded using Trusted Publishing? Yes
  • Uploaded via: twine/6.1.0 CPython/3.13.12

File hashes

Hashes for srmech-0.5.0-cp310-cp310-win_amd64.whl
Algorithm Hash digest
SHA256 6763024722714bcf9787e91dc0f874a3b872c4d9682bfcba9dd0348feabcf6b6
MD5 a40a6289a53f02a388d572e4c3a09891
BLAKE2b-256 e9b190f2eab33aaefdb188421702bc41103c5231e3d7f827c237843fdaa9e5b6

See more details on using hashes here.

Provenance

The following attestation bundles were made for srmech-0.5.0-cp310-cp310-win_amd64.whl:

Publisher: srmech-publish.yml on lemonforest/mlehaptics

Attestations: Values shown here reflect the state when the release was signed and may no longer be current.

File details

Details for the file srmech-0.5.0-cp310-cp310-manylinux2014_x86_64.manylinux_2_17_x86_64.manylinux_2_28_x86_64.whl.

File metadata

File hashes

Hashes for srmech-0.5.0-cp310-cp310-manylinux2014_x86_64.manylinux_2_17_x86_64.manylinux_2_28_x86_64.whl
Algorithm Hash digest
SHA256 332a501dd88777d9f81cffbfa8b0572daacf0fe58b6513f3c38960d19762e827
MD5 f9b5bb4595f48100a5b5bc4fbf7caa30
BLAKE2b-256 1b324e82b0a38bfffd1633a6aaabb1a7ac6f1f2d21e4dda2cc91bea3c1a5a185

See more details on using hashes here.

Provenance

The following attestation bundles were made for srmech-0.5.0-cp310-cp310-manylinux2014_x86_64.manylinux_2_17_x86_64.manylinux_2_28_x86_64.whl:

Publisher: srmech-publish.yml on lemonforest/mlehaptics

Attestations: Values shown here reflect the state when the release was signed and may no longer be current.

File details

Details for the file srmech-0.5.0-cp310-cp310-macosx_11_0_arm64.whl.

File metadata

File hashes

Hashes for srmech-0.5.0-cp310-cp310-macosx_11_0_arm64.whl
Algorithm Hash digest
SHA256 2dea02b9d35b6419cf095d9280f02e1061a7029825c2893946878eef7af944fb
MD5 62494225ba8cb3cf3aa9374f6b812ff3
BLAKE2b-256 88133961adbf3ecfbdbc8b9a8e9d5fd0761a56c319ca55d5e87b3133387a4575

See more details on using hashes here.

Provenance

The following attestation bundles were made for srmech-0.5.0-cp310-cp310-macosx_11_0_arm64.whl:

Publisher: srmech-publish.yml on lemonforest/mlehaptics

Attestations: Values shown here reflect the state when the release was signed and may no longer be current.

Supported by

AWS Cloud computing and Security Sponsor Datadog Monitoring Depot Continuous Integration Fastly CDN Google Download Analytics Pingdom Monitoring Sentry Error logging StatusPage Status page