From 5c99c1f3a537db0641ab3cf629b9e0f178b9c213 Mon Sep 17 00:00:00 2001 From: Ajax Davis Date: Wed, 7 Jan 2026 22:07:36 +1000 Subject: [PATCH] fix: add description column to tools page and make agents public by default - Add description column to tools registry table - Change agent isPublic default from false to true in Prisma schema - Update CreateAgentSchema Zod default to true --- apps/web/src/app/tool/tool-search/page.tsx | 21 +++++++++++++++------ packages/db/prisma/schema.prisma | 2 +- packages/types/src/agent.ts | 2 +- 3 files changed, 17 insertions(+), 8 deletions(-) diff --git a/apps/web/src/app/tool/tool-search/page.tsx b/apps/web/src/app/tool/tool-search/page.tsx index c9ddad5..86efb70 100644 --- a/apps/web/src/app/tool/tool-search/page.tsx +++ b/apps/web/src/app/tool/tool-search/page.tsx @@ -47,6 +47,11 @@ function formatDownloads(count: number): string { return count.toString(); } +function truncateText(text: string, maxLength: number): string { + if (text.length <= maxLength) return text; + return `${text.slice(0, maxLength).trim()}...`; +} + /** Sort tools by criterion, pushing broken tools to the bottom */ function sortTools(tools: Tool[], sortBy: SortOption): Tool[] { return [...tools].sort((a, b) => { @@ -166,11 +171,12 @@ export default function ToolSearchPage(): React.ReactElement { const TableHeader = useCallback( () => ( - Name - Category - Downloads - Likes - Install + Name + Description + Category + Downloads + Likes + Install ), [] @@ -197,11 +203,14 @@ export default function ToolSearchPage(): React.ReactElement { )} -
+
{tool.package.npmPackageName}
+ + {tool.description ? truncateText(tool.description, 60) : '—'} + {tool.package.category} diff --git a/packages/db/prisma/schema.prisma b/packages/db/prisma/schema.prisma index 4c0fce1..13b2c26 100644 --- a/packages/db/prisma/schema.prisma +++ b/packages/db/prisma/schema.prisma @@ -503,7 +503,7 @@ model Agent { maxMessagesInContext Int @default(10) @map("max_messages_in_context") // Visibility - isPublic Boolean @default(false) @map("is_public") + isPublic Boolean @default(true) @map("is_public") likeCount Int @default(0) @map("like_count") // Timestamps diff --git a/packages/types/src/agent.ts b/packages/types/src/agent.ts index 64df1fc..f077679 100644 --- a/packages/types/src/agent.ts +++ b/packages/types/src/agent.ts @@ -33,7 +33,7 @@ export const CreateAgentSchema = z.object({ temperature: z.number().min(0).max(2).default(0.7), maxToolCallsPerTurn: z.number().int().min(1).max(100).default(20), maxMessagesInContext: z.number().int().min(1).max(100).default(10), - isPublic: z.boolean().default(false), + isPublic: z.boolean().default(true), collectionIds: z.array(z.string()).optional(), toolIds: z.array(z.string()).optional(), });