@farukada/aws-langgraph-dynamodb-ts 0.9.0 → 1.0.0-rc.2
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/README.md +1720 -154
- package/dist/backfill/backfill.d.ts +168 -0
- package/dist/backfill/backfill.js +393 -0
- package/dist/checkpointer/actions/delete-thread.d.ts +47 -6
- package/dist/checkpointer/actions/delete-thread.js +58 -21
- package/dist/checkpointer/actions/get-tuple.d.ts +29 -4
- package/dist/checkpointer/actions/get-tuple.js +44 -10
- package/dist/checkpointer/actions/list.d.ts +46 -4
- package/dist/checkpointer/actions/list.js +121 -66
- package/dist/checkpointer/actions/put-writes.d.ts +41 -9
- package/dist/checkpointer/actions/put-writes.js +62 -77
- package/dist/checkpointer/actions/put.d.ts +83 -4
- package/dist/checkpointer/actions/put.js +177 -25
- package/dist/checkpointer/internal/delta-history.d.ts +112 -0
- package/dist/checkpointer/internal/delta-history.js +252 -0
- package/dist/checkpointer/internal/listing.d.ts +149 -0
- package/dist/checkpointer/internal/listing.js +245 -0
- package/dist/checkpointer/internal/parse.d.ts +262 -0
- package/dist/checkpointer/internal/parse.js +372 -0
- package/dist/checkpointer/internal/pending-writes.d.ts +275 -0
- package/dist/checkpointer/internal/pending-writes.js +588 -0
- package/dist/checkpointer/internal/read.d.ts +130 -0
- package/dist/checkpointer/internal/read.js +264 -0
- package/dist/checkpointer/internal/rows.d.ts +571 -0
- package/dist/checkpointer/internal/rows.js +834 -0
- package/dist/checkpointer/internal/setup.d.ts +42 -19
- package/dist/checkpointer/internal/setup.js +65 -29
- package/dist/checkpointer/saver.d.ts +256 -16
- package/dist/checkpointer/saver.js +275 -29
- package/dist/checkpointer/types.d.ts +39 -39
- package/dist/checkpointer/types.js +10 -1
- package/dist/factory/factory.d.ts +134 -28
- package/dist/factory/factory.js +240 -21
- package/dist/factory/types.d.ts +76 -0
- package/dist/factory/types.js +10 -0
- package/dist/history/actions/add-messages.d.ts +31 -4
- package/dist/history/actions/add-messages.js +38 -58
- package/dist/history/actions/clear.d.ts +49 -6
- package/dist/history/actions/clear.js +66 -14
- package/dist/history/actions/get-messages.d.ts +54 -6
- package/dist/history/actions/get-messages.js +126 -43
- package/dist/history/actions/list-sessions.d.ts +52 -10
- package/dist/history/actions/list-sessions.js +139 -40
- package/dist/history/actions/reconcile-count.d.ts +42 -10
- package/dist/history/actions/reconcile-count.js +45 -45
- package/dist/history/chat-message-history.d.ts +220 -33
- package/dist/history/chat-message-history.js +240 -43
- package/dist/history/internal/append.d.ts +212 -0
- package/dist/history/internal/append.js +500 -0
- package/dist/history/internal/message-read.d.ts +84 -0
- package/dist/history/internal/message-read.js +204 -0
- package/dist/history/internal/parse.d.ts +153 -0
- package/dist/history/internal/parse.js +252 -0
- package/dist/history/internal/rows.d.ts +195 -0
- package/dist/history/internal/rows.js +250 -0
- package/dist/history/internal/session.d.ts +331 -0
- package/dist/history/internal/session.js +628 -0
- package/dist/history/internal/setup.d.ts +52 -17
- package/dist/history/internal/setup.js +92 -21
- package/dist/history/session-adapter.d.ts +102 -7
- package/dist/history/session-adapter.js +103 -9
- package/dist/history/types.d.ts +80 -29
- package/dist/history/types.js +10 -1
- package/dist/index.d.ts +42 -11
- package/dist/index.js +33 -12
- package/dist/shared/adapter.d.ts +135 -0
- package/dist/shared/adapter.js +143 -0
- package/dist/shared/clock.d.ts +51 -2
- package/dist/shared/clock.js +57 -2
- package/dist/shared/codec/codec.d.ts +288 -13
- package/dist/shared/codec/codec.js +416 -19
- package/dist/shared/codec/compression.d.ts +43 -7
- package/dist/shared/codec/compression.js +53 -13
- package/dist/shared/codec/json-serde.d.ts +76 -4
- package/dist/shared/codec/json-serde.js +181 -8
- package/dist/shared/codec/s3/client-types.d.ts +53 -0
- package/dist/shared/codec/s3/client-types.js +26 -0
- package/dist/shared/codec/s3/client.d.ts +43 -10
- package/dist/shared/codec/s3/client.js +82 -9
- package/dist/shared/codec/s3/config.d.ts +242 -11
- package/dist/shared/codec/s3/config.js +293 -11
- package/dist/shared/codec/s3/lifecycle.d.ts +164 -6
- package/dist/shared/codec/s3/lifecycle.js +335 -27
- package/dist/shared/codec/s3/offloader.d.ts +393 -18
- package/dist/shared/codec/s3/offloader.js +595 -37
- package/dist/shared/concurrency.d.ts +43 -0
- package/dist/shared/concurrency.js +78 -0
- package/dist/shared/dynamodb/abort.d.ts +47 -0
- package/dist/shared/dynamodb/abort.js +59 -0
- package/dist/shared/dynamodb/batch-write.d.ts +77 -14
- package/dist/shared/dynamodb/batch-write.js +146 -27
- package/dist/shared/dynamodb/cancellation.d.ts +121 -4
- package/dist/shared/dynamodb/cancellation.js +147 -3
- package/dist/shared/dynamodb/client.d.ts +162 -8
- package/dist/shared/dynamodb/client.js +153 -5
- package/dist/shared/dynamodb/idempotent-write.d.ts +551 -0
- package/dist/shared/dynamodb/idempotent-write.js +593 -0
- package/dist/shared/dynamodb/paginate.d.ts +105 -9
- package/dist/shared/dynamodb/paginate.js +175 -7
- package/dist/shared/dynamodb/partition-delete.d.ts +185 -14
- package/dist/shared/dynamodb/partition-delete.js +314 -44
- package/dist/shared/dynamodb/recency-index.d.ts +231 -0
- package/dist/shared/dynamodb/recency-index.js +377 -0
- package/dist/shared/dynamodb/retry.d.ts +276 -8
- package/dist/shared/dynamodb/retry.js +433 -23
- package/dist/shared/dynamodb/table-schema.d.ts +190 -0
- package/dist/shared/dynamodb/table-schema.js +209 -0
- package/dist/shared/errors/base-error.d.ts +184 -10
- package/dist/shared/errors/base-error.js +160 -14
- package/dist/shared/errors/boundary.d.ts +71 -0
- package/dist/shared/errors/boundary.js +143 -0
- package/dist/shared/errors/classify.d.ts +97 -0
- package/dist/shared/errors/classify.js +257 -0
- package/dist/shared/errors/error-code.d.ts +77 -2
- package/dist/shared/errors/error-code.js +83 -1
- package/dist/shared/errors/errors.d.ts +158 -59
- package/dist/shared/errors/errors.js +219 -92
- package/dist/shared/logging/logger.d.ts +69 -3
- package/dist/shared/logging/logger.js +97 -3
- package/dist/shared/logging/redaction.d.ts +92 -8
- package/dist/shared/logging/redaction.js +273 -17
- package/dist/shared/logging/secret-patterns.d.ts +149 -19
- package/dist/shared/logging/secret-patterns.js +188 -27
- package/dist/shared/logging/truncate.d.ts +197 -0
- package/dist/shared/logging/truncate.js +231 -0
- package/dist/shared/options.d.ts +59 -7
- package/dist/shared/options.js +9 -1
- package/dist/shared/ulid.d.ts +77 -7
- package/dist/shared/ulid.js +103 -8
- package/dist/shared/validation/collaborators.d.ts +141 -0
- package/dist/shared/validation/collaborators.js +188 -0
- package/dist/shared/validation/option-shape.d.ts +89 -0
- package/dist/shared/validation/option-shape.js +113 -0
- package/dist/shared/validation/options.d.ts +145 -0
- package/dist/shared/validation/options.js +328 -0
- package/dist/shared/validation/primitives.d.ts +288 -21
- package/dist/shared/validation/primitives.js +353 -50
- package/dist/shared/validation/ttl.d.ts +66 -10
- package/dist/shared/validation/ttl.js +113 -15
- package/dist/store/actions/list-namespaces.d.ts +76 -6
- package/dist/store/actions/list-namespaces.js +166 -24
- package/dist/store/actions/put.d.ts +33 -8
- package/dist/store/actions/put.js +53 -60
- package/dist/store/actions/reconcile-vector-index.d.ts +31 -10
- package/dist/store/actions/reconcile-vector-index.js +34 -15
- package/dist/store/actions/search.d.ts +34 -6
- package/dist/store/actions/search.js +56 -51
- package/dist/store/internal/batch-plan.d.ts +26 -0
- package/dist/store/internal/batch-plan.js +109 -0
- package/dist/store/internal/filter.d.ts +36 -3
- package/dist/store/internal/filter.js +66 -15
- package/dist/store/internal/get-item.d.ts +45 -0
- package/dist/store/internal/get-item.js +115 -0
- package/dist/store/internal/item-write.d.ts +230 -0
- package/dist/store/internal/item-write.js +463 -0
- package/dist/store/internal/parse.d.ts +225 -0
- package/dist/store/internal/parse.js +350 -0
- package/dist/store/internal/rows.d.ts +355 -0
- package/dist/store/internal/rows.js +447 -0
- package/dist/store/internal/semantic-search.d.ts +161 -6
- package/dist/store/internal/semantic-search.js +360 -18
- package/dist/store/internal/setup.d.ts +77 -20
- package/dist/store/internal/setup.js +178 -47
- package/dist/store/internal/table-search.d.ts +100 -0
- package/dist/store/internal/table-search.js +213 -0
- package/dist/store/internal/vector-index.d.ts +247 -0
- package/dist/store/internal/vector-index.js +546 -0
- package/dist/store/store.d.ts +270 -17
- package/dist/store/store.js +329 -38
- package/dist/store/types.d.ts +76 -26
- package/dist/store/types.js +13 -1
- package/dist/store/vector-backend.d.ts +64 -4
- package/dist/store/vector-backend.js +15 -1
- package/package.json +58 -36
- package/dist/checkpointer/actions/delete-thread.d.ts.map +0 -1
- package/dist/checkpointer/actions/delete-thread.js.map +0 -1
- package/dist/checkpointer/actions/get-tuple.d.ts.map +0 -1
- package/dist/checkpointer/actions/get-tuple.js.map +0 -1
- package/dist/checkpointer/actions/list.d.ts.map +0 -1
- package/dist/checkpointer/actions/list.js.map +0 -1
- package/dist/checkpointer/actions/put-writes.d.ts.map +0 -1
- package/dist/checkpointer/actions/put-writes.js.map +0 -1
- package/dist/checkpointer/actions/put.d.ts.map +0 -1
- package/dist/checkpointer/actions/put.js.map +0 -1
- package/dist/checkpointer/internal/assemble.d.ts +0 -10
- package/dist/checkpointer/internal/assemble.d.ts.map +0 -1
- package/dist/checkpointer/internal/assemble.js +0 -37
- package/dist/checkpointer/internal/assemble.js.map +0 -1
- package/dist/checkpointer/internal/configurable.d.ts +0 -13
- package/dist/checkpointer/internal/configurable.d.ts.map +0 -1
- package/dist/checkpointer/internal/configurable.js +0 -23
- package/dist/checkpointer/internal/configurable.js.map +0 -1
- package/dist/checkpointer/internal/fetch.d.ts +0 -10
- package/dist/checkpointer/internal/fetch.d.ts.map +0 -1
- package/dist/checkpointer/internal/fetch.js +0 -46
- package/dist/checkpointer/internal/fetch.js.map +0 -1
- package/dist/checkpointer/internal/filter-match.d.ts +0 -12
- package/dist/checkpointer/internal/filter-match.d.ts.map +0 -1
- package/dist/checkpointer/internal/filter-match.js +0 -14
- package/dist/checkpointer/internal/filter-match.js.map +0 -1
- package/dist/checkpointer/internal/item-reader.d.ts +0 -55
- package/dist/checkpointer/internal/item-reader.d.ts.map +0 -1
- package/dist/checkpointer/internal/item-reader.js +0 -88
- package/dist/checkpointer/internal/item-reader.js.map +0 -1
- package/dist/checkpointer/internal/item-writer.d.ts +0 -26
- package/dist/checkpointer/internal/item-writer.d.ts.map +0 -1
- package/dist/checkpointer/internal/item-writer.js +0 -92
- package/dist/checkpointer/internal/item-writer.js.map +0 -1
- package/dist/checkpointer/internal/keys.d.ts +0 -31
- package/dist/checkpointer/internal/keys.d.ts.map +0 -1
- package/dist/checkpointer/internal/keys.js +0 -87
- package/dist/checkpointer/internal/keys.js.map +0 -1
- package/dist/checkpointer/internal/query.d.ts +0 -20
- package/dist/checkpointer/internal/query.d.ts.map +0 -1
- package/dist/checkpointer/internal/query.js +0 -36
- package/dist/checkpointer/internal/query.js.map +0 -1
- package/dist/checkpointer/internal/setup.d.ts.map +0 -1
- package/dist/checkpointer/internal/setup.js.map +0 -1
- package/dist/checkpointer/internal/special-write-cas.d.ts +0 -30
- package/dist/checkpointer/internal/special-write-cas.d.ts.map +0 -1
- package/dist/checkpointer/internal/special-write-cas.js +0 -104
- package/dist/checkpointer/internal/special-write-cas.js.map +0 -1
- package/dist/checkpointer/internal/special-write-cleanup.d.ts +0 -24
- package/dist/checkpointer/internal/special-write-cleanup.d.ts.map +0 -1
- package/dist/checkpointer/internal/special-write-cleanup.js +0 -47
- package/dist/checkpointer/internal/special-write-cleanup.js.map +0 -1
- package/dist/checkpointer/internal/special-write-verify.d.ts +0 -54
- package/dist/checkpointer/internal/special-write-verify.d.ts.map +0 -1
- package/dist/checkpointer/internal/special-write-verify.js +0 -65
- package/dist/checkpointer/internal/special-write-verify.js.map +0 -1
- package/dist/checkpointer/internal/validation.d.ts +0 -13
- package/dist/checkpointer/internal/validation.d.ts.map +0 -1
- package/dist/checkpointer/internal/validation.js +0 -30
- package/dist/checkpointer/internal/validation.js.map +0 -1
- package/dist/checkpointer/internal/write-guard.d.ts +0 -13
- package/dist/checkpointer/internal/write-guard.d.ts.map +0 -1
- package/dist/checkpointer/internal/write-guard.js +0 -39
- package/dist/checkpointer/internal/write-guard.js.map +0 -1
- package/dist/checkpointer/internal/write-index.d.ts +0 -37
- package/dist/checkpointer/internal/write-index.d.ts.map +0 -1
- package/dist/checkpointer/internal/write-index.js +0 -42
- package/dist/checkpointer/internal/write-index.js.map +0 -1
- package/dist/checkpointer/saver.d.ts.map +0 -1
- package/dist/checkpointer/saver.js.map +0 -1
- package/dist/checkpointer/types.d.ts.map +0 -1
- package/dist/checkpointer/types.js.map +0 -1
- package/dist/factory/factory.d.ts.map +0 -1
- package/dist/factory/factory.js.map +0 -1
- package/dist/history/actions/add-messages.d.ts.map +0 -1
- package/dist/history/actions/add-messages.js.map +0 -1
- package/dist/history/actions/clear.d.ts.map +0 -1
- package/dist/history/actions/clear.js.map +0 -1
- package/dist/history/actions/get-messages.d.ts.map +0 -1
- package/dist/history/actions/get-messages.js.map +0 -1
- package/dist/history/actions/list-sessions.d.ts.map +0 -1
- package/dist/history/actions/list-sessions.js.map +0 -1
- package/dist/history/actions/reconcile-count.d.ts.map +0 -1
- package/dist/history/actions/reconcile-count.js.map +0 -1
- package/dist/history/chat-message-history.d.ts.map +0 -1
- package/dist/history/chat-message-history.js.map +0 -1
- package/dist/history/internal/append-saga.d.ts +0 -20
- package/dist/history/internal/append-saga.d.ts.map +0 -1
- package/dist/history/internal/append-saga.js +0 -35
- package/dist/history/internal/append-saga.js.map +0 -1
- package/dist/history/internal/compensation.d.ts +0 -21
- package/dist/history/internal/compensation.d.ts.map +0 -1
- package/dist/history/internal/compensation.js +0 -84
- package/dist/history/internal/compensation.js.map +0 -1
- package/dist/history/internal/item-mapper.d.ts +0 -12
- package/dist/history/internal/item-mapper.d.ts.map +0 -1
- package/dist/history/internal/item-mapper.js +0 -33
- package/dist/history/internal/item-mapper.js.map +0 -1
- package/dist/history/internal/keys.d.ts +0 -17
- package/dist/history/internal/keys.d.ts.map +0 -1
- package/dist/history/internal/keys.js +0 -49
- package/dist/history/internal/keys.js.map +0 -1
- package/dist/history/internal/message-chunker.d.ts +0 -14
- package/dist/history/internal/message-chunker.d.ts.map +0 -1
- package/dist/history/internal/message-chunker.js +0 -68
- package/dist/history/internal/message-chunker.js.map +0 -1
- package/dist/history/internal/message-transaction.d.ts +0 -26
- package/dist/history/internal/message-transaction.d.ts.map +0 -1
- package/dist/history/internal/message-transaction.js +0 -60
- package/dist/history/internal/message-transaction.js.map +0 -1
- package/dist/history/internal/query.d.ts +0 -10
- package/dist/history/internal/query.d.ts.map +0 -1
- package/dist/history/internal/query.js +0 -31
- package/dist/history/internal/query.js.map +0 -1
- package/dist/history/internal/session-count.d.ts +0 -41
- package/dist/history/internal/session-count.d.ts.map +0 -1
- package/dist/history/internal/session-count.js +0 -109
- package/dist/history/internal/session-count.js.map +0 -1
- package/dist/history/internal/session-title.d.ts +0 -20
- package/dist/history/internal/session-title.d.ts.map +0 -1
- package/dist/history/internal/session-title.js +0 -44
- package/dist/history/internal/session-title.js.map +0 -1
- package/dist/history/internal/session-update.d.ts +0 -28
- package/dist/history/internal/session-update.d.ts.map +0 -1
- package/dist/history/internal/session-update.js +0 -70
- package/dist/history/internal/session-update.js.map +0 -1
- package/dist/history/internal/setup.d.ts.map +0 -1
- package/dist/history/internal/setup.js.map +0 -1
- package/dist/history/internal/title-generator.d.ts +0 -13
- package/dist/history/internal/title-generator.d.ts.map +0 -1
- package/dist/history/internal/title-generator.js +0 -25
- package/dist/history/internal/title-generator.js.map +0 -1
- package/dist/history/internal/ttl-anchor.d.ts +0 -25
- package/dist/history/internal/ttl-anchor.d.ts.map +0 -1
- package/dist/history/internal/ttl-anchor.js +0 -38
- package/dist/history/internal/ttl-anchor.js.map +0 -1
- package/dist/history/internal/validation.d.ts +0 -9
- package/dist/history/internal/validation.d.ts.map +0 -1
- package/dist/history/internal/validation.js +0 -16
- package/dist/history/internal/validation.js.map +0 -1
- package/dist/history/session-adapter.d.ts.map +0 -1
- package/dist/history/session-adapter.js.map +0 -1
- package/dist/history/types.d.ts.map +0 -1
- package/dist/history/types.js.map +0 -1
- package/dist/index.d.ts.map +0 -1
- package/dist/index.js.map +0 -1
- package/dist/shared/clock.d.ts.map +0 -1
- package/dist/shared/clock.js.map +0 -1
- package/dist/shared/codec/codec.d.ts.map +0 -1
- package/dist/shared/codec/codec.js.map +0 -1
- package/dist/shared/codec/compression.d.ts.map +0 -1
- package/dist/shared/codec/compression.js.map +0 -1
- package/dist/shared/codec/descriptor-keys.d.ts +0 -4
- package/dist/shared/codec/descriptor-keys.d.ts.map +0 -1
- package/dist/shared/codec/descriptor-keys.js +0 -14
- package/dist/shared/codec/descriptor-keys.js.map +0 -1
- package/dist/shared/codec/json-serde.d.ts.map +0 -1
- package/dist/shared/codec/json-serde.js.map +0 -1
- package/dist/shared/codec/s3/client.d.ts.map +0 -1
- package/dist/shared/codec/s3/client.js.map +0 -1
- package/dist/shared/codec/s3/config.d.ts.map +0 -1
- package/dist/shared/codec/s3/config.js.map +0 -1
- package/dist/shared/codec/s3/delete.d.ts +0 -8
- package/dist/shared/codec/s3/delete.d.ts.map +0 -1
- package/dist/shared/codec/s3/delete.js +0 -29
- package/dist/shared/codec/s3/delete.js.map +0 -1
- package/dist/shared/codec/s3/lifecycle.d.ts.map +0 -1
- package/dist/shared/codec/s3/lifecycle.js.map +0 -1
- package/dist/shared/codec/s3/offloader.d.ts.map +0 -1
- package/dist/shared/codec/s3/offloader.js.map +0 -1
- package/dist/shared/codec/s3/orphans.d.ts +0 -18
- package/dist/shared/codec/s3/orphans.d.ts.map +0 -1
- package/dist/shared/codec/s3/orphans.js +0 -58
- package/dist/shared/codec/s3/orphans.js.map +0 -1
- package/dist/shared/codec/s3/read-write.d.ts +0 -14
- package/dist/shared/codec/s3/read-write.d.ts.map +0 -1
- package/dist/shared/codec/s3/read-write.js +0 -43
- package/dist/shared/codec/s3/read-write.js.map +0 -1
- package/dist/shared/codec/s3/retry.d.ts +0 -5
- package/dist/shared/codec/s3/retry.d.ts.map +0 -1
- package/dist/shared/codec/s3/retry.js +0 -25
- package/dist/shared/codec/s3/retry.js.map +0 -1
- package/dist/shared/constants.d.ts +0 -64
- package/dist/shared/constants.d.ts.map +0 -1
- package/dist/shared/constants.js +0 -67
- package/dist/shared/constants.js.map +0 -1
- package/dist/shared/dynamodb/backoff.d.ts +0 -15
- package/dist/shared/dynamodb/backoff.d.ts.map +0 -1
- package/dist/shared/dynamodb/backoff.js +0 -48
- package/dist/shared/dynamodb/backoff.js.map +0 -1
- package/dist/shared/dynamodb/batch-write.d.ts.map +0 -1
- package/dist/shared/dynamodb/batch-write.js.map +0 -1
- package/dist/shared/dynamodb/cancellation.d.ts.map +0 -1
- package/dist/shared/dynamodb/cancellation.js.map +0 -1
- package/dist/shared/dynamodb/client.d.ts.map +0 -1
- package/dist/shared/dynamodb/client.js.map +0 -1
- package/dist/shared/dynamodb/conditional-put.d.ts +0 -51
- package/dist/shared/dynamodb/conditional-put.d.ts.map +0 -1
- package/dist/shared/dynamodb/conditional-put.js +0 -59
- package/dist/shared/dynamodb/conditional-put.js.map +0 -1
- package/dist/shared/dynamodb/drain-unprocessed.d.ts +0 -19
- package/dist/shared/dynamodb/drain-unprocessed.d.ts.map +0 -1
- package/dist/shared/dynamodb/drain-unprocessed.js +0 -44
- package/dist/shared/dynamodb/drain-unprocessed.js.map +0 -1
- package/dist/shared/dynamodb/paginate-core.d.ts +0 -22
- package/dist/shared/dynamodb/paginate-core.d.ts.map +0 -1
- package/dist/shared/dynamodb/paginate-core.js +0 -52
- package/dist/shared/dynamodb/paginate-core.js.map +0 -1
- package/dist/shared/dynamodb/paginate.d.ts.map +0 -1
- package/dist/shared/dynamodb/paginate.js.map +0 -1
- package/dist/shared/dynamodb/partition-delete.d.ts.map +0 -1
- package/dist/shared/dynamodb/partition-delete.js.map +0 -1
- package/dist/shared/dynamodb/retry-classifier.d.ts +0 -9
- package/dist/shared/dynamodb/retry-classifier.d.ts.map +0 -1
- package/dist/shared/dynamodb/retry-classifier.js +0 -87
- package/dist/shared/dynamodb/retry-classifier.js.map +0 -1
- package/dist/shared/dynamodb/retry.d.ts.map +0 -1
- package/dist/shared/dynamodb/retry.js.map +0 -1
- package/dist/shared/dynamodb/scan.d.ts +0 -15
- package/dist/shared/dynamodb/scan.d.ts.map +0 -1
- package/dist/shared/dynamodb/scan.js +0 -20
- package/dist/shared/dynamodb/scan.js.map +0 -1
- package/dist/shared/dynamodb/types.d.ts +0 -24
- package/dist/shared/dynamodb/types.d.ts.map +0 -1
- package/dist/shared/dynamodb/types.js +0 -3
- package/dist/shared/dynamodb/types.js.map +0 -1
- package/dist/shared/errors/base-error.d.ts.map +0 -1
- package/dist/shared/errors/base-error.js.map +0 -1
- package/dist/shared/errors/error-code.d.ts.map +0 -1
- package/dist/shared/errors/error-code.js.map +0 -1
- package/dist/shared/errors/errors.d.ts.map +0 -1
- package/dist/shared/errors/errors.js.map +0 -1
- package/dist/shared/errors/wrap-error.d.ts +0 -16
- package/dist/shared/errors/wrap-error.d.ts.map +0 -1
- package/dist/shared/errors/wrap-error.js +0 -30
- package/dist/shared/errors/wrap-error.js.map +0 -1
- package/dist/shared/logging/logger.d.ts.map +0 -1
- package/dist/shared/logging/logger.js.map +0 -1
- package/dist/shared/logging/redaction-walk.d.ts +0 -23
- package/dist/shared/logging/redaction-walk.d.ts.map +0 -1
- package/dist/shared/logging/redaction-walk.js +0 -92
- package/dist/shared/logging/redaction-walk.js.map +0 -1
- package/dist/shared/logging/redaction.d.ts.map +0 -1
- package/dist/shared/logging/redaction.js.map +0 -1
- package/dist/shared/logging/secret-patterns.d.ts.map +0 -1
- package/dist/shared/logging/secret-patterns.js.map +0 -1
- package/dist/shared/options.d.ts.map +0 -1
- package/dist/shared/options.js.map +0 -1
- package/dist/shared/ulid.d.ts.map +0 -1
- package/dist/shared/ulid.js.map +0 -1
- package/dist/shared/validation/primitives.d.ts.map +0 -1
- package/dist/shared/validation/primitives.js.map +0 -1
- package/dist/shared/validation/ttl.d.ts.map +0 -1
- package/dist/shared/validation/ttl.js.map +0 -1
- package/dist/store/actions/get.d.ts +0 -5
- package/dist/store/actions/get.d.ts.map +0 -1
- package/dist/store/actions/get.js +0 -35
- package/dist/store/actions/get.js.map +0 -1
- package/dist/store/actions/list-namespaces.d.ts.map +0 -1
- package/dist/store/actions/list-namespaces.js.map +0 -1
- package/dist/store/actions/put.d.ts.map +0 -1
- package/dist/store/actions/put.js.map +0 -1
- package/dist/store/actions/reconcile-vector-index.d.ts.map +0 -1
- package/dist/store/actions/reconcile-vector-index.js.map +0 -1
- package/dist/store/actions/search.d.ts.map +0 -1
- package/dist/store/actions/search.js.map +0 -1
- package/dist/store/internal/backend-search.d.ts +0 -5
- package/dist/store/internal/backend-search.d.ts.map +0 -1
- package/dist/store/internal/backend-search.js +0 -68
- package/dist/store/internal/backend-search.js.map +0 -1
- package/dist/store/internal/filter.d.ts.map +0 -1
- package/dist/store/internal/filter.js.map +0 -1
- package/dist/store/internal/index-reconcile.d.ts +0 -22
- package/dist/store/internal/index-reconcile.d.ts.map +0 -1
- package/dist/store/internal/index-reconcile.js +0 -105
- package/dist/store/internal/index-reconcile.js.map +0 -1
- package/dist/store/internal/index-sync.d.ts +0 -11
- package/dist/store/internal/index-sync.d.ts.map +0 -1
- package/dist/store/internal/index-sync.js +0 -26
- package/dist/store/internal/index-sync.js.map +0 -1
- package/dist/store/internal/item-mapper.d.ts +0 -25
- package/dist/store/internal/item-mapper.d.ts.map +0 -1
- package/dist/store/internal/item-mapper.js +0 -53
- package/dist/store/internal/item-mapper.js.map +0 -1
- package/dist/store/internal/keys.d.ts +0 -18
- package/dist/store/internal/keys.d.ts.map +0 -1
- package/dist/store/internal/keys.js +0 -42
- package/dist/store/internal/keys.js.map +0 -1
- package/dist/store/internal/namespace-match.d.ts +0 -12
- package/dist/store/internal/namespace-match.d.ts.map +0 -1
- package/dist/store/internal/namespace-match.js +0 -41
- package/dist/store/internal/namespace-match.js.map +0 -1
- package/dist/store/internal/overwrite-swap.d.ts +0 -33
- package/dist/store/internal/overwrite-swap.d.ts.map +0 -1
- package/dist/store/internal/overwrite-swap.js +0 -62
- package/dist/store/internal/overwrite-swap.js.map +0 -1
- package/dist/store/internal/persist.d.ts +0 -27
- package/dist/store/internal/persist.d.ts.map +0 -1
- package/dist/store/internal/persist.js +0 -59
- package/dist/store/internal/persist.js.map +0 -1
- package/dist/store/internal/query.d.ts +0 -6
- package/dist/store/internal/query.d.ts.map +0 -1
- package/dist/store/internal/query.js +0 -32
- package/dist/store/internal/query.js.map +0 -1
- package/dist/store/internal/ranker.d.ts +0 -13
- package/dist/store/internal/ranker.d.ts.map +0 -1
- package/dist/store/internal/ranker.js +0 -31
- package/dist/store/internal/ranker.js.map +0 -1
- package/dist/store/internal/read-existing.d.ts +0 -19
- package/dist/store/internal/read-existing.d.ts.map +0 -1
- package/dist/store/internal/read-existing.js +0 -29
- package/dist/store/internal/read-existing.js.map +0 -1
- package/dist/store/internal/score-direction.d.ts +0 -32
- package/dist/store/internal/score-direction.d.ts.map +0 -1
- package/dist/store/internal/score-direction.js +0 -39
- package/dist/store/internal/score-direction.js.map +0 -1
- package/dist/store/internal/search-filter.d.ts +0 -4
- package/dist/store/internal/search-filter.d.ts.map +0 -1
- package/dist/store/internal/search-filter.js +0 -11
- package/dist/store/internal/search-filter.js.map +0 -1
- package/dist/store/internal/semantic-search.d.ts.map +0 -1
- package/dist/store/internal/semantic-search.js.map +0 -1
- package/dist/store/internal/setup.d.ts.map +0 -1
- package/dist/store/internal/setup.js.map +0 -1
- package/dist/store/internal/validation.d.ts +0 -13
- package/dist/store/internal/validation.d.ts.map +0 -1
- package/dist/store/internal/validation.js +0 -35
- package/dist/store/internal/validation.js.map +0 -1
- package/dist/store/internal/write-verify.d.ts +0 -37
- package/dist/store/internal/write-verify.d.ts.map +0 -1
- package/dist/store/internal/write-verify.js +0 -68
- package/dist/store/internal/write-verify.js.map +0 -1
- package/dist/store/store.d.ts.map +0 -1
- package/dist/store/store.js.map +0 -1
- package/dist/store/types.d.ts.map +0 -1
- package/dist/store/types.js.map +0 -1
- package/dist/store/vector-backend.d.ts.map +0 -1
- package/dist/store/vector-backend.js.map +0 -1
package/package.json
CHANGED
|
@@ -1,25 +1,32 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "@farukada/aws-langgraph-dynamodb-ts",
|
|
3
|
-
"version": "0.
|
|
3
|
+
"version": "1.0.0-rc.2",
|
|
4
4
|
"license": "MIT",
|
|
5
|
-
"description": "
|
|
5
|
+
"description": "DynamoDB persistence for LangGraph.js: checkpoint saver, long-term memory store with semantic search, and chat message history, with optional S3 offload, compression and TTL",
|
|
6
6
|
"keywords": [
|
|
7
7
|
"aws",
|
|
8
8
|
"dynamodb",
|
|
9
9
|
"langchain",
|
|
10
10
|
"langgraph",
|
|
11
11
|
"checkpointer",
|
|
12
|
-
"
|
|
12
|
+
"checkpoint-saver",
|
|
13
|
+
"memory-store",
|
|
14
|
+
"long-term-memory",
|
|
15
|
+
"chat-history",
|
|
16
|
+
"semantic-search",
|
|
17
|
+
"s3",
|
|
18
|
+
"typescript"
|
|
13
19
|
],
|
|
14
20
|
"author": "Faruk Ada <info@farukada.com>",
|
|
15
21
|
"homepage": "https://github.com/FarukAda/aws-langgraph-dynamodb-ts",
|
|
16
22
|
"repository": {
|
|
17
23
|
"type": "git",
|
|
18
|
-
"url": "https://github.com/FarukAda/aws-langgraph-dynamodb-ts"
|
|
24
|
+
"url": "git+https://github.com/FarukAda/aws-langgraph-dynamodb-ts.git"
|
|
19
25
|
},
|
|
20
26
|
"bugs": {
|
|
21
27
|
"url": "https://github.com/FarukAda/aws-langgraph-dynamodb-ts/issues"
|
|
22
28
|
},
|
|
29
|
+
"type": "commonjs",
|
|
23
30
|
"main": "dist/index.js",
|
|
24
31
|
"types": "dist/index.d.ts",
|
|
25
32
|
"exports": {
|
|
@@ -28,83 +35,97 @@
|
|
|
28
35
|
"import": "./dist/index.js",
|
|
29
36
|
"require": "./dist/index.js",
|
|
30
37
|
"default": "./dist/index.js"
|
|
31
|
-
}
|
|
38
|
+
},
|
|
39
|
+
"./package.json": "./package.json"
|
|
32
40
|
},
|
|
33
41
|
"engines": {
|
|
34
42
|
"node": ">=22.0.0",
|
|
35
43
|
"npm": ">=10.0.0"
|
|
36
44
|
},
|
|
37
45
|
"scripts": {
|
|
38
|
-
"build": "tsc -p tsconfig.build.json",
|
|
46
|
+
"build": "node scripts/clean.mjs && tsc -p tsconfig.build.json",
|
|
39
47
|
"typecheck": "tsc -p tsconfig.build.json --noEmit",
|
|
40
48
|
"typecheck:all": "tsc --noEmit",
|
|
41
|
-
"lint": "eslint \"src/**/*.ts\" \"test/**/*.ts\" \"*.config.ts\" --no-error-on-unmatched-pattern",
|
|
42
|
-
"lint:fix": "eslint \"src/**/*.ts\" \"test/**/*.ts\" \"*.config.ts\" --fix --no-error-on-unmatched-pattern",
|
|
43
|
-
"test": "jest",
|
|
44
|
-
"test:integration": "
|
|
49
|
+
"lint": "eslint \"src/**/*.ts\" \"test/**/*.ts\" \"*.config.ts\" \"**/*.mjs\" --no-error-on-unmatched-pattern",
|
|
50
|
+
"lint:fix": "eslint \"src/**/*.ts\" \"test/**/*.ts\" \"*.config.ts\" \"**/*.mjs\" --fix --no-error-on-unmatched-pattern",
|
|
51
|
+
"test": "jest --coverage",
|
|
52
|
+
"test:integration": "jest --config jest.integration.config.ts",
|
|
45
53
|
"test:integration:up": "docker compose up -d",
|
|
46
54
|
"test:integration:down": "docker compose down",
|
|
47
|
-
"test:conformance": "
|
|
48
|
-
"test:aws": "
|
|
55
|
+
"test:conformance": "jest --config jest.conformance.config.ts",
|
|
56
|
+
"test:aws": "jest --config jest.aws.config.ts",
|
|
49
57
|
"test:static": "jest test/static",
|
|
58
|
+
"test:scripts": "node --test \"test/scripts/**/*.test.mjs\"",
|
|
50
59
|
"test:package-smoke": "node --test test/package-smoke/smoke.test.mjs",
|
|
60
|
+
"test:consumer-types": "node --test test/package-smoke/consumer-types.test.mjs",
|
|
61
|
+
"test:surface": "node scripts/run-with-timeout.mjs 150 -- node --test --test-timeout=120000 test/surface/surface.test.mjs",
|
|
62
|
+
"test:surface:update": "node scripts/update-surface-baseline.mjs",
|
|
51
63
|
"prepublishOnly": "npm run typecheck && npm run typecheck:all && npm run lint && npm run build && npm test",
|
|
52
64
|
"docs": "typedoc",
|
|
53
65
|
"docs:watch": "typedoc --watch",
|
|
66
|
+
"check:docs": "node scripts/check-doc-samples.mjs",
|
|
67
|
+
"check:links": "node scripts/check-doc-links.mjs",
|
|
54
68
|
"unused": "knip",
|
|
55
69
|
"depcheck": "depcheck .",
|
|
70
|
+
"peer-floors": "node scripts/peer-floors.mjs",
|
|
71
|
+
"ci:require-green": "node scripts/require-green-ci.mjs",
|
|
72
|
+
"changelog-section": "node scripts/changelog-section.mjs",
|
|
73
|
+
"sbom": "node scripts/generate-sbom.mjs",
|
|
56
74
|
"cpd": "jscpd ./src --threshold 2 --min-lines 3 --reporters console --silent --format typescript,javascript",
|
|
57
75
|
"cpd:full": "jscpd ./src --threshold 2 --min-lines 3 --reporters console-full --format typescript,javascript",
|
|
58
|
-
"cpd:test": "jscpd ./test --threshold 2 --min-lines 3 --reporters console-full --format typescript,javascript"
|
|
76
|
+
"cpd:test": "jscpd ./test --threshold 2 --min-lines 3 --reporters console-full --format typescript,javascript",
|
|
77
|
+
"pack:check": "node scripts/pack-check.mjs && publint && attw --pack . --profile node16"
|
|
59
78
|
},
|
|
60
79
|
"dependencies": {
|
|
61
|
-
"@aws-sdk/client-dynamodb": "^3.
|
|
62
|
-
"@aws-sdk/lib-dynamodb": "^3.
|
|
80
|
+
"@aws-sdk/client-dynamodb": "^3.1132.0",
|
|
81
|
+
"@aws-sdk/lib-dynamodb": "^3.1132.0",
|
|
82
|
+
"@aws-sdk/util-dynamodb": "^3.996.9"
|
|
63
83
|
},
|
|
64
84
|
"peerDependencies": {
|
|
65
|
-
"@aws-sdk/client-s3": "^3.
|
|
66
|
-
"@langchain/core": "^1.2.
|
|
67
|
-
"@langchain/langgraph": "^1.3.2",
|
|
85
|
+
"@aws-sdk/client-s3": "^3.1132.0",
|
|
86
|
+
"@langchain/core": "^1.2.11",
|
|
68
87
|
"@langchain/langgraph-checkpoint": "^1.1.5"
|
|
69
88
|
},
|
|
70
|
-
"overrides": {
|
|
71
|
-
"uuid": ">=11.1.1"
|
|
72
|
-
},
|
|
73
89
|
"peerDependenciesMeta": {
|
|
74
90
|
"@aws-sdk/client-s3": {
|
|
75
91
|
"optional": true
|
|
76
92
|
}
|
|
77
93
|
},
|
|
78
94
|
"devDependencies": {
|
|
79
|
-
"@
|
|
95
|
+
"@arethetypeswrong/cli": "^0.18.5",
|
|
96
|
+
"@aws-sdk/client-s3": "^3.1132.0",
|
|
80
97
|
"@eslint/js": "^10.0.1",
|
|
81
|
-
"@langchain/aws": "^1.4.
|
|
98
|
+
"@langchain/aws": "^1.4.5",
|
|
99
|
+
"@langchain/langgraph": "^1.4.15",
|
|
100
|
+
"@langchain/langgraph-checkpoint-validation": "^1.1.1",
|
|
82
101
|
"@types/jest": "^30.0.0",
|
|
83
|
-
"@types/node": "^26.
|
|
102
|
+
"@types/node": "^26.5.1",
|
|
103
|
+
"@typescript/native": "npm:typescript@^7.0.2",
|
|
84
104
|
"aws-sdk-client-mock": "^4.1.0",
|
|
85
105
|
"depcheck": "^1.4.7",
|
|
86
|
-
"eslint": "^10.
|
|
106
|
+
"eslint": "^10.10.0",
|
|
87
107
|
"eslint-config-prettier": "^10.1.8",
|
|
88
108
|
"eslint-plugin-no-instanceof": "^1.0.1",
|
|
89
|
-
"eslint-plugin-perfectionist": "^5.
|
|
109
|
+
"eslint-plugin-perfectionist": "^5.11.0",
|
|
90
110
|
"eslint-plugin-prettier": "^5.5.6",
|
|
91
111
|
"eslint-plugin-unused-imports": "^4.4.1",
|
|
92
112
|
"expect-type": "^1.4.0",
|
|
93
|
-
"fast-check": "^4.
|
|
94
|
-
"jest": "^30.
|
|
95
|
-
"jest-
|
|
113
|
+
"fast-check": "^4.10.0",
|
|
114
|
+
"jest": "^30.5.1",
|
|
115
|
+
"jest-environment-node": "^30.5.1",
|
|
96
116
|
"jiti": "^2.7.0",
|
|
97
|
-
"jscpd": "^5.0
|
|
98
|
-
"knip": "^6.
|
|
117
|
+
"jscpd": "^5.2.0",
|
|
118
|
+
"knip": "^6.35.1",
|
|
119
|
+
"langchain": "^1.5.11",
|
|
99
120
|
"prettier": "^3.9.6",
|
|
121
|
+
"publint": "^0.3.24",
|
|
100
122
|
"ts-jest": "^29.4.12",
|
|
101
123
|
"ts-node": "^10.9.2",
|
|
102
124
|
"typedoc": "^0.28.20",
|
|
103
|
-
"typedoc-plugin-markdown": "^4.
|
|
125
|
+
"typedoc-plugin-markdown": "^4.13.0",
|
|
104
126
|
"typescript": "npm:@typescript/typescript6@^6.0.2",
|
|
105
|
-
"
|
|
106
|
-
"
|
|
107
|
-
"zod": "^4.4.3"
|
|
127
|
+
"typescript-eslint": "^8.70.0",
|
|
128
|
+
"zod": "^4.6.5"
|
|
108
129
|
},
|
|
109
130
|
"prettier": {
|
|
110
131
|
"semi": true,
|
|
@@ -117,5 +138,6 @@
|
|
|
117
138
|
"dist",
|
|
118
139
|
"LICENSE",
|
|
119
140
|
"README.md"
|
|
120
|
-
]
|
|
141
|
+
],
|
|
142
|
+
"sideEffects": false
|
|
121
143
|
}
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"delete-thread.d.ts","sourceRoot":"","sources":["../../../src/checkpointer/actions/delete-thread.ts"],"names":[],"mappings":"AAKA,OAAO,KAAK,EAAE,mBAAmB,EAAE,MAAM,mBAAmB,CAAC;AAY7D;;;;;GAKG;AACH,wBAAsB,YAAY,CAAC,OAAO,EAAE,mBAAmB,EAAE,QAAQ,EAAE,MAAM,GAAG,OAAO,CAAC,IAAI,CAAC,CAYhG"}
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"delete-thread.js","sourceRoot":"","sources":["../../../src/checkpointer/actions/delete-thread.ts"],"names":[],"mappings":";;;AACA,6EAA6E;AAE7E,2CAAuE;AACvE,6CAAmD;AAEnD,uDAA0D;AAE1D,+DAA+D;AAC/D,SAAS,aAAa,CAAC,GAAY;IACjC,OAAO;QACL,GAAG,CAAC,QAAyC;QAC7C,GAAG,CAAC,UAA2C;QAC/C,GAAG,CAAC,KAAsC;KAC3C,CAAC;AACJ,CAAC;AAED;;;;;GAKG;AACI,KAAK,uBAAuB,OAA4B,EAAE,QAAgB;IAC/E,IAAA,6BAAgB,EAAC,QAAQ,CAAC,CAAC;IAC3B,MAAM,IAAA,sCAAmB,EAAC;QACxB,MAAM,EAAE,OAAO,CAAC,MAAM;QACtB,SAAS,EAAE,OAAO,CAAC,SAAS;QAC5B,MAAM,EAAE,IAAA,sBAAc,EAAC,OAAO,CAAC,SAAS,EAAE,IAAA,mBAAY,EAAC,QAAQ,CAAC,EAAE,EAAE,UAAU,EAAE,IAAI,EAAE,CAAC;QACvF,MAAM,EAAE,OAAO,CAAC,MAAM;QACtB,SAAS,EAAE,OAAO,CAAC,SAAS;QAC5B,SAAS,EAAE,cAAc;QACzB,WAAW,EAAE,4BAAqB;QAClC,aAAa;KACd,CAAC,CAAC;AACL,CAAC"}
|
|
@@ -1 +0,0 @@
|
|
|
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 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"get-tuple.js","sourceRoot":"","sources":["../../../src/checkpointer/actions/get-tuple.ts"],"names":[],"mappings":";;;AAGA,mDAAqD;AACrD,2DAA4D;AAC5D,6CAAoD;AAGpD;;;;GAIG;AACI,KAAK,6BACV,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"}
|
|
@@ -1 +0,0 @@
|
|
|
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;AAU9F,OAAO,KAAK,EAAE,mBAAmB,EAAE,MAAM,mBAAmB,CAAC;AAyC7D;;;;GAIG;AACH,wBAAuB,eAAe,CACpC,OAAO,EAAE,mBAAmB,EAC5B,MAAM,EAAE,cAAc,EACtB,OAAO,CAAC,EAAE,qBAAqB,GAC9B,cAAc,CAAC,eAAe,CAAC,CAgDjC"}
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"list.js","sourceRoot":"","sources":["../../../src/checkpointer/actions/list.ts"],"names":[],"mappings":";;;AAGA,sDAAkE;AAClE,6DAA+D;AAC/D,mDAAqD;AACrD,2DAA4D;AAC5D,2DAA2E;AAC3E,yDAAuE;AACvE,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;;;;GAIG;AACH,SAAS,gBAAgB,CACvB,IAAwB,EACxB,YAAgC,EAChC,MAA0B;IAE1B,IAAI,YAAY,KAAK,SAAS,IAAI,IAAI,CAAC,YAAY,KAAK,YAAY;QAAE,OAAO,KAAK,CAAC;IACnF,OAAO,MAAM,KAAK,SAAS,IAAI,IAAI,CAAC,YAAY,GAAG,MAAM,CAAC;AAC5D,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,iBACpB,OAA4B,EAC5B,MAAsB,EACtB,OAA+B;IAE/B,MAAM,EAAE,QAAQ,EAAE,YAAY,EAAE,YAAY,EAAE,GAAG,IAAA,+BAAgB,EAAC,MAAM,CAAC,CAAC;IAC1E,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,OAAO,GAAG,CAAC,CAAC;IAChB;;;;;;;OAOG;IACH,IAAI,KAAK,EAAE,MAAM,GAAG,IAAI,IAAA,wBAAa,EAAC;QACpC,MAAM,EAAE,OAAO,CAAC,MAAM;QACtB,MAAM;QACN,QAAQ,EAAE,MAAM,CAAC,iBAAiB;QAClC,aAAa,EAAE,MAAM,CAAC,iBAAiB;KACxC,CAAC,EAAE,CAAC;QACH,OAAO,IAAI,CAAC,CAAC;QACb,IAAI,OAAO,KAAK,oCAAwB,EAAE,CAAC;YACzC,OAAO,CAAC,MAAM,CAAC,IAAI,CACjB,iFAAiF;gBAC/E,oEAAoE,EACtE,EAAE,QAAQ,EAAE,YAAY,EAAE,OAAO,EAAE,CACpC,CAAC;QACJ,CAAC;QACD,IAAI,KAAK,KAAK,SAAS,IAAI,OAAO,IAAI,KAAK;YAAE,OAAO;QACpD,MAAM,IAAI,GAAG,IAAA,4BAAc,EAAC,GAAG,CAAC,CAAC;QACjC,IAAI,CAAC,IAAI,EAAE,CAAC;YACV,OAAO,CAAC,MAAM,CAAC,IAAI,CAAC,wDAAwD,EAAE;gBAC5E,OAAO,EAAE,GAAG,CAAC,EAAY;aAC1B,CAAC,CAAC;YACH,SAAS;QACX,CAAC;QACD,IAAI,CAAC,gBAAgB,CAAC,IAAI,EAAE,YAAY,EAAE,MAAM,CAAC;YAAE,SAAS;QAC5D,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 +0,0 @@
|
|
|
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;AAWpE,OAAO,KAAK,EAAE,mBAAmB,EAAE,MAAM,mBAAmB,CAAC;AA2E7D;;;;;;;;;GASG;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,CA4Bf"}
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"put-writes.js","sourceRoot":"","sources":["../../../src/checkpointer/actions/put-writes.ts"],"names":[],"mappings":"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"}
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"put.d.ts","sourceRoot":"","sources":["../../../src/checkpointer/actions/put.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,cAAc,EAAE,MAAM,2BAA2B,CAAC;AAChE,OAAO,KAAK,EAAE,UAAU,EAAE,kBAAkB,EAAE,MAAM,iCAAiC,CAAC;AAQtF,OAAO,KAAK,EAAE,mBAAmB,EAAE,MAAM,mBAAmB,CAAC;AAG7D;;;;GAIG;AACH,wBAAsB,aAAa,CACjC,OAAO,EAAE,mBAAmB,EAC5B,MAAM,EAAE,cAAc,EACtB,UAAU,EAAE,UAAU,EACtB,QAAQ,EAAE,kBAAkB,GAC3B,OAAO,CAAC,cAAc,CAAC,CAwCzB"}
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"put.js","sourceRoot":"","sources":["../../../src/checkpointer/actions/put.ts"],"names":[],"mappings":";;;AAGA,wEAAmE;AACnE,2DAAiE;AACjE,uDAAgE;AAChE,qDAAoE;AACpE,2DAA4D;AAC5D,yDAA+D;AAE/D,uDAA8D;AAE9D;;;;GAIG;AACI,KAAK,wBACV,OAA4B,EAC5B,MAAsB,EACtB,UAAsB,EACtB,QAA4B;IAE5B,MAAM,EAAE,QAAQ,EAAE,YAAY,EAAE,YAAY,EAAE,kBAAkB,EAAE,GAAG,IAAA,+BAAgB,EAAC,MAAM,CAAC,CAAC;IAC9F,IAAA,iCAAoB,EAAC,UAAU,CAAC,EAAE,CAAC,CAAC;IACpC,MAAM,YAAY,GAAG,OAAO,CAAC,GAAG,CAAC,CAAC,CAAC,IAAA,2BAAqB,EAAC,OAAO,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC,SAAS,CAAC;IAClF,MAAM,EAAE,IAAI,EAAE,OAAO,EAAE,GAAG,MAAM,IAAA,kCAAoB,EAClD,OAAO,EACP,QAAQ,EACR,YAAY,EACZ,UAAU,EACV,QAAQ,EACR,kBAAkB,EAClB,YAAY,CACb,CAAC;IACF,IAAI,CAAC;QACH,MAAM,IAAA,yBAAiB,EAAC,GAAG,EAAE,CAC3B,OAAO,CAAC,MAAM,CAAC,aAAa,CAAC;YAC3B,aAAa,EAAE;gBACb,EAAE,GAAG,EAAE,EAAE,SAAS,EAAE,OAAO,CAAC,SAAS,EAAE,IAAI,EAAE,IAAI,EAAE,EAAE;gBACrD,EAAE,GAAG,EAAE,EAAE,SAAS,EAAE,OAAO,CAAC,SAAS,EAAE,IAAI,EAAE,OAAO,EAAE,EAAE;aACzD;SACF,CAAC,CACH,CAAC;IACJ,CAAC;IAAC,OAAO,KAAK,EAAE,CAAC;QACf,IAAI,OAAO,CAAC,SAAS,EAAE,CAAC;YACtB,MAAM,IAAA,0BAAgB,EACpB,OAAO,CAAC,SAAS,EACjB,IAAA,+BAAa,EAAC,CAAC,IAAI,CAAC,QAAQ,EAAE,OAAO,CAAC,UAAU,CAAC,CAAC,EAClD,KAAK,EACL,OAAO,CAAC,MAAM,CACf,CAAC;QACJ,CAAC;QACD,MAAM,KAAK,CAAC;IACd,CAAC;IACD,OAAO;QACL,YAAY,EAAE;YACZ,SAAS,EAAE,QAAQ;YACnB,aAAa,EAAE,YAAY;YAC3B,aAAa,EAAE,UAAU,CAAC,EAAE;SAC7B;KACF,CAAC;AACJ,CAAC"}
|
|
@@ -1,10 +0,0 @@
|
|
|
1
|
-
import type { CheckpointTuple } from '@langchain/langgraph-checkpoint';
|
|
2
|
-
import type { CheckpointMetaItem } from '../types';
|
|
3
|
-
import type { CheckpointerContext } from './setup';
|
|
4
|
-
/**
|
|
5
|
-
* Assemble a full {@link CheckpointTuple} from a META item: fetch and decode its
|
|
6
|
-
* payload, metadata, and pending writes, attaching a parent config when present.
|
|
7
|
-
* Returns undefined when the payload item is missing (inconsistent state).
|
|
8
|
-
*/
|
|
9
|
-
export declare function assembleTuple(context: CheckpointerContext, threadId: string, checkpointNs: string, meta: CheckpointMetaItem): Promise<CheckpointTuple | undefined>;
|
|
10
|
-
//# sourceMappingURL=assemble.d.ts.map
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"assemble.d.ts","sourceRoot":"","sources":["../../../src/checkpointer/internal/assemble.ts"],"names":[],"mappings":"AACA,OAAO,KAAK,EAAE,eAAe,EAAE,MAAM,iCAAiC,CAAC;AAEvE,OAAO,KAAK,EAAE,kBAAkB,EAAE,MAAM,UAAU,CAAC;AAGnD,OAAO,KAAK,EAAE,mBAAmB,EAAE,MAAM,SAAS,CAAC;AASnD;;;;GAIG;AACH,wBAAsB,aAAa,CACjC,OAAO,EAAE,mBAAmB,EAC5B,QAAQ,EAAE,MAAM,EAChB,YAAY,EAAE,MAAM,EACpB,IAAI,EAAE,kBAAkB,GACvB,OAAO,CAAC,eAAe,GAAG,SAAS,CAAC,CAkBtC"}
|
|
@@ -1,37 +0,0 @@
|
|
|
1
|
-
"use strict";
|
|
2
|
-
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
|
-
exports.assembleTuple = assembleTuple;
|
|
4
|
-
const fetch_1 = require("./fetch");
|
|
5
|
-
const item_reader_1 = require("./item-reader");
|
|
6
|
-
/** Build a config that addresses a specific checkpoint. */
|
|
7
|
-
function configFor(threadId, checkpointNs, checkpointId) {
|
|
8
|
-
return {
|
|
9
|
-
configurable: { thread_id: threadId, checkpoint_ns: checkpointNs, checkpoint_id: checkpointId },
|
|
10
|
-
};
|
|
11
|
-
}
|
|
12
|
-
/**
|
|
13
|
-
* Assemble a full {@link CheckpointTuple} from a META item: fetch and decode its
|
|
14
|
-
* payload, metadata, and pending writes, attaching a parent config when present.
|
|
15
|
-
* Returns undefined when the payload item is missing (inconsistent state).
|
|
16
|
-
*/
|
|
17
|
-
async function assembleTuple(context, threadId, checkpointNs, meta) {
|
|
18
|
-
const payload = await (0, fetch_1.fetchPayload)(context, threadId, checkpointNs, meta.checkpointId);
|
|
19
|
-
if (!payload)
|
|
20
|
-
return undefined;
|
|
21
|
-
const [checkpoint, metadata, pendingWrites] = await Promise.all([
|
|
22
|
-
(0, item_reader_1.readCheckpoint)(context, payload),
|
|
23
|
-
(0, item_reader_1.readMetadata)(context, meta),
|
|
24
|
-
(0, fetch_1.fetchPendingWrites)(context, threadId, checkpointNs, meta.checkpointId),
|
|
25
|
-
]);
|
|
26
|
-
const tuple = {
|
|
27
|
-
config: configFor(threadId, checkpointNs, meta.checkpointId),
|
|
28
|
-
checkpoint,
|
|
29
|
-
metadata,
|
|
30
|
-
pendingWrites,
|
|
31
|
-
};
|
|
32
|
-
if (meta.parentCheckpointId !== undefined) {
|
|
33
|
-
tuple.parentConfig = configFor(threadId, checkpointNs, meta.parentCheckpointId);
|
|
34
|
-
}
|
|
35
|
-
return tuple;
|
|
36
|
-
}
|
|
37
|
-
//# sourceMappingURL=assemble.js.map
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"assemble.js","sourceRoot":"","sources":["../../../src/checkpointer/internal/assemble.ts"],"names":[],"mappings":";;;AAIA,mCAA2D;AAC3D,+CAA6D;AAG7D,2DAA2D;AAC3D,SAAS,SAAS,CAAC,QAAgB,EAAE,YAAoB,EAAE,YAAoB;IAC7E,OAAO;QACL,YAAY,EAAE,EAAE,SAAS,EAAE,QAAQ,EAAE,aAAa,EAAE,YAAY,EAAE,aAAa,EAAE,YAAY,EAAE;KAChG,CAAC;AACJ,CAAC;AAED;;;;GAIG;AACI,KAAK,wBACV,OAA4B,EAC5B,QAAgB,EAChB,YAAoB,EACpB,IAAwB;IAExB,MAAM,OAAO,GAAG,MAAM,IAAA,oBAAY,EAAC,OAAO,EAAE,QAAQ,EAAE,YAAY,EAAE,IAAI,CAAC,YAAY,CAAC,CAAC;IACvF,IAAI,CAAC,OAAO;QAAE,OAAO,SAAS,CAAC;IAC/B,MAAM,CAAC,UAAU,EAAE,QAAQ,EAAE,aAAa,CAAC,GAAG,MAAM,OAAO,CAAC,GAAG,CAAC;QAC9D,IAAA,4BAAc,EAAC,OAAO,EAAE,OAAO,CAAC;QAChC,IAAA,0BAAY,EAAC,OAAO,EAAE,IAAI,CAAC;QAC3B,IAAA,0BAAkB,EAAC,OAAO,EAAE,QAAQ,EAAE,YAAY,EAAE,IAAI,CAAC,YAAY,CAAC;KACvE,CAAC,CAAC;IACH,MAAM,KAAK,GAAoB;QAC7B,MAAM,EAAE,SAAS,CAAC,QAAQ,EAAE,YAAY,EAAE,IAAI,CAAC,YAAY,CAAC;QAC5D,UAAU;QACV,QAAQ;QACR,aAAa;KACd,CAAC;IACF,IAAI,IAAI,CAAC,kBAAkB,KAAK,SAAS,EAAE,CAAC;QAC1C,KAAK,CAAC,YAAY,GAAG,SAAS,CAAC,QAAQ,EAAE,YAAY,EAAE,IAAI,CAAC,kBAAkB,CAAC,CAAC;IAClF,CAAC;IACD,OAAO,KAAK,CAAC;AACf,CAAC"}
|
|
@@ -1,13 +0,0 @@
|
|
|
1
|
-
import type { RunnableConfig } from '@langchain/core/runnables';
|
|
2
|
-
/** The thread/namespace/checkpoint identifiers extracted from a config. */
|
|
3
|
-
export interface ResolvedConfigurable {
|
|
4
|
-
threadId: string;
|
|
5
|
-
checkpointNs: string;
|
|
6
|
-
checkpointId?: string;
|
|
7
|
-
}
|
|
8
|
-
/**
|
|
9
|
-
* Narrow `RunnableConfig.configurable` to the identifiers the saver needs,
|
|
10
|
-
* defaulting the namespace to empty and validating that a thread id is present.
|
|
11
|
-
*/
|
|
12
|
-
export declare function readConfigurable(config: RunnableConfig): ResolvedConfigurable;
|
|
13
|
-
//# sourceMappingURL=configurable.d.ts.map
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"configurable.d.ts","sourceRoot":"","sources":["../../../src/checkpointer/internal/configurable.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,cAAc,EAAE,MAAM,2BAA2B,CAAC;AAKhE,2EAA2E;AAC3E,MAAM,WAAW,oBAAoB;IACnC,QAAQ,EAAE,MAAM,CAAC;IACjB,YAAY,EAAE,MAAM,CAAC;IACrB,YAAY,CAAC,EAAE,MAAM,CAAC;CACvB;AAED;;;GAGG;AACH,wBAAgB,gBAAgB,CAAC,MAAM,EAAE,cAAc,GAAG,oBAAoB,CAa7E"}
|
|
@@ -1,23 +0,0 @@
|
|
|
1
|
-
"use strict";
|
|
2
|
-
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
|
-
exports.readConfigurable = readConfigurable;
|
|
4
|
-
const validation_1 = require("./validation");
|
|
5
|
-
/**
|
|
6
|
-
* Narrow `RunnableConfig.configurable` to the identifiers the saver needs,
|
|
7
|
-
* defaulting the namespace to empty and validating that a thread id is present.
|
|
8
|
-
*/
|
|
9
|
-
function readConfigurable(config) {
|
|
10
|
-
const configurable = (config.configurable ?? {});
|
|
11
|
-
(0, validation_1.validateThreadId)(configurable.thread_id);
|
|
12
|
-
const checkpointNs = configurable.checkpoint_ns ?? '';
|
|
13
|
-
(0, validation_1.validateCheckpointNs)(checkpointNs);
|
|
14
|
-
if (configurable.checkpoint_id !== undefined) {
|
|
15
|
-
(0, validation_1.validateCheckpointId)(configurable.checkpoint_id);
|
|
16
|
-
}
|
|
17
|
-
return {
|
|
18
|
-
threadId: configurable.thread_id,
|
|
19
|
-
checkpointNs,
|
|
20
|
-
checkpointId: configurable.checkpoint_id,
|
|
21
|
-
};
|
|
22
|
-
}
|
|
23
|
-
//# sourceMappingURL=configurable.js.map
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"configurable.js","sourceRoot":"","sources":["../../../src/checkpointer/internal/configurable.ts"],"names":[],"mappings":";;;AAGA,6CAA4F;AAS5F;;;GAGG;AACH,0BAAiC,MAAsB;IACrD,MAAM,YAAY,GAAG,CAAC,MAAM,CAAC,YAAY,IAAI,EAAE,CAA2B,CAAC;IAC3E,IAAA,6BAAgB,EAAC,YAAY,CAAC,SAAS,CAAC,CAAC;IACzC,MAAM,YAAY,GAAG,YAAY,CAAC,aAAa,IAAI,EAAE,CAAC;IACtD,IAAA,iCAAoB,EAAC,YAAY,CAAC,CAAC;IACnC,IAAI,YAAY,CAAC,aAAa,KAAK,SAAS,EAAE,CAAC;QAC7C,IAAA,iCAAoB,EAAC,YAAY,CAAC,aAAa,CAAC,CAAC;IACnD,CAAC;IACD,OAAO;QACL,QAAQ,EAAE,YAAY,CAAC,SAAS;QAChC,YAAY;QACZ,YAAY,EAAE,YAAY,CAAC,aAAa;KACzC,CAAC;AACJ,CAAC"}
|
|
@@ -1,10 +0,0 @@
|
|
|
1
|
-
import type { CheckpointPendingWrite } from '@langchain/langgraph-checkpoint';
|
|
2
|
-
import type { CheckpointMetaItem, CheckpointPayloadItem } from '../types';
|
|
3
|
-
import type { CheckpointerContext } from './setup';
|
|
4
|
-
/** Fetch the target META item: by id when given, else the newest in the namespace. */
|
|
5
|
-
export declare function fetchTargetMeta(context: CheckpointerContext, threadId: string, checkpointNs: string, checkpointId?: string): Promise<CheckpointMetaItem | undefined>;
|
|
6
|
-
/** Fetch the PAYLOAD item for a checkpoint. */
|
|
7
|
-
export declare function fetchPayload(context: CheckpointerContext, threadId: string, checkpointNs: string, checkpointId: string): Promise<CheckpointPayloadItem | undefined>;
|
|
8
|
-
/** Fetch and decode every pending write for a checkpoint, in write order. */
|
|
9
|
-
export declare function fetchPendingWrites(context: CheckpointerContext, threadId: string, checkpointNs: string, checkpointId: string): Promise<CheckpointPendingWrite[]>;
|
|
10
|
-
//# sourceMappingURL=fetch.d.ts.map
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"fetch.d.ts","sourceRoot":"","sources":["../../../src/checkpointer/internal/fetch.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,sBAAsB,EAAE,MAAM,iCAAiC,CAAC;AAI9E,OAAO,KAAK,EAAE,kBAAkB,EAAE,qBAAqB,EAAuB,MAAM,UAAU,CAAC;AAU/F,OAAO,KAAK,EAAE,mBAAmB,EAAE,MAAM,SAAS,CAAC;AAEnD,sFAAsF;AACtF,wBAAsB,eAAe,CACnC,OAAO,EAAE,mBAAmB,EAC5B,QAAQ,EAAE,MAAM,EAChB,YAAY,EAAE,MAAM,EACpB,YAAY,CAAC,EAAE,MAAM,GACpB,OAAO,CAAC,kBAAkB,GAAG,SAAS,CAAC,CAsBzC;AAED,+CAA+C;AAC/C,wBAAsB,YAAY,CAChC,OAAO,EAAE,mBAAmB,EAC5B,QAAQ,EAAE,MAAM,EAChB,YAAY,EAAE,MAAM,EACpB,YAAY,EAAE,MAAM,GACnB,OAAO,CAAC,qBAAqB,GAAG,SAAS,CAAC,CAS5C;AAED,6EAA6E;AAC7E,wBAAsB,kBAAkB,CACtC,OAAO,EAAE,mBAAmB,EAC5B,QAAQ,EAAE,MAAM,EAChB,YAAY,EAAE,MAAM,EACpB,YAAY,EAAE,MAAM,GACnB,OAAO,CAAC,sBAAsB,EAAE,CAAC,CAYnC"}
|
|
@@ -1,46 +0,0 @@
|
|
|
1
|
-
"use strict";
|
|
2
|
-
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
|
-
exports.fetchTargetMeta = fetchTargetMeta;
|
|
4
|
-
exports.fetchPayload = fetchPayload;
|
|
5
|
-
exports.fetchPendingWrites = fetchPendingWrites;
|
|
6
|
-
const paginate_1 = require("../../shared/dynamodb/paginate");
|
|
7
|
-
const retry_1 = require("../../shared/dynamodb/retry");
|
|
8
|
-
const item_reader_1 = require("./item-reader");
|
|
9
|
-
const keys_1 = require("./keys");
|
|
10
|
-
const query_1 = require("./query");
|
|
11
|
-
/** Fetch the target META item: by id when given, else the newest in the namespace. */
|
|
12
|
-
async function fetchTargetMeta(context, threadId, checkpointNs, checkpointId) {
|
|
13
|
-
if (checkpointId !== undefined) {
|
|
14
|
-
const result = await (0, retry_1.withDynamoDBRetry)(() => context.client.get({
|
|
15
|
-
TableName: context.tableName,
|
|
16
|
-
Key: { PK: (0, keys_1.partitionKey)(threadId), SK: (0, keys_1.metaSortKey)(checkpointNs, checkpointId) },
|
|
17
|
-
ConsistentRead: true,
|
|
18
|
-
}));
|
|
19
|
-
return result.Item;
|
|
20
|
-
}
|
|
21
|
-
const params = (0, query_1.beginsWithQuery)(context.tableName, (0, keys_1.partitionKey)(threadId), (0, keys_1.metaSortKeyPrefix)(checkpointNs), {
|
|
22
|
-
limit: 1,
|
|
23
|
-
consistent: true,
|
|
24
|
-
});
|
|
25
|
-
const result = await (0, retry_1.withDynamoDBRetry)(() => context.client.query(params));
|
|
26
|
-
return result.Items?.[0];
|
|
27
|
-
}
|
|
28
|
-
/** Fetch the PAYLOAD item for a checkpoint. */
|
|
29
|
-
async function fetchPayload(context, threadId, checkpointNs, checkpointId) {
|
|
30
|
-
const result = await (0, retry_1.withDynamoDBRetry)(() => context.client.get({
|
|
31
|
-
TableName: context.tableName,
|
|
32
|
-
Key: { PK: (0, keys_1.partitionKey)(threadId), SK: (0, keys_1.payloadSortKey)(checkpointNs, checkpointId) },
|
|
33
|
-
ConsistentRead: true,
|
|
34
|
-
}));
|
|
35
|
-
return result.Item;
|
|
36
|
-
}
|
|
37
|
-
/** Fetch and decode every pending write for a checkpoint, in write order. */
|
|
38
|
-
async function fetchPendingWrites(context, threadId, checkpointNs, checkpointId) {
|
|
39
|
-
const params = (0, query_1.beginsWithQuery)(context.tableName, (0, keys_1.partitionKey)(threadId), (0, keys_1.writeSortKeyPrefix)(checkpointNs, checkpointId), { ascending: true, consistent: true });
|
|
40
|
-
const items = [];
|
|
41
|
-
for await (const item of (0, paginate_1.paginateQuery)({ client: context.client, params })) {
|
|
42
|
-
items.push(item);
|
|
43
|
-
}
|
|
44
|
-
return (0, item_reader_1.toPendingWrites)(context, items);
|
|
45
|
-
}
|
|
46
|
-
//# sourceMappingURL=fetch.js.map
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"fetch.js","sourceRoot":"","sources":["../../../src/checkpointer/internal/fetch.ts"],"names":[],"mappings":";;;;;AAEA,6DAA+D;AAC/D,uDAAgE;AAEhE,+CAAgD;AAChD,iCAMgB;AAChB,mCAA0C;AAG1C,sFAAsF;AAC/E,KAAK,0BACV,OAA4B,EAC5B,QAAgB,EAChB,YAAoB,EACpB,YAAqB;IAErB,IAAI,YAAY,KAAK,SAAS,EAAE,CAAC;QAC/B,MAAM,MAAM,GAAG,MAAM,IAAA,yBAAiB,EAAC,GAAG,EAAE,CAC1C,OAAO,CAAC,MAAM,CAAC,GAAG,CAAC;YACjB,SAAS,EAAE,OAAO,CAAC,SAAS;YAC5B,GAAG,EAAE,EAAE,EAAE,EAAE,IAAA,mBAAY,EAAC,QAAQ,CAAC,EAAE,EAAE,EAAE,IAAA,kBAAW,EAAC,YAAY,EAAE,YAAY,CAAC,EAAE;YAChF,cAAc,EAAE,IAAI;SACrB,CAAC,CACH,CAAC;QACF,OAAO,MAAM,CAAC,IAAsC,CAAC;IACvD,CAAC;IACD,MAAM,MAAM,GAAG,IAAA,uBAAe,EAC5B,OAAO,CAAC,SAAS,EACjB,IAAA,mBAAY,EAAC,QAAQ,CAAC,EACtB,IAAA,wBAAiB,EAAC,YAAY,CAAC,EAC/B;QACE,KAAK,EAAE,CAAC;QACR,UAAU,EAAE,IAAI;KACjB,CACF,CAAC;IACF,MAAM,MAAM,GAAG,MAAM,IAAA,yBAAiB,EAAC,GAAG,EAAE,CAAC,OAAO,CAAC,MAAM,CAAC,KAAK,CAAC,MAAM,CAAC,CAAC,CAAC;IAC3E,OAAO,MAAM,CAAC,KAAK,EAAE,CAAC,CAAC,CAAmC,CAAC;AAC7D,CAAC;AAED,+CAA+C;AACxC,KAAK,uBACV,OAA4B,EAC5B,QAAgB,EAChB,YAAoB,EACpB,YAAoB;IAEpB,MAAM,MAAM,GAAG,MAAM,IAAA,yBAAiB,EAAC,GAAG,EAAE,CAC1C,OAAO,CAAC,MAAM,CAAC,GAAG,CAAC;QACjB,SAAS,EAAE,OAAO,CAAC,SAAS;QAC5B,GAAG,EAAE,EAAE,EAAE,EAAE,IAAA,mBAAY,EAAC,QAAQ,CAAC,EAAE,EAAE,EAAE,IAAA,qBAAc,EAAC,YAAY,EAAE,YAAY,CAAC,EAAE;QACnF,cAAc,EAAE,IAAI;KACrB,CAAC,CACH,CAAC;IACF,OAAO,MAAM,CAAC,IAAyC,CAAC;AAC1D,CAAC;AAED,6EAA6E;AACtE,KAAK,6BACV,OAA4B,EAC5B,QAAgB,EAChB,YAAoB,EACpB,YAAoB;IAEpB,MAAM,MAAM,GAAG,IAAA,uBAAe,EAC5B,OAAO,CAAC,SAAS,EACjB,IAAA,mBAAY,EAAC,QAAQ,CAAC,EACtB,IAAA,yBAAkB,EAAC,YAAY,EAAE,YAAY,CAAC,EAC9C,EAAE,SAAS,EAAE,IAAI,EAAE,UAAU,EAAE,IAAI,EAAE,CACtC,CAAC;IACF,MAAM,KAAK,GAA0B,EAAE,CAAC;IACxC,IAAI,KAAK,EAAE,MAAM,IAAI,IAAI,IAAA,wBAAa,EAAC,EAAE,MAAM,EAAE,OAAO,CAAC,MAAM,EAAE,MAAM,EAAE,CAAC,EAAE,CAAC;QAC3E,KAAK,CAAC,IAAI,CAAC,IAA2B,CAAC,CAAC;IAC1C,CAAC;IACD,OAAO,IAAA,6BAAe,EAAC,OAAO,EAAE,KAAK,CAAC,CAAC;AACzC,CAAC"}
|
|
@@ -1,12 +0,0 @@
|
|
|
1
|
-
/** A JSON-comparable value used in metadata filters. */
|
|
2
|
-
export type FilterValue = string | number | boolean | null | FilterValue[] | {
|
|
3
|
-
[key: string]: FilterValue;
|
|
4
|
-
};
|
|
5
|
-
/**
|
|
6
|
-
* True when every key in `filter` is present in `metadata` with a deeply equal
|
|
7
|
-
* value. Equality is structural and key-order-independent for nested objects,
|
|
8
|
-
* order-significant for arrays, and type-strict (no `3` vs `'3'` coercion). An
|
|
9
|
-
* empty filter matches everything.
|
|
10
|
-
*/
|
|
11
|
-
export declare function matchesFilter(metadata: Record<string, FilterValue>, filter: Record<string, FilterValue>): boolean;
|
|
12
|
-
//# sourceMappingURL=filter-match.d.ts.map
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"filter-match.d.ts","sourceRoot":"","sources":["../../../src/checkpointer/internal/filter-match.ts"],"names":[],"mappings":"AAEA,wDAAwD;AACxD,MAAM,MAAM,WAAW,GACrB,MAAM,GAAG,MAAM,GAAG,OAAO,GAAG,IAAI,GAAG,WAAW,EAAE,GAAG;IAAE,CAAC,GAAG,EAAE,MAAM,GAAG,WAAW,CAAA;CAAE,CAAC;AAEpF;;;;;GAKG;AACH,wBAAgB,aAAa,CAC3B,QAAQ,EAAE,MAAM,CAAC,MAAM,EAAE,WAAW,CAAC,EACrC,MAAM,EAAE,MAAM,CAAC,MAAM,EAAE,WAAW,CAAC,GAClC,OAAO,CAET"}
|
|
@@ -1,14 +0,0 @@
|
|
|
1
|
-
"use strict";
|
|
2
|
-
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
|
-
exports.matchesFilter = matchesFilter;
|
|
4
|
-
const node_util_1 = require("node:util");
|
|
5
|
-
/**
|
|
6
|
-
* True when every key in `filter` is present in `metadata` with a deeply equal
|
|
7
|
-
* value. Equality is structural and key-order-independent for nested objects,
|
|
8
|
-
* order-significant for arrays, and type-strict (no `3` vs `'3'` coercion). An
|
|
9
|
-
* empty filter matches everything.
|
|
10
|
-
*/
|
|
11
|
-
function matchesFilter(metadata, filter) {
|
|
12
|
-
return Object.entries(filter).every(([key, value]) => (0, node_util_1.isDeepStrictEqual)(metadata[key], value));
|
|
13
|
-
}
|
|
14
|
-
//# sourceMappingURL=filter-match.js.map
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"filter-match.js","sourceRoot":"","sources":["../../../src/checkpointer/internal/filter-match.ts"],"names":[],"mappings":";;;AAAA,yCAA8C;AAM9C;;;;;GAKG;AACH,uBACE,QAAqC,EACrC,MAAmC;IAEnC,OAAO,MAAM,CAAC,OAAO,CAAC,MAAM,CAAC,CAAC,KAAK,CAAC,CAAC,CAAC,GAAG,EAAE,KAAK,CAAC,EAAE,EAAE,CAAC,IAAA,6BAAiB,EAAC,QAAQ,CAAC,GAAG,CAAC,EAAE,KAAK,CAAC,CAAC,CAAC;AACjG,CAAC"}
|
|
@@ -1,55 +0,0 @@
|
|
|
1
|
-
import type { Checkpoint, CheckpointMetadata, CheckpointPendingWrite } from '@langchain/langgraph-checkpoint';
|
|
2
|
-
import type { DocItem } from '../../shared/dynamodb/types';
|
|
3
|
-
import type { CheckpointMetaItem, CheckpointPayloadItem, CheckpointWriteItem } from '../types';
|
|
4
|
-
import type { CheckpointerContext } from './setup';
|
|
5
|
-
/**
|
|
6
|
-
* Narrow a raw row to a {@link CheckpointMetaItem}, or `undefined` for a row
|
|
7
|
-
* that merely shares the `META#` sort-key prefix. Replaces an unchecked cast
|
|
8
|
-
* at the one boundary where a row may not have been written by this adapter.
|
|
9
|
-
*/
|
|
10
|
-
export declare function narrowMetaItem(raw: DocItem): CheckpointMetaItem | undefined;
|
|
11
|
-
/** Decode the checkpoint stored in a PAYLOAD item. */
|
|
12
|
-
export declare function readCheckpoint(context: CheckpointerContext, item: CheckpointPayloadItem): Promise<Checkpoint>;
|
|
13
|
-
/** Decode the metadata stored in a META item. */
|
|
14
|
-
export declare function readMetadata(context: CheckpointerContext, item: CheckpointMetaItem): Promise<CheckpointMetadata>;
|
|
15
|
-
/**
|
|
16
|
-
* Drop rows a later `putWrites` call added for a task and channel an earlier
|
|
17
|
-
* call had already committed.
|
|
18
|
-
*
|
|
19
|
-
* A regular write's index is its position in the caller's array, so a retried
|
|
20
|
-
* task whose write mix changed can place an already-committed channel at a
|
|
21
|
-
* second index — a new row, which would replay that channel's value twice. For
|
|
22
|
-
* an accumulating channel (a `messages` add-reducer, a Topic) that
|
|
23
|
-
* double-counts. Every row carries the `writeGroup` of the call that wrote it,
|
|
24
|
-
* which distinguishes that case from a channel a *single* call legitimately
|
|
25
|
-
* wrote more than once (a task emitting two Sends), where both values must
|
|
26
|
-
* survive.
|
|
27
|
-
*
|
|
28
|
-
* Write groups are time-ordered ULIDs, so the smallest one for a `(task,
|
|
29
|
-
* channel)` pair identifies the earliest committed call — first-write-wins,
|
|
30
|
-
* the same rule the write-side guard applies, extended to the case the guard
|
|
31
|
-
* cannot see. Selecting by *order encountered* would not do: rows arrive
|
|
32
|
-
* sorted by index, and a retry emitting fewer writes moves an
|
|
33
|
-
* already-committed channel to a smaller index, where it sorts ahead of the
|
|
34
|
-
* original row and would hand back the later call's value instead. The
|
|
35
|
-
* superseded row stays in DynamoDB and is removed by `deleteThread` or TTL
|
|
36
|
-
* like any other.
|
|
37
|
-
*
|
|
38
|
-
* Identity is `(task, channel, occurrence)`, not `(task, channel)`. Keying on
|
|
39
|
-
* the channel alone treated *any* second row for a channel as a superseding
|
|
40
|
-
* duplicate — including one a retry added at an occurrence no earlier call had
|
|
41
|
-
* ever written, which the write-side guard accepted cleanly. That row was then
|
|
42
|
-
* discarded on read, silently returning fewer values than were written, with
|
|
43
|
-
* `putWrites()` having reported success. For that specific shape — a retry
|
|
44
|
-
* that legitimately emits a channel *more* often than the original call —
|
|
45
|
-
* keeping the occurrence restores the upstream outcome: `MemorySaver` keys
|
|
46
|
-
* first-write-wins on `(taskId, idx)`, so a grown retry keeps both values
|
|
47
|
-
* there too. That is not a claim of parity in general: a retry that reorders
|
|
48
|
-
* or shrinks its writes is still resolved to the earliest call per `(task,
|
|
49
|
-
* channel, occurrence)` as above, which is what keeps an accumulating channel
|
|
50
|
-
* from being double-counted — a case `MemorySaver` does not have to handle.
|
|
51
|
-
*/
|
|
52
|
-
export declare function dropSupersededWrites(items: CheckpointWriteItem[]): CheckpointWriteItem[];
|
|
53
|
-
/** Decode WRITE items into `[taskId, channel, value]` pending-write tuples. */
|
|
54
|
-
export declare function toPendingWrites(context: CheckpointerContext, items: CheckpointWriteItem[]): Promise<CheckpointPendingWrite[]>;
|
|
55
|
-
//# sourceMappingURL=item-reader.d.ts.map
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"item-reader.d.ts","sourceRoot":"","sources":["../../../src/checkpointer/internal/item-reader.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EACV,UAAU,EACV,kBAAkB,EAClB,sBAAsB,EACvB,MAAM,iCAAiC,CAAC;AAGzC,OAAO,KAAK,EAAE,OAAO,EAAE,MAAM,6BAA6B,CAAC;AAC3D,OAAO,KAAK,EAAE,kBAAkB,EAAE,qBAAqB,EAAE,mBAAmB,EAAE,MAAM,UAAU,CAAC;AAE/F,OAAO,KAAK,EAAE,mBAAmB,EAAE,MAAM,SAAS,CAAC;AAEnD;;;;GAIG;AACH,wBAAgB,cAAc,CAAC,GAAG,EAAE,OAAO,GAAG,kBAAkB,GAAG,SAAS,CAM3E;AAED,sDAAsD;AACtD,wBAAsB,cAAc,CAClC,OAAO,EAAE,mBAAmB,EAC5B,IAAI,EAAE,qBAAqB,GAC1B,OAAO,CAAC,UAAU,CAAC,CAErB;AAED,iDAAiD;AACjD,wBAAsB,YAAY,CAChC,OAAO,EAAE,mBAAmB,EAC5B,IAAI,EAAE,kBAAkB,GACvB,OAAO,CAAC,kBAAkB,CAAC,CAE7B;AAED;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;GAoCG;AACH,wBAAgB,oBAAoB,CAAC,KAAK,EAAE,mBAAmB,EAAE,GAAG,mBAAmB,EAAE,CAUxF;AAED,+EAA+E;AAC/E,wBAAsB,eAAe,CACnC,OAAO,EAAE,mBAAmB,EAC5B,KAAK,EAAE,mBAAmB,EAAE,GAC3B,OAAO,CAAC,sBAAsB,EAAE,CAAC,CAQnC"}
|
|
@@ -1,88 +0,0 @@
|
|
|
1
|
-
"use strict";
|
|
2
|
-
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
|
-
exports.narrowMetaItem = narrowMetaItem;
|
|
4
|
-
exports.readCheckpoint = readCheckpoint;
|
|
5
|
-
exports.readMetadata = readMetadata;
|
|
6
|
-
exports.dropSupersededWrites = dropSupersededWrites;
|
|
7
|
-
exports.toPendingWrites = toPendingWrites;
|
|
8
|
-
const codec_1 = require("../../shared/codec/codec");
|
|
9
|
-
const item_writer_1 = require("./item-writer");
|
|
10
|
-
/**
|
|
11
|
-
* Narrow a raw row to a {@link CheckpointMetaItem}, or `undefined` for a row
|
|
12
|
-
* that merely shares the `META#` sort-key prefix. Replaces an unchecked cast
|
|
13
|
-
* at the one boundary where a row may not have been written by this adapter.
|
|
14
|
-
*/
|
|
15
|
-
function narrowMetaItem(raw) {
|
|
16
|
-
return typeof raw.checkpointId === 'string' &&
|
|
17
|
-
typeof raw.checkpointNs === 'string' &&
|
|
18
|
-
raw.metadata !== undefined
|
|
19
|
-
? raw
|
|
20
|
-
: undefined;
|
|
21
|
-
}
|
|
22
|
-
/** Decode the checkpoint stored in a PAYLOAD item. */
|
|
23
|
-
async function readCheckpoint(context, item) {
|
|
24
|
-
return (0, codec_1.decodePayload)(item.checkpoint, (0, item_writer_1.codecDeps)(context));
|
|
25
|
-
}
|
|
26
|
-
/** Decode the metadata stored in a META item. */
|
|
27
|
-
async function readMetadata(context, item) {
|
|
28
|
-
return (0, codec_1.decodePayload)(item.metadata, (0, item_writer_1.codecDeps)(context));
|
|
29
|
-
}
|
|
30
|
-
/**
|
|
31
|
-
* Drop rows a later `putWrites` call added for a task and channel an earlier
|
|
32
|
-
* call had already committed.
|
|
33
|
-
*
|
|
34
|
-
* A regular write's index is its position in the caller's array, so a retried
|
|
35
|
-
* task whose write mix changed can place an already-committed channel at a
|
|
36
|
-
* second index — a new row, which would replay that channel's value twice. For
|
|
37
|
-
* an accumulating channel (a `messages` add-reducer, a Topic) that
|
|
38
|
-
* double-counts. Every row carries the `writeGroup` of the call that wrote it,
|
|
39
|
-
* which distinguishes that case from a channel a *single* call legitimately
|
|
40
|
-
* wrote more than once (a task emitting two Sends), where both values must
|
|
41
|
-
* survive.
|
|
42
|
-
*
|
|
43
|
-
* Write groups are time-ordered ULIDs, so the smallest one for a `(task,
|
|
44
|
-
* channel)` pair identifies the earliest committed call — first-write-wins,
|
|
45
|
-
* the same rule the write-side guard applies, extended to the case the guard
|
|
46
|
-
* cannot see. Selecting by *order encountered* would not do: rows arrive
|
|
47
|
-
* sorted by index, and a retry emitting fewer writes moves an
|
|
48
|
-
* already-committed channel to a smaller index, where it sorts ahead of the
|
|
49
|
-
* original row and would hand back the later call's value instead. The
|
|
50
|
-
* superseded row stays in DynamoDB and is removed by `deleteThread` or TTL
|
|
51
|
-
* like any other.
|
|
52
|
-
*
|
|
53
|
-
* Identity is `(task, channel, occurrence)`, not `(task, channel)`. Keying on
|
|
54
|
-
* the channel alone treated *any* second row for a channel as a superseding
|
|
55
|
-
* duplicate — including one a retry added at an occurrence no earlier call had
|
|
56
|
-
* ever written, which the write-side guard accepted cleanly. That row was then
|
|
57
|
-
* discarded on read, silently returning fewer values than were written, with
|
|
58
|
-
* `putWrites()` having reported success. For that specific shape — a retry
|
|
59
|
-
* that legitimately emits a channel *more* often than the original call —
|
|
60
|
-
* keeping the occurrence restores the upstream outcome: `MemorySaver` keys
|
|
61
|
-
* first-write-wins on `(taskId, idx)`, so a grown retry keeps both values
|
|
62
|
-
* there too. That is not a claim of parity in general: a retry that reorders
|
|
63
|
-
* or shrinks its writes is still resolved to the earliest call per `(task,
|
|
64
|
-
* channel, occurrence)` as above, which is what keeps an accumulating channel
|
|
65
|
-
* from being double-counted — a case `MemorySaver` does not have to handle.
|
|
66
|
-
*/
|
|
67
|
-
function dropSupersededWrites(items) {
|
|
68
|
-
const identity = (item) => JSON.stringify([item.taskId, item.channel, item.occurrence ?? 0]);
|
|
69
|
-
const earliestGroup = new Map();
|
|
70
|
-
for (const item of items) {
|
|
71
|
-
const id = identity(item);
|
|
72
|
-
const seen = earliestGroup.get(id);
|
|
73
|
-
if (seen === undefined || item.writeGroup < seen)
|
|
74
|
-
earliestGroup.set(id, item.writeGroup);
|
|
75
|
-
}
|
|
76
|
-
return items.filter((item) => earliestGroup.get(identity(item)) === item.writeGroup);
|
|
77
|
-
}
|
|
78
|
-
/** Decode WRITE items into `[taskId, channel, value]` pending-write tuples. */
|
|
79
|
-
async function toPendingWrites(context, items) {
|
|
80
|
-
const deps = (0, item_writer_1.codecDeps)(context);
|
|
81
|
-
const pending = [];
|
|
82
|
-
for (const item of dropSupersededWrites(items)) {
|
|
83
|
-
const value = await (0, codec_1.decodePayload)(item.value, deps);
|
|
84
|
-
pending.push([item.taskId, item.channel, value]);
|
|
85
|
-
}
|
|
86
|
-
return pending;
|
|
87
|
-
}
|
|
88
|
-
//# sourceMappingURL=item-reader.js.map
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"item-reader.js","sourceRoot":"","sources":["../../../src/checkpointer/internal/item-reader.ts"],"names":[],"mappings":";;;;;;;AAMA,oDAAyD;AAGzD,+CAA0C;AAG1C;;;;GAIG;AACH,wBAA+B,GAAY;IACzC,OAAO,OAAO,GAAG,CAAC,YAAY,KAAK,QAAQ;QACzC,OAAO,GAAG,CAAC,YAAY,KAAK,QAAQ;QACpC,GAAG,CAAC,QAAQ,KAAK,SAAS;QAC1B,CAAC,CAAE,GAA0B;QAC7B,CAAC,CAAC,SAAS,CAAC;AAChB,CAAC;AAED,sDAAsD;AAC/C,KAAK,yBACV,OAA4B,EAC5B,IAA2B;IAE3B,OAAO,IAAA,qBAAa,EAAa,IAAI,CAAC,UAAU,EAAE,IAAA,uBAAS,EAAC,OAAO,CAAC,CAAC,CAAC;AACxE,CAAC;AAED,iDAAiD;AAC1C,KAAK,uBACV,OAA4B,EAC5B,IAAwB;IAExB,OAAO,IAAA,qBAAa,EAAqB,IAAI,CAAC,QAAQ,EAAE,IAAA,uBAAS,EAAC,OAAO,CAAC,CAAC,CAAC;AAC9E,CAAC;AAED;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;GAoCG;AACH,8BAAqC,KAA4B;IAC/D,MAAM,QAAQ,GAAG,CAAC,IAAyB,EAAU,EAAE,CACrD,IAAI,CAAC,SAAS,CAAC,CAAC,IAAI,CAAC,MAAM,EAAE,IAAI,CAAC,OAAO,EAAE,IAAI,CAAC,UAAU,IAAI,CAAC,CAAC,CAAC,CAAC;IACpE,MAAM,aAAa,GAAG,IAAI,GAAG,EAAkB,CAAC;IAChD,KAAK,MAAM,IAAI,IAAI,KAAK,EAAE,CAAC;QACzB,MAAM,EAAE,GAAG,QAAQ,CAAC,IAAI,CAAC,CAAC;QAC1B,MAAM,IAAI,GAAG,aAAa,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC;QACnC,IAAI,IAAI,KAAK,SAAS,IAAI,IAAI,CAAC,UAAU,GAAG,IAAI;YAAE,aAAa,CAAC,GAAG,CAAC,EAAE,EAAE,IAAI,CAAC,UAAU,CAAC,CAAC;IAC3F,CAAC;IACD,OAAO,KAAK,CAAC,MAAM,CAAC,CAAC,IAAI,EAAE,EAAE,CAAC,aAAa,CAAC,GAAG,CAAC,QAAQ,CAAC,IAAI,CAAC,CAAC,KAAK,IAAI,CAAC,UAAU,CAAC,CAAC;AACvF,CAAC;AAED,+EAA+E;AACxE,KAAK,0BACV,OAA4B,EAC5B,KAA4B;IAE5B,MAAM,IAAI,GAAG,IAAA,uBAAS,EAAC,OAAO,CAAC,CAAC;IAChC,MAAM,OAAO,GAA6B,EAAE,CAAC;IAC7C,KAAK,MAAM,IAAI,IAAI,oBAAoB,CAAC,KAAK,CAAC,EAAE,CAAC;QAC/C,MAAM,KAAK,GAAG,MAAM,IAAA,qBAAa,EAAC,IAAI,CAAC,KAAK,EAAE,IAAI,CAAC,CAAC;QACpD,OAAO,CAAC,IAAI,CAAC,CAAC,IAAI,CAAC,MAAM,EAAE,IAAI,CAAC,OAAO,EAAE,KAAK,CAAC,CAAC,CAAC;IACnD,CAAC;IACD,OAAO,OAAO,CAAC;AACjB,CAAC"}
|