hyperforge 1.0.0.post76__tar.gz → 1.0.0.post88__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 (105) hide show
  1. {hyperforge-1.0.0.post76 → hyperforge-1.0.0.post88}/PKG-INFO +1 -1
  2. {hyperforge-1.0.0.post76 → hyperforge-1.0.0.post88}/pyproject.toml +1 -1
  3. {hyperforge-1.0.0.post76 → hyperforge-1.0.0.post88}/src/hyperforge/broker/redis.py +3 -1
  4. {hyperforge-1.0.0.post76 → hyperforge-1.0.0.post88}/src/hyperforge/models.py +9 -3
  5. {hyperforge-1.0.0.post76 → hyperforge-1.0.0.post88}/src/hyperforge/server/session.py +1 -1
  6. {hyperforge-1.0.0.post76 → hyperforge-1.0.0.post88}/src/hyperforge/server/settings.py +2 -0
  7. {hyperforge-1.0.0.post76 → hyperforge-1.0.0.post88}/src/hyperforge/server/web.py +6 -2
  8. {hyperforge-1.0.0.post76 → hyperforge-1.0.0.post88}/README.md +0 -0
  9. {hyperforge-1.0.0.post76 → hyperforge-1.0.0.post88}/VERSION +0 -0
  10. {hyperforge-1.0.0.post76 → hyperforge-1.0.0.post88}/src/hyperforge/__init__.py +0 -0
  11. {hyperforge-1.0.0.post76 → hyperforge-1.0.0.post88}/src/hyperforge/agent.py +0 -0
  12. {hyperforge-1.0.0.post76 → hyperforge-1.0.0.post88}/src/hyperforge/alembic/README +0 -0
  13. {hyperforge-1.0.0.post76 → hyperforge-1.0.0.post88}/src/hyperforge/alembic/env.py +0 -0
  14. {hyperforge-1.0.0.post76 → hyperforge-1.0.0.post88}/src/hyperforge/alembic/script.py.mako +0 -0
  15. {hyperforge-1.0.0.post76 → hyperforge-1.0.0.post88}/src/hyperforge/alembic/versions/049a4aed19e1_create_generation_table.py +0 -0
  16. {hyperforge-1.0.0.post76 → hyperforge-1.0.0.post88}/src/hyperforge/alembic/versions/1416cb41bd49_add_downloads_table.py +0 -0
  17. {hyperforge-1.0.0.post76 → hyperforge-1.0.0.post88}/src/hyperforge/alembic/versions/2847934e2d59_unique_driver.py +0 -0
  18. {hyperforge-1.0.0.post76 → hyperforge-1.0.0.post88}/src/hyperforge/alembic/versions/4d89a36c8bda_memory.py +0 -0
  19. {hyperforge-1.0.0.post76 → hyperforge-1.0.0.post88}/src/hyperforge/alembic/versions/72b997edb05d_identifier_for_drivers.py +0 -0
  20. {hyperforge-1.0.0.post76 → hyperforge-1.0.0.post88}/src/hyperforge/alembic/versions/9c6f6a1b4e7f_workflows_default_fk.py +0 -0
  21. {hyperforge-1.0.0.post76 → hyperforge-1.0.0.post88}/src/hyperforge/alembic/versions/b8edb72295e0_.py +0 -0
  22. {hyperforge-1.0.0.post76 → hyperforge-1.0.0.post88}/src/hyperforge/alembic/versions/f3d2c1b0a9e8_soft_delete_workflows.py +0 -0
  23. {hyperforge-1.0.0.post76 → hyperforge-1.0.0.post88}/src/hyperforge/alembic.ini +0 -0
  24. {hyperforge-1.0.0.post76 → hyperforge-1.0.0.post88}/src/hyperforge/api/__init__.py +0 -0
  25. {hyperforge-1.0.0.post76 → hyperforge-1.0.0.post88}/src/hyperforge/api/app.py +0 -0
  26. {hyperforge-1.0.0.post76 → hyperforge-1.0.0.post88}/src/hyperforge/api/authentication.py +0 -0
  27. {hyperforge-1.0.0.post76 → hyperforge-1.0.0.post88}/src/hyperforge/api/commands.py +0 -0
  28. {hyperforge-1.0.0.post76 → hyperforge-1.0.0.post88}/src/hyperforge/api/internal/__init__.py +0 -0
  29. {hyperforge-1.0.0.post76 → hyperforge-1.0.0.post88}/src/hyperforge/api/internal/inspect.py +0 -0
  30. {hyperforge-1.0.0.post76 → hyperforge-1.0.0.post88}/src/hyperforge/api/internal/router.py +0 -0
  31. {hyperforge-1.0.0.post76 → hyperforge-1.0.0.post88}/src/hyperforge/api/logging.py +0 -0
  32. {hyperforge-1.0.0.post76 → hyperforge-1.0.0.post88}/src/hyperforge/api/models.py +0 -0
  33. {hyperforge-1.0.0.post76 → hyperforge-1.0.0.post88}/src/hyperforge/api/session.py +0 -0
  34. {hyperforge-1.0.0.post76 → hyperforge-1.0.0.post88}/src/hyperforge/api/settings.py +0 -0
  35. {hyperforge-1.0.0.post76 → hyperforge-1.0.0.post88}/src/hyperforge/api/utils.py +0 -0
  36. {hyperforge-1.0.0.post76 → hyperforge-1.0.0.post88}/src/hyperforge/api/v1/__init__.py +0 -0
  37. {hyperforge-1.0.0.post76 → hyperforge-1.0.0.post88}/src/hyperforge/api/v1/agents.py +0 -0
  38. {hyperforge-1.0.0.post76 → hyperforge-1.0.0.post88}/src/hyperforge/api/v1/interaction.py +0 -0
  39. {hyperforge-1.0.0.post76 → hyperforge-1.0.0.post88}/src/hyperforge/api/v1/mcp_content.py +0 -0
  40. {hyperforge-1.0.0.post76 → hyperforge-1.0.0.post88}/src/hyperforge/api/v1/mcp_interaction.py +0 -0
  41. {hyperforge-1.0.0.post76 → hyperforge-1.0.0.post88}/src/hyperforge/api/v1/oauth.py +1 -1
  42. {hyperforge-1.0.0.post76 → hyperforge-1.0.0.post88}/src/hyperforge/api/v1/prompt.py +0 -0
  43. {hyperforge-1.0.0.post76 → hyperforge-1.0.0.post88}/src/hyperforge/api/v1/router.py +0 -0
  44. {hyperforge-1.0.0.post76 → hyperforge-1.0.0.post88}/src/hyperforge/api/v1/schema.py +0 -0
  45. {hyperforge-1.0.0.post76 → hyperforge-1.0.0.post88}/src/hyperforge/api/v1/session.py +0 -0
  46. {hyperforge-1.0.0.post76 → hyperforge-1.0.0.post88}/src/hyperforge/api/v1/utils.py +0 -0
  47. {hyperforge-1.0.0.post76 → hyperforge-1.0.0.post88}/src/hyperforge/api/v1/workflows.py +0 -0
  48. {hyperforge-1.0.0.post76 → hyperforge-1.0.0.post88}/src/hyperforge/arag.py +0 -0
  49. {hyperforge-1.0.0.post76 → hyperforge-1.0.0.post88}/src/hyperforge/broker/__init__.py +0 -0
  50. {hyperforge-1.0.0.post76 → hyperforge-1.0.0.post88}/src/hyperforge/broker/local.py +0 -0
  51. {hyperforge-1.0.0.post76 → hyperforge-1.0.0.post88}/src/hyperforge/configure.py +0 -0
  52. {hyperforge-1.0.0.post76 → hyperforge-1.0.0.post88}/src/hyperforge/context/__init__.py +0 -0
  53. {hyperforge-1.0.0.post76 → hyperforge-1.0.0.post88}/src/hyperforge/context/agent.py +0 -0
  54. {hyperforge-1.0.0.post76 → hyperforge-1.0.0.post88}/src/hyperforge/context/config.py +0 -0
  55. {hyperforge-1.0.0.post76 → hyperforge-1.0.0.post88}/src/hyperforge/database.py +0 -0
  56. {hyperforge-1.0.0.post76 → hyperforge-1.0.0.post88}/src/hyperforge/db/__init__.py +0 -0
  57. {hyperforge-1.0.0.post76 → hyperforge-1.0.0.post88}/src/hyperforge/db/agents.py +0 -0
  58. {hyperforge-1.0.0.post76 → hyperforge-1.0.0.post88}/src/hyperforge/db/encryption.py +0 -0
  59. {hyperforge-1.0.0.post76 → hyperforge-1.0.0.post88}/src/hyperforge/db/exceptions.py +0 -0
  60. {hyperforge-1.0.0.post76 → hyperforge-1.0.0.post88}/src/hyperforge/db/settings.py +0 -0
  61. {hyperforge-1.0.0.post76 → hyperforge-1.0.0.post88}/src/hyperforge/db/workflow_cleanup.py +0 -0
  62. {hyperforge-1.0.0.post76 → hyperforge-1.0.0.post88}/src/hyperforge/definition.py +0 -0
  63. {hyperforge-1.0.0.post76 → hyperforge-1.0.0.post88}/src/hyperforge/driver.py +0 -0
  64. {hyperforge-1.0.0.post76 → hyperforge-1.0.0.post88}/src/hyperforge/dummy.py +0 -0
  65. {hyperforge-1.0.0.post76 → hyperforge-1.0.0.post88}/src/hyperforge/engine.py +0 -0
  66. {hyperforge-1.0.0.post76 → hyperforge-1.0.0.post88}/src/hyperforge/exceptions.py +0 -0
  67. {hyperforge-1.0.0.post76 → hyperforge-1.0.0.post88}/src/hyperforge/feature_flag.py +0 -0
  68. {hyperforge-1.0.0.post76 → hyperforge-1.0.0.post88}/src/hyperforge/fixtures.py +0 -0
  69. {hyperforge-1.0.0.post76 → hyperforge-1.0.0.post88}/src/hyperforge/interaction.py +0 -0
  70. {hyperforge-1.0.0.post76 → hyperforge-1.0.0.post88}/src/hyperforge/llm.py +0 -0
  71. {hyperforge-1.0.0.post76 → hyperforge-1.0.0.post88}/src/hyperforge/manager.py +0 -0
  72. {hyperforge-1.0.0.post76 → hyperforge-1.0.0.post88}/src/hyperforge/memory/__init__.py +0 -0
  73. {hyperforge-1.0.0.post76 → hyperforge-1.0.0.post88}/src/hyperforge/memory/memory.py +0 -0
  74. {hyperforge-1.0.0.post76 → hyperforge-1.0.0.post88}/src/hyperforge/minimal_fixtures.py +0 -0
  75. {hyperforge-1.0.0.post76 → hyperforge-1.0.0.post88}/src/hyperforge/nua.py +0 -0
  76. {hyperforge-1.0.0.post76 → hyperforge-1.0.0.post88}/src/hyperforge/openapi.py +0 -0
  77. {hyperforge-1.0.0.post76 → hyperforge-1.0.0.post88}/src/hyperforge/prompts.py +0 -0
  78. {hyperforge-1.0.0.post76 → hyperforge-1.0.0.post88}/src/hyperforge/pubsub.py +0 -0
  79. {hyperforge-1.0.0.post76 → hyperforge-1.0.0.post88}/src/hyperforge/py.typed +0 -0
  80. {hyperforge-1.0.0.post76 → hyperforge-1.0.0.post88}/src/hyperforge/redis_utils.py +0 -0
  81. {hyperforge-1.0.0.post76 → hyperforge-1.0.0.post88}/src/hyperforge/retrieval/__init__.py +0 -0
  82. {hyperforge-1.0.0.post76 → hyperforge-1.0.0.post88}/src/hyperforge/retrieval/agent.py +0 -0
  83. {hyperforge-1.0.0.post76 → hyperforge-1.0.0.post88}/src/hyperforge/retrieval/config.py +0 -0
  84. {hyperforge-1.0.0.post76 → hyperforge-1.0.0.post88}/src/hyperforge/server/__init__.py +0 -0
  85. {hyperforge-1.0.0.post76 → hyperforge-1.0.0.post88}/src/hyperforge/server/cache.py +0 -0
  86. {hyperforge-1.0.0.post76 → hyperforge-1.0.0.post88}/src/hyperforge/server/run.py +0 -0
  87. {hyperforge-1.0.0.post76 → hyperforge-1.0.0.post88}/src/hyperforge/server/sandbox.py +1 -1
  88. {hyperforge-1.0.0.post76 → hyperforge-1.0.0.post88}/src/hyperforge/server/utils.py +0 -0
  89. {hyperforge-1.0.0.post76 → hyperforge-1.0.0.post88}/src/hyperforge/settings.py +0 -0
  90. {hyperforge-1.0.0.post76 → hyperforge-1.0.0.post88}/src/hyperforge/standalone/__init__.py +0 -0
  91. {hyperforge-1.0.0.post76 → hyperforge-1.0.0.post88}/src/hyperforge/standalone/agent.py +0 -0
  92. {hyperforge-1.0.0.post76 → hyperforge-1.0.0.post88}/src/hyperforge/standalone/app.py +0 -0
  93. {hyperforge-1.0.0.post76 → hyperforge-1.0.0.post88}/src/hyperforge/standalone/config.py +0 -0
  94. {hyperforge-1.0.0.post76 → hyperforge-1.0.0.post88}/src/hyperforge/standalone/const.py +0 -0
  95. {hyperforge-1.0.0.post76 → hyperforge-1.0.0.post88}/src/hyperforge/standalone/run.py +0 -0
  96. {hyperforge-1.0.0.post76 → hyperforge-1.0.0.post88}/src/hyperforge/standalone/settings.py +0 -0
  97. {hyperforge-1.0.0.post76 → hyperforge-1.0.0.post88}/src/hyperforge/standalone/ui_router.py +0 -0
  98. {hyperforge-1.0.0.post76 → hyperforge-1.0.0.post88}/src/hyperforge/static/assets/index-DLejS5jC.js +0 -0
  99. {hyperforge-1.0.0.post76 → hyperforge-1.0.0.post88}/src/hyperforge/static/assets/index-MoxkZ1_3.css +0 -0
  100. {hyperforge-1.0.0.post76 → hyperforge-1.0.0.post88}/src/hyperforge/static/favicon.svg +0 -0
  101. {hyperforge-1.0.0.post76 → hyperforge-1.0.0.post88}/src/hyperforge/static/index.html +0 -0
  102. {hyperforge-1.0.0.post76 → hyperforge-1.0.0.post88}/src/hyperforge/trace.py +0 -0
  103. {hyperforge-1.0.0.post76 → hyperforge-1.0.0.post88}/src/hyperforge/utils/__init__.py +0 -0
  104. {hyperforge-1.0.0.post76 → hyperforge-1.0.0.post88}/src/hyperforge/utils/http.py +0 -0
  105. {hyperforge-1.0.0.post76 → hyperforge-1.0.0.post88}/src/hyperforge/workflows.py +0 -0
@@ -1,6 +1,6 @@
1
1
  Metadata-Version: 2.4
2
2
  Name: hyperforge
3
- Version: 1.0.0.post76
3
+ Version: 1.0.0.post88
4
4
  Summary: Agentic Framework for Orchestrated Runtime, Governance, and Execution
5
5
  Author: AI Data Team
6
6
  Author-email: AI Data Team <learning@nuclia.com>
@@ -4,7 +4,7 @@ build-backend = "uv_build"
4
4
 
5
5
  [project]
6
6
  name = "hyperforge"
7
- version = "1.0.0.post76"
7
+ version = "1.0.0.post88"
8
8
  authors = [{ name = "AI Data Team", email = "learning@nuclia.com" }]
9
9
  description = "Agentic Framework for Orchestrated Runtime, Governance, and Execution"
10
10
  readme = "README.md"
@@ -99,7 +99,9 @@ class RedisBroker(Broker):
99
99
  logger.warning("Consumer group lost, re-creating...")
100
100
  await self._ensure_consumer_group()
101
101
  else:
102
- logger.exception("Error while subscribing to activations, retrying...")
102
+ logger.exception(
103
+ "Error while subscribing to activations, retrying..."
104
+ )
103
105
  await asyncio.sleep(1)
104
106
  except Exception:
105
107
  logger.exception("Error while subscribing to activations, retrying...")
@@ -336,9 +336,15 @@ class Context(BaseModel):
336
336
  },
337
337
  )
338
338
  return
339
- self.chunks = [
340
- chunk for chunk in self.chunks if chunk.chunk_id in self.citations
341
- ]
339
+ cited_chunk_ids = {
340
+ citation_id
341
+ for citation_id in self.citations
342
+ if not citation_id.startswith("structured-")
343
+ }
344
+ if cited_chunk_ids:
345
+ self.chunks = [
346
+ chunk for chunk in self.chunks if chunk.chunk_id in cited_chunk_ids
347
+ ]
342
348
  self.structured = [
343
349
  s
344
350
  for i, s in enumerate(self.structured)
@@ -111,7 +111,7 @@ class SessionManager:
111
111
  logger.error(f"Module {load_module} could not be loaded")
112
112
 
113
113
  self.activation_task = asyncio.create_task(self.activation_listener())
114
- if health_check:
114
+ if health_check and self.settings.health_check_enabled:
115
115
  self.server = await start_health_check()
116
116
 
117
117
  async def finalize(self):
@@ -45,3 +45,5 @@ class Settings(BaseSettings):
45
45
  # the kbid for internal NUA calls from the account_id request header
46
46
  # instead.
47
47
  standalone: bool = False
48
+
49
+ health_check_enabled: bool = True
@@ -1,8 +1,12 @@
1
+ import os
2
+
1
3
  import prometheus_client # type: ignore
2
4
  from aiohttp import web
3
5
 
4
6
  from hyperforge.server import logger
5
7
 
8
+ PORT = os.environ.get("HEALTH_CHECK_PORT", "8000")
9
+
6
10
 
7
11
  async def http_handler(request: web.Request):
8
12
  if request.path == "/metrics":
@@ -19,10 +23,10 @@ async def start_web_server() -> web.Server:
19
23
  server = web.Server(http_handler) # type: ignore
20
24
  runner = web.ServerRunner(server)
21
25
  await runner.setup()
22
- site = web.TCPSite(runner, "0.0.0.0", 8000)
26
+ site = web.TCPSite(runner, "0.0.0.0", int(PORT))
23
27
  await site.start()
24
28
 
25
- logger.info("======= Serving on http://0.0.0.0:8000/ ======")
29
+ logger.info(f"======= Serving on http://0.0.0.0:{PORT}/ ======")
26
30
  return server
27
31
 
28
32
 
@@ -3,13 +3,13 @@ from urllib.parse import urlencode
3
3
 
4
4
  from cryptography.fernet import InvalidToken
5
5
  from fastapi import Query
6
+ from hyperforge_mcp.http import _fingerprint, decrypt_mcp_oauth_state
6
7
  from starlette.requests import Request
7
8
  from starlette.responses import HTMLResponse
8
9
 
9
10
  from hyperforge.api.settings import Settings
10
11
  from hyperforge.api.v1.router import router
11
12
  from hyperforge.api.v1.utils import tracer
12
- from hyperforge_mcp.http import _fingerprint, decrypt_mcp_oauth_state
13
13
 
14
14
  logger = logging.getLogger(__name__)
15
15
 
@@ -2,12 +2,12 @@ import asyncio
2
2
  from importlib.metadata import version
3
3
 
4
4
  import sentry_sdk
5
+ from hyperforge_restricted import sandbox
5
6
  from nucliadb_telemetry.fastapi import application_metrics
6
7
  from nucliadb_telemetry.logs import setup_logging
7
8
  from nucliadb_telemetry.settings import LogLevel, LogSettings
8
9
  from sentry_sdk.integrations.excepthook import ExcepthookIntegration
9
10
 
10
- from hyperforge_restricted import sandbox
11
11
  from hyperforge.server.settings import Settings
12
12
 
13
13