fixture.ts 2.2 KB

1234567891011121314151617181920212223242526272829303132333435363738394041424344454647484950515253545556575859606162636465
  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 { Tool } from "@opencode-ai/core/tool"
  23. import { WebSearch } from "@opencode-ai/core/websearch"
  24. import { Effect, Layer, Stream } from "effect"
  25. import { tempLocationLayer } from "../fixture/location"
  26. const npmLayer = Layer.succeed(
  27. Npm.Service,
  28. Npm.Service.of({
  29. add: () => Effect.succeed({ directory: "", entrypoint: undefined }),
  30. install: () => Effect.void,
  31. which: () => Effect.succeed(undefined),
  32. }),
  33. )
  34. export const PluginTestLayer = AppNodeBuilder.build(
  35. LayerNode.group([
  36. FileSystem.node,
  37. FSUtil.node,
  38. Location.node,
  39. Npm.node,
  40. Credential.node,
  41. Bus.node,
  42. Form.node,
  43. LayerNodePlatform.httpClient,
  44. Plugin.node,
  45. Agent.node,
  46. AISDK.node,
  47. Catalog.node,
  48. Command.node,
  49. Integration.node,
  50. PluginRuntime.node,
  51. PluginHooks.node,
  52. Reference.node,
  53. Skill.node,
  54. PluginHooks.node,
  55. Tool.node,
  56. WebSearch.node,
  57. ]),
  58. [
  59. [Location.node, tempLocationLayer],
  60. [Npm.node, npmLayer],
  61. [Config.node, Config.testLayer()],
  62. ],
  63. ) as unknown as Layer.Layer<unknown, never>