@mastra/server 1.25.1-alpha.0 → 1.26.0-alpha.2

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (228) hide show
  1. package/CHANGELOG.md +14 -0
  2. package/dist/{chunk-CFA5AY4I.js → chunk-2ZSVUR54.js} +4 -4
  3. package/dist/{chunk-CFA5AY4I.js.map → chunk-2ZSVUR54.js.map} +1 -1
  4. package/dist/{chunk-S2ISWAFD.cjs → chunk-3A6FNPXK.cjs} +10 -10
  5. package/dist/{chunk-S2ISWAFD.cjs.map → chunk-3A6FNPXK.cjs.map} +1 -1
  6. package/dist/{chunk-TG3SW2HK.js → chunk-3AU2JHPV.js} +3 -3
  7. package/dist/{chunk-TG3SW2HK.js.map → chunk-3AU2JHPV.js.map} +1 -1
  8. package/dist/{chunk-KEYTQRMZ.cjs → chunk-3OASPD4Y.cjs} +37 -37
  9. package/dist/{chunk-KEYTQRMZ.cjs.map → chunk-3OASPD4Y.cjs.map} +1 -1
  10. package/dist/{chunk-2KXVGOQU.cjs → chunk-3WMNVNS2.cjs} +4 -4
  11. package/dist/{chunk-2KXVGOQU.cjs.map → chunk-3WMNVNS2.cjs.map} +1 -1
  12. package/dist/{chunk-NI5HCR63.js → chunk-4KPWQYIW.js} +3 -3
  13. package/dist/{chunk-NI5HCR63.js.map → chunk-4KPWQYIW.js.map} +1 -1
  14. package/dist/{chunk-KAQ3OHOE.cjs → chunk-4MWDBRUL.cjs} +10 -10
  15. package/dist/{chunk-KAQ3OHOE.cjs.map → chunk-4MWDBRUL.cjs.map} +1 -1
  16. package/dist/{chunk-A5VD2RSU.cjs → chunk-5JMC26DU.cjs} +5 -5
  17. package/dist/{chunk-A5VD2RSU.cjs.map → chunk-5JMC26DU.cjs.map} +1 -1
  18. package/dist/{chunk-XV6SSNPX.js → chunk-5PD54ZHM.js} +4 -4
  19. package/dist/{chunk-XV6SSNPX.js.map → chunk-5PD54ZHM.js.map} +1 -1
  20. package/dist/{chunk-FJ4PYS2Y.js → chunk-5QA6JRA2.js} +4 -4
  21. package/dist/{chunk-FJ4PYS2Y.js.map → chunk-5QA6JRA2.js.map} +1 -1
  22. package/dist/{chunk-2HPMUAMW.js → chunk-5TJOIBGK.js} +2 -2
  23. package/dist/chunk-5TJOIBGK.js.map +1 -0
  24. package/dist/{chunk-PNMZ2R5P.cjs → chunk-6BU7KZ4V.cjs} +118 -17
  25. package/dist/chunk-6BU7KZ4V.cjs.map +1 -0
  26. package/dist/{chunk-TJL5FEEQ.cjs → chunk-6FCNQW37.cjs} +11 -11
  27. package/dist/{chunk-TJL5FEEQ.cjs.map → chunk-6FCNQW37.cjs.map} +1 -1
  28. package/dist/{chunk-MRA3CYYV.cjs → chunk-7BQLPTJW.cjs} +8 -8
  29. package/dist/{chunk-MRA3CYYV.cjs.map → chunk-7BQLPTJW.cjs.map} +1 -1
  30. package/dist/{chunk-IRGW3SKB.js → chunk-BDVJXRDF.js} +3 -3
  31. package/dist/{chunk-IRGW3SKB.js.map → chunk-BDVJXRDF.js.map} +1 -1
  32. package/dist/{chunk-YCK3UBA3.cjs → chunk-BM7VYU2C.cjs} +28 -28
  33. package/dist/{chunk-YCK3UBA3.cjs.map → chunk-BM7VYU2C.cjs.map} +1 -1
  34. package/dist/{chunk-EAJ2SSAY.cjs → chunk-C5BFNI2H.cjs} +11 -11
  35. package/dist/{chunk-EAJ2SSAY.cjs.map → chunk-C5BFNI2H.cjs.map} +1 -1
  36. package/dist/{chunk-66VXBWSR.js → chunk-C7HQZVU2.js} +4 -4
  37. package/dist/{chunk-66VXBWSR.js.map → chunk-C7HQZVU2.js.map} +1 -1
  38. package/dist/{chunk-M3FNKLTJ.cjs → chunk-DKMWMOKK.cjs} +16 -16
  39. package/dist/{chunk-M3FNKLTJ.cjs.map → chunk-DKMWMOKK.cjs.map} +1 -1
  40. package/dist/{chunk-ZDCTQJFB.js → chunk-DN4WPXQA.js} +3 -3
  41. package/dist/{chunk-ZDCTQJFB.js.map → chunk-DN4WPXQA.js.map} +1 -1
  42. package/dist/{chunk-AUOLHRVZ.cjs → chunk-DX63N33Q.cjs} +38 -38
  43. package/dist/{chunk-AUOLHRVZ.cjs.map → chunk-DX63N33Q.cjs.map} +1 -1
  44. package/dist/{chunk-36MZMOPE.cjs → chunk-DZS4GTO5.cjs} +24 -24
  45. package/dist/{chunk-36MZMOPE.cjs.map → chunk-DZS4GTO5.cjs.map} +1 -1
  46. package/dist/{chunk-J3GI6BPX.js → chunk-E5CLWABD.js} +118 -17
  47. package/dist/chunk-E5CLWABD.js.map +1 -0
  48. package/dist/{chunk-SNK6UFPW.cjs → chunk-EHYYY5BD.cjs} +14 -14
  49. package/dist/{chunk-SNK6UFPW.cjs.map → chunk-EHYYY5BD.cjs.map} +1 -1
  50. package/dist/{chunk-ZXRN52DW.js → chunk-FETRDBUR.js} +3 -3
  51. package/dist/{chunk-ZXRN52DW.js.map → chunk-FETRDBUR.js.map} +1 -1
  52. package/dist/{chunk-YGZZZ5L6.js → chunk-FL3P772U.js} +4 -4
  53. package/dist/{chunk-YGZZZ5L6.js.map → chunk-FL3P772U.js.map} +1 -1
  54. package/dist/{chunk-35UZWWLE.js → chunk-FNJK4IUC.js} +4 -4
  55. package/dist/{chunk-35UZWWLE.js.map → chunk-FNJK4IUC.js.map} +1 -1
  56. package/dist/{chunk-SNGY24DC.js → chunk-G5CF4I3E.js} +3 -3
  57. package/dist/{chunk-SNGY24DC.js.map → chunk-G5CF4I3E.js.map} +1 -1
  58. package/dist/{chunk-PRQGENYS.js → chunk-GOKCWS2J.js} +3 -3
  59. package/dist/{chunk-PRQGENYS.js.map → chunk-GOKCWS2J.js.map} +1 -1
  60. package/dist/{chunk-HOGOJPGP.js → chunk-GZSC3KQK.js} +4 -4
  61. package/dist/{chunk-HOGOJPGP.js.map → chunk-GZSC3KQK.js.map} +1 -1
  62. package/dist/{chunk-WOASWM5W.cjs → chunk-H25VLW4X.cjs} +10 -10
  63. package/dist/{chunk-WOASWM5W.cjs.map → chunk-H25VLW4X.cjs.map} +1 -1
  64. package/dist/{chunk-7Q5EF4YL.cjs → chunk-H74N5363.cjs} +42 -42
  65. package/dist/{chunk-7Q5EF4YL.cjs.map → chunk-H74N5363.cjs.map} +1 -1
  66. package/dist/{chunk-WPAA5YCH.js → chunk-HNCH64UG.js} +5 -5
  67. package/dist/{chunk-WPAA5YCH.js.map → chunk-HNCH64UG.js.map} +1 -1
  68. package/dist/{chunk-VFFD2WJ2.cjs → chunk-IEQC2HOF.cjs} +10 -10
  69. package/dist/{chunk-VFFD2WJ2.cjs.map → chunk-IEQC2HOF.cjs.map} +1 -1
  70. package/dist/{chunk-2RC624RU.js → chunk-IFOJ236M.js} +3 -3
  71. package/dist/{chunk-2RC624RU.js.map → chunk-IFOJ236M.js.map} +1 -1
  72. package/dist/{chunk-RK2JEDNO.cjs → chunk-IHUXRPQX.cjs} +6 -6
  73. package/dist/{chunk-RK2JEDNO.cjs.map → chunk-IHUXRPQX.cjs.map} +1 -1
  74. package/dist/{chunk-5QAZEJLG.cjs → chunk-IWMWAUDW.cjs} +10 -10
  75. package/dist/{chunk-5QAZEJLG.cjs.map → chunk-IWMWAUDW.cjs.map} +1 -1
  76. package/dist/{chunk-R5MN7RFP.js → chunk-J3FW4FKO.js} +3 -3
  77. package/dist/{chunk-R5MN7RFP.js.map → chunk-J3FW4FKO.js.map} +1 -1
  78. package/dist/{chunk-UAINGDV5.cjs → chunk-JEGLQOHD.cjs} +6 -6
  79. package/dist/{chunk-UAINGDV5.cjs.map → chunk-JEGLQOHD.cjs.map} +1 -1
  80. package/dist/{chunk-B3MLNCJO.cjs → chunk-JYZU4RIT.cjs} +11 -11
  81. package/dist/{chunk-B3MLNCJO.cjs.map → chunk-JYZU4RIT.cjs.map} +1 -1
  82. package/dist/{chunk-VNFRE5PC.cjs → chunk-KM3CFVNJ.cjs} +10 -10
  83. package/dist/{chunk-VNFRE5PC.cjs.map → chunk-KM3CFVNJ.cjs.map} +1 -1
  84. package/dist/{chunk-JP6747C6.cjs → chunk-LLZRMHGG.cjs} +6 -6
  85. package/dist/{chunk-JP6747C6.cjs.map → chunk-LLZRMHGG.cjs.map} +1 -1
  86. package/dist/{chunk-XALSGFDK.js → chunk-LNDX4QVX.js} +3 -3
  87. package/dist/{chunk-XALSGFDK.js.map → chunk-LNDX4QVX.js.map} +1 -1
  88. package/dist/{chunk-NCVXAT2D.js → chunk-LURZ67BG.js} +3 -3
  89. package/dist/{chunk-NCVXAT2D.js.map → chunk-LURZ67BG.js.map} +1 -1
  90. package/dist/{chunk-7DC3GFTS.cjs → chunk-LX7UJ6KX.cjs} +28 -28
  91. package/dist/{chunk-7DC3GFTS.cjs.map → chunk-LX7UJ6KX.cjs.map} +1 -1
  92. package/dist/{chunk-GQTXBUV3.cjs → chunk-LZLKNFMW.cjs} +10 -10
  93. package/dist/{chunk-GQTXBUV3.cjs.map → chunk-LZLKNFMW.cjs.map} +1 -1
  94. package/dist/{chunk-Z4PPU3CR.cjs → chunk-MDDG5I3N.cjs} +11 -11
  95. package/dist/{chunk-Z4PPU3CR.cjs.map → chunk-MDDG5I3N.cjs.map} +1 -1
  96. package/dist/{chunk-W3QIBYWZ.js → chunk-MXT6UF43.js} +9 -8
  97. package/dist/chunk-MXT6UF43.js.map +1 -0
  98. package/dist/{chunk-YDO5OPEU.cjs → chunk-NBIRD4N5.cjs} +2 -2
  99. package/dist/chunk-NBIRD4N5.cjs.map +1 -0
  100. package/dist/{chunk-DTURLO75.cjs → chunk-NGC6YYHM.cjs} +9 -9
  101. package/dist/{chunk-DTURLO75.cjs.map → chunk-NGC6YYHM.cjs.map} +1 -1
  102. package/dist/{chunk-VB4KLMMA.js → chunk-NWZ2SOOH.js} +5 -5
  103. package/dist/{chunk-VB4KLMMA.js.map → chunk-NWZ2SOOH.js.map} +1 -1
  104. package/dist/{chunk-AIGAXCMX.cjs → chunk-O7X2RHRL.cjs} +7 -7
  105. package/dist/{chunk-AIGAXCMX.cjs.map → chunk-O7X2RHRL.cjs.map} +1 -1
  106. package/dist/{chunk-IU42MFMF.cjs → chunk-OB3KE3V5.cjs} +11 -11
  107. package/dist/{chunk-IU42MFMF.cjs.map → chunk-OB3KE3V5.cjs.map} +1 -1
  108. package/dist/{chunk-JCK52DK6.cjs → chunk-OERC2RSE.cjs} +11 -11
  109. package/dist/{chunk-JCK52DK6.cjs.map → chunk-OERC2RSE.cjs.map} +1 -1
  110. package/dist/{chunk-NQOGRE2Z.js → chunk-OZ53ILWF.js} +4 -4
  111. package/dist/{chunk-NQOGRE2Z.js.map → chunk-OZ53ILWF.js.map} +1 -1
  112. package/dist/{chunk-W4B3I2S5.cjs → chunk-P5QPKSKW.cjs} +12 -12
  113. package/dist/{chunk-W4B3I2S5.cjs.map → chunk-P5QPKSKW.cjs.map} +1 -1
  114. package/dist/{chunk-U2MEDXN5.js → chunk-Q7HGD2SV.js} +4 -4
  115. package/dist/{chunk-U2MEDXN5.js.map → chunk-Q7HGD2SV.js.map} +1 -1
  116. package/dist/{chunk-KXNZSC3V.js → chunk-QKBWUCFC.js} +3 -3
  117. package/dist/{chunk-KXNZSC3V.js.map → chunk-QKBWUCFC.js.map} +1 -1
  118. package/dist/{chunk-4XI72F3Q.cjs → chunk-QM5YAVRM.cjs} +6 -6
  119. package/dist/{chunk-4XI72F3Q.cjs.map → chunk-QM5YAVRM.cjs.map} +1 -1
  120. package/dist/{chunk-B2NLS3NT.js → chunk-QMSSFXFX.js} +3 -3
  121. package/dist/{chunk-B2NLS3NT.js.map → chunk-QMSSFXFX.js.map} +1 -1
  122. package/dist/{chunk-53ZWW6YM.cjs → chunk-R7DASFHE.cjs} +10 -10
  123. package/dist/{chunk-53ZWW6YM.cjs.map → chunk-R7DASFHE.cjs.map} +1 -1
  124. package/dist/{chunk-735PUE35.cjs → chunk-RLMXYGXH.cjs} +102 -101
  125. package/dist/chunk-RLMXYGXH.cjs.map +1 -0
  126. package/dist/{chunk-VCIHYF2N.js → chunk-T66GENZ2.js} +4 -4
  127. package/dist/{chunk-VCIHYF2N.js.map → chunk-T66GENZ2.js.map} +1 -1
  128. package/dist/{chunk-D7CXXSBA.js → chunk-UGN45ADV.js} +3 -3
  129. package/dist/{chunk-D7CXXSBA.js.map → chunk-UGN45ADV.js.map} +1 -1
  130. package/dist/{chunk-76DAOWXY.js → chunk-USA6VC36.js} +4 -4
  131. package/dist/{chunk-76DAOWXY.js.map → chunk-USA6VC36.js.map} +1 -1
  132. package/dist/{chunk-L65D4K32.cjs → chunk-VUBES42V.cjs} +30 -30
  133. package/dist/{chunk-L65D4K32.cjs.map → chunk-VUBES42V.cjs.map} +1 -1
  134. package/dist/{chunk-5MX3D4IX.js → chunk-WKQKBFN7.js} +3 -3
  135. package/dist/{chunk-5MX3D4IX.js.map → chunk-WKQKBFN7.js.map} +1 -1
  136. package/dist/{chunk-IYPY7RRT.js → chunk-WW73XPQC.js} +3 -3
  137. package/dist/{chunk-IYPY7RRT.js.map → chunk-WW73XPQC.js.map} +1 -1
  138. package/dist/{chunk-TPBXZVM2.js → chunk-XHU7W6RF.js} +3 -3
  139. package/dist/{chunk-TPBXZVM2.js.map → chunk-XHU7W6RF.js.map} +1 -1
  140. package/dist/{chunk-RE3O2Q7O.js → chunk-XXLBBOK5.js} +4 -4
  141. package/dist/{chunk-RE3O2Q7O.js.map → chunk-XXLBBOK5.js.map} +1 -1
  142. package/dist/{chunk-TSYMLLXR.js → chunk-YIWIQKLK.js} +3 -3
  143. package/dist/{chunk-TSYMLLXR.js.map → chunk-YIWIQKLK.js.map} +1 -1
  144. package/dist/{chunk-KFG2APPS.js → chunk-YLUOV6TD.js} +4 -4
  145. package/dist/{chunk-KFG2APPS.js.map → chunk-YLUOV6TD.js.map} +1 -1
  146. package/dist/docs/SKILL.md +1 -1
  147. package/dist/docs/assets/SOURCE_MAP.json +1 -1
  148. package/dist/{observational-memory-4TDIBXK6-LKQTCHRF.cjs → observational-memory-WWAB2MMI-K5GMD4T5.cjs} +26 -26
  149. package/dist/{observational-memory-4TDIBXK6-LKQTCHRF.cjs.map → observational-memory-WWAB2MMI-K5GMD4T5.cjs.map} +1 -1
  150. package/dist/{observational-memory-4TDIBXK6-H3GGM2SP.js → observational-memory-WWAB2MMI-KKIU253X.js} +3 -3
  151. package/dist/{observational-memory-4TDIBXK6-H3GGM2SP.js.map → observational-memory-WWAB2MMI-KKIU253X.js.map} +1 -1
  152. package/dist/server/handlers/a2a.cjs +9 -9
  153. package/dist/server/handlers/a2a.js +1 -1
  154. package/dist/server/handlers/agent-builder.cjs +16 -16
  155. package/dist/server/handlers/agent-builder.js +1 -1
  156. package/dist/server/handlers/agent-versions.cjs +8 -8
  157. package/dist/server/handlers/agent-versions.js +1 -1
  158. package/dist/server/handlers/agents.cjs +35 -35
  159. package/dist/server/handlers/agents.js +1 -1
  160. package/dist/server/handlers/auth.cjs +11 -11
  161. package/dist/server/handlers/auth.js +1 -1
  162. package/dist/server/handlers/background-tasks.cjs +4 -4
  163. package/dist/server/handlers/background-tasks.js +1 -1
  164. package/dist/server/handlers/conversations.cjs +5 -5
  165. package/dist/server/handlers/conversations.js +1 -1
  166. package/dist/server/handlers/datasets.cjs +26 -26
  167. package/dist/server/handlers/datasets.js +1 -1
  168. package/dist/server/handlers/logs.cjs +4 -4
  169. package/dist/server/handlers/logs.js +1 -1
  170. package/dist/server/handlers/mcp-client-versions.cjs +8 -8
  171. package/dist/server/handlers/mcp-client-versions.js +1 -1
  172. package/dist/server/handlers/mcp.cjs +9 -9
  173. package/dist/server/handlers/mcp.js +1 -1
  174. package/dist/server/handlers/memory.cjs +27 -27
  175. package/dist/server/handlers/memory.js +1 -1
  176. package/dist/server/handlers/observability-new-endpoints.cjs +27 -27
  177. package/dist/server/handlers/observability-new-endpoints.js +1 -1
  178. package/dist/server/handlers/observability.cjs +33 -33
  179. package/dist/server/handlers/observability.js +2 -2
  180. package/dist/server/handlers/processor-providers.cjs +3 -3
  181. package/dist/server/handlers/processor-providers.js +1 -1
  182. package/dist/server/handlers/processors.cjs +4 -4
  183. package/dist/server/handlers/processors.js +1 -1
  184. package/dist/server/handlers/prompt-block-versions.cjs +8 -8
  185. package/dist/server/handlers/prompt-block-versions.js +1 -1
  186. package/dist/server/handlers/responses.cjs +4 -4
  187. package/dist/server/handlers/responses.js +1 -1
  188. package/dist/server/handlers/scorer-versions.cjs +8 -8
  189. package/dist/server/handlers/scorer-versions.js +1 -1
  190. package/dist/server/handlers/scores.cjs +7 -7
  191. package/dist/server/handlers/scores.js +1 -1
  192. package/dist/server/handlers/stored-agents.cjs +7 -7
  193. package/dist/server/handlers/stored-agents.js +1 -1
  194. package/dist/server/handlers/stored-mcp-clients.cjs +6 -6
  195. package/dist/server/handlers/stored-mcp-clients.js +1 -1
  196. package/dist/server/handlers/stored-prompt-blocks.cjs +6 -6
  197. package/dist/server/handlers/stored-prompt-blocks.js +1 -1
  198. package/dist/server/handlers/stored-scorers.cjs +6 -6
  199. package/dist/server/handlers/stored-scorers.js +1 -1
  200. package/dist/server/handlers/stored-skills.cjs +7 -7
  201. package/dist/server/handlers/stored-skills.js +1 -1
  202. package/dist/server/handlers/stored-workspaces.cjs +6 -6
  203. package/dist/server/handlers/stored-workspaces.js +1 -1
  204. package/dist/server/handlers/system.cjs +2 -2
  205. package/dist/server/handlers/system.js +1 -1
  206. package/dist/server/handlers/tool-providers.cjs +5 -5
  207. package/dist/server/handlers/tool-providers.js +1 -1
  208. package/dist/server/handlers/tools.cjs +6 -6
  209. package/dist/server/handlers/tools.js +1 -1
  210. package/dist/server/handlers/vector.cjs +16 -16
  211. package/dist/server/handlers/vector.js +1 -1
  212. package/dist/server/handlers/voice.cjs +8 -8
  213. package/dist/server/handlers/voice.js +1 -1
  214. package/dist/server/handlers/workflows.cjs +24 -24
  215. package/dist/server/handlers/workflows.js +1 -1
  216. package/dist/server/handlers/workspace.cjs +26 -26
  217. package/dist/server/handlers/workspace.js +1 -1
  218. package/dist/server/handlers.cjs +30 -30
  219. package/dist/server/handlers.js +15 -15
  220. package/dist/server/server-adapter/index.cjs +306 -306
  221. package/dist/server/server-adapter/index.js +37 -37
  222. package/package.json +5 -5
  223. package/dist/chunk-2HPMUAMW.js.map +0 -1
  224. package/dist/chunk-735PUE35.cjs.map +0 -1
  225. package/dist/chunk-J3GI6BPX.js.map +0 -1
  226. package/dist/chunk-PNMZ2R5P.cjs.map +0 -1
  227. package/dist/chunk-W3QIBYWZ.js.map +0 -1
  228. package/dist/chunk-YDO5OPEU.cjs.map +0 -1
@@ -1040,7 +1040,7 @@ function imageSize(input) {
1040
1040
  throw new TypeError(`unsupported file type: ${type}`);
1041
1041
  }
1042
1042
 
1043
- // ../memory/dist/chunk-7NCBGOHT.js
1043
+ // ../memory/dist/chunk-HB6AYAFD.js
1044
1044
  var OM_DEBUG_LOG = process.env.OM_DEBUG ? join(process.cwd(), "om-debug.log") : null;
1045
1045
  function omDebug(msg) {
1046
1046
  if (!OM_DEBUG_LOG) return;
@@ -1503,7 +1503,10 @@ function createActivationMarker(params) {
1503
1503
  threadId: params.threadId,
1504
1504
  generationCount: params.generationCount,
1505
1505
  config: params.config,
1506
- observations: params.observations
1506
+ observations: params.observations,
1507
+ triggeredBy: params.triggeredBy,
1508
+ lastActivityAt: params.lastActivityAt,
1509
+ ttlExpiredMs: params.ttlExpiredMs
1507
1510
  }
1508
1511
  };
1509
1512
  }
@@ -3012,7 +3015,8 @@ var ObservationStep = class {
3012
3015
  threadId,
3013
3016
  writer: this.turn.writer,
3014
3017
  requestContext: this.turn.requestContext,
3015
- observabilityContext: this.turn.observabilityContext
3018
+ observabilityContext: this.turn.observabilityContext,
3019
+ lastActivityAt: getLastActivityFromMessages(messageList.get.all.db())
3016
3020
  });
3017
3021
  await this.turn.refreshRecord();
3018
3022
  if (this.turn.record.generationCount > preReflectGeneration) {
@@ -3188,7 +3192,8 @@ var ObservationStep = class {
3188
3192
  writer: this.turn.writer,
3189
3193
  messageList,
3190
3194
  requestContext: this.turn.requestContext,
3191
- observabilityContext: this.turn.observabilityContext
3195
+ observabilityContext: this.turn.observabilityContext,
3196
+ lastActivityAt: getLastActivityFromMessages(messageList.get.all.db())
3192
3197
  });
3193
3198
  return {
3194
3199
  succeeded: true,
@@ -5131,7 +5136,8 @@ var ReflectorRunner = class {
5131
5136
  observationTokens: getMaxThreshold(
5132
5137
  record ? this.getEffectiveReflectionTokens(record) : this.reflectionConfig.observationTokens
5133
5138
  ),
5134
- scope: this.scope
5139
+ scope: this.scope,
5140
+ activateAfterIdle: this.reflectionConfig.activateAfterIdle
5135
5141
  };
5136
5142
  }
5137
5143
  /**
@@ -5417,7 +5423,7 @@ var ReflectorRunner = class {
5417
5423
  * Try to activate buffered reflection when threshold is reached.
5418
5424
  * Returns true if activation succeeded.
5419
5425
  */
5420
- async tryActivateBufferedReflection(record, lockKey, writer, messageList) {
5426
+ async tryActivateBufferedReflection(record, lockKey, writer, messageList, activationMetadata) {
5421
5427
  const bufferKey = this.buffering.getReflectionBufferKey(lockKey);
5422
5428
  const asyncOp = BufferingCoordinator.asyncBufferingOps.get(bufferKey);
5423
5429
  if (asyncOp) {
@@ -5477,6 +5483,9 @@ ${unreflectedContent}` : freshRecord.bufferedReflection;
5477
5483
  threadId: freshRecord.threadId ?? "",
5478
5484
  generationCount: afterRecord?.generationCount ?? freshRecord.generationCount ?? 0,
5479
5485
  observations: afterRecord?.activeObservations,
5486
+ triggeredBy: activationMetadata?.triggeredBy,
5487
+ lastActivityAt: activationMetadata?.lastActivityAt,
5488
+ ttlExpiredMs: activationMetadata?.ttlExpiredMs,
5480
5489
  config: this.getObservationMarkerConfig(freshRecord)
5481
5490
  });
5482
5491
  void writer.custom(activationMarker).catch(() => {
@@ -5505,7 +5514,9 @@ ${unreflectedContent}` : freshRecord.bufferedReflection;
5505
5514
  messageList,
5506
5515
  reflectionHooks,
5507
5516
  requestContext,
5508
- observabilityContext
5517
+ observabilityContext,
5518
+ lastActivityAt,
5519
+ threadId: requestedThreadId
5509
5520
  } = opts;
5510
5521
  const lockKey = this.buffering.getLockKey(record.threadId, record.resourceId);
5511
5522
  const reflectThreshold = getMaxThreshold(this.getEffectiveReflectionTokens(record));
@@ -5537,9 +5548,17 @@ ${unreflectedContent}` : freshRecord.bufferedReflection;
5537
5548
  );
5538
5549
  }
5539
5550
  }
5540
- if (observationTokens < reflectThreshold) {
5551
+ const activateAfterIdle = this.reflectionConfig.activateAfterIdle;
5552
+ const ttlExpiredMs = activateAfterIdle !== void 0 && lastActivityAt !== void 0 ? Date.now() - lastActivityAt : void 0;
5553
+ const ttlExpired = ttlExpiredMs !== void 0 && activateAfterIdle !== void 0 && ttlExpiredMs >= activateAfterIdle;
5554
+ if (observationTokens < reflectThreshold && !ttlExpired) {
5541
5555
  return;
5542
5556
  }
5557
+ const activationMetadata = {
5558
+ triggeredBy: ttlExpired ? "ttl" : "threshold",
5559
+ lastActivityAt: ttlExpired ? lastActivityAt : void 0,
5560
+ ttlExpiredMs: ttlExpired ? ttlExpiredMs : void 0
5561
+ };
5543
5562
  if (record.isReflecting) {
5544
5563
  if (isOpActiveInProcess(record.id, "reflecting")) {
5545
5564
  omDebug(`[OM:reflect] isReflecting=true and active in this process, skipping`);
@@ -5549,7 +5568,13 @@ ${unreflectedContent}` : freshRecord.bufferedReflection;
5549
5568
  await this.storage.setReflectingFlag(record.id, false);
5550
5569
  }
5551
5570
  if (this.buffering.isAsyncReflectionEnabled()) {
5552
- const activationSuccess = await this.tryActivateBufferedReflection(record, lockKey, writer, messageList);
5571
+ const activationSuccess = await this.tryActivateBufferedReflection(
5572
+ record,
5573
+ lockKey,
5574
+ writer,
5575
+ messageList,
5576
+ activationMetadata
5577
+ );
5553
5578
  if (activationSuccess) {
5554
5579
  return;
5555
5580
  }
@@ -5578,7 +5603,7 @@ ${unreflectedContent}` : freshRecord.bufferedReflection;
5578
5603
  registerOp(record.id, "reflecting");
5579
5604
  const cycleId = crypto.randomUUID();
5580
5605
  const startedAt = (/* @__PURE__ */ new Date()).toISOString();
5581
- const threadId = opts.threadId ?? "unknown";
5606
+ const threadId = requestedThreadId ?? "unknown";
5582
5607
  if (writer) {
5583
5608
  const startMarker = createObservationStartMarker({
5584
5609
  cycleId,
@@ -7226,6 +7251,58 @@ function buildMessageRange(messages) {
7226
7251
  const last = [...messages].reverse().find(messageHasVisibleContent) ?? messages[messages.length - 1];
7227
7252
  return `${first.id}:${last.id}`;
7228
7253
  }
7254
+ function getLastActivityFromMessages(messages) {
7255
+ if (!messages) return void 0;
7256
+ for (let i = messages.length - 1; i >= 0; i--) {
7257
+ const message = messages[i];
7258
+ if (!message || message.role !== "assistant") {
7259
+ continue;
7260
+ }
7261
+ if (!message.content || typeof message.content === "string") {
7262
+ return message.createdAt ? new Date(message.createdAt).getTime() : void 0;
7263
+ }
7264
+ for (let j = message.content.parts.length - 1; j >= 0; j--) {
7265
+ const part = message.content.parts[j];
7266
+ if (!part || part.type?.startsWith("data-")) {
7267
+ continue;
7268
+ }
7269
+ if (part.createdAt !== void 0) {
7270
+ return part.createdAt;
7271
+ }
7272
+ }
7273
+ return message.createdAt ? new Date(message.createdAt).getTime() : void 0;
7274
+ }
7275
+ return void 0;
7276
+ }
7277
+ function parseActivationTTL(value, fieldPath) {
7278
+ if (value === void 0) {
7279
+ return void 0;
7280
+ }
7281
+ if (typeof value === "number") {
7282
+ if (!Number.isFinite(value) || value < 0) {
7283
+ throw new Error(`${fieldPath} must be a non-negative number of milliseconds or a duration string like "5m".`);
7284
+ }
7285
+ return value;
7286
+ }
7287
+ const trimmed = value.trim();
7288
+ const match = trimmed.match(
7289
+ /^(\d+(?:\.\d+)?)\s*(ms|msec|msecs|millisecond|milliseconds|s|sec|secs|second|seconds|m|min|mins|minute|minutes|h|hr|hrs|hour|hours)$/i
7290
+ );
7291
+ if (!match) {
7292
+ throw new Error(
7293
+ `${fieldPath} must be a non-negative number of milliseconds or a duration string like "5m" or "1hr".`
7294
+ );
7295
+ }
7296
+ const rawAmount = match[1];
7297
+ const rawUnit = match[2];
7298
+ const amount = Number(rawAmount);
7299
+ const unit = rawUnit.toLowerCase();
7300
+ if (!Number.isFinite(amount) || amount < 0) {
7301
+ throw new Error(`${fieldPath} must be a non-negative number of milliseconds or a duration string like "5m".`);
7302
+ }
7303
+ const multiplier = unit === "ms" || unit === "msec" || unit === "msecs" || unit === "millisecond" || unit === "milliseconds" ? 1 : unit === "s" || unit === "sec" || unit === "secs" || unit === "second" || unit === "seconds" ? 1e3 : unit === "m" || unit === "min" || unit === "mins" || unit === "minute" || unit === "minutes" ? 6e4 : 36e5;
7304
+ return amount * multiplier;
7305
+ }
7229
7306
  var ObservationalMemory = class _ObservationalMemory {
7230
7307
  storage;
7231
7308
  tokenCounter;
@@ -7372,6 +7449,7 @@ Async buffering is enabled by default \u2014 this opt-out is only needed when us
7372
7449
  config.observation?.messageTokens ?? OBSERVATIONAL_MEMORY_DEFAULTS.observation.messageTokens
7373
7450
  ),
7374
7451
  bufferActivation: asyncBufferingDisabled ? void 0 : config.observation?.bufferActivation ?? OBSERVATIONAL_MEMORY_DEFAULTS.observation.bufferActivation,
7452
+ activateAfterIdle: parseActivationTTL(config.activateAfterIdle, "activateAfterIdle"),
7375
7453
  blockAfter: asyncBufferingDisabled ? void 0 : resolveBlockAfter(
7376
7454
  config.observation?.blockAfter ?? (config.observation?.bufferTokens ?? OBSERVATIONAL_MEMORY_DEFAULTS.observation.bufferTokens ? 1.2 : void 0),
7377
7455
  config.observation?.messageTokens ?? OBSERVATIONAL_MEMORY_DEFAULTS.observation.messageTokens
@@ -7390,6 +7468,7 @@ Async buffering is enabled by default \u2014 this opt-out is only needed when us
7390
7468
  },
7391
7469
  providerOptions: config.reflection?.providerOptions ?? OBSERVATIONAL_MEMORY_DEFAULTS.reflection.providerOptions,
7392
7470
  bufferActivation: asyncBufferingDisabled ? void 0 : config?.reflection?.bufferActivation ?? OBSERVATIONAL_MEMORY_DEFAULTS.reflection.bufferActivation,
7471
+ activateAfterIdle: parseActivationTTL(config.activateAfterIdle, "activateAfterIdle"),
7393
7472
  blockAfter: asyncBufferingDisabled ? void 0 : resolveBlockAfter(
7394
7473
  config.reflection?.blockAfter ?? (config.reflection?.bufferActivation ?? OBSERVATIONAL_MEMORY_DEFAULTS.reflection.bufferActivation ? 1.2 : void 0),
7395
7474
  config.reflection?.observationTokens ?? OBSERVATIONAL_MEMORY_DEFAULTS.reflection.observationTokens
@@ -7784,7 +7863,8 @@ Async buffering is enabled by default \u2014 this opt-out is only needed when us
7784
7863
  return {
7785
7864
  messageTokens: getMaxThreshold(this.observationConfig.messageTokens),
7786
7865
  observationTokens: getMaxThreshold(this.reflectionConfig.observationTokens),
7787
- scope: this.scope
7866
+ scope: this.scope,
7867
+ activateAfterIdle: this.observationConfig.activateAfterIdle
7788
7868
  };
7789
7869
  }
7790
7870
  /**
@@ -9022,7 +9102,7 @@ ${grouped}` : grouped;
9022
9102
  await BufferingCoordinator.awaitBuffering(threadId, resourceId ?? null, this.scope);
9023
9103
  const preStatus = await this.getStatus({ threadId, resourceId, messages });
9024
9104
  if (preStatus.canActivate) {
9025
- const actResult = await this.activate({ threadId, resourceId });
9105
+ const actResult = await this.activate({ threadId, resourceId, messages });
9026
9106
  activated = actResult.activated;
9027
9107
  }
9028
9108
  const postStatus = await this.getStatus({ threadId, resourceId, messages });
@@ -9282,10 +9362,28 @@ ${grouped}` : grouped;
9282
9362
  if (!chunks.length) {
9283
9363
  return { activated: false, record };
9284
9364
  }
9365
+ let activationTriggeredBy = "threshold";
9366
+ let activationLastActivityAt;
9367
+ let activateAfterIdleExpiredMs;
9285
9368
  if (opts.checkThreshold) {
9286
- const status = await this.getStatus({ threadId, resourceId, messages: opts.messages });
9287
- if (status.pendingTokens < status.threshold) {
9288
- return { activated: false, record };
9369
+ const thresholdMessages = opts.messages ?? await this.loadMessagesFromStorage(
9370
+ threadId,
9371
+ resourceId,
9372
+ record.lastObservedAt ? new Date(record.lastObservedAt) : void 0
9373
+ );
9374
+ const activateAfterIdle = this.observationConfig.activateAfterIdle;
9375
+ const lastActivityAt = getLastActivityFromMessages(thresholdMessages);
9376
+ const ttlExpiredMs = activateAfterIdle !== void 0 && lastActivityAt !== void 0 ? Date.now() - lastActivityAt : void 0;
9377
+ const ttlExpired = ttlExpiredMs !== void 0 && activateAfterIdle !== void 0 && ttlExpiredMs >= activateAfterIdle;
9378
+ if (ttlExpired) {
9379
+ activationTriggeredBy = "ttl";
9380
+ activationLastActivityAt = lastActivityAt;
9381
+ activateAfterIdleExpiredMs = ttlExpiredMs;
9382
+ } else {
9383
+ const status = await this.getStatus({ threadId, resourceId, messages: thresholdMessages });
9384
+ if (status.pendingTokens < status.threshold) {
9385
+ return { activated: false, record };
9386
+ }
9289
9387
  }
9290
9388
  }
9291
9389
  if (record.isBufferingObservation) {
@@ -9343,6 +9441,9 @@ ${grouped}` : grouped;
9343
9441
  threadId: postSwapRecord.threadId ?? record.threadId ?? "",
9344
9442
  generationCount: postSwapRecord.generationCount ?? 0,
9345
9443
  observations: chunkData?.observations ?? activationResult.observations,
9444
+ triggeredBy: activationTriggeredBy,
9445
+ lastActivityAt: activationLastActivityAt,
9446
+ ttlExpiredMs: activateAfterIdleExpiredMs,
9346
9447
  config: this.getObservationMarkerConfig()
9347
9448
  });
9348
9449
  void opts.writer.custom(activationMarker).catch(() => {
@@ -9831,5 +9932,5 @@ function getObservationsAsOf(activeObservations, asOf) {
9831
9932
  }
9832
9933
 
9833
9934
  export { ModelByInputTokens, OBSERVER_SYSTEM_PROMPT, ObservationalMemory, ObservationalMemoryProcessor, TokenCounter, buildObserverPrompt, buildObserverSystemPrompt, combineObservationGroupRanges, deriveObservationGroupProvenance, e, estimateTokenCount, extractCurrentTask, formatMessagesForObserver, formatToolResultForObserver, getObservationsAsOf, hasCurrentTaskSection, injectAnchorIds, optimizeObservationsForContext, parseAnchorId, parseObservationGroups, parseObserverOutput, reconcileObservationGroupsFromReflection, renderObservationGroupsForReflection, resolveToolResultValue, stripEphemeralAnchorIds, stripObservationGroups, truncateStringByTokens, wrapInObservationGroup };
9834
- //# sourceMappingURL=chunk-J3GI6BPX.js.map
9835
- //# sourceMappingURL=chunk-J3GI6BPX.js.map
9935
+ //# sourceMappingURL=chunk-E5CLWABD.js.map
9936
+ //# sourceMappingURL=chunk-E5CLWABD.js.map