@farukada/aws-langgraph-dynamodb-ts 0.2.2 → 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 +21 -22
  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,109 +0,0 @@
1
- "use strict";
2
- Object.defineProperty(exports, "__esModule", { value: true });
3
- exports.Writer = void 0;
4
- const utils_1 = require("../utils");
5
- /**
6
- * Writer class for managing pending writes in DynamoDB
7
- * Handles serialization and composite key management
8
- */
9
- class Writer {
10
- /** Unique identifier for the conversation thread */
11
- thread_id;
12
- /** Namespace for checkpoint isolation (default: '') */
13
- checkpoint_ns;
14
- /** Unique identifier for the checkpoint */
15
- checkpoint_id;
16
- /** Unique identifier for the task that created this write */
17
- task_id;
18
- /** Index of the write within the task. Negative values correspond to
19
- * `WRITES_IDX_MAP` special-channel slots (__error__=-1, __scheduled__=-2,
20
- * __interrupt__=-3, __resume__=-4); non-negative values are positional. */
21
- idx;
22
- /** Channel name for the write */
23
- channel;
24
- /** Type identifier for deserialization */
25
- type;
26
- /** Serialized value as binary data */
27
- value;
28
- constructor({ thread_id, checkpoint_ns, checkpoint_id, task_id, idx, channel, type, value, }) {
29
- // Validate all inputs
30
- (0, utils_1.validateThreadId)(thread_id);
31
- (0, utils_1.validateCheckpointNs)(checkpoint_ns);
32
- (0, utils_1.validateCheckpointId)(checkpoint_id, true);
33
- (0, utils_1.validateTaskId)(task_id);
34
- (0, utils_1.validateChannel)(channel);
35
- if (!Number.isInteger(idx)) {
36
- throw new Error('idx must be an integer');
37
- }
38
- this.thread_id = thread_id;
39
- this.checkpoint_ns = checkpoint_ns;
40
- this.checkpoint_id = checkpoint_id;
41
- this.task_id = task_id;
42
- this.idx = idx;
43
- this.channel = channel;
44
- this.type = type;
45
- this.value = value;
46
- }
47
- toDynamoDBItem() {
48
- return {
49
- thread_id_checkpoint_id_checkpoint_ns: Writer.getPartitionKey({
50
- thread_id: this.thread_id,
51
- checkpoint_id: this.checkpoint_id,
52
- checkpoint_ns: this.checkpoint_ns,
53
- }),
54
- task_id_idx: [this.task_id, this.idx].join(Writer.SEPARATOR),
55
- channel: this.channel,
56
- type: this.type,
57
- value: this.value,
58
- };
59
- }
60
- /**
61
- * Deserialize a Writer instance from a DynamoDB item
62
- *
63
- * @param item - DynamoDB write item
64
- * @returns Writer instance
65
- * @throws Error if parsing fails or data is invalid
66
- */
67
- static fromDynamoDBItem({ thread_id_checkpoint_id_checkpoint_ns, task_id_idx, channel, type, value, }) {
68
- const parts = thread_id_checkpoint_id_checkpoint_ns.split(this.SEPARATOR);
69
- if (parts.length !== 3) {
70
- throw new Error(`Invalid partition key format: expected 3 parts, got ${parts.length}`);
71
- }
72
- const [thread_id, checkpoint_id, checkpoint_ns] = parts;
73
- const idxParts = task_id_idx.split(this.SEPARATOR);
74
- if (idxParts.length !== 2) {
75
- throw new Error(`Invalid sort key format: expected 2 parts, got ${idxParts.length}`);
76
- }
77
- const [task_id, idxStr] = idxParts;
78
- const idx = parseInt(idxStr, 10);
79
- if (isNaN(idx)) {
80
- throw new Error(`Invalid idx value: ${idxStr}`);
81
- }
82
- return new Writer({
83
- thread_id,
84
- checkpoint_ns,
85
- checkpoint_id,
86
- task_id,
87
- idx,
88
- channel,
89
- type,
90
- value,
91
- });
92
- }
93
- /**
94
- * Generate a partition key for DynamoDB from thread, checkpoint, and namespace
95
- *
96
- * @param params - Thread ID, checkpoint ID, and namespace
97
- * @returns Composite partition key
98
- */
99
- static getPartitionKey({ thread_id, checkpoint_id, checkpoint_ns, }) {
100
- return [thread_id, checkpoint_id, checkpoint_ns].join(this.SEPARATOR);
101
- }
102
- /**
103
- * Separator used for composite keys.
104
- * Note: input validation ensures this separator cannot appear in any component.
105
- */
106
- static SEPARATOR = ':::';
107
- }
108
- exports.Writer = Writer;
109
- //# sourceMappingURL=writer.js.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"writer.js","sourceRoot":"","sources":["../../../src/checkpointer/actions/writer.ts"],"names":[],"mappings":"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"}
@@ -1,118 +0,0 @@
1
- /**
2
- * DynamoDB-based checkpoint saver for LangGraph
3
- * Provides persistent storage for checkpoints and pending writes
4
- */
5
- import type { RunnableConfig } from '@langchain/core/runnables';
6
- import { BaseCheckpointSaver, type Checkpoint, type CheckpointTuple, type CheckpointMetadata, type CheckpointListOptions, type PendingWrite, type ChannelVersions } from '@langchain/langgraph-checkpoint';
7
- import type { DynamoDBSaverOptions } from './types';
8
- /**
9
- * DynamoDB-based checkpoint saver for LangGraph.
10
- * Provides persistent storage for checkpoints and pending writes.
11
- *
12
- * @remarks
13
- * Uses the base class default for `getNextVersion()` (monotonic integers).
14
- * Channel versioning is internal to LangGraph's execution engine and does not
15
- * affect DynamoDB key ordering, which relies on checkpoint IDs.
16
- */
17
- export declare class DynamoDBSaver extends BaseCheckpointSaver {
18
- private readonly ddbClient;
19
- private readonly client;
20
- private readonly checkpointsTableName;
21
- private readonly writesTableName;
22
- private readonly ttlDays?;
23
- private readonly ttlSeconds?;
24
- private readonly compressor?;
25
- private readonly s3Offloader?;
26
- private readonly ownsClient;
27
- /**
28
- * Create a new DynamoDB checkpoint saver
29
- *
30
- * @param options - Configuration options for the saver
31
- * @param options.checkpointsTableName - Name of the DynamoDB table for checkpoints
32
- * @param options.writesTableName - Name of the DynamoDB table for writes
33
- * @param options.ttlDays - Optional TTL in days for stored items
34
- * @param options.ttlSeconds - Optional TTL in seconds (overrides ttlDays if both set)
35
- * @param options.serde - Optional serializer protocol
36
- * @param options.clientConfig - Optional DynamoDB client configuration
37
- * @param options.client - Optional pre-built DynamoDBDocument client (takes precedence over clientConfig)
38
- * @param options.compression - Optional compression configuration
39
- * @param options.s3OffloadConfig - Optional S3 offloading configuration
40
- */
41
- constructor(options: DynamoDBSaverOptions);
42
- /**
43
- * Release underlying DynamoDB and S3 client resources.
44
- * Call this when the saver is no longer needed to prevent resource leaks.
45
- * Skips DynamoDB client cleanup if a shared client was injected via options.
46
- */
47
- destroy(): void;
48
- /**
49
- * Delete a thread and all its checkpoints and writes
50
- *
51
- * @param threadId - The thread ID to delete
52
- * @param options.signal - Optional AbortSignal for cancelling in-flight retries
53
- * @throws Error if validation fails or operation fails
54
- */
55
- deleteThread(threadId: string, options?: {
56
- signal?: AbortSignal;
57
- }): Promise<void>;
58
- /**
59
- * Get a checkpoint tuple from DynamoDB
60
- *
61
- * @param config - Runnable configuration containing thread_id and optional checkpoint_id.
62
- * `config.signal` is honored as an AbortSignal: in-flight retries short-circuit
63
- * and the returned promise rejects with the signal's abort reason.
64
- * @returns CheckpointTuple if found, undefined otherwise
65
- * @throws Error if validation fails or operation fails
66
- */
67
- getTuple(config: RunnableConfig): Promise<CheckpointTuple | undefined>;
68
- /**
69
- * Save a checkpoint to DynamoDB
70
- *
71
- * @param config - Runnable configuration. `config.signal` is honored as an
72
- * AbortSignal and short-circuits retry backoff.
73
- * @param checkpoint - Checkpoint to save
74
- * @param metadata - Checkpoint metadata
75
- * @param newVersions - Channel versions (not used in DynamoDB implementation)
76
- * @returns Updated RunnableConfig with checkpoint information
77
- * @throws Error if validation fails or operation fails
78
- */
79
- put(config: RunnableConfig, checkpoint: Checkpoint, metadata: CheckpointMetadata, newVersions: ChannelVersions): Promise<RunnableConfig>;
80
- /**
81
- * Save pending writes to DynamoDB
82
- *
83
- * @param config - Runnable configuration. `config.signal` is honored as an
84
- * AbortSignal and short-circuits retry backoff.
85
- * @param writes - Array of pending writes to save
86
- * @param taskId - Task ID for the writes
87
- * @throws Error if validation fails or operation fails
88
- */
89
- putWrites(config: RunnableConfig, writes: PendingWrite[], taskId: string): Promise<void>;
90
- /**
91
- * List checkpoints for a thread
92
- *
93
- * @param config - Runnable configuration containing thread_id
94
- * @param options - List options including limit, before checkpoint, and metadata filter
95
- * @yields CheckpointTuple objects in descending order
96
- * @throws Error if validation fails or operation fails
97
- */
98
- list(config: RunnableConfig, options: CheckpointListOptions | undefined): AsyncGenerator<CheckpointTuple>;
99
- /**
100
- * Fetch checkpoint payloads for a batch of metadata items.
101
- * Uses BatchGetItem to fetch all payloads in one round trip instead of N+1 queries.
102
- * Items with S3 keys or legacy inline data are resolved without a remote call.
103
- *
104
- * @param items - Checkpoint metadata items from a query result
105
- * @returns Map from checkpoint_id to raw checkpoint data
106
- */
107
- private fetchCheckpointPayloadsBatch;
108
- /**
109
- * Check if checkpoint metadata matches all entries in the filter.
110
- * Each filter key must exactly match the corresponding metadata value.
111
- *
112
- * @param metadata - Deserialized checkpoint metadata
113
- * @param filter - Key-value pairs to match against metadata
114
- * @returns true if all filter entries match
115
- */
116
- private matchesFilter;
117
- }
118
- //# sourceMappingURL=index.d.ts.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../src/checkpointer/index.ts"],"names":[],"mappings":"AAAA;;;GAGG;AAIH,OAAO,KAAK,EAAE,cAAc,EAAE,MAAM,2BAA2B,CAAC;AAChE,OAAO,EACL,mBAAmB,EACnB,KAAK,UAAU,EACf,KAAK,eAAe,EACpB,KAAK,kBAAkB,EACvB,KAAK,qBAAqB,EAC1B,KAAK,YAAY,EACjB,KAAK,eAAe,EACrB,MAAM,iCAAiC,CAAC;AAgBzC,OAAO,KAAK,EAAyC,oBAAoB,EAAE,MAAM,SAAS,CAAC;AAS3F;;;;;;;;GAQG;AACH,qBAAa,aAAc,SAAQ,mBAAmB;IACpD,OAAO,CAAC,QAAQ,CAAC,SAAS,CAA6B;IACvD,OAAO,CAAC,QAAQ,CAAC,MAAM,CAAmB;IAC1C,OAAO,CAAC,QAAQ,CAAC,oBAAoB,CAAS;IAC9C,OAAO,CAAC,QAAQ,CAAC,eAAe,CAAS;IACzC,OAAO,CAAC,QAAQ,CAAC,OAAO,CAAC,CAAS;IAClC,OAAO,CAAC,QAAQ,CAAC,UAAU,CAAC,CAAS;IACrC,OAAO,CAAC,QAAQ,CAAC,UAAU,CAAC,CAAa;IACzC,OAAO,CAAC,QAAQ,CAAC,WAAW,CAAC,CAAc;IAC3C,OAAO,CAAC,QAAQ,CAAC,UAAU,CAAU;IAErC;;;;;;;;;;;;;OAaG;gBACS,OAAO,EAAE,oBAAoB;IAgCzC;;;;OAIG;IACH,OAAO,IAAI,IAAI;IAOf;;;;;;OAMG;IACG,YAAY,CAAC,QAAQ,EAAE,MAAM,EAAE,OAAO,GAAE;QAAE,MAAM,CAAC,EAAE,WAAW,CAAA;KAAO,GAAG,OAAO,CAAC,IAAI,CAAC;IAW3F;;;;;;;;OAQG;IACG,QAAQ,CAAC,MAAM,EAAE,cAAc,GAAG,OAAO,CAAC,eAAe,GAAG,SAAS,CAAC;IAa5E;;;;;;;;;;OAUG;IACG,GAAG,CACP,MAAM,EAAE,cAAc,EACtB,UAAU,EAAE,UAAU,EACtB,QAAQ,EAAE,kBAAkB,EAE5B,WAAW,EAAE,eAAe,GAC3B,OAAO,CAAC,cAAc,CAAC;IAgB1B;;;;;;;;OAQG;IACG,SAAS,CAAC,MAAM,EAAE,cAAc,EAAE,MAAM,EAAE,YAAY,EAAE,EAAE,MAAM,EAAE,MAAM,GAAG,OAAO,CAAC,IAAI,CAAC;IAgB9F;;;;;;;OAOG;IACI,IAAI,CACT,MAAM,EAAE,cAAc,EACtB,OAAO,EAAE,qBAAqB,GAAG,SAAS,GACzC,cAAc,CAAC,eAAe,CAAC;IAiIlC;;;;;;;OAOG;YACW,4BAA4B;IAqG1C;;;;;;;OAOG;IACH,OAAO,CAAC,aAAa;CAStB"}
@@ -1,393 +0,0 @@
1
- "use strict";
2
- /**
3
- * DynamoDB-based checkpoint saver for LangGraph
4
- * Provides persistent storage for checkpoints and pending writes
5
- */
6
- Object.defineProperty(exports, "__esModule", { value: true });
7
- exports.DynamoDBSaver = void 0;
8
- const langgraph_checkpoint_1 = require("@langchain/langgraph-checkpoint");
9
- const shared_1 = require("../shared");
10
- const actions_1 = require("./actions");
11
- const types_1 = require("./types");
12
- const utils_1 = require("./utils");
13
- /**
14
- * DynamoDB-based checkpoint saver for LangGraph.
15
- * Provides persistent storage for checkpoints and pending writes.
16
- *
17
- * @remarks
18
- * Uses the base class default for `getNextVersion()` (monotonic integers).
19
- * Channel versioning is internal to LangGraph's execution engine and does not
20
- * affect DynamoDB key ordering, which relies on checkpoint IDs.
21
- */
22
- class DynamoDBSaver extends langgraph_checkpoint_1.BaseCheckpointSaver {
23
- ddbClient;
24
- client;
25
- checkpointsTableName;
26
- writesTableName;
27
- ttlDays;
28
- ttlSeconds;
29
- compressor;
30
- s3Offloader;
31
- ownsClient;
32
- /**
33
- * Create a new DynamoDB checkpoint saver
34
- *
35
- * @param options - Configuration options for the saver
36
- * @param options.checkpointsTableName - Name of the DynamoDB table for checkpoints
37
- * @param options.writesTableName - Name of the DynamoDB table for writes
38
- * @param options.ttlDays - Optional TTL in days for stored items
39
- * @param options.ttlSeconds - Optional TTL in seconds (overrides ttlDays if both set)
40
- * @param options.serde - Optional serializer protocol
41
- * @param options.clientConfig - Optional DynamoDB client configuration
42
- * @param options.client - Optional pre-built DynamoDBDocument client (takes precedence over clientConfig)
43
- * @param options.compression - Optional compression configuration
44
- * @param options.s3OffloadConfig - Optional S3 offloading configuration
45
- */
46
- constructor(options) {
47
- super(options.serde);
48
- this.checkpointsTableName = options.checkpointsTableName;
49
- this.writesTableName = options.writesTableName;
50
- this.ttlDays = options.ttlDays;
51
- this.ttlSeconds = options.ttlSeconds;
52
- ({
53
- ddbClient: this.ddbClient,
54
- client: this.client,
55
- ownsClient: this.ownsClient,
56
- } = (0, shared_1.resolveDynamoDBClient)(options));
57
- if (options.compression?.enabled) {
58
- this.compressor = new shared_1.Compressor(options.compression);
59
- }
60
- if (options.s3OffloadConfig) {
61
- this.s3Offloader = new shared_1.S3Offloader(options.s3OffloadConfig);
62
- }
63
- // Auto-configure S3 lifecycle rule when both TTL and S3 offloading are active
64
- if (this.s3Offloader && (this.ttlSeconds !== undefined || this.ttlDays !== undefined)) {
65
- const lifecycleDays = this.ttlSeconds !== undefined ? Math.ceil(this.ttlSeconds / 86400) : this.ttlDays;
66
- this.s3Offloader.ensureLifecycleRule(lifecycleDays).catch((err) => {
67
- const message = err && typeof err === 'object' && 'message' in err
68
- ? err.message
69
- : String(err);
70
- (0, shared_1.getLogger)().warn(`Failed to configure S3 lifecycle rule: ${message}`);
71
- });
72
- }
73
- }
74
- /**
75
- * Release underlying DynamoDB and S3 client resources.
76
- * Call this when the saver is no longer needed to prevent resource leaks.
77
- * Skips DynamoDB client cleanup if a shared client was injected via options.
78
- */
79
- destroy() {
80
- if (this.ownsClient && this.ddbClient) {
81
- this.ddbClient.destroy();
82
- }
83
- this.s3Offloader?.destroy();
84
- }
85
- /**
86
- * Delete a thread and all its checkpoints and writes
87
- *
88
- * @param threadId - The thread ID to delete
89
- * @param options.signal - Optional AbortSignal for cancelling in-flight retries
90
- * @throws Error if validation fails or operation fails
91
- */
92
- async deleteThread(threadId, options = {}) {
93
- return await (0, actions_1.deleteThreadAction)({
94
- client: this.client,
95
- checkpointsTableName: this.checkpointsTableName,
96
- writesTableName: this.writesTableName,
97
- threadId,
98
- s3Offloader: this.s3Offloader,
99
- signal: options.signal,
100
- });
101
- }
102
- /**
103
- * Get a checkpoint tuple from DynamoDB
104
- *
105
- * @param config - Runnable configuration containing thread_id and optional checkpoint_id.
106
- * `config.signal` is honored as an AbortSignal: in-flight retries short-circuit
107
- * and the returned promise rejects with the signal's abort reason.
108
- * @returns CheckpointTuple if found, undefined otherwise
109
- * @throws Error if validation fails or operation fails
110
- */
111
- async getTuple(config) {
112
- return await (0, actions_1.getTupleAction)({
113
- client: this.client,
114
- checkpointsTableName: this.checkpointsTableName,
115
- writesTableName: this.writesTableName,
116
- serde: this.serde,
117
- config,
118
- compressor: this.compressor,
119
- s3Offloader: this.s3Offloader,
120
- signal: config.signal,
121
- });
122
- }
123
- /**
124
- * Save a checkpoint to DynamoDB
125
- *
126
- * @param config - Runnable configuration. `config.signal` is honored as an
127
- * AbortSignal and short-circuits retry backoff.
128
- * @param checkpoint - Checkpoint to save
129
- * @param metadata - Checkpoint metadata
130
- * @param newVersions - Channel versions (not used in DynamoDB implementation)
131
- * @returns Updated RunnableConfig with checkpoint information
132
- * @throws Error if validation fails or operation fails
133
- */
134
- async put(config, checkpoint, metadata,
135
- // eslint-disable-next-line unused-imports/no-unused-vars
136
- newVersions) {
137
- return await (0, actions_1.putAction)({
138
- client: this.client,
139
- checkpointsTableName: this.checkpointsTableName,
140
- serde: this.serde,
141
- config,
142
- checkpoint,
143
- metadata,
144
- ttlDays: this.ttlDays,
145
- ttlSeconds: this.ttlSeconds,
146
- compressor: this.compressor,
147
- s3Offloader: this.s3Offloader,
148
- signal: config.signal,
149
- });
150
- }
151
- /**
152
- * Save pending writes to DynamoDB
153
- *
154
- * @param config - Runnable configuration. `config.signal` is honored as an
155
- * AbortSignal and short-circuits retry backoff.
156
- * @param writes - Array of pending writes to save
157
- * @param taskId - Task ID for the writes
158
- * @throws Error if validation fails or operation fails
159
- */
160
- async putWrites(config, writes, taskId) {
161
- return await (0, actions_1.putWritesAction)({
162
- client: this.client,
163
- writesTableName: this.writesTableName,
164
- serde: this.serde,
165
- config,
166
- writes,
167
- taskId,
168
- ttlDays: this.ttlDays,
169
- ttlSeconds: this.ttlSeconds,
170
- compressor: this.compressor,
171
- s3Offloader: this.s3Offloader,
172
- signal: config.signal,
173
- });
174
- }
175
- /**
176
- * List checkpoints for a thread
177
- *
178
- * @param config - Runnable configuration containing thread_id
179
- * @param options - List options including limit, before checkpoint, and metadata filter
180
- * @yields CheckpointTuple objects in descending order
181
- * @throws Error if validation fails or operation fails
182
- */
183
- async *list(config, options) {
184
- const { limit, before, filter } = options ?? {};
185
- const thread_id = config.configurable?.thread_id;
186
- const checkpoint_ns = config.configurable?.checkpoint_ns;
187
- // `config.signal` is LangChain's idiomatic AbortSignal field. We propagate
188
- // it into each retry cycle AND check it before yielding, so a consumer
189
- // calling `controller.abort()` during iteration stops producing items.
190
- const signal = config.signal;
191
- // Validate thread_id
192
- if (typeof thread_id !== 'string') {
193
- throw new Error('thread_id must be a string');
194
- }
195
- (0, utils_1.validateThreadId)(thread_id);
196
- // Validate limit if provided
197
- (0, utils_1.validateListLimit)(limit);
198
- // Validate `before` checkpoint_id — LangGraph passes this back verbatim from
199
- // a previous CheckpointTuple.config, but user callers can construct it
200
- // manually. Without validation a malformed before-id could slip past the
201
- // KeyCondition bound (payload items would get returned under `list({before})`).
202
- const beforeCheckpointId = before?.configurable?.checkpoint_id;
203
- if (beforeCheckpointId !== undefined) {
204
- if (typeof beforeCheckpointId !== 'string') {
205
- throw new Error('before.configurable.checkpoint_id must be a string');
206
- }
207
- (0, utils_1.validateCheckpointId)(beforeCheckpointId, false);
208
- }
209
- const expressionAttributeValues = {
210
- ':thread_id': thread_id,
211
- ...(checkpoint_ns !== undefined && { ':checkpoint_ns': checkpoint_ns }),
212
- };
213
- // Filter to metadata items only via the non-key `type` attribute (payload
214
- // items don't carry `type`). We intentionally avoid using checkpoint_id in
215
- // the KeyCondition to exclude payload items — any lex-bound approach
216
- // silently drops metadata whose IDs sort above `PAYLOAD#`, which includes
217
- // the very common case of lowercase-letter-prefixed IDs.
218
- const filterParts = ['attribute_exists(#type)'];
219
- if (checkpoint_ns !== undefined)
220
- filterParts.push('checkpoint_ns = :checkpoint_ns');
221
- const filterExpression = filterParts.join(' AND ');
222
- // KeyCondition gates only by thread (and optional `before` sort-key bound).
223
- let keyConditionExpression = 'thread_id = :thread_id';
224
- if (before?.configurable?.checkpoint_id) {
225
- keyConditionExpression = 'thread_id = :thread_id AND checkpoint_id < :before_checkpoint_id';
226
- expressionAttributeValues[':before_checkpoint_id'] = before.configurable.checkpoint_id;
227
- }
228
- // When any server-side OR client-side filter reduces the returned set, we
229
- // drop the DynamoDB Limit: Limit is applied BEFORE FilterExpression, so a
230
- // small limit with heavy filtering truncates the result prematurely. The
231
- // metadata filter (from CheckpointListOptions.filter) and the checkpoint_ns
232
- // filter both qualify.
233
- const hasMetadataFilter = filter && Object.keys(filter).length > 0;
234
- const hasNsFilter = checkpoint_ns !== undefined;
235
- const hasAnyFilter = hasMetadataFilter || hasNsFilter;
236
- let yieldedCount = 0;
237
- let iterationCount = 0;
238
- let lastEvaluatedKey;
239
- do {
240
- // Safety net against pathological filter queries: if a thread has millions
241
- // of checkpoints and the filter matches almost none, the scan could loop
242
- // for minutes burning RCU. Abort with a clear error rather than hanging.
243
- iterationCount++;
244
- if (iterationCount > shared_1.MAX_LOOP_ITERATIONS) {
245
- throw new Error(`list() exceeded ${shared_1.MAX_LOOP_ITERATIONS} DynamoDB pages without reaching the requested limit. ` +
246
- `This usually indicates a filter that matches very few items in a large thread — ` +
247
- `narrow the filter, add a more selective namespace, or redesign with a GSI.`);
248
- }
249
- const pageLimit = hasAnyFilter
250
- ? undefined
251
- : limit
252
- ? Math.max(1, limit - yieldedCount)
253
- : undefined;
254
- signal?.throwIfAborted();
255
- const result = await (0, shared_1.withDynamoDBRetry)(async () => {
256
- return await this.client.query({
257
- TableName: this.checkpointsTableName,
258
- KeyConditionExpression: keyConditionExpression,
259
- ExpressionAttributeValues: expressionAttributeValues,
260
- ExpressionAttributeNames: { '#type': 'type' },
261
- FilterExpression: filterExpression,
262
- Limit: pageLimit,
263
- ScanIndexForward: false, // Descending order
264
- ExclusiveStartKey: lastEvaluatedKey,
265
- });
266
- }, { signal });
267
- if (result.Items) {
268
- const items = result.Items;
269
- const payloadMap = await this.fetchCheckpointPayloadsBatch(items, signal);
270
- for (const item of items) {
271
- signal?.throwIfAborted();
272
- const checkpointData = payloadMap.get(item.checkpoint_id) ?? new Uint8Array(0);
273
- const tuple = await (0, utils_1.deserializeCheckpointTuple)(item, checkpointData, this.serde, this.compressor, this.s3Offloader);
274
- // Apply metadata filter: skip checkpoints that don't match all filter entries.
275
- if (hasMetadataFilter && !this.matchesFilter(tuple.metadata, filter)) {
276
- continue;
277
- }
278
- yield tuple;
279
- yieldedCount++;
280
- if (limit && yieldedCount >= limit)
281
- return;
282
- }
283
- }
284
- lastEvaluatedKey = result.LastEvaluatedKey;
285
- } while (lastEvaluatedKey);
286
- }
287
- /**
288
- * Fetch checkpoint payloads for a batch of metadata items.
289
- * Uses BatchGetItem to fetch all payloads in one round trip instead of N+1 queries.
290
- * Items with S3 keys or legacy inline data are resolved without a remote call.
291
- *
292
- * @param items - Checkpoint metadata items from a query result
293
- * @returns Map from checkpoint_id to raw checkpoint data
294
- */
295
- async fetchCheckpointPayloadsBatch(items, signal) {
296
- const payloadMap = new Map();
297
- // Partition items into groups
298
- const splitItems = []; // Need PAYLOAD# fetch
299
- for (const item of items) {
300
- if (item.s3_checkpoint_key) {
301
- // S3 offloaded — deserializeCheckpointTuple will download from S3
302
- payloadMap.set(item.checkpoint_id, new Uint8Array(0));
303
- }
304
- else if (item.checkpoint && item.checkpoint.length > 0) {
305
- // Legacy inline — use item.checkpoint directly
306
- payloadMap.set(item.checkpoint_id, item.checkpoint);
307
- }
308
- else {
309
- // New split format — needs PAYLOAD# fetch
310
- splitItems.push(item);
311
- }
312
- }
313
- if (splitItems.length === 0) {
314
- return payloadMap;
315
- }
316
- // BatchGetItem supports up to 100 keys per call
317
- const BATCH_GET_MAX = 100;
318
- for (let i = 0; i < splitItems.length; i += BATCH_GET_MAX) {
319
- const batch = splitItems.slice(i, i + BATCH_GET_MAX);
320
- let keys = batch.map((item) => ({
321
- thread_id: item.thread_id,
322
- checkpoint_id: `${types_1.PAYLOAD_SK_PREFIX}${item.checkpoint_id}`,
323
- }));
324
- // Retry loop for UnprocessedKeys with exponential backoff
325
- let retryDelay = shared_1.INITIAL_BACKOFF_DELAY_MS;
326
- let retryCount = 0;
327
- while (keys.length > 0) {
328
- const batchResult = await (0, shared_1.withDynamoDBRetry)(async () => {
329
- return await this.client.batchGet({
330
- RequestItems: {
331
- [this.checkpointsTableName]: { Keys: keys },
332
- },
333
- });
334
- }, { signal });
335
- // Map results — BatchGetItem returns items in arbitrary order
336
- const responses = batchResult.Responses?.[this.checkpointsTableName];
337
- if (responses) {
338
- for (const response of responses) {
339
- // Sanity-check the sort key before trimming it. Without this, a corrupted
340
- // or migrated row missing the PAYLOAD# prefix would silently produce a
341
- // garbage `originalId` and ripple into the "payload not found" path below.
342
- if (!response.checkpoint_id?.startsWith(types_1.PAYLOAD_SK_PREFIX)) {
343
- throw new Error(`Unexpected payload item sort key in ${this.checkpointsTableName}: ` +
344
- `expected to start with "${types_1.PAYLOAD_SK_PREFIX}" but got "${response.checkpoint_id}". ` +
345
- `This indicates table corruption or a stale migration — investigate before retrying.`);
346
- }
347
- const originalId = response.checkpoint_id.substring(types_1.PAYLOAD_SK_PREFIX.length);
348
- payloadMap.set(originalId, response.checkpoint);
349
- }
350
- }
351
- // Handle UnprocessedKeys with exponential backoff
352
- const unprocessed = batchResult.UnprocessedKeys?.[this.checkpointsTableName]?.Keys;
353
- if (unprocessed && unprocessed.length > 0) {
354
- retryCount++;
355
- if (retryCount > shared_1.MAX_UNPROCESSED_RETRIES) {
356
- throw new Error(`Failed to fetch all checkpoint payloads after ${shared_1.MAX_UNPROCESSED_RETRIES} retries. ` +
357
- `${unprocessed.length} keys remain unprocessed.`);
358
- }
359
- // Full jitter so list() calls across concurrent workers don't synchronize
360
- // and re-pressure the partition on every retry cycle.
361
- await (0, shared_1.sleep)((0, shared_1.fullJitter)(retryDelay), signal);
362
- retryDelay = (0, shared_1.nextBackoffDelay)(retryDelay);
363
- keys = unprocessed;
364
- }
365
- else {
366
- break;
367
- }
368
- }
369
- }
370
- // Verify all split items were fetched
371
- for (const item of splitItems) {
372
- if (!payloadMap.has(item.checkpoint_id)) {
373
- throw new Error(`Checkpoint payload item not found for thread_id=${item.thread_id}, checkpoint_id=${item.checkpoint_id}`);
374
- }
375
- }
376
- return payloadMap;
377
- }
378
- /**
379
- * Check if checkpoint metadata matches all entries in the filter.
380
- * Each filter key must exactly match the corresponding metadata value.
381
- *
382
- * @param metadata - Deserialized checkpoint metadata
383
- * @param filter - Key-value pairs to match against metadata
384
- * @returns true if all filter entries match
385
- */
386
- matchesFilter(metadata, filter) {
387
- if (!metadata)
388
- return false;
389
- return Object.entries(filter).every(([key, value]) => metadata[key] === value);
390
- }
391
- }
392
- exports.DynamoDBSaver = DynamoDBSaver;
393
- //# sourceMappingURL=index.js.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"index.js","sourceRoot":"","sources":["../../src/checkpointer/index.ts"],"names":[],"mappings":"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"}