@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
|
@@ -0,0 +1,247 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* Hides the vector backend as a copy of the items' embeddings.
|
|
3
|
+
*
|
|
4
|
+
* When a store is given a `VectorBackend`, every item's embedding is kept there
|
|
5
|
+
* as well as the item in the table, and the table is the truth. When the copy
|
|
6
|
+
* is written (after the row commits), when an entry is dropped (only once a
|
|
7
|
+
* fresh read finds the row gone), how a backend's answer is resolved back to
|
|
8
|
+
* the canonical items and in which direction its scores run, and how the copy
|
|
9
|
+
* is repaired against the table are decided here, and nothing else calls the
|
|
10
|
+
* backend.
|
|
11
|
+
*/
|
|
12
|
+
import type { IndexConfig, SearchItem } from '@langchain/langgraph-checkpoint';
|
|
13
|
+
import type { VectorReconcileResult } from '../types';
|
|
14
|
+
import type { VectorBackend, VectorMatch, VectorRef, VectorScoreDirection } from '../vector-backend';
|
|
15
|
+
import { type Namespace, type ParsedPut, type ParsedSearch, type StoreAddress } from './parse';
|
|
16
|
+
import type { StoreContext } from './setup';
|
|
17
|
+
/** A store context whose vector copy is configured: an embeddings index and a backend. */
|
|
18
|
+
export type BackendContext = StoreContext & {
|
|
19
|
+
readonly index: IndexConfig;
|
|
20
|
+
readonly vectorBackend: VectorBackend;
|
|
21
|
+
};
|
|
22
|
+
/**
|
|
23
|
+
* Whether the store keeps a vector copy.
|
|
24
|
+
*
|
|
25
|
+
* Accepts: `context` — the store's.
|
|
26
|
+
*
|
|
27
|
+
* Returns: `true`, narrowing `context`, when both `index` and `vectorBackend`
|
|
28
|
+
* are configured.
|
|
29
|
+
*
|
|
30
|
+
* Throws: nothing.
|
|
31
|
+
*/
|
|
32
|
+
export declare function hasVectorBackend(context: StoreContext): context is BackendContext;
|
|
33
|
+
/**
|
|
34
|
+
* The one vector a put gives the backend for its item.
|
|
35
|
+
*
|
|
36
|
+
* Accepts: `op` — the parsed put. Its `index` is `false` to embed nothing, a
|
|
37
|
+
* field list to embed those fields, absent to embed the configured ones.
|
|
38
|
+
*
|
|
39
|
+
* Returns: the joined embedding, or `undefined` when the store keeps no vector
|
|
40
|
+
* copy, the put indexes nothing, or the value has no text to embed.
|
|
41
|
+
*
|
|
42
|
+
* Throws: `VALIDATION` naming `index.dims` when the model returns a vector of
|
|
43
|
+
* another length; whatever `embedDocuments` throws.
|
|
44
|
+
*/
|
|
45
|
+
export declare function itemVector(context: StoreContext, op: ParsedPut): Promise<number[] | undefined>;
|
|
46
|
+
/**
|
|
47
|
+
* Write an item's entry in the vector copy after its row has committed: the
|
|
48
|
+
* vector when there is one, a delete when there is none. Best-effort sync of
|
|
49
|
+
* one item's embedding to the vector backend after the canonical DynamoDB
|
|
50
|
+
* write has already succeeded.
|
|
51
|
+
*
|
|
52
|
+
* Accepts: `address` — the item's. `embedding` — from {@link itemVector}:
|
|
53
|
+
* present upserts it; absent deletes any vector the backend still holds, which
|
|
54
|
+
* is what a re-put with no indexable text, an `index: false` put and a delete
|
|
55
|
+
* all mean.
|
|
56
|
+
*
|
|
57
|
+
* Returns: nothing, in both the synced and the failed case; without a backend,
|
|
58
|
+
* nothing is done.
|
|
59
|
+
*
|
|
60
|
+
* Throws: nothing. The canonical item is already committed, so failing here
|
|
61
|
+
* would report a put that in fact succeeded; the drift is logged at `warn` and
|
|
62
|
+
* `reconcileVectorIndex` repairs it.
|
|
63
|
+
*/
|
|
64
|
+
export declare function syncItemVector(context: StoreContext, address: StoreAddress, embedding: number[] | undefined): Promise<void>;
|
|
65
|
+
/**
|
|
66
|
+
* Drop the item's vector, but only on a fresh read that finds no row at the
|
|
67
|
+
* key.
|
|
68
|
+
*
|
|
69
|
+
* The question is deliberately **not** "did this call remove the row" — that
|
|
70
|
+
* one is true in exactly the interleaving that goes wrong. It is "does the key
|
|
71
|
+
* hold a row *now*", which a racing put that recreated it and a
|
|
72
|
+
* compare-and-swap that left it alone both answer the same way, and which costs
|
|
73
|
+
* a point read of this library's own table rather than anything the backend has
|
|
74
|
+
* to offer. The reconciler asks the same question before pruning a vector, so
|
|
75
|
+
* the delete path and the reconciler are equally careful.
|
|
76
|
+
*
|
|
77
|
+
* A read that itself fails answers "not confirmed" and keeps the vector: a
|
|
78
|
+
* stale vector for a deleted item, which `reconcileVectorIndex` removes, rather
|
|
79
|
+
* than a missing one for a live item, which is the defect this exists for.
|
|
80
|
+
*
|
|
81
|
+
* Accepts: `address` — the deleted item's; the row read is derived from it.
|
|
82
|
+
*
|
|
83
|
+
* Returns: nothing; without a backend, nothing is read or dropped. A row still
|
|
84
|
+
* at the key keeps its vector and logs one `info`.
|
|
85
|
+
*
|
|
86
|
+
* Throws: nothing the backend throws (see {@link syncItemVector}); whatever the
|
|
87
|
+
* confirmation read throws that `isRowAbsent` does not answer as "not
|
|
88
|
+
* confirmed".
|
|
89
|
+
*/
|
|
90
|
+
export declare function dropVectorWhenGone(context: StoreContext, address: StoreAddress): Promise<void>;
|
|
91
|
+
/** A canonical item's location plus the embedding recomputed for it. */
|
|
92
|
+
export interface ReconcileTarget {
|
|
93
|
+
namespace: string[];
|
|
94
|
+
key: string;
|
|
95
|
+
embedding: number[] | undefined;
|
|
96
|
+
}
|
|
97
|
+
/**
|
|
98
|
+
* Enumerate the live (unexpired) items under `prefix` and recompute their
|
|
99
|
+
* embeddings.
|
|
100
|
+
*
|
|
101
|
+
* Accepts: `prefix` — at least one element, since the enumeration is one
|
|
102
|
+
* partition's Query; reconciling is always scoped. `signal` — aborts between
|
|
103
|
+
* pages.
|
|
104
|
+
*
|
|
105
|
+
* Returns: one target per live item, each with the embedding the item's current
|
|
106
|
+
* value produces — `undefined` when it yields no indexable text, which is the
|
|
107
|
+
* evidence that lets {@link pruneOrphans} drop a vector that has gone stale.
|
|
108
|
+
*
|
|
109
|
+
* Throws: whatever the reads, the decodes and the embeddings model throw; a
|
|
110
|
+
* failed embedding rejects the whole reconcile, because a skipped item would
|
|
111
|
+
* leave the live set and {@link selectOrphans} would prune its still-valid
|
|
112
|
+
* vector. `RESULT_TRUNCATED` when `maxScanItems` is reached while rows
|
|
113
|
+
* remain — reconciling from a partial view would prune live vectors.
|
|
114
|
+
*
|
|
115
|
+
* Guarantees: rows are decoded in bounded batches, so a namespace of offloaded
|
|
116
|
+
* items costs neither one round-trip at a time nor every payload in memory at
|
|
117
|
+
* once.
|
|
118
|
+
*/
|
|
119
|
+
export declare function collectReconcileTargets(context: StoreContext, prefix: Namespace, signal?: AbortSignal): Promise<ReconcileTarget[]>;
|
|
120
|
+
/**
|
|
121
|
+
* Re-push every live embedding to the backend.
|
|
122
|
+
*
|
|
123
|
+
* Accepts: `targets` — a target with no embedding is not pushed; its vector is
|
|
124
|
+
* {@link pruneOrphans}' business, not an upsert of nothing.
|
|
125
|
+
*
|
|
126
|
+
* Returns: how many vectors were upserted.
|
|
127
|
+
*
|
|
128
|
+
* Throws: whatever the backend throws. The upserts are issued one at a time on
|
|
129
|
+
* purpose: this is a bulk repair against a third-party index, and the run has
|
|
130
|
+
* no latency budget worth a thundering herd.
|
|
131
|
+
*/
|
|
132
|
+
export declare function pushEmbeddings(backend: VectorBackend, targets: ReconcileTarget[]): Promise<number>;
|
|
133
|
+
/**
|
|
134
|
+
* Refs the backend holds that the live set does not account for.
|
|
135
|
+
*
|
|
136
|
+
* Accepts: `backendRefs` — whatever the backend lists under the prefix.
|
|
137
|
+
* `live` — the snapshot; a target with no embedding does not account for a
|
|
138
|
+
* vector, since its item no longer produces one.
|
|
139
|
+
*
|
|
140
|
+
* Returns: the candidates to prune — candidates, not conclusions: the snapshot
|
|
141
|
+
* and the backend listing are not one point in time (see {@link pruneOrphans}).
|
|
142
|
+
*
|
|
143
|
+
* Throws: nothing.
|
|
144
|
+
*/
|
|
145
|
+
export declare function selectOrphans(backendRefs: VectorRef[], live: ReconcileTarget[]): VectorRef[];
|
|
146
|
+
/**
|
|
147
|
+
* Delete backend vectors with no canonical item.
|
|
148
|
+
*
|
|
149
|
+
* Accepts: `live` — the snapshot {@link collectReconcileTargets} took.
|
|
150
|
+
* `backend.listKeys` — optional; a backend that cannot enumerate its own keys
|
|
151
|
+
* cannot be pruned, which is reported rather than silently skipped.
|
|
152
|
+
*
|
|
153
|
+
* Returns: how many vectors were deleted.
|
|
154
|
+
*
|
|
155
|
+
* Throws: whatever the backend and the confirmation read throw.
|
|
156
|
+
*
|
|
157
|
+
* Guarantees: a vector is deleted only on evidence that its item is gone — the
|
|
158
|
+
* snapshot saw the item and it yields no embedding, or a fresh
|
|
159
|
+
* strongly-consistent read finds no row at all. An item written between the
|
|
160
|
+
* snapshot and the listing looks orphaned and is kept, so reconciling never
|
|
161
|
+
* drops a just-written item out of semantic search.
|
|
162
|
+
*/
|
|
163
|
+
export declare function pruneOrphans(context: StoreContext, backend: VectorBackend, prefix: Namespace, live: ReconcileTarget[]): Promise<number>;
|
|
164
|
+
/**
|
|
165
|
+
* Repair the vector copy against the items under a prefix: re-push every live
|
|
166
|
+
* embedding, then prune entries whose item is confirmed gone.
|
|
167
|
+
*
|
|
168
|
+
* Accepts: `prefix` — parsed. `signal` — cancels the table read.
|
|
169
|
+
*
|
|
170
|
+
* Returns: how many entries were upserted and pruned.
|
|
171
|
+
*
|
|
172
|
+
* Throws: whatever the table read, the embeddings model or the backend throws.
|
|
173
|
+
*/
|
|
174
|
+
export declare function reconcileVectors(context: BackendContext, prefix: Namespace, signal?: AbortSignal): Promise<VectorReconcileResult>;
|
|
175
|
+
/**
|
|
176
|
+
* Rank a search through a configured vector backend.
|
|
177
|
+
*
|
|
178
|
+
* Accepts: `context` — the store's, with the backend searched and the index
|
|
179
|
+
* whose embeddings model embeds the query. `search.query` — non-empty; the
|
|
180
|
+
* caller checks that before choosing this path. `search.offset`/`search.limit`
|
|
181
|
+
* — the page, whose end (`offset + limit`) must fit within
|
|
182
|
+
* `maxSearchCandidates`, since that many matches have to be fetched to fill it.
|
|
183
|
+
* `search.filter` — applied to the canonical item, not to whatever the backend
|
|
184
|
+
* stored, so a filter is never answered from a stale vector.
|
|
185
|
+
*
|
|
186
|
+
* Returns: the page's items in the backend's order, each carrying the relevance
|
|
187
|
+
* score for its vector. Fewer than `limit` items means the backend has no more
|
|
188
|
+
* matches under the prefix, not that the page was cut short.
|
|
189
|
+
*
|
|
190
|
+
* Throws: `VALIDATION` naming `index.dims` when the query embeds to a
|
|
191
|
+
* different width than the index declares, and naming `maxSearchCandidates`
|
|
192
|
+
* either for a page larger than the cap or when the filter leaves the page short
|
|
193
|
+
* at the cap — the same answer the in-DynamoDB ranker gives, rather than a
|
|
194
|
+
* silently short page. Whatever a canonical read throws — a read that did not
|
|
195
|
+
* happen is not an item that is not there — since a match this store cannot
|
|
196
|
+
* address is dropped before its read rather than caught after it (see
|
|
197
|
+
* {@link addressOf}). Whatever the embeddings model and the backend throw.
|
|
198
|
+
*
|
|
199
|
+
* Guarantees: DynamoDB stays canonical. A match whose item has since been
|
|
200
|
+
* deleted or lies outside the prefix is dropped and the search asks the backend
|
|
201
|
+
* for more, so a stale or over-broad index costs results only in latency. A
|
|
202
|
+
* match whose read *fails* is not dropped: the page a caller receives is never
|
|
203
|
+
* shorter than the matches that exist, which is what the in-DynamoDB path
|
|
204
|
+
* already promises. Items are fetched with the same bounded concurrency as the
|
|
205
|
+
* in-DynamoDB path, and each distinct match is read once for the whole call
|
|
206
|
+
* however many rounds it takes (see {@link fetchUnseen}).
|
|
207
|
+
*/
|
|
208
|
+
export declare function searchViaBackend(context: BackendContext, search: ParsedSearch, signal?: AbortSignal): Promise<SearchItem[]>;
|
|
209
|
+
/**
|
|
210
|
+
* Normalise a backend's matches to the relevance direction upstream
|
|
211
|
+
* `SearchItem.score` documents — "higher scores indicate better matches",
|
|
212
|
+
* typically a cosine similarity between -1 and 1.
|
|
213
|
+
*
|
|
214
|
+
* A distance is converted by **negation** rather than `1 / (1 + d)`: negation
|
|
215
|
+
* is monotone over the whole real line, needs no non-negativity precondition,
|
|
216
|
+
* and is exactly invertible, so the original distance is simply `-score`. A
|
|
217
|
+
* reciprocal would silently imply a different `(0, 1]` scale and is undefined
|
|
218
|
+
* at `d === -1`. Negative scores are already in range for this contract, so
|
|
219
|
+
* nothing is lost by producing them.
|
|
220
|
+
*
|
|
221
|
+
* Results are re-sorted after conversion so a backend that returns its matches
|
|
222
|
+
* in some other order still ranks correctly. Anything that is not `'distance'`
|
|
223
|
+
* is returned untouched — its own order stays authoritative, exactly as before.
|
|
224
|
+
*
|
|
225
|
+
* The test is for `'distance'` rather than against `'relevance'` on purpose:
|
|
226
|
+
* converting is the destructive branch, so only the exact value that asks for
|
|
227
|
+
* it may reach it. Testing the other way round made every unrecognised
|
|
228
|
+
* string — `'Distance'`, a typo, a value read from a config file — reverse the
|
|
229
|
+
* ranking silently, with no error and no warning (the ascending-score warning
|
|
230
|
+
* lives downstream of this conversion, so it could never fire). `setUpStore`
|
|
231
|
+
* rejects such a value outright; this keeps the failure harmless for any
|
|
232
|
+
* caller that reaches the function some other way.
|
|
233
|
+
*
|
|
234
|
+
* Accepts: `matches` — in any order, including empty. `direction` — only the
|
|
235
|
+
* exact string `'distance'` converts; every other value, recognised or not,
|
|
236
|
+
* passes the matches through untouched.
|
|
237
|
+
*
|
|
238
|
+
* Returns: matches whose `score` follows the relevance direction upstream
|
|
239
|
+
* documents, highest first. Converting re-sorts, so a backend that returned its
|
|
240
|
+
* matches in some other order still ranks correctly.
|
|
241
|
+
*
|
|
242
|
+
* Throws: nothing.
|
|
243
|
+
*
|
|
244
|
+
* Guarantees: the conversion is exactly invertible — the original distance is
|
|
245
|
+
* `-score` — so nothing about the backend's answer is lost.
|
|
246
|
+
*/
|
|
247
|
+
export declare function toRelevanceScores(matches: VectorMatch[], direction: VectorScoreDirection): VectorMatch[];
|