hyperforge-nucliadb 1.0.0.post105__tar.gz → 1.0.0.post108__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_nucliadb-1.0.0.post105 → hyperforge_nucliadb-1.0.0.post108}/PKG-INFO +1 -1
- {hyperforge_nucliadb-1.0.0.post105 → hyperforge_nucliadb-1.0.0.post108}/pyproject.toml +1 -1
- {hyperforge_nucliadb-1.0.0.post105 → hyperforge_nucliadb-1.0.0.post108}/src/hyperforge_nucliadb/sync/agent.py +2 -0
- {hyperforge_nucliadb-1.0.0.post105 → hyperforge_nucliadb-1.0.0.post108}/src/hyperforge_nucliadb.egg-info/PKG-INFO +1 -1
- {hyperforge_nucliadb-1.0.0.post105 → hyperforge_nucliadb-1.0.0.post108}/tests/test_sync.py +54 -0
- {hyperforge_nucliadb-1.0.0.post105 → hyperforge_nucliadb-1.0.0.post108}/README.md +0 -0
- {hyperforge_nucliadb-1.0.0.post105 → hyperforge_nucliadb-1.0.0.post108}/setup.cfg +0 -0
- {hyperforge_nucliadb-1.0.0.post105 → hyperforge_nucliadb-1.0.0.post108}/src/hyperforge_nucliadb/__init__.py +0 -0
- {hyperforge_nucliadb-1.0.0.post105 → hyperforge_nucliadb-1.0.0.post108}/src/hyperforge_nucliadb/advanced_ask_agent.py +0 -0
- {hyperforge_nucliadb-1.0.0.post105 → hyperforge_nucliadb-1.0.0.post108}/src/hyperforge_nucliadb/advanced_ask_config.py +0 -0
- {hyperforge_nucliadb-1.0.0.post105 → hyperforge_nucliadb-1.0.0.post108}/src/hyperforge_nucliadb/ask/__init__.py +0 -0
- {hyperforge_nucliadb-1.0.0.post105 → hyperforge_nucliadb-1.0.0.post108}/src/hyperforge_nucliadb/ask/analysis.py +0 -0
- {hyperforge_nucliadb-1.0.0.post105 → hyperforge_nucliadb-1.0.0.post108}/src/hyperforge_nucliadb/ask/ask.py +0 -0
- {hyperforge_nucliadb-1.0.0.post105 → hyperforge_nucliadb-1.0.0.post108}/src/hyperforge_nucliadb/ask/config.py +0 -0
- {hyperforge_nucliadb-1.0.0.post105 → hyperforge_nucliadb-1.0.0.post108}/src/hyperforge_nucliadb/ask/hydrate.py +0 -0
- {hyperforge_nucliadb-1.0.0.post105 → hyperforge_nucliadb-1.0.0.post108}/src/hyperforge_nucliadb/ask/kb_analysis.py +0 -0
- {hyperforge_nucliadb-1.0.0.post105 → hyperforge_nucliadb-1.0.0.post108}/src/hyperforge_nucliadb/ask/knowledge_scan.py +0 -0
- {hyperforge_nucliadb-1.0.0.post105 → hyperforge_nucliadb-1.0.0.post108}/src/hyperforge_nucliadb/ask/models.py +0 -0
- {hyperforge_nucliadb-1.0.0.post105 → hyperforge_nucliadb-1.0.0.post108}/src/hyperforge_nucliadb/ask/multi.py +0 -0
- {hyperforge_nucliadb-1.0.0.post105 → hyperforge_nucliadb-1.0.0.post108}/src/hyperforge_nucliadb/ask/nucliadb.py +0 -0
- {hyperforge_nucliadb-1.0.0.post105 → hyperforge_nucliadb-1.0.0.post108}/src/hyperforge_nucliadb/ask/prompt_analysis.py +0 -0
- {hyperforge_nucliadb-1.0.0.post105 → hyperforge_nucliadb-1.0.0.post108}/src/hyperforge_nucliadb/ask/query_analysis.py +0 -0
- {hyperforge_nucliadb-1.0.0.post105 → hyperforge_nucliadb-1.0.0.post108}/src/hyperforge_nucliadb/ask/rerank.py +0 -0
- {hyperforge_nucliadb-1.0.0.post105 → hyperforge_nucliadb-1.0.0.post108}/src/hyperforge_nucliadb/ask/utils.py +0 -0
- {hyperforge_nucliadb-1.0.0.post105 → hyperforge_nucliadb-1.0.0.post108}/src/hyperforge_nucliadb/ask_utils.py +0 -0
- {hyperforge_nucliadb-1.0.0.post105 → hyperforge_nucliadb-1.0.0.post108}/src/hyperforge_nucliadb/basic_ask_agent.py +0 -0
- {hyperforge_nucliadb-1.0.0.post105 → hyperforge_nucliadb-1.0.0.post108}/src/hyperforge_nucliadb/basic_ask_config.py +0 -0
- {hyperforge_nucliadb-1.0.0.post105 → hyperforge_nucliadb-1.0.0.post108}/src/hyperforge_nucliadb/driver.py +0 -0
- {hyperforge_nucliadb-1.0.0.post105 → hyperforge_nucliadb-1.0.0.post108}/src/hyperforge_nucliadb/driver_config.py +0 -0
- {hyperforge_nucliadb-1.0.0.post105 → hyperforge_nucliadb-1.0.0.post108}/src/hyperforge_nucliadb/py.typed +0 -0
- {hyperforge_nucliadb-1.0.0.post105 → hyperforge_nucliadb-1.0.0.post108}/src/hyperforge_nucliadb/sync/__init__.py +0 -0
- {hyperforge_nucliadb-1.0.0.post105 → hyperforge_nucliadb-1.0.0.post108}/src/hyperforge_nucliadb/sync/config.py +0 -0
- {hyperforge_nucliadb-1.0.0.post105 → hyperforge_nucliadb-1.0.0.post108}/src/hyperforge_nucliadb/sync/config_driver.py +0 -0
- {hyperforge_nucliadb-1.0.0.post105 → hyperforge_nucliadb-1.0.0.post108}/src/hyperforge_nucliadb/sync/driver.py +0 -0
- {hyperforge_nucliadb-1.0.0.post105 → hyperforge_nucliadb-1.0.0.post108}/src/hyperforge_nucliadb.egg-info/SOURCES.txt +0 -0
- {hyperforge_nucliadb-1.0.0.post105 → hyperforge_nucliadb-1.0.0.post108}/src/hyperforge_nucliadb.egg-info/dependency_links.txt +0 -0
- {hyperforge_nucliadb-1.0.0.post105 → hyperforge_nucliadb-1.0.0.post108}/src/hyperforge_nucliadb.egg-info/requires.txt +0 -0
- {hyperforge_nucliadb-1.0.0.post105 → hyperforge_nucliadb-1.0.0.post108}/src/hyperforge_nucliadb.egg-info/top_level.txt +0 -0
- {hyperforge_nucliadb-1.0.0.post105 → hyperforge_nucliadb-1.0.0.post108}/tests/test_ask_utils.py +0 -0
- {hyperforge_nucliadb-1.0.0.post105 → hyperforge_nucliadb-1.0.0.post108}/tests/test_driver.py +0 -0
- {hyperforge_nucliadb-1.0.0.post105 → hyperforge_nucliadb-1.0.0.post108}/tests/test_nucliadb.py +0 -0
|
@@ -4,7 +4,7 @@ build-backend = "setuptools.build_meta"
|
|
|
4
4
|
|
|
5
5
|
[project]
|
|
6
6
|
name = "hyperforge_nucliadb"
|
|
7
|
-
version = "1.0.0.
|
|
7
|
+
version = "1.0.0.post108"
|
|
8
8
|
license = "Apache-2.0"
|
|
9
9
|
description = "NucliaDB Hyperforge agent"
|
|
10
10
|
authors = [{ name = "Nuclia", email = "nucliadb@nuclia.com" }]
|
|
@@ -398,6 +398,8 @@ class SyncAskAgent(BasicAskAgent):
|
|
|
398
398
|
connection_id,
|
|
399
399
|
connection_credentials,
|
|
400
400
|
) in existing_credentials.items():
|
|
401
|
+
if connection_id not in connections_by_resource:
|
|
402
|
+
continue
|
|
401
403
|
source = connections[kb_source_id]
|
|
402
404
|
if (
|
|
403
405
|
connection_id not in source.sync_configs
|
|
@@ -311,6 +311,60 @@ async def test_hybrid_dynamic_connection_is_authorized():
|
|
|
311
311
|
assert result == {"source": {SYNC_CONFIG_ID: ["connected-resource"]}}
|
|
312
312
|
|
|
313
313
|
|
|
314
|
+
async def test_hybrid_dynamic_connection_ignores_unrequested_credentials():
|
|
315
|
+
agent = SyncAskAgent(SyncAskAgentConfig(sources=["source"]))
|
|
316
|
+
driver = SimpleNamespace(
|
|
317
|
+
config=SimpleNamespace(connection_ids=[]),
|
|
318
|
+
sync_configs={SYNC_CONFIG_ID: [EXTERNAL_CONNECTION_ID]},
|
|
319
|
+
information={
|
|
320
|
+
EXTERNAL_CONNECTION_ID: SimpleNamespace(provider="sharefile_oauth")
|
|
321
|
+
},
|
|
322
|
+
validate_resources=AsyncMock(return_value=["connected-resource"]),
|
|
323
|
+
)
|
|
324
|
+
resource = SimpleNamespace(
|
|
325
|
+
id="connected-resource",
|
|
326
|
+
origin=SimpleNamespace(
|
|
327
|
+
source_id=f"sync_config_{SYNC_CONFIG_ID}",
|
|
328
|
+
sync_metadata=SimpleNamespace(model_dump=MagicMock(return_value={})),
|
|
329
|
+
),
|
|
330
|
+
)
|
|
331
|
+
ndb = SimpleNamespace(
|
|
332
|
+
config=SimpleNamespace(kbid="kb"),
|
|
333
|
+
driver=SimpleNamespace(get_resource_by_id=AsyncMock(return_value=resource)),
|
|
334
|
+
)
|
|
335
|
+
manager = SimpleNamespace(
|
|
336
|
+
drivers=SimpleNamespace(get=MagicMock(return_value=driver))
|
|
337
|
+
)
|
|
338
|
+
memory = MagicMock()
|
|
339
|
+
memory.get_session_id.return_value = "session"
|
|
340
|
+
memory.send_feedback = AsyncMock(
|
|
341
|
+
return_value=UserToAgentInteraction(
|
|
342
|
+
request_id="session",
|
|
343
|
+
response=json.dumps(
|
|
344
|
+
{
|
|
345
|
+
"existing_credentials": {
|
|
346
|
+
SYNC_CONFIG_ID: {EXTERNAL_CONNECTION_ID: "credential"},
|
|
347
|
+
"00000000-0000-0000-0000-000000000002": {
|
|
348
|
+
"unrequested-connection": "credential"
|
|
349
|
+
},
|
|
350
|
+
}
|
|
351
|
+
}
|
|
352
|
+
),
|
|
353
|
+
)
|
|
354
|
+
)
|
|
355
|
+
|
|
356
|
+
with patch("hyperforge_nucliadb.sync.agent.get_ndb_driver", return_value=ndb):
|
|
357
|
+
result = await agent._post_filter_configured_resources(
|
|
358
|
+
memory=memory,
|
|
359
|
+
manager=manager, # type: ignore[arg-type]
|
|
360
|
+
resources={"source": [resource.id]},
|
|
361
|
+
allowed_connection_ids={SYNC_CONFIG_ID},
|
|
362
|
+
)
|
|
363
|
+
|
|
364
|
+
assert result == {"source": {SYNC_CONFIG_ID: ["connected-resource"]}}
|
|
365
|
+
driver.validate_resources.assert_awaited_once()
|
|
366
|
+
|
|
367
|
+
|
|
314
368
|
async def test_hybrid_resources_without_connections_skip_authorization():
|
|
315
369
|
agent = SyncAskAgent(SyncAskAgentConfig(sources=["source"]))
|
|
316
370
|
driver = SimpleNamespace(config=SimpleNamespace(connection_ids=[]))
|
|
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_nucliadb-1.0.0.post105 → hyperforge_nucliadb-1.0.0.post108}/tests/test_ask_utils.py
RENAMED
|
File without changes
|
{hyperforge_nucliadb-1.0.0.post105 → hyperforge_nucliadb-1.0.0.post108}/tests/test_driver.py
RENAMED
|
File without changes
|
{hyperforge_nucliadb-1.0.0.post105 → hyperforge_nucliadb-1.0.0.post108}/tests/test_nucliadb.py
RENAMED
|
File without changes
|