{"nodes": [{"id": "$graphify-root$_scripts_validate_tailnet_policy", "label": "validate-tailnet-policy", "file_type": "code", "source_file": "scripts/validate-tailnet-policy", "source_location": "L1"}, {"id": "$graphify-root$_scripts_validate_tailnet_policy_strip_hujson", "label": "strip_hujson()", "file_type": "code", "source_file": "scripts/validate-tailnet-policy", "source_location": "L17", "_callable": true}, {"id": "$graphify-root$_scripts_validate_tailnet_policy_parse_simple_inventory", "label": "parse_simple_inventory()", "file_type": "code", "source_file": "scripts/validate-tailnet-policy", "source_location": "L98", "_callable": true}, {"id": "path", "label": "Path", "file_type": "code", "source_file": "", "source_location": "", "origin_file": "$graphify-root$/scripts/validate-tailnet-policy"}, {"id": "$graphify-root$_scripts_validate_tailnet_policy_require", "label": "require()", "file_type": "code", "source_file": "scripts/validate-tailnet-policy", "source_location": "L125", "_callable": true}, {"id": "$graphify-root$_scripts_validate_tailnet_policy_main", "label": "main()", "file_type": "code", "source_file": "scripts/validate-tailnet-policy", "source_location": "L130", "_callable": true}, {"id": "$graphify-root$_scripts_validate_tailnet_policy_rationale_2", "label": "Validate the repo-managed Tailscale policy without contacting Tailscale.", "file_type": "rationale", "source_file": "scripts/validate-tailnet-policy", "source_location": "L2"}], "edges": [{"source": "$graphify-root$_scripts_validate_tailnet_policy", "target": "json", "relation": "imports", "context": "import", "confidence": "EXTRACTED", "source_file": "scripts/validate-tailnet-policy", "source_location": "L6", "weight": 1.0}, {"source": "$graphify-root$_scripts_validate_tailnet_policy", "target": "pathlib", "relation": "imports", "context": "import", "confidence": "EXTRACTED", "source_file": "scripts/validate-tailnet-policy", "source_location": "L7", "weight": 1.0}, {"source": "$graphify-root$_scripts_validate_tailnet_policy", "target": "re", "relation": "imports", "context": "import", "confidence": "EXTRACTED", "source_file": "scripts/validate-tailnet-policy", "source_location": "L8", "weight": 1.0}, {"source": "$graphify-root$_scripts_validate_tailnet_policy", "target": "sys", "relation": "imports", "context": "import", "confidence": "EXTRACTED", "source_file": "scripts/validate-tailnet-policy", "source_location": "L9", "weight": 1.0}, {"source": "$graphify-root$_scripts_validate_tailnet_policy", "target": "$graphify-root$_scripts_validate_tailnet_policy_strip_hujson", "relation": "contains", "confidence": "EXTRACTED", "source_file": "scripts/validate-tailnet-policy", "source_location": "L17", "weight": 1.0}, {"source": "$graphify-root$_scripts_validate_tailnet_policy", "target": "$graphify-root$_scripts_validate_tailnet_policy_parse_simple_inventory", "relation": "contains", "confidence": "EXTRACTED", "source_file": "scripts/validate-tailnet-policy", "source_location": "L98", "weight": 1.0}, {"source": "$graphify-root$_scripts_validate_tailnet_policy_parse_simple_inventory", "target": "path", "relation": "references", "context": "parameter_type", "confidence": "EXTRACTED", "source_file": "scripts/validate-tailnet-policy", "source_location": "L98", "weight": 1.0}, {"source": "$graphify-root$_scripts_validate_tailnet_policy", "target": "$graphify-root$_scripts_validate_tailnet_policy_require", "relation": "contains", "confidence": "EXTRACTED", "source_file": "scripts/validate-tailnet-policy", "source_location": "L125", "weight": 1.0}, {"source": "$graphify-root$_scripts_validate_tailnet_policy", "target": "$graphify-root$_scripts_validate_tailnet_policy_main", "relation": "contains", "confidence": "EXTRACTED", "source_file": "scripts/validate-tailnet-policy", "source_location": "L130", "weight": 1.0}, {"source": "$graphify-root$_scripts_validate_tailnet_policy_main", "target": "$graphify-root$_scripts_validate_tailnet_policy_strip_hujson", "relation": "calls", "context": "call", "confidence": "EXTRACTED", "source_file": "scripts/validate-tailnet-policy", "source_location": "L132", "weight": 1.0}, {"source": "$graphify-root$_scripts_validate_tailnet_policy_main", "target": "$graphify-root$_scripts_validate_tailnet_policy_parse_simple_inventory", "relation": "calls", "context": "call", "confidence": "EXTRACTED", "source_file": "scripts/validate-tailnet-policy", "source_location": "L133", "weight": 1.0}, {"source": "$graphify-root$_scripts_validate_tailnet_policy_main", "target": "$graphify-root$_scripts_validate_tailnet_policy_require", "relation": "calls", "context": "call", "confidence": "EXTRACTED", "source_file": "scripts/validate-tailnet-policy", "source_location": "L135", "weight": 1.0}, {"source": "$graphify-root$_scripts_validate_tailnet_policy_rationale_2", "target": "$graphify-root$_scripts_validate_tailnet_policy", "relation": "rationale_for", "confidence": "EXTRACTED", "source_file": "scripts/validate-tailnet-policy", "source_location": "L2", "weight": 1.0}], "raw_calls": [{"caller_nid": "$graphify-root$_scripts_validate_tailnet_policy_strip_hujson", "callee": "append", "is_member_call": true, "source_file": "scripts/validate-tailnet-policy", "source_location": "L28", "receiver": "output"}, {"caller_nid": "$graphify-root$_scripts_validate_tailnet_policy_strip_hujson", "callee": "append", "is_member_call": true, "source_file": "scripts/validate-tailnet-policy", "source_location": "L40", "receiver": "output"}, {"caller_nid": "$graphify-root$_scripts_validate_tailnet_policy_strip_hujson", "callee": "append", "is_member_call": true, "source_file": "scripts/validate-tailnet-policy", "source_location": "L57", "receiver": "output"}, {"caller_nid": "$graphify-root$_scripts_validate_tailnet_policy_strip_hujson", "callee": "join", "is_member_call": true, "source_file": "scripts/validate-tailnet-policy", "source_location": "L60", "receiver": null}, {"caller_nid": "$graphify-root$_scripts_validate_tailnet_policy_strip_hujson", "callee": "append", "is_member_call": true, "source_file": "scripts/validate-tailnet-policy", "source_location": "L68", "receiver": "cleaned"}, {"caller_nid": "$graphify-root$_scripts_validate_tailnet_policy_strip_hujson", "callee": "append", "is_member_call": true, "source_file": "scripts/validate-tailnet-policy", "source_location": "L80", "receiver": "cleaned"}, {"caller_nid": "$graphify-root$_scripts_validate_tailnet_policy_strip_hujson", "callee": "isspace", "is_member_call": true, "source_file": "scripts/validate-tailnet-policy", "source_location": "L86", "receiver": null}, {"caller_nid": "$graphify-root$_scripts_validate_tailnet_policy_strip_hujson", "callee": "append", "is_member_call": true, "source_file": "scripts/validate-tailnet-policy", "source_location": "L92", "receiver": "cleaned"}, {"caller_nid": "$graphify-root$_scripts_validate_tailnet_policy_strip_hujson", "callee": "join", "is_member_call": true, "source_file": "scripts/validate-tailnet-policy", "source_location": "L95", "receiver": null}, {"caller_nid": "$graphify-root$_scripts_validate_tailnet_policy_parse_simple_inventory", "callee": "compile", "is_member_call": true, "source_file": "scripts/validate-tailnet-policy", "source_location": "L101", "receiver": "re"}, {"caller_nid": "$graphify-root$_scripts_validate_tailnet_policy_parse_simple_inventory", "callee": "splitlines", "is_member_call": true, "source_file": "scripts/validate-tailnet-policy", "source_location": "L103", "receiver": null}, {"caller_nid": "$graphify-root$_scripts_validate_tailnet_policy_parse_simple_inventory", "callee": "read_text", "is_member_call": true, "source_file": "scripts/validate-tailnet-policy", "source_location": "L103", "receiver": "path"}, {"caller_nid": "$graphify-root$_scripts_validate_tailnet_policy_parse_simple_inventory", "callee": "strip", "is_member_call": true, "source_file": "scripts/validate-tailnet-policy", "source_location": "L104", "receiver": "raw_line"}, {"caller_nid": "$graphify-root$_scripts_validate_tailnet_policy_parse_simple_inventory", "callee": "startswith", "is_member_call": true, "source_file": "scripts/validate-tailnet-policy", "source_location": "L104", "receiver": null}, {"caller_nid": "$graphify-root$_scripts_validate_tailnet_policy_parse_simple_inventory", "callee": "lstrip", "is_member_call": true, "source_file": "scripts/validate-tailnet-policy", "source_location": "L104", "receiver": "raw_line"}, {"caller_nid": "$graphify-root$_scripts_validate_tailnet_policy_parse_simple_inventory", "callee": "startswith", "is_member_call": true, "source_file": "scripts/validate-tailnet-policy", "source_location": "L104", "receiver": null}, {"caller_nid": "$graphify-root$_scripts_validate_tailnet_policy_parse_simple_inventory", "callee": "lstrip", "is_member_call": true, "source_file": "scripts/validate-tailnet-policy", "source_location": "L104", "receiver": "raw_line"}, {"caller_nid": "$graphify-root$_scripts_validate_tailnet_policy_parse_simple_inventory", "callee": "match", "is_member_call": true, "source_file": "scripts/validate-tailnet-policy", "source_location": "L106", "receiver": "pattern"}, {"caller_nid": "$graphify-root$_scripts_validate_tailnet_policy_parse_simple_inventory", "callee": "group", "is_member_call": true, "source_file": "scripts/validate-tailnet-policy", "source_location": "L109", "receiver": "match"}, {"caller_nid": "$graphify-root$_scripts_validate_tailnet_policy_parse_simple_inventory", "callee": "group", "is_member_call": true, "source_file": "scripts/validate-tailnet-policy", "source_location": "L110", "receiver": "match"}, {"caller_nid": "$graphify-root$_scripts_validate_tailnet_policy_parse_simple_inventory", "callee": "strip", "is_member_call": true, "source_file": "scripts/validate-tailnet-policy", "source_location": "L111", "receiver": null}, {"caller_nid": "$graphify-root$_scripts_validate_tailnet_policy_parse_simple_inventory", "callee": "group", "is_member_call": true, "source_file": "scripts/validate-tailnet-policy", "source_location": "L111", "receiver": "match"}, {"caller_nid": "$graphify-root$_scripts_validate_tailnet_policy_parse_simple_inventory", "callee": "pop", "is_member_call": true, "source_file": "scripts/validate-tailnet-policy", "source_location": "L113", "receiver": "stack"}, {"caller_nid": "$graphify-root$_scripts_validate_tailnet_policy_parse_simple_inventory", "callee": "join", "is_member_call": true, "source_file": "scripts/validate-tailnet-policy", "source_location": "L114", "receiver": null}, {"caller_nid": "$graphify-root$_scripts_validate_tailnet_policy_parse_simple_inventory", "callee": "append", "is_member_call": true, "source_file": "scripts/validate-tailnet-policy", "source_location": "L116", "receiver": "stack"}, {"caller_nid": "$graphify-root$_scripts_validate_tailnet_policy_parse_simple_inventory", "callee": "strip", "is_member_call": true, "source_file": "scripts/validate-tailnet-policy", "source_location": "L119", "receiver": null}, {"caller_nid": "$graphify-root$_scripts_validate_tailnet_policy_parse_simple_inventory", "callee": "split", "is_member_call": true, "source_file": "scripts/validate-tailnet-policy", "source_location": "L119", "receiver": "value"}, {"caller_nid": "$graphify-root$_scripts_validate_tailnet_policy_parse_simple_inventory", "callee": "strip", "is_member_call": true, "source_file": "scripts/validate-tailnet-policy", "source_location": "L120", "receiver": "value"}, {"caller_nid": "$graphify-root$_scripts_validate_tailnet_policy_require", "callee": "append", "is_member_call": true, "source_file": "scripts/validate-tailnet-policy", "source_location": "L127", "receiver": "failures"}, {"caller_nid": "$graphify-root$_scripts_validate_tailnet_policy_main", "callee": "loads", "is_member_call": true, "source_file": "scripts/validate-tailnet-policy", "source_location": "L132", "receiver": "json"}, {"caller_nid": "$graphify-root$_scripts_validate_tailnet_policy_main", "callee": "read_text", "is_member_call": true, "source_file": "scripts/validate-tailnet-policy", "source_location": "L132", "receiver": "POLICY_PATH"}, {"caller_nid": "$graphify-root$_scripts_validate_tailnet_policy_main", "callee": "INVENTORY_PATH", "is_member_call": false, "indirect": true, "context": "argument", "source_file": "scripts/validate-tailnet-policy", "source_location": "L133"}, {"caller_nid": "$graphify-root$_scripts_validate_tailnet_policy_main", "callee": "dict", "is_member_call": false, "indirect": true, "context": "argument", "source_file": "scripts/validate-tailnet-policy", "source_location": "L135"}, {"caller_nid": "$graphify-root$_scripts_validate_tailnet_policy_main", "callee": "get", "is_member_call": true, "source_file": "scripts/validate-tailnet-policy", "source_location": "L135", "receiver": "policy"}, {"caller_nid": "$graphify-root$_scripts_validate_tailnet_policy_main", "callee": "list", "is_member_call": false, "indirect": true, "context": "argument", "source_file": "scripts/validate-tailnet-policy", "source_location": "L136"}, {"caller_nid": "$graphify-root$_scripts_validate_tailnet_policy_main", "callee": "get", "is_member_call": true, "source_file": "scripts/validate-tailnet-policy", "source_location": "L136", "receiver": "policy"}, {"caller_nid": "$graphify-root$_scripts_validate_tailnet_policy_main", "callee": "dict", "is_member_call": false, "indirect": true, "context": "argument", "source_file": "scripts/validate-tailnet-policy", "source_location": "L137"}, {"caller_nid": "$graphify-root$_scripts_validate_tailnet_policy_main", "callee": "get", "is_member_call": true, "source_file": "scripts/validate-tailnet-policy", "source_location": "L137", "receiver": "policy"}, {"caller_nid": "$graphify-root$_scripts_validate_tailnet_policy_main", "callee": "get", "is_member_call": true, "source_file": "scripts/validate-tailnet-policy", "source_location": "L139", "receiver": "policy"}, {"caller_nid": "$graphify-root$_scripts_validate_tailnet_policy_main", "callee": "dict", "is_member_call": false, "indirect": true, "context": "argument", "source_file": "scripts/validate-tailnet-policy", "source_location": "L140"}, {"caller_nid": "$graphify-root$_scripts_validate_tailnet_policy_main", "callee": "get", "is_member_call": true, "source_file": "scripts/validate-tailnet-policy", "source_location": "L142", "receiver": "inventory"}, {"caller_nid": "$graphify-root$_scripts_validate_tailnet_policy_main", "callee": "get", "is_member_call": true, "source_file": "scripts/validate-tailnet-policy", "source_location": "L143", "receiver": "inventory"}, {"caller_nid": "$graphify-root$_scripts_validate_tailnet_policy_main", "callee": "get", "is_member_call": true, "source_file": "scripts/validate-tailnet-policy", "source_location": "L144", "receiver": "inventory"}, {"caller_nid": "$graphify-root$_scripts_validate_tailnet_policy_main", "callee": "get", "is_member_call": true, "source_file": "scripts/validate-tailnet-policy", "source_location": "L145", "receiver": "inventory"}, {"caller_nid": "$graphify-root$_scripts_validate_tailnet_policy_main", "callee": "items", "is_member_call": true, "source_file": "scripts/validate-tailnet-policy", "source_location": "L147", "receiver": "expected_hosts"}, {"caller_nid": "$graphify-root$_scripts_validate_tailnet_policy_main", "callee": "get", "is_member_call": true, "source_file": "scripts/validate-tailnet-policy", "source_location": "L149", "receiver": "hosts"}, {"caller_nid": "$graphify-root$_scripts_validate_tailnet_policy_main", "callee": "get", "is_member_call": true, "source_file": "scripts/validate-tailnet-policy", "source_location": "L149", "receiver": "hosts"}, {"caller_nid": "$graphify-root$_scripts_validate_tailnet_policy_main", "callee": "get", "is_member_call": true, "source_file": "scripts/validate-tailnet-policy", "source_location": "L151", "receiver": "policy"}, {"caller_nid": "$graphify-root$_scripts_validate_tailnet_policy_main", "callee": "get", "is_member_call": true, "source_file": "scripts/validate-tailnet-policy", "source_location": "L152", "receiver": "acl"}, {"caller_nid": "$graphify-root$_scripts_validate_tailnet_policy_main", "callee": "list", "is_member_call": false, "indirect": true, "context": "argument", "source_file": "scripts/validate-tailnet-policy", "source_location": "L153"}, {"caller_nid": "$graphify-root$_scripts_validate_tailnet_policy_main", "callee": "get", "is_member_call": true, "source_file": "scripts/validate-tailnet-policy", "source_location": "L153", "receiver": "acl"}, {"caller_nid": "$graphify-root$_scripts_validate_tailnet_policy_main", "callee": "list", "is_member_call": false, "indirect": true, "context": "argument", "source_file": "scripts/validate-tailnet-policy", "source_location": "L154"}, {"caller_nid": "$graphify-root$_scripts_validate_tailnet_policy_main", "callee": "get", "is_member_call": true, "source_file": "scripts/validate-tailnet-policy", "source_location": "L154", "receiver": "acl"}]}