@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,31 +0,0 @@
|
|
|
1
|
-
import type { DynamoDBClient } from '@aws-sdk/client-dynamodb';
|
|
2
|
-
import type { DynamoDBDocument } from '@aws-sdk/lib-dynamodb';
|
|
3
|
-
import type { SerializerProtocol } from '@langchain/langgraph-checkpoint';
|
|
4
|
-
import type { CompressionConfig } from '../../shared/codec/compression';
|
|
5
|
-
import { S3Offloader } from '../../shared/codec/s3/offloader';
|
|
6
|
-
import type { RetryOptions } from '../../shared/dynamodb/retry';
|
|
7
|
-
import { type Logger } from '../../shared/logging/logger';
|
|
8
|
-
import type { TtlOption } from '../../shared/validation/ttl';
|
|
9
|
-
import type { CorruptMessagePolicy, DynamoDBChatMessageHistoryOptions } from '../types';
|
|
10
|
-
/** Resolved collaborators shared by every chat-history action. */
|
|
11
|
-
export interface HistoryContext {
|
|
12
|
-
client: DynamoDBDocument;
|
|
13
|
-
tableName: string;
|
|
14
|
-
serde: SerializerProtocol;
|
|
15
|
-
compression?: CompressionConfig;
|
|
16
|
-
offloader?: S3Offloader;
|
|
17
|
-
ttl?: TtlOption;
|
|
18
|
-
logger: Logger;
|
|
19
|
-
ulid: () => string;
|
|
20
|
-
onCorruptMessage: CorruptMessagePolicy;
|
|
21
|
-
/** Retry budget and backoff for every DynamoDB call, with the retry debug log attached. */
|
|
22
|
-
retry?: RetryOptions;
|
|
23
|
-
}
|
|
24
|
-
/** Result of wiring up a chat-history adapter from its options. */
|
|
25
|
-
export interface HistorySetup {
|
|
26
|
-
context: HistoryContext;
|
|
27
|
-
ddbClient: DynamoDBClient | undefined;
|
|
28
|
-
ownsClient: boolean;
|
|
29
|
-
}
|
|
30
|
-
/** Resolve the client, optional S3 offloader, and serializer into a context. */
|
|
31
|
-
export declare function setUpHistory(options: DynamoDBChatMessageHistoryOptions): HistorySetup;
|
|
@@ -1,43 +0,0 @@
|
|
|
1
|
-
"use strict";
|
|
2
|
-
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
|
-
exports.setUpHistory = setUpHistory;
|
|
4
|
-
const json_serde_1 = require("../../shared/codec/json-serde");
|
|
5
|
-
const adapter_config_1 = require("../../shared/codec/s3/adapter-config");
|
|
6
|
-
const offloader_1 = require("../../shared/codec/s3/offloader");
|
|
7
|
-
const client_1 = require("../../shared/dynamodb/client");
|
|
8
|
-
const retry_policy_1 = require("../../shared/dynamodb/retry-policy");
|
|
9
|
-
const errors_1 = require("../../shared/errors/errors");
|
|
10
|
-
const logger_1 = require("../../shared/logging/logger");
|
|
11
|
-
const ulid_1 = require("../../shared/ulid");
|
|
12
|
-
const options_1 = require("../../shared/validation/options");
|
|
13
|
-
const CORRUPT_MESSAGE_POLICIES = ['skip', 'throw'];
|
|
14
|
-
/** Resolve the client, optional S3 offloader, and serializer into a context. */
|
|
15
|
-
function setUpHistory(options) {
|
|
16
|
-
(0, options_1.validateBaseAdapterOptions)(options);
|
|
17
|
-
if (options.onCorruptMessage !== undefined &&
|
|
18
|
-
!CORRUPT_MESSAGE_POLICIES.includes(options.onCorruptMessage)) {
|
|
19
|
-
throw new errors_1.ValidationError(`onCorruptMessage must be one of ${CORRUPT_MESSAGE_POLICIES.join(' | ')}`, 'onCorruptMessage');
|
|
20
|
-
}
|
|
21
|
-
const logger = (0, logger_1.resolveLogger)(options.logger);
|
|
22
|
-
const resolved = (0, client_1.resolveDynamoDBClient)(options);
|
|
23
|
-
if (!resolved.ownsClient)
|
|
24
|
-
void (0, client_1.warnOnStackedRetries)(resolved.client, logger);
|
|
25
|
-
return {
|
|
26
|
-
context: {
|
|
27
|
-
client: resolved.client,
|
|
28
|
-
tableName: options.tableName,
|
|
29
|
-
serde: options.serde ?? json_serde_1.JSON_SERDE,
|
|
30
|
-
compression: options.compression,
|
|
31
|
-
offloader: options.s3
|
|
32
|
-
? new offloader_1.S3Offloader((0, adapter_config_1.offloaderConfigFor)(options.s3, 'history', options.clientConfig))
|
|
33
|
-
: undefined,
|
|
34
|
-
ttl: options.ttl,
|
|
35
|
-
logger,
|
|
36
|
-
retry: (0, retry_policy_1.resolveRetryPolicy)(options.retry, logger),
|
|
37
|
-
ulid: (0, ulid_1.createUlidFactory)(),
|
|
38
|
-
onCorruptMessage: options.onCorruptMessage ?? 'skip',
|
|
39
|
-
},
|
|
40
|
-
ddbClient: resolved.ddbClient,
|
|
41
|
-
ownsClient: resolved.ownsClient,
|
|
42
|
-
};
|
|
43
|
-
}
|
|
@@ -1,12 +0,0 @@
|
|
|
1
|
-
import type { StoredMessage } from '@langchain/core/messages';
|
|
2
|
-
/**
|
|
3
|
-
* Derive a session title from the first human message's text content, at most
|
|
4
|
-
* {@link MAX_TITLE_LENGTH} characters including the ellipsis. Returns undefined
|
|
5
|
-
* when there is no usable text.
|
|
6
|
-
*
|
|
7
|
-
* Truncation counts *code points*, not UTF-16 code units: slicing by index
|
|
8
|
-
* could cut a surrogate pair in half, leaving a lone surrogate that no longer
|
|
9
|
-
* round-trips through UTF-8. The ellipsis is also counted against the maximum
|
|
10
|
-
* rather than appended past it.
|
|
11
|
-
*/
|
|
12
|
-
export declare function deriveTitle(messages: StoredMessage[]): string | undefined;
|
|
@@ -1,41 +0,0 @@
|
|
|
1
|
-
"use strict";
|
|
2
|
-
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
|
-
exports.deriveTitle = deriveTitle;
|
|
4
|
-
const MAX_TITLE_LENGTH = 80;
|
|
5
|
-
function isTextBlock(block) {
|
|
6
|
-
const candidate = block;
|
|
7
|
-
return candidate.type === 'text' && typeof candidate.text === 'string';
|
|
8
|
-
}
|
|
9
|
-
/**
|
|
10
|
-
* The human-readable text of a message's `content`: the string itself, or the
|
|
11
|
-
* first `text` block of a content-block array (a multimodal message carries
|
|
12
|
-
* image and text blocks side by side). Undefined when neither yields text.
|
|
13
|
-
*/
|
|
14
|
-
function textOf(content) {
|
|
15
|
-
if (typeof content === 'string')
|
|
16
|
-
return content;
|
|
17
|
-
if (!Array.isArray(content))
|
|
18
|
-
return undefined;
|
|
19
|
-
const block = content.find((entry) => typeof entry === 'object' && entry !== null && isTextBlock(entry));
|
|
20
|
-
return block?.text;
|
|
21
|
-
}
|
|
22
|
-
/**
|
|
23
|
-
* Derive a session title from the first human message's text content, at most
|
|
24
|
-
* {@link MAX_TITLE_LENGTH} characters including the ellipsis. Returns undefined
|
|
25
|
-
* when there is no usable text.
|
|
26
|
-
*
|
|
27
|
-
* Truncation counts *code points*, not UTF-16 code units: slicing by index
|
|
28
|
-
* could cut a surrogate pair in half, leaving a lone surrogate that no longer
|
|
29
|
-
* round-trips through UTF-8. The ellipsis is also counted against the maximum
|
|
30
|
-
* rather than appended past it.
|
|
31
|
-
*/
|
|
32
|
-
function deriveTitle(messages) {
|
|
33
|
-
const firstHuman = messages.find((message) => message.type === 'human');
|
|
34
|
-
const content = firstHuman === undefined ? undefined : textOf(firstHuman.data.content);
|
|
35
|
-
if (content === undefined || content.length === 0)
|
|
36
|
-
return undefined;
|
|
37
|
-
const codePoints = [...content];
|
|
38
|
-
if (codePoints.length <= MAX_TITLE_LENGTH)
|
|
39
|
-
return content;
|
|
40
|
-
return `${codePoints.slice(0, MAX_TITLE_LENGTH - 1).join('')}…`;
|
|
41
|
-
}
|
|
@@ -1,24 +0,0 @@
|
|
|
1
|
-
import type { HistoryContext } from './setup';
|
|
2
|
-
/** The resolved ttl anchor plus whether the persisted SESSION-row value must be force-refreshed. */
|
|
3
|
-
export interface TtlAnchorResult {
|
|
4
|
-
ttlTimestamp: number;
|
|
5
|
-
refresh: boolean;
|
|
6
|
-
}
|
|
7
|
-
/**
|
|
8
|
-
* Resolve the session's creation-anchored TTL: the value already stored on the
|
|
9
|
-
* SESSION item, if one exists AND is still in the future; otherwise the
|
|
10
|
-
* supplied `candidate`, with `refresh: true` so the caller force-overwrites
|
|
11
|
-
* the stale/missing persisted anchor instead of leaving it stuck (DynamoDB's
|
|
12
|
-
* `if_not_exists` would otherwise never correct an already-expired anchor).
|
|
13
|
-
* This is a strongly-consistent read, never a write, so it cannot leave a
|
|
14
|
-
* metadata-only orphan row when the following append transaction fails.
|
|
15
|
-
*
|
|
16
|
-
* When a stale anchor is healed, only the persisted SESSION row's `ttl` is
|
|
17
|
-
* force-refreshed — the message rows already written under the expired
|
|
18
|
-
* anchor keep their own (already-expired) `ttl` and get swept independently
|
|
19
|
-
* by DynamoDB's TTL sweep. Until that sweep runs (and until
|
|
20
|
-
* `reconcileMessageCount` repairs the count), `messageCount` can therefore be
|
|
21
|
-
* temporarily overstated relative to what `getMessages` actually returns.
|
|
22
|
-
* This is expected, not a bug.
|
|
23
|
-
*/
|
|
24
|
-
export declare function resolveTtlAnchor(context: HistoryContext, sessionId: string, candidate: number, signal?: AbortSignal): Promise<TtlAnchorResult>;
|
|
@@ -1,38 +0,0 @@
|
|
|
1
|
-
"use strict";
|
|
2
|
-
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
|
-
exports.resolveTtlAnchor = resolveTtlAnchor;
|
|
4
|
-
const clock_1 = require("../../shared/clock");
|
|
5
|
-
const retry_1 = require("../../shared/dynamodb/retry");
|
|
6
|
-
const retry_policy_1 = require("../../shared/dynamodb/retry-policy");
|
|
7
|
-
const keys_1 = require("./keys");
|
|
8
|
-
/**
|
|
9
|
-
* Resolve the session's creation-anchored TTL: the value already stored on the
|
|
10
|
-
* SESSION item, if one exists AND is still in the future; otherwise the
|
|
11
|
-
* supplied `candidate`, with `refresh: true` so the caller force-overwrites
|
|
12
|
-
* the stale/missing persisted anchor instead of leaving it stuck (DynamoDB's
|
|
13
|
-
* `if_not_exists` would otherwise never correct an already-expired anchor).
|
|
14
|
-
* This is a strongly-consistent read, never a write, so it cannot leave a
|
|
15
|
-
* metadata-only orphan row when the following append transaction fails.
|
|
16
|
-
*
|
|
17
|
-
* When a stale anchor is healed, only the persisted SESSION row's `ttl` is
|
|
18
|
-
* force-refreshed — the message rows already written under the expired
|
|
19
|
-
* anchor keep their own (already-expired) `ttl` and get swept independently
|
|
20
|
-
* by DynamoDB's TTL sweep. Until that sweep runs (and until
|
|
21
|
-
* `reconcileMessageCount` repairs the count), `messageCount` can therefore be
|
|
22
|
-
* temporarily overstated relative to what `getMessages` actually returns.
|
|
23
|
-
* This is expected, not a bug.
|
|
24
|
-
*/
|
|
25
|
-
async function resolveTtlAnchor(context, sessionId, candidate, signal) {
|
|
26
|
-
const result = await (0, retry_1.withDynamoDBRetry)(() => context.client.get({
|
|
27
|
-
TableName: context.tableName,
|
|
28
|
-
Key: { PK: (0, keys_1.sessionPartition)(sessionId), SK: keys_1.SESSION_SORT_KEY },
|
|
29
|
-
ConsistentRead: true,
|
|
30
|
-
ProjectionExpression: '#ttl',
|
|
31
|
-
ExpressionAttributeNames: { '#ttl': 'ttl' },
|
|
32
|
-
}), (0, retry_policy_1.retryFor)(context, signal));
|
|
33
|
-
const ttl = result.Item?.ttl;
|
|
34
|
-
if (typeof ttl === 'number' && ttl > (0, clock_1.nowSeconds)()) {
|
|
35
|
-
return { ttlTimestamp: ttl, refresh: false };
|
|
36
|
-
}
|
|
37
|
-
return { ttlTimestamp: candidate, refresh: true };
|
|
38
|
-
}
|
|
@@ -1,25 +0,0 @@
|
|
|
1
|
-
import { type StoredMessage } from '@langchain/core/messages';
|
|
2
|
-
import type { MessageWindow } from '../types';
|
|
3
|
-
/**
|
|
4
|
-
* Validate a session id is a non-blank, separator- and control-char-free string
|
|
5
|
-
* of at most 1024 bytes. Applied on every entry point, not just the write path: a bad value
|
|
6
|
-
* used to reach DynamoDB and surface as a raw AWS SDK exception on reads,
|
|
7
|
-
* while the identical value threw this library's typed `ValidationError` on a
|
|
8
|
-
* write.
|
|
9
|
-
*/
|
|
10
|
-
export declare function validateSessionId(sessionId: string): void;
|
|
11
|
-
/**
|
|
12
|
-
* Reject a message this adapter could never read back. The check *is* the
|
|
13
|
-
* read side's own rebuild (`mapStoredMessagesToChatMessages`), so write and
|
|
14
|
-
* read agree by construction: a `RemoveMessage`, or a tool, function or
|
|
15
|
-
* generic message missing its required field, fails here with a typed error
|
|
16
|
-
* instead of being persisted and then skipped or thrown by `getMessages`.
|
|
17
|
-
*/
|
|
18
|
-
export declare function validateStorableMessages(stored: StoredMessage[]): void;
|
|
19
|
-
/**
|
|
20
|
-
* Validate a `getMessages` window: `limit`, when given, a positive integer;
|
|
21
|
-
* `before`, when given, a valid `Date`. Checked before any DynamoDB call so a
|
|
22
|
-
* bad value fails with a typed error rather than a raw `ValidationException`
|
|
23
|
-
* (or, for an invalid Date, a NaN-derived sort key that matches nothing).
|
|
24
|
-
*/
|
|
25
|
-
export declare function validateMessageWindow(window: MessageWindow): void;
|
|
@@ -1,53 +0,0 @@
|
|
|
1
|
-
"use strict";
|
|
2
|
-
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
|
-
exports.validateSessionId = validateSessionId;
|
|
4
|
-
exports.validateStorableMessages = validateStorableMessages;
|
|
5
|
-
exports.validateMessageWindow = validateMessageWindow;
|
|
6
|
-
const messages_1 = require("@langchain/core/messages");
|
|
7
|
-
const constants_1 = require("../../shared/constants");
|
|
8
|
-
const errors_1 = require("../../shared/errors/errors");
|
|
9
|
-
const primitives_1 = require("../../shared/validation/primitives");
|
|
10
|
-
const keys_1 = require("./keys");
|
|
11
|
-
/**
|
|
12
|
-
* Validate a session id is a non-blank, separator- and control-char-free string
|
|
13
|
-
* of at most 1024 bytes. Applied on every entry point, not just the write path: a bad value
|
|
14
|
-
* used to reach DynamoDB and surface as a raw AWS SDK exception on reads,
|
|
15
|
-
* while the identical value threw this library's typed `ValidationError` on a
|
|
16
|
-
* write.
|
|
17
|
-
*/
|
|
18
|
-
function validateSessionId(sessionId) {
|
|
19
|
-
(0, primitives_1.validateIdentifier)(sessionId, keys_1.SORT_KEY_SEPARATOR, 'sessionId', constants_1.MAX_PARTITION_ID_BYTES);
|
|
20
|
-
}
|
|
21
|
-
/**
|
|
22
|
-
* Reject a message this adapter could never read back. The check *is* the
|
|
23
|
-
* read side's own rebuild (`mapStoredMessagesToChatMessages`), so write and
|
|
24
|
-
* read agree by construction: a `RemoveMessage`, or a tool, function or
|
|
25
|
-
* generic message missing its required field, fails here with a typed error
|
|
26
|
-
* instead of being persisted and then skipped or thrown by `getMessages`.
|
|
27
|
-
*/
|
|
28
|
-
function validateStorableMessages(stored) {
|
|
29
|
-
stored.forEach((message, index) => {
|
|
30
|
-
try {
|
|
31
|
-
(0, messages_1.mapStoredMessagesToChatMessages)([message]);
|
|
32
|
-
}
|
|
33
|
-
catch (error) {
|
|
34
|
-
throw new errors_1.ValidationError(`messages[${index}] of type "${message.type}" cannot be stored: ${error.message}`, 'messages');
|
|
35
|
-
}
|
|
36
|
-
});
|
|
37
|
-
}
|
|
38
|
-
/**
|
|
39
|
-
* Validate a `getMessages` window: `limit`, when given, a positive integer;
|
|
40
|
-
* `before`, when given, a valid `Date`. Checked before any DynamoDB call so a
|
|
41
|
-
* bad value fails with a typed error rather than a raw `ValidationException`
|
|
42
|
-
* (or, for an invalid Date, a NaN-derived sort key that matches nothing).
|
|
43
|
-
*/
|
|
44
|
-
function validateMessageWindow(window) {
|
|
45
|
-
if (window.limit !== undefined && (!Number.isInteger(window.limit) || window.limit < 1)) {
|
|
46
|
-
throw new errors_1.ValidationError('limit must be a positive integer', 'limit');
|
|
47
|
-
}
|
|
48
|
-
if (window.before !== undefined) {
|
|
49
|
-
const time = typeof window.before.getTime === 'function' ? window.before.getTime() : Number.NaN;
|
|
50
|
-
if (!Number.isFinite(time))
|
|
51
|
-
throw new errors_1.ValidationError('before must be a valid Date', 'before');
|
|
52
|
-
}
|
|
53
|
-
}
|
|
@@ -1,29 +0,0 @@
|
|
|
1
|
-
import { BaseListChatMessageHistory } from '@langchain/core/chat_history';
|
|
2
|
-
import type { BaseMessage } from '@langchain/core/messages';
|
|
3
|
-
/** The read window an adapter applies to every `getMessages`. */
|
|
4
|
-
export type AdapterWindow = {
|
|
5
|
-
limit?: number;
|
|
6
|
-
};
|
|
7
|
-
/** The session-scoped operations a single-session adapter delegates to. */
|
|
8
|
-
export interface SessionBackend {
|
|
9
|
-
getMessages(sessionId: string, window?: AdapterWindow): Promise<BaseMessage[]>;
|
|
10
|
-
addMessages(sessionId: string, messages: BaseMessage[]): Promise<void>;
|
|
11
|
-
clear(sessionId: string): Promise<void>;
|
|
12
|
-
}
|
|
13
|
-
/**
|
|
14
|
-
* Single-session view over a {@link SessionBackend}, implementing LangChain's
|
|
15
|
-
* `BaseListChatMessageHistory` so it can drive `RunnableWithMessageHistory`.
|
|
16
|
-
* A `window` bounds what every read hands the chain — `{ limit: 50 }` feeds it
|
|
17
|
-
* the newest fifty messages instead of the whole session.
|
|
18
|
-
*/
|
|
19
|
-
export declare class DynamoDBSessionChatMessageHistory extends BaseListChatMessageHistory {
|
|
20
|
-
private readonly backend;
|
|
21
|
-
private readonly sessionId;
|
|
22
|
-
private readonly window?;
|
|
23
|
-
lc_namespace: string[];
|
|
24
|
-
constructor(backend: SessionBackend, sessionId: string, window?: AdapterWindow | undefined);
|
|
25
|
-
getMessages(): Promise<BaseMessage[]>;
|
|
26
|
-
addMessage(message: BaseMessage): Promise<void>;
|
|
27
|
-
addMessages(messages: BaseMessage[]): Promise<void>;
|
|
28
|
-
clear(): Promise<void>;
|
|
29
|
-
}
|
|
@@ -1,35 +0,0 @@
|
|
|
1
|
-
"use strict";
|
|
2
|
-
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
|
-
exports.DynamoDBSessionChatMessageHistory = void 0;
|
|
4
|
-
const chat_history_1 = require("@langchain/core/chat_history");
|
|
5
|
-
/**
|
|
6
|
-
* Single-session view over a {@link SessionBackend}, implementing LangChain's
|
|
7
|
-
* `BaseListChatMessageHistory` so it can drive `RunnableWithMessageHistory`.
|
|
8
|
-
* A `window` bounds what every read hands the chain — `{ limit: 50 }` feeds it
|
|
9
|
-
* the newest fifty messages instead of the whole session.
|
|
10
|
-
*/
|
|
11
|
-
class DynamoDBSessionChatMessageHistory extends chat_history_1.BaseListChatMessageHistory {
|
|
12
|
-
backend;
|
|
13
|
-
sessionId;
|
|
14
|
-
window;
|
|
15
|
-
lc_namespace = ['langchain', 'stores', 'message', 'dynamodb'];
|
|
16
|
-
constructor(backend, sessionId, window) {
|
|
17
|
-
super();
|
|
18
|
-
this.backend = backend;
|
|
19
|
-
this.sessionId = sessionId;
|
|
20
|
-
this.window = window;
|
|
21
|
-
}
|
|
22
|
-
getMessages() {
|
|
23
|
-
return this.backend.getMessages(this.sessionId, this.window);
|
|
24
|
-
}
|
|
25
|
-
addMessage(message) {
|
|
26
|
-
return this.backend.addMessages(this.sessionId, [message]);
|
|
27
|
-
}
|
|
28
|
-
addMessages(messages) {
|
|
29
|
-
return this.backend.addMessages(this.sessionId, messages);
|
|
30
|
-
}
|
|
31
|
-
clear() {
|
|
32
|
-
return this.backend.clear(this.sessionId);
|
|
33
|
-
}
|
|
34
|
-
}
|
|
35
|
-
exports.DynamoDBSessionChatMessageHistory = DynamoDBSessionChatMessageHistory;
|
package/dist/history/types.d.ts
DELETED
|
@@ -1,69 +0,0 @@
|
|
|
1
|
-
import type { SerializerProtocol } from '@langchain/langgraph-checkpoint';
|
|
2
|
-
import type { PayloadDescriptor } from '../shared/codec/codec';
|
|
3
|
-
import type { BaseAdapterOptions, CancelOptions, CodecOptions } from '../shared/options';
|
|
4
|
-
/** Options for {@link DynamoDBChatMessageHistory}. */
|
|
5
|
-
export type DynamoDBChatMessageHistoryOptions = BaseAdapterOptions & CodecOptions & {
|
|
6
|
-
/** Optional serializer override (defaults to the JSON serializer). */
|
|
7
|
-
serde?: SerializerProtocol;
|
|
8
|
-
/**
|
|
9
|
-
* What `getMessages` does when a stored message cannot be decoded — a
|
|
10
|
-
* decompression-guard trip, an unsupported `serdeType` after a config
|
|
11
|
-
* change, or genuinely corrupted bytes. `'skip'` (the default) drops the
|
|
12
|
-
* item, logs it at `error` with its sort key so an operator can locate
|
|
13
|
-
* it, and returns the rest; `'throw'` fails the whole read, which is
|
|
14
|
-
* all-or-nothing but leaves the session unreadable until the bad row is
|
|
15
|
-
* removed out of band.
|
|
16
|
-
*/
|
|
17
|
-
onCorruptMessage?: CorruptMessagePolicy;
|
|
18
|
-
};
|
|
19
|
-
/** How `getMessages` handles an item it cannot decode. */
|
|
20
|
-
export type CorruptMessagePolicy = 'skip' | 'throw';
|
|
21
|
-
/**
|
|
22
|
-
* Which slice of a session `getMessages` returns. Both bounds are optional
|
|
23
|
-
* and combine: `{ limit: 50, before }` is the fifty messages just before
|
|
24
|
-
* `before`.
|
|
25
|
-
*/
|
|
26
|
-
export interface MessageWindow {
|
|
27
|
-
/** Return only the newest `limit` messages — still in chronological order. */
|
|
28
|
-
limit?: number;
|
|
29
|
-
/** Return only messages appended before this instant (millisecond precision). */
|
|
30
|
-
before?: Date;
|
|
31
|
-
}
|
|
32
|
-
/** Options for `getMessages`: the read window plus cancellation. */
|
|
33
|
-
export type GetMessagesOptions = MessageWindow & CancelOptions;
|
|
34
|
-
/** Options for `listSessions`: the scan caps plus cancellation. */
|
|
35
|
-
export interface ListSessionsOptions extends CancelOptions {
|
|
36
|
-
/** Cap on scan pages before `ResultTruncatedError` (default 1000). */
|
|
37
|
-
maxIterations?: number;
|
|
38
|
-
/** Cap on rows read into memory before `ResultTruncatedError` (default 10 000). */
|
|
39
|
-
maxItems?: number;
|
|
40
|
-
}
|
|
41
|
-
/** Summary of a stored chat session. */
|
|
42
|
-
export interface SessionMetadata {
|
|
43
|
-
sessionId: string;
|
|
44
|
-
title?: string;
|
|
45
|
-
messageCount: number;
|
|
46
|
-
createdAt: string;
|
|
47
|
-
updatedAt: string;
|
|
48
|
-
/** When the session's TTL expires, as an ISO-8601 instant; absent when no TTL is stored. */
|
|
49
|
-
expiresAt?: string;
|
|
50
|
-
}
|
|
51
|
-
/** A single stored chat message item (one per message, ordered by its ULID). */
|
|
52
|
-
export interface ChatMessageItem {
|
|
53
|
-
PK: string;
|
|
54
|
-
SK: string;
|
|
55
|
-
sessionId: string;
|
|
56
|
-
message: PayloadDescriptor;
|
|
57
|
-
ttl?: number;
|
|
58
|
-
}
|
|
59
|
-
/** The per-session metadata item, updated atomically as messages are appended. */
|
|
60
|
-
export interface ChatSessionItem {
|
|
61
|
-
PK: string;
|
|
62
|
-
SK: string;
|
|
63
|
-
sessionId: string;
|
|
64
|
-
messageCount: number;
|
|
65
|
-
title?: string;
|
|
66
|
-
createdAt: string;
|
|
67
|
-
updatedAt: string;
|
|
68
|
-
ttl?: number;
|
|
69
|
-
}
|
package/dist/index.d.ts
DELETED
|
@@ -1,29 +0,0 @@
|
|
|
1
|
-
export { DynamoDBSaver } from './checkpointer/saver';
|
|
2
|
-
export type { DynamoDBSaverOptions } from './checkpointer/types';
|
|
3
|
-
export { DynamoDBStore } from './store/store';
|
|
4
|
-
export type { DynamoDBStoreOptions } from './store/types';
|
|
5
|
-
export type { VectorReconcileResult } from './store/actions/reconcile-vector-index';
|
|
6
|
-
export type { VectorBackend, VectorMatch, VectorRef } from './store/vector-backend';
|
|
7
|
-
export type { VectorScoreDirection } from './store/internal/score-direction';
|
|
8
|
-
export { DynamoDBChatMessageHistory } from './history/chat-message-history';
|
|
9
|
-
export { DynamoDBSessionChatMessageHistory } from './history/session-adapter';
|
|
10
|
-
export type { AdapterWindow, SessionBackend } from './history/session-adapter';
|
|
11
|
-
export type { CorruptMessagePolicy, DynamoDBChatMessageHistoryOptions, GetMessagesOptions, ListSessionsOptions, MessageWindow, SessionMetadata, } from './history/types';
|
|
12
|
-
export { DynamoDBFactory } from './factory/factory';
|
|
13
|
-
export type { AdapterSection, CreateAllOptions, CreatedAdapters, FactoryBaseOptions, } from './factory/types';
|
|
14
|
-
export { DynamoDBLangGraphError, isDynamoDBLangGraphError } from './shared/errors/base-error';
|
|
15
|
-
export type { ErrorContext } from './shared/errors/base-error';
|
|
16
|
-
export { ErrorCode } from './shared/errors/error-code';
|
|
17
|
-
export { AbortError, BatchWriteAllIncompleteError, BatchWriteIncompleteError, CompensationFailedError, ConflictError, ResultTruncatedError, RetryExhaustedError, ValidationError, } from './shared/errors/errors';
|
|
18
|
-
export { UpstreamError } from './shared/errors/upstream-error';
|
|
19
|
-
export type { Logger, LogArgument } from './shared/logging/logger';
|
|
20
|
-
export { redactLogger, redactSecrets } from './shared/logging/redaction';
|
|
21
|
-
export type { RedactLoggerOptions } from './shared/logging/redaction';
|
|
22
|
-
export type { Redactable } from './shared/logging/redaction-walk';
|
|
23
|
-
export type { CancelOptions, BaseAdapterOptions, CodecOptions } from './shared/options';
|
|
24
|
-
export type { RetryAttemptInfo, RetryOptions } from './shared/dynamodb/retry';
|
|
25
|
-
export type { RetryPolicy } from './shared/dynamodb/retry-policy';
|
|
26
|
-
export type { TtlOption } from './shared/validation/ttl';
|
|
27
|
-
export type { CompressionConfig } from './shared/codec/compression';
|
|
28
|
-
export type { S3OffloadConfig } from './shared/codec/s3/config';
|
|
29
|
-
export type { S3ClientConfigLike, S3ClientLike, S3ClientOption, S3ClientOptions, S3CommandLike, S3RegionLike, } from './shared/codec/s3/client-types';
|
package/dist/index.js
DELETED
|
@@ -1,32 +0,0 @@
|
|
|
1
|
-
"use strict";
|
|
2
|
-
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
|
-
exports.redactSecrets = exports.redactLogger = exports.UpstreamError = exports.ValidationError = exports.RetryExhaustedError = exports.ResultTruncatedError = exports.ConflictError = exports.CompensationFailedError = exports.BatchWriteIncompleteError = exports.BatchWriteAllIncompleteError = exports.AbortError = exports.ErrorCode = exports.isDynamoDBLangGraphError = exports.DynamoDBLangGraphError = exports.DynamoDBFactory = exports.DynamoDBSessionChatMessageHistory = exports.DynamoDBChatMessageHistory = exports.DynamoDBStore = exports.DynamoDBSaver = void 0;
|
|
4
|
-
var saver_1 = require("./checkpointer/saver");
|
|
5
|
-
Object.defineProperty(exports, "DynamoDBSaver", { enumerable: true, get: function () { return saver_1.DynamoDBSaver; } });
|
|
6
|
-
var store_1 = require("./store/store");
|
|
7
|
-
Object.defineProperty(exports, "DynamoDBStore", { enumerable: true, get: function () { return store_1.DynamoDBStore; } });
|
|
8
|
-
var chat_message_history_1 = require("./history/chat-message-history");
|
|
9
|
-
Object.defineProperty(exports, "DynamoDBChatMessageHistory", { enumerable: true, get: function () { return chat_message_history_1.DynamoDBChatMessageHistory; } });
|
|
10
|
-
var session_adapter_1 = require("./history/session-adapter");
|
|
11
|
-
Object.defineProperty(exports, "DynamoDBSessionChatMessageHistory", { enumerable: true, get: function () { return session_adapter_1.DynamoDBSessionChatMessageHistory; } });
|
|
12
|
-
var factory_1 = require("./factory/factory");
|
|
13
|
-
Object.defineProperty(exports, "DynamoDBFactory", { enumerable: true, get: function () { return factory_1.DynamoDBFactory; } });
|
|
14
|
-
var base_error_1 = require("./shared/errors/base-error");
|
|
15
|
-
Object.defineProperty(exports, "DynamoDBLangGraphError", { enumerable: true, get: function () { return base_error_1.DynamoDBLangGraphError; } });
|
|
16
|
-
Object.defineProperty(exports, "isDynamoDBLangGraphError", { enumerable: true, get: function () { return base_error_1.isDynamoDBLangGraphError; } });
|
|
17
|
-
var error_code_1 = require("./shared/errors/error-code");
|
|
18
|
-
Object.defineProperty(exports, "ErrorCode", { enumerable: true, get: function () { return error_code_1.ErrorCode; } });
|
|
19
|
-
var errors_1 = require("./shared/errors/errors");
|
|
20
|
-
Object.defineProperty(exports, "AbortError", { enumerable: true, get: function () { return errors_1.AbortError; } });
|
|
21
|
-
Object.defineProperty(exports, "BatchWriteAllIncompleteError", { enumerable: true, get: function () { return errors_1.BatchWriteAllIncompleteError; } });
|
|
22
|
-
Object.defineProperty(exports, "BatchWriteIncompleteError", { enumerable: true, get: function () { return errors_1.BatchWriteIncompleteError; } });
|
|
23
|
-
Object.defineProperty(exports, "CompensationFailedError", { enumerable: true, get: function () { return errors_1.CompensationFailedError; } });
|
|
24
|
-
Object.defineProperty(exports, "ConflictError", { enumerable: true, get: function () { return errors_1.ConflictError; } });
|
|
25
|
-
Object.defineProperty(exports, "ResultTruncatedError", { enumerable: true, get: function () { return errors_1.ResultTruncatedError; } });
|
|
26
|
-
Object.defineProperty(exports, "RetryExhaustedError", { enumerable: true, get: function () { return errors_1.RetryExhaustedError; } });
|
|
27
|
-
Object.defineProperty(exports, "ValidationError", { enumerable: true, get: function () { return errors_1.ValidationError; } });
|
|
28
|
-
var upstream_error_1 = require("./shared/errors/upstream-error");
|
|
29
|
-
Object.defineProperty(exports, "UpstreamError", { enumerable: true, get: function () { return upstream_error_1.UpstreamError; } });
|
|
30
|
-
var redaction_1 = require("./shared/logging/redaction");
|
|
31
|
-
Object.defineProperty(exports, "redactLogger", { enumerable: true, get: function () { return redaction_1.redactLogger; } });
|
|
32
|
-
Object.defineProperty(exports, "redactSecrets", { enumerable: true, get: function () { return redaction_1.redactSecrets; } });
|
package/dist/shared/clock.d.ts
DELETED
|
@@ -1,8 +0,0 @@
|
|
|
1
|
-
/** Current time as an ISO-8601 string, derived from the (test-freezable) clock. */
|
|
2
|
-
export declare function nowIso(): string;
|
|
3
|
-
/**
|
|
4
|
-
* Current time as whole epoch seconds, the unit DynamoDB TTL uses. Every
|
|
5
|
-
* expiry stamp, expiry filter and ttl-anchor comparison reads this one seam
|
|
6
|
-
* so they agree with each other under a frozen or skewed clock.
|
|
7
|
-
*/
|
|
8
|
-
export declare function nowSeconds(): number;
|
package/dist/shared/clock.js
DELETED
|
@@ -1,16 +0,0 @@
|
|
|
1
|
-
"use strict";
|
|
2
|
-
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
|
-
exports.nowIso = nowIso;
|
|
4
|
-
exports.nowSeconds = nowSeconds;
|
|
5
|
-
/** Current time as an ISO-8601 string, derived from the (test-freezable) clock. */
|
|
6
|
-
function nowIso() {
|
|
7
|
-
return new Date(Date.now()).toISOString();
|
|
8
|
-
}
|
|
9
|
-
/**
|
|
10
|
-
* Current time as whole epoch seconds, the unit DynamoDB TTL uses. Every
|
|
11
|
-
* expiry stamp, expiry filter and ttl-anchor comparison reads this one seam
|
|
12
|
-
* so they agree with each other under a frozen or skewed clock.
|
|
13
|
-
*/
|
|
14
|
-
function nowSeconds() {
|
|
15
|
-
return Math.floor(Date.now() / 1000);
|
|
16
|
-
}
|
|
@@ -1,53 +0,0 @@
|
|
|
1
|
-
import type { SerializerProtocol } from '@langchain/langgraph-checkpoint';
|
|
2
|
-
import { CompressionConfig } from './compression';
|
|
3
|
-
import type { S3Offloader } from './s3/offloader';
|
|
4
|
-
/** Where an encoded payload lives. */
|
|
5
|
-
export declare enum PayloadLocation {
|
|
6
|
-
INLINE = "INLINE",
|
|
7
|
-
S3 = "S3"
|
|
8
|
-
}
|
|
9
|
-
/**
|
|
10
|
-
* Version of the persisted descriptor shape. Absent on rows written before it
|
|
11
|
-
* existed, which read as version 1; a higher value marks a row written by a
|
|
12
|
-
* newer library and is refused rather than misread.
|
|
13
|
-
*/
|
|
14
|
-
export declare const DESCRIPTOR_SCHEMA_VERSION = 1;
|
|
15
|
-
/** Fields every descriptor carries, whatever its location. */
|
|
16
|
-
interface DescriptorBase {
|
|
17
|
-
schemaVersion?: number;
|
|
18
|
-
serdeType: string;
|
|
19
|
-
compressed: boolean;
|
|
20
|
-
}
|
|
21
|
-
/** A payload stored inline as bytes in the DynamoDB item. */
|
|
22
|
-
interface InlinePayloadDescriptor extends DescriptorBase {
|
|
23
|
-
location: PayloadLocation.INLINE;
|
|
24
|
-
bytes: Uint8Array;
|
|
25
|
-
}
|
|
26
|
-
/** A payload offloaded to S3, referenced by key. */
|
|
27
|
-
interface S3PayloadDescriptor extends DescriptorBase {
|
|
28
|
-
location: PayloadLocation.S3;
|
|
29
|
-
s3Key: string;
|
|
30
|
-
}
|
|
31
|
-
/** The result of encoding a payload. */
|
|
32
|
-
export type PayloadDescriptor = InlinePayloadDescriptor | S3PayloadDescriptor;
|
|
33
|
-
/** Collaborators for the codec. */
|
|
34
|
-
export interface CodecDeps {
|
|
35
|
-
serde: SerializerProtocol;
|
|
36
|
-
compression?: CompressionConfig;
|
|
37
|
-
offloader?: S3Offloader;
|
|
38
|
-
}
|
|
39
|
-
/**
|
|
40
|
-
* Fetch a descriptor's bytes — an S3 download when offloaded — and undo
|
|
41
|
-
* compression. Infrastructure only, no deserialization: a caller that needs to
|
|
42
|
-
* tell a transport or permission failure from bad data does this step and
|
|
43
|
-
* `loadsTyped` separately (see `history/actions/get-messages.ts`).
|
|
44
|
-
*
|
|
45
|
-
* `scope` is the row's own leading key parts (`[threadId]`, `[...namespace,
|
|
46
|
-
* key]`, `[sessionId]`): an offloaded key is downloaded only when it lies under
|
|
47
|
-
* the path those parts produce, so a row can never point this adapter at an
|
|
48
|
-
* object it does not own.
|
|
49
|
-
*/
|
|
50
|
-
export declare function readPayloadBytes(descriptor: PayloadDescriptor, deps: CodecDeps, scope: readonly string[]): Promise<Uint8Array>;
|
|
51
|
-
/** Decode a {@link PayloadDescriptor} produced by `encodePayload`; see {@link readPayloadBytes} for `scope`. */
|
|
52
|
-
export declare function decodePayload<T>(descriptor: PayloadDescriptor, deps: CodecDeps, scope: readonly string[]): Promise<T>;
|
|
53
|
-
export {};
|
|
@@ -1,66 +0,0 @@
|
|
|
1
|
-
"use strict";
|
|
2
|
-
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
|
-
exports.DESCRIPTOR_SCHEMA_VERSION = exports.PayloadLocation = void 0;
|
|
4
|
-
exports.readPayloadBytes = readPayloadBytes;
|
|
5
|
-
exports.decodePayload = decodePayload;
|
|
6
|
-
const errors_1 = require("../errors/errors");
|
|
7
|
-
const compression_1 = require("./compression");
|
|
8
|
-
/** Where an encoded payload lives. */
|
|
9
|
-
var PayloadLocation;
|
|
10
|
-
(function (PayloadLocation) {
|
|
11
|
-
PayloadLocation["INLINE"] = "INLINE";
|
|
12
|
-
PayloadLocation["S3"] = "S3";
|
|
13
|
-
})(PayloadLocation || (exports.PayloadLocation = PayloadLocation = {}));
|
|
14
|
-
/**
|
|
15
|
-
* Version of the persisted descriptor shape. Absent on rows written before it
|
|
16
|
-
* existed, which read as version 1; a higher value marks a row written by a
|
|
17
|
-
* newer library and is refused rather than misread.
|
|
18
|
-
*/
|
|
19
|
-
exports.DESCRIPTOR_SCHEMA_VERSION = 1;
|
|
20
|
-
function requireOffloader(deps) {
|
|
21
|
-
if (!deps.offloader) {
|
|
22
|
-
throw new errors_1.ValidationError("this row's payload is offloaded to S3 but the adapter has no `s3` configuration; " +
|
|
23
|
-
'configure the bucket the writer used', 's3');
|
|
24
|
-
}
|
|
25
|
-
return deps.offloader;
|
|
26
|
-
}
|
|
27
|
-
/** Refuse a descriptor this version cannot read: a newer schema, or an unknown location. */
|
|
28
|
-
function assertReadableDescriptor(descriptor) {
|
|
29
|
-
const version = descriptor.schemaVersion ?? exports.DESCRIPTOR_SCHEMA_VERSION;
|
|
30
|
-
if (version > exports.DESCRIPTOR_SCHEMA_VERSION) {
|
|
31
|
-
throw new errors_1.ValidationError(`payload descriptor schemaVersion ${version} was written by a newer version of this ` +
|
|
32
|
-
'library; upgrade to read it', 'descriptor');
|
|
33
|
-
}
|
|
34
|
-
const locations = Object.values(PayloadLocation);
|
|
35
|
-
if (!locations.includes(descriptor.location)) {
|
|
36
|
-
throw new errors_1.ValidationError(`payload descriptor has an unknown location ${JSON.stringify(descriptor.location)}`, 'descriptor');
|
|
37
|
-
}
|
|
38
|
-
}
|
|
39
|
-
/**
|
|
40
|
-
* Fetch a descriptor's bytes — an S3 download when offloaded — and undo
|
|
41
|
-
* compression. Infrastructure only, no deserialization: a caller that needs to
|
|
42
|
-
* tell a transport or permission failure from bad data does this step and
|
|
43
|
-
* `loadsTyped` separately (see `history/actions/get-messages.ts`).
|
|
44
|
-
*
|
|
45
|
-
* `scope` is the row's own leading key parts (`[threadId]`, `[...namespace,
|
|
46
|
-
* key]`, `[sessionId]`): an offloaded key is downloaded only when it lies under
|
|
47
|
-
* the path those parts produce, so a row can never point this adapter at an
|
|
48
|
-
* object it does not own.
|
|
49
|
-
*/
|
|
50
|
-
async function readPayloadBytes(descriptor, deps, scope) {
|
|
51
|
-
assertReadableDescriptor(descriptor);
|
|
52
|
-
let raw;
|
|
53
|
-
if (descriptor.location === PayloadLocation.S3) {
|
|
54
|
-
const offloader = requireOffloader(deps);
|
|
55
|
-
offloader.assertOwnedKey(descriptor.s3Key, scope);
|
|
56
|
-
raw = await offloader.download(descriptor.s3Key);
|
|
57
|
-
}
|
|
58
|
-
else {
|
|
59
|
-
raw = descriptor.bytes;
|
|
60
|
-
}
|
|
61
|
-
return (0, compression_1.decompress)(raw, descriptor.compressed, deps.compression?.maxDecompressedBytes);
|
|
62
|
-
}
|
|
63
|
-
/** Decode a {@link PayloadDescriptor} produced by `encodePayload`; see {@link readPayloadBytes} for `scope`. */
|
|
64
|
-
async function decodePayload(descriptor, deps, scope) {
|
|
65
|
-
return deps.serde.loadsTyped(descriptor.serdeType, await readPayloadBytes(descriptor, deps, scope));
|
|
66
|
-
}
|
|
@@ -1,24 +0,0 @@
|
|
|
1
|
-
/** Configuration for payload compression. */
|
|
2
|
-
export interface CompressionConfig {
|
|
3
|
-
enabled: boolean;
|
|
4
|
-
minSizeBytes?: number;
|
|
5
|
-
level?: number;
|
|
6
|
-
maxDecompressedBytes?: number;
|
|
7
|
-
}
|
|
8
|
-
/** The bytes to store plus whether they were gzip-compressed. */
|
|
9
|
-
export interface CompressionResult {
|
|
10
|
-
bytes: Uint8Array;
|
|
11
|
-
compressed: boolean;
|
|
12
|
-
}
|
|
13
|
-
/**
|
|
14
|
-
* Gzip `data` when it is at least `minSizeBytes` and compression actually saves
|
|
15
|
-
* space. Returns the bytes to store and a `compressed` flag the caller records
|
|
16
|
-
* in the payload descriptor; compression is never inferred from the bytes.
|
|
17
|
-
*/
|
|
18
|
-
export declare function compress(data: Uint8Array, config: CompressionConfig): Promise<CompressionResult>;
|
|
19
|
-
/**
|
|
20
|
-
* Gunzip `data` when `compressed` is true; otherwise return it unchanged. Throws
|
|
21
|
-
* a {@link DynamoDBLangGraphError} with code `COMPRESSION_LIMIT` if the output
|
|
22
|
-
* would exceed `maxBytes` (bomb guard).
|
|
23
|
-
*/
|
|
24
|
-
export declare function decompress(data: Uint8Array, compressed: boolean, maxBytes?: number): Promise<Uint8Array>;
|