list_edge_types
List every canonical edge type from `UPG_EDGE_CATALOG`, optionally narrowed by `source_type` and/or `target_type`. Each entry carries the edge key (`type`), forward/reverse verbs, classification, and endpoint types. The polymorphic wildcard `"node"` is preserved on polymorphic edges.
Spec Introspectionatomic (read-only)
Arguments
source_typestringoptionalExact-match filter on UPGEdgeDefinition.source_type. Pass "node" to find polymorphic edges with a wildcard source.
target_typestringoptionalExact-match filter on UPGEdgeDefinition.target_type.
Returns
Shape
{ count, edges: Array<{ type, forward_verb, reverse_verb, classification, source_type, target_type }> }Examples
Live call against the Notion example graph.
Output
{
"count": 946,
"edges": [
{
"type": "product_targets_persona",
"forward_verb": "targets",
"reverse_verb": "targeted_by",
"classification": "semantic",
"source_type": "product",
"target_type": "persona"
},
{
"type": "persona_pursues_job",
"forward_verb": "pursues",
"reverse_verb": "pursued_by",
"classification": "semantic",
"source_type": "persona",
"target_type": "job"
},
{
"type": "persona_experiences_need",
"forward_verb": "experiences",
"reverse_verb": "experienced_by",
"classification": "semantic",
"source_type": "persona",
"target_type": "need"
},
{
"type": "persona_aspires_to_desired_outcome",
"forward_verb": "aspires_to",
"reverse_verb": "aspirational_for",
"classification": "hierarchy",
"source_type": "persona",
"target_type": "desired_outcome"
},
{
"type": "persona_incurs_switching_cost",
"forward_verb": "incurs",
"reverse_verb": "incurred_by",
"classification": "hierarchy",
"source_type": "persona",
"target_type": "switching_cost"
},
{
"type": "job_surfaces_need",
"forward_verb": "surfaces",
"reverse_verb": "surfaces_from",
"classification": "causal",
"source_type": "job",
"target_type": "need"
},
{
… (truncated)