@remnic/core 9.63.9 → 9.63.10
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/dist/access-admin-ops-surface.d.ts +11 -11
- package/dist/access-admin-ops-surface.js +23 -23
- package/dist/access-authorization-probe.d.ts +11 -11
- package/dist/access-authorization-probe.js +24 -24
- package/dist/access-boundary.d.ts +11 -11
- package/dist/access-boundary.js +23 -23
- package/dist/access-cli.js +84 -82
- package/dist/access-cli.js.map +1 -1
- package/dist/access-coding-context-resolution.d.ts +1 -1
- package/dist/access-extraction-force-flush.d.ts +11 -11
- package/dist/access-extraction-force-flush.js +23 -23
- package/dist/access-health-types.d.ts +1 -1
- package/dist/access-http-lcm-compaction.d.ts +11 -11
- package/dist/access-http-lifecycle-flush.d.ts +11 -11
- package/dist/access-http-offline-stream.d.ts +11 -11
- package/dist/access-http-query.d.ts +2 -2
- package/dist/access-http-query.js +25 -25
- package/dist/access-http.d.ts +12 -12
- package/dist/access-http.js +36 -36
- package/dist/access-identity-continuity-surface.d.ts +9 -9
- package/dist/access-identity-continuity-surface.js +23 -23
- package/dist/access-lcm-surface.d.ts +11 -11
- package/dist/access-lcm-surface.js +23 -23
- package/dist/access-mcp.d.ts +11 -11
- package/dist/access-mcp.js +30 -30
- package/dist/access-memory-search-fanout.d.ts +2 -2
- package/dist/{access-namespace-preflight-DB0zXFek.d.ts → access-namespace-preflight-CrF0FKaz.d.ts} +1 -1
- package/dist/access-namespace-preflight.d.ts +3 -3
- package/dist/access-namespace-preflight.js +23 -23
- package/dist/access-observe-write-surface.d.ts +11 -11
- package/dist/access-observe-write-surface.js +23 -23
- package/dist/access-offline-manifest.d.ts +9 -9
- package/dist/access-operations-batch.js +25 -25
- package/dist/access-operations.d.ts +11 -11
- package/dist/access-operations.js +29 -29
- package/dist/access-recall-concurrency.d.ts +11 -11
- package/dist/access-recall-concurrency.js +23 -23
- package/dist/access-recall-response.d.ts +11 -11
- package/dist/access-recall-response.js +23 -23
- package/dist/access-recall-surface.d.ts +11 -11
- package/dist/access-recall-surface.js +23 -23
- package/dist/access-schema.js +3 -3
- package/dist/{access-service-DwfdjqkZ.d.ts → access-service-C0AE0jLs.d.ts} +7 -7
- package/dist/access-service-helpers.d.ts +11 -11
- package/dist/access-service.d.ts +11 -11
- package/dist/access-service.js +23 -23
- package/dist/access-surface-catalog.d.ts +11 -11
- package/dist/access-surface-catalog.js +25 -25
- package/dist/access-wearables-meetings-surface.d.ts +3 -3
- package/dist/action-confidence.d.ts +1 -1
- package/dist/active-memory-bridge.d.ts +1 -1
- package/dist/active-recall.d.ts +1 -1
- package/dist/ambient-provenance.d.ts +1 -1
- package/dist/artifact-search.d.ts +1 -1
- package/dist/{auto-sync-3SHMZVQS.js → auto-sync-5L7EUZ27.js} +4 -3
- package/dist/{auto-sync-3SHMZVQS.js.map → auto-sync-5L7EUZ27.js.map} +1 -1
- package/dist/behavior-learner.d.ts +1 -1
- package/dist/behavior-signals.d.ts +1 -1
- package/dist/bootstrap.d.ts +9 -9
- package/dist/briefing-window.d.ts +2 -2
- package/dist/briefing.d.ts +5 -3
- package/dist/briefing.js +11 -9
- package/dist/buffer-surprise-report.d.ts +1 -1
- package/dist/buffer-turn-helpers.d.ts +1 -1
- package/dist/buffer.d.ts +2 -2
- package/dist/bulk-import/index.d.ts +3 -3
- package/dist/calibration.d.ts +1 -1
- package/dist/capabilities.d.ts +1 -1
- package/dist/{capsule-crypto-YO5QJ6L3.js → capsule-crypto-GWVG7LGC.js} +2 -2
- package/dist/{catalog-CCzmf8IH.d.ts → catalog-C0KIwZqR.d.ts} +1 -1
- package/dist/causal-behavior.d.ts +1 -1
- package/dist/causal-consolidation.d.ts +1 -1
- package/dist/causal-consolidation.js +10 -10
- package/dist/causal-trajectory-graph.d.ts +1 -1
- package/dist/{chunk-4POAMKV6.js → chunk-27IOSH2W.js} +5 -2
- package/dist/chunk-27IOSH2W.js.map +1 -0
- package/dist/{chunk-OQIRBGUU.js → chunk-2Q4UAPLD.js} +4 -4
- package/dist/{chunk-3IMYRX3W.js → chunk-34E5NBQI.js} +2 -2
- package/dist/{chunk-BRHKW7GY.js → chunk-4IIDTPSK.js} +2 -2
- package/dist/{chunk-Q5XKKDFQ.js → chunk-5SZ6CLGJ.js} +2 -2
- package/dist/{chunk-VDX2J7OX.js → chunk-5W7CTZ2E.js} +4 -4
- package/dist/{chunk-EUYWQ7TS.js → chunk-652S5A5D.js} +2 -2
- package/dist/{chunk-ULZFZL7K.js → chunk-6IKXAAJI.js} +17 -28
- package/dist/chunk-6IKXAAJI.js.map +1 -0
- package/dist/{chunk-3TDAA7VA.js → chunk-6NMZXEJ7.js} +2 -2
- package/dist/{chunk-ZOAAY2OE.js → chunk-77E7LLMV.js} +7 -7
- package/dist/{chunk-MIUL6AUZ.js → chunk-7ML7STOD.js} +3 -3
- package/dist/{chunk-5SCFDQEJ.js → chunk-BPLPGOUJ.js} +2 -2
- package/dist/{chunk-RWMSMTQP.js → chunk-BS75WJBH.js} +2 -2
- package/dist/{chunk-XE2QCCT2.js → chunk-BTBAHTQ5.js} +2 -2
- package/dist/{chunk-42TIIO2M.js → chunk-BTUIHRRR.js} +2 -2
- package/dist/chunk-CIO7GCWE.js +29 -0
- package/dist/chunk-CIO7GCWE.js.map +1 -0
- package/dist/{chunk-SNEUAZ6B.js → chunk-CK3DZ6OE.js} +2 -2
- package/dist/{chunk-AJRJDXYR.js → chunk-E7MYSCSL.js} +2 -2
- package/dist/{chunk-3T6HIIKA.js → chunk-EHC3FIJ4.js} +2 -2
- package/dist/{chunk-EDZNW3HE.js → chunk-EPRBTGLM.js} +6 -6
- package/dist/{chunk-YTXNDEUS.js → chunk-FEP45MYY.js} +4 -3
- package/dist/{chunk-YTXNDEUS.js.map → chunk-FEP45MYY.js.map} +1 -1
- package/dist/{chunk-KFB4YNXM.js → chunk-G5F4MXXC.js} +2 -2
- package/dist/{chunk-VANZKHTN.js → chunk-G5OB4XZX.js} +4 -4
- package/dist/{chunk-N7V3P4V5.js → chunk-H5VDBZLZ.js} +2 -2
- package/dist/{chunk-645WOU5I.js → chunk-H7BZBSP6.js} +4 -4
- package/dist/{chunk-SZ4HFZKB.js → chunk-HMKPFW7R.js} +2 -2
- package/dist/{chunk-VFZQXYN5.js → chunk-HZXO2CJ6.js} +2 -2
- package/dist/{chunk-KXWE62IH.js → chunk-IOE75NA4.js} +2 -2
- package/dist/{chunk-PQHNZ63P.js → chunk-JJ45UTNT.js} +18 -5
- package/dist/chunk-JJ45UTNT.js.map +1 -0
- package/dist/{chunk-5TF5STAV.js → chunk-K477BTF4.js} +4 -4
- package/dist/{chunk-ML3U4KPR.js → chunk-K547KS3X.js} +4 -4
- package/dist/{chunk-UHGBNIOS.js → chunk-KVDUKH5E.js} +7 -2
- package/dist/chunk-KVDUKH5E.js.map +1 -0
- package/dist/{chunk-XTMYB2HY.js → chunk-LJQGQUNS.js} +2 -2
- package/dist/{chunk-WAS4HV46.js → chunk-LNH76ZJX.js} +87 -3
- package/dist/chunk-LNH76ZJX.js.map +1 -0
- package/dist/{chunk-VYMICVRA.js → chunk-LQNBQEMC.js} +2 -2
- package/dist/{chunk-J6QIAYNR.js → chunk-LVXBC6YB.js} +7 -2
- package/dist/{chunk-J6QIAYNR.js.map → chunk-LVXBC6YB.js.map} +1 -1
- package/dist/{chunk-IVKIODHO.js → chunk-MB6GLPRY.js} +4 -4
- package/dist/{chunk-BPQ7L27U.js → chunk-MIM7QT6H.js} +16 -16
- package/dist/chunk-MKYRCCSN.js +145 -0
- package/dist/chunk-MKYRCCSN.js.map +1 -0
- package/dist/{chunk-WBPD6SBZ.js → chunk-MNI7KB4Q.js} +54 -54
- package/dist/{chunk-6433HV72.js → chunk-MVIYRRVJ.js} +5 -5
- package/dist/{chunk-BXLOS5AJ.js → chunk-OWHERGF2.js} +2 -2
- package/dist/{chunk-QQYHYW2N.js → chunk-PQODT53H.js} +3 -3
- package/dist/{chunk-PHKU6BZ2.js → chunk-R7FQQQ23.js} +2 -2
- package/dist/{chunk-TOP3FSDW.js → chunk-RFFCBYBD.js} +11 -11
- package/dist/{chunk-O52TB5SL.js → chunk-SAWGVTCE.js} +2 -2
- package/dist/{chunk-LTYH2L6E.js → chunk-SILX74CP.js} +9 -9
- package/dist/{chunk-MYI3RKI6.js → chunk-SYU5JOBQ.js} +2 -2
- package/dist/{chunk-SY5JUJ2X.js → chunk-U5XC6DIS.js} +39 -39
- package/dist/{chunk-JXS5PDQ7.js → chunk-UOBPK2OS.js} +25 -7
- package/dist/chunk-UOBPK2OS.js.map +1 -0
- package/dist/{chunk-BOSIHHOH.js → chunk-UUYQWKHO.js} +2 -2
- package/dist/{chunk-DQEMWVMT.js → chunk-UVYI6VIX.js} +1 -1
- package/dist/{chunk-M4AHBM72.js → chunk-VCBG52MM.js} +4 -4
- package/dist/{chunk-62Y5AGCM.js → chunk-VENMDW4U.js} +10 -10
- package/dist/{chunk-6NAPOLRO.js → chunk-VY47VI2T.js} +6 -4
- package/dist/chunk-VY47VI2T.js.map +1 -0
- package/dist/{chunk-QTXNS3HB.js → chunk-WCWIV2JH.js} +2 -2
- package/dist/{chunk-6UKSOXAO.js → chunk-WQ6TRWAE.js} +3 -3
- package/dist/{chunk-CBY54QYW.js → chunk-X6HNXVXS.js} +4 -4
- package/dist/{chunk-DGUVXXAU.js → chunk-XFJUPJD7.js} +2 -2
- package/dist/{chunk-JPWSYHLB.js → chunk-YGSDWO3U.js} +2 -2
- package/dist/{chunk-GBVRVYF4.js → chunk-YINSSARY.js} +1 -1
- package/dist/{chunk-Q6OL23WM.js → chunk-Z4UPRZR6.js} +2 -2
- package/dist/{chunk-4F67JJPG.js → chunk-ZPN7W3OP.js} +2 -2
- package/dist/{cli-kcUqoV4E.d.ts → cli-xoJTOdMQ.d.ts} +5 -5
- package/dist/cli.d.ts +13 -13
- package/dist/cli.js +55 -54
- package/dist/coding/pre-action-gate.d.ts +1 -1
- package/dist/compounding/engine.d.ts +2 -2
- package/dist/compounding/engine.js +9 -9
- package/dist/compounding/preference-consolidator.d.ts +1 -1
- package/dist/compression-optimizer.d.ts +1 -1
- package/dist/config.d.ts +1 -1
- package/dist/connectors/codex-materialize-runner.d.ts +1 -1
- package/dist/connectors/codex-materialize-runner.js +9 -9
- package/dist/connectors/codex-materialize.d.ts +1 -1
- package/dist/connectors/index.d.ts +1 -1
- package/dist/connectors/index.js +9 -9
- package/dist/consolidation-provenance-check.d.ts +2 -2
- package/dist/consolidation-undo.d.ts +2 -2
- package/dist/contradiction/index.d.ts +2 -2
- package/dist/contradiction/index.js +4 -4
- package/dist/converge-config.d.ts +1 -1
- package/dist/convergence-refresh.d.ts +2 -2
- package/dist/convergence-refresh.js +11 -11
- package/dist/conversation-index/backend.d.ts +1 -1
- package/dist/conversation-index/chunker.d.ts +1 -1
- package/dist/conversation-index/faiss-adapter.d.ts +1 -1
- package/dist/conversation-index/indexer.d.ts +1 -1
- package/dist/conversation-index/search.d.ts +1 -1
- package/dist/corpus-watermark.d.ts +1 -1
- package/dist/corpus-watermark.js +11 -11
- package/dist/day-summary.d.ts +1 -1
- package/dist/day-summary.js +1 -1
- package/dist/delinearize.d.ts +1 -1
- package/dist/dependency-propagation-config.d.ts +1 -1
- package/dist/{dependency-propagation-delivery-DiY5T63p.d.ts → dependency-propagation-delivery-Cph4PnBe.d.ts} +1 -1
- package/dist/direct-answer-wiring.d.ts +1 -1
- package/dist/direct-answer-wiring.js +2 -1
- package/dist/direct-answer.d.ts +1 -1
- package/dist/embedding-fallback.d.ts +1 -1
- package/dist/enrichment/index.d.ts +1 -1
- package/dist/entity-origin-fields.d.ts +1 -1
- package/dist/entity-retrieval-i18n.d.ts +34 -0
- package/dist/entity-retrieval-i18n.js +13 -0
- package/dist/entity-retrieval-i18n.js.map +1 -0
- package/dist/entity-retrieval.d.ts +2 -2
- package/dist/entity-retrieval.js +10 -9
- package/dist/entity-schema.d.ts +1 -1
- package/dist/episodic-context.d.ts +1 -1
- package/dist/event-order-recall.js +2 -2
- package/dist/explicit-capture.d.ts +9 -9
- package/dist/external-wiki-access.d.ts +11 -11
- package/dist/external-wiki-access.js +24 -24
- package/dist/external-wiki-collection-registration.d.ts +1 -1
- package/dist/external-wiki-collection.d.ts +1 -1
- package/dist/external-wiki-mcp-tools.d.ts +11 -11
- package/dist/extraction-error-classification.d.ts +1 -1
- package/dist/extraction-faithfulness.d.ts +1 -1
- package/dist/extraction-judge-telemetry.d.ts +1 -1
- package/dist/extraction-judge-training.d.ts +1 -1
- package/dist/extraction-judge.d.ts +1 -1
- package/dist/extraction-liveness.d.ts +1 -1
- package/dist/extraction-normalization.d.ts +1 -1
- package/dist/extraction-prompt.d.ts +1 -1
- package/dist/extraction-source-grounding-helpers.d.ts +10 -1
- package/dist/extraction-source-grounding-helpers.js +3 -1
- package/dist/extraction-source-grounding-rules.d.ts +1 -1
- package/dist/extraction-source-grounding-rules.js +2 -2
- package/dist/extraction-source-grounding.d.ts +1 -1
- package/dist/extraction-source-grounding.js +3 -3
- package/dist/extraction.d.ts +1 -1
- package/dist/extraction.js +18 -18
- package/dist/fallback-llm.d.ts +1 -1
- package/dist/graph-dashboard-diff.d.ts +1 -1
- package/dist/graph-dashboard-key.d.ts +1 -1
- package/dist/graph-dashboard-parser.d.ts +1 -1
- package/dist/graph-edge-reinforcement.d.ts +1 -1
- package/dist/graph-path-reconstruction.d.ts +1 -1
- package/dist/graph-path-scoring.d.ts +1 -1
- package/dist/graph-snapshot.d.ts +1 -1
- package/dist/graph.d.ts +1 -1
- package/dist/harmonic-retrieval.js +1 -1
- package/dist/importance.d.ts +1 -1
- package/dist/importance.js +2 -1
- package/dist/importers/index.d.ts +1 -1
- package/dist/in-flight-reads.d.ts +1 -1
- package/dist/index.d.ts +21 -21
- package/dist/index.js +98 -96
- package/dist/intent.d.ts +1 -1
- package/dist/lcm/engine.d.ts +1 -1
- package/dist/lcm/engine.js +2 -2
- package/dist/lcm/index.d.ts +1 -1
- package/dist/lcm/index.js +4 -4
- package/dist/lcm/tools.d.ts +1 -1
- package/dist/lifecycle.d.ts +1 -1
- package/dist/live-connectors-runner.d.ts +1 -1
- package/dist/local-llm.d.ts +1 -1
- package/dist/local-llm.js +2 -2
- package/dist/local-model-endpoint.d.ts +1 -1
- package/dist/maintenance/memory-governance.d.ts +1 -1
- package/dist/maintenance/memory-governance.js +9 -9
- package/dist/maintenance/rebuild-memory-lifecycle-ledger.d.ts +2 -2
- package/dist/maintenance/rebuild-memory-lifecycle-ledger.js +9 -9
- package/dist/maintenance/rebuild-memory-projection.d.ts +2 -2
- package/dist/maintenance/rebuild-memory-projection.js +10 -10
- package/dist/{maintenance-CaqA4z7V.d.ts → maintenance-BNq31xpo.d.ts} +3 -3
- package/dist/mcp-memory-inspector-app.d.ts +11 -11
- package/dist/memory-action-policy.d.ts +1 -1
- package/dist/memory-cache.d.ts +1 -1
- package/dist/memory-lifecycle-ledger-utils.d.ts +1 -1
- package/dist/memory-projection-store.d.ts +1 -1
- package/dist/memory-provenance.d.ts +1 -1
- package/dist/memory-snapshot.d.ts +1 -1
- package/dist/memory-worth-outcomes.d.ts +2 -2
- package/dist/models-json.d.ts +1 -1
- package/dist/namespaces/migrate.d.ts +3 -3
- package/dist/namespaces/migrate.js +10 -10
- package/dist/namespaces/principal.d.ts +1 -1
- package/dist/namespaces/search.d.ts +1 -1
- package/dist/namespaces/search.js +7 -7
- package/dist/namespaces/storage.d.ts +3 -3
- package/dist/namespaces/storage.js +9 -9
- package/dist/native-knowledge.d.ts +1 -1
- package/dist/offline-sync-impression-drain.d.ts +1 -1
- package/dist/operator-doctor-corpus.d.ts +1 -1
- package/dist/operator-doctor-corpus.js +12 -12
- package/dist/operator-doctor-replica.d.ts +1 -1
- package/dist/operator-toolkit.d.ts +3 -3
- package/dist/operator-toolkit.js +17 -17
- package/dist/orchestration/compression-guideline-coordinator.d.ts +2 -2
- package/dist/orchestration/maintenance.d.ts +4 -4
- package/dist/orchestration/maintenance.js +15 -15
- package/dist/{orchestrator-Bay_AofR.d.ts → orchestrator-CBuUOP2J.d.ts} +8 -8
- package/dist/orchestrator.d.ts +9 -9
- package/dist/orchestrator.js +84 -82
- package/dist/patterns-cli.d.ts +1 -1
- package/dist/{pipeline-X606GdRJ.d.ts → pipeline-CW_Q4WvX.d.ts} +1 -1
- package/dist/policy-runtime.d.ts +1 -1
- package/dist/proactive-contention.d.ts +1 -1
- package/dist/provenance.d.ts +1 -1
- package/dist/{public-http-DscQtnCx.d.ts → public-http-DR3sHfwk.d.ts} +1 -1
- package/dist/qmd-preflight.d.ts +2 -2
- package/dist/{qmd-DCKeR-GX.d.ts → qmd-q-cAzYuC.d.ts} +1 -1
- package/dist/qmd-recall-cache.d.ts +1 -1
- package/dist/qmd.d.ts +2 -2
- package/dist/recall-concurrency-config.d.ts +1 -1
- package/dist/recall-disclosure-escalation.d.ts +1 -1
- package/dist/recall-explain-renderer.d.ts +1 -1
- package/dist/recall-memory-map.d.ts +1 -1
- package/dist/recall-planner-llm.d.ts +1 -1
- package/dist/recall-state.d.ts +1 -1
- package/dist/recall-tag-filter.d.ts +1 -1
- package/dist/recall-timings.d.ts +1 -1
- package/dist/recall-xray-cli.d.ts +1 -1
- package/dist/recall-xray-renderer.d.ts +1 -1
- package/dist/recall-xray.d.ts +1 -1
- package/dist/reconcile/cursor.d.ts +1 -1
- package/dist/reconcile/manifest.d.ts +1 -1
- package/dist/reconcile/plan.d.ts +1 -1
- package/dist/replay/normalizers/chatgpt.d.ts +1 -1
- package/dist/replay/normalizers/claude.d.ts +1 -1
- package/dist/replay/normalizers/openclaw.d.ts +1 -1
- package/dist/replay/normalizers/shared.d.ts +1 -1
- package/dist/replay/runner.d.ts +1 -1
- package/dist/replay/types.d.ts +1 -1
- package/dist/replica-divergence.d.ts +1 -1
- package/dist/replica-peers-config.d.ts +1 -1
- package/dist/resolve-auth-token.d.ts +1 -1
- package/dist/retrieval-agents.d.ts +2 -2
- package/dist/retrieval-tiers.d.ts +1 -1
- package/dist/routing/engine.d.ts +1 -1
- package/dist/routing/store.d.ts +1 -1
- package/dist/salvage-envelope.d.ts +1 -1
- package/dist/{scope-profiles-_Y_RHCeE.d.ts → scope-profiles-CIr4mXgp.d.ts} +1 -1
- package/dist/search/embed-helper.d.ts +1 -1
- package/dist/search/factory.d.ts +1 -1
- package/dist/search/factory.js +6 -6
- package/dist/search/index.d.ts +1 -1
- package/dist/search/index.js +11 -11
- package/dist/search/lancedb-backend.d.ts +1 -1
- package/dist/search/lancedb-backend.js +2 -2
- package/dist/search/meilisearch-backend.d.ts +1 -1
- package/dist/search/meilisearch-backend.js +2 -2
- package/dist/search/noop-backend.d.ts +1 -1
- package/dist/search/orama-backend.d.ts +1 -1
- package/dist/search/orama-backend.js +2 -2
- package/dist/search/port.d.ts +1 -1
- package/dist/search/remote-backend.d.ts +1 -1
- package/dist/{semantic-consolidation-DT2VSrU0.d.ts → semantic-consolidation-BZ6J46j-.d.ts} +1 -1
- package/dist/semantic-consolidation.d.ts +2 -2
- package/dist/semantic-consolidation.js +10 -10
- package/dist/semantic-rule-promotion.js +9 -9
- package/dist/semantic-rule-verifier.d.ts +1 -1
- package/dist/semantic-rule-verifier.js +9 -9
- package/dist/{service-BMo-gwDE.d.ts → service-CCl4iyyY.d.ts} +2 -2
- package/dist/session-observer-bands.d.ts +1 -1
- package/dist/session-observer-state.d.ts +1 -1
- package/dist/shared-context/manager.d.ts +1 -1
- package/dist/signal.d.ts +1 -1
- package/dist/source-agent-qualifier.d.ts +1 -1
- package/dist/source-agent-qualifier.js +13 -13
- package/dist/{storage-CGzJGUUu.d.ts → storage-BPXmJKIt.d.ts} +1 -1
- package/dist/storage.d.ts +2 -2
- package/dist/storage.js +8 -8
- package/dist/summarizer.d.ts +1 -1
- package/dist/summarizer.js +3 -3
- package/dist/summary-snapshot.d.ts +1 -1
- package/dist/support-passport/index.d.ts +14 -14
- package/dist/support-passport/index.js +26 -26
- package/dist/temporal-supersession.d.ts +2 -2
- package/dist/temporal-timeline-recall.d.ts +1 -1
- package/dist/temporal-validity.d.ts +1 -1
- package/dist/threading.d.ts +1 -1
- package/dist/tier-migration.d.ts +2 -2
- package/dist/tier-routing.d.ts +1 -1
- package/dist/topics.d.ts +1 -1
- package/dist/topics.js +2 -1
- package/dist/transcript.d.ts +1 -1
- package/dist/transfer/backup.js +2 -2
- package/dist/transfer/capsule-export.js +2 -2
- package/dist/transfer/capsule-import.js +2 -2
- package/dist/trust-score-stage.d.ts +1 -1
- package/dist/trust-score.d.ts +1 -1
- package/dist/{types-CBEAYU76.d.ts → types-CltSWcND.d.ts} +1 -1
- package/dist/types.d.ts +1 -1
- package/dist/utility-runtime.d.ts +1 -1
- package/dist/verified-recall.js +9 -9
- package/dist/write-envelope.d.ts +1 -1
- package/package.json +2 -2
- package/src/briefing.test.ts +50 -0
- package/src/briefing.ts +3 -2
- package/src/chat/chat-engine.test.ts +15 -0
- package/src/chat/chat-engine.ts +13 -2
- package/src/day-summary.test.ts +63 -0
- package/src/day-summary.ts +13 -1
- package/src/entity-retrieval-i18n.test.ts +115 -0
- package/src/entity-retrieval-i18n.ts +161 -0
- package/src/entity-retrieval.ts +34 -34
- package/src/extraction-source-grounding-helpers.ts +112 -2
- package/src/extraction-source-grounding-rules.ts +3 -1
- package/src/extraction-source-grounding.test.ts +52 -0
- package/src/importance.ts +32 -22
- package/src/taxonomy/resolver.ts +7 -7
- package/src/topics.ts +5 -2
- package/src/utils/script-aware-text.ts +52 -0
- package/src/write-classifiers-cjk.test.ts +115 -0
- package/dist/chunk-4POAMKV6.js.map +0 -1
- package/dist/chunk-6NAPOLRO.js.map +0 -1
- package/dist/chunk-JXS5PDQ7.js.map +0 -1
- package/dist/chunk-PQHNZ63P.js.map +0 -1
- package/dist/chunk-UHGBNIOS.js.map +0 -1
- package/dist/chunk-ULZFZL7K.js.map +0 -1
- package/dist/chunk-WAS4HV46.js.map +0 -1
- /package/dist/{capsule-crypto-YO5QJ6L3.js.map → capsule-crypto-GWVG7LGC.js.map} +0 -0
- /package/dist/{chunk-OQIRBGUU.js.map → chunk-2Q4UAPLD.js.map} +0 -0
- /package/dist/{chunk-3IMYRX3W.js.map → chunk-34E5NBQI.js.map} +0 -0
- /package/dist/{chunk-BRHKW7GY.js.map → chunk-4IIDTPSK.js.map} +0 -0
- /package/dist/{chunk-Q5XKKDFQ.js.map → chunk-5SZ6CLGJ.js.map} +0 -0
- /package/dist/{chunk-VDX2J7OX.js.map → chunk-5W7CTZ2E.js.map} +0 -0
- /package/dist/{chunk-EUYWQ7TS.js.map → chunk-652S5A5D.js.map} +0 -0
- /package/dist/{chunk-3TDAA7VA.js.map → chunk-6NMZXEJ7.js.map} +0 -0
- /package/dist/{chunk-ZOAAY2OE.js.map → chunk-77E7LLMV.js.map} +0 -0
- /package/dist/{chunk-MIUL6AUZ.js.map → chunk-7ML7STOD.js.map} +0 -0
- /package/dist/{chunk-5SCFDQEJ.js.map → chunk-BPLPGOUJ.js.map} +0 -0
- /package/dist/{chunk-RWMSMTQP.js.map → chunk-BS75WJBH.js.map} +0 -0
- /package/dist/{chunk-XE2QCCT2.js.map → chunk-BTBAHTQ5.js.map} +0 -0
- /package/dist/{chunk-42TIIO2M.js.map → chunk-BTUIHRRR.js.map} +0 -0
- /package/dist/{chunk-SNEUAZ6B.js.map → chunk-CK3DZ6OE.js.map} +0 -0
- /package/dist/{chunk-AJRJDXYR.js.map → chunk-E7MYSCSL.js.map} +0 -0
- /package/dist/{chunk-3T6HIIKA.js.map → chunk-EHC3FIJ4.js.map} +0 -0
- /package/dist/{chunk-EDZNW3HE.js.map → chunk-EPRBTGLM.js.map} +0 -0
- /package/dist/{chunk-KFB4YNXM.js.map → chunk-G5F4MXXC.js.map} +0 -0
- /package/dist/{chunk-VANZKHTN.js.map → chunk-G5OB4XZX.js.map} +0 -0
- /package/dist/{chunk-N7V3P4V5.js.map → chunk-H5VDBZLZ.js.map} +0 -0
- /package/dist/{chunk-645WOU5I.js.map → chunk-H7BZBSP6.js.map} +0 -0
- /package/dist/{chunk-SZ4HFZKB.js.map → chunk-HMKPFW7R.js.map} +0 -0
- /package/dist/{chunk-VFZQXYN5.js.map → chunk-HZXO2CJ6.js.map} +0 -0
- /package/dist/{chunk-KXWE62IH.js.map → chunk-IOE75NA4.js.map} +0 -0
- /package/dist/{chunk-5TF5STAV.js.map → chunk-K477BTF4.js.map} +0 -0
- /package/dist/{chunk-ML3U4KPR.js.map → chunk-K547KS3X.js.map} +0 -0
- /package/dist/{chunk-XTMYB2HY.js.map → chunk-LJQGQUNS.js.map} +0 -0
- /package/dist/{chunk-VYMICVRA.js.map → chunk-LQNBQEMC.js.map} +0 -0
- /package/dist/{chunk-IVKIODHO.js.map → chunk-MB6GLPRY.js.map} +0 -0
- /package/dist/{chunk-BPQ7L27U.js.map → chunk-MIM7QT6H.js.map} +0 -0
- /package/dist/{chunk-WBPD6SBZ.js.map → chunk-MNI7KB4Q.js.map} +0 -0
- /package/dist/{chunk-6433HV72.js.map → chunk-MVIYRRVJ.js.map} +0 -0
- /package/dist/{chunk-BXLOS5AJ.js.map → chunk-OWHERGF2.js.map} +0 -0
- /package/dist/{chunk-QQYHYW2N.js.map → chunk-PQODT53H.js.map} +0 -0
- /package/dist/{chunk-PHKU6BZ2.js.map → chunk-R7FQQQ23.js.map} +0 -0
- /package/dist/{chunk-TOP3FSDW.js.map → chunk-RFFCBYBD.js.map} +0 -0
- /package/dist/{chunk-O52TB5SL.js.map → chunk-SAWGVTCE.js.map} +0 -0
- /package/dist/{chunk-LTYH2L6E.js.map → chunk-SILX74CP.js.map} +0 -0
- /package/dist/{chunk-MYI3RKI6.js.map → chunk-SYU5JOBQ.js.map} +0 -0
- /package/dist/{chunk-SY5JUJ2X.js.map → chunk-U5XC6DIS.js.map} +0 -0
- /package/dist/{chunk-BOSIHHOH.js.map → chunk-UUYQWKHO.js.map} +0 -0
- /package/dist/{chunk-DQEMWVMT.js.map → chunk-UVYI6VIX.js.map} +0 -0
- /package/dist/{chunk-M4AHBM72.js.map → chunk-VCBG52MM.js.map} +0 -0
- /package/dist/{chunk-62Y5AGCM.js.map → chunk-VENMDW4U.js.map} +0 -0
- /package/dist/{chunk-QTXNS3HB.js.map → chunk-WCWIV2JH.js.map} +0 -0
- /package/dist/{chunk-6UKSOXAO.js.map → chunk-WQ6TRWAE.js.map} +0 -0
- /package/dist/{chunk-CBY54QYW.js.map → chunk-X6HNXVXS.js.map} +0 -0
- /package/dist/{chunk-DGUVXXAU.js.map → chunk-XFJUPJD7.js.map} +0 -0
- /package/dist/{chunk-JPWSYHLB.js.map → chunk-YGSDWO3U.js.map} +0 -0
- /package/dist/{chunk-GBVRVYF4.js.map → chunk-YINSSARY.js.map} +0 -0
- /package/dist/{chunk-Q6OL23WM.js.map → chunk-Z4UPRZR6.js.map} +0 -0
- /package/dist/{chunk-4F67JJPG.js.map → chunk-ZPN7W3OP.js.map} +0 -0
|
@@ -1,16 +1,16 @@
|
|
|
1
1
|
import {
|
|
2
2
|
externalWikiSearchOperation
|
|
3
|
-
} from "./chunk-
|
|
3
|
+
} from "./chunk-IOE75NA4.js";
|
|
4
4
|
import {
|
|
5
5
|
memoryStoreRequestSchema
|
|
6
|
-
} from "./chunk-
|
|
6
|
+
} from "./chunk-XFJUPJD7.js";
|
|
7
7
|
import {
|
|
8
8
|
CorrectionContractError,
|
|
9
9
|
DECISION_SUBCOMMANDS,
|
|
10
10
|
DELTA_SUBCOMMANDS,
|
|
11
11
|
defineOperation,
|
|
12
12
|
isCodegraphToolName
|
|
13
|
-
} from "./chunk-
|
|
13
|
+
} from "./chunk-MIM7QT6H.js";
|
|
14
14
|
import {
|
|
15
15
|
serializeMutations,
|
|
16
16
|
withHeldFileLock
|
|
@@ -1818,4 +1818,4 @@ export {
|
|
|
1818
1818
|
codegraphIngestTracesOperation,
|
|
1819
1819
|
REGISTERED_OPERATIONS
|
|
1820
1820
|
};
|
|
1821
|
-
//# sourceMappingURL=chunk-
|
|
1821
|
+
//# sourceMappingURL=chunk-K477BTF4.js.map
|
|
@@ -1,10 +1,10 @@
|
|
|
1
|
-
import {
|
|
2
|
-
scanMemoryDir
|
|
3
|
-
} from "./chunk-W7IGLX4G.js";
|
|
4
1
|
import {
|
|
5
2
|
isSearchAborted,
|
|
6
3
|
throwIfSearchAborted
|
|
7
4
|
} from "./chunk-GUMZC2BO.js";
|
|
5
|
+
import {
|
|
6
|
+
scanMemoryDir
|
|
7
|
+
} from "./chunk-W7IGLX4G.js";
|
|
8
8
|
import {
|
|
9
9
|
reportSearchDegradation,
|
|
10
10
|
resolveEnsureCollectionArgs
|
|
@@ -776,4 +776,4 @@ export {
|
|
|
776
776
|
resolveOramaCollectionDbFilePath,
|
|
777
777
|
OramaBackend
|
|
778
778
|
};
|
|
779
|
-
//# sourceMappingURL=chunk-
|
|
779
|
+
//# sourceMappingURL=chunk-K547KS3X.js.map
|
|
@@ -1,3 +1,7 @@
|
|
|
1
|
+
import {
|
|
2
|
+
cjkBigrams
|
|
3
|
+
} from "./chunk-CIO7GCWE.js";
|
|
4
|
+
|
|
1
5
|
// src/topics.ts
|
|
2
6
|
var STOP_WORDS = /* @__PURE__ */ new Set([
|
|
3
7
|
"a",
|
|
@@ -134,7 +138,8 @@ var STOP_WORDS = /* @__PURE__ */ new Set([
|
|
|
134
138
|
"use"
|
|
135
139
|
]);
|
|
136
140
|
function extractTerms(content) {
|
|
137
|
-
|
|
141
|
+
const latin = content.toLowerCase().replace(/[^a-z0-9\s-]/g, " ").split(/\s+/).filter((w) => w.length >= 3 && !STOP_WORDS.has(w));
|
|
142
|
+
return [...latin, ...cjkBigrams(content)];
|
|
138
143
|
}
|
|
139
144
|
function extractTopics(memories, topN = 50) {
|
|
140
145
|
if (memories.length === 0) return [];
|
|
@@ -202,4 +207,4 @@ export {
|
|
|
202
207
|
extractTopics,
|
|
203
208
|
findTrendingTopics
|
|
204
209
|
};
|
|
205
|
-
//# sourceMappingURL=chunk-
|
|
210
|
+
//# sourceMappingURL=chunk-KVDUKH5E.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"sources":["../src/topics.ts"],"sourcesContent":["/**\n * Topic Extraction (Phase 4B)\n *\n * Extract key topics from all memories using TF-IDF weighting.\n * Runs as a batch process during consolidation.\n */\n\nimport type { MemoryFile, TopicScore } from \"./types.js\";\nimport { cjkBigrams } from \"./utils/script-aware-text.js\";\n\n/** Stop words to exclude from topic extraction */\nconst STOP_WORDS = new Set([\n \"a\", \"an\", \"the\", \"is\", \"are\", \"was\", \"were\", \"be\", \"been\", \"being\",\n \"have\", \"has\", \"had\", \"do\", \"does\", \"did\", \"will\", \"would\", \"could\",\n \"should\", \"may\", \"might\", \"must\", \"shall\", \"can\", \"need\", \"to\", \"of\",\n \"in\", \"for\", \"on\", \"with\", \"at\", \"by\", \"from\", \"as\", \"into\", \"through\",\n \"during\", \"before\", \"after\", \"above\", \"below\", \"between\", \"this\", \"that\",\n \"these\", \"those\", \"i\", \"me\", \"my\", \"we\", \"our\", \"you\", \"your\", \"he\",\n \"she\", \"it\", \"they\", \"them\", \"their\", \"what\", \"which\", \"who\", \"how\",\n \"when\", \"where\", \"why\", \"and\", \"but\", \"or\", \"if\", \"because\", \"so\",\n \"just\", \"about\", \"like\", \"also\", \"very\", \"really\", \"here\", \"there\",\n \"now\", \"then\", \"only\", \"even\", \"still\", \"already\", \"always\", \"never\",\n \"often\", \"sometimes\", \"usually\", \"well\", \"much\", \"more\", \"most\", \"some\",\n \"any\", \"all\", \"each\", \"every\", \"both\", \"few\", \"many\", \"other\", \"same\",\n \"such\", \"own\", \"than\", \"too\", \"very\", \"just\", \"over\", \"under\", \"again\",\n \"further\", \"once\", \"here\", \"there\", \"when\", \"where\", \"why\", \"how\",\n \"user\", \"agent\", \"memory\", \"fact\", \"preference\", \"using\", \"used\", \"use\",\n]);\n\n/**\n * Extract terms from content.\n * Returns normalized lowercase terms >= 3 chars, plus CJK bigrams so\n * non-Latin memories contribute topics instead of none (issue #2192).\n */\nfunction extractTerms(content: string): string[] {\n const latin = content\n .toLowerCase()\n .replace(/[^a-z0-9\\s-]/g, \" \")\n .split(/\\s+/)\n .filter((w) => w.length >= 3 && !STOP_WORDS.has(w));\n return [...latin, ...cjkBigrams(content)];\n}\n\n/**\n * Calculate TF-IDF scores for terms across all memories.\n *\n * TF (term frequency) = count of term in document / total terms in document\n * IDF (inverse document frequency) = log(total documents / documents containing term)\n * TF-IDF = TF * IDF\n *\n * Terms with high TF-IDF are frequent in specific memories but rare overall.\n */\nexport function extractTopics(\n memories: MemoryFile[],\n topN: number = 50,\n): TopicScore[] {\n if (memories.length === 0) return [];\n\n // Count term frequency per document and document frequency\n const docFreq = new Map<string, number>(); // term -> number of documents containing it\n const termFreqPerDoc: Map<string, number>[] = []; // per-doc term frequencies\n\n for (const memory of memories) {\n const terms = extractTerms(memory.content);\n const termFreq = new Map<string, number>();\n\n for (const term of terms) {\n termFreq.set(term, (termFreq.get(term) ?? 0) + 1);\n }\n\n // Track which terms appear in this document\n for (const term of termFreq.keys()) {\n docFreq.set(term, (docFreq.get(term) ?? 0) + 1);\n }\n\n termFreqPerDoc.push(termFreq);\n }\n\n const totalDocs = memories.length;\n\n // Calculate TF-IDF for each term\n const tfidfScores = new Map<string, { score: number; count: number }>();\n\n for (let i = 0; i < memories.length; i++) {\n const termFreq = termFreqPerDoc[i];\n const totalTerms = [...termFreq.values()].reduce((a, b) => a + b, 0);\n\n for (const [term, count] of termFreq) {\n const tf = count / totalTerms;\n const df = docFreq.get(term) ?? 1;\n const idf = Math.log(totalDocs / df);\n const tfidf = tf * idf;\n\n const existing = tfidfScores.get(term);\n if (existing) {\n existing.score += tfidf;\n existing.count += count;\n } else {\n tfidfScores.set(term, { score: tfidf, count });\n }\n }\n }\n\n // Convert to array and sort by score\n const topics: TopicScore[] = [...tfidfScores.entries()]\n .map(([term, { score, count }]) => ({ term, score, count }))\n .sort((a, b) => b.score - a.score)\n .slice(0, topN);\n\n return topics;\n}\n\n/**\n * Compare two topic lists to find trending changes.\n * Returns topics that are new or significantly increased.\n */\nexport function findTrendingTopics(\n currentTopics: TopicScore[],\n previousTopics: TopicScore[],\n threshold: number = 0.5,\n): { rising: TopicScore[]; falling: TopicScore[] } {\n const prevMap = new Map(previousTopics.map((t) => [t.term, t.score]));\n const currMap = new Map(currentTopics.map((t) => [t.term, t.score]));\n\n const rising: TopicScore[] = [];\n const falling: TopicScore[] = [];\n\n for (const topic of currentTopics) {\n const prevScore = prevMap.get(topic.term) ?? 0;\n const change = topic.score - prevScore;\n\n if (change > threshold) {\n rising.push({ ...topic, score: change });\n }\n }\n\n for (const topic of previousTopics) {\n const currScore = currMap.get(topic.term) ?? 0;\n const change = topic.score - currScore;\n\n if (change > threshold && currScore < topic.score * 0.5) {\n falling.push({ ...topic, score: change });\n }\n }\n\n return {\n rising: rising.sort((a, b) => b.score - a.score).slice(0, 10),\n falling: falling.sort((a, b) => b.score - a.score).slice(0, 10),\n };\n}\n"],"mappings":";;;;;AAWA,IAAM,aAAa,oBAAI,IAAI;AAAA,EACzB;AAAA,EAAK;AAAA,EAAM;AAAA,EAAO;AAAA,EAAM;AAAA,EAAO;AAAA,EAAO;AAAA,EAAQ;AAAA,EAAM;AAAA,EAAQ;AAAA,EAC5D;AAAA,EAAQ;AAAA,EAAO;AAAA,EAAO;AAAA,EAAM;AAAA,EAAQ;AAAA,EAAO;AAAA,EAAQ;AAAA,EAAS;AAAA,EAC5D;AAAA,EAAU;AAAA,EAAO;AAAA,EAAS;AAAA,EAAQ;AAAA,EAAS;AAAA,EAAO;AAAA,EAAQ;AAAA,EAAM;AAAA,EAChE;AAAA,EAAM;AAAA,EAAO;AAAA,EAAM;AAAA,EAAQ;AAAA,EAAM;AAAA,EAAM;AAAA,EAAQ;AAAA,EAAM;AAAA,EAAQ;AAAA,EAC7D;AAAA,EAAU;AAAA,EAAU;AAAA,EAAS;AAAA,EAAS;AAAA,EAAS;AAAA,EAAW;AAAA,EAAQ;AAAA,EAClE;AAAA,EAAS;AAAA,EAAS;AAAA,EAAK;AAAA,EAAM;AAAA,EAAM;AAAA,EAAM;AAAA,EAAO;AAAA,EAAO;AAAA,EAAQ;AAAA,EAC/D;AAAA,EAAO;AAAA,EAAM;AAAA,EAAQ;AAAA,EAAQ;AAAA,EAAS;AAAA,EAAQ;AAAA,EAAS;AAAA,EAAO;AAAA,EAC9D;AAAA,EAAQ;AAAA,EAAS;AAAA,EAAO;AAAA,EAAO;AAAA,EAAO;AAAA,EAAM;AAAA,EAAM;AAAA,EAAW;AAAA,EAC7D;AAAA,EAAQ;AAAA,EAAS;AAAA,EAAQ;AAAA,EAAQ;AAAA,EAAQ;AAAA,EAAU;AAAA,EAAQ;AAAA,EAC3D;AAAA,EAAO;AAAA,EAAQ;AAAA,EAAQ;AAAA,EAAQ;AAAA,EAAS;AAAA,EAAW;AAAA,EAAU;AAAA,EAC7D;AAAA,EAAS;AAAA,EAAa;AAAA,EAAW;AAAA,EAAQ;AAAA,EAAQ;AAAA,EAAQ;AAAA,EAAQ;AAAA,EACjE;AAAA,EAAO;AAAA,EAAO;AAAA,EAAQ;AAAA,EAAS;AAAA,EAAQ;AAAA,EAAO;AAAA,EAAQ;AAAA,EAAS;AAAA,EAC/D;AAAA,EAAQ;AAAA,EAAO;AAAA,EAAQ;AAAA,EAAO;AAAA,EAAQ;AAAA,EAAQ;AAAA,EAAQ;AAAA,EAAS;AAAA,EAC/D;AAAA,EAAW;AAAA,EAAQ;AAAA,EAAQ;AAAA,EAAS;AAAA,EAAQ;AAAA,EAAS;AAAA,EAAO;AAAA,EAC5D;AAAA,EAAQ;AAAA,EAAS;AAAA,EAAU;AAAA,EAAQ;AAAA,EAAc;AAAA,EAAS;AAAA,EAAQ;AACpE,CAAC;AAOD,SAAS,aAAa,SAA2B;AAC/C,QAAM,QAAQ,QACX,YAAY,EACZ,QAAQ,iBAAiB,GAAG,EAC5B,MAAM,KAAK,EACX,OAAO,CAAC,MAAM,EAAE,UAAU,KAAK,CAAC,WAAW,IAAI,CAAC,CAAC;AACpD,SAAO,CAAC,GAAG,OAAO,GAAG,WAAW,OAAO,CAAC;AAC1C;AAWO,SAAS,cACd,UACA,OAAe,IACD;AACd,MAAI,SAAS,WAAW,EAAG,QAAO,CAAC;AAGnC,QAAM,UAAU,oBAAI,IAAoB;AACxC,QAAM,iBAAwC,CAAC;AAE/C,aAAW,UAAU,UAAU;AAC7B,UAAM,QAAQ,aAAa,OAAO,OAAO;AACzC,UAAM,WAAW,oBAAI,IAAoB;AAEzC,eAAW,QAAQ,OAAO;AACxB,eAAS,IAAI,OAAO,SAAS,IAAI,IAAI,KAAK,KAAK,CAAC;AAAA,IAClD;AAGA,eAAW,QAAQ,SAAS,KAAK,GAAG;AAClC,cAAQ,IAAI,OAAO,QAAQ,IAAI,IAAI,KAAK,KAAK,CAAC;AAAA,IAChD;AAEA,mBAAe,KAAK,QAAQ;AAAA,EAC9B;AAEA,QAAM,YAAY,SAAS;AAG3B,QAAM,cAAc,oBAAI,IAA8C;AAEtE,WAAS,IAAI,GAAG,IAAI,SAAS,QAAQ,KAAK;AACxC,UAAM,WAAW,eAAe,CAAC;AACjC,UAAM,aAAa,CAAC,GAAG,SAAS,OAAO,CAAC,EAAE,OAAO,CAAC,GAAG,MAAM,IAAI,GAAG,CAAC;AAEnE,eAAW,CAAC,MAAM,KAAK,KAAK,UAAU;AACpC,YAAM,KAAK,QAAQ;AACnB,YAAM,KAAK,QAAQ,IAAI,IAAI,KAAK;AAChC,YAAM,MAAM,KAAK,IAAI,YAAY,EAAE;AACnC,YAAM,QAAQ,KAAK;AAEnB,YAAM,WAAW,YAAY,IAAI,IAAI;AACrC,UAAI,UAAU;AACZ,iBAAS,SAAS;AAClB,iBAAS,SAAS;AAAA,MACpB,OAAO;AACL,oBAAY,IAAI,MAAM,EAAE,OAAO,OAAO,MAAM,CAAC;AAAA,MAC/C;AAAA,IACF;AAAA,EACF;AAGA,QAAM,SAAuB,CAAC,GAAG,YAAY,QAAQ,CAAC,EACnD,IAAI,CAAC,CAAC,MAAM,EAAE,OAAO,MAAM,CAAC,OAAO,EAAE,MAAM,OAAO,MAAM,EAAE,EAC1D,KAAK,CAAC,GAAG,MAAM,EAAE,QAAQ,EAAE,KAAK,EAChC,MAAM,GAAG,IAAI;AAEhB,SAAO;AACT;AAMO,SAAS,mBACd,eACA,gBACA,YAAoB,KAC6B;AACjD,QAAM,UAAU,IAAI,IAAI,eAAe,IAAI,CAAC,MAAM,CAAC,EAAE,MAAM,EAAE,KAAK,CAAC,CAAC;AACpE,QAAM,UAAU,IAAI,IAAI,cAAc,IAAI,CAAC,MAAM,CAAC,EAAE,MAAM,EAAE,KAAK,CAAC,CAAC;AAEnE,QAAM,SAAuB,CAAC;AAC9B,QAAM,UAAwB,CAAC;AAE/B,aAAW,SAAS,eAAe;AACjC,UAAM,YAAY,QAAQ,IAAI,MAAM,IAAI,KAAK;AAC7C,UAAM,SAAS,MAAM,QAAQ;AAE7B,QAAI,SAAS,WAAW;AACtB,aAAO,KAAK,EAAE,GAAG,OAAO,OAAO,OAAO,CAAC;AAAA,IACzC;AAAA,EACF;AAEA,aAAW,SAAS,gBAAgB;AAClC,UAAM,YAAY,QAAQ,IAAI,MAAM,IAAI,KAAK;AAC7C,UAAM,SAAS,MAAM,QAAQ;AAE7B,QAAI,SAAS,aAAa,YAAY,MAAM,QAAQ,KAAK;AACvD,cAAQ,KAAK,EAAE,GAAG,OAAO,OAAO,OAAO,CAAC;AAAA,IAC1C;AAAA,EACF;AAEA,SAAO;AAAA,IACL,QAAQ,OAAO,KAAK,CAAC,GAAG,MAAM,EAAE,QAAQ,EAAE,KAAK,EAAE,MAAM,GAAG,EAAE;AAAA,IAC5D,SAAS,QAAQ,KAAK,CAAC,GAAG,MAAM,EAAE,QAAQ,EAAE,KAAK,EAAE,MAAM,GAAG,EAAE;AAAA,EAChE;AACF;","names":[]}
|
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
import {
|
|
2
2
|
rebuildMemoryProjection
|
|
3
|
-
} from "./chunk-
|
|
3
|
+
} from "./chunk-WQ6TRWAE.js";
|
|
4
4
|
|
|
5
5
|
// src/convergence-refresh.ts
|
|
6
6
|
async function refreshConvergedNamespaces(namespaces, namespaceSearchRouter, getStorage, searchEnabled) {
|
|
@@ -32,4 +32,4 @@ async function refreshConvergedNamespaces(namespaces, namespaceSearchRouter, get
|
|
|
32
32
|
export {
|
|
33
33
|
refreshConvergedNamespaces
|
|
34
34
|
};
|
|
35
|
-
//# sourceMappingURL=chunk-
|
|
35
|
+
//# sourceMappingURL=chunk-LJQGQUNS.js.map
|
|
@@ -282,9 +282,9 @@ var GROUNDING_COMMON_VERB_FORMS = {
|
|
|
282
282
|
works: true
|
|
283
283
|
};
|
|
284
284
|
function groundingLexemes(text) {
|
|
285
|
-
const rawTokens = text.normalize("NFKC").match(
|
|
285
|
+
const rawTokens = (text.normalize("NFKC").match(
|
|
286
286
|
/[\p{L}\p{N}]+(?:['’][\p{L}\p{N}]+)?(?:\+\+[\p{L}\p{N}]*|#[\p{L}\p{N}]*)?/gu
|
|
287
|
-
) ?? [];
|
|
287
|
+
) ?? []).flatMap(splitSpacelessScriptToken);
|
|
288
288
|
const tokens = rawTokens.map((rawToken) => rawToken.replaceAll("\u2019", "'").toLocaleLowerCase());
|
|
289
289
|
let predicateIndex = tokens.findIndex((token, index) => {
|
|
290
290
|
const previousToken = tokens[index - 1];
|
|
@@ -388,6 +388,89 @@ function tokenize(text) {
|
|
|
388
388
|
}
|
|
389
389
|
return tokens;
|
|
390
390
|
}
|
|
391
|
+
var SPACELESS_SCRIPT_CHARACTER_PATTERN = new RegExp(
|
|
392
|
+
"[\\p{Script=Han}\\p{Script=Hiragana}\\p{Script=Katakana}\\p{Script=Hangul}\\p{Script=Thai}\\p{Script=Lao}\\p{Script=Khmer}\\p{Script=Myanmar}]",
|
|
393
|
+
"u"
|
|
394
|
+
);
|
|
395
|
+
var SPACELESS_SCRIPT_LCS_SOURCE_LIMIT = 4096;
|
|
396
|
+
function containsSpacelessScriptCharacter(text) {
|
|
397
|
+
return SPACELESS_SCRIPT_CHARACTER_PATTERN.test(text);
|
|
398
|
+
}
|
|
399
|
+
function splitSpacelessScriptToken(rawToken) {
|
|
400
|
+
if (!containsSpacelessScriptCharacter(rawToken)) return [rawToken];
|
|
401
|
+
const parts = [];
|
|
402
|
+
let otherScriptRun = "";
|
|
403
|
+
for (const character of rawToken) {
|
|
404
|
+
if (containsSpacelessScriptCharacter(character)) {
|
|
405
|
+
if (otherScriptRun.length > 0) {
|
|
406
|
+
parts.push(otherScriptRun);
|
|
407
|
+
otherScriptRun = "";
|
|
408
|
+
}
|
|
409
|
+
parts.push(character);
|
|
410
|
+
} else {
|
|
411
|
+
otherScriptRun += character;
|
|
412
|
+
}
|
|
413
|
+
}
|
|
414
|
+
if (otherScriptRun.length > 0) parts.push(otherScriptRun);
|
|
415
|
+
return parts;
|
|
416
|
+
}
|
|
417
|
+
function spacelessScriptCharacterSequence(text) {
|
|
418
|
+
const characters = [];
|
|
419
|
+
for (const character of text.normalize("NFKC")) {
|
|
420
|
+
if (containsSpacelessScriptCharacter(character)) characters.push(character);
|
|
421
|
+
}
|
|
422
|
+
return characters;
|
|
423
|
+
}
|
|
424
|
+
function spacelessScriptCharacterNgrams(text) {
|
|
425
|
+
const grams = /* @__PURE__ */ new Set();
|
|
426
|
+
let previousCharacter = "";
|
|
427
|
+
for (const character of spacelessScriptCharacterSequence(text)) {
|
|
428
|
+
if (previousCharacter !== "") grams.add(previousCharacter + character);
|
|
429
|
+
previousCharacter = character;
|
|
430
|
+
}
|
|
431
|
+
return grams;
|
|
432
|
+
}
|
|
433
|
+
function longestCommonSubstringLength(left, right) {
|
|
434
|
+
if (left.length === 0 || right.length === 0) return 0;
|
|
435
|
+
let longest = 0;
|
|
436
|
+
let previousRow = new Array(right.length).fill(0);
|
|
437
|
+
for (const leftCharacter of left) {
|
|
438
|
+
const currentRow = new Array(right.length).fill(0);
|
|
439
|
+
for (let index = 0; index < right.length; index += 1) {
|
|
440
|
+
if (leftCharacter !== right[index]) continue;
|
|
441
|
+
currentRow[index] = (index > 0 ? previousRow[index - 1] : 0) + 1;
|
|
442
|
+
if (currentRow[index] > longest) longest = currentRow[index];
|
|
443
|
+
}
|
|
444
|
+
previousRow = currentRow;
|
|
445
|
+
}
|
|
446
|
+
return longest;
|
|
447
|
+
}
|
|
448
|
+
function spacelessScriptGroundedTokenScore(candidate, source) {
|
|
449
|
+
const candidateGrams = spacelessScriptCharacterNgrams(candidate);
|
|
450
|
+
if (candidateGrams.size === 0) return null;
|
|
451
|
+
const sourceGrams = spacelessScriptCharacterNgrams(source);
|
|
452
|
+
let sharedGrams = 0;
|
|
453
|
+
for (const gram of candidateGrams) {
|
|
454
|
+
if (sourceGrams.has(gram)) sharedGrams += 1;
|
|
455
|
+
}
|
|
456
|
+
if (sharedGrams < GROUNDING_MIN_SHARED_TOKENS) return 0;
|
|
457
|
+
const coverage = sharedGrams / candidateGrams.size;
|
|
458
|
+
if (coverage < GROUNDING_MIN_COVERAGE) return 0;
|
|
459
|
+
const candidateCharacters = spacelessScriptCharacterSequence(candidate);
|
|
460
|
+
const sourceCharacters = spacelessScriptCharacterSequence(source);
|
|
461
|
+
if (sourceCharacters.length <= SPACELESS_SCRIPT_LCS_SOURCE_LIMIT) {
|
|
462
|
+
const anchoredFraction = longestCommonSubstringLength(candidateCharacters, sourceCharacters) / candidateCharacters.length;
|
|
463
|
+
if (anchoredFraction < GROUNDING_MIN_COVERAGE) return 0;
|
|
464
|
+
}
|
|
465
|
+
const sourceTokens = tokenize(source);
|
|
466
|
+
for (const token of tokenize(candidate)) {
|
|
467
|
+
if (containsSpacelessScriptCharacter(token)) continue;
|
|
468
|
+
if (![...sourceTokens].some((sourceToken) => areGroundingTokensCompatible(token, sourceToken))) {
|
|
469
|
+
return 0;
|
|
470
|
+
}
|
|
471
|
+
}
|
|
472
|
+
return coverage;
|
|
473
|
+
}
|
|
391
474
|
function normalizeForExactMatch(text) {
|
|
392
475
|
return text.normalize("NFKC").toLocaleLowerCase().replace(/\s+/gu, " ").trim();
|
|
393
476
|
}
|
|
@@ -648,6 +731,7 @@ export {
|
|
|
648
731
|
GROUNDING_MIN_COVERAGE,
|
|
649
732
|
stemToken,
|
|
650
733
|
tokenize,
|
|
734
|
+
spacelessScriptGroundedTokenScore,
|
|
651
735
|
normalizeForExactMatch,
|
|
652
736
|
sourceSentences,
|
|
653
737
|
groundingTokenSequence,
|
|
@@ -656,4 +740,4 @@ export {
|
|
|
656
740
|
areGroundingTokensCompatible,
|
|
657
741
|
hasContradictoryPolarity
|
|
658
742
|
};
|
|
659
|
-
//# sourceMappingURL=chunk-
|
|
743
|
+
//# sourceMappingURL=chunk-LNH76ZJX.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"sources":["../src/extraction-source-grounding-helpers.ts"],"sourcesContent":["export function isInterrogativeSourceSentence(sentence: string): boolean {\n const normalized = sentence.trim();\n const embeddedQuestionVerbIndex = normalized.search(\n /\\b(?:determine|know|wonder|ask(?:ed)?|question|decide|check|confirm|find|figure|understand|unclear)\\b/iu,\n );\n const embeddedQuestionMarkerIndex = normalized.search(/\\b(?:whether|if)\\b/iu);\n const hasEmbeddedQuestion = embeddedQuestionVerbIndex >= 0\n && embeddedQuestionMarkerIndex > embeddedQuestionVerbIndex;\n return normalized.endsWith(\"?\")\n || hasEmbeddedQuestion\n || (\n !normalized.includes(\":\")\n && /^(?:suppose|assuming|assume|maybe|perhaps|hypothetically|if|whether|imagine|imagining|presume|presuming|supposing|is|are|am|was|were|do|does|did|can|could|will|would|should|has|have|had|what|which|when|where|why|how|who|whom)\\b/iu.test(\n normalized,\n )\n );\n}\n\nexport function containsContiguousGroundingTokens(\n candidateTokens: ReadonlyArray<string>,\n sourceTokens: ReadonlyArray<string>,\n): boolean {\n if (candidateTokens.length === 0 || candidateTokens.length > sourceTokens.length) return false;\n return sourceTokens.some((_, start) =>\n candidateTokens.every((token, offset) => sourceTokens[start + offset] === token),\n );\n}\n\nexport function hasExplicitRoleSubjectToken(\n candidateRole: string | undefined,\n sourceTokensBySentence: ReadonlyArray<ReadonlyArray<string>>,\n): boolean {\n return candidateRole !== undefined\n && sourceTokensBySentence.some((tokens) =>\n tokens.some((token) => token.replace(/^[\\u0000\\u0001]/u, \"\") === candidateRole));\n}\n\nexport function splitGroundingClauses(\n sentences: ReadonlyArray<string>,\n inheritCoordinatedSubjects = false,\n): string[] {\n return sentences.flatMap((sentence) => {\n const clauses = sentence\n .split(/,\\s+(?=[\\p{L}][\\p{L}\\p{N}'’-]*\\s+\\S)/gu)\n .flatMap((commaClause) =>\n commaClause\n .split(/\\s*(?::|[—–])\\s+|\\s+\\/\\s+/u)\n .flatMap((delimiterClause) =>\n delimiterClause\n .split(/\\s+(?:and|but|or|while|although|because)\\s+/gu)\n .map((clause) => clause.trim())\n .filter((clause) => clause.length > 0),\n ),\n );\n if (!inheritCoordinatedSubjects || clauses.length < 2) return clauses;\n\n const firstLexemes = groundingLexemes(clauses[0]!)\n .filter(({ token }) => GROUNDING_STOPWORDS[token] !== true);\n const firstPredicateIndex = firstLexemes.findIndex(({ isPredicate }) => isPredicate);\n let subjectLexemes = firstLexemes\n .slice(0, firstPredicateIndex < 1 ? 1 : firstPredicateIndex)\n .filter(({ token }) => !token.endsWith(\"ly\"));\n let subject = subjectLexemes.map(({ surface }) => surface).join(\" \");\n let predicate = firstLexemes[firstPredicateIndex < 1 ? 1 : firstPredicateIndex]?.surface;\n if (subject.length === 0 || predicate === undefined) return clauses;\n\n const sourceSpans = [clauses[0]!];\n for (const clause of clauses.slice(1)) {\n const clauseLexemes = groundingLexemes(clause)\n .filter(({ token }) => GROUNDING_STOPWORDS[token] !== true);\n const clausePredicateIndex = clauseLexemes.findIndex(({ isPredicate }) => isPredicate);\n const clauseSubjectLexemes = clausePredicateIndex > 0\n ? clauseLexemes\n .slice(0, clausePredicateIndex)\n .filter(({ token }) => !token.endsWith(\"ly\"))\n : [];\n const repeatsSubject = clauseSubjectLexemes.length === subjectLexemes.length\n && subjectLexemes.every(\n ({ token }, index) => clauseSubjectLexemes[index]?.token === token,\n );\n if (repeatsSubject) {\n sourceSpans.push(clause);\n continue;\n }\n if (clauseSubjectLexemes.length > 0) {\n subjectLexemes = clauseSubjectLexemes;\n subject = subjectLexemes.map(({ surface }) => surface).join(\" \");\n predicate = clauseLexemes[clausePredicateIndex]?.surface;\n sourceSpans.push(clause);\n continue;\n }\n const prefix = clausePredicateIndex === -1 ? `${subject} ${predicate}` : subject;\n sourceSpans.push(clause, `${prefix} ${clause}`);\n }\n return sourceSpans;\n });\n}\n\nexport const GROUNDING_STOPWORDS: Record<string, true> = {\n a: true,\n an: true,\n and: true,\n are: true,\n as: true,\n at: true,\n be: true,\n been: true,\n being: true,\n but: true,\n by: true,\n can: true,\n could: true,\n did: true,\n do: true,\n does: true,\n for: true,\n from: true,\n had: true,\n has: true,\n have: true,\n he: true,\n her: true,\n here: true,\n hers: true,\n him: true,\n his: true,\n how: true,\n i: true,\n if: true,\n in: true,\n into: true,\n is: true,\n it: true,\n its: true,\n just: true,\n me: true,\n my: true,\n no: true,\n not: true,\n of: true,\n on: true,\n only: true,\n or: true,\n our: true,\n ours: true,\n she: true,\n so: true,\n than: true,\n that: true,\n the: true,\n their: true,\n them: true,\n then: true,\n there: true,\n these: true,\n they: true,\n this: true,\n those: true,\n to: true,\n too: true,\n under: true,\n up: true,\n us: true,\n very: true,\n was: true,\n we: true,\n were: true,\n what: true,\n when: true,\n why: true,\n where: true,\n which: true,\n who: true,\n whom: true,\n will: true,\n with: true,\n would: true,\n you: true,\n your: true,\n};\n\nexport const GROUNDING_NEGATION_TOKENS = new Set([\n \"no\",\n \"not\",\n \"false\",\n \"untrue\",\n \"incorrect\",\n \"wrong\",\n \"never\",\n \"without\",\n \"neither\",\n \"nor\",\n \"none\",\n \"cannot\",\n \"cant\",\n \"can't\",\n \"don't\",\n \"doesn't\",\n \"didn't\",\n \"isn't\",\n \"aren't\",\n \"wasn't\",\n \"weren't\",\n \"won't\",\n \"wouldn't\",\n \"couldn't\",\n \"shouldn't\",\n \"haven't\",\n \"hasn't\",\n \"hadn't\",\n]);\n\nexport const GROUNDING_AUXILIARY_TOKENS = new Set([\n \"am\",\n \"are\",\n \"be\",\n \"been\",\n \"being\",\n \"can\",\n \"could\",\n \"did\",\n \"do\",\n \"does\",\n \"had\",\n \"has\",\n \"have\",\n \"is\",\n \"was\",\n \"were\",\n \"will\",\n \"would\",\n \"should\",\n]);\n\nexport const GROUNDING_COPULAR_FORMS = new Set([\n \"am\",\n \"are\",\n \"be\",\n \"been\",\n \"being\",\n \"is\",\n \"was\",\n \"were\",\n]);\n\nexport const GROUNDING_SUBJECT_PRONOUNS = new Set([\n \"he\",\n \"she\",\n \"they\",\n \"it\",\n \"i\",\n \"we\",\n \"you\",\n]);\nexport const GROUNDING_ENTITY_TYPE_PREFIXES = new Set([\n \"person\",\n \"project\",\n \"tool\",\n \"company\",\n \"place\",\n \"other\",\n]);\n\nexport const GROUNDING_COMMON_VERB_FORMS: Record<string, true> = {\n add: true,\n adds: true,\n call: true,\n calls: true,\n contain: true,\n contains: true,\n employ: true,\n deploy: true,\n deploys: true,\n design: true,\n designs: true,\n employs: true,\n fill: true,\n fills: true,\n go: true,\n goes: true,\n gone: true,\n went: true,\n give: true,\n gives: true,\n has: true,\n host: true,\n hosts: true,\n like: true,\n likes: true,\n manage: true,\n manages: true,\n make: true,\n makes: true,\n need: true,\n needs: true,\n own: true,\n owns: true,\n plan: true,\n plans: true,\n prefer: true,\n prefers: true,\n require: true,\n requires: true,\n run: true,\n runs: true,\n sleep: true,\n sleeps: true,\n stop: true,\n stops: true,\n swim: true,\n swims: true,\n share: true,\n shares: true,\n support: true,\n supports: true,\n take: true,\n takes: true,\n try: true,\n tries: true,\n use: true,\n uses: true,\n want: true,\n wants: true,\n work: true,\n works: true,\n};\n\n\nexport interface GroundingLexeme {\n token: string;\n surface: string;\n isPredicate: boolean;\n preserveTerminalS: boolean;\n}\n\nexport function groundingLexemes(text: string): GroundingLexeme[] {\n const rawTokens = (text.normalize(\"NFKC\").match(\n /[\\p{L}\\p{N}]+(?:['’][\\p{L}\\p{N}]+)?(?:\\+\\+[\\p{L}\\p{N}]*|#[\\p{L}\\p{N}]*)?/gu,\n ) ?? []).flatMap(splitSpacelessScriptToken);\n const tokens = rawTokens.map((rawToken) =>\n rawToken.replaceAll(\"’\", \"'\").toLocaleLowerCase());\n let predicateIndex = tokens.findIndex((token, index) => {\n const previousToken = tokens[index - 1];\n const followsAuxiliary = previousToken !== undefined\n && GROUNDING_AUXILIARY_TOKENS.has(previousToken);\n let previousMeaningfulIndex = index - 1;\n while (\n previousMeaningfulIndex >= 0\n && !GROUNDING_COPULAR_FORMS.has(tokens[previousMeaningfulIndex] ?? \"\")\n && (\n GROUNDING_STOPWORDS[tokens[previousMeaningfulIndex] ?? \"\"] === true\n || (tokens[previousMeaningfulIndex] ?? \"\").endsWith(\"ly\")\n )\n ) {\n previousMeaningfulIndex -= 1;\n }\n const followsCopularAuxiliary = GROUNDING_COPULAR_FORMS.has(\n tokens[previousMeaningfulIndex] ?? \"\",\n );\n const capitalized = /^\\p{Lu}/u.test(rawTokens[index] ?? \"\");\n const terminalSInflection = index > 0\n && token.endsWith(\"s\")\n && !token.endsWith(\"ss\")\n && !GROUNDING_AUXILIARY_TOKENS.has(token);\n const capitalizedSubjectHasLaterPredicate = index === 0\n && tokens.some((laterToken, laterIndex) =>\n laterIndex > 0\n && !/^\\p{Lu}/u.test(rawTokens[laterIndex] ?? \"\")\n && (\n GROUNDING_AUXILIARY_TOKENS.has(laterToken)\n || GROUNDING_COMMON_VERB_FORMS[laterToken] === true\n || laterToken.endsWith(\"ed\")\n || laterToken.endsWith(\"ing\")\n ));\n if (capitalized && (index !== 0 || capitalizedSubjectHasLaterPredicate)) return false;\n if (followsCopularAuxiliary && terminalSInflection) return false;\n return GROUNDING_COMMON_VERB_FORMS[token] === true\n || token.endsWith(\"ed\")\n || token.endsWith(\"ing\")\n || (followsAuxiliary && !followsCopularAuxiliary)\n || terminalSInflection;\n });\n if (predicateIndex === -1) {\n const leadingSubjectLength = rawTokens.findIndex((rawToken) => !/^\\p{Lu}/u.test(rawToken));\n if (leadingSubjectLength > 0) {\n predicateIndex = tokens.findIndex((token, index) =>\n index >= leadingSubjectLength\n && (\n GROUNDING_AUXILIARY_TOKENS.has(token)\n || (\n GROUNDING_STOPWORDS[token] !== true\n && !/^\\p{Lu}/u.test(rawTokens[index] ?? \"\")\n )\n ));\n }\n }\n return rawTokens.map((rawToken, index) => {\n const token = tokens[index]!;\n const isPredicate = index === predicateIndex;\n return {\n token,\n surface: rawToken,\n preserveTerminalS: !isPredicate && (\n /^\\p{Lu}/u.test(rawToken)\n || token.endsWith(\"s\")\n ),\n isPredicate,\n };\n });\n}\n\nexport function tokenSequence(text: string): string[] {\n return groundingLexemes(text).map(({ token }) => token);\n}\n\nexport function containsExactTokenSequence(candidate: string, source: string): boolean {\n const candidateTokens = tokenSequence(candidate);\n const sourceTokens = tokenSequence(source);\n if (candidateTokens.length === 0 || candidateTokens.length > sourceTokens.length) return false;\n return sourceTokens.some((_, index) =>\n candidateTokens.every((token, offset) => sourceTokens[index + offset] === token),\n );\n\n}\n\nexport function isNegationCue(token: string): boolean {\n return GROUNDING_NEGATION_TOKENS.has(token) || token.endsWith(\"n't\");\n}\n\nexport function isAttachedNegatedAuxiliary(token: string): boolean {\n return token.endsWith(\"n't\")\n || token === \"cannot\"\n || token === \"cant\"\n || token === \"can't\";\n}\n\nexport function isNegatedAt(tokens: ReadonlyArray<string>, index: number): boolean {\n if (tokens[index - 1] === \"only\" && tokens[index - 2] === \"not\") return false;\n const previousStart = Math.max(0, index - 2);\n for (let i = previousStart; i < index; i += 1) {\n if (isNegationCue(tokens[i])) return true;\n }\n\n if (tokens[index - 1] === \"than\" && tokens[index - 2] === \"rather\") return true;\n if (tokens[index - 1] === \"of\" && tokens[index - 2] === \"instead\") return true;\n\n const next = tokens[index + 1];\n if (next !== undefined && isAttachedNegatedAuxiliary(next)) return true;\n const nextNext = tokens[index + 2];\n return next !== undefined\n && nextNext !== undefined\n && GROUNDING_AUXILIARY_TOKENS.has(next)\n && isNegationCue(nextNext);\n}\n\nexport const GROUNDING_MIN_SHARED_TOKENS = 2;\nexport const GROUNDING_MIN_COVERAGE = 0.5;\n\nconst STRICT_GROUNDING_TOKEN_PREFIX = \"\\u0000\";\nconst INFLECTED_GROUNDING_TOKEN_PREFIX = \"\\u0001\";\n\nexport function stemToken(\n token: string,\n preserveTerminalS = false,\n markExact = false,\n): string {\n if (token.endsWith(\"'s\")) return token.slice(0, -2);\n if (preserveTerminalS) {\n if (!markExact) return token;\n return `${STRICT_GROUNDING_TOKEN_PREFIX}${token}`;\n }\n if (token.length > 5 && token.endsWith(\"ing\")) {\n const stem = token.slice(0, -3);\n const inflectionDoubled = /(.)\\1$/u.test(stem) && stem.length > 3 && !/[lsz]$/u.test(stem);\n const normalized = inflectionDoubled ? stem.slice(0, -1) : stem;\n return markExact ? `${INFLECTED_GROUNDING_TOKEN_PREFIX}${normalized}` : normalized;\n }\n if (token.length > 4 && token.endsWith(\"ied\")) {\n const normalized = `${token.slice(0, -3)}y`;\n return markExact ? `${INFLECTED_GROUNDING_TOKEN_PREFIX}${normalized}` : normalized;\n }\n if (token.length > 4 && token.endsWith(\"ed\")) {\n const stem = token.slice(0, -2);\n const inflectionDoubled = /(.)\\1$/u.test(stem) && stem.length > 3 && !/[lsz]$/u.test(stem);\n const normalized = inflectionDoubled ? stem.slice(0, -1) : stem;\n return markExact ? `${INFLECTED_GROUNDING_TOKEN_PREFIX}${normalized}` : normalized;\n }\n if (token.length > 3 && token.endsWith(\"s\") && !token.endsWith(\"ss\")) {\n return token.endsWith(\"ies\") ? `${token.slice(0, -3)}y` : token.slice(0, -1);\n }\n return token;\n}\n\n\nexport function tokenize(text: string): Set<string> {\n const tokens = new Set<string>();\n for (const { token, preserveTerminalS } of groundingLexemes(text)) {\n if (GROUNDING_STOPWORDS[token] !== true) tokens.add(stemToken(token, preserveTerminalS, true));\n }\n return tokens;\n}\n\nconst SPACELESS_SCRIPT_CHARACTER_PATTERN = new RegExp(\n \"[\\\\p{Script=Han}\\\\p{Script=Hiragana}\\\\p{Script=Katakana}\\\\p{Script=Hangul}\"\n + \"\\\\p{Script=Thai}\\\\p{Script=Lao}\\\\p{Script=Khmer}\\\\p{Script=Myanmar}]\",\n \"u\",\n);\nconst SPACELESS_SCRIPT_LCS_SOURCE_LIMIT = 4096;\n\nfunction containsSpacelessScriptCharacter(text: string): boolean {\n return SPACELESS_SCRIPT_CHARACTER_PATTERN.test(text);\n}\n\n/**\n * Scripts without word separators (CJK, Hangul, Thai, ...) must not become one\n * whitespace-delimited token: a paraphrase never matches a whole-run token, so\n * grounded CJK facts and entity names were dropped. Split those runs into\n * per-character lexemes so contiguous-token matching behaves as substring\n * matching for these scripts.\n */\nfunction splitSpacelessScriptToken(rawToken: string): string[] {\n if (!containsSpacelessScriptCharacter(rawToken)) return [rawToken];\n const parts: string[] = [];\n let otherScriptRun = \"\";\n for (const character of rawToken) {\n if (containsSpacelessScriptCharacter(character)) {\n if (otherScriptRun.length > 0) {\n parts.push(otherScriptRun);\n otherScriptRun = \"\";\n }\n parts.push(character);\n } else {\n otherScriptRun += character;\n }\n }\n if (otherScriptRun.length > 0) parts.push(otherScriptRun);\n return parts;\n}\n\nfunction spacelessScriptCharacterSequence(text: string): string[] {\n const characters: string[] = [];\n for (const character of text.normalize(\"NFKC\")) {\n if (containsSpacelessScriptCharacter(character)) characters.push(character);\n }\n return characters;\n}\n\nfunction spacelessScriptCharacterNgrams(text: string): Set<string> {\n const grams = new Set<string>();\n let previousCharacter = \"\";\n for (const character of spacelessScriptCharacterSequence(text)) {\n if (previousCharacter !== \"\") grams.add(previousCharacter + character);\n previousCharacter = character;\n }\n return grams;\n}\n\nfunction longestCommonSubstringLength(\n left: ReadonlyArray<string>,\n right: ReadonlyArray<string>,\n): number {\n if (left.length === 0 || right.length === 0) return 0;\n let longest = 0;\n let previousRow = new Array<number>(right.length).fill(0);\n for (const leftCharacter of left) {\n const currentRow = new Array<number>(right.length).fill(0);\n for (let index = 0; index < right.length; index += 1) {\n if (leftCharacter !== right[index]) continue;\n currentRow[index] = (index > 0 ? previousRow[index - 1] : 0) + 1;\n if (currentRow[index] > longest) longest = currentRow[index];\n }\n previousRow = currentRow;\n }\n return longest;\n}\n\n/**\n * Script-aware grounding score for candidates written in scripts without word\n * separators. Returns null when the candidate has no such characters, so\n * whitespace-delimited candidates keep the default scorer. The longest-common-\n * span gate rejects topical overlap that shares mostly function characters.\n * ponytail: n-grams and the common-span gate ignore argument order; swap in a\n * segmentation-aware matcher if CJK role confusion surfaces.\n */\nexport function spacelessScriptGroundedTokenScore(candidate: string, source: string): number | null {\n const candidateGrams = spacelessScriptCharacterNgrams(candidate);\n if (candidateGrams.size === 0) return null;\n const sourceGrams = spacelessScriptCharacterNgrams(source);\n let sharedGrams = 0;\n for (const gram of candidateGrams) {\n if (sourceGrams.has(gram)) sharedGrams += 1;\n }\n if (sharedGrams < GROUNDING_MIN_SHARED_TOKENS) return 0;\n const coverage = sharedGrams / candidateGrams.size;\n if (coverage < GROUNDING_MIN_COVERAGE) return 0;\n const candidateCharacters = spacelessScriptCharacterSequence(candidate);\n const sourceCharacters = spacelessScriptCharacterSequence(source);\n if (sourceCharacters.length <= SPACELESS_SCRIPT_LCS_SOURCE_LIMIT) {\n const anchoredFraction = longestCommonSubstringLength(candidateCharacters, sourceCharacters)\n / candidateCharacters.length;\n if (anchoredFraction < GROUNDING_MIN_COVERAGE) return 0;\n }\n const sourceTokens = tokenize(source);\n for (const token of tokenize(candidate)) {\n if (containsSpacelessScriptCharacter(token)) continue;\n if (![...sourceTokens].some((sourceToken) => areGroundingTokensCompatible(token, sourceToken))) {\n return 0;\n }\n }\n return coverage;\n}\n\nexport function normalizeForExactMatch(text: string): string {\n return text.normalize(\"NFKC\").toLocaleLowerCase().replace(/\\s+/gu, \" \").trim();\n}\n\nexport function sourceSentences(source: string): string[] {\n const sentences: string[] = [];\n let sentenceStart = 0;\n for (let index = 0; index < source.length; index += 1) {\n const character = source[index];\n const nextCharacter = source[index + 1];\n const boundary = character === \"!\"\n || character === \"?\"\n || character === \";\"\n || character === \"\\n\"\n || (character === \".\" && (\n nextCharacter === undefined\n || /\\s/u.test(nextCharacter)\n || /[\"')\\]}]/u.test(nextCharacter)\n ));\n if (!boundary) continue;\n let sentenceEnd = character === \"\\n\" ? index : index + 1;\n while (/[.!?;\\n]/u.test(source[sentenceEnd] ?? \"\")) sentenceEnd += 1;\n const sentence = source.slice(sentenceStart, sentenceEnd).trim();\n if (sentence.length > 0) sentences.push(sentence);\n sentenceStart = sentenceEnd;\n index = sentenceEnd - 1;\n }\n const trailingSentence = source.slice(sentenceStart).trim();\n if (trailingSentence.length > 0) sentences.push(trailingSentence);\n return sentences.length > 0 ? sentences : [source];\n}\n\n\nexport function groundingTokenSequence(text: string): string[] {\n let lexemes = groundingLexemes(text);\n while (lexemes.length > 0 && GROUNDING_AUXILIARY_TOKENS.has(lexemes[0]!.token)) {\n lexemes = lexemes.slice(1);\n }\n return lexemes\n .filter(({ token }) => GROUNDING_STOPWORDS[token] !== true)\n .map(({ token, preserveTerminalS }) => stemToken(token, preserveTerminalS, true));\n}\nexport function normalizedGroundingAlignmentTokenSequence(text: string): string[] {\n const normalized = normalizedGroundingTokenSequence(text);\n const firstLexeme = groundingLexemes(text)[0];\n if (firstLexeme === undefined || !GROUNDING_SUBJECT_PRONOUNS.has(firstLexeme.token)) {\n return normalized;\n }\n return [stemToken(firstLexeme.token, firstLexeme.preserveTerminalS, true), ...normalized];\n}\n\n\nexport function normalizedGroundingTokenSequence(text: string): string[] {\n return groundingTokenSequence(text).map((token) => token.replace(/'$/u, \"\"));\n}\n\nexport function areGroundingTokensCompatible(left: string, right: string): boolean {\n const leftPrefix = left[0];\n const rightPrefix = right[0];\n const leftMarked = leftPrefix === STRICT_GROUNDING_TOKEN_PREFIX\n || leftPrefix === INFLECTED_GROUNDING_TOKEN_PREFIX;\n const rightMarked = rightPrefix === STRICT_GROUNDING_TOKEN_PREFIX\n || rightPrefix === INFLECTED_GROUNDING_TOKEN_PREFIX;\n const leftToken = leftMarked ? left.slice(1) : left;\n const rightToken = rightMarked ? right.slice(1) : right;\n if (leftToken === rightToken) {\n const strictToInflected = (\n leftPrefix === STRICT_GROUNDING_TOKEN_PREFIX\n && rightPrefix === INFLECTED_GROUNDING_TOKEN_PREFIX\n ) || (\n rightPrefix === STRICT_GROUNDING_TOKEN_PREFIX\n && leftPrefix === INFLECTED_GROUNDING_TOKEN_PREFIX\n );\n return !strictToInflected;\n }\n if (leftPrefix === STRICT_GROUNDING_TOKEN_PREFIX || rightPrefix === STRICT_GROUNDING_TOKEN_PREFIX) {\n return false;\n }\n return `${leftToken}e` === rightToken || leftToken === `${rightToken}e`;\n}\nconst GROUNDING_DENIAL_REPORTING_VERBS = new Set([\n \"deny\",\n \"denied\",\n \"denies\",\n \"denying\",\n \"dispute\",\n \"disputed\",\n \"disputes\",\n \"disputing\",\n \"reject\",\n \"rejected\",\n \"rejects\",\n \"rejecting\",\n \"refute\",\n \"refuted\",\n \"refutes\",\n \"refuting\",\n \"contradict\",\n \"contradicted\",\n \"contradicts\",\n \"contradicting\",\n \"disprove\",\n \"disproved\",\n \"disproves\",\n \"disproving\",\n]);\n\nfunction isDenialReportingVerb(token: string): boolean {\n return GROUNDING_DENIAL_REPORTING_VERBS.has(token);\n}\nconst GROUNDING_NON_ASSERTIVE_REPORTING_VERBS = new Set([\n \"allege\",\n \"alleged\",\n \"alleges\",\n \"alleging\",\n \"allegedly\",\n \"assert\",\n \"asserted\",\n \"asserts\",\n \"asserting\",\n \"believe\",\n \"believed\",\n \"believes\",\n \"believing\",\n \"claim\",\n \"claimed\",\n \"claims\",\n \"claiming\",\n \"doubt\",\n \"doubted\",\n \"doubts\",\n \"doubting\",\n \"uncertain\",\n \"unsure\",\n \"unclear\",\n \"unknown\",\n \"possibly\",\n \"probably\",\n \"imagine\",\n \"imagined\",\n \"imagines\",\n \"imagining\",\n \"report\",\n \"reported\",\n \"reports\",\n \"reporting\",\n \"reportedly\",\n \"say\",\n \"said\",\n \"says\",\n \"saying\",\n \"speculate\",\n \"speculated\",\n \"speculates\",\n \"speculating\",\n \"suspect\",\n \"suspected\",\n \"suspects\",\n \"suspecting\",\n \"suppose\",\n \"supposed\",\n \"supposes\",\n \"supposing\",\n \"supposedly\",\n \"think\",\n \"thought\",\n \"thinks\",\n \"thinking\",\n]);\n\nfunction isNonAssertiveReportingVerb(token: string): boolean {\n return GROUNDING_NON_ASSERTIVE_REPORTING_VERBS.has(token);\n}\n\nfunction isGroundingClauseBoundary(token: string): boolean {\n return token === \"and\"\n || token === \"but\"\n || token === \"or\"\n || token === \"while\"\n || token === \"although\"\n || token === \"because\";\n}\n\nfunction isNonAssertiveReportingAt(tokens: ReadonlyArray<string>, index: number): boolean {\n let boundary = 0;\n for (let cursor = 0; cursor < index; cursor += 1) {\n if (isGroundingClauseBoundary(tokens[cursor]!)) boundary = cursor + 1;\n }\n for (let cursor = index - 1; cursor >= boundary; cursor -= 1) {\n if (\n tokens[cursor] === \"that\"\n && cursor > boundary\n && isNonAssertiveReportingVerb(tokens[cursor - 1]!)\n ) {\n return true;\n }\n if (isNonAssertiveReportingVerb(tokens[cursor]!) && index - cursor <= 5) return true;\n }\n return false;\n}\n\nfunction isDeniedAt(tokens: ReadonlyArray<string>, index: number): boolean {\n let boundary = 0;\n for (let cursor = 0; cursor < index; cursor += 1) {\n if (isGroundingClauseBoundary(tokens[cursor]!)) boundary = cursor + 1;\n }\n for (let cursor = index - 1; cursor >= boundary; cursor -= 1) {\n const token = tokens[cursor];\n if (token === \"that\" && cursor > boundary && isDenialReportingVerb(tokens[cursor - 1]!)) {\n return true;\n }\n if (isDenialReportingVerb(token) && index - cursor <= 5) return true;\n }\n return false;\n}\n\nexport function hasContradictoryPolarity(candidate: string, source: string): boolean {\n const candidateLexemes = groundingLexemes(candidate);\n const candidateTokens = candidateLexemes.map(({ token }) => token);\n let coherentContradiction = false;\n for (const clause of sourceSentences(source).flatMap((sentence) =>\n sentence.split(/\\s+(?:and|but|or|while|although|because)\\s+/gu))) {\n const sourceLexemes = groundingLexemes(clause);\n const sourceTokens = sourceLexemes.map(({ token }) => token);\n let sourceCursor = 0;\n let allTokensFound = true;\n let contradiction = false;\n for (const [candidateIndex, candidateToken] of candidateTokens.entries()) {\n if (GROUNDING_STOPWORDS[candidateToken] === true) continue;\n const sourceIndex = sourceTokens.findIndex(\n (sourceToken, index) =>\n index >= sourceCursor\n && stemToken(sourceToken, sourceLexemes[index]?.preserveTerminalS === true)\n === stemToken(candidateToken, candidateLexemes[candidateIndex]?.preserveTerminalS === true),\n );\n if (sourceIndex === -1) {\n allTokensFound = false;\n break;\n }\n const candidateNegated = isNegatedAt(candidateTokens, candidateIndex)\n || isDeniedAt(candidateTokens, candidateIndex);\n const sourceNegated = isNegatedAt(sourceTokens, sourceIndex)\n || isDeniedAt(sourceTokens, sourceIndex);\n const candidateNonAssertive = isNonAssertiveReportingAt(candidateTokens, candidateIndex);\n const sourceNonAssertive = isNonAssertiveReportingAt(sourceTokens, sourceIndex);\n if (\n candidateNegated !== sourceNegated\n || candidateNonAssertive !== sourceNonAssertive\n ) {\n contradiction = true;\n }\n sourceCursor = sourceIndex + 1;\n }\n if (allTokensFound) {\n if (!contradiction) return false;\n coherentContradiction = true;\n }\n }\n if (coherentContradiction) return true;\n\n const sourceLexemes = groundingLexemes(source);\n const sourceTokens = sourceLexemes.map(({ token }) => token);\n const sourcePositions = new Map<string, number[]>();\n sourceLexemes.forEach(({ token, preserveTerminalS }, index) => {\n const key = stemToken(token, preserveTerminalS);\n const positions = sourcePositions.get(key);\n if (positions) positions.push(index);\n else sourcePositions.set(key, [index]);\n });\n for (const [candidateIndex, token] of candidateTokens.entries()) {\n if (GROUNDING_STOPWORDS[token] === true) continue;\n const positions = sourcePositions.get(\n stemToken(token, candidateLexemes[candidateIndex]?.preserveTerminalS === true),\n );\n if (!positions || positions.length === 0) continue;\n const sourceIndex = positions[positions.length - 1];\n const candidateNegated = isNegatedAt(candidateTokens, candidateIndex)\n || isDeniedAt(candidateTokens, candidateIndex);\n const sourceNegated = isNegatedAt(sourceTokens, sourceIndex)\n || isDeniedAt(sourceTokens, sourceIndex);\n const candidateNonAssertive = isNonAssertiveReportingAt(candidateTokens, candidateIndex);\n const sourceNonAssertive = isNonAssertiveReportingAt(sourceTokens, sourceIndex);\n if (\n candidateNegated !== sourceNegated\n || candidateNonAssertive !== sourceNonAssertive\n ) {\n return true;\n }\n }\n return false;\n}\n"],"mappings":";AAAO,SAAS,8BAA8B,UAA2B;AACvE,QAAM,aAAa,SAAS,KAAK;AACjC,QAAM,4BAA4B,WAAW;AAAA,IAC3C;AAAA,EACF;AACA,QAAM,8BAA8B,WAAW,OAAO,sBAAsB;AAC5E,QAAM,sBAAsB,6BAA6B,KACpD,8BAA8B;AACnC,SAAO,WAAW,SAAS,GAAG,KACzB,uBAED,CAAC,WAAW,SAAS,GAAG,KACrB,wOAAwO;AAAA,IACzO;AAAA,EACF;AAEN;AAEO,SAAS,kCACd,iBACA,cACS;AACT,MAAI,gBAAgB,WAAW,KAAK,gBAAgB,SAAS,aAAa,OAAQ,QAAO;AACzF,SAAO,aAAa;AAAA,IAAK,CAAC,GAAG,UAC3B,gBAAgB,MAAM,CAAC,OAAO,WAAW,aAAa,QAAQ,MAAM,MAAM,KAAK;AAAA,EACjF;AACF;AAEO,SAAS,4BACd,eACA,wBACS;AACT,SAAO,kBAAkB,UACpB,uBAAuB,KAAK,CAAC,WAC9B,OAAO,KAAK,CAAC,UAAU,MAAM,QAAQ,oBAAoB,EAAE,MAAM,aAAa,CAAC;AACrF;AAEO,SAAS,sBACd,WACA,6BAA6B,OACnB;AACV,SAAO,UAAU,QAAQ,CAAC,aAAa;AACrC,UAAM,UAAU,SACb,MAAM,wCAAwC,EAC9C;AAAA,MAAQ,CAAC,gBACR,YACG,MAAM,4BAA4B,EAClC;AAAA,QAAQ,CAAC,oBACR,gBACG,MAAM,+CAA+C,EACrD,IAAI,CAAC,WAAW,OAAO,KAAK,CAAC,EAC7B,OAAO,CAAC,WAAW,OAAO,SAAS,CAAC;AAAA,MACzC;AAAA,IACJ;AACF,QAAI,CAAC,8BAA8B,QAAQ,SAAS,EAAG,QAAO;AAE9D,UAAM,eAAe,iBAAiB,QAAQ,CAAC,CAAE,EAC9C,OAAO,CAAC,EAAE,MAAM,MAAM,oBAAoB,KAAK,MAAM,IAAI;AAC5D,UAAM,sBAAsB,aAAa,UAAU,CAAC,EAAE,YAAY,MAAM,WAAW;AACnF,QAAI,iBAAiB,aAClB,MAAM,GAAG,sBAAsB,IAAI,IAAI,mBAAmB,EAC1D,OAAO,CAAC,EAAE,MAAM,MAAM,CAAC,MAAM,SAAS,IAAI,CAAC;AAC9C,QAAI,UAAU,eAAe,IAAI,CAAC,EAAE,QAAQ,MAAM,OAAO,EAAE,KAAK,GAAG;AACnE,QAAI,YAAY,aAAa,sBAAsB,IAAI,IAAI,mBAAmB,GAAG;AACjF,QAAI,QAAQ,WAAW,KAAK,cAAc,OAAW,QAAO;AAE5D,UAAM,cAAc,CAAC,QAAQ,CAAC,CAAE;AAChC,eAAW,UAAU,QAAQ,MAAM,CAAC,GAAG;AACrC,YAAM,gBAAgB,iBAAiB,MAAM,EAC1C,OAAO,CAAC,EAAE,MAAM,MAAM,oBAAoB,KAAK,MAAM,IAAI;AAC5D,YAAM,uBAAuB,cAAc,UAAU,CAAC,EAAE,YAAY,MAAM,WAAW;AACrF,YAAM,uBAAuB,uBAAuB,IAChD,cACC,MAAM,GAAG,oBAAoB,EAC7B,OAAO,CAAC,EAAE,MAAM,MAAM,CAAC,MAAM,SAAS,IAAI,CAAC,IAC5C,CAAC;AACL,YAAM,iBAAiB,qBAAqB,WAAW,eAAe,UACjE,eAAe;AAAA,QAChB,CAAC,EAAE,MAAM,GAAG,UAAU,qBAAqB,KAAK,GAAG,UAAU;AAAA,MAC/D;AACF,UAAI,gBAAgB;AAClB,oBAAY,KAAK,MAAM;AACvB;AAAA,MACF;AACA,UAAI,qBAAqB,SAAS,GAAG;AACnC,yBAAiB;AACjB,kBAAU,eAAe,IAAI,CAAC,EAAE,QAAQ,MAAM,OAAO,EAAE,KAAK,GAAG;AAC/D,oBAAY,cAAc,oBAAoB,GAAG;AACjD,oBAAY,KAAK,MAAM;AACvB;AAAA,MACF;AACA,YAAM,SAAS,yBAAyB,KAAK,GAAG,OAAO,IAAI,SAAS,KAAK;AACzE,kBAAY,KAAK,QAAQ,GAAG,MAAM,IAAI,MAAM,EAAE;AAAA,IAChD;AACA,WAAO;AAAA,EACT,CAAC;AACH;AAEO,IAAM,sBAA4C;AAAA,EACvD,GAAG;AAAA,EACH,IAAI;AAAA,EACJ,KAAK;AAAA,EACL,KAAK;AAAA,EACL,IAAI;AAAA,EACJ,IAAI;AAAA,EACJ,IAAI;AAAA,EACJ,MAAM;AAAA,EACN,OAAO;AAAA,EACP,KAAK;AAAA,EACL,IAAI;AAAA,EACJ,KAAK;AAAA,EACL,OAAO;AAAA,EACP,KAAK;AAAA,EACL,IAAI;AAAA,EACJ,MAAM;AAAA,EACN,KAAK;AAAA,EACL,MAAM;AAAA,EACN,KAAK;AAAA,EACL,KAAK;AAAA,EACL,MAAM;AAAA,EACN,IAAI;AAAA,EACJ,KAAK;AAAA,EACL,MAAM;AAAA,EACN,MAAM;AAAA,EACN,KAAK;AAAA,EACL,KAAK;AAAA,EACL,KAAK;AAAA,EACL,GAAG;AAAA,EACH,IAAI;AAAA,EACJ,IAAI;AAAA,EACJ,MAAM;AAAA,EACN,IAAI;AAAA,EACJ,IAAI;AAAA,EACJ,KAAK;AAAA,EACL,MAAM;AAAA,EACN,IAAI;AAAA,EACJ,IAAI;AAAA,EACJ,IAAI;AAAA,EACJ,KAAK;AAAA,EACL,IAAI;AAAA,EACJ,IAAI;AAAA,EACJ,MAAM;AAAA,EACN,IAAI;AAAA,EACJ,KAAK;AAAA,EACL,MAAM;AAAA,EACN,KAAK;AAAA,EACL,IAAI;AAAA,EACJ,MAAM;AAAA,EACN,MAAM;AAAA,EACN,KAAK;AAAA,EACL,OAAO;AAAA,EACP,MAAM;AAAA,EACN,MAAM;AAAA,EACN,OAAO;AAAA,EACP,OAAO;AAAA,EACP,MAAM;AAAA,EACN,MAAM;AAAA,EACN,OAAO;AAAA,EACP,IAAI;AAAA,EACJ,KAAK;AAAA,EACL,OAAO;AAAA,EACP,IAAI;AAAA,EACJ,IAAI;AAAA,EACJ,MAAM;AAAA,EACN,KAAK;AAAA,EACL,IAAI;AAAA,EACJ,MAAM;AAAA,EACN,MAAM;AAAA,EACN,MAAM;AAAA,EACN,KAAK;AAAA,EACL,OAAO;AAAA,EACP,OAAO;AAAA,EACP,KAAK;AAAA,EACL,MAAM;AAAA,EACN,MAAM;AAAA,EACN,MAAM;AAAA,EACN,OAAO;AAAA,EACP,KAAK;AAAA,EACL,MAAM;AACR;AAEO,IAAM,4BAA4B,oBAAI,IAAI;AAAA,EAC/C;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AACF,CAAC;AAEM,IAAM,6BAA6B,oBAAI,IAAI;AAAA,EAChD;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AACF,CAAC;AAEM,IAAM,0BAA0B,oBAAI,IAAI;AAAA,EAC7C;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AACF,CAAC;AAEM,IAAM,6BAA6B,oBAAI,IAAI;AAAA,EAChD;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AACF,CAAC;AACM,IAAM,iCAAiC,oBAAI,IAAI;AAAA,EACpD;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AACF,CAAC;AAEM,IAAM,8BAAoD;AAAA,EAC/D,KAAK;AAAA,EACL,MAAM;AAAA,EACN,MAAM;AAAA,EACN,OAAO;AAAA,EACP,SAAS;AAAA,EACT,UAAU;AAAA,EACV,QAAQ;AAAA,EACR,QAAQ;AAAA,EACR,SAAS;AAAA,EACT,QAAQ;AAAA,EACR,SAAS;AAAA,EACT,SAAS;AAAA,EACT,MAAM;AAAA,EACN,OAAO;AAAA,EACP,IAAI;AAAA,EACJ,MAAM;AAAA,EACN,MAAM;AAAA,EACN,MAAM;AAAA,EACN,MAAM;AAAA,EACN,OAAO;AAAA,EACP,KAAK;AAAA,EACL,MAAM;AAAA,EACN,OAAO;AAAA,EACP,MAAM;AAAA,EACN,OAAO;AAAA,EACP,QAAQ;AAAA,EACR,SAAS;AAAA,EACT,MAAM;AAAA,EACN,OAAO;AAAA,EACP,MAAM;AAAA,EACN,OAAO;AAAA,EACP,KAAK;AAAA,EACL,MAAM;AAAA,EACN,MAAM;AAAA,EACN,OAAO;AAAA,EACP,QAAQ;AAAA,EACR,SAAS;AAAA,EACT,SAAS;AAAA,EACT,UAAU;AAAA,EACV,KAAK;AAAA,EACL,MAAM;AAAA,EACN,OAAO;AAAA,EACP,QAAQ;AAAA,EACR,MAAM;AAAA,EACN,OAAO;AAAA,EACP,MAAM;AAAA,EACN,OAAO;AAAA,EACP,OAAO;AAAA,EACP,QAAQ;AAAA,EACR,SAAS;AAAA,EACT,UAAU;AAAA,EACV,MAAM;AAAA,EACN,OAAO;AAAA,EACP,KAAK;AAAA,EACL,OAAO;AAAA,EACP,KAAK;AAAA,EACL,MAAM;AAAA,EACN,MAAM;AAAA,EACN,OAAO;AAAA,EACP,MAAM;AAAA,EACN,OAAO;AACT;AAUO,SAAS,iBAAiB,MAAiC;AAChE,QAAM,aAAa,KAAK,UAAU,MAAM,EAAE;AAAA,IACxC;AAAA,EACF,KAAK,CAAC,GAAG,QAAQ,yBAAyB;AAC1C,QAAM,SAAS,UAAU,IAAI,CAAC,aAC5B,SAAS,WAAW,UAAK,GAAG,EAAE,kBAAkB,CAAC;AACnD,MAAI,iBAAiB,OAAO,UAAU,CAAC,OAAO,UAAU;AACtD,UAAM,gBAAgB,OAAO,QAAQ,CAAC;AACtC,UAAM,mBAAmB,kBAAkB,UACtC,2BAA2B,IAAI,aAAa;AACjD,QAAI,0BAA0B,QAAQ;AACtC,WACE,2BAA2B,KACxB,CAAC,wBAAwB,IAAI,OAAO,uBAAuB,KAAK,EAAE,MAEnE,oBAAoB,OAAO,uBAAuB,KAAK,EAAE,MAAM,SAC3D,OAAO,uBAAuB,KAAK,IAAI,SAAS,IAAI,IAE1D;AACA,iCAA2B;AAAA,IAC7B;AACA,UAAM,0BAA0B,wBAAwB;AAAA,MACtD,OAAO,uBAAuB,KAAK;AAAA,IACrC;AACA,UAAM,cAAc,WAAW,KAAK,UAAU,KAAK,KAAK,EAAE;AAC1D,UAAM,sBAAsB,QAAQ,KAC/B,MAAM,SAAS,GAAG,KAClB,CAAC,MAAM,SAAS,IAAI,KACpB,CAAC,2BAA2B,IAAI,KAAK;AAC1C,UAAM,sCAAsC,UAAU,KACjD,OAAO,KAAK,CAAC,YAAY,eAC1B,aAAa,KACV,CAAC,WAAW,KAAK,UAAU,UAAU,KAAK,EAAE,MAE7C,2BAA2B,IAAI,UAAU,KACtC,4BAA4B,UAAU,MAAM,QAC5C,WAAW,SAAS,IAAI,KACxB,WAAW,SAAS,KAAK,EAC7B;AACL,QAAI,gBAAgB,UAAU,KAAK,qCAAsC,QAAO;AAChF,QAAI,2BAA2B,oBAAqB,QAAO;AAC3D,WAAO,4BAA4B,KAAK,MAAM,QACzC,MAAM,SAAS,IAAI,KACnB,MAAM,SAAS,KAAK,KACnB,oBAAoB,CAAC,2BACtB;AAAA,EACP,CAAC;AACD,MAAI,mBAAmB,IAAI;AACzB,UAAM,uBAAuB,UAAU,UAAU,CAAC,aAAa,CAAC,WAAW,KAAK,QAAQ,CAAC;AACzF,QAAI,uBAAuB,GAAG;AAC5B,uBAAiB,OAAO,UAAU,CAAC,OAAO,UACxC,SAAS,yBAEP,2BAA2B,IAAI,KAAK,KAElC,oBAAoB,KAAK,MAAM,QAC5B,CAAC,WAAW,KAAK,UAAU,KAAK,KAAK,EAAE,EAE7C;AAAA,IACL;AAAA,EACF;AACA,SAAO,UAAU,IAAI,CAAC,UAAU,UAAU;AACxC,UAAM,QAAQ,OAAO,KAAK;AAC1B,UAAM,cAAc,UAAU;AAC9B,WAAO;AAAA,MACL;AAAA,MACA,SAAS;AAAA,MACT,mBAAmB,CAAC,gBAClB,WAAW,KAAK,QAAQ,KACrB,MAAM,SAAS,GAAG;AAAA,MAEvB;AAAA,IACF;AAAA,EACF,CAAC;AACH;AAEO,SAAS,cAAc,MAAwB;AACpD,SAAO,iBAAiB,IAAI,EAAE,IAAI,CAAC,EAAE,MAAM,MAAM,KAAK;AACxD;AAEO,SAAS,2BAA2B,WAAmB,QAAyB;AACrF,QAAM,kBAAkB,cAAc,SAAS;AAC/C,QAAM,eAAe,cAAc,MAAM;AACzC,MAAI,gBAAgB,WAAW,KAAK,gBAAgB,SAAS,aAAa,OAAQ,QAAO;AACzF,SAAO,aAAa;AAAA,IAAK,CAAC,GAAG,UAC3B,gBAAgB,MAAM,CAAC,OAAO,WAAW,aAAa,QAAQ,MAAM,MAAM,KAAK;AAAA,EACjF;AAEF;AAEO,SAAS,cAAc,OAAwB;AACpD,SAAO,0BAA0B,IAAI,KAAK,KAAK,MAAM,SAAS,KAAK;AACrE;AAEO,SAAS,2BAA2B,OAAwB;AACjE,SAAO,MAAM,SAAS,KAAK,KACtB,UAAU,YACV,UAAU,UACV,UAAU;AACjB;AAEO,SAAS,YAAY,QAA+B,OAAwB;AACjF,MAAI,OAAO,QAAQ,CAAC,MAAM,UAAU,OAAO,QAAQ,CAAC,MAAM,MAAO,QAAO;AACxE,QAAM,gBAAgB,KAAK,IAAI,GAAG,QAAQ,CAAC;AAC3C,WAAS,IAAI,eAAe,IAAI,OAAO,KAAK,GAAG;AAC7C,QAAI,cAAc,OAAO,CAAC,CAAC,EAAG,QAAO;AAAA,EACvC;AAEA,MAAI,OAAO,QAAQ,CAAC,MAAM,UAAU,OAAO,QAAQ,CAAC,MAAM,SAAU,QAAO;AAC3E,MAAI,OAAO,QAAQ,CAAC,MAAM,QAAQ,OAAO,QAAQ,CAAC,MAAM,UAAW,QAAO;AAE1E,QAAM,OAAO,OAAO,QAAQ,CAAC;AAC7B,MAAI,SAAS,UAAa,2BAA2B,IAAI,EAAG,QAAO;AACnE,QAAM,WAAW,OAAO,QAAQ,CAAC;AACjC,SAAO,SAAS,UACX,aAAa,UACb,2BAA2B,IAAI,IAAI,KACnC,cAAc,QAAQ;AAC7B;AAEO,IAAM,8BAA8B;AACpC,IAAM,yBAAyB;AAEtC,IAAM,gCAAgC;AACtC,IAAM,mCAAmC;AAElC,SAAS,UACd,OACA,oBAAoB,OACpB,YAAY,OACJ;AACR,MAAI,MAAM,SAAS,IAAI,EAAG,QAAO,MAAM,MAAM,GAAG,EAAE;AAClD,MAAI,mBAAmB;AACrB,QAAI,CAAC,UAAW,QAAO;AACvB,WAAO,GAAG,6BAA6B,GAAG,KAAK;AAAA,EACjD;AACA,MAAI,MAAM,SAAS,KAAK,MAAM,SAAS,KAAK,GAAG;AAC7C,UAAM,OAAO,MAAM,MAAM,GAAG,EAAE;AAC9B,UAAM,oBAAoB,UAAU,KAAK,IAAI,KAAK,KAAK,SAAS,KAAK,CAAC,UAAU,KAAK,IAAI;AACzF,UAAM,aAAa,oBAAoB,KAAK,MAAM,GAAG,EAAE,IAAI;AAC3D,WAAO,YAAY,GAAG,gCAAgC,GAAG,UAAU,KAAK;AAAA,EAC1E;AACA,MAAI,MAAM,SAAS,KAAK,MAAM,SAAS,KAAK,GAAG;AAC7C,UAAM,aAAa,GAAG,MAAM,MAAM,GAAG,EAAE,CAAC;AACxC,WAAO,YAAY,GAAG,gCAAgC,GAAG,UAAU,KAAK;AAAA,EAC1E;AACA,MAAI,MAAM,SAAS,KAAK,MAAM,SAAS,IAAI,GAAG;AAC5C,UAAM,OAAO,MAAM,MAAM,GAAG,EAAE;AAC9B,UAAM,oBAAoB,UAAU,KAAK,IAAI,KAAK,KAAK,SAAS,KAAK,CAAC,UAAU,KAAK,IAAI;AACzF,UAAM,aAAa,oBAAoB,KAAK,MAAM,GAAG,EAAE,IAAI;AAC3D,WAAO,YAAY,GAAG,gCAAgC,GAAG,UAAU,KAAK;AAAA,EAC1E;AACA,MAAI,MAAM,SAAS,KAAK,MAAM,SAAS,GAAG,KAAK,CAAC,MAAM,SAAS,IAAI,GAAG;AACpE,WAAO,MAAM,SAAS,KAAK,IAAI,GAAG,MAAM,MAAM,GAAG,EAAE,CAAC,MAAM,MAAM,MAAM,GAAG,EAAE;AAAA,EAC7E;AACA,SAAO;AACT;AAGO,SAAS,SAAS,MAA2B;AAClD,QAAM,SAAS,oBAAI,IAAY;AAC/B,aAAW,EAAE,OAAO,kBAAkB,KAAK,iBAAiB,IAAI,GAAG;AACjE,QAAI,oBAAoB,KAAK,MAAM,KAAM,QAAO,IAAI,UAAU,OAAO,mBAAmB,IAAI,CAAC;AAAA,EAC/F;AACA,SAAO;AACT;AAEA,IAAM,qCAAqC,IAAI;AAAA,EAC7C;AAAA,EAEA;AACF;AACA,IAAM,oCAAoC;AAE1C,SAAS,iCAAiC,MAAuB;AAC/D,SAAO,mCAAmC,KAAK,IAAI;AACrD;AASA,SAAS,0BAA0B,UAA4B;AAC7D,MAAI,CAAC,iCAAiC,QAAQ,EAAG,QAAO,CAAC,QAAQ;AACjE,QAAM,QAAkB,CAAC;AACzB,MAAI,iBAAiB;AACrB,aAAW,aAAa,UAAU;AAChC,QAAI,iCAAiC,SAAS,GAAG;AAC/C,UAAI,eAAe,SAAS,GAAG;AAC7B,cAAM,KAAK,cAAc;AACzB,yBAAiB;AAAA,MACnB;AACA,YAAM,KAAK,SAAS;AAAA,IACtB,OAAO;AACL,wBAAkB;AAAA,IACpB;AAAA,EACF;AACA,MAAI,eAAe,SAAS,EAAG,OAAM,KAAK,cAAc;AACxD,SAAO;AACT;AAEA,SAAS,iCAAiC,MAAwB;AAChE,QAAM,aAAuB,CAAC;AAC9B,aAAW,aAAa,KAAK,UAAU,MAAM,GAAG;AAC9C,QAAI,iCAAiC,SAAS,EAAG,YAAW,KAAK,SAAS;AAAA,EAC5E;AACA,SAAO;AACT;AAEA,SAAS,+BAA+B,MAA2B;AACjE,QAAM,QAAQ,oBAAI,IAAY;AAC9B,MAAI,oBAAoB;AACxB,aAAW,aAAa,iCAAiC,IAAI,GAAG;AAC9D,QAAI,sBAAsB,GAAI,OAAM,IAAI,oBAAoB,SAAS;AACrE,wBAAoB;AAAA,EACtB;AACA,SAAO;AACT;AAEA,SAAS,6BACP,MACA,OACQ;AACR,MAAI,KAAK,WAAW,KAAK,MAAM,WAAW,EAAG,QAAO;AACpD,MAAI,UAAU;AACd,MAAI,cAAc,IAAI,MAAc,MAAM,MAAM,EAAE,KAAK,CAAC;AACxD,aAAW,iBAAiB,MAAM;AAChC,UAAM,aAAa,IAAI,MAAc,MAAM,MAAM,EAAE,KAAK,CAAC;AACzD,aAAS,QAAQ,GAAG,QAAQ,MAAM,QAAQ,SAAS,GAAG;AACpD,UAAI,kBAAkB,MAAM,KAAK,EAAG;AACpC,iBAAW,KAAK,KAAK,QAAQ,IAAI,YAAY,QAAQ,CAAC,IAAI,KAAK;AAC/D,UAAI,WAAW,KAAK,IAAI,QAAS,WAAU,WAAW,KAAK;AAAA,IAC7D;AACA,kBAAc;AAAA,EAChB;AACA,SAAO;AACT;AAUO,SAAS,kCAAkC,WAAmB,QAA+B;AAClG,QAAM,iBAAiB,+BAA+B,SAAS;AAC/D,MAAI,eAAe,SAAS,EAAG,QAAO;AACtC,QAAM,cAAc,+BAA+B,MAAM;AACzD,MAAI,cAAc;AAClB,aAAW,QAAQ,gBAAgB;AACjC,QAAI,YAAY,IAAI,IAAI,EAAG,gBAAe;AAAA,EAC5C;AACA,MAAI,cAAc,4BAA6B,QAAO;AACtD,QAAM,WAAW,cAAc,eAAe;AAC9C,MAAI,WAAW,uBAAwB,QAAO;AAC9C,QAAM,sBAAsB,iCAAiC,SAAS;AACtE,QAAM,mBAAmB,iCAAiC,MAAM;AAChE,MAAI,iBAAiB,UAAU,mCAAmC;AAChE,UAAM,mBAAmB,6BAA6B,qBAAqB,gBAAgB,IACvF,oBAAoB;AACxB,QAAI,mBAAmB,uBAAwB,QAAO;AAAA,EACxD;AACA,QAAM,eAAe,SAAS,MAAM;AACpC,aAAW,SAAS,SAAS,SAAS,GAAG;AACvC,QAAI,iCAAiC,KAAK,EAAG;AAC7C,QAAI,CAAC,CAAC,GAAG,YAAY,EAAE,KAAK,CAAC,gBAAgB,6BAA6B,OAAO,WAAW,CAAC,GAAG;AAC9F,aAAO;AAAA,IACT;AAAA,EACF;AACA,SAAO;AACT;AAEO,SAAS,uBAAuB,MAAsB;AAC3D,SAAO,KAAK,UAAU,MAAM,EAAE,kBAAkB,EAAE,QAAQ,SAAS,GAAG,EAAE,KAAK;AAC/E;AAEO,SAAS,gBAAgB,QAA0B;AACxD,QAAM,YAAsB,CAAC;AAC7B,MAAI,gBAAgB;AACpB,WAAS,QAAQ,GAAG,QAAQ,OAAO,QAAQ,SAAS,GAAG;AACrD,UAAM,YAAY,OAAO,KAAK;AAC9B,UAAM,gBAAgB,OAAO,QAAQ,CAAC;AACtC,UAAM,WAAW,cAAc,OAC1B,cAAc,OACd,cAAc,OACd,cAAc,QACb,cAAc,QAChB,kBAAkB,UACf,MAAM,KAAK,aAAa,KACxB,YAAY,KAAK,aAAa;AAErC,QAAI,CAAC,SAAU;AACf,QAAI,cAAc,cAAc,OAAO,QAAQ,QAAQ;AACvD,WAAO,YAAY,KAAK,OAAO,WAAW,KAAK,EAAE,EAAG,gBAAe;AACnE,UAAM,WAAW,OAAO,MAAM,eAAe,WAAW,EAAE,KAAK;AAC/D,QAAI,SAAS,SAAS,EAAG,WAAU,KAAK,QAAQ;AAChD,oBAAgB;AAChB,YAAQ,cAAc;AAAA,EACxB;AACA,QAAM,mBAAmB,OAAO,MAAM,aAAa,EAAE,KAAK;AAC1D,MAAI,iBAAiB,SAAS,EAAG,WAAU,KAAK,gBAAgB;AAChE,SAAO,UAAU,SAAS,IAAI,YAAY,CAAC,MAAM;AACnD;AAGO,SAAS,uBAAuB,MAAwB;AAC7D,MAAI,UAAU,iBAAiB,IAAI;AACnC,SAAO,QAAQ,SAAS,KAAK,2BAA2B,IAAI,QAAQ,CAAC,EAAG,KAAK,GAAG;AAC9E,cAAU,QAAQ,MAAM,CAAC;AAAA,EAC3B;AACA,SAAO,QACJ,OAAO,CAAC,EAAE,MAAM,MAAM,oBAAoB,KAAK,MAAM,IAAI,EACzD,IAAI,CAAC,EAAE,OAAO,kBAAkB,MAAM,UAAU,OAAO,mBAAmB,IAAI,CAAC;AACpF;AACO,SAAS,0CAA0C,MAAwB;AAChF,QAAM,aAAa,iCAAiC,IAAI;AACxD,QAAM,cAAc,iBAAiB,IAAI,EAAE,CAAC;AAC5C,MAAI,gBAAgB,UAAa,CAAC,2BAA2B,IAAI,YAAY,KAAK,GAAG;AACnF,WAAO;AAAA,EACT;AACA,SAAO,CAAC,UAAU,YAAY,OAAO,YAAY,mBAAmB,IAAI,GAAG,GAAG,UAAU;AAC1F;AAGO,SAAS,iCAAiC,MAAwB;AACvE,SAAO,uBAAuB,IAAI,EAAE,IAAI,CAAC,UAAU,MAAM,QAAQ,OAAO,EAAE,CAAC;AAC7E;AAEO,SAAS,6BAA6B,MAAc,OAAwB;AACjF,QAAM,aAAa,KAAK,CAAC;AACzB,QAAM,cAAc,MAAM,CAAC;AAC3B,QAAM,aAAa,eAAe,iCAC7B,eAAe;AACpB,QAAM,cAAc,gBAAgB,iCAC/B,gBAAgB;AACrB,QAAM,YAAY,aAAa,KAAK,MAAM,CAAC,IAAI;AAC/C,QAAM,aAAa,cAAc,MAAM,MAAM,CAAC,IAAI;AAClD,MAAI,cAAc,YAAY;AAC5B,UAAM,oBACJ,eAAe,iCACZ,gBAAgB,oCAEnB,gBAAgB,iCACb,eAAe;AAEpB,WAAO,CAAC;AAAA,EACV;AACA,MAAI,eAAe,iCAAiC,gBAAgB,+BAA+B;AACjG,WAAO;AAAA,EACT;AACA,SAAO,GAAG,SAAS,QAAQ,cAAc,cAAc,GAAG,UAAU;AACtE;AACA,IAAM,mCAAmC,oBAAI,IAAI;AAAA,EAC/C;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AACF,CAAC;AAED,SAAS,sBAAsB,OAAwB;AACrD,SAAO,iCAAiC,IAAI,KAAK;AACnD;AACA,IAAM,0CAA0C,oBAAI,IAAI;AAAA,EACtD;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AACF,CAAC;AAED,SAAS,4BAA4B,OAAwB;AAC3D,SAAO,wCAAwC,IAAI,KAAK;AAC1D;AAEA,SAAS,0BAA0B,OAAwB;AACzD,SAAO,UAAU,SACZ,UAAU,SACV,UAAU,QACV,UAAU,WACV,UAAU,cACV,UAAU;AACjB;AAEA,SAAS,0BAA0B,QAA+B,OAAwB;AACxF,MAAI,WAAW;AACf,WAAS,SAAS,GAAG,SAAS,OAAO,UAAU,GAAG;AAChD,QAAI,0BAA0B,OAAO,MAAM,CAAE,EAAG,YAAW,SAAS;AAAA,EACtE;AACA,WAAS,SAAS,QAAQ,GAAG,UAAU,UAAU,UAAU,GAAG;AAC5D,QACE,OAAO,MAAM,MAAM,UAChB,SAAS,YACT,4BAA4B,OAAO,SAAS,CAAC,CAAE,GAClD;AACA,aAAO;AAAA,IACT;AACA,QAAI,4BAA4B,OAAO,MAAM,CAAE,KAAK,QAAQ,UAAU,EAAG,QAAO;AAAA,EAClF;AACA,SAAO;AACT;AAEA,SAAS,WAAW,QAA+B,OAAwB;AACzE,MAAI,WAAW;AACf,WAAS,SAAS,GAAG,SAAS,OAAO,UAAU,GAAG;AAChD,QAAI,0BAA0B,OAAO,MAAM,CAAE,EAAG,YAAW,SAAS;AAAA,EACtE;AACA,WAAS,SAAS,QAAQ,GAAG,UAAU,UAAU,UAAU,GAAG;AAC5D,UAAM,QAAQ,OAAO,MAAM;AAC3B,QAAI,UAAU,UAAU,SAAS,YAAY,sBAAsB,OAAO,SAAS,CAAC,CAAE,GAAG;AACvF,aAAO;AAAA,IACT;AACA,QAAI,sBAAsB,KAAK,KAAK,QAAQ,UAAU,EAAG,QAAO;AAAA,EAClE;AACA,SAAO;AACT;AAEO,SAAS,yBAAyB,WAAmB,QAAyB;AACnF,QAAM,mBAAmB,iBAAiB,SAAS;AACnD,QAAM,kBAAkB,iBAAiB,IAAI,CAAC,EAAE,MAAM,MAAM,KAAK;AACjE,MAAI,wBAAwB;AAC5B,aAAW,UAAU,gBAAgB,MAAM,EAAE,QAAQ,CAAC,aACpD,SAAS,MAAM,+CAA+C,CAAC,GAAG;AAClE,UAAMA,iBAAgB,iBAAiB,MAAM;AAC7C,UAAMC,gBAAeD,eAAc,IAAI,CAAC,EAAE,MAAM,MAAM,KAAK;AAC3D,QAAI,eAAe;AACnB,QAAI,iBAAiB;AACrB,QAAI,gBAAgB;AACpB,eAAW,CAAC,gBAAgB,cAAc,KAAK,gBAAgB,QAAQ,GAAG;AACxE,UAAI,oBAAoB,cAAc,MAAM,KAAM;AAClD,YAAM,cAAcC,cAAa;AAAA,QAC/B,CAAC,aAAa,UACZ,SAAS,gBACN,UAAU,aAAaD,eAAc,KAAK,GAAG,sBAAsB,IAAI,MACpE,UAAU,gBAAgB,iBAAiB,cAAc,GAAG,sBAAsB,IAAI;AAAA,MAChG;AACA,UAAI,gBAAgB,IAAI;AACtB,yBAAiB;AACjB;AAAA,MACF;AACA,YAAM,mBAAmB,YAAY,iBAAiB,cAAc,KAC/D,WAAW,iBAAiB,cAAc;AAC/C,YAAM,gBAAgB,YAAYC,eAAc,WAAW,KACtD,WAAWA,eAAc,WAAW;AACzC,YAAM,wBAAwB,0BAA0B,iBAAiB,cAAc;AACvF,YAAM,qBAAqB,0BAA0BA,eAAc,WAAW;AAC9E,UACE,qBAAqB,iBAClB,0BAA0B,oBAC7B;AACA,wBAAgB;AAAA,MAClB;AACA,qBAAe,cAAc;AAAA,IAC/B;AACA,QAAI,gBAAgB;AAClB,UAAI,CAAC,cAAe,QAAO;AAC3B,8BAAwB;AAAA,IAC1B;AAAA,EACF;AACA,MAAI,sBAAuB,QAAO;AAElC,QAAM,gBAAgB,iBAAiB,MAAM;AAC7C,QAAM,eAAe,cAAc,IAAI,CAAC,EAAE,MAAM,MAAM,KAAK;AAC3D,QAAM,kBAAkB,oBAAI,IAAsB;AAClD,gBAAc,QAAQ,CAAC,EAAE,OAAO,kBAAkB,GAAG,UAAU;AAC7D,UAAM,MAAM,UAAU,OAAO,iBAAiB;AAC9C,UAAM,YAAY,gBAAgB,IAAI,GAAG;AACzC,QAAI,UAAW,WAAU,KAAK,KAAK;AAAA,QAC9B,iBAAgB,IAAI,KAAK,CAAC,KAAK,CAAC;AAAA,EACvC,CAAC;AACD,aAAW,CAAC,gBAAgB,KAAK,KAAK,gBAAgB,QAAQ,GAAG;AAC/D,QAAI,oBAAoB,KAAK,MAAM,KAAM;AACzC,UAAM,YAAY,gBAAgB;AAAA,MAChC,UAAU,OAAO,iBAAiB,cAAc,GAAG,sBAAsB,IAAI;AAAA,IAC/E;AACA,QAAI,CAAC,aAAa,UAAU,WAAW,EAAG;AAC1C,UAAM,cAAc,UAAU,UAAU,SAAS,CAAC;AAClD,UAAM,mBAAmB,YAAY,iBAAiB,cAAc,KAC/D,WAAW,iBAAiB,cAAc;AAC/C,UAAM,gBAAgB,YAAY,cAAc,WAAW,KACtD,WAAW,cAAc,WAAW;AACzC,UAAM,wBAAwB,0BAA0B,iBAAiB,cAAc;AACvF,UAAM,qBAAqB,0BAA0B,cAAc,WAAW;AAC9E,QACE,qBAAqB,iBAClB,0BAA0B,oBAC7B;AACA,aAAO;AAAA,IACT;AAAA,EACF;AACA,SAAO;AACT;","names":["sourceLexemes","sourceTokens"]}
|
|
@@ -1,7 +1,7 @@
|
|
|
1
1
|
import {
|
|
2
2
|
SupportPassportCreateGrantRequestSchema,
|
|
3
3
|
defineOperation
|
|
4
|
-
} from "./chunk-
|
|
4
|
+
} from "./chunk-MIM7QT6H.js";
|
|
5
5
|
import {
|
|
6
6
|
SupportPassportCardCategorySchema,
|
|
7
7
|
SupportPassportMemoryIdSchema,
|
|
@@ -220,4 +220,4 @@ var supportPassportGrantAskOperation = defineOperation({
|
|
|
220
220
|
result: await ctx.service.supportPassportAskGrant(grantId, secret, question, ctx.abortSignal)
|
|
221
221
|
})
|
|
222
222
|
});
|
|
223
|
-
//# sourceMappingURL=chunk-
|
|
223
|
+
//# sourceMappingURL=chunk-LQNBQEMC.js.map
|
|
@@ -92,6 +92,11 @@ async function loadDaySummaryPrompt() {
|
|
|
92
92
|
}
|
|
93
93
|
return EMBEDDED_DAY_SUMMARY_PROMPT;
|
|
94
94
|
}
|
|
95
|
+
var FSI = "\u2068";
|
|
96
|
+
var PDI = "\u2069";
|
|
97
|
+
function bidiIsolate(text) {
|
|
98
|
+
return `${FSI}${text}${PDI}`;
|
|
99
|
+
}
|
|
95
100
|
function formatDaySummaryMemories(memories) {
|
|
96
101
|
if (typeof memories === "string") {
|
|
97
102
|
return memories.trim();
|
|
@@ -100,7 +105,7 @@ function formatDaySummaryMemories(memories) {
|
|
|
100
105
|
const category = memory.frontmatter.category || "fact";
|
|
101
106
|
const created = memory.frontmatter.created || "unknown";
|
|
102
107
|
return `[${memory.frontmatter.id}] (${category}, ${created})
|
|
103
|
-
${memory.content}`;
|
|
108
|
+
${bidiIsolate(memory.content)}`;
|
|
104
109
|
}).join("\n\n").trim();
|
|
105
110
|
}
|
|
106
111
|
async function buildExtensionsFooterForSummary(config) {
|
|
@@ -116,4 +121,4 @@ export {
|
|
|
116
121
|
formatDaySummaryMemories,
|
|
117
122
|
buildExtensionsFooterForSummary
|
|
118
123
|
};
|
|
119
|
-
//# sourceMappingURL=chunk-
|
|
124
|
+
//# sourceMappingURL=chunk-LVXBC6YB.js.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"sources":["../src/day-summary.ts"],"sourcesContent":["import path from \"node:path\";\nimport { fileURLToPath } from \"node:url\";\nimport { log } from \"./logger.js\";\nimport type { MemoryFile, PluginConfig } from \"./types.js\";\nimport { discoverMemoryExtensions, renderExtensionsFooter, resolveExtensionsRoot } from \"./memory-extension-host/index.js\";\nimport { resolvePipelineProcessingCapabilities } from \"./capabilities.js\";\n\nconst PROMPT_RELATIVE_PATH = path.join(\"prompts\", \"day_summary.prompt.md\");\n\n// Embedded fallback prompt for packaged/plugin-install builds where\n// prompts/day_summary.prompt.md may not be present in the runtime bundle.\nconst EMBEDDED_DAY_SUMMARY_PROMPT = `# Baseline day-summary prompt\n\nYou are writing an Engram end-of-day summary.\n\nYour job:\n- compress the day into a short, useful recap\n- prioritize concrete events, decisions, mood/energy signals, and open loops\n- include a few practical next actions for tomorrow\n- avoid hype, fluff, therapy-speak, and invented facts\n\nOutput JSON with these keys:\n- \\`summary\\` — one short paragraph\n- \\`bullets\\` — 2 to 5 bullets with the most important moments\n- \\`next_actions\\` — 1 to 3 concrete actions\n- \\`risks_or_open_loops\\` — 0 to 3 things that still need attention\n\nRules:\n- stay grounded in the input only\n- if the day was mixed, say so plainly\n- do not overstate confidence or importance\n- prefer specific verbs over vague abstractions\n\nBrevity:\n- keep the summary under 90 words\n- keep bullets short and information-dense\n- omit anything that does not change what tomorrow should care about\n\nStructure:\n- \\`summary\\` should be one paragraph only\n- \\`bullets\\` should contain the most important moments, not generic restatements\n- \\`next_actions\\` and \\`risks_or_open_loops\\` should be distinct and non-overlapping\n\nRisk:\n- explicitly surface unresolved blockers, dependencies, or fragile assumptions\n- do not bury open loops inside the summary if they deserve separate attention\n\nTone:\n- sound like a clear internal daily note, not a report template\n- stay natural and direct while remaining compact`;\n\nfunction candidateRoots(): string[] {\n const currentFile = fileURLToPath(import.meta.url);\n const here = path.dirname(currentFile);\n const candidates = [path.resolve(here, \"..\"), path.resolve(here, \"..\", \"..\")];\n\n const seen = new Set<string>();\n return candidates.filter((candidate) => {\n const normalized = path.resolve(candidate);\n if (seen.has(normalized)) return false;\n seen.add(normalized);\n return true;\n });\n}\n\nasync function resolvePromptPath(): Promise<string | null> {\n const { existsSync } = await import(\"node:fs\");\n for (const root of candidateRoots()) {\n const candidate = path.join(root, PROMPT_RELATIVE_PATH);\n if (existsSync(candidate)) {\n return candidate;\n }\n }\n return null;\n}\n\nexport async function loadDaySummaryPrompt(): Promise<string> {\n const promptPath = await resolvePromptPath();\n if (promptPath) {\n try {\n const { readFile } = await import(\"node:fs/promises\");\n const raw = await readFile(promptPath, \"utf-8\");\n // CRLF-compatible regex: allow \\r\\n or \\n line endings\n const match = raw.match(/```(?:[a-zA-Z0-9_-]+)?\\r?\\n([\\s\\S]*?)\\r?\\n```/);\n if (match?.[1]) {\n return match[1].trim();\n }\n log.warn(\"day summary prompt file does not contain a fenced prompt block; using embedded fallback\");\n } catch (err) {\n log.warn(`day summary prompt file read failed; using embedded fallback: ${err}`);\n }\n }\n return EMBEDDED_DAY_SUMMARY_PROMPT;\n}\n\nexport function formatDaySummaryMemories(memories: string | MemoryFile[]): string {\n if (typeof memories === \"string\") {\n return memories.trim();\n }\n\n return memories\n .map((memory) => {\n const category = memory.frontmatter.category || \"fact\";\n const created = memory.frontmatter.created || \"unknown\";\n return `[${memory.frontmatter.id}] (${category}, ${created})\\n${memory.content}`;\n })\n .join(\"\\n\\n\")\n .trim();\n}\n\n/**\n * Build a one-line extension footer for day-summary and summary-snapshot contexts.\n * Returns \"\" when extensions are disabled or none are found.\n */\nexport async function buildExtensionsFooterForSummary(\n config: PluginConfig,\n): Promise<string> {\n if (!resolvePipelineProcessingCapabilities(config).memoryExtensions) return \"\";\n const root = resolveExtensionsRoot(config);\n const extensions = await discoverMemoryExtensions(root, log);\n if (extensions.length === 0) return \"\";\n return renderExtensionsFooter(extensions);\n}\n"],"mappings":";;;;;;;;;;;;;AAAA,OAAO,UAAU;AACjB,SAAS,qBAAqB;AAM9B,IAAM,uBAAuB,KAAK,KAAK,WAAW,uBAAuB;AAIzE,IAAM,8BAA8B;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAwCpC,SAAS,iBAA2B;AAClC,QAAM,cAAc,cAAc,YAAY,GAAG;AACjD,QAAM,OAAO,KAAK,QAAQ,WAAW;AACrC,QAAM,aAAa,CAAC,KAAK,QAAQ,MAAM,IAAI,GAAG,KAAK,QAAQ,MAAM,MAAM,IAAI,CAAC;AAE5E,QAAM,OAAO,oBAAI,IAAY;AAC7B,SAAO,WAAW,OAAO,CAAC,cAAc;AACtC,UAAM,aAAa,KAAK,QAAQ,SAAS;AACzC,QAAI,KAAK,IAAI,UAAU,EAAG,QAAO;AACjC,SAAK,IAAI,UAAU;AACnB,WAAO;AAAA,EACT,CAAC;AACH;AAEA,eAAe,oBAA4C;AACzD,QAAM,EAAE,WAAW,IAAI,MAAM,OAAO,IAAS;AAC7C,aAAW,QAAQ,eAAe,GAAG;AACnC,UAAM,YAAY,KAAK,KAAK,MAAM,oBAAoB;AACtD,QAAI,WAAW,SAAS,GAAG;AACzB,aAAO;AAAA,IACT;AAAA,EACF;AACA,SAAO;AACT;AAEA,eAAsB,uBAAwC;AAC5D,QAAM,aAAa,MAAM,kBAAkB;AAC3C,MAAI,YAAY;AACd,QAAI;AACF,YAAM,EAAE,SAAS,IAAI,MAAM,OAAO,aAAkB;AACpD,YAAM,MAAM,MAAM,SAAS,YAAY,OAAO;AAE9C,YAAM,QAAQ,IAAI,MAAM,+CAA+C;AACvE,UAAI,QAAQ,CAAC,GAAG;AACd,eAAO,MAAM,CAAC,EAAE,KAAK;AAAA,MACvB;AACA,UAAI,KAAK,yFAAyF;AAAA,IACpG,SAAS,KAAK;AACZ,UAAI,KAAK,iEAAiE,GAAG,EAAE;AAAA,IACjF;AAAA,EACF;AACA,SAAO;AACT;AAEO,SAAS,yBAAyB,UAAyC;AAChF,MAAI,OAAO,aAAa,UAAU;AAChC,WAAO,SAAS,KAAK;AAAA,EACvB;AAEA,SAAO,SACJ,IAAI,CAAC,WAAW;AACf,UAAM,WAAW,OAAO,YAAY,YAAY;AAChD,UAAM,UAAU,OAAO,YAAY,WAAW;AAC9C,WAAO,IAAI,OAAO,YAAY,EAAE,MAAM,QAAQ,KAAK,OAAO;AAAA,EAAM,OAAO,OAAO;AAAA,
|
|
1
|
+
{"version":3,"sources":["../src/day-summary.ts"],"sourcesContent":["import path from \"node:path\";\nimport { fileURLToPath } from \"node:url\";\nimport { log } from \"./logger.js\";\nimport type { MemoryFile, PluginConfig } from \"./types.js\";\nimport { discoverMemoryExtensions, renderExtensionsFooter, resolveExtensionsRoot } from \"./memory-extension-host/index.js\";\nimport { resolvePipelineProcessingCapabilities } from \"./capabilities.js\";\n\nconst PROMPT_RELATIVE_PATH = path.join(\"prompts\", \"day_summary.prompt.md\");\n\n// Embedded fallback prompt for packaged/plugin-install builds where\n// prompts/day_summary.prompt.md may not be present in the runtime bundle.\nconst EMBEDDED_DAY_SUMMARY_PROMPT = `# Baseline day-summary prompt\n\nYou are writing an Engram end-of-day summary.\n\nYour job:\n- compress the day into a short, useful recap\n- prioritize concrete events, decisions, mood/energy signals, and open loops\n- include a few practical next actions for tomorrow\n- avoid hype, fluff, therapy-speak, and invented facts\n\nOutput JSON with these keys:\n- \\`summary\\` — one short paragraph\n- \\`bullets\\` — 2 to 5 bullets with the most important moments\n- \\`next_actions\\` — 1 to 3 concrete actions\n- \\`risks_or_open_loops\\` — 0 to 3 things that still need attention\n\nRules:\n- stay grounded in the input only\n- if the day was mixed, say so plainly\n- do not overstate confidence or importance\n- prefer specific verbs over vague abstractions\n\nBrevity:\n- keep the summary under 90 words\n- keep bullets short and information-dense\n- omit anything that does not change what tomorrow should care about\n\nStructure:\n- \\`summary\\` should be one paragraph only\n- \\`bullets\\` should contain the most important moments, not generic restatements\n- \\`next_actions\\` and \\`risks_or_open_loops\\` should be distinct and non-overlapping\n\nRisk:\n- explicitly surface unresolved blockers, dependencies, or fragile assumptions\n- do not bury open loops inside the summary if they deserve separate attention\n\nTone:\n- sound like a clear internal daily note, not a report template\n- stay natural and direct while remaining compact`;\n\nfunction candidateRoots(): string[] {\n const currentFile = fileURLToPath(import.meta.url);\n const here = path.dirname(currentFile);\n const candidates = [path.resolve(here, \"..\"), path.resolve(here, \"..\", \"..\")];\n\n const seen = new Set<string>();\n return candidates.filter((candidate) => {\n const normalized = path.resolve(candidate);\n if (seen.has(normalized)) return false;\n seen.add(normalized);\n return true;\n });\n}\n\nasync function resolvePromptPath(): Promise<string | null> {\n const { existsSync } = await import(\"node:fs\");\n for (const root of candidateRoots()) {\n const candidate = path.join(root, PROMPT_RELATIVE_PATH);\n if (existsSync(candidate)) {\n return candidate;\n }\n }\n return null;\n}\n\nexport async function loadDaySummaryPrompt(): Promise<string> {\n const promptPath = await resolvePromptPath();\n if (promptPath) {\n try {\n const { readFile } = await import(\"node:fs/promises\");\n const raw = await readFile(promptPath, \"utf-8\");\n // CRLF-compatible regex: allow \\r\\n or \\n line endings\n const match = raw.match(/```(?:[a-zA-Z0-9_-]+)?\\r?\\n([\\s\\S]*?)\\r?\\n```/);\n if (match?.[1]) {\n return match[1].trim();\n }\n log.warn(\"day summary prompt file does not contain a fenced prompt block; using embedded fallback\");\n } catch (err) {\n log.warn(`day summary prompt file read failed; using embedded fallback: ${err}`);\n }\n }\n return EMBEDDED_DAY_SUMMARY_PROMPT;\n}\n\nconst FSI = \"\\u2068\"; // FIRST STRONG ISOLATE\nconst PDI = \"\\u2069\"; // POP DIRECTIONAL ISOLATE\n\n/**\n * Wrap user content in Unicode bidi isolates so RTL text (Arabic, Hebrew)\n * cannot reorder the surrounding Latin labels on the same composed line.\n * No visible change for LTR content (issue #2198).\n */\nfunction bidiIsolate(text: string): string {\n return `${FSI}${text}${PDI}`;\n}\n\nexport function formatDaySummaryMemories(memories: string | MemoryFile[]): string {\n if (typeof memories === \"string\") {\n return memories.trim();\n }\n\n return memories\n .map((memory) => {\n const category = memory.frontmatter.category || \"fact\";\n const created = memory.frontmatter.created || \"unknown\";\n return `[${memory.frontmatter.id}] (${category}, ${created})\\n${bidiIsolate(memory.content)}`;\n })\n .join(\"\\n\\n\")\n .trim();\n}\n\n/**\n * Build a one-line extension footer for day-summary and summary-snapshot contexts.\n * Returns \"\" when extensions are disabled or none are found.\n */\nexport async function buildExtensionsFooterForSummary(\n config: PluginConfig,\n): Promise<string> {\n if (!resolvePipelineProcessingCapabilities(config).memoryExtensions) return \"\";\n const root = resolveExtensionsRoot(config);\n const extensions = await discoverMemoryExtensions(root, log);\n if (extensions.length === 0) return \"\";\n return renderExtensionsFooter(extensions);\n}\n"],"mappings":";;;;;;;;;;;;;AAAA,OAAO,UAAU;AACjB,SAAS,qBAAqB;AAM9B,IAAM,uBAAuB,KAAK,KAAK,WAAW,uBAAuB;AAIzE,IAAM,8BAA8B;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAwCpC,SAAS,iBAA2B;AAClC,QAAM,cAAc,cAAc,YAAY,GAAG;AACjD,QAAM,OAAO,KAAK,QAAQ,WAAW;AACrC,QAAM,aAAa,CAAC,KAAK,QAAQ,MAAM,IAAI,GAAG,KAAK,QAAQ,MAAM,MAAM,IAAI,CAAC;AAE5E,QAAM,OAAO,oBAAI,IAAY;AAC7B,SAAO,WAAW,OAAO,CAAC,cAAc;AACtC,UAAM,aAAa,KAAK,QAAQ,SAAS;AACzC,QAAI,KAAK,IAAI,UAAU,EAAG,QAAO;AACjC,SAAK,IAAI,UAAU;AACnB,WAAO;AAAA,EACT,CAAC;AACH;AAEA,eAAe,oBAA4C;AACzD,QAAM,EAAE,WAAW,IAAI,MAAM,OAAO,IAAS;AAC7C,aAAW,QAAQ,eAAe,GAAG;AACnC,UAAM,YAAY,KAAK,KAAK,MAAM,oBAAoB;AACtD,QAAI,WAAW,SAAS,GAAG;AACzB,aAAO;AAAA,IACT;AAAA,EACF;AACA,SAAO;AACT;AAEA,eAAsB,uBAAwC;AAC5D,QAAM,aAAa,MAAM,kBAAkB;AAC3C,MAAI,YAAY;AACd,QAAI;AACF,YAAM,EAAE,SAAS,IAAI,MAAM,OAAO,aAAkB;AACpD,YAAM,MAAM,MAAM,SAAS,YAAY,OAAO;AAE9C,YAAM,QAAQ,IAAI,MAAM,+CAA+C;AACvE,UAAI,QAAQ,CAAC,GAAG;AACd,eAAO,MAAM,CAAC,EAAE,KAAK;AAAA,MACvB;AACA,UAAI,KAAK,yFAAyF;AAAA,IACpG,SAAS,KAAK;AACZ,UAAI,KAAK,iEAAiE,GAAG,EAAE;AAAA,IACjF;AAAA,EACF;AACA,SAAO;AACT;AAEA,IAAM,MAAM;AACZ,IAAM,MAAM;AAOZ,SAAS,YAAY,MAAsB;AACzC,SAAO,GAAG,GAAG,GAAG,IAAI,GAAG,GAAG;AAC5B;AAEO,SAAS,yBAAyB,UAAyC;AAChF,MAAI,OAAO,aAAa,UAAU;AAChC,WAAO,SAAS,KAAK;AAAA,EACvB;AAEA,SAAO,SACJ,IAAI,CAAC,WAAW;AACf,UAAM,WAAW,OAAO,YAAY,YAAY;AAChD,UAAM,UAAU,OAAO,YAAY,WAAW;AAC9C,WAAO,IAAI,OAAO,YAAY,EAAE,MAAM,QAAQ,KAAK,OAAO;AAAA,EAAM,YAAY,OAAO,OAAO,CAAC;AAAA,EAC7F,CAAC,EACA,KAAK,MAAM,EACX,KAAK;AACV;AAMA,eAAsB,gCACpB,QACiB;AACjB,MAAI,CAAC,sCAAsC,MAAM,EAAE,iBAAkB,QAAO;AAC5E,QAAM,OAAO,sBAAsB,MAAM;AACzC,QAAM,aAAa,MAAM,yBAAyB,MAAM,GAAG;AAC3D,MAAI,WAAW,WAAW,EAAG,QAAO;AACpC,SAAO,uBAAuB,UAAU;AAC1C;","names":[]}
|
|
@@ -1,3 +1,6 @@
|
|
|
1
|
+
import {
|
|
2
|
+
ChatTransport
|
|
3
|
+
} from "./chunk-JUXOTY6J.js";
|
|
1
4
|
import {
|
|
2
5
|
SingleFlightProbe,
|
|
3
6
|
extractNonRecoverableBackendReason,
|
|
@@ -8,9 +11,6 @@ import {
|
|
|
8
11
|
resolveUnavailableVerdict,
|
|
9
12
|
waitForRetryBackoff
|
|
10
13
|
} from "./chunk-WKDFJXW5.js";
|
|
11
|
-
import {
|
|
12
|
-
ChatTransport
|
|
13
|
-
} from "./chunk-JUXOTY6J.js";
|
|
14
14
|
import {
|
|
15
15
|
estimateTokenCount
|
|
16
16
|
} from "./chunk-TOTT6S2V.js";
|
|
@@ -1096,4 +1096,4 @@ var LocalLlmClient = class _LocalLlmClient {
|
|
|
1096
1096
|
export {
|
|
1097
1097
|
LocalLlmClient
|
|
1098
1098
|
};
|
|
1099
|
-
//# sourceMappingURL=chunk-
|
|
1099
|
+
//# sourceMappingURL=chunk-MB6GLPRY.js.map
|
|
@@ -8,7 +8,7 @@ import {
|
|
|
8
8
|
} from "./chunk-GDB4J2H3.js";
|
|
9
9
|
import {
|
|
10
10
|
importCapsule
|
|
11
|
-
} from "./chunk-
|
|
11
|
+
} from "./chunk-MVIYRRVJ.js";
|
|
12
12
|
import {
|
|
13
13
|
buildCodingGraphInstallHint,
|
|
14
14
|
tryLoadCodingGraphModule
|
|
@@ -34,18 +34,18 @@ import {
|
|
|
34
34
|
import {
|
|
35
35
|
planSessionTranscriptMigration
|
|
36
36
|
} from "./chunk-P5FPO2BR.js";
|
|
37
|
-
import {
|
|
38
|
-
decideDisclosureEscalation
|
|
39
|
-
} from "./chunk-H7XKCNR6.js";
|
|
40
37
|
import {
|
|
41
38
|
toRecallExplainJson
|
|
42
39
|
} from "./chunk-3F3CVVDS.js";
|
|
43
40
|
import {
|
|
44
41
|
estimateRecallTokens
|
|
45
42
|
} from "./chunk-QICOU4RY.js";
|
|
43
|
+
import {
|
|
44
|
+
decideDisclosureEscalation
|
|
45
|
+
} from "./chunk-H7XKCNR6.js";
|
|
46
46
|
import {
|
|
47
47
|
readAggregateExtractionWatermark
|
|
48
|
-
} from "./chunk-
|
|
48
|
+
} from "./chunk-WCWIV2JH.js";
|
|
49
49
|
import {
|
|
50
50
|
ReplicaDivergenceMonitor
|
|
51
51
|
} from "./chunk-CVILPI77.js";
|
|
@@ -81,19 +81,19 @@ import {
|
|
|
81
81
|
} from "./chunk-NLE6TSLG.js";
|
|
82
82
|
import {
|
|
83
83
|
LocalLlmClient
|
|
84
|
-
} from "./chunk-
|
|
84
|
+
} from "./chunk-MB6GLPRY.js";
|
|
85
85
|
import {
|
|
86
86
|
buildProcedurePersistBody,
|
|
87
87
|
normalizeProcedureSteps
|
|
88
88
|
} from "./chunk-QDW3E4RD.js";
|
|
89
|
+
import {
|
|
90
|
+
lcmEvidenceIdentity
|
|
91
|
+
} from "./chunk-C37ZRXX7.js";
|
|
89
92
|
import {
|
|
90
93
|
persistExplicitCapture,
|
|
91
94
|
queueExplicitCaptureForReview,
|
|
92
95
|
validateExplicitCaptureInput
|
|
93
96
|
} from "./chunk-NS5ETDYD.js";
|
|
94
|
-
import {
|
|
95
|
-
lcmEvidenceIdentity
|
|
96
|
-
} from "./chunk-C37ZRXX7.js";
|
|
97
97
|
import {
|
|
98
98
|
boundRecallContextComposition,
|
|
99
99
|
composeRecallContext,
|
|
@@ -106,11 +106,11 @@ import {
|
|
|
106
106
|
listMemoryGovernanceRuns,
|
|
107
107
|
readMemoryGovernanceRunArtifact,
|
|
108
108
|
runMemoryGovernance
|
|
109
|
-
} from "./chunk-
|
|
109
|
+
} from "./chunk-6NMZXEJ7.js";
|
|
110
110
|
import {
|
|
111
111
|
CorpusWatermarkCache,
|
|
112
112
|
computeServiceCorpusCensus
|
|
113
|
-
} from "./chunk-
|
|
113
|
+
} from "./chunk-SYU5JOBQ.js";
|
|
114
114
|
import {
|
|
115
115
|
CrossNamespaceBudget,
|
|
116
116
|
toBudgetWarning
|
|
@@ -134,17 +134,17 @@ import {
|
|
|
134
134
|
enqueuePassiveCorrectionNotification,
|
|
135
135
|
parseBriefingFocus,
|
|
136
136
|
parseBriefingWindow
|
|
137
|
-
} from "./chunk-
|
|
137
|
+
} from "./chunk-FEP45MYY.js";
|
|
138
138
|
import {
|
|
139
139
|
parseEntityFile,
|
|
140
140
|
parseFrontmatter,
|
|
141
141
|
qmdCollectionPathParts,
|
|
142
142
|
qmdResultPathCandidates,
|
|
143
143
|
selfDeps
|
|
144
|
-
} from "./chunk-
|
|
144
|
+
} from "./chunk-5SZ6CLGJ.js";
|
|
145
145
|
import {
|
|
146
146
|
namespaceCollectionName
|
|
147
|
-
} from "./chunk-
|
|
147
|
+
} from "./chunk-E7MYSCSL.js";
|
|
148
148
|
import {
|
|
149
149
|
DEFAULT_RECALL_DISCLOSURE,
|
|
150
150
|
isRecallDisclosure
|
|
@@ -189,7 +189,7 @@ import {
|
|
|
189
189
|
} from "./chunk-JV3C2MNQ.js";
|
|
190
190
|
import {
|
|
191
191
|
exportCapsule
|
|
192
|
-
} from "./chunk-
|
|
192
|
+
} from "./chunk-5W7CTZ2E.js";
|
|
193
193
|
import {
|
|
194
194
|
evaluateActionConfidence
|
|
195
195
|
} from "./chunk-Z2YFLXHU.js";
|
|
@@ -17670,4 +17670,4 @@ export {
|
|
|
17670
17670
|
EngramAccessService,
|
|
17671
17671
|
AccessAdminOpsSurface
|
|
17672
17672
|
};
|
|
17673
|
-
//# sourceMappingURL=chunk-
|
|
17673
|
+
//# sourceMappingURL=chunk-MIM7QT6H.js.map
|