diff --git a/apps/rowboat/app/actions/mcp_actions.ts b/apps/rowboat/app/actions/mcp_actions.ts index 31678422..9ca6668f 100644 --- a/apps/rowboat/app/actions/mcp_actions.ts +++ b/apps/rowboat/app/actions/mcp_actions.ts @@ -49,8 +49,6 @@ export async function fetchMcpTools(projectId: string): Promise = { name: mcpTool.name, description: mcpTool.description ?? "", - type: 'library', - implementation: 'default', parameters: { type: "object", properties: props ?? {}, diff --git a/apps/rowboat/app/lib/project_templates.ts b/apps/rowboat/app/lib/project_templates.ts index b0cfdca1..c69e8bd8 100644 --- a/apps/rowboat/app/lib/project_templates.ts +++ b/apps/rowboat/app/lib/project_templates.ts @@ -55,12 +55,11 @@ You are an helpful customer support assistant { "name": "web_search", "description": "Fetch information from the web based on chat context", - "type": "library", "parameters": { "type": "object", "properties": {}, }, - "implementation": "default", + "isLibrary": true } ], } diff --git a/apps/rowboat/app/lib/types/workflow_types.ts b/apps/rowboat/app/lib/types/workflow_types.ts index bc71f0ef..6930a8d0 100644 --- a/apps/rowboat/app/lib/types/workflow_types.ts +++ b/apps/rowboat/app/lib/types/workflow_types.ts @@ -36,15 +36,7 @@ export const WorkflowPrompt = z.object({ export const WorkflowTool = z.object({ name: z.string(), description: z.string(), - type: z.union([ - z.literal('library'), - z.literal('custom'), - ]).default('custom'), - implementation: z.union([ - z.literal('mock'), - z.literal('default'), - z.literal('api') - ]).default('mock'), + mockTool: z.boolean().default(false).optional(), autoSubmitMockedResponse: z.boolean().default(false).optional(), mockInstructions: z.string().optional(), parameters: z.object({ @@ -56,6 +48,7 @@ export const WorkflowTool = z.object({ required: z.array(z.string()).optional(), }), isMcp: z.boolean().default(false).optional(), + isLibrary: z.boolean().default(false).optional(), mcpServerName: z.string().optional(), }); export const Workflow = z.object({ diff --git a/apps/rowboat/app/projects/[projectId]/entities/tool_config.tsx b/apps/rowboat/app/projects/[projectId]/entities/tool_config.tsx index 48c1cbc0..1ea56686 100644 --- a/apps/rowboat/app/projects/[projectId]/entities/tool_config.tsx +++ b/apps/rowboat/app/projects/[projectId]/entities/tool_config.tsx @@ -2,7 +2,7 @@ import { WorkflowTool } from "../../../lib/types/workflow_types"; import { Checkbox, Select, SelectItem, RadioGroup, Radio } from "@heroui/react"; import { z } from "zod"; -import { ImportIcon, XIcon, PlusIcon } from "lucide-react"; +import { ImportIcon, XIcon, PlusIcon, FolderIcon } from "lucide-react"; import { useState, useEffect } from "react"; import { Textarea } from "@/components/ui/textarea"; import { Panel } from "@/components/common/panel-common"; @@ -161,7 +161,7 @@ export function ToolConfig({ handleClose: () => void }) { const [selectedParams, setSelectedParams] = useState(new Set([])); - const isReadOnly = tool.isMcp; + const isReadOnly = tool.isMcp || tool.isLibrary; const [nameError, setNameError] = useState(null); function handleParamRename(oldName: string, newName: string) { @@ -245,6 +245,12 @@ export function ToolConfig({ MCP: {tool.mcpServerName} )} + {tool.isLibrary && ( +
+ + Library Tool +
+ )}