openAgent
gitlabThe open source UNIVERSAL agent.
clone
https://gitlab.com/bitzzdev/openAgent.gitAIagentautomationopen-sourceuniversal-agent
export * as Permission from "./permission"import { Schema } from "effect"import { optional } from "./schema"import { define, inventory } from "./event"import { ascending } from "./identifier"import { SessionID } from "./session-id"import { statics } from "./schema"export const ID = Schema.String.check(Schema.isStartsWith("per")).pipe(Schema.brand("PermissionV2.ID"),statics((schema) => ({ create: (id?: string) => schema.make(id ?? "per_" + ascending()) })),)export type ID = typeof ID.Typeexport const Source = Schema.Union([Schema.Struct({type: Schema.Literal("tool"),messageID: Schema.String,callID: Schema.String,}),]).annotate({ identifier: "PermissionV2.Source" })export type Source = typeof Source.Typeconst RequestFields = {sessionID: SessionID,action: Schema.String,resources: Schema.Array(Schema.String),save: Schema.Array(Schema.String).pipe(optional),metadata: Schema.Record(Schema.String, Schema.Unknown).pipe(optional),source: Source.pipe(optional),}export const Request = Schema.Struct({id: ID,...RequestFields,}).annotate({ identifier: "PermissionV2.Request" })export interface Request extends Schema.Schema.Type<typeof Request> {}export const Reply = Schema.Literals(["once", "always", "reject"]).annotate({ identifier: "PermissionV2.Reply" })export type Reply = typeof Reply.Typeconst Asked = define({ type: "permission.v2.asked", schema: Request.fields })const Replied = define({type: "permission.v2.replied",schema: {sessionID: SessionID,requestID: ID,reply: Reply,},})export const Event = { Asked, Replied, Definitions: inventory(Asked, Replied) }export const Effect = Schema.Literals(["allow", "deny", "ask"]).annotate({ identifier: "PermissionV2.Effect" })export type Effect = typeof Effect.Typeexport interface Rule extends Schema.Schema.Type<typeof Rule> {}export const Rule = Schema.Struct({action: Schema.String,resource: Schema.String,effect: Effect,}).annotate({ identifier: "PermissionV2.Rule" })export const Ruleset = Schema.Array(Rule).annotate({ identifier: "PermissionV2.Ruleset" })export type Ruleset = typeof Ruleset.Type