openAgent
gitlabThe open source UNIVERSAL agent.
clone
https://gitlab.com/bitzzdev/openAgent.gitAIagentautomationopen-sourceuniversal-agent
export * as Skill from "./skill"import { Schema } from "effect"import { optional } from "./schema"import { AbsolutePath } from "./schema"export interface DirectorySource extends Schema.Schema.Type<typeof DirectorySource> {}export const DirectorySource = Schema.Struct({type: Schema.Literal("directory"),path: AbsolutePath,}).annotate({ identifier: "SkillV2.DirectorySource" })export interface UrlSource extends Schema.Schema.Type<typeof UrlSource> {}export const UrlSource = Schema.Struct({type: Schema.Literal("url"),url: Schema.String,}).annotate({ identifier: "SkillV2.UrlSource" })export interface Info extends Schema.Schema.Type<typeof Info> {}export const Info = Schema.Struct({name: Schema.String,description: Schema.String.pipe(optional),slash: Schema.Boolean.pipe(optional),location: AbsolutePath,content: Schema.String,}).annotate({ identifier: "SkillV2.Info" })export interface EmbeddedSource extends Schema.Schema.Type<typeof EmbeddedSource> {}export const EmbeddedSource = Schema.Struct({type: Schema.Literal("embedded"),skill: Schema.suspend(() => Info),}).annotate({ identifier: "SkillV2.EmbeddedSource" })export type Source = DirectorySource | UrlSource | EmbeddedSourceexport const Source = Object.assign(Schema.Union([DirectorySource, UrlSource, EmbeddedSource]).pipe(Schema.toTaggedUnion("type"),Schema.annotate({ identifier: "SkillV2.Source" }),),{equals: (a: Source, b: Source) => {if (a.type !== b.type) return falseif (a.type === "directory" && b.type === "directory") return a.path === b.pathif (a.type === "url" && b.type === "url") return a.url === b.urlif (a.type === "embedded" && b.type === "embedded") return a.skill.name === b.skill.namereturn false},key: (source: Source) =>source.type === "directory"? `directory:${source.path}`: source.type === "url"? `url:${source.url}`: `embedded:${source.skill.name}`,},)