tpmjs/docs/TODO.md
Ajax Davis 36a0735ab1 feat: add 5 research tools and blocks framework setup
- Add @tpmjs/tools-page-brief for URL content extraction
- Add @tpmjs/tools-compare-pages for cross-source validation
- Add @tpmjs/tools-source-credibility for credibility scoring
- Add @tpmjs/tools-claim-checklist for factual claim extraction
- Add @tpmjs/tools-timeline-from-text for timeline generation
- Move createBlogPost to packages/tools/official/
- Add blocks.yml for Blocks framework validation
- Update pnpm-workspace.yaml to include official tools
2025-12-31 19:47:02 +10:00

159 lines
4.9 KiB
Markdown

# TPMJS Feature Roadmap
## User System & Social Features
### 1. User Authentication System
- [ ] Add authentication (OAuth with GitHub/Google)
- [ ] User profile pages (`/user/[username]`)
- [ ] Store user preferences and settings
- [ ] API key management for programmatic access
### 2. User Collections
- [ ] Create named collections of tools (e.g., "My AI Agents", "Data Processing")
- [ ] Public/private collection visibility
- [ ] Share collections via URL
- [ ] Fork/clone collections from other users
- [ ] Collection descriptions and tags
**Database Schema:**
```prisma
model User {
id String @id @default(cuid())
email String @unique
name String?
avatarUrl String?
collections Collection[]
ratings Rating[]
createdAt DateTime @default(now())
}
model Collection {
id String @id @default(cuid())
name String
description String?
isPublic Boolean @default(false)
userId String
user User @relation(fields: [userId], references: [id])
tools CollectionTool[]
createdAt DateTime @default(now())
updatedAt DateTime @updatedAt
}
model CollectionTool {
id String @id @default(cuid())
collectionId String
collection Collection @relation(fields: [collectionId], references: [id])
toolId String
tool Tool @relation(fields: [toolId], references: [id])
addedAt DateTime @default(now())
notes String? // User's notes about why this tool is in the collection
@@unique([collectionId, toolId])
}
```
### 3. Package Ratings & Reviews
- [ ] 1-5 star rating system
- [ ] Optional text reviews
- [ ] Aggregate rating displayed on tool cards
- [ ] Sort/filter by rating
- [ ] Prevent duplicate ratings (one per user per tool)
- [ ] Verified usage badge (user has actually executed the tool)
**Database Schema:**
```prisma
model Rating {
id String @id @default(cuid())
score Int // 1-5
review String? @db.Text
userId String
user User @relation(fields: [userId], references: [id])
toolId String
tool Tool @relation(fields: [toolId], references: [id])
verified Boolean @default(false) // True if user has executed the tool
createdAt DateTime @default(now())
updatedAt DateTime @updatedAt
@@unique([userId, toolId])
}
```
### 4. Integrate Collections with SDK Tools
**@tpmjs/search-registry:**
- [ ] Add `collection` parameter to filter tools by collection ID
- [ ] Add `collectionName` parameter to filter by collection name
- [ ] Return collection metadata in search results
- [ ] Support searching within user's own collections
**@tpmjs/registry-execute:**
- [ ] Accept collection ID to scope tool execution
- [ ] Log which collection a tool was executed from (for analytics)
- [ ] Support executing all tools in a collection sequentially
**API Endpoints:**
```
GET /api/collections - List public collections
GET /api/collections/[id] - Get collection details
POST /api/collections - Create collection (auth required)
PUT /api/collections/[id] - Update collection (auth required)
DELETE /api/collections/[id] - Delete collection (auth required)
POST /api/collections/[id]/tools - Add tool to collection
DELETE /api/collections/[id]/tools/[toolId] - Remove tool from collection
GET /api/tools?collection=[id] - Filter tools by collection
GET /api/users/[username]/collections - Get user's public collections
```
---
## Implementation Order
1. **Phase 1: User System** (required for everything else)
- Authentication with NextAuth.js
- User model and basic profile
2. **Phase 2: Collections**
- Collection CRUD
- Add/remove tools from collections
- Collection pages
3. **Phase 3: Ratings**
- Rating submission
- Display ratings on tool cards
- Sort by rating
4. **Phase 4: SDK Integration**
- Update @tpmjs/search-registry
- Update @tpmjs/registry-execute
- Collection-aware execution
---
## Benchmark Comparison Page
### Overview
- [ ] Create `/benchmarks` page to compare tool performance
- [ ] Display execution time comparisons across similar tools
- [ ] Show token usage efficiency metrics
- [ ] Compare success rates and reliability
### Features
- [ ] Side-by-side tool comparison UI
- [ ] Historical performance trends (charts)
- [ ] Filter by category to compare relevant tools
- [ ] Export benchmark data as JSON/CSV
### Data Collection
- [ ] Track execution metrics from playground simulations
- [ ] Aggregate anonymous performance data
- [ ] Calculate percentile rankings within categories
---
## Notes
- Consider rate limiting on ratings to prevent abuse
- Collections could have a "featured" flag for editorial picks
- Future: collaborative collections (multiple editors)
- Future: collection analytics (views, forks, tool executions)