import * as Effect from "effect/Effect"; import * as Result from "effect/Result"; import * as Schema from "effect/Schema"; import { type ExtensionName, type ExtensionType } from "../extensions/common.js"; import { type Handle } from "../extensions/handle.js"; import { type Version } from "../version-constraints/version-constraints.js"; import type { ArchiveGuardrailError, ZipEntry } from "./archive-guardrails.js"; declare const ManifestError_base: new = {}>(args: import("effect/Types").VoidIfEmpty<{ readonly [P in keyof A as P extends "_tag" ? never : P]: A[P]; }>) => import("effect/Cause").YieldableError & { readonly _tag: "ManifestError"; } & Readonly; export declare class ManifestError extends ManifestError_base<{ readonly code: "manifest_missing" | "manifest_multiple" | "manifest_invalid_json" | "manifest_schema_invalid" | "companion_package_purl_has_version" | "companion_package_scheme_mismatch" | "companion_package_invalid" | "declared_manifest_mismatch"; readonly detail: string; readonly details?: unknown; }> { } export declare const MANIFEST_FILENAME_BY_TYPE: { readonly skill: "skill.json"; readonly "mcp-server": "mcp.json"; readonly subagent: "subagent.json"; readonly pack: "pack.json"; readonly rule: "rule.json"; readonly hook: "hook.json"; readonly knowledge: "knowledge.json"; }; export declare const manifestFilenameForType: (type: ExtensionType) => string; export declare const ManifestIdentitySchema: Schema.Struct<{ readonly owner: Schema.brand; readonly type: Schema.Literals; readonly name: Schema.brand; readonly version: Schema.brand; }>; export type ManifestIdentity = Schema.Schema.Type; export declare const manifestSchemaForType: (type: ExtensionType) => 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; }> | Schema.Struct<{ readonly type: Schema.Literal<"knowledge">; readonly format: Schema.Struct<{ readonly name: Schema.Literal<"okf">; readonly version: Schema.Literal<"0.2">; }>; readonly bundleRoot: Schema.Literal<"src">; readonly instructionEntry: Schema.optionalKey; readonly name: Schema.brand; 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; }> | Schema.Struct<{ readonly type: Schema.Literal<"mcp-server">; readonly name: Schema.brand; readonly server: Schema.Struct<{ readonly $schema: Schema.optional; readonly name: Schema.NonEmptyString; readonly description: Schema.NonEmptyString; readonly version: Schema.String; readonly title: Schema.optional; readonly packages: Schema.optional; }>, Schema.Struct<{ readonly type: Schema.Literal<"streamable-http">; readonly url: Schema.NonEmptyString; readonly headers: Schema.optional>; readonly default: Schema.optional; readonly description: Schema.optional; readonly format: Schema.optional>; readonly isRequired: Schema.optional; readonly isSecret: Schema.optional; readonly placeholder: Schema.optional; readonly value: Schema.optional; readonly variables: Schema.optional>; }>>>; }>, Schema.Struct<{ readonly type: Schema.Literal<"sse">; readonly url: Schema.NonEmptyString; readonly headers: Schema.optional>; readonly default: Schema.optional; readonly description: Schema.optional; readonly format: Schema.optional>; readonly isRequired: Schema.optional; readonly isSecret: Schema.optional; readonly placeholder: Schema.optional; readonly value: Schema.optional; readonly variables: Schema.optional>; }>>>; }>]>; readonly version: Schema.optional; readonly registryBaseUrl: Schema.optional; readonly runtimeHint: Schema.optional; readonly runtimeArguments: Schema.optional; readonly isRepeated: Schema.optional; readonly valueHint: Schema.String; readonly choices: Schema.optional>; readonly default: Schema.optional; readonly description: Schema.optional; readonly format: Schema.optional>; readonly isRequired: Schema.optional; readonly isSecret: Schema.optional; readonly placeholder: Schema.optional; readonly value: Schema.optional; readonly variables: Schema.optional>; }>, Schema.Struct<{ readonly type: Schema.Literal<"positional">; readonly isRepeated: Schema.optional; readonly value: Schema.String; readonly choices: Schema.optional>; readonly default: Schema.optional; readonly description: Schema.optional; readonly format: Schema.optional>; readonly isRequired: Schema.optional; readonly isSecret: Schema.optional; readonly placeholder: Schema.optional; readonly variables: Schema.optional>; }>]>, Schema.Struct<{ readonly type: Schema.Literal<"named">; readonly name: Schema.String; readonly isRepeated: Schema.optional; readonly choices: Schema.optional>; readonly default: Schema.optional; readonly description: Schema.optional; readonly format: Schema.optional>; readonly isRequired: Schema.optional; readonly isSecret: Schema.optional; readonly placeholder: Schema.optional; readonly value: Schema.optional; readonly variables: Schema.optional>; }>]>>>; readonly packageArguments: Schema.optional; readonly isRepeated: Schema.optional; readonly valueHint: Schema.String; readonly choices: Schema.optional>; readonly default: Schema.optional; readonly description: Schema.optional; readonly format: Schema.optional>; readonly isRequired: Schema.optional; readonly isSecret: Schema.optional; readonly placeholder: Schema.optional; readonly value: Schema.optional; readonly variables: Schema.optional>; }>, Schema.Struct<{ readonly type: Schema.Literal<"positional">; readonly isRepeated: Schema.optional; readonly value: Schema.String; readonly choices: Schema.optional>; readonly default: Schema.optional; readonly description: Schema.optional; readonly format: Schema.optional>; readonly isRequired: Schema.optional; readonly isSecret: Schema.optional; readonly placeholder: Schema.optional; readonly variables: Schema.optional>; }>]>, Schema.Struct<{ readonly type: Schema.Literal<"named">; readonly name: Schema.String; readonly isRepeated: Schema.optional; readonly choices: Schema.optional>; readonly default: Schema.optional; readonly description: Schema.optional; readonly format: Schema.optional>; readonly isRequired: Schema.optional; readonly isSecret: Schema.optional; readonly placeholder: Schema.optional; readonly value: Schema.optional; readonly variables: Schema.optional>; }>]>>>; readonly environmentVariables: Schema.optional>; readonly default: Schema.optional; readonly description: Schema.optional; readonly format: Schema.optional>; readonly isRequired: Schema.optional; readonly isSecret: Schema.optional; readonly placeholder: Schema.optional; readonly value: Schema.optional; readonly variables: Schema.optional>; }>>>; readonly fileSha256: Schema.optional; }>>>; readonly remotes: Schema.optional; readonly url: Schema.NonEmptyString; readonly headers: Schema.optional>; readonly default: Schema.optional; readonly description: Schema.optional; readonly format: Schema.optional>; readonly isRequired: Schema.optional; readonly isSecret: Schema.optional; readonly placeholder: Schema.optional; readonly value: Schema.optional; readonly variables: Schema.optional>; }>>>; readonly variables: Schema.optional>; readonly default: Schema.optional; readonly description: Schema.optional; readonly format: Schema.optional>; readonly isRequired: Schema.optional; readonly isSecret: Schema.optional; readonly placeholder: Schema.optional; readonly value: Schema.optional; readonly variables: Schema.optional>; }>>>; }>, Schema.Struct<{ readonly type: Schema.Literal<"sse">; readonly url: Schema.NonEmptyString; readonly headers: Schema.optional>; readonly default: Schema.optional; readonly description: Schema.optional; readonly format: Schema.optional>; readonly isRequired: Schema.optional; readonly isSecret: Schema.optional; readonly placeholder: Schema.optional; readonly value: Schema.optional; readonly variables: Schema.optional>; }>>>; readonly variables: Schema.optional>; readonly default: Schema.optional; readonly description: Schema.optional; readonly format: Schema.optional>; readonly isRequired: Schema.optional; readonly isSecret: Schema.optional; readonly placeholder: Schema.optional; readonly value: Schema.optional; readonly variables: Schema.optional>; }>>>; }>]>>>; readonly repository: Schema.optional; readonly subfolder: Schema.optional; }>>; readonly icons: Schema.optional>; readonly sizes: Schema.optional>; readonly theme: Schema.optional>; }>>>; readonly websiteUrl: Schema.optional; readonly _meta: 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; }> | Schema.Struct<{ readonly type: Schema.Literal<"pack">; readonly name: Schema.brand; readonly dependencies: Schema.$Record>; 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; }> | Schema.Struct<{ readonly type: Schema.Literal<"rule">; readonly name: Schema.brand; readonly title: Schema.optional; readonly priority: Schema.optional; readonly appliesTo: 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; }> | Schema.Struct<{ readonly type: Schema.Literal<"skill">; readonly name: Schema.brand; 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; }> | Schema.Struct<{ readonly type: Schema.Literal<"subagent">; readonly name: Schema.brand; 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; }>; export interface ManifestResolutionInput { readonly type: ExtensionType; readonly entries: readonly ZipEntry[]; readonly readEntry: (fileName: string) => Effect.Effect; } export interface DeclaredPublishIdentity { readonly owner: Handle; readonly type: ExtensionType; readonly name: ExtensionName; readonly version: Version; } export interface ResolvedManifest { readonly identity: ManifestIdentity; readonly raw: unknown; readonly fileName: string; } export declare const validateManifestHasNoAgentsField: (fileName: string, raw: unknown) => Result.Result; export declare const resolveManifest: (input: ManifestResolutionInput) => Effect.Effect; export declare const validateDeclaredManifestAlignment: (declaredIdentity: DeclaredPublishIdentity, manifest: ManifestIdentity) => Result.Result; export {}; //# sourceMappingURL=manifest-policy.d.ts.map