Skip to main content

Module linker

Module linker 

Source
Expand description

Spawner Linker — a Service-internal helper that takes a compiled CompiledAgentTable (the base SpawnerAdapter), wraps it with SpawnerLayers via the LayerRegistry, and returns the finished Arc<dyn SpawnerAdapter>.

The old inline loop inside task_launch.rs scattered the linker responsibility across the Service path. This module consolidates it into one place, so the Blueprint → Compiled → Linked three-stage split is expressed at the file boundary.

§Path

Compiler.compile(&Blueprint) → CompiledBlueprint { router: Arc<CompiledAgentTable>, ... }
    │
    │ link(router, blueprint.spawner_hints.layers, engine)
    ▼
`Arc<dyn SpawnerAdapter>`   (base + every base_factories[*] + every lookup_hint(hints)[*] wrapped)
    │
    ▼ EngineDispatcher::with_spawner
engine.dispatch_attempt_with(..., &linked) → flow eval

Unregistered hint keys are silently skipped — the LayerRegistry default is lenient, so Blueprints stay portable. A strict mode is a carry.

Functions§

link
Wrap the compiled base SpawnerAdapter with Layers and return the finished value.