44
55use App \Domain \Memory \Actions \RetrieveRelevantMemoriesAction ;
66use App \Domain \Memory \Actions \StoreMemoryAction ;
7+ use App \Domain \Memory \Enums \MemoryBeliefStatus ;
8+ use App \Domain \Memory \Enums \MemoryBeliefType ;
9+ use App \Domain \Memory \Enums \MemoryPreferenceSubtype ;
710use App \Domain \Memory \Models \Memory ;
811use App \Http \Controllers \Controller ;
912use App \Http \Resources \Api \V1 \MemoryResource ;
@@ -25,6 +28,9 @@ public function index(Request $request): AnonymousResourceCollection
2528 AllowedFilter::exact ('agent_id ' ),
2629 AllowedFilter::exact ('project_id ' ),
2730 AllowedFilter::exact ('source_type ' ),
31+ AllowedFilter::exact ('belief_type ' ),
32+ AllowedFilter::exact ('belief_status ' ),
33+ AllowedFilter::exact ('domain ' ),
2834 AllowedFilter::partial ('content ' ),
2935 )
3036 ->allowedSorts ('created_at ' , 'confidence ' )
@@ -51,6 +57,7 @@ public function search(Request $request, RetrieveRelevantMemoriesAction $action)
5157 'top_k ' => ['sometimes ' , 'integer ' , 'min:1 ' , 'max:50 ' ],
5258 'threshold ' => ['sometimes ' , 'numeric ' , 'min:0 ' , 'max:1 ' ],
5359 'scope ' => ['sometimes ' , 'in:agent,team,project ' ],
60+ 'domain ' => ['sometimes ' , 'nullable ' , 'string ' , 'max:64 ' ],
5461 ]);
5562
5663 $ memories = $ action ->execute (
@@ -61,6 +68,7 @@ public function search(Request $request, RetrieveRelevantMemoriesAction $action)
6168 threshold: $ request ->input ('threshold ' ),
6269 scope: $ request ->input ('scope ' , $ request ->has ('agent_id ' ) ? 'agent ' : 'team ' ),
6370 teamId: $ request ->user ()->current_team_id ,
71+ domain: $ request ->input ('domain ' ),
6472 );
6573
6674 return response ()->json ([
@@ -108,6 +116,11 @@ public function store(Request $request, StoreMemoryAction $action): JsonResponse
108116 'metadata ' => ['sometimes ' , 'array ' ],
109117 'tags ' => ['sometimes ' , 'array ' ],
110118 'confidence ' => ['sometimes ' , 'numeric ' , 'min:0 ' , 'max:1 ' ],
119+ 'belief_type ' => ['sometimes ' , 'nullable ' , 'string ' , 'in:preference,decision,entity,relation,open_question ' ],
120+ 'preference_subtype ' => ['sometimes ' , 'nullable ' , 'string ' , 'in:expertise,style ' ],
121+ 'why_it_matters ' => ['sometimes ' , 'nullable ' , 'string ' , 'max:2000 ' ],
122+ 'belief_status ' => ['sometimes ' , 'string ' , 'in:active,inferred,exploratory,superseded ' ],
123+ 'domain ' => ['sometimes ' , 'nullable ' , 'string ' , 'max:64 ' ],
111124 ]);
112125
113126 $ memories = $ action ->execute (
@@ -120,6 +133,11 @@ public function store(Request $request, StoreMemoryAction $action): JsonResponse
120133 metadata: $ request ->input ('metadata ' , []),
121134 confidence: (float ) $ request ->input ('confidence ' , 1.0 ),
122135 tags: $ request ->input ('tags ' , []),
136+ beliefType: MemoryBeliefType::tryFrom ((string ) $ request ->input ('belief_type ' )),
137+ preferenceSubtype: MemoryPreferenceSubtype::tryFrom ((string ) $ request ->input ('preference_subtype ' )),
138+ whyItMatters: $ request ->input ('why_it_matters ' ),
139+ beliefStatus: MemoryBeliefStatus::tryFrom ((string ) $ request ->input ('belief_status ' , 'active ' )) ?? MemoryBeliefStatus::Active,
140+ domain: $ request ->input ('domain ' ),
123141 );
124142
125143 return response ()->json ([
0 commit comments