@oscharko-dev/keiko-memory-retrieval 0.2.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.
@@ -0,0 +1 @@
1
+ {"fileNames":["../../../node_modules/typescript/lib/lib.es5.d.ts","../../../node_modules/typescript/lib/lib.es2015.d.ts","../../../node_modules/typescript/lib/lib.es2016.d.ts","../../../node_modules/typescript/lib/lib.es2017.d.ts","../../../node_modules/typescript/lib/lib.es2018.d.ts","../../../node_modules/typescript/lib/lib.es2019.d.ts","../../../node_modules/typescript/lib/lib.es2020.d.ts","../../../node_modules/typescript/lib/lib.es2021.d.ts","../../../node_modules/typescript/lib/lib.es2022.d.ts","../../../node_modules/typescript/lib/lib.dom.d.ts","../../../node_modules/typescript/lib/lib.es2015.core.d.ts","../../../node_modules/typescript/lib/lib.es2015.collection.d.ts","../../../node_modules/typescript/lib/lib.es2015.generator.d.ts","../../../node_modules/typescript/lib/lib.es2015.iterable.d.ts","../../../node_modules/typescript/lib/lib.es2015.promise.d.ts","../../../node_modules/typescript/lib/lib.es2015.proxy.d.ts","../../../node_modules/typescript/lib/lib.es2015.reflect.d.ts","../../../node_modules/typescript/lib/lib.es2015.symbol.d.ts","../../../node_modules/typescript/lib/lib.es2015.symbol.wellknown.d.ts","../../../node_modules/typescript/lib/lib.es2016.array.include.d.ts","../../../node_modules/typescript/lib/lib.es2016.intl.d.ts","../../../node_modules/typescript/lib/lib.es2017.arraybuffer.d.ts","../../../node_modules/typescript/lib/lib.es2017.date.d.ts","../../../node_modules/typescript/lib/lib.es2017.object.d.ts","../../../node_modules/typescript/lib/lib.es2017.sharedmemory.d.ts","../../../node_modules/typescript/lib/lib.es2017.string.d.ts","../../../node_modules/typescript/lib/lib.es2017.intl.d.ts","../../../node_modules/typescript/lib/lib.es2017.typedarrays.d.ts","../../../node_modules/typescript/lib/lib.es2018.asyncgenerator.d.ts","../../../node_modules/typescript/lib/lib.es2018.asynciterable.d.ts","../../../node_modules/typescript/lib/lib.es2018.intl.d.ts","../../../node_modules/typescript/lib/lib.es2018.promise.d.ts","../../../node_modules/typescript/lib/lib.es2018.regexp.d.ts","../../../node_modules/typescript/lib/lib.es2019.array.d.ts","../../../node_modules/typescript/lib/lib.es2019.object.d.ts","../../../node_modules/typescript/lib/lib.es2019.string.d.ts","../../../node_modules/typescript/lib/lib.es2019.symbol.d.ts","../../../node_modules/typescript/lib/lib.es2019.intl.d.ts","../../../node_modules/typescript/lib/lib.es2020.bigint.d.ts","../../../node_modules/typescript/lib/lib.es2020.date.d.ts","../../../node_modules/typescript/lib/lib.es2020.promise.d.ts","../../../node_modules/typescript/lib/lib.es2020.sharedmemory.d.ts","../../../node_modules/typescript/lib/lib.es2020.string.d.ts","../../../node_modules/typescript/lib/lib.es2020.symbol.wellknown.d.ts","../../../node_modules/typescript/lib/lib.es2020.intl.d.ts","../../../node_modules/typescript/lib/lib.es2020.number.d.ts","../../../node_modules/typescript/lib/lib.es2021.promise.d.ts","../../../node_modules/typescript/lib/lib.es2021.string.d.ts","../../../node_modules/typescript/lib/lib.es2021.weakref.d.ts","../../../node_modules/typescript/lib/lib.es2021.intl.d.ts","../../../node_modules/typescript/lib/lib.es2022.array.d.ts","../../../node_modules/typescript/lib/lib.es2022.error.d.ts","../../../node_modules/typescript/lib/lib.es2022.intl.d.ts","../../../node_modules/typescript/lib/lib.es2022.object.d.ts","../../../node_modules/typescript/lib/lib.es2022.string.d.ts","../../../node_modules/typescript/lib/lib.es2022.regexp.d.ts","../../../node_modules/typescript/lib/lib.es2025.float16.d.ts","../../../node_modules/typescript/lib/lib.esnext.disposable.d.ts","../../../node_modules/typescript/lib/lib.decorators.d.ts","../../../node_modules/typescript/lib/lib.decorators.legacy.d.ts","../../keiko-contracts/dist/memory.d.ts","../../keiko-contracts/dist/memory-records.d.ts","../../keiko-contracts/dist/memory-operations.d.ts","../../keiko-contracts/dist/memory-validation.d.ts","../../keiko-contracts/dist/memory-operations-validation.d.ts","../../keiko-contracts/dist/memory-retrieval-validation.d.ts","../../keiko-contracts/dist/memory-audit-validation.d.ts","../../keiko-contracts/dist/memory-audit-events.d.ts","../../keiko-contracts/dist/memory-record-validation.d.ts","../../keiko-contracts/dist/memory-barrel.d.ts","../src/types.ts","../src/context.ts","../src/decay.ts","../src/diversity.ts","../src/errors.ts","../src/graph.ts","../src/version.ts","../src/suppression.ts","../src/relevance.ts","../src/recency.ts","../src/strength.ts","../src/ranking.ts","../src/retrieve.ts","../src/index.ts","../../../node_modules/@types/node/compatibility/iterators.d.ts","../../../node_modules/@types/node/globals.typedarray.d.ts","../../../node_modules/@types/node/buffer.buffer.d.ts","../../../node_modules/@types/node/globals.d.ts","../../../node_modules/@types/node/web-globals/abortcontroller.d.ts","../../../node_modules/@types/node/web-globals/blob.d.ts","../../../node_modules/@types/node/web-globals/console.d.ts","../../../node_modules/@types/node/web-globals/crypto.d.ts","../../../node_modules/@types/node/web-globals/domexception.d.ts","../../../node_modules/@types/node/web-globals/encoding.d.ts","../../../node_modules/@types/node/web-globals/events.d.ts","../../../node_modules/undici-types/utility.d.ts","../../../node_modules/undici-types/header.d.ts","../../../node_modules/undici-types/readable.d.ts","../../../node_modules/undici-types/fetch.d.ts","../../../node_modules/undici-types/formdata.d.ts","../../../node_modules/undici-types/connector.d.ts","../../../node_modules/undici-types/client-stats.d.ts","../../../node_modules/undici-types/client.d.ts","../../../node_modules/undici-types/errors.d.ts","../../../node_modules/undici-types/dispatcher.d.ts","../../../node_modules/undici-types/global-dispatcher.d.ts","../../../node_modules/undici-types/global-origin.d.ts","../../../node_modules/undici-types/pool-stats.d.ts","../../../node_modules/undici-types/pool.d.ts","../../../node_modules/undici-types/handlers.d.ts","../../../node_modules/undici-types/balanced-pool.d.ts","../../../node_modules/undici-types/round-robin-pool.d.ts","../../../node_modules/undici-types/h2c-client.d.ts","../../../node_modules/undici-types/agent.d.ts","../../../node_modules/undici-types/mock-interceptor.d.ts","../../../node_modules/undici-types/mock-call-history.d.ts","../../../node_modules/undici-types/mock-agent.d.ts","../../../node_modules/undici-types/mock-client.d.ts","../../../node_modules/undici-types/mock-pool.d.ts","../../../node_modules/undici-types/snapshot-agent.d.ts","../../../node_modules/undici-types/mock-errors.d.ts","../../../node_modules/undici-types/proxy-agent.d.ts","../../../node_modules/undici-types/socks5-proxy-agent.d.ts","../../../node_modules/undici-types/env-http-proxy-agent.d.ts","../../../node_modules/undici-types/retry-handler.d.ts","../../../node_modules/undici-types/retry-agent.d.ts","../../../node_modules/undici-types/api.d.ts","../../../node_modules/undici-types/cache-interceptor.d.ts","../../../node_modules/undici-types/interceptors.d.ts","../../../node_modules/undici-types/util.d.ts","../../../node_modules/undici-types/cookies.d.ts","../../../node_modules/undici-types/patch.d.ts","../../../node_modules/undici-types/websocket.d.ts","../../../node_modules/undici-types/eventsource.d.ts","../../../node_modules/undici-types/diagnostics-channel.d.ts","../../../node_modules/undici-types/content-type.d.ts","../../../node_modules/undici-types/cache.d.ts","../../../node_modules/undici-types/index.d.ts","../../../node_modules/@types/node/web-globals/fetch.d.ts","../../../node_modules/@types/node/web-globals/importmeta.d.ts","../../../node_modules/@types/node/web-globals/messaging.d.ts","../../../node_modules/@types/node/web-globals/navigator.d.ts","../../../node_modules/@types/node/web-globals/performance.d.ts","../../../node_modules/@types/node/web-globals/storage.d.ts","../../../node_modules/@types/node/web-globals/streams.d.ts","../../../node_modules/@types/node/web-globals/timers.d.ts","../../../node_modules/@types/node/web-globals/url.d.ts","../../../node_modules/@types/node/assert.d.ts","../../../node_modules/@types/node/assert/strict.d.ts","../../../node_modules/@types/node/async_hooks.d.ts","../../../node_modules/@types/node/buffer.d.ts","../../../node_modules/@types/node/child_process.d.ts","../../../node_modules/@types/node/cluster.d.ts","../../../node_modules/@types/node/console.d.ts","../../../node_modules/@types/node/constants.d.ts","../../../node_modules/@types/node/crypto.d.ts","../../../node_modules/@types/node/dgram.d.ts","../../../node_modules/@types/node/diagnostics_channel.d.ts","../../../node_modules/@types/node/dns.d.ts","../../../node_modules/@types/node/dns/promises.d.ts","../../../node_modules/@types/node/domain.d.ts","../../../node_modules/@types/node/events.d.ts","../../../node_modules/@types/node/fs.d.ts","../../../node_modules/@types/node/fs/promises.d.ts","../../../node_modules/@types/node/http.d.ts","../../../node_modules/@types/node/http2.d.ts","../../../node_modules/@types/node/https.d.ts","../../../node_modules/@types/node/inspector.d.ts","../../../node_modules/@types/node/inspector.generated.d.ts","../../../node_modules/@types/node/inspector/promises.d.ts","../../../node_modules/@types/node/module.d.ts","../../../node_modules/@types/node/net.d.ts","../../../node_modules/@types/node/os.d.ts","../../../node_modules/@types/node/path.d.ts","../../../node_modules/@types/node/path/posix.d.ts","../../../node_modules/@types/node/path/win32.d.ts","../../../node_modules/@types/node/perf_hooks.d.ts","../../../node_modules/@types/node/process.d.ts","../../../node_modules/@types/node/punycode.d.ts","../../../node_modules/@types/node/querystring.d.ts","../../../node_modules/@types/node/quic.d.ts","../../../node_modules/@types/node/readline.d.ts","../../../node_modules/@types/node/readline/promises.d.ts","../../../node_modules/@types/node/repl.d.ts","../../../node_modules/@types/node/sea.d.ts","../../../node_modules/@types/node/sqlite.d.ts","../../../node_modules/@types/node/stream.d.ts","../../../node_modules/@types/node/stream/consumers.d.ts","../../../node_modules/@types/node/stream/iter.d.ts","../../../node_modules/@types/node/stream/promises.d.ts","../../../node_modules/@types/node/stream/web.d.ts","../../../node_modules/@types/node/string_decoder.d.ts","../../../node_modules/@types/node/test.d.ts","../../../node_modules/@types/node/test/reporters.d.ts","../../../node_modules/@types/node/timers.d.ts","../../../node_modules/@types/node/timers/promises.d.ts","../../../node_modules/@types/node/tls.d.ts","../../../node_modules/@types/node/trace_events.d.ts","../../../node_modules/@types/node/tty.d.ts","../../../node_modules/@types/node/url.d.ts","../../../node_modules/@types/node/util.d.ts","../../../node_modules/@types/node/util/types.d.ts","../../../node_modules/@types/node/v8.d.ts","../../../node_modules/@types/node/vm.d.ts","../../../node_modules/@types/node/wasi.d.ts","../../../node_modules/@types/node/worker_threads.d.ts","../../../node_modules/@types/node/zlib.d.ts","../../../node_modules/@types/node/zlib/iter.d.ts","../../../node_modules/@types/node/index.d.ts"],"fileIdsList":[[87,148,149,151,159,163,166,168,169,170,182],[87,150,151,159,163,166,168,169,170,182],[151,159,163,166,168,169,170,182],[87,151,159,163,166,168,169,170,182,191],[87,151,152,157,159,162,163,166,168,169,170,172,182,187,200],[87,151,152,153,159,162,163,166,168,169,170,182],[87,151,159,163,166,168,169,170,182],[87,151,154,159,163,166,168,169,170,182,201],[87,151,155,156,159,163,166,168,169,170,173,182],[87,151,156,159,163,166,168,169,170,182,187,197],[87,151,157,159,162,163,166,168,169,170,172,182],[87,150,151,158,159,163,166,168,169,170,182],[87,151,159,160,163,166,168,169,170,182],[87,151,159,161,162,163,166,168,169,170,182],[87,150,151,159,162,163,166,168,169,170,182],[87,151,159,162,163,164,166,168,169,170,182,187,200],[87,151,159,162,163,164,166,168,169,170,182,187,189,191],[87,138,151,159,162,163,165,166,168,169,170,172,182,187,200],[87,151,159,162,163,165,166,168,169,170,172,182,187,197,200],[87,151,159,163,165,166,167,168,169,170,182,187,197,200],[85,86,87,88,89,90,91,92,93,94,95,139,140,141,142,143,144,145,146,147,148,149,150,151,152,153,154,155,156,157,158,159,160,161,162,163,164,165,166,167,168,169,170,171,172,173,174,175,176,177,178,179,180,181,182,183,184,185,186,187,188,189,190,191,192,193,194,195,196,197,198,199,200,201,202,203,204,205,206,207,208],[87,151,159,162,163,166,168,169,170,182],[87,151,159,163,166,168,170,182],[87,151,159,163,166,168,169,170,171,182,200],[87,151,159,162,163,166,168,169,170,172,182,187],[87,151,159,163,166,168,169,170,173,182],[87,151,159,163,166,168,169,170,174,182],[87,151,159,162,163,166,168,169,170,177,182],[87,148,149,150,151,152,153,154,155,156,157,158,159,160,161,162,163,164,165,166,167,168,169,170,171,172,173,174,175,176,177,178,179,180,181,182,183,184,185,186,187,188,190,191,192,193,194,195,196,197,198,199,200,201,202,203,204,205,206,207],[87,151,159,163,166,168,169,170,179,182],[87,151,159,163,166,168,169,170,180,182],[87,151,156,159,163,166,168,169,170,172,182,191],[87,151,159,162,163,166,168,169,170,182,183],[87,151,159,163,166,168,169,170,182,184,201,204],[87,151,159,162,163,166,168,169,170,182,187,190,191],[87,151,159,163,166,168,169,170,182,188,191],[87,151,159,163,166,168,169,170,182,189],[87,151,159,163,166,168,169,170,182,191,201],[87,151,159,163,166,168,169,170,182,192],[87,148,151,159,163,166,168,169,170,182,187,194,200],[87,151,159,163,166,168,169,170,182,187,193],[87,151,159,162,163,166,168,169,170,182,195,196],[87,151,159,163,166,168,169,170,182,195,196],[87,151,156,159,163,166,168,169,170,172,182,187,197],[87,151,159,163,166,168,169,170,182,198],[87,151,159,163,166,168,169,170,172,182,199],[87,151,159,163,165,166,168,169,170,180,182,200],[87,151,159,163,166,168,169,170,182,201,202],[87,151,156,159,163,166,168,169,170,182,202],[87,151,159,163,166,168,169,170,182,187,203],[87,151,159,163,166,168,169,170,171,182,204],[87,151,159,163,166,168,169,170,182,205],[87,151,154,159,163,166,168,169,170,182],[87,151,156,159,163,166,168,169,170,182],[87,151,159,163,166,168,169,170,182,201],[87,138,151,159,163,166,168,169,170,182],[87,151,159,163,166,168,169,170,182,200],[87,151,159,163,166,168,169,170,182,206],[87,151,159,163,166,168,169,170,177,182],[87,151,159,163,166,168,169,170,182,196],[87,138,151,159,162,163,164,166,168,169,170,177,182,187,191,200,203,204,206],[87,151,159,163,166,168,169,170,182,187,207],[87,151,159,163,166,168,169,170,182,189,208],[87,102,105,108,109,151,159,163,166,168,169,170,182,200],[87,105,151,159,163,166,168,169,170,182,187,200],[87,105,109,151,159,163,166,168,169,170,182,200],[87,151,159,163,166,168,169,170,182,187],[87,99,151,159,163,166,168,169,170,182],[87,103,151,159,163,166,168,169,170,182],[87,101,102,105,151,159,163,166,168,169,170,182,200],[87,151,159,163,166,168,169,170,172,182,197],[87,151,159,163,166,168,169,170,182,209],[87,99,151,159,163,166,168,169,170,182,209],[87,101,105,151,159,163,166,168,169,170,172,182,200],[87,96,97,98,100,104,151,159,162,163,166,168,169,170,182,187,200],[87,105,114,122,151,159,163,166,168,169,170,182],[87,97,103,151,159,163,166,168,169,170,182],[87,105,132,133,151,159,163,166,168,169,170,182],[87,97,100,105,151,159,163,166,168,169,170,182,191,200,209],[87,105,151,159,163,166,168,169,170,182],[87,101,105,151,159,163,166,168,169,170,182,200],[87,96,151,159,163,166,168,169,170,182],[87,99,100,101,103,104,105,106,107,109,110,111,112,113,114,115,116,117,118,119,120,121,122,123,124,125,126,127,128,129,130,131,133,134,135,136,137,151,159,163,166,168,169,170,182],[87,105,125,128,151,159,163,166,168,169,170,182],[87,105,114,115,116,151,159,163,166,168,169,170,182],[87,103,105,115,117,151,159,163,166,168,169,170,182],[87,104,151,159,163,166,168,169,170,182],[87,97,99,105,151,159,163,166,168,169,170,182],[87,105,109,115,117,151,159,163,166,168,169,170,182],[87,109,151,159,163,166,168,169,170,182],[87,103,105,108,151,159,163,166,168,169,170,182,200],[87,97,101,105,114,151,159,163,166,168,169,170,182],[87,105,125,151,159,163,166,168,169,170,182],[87,117,151,159,163,166,168,169,170,182],[87,97,101,105,109,151,159,163,166,168,169,170,182],[87,99,105,132,151,159,163,166,168,169,170,182,191,206,209],[70,87,151,159,163,166,168,169,170,182],[63,64,87,151,159,163,166,168,169,170,182],[61,62,63,64,65,66,67,68,69,87,151,159,163,166,168,169,170,182],[61,62,87,151,159,163,166,168,169,170,182],[61,62,64,87,151,159,163,166,168,169,170,182],[61,87,151,159,163,166,168,169,170,182],[61,63,64,87,151,159,163,166,168,169,170,182],[70,71,87,151,159,163,166,168,169,170,182],[71,72,74,75,76,77,78,79,80,81,82,83,87,151,159,163,166,168,169,170,182],[70,71,76,79,80,87,151,159,163,166,168,169,170,182],[73,87,151,159,163,166,168,169,170,182],[70,71,72,74,75,78,79,82,87,151,159,163,166,168,169,170,182],[70,75,87,151,159,163,166,168,169,170,182]],"fileInfos":[{"version":"bcd24271a113971ba9eb71ff8cb01bc6b0f872a85c23fdbe5d93065b375933cd","affectsGlobalScope":true,"impliedFormat":1},{"version":"3f88bedbeb09c6f5a6645cb24c7c55f1aa22d19ae96c8e6959cbd8b85a707bc6","impliedFormat":1},{"version":"7fe93b39b810eadd916be8db880dd7f0f7012a5cc6ffb62de8f62a2117fa6f1f","impliedFormat":1},{"version":"bb0074cc08b84a2374af33d8bf044b80851ccc9e719a5e202eacf40db2c31600","impliedFormat":1},{"version":"1a7daebe4f45fb03d9ec53d60008fbf9ac45a697fdc89e4ce218bc94b94f94d6","impliedFormat":1},{"version":"f94b133a3cb14a288803be545ac2683e0d0ff6661bcd37e31aaaec54fc382aed","impliedFormat":1},{"version":"f59d0650799f8782fd74cf73c19223730c6d1b9198671b1c5b3a38e1188b5953","impliedFormat":1},{"version":"8a15b4607d9a499e2dbeed9ec0d3c0d7372c850b2d5f1fb259e8f6d41d468a84","impliedFormat":1},{"version":"26e0fe14baee4e127f4365d1ae0b276f400562e45e19e35fd2d4c296684715e6","impliedFormat":1},{"version":"d6b1eba8496bdd0eed6fc8a685768fe01b2da4a0388b5fe7df558290bffcf32f","affectsGlobalScope":true,"impliedFormat":1},{"version":"eadcffda2aa84802c73938e589b9e58248d74c59cb7fcbca6474e3435ac15504","affectsGlobalScope":true,"impliedFormat":1},{"version":"105ba8ff7ba746404fe1a2e189d1d3d2e0eb29a08c18dded791af02f29fb4711","affectsGlobalScope":true,"impliedFormat":1},{"version":"00343ca5b2e3d48fa5df1db6e32ea2a59afab09590274a6cccb1dbae82e60c7c","affectsGlobalScope":true,"impliedFormat":1},{"version":"ebd9f816d4002697cb2864bea1f0b70a103124e18a8cd9645eeccc09bdf80ab4","affectsGlobalScope":true,"impliedFormat":1},{"version":"2c1afac30a01772cd2a9a298a7ce7706b5892e447bb46bdbeef720f7b5da77ad","affectsGlobalScope":true,"impliedFormat":1},{"version":"7b0225f483e4fa685625ebe43dd584bb7973bbd84e66a6ba7bbe175ee1048b4f","affectsGlobalScope":true,"impliedFormat":1},{"version":"c0a4b8ac6ce74679c1da2b3795296f5896e31c38e888469a8e0f99dc3305de60","affectsGlobalScope":true,"impliedFormat":1},{"version":"3084a7b5f569088e0146533a00830e206565de65cae2239509168b11434cd84f","affectsGlobalScope":true,"impliedFormat":1},{"version":"c5079c53f0f141a0698faa903e76cb41cd664e3efb01cc17a5c46ec2eb0bef42","affectsGlobalScope":true,"impliedFormat":1},{"version":"32cafbc484dea6b0ab62cf8473182bbcb23020d70845b406f80b7526f38ae862","affectsGlobalScope":true,"impliedFormat":1},{"version":"fca4cdcb6d6c5ef18a869003d02c9f0fd95df8cfaf6eb431cd3376bc034cad36","affectsGlobalScope":true,"impliedFormat":1},{"version":"b93ec88115de9a9dc1b602291b85baf825c85666bf25985cc5f698073892b467","affectsGlobalScope":true,"impliedFormat":1},{"version":"f5c06dcc3fe849fcb297c247865a161f995cc29de7aa823afdd75aaaddc1419b","affectsGlobalScope":true,"impliedFormat":1},{"version":"b77e16112127a4b169ef0b8c3a4d730edf459c5f25fe52d5e436a6919206c4d7","affectsGlobalScope":true,"impliedFormat":1},{"version":"fbffd9337146eff822c7c00acbb78b01ea7ea23987f6c961eba689349e744f8c","affectsGlobalScope":true,"impliedFormat":1},{"version":"a995c0e49b721312f74fdfb89e4ba29bd9824c770bbb4021d74d2bf560e4c6bd","affectsGlobalScope":true,"impliedFormat":1},{"version":"c7b3542146734342e440a84b213384bfa188835537ddbda50d30766f0593aff9","affectsGlobalScope":true,"impliedFormat":1},{"version":"ce6180fa19b1cccd07ee7f7dbb9a367ac19c0ed160573e4686425060b6df7f57","affectsGlobalScope":true,"impliedFormat":1},{"version":"3f02e2476bccb9dbe21280d6090f0df17d2f66b74711489415a8aa4df73c9675","affectsGlobalScope":true,"impliedFormat":1},{"version":"45e3ab34c1c013c8ab2dc1ba4c80c780744b13b5676800ae2e3be27ae862c40c","affectsGlobalScope":true,"impliedFormat":1},{"version":"805c86f6cca8d7702a62a844856dbaa2a3fd2abef0536e65d48732441dde5b5b","affectsGlobalScope":true,"impliedFormat":1},{"version":"e42e397f1a5a77994f0185fd1466520691456c772d06bf843e5084ceb879a0ad","affectsGlobalScope":true,"impliedFormat":1},{"version":"f4c2b41f90c95b1c532ecc874bd3c111865793b23aebcc1c3cbbabcd5d76ffb0","affectsGlobalScope":true,"impliedFormat":1},{"version":"ab26191cfad5b66afa11b8bf935ef1cd88fabfcb28d30b2dfa6fad877d050332","affectsGlobalScope":true,"impliedFormat":1},{"version":"2088bc26531e38fb05eedac2951480db5309f6be3fa4a08d2221abb0f5b4200d","affectsGlobalScope":true,"impliedFormat":1},{"version":"cb9d366c425fea79716a8fb3af0d78e6b22ebbab3bd64d25063b42dc9f531c1e","affectsGlobalScope":true,"impliedFormat":1},{"version":"500934a8089c26d57ebdb688fc9757389bb6207a3c8f0674d68efa900d2abb34","affectsGlobalScope":true,"impliedFormat":1},{"version":"689da16f46e647cef0d64b0def88910e818a5877ca5379ede156ca3afb780ac3","affectsGlobalScope":true,"impliedFormat":1},{"version":"bc21cc8b6fee4f4c2440d08035b7ea3c06b3511314c8bab6bef7a92de58a2593","affectsGlobalScope":true,"impliedFormat":1},{"version":"7ca53d13d2957003abb47922a71866ba7cb2068f8d154877c596d63c359fed25","affectsGlobalScope":true,"impliedFormat":1},{"version":"54725f8c4df3d900cb4dac84b64689ce29548da0b4e9b7c2de61d41c79293611","affectsGlobalScope":true,"impliedFormat":1},{"version":"e5594bc3076ac29e6c1ebda77939bc4c8833de72f654b6e376862c0473199323","affectsGlobalScope":true,"impliedFormat":1},{"version":"2f3eb332c2d73e729f3364fcc0c2b375e72a121e8157d25a82d67a138c83a95c","affectsGlobalScope":true,"impliedFormat":1},{"version":"6f4427f9642ce8d500970e4e69d1397f64072ab73b97e476b4002a646ac743b1","affectsGlobalScope":true,"impliedFormat":1},{"version":"48915f327cd1dea4d7bd358d9dc7732f58f9e1626a29cc0c05c8c692419d9bb7","affectsGlobalScope":true,"impliedFormat":1},{"version":"b7bf9377723203b5a6a4b920164df22d56a43f593269ba6ae1fdc97774b68855","affectsGlobalScope":true,"impliedFormat":1},{"version":"db9709688f82c9e5f65a119c64d835f906efe5f559d08b11642d56eb85b79357","affectsGlobalScope":true,"impliedFormat":1},{"version":"4b25b8c874acd1a4cf8444c3617e037d444d19080ac9f634b405583fd10ce1f7","affectsGlobalScope":true,"impliedFormat":1},{"version":"37be57d7c90cf1f8112ee2636a068d8fd181289f82b744160ec56a7dc158a9f5","affectsGlobalScope":true,"impliedFormat":1},{"version":"a917a49ac94cd26b754ab84e113369a75d1a47a710661d7cd25e961cc797065f","affectsGlobalScope":true,"impliedFormat":1},{"version":"6d3261badeb7843d157ef3e6f5d1427d0eeb0af0cf9df84a62cfd29fd47ac86e","affectsGlobalScope":true,"impliedFormat":1},{"version":"195daca651dde22f2167ac0d0a05e215308119a3100f5e6268e8317d05a92526","affectsGlobalScope":true,"impliedFormat":1},{"version":"8b11e4285cd2bb164a4dc09248bdec69e9842517db4ca47c1ba913011e44ff2f","affectsGlobalScope":true,"impliedFormat":1},{"version":"0508571a52475e245b02bc50fa1394065a0a3d05277fbf5120c3784b85651799","affectsGlobalScope":true,"impliedFormat":1},{"version":"8f9af488f510c3015af3cc8c267a9e9d96c4dd38a1fdff0e11dc5a544711415b","affectsGlobalScope":true,"impliedFormat":1},{"version":"fc611fea8d30ea72c6bbfb599c9b4d393ce22e2f5bfef2172534781e7d138104","affectsGlobalScope":true,"impliedFormat":1},{"version":"f128dae7c44d8f35ee42e0a437000a57c9f06cc04f8b4fb42eebf44954d53dc8","affectsGlobalScope":true,"impliedFormat":1},{"version":"1ecb8e347cb6b2a8927c09b86263663289418df375f5e68e11a0ae683776978f","affectsGlobalScope":true,"impliedFormat":1},{"version":"1ce14b81c5cc821994aa8ec1d42b220dd41b27fcc06373bce3958af7421b77d4","affectsGlobalScope":true,"impliedFormat":1},{"version":"b3a048b3e9302ef9a34ef4ebb9aecfb28b66abb3bce577206a79fee559c230da","affectsGlobalScope":true,"impliedFormat":1},{"version":"cfacb6c5b29f3c8f81194ca5c6c1d5a87108a2ec1df233f974b279a58b3c15e3","impliedFormat":99},{"version":"170837accdba3f0567fe1c6fb278ce3949317bb5404a26f7cc5648181f421add","impliedFormat":99},{"version":"1d794adbdc230d523976786d1257203e483115edf3a2ea704fa7024e040b4dc4","impliedFormat":99},{"version":"ad8891163f0b0902e2a8b87bb63e8c5a99e2f96237e511c21abd4b642049f51d","impliedFormat":99},{"version":"99e1bcef17ff12ae645785c60b2885d3186ae8ce397c9779bbca7594aa30086e","impliedFormat":99},{"version":"ea8ae4e64942c8587f53535dedc63b29fba78db899694d8d0ec3c6a275cc33a5","impliedFormat":99},{"version":"3ddf59fa92042ab494e3f65a7f62fb9aebf97b2b69680166c95d9ce25a4e072d","impliedFormat":99},{"version":"ff6c36564ed2bdc2cbb4bae471d055c56ae6e42b8c8f976543a31bc65c103c7a","impliedFormat":99},{"version":"cc45394ddbef9f6dc1d8a674f430159356517b380c88858bc90775d895d8c397","impliedFormat":99},{"version":"d85cbbb8501835920b144c9f46389a298e22918e3b49cfa6cb72f69f44c3cd45","impliedFormat":99},{"version":"4acc491f1280b6c39b5385b0b074fdb6b9f52c170158600358e5b11c72bbf27b","signature":"f35e58ddff34e5d04c554218641abba121b2d7fe82168d8f62a72130d6658063","impliedFormat":99},{"version":"53dbbe3dc93596c0fca9dd77e1ef7770d12a90bc816448c5e4ddbd5e3a932fa6","signature":"14142fa36112d1b4ee74df2c51ff686eacb817eacbc53929f1d2045f6369689d","impliedFormat":99},{"version":"10219d7e27db4f6d3fbcba28bd1a3355b5712927845997cb30254bb139180de4","signature":"da9fca694d80862d57ef8325a93113b7a31eaf0aa3741ee7cb6c7276a9475698","impliedFormat":99},{"version":"7d817f2f7633a6bd4d908118d424b8829264a33519566c6d10a4f07ac84be0d1","signature":"e4b73fd24923a6c39aca555f322cebf6ab97fbf9e24fb292beb861d571cb0670","impliedFormat":99},{"version":"ced06626f4499193febf48a7dba34baccd14b51a2ff00a4c24dae4d66d077d06","signature":"d8097efeefbcc302d47ed52b94f17d14837c11a3d14d5943551e1205d548f8a1","impliedFormat":99},{"version":"5de2d2496826bfb2037f8e48426bc619f05daad84a34f06696265347bb8af38d","signature":"73825609ace3dc5a36ad0c15c9a7fb04f79610c483eabec8dab4b5ee267b7df1","impliedFormat":99},{"version":"42b4cee2471e060a569da9eb579fba4ae6b9bb7d45a72109eb6d8afe9b566689","signature":"b70b7ccb80037e78ca5545bff148f2a6d5a0fcbcaf976741c5c65372ef3b6538","impliedFormat":99},{"version":"88d8b5e2fae793758cdeba95240ea87bbd2a8882fda8ba1abf0d26d9f7ee67c9","signature":"1c96e5dc82f900f70ef71deb90fefff25903961d6795c9be9b180d0f521f63d5","impliedFormat":99},{"version":"0e30a0d7fe8085b8b31ca81c3d20b66f91c946e23e1831d618bed702876d4df5","signature":"58b3cf1d14c13b4ca710f5abe1d105cd7da8587ebe65df419a8a6bbc64c9525c","impliedFormat":99},{"version":"f4aae487a5e017b2e0a9dff9b735205468a502787ff8c83c1212fac85f2d908c","signature":"5740995709bc33464079470e91b644513b6daefc531bc659b1372341161568db","impliedFormat":99},{"version":"a1869e0e354b7f84e5680b70d8a66ce4ed6606389a7898df099edad46cae9bbf","signature":"0732fbf2da65a15a1310e7866e4a45b1818f5e0ff144b57ca09f1de766710008","impliedFormat":99},{"version":"5c62632a4b2ac45675044d708b5658a715ee512e70c081e5e9ecddd587c805f4","signature":"291805796f841ce7fa887f272f9939f3abe016cef5a9f11dba3954e27604efa5","impliedFormat":99},{"version":"49cb39d7257c2d64181551286133bba6ec8e54b61e3837fdff1ae99085e082aa","signature":"8fb3aece3c840c23152769ba756d2ec3cd458287a7ba28f7dbede635aa652a2d","impliedFormat":99},{"version":"18f00b4ac33fe45f02a0d9e4b7ea0f88b9028b7e96c3b4e36e54e9bc3307209e","signature":"55f308e6934322693712250d46694c3ba8f84173506878e16bb977ad395c623d","impliedFormat":99},{"version":"d153a11543fd884b596587ccd97aebbeed950b26933ee000f94009f1ab142848","affectsGlobalScope":true,"impliedFormat":1},{"version":"0ccdaa19852d25ecd84eec365c3bfa16e7859cadecf6e9ca6d0dbbbee439743f","affectsGlobalScope":true,"impliedFormat":1},{"version":"cc2110f7decca6bfb9392e30421cfa1436479e4a6756e8fec6cbc22625d4f881","affectsGlobalScope":true,"impliedFormat":1},{"version":"096116f8fedc1765d5bd6ef360c257b4a9048e5415054b3bf3c41b07f8951b0b","affectsGlobalScope":true,"impliedFormat":1},{"version":"e5e01375c9e124a83b52ee4b3244ed1a4d214a6cfb54ac73e164a823a4a7860a","affectsGlobalScope":true,"impliedFormat":1},{"version":"f90ae2bbce1505e67f2f6502392e318f5714bae82d2d969185c4a6cecc8af2fc","affectsGlobalScope":true,"impliedFormat":1},{"version":"4b58e207b93a8f1c88bbf2a95ddc686ac83962b13830fe8ad3f404ffc7051fb4","affectsGlobalScope":true,"impliedFormat":1},{"version":"1fefabcb2b06736a66d2904074d56268753654805e829989a46a0161cd8412c5","affectsGlobalScope":true,"impliedFormat":1},{"version":"9798340ffb0d067d69b1ae5b32faa17ab31b82466a3fc00d8f2f2df0c8554aaa","affectsGlobalScope":true,"impliedFormat":1},{"version":"c18a99f01eb788d849ad032b31cafd49de0b19e083fe775370834c5675d7df8e","affectsGlobalScope":true,"impliedFormat":1},{"version":"5247874c2a23b9a62d178ae84f2db6a1d54e6c9a2e7e057e178cc5eea13757fc","affectsGlobalScope":true,"impliedFormat":1},{"version":"cdcf9ea426ad970f96ac930cd176d5c69c6c24eebd9fc580e1572d6c6a88f62c","impliedFormat":1},{"version":"23cd712e2ce083d68afe69224587438e5914b457b8acf87073c22494d706a3d0","impliedFormat":1},{"version":"156a859e21ef3244d13afeeba4e49760a6afa035c149dda52f0c45ea8903b338","impliedFormat":1},{"version":"10ec5e82144dfac6f04fa5d1d6c11763b3e4dbbac6d99101427219ab3e2ae887","impliedFormat":1},{"version":"615754924717c0b1e293e083b83503c0a872717ad5aa60ed7f1a699eb1b4ea5c","impliedFormat":1},{"version":"14e9acf826baba0ef4b5665704084896e7bcc06f65a9ab13af7e93d27d6b7069","impliedFormat":1},{"version":"68834d631c8838c715f225509cfc3927913b9cc7a4870460b5b60c8dbdb99baf","impliedFormat":1},{"version":"21adf13435b9b748529c8cedf80f884e5130b9684188120a686cd2b26a2059c7","impliedFormat":1},{"version":"eec76bf6b9346f3f95fa402621b889489e96930e72295b0369022f332e9b4a6a","impliedFormat":1},{"version":"0ecd58f413f9bc3b7d4383eae31b0c8fc576985cd7404d6f99f8c643543ade74","impliedFormat":1},{"version":"ea6bc8de8b59f90a7a3960005fd01988f98fd0784e14bc6922dde2e93305ec7d","impliedFormat":1},{"version":"36107995674b29284a115e21a0618c4c2751b32a8766dd4cb3ba740308b16d59","impliedFormat":1},{"version":"914a0ae30d96d71915fc519ccb4efbf2b62c0ddfb3a3fc6129151076bc01dc60","impliedFormat":1},{"version":"9c32412007b5662fd34a8eb04292fb5314ec370d7016d1c2fb8aa193c807fe22","impliedFormat":1},{"version":"7fd1b31fd35876b0aa650811c25ec2c97a3c6387e5473eb18004bed86cdd76b6","impliedFormat":1},{"version":"4d327f7d72ad0918275cea3eee49a6a8dc8114ae1d5b7f3f5d0774de75f7439a","impliedFormat":1},{"version":"6ebe8ebb8659aaa9d1acbf3710d7dae3e923e97610238b9511c25dc39023a166","impliedFormat":1},{"version":"e85d7f8068f6a26710bff0cc8c0fc5e47f71089c3780fbede05857331d2ddec9","impliedFormat":1},{"version":"7befaf0e76b5671be1d47b77fcc65f2b0aad91cc26529df1904f4a7c46d216e9","impliedFormat":1},{"version":"0a60a292b89ca7218b8616f78e5bbd1c96b87e048849469cccb4355e98af959a","impliedFormat":1},{"version":"0b6e25234b4eec6ed96ab138d96eb70b135690d7dd01f3dd8a8ab291c35a683a","impliedFormat":1},{"version":"9666f2f84b985b62400d2e5ab0adae9ff44de9b2a34803c2c5bd3c8325b17dc0","impliedFormat":1},{"version":"40cd35c95e9cf22cfa5bd84e96408b6fcbca55295f4ff822390abb11afbc3dca","impliedFormat":1},{"version":"b1616b8959bf557feb16369c6124a97a0e74ed6f49d1df73bb4b9ddf68acf3f3","impliedFormat":1},{"version":"5b03a034c72146b61573aab280f295b015b9168470f2df05f6080a2122f9b4df","impliedFormat":1},{"version":"40b463c6766ca1b689bfcc46d26b5e295954f32ad43e37ee6953c0a677e4ae2b","impliedFormat":1},{"version":"249b9cab7f5d628b71308c7d9bb0a808b50b091e640ba3ed6e2d0516f4a8d91d","impliedFormat":1},{"version":"d33ce35e3f9cfcc1d94eca415bdd3bde94d5b153ffdd33e6c4455c029986c630","impliedFormat":1},{"version":"80aae6afc67faa5ac0b32b5b8bc8cc9f7fa299cff15cf09cc2e11fd28c6ae29e","impliedFormat":1},{"version":"f473cd2288991ff3221165dcf73cd5d24da30391f87e85b3dd4d0450c787a391","impliedFormat":1},{"version":"499e5b055a5aba1e1998f7311a6c441a369831c70905cc565ceac93c28083d53","impliedFormat":1},{"version":"8aee8b6d4f9f62cf3776cda1305fb18763e2aade7e13cea5bbe699112df85214","impliedFormat":1},{"version":"98498b101803bb3dde9f76a56e65c14b75db1cc8bec5f4db72be541570f74fc5","impliedFormat":1},{"version":"4dc59f6e1dbf3d5f66660fceabe6c174d3261b37b696ae1854f0dbaf255fc753","impliedFormat":1},{"version":"5d0375ca7310efb77e3ef18d068d53784faf62705e0ad04569597ae0e755c401","impliedFormat":1},{"version":"59af37caec41ecf7b2e76059c9672a49e682c1a2aa6f9d7dc78878f53aa284d6","impliedFormat":1},{"version":"addf417b9eb3f938fddf8d81e96393a165e4be0d4a8b6402292f9c634b1cb00d","impliedFormat":1},{"version":"436d7b4543b340b0f3eef4310d524242e41369b9652aa9c70428767c4dcac455","impliedFormat":1},{"version":"adf27937dba6af9f08a68c5b1d3fce0ca7d4b960c57e6d6c844e7d1a8e53adae","impliedFormat":1},{"version":"12950411eeab8563b349cb7959543d92d8d02c289ed893d78499a19becb5a8cc","impliedFormat":1},{"version":"2e85db9e6fd73cfa3d7f28e0ab6b55417ea18931423bd47b409a96e4a169e8e6","impliedFormat":1},{"version":"c46e079fe54c76f95c67fb89081b3e399da2c7d109e7dca8e4b58d83e332e605","impliedFormat":1},{"version":"114f493b30f364255290472111b5a4791d5902c308645670cd0401429cbc6930","impliedFormat":1},{"version":"c3f5289820990ab66b70c7fb5b63cb674001009ff84b13de40619619a9c8175f","affectsGlobalScope":true,"impliedFormat":1},{"version":"b3275d55fac10b799c9546804126239baf020d220136163f763b55a74e50e750","affectsGlobalScope":true,"impliedFormat":1},{"version":"fa68a0a3b7cb32c00e39ee3cd31f8f15b80cac97dce51b6ee7fc14a1e8deb30b","affectsGlobalScope":true,"impliedFormat":1},{"version":"1cf059eaf468efcc649f8cf6075d3cb98e9a35a0fe9c44419ec3d2f5428d7123","affectsGlobalScope":true,"impliedFormat":1},{"version":"6c36e755bced82df7fb6ce8169265d0a7bb046ab4e2cb6d0da0cb72b22033e89","affectsGlobalScope":true,"impliedFormat":1},{"version":"e7721c4f69f93c91360c26a0a84ee885997d748237ef78ef665b153e622b36c1","affectsGlobalScope":true,"impliedFormat":1},{"version":"7a93de4ff8a63bafe62ba86b89af1df0ccb5e40bb85b0c67d6bbcfdcf96bf3d4","affectsGlobalScope":true,"impliedFormat":1},{"version":"90e85f9bc549dfe2b5749b45fe734144e96cd5d04b38eae244028794e142a77e","affectsGlobalScope":true,"impliedFormat":1},{"version":"e0a5deeb610b2a50a6350bd23df6490036a1773a8a71d70f2f9549ab009e67ee","affectsGlobalScope":true,"impliedFormat":1},{"version":"d2ae155afe8a01cc0ae612d99117cf8ef16692ba7c4366590156fdec1bcf2d8c","impliedFormat":1},{"version":"3f5e5d9be35913db9fea42a63f3df0b7e3c8703b97670a2125587b4dbbd56d7c","impliedFormat":1},{"version":"c8b8968311ec4e5e97b7b5fb8a65efaba455db9bdcfd7fff7fb15f6e317bfba0","impliedFormat":1},{"version":"57c23df0b5f7a8e26363a3849b0bc7763f6b241207157c8e40089d1df4116f35","affectsGlobalScope":true,"impliedFormat":1},{"version":"3b8bc0c17b54081b0878673989216229e575d67a10874e84566a21025a2461ee","impliedFormat":1},{"version":"5b0db5a58b73498792a29bfebc333438e61906fef75da898b410e24e52229e6f","impliedFormat":1},{"version":"dbe055b2b29a7bab2c1ca8f259436306adb43f469dca7e639a02cd3695d3f621","impliedFormat":1},{"version":"1678b04557dca52feab73cc67610918a7f5e25bfdba3e7fa081acd625d93106d","impliedFormat":1},{"version":"aecbf1d9e6a18dab7d92ef8a89a1444b47e1eb6134cb2bb776a26d55ff58c29a","impliedFormat":1},{"version":"2ea729503db9793f2691162fec3dd1118cab62e96d025f8eeb376d43ec293395","impliedFormat":1},{"version":"9ec87fea42b92894b0f209931a880789d43c3397d09dd99c631ae40a2f7071d1","impliedFormat":1},{"version":"c68e88cdfadfb6c8ba5fc38e58a3a166b0beae77b1f05b7d921150a32a5ffb8d","impliedFormat":1},{"version":"2bc7aa4fba46df0bd495425a7c8201437a7d465f83854fac859df2d67f664df3","impliedFormat":1},{"version":"41d17e1ad9a002feb11c8cdd2777e5bbc0cdb1e3f595d237e4dded0b6949983b","impliedFormat":1},{"version":"1fede9296beac11ce8e6b425396a1791f64341f2be85deebb6286faf6e16306e","affectsGlobalScope":true,"impliedFormat":1},{"version":"ce697b6a251d9cad53998c7fd3098072df883b525ec45d83530e434dc6d80dc6","impliedFormat":1},{"version":"719412f054e6ecc35489462c9a21bab0323d173a7d04e55b0ace4b5d86fbeb07","impliedFormat":1},{"version":"0eb5d0cbf09de5d34542b977fd6a933bb2e0817bffe8e1a541b2f1ad1b9af1ff","impliedFormat":1},{"version":"3db996ecdee7aabecc5385976cc07eb66216034a273c07b17d1a85292e9bab0c","impliedFormat":1},{"version":"2c2bdaa1d8ead9f68628d6d9d250e46ee8e81aa4898b4769a36956ae15e060fe","impliedFormat":1},{"version":"c32c840c62d8bd7aeb3147aa6754cd2d922b990a6b6634530cb2ebdce5adc8e9","impliedFormat":1},{"version":"5ff4433a2deae4f85ab1377e90a7554ce6b47ae51c69a84ca30a6e22fae85834","impliedFormat":1},{"version":"82b91e4e42e6c41bc7fc1b6c2dc5eba6a2ba98375eb1f210e6ff6bba2d54177e","impliedFormat":1},{"version":"c1fa52b3d014001e8662fa2669d90ea15373958a288e3b83a3b621733d25292a","affectsGlobalScope":true,"impliedFormat":1},{"version":"cbed824fec91efefc7bbdcb8b43d1a531fdbebd0e2ef19481501ff365a93cb70","impliedFormat":1},{"version":"d0716593b3f2b0451bcf0c24cfa86dec2235c325c89f201934248b7c742715fc","impliedFormat":1},{"version":"ec501101c2a96133a6c695f934c8f6642149cc728571b29cbb7b770984c1088e","impliedFormat":1},{"version":"b214ebcf76c51b115453f69729ee8aa7b7f8eccdae2a922b568a45c2d7ff52f7","impliedFormat":1},{"version":"429c9cdfa7d126255779efd7e6d9057ced2d69c81859bbab32073bad52e9ba76","impliedFormat":1},{"version":"2991bca2cc0f0628a278df2a2ccdb8d6cbcb700f3761abbed62bba137d5b1790","impliedFormat":1},{"version":"5e66972e83eb4dc7123939bf816e6cbd9ad81af5552db1cab84e6bd9c64d2ecc","affectsGlobalScope":true,"impliedFormat":1},{"version":"230763250f20449fa7b3c9273e1967adb0023dc890d4be1553faca658ee65971","impliedFormat":1},{"version":"c3e9078b60cb329d1221f5878e88cecfa3e74460550e605a58fcfb41a66029ff","impliedFormat":1},{"version":"8413d0641f293aed551c7464615b770d34a02dedede889b9591172287d68e773","impliedFormat":1},{"version":"0ea59f7d3e51440baa64f429253759b106cfcbaf51e474cae606e02265b37cf8","impliedFormat":1},{"version":"bc18a1991ba681f03e13285fa1d7b99b03b67ee671b7bc936254467177543890","impliedFormat":1},{"version":"1b241e24f3227d078c06aeda6e050187ad59a4e591f4467abed44d92b084e08d","impliedFormat":1},{"version":"fa94bbf532b7af8f394b95fa310980d6e20bd2d4c871c6a6cb9f70f03750a44b","impliedFormat":1},{"version":"7fde0e1be5c8be204ffbf428abfcf01da2eb0f130e1bc3f539eb7275f4fd1f58","impliedFormat":1},{"version":"e284328553df5f425a5d33d36a0c3fa66b46af9d097cad6f4d2e8696dfdeb0f1","affectsGlobalScope":true,"impliedFormat":1},{"version":"7fa2214bb0d64701bc6f9ce8cde2fd2ff8c571e0b23065fa04a8a5a6beb91511","impliedFormat":1},{"version":"f36b3fbe2be150a9ca140da48593f21e6a8172004f92ddc549b43efec39f3e54","impliedFormat":1},{"version":"f1c93e046fb3d9b7f8249629f4b63dc068dd839b824dd0aa39a5e68476dc9420","impliedFormat":1},{"version":"016b29bf4926b80255a108c53a1451717350059da04fcae64d1075f5e93bbb39","impliedFormat":1},{"version":"841983e39bd4cbb463be385e92fda11057cab368bf27100a801c492f1d86cbaa","impliedFormat":1},{"version":"1c4f139ade4f6ebf45463505f8155173e5d7a5305e50e0aae0a5e712d6ff3b48","impliedFormat":1},{"version":"e16b319e5aca1031168de823c4946ff8e29629c4c8cc0ec0fcfe2a8ab2155043","impliedFormat":1},{"version":"e4156ddb25aa0e3b5303d372f26957b36778f0f6bbd4326359269873295e3058","affectsGlobalScope":true,"impliedFormat":1},{"version":"cc1b433a84cae05ddc5672d4823170af78606ad21ecef60dbc4570190cbf1357","impliedFormat":1},{"version":"9d3821bc75c59577e52643324cec92fc2145642e8d17cf7ee07a3181f21d985d","impliedFormat":1},{"version":"7f78cfb2b343838612c192cb251746e3a7c62ac7675726a47e130d9b213f6580","impliedFormat":1},{"version":"201db9cf1687fab1adf5282fcba861f382b32303dc4f67c89d59655e78a25461","impliedFormat":1},{"version":"2c3c5c0f54055e87640f5d233716fd889f3034fc7911d603b642369b0dbeb2a7","impliedFormat":1},{"version":"0a20eaf2e4b1e3c1e1f87f7bccb0c936375b23b022baeea750519b7c9bc6ce83","impliedFormat":1},{"version":"b484ec11ba00e3a2235562a41898d55372ccabe607986c6fa4f4aba72093749f","impliedFormat":1},{"version":"a16b91b27bd6b706c687c88cbc8a7d4ee98e5ed6043026d6b84bda923c0aed67","impliedFormat":1},{"version":"1c9e5b1a17b1fc9b3711fb36e0690421261ab2880f15b145155b5b2ba2ab6c2d","impliedFormat":1},{"version":"99ab6d0d660ce4d21efb52288a39fd35bb3f556980ec5463b1ae8f304a3bbc85","impliedFormat":1},{"version":"6eeded8c7e352be6e0efb83f4935ec752513c4d22043b52522b90849a49a3a11","impliedFormat":1},{"version":"6c1ad90050ffbb151cacc68e2d06ea1a26a945659391e32651f5d42b86fd7f2c","impliedFormat":1},{"version":"afa1c49f8e559e413d57343339db857d2a8159435cf9cf7d4deb41718fff1b88","impliedFormat":1},{"version":"6953d7597831d0860c7034cf4f0419687d263b6b98a4b32e37ce6d49615c36e2","impliedFormat":1}],"root":[[71,84]],"options":{"composite":true,"declaration":true,"declarationMap":true,"exactOptionalPropertyTypes":true,"module":199,"noFallthroughCasesInSwitch":true,"noImplicitOverride":true,"noUncheckedIndexedAccess":true,"outDir":"./","rootDir":"../src","skipLibCheck":true,"strict":true,"target":9,"tsBuildInfoFile":"./.tsbuildinfo","verbatimModuleSyntax":true},"referencedMap":[[148,1],[149,1],[150,2],[87,3],[151,4],[152,5],[153,6],[85,7],[154,8],[155,9],[156,10],[157,11],[158,12],[159,13],[160,13],[161,14],[162,15],[163,16],[164,17],[88,7],[86,7],[165,18],[166,19],[167,20],[209,21],[168,22],[169,23],[170,22],[171,24],[172,25],[173,26],[174,27],[175,27],[176,27],[177,28],[178,29],[179,30],[180,31],[181,32],[182,33],[183,33],[184,34],[185,7],[186,7],[187,35],[188,36],[189,37],[190,35],[191,38],[192,39],[193,40],[194,41],[195,42],[196,43],[197,44],[198,45],[199,46],[200,47],[201,48],[202,49],[203,50],[204,51],[205,52],[89,22],[90,7],[91,53],[92,54],[93,7],[94,55],[95,7],[139,56],[140,57],[141,58],[142,58],[143,59],[144,7],[145,4],[146,60],[147,57],[206,61],[207,62],[208,63],[59,7],[60,7],[10,7],[12,7],[11,7],[2,7],[13,7],[14,7],[15,7],[16,7],[17,7],[18,7],[19,7],[20,7],[3,7],[21,7],[22,7],[4,7],[23,7],[27,7],[24,7],[25,7],[26,7],[28,7],[29,7],[30,7],[5,7],[31,7],[32,7],[33,7],[34,7],[6,7],[38,7],[35,7],[36,7],[37,7],[39,7],[7,7],[40,7],[45,7],[46,7],[41,7],[42,7],[43,7],[44,7],[8,7],[50,7],[47,7],[48,7],[49,7],[51,7],[9,7],[52,7],[53,7],[54,7],[56,7],[55,7],[57,7],[1,7],[58,7],[114,64],[127,65],[111,66],[128,67],[137,68],[102,69],[103,70],[101,71],[136,72],[131,73],[135,74],[105,75],[124,76],[104,77],[134,78],[99,79],[100,73],[106,80],[107,7],[113,81],[110,80],[97,82],[138,83],[129,84],[117,85],[116,80],[118,86],[121,87],[115,88],[119,89],[132,72],[108,90],[109,91],[122,92],[98,67],[126,93],[125,80],[112,91],[120,94],[123,95],[130,7],[96,7],[133,96],[68,97],[67,98],[70,99],[65,98],[63,100],[69,101],[62,102],[66,103],[64,100],[61,7],[72,104],[73,7],[74,97],[75,7],[76,97],[84,105],[82,106],[80,107],[79,97],[83,108],[81,107],[78,109],[71,97],[77,7]],"latestChangedDtsFile":"./index.d.ts","version":"6.0.3"}
@@ -0,0 +1,16 @@
1
+ import type { MemoryRecord } from "@oscharko-dev/keiko-contracts/memory";
2
+ import type { AssembledContext, IncludedMemory } from "./types.js";
3
+ export declare const TOKEN_PER_WORD_RATIO = 1.3;
4
+ export declare function estimateTokens(text: string): number;
5
+ export interface AssembleContextOptions {
6
+ readonly budgetTokens: number;
7
+ readonly maxIncluded: number;
8
+ }
9
+ /**
10
+ * Assemble a token-budgeted context block from a pre-ranked memory list. Returns
11
+ * `Omit<MemoryRetrievalResult, "request">` because the assembler has no need for the
12
+ * request envelope to compose its output; the orchestrator (retrieveMemoryContext)
13
+ * attaches `request` after calling this function.
14
+ */
15
+ export declare function assembleContextBlock(ranked: readonly IncludedMemory[], memories: readonly MemoryRecord[], options: AssembleContextOptions): AssembledContext;
16
+ //# sourceMappingURL=context.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"context.d.ts","sourceRoot":"","sources":["../src/context.ts"],"names":[],"mappings":"AAkBA,OAAO,KAAK,EAAY,YAAY,EAAE,MAAM,sCAAsC,CAAC;AAEnF,OAAO,KAAK,EACV,gBAAgB,EAChB,cAAc,EAGf,MAAM,YAAY,CAAC;AAEpB,eAAO,MAAM,oBAAoB,MAAM,CAAC;AAExC,wBAAgB,cAAc,CAAC,IAAI,EAAE,MAAM,GAAG,MAAM,CAQnD;AAED,MAAM,WAAW,sBAAsB;IACrC,QAAQ,CAAC,YAAY,EAAE,MAAM,CAAC;IAC9B,QAAQ,CAAC,WAAW,EAAE,MAAM,CAAC;CAC9B;AAyID;;;;;GAKG;AACH,wBAAgB,oBAAoB,CAClC,MAAM,EAAE,SAAS,cAAc,EAAE,EACjC,QAAQ,EAAE,SAAS,YAAY,EAAE,EACjC,OAAO,EAAE,sBAAsB,GAC9B,gBAAgB,CAYlB"}
@@ -0,0 +1,151 @@
1
+ // Token-budgeted context assembler.
2
+ //
3
+ // Pure-function: takes a ranked list + the underlying records + a budget, returns an
4
+ // AssembledContext (= MemoryRetrievalResult minus `request`, which the orchestrator
5
+ // attaches). The token estimate is deliberately naive — `wordCount * 1.3` — so the score
6
+ // is reproducible across model families without a tokenizer dependency. The 1.3 multiplier
7
+ // is the rough English-text upper bound used by audit dashboards elsewhere; documented at
8
+ // the export so consumers can reproduce it.
9
+ //
10
+ // Layout of the rendered text:
11
+ // # Relevant memories
12
+ // - (top signal: pinned memory) the body excerpt
13
+ // - (top signal: recent update) another body excerpt
14
+ //
15
+ // Empty ranked input -> empty text (no header, no bullet). A "no memory" prompt header
16
+ // would be hallucination — better to emit nothing and let the caller decide what to
17
+ // surface in the absence of memory.
18
+ export const TOKEN_PER_WORD_RATIO = 1.3;
19
+ export function estimateTokens(text) {
20
+ if (text === "")
21
+ return 0;
22
+ const words = text
23
+ .trim()
24
+ .split(/\s+/u)
25
+ .filter((w) => w.length > 0);
26
+ if (words.length === 0)
27
+ return 0;
28
+ return Math.ceil(words.length * TOKEN_PER_WORD_RATIO);
29
+ }
30
+ function buildRecordIndex(records) {
31
+ const m = new Map();
32
+ for (const r of records)
33
+ m.set(r.id, r);
34
+ return m;
35
+ }
36
+ function clipToTokenBudget(body, tokenBudget) {
37
+ if (tokenBudget <= 0)
38
+ return "";
39
+ // Convert tokens back to a word budget — inverse of the 1.3 ratio. floor() ensures we
40
+ // never overshoot the per-entry token allowance.
41
+ const wordBudget = Math.max(1, Math.floor(tokenBudget / TOKEN_PER_WORD_RATIO));
42
+ const words = body.split(/\s+/u).filter((w) => w.length > 0);
43
+ if (words.length <= wordBudget)
44
+ return body;
45
+ return words.slice(0, wordBudget).join(" ") + "…";
46
+ }
47
+ function wordsOf(body) {
48
+ return body.split(/\s+/u).filter((w) => w.length > 0);
49
+ }
50
+ function clippedWords(words, count) {
51
+ const excerpt = words.slice(0, count).join(" ");
52
+ return count < words.length ? `${excerpt}…` : excerpt;
53
+ }
54
+ function renderText(entries) {
55
+ if (entries.length === 0)
56
+ return "";
57
+ const lines = ["# Relevant memories"];
58
+ for (const e of entries) {
59
+ lines.push(`- (${e.inclusionReason}) ${e.bodyExcerpt}`);
60
+ }
61
+ return lines.join("\n");
62
+ }
63
+ function renderedCost(entries) {
64
+ return estimateTokens(renderText(entries));
65
+ }
66
+ function entryForRank(rank, record, bodyExcerpt) {
67
+ return {
68
+ memoryId: rank.memoryId,
69
+ bodyExcerpt,
70
+ inclusionReason: rank.inclusionReason,
71
+ sourceKind: record.provenance.sourceKind,
72
+ ...(record.provenance.captureRationale !== undefined
73
+ ? { captureRationale: record.provenance.captureRationale }
74
+ : {}),
75
+ sensitivity: record.provenance.sensitivity,
76
+ confidence: record.provenance.confidence,
77
+ status: record.status,
78
+ capturedAt: record.provenance.capturedAt,
79
+ };
80
+ }
81
+ function fitEntryToBudget(entries, rank, record, budgetTokens, perEntry) {
82
+ const initialExcerpt = clipToTokenBudget(record.body, perEntry);
83
+ const initialEntry = entryForRank(rank, record, initialExcerpt);
84
+ if (renderedCost([...entries, initialEntry]) <= budgetTokens) {
85
+ return initialEntry;
86
+ }
87
+ const words = wordsOf(record.body);
88
+ let lo = 1;
89
+ let hi = Math.min(words.length, Math.max(1, Math.floor(perEntry / TOKEN_PER_WORD_RATIO)));
90
+ let best;
91
+ while (lo <= hi) {
92
+ const mid = Math.floor((lo + hi) / 2);
93
+ const candidate = entryForRank(rank, record, clippedWords(words, mid));
94
+ if (renderedCost([...entries, candidate]) <= budgetTokens) {
95
+ best = candidate;
96
+ lo = mid + 1;
97
+ }
98
+ else {
99
+ hi = mid - 1;
100
+ }
101
+ }
102
+ return best;
103
+ }
104
+ function greedyAssemble(ranked, recordById, options) {
105
+ const included = [];
106
+ const entries = [];
107
+ const omitted = [];
108
+ let used = 0;
109
+ // Per-entry token allowance: divide the budget evenly across the cap; a per-entry clip
110
+ // keeps any one memory from monopolising the budget.
111
+ const perEntry = Math.max(1, Math.floor(options.budgetTokens / Math.max(1, options.maxIncluded)));
112
+ for (const rank of ranked) {
113
+ if (included.length >= options.maxIncluded) {
114
+ omitted.push({ memoryId: rank.memoryId, reason: "budget-exceeded" });
115
+ continue;
116
+ }
117
+ const record = recordById.get(rank.memoryId);
118
+ if (record === undefined) {
119
+ omitted.push({ memoryId: rank.memoryId, reason: "out-of-scope" });
120
+ continue;
121
+ }
122
+ const entry = fitEntryToBudget(entries, rank, record, options.budgetTokens, Math.max(1, Math.min(perEntry, options.budgetTokens - used)));
123
+ if (entry === undefined) {
124
+ omitted.push({ memoryId: rank.memoryId, reason: "budget-exceeded" });
125
+ continue;
126
+ }
127
+ used = renderedCost([...entries, entry]);
128
+ included.push(rank);
129
+ entries.push(entry);
130
+ }
131
+ return { included, entries, omitted, used };
132
+ }
133
+ /**
134
+ * Assemble a token-budgeted context block from a pre-ranked memory list. Returns
135
+ * `Omit<MemoryRetrievalResult, "request">` because the assembler has no need for the
136
+ * request envelope to compose its output; the orchestrator (retrieveMemoryContext)
137
+ * attaches `request` after calling this function.
138
+ */
139
+ export function assembleContextBlock(ranked, memories, options) {
140
+ const recordById = buildRecordIndex(memories);
141
+ const step = greedyAssemble(ranked, recordById, options);
142
+ return {
143
+ contextBlock: {
144
+ text: renderText(step.entries),
145
+ memories: step.entries,
146
+ },
147
+ included: step.included,
148
+ omitted: step.omitted,
149
+ budget: { tokens: options.budgetTokens, used: step.used },
150
+ };
151
+ }
@@ -0,0 +1,2 @@
1
+ export declare function exponentialDecay(ageMs: number, halfLifeMs: number): number;
2
+ //# sourceMappingURL=decay.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"decay.d.ts","sourceRoot":"","sources":["../src/decay.ts"],"names":[],"mappings":"AAYA,wBAAgB,gBAAgB,CAAC,KAAK,EAAE,MAAM,EAAE,UAAU,EAAE,MAAM,GAAG,MAAM,CAM1E"}
package/dist/decay.js ADDED
@@ -0,0 +1,22 @@
1
+ // Shared exponential half-life decay primitive (#204, O-P2).
2
+ //
3
+ // The retrieval layer modelled time-decay TWICE with the same kernel: edit-recency (recency.ts, on
4
+ // updatedAt) and use-recency inside reinforcement strength (strength.ts, on lastAccessedAt). They are
5
+ // DISTINCT signals with distinct half-lives — edit-freshness vs reuse-freshness — so they correctly
6
+ // coexist, but the kernel arithmetic should live in ONE place so the two cannot drift in how they
7
+ // clamp or compute. This is that single source of truth.
8
+ //
9
+ // value = 1.0 at age 0, 0.5 at one half-life, 0.25 at two, … ; future-dated (age <= 0) clamps to
10
+ // 1.0 so clock skew never yields a negative or super-unit score that would poison the weighted sum.
11
+ //
12
+ // Pure: same (ageMs, halfLifeMs) => same value.
13
+ export function exponentialDecay(ageMs, halfLifeMs) {
14
+ if (ageMs <= 0)
15
+ return 1;
16
+ const decay = Math.exp(-(Math.LN2 * ageMs) / halfLifeMs);
17
+ if (decay < 0)
18
+ return 0;
19
+ if (decay > 1)
20
+ return 1;
21
+ return decay;
22
+ }
@@ -0,0 +1,8 @@
1
+ import type { MemoryId } from "@oscharko-dev/keiko-contracts/memory";
2
+ export declare const DEFAULT_MMR_LAMBDA = 0.7;
3
+ export interface MmrItem {
4
+ readonly memoryId: MemoryId;
5
+ readonly score: number;
6
+ }
7
+ export declare function reorderByMmr<T extends MmrItem>(ranked: readonly T[], embeddingById: ReadonlyMap<MemoryId, Float32Array>, lambda?: number): readonly T[];
8
+ //# sourceMappingURL=diversity.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"diversity.d.ts","sourceRoot":"","sources":["../src/diversity.ts"],"names":[],"mappings":"AAcA,OAAO,KAAK,EAAE,QAAQ,EAAE,MAAM,sCAAsC,CAAC;AAErE,eAAO,MAAM,kBAAkB,MAAM,CAAC;AAsBtC,MAAM,WAAW,OAAO;IACtB,QAAQ,CAAC,QAAQ,EAAE,QAAQ,CAAC;IAC5B,QAAQ,CAAC,KAAK,EAAE,MAAM,CAAC;CACxB;AAsCD,wBAAgB,YAAY,CAAC,CAAC,SAAS,OAAO,EAC5C,MAAM,EAAE,SAAS,CAAC,EAAE,EACpB,aAAa,EAAE,WAAW,CAAC,QAAQ,EAAE,YAAY,CAAC,EAClD,MAAM,GAAE,MAA2B,GAClC,SAAS,CAAC,EAAE,CAgBd"}
@@ -0,0 +1,87 @@
1
+ // Maximal Marginal Relevance (MMR) re-ordering for context selection (#204, O-F3).
2
+ //
3
+ // The token-budgeted assembler fills greedily by rank, so when several near-duplicate memories sit at
4
+ // the top they can ALL be packed into the budget — three paraphrases of one fact crowd out three
5
+ // complementary facts. MMR (Carbonell & Goldstein 1998) re-orders the ranked list to balance
6
+ // relevance against novelty relative to what is already chosen:
7
+ //
8
+ // next = argmax_d [ lambda * score(d) - (1 - lambda) * max_{s in selected} cosine(d, s) ]
9
+ //
10
+ // Pure & deterministic: same ranked list + same vectors + same lambda => same order. Ties break on
11
+ // the ORIGINAL rank index, so the output is stable and, with lambda = 1 (or no vectors), byte-equal
12
+ // to the input order. A candidate with no embedding incurs zero diversity penalty (treated as
13
+ // maximally novel) — the worst case is "behaves like today", never a regression.
14
+ export const DEFAULT_MMR_LAMBDA = 0.7;
15
+ // Cosine in [0,1], clamped like the rest of the stack (negative => 0). Length-mismatch / zero vector
16
+ // => 0 (no penalty).
17
+ function cosine(a, b) {
18
+ if (a.length === 0 || a.length !== b.length)
19
+ return 0;
20
+ let dot = 0;
21
+ let na = 0;
22
+ let nb = 0;
23
+ for (let i = 0; i < a.length; i += 1) {
24
+ const x = a[i] ?? 0;
25
+ const y = b[i] ?? 0;
26
+ dot += x * y;
27
+ na += x * x;
28
+ nb += y * y;
29
+ }
30
+ if (na === 0 || nb === 0)
31
+ return 0;
32
+ const c = dot / (Math.sqrt(na) * Math.sqrt(nb));
33
+ if (c <= 0)
34
+ return 0;
35
+ return c > 1 ? 1 : c;
36
+ }
37
+ // Highest cosine of `vec` to any already-selected vector (0 if `vec` is absent or none selected).
38
+ function maxSimilarity(vec, selected) {
39
+ if (vec === undefined)
40
+ return 0;
41
+ let max = 0;
42
+ for (const sv of selected) {
43
+ const sim = cosine(vec, sv);
44
+ if (sim > max)
45
+ max = sim;
46
+ }
47
+ return max;
48
+ }
49
+ // Index in `remaining` of the highest MMR value. Strict `>` so ties keep the earlier (higher-ranked)
50
+ // candidate, since `remaining` preserves the input order — that makes the result deterministic.
51
+ function bestMmrIndex(remaining, embeddingById, selectedVectors, lambda) {
52
+ let bestPos = 0;
53
+ let bestValue = -Infinity;
54
+ for (let i = 0; i < remaining.length; i += 1) {
55
+ const cand = remaining[i];
56
+ if (cand === undefined)
57
+ continue;
58
+ const sim = maxSimilarity(embeddingById.get(cand.memoryId), selectedVectors);
59
+ const value = lambda * cand.score - (1 - lambda) * sim;
60
+ if (value > bestValue) {
61
+ bestValue = value;
62
+ bestPos = i;
63
+ }
64
+ }
65
+ return bestPos;
66
+ }
67
+ // Re-orders `ranked` by MMR. Returns a NEW array of the same items. When `embeddingById` is empty or
68
+ // lambda >= 1, the input order is preserved exactly (the diversity term is inert).
69
+ export function reorderByMmr(ranked, embeddingById, lambda = DEFAULT_MMR_LAMBDA) {
70
+ if (ranked.length <= 2 || embeddingById.size === 0 || lambda >= 1) {
71
+ return [...ranked];
72
+ }
73
+ const remaining = [...ranked];
74
+ const selected = [];
75
+ const selectedVectors = [];
76
+ while (remaining.length > 0) {
77
+ const pos = bestMmrIndex(remaining, embeddingById, selectedVectors, lambda);
78
+ const chosen = remaining.splice(pos, 1)[0];
79
+ if (chosen === undefined)
80
+ break;
81
+ selected.push(chosen);
82
+ const vec = embeddingById.get(chosen.memoryId);
83
+ if (vec !== undefined)
84
+ selectedVectors.push(vec);
85
+ }
86
+ return selected;
87
+ }
@@ -0,0 +1,9 @@
1
+ export type RetrievalErrorCode = "empty-scopes" | "invalid-budget" | "invalid-threshold" | "invalid-weight" | "port-failure";
2
+ export declare class RetrievalError extends Error {
3
+ readonly name = "RetrievalError";
4
+ readonly code: RetrievalErrorCode;
5
+ constructor(code: RetrievalErrorCode, message: string, options?: {
6
+ cause?: unknown;
7
+ });
8
+ }
9
+ //# sourceMappingURL=errors.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"errors.d.ts","sourceRoot":"","sources":["../src/errors.ts"],"names":[],"mappings":"AAOA,MAAM,MAAM,kBAAkB,GAC1B,cAAc,GACd,gBAAgB,GAChB,mBAAmB,GACnB,gBAAgB,GAChB,cAAc,CAAC;AAEnB,qBAAa,cAAe,SAAQ,KAAK;IACvC,SAAyB,IAAI,oBAAoB;IACjD,SAAgB,IAAI,EAAE,kBAAkB,CAAC;gBAEtB,IAAI,EAAE,kBAAkB,EAAE,OAAO,EAAE,MAAM,EAAE,OAAO,CAAC,EAAE;QAAE,KAAK,CAAC,EAAE,OAAO,CAAA;KAAE;CAI5F"}
package/dist/errors.js ADDED
@@ -0,0 +1,14 @@
1
+ // Typed error surface for the retrieval layer. Each call-site that throws picks one
2
+ // discriminated code so callers (Conversation Center, workflow agents, audit) can branch
3
+ // on `err.code` without parsing strings. The code set is intentionally small — all
4
+ // recoverable input shapes are validated up-front (`empty-scopes`, `invalid-budget`,
5
+ // `invalid-weight`) and any port-side failure is wrapped under one umbrella
6
+ // (`port-failure`) carrying the underlying error in `cause`.
7
+ export class RetrievalError extends Error {
8
+ name = "RetrievalError";
9
+ code;
10
+ constructor(code, message, options) {
11
+ super(message, options);
12
+ this.code = code;
13
+ }
14
+ }
@@ -0,0 +1,3 @@
1
+ import type { MemoryEdge, MemoryId } from "@oscharko-dev/keiko-contracts/memory";
2
+ export declare function graphProximityScore(memoryId: MemoryId, edgesByMemory: ReadonlyMap<MemoryId, readonly MemoryEdge[]>, highRankIds: ReadonlySet<string>): number;
3
+ //# sourceMappingURL=graph.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"graph.d.ts","sourceRoot":"","sources":["../src/graph.ts"],"names":[],"mappings":"AAiBA,OAAO,KAAK,EAAE,UAAU,EAAkB,QAAQ,EAAE,MAAM,sCAAsC,CAAC;AAIjG,wBAAgB,mBAAmB,CACjC,QAAQ,EAAE,QAAQ,EAClB,aAAa,EAAE,WAAW,CAAC,QAAQ,EAAE,SAAS,UAAU,EAAE,CAAC,EAC3D,WAAW,EAAE,WAAW,CAAC,MAAM,CAAC,GAC/B,MAAM,CAWR"}
package/dist/graph.js ADDED
@@ -0,0 +1,33 @@
1
+ // Graph-proximity primitive.
2
+ //
3
+ // A memory's graph-proximity score is a normalized count of its edges (of kinds related |
4
+ // supersedes | corrects) whose endpoint is in the caller-supplied high-rank set. The
5
+ // remaining edge kinds (`conflicts-with`, `temporal-precedes`, `derived-from`) are
6
+ // EXCLUDED because they do not denote semantic alignment:
7
+ // - conflicts-with: the two records DISAGREE; boosting the conflicting record because
8
+ // a conflicting peer is high-rank would invert the signal.
9
+ // - temporal-precedes: pure ordering metadata; tells us nothing about content alignment.
10
+ // - derived-from: lineage edge; the source record is intrinsically older and ranking
11
+ // here would double-count its own recency contribution.
12
+ //
13
+ // Score normalization uses `1 - 1 / (1 + n)` over the qualifying neighbour count, which
14
+ // is monotonically increasing in n, bounded in [0, 1), and saturates smoothly so a memory
15
+ // connected to 6 neighbours scores >0.8 (see test). The function is pure — no state, no
16
+ // recursion, no transitive closure — so cost is O(edges_for_memory).
17
+ const PROXIMITY_KINDS = new Set(["related", "supersedes", "corrects"]);
18
+ export function graphProximityScore(memoryId, edgesByMemory, highRankIds) {
19
+ const edges = edgesByMemory.get(memoryId);
20
+ if (edges === undefined || edges.length === 0)
21
+ return 0;
22
+ let count = 0;
23
+ for (const edge of edges) {
24
+ if (!PROXIMITY_KINDS.has(edge.kind))
25
+ continue;
26
+ const other = edge.fromMemoryId === memoryId ? edge.toMemoryId : edge.fromMemoryId;
27
+ if (highRankIds.has(other))
28
+ count += 1;
29
+ }
30
+ if (count === 0)
31
+ return 0;
32
+ return 1 - 1 / (1 + count);
33
+ }
@@ -0,0 +1,13 @@
1
+ export { KEIKO_MEMORY_RETRIEVAL_VERSION } from "./version.js";
2
+ export { RetrievalError, type RetrievalErrorCode } from "./errors.js";
3
+ export { DEFAULT_BUDGET_TOKENS, DEFAULT_LIST_BY_SCOPE_MAX_RESULTS, DEFAULT_MAX_INCLUDED, DEFAULT_RANKING_WEIGHTS, DEFAULT_STALE_CONFIDENCE_THRESHOLD, type AssembledContext, type IncludedMemory, type IncludedSubscores, type ListByScopeOptions, type MemoryBudget, type MemoryContextBlock, type MemoryContextBlockEntry, type MemoryQueryPort, type MemoryRetrievalRequest, type MemoryRetrievalResult, type OmittedMemory, type OmittedReason, type RankingFusionMode, type RankingWeights, } from "./types.js";
4
+ export { isMemorySuppressed, type SuppressionReason, type SuppressionResult, } from "./suppression.js";
5
+ export { tokenize, lexicalRelevance } from "./relevance.js";
6
+ export { recencyScore, RECENCY_HALF_LIFE_MS } from "./recency.js";
7
+ export { reinforcementStrength, buildStrengthById, STRENGTH_HALF_LIFE_MS, STRENGTH_FREQUENCY_SATURATION, type MemoryAccessStat, } from "./strength.js";
8
+ export { graphProximityScore } from "./graph.js";
9
+ export { rankMemories, sourceImportance, RRF_K, type RankMemoriesOptions, type RankMemoriesQuery, } from "./ranking.js";
10
+ export { reorderByMmr, DEFAULT_MMR_LAMBDA, type MmrItem } from "./diversity.js";
11
+ export { assembleContextBlock, estimateTokens, TOKEN_PER_WORD_RATIO, type AssembleContextOptions, } from "./context.js";
12
+ export { retrieveMemoryContext } from "./retrieve.js";
13
+ //# sourceMappingURL=index.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"AASA,OAAO,EAAE,8BAA8B,EAAE,MAAM,cAAc,CAAC;AAG9D,OAAO,EAAE,cAAc,EAAE,KAAK,kBAAkB,EAAE,MAAM,aAAa,CAAC;AAGtE,OAAO,EACL,qBAAqB,EACrB,iCAAiC,EACjC,oBAAoB,EACpB,uBAAuB,EACvB,kCAAkC,EAClC,KAAK,gBAAgB,EACrB,KAAK,cAAc,EACnB,KAAK,iBAAiB,EACtB,KAAK,kBAAkB,EACvB,KAAK,YAAY,EACjB,KAAK,kBAAkB,EACvB,KAAK,uBAAuB,EAC5B,KAAK,eAAe,EACpB,KAAK,sBAAsB,EAC3B,KAAK,qBAAqB,EAC1B,KAAK,aAAa,EAClB,KAAK,aAAa,EAClB,KAAK,iBAAiB,EACtB,KAAK,cAAc,GACpB,MAAM,YAAY,CAAC;AAGpB,OAAO,EACL,kBAAkB,EAClB,KAAK,iBAAiB,EACtB,KAAK,iBAAiB,GACvB,MAAM,kBAAkB,CAAC;AAG1B,OAAO,EAAE,QAAQ,EAAE,gBAAgB,EAAE,MAAM,gBAAgB,CAAC;AAC5D,OAAO,EAAE,YAAY,EAAE,oBAAoB,EAAE,MAAM,cAAc,CAAC;AAClE,OAAO,EACL,qBAAqB,EACrB,iBAAiB,EACjB,qBAAqB,EACrB,6BAA6B,EAC7B,KAAK,gBAAgB,GACtB,MAAM,eAAe,CAAC;AACvB,OAAO,EAAE,mBAAmB,EAAE,MAAM,YAAY,CAAC;AACjD,OAAO,EACL,YAAY,EACZ,gBAAgB,EAChB,KAAK,EACL,KAAK,mBAAmB,EACxB,KAAK,iBAAiB,GACvB,MAAM,cAAc,CAAC;AAGtB,OAAO,EAAE,YAAY,EAAE,kBAAkB,EAAE,KAAK,OAAO,EAAE,MAAM,gBAAgB,CAAC;AAGhF,OAAO,EACL,oBAAoB,EACpB,cAAc,EACd,oBAAoB,EACpB,KAAK,sBAAsB,GAC5B,MAAM,cAAc,CAAC;AAGtB,OAAO,EAAE,qBAAqB,EAAE,MAAM,eAAe,CAAC"}
package/dist/index.js ADDED
@@ -0,0 +1,27 @@
1
+ // Public surface of @oscharko-dev/keiko-memory-retrieval (Epic #204 child #210).
2
+ // Keeping this file the SOLE entry point prevents downstream packages from reaching into
3
+ // private modules (ADR-0019 trust rule 7). Internal modules are package-private.
4
+ //
5
+ // Every function in this barrel is pure: same input + same MemoryQueryPort responses =>
6
+ // byte-identical output. The package never reads a clock, never invokes randomness, never
7
+ // touches the filesystem. The caller supplies nowMs through MemoryRetrievalRequest and
8
+ // owns the vault behind the MemoryQueryPort seam.
9
+ export { KEIKO_MEMORY_RETRIEVAL_VERSION } from "./version.js";
10
+ // ─── Errors ──────────────────────────────────────────────────────────────────
11
+ export { RetrievalError } from "./errors.js";
12
+ // ─── Public type surface ─────────────────────────────────────────────────────
13
+ export { DEFAULT_BUDGET_TOKENS, DEFAULT_LIST_BY_SCOPE_MAX_RESULTS, DEFAULT_MAX_INCLUDED, DEFAULT_RANKING_WEIGHTS, DEFAULT_STALE_CONFIDENCE_THRESHOLD, } from "./types.js";
14
+ // ─── Suppression (duplicated from governance — see suppression.ts header) ────
15
+ export { isMemorySuppressed, } from "./suppression.js";
16
+ // ─── Ranking primitives + orchestration ──────────────────────────────────────
17
+ export { tokenize, lexicalRelevance } from "./relevance.js";
18
+ export { recencyScore, RECENCY_HALF_LIFE_MS } from "./recency.js";
19
+ export { reinforcementStrength, buildStrengthById, STRENGTH_HALF_LIFE_MS, STRENGTH_FREQUENCY_SATURATION, } from "./strength.js";
20
+ export { graphProximityScore } from "./graph.js";
21
+ export { rankMemories, sourceImportance, RRF_K, } from "./ranking.js";
22
+ // ─── Diversity (MMR) ─────────────────────────────────────────────────────────
23
+ export { reorderByMmr, DEFAULT_MMR_LAMBDA } from "./diversity.js";
24
+ // ─── Context assembly ────────────────────────────────────────────────────────
25
+ export { assembleContextBlock, estimateTokens, TOKEN_PER_WORD_RATIO, } from "./context.js";
26
+ // ─── Top-level retrieval ─────────────────────────────────────────────────────
27
+ export { retrieveMemoryContext } from "./retrieve.js";
@@ -0,0 +1,19 @@
1
+ import type { MemoryEdge, MemoryId, MemoryRecord } from "@oscharko-dev/keiko-contracts/memory";
2
+ import type { IncludedMemory, RankingFusionMode, RankingWeights } from "./types.js";
3
+ export interface RankMemoriesQuery {
4
+ readonly queryText?: string;
5
+ readonly nowMs: number;
6
+ readonly weights: RankingWeights;
7
+ readonly semanticById?: ReadonlyMap<MemoryId, number> | undefined;
8
+ readonly strengthById?: ReadonlyMap<MemoryId, number> | undefined;
9
+ readonly fusion?: RankingFusionMode | undefined;
10
+ }
11
+ export interface RankMemoriesOptions {
12
+ readonly edgesByMemory?: ReadonlyMap<MemoryId, readonly MemoryEdge[]>;
13
+ /** How many top baseline entries become the high-rank set for graph proximity. */
14
+ readonly graphHighRankCount?: number;
15
+ }
16
+ export declare function sourceImportance(record: MemoryRecord): number;
17
+ export declare const RRF_K = 60;
18
+ export declare function rankMemories(memories: readonly MemoryRecord[], query: RankMemoriesQuery, options?: RankMemoriesOptions): readonly IncludedMemory[];
19
+ //# sourceMappingURL=ranking.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"ranking.d.ts","sourceRoot":"","sources":["../src/ranking.ts"],"names":[],"mappings":"AAkBA,OAAO,KAAK,EACV,UAAU,EACV,QAAQ,EACR,YAAY,EAEb,MAAM,sCAAsC,CAAC;AAK9C,OAAO,KAAK,EACV,cAAc,EAEd,iBAAiB,EACjB,cAAc,EACf,MAAM,YAAY,CAAC;AAEpB,MAAM,WAAW,iBAAiB;IAChC,QAAQ,CAAC,SAAS,CAAC,EAAE,MAAM,CAAC;IAC5B,QAAQ,CAAC,KAAK,EAAE,MAAM,CAAC;IACvB,QAAQ,CAAC,OAAO,EAAE,cAAc,CAAC;IAGjC,QAAQ,CAAC,YAAY,CAAC,EAAE,WAAW,CAAC,QAAQ,EAAE,MAAM,CAAC,GAAG,SAAS,CAAC;IAGlE,QAAQ,CAAC,YAAY,CAAC,EAAE,WAAW,CAAC,QAAQ,EAAE,MAAM,CAAC,GAAG,SAAS,CAAC;IAElE,QAAQ,CAAC,MAAM,CAAC,EAAE,iBAAiB,GAAG,SAAS,CAAC;CACjD;AAED,MAAM,WAAW,mBAAmB;IAClC,QAAQ,CAAC,aAAa,CAAC,EAAE,WAAW,CAAC,QAAQ,EAAE,SAAS,UAAU,EAAE,CAAC,CAAC;IACtE,kFAAkF;IAClF,QAAQ,CAAC,kBAAkB,CAAC,EAAE,MAAM,CAAC;CACtC;AA2BD,wBAAgB,gBAAgB,CAAC,MAAM,EAAE,YAAY,GAAG,MAAM,CAI7D;AAkJD,eAAO,MAAM,KAAK,KAAK,CAAC;AAkGxB,wBAAgB,YAAY,CAC1B,QAAQ,EAAE,SAAS,YAAY,EAAE,EACjC,KAAK,EAAE,iBAAiB,EACxB,OAAO,GAAE,mBAAwB,GAChC,SAAS,cAAc,EAAE,CAa3B"}