@farukada/aws-langgraph-dynamodb-ts 0.2.0 → 0.3.0

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 (517) hide show
  1. package/README.md +226 -510
  2. package/dist/checkpointer/actions/delete-thread.d.ts +7 -6
  3. package/dist/checkpointer/actions/delete-thread.d.ts.map +1 -1
  4. package/dist/checkpointer/actions/delete-thread.js +47 -152
  5. package/dist/checkpointer/actions/delete-thread.js.map +1 -1
  6. package/dist/checkpointer/actions/get-tuple.d.ts +6 -14
  7. package/dist/checkpointer/actions/get-tuple.d.ts.map +1 -1
  8. package/dist/checkpointer/actions/get-tuple.js +13 -166
  9. package/dist/checkpointer/actions/get-tuple.js.map +1 -1
  10. package/dist/checkpointer/actions/list.d.ts +10 -0
  11. package/dist/checkpointer/actions/list.d.ts.map +1 -0
  12. package/dist/checkpointer/actions/list.js +51 -0
  13. package/dist/checkpointer/actions/list.js.map +1 -0
  14. package/dist/checkpointer/actions/put-writes.d.ts +6 -6
  15. package/dist/checkpointer/actions/put-writes.d.ts.map +1 -1
  16. package/dist/checkpointer/actions/put-writes.js +26 -75
  17. package/dist/checkpointer/actions/put-writes.js.map +1 -1
  18. package/dist/checkpointer/actions/put.d.ts +6 -11
  19. package/dist/checkpointer/actions/put.d.ts.map +1 -1
  20. package/dist/checkpointer/actions/put.js +29 -161
  21. package/dist/checkpointer/actions/put.js.map +1 -1
  22. package/dist/checkpointer/internal/assemble.d.ts +10 -0
  23. package/dist/checkpointer/internal/assemble.d.ts.map +1 -0
  24. package/dist/checkpointer/internal/assemble.js +37 -0
  25. package/dist/checkpointer/internal/assemble.js.map +1 -0
  26. package/dist/checkpointer/internal/configurable.d.ts +13 -0
  27. package/dist/checkpointer/internal/configurable.d.ts.map +1 -0
  28. package/dist/checkpointer/internal/configurable.js +23 -0
  29. package/dist/checkpointer/internal/configurable.js.map +1 -0
  30. package/dist/checkpointer/internal/fetch.d.ts +10 -0
  31. package/dist/checkpointer/internal/fetch.d.ts.map +1 -0
  32. package/dist/checkpointer/internal/fetch.js +46 -0
  33. package/dist/checkpointer/internal/fetch.js.map +1 -0
  34. package/dist/checkpointer/internal/filter-match.d.ts +12 -0
  35. package/dist/checkpointer/internal/filter-match.d.ts.map +1 -0
  36. package/dist/checkpointer/internal/filter-match.js +14 -0
  37. package/dist/checkpointer/internal/filter-match.js.map +1 -0
  38. package/dist/checkpointer/internal/item-reader.d.ts +10 -0
  39. package/dist/checkpointer/internal/item-reader.d.ts.map +1 -0
  40. package/dist/checkpointer/internal/item-reader.js +26 -0
  41. package/dist/checkpointer/internal/item-reader.js.map +1 -0
  42. package/dist/checkpointer/internal/item-writer.d.ts +14 -0
  43. package/dist/checkpointer/internal/item-writer.d.ts.map +1 -0
  44. package/dist/checkpointer/internal/item-writer.js +68 -0
  45. package/dist/checkpointer/internal/item-writer.js.map +1 -0
  46. package/dist/checkpointer/internal/keys.d.ts +15 -0
  47. package/dist/checkpointer/internal/keys.d.ts.map +1 -0
  48. package/dist/checkpointer/internal/keys.js +52 -0
  49. package/dist/checkpointer/internal/keys.js.map +1 -0
  50. package/dist/checkpointer/internal/query.d.ts +16 -0
  51. package/dist/checkpointer/internal/query.d.ts.map +1 -0
  52. package/dist/checkpointer/internal/query.js +33 -0
  53. package/dist/checkpointer/internal/query.js.map +1 -0
  54. package/dist/checkpointer/internal/setup.d.ts +31 -0
  55. package/dist/checkpointer/internal/setup.d.ts.map +1 -0
  56. package/dist/checkpointer/internal/setup.js +29 -0
  57. package/dist/checkpointer/internal/setup.js.map +1 -0
  58. package/dist/checkpointer/internal/validation.d.ts +9 -0
  59. package/dist/checkpointer/internal/validation.d.ts.map +1 -0
  60. package/dist/checkpointer/internal/validation.js +28 -0
  61. package/dist/checkpointer/internal/validation.js.map +1 -0
  62. package/dist/checkpointer/saver.d.ts +21 -0
  63. package/dist/checkpointer/saver.d.ts.map +1 -0
  64. package/dist/checkpointer/saver.js +49 -0
  65. package/dist/checkpointer/saver.js.map +1 -0
  66. package/dist/checkpointer/types.d.ts +43 -0
  67. package/dist/checkpointer/types.d.ts.map +1 -0
  68. package/dist/{store/types/index.js → checkpointer/types.js} +1 -1
  69. package/dist/checkpointer/types.js.map +1 -0
  70. package/dist/factory/factory.d.ts +41 -0
  71. package/dist/factory/factory.d.ts.map +1 -0
  72. package/dist/factory/factory.js +49 -0
  73. package/dist/factory/factory.js.map +1 -0
  74. package/dist/history/actions/add-messages.d.ts +12 -7
  75. package/dist/history/actions/add-messages.d.ts.map +1 -1
  76. package/dist/history/actions/add-messages.js +50 -48
  77. package/dist/history/actions/add-messages.js.map +1 -1
  78. package/dist/history/actions/clear.d.ts +5 -11
  79. package/dist/history/actions/clear.d.ts.map +1 -1
  80. package/dist/history/actions/clear.js +28 -62
  81. package/dist/history/actions/clear.js.map +1 -1
  82. package/dist/history/actions/get-messages.d.ts +6 -13
  83. package/dist/history/actions/get-messages.d.ts.map +1 -1
  84. package/dist/history/actions/get-messages.js +23 -59
  85. package/dist/history/actions/get-messages.js.map +1 -1
  86. package/dist/history/actions/list-sessions.d.ts +6 -22
  87. package/dist/history/actions/list-sessions.d.ts.map +1 -1
  88. package/dist/history/actions/list-sessions.js +26 -69
  89. package/dist/history/actions/list-sessions.js.map +1 -1
  90. package/dist/history/actions/reconcile-count.d.ts +10 -0
  91. package/dist/history/actions/reconcile-count.d.ts.map +1 -0
  92. package/dist/history/actions/reconcile-count.js +39 -0
  93. package/dist/history/actions/reconcile-count.js.map +1 -0
  94. package/dist/history/chat-message-history.d.ts +36 -0
  95. package/dist/history/chat-message-history.d.ts.map +1 -0
  96. package/dist/history/chat-message-history.js +67 -0
  97. package/dist/history/chat-message-history.js.map +1 -0
  98. package/dist/history/internal/append-saga.d.ts +17 -0
  99. package/dist/history/internal/append-saga.d.ts.map +1 -0
  100. package/dist/history/internal/append-saga.js +94 -0
  101. package/dist/history/internal/append-saga.js.map +1 -0
  102. package/dist/history/internal/item-mapper.d.ts +12 -0
  103. package/dist/history/internal/item-mapper.d.ts.map +1 -0
  104. package/dist/history/internal/item-mapper.js +33 -0
  105. package/dist/history/internal/item-mapper.js.map +1 -0
  106. package/dist/history/internal/keys.d.ts +9 -0
  107. package/dist/history/internal/keys.d.ts.map +1 -0
  108. package/dist/history/internal/keys.js +22 -0
  109. package/dist/history/internal/keys.js.map +1 -0
  110. package/dist/history/internal/message-chunker.d.ts +14 -0
  111. package/dist/history/internal/message-chunker.d.ts.map +1 -0
  112. package/dist/history/internal/message-chunker.js +60 -0
  113. package/dist/history/internal/message-chunker.js.map +1 -0
  114. package/dist/history/internal/message-transaction.d.ts +17 -0
  115. package/dist/history/internal/message-transaction.d.ts.map +1 -0
  116. package/dist/history/internal/message-transaction.js +27 -0
  117. package/dist/history/internal/message-transaction.js.map +1 -0
  118. package/dist/history/internal/query.d.ts +6 -0
  119. package/dist/history/internal/query.d.ts.map +1 -0
  120. package/dist/history/internal/query.js +28 -0
  121. package/dist/history/internal/query.js.map +1 -0
  122. package/dist/history/internal/session-update.d.ts +20 -0
  123. package/dist/history/internal/session-update.d.ts.map +1 -0
  124. package/dist/history/internal/session-update.js +46 -0
  125. package/dist/history/internal/session-update.js.map +1 -0
  126. package/dist/history/internal/setup.d.ts +28 -0
  127. package/dist/history/internal/setup.d.ts.map +1 -0
  128. package/dist/history/internal/setup.js +27 -0
  129. package/dist/history/internal/setup.js.map +1 -0
  130. package/dist/history/internal/title-generator.d.ts +7 -0
  131. package/dist/history/internal/title-generator.d.ts.map +1 -0
  132. package/dist/history/internal/title-generator.js +16 -0
  133. package/dist/history/internal/title-generator.js.map +1 -0
  134. package/dist/history/internal/ttl-anchor.d.ts +12 -0
  135. package/dist/history/internal/ttl-anchor.d.ts.map +1 -0
  136. package/dist/history/internal/ttl-anchor.js +26 -0
  137. package/dist/history/internal/ttl-anchor.js.map +1 -0
  138. package/dist/history/session-adapter.d.ts +10 -26
  139. package/dist/history/session-adapter.d.ts.map +1 -1
  140. package/dist/history/session-adapter.js +15 -57
  141. package/dist/history/session-adapter.js.map +1 -1
  142. package/dist/history/types.d.ts +36 -0
  143. package/dist/history/types.d.ts.map +1 -0
  144. package/dist/history/types.js +3 -0
  145. package/dist/history/types.js.map +1 -0
  146. package/dist/index.d.ts +18 -10
  147. package/dist/index.d.ts.map +1 -1
  148. package/dist/index.js +24 -16
  149. package/dist/index.js.map +1 -1
  150. package/dist/shared/clock.d.ts +3 -0
  151. package/dist/shared/clock.d.ts.map +1 -0
  152. package/dist/shared/clock.js +8 -0
  153. package/dist/shared/clock.js.map +1 -0
  154. package/dist/shared/codec/codec.d.ts +44 -0
  155. package/dist/shared/codec/codec.d.ts.map +1 -0
  156. package/dist/shared/codec/codec.js +44 -0
  157. package/dist/shared/codec/codec.js.map +1 -0
  158. package/dist/shared/codec/compression.d.ts +25 -0
  159. package/dist/shared/codec/compression.d.ts.map +1 -0
  160. package/dist/shared/codec/compression.js +49 -0
  161. package/dist/shared/codec/compression.js.map +1 -0
  162. package/dist/shared/codec/descriptor-keys.d.ts +4 -0
  163. package/dist/shared/codec/descriptor-keys.d.ts.map +1 -0
  164. package/dist/shared/codec/descriptor-keys.js +14 -0
  165. package/dist/shared/codec/descriptor-keys.js.map +1 -0
  166. package/dist/shared/codec/json-serde.d.ts +8 -0
  167. package/dist/shared/codec/json-serde.d.ts.map +1 -0
  168. package/dist/shared/codec/json-serde.js +18 -0
  169. package/dist/shared/codec/json-serde.js.map +1 -0
  170. package/dist/shared/codec/s3/client.d.ts +6 -0
  171. package/dist/shared/codec/s3/client.d.ts.map +1 -0
  172. package/dist/shared/codec/s3/client.js +18 -0
  173. package/dist/shared/codec/s3/client.js.map +1 -0
  174. package/dist/shared/codec/s3/config.d.ts +16 -0
  175. package/dist/shared/codec/s3/config.d.ts.map +1 -0
  176. package/dist/shared/codec/s3/config.js +14 -0
  177. package/dist/shared/codec/s3/config.js.map +1 -0
  178. package/dist/shared/codec/s3/delete.d.ts +8 -0
  179. package/dist/shared/codec/s3/delete.d.ts.map +1 -0
  180. package/dist/shared/codec/s3/delete.js +29 -0
  181. package/dist/shared/codec/s3/delete.js.map +1 -0
  182. package/dist/shared/codec/s3/lifecycle.d.ts +8 -0
  183. package/dist/shared/codec/s3/lifecycle.d.ts.map +1 -0
  184. package/dist/shared/codec/s3/lifecycle.js +47 -0
  185. package/dist/shared/codec/s3/lifecycle.js.map +1 -0
  186. package/dist/shared/codec/s3/offloader.d.ts +33 -0
  187. package/dist/shared/codec/s3/offloader.d.ts.map +1 -0
  188. package/dist/shared/codec/s3/offloader.js +80 -0
  189. package/dist/shared/codec/s3/offloader.js.map +1 -0
  190. package/dist/shared/codec/s3/orphans.d.ts +16 -0
  191. package/dist/shared/codec/s3/orphans.d.ts.map +1 -0
  192. package/dist/shared/codec/s3/orphans.js +73 -0
  193. package/dist/shared/codec/s3/orphans.js.map +1 -0
  194. package/dist/shared/codec/s3/read-write.d.ts +14 -0
  195. package/dist/shared/codec/s3/read-write.d.ts.map +1 -0
  196. package/dist/shared/codec/s3/read-write.js +42 -0
  197. package/dist/shared/codec/s3/read-write.js.map +1 -0
  198. package/dist/shared/constants.d.ts +37 -0
  199. package/dist/shared/constants.d.ts.map +1 -0
  200. package/dist/shared/constants.js +40 -0
  201. package/dist/shared/constants.js.map +1 -0
  202. package/dist/shared/dynamodb/backoff.d.ts +15 -0
  203. package/dist/shared/dynamodb/backoff.d.ts.map +1 -0
  204. package/dist/shared/dynamodb/backoff.js +48 -0
  205. package/dist/shared/dynamodb/backoff.js.map +1 -0
  206. package/dist/shared/dynamodb/batch-write.d.ts +10 -0
  207. package/dist/shared/dynamodb/batch-write.d.ts.map +1 -0
  208. package/dist/shared/dynamodb/batch-write.js +17 -0
  209. package/dist/shared/dynamodb/batch-write.js.map +1 -0
  210. package/dist/shared/dynamodb/client.d.ts +21 -0
  211. package/dist/shared/dynamodb/client.d.ts.map +1 -0
  212. package/dist/shared/dynamodb/client.js +19 -0
  213. package/dist/shared/dynamodb/client.js.map +1 -0
  214. package/dist/shared/dynamodb/drain-unprocessed.d.ts +15 -0
  215. package/dist/shared/dynamodb/drain-unprocessed.d.ts.map +1 -0
  216. package/dist/shared/dynamodb/drain-unprocessed.js +35 -0
  217. package/dist/shared/dynamodb/drain-unprocessed.js.map +1 -0
  218. package/dist/shared/dynamodb/paginate-core.d.ts +22 -0
  219. package/dist/shared/dynamodb/paginate-core.d.ts.map +1 -0
  220. package/dist/shared/dynamodb/paginate-core.js +52 -0
  221. package/dist/shared/dynamodb/paginate-core.js.map +1 -0
  222. package/dist/shared/dynamodb/paginate.d.ts +15 -0
  223. package/dist/shared/dynamodb/paginate.d.ts.map +1 -0
  224. package/dist/shared/dynamodb/paginate.js +20 -0
  225. package/dist/shared/dynamodb/paginate.js.map +1 -0
  226. package/dist/shared/dynamodb/retry-classifier.d.ts +9 -0
  227. package/dist/shared/dynamodb/retry-classifier.d.ts.map +1 -0
  228. package/dist/shared/dynamodb/retry-classifier.js +75 -0
  229. package/dist/shared/dynamodb/retry-classifier.js.map +1 -0
  230. package/dist/shared/dynamodb/retry.d.ts +18 -0
  231. package/dist/shared/dynamodb/retry.d.ts.map +1 -0
  232. package/dist/shared/dynamodb/retry.js +53 -0
  233. package/dist/shared/dynamodb/retry.js.map +1 -0
  234. package/dist/shared/dynamodb/scan.d.ts +15 -0
  235. package/dist/shared/dynamodb/scan.d.ts.map +1 -0
  236. package/dist/shared/dynamodb/scan.js +20 -0
  237. package/dist/shared/dynamodb/scan.js.map +1 -0
  238. package/dist/shared/dynamodb/types.d.ts +24 -0
  239. package/dist/shared/dynamodb/types.d.ts.map +1 -0
  240. package/dist/shared/dynamodb/types.js +3 -0
  241. package/dist/shared/dynamodb/types.js.map +1 -0
  242. package/dist/shared/errors/base-error.d.ts +22 -0
  243. package/dist/shared/errors/base-error.d.ts.map +1 -0
  244. package/dist/shared/errors/base-error.js +28 -0
  245. package/dist/shared/errors/base-error.js.map +1 -0
  246. package/dist/shared/errors/error-code.d.ts +13 -0
  247. package/dist/shared/errors/error-code.d.ts.map +1 -0
  248. package/dist/shared/errors/error-code.js +17 -0
  249. package/dist/shared/errors/error-code.js.map +1 -0
  250. package/dist/shared/errors/errors.d.ts +47 -0
  251. package/dist/shared/errors/errors.d.ts.map +1 -0
  252. package/dist/shared/errors/errors.js +82 -0
  253. package/dist/shared/errors/errors.js.map +1 -0
  254. package/dist/shared/errors/wrap-error.d.ts +16 -0
  255. package/dist/shared/errors/wrap-error.d.ts.map +1 -0
  256. package/dist/shared/errors/wrap-error.js +30 -0
  257. package/dist/shared/errors/wrap-error.js.map +1 -0
  258. package/dist/shared/logging/logger.d.ts +14 -0
  259. package/dist/shared/logging/logger.d.ts.map +1 -0
  260. package/dist/shared/logging/logger.js +16 -0
  261. package/dist/shared/logging/logger.js.map +1 -0
  262. package/dist/shared/logging/redaction.d.ts +19 -0
  263. package/dist/shared/logging/redaction.d.ts.map +1 -0
  264. package/dist/shared/logging/redaction.js +67 -0
  265. package/dist/shared/logging/redaction.js.map +1 -0
  266. package/dist/shared/options.d.ts +32 -0
  267. package/dist/shared/options.d.ts.map +1 -0
  268. package/dist/shared/options.js +3 -0
  269. package/dist/shared/options.js.map +1 -0
  270. package/dist/shared/ulid.d.ts +10 -0
  271. package/dist/shared/ulid.d.ts.map +1 -0
  272. package/dist/shared/ulid.js +65 -0
  273. package/dist/shared/ulid.js.map +1 -0
  274. package/dist/shared/validation/primitives.d.ts +17 -0
  275. package/dist/shared/validation/primitives.d.ts.map +1 -0
  276. package/dist/shared/validation/primitives.js +71 -0
  277. package/dist/shared/validation/primitives.js.map +1 -0
  278. package/dist/shared/validation/ttl.d.ts +16 -0
  279. package/dist/shared/validation/ttl.d.ts.map +1 -0
  280. package/dist/shared/validation/ttl.js +26 -0
  281. package/dist/shared/validation/ttl.js.map +1 -0
  282. package/dist/store/actions/get.d.ts +5 -0
  283. package/dist/store/actions/get.d.ts.map +1 -0
  284. package/dist/store/actions/get.js +21 -0
  285. package/dist/store/actions/get.js.map +1 -0
  286. package/dist/store/actions/list-namespaces.d.ts +9 -0
  287. package/dist/store/actions/list-namespaces.d.ts.map +1 -0
  288. package/dist/store/actions/list-namespaces.js +46 -0
  289. package/dist/store/actions/list-namespaces.js.map +1 -0
  290. package/dist/store/actions/put.d.ts +11 -0
  291. package/dist/store/actions/put.d.ts.map +1 -0
  292. package/dist/store/actions/put.js +81 -0
  293. package/dist/store/actions/put.js.map +1 -0
  294. package/dist/store/actions/reconcile-vector-index.d.ts +17 -0
  295. package/dist/store/actions/reconcile-vector-index.d.ts.map +1 -0
  296. package/dist/store/actions/reconcile-vector-index.js +27 -0
  297. package/dist/store/actions/reconcile-vector-index.js.map +1 -0
  298. package/dist/store/actions/search.d.ts +10 -0
  299. package/dist/store/actions/search.d.ts.map +1 -0
  300. package/dist/store/actions/search.js +72 -0
  301. package/dist/store/actions/search.js.map +1 -0
  302. package/dist/store/internal/filter.d.ts +10 -0
  303. package/dist/store/internal/filter.d.ts.map +1 -0
  304. package/dist/store/internal/filter.js +37 -0
  305. package/dist/store/internal/filter.js.map +1 -0
  306. package/dist/store/internal/index-reconcile.d.ts +22 -0
  307. package/dist/store/internal/index-reconcile.d.ts.map +1 -0
  308. package/dist/store/internal/index-reconcile.js +68 -0
  309. package/dist/store/internal/index-reconcile.js.map +1 -0
  310. package/dist/store/internal/index-sync.d.ts +11 -0
  311. package/dist/store/internal/index-sync.d.ts.map +1 -0
  312. package/dist/store/internal/index-sync.js +26 -0
  313. package/dist/store/internal/index-sync.js.map +1 -0
  314. package/dist/store/internal/item-mapper.d.ts +23 -0
  315. package/dist/store/internal/item-mapper.d.ts.map +1 -0
  316. package/dist/store/internal/item-mapper.js +51 -0
  317. package/dist/store/internal/item-mapper.js.map +1 -0
  318. package/dist/store/internal/keys.d.ts +18 -0
  319. package/dist/store/internal/keys.d.ts.map +1 -0
  320. package/dist/store/internal/keys.js +36 -0
  321. package/dist/store/internal/keys.js.map +1 -0
  322. package/dist/store/internal/namespace-match.d.ts +12 -0
  323. package/dist/store/internal/namespace-match.d.ts.map +1 -0
  324. package/dist/store/internal/namespace-match.js +41 -0
  325. package/dist/store/internal/namespace-match.js.map +1 -0
  326. package/dist/store/internal/query.d.ts +6 -0
  327. package/dist/store/internal/query.d.ts.map +1 -0
  328. package/dist/store/internal/query.js +32 -0
  329. package/dist/store/internal/query.js.map +1 -0
  330. package/dist/store/internal/ranker.d.ts +13 -0
  331. package/dist/store/internal/ranker.d.ts.map +1 -0
  332. package/dist/store/internal/ranker.js +29 -0
  333. package/dist/store/internal/ranker.js.map +1 -0
  334. package/dist/store/internal/semantic-search.d.ts +13 -0
  335. package/dist/store/internal/semantic-search.d.ts.map +1 -0
  336. package/dist/store/internal/semantic-search.js +47 -0
  337. package/dist/store/internal/semantic-search.js.map +1 -0
  338. package/dist/store/internal/setup.d.ts +31 -0
  339. package/dist/store/internal/setup.d.ts.map +1 -0
  340. package/dist/store/internal/setup.js +29 -0
  341. package/dist/store/internal/setup.js.map +1 -0
  342. package/dist/store/internal/validation.d.ts +7 -0
  343. package/dist/store/internal/validation.d.ts.map +1 -0
  344. package/dist/store/internal/validation.js +26 -0
  345. package/dist/store/internal/validation.js.map +1 -0
  346. package/dist/store/store.d.ts +24 -0
  347. package/dist/store/store.d.ts.map +1 -0
  348. package/dist/store/store.js +58 -0
  349. package/dist/store/store.js.map +1 -0
  350. package/dist/store/types.d.ts +28 -0
  351. package/dist/store/types.d.ts.map +1 -0
  352. package/dist/store/types.js +3 -0
  353. package/dist/store/types.js.map +1 -0
  354. package/dist/store/vector-backend.d.ts +27 -0
  355. package/dist/store/vector-backend.d.ts.map +1 -0
  356. package/dist/store/vector-backend.js +3 -0
  357. package/dist/store/vector-backend.js.map +1 -0
  358. package/package.json +32 -30
  359. package/dist/checkpointer/actions/index.d.ts +0 -5
  360. package/dist/checkpointer/actions/index.d.ts.map +0 -1
  361. package/dist/checkpointer/actions/index.js +0 -21
  362. package/dist/checkpointer/actions/index.js.map +0 -1
  363. package/dist/checkpointer/actions/validate-configurable.d.ts +0 -10
  364. package/dist/checkpointer/actions/validate-configurable.d.ts.map +0 -1
  365. package/dist/checkpointer/actions/validate-configurable.js +0 -39
  366. package/dist/checkpointer/actions/validate-configurable.js.map +0 -1
  367. package/dist/checkpointer/actions/writer.d.ts +0 -52
  368. package/dist/checkpointer/actions/writer.d.ts.map +0 -1
  369. package/dist/checkpointer/actions/writer.js +0 -109
  370. package/dist/checkpointer/actions/writer.js.map +0 -1
  371. package/dist/checkpointer/index.d.ts +0 -118
  372. package/dist/checkpointer/index.d.ts.map +0 -1
  373. package/dist/checkpointer/index.js +0 -393
  374. package/dist/checkpointer/index.js.map +0 -1
  375. package/dist/checkpointer/types/index.d.ts +0 -232
  376. package/dist/checkpointer/types/index.d.ts.map +0 -1
  377. package/dist/checkpointer/types/index.js +0 -13
  378. package/dist/checkpointer/types/index.js.map +0 -1
  379. package/dist/checkpointer/utils/deserialization.d.ts +0 -20
  380. package/dist/checkpointer/utils/deserialization.d.ts.map +0 -1
  381. package/dist/checkpointer/utils/deserialization.js +0 -81
  382. package/dist/checkpointer/utils/deserialization.js.map +0 -1
  383. package/dist/checkpointer/utils/index.d.ts +0 -7
  384. package/dist/checkpointer/utils/index.d.ts.map +0 -1
  385. package/dist/checkpointer/utils/index.js +0 -27
  386. package/dist/checkpointer/utils/index.js.map +0 -1
  387. package/dist/checkpointer/utils/validation.d.ts +0 -48
  388. package/dist/checkpointer/utils/validation.d.ts.map +0 -1
  389. package/dist/checkpointer/utils/validation.js +0 -235
  390. package/dist/checkpointer/utils/validation.js.map +0 -1
  391. package/dist/factory.d.ts +0 -153
  392. package/dist/factory.d.ts.map +0 -1
  393. package/dist/factory.js +0 -206
  394. package/dist/factory.js.map +0 -1
  395. package/dist/history/actions/add-message.d.ts +0 -10
  396. package/dist/history/actions/add-message.d.ts.map +0 -1
  397. package/dist/history/actions/add-message.js +0 -24
  398. package/dist/history/actions/add-message.js.map +0 -1
  399. package/dist/history/actions/index.d.ts +0 -9
  400. package/dist/history/actions/index.d.ts.map +0 -1
  401. package/dist/history/actions/index.js +0 -17
  402. package/dist/history/actions/index.js.map +0 -1
  403. package/dist/history/index.d.ts +0 -118
  404. package/dist/history/index.d.ts.map +0 -1
  405. package/dist/history/index.js +0 -179
  406. package/dist/history/index.js.map +0 -1
  407. package/dist/history/types/index.d.ts +0 -184
  408. package/dist/history/types/index.d.ts.map +0 -1
  409. package/dist/history/types/index.js +0 -7
  410. package/dist/history/types/index.js.map +0 -1
  411. package/dist/history/utils/index.d.ts +0 -9
  412. package/dist/history/utils/index.d.ts.map +0 -1
  413. package/dist/history/utils/index.js +0 -27
  414. package/dist/history/utils/index.js.map +0 -1
  415. package/dist/history/utils/optimistic-retry.d.ts +0 -31
  416. package/dist/history/utils/optimistic-retry.d.ts.map +0 -1
  417. package/dist/history/utils/optimistic-retry.js +0 -74
  418. package/dist/history/utils/optimistic-retry.js.map +0 -1
  419. package/dist/history/utils/title-generator.d.ts +0 -12
  420. package/dist/history/utils/title-generator.d.ts.map +0 -1
  421. package/dist/history/utils/title-generator.js +0 -57
  422. package/dist/history/utils/title-generator.js.map +0 -1
  423. package/dist/history/utils/update-expression-builder.d.ts +0 -55
  424. package/dist/history/utils/update-expression-builder.d.ts.map +0 -1
  425. package/dist/history/utils/update-expression-builder.js +0 -112
  426. package/dist/history/utils/update-expression-builder.js.map +0 -1
  427. package/dist/history/utils/validation.d.ts +0 -68
  428. package/dist/history/utils/validation.d.ts.map +0 -1
  429. package/dist/history/utils/validation.js +0 -213
  430. package/dist/history/utils/validation.js.map +0 -1
  431. package/dist/shared/index.d.ts +0 -5
  432. package/dist/shared/index.d.ts.map +0 -1
  433. package/dist/shared/index.js +0 -21
  434. package/dist/shared/index.js.map +0 -1
  435. package/dist/shared/utils/batch-write.d.ts +0 -74
  436. package/dist/shared/utils/batch-write.d.ts.map +0 -1
  437. package/dist/shared/utils/batch-write.js +0 -110
  438. package/dist/shared/utils/batch-write.js.map +0 -1
  439. package/dist/shared/utils/client-factory.d.ts +0 -25
  440. package/dist/shared/utils/client-factory.d.ts.map +0 -1
  441. package/dist/shared/utils/client-factory.js +0 -23
  442. package/dist/shared/utils/client-factory.js.map +0 -1
  443. package/dist/shared/utils/compressor.d.ts +0 -66
  444. package/dist/shared/utils/compressor.d.ts.map +0 -1
  445. package/dist/shared/utils/compressor.js +0 -133
  446. package/dist/shared/utils/compressor.js.map +0 -1
  447. package/dist/shared/utils/constants.d.ts +0 -13
  448. package/dist/shared/utils/constants.d.ts.map +0 -1
  449. package/dist/shared/utils/constants.js +0 -35
  450. package/dist/shared/utils/constants.js.map +0 -1
  451. package/dist/shared/utils/index.d.ts +0 -14
  452. package/dist/shared/utils/index.d.ts.map +0 -1
  453. package/dist/shared/utils/index.js +0 -30
  454. package/dist/shared/utils/index.js.map +0 -1
  455. package/dist/shared/utils/logger.d.ts +0 -75
  456. package/dist/shared/utils/logger.d.ts.map +0 -1
  457. package/dist/shared/utils/logger.js +0 -148
  458. package/dist/shared/utils/logger.js.map +0 -1
  459. package/dist/shared/utils/retry.d.ts +0 -26
  460. package/dist/shared/utils/retry.d.ts.map +0 -1
  461. package/dist/shared/utils/retry.js +0 -169
  462. package/dist/shared/utils/retry.js.map +0 -1
  463. package/dist/shared/utils/s3-offloader.d.ts +0 -153
  464. package/dist/shared/utils/s3-offloader.d.ts.map +0 -1
  465. package/dist/shared/utils/s3-offloader.js +0 -281
  466. package/dist/shared/utils/s3-offloader.js.map +0 -1
  467. package/dist/shared/utils/s3-orphans.d.ts +0 -16
  468. package/dist/shared/utils/s3-orphans.d.ts.map +0 -1
  469. package/dist/shared/utils/s3-orphans.js +0 -79
  470. package/dist/shared/utils/s3-orphans.js.map +0 -1
  471. package/dist/shared/utils/sleep.d.ts +0 -48
  472. package/dist/shared/utils/sleep.d.ts.map +0 -1
  473. package/dist/shared/utils/sleep.js +0 -82
  474. package/dist/shared/utils/sleep.js.map +0 -1
  475. package/dist/shared/utils/ttl.d.ts +0 -24
  476. package/dist/shared/utils/ttl.d.ts.map +0 -1
  477. package/dist/shared/utils/ttl.js +0 -43
  478. package/dist/shared/utils/ttl.js.map +0 -1
  479. package/dist/store/actions/get-operation.d.ts +0 -11
  480. package/dist/store/actions/get-operation.d.ts.map +0 -1
  481. package/dist/store/actions/get-operation.js +0 -42
  482. package/dist/store/actions/get-operation.js.map +0 -1
  483. package/dist/store/actions/index.d.ts +0 -5
  484. package/dist/store/actions/index.d.ts.map +0 -1
  485. package/dist/store/actions/index.js +0 -21
  486. package/dist/store/actions/index.js.map +0 -1
  487. package/dist/store/actions/list-namespaces-operation.d.ts +0 -10
  488. package/dist/store/actions/list-namespaces-operation.d.ts.map +0 -1
  489. package/dist/store/actions/list-namespaces-operation.js +0 -227
  490. package/dist/store/actions/list-namespaces-operation.js.map +0 -1
  491. package/dist/store/actions/put-operation.d.ts +0 -9
  492. package/dist/store/actions/put-operation.d.ts.map +0 -1
  493. package/dist/store/actions/put-operation.js +0 -107
  494. package/dist/store/actions/put-operation.js.map +0 -1
  495. package/dist/store/actions/search-operation.d.ts +0 -17
  496. package/dist/store/actions/search-operation.d.ts.map +0 -1
  497. package/dist/store/actions/search-operation.js +0 -203
  498. package/dist/store/actions/search-operation.js.map +0 -1
  499. package/dist/store/index.d.ts +0 -82
  500. package/dist/store/index.d.ts.map +0 -1
  501. package/dist/store/index.js +0 -172
  502. package/dist/store/index.js.map +0 -1
  503. package/dist/store/types/index.d.ts +0 -131
  504. package/dist/store/types/index.d.ts.map +0 -1
  505. package/dist/store/types/index.js.map +0 -1
  506. package/dist/store/utils/filter.d.ts +0 -16
  507. package/dist/store/utils/filter.d.ts.map +0 -1
  508. package/dist/store/utils/filter.js +0 -133
  509. package/dist/store/utils/filter.js.map +0 -1
  510. package/dist/store/utils/index.d.ts +0 -7
  511. package/dist/store/utils/index.d.ts.map +0 -1
  512. package/dist/store/utils/index.js +0 -27
  513. package/dist/store/utils/index.js.map +0 -1
  514. package/dist/store/utils/validation.d.ts +0 -61
  515. package/dist/store/utils/validation.d.ts.map +0 -1
  516. package/dist/store/utils/validation.js +0 -260
  517. package/dist/store/utils/validation.js.map +0 -1
@@ -1,9 +1,10 @@
1
- import { type DeleteThreadActionParams } from '../types';
1
+ import type { CheckpointerContext } from '../internal/setup';
2
2
  /**
3
- * Delete a thread and all its checkpoints (metadata + payload items) and writes from DynamoDB
4
- *
5
- * @param params - Parameters for the delete thread operation
6
- * @throws Error if validation fails or too many items exist
3
+ * Delete every checkpoint, payload, and write for a thread (all share the
4
+ * thread's partition), best-effort deleting any offloaded S3 objects. Streams
5
+ * the partition with unbounded pagination and flushes deletes in batches, so a
6
+ * thread of any size is deleted to completion with bounded memory — never
7
+ * silently truncated at the in-memory page caps.
7
8
  */
8
- export declare const deleteThreadAction: (params: DeleteThreadActionParams) => Promise<void>;
9
+ export declare function deleteThread(context: CheckpointerContext, threadId: string): Promise<void>;
9
10
  //# sourceMappingURL=delete-thread.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"delete-thread.d.ts","sourceRoot":"","sources":["../../../src/checkpointer/actions/delete-thread.ts"],"names":[],"mappings":"AAGA,OAAO,EAEL,KAAK,wBAAwB,EAG9B,MAAM,UAAU,CAAC;AAclB;;;;;GAKG;AACH,eAAO,MAAM,kBAAkB,GAAU,QAAQ,wBAAwB,KAAG,OAAO,CAAC,IAAI,CAsJvF,CAAC"}
1
+ {"version":3,"file":"delete-thread.d.ts","sourceRoot":"","sources":["../../../src/checkpointer/actions/delete-thread.ts"],"names":[],"mappings":"AASA,OAAO,KAAK,EAAE,mBAAmB,EAAE,MAAM,mBAAmB,CAAC;AA4C7D;;;;;;GAMG;AACH,wBAAsB,YAAY,CAAC,OAAO,EAAE,mBAAmB,EAAE,QAAQ,EAAE,MAAM,GAAG,OAAO,CAAC,IAAI,CAAC,CAehG"}
@@ -1,160 +1,55 @@
1
1
  "use strict";
2
2
  Object.defineProperty(exports, "__esModule", { value: true });
3
- exports.deleteThreadAction = void 0;
4
- const shared_1 = require("../../shared");
5
- const types_1 = require("../types");
6
- const utils_1 = require("../utils");
7
- const writer_1 = require("./writer");
8
- /**
9
- * Delete a thread and all its checkpoints (metadata + payload items) and writes from DynamoDB
10
- *
11
- * @param params - Parameters for the delete thread operation
12
- * @throws Error if validation fails or too many items exist
13
- */
14
- const deleteThreadAction = async (params) => {
15
- // Validate thread ID
16
- (0, utils_1.validateThreadId)(params.threadId);
17
- // Query returns BOTH metadata items and PAYLOAD# items for the thread.
18
- // We don't set a per-query Limit — DynamoDB's default 1 MB page is far more
19
- // efficient than many small 100-item queries. The real safeguard is the
20
- // MAX_DELETE_BATCH_SIZE total-item cap below.
21
- const allItems = [];
22
- let lastEvaluatedKey;
23
- let iterationCount = 0;
24
- // Deliberately higher than `MAX_LOOP_ITERATIONS` used in list()/search: deletes
25
- // must walk every page of a thread (there's no early-exit when a user limit is
26
- // satisfied), so the bound is set to "effectively unbounded for practical
27
- // workloads". The real guard is MAX_DELETE_BATCH_SIZE total items held in memory.
28
- const MAX_DELETE_PAGES = 10_000;
29
- do {
30
- iterationCount++;
31
- if (iterationCount > MAX_DELETE_PAGES) {
32
- throw new Error(`deleteThread scanned more than ${MAX_DELETE_PAGES} DynamoDB pages without completing. ` +
33
- `The thread has an extreme number of checkpoints — investigate before retrying.`);
34
- }
35
- const result = await (0, shared_1.withDynamoDBRetry)(async () => {
36
- return await params.client.query({
37
- TableName: params.checkpointsTableName,
38
- KeyConditionExpression: 'thread_id = :thread_id',
39
- ExpressionAttributeValues: {
40
- ':thread_id': params.threadId,
41
- },
42
- ExclusiveStartKey: lastEvaluatedKey,
43
- });
44
- }, { signal: params.signal });
45
- if (result.Items && result.Items.length > 0) {
46
- allItems.push(...result.Items);
47
- // Safety check: prevent deleting too many items at once
48
- if (allItems.length > utils_1.CheckpointerValidationConstants.MAX_DELETE_BATCH_SIZE) {
49
- throw new Error(`Thread has too many items (>${utils_1.CheckpointerValidationConstants.MAX_DELETE_BATCH_SIZE}). Delete operation aborted for safety.`);
50
- }
51
- }
52
- lastEvaluatedKey = result.LastEvaluatedKey;
53
- } while (lastEvaluatedKey);
54
- if (allItems.length === 0) {
55
- return; // Nothing to delete
56
- }
57
- // Separate metadata items from payload items
58
- const metadataItems = [];
59
- for (const item of allItems) {
60
- // Skip items without checkpoint_id or those with PAYLOAD# prefix
61
- const ckptId = item.checkpoint_id;
62
- if (typeof ckptId === 'string' && !ckptId.startsWith(types_1.PAYLOAD_SK_PREFIX)) {
63
- metadataItems.push(item);
64
- }
65
- }
66
- // Collect S3 keys from metadata items only (payload items don't carry S3 refs)
67
- const s3KeysToDelete = [];
68
- if (params.s3Offloader) {
69
- for (const item of metadataItems) {
70
- if (item.s3_checkpoint_key) {
71
- s3KeysToDelete.push(item.s3_checkpoint_key);
72
- }
73
- if (item.s3_metadata_key) {
74
- s3KeysToDelete.push(item.s3_metadata_key);
75
- }
76
- }
77
- }
78
- // Delete ALL items (metadata + payload) using their actual PK+SK
79
- const checkpointDeleteRequests = allItems.map((item) => ({
80
- DeleteRequest: {
81
- Key: {
82
- thread_id: item.thread_id,
83
- checkpoint_id: item.checkpoint_id,
84
- },
85
- },
86
- }));
87
- await (0, shared_1.batchWriteAllWithRetry)(params.client, params.checkpointsTableName, checkpointDeleteRequests, { signal: params.signal });
88
- // Fetch writes for metadata items only (payload items don't have associated writes)
89
- const allWriteDeleteRequests = [];
90
- const QUERY_CONCURRENCY = 10;
91
- for (let i = 0; i < metadataItems.length; i += QUERY_CONCURRENCY) {
92
- const checkpointBatch = metadataItems.slice(i, i + QUERY_CONCURRENCY);
93
- const writesResults = await Promise.all(checkpointBatch.map((checkpoint) => queryAllWritesForCheckpoint(params.client, params.writesTableName, checkpoint)));
94
- for (const writeItems of writesResults) {
95
- if (writeItems.length > 0) {
96
- const deleteRequests = writeItems.map((item) => ({
97
- DeleteRequest: {
98
- Key: {
99
- thread_id_checkpoint_id_checkpoint_ns: item.thread_id_checkpoint_id_checkpoint_ns,
100
- task_id_idx: item.task_id_idx,
101
- },
102
- },
103
- }));
104
- allWriteDeleteRequests.push(...deleteRequests);
105
- // Collect S3 keys from write items
106
- if (params.s3Offloader) {
107
- for (const item of writeItems) {
108
- if (item.s3_value_key) {
109
- s3KeysToDelete.push(item.s3_value_key);
110
- }
111
- }
112
- }
113
- }
114
- }
3
+ exports.deleteThread = deleteThread;
4
+ const descriptor_keys_1 = require("../../shared/codec/descriptor-keys");
5
+ const orphans_1 = require("../../shared/codec/s3/orphans");
6
+ const constants_1 = require("../../shared/constants");
7
+ const batch_write_1 = require("../../shared/dynamodb/batch-write");
8
+ const paginate_1 = require("../../shared/dynamodb/paginate");
9
+ const primitives_1 = require("../../shared/validation/primitives");
10
+ const keys_1 = require("../internal/keys");
11
+ const query_1 = require("../internal/query");
12
+ /** Append an item's delete key and any offloaded payload descriptors to the buffer. */
13
+ function bufferItem(buffer, item) {
14
+ buffer.keys.push({ PK: item.PK, SK: item.SK });
15
+ for (const descriptor of [item.metadata, item.checkpoint, item.value]) {
16
+ if (descriptor)
17
+ buffer.descriptors.push(descriptor);
115
18
  }
116
- // Delete all writes using shared batch write utility
117
- await (0, shared_1.batchWriteAllWithRetry)(params.client, params.writesTableName, allWriteDeleteRequests, {
118
- signal: params.signal,
119
- });
120
- // Clean up S3 offloaded data
121
- if (params.s3Offloader && s3KeysToDelete.length > 0) {
122
- await params.s3Offloader.deleteBatch(s3KeysToDelete);
19
+ }
20
+ /** Delete the buffered keys and best-effort clean their S3 objects, then clear it. */
21
+ async function flushBuffer(context, buffer) {
22
+ if (buffer.keys.length === 0)
23
+ return;
24
+ await (0, batch_write_1.batchWriteAll)(context.client, context.tableName, buffer.keys.map((Key) => ({ DeleteRequest: { Key } })));
25
+ if (context.offloader) {
26
+ await (0, orphans_1.cleanUpS3Orphans)(context.offloader, (0, descriptor_keys_1.collectS3Keys)(buffer.descriptors), 'deleteThread', context.logger);
123
27
  }
124
- };
125
- exports.deleteThreadAction = deleteThreadAction;
28
+ buffer.keys = [];
29
+ buffer.descriptors = [];
30
+ }
126
31
  /**
127
- * Fetch all writes for a single checkpoint, paginating through results.
128
- * DynamoDB Query returns at most 1 MB per call — this loop ensures all writes are collected.
129
- *
130
- * @param client - DynamoDB Document client
131
- * @param tableName - Writes table name
132
- * @param checkpoint - Checkpoint metadata item
133
- * @returns All write items for this checkpoint
32
+ * Delete every checkpoint, payload, and write for a thread (all share the
33
+ * thread's partition), best-effort deleting any offloaded S3 objects. Streams
34
+ * the partition with unbounded pagination and flushes deletes in batches, so a
35
+ * thread of any size is deleted to completion with bounded memory — never
36
+ * silently truncated at the in-memory page caps.
134
37
  */
135
- async function queryAllWritesForCheckpoint(client, tableName, checkpoint) {
136
- const allItems = [];
137
- let lastKey;
138
- do {
139
- const result = await (0, shared_1.withDynamoDBRetry)(async () => {
140
- return await client.query({
141
- TableName: tableName,
142
- KeyConditionExpression: 'thread_id_checkpoint_id_checkpoint_ns = :pk',
143
- ExpressionAttributeValues: {
144
- ':pk': writer_1.Writer.getPartitionKey({
145
- thread_id: checkpoint.thread_id,
146
- checkpoint_id: checkpoint.checkpoint_id,
147
- checkpoint_ns: checkpoint.checkpoint_ns,
148
- }),
149
- },
150
- ExclusiveStartKey: lastKey,
151
- });
152
- });
153
- if (result.Items) {
154
- allItems.push(...result.Items);
155
- }
156
- lastKey = result.LastEvaluatedKey;
157
- } while (lastKey);
158
- return allItems;
38
+ async function deleteThread(context, threadId) {
39
+ (0, primitives_1.validateNonEmptyString)(threadId, 'threadId');
40
+ const params = (0, query_1.partitionQuery)(context.tableName, (0, keys_1.partitionKey)(threadId));
41
+ const buffer = { keys: [], descriptors: [] };
42
+ const pages = (0, paginate_1.paginateQuery)({
43
+ client: context.client,
44
+ params,
45
+ maxItems: Number.POSITIVE_INFINITY,
46
+ maxIterations: Number.POSITIVE_INFINITY,
47
+ });
48
+ for await (const raw of pages) {
49
+ bufferItem(buffer, raw);
50
+ if (buffer.keys.length >= constants_1.BATCH_WRITE_MAX)
51
+ await flushBuffer(context, buffer);
52
+ }
53
+ await flushBuffer(context, buffer);
159
54
  }
160
55
  //# sourceMappingURL=delete-thread.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"delete-thread.js","sourceRoot":"","sources":["../../../src/checkpointer/actions/delete-thread.ts"],"names":[],"mappings":";;;AAEA,yCAAyE;AACzE,oCAKkB;AAClB,oCAA6E;AAC7E,qCAAkC;AAYlC;;;;;GAKG;AACI,MAAM,kBAAkB,GAAG,KAAK,EAAE,MAAgC,EAAiB,EAAE;IAC1F,qBAAqB;IACrB,IAAA,wBAAgB,EAAC,MAAM,CAAC,QAAQ,CAAC,CAAC;IAElC,uEAAuE;IACvE,4EAA4E;IAC5E,wEAAwE;IACxE,8CAA8C;IAC9C,MAAM,QAAQ,GAA6B,EAAE,CAAC;IAC9C,IAAI,gBAAqD,CAAC;IAC1D,IAAI,cAAc,GAAG,CAAC,CAAC;IACvB,gFAAgF;IAChF,+EAA+E;IAC/E,0EAA0E;IAC1E,kFAAkF;IAClF,MAAM,gBAAgB,GAAG,MAAM,CAAC;IAEhC,GAAG,CAAC;QACF,cAAc,EAAE,CAAC;QACjB,IAAI,cAAc,GAAG,gBAAgB,EAAE,CAAC;YACtC,MAAM,IAAI,KAAK,CACb,kCAAkC,gBAAgB,sCAAsC;gBACtF,gFAAgF,CACnF,CAAC;QACJ,CAAC;QAED,MAAM,MAAM,GAAG,MAAM,IAAA,0BAAiB,EACpC,KAAK,IAAI,EAAE;YACT,OAAO,MAAM,MAAM,CAAC,MAAM,CAAC,KAAK,CAAC;gBAC/B,SAAS,EAAE,MAAM,CAAC,oBAAoB;gBACtC,sBAAsB,EAAE,wBAAwB;gBAChD,yBAAyB,EAAE;oBACzB,YAAY,EAAE,MAAM,CAAC,QAAQ;iBAC9B;gBACD,iBAAiB,EAAE,gBAAgB;aACpC,CAAC,CAAC;QACL,CAAC,EACD,EAAE,MAAM,EAAE,MAAM,CAAC,MAAM,EAAE,CAC1B,CAAC;QAEF,IAAI,MAAM,CAAC,KAAK,IAAI,MAAM,CAAC,KAAK,CAAC,MAAM,GAAG,CAAC,EAAE,CAAC;YAC5C,QAAQ,CAAC,IAAI,CAAC,GAAI,MAAM,CAAC,KAAkC,CAAC,CAAC;YAE7D,wDAAwD;YACxD,IAAI,QAAQ,CAAC,MAAM,GAAG,uCAA+B,CAAC,qBAAqB,EAAE,CAAC;gBAC5E,MAAM,IAAI,KAAK,CACb,+BAA+B,uCAA+B,CAAC,qBAAqB,yCAAyC,CAC9H,CAAC;YACJ,CAAC;QACH,CAAC;QAED,gBAAgB,GAAG,MAAM,CAAC,gBAAgB,CAAC;IAC7C,CAAC,QAAQ,gBAAgB,EAAE;IAE3B,IAAI,QAAQ,CAAC,MAAM,KAAK,CAAC,EAAE,CAAC;QAC1B,OAAO,CAAC,oBAAoB;IAC9B,CAAC;IAED,6CAA6C;IAC7C,MAAM,aAAa,GAAqB,EAAE,CAAC;IAC3C,KAAK,MAAM,IAAI,IAAI,QAAQ,EAAE,CAAC;QAC5B,iEAAiE;QACjE,MAAM,MAAM,GAAG,IAAI,CAAC,aAAa,CAAC;QAClC,IAAI,OAAO,MAAM,KAAK,QAAQ,IAAI,CAAC,MAAM,CAAC,UAAU,CAAC,yBAAiB,CAAC,EAAE,CAAC;YACxE,aAAa,CAAC,IAAI,CAAC,IAAiC,CAAC,CAAC;QACxD,CAAC;IACH,CAAC;IAED,+EAA+E;IAC/E,MAAM,cAAc,GAAa,EAAE,CAAC;IACpC,IAAI,MAAM,CAAC,WAAW,EAAE,CAAC;QACvB,KAAK,MAAM,IAAI,IAAI,aAAa,EAAE,CAAC;YACjC,IAAI,IAAI,CAAC,iBAAiB,EAAE,CAAC;gBAC3B,cAAc,CAAC,IAAI,CAAC,IAAI,CAAC,iBAAiB,CAAC,CAAC;YAC9C,CAAC;YACD,IAAI,IAAI,CAAC,eAAe,EAAE,CAAC;gBACzB,cAAc,CAAC,IAAI,CAAC,IAAI,CAAC,eAAe,CAAC,CAAC;YAC5C,CAAC;QACH,CAAC;IACH,CAAC;IAED,iEAAiE;IACjE,MAAM,wBAAwB,GAAG,QAAQ,CAAC,GAAG,CAAC,CAAC,IAAI,EAAE,EAAE,CAAC,CAAC;QACvD,aAAa,EAAE;YACb,GAAG,EAAE;gBACH,SAAS,EAAE,IAAI,CAAC,SAAS;gBACzB,aAAa,EAAE,IAAI,CAAC,aAAa;aAClC;SACF;KACF,CAAC,CAAC,CAAC;IAEJ,MAAM,IAAA,+BAAsB,EAC1B,MAAM,CAAC,MAAM,EACb,MAAM,CAAC,oBAAoB,EAC3B,wBAAwB,EACxB,EAAE,MAAM,EAAE,MAAM,CAAC,MAAM,EAAE,CAC1B,CAAC;IAEF,oFAAoF;IACpF,MAAM,sBAAsB,GAOvB,EAAE,CAAC;IAER,MAAM,iBAAiB,GAAG,EAAE,CAAC;IAC7B,KAAK,IAAI,CAAC,GAAG,CAAC,EAAE,CAAC,GAAG,aAAa,CAAC,MAAM,EAAE,CAAC,IAAI,iBAAiB,EAAE,CAAC;QACjE,MAAM,eAAe,GAAG,aAAa,CAAC,KAAK,CAAC,CAAC,EAAE,CAAC,GAAG,iBAAiB,CAAC,CAAC;QACtE,MAAM,aAAa,GAAG,MAAM,OAAO,CAAC,GAAG,CACrC,eAAe,CAAC,GAAG,CAAC,CAAC,UAAU,EAAE,EAAE,CACjC,2BAA2B,CAAC,MAAM,CAAC,MAAM,EAAE,MAAM,CAAC,eAAe,EAAE,UAAU,CAAC,CAC/E,CACF,CAAC;QAEF,KAAK,MAAM,UAAU,IAAI,aAAa,EAAE,CAAC;YACvC,IAAI,UAAU,CAAC,MAAM,GAAG,CAAC,EAAE,CAAC;gBAC1B,MAAM,cAAc,GAAG,UAAU,CAAC,GAAG,CAAC,CAAC,IAAI,EAAE,EAAE,CAAC,CAAC;oBAC/C,aAAa,EAAE;wBACb,GAAG,EAAE;4BACH,qCAAqC,EAAE,IAAI,CAAC,qCAAqC;4BACjF,WAAW,EAAE,IAAI,CAAC,WAAW;yBAC9B;qBACF;iBACF,CAAC,CAAC,CAAC;gBACJ,sBAAsB,CAAC,IAAI,CAAC,GAAG,cAAc,CAAC,CAAC;gBAE/C,mCAAmC;gBACnC,IAAI,MAAM,CAAC,WAAW,EAAE,CAAC;oBACvB,KAAK,MAAM,IAAI,IAAI,UAAU,EAAE,CAAC;wBAC9B,IAAI,IAAI,CAAC,YAAY,EAAE,CAAC;4BACtB,cAAc,CAAC,IAAI,CAAC,IAAI,CAAC,YAAY,CAAC,CAAC;wBACzC,CAAC;oBACH,CAAC;gBACH,CAAC;YACH,CAAC;QACH,CAAC;IACH,CAAC;IAED,qDAAqD;IACrD,MAAM,IAAA,+BAAsB,EAAC,MAAM,CAAC,MAAM,EAAE,MAAM,CAAC,eAAe,EAAE,sBAAsB,EAAE;QAC1F,MAAM,EAAE,MAAM,CAAC,MAAM;KACtB,CAAC,CAAC;IAEH,6BAA6B;IAC7B,IAAI,MAAM,CAAC,WAAW,IAAI,cAAc,CAAC,MAAM,GAAG,CAAC,EAAE,CAAC;QACpD,MAAM,MAAM,CAAC,WAAW,CAAC,WAAW,CAAC,cAAc,CAAC,CAAC;IACvD,CAAC;AACH,CAAC,CAAC;AAtJW,QAAA,kBAAkB,sBAsJ7B;AAEF;;;;;;;;GAQG;AACH,KAAK,UAAU,2BAA2B,CACxC,MAAwB,EACxB,SAAiB,EACjB,UAA0B;IAE1B,MAAM,QAAQ,GAAwB,EAAE,CAAC;IACzC,IAAI,OAA4C,CAAC;IAEjD,GAAG,CAAC;QACF,MAAM,MAAM,GAAG,MAAM,IAAA,0BAAiB,EAAC,KAAK,IAAI,EAAE;YAChD,OAAO,MAAM,MAAM,CAAC,KAAK,CAAC;gBACxB,SAAS,EAAE,SAAS;gBACpB,sBAAsB,EAAE,6CAA6C;gBACrE,yBAAyB,EAAE;oBACzB,KAAK,EAAE,eAAM,CAAC,eAAe,CAAC;wBAC5B,SAAS,EAAE,UAAU,CAAC,SAAS;wBAC/B,aAAa,EAAE,UAAU,CAAC,aAAa;wBACvC,aAAa,EAAE,UAAU,CAAC,aAAa;qBACxC,CAAC;iBACH;gBACD,iBAAiB,EAAE,OAAO;aAC3B,CAAC,CAAC;QACL,CAAC,CAAC,CAAC;QAEH,IAAI,MAAM,CAAC,KAAK,EAAE,CAAC;YACjB,QAAQ,CAAC,IAAI,CAAC,GAAI,MAAM,CAAC,KAA6B,CAAC,CAAC;QAC1D,CAAC;QACD,OAAO,GAAG,MAAM,CAAC,gBAAgB,CAAC;IACpC,CAAC,QAAQ,OAAO,EAAE;IAElB,OAAO,QAAQ,CAAC;AAClB,CAAC"}
1
+ {"version":3,"file":"delete-thread.js","sourceRoot":"","sources":["../../../src/checkpointer/actions/delete-thread.ts"],"names":[],"mappings":";;AA4DA,oCAeC;AA1ED,wEAAmE;AACnE,2DAAiE;AACjE,sDAAyD;AACzD,mEAAkE;AAClE,6DAA+D;AAC/D,mEAA4E;AAC5E,2CAAgD;AAChD,6CAAmD;AAiBnD,uFAAuF;AACvF,SAAS,UAAU,CAAC,MAAoB,EAAE,IAAmB;IAC3D,MAAM,CAAC,IAAI,CAAC,IAAI,CAAC,EAAE,EAAE,EAAE,IAAI,CAAC,EAAE,EAAE,EAAE,EAAE,IAAI,CAAC,EAAE,EAAE,CAAC,CAAC;IAC/C,KAAK,MAAM,UAAU,IAAI,CAAC,IAAI,CAAC,QAAQ,EAAE,IAAI,CAAC,UAAU,EAAE,IAAI,CAAC,KAAK,CAAC,EAAE,CAAC;QACtE,IAAI,UAAU;YAAE,MAAM,CAAC,WAAW,CAAC,IAAI,CAAC,UAAU,CAAC,CAAC;IACtD,CAAC;AACH,CAAC;AAED,sFAAsF;AACtF,KAAK,UAAU,WAAW,CAAC,OAA4B,EAAE,MAAoB;IAC3E,IAAI,MAAM,CAAC,IAAI,CAAC,MAAM,KAAK,CAAC;QAAE,OAAO;IACrC,MAAM,IAAA,2BAAa,EACjB,OAAO,CAAC,MAAM,EACd,OAAO,CAAC,SAAS,EACjB,MAAM,CAAC,IAAI,CAAC,GAAG,CAAC,CAAC,GAAG,EAAE,EAAE,CAAC,CAAC,EAAE,aAAa,EAAE,EAAE,GAAG,EAAE,EAAE,CAAC,CAAC,CACvD,CAAC;IACF,IAAI,OAAO,CAAC,SAAS,EAAE,CAAC;QACtB,MAAM,IAAA,0BAAgB,EACpB,OAAO,CAAC,SAAS,EACjB,IAAA,+BAAa,EAAC,MAAM,CAAC,WAAW,CAAC,EACjC,cAAc,EACd,OAAO,CAAC,MAAM,CACf,CAAC;IACJ,CAAC;IACD,MAAM,CAAC,IAAI,GAAG,EAAE,CAAC;IACjB,MAAM,CAAC,WAAW,GAAG,EAAE,CAAC;AAC1B,CAAC;AAED;;;;;;GAMG;AACI,KAAK,UAAU,YAAY,CAAC,OAA4B,EAAE,QAAgB;IAC/E,IAAA,mCAAsB,EAAC,QAAQ,EAAE,UAAU,CAAC,CAAC;IAC7C,MAAM,MAAM,GAAG,IAAA,sBAAc,EAAC,OAAO,CAAC,SAAS,EAAE,IAAA,mBAAY,EAAC,QAAQ,CAAC,CAAC,CAAC;IACzE,MAAM,MAAM,GAAiB,EAAE,IAAI,EAAE,EAAE,EAAE,WAAW,EAAE,EAAE,EAAE,CAAC;IAC3D,MAAM,KAAK,GAAG,IAAA,wBAAa,EAAC;QAC1B,MAAM,EAAE,OAAO,CAAC,MAAM;QACtB,MAAM;QACN,QAAQ,EAAE,MAAM,CAAC,iBAAiB;QAClC,aAAa,EAAE,MAAM,CAAC,iBAAiB;KACxC,CAAC,CAAC;IACH,IAAI,KAAK,EAAE,MAAM,GAAG,IAAI,KAAK,EAAE,CAAC;QAC9B,UAAU,CAAC,MAAM,EAAE,GAAoB,CAAC,CAAC;QACzC,IAAI,MAAM,CAAC,IAAI,CAAC,MAAM,IAAI,2BAAe;YAAE,MAAM,WAAW,CAAC,OAAO,EAAE,MAAM,CAAC,CAAC;IAChF,CAAC;IACD,MAAM,WAAW,CAAC,OAAO,EAAE,MAAM,CAAC,CAAC;AACrC,CAAC"}
@@ -1,18 +1,10 @@
1
+ import type { RunnableConfig } from '@langchain/core/runnables';
1
2
  import type { CheckpointTuple } from '@langchain/langgraph-checkpoint';
2
- import { type GetTupleActionParams } from '../types';
3
+ import type { CheckpointerContext } from '../internal/setup';
3
4
  /**
4
- * Get a checkpoint tuple from DynamoDB
5
- *
6
- * Fetches two items from the checkpoints table:
7
- * 1. Metadata item (SK = checkpoint_id) — contains metadata, S3 refs, type
8
- * 2. Payload item (SK = PAYLOAD#checkpoint_id) — contains the heavy checkpoint blob
9
- *
10
- * For backward compatibility, also handles legacy single-item format where the
11
- * checkpoint blob is stored inline on the metadata item.
12
- *
13
- * @param params - Parameters for the get tuple operation
14
- * @returns CheckpointTuple if found, undefined otherwise
15
- * @throws Error if operation fails
5
+ * Load a checkpoint tuple: the target checkpoint (by id, or the newest in the
6
+ * namespace), its metadata, its pending writes, and a parent config when the
7
+ * checkpoint has a parent. Returns undefined when no matching checkpoint exists.
16
8
  */
17
- export declare const getTupleAction: (params: GetTupleActionParams) => Promise<CheckpointTuple | undefined>;
9
+ export declare function getCheckpointTuple(context: CheckpointerContext, config: RunnableConfig): Promise<CheckpointTuple | undefined>;
18
10
  //# sourceMappingURL=get-tuple.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"get-tuple.d.ts","sourceRoot":"","sources":["../../../src/checkpointer/actions/get-tuple.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAA0B,eAAe,EAAE,MAAM,iCAAiC,CAAC;AAG/F,OAAO,EAIL,KAAK,oBAAoB,EAG1B,MAAM,UAAU,CAAC;AAKlB;;;;;;;;;;;;;GAaG;AACH,eAAO,MAAM,cAAc,GACzB,QAAQ,oBAAoB,KAC3B,OAAO,CAAC,eAAe,GAAG,SAAS,CAmLrC,CAAC"}
1
+ {"version":3,"file":"get-tuple.d.ts","sourceRoot":"","sources":["../../../src/checkpointer/actions/get-tuple.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,cAAc,EAAE,MAAM,2BAA2B,CAAC;AAChE,OAAO,KAAK,EAAE,eAAe,EAAE,MAAM,iCAAiC,CAAC;AAKvE,OAAO,KAAK,EAAE,mBAAmB,EAAE,MAAM,mBAAmB,CAAC;AAE7D;;;;GAIG;AACH,wBAAsB,kBAAkB,CACtC,OAAO,EAAE,mBAAmB,EAC5B,MAAM,EAAE,cAAc,GACrB,OAAO,CAAC,eAAe,GAAG,SAAS,CAAC,CAKtC"}
@@ -1,172 +1,19 @@
1
1
  "use strict";
2
2
  Object.defineProperty(exports, "__esModule", { value: true });
3
- exports.getTupleAction = void 0;
4
- const shared_1 = require("../../shared");
5
- const types_1 = require("../types");
6
- const utils_1 = require("../utils");
7
- const validate_configurable_1 = require("./validate-configurable");
8
- const writer_1 = require("./writer");
3
+ exports.getCheckpointTuple = getCheckpointTuple;
4
+ const assemble_1 = require("../internal/assemble");
5
+ const configurable_1 = require("../internal/configurable");
6
+ const fetch_1 = require("../internal/fetch");
9
7
  /**
10
- * Get a checkpoint tuple from DynamoDB
11
- *
12
- * Fetches two items from the checkpoints table:
13
- * 1. Metadata item (SK = checkpoint_id) — contains metadata, S3 refs, type
14
- * 2. Payload item (SK = PAYLOAD#checkpoint_id) — contains the heavy checkpoint blob
15
- *
16
- * For backward compatibility, also handles legacy single-item format where the
17
- * checkpoint blob is stored inline on the metadata item.
18
- *
19
- * @param params - Parameters for the get tuple operation
20
- * @returns CheckpointTuple if found, undefined otherwise
21
- * @throws Error if operation fails
8
+ * Load a checkpoint tuple: the target checkpoint (by id, or the newest in the
9
+ * namespace), its metadata, its pending writes, and a parent config when the
10
+ * checkpoint has a parent. Returns undefined when no matching checkpoint exists.
22
11
  */
23
- const getTupleAction = async (params) => {
24
- const getItem = async (configurable) => {
25
- if (configurable.checkpoint_id != null) {
26
- const item = await (0, shared_1.withDynamoDBRetry)(async () => {
27
- return await params.client.get({
28
- TableName: params.checkpointsTableName,
29
- Key: {
30
- thread_id: configurable.thread_id,
31
- checkpoint_id: configurable.checkpoint_id,
32
- },
33
- ConsistentRead: true,
34
- });
35
- }, { signal: params.signal });
36
- return item.Item;
37
- }
38
- else {
39
- // Select metadata items only. We cannot bound by `checkpoint_id` in the
40
- // KeyCondition — any attempt to exclude payload items via `checkpoint_id
41
- // < 'PAYLOAD#'` silently drops metadata whose IDs sort lexicographically
42
- // above `PAYLOAD#` (e.g. anything starting with a lowercase letter,
43
- // which includes common IDs like `ckpt-1`, `checkpoint-2`, etc.), and
44
- // DynamoDB forbids primary-key attributes inside FilterExpression.
45
- // Instead, filter on the non-key `type` attribute that only metadata
46
- // items carry (`attribute_exists(#type)`). Payload items are never
47
- // returned, regardless of user ID character set.
48
- //
49
- // Because Limit applies *before* FilterExpression in DynamoDB, when
50
- // mixing metadata and payload pages we fetch a larger page and paginate
51
- // until a metadata item is found. For high-volume threads the ordering
52
- // still surfaces the newest metadata within the first 1-2 pages.
53
- const hasNsFilter = !!configurable.checkpoint_ns;
54
- const filterParts = ['attribute_exists(#type)'];
55
- if (hasNsFilter)
56
- filterParts.push('checkpoint_ns = :checkpoint_ns');
57
- const expressionValues = {
58
- ':thread_id': configurable.thread_id,
59
- ...(hasNsFilter && { ':checkpoint_ns': configurable.checkpoint_ns }),
60
- };
61
- let lastKey;
62
- do {
63
- const result = await (0, shared_1.withDynamoDBRetry)(async () => {
64
- return await params.client.query({
65
- TableName: params.checkpointsTableName,
66
- KeyConditionExpression: 'thread_id = :thread_id',
67
- ExpressionAttributeValues: expressionValues,
68
- ExpressionAttributeNames: { '#type': 'type' },
69
- FilterExpression: filterParts.join(' AND '),
70
- ConsistentRead: true,
71
- ScanIndexForward: false, // Descending — newest first
72
- ExclusiveStartKey: lastKey,
73
- });
74
- }, { signal: params.signal });
75
- const items = result.Items;
76
- if (items && items.length > 0) {
77
- return items[0];
78
- }
79
- lastKey = result.LastEvaluatedKey;
80
- } while (lastKey);
81
- return undefined;
82
- }
83
- };
84
- const item = await getItem((0, validate_configurable_1.validateConfigurable)(params.config.configurable));
85
- if (!item) {
12
+ async function getCheckpointTuple(context, config) {
13
+ const { threadId, checkpointNs, checkpointId } = (0, configurable_1.readConfigurable)(config);
14
+ const meta = await (0, fetch_1.fetchTargetMeta)(context, threadId, checkpointNs, checkpointId);
15
+ if (!meta)
86
16
  return undefined;
87
- }
88
- // Fetch the payload item (heavy checkpoint blob)
89
- // Optimization: if checkpoint data is stored in S3, skip the payload fetch —
90
- // deserializeCheckpointTuple will download the real data from S3.
91
- let checkpointData;
92
- if (item.s3_checkpoint_key) {
93
- // S3 offloaded — real data will be fetched by deserializeCheckpointTuple
94
- checkpointData = new Uint8Array(0);
95
- }
96
- else if (item.checkpoint && item.checkpoint.length > 0) {
97
- // Legacy single-item format — checkpoint blob is inline
98
- checkpointData = item.checkpoint;
99
- }
100
- else {
101
- // New split format — fetch payload item separately.
102
- // ConsistentRead must match the metadata read above: without it, a freshly-written
103
- // payload can be missing from an eventually-consistent read even though the metadata
104
- // item said it exists, producing spurious "payload not found" errors under write load.
105
- const payloadResult = await (0, shared_1.withDynamoDBRetry)(async () => {
106
- return await params.client.get({
107
- TableName: params.checkpointsTableName,
108
- Key: {
109
- thread_id: item.thread_id,
110
- checkpoint_id: `${types_1.PAYLOAD_SK_PREFIX}${item.checkpoint_id}`,
111
- },
112
- ConsistentRead: true,
113
- });
114
- }, { signal: params.signal });
115
- const payloadItem = payloadResult.Item;
116
- if (!payloadItem) {
117
- throw new Error(`Checkpoint payload item not found for thread_id=${item.thread_id}, checkpoint_id=${item.checkpoint_id}`);
118
- }
119
- checkpointData = payloadItem.checkpoint;
120
- }
121
- // Get pending writes for this checkpoint (with pagination for large result sets)
122
- const allWriteItems = [];
123
- let writesLastEvaluatedKey;
124
- do {
125
- // ConsistentRead is required here: putWrites races with getTuple under concurrent
126
- // workers, and an eventually-consistent Query can return a stale view that omits
127
- // writes that have already been acked.
128
- const writesResult = await (0, shared_1.withDynamoDBRetry)(async () => {
129
- return await params.client.query({
130
- TableName: params.writesTableName,
131
- KeyConditionExpression: 'thread_id_checkpoint_id_checkpoint_ns = :thread_id_checkpoint_id_checkpoint_ns',
132
- ExpressionAttributeValues: {
133
- ':thread_id_checkpoint_id_checkpoint_ns': writer_1.Writer.getPartitionKey(item),
134
- },
135
- ConsistentRead: true,
136
- ExclusiveStartKey: writesLastEvaluatedKey,
137
- });
138
- }, { signal: params.signal });
139
- if (writesResult.Items) {
140
- allWriteItems.push(...writesResult.Items);
141
- }
142
- writesLastEvaluatedKey = writesResult.LastEvaluatedKey;
143
- } while (writesLastEvaluatedKey);
144
- // Deserialize pending writes in parallel. Each write may involve an S3 download
145
- // plus decompress + serde — sequential awaits in a hot path were measurable on
146
- // checkpoints with many offloaded writes.
147
- const pendingWrites = await Promise.all(allWriteItems.map(async (writeItem) => {
148
- const write = writer_1.Writer.fromDynamoDBItem(writeItem);
149
- let rawValue = write.value;
150
- if (writeItem.s3_value_key) {
151
- if (!params.s3Offloader) {
152
- throw new Error(`Pending write references S3 key '${writeItem.s3_value_key}' but no S3 offloader is configured. ` +
153
- `Pass s3OffloadConfig when constructing DynamoDBSaver to read offloaded writes.`);
154
- }
155
- rawValue = await params.s3Offloader.download(writeItem.s3_value_key);
156
- }
157
- const writeValue = params.compressor
158
- ? await params.compressor.decompress(rawValue)
159
- : rawValue;
160
- const value = await params.serde.loadsTyped(write.type, writeValue);
161
- return [write.task_id, write.channel, value];
162
- }));
163
- // Deserialize the checkpoint tuple from metadata item + payload data
164
- const checkpointTuple = await (0, utils_1.deserializeCheckpointTuple)(item, checkpointData, params.serde, params.compressor, params.s3Offloader);
165
- // Add pending writes to the tuple
166
- return {
167
- ...checkpointTuple,
168
- pendingWrites,
169
- };
170
- };
171
- exports.getTupleAction = getTupleAction;
17
+ return (0, assemble_1.assembleTuple)(context, threadId, checkpointNs, meta);
18
+ }
172
19
  //# sourceMappingURL=get-tuple.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"get-tuple.js","sourceRoot":"","sources":["../../../src/checkpointer/actions/get-tuple.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"get-tuple.js","sourceRoot":"","sources":["../../../src/checkpointer/actions/get-tuple.ts"],"names":[],"mappings":";;AAaA,gDAQC;AAlBD,mDAAqD;AACrD,2DAA4D;AAC5D,6CAAoD;AAGpD;;;;GAIG;AACI,KAAK,UAAU,kBAAkB,CACtC,OAA4B,EAC5B,MAAsB;IAEtB,MAAM,EAAE,QAAQ,EAAE,YAAY,EAAE,YAAY,EAAE,GAAG,IAAA,+BAAgB,EAAC,MAAM,CAAC,CAAC;IAC1E,MAAM,IAAI,GAAG,MAAM,IAAA,uBAAe,EAAC,OAAO,EAAE,QAAQ,EAAE,YAAY,EAAE,YAAY,CAAC,CAAC;IAClF,IAAI,CAAC,IAAI;QAAE,OAAO,SAAS,CAAC;IAC5B,OAAO,IAAA,wBAAa,EAAC,OAAO,EAAE,QAAQ,EAAE,YAAY,EAAE,IAAI,CAAC,CAAC;AAC9D,CAAC"}
@@ -0,0 +1,10 @@
1
+ import type { RunnableConfig } from '@langchain/core/runnables';
2
+ import type { CheckpointListOptions, CheckpointTuple } from '@langchain/langgraph-checkpoint';
3
+ import type { CheckpointerContext } from '../internal/setup';
4
+ /**
5
+ * Yield checkpoint tuples for a thread/namespace, newest first. Honors
6
+ * `options.before` (only checkpoints older than the given id), `options.filter`
7
+ * (metadata equality), and `options.limit` (max tuples yielded).
8
+ */
9
+ export declare function listCheckpoints(context: CheckpointerContext, config: RunnableConfig, options?: CheckpointListOptions): AsyncGenerator<CheckpointTuple>;
10
+ //# sourceMappingURL=list.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"list.d.ts","sourceRoot":"","sources":["../../../src/checkpointer/actions/list.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,cAAc,EAAE,MAAM,2BAA2B,CAAC;AAChE,OAAO,KAAK,EAAE,qBAAqB,EAAE,eAAe,EAAE,MAAM,iCAAiC,CAAC;AAS9F,OAAO,KAAK,EAAE,mBAAmB,EAAE,MAAM,mBAAmB,CAAC;AA2B7D;;;;GAIG;AACH,wBAAuB,eAAe,CACpC,OAAO,EAAE,mBAAmB,EAC5B,MAAM,EAAE,cAAc,EACtB,OAAO,CAAC,EAAE,qBAAqB,GAC9B,cAAc,CAAC,eAAe,CAAC,CAoBjC"}
@@ -0,0 +1,51 @@
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", { value: true });
3
+ exports.listCheckpoints = listCheckpoints;
4
+ const paginate_1 = require("../../shared/dynamodb/paginate");
5
+ const assemble_1 = require("../internal/assemble");
6
+ const configurable_1 = require("../internal/configurable");
7
+ const filter_match_1 = require("../internal/filter-match");
8
+ const item_reader_1 = require("../internal/item-reader");
9
+ const keys_1 = require("../internal/keys");
10
+ const query_1 = require("../internal/query");
11
+ /** Read list options into a flat, typed shape. */
12
+ function readListOptions(options) {
13
+ return {
14
+ before: options?.before?.configurable?.checkpoint_id,
15
+ filter: options?.filter,
16
+ limit: options?.limit,
17
+ };
18
+ }
19
+ /** True when `meta` passes the (optional) metadata-equality filter. */
20
+ async function passesMetadataFilter(context, meta, filter) {
21
+ if (!filter)
22
+ return true;
23
+ const metadata = (await (0, item_reader_1.readMetadata)(context, meta));
24
+ return (0, filter_match_1.matchesFilter)(metadata, filter);
25
+ }
26
+ /**
27
+ * Yield checkpoint tuples for a thread/namespace, newest first. Honors
28
+ * `options.before` (only checkpoints older than the given id), `options.filter`
29
+ * (metadata equality), and `options.limit` (max tuples yielded).
30
+ */
31
+ async function* listCheckpoints(context, config, options) {
32
+ const { threadId, checkpointNs } = (0, configurable_1.readConfigurable)(config);
33
+ const { before, filter, limit } = readListOptions(options);
34
+ const params = (0, query_1.beginsWithQuery)(context.tableName, (0, keys_1.partitionKey)(threadId), (0, keys_1.metaSortKeyPrefix)(checkpointNs));
35
+ let yielded = 0;
36
+ for await (const raw of (0, paginate_1.paginateQuery)({ client: context.client, params })) {
37
+ if (limit !== undefined && yielded >= limit)
38
+ return;
39
+ const meta = raw;
40
+ if (before !== undefined && meta.checkpointId >= before)
41
+ continue;
42
+ if (!(await passesMetadataFilter(context, meta, filter)))
43
+ continue;
44
+ const tuple = await (0, assemble_1.assembleTuple)(context, threadId, checkpointNs, meta);
45
+ if (tuple) {
46
+ yield tuple;
47
+ yielded += 1;
48
+ }
49
+ }
50
+ }
51
+ //# sourceMappingURL=list.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"list.js","sourceRoot":"","sources":["../../../src/checkpointer/actions/list.ts"],"names":[],"mappings":";;AA0CA,0CAwBC;AA/DD,6DAA+D;AAC/D,mDAAqD;AACrD,2DAA4D;AAC5D,2DAA2E;AAC3E,yDAAuD;AACvD,2CAAmE;AACnE,6CAAoD;AAIpD,kDAAkD;AAClD,SAAS,eAAe,CAAC,OAA+B;IAKtD,OAAO;QACL,MAAM,EAAE,OAAO,EAAE,MAAM,EAAE,YAAY,EAAE,aAAmC;QAC1E,MAAM,EAAE,OAAO,EAAE,MAAiD;QAClE,KAAK,EAAE,OAAO,EAAE,KAAK;KACtB,CAAC;AACJ,CAAC;AAED,uEAAuE;AACvE,KAAK,UAAU,oBAAoB,CACjC,OAA4B,EAC5B,IAAwB,EACxB,MAA+C;IAE/C,IAAI,CAAC,MAAM;QAAE,OAAO,IAAI,CAAC;IACzB,MAAM,QAAQ,GAAG,CAAC,MAAM,IAAA,0BAAY,EAAC,OAAO,EAAE,IAAI,CAAC,CAAgC,CAAC;IACpF,OAAO,IAAA,4BAAa,EAAC,QAAQ,EAAE,MAAM,CAAC,CAAC;AACzC,CAAC;AAED;;;;GAIG;AACI,KAAK,SAAS,CAAC,CAAC,eAAe,CACpC,OAA4B,EAC5B,MAAsB,EACtB,OAA+B;IAE/B,MAAM,EAAE,QAAQ,EAAE,YAAY,EAAE,GAAG,IAAA,+BAAgB,EAAC,MAAM,CAAC,CAAC;IAC5D,MAAM,EAAE,MAAM,EAAE,MAAM,EAAE,KAAK,EAAE,GAAG,eAAe,CAAC,OAAO,CAAC,CAAC;IAC3D,MAAM,MAAM,GAAG,IAAA,uBAAe,EAC5B,OAAO,CAAC,SAAS,EACjB,IAAA,mBAAY,EAAC,QAAQ,CAAC,EACtB,IAAA,wBAAiB,EAAC,YAAY,CAAC,CAChC,CAAC;IACF,IAAI,OAAO,GAAG,CAAC,CAAC;IAChB,IAAI,KAAK,EAAE,MAAM,GAAG,IAAI,IAAA,wBAAa,EAAC,EAAE,MAAM,EAAE,OAAO,CAAC,MAAM,EAAE,MAAM,EAAE,CAAC,EAAE,CAAC;QAC1E,IAAI,KAAK,KAAK,SAAS,IAAI,OAAO,IAAI,KAAK;YAAE,OAAO;QACpD,MAAM,IAAI,GAAG,GAAyB,CAAC;QACvC,IAAI,MAAM,KAAK,SAAS,IAAI,IAAI,CAAC,YAAY,IAAI,MAAM;YAAE,SAAS;QAClE,IAAI,CAAC,CAAC,MAAM,oBAAoB,CAAC,OAAO,EAAE,IAAI,EAAE,MAAM,CAAC,CAAC;YAAE,SAAS;QACnE,MAAM,KAAK,GAAG,MAAM,IAAA,wBAAa,EAAC,OAAO,EAAE,QAAQ,EAAE,YAAY,EAAE,IAAI,CAAC,CAAC;QACzE,IAAI,KAAK,EAAE,CAAC;YACV,MAAM,KAAK,CAAC;YACZ,OAAO,IAAI,CAAC,CAAC;QACf,CAAC;IACH,CAAC;AACH,CAAC"}
@@ -1,9 +1,9 @@
1
- import { PutWritesActionParams } from '../types';
1
+ import type { RunnableConfig } from '@langchain/core/runnables';
2
+ import type { PendingWrite } from '@langchain/langgraph-checkpoint';
3
+ import type { CheckpointerContext } from '../internal/setup';
2
4
  /**
3
- * Save pending writes to DynamoDB
4
- *
5
- * @param params - Parameters for the put writes operation
6
- * @throws Error if validation fails or operation fails
5
+ * Persist a task's intermediate writes for a checkpoint as one item per write.
6
+ * Requires `checkpoint_id` in the config — writes always attach to a checkpoint.
7
7
  */
8
- export declare const putWritesAction: (params: PutWritesActionParams) => Promise<void>;
8
+ export declare function putWrites(context: CheckpointerContext, config: RunnableConfig, writes: PendingWrite[], taskId: string): Promise<void>;
9
9
  //# sourceMappingURL=put-writes.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"put-writes.d.ts","sourceRoot":"","sources":["../../../src/checkpointer/actions/put-writes.ts"],"names":[],"mappings":"AAQA,OAAO,EAAE,qBAAqB,EAAE,MAAM,UAAU,CAAC;AAKjD;;;;;GAKG;AACH,eAAO,MAAM,eAAe,GAAU,QAAQ,qBAAqB,KAAG,OAAO,CAAC,IAAI,CAqFjF,CAAC"}
1
+ {"version":3,"file":"put-writes.d.ts","sourceRoot":"","sources":["../../../src/checkpointer/actions/put-writes.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,cAAc,EAAE,MAAM,2BAA2B,CAAC;AAChE,OAAO,KAAK,EAAE,YAAY,EAAE,MAAM,iCAAiC,CAAC;AASpE,OAAO,KAAK,EAAE,mBAAmB,EAAE,MAAM,mBAAmB,CAAC;AAG7D;;;GAGG;AACH,wBAAsB,SAAS,CAC7B,OAAO,EAAE,mBAAmB,EAC5B,MAAM,EAAE,cAAc,EACtB,MAAM,EAAE,YAAY,EAAE,EACtB,MAAM,EAAE,MAAM,GACb,OAAO,CAAC,IAAI,CAAC,CAkCf"}