@farukada/aws-langgraph-dynamodb-ts 1.0.0-rc.1 → 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 +1820 -290
- package/dist/cjs/backfill/backfill.d.ts +171 -0
- package/dist/cjs/backfill/backfill.js +177 -0
- package/dist/cjs/checkpointer/actions/delete-thread.d.ts +50 -0
- package/dist/cjs/checkpointer/actions/delete-thread.js +26 -0
- package/dist/cjs/checkpointer/actions/get-tuple.d.ts +36 -0
- package/dist/cjs/checkpointer/actions/get-tuple.js +22 -0
- package/dist/cjs/checkpointer/actions/list.d.ts +55 -0
- package/dist/cjs/checkpointer/actions/list.js +70 -0
- package/dist/cjs/checkpointer/actions/put-writes.d.ts +49 -0
- package/dist/cjs/checkpointer/actions/put-writes.js +21 -0
- package/dist/cjs/checkpointer/actions/put.d.ts +95 -0
- package/dist/cjs/checkpointer/actions/put.js +79 -0
- package/dist/cjs/checkpointer/internal/delta-history.d.ts +124 -0
- package/dist/cjs/checkpointer/internal/delta-history.js +131 -0
- package/dist/cjs/checkpointer/internal/listing.d.ts +149 -0
- package/dist/cjs/checkpointer/internal/listing.js +104 -0
- package/dist/cjs/checkpointer/internal/parse.d.ts +298 -0
- package/dist/cjs/checkpointer/internal/parse.js +184 -0
- package/dist/cjs/checkpointer/internal/pending-writes.d.ts +314 -0
- package/dist/cjs/checkpointer/internal/pending-writes.js +241 -0
- package/dist/cjs/checkpointer/internal/read.d.ts +135 -0
- package/dist/cjs/checkpointer/internal/read.js +132 -0
- package/dist/cjs/checkpointer/internal/rows.d.ts +644 -0
- package/dist/cjs/checkpointer/internal/rows.js +356 -0
- package/dist/cjs/checkpointer/internal/setup.d.ts +47 -0
- package/dist/cjs/checkpointer/internal/setup.js +25 -0
- package/dist/cjs/checkpointer/saver.d.ts +306 -0
- package/dist/cjs/checkpointer/saver.js +56 -0
- package/dist/cjs/checkpointer/types.d.ts +51 -0
- package/dist/cjs/factory/factory.d.ts +154 -0
- package/dist/cjs/factory/factory.js +137 -0
- package/dist/{factory → cjs/factory}/types.d.ts +33 -14
- package/dist/cjs/history/actions/add-messages.d.ts +51 -0
- package/dist/cjs/history/actions/add-messages.js +17 -0
- package/dist/cjs/history/actions/clear.d.ts +52 -0
- package/dist/cjs/history/actions/clear.js +29 -0
- package/dist/cjs/history/actions/get-messages.d.ts +60 -0
- package/dist/cjs/history/actions/get-messages.js +58 -0
- package/dist/cjs/history/actions/list-sessions.d.ts +55 -0
- package/dist/cjs/history/actions/list-sessions.js +67 -0
- package/dist/cjs/history/actions/reconcile-count.d.ts +49 -0
- package/dist/cjs/history/actions/reconcile-count.js +8 -0
- package/dist/cjs/history/chat-message-history.d.ts +267 -0
- package/dist/cjs/history/chat-message-history.js +61 -0
- package/dist/cjs/history/internal/append.d.ts +244 -0
- package/dist/cjs/history/internal/append.js +267 -0
- package/dist/cjs/history/internal/message-read.d.ts +84 -0
- package/dist/cjs/history/internal/message-read.js +93 -0
- package/dist/cjs/history/internal/parse.d.ts +153 -0
- package/dist/cjs/history/internal/parse.js +113 -0
- package/dist/cjs/history/internal/rows.d.ts +196 -0
- package/dist/cjs/history/internal/rows.js +96 -0
- package/dist/cjs/history/internal/session.d.ts +350 -0
- package/dist/cjs/history/internal/session.js +296 -0
- package/dist/cjs/history/internal/setup.d.ts +64 -0
- package/dist/cjs/history/internal/setup.js +60 -0
- package/dist/cjs/history/session-adapter.d.ts +112 -0
- package/dist/cjs/history/session-adapter.js +38 -0
- package/dist/cjs/history/types.d.ts +102 -0
- package/dist/cjs/index.d.ts +53 -0
- package/dist/cjs/index.js +25 -0
- package/dist/cjs/package.json +1 -0
- package/dist/cjs/shared/adapter.d.ts +146 -0
- package/dist/cjs/shared/adapter.js +70 -0
- package/dist/cjs/shared/clock.d.ts +52 -0
- package/dist/cjs/shared/clock.js +14 -0
- package/dist/cjs/shared/codec/codec.d.ts +336 -0
- package/dist/cjs/shared/codec/codec.js +162 -0
- package/dist/cjs/shared/codec/compression.d.ts +66 -0
- package/dist/cjs/shared/codec/compression.js +45 -0
- package/dist/cjs/shared/codec/json-serde.d.ts +80 -0
- package/dist/cjs/shared/codec/json-serde.js +58 -0
- package/dist/{shared → cjs/shared}/codec/s3/client-types.d.ts +22 -2
- package/dist/{shared → cjs/shared}/codec/s3/client-types.js +0 -1
- package/dist/cjs/shared/codec/s3/client.d.ts +63 -0
- package/dist/cjs/shared/codec/s3/client.js +78 -0
- package/dist/cjs/shared/codec/s3/config.d.ts +260 -0
- package/dist/cjs/shared/codec/s3/config.js +92 -0
- package/dist/cjs/shared/codec/s3/lifecycle.d.ts +220 -0
- package/dist/cjs/shared/codec/s3/lifecycle.js +223 -0
- package/dist/cjs/shared/codec/s3/offloader.d.ts +428 -0
- package/dist/cjs/shared/codec/s3/offloader.js +289 -0
- package/dist/cjs/shared/concurrency.d.ts +43 -0
- package/dist/{shared → cjs/shared}/concurrency.js +10 -9
- package/dist/cjs/shared/dynamodb/abort.d.ts +47 -0
- package/dist/cjs/shared/dynamodb/abort.js +16 -0
- package/dist/cjs/shared/dynamodb/batch-write.d.ts +86 -0
- package/dist/cjs/shared/dynamodb/batch-write.js +79 -0
- package/dist/cjs/shared/dynamodb/cancellation.d.ts +124 -0
- package/dist/cjs/shared/dynamodb/cancellation.js +37 -0
- package/dist/cjs/shared/dynamodb/client.d.ts +177 -0
- package/dist/{shared → cjs/shared}/dynamodb/client.js +12 -14
- package/dist/cjs/shared/dynamodb/idempotent-write.d.ts +596 -0
- package/dist/cjs/shared/dynamodb/idempotent-write.js +173 -0
- package/dist/cjs/shared/dynamodb/paginate.d.ts +111 -0
- package/dist/cjs/shared/dynamodb/paginate.js +90 -0
- package/dist/cjs/shared/dynamodb/partition-delete.d.ts +204 -0
- package/dist/cjs/shared/dynamodb/partition-delete.js +177 -0
- package/dist/cjs/shared/dynamodb/recency-index.d.ts +243 -0
- package/dist/cjs/shared/dynamodb/recency-index.js +146 -0
- package/dist/cjs/shared/dynamodb/retry.d.ts +317 -0
- 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/cjs/shared/dynamodb/table-schema.d.ts +199 -0
- package/dist/cjs/shared/dynamodb/table-schema.js +52 -0
- package/dist/cjs/shared/errors/base-error.d.ts +231 -0
- package/dist/cjs/shared/errors/base-error.js +73 -0
- package/dist/cjs/shared/errors/boundary.d.ts +86 -0
- 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/cjs/shared/errors/error-code.d.ts +95 -0
- package/dist/{shared → cjs/shared}/errors/error-code.js +12 -2
- package/dist/cjs/shared/errors/errors.d.ts +233 -0
- package/dist/cjs/shared/errors/errors.js +123 -0
- package/dist/cjs/shared/logging/logger.d.ts +80 -0
- package/dist/cjs/shared/logging/logger.js +30 -0
- package/dist/cjs/shared/logging/redaction.d.ts +123 -0
- package/dist/cjs/shared/logging/redaction.js +145 -0
- package/dist/cjs/shared/logging/secret-patterns.d.ts +227 -0
- package/dist/cjs/shared/logging/secret-patterns.js +93 -0
- package/dist/cjs/shared/logging/truncate.d.ts +197 -0
- package/dist/cjs/shared/logging/truncate.js +31 -0
- package/dist/cjs/shared/options.d.ts +100 -0
- package/dist/cjs/shared/ulid.d.ts +80 -0
- package/dist/{shared → cjs/shared}/ulid.js +7 -21
- package/dist/cjs/shared/validation/collaborators.d.ts +160 -0
- package/dist/cjs/shared/validation/collaborators.js +79 -0
- package/dist/cjs/shared/validation/option-shape.d.ts +91 -0
- package/dist/cjs/shared/validation/option-shape.js +31 -0
- package/dist/cjs/shared/validation/options.d.ts +145 -0
- package/dist/cjs/shared/validation/options.js +166 -0
- package/dist/cjs/shared/validation/primitives.d.ts +292 -0
- package/dist/cjs/shared/validation/primitives.js +114 -0
- package/dist/cjs/shared/validation/ttl.d.ts +94 -0
- package/dist/cjs/shared/validation/ttl.js +52 -0
- package/dist/cjs/store/actions/list-namespaces.d.ts +79 -0
- package/dist/cjs/store/actions/list-namespaces.js +92 -0
- package/dist/cjs/store/actions/put.d.ts +43 -0
- package/dist/cjs/store/actions/put.js +49 -0
- package/dist/cjs/store/actions/reconcile-vector-index.d.ts +38 -0
- package/dist/cjs/store/actions/reconcile-vector-index.js +13 -0
- package/dist/cjs/store/actions/search.d.ts +38 -0
- 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/cjs/store/internal/filter.d.ts +43 -0
- 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/cjs/store/internal/item-write.d.ts +270 -0
- package/dist/cjs/store/internal/item-write.js +181 -0
- package/dist/cjs/store/internal/parse.d.ts +230 -0
- package/dist/cjs/store/internal/parse.js +180 -0
- package/dist/cjs/store/internal/rows.d.ts +359 -0
- package/dist/cjs/store/internal/rows.js +166 -0
- package/dist/cjs/store/internal/semantic-search.d.ts +168 -0
- package/dist/{store/internal/text-path.js → cjs/store/internal/semantic-search.js} +92 -28
- package/dist/cjs/store/internal/setup.d.ts +96 -0
- package/dist/cjs/store/internal/setup.js +103 -0
- package/dist/cjs/store/internal/table-search.d.ts +100 -0
- package/dist/cjs/store/internal/table-search.js +123 -0
- package/dist/cjs/store/internal/vector-index.d.ts +258 -0
- package/dist/cjs/store/internal/vector-index.js +269 -0
- package/dist/cjs/store/store.d.ts +329 -0
- package/dist/cjs/store/store.js +97 -0
- package/dist/cjs/store/types.d.ts +111 -0
- package/dist/cjs/store/vector-backend.d.ts +104 -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/esm/checkpointer/actions/delete-thread.d.ts +50 -0
- package/dist/esm/checkpointer/actions/delete-thread.js +23 -0
- package/dist/esm/checkpointer/actions/get-tuple.d.ts +36 -0
- 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/esm/checkpointer/actions/put-writes.d.ts +49 -0
- 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/esm/checkpointer/internal/listing.d.ts +149 -0
- 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/esm/checkpointer/saver.d.ts +306 -0
- 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/esm/history/actions/add-messages.d.ts +51 -0
- package/dist/esm/history/actions/add-messages.js +14 -0
- package/dist/esm/history/actions/clear.d.ts +52 -0
- 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/esm/history/actions/reconcile-count.d.ts +49 -0
- package/dist/esm/history/actions/reconcile-count.js +5 -0
- package/dist/esm/history/chat-message-history.d.ts +267 -0
- 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/esm/history/internal/rows.d.ts +196 -0
- 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/esm/history/session-adapter.d.ts +112 -0
- 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/esm/shared/clock.d.ts +52 -0
- 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/esm/shared/codec/s3/config.d.ts +260 -0
- 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/esm/shared/concurrency.d.ts +43 -0
- package/dist/esm/shared/concurrency.js +27 -0
- package/dist/esm/shared/dynamodb/abort.d.ts +47 -0
- 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/esm/shared/dynamodb/cancellation.d.ts +124 -0
- package/dist/esm/shared/dynamodb/cancellation.js +30 -0
- package/dist/esm/shared/dynamodb/client.d.ts +177 -0
- package/dist/esm/shared/dynamodb/client.js +35 -0
- package/dist/esm/shared/dynamodb/idempotent-write.d.ts +596 -0
- 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/esm/shared/dynamodb/table-schema.d.ts +199 -0
- 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/esm/shared/errors/error-code.d.ts +95 -0
- package/dist/esm/shared/errors/error-code.js +24 -0
- package/dist/esm/shared/errors/errors.d.ts +233 -0
- package/dist/esm/shared/errors/errors.js +110 -0
- package/dist/esm/shared/logging/logger.d.ts +80 -0
- 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/esm/shared/logging/secret-patterns.d.ts +227 -0
- package/dist/esm/shared/logging/secret-patterns.js +83 -0
- package/dist/esm/shared/logging/truncate.d.ts +197 -0
- 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/esm/shared/ulid.d.ts +80 -0
- package/dist/esm/shared/ulid.js +77 -0
- package/dist/esm/shared/validation/collaborators.d.ts +160 -0
- package/dist/esm/shared/validation/collaborators.js +70 -0
- package/dist/esm/shared/validation/option-shape.d.ts +91 -0
- 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/esm/shared/validation/primitives.d.ts +292 -0
- 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/esm/store/actions/reconcile-vector-index.d.ts +38 -0
- 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/esm/store/internal/rows.d.ts +359 -0
- 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/esm/store/store.d.ts +329 -0
- 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 +68 -46
- package/dist/checkpointer/actions/delete-thread.d.ts +0 -10
- package/dist/checkpointer/actions/delete-thread.js +0 -38
- package/dist/checkpointer/actions/get-tuple.d.ts +0 -11
- package/dist/checkpointer/actions/get-tuple.js +0 -25
- package/dist/checkpointer/actions/list.d.ts +0 -20
- package/dist/checkpointer/actions/list.js +0 -113
- package/dist/checkpointer/actions/put-writes.d.ts +0 -15
- package/dist/checkpointer/actions/put-writes.js +0 -62
- package/dist/checkpointer/actions/put.d.ts +0 -17
- package/dist/checkpointer/actions/put.js +0 -73
- package/dist/checkpointer/internal/assemble.d.ts +0 -17
- package/dist/checkpointer/internal/assemble.js +0 -38
- package/dist/checkpointer/internal/checkpoint-write-verify.d.ts +0 -24
- package/dist/checkpointer/internal/checkpoint-write-verify.js +0 -67
- package/dist/checkpointer/internal/configurable.d.ts +0 -12
- package/dist/checkpointer/internal/configurable.js +0 -24
- package/dist/checkpointer/internal/fetch.d.ts +0 -19
- package/dist/checkpointer/internal/fetch.js +0 -88
- package/dist/checkpointer/internal/filter-match.d.ts +0 -13
- package/dist/checkpointer/internal/filter-match.js +0 -15
- package/dist/checkpointer/internal/item-reader.d.ts +0 -66
- package/dist/checkpointer/internal/item-reader.js +0 -113
- package/dist/checkpointer/internal/item-writer.d.ts +0 -35
- package/dist/checkpointer/internal/item-writer.js +0 -107
- package/dist/checkpointer/internal/keys.d.ts +0 -41
- package/dist/checkpointer/internal/keys.js +0 -117
- package/dist/checkpointer/internal/list-scope.d.ts +0 -61
- package/dist/checkpointer/internal/list-scope.js +0 -108
- package/dist/checkpointer/internal/pending-sends.d.ts +0 -13
- package/dist/checkpointer/internal/pending-sends.js +0 -29
- package/dist/checkpointer/internal/query.d.ts +0 -21
- package/dist/checkpointer/internal/query.js +0 -42
- package/dist/checkpointer/internal/regular-write.d.ts +0 -28
- package/dist/checkpointer/internal/regular-write.js +0 -66
- package/dist/checkpointer/internal/setup.d.ts +0 -33
- package/dist/checkpointer/internal/setup.js +0 -38
- package/dist/checkpointer/internal/special-write-cas.d.ts +0 -29
- package/dist/checkpointer/internal/special-write-cas.js +0 -104
- package/dist/checkpointer/internal/special-write-cleanup.d.ts +0 -23
- package/dist/checkpointer/internal/special-write-cleanup.js +0 -50
- package/dist/checkpointer/internal/special-write-verify.d.ts +0 -53
- package/dist/checkpointer/internal/special-write-verify.js +0 -80
- package/dist/checkpointer/internal/stored-channels.d.ts +0 -31
- package/dist/checkpointer/internal/stored-channels.js +0 -70
- package/dist/checkpointer/internal/validation.d.ts +0 -18
- package/dist/checkpointer/internal/validation.js +0 -40
- package/dist/checkpointer/internal/write-guard.d.ts +0 -20
- package/dist/checkpointer/internal/write-guard.js +0 -48
- package/dist/checkpointer/internal/write-index.d.ts +0 -36
- package/dist/checkpointer/internal/write-index.js +0 -41
- package/dist/checkpointer/saver.d.ts +0 -70
- package/dist/checkpointer/saver.js +0 -105
- package/dist/checkpointer/types.d.ts +0 -58
- package/dist/factory/factory.d.ts +0 -40
- package/dist/factory/factory.js +0 -87
- package/dist/history/actions/add-messages.d.ts +0 -15
- package/dist/history/actions/add-messages.js +0 -77
- package/dist/history/actions/clear.d.ts +0 -10
- package/dist/history/actions/clear.js +0 -34
- package/dist/history/actions/get-messages.d.ts +0 -17
- package/dist/history/actions/get-messages.js +0 -79
- package/dist/history/actions/list-sessions.d.ts +0 -13
- package/dist/history/actions/list-sessions.js +0 -53
- package/dist/history/actions/reconcile-count.d.ts +0 -12
- package/dist/history/actions/reconcile-count.js +0 -64
- package/dist/history/chat-message-history.d.ts +0 -73
- package/dist/history/chat-message-history.js +0 -111
- package/dist/history/internal/append-saga.d.ts +0 -25
- package/dist/history/internal/append-saga.js +0 -79
- package/dist/history/internal/compensation.d.ts +0 -25
- package/dist/history/internal/compensation.js +0 -92
- package/dist/history/internal/item-mapper.d.ts +0 -9
- package/dist/history/internal/item-mapper.js +0 -27
- package/dist/history/internal/keys.d.ts +0 -16
- package/dist/history/internal/keys.js +0 -48
- package/dist/history/internal/message-chunker.d.ts +0 -13
- package/dist/history/internal/message-chunker.js +0 -67
- package/dist/history/internal/message-transaction.d.ts +0 -25
- package/dist/history/internal/message-transaction.js +0 -61
- package/dist/history/internal/message-window.d.ts +0 -17
- package/dist/history/internal/message-window.js +0 -49
- package/dist/history/internal/query.d.ts +0 -23
- package/dist/history/internal/query.js +0 -39
- package/dist/history/internal/session-count.d.ts +0 -47
- package/dist/history/internal/session-count.js +0 -115
- package/dist/history/internal/session-title.d.ts +0 -19
- package/dist/history/internal/session-title.js +0 -43
- package/dist/history/internal/session-update.d.ts +0 -27
- package/dist/history/internal/session-update.js +0 -69
- package/dist/history/internal/setup.d.ts +0 -31
- package/dist/history/internal/setup.js +0 -43
- package/dist/history/internal/title-generator.d.ts +0 -12
- package/dist/history/internal/title-generator.js +0 -41
- package/dist/history/internal/ttl-anchor.d.ts +0 -24
- package/dist/history/internal/ttl-anchor.js +0 -38
- package/dist/history/internal/validation.d.ts +0 -25
- package/dist/history/internal/validation.js +0 -53
- package/dist/history/session-adapter.d.ts +0 -29
- package/dist/history/session-adapter.js +0 -35
- package/dist/history/types.d.ts +0 -69
- package/dist/index.d.ts +0 -29
- package/dist/index.js +0 -32
- package/dist/shared/clock.d.ts +0 -8
- package/dist/shared/clock.js +0 -16
- package/dist/shared/codec/codec.d.ts +0 -53
- package/dist/shared/codec/codec.js +0 -66
- package/dist/shared/codec/compression.d.ts +0 -24
- package/dist/shared/codec/compression.js +0 -48
- package/dist/shared/codec/descriptor-keys.d.ts +0 -12
- package/dist/shared/codec/descriptor-keys.js +0 -14
- package/dist/shared/codec/encode.d.ts +0 -13
- package/dist/shared/codec/encode.js +0 -43
- package/dist/shared/codec/json-serde.d.ts +0 -7
- package/dist/shared/codec/json-serde.js +0 -17
- package/dist/shared/codec/payload-loss.d.ts +0 -12
- package/dist/shared/codec/payload-loss.js +0 -38
- package/dist/shared/codec/s3/adapter-config.d.ts +0 -13
- package/dist/shared/codec/s3/adapter-config.js +0 -22
- package/dist/shared/codec/s3/bounded-body.d.ts +0 -14
- package/dist/shared/codec/s3/bounded-body.js +0 -47
- package/dist/shared/codec/s3/client.d.ts +0 -18
- package/dist/shared/codec/s3/client.js +0 -46
- package/dist/shared/codec/s3/config.d.ts +0 -51
- package/dist/shared/codec/s3/config.js +0 -58
- package/dist/shared/codec/s3/delete.d.ts +0 -7
- package/dist/shared/codec/s3/delete.js +0 -28
- package/dist/shared/codec/s3/key-scope.d.ts +0 -23
- package/dist/shared/codec/s3/key-scope.js +0 -44
- package/dist/shared/codec/s3/lifecycle.d.ts +0 -14
- package/dist/shared/codec/s3/lifecycle.js +0 -63
- package/dist/shared/codec/s3/offloader.d.ts +0 -44
- package/dist/shared/codec/s3/offloader.js +0 -118
- package/dist/shared/codec/s3/orphans.d.ts +0 -23
- package/dist/shared/codec/s3/orphans.js +0 -71
- package/dist/shared/codec/s3/read-write.d.ts +0 -18
- package/dist/shared/codec/s3/read-write.js +0 -51
- package/dist/shared/codec/s3/retry.d.ts +0 -5
- package/dist/shared/codec/s3/retry.js +0 -22
- package/dist/shared/concurrency.d.ts +0 -6
- package/dist/shared/constants.d.ts +0 -112
- package/dist/shared/constants.js +0 -115
- package/dist/shared/dynamodb/abort.d.ts +0 -9
- package/dist/shared/dynamodb/abort.js +0 -27
- package/dist/shared/dynamodb/backoff.d.ts +0 -15
- package/dist/shared/dynamodb/backoff.js +0 -48
- package/dist/shared/dynamodb/batch-write.d.ts +0 -22
- package/dist/shared/dynamodb/batch-write.js +0 -53
- package/dist/shared/dynamodb/cancellation.d.ts +0 -6
- package/dist/shared/dynamodb/cancellation.js +0 -7
- package/dist/shared/dynamodb/client.d.ts +0 -28
- package/dist/shared/dynamodb/conditional-put.d.ts +0 -67
- package/dist/shared/dynamodb/conditional-put.js +0 -76
- package/dist/shared/dynamodb/drain-unprocessed.d.ts +0 -21
- package/dist/shared/dynamodb/drain-unprocessed.js +0 -43
- package/dist/shared/dynamodb/expiry.d.ts +0 -16
- package/dist/shared/dynamodb/expiry.js +0 -29
- package/dist/shared/dynamodb/paginate-core.d.ts +0 -24
- package/dist/shared/dynamodb/paginate-core.js +0 -82
- package/dist/shared/dynamodb/paginate.d.ts +0 -14
- package/dist/shared/dynamodb/paginate.js +0 -19
- package/dist/shared/dynamodb/partition-delete.d.ts +0 -39
- package/dist/shared/dynamodb/partition-delete.js +0 -71
- package/dist/shared/dynamodb/retry-classifier.d.ts +0 -17
- package/dist/shared/dynamodb/retry-classifier.js +0 -118
- package/dist/shared/dynamodb/retry-policy.d.ts +0 -26
- package/dist/shared/dynamodb/retry-policy.js +0 -22
- package/dist/shared/dynamodb/retry.d.ts +0 -31
- package/dist/shared/dynamodb/retry.js +0 -57
- package/dist/shared/dynamodb/scan.d.ts +0 -14
- package/dist/shared/dynamodb/scan.js +0 -19
- package/dist/shared/dynamodb/types.d.ts +0 -23
- package/dist/shared/errors/base-error.d.ts +0 -30
- package/dist/shared/errors/base-error.js +0 -27
- package/dist/shared/errors/boundary.d.ts +0 -18
- package/dist/shared/errors/boundary.js +0 -46
- package/dist/shared/errors/error-code.d.ts +0 -13
- package/dist/shared/errors/errors.d.ts +0 -68
- package/dist/shared/errors/errors.js +0 -114
- package/dist/shared/errors/upstream-error.d.ts +0 -16
- package/dist/shared/errors/upstream-error.js +0 -27
- package/dist/shared/errors/wrap-error.d.ts +0 -7
- package/dist/shared/errors/wrap-error.js +0 -15
- package/dist/shared/logging/logger.d.ts +0 -18
- package/dist/shared/logging/logger.js +0 -15
- package/dist/shared/logging/redaction-walk.d.ts +0 -23
- package/dist/shared/logging/redaction-walk.js +0 -112
- package/dist/shared/logging/redaction.d.ts +0 -39
- package/dist/shared/logging/redaction.js +0 -75
- package/dist/shared/logging/secret-patterns.d.ts +0 -92
- package/dist/shared/logging/secret-patterns.js +0 -133
- package/dist/shared/options.d.ts +0 -37
- package/dist/shared/ulid.d.ts +0 -23
- package/dist/shared/validation/options.d.ts +0 -8
- package/dist/shared/validation/options.js +0 -90
- package/dist/shared/validation/primitives.d.ts +0 -29
- package/dist/shared/validation/primitives.js +0 -82
- package/dist/shared/validation/ttl.d.ts +0 -28
- package/dist/shared/validation/ttl.js +0 -52
- package/dist/store/actions/get.d.ts +0 -13
- package/dist/store/actions/get.js +0 -73
- package/dist/store/actions/list-namespaces.d.ts +0 -8
- package/dist/store/actions/list-namespaces.js +0 -59
- package/dist/store/actions/put.d.ts +0 -10
- package/dist/store/actions/put.js +0 -96
- package/dist/store/actions/reconcile-vector-index.d.ts +0 -18
- package/dist/store/actions/reconcile-vector-index.js +0 -26
- package/dist/store/actions/search.d.ts +0 -9
- package/dist/store/actions/search.js +0 -34
- package/dist/store/internal/backend-search.d.ts +0 -4
- package/dist/store/internal/backend-search.js +0 -74
- package/dist/store/internal/batch-plan.d.ts +0 -11
- package/dist/store/internal/batch-plan.js +0 -52
- package/dist/store/internal/candidates.d.ts +0 -23
- package/dist/store/internal/candidates.js +0 -94
- package/dist/store/internal/filter.d.ts +0 -9
- package/dist/store/internal/filter.js +0 -85
- package/dist/store/internal/index-reconcile.d.ts +0 -21
- package/dist/store/internal/index-reconcile.js +0 -118
- package/dist/store/internal/index-sync.d.ts +0 -10
- package/dist/store/internal/index-sync.js +0 -25
- package/dist/store/internal/item-mapper.d.ts +0 -27
- package/dist/store/internal/item-mapper.js +0 -61
- package/dist/store/internal/keys.d.ts +0 -17
- package/dist/store/internal/keys.js +0 -41
- package/dist/store/internal/namespace-match.d.ts +0 -11
- package/dist/store/internal/namespace-match.js +0 -40
- package/dist/store/internal/option-validation.d.ts +0 -13
- package/dist/store/internal/option-validation.js +0 -77
- package/dist/store/internal/overwrite-swap.d.ts +0 -32
- package/dist/store/internal/overwrite-swap.js +0 -68
- package/dist/store/internal/persist.d.ts +0 -28
- package/dist/store/internal/persist.js +0 -64
- package/dist/store/internal/query.d.ts +0 -11
- package/dist/store/internal/query.js +0 -48
- package/dist/store/internal/ranker.d.ts +0 -18
- package/dist/store/internal/ranker.js +0 -39
- package/dist/store/internal/read-existing.d.ts +0 -23
- package/dist/store/internal/read-existing.js +0 -41
- package/dist/store/internal/score-direction.d.ts +0 -31
- package/dist/store/internal/score-direction.js +0 -38
- package/dist/store/internal/search-filter.d.ts +0 -3
- package/dist/store/internal/search-filter.js +0 -10
- package/dist/store/internal/semantic-search.d.ts +0 -34
- package/dist/store/internal/semantic-search.js +0 -87
- package/dist/store/internal/setup.d.ts +0 -36
- package/dist/store/internal/setup.js +0 -40
- package/dist/store/internal/text-path.d.ts +0 -17
- package/dist/store/internal/validation.d.ts +0 -18
- package/dist/store/internal/validation.js +0 -51
- package/dist/store/internal/write-verify.d.ts +0 -42
- package/dist/store/internal/write-verify.js +0 -71
- package/dist/store/store.d.ts +0 -61
- package/dist/store/store.js +0 -107
- package/dist/store/types.d.ts +0 -50
- package/dist/store/types.js +0 -2
- package/dist/store/vector-backend.d.ts +0 -43
- package/dist/store/vector-backend.js +0 -2
- /package/dist/{checkpointer → cjs/checkpointer}/types.js +0 -0
- /package/dist/{factory → cjs/factory}/types.js +0 -0
- /package/dist/{history → cjs/history}/types.js +0 -0
- /package/dist/{shared → cjs/shared}/options.js +0 -0
- /package/dist/{shared/dynamodb → cjs/store}/types.js +0 -0
|
@@ -1,70 +0,0 @@
|
|
|
1
|
-
import type { RunnableConfig } from '@langchain/core/runnables';
|
|
2
|
-
import { BaseCheckpointSaver, type ChannelVersions, type Checkpoint, type CheckpointListOptions, type CheckpointMetadata, type CheckpointTuple, type PendingWrite } from '@langchain/langgraph-checkpoint';
|
|
3
|
-
import type { CancelOptions } from '../shared/options';
|
|
4
|
-
import type { DynamoDBSaverOptions } from './types';
|
|
5
|
-
/**
|
|
6
|
-
* DynamoDB-backed LangGraph checkpoint saver. A thin orchestrator: it resolves
|
|
7
|
-
* its collaborators once and delegates every operation to a focused action.
|
|
8
|
-
* Every public method is the library's error boundary — a raw AWS SDK error
|
|
9
|
-
* escaping an action surfaces as an `UpstreamError`.
|
|
10
|
-
*/
|
|
11
|
-
export declare class DynamoDBSaver extends BaseCheckpointSaver {
|
|
12
|
-
private readonly context;
|
|
13
|
-
private readonly ownsClient;
|
|
14
|
-
private readonly ddbClient;
|
|
15
|
-
constructor(options: DynamoDBSaverOptions);
|
|
16
|
-
/**
|
|
17
|
-
* Read one checkpoint with its metadata and pending writes: the one
|
|
18
|
-
* `checkpoint_id` names, else the newest in the namespace. Strongly
|
|
19
|
-
* consistent, so a checkpoint just written is always seen. Returns
|
|
20
|
-
* `undefined` for an unknown thread or checkpoint, or a config without a
|
|
21
|
-
* thread.
|
|
22
|
-
* @throws ValidationError for a malformed identifier; UpstreamError, RetryExhaustedError, AbortError (`config.signal`).
|
|
23
|
-
*/
|
|
24
|
-
getTuple(config: RunnableConfig): Promise<CheckpointTuple | undefined>;
|
|
25
|
-
/**
|
|
26
|
-
* Stream checkpoints newest first: one namespace, every namespace of a
|
|
27
|
-
* thread when `checkpoint_ns` is omitted, or every thread in the table when
|
|
28
|
-
* `thread_id` is omitted (a table scan). Eventually consistent. `before`,
|
|
29
|
-
* `filter` and `limit` follow the reference savers.
|
|
30
|
-
* @remarks One read per page plus two per yielded tuple (see the README cost table).
|
|
31
|
-
* @throws ValidationError, UpstreamError, RetryExhaustedError, AbortError.
|
|
32
|
-
*/
|
|
33
|
-
list(config: RunnableConfig, options?: CheckpointListOptions): AsyncGenerator<CheckpointTuple>;
|
|
34
|
-
/**
|
|
35
|
-
* Store a checkpoint and its metadata in one transaction and return the
|
|
36
|
-
* config that addresses it. `config.checkpoint_id` becomes the parent;
|
|
37
|
-
* `newVersions` names the channels that changed, and only those plus the
|
|
38
|
-
* ones the parent stored are persisted. Last writer wins for a repeated
|
|
39
|
-
* `checkpoint_id`.
|
|
40
|
-
* @throws ValidationError; UpstreamError; RetryExhaustedError; AbortError; S3_OFFLOAD_FAILED when an offloaded payload cannot be uploaded.
|
|
41
|
-
*/
|
|
42
|
-
put(config: RunnableConfig, checkpoint: Checkpoint, metadata: CheckpointMetadata, newVersions?: ChannelVersions): Promise<RunnableConfig>;
|
|
43
|
-
/**
|
|
44
|
-
* Store a task's pending writes for the checkpoint `config` names, one row
|
|
45
|
-
* per write, written in parallel. Regular writes are first-write-wins;
|
|
46
|
-
* special channels (`__interrupt__`, `__resume__`, `__error__`,
|
|
47
|
-
* `__scheduled__`) overwrite, guarded so two concurrent calls never orphan
|
|
48
|
-
* an offloaded object.
|
|
49
|
-
* @throws ValidationError when `checkpoint_id` is missing or a channel is malformed; UpstreamError; RetryExhaustedError; AbortError.
|
|
50
|
-
*/
|
|
51
|
-
putWrites(config: RunnableConfig, writes: PendingWrite[], taskId: string): Promise<void>;
|
|
52
|
-
/**
|
|
53
|
-
* Delete every checkpoint, payload and pending write of a thread and their
|
|
54
|
-
* offloaded objects. Single pass: call it when the thread is quiescent.
|
|
55
|
-
* @throws BatchWriteAllIncompleteError when a delete batch does not fully drain; UpstreamError; AbortError (`options.signal`).
|
|
56
|
-
*/
|
|
57
|
-
deleteThread(threadId: string, options?: CancelOptions): Promise<void>;
|
|
58
|
-
/** Release owned resources (the underlying client and any S3 client). */
|
|
59
|
-
destroy(): void;
|
|
60
|
-
/**
|
|
61
|
-
* Provision an S3 lifecycle expiration rule matching the configured TTL, so
|
|
62
|
-
* offloaded objects don't outlive their DynamoDB item forever. No-ops when
|
|
63
|
-
* S3 offload or TTL isn't configured; throws when the bucket cannot be read
|
|
64
|
-
* or written. Requires the `s3:GetLifecycleConfiguration` /
|
|
65
|
-
* `s3:PutLifecycleConfiguration` bucket-level permissions (broader than the
|
|
66
|
-
* object-level CRUD the rest of S3 offload needs) — call this once during
|
|
67
|
-
* deployment/provisioning, not per-request.
|
|
68
|
-
*/
|
|
69
|
-
ensureS3LifecycleRule(): Promise<void>;
|
|
70
|
-
}
|
|
@@ -1,105 +0,0 @@
|
|
|
1
|
-
"use strict";
|
|
2
|
-
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
|
-
exports.DynamoDBSaver = void 0;
|
|
4
|
-
const langgraph_checkpoint_1 = require("@langchain/langgraph-checkpoint");
|
|
5
|
-
const boundary_1 = require("../shared/errors/boundary");
|
|
6
|
-
const ttl_1 = require("../shared/validation/ttl");
|
|
7
|
-
const delete_thread_1 = require("./actions/delete-thread");
|
|
8
|
-
const get_tuple_1 = require("./actions/get-tuple");
|
|
9
|
-
const list_1 = require("./actions/list");
|
|
10
|
-
const put_1 = require("./actions/put");
|
|
11
|
-
const put_writes_1 = require("./actions/put-writes");
|
|
12
|
-
const setup_1 = require("./internal/setup");
|
|
13
|
-
/**
|
|
14
|
-
* DynamoDB-backed LangGraph checkpoint saver. A thin orchestrator: it resolves
|
|
15
|
-
* its collaborators once and delegates every operation to a focused action.
|
|
16
|
-
* Every public method is the library's error boundary — a raw AWS SDK error
|
|
17
|
-
* escaping an action surfaces as an `UpstreamError`.
|
|
18
|
-
*/
|
|
19
|
-
class DynamoDBSaver extends langgraph_checkpoint_1.BaseCheckpointSaver {
|
|
20
|
-
context;
|
|
21
|
-
ownsClient;
|
|
22
|
-
ddbClient;
|
|
23
|
-
constructor(options) {
|
|
24
|
-
super(options.serde);
|
|
25
|
-
const setup = (0, setup_1.setUpCheckpointer)(options, this.serde);
|
|
26
|
-
this.context = setup.context;
|
|
27
|
-
this.ownsClient = setup.ownsClient;
|
|
28
|
-
this.ddbClient = setup.ddbClient;
|
|
29
|
-
}
|
|
30
|
-
/**
|
|
31
|
-
* Read one checkpoint with its metadata and pending writes: the one
|
|
32
|
-
* `checkpoint_id` names, else the newest in the namespace. Strongly
|
|
33
|
-
* consistent, so a checkpoint just written is always seen. Returns
|
|
34
|
-
* `undefined` for an unknown thread or checkpoint, or a config without a
|
|
35
|
-
* thread.
|
|
36
|
-
* @throws ValidationError for a malformed identifier; UpstreamError, RetryExhaustedError, AbortError (`config.signal`).
|
|
37
|
-
*/
|
|
38
|
-
async getTuple(config) {
|
|
39
|
-
return (0, boundary_1.guardPublic)('saver.getTuple', () => (0, get_tuple_1.getCheckpointTuple)(this.context, config));
|
|
40
|
-
}
|
|
41
|
-
/**
|
|
42
|
-
* Stream checkpoints newest first: one namespace, every namespace of a
|
|
43
|
-
* thread when `checkpoint_ns` is omitted, or every thread in the table when
|
|
44
|
-
* `thread_id` is omitted (a table scan). Eventually consistent. `before`,
|
|
45
|
-
* `filter` and `limit` follow the reference savers.
|
|
46
|
-
* @remarks One read per page plus two per yielded tuple (see the README cost table).
|
|
47
|
-
* @throws ValidationError, UpstreamError, RetryExhaustedError, AbortError.
|
|
48
|
-
*/
|
|
49
|
-
list(config, options) {
|
|
50
|
-
return (0, boundary_1.guardPublicIterable)('saver.list', (0, list_1.listCheckpoints)(this.context, config, options));
|
|
51
|
-
}
|
|
52
|
-
/**
|
|
53
|
-
* Store a checkpoint and its metadata in one transaction and return the
|
|
54
|
-
* config that addresses it. `config.checkpoint_id` becomes the parent;
|
|
55
|
-
* `newVersions` names the channels that changed, and only those plus the
|
|
56
|
-
* ones the parent stored are persisted. Last writer wins for a repeated
|
|
57
|
-
* `checkpoint_id`.
|
|
58
|
-
* @throws ValidationError; UpstreamError; RetryExhaustedError; AbortError; S3_OFFLOAD_FAILED when an offloaded payload cannot be uploaded.
|
|
59
|
-
*/
|
|
60
|
-
async put(config, checkpoint, metadata, newVersions) {
|
|
61
|
-
return (0, boundary_1.guardPublic)('saver.put', () => (0, put_1.putCheckpoint)(this.context, config, checkpoint, metadata, newVersions));
|
|
62
|
-
}
|
|
63
|
-
/**
|
|
64
|
-
* Store a task's pending writes for the checkpoint `config` names, one row
|
|
65
|
-
* per write, written in parallel. Regular writes are first-write-wins;
|
|
66
|
-
* special channels (`__interrupt__`, `__resume__`, `__error__`,
|
|
67
|
-
* `__scheduled__`) overwrite, guarded so two concurrent calls never orphan
|
|
68
|
-
* an offloaded object.
|
|
69
|
-
* @throws ValidationError when `checkpoint_id` is missing or a channel is malformed; UpstreamError; RetryExhaustedError; AbortError.
|
|
70
|
-
*/
|
|
71
|
-
async putWrites(config, writes, taskId) {
|
|
72
|
-
return (0, boundary_1.guardPublic)('saver.putWrites', () => (0, put_writes_1.putWrites)(this.context, config, writes, taskId));
|
|
73
|
-
}
|
|
74
|
-
/**
|
|
75
|
-
* Delete every checkpoint, payload and pending write of a thread and their
|
|
76
|
-
* offloaded objects. Single pass: call it when the thread is quiescent.
|
|
77
|
-
* @throws BatchWriteAllIncompleteError when a delete batch does not fully drain; UpstreamError; AbortError (`options.signal`).
|
|
78
|
-
*/
|
|
79
|
-
async deleteThread(threadId, options) {
|
|
80
|
-
return (0, boundary_1.guardPublic)('saver.deleteThread', () => (0, delete_thread_1.deleteThread)(this.context, threadId, options));
|
|
81
|
-
}
|
|
82
|
-
/** Release owned resources (the underlying client and any S3 client). */
|
|
83
|
-
destroy() {
|
|
84
|
-
this.context.offloader?.destroy();
|
|
85
|
-
if (this.ownsClient)
|
|
86
|
-
this.ddbClient?.destroy();
|
|
87
|
-
}
|
|
88
|
-
/**
|
|
89
|
-
* Provision an S3 lifecycle expiration rule matching the configured TTL, so
|
|
90
|
-
* offloaded objects don't outlive their DynamoDB item forever. No-ops when
|
|
91
|
-
* S3 offload or TTL isn't configured; throws when the bucket cannot be read
|
|
92
|
-
* or written. Requires the `s3:GetLifecycleConfiguration` /
|
|
93
|
-
* `s3:PutLifecycleConfiguration` bucket-level permissions (broader than the
|
|
94
|
-
* object-level CRUD the rest of S3 offload needs) — call this once during
|
|
95
|
-
* deployment/provisioning, not per-request.
|
|
96
|
-
*/
|
|
97
|
-
async ensureS3LifecycleRule() {
|
|
98
|
-
return (0, boundary_1.guardPublic)('saver.ensureS3LifecycleRule', async () => {
|
|
99
|
-
if (!this.context.offloader || !this.context.ttl)
|
|
100
|
-
return;
|
|
101
|
-
await this.context.offloader.ensureLifecycleRule((0, ttl_1.lifecycleExpirationDays)(this.context.ttl));
|
|
102
|
-
});
|
|
103
|
-
}
|
|
104
|
-
}
|
|
105
|
-
exports.DynamoDBSaver = DynamoDBSaver;
|
|
@@ -1,58 +0,0 @@
|
|
|
1
|
-
import type { SerializerProtocol } from '@langchain/langgraph-checkpoint';
|
|
2
|
-
import type { PayloadDescriptor } from '../shared/codec/codec';
|
|
3
|
-
import type { BaseAdapterOptions, CodecOptions } from '../shared/options';
|
|
4
|
-
/** Options for {@link DynamoDBSaver}. */
|
|
5
|
-
export type DynamoDBSaverOptions = BaseAdapterOptions & CodecOptions & {
|
|
6
|
-
/** Optional serializer override (defaults to LangGraph's JSON serializer). */
|
|
7
|
-
serde?: SerializerProtocol;
|
|
8
|
-
};
|
|
9
|
-
/** Narrowed shape of `RunnableConfig.configurable` the saver relies on. */
|
|
10
|
-
export interface CheckpointConfigurable {
|
|
11
|
-
thread_id: string;
|
|
12
|
-
checkpoint_ns?: string;
|
|
13
|
-
checkpoint_id?: string;
|
|
14
|
-
/** Legacy alias of `checkpoint_id` that older callers and API-shaped configs still emit. */
|
|
15
|
-
thread_ts?: string;
|
|
16
|
-
}
|
|
17
|
-
/** The lightweight `META#` item: structural fields + serialized metadata. */
|
|
18
|
-
export interface CheckpointMetaItem {
|
|
19
|
-
PK: string;
|
|
20
|
-
SK: string;
|
|
21
|
-
threadId: string;
|
|
22
|
-
checkpointNs: string;
|
|
23
|
-
checkpointId: string;
|
|
24
|
-
parentCheckpointId?: string;
|
|
25
|
-
metadata: PayloadDescriptor;
|
|
26
|
-
/**
|
|
27
|
-
* The channels whose values the PAYLOAD row holds: those the put's
|
|
28
|
-
* `newVersions` named plus those carried over from the parent. Absent on
|
|
29
|
-
* rows written before this attribute, which hold every value they were given.
|
|
30
|
-
*/
|
|
31
|
-
storedChannels?: string[];
|
|
32
|
-
ttl?: number;
|
|
33
|
-
}
|
|
34
|
-
/** The heavy `PAYLOAD#` item: the serialized checkpoint. */
|
|
35
|
-
export interface CheckpointPayloadItem {
|
|
36
|
-
PK: string;
|
|
37
|
-
SK: string;
|
|
38
|
-
checkpoint: PayloadDescriptor;
|
|
39
|
-
ttl?: number;
|
|
40
|
-
}
|
|
41
|
-
/** A `WRITE#` item: one pending write for a checkpoint/task. */
|
|
42
|
-
export interface CheckpointWriteItem {
|
|
43
|
-
PK: string;
|
|
44
|
-
SK: string;
|
|
45
|
-
taskId: string;
|
|
46
|
-
index: number;
|
|
47
|
-
channel: string;
|
|
48
|
-
/** Identifies the `putWrites` call that produced this row (see item-writer). */
|
|
49
|
-
writeGroup: string;
|
|
50
|
-
/**
|
|
51
|
-
* How many earlier writes in the same call already used this channel.
|
|
52
|
-
* Optional: rows written before 0.9.0 carry none and read back as 0, which
|
|
53
|
-
* is exactly the identity they were stored under.
|
|
54
|
-
*/
|
|
55
|
-
occurrence?: number;
|
|
56
|
-
value: PayloadDescriptor;
|
|
57
|
-
ttl?: number;
|
|
58
|
-
}
|
|
@@ -1,40 +0,0 @@
|
|
|
1
|
-
import { DynamoDBSaver } from '../checkpointer/saver';
|
|
2
|
-
import type { DynamoDBSaverOptions } from '../checkpointer/types';
|
|
3
|
-
import { DynamoDBChatMessageHistory } from '../history/chat-message-history';
|
|
4
|
-
import type { DynamoDBChatMessageHistoryOptions } from '../history/types';
|
|
5
|
-
import { DynamoDBStore } from '../store/store';
|
|
6
|
-
import type { DynamoDBStoreOptions } from '../store/types';
|
|
7
|
-
import type { CreateAllOptions, CreatedAdapters, FactoryBaseOptions } from './types';
|
|
8
|
-
/**
|
|
9
|
-
* Convenience constructors for the adapters. Individual `create*` methods each
|
|
10
|
-
* build their own client; {@link createAll} builds one shared client used by all
|
|
11
|
-
* three and returns a combined `destroy` that tears everything down once.
|
|
12
|
-
*/
|
|
13
|
-
export declare class DynamoDBFactory {
|
|
14
|
-
private readonly base;
|
|
15
|
-
constructor(base?: FactoryBaseOptions);
|
|
16
|
-
/** The base options every adapter inherits regardless of which client it uses. */
|
|
17
|
-
private sharedDefaults;
|
|
18
|
-
/**
|
|
19
|
-
* Per-adapter options replace the factory's client choice as a unit: a
|
|
20
|
-
* `client` handed to `createSaver` also displaces the base `clientConfig`
|
|
21
|
-
* and `createClient`, because carrying those along is exactly the ambiguous
|
|
22
|
-
* combination the adapters' option validation rejects. The shared
|
|
23
|
-
* `ttl`/`compression`/`s3`/`retry` defaults stay either way.
|
|
24
|
-
*/
|
|
25
|
-
private defaultsFor;
|
|
26
|
-
/** A saver on its own client, with the factory's shared defaults underneath `options`. */
|
|
27
|
-
createSaver(options: DynamoDBSaverOptions): DynamoDBSaver;
|
|
28
|
-
/** A store on its own client, with the factory's shared defaults underneath `options`. */
|
|
29
|
-
createStore(options: DynamoDBStoreOptions): DynamoDBStore;
|
|
30
|
-
/** A chat history on its own client, with the factory's shared defaults underneath `options`. */
|
|
31
|
-
createChatMessageHistory(options: DynamoDBChatMessageHistoryOptions): DynamoDBChatMessageHistory;
|
|
32
|
-
/**
|
|
33
|
-
* Build the adapters whose sections are given, all on one shared client and
|
|
34
|
-
* with the factory's shared defaults underneath each section. If any
|
|
35
|
-
* constructor throws (a store with `vectorBackend` but no `index`, say), the
|
|
36
|
-
* adapters already built and the freshly created client are destroyed
|
|
37
|
-
* before the error propagates, so a failed call leaks nothing.
|
|
38
|
-
*/
|
|
39
|
-
createAll<O extends CreateAllOptions>(options: O): CreatedAdapters<O>;
|
|
40
|
-
}
|
package/dist/factory/factory.js
DELETED
|
@@ -1,87 +0,0 @@
|
|
|
1
|
-
"use strict";
|
|
2
|
-
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
|
-
exports.DynamoDBFactory = void 0;
|
|
4
|
-
const saver_1 = require("../checkpointer/saver");
|
|
5
|
-
const chat_message_history_1 = require("../history/chat-message-history");
|
|
6
|
-
const client_1 = require("../shared/dynamodb/client");
|
|
7
|
-
const store_1 = require("../store/store");
|
|
8
|
-
function overridesClient(options) {
|
|
9
|
-
return (options.client !== undefined ||
|
|
10
|
-
options.clientConfig !== undefined ||
|
|
11
|
-
options.createClient !== undefined);
|
|
12
|
-
}
|
|
13
|
-
/**
|
|
14
|
-
* Convenience constructors for the adapters. Individual `create*` methods each
|
|
15
|
-
* build their own client; {@link createAll} builds one shared client used by all
|
|
16
|
-
* three and returns a combined `destroy` that tears everything down once.
|
|
17
|
-
*/
|
|
18
|
-
class DynamoDBFactory {
|
|
19
|
-
base;
|
|
20
|
-
constructor(base = {}) {
|
|
21
|
-
this.base = base;
|
|
22
|
-
}
|
|
23
|
-
/** The base options every adapter inherits regardless of which client it uses. */
|
|
24
|
-
sharedDefaults() {
|
|
25
|
-
const { logger, ttl, compression, s3, retry } = this.base;
|
|
26
|
-
return { logger, ttl, compression, s3, retry };
|
|
27
|
-
}
|
|
28
|
-
/**
|
|
29
|
-
* Per-adapter options replace the factory's client choice as a unit: a
|
|
30
|
-
* `client` handed to `createSaver` also displaces the base `clientConfig`
|
|
31
|
-
* and `createClient`, because carrying those along is exactly the ambiguous
|
|
32
|
-
* combination the adapters' option validation rejects. The shared
|
|
33
|
-
* `ttl`/`compression`/`s3`/`retry` defaults stay either way.
|
|
34
|
-
*/
|
|
35
|
-
defaultsFor(options) {
|
|
36
|
-
return overridesClient(options) ? this.sharedDefaults() : this.base;
|
|
37
|
-
}
|
|
38
|
-
/** A saver on its own client, with the factory's shared defaults underneath `options`. */
|
|
39
|
-
createSaver(options) {
|
|
40
|
-
return new saver_1.DynamoDBSaver({ ...this.defaultsFor(options), ...options });
|
|
41
|
-
}
|
|
42
|
-
/** A store on its own client, with the factory's shared defaults underneath `options`. */
|
|
43
|
-
createStore(options) {
|
|
44
|
-
return new store_1.DynamoDBStore({ ...this.defaultsFor(options), ...options });
|
|
45
|
-
}
|
|
46
|
-
/** A chat history on its own client, with the factory's shared defaults underneath `options`. */
|
|
47
|
-
createChatMessageHistory(options) {
|
|
48
|
-
return new chat_message_history_1.DynamoDBChatMessageHistory({ ...this.defaultsFor(options), ...options });
|
|
49
|
-
}
|
|
50
|
-
/**
|
|
51
|
-
* Build the adapters whose sections are given, all on one shared client and
|
|
52
|
-
* with the factory's shared defaults underneath each section. If any
|
|
53
|
-
* constructor throws (a store with `vectorBackend` but no `index`, say), the
|
|
54
|
-
* adapters already built and the freshly created client are destroyed
|
|
55
|
-
* before the error propagates, so a failed call leaks nothing.
|
|
56
|
-
*/
|
|
57
|
-
createAll(options) {
|
|
58
|
-
const resolved = (0, client_1.resolveDynamoDBClient)(this.base);
|
|
59
|
-
const shared = { ...this.sharedDefaults(), client: resolved.client };
|
|
60
|
-
const built = [];
|
|
61
|
-
/** Record an adapter the moment it exists, so a later failure can still tear it down. */
|
|
62
|
-
const track = (adapter) => {
|
|
63
|
-
built.push(adapter);
|
|
64
|
-
return adapter;
|
|
65
|
-
};
|
|
66
|
-
const destroy = () => {
|
|
67
|
-
for (const adapter of built)
|
|
68
|
-
adapter.destroy();
|
|
69
|
-
resolved.ddbClient?.destroy();
|
|
70
|
-
};
|
|
71
|
-
const { saver, store, history } = options;
|
|
72
|
-
try {
|
|
73
|
-
const adapters = {
|
|
74
|
-
saver: saver && track(new saver_1.DynamoDBSaver({ ...shared, ...saver })),
|
|
75
|
-
store: store && track(new store_1.DynamoDBStore({ ...shared, ...store })),
|
|
76
|
-
history: history && track(new chat_message_history_1.DynamoDBChatMessageHistory({ ...shared, ...history })),
|
|
77
|
-
destroy,
|
|
78
|
-
};
|
|
79
|
-
return adapters;
|
|
80
|
-
}
|
|
81
|
-
catch (error) {
|
|
82
|
-
destroy();
|
|
83
|
-
throw error;
|
|
84
|
-
}
|
|
85
|
-
}
|
|
86
|
-
}
|
|
87
|
-
exports.DynamoDBFactory = DynamoDBFactory;
|
|
@@ -1,15 +0,0 @@
|
|
|
1
|
-
import { type BaseMessage } from '@langchain/core/messages';
|
|
2
|
-
import type { HistoryContext } from '../internal/setup';
|
|
3
|
-
/**
|
|
4
|
-
* Append messages as one item per message. Each chunk writes its message Puts
|
|
5
|
-
* and the session-metadata count `ADD` in a single `TransactWriteItems`, so
|
|
6
|
-
* `messageCount` can never disagree with the stored messages. A creation-anchored
|
|
7
|
-
* TTL (resolved by read, set in the transaction via `if_not_exists`) gives every
|
|
8
|
-
* item one shared expiry. Batches larger than the 100-item / 4 MB transaction
|
|
9
|
-
* limits are split into chunks and applied with caller-observed atomicity: if a
|
|
10
|
-
* later chunk fails, the committed chunks are rolled back (see {@link appendChunks}).
|
|
11
|
-
*
|
|
12
|
-
* Per item the 400 KB DynamoDB limit still applies; enable S3 offloading so
|
|
13
|
-
* large payloads become small descriptors and stay well under the limits.
|
|
14
|
-
*/
|
|
15
|
-
export declare function addMessages(context: HistoryContext, sessionId: string, messages: BaseMessage[], signal?: AbortSignal): Promise<void>;
|
|
@@ -1,77 +0,0 @@
|
|
|
1
|
-
"use strict";
|
|
2
|
-
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
|
-
exports.addMessages = addMessages;
|
|
4
|
-
const messages_1 = require("@langchain/core/messages");
|
|
5
|
-
const clock_1 = require("../../shared/clock");
|
|
6
|
-
const descriptor_keys_1 = require("../../shared/codec/descriptor-keys");
|
|
7
|
-
const orphans_1 = require("../../shared/codec/s3/orphans");
|
|
8
|
-
const ttl_1 = require("../../shared/validation/ttl");
|
|
9
|
-
const append_saga_1 = require("../internal/append-saga");
|
|
10
|
-
const item_mapper_1 = require("../internal/item-mapper");
|
|
11
|
-
const message_chunker_1 = require("../internal/message-chunker");
|
|
12
|
-
const title_generator_1 = require("../internal/title-generator");
|
|
13
|
-
const ttl_anchor_1 = require("../internal/ttl-anchor");
|
|
14
|
-
const validation_1 = require("../internal/validation");
|
|
15
|
-
/** Message Puts per append transaction: the 100-item limit, less the metadata Update. */
|
|
16
|
-
const MAX_MESSAGES_PER_TRANSACTION = 99;
|
|
17
|
-
/**
|
|
18
|
-
* Aggregate byte budget per transaction. Held ~500 KB below DynamoDB's 4 MB
|
|
19
|
-
* `TransactWriteItems` ceiling so the conservative per-item estimate (see
|
|
20
|
-
* `ITEM_OVERHEAD_BYTES`) cannot push a chunk over the real limit at commit time.
|
|
21
|
-
*/
|
|
22
|
-
const MAX_TRANSACTION_BYTES = 3_500_000;
|
|
23
|
-
/**
|
|
24
|
-
* Encode every message, cleaning up after itself if one fails partway.
|
|
25
|
-
*
|
|
26
|
-
* Offloaded messages upload sequentially here, *before* the append saga's
|
|
27
|
-
* compensation machinery is ever reached, so a failure on message N used to
|
|
28
|
-
* strand messages 1..N-1's already-uploaded S3 objects with no cleanup path —
|
|
29
|
-
* the one gap in this subsystem's otherwise complete no-orphan guarantee.
|
|
30
|
-
* Nothing will ever reference those objects, so they are safe to delete
|
|
31
|
-
* unconditionally on the way out.
|
|
32
|
-
*/
|
|
33
|
-
async function buildItems(context, sessionId, stored, ttlTimestamp) {
|
|
34
|
-
const items = [];
|
|
35
|
-
try {
|
|
36
|
-
for (const message of stored) {
|
|
37
|
-
items.push(await (0, item_mapper_1.buildMessageItem)(context, sessionId, context.ulid(), message, ttlTimestamp));
|
|
38
|
-
}
|
|
39
|
-
}
|
|
40
|
-
catch (error) {
|
|
41
|
-
if (context.offloader) {
|
|
42
|
-
await (0, orphans_1.cleanUpS3Orphans)(context.offloader, (0, descriptor_keys_1.collectS3Keys)(items.map((item) => item.message)), 'history.addMessages.encode', context.logger);
|
|
43
|
-
}
|
|
44
|
-
throw error;
|
|
45
|
-
}
|
|
46
|
-
return items;
|
|
47
|
-
}
|
|
48
|
-
/**
|
|
49
|
-
* Append messages as one item per message. Each chunk writes its message Puts
|
|
50
|
-
* and the session-metadata count `ADD` in a single `TransactWriteItems`, so
|
|
51
|
-
* `messageCount` can never disagree with the stored messages. A creation-anchored
|
|
52
|
-
* TTL (resolved by read, set in the transaction via `if_not_exists`) gives every
|
|
53
|
-
* item one shared expiry. Batches larger than the 100-item / 4 MB transaction
|
|
54
|
-
* limits are split into chunks and applied with caller-observed atomicity: if a
|
|
55
|
-
* later chunk fails, the committed chunks are rolled back (see {@link appendChunks}).
|
|
56
|
-
*
|
|
57
|
-
* Per item the 400 KB DynamoDB limit still applies; enable S3 offloading so
|
|
58
|
-
* large payloads become small descriptors and stay well under the limits.
|
|
59
|
-
*/
|
|
60
|
-
async function addMessages(context, sessionId, messages, signal) {
|
|
61
|
-
(0, validation_1.validateSessionId)(sessionId);
|
|
62
|
-
if (messages.length === 0)
|
|
63
|
-
return;
|
|
64
|
-
const stored = (0, messages_1.mapChatMessagesToStoredMessages)(messages);
|
|
65
|
-
(0, validation_1.validateStorableMessages)(stored);
|
|
66
|
-
const anchor = context.ttl
|
|
67
|
-
? await (0, ttl_anchor_1.resolveTtlAnchor)(context, sessionId, (0, ttl_1.calculateTtlTimestamp)(context.ttl), signal)
|
|
68
|
-
: undefined;
|
|
69
|
-
const items = await buildItems(context, sessionId, stored, anchor?.ttlTimestamp);
|
|
70
|
-
const chunks = (0, message_chunker_1.chunkBySize)(items, MAX_MESSAGES_PER_TRANSACTION, MAX_TRANSACTION_BYTES);
|
|
71
|
-
await (0, append_saga_1.appendChunks)(context, sessionId, chunks, {
|
|
72
|
-
now: (0, clock_1.nowIso)(),
|
|
73
|
-
title: (0, title_generator_1.deriveTitle)(stored),
|
|
74
|
-
ttlTimestamp: anchor?.ttlTimestamp,
|
|
75
|
-
forceTtlRefresh: anchor?.refresh,
|
|
76
|
-
}, signal);
|
|
77
|
-
}
|
|
@@ -1,10 +0,0 @@
|
|
|
1
|
-
import type { HistoryContext } from '../internal/setup';
|
|
2
|
-
/**
|
|
3
|
-
* Delete a whole session: every message item plus the metadata item, best-effort
|
|
4
|
-
* deleting any offloaded S3 objects. Rows this adapter does not own are left in
|
|
5
|
-
* place and logged, so a shared-table partition holding a foreign row is never
|
|
6
|
-
* collaterally wiped.
|
|
7
|
-
*/
|
|
8
|
-
export declare function clearSession(context: HistoryContext, sessionId: string, options?: {
|
|
9
|
-
signal?: AbortSignal;
|
|
10
|
-
}): Promise<void>;
|
|
@@ -1,34 +0,0 @@
|
|
|
1
|
-
"use strict";
|
|
2
|
-
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
|
-
exports.clearSession = clearSession;
|
|
4
|
-
const partition_delete_1 = require("../../shared/dynamodb/partition-delete");
|
|
5
|
-
const retry_policy_1 = require("../../shared/dynamodb/retry-policy");
|
|
6
|
-
const keys_1 = require("../internal/keys");
|
|
7
|
-
const query_1 = require("../internal/query");
|
|
8
|
-
const validation_1 = require("../internal/validation");
|
|
9
|
-
/** The offloaded payload a chat-history row can reference. */
|
|
10
|
-
function descriptorsOf(row) {
|
|
11
|
-
return [row.message];
|
|
12
|
-
}
|
|
13
|
-
/**
|
|
14
|
-
* Delete a whole session: every message item plus the metadata item, best-effort
|
|
15
|
-
* deleting any offloaded S3 objects. Rows this adapter does not own are left in
|
|
16
|
-
* place and logged, so a shared-table partition holding a foreign row is never
|
|
17
|
-
* collaterally wiped.
|
|
18
|
-
*/
|
|
19
|
-
async function clearSession(context, sessionId, options = {}) {
|
|
20
|
-
(0, validation_1.validateSessionId)(sessionId);
|
|
21
|
-
await (0, partition_delete_1.deletePartitionRows)({
|
|
22
|
-
client: context.client,
|
|
23
|
-
tableName: context.tableName,
|
|
24
|
-
params: (0, query_1.sessionItemsQuery)(context.tableName, sessionId, { consistent: true }),
|
|
25
|
-
logger: context.logger,
|
|
26
|
-
retry: (0, retry_policy_1.retryFor)(context, options.signal),
|
|
27
|
-
signal: options.signal,
|
|
28
|
-
offloader: context.offloader,
|
|
29
|
-
operation: 'history.clear',
|
|
30
|
-
ownsSortKey: keys_1.isHistorySortKey,
|
|
31
|
-
descriptorsOf,
|
|
32
|
-
scope: [sessionId],
|
|
33
|
-
});
|
|
34
|
-
}
|
|
@@ -1,17 +0,0 @@
|
|
|
1
|
-
import { type BaseMessage } from '@langchain/core/messages';
|
|
2
|
-
import type { CancelOptions } from '../../shared/options';
|
|
3
|
-
import type { HistoryContext } from '../internal/setup';
|
|
4
|
-
import type { MessageWindow } from '../types';
|
|
5
|
-
/**
|
|
6
|
-
* Return a session's messages in chronological order — the whole session, or
|
|
7
|
-
* the window `options` selects: `limit` keeps only the newest `limit`
|
|
8
|
-
* messages, `before` only those appended before that instant (see
|
|
9
|
-
* {@link readWindow}). Items past their TTL are filtered out on read
|
|
10
|
-
* (DynamoDB's background TTL sweep can lag by up to 48h), so the returned
|
|
11
|
-
* history is never stale. A corrupt item — see
|
|
12
|
-
* {@link decodeMessage} for exactly what counts — is handled per
|
|
13
|
-
* `onCorruptMessage`: `'throw'` fails the read with the underlying error;
|
|
14
|
-
* `'skip'` (the default) reports it at `error` with its sort key and returns
|
|
15
|
-
* the rest. Every other failure propagates regardless of the policy.
|
|
16
|
-
*/
|
|
17
|
-
export declare function getMessages(context: HistoryContext, sessionId: string, options?: MessageWindow & CancelOptions): Promise<BaseMessage[]>;
|
|
@@ -1,79 +0,0 @@
|
|
|
1
|
-
"use strict";
|
|
2
|
-
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
|
-
exports.getMessages = getMessages;
|
|
4
|
-
const messages_1 = require("@langchain/core/messages");
|
|
5
|
-
const codec_1 = require("../../shared/codec/codec");
|
|
6
|
-
const payload_loss_1 = require("../../shared/codec/payload-loss");
|
|
7
|
-
const concurrency_1 = require("../../shared/concurrency");
|
|
8
|
-
const constants_1 = require("../../shared/constants");
|
|
9
|
-
const wrap_error_1 = require("../../shared/errors/wrap-error");
|
|
10
|
-
const message_window_1 = require("../internal/message-window");
|
|
11
|
-
const validation_1 = require("../internal/validation");
|
|
12
|
-
/**
|
|
13
|
-
* Decode one item in two stages so failures are classified by what caused
|
|
14
|
-
* them. Fetching the bytes (an S3 download, decompression) is infrastructure:
|
|
15
|
-
* a transport, throttling or permission failure there is rethrown, because
|
|
16
|
-
* dropping the message would hand the caller a silently truncated conversation
|
|
17
|
-
* that `RunnableWithMessageHistory` then re-persists. Only a *permanent* loss
|
|
18
|
-
* at that stage — the object is gone, or the decompression guard tripped — is
|
|
19
|
-
* corruption. Deserializing and rebuilding the message is pure data handling,
|
|
20
|
-
* so any failure there (bad bytes, a type LangChain cannot rebuild such as a
|
|
21
|
-
* `RemoveMessage`) is corruption too, and is confined to that one message.
|
|
22
|
-
*/
|
|
23
|
-
async function decodeMessage(context, item, sessionId) {
|
|
24
|
-
const deps = {
|
|
25
|
-
serde: context.serde,
|
|
26
|
-
compression: context.compression,
|
|
27
|
-
offloader: context.offloader,
|
|
28
|
-
};
|
|
29
|
-
let bytes;
|
|
30
|
-
try {
|
|
31
|
-
bytes = await (0, codec_1.readPayloadBytes)(item.message, deps, [sessionId]);
|
|
32
|
-
}
|
|
33
|
-
catch (error) {
|
|
34
|
-
if ((0, payload_loss_1.isPermanentPayloadLoss)(error))
|
|
35
|
-
return { kind: 'corrupt', error: error };
|
|
36
|
-
throw error;
|
|
37
|
-
}
|
|
38
|
-
try {
|
|
39
|
-
const stored = (await context.serde.loadsTyped(item.message.serdeType, bytes));
|
|
40
|
-
return { kind: 'ok', message: (0, messages_1.mapStoredMessagesToChatMessages)([stored])[0] };
|
|
41
|
-
}
|
|
42
|
-
catch (error) {
|
|
43
|
-
return { kind: 'corrupt', error: (0, wrap_error_1.toError)(error) };
|
|
44
|
-
}
|
|
45
|
-
}
|
|
46
|
-
/**
|
|
47
|
-
* Return a session's messages in chronological order — the whole session, or
|
|
48
|
-
* the window `options` selects: `limit` keeps only the newest `limit`
|
|
49
|
-
* messages, `before` only those appended before that instant (see
|
|
50
|
-
* {@link readWindow}). Items past their TTL are filtered out on read
|
|
51
|
-
* (DynamoDB's background TTL sweep can lag by up to 48h), so the returned
|
|
52
|
-
* history is never stale. A corrupt item — see
|
|
53
|
-
* {@link decodeMessage} for exactly what counts — is handled per
|
|
54
|
-
* `onCorruptMessage`: `'throw'` fails the read with the underlying error;
|
|
55
|
-
* `'skip'` (the default) reports it at `error` with its sort key and returns
|
|
56
|
-
* the rest. Every other failure propagates regardless of the policy.
|
|
57
|
-
*/
|
|
58
|
-
async function getMessages(context, sessionId, options = {}) {
|
|
59
|
-
(0, validation_1.validateSessionId)(sessionId);
|
|
60
|
-
(0, validation_1.validateMessageWindow)(options);
|
|
61
|
-
const items = await (0, message_window_1.readWindow)(context, sessionId, options);
|
|
62
|
-
/** Offloaded rows cost one S3 GET each, so they decode several at a time; the policy is applied in order. */
|
|
63
|
-
const decoded = await (0, concurrency_1.mapWithConcurrency)(items, constants_1.DEFAULT_READ_CONCURRENCY, (item) => decodeMessage(context, item, sessionId));
|
|
64
|
-
const messages = [];
|
|
65
|
-
decoded.forEach((result, index) => {
|
|
66
|
-
if (result.kind === 'ok') {
|
|
67
|
-
messages.push(result.message);
|
|
68
|
-
return;
|
|
69
|
-
}
|
|
70
|
-
if (context.onCorruptMessage === 'throw')
|
|
71
|
-
throw result.error;
|
|
72
|
-
context.logger.error('getMessages: skipped a corrupt message item', {
|
|
73
|
-
sessionId,
|
|
74
|
-
sortKey: items[index].SK,
|
|
75
|
-
reason: result.error.name,
|
|
76
|
-
});
|
|
77
|
-
});
|
|
78
|
-
return messages;
|
|
79
|
-
}
|
|
@@ -1,13 +0,0 @@
|
|
|
1
|
-
import type { HistoryContext } from '../internal/setup';
|
|
2
|
-
import type { SessionMetadata } from '../types';
|
|
3
|
-
/**
|
|
4
|
-
* List all sessions as metadata summaries, newest-updated first. The scan is
|
|
5
|
-
* filtered to session items so the adapter works on a table shared with the
|
|
6
|
-
* checkpointer/store; foreign rows are also skipped defensively, and rows past
|
|
7
|
-
* their TTL are filtered out exactly as `getMessages` filters expired messages.
|
|
8
|
-
*/
|
|
9
|
-
export declare function listSessions(context: HistoryContext, options?: {
|
|
10
|
-
maxIterations?: number;
|
|
11
|
-
maxItems?: number;
|
|
12
|
-
signal?: AbortSignal;
|
|
13
|
-
}): Promise<SessionMetadata[]>;
|