import { SessionV2 } from "@opencode-ai/core/session" import { LocationServiceMap } from "@opencode-ai/core/location-layer" import { PermissionSaved } from "@opencode-ai/core/permission/saved" import { Layer } from "effect" import { layer as locationLayer } from "./groups/location" import { sessionLocationLayer } from "./middleware/session-location" import { MessageHandler } from "./handlers/message" import { ModelHandler } from "./handlers/model" import { ProviderHandler } from "./handlers/provider" import { SessionHandler } from "./handlers/session" import { PermissionHandler } from "./handlers/permission" import { FileSystemHandler } from "./handlers/fs" import { CommandHandler } from "./handlers/command" import { SkillHandler } from "./handlers/skill" import { EventHandler } from "./handlers/event" import { AgentHandler } from "./handlers/agent" import { HealthHandler } from "./handlers/health" import { QuestionHandler } from "./handlers/question" import * as SessionExecutionLocal from "@opencode-ai/core/session/execution/local" export const handlers = Layer.mergeAll( HealthHandler, AgentHandler, SessionHandler, MessageHandler, ModelHandler, ProviderHandler, PermissionHandler, FileSystemHandler, CommandHandler, SkillHandler, EventHandler, QuestionHandler, ).pipe( Layer.provide(sessionLocationLayer), Layer.provide(locationLayer), Layer.provide(SessionV2.defaultLayer), Layer.provide(SessionExecutionLocal.defaultLayer), Layer.provide(PermissionSaved.defaultLayer), Layer.provide(LocationServiceMap.layer), )