@mastra/server 1.25.1-alpha.1 → 1.26.0-alpha.3

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 (231) hide show
  1. package/CHANGELOG.md +14 -0
  2. package/dist/{chunk-WPAA5YCH.js → chunk-22KGDT57.js} +5 -5
  3. package/dist/{chunk-WPAA5YCH.js.map → chunk-22KGDT57.js.map} +1 -1
  4. package/dist/{chunk-2KXVGOQU.cjs → chunk-37DBOOL2.cjs} +4 -4
  5. package/dist/{chunk-2KXVGOQU.cjs.map → chunk-37DBOOL2.cjs.map} +1 -1
  6. package/dist/{chunk-D7CXXSBA.js → chunk-4EU56SMM.js} +3 -3
  7. package/dist/{chunk-D7CXXSBA.js.map → chunk-4EU56SMM.js.map} +1 -1
  8. package/dist/{chunk-53ZWW6YM.cjs → chunk-5EL4CHO6.cjs} +10 -10
  9. package/dist/{chunk-53ZWW6YM.cjs.map → chunk-5EL4CHO6.cjs.map} +1 -1
  10. package/dist/{chunk-L65D4K32.cjs → chunk-5ZIB34RZ.cjs} +30 -30
  11. package/dist/{chunk-L65D4K32.cjs.map → chunk-5ZIB34RZ.cjs.map} +1 -1
  12. package/dist/{chunk-JP6747C6.cjs → chunk-6AEW3U34.cjs} +6 -6
  13. package/dist/{chunk-JP6747C6.cjs.map → chunk-6AEW3U34.cjs.map} +1 -1
  14. package/dist/{chunk-PNMZ2R5P.cjs → chunk-6BU7KZ4V.cjs} +118 -17
  15. package/dist/chunk-6BU7KZ4V.cjs.map +1 -0
  16. package/dist/{chunk-WOASWM5W.cjs → chunk-6EORCZSC.cjs} +10 -10
  17. package/dist/{chunk-WOASWM5W.cjs.map → chunk-6EORCZSC.cjs.map} +1 -1
  18. package/dist/{chunk-2HPMUAMW.js → chunk-6MDHPZOJ.js} +769 -6
  19. package/dist/chunk-6MDHPZOJ.js.map +1 -0
  20. package/dist/{chunk-MRA3CYYV.cjs → chunk-7FWYWVRL.cjs} +8 -8
  21. package/dist/{chunk-MRA3CYYV.cjs.map → chunk-7FWYWVRL.cjs.map} +1 -1
  22. package/dist/{chunk-VNFRE5PC.cjs → chunk-AQQEGR2L.cjs} +10 -10
  23. package/dist/{chunk-VNFRE5PC.cjs.map → chunk-AQQEGR2L.cjs.map} +1 -1
  24. package/dist/{chunk-VFFD2WJ2.cjs → chunk-AX6RYALX.cjs} +10 -10
  25. package/dist/{chunk-VFFD2WJ2.cjs.map → chunk-AX6RYALX.cjs.map} +1 -1
  26. package/dist/{chunk-SNK6UFPW.cjs → chunk-BG3UAWWQ.cjs} +14 -14
  27. package/dist/{chunk-SNK6UFPW.cjs.map → chunk-BG3UAWWQ.cjs.map} +1 -1
  28. package/dist/{chunk-76DAOWXY.js → chunk-BP3FLWZT.js} +4 -4
  29. package/dist/{chunk-76DAOWXY.js.map → chunk-BP3FLWZT.js.map} +1 -1
  30. package/dist/{chunk-JCK52DK6.cjs → chunk-C32ITCAX.cjs} +11 -11
  31. package/dist/{chunk-JCK52DK6.cjs.map → chunk-C32ITCAX.cjs.map} +1 -1
  32. package/dist/{chunk-KEYTQRMZ.cjs → chunk-D2R7PY34.cjs} +37 -37
  33. package/dist/{chunk-KEYTQRMZ.cjs.map → chunk-D2R7PY34.cjs.map} +1 -1
  34. package/dist/{chunk-7DC3GFTS.cjs → chunk-DDLTXG3Y.cjs} +28 -28
  35. package/dist/{chunk-7DC3GFTS.cjs.map → chunk-DDLTXG3Y.cjs.map} +1 -1
  36. package/dist/{chunk-U2MEDXN5.js → chunk-DWNUIMDL.js} +4 -4
  37. package/dist/{chunk-U2MEDXN5.js.map → chunk-DWNUIMDL.js.map} +1 -1
  38. package/dist/{chunk-YCK3UBA3.cjs → chunk-E47ITIFY.cjs} +28 -28
  39. package/dist/{chunk-YCK3UBA3.cjs.map → chunk-E47ITIFY.cjs.map} +1 -1
  40. package/dist/{chunk-J3GI6BPX.js → chunk-E5CLWABD.js} +118 -17
  41. package/dist/chunk-E5CLWABD.js.map +1 -0
  42. package/dist/{chunk-NI5HCR63.js → chunk-E6SN323H.js} +3 -3
  43. package/dist/{chunk-NI5HCR63.js.map → chunk-E6SN323H.js.map} +1 -1
  44. package/dist/{chunk-AUOLHRVZ.cjs → chunk-EYWOOOQG.cjs} +38 -38
  45. package/dist/{chunk-AUOLHRVZ.cjs.map → chunk-EYWOOOQG.cjs.map} +1 -1
  46. package/dist/{chunk-4XI72F3Q.cjs → chunk-FGU5GYMB.cjs} +8 -7
  47. package/dist/chunk-FGU5GYMB.cjs.map +1 -0
  48. package/dist/{chunk-KAQ3OHOE.cjs → chunk-G35BBKD7.cjs} +10 -10
  49. package/dist/{chunk-KAQ3OHOE.cjs.map → chunk-G35BBKD7.cjs.map} +1 -1
  50. package/dist/{chunk-ZXRN52DW.js → chunk-G46IGMXH.js} +3 -3
  51. package/dist/{chunk-ZXRN52DW.js.map → chunk-G46IGMXH.js.map} +1 -1
  52. package/dist/{chunk-XALSGFDK.js → chunk-GOV2VFTV.js} +3 -3
  53. package/dist/{chunk-XALSGFDK.js.map → chunk-GOV2VFTV.js.map} +1 -1
  54. package/dist/{chunk-KXNZSC3V.js → chunk-GOXZQ2BL.js} +3 -3
  55. package/dist/{chunk-KXNZSC3V.js.map → chunk-GOXZQ2BL.js.map} +1 -1
  56. package/dist/{chunk-TSYMLLXR.js → chunk-GV5CQBWZ.js} +3 -3
  57. package/dist/{chunk-TSYMLLXR.js.map → chunk-GV5CQBWZ.js.map} +1 -1
  58. package/dist/{chunk-R5MN7RFP.js → chunk-HDBM3PDF.js} +3 -3
  59. package/dist/{chunk-R5MN7RFP.js.map → chunk-HDBM3PDF.js.map} +1 -1
  60. package/dist/{chunk-W3QIBYWZ.js → chunk-HJPGS5RB.js} +9 -8
  61. package/dist/chunk-HJPGS5RB.js.map +1 -0
  62. package/dist/{chunk-CFA5AY4I.js → chunk-HSUOCEO7.js} +4 -4
  63. package/dist/{chunk-CFA5AY4I.js.map → chunk-HSUOCEO7.js.map} +1 -1
  64. package/dist/{chunk-ZDCTQJFB.js → chunk-HTDMQEXM.js} +3 -3
  65. package/dist/{chunk-ZDCTQJFB.js.map → chunk-HTDMQEXM.js.map} +1 -1
  66. package/dist/{chunk-NCVXAT2D.js → chunk-I5WEJOAE.js} +3 -3
  67. package/dist/{chunk-NCVXAT2D.js.map → chunk-I5WEJOAE.js.map} +1 -1
  68. package/dist/{chunk-B2NLS3NT.js → chunk-IN35SZ2C.js} +3 -3
  69. package/dist/{chunk-B2NLS3NT.js.map → chunk-IN35SZ2C.js.map} +1 -1
  70. package/dist/{chunk-AIGAXCMX.cjs → chunk-J2JX7FYX.cjs} +7 -7
  71. package/dist/{chunk-AIGAXCMX.cjs.map → chunk-J2JX7FYX.cjs.map} +1 -1
  72. package/dist/{chunk-IYPY7RRT.js → chunk-JPH6OOSM.js} +3 -3
  73. package/dist/{chunk-IYPY7RRT.js.map → chunk-JPH6OOSM.js.map} +1 -1
  74. package/dist/{chunk-735PUE35.cjs → chunk-JPJIWO77.cjs} +102 -101
  75. package/dist/chunk-JPJIWO77.cjs.map +1 -0
  76. package/dist/{chunk-NQOGRE2Z.js → chunk-K5FZ3MKO.js} +4 -4
  77. package/dist/{chunk-NQOGRE2Z.js.map → chunk-K5FZ3MKO.js.map} +1 -1
  78. package/dist/{chunk-Z4PPU3CR.cjs → chunk-L5IPLJ3D.cjs} +11 -11
  79. package/dist/{chunk-Z4PPU3CR.cjs.map → chunk-L5IPLJ3D.cjs.map} +1 -1
  80. package/dist/{chunk-M3FNKLTJ.cjs → chunk-MFO2IOF3.cjs} +16 -16
  81. package/dist/{chunk-M3FNKLTJ.cjs.map → chunk-MFO2IOF3.cjs.map} +1 -1
  82. package/dist/{chunk-FJ4PYS2Y.js → chunk-MP6KOR6Q.js} +4 -4
  83. package/dist/{chunk-FJ4PYS2Y.js.map → chunk-MP6KOR6Q.js.map} +1 -1
  84. package/dist/{chunk-RE3O2Q7O.js → chunk-MXWJSZXL.js} +4 -4
  85. package/dist/{chunk-RE3O2Q7O.js.map → chunk-MXWJSZXL.js.map} +1 -1
  86. package/dist/{chunk-S2ISWAFD.cjs → chunk-N2BDDGAV.cjs} +10 -10
  87. package/dist/{chunk-S2ISWAFD.cjs.map → chunk-N2BDDGAV.cjs.map} +1 -1
  88. package/dist/{chunk-VCIHYF2N.js → chunk-NUJ57TFV.js} +4 -4
  89. package/dist/{chunk-VCIHYF2N.js.map → chunk-NUJ57TFV.js.map} +1 -1
  90. package/dist/{chunk-66VXBWSR.js → chunk-O6TI6M65.js} +4 -4
  91. package/dist/{chunk-66VXBWSR.js.map → chunk-O6TI6M65.js.map} +1 -1
  92. package/dist/{chunk-B3MLNCJO.cjs → chunk-PPGMPIWY.cjs} +11 -11
  93. package/dist/{chunk-B3MLNCJO.cjs.map → chunk-PPGMPIWY.cjs.map} +1 -1
  94. package/dist/{chunk-UAINGDV5.cjs → chunk-PWEAVIXV.cjs} +6 -6
  95. package/dist/{chunk-UAINGDV5.cjs.map → chunk-PWEAVIXV.cjs.map} +1 -1
  96. package/dist/{chunk-EAJ2SSAY.cjs → chunk-Q3IJZXJC.cjs} +11 -11
  97. package/dist/{chunk-EAJ2SSAY.cjs.map → chunk-Q3IJZXJC.cjs.map} +1 -1
  98. package/dist/{chunk-SNGY24DC.js → chunk-Q6FUJNUH.js} +3 -3
  99. package/dist/{chunk-SNGY24DC.js.map → chunk-Q6FUJNUH.js.map} +1 -1
  100. package/dist/{chunk-GQTXBUV3.cjs → chunk-Q7TFYRGQ.cjs} +10 -10
  101. package/dist/{chunk-GQTXBUV3.cjs.map → chunk-Q7TFYRGQ.cjs.map} +1 -1
  102. package/dist/{chunk-TJL5FEEQ.cjs → chunk-RHLVKDVK.cjs} +11 -11
  103. package/dist/{chunk-TJL5FEEQ.cjs.map → chunk-RHLVKDVK.cjs.map} +1 -1
  104. package/dist/{chunk-TG3SW2HK.js → chunk-RN2QRBV4.js} +3 -3
  105. package/dist/{chunk-TG3SW2HK.js.map → chunk-RN2QRBV4.js.map} +1 -1
  106. package/dist/{chunk-IU42MFMF.cjs → chunk-RYFUAQ6R.cjs} +11 -11
  107. package/dist/{chunk-IU42MFMF.cjs.map → chunk-RYFUAQ6R.cjs.map} +1 -1
  108. package/dist/{chunk-DTURLO75.cjs → chunk-S3IMBHXP.cjs} +9 -9
  109. package/dist/{chunk-DTURLO75.cjs.map → chunk-S3IMBHXP.cjs.map} +1 -1
  110. package/dist/{chunk-YDO5OPEU.cjs → chunk-SOG4LDST.cjs} +769 -6
  111. package/dist/chunk-SOG4LDST.cjs.map +1 -0
  112. package/dist/{chunk-TPBXZVM2.js → chunk-SSY5LVIH.js} +3 -3
  113. package/dist/{chunk-TPBXZVM2.js.map → chunk-SSY5LVIH.js.map} +1 -1
  114. package/dist/{chunk-5QAZEJLG.cjs → chunk-TMCDS3XP.cjs} +10 -10
  115. package/dist/{chunk-5QAZEJLG.cjs.map → chunk-TMCDS3XP.cjs.map} +1 -1
  116. package/dist/{chunk-W4B3I2S5.cjs → chunk-TMH4AMSS.cjs} +12 -12
  117. package/dist/{chunk-W4B3I2S5.cjs.map → chunk-TMH4AMSS.cjs.map} +1 -1
  118. package/dist/{chunk-2RC624RU.js → chunk-TQKWQKHP.js} +3 -3
  119. package/dist/{chunk-2RC624RU.js.map → chunk-TQKWQKHP.js.map} +1 -1
  120. package/dist/{chunk-YGZZZ5L6.js → chunk-U3KAKJYL.js} +4 -4
  121. package/dist/{chunk-YGZZZ5L6.js.map → chunk-U3KAKJYL.js.map} +1 -1
  122. package/dist/{chunk-A5VD2RSU.cjs → chunk-VDYI3V6P.cjs} +5 -5
  123. package/dist/{chunk-A5VD2RSU.cjs.map → chunk-VDYI3V6P.cjs.map} +1 -1
  124. package/dist/{chunk-36MZMOPE.cjs → chunk-WNG6C2OY.cjs} +24 -24
  125. package/dist/{chunk-36MZMOPE.cjs.map → chunk-WNG6C2OY.cjs.map} +1 -1
  126. package/dist/{chunk-35UZWWLE.js → chunk-WPG4POSC.js} +4 -4
  127. package/dist/{chunk-35UZWWLE.js.map → chunk-WPG4POSC.js.map} +1 -1
  128. package/dist/{chunk-PRQGENYS.js → chunk-WWH2YGEQ.js} +5 -4
  129. package/dist/chunk-WWH2YGEQ.js.map +1 -0
  130. package/dist/{chunk-HOGOJPGP.js → chunk-XDBWJQO6.js} +4 -4
  131. package/dist/{chunk-HOGOJPGP.js.map → chunk-XDBWJQO6.js.map} +1 -1
  132. package/dist/{chunk-RK2JEDNO.cjs → chunk-XDFQJNOR.cjs} +6 -6
  133. package/dist/{chunk-RK2JEDNO.cjs.map → chunk-XDFQJNOR.cjs.map} +1 -1
  134. package/dist/{chunk-XV6SSNPX.js → chunk-XI4SISOH.js} +4 -4
  135. package/dist/{chunk-XV6SSNPX.js.map → chunk-XI4SISOH.js.map} +1 -1
  136. package/dist/{chunk-IRGW3SKB.js → chunk-XM6TVQQD.js} +3 -3
  137. package/dist/{chunk-IRGW3SKB.js.map → chunk-XM6TVQQD.js.map} +1 -1
  138. package/dist/{chunk-7Q5EF4YL.cjs → chunk-XNUXAO2P.cjs} +42 -42
  139. package/dist/{chunk-7Q5EF4YL.cjs.map → chunk-XNUXAO2P.cjs.map} +1 -1
  140. package/dist/{chunk-5MX3D4IX.js → chunk-ZB4FHUTD.js} +3 -3
  141. package/dist/{chunk-5MX3D4IX.js.map → chunk-ZB4FHUTD.js.map} +1 -1
  142. package/dist/{chunk-VB4KLMMA.js → chunk-ZGAWVGDD.js} +5 -5
  143. package/dist/{chunk-VB4KLMMA.js.map → chunk-ZGAWVGDD.js.map} +1 -1
  144. package/dist/{chunk-KFG2APPS.js → chunk-ZGP2PLRF.js} +4 -4
  145. package/dist/{chunk-KFG2APPS.js.map → chunk-ZGP2PLRF.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.d.ts.map +1 -1
  184. package/dist/server/handlers/processors.js +1 -1
  185. package/dist/server/handlers/prompt-block-versions.cjs +8 -8
  186. package/dist/server/handlers/prompt-block-versions.js +1 -1
  187. package/dist/server/handlers/responses.cjs +4 -4
  188. package/dist/server/handlers/responses.js +1 -1
  189. package/dist/server/handlers/scorer-versions.cjs +8 -8
  190. package/dist/server/handlers/scorer-versions.js +1 -1
  191. package/dist/server/handlers/scores.cjs +7 -7
  192. package/dist/server/handlers/scores.js +1 -1
  193. package/dist/server/handlers/stored-agents.cjs +7 -7
  194. package/dist/server/handlers/stored-agents.js +1 -1
  195. package/dist/server/handlers/stored-mcp-clients.cjs +6 -6
  196. package/dist/server/handlers/stored-mcp-clients.js +1 -1
  197. package/dist/server/handlers/stored-prompt-blocks.cjs +6 -6
  198. package/dist/server/handlers/stored-prompt-blocks.js +1 -1
  199. package/dist/server/handlers/stored-scorers.cjs +6 -6
  200. package/dist/server/handlers/stored-scorers.js +1 -1
  201. package/dist/server/handlers/stored-skills.cjs +7 -7
  202. package/dist/server/handlers/stored-skills.js +1 -1
  203. package/dist/server/handlers/stored-workspaces.cjs +6 -6
  204. package/dist/server/handlers/stored-workspaces.js +1 -1
  205. package/dist/server/handlers/system.cjs +2 -2
  206. package/dist/server/handlers/system.js +1 -1
  207. package/dist/server/handlers/tool-providers.cjs +5 -5
  208. package/dist/server/handlers/tool-providers.js +1 -1
  209. package/dist/server/handlers/tools.cjs +6 -6
  210. package/dist/server/handlers/tools.js +1 -1
  211. package/dist/server/handlers/vector.cjs +16 -16
  212. package/dist/server/handlers/vector.js +1 -1
  213. package/dist/server/handlers/voice.cjs +8 -8
  214. package/dist/server/handlers/voice.js +1 -1
  215. package/dist/server/handlers/workflows.cjs +24 -24
  216. package/dist/server/handlers/workflows.js +1 -1
  217. package/dist/server/handlers/workspace.cjs +26 -26
  218. package/dist/server/handlers/workspace.js +1 -1
  219. package/dist/server/handlers.cjs +30 -30
  220. package/dist/server/handlers.js +15 -15
  221. package/dist/server/server-adapter/index.cjs +306 -306
  222. package/dist/server/server-adapter/index.js +37 -37
  223. package/package.json +5 -5
  224. package/dist/chunk-2HPMUAMW.js.map +0 -1
  225. package/dist/chunk-4XI72F3Q.cjs.map +0 -1
  226. package/dist/chunk-735PUE35.cjs.map +0 -1
  227. package/dist/chunk-J3GI6BPX.js.map +0 -1
  228. package/dist/chunk-PNMZ2R5P.cjs.map +0 -1
  229. package/dist/chunk-PRQGENYS.js.map +0 -1
  230. package/dist/chunk-W3QIBYWZ.js.map +0 -1
  231. package/dist/chunk-YDO5OPEU.cjs.map +0 -1
@@ -1042,7 +1042,7 @@ function imageSize(input) {
1042
1042
  throw new TypeError(`unsupported file type: ${type}`);
1043
1043
  }
1044
1044
 
1045
- // ../memory/dist/chunk-7NCBGOHT.js
1045
+ // ../memory/dist/chunk-HB6AYAFD.js
1046
1046
  var OM_DEBUG_LOG = process.env.OM_DEBUG ? path.join(process.cwd(), "om-debug.log") : null;
1047
1047
  function omDebug(msg) {
1048
1048
  if (!OM_DEBUG_LOG) return;
@@ -1505,7 +1505,10 @@ function createActivationMarker(params) {
1505
1505
  threadId: params.threadId,
1506
1506
  generationCount: params.generationCount,
1507
1507
  config: params.config,
1508
- observations: params.observations
1508
+ observations: params.observations,
1509
+ triggeredBy: params.triggeredBy,
1510
+ lastActivityAt: params.lastActivityAt,
1511
+ ttlExpiredMs: params.ttlExpiredMs
1509
1512
  }
1510
1513
  };
1511
1514
  }
@@ -3014,7 +3017,8 @@ var ObservationStep = class {
3014
3017
  threadId,
3015
3018
  writer: this.turn.writer,
3016
3019
  requestContext: this.turn.requestContext,
3017
- observabilityContext: this.turn.observabilityContext
3020
+ observabilityContext: this.turn.observabilityContext,
3021
+ lastActivityAt: getLastActivityFromMessages(messageList.get.all.db())
3018
3022
  });
3019
3023
  await this.turn.refreshRecord();
3020
3024
  if (this.turn.record.generationCount > preReflectGeneration) {
@@ -3190,7 +3194,8 @@ var ObservationStep = class {
3190
3194
  writer: this.turn.writer,
3191
3195
  messageList,
3192
3196
  requestContext: this.turn.requestContext,
3193
- observabilityContext: this.turn.observabilityContext
3197
+ observabilityContext: this.turn.observabilityContext,
3198
+ lastActivityAt: getLastActivityFromMessages(messageList.get.all.db())
3194
3199
  });
3195
3200
  return {
3196
3201
  succeeded: true,
@@ -5133,7 +5138,8 @@ var ReflectorRunner = class {
5133
5138
  observationTokens: getMaxThreshold(
5134
5139
  record ? this.getEffectiveReflectionTokens(record) : this.reflectionConfig.observationTokens
5135
5140
  ),
5136
- scope: this.scope
5141
+ scope: this.scope,
5142
+ activateAfterIdle: this.reflectionConfig.activateAfterIdle
5137
5143
  };
5138
5144
  }
5139
5145
  /**
@@ -5419,7 +5425,7 @@ var ReflectorRunner = class {
5419
5425
  * Try to activate buffered reflection when threshold is reached.
5420
5426
  * Returns true if activation succeeded.
5421
5427
  */
5422
- async tryActivateBufferedReflection(record, lockKey, writer, messageList) {
5428
+ async tryActivateBufferedReflection(record, lockKey, writer, messageList, activationMetadata) {
5423
5429
  const bufferKey = this.buffering.getReflectionBufferKey(lockKey);
5424
5430
  const asyncOp = BufferingCoordinator.asyncBufferingOps.get(bufferKey);
5425
5431
  if (asyncOp) {
@@ -5479,6 +5485,9 @@ ${unreflectedContent}` : freshRecord.bufferedReflection;
5479
5485
  threadId: freshRecord.threadId ?? "",
5480
5486
  generationCount: afterRecord?.generationCount ?? freshRecord.generationCount ?? 0,
5481
5487
  observations: afterRecord?.activeObservations,
5488
+ triggeredBy: activationMetadata?.triggeredBy,
5489
+ lastActivityAt: activationMetadata?.lastActivityAt,
5490
+ ttlExpiredMs: activationMetadata?.ttlExpiredMs,
5482
5491
  config: this.getObservationMarkerConfig(freshRecord)
5483
5492
  });
5484
5493
  void writer.custom(activationMarker).catch(() => {
@@ -5507,7 +5516,9 @@ ${unreflectedContent}` : freshRecord.bufferedReflection;
5507
5516
  messageList,
5508
5517
  reflectionHooks,
5509
5518
  requestContext,
5510
- observabilityContext
5519
+ observabilityContext,
5520
+ lastActivityAt,
5521
+ threadId: requestedThreadId
5511
5522
  } = opts;
5512
5523
  const lockKey = this.buffering.getLockKey(record.threadId, record.resourceId);
5513
5524
  const reflectThreshold = getMaxThreshold(this.getEffectiveReflectionTokens(record));
@@ -5539,9 +5550,17 @@ ${unreflectedContent}` : freshRecord.bufferedReflection;
5539
5550
  );
5540
5551
  }
5541
5552
  }
5542
- if (observationTokens < reflectThreshold) {
5553
+ const activateAfterIdle = this.reflectionConfig.activateAfterIdle;
5554
+ const ttlExpiredMs = activateAfterIdle !== void 0 && lastActivityAt !== void 0 ? Date.now() - lastActivityAt : void 0;
5555
+ const ttlExpired = ttlExpiredMs !== void 0 && activateAfterIdle !== void 0 && ttlExpiredMs >= activateAfterIdle;
5556
+ if (observationTokens < reflectThreshold && !ttlExpired) {
5543
5557
  return;
5544
5558
  }
5559
+ const activationMetadata = {
5560
+ triggeredBy: ttlExpired ? "ttl" : "threshold",
5561
+ lastActivityAt: ttlExpired ? lastActivityAt : void 0,
5562
+ ttlExpiredMs: ttlExpired ? ttlExpiredMs : void 0
5563
+ };
5545
5564
  if (record.isReflecting) {
5546
5565
  if (isOpActiveInProcess(record.id, "reflecting")) {
5547
5566
  omDebug(`[OM:reflect] isReflecting=true and active in this process, skipping`);
@@ -5551,7 +5570,13 @@ ${unreflectedContent}` : freshRecord.bufferedReflection;
5551
5570
  await this.storage.setReflectingFlag(record.id, false);
5552
5571
  }
5553
5572
  if (this.buffering.isAsyncReflectionEnabled()) {
5554
- const activationSuccess = await this.tryActivateBufferedReflection(record, lockKey, writer, messageList);
5573
+ const activationSuccess = await this.tryActivateBufferedReflection(
5574
+ record,
5575
+ lockKey,
5576
+ writer,
5577
+ messageList,
5578
+ activationMetadata
5579
+ );
5555
5580
  if (activationSuccess) {
5556
5581
  return;
5557
5582
  }
@@ -5580,7 +5605,7 @@ ${unreflectedContent}` : freshRecord.bufferedReflection;
5580
5605
  registerOp(record.id, "reflecting");
5581
5606
  const cycleId = crypto.randomUUID();
5582
5607
  const startedAt = (/* @__PURE__ */ new Date()).toISOString();
5583
- const threadId = opts.threadId ?? "unknown";
5608
+ const threadId = requestedThreadId ?? "unknown";
5584
5609
  if (writer) {
5585
5610
  const startMarker = createObservationStartMarker({
5586
5611
  cycleId,
@@ -7228,6 +7253,58 @@ function buildMessageRange(messages) {
7228
7253
  const last = [...messages].reverse().find(messageHasVisibleContent) ?? messages[messages.length - 1];
7229
7254
  return `${first.id}:${last.id}`;
7230
7255
  }
7256
+ function getLastActivityFromMessages(messages) {
7257
+ if (!messages) return void 0;
7258
+ for (let i = messages.length - 1; i >= 0; i--) {
7259
+ const message = messages[i];
7260
+ if (!message || message.role !== "assistant") {
7261
+ continue;
7262
+ }
7263
+ if (!message.content || typeof message.content === "string") {
7264
+ return message.createdAt ? new Date(message.createdAt).getTime() : void 0;
7265
+ }
7266
+ for (let j = message.content.parts.length - 1; j >= 0; j--) {
7267
+ const part = message.content.parts[j];
7268
+ if (!part || part.type?.startsWith("data-")) {
7269
+ continue;
7270
+ }
7271
+ if (part.createdAt !== void 0) {
7272
+ return part.createdAt;
7273
+ }
7274
+ }
7275
+ return message.createdAt ? new Date(message.createdAt).getTime() : void 0;
7276
+ }
7277
+ return void 0;
7278
+ }
7279
+ function parseActivationTTL(value, fieldPath) {
7280
+ if (value === void 0) {
7281
+ return void 0;
7282
+ }
7283
+ if (typeof value === "number") {
7284
+ if (!Number.isFinite(value) || value < 0) {
7285
+ throw new Error(`${fieldPath} must be a non-negative number of milliseconds or a duration string like "5m".`);
7286
+ }
7287
+ return value;
7288
+ }
7289
+ const trimmed = value.trim();
7290
+ const match = trimmed.match(
7291
+ /^(\d+(?:\.\d+)?)\s*(ms|msec|msecs|millisecond|milliseconds|s|sec|secs|second|seconds|m|min|mins|minute|minutes|h|hr|hrs|hour|hours)$/i
7292
+ );
7293
+ if (!match) {
7294
+ throw new Error(
7295
+ `${fieldPath} must be a non-negative number of milliseconds or a duration string like "5m" or "1hr".`
7296
+ );
7297
+ }
7298
+ const rawAmount = match[1];
7299
+ const rawUnit = match[2];
7300
+ const amount = Number(rawAmount);
7301
+ const unit = rawUnit.toLowerCase();
7302
+ if (!Number.isFinite(amount) || amount < 0) {
7303
+ throw new Error(`${fieldPath} must be a non-negative number of milliseconds or a duration string like "5m".`);
7304
+ }
7305
+ 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;
7306
+ return amount * multiplier;
7307
+ }
7231
7308
  var ObservationalMemory = class _ObservationalMemory {
7232
7309
  storage;
7233
7310
  tokenCounter;
@@ -7374,6 +7451,7 @@ Async buffering is enabled by default \u2014 this opt-out is only needed when us
7374
7451
  config.observation?.messageTokens ?? chunk3D55EABW_cjs.OBSERVATIONAL_MEMORY_DEFAULTS.observation.messageTokens
7375
7452
  ),
7376
7453
  bufferActivation: asyncBufferingDisabled ? void 0 : config.observation?.bufferActivation ?? chunk3D55EABW_cjs.OBSERVATIONAL_MEMORY_DEFAULTS.observation.bufferActivation,
7454
+ activateAfterIdle: parseActivationTTL(config.activateAfterIdle, "activateAfterIdle"),
7377
7455
  blockAfter: asyncBufferingDisabled ? void 0 : resolveBlockAfter(
7378
7456
  config.observation?.blockAfter ?? (config.observation?.bufferTokens ?? chunk3D55EABW_cjs.OBSERVATIONAL_MEMORY_DEFAULTS.observation.bufferTokens ? 1.2 : void 0),
7379
7457
  config.observation?.messageTokens ?? chunk3D55EABW_cjs.OBSERVATIONAL_MEMORY_DEFAULTS.observation.messageTokens
@@ -7392,6 +7470,7 @@ Async buffering is enabled by default \u2014 this opt-out is only needed when us
7392
7470
  },
7393
7471
  providerOptions: config.reflection?.providerOptions ?? chunk3D55EABW_cjs.OBSERVATIONAL_MEMORY_DEFAULTS.reflection.providerOptions,
7394
7472
  bufferActivation: asyncBufferingDisabled ? void 0 : config?.reflection?.bufferActivation ?? chunk3D55EABW_cjs.OBSERVATIONAL_MEMORY_DEFAULTS.reflection.bufferActivation,
7473
+ activateAfterIdle: parseActivationTTL(config.activateAfterIdle, "activateAfterIdle"),
7395
7474
  blockAfter: asyncBufferingDisabled ? void 0 : resolveBlockAfter(
7396
7475
  config.reflection?.blockAfter ?? (config.reflection?.bufferActivation ?? chunk3D55EABW_cjs.OBSERVATIONAL_MEMORY_DEFAULTS.reflection.bufferActivation ? 1.2 : void 0),
7397
7476
  config.reflection?.observationTokens ?? chunk3D55EABW_cjs.OBSERVATIONAL_MEMORY_DEFAULTS.reflection.observationTokens
@@ -7786,7 +7865,8 @@ Async buffering is enabled by default \u2014 this opt-out is only needed when us
7786
7865
  return {
7787
7866
  messageTokens: getMaxThreshold(this.observationConfig.messageTokens),
7788
7867
  observationTokens: getMaxThreshold(this.reflectionConfig.observationTokens),
7789
- scope: this.scope
7868
+ scope: this.scope,
7869
+ activateAfterIdle: this.observationConfig.activateAfterIdle
7790
7870
  };
7791
7871
  }
7792
7872
  /**
@@ -9024,7 +9104,7 @@ ${grouped}` : grouped;
9024
9104
  await BufferingCoordinator.awaitBuffering(threadId, resourceId ?? null, this.scope);
9025
9105
  const preStatus = await this.getStatus({ threadId, resourceId, messages });
9026
9106
  if (preStatus.canActivate) {
9027
- const actResult = await this.activate({ threadId, resourceId });
9107
+ const actResult = await this.activate({ threadId, resourceId, messages });
9028
9108
  activated = actResult.activated;
9029
9109
  }
9030
9110
  const postStatus = await this.getStatus({ threadId, resourceId, messages });
@@ -9284,10 +9364,28 @@ ${grouped}` : grouped;
9284
9364
  if (!chunks.length) {
9285
9365
  return { activated: false, record };
9286
9366
  }
9367
+ let activationTriggeredBy = "threshold";
9368
+ let activationLastActivityAt;
9369
+ let activateAfterIdleExpiredMs;
9287
9370
  if (opts.checkThreshold) {
9288
- const status = await this.getStatus({ threadId, resourceId, messages: opts.messages });
9289
- if (status.pendingTokens < status.threshold) {
9290
- return { activated: false, record };
9371
+ const thresholdMessages = opts.messages ?? await this.loadMessagesFromStorage(
9372
+ threadId,
9373
+ resourceId,
9374
+ record.lastObservedAt ? new Date(record.lastObservedAt) : void 0
9375
+ );
9376
+ const activateAfterIdle = this.observationConfig.activateAfterIdle;
9377
+ const lastActivityAt = getLastActivityFromMessages(thresholdMessages);
9378
+ const ttlExpiredMs = activateAfterIdle !== void 0 && lastActivityAt !== void 0 ? Date.now() - lastActivityAt : void 0;
9379
+ const ttlExpired = ttlExpiredMs !== void 0 && activateAfterIdle !== void 0 && ttlExpiredMs >= activateAfterIdle;
9380
+ if (ttlExpired) {
9381
+ activationTriggeredBy = "ttl";
9382
+ activationLastActivityAt = lastActivityAt;
9383
+ activateAfterIdleExpiredMs = ttlExpiredMs;
9384
+ } else {
9385
+ const status = await this.getStatus({ threadId, resourceId, messages: thresholdMessages });
9386
+ if (status.pendingTokens < status.threshold) {
9387
+ return { activated: false, record };
9388
+ }
9291
9389
  }
9292
9390
  }
9293
9391
  if (record.isBufferingObservation) {
@@ -9345,6 +9443,9 @@ ${grouped}` : grouped;
9345
9443
  threadId: postSwapRecord.threadId ?? record.threadId ?? "",
9346
9444
  generationCount: postSwapRecord.generationCount ?? 0,
9347
9445
  observations: chunkData?.observations ?? activationResult.observations,
9446
+ triggeredBy: activationTriggeredBy,
9447
+ lastActivityAt: activationLastActivityAt,
9448
+ ttlExpiredMs: activateAfterIdleExpiredMs,
9348
9449
  config: this.getObservationMarkerConfig()
9349
9450
  });
9350
9451
  void opts.writer.custom(activationMarker).catch(() => {
@@ -9860,5 +9961,5 @@ exports.stripEphemeralAnchorIds = stripEphemeralAnchorIds;
9860
9961
  exports.stripObservationGroups = stripObservationGroups;
9861
9962
  exports.truncateStringByTokens = truncateStringByTokens;
9862
9963
  exports.wrapInObservationGroup = wrapInObservationGroup;
9863
- //# sourceMappingURL=chunk-PNMZ2R5P.cjs.map
9864
- //# sourceMappingURL=chunk-PNMZ2R5P.cjs.map
9964
+ //# sourceMappingURL=chunk-6BU7KZ4V.cjs.map
9965
+ //# sourceMappingURL=chunk-6BU7KZ4V.cjs.map