Submatter/apps/web/server/root.ts
Randall Stillwell 6ccb060bea feat(second-brain): open self-hosted Obsidian for crews — harness-agnostic v0.1
- MCP create-backlog-item for natural language Plan/Epic/Task authoring
- Worker non-code: optional worktree + per-harness allowlist + doc_review→published
- Harness registry: harness_providers/role_harness_routes, WorkerAdapter (minimal|crewai|langgraph|remote-ag-ui), AG-UI POST /api/ag-ui, Settings → Harnesses with Test
- Plans tree: backlog.listTree + createPlan/Epic/Task + Start→Convoy, web CRUD without CLI
- Fleet: /fleet rollup across workspaces + SSE /api/fleet/events

Decision: docs/decisions/2026-08-25-second-brain-os-pivot.md
Convoy: .convoys/second-brain-os-v01

Co-authored-by: orchestrator
2026-08-25 16:20:53 -05:00

46 lines
1.8 KiB
TypeScript

import { router, createCallerFactory } from "@/server/trpc";
import { healthRouter } from "@/server/routers/health";
import { objectsRouter } from "@/server/routers/objects";
import { propertiesRouter } from "@/server/routers/properties";
import { relationsRouter } from "@/server/routers/relations";
import { aiRouter } from "@/server/routers/ai";
import { templatesRouter } from "@/server/routers/templates";
import { searchRouter } from "@/server/routers/search";
import { workspacesRouter } from "@/server/routers/workspaces";
import { typesRouter } from "@/server/routers/types";
import { formsRouter } from "@/server/routers/forms";
import { favoritesRouter } from "@/server/routers/favorites";
import { identityRouter } from "@/server/routers/identity";
import { invitesRouter } from "@/server/routers/invites";
import { auditRouter } from "@/server/routers/audit";
import { runsRouter } from "@/server/routers/runs";
import { backlogRouter } from "@/server/routers/backlog";
import { connectedReposRouter } from "@/server/routers/connected-repos";
import { convoysRouter } from "@/server/routers/convoys";
import { harnessesRouter } from "@/server/routers/harnesses";
export const appRouter = router({
health: healthRouter,
workspaces: workspacesRouter,
types: typesRouter,
objects: objectsRouter,
properties: propertiesRouter,
relations: relationsRouter,
ai: aiRouter,
templates: templatesRouter,
search: searchRouter,
forms: formsRouter,
favorites: favoritesRouter,
identity: identityRouter,
invites: invitesRouter,
audit: auditRouter,
runs: runsRouter,
backlog: backlogRouter,
connectedRepos: connectedReposRouter,
convoys: convoysRouter,
harnesses: harnessesRouter,
});
export type AppRouter = typeof appRouter;
export const createCaller = createCallerFactory(appRouter);