Skip to content

Adapters API

Generated from the typed public surface.

tesserix_adk.adapters.A2ABearerSecurity

Stability: alpha

Bearer authentication metadata published in an official Agent Card.

class A2ABearerSecurity(AdkModel)

Typed errors: None declared.

Runnable recipe: examples/transports.py — integration boundaries validate and propagate context.

tesserix_adk.adapters.A2ACardError

Stability: alpha

Raised when required official Agent Card metadata is incomplete or ambiguous.

class A2ACardError(AdkError)

Typed errors: None declared.

Runnable recipe: examples/transports.py — integration boundaries validate and propagate context.

tesserix_adk.adapters.A2AExecutionError

Stability: alpha

Raised when an official A2A request cannot be mapped to a Tesserix run.

class A2AExecutionError(AdkError)

Typed errors: None declared.

Runnable recipe: examples/transports.py — integration boundaries validate and propagate context.

tesserix_adk.adapters.A2AInterface

Stability: alpha

One official A2A endpoint, including custom gateway bindings.

class A2AInterface(AdkModel)

Typed errors: None declared.

Runnable recipe: examples/transports.py — integration boundaries validate and propagate context.

tesserix_adk.adapters.A2APrincipalResolver

Stability: alpha · Kind: Protocol

Authenticate and authorise one A2A request at the server trust boundary.

class A2APrincipalResolver(Protocol)

Typed errors: None declared.

Runnable recipe: examples/transports.py — integration boundaries validate and propagate context.

tesserix_adk.adapters.A2ARegistry

Stability: alpha · Kind: Protocol

A vendor-neutral registry that resolves a name to an official Agent Card.

class A2ARegistry(Protocol) {resolve(self, name: 'str') -> 'AgentCard'}

Typed errors: None declared.

Runnable recipe: examples/transports.py — integration boundaries validate and propagate context.

tesserix_adk.adapters.A2ARegistryError

Stability: alpha

Raised when a registry answer cannot safely identify the requested agent.

class A2ARegistryError(AdkError)

Typed errors: None declared.

Runnable recipe: examples/transports.py — integration boundaries validate and propagate context.

tesserix_adk.adapters.A2ASkill

Stability: alpha

A public task capability in an official A2A Agent Card.

class A2ASkill(AdkModel)

Typed errors: None declared.

Runnable recipe: examples/transports.py — integration boundaries validate and propagate context.

tesserix_adk.adapters.ADAPTER_GUARANTEES

Stability: alpha

dict() -> new empty dictionary dict(mapping) -> new dictionary initialized from a mapping object's (key, value) pairs dict(iterable) -> new dictionary initialized as if via: d = {} for k, v in iterable: d[k] = v dict(**kwargs) -> new dictionary initialized with the name=value pairs in the keyword argument list. For example: dict(one=1, two=2)

ADAPTER_GUARANTEES: dict

Typed errors: None declared.

Runnable recipe: examples/transports.py — integration boundaries validate and propagate context.

tesserix_adk.adapters.APPROVAL_REQUIRED

Stability: alpha

str(object='') -> str str(bytes_or_buffer[, encoding[, errors]]) -> str

APPROVAL_REQUIRED: str

Typed errors: None declared.

Runnable recipe: examples/transports.py — integration boundaries validate and propagate context.

tesserix_adk.adapters.AUDIT_SCHEMA_VERSION

Stability: alpha

int([x]) -> integer int(x, base=10) -> integer

AUDIT_SCHEMA_VERSION: int

Typed errors: None declared.

Runnable recipe: examples/transports.py — integration boundaries validate and propagate context.

tesserix_adk.adapters.ApprovalInbox

Stability: alpha

Where a held tool call waits for a decision that arrives over the control channel.

class ApprovalInbox(object) {decide(self, decision: 'ApprovalDecision', *, tenant: 'str') -> 'None'; request(self, record: 'ApprovalRecord') -> 'ApprovalDecision'; wait_for(self, record_id: 'str') -> 'None'}

Typed errors: None declared.

Runnable recipe: examples/transports.py — integration boundaries validate and propagate context.

tesserix_adk.adapters.AuditTables

Stability: alpha

Where the rows live. One database may hold more than one kit deployment.

class AuditTables(object)

Typed errors: None declared.

Runnable recipe: examples/transports.py — integration boundaries validate and propagate context.

tesserix_adk.adapters.AuthorisingSession

Stability: alpha

An MCP session that attributes every call and redacts what comes back.

class AuthorisingSession(object) {call_tool(self, name: 'str', arguments: 'Mapping[str, JsonValue]', *, meta: 'Mapping[str, str]', timeout_seconds: 'float') -> 'GatewayToolResult'; close(self) -> 'None'; initialize(self) -> 'McpServerInfo'; list_tools(self) -> 'tuple[McpToolDescriptor, ...]'}

Typed errors: None declared.

Runnable recipe: examples/transports.py — integration boundaries validate and propagate context.

tesserix_adk.adapters.BACKENDS

Stability: alpha

Built-in immutable sequence.

BACKENDS: tuple

Typed errors: None declared.

Runnable recipe: examples/transports.py — integration boundaries validate and propagate context.

tesserix_adk.adapters.BreakerState

Stability: alpha

Whether this process is currently willing to reach for a server.

class BreakerState(StrEnum)

Typed errors: None declared.

Runnable recipe: examples/transports.py — integration boundaries validate and propagate context.

tesserix_adk.adapters.CEILING_SCHEMA_VERSION

Stability: alpha

int([x]) -> integer int(x, base=10) -> integer

CEILING_SCHEMA_VERSION: int

Typed errors: None declared.

Runnable recipe: examples/transports.py — integration boundaries validate and propagate context.

tesserix_adk.adapters.CHECKPOINT_SCHEMA_VERSION

Stability: alpha

int([x]) -> integer int(x, base=10) -> integer

CHECKPOINT_SCHEMA_VERSION: int

Typed errors: None declared.

Runnable recipe: examples/transports.py — integration boundaries validate and propagate context.

tesserix_adk.adapters.CHUNK_SCHEMA_VERSION

Stability: alpha

int([x]) -> integer int(x, base=10) -> integer

CHUNK_SCHEMA_VERSION: int

Typed errors: None declared.

Runnable recipe: examples/transports.py — integration boundaries validate and propagate context.

tesserix_adk.adapters.COUNTERS

Stability: alpha

Built-in immutable sequence.

COUNTERS: tuple

Typed errors: None declared.

Runnable recipe: examples/transports.py — integration boundaries validate and propagate context.

tesserix_adk.adapters.CallAuthority

Stability: alpha · Kind: Protocol

Whatever decides what one MCP request may present. TenantAuthority does.

class CallAuthority(Protocol) {headers_for(self, *, server: 'str', holding_for: 'float' = Ellipsis) -> 'Mapping[str, str]'; meta_for(self, *, server: 'str', holding_for: 'float' = Ellipsis) -> 'Mapping[str, str]'; secrets_for(self, *, server: 'str') -> 'tuple[str, ...]'}

Typed errors: None declared.

Runnable recipe: examples/transports.py — integration boundaries validate and propagate context.

tesserix_adk.adapters.CallerContext

Stability: alpha

The run's own answer to who a call is for and where it sits in a trace.

class CallerContext(object) {headers(self) -> 'dict[str, str]'; meta(self) -> 'dict[str, str]'}

Typed errors: None declared.

Runnable recipe: examples/transports.py — integration boundaries validate and propagate context.

tesserix_adk.adapters.CeilingTables

Stability: alpha

Where the rows live. One database may hold more than one kit deployment.

class CeilingTables(object)

Typed errors: None declared.

Runnable recipe: examples/transports.py — integration boundaries validate and propagate context.

tesserix_adk.adapters.CheckpointTables

Stability: alpha

Where the rows live. One database may hold more than one kit deployment.

class CheckpointTables(object)

Typed errors: None declared.

Runnable recipe: examples/transports.py — integration boundaries validate and propagate context.

tesserix_adk.adapters.ChunkTables

Stability: alpha

Where the rows live. One database may hold more than one kit deployment.

class ChunkTables(object)

Typed errors: None declared.

Runnable recipe: examples/transports.py — integration boundaries validate and propagate context.

tesserix_adk.adapters.CoalescingLedger

Stability: alpha

A ledger that buys allowance in blocks, so not every call is a round trip.

class CoalescingLedger(object) {flush(self) -> 'None'; forget(self, tenant: 'str') -> 'WindowSpend'; read_window(self, key: 'LedgerKey') -> 'WindowSpend'; reconcile(self) -> 'int'; record_progress(self, reservation: 'Reservation', spent: 'Decimal') -> 'None'; release(self, reservation: 'Reservation') -> 'None'; reserve(self, key: 'LedgerKey', amount: 'Decimal', *, ceiling: 'Decimal', lease_seconds: 'float' = 300.0) -> 'Reservation'; settle(self, reservation: 'Reservation', actual: 'Decimal') -> 'None'}

Typed errors: None declared.

Runnable recipe: examples/transports.py — integration boundaries validate and propagate context.

tesserix_adk.adapters.ConsoleApprovals

Stability: alpha

Asks whoever is at the terminal, for a single-operator deployment or a local run.

class ConsoleApprovals(object) {deliver(self, record: 'ApprovalRecord') -> 'ApprovalDecision'}

Typed errors: ConfigurationError

Runnable recipe: examples/transports.py — integration boundaries validate and propagate context.

tesserix_adk.adapters.DEFAULT_APPROVAL_SUBJECT

Stability: alpha

str(object='') -> str str(bytes_or_buffer[, encoding[, errors]]) -> str

DEFAULT_APPROVAL_SUBJECT: str

Typed errors: None declared.

Runnable recipe: examples/transports.py — integration boundaries validate and propagate context.

tesserix_adk.adapters.DEFAULT_AUDIT_SUBJECT

Stability: alpha

str(object='') -> str str(bytes_or_buffer[, encoding[, errors]]) -> str

DEFAULT_AUDIT_SUBJECT: str

Typed errors: None declared.

Runnable recipe: examples/transports.py — integration boundaries validate and propagate context.

tesserix_adk.adapters.DEFAULT_AUDIT_TABLES

Stability: alpha

Where the rows live. One database may hold more than one kit deployment.

DEFAULT_AUDIT_TABLES: AuditTables

Typed errors: None declared.

Runnable recipe: examples/transports.py — integration boundaries validate and propagate context.

tesserix_adk.adapters.DEFAULT_CEILING_TABLES

Stability: alpha

Where the rows live. One database may hold more than one kit deployment.

DEFAULT_CEILING_TABLES: CeilingTables

Typed errors: None declared.

Runnable recipe: examples/transports.py — integration boundaries validate and propagate context.

tesserix_adk.adapters.DEFAULT_CHECKPOINT_NAMESPACE

Stability: alpha

str(object='') -> str str(bytes_or_buffer[, encoding[, errors]]) -> str

DEFAULT_CHECKPOINT_NAMESPACE: str

Typed errors: None declared.

Runnable recipe: examples/transports.py — integration boundaries validate and propagate context.

tesserix_adk.adapters.DEFAULT_CHECKPOINT_TABLES

Stability: alpha

Where the rows live. One database may hold more than one kit deployment.

DEFAULT_CHECKPOINT_TABLES: CheckpointTables

Typed errors: None declared.

Runnable recipe: examples/transports.py — integration boundaries validate and propagate context.

tesserix_adk.adapters.DEFAULT_CHUNK_TABLES

Stability: alpha

Where the rows live. One database may hold more than one kit deployment.

DEFAULT_CHUNK_TABLES: ChunkTables

Typed errors: None declared.

Runnable recipe: examples/transports.py — integration boundaries validate and propagate context.

tesserix_adk.adapters.DEFAULT_COLLECTION

Stability: alpha

str(object='') -> str str(bytes_or_buffer[, encoding[, errors]]) -> str

DEFAULT_COLLECTION: str

Typed errors: None declared.

Runnable recipe: examples/transports.py — integration boundaries validate and propagate context.

tesserix_adk.adapters.DEFAULT_DEDUPE_TTL_SECONDS

Stability: alpha

Convert a string or number to a floating-point number, if possible.

DEFAULT_DEDUPE_TTL_SECONDS: float

Typed errors: None declared.

Runnable recipe: examples/transports.py — integration boundaries validate and propagate context.

tesserix_adk.adapters.DEFAULT_EVENT_SUBJECT

Stability: alpha

str(object='') -> str str(bytes_or_buffer[, encoding[, errors]]) -> str

DEFAULT_EVENT_SUBJECT: str

Typed errors: None declared.

Runnable recipe: examples/transports.py — integration boundaries validate and propagate context.

tesserix_adk.adapters.DEFAULT_GRANT_TABLES

Stability: alpha

Where the rows live. One database may hold more than one kit deployment.

DEFAULT_GRANT_TABLES: GrantTables

Typed errors: None declared.

Runnable recipe: examples/transports.py — integration boundaries validate and propagate context.

tesserix_adk.adapters.DEFAULT_HEARTBEAT_SECONDS

Stability: alpha

Convert a string or number to a floating-point number, if possible.

DEFAULT_HEARTBEAT_SECONDS: float

Typed errors: None declared.

Runnable recipe: examples/transports.py — integration boundaries validate and propagate context.

tesserix_adk.adapters.DEFAULT_LEASE_SECONDS

Stability: alpha

Convert a string or number to a floating-point number, if possible.

DEFAULT_LEASE_SECONDS: float

Typed errors: None declared.

Runnable recipe: examples/transports.py — integration boundaries validate and propagate context.

tesserix_adk.adapters.DEFAULT_MAX_ATTEMPTS

Stability: alpha

int([x]) -> integer int(x, base=10) -> integer

DEFAULT_MAX_ATTEMPTS: int

Typed errors: None declared.

Runnable recipe: examples/transports.py — integration boundaries validate and propagate context.

tesserix_adk.adapters.DEFAULT_NAMESPACE

Stability: alpha

str(object='') -> str str(bytes_or_buffer[, encoding[, errors]]) -> str

DEFAULT_NAMESPACE: str

Typed errors: None declared.

Runnable recipe: examples/transports.py — integration boundaries validate and propagate context.

tesserix_adk.adapters.DEFAULT_OUTBOX_TABLES

Stability: alpha

Where the rows live. One database may hold more than one kit deployment.

DEFAULT_OUTBOX_TABLES: OutboxTables

Typed errors: None declared.

Runnable recipe: examples/transports.py — integration boundaries validate and propagate context.

tesserix_adk.adapters.DEFAULT_PAYLOAD_LIMIT_BYTES

Stability: alpha

int([x]) -> integer int(x, base=10) -> integer

DEFAULT_PAYLOAD_LIMIT_BYTES: int

Typed errors: None declared.

Runnable recipe: examples/transports.py — integration boundaries validate and propagate context.

tesserix_adk.adapters.DEFAULT_QUEUE_NAMESPACE

Stability: alpha

str(object='') -> str str(bytes_or_buffer[, encoding[, errors]]) -> str

DEFAULT_QUEUE_NAMESPACE: str

Typed errors: None declared.

Runnable recipe: examples/transports.py — integration boundaries validate and propagate context.

tesserix_adk.adapters.DEFAULT_RETENTION_SECONDS

Stability: alpha

Convert a string or number to a floating-point number, if possible.

DEFAULT_RETENTION_SECONDS: float

Typed errors: None declared.

Runnable recipe: examples/transports.py — integration boundaries validate and propagate context.

tesserix_adk.adapters.DEFAULT_RETRY_MILLISECONDS

Stability: alpha

int([x]) -> integer int(x, base=10) -> integer

DEFAULT_RETRY_MILLISECONDS: int

Typed errors: None declared.

Runnable recipe: examples/transports.py — integration boundaries validate and propagate context.

tesserix_adk.adapters.DEFAULT_STATE_NAMESPACE

Stability: alpha

str(object='') -> str str(bytes_or_buffer[, encoding[, errors]]) -> str

DEFAULT_STATE_NAMESPACE: str

Typed errors: None declared.

Runnable recipe: examples/transports.py — integration boundaries validate and propagate context.

tesserix_adk.adapters.DEFAULT_STREAM_REQUIREMENT

Stability: alpha

What the stream must already be, for publishing onto it to mean anything.

DEFAULT_STREAM_REQUIREMENT: StreamRequirement

Typed errors: None declared.

Runnable recipe: examples/transports.py — integration boundaries validate and propagate context.

tesserix_adk.adapters.DEFAULT_TABLE

Stability: alpha

str(object='') -> str str(bytes_or_buffer[, encoding[, errors]]) -> str

DEFAULT_TABLE: str

Typed errors: None declared.

Runnable recipe: examples/transports.py — integration boundaries validate and propagate context.

tesserix_adk.adapters.DISTANCE_OPERATORS

Stability: alpha

dict() -> new empty dictionary dict(mapping) -> new dictionary initialized from a mapping object's (key, value) pairs dict(iterable) -> new dictionary initialized as if via: d = {} for k, v in iterable: d[k] = v dict(**kwargs) -> new dictionary initialized with the name=value pairs in the keyword argument list. For example: dict(one=1, two=2)

DISTANCE_OPERATORS: dict

Typed errors: None declared.

Runnable recipe: examples/transports.py — integration boundaries validate and propagate context.

tesserix_adk.adapters.DeadLetter

Stability: alpha · Kind: Protocol

Where a message that will never be handled goes, instead of round again.

class DeadLetter(Protocol) {bury(self, payload: 'bytes', *, reason: 'str', history: 'tuple[str, ...]' = ()) -> 'None'}

Typed errors: None declared.

Runnable recipe: examples/transports.py — integration boundaries validate and propagate context.

tesserix_adk.adapters.DeadLetterQuery

Stability: alpha

Which records to look at, or to move. Never more than one tenant's.

class DeadLetterQuery(AdkModel) {matches(self, record: 'DeadLetterRecord') -> 'bool'}

Typed errors: None declared.

Runnable recipe: examples/transports.py — integration boundaries validate and propagate context.

tesserix_adk.adapters.DeadLetterRecord

Stability: alpha

One event that will not be handled, and what is known about why.

class DeadLetterRecord(AdkModel) {inspected(self) -> 'dict[str, str]'}

Typed errors: None declared.

Runnable recipe: examples/transports.py — integration boundaries validate and propagate context.

tesserix_adk.adapters.DeadLetterStats

Stability: alpha

The backlog, as the two numbers worth alerting on.

class DeadLetterStats(object)

Typed errors: None declared.

Runnable recipe: examples/transports.py — integration boundaries validate and propagate context.

tesserix_adk.adapters.DeadLetterStore

Stability: alpha · Kind: Protocol

Where undeliverable events are kept, and how an operator reads them back.

class DeadLetterStore(Protocol) {bury(self, payload: 'bytes', *, reason: 'str', history: 'tuple[str, ...]' = (), group: 'str' = '') -> 'None'; forget(self, event_ids: 'Sequence[str]') -> 'None'; list(self, query: 'DeadLetterQuery') -> 'Sequence[DeadLetterRecord]'; stats(self, tenant: 'str') -> 'DeadLetterStats'}

Typed errors: None declared.

Runnable recipe: examples/transports.py — integration boundaries validate and propagate context.

tesserix_adk.adapters.Degraded

Stability: alpha

One capability an agent was assembled without, and why it is not there.

class Degraded(AdkModel)

Typed errors: None declared.

Runnable recipe: examples/transports.py — integration boundaries validate and propagate context.

tesserix_adk.adapters.DurableConsumer

Stability: alpha

Reads events back with explicit acks, and buries what will never be handled.

class DurableConsumer(object) {consume(self) -> 'int'}

Typed errors: None declared.

Runnable recipe: examples/transports.py — integration boundaries validate and propagate context.

tesserix_adk.adapters.EXPECTED_AUDIT_SCHEMA

Stability: alpha

str(object='') -> str str(bytes_or_buffer[, encoding[, errors]]) -> str

EXPECTED_AUDIT_SCHEMA: str

Typed errors: None declared.

Runnable recipe: examples/transports.py — integration boundaries validate and propagate context.

tesserix_adk.adapters.EXPECTED_CEILING_SCHEMA

Stability: alpha

str(object='') -> str str(bytes_or_buffer[, encoding[, errors]]) -> str

EXPECTED_CEILING_SCHEMA: str

Typed errors: None declared.

Runnable recipe: examples/transports.py — integration boundaries validate and propagate context.

tesserix_adk.adapters.EXPECTED_CHECKPOINT_SCHEMA

Stability: alpha

str(object='') -> str str(bytes_or_buffer[, encoding[, errors]]) -> str

EXPECTED_CHECKPOINT_SCHEMA: str

Typed errors: None declared.

Runnable recipe: examples/transports.py — integration boundaries validate and propagate context.

tesserix_adk.adapters.EXPECTED_CHUNK_SCHEMA

Stability: alpha

str(object='') -> str str(bytes_or_buffer[, encoding[, errors]]) -> str

EXPECTED_CHUNK_SCHEMA: str

Typed errors: None declared.

Runnable recipe: examples/transports.py — integration boundaries validate and propagate context.

tesserix_adk.adapters.EXPECTED_GRANT_SCHEMA

Stability: alpha

str(object='') -> str str(bytes_or_buffer[, encoding[, errors]]) -> str

EXPECTED_GRANT_SCHEMA: str

Typed errors: None declared.

Runnable recipe: examples/transports.py — integration boundaries validate and propagate context.

tesserix_adk.adapters.EXPECTED_OUTBOX_SCHEMA

Stability: alpha

str(object='') -> str str(bytes_or_buffer[, encoding[, errors]]) -> str

EXPECTED_OUTBOX_SCHEMA: str

Typed errors: None declared.

Runnable recipe: examples/transports.py — integration boundaries validate and propagate context.

tesserix_adk.adapters.EXPECTED_SCHEMA

Stability: alpha

str(object='') -> str str(bytes_or_buffer[, encoding[, errors]]) -> str

EXPECTED_SCHEMA: str

Typed errors: None declared.

Runnable recipe: examples/transports.py — integration boundaries validate and propagate context.

tesserix_adk.adapters.EXTRACTION_INSTRUCTION

Stability: alpha

str(object='') -> str str(bytes_or_buffer[, encoding[, errors]]) -> str

EXTRACTION_INSTRUCTION: str

Typed errors: None declared.

Runnable recipe: examples/transports.py — integration boundaries validate and propagate context.

tesserix_adk.adapters.EntityExtractor

Stability: alpha

Turns an episode into a subgraph, through the kit's own provider protocol.

class EntityExtractor(object) {extract(self, scope: 'MemoryScope', record: 'MemoryRecord', *, budget: 'BudgetPolicy') -> 'tuple[ExtractedSubgraph, ExtractionCharge]'}

Typed errors: None declared.

Runnable recipe: examples/transports.py — integration boundaries validate and propagate context.

tesserix_adk.adapters.ErasureCheck

Stability: alpha

Type alias.

ErasureCheck: TypeAliasType

Typed errors: None declared.

Runnable recipe: examples/transports.py — integration boundaries validate and propagate context.

tesserix_adk.adapters.ErasureSweep

Stability: alpha

What a tenant-scoped erasure found still standing afterwards.

class ErasureSweep(AdkModel)

Typed errors: None declared.

Runnable recipe: examples/transports.py — integration boundaries validate and propagate context.

tesserix_adk.adapters.ExportDescriptorDriftError

Stability: alpha

Raised when a consumer's pinned function descriptor no longer matches.

class ExportDescriptorDriftError(AdkError)

Typed errors: None declared.

Runnable recipe: examples/transports.py — integration boundaries validate and propagate context.

tesserix_adk.adapters.ExportErrorCode

Stability: alpha

Stable categories a foreign orchestrator may branch on.

class ExportErrorCode(StrEnum)

Typed errors: None declared.

Runnable recipe: examples/transports.py — integration boundaries validate and propagate context.

tesserix_adk.adapters.ExportErrorEnvelope

Stability: alpha

A non-secret failure shape shared by direct, MCP and framework callers.

class ExportErrorEnvelope(AdkModel)

Typed errors: None declared.

Runnable recipe: examples/transports.py — integration boundaries validate and propagate context.

tesserix_adk.adapters.ExportInvocation

Stability: alpha

Authenticated ingress context supplied beside model-controlled arguments.

class ExportInvocation(object) {with_budget(self, budget: 'BudgetPolicy') -> 'ExportInvocation'}

Typed errors: None declared.

Runnable recipe: examples/transports.py — integration boundaries validate and propagate context.

tesserix_adk.adapters.ExportedA2AAgent

Stability: alpha

Official A2A card and executor produced by the existing A2A adapter.

class ExportedA2AAgent(object)

Typed errors: None declared.

Runnable recipe: examples/transports.py — integration boundaries validate and propagate context.

tesserix_adk.adapters.ExportedAgentResult

Stability: alpha

Versioned success-or-error result serialised to foreign frameworks.

class ExportedAgentResult(AdkModel, Generic)

Typed errors: None declared.

Runnable recipe: examples/transports.py — integration boundaries validate and propagate context.

tesserix_adk.adapters.ExportedAgentTool

Stability: alpha

An OpenAI descriptor, typed callable and kit tool backed by one agent.

class ExportedAgentTool(Generic) {assert_descriptor(self, expected: 'str') -> 'None'; invoke(self, arguments: 'Mapping[str, object] | str | bytes', context: 'ExportInvocation | None') -> 'ExportedAgentResult[OutputT]'}

Typed errors: None declared.

Runnable recipe: examples/transports.py — integration boundaries validate and propagate context.

tesserix_adk.adapters.ExportedSession

Stability: alpha

One caller's session: the tools it was opened with, and the calls it makes.

class ExportedSession(object) {call_tool(self, name: 'str', arguments: 'Mapping[str, JsonValue]', *, meta: 'Mapping[str, str]', timeout_seconds: 'float') -> 'GatewayToolResult'; close(self) -> 'None'; initialize(self) -> 'McpServerInfo'; list_tools(self) -> 'tuple[McpToolDescriptor, ...]'}

Typed errors: None declared.

Runnable recipe: examples/transports.py — integration boundaries validate and propagate context.

tesserix_adk.adapters.ExtractedEdge

Stability: alpha

One relation, valid over an interval.

class ExtractedEdge(AdkModel)

Typed errors: None declared.

Runnable recipe: examples/transports.py — integration boundaries validate and propagate context.

tesserix_adk.adapters.ExtractedNode

Stability: alpha

One entity the extraction named.

class ExtractedNode(AdkModel)

Typed errors: None declared.

Runnable recipe: examples/transports.py — integration boundaries validate and propagate context.

tesserix_adk.adapters.ExtractedSubgraph

Stability: alpha

What one episode became, committed as a unit or not at all.

class ExtractedSubgraph(AdkModel)

Typed errors: None declared.

Runnable recipe: examples/transports.py — integration boundaries validate and propagate context.

tesserix_adk.adapters.ExtractionCharge

Stability: alpha

What one extraction cost, attributed like any other model call.

class ExtractionCharge(AdkModel)

Typed errors: None declared.

Runnable recipe: examples/transports.py — integration boundaries validate and propagate context.

tesserix_adk.adapters.ExtractionMeter

Stability: alpha

A per-tenant ceiling on extraction spend, checked before the call.

class ExtractionMeter(object) {charge(self, tenant: 'str', cost: 'Decimal') -> 'None'; check(self, tenant: 'str') -> 'None'; spent(self, tenant: 'str') -> 'Decimal'}

Typed errors: None declared.

Runnable recipe: examples/transports.py — integration boundaries validate and propagate context.

tesserix_adk.adapters.ForeignAgentContext

Stability: alpha

Caller-owned context supplied beside, and never inside, foreign input.

class ForeignAgentContext(object) {raise_if_cancelled(self) -> 'None'}

Typed errors: None declared.

Runnable recipe: examples/transports.py — integration boundaries validate and propagate context.

tesserix_adk.adapters.ForeignAgentReply

Stability: alpha

A foreign answer with whatever metering its runtime can report.

class ForeignAgentReply(AdkModel, Generic)

Typed errors: None declared.

Runnable recipe: examples/transports.py — integration boundaries validate and propagate context.

tesserix_adk.adapters.ForeignTool

Stability: alpha

One toolset entry, pairing a foreign definition with its implementation.

class ForeignTool(object)

Typed errors: None declared.

Runnable recipe: examples/transports.py — integration boundaries validate and propagate context.

tesserix_adk.adapters.GOOGLE_ADK_CONTEXT_KEY

Stability: alpha

str(object='') -> str str(bytes_or_buffer[, encoding[, errors]]) -> str

GOOGLE_ADK_CONTEXT_KEY: str

Typed errors: None declared.

Runnable recipe: examples/transports.py — integration boundaries validate and propagate context.

tesserix_adk.adapters.GRANT_SCHEMA_VERSION

Stability: alpha

int([x]) -> integer int(x, base=10) -> integer

GRANT_SCHEMA_VERSION: int

Typed errors: None declared.

Runnable recipe: examples/transports.py — integration boundaries validate and propagate context.

tesserix_adk.adapters.GoogleAdkAgentInvoker

Stability: alpha · Kind: Protocol

Application-owned invocation of one Google agent under delegated context.

class GoogleAdkAgentInvoker(Protocol)

Typed errors: None declared.

Runnable recipe: examples/transports.py — integration boundaries validate and propagate context.

tesserix_adk.adapters.GraftMcpBackend

Stability: alpha

A tenant-bound Graft MCP session.

class GraftMcpBackend(object) {execute(self, request: 'CodeContextRequest') -> 'CodeContextResult'}

Typed errors: None declared.

Runnable recipe: examples/transports.py — integration boundaries validate and propagate context.

tesserix_adk.adapters.GraftSubprocessBackend

Stability: alpha

A local Graft CLI bound to one canonical checkout.

class GraftSubprocessBackend(object) {execute(self, request: 'CodeContextRequest') -> 'CodeContextResult'}

Typed errors: None declared.

Runnable recipe: examples/transports.py — integration boundaries validate and propagate context.

tesserix_adk.adapters.GrantTables

Stability: alpha

Where the rows live. One database may hold more than one kit deployment.

class GrantTables(object)

Typed errors: None declared.

Runnable recipe: examples/transports.py — integration boundaries validate and propagate context.

tesserix_adk.adapters.GraphEngine

Stability: alpha · Kind: Protocol

The three things the adapter asks of a graph, and nothing else.

class GraphEngine(Protocol) {commit(self, subgraph: 'ExtractedSubgraph') -> 'None'; drop(self, path: 'tuple[str, str, str, str]') -> 'Mapping[str, int]'; edges(self, path: 'tuple[str, str, str, str]', *, as_of: 'float | None', limit: 'int') -> 'Sequence[ExtractedEdge]'}

Typed errors: None declared.

Runnable recipe: examples/transports.py — integration boundaries validate and propagate context.

tesserix_adk.adapters.GraphMemoryStore

Stability: alpha

MemoryStore whose episodic and semantic halves are a temporal graph.

class GraphMemoryStore(object) {append(self, scope: 'MemoryScope', key: 'str', value: 'JsonValue') -> 'int'; belief(self, scope: 'MemoryScope', key: 'str', *, as_of: 'float | None' = None) -> 'Belief'; derivations(self, scope: 'MemoryScope', *, source_id: 'str | None' = None) -> 'Sequence[Derivation]'; derived(self, scope: 'MemoryScope', derivation: 'Derivation') -> 'None'; enqueue(self, scope: 'MemoryScope', record: 'MemoryRecord') -> 'None'; episodes(self, scope: 'MemoryScope', query: 'MemoryQuery') -> 'Sequence[MemoryHit]'; erase(self, scope: 'MemoryScope', *, kinds: 'tuple[MemoryKind, ...]' = (), dry_run: 'bool' = False) -> 'ErasureReceipt'; expire(self, scope: 'MemoryScope', key: 'str', *, ttl_seconds: 'float') -> 'None'; flush(self) -> 'int'; history(self, scope: 'MemoryScope', key: 'str | None' = None) -> 'Sequence[MemoryRecord]'; index(self, scope: 'MemoryScope', record: 'MemoryRecord') -> 'None'; log(self, scope: 'MemoryScope', record: 'MemoryRecord') -> 'None'; profile(self, scope: 'MemoryScope', key: 'str', *, as_of: 'float | None' = None) -> 'MemoryRecord | None'; read(self, scope: 'MemoryScope', key: 'str') -> 'MemoryRecord | None'; relations(self, scope: 'MemoryScope', *, as_of: 'float | None' = None, limit: 'int' = 10) -> 'Sequence[MemoryHit]'; retry_pending(self) -> 'int'; search(self, scope: 'MemoryScope', query: 'MemoryQuery') -> 'Sequence[MemoryHit]'; supersede(self, scope: 'MemoryScope', record: 'MemoryRecord', *, expected_version: 'int | None' = None, resolves: 'tuple[str, ...]' = ()) -> 'Supersession'; upsert(self, scope: 'MemoryScope', record: 'MemoryRecord') -> 'None'; write(self, scope: 'MemoryScope', record: 'MemoryRecord') -> 'None'; writing(self) -> 'AsyncIterator[None]'}

Typed errors: None declared.

Runnable recipe: examples/transports.py — integration boundaries validate and propagate context.

tesserix_adk.adapters.GraphSettings

Stability: alpha

Where the graph is and what extracts into it.

class GraphSettings(AdkModel)

Typed errors: None declared.

Runnable recipe: examples/transports.py — integration boundaries validate and propagate context.

tesserix_adk.adapters.GraphitiClient

Stability: alpha · Kind: Protocol

The part of graphiti's client the engine drives, named so nothing here is Any.

class GraphitiClient(Protocol) {add_episode(self, *, name: 'str', episode_body: 'str', source_description: 'str', group_id: 'str', reference_time: 'float | None') -> 'None'; remove_episode(self, group_id: 'str') -> 'None'; search(self, query: 'str', *, group_ids: 'Sequence[str]', num_results: 'int', reference_time: 'float | None') -> 'Sequence[object]'}

Typed errors: None declared.

Runnable recipe: examples/transports.py — integration boundaries validate and propagate context.

tesserix_adk.adapters.GraphitiEngine

Stability: alpha

GraphEngine over graphiti-core, which owns the temporal model and the backend.

class GraphitiEngine(object) {commit(self, subgraph: 'ExtractedSubgraph') -> 'None'; drop(self, path: 'tuple[str, str, str, str]') -> 'Mapping[str, int]'; edges(self, path: 'tuple[str, str, str, str]', *, as_of: 'float | None', limit: 'int') -> 'Sequence[ExtractedEdge]'; group_id(self, path: 'tuple[str, str, str, str]') -> 'str'}

Typed errors: None declared.

Runnable recipe: examples/transports.py — integration boundaries validate and propagate context.

tesserix_adk.adapters.HttpPoster

Stability: alpha · Kind: Protocol

The one method this adapter uses from an HTTP client.

class HttpPoster(Protocol) {post(self, url: 'str', *, content: 'bytes', headers: 'Mapping[str, str]') -> 'tuple[int, bytes]'}

Typed errors: None declared.

Runnable recipe: examples/transports.py — integration boundaries validate and propagate context.

tesserix_adk.adapters.HttpTransport

Stability: alpha

One MCP server as an HTTP endpoint, reading a JSON or an SSE reply.

class HttpTransport(object) {close(self) -> 'None'; notify(self, method: 'str', params: 'Mapping[str, JsonValue]') -> 'None'; open(self) -> 'None'; request(self, method: 'str', params: 'Mapping[str, JsonValue]', *, timeout_seconds: 'float') -> 'dict[str, JsonValue]'}

Typed errors: None declared.

Runnable recipe: examples/transports.py — integration boundaries validate and propagate context.

tesserix_adk.adapters.IN_FLIGHT

Stability: alpha

str(object='') -> str str(bytes_or_buffer[, encoding[, errors]]) -> str

IN_FLIGHT: str

Typed errors: None declared.

Runnable recipe: examples/transports.py — integration boundaries validate and propagate context.

tesserix_adk.adapters.IdempotentConsumer

Stability: alpha

Runs a handler at most once per event, and stops retrying what never works.

class IdempotentConsumer(object) {handle(self, event: 'EventEnvelope') -> 'bool'}

Typed errors: ConfigurationError

Runnable recipe: examples/transports.py — integration boundaries validate and propagate context.

tesserix_adk.adapters.InMemoryDeadLetters

Stability: alpha

A store in this process. The reference implementation, and what tests and the CLI use.

class InMemoryDeadLetters(object) {bury(self, payload: 'bytes', *, reason: 'str', history: 'tuple[str, ...]' = (), group: 'str' = '') -> 'None'; for_group(self, group: 'str') -> '_GroupBound'; forget(self, event_ids: 'Sequence[str]') -> 'None'; list(self, query: 'DeadLetterQuery') -> 'Sequence[DeadLetterRecord]'; stats(self, tenant: 'str') -> 'DeadLetterStats'; undecodable(self) -> 'int'}

Typed errors: None declared.

Runnable recipe: examples/transports.py — integration boundaries validate and propagate context.

tesserix_adk.adapters.InMemoryLedger

Stability: alpha

A ledger in this process. The reference semantics, and enough for one replica.

class InMemoryLedger(object) {break_with(self, failure: 'BudgetUnavailableError') -> 'None'; forget(self, tenant: 'str') -> 'WindowSpend'; read_window(self, key: 'LedgerKey') -> 'WindowSpend'; reconcile(self) -> 'int'; record_progress(self, reservation: 'Reservation', spent: 'Decimal') -> 'None'; release(self, reservation: 'Reservation') -> 'None'; reserve(self, key: 'LedgerKey', amount: 'Decimal', *, ceiling: 'Decimal', lease_seconds: 'float' = 300.0) -> 'Reservation'; settle(self, reservation: 'Reservation', actual: 'Decimal') -> 'None'}

Typed errors: None declared.

Runnable recipe: examples/transports.py — integration boundaries validate and propagate context.

tesserix_adk.adapters.IncomingCall

Stability: alpha

What a hosted MCP server reads off a call before it does any work.

class IncomingCall(object) {bound(self) -> 'Iterator[TenantContext]'}

Typed errors: None declared.

Runnable recipe: examples/transports.py — integration boundaries validate and propagate context.

tesserix_adk.adapters.InspectableRedis

Stability: alpha · Kind: Protocol

The two calls these stores make: run a script, and say how the server is configured.

class InspectableRedis(Protocol) {config_get(self, pattern: 'str') -> 'Mapping[str, str]'; eval(self, script: 'str', numkeys: 'int', *args: 'str') -> 'Any'}

Typed errors: None declared.

Runnable recipe: examples/transports.py — integration boundaries validate and propagate context.

tesserix_adk.adapters.IsolationGuarantee

Stability: alpha

What isolation an adapter actually provides, and where it stops.

class IsolationGuarantee(AdkModel) {statement(self) -> 'str'}

Typed errors: None declared.

Runnable recipe: examples/transports.py — integration boundaries validate and propagate context.

tesserix_adk.adapters.Isolator

Stability: alpha

The adapter-side wrapper that scopes a read and checks what comes back.

class Isolator(Generic) {read(self, operation: 'Callable[[], Awaitable[Sequence[RecordT]]]') -> 'Sequence[RecordT]'}

Typed errors: None declared.

Runnable recipe: examples/transports.py — integration boundaries validate and propagate context.

tesserix_adk.adapters.JetStreamAudit

Stability: alpha

Publishes each decision on a per-tenant subject, for a stream that keeps it.

class JetStreamAudit(object) {append(self, event: 'AuditEvent') -> 'AuditEvent'}

Typed errors: ConfigurationError

Runnable recipe: examples/transports.py — integration boundaries validate and propagate context.

tesserix_adk.adapters.JetStreamContext

Stability: alpha · Kind: Protocol

The two methods this adapter uses from a JetStream client.

class JetStreamContext(Protocol) {publish(self, subject: 'str', payload: 'bytes', *, headers: 'Mapping[str, str] | None' = None, timeout: 'float | None' = None) -> 'PublishAck'; stream_info(self, name: 'str') -> 'Any'}

Typed errors: None declared.

Runnable recipe: examples/transports.py — integration boundaries validate and propagate context.

tesserix_adk.adapters.JetStreamEventPublisher

Stability: alpha

Publishes envelopes onto JetStream, deduplicated by the event id.

class JetStreamEventPublisher(object) {flush(self) -> 'None'; publish(self, event: 'EventEnvelope') -> 'None'; publish_batch(self, events: 'tuple[EventEnvelope, ...]') -> 'None'; verify(self) -> 'None'}

Typed errors: None declared.

Runnable recipe: examples/transports.py — integration boundaries validate and propagate context.

tesserix_adk.adapters.JetStreamMessage

Stability: alpha · Kind: Protocol

One delivery, and the three things a consumer may do about it.

class JetStreamMessage(Protocol) {ack(self) -> 'None'; nak(self) -> 'None'; term(self) -> 'None'}

Typed errors: None declared.

Runnable recipe: examples/transports.py — integration boundaries validate and propagate context.

tesserix_adk.adapters.JetStreamPublisher

Stability: alpha · Kind: Protocol

The one method this adapter uses from a JetStream client.

class JetStreamPublisher(Protocol) {publish(self, subject: 'str', payload: 'bytes') -> 'None'}

Typed errors: None declared.

Runnable recipe: examples/transports.py — integration boundaries validate and propagate context.

tesserix_adk.adapters.MAX_NAME_LENGTH

Stability: alpha

int([x]) -> integer int(x, base=10) -> integer

MAX_NAME_LENGTH: int

Typed errors: None declared.

Runnable recipe: examples/transports.py — integration boundaries validate and propagate context.

tesserix_adk.adapters.MAX_REPLAY_BATCH

Stability: alpha

int([x]) -> integer int(x, base=10) -> integer

MAX_REPLAY_BATCH: int

Typed errors: None declared.

Runnable recipe: examples/transports.py — integration boundaries validate and propagate context.

tesserix_adk.adapters.McpClient

Stability: alpha

One MCP server, adopted into the kit's own tool contract.

class McpClient(object) {aclose(self) -> 'None'; connect(self) -> 'McpServerInfo'; discover(self, *, known: 'Collection[str]' = ()) -> 'McpDiscovery'; refresh(self, *, known: 'Collection[str]' = ()) -> 'McpDiscovery'; tools(self) -> 'tuple[Tool[..., str], ...]'}

Typed errors: None declared.

Runnable recipe: examples/mcp_client.py — remote tool content enters through a trust boundary. Install tesserix-adk[mcp].

tesserix_adk.adapters.McpDiscovery

Stability: alpha

What one pass over a server's tool list produced.

class McpDiscovery(object)

Typed errors: None declared.

Runnable recipe: examples/transports.py — integration boundaries validate and propagate context.

tesserix_adk.adapters.McpExportError

Stability: alpha

A request the published server would not serve, with nothing of the request in it.

class McpExportError(AdkError)

Typed errors: None declared.

Runnable recipe: examples/transports.py — integration boundaries validate and propagate context.

tesserix_adk.adapters.McpExportReason

Stability: alpha

Why a published server refused a request before any tool body ran.

class McpExportReason(StrEnum)

Typed errors: None declared.

Runnable recipe: examples/transports.py — integration boundaries validate and propagate context.

tesserix_adk.adapters.McpFleet

Stability: alpha

Every MCP server an agent was assembled with, and every one it was assembled without.

class McpFleet(object) {notice(self) -> 'str'}

Typed errors: None declared.

Runnable recipe: examples/transports.py — integration boundaries validate and propagate context.

tesserix_adk.adapters.McpProtocolError

Stability: alpha

A server answered with something that is not the answer it promised.

class McpProtocolError(AdkError)

Typed errors: None declared.

Runnable recipe: examples/transports.py — integration boundaries validate and propagate context.

tesserix_adk.adapters.McpRejection

Stability: alpha

One advertised tool this process will not register, and the reason it will not.

class McpRejection(AdkModel)

Typed errors: None declared.

Runnable recipe: examples/transports.py — integration boundaries validate and propagate context.

tesserix_adk.adapters.McpSchemaError

Stability: alpha

A tool whose input schema the kit cannot hold a call to, and why.

class McpSchemaError(AdkError)

Typed errors: None declared.

Runnable recipe: examples/transports.py — integration boundaries validate and propagate context.

tesserix_adk.adapters.McpServer

Stability: alpha

The kit tools one process publishes, and the sessions callers hold them through.

class McpServer(object) {connect(self, *, headers: 'Mapping[str, str] | None' = None, meta: 'Mapping[str, str] | None' = None, authenticated: 'str | None' = None, protocol_version: 'str' = '2025-06-18') -> 'ExportedSession'; reload(self, exports: 'Sequence[str]') -> 'None'}

Typed errors: McpExportError

Runnable recipe: examples/mcp_server.py — server calls derive identity at the boundary. Install tesserix-adk[mcp].

tesserix_adk.adapters.McpServerInfo

Stability: alpha

What a server said about itself when the session was initialised.

class McpServerInfo(AdkModel)

Typed errors: None declared.

Runnable recipe: examples/mcp_server.py — server calls derive identity at the boundary. Install tesserix-adk[mcp].

tesserix_adk.adapters.McpServerUnavailableError

Stability: alpha

A capability an MCP server was to provide is not available, and why it is not.

class McpServerUnavailableError(CapabilityError)

Typed errors: None declared.

Runnable recipe: examples/mcp_server.py — server calls derive identity at the boundary. Install tesserix-adk[mcp].

tesserix_adk.adapters.McpSession

Stability: alpha · Kind: Protocol

The vendor-neutral operations this client needs from a connected MCP server.

class McpSession(Protocol) {call_tool(self, name: 'str', arguments: 'Mapping[str, JsonValue]', *, meta: 'Mapping[str, str]', timeout_seconds: 'float') -> 'GatewayToolResult'; close(self) -> 'None'; initialize(self) -> 'McpServerInfo'; list_tools(self) -> 'tuple[McpToolDescriptor, ...]'}

Typed errors: None declared.

Runnable recipe: examples/transports.py — integration boundaries validate and propagate context.

tesserix_adk.adapters.McpStreamableHttpTransport

Stability: alpha

Open one bounded official-SDK MCP session for each gateway operation.

class McpStreamableHttpTransport(object) {call_tool(self, *, endpoint: 'str', tool: 'str', arguments: 'Mapping[str, JsonValue]', headers: 'Mapping[str, str]', meta: 'Mapping[str, str]', timeout_seconds: 'float', max_result_bytes: 'int') -> 'GatewayToolResult'; list_tools(self, *, endpoint: 'str', headers: 'Mapping[str, str]', meta: 'Mapping[str, str]', timeout_seconds: 'float', max_result_bytes: 'int', max_tools: 'int') -> 'tuple[McpToolDescriptor, ...]'}

Typed errors: None declared.

Runnable recipe: examples/transports.py — integration boundaries validate and propagate context.

tesserix_adk.adapters.McpSurfaceDriftError

Stability: alpha

A server's tools are no longer what the pin says they were.

class McpSurfaceDriftError(AdkError)

Typed errors: None declared.

Runnable recipe: examples/transports.py — integration boundaries validate and propagate context.

tesserix_adk.adapters.McpToolConflictError

Stability: alpha

Two tools that would answer to one name, with both origins named.

class McpToolConflictError(AdkError)

Typed errors: None declared.

Runnable recipe: examples/transports.py — integration boundaries validate and propagate context.

tesserix_adk.adapters.McpTransport

Stability: alpha · Kind: Protocol

The operations a session needs from whatever carries its messages.

class McpTransport(Protocol) {close(self) -> 'None'; notify(self, method: 'str', params: 'Mapping[str, JsonValue]') -> 'None'; open(self) -> 'None'; request(self, method: 'str', params: 'Mapping[str, JsonValue]', *, timeout_seconds: 'float') -> 'dict[str, JsonValue]'}

Typed errors: None declared.

Runnable recipe: examples/transports.py — integration boundaries validate and propagate context.

tesserix_adk.adapters.McpTransportError

Stability: alpha

A server could not be reached, or answered with something that was not protocol.

class McpTransportError(AdkError)

Typed errors: None declared.

Runnable recipe: examples/transports.py — integration boundaries validate and propagate context.

tesserix_adk.adapters.McpTransportReason

Stability: alpha

Why a transport failed, in the terms a caller can act on.

class McpTransportReason(StrEnum)

Typed errors: None declared.

Runnable recipe: examples/transports.py — integration boundaries validate and propagate context.

tesserix_adk.adapters.MemoryPage

Stability: alpha

One page of episodes and where the next one starts.

class MemoryPage(AdkModel)

Typed errors: None declared.

Runnable recipe: examples/transports.py — integration boundaries validate and propagate context.

tesserix_adk.adapters.MemoryStoreSettings

Stability: alpha

Where a store connects and how hard it tries, from the deployment's secret manager.

class MemoryStoreSettings(AdkModel)

Typed errors: None declared.

Runnable recipe: examples/transports.py — integration boundaries validate and propagate context.

tesserix_adk.adapters.MessagePublisher

Stability: alpha · Kind: Protocol

The one method this adapter uses from a NATS client.

class MessagePublisher(Protocol) {publish(self, subject: 'str', payload: 'bytes') -> 'None'}

Typed errors: None declared.

Runnable recipe: examples/transports.py — integration boundaries validate and propagate context.

tesserix_adk.adapters.NatsApprovals

Stability: alpha

Publishes the question on a per-tenant subject; the answer arrives out of band.

class NatsApprovals(object) {deliver(self, record: 'ApprovalRecord') -> 'None'}

Typed errors: ConfigurationError

Runnable recipe: examples/transports.py — integration boundaries validate and propagate context.

tesserix_adk.adapters.OUTBOX_SCHEMA_VERSION

Stability: alpha

int([x]) -> integer int(x, base=10) -> integer

OUTBOX_SCHEMA_VERSION: int

Typed errors: None declared.

Runnable recipe: examples/transports.py — integration boundaries validate and propagate context.

tesserix_adk.adapters.OutboxLag

Stability: alpha

How far behind the relay is, which is the only number worth alerting on.

class OutboxLag(object)

Typed errors: None declared.

Runnable recipe: examples/transports.py — integration boundaries validate and propagate context.

tesserix_adk.adapters.OutboxRelay

Stability: alpha

Moves committed rows onto the transport, in order per run, without losing any.

class OutboxRelay(object) {deliver(self) -> 'int'; lag(self) -> 'OutboxLag'; prune(self) -> 'int'}

Typed errors: None declared.

Runnable recipe: examples/transports.py — integration boundaries validate and propagate context.

tesserix_adk.adapters.OutboxTables

Stability: alpha

Where the rows live. One database may hold more than one kit deployment.

class OutboxTables(object)

Typed errors: None declared.

Runnable recipe: examples/transports.py — integration boundaries validate and propagate context.

tesserix_adk.adapters.PROTOCOL_VERSION

Stability: alpha

str(object='') -> str str(bytes_or_buffer[, encoding[, errors]]) -> str

PROTOCOL_VERSION: str

Typed errors: None declared.

Runnable recipe: examples/transports.py — integration boundaries validate and propagate context.

tesserix_adk.adapters.Partition

Stability: alpha

The tenant's slice of a store, derived rather than passed.

class Partition(object) {key(self, namespace: 'str', *parts: 'str') -> 'str'; only(self, items: 'Sequence[ItemT]', *, tenant_of: 'Callable[[ItemT], str]', where: 'str') -> 'Sequence[ItemT]'; pattern(self, namespace: 'str') -> 'str'; predicate(self, *, column: 'str' = 'tenant', position: 'int' = 1) -> 'tuple[str, str]'; verify(self, found: 'str', *, where: 'str') -> 'None'}

Typed errors: None declared.

Runnable recipe: examples/transports.py — integration boundaries validate and propagate context.

tesserix_adk.adapters.PartitionMechanism

Stability: alpha

How a store keeps one tenant's data away from another's.

class PartitionMechanism(StrEnum)

Typed errors: None declared.

Runnable recipe: examples/transports.py — integration boundaries validate and propagate context.

tesserix_adk.adapters.PayloadElided

Stability: alpha

An event too large for the transport, referenced rather than cut in half.

class PayloadElided(ProgressEvent)

Typed errors: None declared.

Runnable recipe: examples/transports.py — integration boundaries validate and propagate context.

tesserix_adk.adapters.PeerArguments

Stability: alpha

The peer's published input schema, made the contract for what a model may send.

class PeerArguments(object) {arguments(self, arguments: 'object') -> 'dict[str, Any]'}

Typed errors: None declared.

Runnable recipe: examples/transports.py — integration boundaries validate and propagate context.

tesserix_adk.adapters.PgvectorIndex

Stability: alpha

A SearchIndex over one chunk table, answering either branch or both.

class PgvectorIndex(object) {search(self, query: 'IndexQuery') -> 'Sequence[Hit]'; supports(self, branch: 'Branch') -> 'bool'; verify(self) -> 'None'}

Typed errors: None declared.

Runnable recipe: examples/transports.py — integration boundaries validate and propagate context.

tesserix_adk.adapters.PgvectorMemoryStore

Stability: alpha

Semantic recall in pgvector, ranked by the database rather than by the process.

class PgvectorMemoryStore(object) {erase(self, scope: 'MemoryScope') -> 'ErasureReceipt'; index(self, scope: 'MemoryScope', record: 'MemoryRecord') -> 'None'; search(self, scope: 'MemoryScope', query: 'MemoryQuery') -> 'tuple[MemoryHit, ...]'; verify(self) -> 'None'}

Typed errors: None declared.

Runnable recipe: examples/transports.py — integration boundaries validate and propagate context.

tesserix_adk.adapters.PgvectorSettings

Stability: alpha

How to reach PostgreSQL, and what this deployment needs it to promise.

class PgvectorSettings(PostgresStoreSettings)

Typed errors: None declared.

Runnable recipe: examples/transports.py — integration boundaries validate and propagate context.

tesserix_adk.adapters.PortableAgentManifest

Stability: alpha

One Registry Agent artifact ready for agentic validate/apply.

class PortableAgentManifest(AdkModel) {to_dict(self) -> 'dict[str, object]'}

Typed errors: None declared.

Runnable recipe: examples/transports.py — integration boundaries validate and propagate context.

tesserix_adk.adapters.PortableExportError

Stability: alpha

A framework object cannot be exported without inventing mutable metadata.

class PortableExportError(ConfigurationError)

Typed errors: None declared.

Runnable recipe: examples/transports.py — integration boundaries validate and propagate context.

tesserix_adk.adapters.PortableExportOptions

Stability: alpha

Shared keyword contract for third-party framework exporters.

class PortableExportOptions(dict)

Typed errors: None declared.

Runnable recipe: examples/transports.py — integration boundaries validate and propagate context.

tesserix_adk.adapters.PortableReference

Stability: alpha

An immutable Registry dependency reference.

class PortableReference(AdkModel) {rendered(self) -> 'dict[str, str]'}

Typed errors: None declared.

Runnable recipe: examples/transports.py — integration boundaries validate and propagate context.

tesserix_adk.adapters.PortableRuntime

Stability: alpha

An immutable container or authenticated remote Agent runtime.

class PortableRuntime(AdkModel) {rendered(self) -> 'dict[str, object]'}

Typed errors: None declared.

Runnable recipe: examples/transports.py — integration boundaries validate and propagate context.

tesserix_adk.adapters.PostgresAuditSettings

Stability: alpha

How to reach PostgreSQL, and what this deployment needs it to promise.

class PostgresAuditSettings(PostgresStoreSettings)

Typed errors: None declared.

Runnable recipe: examples/transports.py — integration boundaries validate and propagate context.

tesserix_adk.adapters.PostgresAuditSink

Stability: alpha

Decisions in one append-only table, read back by whoever is accountable for them.

class PostgresAuditSink(object) {append(self, event: 'AuditEvent') -> 'AuditEvent'; pseudonymise(self, *, tenant: 'str', subject: 'str') -> 'int'; records(self, *, tenant: 'str', since: 'float' = 0.0, until: 'float | None' = None, decision: 'AuditDecision | None' = None) -> 'tuple[AuditEvent, ...]'; verify(self) -> 'None'}

Typed errors: None declared.

Runnable recipe: examples/transports.py — integration boundaries validate and propagate context.

tesserix_adk.adapters.PostgresCeilingLedger

Stability: alpha

Headroom taken and settled across processes, on one row per action.

class PostgresCeilingLedger(object) {commit(self, idempotency_key: 'str') -> 'Hold | None'; committed(self, *, tenant: 'str', action_class: 'str', window_seconds: 'float') -> 'Decimal'; reap(self) -> 'int'; release(self, idempotency_key: 'str') -> 'None'; reserve(self, *, tenant: 'str', action_class: 'str', ceiling: 'Ceiling', amount: 'Decimal', idempotency_key: 'str') -> 'Hold'; verify(self) -> 'None'}

Typed errors: None declared.

Runnable recipe: examples/transports.py — integration boundaries validate and propagate context.

tesserix_adk.adapters.PostgresCeilingSettings

Stability: alpha

How to reach PostgreSQL, and what this deployment needs it to promise.

class PostgresCeilingSettings(PostgresStoreSettings)

Typed errors: None declared.

Runnable recipe: examples/transports.py — integration boundaries validate and propagate context.

tesserix_adk.adapters.PostgresCheckpointStore

Stability: alpha

The frontier as one row per run, upserted.

class PostgresCheckpointStore(object) {forget(self, run_id: 'str', *, tenant: 'str') -> 'None'; latest(self, run_id: 'str', *, tenant: 'str') -> 'Checkpoint | None'; put(self, checkpoint: 'Checkpoint') -> 'None'; verify(self) -> 'None'}

Typed errors: None declared.

Runnable recipe: examples/transports.py — integration boundaries validate and propagate context.

tesserix_adk.adapters.PostgresGrantSettings

Stability: alpha

How to reach PostgreSQL, and what this deployment needs it to promise.

class PostgresGrantSettings(PostgresStoreSettings)

Typed errors: None declared.

Runnable recipe: examples/transports.py — integration boundaries validate and propagate context.

tesserix_adk.adapters.PostgresGrantStore

Stability: alpha

Grants in one table, read live and written once.

class PostgresGrantStore(object) {grants_for(self, *, tenant: 'str', action_class: 'str') -> 'Sequence[AutonomyGrant]'; issue(self, grant: 'AutonomyGrant') -> 'AutonomyGrant'; revoke(self, revocation: 'Revocation') -> 'None'; verify(self) -> 'None'}

Typed errors: None declared.

Runnable recipe: examples/transports.py — integration boundaries validate and propagate context.

tesserix_adk.adapters.PostgresIdempotencyStore

Stability: alpha

The record in PostgreSQL, with the claim and the read in one statement.

class PostgresIdempotencyStore(object) {abandon(self, key: 'str', *, tenant: 'str') -> 'None'; begin(self, key: 'str', *, tenant: 'str', ttl_seconds: 'float') -> 'Claim'; ensure_schema(self) -> 'None'; forget(self, *, tenant: 'str') -> 'int'; record(self, key: 'str', *, tenant: 'str', outcome: 'str', ttl_seconds: 'float') -> 'None'}

Typed errors: None declared.

Runnable recipe: examples/transports.py — integration boundaries validate and propagate context.

tesserix_adk.adapters.PostgresLeaseStore

Stability: alpha

The lease as one row per run, taken by an upsert that refuses a live holder.

class PostgresLeaseStore(object) {acquire(self, run_id: 'str', *, tenant: 'str', holder: 'str', ttl_seconds: 'float') -> 'RunLease'; held(self, run_id: 'str', *, tenant: 'str') -> 'RunLease | None'; release(self, lease: 'RunLease') -> 'None'; renew(self, lease: 'RunLease', *, ttl_seconds: 'float') -> 'RunLease'}

Typed errors: None declared.

Runnable recipe: examples/transports.py — integration boundaries validate and propagate context.

tesserix_adk.adapters.PostgresLedger

Stability: alpha

The window in PostgreSQL, with every operation a single statement.

class PostgresLedger(_Shared) {ensure_schema(self) -> 'None'; forget(self, tenant: 'str') -> 'WindowSpend'; read_window(self, key: 'LedgerKey') -> 'WindowSpend'; reconcile(self) -> 'int'; record_progress(self, reservation: 'Reservation', spent: 'Decimal') -> 'None'; release(self, reservation: 'Reservation') -> 'None'; reserve(self, key: 'LedgerKey', amount: 'Decimal', *, ceiling: 'Decimal', lease_seconds: 'float' = 300.0) -> 'Reservation'; settle(self, reservation: 'Reservation', actual: 'Decimal') -> 'None'}

Typed errors: None declared.

Runnable recipe: examples/transports.py — integration boundaries validate and propagate context.

tesserix_adk.adapters.PostgresMemoryStore

Stability: alpha

Profiles and episodes in PostgreSQL, where nothing is overwritten.

class PostgresMemoryStore(object) {belief(self, scope: 'MemoryScope', key: 'str', *, as_of: 'float | None' = None) -> 'Belief'; derivations(self, scope: 'MemoryScope', *, source_id: 'str | None' = None) -> 'tuple[Derivation, ...]'; derived(self, scope: 'MemoryScope', derivation: 'Derivation') -> 'None'; episodes(self, scope: 'MemoryScope', query: 'MemoryQuery') -> 'tuple[MemoryHit, ...]'; erase(self, scope: 'MemoryScope') -> 'ErasureReceipt'; history(self, scope: 'MemoryScope', key: 'str | None' = None) -> 'tuple[MemoryRecord, ...]'; log(self, scope: 'MemoryScope', record: 'MemoryRecord') -> 'None'; page(self, scope: 'MemoryScope', query: 'MemoryQuery', *, cursor: 'str | None' = None) -> 'MemoryPage'; profile(self, scope: 'MemoryScope', key: 'str', *, as_of: 'float | None' = None) -> 'MemoryRecord | None'; supersede(self, scope: 'MemoryScope', record: 'MemoryRecord', *, expected_version: 'int | None' = None, resolves: 'tuple[str, ...]' = ()) -> 'Supersession'; upsert(self, scope: 'MemoryScope', record: 'MemoryRecord') -> 'None'}

Typed errors: None declared.

Runnable recipe: examples/transports.py — integration boundaries validate and propagate context.

tesserix_adk.adapters.PostgresOutbox

Stability: alpha

An EventPublisher that inserts rather than publishes.

class PostgresOutbox(object) {bound(self, session: 'SqlSession') -> 'PostgresOutbox'; publish(self, event: 'EventEnvelope') -> 'None'; publish_batch(self, events: 'tuple[EventEnvelope, ...]') -> 'None'; verify(self) -> 'None'}

Typed errors: None declared.

Runnable recipe: examples/transports.py — integration boundaries validate and propagate context.

tesserix_adk.adapters.PostgresOutboxSettings

Stability: alpha

How to reach PostgreSQL, and what this deployment needs it to promise.

class PostgresOutboxSettings(PostgresStoreSettings)

Typed errors: None declared.

Runnable recipe: examples/transports.py — integration boundaries validate and propagate context.

tesserix_adk.adapters.PostgresStateStore

Stability: alpha

Session and run state in PostgreSQL, with the version compare inside the write.

class PostgresStateStore(object) {bound(self, session: 'SqlSession') -> 'PostgresStateStore'; delete_run(self, key: 'StateKey') -> 'None'; delete_session(self, key: 'StateKey', *, cascade: 'bool' = False) -> 'None'; get_run(self, key: 'StateKey') -> 'RunRecord | None'; get_session(self, key: 'StateKey') -> 'SessionRecord | None'; list_runs(self, query: 'StateQuery') -> 'StatePage'; patch_run(self, key: 'StateKey', delta: 'StateDelta') -> 'RunRecord'; put_run(self, record: 'RunRecord') -> 'RunRecord'; put_session(self, record: 'SessionRecord') -> 'SessionRecord'; verify(self) -> 'None'}

Typed errors: None declared.

Runnable recipe: examples/transports.py — integration boundaries validate and propagate context.

tesserix_adk.adapters.PostgresStoreSettings

Stability: alpha

How to reach PostgreSQL, and what this deployment needs it to promise.

class PostgresStoreSettings(MemoryStoreSettings)

Typed errors: None declared.

Runnable recipe: examples/transports.py — integration boundaries validate and propagate context.

tesserix_adk.adapters.PostgresWorkQueue

Stability: alpha

A work queue in PostgreSQL, claimed with FOR UPDATE ... SKIP LOCKED.

class PostgresWorkQueue(object) {adopt(self, *, worker: 'str') -> 'tuple[WorkItem, ...]'; bound(self, session: 'SqlSession') -> 'PostgresWorkQueue'; claim(self, *, worker: 'str', queue: 'str' = 'default', lease_seconds: 'float | None' = None) -> 'WorkItem | None'; complete(self, item_id: 'str', *, tenant: 'str', worker: 'str') -> 'WorkItem'; dead_letters(self, *, tenant: 'str', limit: 'int' = 50) -> 'tuple[WorkItem, ...]'; enqueue(self, item: 'WorkItem') -> 'WorkItem'; fail(self, item_id: 'str', *, tenant: 'str', worker: 'str', error: 'str', retryable: 'bool' = True) -> 'WorkItem'; heartbeat(self, item_id: 'str', *, tenant: 'str', worker: 'str') -> 'WorkItem'; reap(self) -> 'tuple[WorkItem, ...]'; stats(self, *, queue: 'str' = 'default') -> 'QueueStats'; verify(self) -> 'None'}

Typed errors: None declared.

Runnable recipe: examples/transports.py — integration boundaries validate and propagate context.

tesserix_adk.adapters.PublishAck

Stability: alpha · Kind: Protocol

What the stream says it did with a message.

class PublishAck(Protocol)

Typed errors: None declared.

Runnable recipe: examples/transports.py — integration boundaries validate and propagate context.

tesserix_adk.adapters.RecordingTransport

Stability: alpha

A transport that answers from a script and remembers what it was asked.

class RecordingTransport(object) {close(self) -> 'None'; notify(self, method: 'str', params: 'Mapping[str, JsonValue]') -> 'None'; open(self) -> 'None'; request(self, method: 'str', params: 'Mapping[str, JsonValue]', *, timeout_seconds: 'float') -> 'dict[str, JsonValue]'}

Typed errors: None declared.

Runnable recipe: examples/transports.py — integration boundaries validate and propagate context.

tesserix_adk.adapters.RedisCacheStore

Stability: alpha

A CacheStore over Redis, one Lua script per operation.

class RedisCacheStore(object) {get(self, digest: 'str') -> 'CacheEntry | None'; purge(self, **by: 'str | None') -> 'int'; put(self, entry: 'CacheEntry') -> 'None'}

Typed errors: None declared.

Runnable recipe: examples/transports.py — integration boundaries validate and propagate context.

tesserix_adk.adapters.RedisCheckpointStore

Stability: alpha

The frontier as one key per run, with no expiry on it.

class RedisCheckpointStore(object) {forget(self, run_id: 'str', *, tenant: 'str') -> 'None'; latest(self, run_id: 'str', *, tenant: 'str') -> 'Checkpoint | None'; put(self, checkpoint: 'Checkpoint') -> 'None'}

Typed errors: None declared.

Runnable recipe: examples/transports.py — integration boundaries validate and propagate context.

tesserix_adk.adapters.RedisClient

Stability: alpha · Kind: Protocol

The one call the Redis ledger makes, and nothing else.

class RedisClient(Protocol) {eval(self, script: 'str', numkeys: 'int', *args: 'str') -> 'Any'}

Typed errors: None declared.

Runnable recipe: examples/transports.py — integration boundaries validate and propagate context.

tesserix_adk.adapters.RedisIdempotencyStore

Stability: alpha

The record in Redis, with the claim and the read in one script.

class RedisIdempotencyStore(object) {abandon(self, key: 'str', *, tenant: 'str') -> 'None'; begin(self, key: 'str', *, tenant: 'str', ttl_seconds: 'float') -> 'Claim'; forget(self, *, tenant: 'str') -> 'int'; record(self, key: 'str', *, tenant: 'str', outcome: 'str', ttl_seconds: 'float') -> 'None'}

Typed errors: None declared.

Runnable recipe: examples/transports.py — integration boundaries validate and propagate context.

tesserix_adk.adapters.RedisLeaseStore

Stability: alpha

The lease as a hash per run, with the fence incremented inside the acquisition.

class RedisLeaseStore(object) {acquire(self, run_id: 'str', *, tenant: 'str', holder: 'str', ttl_seconds: 'float') -> 'RunLease'; held(self, run_id: 'str', *, tenant: 'str') -> 'RunLease | None'; release(self, lease: 'RunLease') -> 'None'; renew(self, lease: 'RunLease', *, ttl_seconds: 'float') -> 'RunLease'}

Typed errors: None declared.

Runnable recipe: examples/transports.py — integration boundaries validate and propagate context.

tesserix_adk.adapters.RedisLedger

Stability: alpha

The window in Redis, with every operation a single server-side script.

class RedisLedger(_Shared) {forget(self, tenant: 'str') -> 'WindowSpend'; read_window(self, key: 'LedgerKey') -> 'WindowSpend'; reconcile(self) -> 'int'; record_progress(self, reservation: 'Reservation', spent: 'Decimal') -> 'None'; release(self, reservation: 'Reservation') -> 'None'; reserve(self, key: 'LedgerKey', amount: 'Decimal', *, ceiling: 'Decimal', lease_seconds: 'float' = 300.0) -> 'Reservation'; settle(self, reservation: 'Reservation', actual: 'Decimal') -> 'None'}

Typed errors: None declared.

Runnable recipe: examples/transports.py — integration boundaries validate and propagate context.

tesserix_adk.adapters.RedisMemoryStore

Stability: alpha

Working memory in Redis, where expiry is the server's job and not a sweeper's.

class RedisMemoryStore(object) {append(self, scope: 'MemoryScope', key: 'str', value: 'JsonValue') -> 'int'; erase(self, scope: 'MemoryScope') -> 'ErasureReceipt'; expire(self, scope: 'MemoryScope', key: 'str', *, ttl_seconds: 'float') -> 'None'; read(self, scope: 'MemoryScope', key: 'str') -> 'MemoryRecord | None'; recall(self, scope: 'MemoryScope', keys: 'Sequence[str]') -> 'tuple[MemoryRecord, ...]'; write(self, scope: 'MemoryScope', record: 'MemoryRecord') -> 'None'}

Typed errors: None declared.

Runnable recipe: examples/transports.py — integration boundaries validate and propagate context.

tesserix_adk.adapters.RedisStateStore

Stability: alpha

Session and run state in Redis, with the version compare inside the write.

class RedisStateStore(object) {delete_run(self, key: 'StateKey') -> 'None'; delete_session(self, key: 'StateKey', *, cascade: 'bool' = False) -> 'None'; get_run(self, key: 'StateKey') -> 'RunRecord | None'; get_session(self, key: 'StateKey') -> 'SessionRecord | None'; list_runs(self, query: 'StateQuery') -> 'StatePage'; patch_run(self, key: 'StateKey', delta: 'StateDelta') -> 'RunRecord'; preflight(self) -> 'None'; put_run(self, record: 'RunRecord') -> 'RunRecord'; put_session(self, record: 'SessionRecord') -> 'SessionRecord'}

Typed errors: None declared.

Runnable recipe: examples/transports.py — integration boundaries validate and propagate context.

tesserix_adk.adapters.RedisStoreSettings

Stability: alpha

How to reach Redis, and what this deployment needs it to promise.

class RedisStoreSettings(MemoryStoreSettings)

Typed errors: None declared.

Runnable recipe: examples/transports.py — integration boundaries validate and propagate context.

tesserix_adk.adapters.RedisWorkQueue

Stability: alpha

A work queue in Redis, where the lease is a sorted set and the reaper is a scan.

class RedisWorkQueue(object) {adopt(self, *, worker: 'str') -> 'tuple[WorkItem, ...]'; claim(self, *, worker: 'str', queue: 'str' = 'default', lease_seconds: 'float | None' = None) -> 'WorkItem | None'; complete(self, item_id: 'str', *, tenant: 'str', worker: 'str') -> 'WorkItem'; dead_letters(self, *, tenant: 'str', limit: 'int' = 50) -> 'tuple[WorkItem, ...]'; enqueue(self, item: 'WorkItem') -> 'WorkItem'; fail(self, item_id: 'str', *, tenant: 'str', worker: 'str', error: 'str', retryable: 'bool' = True) -> 'WorkItem'; heartbeat(self, item_id: 'str', *, tenant: 'str', worker: 'str') -> 'WorkItem'; preflight(self) -> 'None'; reap(self) -> 'tuple[WorkItem, ...]'; stats(self, *, queue: 'str' = 'default') -> 'QueueStats'}

Typed errors: None declared.

Runnable recipe: examples/transports.py — integration boundaries validate and propagate context.

tesserix_adk.adapters.ReplayHandler

Stability: alpha

Type alias.

ReplayHandler: TypeAliasType

Typed errors: None declared.

Runnable recipe: examples/transports.py — integration boundaries validate and propagate context.

tesserix_adk.adapters.ReplayPlan

Stability: alpha

What a replay would do, without having done any of it.

class ReplayPlan(object)

Typed errors: None declared.

Runnable recipe: examples/transports.py — integration boundaries validate and propagate context.

tesserix_adk.adapters.ReplayReport

Stability: alpha

What a replay did.

class ReplayReport(object)

Typed errors: None declared.

Runnable recipe: examples/transports.py — integration boundaries validate and propagate context.

tesserix_adk.adapters.Replayer

Stability: alpha

Puts dead-lettered events back through the live consumer path, under guardrails.

class Replayer(object) {plan(self, query: 'DeadLetterQuery') -> 'ReplayPlan'; records(self, query: 'DeadLetterQuery') -> 'Sequence[DeadLetterRecord]'; replay(self, query: 'DeadLetterQuery', *, operator: 'str', reason: 'str' = '') -> 'ReplayReport'}

Typed errors: None declared.

Runnable recipe: examples/transports.py — integration boundaries validate and propagate context.

tesserix_adk.adapters.ResilientSession

Stability: alpha

One MCP session with its degradation policy applied, still an McpSession.

class ResilientSession(object) {call_tool(self, name: 'str', arguments: 'Mapping[str, JsonValue]', *, meta: 'Mapping[str, str]', timeout_seconds: 'float') -> 'GatewayToolResult'; close(self) -> 'None'; initialize(self) -> 'McpServerInfo'; list_tools(self) -> 'tuple[McpToolDescriptor, ...]'}

Typed errors: None declared.

Runnable recipe: examples/transports.py — integration boundaries validate and propagate context.

tesserix_adk.adapters.RoutedMemoryStore

Stability: alpha

One MemoryStore over the three stores, routing by kind.

class RoutedMemoryStore(object) {append(self, scope: 'MemoryScope', key: 'str', value: 'JsonValue') -> 'int'; belief(self, scope: 'MemoryScope', key: 'str', *, as_of: 'float | None' = None) -> 'Belief'; derivations(self, scope: 'MemoryScope', *, source_id: 'str | None' = None) -> 'tuple[Derivation, ...]'; derived(self, scope: 'MemoryScope', derivation: 'Derivation') -> 'None'; episodes(self, scope: 'MemoryScope', query: 'MemoryQuery') -> 'tuple[MemoryHit, ...]'; erase(self, scope: 'MemoryScope', *, kinds: 'tuple[MemoryKind, ...]' = (), dry_run: 'bool' = False) -> 'ErasureReceipt'; expire(self, scope: 'MemoryScope', key: 'str', *, ttl_seconds: 'float') -> 'None'; history(self, scope: 'MemoryScope', key: 'str | None' = None) -> 'tuple[MemoryRecord, ...]'; index(self, scope: 'MemoryScope', record: 'MemoryRecord') -> 'None'; log(self, scope: 'MemoryScope', record: 'MemoryRecord') -> 'None'; profile(self, scope: 'MemoryScope', key: 'str', *, as_of: 'float | None' = None) -> 'MemoryRecord | None'; read(self, scope: 'MemoryScope', key: 'str') -> 'MemoryRecord | None'; search(self, scope: 'MemoryScope', query: 'MemoryQuery') -> 'tuple[MemoryHit, ...]'; supersede(self, scope: 'MemoryScope', record: 'MemoryRecord', *, expected_version: 'int | None' = None, resolves: 'tuple[str, ...]' = ()) -> 'Supersession'; upsert(self, scope: 'MemoryScope', record: 'MemoryRecord') -> 'None'; write(self, scope: 'MemoryScope', record: 'MemoryRecord') -> 'None'}

Typed errors: None declared.

Runnable recipe: examples/transports.py — integration boundaries validate and propagate context.

tesserix_adk.adapters.RunBroker

Stability: alpha

One run, driven once, readable by however many transports attach to it.

class RunBroker(Generic) {authorise(self, run_id: 'str', *, tenant: 'str') -> 'None'; cancel(self, run_id: 'str', *, tenant: 'str') -> 'None'; register(self, stream: 'RunStream[OutputT]', *, tenant: 'str') -> 'str'; run(self, run_id: 'str', *, tenant: 'str') -> 'Run[OutputT]'; subscribe(self, run_id: 'str', *, tenant: 'str', after: 'int | None' = None) -> 'AsyncGenerator[ProgressEvent]'}

Typed errors: None declared.

Runnable recipe: examples/transports.py — integration boundaries validate and propagate context.

tesserix_adk.adapters.SCHEMA_VERSION

Stability: alpha

int([x]) -> integer int(x, base=10) -> integer

SCHEMA_VERSION: int

Typed errors: None declared.

Runnable recipe: examples/transports.py — integration boundaries validate and propagate context.

tesserix_adk.adapters.SSE_HEADERS

Stability: alpha

dict() -> new empty dictionary dict(mapping) -> new dictionary initialized from a mapping object's (key, value) pairs dict(iterable) -> new dictionary initialized as if via: d = {} for k, v in iterable: d[k] = v dict(**kwargs) -> new dictionary initialized with the name=value pairs in the keyword argument list. For example: dict(one=1, two=2)

SSE_HEADERS: dict

Typed errors: None declared.

Runnable recipe: examples/transports.py — integration boundaries validate and propagate context.

tesserix_adk.adapters.ServerBreaker

Stability: alpha

One server's breaker: shut by consecutive faults, reopened by a probe.

class ServerBreaker(object) {allows(self) -> 'bool'; failed(self) -> 'None'; succeeded(self) -> 'None'}

Typed errors: None declared.

Runnable recipe: examples/transports.py — integration boundaries validate and propagate context.

tesserix_adk.adapters.ServerHealth

Stability: alpha

What one server has just done, in the terms an alert is written in.

class ServerHealth(AdkModel)

Typed errors: None declared.

Runnable recipe: examples/transports.py — integration boundaries validate and propagate context.

tesserix_adk.adapters.SqlExecutor

Stability: alpha · Kind: Protocol

The one call the PostgreSQL ledger makes.

class SqlExecutor(Protocol) {fetch(self, statement: 'str', *args: 'Any') -> 'Sequence[Sequence[Any]]'}

Typed errors: None declared.

Runnable recipe: examples/transports.py — integration boundaries validate and propagate context.

tesserix_adk.adapters.SqlSession

Stability: alpha · Kind: Protocol

The one call these stores make.

class SqlSession(Protocol) {fetch(self, statement: 'str', *args: 'Any') -> 'Sequence[Sequence[Any]]'}

Typed errors: None declared.

Runnable recipe: examples/transports.py — integration boundaries validate and propagate context.

tesserix_adk.adapters.SqlTransactor

Stability: alpha · Kind: Protocol

A session that can also open a transaction, which is where atomicity comes from.

class SqlTransactor(SqlSession, Protocol) {transaction(self) -> 'AbstractAsyncContextManager[SqlSession]'}

Typed errors: None declared.

Runnable recipe: examples/transports.py — integration boundaries validate and propagate context.

tesserix_adk.adapters.StateTables

Stability: alpha

Where the rows live. One database may hold more than one kit deployment.

class StateTables(object)

Typed errors: None declared.

Runnable recipe: examples/transports.py — integration boundaries validate and propagate context.

tesserix_adk.adapters.StdioTransport

Stability: alpha

One MCP server as a child process, framed as newline-delimited JSON-RPC.

class StdioTransport(object) {close(self) -> 'None'; notify(self, method: 'str', params: 'Mapping[str, JsonValue]') -> 'None'; open(self) -> 'None'; request(self, method: 'str', params: 'Mapping[str, JsonValue]', *, timeout_seconds: 'float') -> 'dict[str, JsonValue]'}

Typed errors: None declared.

Runnable recipe: examples/transports.py — integration boundaries validate and propagate context.

tesserix_adk.adapters.StreamGap

Stability: alpha

Events a reconnecting client will never receive, said out loud.

class StreamGap(ProgressEvent)

Typed errors: None declared.

Runnable recipe: examples/transports.py — integration boundaries validate and propagate context.

tesserix_adk.adapters.StreamRequirement

Stability: alpha

What the stream must already be, for publishing onto it to mean anything.

class StreamRequirement(object)

Typed errors: None declared.

Runnable recipe: examples/transports.py — integration boundaries validate and propagate context.

tesserix_adk.adapters.SurfaceEntry

Stability: alpha

One tool as it was resolved.

class SurfaceEntry(AdkModel)

Typed errors: None declared.

Runnable recipe: examples/transports.py — integration boundaries validate and propagate context.

tesserix_adk.adapters.SurfacePin

Stability: alpha

A resolved surface written down, so a later one can be held to it.

class SurfacePin(AdkModel)

Typed errors: None declared.

Runnable recipe: examples/transports.py — integration boundaries validate and propagate context.

tesserix_adk.adapters.TenantAuthority

Stability: alpha

Per-call authority for MCP servers, keyed by the tenant and subject it was minted for.

class TenantAuthority(object) {authorised(self, *, server: 'str', holding_for: 'float' = 0.0) -> 'AuthorisedCall'; headers_for(self, *, server: 'str', holding_for: 'float' = 0.0) -> 'dict[str, str]'; meta_for(self, *, server: 'str', holding_for: 'float' = 0.0) -> 'dict[str, str]'; secrets_for(self, *, server: 'str') -> 'tuple[str, ...]'}

Typed errors: None declared.

Runnable recipe: examples/transports.py — integration boundaries validate and propagate context.

tesserix_adk.adapters.ToolImportPolicy

Stability: alpha

Registry policy attached to every imported tool before it can be called.

class ToolImportPolicy(AdkModel)

Typed errors: None declared.

Runnable recipe: examples/transports.py — integration boundaries validate and propagate context.

tesserix_adk.adapters.ToolSurface

Stability: alpha

The tools one agent has, and where each of them came from.

class ToolSurface(object) {check(self, pin: 'SurfacePin') -> 'None'; names(self) -> 'tuple[str, ...]'; of_server(self, server: 'str') -> 'Self'; pin(self) -> 'SurfacePin'; report(self) -> 'str'}

Typed errors: None declared.

Runnable recipe: examples/transports.py — integration boundaries validate and propagate context.

tesserix_adk.adapters.ToolTranslationError

Stability: alpha

A foreign definition that cannot be made safe enough to register.

class ToolTranslationError(AdkError)

Typed errors: None declared.

Runnable recipe: examples/transports.py — integration boundaries validate and propagate context.

tesserix_adk.adapters.TransportAuthorizationError

Stability: alpha

Raised when a client asked about a run that is not its tenant's to ask about.

class TransportAuthorizationError(AdkError)

Typed errors: None declared.

Runnable recipe: examples/transports.py — integration boundaries validate and propagate context.

tesserix_adk.adapters.TransportSession

Stability: alpha

An MCP session spoken over any transport, which is where the two shapes converge.

class TransportSession(object) {call_tool(self, name: 'str', arguments: 'Mapping[str, JsonValue]', *, meta: 'Mapping[str, str]', timeout_seconds: 'float') -> 'GatewayToolResult'; close(self) -> 'None'; initialize(self) -> 'McpServerInfo'; list_tools(self) -> 'tuple[McpToolDescriptor, ...]'}

Typed errors: None declared.

Runnable recipe: examples/transports.py — integration boundaries validate and propagate context.

tesserix_adk.adapters.UNDECODABLE

Stability: alpha

str(object='') -> str str(bytes_or_buffer[, encoding[, errors]]) -> str

UNDECODABLE: str

Typed errors: None declared.

Runnable recipe: examples/transports.py — integration boundaries validate and propagate context.

tesserix_adk.adapters.UNKNOWN_TENANT

Stability: alpha

str(object='') -> str str(bytes_or_buffer[, encoding[, errors]]) -> str

UNKNOWN_TENANT: str

Typed errors: None declared.

Runnable recipe: examples/transports.py — integration boundaries validate and propagate context.

tesserix_adk.adapters.WebSocketBridge

Stability: alpha

A run over a websocket: events out, control messages in.

class WebSocketBridge(Generic) {serve(self, connection: 'WebSocketLike', *, run_id: 'str', tenant: 'str', after: 'int | None' = None) -> 'None'}

Typed errors: None declared.

Runnable recipe: examples/transports.py — integration boundaries validate and propagate context.

tesserix_adk.adapters.WebSocketLike

Stability: alpha · Kind: Protocol

The three methods a websocket needs to have. Any ASGI framework's will do.

class WebSocketLike(Protocol) {close(self, code: 'int' = 1000) -> 'None'; receive_text(self) -> 'str'; send_text(self, data: 'str') -> 'None'}

Typed errors: None declared.

Runnable recipe: examples/transports.py — integration boundaries validate and propagate context.

tesserix_adk.adapters.WebhookApprovals

Stability: alpha

POSTs the question to a signed endpoint, and reads an answer only if one came back.

class WebhookApprovals(object) {deliver(self, record: 'ApprovalRecord') -> 'ApprovalDecision | None'}

Typed errors: ConfigurationError

Runnable recipe: examples/transports.py — integration boundaries validate and propagate context.

tesserix_adk.adapters.WrappedAgentPolicy

Stability: alpha

Controls one foreign-agent boundary.

class WrappedAgentPolicy(AdkModel)

Typed errors: None declared.

Runnable recipe: examples/transports.py — integration boundaries validate and propagate context.

tesserix_adk.adapters.WrappedSubagent

Stability: alpha

An addressable foreign agent accepted by :class:~runtime.Supervisor.

class WrappedSubagent(Generic) {run(self, user_input: 'str', *, tenant: 'str', budget: 'BudgetPolicy', user: 'str | None' = None, run_id: 'str | None' = None, cancellation: 'CancellationToken | None' = None, parent: 'RunContext | None' = None, scopes: 'Collection[str]' = (), trace: 'Mapping[str, str] | None' = None, tools: 'Collection[str] | None' = None) -> 'Run[OutputT]'}

Typed errors: None declared.

Runnable recipe: examples/transports.py — integration boundaries validate and propagate context.

tesserix_adk.adapters.a2a.A2ABearerSecurity

Stability: alpha

Bearer authentication metadata published in an official Agent Card.

class A2ABearerSecurity(AdkModel)

Typed errors: None declared.

Runnable recipe: examples/transports.py — integration boundaries validate and propagate context.

tesserix_adk.adapters.a2a.A2ACardError

Stability: alpha

Raised when required official Agent Card metadata is incomplete or ambiguous.

class A2ACardError(AdkError)

Typed errors: None declared.

Runnable recipe: examples/transports.py — integration boundaries validate and propagate context.

tesserix_adk.adapters.a2a.A2AExecutionError

Stability: alpha

Raised when an official A2A request cannot be mapped to a Tesserix run.

class A2AExecutionError(AdkError)

Typed errors: None declared.

Runnable recipe: examples/transports.py — integration boundaries validate and propagate context.

tesserix_adk.adapters.a2a.A2AInterface

Stability: alpha

One official A2A endpoint, including custom gateway bindings.

class A2AInterface(AdkModel)

Typed errors: None declared.

Runnable recipe: examples/transports.py — integration boundaries validate and propagate context.

tesserix_adk.adapters.a2a.A2APrincipalResolver

Stability: alpha · Kind: Protocol

Authenticate and authorise one A2A request at the server trust boundary.

class A2APrincipalResolver(Protocol)

Typed errors: None declared.

Runnable recipe: examples/transports.py — integration boundaries validate and propagate context.

tesserix_adk.adapters.a2a.A2ARegistry

Stability: alpha · Kind: Protocol

A vendor-neutral registry that resolves a name to an official Agent Card.

class A2ARegistry(Protocol) {resolve(self, name: 'str') -> 'AgentCard'}

Typed errors: None declared.

Runnable recipe: examples/transports.py — integration boundaries validate and propagate context.

tesserix_adk.adapters.a2a.A2ARegistryError

Stability: alpha

Raised when a registry answer cannot safely identify the requested agent.

class A2ARegistryError(AdkError)

Typed errors: None declared.

Runnable recipe: examples/transports.py — integration boundaries validate and propagate context.

tesserix_adk.adapters.a2a.A2ASkill

Stability: alpha

A public task capability in an official A2A Agent Card.

class A2ASkill(AdkModel)

Typed errors: None declared.

Runnable recipe: examples/transports.py — integration boundaries validate and propagate context.

tesserix_adk.adapters.a2a.a2a_agent_executor

Stability: alpha

Expose one reviewed Tesserix agent through the official A2A server contract.

def a2a_agent_executor(runner: 'AgentRunner', definition: 'AgentDefinition[OutputT]', *, resolve: 'A2APrincipalResolver', max_input_bytes: 'int' = 65536, max_output_bytes: 'int' = 1048576) -> 'AgentExecutor'

Typed errors: A2AExecutionError, MissingExtraError

Runnable recipe: examples/transports.py — integration boundaries validate and propagate context.

tesserix_adk.adapters.a2a.a2a_card_for

Stability: alpha

Build an official A2A 1.x Agent Card from a reviewed definition.

def a2a_card_for(definition: 'AgentDefinition[OutputT]', *, description: 'str', provider_url: 'str', interfaces: 'Iterable[A2AInterface]', skills: 'Iterable[A2ASkill]', documentation_url: 'str' = '', default_input_modes: 'Sequence[str]' = ('text/plain',), default_output_modes: 'Sequence[str]' = ('text/plain',), streaming: 'bool' = False, push_notifications: 'bool' = False, extended_agent_card: 'bool' = False, security: 'A2ABearerSecurity | None' = None) -> 'AgentCard'

Typed errors: A2ACardError, MissingExtraError

Runnable recipe: examples/transports.py — integration boundaries validate and propagate context.

tesserix_adk.adapters.a2a.a2a_client_factory

Stability: alpha

Create the official SDK factory with optional custom gateway transports.

def a2a_client_factory(*, protocol_bindings: 'Iterable[str]' = ('JSONRPC',), transports: 'Mapping[str, TransportProducer] | None' = None, streaming: 'bool' = True, polling: 'bool' = False, accepted_output_modes: 'Iterable[str]' = (), use_client_preference: 'bool' = False) -> 'ClientFactory'

Typed errors: MissingExtraError

Runnable recipe: examples/transports.py — integration boundaries validate and propagate context.

tesserix_adk.adapters.a2a.a2a_client_from_registry

Stability: alpha

Resolve name, verify its identity, and create an official A2A client.

def a2a_client_from_registry(registry: 'A2ARegistry', name: 'str', *, factory: 'ClientFactory', interceptors: 'Sequence[ClientCallInterceptor]' = (), verify: 'Callable[[AgentCard], None] | None' = None) -> 'Client'

Typed errors: A2ARegistryError

Runnable recipe: examples/transports.py — integration boundaries validate and propagate context.

tesserix_adk.adapters.a2a_agent_executor

Stability: alpha

Expose one reviewed Tesserix agent through the official A2A server contract.

def a2a_agent_executor(runner: 'AgentRunner', definition: 'AgentDefinition[OutputT]', *, resolve: 'A2APrincipalResolver', max_input_bytes: 'int' = 65536, max_output_bytes: 'int' = 1048576) -> 'AgentExecutor'

Typed errors: A2AExecutionError, MissingExtraError

Runnable recipe: examples/transports.py — integration boundaries validate and propagate context.

tesserix_adk.adapters.a2a_card_for

Stability: alpha

Build an official A2A 1.x Agent Card from a reviewed definition.

def a2a_card_for(definition: 'AgentDefinition[OutputT]', *, description: 'str', provider_url: 'str', interfaces: 'Iterable[A2AInterface]', skills: 'Iterable[A2ASkill]', documentation_url: 'str' = '', default_input_modes: 'Sequence[str]' = ('text/plain',), default_output_modes: 'Sequence[str]' = ('text/plain',), streaming: 'bool' = False, push_notifications: 'bool' = False, extended_agent_card: 'bool' = False, security: 'A2ABearerSecurity | None' = None) -> 'AgentCard'

Typed errors: A2ACardError, MissingExtraError

Runnable recipe: examples/transports.py — integration boundaries validate and propagate context.

tesserix_adk.adapters.a2a_client_factory

Stability: alpha

Create the official SDK factory with optional custom gateway transports.

def a2a_client_factory(*, protocol_bindings: 'Iterable[str]' = ('JSONRPC',), transports: 'Mapping[str, TransportProducer] | None' = None, streaming: 'bool' = True, polling: 'bool' = False, accepted_output_modes: 'Iterable[str]' = (), use_client_preference: 'bool' = False) -> 'ClientFactory'

Typed errors: MissingExtraError

Runnable recipe: examples/transports.py — integration boundaries validate and propagate context.

tesserix_adk.adapters.a2a_client_from_registry

Stability: alpha

Resolve name, verify its identity, and create an official A2A client.

def a2a_client_from_registry(registry: 'A2ARegistry', name: 'str', *, factory: 'ClientFactory', interceptors: 'Sequence[ClientCallInterceptor]' = (), verify: 'Callable[[AgentCard], None] | None' = None) -> 'Client'

Typed errors: A2ARegistryError

Runnable recipe: examples/transports.py — integration boundaries validate and propagate context.

tesserix_adk.adapters.agent_exports.ExportDescriptorDriftError

Stability: alpha

Raised when a consumer's pinned function descriptor no longer matches.

class ExportDescriptorDriftError(AdkError)

Typed errors: None declared.

Runnable recipe: examples/transports.py — integration boundaries validate and propagate context.

tesserix_adk.adapters.agent_exports.ExportErrorCode

Stability: alpha

Stable categories a foreign orchestrator may branch on.

class ExportErrorCode(StrEnum)

Typed errors: None declared.

Runnable recipe: examples/transports.py — integration boundaries validate and propagate context.

tesserix_adk.adapters.agent_exports.ExportErrorEnvelope

Stability: alpha

A non-secret failure shape shared by direct, MCP and framework callers.

class ExportErrorEnvelope(AdkModel)

Typed errors: None declared.

Runnable recipe: examples/transports.py — integration boundaries validate and propagate context.

tesserix_adk.adapters.agent_exports.ExportInvocation

Stability: alpha

Authenticated ingress context supplied beside model-controlled arguments.

class ExportInvocation(object) {with_budget(self, budget: 'BudgetPolicy') -> 'ExportInvocation'}

Typed errors: None declared.

Runnable recipe: examples/transports.py — integration boundaries validate and propagate context.

tesserix_adk.adapters.agent_exports.ExportedA2AAgent

Stability: alpha

Official A2A card and executor produced by the existing A2A adapter.

class ExportedA2AAgent(object)

Typed errors: None declared.

Runnable recipe: examples/transports.py — integration boundaries validate and propagate context.

tesserix_adk.adapters.agent_exports.ExportedAgentResult

Stability: alpha

Versioned success-or-error result serialised to foreign frameworks.

class ExportedAgentResult(AdkModel, Generic)

Typed errors: None declared.

Runnable recipe: examples/transports.py — integration boundaries validate and propagate context.

tesserix_adk.adapters.agent_exports.ExportedAgentTool

Stability: alpha

An OpenAI descriptor, typed callable and kit tool backed by one agent.

class ExportedAgentTool(Generic) {assert_descriptor(self, expected: 'str') -> 'None'; invoke(self, arguments: 'Mapping[str, object] | str | bytes', context: 'ExportInvocation | None') -> 'ExportedAgentResult[OutputT]'}

Typed errors: None declared.

Runnable recipe: examples/transports.py — integration boundaries validate and propagate context.

tesserix_adk.adapters.agent_exports.export_as_a2a

Stability: alpha

Return the official A2A card and authenticated executor for one definition.

def export_as_a2a(runner: 'AgentRunner', definition: 'AgentDefinition[OutputT]', *, resolve: 'A2APrincipalResolver', description: 'str', provider_url: 'str', interfaces: 'Iterable[A2AInterface]', skills: 'Iterable[A2ASkill]', documentation_url: 'str' = '', default_input_modes: 'Sequence[str]' = ('text/plain',), default_output_modes: 'Sequence[str]' = ('text/plain',), streaming: 'bool' = False, push_notifications: 'bool' = False, extended_agent_card: 'bool' = False, security: 'A2ABearerSecurity | None' = None, max_input_bytes: 'int' = 65536, max_output_bytes: 'int' = 1048576) -> 'ExportedA2AAgent'

Typed errors: None declared.

Runnable recipe: examples/transports.py — integration boundaries validate and propagate context.

tesserix_adk.adapters.agent_exports.export_as_mcp_tool

Stability: alpha

Publish an agent through the existing authenticated MCP server helper.

def export_as_mcp_tool(runner: 'AgentRunner', agent: 'TypedAgent[InputT, OutputT] | TypedAgentDefinition[InputT, OutputT]', *, description: 'str', name: 'str | None' = None, timeout_seconds: 'float' = 30.0, per_tenant_calls: 'int' = 8, secrets: 'Sequence[str]' = ()) -> 'McpServer'

Typed errors: None declared.

Runnable recipe: examples/transports.py — integration boundaries validate and propagate context.

tesserix_adk.adapters.agent_exports.export_as_tool

Stability: alpha

Export one structured kit agent as descriptor, callable and reusable kit tool.

def export_as_tool(runner: 'AgentRunner', agent: 'TypedAgent[InputT, OutputT] | TypedAgentDefinition[InputT, OutputT]', *, description: 'str', name: 'str | None' = None, timeout_seconds: 'float' = 30.0) -> 'ExportedAgentTool[InputT, OutputT]'

Typed errors: ConfigurationError

Runnable recipe: examples/transports.py — integration boundaries validate and propagate context.

tesserix_adk.adapters.agent_gateway_tools

Stability: alpha

Adapt a pinned AgentGateway tool set into tools a ToolRegistry can adopt.

def agent_gateway_tools(routed: 'AgentGatewayTools') -> 'tuple[Tool[..., JsonValue], ...]'

Typed errors: None declared.

Runnable recipe: examples/transports.py — integration boundaries validate and propagate context.

tesserix_adk.adapters.agentgateway.McpStreamableHttpTransport

Stability: alpha

Open one bounded official-SDK MCP session for each gateway operation.

class McpStreamableHttpTransport(object) {call_tool(self, *, endpoint: 'str', tool: 'str', arguments: 'Mapping[str, JsonValue]', headers: 'Mapping[str, str]', meta: 'Mapping[str, str]', timeout_seconds: 'float', max_result_bytes: 'int') -> 'GatewayToolResult'; list_tools(self, *, endpoint: 'str', headers: 'Mapping[str, str]', meta: 'Mapping[str, str]', timeout_seconds: 'float', max_result_bytes: 'int', max_tools: 'int') -> 'tuple[McpToolDescriptor, ...]'}

Typed errors: None declared.

Runnable recipe: examples/transports.py — integration boundaries validate and propagate context.

tesserix_adk.adapters.agentgateway.agent_gateway_tools

Stability: alpha

Adapt a pinned AgentGateway tool set into tools a ToolRegistry can adopt.

def agent_gateway_tools(routed: 'AgentGatewayTools') -> 'tuple[Tool[..., JsonValue], ...]'

Typed errors: None declared.

Runnable recipe: examples/transports.py — integration boundaries validate and propagate context.

tesserix_adk.adapters.approvals.ConsoleApprovals

Stability: alpha

Asks whoever is at the terminal, for a single-operator deployment or a local run.

class ConsoleApprovals(object) {deliver(self, record: 'ApprovalRecord') -> 'ApprovalDecision'}

Typed errors: ConfigurationError

Runnable recipe: examples/transports.py — integration boundaries validate and propagate context.

tesserix_adk.adapters.approvals.DEFAULT_APPROVAL_SUBJECT

Stability: alpha

str(object='') -> str str(bytes_or_buffer[, encoding[, errors]]) -> str

DEFAULT_APPROVAL_SUBJECT: str

Typed errors: None declared.

Runnable recipe: examples/transports.py — integration boundaries validate and propagate context.

tesserix_adk.adapters.approvals.HttpPoster

Stability: alpha · Kind: Protocol

The one method this adapter uses from an HTTP client.

class HttpPoster(Protocol) {post(self, url: 'str', *, content: 'bytes', headers: 'Mapping[str, str]') -> 'tuple[int, bytes]'}

Typed errors: None declared.

Runnable recipe: examples/transports.py — integration boundaries validate and propagate context.

tesserix_adk.adapters.approvals.MessagePublisher

Stability: alpha · Kind: Protocol

The one method this adapter uses from a NATS client.

class MessagePublisher(Protocol) {publish(self, subject: 'str', payload: 'bytes') -> 'None'}

Typed errors: None declared.

Runnable recipe: examples/transports.py — integration boundaries validate and propagate context.

tesserix_adk.adapters.approvals.NatsApprovals

Stability: alpha

Publishes the question on a per-tenant subject; the answer arrives out of band.

class NatsApprovals(object) {deliver(self, record: 'ApprovalRecord') -> 'None'}

Typed errors: ConfigurationError

Runnable recipe: examples/transports.py — integration boundaries validate and propagate context.

tesserix_adk.adapters.approvals.WebhookApprovals

Stability: alpha

POSTs the question to a signed endpoint, and reads an answer only if one came back.

class WebhookApprovals(object) {deliver(self, record: 'ApprovalRecord') -> 'ApprovalDecision | None'}

Typed errors: ConfigurationError

Runnable recipe: examples/transports.py — integration boundaries validate and propagate context.

tesserix_adk.adapters.arriving_call

Stability: alpha

Read who an arriving MCP call is for, or refuse it.

def arriving_call(*, headers: 'Mapping[str, str] | None' = None, meta: 'Mapping[str, str] | None' = None, authenticated: 'str | None' = None) -> 'IncomingCall'

Typed errors: McpAuthError

Runnable recipe: examples/transports.py — integration boundaries validate and propagate context.

tesserix_adk.adapters.assembled

Stability: alpha

Adopt every server's tools, tolerating the absence of the optional ones.

def assembled(clients: 'Sequence[McpClient]', *, known: 'Collection[str]' = ()) -> 'McpFleet'

Typed errors: McpServerUnavailableError

Runnable recipe: examples/transports.py — integration boundaries validate and propagate context.

tesserix_adk.adapters.audit.AUDIT_SCHEMA_VERSION

Stability: alpha

int([x]) -> integer int(x, base=10) -> integer

AUDIT_SCHEMA_VERSION: int

Typed errors: None declared.

Runnable recipe: examples/transports.py — integration boundaries validate and propagate context.

tesserix_adk.adapters.audit.AuditTables

Stability: alpha

Where the rows live. One database may hold more than one kit deployment.

class AuditTables(object)

Typed errors: None declared.

Runnable recipe: examples/transports.py — integration boundaries validate and propagate context.

tesserix_adk.adapters.audit.DEFAULT_AUDIT_SUBJECT

Stability: alpha

str(object='') -> str str(bytes_or_buffer[, encoding[, errors]]) -> str

DEFAULT_AUDIT_SUBJECT: str

Typed errors: None declared.

Runnable recipe: examples/transports.py — integration boundaries validate and propagate context.

tesserix_adk.adapters.audit.DEFAULT_AUDIT_TABLES

Stability: alpha

Where the rows live. One database may hold more than one kit deployment.

DEFAULT_AUDIT_TABLES: AuditTables

Typed errors: None declared.

Runnable recipe: examples/transports.py — integration boundaries validate and propagate context.

tesserix_adk.adapters.audit.EXPECTED_AUDIT_SCHEMA

Stability: alpha

str(object='') -> str str(bytes_or_buffer[, encoding[, errors]]) -> str

EXPECTED_AUDIT_SCHEMA: str

Typed errors: None declared.

Runnable recipe: examples/transports.py — integration boundaries validate and propagate context.

tesserix_adk.adapters.audit.JetStreamAudit

Stability: alpha

Publishes each decision on a per-tenant subject, for a stream that keeps it.

class JetStreamAudit(object) {append(self, event: 'AuditEvent') -> 'AuditEvent'}

Typed errors: ConfigurationError

Runnable recipe: examples/transports.py — integration boundaries validate and propagate context.

tesserix_adk.adapters.audit.JetStreamPublisher

Stability: alpha · Kind: Protocol

The one method this adapter uses from a JetStream client.

class JetStreamPublisher(Protocol) {publish(self, subject: 'str', payload: 'bytes') -> 'None'}

Typed errors: None declared.

Runnable recipe: examples/transports.py — integration boundaries validate and propagate context.

tesserix_adk.adapters.audit.PostgresAuditSettings

Stability: alpha

How to reach PostgreSQL, and what this deployment needs it to promise.

class PostgresAuditSettings(PostgresStoreSettings)

Typed errors: None declared.

Runnable recipe: examples/transports.py — integration boundaries validate and propagate context.

tesserix_adk.adapters.audit.PostgresAuditSink

Stability: alpha

Decisions in one append-only table, read back by whoever is accountable for them.

class PostgresAuditSink(object) {append(self, event: 'AuditEvent') -> 'AuditEvent'; pseudonymise(self, *, tenant: 'str', subject: 'str') -> 'int'; records(self, *, tenant: 'str', since: 'float' = 0.0, until: 'float | None' = None, decision: 'AuditDecision | None' = None) -> 'tuple[AuditEvent, ...]'; verify(self) -> 'None'}

Typed errors: None declared.

Runnable recipe: examples/transports.py — integration boundaries validate and propagate context.

tesserix_adk.adapters.cache.DEFAULT_NAMESPACE

Stability: alpha

str(object='') -> str str(bytes_or_buffer[, encoding[, errors]]) -> str

DEFAULT_NAMESPACE: str

Typed errors: None declared.

Runnable recipe: examples/transports.py — integration boundaries validate and propagate context.

tesserix_adk.adapters.cache.RedisCacheStore

Stability: alpha

A CacheStore over Redis, one Lua script per operation.

class RedisCacheStore(object) {get(self, digest: 'str') -> 'CacheEntry | None'; purge(self, **by: 'str | None') -> 'int'; put(self, entry: 'CacheEntry') -> 'None'}

Typed errors: None declared.

Runnable recipe: examples/transports.py — integration boundaries validate and propagate context.

tesserix_adk.adapters.ceiling.CEILING_SCHEMA_VERSION

Stability: alpha

int([x]) -> integer int(x, base=10) -> integer

CEILING_SCHEMA_VERSION: int

Typed errors: None declared.

Runnable recipe: examples/transports.py — integration boundaries validate and propagate context.

tesserix_adk.adapters.ceiling.CeilingTables

Stability: alpha

Where the rows live. One database may hold more than one kit deployment.

class CeilingTables(object)

Typed errors: None declared.

Runnable recipe: examples/transports.py — integration boundaries validate and propagate context.

tesserix_adk.adapters.ceiling.DEFAULT_CEILING_TABLES

Stability: alpha

Where the rows live. One database may hold more than one kit deployment.

DEFAULT_CEILING_TABLES: CeilingTables

Typed errors: None declared.

Runnable recipe: examples/transports.py — integration boundaries validate and propagate context.

tesserix_adk.adapters.ceiling.EXPECTED_CEILING_SCHEMA

Stability: alpha

str(object='') -> str str(bytes_or_buffer[, encoding[, errors]]) -> str

EXPECTED_CEILING_SCHEMA: str

Typed errors: None declared.

Runnable recipe: examples/transports.py — integration boundaries validate and propagate context.

tesserix_adk.adapters.ceiling.PostgresCeilingLedger

Stability: alpha

Headroom taken and settled across processes, on one row per action.

class PostgresCeilingLedger(object) {commit(self, idempotency_key: 'str') -> 'Hold | None'; committed(self, *, tenant: 'str', action_class: 'str', window_seconds: 'float') -> 'Decimal'; reap(self) -> 'int'; release(self, idempotency_key: 'str') -> 'None'; reserve(self, *, tenant: 'str', action_class: 'str', ceiling: 'Ceiling', amount: 'Decimal', idempotency_key: 'str') -> 'Hold'; verify(self) -> 'None'}

Typed errors: None declared.

Runnable recipe: examples/transports.py — integration boundaries validate and propagate context.

tesserix_adk.adapters.ceiling.PostgresCeilingSettings

Stability: alpha

How to reach PostgreSQL, and what this deployment needs it to promise.

class PostgresCeilingSettings(PostgresStoreSettings)

Typed errors: None declared.

Runnable recipe: examples/transports.py — integration boundaries validate and propagate context.

tesserix_adk.adapters.checkpoints.CHECKPOINT_SCHEMA_VERSION

Stability: alpha

int([x]) -> integer int(x, base=10) -> integer

CHECKPOINT_SCHEMA_VERSION: int

Typed errors: None declared.

Runnable recipe: examples/transports.py — integration boundaries validate and propagate context.

tesserix_adk.adapters.checkpoints.CheckpointTables

Stability: alpha

Where the rows live. One database may hold more than one kit deployment.

class CheckpointTables(object)

Typed errors: None declared.

Runnable recipe: examples/transports.py — integration boundaries validate and propagate context.

tesserix_adk.adapters.checkpoints.DEFAULT_CHECKPOINT_NAMESPACE

Stability: alpha

str(object='') -> str str(bytes_or_buffer[, encoding[, errors]]) -> str

DEFAULT_CHECKPOINT_NAMESPACE: str

Typed errors: None declared.

Runnable recipe: examples/transports.py — integration boundaries validate and propagate context.

tesserix_adk.adapters.checkpoints.DEFAULT_CHECKPOINT_TABLES

Stability: alpha

Where the rows live. One database may hold more than one kit deployment.

DEFAULT_CHECKPOINT_TABLES: CheckpointTables

Typed errors: None declared.

Runnable recipe: examples/transports.py — integration boundaries validate and propagate context.

tesserix_adk.adapters.checkpoints.EXPECTED_CHECKPOINT_SCHEMA

Stability: alpha

str(object='') -> str str(bytes_or_buffer[, encoding[, errors]]) -> str

EXPECTED_CHECKPOINT_SCHEMA: str

Typed errors: None declared.

Runnable recipe: examples/transports.py — integration boundaries validate and propagate context.

tesserix_adk.adapters.checkpoints.PostgresCheckpointStore

Stability: alpha

The frontier as one row per run, upserted.

class PostgresCheckpointStore(object) {forget(self, run_id: 'str', *, tenant: 'str') -> 'None'; latest(self, run_id: 'str', *, tenant: 'str') -> 'Checkpoint | None'; put(self, checkpoint: 'Checkpoint') -> 'None'; verify(self) -> 'None'}

Typed errors: None declared.

Runnable recipe: examples/transports.py — integration boundaries validate and propagate context.

tesserix_adk.adapters.checkpoints.PostgresLeaseStore

Stability: alpha

The lease as one row per run, taken by an upsert that refuses a live holder.

class PostgresLeaseStore(object) {acquire(self, run_id: 'str', *, tenant: 'str', holder: 'str', ttl_seconds: 'float') -> 'RunLease'; held(self, run_id: 'str', *, tenant: 'str') -> 'RunLease | None'; release(self, lease: 'RunLease') -> 'None'; renew(self, lease: 'RunLease', *, ttl_seconds: 'float') -> 'RunLease'}

Typed errors: None declared.

Runnable recipe: examples/transports.py — integration boundaries validate and propagate context.

tesserix_adk.adapters.checkpoints.RedisCheckpointStore

Stability: alpha

The frontier as one key per run, with no expiry on it.

class RedisCheckpointStore(object) {forget(self, run_id: 'str', *, tenant: 'str') -> 'None'; latest(self, run_id: 'str', *, tenant: 'str') -> 'Checkpoint | None'; put(self, checkpoint: 'Checkpoint') -> 'None'}

Typed errors: None declared.

Runnable recipe: examples/transports.py — integration boundaries validate and propagate context.

tesserix_adk.adapters.checkpoints.RedisLeaseStore

Stability: alpha

The lease as a hash per run, with the fence incremented inside the acquisition.

class RedisLeaseStore(object) {acquire(self, run_id: 'str', *, tenant: 'str', holder: 'str', ttl_seconds: 'float') -> 'RunLease'; held(self, run_id: 'str', *, tenant: 'str') -> 'RunLease | None'; release(self, lease: 'RunLease') -> 'None'; renew(self, lease: 'RunLease', *, ttl_seconds: 'float') -> 'RunLease'}

Typed errors: None declared.

Runnable recipe: examples/transports.py — integration boundaries validate and propagate context.

tesserix_adk.adapters.container_runtime

Stability: alpha

Declare a digest-pinned OCI runtime.

def container_runtime(*, image: 'str', protocol: "Literal['a2a', 'http']" = 'a2a', port: 'int' = 8080, path: 'str' = '/a2a/v1', health_path: 'str' = '/healthz') -> 'PortableRuntime'

Typed errors: None declared.

Runnable recipe: examples/transports.py — integration boundaries validate and propagate context.

tesserix_adk.adapters.dead_letters.DeadLetterQuery

Stability: alpha

Which records to look at, or to move. Never more than one tenant's.

class DeadLetterQuery(AdkModel) {matches(self, record: 'DeadLetterRecord') -> 'bool'}

Typed errors: None declared.

Runnable recipe: examples/transports.py — integration boundaries validate and propagate context.

tesserix_adk.adapters.dead_letters.DeadLetterRecord

Stability: alpha

One event that will not be handled, and what is known about why.

class DeadLetterRecord(AdkModel) {inspected(self) -> 'dict[str, str]'}

Typed errors: None declared.

Runnable recipe: examples/transports.py — integration boundaries validate and propagate context.

tesserix_adk.adapters.dead_letters.DeadLetterStats

Stability: alpha

The backlog, as the two numbers worth alerting on.

class DeadLetterStats(object)

Typed errors: None declared.

Runnable recipe: examples/transports.py — integration boundaries validate and propagate context.

tesserix_adk.adapters.dead_letters.DeadLetterStore

Stability: alpha · Kind: Protocol

Where undeliverable events are kept, and how an operator reads them back.

class DeadLetterStore(Protocol) {bury(self, payload: 'bytes', *, reason: 'str', history: 'tuple[str, ...]' = (), group: 'str' = '') -> 'None'; forget(self, event_ids: 'Sequence[str]') -> 'None'; list(self, query: 'DeadLetterQuery') -> 'Sequence[DeadLetterRecord]'; stats(self, tenant: 'str') -> 'DeadLetterStats'}

Typed errors: None declared.

Runnable recipe: examples/transports.py — integration boundaries validate and propagate context.

tesserix_adk.adapters.dead_letters.ErasureCheck

Stability: alpha

Type alias.

ErasureCheck: TypeAliasType

Typed errors: None declared.

Runnable recipe: examples/transports.py — integration boundaries validate and propagate context.

tesserix_adk.adapters.dead_letters.InMemoryDeadLetters

Stability: alpha

A store in this process. The reference implementation, and what tests and the CLI use.

class InMemoryDeadLetters(object) {bury(self, payload: 'bytes', *, reason: 'str', history: 'tuple[str, ...]' = (), group: 'str' = '') -> 'None'; for_group(self, group: 'str') -> '_GroupBound'; forget(self, event_ids: 'Sequence[str]') -> 'None'; list(self, query: 'DeadLetterQuery') -> 'Sequence[DeadLetterRecord]'; stats(self, tenant: 'str') -> 'DeadLetterStats'; undecodable(self) -> 'int'}

Typed errors: None declared.

Runnable recipe: examples/transports.py — integration boundaries validate and propagate context.

tesserix_adk.adapters.dead_letters.MAX_REPLAY_BATCH

Stability: alpha

int([x]) -> integer int(x, base=10) -> integer

MAX_REPLAY_BATCH: int

Typed errors: None declared.

Runnable recipe: examples/transports.py — integration boundaries validate and propagate context.

tesserix_adk.adapters.dead_letters.ReplayHandler

Stability: alpha

Type alias.

ReplayHandler: TypeAliasType

Typed errors: None declared.

Runnable recipe: examples/transports.py — integration boundaries validate and propagate context.

tesserix_adk.adapters.dead_letters.ReplayPlan

Stability: alpha

What a replay would do, without having done any of it.

class ReplayPlan(object)

Typed errors: None declared.

Runnable recipe: examples/transports.py — integration boundaries validate and propagate context.

tesserix_adk.adapters.dead_letters.ReplayReport

Stability: alpha

What a replay did.

class ReplayReport(object)

Typed errors: None declared.

Runnable recipe: examples/transports.py — integration boundaries validate and propagate context.

tesserix_adk.adapters.dead_letters.Replayer

Stability: alpha

Puts dead-lettered events back through the live consumer path, under guardrails.

class Replayer(object) {plan(self, query: 'DeadLetterQuery') -> 'ReplayPlan'; records(self, query: 'DeadLetterQuery') -> 'Sequence[DeadLetterRecord]'; replay(self, query: 'DeadLetterQuery', *, operator: 'str', reason: 'str' = '') -> 'ReplayReport'}

Typed errors: None declared.

Runnable recipe: examples/transports.py — integration boundaries validate and propagate context.

tesserix_adk.adapters.dead_letters.UNDECODABLE

Stability: alpha

str(object='') -> str str(bytes_or_buffer[, encoding[, errors]]) -> str

UNDECODABLE: str

Typed errors: None declared.

Runnable recipe: examples/transports.py — integration boundaries validate and propagate context.

tesserix_adk.adapters.dead_letters.UNKNOWN_TENANT

Stability: alpha

str(object='') -> str str(bytes_or_buffer[, encoding[, errors]]) -> str

UNKNOWN_TENANT: str

Typed errors: None declared.

Runnable recipe: examples/transports.py — integration boundaries validate and propagate context.

tesserix_adk.adapters.dedupe_key

Stability: alpha

What one consumer group's handling of one event is recorded under.

def dedupe_key(*, group: 'str', event: 'EventEnvelope') -> 'str'

Typed errors: None declared.

Runnable recipe: examples/transports.py — integration boundaries validate and propagate context.

tesserix_adk.adapters.eventing.payload_of

Stability: alpha

The event a consumer downstream should hear about, or None where there is not one.

def payload_of(event: 'ProgressEvent') -> 'EventPayload | None'

Typed errors: None declared.

Runnable recipe: examples/transports.py — integration boundaries validate and propagate context.

tesserix_adk.adapters.eventing.publishing

Stability: alpha

Iterate a run's progress, publishing the events other systems act on as it goes.

def publishing(stream: 'RunStream[OutputT]', eventing: 'Eventing') -> 'AsyncIterator[ProgressEvent]'

Typed errors: EventPublishError

Runnable recipe: examples/transports.py — integration boundaries validate and propagate context.

tesserix_adk.adapters.export_a2a_agent

Stability: alpha

Export a generic or official A2A card as a runnable Registry Agent.

def export_a2a_agent(card: 'Mapping[str, object] | object', *, namespace: 'str', runtime: 'PortableRuntime', framework: 'str' = 'a2a', visibility: "Literal['private', 'internal', 'public']" = 'private') -> 'PortableAgentManifest'

Typed errors: PortableExportError

Runnable recipe: examples/transports.py — integration boundaries validate and propagate context.

tesserix_adk.adapters.export_as_a2a

Stability: alpha

Return the official A2A card and authenticated executor for one definition.

def export_as_a2a(runner: 'AgentRunner', definition: 'AgentDefinition[OutputT]', *, resolve: 'A2APrincipalResolver', description: 'str', provider_url: 'str', interfaces: 'Iterable[A2AInterface]', skills: 'Iterable[A2ASkill]', documentation_url: 'str' = '', default_input_modes: 'Sequence[str]' = ('text/plain',), default_output_modes: 'Sequence[str]' = ('text/plain',), streaming: 'bool' = False, push_notifications: 'bool' = False, extended_agent_card: 'bool' = False, security: 'A2ABearerSecurity | None' = None, max_input_bytes: 'int' = 65536, max_output_bytes: 'int' = 1048576) -> 'ExportedA2AAgent'

Typed errors: None declared.

Runnable recipe: examples/transports.py — integration boundaries validate and propagate context.

tesserix_adk.adapters.export_as_mcp_tool

Stability: alpha

Publish an agent through the existing authenticated MCP server helper.

def export_as_mcp_tool(runner: 'AgentRunner', agent: 'TypedAgent[InputT, OutputT] | TypedAgentDefinition[InputT, OutputT]', *, description: 'str', name: 'str | None' = None, timeout_seconds: 'float' = 30.0, per_tenant_calls: 'int' = 8, secrets: 'Sequence[str]' = ()) -> 'McpServer'

Typed errors: None declared.

Runnable recipe: examples/transports.py — integration boundaries validate and propagate context.

tesserix_adk.adapters.export_as_tool

Stability: alpha

Export one structured kit agent as descriptor, callable and reusable kit tool.

def export_as_tool(runner: 'AgentRunner', agent: 'TypedAgent[InputT, OutputT] | TypedAgentDefinition[InputT, OutputT]', *, description: 'str', name: 'str | None' = None, timeout_seconds: 'float' = 30.0) -> 'ExportedAgentTool[InputT, OutputT]'

Typed errors: ConfigurationError

Runnable recipe: examples/transports.py — integration boundaries validate and propagate context.

tesserix_adk.adapters.export_google_adk_agent

Stability: alpha

Export a Google ADK agent without importing Google ADK.

def export_google_adk_agent(agent: 'object', **kwargs: 'Unpack[PortableExportOptions]') -> 'PortableAgentManifest'

Typed errors: None declared.

Runnable recipe: examples/transports.py — integration boundaries validate and propagate context.

tesserix_adk.adapters.export_langgraph_agent

Stability: alpha

Export a compiled LangGraph graph through public attributes only.

def export_langgraph_agent(graph: 'object', **kwargs: 'Unpack[PortableExportOptions]') -> 'PortableAgentManifest'

Typed errors: None declared.

Runnable recipe: examples/transports.py — integration boundaries validate and propagate context.

tesserix_adk.adapters.export_oci_agent

Stability: alpha

Export an unknown framework through its digest-pinned OCI boundary.

def export_oci_agent(*, name: 'str', version: 'str', namespace: 'str', image: 'str', protocol: "Literal['a2a', 'http']" = 'a2a', port: 'int' = 8080, path: 'str' = '/a2a/v1', health_path: 'str' = '/healthz', visibility: "Literal['private', 'internal', 'public']" = 'private') -> 'PortableAgentManifest'

Typed errors: None declared.

Runnable recipe: examples/transports.py — integration boundaries validate and propagate context.

tesserix_adk.adapters.export_openai_agent

Stability: alpha

Export an OpenAI Agents SDK agent without importing that SDK.

def export_openai_agent(agent: 'object', **kwargs: 'Unpack[PortableExportOptions]') -> 'PortableAgentManifest'

Typed errors: None declared.

Runnable recipe: examples/transports.py — integration boundaries validate and propagate context.

tesserix_adk.adapters.export_tesserix_agent

Stability: alpha

Export a reviewed Tesserix definition without silently moving dependencies.

def export_tesserix_agent(definition: 'AgentDefinition[OutputT]', *, namespace: 'str', runtime: 'PortableRuntime', model_provider: 'str' = '', tool_versions: 'Mapping[str, str] | None' = None, skills: 'Iterable[PortableReference]' = (), mcp_servers: 'Iterable[PortableReference]' = (), prompts: 'Iterable[PortableReference]' = (), description: 'str' = '', include_system_prompt: 'bool' = False, visibility: "Literal['private', 'internal', 'public']" = 'private', labels: 'Mapping[str, str] | None' = None) -> 'PortableAgentManifest'

Typed errors: PortableExportError

Runnable recipe: examples/transports.py — integration boundaries validate and propagate context.

tesserix_adk.adapters.fingerprint

Stability: alpha

A digest of what a call to descriptor is held to, so a changed contract shows.

def fingerprint(descriptor: 'McpToolDescriptor') -> 'str'

Typed errors: None declared.

Runnable recipe: examples/transports.py — integration boundaries validate and propagate context.

tesserix_adk.adapters.foreign_agents.ForeignAgentContext

Stability: alpha

Caller-owned context supplied beside, and never inside, foreign input.

class ForeignAgentContext(object) {raise_if_cancelled(self) -> 'None'}

Typed errors: None declared.

Runnable recipe: examples/transports.py — integration boundaries validate and propagate context.

tesserix_adk.adapters.foreign_agents.ForeignAgentReply

Stability: alpha

A foreign answer with whatever metering its runtime can report.

class ForeignAgentReply(AdkModel, Generic)

Typed errors: None declared.

Runnable recipe: examples/transports.py — integration boundaries validate and propagate context.

tesserix_adk.adapters.foreign_agents.WrappedAgentPolicy

Stability: alpha

Controls one foreign-agent boundary.

class WrappedAgentPolicy(AdkModel)

Typed errors: None declared.

Runnable recipe: examples/transports.py — integration boundaries validate and propagate context.

tesserix_adk.adapters.foreign_agents.WrappedSubagent

Stability: alpha

An addressable foreign agent accepted by :class:~runtime.Supervisor.

class WrappedSubagent(Generic) {run(self, user_input: 'str', *, tenant: 'str', budget: 'BudgetPolicy', user: 'str | None' = None, run_id: 'str | None' = None, cancellation: 'CancellationToken | None' = None, parent: 'RunContext | None' = None, scopes: 'Collection[str]' = (), trace: 'Mapping[str, str] | None' = None, tools: 'Collection[str] | None' = None) -> 'Run[OutputT]'}

Typed errors: None declared.

Runnable recipe: examples/transports.py — integration boundaries validate and propagate context.

tesserix_adk.adapters.foreign_agents.wrap_agent_as_subagent

Stability: alpha

Make a foreign agent addressable from a kit supervisor roster.

def wrap_agent_as_subagent(foreign: 'Callable[[InputT, ForeignAgentContext], object]', *, name: 'str', input_type: 'type[InputT]', output_type: 'type[OutputT]', policy: 'WrappedAgentPolicy', guardrails: 'GuardrailPipeline | None' = None, provenance: 'str | None' = None) -> 'WrappedSubagent[InputT, OutputT]'

Typed errors: ConfigurationError

Runnable recipe: examples/transports.py — integration boundaries validate and propagate context.

tesserix_adk.adapters.foreign_agents.wrap_agent_as_tool

Stability: alpha

Expose a foreign agent as a typed kit tool.

def wrap_agent_as_tool(foreign: 'Callable[[InputT, ForeignAgentContext], object]', *, name: 'str', input_type: 'type[InputT]', output_type: 'type[OutputT]', policy: 'WrappedAgentPolicy', guardrails: 'GuardrailPipeline | None' = None, description: 'str | None' = None, provenance: 'str | None' = None) -> 'Tool[..., OutputT]'

Typed errors: ConfigurationError

Runnable recipe: examples/transports.py — integration boundaries validate and propagate context.

tesserix_adk.adapters.google_adk.GOOGLE_ADK_CONTEXT_KEY

Stability: alpha

str(object='') -> str str(bytes_or_buffer[, encoding[, errors]]) -> str

GOOGLE_ADK_CONTEXT_KEY: str

Typed errors: None declared.

Runnable recipe: examples/transports.py — integration boundaries validate and propagate context.

tesserix_adk.adapters.google_adk.GoogleAdkAgentInvoker

Stability: alpha · Kind: Protocol

Application-owned invocation of one Google agent under delegated context.

class GoogleAdkAgentInvoker(Protocol)

Typed errors: None declared.

Runnable recipe: examples/transports.py — integration boundaries validate and propagate context.

tesserix_adk.adapters.google_adk.google_adk_remote_agent

Stability: alpha

Create a Google ADK remote agent for a Tesserix official A2A endpoint.

def google_adk_remote_agent(*, name: 'str', agent_card: 'AgentCard | str', description: 'str' = '', timeout_seconds: 'float' = 60.0) -> 'RemoteA2aAgent'

Typed errors: MissingExtraError, ValueError

Runnable recipe: examples/transports.py — integration boundaries validate and propagate context.

tesserix_adk.adapters.google_adk.import_google_adk_tool

Stability: alpha

Import one Google FunctionTool through the generic kit tool boundary.

def import_google_adk_tool(source: 'object', *, policy: 'ToolImportPolicy') -> 'Tool[..., object]'

Typed errors: MissingExtraError, ToolTranslationError

Runnable recipe: examples/transports.py — integration boundaries validate and propagate context.

tesserix_adk.adapters.google_adk.import_google_adk_toolset

Stability: alpha

Import Google FunctionTools and apply generic duplicate-name admission.

def import_google_adk_toolset(sources: 'Iterable[object]', *, policy: 'ToolImportPolicy', known: 'Collection[str]' = ()) -> 'tuple[Tool[..., object], ...]'

Typed errors: MissingExtraError, ToolTranslationError

Runnable recipe: examples/transports.py — integration boundaries validate and propagate context.

tesserix_adk.adapters.google_adk.wrap_google_adk_agent

Stability: alpha

Wrap a Google BaseAgent as a typed, budgeted kit sub-agent.

def wrap_google_adk_agent(source: 'object', *, invoke: 'GoogleAdkAgentInvoker[InputT]', input_type: 'type[InputT]', output_type: 'type[OutputT]', policy: 'WrappedAgentPolicy', guardrails: 'GuardrailPipeline | None' = None, name: 'str | None' = None) -> 'WrappedSubagent[InputT, OutputT]'

Typed errors: ConfigurationError, MissingExtraError

Runnable recipe: examples/transports.py — integration boundaries validate and propagate context.

tesserix_adk.adapters.google_adk_remote_agent

Stability: alpha

Create a Google ADK remote agent for a Tesserix official A2A endpoint.

def google_adk_remote_agent(*, name: 'str', agent_card: 'AgentCard | str', description: 'str' = '', timeout_seconds: 'float' = 60.0) -> 'RemoteA2aAgent'

Typed errors: MissingExtraError, ValueError

Runnable recipe: examples/transports.py — integration boundaries validate and propagate context.

tesserix_adk.adapters.graft.GraftMcpBackend

Stability: alpha

A tenant-bound Graft MCP session.

class GraftMcpBackend(object) {execute(self, request: 'CodeContextRequest') -> 'CodeContextResult'}

Typed errors: None declared.

Runnable recipe: examples/transports.py — integration boundaries validate and propagate context.

tesserix_adk.adapters.graft.GraftSubprocessBackend

Stability: alpha

A local Graft CLI bound to one canonical checkout.

class GraftSubprocessBackend(object) {execute(self, request: 'CodeContextRequest') -> 'CodeContextResult'}

Typed errors: None declared.

Runnable recipe: examples/transports.py — integration boundaries validate and propagate context.

tesserix_adk.adapters.grants.DEFAULT_GRANT_TABLES

Stability: alpha

Where the rows live. One database may hold more than one kit deployment.

DEFAULT_GRANT_TABLES: GrantTables

Typed errors: None declared.

Runnable recipe: examples/transports.py — integration boundaries validate and propagate context.

tesserix_adk.adapters.grants.EXPECTED_GRANT_SCHEMA

Stability: alpha

str(object='') -> str str(bytes_or_buffer[, encoding[, errors]]) -> str

EXPECTED_GRANT_SCHEMA: str

Typed errors: None declared.

Runnable recipe: examples/transports.py — integration boundaries validate and propagate context.

tesserix_adk.adapters.grants.GRANT_SCHEMA_VERSION

Stability: alpha

int([x]) -> integer int(x, base=10) -> integer

GRANT_SCHEMA_VERSION: int

Typed errors: None declared.

Runnable recipe: examples/transports.py — integration boundaries validate and propagate context.

tesserix_adk.adapters.grants.GrantTables

Stability: alpha

Where the rows live. One database may hold more than one kit deployment.

class GrantTables(object)

Typed errors: None declared.

Runnable recipe: examples/transports.py — integration boundaries validate and propagate context.

tesserix_adk.adapters.grants.PostgresGrantSettings

Stability: alpha

How to reach PostgreSQL, and what this deployment needs it to promise.

class PostgresGrantSettings(PostgresStoreSettings)

Typed errors: None declared.

Runnable recipe: examples/transports.py — integration boundaries validate and propagate context.

tesserix_adk.adapters.grants.PostgresGrantStore

Stability: alpha

Grants in one table, read live and written once.

class PostgresGrantStore(object) {grants_for(self, *, tenant: 'str', action_class: 'str') -> 'Sequence[AutonomyGrant]'; issue(self, grant: 'AutonomyGrant') -> 'AutonomyGrant'; revoke(self, revocation: 'Revocation') -> 'None'; verify(self) -> 'None'}

Typed errors: None declared.

Runnable recipe: examples/transports.py — integration boundaries validate and propagate context.

tesserix_adk.adapters.graph.BACKENDS

Stability: alpha

Built-in immutable sequence.

BACKENDS: tuple

Typed errors: None declared.

Runnable recipe: examples/transports.py — integration boundaries validate and propagate context.

tesserix_adk.adapters.graph.EXTRACTION_INSTRUCTION

Stability: alpha

str(object='') -> str str(bytes_or_buffer[, encoding[, errors]]) -> str

EXTRACTION_INSTRUCTION: str

Typed errors: None declared.

Runnable recipe: examples/transports.py — integration boundaries validate and propagate context.

tesserix_adk.adapters.graph.EntityExtractor

Stability: alpha

Turns an episode into a subgraph, through the kit's own provider protocol.

class EntityExtractor(object) {extract(self, scope: 'MemoryScope', record: 'MemoryRecord', *, budget: 'BudgetPolicy') -> 'tuple[ExtractedSubgraph, ExtractionCharge]'}

Typed errors: None declared.

Runnable recipe: examples/transports.py — integration boundaries validate and propagate context.

tesserix_adk.adapters.graph.ExtractedEdge

Stability: alpha

One relation, valid over an interval.

class ExtractedEdge(AdkModel)

Typed errors: None declared.

Runnable recipe: examples/transports.py — integration boundaries validate and propagate context.

tesserix_adk.adapters.graph.ExtractedNode

Stability: alpha

One entity the extraction named.

class ExtractedNode(AdkModel)

Typed errors: None declared.

Runnable recipe: examples/transports.py — integration boundaries validate and propagate context.

tesserix_adk.adapters.graph.ExtractedSubgraph

Stability: alpha

What one episode became, committed as a unit or not at all.

class ExtractedSubgraph(AdkModel)

Typed errors: None declared.

Runnable recipe: examples/transports.py — integration boundaries validate and propagate context.

tesserix_adk.adapters.graph.ExtractionCharge

Stability: alpha

What one extraction cost, attributed like any other model call.

class ExtractionCharge(AdkModel)

Typed errors: None declared.

Runnable recipe: examples/transports.py — integration boundaries validate and propagate context.

tesserix_adk.adapters.graph.ExtractionMeter

Stability: alpha

A per-tenant ceiling on extraction spend, checked before the call.

class ExtractionMeter(object) {charge(self, tenant: 'str', cost: 'Decimal') -> 'None'; check(self, tenant: 'str') -> 'None'; spent(self, tenant: 'str') -> 'Decimal'}

Typed errors: None declared.

Runnable recipe: examples/transports.py — integration boundaries validate and propagate context.

tesserix_adk.adapters.graph.GraphEngine

Stability: alpha · Kind: Protocol

The three things the adapter asks of a graph, and nothing else.

class GraphEngine(Protocol) {commit(self, subgraph: 'ExtractedSubgraph') -> 'None'; drop(self, path: 'tuple[str, str, str, str]') -> 'Mapping[str, int]'; edges(self, path: 'tuple[str, str, str, str]', *, as_of: 'float | None', limit: 'int') -> 'Sequence[ExtractedEdge]'}

Typed errors: None declared.

Runnable recipe: examples/transports.py — integration boundaries validate and propagate context.

tesserix_adk.adapters.graph.GraphMemoryStore

Stability: alpha

MemoryStore whose episodic and semantic halves are a temporal graph.

class GraphMemoryStore(object) {append(self, scope: 'MemoryScope', key: 'str', value: 'JsonValue') -> 'int'; belief(self, scope: 'MemoryScope', key: 'str', *, as_of: 'float | None' = None) -> 'Belief'; derivations(self, scope: 'MemoryScope', *, source_id: 'str | None' = None) -> 'Sequence[Derivation]'; derived(self, scope: 'MemoryScope', derivation: 'Derivation') -> 'None'; enqueue(self, scope: 'MemoryScope', record: 'MemoryRecord') -> 'None'; episodes(self, scope: 'MemoryScope', query: 'MemoryQuery') -> 'Sequence[MemoryHit]'; erase(self, scope: 'MemoryScope', *, kinds: 'tuple[MemoryKind, ...]' = (), dry_run: 'bool' = False) -> 'ErasureReceipt'; expire(self, scope: 'MemoryScope', key: 'str', *, ttl_seconds: 'float') -> 'None'; flush(self) -> 'int'; history(self, scope: 'MemoryScope', key: 'str | None' = None) -> 'Sequence[MemoryRecord]'; index(self, scope: 'MemoryScope', record: 'MemoryRecord') -> 'None'; log(self, scope: 'MemoryScope', record: 'MemoryRecord') -> 'None'; profile(self, scope: 'MemoryScope', key: 'str', *, as_of: 'float | None' = None) -> 'MemoryRecord | None'; read(self, scope: 'MemoryScope', key: 'str') -> 'MemoryRecord | None'; relations(self, scope: 'MemoryScope', *, as_of: 'float | None' = None, limit: 'int' = 10) -> 'Sequence[MemoryHit]'; retry_pending(self) -> 'int'; search(self, scope: 'MemoryScope', query: 'MemoryQuery') -> 'Sequence[MemoryHit]'; supersede(self, scope: 'MemoryScope', record: 'MemoryRecord', *, expected_version: 'int | None' = None, resolves: 'tuple[str, ...]' = ()) -> 'Supersession'; upsert(self, scope: 'MemoryScope', record: 'MemoryRecord') -> 'None'; write(self, scope: 'MemoryScope', record: 'MemoryRecord') -> 'None'; writing(self) -> 'AsyncIterator[None]'}

Typed errors: None declared.

Runnable recipe: examples/transports.py — integration boundaries validate and propagate context.

tesserix_adk.adapters.graph.GraphSettings

Stability: alpha

Where the graph is and what extracts into it.

class GraphSettings(AdkModel)

Typed errors: None declared.

Runnable recipe: examples/transports.py — integration boundaries validate and propagate context.

tesserix_adk.adapters.graph.GraphitiClient

Stability: alpha · Kind: Protocol

The part of graphiti's client the engine drives, named so nothing here is Any.

class GraphitiClient(Protocol) {add_episode(self, *, name: 'str', episode_body: 'str', source_description: 'str', group_id: 'str', reference_time: 'float | None') -> 'None'; remove_episode(self, group_id: 'str') -> 'None'; search(self, query: 'str', *, group_ids: 'Sequence[str]', num_results: 'int', reference_time: 'float | None') -> 'Sequence[object]'}

Typed errors: None declared.

Runnable recipe: examples/transports.py — integration boundaries validate and propagate context.

tesserix_adk.adapters.graph.GraphitiEngine

Stability: alpha

GraphEngine over graphiti-core, which owns the temporal model and the backend.

class GraphitiEngine(object) {commit(self, subgraph: 'ExtractedSubgraph') -> 'None'; drop(self, path: 'tuple[str, str, str, str]') -> 'Mapping[str, int]'; edges(self, path: 'tuple[str, str, str, str]', *, as_of: 'float | None', limit: 'int') -> 'Sequence[ExtractedEdge]'; group_id(self, path: 'tuple[str, str, str, str]') -> 'str'}

Typed errors: None declared.

Runnable recipe: examples/transports.py — integration boundaries validate and propagate context.

tesserix_adk.adapters.graph.open_graphiti

Stability: alpha

Build a GraphitiEngine for the configured backend.

def open_graphiti(settings: 'GraphSettings', *, factory: 'Callable[[str, str], GraphitiClient] | None' = None) -> 'GraphitiEngine'

Typed errors: MissingExtraError

Runnable recipe: examples/transports.py — integration boundaries validate and propagate context.

tesserix_adk.adapters.idempotency.IN_FLIGHT

Stability: alpha

str(object='') -> str str(bytes_or_buffer[, encoding[, errors]]) -> str

IN_FLIGHT: str

Typed errors: None declared.

Runnable recipe: examples/transports.py — integration boundaries validate and propagate context.

tesserix_adk.adapters.idempotency.PostgresIdempotencyStore

Stability: alpha

The record in PostgreSQL, with the claim and the read in one statement.

class PostgresIdempotencyStore(object) {abandon(self, key: 'str', *, tenant: 'str') -> 'None'; begin(self, key: 'str', *, tenant: 'str', ttl_seconds: 'float') -> 'Claim'; ensure_schema(self) -> 'None'; forget(self, *, tenant: 'str') -> 'int'; record(self, key: 'str', *, tenant: 'str', outcome: 'str', ttl_seconds: 'float') -> 'None'}

Typed errors: None declared.

Runnable recipe: examples/transports.py — integration boundaries validate and propagate context.

tesserix_adk.adapters.idempotency.RedisIdempotencyStore

Stability: alpha

The record in Redis, with the claim and the read in one script.

class RedisIdempotencyStore(object) {abandon(self, key: 'str', *, tenant: 'str') -> 'None'; begin(self, key: 'str', *, tenant: 'str', ttl_seconds: 'float') -> 'Claim'; forget(self, *, tenant: 'str') -> 'int'; record(self, key: 'str', *, tenant: 'str', outcome: 'str', ttl_seconds: 'float') -> 'None'}

Typed errors: None declared.

Runnable recipe: examples/transports.py — integration boundaries validate and propagate context.

tesserix_adk.adapters.idempotent_events.DEFAULT_DEDUPE_TTL_SECONDS

Stability: alpha

Convert a string or number to a floating-point number, if possible.

DEFAULT_DEDUPE_TTL_SECONDS: float

Typed errors: None declared.

Runnable recipe: examples/transports.py — integration boundaries validate and propagate context.

tesserix_adk.adapters.idempotent_events.DEFAULT_MAX_ATTEMPTS

Stability: alpha

int([x]) -> integer int(x, base=10) -> integer

DEFAULT_MAX_ATTEMPTS: int

Typed errors: None declared.

Runnable recipe: examples/transports.py — integration boundaries validate and propagate context.

tesserix_adk.adapters.idempotent_events.IdempotentConsumer

Stability: alpha

Runs a handler at most once per event, and stops retrying what never works.

class IdempotentConsumer(object) {handle(self, event: 'EventEnvelope') -> 'bool'}

Typed errors: ConfigurationError

Runnable recipe: examples/transports.py — integration boundaries validate and propagate context.

tesserix_adk.adapters.idempotent_events.dedupe_key

Stability: alpha

What one consumer group's handling of one event is recorded under.

def dedupe_key(*, group: 'str', event: 'EventEnvelope') -> 'str'

Typed errors: None declared.

Runnable recipe: examples/transports.py — integration boundaries validate and propagate context.

tesserix_adk.adapters.import_google_adk_tool

Stability: alpha

Import one Google FunctionTool through the generic kit tool boundary.

def import_google_adk_tool(source: 'object', *, policy: 'ToolImportPolicy') -> 'Tool[..., object]'

Typed errors: MissingExtraError, ToolTranslationError

Runnable recipe: examples/transports.py — integration boundaries validate and propagate context.

tesserix_adk.adapters.import_google_adk_toolset

Stability: alpha

Import Google FunctionTools and apply generic duplicate-name admission.

def import_google_adk_toolset(sources: 'Iterable[object]', *, policy: 'ToolImportPolicy', known: 'Collection[str]' = ()) -> 'tuple[Tool[..., object], ...]'

Typed errors: MissingExtraError, ToolTranslationError

Runnable recipe: examples/transports.py — integration boundaries validate and propagate context.

tesserix_adk.adapters.import_tool

Stability: alpha

Translate a callable, class tool or OpenAI function descriptor into a kit tool.

def import_tool(source: 'object', *, policy: 'ToolImportPolicy', implementation: 'Callable[..., object] | None' = None, schema: 'Mapping[str, JsonValue] | None' = None, name: 'str | None' = None, description: 'str | None' = None, context_parameter: 'str | None' = None, provenance: 'str | None' = None) -> 'Tool[..., object]'

Typed errors: ToolTranslationError

Runnable recipe: examples/transports.py — integration boundaries validate and propagate context.

tesserix_adk.adapters.import_toolset

Stability: alpha

Translate every compatible entry and collect incompatible definitions.

def import_toolset(sources: 'Iterable[ForeignTool | object]', *, policy: 'ToolImportPolicy', known: 'Collection[str]' = ()) -> 'tuple[Tool[..., object], ...]'

Typed errors: ToolTranslationError

Runnable recipe: examples/transports.py — integration boundaries validate and propagate context.

tesserix_adk.adapters.interop.ForeignTool

Stability: alpha

One toolset entry, pairing a foreign definition with its implementation.

class ForeignTool(object)

Typed errors: None declared.

Runnable recipe: examples/transports.py — integration boundaries validate and propagate context.

tesserix_adk.adapters.interop.ToolImportPolicy

Stability: alpha

Registry policy attached to every imported tool before it can be called.

class ToolImportPolicy(AdkModel)

Typed errors: None declared.

Runnable recipe: examples/transports.py — integration boundaries validate and propagate context.

tesserix_adk.adapters.interop.ToolTranslationError

Stability: alpha

A foreign definition that cannot be made safe enough to register.

class ToolTranslationError(AdkError)

Typed errors: None declared.

Runnable recipe: examples/transports.py — integration boundaries validate and propagate context.

tesserix_adk.adapters.interop.import_tool

Stability: alpha

Translate a callable, class tool or OpenAI function descriptor into a kit tool.

def import_tool(source: 'object', *, policy: 'ToolImportPolicy', implementation: 'Callable[..., object] | None' = None, schema: 'Mapping[str, JsonValue] | None' = None, name: 'str | None' = None, description: 'str | None' = None, context_parameter: 'str | None' = None, provenance: 'str | None' = None) -> 'Tool[..., object]'

Typed errors: ToolTranslationError

Runnable recipe: examples/transports.py — integration boundaries validate and propagate context.

tesserix_adk.adapters.interop.import_toolset

Stability: alpha

Translate every compatible entry and collect incompatible definitions.

def import_toolset(sources: 'Iterable[ForeignTool | object]', *, policy: 'ToolImportPolicy', known: 'Collection[str]' = ()) -> 'tuple[Tool[..., object], ...]'

Typed errors: ToolTranslationError

Runnable recipe: examples/transports.py — integration boundaries validate and propagate context.

tesserix_adk.adapters.isolation.ADAPTER_GUARANTEES

Stability: alpha

dict() -> new empty dictionary dict(mapping) -> new dictionary initialized from a mapping object's (key, value) pairs dict(iterable) -> new dictionary initialized as if via: d = {} for k, v in iterable: d[k] = v dict(**kwargs) -> new dictionary initialized with the name=value pairs in the keyword argument list. For example: dict(one=1, two=2)

ADAPTER_GUARANTEES: dict

Typed errors: None declared.

Runnable recipe: examples/transports.py — integration boundaries validate and propagate context.

tesserix_adk.adapters.isolation.ErasureSweep

Stability: alpha

What a tenant-scoped erasure found still standing afterwards.

class ErasureSweep(AdkModel)

Typed errors: None declared.

Runnable recipe: examples/transports.py — integration boundaries validate and propagate context.

tesserix_adk.adapters.isolation.IsolationGuarantee

Stability: alpha

What isolation an adapter actually provides, and where it stops.

class IsolationGuarantee(AdkModel) {statement(self) -> 'str'}

Typed errors: None declared.

Runnable recipe: examples/transports.py — integration boundaries validate and propagate context.

tesserix_adk.adapters.isolation.Isolator

Stability: alpha

The adapter-side wrapper that scopes a read and checks what comes back.

class Isolator(Generic) {read(self, operation: 'Callable[[], Awaitable[Sequence[RecordT]]]') -> 'Sequence[RecordT]'}

Typed errors: None declared.

Runnable recipe: examples/transports.py — integration boundaries validate and propagate context.

tesserix_adk.adapters.isolation.Partition

Stability: alpha

The tenant's slice of a store, derived rather than passed.

class Partition(object) {key(self, namespace: 'str', *parts: 'str') -> 'str'; only(self, items: 'Sequence[ItemT]', *, tenant_of: 'Callable[[ItemT], str]', where: 'str') -> 'Sequence[ItemT]'; pattern(self, namespace: 'str') -> 'str'; predicate(self, *, column: 'str' = 'tenant', position: 'int' = 1) -> 'tuple[str, str]'; verify(self, found: 'str', *, where: 'str') -> 'None'}

Typed errors: None declared.

Runnable recipe: examples/transports.py — integration boundaries validate and propagate context.

tesserix_adk.adapters.isolation.PartitionMechanism

Stability: alpha

How a store keeps one tenant's data away from another's.

class PartitionMechanism(StrEnum)

Typed errors: None declared.

Runnable recipe: examples/transports.py — integration boundaries validate and propagate context.

tesserix_adk.adapters.isolation.partitioned

Stability: alpha

Split work that spans tenants into one batch per tenant.

def partitioned(items: 'Iterable[ItemT]', *, tenant_of: 'Callable[[ItemT], str]') -> 'dict[str, list[ItemT]]'

Typed errors: None declared.

Runnable recipe: examples/transports.py — integration boundaries validate and propagate context.

tesserix_adk.adapters.jetstream.DEFAULT_EVENT_SUBJECT

Stability: alpha

str(object='') -> str str(bytes_or_buffer[, encoding[, errors]]) -> str

DEFAULT_EVENT_SUBJECT: str

Typed errors: None declared.

Runnable recipe: examples/transports.py — integration boundaries validate and propagate context.

tesserix_adk.adapters.jetstream.DEFAULT_STREAM_REQUIREMENT

Stability: alpha

What the stream must already be, for publishing onto it to mean anything.

DEFAULT_STREAM_REQUIREMENT: StreamRequirement

Typed errors: None declared.

Runnable recipe: examples/transports.py — integration boundaries validate and propagate context.

tesserix_adk.adapters.jetstream.DeadLetter

Stability: alpha · Kind: Protocol

Where a message that will never be handled goes, instead of round again.

class DeadLetter(Protocol) {bury(self, payload: 'bytes', *, reason: 'str', history: 'tuple[str, ...]' = ()) -> 'None'}

Typed errors: None declared.

Runnable recipe: examples/transports.py — integration boundaries validate and propagate context.

tesserix_adk.adapters.jetstream.DurableConsumer

Stability: alpha

Reads events back with explicit acks, and buries what will never be handled.

class DurableConsumer(object) {consume(self) -> 'int'}

Typed errors: None declared.

Runnable recipe: examples/transports.py — integration boundaries validate and propagate context.

tesserix_adk.adapters.jetstream.JetStreamContext

Stability: alpha · Kind: Protocol

The two methods this adapter uses from a JetStream client.

class JetStreamContext(Protocol) {publish(self, subject: 'str', payload: 'bytes', *, headers: 'Mapping[str, str] | None' = None, timeout: 'float | None' = None) -> 'PublishAck'; stream_info(self, name: 'str') -> 'Any'}

Typed errors: None declared.

Runnable recipe: examples/transports.py — integration boundaries validate and propagate context.

tesserix_adk.adapters.jetstream.JetStreamEventPublisher

Stability: alpha

Publishes envelopes onto JetStream, deduplicated by the event id.

class JetStreamEventPublisher(object) {flush(self) -> 'None'; publish(self, event: 'EventEnvelope') -> 'None'; publish_batch(self, events: 'tuple[EventEnvelope, ...]') -> 'None'; verify(self) -> 'None'}

Typed errors: None declared.

Runnable recipe: examples/transports.py — integration boundaries validate and propagate context.

tesserix_adk.adapters.jetstream.JetStreamMessage

Stability: alpha · Kind: Protocol

One delivery, and the three things a consumer may do about it.

class JetStreamMessage(Protocol) {ack(self) -> 'None'; nak(self) -> 'None'; term(self) -> 'None'}

Typed errors: None declared.

Runnable recipe: examples/transports.py — integration boundaries validate and propagate context.

tesserix_adk.adapters.jetstream.PublishAck

Stability: alpha · Kind: Protocol

What the stream says it did with a message.

class PublishAck(Protocol)

Typed errors: None declared.

Runnable recipe: examples/transports.py — integration boundaries validate and propagate context.

tesserix_adk.adapters.jetstream.StreamRequirement

Stability: alpha

What the stream must already be, for publishing onto it to mean anything.

class StreamRequirement(object)

Typed errors: None declared.

Runnable recipe: examples/transports.py — integration boundaries validate and propagate context.

tesserix_adk.adapters.jetstream.subject_for

Stability: alpha

The subject one event is published on.

def subject_for(root: 'str', *, tenant: 'str', kind: 'EventType') -> 'str'

Typed errors: ConfigurationError

Runnable recipe: examples/transports.py — integration boundaries validate and propagate context.

tesserix_adk.adapters.ledger.CoalescingLedger

Stability: alpha

A ledger that buys allowance in blocks, so not every call is a round trip.

class CoalescingLedger(object) {flush(self) -> 'None'; forget(self, tenant: 'str') -> 'WindowSpend'; read_window(self, key: 'LedgerKey') -> 'WindowSpend'; reconcile(self) -> 'int'; record_progress(self, reservation: 'Reservation', spent: 'Decimal') -> 'None'; release(self, reservation: 'Reservation') -> 'None'; reserve(self, key: 'LedgerKey', amount: 'Decimal', *, ceiling: 'Decimal', lease_seconds: 'float' = 300.0) -> 'Reservation'; settle(self, reservation: 'Reservation', actual: 'Decimal') -> 'None'}

Typed errors: None declared.

Runnable recipe: examples/transports.py — integration boundaries validate and propagate context.

tesserix_adk.adapters.ledger.DEFAULT_LEASE_SECONDS

Stability: alpha

Convert a string or number to a floating-point number, if possible.

DEFAULT_LEASE_SECONDS: float

Typed errors: None declared.

Runnable recipe: examples/transports.py — integration boundaries validate and propagate context.

tesserix_adk.adapters.ledger.InMemoryLedger

Stability: alpha

A ledger in this process. The reference semantics, and enough for one replica.

class InMemoryLedger(object) {break_with(self, failure: 'BudgetUnavailableError') -> 'None'; forget(self, tenant: 'str') -> 'WindowSpend'; read_window(self, key: 'LedgerKey') -> 'WindowSpend'; reconcile(self) -> 'int'; record_progress(self, reservation: 'Reservation', spent: 'Decimal') -> 'None'; release(self, reservation: 'Reservation') -> 'None'; reserve(self, key: 'LedgerKey', amount: 'Decimal', *, ceiling: 'Decimal', lease_seconds: 'float' = 300.0) -> 'Reservation'; settle(self, reservation: 'Reservation', actual: 'Decimal') -> 'None'}

Typed errors: None declared.

Runnable recipe: examples/transports.py — integration boundaries validate and propagate context.

tesserix_adk.adapters.ledger.PostgresLedger

Stability: alpha

The window in PostgreSQL, with every operation a single statement.

class PostgresLedger(_Shared) {ensure_schema(self) -> 'None'; forget(self, tenant: 'str') -> 'WindowSpend'; read_window(self, key: 'LedgerKey') -> 'WindowSpend'; reconcile(self) -> 'int'; record_progress(self, reservation: 'Reservation', spent: 'Decimal') -> 'None'; release(self, reservation: 'Reservation') -> 'None'; reserve(self, key: 'LedgerKey', amount: 'Decimal', *, ceiling: 'Decimal', lease_seconds: 'float' = 300.0) -> 'Reservation'; settle(self, reservation: 'Reservation', actual: 'Decimal') -> 'None'}

Typed errors: None declared.

Runnable recipe: examples/transports.py — integration boundaries validate and propagate context.

tesserix_adk.adapters.ledger.RedisClient

Stability: alpha · Kind: Protocol

The one call the Redis ledger makes, and nothing else.

class RedisClient(Protocol) {eval(self, script: 'str', numkeys: 'int', *args: 'str') -> 'Any'}

Typed errors: None declared.

Runnable recipe: examples/transports.py — integration boundaries validate and propagate context.

tesserix_adk.adapters.ledger.RedisLedger

Stability: alpha

The window in Redis, with every operation a single server-side script.

class RedisLedger(_Shared) {forget(self, tenant: 'str') -> 'WindowSpend'; read_window(self, key: 'LedgerKey') -> 'WindowSpend'; reconcile(self) -> 'int'; record_progress(self, reservation: 'Reservation', spent: 'Decimal') -> 'None'; release(self, reservation: 'Reservation') -> 'None'; reserve(self, key: 'LedgerKey', amount: 'Decimal', *, ceiling: 'Decimal', lease_seconds: 'float' = 300.0) -> 'Reservation'; settle(self, reservation: 'Reservation', actual: 'Decimal') -> 'None'}

Typed errors: None declared.

Runnable recipe: examples/transports.py — integration boundaries validate and propagate context.

tesserix_adk.adapters.ledger.SqlExecutor

Stability: alpha · Kind: Protocol

The one call the PostgreSQL ledger makes.

class SqlExecutor(Protocol) {fetch(self, statement: 'str', *args: 'Any') -> 'Sequence[Sequence[Any]]'}

Typed errors: None declared.

Runnable recipe: examples/transports.py — integration boundaries validate and propagate context.

tesserix_adk.adapters.mcp.McpClient

Stability: alpha

One MCP server, adopted into the kit's own tool contract.

class McpClient(object) {aclose(self) -> 'None'; connect(self) -> 'McpServerInfo'; discover(self, *, known: 'Collection[str]' = ()) -> 'McpDiscovery'; refresh(self, *, known: 'Collection[str]' = ()) -> 'McpDiscovery'; tools(self) -> 'tuple[Tool[..., str], ...]'}

Typed errors: None declared.

Runnable recipe: examples/transports.py — integration boundaries validate and propagate context.

tesserix_adk.adapters.mcp.McpDiscovery

Stability: alpha

What one pass over a server's tool list produced.

class McpDiscovery(object)

Typed errors: None declared.

Runnable recipe: examples/transports.py — integration boundaries validate and propagate context.

tesserix_adk.adapters.mcp.McpProtocolError

Stability: alpha

A server answered with something that is not the answer it promised.

class McpProtocolError(AdkError)

Typed errors: None declared.

Runnable recipe: examples/transports.py — integration boundaries validate and propagate context.

tesserix_adk.adapters.mcp.McpRejection

Stability: alpha

One advertised tool this process will not register, and the reason it will not.

class McpRejection(AdkModel)

Typed errors: None declared.

Runnable recipe: examples/transports.py — integration boundaries validate and propagate context.

tesserix_adk.adapters.mcp.McpSchemaError

Stability: alpha

A tool whose input schema the kit cannot hold a call to, and why.

class McpSchemaError(AdkError)

Typed errors: None declared.

Runnable recipe: examples/transports.py — integration boundaries validate and propagate context.

tesserix_adk.adapters.mcp.McpServerInfo

Stability: alpha

What a server said about itself when the session was initialised.

class McpServerInfo(AdkModel)

Typed errors: None declared.

Runnable recipe: examples/transports.py — integration boundaries validate and propagate context.

tesserix_adk.adapters.mcp.McpSession

Stability: alpha · Kind: Protocol

The vendor-neutral operations this client needs from a connected MCP server.

class McpSession(Protocol) {call_tool(self, name: 'str', arguments: 'Mapping[str, JsonValue]', *, meta: 'Mapping[str, str]', timeout_seconds: 'float') -> 'GatewayToolResult'; close(self) -> 'None'; initialize(self) -> 'McpServerInfo'; list_tools(self) -> 'tuple[McpToolDescriptor, ...]'}

Typed errors: None declared.

Runnable recipe: examples/transports.py — integration boundaries validate and propagate context.

tesserix_adk.adapters.mcp_context.AuthorisingSession

Stability: alpha

An MCP session that attributes every call and redacts what comes back.

class AuthorisingSession(object) {call_tool(self, name: 'str', arguments: 'Mapping[str, JsonValue]', *, meta: 'Mapping[str, str]', timeout_seconds: 'float') -> 'GatewayToolResult'; close(self) -> 'None'; initialize(self) -> 'McpServerInfo'; list_tools(self) -> 'tuple[McpToolDescriptor, ...]'}

Typed errors: None declared.

Runnable recipe: examples/transports.py — integration boundaries validate and propagate context.

tesserix_adk.adapters.mcp_context.CallAuthority

Stability: alpha · Kind: Protocol

Whatever decides what one MCP request may present. TenantAuthority does.

class CallAuthority(Protocol) {headers_for(self, *, server: 'str', holding_for: 'float' = Ellipsis) -> 'Mapping[str, str]'; meta_for(self, *, server: 'str', holding_for: 'float' = Ellipsis) -> 'Mapping[str, str]'; secrets_for(self, *, server: 'str') -> 'tuple[str, ...]'}

Typed errors: None declared.

Runnable recipe: examples/transports.py — integration boundaries validate and propagate context.

tesserix_adk.adapters.mcp_context.CallerContext

Stability: alpha

The run's own answer to who a call is for and where it sits in a trace.

class CallerContext(object) {headers(self) -> 'dict[str, str]'; meta(self) -> 'dict[str, str]'}

Typed errors: None declared.

Runnable recipe: examples/transports.py — integration boundaries validate and propagate context.

tesserix_adk.adapters.mcp_context.IncomingCall

Stability: alpha

What a hosted MCP server reads off a call before it does any work.

class IncomingCall(object) {bound(self) -> 'Iterator[TenantContext]'}

Typed errors: None declared.

Runnable recipe: examples/transports.py — integration boundaries validate and propagate context.

tesserix_adk.adapters.mcp_context.TenantAuthority

Stability: alpha

Per-call authority for MCP servers, keyed by the tenant and subject it was minted for.

class TenantAuthority(object) {authorised(self, *, server: 'str', holding_for: 'float' = 0.0) -> 'AuthorisedCall'; headers_for(self, *, server: 'str', holding_for: 'float' = 0.0) -> 'dict[str, str]'; meta_for(self, *, server: 'str', holding_for: 'float' = 0.0) -> 'dict[str, str]'; secrets_for(self, *, server: 'str') -> 'tuple[str, ...]'}

Typed errors: None declared.

Runnable recipe: examples/transports.py — integration boundaries validate and propagate context.

tesserix_adk.adapters.mcp_context.arriving_call

Stability: alpha

Read who an arriving MCP call is for, or refuse it.

def arriving_call(*, headers: 'Mapping[str, str] | None' = None, meta: 'Mapping[str, str] | None' = None, authenticated: 'str | None' = None) -> 'IncomingCall'

Typed errors: McpAuthError

Runnable recipe: examples/transports.py — integration boundaries validate and propagate context.

tesserix_adk.adapters.mcp_context.redacted

Stability: alpha

The same result with credential material masked out of it.

def redacted(result: 'GatewayToolResult', *, secrets: 'Iterable[str]' = ()) -> 'GatewayToolResult'

Typed errors: None declared.

Runnable recipe: examples/transports.py — integration boundaries validate and propagate context.

tesserix_adk.adapters.mcp_resilience.BreakerState

Stability: alpha

Whether this process is currently willing to reach for a server.

class BreakerState(StrEnum)

Typed errors: None declared.

Runnable recipe: examples/transports.py — integration boundaries validate and propagate context.

tesserix_adk.adapters.mcp_resilience.Degraded

Stability: alpha

One capability an agent was assembled without, and why it is not there.

class Degraded(AdkModel)

Typed errors: None declared.

Runnable recipe: examples/transports.py — integration boundaries validate and propagate context.

tesserix_adk.adapters.mcp_resilience.McpFleet

Stability: alpha

Every MCP server an agent was assembled with, and every one it was assembled without.

class McpFleet(object) {notice(self) -> 'str'}

Typed errors: None declared.

Runnable recipe: examples/transports.py — integration boundaries validate and propagate context.

tesserix_adk.adapters.mcp_resilience.McpServerUnavailableError

Stability: alpha

A capability an MCP server was to provide is not available, and why it is not.

class McpServerUnavailableError(CapabilityError)

Typed errors: None declared.

Runnable recipe: examples/transports.py — integration boundaries validate and propagate context.

tesserix_adk.adapters.mcp_resilience.ResilientSession

Stability: alpha

One MCP session with its degradation policy applied, still an McpSession.

class ResilientSession(object) {call_tool(self, name: 'str', arguments: 'Mapping[str, JsonValue]', *, meta: 'Mapping[str, str]', timeout_seconds: 'float') -> 'GatewayToolResult'; close(self) -> 'None'; initialize(self) -> 'McpServerInfo'; list_tools(self) -> 'tuple[McpToolDescriptor, ...]'}

Typed errors: None declared.

Runnable recipe: examples/transports.py — integration boundaries validate and propagate context.

tesserix_adk.adapters.mcp_resilience.ServerBreaker

Stability: alpha

One server's breaker: shut by consecutive faults, reopened by a probe.

class ServerBreaker(object) {allows(self) -> 'bool'; failed(self) -> 'None'; succeeded(self) -> 'None'}

Typed errors: None declared.

Runnable recipe: examples/transports.py — integration boundaries validate and propagate context.

tesserix_adk.adapters.mcp_resilience.ServerHealth

Stability: alpha

What one server has just done, in the terms an alert is written in.

class ServerHealth(AdkModel)

Typed errors: None declared.

Runnable recipe: examples/transports.py — integration boundaries validate and propagate context.

tesserix_adk.adapters.mcp_resilience.assembled

Stability: alpha

Adopt every server's tools, tolerating the absence of the optional ones.

def assembled(clients: 'Sequence[McpClient]', *, known: 'Collection[str]' = ()) -> 'McpFleet'

Typed errors: McpServerUnavailableError

Runnable recipe: examples/transports.py — integration boundaries validate and propagate context.

tesserix_adk.adapters.mcp_server.APPROVAL_REQUIRED

Stability: alpha

str(object='') -> str str(bytes_or_buffer[, encoding[, errors]]) -> str

APPROVAL_REQUIRED: str

Typed errors: None declared.

Runnable recipe: examples/transports.py — integration boundaries validate and propagate context.

tesserix_adk.adapters.mcp_server.ExportedSession

Stability: alpha

One caller's session: the tools it was opened with, and the calls it makes.

class ExportedSession(object) {call_tool(self, name: 'str', arguments: 'Mapping[str, JsonValue]', *, meta: 'Mapping[str, str]', timeout_seconds: 'float') -> 'GatewayToolResult'; close(self) -> 'None'; initialize(self) -> 'McpServerInfo'; list_tools(self) -> 'tuple[McpToolDescriptor, ...]'}

Typed errors: None declared.

Runnable recipe: examples/transports.py — integration boundaries validate and propagate context.

tesserix_adk.adapters.mcp_server.McpExportError

Stability: alpha

A request the published server would not serve, with nothing of the request in it.

class McpExportError(AdkError)

Typed errors: None declared.

Runnable recipe: examples/transports.py — integration boundaries validate and propagate context.

tesserix_adk.adapters.mcp_server.McpExportReason

Stability: alpha

Why a published server refused a request before any tool body ran.

class McpExportReason(StrEnum)

Typed errors: None declared.

Runnable recipe: examples/transports.py — integration boundaries validate and propagate context.

tesserix_adk.adapters.mcp_server.McpServer

Stability: alpha

The kit tools one process publishes, and the sessions callers hold them through.

class McpServer(object) {connect(self, *, headers: 'Mapping[str, str] | None' = None, meta: 'Mapping[str, str] | None' = None, authenticated: 'str | None' = None, protocol_version: 'str' = '2025-06-18') -> 'ExportedSession'; reload(self, exports: 'Sequence[str]') -> 'None'}

Typed errors: McpExportError

Runnable recipe: examples/transports.py — integration boundaries validate and propagate context.

tesserix_adk.adapters.mcp_server.published

Stability: alpha

The MCP descriptor for tool, generated from its definition rather than written.

def published(tool: 'Tool[Any, Any]') -> 'McpToolDescriptor'

Typed errors: None declared.

Runnable recipe: examples/transports.py — integration boundaries validate and propagate context.

tesserix_adk.adapters.mcp_surface.MAX_NAME_LENGTH

Stability: alpha

int([x]) -> integer int(x, base=10) -> integer

MAX_NAME_LENGTH: int

Typed errors: None declared.

Runnable recipe: examples/transports.py — integration boundaries validate and propagate context.

tesserix_adk.adapters.mcp_surface.McpSurfaceDriftError

Stability: alpha

A server's tools are no longer what the pin says they were.

class McpSurfaceDriftError(AdkError)

Typed errors: None declared.

Runnable recipe: examples/transports.py — integration boundaries validate and propagate context.

tesserix_adk.adapters.mcp_surface.McpToolConflictError

Stability: alpha

Two tools that would answer to one name, with both origins named.

class McpToolConflictError(AdkError)

Typed errors: None declared.

Runnable recipe: examples/transports.py — integration boundaries validate and propagate context.

tesserix_adk.adapters.mcp_surface.SurfaceEntry

Stability: alpha

One tool as it was resolved.

class SurfaceEntry(AdkModel)

Typed errors: None declared.

Runnable recipe: examples/transports.py — integration boundaries validate and propagate context.

tesserix_adk.adapters.mcp_surface.SurfacePin

Stability: alpha

A resolved surface written down, so a later one can be held to it.

class SurfacePin(AdkModel)

Typed errors: None declared.

Runnable recipe: examples/transports.py — integration boundaries validate and propagate context.

tesserix_adk.adapters.mcp_surface.ToolSurface

Stability: alpha

The tools one agent has, and where each of them came from.

class ToolSurface(object) {check(self, pin: 'SurfacePin') -> 'None'; names(self) -> 'tuple[str, ...]'; of_server(self, server: 'str') -> 'Self'; pin(self) -> 'SurfacePin'; report(self) -> 'str'}

Typed errors: None declared.

Runnable recipe: examples/transports.py — integration boundaries validate and propagate context.

tesserix_adk.adapters.mcp_surface.fingerprint

Stability: alpha

A digest of what a call to descriptor is held to, so a changed contract shows.

def fingerprint(descriptor: 'McpToolDescriptor') -> 'str'

Typed errors: None declared.

Runnable recipe: examples/transports.py — integration boundaries validate and propagate context.

tesserix_adk.adapters.mcp_surface.namespaced

Stability: alpha

The name a model calls tool by, worked out the same way every time.

def namespaced(tool: 'str', *, prefix: 'str' = '', limit: 'int' = 64) -> 'str'

Typed errors: ConfigurationError

Runnable recipe: examples/transports.py — integration boundaries validate and propagate context.

tesserix_adk.adapters.mcp_transport.HttpTransport

Stability: alpha

One MCP server as an HTTP endpoint, reading a JSON or an SSE reply.

class HttpTransport(object) {close(self) -> 'None'; notify(self, method: 'str', params: 'Mapping[str, JsonValue]') -> 'None'; open(self) -> 'None'; request(self, method: 'str', params: 'Mapping[str, JsonValue]', *, timeout_seconds: 'float') -> 'dict[str, JsonValue]'}

Typed errors: None declared.

Runnable recipe: examples/transports.py — integration boundaries validate and propagate context.

tesserix_adk.adapters.mcp_transport.McpTransport

Stability: alpha · Kind: Protocol

The operations a session needs from whatever carries its messages.

class McpTransport(Protocol) {close(self) -> 'None'; notify(self, method: 'str', params: 'Mapping[str, JsonValue]') -> 'None'; open(self) -> 'None'; request(self, method: 'str', params: 'Mapping[str, JsonValue]', *, timeout_seconds: 'float') -> 'dict[str, JsonValue]'}

Typed errors: None declared.

Runnable recipe: examples/transports.py — integration boundaries validate and propagate context.

tesserix_adk.adapters.mcp_transport.McpTransportError

Stability: alpha

A server could not be reached, or answered with something that was not protocol.

class McpTransportError(AdkError)

Typed errors: None declared.

Runnable recipe: examples/transports.py — integration boundaries validate and propagate context.

tesserix_adk.adapters.mcp_transport.McpTransportReason

Stability: alpha

Why a transport failed, in the terms a caller can act on.

class McpTransportReason(StrEnum)

Typed errors: None declared.

Runnable recipe: examples/transports.py — integration boundaries validate and propagate context.

tesserix_adk.adapters.mcp_transport.RecordingTransport

Stability: alpha

A transport that answers from a script and remembers what it was asked.

class RecordingTransport(object) {close(self) -> 'None'; notify(self, method: 'str', params: 'Mapping[str, JsonValue]') -> 'None'; open(self) -> 'None'; request(self, method: 'str', params: 'Mapping[str, JsonValue]', *, timeout_seconds: 'float') -> 'dict[str, JsonValue]'}

Typed errors: None declared.

Runnable recipe: examples/transports.py — integration boundaries validate and propagate context.

tesserix_adk.adapters.mcp_transport.StdioTransport

Stability: alpha

One MCP server as a child process, framed as newline-delimited JSON-RPC.

class StdioTransport(object) {close(self) -> 'None'; notify(self, method: 'str', params: 'Mapping[str, JsonValue]') -> 'None'; open(self) -> 'None'; request(self, method: 'str', params: 'Mapping[str, JsonValue]', *, timeout_seconds: 'float') -> 'dict[str, JsonValue]'}

Typed errors: None declared.

Runnable recipe: examples/transports.py — integration boundaries validate and propagate context.

tesserix_adk.adapters.mcp_transport.TransportSession

Stability: alpha

An MCP session spoken over any transport, which is where the two shapes converge.

class TransportSession(object) {call_tool(self, name: 'str', arguments: 'Mapping[str, JsonValue]', *, meta: 'Mapping[str, str]', timeout_seconds: 'float') -> 'GatewayToolResult'; close(self) -> 'None'; initialize(self) -> 'McpServerInfo'; list_tools(self) -> 'tuple[McpToolDescriptor, ...]'}

Typed errors: None declared.

Runnable recipe: examples/transports.py — integration boundaries validate and propagate context.

tesserix_adk.adapters.mcp_transport.transport_for

Stability: alpha

Build the transport the declaration asks for.

def transport_for(config: 'McpServerConfig') -> 'McpTransport'

Typed errors: ConfigurationError

Runnable recipe: examples/transports.py — integration boundaries validate and propagate context.

tesserix_adk.adapters.memory.DEFAULT_COLLECTION

Stability: alpha

str(object='') -> str str(bytes_or_buffer[, encoding[, errors]]) -> str

DEFAULT_COLLECTION: str

Typed errors: None declared.

Runnable recipe: examples/transports.py — integration boundaries validate and propagate context.

tesserix_adk.adapters.memory.DEFAULT_NAMESPACE

Stability: alpha

str(object='') -> str str(bytes_or_buffer[, encoding[, errors]]) -> str

DEFAULT_NAMESPACE: str

Typed errors: None declared.

Runnable recipe: examples/transports.py — integration boundaries validate and propagate context.

tesserix_adk.adapters.memory.DEFAULT_TABLE

Stability: alpha

str(object='') -> str str(bytes_or_buffer[, encoding[, errors]]) -> str

DEFAULT_TABLE: str

Typed errors: None declared.

Runnable recipe: examples/transports.py — integration boundaries validate and propagate context.

tesserix_adk.adapters.memory.DISTANCE_OPERATORS

Stability: alpha

dict() -> new empty dictionary dict(mapping) -> new dictionary initialized from a mapping object's (key, value) pairs dict(iterable) -> new dictionary initialized as if via: d = {} for k, v in iterable: d[k] = v dict(**kwargs) -> new dictionary initialized with the name=value pairs in the keyword argument list. For example: dict(one=1, two=2)

DISTANCE_OPERATORS: dict

Typed errors: None declared.

Runnable recipe: examples/transports.py — integration boundaries validate and propagate context.

tesserix_adk.adapters.memory.MemoryPage

Stability: alpha

One page of episodes and where the next one starts.

class MemoryPage(AdkModel)

Typed errors: None declared.

Runnable recipe: examples/transports.py — integration boundaries validate and propagate context.

tesserix_adk.adapters.memory.MemoryStoreSettings

Stability: alpha

Where a store connects and how hard it tries, from the deployment's secret manager.

class MemoryStoreSettings(AdkModel)

Typed errors: None declared.

Runnable recipe: examples/transports.py — integration boundaries validate and propagate context.

tesserix_adk.adapters.memory.PgvectorMemoryStore

Stability: alpha

Semantic recall in pgvector, ranked by the database rather than by the process.

class PgvectorMemoryStore(object) {erase(self, scope: 'MemoryScope') -> 'ErasureReceipt'; index(self, scope: 'MemoryScope', record: 'MemoryRecord') -> 'None'; search(self, scope: 'MemoryScope', query: 'MemoryQuery') -> 'tuple[MemoryHit, ...]'; verify(self) -> 'None'}

Typed errors: None declared.

Runnable recipe: examples/transports.py — integration boundaries validate and propagate context.

tesserix_adk.adapters.memory.PostgresMemoryStore

Stability: alpha

Profiles and episodes in PostgreSQL, where nothing is overwritten.

class PostgresMemoryStore(object) {belief(self, scope: 'MemoryScope', key: 'str', *, as_of: 'float | None' = None) -> 'Belief'; derivations(self, scope: 'MemoryScope', *, source_id: 'str | None' = None) -> 'tuple[Derivation, ...]'; derived(self, scope: 'MemoryScope', derivation: 'Derivation') -> 'None'; episodes(self, scope: 'MemoryScope', query: 'MemoryQuery') -> 'tuple[MemoryHit, ...]'; erase(self, scope: 'MemoryScope') -> 'ErasureReceipt'; history(self, scope: 'MemoryScope', key: 'str | None' = None) -> 'tuple[MemoryRecord, ...]'; log(self, scope: 'MemoryScope', record: 'MemoryRecord') -> 'None'; page(self, scope: 'MemoryScope', query: 'MemoryQuery', *, cursor: 'str | None' = None) -> 'MemoryPage'; profile(self, scope: 'MemoryScope', key: 'str', *, as_of: 'float | None' = None) -> 'MemoryRecord | None'; supersede(self, scope: 'MemoryScope', record: 'MemoryRecord', *, expected_version: 'int | None' = None, resolves: 'tuple[str, ...]' = ()) -> 'Supersession'; upsert(self, scope: 'MemoryScope', record: 'MemoryRecord') -> 'None'}

Typed errors: None declared.

Runnable recipe: examples/transports.py — integration boundaries validate and propagate context.

tesserix_adk.adapters.memory.RedisMemoryStore

Stability: alpha

Working memory in Redis, where expiry is the server's job and not a sweeper's.

class RedisMemoryStore(object) {append(self, scope: 'MemoryScope', key: 'str', value: 'JsonValue') -> 'int'; erase(self, scope: 'MemoryScope') -> 'ErasureReceipt'; expire(self, scope: 'MemoryScope', key: 'str', *, ttl_seconds: 'float') -> 'None'; read(self, scope: 'MemoryScope', key: 'str') -> 'MemoryRecord | None'; recall(self, scope: 'MemoryScope', keys: 'Sequence[str]') -> 'tuple[MemoryRecord, ...]'; write(self, scope: 'MemoryScope', record: 'MemoryRecord') -> 'None'}

Typed errors: None declared.

Runnable recipe: examples/transports.py — integration boundaries validate and propagate context.

tesserix_adk.adapters.memory.RoutedMemoryStore

Stability: alpha

One MemoryStore over the three stores, routing by kind.

class RoutedMemoryStore(object) {append(self, scope: 'MemoryScope', key: 'str', value: 'JsonValue') -> 'int'; belief(self, scope: 'MemoryScope', key: 'str', *, as_of: 'float | None' = None) -> 'Belief'; derivations(self, scope: 'MemoryScope', *, source_id: 'str | None' = None) -> 'tuple[Derivation, ...]'; derived(self, scope: 'MemoryScope', derivation: 'Derivation') -> 'None'; episodes(self, scope: 'MemoryScope', query: 'MemoryQuery') -> 'tuple[MemoryHit, ...]'; erase(self, scope: 'MemoryScope', *, kinds: 'tuple[MemoryKind, ...]' = (), dry_run: 'bool' = False) -> 'ErasureReceipt'; expire(self, scope: 'MemoryScope', key: 'str', *, ttl_seconds: 'float') -> 'None'; history(self, scope: 'MemoryScope', key: 'str | None' = None) -> 'tuple[MemoryRecord, ...]'; index(self, scope: 'MemoryScope', record: 'MemoryRecord') -> 'None'; log(self, scope: 'MemoryScope', record: 'MemoryRecord') -> 'None'; profile(self, scope: 'MemoryScope', key: 'str', *, as_of: 'float | None' = None) -> 'MemoryRecord | None'; read(self, scope: 'MemoryScope', key: 'str') -> 'MemoryRecord | None'; search(self, scope: 'MemoryScope', query: 'MemoryQuery') -> 'tuple[MemoryHit, ...]'; supersede(self, scope: 'MemoryScope', record: 'MemoryRecord', *, expected_version: 'int | None' = None, resolves: 'tuple[str, ...]' = ()) -> 'Supersession'; upsert(self, scope: 'MemoryScope', record: 'MemoryRecord') -> 'None'; write(self, scope: 'MemoryScope', record: 'MemoryRecord') -> 'None'}

Typed errors: None declared.

Runnable recipe: examples/transports.py — integration boundaries validate and propagate context.

tesserix_adk.adapters.namespaced

Stability: alpha

The name a model calls tool by, worked out the same way every time.

def namespaced(tool: 'str', *, prefix: 'str' = '', limit: 'int' = 64) -> 'str'

Typed errors: ConfigurationError

Runnable recipe: examples/transports.py — integration boundaries validate and propagate context.

tesserix_adk.adapters.open_graphiti

Stability: alpha

Build a GraphitiEngine for the configured backend.

def open_graphiti(settings: 'GraphSettings', *, factory: 'Callable[[str, str], GraphitiClient] | None' = None) -> 'GraphitiEngine'

Typed errors: MissingExtraError

Runnable recipe: examples/transports.py — integration boundaries validate and propagate context.

tesserix_adk.adapters.outbox.DEFAULT_OUTBOX_TABLES

Stability: alpha

Where the rows live. One database may hold more than one kit deployment.

DEFAULT_OUTBOX_TABLES: OutboxTables

Typed errors: None declared.

Runnable recipe: examples/transports.py — integration boundaries validate and propagate context.

tesserix_adk.adapters.outbox.DEFAULT_RETENTION_SECONDS

Stability: alpha

Convert a string or number to a floating-point number, if possible.

DEFAULT_RETENTION_SECONDS: float

Typed errors: None declared.

Runnable recipe: examples/transports.py — integration boundaries validate and propagate context.

tesserix_adk.adapters.outbox.EXPECTED_OUTBOX_SCHEMA

Stability: alpha

str(object='') -> str str(bytes_or_buffer[, encoding[, errors]]) -> str

EXPECTED_OUTBOX_SCHEMA: str

Typed errors: None declared.

Runnable recipe: examples/transports.py — integration boundaries validate and propagate context.

tesserix_adk.adapters.outbox.OUTBOX_SCHEMA_VERSION

Stability: alpha

int([x]) -> integer int(x, base=10) -> integer

OUTBOX_SCHEMA_VERSION: int

Typed errors: None declared.

Runnable recipe: examples/transports.py — integration boundaries validate and propagate context.

tesserix_adk.adapters.outbox.OutboxLag

Stability: alpha

How far behind the relay is, which is the only number worth alerting on.

class OutboxLag(object)

Typed errors: None declared.

Runnable recipe: examples/transports.py — integration boundaries validate and propagate context.

tesserix_adk.adapters.outbox.OutboxRelay

Stability: alpha

Moves committed rows onto the transport, in order per run, without losing any.

class OutboxRelay(object) {deliver(self) -> 'int'; lag(self) -> 'OutboxLag'; prune(self) -> 'int'}

Typed errors: None declared.

Runnable recipe: examples/transports.py — integration boundaries validate and propagate context.

tesserix_adk.adapters.outbox.OutboxTables

Stability: alpha

Where the rows live. One database may hold more than one kit deployment.

class OutboxTables(object)

Typed errors: None declared.

Runnable recipe: examples/transports.py — integration boundaries validate and propagate context.

tesserix_adk.adapters.outbox.PostgresOutbox

Stability: alpha

An EventPublisher that inserts rather than publishes.

class PostgresOutbox(object) {bound(self, session: 'SqlSession') -> 'PostgresOutbox'; publish(self, event: 'EventEnvelope') -> 'None'; publish_batch(self, events: 'tuple[EventEnvelope, ...]') -> 'None'; verify(self) -> 'None'}

Typed errors: None declared.

Runnable recipe: examples/transports.py — integration boundaries validate and propagate context.

tesserix_adk.adapters.outbox.PostgresOutboxSettings

Stability: alpha

How to reach PostgreSQL, and what this deployment needs it to promise.

class PostgresOutboxSettings(PostgresStoreSettings)

Typed errors: None declared.

Runnable recipe: examples/transports.py — integration boundaries validate and propagate context.

tesserix_adk.adapters.partitioned

Stability: alpha

Split work that spans tenants into one batch per tenant.

def partitioned(items: 'Iterable[ItemT]', *, tenant_of: 'Callable[[ItemT], str]') -> 'dict[str, list[ItemT]]'

Typed errors: None declared.

Runnable recipe: examples/transports.py — integration boundaries validate and propagate context.

tesserix_adk.adapters.payload_of

Stability: alpha

The event a consumer downstream should hear about, or None where there is not one.

def payload_of(event: 'ProgressEvent') -> 'EventPayload | None'

Typed errors: None declared.

Runnable recipe: examples/transports.py — integration boundaries validate and propagate context.

tesserix_adk.adapters.peer_tool

Stability: alpha

Offer one of a peer's skills to a model as a tool.

def peer_tool(client: 'PeerClient', skill: 'str', *, name: 'str' = '') -> 'Tool[..., dict[str, Any]]'

Typed errors: ConfigurationError, UnsupportedSchemaError

Runnable recipe: examples/transports.py — integration boundaries validate and propagate context.

tesserix_adk.adapters.peer_tools.PeerArguments

Stability: alpha

The peer's published input schema, made the contract for what a model may send.

class PeerArguments(object) {arguments(self, arguments: 'object') -> 'dict[str, Any]'}

Typed errors: None declared.

Runnable recipe: examples/transports.py — integration boundaries validate and propagate context.

tesserix_adk.adapters.peer_tools.peer_tool

Stability: alpha

Offer one of a peer's skills to a model as a tool.

def peer_tool(client: 'PeerClient', skill: 'str', *, name: 'str' = '') -> 'Tool[..., dict[str, Any]]'

Typed errors: ConfigurationError, UnsupportedSchemaError

Runnable recipe: examples/transports.py — integration boundaries validate and propagate context.

tesserix_adk.adapters.pgvector.CHUNK_SCHEMA_VERSION

Stability: alpha

int([x]) -> integer int(x, base=10) -> integer

CHUNK_SCHEMA_VERSION: int

Typed errors: None declared.

Runnable recipe: examples/transports.py — integration boundaries validate and propagate context.

tesserix_adk.adapters.pgvector.ChunkTables

Stability: alpha

Where the rows live. One database may hold more than one kit deployment.

class ChunkTables(object)

Typed errors: None declared.

Runnable recipe: examples/transports.py — integration boundaries validate and propagate context.

tesserix_adk.adapters.pgvector.DEFAULT_CHUNK_TABLES

Stability: alpha

Where the rows live. One database may hold more than one kit deployment.

DEFAULT_CHUNK_TABLES: ChunkTables

Typed errors: None declared.

Runnable recipe: examples/transports.py — integration boundaries validate and propagate context.

tesserix_adk.adapters.pgvector.EXPECTED_CHUNK_SCHEMA

Stability: alpha

str(object='') -> str str(bytes_or_buffer[, encoding[, errors]]) -> str

EXPECTED_CHUNK_SCHEMA: str

Typed errors: None declared.

Runnable recipe: examples/transports.py — integration boundaries validate and propagate context.

tesserix_adk.adapters.pgvector.PgvectorIndex

Stability: alpha

A SearchIndex over one chunk table, answering either branch or both.

class PgvectorIndex(object) {search(self, query: 'IndexQuery') -> 'Sequence[Hit]'; supports(self, branch: 'Branch') -> 'bool'; verify(self) -> 'None'}

Typed errors: None declared.

Runnable recipe: examples/transports.py — integration boundaries validate and propagate context.

tesserix_adk.adapters.pgvector.PgvectorSettings

Stability: alpha

How to reach PostgreSQL, and what this deployment needs it to promise.

class PgvectorSettings(PostgresStoreSettings)

Typed errors: None declared.

Runnable recipe: examples/transports.py — integration boundaries validate and propagate context.

tesserix_adk.adapters.portable.PortableAgentManifest

Stability: alpha

One Registry Agent artifact ready for agentic validate/apply.

class PortableAgentManifest(AdkModel) {to_dict(self) -> 'dict[str, object]'}

Typed errors: None declared.

Runnable recipe: examples/transports.py — integration boundaries validate and propagate context.

tesserix_adk.adapters.portable.PortableExportError

Stability: alpha

A framework object cannot be exported without inventing mutable metadata.

class PortableExportError(ConfigurationError)

Typed errors: None declared.

Runnable recipe: examples/transports.py — integration boundaries validate and propagate context.

tesserix_adk.adapters.portable.PortableExportOptions

Stability: alpha

Shared keyword contract for third-party framework exporters.

class PortableExportOptions(dict)

Typed errors: None declared.

Runnable recipe: examples/transports.py — integration boundaries validate and propagate context.

tesserix_adk.adapters.portable.PortableReference

Stability: alpha

An immutable Registry dependency reference.

class PortableReference(AdkModel) {rendered(self) -> 'dict[str, str]'}

Typed errors: None declared.

Runnable recipe: examples/transports.py — integration boundaries validate and propagate context.

tesserix_adk.adapters.portable.PortableRuntime

Stability: alpha

An immutable container or authenticated remote Agent runtime.

class PortableRuntime(AdkModel) {rendered(self) -> 'dict[str, object]'}

Typed errors: None declared.

Runnable recipe: examples/transports.py — integration boundaries validate and propagate context.

tesserix_adk.adapters.portable.container_runtime

Stability: alpha

Declare a digest-pinned OCI runtime.

def container_runtime(*, image: 'str', protocol: "Literal['a2a', 'http']" = 'a2a', port: 'int' = 8080, path: 'str' = '/a2a/v1', health_path: 'str' = '/healthz') -> 'PortableRuntime'

Typed errors: None declared.

Runnable recipe: examples/transports.py — integration boundaries validate and propagate context.

tesserix_adk.adapters.portable.export_a2a_agent

Stability: alpha

Export a generic or official A2A card as a runnable Registry Agent.

def export_a2a_agent(card: 'Mapping[str, object] | object', *, namespace: 'str', runtime: 'PortableRuntime', framework: 'str' = 'a2a', visibility: "Literal['private', 'internal', 'public']" = 'private') -> 'PortableAgentManifest'

Typed errors: PortableExportError

Runnable recipe: examples/transports.py — integration boundaries validate and propagate context.

tesserix_adk.adapters.portable.export_google_adk_agent

Stability: alpha

Export a Google ADK agent without importing Google ADK.

def export_google_adk_agent(agent: 'object', **kwargs: 'Unpack[PortableExportOptions]') -> 'PortableAgentManifest'

Typed errors: None declared.

Runnable recipe: examples/transports.py — integration boundaries validate and propagate context.

tesserix_adk.adapters.portable.export_langgraph_agent

Stability: alpha

Export a compiled LangGraph graph through public attributes only.

def export_langgraph_agent(graph: 'object', **kwargs: 'Unpack[PortableExportOptions]') -> 'PortableAgentManifest'

Typed errors: None declared.

Runnable recipe: examples/transports.py — integration boundaries validate and propagate context.

tesserix_adk.adapters.portable.export_oci_agent

Stability: alpha

Export an unknown framework through its digest-pinned OCI boundary.

def export_oci_agent(*, name: 'str', version: 'str', namespace: 'str', image: 'str', protocol: "Literal['a2a', 'http']" = 'a2a', port: 'int' = 8080, path: 'str' = '/a2a/v1', health_path: 'str' = '/healthz', visibility: "Literal['private', 'internal', 'public']" = 'private') -> 'PortableAgentManifest'

Typed errors: None declared.

Runnable recipe: examples/transports.py — integration boundaries validate and propagate context.

tesserix_adk.adapters.portable.export_openai_agent

Stability: alpha

Export an OpenAI Agents SDK agent without importing that SDK.

def export_openai_agent(agent: 'object', **kwargs: 'Unpack[PortableExportOptions]') -> 'PortableAgentManifest'

Typed errors: None declared.

Runnable recipe: examples/transports.py — integration boundaries validate and propagate context.

tesserix_adk.adapters.portable.export_tesserix_agent

Stability: alpha

Export a reviewed Tesserix definition without silently moving dependencies.

def export_tesserix_agent(definition: 'AgentDefinition[OutputT]', *, namespace: 'str', runtime: 'PortableRuntime', model_provider: 'str' = '', tool_versions: 'Mapping[str, str] | None' = None, skills: 'Iterable[PortableReference]' = (), mcp_servers: 'Iterable[PortableReference]' = (), prompts: 'Iterable[PortableReference]' = (), description: 'str' = '', include_system_prompt: 'bool' = False, visibility: "Literal['private', 'internal', 'public']" = 'private', labels: 'Mapping[str, str] | None' = None) -> 'PortableAgentManifest'

Typed errors: PortableExportError

Runnable recipe: examples/transports.py — integration boundaries validate and propagate context.

tesserix_adk.adapters.portable.remote_runtime

Stability: alpha

Declare an HTTPS runtime whose bearer secret is resolved by DevAI.

def remote_runtime(*, url: 'str', credential_ref: 'str', protocol: "Literal['a2a', 'http']" = 'a2a', port: 'int | None' = None, path: 'str' = '', health_path: 'str' = '') -> 'PortableRuntime'

Typed errors: None declared.

Runnable recipe: examples/transports.py — integration boundaries validate and propagate context.

tesserix_adk.adapters.published

Stability: alpha

The MCP descriptor for tool, generated from its definition rather than written.

def published(tool: 'Tool[Any, Any]') -> 'McpToolDescriptor'

Typed errors: None declared.

Runnable recipe: examples/transports.py — integration boundaries validate and propagate context.

tesserix_adk.adapters.publishing

Stability: alpha

Iterate a run's progress, publishing the events other systems act on as it goes.

def publishing(stream: 'RunStream[OutputT]', eventing: 'Eventing') -> 'AsyncIterator[ProgressEvent]'

Typed errors: EventPublishError

Runnable recipe: examples/transports.py — integration boundaries validate and propagate context.

tesserix_adk.adapters.redacted

Stability: alpha

The same result with credential material masked out of it.

def redacted(result: 'GatewayToolResult', *, secrets: 'Iterable[str]' = ()) -> 'GatewayToolResult'

Typed errors: None declared.

Runnable recipe: examples/transports.py — integration boundaries validate and propagate context.

tesserix_adk.adapters.remote_runtime

Stability: alpha

Declare an HTTPS runtime whose bearer secret is resolved by DevAI.

def remote_runtime(*, url: 'str', credential_ref: 'str', protocol: "Literal['a2a', 'http']" = 'a2a', port: 'int | None' = None, path: 'str' = '', health_path: 'str' = '') -> 'PortableRuntime'

Typed errors: None declared.

Runnable recipe: examples/transports.py — integration boundaries validate and propagate context.

tesserix_adk.adapters.sql_state.DEFAULT_TABLES

Stability: alpha

Where the rows live. One database may hold more than one kit deployment.

DEFAULT_TABLES: StateTables

Typed errors: None declared.

Runnable recipe: examples/transports.py — integration boundaries validate and propagate context.

tesserix_adk.adapters.sql_state.EXPECTED_SCHEMA

Stability: alpha

str(object='') -> str str(bytes_or_buffer[, encoding[, errors]]) -> str

EXPECTED_SCHEMA: str

Typed errors: None declared.

Runnable recipe: examples/transports.py — integration boundaries validate and propagate context.

tesserix_adk.adapters.sql_state.PostgresStateStore

Stability: alpha

Session and run state in PostgreSQL, with the version compare inside the write.

class PostgresStateStore(object) {bound(self, session: 'SqlSession') -> 'PostgresStateStore'; delete_run(self, key: 'StateKey') -> 'None'; delete_session(self, key: 'StateKey', *, cascade: 'bool' = False) -> 'None'; get_run(self, key: 'StateKey') -> 'RunRecord | None'; get_session(self, key: 'StateKey') -> 'SessionRecord | None'; list_runs(self, query: 'StateQuery') -> 'StatePage'; patch_run(self, key: 'StateKey', delta: 'StateDelta') -> 'RunRecord'; put_run(self, record: 'RunRecord') -> 'RunRecord'; put_session(self, record: 'SessionRecord') -> 'SessionRecord'; verify(self) -> 'None'}

Typed errors: None declared.

Runnable recipe: examples/transports.py — integration boundaries validate and propagate context.

tesserix_adk.adapters.sql_state.PostgresStoreSettings

Stability: alpha

How to reach PostgreSQL, and what this deployment needs it to promise.

class PostgresStoreSettings(MemoryStoreSettings)

Typed errors: None declared.

Runnable recipe: examples/transports.py — integration boundaries validate and propagate context.

tesserix_adk.adapters.sql_state.PostgresWorkQueue

Stability: alpha

A work queue in PostgreSQL, claimed with FOR UPDATE ... SKIP LOCKED.

class PostgresWorkQueue(object) {adopt(self, *, worker: 'str') -> 'tuple[WorkItem, ...]'; bound(self, session: 'SqlSession') -> 'PostgresWorkQueue'; claim(self, *, worker: 'str', queue: 'str' = 'default', lease_seconds: 'float | None' = None) -> 'WorkItem | None'; complete(self, item_id: 'str', *, tenant: 'str', worker: 'str') -> 'WorkItem'; dead_letters(self, *, tenant: 'str', limit: 'int' = 50) -> 'tuple[WorkItem, ...]'; enqueue(self, item: 'WorkItem') -> 'WorkItem'; fail(self, item_id: 'str', *, tenant: 'str', worker: 'str', error: 'str', retryable: 'bool' = True) -> 'WorkItem'; heartbeat(self, item_id: 'str', *, tenant: 'str', worker: 'str') -> 'WorkItem'; reap(self) -> 'tuple[WorkItem, ...]'; stats(self, *, queue: 'str' = 'default') -> 'QueueStats'; verify(self) -> 'None'}

Typed errors: None declared.

Runnable recipe: examples/transports.py — integration boundaries validate and propagate context.

tesserix_adk.adapters.sql_state.SCHEMA_VERSION

Stability: alpha

int([x]) -> integer int(x, base=10) -> integer

SCHEMA_VERSION: int

Typed errors: None declared.

Runnable recipe: examples/transports.py — integration boundaries validate and propagate context.

tesserix_adk.adapters.sql_state.SqlSession

Stability: alpha · Kind: Protocol

The one call these stores make.

class SqlSession(Protocol) {fetch(self, statement: 'str', *args: 'Any') -> 'Sequence[Sequence[Any]]'}

Typed errors: None declared.

Runnable recipe: examples/transports.py — integration boundaries validate and propagate context.

tesserix_adk.adapters.sql_state.SqlTransactor

Stability: alpha · Kind: Protocol

A session that can also open a transaction, which is where atomicity comes from.

class SqlTransactor(SqlSession, Protocol) {transaction(self) -> 'AbstractAsyncContextManager[SqlSession]'}

Typed errors: None declared.

Runnable recipe: examples/transports.py — integration boundaries validate and propagate context.

tesserix_adk.adapters.sql_state.StateTables

Stability: alpha

Where the rows live. One database may hold more than one kit deployment.

class StateTables(object)

Typed errors: None declared.

Runnable recipe: examples/transports.py — integration boundaries validate and propagate context.

tesserix_adk.adapters.sse_events

Stability: alpha

Frame events as server-sent events, heartbeating while the run is quiet.

def sse_events(events: 'AsyncIterator[ProgressEvent]', *, heartbeat_seconds: 'float' = 15.0, retry_milliseconds: 'int' = 3000, payload_limit_bytes: 'int' = 65536) -> 'AsyncGenerator[str]'

Typed errors: None declared.

Runnable recipe: examples/transports.py — integration boundaries validate and propagate context.

tesserix_adk.adapters.state.COUNTERS

Stability: alpha

Built-in immutable sequence.

COUNTERS: tuple

Typed errors: None declared.

Runnable recipe: examples/transports.py — integration boundaries validate and propagate context.

tesserix_adk.adapters.state.DEFAULT_QUEUE_NAMESPACE

Stability: alpha

str(object='') -> str str(bytes_or_buffer[, encoding[, errors]]) -> str

DEFAULT_QUEUE_NAMESPACE: str

Typed errors: None declared.

Runnable recipe: examples/transports.py — integration boundaries validate and propagate context.

tesserix_adk.adapters.state.DEFAULT_STATE_NAMESPACE

Stability: alpha

str(object='') -> str str(bytes_or_buffer[, encoding[, errors]]) -> str

DEFAULT_STATE_NAMESPACE: str

Typed errors: None declared.

Runnable recipe: examples/transports.py — integration boundaries validate and propagate context.

tesserix_adk.adapters.state.InspectableRedis

Stability: alpha · Kind: Protocol

The two calls these stores make: run a script, and say how the server is configured.

class InspectableRedis(Protocol) {config_get(self, pattern: 'str') -> 'Mapping[str, str]'; eval(self, script: 'str', numkeys: 'int', *args: 'str') -> 'Any'}

Typed errors: None declared.

Runnable recipe: examples/transports.py — integration boundaries validate and propagate context.

tesserix_adk.adapters.state.RedisStateStore

Stability: alpha

Session and run state in Redis, with the version compare inside the write.

class RedisStateStore(object) {delete_run(self, key: 'StateKey') -> 'None'; delete_session(self, key: 'StateKey', *, cascade: 'bool' = False) -> 'None'; get_run(self, key: 'StateKey') -> 'RunRecord | None'; get_session(self, key: 'StateKey') -> 'SessionRecord | None'; list_runs(self, query: 'StateQuery') -> 'StatePage'; patch_run(self, key: 'StateKey', delta: 'StateDelta') -> 'RunRecord'; preflight(self) -> 'None'; put_run(self, record: 'RunRecord') -> 'RunRecord'; put_session(self, record: 'SessionRecord') -> 'SessionRecord'}

Typed errors: None declared.

Runnable recipe: examples/transports.py — integration boundaries validate and propagate context.

tesserix_adk.adapters.state.RedisStoreSettings

Stability: alpha

How to reach Redis, and what this deployment needs it to promise.

class RedisStoreSettings(MemoryStoreSettings)

Typed errors: None declared.

Runnable recipe: examples/transports.py — integration boundaries validate and propagate context.

tesserix_adk.adapters.state.RedisWorkQueue

Stability: alpha

A work queue in Redis, where the lease is a sorted set and the reaper is a scan.

class RedisWorkQueue(object) {adopt(self, *, worker: 'str') -> 'tuple[WorkItem, ...]'; claim(self, *, worker: 'str', queue: 'str' = 'default', lease_seconds: 'float | None' = None) -> 'WorkItem | None'; complete(self, item_id: 'str', *, tenant: 'str', worker: 'str') -> 'WorkItem'; dead_letters(self, *, tenant: 'str', limit: 'int' = 50) -> 'tuple[WorkItem, ...]'; enqueue(self, item: 'WorkItem') -> 'WorkItem'; fail(self, item_id: 'str', *, tenant: 'str', worker: 'str', error: 'str', retryable: 'bool' = True) -> 'WorkItem'; heartbeat(self, item_id: 'str', *, tenant: 'str', worker: 'str') -> 'WorkItem'; preflight(self) -> 'None'; reap(self) -> 'tuple[WorkItem, ...]'; stats(self, *, queue: 'str' = 'default') -> 'QueueStats'}

Typed errors: None declared.

Runnable recipe: examples/transports.py — integration boundaries validate and propagate context.

tesserix_adk.adapters.subject_for

Stability: alpha

The subject one event is published on.

def subject_for(root: 'str', *, tenant: 'str', kind: 'EventType') -> 'str'

Typed errors: ConfigurationError

Runnable recipe: examples/transports.py — integration boundaries validate and propagate context.

tesserix_adk.adapters.transport.ApprovalInbox

Stability: alpha

Where a held tool call waits for a decision that arrives over the control channel.

class ApprovalInbox(object) {decide(self, decision: 'ApprovalDecision', *, tenant: 'str') -> 'None'; request(self, record: 'ApprovalRecord') -> 'ApprovalDecision'; wait_for(self, record_id: 'str') -> 'None'}

Typed errors: None declared.

Runnable recipe: examples/transports.py — integration boundaries validate and propagate context.

tesserix_adk.adapters.transport.DEFAULT_HEARTBEAT_SECONDS

Stability: alpha

Convert a string or number to a floating-point number, if possible.

DEFAULT_HEARTBEAT_SECONDS: float

Typed errors: None declared.

Runnable recipe: examples/transports.py — integration boundaries validate and propagate context.

tesserix_adk.adapters.transport.DEFAULT_PAYLOAD_LIMIT_BYTES

Stability: alpha

int([x]) -> integer int(x, base=10) -> integer

DEFAULT_PAYLOAD_LIMIT_BYTES: int

Typed errors: None declared.

Runnable recipe: examples/transports.py — integration boundaries validate and propagate context.

tesserix_adk.adapters.transport.DEFAULT_RETRY_MILLISECONDS

Stability: alpha

int([x]) -> integer int(x, base=10) -> integer

DEFAULT_RETRY_MILLISECONDS: int

Typed errors: None declared.

Runnable recipe: examples/transports.py — integration boundaries validate and propagate context.

tesserix_adk.adapters.transport.PayloadElided

Stability: alpha

An event too large for the transport, referenced rather than cut in half.

class PayloadElided(ProgressEvent)

Typed errors: None declared.

Runnable recipe: examples/transports.py — integration boundaries validate and propagate context.

tesserix_adk.adapters.transport.RunBroker

Stability: alpha

One run, driven once, readable by however many transports attach to it.

class RunBroker(Generic) {authorise(self, run_id: 'str', *, tenant: 'str') -> 'None'; cancel(self, run_id: 'str', *, tenant: 'str') -> 'None'; register(self, stream: 'RunStream[OutputT]', *, tenant: 'str') -> 'str'; run(self, run_id: 'str', *, tenant: 'str') -> 'Run[OutputT]'; subscribe(self, run_id: 'str', *, tenant: 'str', after: 'int | None' = None) -> 'AsyncGenerator[ProgressEvent]'}

Typed errors: None declared.

Runnable recipe: examples/transports.py — integration boundaries validate and propagate context.

tesserix_adk.adapters.transport.SSE_HEADERS

Stability: alpha

dict() -> new empty dictionary dict(mapping) -> new dictionary initialized from a mapping object's (key, value) pairs dict(iterable) -> new dictionary initialized as if via: d = {} for k, v in iterable: d[k] = v dict(**kwargs) -> new dictionary initialized with the name=value pairs in the keyword argument list. For example: dict(one=1, two=2)

SSE_HEADERS: dict

Typed errors: None declared.

Runnable recipe: examples/transports.py — integration boundaries validate and propagate context.

tesserix_adk.adapters.transport.StreamGap

Stability: alpha

Events a reconnecting client will never receive, said out loud.

class StreamGap(ProgressEvent)

Typed errors: None declared.

Runnable recipe: examples/transports.py — integration boundaries validate and propagate context.

tesserix_adk.adapters.transport.TransportAuthorizationError

Stability: alpha

Raised when a client asked about a run that is not its tenant's to ask about.

class TransportAuthorizationError(AdkError)

Typed errors: None declared.

Runnable recipe: examples/transports.py — integration boundaries validate and propagate context.

tesserix_adk.adapters.transport.WebSocketBridge

Stability: alpha

A run over a websocket: events out, control messages in.

class WebSocketBridge(Generic) {serve(self, connection: 'WebSocketLike', *, run_id: 'str', tenant: 'str', after: 'int | None' = None) -> 'None'}

Typed errors: None declared.

Runnable recipe: examples/transports.py — integration boundaries validate and propagate context.

tesserix_adk.adapters.transport.WebSocketLike

Stability: alpha · Kind: Protocol

The three methods a websocket needs to have. Any ASGI framework's will do.

class WebSocketLike(Protocol) {close(self, code: 'int' = 1000) -> 'None'; receive_text(self) -> 'str'; send_text(self, data: 'str') -> 'None'}

Typed errors: None declared.

Runnable recipe: examples/transports.py — integration boundaries validate and propagate context.

tesserix_adk.adapters.transport.sse_events

Stability: alpha

Frame events as server-sent events, heartbeating while the run is quiet.

def sse_events(events: 'AsyncIterator[ProgressEvent]', *, heartbeat_seconds: 'float' = 15.0, retry_milliseconds: 'int' = 3000, payload_limit_bytes: 'int' = 65536) -> 'AsyncGenerator[str]'

Typed errors: None declared.

Runnable recipe: examples/transports.py — integration boundaries validate and propagate context.

tesserix_adk.adapters.transport_for

Stability: alpha

Build the transport the declaration asks for.

def transport_for(config: 'McpServerConfig') -> 'McpTransport'

Typed errors: ConfigurationError

Runnable recipe: examples/transports.py — integration boundaries validate and propagate context.

tesserix_adk.adapters.wire_payload

Stability: alpha

The event as it may leave the process: redacted, and within the transport's limit.

def wire_payload(event: 'ProgressEvent', *, limit: 'int' = 65536) -> 'ProgressEvent'

Typed errors: None declared.

Runnable recipe: examples/transports.py — integration boundaries validate and propagate context.

tesserix_adk.adapters.wrap_agent_as_subagent

Stability: alpha

Make a foreign agent addressable from a kit supervisor roster.

def wrap_agent_as_subagent(foreign: 'Callable[[InputT, ForeignAgentContext], object]', *, name: 'str', input_type: 'type[InputT]', output_type: 'type[OutputT]', policy: 'WrappedAgentPolicy', guardrails: 'GuardrailPipeline | None' = None, provenance: 'str | None' = None) -> 'WrappedSubagent[InputT, OutputT]'

Typed errors: ConfigurationError

Runnable recipe: examples/transports.py — integration boundaries validate and propagate context.

tesserix_adk.adapters.wrap_agent_as_tool

Stability: alpha

Expose a foreign agent as a typed kit tool.

def wrap_agent_as_tool(foreign: 'Callable[[InputT, ForeignAgentContext], object]', *, name: 'str', input_type: 'type[InputT]', output_type: 'type[OutputT]', policy: 'WrappedAgentPolicy', guardrails: 'GuardrailPipeline | None' = None, description: 'str | None' = None, provenance: 'str | None' = None) -> 'Tool[..., OutputT]'

Typed errors: ConfigurationError

Runnable recipe: examples/transports.py — integration boundaries validate and propagate context.

tesserix_adk.adapters.wrap_google_adk_agent

Stability: alpha

Wrap a Google BaseAgent as a typed, budgeted kit sub-agent.

def wrap_google_adk_agent(source: 'object', *, invoke: 'GoogleAdkAgentInvoker[InputT]', input_type: 'type[InputT]', output_type: 'type[OutputT]', policy: 'WrappedAgentPolicy', guardrails: 'GuardrailPipeline | None' = None, name: 'str | None' = None) -> 'WrappedSubagent[InputT, OutputT]'

Typed errors: ConfigurationError, MissingExtraError

Runnable recipe: examples/transports.py — integration boundaries validate and propagate context.