Provenance<V>
enum
Defines the Causal Accountability, Audit Trail, and Operational Intent of a Pulse.
Provenance documents the transient lifecycle of a signal. While Ontology describes the "Static Scene" (what a node is), Provenance provides the dynamic Chain of Custody (who, why, and how) for every stimulus traversing the reactive tissue.
This metadata is utilised by the Policy Enforcement Point (PEP) to perform Capability-Based Access Control (CBAC) and ensure Execution Traceability.
When to use
- You rarely interact with Provenance directly. Instead, use the
PulseContext factories like
PulseContext.userAction,PulseContext.aiInference, orPulseContext.regulated. These factories populate the relevant provenance dimensions for you. - If you need a custom pulse context, you can create one with the PulseContext constructor, passing the appropriate dimensions manually. But in most cases, the pre‑defined factories are sufficient.
How it works
- Each Provenance dimension is a typed key that holds a value of type
V. - Some dimensions are Static Pillars (
evolvable: false) – they are immutable and cannot be changed once a pulse is created. These anchor the pulse's identity (e.g.,actor,traceId). - Others are Fluid Boundaries (
evolvable: true) – they can be refined as the pulse moves through the graph (e.g.,reason,confidence,priority). - The framework uses these dimensions during validation (via TestCell) and auditing (via the causal trace).
Non‑obvious
- The Provenance.evolvable flag is enforced by the engine – you cannot change
a static pillar via
evolve(). - The
composeandevolvestatic methods are used internally by PulseContext to build contexts. You rarely call them directly. - The integrity dimension is a cryptographic checksum of the payload, ensuring tamper‑proofing – it's automatically handled by the framework.
Example: Creating a Pulse with Provenance
final pulse = Pulse.governed<int>(
payload: 42,
context: PulseContext.userAction(
actor: 'admin_01',
reason: 'Manual override',
priority: 80,
),
);
final fullProvenance = PulseContext.fromEntries([
// --- Static Pillars (Non-Evolvable Identity) ---
Provenance.actor.entry('Autonomous_Optimizer_7'), // Identity Source
Provenance.traceId.entry('trace_882-xf'), // Causal Anchor
Provenance.parentTraceId.entry('trace_881-xf'), // Lineage Link
// --- Fluid Boundaries (Evolvable Intent) ---
Provenance.reason.entry('Resource_Saturation_Detected'), // Rationale
Provenance.purpose.entry('TOPOLOGY_REFRESH'), // Mission Category
Provenance.strategy.entry(ReasoningStrategy.probabilistic), // Logic Pedigree
Provenance.confidence.entry(0.85), // Trust Scalar
Provenance.priority.entry(40), // Urgency Rank
Provenance.compliance.entry('GDPR_EU_DATA_LOCALITY'), // Safety Policy
]);
See also:
- PulseContext – the runtime container for these dimensions.
- Ontology – the static structural identity of a node.
- Mandate – the authority profile of a deputy.
- Inheritance
- Implemented types
-
- Governance<
V>
- Governance<
- Mixed-in types
-
- GovernanceMixin<
Provenance< V> , V>
- GovernanceMixin<
- Available extensions
Values
-
actor
→ const Provenance<
String> -
The unique identifier for the Principal, Service, or AI Agent responsible for initiating or transforming this Pulse.
The
actor(of type String) establishes the Identity Layer of the signal. It is the primary key used by the system to look up the Mandate or permissions associated with the source of the stimulus.When to use
This is set automatically by the PulseContext factories. You rarely need to set it manually.
How it works
During the mutual authorization handshake, the
actoris scrutinised to verify that the source has the required clearance and authority.Non‑obvious
- This is a static pillar – once set, it cannot be changed.
- The framework uses this for identity‑based access control.
Examples
'user_8823_admin'– direct manual intervention.'service_cache_manager'– background maintenance.'agent_thermal_optimizer_4'– AI instance.
const Provenance<String>(false) -
reason
→ const Provenance<
String> -
A semantic justification explaining why the specific Pulse was created or transformed.
While purpose describes the high-level mission,
reasonprovides the Immediate Causal Logic behind a mutation. It is a critical component of the system's Audit Dimension.When to use
This is set automatically by factories, but you can override it when evolving a pulse.
How it works
The
reasonis used for Explainable AI (XAI) and is inspected by integrity gates to ensure the mutation is justified.Non‑obvious
- This is an evolvable dimension – you can refine it as the pulse traverses the graph.
- It should be human‑readable for audit purposes.
Examples
'Clamping signal to [0,1] range to prevent somatic overflow.'- `'Refactoring topology to meet current Resource constraints.'
const Provenance<String>(true) -
purpose
→ const Provenance<
String> -
The strategic operational mission or Mission Category that governs the life‑cycle and routing of a Pulse.
While reason explains the immediate "why",
purposedefines the Strategic Intent. It acts as a high‑level classifier used by the framework for traffic shaping, priority queueing, and somatic shedding.When to use
This is set by the factories (e.g.,
PulseContext.homeostasissets it to'SYSTEM_MAINTENANCE'). You rarely set it manually.How it works
Receptors can use
purposeto filter or prioritise pulses – e.g., dropping analytics pulses when under load.Non‑obvious
- This is evolvable – a pulse can be refined to a more specific purpose as it moves through the graph.
- It is compared against the cell's Ontology.domains during validation.
Examples
'SYSTEM_MAINTENANCE'– background grooming.'USER_TRANSACTION'– user‑driven updates.'FORENSIC_AUDIT'– observational pulses.
const Provenance<String>(true) -
strategy
→ const Provenance<
ReasoningStrategy> -
The specific Reasoning Strategy or algorithmic pedigree used to generate or transform this Pulse.
The
strategydefines the Methodology of Intent. It allows the framework to evaluate the reliability and source logic of a signal.When to use
This is set by factories (e.g.,
aiInferencesets it toprobabilistic).How it works
Integrity gates can reject pulses that use an unacceptable strategy, e.g., a cell might only accept
deterministicsignals.Non‑obvious
- This is evolvable – a
probabilisticsignal can be upgraded todeterministicafter validation. - The strategy influences trust and auditing.
Examples
ReasoningStrategy.deterministic– hard‑coded business rules.ReasoningStrategy.probabilistic– AI/ML generated.ReasoningStrategy.manual– human intervention.
const Provenance<ReasoningStrategy>(true) - This is evolvable – a
-
confidence
→ const Provenance<
double> -
A numerical value (0.0 to 1.0) representing the Reliability Estimate of the pulse's payload.
confidencerepresents the "Certainty Weight" of the stimulus. It is the primary metric for Probabilistic Homeostasis.When to use
This is set by AI‑related factories (e.g.,
aiInference).How it works
TestCells can require a minimum confidence; low‑confidence signals may be routed for supervised approval.
Non‑obvious
- This is evolvable – confidence can be adjusted as more evidence is gathered.
- The default is 1.0 for deterministic and manual signals.
Examples
0.65– uncertain AI suggestion.0.98– high‑confidence sensor fusion.
const Provenance<double>(true) -
priority
→ const Provenance<
int> -
The Execution Urgency (0-100) assigned to the signal.
prioritydefines the scheduling importance of the Pulse. It determines the signal's position in the dispatch queue.When to use
Set this when you need to control the order of processing. Most factories set it appropriately (e.g.,
userActionsets 60).How it works
The dispatcher uses this to prioritise pulses; higher numbers leapfrog lower ones. The framework uses standard tiers: background (0-20), routine (21-50), high (51-80), critical (81-95), emergency (96-100).
Non‑obvious
- This is evolvable – priority can be promoted or demoted.
- The default is 21 (routine) if not set.
Examples
10– background telemetry.90– critical system recovery.
Priority Tiers:
- 0-20: Background (telemetry, maintenance)
- 21-50: Routine (standard operations)
- 51-80: High (user interactions)
- 81-95: Critical (system safety)
- 96-100: Emergency (system recovery)
const Provenance<int>(true) -
compliance
→ const Provenance<
String> -
The Regulatory Framework or legal protocol that governs the handling of this Pulse.
complianceprovides the Legal Context for the stimulus. It dictates how the payload must be treated, stored, and transmitted.When to use
Use this when the pulse must adhere to specific regulations (GDPR, HIPAA, etc.). The
regulatedfactory sets it automatically.How it works
Integrity gates can block pulses that lack required compliance markers.
Non‑obvious
- This is a static pillar – cannot be changed once set.
- The framework enforces compliance constraints automatically.
Examples
'GDPR'– triggers redaction of PII.'PCI-DSS'– forces encryption and full audit.
const Provenance<String>(false) -
sensitivity
→ const Provenance<
Sensitivity> -
The Information Classification tier of the payload.
sensitivityestablishes the Privacy Perimeter for the signal. It informs the framework how to handle data at rest, in transit, and during observability.When to use
This is set by factories (e.g.,
userActiondefaults topublic;regulatedsetsconfidential).How it works
The framework uses sensitivity to enforce redaction, encryption, and access control.
Non‑obvious
- This is a static pillar – cannot be changed.
- Higher sensitivity requires higher clearance to process.
Examples
Sensitivity.public– safe for logging.Sensitivity.secret– restricted to secure enclaves.
const Provenance<Sensitivity>(false) -
auditLevel
→ const Provenance<
AuditLevel> -
The specific Observability Density applied to this pulse.
auditLeveldefines the Forensic Fidelity of the signal. It determines how much causal metadata and payload information is captured.When to use
This is set by factories – e.g.,
regulatedsetsfull.How it works
The framework uses this to decide what to log and trace.
Non‑obvious
- This is evolvable – a pulse can be promoted to
fullon demand. - Higher audit levels may impact performance.
Examples
AuditLevel.none– high‑frequency telemetry, no logging.AuditLevel.full– forensic‑grade trace.
const Provenance<AuditLevel>(true) - This is evolvable – a pulse can be promoted to
-
traceId
→ const Provenance<
String> -
The globally unique Causal Anchor for tracing a signal across distributed execution paths.
traceIdestablishes the Deterministic Lineage of a pulse. It ensures that every state change can be correlated back to its origin.When to use
This is automatically generated by the framework. You never set it manually.
How it works
The traceId is used for deduplication and to link parent/child pulses.
Non‑obvious
- This is a static pillar – immutable.
- It is generated as a UUID v4.
const Provenance<String>(false) -
parentTraceId
→ const Provenance<
String> -
The traceId of the Pulse that logically preceded or triggered this one.
parentTraceIdestablishes the Causal Link between pulses, enabling multi‑step reasoning chains.When to use
This is automatically set when you evolve a pulse.
How it works
The framework uses this to link a child pulse to its parent, preserving the full causal chain.
Non‑obvious
- This is a static pillar – immutable.
- If a parent pulse is invalidated, children may also be invalidated.
const Provenance<String>(false) -
integrity
→ const Provenance<
String> -
The cryptographic or checksum‑based Verification Signature ensuring the pulse's payload has not been tampered with.
integrityprovides the Immutable Shield for the pulse.When to use
This is automatically computed by the framework. You never set it.
How it works
The framework hashes the payload and stores the hash; on receipt, the hash is re‑computed and compared.
Non‑obvious
- This is a static pillar – immutable.
- If the payload changes, the integrity signature must be re‑generated.
Examples
sha256:e3b0c442...– standard hash.rsa-sig:a92f81...– signed with a private key.
const Provenance<String>(false)
Properties
- evolvable → bool
-
Indicates whether this Provenance Dimension is a structural
invariant or a dynamic operational attribute.
final
- hashCode → int
-
The hash code for this object.
no setterinherited
- index → int
-
A numeric identifier for the enumerated value.
no setterinherited
- name → String
-
Available on Enum, provided by the EnumName extension
The name of the enum value.no setter - runtimeType → Type
-
A representation of the runtime type of the object.
no setterinherited
Methods
-
entry(
V value) → GovernanceEntry< Provenance< V> , V> -
Creates a strongly-typed GovernanceEntry for this governance dimension.
inherited
-
isType(
Object value) → bool -
Validates if the provided
valuematches the expected typeV.inherited -
noSuchMethod(
Invocation invocation) → dynamic -
Invoked when a nonexistent method or property is accessed.
inherited
-
toString(
) → String -
A string representation of this object.
inherited
Operators
-
operator ==(
Object other) → bool -
The equality operator.
inherited
Static Methods
-
compose(
GovernanceEntry< Governance, dynamic> ? resolver(Provenance dimension)) → Iterable<GovernanceEntry< Governance, dynamic> > - Generates a comprehensive Signal Manifest by synthesising a value for every defined dimension in the Provenance ontology.
-
evolve(
GovernanceEntry< Governance, dynamic> ? resolver(Provenance dimension)) → Iterable<GovernanceEntry< Governance, dynamic> > - Syntheses a Specialised Signal Extension by resolving only the fluid dimensions of the Provenance ontology.
Constants
-
values
→ const List<
Provenance> - A constant List of the values in this enum, in order of their declaration.