Witnesses
witnesses
Base classes for witness validation.
WitnessResult represents validation outcomes. ValidationFeedback provides structured error information. WitnessRule is the Protocol for validation rules.
This module lives in axm (core) so that external packages
(axm-n8n, axm-mail, …) can implement witnesses without depending
on axm-engine. The engine re-exports these symbols from
axm_engine.services.witnesses.base for backward compatibility.
ValidationFeedback
dataclass
Structured feedback for validation failures.
Attributes:
| Name | Type | Description |
|---|---|---|
what |
str
|
What failed (brief description) |
why |
str
|
Why it failed (expected vs actual) |
how |
str
|
How to fix it (actionable guidance) |
Source code in packages/axm/src/axm/witnesses.py
WitnessResult
dataclass
Result of a witness validation.
Attributes:
| Name | Type | Description |
|---|---|---|
passed |
bool
|
Whether validation passed |
feedback |
ValidationFeedback | None
|
Feedback if validation failed |
verdict |
str | None
|
Optional routing decision for Gates |
metadata |
dict[str, Any]
|
Optional execution metadata |
Source code in packages/axm/src/axm/witnesses.py
failure(feedback, verdict=None, metadata=None)
classmethod
Create a failing result with feedback.
Source code in packages/axm/src/axm/witnesses.py
| Python | |
|---|---|
success(verdict=None, metadata=None)
classmethod
Create a passing result.
WitnessRule
Bases: Protocol
Protocol for witness validation rules.
Source code in packages/axm/src/axm/witnesses.py
validate(content, **kwargs)
Validate content.
Parameters:
| Name | Type | Description | Default |
|---|---|---|---|
content
|
str
|
The content to validate |
required |
**kwargs
|
Any
|
Additional validation parameters |
{}
|
Returns:
| Type | Description |
|---|---|
WitnessResult
|
WitnessResult indicating pass/fail with feedback |