fixture.ts 2.1 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960
  1. import { AgentV2 } from "@opencode-ai/core/agent"
  2. import { AISDK } from "@opencode-ai/core/aisdk"
  3. import { Catalog } from "@opencode-ai/core/catalog"
  4. import { CommandV2 } from "@opencode-ai/core/command"
  5. import { Credential } from "@opencode-ai/core/credential"
  6. import { AppNodeBuilder } from "@opencode-ai/core/effect/app-node-builder"
  7. import { LayerNodePlatform } from "@opencode-ai/util/effect/app-node-platform"
  8. import { LayerNode } from "@opencode-ai/util/effect/layer-node"
  9. import { EventV2 } from "@opencode-ai/core/event"
  10. import { FileSystem } from "@opencode-ai/core/filesystem"
  11. import { FSUtil } from "@opencode-ai/util/fs-util"
  12. import { Integration } from "@opencode-ai/core/integration"
  13. import { Location } from "@opencode-ai/core/location"
  14. import { Npm } from "@opencode-ai/util/npm"
  15. import { PluginV2 } from "@opencode-ai/core/plugin"
  16. import { PluginHooks } from "@opencode-ai/core/plugin/hooks"
  17. import { PluginRuntime } from "@opencode-ai/core/plugin/runtime"
  18. import { Reference } from "@opencode-ai/core/reference"
  19. import { SkillV2 } from "@opencode-ai/core/skill"
  20. import { ToolHooks } from "@opencode-ai/core/tool/hooks"
  21. import { ToolRegistry } from "@opencode-ai/core/tool/registry"
  22. import { Effect, Layer } from "effect"
  23. import { tempLocationLayer } from "../fixture/location"
  24. const npmLayer = Layer.succeed(
  25. Npm.Service,
  26. Npm.Service.of({
  27. add: () => Effect.succeed({ directory: "", entrypoint: undefined }),
  28. install: () => Effect.void,
  29. which: () => Effect.succeed(undefined),
  30. }),
  31. )
  32. export const PluginTestLayer = AppNodeBuilder.build(
  33. LayerNode.group([
  34. FileSystem.node,
  35. FSUtil.node,
  36. Location.node,
  37. Npm.node,
  38. Credential.node,
  39. EventV2.node,
  40. LayerNodePlatform.httpClient,
  41. PluginV2.node,
  42. AgentV2.node,
  43. AISDK.node,
  44. Catalog.node,
  45. CommandV2.node,
  46. Integration.node,
  47. PluginRuntime.node,
  48. PluginHooks.node,
  49. Reference.node,
  50. SkillV2.node,
  51. ToolHooks.node,
  52. ToolRegistry.toolsNode,
  53. ]),
  54. [
  55. [Location.node, tempLocationLayer],
  56. [Npm.node, npmLayer],
  57. ],
  58. ) as unknown as Layer.Layer<unknown, never>