beddel 0.2.2 → 0.3.0
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 +50 -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 +145 -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 +148 -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 +61 -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 +69 -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 +43 -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 +104 -0
- package/dist/agents/index.d.ts.map +1 -0
- package/dist/agents/index.js +82 -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 +44 -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 +36 -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/llm/index.d.ts +15 -0
- package/dist/agents/llm/index.d.ts.map +1 -0
- package/dist/agents/llm/index.js +20 -0
- package/dist/agents/llm/index.js.map +1 -0
- package/dist/agents/llm/llm.handler.d.ts +8 -0
- package/dist/agents/llm/llm.handler.d.ts.map +1 -0
- package/dist/agents/llm/llm.handler.js +64 -0
- package/dist/agents/llm/llm.handler.js.map +1 -0
- package/dist/agents/llm/llm.schema.d.ts +26 -0
- package/dist/agents/llm/llm.schema.d.ts.map +1 -0
- package/dist/agents/llm/llm.schema.js +23 -0
- package/dist/agents/llm/llm.schema.js.map +1 -0
- package/dist/agents/llm/llm.types.d.ts +34 -0
- package/dist/agents/llm/llm.types.d.ts.map +1 -0
- package/dist/agents/llm/llm.types.js +7 -0
- package/dist/agents/llm/llm.types.js.map +1 -0
- package/dist/agents/llm/llm.yaml +87 -0
- 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 +9 -0
- package/dist/agents/rag/rag.handler.d.ts.map +1 -0
- package/dist/agents/rag/rag.handler.js +78 -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 +42 -0
- package/dist/agents/rag/rag.types.d.ts.map +1 -0
- package/dist/agents/rag/rag.types.js +7 -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} +30 -1
- package/dist/agents/registry/agentRegistry.d.ts.map +1 -0
- package/dist/agents/{agentRegistry.js → registry/agentRegistry.js} +187 -5
- 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 +81 -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 +41 -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 +10 -4
- package/dist/index.d.ts.map +1 -1
- package/dist/index.js +24 -7
- package/dist/index.js.map +1 -1
- package/dist/runtime/declarativeAgentRuntime.d.ts +17 -52
- package/dist/runtime/declarativeAgentRuntime.d.ts.map +1 -1
- package/dist/runtime/declarativeAgentRuntime.js +259 -361
- package/dist/runtime/declarativeAgentRuntime.js.map +1 -1
- package/dist/runtime/index.d.ts +14 -0
- package/dist/runtime/index.d.ts.map +1 -0
- package/dist/runtime/index.js +38 -0
- package/dist/runtime/index.js.map +1 -0
- package/dist/runtime/llmProviderFactory.d.ts +47 -0
- package/dist/runtime/llmProviderFactory.d.ts.map +1 -0
- package/dist/runtime/llmProviderFactory.js +119 -0
- package/dist/runtime/llmProviderFactory.js.map +1 -0
- package/dist/runtime/workflowExecutor.d.ts +31 -0
- package/dist/runtime/workflowExecutor.d.ts.map +1 -0
- package/dist/runtime/workflowExecutor.js +80 -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 +63 -0
- package/dist/shared/types/agent.types.d.ts.map +1 -0
- package/dist/shared/types/agent.types.js +18 -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 -10
- package/src/agents/chat/chat.handler.ts +211 -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 +148 -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 +75 -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 +86 -0
- package/src/agents/image/image.schema.ts +28 -0
- package/src/agents/image/image.types.ts +46 -0
- package/src/agents/image/image.yaml +86 -0
- package/src/agents/image/index.ts +19 -0
- package/src/agents/index.ts +63 -0
- package/src/agents/joker/index.ts +19 -0
- package/src/agents/joker/joker.handler.ts +55 -0
- package/src/agents/joker/joker.schema.ts +15 -0
- package/src/agents/joker/joker.types.ts +38 -0
- package/src/agents/joker/joker.yaml +47 -0
- package/src/agents/llm/index.ts +20 -0
- package/src/agents/llm/llm.handler.ts +82 -0
- package/src/agents/llm/llm.schema.ts +25 -0
- package/src/agents/llm/llm.types.ts +37 -0
- package/src/agents/llm/llm.yaml +87 -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 +95 -0
- package/src/agents/rag/rag.schema.ts +26 -0
- package/src/agents/rag/rag.types.ts +45 -0
- package/src/agents/rag/rag.yaml +89 -0
- package/src/agents/{agentRegistry.ts → registry/agentRegistry.ts} +195 -6
- package/src/agents/registry/index.ts +6 -0
- package/src/agents/translator/index.ts +19 -0
- package/src/agents/translator/translator.handler.ts +97 -0
- package/src/agents/translator/translator.schema.ts +30 -0
- package/src/agents/translator/translator.types.ts +43 -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 +56 -5
- package/src/runtime/declarativeAgentRuntime.ts +378 -495
- package/src/runtime/index.ts +36 -0
- package/src/runtime/llmProviderFactory.ts +145 -0
- package/src/runtime/workflowExecutor.ts +107 -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 +100 -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,128 @@
|
|
|
1
|
+
# ChromaDB Agent - Native Builtin Agent for Beddel Runtime
|
|
2
|
+
# Route: /agents/chromadb
|
|
3
|
+
# Method: chromadb.execute
|
|
4
|
+
|
|
5
|
+
agent:
|
|
6
|
+
id: chromadb
|
|
7
|
+
version: 1.0.0
|
|
8
|
+
protocol: beddel-declarative-protocol/v2.0
|
|
9
|
+
|
|
10
|
+
metadata:
|
|
11
|
+
name: "ChromaDB Agent"
|
|
12
|
+
description: "Vector storage and retrieval using ChromaDB. Supports local and cloud deployments."
|
|
13
|
+
category: "database"
|
|
14
|
+
route: "/agents/chromadb"
|
|
15
|
+
tags:
|
|
16
|
+
- "chromadb"
|
|
17
|
+
- "storage"
|
|
18
|
+
- "vector-db"
|
|
19
|
+
- "rag"
|
|
20
|
+
|
|
21
|
+
schema:
|
|
22
|
+
input:
|
|
23
|
+
type: "object"
|
|
24
|
+
properties:
|
|
25
|
+
action:
|
|
26
|
+
type: "string"
|
|
27
|
+
enum: ["hasData", "store", "search"]
|
|
28
|
+
description: "Action to perform"
|
|
29
|
+
collection_name:
|
|
30
|
+
type: "string"
|
|
31
|
+
description: "Name of the ChromaDB collection"
|
|
32
|
+
min_count:
|
|
33
|
+
type: "number"
|
|
34
|
+
description: "Minimum document count for hasData action (default: 1)"
|
|
35
|
+
ids:
|
|
36
|
+
type: "array"
|
|
37
|
+
items:
|
|
38
|
+
type: "string"
|
|
39
|
+
description: "Document IDs for store action"
|
|
40
|
+
vectors:
|
|
41
|
+
type: "array"
|
|
42
|
+
items:
|
|
43
|
+
type: "array"
|
|
44
|
+
items:
|
|
45
|
+
type: "number"
|
|
46
|
+
description: "Embedding vectors for store action"
|
|
47
|
+
documents:
|
|
48
|
+
type: "array"
|
|
49
|
+
items:
|
|
50
|
+
type: "string"
|
|
51
|
+
description: "Document texts for store action"
|
|
52
|
+
metadatas:
|
|
53
|
+
type: "array"
|
|
54
|
+
items:
|
|
55
|
+
type: "object"
|
|
56
|
+
description: "Metadata objects for store action"
|
|
57
|
+
query_vector:
|
|
58
|
+
type: "array"
|
|
59
|
+
items:
|
|
60
|
+
type: "number"
|
|
61
|
+
description: "Query embedding vector for search action"
|
|
62
|
+
limit:
|
|
63
|
+
type: "number"
|
|
64
|
+
description: "Maximum results for search action (default: 5)"
|
|
65
|
+
required: ["action", "collection_name"]
|
|
66
|
+
|
|
67
|
+
output:
|
|
68
|
+
type: "object"
|
|
69
|
+
properties:
|
|
70
|
+
success:
|
|
71
|
+
type: "boolean"
|
|
72
|
+
has_data:
|
|
73
|
+
type: "boolean"
|
|
74
|
+
description: "Whether collection has sufficient data (hasData action)"
|
|
75
|
+
count:
|
|
76
|
+
type: "number"
|
|
77
|
+
description: "Document count in collection (hasData action)"
|
|
78
|
+
stored_count:
|
|
79
|
+
type: "number"
|
|
80
|
+
description: "Number of documents stored (store action)"
|
|
81
|
+
results:
|
|
82
|
+
type: "array"
|
|
83
|
+
description: "Search results with text, metadata and distance (search action)"
|
|
84
|
+
documents:
|
|
85
|
+
type: "string"
|
|
86
|
+
description: "Concatenated document texts (search action)"
|
|
87
|
+
error:
|
|
88
|
+
type: "string"
|
|
89
|
+
required: ["success"]
|
|
90
|
+
|
|
91
|
+
logic:
|
|
92
|
+
workflow:
|
|
93
|
+
- name: "chromadb-operation"
|
|
94
|
+
type: "chromadb"
|
|
95
|
+
action:
|
|
96
|
+
action: "$input.action"
|
|
97
|
+
collection_name: "$input.collection_name"
|
|
98
|
+
min_count: "$input.min_count"
|
|
99
|
+
ids: "$input.ids"
|
|
100
|
+
vectors: "$input.vectors"
|
|
101
|
+
documents: "$input.documents"
|
|
102
|
+
metadatas: "$input.metadatas"
|
|
103
|
+
query_vector: "$input.query_vector"
|
|
104
|
+
limit: "$input.limit"
|
|
105
|
+
result: "chromaResult"
|
|
106
|
+
|
|
107
|
+
- name: "deliver-response"
|
|
108
|
+
type: "output-generator"
|
|
109
|
+
action:
|
|
110
|
+
type: "generate"
|
|
111
|
+
output:
|
|
112
|
+
success: "$chromaResult.success"
|
|
113
|
+
has_data: "$chromaResult.has_data"
|
|
114
|
+
count: "$chromaResult.count"
|
|
115
|
+
stored_count: "$chromaResult.stored_count"
|
|
116
|
+
results: "$chromaResult.results"
|
|
117
|
+
documents: "$chromaResult.documents"
|
|
118
|
+
error: "$chromaResult.error"
|
|
119
|
+
|
|
120
|
+
output:
|
|
121
|
+
schema:
|
|
122
|
+
success: "$chromaResult.success"
|
|
123
|
+
has_data: "$chromaResult.has_data"
|
|
124
|
+
count: "$chromaResult.count"
|
|
125
|
+
stored_count: "$chromaResult.stored_count"
|
|
126
|
+
results: "$chromaResult.results"
|
|
127
|
+
documents: "$chromaResult.documents"
|
|
128
|
+
error: "$chromaResult.error"
|
|
@@ -0,0 +1,20 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* ChromaDB Agent - Public exports (client-safe)
|
|
3
|
+
*/
|
|
4
|
+
|
|
5
|
+
// Schema exports (client-safe)
|
|
6
|
+
export { ChromaDBInputSchema, ChromaDBOutputSchema } from './chromadb.schema';
|
|
7
|
+
export type { ChromaDBInput, ChromaDBOutput } from './chromadb.schema';
|
|
8
|
+
|
|
9
|
+
// Type exports (client-safe)
|
|
10
|
+
export type { ChromaDBHandlerParams, ChromaDBHandlerResult, ChromaDBSearchResult, ChromaDBMetadata } from './chromadb.types';
|
|
11
|
+
|
|
12
|
+
// Metadata (client-safe)
|
|
13
|
+
export const chromadbMetadata = {
|
|
14
|
+
id: 'chromadb',
|
|
15
|
+
name: 'ChromaDB Agent',
|
|
16
|
+
description: 'Vector storage and retrieval using ChromaDB. Supports local and cloud deployments.',
|
|
17
|
+
category: 'database',
|
|
18
|
+
route: '/agents/chromadb',
|
|
19
|
+
tags: ['chromadb', 'storage', 'vector-db', 'rag'],
|
|
20
|
+
} as const;
|
|
@@ -0,0 +1,75 @@
|
|
|
1
|
+
import 'server-only';
|
|
2
|
+
|
|
3
|
+
/**
|
|
4
|
+
* Gemini Vectorize Agent Handler - Server-only execution logic
|
|
5
|
+
* Generates text embeddings using Google's text-embedding-004 model
|
|
6
|
+
*
|
|
7
|
+
* Note: Embeddings currently only support Google provider via Vercel AI SDK
|
|
8
|
+
*/
|
|
9
|
+
|
|
10
|
+
import { embed, embedMany } from 'ai';
|
|
11
|
+
import { createGoogleGenerativeAI } from '@ai-sdk/google';
|
|
12
|
+
import { extractProviderConfig } from '../../runtime/llmProviderFactory';
|
|
13
|
+
import type { ExecutionContext } from '../../types/executionContext';
|
|
14
|
+
import type { VectorizeHandlerParams, VectorizeHandlerResult } from './gemini-vectorize.types';
|
|
15
|
+
|
|
16
|
+
const EMBEDDING_MODEL = 'text-embedding-004';
|
|
17
|
+
|
|
18
|
+
/**
|
|
19
|
+
* Execute vectorization using embeddings
|
|
20
|
+
*/
|
|
21
|
+
export async function executeVectorizeHandler(
|
|
22
|
+
params: VectorizeHandlerParams,
|
|
23
|
+
props: Record<string, string>,
|
|
24
|
+
context: ExecutionContext
|
|
25
|
+
): Promise<VectorizeHandlerResult> {
|
|
26
|
+
const providerConfig = extractProviderConfig(props, 'google');
|
|
27
|
+
|
|
28
|
+
// Currently only Google supports embeddings via Vercel AI SDK
|
|
29
|
+
if (providerConfig.provider !== 'google') {
|
|
30
|
+
throw new Error(`Embeddings are currently only supported with Google provider, got: ${providerConfig.provider}`);
|
|
31
|
+
}
|
|
32
|
+
|
|
33
|
+
const google = createGoogleGenerativeAI({ apiKey: providerConfig.apiKey });
|
|
34
|
+
const action = params.action || 'embedSingle';
|
|
35
|
+
|
|
36
|
+
try {
|
|
37
|
+
if (action === 'embedSingle') {
|
|
38
|
+
const text = params.text;
|
|
39
|
+
if (!text) {
|
|
40
|
+
throw new Error('Text input is required for embedSingle');
|
|
41
|
+
}
|
|
42
|
+
|
|
43
|
+
context.log(`[Vectorize] Embedding single text (${text.length} chars)...`);
|
|
44
|
+
|
|
45
|
+
const { embedding } = await embed({
|
|
46
|
+
model: google.textEmbeddingModel(EMBEDDING_MODEL),
|
|
47
|
+
value: text,
|
|
48
|
+
});
|
|
49
|
+
|
|
50
|
+
return { success: true, vector: embedding };
|
|
51
|
+
|
|
52
|
+
} else if (action === 'embedBatch') {
|
|
53
|
+
const texts = params.texts;
|
|
54
|
+
if (!texts || !Array.isArray(texts)) {
|
|
55
|
+
throw new Error('Texts array input is required for embedBatch');
|
|
56
|
+
}
|
|
57
|
+
|
|
58
|
+
context.log(`[Vectorize] Embedding batch of ${texts.length} texts...`);
|
|
59
|
+
|
|
60
|
+
const { embeddings } = await embedMany({
|
|
61
|
+
model: google.textEmbeddingModel(EMBEDDING_MODEL),
|
|
62
|
+
values: texts,
|
|
63
|
+
});
|
|
64
|
+
|
|
65
|
+
return { success: true, vectors: embeddings };
|
|
66
|
+
|
|
67
|
+
} else {
|
|
68
|
+
throw new Error(`Unknown vectorize action: ${action}`);
|
|
69
|
+
}
|
|
70
|
+
} catch (error: unknown) {
|
|
71
|
+
const message = error instanceof Error ? error.message : String(error);
|
|
72
|
+
context.log(`[Vectorize] Error: ${message}`);
|
|
73
|
+
return { success: false, error: message };
|
|
74
|
+
}
|
|
75
|
+
}
|
|
@@ -0,0 +1,22 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* Gemini Vectorize Agent Schema - Zod validation schemas
|
|
3
|
+
* Safe for both client and server
|
|
4
|
+
*/
|
|
5
|
+
|
|
6
|
+
import { z } from 'zod';
|
|
7
|
+
|
|
8
|
+
export const GeminiVectorizeInputSchema = z.object({
|
|
9
|
+
action: z.enum(['embedSingle', 'embedBatch']),
|
|
10
|
+
text: z.string().optional(),
|
|
11
|
+
texts: z.array(z.string()).optional(),
|
|
12
|
+
});
|
|
13
|
+
|
|
14
|
+
export const GeminiVectorizeOutputSchema = z.object({
|
|
15
|
+
success: z.boolean(),
|
|
16
|
+
vector: z.array(z.number()).optional(),
|
|
17
|
+
vectors: z.array(z.array(z.number())).optional(),
|
|
18
|
+
error: z.string().optional(),
|
|
19
|
+
});
|
|
20
|
+
|
|
21
|
+
export type GeminiVectorizeInput = z.infer<typeof GeminiVectorizeInputSchema>;
|
|
22
|
+
export type GeminiVectorizeOutput = z.infer<typeof GeminiVectorizeOutputSchema>;
|
|
@@ -0,0 +1,34 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* Gemini Vectorize Agent Types - Shared between client and server
|
|
3
|
+
*/
|
|
4
|
+
|
|
5
|
+
/**
|
|
6
|
+
* Parameters for vectorization
|
|
7
|
+
*/
|
|
8
|
+
export interface VectorizeHandlerParams {
|
|
9
|
+
action: 'embedSingle' | 'embedBatch';
|
|
10
|
+
text?: string;
|
|
11
|
+
texts?: string[];
|
|
12
|
+
}
|
|
13
|
+
|
|
14
|
+
/**
|
|
15
|
+
* Result from vectorization
|
|
16
|
+
*/
|
|
17
|
+
export interface VectorizeHandlerResult {
|
|
18
|
+
success: boolean;
|
|
19
|
+
vector?: number[];
|
|
20
|
+
vectors?: number[][];
|
|
21
|
+
error?: string;
|
|
22
|
+
}
|
|
23
|
+
|
|
24
|
+
/**
|
|
25
|
+
* Gemini Vectorize agent metadata
|
|
26
|
+
*/
|
|
27
|
+
export interface GeminiVectorizeMetadata {
|
|
28
|
+
id: 'gemini-vectorize';
|
|
29
|
+
name: string;
|
|
30
|
+
description: string;
|
|
31
|
+
category: 'ai-service';
|
|
32
|
+
route: '/agents/gemini-vectorize';
|
|
33
|
+
tags: string[];
|
|
34
|
+
}
|
|
@@ -0,0 +1,84 @@
|
|
|
1
|
+
# Gemini Vectorize Agent - Native Builtin Agent for Beddel Runtime
|
|
2
|
+
# Route: /agents/gemini-vectorize
|
|
3
|
+
# Method: gemini-vectorize.execute
|
|
4
|
+
|
|
5
|
+
agent:
|
|
6
|
+
id: gemini-vectorize
|
|
7
|
+
version: 1.0.0
|
|
8
|
+
protocol: beddel-declarative-protocol/v2.0
|
|
9
|
+
|
|
10
|
+
metadata:
|
|
11
|
+
name: "Gemini Vectorize Agent"
|
|
12
|
+
description: "Generates text embeddings using Google's Gemini text-embedding-004 model"
|
|
13
|
+
category: "ai-service"
|
|
14
|
+
route: "/agents/gemini-vectorize"
|
|
15
|
+
tags:
|
|
16
|
+
- "embeddings"
|
|
17
|
+
- "gemini"
|
|
18
|
+
- "ai"
|
|
19
|
+
- "vectorization"
|
|
20
|
+
|
|
21
|
+
schema:
|
|
22
|
+
input:
|
|
23
|
+
type: "object"
|
|
24
|
+
properties:
|
|
25
|
+
action:
|
|
26
|
+
type: "string"
|
|
27
|
+
enum: ["embedSingle", "embedBatch"]
|
|
28
|
+
description: "Action to perform: embedSingle for one text, embedBatch for multiple"
|
|
29
|
+
text:
|
|
30
|
+
type: "string"
|
|
31
|
+
description: "Single text to embed (for embedSingle action)"
|
|
32
|
+
texts:
|
|
33
|
+
type: "array"
|
|
34
|
+
items:
|
|
35
|
+
type: "string"
|
|
36
|
+
description: "Array of texts to embed (for embedBatch action)"
|
|
37
|
+
|
|
38
|
+
output:
|
|
39
|
+
type: "object"
|
|
40
|
+
properties:
|
|
41
|
+
success:
|
|
42
|
+
type: "boolean"
|
|
43
|
+
vector:
|
|
44
|
+
type: "array"
|
|
45
|
+
items:
|
|
46
|
+
type: "number"
|
|
47
|
+
description: "Single embedding vector (for embedSingle)"
|
|
48
|
+
vectors:
|
|
49
|
+
type: "array"
|
|
50
|
+
items:
|
|
51
|
+
type: "array"
|
|
52
|
+
items:
|
|
53
|
+
type: "number"
|
|
54
|
+
description: "Array of embedding vectors (for embedBatch)"
|
|
55
|
+
error:
|
|
56
|
+
type: "string"
|
|
57
|
+
required: ["success"]
|
|
58
|
+
|
|
59
|
+
logic:
|
|
60
|
+
workflow:
|
|
61
|
+
- name: "vectorize"
|
|
62
|
+
type: "gemini-vectorize"
|
|
63
|
+
action:
|
|
64
|
+
action: "$input.action"
|
|
65
|
+
text: "$input.text"
|
|
66
|
+
texts: "$input.texts"
|
|
67
|
+
result: "vectorizeResult"
|
|
68
|
+
|
|
69
|
+
- name: "deliver-response"
|
|
70
|
+
type: "output-generator"
|
|
71
|
+
action:
|
|
72
|
+
type: "generate"
|
|
73
|
+
output:
|
|
74
|
+
success: "$vectorizeResult.success"
|
|
75
|
+
vector: "$vectorizeResult.vector"
|
|
76
|
+
vectors: "$vectorizeResult.vectors"
|
|
77
|
+
error: "$vectorizeResult.error"
|
|
78
|
+
|
|
79
|
+
output:
|
|
80
|
+
schema:
|
|
81
|
+
success: "$vectorizeResult.success"
|
|
82
|
+
vector: "$vectorizeResult.vector"
|
|
83
|
+
vectors: "$vectorizeResult.vectors"
|
|
84
|
+
error: "$vectorizeResult.error"
|
|
@@ -0,0 +1,20 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* Gemini Vectorize Agent - Public exports (client-safe)
|
|
3
|
+
*/
|
|
4
|
+
|
|
5
|
+
// Schema exports (client-safe)
|
|
6
|
+
export { GeminiVectorizeInputSchema, GeminiVectorizeOutputSchema } from './gemini-vectorize.schema';
|
|
7
|
+
export type { GeminiVectorizeInput, GeminiVectorizeOutput } from './gemini-vectorize.schema';
|
|
8
|
+
|
|
9
|
+
// Type exports (client-safe)
|
|
10
|
+
export type { VectorizeHandlerParams, VectorizeHandlerResult, GeminiVectorizeMetadata } from './gemini-vectorize.types';
|
|
11
|
+
|
|
12
|
+
// Metadata (client-safe)
|
|
13
|
+
export const geminiVectorizeMetadata = {
|
|
14
|
+
id: 'gemini-vectorize',
|
|
15
|
+
name: 'Gemini Vectorize Agent',
|
|
16
|
+
description: "Generates text embeddings using Google's Gemini text-embedding-004 model",
|
|
17
|
+
category: 'ai-service',
|
|
18
|
+
route: '/agents/gemini-vectorize',
|
|
19
|
+
tags: ['embeddings', 'gemini', 'ai', 'vectorization'],
|
|
20
|
+
} as const;
|
|
@@ -0,0 +1,122 @@
|
|
|
1
|
+
import 'server-only';
|
|
2
|
+
|
|
3
|
+
/**
|
|
4
|
+
* GitMCP Agent Handler - Server-only execution logic
|
|
5
|
+
* Fetches and chunks GitHub repository documentation via gitmcp.io MCP servers
|
|
6
|
+
*/
|
|
7
|
+
|
|
8
|
+
import type { ExecutionContext } from '../../types/executionContext';
|
|
9
|
+
import type { GitMcpHandlerParams, GitMcpHandlerResult } from './gitmcp.types';
|
|
10
|
+
import { executeMcpToolHandler } from '../mcp-tool/mcp-tool.handler';
|
|
11
|
+
|
|
12
|
+
/**
|
|
13
|
+
* Split text into chunks preserving paragraphs
|
|
14
|
+
*/
|
|
15
|
+
function splitIntoChunks(text: string, chunkSize: number): string[] {
|
|
16
|
+
const paragraphs = text.split(/\n\s*\n/);
|
|
17
|
+
const chunks: string[] = [];
|
|
18
|
+
let currentChunk = '';
|
|
19
|
+
|
|
20
|
+
for (const para of paragraphs) {
|
|
21
|
+
if (currentChunk.length + para.length > chunkSize && currentChunk) {
|
|
22
|
+
chunks.push(currentChunk.trim());
|
|
23
|
+
currentChunk = para;
|
|
24
|
+
} else {
|
|
25
|
+
currentChunk += (currentChunk ? '\n\n' : '') + para;
|
|
26
|
+
}
|
|
27
|
+
}
|
|
28
|
+
|
|
29
|
+
if (currentChunk) chunks.push(currentChunk.trim());
|
|
30
|
+
return chunks;
|
|
31
|
+
}
|
|
32
|
+
|
|
33
|
+
/**
|
|
34
|
+
* Execute GitMCP documentation fetching
|
|
35
|
+
*/
|
|
36
|
+
export async function executeGitMcpHandler(
|
|
37
|
+
params: GitMcpHandlerParams,
|
|
38
|
+
props: Record<string, string>,
|
|
39
|
+
context: ExecutionContext
|
|
40
|
+
): Promise<GitMcpHandlerResult> {
|
|
41
|
+
const gitmcpUrl = params.gitmcp_url;
|
|
42
|
+
|
|
43
|
+
if (!gitmcpUrl) {
|
|
44
|
+
throw new Error('Missing required GitMCP input: gitmcp_url');
|
|
45
|
+
}
|
|
46
|
+
|
|
47
|
+
context.log(`[GitMCP] Fetching content from ${gitmcpUrl}...`);
|
|
48
|
+
|
|
49
|
+
try {
|
|
50
|
+
const sseUrl = `${gitmcpUrl}/sse`;
|
|
51
|
+
|
|
52
|
+
// Use MCP tool to list available tools
|
|
53
|
+
const toolListResult = await executeMcpToolHandler(
|
|
54
|
+
{
|
|
55
|
+
server_url: sseUrl,
|
|
56
|
+
tool_name: 'list_tools',
|
|
57
|
+
tool_arguments: {},
|
|
58
|
+
},
|
|
59
|
+
props,
|
|
60
|
+
context
|
|
61
|
+
);
|
|
62
|
+
|
|
63
|
+
let selectedToolName = '';
|
|
64
|
+
let selectedToolArgs: Record<string, unknown> = {};
|
|
65
|
+
|
|
66
|
+
if (toolListResult?.success && toolListResult?.tool_names) {
|
|
67
|
+
const availableTools = toolListResult.tool_names;
|
|
68
|
+
context.log(`[GitMCP] Discovered tools: ${availableTools.join(', ')}`);
|
|
69
|
+
|
|
70
|
+
// Heuristic tool selection
|
|
71
|
+
if (availableTools.includes('fetch_beddel_alpha_documentation')) {
|
|
72
|
+
selectedToolName = 'fetch_beddel_alpha_documentation';
|
|
73
|
+
selectedToolArgs = { path: '/' };
|
|
74
|
+
} else if (availableTools.includes('read_file')) {
|
|
75
|
+
selectedToolName = 'read_file';
|
|
76
|
+
selectedToolArgs = { path: 'README.md' };
|
|
77
|
+
} else if (availableTools.includes('fetch_generic_url_content')) {
|
|
78
|
+
selectedToolName = 'fetch_generic_url_content';
|
|
79
|
+
selectedToolArgs = { url: gitmcpUrl };
|
|
80
|
+
} else {
|
|
81
|
+
selectedToolName = availableTools.find((t) => t !== 'list_tools' && !t.includes('search')) || availableTools[0];
|
|
82
|
+
selectedToolArgs = { path: '/' };
|
|
83
|
+
}
|
|
84
|
+
} else {
|
|
85
|
+
selectedToolName = 'fetch_beddel_alpha_documentation';
|
|
86
|
+
selectedToolArgs = { path: '/' };
|
|
87
|
+
}
|
|
88
|
+
|
|
89
|
+
context.log(`[GitMCP] Selected tool: ${selectedToolName}`);
|
|
90
|
+
|
|
91
|
+
// Fetch content
|
|
92
|
+
const mcpResult = await executeMcpToolHandler(
|
|
93
|
+
{
|
|
94
|
+
server_url: sseUrl,
|
|
95
|
+
tool_name: selectedToolName,
|
|
96
|
+
tool_arguments: selectedToolArgs,
|
|
97
|
+
},
|
|
98
|
+
props,
|
|
99
|
+
context
|
|
100
|
+
);
|
|
101
|
+
|
|
102
|
+
if (!mcpResult?.success) {
|
|
103
|
+
throw new Error(`Failed to fetch docs via MCP: ${mcpResult?.error}`);
|
|
104
|
+
}
|
|
105
|
+
|
|
106
|
+
const textContent = mcpResult.data;
|
|
107
|
+
if (!textContent) {
|
|
108
|
+
throw new Error('No content returned from MCP tool');
|
|
109
|
+
}
|
|
110
|
+
|
|
111
|
+
// Chunking
|
|
112
|
+
const chunks = splitIntoChunks(textContent, 800);
|
|
113
|
+
context.log(`[GitMCP] Content split into ${chunks.length} chunks`);
|
|
114
|
+
|
|
115
|
+
return { success: true, chunks, source: gitmcpUrl };
|
|
116
|
+
|
|
117
|
+
} catch (error: unknown) {
|
|
118
|
+
const message = error instanceof Error ? error.message : String(error);
|
|
119
|
+
context.log(`[GitMCP] Error: ${message}`);
|
|
120
|
+
return { success: false, chunks: [], error: message };
|
|
121
|
+
}
|
|
122
|
+
}
|
|
@@ -0,0 +1,20 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* GitMCP Agent Schema - Zod validation schemas
|
|
3
|
+
* Safe for both client and server
|
|
4
|
+
*/
|
|
5
|
+
|
|
6
|
+
import { z } from 'zod';
|
|
7
|
+
|
|
8
|
+
export const GitMcpInputSchema = z.object({
|
|
9
|
+
gitmcp_url: z.string().url(),
|
|
10
|
+
});
|
|
11
|
+
|
|
12
|
+
export const GitMcpOutputSchema = z.object({
|
|
13
|
+
success: z.boolean(),
|
|
14
|
+
chunks: z.array(z.string()).optional(),
|
|
15
|
+
source: z.string().optional(),
|
|
16
|
+
error: z.string().optional(),
|
|
17
|
+
});
|
|
18
|
+
|
|
19
|
+
export type GitMcpInput = z.infer<typeof GitMcpInputSchema>;
|
|
20
|
+
export type GitMcpOutput = z.infer<typeof GitMcpOutputSchema>;
|
|
@@ -0,0 +1,33 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* GitMCP Agent Types - Shared between client and server
|
|
3
|
+
*/
|
|
4
|
+
|
|
5
|
+
/**
|
|
6
|
+
* Parameters for GitMCP documentation fetching
|
|
7
|
+
*/
|
|
8
|
+
export interface GitMcpHandlerParams {
|
|
9
|
+
gitmcp_url: string;
|
|
10
|
+
}
|
|
11
|
+
|
|
12
|
+
/**
|
|
13
|
+
* Result from GitMCP documentation fetching
|
|
14
|
+
*/
|
|
15
|
+
export interface GitMcpHandlerResult {
|
|
16
|
+
success: boolean;
|
|
17
|
+
chunks?: string[];
|
|
18
|
+
source?: string;
|
|
19
|
+
error?: string;
|
|
20
|
+
}
|
|
21
|
+
|
|
22
|
+
/**
|
|
23
|
+
* GitMCP agent metadata
|
|
24
|
+
*/
|
|
25
|
+
export interface GitMcpMetadata {
|
|
26
|
+
id: 'gitmcp';
|
|
27
|
+
name: string;
|
|
28
|
+
description: string;
|
|
29
|
+
category: 'integration';
|
|
30
|
+
route: '/agents/gitmcp';
|
|
31
|
+
provides_knowledge: boolean;
|
|
32
|
+
tags: string[];
|
|
33
|
+
}
|
|
@@ -0,0 +1,71 @@
|
|
|
1
|
+
# GitMCP Agent - Native Builtin Agent for Beddel Runtime
|
|
2
|
+
# Route: /agents/gitmcp
|
|
3
|
+
# Method: gitmcp.execute
|
|
4
|
+
|
|
5
|
+
agent:
|
|
6
|
+
id: gitmcp
|
|
7
|
+
version: 1.0.0
|
|
8
|
+
protocol: beddel-declarative-protocol/v2.0
|
|
9
|
+
|
|
10
|
+
metadata:
|
|
11
|
+
name: "GitMCP Documentation Agent"
|
|
12
|
+
description: "Fetches and chunks GitHub repository documentation via gitmcp.io MCP servers"
|
|
13
|
+
category: "integration"
|
|
14
|
+
route: "/agents/gitmcp"
|
|
15
|
+
provides_knowledge: true
|
|
16
|
+
tags:
|
|
17
|
+
- "gitmcp"
|
|
18
|
+
- "documentation"
|
|
19
|
+
- "github"
|
|
20
|
+
- "mcp"
|
|
21
|
+
|
|
22
|
+
schema:
|
|
23
|
+
input:
|
|
24
|
+
type: "object"
|
|
25
|
+
properties:
|
|
26
|
+
gitmcp_url:
|
|
27
|
+
type: "string"
|
|
28
|
+
description: "GitMCP repository URL (e.g., https://gitmcp.io/owner/repo)"
|
|
29
|
+
required: ["gitmcp_url"]
|
|
30
|
+
|
|
31
|
+
output:
|
|
32
|
+
type: "object"
|
|
33
|
+
properties:
|
|
34
|
+
success:
|
|
35
|
+
type: "boolean"
|
|
36
|
+
chunks:
|
|
37
|
+
type: "array"
|
|
38
|
+
items:
|
|
39
|
+
type: "string"
|
|
40
|
+
description: "Content split into chunks for vectorization"
|
|
41
|
+
source:
|
|
42
|
+
type: "string"
|
|
43
|
+
description: "Source URL of the fetched content"
|
|
44
|
+
error:
|
|
45
|
+
type: "string"
|
|
46
|
+
required: ["success"]
|
|
47
|
+
|
|
48
|
+
logic:
|
|
49
|
+
workflow:
|
|
50
|
+
- name: "fetch-content"
|
|
51
|
+
type: "gitmcp"
|
|
52
|
+
action:
|
|
53
|
+
gitmcp_url: "$input.gitmcp_url"
|
|
54
|
+
result: "gitmcpResult"
|
|
55
|
+
|
|
56
|
+
- name: "deliver-response"
|
|
57
|
+
type: "output-generator"
|
|
58
|
+
action:
|
|
59
|
+
type: "generate"
|
|
60
|
+
output:
|
|
61
|
+
success: "$gitmcpResult.success"
|
|
62
|
+
chunks: "$gitmcpResult.chunks"
|
|
63
|
+
source: "$gitmcpResult.source"
|
|
64
|
+
error: "$gitmcpResult.error"
|
|
65
|
+
|
|
66
|
+
output:
|
|
67
|
+
schema:
|
|
68
|
+
success: "$gitmcpResult.success"
|
|
69
|
+
chunks: "$gitmcpResult.chunks"
|
|
70
|
+
source: "$gitmcpResult.source"
|
|
71
|
+
error: "$gitmcpResult.error"
|
|
@@ -0,0 +1,21 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* GitMCP Agent - Public exports (client-safe)
|
|
3
|
+
*/
|
|
4
|
+
|
|
5
|
+
// Schema exports (client-safe)
|
|
6
|
+
export { GitMcpInputSchema, GitMcpOutputSchema } from './gitmcp.schema';
|
|
7
|
+
export type { GitMcpInput, GitMcpOutput } from './gitmcp.schema';
|
|
8
|
+
|
|
9
|
+
// Type exports (client-safe)
|
|
10
|
+
export type { GitMcpHandlerParams, GitMcpHandlerResult, GitMcpMetadata } from './gitmcp.types';
|
|
11
|
+
|
|
12
|
+
// Metadata (client-safe)
|
|
13
|
+
export const gitmcpMetadata = {
|
|
14
|
+
id: 'gitmcp',
|
|
15
|
+
name: 'GitMCP Documentation Agent',
|
|
16
|
+
description: 'Fetches and chunks GitHub repository documentation via gitmcp.io MCP servers',
|
|
17
|
+
category: 'integration',
|
|
18
|
+
route: '/agents/gitmcp',
|
|
19
|
+
provides_knowledge: true,
|
|
20
|
+
tags: ['gitmcp', 'documentation', 'github', 'mcp'],
|
|
21
|
+
} as const;
|