diff --git a/src/agent/tests/StructuredOutput/AgentProcessorTest.php b/src/agent/tests/StructuredOutput/AgentProcessorTest.php index 9bff7062e..150a87591 100644 --- a/src/agent/tests/StructuredOutput/AgentProcessorTest.php +++ b/src/agent/tests/StructuredOutput/AgentProcessorTest.php @@ -23,8 +23,8 @@ use Symfony\AI\Fixtures\StructuredOutput\Step; use Symfony\AI\Platform\Capability; use Symfony\AI\Platform\Message\MessageBag; +use Symfony\AI\Platform\Metadata\Metadata; use Symfony\AI\Platform\Model; -use Symfony\AI\Platform\Result\Metadata\Metadata; use Symfony\AI\Platform\Result\ObjectResult; use Symfony\AI\Platform\Result\TextResult; use Symfony\Component\Serializer\SerializerInterface; diff --git a/src/platform/src/Message/MessageBag.php b/src/platform/src/Message/MessageBag.php index 87ad0c5b6..63d06ce37 100644 --- a/src/platform/src/Message/MessageBag.php +++ b/src/platform/src/Message/MessageBag.php @@ -11,6 +11,8 @@ namespace Symfony\AI\Platform\Message; +use Symfony\AI\Platform\Metadata\MetadataAwareTrait; + /** * @final * @@ -18,6 +20,8 @@ */ class MessageBag implements MessageBagInterface { + use MetadataAwareTrait; + /** * @var list */ diff --git a/src/platform/src/Message/MessageBagInterface.php b/src/platform/src/Message/MessageBagInterface.php index 070c51969..e1b1896d4 100644 --- a/src/platform/src/Message/MessageBagInterface.php +++ b/src/platform/src/Message/MessageBagInterface.php @@ -11,6 +11,8 @@ namespace Symfony\AI\Platform\Message; +use Symfony\AI\Platform\Metadata\Metadata; + /** * @author Oskar Stark */ @@ -36,4 +38,6 @@ public function prepend(MessageInterface $message): self; public function containsAudio(): bool; public function containsImage(): bool; + + public function getMetadata(): Metadata; } diff --git a/src/platform/src/Result/Metadata/Metadata.php b/src/platform/src/Metadata/Metadata.php similarity index 97% rename from src/platform/src/Result/Metadata/Metadata.php rename to src/platform/src/Metadata/Metadata.php index 07ce7c3b1..f3c387d39 100644 --- a/src/platform/src/Result/Metadata/Metadata.php +++ b/src/platform/src/Metadata/Metadata.php @@ -9,7 +9,7 @@ * file that was distributed with this source code. */ -namespace Symfony\AI\Platform\Result\Metadata; +namespace Symfony\AI\Platform\Metadata; /** * @implements \IteratorAggregate diff --git a/src/platform/src/Result/Metadata/MetadataAwareTrait.php b/src/platform/src/Metadata/MetadataAwareTrait.php similarity index 90% rename from src/platform/src/Result/Metadata/MetadataAwareTrait.php rename to src/platform/src/Metadata/MetadataAwareTrait.php index bc367521e..de679d6f0 100644 --- a/src/platform/src/Result/Metadata/MetadataAwareTrait.php +++ b/src/platform/src/Metadata/MetadataAwareTrait.php @@ -9,7 +9,7 @@ * file that was distributed with this source code. */ -namespace Symfony\AI\Platform\Result\Metadata; +namespace Symfony\AI\Platform\Metadata; /** * @author Denis Zunke diff --git a/src/platform/src/Result/BaseResult.php b/src/platform/src/Result/BaseResult.php index d439b7848..fb447594d 100644 --- a/src/platform/src/Result/BaseResult.php +++ b/src/platform/src/Result/BaseResult.php @@ -11,7 +11,7 @@ namespace Symfony\AI\Platform\Result; -use Symfony\AI\Platform\Result\Metadata\MetadataAwareTrait; +use Symfony\AI\Platform\Metadata\MetadataAwareTrait; /** * Base result of converted result classes. diff --git a/src/platform/src/Result/ResultInterface.php b/src/platform/src/Result/ResultInterface.php index 6f426c44d..63ac7a435 100644 --- a/src/platform/src/Result/ResultInterface.php +++ b/src/platform/src/Result/ResultInterface.php @@ -11,8 +11,8 @@ namespace Symfony\AI\Platform\Result; +use Symfony\AI\Platform\Metadata\Metadata; use Symfony\AI\Platform\Result\Exception\RawResultAlreadySetException; -use Symfony\AI\Platform\Result\Metadata\Metadata; /** * @author Christopher Hertel diff --git a/src/platform/tests/Bridge/Mistral/TokenOutputProcessorTest.php b/src/platform/tests/Bridge/Mistral/TokenOutputProcessorTest.php index 0358b3e0c..81815250d 100644 --- a/src/platform/tests/Bridge/Mistral/TokenOutputProcessorTest.php +++ b/src/platform/tests/Bridge/Mistral/TokenOutputProcessorTest.php @@ -18,8 +18,8 @@ use Symfony\AI\Agent\Output; use Symfony\AI\Platform\Bridge\Mistral\TokenOutputProcessor; use Symfony\AI\Platform\Message\MessageBagInterface; +use Symfony\AI\Platform\Metadata\Metadata; use Symfony\AI\Platform\Model; -use Symfony\AI\Platform\Result\Metadata\Metadata; use Symfony\AI\Platform\Result\Metadata\TokenUsage; use Symfony\AI\Platform\Result\RawHttpResult; use Symfony\AI\Platform\Result\ResultInterface; diff --git a/src/platform/tests/Bridge/OpenAi/TokenOutputProcessorTest.php b/src/platform/tests/Bridge/OpenAi/TokenOutputProcessorTest.php index 328729f38..c981e241e 100644 --- a/src/platform/tests/Bridge/OpenAi/TokenOutputProcessorTest.php +++ b/src/platform/tests/Bridge/OpenAi/TokenOutputProcessorTest.php @@ -18,8 +18,8 @@ use Symfony\AI\Agent\Output; use Symfony\AI\Platform\Bridge\OpenAi\TokenOutputProcessor; use Symfony\AI\Platform\Message\MessageBagInterface; +use Symfony\AI\Platform\Metadata\Metadata; use Symfony\AI\Platform\Model; -use Symfony\AI\Platform\Result\Metadata\Metadata; use Symfony\AI\Platform\Result\Metadata\TokenUsage; use Symfony\AI\Platform\Result\RawHttpResult; use Symfony\AI\Platform\Result\ResultInterface; diff --git a/src/platform/tests/Message/MessageBagTest.php b/src/platform/tests/Message/MessageBagTest.php index 1328b8ad7..dfc0ec604 100644 --- a/src/platform/tests/Message/MessageBagTest.php +++ b/src/platform/tests/Message/MessageBagTest.php @@ -166,4 +166,17 @@ public function testContainsImageReturnsTrueWithImage() $this->assertTrue($messageBag->containsImage()); } + + public function testItCanHandleMetadata() + { + $messageBag = new MessageBag(); + $metadata = $messageBag->getMetadata(); + + $this->assertCount(0, $metadata); + + $metadata->add('key', 'value'); + $metadata = $messageBag->getMetadata(); + + $this->assertCount(1, $metadata); + } } diff --git a/src/platform/tests/Result/Metadata/MetadataAwareTraitTest.php b/src/platform/tests/Metadata/MetadataAwareTraitTest.php similarity index 85% rename from src/platform/tests/Result/Metadata/MetadataAwareTraitTest.php rename to src/platform/tests/Metadata/MetadataAwareTraitTest.php index 4007d8e30..bbd4e8b2c 100644 --- a/src/platform/tests/Result/Metadata/MetadataAwareTraitTest.php +++ b/src/platform/tests/Metadata/MetadataAwareTraitTest.php @@ -9,14 +9,14 @@ * file that was distributed with this source code. */ -namespace Symfony\AI\Platform\Tests\Result\Metadata; +namespace Symfony\AI\Platform\Tests\Metadata; use PHPUnit\Framework\Attributes\CoversTrait; use PHPUnit\Framework\Attributes\Small; use PHPUnit\Framework\Attributes\UsesClass; use PHPUnit\Framework\TestCase; -use Symfony\AI\Platform\Result\Metadata\Metadata; -use Symfony\AI\Platform\Result\Metadata\MetadataAwareTrait; +use Symfony\AI\Platform\Metadata\Metadata; +use Symfony\AI\Platform\Metadata\MetadataAwareTrait; #[CoversTrait(MetadataAwareTrait::class)] #[Small] diff --git a/src/platform/tests/Result/Metadata/MetadataTest.php b/src/platform/tests/Metadata/MetadataTest.php similarity index 97% rename from src/platform/tests/Result/Metadata/MetadataTest.php rename to src/platform/tests/Metadata/MetadataTest.php index e59ea2d1a..e553f5f5d 100644 --- a/src/platform/tests/Result/Metadata/MetadataTest.php +++ b/src/platform/tests/Metadata/MetadataTest.php @@ -9,12 +9,12 @@ * file that was distributed with this source code. */ -namespace Symfony\AI\Platform\Tests\Result\Metadata; +namespace Symfony\AI\Platform\Tests\Metadata; use PHPUnit\Framework\Attributes\CoversClass; use PHPUnit\Framework\Attributes\Small; use PHPUnit\Framework\TestCase; -use Symfony\AI\Platform\Result\Metadata\Metadata; +use Symfony\AI\Platform\Metadata\Metadata; #[CoversClass(Metadata::class)] #[Small] diff --git a/src/platform/tests/Result/BaseResultTest.php b/src/platform/tests/Result/BaseResultTest.php index ee5e252f5..6866b4c60 100644 --- a/src/platform/tests/Result/BaseResultTest.php +++ b/src/platform/tests/Result/BaseResultTest.php @@ -16,10 +16,10 @@ use PHPUnit\Framework\Attributes\UsesClass; use PHPUnit\Framework\Attributes\UsesTrait; use PHPUnit\Framework\TestCase; +use Symfony\AI\Platform\Metadata\Metadata; +use Symfony\AI\Platform\Metadata\MetadataAwareTrait; use Symfony\AI\Platform\Result\BaseResult; use Symfony\AI\Platform\Result\Exception\RawResultAlreadySetException; -use Symfony\AI\Platform\Result\Metadata\Metadata; -use Symfony\AI\Platform\Result\Metadata\MetadataAwareTrait; use Symfony\AI\Platform\Result\RawResultAwareTrait; use Symfony\AI\Platform\Result\RawResultInterface; diff --git a/src/platform/tests/Result/ResultPromiseTest.php b/src/platform/tests/Result/ResultPromiseTest.php index 8040bd170..9eeb4dac9 100644 --- a/src/platform/tests/Result/ResultPromiseTest.php +++ b/src/platform/tests/Result/ResultPromiseTest.php @@ -15,9 +15,9 @@ use PHPUnit\Framework\Attributes\Small; use PHPUnit\Framework\Attributes\UsesClass; use PHPUnit\Framework\TestCase; +use Symfony\AI\Platform\Metadata\Metadata; use Symfony\AI\Platform\Result\BaseResult; use Symfony\AI\Platform\Result\Exception\RawResultAlreadySetException; -use Symfony\AI\Platform\Result\Metadata\Metadata; use Symfony\AI\Platform\Result\RawHttpResult; use Symfony\AI\Platform\Result\RawResultInterface; use Symfony\AI\Platform\Result\ResultInterface;