openAgent
gitlabThe open source UNIVERSAL agent.
clone
https://gitlab.com/bitzzdev/openAgent.gitAIagentautomationopen-sourceuniversal-agent
import { Context, Effect, Layer } from "effect"import { Info, Ref, response } from "@opencode-ai/schema/location"import { Project } from "./project"import { LayerNode } from "./effect/layer-node"import { makeLocationNode, tags } from "./effect/app-node"export * as Location from "./location"export { Info, Ref, response }export interface Interface extends Info {readonly vcs?: Project.Vcs}export class Service extends Context.Service<Service, Interface>()("@opencode/Location") {}export const node = LayerNode.unbound(Service, tags.values.location)const layer = (ref: Ref) =>Layer.effect(Service,Effect.gen(function* () {const project = yield* Project.Serviceconst resolved = yield* project.resolve(ref.directory)return Service.of({directory: ref.directory,workspaceID: ref.workspaceID,project: { id: resolved.id, directory: resolved.directory },vcs: resolved.vcs,})}),)export const boundNode = (ref: Ref) =>makeLocationNode({service: Service,layer: layer(ref),deps: [Project.node],})