import { Context, Effect, Layer, Schema } from "effect"; import { Tool } from "effect/unstable/ai"; /** @experimental Per-entry description character cap. */ export declare const DESCRIPTION_CAP = 1024; /** @experimental Parsed SKILL.md frontmatter. */ export declare const Frontmatter: Schema.Struct<{ readonly name: Schema.String; readonly description: Schema.String; readonly whenToUse: Schema.optionalKey; readonly allowedTools: Schema.optionalKey>; readonly disableModelInvocation: Schema.optionalKey; readonly userInvocable: Schema.optionalKey; readonly contextFork: Schema.optionalKey; readonly agent: Schema.optionalKey; readonly model: Schema.optionalKey; readonly paths: Schema.optionalKey>; }>; /** @experimental Parsed SKILL.md frontmatter. */ export type Frontmatter = typeof Frontmatter.Type; declare const SkillSourceError_base: Schema.Class; }>, import("effect/Cause").YieldableError>; /** @experimental Skill source operation failed. */ export declare class SkillSourceError extends SkillSourceError_base { } /** @experimental A discovered skill. */ export interface Skill { readonly frontmatter: Frontmatter; readonly listing: string; readonly body: Effect.Effect; readonly tools: ReadonlyArray; /** * Where the skill was found, for a source that reads a filesystem. A host that resolves resources * beside a skill needs the directory it came from rather than one derived from its name, because * a source may find a skill anywhere beneath its root. */ readonly directory?: string; } /** @experimental Skill registry seam. */ export interface Interface { readonly all: Effect.Effect, SkillSourceError>; readonly get: (name: string) => Effect.Effect; } /** @experimental Effect that builds one skill source implementation. */ export type Source = Effect.Effect; declare const SkillSource_base: Context.ServiceClass; /** @experimental */ export declare class SkillSource extends SkillSource_base { } /** @experimental Build a startup listing line from skill frontmatter. */ export declare const makeListing: { (descriptionCap?: number): (frontmatter: Frontmatter) => string; (frontmatter: Frontmatter, descriptionCap?: number): string; }; /** @experimental A source built from in-memory skills. */ export declare const layerSkills: (skills: ReadonlyArray) => Layer.Layer; /** @experimental Empty skill source. */ export declare const layerEmpty: Layer.Layer; /** @experimental */ export declare const layerTest: (implementation: Interface) => Layer.Layer; /** @experimental Merge two built sources with the second source winning duplicate names. */ export declare const merge: { (second: Interface): (first: Interface) => Interface; (first: Interface, second: Interface): Interface; }; /** @experimental Build one layer from composable sources. */ export declare const layer: (sources: ReadonlyArray>) => Layer.Layer; /** @experimental Select startup listings within a token budget. */ export declare const selectListings: { (budgetTokens: number, recentlyUsed: ReadonlyArray): (skills: ReadonlyArray) => ReadonlyArray; (skills: ReadonlyArray, budgetTokens: number, recentlyUsed: ReadonlyArray): ReadonlyArray; }; export {};