Laravel Package Cheatsheet¶
Code-verified reference for packages/laravel.
Package Wiring¶
Auto-discovered provider:
- Cognesy\Instructor\Laravel\InstructorServiceProvider
Auto-discovered aliases:
- StructuredOutput -> Cognesy\Instructor\Laravel\Facades\StructuredOutput
- Inference -> Cognesy\Instructor\Laravel\Facades\Inference
- Embeddings -> Cognesy\Instructor\Laravel\Facades\Embeddings
- AgentCtrl -> Cognesy\Instructor\Laravel\Facades\AgentCtrl
Service Container Bindings¶
Provided by InstructorServiceProvider::provides():
- Cognesy\Events\Contracts\CanHandleEvents
- Cognesy\Config\Contracts\CanProvideConfig
- Cognesy\Http\HttpClient
- Cognesy\Http\Contracts\CanSendHttpRequests
- Cognesy\Polyglot\Inference\Inference
- Cognesy\Polyglot\Embeddings\Embeddings
- Cognesy\Instructor\StructuredOutput
- Cognesy\Polyglot\Inference\Contracts\CanCreateInference
- Cognesy\Polyglot\Embeddings\Contracts\CanCreateEmbeddings
- Cognesy\Instructor\Contracts\CanCreateStructuredOutput
- Cognesy\Instructor\Laravel\Testing\StructuredOutputFake
- Cognesy\Instructor\Laravel\Testing\AgentCtrlFake
Facades¶
StructuredOutput facade:
- StructuredOutput::connection(string $name): Cognesy\Instructor\StructuredOutput|StructuredOutputFake
- StructuredOutput::fromConfig(LLMConfig $config): Cognesy\Instructor\StructuredOutput|StructuredOutputFake
- StructuredOutput::fake(array $responses = []): StructuredOutputFake
- forwards to Cognesy\Instructor\StructuredOutput (for example: with(...)->get())
Inference facade:
- Inference::connection(string $name): Cognesy\Polyglot\Inference\Inference|InferenceFake
- Inference::fromConfig(LLMConfig $config): Cognesy\Polyglot\Inference\Inference|InferenceFake
- Inference::fake(array $responses = []): InferenceFake
- forwards to Cognesy\Polyglot\Inference\Inference (for example: with(...)->get())
Embeddings facade:
- Embeddings::connection(string $name): Cognesy\Polyglot\Embeddings\Embeddings|EmbeddingsFake
- Embeddings::fromConfig(EmbeddingsConfig $config): Cognesy\Polyglot\Embeddings\Embeddings|EmbeddingsFake
- Embeddings::fake(array $responses = []): EmbeddingsFake
- forwards to Cognesy\Polyglot\Embeddings\Embeddings (for example: withInputs(...)->first())
AgentCtrl facade:
- AgentCtrl::fake(array $responses = []): AgentCtrlFake
- AgentCtrl::claudeCode(): ClaudeCodeBridgeBuilder|AgentCtrlFake
- AgentCtrl::codex(): CodexBridgeBuilder|AgentCtrlFake
- AgentCtrl::openCode(): OpenCodeBridgeBuilder|AgentCtrlFake
- AgentCtrl::make(AgentType $type): ClaudeCodeBridgeBuilder|CodexBridgeBuilder|OpenCodeBridgeBuilder|AgentCtrlFake
Testing Fakes¶
StructuredOutputFake:
- setup: respondWith(string $class, mixed $response), respondWithSequence(string $class, array $responses)
- assertions: assertExtracted, assertExtractedTimes, assertNothingExtracted, assertExtractedWith, assertUsedConnection, assertUsedModel
- inspection: recorded(): array
InferenceFake:
- setup: respondWith(string $pattern, string|array $response), respondWithSequence(array $responses)
- assertions: assertCalled, assertCalledTimes, assertNotCalled, assertCalledWith, assertUsedConnection, assertUsedModel, assertCalledWithTools
- inspection: recorded(): array
EmbeddingsFake:
- setup: respondWith(string $pattern, array $embedding), withDimensions(int $dimensions)
- assertions: assertCalled, assertCalledTimes, assertNotCalled, assertCalledWith, assertUsedConnection, assertUsedModel
- results: get(): object, first(): array, all(): array
- inspection: recorded(): array
AgentCtrlFake:
- builders: claudeCode(), codex(), openCode(), make(AgentType $type)
- builder config: withModel(string $model), withTimeout(int $seconds), inDirectory(string $path), withSandboxDriver(mixed $driver), withMaxRetries(int $retries)
- builder callbacks: onText(callable $handler), onToolUse(callable $handler), onComplete(callable $handler)
- execution: execute(string $prompt): AgentResponse, executeStreaming(string $prompt): AgentResponse
- assertions: assertExecuted, assertNotExecuted, assertExecutedTimes, assertExecutedWith, assertAgentType, assertUsedClaudeCode, assertUsedCodex, assertUsedOpenCode, assertStreaming
- inspection: getExecutions(): array, reset(): void
- static helpers: AgentCtrlFake::response(...), AgentCtrlFake::toolCall(...)
Artisan Commands¶
instructor:install {--force}instructor:test {--connection=} {--inference}make:response-model {name} {--collection} {--nested} {--description=} {--force}
Publish Tags¶
From InstructorServiceProvider:
- instructor-config -> publishes config/instructor.php
- instructor-stubs -> publishes resources/stubs to stubs/instructor
Config File¶
Main config file:
- packages/laravel/resources/config/instructor.php
Top-level keys:
- default
- connections
- embeddings
- extraction
- http
- logging
- events
- cache
- agents