langchain-trigger-server 0.1.13__tar.gz → 0.1.15__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.
Potentially problematic release.
This version of langchain-trigger-server might be problematic. Click here for more details.
- langchain_trigger_server-0.1.15/.vscode/settings.json +3 -0
- {langchain_trigger_server-0.1.13 → langchain_trigger_server-0.1.15}/PKG-INFO +1 -1
- {langchain_trigger_server-0.1.13 → langchain_trigger_server-0.1.15}/langchain_triggers/app.py +22 -18
- {langchain_trigger_server-0.1.13 → langchain_trigger_server-0.1.15}/langchain_triggers/core.py +3 -3
- {langchain_trigger_server-0.1.13 → langchain_trigger_server-0.1.15}/langchain_triggers/database/interface.py +1 -0
- {langchain_trigger_server-0.1.13 → langchain_trigger_server-0.1.15}/langchain_triggers/database/supabase.py +3 -1
- {langchain_trigger_server-0.1.13 → langchain_trigger_server-0.1.15}/langchain_triggers/decorators.py +2 -0
- {langchain_trigger_server-0.1.13 → langchain_trigger_server-0.1.15}/langchain_triggers/triggers/cron_trigger.py +1 -0
- {langchain_trigger_server-0.1.13 → langchain_trigger_server-0.1.15}/pyproject.toml +1 -1
- langchain_trigger_server-0.1.15/uv.lock +1527 -0
- {langchain_trigger_server-0.1.13 → langchain_trigger_server-0.1.15}/.github/workflows/release.yml +0 -0
- {langchain_trigger_server-0.1.13 → langchain_trigger_server-0.1.15}/README.md +0 -0
- {langchain_trigger_server-0.1.13 → langchain_trigger_server-0.1.15}/langchain_triggers/__init__.py +0 -0
- {langchain_trigger_server-0.1.13 → langchain_trigger_server-0.1.15}/langchain_triggers/cron_manager.py +0 -0
- {langchain_trigger_server-0.1.13 → langchain_trigger_server-0.1.15}/langchain_triggers/database/__init__.py +0 -0
- {langchain_trigger_server-0.1.13 → langchain_trigger_server-0.1.15}/langchain_triggers/triggers/__init__.py +0 -0
- {langchain_trigger_server-0.1.13 → langchain_trigger_server-0.1.15}/test_framework.py +0 -0
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
Metadata-Version: 2.4
|
|
2
2
|
Name: langchain-trigger-server
|
|
3
|
-
Version: 0.1.
|
|
3
|
+
Version: 0.1.15
|
|
4
4
|
Summary: Generic event-driven triggers framework
|
|
5
5
|
Project-URL: Homepage, https://github.com/langchain-ai/open-agent-platform
|
|
6
6
|
Project-URL: Repository, https://github.com/langchain-ai/open-agent-platform
|
{langchain_trigger_server-0.1.13 → langchain_trigger_server-0.1.15}/langchain_triggers/app.py
RENAMED
|
@@ -149,6 +149,7 @@ class TriggerServer:
|
|
|
149
149
|
logger.info(f"Creating new trigger template in database: {trigger.name} ({trigger.id})")
|
|
150
150
|
await self.database.create_trigger_template(
|
|
151
151
|
id=trigger.id,
|
|
152
|
+
provider=trigger.provider,
|
|
152
153
|
name=trigger.name,
|
|
153
154
|
description=trigger.description,
|
|
154
155
|
registration_schema=trigger.registration_model.model_json_schema()
|
|
@@ -181,6 +182,7 @@ class TriggerServer:
|
|
|
181
182
|
for template in templates:
|
|
182
183
|
trigger_list.append({
|
|
183
184
|
"id": template["id"],
|
|
185
|
+
"provider": template["provider"],
|
|
184
186
|
"displayName": template["name"],
|
|
185
187
|
"description": template["description"],
|
|
186
188
|
"path": "/api/triggers/registrations",
|
|
@@ -441,26 +443,28 @@ class TriggerServer:
|
|
|
441
443
|
agent_links = await self.database.get_agents_for_trigger(registration_id)
|
|
442
444
|
|
|
443
445
|
agents_invoked = 0
|
|
444
|
-
|
|
445
|
-
|
|
446
|
+
# Iterate through each message and invoke agents for each
|
|
447
|
+
for message in result.agent_messages:
|
|
448
|
+
for agent_link in agent_links:
|
|
449
|
+
agent_id = agent_link if isinstance(agent_link, str) else agent_link.get("agent_id")
|
|
446
450
|
|
|
447
|
-
|
|
448
|
-
|
|
449
|
-
|
|
450
|
-
|
|
451
|
-
|
|
451
|
+
agent_input = {
|
|
452
|
+
"messages": [
|
|
453
|
+
{"role": "human", "content": message}
|
|
454
|
+
]
|
|
455
|
+
}
|
|
452
456
|
|
|
453
|
-
|
|
454
|
-
|
|
455
|
-
|
|
456
|
-
|
|
457
|
-
|
|
458
|
-
|
|
459
|
-
|
|
460
|
-
|
|
461
|
-
|
|
462
|
-
|
|
463
|
-
logger.info(f"Processed trigger handler, invoked {agents_invoked} agents")
|
|
457
|
+
try:
|
|
458
|
+
success = await self._invoke_agent(
|
|
459
|
+
agent_id=agent_id,
|
|
460
|
+
user_id=result.registration["user_id"],
|
|
461
|
+
input_data=agent_input,
|
|
462
|
+
)
|
|
463
|
+
if success:
|
|
464
|
+
agents_invoked += 1
|
|
465
|
+
except Exception as e:
|
|
466
|
+
logger.error(f"Error invoking agent {agent_id}: {e}", exc_info=True)
|
|
467
|
+
logger.info(f"Processed trigger handler with {len(result.agent_messages)} messages, invoked {agents_invoked} agents")
|
|
464
468
|
|
|
465
469
|
return {
|
|
466
470
|
"success": True,
|
{langchain_trigger_server-0.1.13 → langchain_trigger_server-0.1.15}/langchain_triggers/core.py
RENAMED
|
@@ -44,14 +44,14 @@ class AgentInvocationRequest(BaseModel):
|
|
|
44
44
|
class TriggerHandlerResult(BaseModel):
|
|
45
45
|
"""Result returned by trigger handlers."""
|
|
46
46
|
invoke_agent: bool = Field(default=True, description="Whether to invoke agents for this event")
|
|
47
|
-
|
|
47
|
+
agent_messages: Optional[list[str]] = Field(default=None, description="List of messages to send to agents (one invocation per message)")
|
|
48
48
|
response_body: Optional[Dict[str, Any]] = Field(default=None, description="Custom HTTP response body (when invoke_agent=False)")
|
|
49
49
|
registration: Optional[Dict[str, Any]] = Field(default=None, description="Registration data (required when invoke_agent=True)")
|
|
50
50
|
|
|
51
51
|
def model_post_init(self, __context) -> None:
|
|
52
52
|
"""Validate that required fields are provided based on invoke_agent."""
|
|
53
|
-
if self.invoke_agent and not self.
|
|
54
|
-
raise ValueError("
|
|
53
|
+
if self.invoke_agent and not self.agent_messages:
|
|
54
|
+
raise ValueError("agent_messages is required when invoke_agent=True")
|
|
55
55
|
if self.invoke_agent and not self.registration:
|
|
56
56
|
raise ValueError("registration is required when invoke_agent=True")
|
|
57
57
|
if not self.invoke_agent and not self.response_body:
|
|
@@ -71,7 +71,8 @@ class SupabaseTriggerDatabase(TriggerDatabaseInterface):
|
|
|
71
71
|
|
|
72
72
|
async def create_trigger_template(
|
|
73
73
|
self,
|
|
74
|
-
id: str,
|
|
74
|
+
id: str,
|
|
75
|
+
provider: str,
|
|
75
76
|
name: str,
|
|
76
77
|
description: str = None,
|
|
77
78
|
registration_schema: Dict = None
|
|
@@ -80,6 +81,7 @@ class SupabaseTriggerDatabase(TriggerDatabaseInterface):
|
|
|
80
81
|
try:
|
|
81
82
|
data = {
|
|
82
83
|
"id": id,
|
|
84
|
+
"provider": provider,
|
|
83
85
|
"name": name,
|
|
84
86
|
"description": description,
|
|
85
87
|
"registration_schema": registration_schema or {}
|
{langchain_trigger_server-0.1.13 → langchain_trigger_server-0.1.15}/langchain_triggers/decorators.py
RENAMED
|
@@ -14,6 +14,7 @@ class TriggerTemplate:
|
|
|
14
14
|
def __init__(
|
|
15
15
|
self,
|
|
16
16
|
id: str,
|
|
17
|
+
provider: str,
|
|
17
18
|
name: str,
|
|
18
19
|
description: str,
|
|
19
20
|
registration_model: Type[BaseModel],
|
|
@@ -22,6 +23,7 @@ class TriggerTemplate:
|
|
|
22
23
|
trigger_handler,
|
|
23
24
|
):
|
|
24
25
|
self.id = id
|
|
26
|
+
self.provider = provider
|
|
25
27
|
self.name = name
|
|
26
28
|
self.description = description
|
|
27
29
|
self.registration_model = registration_model
|
|
@@ -90,6 +90,7 @@ async def cron_trigger_handler(
|
|
|
90
90
|
cron_trigger = TriggerTemplate(
|
|
91
91
|
id="cron-trigger",
|
|
92
92
|
name="Cron Scheduler",
|
|
93
|
+
provider="Cron",
|
|
93
94
|
description="Triggers agents on a cron schedule",
|
|
94
95
|
registration_model=CronRegistration,
|
|
95
96
|
registration_handler=cron_registration_handler,
|