@farukada/aws-langgraph-dynamodb-ts 1.0.0-rc.2 → 1.0.0
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/README.md +390 -193
- package/dist/{backfill → cjs/backfill}/backfill.d.ts +15 -12
- package/dist/cjs/backfill/backfill.js +177 -0
- package/dist/{checkpointer → cjs/checkpointer}/actions/delete-thread.d.ts +1 -1
- package/dist/cjs/checkpointer/actions/delete-thread.js +26 -0
- package/dist/{checkpointer → cjs/checkpointer}/actions/get-tuple.d.ts +4 -3
- package/dist/cjs/checkpointer/actions/get-tuple.js +22 -0
- package/dist/{checkpointer → cjs/checkpointer}/actions/list.d.ts +7 -4
- package/dist/cjs/checkpointer/actions/list.js +70 -0
- package/dist/{checkpointer → cjs/checkpointer}/actions/put-writes.d.ts +8 -6
- package/dist/cjs/checkpointer/actions/put-writes.js +21 -0
- package/dist/{checkpointer → cjs/checkpointer}/actions/put.d.ts +21 -15
- package/dist/cjs/checkpointer/actions/put.js +79 -0
- package/dist/{checkpointer → cjs/checkpointer}/internal/delta-history.d.ts +38 -26
- package/dist/cjs/checkpointer/internal/delta-history.js +131 -0
- package/dist/{checkpointer → cjs/checkpointer}/internal/listing.d.ts +4 -4
- package/dist/cjs/checkpointer/internal/listing.js +104 -0
- package/dist/{checkpointer → cjs/checkpointer}/internal/parse.d.ts +51 -15
- package/dist/cjs/checkpointer/internal/parse.js +184 -0
- package/dist/{checkpointer → cjs/checkpointer}/internal/pending-writes.d.ts +64 -25
- package/dist/cjs/checkpointer/internal/pending-writes.js +241 -0
- package/dist/{checkpointer → cjs/checkpointer}/internal/read.d.ts +15 -10
- package/dist/cjs/checkpointer/internal/read.js +132 -0
- package/dist/{checkpointer → cjs/checkpointer}/internal/rows.d.ts +94 -21
- package/dist/cjs/checkpointer/internal/rows.js +356 -0
- package/dist/{checkpointer → cjs/checkpointer}/internal/setup.d.ts +13 -20
- package/dist/cjs/checkpointer/internal/setup.js +25 -0
- package/dist/{checkpointer → cjs/checkpointer}/saver.d.ts +72 -36
- package/dist/cjs/checkpointer/saver.js +56 -0
- package/dist/{checkpointer → cjs/checkpointer}/types.d.ts +1 -1
- package/dist/cjs/checkpointer/types.js +2 -0
- package/dist/{factory → cjs/factory}/factory.d.ts +25 -20
- package/dist/cjs/factory/factory.js +137 -0
- package/dist/{factory → cjs/factory}/types.d.ts +12 -12
- package/dist/cjs/factory/types.js +2 -0
- package/dist/{history → cjs/history}/actions/add-messages.d.ts +18 -10
- package/dist/cjs/history/actions/add-messages.js +17 -0
- package/dist/{history → cjs/history}/actions/clear.d.ts +1 -1
- package/dist/cjs/history/actions/clear.js +29 -0
- package/dist/{history → cjs/history}/actions/get-messages.d.ts +11 -9
- package/dist/cjs/history/actions/get-messages.js +58 -0
- package/dist/{history → cjs/history}/actions/list-sessions.d.ts +3 -3
- package/dist/cjs/history/actions/list-sessions.js +67 -0
- package/dist/{history → cjs/history}/actions/reconcile-count.d.ts +13 -9
- package/dist/cjs/history/actions/reconcile-count.js +8 -0
- package/dist/{history → cjs/history}/chat-message-history.d.ts +62 -30
- package/dist/cjs/history/chat-message-history.js +61 -0
- package/dist/{history → cjs/history}/internal/append.d.ts +64 -32
- package/dist/cjs/history/internal/append.js +267 -0
- package/dist/{history → cjs/history}/internal/message-read.d.ts +3 -3
- package/dist/cjs/history/internal/message-read.js +93 -0
- package/dist/{history → cjs/history}/internal/parse.d.ts +2 -2
- package/dist/cjs/history/internal/parse.js +113 -0
- package/dist/{history → cjs/history}/internal/rows.d.ts +11 -10
- package/dist/cjs/history/internal/rows.js +96 -0
- package/dist/{history → cjs/history}/internal/session.d.ts +41 -22
- package/dist/cjs/history/internal/session.js +296 -0
- package/dist/{history → cjs/history}/internal/setup.d.ts +2 -2
- package/dist/cjs/history/internal/setup.js +60 -0
- package/dist/{history → cjs/history}/session-adapter.d.ts +0 -6
- package/dist/cjs/history/session-adapter.js +38 -0
- package/dist/{history → cjs/history}/types.d.ts +18 -15
- package/dist/cjs/history/types.js +2 -0
- package/dist/{index.d.ts → cjs/index.d.ts} +27 -27
- package/dist/cjs/index.js +25 -0
- package/dist/cjs/package.json +1 -0
- package/dist/{shared → cjs/shared}/adapter.d.ts +27 -16
- package/dist/cjs/shared/adapter.js +70 -0
- package/dist/cjs/shared/clock.js +14 -0
- package/dist/{shared → cjs/shared}/codec/codec.d.ts +37 -20
- package/dist/cjs/shared/codec/codec.js +162 -0
- package/dist/{shared → cjs/shared}/codec/compression.d.ts +9 -4
- package/dist/cjs/shared/codec/compression.js +45 -0
- package/dist/cjs/shared/codec/json-serde.js +58 -0
- package/dist/{shared → cjs/shared}/codec/s3/client-types.d.ts +2 -1
- package/dist/cjs/shared/codec/s3/client-types.js +6 -0
- package/dist/{shared → cjs/shared}/codec/s3/client.d.ts +25 -7
- package/dist/cjs/shared/codec/s3/client.js +78 -0
- package/dist/{shared → cjs/shared}/codec/s3/config.d.ts +12 -7
- package/dist/cjs/shared/codec/s3/config.js +92 -0
- package/dist/{shared → cjs/shared}/codec/s3/lifecycle.d.ts +71 -17
- package/dist/cjs/shared/codec/s3/lifecycle.js +223 -0
- package/dist/{shared → cjs/shared}/codec/s3/offloader.d.ts +42 -29
- package/dist/cjs/shared/codec/s3/offloader.js +289 -0
- package/dist/cjs/shared/concurrency.js +31 -0
- package/dist/{shared → cjs/shared}/dynamodb/abort.d.ts +2 -2
- package/dist/cjs/shared/dynamodb/abort.js +16 -0
- package/dist/{shared → cjs/shared}/dynamodb/batch-write.d.ts +2 -2
- package/dist/cjs/shared/dynamodb/batch-write.js +79 -0
- package/dist/cjs/shared/dynamodb/cancellation.js +37 -0
- package/dist/{shared → cjs/shared}/dynamodb/client.d.ts +24 -22
- package/dist/cjs/shared/dynamodb/client.js +40 -0
- package/dist/{shared → cjs/shared}/dynamodb/idempotent-write.d.ts +64 -19
- package/dist/cjs/shared/dynamodb/idempotent-write.js +173 -0
- package/dist/{shared → cjs/shared}/dynamodb/paginate.d.ts +2 -2
- package/dist/cjs/shared/dynamodb/paginate.js +90 -0
- package/dist/{shared → cjs/shared}/dynamodb/partition-delete.d.ts +6 -6
- package/dist/cjs/shared/dynamodb/partition-delete.js +177 -0
- package/dist/{shared → cjs/shared}/dynamodb/recency-index.d.ts +27 -15
- package/dist/cjs/shared/dynamodb/recency-index.js +146 -0
- package/dist/{shared → cjs/shared}/dynamodb/retry.d.ts +37 -6
- package/dist/cjs/shared/dynamodb/retry.js +193 -0
- package/dist/cjs/shared/dynamodb/row-size.d.ts +33 -0
- package/dist/cjs/shared/dynamodb/row-size.js +30 -0
- package/dist/{shared → cjs/shared}/dynamodb/table-schema.d.ts +27 -18
- package/dist/cjs/shared/dynamodb/table-schema.js +52 -0
- package/dist/{shared → cjs/shared}/errors/base-error.d.ts +42 -7
- package/dist/cjs/shared/errors/base-error.js +73 -0
- package/dist/{shared → cjs/shared}/errors/boundary.d.ts +29 -14
- package/dist/cjs/shared/errors/boundary.js +61 -0
- package/dist/cjs/shared/errors/classify.d.ts +206 -0
- package/dist/cjs/shared/errors/classify.js +232 -0
- package/dist/{shared → cjs/shared}/errors/error-code.d.ts +17 -10
- package/dist/cjs/shared/errors/error-code.js +27 -0
- package/dist/{shared → cjs/shared}/errors/errors.d.ts +75 -9
- package/dist/cjs/shared/errors/errors.js +123 -0
- package/dist/cjs/shared/logging/logger.js +30 -0
- package/dist/{shared → cjs/shared}/logging/redaction.d.ts +8 -4
- package/dist/cjs/shared/logging/redaction.js +145 -0
- package/dist/{shared → cjs/shared}/logging/secret-patterns.d.ts +30 -7
- package/dist/cjs/shared/logging/secret-patterns.js +93 -0
- package/dist/cjs/shared/logging/truncate.js +31 -0
- package/dist/{shared → cjs/shared}/options.d.ts +27 -11
- package/dist/cjs/shared/options.js +2 -0
- package/dist/cjs/shared/ulid.js +83 -0
- package/dist/{shared → cjs/shared}/validation/collaborators.d.ts +21 -2
- package/dist/cjs/shared/validation/collaborators.js +79 -0
- package/dist/{shared → cjs/shared}/validation/option-shape.d.ts +7 -5
- package/dist/cjs/shared/validation/option-shape.js +31 -0
- package/dist/{shared → cjs/shared}/validation/options.d.ts +4 -4
- package/dist/cjs/shared/validation/options.js +166 -0
- package/dist/cjs/shared/validation/primitives.js +114 -0
- package/dist/{shared → cjs/shared}/validation/ttl.d.ts +26 -9
- package/dist/cjs/shared/validation/ttl.js +52 -0
- package/dist/{store → cjs/store}/actions/list-namespaces.d.ts +5 -5
- package/dist/cjs/store/actions/list-namespaces.js +92 -0
- package/dist/{store → cjs/store}/actions/put.d.ts +11 -4
- package/dist/cjs/store/actions/put.js +49 -0
- package/dist/{store → cjs/store}/actions/reconcile-vector-index.d.ts +5 -5
- package/dist/cjs/store/actions/reconcile-vector-index.js +13 -0
- package/dist/{store → cjs/store}/actions/search.d.ts +2 -2
- package/dist/cjs/store/actions/search.js +26 -0
- package/dist/cjs/store/internal/batch-plan.d.ts +56 -0
- package/dist/cjs/store/internal/batch-plan.js +32 -0
- package/dist/{store → cjs/store}/internal/filter.d.ts +3 -3
- package/dist/cjs/store/internal/filter.js +64 -0
- package/dist/cjs/store/internal/get-item.d.ts +77 -0
- package/dist/cjs/store/internal/get-item.js +58 -0
- package/dist/{store → cjs/store}/internal/item-write.d.ts +72 -32
- package/dist/cjs/store/internal/item-write.js +181 -0
- package/dist/{store → cjs/store}/internal/parse.d.ts +15 -10
- package/dist/cjs/store/internal/parse.js +180 -0
- package/dist/{store → cjs/store}/internal/rows.d.ts +38 -34
- package/dist/cjs/store/internal/rows.js +166 -0
- package/dist/{store → cjs/store}/internal/semantic-search.d.ts +2 -2
- package/dist/cjs/store/internal/semantic-search.js +211 -0
- package/dist/{store → cjs/store}/internal/setup.d.ts +10 -15
- package/dist/cjs/store/internal/setup.js +103 -0
- package/dist/{store → cjs/store}/internal/table-search.d.ts +5 -5
- package/dist/cjs/store/internal/table-search.js +123 -0
- package/dist/{store → cjs/store}/internal/vector-index.d.ts +26 -15
- package/dist/cjs/store/internal/vector-index.js +269 -0
- package/dist/{store → cjs/store}/store.d.ts +82 -39
- package/dist/cjs/store/store.js +97 -0
- package/dist/{store → cjs/store}/types.d.ts +25 -10
- package/dist/cjs/store/types.js +2 -0
- package/dist/cjs/store/vector-backend.js +4 -0
- package/dist/esm/backfill/backfill.d.ts +171 -0
- package/dist/esm/backfill/backfill.js +170 -0
- package/dist/{checkpointer/actions/delete-thread.js → esm/checkpointer/actions/delete-thread.d.ts} +4 -26
- package/dist/esm/checkpointer/actions/delete-thread.js +23 -0
- package/dist/{checkpointer/actions/get-tuple.js → esm/checkpointer/actions/get-tuple.d.ts} +7 -24
- package/dist/esm/checkpointer/actions/get-tuple.js +19 -0
- package/dist/esm/checkpointer/actions/list.d.ts +55 -0
- package/dist/esm/checkpointer/actions/list.js +67 -0
- package/dist/{checkpointer/actions/put-writes.js → esm/checkpointer/actions/put-writes.d.ts} +10 -37
- package/dist/esm/checkpointer/actions/put-writes.js +18 -0
- package/dist/esm/checkpointer/actions/put.d.ts +95 -0
- package/dist/esm/checkpointer/actions/put.js +75 -0
- package/dist/esm/checkpointer/internal/delta-history.d.ts +124 -0
- package/dist/esm/checkpointer/internal/delta-history.js +126 -0
- package/dist/{checkpointer/internal/listing.js → esm/checkpointer/internal/listing.d.ts} +22 -118
- package/dist/esm/checkpointer/internal/listing.js +95 -0
- package/dist/esm/checkpointer/internal/parse.d.ts +298 -0
- package/dist/esm/checkpointer/internal/parse.js +169 -0
- package/dist/esm/checkpointer/internal/pending-writes.d.ts +314 -0
- package/dist/esm/checkpointer/internal/pending-writes.js +229 -0
- package/dist/esm/checkpointer/internal/read.d.ts +135 -0
- package/dist/esm/checkpointer/internal/read.js +125 -0
- package/dist/esm/checkpointer/internal/rows.d.ts +644 -0
- package/dist/esm/checkpointer/internal/rows.js +323 -0
- package/dist/esm/checkpointer/internal/setup.d.ts +47 -0
- package/dist/esm/checkpointer/internal/setup.js +21 -0
- package/dist/{checkpointer/saver.js → esm/checkpointer/saver.d.ts} +84 -87
- package/dist/esm/checkpointer/saver.js +52 -0
- package/dist/esm/checkpointer/types.d.ts +51 -0
- package/dist/esm/checkpointer/types.js +1 -0
- package/dist/esm/factory/factory.d.ts +154 -0
- package/dist/esm/factory/factory.js +133 -0
- package/dist/esm/factory/types.d.ts +76 -0
- package/dist/esm/factory/types.js +1 -0
- package/dist/{history/actions/add-messages.js → esm/history/actions/add-messages.d.ts} +20 -26
- package/dist/esm/history/actions/add-messages.js +14 -0
- package/dist/{history/actions/clear.js → esm/history/actions/clear.d.ts} +4 -35
- package/dist/esm/history/actions/clear.js +26 -0
- package/dist/esm/history/actions/get-messages.d.ts +60 -0
- package/dist/esm/history/actions/get-messages.js +55 -0
- package/dist/esm/history/actions/list-sessions.d.ts +55 -0
- package/dist/esm/history/actions/list-sessions.js +64 -0
- package/dist/{history/actions/reconcile-count.js → esm/history/actions/reconcile-count.d.ts} +14 -16
- package/dist/esm/history/actions/reconcile-count.js +5 -0
- package/dist/{history/chat-message-history.js → esm/history/chat-message-history.d.ts} +76 -87
- package/dist/esm/history/chat-message-history.js +57 -0
- package/dist/esm/history/internal/append.d.ts +244 -0
- package/dist/esm/history/internal/append.js +259 -0
- package/dist/esm/history/internal/message-read.d.ts +84 -0
- package/dist/esm/history/internal/message-read.js +89 -0
- package/dist/esm/history/internal/parse.d.ts +153 -0
- package/dist/esm/history/internal/parse.js +105 -0
- package/dist/{history/internal/rows.js → esm/history/internal/rows.d.ts} +58 -112
- package/dist/esm/history/internal/rows.js +83 -0
- package/dist/esm/history/internal/session.d.ts +350 -0
- package/dist/esm/history/internal/session.js +285 -0
- package/dist/esm/history/internal/setup.d.ts +64 -0
- package/dist/esm/history/internal/setup.js +56 -0
- package/dist/{history/session-adapter.js → esm/history/session-adapter.d.ts} +25 -39
- package/dist/esm/history/session-adapter.js +34 -0
- package/dist/esm/history/types.d.ts +102 -0
- package/dist/esm/history/types.js +1 -0
- package/dist/esm/index.d.ts +53 -0
- package/dist/esm/index.js +10 -0
- package/dist/esm/shared/adapter.d.ts +146 -0
- package/dist/esm/shared/adapter.js +65 -0
- package/dist/{shared/clock.js → esm/shared/clock.d.ts} +3 -14
- package/dist/esm/shared/clock.js +9 -0
- package/dist/esm/shared/codec/codec.d.ts +336 -0
- package/dist/esm/shared/codec/codec.js +150 -0
- package/dist/esm/shared/codec/compression.d.ts +66 -0
- package/dist/esm/shared/codec/compression.js +40 -0
- package/dist/esm/shared/codec/json-serde.d.ts +80 -0
- package/dist/esm/shared/codec/json-serde.js +54 -0
- package/dist/esm/shared/codec/s3/client-types.d.ts +54 -0
- package/dist/esm/shared/codec/s3/client-types.js +3 -0
- package/dist/esm/shared/codec/s3/client.d.ts +63 -0
- package/dist/esm/shared/codec/s3/client.js +40 -0
- package/dist/{shared/codec/s3/config.js → esm/shared/codec/s3/config.d.ts} +45 -93
- package/dist/esm/shared/codec/s3/config.js +79 -0
- package/dist/esm/shared/codec/s3/lifecycle.d.ts +220 -0
- package/dist/esm/shared/codec/s3/lifecycle.js +214 -0
- package/dist/esm/shared/codec/s3/offloader.d.ts +428 -0
- package/dist/esm/shared/codec/s3/offloader.js +278 -0
- package/dist/{shared/concurrency.js → esm/shared/concurrency.d.ts} +2 -37
- package/dist/esm/shared/concurrency.js +27 -0
- package/dist/{shared/dynamodb/abort.js → esm/shared/dynamodb/abort.d.ts} +4 -16
- package/dist/esm/shared/dynamodb/abort.js +12 -0
- package/dist/esm/shared/dynamodb/batch-write.d.ts +86 -0
- package/dist/esm/shared/dynamodb/batch-write.js +74 -0
- package/dist/{shared/dynamodb/cancellation.js → esm/shared/dynamodb/cancellation.d.ts} +25 -53
- package/dist/esm/shared/dynamodb/cancellation.js +30 -0
- package/dist/{shared/dynamodb/client.js → esm/shared/dynamodb/client.d.ts} +74 -64
- package/dist/esm/shared/dynamodb/client.js +35 -0
- package/dist/{shared/dynamodb/idempotent-write.js → esm/shared/dynamodb/idempotent-write.d.ts} +172 -169
- package/dist/esm/shared/dynamodb/idempotent-write.js +153 -0
- package/dist/esm/shared/dynamodb/paginate.d.ts +111 -0
- package/dist/esm/shared/dynamodb/paginate.js +84 -0
- package/dist/esm/shared/dynamodb/partition-delete.d.ts +204 -0
- package/dist/esm/shared/dynamodb/partition-delete.js +171 -0
- package/dist/esm/shared/dynamodb/recency-index.d.ts +243 -0
- package/dist/esm/shared/dynamodb/recency-index.js +136 -0
- package/dist/esm/shared/dynamodb/retry.d.ts +317 -0
- package/dist/esm/shared/dynamodb/retry.js +180 -0
- package/dist/esm/shared/dynamodb/row-size.d.ts +33 -0
- package/dist/esm/shared/dynamodb/row-size.js +26 -0
- package/dist/{shared/dynamodb/table-schema.js → esm/shared/dynamodb/table-schema.d.ts} +57 -67
- package/dist/esm/shared/dynamodb/table-schema.js +43 -0
- package/dist/esm/shared/errors/base-error.d.ts +231 -0
- package/dist/esm/shared/errors/base-error.js +64 -0
- package/dist/esm/shared/errors/boundary.d.ts +86 -0
- package/dist/esm/shared/errors/boundary.js +54 -0
- package/dist/esm/shared/errors/classify.d.ts +206 -0
- package/dist/esm/shared/errors/classify.js +220 -0
- package/dist/{shared/errors/error-code.js → esm/shared/errors/error-code.d.ts} +39 -43
- package/dist/esm/shared/errors/error-code.js +24 -0
- package/dist/{shared/errors/errors.js → esm/shared/errors/errors.d.ts} +92 -98
- package/dist/esm/shared/errors/errors.js +110 -0
- package/dist/{shared/logging/logger.js → esm/shared/logging/logger.d.ts} +22 -52
- package/dist/esm/shared/logging/logger.js +25 -0
- package/dist/esm/shared/logging/redaction.d.ts +123 -0
- package/dist/esm/shared/logging/redaction.js +140 -0
- package/dist/{shared/logging/secret-patterns.js → esm/shared/logging/secret-patterns.d.ts} +46 -87
- package/dist/esm/shared/logging/secret-patterns.js +83 -0
- package/dist/{shared/logging/truncate.js → esm/shared/logging/truncate.d.ts} +6 -40
- package/dist/esm/shared/logging/truncate.js +25 -0
- package/dist/esm/shared/options.d.ts +100 -0
- package/dist/esm/shared/options.js +1 -0
- package/dist/{shared/ulid.js → esm/shared/ulid.d.ts} +4 -84
- package/dist/esm/shared/ulid.js +77 -0
- package/dist/{shared/validation/collaborators.js → esm/shared/validation/collaborators.d.ts} +37 -65
- package/dist/esm/shared/validation/collaborators.js +70 -0
- package/dist/{shared/validation/option-shape.js → esm/shared/validation/option-shape.d.ts} +14 -36
- package/dist/esm/shared/validation/option-shape.js +24 -0
- package/dist/esm/shared/validation/options.d.ts +145 -0
- package/dist/esm/shared/validation/options.js +156 -0
- package/dist/{shared/validation/primitives.js → esm/shared/validation/primitives.d.ts} +30 -125
- package/dist/esm/shared/validation/primitives.js +100 -0
- package/dist/esm/shared/validation/ttl.d.ts +94 -0
- package/dist/esm/shared/validation/ttl.js +46 -0
- package/dist/esm/store/actions/list-namespaces.d.ts +79 -0
- package/dist/esm/store/actions/list-namespaces.js +86 -0
- package/dist/esm/store/actions/put.d.ts +43 -0
- package/dist/esm/store/actions/put.js +46 -0
- package/dist/{store/actions/reconcile-vector-index.js → esm/store/actions/reconcile-vector-index.d.ts} +8 -16
- package/dist/esm/store/actions/reconcile-vector-index.js +10 -0
- package/dist/esm/store/actions/search.d.ts +38 -0
- package/dist/esm/store/actions/search.js +23 -0
- package/dist/esm/store/internal/batch-plan.d.ts +56 -0
- package/dist/esm/store/internal/batch-plan.js +28 -0
- package/dist/esm/store/internal/filter.d.ts +43 -0
- package/dist/esm/store/internal/filter.js +60 -0
- package/dist/esm/store/internal/get-item.d.ts +77 -0
- package/dist/esm/store/internal/get-item.js +54 -0
- package/dist/esm/store/internal/item-write.d.ts +270 -0
- package/dist/esm/store/internal/item-write.js +173 -0
- package/dist/esm/store/internal/parse.d.ts +230 -0
- package/dist/esm/store/internal/parse.js +169 -0
- package/dist/{store/internal/rows.js → esm/store/internal/rows.d.ts} +111 -199
- package/dist/esm/store/internal/rows.js +147 -0
- package/dist/esm/store/internal/semantic-search.d.ts +168 -0
- package/dist/esm/store/internal/semantic-search.js +200 -0
- package/dist/esm/store/internal/setup.d.ts +96 -0
- package/dist/esm/store/internal/setup.js +98 -0
- package/dist/esm/store/internal/table-search.d.ts +100 -0
- package/dist/esm/store/internal/table-search.js +119 -0
- package/dist/esm/store/internal/vector-index.d.ts +258 -0
- package/dist/esm/store/internal/vector-index.js +256 -0
- package/dist/{store/store.js → esm/store/store.d.ts} +99 -133
- package/dist/esm/store/store.js +93 -0
- package/dist/esm/store/types.d.ts +111 -0
- package/dist/esm/store/types.js +1 -0
- package/dist/esm/store/vector-backend.d.ts +104 -0
- package/dist/esm/store/vector-backend.js +1 -0
- package/package.json +50 -44
- package/dist/backfill/backfill.js +0 -393
- package/dist/checkpointer/actions/list.js +0 -142
- package/dist/checkpointer/actions/put.js +0 -195
- package/dist/checkpointer/internal/delta-history.js +0 -252
- package/dist/checkpointer/internal/parse.js +0 -372
- package/dist/checkpointer/internal/pending-writes.js +0 -588
- package/dist/checkpointer/internal/read.js +0 -264
- package/dist/checkpointer/internal/rows.js +0 -834
- package/dist/checkpointer/internal/setup.js +0 -72
- package/dist/checkpointer/types.js +0 -12
- package/dist/factory/factory.js +0 -266
- package/dist/factory/types.js +0 -10
- package/dist/history/actions/get-messages.js +0 -141
- package/dist/history/actions/list-sessions.js +0 -156
- package/dist/history/internal/append.js +0 -500
- package/dist/history/internal/message-read.js +0 -204
- package/dist/history/internal/parse.js +0 -252
- package/dist/history/internal/session.js +0 -628
- package/dist/history/internal/setup.js +0 -106
- package/dist/history/types.js +0 -12
- package/dist/index.js +0 -51
- package/dist/shared/adapter.js +0 -143
- package/dist/shared/codec/codec.js +0 -441
- package/dist/shared/codec/compression.js +0 -89
- package/dist/shared/codec/json-serde.js +0 -191
- package/dist/shared/codec/s3/client-types.js +0 -26
- package/dist/shared/codec/s3/client.js +0 -97
- package/dist/shared/codec/s3/lifecycle.js +0 -355
- package/dist/shared/codec/s3/offloader.js +0 -658
- package/dist/shared/dynamodb/batch-write.js +0 -173
- package/dist/shared/dynamodb/paginate.js +0 -188
- package/dist/shared/dynamodb/partition-delete.js +0 -340
- package/dist/shared/dynamodb/recency-index.js +0 -377
- package/dist/shared/dynamodb/retry.js +0 -463
- package/dist/shared/errors/base-error.js +0 -174
- package/dist/shared/errors/boundary.js +0 -143
- package/dist/shared/errors/classify.d.ts +0 -97
- package/dist/shared/errors/classify.js +0 -257
- package/dist/shared/logging/redaction.js +0 -316
- package/dist/shared/options.js +0 -11
- package/dist/shared/validation/options.js +0 -328
- package/dist/shared/validation/ttl.js +0 -132
- package/dist/store/actions/list-namespaces.js +0 -197
- package/dist/store/actions/put.js +0 -78
- package/dist/store/actions/search.js +0 -66
- package/dist/store/internal/batch-plan.d.ts +0 -26
- package/dist/store/internal/batch-plan.js +0 -109
- package/dist/store/internal/filter.js +0 -137
- package/dist/store/internal/get-item.d.ts +0 -45
- package/dist/store/internal/get-item.js +0 -115
- package/dist/store/internal/item-write.js +0 -463
- package/dist/store/internal/parse.js +0 -350
- package/dist/store/internal/semantic-search.js +0 -389
- package/dist/store/internal/setup.js +0 -223
- package/dist/store/internal/table-search.js +0 -213
- package/dist/store/internal/vector-index.js +0 -546
- package/dist/store/types.js +0 -15
- package/dist/store/vector-backend.js +0 -17
- /package/dist/{shared → cjs/shared}/clock.d.ts +0 -0
- /package/dist/{shared → cjs/shared}/codec/json-serde.d.ts +0 -0
- /package/dist/{shared → cjs/shared}/concurrency.d.ts +0 -0
- /package/dist/{shared → cjs/shared}/dynamodb/cancellation.d.ts +0 -0
- /package/dist/{shared → cjs/shared}/logging/logger.d.ts +0 -0
- /package/dist/{shared → cjs/shared}/logging/truncate.d.ts +0 -0
- /package/dist/{shared → cjs/shared}/ulid.d.ts +0 -0
- /package/dist/{shared → cjs/shared}/validation/primitives.d.ts +0 -0
- /package/dist/{store → cjs/store}/vector-backend.d.ts +0 -0
|
@@ -1,137 +0,0 @@
|
|
|
1
|
-
"use strict";
|
|
2
|
-
/**
|
|
3
|
-
* Hides the store's filter grammar.
|
|
4
|
-
*
|
|
5
|
-
* Which operators a search filter accepts, how each compares a stored field —
|
|
6
|
-
* ordered comparisons only between like-typed values, an absent field matching
|
|
7
|
-
* nothing — and whether an item passes a search's optional filter are decided
|
|
8
|
-
* here, the same way whichever search path runs.
|
|
9
|
-
*/
|
|
10
|
-
Object.defineProperty(exports, "__esModule", { value: true });
|
|
11
|
-
exports.matchesStoreFilter = matchesStoreFilter;
|
|
12
|
-
exports.passesFilter = passesFilter;
|
|
13
|
-
const node_util_1 = require("node:util");
|
|
14
|
-
/**
|
|
15
|
-
* Three-way order for a like-typed pair, or `undefined` when the pair is
|
|
16
|
-
* *unordered*. `NaN` compares `false` against everything including itself, so a
|
|
17
|
-
* bare `===`/`>` ternary silently reports it as "less than" — which let a
|
|
18
|
-
* stored `NaN` satisfy `$lt`/`$lte` against any number, contradicting
|
|
19
|
-
* {@link compareOrdered}'s own contract.
|
|
20
|
-
*/
|
|
21
|
-
function orderOf(actual, expected) {
|
|
22
|
-
if (actual < expected)
|
|
23
|
-
return -1;
|
|
24
|
-
if (actual > expected)
|
|
25
|
-
return 1;
|
|
26
|
-
return actual === expected ? 0 : undefined;
|
|
27
|
-
}
|
|
28
|
-
/** Apply `test` to a resolved order; an unordered pair never matches. */
|
|
29
|
-
function testOrder(order, test) {
|
|
30
|
-
return order !== undefined && test(order);
|
|
31
|
-
}
|
|
32
|
-
/**
|
|
33
|
-
* Ordered comparison over like-typed values only: numbers compare numerically,
|
|
34
|
-
* strings lexicographically, and a mismatched or unordered pair never matches.
|
|
35
|
-
*
|
|
36
|
-
* Deliberately stricter than both native comparison and what upstream does.
|
|
37
|
-
* Native `>` coerces, so a stored `'10'` would satisfy `{ $gt: 5 }` — inclusion
|
|
38
|
-
* decided by JS coercion rather than by the stored type. Upstream instead
|
|
39
|
-
* reduces both sides with `Number()`, which makes two ISO-8601 date strings
|
|
40
|
-
* `NaN` and every comparison between them false. Comparing like types
|
|
41
|
-
* directly is well-defined in both cases.
|
|
42
|
-
*/
|
|
43
|
-
function compareOrdered(actual, expected, test) {
|
|
44
|
-
if (typeof actual === 'number' && typeof expected === 'number') {
|
|
45
|
-
return testOrder(orderOf(actual, expected), test);
|
|
46
|
-
}
|
|
47
|
-
if (typeof actual === 'string' && typeof expected === 'string') {
|
|
48
|
-
return testOrder(orderOf(actual, expected), test);
|
|
49
|
-
}
|
|
50
|
-
return false;
|
|
51
|
-
}
|
|
52
|
-
const COMPARATORS = {
|
|
53
|
-
$eq: (actual, expected) => (0, node_util_1.isDeepStrictEqual)(actual, expected),
|
|
54
|
-
$ne: (actual, expected) => !(0, node_util_1.isDeepStrictEqual)(actual, expected),
|
|
55
|
-
$gt: (actual, expected) => compareOrdered(actual, expected, (order) => order > 0),
|
|
56
|
-
$gte: (actual, expected) => compareOrdered(actual, expected, (order) => order >= 0),
|
|
57
|
-
$lt: (actual, expected) => compareOrdered(actual, expected, (order) => order < 0),
|
|
58
|
-
$lte: (actual, expected) => compareOrdered(actual, expected, (order) => order <= 0),
|
|
59
|
-
$in: (actual, expected) => Array.isArray(expected)
|
|
60
|
-
? expected.some((candidate) => (0, node_util_1.isDeepStrictEqual)(actual, candidate))
|
|
61
|
-
: false,
|
|
62
|
-
$nin: (actual, expected) => Array.isArray(expected)
|
|
63
|
-
? !expected.some((candidate) => (0, node_util_1.isDeepStrictEqual)(actual, candidate))
|
|
64
|
-
: true,
|
|
65
|
-
};
|
|
66
|
-
/**
|
|
67
|
-
* True when every key is one of the exact known operator names, which matches
|
|
68
|
-
* the reference store's own detection (`@langchain/langgraph-checkpoint@1.1.5`
|
|
69
|
-
* `dist/store/utils.js:61`): a stored value that merely has `$`-prefixed keys —
|
|
70
|
-
* a JSON Schema document, say — is compared as a literal instead of misread as
|
|
71
|
-
* a filter.
|
|
72
|
-
*
|
|
73
|
-
* An empty condition qualifies, and therefore imposes no constraint: `every`
|
|
74
|
-
* over no operators is true, exactly as it is upstream, so `{ field: {} }`
|
|
75
|
-
* matches every item — including one that does not hold the field at all, for
|
|
76
|
-
* which there is likewise no operator to fail. Requiring at least one key
|
|
77
|
-
* inverted that answer and made the same filter match nothing.
|
|
78
|
-
*
|
|
79
|
-
* Arrays are excluded where the reference does not. Upstream an empty array
|
|
80
|
-
* reaches `Object.keys([]).every(...)` and is likewise vacuously true, so `[]`
|
|
81
|
-
* as a condition matches everything there; treating a stored array as a literal
|
|
82
|
-
* to compare is the answer a caller means, and the difference is recorded
|
|
83
|
-
* rather than copied.
|
|
84
|
-
*/
|
|
85
|
-
function isOperatorObject(condition) {
|
|
86
|
-
return (typeof condition === 'object' &&
|
|
87
|
-
condition !== null &&
|
|
88
|
-
!Array.isArray(condition) &&
|
|
89
|
-
Object.keys(condition).every((key) => Object.prototype.hasOwnProperty.call(COMPARATORS, key)));
|
|
90
|
-
}
|
|
91
|
-
function matchesCondition(actual, condition) {
|
|
92
|
-
if (!isOperatorObject(condition))
|
|
93
|
-
return (0, node_util_1.isDeepStrictEqual)(actual, condition);
|
|
94
|
-
return Object.entries(condition).every(([operator, expected]) => COMPARATORS[operator](actual, expected));
|
|
95
|
-
}
|
|
96
|
-
/** The value `item` holds at `field`, or undefined when it holds no such own property. */
|
|
97
|
-
function ownField(item, field) {
|
|
98
|
-
if (item === null || typeof item !== 'object')
|
|
99
|
-
return undefined;
|
|
100
|
-
return Object.hasOwn(item, field) ? item[field] : undefined;
|
|
101
|
-
}
|
|
102
|
-
/**
|
|
103
|
-
* Whether `value` satisfies every field condition in `filter`.
|
|
104
|
-
*
|
|
105
|
-
* Accepts: `value` — a stored item's decoded value. Declared as a record, but a
|
|
106
|
-
* row holds whatever its writer stored, including `null` and a scalar; such a
|
|
107
|
-
* value has no own properties and so satisfies no condition. `filter` — a plain
|
|
108
|
-
* value per field is exact match, an operator object (`{ $gt: 4 }`) applies
|
|
109
|
-
* comparisons, and `{}` constrains nothing.
|
|
110
|
-
*
|
|
111
|
-
* Returns: whether every condition holds.
|
|
112
|
-
*
|
|
113
|
-
* Throws: nothing. `search` walks every candidate row, so one row whose value
|
|
114
|
-
* is not an object must not fail the search.
|
|
115
|
-
*
|
|
116
|
-
* Guarantees: own properties only — `value['toString']` would otherwise resolve
|
|
117
|
-
* up the prototype chain and be compared as if it were stored data.
|
|
118
|
-
*/
|
|
119
|
-
function matchesStoreFilter(value, filter) {
|
|
120
|
-
return Object.entries(filter).every(([field, condition]) => matchesCondition(ownField(value, field), condition));
|
|
121
|
-
}
|
|
122
|
-
/**
|
|
123
|
-
* Whether `item` satisfies a search's optional metadata filter.
|
|
124
|
-
*
|
|
125
|
-
* Accepts: `filter` — a parsed search's filter; absent passes every item.
|
|
126
|
-
* `item.value` — whatever the item's writer stored; a value that is not
|
|
127
|
-
* an object satisfies no condition (see `matchesStoreFilter`).
|
|
128
|
-
*
|
|
129
|
-
* Returns: whether the item belongs in the result.
|
|
130
|
-
*
|
|
131
|
-
* Throws: nothing, so one unusual row cannot fail a search over many.
|
|
132
|
-
*/
|
|
133
|
-
function passesFilter(item, filter) {
|
|
134
|
-
if (!filter)
|
|
135
|
-
return true;
|
|
136
|
-
return matchesStoreFilter(item.value, filter);
|
|
137
|
-
}
|
|
@@ -1,45 +0,0 @@
|
|
|
1
|
-
/**
|
|
2
|
-
* Hides what a single read counts as absent, and how it outlives an overwrite.
|
|
3
|
-
*
|
|
4
|
-
* A get reads its row strongly consistently and answers `null` alike for a
|
|
5
|
-
* missing row, an expired one and a row this adapter does not own. When the
|
|
6
|
-
* object an offloaded row names is deleted between the row read and the
|
|
7
|
-
* download, one re-read settles whether the item was replaced, removed or
|
|
8
|
-
* truly lost. A caller gets an item or `null` and never sees the race.
|
|
9
|
-
*/
|
|
10
|
-
import type { Item } from '@langchain/langgraph-checkpoint';
|
|
11
|
-
import type { StoreAddress } from './parse';
|
|
12
|
-
import type { StoreContext } from './setup';
|
|
13
|
-
/**
|
|
14
|
-
* Retrieve a single item by namespace and key (strongly consistent), or null.
|
|
15
|
-
*
|
|
16
|
-
* An offloaded item can lose a race with a concurrent overwrite: between the
|
|
17
|
-
* row read and the S3 download the writer commits a new descriptor and deletes
|
|
18
|
-
* the object this read was about to fetch. That surfaces as `NoSuchKey`, and
|
|
19
|
-
* one strongly-consistent re-read settles it — the row now points at the new
|
|
20
|
-
* object (return that), is gone (null), or still points at the same missing
|
|
21
|
-
* object (a genuine loss, rethrown). A row the overwrite left with no
|
|
22
|
-
* descriptor at all is a replacement like any other: it is decoded, and refused
|
|
23
|
-
* by its own coded error. Any other download failure propagates.
|
|
24
|
-
*
|
|
25
|
-
* Accepts: `address` — parsed; no check is repeated here. `signal` — aborts
|
|
26
|
-
* the reads.
|
|
27
|
-
*
|
|
28
|
-
* Returns: the item, or `null` for one that does not exist, has expired, or
|
|
29
|
-
* whose key holds a row this adapter does not own — which includes a row whose
|
|
30
|
-
* `createdAt` or `updatedAt` is not the string this package writes there, since
|
|
31
|
-
* an item is reported with both. The answers are one on purpose: a caller
|
|
32
|
-
* cannot act on the difference, and reporting a foreign row would leak that a
|
|
33
|
-
* shared table holds one.
|
|
34
|
-
*
|
|
35
|
-
* Throws: `VALIDATION` naming — for a row whose descriptor is not one —
|
|
36
|
-
* `descriptor`; `FORMAT_UNSUPPORTED` for
|
|
37
|
-
* a row, or a payload, written by a newer version, which is *not* reported as
|
|
38
|
-
* absent — hiding an item that exists is worse than failing; `PAYLOAD_CORRUPT`
|
|
39
|
-
* or the download's own error for a payload that cannot be read; `ABORTED`
|
|
40
|
-
* when the signal fires.
|
|
41
|
-
*
|
|
42
|
-
* Guarantees: strongly consistent — an item just written is always seen, and
|
|
43
|
-
* the ttl is honoured here rather than waited for.
|
|
44
|
-
*/
|
|
45
|
-
export declare function getItem(context: StoreContext, address: StoreAddress, signal?: AbortSignal): Promise<Item | null>;
|
|
@@ -1,115 +0,0 @@
|
|
|
1
|
-
"use strict";
|
|
2
|
-
/**
|
|
3
|
-
* Hides what a single read counts as absent, and how it outlives an overwrite.
|
|
4
|
-
*
|
|
5
|
-
* A get reads its row strongly consistently and answers `null` alike for a
|
|
6
|
-
* missing row, an expired one and a row this adapter does not own. When the
|
|
7
|
-
* object an offloaded row names is deleted between the row read and the
|
|
8
|
-
* download, one re-read settles whether the item was replaced, removed or
|
|
9
|
-
* truly lost. A caller gets an item or `null` and never sees the race.
|
|
10
|
-
*/
|
|
11
|
-
Object.defineProperty(exports, "__esModule", { value: true });
|
|
12
|
-
exports.getItem = getItem;
|
|
13
|
-
const clock_1 = require("../../shared/clock");
|
|
14
|
-
const codec_1 = require("../../shared/codec/codec");
|
|
15
|
-
const retry_1 = require("../../shared/dynamodb/retry");
|
|
16
|
-
const table_schema_1 = require("../../shared/dynamodb/table-schema");
|
|
17
|
-
const rows_1 = require("./rows");
|
|
18
|
-
/**
|
|
19
|
-
* Read the row strongly consistently and narrow it rather than cast. A
|
|
20
|
-
* foreign row sharing this key has no `namespace`, and one carrying a `value`
|
|
21
|
-
* PayloadDescriptor in the same shape a store item uses (a checkpointer WRITE
|
|
22
|
-
* row) would otherwise decode cleanly and be handed back as the caller's own
|
|
23
|
-
* value. The narrow is the whole-row one, so a row with no `createdAt` or
|
|
24
|
-
* `updatedAt` is refused here rather than decoded into an item whose
|
|
25
|
-
* timestamps are `Invalid Date`.
|
|
26
|
-
*/
|
|
27
|
-
async function readRow(context, namespace, key, signal) {
|
|
28
|
-
const result = await (0, retry_1.withDynamoDBRetry)((request) => context.client.get({
|
|
29
|
-
TableName: context.tableName,
|
|
30
|
-
Key: (0, rows_1.itemRowKey)({ namespace, key }),
|
|
31
|
-
ConsistentRead: true,
|
|
32
|
-
}, request), (0, retry_1.retryFor)(context, signal));
|
|
33
|
-
if (!result.Item)
|
|
34
|
-
return undefined;
|
|
35
|
-
const record = (0, rows_1.parseWholeStoreRow)(result.Item);
|
|
36
|
-
if (!record) {
|
|
37
|
-
context.logger.warn('store.get: ignored a row that is not a store item', {
|
|
38
|
-
partitionKey: (0, rows_1.partitionKey)(namespace),
|
|
39
|
-
sortKey: (0, rows_1.sortKey)(namespace, key),
|
|
40
|
-
});
|
|
41
|
-
return undefined;
|
|
42
|
-
}
|
|
43
|
-
// A row past its ttl is absent to every reader, however long DynamoDB's sweep lags.
|
|
44
|
-
return (0, table_schema_1.isExpiredRow)(record, (0, clock_1.nowSeconds)()) ? undefined : record;
|
|
45
|
-
}
|
|
46
|
-
/**
|
|
47
|
-
* True when both records point at the same offloaded object.
|
|
48
|
-
*
|
|
49
|
-
* Only `read` is known to hold a descriptor: it is the row whose download just
|
|
50
|
-
* failed. `reread` is whatever the overwrite this recovery exists for left
|
|
51
|
-
* behind, which can be a `null` where the descriptor belongs, so it is tested
|
|
52
|
-
* for presence first. A row pointing at nothing is not pointing at the object
|
|
53
|
-
* this read lost, so it is decoded like any other replacement and answered with
|
|
54
|
-
* the coded error that names the descriptor — not with a property read that
|
|
55
|
-
* would replace the download's own failure with a bare `TypeError`.
|
|
56
|
-
*/
|
|
57
|
-
function sameObject(read, reread) {
|
|
58
|
-
const fresh = reread.value;
|
|
59
|
-
if (!fresh)
|
|
60
|
-
return false;
|
|
61
|
-
return (read.value.location === codec_1.PayloadLocation.S3 &&
|
|
62
|
-
fresh.location === codec_1.PayloadLocation.S3 &&
|
|
63
|
-
read.value.s3Key === fresh.s3Key);
|
|
64
|
-
}
|
|
65
|
-
/**
|
|
66
|
-
* Retrieve a single item by namespace and key (strongly consistent), or null.
|
|
67
|
-
*
|
|
68
|
-
* An offloaded item can lose a race with a concurrent overwrite: between the
|
|
69
|
-
* row read and the S3 download the writer commits a new descriptor and deletes
|
|
70
|
-
* the object this read was about to fetch. That surfaces as `NoSuchKey`, and
|
|
71
|
-
* one strongly-consistent re-read settles it — the row now points at the new
|
|
72
|
-
* object (return that), is gone (null), or still points at the same missing
|
|
73
|
-
* object (a genuine loss, rethrown). A row the overwrite left with no
|
|
74
|
-
* descriptor at all is a replacement like any other: it is decoded, and refused
|
|
75
|
-
* by its own coded error. Any other download failure propagates.
|
|
76
|
-
*
|
|
77
|
-
* Accepts: `address` — parsed; no check is repeated here. `signal` — aborts
|
|
78
|
-
* the reads.
|
|
79
|
-
*
|
|
80
|
-
* Returns: the item, or `null` for one that does not exist, has expired, or
|
|
81
|
-
* whose key holds a row this adapter does not own — which includes a row whose
|
|
82
|
-
* `createdAt` or `updatedAt` is not the string this package writes there, since
|
|
83
|
-
* an item is reported with both. The answers are one on purpose: a caller
|
|
84
|
-
* cannot act on the difference, and reporting a foreign row would leak that a
|
|
85
|
-
* shared table holds one.
|
|
86
|
-
*
|
|
87
|
-
* Throws: `VALIDATION` naming — for a row whose descriptor is not one —
|
|
88
|
-
* `descriptor`; `FORMAT_UNSUPPORTED` for
|
|
89
|
-
* a row, or a payload, written by a newer version, which is *not* reported as
|
|
90
|
-
* absent — hiding an item that exists is worse than failing; `PAYLOAD_CORRUPT`
|
|
91
|
-
* or the download's own error for a payload that cannot be read; `ABORTED`
|
|
92
|
-
* when the signal fires.
|
|
93
|
-
*
|
|
94
|
-
* Guarantees: strongly consistent — an item just written is always seen, and
|
|
95
|
-
* the ttl is honoured here rather than waited for.
|
|
96
|
-
*/
|
|
97
|
-
async function getItem(context, address, signal) {
|
|
98
|
-
const { namespace, key } = address;
|
|
99
|
-
const record = await readRow(context, namespace, key, signal);
|
|
100
|
-
if (!record)
|
|
101
|
-
return null;
|
|
102
|
-
try {
|
|
103
|
-
return await (0, rows_1.readStoreItem)(context, record, signal);
|
|
104
|
-
}
|
|
105
|
-
catch (error) {
|
|
106
|
-
if (!(0, codec_1.isMissingObjectError)(error))
|
|
107
|
-
throw error;
|
|
108
|
-
const fresh = await readRow(context, namespace, key, signal);
|
|
109
|
-
if (!fresh)
|
|
110
|
-
return null;
|
|
111
|
-
if (sameObject(record, fresh))
|
|
112
|
-
throw error;
|
|
113
|
-
return (0, rows_1.readStoreItem)(context, fresh, signal);
|
|
114
|
-
}
|
|
115
|
-
}
|