Files
Codewalkers/apps/server/trpc/router.ts
Lukas May 89c98d38cc feat: Add getHeadquartersDashboard tRPC procedure for HQ action items
Aggregates all user-blocking action items into a single composite query:
- waitingForInput: agents paused on questions (oldest first)
- pendingReviewInitiatives: initiatives awaiting content review
- pendingReviewPhases: phases awaiting diff review
- planningInitiatives: active initiatives with all phases pending and no running agents
- blockedPhases: phases in blocked state with optional last-message snippet

Wired into appRouter and covered by 10 unit tests using in-memory Drizzle DB
and an inline MockAgentManager (no real processes required).

Co-Authored-By: Claude Sonnet 4.6 <noreply@anthropic.com>
2026-03-06 15:35:54 +01:00

71 lines
2.8 KiB
TypeScript

/**
* tRPC Router — Merge Point
*
* Combines all domain routers into a single application router.
* Each domain file exports a builder function that returns procedure records.
*/
import { router, publicProcedure } from './trpc.js';
import { systemProcedures } from './routers/system.js';
import { agentProcedures } from './routers/agent.js';
import { taskProcedures } from './routers/task.js';
import { messageProcedures } from './routers/message.js';
import { dispatchProcedures } from './routers/dispatch.js';
import { coordinationProcedures } from './routers/coordination.js';
import { initiativeProcedures } from './routers/initiative.js';
import { phaseProcedures } from './routers/phase.js';
import { phaseDispatchProcedures } from './routers/phase-dispatch.js';
import { architectProcedures } from './routers/architect.js';
import { projectProcedures } from './routers/project.js';
import { pageProcedures } from './routers/page.js';
import { accountProcedures } from './routers/account.js';
import { changeSetProcedures } from './routers/change-set.js';
import { subscriptionProcedures } from './routers/subscription.js';
import { previewProcedures } from './routers/preview.js';
import { conversationProcedures } from './routers/conversation.js';
import { chatSessionProcedures } from './routers/chat-session.js';
import { headquartersProcedures } from './routers/headquarters.js';
// Re-export tRPC primitives (preserves existing import paths)
export { router, publicProcedure, middleware, createCallerFactory } from './trpc.js';
// Re-export schemas and types from domain routers
export {
healthResponseSchema,
processInfoSchema,
statusResponseSchema,
} from './routers/system.js';
export type { HealthResponse, StatusResponse, ProcessInfo } from './routers/system.js';
export {
spawnAgentInputSchema,
agentIdentifierSchema,
resumeAgentInputSchema,
} from './routers/agent.js';
export type { SpawnAgentInput, AgentIdentifier, ResumeAgentInput } from './routers/agent.js';
// Application router
export const appRouter = router({
...systemProcedures(publicProcedure),
...agentProcedures(publicProcedure),
...taskProcedures(publicProcedure),
...messageProcedures(publicProcedure),
...dispatchProcedures(publicProcedure),
...coordinationProcedures(publicProcedure),
...initiativeProcedures(publicProcedure),
...phaseProcedures(publicProcedure),
...phaseDispatchProcedures(publicProcedure),
...architectProcedures(publicProcedure),
...projectProcedures(publicProcedure),
...pageProcedures(publicProcedure),
...accountProcedures(publicProcedure),
...changeSetProcedures(publicProcedure),
...subscriptionProcedures(publicProcedure),
...previewProcedures(publicProcedure),
...conversationProcedures(publicProcedure),
...chatSessionProcedures(publicProcedure),
...headquartersProcedures(publicProcedure),
});
export type AppRouter = typeof appRouter;