hyperforge 1.0.0.post44__tar.gz → 1.0.0.post48__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.post44 → hyperforge-1.0.0.post48}/PKG-INFO +2 -1
- {hyperforge-1.0.0.post44 → hyperforge-1.0.0.post48}/pyproject.toml +2 -1
- {hyperforge-1.0.0.post44 → hyperforge-1.0.0.post48}/src/hyperforge/api/app.py +9 -3
- {hyperforge-1.0.0.post44 → hyperforge-1.0.0.post48}/src/hyperforge/fixtures.py +2 -2
- {hyperforge-1.0.0.post44 → hyperforge-1.0.0.post48}/src/hyperforge/standalone/app.py +10 -4
- hyperforge-1.0.0.post48/src/hyperforge/static/assets/index-DLejS5jC.js +45 -0
- hyperforge-1.0.0.post48/src/hyperforge/static/assets/index-MoxkZ1_3.css +1 -0
- hyperforge-1.0.0.post48/src/hyperforge/static/favicon.svg +4 -0
- hyperforge-1.0.0.post48/src/hyperforge/static/index.html +14 -0
- {hyperforge-1.0.0.post44 → hyperforge-1.0.0.post48}/README.md +0 -0
- {hyperforge-1.0.0.post44 → hyperforge-1.0.0.post48}/VERSION +0 -0
- {hyperforge-1.0.0.post44 → hyperforge-1.0.0.post48}/src/hyperforge/__init__.py +0 -0
- {hyperforge-1.0.0.post44 → hyperforge-1.0.0.post48}/src/hyperforge/agent.py +0 -0
- {hyperforge-1.0.0.post44 → hyperforge-1.0.0.post48/src/hyperforge}/alembic/README +0 -0
- {hyperforge-1.0.0.post44 → hyperforge-1.0.0.post48/src/hyperforge}/alembic/env.py +0 -0
- {hyperforge-1.0.0.post44 → hyperforge-1.0.0.post48/src/hyperforge}/alembic/script.py.mako +0 -0
- {hyperforge-1.0.0.post44 → hyperforge-1.0.0.post48/src/hyperforge}/alembic/versions/049a4aed19e1_create_generation_table.py +0 -0
- {hyperforge-1.0.0.post44 → hyperforge-1.0.0.post48/src/hyperforge}/alembic/versions/1416cb41bd49_add_downloads_table.py +0 -0
- {hyperforge-1.0.0.post44 → hyperforge-1.0.0.post48/src/hyperforge}/alembic/versions/2847934e2d59_unique_driver.py +0 -0
- {hyperforge-1.0.0.post44 → hyperforge-1.0.0.post48/src/hyperforge}/alembic/versions/4d89a36c8bda_memory.py +0 -0
- {hyperforge-1.0.0.post44 → hyperforge-1.0.0.post48/src/hyperforge}/alembic/versions/72b997edb05d_identifier_for_drivers.py +0 -0
- {hyperforge-1.0.0.post44 → hyperforge-1.0.0.post48/src/hyperforge}/alembic/versions/9c6f6a1b4e7f_workflows_default_fk.py +0 -0
- {hyperforge-1.0.0.post44 → hyperforge-1.0.0.post48/src/hyperforge}/alembic/versions/b8edb72295e0_.py +0 -0
- {hyperforge-1.0.0.post44 → hyperforge-1.0.0.post48/src/hyperforge}/alembic/versions/f3d2c1b0a9e8_soft_delete_workflows.py +0 -0
- {hyperforge-1.0.0.post44 → hyperforge-1.0.0.post48/src/hyperforge}/alembic.ini +0 -0
- {hyperforge-1.0.0.post44 → hyperforge-1.0.0.post48}/src/hyperforge/api/__init__.py +0 -0
- {hyperforge-1.0.0.post44 → hyperforge-1.0.0.post48}/src/hyperforge/api/authentication.py +0 -0
- {hyperforge-1.0.0.post44 → hyperforge-1.0.0.post48}/src/hyperforge/api/commands.py +0 -0
- {hyperforge-1.0.0.post44 → hyperforge-1.0.0.post48}/src/hyperforge/api/internal/__init__.py +0 -0
- {hyperforge-1.0.0.post44 → hyperforge-1.0.0.post48}/src/hyperforge/api/internal/inspect.py +0 -0
- {hyperforge-1.0.0.post44 → hyperforge-1.0.0.post48}/src/hyperforge/api/internal/router.py +0 -0
- {hyperforge-1.0.0.post44 → hyperforge-1.0.0.post48}/src/hyperforge/api/logging.py +0 -0
- {hyperforge-1.0.0.post44 → hyperforge-1.0.0.post48}/src/hyperforge/api/models.py +0 -0
- {hyperforge-1.0.0.post44 → hyperforge-1.0.0.post48}/src/hyperforge/api/session.py +0 -0
- {hyperforge-1.0.0.post44 → hyperforge-1.0.0.post48}/src/hyperforge/api/settings.py +0 -0
- {hyperforge-1.0.0.post44 → hyperforge-1.0.0.post48}/src/hyperforge/api/utils.py +0 -0
- {hyperforge-1.0.0.post44 → hyperforge-1.0.0.post48}/src/hyperforge/api/v1/__init__.py +0 -0
- {hyperforge-1.0.0.post44 → hyperforge-1.0.0.post48}/src/hyperforge/api/v1/agents.py +0 -0
- {hyperforge-1.0.0.post44 → hyperforge-1.0.0.post48}/src/hyperforge/api/v1/interaction.py +0 -0
- {hyperforge-1.0.0.post44 → hyperforge-1.0.0.post48}/src/hyperforge/api/v1/mcp_content.py +0 -0
- {hyperforge-1.0.0.post44 → hyperforge-1.0.0.post48}/src/hyperforge/api/v1/mcp_interaction.py +0 -0
- {hyperforge-1.0.0.post44 → hyperforge-1.0.0.post48}/src/hyperforge/api/v1/oauth.py +0 -0
- {hyperforge-1.0.0.post44 → hyperforge-1.0.0.post48}/src/hyperforge/api/v1/prompt.py +0 -0
- {hyperforge-1.0.0.post44 → hyperforge-1.0.0.post48}/src/hyperforge/api/v1/router.py +0 -0
- {hyperforge-1.0.0.post44 → hyperforge-1.0.0.post48}/src/hyperforge/api/v1/schema.py +0 -0
- {hyperforge-1.0.0.post44 → hyperforge-1.0.0.post48}/src/hyperforge/api/v1/session.py +0 -0
- {hyperforge-1.0.0.post44 → hyperforge-1.0.0.post48}/src/hyperforge/api/v1/utils.py +0 -0
- {hyperforge-1.0.0.post44 → hyperforge-1.0.0.post48}/src/hyperforge/api/v1/workflows.py +0 -0
- {hyperforge-1.0.0.post44 → hyperforge-1.0.0.post48}/src/hyperforge/arag.py +0 -0
- {hyperforge-1.0.0.post44 → hyperforge-1.0.0.post48}/src/hyperforge/broker/__init__.py +0 -0
- {hyperforge-1.0.0.post44 → hyperforge-1.0.0.post48}/src/hyperforge/broker/local.py +0 -0
- {hyperforge-1.0.0.post44 → hyperforge-1.0.0.post48}/src/hyperforge/broker/redis.py +0 -0
- {hyperforge-1.0.0.post44 → hyperforge-1.0.0.post48}/src/hyperforge/configure.py +0 -0
- {hyperforge-1.0.0.post44 → hyperforge-1.0.0.post48}/src/hyperforge/context/__init__.py +0 -0
- {hyperforge-1.0.0.post44 → hyperforge-1.0.0.post48}/src/hyperforge/context/agent.py +0 -0
- {hyperforge-1.0.0.post44 → hyperforge-1.0.0.post48}/src/hyperforge/context/config.py +0 -0
- {hyperforge-1.0.0.post44 → hyperforge-1.0.0.post48}/src/hyperforge/database.py +0 -0
- {hyperforge-1.0.0.post44 → hyperforge-1.0.0.post48}/src/hyperforge/db/__init__.py +0 -0
- {hyperforge-1.0.0.post44 → hyperforge-1.0.0.post48}/src/hyperforge/db/agents.py +0 -0
- {hyperforge-1.0.0.post44 → hyperforge-1.0.0.post48}/src/hyperforge/db/encryption.py +0 -0
- {hyperforge-1.0.0.post44 → hyperforge-1.0.0.post48}/src/hyperforge/db/exceptions.py +0 -0
- {hyperforge-1.0.0.post44 → hyperforge-1.0.0.post48}/src/hyperforge/db/settings.py +0 -0
- {hyperforge-1.0.0.post44 → hyperforge-1.0.0.post48}/src/hyperforge/db/workflow_cleanup.py +0 -0
- {hyperforge-1.0.0.post44 → hyperforge-1.0.0.post48}/src/hyperforge/definition.py +0 -0
- {hyperforge-1.0.0.post44 → hyperforge-1.0.0.post48}/src/hyperforge/driver.py +0 -0
- {hyperforge-1.0.0.post44 → hyperforge-1.0.0.post48}/src/hyperforge/dummy.py +0 -0
- {hyperforge-1.0.0.post44 → hyperforge-1.0.0.post48}/src/hyperforge/engine.py +0 -0
- {hyperforge-1.0.0.post44 → hyperforge-1.0.0.post48}/src/hyperforge/exceptions.py +0 -0
- {hyperforge-1.0.0.post44 → hyperforge-1.0.0.post48}/src/hyperforge/feature_flag.py +0 -0
- {hyperforge-1.0.0.post44 → hyperforge-1.0.0.post48}/src/hyperforge/interaction.py +0 -0
- {hyperforge-1.0.0.post44 → hyperforge-1.0.0.post48}/src/hyperforge/llm.py +0 -0
- {hyperforge-1.0.0.post44 → hyperforge-1.0.0.post48}/src/hyperforge/manager.py +0 -0
- {hyperforge-1.0.0.post44 → hyperforge-1.0.0.post48}/src/hyperforge/memory/__init__.py +0 -0
- {hyperforge-1.0.0.post44 → hyperforge-1.0.0.post48}/src/hyperforge/memory/memory.py +0 -0
- {hyperforge-1.0.0.post44 → hyperforge-1.0.0.post48}/src/hyperforge/minimal_fixtures.py +0 -0
- {hyperforge-1.0.0.post44 → hyperforge-1.0.0.post48}/src/hyperforge/models.py +0 -0
- {hyperforge-1.0.0.post44 → hyperforge-1.0.0.post48}/src/hyperforge/nua.py +0 -0
- {hyperforge-1.0.0.post44 → hyperforge-1.0.0.post48}/src/hyperforge/openapi.py +0 -0
- {hyperforge-1.0.0.post44 → hyperforge-1.0.0.post48}/src/hyperforge/prompts.py +0 -0
- {hyperforge-1.0.0.post44 → hyperforge-1.0.0.post48}/src/hyperforge/pubsub.py +0 -0
- {hyperforge-1.0.0.post44 → hyperforge-1.0.0.post48}/src/hyperforge/py.typed +0 -0
- {hyperforge-1.0.0.post44 → hyperforge-1.0.0.post48}/src/hyperforge/redis_utils.py +0 -0
- {hyperforge-1.0.0.post44 → hyperforge-1.0.0.post48}/src/hyperforge/retrieval/__init__.py +0 -0
- {hyperforge-1.0.0.post44 → hyperforge-1.0.0.post48}/src/hyperforge/retrieval/agent.py +0 -0
- {hyperforge-1.0.0.post44 → hyperforge-1.0.0.post48}/src/hyperforge/retrieval/config.py +0 -0
- {hyperforge-1.0.0.post44 → hyperforge-1.0.0.post48}/src/hyperforge/server/__init__.py +0 -0
- {hyperforge-1.0.0.post44 → hyperforge-1.0.0.post48}/src/hyperforge/server/cache.py +0 -0
- {hyperforge-1.0.0.post44 → hyperforge-1.0.0.post48}/src/hyperforge/server/run.py +0 -0
- {hyperforge-1.0.0.post44 → hyperforge-1.0.0.post48}/src/hyperforge/server/sandbox.py +0 -0
- {hyperforge-1.0.0.post44 → hyperforge-1.0.0.post48}/src/hyperforge/server/session.py +0 -0
- {hyperforge-1.0.0.post44 → hyperforge-1.0.0.post48}/src/hyperforge/server/settings.py +0 -0
- {hyperforge-1.0.0.post44 → hyperforge-1.0.0.post48}/src/hyperforge/server/utils.py +0 -0
- {hyperforge-1.0.0.post44 → hyperforge-1.0.0.post48}/src/hyperforge/server/web.py +0 -0
- {hyperforge-1.0.0.post44 → hyperforge-1.0.0.post48}/src/hyperforge/settings.py +0 -0
- {hyperforge-1.0.0.post44 → hyperforge-1.0.0.post48}/src/hyperforge/standalone/__init__.py +0 -0
- {hyperforge-1.0.0.post44 → hyperforge-1.0.0.post48}/src/hyperforge/standalone/agent.py +0 -0
- {hyperforge-1.0.0.post44 → hyperforge-1.0.0.post48}/src/hyperforge/standalone/config.py +0 -0
- {hyperforge-1.0.0.post44 → hyperforge-1.0.0.post48}/src/hyperforge/standalone/const.py +0 -0
- {hyperforge-1.0.0.post44 → hyperforge-1.0.0.post48}/src/hyperforge/standalone/run.py +0 -0
- {hyperforge-1.0.0.post44 → hyperforge-1.0.0.post48}/src/hyperforge/standalone/settings.py +0 -0
- {hyperforge-1.0.0.post44 → hyperforge-1.0.0.post48}/src/hyperforge/standalone/ui_router.py +0 -0
- {hyperforge-1.0.0.post44 → hyperforge-1.0.0.post48}/src/hyperforge/trace.py +0 -0
- {hyperforge-1.0.0.post44 → hyperforge-1.0.0.post48}/src/hyperforge/utils/__init__.py +0 -0
- {hyperforge-1.0.0.post44 → hyperforge-1.0.0.post48}/src/hyperforge/utils/http.py +0 -0
- {hyperforge-1.0.0.post44 → hyperforge-1.0.0.post48}/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.post48
|
|
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>
|
|
@@ -34,6 +34,7 @@ Requires-Dist: ruff>=0.15.10
|
|
|
34
34
|
Requires-Dist: lru-dict
|
|
35
35
|
Requires-Dist: sentry-sdk
|
|
36
36
|
Requires-Dist: fastapi
|
|
37
|
+
Requires-Dist: starlette>1.0.0
|
|
37
38
|
Requires-Python: >=3.10
|
|
38
39
|
Project-URL: Progress, https://progress.com
|
|
39
40
|
Project-URL: Github, https://github.com/nuclia/hyperforge
|
|
@@ -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.post48"
|
|
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"
|
|
@@ -42,6 +42,7 @@ dependencies = [
|
|
|
42
42
|
"lru-dict",
|
|
43
43
|
"sentry_sdk",
|
|
44
44
|
"fastapi",
|
|
45
|
+
"starlette>1.0.0",
|
|
45
46
|
]
|
|
46
47
|
|
|
47
48
|
|
|
@@ -1,3 +1,4 @@
|
|
|
1
|
+
from contextlib import asynccontextmanager
|
|
1
2
|
from typing import Any, Optional, Tuple
|
|
2
3
|
|
|
3
4
|
import prometheus_client # type: ignore
|
|
@@ -62,7 +63,13 @@ class HTTPApplication(FastAPI):
|
|
|
62
63
|
*args,
|
|
63
64
|
**kwargs,
|
|
64
65
|
):
|
|
65
|
-
|
|
66
|
+
@asynccontextmanager
|
|
67
|
+
async def lifespan(app: "HTTPApplication"):
|
|
68
|
+
await app.startup()
|
|
69
|
+
yield
|
|
70
|
+
await app.shutdown()
|
|
71
|
+
|
|
72
|
+
super().__init__(*args, lifespan=lifespan, **kwargs)
|
|
66
73
|
self.settings = settings
|
|
67
74
|
self.data_manager_settings = data_manager_settings
|
|
68
75
|
self.include_router(internal.router)
|
|
@@ -72,11 +79,10 @@ class HTTPApplication(FastAPI):
|
|
|
72
79
|
AuthenticationMiddleware,
|
|
73
80
|
backend=RaoAuthenticationBackend(),
|
|
74
81
|
)
|
|
82
|
+
|
|
75
83
|
if self.extra_middlewares is not None:
|
|
76
84
|
for extra_middleware in self.extra_middlewares:
|
|
77
85
|
self.add_middleware(extra_middleware)
|
|
78
|
-
self.add_event_handler("startup", self.startup)
|
|
79
|
-
self.add_event_handler("shutdown", self.shutdown)
|
|
80
86
|
|
|
81
87
|
async def startup(self) -> None:
|
|
82
88
|
GLOBAL_REGISTRY.clear()
|
|
@@ -33,6 +33,7 @@ from sqlalchemy_utils import ( # type: ignore
|
|
|
33
33
|
drop_database,
|
|
34
34
|
)
|
|
35
35
|
|
|
36
|
+
import hyperforge # noqa: F401
|
|
36
37
|
from hyperforge.api.app import HTTPApplication
|
|
37
38
|
from hyperforge.api.settings import Settings
|
|
38
39
|
from hyperforge.broker.redis import RedisBroker
|
|
@@ -44,8 +45,7 @@ from hyperforge.server.session import SessionManager
|
|
|
44
45
|
from hyperforge.server.settings import Settings as ServerSettings
|
|
45
46
|
from hyperforge.utils.http import SafeTransport
|
|
46
47
|
|
|
47
|
-
|
|
48
|
-
_package_path = _dir.parent.parent.absolute()
|
|
48
|
+
_package_path = pathlib.Path(hyperforge.__file__).parent.absolute()
|
|
49
49
|
|
|
50
50
|
NUA = os.environ.get("NUA_KEY", "DUMMY")
|
|
51
51
|
|
|
@@ -6,6 +6,7 @@ process, connected via a LocalBroker. No Redis, no gRPC, no PostgreSQL, no
|
|
|
6
6
|
NucliaDB required.
|
|
7
7
|
"""
|
|
8
8
|
|
|
9
|
+
from contextlib import asynccontextmanager
|
|
9
10
|
from pathlib import Path
|
|
10
11
|
from typing import Any, Tuple
|
|
11
12
|
|
|
@@ -137,9 +138,17 @@ class StandaloneApplication(FastAPI):
|
|
|
137
138
|
settings: StandaloneSettings,
|
|
138
139
|
**kwargs: Any,
|
|
139
140
|
) -> None:
|
|
141
|
+
|
|
142
|
+
@asynccontextmanager
|
|
143
|
+
async def lifespan(app: "StandaloneApplication"):
|
|
144
|
+
await app._startup()
|
|
145
|
+
yield
|
|
146
|
+
await app._shutdown()
|
|
147
|
+
|
|
140
148
|
super().__init__(
|
|
141
149
|
title="arag standalone",
|
|
142
150
|
description="Single-process agent RAG — interaction and MCP only",
|
|
151
|
+
lifespan=lifespan,
|
|
143
152
|
**kwargs,
|
|
144
153
|
)
|
|
145
154
|
self._agents_cfg = agents_cfg
|
|
@@ -156,7 +165,7 @@ class StandaloneApplication(FastAPI):
|
|
|
156
165
|
# In development the Vite dev server runs separately (proxied to :8080).
|
|
157
166
|
# app.py lives at: arag/src/hyperforge.standalone/app.py
|
|
158
167
|
# three .parent steps → arag/
|
|
159
|
-
_frontend_dist = Path(__file__).parent
|
|
168
|
+
_frontend_dist = Path(__file__).parent / "static"
|
|
160
169
|
if _frontend_dist.is_dir():
|
|
161
170
|
self.mount(
|
|
162
171
|
"/",
|
|
@@ -173,9 +182,6 @@ class StandaloneApplication(FastAPI):
|
|
|
173
182
|
allow_headers=["*"],
|
|
174
183
|
)
|
|
175
184
|
|
|
176
|
-
self.add_event_handler("startup", self._startup)
|
|
177
|
-
self.add_event_handler("shutdown", self._shutdown)
|
|
178
|
-
|
|
179
185
|
# ------------------------------------------------------------------
|
|
180
186
|
# Property used by interaction.py / oauth.py to read answers_subject
|
|
181
187
|
# and oauth_subject without knowing about StandaloneSettings.
|