hyperforge 1.0.0.post68__tar.gz → 1.0.0.post76__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.post68 → hyperforge-1.0.0.post76}/PKG-INFO +1 -1
- {hyperforge-1.0.0.post68 → hyperforge-1.0.0.post76}/pyproject.toml +1 -1
- {hyperforge-1.0.0.post68 → hyperforge-1.0.0.post76}/src/hyperforge/broker/redis.py +14 -3
- {hyperforge-1.0.0.post68 → hyperforge-1.0.0.post76}/src/hyperforge/memory/memory.py +12 -0
- {hyperforge-1.0.0.post68 → hyperforge-1.0.0.post76}/README.md +0 -0
- {hyperforge-1.0.0.post68 → hyperforge-1.0.0.post76}/VERSION +0 -0
- {hyperforge-1.0.0.post68 → hyperforge-1.0.0.post76}/src/hyperforge/__init__.py +0 -0
- {hyperforge-1.0.0.post68 → hyperforge-1.0.0.post76}/src/hyperforge/agent.py +0 -0
- {hyperforge-1.0.0.post68 → hyperforge-1.0.0.post76}/src/hyperforge/alembic/README +0 -0
- {hyperforge-1.0.0.post68 → hyperforge-1.0.0.post76}/src/hyperforge/alembic/env.py +0 -0
- {hyperforge-1.0.0.post68 → hyperforge-1.0.0.post76}/src/hyperforge/alembic/script.py.mako +0 -0
- {hyperforge-1.0.0.post68 → hyperforge-1.0.0.post76}/src/hyperforge/alembic/versions/049a4aed19e1_create_generation_table.py +0 -0
- {hyperforge-1.0.0.post68 → hyperforge-1.0.0.post76}/src/hyperforge/alembic/versions/1416cb41bd49_add_downloads_table.py +0 -0
- {hyperforge-1.0.0.post68 → hyperforge-1.0.0.post76}/src/hyperforge/alembic/versions/2847934e2d59_unique_driver.py +0 -0
- {hyperforge-1.0.0.post68 → hyperforge-1.0.0.post76}/src/hyperforge/alembic/versions/4d89a36c8bda_memory.py +0 -0
- {hyperforge-1.0.0.post68 → hyperforge-1.0.0.post76}/src/hyperforge/alembic/versions/72b997edb05d_identifier_for_drivers.py +0 -0
- {hyperforge-1.0.0.post68 → hyperforge-1.0.0.post76}/src/hyperforge/alembic/versions/9c6f6a1b4e7f_workflows_default_fk.py +0 -0
- {hyperforge-1.0.0.post68 → hyperforge-1.0.0.post76}/src/hyperforge/alembic/versions/b8edb72295e0_.py +0 -0
- {hyperforge-1.0.0.post68 → hyperforge-1.0.0.post76}/src/hyperforge/alembic/versions/f3d2c1b0a9e8_soft_delete_workflows.py +0 -0
- {hyperforge-1.0.0.post68 → hyperforge-1.0.0.post76}/src/hyperforge/alembic.ini +0 -0
- {hyperforge-1.0.0.post68 → hyperforge-1.0.0.post76}/src/hyperforge/api/__init__.py +0 -0
- {hyperforge-1.0.0.post68 → hyperforge-1.0.0.post76}/src/hyperforge/api/app.py +0 -0
- {hyperforge-1.0.0.post68 → hyperforge-1.0.0.post76}/src/hyperforge/api/authentication.py +0 -0
- {hyperforge-1.0.0.post68 → hyperforge-1.0.0.post76}/src/hyperforge/api/commands.py +0 -0
- {hyperforge-1.0.0.post68 → hyperforge-1.0.0.post76}/src/hyperforge/api/internal/__init__.py +0 -0
- {hyperforge-1.0.0.post68 → hyperforge-1.0.0.post76}/src/hyperforge/api/internal/inspect.py +0 -0
- {hyperforge-1.0.0.post68 → hyperforge-1.0.0.post76}/src/hyperforge/api/internal/router.py +0 -0
- {hyperforge-1.0.0.post68 → hyperforge-1.0.0.post76}/src/hyperforge/api/logging.py +0 -0
- {hyperforge-1.0.0.post68 → hyperforge-1.0.0.post76}/src/hyperforge/api/models.py +0 -0
- {hyperforge-1.0.0.post68 → hyperforge-1.0.0.post76}/src/hyperforge/api/session.py +0 -0
- {hyperforge-1.0.0.post68 → hyperforge-1.0.0.post76}/src/hyperforge/api/settings.py +0 -0
- {hyperforge-1.0.0.post68 → hyperforge-1.0.0.post76}/src/hyperforge/api/utils.py +0 -0
- {hyperforge-1.0.0.post68 → hyperforge-1.0.0.post76}/src/hyperforge/api/v1/__init__.py +0 -0
- {hyperforge-1.0.0.post68 → hyperforge-1.0.0.post76}/src/hyperforge/api/v1/agents.py +0 -0
- {hyperforge-1.0.0.post68 → hyperforge-1.0.0.post76}/src/hyperforge/api/v1/interaction.py +0 -0
- {hyperforge-1.0.0.post68 → hyperforge-1.0.0.post76}/src/hyperforge/api/v1/mcp_content.py +0 -0
- {hyperforge-1.0.0.post68 → hyperforge-1.0.0.post76}/src/hyperforge/api/v1/mcp_interaction.py +0 -0
- {hyperforge-1.0.0.post68 → hyperforge-1.0.0.post76}/src/hyperforge/api/v1/oauth.py +0 -0
- {hyperforge-1.0.0.post68 → hyperforge-1.0.0.post76}/src/hyperforge/api/v1/prompt.py +0 -0
- {hyperforge-1.0.0.post68 → hyperforge-1.0.0.post76}/src/hyperforge/api/v1/router.py +0 -0
- {hyperforge-1.0.0.post68 → hyperforge-1.0.0.post76}/src/hyperforge/api/v1/schema.py +0 -0
- {hyperforge-1.0.0.post68 → hyperforge-1.0.0.post76}/src/hyperforge/api/v1/session.py +0 -0
- {hyperforge-1.0.0.post68 → hyperforge-1.0.0.post76}/src/hyperforge/api/v1/utils.py +0 -0
- {hyperforge-1.0.0.post68 → hyperforge-1.0.0.post76}/src/hyperforge/api/v1/workflows.py +0 -0
- {hyperforge-1.0.0.post68 → hyperforge-1.0.0.post76}/src/hyperforge/arag.py +0 -0
- {hyperforge-1.0.0.post68 → hyperforge-1.0.0.post76}/src/hyperforge/broker/__init__.py +0 -0
- {hyperforge-1.0.0.post68 → hyperforge-1.0.0.post76}/src/hyperforge/broker/local.py +0 -0
- {hyperforge-1.0.0.post68 → hyperforge-1.0.0.post76}/src/hyperforge/configure.py +0 -0
- {hyperforge-1.0.0.post68 → hyperforge-1.0.0.post76}/src/hyperforge/context/__init__.py +0 -0
- {hyperforge-1.0.0.post68 → hyperforge-1.0.0.post76}/src/hyperforge/context/agent.py +0 -0
- {hyperforge-1.0.0.post68 → hyperforge-1.0.0.post76}/src/hyperforge/context/config.py +0 -0
- {hyperforge-1.0.0.post68 → hyperforge-1.0.0.post76}/src/hyperforge/database.py +0 -0
- {hyperforge-1.0.0.post68 → hyperforge-1.0.0.post76}/src/hyperforge/db/__init__.py +0 -0
- {hyperforge-1.0.0.post68 → hyperforge-1.0.0.post76}/src/hyperforge/db/agents.py +0 -0
- {hyperforge-1.0.0.post68 → hyperforge-1.0.0.post76}/src/hyperforge/db/encryption.py +0 -0
- {hyperforge-1.0.0.post68 → hyperforge-1.0.0.post76}/src/hyperforge/db/exceptions.py +0 -0
- {hyperforge-1.0.0.post68 → hyperforge-1.0.0.post76}/src/hyperforge/db/settings.py +0 -0
- {hyperforge-1.0.0.post68 → hyperforge-1.0.0.post76}/src/hyperforge/db/workflow_cleanup.py +0 -0
- {hyperforge-1.0.0.post68 → hyperforge-1.0.0.post76}/src/hyperforge/definition.py +0 -0
- {hyperforge-1.0.0.post68 → hyperforge-1.0.0.post76}/src/hyperforge/driver.py +0 -0
- {hyperforge-1.0.0.post68 → hyperforge-1.0.0.post76}/src/hyperforge/dummy.py +0 -0
- {hyperforge-1.0.0.post68 → hyperforge-1.0.0.post76}/src/hyperforge/engine.py +0 -0
- {hyperforge-1.0.0.post68 → hyperforge-1.0.0.post76}/src/hyperforge/exceptions.py +0 -0
- {hyperforge-1.0.0.post68 → hyperforge-1.0.0.post76}/src/hyperforge/feature_flag.py +0 -0
- {hyperforge-1.0.0.post68 → hyperforge-1.0.0.post76}/src/hyperforge/fixtures.py +0 -0
- {hyperforge-1.0.0.post68 → hyperforge-1.0.0.post76}/src/hyperforge/interaction.py +0 -0
- {hyperforge-1.0.0.post68 → hyperforge-1.0.0.post76}/src/hyperforge/llm.py +0 -0
- {hyperforge-1.0.0.post68 → hyperforge-1.0.0.post76}/src/hyperforge/manager.py +0 -0
- {hyperforge-1.0.0.post68 → hyperforge-1.0.0.post76}/src/hyperforge/memory/__init__.py +0 -0
- {hyperforge-1.0.0.post68 → hyperforge-1.0.0.post76}/src/hyperforge/minimal_fixtures.py +0 -0
- {hyperforge-1.0.0.post68 → hyperforge-1.0.0.post76}/src/hyperforge/models.py +0 -0
- {hyperforge-1.0.0.post68 → hyperforge-1.0.0.post76}/src/hyperforge/nua.py +0 -0
- {hyperforge-1.0.0.post68 → hyperforge-1.0.0.post76}/src/hyperforge/openapi.py +0 -0
- {hyperforge-1.0.0.post68 → hyperforge-1.0.0.post76}/src/hyperforge/prompts.py +0 -0
- {hyperforge-1.0.0.post68 → hyperforge-1.0.0.post76}/src/hyperforge/pubsub.py +0 -0
- {hyperforge-1.0.0.post68 → hyperforge-1.0.0.post76}/src/hyperforge/py.typed +0 -0
- {hyperforge-1.0.0.post68 → hyperforge-1.0.0.post76}/src/hyperforge/redis_utils.py +0 -0
- {hyperforge-1.0.0.post68 → hyperforge-1.0.0.post76}/src/hyperforge/retrieval/__init__.py +0 -0
- {hyperforge-1.0.0.post68 → hyperforge-1.0.0.post76}/src/hyperforge/retrieval/agent.py +0 -0
- {hyperforge-1.0.0.post68 → hyperforge-1.0.0.post76}/src/hyperforge/retrieval/config.py +0 -0
- {hyperforge-1.0.0.post68 → hyperforge-1.0.0.post76}/src/hyperforge/server/__init__.py +0 -0
- {hyperforge-1.0.0.post68 → hyperforge-1.0.0.post76}/src/hyperforge/server/cache.py +0 -0
- {hyperforge-1.0.0.post68 → hyperforge-1.0.0.post76}/src/hyperforge/server/run.py +0 -0
- {hyperforge-1.0.0.post68 → hyperforge-1.0.0.post76}/src/hyperforge/server/sandbox.py +0 -0
- {hyperforge-1.0.0.post68 → hyperforge-1.0.0.post76}/src/hyperforge/server/session.py +0 -0
- {hyperforge-1.0.0.post68 → hyperforge-1.0.0.post76}/src/hyperforge/server/settings.py +0 -0
- {hyperforge-1.0.0.post68 → hyperforge-1.0.0.post76}/src/hyperforge/server/utils.py +0 -0
- {hyperforge-1.0.0.post68 → hyperforge-1.0.0.post76}/src/hyperforge/server/web.py +0 -0
- {hyperforge-1.0.0.post68 → hyperforge-1.0.0.post76}/src/hyperforge/settings.py +0 -0
- {hyperforge-1.0.0.post68 → hyperforge-1.0.0.post76}/src/hyperforge/standalone/__init__.py +0 -0
- {hyperforge-1.0.0.post68 → hyperforge-1.0.0.post76}/src/hyperforge/standalone/agent.py +0 -0
- {hyperforge-1.0.0.post68 → hyperforge-1.0.0.post76}/src/hyperforge/standalone/app.py +0 -0
- {hyperforge-1.0.0.post68 → hyperforge-1.0.0.post76}/src/hyperforge/standalone/config.py +0 -0
- {hyperforge-1.0.0.post68 → hyperforge-1.0.0.post76}/src/hyperforge/standalone/const.py +0 -0
- {hyperforge-1.0.0.post68 → hyperforge-1.0.0.post76}/src/hyperforge/standalone/run.py +0 -0
- {hyperforge-1.0.0.post68 → hyperforge-1.0.0.post76}/src/hyperforge/standalone/settings.py +0 -0
- {hyperforge-1.0.0.post68 → hyperforge-1.0.0.post76}/src/hyperforge/standalone/ui_router.py +0 -0
- {hyperforge-1.0.0.post68 → hyperforge-1.0.0.post76}/src/hyperforge/static/assets/index-DLejS5jC.js +0 -0
- {hyperforge-1.0.0.post68 → hyperforge-1.0.0.post76}/src/hyperforge/static/assets/index-MoxkZ1_3.css +0 -0
- {hyperforge-1.0.0.post68 → hyperforge-1.0.0.post76}/src/hyperforge/static/favicon.svg +0 -0
- {hyperforge-1.0.0.post68 → hyperforge-1.0.0.post76}/src/hyperforge/static/index.html +0 -0
- {hyperforge-1.0.0.post68 → hyperforge-1.0.0.post76}/src/hyperforge/trace.py +0 -0
- {hyperforge-1.0.0.post68 → hyperforge-1.0.0.post76}/src/hyperforge/utils/__init__.py +0 -0
- {hyperforge-1.0.0.post68 → hyperforge-1.0.0.post76}/src/hyperforge/utils/http.py +0 -0
- {hyperforge-1.0.0.post68 → hyperforge-1.0.0.post76}/src/hyperforge/workflows.py +0 -0
|
@@ -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.post76"
|
|
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"
|
|
@@ -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)
|
|
@@ -206,6 +206,18 @@ class NoMemorySessionMemory(BaseSessionMemory):
|
|
|
206
206
|
async def qa_history(self) -> list[HistoryQuestionAnswer]:
|
|
207
207
|
return []
|
|
208
208
|
|
|
209
|
+
async def set_source(self, source: Source):
|
|
210
|
+
entry = CachedNucliaDBSource(
|
|
211
|
+
cache=self.cache, agent_id=self.agent_id, source=source.id
|
|
212
|
+
)
|
|
213
|
+
await entry.set(source)
|
|
214
|
+
|
|
215
|
+
async def get_source(self, source_id: str) -> Source | None:
|
|
216
|
+
entry = CachedNucliaDBSource(
|
|
217
|
+
cache=self.cache, agent_id=self.agent_id, source=source_id
|
|
218
|
+
)
|
|
219
|
+
return await entry.get()
|
|
220
|
+
|
|
209
221
|
|
|
210
222
|
class EphemeralSessionMemory(BaseSessionMemory):
|
|
211
223
|
@classmethod
|
|
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.post68 → hyperforge-1.0.0.post76}/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.post68 → hyperforge-1.0.0.post76}/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.post68 → hyperforge-1.0.0.post76}/src/hyperforge/static/assets/index-DLejS5jC.js
RENAMED
|
File without changes
|
{hyperforge-1.0.0.post68 → hyperforge-1.0.0.post76}/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
|