mem-os-python 1.6.27__py3-none-any.whl
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.
- mem_os_python-1.6.27.dist-info/METADATA +1032 -0
- mem_os_python-1.6.27.dist-info/RECORD +253 -0
- mem_os_python-1.6.27.dist-info/WHEEL +4 -0
- mem_os_python-1.6.27.dist-info/entry_points.txt +2 -0
- mem_os_python-1.6.27.dist-info/licenses/LICENSE +21 -0
- memos/__init__.py +16 -0
- memos/_js/adapters/anthropic.d.ts +279 -0
- memos/_js/adapters/anthropic.d.ts.map +1 -0
- memos/_js/adapters/anthropic.js +348 -0
- memos/_js/adapters/anthropic.js.map +1 -0
- memos/_js/adapters/base.d.ts +10 -0
- memos/_js/adapters/base.d.ts.map +1 -0
- memos/_js/adapters/base.js +2 -0
- memos/_js/adapters/base.js.map +1 -0
- memos/_js/adapters/openai.d.ts +264 -0
- memos/_js/adapters/openai.d.ts.map +1 -0
- memos/_js/adapters/openai.js +342 -0
- memos/_js/adapters/openai.js.map +1 -0
- memos/_js/apps/explorer.d.ts +244 -0
- memos/_js/apps/explorer.d.ts.map +1 -0
- memos/_js/apps/explorer.js +738 -0
- memos/_js/apps/explorer.js.map +1 -0
- memos/_js/citations.d.ts +65 -0
- memos/_js/citations.d.ts.map +1 -0
- memos/_js/citations.js +143 -0
- memos/_js/citations.js.map +1 -0
- memos/_js/cli-browse.d.ts +3 -0
- memos/_js/cli-browse.d.ts.map +1 -0
- memos/_js/cli-browse.js +129 -0
- memos/_js/cli-browse.js.map +1 -0
- memos/_js/cli-completion.d.ts +31 -0
- memos/_js/cli-completion.d.ts.map +1 -0
- memos/_js/cli-completion.js +340 -0
- memos/_js/cli-completion.js.map +1 -0
- memos/_js/cli-help.d.ts +18 -0
- memos/_js/cli-help.d.ts.map +1 -0
- memos/_js/cli-help.js +357 -0
- memos/_js/cli-help.js.map +1 -0
- memos/_js/cli.d.ts +28 -0
- memos/_js/cli.d.ts.map +1 -0
- memos/_js/cli.js +2880 -0
- memos/_js/cli.js.map +1 -0
- memos/_js/compression.d.ts +25 -0
- memos/_js/compression.d.ts.map +1 -0
- memos/_js/compression.js +319 -0
- memos/_js/compression.js.map +1 -0
- memos/_js/confidence-machine.d.ts +99 -0
- memos/_js/confidence-machine.d.ts.map +1 -0
- memos/_js/confidence-machine.js +222 -0
- memos/_js/confidence-machine.js.map +1 -0
- memos/_js/context-pack.d.ts +506 -0
- memos/_js/context-pack.d.ts.map +1 -0
- memos/_js/context-pack.js +1435 -0
- memos/_js/context-pack.js.map +1 -0
- memos/_js/contradictions.d.ts +160 -0
- memos/_js/contradictions.d.ts.map +1 -0
- memos/_js/contradictions.js +255 -0
- memos/_js/contradictions.js.map +1 -0
- memos/_js/dashboard.d.ts +30 -0
- memos/_js/dashboard.d.ts.map +1 -0
- memos/_js/dashboard.js +302 -0
- memos/_js/dashboard.js.map +1 -0
- memos/_js/ebbinghaus.d.ts +29 -0
- memos/_js/ebbinghaus.d.ts.map +1 -0
- memos/_js/ebbinghaus.js +32 -0
- memos/_js/ebbinghaus.js.map +1 -0
- memos/_js/embedding-queue.d.ts +190 -0
- memos/_js/embedding-queue.d.ts.map +1 -0
- memos/_js/embedding-queue.js +316 -0
- memos/_js/embedding-queue.js.map +1 -0
- memos/_js/embeddings.d.ts +187 -0
- memos/_js/embeddings.d.ts.map +1 -0
- memos/_js/embeddings.js +633 -0
- memos/_js/embeddings.js.map +1 -0
- memos/_js/entity-extraction.d.ts +54 -0
- memos/_js/entity-extraction.d.ts.map +1 -0
- memos/_js/entity-extraction.js +325 -0
- memos/_js/entity-extraction.js.map +1 -0
- memos/_js/entity-index.d.ts +93 -0
- memos/_js/entity-index.d.ts.map +1 -0
- memos/_js/entity-index.js +165 -0
- memos/_js/entity-index.js.map +1 -0
- memos/_js/event-memory.d.ts +147 -0
- memos/_js/event-memory.d.ts.map +1 -0
- memos/_js/event-memory.js +290 -0
- memos/_js/event-memory.js.map +1 -0
- memos/_js/external-import.d.ts +98 -0
- memos/_js/external-import.d.ts.map +1 -0
- memos/_js/external-import.js +669 -0
- memos/_js/external-import.js.map +1 -0
- memos/_js/fidelity.d.ts +367 -0
- memos/_js/fidelity.d.ts.map +1 -0
- memos/_js/fidelity.js +911 -0
- memos/_js/fidelity.js.map +1 -0
- memos/_js/graph-expansion.d.ts +119 -0
- memos/_js/graph-expansion.d.ts.map +1 -0
- memos/_js/graph-expansion.js +213 -0
- memos/_js/graph-expansion.js.map +1 -0
- memos/_js/graph-mermaid.d.ts +13 -0
- memos/_js/graph-mermaid.d.ts.map +1 -0
- memos/_js/graph-mermaid.js +32 -0
- memos/_js/graph-mermaid.js.map +1 -0
- memos/_js/graph.d.ts +170 -0
- memos/_js/graph.d.ts.map +1 -0
- memos/_js/graph.js +482 -0
- memos/_js/graph.js.map +1 -0
- memos/_js/harness.d.ts +63 -0
- memos/_js/harness.d.ts.map +1 -0
- memos/_js/harness.js +93 -0
- memos/_js/harness.js.map +1 -0
- memos/_js/importance.d.ts +118 -0
- memos/_js/importance.d.ts.map +1 -0
- memos/_js/importance.js +144 -0
- memos/_js/importance.js.map +1 -0
- memos/_js/index.d.ts +51 -0
- memos/_js/index.d.ts.map +1 -0
- memos/_js/index.js +53 -0
- memos/_js/index.js.map +1 -0
- memos/_js/mcp.d.ts +58 -0
- memos/_js/mcp.d.ts.map +1 -0
- memos/_js/mcp.js +1853 -0
- memos/_js/mcp.js.map +1 -0
- memos/_js/memory.d.ts +1762 -0
- memos/_js/memory.d.ts.map +1 -0
- memos/_js/memory.js +6283 -0
- memos/_js/memory.js.map +1 -0
- memos/_js/procedural.d.ts +74 -0
- memos/_js/procedural.d.ts.map +1 -0
- memos/_js/procedural.js +125 -0
- memos/_js/procedural.js.map +1 -0
- memos/_js/project-config.d.ts +68 -0
- memos/_js/project-config.d.ts.map +1 -0
- memos/_js/project-config.js +59 -0
- memos/_js/project-config.js.map +1 -0
- memos/_js/proof-of-forgetting.d.ts +57 -0
- memos/_js/proof-of-forgetting.d.ts.map +1 -0
- memos/_js/proof-of-forgetting.js +80 -0
- memos/_js/proof-of-forgetting.js.map +1 -0
- memos/_js/provenance.d.ts +122 -0
- memos/_js/provenance.d.ts.map +1 -0
- memos/_js/provenance.js +182 -0
- memos/_js/provenance.js.map +1 -0
- memos/_js/quarantine-commands.d.ts +23 -0
- memos/_js/quarantine-commands.d.ts.map +1 -0
- memos/_js/quarantine-commands.js +42 -0
- memos/_js/quarantine-commands.js.map +1 -0
- memos/_js/quarantine.d.ts +120 -0
- memos/_js/quarantine.d.ts.map +1 -0
- memos/_js/quarantine.js +873 -0
- memos/_js/quarantine.js.map +1 -0
- memos/_js/redact.d.ts +12 -0
- memos/_js/redact.d.ts.map +1 -0
- memos/_js/redact.js +26 -0
- memos/_js/redact.js.map +1 -0
- memos/_js/repl.d.ts +57 -0
- memos/_js/repl.d.ts.map +1 -0
- memos/_js/repl.js +295 -0
- memos/_js/repl.js.map +1 -0
- memos/_js/rerank-local.d.ts +61 -0
- memos/_js/rerank-local.d.ts.map +1 -0
- memos/_js/rerank-local.js +210 -0
- memos/_js/rerank-local.js.map +1 -0
- memos/_js/retain-filter.d.ts +98 -0
- memos/_js/retain-filter.d.ts.map +1 -0
- memos/_js/retain-filter.js +232 -0
- memos/_js/retain-filter.js.map +1 -0
- memos/_js/retrieval.d.ts +265 -0
- memos/_js/retrieval.d.ts.map +1 -0
- memos/_js/retrieval.js +1018 -0
- memos/_js/retrieval.js.map +1 -0
- memos/_js/revert.d.ts +77 -0
- memos/_js/revert.d.ts.map +1 -0
- memos/_js/revert.js +252 -0
- memos/_js/revert.js.map +1 -0
- memos/_js/scope.d.ts +30 -0
- memos/_js/scope.d.ts.map +1 -0
- memos/_js/scope.js +71 -0
- memos/_js/scope.js.map +1 -0
- memos/_js/semantic-screen.d.ts +152 -0
- memos/_js/semantic-screen.d.ts.map +1 -0
- memos/_js/semantic-screen.js +290 -0
- memos/_js/semantic-screen.js.map +1 -0
- memos/_js/session-hooks.d.ts +127 -0
- memos/_js/session-hooks.d.ts.map +1 -0
- memos/_js/session-hooks.js +482 -0
- memos/_js/session-hooks.js.map +1 -0
- memos/_js/storage/sqlite.d.ts +427 -0
- memos/_js/storage/sqlite.d.ts.map +1 -0
- memos/_js/storage/sqlite.js +2428 -0
- memos/_js/storage/sqlite.js.map +1 -0
- memos/_js/sync.d.ts +213 -0
- memos/_js/sync.d.ts.map +1 -0
- memos/_js/sync.js +389 -0
- memos/_js/sync.js.map +1 -0
- memos/_js/tamper-log.d.ts +98 -0
- memos/_js/tamper-log.d.ts.map +1 -0
- memos/_js/tamper-log.js +327 -0
- memos/_js/tamper-log.js.map +1 -0
- memos/_js/temporal.d.ts +92 -0
- memos/_js/temporal.d.ts.map +1 -0
- memos/_js/temporal.js +536 -0
- memos/_js/temporal.js.map +1 -0
- memos/_js/time-travel.d.ts +38 -0
- memos/_js/time-travel.d.ts.map +1 -0
- memos/_js/time-travel.js +46 -0
- memos/_js/time-travel.js.map +1 -0
- memos/_js/timestamp-format.d.ts +18 -0
- memos/_js/timestamp-format.d.ts.map +1 -0
- memos/_js/timestamp-format.js +52 -0
- memos/_js/timestamp-format.js.map +1 -0
- memos/_js/triple-extraction.d.ts +31 -0
- memos/_js/triple-extraction.d.ts.map +1 -0
- memos/_js/triple-extraction.js +116 -0
- memos/_js/triple-extraction.js.map +1 -0
- memos/_js/types.d.ts +2474 -0
- memos/_js/types.d.ts.map +1 -0
- memos/_js/types.js +20 -0
- memos/_js/types.js.map +1 -0
- memos/_js/updater.d.ts +95 -0
- memos/_js/updater.d.ts.map +1 -0
- memos/_js/updater.js +268 -0
- memos/_js/updater.js.map +1 -0
- memos/_js/version.d.ts +17 -0
- memos/_js/version.d.ts.map +1 -0
- memos/_js/version.js +34 -0
- memos/_js/version.js.map +1 -0
- memos/_js/vision/clip-query-cache.d.ts +58 -0
- memos/_js/vision/clip-query-cache.d.ts.map +1 -0
- memos/_js/vision/clip-query-cache.js +79 -0
- memos/_js/vision/clip-query-cache.js.map +1 -0
- memos/_js/vision/clip.d.ts +113 -0
- memos/_js/vision/clip.d.ts.map +1 -0
- memos/_js/vision/clip.js +224 -0
- memos/_js/vision/clip.js.map +1 -0
- memos/_js/vision/fake-clip.d.ts +55 -0
- memos/_js/vision/fake-clip.d.ts.map +1 -0
- memos/_js/vision/fake-clip.js +122 -0
- memos/_js/vision/fake-clip.js.map +1 -0
- memos/_js/vision/index.d.ts +15 -0
- memos/_js/vision/index.d.ts.map +1 -0
- memos/_js/vision/index.js +13 -0
- memos/_js/vision/index.js.map +1 -0
- memos/_js/vision/store.d.ts +137 -0
- memos/_js/vision/store.d.ts.map +1 -0
- memos/_js/vision/store.js +383 -0
- memos/_js/vision/store.js.map +1 -0
- memos/adapters/__init__.py +0 -0
- memos/adapters/crewai.py +385 -0
- memos/adapters/langchain.py +301 -0
- memos/adapters/ollama.py +396 -0
- memos/server/__init__.py +0 -0
- memos/server/main.py +547 -0
- memos/server/routes.py +360 -0
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"external-import.js","sourceRoot":"","sources":["../src/external-import.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;GA8BG;AAEH,OAAO,EAAE,UAAU,EAAE,MAAM,aAAa,CAAC;AAyBzC,MAAM,kBAAkB,GAAG,CAAC,CAAC;AAC7B,MAAM,iBAAiB,GAAG,GAAG,CAAC;AAE9B,SAAS,QAAQ,CAAC,KAAc;IAC9B,OAAO,KAAK,IAAI,OAAO,KAAK,KAAK,QAAQ,IAAI,CAAC,KAAK,CAAC,OAAO,CAAC,KAAK,CAAC;QAChE,CAAC,CAAE,KAAiC;QACpC,CAAC,CAAC,IAAI,CAAC;AACX,CAAC;AAED,SAAS,WAAW,CAClB,MAA+B,EAC/B,IAAuB;IAEvB,KAAK,MAAM,GAAG,IAAI,IAAI,EAAE,CAAC;QACvB,MAAM,KAAK,GAAG,MAAM,CAAC,GAAG,CAAC,CAAC;QAC1B,IACE,OAAO,KAAK,KAAK,QAAQ;YACzB,KAAK,CAAC,IAAI,EAAE,CAAC,MAAM,IAAI,kBAAkB,EACzC,CAAC;YACD,OAAO,KAAK,CAAC,IAAI,EAAE,CAAC;QACtB,CAAC;IACH,CAAC;IACD,OAAO,SAAS,CAAC;AACnB,CAAC;AAED,0EAA0E;AAC1E,SAAS,mBAAmB,CAC1B,OAAgB,EAChB,YAAqB;IAErB,MAAM,KAAK,GAAyB,EAAE,CAAC;IACvC,IAAI,CAAC,OAAO,IAAI,OAAO,OAAO,KAAK,QAAQ;QAAE,OAAO,KAAK,CAAC;IAC1D,KAAK,MAAM,IAAI,IAAI,MAAM,CAAC,MAAM,CAAC,OAAkC,CAAC,EAAE,CAAC;QACrE,MAAM,MAAM,GAAG,QAAQ,CAAC,IAAI,CAAC,CAAC;QAC9B,MAAM,OAAO,GAAG,MAAM,CAAC,CAAC,CAAC,QAAQ,CAAC,MAAM,CAAC,OAAO,CAAC,CAAC,CAAC,CAAC,IAAI,CAAC;QACzD,IAAI,CAAC,OAAO;YAAE,SAAS;QACvB,MAAM,MAAM,GAAG,QAAQ,CAAC,OAAO,CAAC,MAAM,CAAC,CAAC;QACxC,MAAM,IAAI,GAAG,MAAM,CAAC,CAAC,CAAC,MAAM,CAAC,MAAM,CAAC,IAAI,IAAI,EAAE,CAAC,CAAC,CAAC,CAAC,EAAE,CAAC;QACrD,IAAI,IAAI,KAAK,MAAM;YAAE,SAAS;QAC9B,MAAM,OAAO,GAAG,QAAQ,CAAC,OAAO,CAAC,OAAO,CAAC,CAAC;QAC1C,MAAM,KAAK,GAAG,OAAO,EAAE,KAAK,CAAC;QAC7B,IAAI,CAAC,KAAK,CAAC,OAAO,CAAC,KAAK,CAAC;YAAE,SAAS;QACpC,MAAM,IAAI,GAAG,KAAK;aACf,MAAM,CACL,CAAC,CAAC,EAAe,EAAE,CACjB,OAAO,CAAC,KAAK,QAAQ,IAAI,CAAC,CAAC,IAAI,EAAE,CAAC,MAAM,IAAI,kBAAkB,CACjE;aACA,IAAI,CAAC,IAAI,CAAC;aACV,IAAI,EAAE,CAAC;QACV,IAAI,CAAC,IAAI;YAAE,SAAS;QACpB,MAAM,UAAU,GACd,OAAO,OAAO,CAAC,WAAW,KAAK,QAAQ;YACrC,CAAC,CAAC,OAAO,CAAC,WAAW,GAAG,IAAI;YAC5B,CAAC,CAAC,SAAS,CAAC;QAChB,KAAK,CAAC,IAAI,CAAC;YACT,OAAO,EAAE,IAAI;YACb,GAAG,CAAC,UAAU,CAAC,CAAC,CAAC,EAAE,SAAS,EAAE,UAAU,EAAE,CAAC,CAAC,CAAC,EAAE,CAAC;YAChD,GAAG,CAAC,YAAY,CAAC,CAAC,CAAC,EAAE,YAAY,EAAE,CAAC,CAAC,CAAC,EAAE,CAAC;SAC1C,CAAC,CAAC;IACL,CAAC;IACD,OAAO,KAAK,CAAC;AACf,CAAC;AAED,wEAAwE;AACxE,SAAS,uBAAuB,CAC9B,QAAiB,EACjB,YAAqB;IAErB,MAAM,KAAK,GAAyB,EAAE,CAAC;IACvC,IAAI,CAAC,KAAK,CAAC,OAAO,CAAC,QAAQ,CAAC;QAAE,OAAO,KAAK,CAAC;IAC3C,KAAK,MAAM,OAAO,IAAI,QAAQ,EAAE,CAAC;QAC/B,MAAM,MAAM,GAAG,QAAQ,CAAC,OAAO,CAAC,CAAC;QACjC,IAAI,CAAC,MAAM;YAAE,SAAS;QACtB,MAAM,MAAM,GAAG,MAAM,CAAC,MAAM,CAAC,MAAM,IAAI,EAAE,CAAC,CAAC;QAC3C,IAAI,MAAM,KAAK,OAAO;YAAE,SAAS;QACjC,MAAM,IAAI,GAAG,OAAO,MAAM,CAAC,IAAI,KAAK,QAAQ,CAAC,CAAC,CAAC,MAAM,CAAC,IAAI,CAAC,IAAI,EAAE,CAAC,CAAC,CAAC,EAAE,CAAC;QACvE,IAAI,IAAI,CAAC,MAAM,GAAG,kBAAkB;YAAE,SAAS;QAC/C,IAAI,SAA6B,CAAC;QAClC,IAAI,OAAO,MAAM,CAAC,UAAU,KAAK,QAAQ,EAAE,CAAC;YAC1C,MAAM,MAAM,GAAG,IAAI,CAAC,KAAK,CAAC,MAAM,CAAC,UAAU,CAAC,CAAC;YAC7C,SAAS,GAAG,MAAM,CAAC,KAAK,CAAC,MAAM,CAAC,CAAC,CAAC,CAAC,SAAS,CAAC,CAAC,CAAC,MAAM,CAAC;QACxD,CAAC;QACD,KAAK,CAAC,IAAI,CAAC;YACT,OAAO,EAAE,IAAI;YACb,GAAG,CAAC,SAAS,CAAC,CAAC,CAAC,EAAE,SAAS,EAAE,CAAC,CAAC,CAAC,EAAE,CAAC;YACnC,GAAG,CAAC,YAAY,CAAC,CAAC,CAAC,EAAE,YAAY,EAAE,CAAC,CAAC,CAAC,EAAE,CAAC;SAC1C,CAAC,CAAC;IACL,CAAC;IACD,OAAO,KAAK,CAAC;AACf,CAAC;AAED,oEAAoE;AACpE,SAAS,iBAAiB,CAAC,KAAc;IACvC,IAAI,OAAO,KAAK,KAAK,QAAQ,EAAE,CAAC;QAC9B,MAAM,IAAI,GAAG,KAAK,CAAC,IAAI,EAAE,CAAC;QAC1B,OAAO,IAAI,CAAC,MAAM,IAAI,kBAAkB,CAAC,CAAC,CAAC,EAAE,OAAO,EAAE,IAAI,EAAE,CAAC,CAAC,CAAC,IAAI,CAAC;IACtE,CAAC;IACD,MAAM,MAAM,GAAG,QAAQ,CAAC,KAAK,CAAC,CAAC;IAC/B,IAAI,CAAC,MAAM;QAAE,OAAO,IAAI,CAAC;IACzB,MAAM,IAAI,GAAG,WAAW,CAAC,MAAM,EAAE;QAC/B,SAAS;QACT,MAAM;QACN,OAAO;QACP,QAAQ;QACR,OAAO;KACR,CAAC,CAAC;IACH,IAAI,CAAC,IAAI;QAAE,OAAO,IAAI,CAAC;IACvB,IAAI,SAA6B,CAAC;IAClC,KAAK,MAAM,GAAG,IAAI,CAAC,YAAY,EAAE,WAAW,EAAE,aAAa,CAAC,EAAE,CAAC;QAC7D,MAAM,KAAK,GAAG,MAAM,CAAC,GAAG,CAAC,CAAC;QAC1B,IAAI,OAAO,KAAK,KAAK,QAAQ,IAAI,KAAK,GAAG,CAAC,EAAE,CAAC;YAC3C,6CAA6C;YAC7C,SAAS,GAAG,KAAK,GAAG,cAAc,CAAC,CAAC,CAAC,KAAK,GAAG,IAAI,CAAC,CAAC,CAAC,KAAK,CAAC;YAC1D,MAAM;QACR,CAAC;QACD,IAAI,OAAO,KAAK,KAAK,QAAQ,EAAE,CAAC;YAC9B,MAAM,MAAM,GAAG,IAAI,CAAC,KAAK,CAAC,KAAK,CAAC,CAAC;YACjC,IAAI,CAAC,MAAM,CAAC,KAAK,CAAC,MAAM,CAAC,EAAE,CAAC;gBAC1B,SAAS,GAAG,MAAM,CAAC;gBACnB,MAAM;YACR,CAAC;QACH,CAAC;IACH,CAAC;IACD,OAAO,EAAE,OAAO,EAAE,IAAI,EAAE,GAAG,CAAC,SAAS,CAAC,CAAC,CAAC,EAAE,SAAS,EAAE,CAAC,CAAC,CAAC,EAAE,CAAC,EAAE,CAAC;AAChE,CAAC;AAED;;;;;;GAMG;AACH,MAAM,UAAU,yBAAyB,CACvC,GAAY,EACZ,MAAM,GAAyB,MAAM,EACrC,QAAQ,GAAG,iBAAiB;IAE5B,IAAI,OAAO,GAAY,GAAG,CAAC;IAC3B,IAAI,OAAO,OAAO,KAAK,QAAQ,EAAE,CAAC;QAChC,IAAI,CAAC;YACH,OAAO,GAAG,IAAI,CAAC,KAAK,CAAC,OAAO,CAAC,CAAC;QAChC,CAAC;QAAC,MAAM,CAAC;YACP,OAAO,EAAE,KAAK,EAAE,EAAE,EAAE,QAAQ,EAAE,SAAS,EAAE,OAAO,EAAE,CAAC,EAAE,CAAC;QACxD,CAAC;IACH,CAAC;IAED,IAAI,IAAI,GAAG,OAAO,CAAC;IACnB,IAAI,QAAQ,GAAyB,MAAM,KAAK,MAAM,CAAC,CAAC,CAAC,SAAS,CAAC,CAAC,CAAC,MAAM,CAAC;IAE5E,4BAA4B;IAC5B,IAAI,CAAC,KAAK,CAAC,OAAO,CAAC,IAAI,CAAC,IAAI,QAAQ,CAAC,IAAI,CAAC,EAAE,CAAC;QAC3C,MAAM,MAAM,GAAG,IAA+B,CAAC;QAC/C,IAAI,KAAK,CAAC,OAAO,CAAC,MAAM,CAAC,aAAa,CAAC,EAAE,CAAC;YACxC,IAAI,GAAG,MAAM,CAAC,aAAa,CAAC;QAC9B,CAAC;aAAM,IAAI,KAAK,CAAC,OAAO,CAAC,MAAM,CAAC,QAAQ,CAAC,EAAE,CAAC;YAC1C,IAAI,GAAG,MAAM,CAAC,QAAQ,CAAC;QACzB,CAAC;IACH,CAAC;IAED,MAAM,KAAK,GAAyB,EAAE,CAAC;IACvC,IAAI,OAAO,GAAG,CAAC,CAAC;IAChB,MAAM,IAAI,GAAG,IAAI,GAAG,EAAU,CAAC;IAE/B,MAAM,IAAI,GAAG,CAAC,IAA+B,EAAQ,EAAE;QACrD,IAAI,CAAC,IAAI,EAAE,CAAC;YACV,OAAO,IAAI,CAAC,CAAC;YACb,OAAO;QACT,CAAC;QACD,qEAAqE;QACrE,0DAA0D;QAC1D,MAAM,GAAG,GAAG,WAAW,CAAC,IAAI,CAAC,OAAO,CAAC,CAAC;QACtC,IAAI,IAAI,CAAC,GAAG,CAAC,GAAG,CAAC,EAAE,CAAC;YAClB,OAAO,IAAI,CAAC,CAAC;YACb,OAAO;QACT,CAAC;QACD,IAAI,KAAK,CAAC,MAAM,IAAI,QAAQ,EAAE,CAAC;YAC7B,OAAO,IAAI,CAAC,CAAC;YACb,OAAO;QACT,CAAC;QACD,IAAI,CAAC,GAAG,CAAC,GAAG,CAAC,CAAC;QACd,KAAK,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC;IACnB,CAAC,CAAC;IAEF,IAAI,KAAK,CAAC,OAAO,CAAC,IAAI,CAAC,EAAE,CAAC;QACxB,KAAK,MAAM,KAAK,IAAI,IAAI,EAAE,CAAC;YACzB,MAAM,MAAM,GAAG,QAAQ,CAAC,KAAK,CAAC,CAAC;YAC/B,MAAM,SAAS,GACb,MAAM,KAAK,SAAS;gBACpB,CAAC,MAAM,KAAK,MAAM;oBAChB,MAAM;oBACN,SAAS,IAAI,MAAM;oBACnB,QAAQ,CAAC,MAAM,CAAC,OAAO,CAAC,CAAC,CAAC;YAC9B,MAAM,QAAQ,GACZ,MAAM,KAAK,QAAQ;gBACnB,CAAC,MAAM,KAAK,MAAM,IAAI,MAAM,IAAI,eAAe,IAAI,MAAM,CAAC,CAAC;YAE7D,IAAI,SAAS,IAAI,MAAM,EAAE,CAAC;gBACxB,QAAQ,GAAG,SAAS,CAAC;gBACrB,MAAM,YAAY,GAChB,OAAO,MAAM,CAAC,KAAK,KAAK,QAAQ,CAAC,CAAC,CAAC,MAAM,CAAC,KAAK,CAAC,CAAC,CAAC,SAAS,CAAC;gBAC9D,MAAM,KAAK,GAAG,mBAAmB,CAAC,MAAM,CAAC,OAAO,EAAE,YAAY,CAAC,CAAC;gBAChE,IAAI,KAAK,CAAC,MAAM,KAAK,CAAC;oBAAE,OAAO,IAAI,CAAC,CAAC;gBACrC,KAAK,MAAM,IAAI,IAAI,KAAK;oBAAE,IAAI,CAAC,IAAI,CAAC,CAAC;gBACrC,SAAS;YACX,CAAC;YACD,IAAI,QAAQ,IAAI,MAAM,EAAE,CAAC;gBACvB,QAAQ,GAAG,QAAQ,CAAC;gBACpB,MAAM,YAAY,GAChB,OAAO,MAAM,CAAC,IAAI,KAAK,QAAQ,CAAC,CAAC,CAAC,MAAM,CAAC,IAAI,CAAC,CAAC,CAAC,SAAS,CAAC;gBAC5D,MAAM,KAAK,GAAG,uBAAuB,CACnC,MAAM,CAAC,aAAa,EACpB,YAAY,CACb,CAAC;gBACF,IAAI,KAAK,CAAC,MAAM,KAAK,CAAC;oBAAE,OAAO,IAAI,CAAC,CAAC;gBACrC,KAAK,MAAM,IAAI,IAAI,KAAK;oBAAE,IAAI,CAAC,IAAI,CAAC,CAAC;gBACrC,SAAS;YACX,CAAC;YACD,IAAI,CAAC,iBAAiB,CAAC,KAAK,CAAC,CAAC,CAAC;QACjC,CAAC;IACH,CAAC;SAAM,CAAC;QACN,OAAO,IAAI,CAAC,CAAC;IACf,CAAC;IAED,OAAO,EAAE,KAAK,EAAE,QAAQ,EAAE,OAAO,EAAE,CAAC;AACtC,CAAC;AAED;;;GAGG;AACH,MAAM,UAAU,WAAW,CAAC,OAAe;IACzC,MAAM,UAAU,GAAG,OAAO,CAAC,OAAO,CAAC,MAAM,EAAE,GAAG,CAAC,CAAC,IAAI,EAAE,CAAC,WAAW,EAAE,CAAC;IACrE,OAAO,UAAU,CAAC,QAAQ,CAAC,CAAC,MAAM,CAAC,UAAU,EAAE,MAAM,CAAC,CAAC,MAAM,CAAC,KAAK,CAAC,CAAC;AACvE,CAAC;AACD,8EAA8E;AAC9E,4BAA4B;AAC5B,8EAA8E;AAE9E,MAAM,cAAc,GAAG,GAAG,CAAC;AAC3B,MAAM,mBAAmB,GAAG,EAAE,GAAG,IAAI,GAAG,IAAI,CAAC;AAE7C;;;;;;;;;GASG;AACH,MAAM,CAAC,KAAK,UAAU,oBAAoB,CACxC,GAAW,EACX,MAAsC,EACtC,QAAQ,GAAG,iBAAiB;IAE5B,IAAI,MAAM,KAAK,OAAO;QAAE,OAAO,yBAAyB,CAAC,GAAG,EAAE,QAAQ,CAAC,CAAC;IACxE,MAAM,EAAE,OAAO,EAAE,QAAQ,EAAE,IAAI,EAAE,GAAG,MAAM,MAAM,CAAC,kBAAkB,CAAC,CAAC;IACrE,MAAM,EAAE,IAAI,EAAE,OAAO,EAAE,GAAG,MAAM,MAAM,CAAC,WAAW,CAAC,CAAC;IAEpD,MAAM,KAAK,GAAa,EAAE,CAAC;IAC3B,MAAM,IAAI,GAAG,KAAK,EAAE,OAAe,EAAE,KAAa,EAAiB,EAAE;QACnE,IAAI,KAAK,GAAG,CAAC,IAAI,KAAK,CAAC,MAAM,IAAI,cAAc;YAAE,OAAO;QACxD,IAAI,OAAiB,CAAC;QACtB,IAAI,CAAC;YACH,OAAO,GAAG,MAAM,OAAO,CAAC,OAAO,CAAC,CAAC;QACnC,CAAC;QAAC,MAAM,CAAC;YACP,OAAO;QACT,CAAC;QACD,KAAK,MAAM,KAAK,IAAI,OAAO,EAAE,CAAC;YAC5B,MAAM,IAAI,GAAG,IAAI,CAAC,OAAO,EAAE,KAAK,CAAC,CAAC;YAClC,IAAI,EAAE,CAAC;YACP,IAAI,CAAC;gBACH,EAAE,GAAG,MAAM,IAAI,CAAC,IAAI,CAAC,CAAC;YACxB,CAAC;YAAC,MAAM,CAAC;gBACP,SAAS;YACX,CAAC;YACD,IAAI,EAAE,CAAC,WAAW,EAAE,EAAE,CAAC;gBACrB,MAAM,IAAI,CAAC,IAAI,EAAE,KAAK,GAAG,CAAC,CAAC,CAAC;YAC9B,CAAC;iBAAM,IACL,EAAE,CAAC,MAAM,EAAE;gBACX,EAAE,CAAC,IAAI,IAAI,mBAAmB;gBAC9B,CAAC,OAAO,CAAC,KAAK,CAAC,KAAK,OAAO,IAAI,OAAO,CAAC,KAAK,CAAC,KAAK,QAAQ,CAAC;gBAC3D,KAAK,CAAC,MAAM,GAAG,cAAc,EAC7B,CAAC;gBACD,KAAK,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC;YACnB,CAAC;QACH,CAAC;IACH,CAAC,CAAC;IACF,IAAI,CAAC;QACH,MAAM,QAAQ,GAAG,MAAM,IAAI,CAAC,GAAG,CAAC,CAAC;QACjC,IAAI,CAAC,QAAQ,CAAC,WAAW,EAAE,EAAE,CAAC;YAC5B,OAAO,EAAE,KAAK,EAAE,EAAE,EAAE,QAAQ,EAAE,MAAM,EAAE,OAAO,EAAE,CAAC,EAAE,CAAC;QACrD,CAAC;IACH,CAAC;IAAC,MAAM,CAAC;QACP,OAAO,EAAE,KAAK,EAAE,EAAE,EAAE,QAAQ,EAAE,MAAM,EAAE,OAAO,EAAE,CAAC,EAAE,CAAC;IACrD,CAAC;IACD,MAAM,IAAI,CAAC,GAAG,EAAE,CAAC,CAAC,CAAC;IAEnB,MAAM,KAAK,GAAyB,EAAE,CAAC;IACvC,IAAI,OAAO,GAAG,CAAC,CAAC;IAChB,MAAM,IAAI,GAAG,IAAI,GAAG,EAAU,CAAC;IAC/B,MAAM,IAAI,GAAG,CAAC,IAA+B,EAAQ,EAAE;QACrD,IAAI,CAAC,IAAI,EAAE,CAAC;YACV,OAAO,IAAI,CAAC,CAAC;YACb,OAAO;QACT,CAAC;QACD,MAAM,GAAG,GAAG,WAAW,CAAC,IAAI,CAAC,OAAO,CAAC,CAAC;QACtC,IAAI,IAAI,CAAC,GAAG,CAAC,GAAG,CAAC,EAAE,CAAC;YAClB,OAAO,IAAI,CAAC,CAAC;YACb,OAAO;QACT,CAAC;QACD,IAAI,KAAK,CAAC,MAAM,IAAI,QAAQ,EAAE,CAAC;YAC7B,OAAO,IAAI,CAAC,CAAC;YACb,OAAO;QACT,CAAC;QACD,IAAI,CAAC,GAAG,CAAC,GAAG,CAAC,CAAC;QACd,KAAK,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC;IACnB,CAAC,CAAC;IAEF,KAAK,MAAM,IAAI,IAAI,KAAK,EAAE,CAAC;QACzB,IAAI,GAAW,CAAC;QAChB,IAAI,CAAC;YACH,GAAG,GAAG,MAAM,QAAQ,CAAC,IAAI,EAAE,MAAM,CAAC,CAAC;QACrC,CAAC;QAAC,MAAM,CAAC;YACP,OAAO,IAAI,CAAC,CAAC;YACb,SAAS;QACX,CAAC;QACD,IAAI,OAAO,CAAC,IAAI,CAAC,KAAK,QAAQ,EAAE,CAAC;YAC/B,KAAK,MAAM,IAAI,IAAI,GAAG,CAAC,KAAK,CAAC,IAAI,CAAC,EAAE,CAAC;gBACnC,IAAI,CAAC,IAAI,CAAC,IAAI,EAAE;oBAAE,SAAS;gBAC3B,IAAI,CAAC,cAAc,CAAC,IAAI,EAAE,MAAM,CAAC,CAAC,CAAC;YACrC,CAAC;YACD,SAAS;QACX,CAAC;QACD,IAAI,OAAgB,CAAC;QACrB,IAAI,CAAC;YACH,OAAO,GAAG,IAAI,CAAC,KAAK,CAAC,GAAG,CAAC,CAAC;QAC5B,CAAC;QAAC,MAAM,CAAC;YACP,OAAO,IAAI,CAAC,CAAC;YACb,SAAS;QACX,CAAC;QACD,MAAM,MAAM,GAAG,yBAAyB,CAAC,OAAO,EAAE,MAAM,EAAE,QAAQ,CAAC,CAAC;QACpE,KAAK,MAAM,IAAI,IAAI,MAAM,CAAC,KAAK;YAAE,IAAI,CAAC,IAAI,CAAC,CAAC;QAC5C,OAAO,IAAI,MAAM,CAAC,OAAO,CAAC;IAC5B,CAAC;IACD,OAAO,EAAE,KAAK,EAAE,QAAQ,EAAE,MAAM,EAAE,OAAO,EAAE,CAAC;AAC9C,CAAC;AAED;;;;;GAKG;AACH,SAAS,cAAc,CACrB,IAAY,EACZ,MAA4B;IAE5B,IAAI,KAAc,CAAC;IACnB,IAAI,CAAC;QACH,KAAK,GAAG,IAAI,CAAC,KAAK,CAAC,IAAI,CAAC,CAAC;IAC3B,CAAC;IAAC,MAAM,CAAC;QACP,OAAO,IAAI,CAAC;IACd,CAAC;IACD,MAAM,MAAM,GAAG,QAAQ,CAAC,KAAK,CAAC,CAAC;IAC/B,IAAI,CAAC,MAAM;QAAE,OAAO,iBAAiB,CAAC,KAAK,CAAC,CAAC;IAE7C,6EAA6E;IAC7E,MAAM,IAAI,GAAG,OAAO,MAAM,CAAC,IAAI,KAAK,QAAQ,CAAC,CAAC,CAAC,MAAM,CAAC,IAAI,CAAC,CAAC,CAAC,EAAE,CAAC;IAChE,MAAM,OAAO,GAAG,QAAQ,CAAC,MAAM,CAAC,OAAO,CAAC,CAAC;IACzC,IAAI,OAAO,IAAI,CAAC,IAAI,KAAK,OAAO,IAAI,IAAI,KAAK,MAAM,CAAC,EAAE,CAAC;QACrD,MAAM,IAAI,GAAG,WAAW,CAAC,OAAO,CAAC,OAAO,CAAC,CAAC;QAC1C,IAAI,IAAI;YAAE,OAAO,EAAE,OAAO,EAAE,IAAI,EAAE,YAAY,EAAE,MAAM,EAAE,CAAC;IAC3D,CAAC;IAED,kCAAkC;IAClC,MAAM,IAAI,GAAG,OAAO,MAAM,CAAC,IAAI,KAAK,QAAQ,CAAC,CAAC,CAAC,MAAM,CAAC,IAAI,CAAC,CAAC,CAAC,EAAE,CAAC;IAChE,IAAI,IAAI,KAAK,MAAM,IAAI,IAAI,KAAK,OAAO,EAAE,CAAC;QACxC,MAAM,IAAI,GAAG,WAAW,CAAC,MAAM,CAAC,OAAO,CAAC,CAAC;QACzC,IAAI,IAAI;YAAE,OAAO,EAAE,OAAO,EAAE,IAAI,EAAE,YAAY,EAAE,MAAM,EAAE,CAAC;IAC3D,CAAC;IAED,8DAA8D;IAC9D,IAAI,MAAM,CAAC,MAAM,CAAC,MAAM,IAAI,EAAE,CAAC,KAAK,OAAO,EAAE,CAAC;QAC5C,MAAM,IAAI,GAAG,OAAO,MAAM,CAAC,IAAI,KAAK,QAAQ,CAAC,CAAC,CAAC,MAAM,CAAC,IAAI,CAAC,IAAI,EAAE,CAAC,CAAC,CAAC,EAAE,CAAC;QACvE,IAAI,IAAI,CAAC,MAAM,IAAI,kBAAkB,EAAE,CAAC;YACtC,OAAO,EAAE,OAAO,EAAE,IAAI,EAAE,YAAY,EAAE,MAAM,EAAE,CAAC;QACjD,CAAC;IACH,CAAC;IACD,OAAO,iBAAiB,CAAC,KAAK,CAAC,CAAC;AAClC,CAAC;AAED,yEAAyE;AACzE,SAAS,WAAW,CAAC,OAAgB;IACnC,IAAI,OAAO,OAAO,KAAK,QAAQ,EAAE,CAAC;QAChC,MAAM,IAAI,GAAG,OAAO,CAAC,IAAI,EAAE,CAAC;QAC5B,OAAO,IAAI,CAAC,MAAM,IAAI,kBAAkB,CAAC,CAAC,CAAC,IAAI,CAAC,CAAC,CAAC,IAAI,CAAC;IACzD,CAAC;IACD,IAAI,KAAK,CAAC,OAAO,CAAC,OAAO,CAAC,EAAE,CAAC;QAC3B,MAAM,IAAI,GAAG,OAAO;aACjB,GAAG,CAAC,CAAC,KAAK,EAAE,EAAE;YACb,MAAM,MAAM,GAAG,QAAQ,CAAC,KAAK,CAAC,CAAC;YAC/B,MAAM,CAAC,GAAG,MAAM,EAAE,IAAI,CAAC;YACvB,OAAO,OAAO,CAAC,KAAK,QAAQ,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,EAAE,CAAC;QACxC,CAAC,CAAC;aACD,IAAI,CAAC,IAAI,CAAC;aACV,IAAI,EAAE,CAAC;QACV,OAAO,IAAI,CAAC,MAAM,IAAI,kBAAkB,CAAC,CAAC,CAAC,IAAI,CAAC,CAAC,CAAC,IAAI,CAAC;IACzD,CAAC;IACD,OAAO,IAAI,CAAC;AACd,CAAC;AAED;;;;GAIG;AACH,MAAM,CAAC,KAAK,UAAU,yBAAyB,CAC7C,GAAW,EACX,QAAQ,GAAG,iBAAiB;IAE5B,MAAM,EAAE,QAAQ,EAAE,OAAO,EAAE,IAAI,EAAE,GAAG,MAAM,MAAM,CAAC,kBAAkB,CAAC,CAAC;IACrE,MAAM,EAAE,IAAI,EAAE,OAAO,EAAE,GAAG,MAAM,MAAM,CAAC,WAAW,CAAC,CAAC;IAEpD,MAAM,QAAQ,GAAG,KAAK,EAAE,IAAY,EAAoB,EAAE;QACxD,IAAI,CAAC;YACH,OAAO,IAAI,CAAC,KAAK,CAAC,MAAM,QAAQ,CAAC,IAAI,EAAE,MAAM,CAAC,CAAC,CAAC;QAClD,CAAC;QAAC,MAAM,CAAC;YACP,OAAO,IAAI,CAAC;QACd,CAAC;IACH,CAAC,CAAC;IAEF,IAAI,CAAC;QACH,MAAM,EAAE,GAAG,MAAM,IAAI,CAAC,GAAG,CAAC,CAAC;QAC3B,IAAI,CAAC,EAAE,CAAC,WAAW,EAAE,EAAE,CAAC;YACtB,OAAO,EAAE,KAAK,EAAE,EAAE,EAAE,QAAQ,EAAE,OAAO,EAAE,OAAO,EAAE,CAAC,EAAE,CAAC;QACtD,CAAC;IACH,CAAC;IAAC,MAAM,CAAC;QACP,OAAO,EAAE,KAAK,EAAE,EAAE,EAAE,QAAQ,EAAE,OAAO,EAAE,OAAO,EAAE,CAAC,EAAE,CAAC;IACtD,CAAC;IAED,wDAAwD;IACxD,MAAM,YAAY,GAAG,IAAI,GAAG,EAAkB,CAAC;IAC/C,MAAM,QAAQ,GAAG,MAAM,QAAQ,CAAC,IAAI,CAAC,GAAG,EAAE,eAAe,CAAC,CAAC,CAAC;IAC5D,IAAI,KAAK,CAAC,OAAO,CAAC,QAAQ,CAAC,EAAE,CAAC;QAC5B,KAAK,MAAM,CAAC,IAAI,QAAQ,EAAE,CAAC;YACzB,MAAM,MAAM,GAAG,QAAQ,CAAC,CAAC,CAAC,CAAC;YAC3B,IAAI,MAAM,IAAI,OAAO,MAAM,CAAC,EAAE,KAAK,QAAQ,EAAE,CAAC;gBAC5C,MAAM,IAAI,GAAG,OAAO,MAAM,CAAC,IAAI,KAAK,QAAQ,CAAC,CAAC,CAAC,MAAM,CAAC,IAAI,CAAC,CAAC,CAAC,MAAM,CAAC,EAAE,CAAC;gBACvE,YAAY,CAAC,GAAG,CAAC,MAAM,CAAC,EAAE,EAAE,IAAI,CAAC,CAAC;YACpC,CAAC;QACH,CAAC;IACH,CAAC;IACD,MAAM,SAAS,GAAG,IAAI,GAAG,EAAkB,CAAC;IAC5C,MAAM,KAAK,GAAG,MAAM,QAAQ,CAAC,IAAI,CAAC,GAAG,EAAE,YAAY,CAAC,CAAC,CAAC;IACtD,IAAI,KAAK,CAAC,OAAO,CAAC,KAAK,CAAC,EAAE,CAAC;QACzB,KAAK,MAAM,CAAC,IAAI,KAAK,EAAE,CAAC;YACtB,MAAM,MAAM,GAAG,QAAQ,CAAC,CAAC,CAAC,CAAC;YAC3B,IAAI,MAAM,IAAI,OAAO,MAAM,CAAC,EAAE,KAAK,QAAQ,EAAE,CAAC;gBAC5C,MAAM,OAAO,GAAG,QAAQ,CAAC,MAAM,CAAC,OAAO,CAAC,CAAC;gBACzC,MAAM,IAAI,GACR,CAAC,OAAO,OAAO,EAAE,YAAY,KAAK,QAAQ,IAAI,OAAO,CAAC,YAAY,CAAC;oBACnE,CAAC,OAAO,OAAO,EAAE,SAAS,KAAK,QAAQ,IAAI,OAAO,CAAC,SAAS,CAAC;oBAC7D,CAAC,OAAO,MAAM,CAAC,SAAS,KAAK,QAAQ,IAAI,MAAM,CAAC,SAAS,CAAC;oBAC1D,CAAC,OAAO,MAAM,CAAC,IAAI,KAAK,QAAQ,IAAI,MAAM,CAAC,IAAI,CAAC;oBAChD,MAAM,CAAC,EAAE,CAAC;gBACZ,SAAS,CAAC,GAAG,CAAC,MAAM,CAAC,EAAE,EAAE,IAAI,CAAC,CAAC;YACjC,CAAC;QACH,CAAC;IACH,CAAC;IAED,iEAAiE;IACjE,gEAAgE;IAChE,MAAM,QAAQ,GAA6C,EAAE,CAAC;IAC9D,IAAI,WAAqB,CAAC;IAC1B,IAAI,CAAC;QACH,WAAW,GAAG,MAAM,OAAO,CAAC,GAAG,CAAC,CAAC;IACnC,CAAC;IAAC,MAAM,CAAC;QACP,OAAO,EAAE,KAAK,EAAE,EAAE,EAAE,QAAQ,EAAE,OAAO,EAAE,OAAO,EAAE,CAAC,EAAE,CAAC;IACtD,CAAC;IACD,KAAK,MAAM,KAAK,IAAI,WAAW,EAAE,CAAC;QAChC,MAAM,IAAI,GAAG,IAAI,CAAC,GAAG,EAAE,KAAK,CAAC,CAAC;QAC9B,IAAI,EAAE,CAAC;QACP,IAAI,CAAC;YACH,EAAE,GAAG,MAAM,IAAI,CAAC,IAAI,CAAC,CAAC;QACxB,CAAC;QAAC,MAAM,CAAC;YACP,SAAS;QACX,CAAC;QACD,IAAI,CAAC,EAAE,CAAC,WAAW,EAAE;YAAE,SAAS;QAChC,MAAM,OAAO,GAAG,YAAY,CAAC,GAAG,CAAC,KAAK,CAAC,IAAI,KAAK,CAAC;QACjD,IAAI,UAAoB,CAAC;QACzB,IAAI,CAAC;YACH,UAAU,GAAG,MAAM,OAAO,CAAC,IAAI,CAAC,CAAC;QACnC,CAAC;QAAC,MAAM,CAAC;YACP,SAAS;QACX,CAAC;QACD,KAAK,MAAM,GAAG,IAAI,UAAU,EAAE,CAAC;YAC7B,IAAI,OAAO,CAAC,GAAG,CAAC,KAAK,OAAO,EAAE,CAAC;gBAC7B,QAAQ,CAAC,IAAI,CAAC,EAAE,IAAI,EAAE,IAAI,CAAC,IAAI,EAAE,GAAG,CAAC,EAAE,OAAO,EAAE,CAAC,CAAC;YACpD,CAAC;QACH,CAAC;IACH,CAAC;IACD,QAAQ,CAAC,IAAI,CAAC,CAAC,CAAC,EAAE,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC,IAAI,CAAC,aAAa,CAAC,CAAC,CAAC,IAAI,CAAC,CAAC,CAAC;IAEtD,MAAM,KAAK,GAAyB,EAAE,CAAC;IACvC,IAAI,OAAO,GAAG,CAAC,CAAC;IAChB,MAAM,IAAI,GAAG,IAAI,GAAG,EAAU,CAAC;IAC/B,KAAK,MAAM,EAAE,IAAI,EAAE,OAAO,EAAE,IAAI,QAAQ,EAAE,CAAC;QACzC,MAAM,OAAO,GAAG,MAAM,QAAQ,CAAC,IAAI,CAAC,CAAC;QACrC,IAAI,CAAC,KAAK,CAAC,OAAO,CAAC,OAAO,CAAC,EAAE,CAAC;YAC5B,OAAO,IAAI,CAAC,CAAC;YACb,SAAS;QACX,CAAC;QACD,KAAK,MAAM,KAAK,IAAI,OAAO,EAAE,CAAC;YAC5B,MAAM,MAAM,GAAG,QAAQ,CAAC,KAAK,CAAC,CAAC;YAC/B,IAAI,CAAC,MAAM,EAAE,CAAC;gBACZ,OAAO,IAAI,CAAC,CAAC;gBACb,SAAS;YACX,CAAC;YACD,MAAM,OAAO,GAAG,OAAO,MAAM,CAAC,IAAI,KAAK,QAAQ,CAAC,CAAC,CAAC,MAAM,CAAC,IAAI,CAAC,CAAC,CAAC,EAAE,CAAC;YACnE,MAAM,IAAI,GAAG,iBAAiB,CAAC,OAAO,CAAC,CAAC,IAAI,EAAE,CAAC;YAC/C,IAAI,IAAI,CAAC,MAAM,GAAG,kBAAkB,EAAE,CAAC;gBACrC,OAAO,IAAI,CAAC,CAAC;gBACb,SAAS;YACX,CAAC;YACD,MAAM,GAAG,GAAG,WAAW,CAAC,IAAI,CAAC,CAAC;YAC9B,IAAI,IAAI,CAAC,GAAG,CAAC,GAAG,CAAC,EAAE,CAAC;gBAClB,OAAO,IAAI,CAAC,CAAC;gBACb,SAAS;YACX,CAAC;YACD,IAAI,KAAK,CAAC,MAAM,IAAI,QAAQ,EAAE,CAAC;gBAC7B,OAAO,IAAI,CAAC,CAAC;gBACb,SAAS;YACX,CAAC;YACD,IAAI,CAAC,GAAG,CAAC,GAAG,CAAC,CAAC;YACd,MAAM,MAAM,GAAG,OAAO,MAAM,CAAC,IAAI,KAAK,QAAQ,CAAC,CAAC,CAAC,MAAM,CAAC,IAAI,CAAC,CAAC,CAAC,EAAE,CAAC;YAClE,MAAM,MAAM,GAAG,MAAM,CAAC,CAAC,CAAC,CAAC,SAAS,CAAC,GAAG,CAAC,MAAM,CAAC,IAAI,MAAM,CAAC,CAAC,CAAC,CAAC,SAAS,CAAC;YACtE,MAAM,EAAE,GAAG,OAAO,MAAM,CAAC,EAAE,KAAK,QAAQ,CAAC,CAAC,CAAC,MAAM,CAAC,EAAE,CAAC,CAAC,CAAC,EAAE,CAAC;YAC1D,MAAM,SAAS,GAAG,WAAW,CAAC,EAAE,CAAC,CAAC;YAClC,KAAK,CAAC,IAAI,CAAC;gBACT,OAAO,EAAE,IAAI;gBACb,GAAG,CAAC,SAAS,CAAC,CAAC,CAAC,EAAE,SAAS,EAAE,CAAC,CAAC,CAAC,EAAE,CAAC;gBACnC,GAAG,CAAC,MAAM,CAAC,CAAC,CAAC,EAAE,MAAM,EAAE,CAAC,CAAC,CAAC,EAAE,CAAC;gBAC7B,OAAO;aACR,CAAC,CAAC;QACL,CAAC;IACH,CAAC;IACD,oEAAoE;IACpE,2CAA2C;IAC3C,KAAK,CAAC,IAAI,CAAC,CAAC,CAAC,EAAE,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC,CAAC,SAAS,IAAI,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC,SAAS,IAAI,CAAC,CAAC,CAAC,CAAC;IAC9D,OAAO,EAAE,KAAK,EAAE,QAAQ,EAAE,OAAO,EAAE,OAAO,EAAE,CAAC;AAC/C,CAAC;AAED;;;;;GAKG;AACH,SAAS,iBAAiB,CAAC,IAAY;IACrC,OAAO,IAAI;SACR,OAAO,CAAC,OAAO,EAAE,GAAG,CAAC;SACrB,OAAO,CAAC,OAAO,EAAE,GAAG,CAAC;SACrB,OAAO,CAAC,SAAS,EAAE,GAAG,CAAC;SACvB,OAAO,CAAC,QAAQ,EAAE,GAAG,CAAC;SACtB,OAAO,CAAC,QAAQ,EAAE,GAAG,CAAC,CAAC;AAC5B,CAAC;AAED,wEAAwE;AACxE,SAAS,WAAW,CAAC,EAAU;IAC7B,IAAI,CAAC,EAAE;QAAE,OAAO,SAAS,CAAC;IAC1B,MAAM,OAAO,GAAG,MAAM,CAAC,UAAU,CAAC,EAAE,CAAC,CAAC;IACtC,IAAI,CAAC,MAAM,CAAC,QAAQ,CAAC,OAAO,CAAC,IAAI,OAAO,IAAI,CAAC;QAAE,OAAO,SAAS,CAAC;IAChE,OAAO,IAAI,CAAC,KAAK,CAAC,OAAO,GAAG,IAAI,CAAC,CAAC;AACpC,CAAC;AAeD,MAAM,eAAe,GAGhB;IACH;QACE,IAAI,EAAE,UAAU;QAChB,QAAQ,EAAE;YACR,iBAAiB;YACjB,gBAAgB;YAChB,eAAe;YACf,eAAe;YACf,iBAAiB;YACjB,iBAAiB;YACjB,gBAAgB;YAChB,gBAAgB;YAChB,gBAAgB;YAChB,cAAc;SACf;KACF;IACD;QACE,IAAI,EAAE,YAAY;QAClB,QAAQ,EAAE;YACR,eAAe;YACf,kBAAkB;YAClB,mBAAmB;YACnB,aAAa;YACb,aAAa;YACb,gBAAgB;YAChB,aAAa;YACb,kBAAkB;YAClB,mBAAmB;YACnB,qBAAqB;YACrB,iBAAiB;SAClB;KACF;IACD;QACE,IAAI,EAAE,WAAW;QACjB,QAAQ,EAAE;YACR,cAAc;YACd,eAAe;YACf,eAAe;YACf,gBAAgB;YAChB,eAAe;YACf,eAAe;YACf,gBAAgB;YAChB,aAAa;YACb,gBAAgB;SACjB;KACF;CACF,CAAC;AAEF,MAAM,sBAAsB,GAAG,EAAE,CAAC;AAClC,MAAM,kBAAkB,GAAG,GAAG,CAAC;AAE/B;;;;;;GAMG;AACH,MAAM,UAAU,wBAAwB,CACtC,KAAyC;IAEzC,MAAM,QAAQ,GAAyB,EAAE,CAAC;IAC1C,MAAM,IAAI,GAAG,IAAI,GAAG,EAAU,CAAC;IAC/B,KAAK,MAAM,IAAI,IAAI,KAAK,EAAE,CAAC;QACzB,KAAK,MAAM,QAAQ,IAAI,cAAc,CAAC,IAAI,CAAC,OAAO,CAAC,EAAE,CAAC;YACpD,MAAM,IAAI,GAAG,QAAQ,CAAC,IAAI,EAAE,CAAC;YAC7B,IAAI,IAAI,CAAC,MAAM,GAAG,sBAAsB;gBAAE,SAAS;YACnD,MAAM,IAAI,GAAG,yBAAyB,CAAC,IAAI,CAAC,CAAC;YAC7C,IAAI,CAAC,IAAI;gBAAE,SAAS;YACpB,MAAM,GAAG,GAAG,WAAW,CAAC,IAAI,CAAC,KAAK,CAAC,CAAC,EAAE,kBAAkB,CAAC,CAAC,CAAC;YAC3D,IAAI,IAAI,CAAC,GAAG,CAAC,GAAG,CAAC;gBAAE,SAAS;YAC5B,IAAI,CAAC,GAAG,CAAC,GAAG,CAAC,CAAC;YACd,QAAQ,CAAC,IAAI,CAAC,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,CAAC,KAAK,CAAC,CAAC,EAAE,kBAAkB,CAAC,EAAE,CAAC,CAAC;QACnE,CAAC;IACH,CAAC;IACD,OAAO,QAAQ,CAAC;AAClB,CAAC;AAED,SAAS,cAAc,CAAC,IAAY;IAClC,OAAO,IAAI;SACR,OAAO,CAAC,MAAM,EAAE,GAAG,CAAC;SACpB,KAAK,CAAC,eAAe,CAAC;SACtB,GAAG,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC,IAAI,EAAE,CAAC;SACpB,MAAM,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC,MAAM,GAAG,CAAC,CAAC,CAAC;AACjC,CAAC;AAED,SAAS,yBAAyB,CAAC,QAAgB;IACjD,KAAK,MAAM,IAAI,IAAI,eAAe,EAAE,CAAC;QACnC,IAAI,IAAI,CAAC,QAAQ,CAAC,IAAI,CAAC,CAAC,EAAE,EAAE,EAAE,CAAC,EAAE,CAAC,IAAI,CAAC,QAAQ,CAAC,CAAC;YAAE,OAAO,IAAI,CAAC,IAAI,CAAC;IACtE,CAAC;IACD,OAAO,IAAI,CAAC;AACd,CAAC"}
|
memos/_js/fidelity.d.ts
ADDED
|
@@ -0,0 +1,367 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* Fidelity-level compaction (L0–L3) + query-adaptive level-aware retrieval.
|
|
3
|
+
*
|
|
4
|
+
* Every memory exists at four fidelity levels:
|
|
5
|
+
* - L0: tags + entities only (~tens of tokens). Derived free from the
|
|
6
|
+
* existing entity index/tags — nothing is stored.
|
|
7
|
+
* - L1: typed facts — short structured statements extracted at write /
|
|
8
|
+
* consolidation time. Deterministic and template-based (no LLM):
|
|
9
|
+
* entity-bearing sentences from the existing extraction pipeline
|
|
10
|
+
* (`extractQueryEntities` + `canonicalizeEntities`), prefixed with
|
|
11
|
+
* the memory's type.
|
|
12
|
+
* - L2: extractive summary — sentence selection by centrality
|
|
13
|
+
* (TextRank-lite over sentence word-overlap, no LLM). A future
|
|
14
|
+
* sleep-time LLM pass may upgrade it to abstractive; the
|
|
15
|
+
* extractive path always works with zero LLM.
|
|
16
|
+
* - L3: verbatim full text (the existing `content`).
|
|
17
|
+
*
|
|
18
|
+
* The retriever picks the CHEAPEST level that satisfies the query instead
|
|
19
|
+
* of always returning verbatim: `routeFidelity()` chooses a starting level
|
|
20
|
+
* from cheap local signals (entity density, query shape, length), and
|
|
21
|
+
* `MemOS.recall()` escalates L0→L1→L2→L3 within the same call when the
|
|
22
|
+
* result set looks insufficient — up to a caller-specified `maxFidelity`.
|
|
23
|
+
*
|
|
24
|
+
* Why this is novel: OpenViking ships fixed tiered loading (L0→L1→L2
|
|
25
|
+
* ladder) but requires LLM/VLM + embeddings and is filesystem-based with
|
|
26
|
+
* a static ladder; MemPalace's L0–L3 is a fixed wake-up loader. This is
|
|
27
|
+
* zero-LLM, SQLite, per-query adaptive fidelity selection with in-call
|
|
28
|
+
* escalation.
|
|
29
|
+
*
|
|
30
|
+
* Level persistence: L1/L2 are generated at write time (`MemOS.store`)
|
|
31
|
+
* and cached in the reserved `metadata.fidelity` slot (`{ v, l1, l2 }`)
|
|
32
|
+
* so they travel with the node on every storage adapter with zero schema
|
|
33
|
+
* migration. `MemOS.compact()` backfills pre-existing memories eagerly;
|
|
34
|
+
* reads also generate lazily when the cache is missing (fail-soft, no
|
|
35
|
+
* writes on the hot path).
|
|
36
|
+
*
|
|
37
|
+
* Default-behavior contract: every public API defaults to L3-equivalent
|
|
38
|
+
* output (verbatim), so existing tests and consumers see byte-identical
|
|
39
|
+
* behavior unless they opt into `fidelity: "adaptive"` or a fixed lower
|
|
40
|
+
* level. Adaptive is opt-in because level selection changes *which text*
|
|
41
|
+
* is returned, and that must be a deliberate caller choice.
|
|
42
|
+
*
|
|
43
|
+
* @module @memos/fidelity
|
|
44
|
+
*/
|
|
45
|
+
import type { MemoryNode, SearchFilter } from "./types.js";
|
|
46
|
+
/** Fidelity levels, cheapest first. */
|
|
47
|
+
export type FidelityLevel = "L0" | "L1" | "L2" | "L3";
|
|
48
|
+
/** Ordered levels for escalation loops. */
|
|
49
|
+
export declare const FIDELITY_LEVELS: readonly FidelityLevel[];
|
|
50
|
+
/** Human-readable label per level (CLI/docs). */
|
|
51
|
+
export declare const FIDELITY_LEVEL_LABELS: Record<FidelityLevel, string>;
|
|
52
|
+
/** One-line description per level (CLI/docs). */
|
|
53
|
+
export declare const FIDELITY_LEVEL_DESCRIPTIONS: Record<FidelityLevel, string>;
|
|
54
|
+
/** Next level up, or null at the top. */
|
|
55
|
+
export declare function nextFidelityLevel(level: FidelityLevel): FidelityLevel | null;
|
|
56
|
+
/** Clamp a level to at most `max` (escalation ceiling). */
|
|
57
|
+
export declare function clampFidelityLevel(level: FidelityLevel, max: FidelityLevel): FidelityLevel;
|
|
58
|
+
/** Parse a user-supplied level string; null when invalid. */
|
|
59
|
+
export declare function parseFidelityLevel(value: string): FidelityLevel | null;
|
|
60
|
+
/**
|
|
61
|
+
* Split text into sentences. Newlines become spaces; splits on `.`/`!`/`?`
|
|
62
|
+
* followed by whitespace (lookbehind keeps the terminator). Deterministic.
|
|
63
|
+
*/
|
|
64
|
+
export declare function splitSentences(text: string): string[];
|
|
65
|
+
/** Stored entities on a node (`metadata.entities`), lowercased + deduped. */
|
|
66
|
+
export declare function nodeEntities(node: MemoryNode): string[];
|
|
67
|
+
/**
|
|
68
|
+
* L0 text: tags and entities only. Derived free from the existing entity
|
|
69
|
+
* index/tags — nothing is generated or stored. Returns "" when the memory
|
|
70
|
+
* has neither (such memories can only be reached at L1+).
|
|
71
|
+
*/
|
|
72
|
+
export declare function fidelityL0(node: MemoryNode): string;
|
|
73
|
+
/**
|
|
74
|
+
* L1 text: typed fact statements. Entity-bearing sentences (matched
|
|
75
|
+
* against the memory's own tags + stored entities via the existing
|
|
76
|
+
* extraction pipeline) become `[type] sentence` facts; when no sentence
|
|
77
|
+
* carries an entity, the lead sentence stands in. Deterministic,
|
|
78
|
+
* template-based — no LLM.
|
|
79
|
+
*
|
|
80
|
+
* Falls back to the verbatim content when the facts would cost as much
|
|
81
|
+
* as the content itself, keeping token counts non-increasing L1 ≤ L3.
|
|
82
|
+
*/
|
|
83
|
+
export declare function fidelityL1(node: MemoryNode): string;
|
|
84
|
+
/** True when the sentence carries a number, date, or negation. */
|
|
85
|
+
export declare function isInformationDense(sentence: string): boolean;
|
|
86
|
+
/**
|
|
87
|
+
* TextRank-lite sentence centrality: similarity(i, j) =
|
|
88
|
+
* |words_i ∩ words_j| / (log|words_i| + log|words_j|) (Mihalcea & Tarau
|
|
89
|
+
* 2004), then PageRank over the similarity graph. Pure function, zero
|
|
90
|
+
* LLM. Returns sentences ranked best-first (ties: original order).
|
|
91
|
+
*/
|
|
92
|
+
export declare function rankSentencesByCentrality(sentences: string[]): string[];
|
|
93
|
+
/**
|
|
94
|
+
* L2 text: extractive summary — the top central sentences in original
|
|
95
|
+
* order, capped at ~600 chars. Short content passes through unchanged
|
|
96
|
+
* (nothing to compress). Never longer than verbatim, so L2 ≤ L3.
|
|
97
|
+
*
|
|
98
|
+
* A sleep-time LLM pass may later UPGRADE this slot to an abstractive
|
|
99
|
+
* summary; the extractive path here is the guaranteed zero-LLM floor.
|
|
100
|
+
*/
|
|
101
|
+
export declare function fidelityL2(node: MemoryNode): string;
|
|
102
|
+
/**
|
|
103
|
+
* Stamp generated L1/L2 text into the node's reserved metadata slot
|
|
104
|
+
* (mutates the passed node object). Called at write time and by
|
|
105
|
+
* `MemOS.compact()` backfill.
|
|
106
|
+
*/
|
|
107
|
+
export declare function stampFidelityCache(node: MemoryNode): {
|
|
108
|
+
l1: string;
|
|
109
|
+
l2: string;
|
|
110
|
+
};
|
|
111
|
+
/** True when the node already carries cached L1/L2 text. */
|
|
112
|
+
export declare function hasFidelityCache(node: MemoryNode): boolean;
|
|
113
|
+
/**
|
|
114
|
+
* Text of a memory at a fidelity level. L1/L2 prefer the write-time
|
|
115
|
+
* cache and generate lazily (pure, no writes) when missing.
|
|
116
|
+
*
|
|
117
|
+
* Image memories append their `[img:<ref>]` token at EVERY level. The
|
|
118
|
+
* lower levels exist to save tokens (L0 is a tag/entity soup, L1 is
|
|
119
|
+
* typed facts), and none of them carries `node.content` — so without
|
|
120
|
+
* this append a memory findable at L0 would return prose with no way
|
|
121
|
+
* to reach the image it describes. A memory that can be found but whose
|
|
122
|
+
* image cannot be shown is a broken memory, so the token rides at every
|
|
123
|
+
* level. Text nodes are untouched: no token is appended and their
|
|
124
|
+
* rendered bytes are identical to before.
|
|
125
|
+
*/
|
|
126
|
+
export declare function levelText(node: MemoryNode, level: FidelityLevel): string;
|
|
127
|
+
/**
|
|
128
|
+
* Score each doc against the query as IDF-weighted term coverage in
|
|
129
|
+
* [0, 1]: the fraction of the query's IDF mass present in the doc.
|
|
130
|
+
* 1.0 = every query term appears; 0.0 = none do. Local, zero-dependency,
|
|
131
|
+
* deterministic — the hot-path scorer for level corpora.
|
|
132
|
+
*/
|
|
133
|
+
export declare function scoreLevelCorpus(query: string, docs: string[]): number[];
|
|
134
|
+
/** Cheap signals the router used for one query. */
|
|
135
|
+
export interface FidelitySignals {
|
|
136
|
+
/** Canonicalized entities found in the query. */
|
|
137
|
+
entities: string[];
|
|
138
|
+
/** Query word count. */
|
|
139
|
+
words: number;
|
|
140
|
+
/** Question words present. */
|
|
141
|
+
questionWords: string[];
|
|
142
|
+
/** Explanatory/conceptual markers present. */
|
|
143
|
+
explainWords: string[];
|
|
144
|
+
/** Summarization markers present. */
|
|
145
|
+
summaryWords: string[];
|
|
146
|
+
/** Quoted spans or code identifiers present (high specificity). */
|
|
147
|
+
quoted: boolean;
|
|
148
|
+
/**
|
|
149
|
+
* Decisive tokens the query carries — numbers, units, or negation.
|
|
150
|
+
* When present, the served text must contain them too: a query
|
|
151
|
+
* asking "why not 20" gets "pool = 40" as an answer otherwise.
|
|
152
|
+
* `recall()` uses this to force escalation past a level that
|
|
153
|
+
* merely has high term coverage.
|
|
154
|
+
*/
|
|
155
|
+
decisiveTokens: string[];
|
|
156
|
+
}
|
|
157
|
+
/** Router output: starting level + why. */
|
|
158
|
+
export interface FidelityRoute {
|
|
159
|
+
level: FidelityLevel;
|
|
160
|
+
/** Human-readable reason (logged / surfaced in results). */
|
|
161
|
+
reason: string;
|
|
162
|
+
signals: FidelitySignals;
|
|
163
|
+
}
|
|
164
|
+
/**
|
|
165
|
+
* Extract router entities: the standard pipeline
|
|
166
|
+
* (`extractQueryEntities` + canonicalization) PLUS lowercase alias-table
|
|
167
|
+
* vocabulary — "postgres" never surfaces as a capitalized entity but is
|
|
168
|
+
* an unambiguous entity reference through the alias table.
|
|
169
|
+
*/
|
|
170
|
+
export declare function routerEntities(query: string): string[];
|
|
171
|
+
/**
|
|
172
|
+
* Decisive tokens in a query: numbers (with optional units) and
|
|
173
|
+
* negations. These are the tokens a bag-of-words coverage score
|
|
174
|
+
* cannot judge: "pool size = 20" and "pool size reduced from 40"
|
|
175
|
+
* score identically on term presence, and "not" is invisible to
|
|
176
|
+
* every set-membership scorer. When the query carries one and the
|
|
177
|
+
* served text lacks it, `recall()` must escalate regardless of the
|
|
178
|
+
* coverage score.
|
|
179
|
+
*/
|
|
180
|
+
export declare function queryDecisiveTokens(query: string): string[];
|
|
181
|
+
/** True when `text` contains the decisive token (number or negation). */
|
|
182
|
+
export declare function textHasDecisiveToken(text: string, token: string): boolean;
|
|
183
|
+
/**
|
|
184
|
+
* Pick the STARTING fidelity level for a query. Local heuristics, no
|
|
185
|
+
* LLM. Rule: start low, escalate on demand (escalation happens in
|
|
186
|
+
* `MemOS.recall()` when the result set looks insufficient).
|
|
187
|
+
*
|
|
188
|
+
* Rules (first match wins):
|
|
189
|
+
* 1. Entity lookup (≥1 entity, ≤4 words, no question/explain
|
|
190
|
+
* words, NO decisive token) → L0. Tags+entities answer "which
|
|
191
|
+
* memory is about X" — a retrieval affordance, not an answer.
|
|
192
|
+
* 2. Entity-anchored factoid, OR any query carrying a decisive
|
|
193
|
+
* token (number/unit/negation) → L1. Typed facts carry the
|
|
194
|
+
* answer; the decisive-token check in `recall()` escalates if
|
|
195
|
+
* the token is still absent at L1.
|
|
196
|
+
* 3. Explanatory / conceptual (why/how/explain/…) → L3.
|
|
197
|
+
* Nuance and reasoning don't survive compression.
|
|
198
|
+
* 4. Summarization request or long narrative query (≥30 words) → L2.
|
|
199
|
+
* 5. Open question (what/which/who/when/where/tell, no entity) → L2.
|
|
200
|
+
* Summary first; escalate on miss.
|
|
201
|
+
* 6. Fallback → L1 (cheap, structured, usually sufficient).
|
|
202
|
+
*
|
|
203
|
+
* L0 is never the terminal level for a content question: `recall()`
|
|
204
|
+
* treats an L0-only hit as insufficient and escalates even when the
|
|
205
|
+
* caller passed `fidelity: "adaptive"`.
|
|
206
|
+
*/
|
|
207
|
+
export declare function routeFidelity(query: string): FidelityRoute;
|
|
208
|
+
/** Options for `MemOS.recall()` — additive; nothing here changes search(). */
|
|
209
|
+
export interface FidelityRecallOptions {
|
|
210
|
+
/**
|
|
211
|
+
* Starting fidelity level, or `"adaptive"` to let `routeFidelity()`
|
|
212
|
+
* choose from query signals. Default `"L3"` — verbatim output,
|
|
213
|
+
* behavior-preserving for existing consumers.
|
|
214
|
+
*/
|
|
215
|
+
fidelity?: FidelityLevel | "adaptive";
|
|
216
|
+
/**
|
|
217
|
+
* Escalation ceiling: recall never serves above this level, even when
|
|
218
|
+
* the result set looks insufficient. Default `"L3"`.
|
|
219
|
+
*/
|
|
220
|
+
maxFidelity?: FidelityLevel;
|
|
221
|
+
/** Max results returned. Default 20. */
|
|
222
|
+
limit?: number;
|
|
223
|
+
/**
|
|
224
|
+
* Minimum [0,1] coverage score for a hit. Results below it trigger
|
|
225
|
+
* escalation (or are dropped at the ceiling). Default 0.15.
|
|
226
|
+
*/
|
|
227
|
+
threshold?: number;
|
|
228
|
+
/**
|
|
229
|
+
* Escalate when fewer than this many hits clear the threshold.
|
|
230
|
+
* Default 1.
|
|
231
|
+
*/
|
|
232
|
+
minResults?: number;
|
|
233
|
+
/**
|
|
234
|
+
* Escalation floor: never serve a level below this, even via
|
|
235
|
+
* `fidelity: "adaptive"`. Default `"L1"` — L0 (tags+entities) is a
|
|
236
|
+
* retrieval affordance, not an answer, so an adaptive call never
|
|
237
|
+
* stops there. Pass `"L0"` to opt back into tag soup (an explicit
|
|
238
|
+
* contract: the caller wants "which memory is about X").
|
|
239
|
+
*/
|
|
240
|
+
minLevel?: FidelityLevel;
|
|
241
|
+
/**
|
|
242
|
+
* Force escalation when the query carries a decisive token
|
|
243
|
+
* (number/unit/negation) that the served text lacks. Default true:
|
|
244
|
+
* IDF coverage scores "pool size = 20" and "pool size was reduced
|
|
245
|
+
* from 40" identically, so this is the only signal that notices the
|
|
246
|
+
* decisive token went missing during compaction. Set false to
|
|
247
|
+
* restore pure coverage-gated escalation.
|
|
248
|
+
*/
|
|
249
|
+
escalateOnMissingDecisiveToken?: boolean;
|
|
250
|
+
/** Scope the candidate set (namespace/type/tags/pool). */
|
|
251
|
+
filter?: SearchFilter;
|
|
252
|
+
/**
|
|
253
|
+
* Scope recall to one authoring harness (e.g. `"claude-code"`), or
|
|
254
|
+
* `"all"` (default) for the behavior-preserving cross-harness
|
|
255
|
+
* recall. `filter.harness` is honored too; this top-level option
|
|
256
|
+
* wins when both are set.
|
|
257
|
+
*/
|
|
258
|
+
harness?: string;
|
|
259
|
+
}
|
|
260
|
+
/** One recalled memory with its served fidelity level. */
|
|
261
|
+
export interface FidelityRecallResult {
|
|
262
|
+
/** The full memory node (identity preserved; text served at `level`). */
|
|
263
|
+
node: MemoryNode;
|
|
264
|
+
/** Level the text was served at (after escalation). */
|
|
265
|
+
level: FidelityLevel;
|
|
266
|
+
/** `levelText(node, level)` — what the caller should inject. */
|
|
267
|
+
text: string;
|
|
268
|
+
/** [0,1] coverage score at the final level. */
|
|
269
|
+
score: number;
|
|
270
|
+
/** Levels attempted before the final one (empty when none). */
|
|
271
|
+
escalations: FidelityLevel[];
|
|
272
|
+
/** Router output — present only when `fidelity: "adaptive"`. */
|
|
273
|
+
route?: FidelityRoute;
|
|
274
|
+
}
|
|
275
|
+
/** Default escalation floor: L0 is a retrieval affordance, not an answer. */
|
|
276
|
+
export declare const DEFAULT_MIN_FIDELITY_LEVEL: FidelityLevel;
|
|
277
|
+
/**
|
|
278
|
+
* Composition guard for `fidelity` × `compression` (audit finding 7f).
|
|
279
|
+
*
|
|
280
|
+
* `compressText` is a stopword-class filter. Applied to an item that
|
|
281
|
+
* is ALREADY a compressed fidelity level (L1 typed facts, L2
|
|
282
|
+
* extractive summary), it strips the connective tissue that made the
|
|
283
|
+
* summary readable — on top of the sentence-selection loss that
|
|
284
|
+
* already happened. Two lossy passes composed: the result is
|
|
285
|
+
* terser but materially less answerable than either pass alone.
|
|
286
|
+
*
|
|
287
|
+
* So when an item was rendered below L3, budget compression is
|
|
288
|
+
* skipped (the item is admitted as-is, or dropped if it still
|
|
289
|
+
* doesn't fit — exactly as it was before compression existed).
|
|
290
|
+
* L3 verbatim text has its full prose structure to lose and is the
|
|
291
|
+
* only level where the filter is a net win.
|
|
292
|
+
*/
|
|
293
|
+
export declare function shouldCompressFidelityItem(fidelity: FidelityLevel | undefined): boolean;
|
|
294
|
+
/**
|
|
295
|
+
* Resolve the effective start level + ceiling for a recall call.
|
|
296
|
+
*
|
|
297
|
+
* The start level is additionally clamped UP to the escalation floor
|
|
298
|
+
* (`minLevel`, default L1) unless the caller explicitly requested L0:
|
|
299
|
+
* an adaptive route may pick L0 for "postgres pool size", but serving
|
|
300
|
+
* tag soup as the answer is a category error, so the floor lifts it
|
|
301
|
+
* to L1.
|
|
302
|
+
*/
|
|
303
|
+
export declare function resolveRecallLevels(query: string, opts?: FidelityRecallOptions): {
|
|
304
|
+
start: FidelityLevel;
|
|
305
|
+
max: FidelityLevel;
|
|
306
|
+
floor: FidelityLevel;
|
|
307
|
+
route?: FidelityRoute;
|
|
308
|
+
};
|
|
309
|
+
/**
|
|
310
|
+
* Whether the hits at the current level are sufficient, or the call
|
|
311
|
+
* must escalate. Two conditions beyond raw coverage:
|
|
312
|
+
*
|
|
313
|
+
* 1. `floor` — never serve L0 unless the caller explicitly asked for
|
|
314
|
+
* it. Tags+entities answer "which memory", not "what is the value".
|
|
315
|
+
* 2. Decisive tokens — when the query carries a number/unit/negation
|
|
316
|
+
* and the served text lacks it, escalate even at full coverage:
|
|
317
|
+
* "pool size = 20" and "pool size reduced from 40" both score 1.0
|
|
318
|
+
* on term presence, and only one of them answers the question.
|
|
319
|
+
*/
|
|
320
|
+
export declare function fidelityLevelSufficient(query: string, level: FidelityLevel, docs: string[], opts: {
|
|
321
|
+
floor: FidelityLevel;
|
|
322
|
+
checkDecisiveTokens: boolean;
|
|
323
|
+
}): boolean;
|
|
324
|
+
/** Per-level token stats over a set of memories. */
|
|
325
|
+
export interface FidelityLevelStats {
|
|
326
|
+
level: FidelityLevel;
|
|
327
|
+
label: string;
|
|
328
|
+
description: string;
|
|
329
|
+
/** Memories measured. */
|
|
330
|
+
count: number;
|
|
331
|
+
/** Mean tokens per memory at this level. */
|
|
332
|
+
avgTokens: number;
|
|
333
|
+
/** Total tokens across all measured memories. */
|
|
334
|
+
totalTokens: number;
|
|
335
|
+
/**
|
|
336
|
+
* Fraction of tokens saved vs verbatim (L3): 0.9 = 90% fewer tokens.
|
|
337
|
+
* 0 for L3 itself.
|
|
338
|
+
*/
|
|
339
|
+
savingsVsVerbatim: number;
|
|
340
|
+
}
|
|
341
|
+
/**
|
|
342
|
+
* Measure tokens per fidelity level over `nodes`. `tokenCounter` is
|
|
343
|
+
* injected (callers pass the pack-grade `estimateTokens`) so this module
|
|
344
|
+
* stays dependency-free.
|
|
345
|
+
*/
|
|
346
|
+
export declare function fidelityStats(nodes: MemoryNode[], tokenCounter: (text: string) => number): FidelityLevelStats[];
|
|
347
|
+
/** Options for `MemOS.compact()`. */
|
|
348
|
+
export interface CompactOptions {
|
|
349
|
+
/** Only backfill this namespace. */
|
|
350
|
+
namespace?: string;
|
|
351
|
+
/** Cap the number of memories scanned. */
|
|
352
|
+
limit?: number;
|
|
353
|
+
/** Include per-level token stats in the result. */
|
|
354
|
+
stats?: boolean;
|
|
355
|
+
/** Compute stats but don't write anything. */
|
|
356
|
+
dryRun?: boolean;
|
|
357
|
+
}
|
|
358
|
+
/** Result of `MemOS.compact()`. */
|
|
359
|
+
export interface CompactResult {
|
|
360
|
+
scanned: number;
|
|
361
|
+
/** Memories that received newly generated L1/L2. */
|
|
362
|
+
backfilled: number;
|
|
363
|
+
/** Memories that already had cached levels. */
|
|
364
|
+
skipped: number;
|
|
365
|
+
stats?: FidelityLevelStats[];
|
|
366
|
+
}
|
|
367
|
+
//# sourceMappingURL=fidelity.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"fidelity.d.ts","sourceRoot":"","sources":["../src/fidelity.ts"],"names":[],"mappings":"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"}
|