{"id":"graph-transitive-closure","version":"1.0.0","description":"List directed reachability pairs of path length at least 1, ordered by declared node index.","supported_operations":["graph transitive closure","directed reachability pairs","positive-length reachability pairs"],"unsupported_operations":["counting paths","reflexive closure option","undirected closure","reachability from named sources"],"semantics":["Input is a directed simple graph with unique node ids and unique from-to edges.","Each output pair (from, to) means a directed walk of length at least 1 exists from from to to.","A pair (v, v) is included only when a positive-length directed cycle returns to v, including a self-loop.","Trivial reflexive pairs are omitted when no such cycle exists.","Pairs are ordered by increasing declared from index, then increasing declared to index. Ids are not sorted lexicographically.","An empty graph or a graph with no edges returns an empty pairs array.","More than 500 nodes is rejected. More than 50000 pairs is rejected.","Self-loops and longer cycles are allowed. This operation does not count paths or ignore edge direction."],"limits":{"max_nodes":500,"max_edges":10000,"max_node_id_bytes":256,"max_pairs":50000},"pricing":{"status":"unpriced","charge_usd":null},"input_schema":{"type":"object","additionalProperties":false,"required":["nodes","edges"],"properties":{"nodes":{"type":"array","maxItems":500,"items":{"type":"string","minLength":1,"maxLength":256}},"edges":{"type":"array","maxItems":10000,"items":{"type":"object","additionalProperties":false,"required":["from","to"],"properties":{"from":{"type":"string","minLength":1,"maxLength":256},"to":{"type":"string","minLength":1,"maxLength":256}}}}}},"output_schema":{"type":"object","additionalProperties":false,"required":["pairs"],"properties":{"pairs":{"type":"array","maxItems":50000,"items":{"type":"object","additionalProperties":false,"required":["from","to"],"properties":{"from":{"type":"string"},"to":{"type":"string"}}}}}},"examples":[{"input":{"nodes":["build","test","package","deploy"],"edges":[{"from":"build","to":"test"},{"from":"test","to":"package"},{"from":"package","to":"deploy"},{"from":"build","to":"package"}]},"output":{"pairs":[{"from":"build","to":"test"},{"from":"build","to":"package"},{"from":"build","to":"deploy"},{"from":"test","to":"package"},{"from":"test","to":"deploy"},{"from":"package","to":"deploy"}]}}],"execute_url":"/v1/tools/graph-transitive-closure/versions/1.0.0/execute"}