@farukada/aws-langgraph-dynamodb-ts 0.2.0 → 0.3.0
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/README.md +226 -510
- package/dist/checkpointer/actions/delete-thread.d.ts +7 -6
- package/dist/checkpointer/actions/delete-thread.d.ts.map +1 -1
- package/dist/checkpointer/actions/delete-thread.js +47 -152
- package/dist/checkpointer/actions/delete-thread.js.map +1 -1
- package/dist/checkpointer/actions/get-tuple.d.ts +6 -14
- package/dist/checkpointer/actions/get-tuple.d.ts.map +1 -1
- package/dist/checkpointer/actions/get-tuple.js +13 -166
- package/dist/checkpointer/actions/get-tuple.js.map +1 -1
- package/dist/checkpointer/actions/list.d.ts +10 -0
- package/dist/checkpointer/actions/list.d.ts.map +1 -0
- package/dist/checkpointer/actions/list.js +51 -0
- package/dist/checkpointer/actions/list.js.map +1 -0
- package/dist/checkpointer/actions/put-writes.d.ts +6 -6
- package/dist/checkpointer/actions/put-writes.d.ts.map +1 -1
- package/dist/checkpointer/actions/put-writes.js +26 -75
- package/dist/checkpointer/actions/put-writes.js.map +1 -1
- package/dist/checkpointer/actions/put.d.ts +6 -11
- package/dist/checkpointer/actions/put.d.ts.map +1 -1
- package/dist/checkpointer/actions/put.js +29 -161
- package/dist/checkpointer/actions/put.js.map +1 -1
- package/dist/checkpointer/internal/assemble.d.ts +10 -0
- package/dist/checkpointer/internal/assemble.d.ts.map +1 -0
- package/dist/checkpointer/internal/assemble.js +37 -0
- package/dist/checkpointer/internal/assemble.js.map +1 -0
- package/dist/checkpointer/internal/configurable.d.ts +13 -0
- package/dist/checkpointer/internal/configurable.d.ts.map +1 -0
- package/dist/checkpointer/internal/configurable.js +23 -0
- package/dist/checkpointer/internal/configurable.js.map +1 -0
- package/dist/checkpointer/internal/fetch.d.ts +10 -0
- package/dist/checkpointer/internal/fetch.d.ts.map +1 -0
- package/dist/checkpointer/internal/fetch.js +46 -0
- package/dist/checkpointer/internal/fetch.js.map +1 -0
- package/dist/checkpointer/internal/filter-match.d.ts +12 -0
- package/dist/checkpointer/internal/filter-match.d.ts.map +1 -0
- package/dist/checkpointer/internal/filter-match.js +14 -0
- package/dist/checkpointer/internal/filter-match.js.map +1 -0
- package/dist/checkpointer/internal/item-reader.d.ts +10 -0
- package/dist/checkpointer/internal/item-reader.d.ts.map +1 -0
- package/dist/checkpointer/internal/item-reader.js +26 -0
- package/dist/checkpointer/internal/item-reader.js.map +1 -0
- package/dist/checkpointer/internal/item-writer.d.ts +14 -0
- package/dist/checkpointer/internal/item-writer.d.ts.map +1 -0
- package/dist/checkpointer/internal/item-writer.js +68 -0
- package/dist/checkpointer/internal/item-writer.js.map +1 -0
- package/dist/checkpointer/internal/keys.d.ts +15 -0
- package/dist/checkpointer/internal/keys.d.ts.map +1 -0
- package/dist/checkpointer/internal/keys.js +52 -0
- package/dist/checkpointer/internal/keys.js.map +1 -0
- package/dist/checkpointer/internal/query.d.ts +16 -0
- package/dist/checkpointer/internal/query.d.ts.map +1 -0
- package/dist/checkpointer/internal/query.js +33 -0
- package/dist/checkpointer/internal/query.js.map +1 -0
- package/dist/checkpointer/internal/setup.d.ts +31 -0
- package/dist/checkpointer/internal/setup.d.ts.map +1 -0
- package/dist/checkpointer/internal/setup.js +29 -0
- package/dist/checkpointer/internal/setup.js.map +1 -0
- package/dist/checkpointer/internal/validation.d.ts +9 -0
- package/dist/checkpointer/internal/validation.d.ts.map +1 -0
- package/dist/checkpointer/internal/validation.js +28 -0
- package/dist/checkpointer/internal/validation.js.map +1 -0
- package/dist/checkpointer/saver.d.ts +21 -0
- package/dist/checkpointer/saver.d.ts.map +1 -0
- package/dist/checkpointer/saver.js +49 -0
- package/dist/checkpointer/saver.js.map +1 -0
- package/dist/checkpointer/types.d.ts +43 -0
- package/dist/checkpointer/types.d.ts.map +1 -0
- package/dist/{store/types/index.js → checkpointer/types.js} +1 -1
- package/dist/checkpointer/types.js.map +1 -0
- package/dist/factory/factory.d.ts +41 -0
- package/dist/factory/factory.d.ts.map +1 -0
- package/dist/factory/factory.js +49 -0
- package/dist/factory/factory.js.map +1 -0
- package/dist/history/actions/add-messages.d.ts +12 -7
- package/dist/history/actions/add-messages.d.ts.map +1 -1
- package/dist/history/actions/add-messages.js +50 -48
- package/dist/history/actions/add-messages.js.map +1 -1
- package/dist/history/actions/clear.d.ts +5 -11
- package/dist/history/actions/clear.d.ts.map +1 -1
- package/dist/history/actions/clear.js +28 -62
- package/dist/history/actions/clear.js.map +1 -1
- package/dist/history/actions/get-messages.d.ts +6 -13
- package/dist/history/actions/get-messages.d.ts.map +1 -1
- package/dist/history/actions/get-messages.js +23 -59
- package/dist/history/actions/get-messages.js.map +1 -1
- package/dist/history/actions/list-sessions.d.ts +6 -22
- package/dist/history/actions/list-sessions.d.ts.map +1 -1
- package/dist/history/actions/list-sessions.js +26 -69
- package/dist/history/actions/list-sessions.js.map +1 -1
- package/dist/history/actions/reconcile-count.d.ts +10 -0
- package/dist/history/actions/reconcile-count.d.ts.map +1 -0
- package/dist/history/actions/reconcile-count.js +39 -0
- package/dist/history/actions/reconcile-count.js.map +1 -0
- package/dist/history/chat-message-history.d.ts +36 -0
- package/dist/history/chat-message-history.d.ts.map +1 -0
- package/dist/history/chat-message-history.js +67 -0
- package/dist/history/chat-message-history.js.map +1 -0
- package/dist/history/internal/append-saga.d.ts +17 -0
- package/dist/history/internal/append-saga.d.ts.map +1 -0
- package/dist/history/internal/append-saga.js +94 -0
- package/dist/history/internal/append-saga.js.map +1 -0
- package/dist/history/internal/item-mapper.d.ts +12 -0
- package/dist/history/internal/item-mapper.d.ts.map +1 -0
- package/dist/history/internal/item-mapper.js +33 -0
- package/dist/history/internal/item-mapper.js.map +1 -0
- package/dist/history/internal/keys.d.ts +9 -0
- package/dist/history/internal/keys.d.ts.map +1 -0
- package/dist/history/internal/keys.js +22 -0
- package/dist/history/internal/keys.js.map +1 -0
- package/dist/history/internal/message-chunker.d.ts +14 -0
- package/dist/history/internal/message-chunker.d.ts.map +1 -0
- package/dist/history/internal/message-chunker.js +60 -0
- package/dist/history/internal/message-chunker.js.map +1 -0
- package/dist/history/internal/message-transaction.d.ts +17 -0
- package/dist/history/internal/message-transaction.d.ts.map +1 -0
- package/dist/history/internal/message-transaction.js +27 -0
- package/dist/history/internal/message-transaction.js.map +1 -0
- package/dist/history/internal/query.d.ts +6 -0
- package/dist/history/internal/query.d.ts.map +1 -0
- package/dist/history/internal/query.js +28 -0
- package/dist/history/internal/query.js.map +1 -0
- package/dist/history/internal/session-update.d.ts +20 -0
- package/dist/history/internal/session-update.d.ts.map +1 -0
- package/dist/history/internal/session-update.js +46 -0
- package/dist/history/internal/session-update.js.map +1 -0
- package/dist/history/internal/setup.d.ts +28 -0
- package/dist/history/internal/setup.d.ts.map +1 -0
- package/dist/history/internal/setup.js +27 -0
- package/dist/history/internal/setup.js.map +1 -0
- package/dist/history/internal/title-generator.d.ts +7 -0
- package/dist/history/internal/title-generator.d.ts.map +1 -0
- package/dist/history/internal/title-generator.js +16 -0
- package/dist/history/internal/title-generator.js.map +1 -0
- package/dist/history/internal/ttl-anchor.d.ts +12 -0
- package/dist/history/internal/ttl-anchor.d.ts.map +1 -0
- package/dist/history/internal/ttl-anchor.js +26 -0
- package/dist/history/internal/ttl-anchor.js.map +1 -0
- package/dist/history/session-adapter.d.ts +10 -26
- package/dist/history/session-adapter.d.ts.map +1 -1
- package/dist/history/session-adapter.js +15 -57
- package/dist/history/session-adapter.js.map +1 -1
- package/dist/history/types.d.ts +36 -0
- package/dist/history/types.d.ts.map +1 -0
- package/dist/history/types.js +3 -0
- package/dist/history/types.js.map +1 -0
- package/dist/index.d.ts +18 -10
- package/dist/index.d.ts.map +1 -1
- package/dist/index.js +24 -16
- package/dist/index.js.map +1 -1
- package/dist/shared/clock.d.ts +3 -0
- package/dist/shared/clock.d.ts.map +1 -0
- package/dist/shared/clock.js +8 -0
- package/dist/shared/clock.js.map +1 -0
- package/dist/shared/codec/codec.d.ts +44 -0
- package/dist/shared/codec/codec.d.ts.map +1 -0
- package/dist/shared/codec/codec.js +44 -0
- package/dist/shared/codec/codec.js.map +1 -0
- package/dist/shared/codec/compression.d.ts +25 -0
- package/dist/shared/codec/compression.d.ts.map +1 -0
- package/dist/shared/codec/compression.js +49 -0
- package/dist/shared/codec/compression.js.map +1 -0
- package/dist/shared/codec/descriptor-keys.d.ts +4 -0
- package/dist/shared/codec/descriptor-keys.d.ts.map +1 -0
- package/dist/shared/codec/descriptor-keys.js +14 -0
- package/dist/shared/codec/descriptor-keys.js.map +1 -0
- package/dist/shared/codec/json-serde.d.ts +8 -0
- package/dist/shared/codec/json-serde.d.ts.map +1 -0
- package/dist/shared/codec/json-serde.js +18 -0
- package/dist/shared/codec/json-serde.js.map +1 -0
- package/dist/shared/codec/s3/client.d.ts +6 -0
- package/dist/shared/codec/s3/client.d.ts.map +1 -0
- package/dist/shared/codec/s3/client.js +18 -0
- package/dist/shared/codec/s3/client.js.map +1 -0
- package/dist/shared/codec/s3/config.d.ts +16 -0
- package/dist/shared/codec/s3/config.d.ts.map +1 -0
- package/dist/shared/codec/s3/config.js +14 -0
- package/dist/shared/codec/s3/config.js.map +1 -0
- package/dist/shared/codec/s3/delete.d.ts +8 -0
- package/dist/shared/codec/s3/delete.d.ts.map +1 -0
- package/dist/shared/codec/s3/delete.js +29 -0
- package/dist/shared/codec/s3/delete.js.map +1 -0
- package/dist/shared/codec/s3/lifecycle.d.ts +8 -0
- package/dist/shared/codec/s3/lifecycle.d.ts.map +1 -0
- package/dist/shared/codec/s3/lifecycle.js +47 -0
- package/dist/shared/codec/s3/lifecycle.js.map +1 -0
- package/dist/shared/codec/s3/offloader.d.ts +33 -0
- package/dist/shared/codec/s3/offloader.d.ts.map +1 -0
- package/dist/shared/codec/s3/offloader.js +80 -0
- package/dist/shared/codec/s3/offloader.js.map +1 -0
- package/dist/shared/codec/s3/orphans.d.ts +16 -0
- package/dist/shared/codec/s3/orphans.d.ts.map +1 -0
- package/dist/shared/codec/s3/orphans.js +73 -0
- package/dist/shared/codec/s3/orphans.js.map +1 -0
- package/dist/shared/codec/s3/read-write.d.ts +14 -0
- package/dist/shared/codec/s3/read-write.d.ts.map +1 -0
- package/dist/shared/codec/s3/read-write.js +42 -0
- package/dist/shared/codec/s3/read-write.js.map +1 -0
- package/dist/shared/constants.d.ts +37 -0
- package/dist/shared/constants.d.ts.map +1 -0
- package/dist/shared/constants.js +40 -0
- package/dist/shared/constants.js.map +1 -0
- package/dist/shared/dynamodb/backoff.d.ts +15 -0
- package/dist/shared/dynamodb/backoff.d.ts.map +1 -0
- package/dist/shared/dynamodb/backoff.js +48 -0
- package/dist/shared/dynamodb/backoff.js.map +1 -0
- package/dist/shared/dynamodb/batch-write.d.ts +10 -0
- package/dist/shared/dynamodb/batch-write.d.ts.map +1 -0
- package/dist/shared/dynamodb/batch-write.js +17 -0
- package/dist/shared/dynamodb/batch-write.js.map +1 -0
- package/dist/shared/dynamodb/client.d.ts +21 -0
- package/dist/shared/dynamodb/client.d.ts.map +1 -0
- package/dist/shared/dynamodb/client.js +19 -0
- package/dist/shared/dynamodb/client.js.map +1 -0
- package/dist/shared/dynamodb/drain-unprocessed.d.ts +15 -0
- package/dist/shared/dynamodb/drain-unprocessed.d.ts.map +1 -0
- package/dist/shared/dynamodb/drain-unprocessed.js +35 -0
- package/dist/shared/dynamodb/drain-unprocessed.js.map +1 -0
- package/dist/shared/dynamodb/paginate-core.d.ts +22 -0
- package/dist/shared/dynamodb/paginate-core.d.ts.map +1 -0
- package/dist/shared/dynamodb/paginate-core.js +52 -0
- package/dist/shared/dynamodb/paginate-core.js.map +1 -0
- package/dist/shared/dynamodb/paginate.d.ts +15 -0
- package/dist/shared/dynamodb/paginate.d.ts.map +1 -0
- package/dist/shared/dynamodb/paginate.js +20 -0
- package/dist/shared/dynamodb/paginate.js.map +1 -0
- package/dist/shared/dynamodb/retry-classifier.d.ts +9 -0
- package/dist/shared/dynamodb/retry-classifier.d.ts.map +1 -0
- package/dist/shared/dynamodb/retry-classifier.js +75 -0
- package/dist/shared/dynamodb/retry-classifier.js.map +1 -0
- package/dist/shared/dynamodb/retry.d.ts +18 -0
- package/dist/shared/dynamodb/retry.d.ts.map +1 -0
- package/dist/shared/dynamodb/retry.js +53 -0
- package/dist/shared/dynamodb/retry.js.map +1 -0
- package/dist/shared/dynamodb/scan.d.ts +15 -0
- package/dist/shared/dynamodb/scan.d.ts.map +1 -0
- package/dist/shared/dynamodb/scan.js +20 -0
- package/dist/shared/dynamodb/scan.js.map +1 -0
- package/dist/shared/dynamodb/types.d.ts +24 -0
- package/dist/shared/dynamodb/types.d.ts.map +1 -0
- package/dist/shared/dynamodb/types.js +3 -0
- package/dist/shared/dynamodb/types.js.map +1 -0
- package/dist/shared/errors/base-error.d.ts +22 -0
- package/dist/shared/errors/base-error.d.ts.map +1 -0
- package/dist/shared/errors/base-error.js +28 -0
- package/dist/shared/errors/base-error.js.map +1 -0
- package/dist/shared/errors/error-code.d.ts +13 -0
- package/dist/shared/errors/error-code.d.ts.map +1 -0
- package/dist/shared/errors/error-code.js +17 -0
- package/dist/shared/errors/error-code.js.map +1 -0
- package/dist/shared/errors/errors.d.ts +47 -0
- package/dist/shared/errors/errors.d.ts.map +1 -0
- package/dist/shared/errors/errors.js +82 -0
- package/dist/shared/errors/errors.js.map +1 -0
- package/dist/shared/errors/wrap-error.d.ts +16 -0
- package/dist/shared/errors/wrap-error.d.ts.map +1 -0
- package/dist/shared/errors/wrap-error.js +30 -0
- package/dist/shared/errors/wrap-error.js.map +1 -0
- package/dist/shared/logging/logger.d.ts +14 -0
- package/dist/shared/logging/logger.d.ts.map +1 -0
- package/dist/shared/logging/logger.js +16 -0
- package/dist/shared/logging/logger.js.map +1 -0
- package/dist/shared/logging/redaction.d.ts +19 -0
- package/dist/shared/logging/redaction.d.ts.map +1 -0
- package/dist/shared/logging/redaction.js +67 -0
- package/dist/shared/logging/redaction.js.map +1 -0
- package/dist/shared/options.d.ts +32 -0
- package/dist/shared/options.d.ts.map +1 -0
- package/dist/shared/options.js +3 -0
- package/dist/shared/options.js.map +1 -0
- package/dist/shared/ulid.d.ts +10 -0
- package/dist/shared/ulid.d.ts.map +1 -0
- package/dist/shared/ulid.js +65 -0
- package/dist/shared/ulid.js.map +1 -0
- package/dist/shared/validation/primitives.d.ts +17 -0
- package/dist/shared/validation/primitives.d.ts.map +1 -0
- package/dist/shared/validation/primitives.js +71 -0
- package/dist/shared/validation/primitives.js.map +1 -0
- package/dist/shared/validation/ttl.d.ts +16 -0
- package/dist/shared/validation/ttl.d.ts.map +1 -0
- package/dist/shared/validation/ttl.js +26 -0
- package/dist/shared/validation/ttl.js.map +1 -0
- package/dist/store/actions/get.d.ts +5 -0
- package/dist/store/actions/get.d.ts.map +1 -0
- package/dist/store/actions/get.js +21 -0
- package/dist/store/actions/get.js.map +1 -0
- package/dist/store/actions/list-namespaces.d.ts +9 -0
- package/dist/store/actions/list-namespaces.d.ts.map +1 -0
- package/dist/store/actions/list-namespaces.js +46 -0
- package/dist/store/actions/list-namespaces.js.map +1 -0
- package/dist/store/actions/put.d.ts +11 -0
- package/dist/store/actions/put.d.ts.map +1 -0
- package/dist/store/actions/put.js +81 -0
- package/dist/store/actions/put.js.map +1 -0
- package/dist/store/actions/reconcile-vector-index.d.ts +17 -0
- package/dist/store/actions/reconcile-vector-index.d.ts.map +1 -0
- package/dist/store/actions/reconcile-vector-index.js +27 -0
- package/dist/store/actions/reconcile-vector-index.js.map +1 -0
- package/dist/store/actions/search.d.ts +10 -0
- package/dist/store/actions/search.d.ts.map +1 -0
- package/dist/store/actions/search.js +72 -0
- package/dist/store/actions/search.js.map +1 -0
- package/dist/store/internal/filter.d.ts +10 -0
- package/dist/store/internal/filter.d.ts.map +1 -0
- package/dist/store/internal/filter.js +37 -0
- package/dist/store/internal/filter.js.map +1 -0
- package/dist/store/internal/index-reconcile.d.ts +22 -0
- package/dist/store/internal/index-reconcile.d.ts.map +1 -0
- package/dist/store/internal/index-reconcile.js +68 -0
- package/dist/store/internal/index-reconcile.js.map +1 -0
- package/dist/store/internal/index-sync.d.ts +11 -0
- package/dist/store/internal/index-sync.d.ts.map +1 -0
- package/dist/store/internal/index-sync.js +26 -0
- package/dist/store/internal/index-sync.js.map +1 -0
- package/dist/store/internal/item-mapper.d.ts +23 -0
- package/dist/store/internal/item-mapper.d.ts.map +1 -0
- package/dist/store/internal/item-mapper.js +51 -0
- package/dist/store/internal/item-mapper.js.map +1 -0
- package/dist/store/internal/keys.d.ts +18 -0
- package/dist/store/internal/keys.d.ts.map +1 -0
- package/dist/store/internal/keys.js +36 -0
- package/dist/store/internal/keys.js.map +1 -0
- package/dist/store/internal/namespace-match.d.ts +12 -0
- package/dist/store/internal/namespace-match.d.ts.map +1 -0
- package/dist/store/internal/namespace-match.js +41 -0
- package/dist/store/internal/namespace-match.js.map +1 -0
- package/dist/store/internal/query.d.ts +6 -0
- package/dist/store/internal/query.d.ts.map +1 -0
- package/dist/store/internal/query.js +32 -0
- package/dist/store/internal/query.js.map +1 -0
- package/dist/store/internal/ranker.d.ts +13 -0
- package/dist/store/internal/ranker.d.ts.map +1 -0
- package/dist/store/internal/ranker.js +29 -0
- package/dist/store/internal/ranker.js.map +1 -0
- package/dist/store/internal/semantic-search.d.ts +13 -0
- package/dist/store/internal/semantic-search.d.ts.map +1 -0
- package/dist/store/internal/semantic-search.js +47 -0
- package/dist/store/internal/semantic-search.js.map +1 -0
- package/dist/store/internal/setup.d.ts +31 -0
- package/dist/store/internal/setup.d.ts.map +1 -0
- package/dist/store/internal/setup.js +29 -0
- package/dist/store/internal/setup.js.map +1 -0
- package/dist/store/internal/validation.d.ts +7 -0
- package/dist/store/internal/validation.d.ts.map +1 -0
- package/dist/store/internal/validation.js +26 -0
- package/dist/store/internal/validation.js.map +1 -0
- package/dist/store/store.d.ts +24 -0
- package/dist/store/store.d.ts.map +1 -0
- package/dist/store/store.js +58 -0
- package/dist/store/store.js.map +1 -0
- package/dist/store/types.d.ts +28 -0
- package/dist/store/types.d.ts.map +1 -0
- package/dist/store/types.js +3 -0
- package/dist/store/types.js.map +1 -0
- package/dist/store/vector-backend.d.ts +27 -0
- package/dist/store/vector-backend.d.ts.map +1 -0
- package/dist/store/vector-backend.js +3 -0
- package/dist/store/vector-backend.js.map +1 -0
- package/package.json +32 -30
- package/dist/checkpointer/actions/index.d.ts +0 -5
- package/dist/checkpointer/actions/index.d.ts.map +0 -1
- package/dist/checkpointer/actions/index.js +0 -21
- package/dist/checkpointer/actions/index.js.map +0 -1
- package/dist/checkpointer/actions/validate-configurable.d.ts +0 -10
- package/dist/checkpointer/actions/validate-configurable.d.ts.map +0 -1
- package/dist/checkpointer/actions/validate-configurable.js +0 -39
- package/dist/checkpointer/actions/validate-configurable.js.map +0 -1
- package/dist/checkpointer/actions/writer.d.ts +0 -52
- package/dist/checkpointer/actions/writer.d.ts.map +0 -1
- package/dist/checkpointer/actions/writer.js +0 -109
- package/dist/checkpointer/actions/writer.js.map +0 -1
- package/dist/checkpointer/index.d.ts +0 -118
- package/dist/checkpointer/index.d.ts.map +0 -1
- package/dist/checkpointer/index.js +0 -393
- package/dist/checkpointer/index.js.map +0 -1
- package/dist/checkpointer/types/index.d.ts +0 -232
- package/dist/checkpointer/types/index.d.ts.map +0 -1
- package/dist/checkpointer/types/index.js +0 -13
- package/dist/checkpointer/types/index.js.map +0 -1
- package/dist/checkpointer/utils/deserialization.d.ts +0 -20
- package/dist/checkpointer/utils/deserialization.d.ts.map +0 -1
- package/dist/checkpointer/utils/deserialization.js +0 -81
- package/dist/checkpointer/utils/deserialization.js.map +0 -1
- package/dist/checkpointer/utils/index.d.ts +0 -7
- package/dist/checkpointer/utils/index.d.ts.map +0 -1
- package/dist/checkpointer/utils/index.js +0 -27
- package/dist/checkpointer/utils/index.js.map +0 -1
- package/dist/checkpointer/utils/validation.d.ts +0 -48
- package/dist/checkpointer/utils/validation.d.ts.map +0 -1
- package/dist/checkpointer/utils/validation.js +0 -235
- package/dist/checkpointer/utils/validation.js.map +0 -1
- package/dist/factory.d.ts +0 -153
- package/dist/factory.d.ts.map +0 -1
- package/dist/factory.js +0 -206
- package/dist/factory.js.map +0 -1
- package/dist/history/actions/add-message.d.ts +0 -10
- package/dist/history/actions/add-message.d.ts.map +0 -1
- package/dist/history/actions/add-message.js +0 -24
- package/dist/history/actions/add-message.js.map +0 -1
- package/dist/history/actions/index.d.ts +0 -9
- package/dist/history/actions/index.d.ts.map +0 -1
- package/dist/history/actions/index.js +0 -17
- package/dist/history/actions/index.js.map +0 -1
- package/dist/history/index.d.ts +0 -118
- package/dist/history/index.d.ts.map +0 -1
- package/dist/history/index.js +0 -179
- package/dist/history/index.js.map +0 -1
- package/dist/history/types/index.d.ts +0 -184
- package/dist/history/types/index.d.ts.map +0 -1
- package/dist/history/types/index.js +0 -7
- package/dist/history/types/index.js.map +0 -1
- package/dist/history/utils/index.d.ts +0 -9
- package/dist/history/utils/index.d.ts.map +0 -1
- package/dist/history/utils/index.js +0 -27
- package/dist/history/utils/index.js.map +0 -1
- package/dist/history/utils/optimistic-retry.d.ts +0 -31
- package/dist/history/utils/optimistic-retry.d.ts.map +0 -1
- package/dist/history/utils/optimistic-retry.js +0 -74
- package/dist/history/utils/optimistic-retry.js.map +0 -1
- package/dist/history/utils/title-generator.d.ts +0 -12
- package/dist/history/utils/title-generator.d.ts.map +0 -1
- package/dist/history/utils/title-generator.js +0 -57
- package/dist/history/utils/title-generator.js.map +0 -1
- package/dist/history/utils/update-expression-builder.d.ts +0 -55
- package/dist/history/utils/update-expression-builder.d.ts.map +0 -1
- package/dist/history/utils/update-expression-builder.js +0 -112
- package/dist/history/utils/update-expression-builder.js.map +0 -1
- package/dist/history/utils/validation.d.ts +0 -68
- package/dist/history/utils/validation.d.ts.map +0 -1
- package/dist/history/utils/validation.js +0 -213
- package/dist/history/utils/validation.js.map +0 -1
- package/dist/shared/index.d.ts +0 -5
- package/dist/shared/index.d.ts.map +0 -1
- package/dist/shared/index.js +0 -21
- package/dist/shared/index.js.map +0 -1
- package/dist/shared/utils/batch-write.d.ts +0 -74
- package/dist/shared/utils/batch-write.d.ts.map +0 -1
- package/dist/shared/utils/batch-write.js +0 -110
- package/dist/shared/utils/batch-write.js.map +0 -1
- package/dist/shared/utils/client-factory.d.ts +0 -25
- package/dist/shared/utils/client-factory.d.ts.map +0 -1
- package/dist/shared/utils/client-factory.js +0 -23
- package/dist/shared/utils/client-factory.js.map +0 -1
- package/dist/shared/utils/compressor.d.ts +0 -66
- package/dist/shared/utils/compressor.d.ts.map +0 -1
- package/dist/shared/utils/compressor.js +0 -133
- package/dist/shared/utils/compressor.js.map +0 -1
- package/dist/shared/utils/constants.d.ts +0 -13
- package/dist/shared/utils/constants.d.ts.map +0 -1
- package/dist/shared/utils/constants.js +0 -35
- package/dist/shared/utils/constants.js.map +0 -1
- package/dist/shared/utils/index.d.ts +0 -14
- package/dist/shared/utils/index.d.ts.map +0 -1
- package/dist/shared/utils/index.js +0 -30
- package/dist/shared/utils/index.js.map +0 -1
- package/dist/shared/utils/logger.d.ts +0 -75
- package/dist/shared/utils/logger.d.ts.map +0 -1
- package/dist/shared/utils/logger.js +0 -148
- package/dist/shared/utils/logger.js.map +0 -1
- package/dist/shared/utils/retry.d.ts +0 -26
- package/dist/shared/utils/retry.d.ts.map +0 -1
- package/dist/shared/utils/retry.js +0 -169
- package/dist/shared/utils/retry.js.map +0 -1
- package/dist/shared/utils/s3-offloader.d.ts +0 -153
- package/dist/shared/utils/s3-offloader.d.ts.map +0 -1
- package/dist/shared/utils/s3-offloader.js +0 -281
- package/dist/shared/utils/s3-offloader.js.map +0 -1
- package/dist/shared/utils/s3-orphans.d.ts +0 -16
- package/dist/shared/utils/s3-orphans.d.ts.map +0 -1
- package/dist/shared/utils/s3-orphans.js +0 -79
- package/dist/shared/utils/s3-orphans.js.map +0 -1
- package/dist/shared/utils/sleep.d.ts +0 -48
- package/dist/shared/utils/sleep.d.ts.map +0 -1
- package/dist/shared/utils/sleep.js +0 -82
- package/dist/shared/utils/sleep.js.map +0 -1
- package/dist/shared/utils/ttl.d.ts +0 -24
- package/dist/shared/utils/ttl.d.ts.map +0 -1
- package/dist/shared/utils/ttl.js +0 -43
- package/dist/shared/utils/ttl.js.map +0 -1
- package/dist/store/actions/get-operation.d.ts +0 -11
- package/dist/store/actions/get-operation.d.ts.map +0 -1
- package/dist/store/actions/get-operation.js +0 -42
- package/dist/store/actions/get-operation.js.map +0 -1
- package/dist/store/actions/index.d.ts +0 -5
- package/dist/store/actions/index.d.ts.map +0 -1
- package/dist/store/actions/index.js +0 -21
- package/dist/store/actions/index.js.map +0 -1
- package/dist/store/actions/list-namespaces-operation.d.ts +0 -10
- package/dist/store/actions/list-namespaces-operation.d.ts.map +0 -1
- package/dist/store/actions/list-namespaces-operation.js +0 -227
- package/dist/store/actions/list-namespaces-operation.js.map +0 -1
- package/dist/store/actions/put-operation.d.ts +0 -9
- package/dist/store/actions/put-operation.d.ts.map +0 -1
- package/dist/store/actions/put-operation.js +0 -107
- package/dist/store/actions/put-operation.js.map +0 -1
- package/dist/store/actions/search-operation.d.ts +0 -17
- package/dist/store/actions/search-operation.d.ts.map +0 -1
- package/dist/store/actions/search-operation.js +0 -203
- package/dist/store/actions/search-operation.js.map +0 -1
- package/dist/store/index.d.ts +0 -82
- package/dist/store/index.d.ts.map +0 -1
- package/dist/store/index.js +0 -172
- package/dist/store/index.js.map +0 -1
- package/dist/store/types/index.d.ts +0 -131
- package/dist/store/types/index.d.ts.map +0 -1
- package/dist/store/types/index.js.map +0 -1
- package/dist/store/utils/filter.d.ts +0 -16
- package/dist/store/utils/filter.d.ts.map +0 -1
- package/dist/store/utils/filter.js +0 -133
- package/dist/store/utils/filter.js.map +0 -1
- package/dist/store/utils/index.d.ts +0 -7
- package/dist/store/utils/index.d.ts.map +0 -1
- package/dist/store/utils/index.js +0 -27
- package/dist/store/utils/index.js.map +0 -1
- package/dist/store/utils/validation.d.ts +0 -61
- package/dist/store/utils/validation.d.ts.map +0 -1
- package/dist/store/utils/validation.js +0 -260
- package/dist/store/utils/validation.js.map +0 -1
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"factory.js","sourceRoot":"","sources":["../../src/factory/factory.ts"],"names":[],"mappings":";;;AAAA,8DAAqF;AACrF,wDAAyD;AAEzD,iDAAsD;AAEtD,0EAA6E;AAG7E,0CAA+C;AAyB/C;;;;GAIG;AACH,MAAa,eAAe;IACG;IAA7B,YAA6B,OAA2B,EAAE;QAA7B,SAAI,GAAJ,IAAI,CAAyB;IAAG,CAAC;IAE9D,WAAW,CAAC,OAA6B;QACvC,OAAO,IAAI,qBAAa,CAAC,EAAE,GAAG,IAAI,CAAC,IAAI,EAAE,GAAG,OAAO,EAAE,CAAC,CAAC;IACzD,CAAC;IAED,WAAW,CAAC,OAA6B;QACvC,OAAO,IAAI,qBAAa,CAAC,EAAE,GAAG,IAAI,CAAC,IAAI,EAAE,GAAG,OAAO,EAAE,CAAC,CAAC;IACzD,CAAC;IAED,wBAAwB,CAAC,OAA0C;QACjE,OAAO,IAAI,iDAA0B,CAAC,EAAE,GAAG,IAAI,CAAC,IAAI,EAAE,GAAG,OAAO,EAAE,CAAC,CAAC;IACtE,CAAC;IAED,SAAS,CAAC,OAAyB;QACjC,MAAM,KAAK,GAAG,IAAI,CAAC,IAAI,CAAC,YAAY,IAAI,CAAC,CAAC,MAAM,EAAE,EAAE,CAAC,IAAI,gCAAc,CAAC,MAAM,CAAC,CAAC,CAAC;QACjF,MAAM,SAAS,GAAG,KAAK,CAAC,IAAI,CAAC,IAAI,CAAC,YAAY,IAAI,EAAE,CAAC,CAAC;QACtD,MAAM,MAAM,GAAG,+BAAgB,CAAC,IAAI,CAAC,SAAS,CAAC,CAAC;QAChD,MAAM,KAAK,GAAG,IAAI,qBAAa,CAAC,EAAE,GAAG,IAAI,CAAC,IAAI,EAAE,GAAG,OAAO,CAAC,KAAK,EAAE,MAAM,EAAE,CAAC,CAAC;QAC5E,MAAM,KAAK,GAAG,IAAI,qBAAa,CAAC,EAAE,GAAG,IAAI,CAAC,IAAI,EAAE,GAAG,OAAO,CAAC,KAAK,EAAE,MAAM,EAAE,CAAC,CAAC;QAC5E,MAAM,OAAO,GAAG,IAAI,iDAA0B,CAAC,EAAE,GAAG,IAAI,CAAC,IAAI,EAAE,GAAG,OAAO,CAAC,OAAO,EAAE,MAAM,EAAE,CAAC,CAAC;QAC7F,OAAO;YACL,KAAK;YACL,KAAK;YACL,OAAO;YACP,OAAO,EAAE,GAAG,EAAE;gBACZ,KAAK,CAAC,OAAO,EAAE,CAAC;gBAChB,KAAK,CAAC,OAAO,EAAE,CAAC;gBAChB,OAAO,CAAC,OAAO,EAAE,CAAC;gBAClB,SAAS,CAAC,OAAO,EAAE,CAAC;YACtB,CAAC;SACF,CAAC;IACJ,CAAC;CACF;AAlCD,0CAkCC"}
|
|
@@ -1,11 +1,16 @@
|
|
|
1
|
+
import { type BaseMessage } from '@langchain/core/messages';
|
|
2
|
+
import type { HistoryContext } from '../internal/setup';
|
|
1
3
|
/**
|
|
2
|
-
*
|
|
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}).
|
|
3
11
|
*
|
|
4
|
-
*
|
|
5
|
-
*
|
|
6
|
-
* 100-item transaction limit). The metadata update has a conditional check on the
|
|
7
|
-
* observed count; on concurrent modification we re-read and retry.
|
|
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.
|
|
8
14
|
*/
|
|
9
|
-
|
|
10
|
-
export declare const addMessagesAction: (params: AddMessagesActionParams) => Promise<void>;
|
|
15
|
+
export declare function addMessages(context: HistoryContext, sessionId: string, messages: BaseMessage[]): Promise<void>;
|
|
11
16
|
//# sourceMappingURL=add-messages.d.ts.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"add-messages.d.ts","sourceRoot":"","sources":["../../../src/history/actions/add-messages.ts"],"names":[],"mappings":"AAAA
|
|
1
|
+
{"version":3,"file":"add-messages.d.ts","sourceRoot":"","sources":["../../../src/history/actions/add-messages.ts"],"names":[],"mappings":"AAAA,OAAO,EACL,KAAK,WAAW,EAGjB,MAAM,0BAA0B,CAAC;AAQlC,OAAO,KAAK,EAAE,cAAc,EAAE,MAAM,mBAAmB,CAAC;AA4BxD;;;;;;;;;;;GAWG;AACH,wBAAsB,WAAW,CAC/B,OAAO,EAAE,cAAc,EACvB,SAAS,EAAE,MAAM,EACjB,QAAQ,EAAE,WAAW,EAAE,GACtB,OAAO,CAAC,IAAI,CAAC,CAcf"}
|
|
@@ -1,54 +1,56 @@
|
|
|
1
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 primitives_1 = require("../../shared/validation/primitives");
|
|
7
|
+
const ttl_1 = require("../../shared/validation/ttl");
|
|
8
|
+
const append_saga_1 = require("../internal/append-saga");
|
|
9
|
+
const item_mapper_1 = require("../internal/item-mapper");
|
|
10
|
+
const message_chunker_1 = require("../internal/message-chunker");
|
|
11
|
+
const title_generator_1 = require("../internal/title-generator");
|
|
12
|
+
const ttl_anchor_1 = require("../internal/ttl-anchor");
|
|
13
|
+
/** Message Puts per append transaction: the 100-item limit, less the metadata Update. */
|
|
14
|
+
const MAX_MESSAGES_PER_TRANSACTION = 99;
|
|
15
|
+
/**
|
|
16
|
+
* Aggregate byte budget per transaction. Held ~500 KB below DynamoDB's 4 MB
|
|
17
|
+
* `TransactWriteItems` ceiling so the conservative per-item estimate (see
|
|
18
|
+
* `ITEM_OVERHEAD_BYTES`) cannot push a chunk over the real limit at commit time.
|
|
19
|
+
*/
|
|
20
|
+
const MAX_TRANSACTION_BYTES = 3_500_000;
|
|
21
|
+
async function buildItems(context, sessionId, stored, ttlTimestamp) {
|
|
22
|
+
const items = [];
|
|
23
|
+
for (const message of stored) {
|
|
24
|
+
items.push(await (0, item_mapper_1.buildMessageItem)(context, sessionId, context.ulid(), message, ttlTimestamp));
|
|
25
|
+
}
|
|
26
|
+
return items;
|
|
27
|
+
}
|
|
2
28
|
/**
|
|
3
|
-
*
|
|
29
|
+
* Append messages as one item per message. Each chunk writes its message Puts
|
|
30
|
+
* and the session-metadata count `ADD` in a single `TransactWriteItems`, so
|
|
31
|
+
* `messageCount` can never disagree with the stored messages. A creation-anchored
|
|
32
|
+
* TTL (resolved by read, set in the transaction via `if_not_exists`) gives every
|
|
33
|
+
* item one shared expiry. Batches larger than the 100-item / 4 MB transaction
|
|
34
|
+
* limits are split into chunks and applied with caller-observed atomicity: if a
|
|
35
|
+
* later chunk fails, the committed chunks are rolled back (see {@link appendChunks}).
|
|
4
36
|
*
|
|
5
|
-
*
|
|
6
|
-
*
|
|
7
|
-
* 100-item transaction limit). The metadata update has a conditional check on the
|
|
8
|
-
* observed count; on concurrent modification we re-read and retry.
|
|
37
|
+
* Per item the 400 KB DynamoDB limit still applies; enable S3 offloading so
|
|
38
|
+
* large payloads become small descriptors and stay well under the limits.
|
|
9
39
|
*/
|
|
10
|
-
|
|
11
|
-
|
|
12
|
-
|
|
13
|
-
|
|
14
|
-
const
|
|
15
|
-
|
|
16
|
-
|
|
17
|
-
|
|
18
|
-
(
|
|
19
|
-
(0,
|
|
20
|
-
(0,
|
|
21
|
-
|
|
22
|
-
|
|
23
|
-
|
|
24
|
-
const existing = await (0, utils_1.withDynamoDBRetry)(async () => {
|
|
25
|
-
return await client.get({
|
|
26
|
-
TableName: tableName,
|
|
27
|
-
Key: { userId, sessionId },
|
|
28
|
-
ConsistentRead: true,
|
|
29
|
-
ProjectionExpression: 'messageCount',
|
|
30
|
-
});
|
|
31
|
-
}, { signal });
|
|
32
|
-
const expectedCount = existing.Item?.messageCount;
|
|
33
|
-
const currentCount = expectedCount ?? 0;
|
|
34
|
-
const newCount = currentCount + messages.length;
|
|
35
|
-
const messageItems = (0, utils_1.buildMessageItems)(userId, sessionId, messages, currentCount, ttlDays);
|
|
36
|
-
const { updateExpression, conditionExpression, expressionAttributeValues } = (0, utils_1.buildOptimisticMetadataUpdate)(sessionTitle, newCount, expectedCount, ttlDays);
|
|
37
|
-
await client.transactWrite({
|
|
38
|
-
TransactItems: [
|
|
39
|
-
...messageItems.map((item) => ({ Put: { TableName: tableName, Item: item } })),
|
|
40
|
-
{
|
|
41
|
-
Update: {
|
|
42
|
-
TableName: tableName,
|
|
43
|
-
Key: { userId, sessionId },
|
|
44
|
-
UpdateExpression: updateExpression,
|
|
45
|
-
ConditionExpression: conditionExpression,
|
|
46
|
-
ExpressionAttributeValues: expressionAttributeValues,
|
|
47
|
-
},
|
|
48
|
-
},
|
|
49
|
-
],
|
|
50
|
-
});
|
|
40
|
+
async function addMessages(context, sessionId, messages) {
|
|
41
|
+
(0, primitives_1.validateNonEmptyString)(sessionId, 'sessionId');
|
|
42
|
+
if (messages.length === 0)
|
|
43
|
+
return;
|
|
44
|
+
const stored = (0, messages_1.mapChatMessagesToStoredMessages)(messages);
|
|
45
|
+
const ttlTimestamp = context.ttl
|
|
46
|
+
? await (0, ttl_anchor_1.resolveTtlAnchor)(context, sessionId, (0, ttl_1.calculateTtlTimestamp)(context.ttl))
|
|
47
|
+
: undefined;
|
|
48
|
+
const items = await buildItems(context, sessionId, stored, ttlTimestamp);
|
|
49
|
+
const chunks = (0, message_chunker_1.chunkBySize)(items, MAX_MESSAGES_PER_TRANSACTION, MAX_TRANSACTION_BYTES);
|
|
50
|
+
await (0, append_saga_1.appendChunks)(context, sessionId, chunks, {
|
|
51
|
+
now: (0, clock_1.nowIso)(),
|
|
52
|
+
title: (0, title_generator_1.deriveTitle)(stored),
|
|
53
|
+
ttlTimestamp,
|
|
51
54
|
});
|
|
52
|
-
}
|
|
53
|
-
exports.addMessagesAction = addMessagesAction;
|
|
55
|
+
}
|
|
54
56
|
//# sourceMappingURL=add-messages.js.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"add-messages.js","sourceRoot":"","sources":["../../../src/history/actions/add-messages.ts"],"names":[],"mappings":";
|
|
1
|
+
{"version":3,"file":"add-messages.js","sourceRoot":"","sources":["../../../src/history/actions/add-messages.ts"],"names":[],"mappings":";;AAoDA,kCAkBC;AAtED,uDAIkC;AAElC,8CAA4C;AAC5C,mEAA4E;AAC5E,qDAAoE;AACpE,yDAAuD;AACvD,yDAA2D;AAC3D,iEAA0D;AAE1D,iEAA0D;AAC1D,uDAA0D;AAG1D,yFAAyF;AACzF,MAAM,4BAA4B,GAAG,EAAE,CAAC;AAExC;;;;GAIG;AACH,MAAM,qBAAqB,GAAG,SAAS,CAAC;AAExC,KAAK,UAAU,UAAU,CACvB,OAAuB,EACvB,SAAiB,EACjB,MAAuB,EACvB,YAAqB;IAErB,MAAM,KAAK,GAAsB,EAAE,CAAC;IACpC,KAAK,MAAM,OAAO,IAAI,MAAM,EAAE,CAAC;QAC7B,KAAK,CAAC,IAAI,CAAC,MAAM,IAAA,8BAAgB,EAAC,OAAO,EAAE,SAAS,EAAE,OAAO,CAAC,IAAI,EAAE,EAAE,OAAO,EAAE,YAAY,CAAC,CAAC,CAAC;IAChG,CAAC;IACD,OAAO,KAAK,CAAC;AACf,CAAC;AAED;;;;;;;;;;;GAWG;AACI,KAAK,UAAU,WAAW,CAC/B,OAAuB,EACvB,SAAiB,EACjB,QAAuB;IAEvB,IAAA,mCAAsB,EAAC,SAAS,EAAE,WAAW,CAAC,CAAC;IAC/C,IAAI,QAAQ,CAAC,MAAM,KAAK,CAAC;QAAE,OAAO;IAClC,MAAM,MAAM,GAAG,IAAA,0CAA+B,EAAC,QAAQ,CAAC,CAAC;IACzD,MAAM,YAAY,GAAG,OAAO,CAAC,GAAG;QAC9B,CAAC,CAAC,MAAM,IAAA,6BAAgB,EAAC,OAAO,EAAE,SAAS,EAAE,IAAA,2BAAqB,EAAC,OAAO,CAAC,GAAG,CAAC,CAAC;QAChF,CAAC,CAAC,SAAS,CAAC;IACd,MAAM,KAAK,GAAG,MAAM,UAAU,CAAC,OAAO,EAAE,SAAS,EAAE,MAAM,EAAE,YAAY,CAAC,CAAC;IACzE,MAAM,MAAM,GAAG,IAAA,6BAAW,EAAC,KAAK,EAAE,4BAA4B,EAAE,qBAAqB,CAAC,CAAC;IACvF,MAAM,IAAA,0BAAY,EAAC,OAAO,EAAE,SAAS,EAAE,MAAM,EAAE;QAC7C,GAAG,EAAE,IAAA,cAAM,GAAE;QACb,KAAK,EAAE,IAAA,6BAAW,EAAC,MAAM,CAAC;QAC1B,YAAY;KACb,CAAC,CAAC;AACL,CAAC"}
|
|
@@ -1,14 +1,8 @@
|
|
|
1
|
+
import type { HistoryContext } from '../internal/setup';
|
|
1
2
|
/**
|
|
2
|
-
*
|
|
3
|
-
*
|
|
3
|
+
* Delete a whole session: every message item plus the metadata item, removed in
|
|
4
|
+
* one batched write. Any offloaded S3 objects for those messages are then
|
|
5
|
+
* best-effort cleaned up.
|
|
4
6
|
*/
|
|
5
|
-
|
|
6
|
-
/**
|
|
7
|
-
* Clear all messages in a session by deleting all items (metadata + messages)
|
|
8
|
-
* Queries all items with the session prefix, then batch-deletes them
|
|
9
|
-
*
|
|
10
|
-
* @param params - Parameters for the clear operation
|
|
11
|
-
* @throws Error if the operation fails or validation fails
|
|
12
|
-
*/
|
|
13
|
-
export declare const clearAction: (params: ClearActionParams) => Promise<void>;
|
|
7
|
+
export declare function clearSession(context: HistoryContext, sessionId: string): Promise<void>;
|
|
14
8
|
//# sourceMappingURL=clear.d.ts.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"clear.d.ts","sourceRoot":"","sources":["../../../src/history/actions/clear.ts"],"names":[],"mappings":"
|
|
1
|
+
{"version":3,"file":"clear.d.ts","sourceRoot":"","sources":["../../../src/history/actions/clear.ts"],"names":[],"mappings":"AAOA,OAAO,KAAK,EAAE,cAAc,EAAE,MAAM,mBAAmB,CAAC;AAGxD;;;;GAIG;AACH,wBAAsB,YAAY,CAAC,OAAO,EAAE,cAAc,EAAE,SAAS,EAAE,MAAM,GAAG,OAAO,CAAC,IAAI,CAAC,CAqB5F"}
|
|
@@ -1,67 +1,33 @@
|
|
|
1
1
|
"use strict";
|
|
2
|
-
/**
|
|
3
|
-
* Clear all messages and metadata for a session
|
|
4
|
-
* Deletes both the metadata item and all individual message items
|
|
5
|
-
*/
|
|
6
2
|
Object.defineProperty(exports, "__esModule", { value: true });
|
|
7
|
-
exports.
|
|
8
|
-
const
|
|
9
|
-
const
|
|
3
|
+
exports.clearSession = clearSession;
|
|
4
|
+
const descriptor_keys_1 = require("../../shared/codec/descriptor-keys");
|
|
5
|
+
const orphans_1 = require("../../shared/codec/s3/orphans");
|
|
6
|
+
const batch_write_1 = require("../../shared/dynamodb/batch-write");
|
|
7
|
+
const paginate_1 = require("../../shared/dynamodb/paginate");
|
|
8
|
+
const query_1 = require("../internal/query");
|
|
10
9
|
/**
|
|
11
|
-
*
|
|
12
|
-
*
|
|
13
|
-
*
|
|
14
|
-
* @param params - Parameters for the clear operation
|
|
15
|
-
* @throws Error if the operation fails or validation fails
|
|
10
|
+
* Delete a whole session: every message item plus the metadata item, removed in
|
|
11
|
+
* one batched write. Any offloaded S3 objects for those messages are then
|
|
12
|
+
* best-effort cleaned up.
|
|
16
13
|
*/
|
|
17
|
-
|
|
18
|
-
const
|
|
19
|
-
|
|
20
|
-
(0,
|
|
21
|
-
|
|
22
|
-
|
|
23
|
-
|
|
24
|
-
|
|
25
|
-
|
|
26
|
-
|
|
27
|
-
|
|
28
|
-
|
|
29
|
-
|
|
30
|
-
|
|
31
|
-
|
|
32
|
-
|
|
33
|
-
|
|
34
|
-
|
|
35
|
-
|
|
36
|
-
const result = await (0, utils_1.withDynamoDBRetry)(async () => {
|
|
37
|
-
return await client.query({
|
|
38
|
-
TableName: tableName,
|
|
39
|
-
KeyConditionExpression: 'userId = :userId AND begins_with(sessionId, :prefix)',
|
|
40
|
-
ExpressionAttributeValues: {
|
|
41
|
-
':userId': userId,
|
|
42
|
-
':prefix': messagePrefix,
|
|
43
|
-
},
|
|
44
|
-
ProjectionExpression: 'userId, sessionId',
|
|
45
|
-
ExclusiveStartKey: lastEvaluatedKey,
|
|
46
|
-
});
|
|
47
|
-
}, { signal });
|
|
48
|
-
if (result.Items && result.Items.length > 0) {
|
|
49
|
-
// Prevent memory exhaustion
|
|
50
|
-
if (keysToDelete.length + result.Items.length > shared_1.MAX_TOTAL_ITEMS_IN_MEMORY) {
|
|
51
|
-
throw new Error('Clear operation exceeded maximum items in memory limit');
|
|
52
|
-
}
|
|
53
|
-
keysToDelete.push(...result.Items.map((item) => ({
|
|
54
|
-
userId: item.userId,
|
|
55
|
-
sessionId: item.sessionId,
|
|
56
|
-
})));
|
|
57
|
-
}
|
|
58
|
-
lastEvaluatedKey = result.LastEvaluatedKey;
|
|
59
|
-
} while (lastEvaluatedKey);
|
|
60
|
-
// Batch delete all items (metadata + messages) using shared utility
|
|
61
|
-
const deleteRequests = keysToDelete.map((key) => ({
|
|
62
|
-
DeleteRequest: { Key: key },
|
|
63
|
-
}));
|
|
64
|
-
await (0, shared_1.batchWriteAllWithRetry)(client, tableName, deleteRequests, { signal });
|
|
65
|
-
};
|
|
66
|
-
exports.clearAction = clearAction;
|
|
14
|
+
async function clearSession(context, sessionId) {
|
|
15
|
+
const deletes = [];
|
|
16
|
+
const descriptors = [];
|
|
17
|
+
for await (const raw of (0, paginate_1.paginateQuery)({
|
|
18
|
+
client: context.client,
|
|
19
|
+
params: (0, query_1.sessionItemsQuery)(context.tableName, sessionId),
|
|
20
|
+
})) {
|
|
21
|
+
const item = raw;
|
|
22
|
+
deletes.push({ DeleteRequest: { Key: { PK: item.PK, SK: item.SK } } });
|
|
23
|
+
if (item.message)
|
|
24
|
+
descriptors.push(item.message);
|
|
25
|
+
}
|
|
26
|
+
if (deletes.length === 0)
|
|
27
|
+
return;
|
|
28
|
+
await (0, batch_write_1.batchWriteAll)(context.client, context.tableName, deletes);
|
|
29
|
+
if (context.offloader) {
|
|
30
|
+
await (0, orphans_1.cleanUpS3Orphans)(context.offloader, (0, descriptor_keys_1.collectS3Keys)(descriptors), 'history.clear', context.logger);
|
|
31
|
+
}
|
|
32
|
+
}
|
|
67
33
|
//# sourceMappingURL=clear.js.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"clear.js","sourceRoot":"","sources":["../../../src/history/actions/clear.ts"],"names":[],"mappings":";
|
|
1
|
+
{"version":3,"file":"clear.js","sourceRoot":"","sources":["../../../src/history/actions/clear.ts"],"names":[],"mappings":";;AAeA,oCAqBC;AAnCD,wEAAmE;AACnE,2DAAiE;AACjE,mEAAkE;AAClE,6DAA+D;AAE/D,6CAAsD;AAItD;;;;GAIG;AACI,KAAK,UAAU,YAAY,CAAC,OAAuB,EAAE,SAAiB;IAC3E,MAAM,OAAO,GAAyB,EAAE,CAAC;IACzC,MAAM,WAAW,GAAwB,EAAE,CAAC;IAC5C,IAAI,KAAK,EAAE,MAAM,GAAG,IAAI,IAAA,wBAAa,EAAC;QACpC,MAAM,EAAE,OAAO,CAAC,MAAM;QACtB,MAAM,EAAE,IAAA,yBAAiB,EAAC,OAAO,CAAC,SAAS,EAAE,SAAS,CAAC;KACxD,CAAC,EAAE,CAAC;QACH,MAAM,IAAI,GAAG,GAAsB,CAAC;QACpC,OAAO,CAAC,IAAI,CAAC,EAAE,aAAa,EAAE,EAAE,GAAG,EAAE,EAAE,EAAE,EAAE,IAAI,CAAC,EAAE,EAAE,EAAE,EAAE,IAAI,CAAC,EAAE,EAAE,EAAE,EAAE,CAAC,CAAC;QACvE,IAAI,IAAI,CAAC,OAAO;YAAE,WAAW,CAAC,IAAI,CAAC,IAAI,CAAC,OAAO,CAAC,CAAC;IACnD,CAAC;IACD,IAAI,OAAO,CAAC,MAAM,KAAK,CAAC;QAAE,OAAO;IACjC,MAAM,IAAA,2BAAa,EAAC,OAAO,CAAC,MAAM,EAAE,OAAO,CAAC,SAAS,EAAE,OAAO,CAAC,CAAC;IAChE,IAAI,OAAO,CAAC,SAAS,EAAE,CAAC;QACtB,MAAM,IAAA,0BAAgB,EACpB,OAAO,CAAC,SAAS,EACjB,IAAA,+BAAa,EAAC,WAAW,CAAC,EAC1B,eAAe,EACf,OAAO,CAAC,MAAM,CACf,CAAC;IACJ,CAAC;AACH,CAAC"}
|
|
@@ -1,16 +1,9 @@
|
|
|
1
|
+
import { type BaseMessage } from '@langchain/core/messages';
|
|
2
|
+
import type { HistoryContext } from '../internal/setup';
|
|
1
3
|
/**
|
|
2
|
-
*
|
|
3
|
-
*
|
|
4
|
+
* Return a session's messages in chronological order. Items past their TTL are
|
|
5
|
+
* filtered out on read (DynamoDB's background TTL sweep can lag by up to 48h),
|
|
6
|
+
* so the returned history is never stale.
|
|
4
7
|
*/
|
|
5
|
-
|
|
6
|
-
import type { GetMessagesActionParams } from '../types';
|
|
7
|
-
/**
|
|
8
|
-
* Get all messages for a session from DynamoDB
|
|
9
|
-
* Queries message items by SK prefix and deserializes to proper BaseMessage instances
|
|
10
|
-
*
|
|
11
|
-
* @param params - Parameters for the get messages operation
|
|
12
|
-
* @returns Array of BaseMessage objects in chronological order
|
|
13
|
-
* @throws Error if the operation fails or validation fails
|
|
14
|
-
*/
|
|
15
|
-
export declare const getMessagesAction: (params: GetMessagesActionParams) => Promise<BaseMessage[]>;
|
|
8
|
+
export declare function getMessages(context: HistoryContext, sessionId: string): Promise<BaseMessage[]>;
|
|
16
9
|
//# sourceMappingURL=get-messages.d.ts.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"get-messages.d.ts","sourceRoot":"","sources":["../../../src/history/actions/get-messages.ts"],"names":[],"mappings":"AAAA
|
|
1
|
+
{"version":3,"file":"get-messages.d.ts","sourceRoot":"","sources":["../../../src/history/actions/get-messages.ts"],"names":[],"mappings":"AAAA,OAAO,EACL,KAAK,WAAW,EAGjB,MAAM,0BAA0B,CAAC;AAKlC,OAAO,KAAK,EAAE,cAAc,EAAE,MAAM,mBAAmB,CAAC;AAOxD;;;;GAIG;AACH,wBAAsB,WAAW,CAC/B,OAAO,EAAE,cAAc,EACvB,SAAS,EAAE,MAAM,GAChB,OAAO,CAAC,WAAW,EAAE,CAAC,CAYxB"}
|
|
@@ -1,66 +1,30 @@
|
|
|
1
1
|
"use strict";
|
|
2
|
-
/**
|
|
3
|
-
* Get all messages for a session
|
|
4
|
-
* Queries individual message items and deserializes to BaseMessage instances
|
|
5
|
-
*/
|
|
6
2
|
Object.defineProperty(exports, "__esModule", { value: true });
|
|
7
|
-
exports.
|
|
3
|
+
exports.getMessages = getMessages;
|
|
8
4
|
const messages_1 = require("@langchain/core/messages");
|
|
9
|
-
const
|
|
10
|
-
const
|
|
5
|
+
const paginate_1 = require("../../shared/dynamodb/paginate");
|
|
6
|
+
const item_mapper_1 = require("../internal/item-mapper");
|
|
7
|
+
const query_1 = require("../internal/query");
|
|
8
|
+
function isExpired(item, nowSeconds) {
|
|
9
|
+
return item.ttl !== undefined && item.ttl <= nowSeconds;
|
|
10
|
+
}
|
|
11
11
|
/**
|
|
12
|
-
*
|
|
13
|
-
*
|
|
14
|
-
*
|
|
15
|
-
* @param params - Parameters for the get messages operation
|
|
16
|
-
* @returns Array of BaseMessage objects in chronological order
|
|
17
|
-
* @throws Error if the operation fails or validation fails
|
|
12
|
+
* Return a session's messages in chronological order. Items past their TTL are
|
|
13
|
+
* filtered out on read (DynamoDB's background TTL sweep can lag by up to 48h),
|
|
14
|
+
* so the returned history is never stale.
|
|
18
15
|
*/
|
|
19
|
-
|
|
20
|
-
const
|
|
21
|
-
|
|
22
|
-
(0,
|
|
23
|
-
|
|
24
|
-
|
|
25
|
-
|
|
26
|
-
|
|
27
|
-
|
|
28
|
-
|
|
29
|
-
|
|
30
|
-
// Prevent infinite loops
|
|
31
|
-
iterationCount++;
|
|
32
|
-
if (iterationCount > shared_1.MAX_LOOP_ITERATIONS) {
|
|
33
|
-
throw new Error('getMessages operation exceeded maximum iteration limit');
|
|
34
|
-
}
|
|
35
|
-
const result = await (0, utils_1.withDynamoDBRetry)(async () => {
|
|
36
|
-
return await client.query({
|
|
37
|
-
TableName: tableName,
|
|
38
|
-
KeyConditionExpression: 'userId = :userId AND begins_with(sessionId, :prefix)',
|
|
39
|
-
ExpressionAttributeValues: {
|
|
40
|
-
':userId': userId,
|
|
41
|
-
':prefix': messagePrefix,
|
|
42
|
-
},
|
|
43
|
-
ExclusiveStartKey: lastEvaluatedKey,
|
|
44
|
-
});
|
|
45
|
-
}, { signal });
|
|
46
|
-
if (result.Items && result.Items.length > 0) {
|
|
47
|
-
// Prevent memory exhaustion
|
|
48
|
-
if (messages.length + result.Items.length > shared_1.MAX_TOTAL_ITEMS_IN_MEMORY) {
|
|
49
|
-
throw new Error('getMessages operation exceeded maximum items in memory limit');
|
|
50
|
-
}
|
|
51
|
-
messages.push(...result.Items);
|
|
52
|
-
}
|
|
53
|
-
lastEvaluatedKey = result.LastEvaluatedKey;
|
|
54
|
-
} while (lastEvaluatedKey);
|
|
55
|
-
// Return empty array if no messages found
|
|
56
|
-
if (messages.length === 0) {
|
|
57
|
-
return [];
|
|
16
|
+
async function getMessages(context, sessionId) {
|
|
17
|
+
const nowSeconds = Math.floor(Date.now() / 1000);
|
|
18
|
+
const stored = [];
|
|
19
|
+
for await (const raw of (0, paginate_1.paginateQuery)({
|
|
20
|
+
client: context.client,
|
|
21
|
+
params: (0, query_1.messageQuery)(context.tableName, sessionId),
|
|
22
|
+
})) {
|
|
23
|
+
const item = raw;
|
|
24
|
+
if (isExpired(item, nowSeconds))
|
|
25
|
+
continue;
|
|
26
|
+
stored.push(await (0, item_mapper_1.decodeMessageItem)(context, item));
|
|
58
27
|
}
|
|
59
|
-
|
|
60
|
-
|
|
61
|
-
// Deserialize StoredMessage objects to proper BaseMessage instances
|
|
62
|
-
const storedMessages = messages.map((item) => item.message);
|
|
63
|
-
return (0, messages_1.mapStoredMessagesToChatMessages)(storedMessages);
|
|
64
|
-
};
|
|
65
|
-
exports.getMessagesAction = getMessagesAction;
|
|
28
|
+
return (0, messages_1.mapStoredMessagesToChatMessages)(stored);
|
|
29
|
+
}
|
|
66
30
|
//# sourceMappingURL=get-messages.js.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"get-messages.js","sourceRoot":"","sources":["../../../src/history/actions/get-messages.ts"],"names":[],"mappings":";
|
|
1
|
+
{"version":3,"file":"get-messages.js","sourceRoot":"","sources":["../../../src/history/actions/get-messages.ts"],"names":[],"mappings":";;AAqBA,kCAeC;AApCD,uDAIkC;AAElC,6DAA+D;AAC/D,yDAA4D;AAC5D,6CAAiD;AAIjD,SAAS,SAAS,CAAC,IAAqB,EAAE,UAAkB;IAC1D,OAAO,IAAI,CAAC,GAAG,KAAK,SAAS,IAAI,IAAI,CAAC,GAAG,IAAI,UAAU,CAAC;AAC1D,CAAC;AAED;;;;GAIG;AACI,KAAK,UAAU,WAAW,CAC/B,OAAuB,EACvB,SAAiB;IAEjB,MAAM,UAAU,GAAG,IAAI,CAAC,KAAK,CAAC,IAAI,CAAC,GAAG,EAAE,GAAG,IAAI,CAAC,CAAC;IACjD,MAAM,MAAM,GAAoB,EAAE,CAAC;IACnC,IAAI,KAAK,EAAE,MAAM,GAAG,IAAI,IAAA,wBAAa,EAAC;QACpC,MAAM,EAAE,OAAO,CAAC,MAAM;QACtB,MAAM,EAAE,IAAA,oBAAY,EAAC,OAAO,CAAC,SAAS,EAAE,SAAS,CAAC;KACnD,CAAC,EAAE,CAAC;QACH,MAAM,IAAI,GAAG,GAAsB,CAAC;QACpC,IAAI,SAAS,CAAC,IAAI,EAAE,UAAU,CAAC;YAAE,SAAS;QAC1C,MAAM,CAAC,IAAI,CAAC,MAAM,IAAA,+BAAiB,EAAC,OAAO,EAAE,IAAI,CAAC,CAAC,CAAC;IACtD,CAAC;IACD,OAAO,IAAA,0CAA+B,EAAC,MAAM,CAAC,CAAC;AACjD,CAAC"}
|
|
@@ -1,25 +1,9 @@
|
|
|
1
|
+
import type { HistoryContext } from '../internal/setup';
|
|
2
|
+
import type { SessionMetadata } from '../types';
|
|
1
3
|
/**
|
|
2
|
-
* List all sessions
|
|
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.
|
|
3
7
|
*/
|
|
4
|
-
|
|
5
|
-
/**
|
|
6
|
-
* List all sessions for a user, sorted by most recent
|
|
7
|
-
* Uses projection expression to exclude messages for performance
|
|
8
|
-
*
|
|
9
|
-
* @remarks
|
|
10
|
-
* **Performance note:** This action loads all metadata items for a user into memory
|
|
11
|
-
* and sorts client-side by `updatedAt`. DynamoDB sorts by SK (sessionId), so server-side
|
|
12
|
-
* sorted pagination is not possible with the current schema.
|
|
13
|
-
*
|
|
14
|
-
* For users with thousands of sessions, consider adding a GSI on `userId + updatedAt`
|
|
15
|
-
* to enable server-side sorting with DynamoDB `Limit` and `ScanIndexForward`.
|
|
16
|
-
*
|
|
17
|
-
* A safety limit of {@link MAX_TOTAL_ITEMS_IN_MEMORY} is applied to prevent
|
|
18
|
-
* unbounded memory growth.
|
|
19
|
-
*
|
|
20
|
-
* @param params - Parameters for the list sessions operation
|
|
21
|
-
* @returns Array of session metadata, sorted by most recent first
|
|
22
|
-
* @throws Error if the operation fails or validation fails
|
|
23
|
-
*/
|
|
24
|
-
export declare const listSessionsAction: (params: ListSessionsActionParams) => Promise<SessionMetadata[]>;
|
|
8
|
+
export declare function listSessions(context: HistoryContext): Promise<SessionMetadata[]>;
|
|
25
9
|
//# sourceMappingURL=list-sessions.d.ts.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"list-sessions.d.ts","sourceRoot":"","sources":["../../../src/history/actions/list-sessions.ts"],"names":[],"mappings":"
|
|
1
|
+
{"version":3,"file":"list-sessions.d.ts","sourceRoot":"","sources":["../../../src/history/actions/list-sessions.ts"],"names":[],"mappings":"AAEA,OAAO,KAAK,EAAE,cAAc,EAAE,MAAM,mBAAmB,CAAC;AACxD,OAAO,KAAK,EAAmB,eAAe,EAAE,MAAM,UAAU,CAAC;AAEjE;;;;GAIG;AACH,wBAAsB,YAAY,CAAC,OAAO,EAAE,cAAc,GAAG,OAAO,CAAC,eAAe,EAAE,CAAC,CAuBtF"}
|
|
@@ -1,79 +1,36 @@
|
|
|
1
1
|
"use strict";
|
|
2
|
-
/**
|
|
3
|
-
* List all sessions for a user
|
|
4
|
-
*/
|
|
5
2
|
Object.defineProperty(exports, "__esModule", { value: true });
|
|
6
|
-
exports.
|
|
7
|
-
const
|
|
8
|
-
const
|
|
3
|
+
exports.listSessions = listSessions;
|
|
4
|
+
const scan_1 = require("../../shared/dynamodb/scan");
|
|
5
|
+
const keys_1 = require("../internal/keys");
|
|
9
6
|
/**
|
|
10
|
-
* List all sessions
|
|
11
|
-
*
|
|
12
|
-
*
|
|
13
|
-
* @remarks
|
|
14
|
-
* **Performance note:** This action loads all metadata items for a user into memory
|
|
15
|
-
* and sorts client-side by `updatedAt`. DynamoDB sorts by SK (sessionId), so server-side
|
|
16
|
-
* sorted pagination is not possible with the current schema.
|
|
17
|
-
*
|
|
18
|
-
* For users with thousands of sessions, consider adding a GSI on `userId + updatedAt`
|
|
19
|
-
* to enable server-side sorting with DynamoDB `Limit` and `ScanIndexForward`.
|
|
20
|
-
*
|
|
21
|
-
* A safety limit of {@link MAX_TOTAL_ITEMS_IN_MEMORY} is applied to prevent
|
|
22
|
-
* unbounded memory growth.
|
|
23
|
-
*
|
|
24
|
-
* @param params - Parameters for the list sessions operation
|
|
25
|
-
* @returns Array of session metadata, sorted by most recent first
|
|
26
|
-
* @throws Error if the operation fails or validation fails
|
|
7
|
+
* List all sessions as metadata summaries, newest-updated first. The scan is
|
|
8
|
+
* filtered to session items so the adapter works on a table shared with the
|
|
9
|
+
* checkpointer/store; foreign rows are also skipped defensively.
|
|
27
10
|
*/
|
|
28
|
-
|
|
29
|
-
const { client, tableName, userId, limit, signal } = params;
|
|
30
|
-
// Validate inputs
|
|
31
|
-
(0, utils_1.validateUserId)(userId);
|
|
32
|
-
(0, utils_1.validateLimit)(limit);
|
|
11
|
+
async function listSessions(context) {
|
|
33
12
|
const sessions = [];
|
|
34
|
-
|
|
35
|
-
|
|
36
|
-
|
|
37
|
-
|
|
38
|
-
|
|
39
|
-
|
|
40
|
-
|
|
41
|
-
|
|
42
|
-
|
|
43
|
-
|
|
44
|
-
|
|
45
|
-
|
|
46
|
-
|
|
47
|
-
},
|
|
48
|
-
ProjectionExpression: 'sessionId, title, createdAt, updatedAt, messageCount',
|
|
49
|
-
ExclusiveStartKey: lastEvaluatedKey,
|
|
50
|
-
});
|
|
51
|
-
}, { signal });
|
|
52
|
-
if (!result.Items || result.Items.length === 0) {
|
|
53
|
-
break;
|
|
54
|
-
}
|
|
55
|
-
// Map items to SessionMetadata
|
|
56
|
-
const mappedSessions = result.Items.map((item) => ({
|
|
13
|
+
for await (const raw of (0, scan_1.paginateScan)({
|
|
14
|
+
client: context.client,
|
|
15
|
+
params: {
|
|
16
|
+
TableName: context.tableName,
|
|
17
|
+
FilterExpression: '#sk = :session',
|
|
18
|
+
ExpressionAttributeNames: { '#sk': 'SK' },
|
|
19
|
+
ExpressionAttributeValues: { ':session': keys_1.SESSION_SORT_KEY },
|
|
20
|
+
},
|
|
21
|
+
})) {
|
|
22
|
+
const item = raw;
|
|
23
|
+
if (item.SK !== keys_1.SESSION_SORT_KEY || typeof item.sessionId !== 'string')
|
|
24
|
+
continue;
|
|
25
|
+
sessions.push({
|
|
57
26
|
sessionId: item.sessionId,
|
|
58
27
|
title: item.title,
|
|
28
|
+
messageCount: item.messageCount,
|
|
59
29
|
createdAt: item.createdAt,
|
|
60
30
|
updatedAt: item.updatedAt,
|
|
61
|
-
|
|
62
|
-
|
|
63
|
-
|
|
64
|
-
|
|
65
|
-
|
|
66
|
-
if (sessions.length >= shared_1.MAX_TOTAL_ITEMS_IN_MEMORY) {
|
|
67
|
-
(0, shared_1.getLogger)().warn(`listSessions truncated at ${shared_1.MAX_TOTAL_ITEMS_IN_MEMORY} items for userId="${userId}"; ` +
|
|
68
|
-
`older sessions are not returned. Add a GSI on (userId, updatedAt) for full coverage.`);
|
|
69
|
-
break;
|
|
70
|
-
}
|
|
71
|
-
lastEvaluatedKey = result.LastEvaluatedKey;
|
|
72
|
-
} while (lastEvaluatedKey);
|
|
73
|
-
// Sort by most recent first (updatedAt DESC)
|
|
74
|
-
sessions.sort((a, b) => b.updatedAt - a.updatedAt);
|
|
75
|
-
// Enforce limit on final result
|
|
76
|
-
return limit ? sessions.slice(0, limit) : sessions;
|
|
77
|
-
};
|
|
78
|
-
exports.listSessionsAction = listSessionsAction;
|
|
31
|
+
});
|
|
32
|
+
}
|
|
33
|
+
sessions.sort((a, b) => b.updatedAt.localeCompare(a.updatedAt));
|
|
34
|
+
return sessions;
|
|
35
|
+
}
|
|
79
36
|
//# sourceMappingURL=list-sessions.js.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"list-sessions.js","sourceRoot":"","sources":["../../../src/history/actions/list-sessions.ts"],"names":[],"mappings":"
|
|
1
|
+
{"version":3,"file":"list-sessions.js","sourceRoot":"","sources":["../../../src/history/actions/list-sessions.ts"],"names":[],"mappings":";;AAUA,oCAuBC;AAjCD,qDAA0D;AAC1D,2CAAoD;AAIpD;;;;GAIG;AACI,KAAK,UAAU,YAAY,CAAC,OAAuB;IACxD,MAAM,QAAQ,GAAsB,EAAE,CAAC;IACvC,IAAI,KAAK,EAAE,MAAM,GAAG,IAAI,IAAA,mBAAY,EAAC;QACnC,MAAM,EAAE,OAAO,CAAC,MAAM;QACtB,MAAM,EAAE;YACN,SAAS,EAAE,OAAO,CAAC,SAAS;YAC5B,gBAAgB,EAAE,gBAAgB;YAClC,wBAAwB,EAAE,EAAE,KAAK,EAAE,IAAI,EAAE;YACzC,yBAAyB,EAAE,EAAE,UAAU,EAAE,uBAAgB,EAAE;SAC5D;KACF,CAAC,EAAE,CAAC;QACH,MAAM,IAAI,GAAG,GAAsB,CAAC;QACpC,IAAI,IAAI,CAAC,EAAE,KAAK,uBAAgB,IAAI,OAAO,IAAI,CAAC,SAAS,KAAK,QAAQ;YAAE,SAAS;QACjF,QAAQ,CAAC,IAAI,CAAC;YACZ,SAAS,EAAE,IAAI,CAAC,SAAS;YACzB,KAAK,EAAE,IAAI,CAAC,KAAK;YACjB,YAAY,EAAE,IAAI,CAAC,YAAY;YAC/B,SAAS,EAAE,IAAI,CAAC,SAAS;YACzB,SAAS,EAAE,IAAI,CAAC,SAAS;SAC1B,CAAC,CAAC;IACL,CAAC;IACD,QAAQ,CAAC,IAAI,CAAC,CAAC,CAAC,EAAE,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC,SAAS,CAAC,aAAa,CAAC,CAAC,CAAC,SAAS,CAAC,CAAC,CAAC;IAChE,OAAO,QAAQ,CAAC;AAClB,CAAC"}
|
|
@@ -0,0 +1,10 @@
|
|
|
1
|
+
import type { HistoryContext } from '../internal/setup';
|
|
2
|
+
/**
|
|
3
|
+
* Recompute `messageCount` from the authoritative number of stored message items
|
|
4
|
+
* and write it back, repairing any drift. A repair tool: the append path keeps
|
|
5
|
+
* the count consistent transactionally, so this is only needed after external
|
|
6
|
+
* corruption. Run it when the session is quiescent — it `SET`s the count, so a
|
|
7
|
+
* concurrent append's increment could be clobbered. Returns the reconciled count.
|
|
8
|
+
*/
|
|
9
|
+
export declare function reconcileMessageCount(context: HistoryContext, sessionId: string): Promise<number>;
|
|
10
|
+
//# sourceMappingURL=reconcile-count.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"reconcile-count.d.ts","sourceRoot":"","sources":["../../../src/history/actions/reconcile-count.ts"],"names":[],"mappings":"AAMA,OAAO,KAAK,EAAE,cAAc,EAAE,MAAM,mBAAmB,CAAC;AAiBxD;;;;;;GAMG;AACH,wBAAsB,qBAAqB,CACzC,OAAO,EAAE,cAAc,EACvB,SAAS,EAAE,MAAM,GAChB,OAAO,CAAC,MAAM,CAAC,CAajB"}
|