Skip to content

Runtime API

Generated from the typed public surface.

tesserix_adk.runtime.ActivityAttempts

Stability: alpha

Runs one activity under one policy, until it answers or the policy runs out.

class ActivityAttempts(object) {run(self, call: 'Callable[[int], Awaitable[T]]', *, repeatable: 'bool' = True, idempotency_key: 'str' = '', charge: 'ActivityClass | None' = None) -> 'T'}

Typed errors: None declared.

Runnable recipe: examples/run_loop.py — all effects converge on the runtime boundary.

tesserix_adk.runtime.AddressableSubagent

Stability: alpha · Kind: Protocol

A non-native agent that a supervisor can address under the same run bounds.

class AddressableSubagent(Protocol) {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[AddressableOutputT]'}

Typed errors: None declared.

Runnable recipe: examples/run_loop.py — all effects converge on the runtime boundary.

tesserix_adk.runtime.AgentPlanner

Stability: alpha

An agent that plans, held to producing a plan and to holding nothing it could call.

class AgentPlanner(object) {plan(self, task: 'str', *, feedback: 'str' = '') -> 'Plan'}

Typed errors: ConfigurationError

Runnable recipe: examples/run_loop.py — all effects converge on the runtime boundary.

tesserix_adk.runtime.AgentRunner

Stability: alpha

Drives one agent to one terminal state.

class AgentRunner(object) {reload(self, router: 'ModelRouter') -> 'None'; resume(self, agent: 'Agent[OutputT] | AgentDefinition[OutputT]', run_id: 'str', *, tenant: 'str', user: 'str | None' = None, cancellation: 'CancellationToken | None' = None, deadline: 'Deadline | None' = None, budget: 'BudgetPolicy | None' = None) -> 'Run[OutputT]'; resume_with_decision(self, agent: 'Agent[OutputT] | AgentDefinition[OutputT]', run_id: 'str', *, tenant: 'str', token: 'str', granted: 'bool', decided_by: 'str', reason: 'str' = '', user: 'str | None' = None, cancellation: 'CancellationToken | None' = None, deadline: 'Deadline | None' = None, budget: 'BudgetPolicy | None' = None, allow_model_drift: 'bool' = False) -> 'Run[OutputT]'; run(self, agent: 'Agent[OutputT] | AgentDefinition[OutputT]', user_input: 'str', *, tenant: 'str', user: 'str | None' = None, run_id: 'str | None' = None, history: 'Iterable[Message]' = (), memory: 'Iterable[str]' = (), cancellation: 'CancellationToken | None' = None, deadline: 'Deadline | None' = None, parent: 'RunContext | None' = None, budget: 'BudgetPolicy | None' = None) -> 'Run[OutputT]'; run_sync(self, agent: 'Agent[OutputT] | AgentDefinition[OutputT]', user_input: 'str', *, tenant: 'str', user: 'str | None' = None, run_id: 'str | None' = None, history: 'Iterable[Message]' = (), memory: 'Iterable[str]' = (), cancellation: 'CancellationToken | None' = None, deadline: 'Deadline | None' = None, parent: 'RunContext | None' = None, budget: 'BudgetPolicy | None' = None) -> 'Run[OutputT]'; run_typed(self, agent: 'TypedAgent[InputT, OutputT] | TypedAgentDefinition[InputT, OutputT]', user_input: 'InputT', *, tenant: 'str', user: 'str | None' = None, run_id: 'str | None' = None, history: 'Iterable[Message]' = (), memory: 'Iterable[str]' = (), cancellation: 'CancellationToken | None' = None, deadline: 'Deadline | None' = None, parent: 'RunContext | None' = None, budget: 'BudgetPolicy | None' = None) -> 'Run[OutputT]'; run_typed_sync(self, agent: 'TypedAgent[InputT, OutputT] | TypedAgentDefinition[InputT, OutputT]', user_input: 'InputT', *, tenant: 'str', user: 'str | None' = None, run_id: 'str | None' = None, history: 'Iterable[Message]' = (), memory: 'Iterable[str]' = (), cancellation: 'CancellationToken | None' = None, deadline: 'Deadline | None' = None, parent: 'RunContext | None' = None, budget: 'BudgetPolicy | None' = None) -> 'Run[OutputT]'; stream(self, agent: 'Agent[OutputT] | AgentDefinition[OutputT]', user_input: 'str', *, tenant: 'str', user: 'str | None' = None, run_id: 'str | None' = None, history: 'Iterable[Message]' = (), memory: 'Iterable[str]' = (), cancellation: 'CancellationToken | None' = None, deadline: 'Deadline | None' = None, parent: 'RunContext | None' = None, budget: 'BudgetPolicy | None' = None, backpressure: 'Backpressure | None' = None) -> 'RunStream[OutputT]'; stream_sync(self, agent: 'Agent[OutputT] | AgentDefinition[OutputT]', user_input: 'str', *, tenant: 'str', user: 'str | None' = None, run_id: 'str | None' = None, history: 'Iterable[Message]' = (), memory: 'Iterable[str]' = (), cancellation: 'CancellationToken | None' = None, deadline: 'Deadline | None' = None, parent: 'RunContext | None' = None, budget: 'BudgetPolicy | None' = None, backpressure: 'Backpressure | None' = None) -> 'tuple[ProgressEvent, ...]'; stream_typed(self, agent: 'TypedAgent[InputT, OutputT] | TypedAgentDefinition[InputT, OutputT]', user_input: 'InputT', *, tenant: 'str', user: 'str | None' = None, run_id: 'str | None' = None, history: 'Iterable[Message]' = (), memory: 'Iterable[str]' = (), cancellation: 'CancellationToken | None' = None, deadline: 'Deadline | None' = None, parent: 'RunContext | None' = None, budget: 'BudgetPolicy | None' = None, backpressure: 'Backpressure | None' = None) -> 'RunStream[OutputT]'; stream_typed_sync(self, agent: 'TypedAgent[InputT, OutputT] | TypedAgentDefinition[InputT, OutputT]', user_input: 'InputT', *, tenant: 'str', user: 'str | None' = None, run_id: 'str | None' = None, history: 'Iterable[Message]' = (), memory: 'Iterable[str]' = (), cancellation: 'CancellationToken | None' = None, deadline: 'Deadline | None' = None, parent: 'RunContext | None' = None, budget: 'BudgetPolicy | None' = None, backpressure: 'Backpressure | None' = None) -> 'tuple[ProgressEvent, ...]'}

Typed errors: ProtocolConformanceError

Runnable recipe: examples/run_loop.py — all effects converge on the runtime boundary.

tesserix_adk.runtime.Aggregate

Stability: alpha

What a fan-out added up to, and what it was added up from.

class Aggregate(Generic)

Typed errors: None declared.

Runnable recipe: examples/run_loop.py — all effects converge on the runtime boundary.

tesserix_adk.runtime.Aggregation

Stability: alpha

A rule for turning branches into one answer, and for refusing to.

class Aggregation(ABC, Generic) {chosen(self, results: 'Sequence[BranchResult]') -> 'tuple[tuple[BranchResult, ...], str]'; value(self, chosen: 'Sequence[BranchResult]') -> 'ValueT'}

Typed errors: None declared.

Runnable recipe: examples/run_loop.py — all effects converge on the runtime boundary.

tesserix_adk.runtime.All

Stability: alpha

Every branch, or none. The default, because a missing branch is usually a bug.

class All(Aggregation) {chosen(self, results: 'Sequence[BranchResult]') -> 'tuple[tuple[BranchResult, ...], str]'; value(self, chosen: 'Sequence[BranchResult]') -> 'tuple[str, ...]'}

Typed errors: None declared.

Runnable recipe: examples/run_loop.py — all effects converge on the runtime boundary.

tesserix_adk.runtime.Ambient

Stability: alpha

Who the work in hand belongs to, carried rather than passed.

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

Typed errors: None declared.

Runnable recipe: examples/run_loop.py — all effects converge on the runtime boundary.

tesserix_adk.runtime.AnswerDelta

Stability: alpha

More of a free-text answer. Concatenating them in order gives the buffered answer.

class AnswerDelta(ProgressEvent)

Typed errors: None declared.

Runnable recipe: examples/run_loop.py — all effects converge on the runtime boundary.

tesserix_adk.runtime.ApprovalDeferred

Stability: alpha

Raised by a gate to say the answer will arrive long after this process is gone.

class ApprovalDeferred(Exception)

Typed errors: None declared.

Runnable recipe: examples/run_loop.py — all effects converge on the runtime boundary.

tesserix_adk.runtime.ApprovalLedger

Stability: alpha

The grants one run is holding, and what each of them covers.

class ApprovalLedger(object) {bind(self, record: 'ApprovalRecord') -> 'None'; spend(self, record: 'ApprovalRecord', arguments: 'Mapping[str, Any]') -> 'None'; void(self) -> 'None'}

Typed errors: None declared.

Runnable recipe: examples/run_loop.py — all effects converge on the runtime boundary.

tesserix_adk.runtime.ApprovalRequired

Stability: alpha

A call is held until a human decides. Surfaced so the queue is visible live.

class ApprovalRequired(ProgressEvent)

Typed errors: None declared.

Runnable recipe: examples/run_loop.py — all effects converge on the runtime boundary.

tesserix_adk.runtime.Assumptions

Stability: alpha

Everything the estimate rests on, in a form somebody can argue with.

class Assumptions(AdkModel)

Typed errors: None declared.

Runnable recipe: examples/run_loop.py — all effects converge on the runtime boundary.

tesserix_adk.runtime.AttemptBudget

Stability: alpha

One pool of retries, shared by every branch of a fan-out.

class AttemptBudget(object) {take(self) -> 'bool'}

Typed errors: None declared.

Runnable recipe: examples/run_loop.py — all effects converge on the runtime boundary.

tesserix_adk.runtime.AuditTrail

Stability: alpha

Turns one decision into one durable record, and refuses to lose it quietly.

class AuditTrail(object) {record(self, decided: 'AutonomyDecision | None', decision: 'AuditDecision', *, run_id: 'str', tenant: 'str', tool: 'str', arguments: 'Mapping[str, Any]', key: 'str | None' = None, user: 'str | None' = None, agent: 'str' = '', agent_version: 'str' = '', approver: 'str | None' = None, amount: 'Decimal | None' = None, reason: 'str' = '') -> 'AuditEvent'}

Typed errors: None declared.

Runnable recipe: examples/run_loop.py — all effects converge on the runtime boundary.

tesserix_adk.runtime.AutonomyGate

Stability: alpha

Answers, for one attempted tool call, whether a human has to be asked.

class AutonomyGate(object) {decide(self, *, tool: 'str', tenant: 'str', arguments: 'Mapping[str, Any]', run_id: 'str', user: 'str | None' = None, key: 'str | None' = None, agent: 'str' = '', agent_version: 'str' = '') -> 'AutonomyDecision'; record(self, decided: 'AutonomyDecision | None', decision: 'AuditDecision', *, run_id: 'str', tenant: 'str', tool: 'str', arguments: 'Mapping[str, Any]', key: 'str | None' = None, user: 'str | None' = None, agent: 'str' = '', agent_version: 'str' = '', approver: 'str | None' = None, reason: 'str' = '') -> 'None'; settle(self, key: 'str', *, happened: 'bool') -> 'None'; withdrawn(self, decided: 'AutonomyDecision') -> 'Revocation | None'}

Typed errors: None declared.

Runnable recipe: examples/run_loop.py — all effects converge on the runtime boundary.

tesserix_adk.runtime.Backpressure

Stability: alpha

What a run does when its consumer cannot keep up.

class Backpressure(object)

Typed errors: None declared.

Runnable recipe: examples/run_loop.py — all effects converge on the runtime boundary.

tesserix_adk.runtime.Branch

Stability: alpha

One piece of work in a fan-out, named so that what it contributed can be said.

class Branch(object)

Typed errors: ConfigurationError

Runnable recipe: examples/run_loop.py — all effects converge on the runtime boundary.

tesserix_adk.runtime.BranchOutcome

Stability: alpha

How one branch ended. Four states, because "not ok" is three different problems.

class BranchOutcome(StrEnum)

Typed errors: None declared.

Runnable recipe: examples/run_loop.py — all effects converge on the runtime boundary.

tesserix_adk.runtime.BranchResult

Stability: alpha

What one branch gave back, whether or not it gave back an answer.

class BranchResult(object)

Typed errors: None declared.

Runnable recipe: examples/run_loop.py — all effects converge on the runtime boundary.

tesserix_adk.runtime.CITATIONS

Stability: alpha

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

CITATIONS: str

Typed errors: None declared.

Runnable recipe: examples/run_loop.py — all effects converge on the runtime boundary.

tesserix_adk.runtime.COMPACTED

Stability: alpha

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

COMPACTED: str

Typed errors: None declared.

Runnable recipe: examples/run_loop.py — all effects converge on the runtime boundary.

tesserix_adk.runtime.Calibration

Stability: alpha

An estimate held against what the run actually cost.

class Calibration(AdkModel)

Typed errors: None declared.

Runnable recipe: examples/run_loop.py — all effects converge on the runtime boundary.

tesserix_adk.runtime.CancellationToken

Stability: alpha

A one-way switch that asks a run to stop.

class CancellationToken(object) {cancel(self, reason: 'str' = 'cancelled by the caller') -> 'None'; raise_if_cancelled(self) -> 'None'; wait(self) -> 'str'}

Typed errors: None declared.

Runnable recipe: examples/run_loop.py — all effects converge on the runtime boundary.

tesserix_adk.runtime.Checkpointer

Stability: alpha

Writes a run's frontier at the boundaries a policy names.

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

Typed errors: None declared.

Runnable recipe: examples/run_loop.py — all effects converge on the runtime boundary.

tesserix_adk.runtime.ClaimCheck

Stability: alpha

Decides which results are carried and which are checked in, and does the checking.

class ClaimCheck(object) {stored(self, result: 'ToolResult', *, tenant: 'str', run_id: 'str') -> 'ClaimTicket | None'}

Typed errors: None declared.

Runnable recipe: examples/run_loop.py — all effects converge on the runtime boundary.

tesserix_adk.runtime.Compaction

Stability: alpha

A conversation after compaction, and what compaction did to it.

class Compaction(AdkModel)

Typed errors: None declared.

Runnable recipe: examples/run_loop.py — all effects converge on the runtime boundary.

tesserix_adk.runtime.CompactionEvent

Stability: alpha

What one compaction did, in terms an audit trail can repeat.

class CompactionEvent(AdkModel) {attributes(self) -> 'dict[str, str]'}

Typed errors: None declared.

Runnable recipe: examples/run_loop.py — all effects converge on the runtime boundary.

tesserix_adk.runtime.Compensator

Stability: alpha

Takes a run's applied work back, in reverse order, without asking a model anything.

class Compensator(object) {unwind(self, run_id: 'str', *, tenant: 'str', cause: 'str', branch: 'str | None' = None) -> 'CompensatedFailure | CompensationIncomplete'}

Typed errors: None declared.

Runnable recipe: examples/run_loop.py — all effects converge on the runtime boundary.

tesserix_adk.runtime.Confidence

Stability: alpha

How much of the estimate is measurement and how much is assumption.

class Confidence(StrEnum)

Typed errors: None declared.

Runnable recipe: examples/run_loop.py — all effects converge on the runtime boundary.

tesserix_adk.runtime.ContextContribution

Stability: alpha

Retrieved context and optional stable keys used for admission deduplication.

class ContextContribution(AdkModel)

Typed errors: None declared.

Runnable recipe: examples/run_loop.py — all effects converge on the runtime boundary.

tesserix_adk.runtime.ContextContributionError

Stability: alpha

A required context contributor could not answer.

class ContextContributionError(AdkError)

Typed errors: None declared.

Runnable recipe: examples/run_loop.py — all effects converge on the runtime boundary.

tesserix_adk.runtime.ContextContributor

Stability: alpha · Kind: Protocol

A context source attached once to every run of a runner.

class ContextContributor(Protocol) {contribute(self, request: 'ContextRequest') -> 'ContextContribution'}

Typed errors: None declared.

Runnable recipe: examples/run_loop.py — all effects converge on the runtime boundary.

tesserix_adk.runtime.ContextRequest

Stability: alpha

Facts a context contributor receives before prompt assembly.

class ContextRequest(AdkModel)

Typed errors: None declared.

Runnable recipe: examples/run_loop.py — all effects converge on the runtime boundary.

tesserix_adk.runtime.ContextWindow

Stability: alpha

What the model is holding, and what leaves when there is no more room.

class ContextWindow(object) {admit(self, segment: 'Segment') -> 'bool'; fit(self) -> 'tuple[Segment, ...]'; holds(self, key: 'str') -> 'bool'; texts(self, layer: 'PromptLayer') -> 'tuple[str, ...]'}

Typed errors: ValueError

Runnable recipe: examples/run_loop.py — all effects converge on the runtime boundary.

tesserix_adk.runtime.CostEstimate

Stability: alpha

What a run is expected to cost, and how much of that is known.

class CostEstimate(AdkModel) {as_limits(self, *, headroom: 'Decimal' = Decimal('1')) -> 'BudgetLimits'; with_children(self, *children: 'CostEstimate') -> 'CostEstimate'}

Typed errors: None declared.

Runnable recipe: examples/run_loop.py — all effects converge on the runtime boundary.

tesserix_adk.runtime.DEFAULT_APPROVAL_WAIT_SECONDS

Stability: alpha

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

DEFAULT_APPROVAL_WAIT_SECONDS: float

Typed errors: None declared.

Runnable recipe: examples/run_loop.py — all effects converge on the runtime boundary.

tesserix_adk.runtime.DEFAULT_SKEW_SECONDS

Stability: alpha

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

DEFAULT_SKEW_SECONDS: float

Typed errors: None declared.

Runnable recipe: examples/run_loop.py — all effects converge on the runtime boundary.

tesserix_adk.runtime.Deadline

Stability: alpha

An instant after which a run must stop, as absolute seconds on the injected clock.

class Deadline(object) {expired(self, now: 'float') -> 'bool'; narrowed_to(self, other: 'Deadline | None') -> 'Deadline'; remaining(self, now: 'float') -> 'float'}

Typed errors: None declared.

Runnable recipe: examples/run_loop.py — all effects converge on the runtime boundary.

tesserix_adk.runtime.DeferringGate

Stability: alpha

An approval gate that stops the run instead of waiting on it.

class DeferringGate(object) {pending(self, *, tenant: 'str') -> 'tuple[SuspendedRun, ...]'; redeem(self, token: 'str', *, tenant: 'str', presented_by: 'str') -> 'SuspendedRun'; request(self, record: 'ApprovalRecord') -> 'ApprovalDecision'}

Typed errors: None declared.

Runnable recipe: examples/run_loop.py — all effects converge on the runtime boundary.

tesserix_adk.runtime.Delegation

Stability: alpha

One agent's position in a run: how deep it sits, what it holds, what it may spend.

class Delegation(object) {to(self, agent: 'str', *, tools: 'Collection[str] | None' = None, mutations: 'Collection[str] | None' = None, limits: 'DelegationLimits | None' = None) -> 'Delegation'}

Typed errors: None declared.

Runnable recipe: examples/run_loop.py — all effects converge on the runtime boundary.

tesserix_adk.runtime.DelegationLimits

Stability: alpha

How deep, how wide and how often one run may delegate.

class DelegationLimits(object) {narrowed(self, other: 'DelegationLimits') -> 'DelegationLimits'}

Typed errors: None declared.

Runnable recipe: examples/run_loop.py — all effects converge on the runtime boundary.

tesserix_adk.runtime.DelegationResult

Stability: alpha

What one delegation gave back.

class DelegationResult(Generic)

Typed errors: None declared.

Runnable recipe: examples/run_loop.py — all effects converge on the runtime boundary.

tesserix_adk.runtime.DelegationScope

Stability: alpha

What an agent may reach, and until when.

class DelegationScope(object) {holds(self, tool: 'str') -> 'bool'}

Typed errors: None declared.

Runnable recipe: examples/run_loop.py — all effects converge on the runtime boundary.

tesserix_adk.runtime.ExecutedPlan

Stability: alpha

What came of running a plan.

class ExecutedPlan(object)

Typed errors: None declared.

Runnable recipe: examples/run_loop.py — all effects converge on the runtime boundary.

tesserix_adk.runtime.FirstSuccess

Stability: alpha

The first branch that answered, in declared order rather than in finishing order.

class FirstSuccess(Aggregation) {chosen(self, results: 'Sequence[BranchResult]') -> 'tuple[tuple[BranchResult, ...], str]'; value(self, chosen: 'Sequence[BranchResult]') -> 'str'}

Typed errors: None declared.

Runnable recipe: examples/run_loop.py — all effects converge on the runtime boundary.

tesserix_adk.runtime.GuardrailDecision

Stability: alpha

A guardrail was asked, and what it said.

class GuardrailDecision(ProgressEvent)

Typed errors: None declared.

Runnable recipe: examples/run_loop.py — all effects converge on the runtime boundary.

tesserix_adk.runtime.Handoff

Stability: alpha

The record of one conversation changing hands.

class Handoff(object)

Typed errors: None declared.

Runnable recipe: examples/run_loop.py — all effects converge on the runtime boundary.

tesserix_adk.runtime.HandoffContract

Stability: alpha

What one receiver accepts when a conversation is handed to it.

class HandoffContract(object) {validated(self, state: 'Mapping[str, Any] | BaseModel') -> 'BaseModel'}

Typed errors: None declared.

Runnable recipe: examples/run_loop.py — all effects converge on the runtime boundary.

tesserix_adk.runtime.HandoffDesk

Stability: alpha

Where one agent hands a live conversation to another, under a declared contract.

class HandoffDesk(object) {hand_off(self, to: 'str', *, reason: 'str', state: 'Mapping[str, Any] | BaseModel', task: 'str', history: 'Iterable[Message]' = (), memory: 'Iterable[str]' = (), after: 'Run[Any] | None' = None) -> 'HandoffResult'}

Typed errors: ConfigurationError

Runnable recipe: examples/run_loop.py — all effects converge on the runtime boundary.

tesserix_adk.runtime.HandoffQueue

Stability: alpha · Kind: Protocol

Where a conversation waits for a person to pick it up.

class HandoffQueue(Protocol) {receive(self, handoff: 'Handoff') -> 'None'}

Typed errors: None declared.

Runnable recipe: examples/run_loop.py — all effects converge on the runtime boundary.

tesserix_adk.runtime.HandoffResult

Stability: alpha

What came of handing the conversation over.

class HandoffResult(object)

Typed errors: None declared.

Runnable recipe: examples/run_loop.py — all effects converge on the runtime boundary.

tesserix_adk.runtime.Heartbeater

Stability: alpha

Reports progress from a streaming activity, often enough and no oftener.

class Heartbeater(object) {chunk(self, tokens: 'int' = 1) -> 'None'}

Typed errors: None declared.

Runnable recipe: examples/run_loop.py — all effects converge on the runtime boundary.

tesserix_adk.runtime.HistoryStore

Stability: alpha · Kind: Protocol

Where a transcript too large to carry inline is kept.

class HistoryStore(Protocol) {fetch(self, handle: 'str', *, tenant: 'str') -> 'Sequence[Message] | None'}

Typed errors: None declared.

Runnable recipe: examples/run_loop.py — all effects converge on the runtime boundary.

tesserix_adk.runtime.InMemoryHistory

Stability: alpha

Finished runs kept in the process, for a deployment that has nowhere else yet.

class InMemoryHistory(object) {observed(self, agent_name: 'str', version: 'str') -> 'Observed | None'; record(self, run: 'Run[OutputT]') -> 'None'}

Typed errors: None declared.

Runnable recipe: examples/run_loop.py — all effects converge on the runtime boundary.

tesserix_adk.runtime.InMemoryPlanStore

Stability: alpha

A PlanStore that lives as long as the process, for tests and single-node runs.

class InMemoryPlanStore(object) {forget(self, run_id: 'str', *, tenant: 'str') -> 'None'; latest(self, run_id: 'str', *, tenant: 'str') -> 'PlanRecord | None'; put(self, record: 'PlanRecord') -> 'None'}

Typed errors: None declared.

Runnable recipe: examples/run_loop.py — all effects converge on the runtime boundary.

tesserix_adk.runtime.InMemoryReports

Stability: alpha

Owed reports in a set, for tests and single-process deployments.

class InMemoryReports(object) {delivered(self, *, tenant: 'str', action_class: 'str', run_id: 'str') -> 'None'; outstanding(self, *, tenant: 'str', action_class: 'str') -> 'bool'; owed(self, *, tenant: 'str', action_class: 'str', run_id: 'str') -> 'None'}

Typed errors: None declared.

Runnable recipe: examples/run_loop.py — all effects converge on the runtime boundary.

tesserix_adk.runtime.IterationStarted

Stability: alpha

Another model call is about to be made, counted from one.

class IterationStarted(ProgressEvent)

Typed errors: None declared.

Runnable recipe: examples/run_loop.py — all effects converge on the runtime boundary.

tesserix_adk.runtime.Leaseholder

Stability: alpha

One worker's hold on one run, for as long as the turn takes.

class Leaseholder(object) {acquire(self, run_id: 'str', *, tenant: 'str') -> 'RunLease'; keep(self, *, now: 'float') -> 'RunLease | None'; release(self) -> 'None'; renew(self) -> 'RunLease'}

Typed errors: None declared.

Runnable recipe: examples/run_loop.py — all effects converge on the runtime boundary.

tesserix_adk.runtime.LoopMonitor

Stability: alpha

Catches work that blocked the event loop rather than awaiting on it.

class LoopMonitor(object) {watching(self, what: 'str', work: 'Callable[[], Awaitable[T]]') -> 'T'}

Typed errors: None declared.

Runnable recipe: examples/run_loop.py — all effects converge on the runtime boundary.

tesserix_adk.runtime.MemoryAuditSink

Stability: alpha

Decisions in a list, for tests and single-process demos.

class MemoryAuditSink(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, ...]'}

Typed errors: None declared.

Runnable recipe: examples/run_loop.py — all effects converge on the runtime boundary.

tesserix_adk.runtime.MemoryCheckpointStore

Stability: alpha

A CheckpointStore in a dict, keyed by tenant and run.

class MemoryCheckpointStore(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/run_loop.py — all effects converge on the runtime boundary.

tesserix_adk.runtime.MemoryClaimCheckStore

Stability: alpha

A ClaimCheckStore in a dict, keyed by handle and checked against its scope.

class MemoryClaimCheckStore(object) {fetch(self, handle: 'str', *, tenant: 'str', run_id: 'str') -> 'str'; forget(self, *, tenant: 'str', run_id: 'str' = '') -> 'int'; put(self, handle: 'str', content: 'str', *, tenant: 'str', run_id: 'str', ttl_seconds: 'float') -> 'None'}

Typed errors: None declared.

Runnable recipe: examples/run_loop.py — all effects converge on the runtime boundary.

tesserix_adk.runtime.MemoryCompensationLedger

Stability: alpha

A CompensationLedger that lives and dies with the process.

class MemoryCompensationLedger(object) {forget(self, *, tenant: 'str') -> 'int'; mark(self, reversal: 'Reversal') -> 'None'; outstanding(self, run_id: 'str', *, tenant: 'str', branch: 'str | None' = None) -> 'Sequence[Applied]'; record(self, action: 'Applied') -> 'None'}

Typed errors: None declared.

Runnable recipe: examples/run_loop.py — all effects converge on the runtime boundary.

tesserix_adk.runtime.MemoryIdempotencyStore

Stability: alpha

An IdempotencyStore in a dict, keyed by tenant and key.

class MemoryIdempotencyStore(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/run_loop.py — all effects converge on the runtime boundary.

tesserix_adk.runtime.MemoryLeaseStore

Stability: alpha

A LeaseStore in a dict, deciding expiry on one clock.

class MemoryLeaseStore(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/run_loop.py — all effects converge on the runtime boundary.

tesserix_adk.runtime.MemoryStateStore

Stability: alpha

A StateStore in two dicts, keyed by tenant and id.

class MemoryStateStore(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'; put_run(self, record: 'RunRecord') -> 'RunRecord'; put_session(self, record: 'SessionRecord') -> 'SessionRecord'}

Typed errors: None declared.

Runnable recipe: examples/run_loop.py — all effects converge on the runtime boundary.

tesserix_adk.runtime.MemorySuspensionStore

Stability: alpha

A SuspensionStore in a dict, keyed by tenant and run.

class MemorySuspensionStore(object) {attempted(self, attempt: 'TokenAttempt') -> 'None'; by_token(self, token_digest: 'str', *, tenant: 'str') -> 'SuspendedRun | None'; forget(self, run_id: 'str', *, tenant: 'str') -> 'None'; get(self, run_id: 'str', *, tenant: 'str') -> 'SuspendedRun | None'; pending(self, *, tenant: 'str') -> 'tuple[SuspendedRun, ...]'; put(self, suspended: 'SuspendedRun') -> 'None'; spend(self, run_id: 'str', *, tenant: 'str') -> 'bool'}

Typed errors: None declared.

Runnable recipe: examples/run_loop.py — all effects converge on the runtime boundary.

tesserix_adk.runtime.MemoryWorkQueue

Stability: alpha

A WorkQueue in a dict, keyed by tenant and item.

class MemoryWorkQueue(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'; reap(self) -> 'tuple[WorkItem, ...]'; stats(self, *, queue: 'str' = 'default') -> 'QueueStats'}

Typed errors: None declared.

Runnable recipe: examples/run_loop.py — all effects converge on the runtime boundary.

tesserix_adk.runtime.ModelRequest

Stability: alpha

One call to a provider, as data.

class ModelRequest(AdkModel)

Typed errors: None declared.

Runnable recipe: examples/run_loop.py — all effects converge on the runtime boundary.

tesserix_adk.runtime.ModelResponse

Stability: alpha

What a provider returned for one call.

class ModelResponse(AdkModel)

Typed errors: None declared.

Runnable recipe: examples/run_loop.py — all effects converge on the runtime boundary.

tesserix_adk.runtime.Observed

Stability: alpha

What an agent's finished runs actually did.

class Observed(AdkModel)

Typed errors: None declared.

Runnable recipe: examples/run_loop.py — all effects converge on the runtime boundary.

tesserix_adk.runtime.OutputContract

Stability: alpha

What the model was asked for, and what will be accepted back.

class OutputContract(object) {parse(self, content: 'str') -> 'BaseModel'; repair_prompt(self, violation: 'SchemaViolationError') -> 'str'}

Typed errors: None declared.

Runnable recipe: examples/run_loop.py — all effects converge on the runtime boundary.

tesserix_adk.runtime.PROMPT_LAYERS

Stability: alpha

Built-in immutable sequence.

PROMPT_LAYERS: tuple

Typed errors: None declared.

Runnable recipe: examples/run_loop.py — all effects converge on the runtime boundary.

tesserix_adk.runtime.Plan

Stability: alpha

What a planner produced: an ordered set of checkable steps and the goal behind them.

class Plan(AdkModel) {step(self, id: 'str') -> 'PlanStep | None'}

Typed errors: None declared.

Runnable recipe: examples/run_loop.py — all effects converge on the runtime boundary.

tesserix_adk.runtime.PlanExecutor

Stability: alpha

Runs a validated plan, and refuses one it cannot validate.

class PlanExecutor(object) {execute(self, plan: 'Plan') -> 'ExecutedPlan'; planned(self, planner: 'Planner', task: 'str') -> 'Plan'; resume(self) -> 'ExecutedPlan'; validate(self, plan: 'Plan') -> 'Plan'}

Typed errors: ConfigurationError

Runnable recipe: examples/run_loop.py — all effects converge on the runtime boundary.

tesserix_adk.runtime.PlanRecord

Stability: alpha

A plan and how far it got, written down so another process can carry it on.

class PlanRecord(AdkModel)

Typed errors: None declared.

Runnable recipe: examples/run_loop.py — all effects converge on the runtime boundary.

tesserix_adk.runtime.PlanStep

Stability: alpha

One thing a plan will do, as a call somebody could check before it happens.

class PlanStep(AdkModel)

Typed errors: None declared.

Runnable recipe: examples/run_loop.py — all effects converge on the runtime boundary.

tesserix_adk.runtime.PlanStore

Stability: alpha · Kind: Protocol

Where a plan and its progress live between processes.

class PlanStore(Protocol) {forget(self, run_id: 'str', *, tenant: 'str') -> 'None'; latest(self, run_id: 'str', *, tenant: 'str') -> 'PlanRecord | None'; put(self, record: 'PlanRecord') -> 'None'}

Typed errors: None declared.

Runnable recipe: examples/run_loop.py — all effects converge on the runtime boundary.

tesserix_adk.runtime.Planner

Stability: alpha · Kind: Protocol

Whatever produces a plan. It reasons; it does not call anything.

class Planner(Protocol) {plan(self, task: 'str', *, feedback: 'str' = '') -> 'Plan'}

Typed errors: None declared.

Runnable recipe: examples/run_loop.py — all effects converge on the runtime boundary.

tesserix_adk.runtime.Pressure

Stability: alpha

How close a stream came to its limits, and what it did about it.

class Pressure(object)

Typed errors: None declared.

Runnable recipe: examples/run_loop.py — all effects converge on the runtime boundary.

tesserix_adk.runtime.Pricer

Stability: alpha · Kind: Protocol

What a usage comes to on a model.

class Pricer(Protocol)

Typed errors: None declared.

Runnable recipe: examples/run_loop.py — all effects converge on the runtime boundary.

tesserix_adk.runtime.ProgressEvent

Stability: alpha

One thing that happened, as a consumer watching the run sees it.

class ProgressEvent(AdkModel)

Typed errors: None declared.

Runnable recipe: examples/run_loop.py — all effects converge on the runtime boundary.

tesserix_adk.runtime.Prompt

Stability: alpha

What is actually sent for one turn, plus the identity of its cacheable prefix.

class Prompt(AdkModel)

Typed errors: None declared.

Runnable recipe: examples/run_loop.py — all effects converge on the runtime boundary.

tesserix_adk.runtime.PromptLayer

Stability: alpha

A band of the prompt, in the order the kit assembles them.

class PromptLayer(StrEnum)

Typed errors: None declared.

Runnable recipe: examples/run_loop.py — all effects converge on the runtime boundary.

tesserix_adk.runtime.Provisional

Stability: alpha

Structured content that has arrived so far, and is not a result.

class Provisional(Generic) {snapshot(self) -> 'dict[str, object] | None'}

Typed errors: None declared.

Runnable recipe: examples/run_loop.py — all effects converge on the runtime boundary.

tesserix_adk.runtime.Quorum

Stability: alpha

Every branch that answered, provided enough of them did.

class Quorum(Aggregation) {chosen(self, results: 'Sequence[BranchResult]') -> 'tuple[tuple[BranchResult, ...], str]'; value(self, chosen: 'Sequence[BranchResult]') -> 'tuple[str, ...]'}

Typed errors: ConfigurationError

Runnable recipe: examples/run_loop.py — all effects converge on the runtime boundary.

tesserix_adk.runtime.RateLimiter

Stability: alpha

A shared token bucket over requests and tokens, spending in arrival order.

class RateLimiter(object) {acquire(self, tokens: 'int' = 0) -> 'None'}

Typed errors: ConfigurationError

Runnable recipe: examples/run_loop.py — all effects converge on the runtime boundary.

tesserix_adk.runtime.Reauthoriser

Stability: alpha · Kind: Protocol

Whatever answers "does this caller still hold what they held" mid-run.

class Reauthoriser(Protocol) {reauthorise(self, identity: 'AgentIdentity', /) -> 'AgentIdentity'}

Typed errors: None declared.

Runnable recipe: examples/run_loop.py — all effects converge on the runtime boundary.

tesserix_adk.runtime.Receiver

Stability: alpha

Somewhere a conversation may be handed to, and what it accepts.

class Receiver(object)

Typed errors: ConfigurationError

Runnable recipe: examples/run_loop.py — all effects converge on the runtime boundary.

tesserix_adk.runtime.Reduce

Stability: alpha

A caller's own rule over the branches that answered.

class Reduce(Aggregation, Generic) {chosen(self, results: 'Sequence[BranchResult]') -> 'tuple[tuple[BranchResult, ...], str]'; value(self, chosen: 'Sequence[BranchResult]') -> 'ValueT'}

Typed errors: None declared.

Runnable recipe: examples/run_loop.py — all effects converge on the runtime boundary.

tesserix_adk.runtime.RefreshPolicy

Stability: alpha

When to refresh, and how hard to try.

class RefreshPolicy(AdkModel)

Typed errors: None declared.

Runnable recipe: examples/run_loop.py — all effects converge on the runtime boundary.

tesserix_adk.runtime.ReportLog

Stability: alpha · Kind: Protocol

Which act_and_report reports are owed, and whether they arrived.

class ReportLog(Protocol) {outstanding(self, *, tenant: 'str', action_class: 'str') -> 'bool'; owed(self, *, tenant: 'str', action_class: 'str', run_id: 'str') -> 'None'}

Typed errors: None declared.

Runnable recipe: examples/run_loop.py — all effects converge on the runtime boundary.

tesserix_adk.runtime.ResultFinding

Stability: alpha

One heuristic that matched, and where — never what it matched.

class ResultFinding(object)

Typed errors: None declared.

Runnable recipe: examples/run_loop.py — all effects converge on the runtime boundary.

tesserix_adk.runtime.ResultPolicy

Stability: alpha

What a tool's results are held to, and what happens when one looks like an attack.

class ResultPolicy(object)

Typed errors: None declared.

Runnable recipe: examples/run_loop.py — all effects converge on the runtime boundary.

tesserix_adk.runtime.ResumedRun

Stability: alpha

A run taken over: the frontier, the transcript, the plan and the lease held on it.

class ResumedRun(object)

Typed errors: None declared.

Runnable recipe: examples/run_loop.py — all effects converge on the runtime boundary.

tesserix_adk.runtime.Resumer

Stability: alpha

Takes a run over, in the order that makes taking it over safe.

class Resumer(object) {holder(self, worker: 'str') -> 'Leaseholder'; resume(self, run_id: 'str', *, tenant: 'str', worker: 'str') -> 'ResumedRun | None'}

Typed errors: None declared.

Runnable recipe: examples/run_loop.py — all effects converge on the runtime boundary.

tesserix_adk.runtime.RetryPlan

Stability: alpha

Applies one RetryConfig: what to retry, and how long to wait first.

class RetryPlan(object) {delay_for(self, attempt: 'int', *, retry_after: 'float | None' = None) -> 'float | None'; retryable(self, failure: 'BaseException') -> 'bool'}

Typed errors: None declared.

Runnable recipe: examples/run_loop.py — all effects converge on the runtime boundary.

tesserix_adk.runtime.ReturningTool

Stability: alpha · Kind: Protocol

The little a boundary needs to know about whatever returned a value.

class ReturningTool(Protocol)

Typed errors: None declared.

Runnable recipe: examples/run_loop.py — all effects converge on the runtime boundary.

tesserix_adk.runtime.RevocationBroadcast

Stability: alpha · Kind: Protocol

How a revocation reaches the processes that are already running.

class RevocationBroadcast(Protocol) {listen(self) -> 'AsyncIterator[Revocation]'; publish(self, revocation: 'Revocation') -> 'None'}

Typed errors: None declared.

Runnable recipe: examples/run_loop.py — all effects converge on the runtime boundary.

tesserix_adk.runtime.RevocationWatch

Stability: alpha

What this process has heard about withdrawn authority, and how lately.

class RevocationWatch(object) {confirm(self) -> 'None'; follow(self, broadcast: 'RevocationBroadcast') -> 'None'; fresh(self) -> 'bool'; heard(self, revocation: 'Revocation') -> 'None'; revoked(self, grant: 'AutonomyGrant') -> 'bool'; withdrew(self, grant_id: 'str') -> 'Revocation | None'}

Typed errors: None declared.

Runnable recipe: examples/run_loop.py — all effects converge on the runtime boundary.

tesserix_adk.runtime.Roster

Stability: alpha

Who a supervisor may hand work to, and how a task finds one of them.

class Roster(object) {matching(self, needs: 'Collection[str]') -> 'Specialist | None'}

Typed errors: ConfigurationError

Runnable recipe: examples/run_loop.py — all effects converge on the runtime boundary.

tesserix_adk.runtime.RunCancelled

Stability: alpha

The run was stopped by its caller, its transport or a deadline.

class RunCancelled(ProgressEvent)

Typed errors: None declared.

Runnable recipe: examples/run_loop.py — all effects converge on the runtime boundary.

tesserix_adk.runtime.RunCompleted

Stability: alpha

The run reached a good terminal state.

class RunCompleted(ProgressEvent)

Typed errors: None declared.

Runnable recipe: examples/run_loop.py — all effects converge on the runtime boundary.

tesserix_adk.runtime.RunCredentials

Stability: alpha

One run's credentials: refreshed ahead of expiry, re-derived when they are.

class RunCredentials(object) {call(self, operation: 'Callable[[ExpiringCredential, str], Awaitable[T]]', *, audience: 'str', needs: 'Iterable[str]', run_id: 'str', idempotency_key: 'str | None' = None) -> 'T'; for_call(self, *, audience: 'str', needs: 'Iterable[str]', run_id: 'str', agent_version: 'str' = '1.0.0') -> 'ExpiringCredential'; invalidate(self, audience: 'str') -> 'None'; suspend(self) -> 'None'}

Typed errors: None declared.

Runnable recipe: examples/run_loop.py — all effects converge on the runtime boundary.

tesserix_adk.runtime.RunFailed

Stability: alpha

The run ended badly, naming the failure rather than the symptom.

class RunFailed(ProgressEvent)

Typed errors: None declared.

Runnable recipe: examples/run_loop.py — all effects converge on the runtime boundary.

tesserix_adk.runtime.RunFingerprint

Stability: alpha

A canonical summary of one provider call, field by field.

class RunFingerprint(AdkModel) {diff(self, other: 'RunFingerprint') -> 'tuple[str, ...]'}

Typed errors: None declared.

Runnable recipe: examples/run_loop.py — all effects converge on the runtime boundary.

tesserix_adk.runtime.RunHistory

Stability: alpha · Kind: Protocol

Where finished runs are kept, in whatever store a deployment already has.

class RunHistory(Protocol) {observed(self, agent_name: 'str', version: 'str') -> 'Observed | None'}

Typed errors: None declared.

Runnable recipe: examples/run_loop.py — all effects converge on the runtime boundary.

tesserix_adk.runtime.RunStarted

Stability: alpha

The run is live. Always first.

class RunStarted(ProgressEvent)

Typed errors: None declared.

Runnable recipe: examples/run_loop.py — all effects converge on the runtime boundary.

tesserix_adk.runtime.RunStream

Stability: alpha

One run, watched while it happens.

class RunStream(Generic) {aclose(self) -> 'None'}

Typed errors: None declared.

Runnable recipe: examples/run_loop.py — all effects converge on the runtime boundary.

tesserix_adk.runtime.Scope

Stability: alpha

Whose spend the estimate covers.

class Scope(StrEnum)

Typed errors: None declared.

Runnable recipe: examples/run_loop.py — all effects converge on the runtime boundary.

tesserix_adk.runtime.Segment

Stability: alpha

One admitted piece of context.

class Segment(AdkModel)

Typed errors: None declared.

Runnable recipe: examples/run_loop.py — all effects converge on the runtime boundary.

tesserix_adk.runtime.SequenceCheck

Stability: alpha

Tracks one run's numbering, so a consumer can see what it lost.

class SequenceCheck(object) {accept(self, event: 'ProgressEvent') -> 'bool'}

Typed errors: None declared.

Runnable recipe: examples/run_loop.py — all effects converge on the runtime boundary.

tesserix_adk.runtime.Specialist

Stability: alpha

One agent a supervisor may hand work to, and what it declared it can do.

class Specialist(object)

Typed errors: None declared.

Runnable recipe: examples/run_loop.py — all effects converge on the runtime boundary.

tesserix_adk.runtime.Spread

Stability: alpha

A distribution reduced to the three numbers an estimate needs.

class Spread(AdkModel)

Typed errors: None declared.

Runnable recipe: examples/run_loop.py — all effects converge on the runtime boundary.

tesserix_adk.runtime.StepResult

Stability: alpha

What one step did, in the form a record and a resume both read.

class StepResult(AdkModel)

Typed errors: None declared.

Runnable recipe: examples/run_loop.py — all effects converge on the runtime boundary.

tesserix_adk.runtime.StructuredDelta

Stability: alpha

More of a structured answer, as the JSON text arrives.

class StructuredDelta(ProgressEvent)

Typed errors: None declared.

Runnable recipe: examples/run_loop.py — all effects converge on the runtime boundary.

tesserix_adk.runtime.Summariser

Stability: alpha · Kind: Protocol

Writes one message standing for a span of turns.

class Summariser(Protocol)

Typed errors: None declared.

Runnable recipe: examples/run_loop.py — all effects converge on the runtime boundary.

tesserix_adk.runtime.Supervisor

Stability: alpha

One agent handing work to workers that can never hold or spend more than it does.

class Supervisor(object) {cancel(self, reason: 'str' = 'the supervisor was cancelled') -> 'None'; delegate(self, task: 'str', *, needs: 'Collection[str]', budget: 'BudgetLimits | None' = None, writes: 'str | None' = None, fatal: 'bool' = False, run_id: 'str | None' = None) -> 'DelegationResult[Any]'}

Typed errors: None declared.

Runnable recipe: examples/run_loop.py — all effects converge on the runtime boundary.

tesserix_adk.runtime.SystemClock

Stability: alpha

Wall-clock time, for callers that did not inject one.

class SystemClock(object) {now(self) -> 'float'; sleep(self, seconds: 'float') -> 'None'}

Typed errors: None declared.

Runnable recipe: examples/run_loop.py — all effects converge on the runtime boundary.

tesserix_adk.runtime.TIMEOUT_IDENTITY

Stability: alpha

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

TIMEOUT_IDENTITY: str

Typed errors: None declared.

Runnable recipe: examples/run_loop.py — all effects converge on the runtime boundary.

tesserix_adk.runtime.Tokenizer

Stability: alpha · Kind: Protocol

Counts the tokens in a string, by whatever rule the model behind it uses.

class Tokenizer(Protocol)

Typed errors: None declared.

Runnable recipe: examples/run_loop.py — all effects converge on the runtime boundary.

tesserix_adk.runtime.ToolCallFailed

Stability: alpha

A tool call did not return a result, and why.

class ToolCallFailed(ProgressEvent)

Typed errors: None declared.

Runnable recipe: examples/run_loop.py — all effects converge on the runtime boundary.

tesserix_adk.runtime.ToolCallFinished

Stability: alpha

A tool returned.

class ToolCallFinished(ProgressEvent)

Typed errors: None declared.

Runnable recipe: examples/run_loop.py — all effects converge on the runtime boundary.

tesserix_adk.runtime.ToolCallIndeterminate

Stability: alpha

A tool was stopped after dispatch, so whether its effect landed is unknown.

class ToolCallIndeterminate(ProgressEvent)

Typed errors: None declared.

Runnable recipe: examples/run_loop.py — all effects converge on the runtime boundary.

tesserix_adk.runtime.ToolCallStarted

Stability: alpha

A tool call cleared policy and is about to run.

class ToolCallStarted(ProgressEvent)

Typed errors: None declared.

Runnable recipe: examples/run_loop.py — all effects converge on the runtime boundary.

tesserix_adk.runtime.ToolContract

Stability: alpha

What one tool takes, and whether taking it back is possible.

class ToolContract(object) {validated(self, arguments: 'Mapping[str, Any]') -> 'BaseModel'}

Typed errors: None declared.

Runnable recipe: examples/run_loop.py — all effects converge on the runtime boundary.

tesserix_adk.runtime.ToolDeclaration

Stability: alpha

A tool as the model is told about it.

class ToolDeclaration(AdkModel)

Typed errors: None declared.

Runnable recipe: examples/run_loop.py — all effects converge on the runtime boundary.

tesserix_adk.runtime.ToolResult

Stability: alpha

A validated tool result, and everything needed to read it as data.

class ToolResult(object) {rendered(self) -> 'str'}

Typed errors: None declared.

Runnable recipe: examples/run_loop.py — all effects converge on the runtime boundary.

tesserix_adk.runtime.ToolResultBoundary

Stability: alpha

The one place a tool's return value becomes something a model may read.

class ToolResultBoundary(object) {checked(self, tool: 'ReturningTool', value: 'object', *, tenant: 'str' = '') -> 'ToolResult'}

Typed errors: None declared.

Runnable recipe: examples/run_loop.py — all effects converge on the runtime boundary.

tesserix_adk.runtime.TransportGate

Stability: alpha

An ApprovalGate that asks over a transport and holds the call for the answer.

class TransportGate(object) {abandon(self, record_id: 'str', *, why: 'str') -> 'None'; decide(self, decision: 'ApprovalDecision') -> 'bool'; request(self, record: 'ApprovalRecord') -> 'ApprovalDecision'}

Typed errors: None declared.

Runnable recipe: examples/run_loop.py — all effects converge on the runtime boundary.

tesserix_adk.runtime.UsageUpdated

Stability: alpha

What the run has consumed so far.

class UsageUpdated(ProgressEvent)

Typed errors: None declared.

Runnable recipe: examples/run_loop.py — all effects converge on the runtime boundary.

tesserix_adk.runtime.WorkerPool

Stability: alpha

Where a blocking body runs, so that it is not run on the event loop.

class WorkerPool(object) {call(self, what: 'str', body: 'Callable[[], T]') -> 'T'; close(self) -> 'None'}

Typed errors: None declared.

Runnable recipe: examples/run_loop.py — all effects converge on the runtime boundary.

tesserix_adk.runtime.Workers

Stability: alpha

How many blocking bodies may run at once, and how long one may wait for a turn.

class Workers(object)

Typed errors: ValueError

Runnable recipe: examples/run_loop.py — all effects converge on the runtime boundary.

tesserix_adk.runtime.activities.ActivityAttempts

Stability: alpha

Runs one activity under one policy, until it answers or the policy runs out.

class ActivityAttempts(object) {run(self, call: 'Callable[[int], Awaitable[T]]', *, repeatable: 'bool' = True, idempotency_key: 'str' = '', charge: 'ActivityClass | None' = None) -> 'T'}

Typed errors: None declared.

Runnable recipe: examples/run_loop.py — all effects converge on the runtime boundary.

tesserix_adk.runtime.activities.AttemptBudget

Stability: alpha

One pool of retries, shared by every branch of a fan-out.

class AttemptBudget(object) {take(self) -> 'bool'}

Typed errors: None declared.

Runnable recipe: examples/run_loop.py — all effects converge on the runtime boundary.

tesserix_adk.runtime.activities.Heartbeater

Stability: alpha

Reports progress from a streaming activity, often enough and no oftener.

class Heartbeater(object) {chunk(self, tokens: 'int' = 1) -> 'None'}

Typed errors: None declared.

Runnable recipe: examples/run_loop.py — all effects converge on the runtime boundary.

tesserix_adk.runtime.affordable

Stability: alpha

Whether limits has room for estimate, checked against its high case.

def affordable(estimate: 'CostEstimate', limits: 'BudgetLimits') -> 'BudgetDecision'

Typed errors: None declared.

Runnable recipe: examples/run_loop.py — all effects converge on the runtime boundary.

tesserix_adk.runtime.approval_for

Stability: alpha

The estimate as something a human can be asked to approve.

def approval_for(estimate: 'CostEstimate', agent: 'Agent[OutputT]', *, run_id: 'str', tenant: 'str', requested_at: 'float' = 0.0) -> 'ApprovalRecord'

Typed errors: None declared.

Runnable recipe: examples/run_loop.py — all effects converge on the runtime boundary.

tesserix_adk.runtime.approvals.ApprovalLedger

Stability: alpha

The grants one run is holding, and what each of them covers.

class ApprovalLedger(object) {bind(self, record: 'ApprovalRecord') -> 'None'; spend(self, record: 'ApprovalRecord', arguments: 'Mapping[str, Any]') -> 'None'; void(self) -> 'None'}

Typed errors: None declared.

Runnable recipe: examples/run_loop.py — all effects converge on the runtime boundary.

tesserix_adk.runtime.approvals.DEFAULT_APPROVAL_WAIT_SECONDS

Stability: alpha

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

DEFAULT_APPROVAL_WAIT_SECONDS: float

Typed errors: None declared.

Runnable recipe: examples/run_loop.py — all effects converge on the runtime boundary.

tesserix_adk.runtime.approvals.TIMEOUT_IDENTITY

Stability: alpha

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

TIMEOUT_IDENTITY: str

Typed errors: None declared.

Runnable recipe: examples/run_loop.py — all effects converge on the runtime boundary.

tesserix_adk.runtime.approvals.TransportGate

Stability: alpha

An ApprovalGate that asks over a transport and holds the call for the answer.

class TransportGate(object) {abandon(self, record_id: 'str', *, why: 'str') -> 'None'; decide(self, decision: 'ApprovalDecision') -> 'bool'; request(self, record: 'ApprovalRecord') -> 'ApprovalDecision'}

Typed errors: None declared.

Runnable recipe: examples/run_loop.py — all effects converge on the runtime boundary.

tesserix_adk.runtime.approvals.self_granted

Stability: alpha

Whether the answer names the agent that asked the question.

def self_granted(record: 'ApprovalRecord', decision: 'ApprovalDecision') -> 'bool'

Typed errors: None declared.

Runnable recipe: examples/run_loop.py — all effects converge on the runtime boundary.

tesserix_adk.runtime.approximate_tokens

Stability: alpha

Estimate the tokens in text at four characters each.

def approximate_tokens(text: 'str') -> 'int'

Typed errors: None declared.

Runnable recipe: examples/run_loop.py — all effects converge on the runtime boundary.

tesserix_adk.runtime.assemble_prompt

Stability: alpha

Compose one turn's prompt in the documented order.

def assemble_prompt(agent: 'Agent[Any]', user_input: 'str', *, history: 'Iterable[Message]' = (), pinned: 'Iterable[str]' = (), retrieved: 'Iterable[str]' = (), tools: 'Iterable[ToolDeclaration]' = (), output: 'OutputContract | None' = None, tokenizer: 'Tokenizer | None' = None) -> 'Prompt'

Typed errors: ValueError

Runnable recipe: examples/run_loop.py — all effects converge on the runtime boundary.

tesserix_adk.runtime.audit.AuditTrail

Stability: alpha

Turns one decision into one durable record, and refuses to lose it quietly.

class AuditTrail(object) {record(self, decided: 'AutonomyDecision | None', decision: 'AuditDecision', *, run_id: 'str', tenant: 'str', tool: 'str', arguments: 'Mapping[str, Any]', key: 'str | None' = None, user: 'str | None' = None, agent: 'str' = '', agent_version: 'str' = '', approver: 'str | None' = None, amount: 'Decimal | None' = None, reason: 'str' = '') -> 'AuditEvent'}

Typed errors: None declared.

Runnable recipe: examples/run_loop.py — all effects converge on the runtime boundary.

tesserix_adk.runtime.audit.MemoryAuditSink

Stability: alpha

Decisions in a list, for tests and single-process demos.

class MemoryAuditSink(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, ...]'}

Typed errors: None declared.

Runnable recipe: examples/run_loop.py — all effects converge on the runtime boundary.

tesserix_adk.runtime.autonomy.AutonomyGate

Stability: alpha

Answers, for one attempted tool call, whether a human has to be asked.

class AutonomyGate(object) {decide(self, *, tool: 'str', tenant: 'str', arguments: 'Mapping[str, Any]', run_id: 'str', user: 'str | None' = None, key: 'str | None' = None, agent: 'str' = '', agent_version: 'str' = '') -> 'AutonomyDecision'; record(self, decided: 'AutonomyDecision | None', decision: 'AuditDecision', *, run_id: 'str', tenant: 'str', tool: 'str', arguments: 'Mapping[str, Any]', key: 'str | None' = None, user: 'str | None' = None, agent: 'str' = '', agent_version: 'str' = '', approver: 'str | None' = None, reason: 'str' = '') -> 'None'; settle(self, key: 'str', *, happened: 'bool') -> 'None'; withdrawn(self, decided: 'AutonomyDecision') -> 'Revocation | None'}

Typed errors: None declared.

Runnable recipe: examples/run_loop.py — all effects converge on the runtime boundary.

tesserix_adk.runtime.autonomy.InMemoryReports

Stability: alpha

Owed reports in a set, for tests and single-process deployments.

class InMemoryReports(object) {delivered(self, *, tenant: 'str', action_class: 'str', run_id: 'str') -> 'None'; outstanding(self, *, tenant: 'str', action_class: 'str') -> 'bool'; owed(self, *, tenant: 'str', action_class: 'str', run_id: 'str') -> 'None'}

Typed errors: None declared.

Runnable recipe: examples/run_loop.py — all effects converge on the runtime boundary.

tesserix_adk.runtime.autonomy.ReportLog

Stability: alpha · Kind: Protocol

Which act_and_report reports are owed, and whether they arrived.

class ReportLog(Protocol) {outstanding(self, *, tenant: 'str', action_class: 'str') -> 'bool'; owed(self, *, tenant: 'str', action_class: 'str', run_id: 'str') -> 'None'}

Typed errors: None declared.

Runnable recipe: examples/run_loop.py — all effects converge on the runtime boundary.

tesserix_adk.runtime.autonomy.RevocationBroadcast

Stability: alpha · Kind: Protocol

How a revocation reaches the processes that are already running.

class RevocationBroadcast(Protocol) {listen(self) -> 'AsyncIterator[Revocation]'; publish(self, revocation: 'Revocation') -> 'None'}

Typed errors: None declared.

Runnable recipe: examples/run_loop.py — all effects converge on the runtime boundary.

tesserix_adk.runtime.autonomy.RevocationWatch

Stability: alpha

What this process has heard about withdrawn authority, and how lately.

class RevocationWatch(object) {confirm(self) -> 'None'; follow(self, broadcast: 'RevocationBroadcast') -> 'None'; fresh(self) -> 'bool'; heard(self, revocation: 'Revocation') -> 'None'; revoked(self, grant: 'AutonomyGrant') -> 'bool'; withdrew(self, grant_id: 'str') -> 'Revocation | None'}

Typed errors: None declared.

Runnable recipe: examples/run_loop.py — all effects converge on the runtime boundary.

tesserix_adk.runtime.blocking.Ambient

Stability: alpha

Who the work in hand belongs to, carried rather than passed.

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

Typed errors: None declared.

Runnable recipe: examples/run_loop.py — all effects converge on the runtime boundary.

tesserix_adk.runtime.blocking.LoopMonitor

Stability: alpha

Catches work that blocked the event loop rather than awaiting on it.

class LoopMonitor(object) {watching(self, what: 'str', work: 'Callable[[], Awaitable[T]]') -> 'T'}

Typed errors: None declared.

Runnable recipe: examples/run_loop.py — all effects converge on the runtime boundary.

tesserix_adk.runtime.blocking.WorkerPool

Stability: alpha

Where a blocking body runs, so that it is not run on the event loop.

class WorkerPool(object) {call(self, what: 'str', body: 'Callable[[], T]') -> 'T'; close(self) -> 'None'}

Typed errors: None declared.

Runnable recipe: examples/run_loop.py — all effects converge on the runtime boundary.

tesserix_adk.runtime.blocking.Workers

Stability: alpha

How many blocking bodies may run at once, and how long one may wait for a turn.

class Workers(object)

Typed errors: ValueError

Runnable recipe: examples/run_loop.py — all effects converge on the runtime boundary.

tesserix_adk.runtime.blocking.carrying

Stability: alpha

Bind ambient for the duration of the block, restoring what was there before.

def carrying(ambient: 'Ambient') -> 'Iterator[None]'

Typed errors: None declared.

Runnable recipe: examples/run_loop.py — all effects converge on the runtime boundary.

tesserix_adk.runtime.blocking.current_ambient

Stability: alpha

Return the ambient of the work in hand, or None outside a run.

def current_ambient() -> 'Ambient | None'

Typed errors: None declared.

Runnable recipe: examples/run_loop.py — all effects converge on the runtime boundary.

tesserix_adk.runtime.blocking.drive

Stability: alpha

Run work() to completion from a caller that has no event loop.

def drive(work: 'Callable[[], Awaitable[T]]', *, sync_name: 'str', async_name: 'str') -> 'T'

Typed errors: RunningLoopError

Runnable recipe: examples/run_loop.py — all effects converge on the runtime boundary.

tesserix_adk.runtime.budgeted_stream

Stability: alpha

Pass events through, charging each reported total against budget.

def budgeted_stream(events: 'AsyncIterator[StreamEvent]', budget: 'BudgetPolicy') -> 'AsyncIterator[StreamEvent]'

Typed errors: BudgetExceededError, BudgetUnavailableError

Runnable recipe: examples/run_loop.py — all effects converge on the runtime boundary.

tesserix_adk.runtime.calibrate

Stability: alpha

Hold estimate against what run actually cost.

def calibrate(estimate: 'CostEstimate', run: 'Run[OutputT]') -> 'Calibration'

Typed errors: None declared.

Runnable recipe: examples/run_loop.py — all effects converge on the runtime boundary.

tesserix_adk.runtime.cancellation.CancellationToken

Stability: alpha

A one-way switch that asks a run to stop.

class CancellationToken(object) {cancel(self, reason: 'str' = 'cancelled by the caller') -> 'None'; raise_if_cancelled(self) -> 'None'; wait(self) -> 'str'}

Typed errors: None declared.

Runnable recipe: examples/run_loop.py — all effects converge on the runtime boundary.

tesserix_adk.runtime.cancellation.Deadline

Stability: alpha

An instant after which a run must stop, as absolute seconds on the injected clock.

class Deadline(object) {expired(self, now: 'float') -> 'bool'; narrowed_to(self, other: 'Deadline | None') -> 'Deadline'; remaining(self, now: 'float') -> 'float'}

Typed errors: None declared.

Runnable recipe: examples/run_loop.py — all effects converge on the runtime boundary.

tesserix_adk.runtime.canonical_digest

Stability: alpha

SHA-256 over value serialised key-order independently.

def canonical_digest(value: 'Any') -> 'str'

Typed errors: None declared.

Runnable recipe: examples/run_loop.py — all effects converge on the runtime boundary.

tesserix_adk.runtime.carrying

Stability: alpha

Bind ambient for the duration of the block, restoring what was there before.

def carrying(ambient: 'Ambient') -> 'Iterator[None]'

Typed errors: None declared.

Runnable recipe: examples/run_loop.py — all effects converge on the runtime boundary.

tesserix_adk.runtime.checkpoint.Checkpointer

Stability: alpha

Writes a run's frontier at the boundaries a policy names.

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

Typed errors: None declared.

Runnable recipe: examples/run_loop.py — all effects converge on the runtime boundary.

tesserix_adk.runtime.checkpoint.MemoryCheckpointStore

Stability: alpha

A CheckpointStore in a dict, keyed by tenant and run.

class MemoryCheckpointStore(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/run_loop.py — all effects converge on the runtime boundary.

tesserix_adk.runtime.checkpoint.claim_resume

Stability: alpha

Take exclusive charge of resuming run_id, or refuse because someone else has.

def claim_resume(run_id: 'str', *, tenant: 'str', idempotency: 'IdempotencyStore', ttl_seconds: 'float | None' = None) -> 'None'

Typed errors: ResumeConflictError

Runnable recipe: examples/run_loop.py — all effects converge on the runtime boundary.

tesserix_adk.runtime.checkpoint.plan_resume

Stability: alpha

Work out what carrying checkpoint on would involve, without doing any of it.

def plan_resume(checkpoint: 'Checkpoint', idempotency: 'IdempotencyStore | None' = None) -> 'ResumePlan'

Typed errors: None declared.

Runnable recipe: examples/run_loop.py — all effects converge on the runtime boundary.

tesserix_adk.runtime.checkpoint.refuse_if_undecidable

Stability: alpha

Stop before a resume that would have to guess whether a call already happened.

def refuse_if_undecidable(plan: 'ResumePlan') -> 'None'

Typed errors: IndeterminateToolCallError

Runnable recipe: examples/run_loop.py — all effects converge on the runtime boundary.

tesserix_adk.runtime.checkpoint.scrubbed

Stability: alpha

Return checkpoint with credential-shaped values masked, ready to persist.

def scrubbed(checkpoint: 'Checkpoint', extra_patterns: 'Sequence[str]' = ()) -> 'Checkpoint'

Typed errors: None declared.

Runnable recipe: examples/run_loop.py — all effects converge on the runtime boundary.

tesserix_adk.runtime.citations_of

Stability: alpha

The citation ids message rests on, in the order they were recorded.

def citations_of(message: 'Message') -> 'tuple[str, ...]'

Typed errors: None declared.

Runnable recipe: examples/run_loop.py — all effects converge on the runtime boundary.

tesserix_adk.runtime.cited

Stability: alpha

Return message carrying citations.

def cited(message: 'Message', citations: 'Sequence[str]') -> 'Message'

Typed errors: None declared.

Runnable recipe: examples/run_loop.py — all effects converge on the runtime boundary.

tesserix_adk.runtime.claim_check.ClaimCheck

Stability: alpha

Decides which results are carried and which are checked in, and does the checking.

class ClaimCheck(object) {stored(self, result: 'ToolResult', *, tenant: 'str', run_id: 'str') -> 'ClaimTicket | None'}

Typed errors: None declared.

Runnable recipe: examples/run_loop.py — all effects converge on the runtime boundary.

tesserix_adk.runtime.claim_check.MemoryClaimCheckStore

Stability: alpha

A ClaimCheckStore in a dict, keyed by handle and checked against its scope.

class MemoryClaimCheckStore(object) {fetch(self, handle: 'str', *, tenant: 'str', run_id: 'str') -> 'str'; forget(self, *, tenant: 'str', run_id: 'str' = '') -> 'int'; put(self, handle: 'str', content: 'str', *, tenant: 'str', run_id: 'str', ttl_seconds: 'float') -> 'None'}

Typed errors: None declared.

Runnable recipe: examples/run_loop.py — all effects converge on the runtime boundary.

tesserix_adk.runtime.claim_resume

Stability: alpha

Take exclusive charge of resuming run_id, or refuse because someone else has.

def claim_resume(run_id: 'str', *, tenant: 'str', idempotency: 'IdempotencyStore', ttl_seconds: 'float | None' = None) -> 'None'

Typed errors: ResumeConflictError

Runnable recipe: examples/run_loop.py — all effects converge on the runtime boundary.

tesserix_adk.runtime.compact_conversation

Stability: alpha

Fold the oldest turns into one summary once the conversation gets too long.

def compact_conversation(history: 'Sequence[Message]', *, summarise: 'Summariser', threshold_tokens: 'int', keep_recent: 'int' = 4, tokenizer: 'Tokenizer | None' = None, run_id: 'str' = '') -> 'Compaction'

Typed errors: ProvenanceLostError, ValueError

Runnable recipe: examples/run_loop.py — all effects converge on the runtime boundary.

tesserix_adk.runtime.compaction.CITATIONS

Stability: alpha

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

CITATIONS: str

Typed errors: None declared.

Runnable recipe: examples/run_loop.py — all effects converge on the runtime boundary.

tesserix_adk.runtime.compaction.COMPACTED

Stability: alpha

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

COMPACTED: str

Typed errors: None declared.

Runnable recipe: examples/run_loop.py — all effects converge on the runtime boundary.

tesserix_adk.runtime.compaction.Compaction

Stability: alpha

A conversation after compaction, and what compaction did to it.

class Compaction(AdkModel)

Typed errors: None declared.

Runnable recipe: examples/run_loop.py — all effects converge on the runtime boundary.

tesserix_adk.runtime.compaction.CompactionEvent

Stability: alpha

What one compaction did, in terms an audit trail can repeat.

class CompactionEvent(AdkModel) {attributes(self) -> 'dict[str, str]'}

Typed errors: None declared.

Runnable recipe: examples/run_loop.py — all effects converge on the runtime boundary.

tesserix_adk.runtime.compaction.Summariser

Stability: alpha · Kind: Protocol

Writes one message standing for a span of turns.

class Summariser(Protocol)

Typed errors: None declared.

Runnable recipe: examples/run_loop.py — all effects converge on the runtime boundary.

tesserix_adk.runtime.compaction.citations_of

Stability: alpha

The citation ids message rests on, in the order they were recorded.

def citations_of(message: 'Message') -> 'tuple[str, ...]'

Typed errors: None declared.

Runnable recipe: examples/run_loop.py — all effects converge on the runtime boundary.

tesserix_adk.runtime.compaction.cited

Stability: alpha

Return message carrying citations.

def cited(message: 'Message', citations: 'Sequence[str]') -> 'Message'

Typed errors: None declared.

Runnable recipe: examples/run_loop.py — all effects converge on the runtime boundary.

tesserix_adk.runtime.compaction.compact_conversation

Stability: alpha

Fold the oldest turns into one summary once the conversation gets too long.

def compact_conversation(history: 'Sequence[Message]', *, summarise: 'Summariser', threshold_tokens: 'int', keep_recent: 'int' = 4, tokenizer: 'Tokenizer | None' = None, run_id: 'str' = '') -> 'Compaction'

Typed errors: ProvenanceLostError, ValueError

Runnable recipe: examples/run_loop.py — all effects converge on the runtime boundary.

tesserix_adk.runtime.compensation.Compensator

Stability: alpha

Takes a run's applied work back, in reverse order, without asking a model anything.

class Compensator(object) {unwind(self, run_id: 'str', *, tenant: 'str', cause: 'str', branch: 'str | None' = None) -> 'CompensatedFailure | CompensationIncomplete'}

Typed errors: None declared.

Runnable recipe: examples/run_loop.py — all effects converge on the runtime boundary.

tesserix_adk.runtime.compensation.MemoryCompensationLedger

Stability: alpha

A CompensationLedger that lives and dies with the process.

class MemoryCompensationLedger(object) {forget(self, *, tenant: 'str') -> 'int'; mark(self, reversal: 'Reversal') -> 'None'; outstanding(self, run_id: 'str', *, tenant: 'str', branch: 'str | None' = None) -> 'Sequence[Applied]'; record(self, action: 'Applied') -> 'None'}

Typed errors: None declared.

Runnable recipe: examples/run_loop.py — all effects converge on the runtime boundary.

tesserix_adk.runtime.context.ContextContribution

Stability: alpha

Retrieved context and optional stable keys used for admission deduplication.

class ContextContribution(AdkModel)

Typed errors: None declared.

Runnable recipe: examples/run_loop.py — all effects converge on the runtime boundary.

tesserix_adk.runtime.context.ContextContributionError

Stability: alpha

A required context contributor could not answer.

class ContextContributionError(AdkError)

Typed errors: None declared.

Runnable recipe: examples/run_loop.py — all effects converge on the runtime boundary.

tesserix_adk.runtime.context.ContextContributor

Stability: alpha · Kind: Protocol

A context source attached once to every run of a runner.

class ContextContributor(Protocol) {contribute(self, request: 'ContextRequest') -> 'ContextContribution'}

Typed errors: None declared.

Runnable recipe: examples/run_loop.py — all effects converge on the runtime boundary.

tesserix_adk.runtime.context.ContextRequest

Stability: alpha

Facts a context contributor receives before prompt assembly.

class ContextRequest(AdkModel)

Typed errors: None declared.

Runnable recipe: examples/run_loop.py — all effects converge on the runtime boundary.

tesserix_adk.runtime.context.ContextWindow

Stability: alpha

What the model is holding, and what leaves when there is no more room.

class ContextWindow(object) {admit(self, segment: 'Segment') -> 'bool'; fit(self) -> 'tuple[Segment, ...]'; holds(self, key: 'str') -> 'bool'; texts(self, layer: 'PromptLayer') -> 'tuple[str, ...]'}

Typed errors: ValueError

Runnable recipe: examples/run_loop.py — all effects converge on the runtime boundary.

tesserix_adk.runtime.context.Segment

Stability: alpha

One admitted piece of context.

class Segment(AdkModel)

Typed errors: None declared.

Runnable recipe: examples/run_loop.py — all effects converge on the runtime boundary.

tesserix_adk.runtime.credentials.DEFAULT_SKEW_SECONDS

Stability: alpha

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

DEFAULT_SKEW_SECONDS: float

Typed errors: None declared.

Runnable recipe: examples/run_loop.py — all effects converge on the runtime boundary.

tesserix_adk.runtime.credentials.Reauthoriser

Stability: alpha · Kind: Protocol

Whatever answers "does this caller still hold what they held" mid-run.

class Reauthoriser(Protocol) {reauthorise(self, identity: 'AgentIdentity', /) -> 'AgentIdentity'}

Typed errors: None declared.

Runnable recipe: examples/run_loop.py — all effects converge on the runtime boundary.

tesserix_adk.runtime.credentials.RefreshPolicy

Stability: alpha

When to refresh, and how hard to try.

class RefreshPolicy(AdkModel)

Typed errors: None declared.

Runnable recipe: examples/run_loop.py — all effects converge on the runtime boundary.

tesserix_adk.runtime.credentials.RunCredentials

Stability: alpha

One run's credentials: refreshed ahead of expiry, re-derived when they are.

class RunCredentials(object) {call(self, operation: 'Callable[[ExpiringCredential, str], Awaitable[T]]', *, audience: 'str', needs: 'Iterable[str]', run_id: 'str', idempotency_key: 'str | None' = None) -> 'T'; for_call(self, *, audience: 'str', needs: 'Iterable[str]', run_id: 'str', agent_version: 'str' = '1.0.0') -> 'ExpiringCredential'; invalidate(self, audience: 'str') -> 'None'; suspend(self) -> 'None'}

Typed errors: None declared.

Runnable recipe: examples/run_loop.py — all effects converge on the runtime boundary.

tesserix_adk.runtime.current_ambient

Stability: alpha

Return the ambient of the work in hand, or None outside a run.

def current_ambient() -> 'Ambient | None'

Typed errors: None declared.

Runnable recipe: examples/run_loop.py — all effects converge on the runtime boundary.

tesserix_adk.runtime.decode_progress

Stability: alpha

Decode one event, or None where this version has never heard of it.

def decode_progress(payload: 'Mapping[str, object]') -> 'ProgressEvent | None'

Typed errors: ValueError

Runnable recipe: examples/run_loop.py — all effects converge on the runtime boundary.

tesserix_adk.runtime.delegation.Delegation

Stability: alpha

One agent's position in a run: how deep it sits, what it holds, what it may spend.

class Delegation(object) {to(self, agent: 'str', *, tools: 'Collection[str] | None' = None, mutations: 'Collection[str] | None' = None, limits: 'DelegationLimits | None' = None) -> 'Delegation'}

Typed errors: None declared.

Runnable recipe: examples/run_loop.py — all effects converge on the runtime boundary.

tesserix_adk.runtime.delegation.DelegationLimits

Stability: alpha

How deep, how wide and how often one run may delegate.

class DelegationLimits(object) {narrowed(self, other: 'DelegationLimits') -> 'DelegationLimits'}

Typed errors: None declared.

Runnable recipe: examples/run_loop.py — all effects converge on the runtime boundary.

tesserix_adk.runtime.delegation.DelegationScope

Stability: alpha

What an agent may reach, and until when.

class DelegationScope(object) {holds(self, tool: 'str') -> 'bool'}

Typed errors: None declared.

Runnable recipe: examples/run_loop.py — all effects converge on the runtime boundary.

tesserix_adk.runtime.delegation.handed_back

Stability: alpha

What a delegated run gives its caller, as data the caller's model may not obey.

def handed_back(run: 'Run[OutputT]') -> 'str'

Typed errors: None declared.

Runnable recipe: examples/run_loop.py — all effects converge on the runtime boundary.

tesserix_adk.runtime.delegation.narrowed_to

Stability: alpha

The agent holding the intersection: its own allowlist, capped by its caller's.

def narrowed_to(agent: 'Agent[Any]', held: 'tuple[str, ...]') -> 'Agent[Any]'

Typed errors: None declared.

Runnable recipe: examples/run_loop.py — all effects converge on the runtime boundary.

tesserix_adk.runtime.determinism.RunFingerprint

Stability: alpha

A canonical summary of one provider call, field by field.

class RunFingerprint(AdkModel) {diff(self, other: 'RunFingerprint') -> 'tuple[str, ...]'}

Typed errors: None declared.

Runnable recipe: examples/run_loop.py — all effects converge on the runtime boundary.

tesserix_adk.runtime.determinism.canonical_digest

Stability: alpha

SHA-256 over value serialised key-order independently.

def canonical_digest(value: 'Any') -> 'str'

Typed errors: None declared.

Runnable recipe: examples/run_loop.py — all effects converge on the runtime boundary.

tesserix_adk.runtime.determinism.fingerprint_of

Stability: alpha

Fingerprint one provider call, plus the hook chain that could have shaped it.

def fingerprint_of(request: 'ModelRequest', *, hooks: 'Iterable[str]' = ()) -> 'RunFingerprint'

Typed errors: None declared.

Runnable recipe: examples/run_loop.py — all effects converge on the runtime boundary.

tesserix_adk.runtime.drive

Stability: alpha

Run work() to completion from a caller that has no event loop.

def drive(work: 'Callable[[], Awaitable[T]]', *, sync_name: 'str', async_name: 'str') -> 'T'

Typed errors: RunningLoopError

Runnable recipe: examples/run_loop.py — all effects converge on the runtime boundary.

tesserix_adk.runtime.estimate.Assumptions

Stability: alpha

Everything the estimate rests on, in a form somebody can argue with.

class Assumptions(AdkModel)

Typed errors: None declared.

Runnable recipe: examples/run_loop.py — all effects converge on the runtime boundary.

tesserix_adk.runtime.estimate.Calibration

Stability: alpha

An estimate held against what the run actually cost.

class Calibration(AdkModel)

Typed errors: None declared.

Runnable recipe: examples/run_loop.py — all effects converge on the runtime boundary.

tesserix_adk.runtime.estimate.Confidence

Stability: alpha

How much of the estimate is measurement and how much is assumption.

class Confidence(StrEnum)

Typed errors: None declared.

Runnable recipe: examples/run_loop.py — all effects converge on the runtime boundary.

tesserix_adk.runtime.estimate.CostEstimate

Stability: alpha

What a run is expected to cost, and how much of that is known.

class CostEstimate(AdkModel) {as_limits(self, *, headroom: 'Decimal' = Decimal('1')) -> 'BudgetLimits'; with_children(self, *children: 'CostEstimate') -> 'CostEstimate'}

Typed errors: None declared.

Runnable recipe: examples/run_loop.py — all effects converge on the runtime boundary.

tesserix_adk.runtime.estimate.InMemoryHistory

Stability: alpha

Finished runs kept in the process, for a deployment that has nowhere else yet.

class InMemoryHistory(object) {observed(self, agent_name: 'str', version: 'str') -> 'Observed | None'; record(self, run: 'Run[OutputT]') -> 'None'}

Typed errors: None declared.

Runnable recipe: examples/run_loop.py — all effects converge on the runtime boundary.

tesserix_adk.runtime.estimate.Observed

Stability: alpha

What an agent's finished runs actually did.

class Observed(AdkModel)

Typed errors: None declared.

Runnable recipe: examples/run_loop.py — all effects converge on the runtime boundary.

tesserix_adk.runtime.estimate.Pricer

Stability: alpha · Kind: Protocol

What a usage comes to on a model.

class Pricer(Protocol)

Typed errors: None declared.

Runnable recipe: examples/run_loop.py — all effects converge on the runtime boundary.

tesserix_adk.runtime.estimate.RunHistory

Stability: alpha · Kind: Protocol

Where finished runs are kept, in whatever store a deployment already has.

class RunHistory(Protocol) {observed(self, agent_name: 'str', version: 'str') -> 'Observed | None'}

Typed errors: None declared.

Runnable recipe: examples/run_loop.py — all effects converge on the runtime boundary.

tesserix_adk.runtime.estimate.Scope

Stability: alpha

Whose spend the estimate covers.

class Scope(StrEnum)

Typed errors: None declared.

Runnable recipe: examples/run_loop.py — all effects converge on the runtime boundary.

tesserix_adk.runtime.estimate.Spread

Stability: alpha

A distribution reduced to the three numbers an estimate needs.

class Spread(AdkModel)

Typed errors: None declared.

Runnable recipe: examples/run_loop.py — all effects converge on the runtime boundary.

tesserix_adk.runtime.estimate.affordable

Stability: alpha

Whether limits has room for estimate, checked against its high case.

def affordable(estimate: 'CostEstimate', limits: 'BudgetLimits') -> 'BudgetDecision'

Typed errors: None declared.

Runnable recipe: examples/run_loop.py — all effects converge on the runtime boundary.

tesserix_adk.runtime.estimate.approval_for

Stability: alpha

The estimate as something a human can be asked to approve.

def approval_for(estimate: 'CostEstimate', agent: 'Agent[OutputT]', *, run_id: 'str', tenant: 'str', requested_at: 'float' = 0.0) -> 'ApprovalRecord'

Typed errors: None declared.

Runnable recipe: examples/run_loop.py — all effects converge on the runtime boundary.

tesserix_adk.runtime.estimate.calibrate

Stability: alpha

Hold estimate against what run actually cost.

def calibrate(estimate: 'CostEstimate', run: 'Run[OutputT]') -> 'Calibration'

Typed errors: None declared.

Runnable recipe: examples/run_loop.py — all effects converge on the runtime boundary.

tesserix_adk.runtime.estimate.estimate_run

Stability: alpha

What agent is expected to spend answering user_input, before it starts.

def estimate_run(agent: 'Agent[OutputT]', user_input: 'str', *, provider: 'ModelProvider', pricing: 'Pricer', history: 'RunHistory | None' = None, tools: 'Iterable[ToolDeclaration]' = (), allow_unknown: 'bool' = False) -> 'CostEstimate'

Typed errors: EstimateUnavailableError

Runnable recipe: examples/run_loop.py — all effects converge on the runtime boundary.

tesserix_adk.runtime.estimate.estimate_run_typed

Stability: alpha

Estimate a structured-input agent through the stable text estimator.

def estimate_run_typed(agent: 'TypedAgent[InputT, OutputT]', user_input: 'InputT', *, provider: 'ModelProvider', pricing: 'Pricer', history: 'RunHistory | None' = None, tools: 'Iterable[ToolDeclaration]' = (), allow_unknown: 'bool' = False) -> 'CostEstimate'

Typed errors: None declared.

Runnable recipe: examples/run_loop.py — all effects converge on the runtime boundary.

tesserix_adk.runtime.estimate.refuse_unaffordable

Stability: alpha

Raise if estimate does not fit limits.

def refuse_unaffordable(estimate: 'CostEstimate', limits: 'BudgetLimits') -> 'None'

Typed errors: BudgetExceededError

Runnable recipe: examples/run_loop.py — all effects converge on the runtime boundary.

tesserix_adk.runtime.estimate_run

Stability: alpha

What agent is expected to spend answering user_input, before it starts.

def estimate_run(agent: 'Agent[OutputT]', user_input: 'str', *, provider: 'ModelProvider', pricing: 'Pricer', history: 'RunHistory | None' = None, tools: 'Iterable[ToolDeclaration]' = (), allow_unknown: 'bool' = False) -> 'CostEstimate'

Typed errors: EstimateUnavailableError

Runnable recipe: examples/run_loop.py — all effects converge on the runtime boundary.

tesserix_adk.runtime.estimate_run_typed

Stability: alpha

Estimate a structured-input agent through the stable text estimator.

def estimate_run_typed(agent: 'TypedAgent[InputT, OutputT]', user_input: 'InputT', *, provider: 'ModelProvider', pricing: 'Pricer', history: 'RunHistory | None' = None, tools: 'Iterable[ToolDeclaration]' = (), allow_unknown: 'bool' = False) -> 'CostEstimate'

Typed errors: None declared.

Runnable recipe: examples/run_loop.py — all effects converge on the runtime boundary.

tesserix_adk.runtime.fan_out

Stability: alpha

Run branches concurrently through supervisor and add them up under into.

def fan_out(supervisor: 'Supervisor', branches: 'Sequence[Branch]', *, into: 'Aggregation[Any] | None' = None, max_concurrency: 'int' = 8) -> 'Aggregate[Any]'

Typed errors: AggregationError, ConfigurationError

Runnable recipe: examples/run_loop.py — all effects converge on the runtime boundary.

tesserix_adk.runtime.fanout.Lanes

Stability: alpha

The semaphores one runner's tool calls stand in.

class Lanes(object) {held(self, tool: 'str', *, tenant: 'str', turn: 'Turn | None' = None) -> 'AsyncIterator[None]'}

Typed errors: None declared.

Runnable recipe: examples/run_loop.py — all effects converge on the runtime boundary.

tesserix_adk.runtime.fanout.Turn

Stability: alpha

The lanes belonging to one batch, so one turn cannot spend another turn's width.

class Turn(object)

Typed errors: None declared.

Runnable recipe: examples/run_loop.py — all effects converge on the runtime boundary.

tesserix_adk.runtime.fanout.phased

Stability: alpha

Group calls into phases run one after another, keeping the model's order.

def phased(calls: 'Sequence[ToolCall]', *, serial: 'Container[str]') -> 'tuple[tuple[ToolCall, ...], ...]'

Typed errors: None declared.

Runnable recipe: examples/run_loop.py — all effects converge on the runtime boundary.

tesserix_adk.runtime.fingerprint_of

Stability: alpha

Fingerprint one provider call, plus the hook chain that could have shaped it.

def fingerprint_of(request: 'ModelRequest', *, hooks: 'Iterable[str]' = ()) -> 'RunFingerprint'

Typed errors: None declared.

Runnable recipe: examples/run_loop.py — all effects converge on the runtime boundary.

tesserix_adk.runtime.handed_back

Stability: alpha

What a delegated run gives its caller, as data the caller's model may not obey.

def handed_back(run: 'Run[OutputT]') -> 'str'

Typed errors: None declared.

Runnable recipe: examples/run_loop.py — all effects converge on the runtime boundary.

tesserix_adk.runtime.handoff.Handoff

Stability: alpha

The record of one conversation changing hands.

class Handoff(object)

Typed errors: None declared.

Runnable recipe: examples/run_loop.py — all effects converge on the runtime boundary.

tesserix_adk.runtime.handoff.HandoffContract

Stability: alpha

What one receiver accepts when a conversation is handed to it.

class HandoffContract(object) {validated(self, state: 'Mapping[str, Any] | BaseModel') -> 'BaseModel'}

Typed errors: None declared.

Runnable recipe: examples/run_loop.py — all effects converge on the runtime boundary.

tesserix_adk.runtime.handoff.HandoffDesk

Stability: alpha

Where one agent hands a live conversation to another, under a declared contract.

class HandoffDesk(object) {hand_off(self, to: 'str', *, reason: 'str', state: 'Mapping[str, Any] | BaseModel', task: 'str', history: 'Iterable[Message]' = (), memory: 'Iterable[str]' = (), after: 'Run[Any] | None' = None) -> 'HandoffResult'}

Typed errors: ConfigurationError

Runnable recipe: examples/run_loop.py — all effects converge on the runtime boundary.

tesserix_adk.runtime.handoff.HandoffQueue

Stability: alpha · Kind: Protocol

Where a conversation waits for a person to pick it up.

class HandoffQueue(Protocol) {receive(self, handoff: 'Handoff') -> 'None'}

Typed errors: None declared.

Runnable recipe: examples/run_loop.py — all effects converge on the runtime boundary.

tesserix_adk.runtime.handoff.HandoffResult

Stability: alpha

What came of handing the conversation over.

class HandoffResult(object)

Typed errors: None declared.

Runnable recipe: examples/run_loop.py — all effects converge on the runtime boundary.

tesserix_adk.runtime.handoff.Receiver

Stability: alpha

Somewhere a conversation may be handed to, and what it accepts.

class Receiver(object)

Typed errors: ConfigurationError

Runnable recipe: examples/run_loop.py — all effects converge on the runtime boundary.

tesserix_adk.runtime.idempotency.MemoryIdempotencyStore

Stability: alpha

An IdempotencyStore in a dict, keyed by tenant and key.

class MemoryIdempotencyStore(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/run_loop.py — all effects converge on the runtime boundary.

tesserix_adk.runtime.lease.Leaseholder

Stability: alpha

One worker's hold on one run, for as long as the turn takes.

class Leaseholder(object) {acquire(self, run_id: 'str', *, tenant: 'str') -> 'RunLease'; keep(self, *, now: 'float') -> 'RunLease | None'; release(self) -> 'None'; renew(self) -> 'RunLease'}

Typed errors: None declared.

Runnable recipe: examples/run_loop.py — all effects converge on the runtime boundary.

tesserix_adk.runtime.lease.MemoryLeaseStore

Stability: alpha

A LeaseStore in a dict, deciding expiry on one clock.

class MemoryLeaseStore(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/run_loop.py — all effects converge on the runtime boundary.

tesserix_adk.runtime.loop.AgentRunner

Stability: alpha

Drives one agent to one terminal state.

class AgentRunner(object) {reload(self, router: 'ModelRouter') -> 'None'; resume(self, agent: 'Agent[OutputT] | AgentDefinition[OutputT]', run_id: 'str', *, tenant: 'str', user: 'str | None' = None, cancellation: 'CancellationToken | None' = None, deadline: 'Deadline | None' = None, budget: 'BudgetPolicy | None' = None) -> 'Run[OutputT]'; resume_with_decision(self, agent: 'Agent[OutputT] | AgentDefinition[OutputT]', run_id: 'str', *, tenant: 'str', token: 'str', granted: 'bool', decided_by: 'str', reason: 'str' = '', user: 'str | None' = None, cancellation: 'CancellationToken | None' = None, deadline: 'Deadline | None' = None, budget: 'BudgetPolicy | None' = None, allow_model_drift: 'bool' = False) -> 'Run[OutputT]'; run(self, agent: 'Agent[OutputT] | AgentDefinition[OutputT]', user_input: 'str', *, tenant: 'str', user: 'str | None' = None, run_id: 'str | None' = None, history: 'Iterable[Message]' = (), memory: 'Iterable[str]' = (), cancellation: 'CancellationToken | None' = None, deadline: 'Deadline | None' = None, parent: 'RunContext | None' = None, budget: 'BudgetPolicy | None' = None) -> 'Run[OutputT]'; run_sync(self, agent: 'Agent[OutputT] | AgentDefinition[OutputT]', user_input: 'str', *, tenant: 'str', user: 'str | None' = None, run_id: 'str | None' = None, history: 'Iterable[Message]' = (), memory: 'Iterable[str]' = (), cancellation: 'CancellationToken | None' = None, deadline: 'Deadline | None' = None, parent: 'RunContext | None' = None, budget: 'BudgetPolicy | None' = None) -> 'Run[OutputT]'; run_typed(self, agent: 'TypedAgent[InputT, OutputT] | TypedAgentDefinition[InputT, OutputT]', user_input: 'InputT', *, tenant: 'str', user: 'str | None' = None, run_id: 'str | None' = None, history: 'Iterable[Message]' = (), memory: 'Iterable[str]' = (), cancellation: 'CancellationToken | None' = None, deadline: 'Deadline | None' = None, parent: 'RunContext | None' = None, budget: 'BudgetPolicy | None' = None) -> 'Run[OutputT]'; run_typed_sync(self, agent: 'TypedAgent[InputT, OutputT] | TypedAgentDefinition[InputT, OutputT]', user_input: 'InputT', *, tenant: 'str', user: 'str | None' = None, run_id: 'str | None' = None, history: 'Iterable[Message]' = (), memory: 'Iterable[str]' = (), cancellation: 'CancellationToken | None' = None, deadline: 'Deadline | None' = None, parent: 'RunContext | None' = None, budget: 'BudgetPolicy | None' = None) -> 'Run[OutputT]'; stream(self, agent: 'Agent[OutputT] | AgentDefinition[OutputT]', user_input: 'str', *, tenant: 'str', user: 'str | None' = None, run_id: 'str | None' = None, history: 'Iterable[Message]' = (), memory: 'Iterable[str]' = (), cancellation: 'CancellationToken | None' = None, deadline: 'Deadline | None' = None, parent: 'RunContext | None' = None, budget: 'BudgetPolicy | None' = None, backpressure: 'Backpressure | None' = None) -> 'RunStream[OutputT]'; stream_sync(self, agent: 'Agent[OutputT] | AgentDefinition[OutputT]', user_input: 'str', *, tenant: 'str', user: 'str | None' = None, run_id: 'str | None' = None, history: 'Iterable[Message]' = (), memory: 'Iterable[str]' = (), cancellation: 'CancellationToken | None' = None, deadline: 'Deadline | None' = None, parent: 'RunContext | None' = None, budget: 'BudgetPolicy | None' = None, backpressure: 'Backpressure | None' = None) -> 'tuple[ProgressEvent, ...]'; stream_typed(self, agent: 'TypedAgent[InputT, OutputT] | TypedAgentDefinition[InputT, OutputT]', user_input: 'InputT', *, tenant: 'str', user: 'str | None' = None, run_id: 'str | None' = None, history: 'Iterable[Message]' = (), memory: 'Iterable[str]' = (), cancellation: 'CancellationToken | None' = None, deadline: 'Deadline | None' = None, parent: 'RunContext | None' = None, budget: 'BudgetPolicy | None' = None, backpressure: 'Backpressure | None' = None) -> 'RunStream[OutputT]'; stream_typed_sync(self, agent: 'TypedAgent[InputT, OutputT] | TypedAgentDefinition[InputT, OutputT]', user_input: 'InputT', *, tenant: 'str', user: 'str | None' = None, run_id: 'str | None' = None, history: 'Iterable[Message]' = (), memory: 'Iterable[str]' = (), cancellation: 'CancellationToken | None' = None, deadline: 'Deadline | None' = None, parent: 'RunContext | None' = None, budget: 'BudgetPolicy | None' = None, backpressure: 'Backpressure | None' = None) -> 'tuple[ProgressEvent, ...]'}

Typed errors: ProtocolConformanceError

Runnable recipe: examples/run_loop.py — all effects converge on the runtime boundary.

tesserix_adk.runtime.loop.ModelRequest

Stability: alpha

One call to a provider, as data.

class ModelRequest(AdkModel)

Typed errors: None declared.

Runnable recipe: examples/run_loop.py — all effects converge on the runtime boundary.

tesserix_adk.runtime.loop.ModelResponse

Stability: alpha

What a provider returned for one call.

class ModelResponse(AdkModel)

Typed errors: None declared.

Runnable recipe: examples/run_loop.py — all effects converge on the runtime boundary.

tesserix_adk.runtime.loop.SystemClock

Stability: alpha

Wall-clock time, for callers that did not inject one.

class SystemClock(object) {now(self) -> 'float'; sleep(self, seconds: 'float') -> 'None'}

Typed errors: None declared.

Runnable recipe: examples/run_loop.py — all effects converge on the runtime boundary.

tesserix_adk.runtime.narrowed_to

Stability: alpha

The agent holding the intersection: its own allowlist, capped by its caller's.

def narrowed_to(agent: 'Agent[Any]', held: 'tuple[str, ...]') -> 'Agent[Any]'

Typed errors: None declared.

Runnable recipe: examples/run_loop.py — all effects converge on the runtime boundary.

tesserix_adk.runtime.parallel.Aggregate

Stability: alpha

What a fan-out added up to, and what it was added up from.

class Aggregate(Generic)

Typed errors: None declared.

Runnable recipe: examples/run_loop.py — all effects converge on the runtime boundary.

tesserix_adk.runtime.parallel.Aggregation

Stability: alpha

A rule for turning branches into one answer, and for refusing to.

class Aggregation(ABC, Generic) {chosen(self, results: 'Sequence[BranchResult]') -> 'tuple[tuple[BranchResult, ...], str]'; value(self, chosen: 'Sequence[BranchResult]') -> 'ValueT'}

Typed errors: None declared.

Runnable recipe: examples/run_loop.py — all effects converge on the runtime boundary.

tesserix_adk.runtime.parallel.All

Stability: alpha

Every branch, or none. The default, because a missing branch is usually a bug.

class All(Aggregation) {chosen(self, results: 'Sequence[BranchResult]') -> 'tuple[tuple[BranchResult, ...], str]'; value(self, chosen: 'Sequence[BranchResult]') -> 'tuple[str, ...]'}

Typed errors: None declared.

Runnable recipe: examples/run_loop.py — all effects converge on the runtime boundary.

tesserix_adk.runtime.parallel.Branch

Stability: alpha

One piece of work in a fan-out, named so that what it contributed can be said.

class Branch(object)

Typed errors: ConfigurationError

Runnable recipe: examples/run_loop.py — all effects converge on the runtime boundary.

tesserix_adk.runtime.parallel.BranchOutcome

Stability: alpha

How one branch ended. Four states, because "not ok" is three different problems.

class BranchOutcome(StrEnum)

Typed errors: None declared.

Runnable recipe: examples/run_loop.py — all effects converge on the runtime boundary.

tesserix_adk.runtime.parallel.BranchResult

Stability: alpha

What one branch gave back, whether or not it gave back an answer.

class BranchResult(object)

Typed errors: None declared.

Runnable recipe: examples/run_loop.py — all effects converge on the runtime boundary.

tesserix_adk.runtime.parallel.FirstSuccess

Stability: alpha

The first branch that answered, in declared order rather than in finishing order.

class FirstSuccess(Aggregation) {chosen(self, results: 'Sequence[BranchResult]') -> 'tuple[tuple[BranchResult, ...], str]'; value(self, chosen: 'Sequence[BranchResult]') -> 'str'}

Typed errors: None declared.

Runnable recipe: examples/run_loop.py — all effects converge on the runtime boundary.

tesserix_adk.runtime.parallel.Quorum

Stability: alpha

Every branch that answered, provided enough of them did.

class Quorum(Aggregation) {chosen(self, results: 'Sequence[BranchResult]') -> 'tuple[tuple[BranchResult, ...], str]'; value(self, chosen: 'Sequence[BranchResult]') -> 'tuple[str, ...]'}

Typed errors: ConfigurationError

Runnable recipe: examples/run_loop.py — all effects converge on the runtime boundary.

tesserix_adk.runtime.parallel.Reduce

Stability: alpha

A caller's own rule over the branches that answered.

class Reduce(Aggregation, Generic) {chosen(self, results: 'Sequence[BranchResult]') -> 'tuple[tuple[BranchResult, ...], str]'; value(self, chosen: 'Sequence[BranchResult]') -> 'ValueT'}

Typed errors: None declared.

Runnable recipe: examples/run_loop.py — all effects converge on the runtime boundary.

tesserix_adk.runtime.parallel.fan_out

Stability: alpha

Run branches concurrently through supervisor and add them up under into.

def fan_out(supervisor: 'Supervisor', branches: 'Sequence[Branch]', *, into: 'Aggregation[Any] | None' = None, max_concurrency: 'int' = 8) -> 'Aggregate[Any]'

Typed errors: AggregationError, ConfigurationError

Runnable recipe: examples/run_loop.py — all effects converge on the runtime boundary.

tesserix_adk.runtime.plan_resume

Stability: alpha

Work out what carrying checkpoint on would involve, without doing any of it.

def plan_resume(checkpoint: 'Checkpoint', idempotency: 'IdempotencyStore | None' = None) -> 'ResumePlan'

Typed errors: None declared.

Runnable recipe: examples/run_loop.py — all effects converge on the runtime boundary.

tesserix_adk.runtime.planner.AgentPlanner

Stability: alpha

An agent that plans, held to producing a plan and to holding nothing it could call.

class AgentPlanner(object) {plan(self, task: 'str', *, feedback: 'str' = '') -> 'Plan'}

Typed errors: ConfigurationError

Runnable recipe: examples/run_loop.py — all effects converge on the runtime boundary.

tesserix_adk.runtime.planner.ExecutedPlan

Stability: alpha

What came of running a plan.

class ExecutedPlan(object)

Typed errors: None declared.

Runnable recipe: examples/run_loop.py — all effects converge on the runtime boundary.

tesserix_adk.runtime.planner.InMemoryPlanStore

Stability: alpha

A PlanStore that lives as long as the process, for tests and single-node runs.

class InMemoryPlanStore(object) {forget(self, run_id: 'str', *, tenant: 'str') -> 'None'; latest(self, run_id: 'str', *, tenant: 'str') -> 'PlanRecord | None'; put(self, record: 'PlanRecord') -> 'None'}

Typed errors: None declared.

Runnable recipe: examples/run_loop.py — all effects converge on the runtime boundary.

tesserix_adk.runtime.planner.Plan

Stability: alpha

What a planner produced: an ordered set of checkable steps and the goal behind them.

class Plan(AdkModel) {step(self, id: 'str') -> 'PlanStep | None'}

Typed errors: None declared.

Runnable recipe: examples/run_loop.py — all effects converge on the runtime boundary.

tesserix_adk.runtime.planner.PlanExecutor

Stability: alpha

Runs a validated plan, and refuses one it cannot validate.

class PlanExecutor(object) {execute(self, plan: 'Plan') -> 'ExecutedPlan'; planned(self, planner: 'Planner', task: 'str') -> 'Plan'; resume(self) -> 'ExecutedPlan'; validate(self, plan: 'Plan') -> 'Plan'}

Typed errors: ConfigurationError

Runnable recipe: examples/run_loop.py — all effects converge on the runtime boundary.

tesserix_adk.runtime.planner.PlanRecord

Stability: alpha

A plan and how far it got, written down so another process can carry it on.

class PlanRecord(AdkModel)

Typed errors: None declared.

Runnable recipe: examples/run_loop.py — all effects converge on the runtime boundary.

tesserix_adk.runtime.planner.PlanStep

Stability: alpha

One thing a plan will do, as a call somebody could check before it happens.

class PlanStep(AdkModel)

Typed errors: None declared.

Runnable recipe: examples/run_loop.py — all effects converge on the runtime boundary.

tesserix_adk.runtime.planner.PlanStore

Stability: alpha · Kind: Protocol

Where a plan and its progress live between processes.

class PlanStore(Protocol) {forget(self, run_id: 'str', *, tenant: 'str') -> 'None'; latest(self, run_id: 'str', *, tenant: 'str') -> 'PlanRecord | None'; put(self, record: 'PlanRecord') -> 'None'}

Typed errors: None declared.

Runnable recipe: examples/run_loop.py — all effects converge on the runtime boundary.

tesserix_adk.runtime.planner.Planner

Stability: alpha · Kind: Protocol

Whatever produces a plan. It reasons; it does not call anything.

class Planner(Protocol) {plan(self, task: 'str', *, feedback: 'str' = '') -> 'Plan'}

Typed errors: None declared.

Runnable recipe: examples/run_loop.py — all effects converge on the runtime boundary.

tesserix_adk.runtime.planner.StepResult

Stability: alpha

What one step did, in the form a record and a resume both read.

class StepResult(AdkModel)

Typed errors: None declared.

Runnable recipe: examples/run_loop.py — all effects converge on the runtime boundary.

tesserix_adk.runtime.planner.ToolContract

Stability: alpha

What one tool takes, and whether taking it back is possible.

class ToolContract(object) {validated(self, arguments: 'Mapping[str, Any]') -> 'BaseModel'}

Typed errors: None declared.

Runnable recipe: examples/run_loop.py — all effects converge on the runtime boundary.

tesserix_adk.runtime.progress.AnswerDelta

Stability: alpha

More of a free-text answer. Concatenating them in order gives the buffered answer.

class AnswerDelta(ProgressEvent)

Typed errors: None declared.

Runnable recipe: examples/run_loop.py — all effects converge on the runtime boundary.

tesserix_adk.runtime.progress.ApprovalRequired

Stability: alpha

A call is held until a human decides. Surfaced so the queue is visible live.

class ApprovalRequired(ProgressEvent)

Typed errors: None declared.

Runnable recipe: examples/run_loop.py — all effects converge on the runtime boundary.

tesserix_adk.runtime.progress.Backpressure

Stability: alpha

What a run does when its consumer cannot keep up.

class Backpressure(object)

Typed errors: None declared.

Runnable recipe: examples/run_loop.py — all effects converge on the runtime boundary.

tesserix_adk.runtime.progress.GuardrailDecision

Stability: alpha

A guardrail was asked, and what it said.

class GuardrailDecision(ProgressEvent)

Typed errors: None declared.

Runnable recipe: examples/run_loop.py — all effects converge on the runtime boundary.

tesserix_adk.runtime.progress.IterationStarted

Stability: alpha

Another model call is about to be made, counted from one.

class IterationStarted(ProgressEvent)

Typed errors: None declared.

Runnable recipe: examples/run_loop.py — all effects converge on the runtime boundary.

tesserix_adk.runtime.progress.Pressure

Stability: alpha

How close a stream came to its limits, and what it did about it.

class Pressure(object)

Typed errors: None declared.

Runnable recipe: examples/run_loop.py — all effects converge on the runtime boundary.

tesserix_adk.runtime.progress.ProgressEvent

Stability: alpha

One thing that happened, as a consumer watching the run sees it.

class ProgressEvent(AdkModel)

Typed errors: None declared.

Runnable recipe: examples/run_loop.py — all effects converge on the runtime boundary.

tesserix_adk.runtime.progress.Provisional

Stability: alpha

Structured content that has arrived so far, and is not a result.

class Provisional(Generic) {snapshot(self) -> 'dict[str, object] | None'}

Typed errors: None declared.

Runnable recipe: examples/run_loop.py — all effects converge on the runtime boundary.

tesserix_adk.runtime.progress.RunCancelled

Stability: alpha

The run was stopped by its caller, its transport or a deadline.

class RunCancelled(ProgressEvent)

Typed errors: None declared.

Runnable recipe: examples/run_loop.py — all effects converge on the runtime boundary.

tesserix_adk.runtime.progress.RunCompleted

Stability: alpha

The run reached a good terminal state.

class RunCompleted(ProgressEvent)

Typed errors: None declared.

Runnable recipe: examples/run_loop.py — all effects converge on the runtime boundary.

tesserix_adk.runtime.progress.RunFailed

Stability: alpha

The run ended badly, naming the failure rather than the symptom.

class RunFailed(ProgressEvent)

Typed errors: None declared.

Runnable recipe: examples/run_loop.py — all effects converge on the runtime boundary.

tesserix_adk.runtime.progress.RunStarted

Stability: alpha

The run is live. Always first.

class RunStarted(ProgressEvent)

Typed errors: None declared.

Runnable recipe: examples/run_loop.py — all effects converge on the runtime boundary.

tesserix_adk.runtime.progress.RunStream

Stability: alpha

One run, watched while it happens.

class RunStream(Generic) {aclose(self) -> 'None'}

Typed errors: None declared.

Runnable recipe: examples/run_loop.py — all effects converge on the runtime boundary.

tesserix_adk.runtime.progress.SequenceCheck

Stability: alpha

Tracks one run's numbering, so a consumer can see what it lost.

class SequenceCheck(object) {accept(self, event: 'ProgressEvent') -> 'bool'}

Typed errors: None declared.

Runnable recipe: examples/run_loop.py — all effects converge on the runtime boundary.

tesserix_adk.runtime.progress.StructuredDelta

Stability: alpha

More of a structured answer, as the JSON text arrives.

class StructuredDelta(ProgressEvent)

Typed errors: None declared.

Runnable recipe: examples/run_loop.py — all effects converge on the runtime boundary.

tesserix_adk.runtime.progress.ToolCallFailed

Stability: alpha

A tool call did not return a result, and why.

class ToolCallFailed(ProgressEvent)

Typed errors: None declared.

Runnable recipe: examples/run_loop.py — all effects converge on the runtime boundary.

tesserix_adk.runtime.progress.ToolCallFinished

Stability: alpha

A tool returned.

class ToolCallFinished(ProgressEvent)

Typed errors: None declared.

Runnable recipe: examples/run_loop.py — all effects converge on the runtime boundary.

tesserix_adk.runtime.progress.ToolCallIndeterminate

Stability: alpha

A tool was stopped after dispatch, so whether its effect landed is unknown.

class ToolCallIndeterminate(ProgressEvent)

Typed errors: None declared.

Runnable recipe: examples/run_loop.py — all effects converge on the runtime boundary.

tesserix_adk.runtime.progress.ToolCallStarted

Stability: alpha

A tool call cleared policy and is about to run.

class ToolCallStarted(ProgressEvent)

Typed errors: None declared.

Runnable recipe: examples/run_loop.py — all effects converge on the runtime boundary.

tesserix_adk.runtime.progress.UsageUpdated

Stability: alpha

What the run has consumed so far.

class UsageUpdated(ProgressEvent)

Typed errors: None declared.

Runnable recipe: examples/run_loop.py — all effects converge on the runtime boundary.

tesserix_adk.runtime.progress.decode_progress

Stability: alpha

Decode one event, or None where this version has never heard of it.

def decode_progress(payload: 'Mapping[str, object]') -> 'ProgressEvent | None'

Typed errors: ValueError

Runnable recipe: examples/run_loop.py — all effects converge on the runtime boundary.

tesserix_adk.runtime.prompt.PROMPT_LAYERS

Stability: alpha

Built-in immutable sequence.

PROMPT_LAYERS: tuple

Typed errors: None declared.

Runnable recipe: examples/run_loop.py — all effects converge on the runtime boundary.

tesserix_adk.runtime.prompt.Prompt

Stability: alpha

What is actually sent for one turn, plus the identity of its cacheable prefix.

class Prompt(AdkModel)

Typed errors: None declared.

Runnable recipe: examples/run_loop.py — all effects converge on the runtime boundary.

tesserix_adk.runtime.prompt.PromptLayer

Stability: alpha

A band of the prompt, in the order the kit assembles them.

class PromptLayer(StrEnum)

Typed errors: None declared.

Runnable recipe: examples/run_loop.py — all effects converge on the runtime boundary.

tesserix_adk.runtime.prompt.Tokenizer

Stability: alpha · Kind: Protocol

Counts the tokens in a string, by whatever rule the model behind it uses.

class Tokenizer(Protocol)

Typed errors: None declared.

Runnable recipe: examples/run_loop.py — all effects converge on the runtime boundary.

tesserix_adk.runtime.prompt.ToolDeclaration

Stability: alpha

A tool as the model is told about it.

class ToolDeclaration(AdkModel)

Typed errors: None declared.

Runnable recipe: examples/run_loop.py — all effects converge on the runtime boundary.

tesserix_adk.runtime.prompt.approximate_tokens

Stability: alpha

Estimate the tokens in text at four characters each.

def approximate_tokens(text: 'str') -> 'int'

Typed errors: None declared.

Runnable recipe: examples/run_loop.py — all effects converge on the runtime boundary.

tesserix_adk.runtime.prompt.assemble_prompt

Stability: alpha

Compose one turn's prompt in the documented order.

def assemble_prompt(agent: 'Agent[Any]', user_input: 'str', *, history: 'Iterable[Message]' = (), pinned: 'Iterable[str]' = (), retrieved: 'Iterable[str]' = (), tools: 'Iterable[ToolDeclaration]' = (), output: 'OutputContract | None' = None, tokenizer: 'Tokenizer | None' = None) -> 'Prompt'

Typed errors: ValueError

Runnable recipe: examples/run_loop.py — all effects converge on the runtime boundary.

tesserix_adk.runtime.prompt.wrap_untrusted

Stability: alpha

Return content marked as data the model must not take instruction from.

def wrap_untrusted(content: 'str', *, source: 'str') -> 'str'

Typed errors: ValueError

Runnable recipe: examples/run_loop.py — all effects converge on the runtime boundary.

tesserix_adk.runtime.queue.MemoryWorkQueue

Stability: alpha

A WorkQueue in a dict, keyed by tenant and item.

class MemoryWorkQueue(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'; reap(self) -> 'tuple[WorkItem, ...]'; stats(self, *, queue: 'str' = 'default') -> 'QueueStats'}

Typed errors: None declared.

Runnable recipe: examples/run_loop.py — all effects converge on the runtime boundary.

tesserix_adk.runtime.rate_limit.RateLimiter

Stability: alpha

A shared token bucket over requests and tokens, spending in arrival order.

class RateLimiter(object) {acquire(self, tokens: 'int' = 0) -> 'None'}

Typed errors: ConfigurationError

Runnable recipe: examples/run_loop.py — all effects converge on the runtime boundary.

tesserix_adk.runtime.refuse_if_undecidable

Stability: alpha

Stop before a resume that would have to guess whether a call already happened.

def refuse_if_undecidable(plan: 'ResumePlan') -> 'None'

Typed errors: IndeterminateToolCallError

Runnable recipe: examples/run_loop.py — all effects converge on the runtime boundary.

tesserix_adk.runtime.refuse_unaffordable

Stability: alpha

Raise if estimate does not fit limits.

def refuse_unaffordable(estimate: 'CostEstimate', limits: 'BudgetLimits') -> 'None'

Typed errors: BudgetExceededError

Runnable recipe: examples/run_loop.py — all effects converge on the runtime boundary.

tesserix_adk.runtime.results.ResultFinding

Stability: alpha

One heuristic that matched, and where — never what it matched.

class ResultFinding(object)

Typed errors: None declared.

Runnable recipe: examples/run_loop.py — all effects converge on the runtime boundary.

tesserix_adk.runtime.results.ResultPolicy

Stability: alpha

What a tool's results are held to, and what happens when one looks like an attack.

class ResultPolicy(object)

Typed errors: None declared.

Runnable recipe: examples/run_loop.py — all effects converge on the runtime boundary.

tesserix_adk.runtime.results.ReturningTool

Stability: alpha · Kind: Protocol

The little a boundary needs to know about whatever returned a value.

class ReturningTool(Protocol)

Typed errors: None declared.

Runnable recipe: examples/run_loop.py — all effects converge on the runtime boundary.

tesserix_adk.runtime.results.ToolResult

Stability: alpha

A validated tool result, and everything needed to read it as data.

class ToolResult(object) {rendered(self) -> 'str'}

Typed errors: None declared.

Runnable recipe: examples/run_loop.py — all effects converge on the runtime boundary.

tesserix_adk.runtime.results.ToolResultBoundary

Stability: alpha

The one place a tool's return value becomes something a model may read.

class ToolResultBoundary(object) {checked(self, tool: 'ReturningTool', value: 'object', *, tenant: 'str' = '') -> 'ToolResult'}

Typed errors: None declared.

Runnable recipe: examples/run_loop.py — all effects converge on the runtime boundary.

tesserix_adk.runtime.resume.HistoryStore

Stability: alpha · Kind: Protocol

Where a transcript too large to carry inline is kept.

class HistoryStore(Protocol) {fetch(self, handle: 'str', *, tenant: 'str') -> 'Sequence[Message] | None'}

Typed errors: None declared.

Runnable recipe: examples/run_loop.py — all effects converge on the runtime boundary.

tesserix_adk.runtime.resume.ResumedRun

Stability: alpha

A run taken over: the frontier, the transcript, the plan and the lease held on it.

class ResumedRun(object)

Typed errors: None declared.

Runnable recipe: examples/run_loop.py — all effects converge on the runtime boundary.

tesserix_adk.runtime.resume.Resumer

Stability: alpha

Takes a run over, in the order that makes taking it over safe.

class Resumer(object) {holder(self, worker: 'str') -> 'Leaseholder'; resume(self, run_id: 'str', *, tenant: 'str', worker: 'str') -> 'ResumedRun | None'}

Typed errors: None declared.

Runnable recipe: examples/run_loop.py — all effects converge on the runtime boundary.

tesserix_adk.runtime.retry.RetryPlan

Stability: alpha

Applies one RetryConfig: what to retry, and how long to wait first.

class RetryPlan(object) {delay_for(self, attempt: 'int', *, retry_after: 'float | None' = None) -> 'float | None'; retryable(self, failure: 'BaseException') -> 'bool'}

Typed errors: None declared.

Runnable recipe: examples/run_loop.py — all effects converge on the runtime boundary.

tesserix_adk.runtime.scrubbed

Stability: alpha

Return checkpoint with credential-shaped values masked, ready to persist.

def scrubbed(checkpoint: 'Checkpoint', extra_patterns: 'Sequence[str]' = ()) -> 'Checkpoint'

Typed errors: None declared.

Runnable recipe: examples/run_loop.py — all effects converge on the runtime boundary.

tesserix_adk.runtime.self_granted

Stability: alpha

Whether the answer names the agent that asked the question.

def self_granted(record: 'ApprovalRecord', decision: 'ApprovalDecision') -> 'bool'

Typed errors: None declared.

Runnable recipe: examples/run_loop.py — all effects converge on the runtime boundary.

tesserix_adk.runtime.spend.budgeted_stream

Stability: alpha

Pass events through, charging each reported total against budget.

def budgeted_stream(events: 'AsyncIterator[StreamEvent]', budget: 'BudgetPolicy') -> 'AsyncIterator[StreamEvent]'

Typed errors: BudgetExceededError, BudgetUnavailableError

Runnable recipe: examples/run_loop.py — all effects converge on the runtime boundary.

tesserix_adk.runtime.state.MemoryStateStore

Stability: alpha

A StateStore in two dicts, keyed by tenant and id.

class MemoryStateStore(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'; put_run(self, record: 'RunRecord') -> 'RunRecord'; put_session(self, record: 'SessionRecord') -> 'SessionRecord'}

Typed errors: None declared.

Runnable recipe: examples/run_loop.py — all effects converge on the runtime boundary.

tesserix_adk.runtime.structured.OutputContract

Stability: alpha

What the model was asked for, and what will be accepted back.

class OutputContract(object) {parse(self, content: 'str') -> 'BaseModel'; repair_prompt(self, violation: 'SchemaViolationError') -> 'str'}

Typed errors: None declared.

Runnable recipe: examples/run_loop.py — all effects converge on the runtime boundary.

tesserix_adk.runtime.structured.unwrap_fenced

Stability: alpha

Return content with an enclosing code fence removed, and whether one was removed.

def unwrap_fenced(content: 'str') -> 'tuple[str, bool]'

Typed errors: None declared.

Runnable recipe: examples/run_loop.py — all effects converge on the runtime boundary.

tesserix_adk.runtime.supervisor.AddressableSubagent

Stability: alpha · Kind: Protocol

A non-native agent that a supervisor can address under the same run bounds.

class AddressableSubagent(Protocol) {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[AddressableOutputT]'}

Typed errors: None declared.

Runnable recipe: examples/run_loop.py — all effects converge on the runtime boundary.

tesserix_adk.runtime.supervisor.DelegationResult

Stability: alpha

What one delegation gave back.

class DelegationResult(Generic)

Typed errors: None declared.

Runnable recipe: examples/run_loop.py — all effects converge on the runtime boundary.

tesserix_adk.runtime.supervisor.Roster

Stability: alpha

Who a supervisor may hand work to, and how a task finds one of them.

class Roster(object) {matching(self, needs: 'Collection[str]') -> 'Specialist | None'}

Typed errors: ConfigurationError

Runnable recipe: examples/run_loop.py — all effects converge on the runtime boundary.

tesserix_adk.runtime.supervisor.Specialist

Stability: alpha

One agent a supervisor may hand work to, and what it declared it can do.

class Specialist(object)

Typed errors: None declared.

Runnable recipe: examples/run_loop.py — all effects converge on the runtime boundary.

tesserix_adk.runtime.supervisor.Supervisor

Stability: alpha

One agent handing work to workers that can never hold or spend more than it does.

class Supervisor(object) {cancel(self, reason: 'str' = 'the supervisor was cancelled') -> 'None'; delegate(self, task: 'str', *, needs: 'Collection[str]', budget: 'BudgetLimits | None' = None, writes: 'str | None' = None, fatal: 'bool' = False, run_id: 'str | None' = None) -> 'DelegationResult[Any]'}

Typed errors: None declared.

Runnable recipe: examples/run_loop.py — all effects converge on the runtime boundary.

tesserix_adk.runtime.suspension.ApprovalDeferred

Stability: alpha

Raised by a gate to say the answer will arrive long after this process is gone.

class ApprovalDeferred(Exception)

Typed errors: None declared.

Runnable recipe: examples/run_loop.py — all effects converge on the runtime boundary.

tesserix_adk.runtime.suspension.DeferringGate

Stability: alpha

An approval gate that stops the run instead of waiting on it.

class DeferringGate(object) {pending(self, *, tenant: 'str') -> 'tuple[SuspendedRun, ...]'; redeem(self, token: 'str', *, tenant: 'str', presented_by: 'str') -> 'SuspendedRun'; request(self, record: 'ApprovalRecord') -> 'ApprovalDecision'}

Typed errors: None declared.

Runnable recipe: examples/run_loop.py — all effects converge on the runtime boundary.

tesserix_adk.runtime.suspension.MemorySuspensionStore

Stability: alpha

A SuspensionStore in a dict, keyed by tenant and run.

class MemorySuspensionStore(object) {attempted(self, attempt: 'TokenAttempt') -> 'None'; by_token(self, token_digest: 'str', *, tenant: 'str') -> 'SuspendedRun | None'; forget(self, run_id: 'str', *, tenant: 'str') -> 'None'; get(self, run_id: 'str', *, tenant: 'str') -> 'SuspendedRun | None'; pending(self, *, tenant: 'str') -> 'tuple[SuspendedRun, ...]'; put(self, suspended: 'SuspendedRun') -> 'None'; spend(self, run_id: 'str', *, tenant: 'str') -> 'bool'}

Typed errors: None declared.

Runnable recipe: examples/run_loop.py — all effects converge on the runtime boundary.

tesserix_adk.runtime.unwrap_fenced

Stability: alpha

Return content with an enclosing code fence removed, and whether one was removed.

def unwrap_fenced(content: 'str') -> 'tuple[str, bool]'

Typed errors: None declared.

Runnable recipe: examples/run_loop.py — all effects converge on the runtime boundary.

tesserix_adk.runtime.wrap_untrusted

Stability: alpha

Return content marked as data the model must not take instruction from.

def wrap_untrusted(content: 'str', *, source: 'str') -> 'str'

Typed errors: ValueError

Runnable recipe: examples/run_loop.py — all effects converge on the runtime boundary.