Skip to content
Merged
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
15 changes: 15 additions & 0 deletions app/about/page.tsx
Original file line number Diff line number Diff line change
Expand Up @@ -104,6 +104,21 @@ export default async function AboutPage() {
explains how to use each of them.
</p>
</section>

<section>
<h2 className="text-lg font-semibold text-[var(--text-primary)] mb-2">Legal</h2>
<p>
How the directory handles data is on the{' '}
<Link href="/privacy" className="text-[var(--accent)] hover:underline">
privacy page
</Link>
. Use of the site and the public catalog API is covered by the{' '}
<Link href="/terms" className="text-[var(--accent)] hover:underline">
terms of use
</Link>
.
</p>
</section>
</div>
</div>
</div>
Expand Down
13 changes: 13 additions & 0 deletions app/contact/page.tsx
Original file line number Diff line number Diff line change
Expand Up @@ -64,6 +64,19 @@ export default function ContactPage() {
</p>
</section>

<section>
<h2 className="text-lg font-semibold text-[var(--text-primary)] mb-2">Legal</h2>
<p>
<Link href="/privacy" className="text-[var(--accent)] hover:underline">
Privacy
</Link>
{' · '}
<Link href="/terms" className="text-[var(--accent)] hover:underline">
Terms of Use
</Link>
</p>
</section>

<section>
<h2 className="text-lg font-semibold text-[var(--text-primary)] mb-2">
For agents and automated clients
Expand Down
2 changes: 1 addition & 1 deletion app/index.md/route.ts
Original file line number Diff line number Diff line change
Expand Up @@ -40,7 +40,7 @@ ${categories.map((c) => `- ${c.name} (\`${c.slug}\`)`).join('\n')}
## Pages

- [Browse](${BASE_URL}/browse) · [Categories](${BASE_URL}/categories) · [Submit an agent](${BASE_URL}/submit)
- [About](${BASE_URL}/about) · [Contact](${BASE_URL}/contact) · [Privacy](${BASE_URL}/privacy) · [Disclaimer](${BASE_URL}/disclaimer)
- [About](${BASE_URL}/about) · [Contact](${BASE_URL}/contact) · [Privacy](${BASE_URL}/privacy) · [Terms of Use](${BASE_URL}/terms) · [Disclaimer](${BASE_URL}/disclaimer)

Contact: barnir@agentmail.to
`;
Expand Down
5 changes: 5 additions & 0 deletions app/llms.txt/route.ts
Original file line number Diff line number Diff line change
Expand Up @@ -63,6 +63,11 @@ instead of scraping the DOM. No setup: they self-register on page load.

${categoryLines}

## Legal

- Privacy: https://agentswitchboard.dev/privacy
- Terms of Use: https://agentswitchboard.dev/terms

## Maintained by

Barnir — barnir@agentmail.to
Expand Down
11 changes: 8 additions & 3 deletions components/Footer.tsx
Original file line number Diff line number Diff line change
Expand Up @@ -26,7 +26,7 @@ const footerLinks = [
{ href: '/contact', label: 'Contact' },
{ href: 'https://github.com/assafbar2/agentswitchboard.dev', label: 'GitHub', external: true },
{ href: '/privacy', label: 'Privacy' },
{ href: '/terms', label: 'Terms' },
{ href: '/terms', label: 'Terms of Use' },
{ href: '/disclaimer', label: 'Disclaimer' },
],
},
Expand Down Expand Up @@ -80,8 +80,13 @@ export function Footer() {
<p className="text-xs text-[var(--text-muted)]">
&copy; {new Date().getFullYear()} Agent Switchboard. All rights reserved.
</p>
<p className="text-xs text-[var(--text-muted)] mono">
Built for the agentic web
<p className="text-xs text-[var(--text-muted)] flex items-center gap-3">
<Link href="/privacy" className="hover:text-[var(--text-primary)] transition-colors">
Privacy
</Link>
<Link href="/terms" className="hover:text-[var(--text-primary)] transition-colors">
Terms of Use
</Link>
</p>
</div>
</div>
Expand Down
6 changes: 6 additions & 0 deletions next.config.ts
Original file line number Diff line number Diff line change
Expand Up @@ -16,6 +16,12 @@ const nextConfig: NextConfig = {
// Middleware sets Vary too, but the renderer overwrites it on the HTML
// branch, so declare it here as well — otherwise a CDN can cache the HTML
// variant and hand it to an agent that asked for Markdown.
async redirects() {
return [
{ source: "/tos", destination: "/terms", permanent: true },
{ source: "/TOS", destination: "/terms", permanent: true },
];
},
async rewrites() {
return [{ source: "/SKILL.md", destination: "/skill.md" }];
},
Expand Down
Loading