/
Alex_Ural
/
opencode
Обзор
Документация
Войти
/
Alex_Ural
/
opencode
Код
Запросы
0
Задачи
Вики
Пакеты
0
Релизы
0
Аналитика
Безопасность
dev
packages/schema/src/agent.ts
38 строк
1 KB
Kit Langton
refactor(schema): tighten public contracts (#33771)
25 июн 2026, 20:10
Не верифицирован
25 июн 2026, 20:10
9e9d405
Код
Авторство
О чём код?
export * as Agent from "./agent" import { Schema } from "effect" import { optional } from "./schema" import { Model } from "./model" import { Permission } from "./permission" import { Provider } from "./provider" import { PositiveInt, statics } from "./schema" export const ID = Schema.String.pipe(Schema.brand("AgentV2.ID")) export type ID = typeof ID.Type export const Color = Schema.Union([ Schema.String.check(Schema.isPattern(/^#[0-9a-fA-F]{6}$/)), Schema.Literals(["primary", "secondary", "accent", "success", "warning", "error", "info"]), ]).annotate({ identifier: "Agent.Color" }) export type Color = typeof Color.Type export interface Info extends Schema.Schema.Type<typeof Info> {} export const Info = Schema.Struct({ id: ID, model: Model.Ref.pipe(optional), request: Provider.Request, system: Schema.String.pipe(optional), description: Schema.String.pipe(optional), mode: Schema.Literals(["subagent", "primary", "all"]), hidden: Schema.Boolean, color: Color.pipe(optional), steps: PositiveInt.pipe(optional), permissions: Permission.Ruleset, }) .annotate({ identifier: "AgentV2.Info" }) .pipe( statics((schema) => ({ empty: (id: ID) => schema.make({ id, request: { headers: {}, body: {} }, mode: "all", hidden: false, permissions: [] }), })), )