mirror of
https://github.com/MODSetter/SurfSense.git
synced 2026-05-19 18:45:15 +02:00
multi_agent_chat/connectors+builtins: adopt symmetric self_gated_tool_permission_row helper
This commit is contained in:
parent
a06aec2821
commit
d68280113b
58 changed files with 290 additions and 171 deletions
|
|
@ -7,17 +7,19 @@ from typing import Any
|
||||||
from deepagents import SubAgent
|
from deepagents import SubAgent
|
||||||
from langchain_core.language_models import BaseChatModel
|
from langchain_core.language_models import BaseChatModel
|
||||||
|
|
||||||
|
from app.agents.multi_agent_chat.subagents.shared.hitl.approvals.middleware_gated import (
|
||||||
|
middleware_gated_interrupt_on,
|
||||||
|
)
|
||||||
from app.agents.multi_agent_chat.subagents.shared.md_file_reader import (
|
from app.agents.multi_agent_chat.subagents.shared.md_file_reader import (
|
||||||
read_md_file,
|
read_md_file,
|
||||||
)
|
)
|
||||||
from app.agents.multi_agent_chat.subagents.shared.permissions import (
|
|
||||||
ToolsPermissions,
|
|
||||||
merge_tools_permissions,
|
|
||||||
middleware_gated_interrupt_on,
|
|
||||||
)
|
|
||||||
from app.agents.multi_agent_chat.subagents.shared.subagent_builder import (
|
from app.agents.multi_agent_chat.subagents.shared.subagent_builder import (
|
||||||
pack_subagent,
|
pack_subagent,
|
||||||
)
|
)
|
||||||
|
from app.agents.multi_agent_chat.subagents.shared.tool_kinds import (
|
||||||
|
ToolsPermissions,
|
||||||
|
merge_tools_permissions,
|
||||||
|
)
|
||||||
|
|
||||||
from .tools.index import load_tools
|
from .tools.index import load_tools
|
||||||
|
|
||||||
|
|
|
||||||
|
|
@ -2,7 +2,10 @@ from __future__ import annotations
|
||||||
|
|
||||||
from typing import Any
|
from typing import Any
|
||||||
|
|
||||||
from app.agents.multi_agent_chat.subagents.shared.permissions import (
|
from app.agents.multi_agent_chat.subagents.shared.hitl.approvals.self_gated import (
|
||||||
|
self_gated_tool_permission_row,
|
||||||
|
)
|
||||||
|
from app.agents.multi_agent_chat.subagents.shared.tool_kinds import (
|
||||||
ToolsPermissions,
|
ToolsPermissions,
|
||||||
)
|
)
|
||||||
|
|
||||||
|
|
@ -44,11 +47,11 @@ def load_tools(
|
||||||
)
|
)
|
||||||
return {
|
return {
|
||||||
"allow": [
|
"allow": [
|
||||||
{"name": getattr(podcast, "name", "") or "", "tool": podcast},
|
self_gated_tool_permission_row(podcast),
|
||||||
{"name": getattr(video, "name", "") or "", "tool": video},
|
self_gated_tool_permission_row(video),
|
||||||
{"name": getattr(report, "name", "") or "", "tool": report},
|
self_gated_tool_permission_row(report),
|
||||||
{"name": getattr(resume, "name", "") or "", "tool": resume},
|
self_gated_tool_permission_row(resume),
|
||||||
{"name": getattr(image, "name", "") or "", "tool": image},
|
self_gated_tool_permission_row(image),
|
||||||
],
|
],
|
||||||
"ask": [],
|
"ask": [],
|
||||||
}
|
}
|
||||||
|
|
|
||||||
|
|
@ -7,17 +7,19 @@ from typing import Any
|
||||||
from deepagents import SubAgent
|
from deepagents import SubAgent
|
||||||
from langchain_core.language_models import BaseChatModel
|
from langchain_core.language_models import BaseChatModel
|
||||||
|
|
||||||
|
from app.agents.multi_agent_chat.subagents.shared.hitl.approvals.middleware_gated import (
|
||||||
|
middleware_gated_interrupt_on,
|
||||||
|
)
|
||||||
from app.agents.multi_agent_chat.subagents.shared.md_file_reader import (
|
from app.agents.multi_agent_chat.subagents.shared.md_file_reader import (
|
||||||
read_md_file,
|
read_md_file,
|
||||||
)
|
)
|
||||||
from app.agents.multi_agent_chat.subagents.shared.permissions import (
|
|
||||||
ToolsPermissions,
|
|
||||||
merge_tools_permissions,
|
|
||||||
middleware_gated_interrupt_on,
|
|
||||||
)
|
|
||||||
from app.agents.multi_agent_chat.subagents.shared.subagent_builder import (
|
from app.agents.multi_agent_chat.subagents.shared.subagent_builder import (
|
||||||
pack_subagent,
|
pack_subagent,
|
||||||
)
|
)
|
||||||
|
from app.agents.multi_agent_chat.subagents.shared.tool_kinds import (
|
||||||
|
ToolsPermissions,
|
||||||
|
merge_tools_permissions,
|
||||||
|
)
|
||||||
|
|
||||||
from .tools.index import load_tools
|
from .tools.index import load_tools
|
||||||
|
|
||||||
|
|
|
||||||
|
|
@ -2,7 +2,10 @@ from __future__ import annotations
|
||||||
|
|
||||||
from typing import Any
|
from typing import Any
|
||||||
|
|
||||||
from app.agents.multi_agent_chat.subagents.shared.permissions import (
|
from app.agents.multi_agent_chat.subagents.shared.hitl.approvals.self_gated import (
|
||||||
|
self_gated_tool_permission_row,
|
||||||
|
)
|
||||||
|
from app.agents.multi_agent_chat.subagents.shared.tool_kinds import (
|
||||||
ToolsPermissions,
|
ToolsPermissions,
|
||||||
)
|
)
|
||||||
from app.db import ChatVisibility
|
from app.db import ChatVisibility
|
||||||
|
|
@ -21,7 +24,7 @@ def load_tools(
|
||||||
llm=resolved_dependencies.get("llm"),
|
llm=resolved_dependencies.get("llm"),
|
||||||
)
|
)
|
||||||
return {
|
return {
|
||||||
"allow": [{"name": getattr(mem, "name", "") or "", "tool": mem}],
|
"allow": [self_gated_tool_permission_row(mem)],
|
||||||
"ask": [],
|
"ask": [],
|
||||||
}
|
}
|
||||||
mem = create_update_memory_tool(
|
mem = create_update_memory_tool(
|
||||||
|
|
@ -29,4 +32,4 @@ def load_tools(
|
||||||
db_session=resolved_dependencies["db_session"],
|
db_session=resolved_dependencies["db_session"],
|
||||||
llm=resolved_dependencies.get("llm"),
|
llm=resolved_dependencies.get("llm"),
|
||||||
)
|
)
|
||||||
return {"allow": [{"name": getattr(mem, "name", "") or "", "tool": mem}], "ask": []}
|
return {"allow": [self_gated_tool_permission_row(mem)], "ask": []}
|
||||||
|
|
|
||||||
|
|
@ -7,17 +7,19 @@ from typing import Any
|
||||||
from deepagents import SubAgent
|
from deepagents import SubAgent
|
||||||
from langchain_core.language_models import BaseChatModel
|
from langchain_core.language_models import BaseChatModel
|
||||||
|
|
||||||
|
from app.agents.multi_agent_chat.subagents.shared.hitl.approvals.middleware_gated import (
|
||||||
|
middleware_gated_interrupt_on,
|
||||||
|
)
|
||||||
from app.agents.multi_agent_chat.subagents.shared.md_file_reader import (
|
from app.agents.multi_agent_chat.subagents.shared.md_file_reader import (
|
||||||
read_md_file,
|
read_md_file,
|
||||||
)
|
)
|
||||||
from app.agents.multi_agent_chat.subagents.shared.permissions import (
|
|
||||||
ToolsPermissions,
|
|
||||||
merge_tools_permissions,
|
|
||||||
middleware_gated_interrupt_on,
|
|
||||||
)
|
|
||||||
from app.agents.multi_agent_chat.subagents.shared.subagent_builder import (
|
from app.agents.multi_agent_chat.subagents.shared.subagent_builder import (
|
||||||
pack_subagent,
|
pack_subagent,
|
||||||
)
|
)
|
||||||
|
from app.agents.multi_agent_chat.subagents.shared.tool_kinds import (
|
||||||
|
ToolsPermissions,
|
||||||
|
merge_tools_permissions,
|
||||||
|
)
|
||||||
|
|
||||||
from .tools.index import load_tools
|
from .tools.index import load_tools
|
||||||
|
|
||||||
|
|
|
||||||
|
|
@ -2,7 +2,10 @@ from __future__ import annotations
|
||||||
|
|
||||||
from typing import Any
|
from typing import Any
|
||||||
|
|
||||||
from app.agents.multi_agent_chat.subagents.shared.permissions import (
|
from app.agents.multi_agent_chat.subagents.shared.hitl.approvals.self_gated import (
|
||||||
|
self_gated_tool_permission_row,
|
||||||
|
)
|
||||||
|
from app.agents.multi_agent_chat.subagents.shared.tool_kinds import (
|
||||||
ToolsPermissions,
|
ToolsPermissions,
|
||||||
)
|
)
|
||||||
|
|
||||||
|
|
@ -27,9 +30,9 @@ def load_tools(
|
||||||
)
|
)
|
||||||
return {
|
return {
|
||||||
"allow": [
|
"allow": [
|
||||||
{"name": getattr(web, "name", "") or "", "tool": web},
|
self_gated_tool_permission_row(web),
|
||||||
{"name": getattr(scrape, "name", "") or "", "tool": scrape},
|
self_gated_tool_permission_row(scrape),
|
||||||
{"name": getattr(docs, "name", "") or "", "tool": docs},
|
self_gated_tool_permission_row(docs),
|
||||||
],
|
],
|
||||||
"ask": [],
|
"ask": [],
|
||||||
}
|
}
|
||||||
|
|
|
||||||
|
|
@ -7,17 +7,19 @@ from typing import Any
|
||||||
from deepagents import SubAgent
|
from deepagents import SubAgent
|
||||||
from langchain_core.language_models import BaseChatModel
|
from langchain_core.language_models import BaseChatModel
|
||||||
|
|
||||||
|
from app.agents.multi_agent_chat.subagents.shared.hitl.approvals.middleware_gated import (
|
||||||
|
middleware_gated_interrupt_on,
|
||||||
|
)
|
||||||
from app.agents.multi_agent_chat.subagents.shared.md_file_reader import (
|
from app.agents.multi_agent_chat.subagents.shared.md_file_reader import (
|
||||||
read_md_file,
|
read_md_file,
|
||||||
)
|
)
|
||||||
from app.agents.multi_agent_chat.subagents.shared.permissions import (
|
|
||||||
ToolsPermissions,
|
|
||||||
merge_tools_permissions,
|
|
||||||
middleware_gated_interrupt_on,
|
|
||||||
)
|
|
||||||
from app.agents.multi_agent_chat.subagents.shared.subagent_builder import (
|
from app.agents.multi_agent_chat.subagents.shared.subagent_builder import (
|
||||||
pack_subagent,
|
pack_subagent,
|
||||||
)
|
)
|
||||||
|
from app.agents.multi_agent_chat.subagents.shared.tool_kinds import (
|
||||||
|
ToolsPermissions,
|
||||||
|
merge_tools_permissions,
|
||||||
|
)
|
||||||
|
|
||||||
from .tools.index import load_tools
|
from .tools.index import load_tools
|
||||||
|
|
||||||
|
|
|
||||||
|
|
@ -2,7 +2,7 @@ from __future__ import annotations
|
||||||
|
|
||||||
from typing import Any
|
from typing import Any
|
||||||
|
|
||||||
from app.agents.multi_agent_chat.subagents.shared.permissions import (
|
from app.agents.multi_agent_chat.subagents.shared.tool_kinds import (
|
||||||
ToolsPermissions,
|
ToolsPermissions,
|
||||||
)
|
)
|
||||||
|
|
||||||
|
|
|
||||||
|
|
@ -7,17 +7,19 @@ from typing import Any
|
||||||
from deepagents import SubAgent
|
from deepagents import SubAgent
|
||||||
from langchain_core.language_models import BaseChatModel
|
from langchain_core.language_models import BaseChatModel
|
||||||
|
|
||||||
|
from app.agents.multi_agent_chat.subagents.shared.hitl.approvals.middleware_gated import (
|
||||||
|
middleware_gated_interrupt_on,
|
||||||
|
)
|
||||||
from app.agents.multi_agent_chat.subagents.shared.md_file_reader import (
|
from app.agents.multi_agent_chat.subagents.shared.md_file_reader import (
|
||||||
read_md_file,
|
read_md_file,
|
||||||
)
|
)
|
||||||
from app.agents.multi_agent_chat.subagents.shared.permissions import (
|
|
||||||
ToolsPermissions,
|
|
||||||
merge_tools_permissions,
|
|
||||||
middleware_gated_interrupt_on,
|
|
||||||
)
|
|
||||||
from app.agents.multi_agent_chat.subagents.shared.subagent_builder import (
|
from app.agents.multi_agent_chat.subagents.shared.subagent_builder import (
|
||||||
pack_subagent,
|
pack_subagent,
|
||||||
)
|
)
|
||||||
|
from app.agents.multi_agent_chat.subagents.shared.tool_kinds import (
|
||||||
|
ToolsPermissions,
|
||||||
|
merge_tools_permissions,
|
||||||
|
)
|
||||||
|
|
||||||
from .tools.index import load_tools
|
from .tools.index import load_tools
|
||||||
|
|
||||||
|
|
|
||||||
|
|
@ -8,7 +8,9 @@ from googleapiclient.discovery import build
|
||||||
from langchain_core.tools import tool
|
from langchain_core.tools import tool
|
||||||
from sqlalchemy.ext.asyncio import AsyncSession
|
from sqlalchemy.ext.asyncio import AsyncSession
|
||||||
|
|
||||||
from app.agents.new_chat.tools.hitl import request_approval
|
from app.agents.multi_agent_chat.subagents.shared.hitl.approvals.self_gated import (
|
||||||
|
request_approval,
|
||||||
|
)
|
||||||
from app.services.google_calendar import GoogleCalendarToolMetadataService
|
from app.services.google_calendar import GoogleCalendarToolMetadataService
|
||||||
|
|
||||||
logger = logging.getLogger(__name__)
|
logger = logging.getLogger(__name__)
|
||||||
|
|
|
||||||
|
|
@ -8,7 +8,9 @@ from googleapiclient.discovery import build
|
||||||
from langchain_core.tools import tool
|
from langchain_core.tools import tool
|
||||||
from sqlalchemy.ext.asyncio import AsyncSession
|
from sqlalchemy.ext.asyncio import AsyncSession
|
||||||
|
|
||||||
from app.agents.new_chat.tools.hitl import request_approval
|
from app.agents.multi_agent_chat.subagents.shared.hitl.approvals.self_gated import (
|
||||||
|
request_approval,
|
||||||
|
)
|
||||||
from app.services.google_calendar import GoogleCalendarToolMetadataService
|
from app.services.google_calendar import GoogleCalendarToolMetadataService
|
||||||
|
|
||||||
logger = logging.getLogger(__name__)
|
logger = logging.getLogger(__name__)
|
||||||
|
|
|
||||||
|
|
@ -2,7 +2,10 @@ from __future__ import annotations
|
||||||
|
|
||||||
from typing import Any
|
from typing import Any
|
||||||
|
|
||||||
from app.agents.multi_agent_chat.subagents.shared.permissions import (
|
from app.agents.multi_agent_chat.subagents.shared.hitl.approvals.self_gated import (
|
||||||
|
self_gated_tool_permission_row,
|
||||||
|
)
|
||||||
|
from app.agents.multi_agent_chat.subagents.shared.tool_kinds import (
|
||||||
ToolsPermissions,
|
ToolsPermissions,
|
||||||
)
|
)
|
||||||
|
|
||||||
|
|
@ -26,10 +29,10 @@ def load_tools(
|
||||||
update = create_update_calendar_event_tool(**session_dependencies)
|
update = create_update_calendar_event_tool(**session_dependencies)
|
||||||
delete = create_delete_calendar_event_tool(**session_dependencies)
|
delete = create_delete_calendar_event_tool(**session_dependencies)
|
||||||
return {
|
return {
|
||||||
"allow": [{"name": getattr(search, "name", "") or "", "tool": search}],
|
"allow": [self_gated_tool_permission_row(search)],
|
||||||
"ask": [
|
"ask": [
|
||||||
{"name": getattr(create, "name", "") or "", "tool": create},
|
self_gated_tool_permission_row(create),
|
||||||
{"name": getattr(update, "name", "") or "", "tool": update},
|
self_gated_tool_permission_row(update),
|
||||||
{"name": getattr(delete, "name", "") or "", "tool": delete},
|
self_gated_tool_permission_row(delete),
|
||||||
],
|
],
|
||||||
}
|
}
|
||||||
|
|
|
||||||
|
|
@ -8,7 +8,9 @@ from googleapiclient.discovery import build
|
||||||
from langchain_core.tools import tool
|
from langchain_core.tools import tool
|
||||||
from sqlalchemy.ext.asyncio import AsyncSession
|
from sqlalchemy.ext.asyncio import AsyncSession
|
||||||
|
|
||||||
from app.agents.new_chat.tools.hitl import request_approval
|
from app.agents.multi_agent_chat.subagents.shared.hitl.approvals.self_gated import (
|
||||||
|
request_approval,
|
||||||
|
)
|
||||||
from app.services.google_calendar import GoogleCalendarToolMetadataService
|
from app.services.google_calendar import GoogleCalendarToolMetadataService
|
||||||
|
|
||||||
logger = logging.getLogger(__name__)
|
logger = logging.getLogger(__name__)
|
||||||
|
|
|
||||||
|
|
@ -7,17 +7,19 @@ from typing import Any
|
||||||
from deepagents import SubAgent
|
from deepagents import SubAgent
|
||||||
from langchain_core.language_models import BaseChatModel
|
from langchain_core.language_models import BaseChatModel
|
||||||
|
|
||||||
|
from app.agents.multi_agent_chat.subagents.shared.hitl.approvals.middleware_gated import (
|
||||||
|
middleware_gated_interrupt_on,
|
||||||
|
)
|
||||||
from app.agents.multi_agent_chat.subagents.shared.md_file_reader import (
|
from app.agents.multi_agent_chat.subagents.shared.md_file_reader import (
|
||||||
read_md_file,
|
read_md_file,
|
||||||
)
|
)
|
||||||
from app.agents.multi_agent_chat.subagents.shared.permissions import (
|
|
||||||
ToolsPermissions,
|
|
||||||
merge_tools_permissions,
|
|
||||||
middleware_gated_interrupt_on,
|
|
||||||
)
|
|
||||||
from app.agents.multi_agent_chat.subagents.shared.subagent_builder import (
|
from app.agents.multi_agent_chat.subagents.shared.subagent_builder import (
|
||||||
pack_subagent,
|
pack_subagent,
|
||||||
)
|
)
|
||||||
|
from app.agents.multi_agent_chat.subagents.shared.tool_kinds import (
|
||||||
|
ToolsPermissions,
|
||||||
|
merge_tools_permissions,
|
||||||
|
)
|
||||||
|
|
||||||
from .tools.index import load_tools
|
from .tools.index import load_tools
|
||||||
|
|
||||||
|
|
|
||||||
|
|
@ -2,7 +2,7 @@ from __future__ import annotations
|
||||||
|
|
||||||
from typing import Any
|
from typing import Any
|
||||||
|
|
||||||
from app.agents.multi_agent_chat.subagents.shared.permissions import (
|
from app.agents.multi_agent_chat.subagents.shared.tool_kinds import (
|
||||||
ToolsPermissions,
|
ToolsPermissions,
|
||||||
)
|
)
|
||||||
|
|
||||||
|
|
|
||||||
|
|
@ -7,17 +7,19 @@ from typing import Any
|
||||||
from deepagents import SubAgent
|
from deepagents import SubAgent
|
||||||
from langchain_core.language_models import BaseChatModel
|
from langchain_core.language_models import BaseChatModel
|
||||||
|
|
||||||
|
from app.agents.multi_agent_chat.subagents.shared.hitl.approvals.middleware_gated import (
|
||||||
|
middleware_gated_interrupt_on,
|
||||||
|
)
|
||||||
from app.agents.multi_agent_chat.subagents.shared.md_file_reader import (
|
from app.agents.multi_agent_chat.subagents.shared.md_file_reader import (
|
||||||
read_md_file,
|
read_md_file,
|
||||||
)
|
)
|
||||||
from app.agents.multi_agent_chat.subagents.shared.permissions import (
|
|
||||||
ToolsPermissions,
|
|
||||||
merge_tools_permissions,
|
|
||||||
middleware_gated_interrupt_on,
|
|
||||||
)
|
|
||||||
from app.agents.multi_agent_chat.subagents.shared.subagent_builder import (
|
from app.agents.multi_agent_chat.subagents.shared.subagent_builder import (
|
||||||
pack_subagent,
|
pack_subagent,
|
||||||
)
|
)
|
||||||
|
from app.agents.multi_agent_chat.subagents.shared.tool_kinds import (
|
||||||
|
ToolsPermissions,
|
||||||
|
merge_tools_permissions,
|
||||||
|
)
|
||||||
|
|
||||||
from .tools.index import load_tools
|
from .tools.index import load_tools
|
||||||
|
|
||||||
|
|
|
||||||
|
|
@ -5,7 +5,9 @@ from langchain_core.tools import tool
|
||||||
from sqlalchemy.ext.asyncio import AsyncSession
|
from sqlalchemy.ext.asyncio import AsyncSession
|
||||||
from sqlalchemy.orm.attributes import flag_modified
|
from sqlalchemy.orm.attributes import flag_modified
|
||||||
|
|
||||||
from app.agents.new_chat.tools.hitl import request_approval
|
from app.agents.multi_agent_chat.subagents.shared.hitl.approvals.self_gated import (
|
||||||
|
request_approval,
|
||||||
|
)
|
||||||
from app.connectors.confluence_history import ConfluenceHistoryConnector
|
from app.connectors.confluence_history import ConfluenceHistoryConnector
|
||||||
from app.services.confluence import ConfluenceToolMetadataService
|
from app.services.confluence import ConfluenceToolMetadataService
|
||||||
|
|
||||||
|
|
|
||||||
|
|
@ -5,7 +5,9 @@ from langchain_core.tools import tool
|
||||||
from sqlalchemy.ext.asyncio import AsyncSession
|
from sqlalchemy.ext.asyncio import AsyncSession
|
||||||
from sqlalchemy.orm.attributes import flag_modified
|
from sqlalchemy.orm.attributes import flag_modified
|
||||||
|
|
||||||
from app.agents.new_chat.tools.hitl import request_approval
|
from app.agents.multi_agent_chat.subagents.shared.hitl.approvals.self_gated import (
|
||||||
|
request_approval,
|
||||||
|
)
|
||||||
from app.connectors.confluence_history import ConfluenceHistoryConnector
|
from app.connectors.confluence_history import ConfluenceHistoryConnector
|
||||||
from app.services.confluence import ConfluenceToolMetadataService
|
from app.services.confluence import ConfluenceToolMetadataService
|
||||||
|
|
||||||
|
|
|
||||||
|
|
@ -2,7 +2,10 @@ from __future__ import annotations
|
||||||
|
|
||||||
from typing import Any
|
from typing import Any
|
||||||
|
|
||||||
from app.agents.multi_agent_chat.subagents.shared.permissions import (
|
from app.agents.multi_agent_chat.subagents.shared.hitl.approvals.self_gated import (
|
||||||
|
self_gated_tool_permission_row,
|
||||||
|
)
|
||||||
|
from app.agents.multi_agent_chat.subagents.shared.tool_kinds import (
|
||||||
ToolsPermissions,
|
ToolsPermissions,
|
||||||
)
|
)
|
||||||
|
|
||||||
|
|
@ -27,8 +30,8 @@ def load_tools(
|
||||||
return {
|
return {
|
||||||
"allow": [],
|
"allow": [],
|
||||||
"ask": [
|
"ask": [
|
||||||
{"name": getattr(create, "name", "") or "", "tool": create},
|
self_gated_tool_permission_row(create),
|
||||||
{"name": getattr(update, "name", "") or "", "tool": update},
|
self_gated_tool_permission_row(update),
|
||||||
{"name": getattr(delete, "name", "") or "", "tool": delete},
|
self_gated_tool_permission_row(delete),
|
||||||
],
|
],
|
||||||
}
|
}
|
||||||
|
|
|
||||||
|
|
@ -5,7 +5,9 @@ from langchain_core.tools import tool
|
||||||
from sqlalchemy.ext.asyncio import AsyncSession
|
from sqlalchemy.ext.asyncio import AsyncSession
|
||||||
from sqlalchemy.orm.attributes import flag_modified
|
from sqlalchemy.orm.attributes import flag_modified
|
||||||
|
|
||||||
from app.agents.new_chat.tools.hitl import request_approval
|
from app.agents.multi_agent_chat.subagents.shared.hitl.approvals.self_gated import (
|
||||||
|
request_approval,
|
||||||
|
)
|
||||||
from app.connectors.confluence_history import ConfluenceHistoryConnector
|
from app.connectors.confluence_history import ConfluenceHistoryConnector
|
||||||
from app.services.confluence import ConfluenceToolMetadataService
|
from app.services.confluence import ConfluenceToolMetadataService
|
||||||
|
|
||||||
|
|
|
||||||
|
|
@ -7,17 +7,19 @@ from typing import Any
|
||||||
from deepagents import SubAgent
|
from deepagents import SubAgent
|
||||||
from langchain_core.language_models import BaseChatModel
|
from langchain_core.language_models import BaseChatModel
|
||||||
|
|
||||||
|
from app.agents.multi_agent_chat.subagents.shared.hitl.approvals.middleware_gated import (
|
||||||
|
middleware_gated_interrupt_on,
|
||||||
|
)
|
||||||
from app.agents.multi_agent_chat.subagents.shared.md_file_reader import (
|
from app.agents.multi_agent_chat.subagents.shared.md_file_reader import (
|
||||||
read_md_file,
|
read_md_file,
|
||||||
)
|
)
|
||||||
from app.agents.multi_agent_chat.subagents.shared.permissions import (
|
|
||||||
ToolsPermissions,
|
|
||||||
merge_tools_permissions,
|
|
||||||
middleware_gated_interrupt_on,
|
|
||||||
)
|
|
||||||
from app.agents.multi_agent_chat.subagents.shared.subagent_builder import (
|
from app.agents.multi_agent_chat.subagents.shared.subagent_builder import (
|
||||||
pack_subagent,
|
pack_subagent,
|
||||||
)
|
)
|
||||||
|
from app.agents.multi_agent_chat.subagents.shared.tool_kinds import (
|
||||||
|
ToolsPermissions,
|
||||||
|
merge_tools_permissions,
|
||||||
|
)
|
||||||
|
|
||||||
from .tools.index import load_tools
|
from .tools.index import load_tools
|
||||||
|
|
||||||
|
|
|
||||||
|
|
@ -2,7 +2,10 @@ from __future__ import annotations
|
||||||
|
|
||||||
from typing import Any
|
from typing import Any
|
||||||
|
|
||||||
from app.agents.multi_agent_chat.subagents.shared.permissions import (
|
from app.agents.multi_agent_chat.subagents.shared.hitl.approvals.self_gated import (
|
||||||
|
self_gated_tool_permission_row,
|
||||||
|
)
|
||||||
|
from app.agents.multi_agent_chat.subagents.shared.tool_kinds import (
|
||||||
ToolsPermissions,
|
ToolsPermissions,
|
||||||
)
|
)
|
||||||
|
|
||||||
|
|
@ -25,8 +28,8 @@ def load_tools(
|
||||||
send = create_send_discord_message_tool(**common)
|
send = create_send_discord_message_tool(**common)
|
||||||
return {
|
return {
|
||||||
"allow": [
|
"allow": [
|
||||||
{"name": getattr(list_ch, "name", "") or "", "tool": list_ch},
|
self_gated_tool_permission_row(list_ch),
|
||||||
{"name": getattr(read_msg, "name", "") or "", "tool": read_msg},
|
self_gated_tool_permission_row(read_msg),
|
||||||
],
|
],
|
||||||
"ask": [{"name": getattr(send, "name", "") or "", "tool": send}],
|
"ask": [self_gated_tool_permission_row(send)],
|
||||||
}
|
}
|
||||||
|
|
|
||||||
|
|
@ -5,7 +5,9 @@ import httpx
|
||||||
from langchain_core.tools import tool
|
from langchain_core.tools import tool
|
||||||
from sqlalchemy.ext.asyncio import AsyncSession
|
from sqlalchemy.ext.asyncio import AsyncSession
|
||||||
|
|
||||||
from app.agents.new_chat.tools.hitl import request_approval
|
from app.agents.multi_agent_chat.subagents.shared.hitl.approvals.self_gated import (
|
||||||
|
request_approval,
|
||||||
|
)
|
||||||
|
|
||||||
from ._auth import DISCORD_API, get_bot_token, get_discord_connector
|
from ._auth import DISCORD_API, get_bot_token, get_discord_connector
|
||||||
|
|
||||||
|
|
|
||||||
|
|
@ -7,17 +7,19 @@ from typing import Any
|
||||||
from deepagents import SubAgent
|
from deepagents import SubAgent
|
||||||
from langchain_core.language_models import BaseChatModel
|
from langchain_core.language_models import BaseChatModel
|
||||||
|
|
||||||
|
from app.agents.multi_agent_chat.subagents.shared.hitl.approvals.middleware_gated import (
|
||||||
|
middleware_gated_interrupt_on,
|
||||||
|
)
|
||||||
from app.agents.multi_agent_chat.subagents.shared.md_file_reader import (
|
from app.agents.multi_agent_chat.subagents.shared.md_file_reader import (
|
||||||
read_md_file,
|
read_md_file,
|
||||||
)
|
)
|
||||||
from app.agents.multi_agent_chat.subagents.shared.permissions import (
|
|
||||||
ToolsPermissions,
|
|
||||||
merge_tools_permissions,
|
|
||||||
middleware_gated_interrupt_on,
|
|
||||||
)
|
|
||||||
from app.agents.multi_agent_chat.subagents.shared.subagent_builder import (
|
from app.agents.multi_agent_chat.subagents.shared.subagent_builder import (
|
||||||
pack_subagent,
|
pack_subagent,
|
||||||
)
|
)
|
||||||
|
from app.agents.multi_agent_chat.subagents.shared.tool_kinds import (
|
||||||
|
ToolsPermissions,
|
||||||
|
merge_tools_permissions,
|
||||||
|
)
|
||||||
|
|
||||||
from .tools.index import load_tools
|
from .tools.index import load_tools
|
||||||
|
|
||||||
|
|
|
||||||
|
|
@ -8,7 +8,9 @@ from langchain_core.tools import tool
|
||||||
from sqlalchemy.ext.asyncio import AsyncSession
|
from sqlalchemy.ext.asyncio import AsyncSession
|
||||||
from sqlalchemy.future import select
|
from sqlalchemy.future import select
|
||||||
|
|
||||||
from app.agents.new_chat.tools.hitl import request_approval
|
from app.agents.multi_agent_chat.subagents.shared.hitl.approvals.self_gated import (
|
||||||
|
request_approval,
|
||||||
|
)
|
||||||
from app.connectors.dropbox.client import DropboxClient
|
from app.connectors.dropbox.client import DropboxClient
|
||||||
from app.db import SearchSourceConnector, SearchSourceConnectorType
|
from app.db import SearchSourceConnector, SearchSourceConnectorType
|
||||||
|
|
||||||
|
|
|
||||||
|
|
@ -2,7 +2,10 @@ from __future__ import annotations
|
||||||
|
|
||||||
from typing import Any
|
from typing import Any
|
||||||
|
|
||||||
from app.agents.multi_agent_chat.subagents.shared.permissions import (
|
from app.agents.multi_agent_chat.subagents.shared.hitl.approvals.self_gated import (
|
||||||
|
self_gated_tool_permission_row,
|
||||||
|
)
|
||||||
|
from app.agents.multi_agent_chat.subagents.shared.tool_kinds import (
|
||||||
ToolsPermissions,
|
ToolsPermissions,
|
||||||
)
|
)
|
||||||
|
|
||||||
|
|
@ -24,7 +27,7 @@ def load_tools(
|
||||||
return {
|
return {
|
||||||
"allow": [],
|
"allow": [],
|
||||||
"ask": [
|
"ask": [
|
||||||
{"name": getattr(create, "name", "") or "", "tool": create},
|
self_gated_tool_permission_row(create),
|
||||||
{"name": getattr(delete, "name", "") or "", "tool": delete},
|
self_gated_tool_permission_row(delete),
|
||||||
],
|
],
|
||||||
}
|
}
|
||||||
|
|
|
||||||
|
|
@ -6,7 +6,9 @@ from sqlalchemy import String, and_, cast, func
|
||||||
from sqlalchemy.ext.asyncio import AsyncSession
|
from sqlalchemy.ext.asyncio import AsyncSession
|
||||||
from sqlalchemy.future import select
|
from sqlalchemy.future import select
|
||||||
|
|
||||||
from app.agents.new_chat.tools.hitl import request_approval
|
from app.agents.multi_agent_chat.subagents.shared.hitl.approvals.self_gated import (
|
||||||
|
request_approval,
|
||||||
|
)
|
||||||
from app.connectors.dropbox.client import DropboxClient
|
from app.connectors.dropbox.client import DropboxClient
|
||||||
from app.db import (
|
from app.db import (
|
||||||
Document,
|
Document,
|
||||||
|
|
|
||||||
|
|
@ -7,17 +7,19 @@ from typing import Any
|
||||||
from deepagents import SubAgent
|
from deepagents import SubAgent
|
||||||
from langchain_core.language_models import BaseChatModel
|
from langchain_core.language_models import BaseChatModel
|
||||||
|
|
||||||
|
from app.agents.multi_agent_chat.subagents.shared.hitl.approvals.middleware_gated import (
|
||||||
|
middleware_gated_interrupt_on,
|
||||||
|
)
|
||||||
from app.agents.multi_agent_chat.subagents.shared.md_file_reader import (
|
from app.agents.multi_agent_chat.subagents.shared.md_file_reader import (
|
||||||
read_md_file,
|
read_md_file,
|
||||||
)
|
)
|
||||||
from app.agents.multi_agent_chat.subagents.shared.permissions import (
|
|
||||||
ToolsPermissions,
|
|
||||||
merge_tools_permissions,
|
|
||||||
middleware_gated_interrupt_on,
|
|
||||||
)
|
|
||||||
from app.agents.multi_agent_chat.subagents.shared.subagent_builder import (
|
from app.agents.multi_agent_chat.subagents.shared.subagent_builder import (
|
||||||
pack_subagent,
|
pack_subagent,
|
||||||
)
|
)
|
||||||
|
from app.agents.multi_agent_chat.subagents.shared.tool_kinds import (
|
||||||
|
ToolsPermissions,
|
||||||
|
merge_tools_permissions,
|
||||||
|
)
|
||||||
|
|
||||||
from .tools.index import load_tools
|
from .tools.index import load_tools
|
||||||
|
|
||||||
|
|
|
||||||
|
|
@ -8,7 +8,9 @@ from typing import Any
|
||||||
from langchain_core.tools import tool
|
from langchain_core.tools import tool
|
||||||
from sqlalchemy.ext.asyncio import AsyncSession
|
from sqlalchemy.ext.asyncio import AsyncSession
|
||||||
|
|
||||||
from app.agents.new_chat.tools.hitl import request_approval
|
from app.agents.multi_agent_chat.subagents.shared.hitl.approvals.self_gated import (
|
||||||
|
request_approval,
|
||||||
|
)
|
||||||
from app.services.gmail import GmailToolMetadataService
|
from app.services.gmail import GmailToolMetadataService
|
||||||
|
|
||||||
logger = logging.getLogger(__name__)
|
logger = logging.getLogger(__name__)
|
||||||
|
|
|
||||||
|
|
@ -2,7 +2,10 @@ from __future__ import annotations
|
||||||
|
|
||||||
from typing import Any
|
from typing import Any
|
||||||
|
|
||||||
from app.agents.multi_agent_chat.subagents.shared.permissions import (
|
from app.agents.multi_agent_chat.subagents.shared.hitl.approvals.self_gated import (
|
||||||
|
self_gated_tool_permission_row,
|
||||||
|
)
|
||||||
|
from app.agents.multi_agent_chat.subagents.shared.tool_kinds import (
|
||||||
ToolsPermissions,
|
ToolsPermissions,
|
||||||
)
|
)
|
||||||
|
|
||||||
|
|
@ -31,13 +34,13 @@ def load_tools(
|
||||||
updraft = create_update_gmail_draft_tool(**common)
|
updraft = create_update_gmail_draft_tool(**common)
|
||||||
return {
|
return {
|
||||||
"allow": [
|
"allow": [
|
||||||
{"name": getattr(search, "name", "") or "", "tool": search},
|
self_gated_tool_permission_row(search),
|
||||||
{"name": getattr(read, "name", "") or "", "tool": read},
|
self_gated_tool_permission_row(read),
|
||||||
],
|
],
|
||||||
"ask": [
|
"ask": [
|
||||||
{"name": getattr(draft, "name", "") or "", "tool": draft},
|
self_gated_tool_permission_row(draft),
|
||||||
{"name": getattr(send, "name", "") or "", "tool": send},
|
self_gated_tool_permission_row(send),
|
||||||
{"name": getattr(trash, "name", "") or "", "tool": trash},
|
self_gated_tool_permission_row(trash),
|
||||||
{"name": getattr(updraft, "name", "") or "", "tool": updraft},
|
self_gated_tool_permission_row(updraft),
|
||||||
],
|
],
|
||||||
}
|
}
|
||||||
|
|
|
||||||
|
|
@ -8,7 +8,9 @@ from typing import Any
|
||||||
from langchain_core.tools import tool
|
from langchain_core.tools import tool
|
||||||
from sqlalchemy.ext.asyncio import AsyncSession
|
from sqlalchemy.ext.asyncio import AsyncSession
|
||||||
|
|
||||||
from app.agents.new_chat.tools.hitl import request_approval
|
from app.agents.multi_agent_chat.subagents.shared.hitl.approvals.self_gated import (
|
||||||
|
request_approval,
|
||||||
|
)
|
||||||
from app.services.gmail import GmailToolMetadataService
|
from app.services.gmail import GmailToolMetadataService
|
||||||
|
|
||||||
logger = logging.getLogger(__name__)
|
logger = logging.getLogger(__name__)
|
||||||
|
|
|
||||||
|
|
@ -6,7 +6,9 @@ from typing import Any
|
||||||
from langchain_core.tools import tool
|
from langchain_core.tools import tool
|
||||||
from sqlalchemy.ext.asyncio import AsyncSession
|
from sqlalchemy.ext.asyncio import AsyncSession
|
||||||
|
|
||||||
from app.agents.new_chat.tools.hitl import request_approval
|
from app.agents.multi_agent_chat.subagents.shared.hitl.approvals.self_gated import (
|
||||||
|
request_approval,
|
||||||
|
)
|
||||||
from app.services.gmail import GmailToolMetadataService
|
from app.services.gmail import GmailToolMetadataService
|
||||||
|
|
||||||
logger = logging.getLogger(__name__)
|
logger = logging.getLogger(__name__)
|
||||||
|
|
|
||||||
|
|
@ -8,7 +8,9 @@ from typing import Any
|
||||||
from langchain_core.tools import tool
|
from langchain_core.tools import tool
|
||||||
from sqlalchemy.ext.asyncio import AsyncSession
|
from sqlalchemy.ext.asyncio import AsyncSession
|
||||||
|
|
||||||
from app.agents.new_chat.tools.hitl import request_approval
|
from app.agents.multi_agent_chat.subagents.shared.hitl.approvals.self_gated import (
|
||||||
|
request_approval,
|
||||||
|
)
|
||||||
from app.services.gmail import GmailToolMetadataService
|
from app.services.gmail import GmailToolMetadataService
|
||||||
|
|
||||||
logger = logging.getLogger(__name__)
|
logger = logging.getLogger(__name__)
|
||||||
|
|
|
||||||
|
|
@ -7,17 +7,19 @@ from typing import Any
|
||||||
from deepagents import SubAgent
|
from deepagents import SubAgent
|
||||||
from langchain_core.language_models import BaseChatModel
|
from langchain_core.language_models import BaseChatModel
|
||||||
|
|
||||||
|
from app.agents.multi_agent_chat.subagents.shared.hitl.approvals.middleware_gated import (
|
||||||
|
middleware_gated_interrupt_on,
|
||||||
|
)
|
||||||
from app.agents.multi_agent_chat.subagents.shared.md_file_reader import (
|
from app.agents.multi_agent_chat.subagents.shared.md_file_reader import (
|
||||||
read_md_file,
|
read_md_file,
|
||||||
)
|
)
|
||||||
from app.agents.multi_agent_chat.subagents.shared.permissions import (
|
|
||||||
ToolsPermissions,
|
|
||||||
merge_tools_permissions,
|
|
||||||
middleware_gated_interrupt_on,
|
|
||||||
)
|
|
||||||
from app.agents.multi_agent_chat.subagents.shared.subagent_builder import (
|
from app.agents.multi_agent_chat.subagents.shared.subagent_builder import (
|
||||||
pack_subagent,
|
pack_subagent,
|
||||||
)
|
)
|
||||||
|
from app.agents.multi_agent_chat.subagents.shared.tool_kinds import (
|
||||||
|
ToolsPermissions,
|
||||||
|
merge_tools_permissions,
|
||||||
|
)
|
||||||
|
|
||||||
from .tools.index import load_tools
|
from .tools.index import load_tools
|
||||||
|
|
||||||
|
|
|
||||||
|
|
@ -5,7 +5,9 @@ from googleapiclient.errors import HttpError
|
||||||
from langchain_core.tools import tool
|
from langchain_core.tools import tool
|
||||||
from sqlalchemy.ext.asyncio import AsyncSession
|
from sqlalchemy.ext.asyncio import AsyncSession
|
||||||
|
|
||||||
from app.agents.new_chat.tools.hitl import request_approval
|
from app.agents.multi_agent_chat.subagents.shared.hitl.approvals.self_gated import (
|
||||||
|
request_approval,
|
||||||
|
)
|
||||||
from app.connectors.google_drive.client import GoogleDriveClient
|
from app.connectors.google_drive.client import GoogleDriveClient
|
||||||
from app.connectors.google_drive.file_types import GOOGLE_DOC, GOOGLE_SHEET
|
from app.connectors.google_drive.file_types import GOOGLE_DOC, GOOGLE_SHEET
|
||||||
from app.services.google_drive import GoogleDriveToolMetadataService
|
from app.services.google_drive import GoogleDriveToolMetadataService
|
||||||
|
|
|
||||||
|
|
@ -2,7 +2,10 @@ from __future__ import annotations
|
||||||
|
|
||||||
from typing import Any
|
from typing import Any
|
||||||
|
|
||||||
from app.agents.multi_agent_chat.subagents.shared.permissions import (
|
from app.agents.multi_agent_chat.subagents.shared.hitl.approvals.self_gated import (
|
||||||
|
self_gated_tool_permission_row,
|
||||||
|
)
|
||||||
|
from app.agents.multi_agent_chat.subagents.shared.tool_kinds import (
|
||||||
ToolsPermissions,
|
ToolsPermissions,
|
||||||
)
|
)
|
||||||
|
|
||||||
|
|
@ -24,7 +27,7 @@ def load_tools(
|
||||||
return {
|
return {
|
||||||
"allow": [],
|
"allow": [],
|
||||||
"ask": [
|
"ask": [
|
||||||
{"name": getattr(create, "name", "") or "", "tool": create},
|
self_gated_tool_permission_row(create),
|
||||||
{"name": getattr(delete, "name", "") or "", "tool": delete},
|
self_gated_tool_permission_row(delete),
|
||||||
],
|
],
|
||||||
}
|
}
|
||||||
|
|
|
||||||
|
|
@ -5,7 +5,9 @@ from googleapiclient.errors import HttpError
|
||||||
from langchain_core.tools import tool
|
from langchain_core.tools import tool
|
||||||
from sqlalchemy.ext.asyncio import AsyncSession
|
from sqlalchemy.ext.asyncio import AsyncSession
|
||||||
|
|
||||||
from app.agents.new_chat.tools.hitl import request_approval
|
from app.agents.multi_agent_chat.subagents.shared.hitl.approvals.self_gated import (
|
||||||
|
request_approval,
|
||||||
|
)
|
||||||
from app.connectors.google_drive.client import GoogleDriveClient
|
from app.connectors.google_drive.client import GoogleDriveClient
|
||||||
from app.services.google_drive import GoogleDriveToolMetadataService
|
from app.services.google_drive import GoogleDriveToolMetadataService
|
||||||
|
|
||||||
|
|
|
||||||
|
|
@ -7,17 +7,19 @@ from typing import Any
|
||||||
from deepagents import SubAgent
|
from deepagents import SubAgent
|
||||||
from langchain_core.language_models import BaseChatModel
|
from langchain_core.language_models import BaseChatModel
|
||||||
|
|
||||||
|
from app.agents.multi_agent_chat.subagents.shared.hitl.approvals.middleware_gated import (
|
||||||
|
middleware_gated_interrupt_on,
|
||||||
|
)
|
||||||
from app.agents.multi_agent_chat.subagents.shared.md_file_reader import (
|
from app.agents.multi_agent_chat.subagents.shared.md_file_reader import (
|
||||||
read_md_file,
|
read_md_file,
|
||||||
)
|
)
|
||||||
from app.agents.multi_agent_chat.subagents.shared.permissions import (
|
|
||||||
ToolsPermissions,
|
|
||||||
merge_tools_permissions,
|
|
||||||
middleware_gated_interrupt_on,
|
|
||||||
)
|
|
||||||
from app.agents.multi_agent_chat.subagents.shared.subagent_builder import (
|
from app.agents.multi_agent_chat.subagents.shared.subagent_builder import (
|
||||||
pack_subagent,
|
pack_subagent,
|
||||||
)
|
)
|
||||||
|
from app.agents.multi_agent_chat.subagents.shared.tool_kinds import (
|
||||||
|
ToolsPermissions,
|
||||||
|
merge_tools_permissions,
|
||||||
|
)
|
||||||
|
|
||||||
from .tools.index import load_tools
|
from .tools.index import load_tools
|
||||||
|
|
||||||
|
|
|
||||||
|
|
@ -2,7 +2,7 @@ from __future__ import annotations
|
||||||
|
|
||||||
from typing import Any
|
from typing import Any
|
||||||
|
|
||||||
from app.agents.multi_agent_chat.subagents.shared.permissions import (
|
from app.agents.multi_agent_chat.subagents.shared.tool_kinds import (
|
||||||
ToolsPermissions,
|
ToolsPermissions,
|
||||||
)
|
)
|
||||||
|
|
||||||
|
|
|
||||||
|
|
@ -7,17 +7,19 @@ from typing import Any
|
||||||
from deepagents import SubAgent
|
from deepagents import SubAgent
|
||||||
from langchain_core.language_models import BaseChatModel
|
from langchain_core.language_models import BaseChatModel
|
||||||
|
|
||||||
|
from app.agents.multi_agent_chat.subagents.shared.hitl.approvals.middleware_gated import (
|
||||||
|
middleware_gated_interrupt_on,
|
||||||
|
)
|
||||||
from app.agents.multi_agent_chat.subagents.shared.md_file_reader import (
|
from app.agents.multi_agent_chat.subagents.shared.md_file_reader import (
|
||||||
read_md_file,
|
read_md_file,
|
||||||
)
|
)
|
||||||
from app.agents.multi_agent_chat.subagents.shared.permissions import (
|
|
||||||
ToolsPermissions,
|
|
||||||
merge_tools_permissions,
|
|
||||||
middleware_gated_interrupt_on,
|
|
||||||
)
|
|
||||||
from app.agents.multi_agent_chat.subagents.shared.subagent_builder import (
|
from app.agents.multi_agent_chat.subagents.shared.subagent_builder import (
|
||||||
pack_subagent,
|
pack_subagent,
|
||||||
)
|
)
|
||||||
|
from app.agents.multi_agent_chat.subagents.shared.tool_kinds import (
|
||||||
|
ToolsPermissions,
|
||||||
|
merge_tools_permissions,
|
||||||
|
)
|
||||||
|
|
||||||
from .tools.index import load_tools
|
from .tools.index import load_tools
|
||||||
|
|
||||||
|
|
|
||||||
|
|
@ -2,7 +2,7 @@ from __future__ import annotations
|
||||||
|
|
||||||
from typing import Any
|
from typing import Any
|
||||||
|
|
||||||
from app.agents.multi_agent_chat.subagents.shared.permissions import (
|
from app.agents.multi_agent_chat.subagents.shared.tool_kinds import (
|
||||||
ToolsPermissions,
|
ToolsPermissions,
|
||||||
)
|
)
|
||||||
|
|
||||||
|
|
|
||||||
|
|
@ -7,17 +7,19 @@ from typing import Any
|
||||||
from deepagents import SubAgent
|
from deepagents import SubAgent
|
||||||
from langchain_core.language_models import BaseChatModel
|
from langchain_core.language_models import BaseChatModel
|
||||||
|
|
||||||
|
from app.agents.multi_agent_chat.subagents.shared.hitl.approvals.middleware_gated import (
|
||||||
|
middleware_gated_interrupt_on,
|
||||||
|
)
|
||||||
from app.agents.multi_agent_chat.subagents.shared.md_file_reader import (
|
from app.agents.multi_agent_chat.subagents.shared.md_file_reader import (
|
||||||
read_md_file,
|
read_md_file,
|
||||||
)
|
)
|
||||||
from app.agents.multi_agent_chat.subagents.shared.permissions import (
|
|
||||||
ToolsPermissions,
|
|
||||||
merge_tools_permissions,
|
|
||||||
middleware_gated_interrupt_on,
|
|
||||||
)
|
|
||||||
from app.agents.multi_agent_chat.subagents.shared.subagent_builder import (
|
from app.agents.multi_agent_chat.subagents.shared.subagent_builder import (
|
||||||
pack_subagent,
|
pack_subagent,
|
||||||
)
|
)
|
||||||
|
from app.agents.multi_agent_chat.subagents.shared.tool_kinds import (
|
||||||
|
ToolsPermissions,
|
||||||
|
merge_tools_permissions,
|
||||||
|
)
|
||||||
|
|
||||||
from .tools.index import load_tools
|
from .tools.index import load_tools
|
||||||
|
|
||||||
|
|
|
||||||
|
|
@ -5,7 +5,9 @@ import httpx
|
||||||
from langchain_core.tools import tool
|
from langchain_core.tools import tool
|
||||||
from sqlalchemy.ext.asyncio import AsyncSession
|
from sqlalchemy.ext.asyncio import AsyncSession
|
||||||
|
|
||||||
from app.agents.new_chat.tools.hitl import request_approval
|
from app.agents.multi_agent_chat.subagents.shared.hitl.approvals.self_gated import (
|
||||||
|
request_approval,
|
||||||
|
)
|
||||||
|
|
||||||
from ._auth import LUMA_API, get_api_key, get_luma_connector, luma_headers
|
from ._auth import LUMA_API, get_api_key, get_luma_connector, luma_headers
|
||||||
|
|
||||||
|
|
|
||||||
|
|
@ -2,7 +2,10 @@ from __future__ import annotations
|
||||||
|
|
||||||
from typing import Any
|
from typing import Any
|
||||||
|
|
||||||
from app.agents.multi_agent_chat.subagents.shared.permissions import (
|
from app.agents.multi_agent_chat.subagents.shared.hitl.approvals.self_gated import (
|
||||||
|
self_gated_tool_permission_row,
|
||||||
|
)
|
||||||
|
from app.agents.multi_agent_chat.subagents.shared.tool_kinds import (
|
||||||
ToolsPermissions,
|
ToolsPermissions,
|
||||||
)
|
)
|
||||||
|
|
||||||
|
|
@ -25,8 +28,8 @@ def load_tools(
|
||||||
create = create_create_luma_event_tool(**common)
|
create = create_create_luma_event_tool(**common)
|
||||||
return {
|
return {
|
||||||
"allow": [
|
"allow": [
|
||||||
{"name": getattr(list_ev, "name", "") or "", "tool": list_ev},
|
self_gated_tool_permission_row(list_ev),
|
||||||
{"name": getattr(read_ev, "name", "") or "", "tool": read_ev},
|
self_gated_tool_permission_row(read_ev),
|
||||||
],
|
],
|
||||||
"ask": [{"name": getattr(create, "name", "") or "", "tool": create}],
|
"ask": [self_gated_tool_permission_row(create)],
|
||||||
}
|
}
|
||||||
|
|
|
||||||
|
|
@ -7,17 +7,19 @@ from typing import Any
|
||||||
from deepagents import SubAgent
|
from deepagents import SubAgent
|
||||||
from langchain_core.language_models import BaseChatModel
|
from langchain_core.language_models import BaseChatModel
|
||||||
|
|
||||||
|
from app.agents.multi_agent_chat.subagents.shared.hitl.approvals.middleware_gated import (
|
||||||
|
middleware_gated_interrupt_on,
|
||||||
|
)
|
||||||
from app.agents.multi_agent_chat.subagents.shared.md_file_reader import (
|
from app.agents.multi_agent_chat.subagents.shared.md_file_reader import (
|
||||||
read_md_file,
|
read_md_file,
|
||||||
)
|
)
|
||||||
from app.agents.multi_agent_chat.subagents.shared.permissions import (
|
|
||||||
ToolsPermissions,
|
|
||||||
merge_tools_permissions,
|
|
||||||
middleware_gated_interrupt_on,
|
|
||||||
)
|
|
||||||
from app.agents.multi_agent_chat.subagents.shared.subagent_builder import (
|
from app.agents.multi_agent_chat.subagents.shared.subagent_builder import (
|
||||||
pack_subagent,
|
pack_subagent,
|
||||||
)
|
)
|
||||||
|
from app.agents.multi_agent_chat.subagents.shared.tool_kinds import (
|
||||||
|
ToolsPermissions,
|
||||||
|
merge_tools_permissions,
|
||||||
|
)
|
||||||
|
|
||||||
from .tools.index import load_tools
|
from .tools.index import load_tools
|
||||||
|
|
||||||
|
|
|
||||||
|
|
@ -4,7 +4,9 @@ from typing import Any
|
||||||
from langchain_core.tools import tool
|
from langchain_core.tools import tool
|
||||||
from sqlalchemy.ext.asyncio import AsyncSession
|
from sqlalchemy.ext.asyncio import AsyncSession
|
||||||
|
|
||||||
from app.agents.new_chat.tools.hitl import request_approval
|
from app.agents.multi_agent_chat.subagents.shared.hitl.approvals.self_gated import (
|
||||||
|
request_approval,
|
||||||
|
)
|
||||||
from app.connectors.notion_history import NotionAPIError, NotionHistoryConnector
|
from app.connectors.notion_history import NotionAPIError, NotionHistoryConnector
|
||||||
from app.services.notion import NotionToolMetadataService
|
from app.services.notion import NotionToolMetadataService
|
||||||
|
|
||||||
|
|
|
||||||
|
|
@ -4,7 +4,9 @@ from typing import Any
|
||||||
from langchain_core.tools import tool
|
from langchain_core.tools import tool
|
||||||
from sqlalchemy.ext.asyncio import AsyncSession
|
from sqlalchemy.ext.asyncio import AsyncSession
|
||||||
|
|
||||||
from app.agents.new_chat.tools.hitl import request_approval
|
from app.agents.multi_agent_chat.subagents.shared.hitl.approvals.self_gated import (
|
||||||
|
request_approval,
|
||||||
|
)
|
||||||
from app.connectors.notion_history import NotionAPIError, NotionHistoryConnector
|
from app.connectors.notion_history import NotionAPIError, NotionHistoryConnector
|
||||||
from app.services.notion.tool_metadata_service import NotionToolMetadataService
|
from app.services.notion.tool_metadata_service import NotionToolMetadataService
|
||||||
|
|
||||||
|
|
|
||||||
|
|
@ -2,7 +2,10 @@ from __future__ import annotations
|
||||||
|
|
||||||
from typing import Any
|
from typing import Any
|
||||||
|
|
||||||
from app.agents.multi_agent_chat.subagents.shared.permissions import (
|
from app.agents.multi_agent_chat.subagents.shared.hitl.approvals.self_gated import (
|
||||||
|
self_gated_tool_permission_row,
|
||||||
|
)
|
||||||
|
from app.agents.multi_agent_chat.subagents.shared.tool_kinds import (
|
||||||
ToolsPermissions,
|
ToolsPermissions,
|
||||||
)
|
)
|
||||||
|
|
||||||
|
|
@ -26,8 +29,8 @@ def load_tools(
|
||||||
return {
|
return {
|
||||||
"allow": [],
|
"allow": [],
|
||||||
"ask": [
|
"ask": [
|
||||||
{"name": getattr(create, "name", "") or "", "tool": create},
|
self_gated_tool_permission_row(create),
|
||||||
{"name": getattr(update, "name", "") or "", "tool": update},
|
self_gated_tool_permission_row(update),
|
||||||
{"name": getattr(delete, "name", "") or "", "tool": delete},
|
self_gated_tool_permission_row(delete),
|
||||||
],
|
],
|
||||||
}
|
}
|
||||||
|
|
|
||||||
|
|
@ -4,7 +4,9 @@ from typing import Any
|
||||||
from langchain_core.tools import tool
|
from langchain_core.tools import tool
|
||||||
from sqlalchemy.ext.asyncio import AsyncSession
|
from sqlalchemy.ext.asyncio import AsyncSession
|
||||||
|
|
||||||
from app.agents.new_chat.tools.hitl import request_approval
|
from app.agents.multi_agent_chat.subagents.shared.hitl.approvals.self_gated import (
|
||||||
|
request_approval,
|
||||||
|
)
|
||||||
from app.connectors.notion_history import NotionAPIError, NotionHistoryConnector
|
from app.connectors.notion_history import NotionAPIError, NotionHistoryConnector
|
||||||
from app.services.notion import NotionToolMetadataService
|
from app.services.notion import NotionToolMetadataService
|
||||||
|
|
||||||
|
|
|
||||||
|
|
@ -7,17 +7,19 @@ from typing import Any
|
||||||
from deepagents import SubAgent
|
from deepagents import SubAgent
|
||||||
from langchain_core.language_models import BaseChatModel
|
from langchain_core.language_models import BaseChatModel
|
||||||
|
|
||||||
|
from app.agents.multi_agent_chat.subagents.shared.hitl.approvals.middleware_gated import (
|
||||||
|
middleware_gated_interrupt_on,
|
||||||
|
)
|
||||||
from app.agents.multi_agent_chat.subagents.shared.md_file_reader import (
|
from app.agents.multi_agent_chat.subagents.shared.md_file_reader import (
|
||||||
read_md_file,
|
read_md_file,
|
||||||
)
|
)
|
||||||
from app.agents.multi_agent_chat.subagents.shared.permissions import (
|
|
||||||
ToolsPermissions,
|
|
||||||
merge_tools_permissions,
|
|
||||||
middleware_gated_interrupt_on,
|
|
||||||
)
|
|
||||||
from app.agents.multi_agent_chat.subagents.shared.subagent_builder import (
|
from app.agents.multi_agent_chat.subagents.shared.subagent_builder import (
|
||||||
pack_subagent,
|
pack_subagent,
|
||||||
)
|
)
|
||||||
|
from app.agents.multi_agent_chat.subagents.shared.tool_kinds import (
|
||||||
|
ToolsPermissions,
|
||||||
|
merge_tools_permissions,
|
||||||
|
)
|
||||||
|
|
||||||
from .tools.index import load_tools
|
from .tools.index import load_tools
|
||||||
|
|
||||||
|
|
|
||||||
|
|
@ -8,7 +8,9 @@ from langchain_core.tools import tool
|
||||||
from sqlalchemy.ext.asyncio import AsyncSession
|
from sqlalchemy.ext.asyncio import AsyncSession
|
||||||
from sqlalchemy.future import select
|
from sqlalchemy.future import select
|
||||||
|
|
||||||
from app.agents.new_chat.tools.hitl import request_approval
|
from app.agents.multi_agent_chat.subagents.shared.hitl.approvals.self_gated import (
|
||||||
|
request_approval,
|
||||||
|
)
|
||||||
from app.connectors.onedrive.client import OneDriveClient
|
from app.connectors.onedrive.client import OneDriveClient
|
||||||
from app.db import SearchSourceConnector, SearchSourceConnectorType
|
from app.db import SearchSourceConnector, SearchSourceConnectorType
|
||||||
|
|
||||||
|
|
|
||||||
|
|
@ -2,7 +2,10 @@ from __future__ import annotations
|
||||||
|
|
||||||
from typing import Any
|
from typing import Any
|
||||||
|
|
||||||
from app.agents.multi_agent_chat.subagents.shared.permissions import (
|
from app.agents.multi_agent_chat.subagents.shared.hitl.approvals.self_gated import (
|
||||||
|
self_gated_tool_permission_row,
|
||||||
|
)
|
||||||
|
from app.agents.multi_agent_chat.subagents.shared.tool_kinds import (
|
||||||
ToolsPermissions,
|
ToolsPermissions,
|
||||||
)
|
)
|
||||||
|
|
||||||
|
|
@ -24,7 +27,7 @@ def load_tools(
|
||||||
return {
|
return {
|
||||||
"allow": [],
|
"allow": [],
|
||||||
"ask": [
|
"ask": [
|
||||||
{"name": getattr(create, "name", "") or "", "tool": create},
|
self_gated_tool_permission_row(create),
|
||||||
{"name": getattr(delete, "name", "") or "", "tool": delete},
|
self_gated_tool_permission_row(delete),
|
||||||
],
|
],
|
||||||
}
|
}
|
||||||
|
|
|
||||||
|
|
@ -6,7 +6,9 @@ from sqlalchemy import String, and_, cast, func
|
||||||
from sqlalchemy.ext.asyncio import AsyncSession
|
from sqlalchemy.ext.asyncio import AsyncSession
|
||||||
from sqlalchemy.future import select
|
from sqlalchemy.future import select
|
||||||
|
|
||||||
from app.agents.new_chat.tools.hitl import request_approval
|
from app.agents.multi_agent_chat.subagents.shared.hitl.approvals.self_gated import (
|
||||||
|
request_approval,
|
||||||
|
)
|
||||||
from app.connectors.onedrive.client import OneDriveClient
|
from app.connectors.onedrive.client import OneDriveClient
|
||||||
from app.db import (
|
from app.db import (
|
||||||
Document,
|
Document,
|
||||||
|
|
|
||||||
|
|
@ -7,17 +7,19 @@ from typing import Any
|
||||||
from deepagents import SubAgent
|
from deepagents import SubAgent
|
||||||
from langchain_core.language_models import BaseChatModel
|
from langchain_core.language_models import BaseChatModel
|
||||||
|
|
||||||
|
from app.agents.multi_agent_chat.subagents.shared.hitl.approvals.middleware_gated import (
|
||||||
|
middleware_gated_interrupt_on,
|
||||||
|
)
|
||||||
from app.agents.multi_agent_chat.subagents.shared.md_file_reader import (
|
from app.agents.multi_agent_chat.subagents.shared.md_file_reader import (
|
||||||
read_md_file,
|
read_md_file,
|
||||||
)
|
)
|
||||||
from app.agents.multi_agent_chat.subagents.shared.permissions import (
|
|
||||||
ToolsPermissions,
|
|
||||||
merge_tools_permissions,
|
|
||||||
middleware_gated_interrupt_on,
|
|
||||||
)
|
|
||||||
from app.agents.multi_agent_chat.subagents.shared.subagent_builder import (
|
from app.agents.multi_agent_chat.subagents.shared.subagent_builder import (
|
||||||
pack_subagent,
|
pack_subagent,
|
||||||
)
|
)
|
||||||
|
from app.agents.multi_agent_chat.subagents.shared.tool_kinds import (
|
||||||
|
ToolsPermissions,
|
||||||
|
merge_tools_permissions,
|
||||||
|
)
|
||||||
|
|
||||||
from .tools.index import load_tools
|
from .tools.index import load_tools
|
||||||
|
|
||||||
|
|
|
||||||
|
|
@ -2,7 +2,7 @@ from __future__ import annotations
|
||||||
|
|
||||||
from typing import Any
|
from typing import Any
|
||||||
|
|
||||||
from app.agents.multi_agent_chat.subagents.shared.permissions import (
|
from app.agents.multi_agent_chat.subagents.shared.tool_kinds import (
|
||||||
ToolsPermissions,
|
ToolsPermissions,
|
||||||
)
|
)
|
||||||
|
|
||||||
|
|
|
||||||
|
|
@ -7,17 +7,19 @@ from typing import Any
|
||||||
from deepagents import SubAgent
|
from deepagents import SubAgent
|
||||||
from langchain_core.language_models import BaseChatModel
|
from langchain_core.language_models import BaseChatModel
|
||||||
|
|
||||||
|
from app.agents.multi_agent_chat.subagents.shared.hitl.approvals.middleware_gated import (
|
||||||
|
middleware_gated_interrupt_on,
|
||||||
|
)
|
||||||
from app.agents.multi_agent_chat.subagents.shared.md_file_reader import (
|
from app.agents.multi_agent_chat.subagents.shared.md_file_reader import (
|
||||||
read_md_file,
|
read_md_file,
|
||||||
)
|
)
|
||||||
from app.agents.multi_agent_chat.subagents.shared.permissions import (
|
|
||||||
ToolsPermissions,
|
|
||||||
merge_tools_permissions,
|
|
||||||
middleware_gated_interrupt_on,
|
|
||||||
)
|
|
||||||
from app.agents.multi_agent_chat.subagents.shared.subagent_builder import (
|
from app.agents.multi_agent_chat.subagents.shared.subagent_builder import (
|
||||||
pack_subagent,
|
pack_subagent,
|
||||||
)
|
)
|
||||||
|
from app.agents.multi_agent_chat.subagents.shared.tool_kinds import (
|
||||||
|
ToolsPermissions,
|
||||||
|
merge_tools_permissions,
|
||||||
|
)
|
||||||
|
|
||||||
from .tools.index import load_tools
|
from .tools.index import load_tools
|
||||||
|
|
||||||
|
|
|
||||||
|
|
@ -2,7 +2,10 @@ from __future__ import annotations
|
||||||
|
|
||||||
from typing import Any
|
from typing import Any
|
||||||
|
|
||||||
from app.agents.multi_agent_chat.subagents.shared.permissions import (
|
from app.agents.multi_agent_chat.subagents.shared.hitl.approvals.self_gated import (
|
||||||
|
self_gated_tool_permission_row,
|
||||||
|
)
|
||||||
|
from app.agents.multi_agent_chat.subagents.shared.tool_kinds import (
|
||||||
ToolsPermissions,
|
ToolsPermissions,
|
||||||
)
|
)
|
||||||
|
|
||||||
|
|
@ -25,8 +28,8 @@ def load_tools(
|
||||||
send = create_send_teams_message_tool(**common)
|
send = create_send_teams_message_tool(**common)
|
||||||
return {
|
return {
|
||||||
"allow": [
|
"allow": [
|
||||||
{"name": getattr(list_ch, "name", "") or "", "tool": list_ch},
|
self_gated_tool_permission_row(list_ch),
|
||||||
{"name": getattr(read_msg, "name", "") or "", "tool": read_msg},
|
self_gated_tool_permission_row(read_msg),
|
||||||
],
|
],
|
||||||
"ask": [{"name": getattr(send, "name", "") or "", "tool": send}],
|
"ask": [self_gated_tool_permission_row(send)],
|
||||||
}
|
}
|
||||||
|
|
|
||||||
|
|
@ -5,7 +5,9 @@ import httpx
|
||||||
from langchain_core.tools import tool
|
from langchain_core.tools import tool
|
||||||
from sqlalchemy.ext.asyncio import AsyncSession
|
from sqlalchemy.ext.asyncio import AsyncSession
|
||||||
|
|
||||||
from app.agents.new_chat.tools.hitl import request_approval
|
from app.agents.multi_agent_chat.subagents.shared.hitl.approvals.self_gated import (
|
||||||
|
request_approval,
|
||||||
|
)
|
||||||
|
|
||||||
from ._auth import GRAPH_API, get_access_token, get_teams_connector
|
from ._auth import GRAPH_API, get_access_token, get_teams_connector
|
||||||
|
|
||||||
|
|
|
||||||
Loading…
Add table
Add a link
Reference in a new issue