hyperforge 1.0.0.post66__tar.gz → 1.0.0.post70__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.
- {hyperforge-1.0.0.post66 → hyperforge-1.0.0.post70}/PKG-INFO +2 -1
- {hyperforge-1.0.0.post66 → hyperforge-1.0.0.post70}/pyproject.toml +2 -1
- {hyperforge-1.0.0.post66 → hyperforge-1.0.0.post70}/src/hyperforge/broker/redis.py +14 -3
- {hyperforge-1.0.0.post66 → hyperforge-1.0.0.post70}/src/hyperforge/server/sandbox.py +1 -1
- {hyperforge-1.0.0.post66 → hyperforge-1.0.0.post70}/README.md +0 -0
- {hyperforge-1.0.0.post66 → hyperforge-1.0.0.post70}/VERSION +0 -0
- {hyperforge-1.0.0.post66 → hyperforge-1.0.0.post70}/src/hyperforge/__init__.py +0 -0
- {hyperforge-1.0.0.post66 → hyperforge-1.0.0.post70}/src/hyperforge/agent.py +0 -0
- {hyperforge-1.0.0.post66 → hyperforge-1.0.0.post70}/src/hyperforge/alembic/README +0 -0
- {hyperforge-1.0.0.post66 → hyperforge-1.0.0.post70}/src/hyperforge/alembic/env.py +0 -0
- {hyperforge-1.0.0.post66 → hyperforge-1.0.0.post70}/src/hyperforge/alembic/script.py.mako +0 -0
- {hyperforge-1.0.0.post66 → hyperforge-1.0.0.post70}/src/hyperforge/alembic/versions/049a4aed19e1_create_generation_table.py +0 -0
- {hyperforge-1.0.0.post66 → hyperforge-1.0.0.post70}/src/hyperforge/alembic/versions/1416cb41bd49_add_downloads_table.py +0 -0
- {hyperforge-1.0.0.post66 → hyperforge-1.0.0.post70}/src/hyperforge/alembic/versions/2847934e2d59_unique_driver.py +0 -0
- {hyperforge-1.0.0.post66 → hyperforge-1.0.0.post70}/src/hyperforge/alembic/versions/4d89a36c8bda_memory.py +0 -0
- {hyperforge-1.0.0.post66 → hyperforge-1.0.0.post70}/src/hyperforge/alembic/versions/72b997edb05d_identifier_for_drivers.py +0 -0
- {hyperforge-1.0.0.post66 → hyperforge-1.0.0.post70}/src/hyperforge/alembic/versions/9c6f6a1b4e7f_workflows_default_fk.py +0 -0
- {hyperforge-1.0.0.post66 → hyperforge-1.0.0.post70}/src/hyperforge/alembic/versions/b8edb72295e0_.py +0 -0
- {hyperforge-1.0.0.post66 → hyperforge-1.0.0.post70}/src/hyperforge/alembic/versions/f3d2c1b0a9e8_soft_delete_workflows.py +0 -0
- {hyperforge-1.0.0.post66 → hyperforge-1.0.0.post70}/src/hyperforge/alembic.ini +0 -0
- {hyperforge-1.0.0.post66 → hyperforge-1.0.0.post70}/src/hyperforge/api/__init__.py +0 -0
- {hyperforge-1.0.0.post66 → hyperforge-1.0.0.post70}/src/hyperforge/api/app.py +0 -0
- {hyperforge-1.0.0.post66 → hyperforge-1.0.0.post70}/src/hyperforge/api/authentication.py +0 -0
- {hyperforge-1.0.0.post66 → hyperforge-1.0.0.post70}/src/hyperforge/api/commands.py +0 -0
- {hyperforge-1.0.0.post66 → hyperforge-1.0.0.post70}/src/hyperforge/api/internal/__init__.py +0 -0
- {hyperforge-1.0.0.post66 → hyperforge-1.0.0.post70}/src/hyperforge/api/internal/inspect.py +0 -0
- {hyperforge-1.0.0.post66 → hyperforge-1.0.0.post70}/src/hyperforge/api/internal/router.py +0 -0
- {hyperforge-1.0.0.post66 → hyperforge-1.0.0.post70}/src/hyperforge/api/logging.py +0 -0
- {hyperforge-1.0.0.post66 → hyperforge-1.0.0.post70}/src/hyperforge/api/models.py +0 -0
- {hyperforge-1.0.0.post66 → hyperforge-1.0.0.post70}/src/hyperforge/api/session.py +0 -0
- {hyperforge-1.0.0.post66 → hyperforge-1.0.0.post70}/src/hyperforge/api/settings.py +0 -0
- {hyperforge-1.0.0.post66 → hyperforge-1.0.0.post70}/src/hyperforge/api/utils.py +0 -0
- {hyperforge-1.0.0.post66 → hyperforge-1.0.0.post70}/src/hyperforge/api/v1/__init__.py +0 -0
- {hyperforge-1.0.0.post66 → hyperforge-1.0.0.post70}/src/hyperforge/api/v1/agents.py +0 -0
- {hyperforge-1.0.0.post66 → hyperforge-1.0.0.post70}/src/hyperforge/api/v1/interaction.py +0 -0
- {hyperforge-1.0.0.post66 → hyperforge-1.0.0.post70}/src/hyperforge/api/v1/mcp_content.py +0 -0
- {hyperforge-1.0.0.post66 → hyperforge-1.0.0.post70}/src/hyperforge/api/v1/mcp_interaction.py +0 -0
- {hyperforge-1.0.0.post66 → hyperforge-1.0.0.post70}/src/hyperforge/api/v1/oauth.py +0 -0
- {hyperforge-1.0.0.post66 → hyperforge-1.0.0.post70}/src/hyperforge/api/v1/prompt.py +0 -0
- {hyperforge-1.0.0.post66 → hyperforge-1.0.0.post70}/src/hyperforge/api/v1/router.py +0 -0
- {hyperforge-1.0.0.post66 → hyperforge-1.0.0.post70}/src/hyperforge/api/v1/schema.py +0 -0
- {hyperforge-1.0.0.post66 → hyperforge-1.0.0.post70}/src/hyperforge/api/v1/session.py +0 -0
- {hyperforge-1.0.0.post66 → hyperforge-1.0.0.post70}/src/hyperforge/api/v1/utils.py +0 -0
- {hyperforge-1.0.0.post66 → hyperforge-1.0.0.post70}/src/hyperforge/api/v1/workflows.py +0 -0
- {hyperforge-1.0.0.post66 → hyperforge-1.0.0.post70}/src/hyperforge/arag.py +0 -0
- {hyperforge-1.0.0.post66 → hyperforge-1.0.0.post70}/src/hyperforge/broker/__init__.py +0 -0
- {hyperforge-1.0.0.post66 → hyperforge-1.0.0.post70}/src/hyperforge/broker/local.py +0 -0
- {hyperforge-1.0.0.post66 → hyperforge-1.0.0.post70}/src/hyperforge/configure.py +0 -0
- {hyperforge-1.0.0.post66 → hyperforge-1.0.0.post70}/src/hyperforge/context/__init__.py +0 -0
- {hyperforge-1.0.0.post66 → hyperforge-1.0.0.post70}/src/hyperforge/context/agent.py +0 -0
- {hyperforge-1.0.0.post66 → hyperforge-1.0.0.post70}/src/hyperforge/context/config.py +0 -0
- {hyperforge-1.0.0.post66 → hyperforge-1.0.0.post70}/src/hyperforge/database.py +0 -0
- {hyperforge-1.0.0.post66 → hyperforge-1.0.0.post70}/src/hyperforge/db/__init__.py +0 -0
- {hyperforge-1.0.0.post66 → hyperforge-1.0.0.post70}/src/hyperforge/db/agents.py +0 -0
- {hyperforge-1.0.0.post66 → hyperforge-1.0.0.post70}/src/hyperforge/db/encryption.py +0 -0
- {hyperforge-1.0.0.post66 → hyperforge-1.0.0.post70}/src/hyperforge/db/exceptions.py +0 -0
- {hyperforge-1.0.0.post66 → hyperforge-1.0.0.post70}/src/hyperforge/db/settings.py +0 -0
- {hyperforge-1.0.0.post66 → hyperforge-1.0.0.post70}/src/hyperforge/db/workflow_cleanup.py +0 -0
- {hyperforge-1.0.0.post66 → hyperforge-1.0.0.post70}/src/hyperforge/definition.py +0 -0
- {hyperforge-1.0.0.post66 → hyperforge-1.0.0.post70}/src/hyperforge/driver.py +0 -0
- {hyperforge-1.0.0.post66 → hyperforge-1.0.0.post70}/src/hyperforge/dummy.py +0 -0
- {hyperforge-1.0.0.post66 → hyperforge-1.0.0.post70}/src/hyperforge/engine.py +0 -0
- {hyperforge-1.0.0.post66 → hyperforge-1.0.0.post70}/src/hyperforge/exceptions.py +0 -0
- {hyperforge-1.0.0.post66 → hyperforge-1.0.0.post70}/src/hyperforge/feature_flag.py +0 -0
- {hyperforge-1.0.0.post66 → hyperforge-1.0.0.post70}/src/hyperforge/fixtures.py +0 -0
- {hyperforge-1.0.0.post66 → hyperforge-1.0.0.post70}/src/hyperforge/interaction.py +0 -0
- {hyperforge-1.0.0.post66 → hyperforge-1.0.0.post70}/src/hyperforge/llm.py +0 -0
- {hyperforge-1.0.0.post66 → hyperforge-1.0.0.post70}/src/hyperforge/manager.py +0 -0
- {hyperforge-1.0.0.post66 → hyperforge-1.0.0.post70}/src/hyperforge/memory/__init__.py +0 -0
- {hyperforge-1.0.0.post66 → hyperforge-1.0.0.post70}/src/hyperforge/memory/memory.py +0 -0
- {hyperforge-1.0.0.post66 → hyperforge-1.0.0.post70}/src/hyperforge/minimal_fixtures.py +0 -0
- {hyperforge-1.0.0.post66 → hyperforge-1.0.0.post70}/src/hyperforge/models.py +0 -0
- {hyperforge-1.0.0.post66 → hyperforge-1.0.0.post70}/src/hyperforge/nua.py +0 -0
- {hyperforge-1.0.0.post66 → hyperforge-1.0.0.post70}/src/hyperforge/openapi.py +0 -0
- {hyperforge-1.0.0.post66 → hyperforge-1.0.0.post70}/src/hyperforge/prompts.py +0 -0
- {hyperforge-1.0.0.post66 → hyperforge-1.0.0.post70}/src/hyperforge/pubsub.py +0 -0
- {hyperforge-1.0.0.post66 → hyperforge-1.0.0.post70}/src/hyperforge/py.typed +0 -0
- {hyperforge-1.0.0.post66 → hyperforge-1.0.0.post70}/src/hyperforge/redis_utils.py +0 -0
- {hyperforge-1.0.0.post66 → hyperforge-1.0.0.post70}/src/hyperforge/retrieval/__init__.py +0 -0
- {hyperforge-1.0.0.post66 → hyperforge-1.0.0.post70}/src/hyperforge/retrieval/agent.py +0 -0
- {hyperforge-1.0.0.post66 → hyperforge-1.0.0.post70}/src/hyperforge/retrieval/config.py +0 -0
- {hyperforge-1.0.0.post66 → hyperforge-1.0.0.post70}/src/hyperforge/server/__init__.py +0 -0
- {hyperforge-1.0.0.post66 → hyperforge-1.0.0.post70}/src/hyperforge/server/cache.py +0 -0
- {hyperforge-1.0.0.post66 → hyperforge-1.0.0.post70}/src/hyperforge/server/run.py +0 -0
- {hyperforge-1.0.0.post66 → hyperforge-1.0.0.post70}/src/hyperforge/server/session.py +0 -0
- {hyperforge-1.0.0.post66 → hyperforge-1.0.0.post70}/src/hyperforge/server/settings.py +0 -0
- {hyperforge-1.0.0.post66 → hyperforge-1.0.0.post70}/src/hyperforge/server/utils.py +0 -0
- {hyperforge-1.0.0.post66 → hyperforge-1.0.0.post70}/src/hyperforge/server/web.py +0 -0
- {hyperforge-1.0.0.post66 → hyperforge-1.0.0.post70}/src/hyperforge/settings.py +0 -0
- {hyperforge-1.0.0.post66 → hyperforge-1.0.0.post70}/src/hyperforge/standalone/__init__.py +0 -0
- {hyperforge-1.0.0.post66 → hyperforge-1.0.0.post70}/src/hyperforge/standalone/agent.py +0 -0
- {hyperforge-1.0.0.post66 → hyperforge-1.0.0.post70}/src/hyperforge/standalone/app.py +0 -0
- {hyperforge-1.0.0.post66 → hyperforge-1.0.0.post70}/src/hyperforge/standalone/config.py +0 -0
- {hyperforge-1.0.0.post66 → hyperforge-1.0.0.post70}/src/hyperforge/standalone/const.py +0 -0
- {hyperforge-1.0.0.post66 → hyperforge-1.0.0.post70}/src/hyperforge/standalone/run.py +0 -0
- {hyperforge-1.0.0.post66 → hyperforge-1.0.0.post70}/src/hyperforge/standalone/settings.py +0 -0
- {hyperforge-1.0.0.post66 → hyperforge-1.0.0.post70}/src/hyperforge/standalone/ui_router.py +0 -0
- {hyperforge-1.0.0.post66 → hyperforge-1.0.0.post70}/src/hyperforge/static/assets/index-DLejS5jC.js +0 -0
- {hyperforge-1.0.0.post66 → hyperforge-1.0.0.post70}/src/hyperforge/static/assets/index-MoxkZ1_3.css +0 -0
- {hyperforge-1.0.0.post66 → hyperforge-1.0.0.post70}/src/hyperforge/static/favicon.svg +0 -0
- {hyperforge-1.0.0.post66 → hyperforge-1.0.0.post70}/src/hyperforge/static/index.html +0 -0
- {hyperforge-1.0.0.post66 → hyperforge-1.0.0.post70}/src/hyperforge/trace.py +0 -0
- {hyperforge-1.0.0.post66 → hyperforge-1.0.0.post70}/src/hyperforge/utils/__init__.py +0 -0
- {hyperforge-1.0.0.post66 → hyperforge-1.0.0.post70}/src/hyperforge/utils/http.py +0 -0
- {hyperforge-1.0.0.post66 → hyperforge-1.0.0.post70}/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.
|
|
3
|
+
Version: 1.0.0.post70
|
|
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>
|
|
@@ -14,6 +14,7 @@ Requires-Dist: nuclia-models>=0.59.0
|
|
|
14
14
|
Requires-Dist: nucliadb-models>=6.13.1.post6414
|
|
15
15
|
Requires-Dist: nucliadb-sdk>=6.13.1.post6414
|
|
16
16
|
Requires-Dist: nucliadb-telemetry[otel]>=6.15.0
|
|
17
|
+
Requires-Dist: hyperforge-restricted
|
|
17
18
|
Requires-Dist: pydantic-settings
|
|
18
19
|
Requires-Dist: mcp>=1.26.0
|
|
19
20
|
Requires-Dist: prometheus-client
|
|
@@ -4,7 +4,7 @@ build-backend = "uv_build"
|
|
|
4
4
|
|
|
5
5
|
[project]
|
|
6
6
|
name = "hyperforge"
|
|
7
|
-
version = "1.0.0.
|
|
7
|
+
version = "1.0.0.post70"
|
|
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"
|
|
@@ -22,6 +22,7 @@ dependencies = [
|
|
|
22
22
|
"nucliadb-models>=6.13.1.post6414",
|
|
23
23
|
"nucliadb-sdk>=6.13.1.post6414",
|
|
24
24
|
"nucliadb-telemetry[otel]>=6.15.0",
|
|
25
|
+
"hyperforge-restricted",
|
|
25
26
|
"pydantic_settings",
|
|
26
27
|
"mcp>=1.26.0",
|
|
27
28
|
"prometheus_client",
|
|
@@ -56,9 +56,8 @@ class RedisBroker(Broker):
|
|
|
56
56
|
maxlen=100,
|
|
57
57
|
)
|
|
58
58
|
|
|
59
|
-
async def
|
|
60
|
-
|
|
61
|
-
) -> AsyncIterator[tuple[StartInteraction, dict[str, str]]]:
|
|
59
|
+
async def _ensure_consumer_group(self) -> None:
|
|
60
|
+
"""Create the stream and consumer group if they don't exist."""
|
|
62
61
|
try:
|
|
63
62
|
await self._client.xgroup_create(
|
|
64
63
|
name=self._activate_subject,
|
|
@@ -69,6 +68,11 @@ class RedisBroker(Broker):
|
|
|
69
68
|
if "BUSYGROUP" not in str(e):
|
|
70
69
|
raise
|
|
71
70
|
|
|
71
|
+
async def subscribe_activations(
|
|
72
|
+
self,
|
|
73
|
+
) -> AsyncIterator[tuple[StartInteraction, dict[str, str]]]:
|
|
74
|
+
await self._ensure_consumer_group()
|
|
75
|
+
|
|
72
76
|
while True:
|
|
73
77
|
try:
|
|
74
78
|
response = await self._client.xreadgroup(
|
|
@@ -90,6 +94,13 @@ class RedisBroker(Broker):
|
|
|
90
94
|
except (asyncio.CancelledError, KeyboardInterrupt):
|
|
91
95
|
logger.info("Activation subscription cancelled, exiting...")
|
|
92
96
|
break
|
|
97
|
+
except ResponseError as e:
|
|
98
|
+
if "NOGROUP" in str(e):
|
|
99
|
+
logger.warning("Consumer group lost, re-creating...")
|
|
100
|
+
await self._ensure_consumer_group()
|
|
101
|
+
else:
|
|
102
|
+
logger.exception("Error while subscribing to activations, retrying...")
|
|
103
|
+
await asyncio.sleep(1)
|
|
93
104
|
except Exception:
|
|
94
105
|
logger.exception("Error while subscribing to activations, retrying...")
|
|
95
106
|
await asyncio.sleep(1)
|
|
@@ -7,7 +7,7 @@ from nucliadb_telemetry.logs import setup_logging
|
|
|
7
7
|
from nucliadb_telemetry.settings import LogLevel, LogSettings
|
|
8
8
|
from sentry_sdk.integrations.excepthook import ExcepthookIntegration
|
|
9
9
|
|
|
10
|
-
from
|
|
10
|
+
from hyperforge_restricted import sandbox
|
|
11
11
|
from hyperforge.server.settings import Settings
|
|
12
12
|
|
|
13
13
|
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
{hyperforge-1.0.0.post66 → hyperforge-1.0.0.post70}/src/hyperforge/alembic/versions/b8edb72295e0_.py
RENAMED
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
{hyperforge-1.0.0.post66 → hyperforge-1.0.0.post70}/src/hyperforge/api/v1/mcp_interaction.py
RENAMED
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
{hyperforge-1.0.0.post66 → hyperforge-1.0.0.post70}/src/hyperforge/static/assets/index-DLejS5jC.js
RENAMED
|
File without changes
|
{hyperforge-1.0.0.post66 → hyperforge-1.0.0.post70}/src/hyperforge/static/assets/index-MoxkZ1_3.css
RENAMED
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|