// This file is generated automatically by Next.js // Do not edit this file manually type AppRoutes = "/" | "/login" | "/more" | "/offline" | "/repositories" | "/review" | "/sessions" | "/skills" | "/skills/[skillId]" | "/skills/installed" | "/worktrees/[id]" | "/worktrees/[id]/files/[...path]" | "/worktrees/[id]/terminal" type AppRouteHandlerRoutes = "/api/agents/update" | "/api/agents/versions" | "/api/app/release-notes" | "/api/app/update" | "/api/app/update-check" | "/api/auth/login" | "/api/auth/logout" | "/api/auth/status" | "/api/capabilities" | "/api/daily-summary" | "/api/daily-summary/status" | "/api/external-apps" | "/api/external-apps/[id]" | "/api/external-apps/[id]/health" | "/api/fs/browse" | "/api/fs/recent-paths" | "/api/hooks/agent-event" | "/api/hooks/claude-done" | "/api/hooks/permission-request" | "/api/metrics/vibe" | "/api/ollama/models" | "/api/push/escalation" | "/api/push/subscriptions" | "/api/push/vapid" | "/api/relays" | "/api/relays/[relayId]/cancel" | "/api/remote/pair" | "/api/repositories" | "/api/repositories/[id]" | "/api/repositories/clone" | "/api/repositories/clone/[jobId]" | "/api/repositories/excluded" | "/api/repositories/restore" | "/api/repositories/scan" | "/api/repositories/sync" | "/api/repositories/validate-path" | "/api/settings/default-agents" | "/api/settings/default-surface-mode" | "/api/sidebar/group-order" | "/api/skills" | "/api/skills/[id]" | "/api/skills/installations" | "/api/skills/operations" | "/api/skills/reindex" | "/api/slash-commands" | "/api/tasks/[taskId]" | "/api/tasks/[taskId]/cancel" | "/api/templates" | "/api/templates/[id]" | "/api/verification/runs" | "/api/verification/runs/[runId]" | "/api/worktrees" | "/api/worktrees/[id]" | "/api/worktrees/[id]/auto-yes" | "/api/worktrees/[id]/capture" | "/api/worktrees/[id]/clear-composer" | "/api/worktrees/[id]/cli-reference" | "/api/worktrees/[id]/cli-tool" | "/api/worktrees/[id]/cmate/schedules" | "/api/worktrees/[id]/current-output" | "/api/worktrees/[id]/direct-input" | "/api/worktrees/[id]/env" | "/api/worktrees/[id]/execution-logs" | "/api/worktrees/[id]/execution-logs/[logId]" | "/api/worktrees/[id]/files/[...path]" | "/api/worktrees/[id]/git/branch/create" | "/api/worktrees/[id]/git/branch/delete" | "/api/worktrees/[id]/git/branches" | "/api/worktrees/[id]/git/checkout" | "/api/worktrees/[id]/git/commit" | "/api/worktrees/[id]/git/diff" | "/api/worktrees/[id]/git/fetch" | "/api/worktrees/[id]/git/log" | "/api/worktrees/[id]/git/pull" | "/api/worktrees/[id]/git/push" | "/api/worktrees/[id]/git/reset" | "/api/worktrees/[id]/git/revert" | "/api/worktrees/[id]/git/show/[commitHash]" | "/api/worktrees/[id]/git/stage" | "/api/worktrees/[id]/git/staged" | "/api/worktrees/[id]/git/stash" | "/api/worktrees/[id]/git/stash/[index]" | "/api/worktrees/[id]/git/stash/apply" | "/api/worktrees/[id]/git/stash/pop" | "/api/worktrees/[id]/git/stash/push" | "/api/worktrees/[id]/git/status" | "/api/worktrees/[id]/git/unstage" | "/api/worktrees/[id]/git/working-diff" | "/api/worktrees/[id]/instances/notes" | "/api/worktrees/[id]/instances/opencode" | "/api/worktrees/[id]/interrupt" | "/api/worktrees/[id]/kill-session" | "/api/worktrees/[id]/logs" | "/api/worktrees/[id]/logs/[filename]" | "/api/worktrees/[id]/marp-render" | "/api/worktrees/[id]/memos" | "/api/worktrees/[id]/memos/[memoId]" | "/api/worktrees/[id]/messages" | "/api/worktrees/[id]/opencode/diff" | "/api/worktrees/[id]/opencode/session" | "/api/worktrees/[id]/opencode/share" | "/api/worktrees/[id]/prompt-response" | "/api/worktrees/[id]/resolve-target" | "/api/worktrees/[id]/respond" | "/api/worktrees/[id]/schedules" | "/api/worktrees/[id]/schedules/[scheduleId]" | "/api/worktrees/[id]/schedules/active" | "/api/worktrees/[id]/search" | "/api/worktrees/[id]/send" | "/api/worktrees/[id]/skills" | "/api/worktrees/[id]/skills/[skillId]/git-workflow" | "/api/worktrees/[id]/skills/[skillId]/install" | "/api/worktrees/[id]/skills/[skillId]/plan" | "/api/worktrees/[id]/skills/[skillId]/uninstall" | "/api/worktrees/[id]/skills/[skillId]/uninstall-plan" | "/api/worktrees/[id]/skills/[skillId]/update" | "/api/worktrees/[id]/skills/[skillId]/update-plan" | "/api/worktrees/[id]/slash-commands" | "/api/worktrees/[id]/special-keys" | "/api/worktrees/[id]/tasks" | "/api/worktrees/[id]/terminal" | "/api/worktrees/[id]/timers" | "/api/worktrees/[id]/timers/history" | "/api/worktrees/[id]/todos" | "/api/worktrees/[id]/todos/[todoId]" | "/api/worktrees/[id]/tree" | "/api/worktrees/[id]/tree/[...path]" | "/api/worktrees/[id]/upload/[...path]" | "/api/worktrees/[id]/verify" | "/api/worktrees/[id]/verify/config" | "/api/worktrees/[id]/verify/runs" | "/api/worktrees/[id]/verify/runs/[runId]" | "/api/worktrees/[id]/verify/runs/[runId]/cancel" | "/api/worktrees/[id]/viewed" | "/api/worktrees/apply-default-agents" | "/proxy/[...path]" type PageRoutes = never type LayoutRoutes = "/" | "/worktrees/[id]" type RedirectRoutes = never type RewriteRoutes = never type Routes = AppRoutes | PageRoutes | LayoutRoutes | RedirectRoutes | RewriteRoutes | AppRouteHandlerRoutes interface ParamMap { "/": {} "/api/agents/update": {} "/api/agents/versions": {} "/api/app/release-notes": {} "/api/app/update": {} "/api/app/update-check": {} "/api/auth/login": {} "/api/auth/logout": {} "/api/auth/status": {} "/api/capabilities": {} "/api/daily-summary": {} "/api/daily-summary/status": {} "/api/external-apps": {} "/api/external-apps/[id]": { "id": string; } "/api/external-apps/[id]/health": { "id": string; } "/api/fs/browse": {} "/api/fs/recent-paths": {} "/api/hooks/agent-event": {} "/api/hooks/claude-done": {} "/api/hooks/permission-request": {} "/api/metrics/vibe": {} "/api/ollama/models": {} "/api/push/escalation": {} "/api/push/subscriptions": {} "/api/push/vapid": {} "/api/relays": {} "/api/relays/[relayId]/cancel": { "relayId": string; } "/api/remote/pair": {} "/api/repositories": {} "/api/repositories/[id]": { "id": string; } "/api/repositories/clone": {} "/api/repositories/clone/[jobId]": { "jobId": string; } "/api/repositories/excluded": {} "/api/repositories/restore": {} "/api/repositories/scan": {} "/api/repositories/sync": {} "/api/repositories/validate-path": {} "/api/settings/default-agents": {} "/api/settings/default-surface-mode": {} "/api/sidebar/group-order": {} "/api/skills": {} "/api/skills/[id]": { "id": string; } "/api/skills/installations": {} "/api/skills/operations": {} "/api/skills/reindex": {} "/api/slash-commands": {} "/api/tasks/[taskId]": { "taskId": string; } "/api/tasks/[taskId]/cancel": { "taskId": string; } "/api/templates": {} "/api/templates/[id]": { "id": string; } "/api/verification/runs": {} "/api/verification/runs/[runId]": { "runId": string; } "/api/worktrees": {} "/api/worktrees/[id]": { "id": string; } "/api/worktrees/[id]/auto-yes": { "id": string; } "/api/worktrees/[id]/capture": { "id": string; } "/api/worktrees/[id]/clear-composer": { "id": string; } "/api/worktrees/[id]/cli-reference": { "id": string; } "/api/worktrees/[id]/cli-tool": { "id": string; } "/api/worktrees/[id]/cmate/schedules": { "id": string; } "/api/worktrees/[id]/current-output": { "id": string; } "/api/worktrees/[id]/direct-input": { "id": string; } "/api/worktrees/[id]/env": { "id": string; } "/api/worktrees/[id]/execution-logs": { "id": string; } "/api/worktrees/[id]/execution-logs/[logId]": { "id": string; "logId": string; } "/api/worktrees/[id]/files/[...path]": { "id": string; "path": string[]; } "/api/worktrees/[id]/git/branch/create": { "id": string; } "/api/worktrees/[id]/git/branch/delete": { "id": string; } "/api/worktrees/[id]/git/branches": { "id": string; } "/api/worktrees/[id]/git/checkout": { "id": string; } "/api/worktrees/[id]/git/commit": { "id": string; } "/api/worktrees/[id]/git/diff": { "id": string; } "/api/worktrees/[id]/git/fetch": { "id": string; } "/api/worktrees/[id]/git/log": { "id": string; } "/api/worktrees/[id]/git/pull": { "id": string; } "/api/worktrees/[id]/git/push": { "id": string; } "/api/worktrees/[id]/git/reset": { "id": string; } "/api/worktrees/[id]/git/revert": { "id": string; } "/api/worktrees/[id]/git/show/[commitHash]": { "id": string; "commitHash": string; } "/api/worktrees/[id]/git/stage": { "id": string; } "/api/worktrees/[id]/git/staged": { "id": string; } "/api/worktrees/[id]/git/stash": { "id": string; } "/api/worktrees/[id]/git/stash/[index]": { "id": string; "index": string; } "/api/worktrees/[id]/git/stash/apply": { "id": string; } "/api/worktrees/[id]/git/stash/pop": { "id": string; } "/api/worktrees/[id]/git/stash/push": { "id": string; } "/api/worktrees/[id]/git/status": { "id": string; } "/api/worktrees/[id]/git/unstage": { "id": string; } "/api/worktrees/[id]/git/working-diff": { "id": string; } "/api/worktrees/[id]/instances/notes": { "id": string; } "/api/worktrees/[id]/instances/opencode": { "id": string; } "/api/worktrees/[id]/interrupt": { "id": string; } "/api/worktrees/[id]/kill-session": { "id": string; } "/api/worktrees/[id]/logs": { "id": string; } "/api/worktrees/[id]/logs/[filename]": { "id": string; "filename": string; } "/api/worktrees/[id]/marp-render": { "id": string; } "/api/worktrees/[id]/memos": { "id": string; } "/api/worktrees/[id]/memos/[memoId]": { "id": string; "memoId": string; } "/api/worktrees/[id]/messages": { "id": string; } "/api/worktrees/[id]/opencode/diff": { "id": string; } "/api/worktrees/[id]/opencode/session": { "id": string; } "/api/worktrees/[id]/opencode/share": { "id": string; } "/api/worktrees/[id]/prompt-response": { "id": string; } "/api/worktrees/[id]/resolve-target": { "id": string; } "/api/worktrees/[id]/respond": { "id": string; } "/api/worktrees/[id]/schedules": { "id": string; } "/api/worktrees/[id]/schedules/[scheduleId]": { "id": string; "scheduleId": string; } "/api/worktrees/[id]/schedules/active": { "id": string; } "/api/worktrees/[id]/search": { "id": string; } "/api/worktrees/[id]/send": { "id": string; } "/api/worktrees/[id]/skills": { "id": string; } "/api/worktrees/[id]/skills/[skillId]/git-workflow": { "id": string; "skillId": string; } "/api/worktrees/[id]/skills/[skillId]/install": { "id": string; "skillId": string; } "/api/worktrees/[id]/skills/[skillId]/plan": { "id": string; "skillId": string; } "/api/worktrees/[id]/skills/[skillId]/uninstall": { "id": string; "skillId": string; } "/api/worktrees/[id]/skills/[skillId]/uninstall-plan": { "id": string; "skillId": string; } "/api/worktrees/[id]/skills/[skillId]/update": { "id": string; "skillId": string; } "/api/worktrees/[id]/skills/[skillId]/update-plan": { "id": string; "skillId": string; } "/api/worktrees/[id]/slash-commands": { "id": string; } "/api/worktrees/[id]/special-keys": { "id": string; } "/api/worktrees/[id]/tasks": { "id": string; } "/api/worktrees/[id]/terminal": { "id": string; } "/api/worktrees/[id]/timers": { "id": string; } "/api/worktrees/[id]/timers/history": { "id": string; } "/api/worktrees/[id]/todos": { "id": string; } "/api/worktrees/[id]/todos/[todoId]": { "id": string; "todoId": string; } "/api/worktrees/[id]/tree": { "id": string; } "/api/worktrees/[id]/tree/[...path]": { "id": string; "path": string[]; } "/api/worktrees/[id]/upload/[...path]": { "id": string; "path": string[]; } "/api/worktrees/[id]/verify": { "id": string; } "/api/worktrees/[id]/verify/config": { "id": string; } "/api/worktrees/[id]/verify/runs": { "id": string; } "/api/worktrees/[id]/verify/runs/[runId]": { "id": string; "runId": string; } "/api/worktrees/[id]/verify/runs/[runId]/cancel": { "id": string; "runId": string; } "/api/worktrees/[id]/viewed": { "id": string; } "/api/worktrees/apply-default-agents": {} "/login": {} "/more": {} "/offline": {} "/proxy/[...path]": { "path": string[]; } "/repositories": {} "/review": {} "/sessions": {} "/skills": {} "/skills/[skillId]": { "skillId": string; } "/skills/installed": {} "/worktrees/[id]": { "id": string; } "/worktrees/[id]/files/[...path]": { "id": string; "path": string[]; } "/worktrees/[id]/terminal": { "id": string; } } export type ParamsOf = ParamMap[Route] interface LayoutSlotMap { "/": never "/worktrees/[id]": never } export type { AppRoutes, PageRoutes, LayoutRoutes, RedirectRoutes, RewriteRoutes, ParamMap, AppRouteHandlerRoutes } declare global { /** * Props for Next.js App Router page components * @example * ```tsx * export default function Page(props: PageProps<'/blog/[slug]'>) { * const { slug } = await props.params * return
Blog post: {slug}
* } * ``` */ interface PageProps { params: Promise searchParams: Promise> } /** * Props for Next.js App Router layout components * @example * ```tsx * export default function Layout(props: LayoutProps<'/dashboard'>) { * return
{props.children}
* } * ``` */ type LayoutProps = { params: Promise children: React.ReactNode } & { [K in LayoutSlotMap[LayoutRoute]]: React.ReactNode } /** * Context for Next.js App Router route handlers * @example * ```tsx * export async function GET(request: NextRequest, context: RouteContext<'/api/users/[id]'>) { * const { id } = await context.params * return Response.json({ id }) * } * ``` */ interface RouteContext { params: Promise } }