nucliadb-agentic-api 1.0.0.post288__tar.gz → 1.0.0.post294__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.
- {nucliadb_agentic_api-1.0.0.post288 → nucliadb_agentic_api-1.0.0.post294}/PKG-INFO +1 -1
- nucliadb_agentic_api-1.0.0.post294/VERSION +1 -0
- {nucliadb_agentic_api-1.0.0.post288 → nucliadb_agentic_api-1.0.0.post294}/pyproject.toml +2 -2
- {nucliadb_agentic_api-1.0.0.post288 → nucliadb_agentic_api-1.0.0.post294}/pyproject.toml.orig +2 -2
- {nucliadb_agentic_api-1.0.0.post288 → nucliadb_agentic_api-1.0.0.post294}/src/nucliadb_agentic_api/server/session.py +27 -6
- nucliadb_agentic_api-1.0.0.post288/VERSION +0 -1
- {nucliadb_agentic_api-1.0.0.post288 → nucliadb_agentic_api-1.0.0.post294}/README.md +0 -0
- {nucliadb_agentic_api-1.0.0.post288 → nucliadb_agentic_api-1.0.0.post294}/alembic/README +0 -0
- {nucliadb_agentic_api-1.0.0.post288 → nucliadb_agentic_api-1.0.0.post294}/alembic/env.py +0 -0
- {nucliadb_agentic_api-1.0.0.post288 → nucliadb_agentic_api-1.0.0.post294}/alembic/script.py.mako +0 -0
- {nucliadb_agentic_api-1.0.0.post288 → nucliadb_agentic_api-1.0.0.post294}/alembic/versions/0fe6c7b5f33d_migrate_sonnet_and_gpt_5_6_models.py +0 -0
- {nucliadb_agentic_api-1.0.0.post288 → nucliadb_agentic_api-1.0.0.post294}/alembic/versions/7f3b2f92a8c1_add_agentic_config_table.py +0 -0
- {nucliadb_agentic_api-1.0.0.post288 → nucliadb_agentic_api-1.0.0.post294}/alembic/versions/b3c4d5e6f7a8_add_sources_table.py +0 -0
- {nucliadb_agentic_api-1.0.0.post288 → nucliadb_agentic_api-1.0.0.post294}/alembic/versions/c4d5e6f7a8b9_add_agentic_config_soft_deletion.py +0 -0
- {nucliadb_agentic_api-1.0.0.post288 → nucliadb_agentic_api-1.0.0.post294}/alembic.ini +0 -0
- {nucliadb_agentic_api-1.0.0.post288 → nucliadb_agentic_api-1.0.0.post294}/src/nucliadb_agentic_api/VERSION +0 -0
- {nucliadb_agentic_api-1.0.0.post288 → nucliadb_agentic_api-1.0.0.post294}/src/nucliadb_agentic_api/__init__.py +0 -0
- {nucliadb_agentic_api-1.0.0.post288 → nucliadb_agentic_api-1.0.0.post294}/src/nucliadb_agentic_api/agentic/__init__.py +0 -0
- {nucliadb_agentic_api-1.0.0.post288 → nucliadb_agentic_api-1.0.0.post294}/src/nucliadb_agentic_api/agentic/ask_handler.py +0 -0
- {nucliadb_agentic_api-1.0.0.post288 → nucliadb_agentic_api-1.0.0.post294}/src/nucliadb_agentic_api/agentic/ask_result.py +0 -0
- {nucliadb_agentic_api-1.0.0.post288 → nucliadb_agentic_api-1.0.0.post294}/src/nucliadb_agentic_api/agentic/ask_transform_to_interaction.py +0 -0
- {nucliadb_agentic_api-1.0.0.post288 → nucliadb_agentic_api-1.0.0.post294}/src/nucliadb_agentic_api/app.py +0 -0
- {nucliadb_agentic_api-1.0.0.post288 → nucliadb_agentic_api-1.0.0.post294}/src/nucliadb_agentic_api/commands.py +0 -0
- {nucliadb_agentic_api-1.0.0.post288 → nucliadb_agentic_api-1.0.0.post294}/src/nucliadb_agentic_api/db/__init__.py +0 -0
- {nucliadb_agentic_api-1.0.0.post288 → nucliadb_agentic_api-1.0.0.post294}/src/nucliadb_agentic_api/db/agentic_configs.py +0 -0
- {nucliadb_agentic_api-1.0.0.post288 → nucliadb_agentic_api-1.0.0.post294}/src/nucliadb_agentic_api/db/llm_migration_utils.py +0 -0
- {nucliadb_agentic_api-1.0.0.post288 → nucliadb_agentic_api-1.0.0.post294}/src/nucliadb_agentic_api/db/settings.py +0 -0
- {nucliadb_agentic_api-1.0.0.post288 → nucliadb_agentic_api-1.0.0.post294}/src/nucliadb_agentic_api/db/sources.py +0 -0
- {nucliadb_agentic_api-1.0.0.post288 → nucliadb_agentic_api-1.0.0.post294}/src/nucliadb_agentic_api/db/transform.py +0 -0
- {nucliadb_agentic_api-1.0.0.post288 → nucliadb_agentic_api-1.0.0.post294}/src/nucliadb_agentic_api/exceptions.py +0 -0
- {nucliadb_agentic_api-1.0.0.post288 → nucliadb_agentic_api-1.0.0.post294}/src/nucliadb_agentic_api/logging.py +0 -0
- {nucliadb_agentic_api-1.0.0.post288 → nucliadb_agentic_api-1.0.0.post294}/src/nucliadb_agentic_api/models.py +0 -0
- {nucliadb_agentic_api-1.0.0.post288 → nucliadb_agentic_api-1.0.0.post294}/src/nucliadb_agentic_api/py.typed +0 -0
- {nucliadb_agentic_api-1.0.0.post288 → nucliadb_agentic_api-1.0.0.post294}/src/nucliadb_agentic_api/server/__init__.py +0 -0
- {nucliadb_agentic_api-1.0.0.post288 → nucliadb_agentic_api-1.0.0.post294}/src/nucliadb_agentic_api/server/server.py +0 -0
- {nucliadb_agentic_api-1.0.0.post288 → nucliadb_agentic_api-1.0.0.post294}/src/nucliadb_agentic_api/server/settings.py +0 -0
- {nucliadb_agentic_api-1.0.0.post288 → nucliadb_agentic_api-1.0.0.post294}/src/nucliadb_agentic_api/settings.py +0 -0
- {nucliadb_agentic_api-1.0.0.post288 → nucliadb_agentic_api-1.0.0.post294}/src/nucliadb_agentic_api/utils.py +0 -0
- {nucliadb_agentic_api-1.0.0.post288 → nucliadb_agentic_api-1.0.0.post294}/src/nucliadb_agentic_api/v1/__init__.py +0 -0
- {nucliadb_agentic_api-1.0.0.post288 → nucliadb_agentic_api-1.0.0.post294}/src/nucliadb_agentic_api/v1/agentic_configs.py +0 -0
- {nucliadb_agentic_api-1.0.0.post288 → nucliadb_agentic_api-1.0.0.post294}/src/nucliadb_agentic_api/v1/ask.py +0 -0
- {nucliadb_agentic_api-1.0.0.post288 → nucliadb_agentic_api-1.0.0.post294}/src/nucliadb_agentic_api/v1/ask_websocket.py +0 -0
- {nucliadb_agentic_api-1.0.0.post288 → nucliadb_agentic_api-1.0.0.post294}/src/nucliadb_agentic_api/v1/mcp_content.py +0 -0
- {nucliadb_agentic_api-1.0.0.post288 → nucliadb_agentic_api-1.0.0.post294}/src/nucliadb_agentic_api/v1/mcp_nucliadb.py +0 -0
- {nucliadb_agentic_api-1.0.0.post288 → nucliadb_agentic_api-1.0.0.post294}/src/nucliadb_agentic_api/v1/oauth.py +0 -0
- {nucliadb_agentic_api-1.0.0.post288 → nucliadb_agentic_api-1.0.0.post294}/src/nucliadb_agentic_api/v1/router.py +0 -0
- {nucliadb_agentic_api-1.0.0.post288 → nucliadb_agentic_api-1.0.0.post294}/src/nucliadb_agentic_api/v1/sources.py +0 -0
- {nucliadb_agentic_api-1.0.0.post288 → nucliadb_agentic_api-1.0.0.post294}/src/nucliadb_agentic_api/v1/utils.py +0 -0
|
@@ -0,0 +1 @@
|
|
|
1
|
+
1.0.0.post294
|
|
@@ -4,7 +4,7 @@ build-backend = "uv_build"
|
|
|
4
4
|
|
|
5
5
|
[project]
|
|
6
6
|
name = "nucliadb_agentic_api"
|
|
7
|
-
version = "1.0.0.
|
|
7
|
+
version = "1.0.0.post294"
|
|
8
8
|
description = "NucliaDB Agentic API for Hyperforge"
|
|
9
9
|
readme = "README.md"
|
|
10
10
|
requires-python = ">=3.12"
|
|
@@ -72,7 +72,7 @@ server = [
|
|
|
72
72
|
"nucliadb-sdk>=6.14.0.post6532",
|
|
73
73
|
"nucliadb-telemetry[otel]>=6.14.0.post6534",
|
|
74
74
|
"nucliadb-utils[storages,fastapi]>=6.15.0.post6671",
|
|
75
|
-
"hyperforge>=1.0.0.
|
|
75
|
+
"hyperforge>=1.0.0.post418",
|
|
76
76
|
"hyperforge_conditional>=1.0.0.post27",
|
|
77
77
|
"hyperforge_mcp>=1.0.0.post95",
|
|
78
78
|
"hyperforge_nucliadb>=1.0.0.post46",
|
{nucliadb_agentic_api-1.0.0.post288 → nucliadb_agentic_api-1.0.0.post294}/pyproject.toml.orig
RENAMED
|
@@ -4,7 +4,7 @@ build-backend = "uv_build"
|
|
|
4
4
|
|
|
5
5
|
[project]
|
|
6
6
|
name = "nucliadb_agentic_api"
|
|
7
|
-
version = "1.0.0.
|
|
7
|
+
version = "1.0.0.post294"
|
|
8
8
|
authors = [{ name = "AI Data Team", email = "learning@nuclia.com" }]
|
|
9
9
|
description = "NucliaDB Agentic API for Hyperforge"
|
|
10
10
|
readme = "README.md"
|
|
@@ -67,7 +67,7 @@ server = [
|
|
|
67
67
|
"nucliadb-sdk>=6.14.0.post6532",
|
|
68
68
|
"nucliadb-telemetry[otel]>=6.14.0.post6534",
|
|
69
69
|
"nucliadb-utils[storages,fastapi]>=6.15.0.post6671",
|
|
70
|
-
"hyperforge>=1.0.0.
|
|
70
|
+
"hyperforge>=1.0.0.post418",
|
|
71
71
|
"hyperforge_conditional>=1.0.0.post27",
|
|
72
72
|
"hyperforge_mcp>=1.0.0.post95",
|
|
73
73
|
"hyperforge_nucliadb>=1.0.0.post46",
|
|
@@ -1,5 +1,6 @@
|
|
|
1
1
|
import os
|
|
2
2
|
from asyncio import Task, create_task, timeout # type: ignore
|
|
3
|
+
from builtins import BaseExceptionGroup
|
|
3
4
|
from functools import partial
|
|
4
5
|
|
|
5
6
|
import nucliadb_telemetry.context
|
|
@@ -8,6 +9,7 @@ import prometheus_client
|
|
|
8
9
|
from hyperforge.broker import Broker
|
|
9
10
|
from hyperforge.configure import GLOBAL_REGISTRY, load_all_configurations, scan
|
|
10
11
|
from hyperforge.engine import State, get_state
|
|
12
|
+
from hyperforge.errors import actionable_exception_group, exception_detail
|
|
11
13
|
from hyperforge.interaction import AnswerOperation, AragAnswer, ARAGException
|
|
12
14
|
from hyperforge.memory import QuestionMemory
|
|
13
15
|
from hyperforge.pubsub import AgentDone, StartInteraction
|
|
@@ -191,6 +193,20 @@ class NucliaDBAgenticSessionManager(SessionManager):
|
|
|
191
193
|
task.add_done_callback(self._remove_task)
|
|
192
194
|
self.tasks.append(task)
|
|
193
195
|
|
|
196
|
+
except BaseExceptionGroup as exc:
|
|
197
|
+
error_group = actionable_exception_group(exc)
|
|
198
|
+
logger.exception("Activation exception")
|
|
199
|
+
errors.capture_exception(error_group)
|
|
200
|
+
observation.set_status("error")
|
|
201
|
+
if topic:
|
|
202
|
+
await self.callback(
|
|
203
|
+
topic,
|
|
204
|
+
AragAnswer(
|
|
205
|
+
exception=ARAGException(detail=exception_detail(error_group)),
|
|
206
|
+
operation=AnswerOperation.ERROR,
|
|
207
|
+
),
|
|
208
|
+
)
|
|
209
|
+
await self.send_message(topic, AgentDone())
|
|
194
210
|
except Exception as e:
|
|
195
211
|
logger.exception("Activation exception")
|
|
196
212
|
errors.capture_exception(e)
|
|
@@ -199,7 +215,7 @@ class NucliaDBAgenticSessionManager(SessionManager):
|
|
|
199
215
|
await self.callback(
|
|
200
216
|
topic,
|
|
201
217
|
AragAnswer(
|
|
202
|
-
exception=ARAGException(detail=
|
|
218
|
+
exception=ARAGException(detail=exception_detail(e)),
|
|
203
219
|
operation=AnswerOperation.ERROR,
|
|
204
220
|
),
|
|
205
221
|
)
|
|
@@ -250,10 +266,16 @@ class NucliaDBAgenticSessionManager(SessionManager):
|
|
|
250
266
|
async with timeout(self.settings.question_timeout_seconds):
|
|
251
267
|
await state.agent(question_memory, state.manager)
|
|
252
268
|
|
|
269
|
+
except BaseExceptionGroup as exc:
|
|
270
|
+
error_group = actionable_exception_group(exc)
|
|
271
|
+
logger.exception("Answering exception")
|
|
272
|
+
errors.capture_exception(error_group)
|
|
273
|
+
error = ARAGException(detail=exception_detail(error_group))
|
|
274
|
+
observation.set_status("error")
|
|
253
275
|
except Exception as e:
|
|
254
276
|
logger.exception("Answering exception")
|
|
255
277
|
errors.capture_exception(e)
|
|
256
|
-
error = ARAGException(detail=
|
|
278
|
+
error = ARAGException(detail=exception_detail(e))
|
|
257
279
|
observation.set_status("error")
|
|
258
280
|
finally:
|
|
259
281
|
try:
|
|
@@ -261,10 +283,9 @@ class NucliaDBAgenticSessionManager(SessionManager):
|
|
|
261
283
|
except Exception as e:
|
|
262
284
|
logger.exception("Error closing Manager")
|
|
263
285
|
errors.capture_exception(e)
|
|
264
|
-
|
|
265
|
-
|
|
266
|
-
|
|
267
|
-
keepalive.cancel()
|
|
286
|
+
observation.end()
|
|
287
|
+
answer_running.dec()
|
|
288
|
+
keepalive.cancel()
|
|
268
289
|
|
|
269
290
|
await self.callback(
|
|
270
291
|
topic,
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
1.0.0.post288
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
{nucliadb_agentic_api-1.0.0.post288 → nucliadb_agentic_api-1.0.0.post294}/alembic/script.py.mako
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
|