opencode/packages/core/src/location-layer.ts

22 lines
747 B
TypeScript
Raw Normal View History

import { Layer, LayerMap } from "effect"
import { Location } from "./location"
import { Catalog } from "./catalog"
import { PluginBoot } from "./plugin/boot"
import { Policy } from "./policy"
import { Config } from "./config"
import { AgentV2 } from "./agent"
export class LocationServiceMap extends LayerMap.Service<LocationServiceMap>()("@opencode/example/LocationServiceMap", {
lookup: (ref: Location.Ref) => {
const result = Layer.mergeAll(
Catalog.defaultLayer,
PluginBoot.defaultLayer,
Config.defaultLayer,
AgentV2.defaultLayer,
).pipe(Layer.provideMerge(Policy.defaultLayer), Layer.provideMerge(Location.defaultLayer(ref)))
return result
},
idleTimeToLive: "60 minutes",
dependencies: [],
}) {}