Skip to main content

Symfony Package Cheatsheet

Code-verified reference for packages/symfony.

Package Wiring

Composer package:
  • cognesy/instructor-symfony
Namespace root:
  • Cognesy\Instructor\Symfony\
Bundle entrypoint:
  • Cognesy\Instructor\Symfony\InstructorSymfonyBundle
Bundle extension alias:
  • instructor
Service definitions loaded by InstructorSymfonyExtension:
  • packages/symfony/resources/config/core.yaml
  • packages/symfony/resources/config/polyglot.yaml
  • packages/symfony/resources/config/events.yaml
  • packages/symfony/resources/config/delivery.yaml
  • packages/symfony/resources/config/agent_ctrl.yaml
  • packages/symfony/resources/config/agents.yaml
  • packages/symfony/resources/config/sessions.yaml
  • packages/symfony/resources/config/telemetry.yaml
  • packages/symfony/resources/config/logging.yaml
  • packages/symfony/resources/config/testing.yaml
  • packages/symfony/resources/config/messenger.yaml

Config Root

Public Symfony config root:
  • instructor
Top-level keys accepted by Configuration:
  • connections
  • embeddings
  • extraction
  • http
  • events
  • agent_ctrl
  • agents
  • sessions
  • telemetry
  • logging
  • testing
  • delivery

Config Translation

SymfonyConfigProvider is the framework-facing config adapter and container binding for:
  • Cognesy\Config\Contracts\CanProvideConfig
Typed config objects created from Symfony config:
  • Cognesy\Polyglot\Inference\Config\LLMConfig
  • Cognesy\Polyglot\Embeddings\Config\EmbeddingsConfig
  • Cognesy\Instructor\Config\StructuredOutputConfig
  • Cognesy\Http\Config\HttpClientConfig
Useful provider methods:
  • llm(string $connection = ''): LLMConfig
  • embeddings(string $connection = ''): EmbeddingsConfig
  • structuredOutput(): StructuredOutputConfig
  • httpClient(): HttpClientConfig
  • get(string $path, mixed $default = null): mixed
  • has(string $path): bool
Supported lookup shapes:
  • instructor.connections.default plus named connections under items or connections
  • flat instructor.connections.<name> connection maps
  • legacy default fallback for LLM default selection

Container Surface

Public aliases and services available today:
  • Cognesy\Config\Contracts\CanProvideConfig
  • Cognesy\Events\Contracts\CanHandleEvents
  • Cognesy\Http\HttpClient
  • Cognesy\Http\Contracts\CanSendHttpRequests
  • Cognesy\Instructor\Symfony\AgentCtrl\SymfonyAgentCtrl
  • Cognesy\Instructor\Symfony\AgentCtrl\SymfonyAgentCtrlRuntimes
  • Cognesy\Polyglot\Inference\Contracts\CanCreateInference
  • Cognesy\Polyglot\Inference\Inference
  • Cognesy\Polyglot\Embeddings\Contracts\CanCreateEmbeddings
  • Cognesy\Polyglot\Embeddings\Embeddings
  • Cognesy\Instructor\Contracts\CanCreateStructuredOutput
  • Cognesy\Instructor\StructuredOutput
Registered support services:
  • Cognesy\AgentCtrl\Builder\ClaudeCodeBridgeBuilder
  • Cognesy\AgentCtrl\Builder\CodexBridgeBuilder
  • Cognesy\AgentCtrl\Builder\OpenCodeBridgeBuilder
  • Cognesy\AgentCtrl\Builder\PiBridgeBuilder
  • Cognesy\AgentCtrl\Builder\GeminiBridgeBuilder
  • Cognesy\Instructor\Symfony\Support\SymfonyConfigProvider
  • Cognesy\Instructor\Symfony\Support\SymfonyEventBusFactory
  • Cognesy\Instructor\Symfony\Support\SymfonyHttpTransportFactory
  • Cognesy\Events\Dispatchers\SymfonyEventDispatcher
  • Cognesy\Events\Dispatchers\EventDispatcher
  • Cognesy\Polyglot\Inference\InferenceRuntime
  • Cognesy\Polyglot\Embeddings\EmbeddingsRuntime
  • Cognesy\Instructor\StructuredOutputRuntime
  • Cognesy\Instructor\Symfony\Delivery\Progress\ProgressEventDispatcher
  • Cognesy\Instructor\Symfony\Delivery\Progress\Contracts\CanHandleProgressUpdates
  • Cognesy\Instructor\Symfony\Delivery\Cli\SymfonyCliObservationFormatter
  • Cognesy\Instructor\Symfony\Delivery\Cli\SymfonyCliObservationPrinter
  • Cognesy\Telemetry\Application\Telemetry
  • Cognesy\Telemetry\Domain\Contract\CanExportObservations
  • Cognesy\Instructor\Symfony\Telemetry\NullTelemetryExporter
  • Cognesy\Instructor\Symfony\Support\SymfonyLoggingFactory

Event Wiring

The bundle owns CanHandleEvents through a package-local event bus:
  • Cognesy\Events\Contracts\CanHandleEvents -> Cognesy\Events\Dispatchers\EventDispatcher
Bridge behavior:
  • the package creates a Cognesy\Events\Dispatchers\SymfonyEventDispatcher bridge around Symfony’s event_dispatcher when available
  • the package event bus uses that bridge as its parent when instructor.events.dispatch_to_symfony is truthy
  • legacy instructor.events.bridge_to_symfony is still honored as a fallback key
  • if neither key is set, bridging defaults to true

HTTP Transport

The bundle owns CanSendHttpRequests through Cognesy\Http\HttpClient. Transport rules implemented by SymfonyHttpTransportFactory:
  • instructor.http.driver: symfony uses Symfony’s http_client service when it is available
  • instructor.http.driver: framework and instructor.http.driver: http_client are normalized to symfony
  • if the Symfony client service is missing, or the configured driver is not symfony, the package falls back to the standard HttpClientBuilder driver resolution path

Runtime Services

AgentCtrl:
  • Cognesy\Instructor\Symfony\AgentCtrl\SymfonyAgentCtrl is the package-owned container entrypoint for CLI code-agent builders
  • Cognesy\Instructor\Symfony\AgentCtrl\SymfonyAgentCtrlRuntimes is the package-owned registry for context-specific AgentCtrl execution adapters
  • backend builder services are public and non-shared for ClaudeCodeBridgeBuilder, CodexBridgeBuilder, OpenCodeBridgeBuilder, PiBridgeBuilder, and GeminiBridgeBuilder
  • named service IDs exist for instructor.agent_ctrl, instructor.agent_ctrl.builder.default, and instructor.agent_ctrl.builder.<backend>
  • backend builders inherit shared defaults from instructor.agent_ctrl.defaults and per-backend overrides from instructor.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, and instructor.agent_ctrl.runtime.messenger
  • runtime adapters expose explicit policy for cli, http, and messenger entrypoints 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(), and handoff(AgentResponse)
  • continue_last references are same-context only; use handoff() / resumeSession() when handing work from HTTP or CLI into Messenger
Inference:
  • Cognesy\Polyglot\Inference\InferenceRuntime is created from LLMConfig, CanHandleEvents, and CanSendHttpRequests
  • Cognesy\Polyglot\Inference\Contracts\CanCreateInference aliases that runtime
  • Cognesy\Polyglot\Inference\Inference is registered as a public service
Embeddings:
  • Cognesy\Polyglot\Embeddings\EmbeddingsRuntime is created from EmbeddingsConfig, CanHandleEvents, and CanSendHttpRequests
  • Cognesy\Polyglot\Embeddings\Contracts\CanCreateEmbeddings aliases that runtime
  • Cognesy\Polyglot\Embeddings\Embeddings is registered as a public service
Structured output:
  • Cognesy\Instructor\StructuredOutputRuntime is created from LLMConfig, StructuredOutputConfig, CanHandleEvents, and CanSendHttpRequests
  • Cognesy\Instructor\Contracts\CanCreateStructuredOutput aliases that runtime
  • Cognesy\Instructor\StructuredOutput is registered as a public service

Service File Status

Service files that are currently placeholder-only:
  • packages/symfony/resources/config/agents.yaml
  • packages/symfony/resources/config/sessions.yaml
  • packages/symfony/resources/config/testing.yaml
Service files that now back real package behavior:
  • packages/symfony/resources/config/core.yaml
  • packages/symfony/resources/config/polyglot.yaml
  • packages/symfony/resources/config/events.yaml
  • packages/symfony/resources/config/delivery.yaml
  • packages/symfony/resources/config/agent_ctrl.yaml
  • packages/symfony/resources/config/telemetry.yaml
  • packages/symfony/resources/config/logging.yaml
  • packages/symfony/resources/config/messenger.yaml
That means the current implemented Symfony surface includes:
  • 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
Still intentionally repository-local or not yet published as public runtime API:
  • classes under packages/symfony/tests/Support
  • split-package publication bootstrap and Packagist registration

Documentation

Reference docs:
  • packages/symfony/README.md
  • packages/symfony/docs/overview.md
  • packages/symfony/docs/configuration.md
  • packages/symfony/docs/quickstart.md
  • packages/symfony/docs/runtime-surfaces.md
  • packages/symfony/docs/sessions.md
  • packages/symfony/docs/testing.md
  • packages/symfony/docs/telemetry.md
  • packages/symfony/docs/logging.md
  • packages/symfony/docs/delivery.md
  • packages/symfony/docs/operations.md
  • packages/symfony/docs/migration.md