# Imp v0.5.0 - Table of Contents

> Declarative self-improving language-model programs for Elixir.

## Pages

- [Imp](readme.md)

- Getting started
  - [Program, don't prompt](getting-started.md)
  - [Setting up](setting-up.md)
  - [Your first program](first-program.md)
  - [Expanding signatures](expanding-signatures.md)
  - [Changing the module](changing-the-module.md)
  - [Testing without a provider](testing-without-a-provider.md)
  - [Tools and agents](tools-and-agents.md)
  - [Composing programs](composing-programs.md)
  - [Measuring](measuring.md)
  - [Improving](improving.md)
  - [Saving and loading](save-and-load.md)
  - [Running it in your application](running-in-your-application.md)
  - [Where to go next](where-to-go-next.md)

- Guides
  - [Coming from DSPy](coming-from-dspy.md)
  - [Running Imp in production](production.md)

- Diving deeper
  - [Signatures](signatures.md)
  - [Modules and composition](modules-and-composition.md)
  - [RLM](rlm.md)
  - [Adapters](adapters.md)
  - [ReAct](react.md)
  - [Tools and MCP](tools-and-mcp.md)
  - [Retrieval](retrieval.md)
  - [Metrics and evaluation](metrics-and-evaluation.md)
  - [Choosing an optimizer](choosing-an-optimizer.md)
  - [Saving and artifacts](saving-and-artifacts.md)
  - [Runs and supervision](runs-and-supervision.md)
  - [Settings and context](settings-and-context.md)

- Reference
  - [Cheatsheet](cheatsheet.md)

- Tutorials
  - [Imp 01: Real LM front door](01_real_lm_front_door.md)
  - [Imp 02: The same program without a provider](02_without_a_provider.md)
  - [Imp 03: Evaluate and optimize](03_evaluate_and_optimize.md)
  - [Imp 04: Tools, agents, MCP and RLM](04_tools_agents_mcp_rlm.md)
  - [Imp 05: Operating Imp](05_operating_imp.md)

- Releases
  - [Imp v0.5.0](release_notes.md)
  - [Changelog](changelog.md)

## Modules

- Stable center
  - [Imp](Imp.md): Declarative self-improving language-model programs for Elixir.
  - [Imp.Adapter.Chat](Imp.Adapter.Chat.md): Plain chat adapter: instructions plus field-labelled user content.
  - [Imp.Adapter.JSON](Imp.Adapter.JSON.md): JSON-oriented adapter.
  - [Imp.Adapter.PlanFirst](Imp.Adapter.PlanFirst.md): Imp extension adapter that asks the model to plan, then answer.
  - [Imp.Adapter.SingleField](Imp.Adapter.SingleField.md): Concise, strict adapter for programs with exactly one output field.
  - [Imp.Adapter.TwoStep](Imp.Adapter.TwoStep.md): Faithful port of DSPy 3.2.1 `TwoStepAdapter` (dspy/adapters/two_step_adapter.py).
  - [Imp.Adapter.Types](Imp.Adapter.Types.md): Lightweight multimodal and tool-call value structs matching Imp's adapter vocabulary.
  - [Imp.Adapter.Types.Audio](Imp.Adapter.Types.Audio.md): An inert audio value backed by in-memory base64 data.
  - [Imp.Adapter.Types.Citation](Imp.Adapter.Types.Citation.md): A quoted passage with its source, rendered as the text followed by a
`Source:` line.

  - [Imp.Adapter.Types.Code](Imp.Adapter.Types.Code.md): Typed source code used by signature-level code inputs and outputs.
  - [Imp.Adapter.Types.Document](Imp.Adapter.Types.Document.md): A text document given to the model as its own content part.
  - [Imp.Adapter.Types.File](Imp.Adapter.Types.File.md): An inert file attachment or pre-uploaded provider file reference.
  - [Imp.Adapter.Types.History](Imp.Adapter.Types.History.md): Provider chat messages placed in a request as they are.
  - [Imp.Adapter.Types.Image](Imp.Adapter.Types.Image.md): An inert image value backed by a remote reference or in-memory data.
  - [Imp.Adapter.Types.Reasoning](Imp.Adapter.Types.Reasoning.md): Provider-native or prompt-generated reasoning with one stable value shape.
  - [Imp.Adapter.Types.ToolCall](Imp.Adapter.Types.ToolCall.md): Provider-native tool call value with stable id, name, and arguments.
  - [Imp.Adapter.Types.ToolCallResults](Imp.Adapter.Types.ToolCallResults.md): Collection of provider-native tool results.
  - [Imp.Adapter.Types.ToolCalls](Imp.Adapter.Types.ToolCalls.md): Collection of provider-native tool calls.
  - [Imp.Adapter.Types.ToolResult](Imp.Adapter.Types.ToolResult.md): Provider-native result for a previous tool call.
  - [Imp.Adapter.Types.Type](Imp.Adapter.Types.Type.md): A wrapper that renders as the value it holds: `to_openai/1` of a `Type`
is `to_openai/1` of its `value`.

  - [Imp.Adapter.XML](Imp.Adapter.XML.md): XML adapter with DSPy's field dialect and current output-completion contract.
  - [Imp.AdapterParseError](Imp.AdapterParseError.md): A completion that could not be read as the signature's outputs.
  - [Imp.Assertion](Imp.Assertion.md): Named runtime constraint for Imp predictions.
  - [Imp.Cache](Imp.Cache.md): Small ETS-backed cache for Imp's configurable cache concept.
  - [Imp.Capabilities](Imp.Capabilities.md): Runtime capability checks for provider features that cannot be inferred safely.
  - [Imp.Clients.ReqLLM](Imp.Clients.ReqLLM.md): Imp LM client backed by the Elixir `req_llm` ecosystem.
  - [Imp.Confidence](Imp.Confidence.md): Confidence-aware evaluation for enum-constrained JSON classification.
  - [Imp.Confidence.Calibration](Imp.Confidence.Calibration.md): Held-out reliability analysis for raw constrained-label confidence.
  - [Imp.Confidence.Scoring.LinearBlend](Imp.Confidence.Scoring.LinearBlend.md): Linear interpolation below a raw-confidence threshold.
  - [Imp.Confidence.Scoring.Sigmoid](Imp.Confidence.Scoring.Sigmoid.md): Smooth sigmoid over raw confidence for correct answers.
  - [Imp.Confidence.Scoring.Threshold](Imp.Confidence.Scoring.Threshold.md): Binary correctness gated by a raw-confidence threshold.
  - [Imp.Core](Imp.Core.md): Provider-neutral LM messages and request/response values.
  - [Imp.Core.Assistant](Imp.Core.Assistant.md): Assistant message content plus any normalized tool calls.
  - [Imp.Core.Developer](Imp.Core.Developer.md): Developer instruction message for providers that support that role.
  - [Imp.Core.LMConfig](Imp.Core.LMConfig.md): Provider-neutral LM generation configuration.
  - [Imp.Core.LMRequest](Imp.Core.LMRequest.md): Provider-neutral LM request: messages, generation config, and metadata.
  - [Imp.Core.LMResponse](Imp.Core.LMResponse.md): Provider-neutral LM response: normalized outputs, usage, cost, and raw data.
  - [Imp.Core.Message](Imp.Core.Message.md): Generic provider-neutral message with role, content, and metadata.
  - [Imp.Core.System](Imp.Core.System.md): System message content for provider-neutral LM requests.
  - [Imp.Core.User](Imp.Core.User.md): User message content for provider-neutral LM requests.
  - [Imp.Deadline](Imp.Deadline.md): Process-scoped absolute deadlines for cooperative time budgets.
  - [Imp.Embeddings.BagOfWords](Imp.Embeddings.BagOfWords.md): Deterministic hashing bag-of-words embedder.
  - [Imp.Error](Imp.Error.md): Raised by a function whose name ends in `!` when the call ran and failed.
  - [Imp.Errors](Imp.Errors.md): Reads the failure classes callers act on, through the wrappers Imp puts
around an error.
  - [Imp.Evaluate](Imp.Evaluate.md): Evaluate a program against examples and a metric.
  - [Imp.Evaluate.CompleteAndGrounded](Imp.Evaluate.CompleteAndGrounded.md): LM-backed completeness and groundedness metric.
  - [Imp.Evaluate.Result](Imp.Evaluate.Result.md): Evaluation result with aggregate score, per-example rows, and call errors.
  - [Imp.Evaluate.SemanticF1](Imp.Evaluate.SemanticF1.md): LM-backed semantic precision/recall metric with deterministic F1 scoring.
  - [Imp.EvaluationCancelledError](Imp.EvaluationCancelledError.md): Raised when an evaluation halts because `:max_errors` was reached.
  - [Imp.Example](Imp.Example.md): Flexible row of named data used for train/dev/test sets.
  - [Imp.Experiment](Imp.Experiment.md): One public, fail-closed optimize/select/test lifecycle.
  - [Imp.Experiment.Bootstrap](Imp.Experiment.Bootstrap.md): Canonical, non-secret runtime and provenance bootstrap for Imp experiments.
  - [Imp.Experiment.Data](Imp.Experiment.Data.md): Disjoint train, selection, and untouched-test data for `Imp.Experiment.check/5`.
  - [Imp.Experiment.Result](Imp.Experiment.Result.md): Durable result of a fail-closed `Imp.Experiment.check/5` lifecycle.
  - [Imp.History](Imp.History.md): Immutable conversation history for signature-shaped Imp programs.
  - [Imp.LM.Result](Imp.LM.Result.md): Canonical boundary between LM output and provider metadata.
  - [Imp.LM.Static](Imp.LM.Static.md): Deterministic local LM for examples, tests, and offline workflows.
  - [Imp.LMError](Imp.LMError.md): A language-model request the provider did not answer with a completion.
  - [Imp.Logprobs](Imp.Logprobs.md): Extracts joint token logprob for one enum-constrained JSON field.
  - [Imp.Metrics](Imp.Metrics.md): Metrics for evaluation, selection, and optimization.
  - [Imp.Metrics.Result](Imp.Metrics.Result.md): Normalized metric result with numeric score, pass/fail flag, feedback, and metadata.
  - [Imp.Observability](Imp.Observability.md): Public inspection, optimizer progress, and Imp-scoped logging controls.
  - [Imp.Observability.Inspection](Imp.Observability.Inspection.md): A deterministic, redacted debugging snapshot, as returned by
`Imp.Observability.inspect_artifact/2`.
  - [Imp.Observability.ProgressSubscription](Imp.Observability.ProgressSubscription.md): Handle returned by `Imp.Observability.subscribe_optimizer/1`.
  - [Imp.Observability.Status](Imp.Observability.Status.md): Normalized status for long-running Imp work.
  - [Imp.Observability.Trace](Imp.Observability.Trace.md): Result and ordered, redacted telemetry events captured by `Imp.trace/2`.
  - [Imp.OperationalSafetyError](Imp.OperationalSafetyError.md): Marks a fail-closed operational error from a guarded LM or program call.
  - [Imp.Optimizer.Artifact](Imp.Optimizer.Artifact.md): Durable champion/challenger lifecycle for portable optimizer outputs.
  - [Imp.Optimizer.BootstrapFewShot](Imp.Optimizer.BootstrapFewShot.md): DSPy-compatible bootstrap few-shot compilation.
  - [Imp.Optimizer.BootstrapFewShotWithRandomSearch](Imp.Optimizer.BootstrapFewShotWithRandomSearch.md): DSPy 3.2.1 BootstrapFewShotWithRandomSearch, which DSPy also exports as
`BootstrapRS`.
  - [Imp.Optimizer.COPRO](Imp.Optimizer.COPRO.md): DSPy 3.2.1 coordinate prompt optimizer.
  - [Imp.Optimizer.Ensemble](Imp.Optimizer.Ensemble.md): Compile multiple programs into an ensemble program.
  - [Imp.Optimizer.GEPA](Imp.Optimizer.GEPA.md): Program-level GEPA optimizer for Imp programs.
  - [Imp.Optimizer.InferRules](Imp.Optimizer.InferRules.md): Induces natural-language rules from observed examples and selects them on a
validation set.
  - [Imp.Optimizer.KNNFewShot](Imp.Optimizer.KNNFewShot.md): Faithful port of DSPy 3.2.1 `KNNFewShot` (dspy/teleprompt/knn_fewshot.py).
  - [Imp.Optimizer.LabeledFewShot](Imp.Optimizer.LabeledFewShot.md): Compile a program by attaching labeled examples as demonstrations.
  - [Imp.Optimizer.MIPROv2](Imp.Optimizer.MIPROv2.md): Joint instruction and few-shot optimization using grounded proposals and categorical TPE.
  - [Imp.Optimizer.Report](Imp.Optimizer.Report.md): Optimizer candidate history and diagnostic metadata.
  - [Imp.Optimizer.SIMBA](Imp.Optimizer.SIMBA.md): Stochastic Introspective Mini-Batch Ascent over arbitrary Imp programs.
  - [Imp.Predict](Imp.Predict.md): Basic Imp program that maps signature inputs to typed outputs with an LM.
  - [Imp.Predict.ChainOfThought](Imp.Predict.ChainOfThought.md): Predict variant that asks for a `:reasoning` field before task outputs.
  - [Imp.Predict.ReActV2](Imp.Predict.ReActV2.md): Native-tool-aware ReAct loop with structured history and typed completion.
  - [Imp.Prediction](Imp.Prediction.md): Structured output from an Imp program.
  - [Imp.Redaction](Imp.Redaction.md): Shared redaction helpers for traces, telemetry, and runtime metadata.
  - [Imp.Retrieve.Memory](Imp.Retrieve.Memory.md): Token-overlap in-memory retriever for deterministic local workflows.
  - [Imp.Retrievers.Databricks](Imp.Retrievers.Databricks.md): Databricks Vector Search retriever.
  - [Imp.Retrievers.HTTP](Imp.Retrievers.HTTP.md): Generic HTTP retriever with injectable transport and response mapping.
  - [Imp.Retrievers.Weaviate](Imp.Retrievers.Weaviate.md): Weaviate GraphQL retriever.
  - [Imp.Sandbox](Imp.Sandbox.md): BEAM-safe expression sandbox for Program-of-Thought style code.
  - [Imp.Saving](Imp.Saving.md): JSON save/load helpers for portable program state.
  - [Imp.Saving.Registry](Imp.Saving.Registry.md): Immutable allowlist of named callbacks used to rebind portable program artifacts.
  - [Imp.Schema](Imp.Schema.md): Schema constraints, validation, JSON Schema export, and retry feedback.
  - [Imp.Settings](Imp.Settings.md): OTP-backed global settings with process-local overrides.
  - [Imp.Signature](Imp.Signature.md): Input/output contract for an Imp program.
  - [Imp.Signature.Field](Imp.Signature.Field.md): Metadata and construction rules for one signature field.
  - [Imp.Signature.ParseError](Imp.Signature.ParseError.md): Raised when a signature string cannot be parsed.
  - [Imp.Streaming](Imp.Streaming.md): Enumerable-friendly streaming helpers.
  - [Imp.Streaming.Messages](Imp.Streaming.Messages.md): Streaming message structs for Imp's public streaming vocabulary.
  - [Imp.Streaming.Messages.StatusMessage](Imp.Streaming.Messages.StatusMessage.md): Status event emitted by a streaming workflow.
  - [Imp.Streaming.Messages.StreamListener](Imp.Streaming.Messages.StreamListener.md): Incremental, transparent stream observer.
  - [Imp.Streaming.Messages.StreamResponse](Imp.Streaming.Messages.StreamResponse.md): One normalized stream event.
  - [Imp.Telemetry](Imp.Telemetry.md): Small telemetry boundary for Imp runtime events.
  - [Imp.Tool](Imp.Tool.md): Tool definition for ReAct-style programs and supervised Elixir workflows.
  - [Imp.ToolPolicy](Imp.ToolPolicy.md): The `:tool_policy` option of the tool-using programs (`Imp.Predict.ReActV2`,
`Imp.Predict.ReAct`, `Imp.Predict.RLM`, `Imp.Predict.CodeAct`,
`Imp.Predict.Avatar`): which of their tools the model may call.

- MCP and ACP
  - [Imp.ACP](Imp.ACP.md): Runs an `Imp.Module` program behind an Agent Client Protocol endpoint.
  - [Imp.ACP.Host](Imp.ACP.Host.md): A session-bound handle to capabilities supplied by an ACP host.
  - [Imp.ACP.Local](Imp.ACP.Local.md): Local ACP attachment to a long-running application over a private UNIX socket.
  - [Imp.ACP.Local.Transport](Imp.ACP.Local.Transport.md): Bounded ACP NDJSON transport over a local UNIX stream socket.
  - [Imp.ACP.ToolKind](Imp.ACP.ToolKind.md): Derives an ACP tool kind from the MCP tool annotations a server declares.
  - [Imp.MCP](Imp.MCP.md): Imports the tools of authorized MCP servers as ordinary `Imp.Tool` values.
  - [Imp.MCP.CallFailure](Imp.MCP.CallFailure.md): An MCP tool call that got no answer from its tool.
  - [Imp.MCP.Connections](Imp.MCP.Connections.md): Opens explicitly authorized MCP servers through ExMCP and imports their tools.
  - [Imp.MCP.Import](Imp.MCP.Import.md): An owned remote tool catalog; cleanup closes its connections.
  - [Imp.MCP.OAuth](Imp.MCP.OAuth.md): Browser-authorized OAuth credentials for remote HTTP MCP servers.
  - [Imp.MCP.OAuth.Pending](Imp.MCP.OAuth.Pending.md): One authorization in progress.
  - [Imp.MCP.OAuth.Store](Imp.MCP.OAuth.Store.md): Where a host keeps MCP OAuth credentials and what protects them.

- Experimental optimizers and advanced workflows
  - [Imp.Clients.DatabricksTrainer](Imp.Clients.DatabricksTrainer.md): Databricks training job contract.
  - [Imp.Clients.HTTPTrainer](Imp.Clients.HTTPTrainer.md): Provider trainer that submits finetuning data to HTTP APIs.
  - [Imp.Clients.MLXLMDeployment](Imp.Clients.MLXLMDeployment.md): Supervised local serving for a verified fused `MLXLMTrainer` artifact.
  - [Imp.Clients.MLXLMTrainer](Imp.Clients.MLXLMTrainer.md): Optional synchronous SFT backend for a pinned local MLX-LM model snapshot.
  - [Imp.Clients.OpenAITrainer](Imp.Clients.OpenAITrainer.md): OpenAI fine-tuning job client.
  - [Imp.Clients.ReinforcementSession](Imp.Clients.ReinforcementSession.md): Provider-neutral, explicit state for an iterative reinforcement training job.
  - [Imp.Clients.ReqLLMBatch](Imp.Clients.ReqLLMBatch.md): Provider-neutral, bounded, resumable execution for durable LM batches.
  - [Imp.Clients.TRLArtifact](Imp.Clients.TRLArtifact.md): Content verification for artifacts produced through the Imp↔TRL protocol.
  - [Imp.Clients.TRLDeployment](Imp.Clients.TRLDeployment.md): Runs a verified TRL LoRA artifact through a caller-supplied trusted runtime.
  - [Imp.Clients.TRLLM](Imp.Clients.TRLLM.md): Local causal-LM view of the model owned by a running `TRLTrainer` session.
  - [Imp.Clients.TRLTrainer](Imp.Clients.TRLTrainer.md): Local, process-supervised TRL reinforcement backend.
  - [Imp.Clients.TrainingJob](Imp.Clients.TrainingJob.md): Provider-neutral finetuning or reinforcement-training job.
  - [Imp.Datasets](Imp.Datasets.md): Local dataset loaders for examples, JSONL, CSV, GSM8K, HotPotQA, MATH, and
Colors records.
  - [Imp.Datasets.Colors](Imp.Datasets.Colors.md): Simple color dataset helper.
  - [Imp.Datasets.DataLoader](Imp.Datasets.DataLoader.md): Loader facade for JSONL/CSV records.
  - [Imp.Datasets.Dataset](Imp.Datasets.Dataset.md): Dataset container with train/dev/test splits.
  - [Imp.Datasets.Error](Imp.Datasets.Error.md): Raised by a file loader for a file it cannot read or a record it cannot
parse: `path` is the file, `line` the line number when there is one, and
`record` the value that could not be read.

  - [Imp.Datasets.GSM8K](Imp.Datasets.GSM8K.md): GSM8K-style JSONL dataset loader.
  - [Imp.Datasets.HotPotQA](Imp.Datasets.HotPotQA.md): HotPotQA-style JSONL dataset loader.
  - [Imp.Datasets.MATH](Imp.Datasets.MATH.md): MATH-style JSONL dataset loader.
  - [Imp.Execution](Imp.Execution.md): Explicit, protocol-neutral capabilities for one program execution.
  - [Imp.Execution.Authorization](Imp.Execution.Authorization.md): A protocol-neutral request to authorize one validated tool effect.
  - [Imp.ExternalCommand](Imp.ExternalCommand.md): Runs an executable with argv through Imp's shared process-group lifecycle.
  - [Imp.ExternalCommand.Handle](Imp.ExternalCommand.Handle.md): A supervised external process group managed by `Imp.ExternalCommand`.
  - [Imp.LM.Budgeted](Imp.LM.Budgeted.md): An LM decorator that enforces an `Imp.Optimizer.Budget` before transport.
  - [Imp.Optimize.Anything](Imp.Optimize.Anything.md): Optimizes text, named text components, and JSON-safe structured artifacts
against evaluator feedback.
  - [Imp.Optimize.Anything.Result](Imp.Optimize.Anything.Result.md): Immutable Optimize Anything result projected from the GEPA engine.
  - [Imp.Optimize.Anything.StructuredStrategy](Imp.Optimize.Anything.StructuredStrategy.md): A checkpoint-safe mutation strategy for native structured Optimize Anything artifacts.
  - [Imp.Optimizer.Avatar](Imp.Optimizer.Avatar.md): Rewrites Avatar actor instructions from positive and negative trajectories.
  - [Imp.Optimizer.BetterTogether](Imp.Optimizer.BetterTogether.md): Evaluate-and-select meta-optimizer for prompt and weight optimization sequences.
  - [Imp.Optimizer.BootstrapFinetune](Imp.Optimizer.BootstrapFinetune.md): Builds SFT jobs from successful, predictor-attributed teacher traces.
  - [Imp.Optimizer.Budget](Imp.Optimizer.Budget.md): Prospective request, token, and cost limits for live optimizer work.
  - [Imp.Optimizer.Component](Imp.Optimizer.Component.md): A program-owned description of one optimizable component.
  - [Imp.Optimizer.GRPO](Imp.Optimizer.GRPO.md): Provider-neutral, iterative module-level mmGRPO compilation.
  - [Imp.Optimizer.GRPO.Callback](Imp.Optimizer.GRPO.Callback.md): Stable, data-only callback identity for resumable GRPO jobs.
  - [Imp.Optimizer.InstructionProposer](Imp.Optimizer.InstructionProposer.md): LM-backed instruction proposal engine shared by prompt optimizers.
  - [Imp.Optimizer.InstructionSearch](Imp.Optimizer.InstructionSearch.md): Search over candidate signature instructions and keep the best program.
  - [Imp.Optimizer.Parameter](Imp.Optimizer.Parameter.md): A bounded, data-only optimizer parameter.
  - [Imp.Optimizer.Parameter.Change](Imp.Optimizer.Parameter.Change.md): A replace-only parameter change guarded by the source content digest.
  - [Imp.Optimizer.Parameter.Set](Imp.Optimizer.Parameter.Set.md): Immutable parameter state with playbook-style revision lineage.
  - [Imp.Optimizer.Playbook](Imp.Optimizer.Playbook.md): Bounded optimization for persistent `Imp.Playbook` parameters.
  - [Imp.Optimizer.Sampling](Imp.Optimizer.Sampling.md): Deterministic sampling helpers for optimizers.
  - [Imp.Optimizer.SignatureOptimizer](Imp.Optimizer.SignatureOptimizer.md): Optimizes one program signature instruction while leaving demonstrations unchanged.
  - [Imp.Optimizer.TrainingError](Imp.Optimizer.TrainingError.md): Terminal training failure with the unrebound program and provider diagnostics.
  - [Imp.Optimizer.TrainingJobAdoption](Imp.Optimizer.TrainingJobAdoption.md): Adopts a verified, already-completed `Imp.Clients.TrainingJob` as a workflow step.
  - [Imp.Optimizer.TrainingResult](Imp.Optimizer.TrainingResult.md): Result of a training optimizer executed through `Imp.train/4`.
  - [Imp.Optimizer.Trajectory](Imp.Optimizer.Trajectory.md): Versioned, provider-neutral execution envelope shared by all optimizers.
  - [Imp.Optimizer.TrajectoryRunner](Imp.Optimizer.TrajectoryRunner.md): Evaluates examples into ordered, provider-neutral optimizer trajectories.
  - [Imp.Playbook](Imp.Playbook.md): Provider-independent, immutable instructions with transactional evolution.
  - [Imp.Playbook.Delta](Imp.Playbook.Delta.md): An ordered, atomic set of playbook operations with optional optimistic guards.

  - [Imp.Playbook.Entry](Imp.Playbook.Entry.md): An immutable, normalized playbook entry with a stable identity and hash chain.

  - [Imp.Playbook.Operation.Add](Imp.Playbook.Operation.Add.md): Adds one normalized entry.
  - [Imp.Playbook.Operation.Merge](Imp.Playbook.Operation.Merge.md): Replaces two or more entries and tombstones every source entry.
  - [Imp.Playbook.Operation.Remove](Imp.Playbook.Operation.Remove.md): Removes an entry while retaining a provenance tombstone.
  - [Imp.Playbook.Operation.Revise](Imp.Playbook.Operation.Revise.md): Revises an entry while retaining its ID and linking to its prior hash.
  - [Imp.Playbook.Operation.UpdateCounters](Imp.Playbook.Operation.UpdateCounters.md): Atomically increments an entry's helpful and harmful counters.
  - [Imp.Playbook.Policy](Imp.Playbook.Policy.md): Hard limits and admission rules for a `Imp.Playbook`.
  - [Imp.Playbook.Provenance](Imp.Playbook.Provenance.md): Bounded references to stable source identities and SHA-256 digests.
  - [Imp.Playbook.Tombstone](Imp.Playbook.Tombstone.md): Removal and merge provenance retained in a playbook's hash chain.
  - [Imp.Playbook.WithContext](Imp.Playbook.WithContext.md): Executes a program with active playbook guidance appended to every predictor.
  - [Imp.Predict.Aggregation](Imp.Predict.Aggregation.md): Aggregation helpers for multiple predictions or raw values.
  - [Imp.Predict.Assertions](Imp.Predict.Assertions.md): Wraps an Imp program with assertion-guided self-refinement.
  - [Imp.Predict.Avatar](Imp.Predict.Avatar.md): BEAM-native Avatar actor with typed actions and bounded tool execution.
  - [Imp.Predict.BestOfN](Imp.Predict.BestOfN.md): Run a program multiple times and keep the prediction with the highest metric score.
  - [Imp.Predict.CodeAct](Imp.Predict.CodeAct.md): CodeAct-style module backed by `Imp.Sandbox` and explicit tool iterations.
  - [Imp.Predict.KNN](Imp.Predict.KNN.md): An embedding-based nearest-neighbor retriever over a trainset, with the same
query and ranking semantics as DSPy 3.2.1 `KNN`.
  - [Imp.Predict.MultiChainComparison](Imp.Predict.MultiChainComparison.md): Compare several candidate completions and ask a predictor for the final output.
  - [Imp.Predict.Parallel](Imp.Predict.Parallel.md): Run a program across many inputs concurrently through a supervised BEAM task
boundary.
  - [Imp.Predict.ProgramOfThought](Imp.Predict.ProgramOfThought.md): Generates and executes a small BEAM-safe program, regenerating failed code.
  - [Imp.Predict.RAG](Imp.Predict.RAG.md): Retrieval-augmented program wrapper.
  - [Imp.Predict.RLM](Imp.Predict.RLM.md): Recursive Language Model module.
  - [Imp.Predict.RLM.SandboxSerializable](Imp.Predict.RLM.SandboxSerializable.md): Lazy value handle for RLM variable-space exploration.
  - [Imp.Predict.ReAct](Imp.Predict.ReAct.md): ReAct agent with two distinct contracts, selected by `:mode`.
  - [Imp.Predict.Refine](Imp.Predict.Refine.md): Iteratively call a program until a metric passes or attempts are exhausted.
  - [Imp.Predict.Search](Imp.Predict.Search.md): Executes a bounded candidate search owned by one inference request.
  - [Imp.ProgramParameters](Imp.ProgramParameters.md): Named optimizer lenses and typed parameter snapshots for Imp programs.
  - [Imp.Run](Imp.Run.md): An addressable execution of an Imp program with ordered semantic events.
  - [Imp.Run.Event](Imp.Run.Event.md): A single ordered, protocol-neutral execution event.
  - [Imp.Tasks](Imp.Tasks.md): Tasks that carry the caller's Imp context.
  - [Imp.Tracking.MLflow](Imp.Tracking.MLflow.md): MLflow tracking backend implemented over the official HTTP API.
  - [Imp.Tracking.Session](Imp.Tracking.Session.md): Ordered, caller-owned fan-out across tracking backends.
  - [Imp.Tracking.Transport.Req](Imp.Tracking.Transport.Req.md): Req-backed tracking transport.
  - [Imp.Tracking.WandB](Imp.Tracking.WandB.md): Isolated client for the W&B 0.21.x run protocol.
  - [Imp.Training.ChatDataset](Imp.Training.ChatDataset.md): Deterministically materializes Imp examples as MLX-LM chat JSONL.
  - [Imp.Training.FastSlow.AdvantageGroup](Imp.Training.FastSlow.AdvantageGroup.md): Question-level rollout group with normalized training advantages.
  - [Imp.Training.FastSlow.Budget](Imp.Training.FastSlow.Budget.md): Named immutable limits and accumulated usage for a training run.
  - [Imp.Training.FastSlow.CachedTrajectory](Imp.Training.FastSlow.CachedTrajectory.md): Portable trajectory retained for exact rollout reuse.
  - [Imp.Training.FastSlow.Checkpoint](Imp.Training.FastSlow.Checkpoint.md): Versioned, checksummed persistence for Fast-Slow training state.
  - [Imp.Training.FastSlow.Config](Imp.Training.FastSlow.Config.md): Immutable, credential-free configuration for Fast-Slow training runs.
  - [Imp.Training.FastSlow.DatasetState](Imp.Training.FastSlow.DatasetState.md): Deterministic dataset cursor, epoch, and random-state snapshot.
  - [Imp.Training.FastSlow.Event](Imp.Training.FastSlow.Event.md): Ordered durable operation event emitted by the Fast-Slow runner.
  - [Imp.Training.FastSlow.Lookahead](Imp.Training.FastSlow.Lookahead.md): Prefetched minibatch window and deterministic dataset progress.
  - [Imp.Training.FastSlow.OperationIntent](Imp.Training.FastSlow.OperationIntent.md): Durable intent and reconciliation state for one provider effect.
  - [Imp.Training.FastSlow.PromptPopulation](Imp.Training.FastSlow.PromptPopulation.md): Bounded prompt population used by the fast adaptation phase.
  - [Imp.Training.FastSlow.ReuseCache](Imp.Training.FastSlow.ReuseCache.md): Validated cache of portable rollout trajectories keyed by identity.
  - [Imp.Training.FastSlow.Rollout](Imp.Training.FastSlow.Rollout.md): One verified slow-training rollout with token and reward provenance.
  - [Imp.Training.FastSlow.Runner](Imp.Training.FastSlow.Runner.md): Executes the orchestration order of Algorithm 1 from "Learning, Fast and Slow"
without binding to a provider.
  - [Imp.Training.FastSlow.Runner.Context](Imp.Training.FastSlow.Runner.Context.md): Runtime-only backend and prefetched dataset context for a runner step.
  - [Imp.Training.FastSlow.State](Imp.Training.FastSlow.State.md): Validated durable state for the Fast-Slow training state machine.
  - [Imp.Training.FastSlow.Terminal](Imp.Training.FastSlow.Terminal.md): Terminal reason and details for a completed or stopped run.
  - [Imp.Training.FastSlow.Theta](Imp.Training.FastSlow.Theta.md): Immutable policy parameter identity and lineage node.
  - [Imp.Trajectory](Imp.Trajectory.md): ATIF-v1.8 projection of ordered native `Imp.Run.Event` observations.
  - [Imp.Usage](Imp.Usage.md): Per-prediction LM usage ledger.

- Extension interfaces
  - [Imp.Adapter](Imp.Adapter.md): Adapter behaviour for rendering prompts and parsing LM outputs.
  - [Imp.Clients.Trainer](Imp.Clients.Trainer.md): Behaviour for provider-specific training backends.
  - [Imp.Confidence.Scoring](Imp.Confidence.Scoring.md): Source-faithful scoring strategies for correctness and joint token logprob.
  - [Imp.Embeddings](Imp.Embeddings.md): Embedding behaviour plus deterministic local bag-of-words embeddings.
  - [Imp.GEPA.Acceptance](Imp.GEPA.Acceptance.md): Public constructors and evaluators for GEPA candidate acceptance policies.
  - [Imp.GEPA.ReflectionStrategy](Imp.GEPA.ReflectionStrategy.md): Public behaviour for trusted custom GEPA reflection strategies.
  - [Imp.HTTP](Imp.HTTP.md): Small injectable HTTP boundary used by provider clients.
  - [Imp.LM](Imp.LM.md): Behaviour for language model clients.
  - [Imp.Module](Imp.Module.md): Behaviour and safe dispatcher for executable Imp programs.
  - [Imp.Optimizer](Imp.Optimizer.md): Canonical execution contract for program and training optimizers.
  - [Imp.Optimizer.GEPA.BatchSampler](Imp.Optimizer.GEPA.BatchSampler.md): Stateful minibatch selection for GEPA.
  - [Imp.Optimizer.GEPA.Callback](Imp.Optimizer.GEPA.Callback.md): Synchronous, observational callbacks for GEPA optimization.
  - [Imp.Retrieve](Imp.Retrieve.md): Retriever behaviour and dispatch boundary for RAG-style Imp programs.
  - [Imp.Tracking.Backend](Imp.Tracking.Backend.md): Lifecycle contract implemented by experiment tracking backends.
  - [Imp.Tracking.Transport](Imp.Tracking.Transport.md): HTTP boundary used by tracking backends.
  - [Imp.Training.FastSlow.Backend](Imp.Training.FastSlow.Backend.md): Provider-neutral effects required by the Fast-Slow Algorithm 1 runner.

