/** * Hook manifest schema definition. * * @experimental This API is unstable and may change without notice. */ import * as Schema from "effect/Schema"; export declare const HOOK_MANIFEST_FILENAME = "hook.json"; export declare const HOOK_EXTENSION_DIR = "hooks"; export declare const HOOK_MANIFEST_SCHEMA_URL = "https://axm.sh/schemas/hook.schema.json"; export declare const HookRuntimeSchema: Schema.Literals; /** @experimental */ export type HookRuntime = Schema.Schema.Type; export declare const HookEventSchema: Schema.Literals; /** @experimental */ export type HookEvent = Schema.Schema.Type; export declare const HookMatchSchema: Schema.Struct<{ readonly tools: Schema.optional>>; }>; /** @experimental */ export type HookMatch = Schema.Schema.Type; export declare const HookDecisionRequirementSchema: Schema.Union; }>, Schema.Struct<{ readonly kind: Schema.Literal<"block">; readonly outcomes: Schema.optional>>; }>, Schema.Struct<{ readonly kind: Schema.Literal<"modify">; readonly operations: Schema.optional>>; }>]>; /** @experimental */ export type HookDecisionRequirement = Schema.Schema.Type; export declare const HookBindingTargetSchema: Schema.Struct<{ readonly matcherRaw: Schema.optional; }>; export declare const CanonicalHookBindingSchema: Schema.Struct<{ readonly on: Schema.Literals; readonly match: Schema.optional>>; }>>; readonly matcherRaw: Schema.optional; readonly targets: Schema.optional; }>>>; readonly requires: Schema.optional; }>, Schema.Struct<{ readonly kind: Schema.Literal<"block">; readonly outcomes: Schema.optional>>; }>, Schema.Struct<{ readonly kind: Schema.Literal<"modify">; readonly operations: Schema.optional>>; }>]>; }>>; }>; export declare const HookBindingSchema: Schema.Struct<{ readonly on: Schema.Literals; readonly match: Schema.optional>>; }>>; readonly matcherRaw: Schema.optional; readonly targets: Schema.optional; }>>>; readonly requires: Schema.optional; }>, Schema.Struct<{ readonly kind: Schema.Literal<"block">; readonly outcomes: Schema.optional>>; }>, Schema.Struct<{ readonly kind: Schema.Literal<"modify">; readonly operations: Schema.optional>>; }>]>; }>>; }>; /** @experimental */ export type HookBinding = Schema.Schema.Type; export declare const HookCapabilitiesSchema: Schema.Struct<{ readonly network: Schema.optional; readonly filesystemWrite: Schema.optional; readonly exec: Schema.optional>; readonly env: Schema.optional>; }>; /** @experimental */ export type HookCapabilities = Schema.Schema.Type; /** * Schema for hook manifest files (hook.json). * * Hooks distribute an executable body plus agent event bindings. Install * materializes the body under agent_extensions and registers native agent hook * settings that invoke the materialized entrypoint. * * @experimental This API is unstable and may change without notice. */ export declare const HookManifestSchema: Schema.Struct<{ readonly type: Schema.Literal<"hook">; readonly name: Schema.brand; readonly title: Schema.optional; readonly runtime: Schema.Literals; readonly entrypoint: Schema.NonEmptyString; readonly bindings: Schema.$Array; readonly match: Schema.optional>>; }>>; readonly matcherRaw: Schema.optional; readonly targets: Schema.optional; }>>>; readonly requires: Schema.optional; }>, Schema.Struct<{ readonly kind: Schema.Literal<"block">; readonly outcomes: Schema.optional>>; }>, Schema.Struct<{ readonly kind: Schema.Literal<"modify">; readonly operations: Schema.optional>>; }>]>; }>>; }>>; readonly timeoutMs: Schema.optional; readonly capabilities: Schema.optional; readonly filesystemWrite: Schema.optional; readonly exec: Schema.optional>; readonly env: Schema.optional>; }>>; readonly enhances: Schema.optional>; readonly requires: Schema.optional>; readonly fallback: Schema.optional>; readonly recommendedPacks: Schema.optional>>; readonly standalone: Schema.optional; readonly publish: Schema.optional>; readonly ignore: Schema.optional>; }>>; readonly metadata: Schema.optional>>; readonly owner: Schema.brand; readonly version: Schema.brand; readonly description: Schema.optional; readonly keywords: Schema.optional>; readonly repository: Schema.optional; readonly url: Schema.NonEmptyString; readonly directory: Schema.optional; }>]>>; readonly homepage: Schema.optional; readonly license: Schema.optional; readonly bugs: Schema.optional; readonly email: Schema.optional; }>]>>; readonly authors: Schema.optional; readonly url: Schema.optional; }>>>; readonly packages: Schema.optional; readonly versionRange: Schema.optional", ">="]>; readonly version: Schema.NonEmptyString; }>>; }>>, Schema.NonEmptyString, never, never>, "VersRange">>; }>>>; readonly $schema: Schema.optional; }>; /** @experimental */ export type HookManifest = Schema.Schema.Type; //# sourceMappingURL=manifest-schema.d.ts.map