fixture.ts 2.3 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869
  1. import { Agent } from "@opencode-ai/core/agent"
  2. import { AISDK } from "@opencode-ai/core/aisdk"
  3. import { Catalog } from "@opencode-ai/core/catalog"
  4. import { Command } from "@opencode-ai/core/command"
  5. import { Config } from "@opencode-ai/core/config"
  6. import { Credential } from "@opencode-ai/core/credential"
  7. import { AppNodeBuilder } from "@opencode-ai/core/effect/app-node-builder"
  8. import { LayerNodePlatform } from "@opencode-ai/util/effect/app-node-platform"
  9. import { LayerNode } from "@opencode-ai/util/effect/layer-node"
  10. import { Bus } from "@opencode-ai/core/bus"
  11. import { FileSystem } from "@opencode-ai/core/filesystem"
  12. import { FSUtil } from "@opencode-ai/util/fs-util"
  13. import { Form } from "@opencode-ai/core/form"
  14. import { Integration } from "@opencode-ai/core/integration"
  15. import { Location } from "@opencode-ai/core/location"
  16. import { Npm } from "@opencode-ai/util/npm"
  17. import { Plugin } from "@opencode-ai/core/plugin"
  18. import { PluginHooks } from "@opencode-ai/core/plugin/hooks"
  19. import { PluginRuntime } from "@opencode-ai/core/plugin/runtime"
  20. import { Reference } from "@opencode-ai/core/reference"
  21. import { Skill } from "@opencode-ai/core/skill"
  22. import { SkillDiscovery } from "@opencode-ai/core/skill/discovery"
  23. import { Watcher } from "@opencode-ai/core/filesystem/watcher"
  24. import { Tool } from "@opencode-ai/core/tool"
  25. import { WebSearch } from "@opencode-ai/core/websearch"
  26. import { Effect, Layer } from "effect"
  27. import { tempLocationLayer } from "../fixture/location"
  28. const npmLayer = Layer.succeed(
  29. Npm.Service,
  30. Npm.Service.of({
  31. add: () => Effect.succeed({ directory: "", entrypoint: undefined }),
  32. install: () => Effect.void,
  33. which: () => Effect.succeed(undefined),
  34. }),
  35. )
  36. export const PluginTestLayer = AppNodeBuilder.build(
  37. LayerNode.group([
  38. FileSystem.node,
  39. FSUtil.node,
  40. Location.node,
  41. Npm.node,
  42. Credential.node,
  43. Bus.node,
  44. Form.node,
  45. LayerNodePlatform.httpClient,
  46. Plugin.node,
  47. Agent.node,
  48. AISDK.node,
  49. Catalog.node,
  50. Command.node,
  51. Integration.node,
  52. PluginRuntime.node,
  53. PluginHooks.node,
  54. Reference.node,
  55. Skill.node,
  56. SkillDiscovery.node,
  57. PluginHooks.node,
  58. Tool.node,
  59. Watcher.node,
  60. WebSearch.node,
  61. ]),
  62. [
  63. [Location.node, tempLocationLayer],
  64. [Npm.node, npmLayer],
  65. [Config.node, Config.testLayer()],
  66. ],
  67. ) as unknown as Layer.Layer<unknown, never>