@psiclawops/hypermem 0.8.5 → 0.9.1
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/ARCHITECTURE.md +2 -2
- package/CHANGELOG.md +36 -1
- package/INSTALL.md +132 -9
- package/README.md +119 -272
- package/bench/README.md +42 -0
- package/bench/data-access-bench.mjs +380 -0
- package/bin/hypermem-bench.mjs +2 -0
- package/bin/hypermem-doctor.mjs +412 -0
- package/bin/hypermem-model-audit.mjs +339 -0
- package/bin/hypermem-status.mjs +491 -70
- package/docs/DIAGNOSTICS.md +205 -0
- package/docs/INTEGRATION_VALIDATION.md +186 -0
- package/docs/MIGRATION.md +9 -6
- package/docs/MIGRATION_GUIDE.md +125 -101
- package/docs/ROADMAP.md +247 -20
- package/docs/TUNING.md +19 -5
- package/install.sh +152 -401
- package/memory-plugin/LICENSE +190 -0
- package/memory-plugin/README.md +20 -0
- package/memory-plugin/package.json +3 -3
- package/package.json +19 -4
- package/plugin/LICENSE +190 -0
- package/plugin/README.md +20 -0
- package/plugin/package.json +4 -4
- package/scripts/install-runtime.mjs +12 -1
- package/dist/background-indexer.d.ts +0 -161
- package/dist/background-indexer.d.ts.map +0 -1
- package/dist/background-indexer.js +0 -1263
- package/dist/budget-policy.d.ts +0 -22
- package/dist/budget-policy.d.ts.map +0 -1
- package/dist/budget-policy.js +0 -27
- package/dist/cache.d.ts +0 -147
- package/dist/cache.d.ts.map +0 -1
- package/dist/cache.js +0 -569
- package/dist/compaction-fence.d.ts +0 -97
- package/dist/compaction-fence.d.ts.map +0 -1
- package/dist/compaction-fence.js +0 -174
- package/dist/compositor-utils.d.ts +0 -31
- package/dist/compositor-utils.d.ts.map +0 -1
- package/dist/compositor-utils.js +0 -47
- package/dist/compositor.d.ts +0 -394
- package/dist/compositor.d.ts.map +0 -1
- package/dist/compositor.js +0 -3632
- package/dist/content-hash.d.ts +0 -43
- package/dist/content-hash.d.ts.map +0 -1
- package/dist/content-hash.js +0 -75
- package/dist/content-type-classifier.d.ts +0 -41
- package/dist/content-type-classifier.d.ts.map +0 -1
- package/dist/content-type-classifier.js +0 -181
- package/dist/context-backfill.d.ts +0 -46
- package/dist/context-backfill.d.ts.map +0 -1
- package/dist/context-backfill.js +0 -113
- package/dist/context-store.d.ts +0 -131
- package/dist/context-store.d.ts.map +0 -1
- package/dist/context-store.js +0 -279
- package/dist/contradiction-audit-store.d.ts +0 -54
- package/dist/contradiction-audit-store.d.ts.map +0 -1
- package/dist/contradiction-audit-store.js +0 -88
- package/dist/contradiction-detector.d.ts +0 -78
- package/dist/contradiction-detector.d.ts.map +0 -1
- package/dist/contradiction-detector.js +0 -362
- package/dist/contradiction-resolution-policy.d.ts +0 -21
- package/dist/contradiction-resolution-policy.d.ts.map +0 -1
- package/dist/contradiction-resolution-policy.js +0 -17
- package/dist/cross-agent.d.ts +0 -74
- package/dist/cross-agent.d.ts.map +0 -1
- package/dist/cross-agent.js +0 -271
- package/dist/db.d.ts +0 -131
- package/dist/db.d.ts.map +0 -1
- package/dist/db.js +0 -410
- package/dist/degradation.d.ts +0 -102
- package/dist/degradation.d.ts.map +0 -1
- package/dist/degradation.js +0 -141
- package/dist/desired-state-store.d.ts +0 -100
- package/dist/desired-state-store.d.ts.map +0 -1
- package/dist/desired-state-store.js +0 -222
- package/dist/doc-chunk-store.d.ts +0 -140
- package/dist/doc-chunk-store.d.ts.map +0 -1
- package/dist/doc-chunk-store.js +0 -391
- package/dist/doc-chunker.d.ts +0 -99
- package/dist/doc-chunker.d.ts.map +0 -1
- package/dist/doc-chunker.js +0 -324
- package/dist/dreaming-promoter.d.ts +0 -124
- package/dist/dreaming-promoter.d.ts.map +0 -1
- package/dist/dreaming-promoter.js +0 -447
- package/dist/episode-store.d.ts +0 -49
- package/dist/episode-store.d.ts.map +0 -1
- package/dist/episode-store.js +0 -135
- package/dist/expertise-store.d.ts +0 -129
- package/dist/expertise-store.d.ts.map +0 -1
- package/dist/expertise-store.js +0 -342
- package/dist/fact-store.d.ts +0 -90
- package/dist/fact-store.d.ts.map +0 -1
- package/dist/fact-store.js +0 -283
- package/dist/fleet-store.d.ts +0 -144
- package/dist/fleet-store.d.ts.map +0 -1
- package/dist/fleet-store.js +0 -276
- package/dist/fos-mod.d.ts +0 -178
- package/dist/fos-mod.d.ts.map +0 -1
- package/dist/fos-mod.js +0 -416
- package/dist/hybrid-retrieval.d.ts +0 -64
- package/dist/hybrid-retrieval.d.ts.map +0 -1
- package/dist/hybrid-retrieval.js +0 -344
- package/dist/image-eviction.d.ts +0 -49
- package/dist/image-eviction.d.ts.map +0 -1
- package/dist/image-eviction.js +0 -251
- package/dist/index.d.ts +0 -718
- package/dist/index.d.ts.map +0 -1
- package/dist/index.js +0 -1469
- package/dist/keystone-scorer.d.ts +0 -51
- package/dist/keystone-scorer.d.ts.map +0 -1
- package/dist/keystone-scorer.js +0 -52
- package/dist/knowledge-graph.d.ts +0 -110
- package/dist/knowledge-graph.d.ts.map +0 -1
- package/dist/knowledge-graph.js +0 -305
- package/dist/knowledge-lint.d.ts +0 -31
- package/dist/knowledge-lint.d.ts.map +0 -1
- package/dist/knowledge-lint.js +0 -155
- package/dist/knowledge-store.d.ts +0 -72
- package/dist/knowledge-store.d.ts.map +0 -1
- package/dist/knowledge-store.js +0 -247
- package/dist/library-schema.d.ts +0 -27
- package/dist/library-schema.d.ts.map +0 -1
- package/dist/library-schema.js +0 -1343
- package/dist/message-store.d.ts +0 -181
- package/dist/message-store.d.ts.map +0 -1
- package/dist/message-store.js +0 -573
- package/dist/metrics-dashboard.d.ts +0 -114
- package/dist/metrics-dashboard.d.ts.map +0 -1
- package/dist/metrics-dashboard.js +0 -260
- package/dist/obsidian-exporter.d.ts +0 -57
- package/dist/obsidian-exporter.d.ts.map +0 -1
- package/dist/obsidian-exporter.js +0 -274
- package/dist/obsidian-watcher.d.ts +0 -147
- package/dist/obsidian-watcher.d.ts.map +0 -1
- package/dist/obsidian-watcher.js +0 -403
- package/dist/open-domain.d.ts +0 -46
- package/dist/open-domain.d.ts.map +0 -1
- package/dist/open-domain.js +0 -125
- package/dist/preference-store.d.ts +0 -54
- package/dist/preference-store.d.ts.map +0 -1
- package/dist/preference-store.js +0 -109
- package/dist/preservation-gate.d.ts +0 -82
- package/dist/preservation-gate.d.ts.map +0 -1
- package/dist/preservation-gate.js +0 -150
- package/dist/proactive-pass.d.ts +0 -63
- package/dist/proactive-pass.d.ts.map +0 -1
- package/dist/proactive-pass.js +0 -293
- package/dist/profiles.d.ts +0 -46
- package/dist/profiles.d.ts.map +0 -1
- package/dist/profiles.js +0 -262
- package/dist/provider-translator.d.ts +0 -50
- package/dist/provider-translator.d.ts.map +0 -1
- package/dist/provider-translator.js +0 -403
- package/dist/rate-limiter.d.ts +0 -76
- package/dist/rate-limiter.d.ts.map +0 -1
- package/dist/rate-limiter.js +0 -179
- package/dist/repair-tool-pairs.d.ts +0 -38
- package/dist/repair-tool-pairs.d.ts.map +0 -1
- package/dist/repair-tool-pairs.js +0 -209
- package/dist/replay-recovery.d.ts +0 -29
- package/dist/replay-recovery.d.ts.map +0 -1
- package/dist/replay-recovery.js +0 -82
- package/dist/reranker.d.ts +0 -95
- package/dist/reranker.d.ts.map +0 -1
- package/dist/reranker.js +0 -308
- package/dist/retrieval-policy.d.ts +0 -51
- package/dist/retrieval-policy.d.ts.map +0 -1
- package/dist/retrieval-policy.js +0 -77
- package/dist/schema.d.ts +0 -15
- package/dist/schema.d.ts.map +0 -1
- package/dist/schema.js +0 -300
- package/dist/secret-scanner.d.ts +0 -51
- package/dist/secret-scanner.d.ts.map +0 -1
- package/dist/secret-scanner.js +0 -248
- package/dist/seed.d.ts +0 -108
- package/dist/seed.d.ts.map +0 -1
- package/dist/seed.js +0 -177
- package/dist/session-flusher.d.ts +0 -53
- package/dist/session-flusher.d.ts.map +0 -1
- package/dist/session-flusher.js +0 -69
- package/dist/session-topic-map.d.ts +0 -41
- package/dist/session-topic-map.d.ts.map +0 -1
- package/dist/session-topic-map.js +0 -77
- package/dist/spawn-context.d.ts +0 -54
- package/dist/spawn-context.d.ts.map +0 -1
- package/dist/spawn-context.js +0 -159
- package/dist/system-store.d.ts +0 -73
- package/dist/system-store.d.ts.map +0 -1
- package/dist/system-store.js +0 -182
- package/dist/temporal-store.d.ts +0 -81
- package/dist/temporal-store.d.ts.map +0 -1
- package/dist/temporal-store.js +0 -149
- package/dist/tool-artifact-store.d.ts +0 -98
- package/dist/tool-artifact-store.d.ts.map +0 -1
- package/dist/tool-artifact-store.js +0 -244
- package/dist/topic-detector.d.ts +0 -35
- package/dist/topic-detector.d.ts.map +0 -1
- package/dist/topic-detector.js +0 -249
- package/dist/topic-store.d.ts +0 -51
- package/dist/topic-store.d.ts.map +0 -1
- package/dist/topic-store.js +0 -175
- package/dist/topic-synthesizer.d.ts +0 -51
- package/dist/topic-synthesizer.d.ts.map +0 -1
- package/dist/topic-synthesizer.js +0 -316
- package/dist/trigger-registry.d.ts +0 -63
- package/dist/trigger-registry.d.ts.map +0 -1
- package/dist/trigger-registry.js +0 -163
- package/dist/types.d.ts +0 -815
- package/dist/types.d.ts.map +0 -1
- package/dist/types.js +0 -9
- package/dist/vector-store.d.ts +0 -180
- package/dist/vector-store.d.ts.map +0 -1
- package/dist/vector-store.js +0 -1041
- package/dist/version.d.ts +0 -34
- package/dist/version.d.ts.map +0 -1
- package/dist/version.js +0 -34
- package/dist/wiki-page-emitter.d.ts +0 -65
- package/dist/wiki-page-emitter.d.ts.map +0 -1
- package/dist/wiki-page-emitter.js +0 -258
- package/dist/work-store.d.ts +0 -112
- package/dist/work-store.d.ts.map +0 -1
- package/dist/work-store.js +0 -273
- package/memory-plugin/dist/index.d.ts +0 -24
- package/memory-plugin/dist/index.d.ts.map +0 -1
- package/memory-plugin/dist/index.js +0 -300
- package/memory-plugin/dist/index.js.map +0 -1
- package/node_modules/sqlite-vec/README.md +0 -1
- package/node_modules/sqlite-vec/index.cjs +0 -46
- package/node_modules/sqlite-vec/index.d.ts +0 -17
- package/node_modules/sqlite-vec/index.mjs +0 -47
- package/node_modules/sqlite-vec/package.json +0 -1
- package/node_modules/sqlite-vec-linux-x64/README.md +0 -1
- package/node_modules/sqlite-vec-linux-x64/package.json +0 -1
- package/node_modules/sqlite-vec-linux-x64/vec0.so +0 -0
- package/node_modules/zod/LICENSE +0 -21
- package/node_modules/zod/README.md +0 -208
- package/node_modules/zod/index.cjs +0 -33
- package/node_modules/zod/index.d.cts +0 -4
- package/node_modules/zod/index.d.ts +0 -4
- package/node_modules/zod/index.js +0 -4
- package/node_modules/zod/locales/index.cjs +0 -17
- package/node_modules/zod/locales/index.d.cts +0 -1
- package/node_modules/zod/locales/index.d.ts +0 -1
- package/node_modules/zod/locales/index.js +0 -1
- package/node_modules/zod/locales/package.json +0 -6
- package/node_modules/zod/mini/index.cjs +0 -32
- package/node_modules/zod/mini/index.d.cts +0 -3
- package/node_modules/zod/mini/index.d.ts +0 -3
- package/node_modules/zod/mini/index.js +0 -3
- package/node_modules/zod/mini/package.json +0 -6
- package/node_modules/zod/package.json +0 -135
- package/node_modules/zod/src/index.ts +0 -4
- package/node_modules/zod/src/locales/index.ts +0 -1
- package/node_modules/zod/src/mini/index.ts +0 -3
- package/node_modules/zod/src/v3/ZodError.ts +0 -330
- package/node_modules/zod/src/v3/benchmarks/datetime.ts +0 -58
- package/node_modules/zod/src/v3/benchmarks/discriminatedUnion.ts +0 -80
- package/node_modules/zod/src/v3/benchmarks/index.ts +0 -59
- package/node_modules/zod/src/v3/benchmarks/ipv4.ts +0 -57
- package/node_modules/zod/src/v3/benchmarks/object.ts +0 -69
- package/node_modules/zod/src/v3/benchmarks/primitives.ts +0 -162
- package/node_modules/zod/src/v3/benchmarks/realworld.ts +0 -63
- package/node_modules/zod/src/v3/benchmarks/string.ts +0 -55
- package/node_modules/zod/src/v3/benchmarks/union.ts +0 -80
- package/node_modules/zod/src/v3/errors.ts +0 -13
- package/node_modules/zod/src/v3/external.ts +0 -6
- package/node_modules/zod/src/v3/helpers/enumUtil.ts +0 -17
- package/node_modules/zod/src/v3/helpers/errorUtil.ts +0 -8
- package/node_modules/zod/src/v3/helpers/parseUtil.ts +0 -176
- package/node_modules/zod/src/v3/helpers/partialUtil.ts +0 -34
- package/node_modules/zod/src/v3/helpers/typeAliases.ts +0 -2
- package/node_modules/zod/src/v3/helpers/util.ts +0 -224
- package/node_modules/zod/src/v3/index.ts +0 -4
- package/node_modules/zod/src/v3/locales/en.ts +0 -124
- package/node_modules/zod/src/v3/standard-schema.ts +0 -113
- package/node_modules/zod/src/v3/tests/Mocker.ts +0 -54
- package/node_modules/zod/src/v3/tests/all-errors.test.ts +0 -157
- package/node_modules/zod/src/v3/tests/anyunknown.test.ts +0 -28
- package/node_modules/zod/src/v3/tests/array.test.ts +0 -71
- package/node_modules/zod/src/v3/tests/async-parsing.test.ts +0 -388
- package/node_modules/zod/src/v3/tests/async-refinements.test.ts +0 -46
- package/node_modules/zod/src/v3/tests/base.test.ts +0 -29
- package/node_modules/zod/src/v3/tests/bigint.test.ts +0 -55
- package/node_modules/zod/src/v3/tests/branded.test.ts +0 -53
- package/node_modules/zod/src/v3/tests/catch.test.ts +0 -220
- package/node_modules/zod/src/v3/tests/coerce.test.ts +0 -133
- package/node_modules/zod/src/v3/tests/complex.test.ts +0 -70
- package/node_modules/zod/src/v3/tests/custom.test.ts +0 -31
- package/node_modules/zod/src/v3/tests/date.test.ts +0 -32
- package/node_modules/zod/src/v3/tests/deepmasking.test.ts +0 -186
- package/node_modules/zod/src/v3/tests/default.test.ts +0 -112
- package/node_modules/zod/src/v3/tests/description.test.ts +0 -33
- package/node_modules/zod/src/v3/tests/discriminated-unions.test.ts +0 -315
- package/node_modules/zod/src/v3/tests/enum.test.ts +0 -80
- package/node_modules/zod/src/v3/tests/error.test.ts +0 -551
- package/node_modules/zod/src/v3/tests/firstparty.test.ts +0 -87
- package/node_modules/zod/src/v3/tests/firstpartyschematypes.test.ts +0 -21
- package/node_modules/zod/src/v3/tests/function.test.ts +0 -261
- package/node_modules/zod/src/v3/tests/generics.test.ts +0 -48
- package/node_modules/zod/src/v3/tests/instanceof.test.ts +0 -37
- package/node_modules/zod/src/v3/tests/intersection.test.ts +0 -110
- package/node_modules/zod/src/v3/tests/language-server.source.ts +0 -76
- package/node_modules/zod/src/v3/tests/language-server.test.ts +0 -207
- package/node_modules/zod/src/v3/tests/literal.test.ts +0 -36
- package/node_modules/zod/src/v3/tests/map.test.ts +0 -110
- package/node_modules/zod/src/v3/tests/masking.test.ts +0 -4
- package/node_modules/zod/src/v3/tests/mocker.test.ts +0 -19
- package/node_modules/zod/src/v3/tests/nan.test.ts +0 -24
- package/node_modules/zod/src/v3/tests/nativeEnum.test.ts +0 -87
- package/node_modules/zod/src/v3/tests/nullable.test.ts +0 -42
- package/node_modules/zod/src/v3/tests/number.test.ts +0 -176
- package/node_modules/zod/src/v3/tests/object-augmentation.test.ts +0 -29
- package/node_modules/zod/src/v3/tests/object-in-es5-env.test.ts +0 -29
- package/node_modules/zod/src/v3/tests/object.test.ts +0 -434
- package/node_modules/zod/src/v3/tests/optional.test.ts +0 -42
- package/node_modules/zod/src/v3/tests/parseUtil.test.ts +0 -23
- package/node_modules/zod/src/v3/tests/parser.test.ts +0 -41
- package/node_modules/zod/src/v3/tests/partials.test.ts +0 -243
- package/node_modules/zod/src/v3/tests/pickomit.test.ts +0 -111
- package/node_modules/zod/src/v3/tests/pipeline.test.ts +0 -29
- package/node_modules/zod/src/v3/tests/preprocess.test.ts +0 -186
- package/node_modules/zod/src/v3/tests/primitive.test.ts +0 -440
- package/node_modules/zod/src/v3/tests/promise.test.ts +0 -90
- package/node_modules/zod/src/v3/tests/readonly.test.ts +0 -194
- package/node_modules/zod/src/v3/tests/record.test.ts +0 -171
- package/node_modules/zod/src/v3/tests/recursive.test.ts +0 -197
- package/node_modules/zod/src/v3/tests/refine.test.ts +0 -313
- package/node_modules/zod/src/v3/tests/safeparse.test.ts +0 -27
- package/node_modules/zod/src/v3/tests/set.test.ts +0 -142
- package/node_modules/zod/src/v3/tests/standard-schema.test.ts +0 -83
- package/node_modules/zod/src/v3/tests/string.test.ts +0 -916
- package/node_modules/zod/src/v3/tests/transformer.test.ts +0 -233
- package/node_modules/zod/src/v3/tests/tuple.test.ts +0 -90
- package/node_modules/zod/src/v3/tests/unions.test.ts +0 -57
- package/node_modules/zod/src/v3/tests/validations.test.ts +0 -133
- package/node_modules/zod/src/v3/tests/void.test.ts +0 -15
- package/node_modules/zod/src/v3/types.ts +0 -5138
- package/node_modules/zod/src/v4/classic/checks.ts +0 -32
- package/node_modules/zod/src/v4/classic/coerce.ts +0 -27
- package/node_modules/zod/src/v4/classic/compat.ts +0 -70
- package/node_modules/zod/src/v4/classic/errors.ts +0 -82
- package/node_modules/zod/src/v4/classic/external.ts +0 -51
- package/node_modules/zod/src/v4/classic/from-json-schema.ts +0 -643
- package/node_modules/zod/src/v4/classic/index.ts +0 -5
- package/node_modules/zod/src/v4/classic/iso.ts +0 -90
- package/node_modules/zod/src/v4/classic/parse.ts +0 -82
- package/node_modules/zod/src/v4/classic/schemas.ts +0 -2409
- package/node_modules/zod/src/v4/classic/tests/anyunknown.test.ts +0 -26
- package/node_modules/zod/src/v4/classic/tests/apply.test.ts +0 -59
- package/node_modules/zod/src/v4/classic/tests/array.test.ts +0 -264
- package/node_modules/zod/src/v4/classic/tests/assignability.test.ts +0 -210
- package/node_modules/zod/src/v4/classic/tests/async-parsing.test.ts +0 -381
- package/node_modules/zod/src/v4/classic/tests/async-refinements.test.ts +0 -68
- package/node_modules/zod/src/v4/classic/tests/base.test.ts +0 -7
- package/node_modules/zod/src/v4/classic/tests/bigint.test.ts +0 -54
- package/node_modules/zod/src/v4/classic/tests/brand.test.ts +0 -106
- package/node_modules/zod/src/v4/classic/tests/catch.test.ts +0 -276
- package/node_modules/zod/src/v4/classic/tests/coalesce.test.ts +0 -20
- package/node_modules/zod/src/v4/classic/tests/codec-examples.test.ts +0 -573
- package/node_modules/zod/src/v4/classic/tests/codec.test.ts +0 -562
- package/node_modules/zod/src/v4/classic/tests/coerce.test.ts +0 -160
- package/node_modules/zod/src/v4/classic/tests/continuability.test.ts +0 -374
- package/node_modules/zod/src/v4/classic/tests/custom.test.ts +0 -40
- package/node_modules/zod/src/v4/classic/tests/date.test.ts +0 -62
- package/node_modules/zod/src/v4/classic/tests/datetime.test.ts +0 -302
- package/node_modules/zod/src/v4/classic/tests/default.test.ts +0 -365
- package/node_modules/zod/src/v4/classic/tests/describe-meta-checks.test.ts +0 -27
- package/node_modules/zod/src/v4/classic/tests/description.test.ts +0 -32
- package/node_modules/zod/src/v4/classic/tests/discriminated-unions.test.ts +0 -661
- package/node_modules/zod/src/v4/classic/tests/enum.test.ts +0 -285
- package/node_modules/zod/src/v4/classic/tests/error-utils.test.ts +0 -595
- package/node_modules/zod/src/v4/classic/tests/error.test.ts +0 -711
- package/node_modules/zod/src/v4/classic/tests/file.test.ts +0 -96
- package/node_modules/zod/src/v4/classic/tests/firstparty.test.ts +0 -179
- package/node_modules/zod/src/v4/classic/tests/fix-json-issue.test.ts +0 -26
- package/node_modules/zod/src/v4/classic/tests/from-json-schema.test.ts +0 -734
- package/node_modules/zod/src/v4/classic/tests/function.test.ts +0 -360
- package/node_modules/zod/src/v4/classic/tests/generics.test.ts +0 -72
- package/node_modules/zod/src/v4/classic/tests/hash.test.ts +0 -68
- package/node_modules/zod/src/v4/classic/tests/index.test.ts +0 -939
- package/node_modules/zod/src/v4/classic/tests/instanceof.test.ts +0 -60
- package/node_modules/zod/src/v4/classic/tests/intersection.test.ts +0 -198
- package/node_modules/zod/src/v4/classic/tests/json.test.ts +0 -109
- package/node_modules/zod/src/v4/classic/tests/lazy.test.ts +0 -227
- package/node_modules/zod/src/v4/classic/tests/literal.test.ts +0 -117
- package/node_modules/zod/src/v4/classic/tests/map.test.ts +0 -330
- package/node_modules/zod/src/v4/classic/tests/nan.test.ts +0 -21
- package/node_modules/zod/src/v4/classic/tests/nested-refine.test.ts +0 -168
- package/node_modules/zod/src/v4/classic/tests/nonoptional.test.ts +0 -101
- package/node_modules/zod/src/v4/classic/tests/nullable.test.ts +0 -22
- package/node_modules/zod/src/v4/classic/tests/number.test.ts +0 -270
- package/node_modules/zod/src/v4/classic/tests/object.test.ts +0 -640
- package/node_modules/zod/src/v4/classic/tests/optional.test.ts +0 -223
- package/node_modules/zod/src/v4/classic/tests/partial.test.ts +0 -427
- package/node_modules/zod/src/v4/classic/tests/pickomit.test.ts +0 -211
- package/node_modules/zod/src/v4/classic/tests/pipe.test.ts +0 -101
- package/node_modules/zod/src/v4/classic/tests/prefault.test.ts +0 -74
- package/node_modules/zod/src/v4/classic/tests/preprocess.test.ts +0 -282
- package/node_modules/zod/src/v4/classic/tests/primitive.test.ts +0 -175
- package/node_modules/zod/src/v4/classic/tests/promise.test.ts +0 -81
- package/node_modules/zod/src/v4/classic/tests/prototypes.test.ts +0 -23
- package/node_modules/zod/src/v4/classic/tests/readonly.test.ts +0 -252
- package/node_modules/zod/src/v4/classic/tests/record.test.ts +0 -632
- package/node_modules/zod/src/v4/classic/tests/recursive-types.test.ts +0 -582
- package/node_modules/zod/src/v4/classic/tests/refine.test.ts +0 -570
- package/node_modules/zod/src/v4/classic/tests/registries.test.ts +0 -243
- package/node_modules/zod/src/v4/classic/tests/set.test.ts +0 -181
- package/node_modules/zod/src/v4/classic/tests/standard-schema.test.ts +0 -134
- package/node_modules/zod/src/v4/classic/tests/string-formats.test.ts +0 -125
- package/node_modules/zod/src/v4/classic/tests/string.test.ts +0 -1175
- package/node_modules/zod/src/v4/classic/tests/stringbool.test.ts +0 -106
- package/node_modules/zod/src/v4/classic/tests/template-literal.test.ts +0 -771
- package/node_modules/zod/src/v4/classic/tests/to-json-schema-methods.test.ts +0 -438
- package/node_modules/zod/src/v4/classic/tests/to-json-schema.test.ts +0 -2990
- package/node_modules/zod/src/v4/classic/tests/transform.test.ts +0 -361
- package/node_modules/zod/src/v4/classic/tests/tuple.test.ts +0 -183
- package/node_modules/zod/src/v4/classic/tests/union.test.ts +0 -219
- package/node_modules/zod/src/v4/classic/tests/url.test.ts +0 -13
- package/node_modules/zod/src/v4/classic/tests/validations.test.ts +0 -283
- package/node_modules/zod/src/v4/classic/tests/void.test.ts +0 -12
- package/node_modules/zod/src/v4/core/api.ts +0 -1798
- package/node_modules/zod/src/v4/core/checks.ts +0 -1293
- package/node_modules/zod/src/v4/core/config.ts +0 -15
- package/node_modules/zod/src/v4/core/core.ts +0 -138
- package/node_modules/zod/src/v4/core/doc.ts +0 -44
- package/node_modules/zod/src/v4/core/errors.ts +0 -448
- package/node_modules/zod/src/v4/core/index.ts +0 -16
- package/node_modules/zod/src/v4/core/json-schema-generator.ts +0 -126
- package/node_modules/zod/src/v4/core/json-schema-processors.ts +0 -667
- package/node_modules/zod/src/v4/core/json-schema.ts +0 -147
- package/node_modules/zod/src/v4/core/parse.ts +0 -195
- package/node_modules/zod/src/v4/core/regexes.ts +0 -183
- package/node_modules/zod/src/v4/core/registries.ts +0 -105
- package/node_modules/zod/src/v4/core/schemas.ts +0 -4538
- package/node_modules/zod/src/v4/core/standard-schema.ts +0 -159
- package/node_modules/zod/src/v4/core/tests/extend.test.ts +0 -59
- package/node_modules/zod/src/v4/core/tests/index.test.ts +0 -46
- package/node_modules/zod/src/v4/core/tests/locales/be.test.ts +0 -124
- package/node_modules/zod/src/v4/core/tests/locales/en.test.ts +0 -22
- package/node_modules/zod/src/v4/core/tests/locales/es.test.ts +0 -181
- package/node_modules/zod/src/v4/core/tests/locales/he.test.ts +0 -379
- package/node_modules/zod/src/v4/core/tests/locales/nl.test.ts +0 -46
- package/node_modules/zod/src/v4/core/tests/locales/ru.test.ts +0 -128
- package/node_modules/zod/src/v4/core/tests/locales/tr.test.ts +0 -69
- package/node_modules/zod/src/v4/core/tests/locales/uz.test.ts +0 -83
- package/node_modules/zod/src/v4/core/tests/record-constructor.test.ts +0 -67
- package/node_modules/zod/src/v4/core/tests/recursive-tuples.test.ts +0 -45
- package/node_modules/zod/src/v4/core/to-json-schema.ts +0 -613
- package/node_modules/zod/src/v4/core/util.ts +0 -966
- package/node_modules/zod/src/v4/core/versions.ts +0 -5
- package/node_modules/zod/src/v4/core/zsf.ts +0 -323
- package/node_modules/zod/src/v4/index.ts +0 -4
- package/node_modules/zod/src/v4/locales/ar.ts +0 -115
- package/node_modules/zod/src/v4/locales/az.ts +0 -111
- package/node_modules/zod/src/v4/locales/be.ts +0 -176
- package/node_modules/zod/src/v4/locales/bg.ts +0 -128
- package/node_modules/zod/src/v4/locales/ca.ts +0 -116
- package/node_modules/zod/src/v4/locales/cs.ts +0 -118
- package/node_modules/zod/src/v4/locales/da.ts +0 -123
- package/node_modules/zod/src/v4/locales/de.ts +0 -116
- package/node_modules/zod/src/v4/locales/en.ts +0 -119
- package/node_modules/zod/src/v4/locales/eo.ts +0 -118
- package/node_modules/zod/src/v4/locales/es.ts +0 -141
- package/node_modules/zod/src/v4/locales/fa.ts +0 -126
- package/node_modules/zod/src/v4/locales/fi.ts +0 -121
- package/node_modules/zod/src/v4/locales/fr-CA.ts +0 -116
- package/node_modules/zod/src/v4/locales/fr.ts +0 -116
- package/node_modules/zod/src/v4/locales/he.ts +0 -246
- package/node_modules/zod/src/v4/locales/hu.ts +0 -117
- package/node_modules/zod/src/v4/locales/hy.ts +0 -164
- package/node_modules/zod/src/v4/locales/id.ts +0 -115
- package/node_modules/zod/src/v4/locales/index.ts +0 -49
- package/node_modules/zod/src/v4/locales/is.ts +0 -119
- package/node_modules/zod/src/v4/locales/it.ts +0 -116
- package/node_modules/zod/src/v4/locales/ja.ts +0 -114
- package/node_modules/zod/src/v4/locales/ka.ts +0 -123
- package/node_modules/zod/src/v4/locales/kh.ts +0 -7
- package/node_modules/zod/src/v4/locales/km.ts +0 -119
- package/node_modules/zod/src/v4/locales/ko.ts +0 -121
- package/node_modules/zod/src/v4/locales/lt.ts +0 -239
- package/node_modules/zod/src/v4/locales/mk.ts +0 -118
- package/node_modules/zod/src/v4/locales/ms.ts +0 -115
- package/node_modules/zod/src/v4/locales/nl.ts +0 -121
- package/node_modules/zod/src/v4/locales/no.ts +0 -116
- package/node_modules/zod/src/v4/locales/ota.ts +0 -117
- package/node_modules/zod/src/v4/locales/pl.ts +0 -118
- package/node_modules/zod/src/v4/locales/ps.ts +0 -126
- package/node_modules/zod/src/v4/locales/pt.ts +0 -116
- package/node_modules/zod/src/v4/locales/ru.ts +0 -176
- package/node_modules/zod/src/v4/locales/sl.ts +0 -118
- package/node_modules/zod/src/v4/locales/sv.ts +0 -119
- package/node_modules/zod/src/v4/locales/ta.ts +0 -118
- package/node_modules/zod/src/v4/locales/th.ts +0 -119
- package/node_modules/zod/src/v4/locales/tr.ts +0 -111
- package/node_modules/zod/src/v4/locales/ua.ts +0 -7
- package/node_modules/zod/src/v4/locales/uk.ts +0 -117
- package/node_modules/zod/src/v4/locales/ur.ts +0 -119
- package/node_modules/zod/src/v4/locales/uz.ts +0 -116
- package/node_modules/zod/src/v4/locales/vi.ts +0 -117
- package/node_modules/zod/src/v4/locales/yo.ts +0 -124
- package/node_modules/zod/src/v4/locales/zh-CN.ts +0 -116
- package/node_modules/zod/src/v4/locales/zh-TW.ts +0 -115
- package/node_modules/zod/src/v4/mini/checks.ts +0 -32
- package/node_modules/zod/src/v4/mini/coerce.ts +0 -27
- package/node_modules/zod/src/v4/mini/external.ts +0 -40
- package/node_modules/zod/src/v4/mini/index.ts +0 -3
- package/node_modules/zod/src/v4/mini/iso.ts +0 -66
- package/node_modules/zod/src/v4/mini/parse.ts +0 -14
- package/node_modules/zod/src/v4/mini/schemas.ts +0 -1916
- package/node_modules/zod/src/v4/mini/tests/apply.test.ts +0 -24
- package/node_modules/zod/src/v4/mini/tests/assignability.test.ts +0 -129
- package/node_modules/zod/src/v4/mini/tests/brand.test.ts +0 -94
- package/node_modules/zod/src/v4/mini/tests/checks.test.ts +0 -144
- package/node_modules/zod/src/v4/mini/tests/codec.test.ts +0 -529
- package/node_modules/zod/src/v4/mini/tests/computed.test.ts +0 -36
- package/node_modules/zod/src/v4/mini/tests/error.test.ts +0 -22
- package/node_modules/zod/src/v4/mini/tests/functions.test.ts +0 -5
- package/node_modules/zod/src/v4/mini/tests/index.test.ts +0 -963
- package/node_modules/zod/src/v4/mini/tests/number.test.ts +0 -95
- package/node_modules/zod/src/v4/mini/tests/object.test.ts +0 -227
- package/node_modules/zod/src/v4/mini/tests/prototypes.test.ts +0 -43
- package/node_modules/zod/src/v4/mini/tests/recursive-types.test.ts +0 -275
- package/node_modules/zod/src/v4/mini/tests/standard-schema.test.ts +0 -50
- package/node_modules/zod/src/v4/mini/tests/string.test.ts +0 -347
- package/node_modules/zod/src/v4-mini/index.ts +0 -3
- package/node_modules/zod/v3/ZodError.cjs +0 -138
- package/node_modules/zod/v3/ZodError.d.cts +0 -164
- package/node_modules/zod/v3/ZodError.d.ts +0 -164
- package/node_modules/zod/v3/ZodError.js +0 -133
- package/node_modules/zod/v3/errors.cjs +0 -17
- package/node_modules/zod/v3/errors.d.cts +0 -5
- package/node_modules/zod/v3/errors.d.ts +0 -5
- package/node_modules/zod/v3/errors.js +0 -9
- package/node_modules/zod/v3/external.cjs +0 -22
- package/node_modules/zod/v3/external.d.cts +0 -6
- package/node_modules/zod/v3/external.d.ts +0 -6
- package/node_modules/zod/v3/external.js +0 -6
- package/node_modules/zod/v3/helpers/enumUtil.cjs +0 -2
- package/node_modules/zod/v3/helpers/enumUtil.d.cts +0 -8
- package/node_modules/zod/v3/helpers/enumUtil.d.ts +0 -8
- package/node_modules/zod/v3/helpers/enumUtil.js +0 -1
- package/node_modules/zod/v3/helpers/errorUtil.cjs +0 -9
- package/node_modules/zod/v3/helpers/errorUtil.d.cts +0 -9
- package/node_modules/zod/v3/helpers/errorUtil.d.ts +0 -9
- package/node_modules/zod/v3/helpers/errorUtil.js +0 -6
- package/node_modules/zod/v3/helpers/parseUtil.cjs +0 -124
- package/node_modules/zod/v3/helpers/parseUtil.d.cts +0 -78
- package/node_modules/zod/v3/helpers/parseUtil.d.ts +0 -78
- package/node_modules/zod/v3/helpers/parseUtil.js +0 -109
- package/node_modules/zod/v3/helpers/partialUtil.cjs +0 -2
- package/node_modules/zod/v3/helpers/partialUtil.d.cts +0 -8
- package/node_modules/zod/v3/helpers/partialUtil.d.ts +0 -8
- package/node_modules/zod/v3/helpers/partialUtil.js +0 -1
- package/node_modules/zod/v3/helpers/typeAliases.cjs +0 -2
- package/node_modules/zod/v3/helpers/typeAliases.d.cts +0 -2
- package/node_modules/zod/v3/helpers/typeAliases.d.ts +0 -2
- package/node_modules/zod/v3/helpers/typeAliases.js +0 -1
- package/node_modules/zod/v3/helpers/util.cjs +0 -137
- package/node_modules/zod/v3/helpers/util.d.cts +0 -85
- package/node_modules/zod/v3/helpers/util.d.ts +0 -85
- package/node_modules/zod/v3/helpers/util.js +0 -133
- package/node_modules/zod/v3/index.cjs +0 -33
- package/node_modules/zod/v3/index.d.cts +0 -4
- package/node_modules/zod/v3/index.d.ts +0 -4
- package/node_modules/zod/v3/index.js +0 -4
- package/node_modules/zod/v3/locales/en.cjs +0 -112
- package/node_modules/zod/v3/locales/en.d.cts +0 -3
- package/node_modules/zod/v3/locales/en.d.ts +0 -3
- package/node_modules/zod/v3/locales/en.js +0 -109
- package/node_modules/zod/v3/package.json +0 -6
- package/node_modules/zod/v3/standard-schema.cjs +0 -2
- package/node_modules/zod/v3/standard-schema.d.cts +0 -102
- package/node_modules/zod/v3/standard-schema.d.ts +0 -102
- package/node_modules/zod/v3/standard-schema.js +0 -1
- package/node_modules/zod/v3/types.cjs +0 -3777
- package/node_modules/zod/v3/types.d.cts +0 -1034
- package/node_modules/zod/v3/types.d.ts +0 -1034
- package/node_modules/zod/v3/types.js +0 -3695
- package/node_modules/zod/v4/classic/checks.cjs +0 -33
- package/node_modules/zod/v4/classic/checks.d.cts +0 -1
- package/node_modules/zod/v4/classic/checks.d.ts +0 -1
- package/node_modules/zod/v4/classic/checks.js +0 -1
- package/node_modules/zod/v4/classic/coerce.cjs +0 -47
- package/node_modules/zod/v4/classic/coerce.d.cts +0 -17
- package/node_modules/zod/v4/classic/coerce.d.ts +0 -17
- package/node_modules/zod/v4/classic/coerce.js +0 -17
- package/node_modules/zod/v4/classic/compat.cjs +0 -61
- package/node_modules/zod/v4/classic/compat.d.cts +0 -50
- package/node_modules/zod/v4/classic/compat.d.ts +0 -50
- package/node_modules/zod/v4/classic/compat.js +0 -31
- package/node_modules/zod/v4/classic/errors.cjs +0 -74
- package/node_modules/zod/v4/classic/errors.d.cts +0 -30
- package/node_modules/zod/v4/classic/errors.d.ts +0 -30
- package/node_modules/zod/v4/classic/errors.js +0 -48
- package/node_modules/zod/v4/classic/external.cjs +0 -73
- package/node_modules/zod/v4/classic/external.d.cts +0 -15
- package/node_modules/zod/v4/classic/external.d.ts +0 -15
- package/node_modules/zod/v4/classic/external.js +0 -20
- package/node_modules/zod/v4/classic/from-json-schema.cjs +0 -610
- package/node_modules/zod/v4/classic/from-json-schema.d.cts +0 -12
- package/node_modules/zod/v4/classic/from-json-schema.d.ts +0 -12
- package/node_modules/zod/v4/classic/from-json-schema.js +0 -584
- package/node_modules/zod/v4/classic/index.cjs +0 -33
- package/node_modules/zod/v4/classic/index.d.cts +0 -4
- package/node_modules/zod/v4/classic/index.d.ts +0 -4
- package/node_modules/zod/v4/classic/index.js +0 -4
- package/node_modules/zod/v4/classic/iso.cjs +0 -60
- package/node_modules/zod/v4/classic/iso.d.cts +0 -22
- package/node_modules/zod/v4/classic/iso.d.ts +0 -22
- package/node_modules/zod/v4/classic/iso.js +0 -30
- package/node_modules/zod/v4/classic/package.json +0 -6
- package/node_modules/zod/v4/classic/parse.cjs +0 -41
- package/node_modules/zod/v4/classic/parse.d.cts +0 -31
- package/node_modules/zod/v4/classic/parse.d.ts +0 -31
- package/node_modules/zod/v4/classic/parse.js +0 -15
- package/node_modules/zod/v4/classic/schemas.cjs +0 -1272
- package/node_modules/zod/v4/classic/schemas.d.cts +0 -739
- package/node_modules/zod/v4/classic/schemas.d.ts +0 -739
- package/node_modules/zod/v4/classic/schemas.js +0 -1157
- package/node_modules/zod/v4/core/api.cjs +0 -1222
- package/node_modules/zod/v4/core/api.d.cts +0 -304
- package/node_modules/zod/v4/core/api.d.ts +0 -304
- package/node_modules/zod/v4/core/api.js +0 -1082
- package/node_modules/zod/v4/core/checks.cjs +0 -601
- package/node_modules/zod/v4/core/checks.d.cts +0 -278
- package/node_modules/zod/v4/core/checks.d.ts +0 -278
- package/node_modules/zod/v4/core/checks.js +0 -575
- package/node_modules/zod/v4/core/core.cjs +0 -83
- package/node_modules/zod/v4/core/core.d.cts +0 -70
- package/node_modules/zod/v4/core/core.d.ts +0 -70
- package/node_modules/zod/v4/core/core.js +0 -76
- package/node_modules/zod/v4/core/doc.cjs +0 -39
- package/node_modules/zod/v4/core/doc.d.cts +0 -14
- package/node_modules/zod/v4/core/doc.d.ts +0 -14
- package/node_modules/zod/v4/core/doc.js +0 -35
- package/node_modules/zod/v4/core/errors.cjs +0 -213
- package/node_modules/zod/v4/core/errors.d.cts +0 -220
- package/node_modules/zod/v4/core/errors.d.ts +0 -220
- package/node_modules/zod/v4/core/errors.js +0 -182
- package/node_modules/zod/v4/core/index.cjs +0 -47
- package/node_modules/zod/v4/core/index.d.cts +0 -16
- package/node_modules/zod/v4/core/index.d.ts +0 -16
- package/node_modules/zod/v4/core/index.js +0 -16
- package/node_modules/zod/v4/core/json-schema-generator.cjs +0 -99
- package/node_modules/zod/v4/core/json-schema-generator.d.cts +0 -65
- package/node_modules/zod/v4/core/json-schema-generator.d.ts +0 -65
- package/node_modules/zod/v4/core/json-schema-generator.js +0 -95
- package/node_modules/zod/v4/core/json-schema-processors.cjs +0 -648
- package/node_modules/zod/v4/core/json-schema-processors.d.cts +0 -49
- package/node_modules/zod/v4/core/json-schema-processors.d.ts +0 -49
- package/node_modules/zod/v4/core/json-schema-processors.js +0 -605
- package/node_modules/zod/v4/core/json-schema.cjs +0 -2
- package/node_modules/zod/v4/core/json-schema.d.cts +0 -88
- package/node_modules/zod/v4/core/json-schema.d.ts +0 -88
- package/node_modules/zod/v4/core/json-schema.js +0 -1
- package/node_modules/zod/v4/core/package.json +0 -6
- package/node_modules/zod/v4/core/parse.cjs +0 -131
- package/node_modules/zod/v4/core/parse.d.cts +0 -49
- package/node_modules/zod/v4/core/parse.d.ts +0 -49
- package/node_modules/zod/v4/core/parse.js +0 -93
- package/node_modules/zod/v4/core/regexes.cjs +0 -166
- package/node_modules/zod/v4/core/regexes.d.cts +0 -79
- package/node_modules/zod/v4/core/regexes.d.ts +0 -79
- package/node_modules/zod/v4/core/regexes.js +0 -133
- package/node_modules/zod/v4/core/registries.cjs +0 -56
- package/node_modules/zod/v4/core/registries.d.cts +0 -35
- package/node_modules/zod/v4/core/registries.d.ts +0 -35
- package/node_modules/zod/v4/core/registries.js +0 -51
- package/node_modules/zod/v4/core/schemas.cjs +0 -2124
- package/node_modules/zod/v4/core/schemas.d.cts +0 -1146
- package/node_modules/zod/v4/core/schemas.d.ts +0 -1146
- package/node_modules/zod/v4/core/schemas.js +0 -2093
- package/node_modules/zod/v4/core/standard-schema.cjs +0 -2
- package/node_modules/zod/v4/core/standard-schema.d.cts +0 -126
- package/node_modules/zod/v4/core/standard-schema.d.ts +0 -126
- package/node_modules/zod/v4/core/standard-schema.js +0 -1
- package/node_modules/zod/v4/core/to-json-schema.cjs +0 -446
- package/node_modules/zod/v4/core/to-json-schema.d.cts +0 -114
- package/node_modules/zod/v4/core/to-json-schema.d.ts +0 -114
- package/node_modules/zod/v4/core/to-json-schema.js +0 -437
- package/node_modules/zod/v4/core/util.cjs +0 -710
- package/node_modules/zod/v4/core/util.d.cts +0 -199
- package/node_modules/zod/v4/core/util.d.ts +0 -199
- package/node_modules/zod/v4/core/util.js +0 -651
- package/node_modules/zod/v4/core/versions.cjs +0 -8
- package/node_modules/zod/v4/core/versions.d.cts +0 -5
- package/node_modules/zod/v4/core/versions.d.ts +0 -5
- package/node_modules/zod/v4/core/versions.js +0 -5
- package/node_modules/zod/v4/index.cjs +0 -22
- package/node_modules/zod/v4/index.d.cts +0 -3
- package/node_modules/zod/v4/index.d.ts +0 -3
- package/node_modules/zod/v4/index.js +0 -3
- package/node_modules/zod/v4/locales/ar.cjs +0 -133
- package/node_modules/zod/v4/locales/ar.d.cts +0 -5
- package/node_modules/zod/v4/locales/ar.d.ts +0 -4
- package/node_modules/zod/v4/locales/ar.js +0 -106
- package/node_modules/zod/v4/locales/az.cjs +0 -132
- package/node_modules/zod/v4/locales/az.d.cts +0 -5
- package/node_modules/zod/v4/locales/az.d.ts +0 -4
- package/node_modules/zod/v4/locales/az.js +0 -105
- package/node_modules/zod/v4/locales/be.cjs +0 -183
- package/node_modules/zod/v4/locales/be.d.cts +0 -5
- package/node_modules/zod/v4/locales/be.d.ts +0 -4
- package/node_modules/zod/v4/locales/be.js +0 -156
- package/node_modules/zod/v4/locales/bg.cjs +0 -147
- package/node_modules/zod/v4/locales/bg.d.cts +0 -5
- package/node_modules/zod/v4/locales/bg.d.ts +0 -4
- package/node_modules/zod/v4/locales/bg.js +0 -120
- package/node_modules/zod/v4/locales/ca.cjs +0 -134
- package/node_modules/zod/v4/locales/ca.d.cts +0 -5
- package/node_modules/zod/v4/locales/ca.d.ts +0 -4
- package/node_modules/zod/v4/locales/ca.js +0 -107
- package/node_modules/zod/v4/locales/cs.cjs +0 -138
- package/node_modules/zod/v4/locales/cs.d.cts +0 -5
- package/node_modules/zod/v4/locales/cs.d.ts +0 -4
- package/node_modules/zod/v4/locales/cs.js +0 -111
- package/node_modules/zod/v4/locales/da.cjs +0 -142
- package/node_modules/zod/v4/locales/da.d.cts +0 -5
- package/node_modules/zod/v4/locales/da.d.ts +0 -4
- package/node_modules/zod/v4/locales/da.js +0 -115
- package/node_modules/zod/v4/locales/de.cjs +0 -135
- package/node_modules/zod/v4/locales/de.d.cts +0 -5
- package/node_modules/zod/v4/locales/de.d.ts +0 -4
- package/node_modules/zod/v4/locales/de.js +0 -108
- package/node_modules/zod/v4/locales/en.cjs +0 -136
- package/node_modules/zod/v4/locales/en.d.cts +0 -5
- package/node_modules/zod/v4/locales/en.d.ts +0 -4
- package/node_modules/zod/v4/locales/en.js +0 -109
- package/node_modules/zod/v4/locales/eo.cjs +0 -136
- package/node_modules/zod/v4/locales/eo.d.cts +0 -5
- package/node_modules/zod/v4/locales/eo.d.ts +0 -4
- package/node_modules/zod/v4/locales/eo.js +0 -109
- package/node_modules/zod/v4/locales/es.cjs +0 -159
- package/node_modules/zod/v4/locales/es.d.cts +0 -5
- package/node_modules/zod/v4/locales/es.d.ts +0 -4
- package/node_modules/zod/v4/locales/es.js +0 -132
- package/node_modules/zod/v4/locales/fa.cjs +0 -141
- package/node_modules/zod/v4/locales/fa.d.cts +0 -5
- package/node_modules/zod/v4/locales/fa.d.ts +0 -4
- package/node_modules/zod/v4/locales/fa.js +0 -114
- package/node_modules/zod/v4/locales/fi.cjs +0 -139
- package/node_modules/zod/v4/locales/fi.d.cts +0 -5
- package/node_modules/zod/v4/locales/fi.d.ts +0 -4
- package/node_modules/zod/v4/locales/fi.js +0 -112
- package/node_modules/zod/v4/locales/fr-CA.cjs +0 -134
- package/node_modules/zod/v4/locales/fr-CA.d.cts +0 -5
- package/node_modules/zod/v4/locales/fr-CA.d.ts +0 -4
- package/node_modules/zod/v4/locales/fr-CA.js +0 -107
- package/node_modules/zod/v4/locales/fr.cjs +0 -135
- package/node_modules/zod/v4/locales/fr.d.cts +0 -5
- package/node_modules/zod/v4/locales/fr.d.ts +0 -4
- package/node_modules/zod/v4/locales/fr.js +0 -108
- package/node_modules/zod/v4/locales/he.cjs +0 -241
- package/node_modules/zod/v4/locales/he.d.cts +0 -5
- package/node_modules/zod/v4/locales/he.d.ts +0 -4
- package/node_modules/zod/v4/locales/he.js +0 -214
- package/node_modules/zod/v4/locales/hu.cjs +0 -135
- package/node_modules/zod/v4/locales/hu.d.cts +0 -5
- package/node_modules/zod/v4/locales/hu.d.ts +0 -4
- package/node_modules/zod/v4/locales/hu.js +0 -108
- package/node_modules/zod/v4/locales/hy.cjs +0 -174
- package/node_modules/zod/v4/locales/hy.d.cts +0 -5
- package/node_modules/zod/v4/locales/hy.d.ts +0 -4
- package/node_modules/zod/v4/locales/hy.js +0 -147
- package/node_modules/zod/v4/locales/id.cjs +0 -133
- package/node_modules/zod/v4/locales/id.d.cts +0 -5
- package/node_modules/zod/v4/locales/id.d.ts +0 -4
- package/node_modules/zod/v4/locales/id.js +0 -106
- package/node_modules/zod/v4/locales/index.cjs +0 -104
- package/node_modules/zod/v4/locales/index.d.cts +0 -49
- package/node_modules/zod/v4/locales/index.d.ts +0 -49
- package/node_modules/zod/v4/locales/index.js +0 -49
- package/node_modules/zod/v4/locales/is.cjs +0 -136
- package/node_modules/zod/v4/locales/is.d.cts +0 -5
- package/node_modules/zod/v4/locales/is.d.ts +0 -4
- package/node_modules/zod/v4/locales/is.js +0 -109
- package/node_modules/zod/v4/locales/it.cjs +0 -135
- package/node_modules/zod/v4/locales/it.d.cts +0 -5
- package/node_modules/zod/v4/locales/it.d.ts +0 -4
- package/node_modules/zod/v4/locales/it.js +0 -108
- package/node_modules/zod/v4/locales/ja.cjs +0 -134
- package/node_modules/zod/v4/locales/ja.d.cts +0 -5
- package/node_modules/zod/v4/locales/ja.d.ts +0 -4
- package/node_modules/zod/v4/locales/ja.js +0 -107
- package/node_modules/zod/v4/locales/ka.cjs +0 -139
- package/node_modules/zod/v4/locales/ka.d.cts +0 -5
- package/node_modules/zod/v4/locales/ka.d.ts +0 -4
- package/node_modules/zod/v4/locales/ka.js +0 -112
- package/node_modules/zod/v4/locales/kh.cjs +0 -12
- package/node_modules/zod/v4/locales/kh.d.cts +0 -5
- package/node_modules/zod/v4/locales/kh.d.ts +0 -5
- package/node_modules/zod/v4/locales/kh.js +0 -5
- package/node_modules/zod/v4/locales/km.cjs +0 -137
- package/node_modules/zod/v4/locales/km.d.cts +0 -5
- package/node_modules/zod/v4/locales/km.d.ts +0 -4
- package/node_modules/zod/v4/locales/km.js +0 -110
- package/node_modules/zod/v4/locales/ko.cjs +0 -138
- package/node_modules/zod/v4/locales/ko.d.cts +0 -5
- package/node_modules/zod/v4/locales/ko.d.ts +0 -4
- package/node_modules/zod/v4/locales/ko.js +0 -111
- package/node_modules/zod/v4/locales/lt.cjs +0 -230
- package/node_modules/zod/v4/locales/lt.d.cts +0 -5
- package/node_modules/zod/v4/locales/lt.d.ts +0 -4
- package/node_modules/zod/v4/locales/lt.js +0 -203
- package/node_modules/zod/v4/locales/mk.cjs +0 -136
- package/node_modules/zod/v4/locales/mk.d.cts +0 -5
- package/node_modules/zod/v4/locales/mk.d.ts +0 -4
- package/node_modules/zod/v4/locales/mk.js +0 -109
- package/node_modules/zod/v4/locales/ms.cjs +0 -134
- package/node_modules/zod/v4/locales/ms.d.cts +0 -5
- package/node_modules/zod/v4/locales/ms.d.ts +0 -4
- package/node_modules/zod/v4/locales/ms.js +0 -107
- package/node_modules/zod/v4/locales/nl.cjs +0 -137
- package/node_modules/zod/v4/locales/nl.d.cts +0 -5
- package/node_modules/zod/v4/locales/nl.d.ts +0 -4
- package/node_modules/zod/v4/locales/nl.js +0 -110
- package/node_modules/zod/v4/locales/no.cjs +0 -135
- package/node_modules/zod/v4/locales/no.d.cts +0 -5
- package/node_modules/zod/v4/locales/no.d.ts +0 -4
- package/node_modules/zod/v4/locales/no.js +0 -108
- package/node_modules/zod/v4/locales/ota.cjs +0 -136
- package/node_modules/zod/v4/locales/ota.d.cts +0 -5
- package/node_modules/zod/v4/locales/ota.d.ts +0 -4
- package/node_modules/zod/v4/locales/ota.js +0 -109
- package/node_modules/zod/v4/locales/package.json +0 -6
- package/node_modules/zod/v4/locales/pl.cjs +0 -136
- package/node_modules/zod/v4/locales/pl.d.cts +0 -5
- package/node_modules/zod/v4/locales/pl.d.ts +0 -4
- package/node_modules/zod/v4/locales/pl.js +0 -109
- package/node_modules/zod/v4/locales/ps.cjs +0 -141
- package/node_modules/zod/v4/locales/ps.d.cts +0 -5
- package/node_modules/zod/v4/locales/ps.d.ts +0 -4
- package/node_modules/zod/v4/locales/ps.js +0 -114
- package/node_modules/zod/v4/locales/pt.cjs +0 -135
- package/node_modules/zod/v4/locales/pt.d.cts +0 -5
- package/node_modules/zod/v4/locales/pt.d.ts +0 -4
- package/node_modules/zod/v4/locales/pt.js +0 -108
- package/node_modules/zod/v4/locales/ru.cjs +0 -183
- package/node_modules/zod/v4/locales/ru.d.cts +0 -5
- package/node_modules/zod/v4/locales/ru.d.ts +0 -4
- package/node_modules/zod/v4/locales/ru.js +0 -156
- package/node_modules/zod/v4/locales/sl.cjs +0 -136
- package/node_modules/zod/v4/locales/sl.d.cts +0 -5
- package/node_modules/zod/v4/locales/sl.d.ts +0 -4
- package/node_modules/zod/v4/locales/sl.js +0 -109
- package/node_modules/zod/v4/locales/sv.cjs +0 -137
- package/node_modules/zod/v4/locales/sv.d.cts +0 -5
- package/node_modules/zod/v4/locales/sv.d.ts +0 -4
- package/node_modules/zod/v4/locales/sv.js +0 -110
- package/node_modules/zod/v4/locales/ta.cjs +0 -137
- package/node_modules/zod/v4/locales/ta.d.cts +0 -5
- package/node_modules/zod/v4/locales/ta.d.ts +0 -4
- package/node_modules/zod/v4/locales/ta.js +0 -110
- package/node_modules/zod/v4/locales/th.cjs +0 -137
- package/node_modules/zod/v4/locales/th.d.cts +0 -5
- package/node_modules/zod/v4/locales/th.d.ts +0 -4
- package/node_modules/zod/v4/locales/th.js +0 -110
- package/node_modules/zod/v4/locales/tr.cjs +0 -132
- package/node_modules/zod/v4/locales/tr.d.cts +0 -5
- package/node_modules/zod/v4/locales/tr.d.ts +0 -4
- package/node_modules/zod/v4/locales/tr.js +0 -105
- package/node_modules/zod/v4/locales/ua.cjs +0 -12
- package/node_modules/zod/v4/locales/ua.d.cts +0 -5
- package/node_modules/zod/v4/locales/ua.d.ts +0 -5
- package/node_modules/zod/v4/locales/ua.js +0 -5
- package/node_modules/zod/v4/locales/uk.cjs +0 -135
- package/node_modules/zod/v4/locales/uk.d.cts +0 -5
- package/node_modules/zod/v4/locales/uk.d.ts +0 -4
- package/node_modules/zod/v4/locales/uk.js +0 -108
- package/node_modules/zod/v4/locales/ur.cjs +0 -137
- package/node_modules/zod/v4/locales/ur.d.cts +0 -5
- package/node_modules/zod/v4/locales/ur.d.ts +0 -4
- package/node_modules/zod/v4/locales/ur.js +0 -110
- package/node_modules/zod/v4/locales/uz.cjs +0 -136
- package/node_modules/zod/v4/locales/uz.d.cts +0 -5
- package/node_modules/zod/v4/locales/uz.d.ts +0 -4
- package/node_modules/zod/v4/locales/uz.js +0 -109
- package/node_modules/zod/v4/locales/vi.cjs +0 -135
- package/node_modules/zod/v4/locales/vi.d.cts +0 -5
- package/node_modules/zod/v4/locales/vi.d.ts +0 -4
- package/node_modules/zod/v4/locales/vi.js +0 -108
- package/node_modules/zod/v4/locales/yo.cjs +0 -134
- package/node_modules/zod/v4/locales/yo.d.cts +0 -5
- package/node_modules/zod/v4/locales/yo.d.ts +0 -4
- package/node_modules/zod/v4/locales/yo.js +0 -107
- package/node_modules/zod/v4/locales/zh-CN.cjs +0 -136
- package/node_modules/zod/v4/locales/zh-CN.d.cts +0 -5
- package/node_modules/zod/v4/locales/zh-CN.d.ts +0 -4
- package/node_modules/zod/v4/locales/zh-CN.js +0 -109
- package/node_modules/zod/v4/locales/zh-TW.cjs +0 -134
- package/node_modules/zod/v4/locales/zh-TW.d.cts +0 -5
- package/node_modules/zod/v4/locales/zh-TW.d.ts +0 -4
- package/node_modules/zod/v4/locales/zh-TW.js +0 -107
- package/node_modules/zod/v4/mini/checks.cjs +0 -34
- package/node_modules/zod/v4/mini/checks.d.cts +0 -1
- package/node_modules/zod/v4/mini/checks.d.ts +0 -1
- package/node_modules/zod/v4/mini/checks.js +0 -1
- package/node_modules/zod/v4/mini/coerce.cjs +0 -52
- package/node_modules/zod/v4/mini/coerce.d.cts +0 -7
- package/node_modules/zod/v4/mini/coerce.d.ts +0 -7
- package/node_modules/zod/v4/mini/coerce.js +0 -22
- package/node_modules/zod/v4/mini/external.cjs +0 -63
- package/node_modules/zod/v4/mini/external.d.cts +0 -12
- package/node_modules/zod/v4/mini/external.d.ts +0 -12
- package/node_modules/zod/v4/mini/external.js +0 -14
- package/node_modules/zod/v4/mini/index.cjs +0 -32
- package/node_modules/zod/v4/mini/index.d.cts +0 -3
- package/node_modules/zod/v4/mini/index.d.ts +0 -3
- package/node_modules/zod/v4/mini/index.js +0 -3
- package/node_modules/zod/v4/mini/iso.cjs +0 -64
- package/node_modules/zod/v4/mini/iso.d.cts +0 -22
- package/node_modules/zod/v4/mini/iso.d.ts +0 -22
- package/node_modules/zod/v4/mini/iso.js +0 -34
- package/node_modules/zod/v4/mini/package.json +0 -6
- package/node_modules/zod/v4/mini/parse.cjs +0 -16
- package/node_modules/zod/v4/mini/parse.d.cts +0 -1
- package/node_modules/zod/v4/mini/parse.d.ts +0 -1
- package/node_modules/zod/v4/mini/parse.js +0 -1
- package/node_modules/zod/v4/mini/schemas.cjs +0 -1046
- package/node_modules/zod/v4/mini/schemas.d.cts +0 -427
- package/node_modules/zod/v4/mini/schemas.d.ts +0 -427
- package/node_modules/zod/v4/mini/schemas.js +0 -925
- package/node_modules/zod/v4/package.json +0 -6
- package/node_modules/zod/v4-mini/index.cjs +0 -32
- package/node_modules/zod/v4-mini/index.d.cts +0 -3
- package/node_modules/zod/v4-mini/index.d.ts +0 -3
- package/node_modules/zod/v4-mini/index.js +0 -3
- package/node_modules/zod/v4-mini/package.json +0 -6
- package/plugin/dist/index.d.ts +0 -179
- package/plugin/dist/index.d.ts.map +0 -1
- package/plugin/dist/index.js +0 -3209
- package/plugin/dist/index.js.map +0 -1
package/dist/cache.js
DELETED
|
@@ -1,569 +0,0 @@
|
|
|
1
|
-
/**
|
|
2
|
-
* hypermem Cache Layer
|
|
3
|
-
*
|
|
4
|
-
* Drop-in replacement for RedisLayer using SQLite :memory: ATTACH.
|
|
5
|
-
* Same public interface, zero external dependencies, zero TCP overhead.
|
|
6
|
-
*/
|
|
7
|
-
import { DatabaseSync } from 'node:sqlite';
|
|
8
|
-
const DEFAULT_CONFIG = {
|
|
9
|
-
keyPrefix: 'hm:',
|
|
10
|
-
sessionTTL: 14400,
|
|
11
|
-
historyTTL: 86400,
|
|
12
|
-
};
|
|
13
|
-
function now() {
|
|
14
|
-
return Math.floor(Date.now() / 1000);
|
|
15
|
-
}
|
|
16
|
-
export class CacheLayer {
|
|
17
|
-
db = null;
|
|
18
|
-
config;
|
|
19
|
-
_connected = false;
|
|
20
|
-
stmtSetSlot;
|
|
21
|
-
stmtGetSlot;
|
|
22
|
-
stmtSetTopicSlot;
|
|
23
|
-
stmtGetTopicSlot;
|
|
24
|
-
stmtTouchSlots;
|
|
25
|
-
stmtEvictSlots;
|
|
26
|
-
stmtActivateSession;
|
|
27
|
-
stmtDeactivateSession;
|
|
28
|
-
stmtGetActiveSessions;
|
|
29
|
-
stmtSetMeta;
|
|
30
|
-
stmtGetMeta;
|
|
31
|
-
stmtTouchSession;
|
|
32
|
-
stmtGetMaxSeq;
|
|
33
|
-
stmtInsertHistory;
|
|
34
|
-
stmtGetHistory;
|
|
35
|
-
stmtGetHistoryLimit;
|
|
36
|
-
stmtHistoryExists;
|
|
37
|
-
stmtDeleteHistory;
|
|
38
|
-
stmtDeleteOldHistory;
|
|
39
|
-
stmtGetAllHistoryDesc;
|
|
40
|
-
stmtDeleteHistoryBeforeSeq;
|
|
41
|
-
stmtEvictHistory;
|
|
42
|
-
stmtSetWindow;
|
|
43
|
-
stmtGetWindow;
|
|
44
|
-
stmtGetFreshWindowBundle;
|
|
45
|
-
stmtDeleteWindow;
|
|
46
|
-
stmtEvictWindows;
|
|
47
|
-
stmtSetKv;
|
|
48
|
-
stmtGetKv;
|
|
49
|
-
stmtDeleteKv;
|
|
50
|
-
constructor(config) {
|
|
51
|
-
this.config = { ...DEFAULT_CONFIG, ...config };
|
|
52
|
-
}
|
|
53
|
-
async connect(db) {
|
|
54
|
-
if (this._connected)
|
|
55
|
-
return true;
|
|
56
|
-
this.db = db ?? new DatabaseSync(':memory:');
|
|
57
|
-
this.db.exec("ATTACH DATABASE ':memory:' AS cache");
|
|
58
|
-
this.db.exec([
|
|
59
|
-
"CREATE TABLE IF NOT EXISTS cache.slots (agent_id TEXT NOT NULL, session_key TEXT NOT NULL, topic_id TEXT NOT NULL DEFAULT '', slot_name TEXT NOT NULL, value TEXT NOT NULL, expires_at INTEGER NOT NULL, PRIMARY KEY (agent_id, session_key, topic_id, slot_name));",
|
|
60
|
-
"CREATE TABLE IF NOT EXISTS cache.history (agent_id TEXT NOT NULL, session_key TEXT NOT NULL, topic_id TEXT NOT NULL DEFAULT '', seq INTEGER NOT NULL, message TEXT NOT NULL, PRIMARY KEY (agent_id, session_key, topic_id, seq));",
|
|
61
|
-
"CREATE TABLE IF NOT EXISTS cache.sessions (agent_id TEXT NOT NULL, session_key TEXT NOT NULL, meta TEXT, active INTEGER NOT NULL DEFAULT 1, touched_at INTEGER NOT NULL, PRIMARY KEY (agent_id, session_key));",
|
|
62
|
-
"CREATE TABLE IF NOT EXISTS cache.windows (agent_id TEXT NOT NULL, session_key TEXT NOT NULL, topic_id TEXT NOT NULL DEFAULT '', messages TEXT NOT NULL, expires_at INTEGER NOT NULL, PRIMARY KEY (agent_id, session_key, topic_id));",
|
|
63
|
-
"CREATE TABLE IF NOT EXISTS cache.kv (key TEXT PRIMARY KEY, value TEXT NOT NULL, expires_at INTEGER NOT NULL DEFAULT 0);"
|
|
64
|
-
].join(' '));
|
|
65
|
-
this._prepareStatements();
|
|
66
|
-
this._connected = true;
|
|
67
|
-
return true;
|
|
68
|
-
}
|
|
69
|
-
_prepareStatements() {
|
|
70
|
-
const db = this.db;
|
|
71
|
-
this.stmtSetSlot = db.prepare("INSERT OR REPLACE INTO cache.slots (agent_id,session_key,topic_id,slot_name,value,expires_at) VALUES (?,?,'',?,?,?)");
|
|
72
|
-
this.stmtGetSlot = db.prepare("SELECT value FROM cache.slots WHERE agent_id=? AND session_key=? AND topic_id='' AND slot_name=? AND expires_at>?");
|
|
73
|
-
this.stmtSetTopicSlot = db.prepare("INSERT OR REPLACE INTO cache.slots (agent_id,session_key,topic_id,slot_name,value,expires_at) VALUES (?,?,?,?,?,?)");
|
|
74
|
-
this.stmtGetTopicSlot = db.prepare("SELECT value FROM cache.slots WHERE agent_id=? AND session_key=? AND topic_id=? AND slot_name=? AND expires_at>?");
|
|
75
|
-
this.stmtTouchSlots = db.prepare("UPDATE cache.slots SET expires_at=? WHERE agent_id=? AND session_key=? AND topic_id=''");
|
|
76
|
-
this.stmtEvictSlots = db.prepare("DELETE FROM cache.slots WHERE agent_id=? AND session_key=?");
|
|
77
|
-
this.stmtActivateSession = db.prepare("INSERT INTO cache.sessions (agent_id,session_key,meta,active,touched_at) VALUES (?,?,NULL,1,?) ON CONFLICT (agent_id,session_key) DO UPDATE SET active=1,touched_at=excluded.touched_at");
|
|
78
|
-
this.stmtDeactivateSession = db.prepare("UPDATE cache.sessions SET active=0 WHERE agent_id=? AND session_key=?");
|
|
79
|
-
this.stmtGetActiveSessions = db.prepare("SELECT session_key FROM cache.sessions WHERE agent_id=? AND active=1");
|
|
80
|
-
this.stmtSetMeta = db.prepare("INSERT INTO cache.sessions (agent_id,session_key,meta,active,touched_at) VALUES (?,?,?,COALESCE((SELECT active FROM cache.sessions WHERE agent_id=? AND session_key=?),1),?) ON CONFLICT (agent_id,session_key) DO UPDATE SET meta=excluded.meta,touched_at=excluded.touched_at");
|
|
81
|
-
this.stmtGetMeta = db.prepare("SELECT meta FROM cache.sessions WHERE agent_id=? AND session_key=?");
|
|
82
|
-
this.stmtTouchSession = db.prepare("UPDATE cache.sessions SET touched_at=? WHERE agent_id=? AND session_key=?");
|
|
83
|
-
this.stmtGetMaxSeq = db.prepare("SELECT MAX(seq) AS max_seq FROM cache.history WHERE agent_id=? AND session_key=? AND topic_id=?");
|
|
84
|
-
this.stmtInsertHistory = db.prepare("INSERT OR IGNORE INTO cache.history (agent_id,session_key,topic_id,seq,message) VALUES (?,?,?,?,?)");
|
|
85
|
-
this.stmtGetHistory = db.prepare("SELECT message FROM cache.history WHERE agent_id=? AND session_key=? AND topic_id='' ORDER BY seq ASC");
|
|
86
|
-
this.stmtGetHistoryLimit = db.prepare("SELECT message FROM cache.history WHERE agent_id=? AND session_key=? AND topic_id='' AND seq IN (SELECT seq FROM cache.history WHERE agent_id=? AND session_key=? AND topic_id='' ORDER BY seq DESC LIMIT ?) ORDER BY seq ASC");
|
|
87
|
-
this.stmtHistoryExists = db.prepare("SELECT 1 FROM cache.history WHERE agent_id=? AND session_key=? AND topic_id='' LIMIT 1");
|
|
88
|
-
this.stmtDeleteHistory = db.prepare("DELETE FROM cache.history WHERE agent_id=? AND session_key=? AND topic_id=''");
|
|
89
|
-
this.stmtDeleteOldHistory = db.prepare("DELETE FROM cache.history WHERE agent_id=? AND session_key=? AND topic_id='' AND seq NOT IN (SELECT seq FROM cache.history WHERE agent_id=? AND session_key=? AND topic_id='' ORDER BY seq DESC LIMIT ?)");
|
|
90
|
-
this.stmtGetAllHistoryDesc = db.prepare("SELECT seq,message FROM cache.history WHERE agent_id=? AND session_key=? AND topic_id='' ORDER BY seq DESC");
|
|
91
|
-
this.stmtDeleteHistoryBeforeSeq = db.prepare("DELETE FROM cache.history WHERE agent_id=? AND session_key=? AND topic_id='' AND seq<?");
|
|
92
|
-
this.stmtEvictHistory = db.prepare("DELETE FROM cache.history WHERE agent_id=? AND session_key=?");
|
|
93
|
-
this.stmtSetWindow = db.prepare("INSERT OR REPLACE INTO cache.windows (agent_id,session_key,topic_id,messages,expires_at) VALUES (?,?,?,?,?)");
|
|
94
|
-
this.stmtGetWindow = db.prepare("SELECT messages FROM cache.windows WHERE agent_id=? AND session_key=? AND topic_id=? AND expires_at>?");
|
|
95
|
-
this.stmtGetFreshWindowBundle = db.prepare(`
|
|
96
|
-
SELECT
|
|
97
|
-
w.messages AS messages,
|
|
98
|
-
wm.value AS meta,
|
|
99
|
-
c.value AS cursor
|
|
100
|
-
FROM cache.windows w
|
|
101
|
-
LEFT JOIN cache.kv wm
|
|
102
|
-
ON wm.key = ?
|
|
103
|
-
AND (wm.expires_at = 0 OR wm.expires_at > ?)
|
|
104
|
-
LEFT JOIN cache.kv c
|
|
105
|
-
ON c.key = ?
|
|
106
|
-
AND (c.expires_at = 0 OR c.expires_at > ?)
|
|
107
|
-
WHERE w.agent_id = ?
|
|
108
|
-
AND w.session_key = ?
|
|
109
|
-
AND w.topic_id = ''
|
|
110
|
-
AND w.expires_at > ?
|
|
111
|
-
`);
|
|
112
|
-
this.stmtDeleteWindow = db.prepare("DELETE FROM cache.windows WHERE agent_id=? AND session_key=? AND topic_id=?");
|
|
113
|
-
this.stmtEvictWindows = db.prepare("DELETE FROM cache.windows WHERE agent_id=? AND session_key=?");
|
|
114
|
-
this.stmtSetKv = db.prepare("INSERT OR REPLACE INTO cache.kv (key,value,expires_at) VALUES (?,?,?)");
|
|
115
|
-
this.stmtGetKv = db.prepare("SELECT value FROM cache.kv WHERE key=? AND (expires_at=0 OR expires_at>?)");
|
|
116
|
-
this.stmtDeleteKv = db.prepare("DELETE FROM cache.kv WHERE key=?");
|
|
117
|
-
}
|
|
118
|
-
get isConnected() {
|
|
119
|
-
return this._connected && this.db !== null;
|
|
120
|
-
}
|
|
121
|
-
// ─── Agent-Level Operations ──────────────────────────────────
|
|
122
|
-
async setProfile(agentId, profile) {
|
|
123
|
-
if (!this.isConnected)
|
|
124
|
-
return;
|
|
125
|
-
this.stmtSetKv.run(`${this.config.keyPrefix}${agentId}:profile`, JSON.stringify(profile), 0);
|
|
126
|
-
}
|
|
127
|
-
async getProfile(agentId) {
|
|
128
|
-
if (!this.isConnected)
|
|
129
|
-
return null;
|
|
130
|
-
const row = this.stmtGetKv.get(`${this.config.keyPrefix}${agentId}:profile`, now());
|
|
131
|
-
return row ? JSON.parse(row.value) : null;
|
|
132
|
-
}
|
|
133
|
-
async addActiveSession(agentId, sessionKey) {
|
|
134
|
-
if (!this.isConnected)
|
|
135
|
-
return;
|
|
136
|
-
this.stmtActivateSession.run(agentId, sessionKey, now());
|
|
137
|
-
}
|
|
138
|
-
async removeActiveSession(agentId, sessionKey) {
|
|
139
|
-
if (!this.isConnected)
|
|
140
|
-
return;
|
|
141
|
-
this.stmtDeactivateSession.run(agentId, sessionKey);
|
|
142
|
-
}
|
|
143
|
-
async getActiveSessions(agentId) {
|
|
144
|
-
if (!this.isConnected)
|
|
145
|
-
return [];
|
|
146
|
-
const rows = this.stmtGetActiveSessions.all(agentId);
|
|
147
|
-
return rows.map(r => r.session_key);
|
|
148
|
-
}
|
|
149
|
-
// ─── Session Slot Operations ─────────────────────────────────
|
|
150
|
-
async setSlot(agentId, sessionKey, slot, value) {
|
|
151
|
-
if (!this.isConnected)
|
|
152
|
-
return;
|
|
153
|
-
this.stmtSetSlot.run(agentId, sessionKey, slot, value, now() + this.config.sessionTTL);
|
|
154
|
-
}
|
|
155
|
-
async getSlot(agentId, sessionKey, slot) {
|
|
156
|
-
if (!this.isConnected)
|
|
157
|
-
return null;
|
|
158
|
-
const row = this.stmtGetSlot.get(agentId, sessionKey, slot, now());
|
|
159
|
-
return row?.value ?? null;
|
|
160
|
-
}
|
|
161
|
-
async setSessionMeta(agentId, sessionKey, meta) {
|
|
162
|
-
if (!this.isConnected)
|
|
163
|
-
return;
|
|
164
|
-
this.stmtSetMeta.run(agentId, sessionKey, JSON.stringify(meta), agentId, sessionKey, now());
|
|
165
|
-
}
|
|
166
|
-
async getSessionMeta(agentId, sessionKey) {
|
|
167
|
-
if (!this.isConnected)
|
|
168
|
-
return null;
|
|
169
|
-
const row = this.stmtGetMeta.get(agentId, sessionKey);
|
|
170
|
-
if (!row?.meta)
|
|
171
|
-
return null;
|
|
172
|
-
return JSON.parse(row.meta);
|
|
173
|
-
}
|
|
174
|
-
// ─── History Operations ──────────────────────────────────────
|
|
175
|
-
async pushHistory(agentId, sessionKey, messages, maxMessages = 250) {
|
|
176
|
-
if (!this.isConnected || messages.length === 0)
|
|
177
|
-
return;
|
|
178
|
-
// Get current max seq for dedup
|
|
179
|
-
const maxRow = this.stmtGetMaxSeq.get(agentId, sessionKey, '');
|
|
180
|
-
const maxSeq = maxRow?.max_seq ?? -1;
|
|
181
|
-
// Filter already-stored messages (same dedup logic as Redis path)
|
|
182
|
-
let filteredMessages = messages;
|
|
183
|
-
if (maxSeq >= 0) {
|
|
184
|
-
filteredMessages = messages.filter(m => m.id > maxSeq);
|
|
185
|
-
}
|
|
186
|
-
if (filteredMessages.length === 0)
|
|
187
|
-
return;
|
|
188
|
-
let seq = maxSeq + 1;
|
|
189
|
-
for (const msg of filteredMessages) {
|
|
190
|
-
this.stmtInsertHistory.run(agentId, sessionKey, '', seq++, JSON.stringify(msg));
|
|
191
|
-
}
|
|
192
|
-
// Soft cap: keep only last maxMessages
|
|
193
|
-
this.stmtDeleteOldHistory.run(agentId, sessionKey, agentId, sessionKey, maxMessages);
|
|
194
|
-
}
|
|
195
|
-
async replaceHistory(agentId, sessionKey, messages, maxMessages = 250) {
|
|
196
|
-
if (!this.isConnected)
|
|
197
|
-
return;
|
|
198
|
-
this.stmtDeleteHistory.run(agentId, sessionKey);
|
|
199
|
-
const slice = messages.slice(-maxMessages);
|
|
200
|
-
for (let i = 0; i < slice.length; i++) {
|
|
201
|
-
this.stmtInsertHistory.run(agentId, sessionKey, '', i, JSON.stringify(slice[i]));
|
|
202
|
-
}
|
|
203
|
-
}
|
|
204
|
-
async getHistory(agentId, sessionKey, limit) {
|
|
205
|
-
if (!this.isConnected)
|
|
206
|
-
return [];
|
|
207
|
-
let rows;
|
|
208
|
-
if (limit) {
|
|
209
|
-
rows = this.stmtGetHistoryLimit.all(agentId, sessionKey, agentId, sessionKey, limit);
|
|
210
|
-
}
|
|
211
|
-
else {
|
|
212
|
-
rows = this.stmtGetHistory.all(agentId, sessionKey);
|
|
213
|
-
}
|
|
214
|
-
return rows.map(r => JSON.parse(r.message));
|
|
215
|
-
}
|
|
216
|
-
async sessionExists(agentId, sessionKey) {
|
|
217
|
-
if (!this.isConnected)
|
|
218
|
-
return false;
|
|
219
|
-
const row = this.stmtHistoryExists.get(agentId, sessionKey);
|
|
220
|
-
return row !== undefined;
|
|
221
|
-
}
|
|
222
|
-
async trimHistoryToTokenBudget(agentId, sessionKey, tokenBudget) {
|
|
223
|
-
if (!this.isConnected || tokenBudget <= 0)
|
|
224
|
-
return 0;
|
|
225
|
-
const rows = this.stmtGetAllHistoryDesc.all(agentId, sessionKey);
|
|
226
|
-
if (rows.length <= 10)
|
|
227
|
-
return 0;
|
|
228
|
-
const estimateMessageTokens = (msg) => {
|
|
229
|
-
let msgTokens = Math.ceil((msg.textContent?.length ?? 0) / 4);
|
|
230
|
-
if (msg.toolCalls)
|
|
231
|
-
msgTokens += Math.ceil(JSON.stringify(msg.toolCalls).length / 2);
|
|
232
|
-
if (msg.toolResults)
|
|
233
|
-
msgTokens += Math.ceil(JSON.stringify(msg.toolResults).length / 2);
|
|
234
|
-
return msgTokens;
|
|
235
|
-
};
|
|
236
|
-
const chronological = rows
|
|
237
|
-
.slice()
|
|
238
|
-
.reverse()
|
|
239
|
-
.map(row => {
|
|
240
|
-
try {
|
|
241
|
-
return { seq: row.seq, msg: JSON.parse(row.message), fallback: false };
|
|
242
|
-
}
|
|
243
|
-
catch {
|
|
244
|
-
return { seq: row.seq, msg: null, fallback: true };
|
|
245
|
-
}
|
|
246
|
-
});
|
|
247
|
-
// Helper: check if a message contains any error tool results
|
|
248
|
-
const hasErrorToolResult = (msg) => {
|
|
249
|
-
if (!msg.toolResults)
|
|
250
|
-
return false;
|
|
251
|
-
return msg.toolResults.some((tr) => tr.isError === true);
|
|
252
|
-
};
|
|
253
|
-
const clusters = [];
|
|
254
|
-
for (let i = 0; i < chronological.length; i++) {
|
|
255
|
-
const current = chronological[i];
|
|
256
|
-
if (current.fallback || !current.msg) {
|
|
257
|
-
clusters.push({ startSeq: current.seq, endSeq: current.seq, tokenCost: 500, hasError: false });
|
|
258
|
-
continue;
|
|
259
|
-
}
|
|
260
|
-
let endSeq = current.seq;
|
|
261
|
-
let tokenCost = estimateMessageTokens(current.msg);
|
|
262
|
-
let clusterHasError = hasErrorToolResult(current.msg);
|
|
263
|
-
if (current.msg.toolCalls && current.msg.toolCalls.length > 0) {
|
|
264
|
-
const callIds = new Set(current.msg.toolCalls.map(tc => tc.id).filter(Boolean));
|
|
265
|
-
let j = i + 1;
|
|
266
|
-
while (j < chronological.length) {
|
|
267
|
-
const candidate = chronological[j];
|
|
268
|
-
if (candidate.fallback || !candidate.msg || !candidate.msg.toolResults || candidate.msg.toolResults.length === 0)
|
|
269
|
-
break;
|
|
270
|
-
const resultIds = candidate.msg.toolResults.map(tr => tr.callId).filter(Boolean);
|
|
271
|
-
if (callIds.size > 0 && resultIds.length > 0 && !resultIds.some(id => callIds.has(id)))
|
|
272
|
-
break;
|
|
273
|
-
tokenCost += estimateMessageTokens(candidate.msg);
|
|
274
|
-
if (hasErrorToolResult(candidate.msg))
|
|
275
|
-
clusterHasError = true;
|
|
276
|
-
endSeq = candidate.seq;
|
|
277
|
-
j++;
|
|
278
|
-
}
|
|
279
|
-
i = j - 1;
|
|
280
|
-
}
|
|
281
|
-
else if (current.msg.toolResults && current.msg.toolResults.length > 0) {
|
|
282
|
-
let j = i + 1;
|
|
283
|
-
while (j < chronological.length) {
|
|
284
|
-
const candidate = chronological[j];
|
|
285
|
-
if (candidate.fallback || !candidate.msg || !candidate.msg.toolResults || candidate.msg.toolResults.length === 0 || (candidate.msg.toolCalls && candidate.msg.toolCalls.length > 0))
|
|
286
|
-
break;
|
|
287
|
-
tokenCost += estimateMessageTokens(candidate.msg);
|
|
288
|
-
if (hasErrorToolResult(candidate.msg))
|
|
289
|
-
clusterHasError = true;
|
|
290
|
-
endSeq = candidate.seq;
|
|
291
|
-
j++;
|
|
292
|
-
}
|
|
293
|
-
i = j - 1;
|
|
294
|
-
}
|
|
295
|
-
// Error clusters get a 90% cost discount so they survive trimming longer.
|
|
296
|
-
// Failed tool calls are high-signal context the model needs to avoid repeating mistakes.
|
|
297
|
-
const effectiveCost = clusterHasError ? Math.max(50, Math.ceil(tokenCost * 0.1)) : tokenCost;
|
|
298
|
-
clusters.push({ startSeq: current.seq, endSeq, tokenCost: effectiveCost, hasError: clusterHasError });
|
|
299
|
-
}
|
|
300
|
-
let tokenSum = 0;
|
|
301
|
-
let keepFromSeq = null;
|
|
302
|
-
for (let i = clusters.length - 1; i >= 0; i--) {
|
|
303
|
-
const cluster = clusters[i];
|
|
304
|
-
if (tokenSum + cluster.tokenCost > tokenBudget)
|
|
305
|
-
break;
|
|
306
|
-
tokenSum += cluster.tokenCost;
|
|
307
|
-
keepFromSeq = cluster.startSeq;
|
|
308
|
-
}
|
|
309
|
-
if (keepFromSeq === null) {
|
|
310
|
-
keepFromSeq = clusters[clusters.length - 1]?.startSeq ?? null;
|
|
311
|
-
}
|
|
312
|
-
if (keepFromSeq === null)
|
|
313
|
-
return 0;
|
|
314
|
-
const oldestSeq = clusters[0]?.startSeq ?? keepFromSeq;
|
|
315
|
-
if (keepFromSeq <= oldestSeq)
|
|
316
|
-
return 0;
|
|
317
|
-
const cutSeq = keepFromSeq - 1;
|
|
318
|
-
const stmt = this.db.prepare("DELETE FROM cache.history WHERE agent_id=? AND session_key=? AND topic_id='' AND seq<=?");
|
|
319
|
-
stmt.run(agentId, sessionKey, cutSeq);
|
|
320
|
-
const trimmed = rows.filter(r => r.seq <= cutSeq).length;
|
|
321
|
-
console.log(`[hypermem-cache] trimHistoryToTokenBudget: trimmed ${trimmed} messages from ${agentId}/${sessionKey}`);
|
|
322
|
-
return trimmed;
|
|
323
|
-
}
|
|
324
|
-
// ─── Window Cache Operations ─────────────────────────────────
|
|
325
|
-
async setWindow(agentId, sessionKey, messages, ttlSeconds = 120) {
|
|
326
|
-
if (!this.isConnected)
|
|
327
|
-
return;
|
|
328
|
-
this.stmtSetWindow.run(agentId, sessionKey, '', JSON.stringify(messages), now() + ttlSeconds);
|
|
329
|
-
}
|
|
330
|
-
async getWindow(agentId, sessionKey) {
|
|
331
|
-
if (!this.isConnected)
|
|
332
|
-
return null;
|
|
333
|
-
const row = this.stmtGetWindow.get(agentId, sessionKey, '', now());
|
|
334
|
-
return row ? JSON.parse(row.messages) : null;
|
|
335
|
-
}
|
|
336
|
-
async invalidateWindow(agentId, sessionKey) {
|
|
337
|
-
if (!this.isConnected)
|
|
338
|
-
return;
|
|
339
|
-
this.stmtDeleteWindow.run(agentId, sessionKey, '');
|
|
340
|
-
this.stmtDeleteKv.run(`${this.config.keyPrefix}${agentId}:s:${sessionKey}:windowmeta`);
|
|
341
|
-
}
|
|
342
|
-
/**
|
|
343
|
-
* Returns the cached window + metadata only if a single read shows the cache
|
|
344
|
-
* and cursor still refer to the same composed window.
|
|
345
|
-
* Used for C4 window cache fast-exit in compositor.ts.
|
|
346
|
-
*/
|
|
347
|
-
async getFreshWindowBundle(agentId, sessionKey, lastMessageId) {
|
|
348
|
-
if (!this.isConnected)
|
|
349
|
-
return null;
|
|
350
|
-
const ts = now();
|
|
351
|
-
const metaKey = `${this.config.keyPrefix}${agentId}:s:${sessionKey}:windowmeta`;
|
|
352
|
-
const cursorKey = `${this.config.keyPrefix}${agentId}:s:${sessionKey}:cursor`;
|
|
353
|
-
const row = this.stmtGetFreshWindowBundle.get(metaKey, ts, cursorKey, ts, agentId, sessionKey, ts);
|
|
354
|
-
if (!row?.messages || !row.meta || !row.cursor)
|
|
355
|
-
return null;
|
|
356
|
-
const meta = JSON.parse(row.meta);
|
|
357
|
-
const cursor = JSON.parse(row.cursor);
|
|
358
|
-
if (!meta.composedAt || !meta.diagnostics || cursor.lastSentId < lastMessageId)
|
|
359
|
-
return null;
|
|
360
|
-
if (cursor.lastSentAt !== meta.composedAt)
|
|
361
|
-
return null;
|
|
362
|
-
return {
|
|
363
|
-
messages: JSON.parse(row.messages),
|
|
364
|
-
meta: meta,
|
|
365
|
-
};
|
|
366
|
-
}
|
|
367
|
-
/**
|
|
368
|
-
* Store compose result metadata alongside the window cache.
|
|
369
|
-
* Enables the C4 fast-exit to return a complete ComposeResult without re-running.
|
|
370
|
-
*/
|
|
371
|
-
async setWindowMeta(agentId, sessionKey, meta, ttl) {
|
|
372
|
-
if (!this.isConnected)
|
|
373
|
-
return;
|
|
374
|
-
this.stmtSetKv.run(`${this.config.keyPrefix}${agentId}:s:${sessionKey}:windowmeta`, JSON.stringify(meta), now() + ttl);
|
|
375
|
-
}
|
|
376
|
-
async getWindowMeta(agentId, sessionKey) {
|
|
377
|
-
if (!this.isConnected)
|
|
378
|
-
return null;
|
|
379
|
-
const row = this.stmtGetKv.get(`${this.config.keyPrefix}${agentId}:s:${sessionKey}:windowmeta`, now());
|
|
380
|
-
return row ? JSON.parse(row.value) : null;
|
|
381
|
-
}
|
|
382
|
-
// ─── Session Cursor Operations ────────────────────────────────
|
|
383
|
-
async setCursor(agentId, sessionKey, cursor) {
|
|
384
|
-
if (!this.isConnected)
|
|
385
|
-
return;
|
|
386
|
-
this.stmtSetKv.run(`${this.config.keyPrefix}${agentId}:s:${sessionKey}:cursor`, JSON.stringify(cursor), now() + this.config.historyTTL);
|
|
387
|
-
}
|
|
388
|
-
async getCursor(agentId, sessionKey) {
|
|
389
|
-
if (!this.isConnected)
|
|
390
|
-
return null;
|
|
391
|
-
const row = this.stmtGetKv.get(`${this.config.keyPrefix}${agentId}:s:${sessionKey}:cursor`, now());
|
|
392
|
-
return row ? JSON.parse(row.value) : null;
|
|
393
|
-
}
|
|
394
|
-
// ─── Bulk Session Operations ──────────────────────────────────
|
|
395
|
-
async warmSession(agentId, sessionKey, slots) {
|
|
396
|
-
if (!this.isConnected)
|
|
397
|
-
return;
|
|
398
|
-
const exp = now() + this.config.sessionTTL;
|
|
399
|
-
if (slots.system)
|
|
400
|
-
this.stmtSetSlot.run(agentId, sessionKey, 'system', slots.system, exp);
|
|
401
|
-
if (slots.identity)
|
|
402
|
-
this.stmtSetSlot.run(agentId, sessionKey, 'identity', slots.identity, exp);
|
|
403
|
-
if (slots.context)
|
|
404
|
-
this.stmtSetSlot.run(agentId, sessionKey, 'context', slots.context, exp);
|
|
405
|
-
if (slots.facts)
|
|
406
|
-
this.stmtSetSlot.run(agentId, sessionKey, 'facts', slots.facts, exp);
|
|
407
|
-
if (slots.tools)
|
|
408
|
-
this.stmtSetSlot.run(agentId, sessionKey, 'tools', slots.tools, exp);
|
|
409
|
-
if (slots.meta)
|
|
410
|
-
await this.setSessionMeta(agentId, sessionKey, slots.meta);
|
|
411
|
-
if (slots.history && slots.history.length > 0)
|
|
412
|
-
await this.pushHistory(agentId, sessionKey, slots.history);
|
|
413
|
-
await this.addActiveSession(agentId, sessionKey);
|
|
414
|
-
}
|
|
415
|
-
async evictSession(agentId, sessionKey) {
|
|
416
|
-
if (!this.isConnected)
|
|
417
|
-
return;
|
|
418
|
-
this.stmtEvictSlots.run(agentId, sessionKey);
|
|
419
|
-
this.stmtEvictHistory.run(agentId, sessionKey);
|
|
420
|
-
this.stmtEvictWindows.run(agentId, sessionKey);
|
|
421
|
-
this.stmtDeactivateSession.run(agentId, sessionKey);
|
|
422
|
-
// cursor + window metadata
|
|
423
|
-
this.stmtDeleteKv.run(`${this.config.keyPrefix}${agentId}:s:${sessionKey}:cursor`);
|
|
424
|
-
this.stmtDeleteKv.run(`${this.config.keyPrefix}${agentId}:s:${sessionKey}:windowmeta`);
|
|
425
|
-
}
|
|
426
|
-
// ─── Touch / TTL ─────────────────────────────────────────────
|
|
427
|
-
async touchSession(agentId, sessionKey) {
|
|
428
|
-
if (!this.isConnected)
|
|
429
|
-
return;
|
|
430
|
-
const exp = now() + this.config.sessionTTL;
|
|
431
|
-
this.stmtTouchSlots.run(exp, agentId, sessionKey);
|
|
432
|
-
this.stmtTouchSession.run(now(), agentId, sessionKey);
|
|
433
|
-
}
|
|
434
|
-
async flushPrefix() {
|
|
435
|
-
if (!this.isConnected)
|
|
436
|
-
return 0;
|
|
437
|
-
const db = this.db;
|
|
438
|
-
const counts = [
|
|
439
|
-
db.prepare("DELETE FROM cache.slots").run().changes,
|
|
440
|
-
db.prepare("DELETE FROM cache.history").run().changes,
|
|
441
|
-
db.prepare("DELETE FROM cache.sessions").run().changes,
|
|
442
|
-
db.prepare("DELETE FROM cache.windows").run().changes,
|
|
443
|
-
db.prepare("DELETE FROM cache.kv").run().changes,
|
|
444
|
-
];
|
|
445
|
-
return counts.reduce((a, b) => a + b, 0);
|
|
446
|
-
}
|
|
447
|
-
// ─── Fleet Cache (Library L4 Hot Layer) ──────────────────────
|
|
448
|
-
async setFleetCache(key, value, ttl = 600) {
|
|
449
|
-
if (!this.isConnected)
|
|
450
|
-
return;
|
|
451
|
-
this.stmtSetKv.run(`${this.config.keyPrefix}fleet:${key}`, value, now() + ttl);
|
|
452
|
-
}
|
|
453
|
-
async getFleetCache(key) {
|
|
454
|
-
if (!this.isConnected)
|
|
455
|
-
return null;
|
|
456
|
-
const row = this.stmtGetKv.get(`${this.config.keyPrefix}fleet:${key}`, now());
|
|
457
|
-
return row?.value ?? null;
|
|
458
|
-
}
|
|
459
|
-
async delFleetCache(key) {
|
|
460
|
-
if (!this.isConnected)
|
|
461
|
-
return;
|
|
462
|
-
this.stmtDeleteKv.run(`${this.config.keyPrefix}fleet:${key}`);
|
|
463
|
-
}
|
|
464
|
-
async cacheFleetAgent(agentId, data) {
|
|
465
|
-
await this.setFleetCache(`agent:${agentId}`, JSON.stringify(data));
|
|
466
|
-
}
|
|
467
|
-
async getCachedFleetAgent(agentId) {
|
|
468
|
-
const val = await this.getFleetCache(`agent:${agentId}`);
|
|
469
|
-
return val ? JSON.parse(val) : null;
|
|
470
|
-
}
|
|
471
|
-
async cacheFleetSummary(summary) {
|
|
472
|
-
await this.setFleetCache('summary', JSON.stringify(summary), 120);
|
|
473
|
-
}
|
|
474
|
-
async getCachedFleetSummary() {
|
|
475
|
-
const val = await this.getFleetCache('summary');
|
|
476
|
-
return val ? JSON.parse(val) : null;
|
|
477
|
-
}
|
|
478
|
-
async invalidateFleetAgent(agentId) {
|
|
479
|
-
await this.delFleetCache(`agent:${agentId}`);
|
|
480
|
-
await this.delFleetCache('summary');
|
|
481
|
-
}
|
|
482
|
-
// ─── Query Embedding Cache ────────────────────────────────────
|
|
483
|
-
async setQueryEmbedding(agentId, sessionKey, embedding) {
|
|
484
|
-
if (!this.isConnected)
|
|
485
|
-
return;
|
|
486
|
-
const encoded = Buffer.from(embedding.buffer).toString('base64');
|
|
487
|
-
this.stmtSetKv.run(`${this.config.keyPrefix}${agentId}:s:${sessionKey}:qembed`, encoded, now() + this.config.sessionTTL);
|
|
488
|
-
}
|
|
489
|
-
async getQueryEmbedding(agentId, sessionKey) {
|
|
490
|
-
if (!this.isConnected)
|
|
491
|
-
return null;
|
|
492
|
-
try {
|
|
493
|
-
const row = this.stmtGetKv.get(`${this.config.keyPrefix}${agentId}:s:${sessionKey}:qembed`, now());
|
|
494
|
-
if (!row)
|
|
495
|
-
return null;
|
|
496
|
-
const buf = Buffer.from(row.value, 'base64');
|
|
497
|
-
return new Float32Array(buf.buffer, buf.byteOffset, buf.byteLength / 4);
|
|
498
|
-
}
|
|
499
|
-
catch {
|
|
500
|
-
return null;
|
|
501
|
-
}
|
|
502
|
-
}
|
|
503
|
-
// ─── Topic-Scoped Session Operations ─────────────────────────
|
|
504
|
-
async setTopicSlot(agentId, sessionKey, topicId, slot, value) {
|
|
505
|
-
if (!this.isConnected)
|
|
506
|
-
return;
|
|
507
|
-
this.stmtSetTopicSlot.run(agentId, sessionKey, topicId, slot, value, now() + this.config.sessionTTL);
|
|
508
|
-
}
|
|
509
|
-
async getTopicSlot(agentId, sessionKey, topicId, slot) {
|
|
510
|
-
if (!this.isConnected)
|
|
511
|
-
return null;
|
|
512
|
-
const row = this.stmtGetTopicSlot.get(agentId, sessionKey, topicId, slot, now());
|
|
513
|
-
return row?.value ?? null;
|
|
514
|
-
}
|
|
515
|
-
async setTopicWindow(agentId, sessionKey, topicId, messages, ttl = 120) {
|
|
516
|
-
if (!this.isConnected)
|
|
517
|
-
return;
|
|
518
|
-
this.stmtSetWindow.run(agentId, sessionKey, topicId, JSON.stringify(messages), now() + ttl);
|
|
519
|
-
}
|
|
520
|
-
async getTopicWindow(agentId, sessionKey, topicId) {
|
|
521
|
-
if (!this.isConnected)
|
|
522
|
-
return null;
|
|
523
|
-
const row = this.stmtGetWindow.get(agentId, sessionKey, topicId, now());
|
|
524
|
-
return row ? JSON.parse(row.messages) : null;
|
|
525
|
-
}
|
|
526
|
-
async invalidateTopicWindow(agentId, sessionKey, topicId) {
|
|
527
|
-
if (!this.isConnected)
|
|
528
|
-
return;
|
|
529
|
-
this.stmtDeleteWindow.run(agentId, sessionKey, topicId);
|
|
530
|
-
}
|
|
531
|
-
async warmTopicSession(agentId, sessionKey, topicId, slots) {
|
|
532
|
-
if (!this.isConnected)
|
|
533
|
-
return;
|
|
534
|
-
const exp = now() + this.config.sessionTTL;
|
|
535
|
-
if (slots.context)
|
|
536
|
-
this.stmtSetTopicSlot.run(agentId, sessionKey, topicId, 'context', slots.context, exp);
|
|
537
|
-
if (slots.facts)
|
|
538
|
-
this.stmtSetTopicSlot.run(agentId, sessionKey, topicId, 'facts', slots.facts, exp);
|
|
539
|
-
if (slots.cursor)
|
|
540
|
-
this.stmtSetTopicSlot.run(agentId, sessionKey, topicId, 'cursor', slots.cursor, exp);
|
|
541
|
-
if (slots.window)
|
|
542
|
-
this.stmtSetWindow.run(agentId, sessionKey, topicId, JSON.stringify(slots.window), now() + 120);
|
|
543
|
-
if (slots.history && slots.history.length > 0) {
|
|
544
|
-
// Topic history goes into the topic_id-scoped rows
|
|
545
|
-
const maxRow = this.stmtGetMaxSeq.get(agentId, sessionKey, topicId);
|
|
546
|
-
let seq = (maxRow?.max_seq ?? -1) + 1;
|
|
547
|
-
for (const msg of slots.history) {
|
|
548
|
-
this.stmtInsertHistory.run(agentId, sessionKey, topicId, seq++, JSON.stringify(msg));
|
|
549
|
-
}
|
|
550
|
-
}
|
|
551
|
-
}
|
|
552
|
-
// ─── Model State ─────────────────────────────────────────────
|
|
553
|
-
async setModelState(agentId, sessionKey, state) {
|
|
554
|
-
if (!this.isConnected)
|
|
555
|
-
return;
|
|
556
|
-
this.stmtSetKv.run(`${this.config.keyPrefix}${agentId}:s:${sessionKey}:modelstate`, JSON.stringify(state), now() + this.config.sessionTTL);
|
|
557
|
-
}
|
|
558
|
-
async getModelState(agentId, sessionKey) {
|
|
559
|
-
if (!this.isConnected)
|
|
560
|
-
return null;
|
|
561
|
-
const row = this.stmtGetKv.get(`${this.config.keyPrefix}${agentId}:s:${sessionKey}:modelstate`, now());
|
|
562
|
-
return row ? JSON.parse(row.value) : null;
|
|
563
|
-
}
|
|
564
|
-
async disconnect() {
|
|
565
|
-
this._connected = false;
|
|
566
|
-
this.db = null;
|
|
567
|
-
}
|
|
568
|
-
}
|
|
569
|
-
//# sourceMappingURL=cache.js.map
|
|
@@ -1,97 +0,0 @@
|
|
|
1
|
-
/**
|
|
2
|
-
* hypermem Compaction Fence
|
|
3
|
-
*
|
|
4
|
-
* Protects the recent conversation tail from being compacted.
|
|
5
|
-
*
|
|
6
|
-
* The fence is a per-conversation high-water mark (message ID) that divides
|
|
7
|
-
* the message timeline into two zones:
|
|
8
|
-
*
|
|
9
|
-
* - ABOVE the fence: messages the LLM can currently see (recent tail).
|
|
10
|
-
* These are off-limits to compaction.
|
|
11
|
-
* - BELOW the fence: older messages eligible for compaction/summarization.
|
|
12
|
-
*
|
|
13
|
-
* The compositor updates the fence every compose cycle by recording the
|
|
14
|
-
* oldest message ID that was included in the composed context. This means
|
|
15
|
-
* the fence automatically advances as conversations grow.
|
|
16
|
-
*
|
|
17
|
-
* Safety defaults:
|
|
18
|
-
* - No fence row = no compaction allowed (explicit opt-in)
|
|
19
|
-
* - Fence never moves backward (monotone progress)
|
|
20
|
-
* - Fence update is idempotent (same value = no-op)
|
|
21
|
-
*
|
|
22
|
-
* Inspired by the continuity model in openclaw-memory-libravdb, which
|
|
23
|
-
* formally proves that compaction must never touch the recent tail.
|
|
24
|
-
*/
|
|
25
|
-
import type { DatabaseSync } from 'node:sqlite';
|
|
26
|
-
export interface CompactionFence {
|
|
27
|
-
conversationId: number;
|
|
28
|
-
/** Message ID of the oldest message currently visible to the LLM */
|
|
29
|
-
fenceMessageId: number;
|
|
30
|
-
/** Timestamp of the last fence update */
|
|
31
|
-
updatedAt: string;
|
|
32
|
-
}
|
|
33
|
-
export interface CompactionEligibility {
|
|
34
|
-
conversationId: number;
|
|
35
|
-
/** Total messages below the fence (eligible for compaction) */
|
|
36
|
-
eligibleCount: number;
|
|
37
|
-
/** Message ID of the oldest eligible message */
|
|
38
|
-
oldestEligibleId: number | null;
|
|
39
|
-
/** Message ID of the newest eligible message (just below fence) */
|
|
40
|
-
newestEligibleId: number | null;
|
|
41
|
-
/** The fence itself */
|
|
42
|
-
fence: CompactionFence | null;
|
|
43
|
-
}
|
|
44
|
-
export interface UpdateCompactionFenceOptions {
|
|
45
|
-
/**
|
|
46
|
-
* Minimum number of most-recent non-system messages that must remain above
|
|
47
|
-
* the fence. Prevents compaction from fencing off the live conversational
|
|
48
|
-
* tail under pressure.
|
|
49
|
-
*/
|
|
50
|
-
minTailMessages?: number;
|
|
51
|
-
}
|
|
52
|
-
/**
|
|
53
|
-
* Add the compaction_fences table to an existing messages.db.
|
|
54
|
-
* Idempotent — safe to call on every startup.
|
|
55
|
-
*/
|
|
56
|
-
export declare function ensureCompactionFenceSchema(db: DatabaseSync): void;
|
|
57
|
-
/**
|
|
58
|
-
* Update the compaction fence for a conversation.
|
|
59
|
-
*
|
|
60
|
-
* Called by the compositor after assembling context, passing the ID of
|
|
61
|
-
* the oldest message that was included in the composed history.
|
|
62
|
-
*
|
|
63
|
-
* The fence only moves forward (monotone progress). If the new fence
|
|
64
|
-
* is lower than the existing one, the update is silently ignored.
|
|
65
|
-
* This prevents a short compose window from accidentally exposing
|
|
66
|
-
* already-compacted messages.
|
|
67
|
-
*/
|
|
68
|
-
export declare function updateCompactionFence(db: DatabaseSync, conversationId: number, oldestVisibleMessageId: number, opts?: UpdateCompactionFenceOptions): void;
|
|
69
|
-
/**
|
|
70
|
-
* Get the current compaction fence for a conversation.
|
|
71
|
-
* Returns null if no fence has been set (meaning: no compaction allowed).
|
|
72
|
-
*/
|
|
73
|
-
export declare function getCompactionFence(db: DatabaseSync, conversationId: number): CompactionFence | null;
|
|
74
|
-
/**
|
|
75
|
-
* Query compaction eligibility for a conversation.
|
|
76
|
-
*
|
|
77
|
-
* Returns the count and range of messages that are below the fence
|
|
78
|
-
* and therefore eligible for compaction. If no fence exists, returns
|
|
79
|
-
* zero eligible (safe default: no fence = no compaction).
|
|
80
|
-
*
|
|
81
|
-
* Excludes messages that are already covered by a summary
|
|
82
|
-
* (via the summary_messages junction table).
|
|
83
|
-
*/
|
|
84
|
-
export declare function getCompactionEligibility(db: DatabaseSync, conversationId: number): CompactionEligibility;
|
|
85
|
-
/**
|
|
86
|
-
* Get messages eligible for compaction (below the fence, not yet summarized).
|
|
87
|
-
*
|
|
88
|
-
* Returns messages in chronological order, ready for clustering.
|
|
89
|
-
* Respects the fence boundary and excludes already-summarized messages.
|
|
90
|
-
*/
|
|
91
|
-
export declare function getCompactableMessages(db: DatabaseSync, conversationId: number, limit?: number): Array<{
|
|
92
|
-
id: number;
|
|
93
|
-
role: string;
|
|
94
|
-
textContent: string;
|
|
95
|
-
createdAt: string;
|
|
96
|
-
}>;
|
|
97
|
-
//# sourceMappingURL=compaction-fence.d.ts.map
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"compaction-fence.d.ts","sourceRoot":"","sources":["../src/compaction-fence.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;;;;;;;;;;GAuBG;AAEH,OAAO,KAAK,EAAE,YAAY,EAAE,MAAM,aAAa,CAAC;AAIhD,MAAM,WAAW,eAAe;IAC9B,cAAc,EAAE,MAAM,CAAC;IACvB,oEAAoE;IACpE,cAAc,EAAE,MAAM,CAAC;IACvB,yCAAyC;IACzC,SAAS,EAAE,MAAM,CAAC;CACnB;AAED,MAAM,WAAW,qBAAqB;IACpC,cAAc,EAAE,MAAM,CAAC;IACvB,+DAA+D;IAC/D,aAAa,EAAE,MAAM,CAAC;IACtB,gDAAgD;IAChD,gBAAgB,EAAE,MAAM,GAAG,IAAI,CAAC;IAChC,mEAAmE;IACnE,gBAAgB,EAAE,MAAM,GAAG,IAAI,CAAC;IAChC,uBAAuB;IACvB,KAAK,EAAE,eAAe,GAAG,IAAI,CAAC;CAC/B;AAED,MAAM,WAAW,4BAA4B;IAC3C;;;;OAIG;IACH,eAAe,CAAC,EAAE,MAAM,CAAC;CAC1B;AAID;;;GAGG;AACH,wBAAgB,2BAA2B,CAAC,EAAE,EAAE,YAAY,GAAG,IAAI,CAQlE;AAID;;;;;;;;;;GAUG;AACH,wBAAgB,qBAAqB,CACnC,EAAE,EAAE,YAAY,EAChB,cAAc,EAAE,MAAM,EACtB,sBAAsB,EAAE,MAAM,EAC9B,IAAI,GAAE,4BAAiC,GACtC,IAAI,CAgDN;AAED;;;GAGG;AACH,wBAAgB,kBAAkB,CAChC,EAAE,EAAE,YAAY,EAChB,cAAc,EAAE,MAAM,GACrB,eAAe,GAAG,IAAI,CAYxB;AAED;;;;;;;;;GASG;AACH,wBAAgB,wBAAwB,CACtC,EAAE,EAAE,YAAY,EAChB,cAAc,EAAE,MAAM,GACrB,qBAAqB,CAwCvB;AAED;;;;;GAKG;AACH,wBAAgB,sBAAsB,CACpC,EAAE,EAAE,YAAY,EAChB,cAAc,EAAE,MAAM,EACtB,KAAK,GAAE,MAAY,GAClB,KAAK,CAAC;IAAE,EAAE,EAAE,MAAM,CAAC;IAAC,IAAI,EAAE,MAAM,CAAC;IAAC,WAAW,EAAE,MAAM,CAAC;IAAC,SAAS,EAAE,MAAM,CAAA;CAAE,CAAC,CA8B7E"}
|