handlers.ts 2.2 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657
  1. import { SessionV2 } from "@opencode-ai/core/session"
  2. import { LocationServiceMap } from "@opencode-ai/core/location-layer"
  3. import { PermissionSaved } from "@opencode-ai/core/permission/saved"
  4. import { Layer } from "effect"
  5. import { layer as v2LocationLayer } from "./groups/v2/location"
  6. import { messageHandlers } from "./handlers/v2/message"
  7. import { modelHandlers } from "./handlers/v2/model"
  8. import { providerHandlers } from "./handlers/v2/provider"
  9. import { sessionHandlers } from "./handlers/v2/session"
  10. import { permissionHandlers, savedPermissionHandlers, sessionPermissionHandlers } from "./handlers/v2/permission"
  11. import { fileSystemHandlers } from "./handlers/v2/fs"
  12. import { commandHandlers } from "./handlers/v2/command"
  13. import { skillHandlers } from "./handlers/v2/skill"
  14. import { eventHandlers } from "./handlers/v2/event"
  15. import { agentHandlers } from "./handlers/v2/agent"
  16. import { healthHandlers } from "./handlers/v2/health"
  17. import { questionHandlers, sessionQuestionHandlers } from "./handlers/v2/question"
  18. import { Database } from "@opencode-ai/core/database/database"
  19. import { EventV2 } from "@opencode-ai/core/event"
  20. import { ProjectV2 } from "@opencode-ai/core/project"
  21. import * as SessionExecutionLocal from "@opencode-ai/core/session/execution/local"
  22. import { SessionProjector } from "@opencode-ai/core/session/projector"
  23. import { SessionStore } from "@opencode-ai/core/session/store"
  24. const routedSessions = SessionV2.layer.pipe(
  25. Layer.provide(SessionProjector.layer),
  26. Layer.provide(SessionExecutionLocal.layer),
  27. Layer.provide(LocationServiceMap.layer),
  28. Layer.provide(SessionStore.layer),
  29. Layer.provide(EventV2.layer),
  30. Layer.provide(Database.defaultLayer),
  31. Layer.provide(ProjectV2.defaultLayer),
  32. Layer.orDie,
  33. )
  34. export const v2Handlers = Layer.mergeAll(
  35. healthHandlers,
  36. agentHandlers,
  37. sessionHandlers,
  38. messageHandlers,
  39. modelHandlers,
  40. providerHandlers,
  41. permissionHandlers,
  42. sessionPermissionHandlers,
  43. savedPermissionHandlers,
  44. fileSystemHandlers,
  45. commandHandlers,
  46. skillHandlers,
  47. eventHandlers,
  48. questionHandlers,
  49. sessionQuestionHandlers,
  50. ).pipe(
  51. Layer.provide(v2LocationLayer),
  52. Layer.provide(LocationServiceMap.layer),
  53. Layer.provide(PermissionSaved.layer),
  54. Layer.provide(routedSessions),
  55. )