beddel 0.2.2 → 0.2.3
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.
- package/CHANGELOG.md +15 -0
- package/README.md +117 -14
- package/dist/agents/chat/chat.handler.d.ts +12 -0
- package/dist/agents/chat/chat.handler.d.ts.map +1 -0
- package/dist/agents/chat/chat.handler.js +143 -0
- package/dist/agents/chat/chat.handler.js.map +1 -0
- package/dist/agents/chat/chat.schema.d.ts +38 -0
- package/dist/agents/chat/chat.schema.d.ts.map +1 -0
- package/dist/agents/chat/chat.schema.js +31 -0
- package/dist/agents/chat/chat.schema.js.map +1 -0
- package/dist/agents/chat/chat.types.d.ts +42 -0
- package/dist/agents/chat/chat.types.d.ts.map +1 -0
- package/dist/agents/chat/chat.types.js +6 -0
- package/dist/agents/chat/chat.types.js.map +1 -0
- package/dist/agents/chat/chat.yaml +150 -0
- package/dist/agents/chat/index.d.ts +16 -0
- package/dist/agents/chat/index.d.ts.map +1 -0
- package/dist/agents/chat/index.js +21 -0
- package/dist/agents/chat/index.js.map +1 -0
- package/dist/agents/chromadb/chromadb.handler.d.ts +12 -0
- package/dist/agents/chromadb/chromadb.handler.d.ts.map +1 -0
- package/dist/agents/chromadb/chromadb.handler.js +139 -0
- package/dist/agents/chromadb/chromadb.handler.js.map +1 -0
- package/dist/agents/chromadb/chromadb.schema.d.ts +36 -0
- package/dist/agents/chromadb/chromadb.schema.d.ts.map +1 -0
- package/dist/agents/chromadb/chromadb.schema.js +33 -0
- package/dist/agents/chromadb/chromadb.schema.js.map +1 -0
- package/dist/agents/chromadb/chromadb.types.d.ts +49 -0
- package/dist/agents/chromadb/chromadb.types.d.ts.map +1 -0
- package/dist/agents/chromadb/chromadb.types.js +6 -0
- package/dist/agents/chromadb/chromadb.types.js.map +1 -0
- package/dist/agents/chromadb/chromadb.yaml +128 -0
- package/dist/agents/chromadb/index.d.ts +15 -0
- package/dist/agents/chromadb/index.d.ts.map +1 -0
- package/dist/agents/chromadb/index.js +20 -0
- package/dist/agents/chromadb/index.js.map +1 -0
- package/dist/agents/gemini-vectorize/gemini-vectorize.handler.d.ts +8 -0
- package/dist/agents/gemini-vectorize/gemini-vectorize.handler.d.ts.map +1 -0
- package/dist/agents/gemini-vectorize/gemini-vectorize.handler.js +58 -0
- package/dist/agents/gemini-vectorize/gemini-vectorize.handler.js.map +1 -0
- package/dist/agents/gemini-vectorize/gemini-vectorize.schema.d.ts +22 -0
- package/dist/agents/gemini-vectorize/gemini-vectorize.schema.d.ts.map +1 -0
- package/dist/agents/gemini-vectorize/gemini-vectorize.schema.js +20 -0
- package/dist/agents/gemini-vectorize/gemini-vectorize.schema.js.map +1 -0
- package/dist/agents/gemini-vectorize/gemini-vectorize.types.d.ts +32 -0
- package/dist/agents/gemini-vectorize/gemini-vectorize.types.d.ts.map +1 -0
- package/dist/agents/gemini-vectorize/gemini-vectorize.types.js +6 -0
- package/dist/agents/gemini-vectorize/gemini-vectorize.types.js.map +1 -0
- package/dist/agents/gemini-vectorize/gemini-vectorize.yaml +84 -0
- package/dist/agents/gemini-vectorize/index.d.ts +15 -0
- package/dist/agents/gemini-vectorize/index.d.ts.map +1 -0
- package/dist/agents/gemini-vectorize/index.js +20 -0
- package/dist/agents/gemini-vectorize/index.js.map +1 -0
- package/dist/agents/gitmcp/gitmcp.handler.d.ts +12 -0
- package/dist/agents/gitmcp/gitmcp.handler.d.ts.map +1 -0
- package/dist/agents/gitmcp/gitmcp.handler.js +95 -0
- package/dist/agents/gitmcp/gitmcp.handler.js.map +1 -0
- package/dist/agents/gitmcp/gitmcp.schema.d.ts +17 -0
- package/dist/agents/gitmcp/gitmcp.schema.d.ts.map +1 -0
- package/dist/agents/gitmcp/gitmcp.schema.js +18 -0
- package/dist/agents/gitmcp/gitmcp.schema.js.map +1 -0
- package/dist/agents/gitmcp/gitmcp.types.d.ts +31 -0
- package/dist/agents/gitmcp/gitmcp.types.d.ts.map +1 -0
- package/dist/agents/gitmcp/gitmcp.types.js +6 -0
- package/dist/agents/gitmcp/gitmcp.types.js.map +1 -0
- package/dist/agents/gitmcp/gitmcp.yaml +71 -0
- package/dist/agents/gitmcp/index.d.ts +16 -0
- package/dist/agents/gitmcp/index.d.ts.map +1 -0
- package/dist/agents/gitmcp/index.js +21 -0
- package/dist/agents/gitmcp/index.js.map +1 -0
- package/dist/agents/image/image.handler.d.ts +8 -0
- package/dist/agents/image/image.handler.d.ts.map +1 -0
- package/dist/agents/image/image.handler.js +66 -0
- package/dist/agents/image/image.handler.js.map +1 -0
- package/dist/agents/image/image.schema.d.ts +29 -0
- package/dist/agents/image/image.schema.d.ts.map +1 -0
- package/dist/agents/image/image.schema.js +26 -0
- package/dist/agents/image/image.schema.js.map +1 -0
- package/dist/agents/image/image.types.d.ts +42 -0
- package/dist/agents/image/image.types.d.ts.map +1 -0
- package/dist/agents/image/image.types.js +6 -0
- package/dist/agents/image/image.types.js.map +1 -0
- package/{src/agents/image-agent.yaml → dist/agents/image/image.yaml} +21 -21
- package/dist/agents/image/index.d.ts +14 -0
- package/dist/agents/image/index.d.ts.map +1 -0
- package/dist/agents/image/index.js +19 -0
- package/dist/agents/image/index.js.map +1 -0
- package/dist/agents/index.d.ts +95 -0
- package/dist/agents/index.d.ts.map +1 -0
- package/dist/agents/index.js +76 -0
- package/dist/agents/index.js.map +1 -0
- package/dist/agents/joker/index.d.ts +14 -0
- package/dist/agents/joker/index.d.ts.map +1 -0
- package/dist/agents/joker/index.js +19 -0
- package/dist/agents/joker/index.js.map +1 -0
- package/dist/agents/joker/joker.handler.d.ts +8 -0
- package/dist/agents/joker/joker.handler.d.ts.map +1 -0
- package/dist/agents/joker/joker.handler.js +48 -0
- package/dist/agents/joker/joker.handler.js.map +1 -0
- package/dist/agents/joker/joker.schema.d.ts +12 -0
- package/dist/agents/joker/joker.schema.d.ts.map +1 -0
- package/dist/agents/joker/joker.schema.js +13 -0
- package/dist/agents/joker/joker.schema.js.map +1 -0
- package/dist/agents/joker/joker.types.d.ts +35 -0
- package/dist/agents/joker/joker.types.d.ts.map +1 -0
- package/dist/agents/joker/joker.types.js +6 -0
- package/dist/agents/joker/joker.types.js.map +1 -0
- package/{src/agents/joker-agent.yaml → dist/agents/joker/joker.yaml} +4 -4
- package/dist/agents/mcp-tool/index.d.ts +14 -0
- package/dist/agents/mcp-tool/index.d.ts.map +1 -0
- package/dist/agents/mcp-tool/index.js +19 -0
- package/dist/agents/mcp-tool/index.js.map +1 -0
- package/dist/agents/mcp-tool/mcp-tool.handler.d.ts +12 -0
- package/dist/agents/mcp-tool/mcp-tool.handler.d.ts.map +1 -0
- package/dist/agents/mcp-tool/mcp-tool.handler.js +116 -0
- package/dist/agents/mcp-tool/mcp-tool.handler.js.map +1 -0
- package/dist/agents/mcp-tool/mcp-tool.schema.d.ts +19 -0
- package/dist/agents/mcp-tool/mcp-tool.schema.d.ts.map +1 -0
- package/dist/agents/mcp-tool/mcp-tool.schema.js +20 -0
- package/dist/agents/mcp-tool/mcp-tool.schema.js.map +1 -0
- package/dist/agents/mcp-tool/mcp-tool.types.d.ts +31 -0
- package/dist/agents/mcp-tool/mcp-tool.types.d.ts.map +1 -0
- package/dist/agents/mcp-tool/mcp-tool.types.js +6 -0
- package/dist/agents/mcp-tool/mcp-tool.types.js.map +1 -0
- package/dist/agents/mcp-tool/mcp-tool.yaml +71 -0
- package/dist/agents/rag/index.d.ts +15 -0
- package/dist/agents/rag/index.d.ts.map +1 -0
- package/dist/agents/rag/index.js +20 -0
- package/dist/agents/rag/index.js.map +1 -0
- package/dist/agents/rag/rag.handler.d.ts +8 -0
- package/dist/agents/rag/rag.handler.d.ts.map +1 -0
- package/dist/agents/rag/rag.handler.js +101 -0
- package/dist/agents/rag/rag.handler.js.map +1 -0
- package/dist/agents/rag/rag.schema.d.ts +27 -0
- package/dist/agents/rag/rag.schema.d.ts.map +1 -0
- package/dist/agents/rag/rag.schema.js +24 -0
- package/dist/agents/rag/rag.schema.js.map +1 -0
- package/dist/agents/rag/rag.types.d.ts +47 -0
- package/dist/agents/rag/rag.types.d.ts.map +1 -0
- package/dist/agents/rag/rag.types.js +6 -0
- package/dist/agents/rag/rag.types.js.map +1 -0
- package/dist/agents/rag/rag.yaml +89 -0
- package/dist/agents/{agentRegistry.d.ts → registry/agentRegistry.d.ts} +25 -1
- package/dist/agents/registry/agentRegistry.d.ts.map +1 -0
- package/dist/agents/{agentRegistry.js → registry/agentRegistry.js} +154 -4
- package/dist/agents/registry/agentRegistry.js.map +1 -0
- package/dist/agents/registry/index.d.ts +6 -0
- package/dist/agents/registry/index.d.ts.map +1 -0
- package/dist/agents/registry/index.js +10 -0
- package/dist/agents/registry/index.js.map +1 -0
- package/dist/agents/translator/index.d.ts +14 -0
- package/dist/agents/translator/index.d.ts.map +1 -0
- package/dist/agents/translator/index.js +19 -0
- package/dist/agents/translator/index.js.map +1 -0
- package/dist/agents/translator/translator.handler.d.ts +8 -0
- package/dist/agents/translator/translator.handler.d.ts.map +1 -0
- package/dist/agents/translator/translator.handler.js +83 -0
- package/dist/agents/translator/translator.handler.js.map +1 -0
- package/dist/agents/translator/translator.schema.d.ts +27 -0
- package/dist/agents/translator/translator.schema.d.ts.map +1 -0
- package/dist/agents/translator/translator.schema.js +28 -0
- package/dist/agents/translator/translator.schema.js.map +1 -0
- package/dist/agents/translator/translator.types.d.ts +40 -0
- package/dist/agents/translator/translator.types.d.ts.map +1 -0
- package/dist/agents/translator/translator.types.js +6 -0
- package/dist/agents/translator/translator.types.js.map +1 -0
- package/{src/agents/translator-agent.yaml → dist/agents/translator/translator.yaml} +27 -27
- package/dist/client/index.d.ts +89 -0
- package/dist/client/index.d.ts.map +1 -0
- package/dist/client/index.js +93 -0
- package/dist/client/index.js.map +1 -0
- package/dist/client/types.d.ts +17 -0
- package/dist/client/types.d.ts.map +1 -0
- package/dist/client/types.js +7 -0
- package/dist/client/types.js.map +1 -0
- package/dist/firebase/tenantManager.d.ts +34 -2
- package/dist/firebase/tenantManager.d.ts.map +1 -1
- package/dist/firebase/tenantManager.js +67 -1
- package/dist/firebase/tenantManager.js.map +1 -1
- package/dist/index.d.ts +8 -4
- package/dist/index.d.ts.map +1 -1
- package/dist/index.js +22 -7
- package/dist/index.js.map +1 -1
- package/dist/runtime/declarativeAgentRuntime.d.ts +14 -49
- package/dist/runtime/declarativeAgentRuntime.d.ts.map +1 -1
- package/dist/runtime/declarativeAgentRuntime.js +248 -355
- package/dist/runtime/declarativeAgentRuntime.js.map +1 -1
- package/dist/runtime/index.d.ts +12 -0
- package/dist/runtime/index.d.ts.map +1 -0
- package/dist/runtime/index.js +33 -0
- package/dist/runtime/index.js.map +1 -0
- package/dist/runtime/workflowExecutor.d.ts +30 -0
- package/dist/runtime/workflowExecutor.d.ts.map +1 -0
- package/dist/runtime/workflowExecutor.js +70 -0
- package/dist/runtime/workflowExecutor.js.map +1 -0
- package/dist/server/api/graphql.js +3 -3
- package/dist/server/api/graphql.js.map +1 -1
- package/dist/server/index.d.ts +2 -2
- package/dist/server/index.d.ts.map +1 -1
- package/dist/server/index.js +2 -2
- package/dist/server/index.js.map +1 -1
- package/dist/shared/index.d.ts +7 -0
- package/dist/shared/index.d.ts.map +1 -0
- package/dist/shared/index.js +23 -0
- package/dist/shared/index.js.map +1 -0
- package/dist/shared/types/agent.types.d.ts +50 -0
- package/dist/shared/types/agent.types.d.ts.map +1 -0
- package/dist/shared/types/agent.types.js +7 -0
- package/dist/shared/types/agent.types.js.map +1 -0
- package/dist/shared/types/execution.types.d.ts +42 -0
- package/dist/shared/types/execution.types.d.ts.map +1 -0
- package/dist/shared/types/execution.types.js +7 -0
- package/dist/shared/types/execution.types.js.map +1 -0
- package/dist/shared/types/index.d.ts +7 -0
- package/dist/shared/types/index.d.ts.map +1 -0
- package/dist/shared/types/index.js +23 -0
- package/dist/shared/types/index.js.map +1 -0
- package/dist/shared/types/schema.types.d.ts +52 -0
- package/dist/shared/types/schema.types.d.ts.map +1 -0
- package/dist/shared/types/schema.types.js +7 -0
- package/dist/shared/types/schema.types.js.map +1 -0
- package/dist/shared/utils/index.d.ts +5 -0
- package/dist/shared/utils/index.d.ts.map +1 -0
- package/dist/shared/utils/index.js +21 -0
- package/dist/shared/utils/index.js.map +1 -0
- package/dist/shared/utils/validation.d.ts +42 -0
- package/dist/shared/utils/validation.d.ts.map +1 -0
- package/dist/shared/utils/validation.js +93 -0
- package/dist/shared/utils/validation.js.map +1 -0
- package/dist/tenant/TenantManager.d.ts +152 -0
- package/dist/tenant/TenantManager.d.ts.map +1 -0
- package/dist/tenant/TenantManager.js +392 -0
- package/dist/tenant/TenantManager.js.map +1 -0
- package/dist/tenant/index.d.ts +47 -0
- package/dist/tenant/index.d.ts.map +1 -0
- package/dist/tenant/index.js +74 -0
- package/dist/tenant/index.js.map +1 -0
- package/dist/tenant/interfaces.d.ts +170 -0
- package/dist/tenant/interfaces.d.ts.map +1 -0
- package/dist/tenant/interfaces.js +67 -0
- package/dist/tenant/interfaces.js.map +1 -0
- package/dist/tenant/providerFactory.d.ts +43 -0
- package/dist/tenant/providerFactory.d.ts.map +1 -0
- package/dist/tenant/providerFactory.js +70 -0
- package/dist/tenant/providerFactory.js.map +1 -0
- package/dist/tenant/providerRegistry.d.ts +47 -0
- package/dist/tenant/providerRegistry.d.ts.map +1 -0
- package/dist/tenant/providerRegistry.js +79 -0
- package/dist/tenant/providerRegistry.js.map +1 -0
- package/dist/tenant/providers/FirebaseTenantProvider.d.ts +41 -0
- package/dist/tenant/providers/FirebaseTenantProvider.d.ts.map +1 -0
- package/dist/tenant/providers/FirebaseTenantProvider.js +290 -0
- package/dist/tenant/providers/FirebaseTenantProvider.js.map +1 -0
- package/dist/tenant/providers/InMemoryTenantProvider.d.ts +18 -0
- package/dist/tenant/providers/InMemoryTenantProvider.d.ts.map +1 -0
- package/dist/tenant/providers/InMemoryTenantProvider.js +137 -0
- package/dist/tenant/providers/InMemoryTenantProvider.js.map +1 -0
- package/package.json +46 -12
- package/src/agents/chat/chat.handler.ts +209 -0
- package/src/agents/chat/chat.schema.ts +33 -0
- package/src/agents/chat/chat.types.ts +46 -0
- package/src/agents/chat/chat.yaml +150 -0
- package/src/agents/chat/index.ts +21 -0
- package/src/agents/chromadb/chromadb.handler.ts +130 -0
- package/src/agents/chromadb/chromadb.schema.ts +35 -0
- package/src/agents/chromadb/chromadb.types.ts +52 -0
- package/src/agents/chromadb/chromadb.yaml +128 -0
- package/src/agents/chromadb/index.ts +20 -0
- package/src/agents/gemini-vectorize/gemini-vectorize.handler.ts +72 -0
- package/src/agents/gemini-vectorize/gemini-vectorize.schema.ts +22 -0
- package/src/agents/gemini-vectorize/gemini-vectorize.types.ts +34 -0
- package/src/agents/gemini-vectorize/gemini-vectorize.yaml +84 -0
- package/src/agents/gemini-vectorize/index.ts +20 -0
- package/src/agents/gitmcp/gitmcp.handler.ts +122 -0
- package/src/agents/gitmcp/gitmcp.schema.ts +20 -0
- package/src/agents/gitmcp/gitmcp.types.ts +33 -0
- package/src/agents/gitmcp/gitmcp.yaml +71 -0
- package/src/agents/gitmcp/index.ts +21 -0
- package/src/agents/image/image.handler.ts +82 -0
- package/src/agents/image/image.schema.ts +28 -0
- package/src/agents/image/image.types.ts +45 -0
- package/src/agents/image/image.yaml +86 -0
- package/src/agents/image/index.ts +19 -0
- package/src/agents/index.ts +59 -0
- package/src/agents/joker/index.ts +19 -0
- package/src/agents/joker/joker.handler.ts +60 -0
- package/src/agents/joker/joker.schema.ts +15 -0
- package/src/agents/joker/joker.types.ts +37 -0
- package/src/agents/joker/joker.yaml +47 -0
- package/src/agents/mcp-tool/index.ts +19 -0
- package/src/agents/mcp-tool/mcp-tool.handler.ts +112 -0
- package/src/agents/mcp-tool/mcp-tool.schema.ts +22 -0
- package/src/agents/mcp-tool/mcp-tool.types.ts +33 -0
- package/src/agents/mcp-tool/mcp-tool.yaml +71 -0
- package/src/agents/rag/index.ts +20 -0
- package/src/agents/rag/rag.handler.ts +119 -0
- package/src/agents/rag/rag.schema.ts +26 -0
- package/src/agents/rag/rag.types.ts +51 -0
- package/src/agents/rag/rag.yaml +89 -0
- package/src/agents/{agentRegistry.ts → registry/agentRegistry.ts} +161 -5
- package/src/agents/registry/index.ts +6 -0
- package/src/agents/translator/index.ts +19 -0
- package/src/agents/translator/translator.handler.ts +99 -0
- package/src/agents/translator/translator.schema.ts +30 -0
- package/src/agents/translator/translator.types.ts +42 -0
- package/src/agents/translator/translator.yaml +80 -0
- package/src/client/index.ts +53 -0
- package/src/client/types.ts +38 -0
- package/src/index.ts +48 -5
- package/src/runtime/declarativeAgentRuntime.ts +367 -489
- package/src/runtime/index.ts +31 -0
- package/src/runtime/workflowExecutor.ts +94 -0
- package/src/server/api/graphql.ts +1 -1
- package/src/server/index.ts +2 -2
- package/src/shared/index.ts +7 -0
- package/src/shared/types/agent.types.ts +80 -0
- package/src/shared/types/execution.types.ts +45 -0
- package/src/shared/types/index.ts +7 -0
- package/src/shared/types/schema.types.ts +55 -0
- package/src/shared/utils/index.ts +5 -0
- package/src/shared/utils/validation.ts +100 -0
- package/src/tenant/TenantManager.ts +488 -0
- package/src/tenant/index.ts +101 -0
- package/src/tenant/interfaces.ts +231 -0
- package/src/tenant/providerFactory.ts +75 -0
- package/src/tenant/providerRegistry.ts +86 -0
- package/src/tenant/providers/InMemoryTenantProvider.ts +168 -0
- package/dist/agents/agentRegistry.d.ts.map +0 -1
- package/dist/agents/agentRegistry.js.map +0 -1
- package/src/firebase/tenantManager.ts +0 -443
|
@@ -0,0 +1,33 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* MCP Tool Agent Types - Shared between client and server
|
|
3
|
+
*/
|
|
4
|
+
|
|
5
|
+
/**
|
|
6
|
+
* Parameters for MCP tool invocation
|
|
7
|
+
*/
|
|
8
|
+
export interface McpToolHandlerParams {
|
|
9
|
+
server_url: string;
|
|
10
|
+
tool_name: string;
|
|
11
|
+
tool_arguments?: Record<string, unknown>;
|
|
12
|
+
}
|
|
13
|
+
|
|
14
|
+
/**
|
|
15
|
+
* Result from MCP tool invocation
|
|
16
|
+
*/
|
|
17
|
+
export interface McpToolHandlerResult {
|
|
18
|
+
success: boolean;
|
|
19
|
+
data?: string;
|
|
20
|
+
tool_names?: string[];
|
|
21
|
+
error?: string;
|
|
22
|
+
}
|
|
23
|
+
|
|
24
|
+
/**
|
|
25
|
+
* MCP Tool agent metadata
|
|
26
|
+
*/
|
|
27
|
+
export interface McpToolMetadata {
|
|
28
|
+
id: 'mcp-tool';
|
|
29
|
+
name: string;
|
|
30
|
+
description: string;
|
|
31
|
+
category: 'integration';
|
|
32
|
+
route: '/agents/mcp-tool';
|
|
33
|
+
}
|
|
@@ -0,0 +1,71 @@
|
|
|
1
|
+
# MCP Tool Agent - Native Builtin Agent for Beddel Runtime
|
|
2
|
+
# Route: /agents/mcp-tool
|
|
3
|
+
# Method: mcp-tool.execute
|
|
4
|
+
|
|
5
|
+
agent:
|
|
6
|
+
id: mcp-tool
|
|
7
|
+
version: 1.0.0
|
|
8
|
+
protocol: beddel-declarative-protocol/v2.0
|
|
9
|
+
|
|
10
|
+
metadata:
|
|
11
|
+
name: "MCP Tool Agent"
|
|
12
|
+
description: "Generic agent for calling MCP server tools via SSE transport"
|
|
13
|
+
category: "integration"
|
|
14
|
+
route: "/agents/mcp-tool"
|
|
15
|
+
|
|
16
|
+
schema:
|
|
17
|
+
input:
|
|
18
|
+
type: "object"
|
|
19
|
+
properties:
|
|
20
|
+
server_url:
|
|
21
|
+
type: "string"
|
|
22
|
+
description: "MCP server SSE endpoint URL"
|
|
23
|
+
tool_name:
|
|
24
|
+
type: "string"
|
|
25
|
+
description: "Name of the MCP tool to invoke (use 'list_tools' to discover available tools)"
|
|
26
|
+
tool_arguments:
|
|
27
|
+
type: "object"
|
|
28
|
+
description: "Arguments to pass to the tool"
|
|
29
|
+
required: ["server_url", "tool_name"]
|
|
30
|
+
|
|
31
|
+
output:
|
|
32
|
+
type: "object"
|
|
33
|
+
properties:
|
|
34
|
+
success:
|
|
35
|
+
type: "boolean"
|
|
36
|
+
data:
|
|
37
|
+
type: "string"
|
|
38
|
+
tool_names:
|
|
39
|
+
type: "array"
|
|
40
|
+
items:
|
|
41
|
+
type: "string"
|
|
42
|
+
error:
|
|
43
|
+
type: "string"
|
|
44
|
+
required: ["success"]
|
|
45
|
+
|
|
46
|
+
logic:
|
|
47
|
+
workflow:
|
|
48
|
+
- name: "call-mcp-tool"
|
|
49
|
+
type: "mcp-tool"
|
|
50
|
+
action:
|
|
51
|
+
server_url: "$input.server_url"
|
|
52
|
+
tool_name: "$input.tool_name"
|
|
53
|
+
tool_arguments: "$input.tool_arguments"
|
|
54
|
+
result: "mcpResult"
|
|
55
|
+
|
|
56
|
+
- name: "deliver-response"
|
|
57
|
+
type: "output-generator"
|
|
58
|
+
action:
|
|
59
|
+
type: "generate"
|
|
60
|
+
output:
|
|
61
|
+
success: "$mcpResult.success"
|
|
62
|
+
data: "$mcpResult.data"
|
|
63
|
+
tool_names: "$mcpResult.toolNames"
|
|
64
|
+
error: "$mcpResult.error"
|
|
65
|
+
|
|
66
|
+
output:
|
|
67
|
+
schema:
|
|
68
|
+
success: "$mcpResult.success"
|
|
69
|
+
data: "$mcpResult.data"
|
|
70
|
+
tool_names: "$mcpResult.toolNames"
|
|
71
|
+
error: "$mcpResult.error"
|
|
@@ -0,0 +1,20 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* RAG Agent - Public exports (client-safe)
|
|
3
|
+
*/
|
|
4
|
+
|
|
5
|
+
// Schema exports (client-safe)
|
|
6
|
+
export { RagInputSchema, RagOutputSchema } from './rag.schema';
|
|
7
|
+
export type { RagInput, RagOutput } from './rag.schema';
|
|
8
|
+
|
|
9
|
+
// Type exports (client-safe)
|
|
10
|
+
export type { RagHandlerParams, RagHandlerResult, ConversationMessage, RagMetadata } from './rag.types';
|
|
11
|
+
|
|
12
|
+
// Metadata (client-safe)
|
|
13
|
+
export const ragMetadata = {
|
|
14
|
+
id: 'rag',
|
|
15
|
+
name: 'RAG Intelligence Agent',
|
|
16
|
+
description: 'Generates natural language answers based on provided context using Gemini',
|
|
17
|
+
category: 'intelligence',
|
|
18
|
+
route: '/agents/rag',
|
|
19
|
+
tags: ['rag', 'gemini', 'qa', 'generation'],
|
|
20
|
+
} as const;
|
|
@@ -0,0 +1,119 @@
|
|
|
1
|
+
import 'server-only';
|
|
2
|
+
|
|
3
|
+
/**
|
|
4
|
+
* RAG Agent Handler - Server-only execution logic
|
|
5
|
+
* Generates natural language answers based on provided context using Gemini
|
|
6
|
+
* Supports both RAG mode (with documents) and simple chat mode (conversation only)
|
|
7
|
+
*/
|
|
8
|
+
|
|
9
|
+
import { generateText } from 'ai';
|
|
10
|
+
import { createGoogleGenerativeAI } from '@ai-sdk/google';
|
|
11
|
+
import type { ExecutionContext } from '../../types/executionContext';
|
|
12
|
+
import type { RagHandlerParams, RagHandlerResult, ConversationMessage } from './rag.types';
|
|
13
|
+
|
|
14
|
+
const GEMINI_RAG_MODEL = 'models/gemini-2.0-flash-exp';
|
|
15
|
+
|
|
16
|
+
/**
|
|
17
|
+
* Build prompt for simple chat mode (no documents)
|
|
18
|
+
*/
|
|
19
|
+
function buildSimpleChatPrompt(query: string, history?: ConversationMessage[]): string {
|
|
20
|
+
const conversationContext = history?.length
|
|
21
|
+
? `CONVERSATION HISTORY:\n${history.map((m) => `${m.role.toUpperCase()}: ${m.content}`).join('\n')}\n\n`
|
|
22
|
+
: '';
|
|
23
|
+
|
|
24
|
+
return `You are a helpful, friendly assistant.
|
|
25
|
+
|
|
26
|
+
${conversationContext}USER MESSAGE:
|
|
27
|
+
${query}
|
|
28
|
+
|
|
29
|
+
INSTRUCTIONS:
|
|
30
|
+
1. Respond naturally to the user's message.
|
|
31
|
+
2. Consider the conversation history for context continuity if available.
|
|
32
|
+
3. Be concise but helpful.
|
|
33
|
+
|
|
34
|
+
RESPONSE:`;
|
|
35
|
+
}
|
|
36
|
+
|
|
37
|
+
/**
|
|
38
|
+
* Build prompt for RAG mode (with documents)
|
|
39
|
+
*/
|
|
40
|
+
function buildRagPrompt(query: string, ragContext: string, history?: ConversationMessage[]): string {
|
|
41
|
+
const conversationContext = history?.length
|
|
42
|
+
? `CONVERSATION HISTORY:\n${history.map((m) => `${m.role.toUpperCase()}: ${m.content}`).join('\n')}\n\n`
|
|
43
|
+
: '';
|
|
44
|
+
|
|
45
|
+
return `You are a helpful and expert assistant for the Beddel Protocol.
|
|
46
|
+
|
|
47
|
+
${conversationContext}CONTEXT INFORMATION:
|
|
48
|
+
${ragContext}
|
|
49
|
+
|
|
50
|
+
USER QUESTION:
|
|
51
|
+
${query}
|
|
52
|
+
|
|
53
|
+
INSTRUCTIONS:
|
|
54
|
+
1. Answer the user's question based on the CONTEXT INFORMATION provided above.
|
|
55
|
+
2. Consider the CONVERSATION HISTORY for context continuity if available.
|
|
56
|
+
3. If the context does not contain the answer, politely state that you don't have enough information in the documentation to answer.
|
|
57
|
+
4. Be concise but comprehensive.
|
|
58
|
+
|
|
59
|
+
ANSWER:`;
|
|
60
|
+
}
|
|
61
|
+
|
|
62
|
+
/**
|
|
63
|
+
* Execute RAG answer generation
|
|
64
|
+
*/
|
|
65
|
+
export async function executeRagHandler(
|
|
66
|
+
params: RagHandlerParams,
|
|
67
|
+
props: Record<string, string>,
|
|
68
|
+
context: ExecutionContext
|
|
69
|
+
): Promise<RagHandlerResult> {
|
|
70
|
+
const apiKey = props?.gemini_api_key?.trim();
|
|
71
|
+
if (!apiKey) {
|
|
72
|
+
throw new Error('Missing required prop: gemini_api_key');
|
|
73
|
+
}
|
|
74
|
+
|
|
75
|
+
const { query, history, mode = 'rag' } = params;
|
|
76
|
+
const ragContext = params.context || params.documents;
|
|
77
|
+
|
|
78
|
+
if (!query) {
|
|
79
|
+
throw new Error('Missing required RAG input: query');
|
|
80
|
+
}
|
|
81
|
+
|
|
82
|
+
// Simple mode doesn't require documents
|
|
83
|
+
if (mode === 'rag' && !ragContext) {
|
|
84
|
+
throw new Error('Missing required RAG input: context or documents');
|
|
85
|
+
}
|
|
86
|
+
|
|
87
|
+
const google = createGoogleGenerativeAI({ apiKey });
|
|
88
|
+
const model = google(GEMINI_RAG_MODEL);
|
|
89
|
+
|
|
90
|
+
const prompt = mode === 'simple'
|
|
91
|
+
? buildSimpleChatPrompt(query, history)
|
|
92
|
+
: buildRagPrompt(query, ragContext!, history);
|
|
93
|
+
|
|
94
|
+
try {
|
|
95
|
+
context.log(`[RAG:${mode}] Generating answer for: "${query.substring(0, 50)}..."`);
|
|
96
|
+
|
|
97
|
+
const { text } = await generateText({
|
|
98
|
+
model,
|
|
99
|
+
prompt,
|
|
100
|
+
temperature: mode === 'simple' ? 0.7 : 0.3,
|
|
101
|
+
});
|
|
102
|
+
|
|
103
|
+
return {
|
|
104
|
+
response: text,
|
|
105
|
+
answer: text,
|
|
106
|
+
timestamp: new Date().toISOString(),
|
|
107
|
+
};
|
|
108
|
+
|
|
109
|
+
} catch (error: unknown) {
|
|
110
|
+
const message = error instanceof Error ? error.message : String(error);
|
|
111
|
+
context.log(`[RAG] Error: ${message}`);
|
|
112
|
+
return {
|
|
113
|
+
response: '',
|
|
114
|
+
answer: '',
|
|
115
|
+
timestamp: new Date().toISOString(),
|
|
116
|
+
error: message,
|
|
117
|
+
};
|
|
118
|
+
}
|
|
119
|
+
}
|
|
@@ -0,0 +1,26 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* RAG Agent Schema - Zod validation schemas
|
|
3
|
+
* Safe for both client and server
|
|
4
|
+
*/
|
|
5
|
+
|
|
6
|
+
import { z } from 'zod';
|
|
7
|
+
|
|
8
|
+
export const RagInputSchema = z.object({
|
|
9
|
+
query: z.string().min(1),
|
|
10
|
+
context: z.string().optional(),
|
|
11
|
+
documents: z.string().optional(),
|
|
12
|
+
history: z.array(z.object({
|
|
13
|
+
role: z.enum(['user', 'assistant', 'system']),
|
|
14
|
+
content: z.string(),
|
|
15
|
+
})).optional(),
|
|
16
|
+
});
|
|
17
|
+
|
|
18
|
+
export const RagOutputSchema = z.object({
|
|
19
|
+
response: z.string(),
|
|
20
|
+
answer: z.string().optional(),
|
|
21
|
+
timestamp: z.string().optional(),
|
|
22
|
+
error: z.string().optional(),
|
|
23
|
+
});
|
|
24
|
+
|
|
25
|
+
export type RagInput = z.infer<typeof RagInputSchema>;
|
|
26
|
+
export type RagOutput = z.infer<typeof RagOutputSchema>;
|
|
@@ -0,0 +1,51 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* RAG Agent Types - Shared between client and server
|
|
3
|
+
*/
|
|
4
|
+
|
|
5
|
+
/**
|
|
6
|
+
* Conversation message
|
|
7
|
+
*/
|
|
8
|
+
export interface ConversationMessage {
|
|
9
|
+
role: 'user' | 'assistant' | 'system';
|
|
10
|
+
content: string;
|
|
11
|
+
}
|
|
12
|
+
|
|
13
|
+
/**
|
|
14
|
+
* RAG execution mode
|
|
15
|
+
* - 'rag': Uses provided documents/context for answer generation
|
|
16
|
+
* - 'simple': Direct LLM chat without document context
|
|
17
|
+
*/
|
|
18
|
+
export type RagMode = 'rag' | 'simple';
|
|
19
|
+
|
|
20
|
+
/**
|
|
21
|
+
* Parameters for RAG answer generation
|
|
22
|
+
*/
|
|
23
|
+
export interface RagHandlerParams {
|
|
24
|
+
query: string;
|
|
25
|
+
context?: string;
|
|
26
|
+
documents?: string;
|
|
27
|
+
history?: ConversationMessage[];
|
|
28
|
+
mode?: RagMode;
|
|
29
|
+
}
|
|
30
|
+
|
|
31
|
+
/**
|
|
32
|
+
* Result from RAG answer generation
|
|
33
|
+
*/
|
|
34
|
+
export interface RagHandlerResult {
|
|
35
|
+
response: string;
|
|
36
|
+
answer: string;
|
|
37
|
+
timestamp: string;
|
|
38
|
+
error?: string;
|
|
39
|
+
}
|
|
40
|
+
|
|
41
|
+
/**
|
|
42
|
+
* RAG agent metadata
|
|
43
|
+
*/
|
|
44
|
+
export interface RagMetadata {
|
|
45
|
+
id: 'rag';
|
|
46
|
+
name: string;
|
|
47
|
+
description: string;
|
|
48
|
+
category: 'intelligence';
|
|
49
|
+
route: '/agents/rag';
|
|
50
|
+
tags: string[];
|
|
51
|
+
}
|
|
@@ -0,0 +1,89 @@
|
|
|
1
|
+
# RAG Agent - Native Builtin Agent for Beddel Runtime
|
|
2
|
+
# Route: /agents/rag
|
|
3
|
+
# Method: rag.execute
|
|
4
|
+
|
|
5
|
+
agent:
|
|
6
|
+
id: rag
|
|
7
|
+
version: 1.0.0
|
|
8
|
+
protocol: beddel-declarative-protocol/v2.0
|
|
9
|
+
|
|
10
|
+
metadata:
|
|
11
|
+
name: "RAG Intelligence Agent"
|
|
12
|
+
description: "Generates natural language answers based on provided context using Gemini"
|
|
13
|
+
category: "intelligence"
|
|
14
|
+
route: "/agents/rag"
|
|
15
|
+
tags:
|
|
16
|
+
- "rag"
|
|
17
|
+
- "gemini"
|
|
18
|
+
- "qa"
|
|
19
|
+
- "generation"
|
|
20
|
+
|
|
21
|
+
schema:
|
|
22
|
+
input:
|
|
23
|
+
type: "object"
|
|
24
|
+
properties:
|
|
25
|
+
query:
|
|
26
|
+
type: "string"
|
|
27
|
+
description: "User question to answer"
|
|
28
|
+
context:
|
|
29
|
+
type: "string"
|
|
30
|
+
description: "Retrieved documentation or context for answering"
|
|
31
|
+
documents:
|
|
32
|
+
type: "string"
|
|
33
|
+
description: "Alternative to context - retrieved documents"
|
|
34
|
+
history:
|
|
35
|
+
type: "array"
|
|
36
|
+
items:
|
|
37
|
+
type: "object"
|
|
38
|
+
properties:
|
|
39
|
+
role:
|
|
40
|
+
type: "string"
|
|
41
|
+
enum: ["user", "assistant", "system"]
|
|
42
|
+
content:
|
|
43
|
+
type: "string"
|
|
44
|
+
description: "Conversation history for context continuity"
|
|
45
|
+
required: ["query"]
|
|
46
|
+
|
|
47
|
+
output:
|
|
48
|
+
type: "object"
|
|
49
|
+
properties:
|
|
50
|
+
response:
|
|
51
|
+
type: "string"
|
|
52
|
+
description: "Generated answer"
|
|
53
|
+
answer:
|
|
54
|
+
type: "string"
|
|
55
|
+
description: "Alias for response"
|
|
56
|
+
timestamp:
|
|
57
|
+
type: "string"
|
|
58
|
+
description: "ISO timestamp of generation"
|
|
59
|
+
error:
|
|
60
|
+
type: "string"
|
|
61
|
+
required: ["response"]
|
|
62
|
+
|
|
63
|
+
logic:
|
|
64
|
+
workflow:
|
|
65
|
+
- name: "generate-answer"
|
|
66
|
+
type: "rag"
|
|
67
|
+
action:
|
|
68
|
+
query: "$input.query"
|
|
69
|
+
context: "$input.context"
|
|
70
|
+
documents: "$input.documents"
|
|
71
|
+
history: "$input.history"
|
|
72
|
+
result: "ragResult"
|
|
73
|
+
|
|
74
|
+
- name: "deliver-response"
|
|
75
|
+
type: "output-generator"
|
|
76
|
+
action:
|
|
77
|
+
type: "generate"
|
|
78
|
+
output:
|
|
79
|
+
response: "$ragResult.response"
|
|
80
|
+
answer: "$ragResult.answer"
|
|
81
|
+
timestamp: "$ragResult.timestamp"
|
|
82
|
+
error: "$ragResult.error"
|
|
83
|
+
|
|
84
|
+
output:
|
|
85
|
+
schema:
|
|
86
|
+
response: "$ragResult.response"
|
|
87
|
+
answer: "$ragResult.answer"
|
|
88
|
+
timestamp: "$ragResult.timestamp"
|
|
89
|
+
error: "$ragResult.error"
|
|
@@ -5,8 +5,8 @@
|
|
|
5
5
|
|
|
6
6
|
import { existsSync, readFileSync, readdirSync, statSync } from "fs";
|
|
7
7
|
import { join } from "path";
|
|
8
|
-
import { declarativeInterpreter } from "
|
|
9
|
-
import { ExecutionContext } from "
|
|
8
|
+
import { declarativeInterpreter } from "../../runtime/declarativeAgentRuntime";
|
|
9
|
+
import { ExecutionContext } from "../../types/executionContext";
|
|
10
10
|
|
|
11
11
|
export interface AgentRegistration {
|
|
12
12
|
id: string;
|
|
@@ -210,6 +210,18 @@ export class AgentRegistry {
|
|
|
210
210
|
this.registerTranslatorAgent();
|
|
211
211
|
// Register Image Generator Agent
|
|
212
212
|
this.registerImageAgent();
|
|
213
|
+
// Register MCP Tool Agent
|
|
214
|
+
this.registerMcpToolAgent();
|
|
215
|
+
// Register Gemini Vectorize Agent
|
|
216
|
+
this.registerGeminiVectorizeAgent();
|
|
217
|
+
// Register ChromaDB Agent
|
|
218
|
+
this.registerChromaDBAgent();
|
|
219
|
+
// Register GitMCP Agent
|
|
220
|
+
this.registerGitMcpAgent();
|
|
221
|
+
// Register RAG Agent
|
|
222
|
+
this.registerRagAgent();
|
|
223
|
+
// Register Chat Agent (Orchestrator)
|
|
224
|
+
this.registerChatAgent();
|
|
213
225
|
} catch (error) {
|
|
214
226
|
console.error("Failed to register built-in agents:", error);
|
|
215
227
|
}
|
|
@@ -221,7 +233,7 @@ export class AgentRegistry {
|
|
|
221
233
|
private registerJokerAgent(): void {
|
|
222
234
|
try {
|
|
223
235
|
// Get the Joker Agent YAML content
|
|
224
|
-
const jokerYamlPath = this.resolveAgentPath("joker
|
|
236
|
+
const jokerYamlPath = this.resolveAgentPath("joker/joker.yaml");
|
|
225
237
|
const yamlContent = readFileSync(jokerYamlPath, "utf-8");
|
|
226
238
|
|
|
227
239
|
// Parse YAML to extract metadata
|
|
@@ -247,7 +259,7 @@ export class AgentRegistry {
|
|
|
247
259
|
*/
|
|
248
260
|
private registerTranslatorAgent(): void {
|
|
249
261
|
try {
|
|
250
|
-
const translatorYamlPath = this.resolveAgentPath("translator
|
|
262
|
+
const translatorYamlPath = this.resolveAgentPath("translator/translator.yaml");
|
|
251
263
|
const yamlContent = readFileSync(translatorYamlPath, "utf-8");
|
|
252
264
|
const agent = this.parseAgentYaml(yamlContent);
|
|
253
265
|
|
|
@@ -271,7 +283,7 @@ export class AgentRegistry {
|
|
|
271
283
|
*/
|
|
272
284
|
private registerImageAgent(): void {
|
|
273
285
|
try {
|
|
274
|
-
const imageYamlPath = this.resolveAgentPath("image
|
|
286
|
+
const imageYamlPath = this.resolveAgentPath("image/image.yaml");
|
|
275
287
|
const yamlContent = readFileSync(imageYamlPath, "utf-8");
|
|
276
288
|
const agent = this.parseAgentYaml(yamlContent);
|
|
277
289
|
|
|
@@ -290,6 +302,150 @@ export class AgentRegistry {
|
|
|
290
302
|
}
|
|
291
303
|
}
|
|
292
304
|
|
|
305
|
+
/**
|
|
306
|
+
* Register MCP Tool Agent
|
|
307
|
+
*/
|
|
308
|
+
private registerMcpToolAgent(): void {
|
|
309
|
+
try {
|
|
310
|
+
const yamlPath = this.resolveAgentPath("mcp-tool/mcp-tool.yaml");
|
|
311
|
+
const yamlContent = readFileSync(yamlPath, "utf-8");
|
|
312
|
+
const agent = this.parseAgentYaml(yamlContent);
|
|
313
|
+
|
|
314
|
+
this.registerAgent({
|
|
315
|
+
id: agent.agent.id,
|
|
316
|
+
name: "mcp-tool.execute",
|
|
317
|
+
description: agent.metadata.description,
|
|
318
|
+
protocol: agent.agent.protocol,
|
|
319
|
+
route: agent.metadata.route || "/agents/mcp-tool",
|
|
320
|
+
requiredProps: [],
|
|
321
|
+
yamlContent,
|
|
322
|
+
});
|
|
323
|
+
} catch (error) {
|
|
324
|
+
console.error("Failed to register MCP Tool Agent:", error);
|
|
325
|
+
throw error;
|
|
326
|
+
}
|
|
327
|
+
}
|
|
328
|
+
|
|
329
|
+
/**
|
|
330
|
+
* Register Gemini Vectorize Agent
|
|
331
|
+
*/
|
|
332
|
+
private registerGeminiVectorizeAgent(): void {
|
|
333
|
+
try {
|
|
334
|
+
const yamlPath = this.resolveAgentPath("gemini-vectorize/gemini-vectorize.yaml");
|
|
335
|
+
const yamlContent = readFileSync(yamlPath, "utf-8");
|
|
336
|
+
const agent = this.parseAgentYaml(yamlContent);
|
|
337
|
+
|
|
338
|
+
this.registerAgent({
|
|
339
|
+
id: agent.agent.id,
|
|
340
|
+
name: "gemini-vectorize.execute",
|
|
341
|
+
description: agent.metadata.description,
|
|
342
|
+
protocol: agent.agent.protocol,
|
|
343
|
+
route: agent.metadata.route || "/agents/gemini-vectorize",
|
|
344
|
+
requiredProps: ["gemini_api_key"],
|
|
345
|
+
yamlContent,
|
|
346
|
+
});
|
|
347
|
+
} catch (error) {
|
|
348
|
+
console.error("Failed to register Gemini Vectorize Agent:", error);
|
|
349
|
+
throw error;
|
|
350
|
+
}
|
|
351
|
+
}
|
|
352
|
+
|
|
353
|
+
/**
|
|
354
|
+
* Register ChromaDB Agent
|
|
355
|
+
*/
|
|
356
|
+
private registerChromaDBAgent(): void {
|
|
357
|
+
try {
|
|
358
|
+
const yamlPath = this.resolveAgentPath("chromadb/chromadb.yaml");
|
|
359
|
+
const yamlContent = readFileSync(yamlPath, "utf-8");
|
|
360
|
+
const agent = this.parseAgentYaml(yamlContent);
|
|
361
|
+
|
|
362
|
+
this.registerAgent({
|
|
363
|
+
id: agent.agent.id,
|
|
364
|
+
name: "chromadb.execute",
|
|
365
|
+
description: agent.metadata.description,
|
|
366
|
+
protocol: agent.agent.protocol,
|
|
367
|
+
route: agent.metadata.route || "/agents/chromadb",
|
|
368
|
+
requiredProps: [],
|
|
369
|
+
yamlContent,
|
|
370
|
+
});
|
|
371
|
+
} catch (error) {
|
|
372
|
+
console.error("Failed to register ChromaDB Agent:", error);
|
|
373
|
+
throw error;
|
|
374
|
+
}
|
|
375
|
+
}
|
|
376
|
+
|
|
377
|
+
/**
|
|
378
|
+
* Register GitMCP Agent
|
|
379
|
+
*/
|
|
380
|
+
private registerGitMcpAgent(): void {
|
|
381
|
+
try {
|
|
382
|
+
const yamlPath = this.resolveAgentPath("gitmcp/gitmcp.yaml");
|
|
383
|
+
const yamlContent = readFileSync(yamlPath, "utf-8");
|
|
384
|
+
const agent = this.parseAgentYaml(yamlContent);
|
|
385
|
+
|
|
386
|
+
this.registerAgent({
|
|
387
|
+
id: agent.agent.id,
|
|
388
|
+
name: "gitmcp.execute",
|
|
389
|
+
description: agent.metadata.description,
|
|
390
|
+
protocol: agent.agent.protocol,
|
|
391
|
+
route: agent.metadata.route || "/agents/gitmcp",
|
|
392
|
+
requiredProps: [],
|
|
393
|
+
yamlContent,
|
|
394
|
+
});
|
|
395
|
+
} catch (error) {
|
|
396
|
+
console.error("Failed to register GitMCP Agent:", error);
|
|
397
|
+
throw error;
|
|
398
|
+
}
|
|
399
|
+
}
|
|
400
|
+
|
|
401
|
+
/**
|
|
402
|
+
* Register RAG Agent
|
|
403
|
+
*/
|
|
404
|
+
private registerRagAgent(): void {
|
|
405
|
+
try {
|
|
406
|
+
const yamlPath = this.resolveAgentPath("rag/rag.yaml");
|
|
407
|
+
const yamlContent = readFileSync(yamlPath, "utf-8");
|
|
408
|
+
const agent = this.parseAgentYaml(yamlContent);
|
|
409
|
+
|
|
410
|
+
this.registerAgent({
|
|
411
|
+
id: agent.agent.id,
|
|
412
|
+
name: "rag.execute",
|
|
413
|
+
description: agent.metadata.description,
|
|
414
|
+
protocol: agent.agent.protocol,
|
|
415
|
+
route: agent.metadata.route || "/agents/rag",
|
|
416
|
+
requiredProps: ["gemini_api_key"],
|
|
417
|
+
yamlContent,
|
|
418
|
+
});
|
|
419
|
+
} catch (error) {
|
|
420
|
+
console.error("Failed to register RAG Agent:", error);
|
|
421
|
+
throw error;
|
|
422
|
+
}
|
|
423
|
+
}
|
|
424
|
+
|
|
425
|
+
/**
|
|
426
|
+
* Register Chat Agent (Orchestrator)
|
|
427
|
+
*/
|
|
428
|
+
private registerChatAgent(): void {
|
|
429
|
+
try {
|
|
430
|
+
const yamlPath = this.resolveAgentPath("chat/chat.yaml");
|
|
431
|
+
const yamlContent = readFileSync(yamlPath, "utf-8");
|
|
432
|
+
const agent = this.parseAgentYaml(yamlContent);
|
|
433
|
+
|
|
434
|
+
this.registerAgent({
|
|
435
|
+
id: agent.agent.id,
|
|
436
|
+
name: "chat.execute",
|
|
437
|
+
description: agent.metadata.description,
|
|
438
|
+
protocol: agent.agent.protocol,
|
|
439
|
+
route: agent.metadata.route || "/agents/chat",
|
|
440
|
+
requiredProps: ["gemini_api_key"],
|
|
441
|
+
yamlContent,
|
|
442
|
+
});
|
|
443
|
+
} catch (error) {
|
|
444
|
+
console.error("Failed to register Chat Agent:", error);
|
|
445
|
+
throw error;
|
|
446
|
+
}
|
|
447
|
+
}
|
|
448
|
+
|
|
293
449
|
/**
|
|
294
450
|
* Parse agent YAML content
|
|
295
451
|
*/
|
|
@@ -0,0 +1,19 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* Translator Agent - Public exports (client-safe)
|
|
3
|
+
*/
|
|
4
|
+
|
|
5
|
+
// Schema exports (client-safe)
|
|
6
|
+
export { TranslatorInputSchema, TranslatorOutputSchema } from './translator.schema';
|
|
7
|
+
export type { TranslatorInput, TranslatorOutput } from './translator.schema';
|
|
8
|
+
|
|
9
|
+
// Type exports (client-safe)
|
|
10
|
+
export type { TranslationHandlerParams, TranslationHandlerResult, TranslatorMetadata } from './translator.types';
|
|
11
|
+
|
|
12
|
+
// Metadata (client-safe)
|
|
13
|
+
export const translatorMetadata = {
|
|
14
|
+
id: 'translator',
|
|
15
|
+
name: 'Translator Agent',
|
|
16
|
+
description: 'Translates text between languages using Gemini Flash via Genkit',
|
|
17
|
+
category: 'translation',
|
|
18
|
+
route: '/agents/translator',
|
|
19
|
+
} as const;
|