From 13d52d5f03664f65ca7ca2630856d0d2c9f97286 Mon Sep 17 00:00:00 2001 From: khaliqgant Date: Thu, 8 Oct 2026 10:43:23 -0700 Subject: [PATCH 1/2] feat(directory): Official badge for Agent Relay's own agents, pinned first MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit /directory and arelay.to/agents (Markdown) accept the registry's Official entries (verificationMethod and deliveryType "internal", labelled Official with domain agentrelay.com), pin them first and render a distinct "Official · agentrelay.com" badge. No other entry can borrow the badge or name another domain under it. While no company is listed the page and Markdown invite "Be the first company to register". Co-Authored-By: Claude Opus 5.5 (1M context) Session-Id: bea559af-5c61-4ae5-89fa-ab3faaaeaab9 --- web/app/directory/DirectoryList.tsx | 35 +++++++++------- web/app/directory/directory.module.css | 24 +++++++++++ web/app/directory/page.tsx | 4 +- web/lib/agent-directory.ts | 56 ++++++++++++++++++++++---- web/lib/test/agent-directory.test.ts | 48 +++++++++++++++++++++- 5 files changed, 143 insertions(+), 24 deletions(-) diff --git a/web/app/directory/DirectoryList.tsx b/web/app/directory/DirectoryList.tsx index 7c728885..01dc2ad8 100644 --- a/web/app/directory/DirectoryList.tsx +++ b/web/app/directory/DirectoryList.tsx @@ -18,14 +18,15 @@ export function DirectoryList({ agents, complete }: { agents: DirectoryAgent[]; const index = useMemo(() => buildDirectoryIndex(agents), [agents]); const visible = useMemo(() => searchDirectoryIndex(index, query), [index, query]); - if (agents.length === 0) { - return ( -
-

No verified agents yet.

- Be the first: register your agent -
- ); - } + const hasCompanies = useMemo(() => agents.some((agent) => !agent.official), [agents]); + const firstCompany = ( +
+

No verified companies yet.

+ Be the first company to register +
+ ); + + if (agents.length === 0) return firstCompany; return ( <> @@ -43,7 +44,7 @@ export function DirectoryList({ agents, complete }: { agents: DirectoryAgent[]; />

{visible.length === agents.length - ? `${agents.length} verified ${agents.length === 1 ? 'agent' : 'agents'}${complete ? '' : ' shown'}` + ? `${agents.length} ${agents.length === 1 ? 'agent' : 'agents'}${complete ? '' : ' shown'}` : `${visible.length} of ${agents.length}${complete ? '' : ' shown'}`}

@@ -53,14 +54,16 @@ export function DirectoryList({ agents, complete }: { agents: DirectoryAgent[]; ) : (