@@ -328,7 +328,7 @@ async function executeActionInner(
328328 break ;
329329 case "memory_store" :
330330 if ( ! provider . deleteMemoryStore ) throw memoryStoreUnsupported ( address . provider ) ;
331- await provider . deleteMemoryStore ( id ) ;
331+ await provider . deleteMemoryStore ( id , apiMode ) ;
332332 break ;
333333 case "deployment" :
334334 await provider . deleteDeployment ( id ) ;
@@ -504,18 +504,22 @@ async function executeActionInner(
504504 throw memoryStoreUnsupported ( address . provider ) ;
505505 }
506506 const reconcile = async ( storeId : string ) : Promise < RemoteResource > => {
507- const store = await provider . updateMemoryStore ! ( storeId , {
508- name,
509- description : decl . description ,
510- metadata : decl . metadata ?? { } ,
511- } ) ;
507+ const store = await provider . updateMemoryStore ! (
508+ storeId ,
509+ {
510+ name,
511+ description : decl . description ,
512+ metadata : decl . metadata ?? { } ,
513+ } ,
514+ apiMode ,
515+ ) ;
512516
513517 // Declarative entries are managed seeds. Update/create those paths in place,
514518 // while preserving memories learned by agents at runtime.
515519 const current = new Map < string , { id : string ; content_sha256 : string } > ( ) ;
516520 let cursor : string | undefined ;
517521 do {
518- const page = await provider . listMemories ! ( storeId , { limit : 100 , cursor, view : "basic" } ) ;
522+ const page = await provider . listMemories ! ( storeId , { limit : 100 , cursor, view : "basic" } , apiMode ) ;
519523 for ( const memory of page . data ) {
520524 if ( memory . type === "memory" ) current . set ( memory . path , memory ) ;
521525 }
@@ -526,22 +530,30 @@ async function executeActionInner(
526530 const existing = current . get ( entry . key . replace ( / ^ \/ + / , "" ) ) ;
527531 if ( existing ) {
528532 if ( existing . content_sha256 !== sha256 ( entry . content ) ) {
529- await provider . updateMemory ! ( storeId , existing . id , {
530- content : entry . content ,
531- expected_content_sha256 : existing . content_sha256 ,
532- } ) ;
533+ await provider . updateMemory ! (
534+ storeId ,
535+ existing . id ,
536+ {
537+ content : entry . content ,
538+ expected_content_sha256 : existing . content_sha256 ,
539+ } ,
540+ apiMode ,
541+ ) ;
533542 }
534543 } else {
535- await provider . createMemory ! ( storeId , { path : entry . key , content : entry . content } ) ;
544+ await provider . createMemory ! ( storeId , { path : entry . key , content : entry . content } , apiMode ) ;
536545 }
537546 }
538547 return store ;
539548 } ;
540- if ( isUpdate ) {
549+ if ( apiModeChanged ) {
550+ result = await createMemoryStore ( name , decl , apiMode ) ;
551+ if ( existingId ) await deleteMemoryStore ( existingId , priorApiMode ) . catch ( ( ) => undefined ) ;
552+ } else if ( isUpdate ) {
541553 result = await reconcile ( existingId ! ) ;
542554 } else {
543555 try {
544- result = await createMemoryStore ( name , decl ) ;
556+ result = await createMemoryStore ( name , decl , apiMode ) ;
545557 } catch ( err ) {
546558 result = await adoptOnConflict ( err , address , provider , ctx . onFeedback , {
547559 onExisting : async ( existing ) => reconcile ( existing . id ! ) ,
0 commit comments