Symfony Package Cheatsheet
Code-verified reference forpackages/symfony.
Package Wiring
Composer package:cognesy/instructor-symfony
Cognesy\Instructor\Symfony\
Cognesy\Instructor\Symfony\InstructorSymfonyBundle
instructor
InstructorSymfonyExtension:
packages/symfony/resources/config/core.yamlpackages/symfony/resources/config/polyglot.yamlpackages/symfony/resources/config/events.yamlpackages/symfony/resources/config/delivery.yamlpackages/symfony/resources/config/agent_ctrl.yamlpackages/symfony/resources/config/agents.yamlpackages/symfony/resources/config/sessions.yamlpackages/symfony/resources/config/telemetry.yamlpackages/symfony/resources/config/logging.yamlpackages/symfony/resources/config/testing.yamlpackages/symfony/resources/config/messenger.yaml
Config Root
Public Symfony config root:instructor
Configuration:
connectionsembeddingsextractionhttpeventsagent_ctrlagentssessionstelemetryloggingtestingdelivery
Config Translation
SymfonyConfigProvider is the framework-facing config adapter and container binding for:
Cognesy\Config\Contracts\CanProvideConfig
Cognesy\Polyglot\Inference\Config\LLMConfigCognesy\Polyglot\Embeddings\Config\EmbeddingsConfigCognesy\Instructor\Config\StructuredOutputConfigCognesy\Http\Config\HttpClientConfig
llm(string $connection = ''): LLMConfigembeddings(string $connection = ''): EmbeddingsConfigstructuredOutput(): StructuredOutputConfighttpClient(): HttpClientConfigget(string $path, mixed $default = null): mixedhas(string $path): bool
instructor.connections.defaultplus named connections underitemsorconnections- flat
instructor.connections.<name>connection maps - legacy
defaultfallback for LLM default selection
Container Surface
Public aliases and services available today:Cognesy\Config\Contracts\CanProvideConfigCognesy\Events\Contracts\CanHandleEventsCognesy\Http\HttpClientCognesy\Http\Contracts\CanSendHttpRequestsCognesy\Instructor\Symfony\AgentCtrl\SymfonyAgentCtrlCognesy\Instructor\Symfony\AgentCtrl\SymfonyAgentCtrlRuntimesCognesy\Polyglot\Inference\Contracts\CanCreateInferenceCognesy\Polyglot\Inference\InferenceCognesy\Polyglot\Embeddings\Contracts\CanCreateEmbeddingsCognesy\Polyglot\Embeddings\EmbeddingsCognesy\Instructor\Contracts\CanCreateStructuredOutputCognesy\Instructor\StructuredOutput
Cognesy\AgentCtrl\Builder\ClaudeCodeBridgeBuilderCognesy\AgentCtrl\Builder\CodexBridgeBuilderCognesy\AgentCtrl\Builder\OpenCodeBridgeBuilderCognesy\AgentCtrl\Builder\PiBridgeBuilderCognesy\AgentCtrl\Builder\GeminiBridgeBuilderCognesy\Instructor\Symfony\Support\SymfonyConfigProviderCognesy\Instructor\Symfony\Support\SymfonyEventBusFactoryCognesy\Instructor\Symfony\Support\SymfonyHttpTransportFactoryCognesy\Events\Dispatchers\SymfonyEventDispatcherCognesy\Events\Dispatchers\EventDispatcherCognesy\Polyglot\Inference\InferenceRuntimeCognesy\Polyglot\Embeddings\EmbeddingsRuntimeCognesy\Instructor\StructuredOutputRuntimeCognesy\Instructor\Symfony\Delivery\Progress\ProgressEventDispatcherCognesy\Instructor\Symfony\Delivery\Progress\Contracts\CanHandleProgressUpdatesCognesy\Instructor\Symfony\Delivery\Cli\SymfonyCliObservationFormatterCognesy\Instructor\Symfony\Delivery\Cli\SymfonyCliObservationPrinterCognesy\Telemetry\Application\TelemetryCognesy\Telemetry\Domain\Contract\CanExportObservationsCognesy\Instructor\Symfony\Telemetry\NullTelemetryExporterCognesy\Instructor\Symfony\Support\SymfonyLoggingFactory
Event Wiring
The bundle ownsCanHandleEvents through a package-local event bus:
Cognesy\Events\Contracts\CanHandleEvents->Cognesy\Events\Dispatchers\EventDispatcher
- the package creates a
Cognesy\Events\Dispatchers\SymfonyEventDispatcherbridge around Symfony’sevent_dispatcherwhen available - the package event bus uses that bridge as its parent when
instructor.events.dispatch_to_symfonyis truthy - legacy
instructor.events.bridge_to_symfonyis still honored as a fallback key - if neither key is set, bridging defaults to
true
HTTP Transport
The bundle ownsCanSendHttpRequests through Cognesy\Http\HttpClient.
Transport rules implemented by SymfonyHttpTransportFactory:
instructor.http.driver: symfonyuses Symfony’shttp_clientservice when it is availableinstructor.http.driver: frameworkandinstructor.http.driver: http_clientare normalized tosymfony- if the Symfony client service is missing, or the configured driver is not
symfony, the package falls back to the standardHttpClientBuilderdriver resolution path
Runtime Services
AgentCtrl:Cognesy\Instructor\Symfony\AgentCtrl\SymfonyAgentCtrlis the package-owned container entrypoint for CLI code-agent buildersCognesy\Instructor\Symfony\AgentCtrl\SymfonyAgentCtrlRuntimesis the package-owned registry for context-specific AgentCtrl execution adapters- backend builder services are public and non-shared for
ClaudeCodeBridgeBuilder,CodexBridgeBuilder,OpenCodeBridgeBuilder,PiBridgeBuilder, andGeminiBridgeBuilder - named service IDs exist for
instructor.agent_ctrl,instructor.agent_ctrl.builder.default, andinstructor.agent_ctrl.builder.<backend> - backend builders inherit shared defaults from
instructor.agent_ctrl.defaultsand per-backend overrides frominstructor.agent_ctrl.backends.<backend> - builder access is guarded by
instructor.agent_ctrl.enabled - runtime service IDs exist for
instructor.agent_ctrl.runtimes,instructor.agent_ctrl.runtime.cli,instructor.agent_ctrl.runtime.http, andinstructor.agent_ctrl.runtime.messenger - runtime adapters expose explicit policy for
cli,http, andmessengerentrypoints so Symfony applications can check whether inline execution is allowed or should be handed off to Messenger - runtime adapters also expose continuation seams through
continuationPolicy(),continuation(),continueLast(),resumeSession(), andhandoff(AgentResponse) continue_lastreferences are same-context only; usehandoff()/resumeSession()when handing work from HTTP or CLI into Messenger
Cognesy\Polyglot\Inference\InferenceRuntimeis created fromLLMConfig,CanHandleEvents, andCanSendHttpRequestsCognesy\Polyglot\Inference\Contracts\CanCreateInferencealiases that runtimeCognesy\Polyglot\Inference\Inferenceis registered as a public service
Cognesy\Polyglot\Embeddings\EmbeddingsRuntimeis created fromEmbeddingsConfig,CanHandleEvents, andCanSendHttpRequestsCognesy\Polyglot\Embeddings\Contracts\CanCreateEmbeddingsaliases that runtimeCognesy\Polyglot\Embeddings\Embeddingsis registered as a public service
Cognesy\Instructor\StructuredOutputRuntimeis created fromLLMConfig,StructuredOutputConfig,CanHandleEvents, andCanSendHttpRequestsCognesy\Instructor\Contracts\CanCreateStructuredOutputaliases that runtimeCognesy\Instructor\StructuredOutputis registered as a public service
Service File Status
Service files that are currently placeholder-only:packages/symfony/resources/config/agents.yamlpackages/symfony/resources/config/sessions.yamlpackages/symfony/resources/config/testing.yaml
packages/symfony/resources/config/core.yamlpackages/symfony/resources/config/polyglot.yamlpackages/symfony/resources/config/events.yamlpackages/symfony/resources/config/delivery.yamlpackages/symfony/resources/config/agent_ctrl.yamlpackages/symfony/resources/config/telemetry.yamlpackages/symfony/resources/config/logging.yamlpackages/symfony/resources/config/messenger.yaml
- bundle registration
- config tree and config translation
- AgentCtrl container entrypoints and runtime adapters
- core event wiring
- HTTP transport wiring
- public inference, embeddings, and structured output services
- native-agent registry and session-store seams
- telemetry services and lifecycle hooks
- logging services and presets
- progress projection, CLI observation, and Messenger delivery seams
- repository-local testing helpers and documented override patterns
- classes under
packages/symfony/tests/Support - split-package publication bootstrap and Packagist registration
Documentation
Reference docs:packages/symfony/README.mdpackages/symfony/docs/overview.mdpackages/symfony/docs/configuration.mdpackages/symfony/docs/quickstart.mdpackages/symfony/docs/runtime-surfaces.mdpackages/symfony/docs/sessions.mdpackages/symfony/docs/testing.mdpackages/symfony/docs/telemetry.mdpackages/symfony/docs/logging.mdpackages/symfony/docs/delivery.mdpackages/symfony/docs/operations.mdpackages/symfony/docs/migration.md