Local-first knowledge management system with BYO API keys. Features: - 3-panel UI (Nodes | Focus | Helpers) - SQLite + sqlite-vec for vector search - Agent system (Easy/Hard mode orchestrators) - Content extraction (YouTube, PDF, web) - Integrate workflow for connection discovery - Dimension system with auto-assignment Tech stack: - Next.js 15 + TypeScript + Tailwind CSS - Anthropic (Claude) + OpenAI (GPT) via Vercel AI SDK Setup: npm install && npm rebuild better-sqlite3 scripts/dev/bootstrap-local.sh npm run dev MIT License
39 lines
1.0 KiB
TypeScript
39 lines
1.0 KiB
TypeScript
import { NextResponse } from 'next/server';
|
|
import { TOOL_GROUP_ASSIGNMENTS, TOOL_GROUPS } from '@/tools/infrastructure/groups';
|
|
import { getHelperTools } from '@/tools/infrastructure/registry';
|
|
|
|
export async function GET() {
|
|
try {
|
|
const grouped: Record<string, { name: string; description: string }[]> = {
|
|
core: [],
|
|
orchestration: [],
|
|
execution: [],
|
|
};
|
|
|
|
Object.entries(TOOL_GROUP_ASSIGNMENTS).forEach(([toolName, groupId]) => {
|
|
const tools = getHelperTools([toolName]);
|
|
const tool = tools[toolName];
|
|
if (tool) {
|
|
grouped[groupId]?.push({
|
|
name: toolName,
|
|
description: tool.description || 'No description available',
|
|
});
|
|
}
|
|
});
|
|
|
|
return NextResponse.json({
|
|
success: true,
|
|
data: {
|
|
groups: TOOL_GROUPS,
|
|
tools: grouped,
|
|
},
|
|
});
|
|
} catch (error) {
|
|
console.error('Error fetching tools:', error);
|
|
return NextResponse.json(
|
|
{ success: false, error: 'Failed to fetch tools' },
|
|
{ status: 500 }
|
|
);
|
|
}
|
|
}
|