rb125 commited on
Commit
62f3f9e
·
1 Parent(s): c2db979

real scores from cdct, ddft, and agt frameworks

Browse files
cgae_engine/audit.py CHANGED
@@ -461,12 +461,16 @@ class AuditOrchestrator:
461
  )
462
 
463
  def _load_cdct_score(self, model_name: str) -> tuple[float, bool]:
464
- """Return (cc_score, used_default). Queries CDCT API for pre-computed score."""
465
  default_cc = 0.5
466
  try:
467
  data = self._cdct.get_score(model_name)
468
  cc = self._extract_score(data, "cc", model_name=model_name)
469
- if cc is not None:
 
 
 
 
470
  logger.info(f" [pre-computed audit] CDCT done for {model_name}: CC={cc:.3f}")
471
  return cc, False
472
  except Exception:
@@ -475,12 +479,16 @@ class AuditOrchestrator:
475
  return default_cc, True
476
 
477
  def _load_ddft_score(self, model_name: str) -> tuple[float, bool]:
478
- """Return (er_score, used_default). Queries DDFT API for pre-computed score."""
479
  default_er = 0.5
480
  try:
481
  data = self._ddft.get_score(model_name)
482
  er = self._extract_score(data, "er", model_name=model_name)
483
- if er is not None:
 
 
 
 
484
  logger.info(f" [pre-computed audit] DDFT done for {model_name}: ER={er:.3f}")
485
  return er, False
486
  except Exception:
@@ -489,26 +497,34 @@ class AuditOrchestrator:
489
  return default_er, True
490
 
491
  def _load_eect_score(self, model_name: str) -> tuple[float, bool]:
492
- """Return (as_score, used_default). Queries EECT API for pre-computed score."""
493
  default_as = 0.5
494
  try:
495
  data = self._eect.get_score(model_name)
496
  as_ = self._extract_score(data, "as_", model_name=model_name)
497
- if as_ is not None:
498
- logger.info(f" [pre-computed audit] EECT done for {model_name}: AS={as_:.3f}")
 
 
 
 
499
  return as_, False
500
  except Exception:
501
  pass
502
- logger.debug(f" [pre-computed audit] EECT fallback for {model_name}: AS={default_as:.3f}")
503
  return default_as, True
504
 
505
  def _load_ih_score(self, model_name: str) -> tuple[float, bool]:
506
- """Return (ih_score, used_default). Queries DDFT API for pre-computed IH score."""
507
  default_ih = 0.7
508
  try:
509
  data = self._ddft.get_score(model_name)
510
  ih = self._extract_score(data, "ih", model_name=model_name)
511
- if ih is not None:
 
 
 
 
512
  return ih, False
513
  except Exception:
514
  pass
 
461
  )
462
 
463
  def _load_cdct_score(self, model_name: str) -> tuple[float, bool]:
464
+ """Return (cc_score, used_default). CDCT returns list of per-concept results."""
465
  default_cc = 0.5
466
  try:
467
  data = self._cdct.get_score(model_name)
468
  cc = self._extract_score(data, "cc", model_name=model_name)
469
+ if cc is None and isinstance(data, list) and data:
470
+ cris = [float(r["CRI"]) for r in data if isinstance(r, dict) and "CRI" in r]
471
+ if cris:
472
+ cc = min(cris)
473
+ if cc is not None and cc > 0:
474
  logger.info(f" [pre-computed audit] CDCT done for {model_name}: CC={cc:.3f}")
475
  return cc, False
476
  except Exception:
 
479
  return default_cc, True
480
 
481
  def _load_ddft_score(self, model_name: str) -> tuple[float, bool]:
482
+ """Return (er_score, used_default). DDFT returns dict with uppercase keys."""
483
  default_er = 0.5
484
  try:
485
  data = self._ddft.get_score(model_name)
486
  er = self._extract_score(data, "er", model_name=model_name)
487
+ if er is None and isinstance(data, dict):
488
+ er_val = data.get("ER") or data.get("er")
489
+ if er_val is not None:
490
+ er = float(er_val)
491
+ if er is not None and er > 0:
492
  logger.info(f" [pre-computed audit] DDFT done for {model_name}: ER={er:.3f}")
493
  return er, False
494
  except Exception:
 
497
  return default_er, True
498
 
499
  def _load_eect_score(self, model_name: str) -> tuple[float, bool]:
500
+ """Return (as_score, used_default). AGT returns as_score key."""
501
  default_as = 0.5
502
  try:
503
  data = self._eect.get_score(model_name)
504
  as_ = self._extract_score(data, "as_", model_name=model_name)
505
+ if as_ is None and isinstance(data, dict):
506
+ val = data.get("as_score") or data.get("AS") or data.get("as")
507
+ if val is not None:
508
+ as_ = float(val)
509
+ if as_ is not None and as_ > 0:
510
+ logger.info(f" [pre-computed audit] AGT done for {model_name}: AS={as_:.3f}")
511
  return as_, False
512
  except Exception:
513
  pass
514
+ logger.debug(f" [pre-computed audit] AGT fallback for {model_name}: AS={default_as:.3f}")
515
  return default_as, True
516
 
517
  def _load_ih_score(self, model_name: str) -> tuple[float, bool]:
518
+ """Return (ih_score, used_default). DDFT returns IH in uppercase."""
519
  default_ih = 0.7
520
  try:
521
  data = self._ddft.get_score(model_name)
522
  ih = self._extract_score(data, "ih", model_name=model_name)
523
+ if ih is None and isinstance(data, dict):
524
+ val = data.get("IH") or data.get("ih")
525
+ if val is not None:
526
+ ih = float(val)
527
+ if ih is not None and ih > 0:
528
  return ih, False
529
  except Exception:
530
  pass
server/live_runner.py CHANGED
@@ -282,6 +282,39 @@ class LiveSimulationRunner:
282
  )
283
  self.economy = Economy(config=econ_config)
284
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
285
  # Initialize audit orchestrator pointing at hosted framework APIs
286
  self.audit = AuditOrchestrator(
287
  cdct_api_url=self.config.cdct_api_url,
 
282
  )
283
  self.economy = Economy(config=econ_config)
284
 
285
+ # Initialize on-chain components (if credentials available)
286
+ self._wallet_manager = None
287
+ self._onchain_bridge = None
288
+ self._ens_manager = None
289
+ try:
290
+ from cgae_engine.wallet import WalletManager
291
+ wm = WalletManager()
292
+ if wm.is_live:
293
+ self._wallet_manager = wm
294
+ self.economy.wallet_manager = wm
295
+ logger.info(f"Wallet manager: treasury={wm.treasury_address}")
296
+ except Exception as e:
297
+ logger.debug(f"Wallet manager unavailable: {e}")
298
+
299
+ try:
300
+ from cgae_engine.onchain import OnChainBridge
301
+ bridge = OnChainBridge()
302
+ if bridge.is_live:
303
+ self._onchain_bridge = bridge
304
+ self.economy.onchain_bridge = bridge
305
+ logger.info("On-chain bridge: connected to CGAERegistry")
306
+ except Exception as e:
307
+ logger.debug(f"On-chain bridge unavailable: {e}")
308
+
309
+ try:
310
+ from cgae_engine.ens import ENSManager
311
+ ens = ENSManager()
312
+ self._ens_manager = ens
313
+ self.economy.ens_manager = ens
314
+ logger.info(f"ENS manager: {ens.parent_name}")
315
+ except Exception as e:
316
+ logger.debug(f"ENS manager unavailable: {e}")
317
+
318
  # Initialize audit orchestrator pointing at hosted framework APIs
319
  self.audit = AuditOrchestrator(
320
  cdct_api_url=self.config.cdct_api_url,
storage/package.json CHANGED
@@ -9,8 +9,8 @@
9
  "check": "node -e \"import('@0gfoundation/0g-ts-sdk').then(m => console.log('SDK ok:', Object.keys(m))).catch(e => console.error('SDK missing:', e.message))\""
10
  },
11
  "dependencies": {
12
- "@0gfoundation/0g-ts-sdk": "^0.7.0",
13
- "ethers": "^6.0.0"
14
  },
15
  "engines": {
16
  "node": ">=18.0.0"
 
9
  "check": "node -e \"import('@0gfoundation/0g-ts-sdk').then(m => console.log('SDK ok:', Object.keys(m))).catch(e => console.error('SDK missing:', e.message))\""
10
  },
11
  "dependencies": {
12
+ "@0gfoundation/0g-ts-sdk": "^1.2.6",
13
+ "ethers": "^6.13.1"
14
  },
15
  "engines": {
16
  "node": ">=18.0.0"