@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
|
@@ -1,260 +0,0 @@
|
|
|
1
|
-
/**
|
|
2
|
-
* hypermem Metrics Dashboard
|
|
3
|
-
*
|
|
4
|
-
* Provides a unified surface for observing system health:
|
|
5
|
-
* - Memory counts (facts, pages, episodes, vectors)
|
|
6
|
-
* - Composition performance (avg assembly time, budget utilization)
|
|
7
|
-
* - Ingestion stats (indexer throughput, promotion rate)
|
|
8
|
-
* - Embedding stats (cache hit rate, Ollama availability)
|
|
9
|
-
*
|
|
10
|
-
* All queries are read-only and safe to call on hot DBs.
|
|
11
|
-
*/
|
|
12
|
-
import { HYPERMEM_COMPAT_VERSION } from './version.js';
|
|
13
|
-
function safeQuery(db, sql, params = []) {
|
|
14
|
-
try {
|
|
15
|
-
const stmt = db.prepare(sql);
|
|
16
|
-
return stmt.get(...params);
|
|
17
|
-
}
|
|
18
|
-
catch {
|
|
19
|
-
return null;
|
|
20
|
-
}
|
|
21
|
-
}
|
|
22
|
-
function safeQueryAll(db, sql, params = []) {
|
|
23
|
-
try {
|
|
24
|
-
const stmt = db.prepare(sql);
|
|
25
|
-
return stmt.all(...params);
|
|
26
|
-
}
|
|
27
|
-
catch {
|
|
28
|
-
return [];
|
|
29
|
-
}
|
|
30
|
-
}
|
|
31
|
-
function buildAgentFilter(agentIds) {
|
|
32
|
-
if (!agentIds || agentIds.length === 0)
|
|
33
|
-
return { clause: '', params: [] };
|
|
34
|
-
const placeholders = agentIds.map(() => '?').join(', ');
|
|
35
|
-
return { clause: `AND agent_id IN (${placeholders})`, params: agentIds };
|
|
36
|
-
}
|
|
37
|
-
/**
|
|
38
|
-
* Collect fact metrics from the library DB.
|
|
39
|
-
*/
|
|
40
|
-
function collectFactMetrics(libraryDb, opts) {
|
|
41
|
-
const { clause, params } = buildAgentFilter(opts.agentIds);
|
|
42
|
-
const cutoff = new Date(Date.now() - 24 * 60 * 60 * 1000).toISOString();
|
|
43
|
-
const total = safeQuery(libraryDb, `SELECT COUNT(*) AS count FROM facts WHERE 1=1 ${clause}`, params);
|
|
44
|
-
const recent = safeQuery(libraryDb, `SELECT COUNT(*) AS count FROM facts WHERE created_at > ? ${clause}`, [cutoff, ...params]);
|
|
45
|
-
const byAgentRows = (opts.includeBreakdowns !== false)
|
|
46
|
-
? safeQueryAll(libraryDb, `SELECT agent_id, COUNT(*) AS count FROM facts WHERE 1=1 ${clause} GROUP BY agent_id`, params)
|
|
47
|
-
: [];
|
|
48
|
-
return {
|
|
49
|
-
totalFacts: total?.count ?? 0,
|
|
50
|
-
byAgent: Object.fromEntries(byAgentRows.map(r => [r.agent_id, r.count])),
|
|
51
|
-
recentFacts: recent?.count ?? 0,
|
|
52
|
-
};
|
|
53
|
-
}
|
|
54
|
-
/**
|
|
55
|
-
* Collect wiki page metrics from the library DB (knowledge table, topic-synthesis domain).
|
|
56
|
-
*/
|
|
57
|
-
function collectWikiMetrics(libraryDb, opts) {
|
|
58
|
-
const { clause, params } = buildAgentFilter(opts.agentIds);
|
|
59
|
-
const cutoff = new Date(Date.now() - 24 * 60 * 60 * 1000).toISOString();
|
|
60
|
-
const total = safeQuery(libraryDb, `SELECT COUNT(*) AS count FROM knowledge WHERE domain = 'topic-synthesis' AND superseded_by IS NULL ${clause}`, params);
|
|
61
|
-
const recent = safeQuery(libraryDb, `SELECT COUNT(*) AS count FROM knowledge WHERE domain = 'topic-synthesis' AND superseded_by IS NULL AND created_at > ? ${clause}`, [cutoff, ...params]);
|
|
62
|
-
const oldest = safeQuery(libraryDb, `SELECT created_at FROM knowledge WHERE domain = 'topic-synthesis' AND superseded_by IS NULL ${clause} ORDER BY created_at ASC LIMIT 1`, params);
|
|
63
|
-
const byAgentRows = (opts.includeBreakdowns !== false)
|
|
64
|
-
? safeQueryAll(libraryDb, `SELECT agent_id, COUNT(*) AS count FROM knowledge WHERE domain = 'topic-synthesis' AND superseded_by IS NULL ${clause} GROUP BY agent_id`, params)
|
|
65
|
-
: [];
|
|
66
|
-
let oldestPageAgeHours = null;
|
|
67
|
-
if (oldest?.created_at) {
|
|
68
|
-
const diffMs = Date.now() - new Date(oldest.created_at).getTime();
|
|
69
|
-
oldestPageAgeHours = Math.round(diffMs / (1000 * 60 * 60));
|
|
70
|
-
}
|
|
71
|
-
return {
|
|
72
|
-
totalPages: total?.count ?? 0,
|
|
73
|
-
byAgent: Object.fromEntries(byAgentRows.map(r => [r.agent_id, r.count])),
|
|
74
|
-
recentPages: recent?.count ?? 0,
|
|
75
|
-
oldestPageAgeHours,
|
|
76
|
-
};
|
|
77
|
-
}
|
|
78
|
-
/**
|
|
79
|
-
* Collect episode metrics from the library DB.
|
|
80
|
-
*/
|
|
81
|
-
function collectEpisodeMetrics(libraryDb, opts) {
|
|
82
|
-
const { clause, params } = buildAgentFilter(opts.agentIds);
|
|
83
|
-
const total = safeQuery(libraryDb, `SELECT COUNT(*) AS count FROM episodes WHERE 1=1 ${clause}`, params);
|
|
84
|
-
const avgSig = safeQuery(libraryDb, `SELECT AVG(significance) AS avg FROM episodes WHERE significance IS NOT NULL ${clause}`, params);
|
|
85
|
-
const byAgentRows = (opts.includeBreakdowns !== false)
|
|
86
|
-
? safeQueryAll(libraryDb, `SELECT agent_id, COUNT(*) AS count FROM episodes WHERE 1=1 ${clause} GROUP BY agent_id`, params)
|
|
87
|
-
: [];
|
|
88
|
-
return {
|
|
89
|
-
totalEpisodes: total?.count ?? 0,
|
|
90
|
-
byAgent: Object.fromEntries(byAgentRows.map(r => [r.agent_id, r.count])),
|
|
91
|
-
avgSignificance: avgSig?.avg ?? null,
|
|
92
|
-
};
|
|
93
|
-
}
|
|
94
|
-
/**
|
|
95
|
-
* Collect vector index metrics from the library DB.
|
|
96
|
-
*/
|
|
97
|
-
function collectVectorMetrics(libraryDb) {
|
|
98
|
-
const total = safeQuery(libraryDb, 'SELECT COUNT(*) as cnt FROM vec_index_map');
|
|
99
|
-
const byTableRows = safeQueryAll(libraryDb, 'SELECT source_table, COUNT(*) as cnt FROM vec_index_map GROUP BY source_table');
|
|
100
|
-
return {
|
|
101
|
-
totalVectors: total?.cnt ?? 0,
|
|
102
|
-
byTable: Object.fromEntries(byTableRows.map(r => [r.source_table, r.cnt])),
|
|
103
|
-
cacheHitRate: null, // process-lifetime stat, not persisted
|
|
104
|
-
};
|
|
105
|
-
}
|
|
106
|
-
/**
|
|
107
|
-
* Collect composition performance metrics from the output_metrics table (main DB).
|
|
108
|
-
*/
|
|
109
|
-
function collectCompositionMetrics(mainDb, opts) {
|
|
110
|
-
const { clause, params } = buildAgentFilter(opts.agentIds);
|
|
111
|
-
const agg = safeQuery(mainDb, `SELECT
|
|
112
|
-
AVG(latency_ms) AS avg_latency,
|
|
113
|
-
AVG(output_tokens) AS avg_output,
|
|
114
|
-
AVG(input_tokens) AS avg_input,
|
|
115
|
-
AVG(cache_read_tokens) AS avg_cache,
|
|
116
|
-
COUNT(*) AS total
|
|
117
|
-
FROM output_metrics WHERE 1=1 ${clause.replace(/agent_id/g, 'agent_id')}`, params);
|
|
118
|
-
// p95: sort latency_ms and pick the 95th percentile row
|
|
119
|
-
let p95 = null;
|
|
120
|
-
if ((agg?.total ?? 0) > 0) {
|
|
121
|
-
const p95Row = safeQuery(mainDb, `SELECT latency_ms FROM output_metrics WHERE latency_ms IS NOT NULL ${clause}
|
|
122
|
-
ORDER BY latency_ms ASC
|
|
123
|
-
LIMIT 1 OFFSET MAX(0, CAST(COUNT(*) * 0.95 AS INT) - 1)`, params);
|
|
124
|
-
// Fallback: approximate p95 with a subquery
|
|
125
|
-
if (!p95Row) {
|
|
126
|
-
const p95Approx = safeQuery(mainDb, `SELECT latency_ms FROM output_metrics WHERE latency_ms IS NOT NULL ${clause}
|
|
127
|
-
ORDER BY latency_ms DESC
|
|
128
|
-
LIMIT 1 OFFSET (SELECT MAX(0, CAST(COUNT(*) * 0.05 AS INT)) FROM output_metrics WHERE latency_ms IS NOT NULL ${clause})`, [...params, ...params]);
|
|
129
|
-
p95 = p95Approx?.latency_ms ?? null;
|
|
130
|
-
}
|
|
131
|
-
else {
|
|
132
|
-
p95 = p95Row.latency_ms;
|
|
133
|
-
}
|
|
134
|
-
}
|
|
135
|
-
return {
|
|
136
|
-
avgAssemblyMs: agg?.avg_latency ? Math.round(agg.avg_latency) : null,
|
|
137
|
-
p95AssemblyMs: p95 ? Math.round(p95) : null,
|
|
138
|
-
avgOutputTokens: agg?.avg_output ? Math.round(agg.avg_output) : null,
|
|
139
|
-
avgInputTokens: agg?.avg_input ? Math.round(agg.avg_input) : null,
|
|
140
|
-
totalTurns: agg?.total ?? 0,
|
|
141
|
-
avgCacheReadTokens: agg?.avg_cache ? Math.round(agg.avg_cache) : null,
|
|
142
|
-
};
|
|
143
|
-
}
|
|
144
|
-
/**
|
|
145
|
-
* Collect ingestion pipeline metrics from the library DB.
|
|
146
|
-
*/
|
|
147
|
-
function collectIngestionMetrics(libraryDb, opts) {
|
|
148
|
-
const { clause, params } = buildAgentFilter(opts.agentIds);
|
|
149
|
-
const facts = safeQuery(libraryDb, `SELECT COUNT(*) AS count FROM facts WHERE 1=1 ${clause}`, params);
|
|
150
|
-
const episodes = safeQuery(libraryDb, `SELECT COUNT(*) AS count FROM episodes WHERE 1=1 ${clause}`, params);
|
|
151
|
-
const knowledge = safeQuery(libraryDb, `SELECT COUNT(*) AS count FROM knowledge WHERE superseded_by IS NULL ${clause}`, params);
|
|
152
|
-
const totalFacts = facts?.count ?? 0;
|
|
153
|
-
const totalEpisodes = episodes?.count ?? 0;
|
|
154
|
-
// Noise rejection: approximate from fact vs message ratio if messages available
|
|
155
|
-
const messages = safeQuery(libraryDb, `SELECT COUNT(*) AS count FROM facts WHERE 1=1 ${clause}`, // placeholder — we'd need message count from main
|
|
156
|
-
params);
|
|
157
|
-
return {
|
|
158
|
-
totalMessagesIndexed: 0, // requires main DB join — surfaced separately
|
|
159
|
-
totalFactsExtracted: totalFacts,
|
|
160
|
-
noiseRejectionRate: null, // requires cross-DB join
|
|
161
|
-
totalEpisodesCreated: totalEpisodes,
|
|
162
|
-
totalKnowledgePromoted: knowledge?.count ?? 0,
|
|
163
|
-
};
|
|
164
|
-
}
|
|
165
|
-
/**
|
|
166
|
-
* Collect system health from both DBs.
|
|
167
|
-
*/
|
|
168
|
-
function collectHealth(mainDb, libraryDb) {
|
|
169
|
-
let mainSchemaVersion = null;
|
|
170
|
-
let librarySchemaVersion = null;
|
|
171
|
-
let mainDbOk = false;
|
|
172
|
-
let libraryDbOk = false;
|
|
173
|
-
try {
|
|
174
|
-
const row = safeQuery(mainDb, 'SELECT schema_version FROM _meta LIMIT 1');
|
|
175
|
-
mainSchemaVersion = row?.schema_version ?? null;
|
|
176
|
-
mainDbOk = true;
|
|
177
|
-
}
|
|
178
|
-
catch { /* empty */ }
|
|
179
|
-
try {
|
|
180
|
-
const row = safeQuery(libraryDb, 'SELECT schema_version FROM _library_meta LIMIT 1');
|
|
181
|
-
librarySchemaVersion = row?.schema_version ?? null;
|
|
182
|
-
libraryDbOk = true;
|
|
183
|
-
}
|
|
184
|
-
catch { /* empty */ }
|
|
185
|
-
return {
|
|
186
|
-
mainDbOk,
|
|
187
|
-
libraryDbOk,
|
|
188
|
-
mainSchemaVersion,
|
|
189
|
-
librarySchemaVersion,
|
|
190
|
-
packageVersion: HYPERMEM_COMPAT_VERSION,
|
|
191
|
-
cacheOk: null, // caller must inject cache status
|
|
192
|
-
snapshotAt: new Date().toISOString(),
|
|
193
|
-
};
|
|
194
|
-
}
|
|
195
|
-
/**
|
|
196
|
-
* Collect all metrics in a single pass.
|
|
197
|
-
* Safe to call on live DBs — all queries are read-only.
|
|
198
|
-
*/
|
|
199
|
-
export async function collectMetrics(mainDb, libraryDb, opts = {}) {
|
|
200
|
-
return {
|
|
201
|
-
facts: collectFactMetrics(libraryDb, opts),
|
|
202
|
-
wiki: collectWikiMetrics(libraryDb, opts),
|
|
203
|
-
episodes: collectEpisodeMetrics(libraryDb, opts),
|
|
204
|
-
vectors: collectVectorMetrics(libraryDb),
|
|
205
|
-
composition: collectCompositionMetrics(mainDb, opts),
|
|
206
|
-
ingestion: collectIngestionMetrics(libraryDb, opts),
|
|
207
|
-
health: collectHealth(mainDb, libraryDb),
|
|
208
|
-
};
|
|
209
|
-
}
|
|
210
|
-
/**
|
|
211
|
-
* Format metrics as a human-readable summary string.
|
|
212
|
-
* Suitable for logging or status replies.
|
|
213
|
-
*/
|
|
214
|
-
export function formatMetricsSummary(m) {
|
|
215
|
-
const lines = [];
|
|
216
|
-
lines.push(`hypermem ${m.health.packageVersion} — metrics snapshot ${m.health.snapshotAt}`);
|
|
217
|
-
lines.push('');
|
|
218
|
-
lines.push('## Memory');
|
|
219
|
-
lines.push(` facts: ${m.facts.totalFacts.toLocaleString()} total, ${m.facts.recentFacts} added last 24h`);
|
|
220
|
-
lines.push(` wiki: ${m.wiki.totalPages} pages, ${m.wiki.recentPages} synthesized last 24h${m.wiki.oldestPageAgeHours !== null ? `, oldest ${m.wiki.oldestPageAgeHours}h` : ''}`);
|
|
221
|
-
lines.push(` episodes: ${m.episodes.totalEpisodes.toLocaleString()}${m.episodes.avgSignificance !== null ? `, avg significance ${m.episodes.avgSignificance.toFixed(2)}` : ''}`);
|
|
222
|
-
lines.push(` vectors: ${m.vectors.totalVectors.toLocaleString()} indexed`);
|
|
223
|
-
if (Object.keys(m.vectors.byTable).length > 0) {
|
|
224
|
-
for (const [table, count] of Object.entries(m.vectors.byTable)) {
|
|
225
|
-
lines.push(` ${table}: ${count.toLocaleString()}`);
|
|
226
|
-
}
|
|
227
|
-
}
|
|
228
|
-
lines.push('');
|
|
229
|
-
lines.push('## Composition');
|
|
230
|
-
if (m.composition.totalTurns > 0) {
|
|
231
|
-
lines.push(` turns: ${m.composition.totalTurns.toLocaleString()}`);
|
|
232
|
-
if (m.composition.avgAssemblyMs !== null)
|
|
233
|
-
lines.push(` avg time: ${m.composition.avgAssemblyMs}ms`);
|
|
234
|
-
if (m.composition.p95AssemblyMs !== null)
|
|
235
|
-
lines.push(` p95 time: ${m.composition.p95AssemblyMs}ms`);
|
|
236
|
-
if (m.composition.avgOutputTokens !== null)
|
|
237
|
-
lines.push(` avg out: ${m.composition.avgOutputTokens} tokens`);
|
|
238
|
-
if (m.composition.avgInputTokens !== null)
|
|
239
|
-
lines.push(` avg in: ${m.composition.avgInputTokens} tokens`);
|
|
240
|
-
if (m.composition.avgCacheReadTokens !== null)
|
|
241
|
-
lines.push(` cache rd: ${m.composition.avgCacheReadTokens} tokens/turn`);
|
|
242
|
-
}
|
|
243
|
-
else {
|
|
244
|
-
lines.push(' no turn data yet');
|
|
245
|
-
}
|
|
246
|
-
lines.push('');
|
|
247
|
-
lines.push('## Ingestion');
|
|
248
|
-
lines.push(` facts extracted: ${m.ingestion.totalFactsExtracted.toLocaleString()}`);
|
|
249
|
-
lines.push(` episodes created: ${m.ingestion.totalEpisodesCreated.toLocaleString()}`);
|
|
250
|
-
lines.push(` knowledge promoted: ${m.ingestion.totalKnowledgePromoted.toLocaleString()}`);
|
|
251
|
-
lines.push('');
|
|
252
|
-
lines.push('## Health');
|
|
253
|
-
lines.push(` main db: ${m.health.mainDbOk ? '✅' : '❌'}${m.health.mainSchemaVersion !== null ? ` (schema v${m.health.mainSchemaVersion})` : ''}`);
|
|
254
|
-
lines.push(` library db: ${m.health.libraryDbOk ? '✅' : '❌'}${m.health.librarySchemaVersion !== null ? ` (schema v${m.health.librarySchemaVersion})` : ''}`);
|
|
255
|
-
if (m.health.cacheOk !== null) {
|
|
256
|
-
lines.push(` cache: ${m.health.cacheOk ? '✅' : '❌'}`);
|
|
257
|
-
}
|
|
258
|
-
return lines.join('\n');
|
|
259
|
-
}
|
|
260
|
-
//# sourceMappingURL=metrics-dashboard.js.map
|
|
@@ -1,57 +0,0 @@
|
|
|
1
|
-
/**
|
|
2
|
-
* obsidian-exporter.ts
|
|
3
|
-
*
|
|
4
|
-
* Exports hypermem facts and wiki pages to an Obsidian vault.
|
|
5
|
-
* Complements obsidian-watcher.ts (import direction).
|
|
6
|
-
*
|
|
7
|
-
* Output format:
|
|
8
|
-
* - Wiki pages → one .md file per topic, with frontmatter + [[wikilinks]]
|
|
9
|
-
* - Facts → grouped by domain into .md files, frontmatter-tagged
|
|
10
|
-
* - Index note → _hypermem-index.md with TOC and stats
|
|
11
|
-
*
|
|
12
|
-
* Safe to run repeatedly — existing files are overwritten only if content changed.
|
|
13
|
-
*/
|
|
14
|
-
import type { DatabaseSync } from 'node:sqlite';
|
|
15
|
-
export interface ObsidianExportConfig {
|
|
16
|
-
/** Absolute path to target Obsidian vault directory */
|
|
17
|
-
vaultPath: string;
|
|
18
|
-
/** Sub-folder inside vault to write hypermem exports. Default: 'hypermem' */
|
|
19
|
-
vaultFolder?: string;
|
|
20
|
-
/** Agent ID to scope export to. If omitted, exports all agents */
|
|
21
|
-
agentId?: string;
|
|
22
|
-
/** Include raw facts (not just wiki pages). Default: true */
|
|
23
|
-
includeFacts?: boolean;
|
|
24
|
-
/** Include synthesized wiki pages. Default: true */
|
|
25
|
-
includeWikiPages?: boolean;
|
|
26
|
-
/** Include an index note. Default: true */
|
|
27
|
-
includeIndex?: boolean;
|
|
28
|
-
/** Tag prefix added to all exported notes. Default: 'hypermem' */
|
|
29
|
-
tagPrefix?: string;
|
|
30
|
-
/** Skip files whose content hasn't changed. Default: true */
|
|
31
|
-
skipUnchanged?: boolean;
|
|
32
|
-
}
|
|
33
|
-
export interface ObsidianExportResult {
|
|
34
|
-
written: number;
|
|
35
|
-
skipped: number;
|
|
36
|
-
errors: string[];
|
|
37
|
-
outputDir: string;
|
|
38
|
-
files: string[];
|
|
39
|
-
}
|
|
40
|
-
/**
|
|
41
|
-
* Export hypermem memories to an Obsidian vault.
|
|
42
|
-
*
|
|
43
|
-
* @param mainDb - hypermem main DB (facts, episodes)
|
|
44
|
-
* @param libraryDb - hypermem library DB (knowledge, wiki pages)
|
|
45
|
-
* @param config - export config
|
|
46
|
-
* @returns ObsidianExportResult with counts and file list
|
|
47
|
-
*
|
|
48
|
-
* @example
|
|
49
|
-
* const result = await exportToVault(mainDb, libraryDb, {
|
|
50
|
-
* vaultPath: '/Users/me/obsidian/my-vault',
|
|
51
|
-
* agentId: 'main',
|
|
52
|
-
* tagPrefix: 'hypermem',
|
|
53
|
-
* });
|
|
54
|
-
* console.log(`Wrote ${result.written} files to ${result.outputDir}`);
|
|
55
|
-
*/
|
|
56
|
-
export declare function exportToVault(mainDb: DatabaseSync, libraryDb: DatabaseSync, config: ObsidianExportConfig): ObsidianExportResult;
|
|
57
|
-
//# sourceMappingURL=obsidian-exporter.d.ts.map
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"obsidian-exporter.d.ts","sourceRoot":"","sources":["../src/obsidian-exporter.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;GAYG;AAKH,OAAO,KAAK,EAAE,YAAY,EAAE,MAAM,aAAa,CAAC;AAIhD,MAAM,WAAW,oBAAoB;IACnC,uDAAuD;IACvD,SAAS,EAAE,MAAM,CAAC;IAClB,6EAA6E;IAC7E,WAAW,CAAC,EAAE,MAAM,CAAC;IACrB,kEAAkE;IAClE,OAAO,CAAC,EAAE,MAAM,CAAC;IACjB,6DAA6D;IAC7D,YAAY,CAAC,EAAE,OAAO,CAAC;IACvB,oDAAoD;IACpD,gBAAgB,CAAC,EAAE,OAAO,CAAC;IAC3B,2CAA2C;IAC3C,YAAY,CAAC,EAAE,OAAO,CAAC;IACvB,kEAAkE;IAClE,SAAS,CAAC,EAAE,MAAM,CAAC;IACnB,6DAA6D;IAC7D,aAAa,CAAC,EAAE,OAAO,CAAC;CACzB;AAED,MAAM,WAAW,oBAAoB;IACnC,OAAO,EAAE,MAAM,CAAC;IAChB,OAAO,EAAE,MAAM,CAAC;IAChB,MAAM,EAAE,MAAM,EAAE,CAAC;IACjB,SAAS,EAAE,MAAM,CAAC;IAClB,KAAK,EAAE,MAAM,EAAE,CAAC;CACjB;AA8SD;;;;;;;;;;;;;;;GAeG;AACH,wBAAgB,aAAa,CAC3B,MAAM,EAAE,YAAY,EACpB,SAAS,EAAE,YAAY,EACvB,MAAM,EAAE,oBAAoB,GAC3B,oBAAoB,CAiCtB"}
|
|
@@ -1,274 +0,0 @@
|
|
|
1
|
-
/**
|
|
2
|
-
* obsidian-exporter.ts
|
|
3
|
-
*
|
|
4
|
-
* Exports hypermem facts and wiki pages to an Obsidian vault.
|
|
5
|
-
* Complements obsidian-watcher.ts (import direction).
|
|
6
|
-
*
|
|
7
|
-
* Output format:
|
|
8
|
-
* - Wiki pages → one .md file per topic, with frontmatter + [[wikilinks]]
|
|
9
|
-
* - Facts → grouped by domain into .md files, frontmatter-tagged
|
|
10
|
-
* - Index note → _hypermem-index.md with TOC and stats
|
|
11
|
-
*
|
|
12
|
-
* Safe to run repeatedly — existing files are overwritten only if content changed.
|
|
13
|
-
*/
|
|
14
|
-
import { mkdirSync, writeFileSync, existsSync, readFileSync } from 'node:fs';
|
|
15
|
-
import { join, resolve } from 'node:path';
|
|
16
|
-
import { createHash } from 'node:crypto';
|
|
17
|
-
// ─── Helpers ────────────────────────────────────────────────────────────────
|
|
18
|
-
function hashContent(content) {
|
|
19
|
-
return createHash('sha256').update(content).digest('hex').slice(0, 16);
|
|
20
|
-
}
|
|
21
|
-
function safeFilename(name) {
|
|
22
|
-
return name
|
|
23
|
-
.replace(/[\\/:*?"<>|]/g, '-')
|
|
24
|
-
.replace(/\s+/g, ' ')
|
|
25
|
-
.trim()
|
|
26
|
-
.slice(0, 200);
|
|
27
|
-
}
|
|
28
|
-
function formatTimestamp(unixMs) {
|
|
29
|
-
return new Date(unixMs).toISOString().split('T')[0];
|
|
30
|
-
}
|
|
31
|
-
function yamlString(value) {
|
|
32
|
-
if (/[:#\[\]{},&*?|<>=!%@`]/.test(value) || value.includes('\n')) {
|
|
33
|
-
return `"${value.replace(/"/g, '\\"')}"`;
|
|
34
|
-
}
|
|
35
|
-
return value;
|
|
36
|
-
}
|
|
37
|
-
function buildFrontmatter(fields) {
|
|
38
|
-
const lines = ['---'];
|
|
39
|
-
for (const [key, value] of Object.entries(fields)) {
|
|
40
|
-
if (value === null || value === undefined)
|
|
41
|
-
continue;
|
|
42
|
-
if (Array.isArray(value)) {
|
|
43
|
-
if (value.length === 0)
|
|
44
|
-
continue;
|
|
45
|
-
lines.push(`${key}:`);
|
|
46
|
-
for (const item of value)
|
|
47
|
-
lines.push(` - ${yamlString(String(item))}`);
|
|
48
|
-
}
|
|
49
|
-
else {
|
|
50
|
-
lines.push(`${key}: ${yamlString(String(value))}`);
|
|
51
|
-
}
|
|
52
|
-
}
|
|
53
|
-
lines.push('---', '');
|
|
54
|
-
return lines.join('\n');
|
|
55
|
-
}
|
|
56
|
-
function writeIfChanged(filePath, content, skipUnchanged, result) {
|
|
57
|
-
if (skipUnchanged && existsSync(filePath)) {
|
|
58
|
-
const existing = readFileSync(filePath, 'utf8');
|
|
59
|
-
if (existing === content) {
|
|
60
|
-
result.skipped++;
|
|
61
|
-
return;
|
|
62
|
-
}
|
|
63
|
-
}
|
|
64
|
-
writeFileSync(filePath, content, 'utf8');
|
|
65
|
-
result.written++;
|
|
66
|
-
result.files.push(filePath);
|
|
67
|
-
}
|
|
68
|
-
// ─── Wiki page export ────────────────────────────────────────────────────────
|
|
69
|
-
function exportWikiPages(libraryDb, outputDir, agentFilter, tagPrefix, skipUnchanged, result) {
|
|
70
|
-
const wikiDir = join(outputDir, 'wiki');
|
|
71
|
-
mkdirSync(wikiDir, { recursive: true });
|
|
72
|
-
let rows;
|
|
73
|
-
try {
|
|
74
|
-
const sql = agentFilter
|
|
75
|
-
? `SELECT * FROM knowledge WHERE agent_id = ? AND superseded_at IS NULL AND domain = 'topic-synthesis' ORDER BY updated_at DESC`
|
|
76
|
-
: `SELECT * FROM knowledge WHERE superseded_at IS NULL AND domain = 'topic-synthesis' ORDER BY updated_at DESC`;
|
|
77
|
-
rows = (agentFilter
|
|
78
|
-
? libraryDb.prepare(sql).all(agentFilter)
|
|
79
|
-
: libraryDb.prepare(sql).all());
|
|
80
|
-
}
|
|
81
|
-
catch {
|
|
82
|
-
result.errors.push('wiki: failed to query knowledge table');
|
|
83
|
-
return [];
|
|
84
|
-
}
|
|
85
|
-
const topicFiles = [];
|
|
86
|
-
for (const row of rows) {
|
|
87
|
-
try {
|
|
88
|
-
const rawTags = row.tags ? JSON.parse(row.tags) : [];
|
|
89
|
-
const tags = [tagPrefix, `${tagPrefix}/wiki`, ...rawTags];
|
|
90
|
-
// Resolve cross-links from knowledge_links table
|
|
91
|
-
let linkRows = [];
|
|
92
|
-
try {
|
|
93
|
-
linkRows = libraryDb.prepare(`
|
|
94
|
-
SELECT kl.from_id, kl.to_id, kl.link_type, k.key as to_key
|
|
95
|
-
FROM knowledge_links kl
|
|
96
|
-
JOIN knowledge k ON k.id = kl.to_id
|
|
97
|
-
WHERE kl.from_id = ? AND kl.from_type = 'knowledge' AND kl.to_type = 'knowledge'
|
|
98
|
-
`).all(row.id);
|
|
99
|
-
}
|
|
100
|
-
catch {
|
|
101
|
-
// knowledge_links may not exist yet — non-fatal
|
|
102
|
-
}
|
|
103
|
-
const wikilinks = linkRows
|
|
104
|
-
.map(l => `[[${safeFilename(l.to_key)}]]`)
|
|
105
|
-
.join(' ');
|
|
106
|
-
const frontmatter = buildFrontmatter({
|
|
107
|
-
title: row.key,
|
|
108
|
-
tags,
|
|
109
|
-
agent: row.agent_id,
|
|
110
|
-
topic: row.topic || row.key,
|
|
111
|
-
domain: row.domain,
|
|
112
|
-
'hypermem-type': 'wiki-page',
|
|
113
|
-
'last-synthesized': formatTimestamp(row.updated_at),
|
|
114
|
-
'created-at': formatTimestamp(row.created_at),
|
|
115
|
-
});
|
|
116
|
-
let body = row.content.trim();
|
|
117
|
-
if (linkRows.length > 0) {
|
|
118
|
-
body += `\n\n## Related Topics\n\n${wikilinks}`;
|
|
119
|
-
}
|
|
120
|
-
const note = `${frontmatter}${body}\n`;
|
|
121
|
-
const fileName = `${safeFilename(row.key)}.md`;
|
|
122
|
-
const filePath = join(wikiDir, fileName);
|
|
123
|
-
writeIfChanged(filePath, note, skipUnchanged, result);
|
|
124
|
-
topicFiles.push(fileName);
|
|
125
|
-
}
|
|
126
|
-
catch (err) {
|
|
127
|
-
result.errors.push(`wiki: failed to export topic '${row.key}': ${String(err)}`);
|
|
128
|
-
}
|
|
129
|
-
}
|
|
130
|
-
return topicFiles;
|
|
131
|
-
}
|
|
132
|
-
// ─── Facts export ────────────────────────────────────────────────────────────
|
|
133
|
-
function exportFacts(mainDb, outputDir, agentFilter, tagPrefix, skipUnchanged, result) {
|
|
134
|
-
const factsDir = join(outputDir, 'facts');
|
|
135
|
-
mkdirSync(factsDir, { recursive: true });
|
|
136
|
-
let rows;
|
|
137
|
-
try {
|
|
138
|
-
const sql = agentFilter
|
|
139
|
-
? `SELECT * FROM facts WHERE agent_id = ? ORDER BY domain, updated_at DESC`
|
|
140
|
-
: `SELECT * FROM facts ORDER BY agent_id, domain, updated_at DESC`;
|
|
141
|
-
rows = (agentFilter
|
|
142
|
-
? mainDb.prepare(sql).all(agentFilter)
|
|
143
|
-
: mainDb.prepare(sql).all());
|
|
144
|
-
}
|
|
145
|
-
catch {
|
|
146
|
-
result.errors.push('facts: failed to query facts table');
|
|
147
|
-
return [];
|
|
148
|
-
}
|
|
149
|
-
// Group by agent + domain
|
|
150
|
-
const groups = new Map();
|
|
151
|
-
for (const row of rows) {
|
|
152
|
-
const domain = row.domain || 'general';
|
|
153
|
-
const key = `${row.agent_id}__${domain}`;
|
|
154
|
-
if (!groups.has(key))
|
|
155
|
-
groups.set(key, []);
|
|
156
|
-
groups.get(key).push(row);
|
|
157
|
-
}
|
|
158
|
-
const factFiles = [];
|
|
159
|
-
for (const [groupKey, facts] of groups) {
|
|
160
|
-
try {
|
|
161
|
-
const [agentId, domain] = groupKey.split('__');
|
|
162
|
-
const rawTags = [tagPrefix, `${tagPrefix}/facts`, `agent/${agentId}`, `domain/${domain}`];
|
|
163
|
-
const frontmatter = buildFrontmatter({
|
|
164
|
-
title: `${agentId} — ${domain} facts`,
|
|
165
|
-
tags: rawTags,
|
|
166
|
-
agent: agentId,
|
|
167
|
-
domain,
|
|
168
|
-
'hypermem-type': 'facts',
|
|
169
|
-
'fact-count': facts.length,
|
|
170
|
-
'last-updated': formatTimestamp(Math.max(...facts.map(f => f.updated_at))),
|
|
171
|
-
});
|
|
172
|
-
const lines = [`# ${agentId} — ${domain}\n`];
|
|
173
|
-
for (const fact of facts) {
|
|
174
|
-
const confidence = Math.round(fact.confidence * 100);
|
|
175
|
-
const date = formatTimestamp(fact.updated_at);
|
|
176
|
-
const factTags = fact.tags
|
|
177
|
-
? JSON.parse(fact.tags).map(t => `#${t}`).join(' ')
|
|
178
|
-
: '';
|
|
179
|
-
lines.push(`- ${fact.content} `);
|
|
180
|
-
lines.push(` *confidence: ${confidence}% · ${date}${factTags ? ' · ' + factTags : ''}*\n`);
|
|
181
|
-
}
|
|
182
|
-
const note = `${frontmatter}${lines.join('\n')}\n`;
|
|
183
|
-
const fileName = `${safeFilename(agentId)}-${safeFilename(domain)}.md`;
|
|
184
|
-
const filePath = join(factsDir, fileName);
|
|
185
|
-
writeIfChanged(filePath, note, skipUnchanged, result);
|
|
186
|
-
factFiles.push(fileName);
|
|
187
|
-
}
|
|
188
|
-
catch (err) {
|
|
189
|
-
result.errors.push(`facts: failed to export group '${groupKey}': ${String(err)}`);
|
|
190
|
-
}
|
|
191
|
-
}
|
|
192
|
-
return factFiles;
|
|
193
|
-
}
|
|
194
|
-
// ─── Index note ───────────────────────────────────────────────────────────────
|
|
195
|
-
function exportIndex(outputDir, wikiFiles, factFiles, tagPrefix, skipUnchanged, result) {
|
|
196
|
-
const now = new Date().toISOString();
|
|
197
|
-
const frontmatter = buildFrontmatter({
|
|
198
|
-
title: 'hypermem export index',
|
|
199
|
-
tags: [tagPrefix, `${tagPrefix}/index`],
|
|
200
|
-
'hypermem-type': 'index',
|
|
201
|
-
'exported-at': now,
|
|
202
|
-
'wiki-pages': wikiFiles.length,
|
|
203
|
-
'fact-files': factFiles.length,
|
|
204
|
-
});
|
|
205
|
-
const lines = [
|
|
206
|
-
'# hypermem export index\n',
|
|
207
|
-
`> exported at ${now}\n`,
|
|
208
|
-
];
|
|
209
|
-
if (wikiFiles.length > 0) {
|
|
210
|
-
lines.push('## wiki pages\n');
|
|
211
|
-
for (const f of wikiFiles) {
|
|
212
|
-
const name = f.replace('.md', '');
|
|
213
|
-
lines.push(`- [[wiki/${name}]]`);
|
|
214
|
-
}
|
|
215
|
-
lines.push('');
|
|
216
|
-
}
|
|
217
|
-
if (factFiles.length > 0) {
|
|
218
|
-
lines.push('## fact collections\n');
|
|
219
|
-
for (const f of factFiles) {
|
|
220
|
-
const name = f.replace('.md', '');
|
|
221
|
-
lines.push(`- [[facts/${name}]]`);
|
|
222
|
-
}
|
|
223
|
-
lines.push('');
|
|
224
|
-
}
|
|
225
|
-
const note = `${frontmatter}${lines.join('\n')}\n`;
|
|
226
|
-
const filePath = join(outputDir, '_hypermem-index.md');
|
|
227
|
-
writeIfChanged(filePath, note, skipUnchanged, result);
|
|
228
|
-
}
|
|
229
|
-
// ─── Main export function ────────────────────────────────────────────────────
|
|
230
|
-
/**
|
|
231
|
-
* Export hypermem memories to an Obsidian vault.
|
|
232
|
-
*
|
|
233
|
-
* @param mainDb - hypermem main DB (facts, episodes)
|
|
234
|
-
* @param libraryDb - hypermem library DB (knowledge, wiki pages)
|
|
235
|
-
* @param config - export config
|
|
236
|
-
* @returns ObsidianExportResult with counts and file list
|
|
237
|
-
*
|
|
238
|
-
* @example
|
|
239
|
-
* const result = await exportToVault(mainDb, libraryDb, {
|
|
240
|
-
* vaultPath: '/Users/me/obsidian/my-vault',
|
|
241
|
-
* agentId: 'main',
|
|
242
|
-
* tagPrefix: 'hypermem',
|
|
243
|
-
* });
|
|
244
|
-
* console.log(`Wrote ${result.written} files to ${result.outputDir}`);
|
|
245
|
-
*/
|
|
246
|
-
export function exportToVault(mainDb, libraryDb, config) {
|
|
247
|
-
const vaultFolder = config.vaultFolder ?? 'hypermem';
|
|
248
|
-
const tagPrefix = config.tagPrefix ?? 'hypermem';
|
|
249
|
-
const includeFacts = config.includeFacts ?? true;
|
|
250
|
-
const includeWikiPages = config.includeWikiPages ?? true;
|
|
251
|
-
const includeIndex = config.includeIndex ?? true;
|
|
252
|
-
const skipUnchanged = config.skipUnchanged ?? true;
|
|
253
|
-
const agentFilter = config.agentId ?? null;
|
|
254
|
-
const outputDir = resolve(config.vaultPath, vaultFolder);
|
|
255
|
-
mkdirSync(outputDir, { recursive: true });
|
|
256
|
-
const result = {
|
|
257
|
-
written: 0,
|
|
258
|
-
skipped: 0,
|
|
259
|
-
errors: [],
|
|
260
|
-
outputDir,
|
|
261
|
-
files: [],
|
|
262
|
-
};
|
|
263
|
-
const wikiFiles = includeWikiPages
|
|
264
|
-
? exportWikiPages(libraryDb, outputDir, agentFilter, tagPrefix, skipUnchanged, result)
|
|
265
|
-
: [];
|
|
266
|
-
const factFiles = includeFacts
|
|
267
|
-
? exportFacts(mainDb, outputDir, agentFilter, tagPrefix, skipUnchanged, result)
|
|
268
|
-
: [];
|
|
269
|
-
if (includeIndex) {
|
|
270
|
-
exportIndex(outputDir, wikiFiles, factFiles, tagPrefix, skipUnchanged, result);
|
|
271
|
-
}
|
|
272
|
-
return result;
|
|
273
|
-
}
|
|
274
|
-
//# sourceMappingURL=obsidian-exporter.js.map
|