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