hyper-sentinel 2.3.2__tar.gz → 2.3.3__tar.gz

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (18) hide show
  1. {hyper_sentinel-2.3.2/src/hyper_sentinel.egg-info → hyper_sentinel-2.3.3}/PKG-INFO +1 -1
  2. {hyper_sentinel-2.3.2 → hyper_sentinel-2.3.3}/pyproject.toml +1 -1
  3. {hyper_sentinel-2.3.2 → hyper_sentinel-2.3.3/src/hyper_sentinel.egg-info}/PKG-INFO +1 -1
  4. {hyper_sentinel-2.3.2 → hyper_sentinel-2.3.3}/src/sentinel/__init__.py +1 -1
  5. {hyper_sentinel-2.3.2 → hyper_sentinel-2.3.3}/src/sentinel/cli.py +24 -4
  6. {hyper_sentinel-2.3.2 → hyper_sentinel-2.3.3}/LICENSE +0 -0
  7. {hyper_sentinel-2.3.2 → hyper_sentinel-2.3.3}/README.md +0 -0
  8. {hyper_sentinel-2.3.2 → hyper_sentinel-2.3.3}/setup.cfg +0 -0
  9. {hyper_sentinel-2.3.2 → hyper_sentinel-2.3.3}/src/hyper_sentinel.egg-info/SOURCES.txt +0 -0
  10. {hyper_sentinel-2.3.2 → hyper_sentinel-2.3.3}/src/hyper_sentinel.egg-info/dependency_links.txt +0 -0
  11. {hyper_sentinel-2.3.2 → hyper_sentinel-2.3.3}/src/hyper_sentinel.egg-info/entry_points.txt +0 -0
  12. {hyper_sentinel-2.3.2 → hyper_sentinel-2.3.3}/src/hyper_sentinel.egg-info/requires.txt +0 -0
  13. {hyper_sentinel-2.3.2 → hyper_sentinel-2.3.3}/src/hyper_sentinel.egg-info/top_level.txt +0 -0
  14. {hyper_sentinel-2.3.2 → hyper_sentinel-2.3.3}/src/sentinel/client.py +0 -0
  15. {hyper_sentinel-2.3.2 → hyper_sentinel-2.3.3}/src/sentinel/exceptions.py +0 -0
  16. {hyper_sentinel-2.3.2 → hyper_sentinel-2.3.3}/src/sentinel/py.typed +0 -0
  17. {hyper_sentinel-2.3.2 → hyper_sentinel-2.3.3}/tests/test_client.py +0 -0
  18. {hyper_sentinel-2.3.2 → hyper_sentinel-2.3.3}/tests/test_integration.py +0 -0
@@ -1,6 +1,6 @@
1
1
  Metadata-Version: 2.4
2
2
  Name: hyper-sentinel
3
- Version: 2.3.2
3
+ Version: 2.3.3
4
4
  Summary: Python SDK for Sentinel — 80+ crypto trading, AI, and market intelligence tools. Free access, usage-based fees.
5
5
  Author-email: Sentinel Labs <dev@hyper-sentinel.com>
6
6
  License-Expression: AGPL-3.0-only
@@ -4,7 +4,7 @@ build-backend = "setuptools.build_meta"
4
4
 
5
5
  [project]
6
6
  name = "hyper-sentinel"
7
- version = "2.3.2"
7
+ version = "2.3.3"
8
8
  description = "Python SDK for Sentinel — 80+ crypto trading, AI, and market intelligence tools. Free access, usage-based fees."
9
9
  readme = "README.md"
10
10
  license = "AGPL-3.0-only"
@@ -1,6 +1,6 @@
1
1
  Metadata-Version: 2.4
2
2
  Name: hyper-sentinel
3
- Version: 2.3.2
3
+ Version: 2.3.3
4
4
  Summary: Python SDK for Sentinel — 80+ crypto trading, AI, and market intelligence tools. Free access, usage-based fees.
5
5
  Author-email: Sentinel Labs <dev@hyper-sentinel.com>
6
6
  License-Expression: AGPL-3.0-only
@@ -21,7 +21,7 @@ from sentinel.exceptions import (
21
21
  ToolNotFoundError,
22
22
  )
23
23
 
24
- __version__ = "2.3.2"
24
+ __version__ = "2.3.3"
25
25
  __all__ = [
26
26
  "SentinelClient",
27
27
  "SentinelError",
@@ -543,6 +543,8 @@ def _show_status():
543
543
  if config.get("sentinel_api_key"):
544
544
  key_preview = config["sentinel_api_key"][:16] + "..."
545
545
  auth.add_row("🔑 API Key", f"[s.green]● {key_preview}[/]", "~/.sentinel/config")
546
+ elif config.get("ai_key"):
547
+ auth.add_row("🔑 API Key", "[s.cyan]● AI key set[/] [s.dim](gateway sync pending)[/]", "~/.sentinel/config")
546
548
  else:
547
549
  auth.add_row("🔑 API Key", "[s.dim]○ Not configured[/]", "run sentinel-setup")
548
550
 
@@ -576,7 +578,7 @@ def _show_status():
576
578
  gw.add_row("🔧 Tools", "[s.green]● 62+ registered[/]", "crypto · equities · AI · social · trading")
577
579
 
578
580
  # Test connectivity if we have a key
579
- if config.get("sentinel_api_key"):
581
+ if config.get("sentinel_api_key") or config.get("ai_key"):
580
582
  gw.add_row("📶 Status", "[s.dim]run 'sentinel test' to verify[/]", "")
581
583
  else:
582
584
  gw.add_row("📶 Status", "[s.dim]○ Not authenticated[/]", "run sentinel-setup")
@@ -676,11 +678,29 @@ def _run_test():
676
678
  padding=(0, 3),
677
679
  ))
678
680
 
679
- if not config.get("sentinel_api_key"):
681
+ if not config.get("sentinel_api_key") and not config.get("ai_key"):
680
682
  console.print(" [s.error]✗ No API key found[/] — run [bold]sentinel-setup[/] first.\n")
681
683
  return
682
684
 
683
- api_key = config["sentinel_api_key"]
685
+ # If we have ai_key but no sentinel_api_key, try to register now
686
+ api_key = config.get("sentinel_api_key", "")
687
+ if not api_key and config.get("ai_key"):
688
+ console.print(" [s.dim]Registering with gateway...[/]", end=" ")
689
+ result = _register_with_gateway(config["ai_key"])
690
+ if result.get("api_key"):
691
+ api_key = result["api_key"]
692
+ config["sentinel_api_key"] = api_key
693
+ config["user_id"] = result.get("user_id", "")
694
+ config["tier"] = result.get("tier", "free")
695
+ _save_config(config)
696
+ console.print("[s.cyan]✓[/]")
697
+ else:
698
+ console.print("[s.dim]gateway unavailable — test may fail[/]")
699
+
700
+ if not api_key:
701
+ console.print(" [s.error]✗ Could not obtain API key from gateway.[/]\n")
702
+ return
703
+
684
704
  key_preview = api_key[:16] + "..."
685
705
  console.print(f" [s.dim]Key: {key_preview}[/]")
686
706
  console.print(f" [s.dim]Gateway: {GATEWAY_URL}[/]")
@@ -697,7 +717,7 @@ def _run_test():
697
717
  import httpx
698
718
  client = httpx.Client(
699
719
  base_url=GATEWAY_URL,
700
- timeout=30.0,
720
+ timeout=10.0,
701
721
  headers={"X-API-Key": api_key, "Content-Type": "application/json"},
702
722
  )
703
723
 
File without changes
File without changes
File without changes