feat(api): tags routes
Add lib/api/routes/tags.js: list + upsert at /api/tags, and an entity-scoped router mounted at /api/:entity_type/:entity_id/tags for attach (idempotent), list, and detach. entity_type is bounded by a zod enum covering space/project/task/page/ref/resource/source_doc/ conversation. Co-Authored-By: Claude Opus 4.7 <noreply@anthropic.com>
This commit is contained in:
@@ -15,6 +15,7 @@ import { router as sourceDocsRouter, resourcesScopedRouter as sourceDocsByResour
|
||||
import { router as agentsRouter, tokensRouter as agentTokensRouter } from './routes/agents.js';
|
||||
import { router as conversationsRouter } from './routes/conversations.js';
|
||||
import { conversationsScopedRouter as messagesByConvRouter } from './routes/messages.js';
|
||||
import { router as tagsRouter, entityScopedRouter as tagsByEntityRouter } from './routes/tags.js';
|
||||
|
||||
export function mountApi(app) {
|
||||
const api = Router();
|
||||
@@ -37,6 +38,8 @@ export function mountApi(app) {
|
||||
api.use('/agent-tokens', agentTokensRouter);
|
||||
api.use('/conversations', conversationsRouter);
|
||||
api.use('/conversations/:conversation_id/messages', messagesByConvRouter);
|
||||
api.use('/tags', tagsRouter);
|
||||
api.use('/:entity_type/:entity_id/tags', tagsByEntityRouter);
|
||||
|
||||
api.use((_req, _res, next) => next(new NotFoundError('route not found')));
|
||||
|
||||
|
||||
Reference in New Issue
Block a user