Skip to content

Commit 509a871

Browse files
committed
fix(aibundle): missing proxy tag added for stores
1 parent c24eaea commit 509a871

File tree

2 files changed

+42
-6
lines changed

2 files changed

+42
-6
lines changed

src/ai-bundle/src/AiBundle.php

Lines changed: 17 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -101,6 +101,7 @@
101101
use Symfony\AI\Store\Document\VectorizerInterface;
102102
use Symfony\AI\Store\Indexer;
103103
use Symfony\AI\Store\IndexerInterface;
104+
use Symfony\AI\Store\ManagedStoreInterface;
104105
use Symfony\AI\Store\StoreInterface;
105106
use Symfony\Component\Clock\ClockInterface;
106107
use Symfony\Component\Config\Definition\Configurator\DefinitionConfigurator;
@@ -985,6 +986,7 @@ private function processStoreConfig(string $type, array $stores, ContainerBuilde
985986
->setLazy(true)
986987
->setArguments($arguments)
987988
->addTag('proxy', ['interface' => StoreInterface::class])
989+
->addTag('proxy', ['interface' => ManagedStoreInterface::class])
988990
->addTag('ai.store');
989991

990992
$container->setDefinition('ai.store.'.$type.'.'.$name, $definition);
@@ -1031,6 +1033,7 @@ private function processStoreConfig(string $type, array $stores, ContainerBuilde
10311033
$store['table'],
10321034
])
10331035
->addTag('proxy', ['interface' => StoreInterface::class])
1036+
->addTag('proxy', ['interface' => ManagedStoreInterface::class])
10341037
->addTag('ai.store');
10351038

10361039
$container->setDefinition('ai.store.'.$type.'.'.$name, $definition);
@@ -1065,6 +1068,7 @@ private function processStoreConfig(string $type, array $stores, ContainerBuilde
10651068
->setLazy(true)
10661069
->setArguments($arguments)
10671070
->addTag('proxy', ['interface' => StoreInterface::class])
1071+
->addTag('proxy', ['interface' => ManagedStoreInterface::class])
10681072
->addTag('ai.store');
10691073

10701074
$container->setDefinition('ai.store.'.$type.'.'.$name, $definition);
@@ -1106,6 +1110,7 @@ private function processStoreConfig(string $type, array $stores, ContainerBuilde
11061110
->setLazy(true)
11071111
->addTag('ai.store')
11081112
->addTag('proxy', ['interface' => StoreInterface::class])
1113+
->addTag('proxy', ['interface' => ManagedStoreInterface::class])
11091114
->setArguments($arguments);
11101115

11111116
$container->setDefinition('ai.store.'.$type.'.'.$name, $definition);
@@ -1129,6 +1134,7 @@ private function processStoreConfig(string $type, array $stores, ContainerBuilde
11291134
->setLazy(true)
11301135
->setArguments($arguments)
11311136
->addTag('proxy', ['interface' => StoreInterface::class])
1137+
->addTag('proxy', ['interface' => ManagedStoreInterface::class])
11321138
->addTag('ai.store');
11331139

11341140
$serviceId = 'ai.store.'.$type.'.'.$name;
@@ -1170,6 +1176,7 @@ private function processStoreConfig(string $type, array $stores, ContainerBuilde
11701176
->setLazy(true)
11711177
->setArguments($arguments)
11721178
->addTag('proxy', ['interface' => StoreInterface::class])
1179+
->addTag('proxy', ['interface' => ManagedStoreInterface::class])
11731180
->addTag('ai.store');
11741181

11751182
$container->setDefinition('ai.store.'.$type.'.'.$name, $definition);
@@ -1200,6 +1207,7 @@ private function processStoreConfig(string $type, array $stores, ContainerBuilde
12001207
->setLazy(true)
12011208
->setArguments($arguments)
12021209
->addTag('proxy', ['interface' => StoreInterface::class])
1210+
->addTag('proxy', ['interface' => ManagedStoreInterface::class])
12031211
->addTag('ai.store');
12041212

12051213
$container->setDefinition('ai.store.'.$type.'.'.$name, $definition);
@@ -1235,6 +1243,7 @@ private function processStoreConfig(string $type, array $stores, ContainerBuilde
12351243
->setLazy(true)
12361244
->setArguments($arguments)
12371245
->addTag('proxy', ['interface' => StoreInterface::class])
1246+
->addTag('proxy', ['interface' => ManagedStoreInterface::class])
12381247
->addTag('ai.store');
12391248

12401249
$container->setDefinition('ai.store.'.$type.'.'.$name, $definition);
@@ -1265,6 +1274,7 @@ private function processStoreConfig(string $type, array $stores, ContainerBuilde
12651274
->setLazy(true)
12661275
->setArguments($arguments)
12671276
->addTag('proxy', ['interface' => StoreInterface::class])
1277+
->addTag('proxy', ['interface' => ManagedStoreInterface::class])
12681278
->addTag('ai.store');
12691279

12701280
$container->setDefinition('ai.store.'.$type.'.'.$name, $definition);
@@ -1306,6 +1316,7 @@ private function processStoreConfig(string $type, array $stores, ContainerBuilde
13061316
->setLazy(true)
13071317
->setArguments($arguments)
13081318
->addTag('proxy', ['interface' => StoreInterface::class])
1319+
->addTag('proxy', ['interface' => ManagedStoreInterface::class])
13091320
->addTag('ai.store');
13101321

13111322
$container->setDefinition('ai.store.'.$type.'.'.$name, $definition);
@@ -1368,6 +1379,7 @@ private function processStoreConfig(string $type, array $stores, ContainerBuilde
13681379
->setLazy(true)
13691380
->setArguments($arguments)
13701381
->addTag('proxy', ['interface' => StoreInterface::class])
1382+
->addTag('proxy', ['interface' => ManagedStoreInterface::class])
13711383
->addTag('ai.store');
13721384

13731385
$container->setDefinition('ai.store.'.$type.'.'.$name, $definition);
@@ -1395,6 +1407,7 @@ private function processStoreConfig(string $type, array $stores, ContainerBuilde
13951407
$store['distance'],
13961408
])
13971409
->addTag('proxy', ['interface' => StoreInterface::class])
1410+
->addTag('proxy', ['interface' => ManagedStoreInterface::class])
13981411
->addTag('ai.store');
13991412

14001413
$container->setDefinition('ai.store.'.$type.'.'.$name, $definition);
@@ -1437,6 +1450,7 @@ private function processStoreConfig(string $type, array $stores, ContainerBuilde
14371450
->setLazy(true)
14381451
->setArguments($arguments)
14391452
->addTag('proxy', ['interface' => StoreInterface::class])
1453+
->addTag('proxy', ['interface' => ManagedStoreInterface::class])
14401454
->addTag('ai.store');
14411455

14421456
$container->setDefinition('ai.store.'.$type.'.'.$name, $definition);
@@ -1467,6 +1481,7 @@ private function processStoreConfig(string $type, array $stores, ContainerBuilde
14671481
->setLazy(true)
14681482
->setArguments($arguments)
14691483
->addTag('proxy', ['interface' => StoreInterface::class])
1484+
->addTag('proxy', ['interface' => ManagedStoreInterface::class])
14701485
->addTag('ai.store');
14711486

14721487
$container->setDefinition('ai.store.'.$type.'.'.$name, $definition);
@@ -1487,6 +1502,7 @@ private function processStoreConfig(string $type, array $stores, ContainerBuilde
14871502
$store['collection'],
14881503
])
14891504
->addTag('proxy', ['interface' => StoreInterface::class])
1505+
->addTag('proxy', ['interface' => ManagedStoreInterface::class])
14901506
->addTag('ai.store');
14911507

14921508
$container->setDefinition('ai.store.'.$type.'.'.$name, $definition);
@@ -1531,6 +1547,7 @@ private function processStoreConfig(string $type, array $stores, ContainerBuilde
15311547
->setLazy(true)
15321548
->setArguments($arguments)
15331549
->addTag('proxy', ['interface' => StoreInterface::class])
1550+
->addTag('proxy', ['interface' => ManagedStoreInterface::class])
15341551
->addTag('ai.store');
15351552

15361553
$container->setDefinition('ai.store.'.$type.'.'.$name, $definition);

src/ai-bundle/tests/DependencyInjection/AiBundleTest.php

Lines changed: 25 additions & 6 deletions
Original file line numberDiff line numberDiff line change
@@ -40,6 +40,7 @@
4040
use Symfony\AI\Store\Document\Vectorizer;
4141
use Symfony\AI\Store\Document\VectorizerInterface;
4242
use Symfony\AI\Store\IndexerInterface;
43+
use Symfony\AI\Store\ManagedStoreInterface;
4344
use Symfony\AI\Store\StoreInterface;
4445
use Symfony\Component\Clock\ClockInterface;
4546
use Symfony\Component\Config\Definition\Exception\InvalidConfigurationException;
@@ -515,7 +516,10 @@ public function testCacheStoreCanBeConfigured()
515516
$this->assertTrue($strategyDefinition->isLazy());
516517

517518
$this->assertTrue($definition->hasTag('proxy'));
518-
$this->assertSame([['interface' => StoreInterface::class]], $definition->getTag('proxy'));
519+
$this->assertSame([
520+
['interface' => StoreInterface::class],
521+
['interface' => ManagedStoreInterface::class],
522+
], $definition->getTag('proxy'));
519523
$this->assertTrue($definition->hasTag('ai.store'));
520524

521525
$this->assertTrue($container->hasAlias('.Symfony\AI\Store\StoreInterface $my_cache_store'));
@@ -553,7 +557,10 @@ public function testCacheStoreWithCustomKeyCanBeConfigured()
553557
$this->assertTrue($strategyDefinition->isLazy());
554558

555559
$this->assertTrue($definition->hasTag('proxy'));
556-
$this->assertSame([['interface' => StoreInterface::class]], $definition->getTag('proxy'));
560+
$this->assertSame([
561+
['interface' => StoreInterface::class],
562+
['interface' => ManagedStoreInterface::class],
563+
], $definition->getTag('proxy'));
557564
$this->assertTrue($definition->hasTag('ai.store'));
558565

559566
$this->assertTrue($container->hasAlias('.Symfony\AI\Store\StoreInterface $cache_my_cache_store_with_custom_key'));
@@ -596,7 +603,10 @@ public function testCacheStoreWithCustomStrategyCanBeConfigured()
596603
$this->assertSame(DistanceStrategy::CHEBYSHEV_DISTANCE, $strategyDefinition->getArgument(0));
597604

598605
$this->assertTrue($definition->hasTag('proxy'));
599-
$this->assertSame([['interface' => StoreInterface::class]], $definition->getTag('proxy'));
606+
$this->assertSame([
607+
['interface' => StoreInterface::class],
608+
['interface' => ManagedStoreInterface::class],
609+
], $definition->getTag('proxy'));
600610
$this->assertTrue($definition->hasTag('ai.store'));
601611

602612
$this->assertTrue($container->hasAlias('.Symfony\AI\Store\StoreInterface $cache_my_cache_store_with_custom_strategy'));
@@ -640,7 +650,10 @@ public function testCacheStoreWithCustomStrategyAndKeyCanBeConfigured()
640650
$this->assertSame(DistanceStrategy::CHEBYSHEV_DISTANCE, $strategyDefinition->getArgument(0));
641651

642652
$this->assertTrue($definition->hasTag('proxy'));
643-
$this->assertSame([['interface' => StoreInterface::class]], $definition->getTag('proxy'));
653+
$this->assertSame([
654+
['interface' => StoreInterface::class],
655+
['interface' => ManagedStoreInterface::class],
656+
], $definition->getTag('proxy'));
644657
$this->assertTrue($definition->hasTag('ai.store'));
645658

646659
$this->assertTrue($container->hasAlias('.Symfony\AI\Store\StoreInterface $cache_my_cache_store_with_custom_strategy_and_custom_key'));
@@ -749,7 +762,10 @@ public function testClickhouseStoreWithCustomHttpClientCanBeConfigured()
749762
$this->assertSame('my_table', (string) $definition->getArgument(2));
750763

751764
$this->assertTrue($definition->hasTag('proxy'));
752-
$this->assertSame([['interface' => StoreInterface::class]], $definition->getTag('proxy'));
765+
$this->assertSame([
766+
['interface' => StoreInterface::class],
767+
['interface' => ManagedStoreInterface::class],
768+
], $definition->getTag('proxy'));
753769
$this->assertTrue($definition->hasTag('ai.store'));
754770

755771
$this->assertTrue($container->hasAlias('.Symfony\AI\Store\StoreInterface $my_clickhouse_store'));
@@ -789,7 +805,10 @@ public function testClickhouseStoreWithCustomDsnCanBeConfigured()
789805
$this->assertSame('my_table', (string) $definition->getArgument(2));
790806

791807
$this->assertTrue($definition->hasTag('proxy'));
792-
$this->assertSame([['interface' => StoreInterface::class]], $definition->getTag('proxy'));
808+
$this->assertSame([
809+
['interface' => StoreInterface::class],
810+
['interface' => ManagedStoreInterface::class],
811+
], $definition->getTag('proxy'));
793812
$this->assertTrue($definition->hasTag('ai.store'));
794813

795814
$this->assertTrue($container->hasAlias('.Symfony\AI\Store\StoreInterface $my_clickhouse_store'));

0 commit comments

Comments
 (0)