mcp.ts 1.0 KB

123456789101112131415161718192021222324252627
  1. import { Effect, Layer } from "effect"
  2. import { Config } from "@opencode-ai/core/config"
  3. import { Location } from "@opencode-ai/core/location"
  4. import { MCP } from "@opencode-ai/core/mcp/index"
  5. import { AbsolutePath } from "@opencode-ai/core/schema"
  6. import { location } from "./location"
  7. export const emptyMcpLayer = Layer.succeed(
  8. MCP.Service,
  9. MCP.Service.of({
  10. servers: () => Effect.succeed([]),
  11. tools: () => Effect.succeed([]),
  12. callTool: () => Effect.die("unused mcp.callTool"),
  13. instructions: () => Effect.succeed([]),
  14. prompts: () => Effect.succeed([]),
  15. prompt: () => Effect.succeed(undefined),
  16. resourceCatalog: () => Effect.succeed(MCP.ResourceCatalog.make({ resources: [], templates: [] })),
  17. readResource: () => Effect.succeed(undefined),
  18. }),
  19. )
  20. export const emptyConfigLayer = Layer.succeed(Config.Service, Config.Service.of({ entries: () => Effect.succeed([]) }))
  21. export const testLocationLayer = Layer.succeed(
  22. Location.Service,
  23. Location.Service.of(location({ directory: AbsolutePath.make(process.cwd()) })),
  24. )