registry.mojo (6361B)
1 from std.collections import List, Optional 2 3 from json import Value 4 5 from hyf_core.capabilities.explain_result import execute_explain_result 6 from hyf_core.capabilities.query_rewrite import execute_query_rewrite 7 from hyf_core.capabilities.semantic_rank import execute_semantic_rank 8 from hyf_core.errors import ( 9 CapabilityResult, 10 capability_not_implemented_error, 11 failed_capability, 12 ) 13 from hyf_core.request_context import RequestContext 14 15 16 @fieldwise_init 17 struct BusinessCapabilityDescriptor(Copyable, Movable): 18 var id: String 19 var deterministic_enabled: Bool 20 var implemented: Bool 21 var callable: Bool 22 var deterministic_backend: String 23 var assisted_available: Bool 24 var disabled_reason: String 25 26 27 def canonical_business_capabilities() -> List[BusinessCapabilityDescriptor]: 28 var capabilities = List[BusinessCapabilityDescriptor]() 29 capabilities.append( 30 BusinessCapabilityDescriptor( 31 id="query_rewrite", 32 deterministic_enabled=True, 33 implemented=True, 34 callable=True, 35 deterministic_backend="heuristic", 36 assisted_available=False, 37 disabled_reason="", 38 ) 39 ) 40 capabilities.append( 41 BusinessCapabilityDescriptor( 42 id="filter_extraction", 43 deterministic_enabled=False, 44 implemented=False, 45 callable=False, 46 deterministic_backend="", 47 assisted_available=False, 48 disabled_reason="deferred_bootstrap_capability", 49 ) 50 ) 51 capabilities.append( 52 BusinessCapabilityDescriptor( 53 id="semantic_rank", 54 deterministic_enabled=True, 55 implemented=True, 56 callable=True, 57 deterministic_backend="heuristic", 58 assisted_available=False, 59 disabled_reason="", 60 ) 61 ) 62 capabilities.append( 63 BusinessCapabilityDescriptor( 64 id="summarize_listing", 65 deterministic_enabled=False, 66 implemented=False, 67 callable=False, 68 deterministic_backend="", 69 assisted_available=False, 70 disabled_reason="deferred_bootstrap_capability", 71 ) 72 ) 73 capabilities.append( 74 BusinessCapabilityDescriptor( 75 id="summarize_farm", 76 deterministic_enabled=False, 77 implemented=False, 78 callable=False, 79 deterministic_backend="", 80 assisted_available=False, 81 disabled_reason="deferred_bootstrap_capability", 82 ) 83 ) 84 capabilities.append( 85 BusinessCapabilityDescriptor( 86 id="workflow_plan", 87 deterministic_enabled=False, 88 implemented=False, 89 callable=False, 90 deterministic_backend="", 91 assisted_available=False, 92 disabled_reason="deferred_bootstrap_capability", 93 ) 94 ) 95 capabilities.append( 96 BusinessCapabilityDescriptor( 97 id="explain_result", 98 deterministic_enabled=True, 99 implemented=True, 100 callable=True, 101 deterministic_backend="heuristic", 102 assisted_available=False, 103 disabled_reason="", 104 ) 105 ) 106 capabilities.append( 107 BusinessCapabilityDescriptor( 108 id="dedupe_cluster", 109 deterministic_enabled=False, 110 implemented=False, 111 callable=False, 112 deterministic_backend="", 113 assisted_available=False, 114 disabled_reason="deferred_bootstrap_capability", 115 ) 116 ) 117 return capabilities^ 118 119 120 def bootstrap_capability_count() -> Int: 121 return len(canonical_business_capabilities()) 122 123 124 def implemented_deterministic_capability_count() -> Int: 125 var implemented = 0 126 for capability in canonical_business_capabilities(): 127 if capability.deterministic_enabled and capability.implemented: 128 implemented += 1 129 return implemented 130 131 132 def deterministic_enabled_capabilities() -> List[String]: 133 var enabled = List[String]() 134 for capability in canonical_business_capabilities(): 135 if capability.deterministic_enabled: 136 enabled.append(String(capability.id)) 137 return enabled^ 138 139 140 def all_deterministic_capabilities_implemented() -> Bool: 141 return implemented_deterministic_capability_count() == len( 142 deterministic_enabled_capabilities() 143 ) 144 145 146 def deferred_capabilities() -> List[String]: 147 var disabled = List[String]() 148 for capability in canonical_business_capabilities(): 149 if not capability.deterministic_enabled: 150 disabled.append(String(capability.id)) 151 return disabled^ 152 153 154 def canonical_business_capability( 155 capability_id: String, 156 ) -> Optional[BusinessCapabilityDescriptor]: 157 for capability in canonical_business_capabilities(): 158 if capability.id == capability_id: 159 return Optional[BusinessCapabilityDescriptor](capability.copy()) 160 return Optional[BusinessCapabilityDescriptor](None) 161 162 163 def _dispatch_heuristic_registered_business_capability( 164 capability_id: String, input: Value, context: RequestContext 165 ) raises -> CapabilityResult: 166 if capability_id == "query_rewrite": 167 return execute_query_rewrite(input, context) 168 if capability_id == "semantic_rank": 169 return execute_semantic_rank(input, context) 170 if capability_id == "explain_result": 171 return execute_explain_result(input, context) 172 return failed_capability(capability_not_implemented_error(capability_id)) 173 174 def execute_registered_business_capability( 175 capability_id: String, input: Value, context: RequestContext 176 ) raises -> CapabilityResult: 177 var capability = canonical_business_capability(capability_id) 178 if not capability: 179 return failed_capability(capability_not_implemented_error(capability_id)) 180 181 var descriptor = capability.value().copy() 182 if ( 183 not descriptor.deterministic_enabled 184 or not descriptor.implemented 185 or not descriptor.callable 186 ): 187 return failed_capability(capability_not_implemented_error(capability_id)) 188 189 if descriptor.deterministic_backend == "heuristic": 190 return _dispatch_heuristic_registered_business_capability( 191 capability_id, input, context 192 ) 193 194 return failed_capability(capability_not_implemented_error(capability_id))