plugin.ts 898 B

123456789101112131415161718192021222324252627
  1. import { Location } from "@opencode-ai/schema/location"
  2. import { Plugin } from "@opencode-ai/schema/plugin"
  3. import { Schema } from "effect"
  4. import { HttpApiEndpoint, HttpApiGroup, OpenApi } from "effect/unstable/httpapi"
  5. import { LocationQuery, locationQueryOpenApi } from "./location.js"
  6. export const PluginGroup = HttpApiGroup.make("server.plugin")
  7. .add(
  8. HttpApiEndpoint.get("plugin.list", "/api/plugin", {
  9. query: LocationQuery,
  10. success: Location.response(Schema.Array(Plugin.Info)),
  11. })
  12. .annotateMerge(locationQueryOpenApi)
  13. .annotateMerge(
  14. OpenApi.annotations({
  15. identifier: "v2.plugin.list",
  16. summary: "List plugins",
  17. description: "Retrieve currently loaded plugins.",
  18. }),
  19. ),
  20. )
  21. .annotateMerge(
  22. OpenApi.annotations({
  23. title: "plugins",
  24. description: "Experimental plugin routes.",
  25. }),
  26. )