import type { PromptFragment } from '@cat-factory/contracts'; import { PromptFragmentRegistry } from '@cat-factory/kernel'; export type { PromptFragment } from '@cat-factory/contracts'; export declare const FRAGMENTS: PromptFragment[]; export { styleFragments, DEFAULT_DOCUMENT_STYLE_FRAGMENT_IDS } from './collections/style.js'; export { BUILTIN_TASK_TYPE_DEFAULTS } from './task-type-defaults.js'; export { MIGRATION_FRAGMENT_IDS, migrationFragmentIdsFor } from './collections/migration.js'; export { DESIGN_CONTEXT_FRAGMENT_ID, withDesignContextFragment } from './collections/design.js'; /** Fragments keyed by id for O(1) lookup during prompt composition. */ export declare const FRAGMENTS_BY_ID: ReadonlyMap; /** * A {@link PromptFragmentRegistry} carrying the SHIPPED catalog and its built-in per-task-type * default sets. Each facade's composition root news one, and a deployment registers its own * standards onto the same instance by reference. * * The built-ins install through the registry's ordinary public methods rather than being baked in, * which is the `defaultGateRegistry()` ⇄ `@cat-factory/gates` shape: the platform exercises the * consumer's own seam on every boot, so it cannot rot for consumers only. Registration order is * what makes a deployment's re-registration of a shipped id an override, so the built-ins go first. * * This replaced two module globals (`registerPromptFragment`'s map and * `registerTaskTypeDefaultFragments`') whose correctness depended on every reader resolving the * same physical copy of this package. A `workspace:*` dependency publishes as an EXACT version, so * a consumer floating the range onto a newer patch got two copies: the registration landed in one, * the server read the other, and every task of the deployment's operation was seeded with ids that * folded nothing. Injection by reference makes that unrepresentable. */ export declare function promptFragmentRegistryWithBuiltins(): PromptFragmentRegistry; /** * Resolve a fragment from the SHIPPED catalog by id, or `undefined`. * * Strictly the built-ins: a deployment's own fragments live on the injected registry, and the * paths still calling this are the ones with no registry in hand (a prompt composed outside a * container, a test harness). That narrowing is deliberate rather than a leftover. Before it, * this function silently answered from a module global that a second copy of the package would * have left empty, which is the whole failure the registry removes. */ export declare function getFragment(id: string): PromptFragment | undefined; //# sourceMappingURL=index.d.ts.map