Skip to main content

Complementary duality between human and AI — composable tensor infrastructure

Project description

Yanantin

Yanantin is a Python package for storing authored memory artifacts with provenance, declared limits, and immutable history.

The package grew out of research on human-AI collaboration, but the small installed core is meant to be usable without reading the research archive. The first stable path is Apacheta: a tensor store for authored compressions. A tensor is not a transcript, a vector embedding, or a generic log entry. It is a record of what an author chose to preserve, what they chose to leave out, and how that record relates to prior records. Note: Apacheta, by design, is an immutable store - the primitives allow creating and accessing new records, but not changing them.

Quick Start

Install the package:

If you prefer to use old tools:

pip install yanantin

for those using uv (the modern package manager):

uv add yanantin

Create and store a tensor in memory:

from yanantin.apacheta.backends.memory import InMemoryBackend
from yanantin.apacheta.models import (
    DeclaredLoss,
    LossCategory,
    ProvenanceEnvelope,
    StrandRecord,
    TensorRecord,
)

store = InMemoryBackend()

tensor = TensorRecord(
    provenance=ProvenanceEnvelope(
        author_instance_id="readme-example",
        author_model_family="human",
    ),
    preamble="A small authored memory.",
    strands=(
        StrandRecord(
            strand_index=0,
            title="Observation",
            content="The in-memory backend is enough for local experiments.",
            topics=("quickstart", "apacheta"),
        ),
    ),
    declared_losses=(
        DeclaredLoss(
            what_was_lost="Persistence",
            why="This example uses the in-memory backend.",
            category=LossCategory.PRACTICAL_CONSTRAINT,
            severity=0.2,
        ),
    ),
    lineage_tags=("example",),
)

store.store_tensor(tensor)
round_tripped = store.get_tensor(tensor.id)

print(round_tripped.preamble)
print(round_tripped.strands[0].content)

There is also a runnable version in examples/minimal_in_memory.py.

What This Package Is

Yanantin currently exposes a small core:

  • yanantin.apacheta.models: Pydantic models for tensors, provenance, declared losses, composition records, and related concepts.
  • yanantin.apacheta.interface: the storage interface that backends implement.
  • yanantin.apacheta.backends.memory: an in-memory backend for examples, tests, and local experimentation.
  • yanantin.activity: append-only fact records and memory anchors.
  • yanantin.query: structured queries over activity streams.

The rest of the repository contains research systems, operational tooling, experiments, and archives. They are useful, but they are not the first thing a new package user needs.

What This Package Is Not

Yanantin is not a vector database, a RAG framework, a transcript archive, or a general-purpose ORM. It is designed around a different unit of memory: an authored compression with provenance and declared loss.

Design Principle: Ayni

This project uses the Andean principle of ayni, or reciprocal care, as a product principle. The package asks users for trust, time, and attention; in return it should give clear orientation, honest limits, recoverable examples, and respectful failure modes.

That principle shows up in practical ways:

  • examples should run without production infrastructure;
  • stable APIs should be marked;
  • experimental APIs should not pretend to be stable;
  • limitations should be declared close to the feature they affect;
  • error messages and documentation should give users a next step.

See docs/principles.md for the longer version.

Stability

Yanantin is currently a 0.x package. The core APIs are being separated from the research surface. If you are using the package as a dependency, start with the modules listed in docs/stability.md.

Backend status in brief:

Backend Status Intended use
In-memory Apacheta Supported core examples, tests, local prototypes
ArangoDB Apacheta Active, infrastructure-backed persistent deployments by users who provision ArangoDB
DuckDB Apacheta Limited/deferred areas compatibility and historical work, not the default production path
Activity in-memory Supported core examples, tests, local prototypes
Activity DuckDB/ArangoDB Active but more operational persistent fact streams

Repository Map

  • src/yanantin/apacheta/: tensor models, storage interface, and backends.
  • src/yanantin/activity/: raw fact stream and memory anchors.
  • src/yanantin/query/: structured queries over activity facts.
  • src/yanantin/collector/: collectors for environment and filesystem data.
  • src/yanantin/experiments/: memory-tool experiment harness.
  • src/yanantin/chasqui/: scout and verification pipeline.
  • docs/: design notes, specifications, findings, and research archive.
  • tests/red_bar/: architectural invariant tests.

More Reading

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

yanantin-0.1.1.tar.gz (383.6 kB view details)

Uploaded Source

Built Distribution

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

yanantin-0.1.1-py3-none-any.whl (251.6 kB view details)

Uploaded Python 3

File details

Details for the file yanantin-0.1.1.tar.gz.

File metadata

  • Download URL: yanantin-0.1.1.tar.gz
  • Upload date:
  • Size: 383.6 kB
  • Tags: Source
  • Uploaded using Trusted Publishing? No
  • Uploaded via: uv/0.10.12 {"installer":{"name":"uv","version":"0.10.12","subcommand":["publish"]},"python":null,"implementation":{"name":null,"version":null},"distro":{"name":"Ubuntu","version":"22.04","id":"jammy","libc":null},"system":{"name":null,"release":null},"cpu":null,"openssl_version":null,"setuptools_version":null,"rustc_version":null,"ci":null}

File hashes

Hashes for yanantin-0.1.1.tar.gz
Algorithm Hash digest
SHA256 cd3d5bbb030e31c2dc9162835d15abe15dad9e4023289297728feb85d4c3f630
MD5 3f4b34d972570ef42ddaa7775e0292a0
BLAKE2b-256 9098a169dcbc1b6131ad1f107c2a3a18d34c04e90ccd1c5404d45d77b77d1f21

See more details on using hashes here.

File details

Details for the file yanantin-0.1.1-py3-none-any.whl.

File metadata

  • Download URL: yanantin-0.1.1-py3-none-any.whl
  • Upload date:
  • Size: 251.6 kB
  • Tags: Python 3
  • Uploaded using Trusted Publishing? No
  • Uploaded via: uv/0.10.12 {"installer":{"name":"uv","version":"0.10.12","subcommand":["publish"]},"python":null,"implementation":{"name":null,"version":null},"distro":{"name":"Ubuntu","version":"22.04","id":"jammy","libc":null},"system":{"name":null,"release":null},"cpu":null,"openssl_version":null,"setuptools_version":null,"rustc_version":null,"ci":null}

File hashes

Hashes for yanantin-0.1.1-py3-none-any.whl
Algorithm Hash digest
SHA256 a3907091c699cd104535a912f68bedf67306ff81bd8463bc55ba2e7e3a36759b
MD5 592062e33f69695ad8b46cefc889110c
BLAKE2b-256 ee6e20207171aee4b8d114a5835af270f7201a77000062160ffa230fc8d42ba7

See more details on using hashes here.

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