I think the only way is to monitor the Up-Adj value of the ISIS interface; if at 0, the adjacency is down; if at 1 the adjacency is up.
(the op-state is up even if the adjacency is down, so won't help...)
(an adjacency in Init state, will have Adj = 1 but Up-Adj = 0)
To pull that that value from the MIB, first find the ifIndex of the logical interface:
lstevens@toolbox:~$ snmpwalk -v 2c -c public 10.8.4.28 .1.3.6.1.4.1.2272.1.63.26
RAPID-CITY::rcIsisLogicalInterfaceIfIndex.1 = INTEGER: 1600
RAPID-CITY::rcIsisLogicalInterfaceIfIndex.2 = INTEGER: 1601
RAPID-CITY::rcIsisLogicalInterfaceIfIndex.3 = INTEGER: 1602
RAPID-CITY::rcIsisLogicalInterfaceIfIndex.4 = INTEGER: 1603
RAPID-CITY::rcIsisLogicalInterfaceIfIndex.5 = INTEGER: 1604
[...]
RAPID-CITY::rcIsisLogicalInterfaceName.1 = STRING: "Site1-VSP4450-1"
RAPID-CITY::rcIsisLogicalInterfaceName.2 = STRING: "Site2-VSP4450-3"
RAPID-CITY::rcIsisLogicalInterfaceName.3 = STRING: "Site3-VSP4900-4"
RAPID-CITY::rcIsisLogicalInterfaceName.4 = STRING: "Site4-XA1480-2"
RAPID-CITY::rcIsisLogicalInterfaceName.5 = STRING: "Site5-XA1480-1"
[...]
lstevens@toolbox:~$abc
Then find the index number of that ifIndex in the ISIS interface table:
lstevens@toolbox:~$ snmpwalk -v 2c -c public 10.8.4.28 .1.3.6.1.3.37.1.3.2.1.2
RFC1155-SMI::experimental.37.1.3.2.1.2.1 = INTEGER: 192
RFC1155-SMI::experimental.37.1.3.2.1.2.2 = INTEGER: 193
RFC1155-SMI::experimental.37.1.3.2.1.2.3 = INTEGER: 194
RFC1155-SMI::experimental.37.1.3.2.1.2.4 = INTEGER: 198
RFC1155-SMI::experimental.37.1.3.2.1.2.5 = INTEGER: 232
RFC1155-SMI::experimental.37.1.3.2.1.2.6 = INTEGER: 236
RFC1155-SMI::experimental.37.1.3.2.1.2.7 = INTEGER: 296
RFC1155-SMI::experimental.37.1.3.2.1.2.8 = INTEGER: 300
RFC1155-SMI::experimental.37.1.3.2.1.2.9 = INTEGER: 1600
RFC1155-SMI::experimental.37.1.3.2.1.2.10 = INTEGER: 1601
RFC1155-SMI::experimental.37.1.3.2.1.2.11 = INTEGER: 1602
RFC1155-SMI::experimental.37.1.3.2.1.2.12 = INTEGER: 1603
RFC1155-SMI::experimental.37.1.3.2.1.2.13 = INTEGER: 1604
lstevens@toolbox:~$
In the above, ifIndex 1600 is index 9 in the table; 1601 ==> 10, etc..
Then you can poll the Up-Adj counters:
lstevens@toolbox:~$ snmpwalk -v 2c -c public 10.8.4.28 .1.3.6.1.4.1.2272.1.63.2.1.10
RAPID-CITY::rcIsisCircuitNumUpAdj.1 = INTEGER: 0
RAPID-CITY::rcIsisCircuitNumUpAdj.2 = INTEGER: 0
RAPID-CITY::rcIsisCircuitNumUpAdj.3 = INTEGER: 1
RAPID-CITY::rcIsisCircuitNumUpAdj.4 = INTEGER: 0
RAPID-CITY::rcIsisCircuitNumUpAdj.5 = INTEGER: 0
RAPID-CITY::rcIsisCircuitNumUpAdj.6 = INTEGER: 0
RAPID-CITY::rcIsisCircuitNumUpAdj.7 = INTEGER: 1
RAPID-CITY::rcIsisCircuitNumUpAdj.8 = INTEGER: 1
RAPID-CITY::rcIsisCircuitNumUpAdj.9 = INTEGER: 1
RAPID-CITY::rcIsisCircuitNumUpAdj.10 = INTEGER: 1
RAPID-CITY::rcIsisCircuitNumUpAdj.11 = INTEGER: 1
RAPID-CITY::rcIsisCircuitNumUpAdj.12 = INTEGER: 1
RAPID-CITY::rcIsisCircuitNumUpAdj.13 = INTEGER: 1
lstevens@toolbox:~$
Good luck!