fixture.ts 1.7 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748
  1. import { AgentV2 } from "@opencode-ai/core/agent"
  2. import { Catalog } from "@opencode-ai/core/catalog"
  3. import { CommandV2 } from "@opencode-ai/core/command"
  4. import { Credential } from "@opencode-ai/core/credential"
  5. import { EventV2 } from "@opencode-ai/core/event"
  6. import { FileSystem } from "@opencode-ai/core/filesystem"
  7. import { FSUtil } from "@opencode-ai/core/fs-util"
  8. import { Global } from "@opencode-ai/core/global"
  9. import { Npm } from "@opencode-ai/core/npm"
  10. import { PluginV2 } from "@opencode-ai/core/plugin"
  11. import { Reference } from "@opencode-ai/core/reference"
  12. import { RepositoryCache } from "@opencode-ai/core/repository-cache"
  13. import { Ripgrep } from "@opencode-ai/core/ripgrep"
  14. import { SkillV2 } from "@opencode-ai/core/skill"
  15. import { SkillDiscovery } from "@opencode-ai/core/skill/discovery"
  16. import { Effect, Layer } from "effect"
  17. import { tempLocationLayer } from "../fixture/location"
  18. export const PluginTestLayer = Layer.mergeAll(
  19. AgentV2.locationLayer,
  20. CommandV2.locationLayer,
  21. Catalog.locationLayer,
  22. FileSystem.locationLayer,
  23. PluginV2.locationLayer,
  24. Reference.locationLayer,
  25. SkillV2.locationLayer,
  26. ).pipe(
  27. Layer.provideMerge(
  28. Layer.mergeAll(
  29. Credential.defaultLayer,
  30. EventV2.defaultLayer,
  31. FSUtil.defaultLayer,
  32. Global.defaultLayer,
  33. Layer.succeed(
  34. Npm.Service,
  35. Npm.Service.of({
  36. add: () => Effect.succeed({ directory: "", entrypoint: undefined }),
  37. install: () => Effect.void,
  38. which: () => Effect.succeed(undefined),
  39. }),
  40. ),
  41. RepositoryCache.defaultLayer,
  42. SkillDiscovery.defaultLayer,
  43. Ripgrep.defaultLayer,
  44. tempLocationLayer,
  45. ),
  46. ),
  47. )