@remnic/core 9.65.8 → 9.66.0
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/dist/access-admin-ops-surface.d.ts +11 -12
- package/dist/access-admin-ops-surface.js +49 -46
- package/dist/access-authorization-probe.d.ts +11 -12
- package/dist/access-authorization-probe.js +50 -47
- package/dist/access-boundary.d.ts +11 -12
- package/dist/access-boundary.js +49 -46
- package/dist/access-citation-namespace.js +3 -3
- package/dist/access-cli.js +111 -106
- package/dist/access-cli.js.map +1 -1
- package/dist/access-coding-context-resolution.d.ts +1 -2
- package/dist/access-coding-context-resolution.js +2 -2
- package/dist/access-extraction-force-flush.d.ts +11 -12
- package/dist/access-extraction-force-flush.js +49 -46
- package/dist/access-health-types.d.ts +1 -2
- package/dist/access-http-lcm-compaction.d.ts +11 -12
- package/dist/access-http-lifecycle-flush.d.ts +11 -12
- package/dist/access-http-offline-stream.d.ts +11 -12
- package/dist/access-http-query.d.ts +2 -3
- package/dist/access-http-query.js +51 -48
- package/dist/access-http.d.ts +12 -13
- package/dist/access-http.js +68 -65
- package/dist/access-identity-continuity-surface.d.ts +9 -10
- package/dist/access-identity-continuity-surface.js +49 -46
- package/dist/access-lcm-surface.d.ts +11 -12
- package/dist/access-lcm-surface.js +49 -46
- package/dist/access-mcp-output-schemas.js +1 -1
- package/dist/access-mcp.d.ts +11 -12
- package/dist/access-mcp.js +62 -59
- package/dist/access-memory-search-fanout.d.ts +2 -3
- package/dist/{access-namespace-preflight-CpAOrS-9.d.ts → access-namespace-preflight-CLWUoMyW.d.ts} +1 -1
- package/dist/access-namespace-preflight.d.ts +3 -4
- package/dist/access-namespace-preflight.js +49 -46
- package/dist/access-observe-write-surface.d.ts +11 -12
- package/dist/access-observe-write-surface.js +49 -46
- package/dist/access-offline-manifest.d.ts +9 -10
- package/dist/access-offline-manifest.js +15 -15
- package/dist/access-operations-batch.js +54 -51
- package/dist/access-operations.d.ts +17 -18
- package/dist/access-operations.js +59 -56
- package/dist/access-recall-concurrency.d.ts +11 -12
- package/dist/access-recall-concurrency.js +49 -46
- package/dist/access-recall-response.d.ts +11 -12
- package/dist/access-recall-response.js +49 -46
- package/dist/access-recall-surface.d.ts +11 -12
- package/dist/access-recall-surface.js +49 -46
- package/dist/access-schema.d.ts +83 -83
- package/dist/access-schema.js +7 -7
- package/dist/{access-service-Diu61Cfv.d.ts → access-service-CEUE1Isj.d.ts} +66 -66
- package/dist/access-service-helpers.d.ts +11 -12
- package/dist/access-service.d.ts +11 -12
- package/dist/access-service.js +49 -46
- package/dist/access-surface-catalog.d.ts +11 -12
- package/dist/access-surface-catalog.js +53 -48
- package/dist/access-surface-catalog.js.map +1 -1
- package/dist/access-wearables-meetings-surface.d.ts +3 -4
- package/dist/action-confidence.d.ts +1 -2
- package/dist/active-memory-bridge.d.ts +1 -2
- package/dist/active-memory-bridge.js +2 -2
- package/dist/active-recall.d.ts +1 -2
- package/dist/active-recall.js +11 -11
- package/dist/ambient-provenance.d.ts +1 -2
- package/dist/artifact-search.d.ts +1 -2
- package/dist/{auto-sync-2YPITIWN.js → auto-sync-Q6Q2FVSC.js} +9 -9
- package/dist/behavior-learner.d.ts +1 -2
- package/dist/behavior-signals.d.ts +1 -2
- package/dist/bootstrap.d.ts +9 -10
- package/dist/briefing-window.d.ts +2 -3
- package/dist/briefing.d.ts +2 -3
- package/dist/briefing.js +23 -23
- package/dist/buffer-surprise-report.d.ts +1 -2
- package/dist/buffer-turn-helpers.d.ts +1 -2
- package/dist/buffer.d.ts +2 -3
- package/dist/buffer.js +20 -4
- package/dist/bulk-import/index.d.ts +3 -4
- package/dist/calibration.d.ts +1 -2
- package/dist/calibration.js +1 -1
- package/dist/capabilities.d.ts +1 -2
- package/dist/{capsule-merge-SGIVB3WA.js → capsule-merge-SEHERWWP.js} +4 -4
- package/dist/{catalog-9f-vEQLS.d.ts → catalog-D1HgugTA.d.ts} +1 -1
- package/dist/causal-behavior.d.ts +1 -2
- package/dist/causal-consolidation.d.ts +1 -2
- package/dist/causal-consolidation.js +24 -24
- package/dist/causal-trajectory-graph.d.ts +1 -2
- package/dist/{chunk-LEPOP46W.js → chunk-227UFSEQ.js} +4 -4
- package/dist/{chunk-NPFUNWNX.js → chunk-23CVL7HS.js} +2 -2
- package/dist/{chunk-PO7NXBG2.js → chunk-2GF27PGH.js} +5 -5
- package/dist/{chunk-MY2BC6UE.js → chunk-2LBAFHOQ.js} +11 -11
- package/dist/{chunk-AZMLH5UT.js → chunk-33MFRY25.js} +2 -2
- package/dist/{chunk-UEBDCMOO.js → chunk-3TSU662L.js} +3 -3
- package/dist/{chunk-CAMNRAJF.js → chunk-4FHRZD5T.js} +2 -2
- package/dist/{chunk-FP7YTTVO.js → chunk-4OFKZAJG.js} +2 -1
- package/dist/chunk-4OFKZAJG.js.map +1 -0
- package/dist/{chunk-S5XOSTYM.js → chunk-4STAANV7.js} +3 -3
- package/dist/{chunk-LKYIOCWL.js → chunk-56IV4J5W.js} +546 -96
- package/dist/chunk-56IV4J5W.js.map +1 -0
- package/dist/{chunk-4F4AQFWL.js → chunk-6CEGSTBD.js} +10 -10
- package/dist/{chunk-JYSN42VN.js → chunk-6QDXA26G.js} +235 -181
- package/dist/chunk-6QDXA26G.js.map +1 -0
- package/dist/{chunk-MDD2RINF.js → chunk-6RUHELWR.js} +3 -3
- package/dist/{chunk-WNXYT4MK.js → chunk-72OIT7KS.js} +4 -4
- package/dist/{chunk-KQAFEZQX.js → chunk-7LCGFUMB.js} +4 -4
- package/dist/{chunk-SNOIKAHM.js → chunk-7UTDHQZ5.js} +3 -3
- package/dist/{chunk-5HK3CJAR.js → chunk-7XOG75AU.js} +3 -3
- package/dist/{chunk-7BDZTALN.js → chunk-AJTG3CP7.js} +12 -2
- package/dist/chunk-AJTG3CP7.js.map +1 -0
- package/dist/{chunk-2LWQSV6A.js → chunk-AL3UYZ5N.js} +3 -2
- package/dist/chunk-AL3UYZ5N.js.map +1 -0
- package/dist/{chunk-UPFNQJC7.js → chunk-CN4VKV3S.js} +2 -2
- package/dist/{chunk-PMVPCZJZ.js → chunk-CTCGHNWN.js} +6 -6
- package/dist/{chunk-EGBDFJ36.js → chunk-DD5JFCWM.js} +2 -2
- package/dist/{chunk-XBGHAAKR.js → chunk-DDX6KIXF.js} +2 -2
- package/dist/{chunk-JIYDRBVZ.js → chunk-DJORULH3.js} +2 -2
- package/dist/{chunk-UENKPWCS.js → chunk-DMEHOEC7.js} +6 -6
- package/dist/{chunk-7KQB4EBS.js → chunk-DUAJKRR2.js} +2 -2
- package/dist/{chunk-XDL5CYZN.js → chunk-EEOUMG3J.js} +2 -1
- package/dist/{chunk-XDL5CYZN.js.map → chunk-EEOUMG3J.js.map} +1 -1
- package/dist/{chunk-SEEJOGQX.js → chunk-EFQCDJZ2.js} +4 -4
- package/dist/{chunk-Q57GOHLF.js → chunk-EGALNSZ4.js} +3 -3
- package/dist/{chunk-KCT36JAW.js → chunk-ESNFSSO4.js} +2 -2
- package/dist/{chunk-XQ3HXAQH.js → chunk-ET2CNMLD.js} +4 -4
- package/dist/{chunk-PU56CXZA.js → chunk-EZSCW4EM.js} +2 -2
- package/dist/{chunk-HMZKGHMD.js → chunk-FESUGFIL.js} +3 -3
- package/dist/{chunk-3A2NJP2U.js → chunk-FKKGCGYL.js} +3 -3
- package/dist/{chunk-BWGCOLEL.js → chunk-FTTJRVB7.js} +2 -2
- package/dist/{chunk-ODU2CNNX.js → chunk-FYWLSFFS.js} +2 -2
- package/dist/{chunk-W2BAGGEW.js → chunk-GEJKYA7D.js} +33 -24
- package/dist/{chunk-W2BAGGEW.js.map → chunk-GEJKYA7D.js.map} +1 -1
- package/dist/chunk-GSKINLAK.js +267 -0
- package/dist/chunk-GSKINLAK.js.map +1 -0
- package/dist/{chunk-3PKAS6VL.js → chunk-GX6FTSYH.js} +2 -2
- package/dist/{chunk-76DIF5KT.js → chunk-H7VDIF2V.js} +2 -2
- package/dist/{chunk-F7XUD3PL.js → chunk-HJXA6ZM7.js} +2 -2
- package/dist/{chunk-4QEYREAV.js → chunk-HNPE66LB.js} +2 -2
- package/dist/{chunk-P36Z4JRA.js → chunk-I5VB44ZK.js} +2 -2
- package/dist/{chunk-EUYWQ7TS.js → chunk-IEZ6CGTW.js} +2 -2
- package/dist/{chunk-OXRRJXPR.js → chunk-IHGMRDEE.js} +275 -1678
- package/dist/chunk-IHGMRDEE.js.map +1 -0
- package/dist/{chunk-5DHKCO52.js → chunk-IVIAHQBR.js} +2 -2
- package/dist/{chunk-TFR3HG4K.js → chunk-J3OND5QT.js} +4 -4
- package/dist/{chunk-UW5NPZJ2.js → chunk-JALOAKSZ.js} +59 -7
- package/dist/chunk-JALOAKSZ.js.map +1 -0
- package/dist/{chunk-5ACCD4L7.js → chunk-JRRQ747T.js} +7 -7
- package/dist/{chunk-V4IDF3EZ.js → chunk-JTWZKNUH.js} +5 -5
- package/dist/chunk-K66OY4EI.js +202 -0
- package/dist/chunk-K66OY4EI.js.map +1 -0
- package/dist/{chunk-XAB6STPO.js → chunk-KODXCHXJ.js} +17 -3
- package/dist/chunk-KODXCHXJ.js.map +1 -0
- package/dist/{chunk-KZIF6XHX.js → chunk-KXIXO76C.js} +28 -15
- package/dist/chunk-KXIXO76C.js.map +1 -0
- package/dist/{chunk-5RWZH6PH.js → chunk-L4X4PJYK.js} +2 -2
- package/dist/{chunk-UTQUEHC7.js → chunk-LUDBXTBJ.js} +8 -8
- package/dist/{chunk-XNWXSGHS.js → chunk-MAH64N55.js} +28 -10
- package/dist/chunk-MAH64N55.js.map +1 -0
- package/dist/{chunk-LDKPDODJ.js → chunk-ME35HVDJ.js} +2 -2
- package/dist/{chunk-DPCXDG7G.js → chunk-MJRGVXPQ.js} +2 -2
- package/dist/{chunk-773TRRGT.js → chunk-MJUCDM3C.js} +2 -2
- package/dist/{chunk-T6ILXUAH.js → chunk-MN5NOOI7.js} +2 -2
- package/dist/{chunk-AHPIFKNG.js → chunk-N4F7ZSSG.js} +2 -2
- package/dist/{chunk-JOZUBF4A.js → chunk-NACLNNFQ.js} +2 -2
- package/dist/{chunk-LC2BDILZ.js → chunk-NBP4EX5N.js} +2 -2
- package/dist/{chunk-ZVPVTPGI.js → chunk-NNZFPYYX.js} +4 -4
- package/dist/{chunk-DA7ITC5Z.js → chunk-O57GM3FR.js} +2 -2
- package/dist/{chunk-7VZFRUQU.js → chunk-O7ERGZDA.js} +5 -5
- package/dist/{chunk-3SZD4CYO.js → chunk-OAJMQKQR.js} +3 -3
- package/dist/{chunk-HSZMX3ZJ.js → chunk-ODW5GDFE.js} +2 -2
- package/dist/{chunk-7WOWGRAU.js → chunk-PEBH5DCK.js} +10 -7
- package/dist/{chunk-7WOWGRAU.js.map → chunk-PEBH5DCK.js.map} +1 -1
- package/dist/{chunk-J2WC5LF4.js → chunk-QBC33MPY.js} +2 -1
- package/dist/{chunk-T7XP6IZE.js → chunk-QCRJMU5V.js} +2 -2
- package/dist/chunk-QJCWK2A7.js +1466 -0
- package/dist/chunk-QJCWK2A7.js.map +1 -0
- package/dist/{chunk-YEUXERJ6.js → chunk-RDGKVH6T.js} +7 -3
- package/dist/{chunk-YEUXERJ6.js.map → chunk-RDGKVH6T.js.map} +1 -1
- package/dist/{chunk-OA2O2GJ4.js → chunk-RZ3IZIJG.js} +3 -3
- package/dist/{chunk-UL4MKZHI.js → chunk-SN4JXNLL.js} +2 -2
- package/dist/chunk-TB2MJRI6.js +866 -0
- package/dist/chunk-TB2MJRI6.js.map +1 -0
- package/dist/{chunk-7PHI6GUI.js → chunk-TEZ2HTC7.js} +42 -2
- package/dist/chunk-TEZ2HTC7.js.map +1 -0
- package/dist/{chunk-CPA5NBHN.js → chunk-TNGH4ZYI.js} +2 -2
- package/dist/{chunk-F3NVYTTA.js → chunk-TNXNECAN.js} +6 -6
- package/dist/{chunk-BEC4YBNA.js → chunk-TVW4C7PV.js} +2 -2
- package/dist/{chunk-UFKPQBXH.js → chunk-U62OK7BB.js} +2 -2
- package/dist/{chunk-AX7UXCHJ.js → chunk-UYA36DQ7.js} +2 -1
- package/dist/chunk-UYA36DQ7.js.map +1 -0
- package/dist/{chunk-DEACDKE3.js → chunk-VCKWULAK.js} +112 -87
- package/dist/chunk-VCKWULAK.js.map +1 -0
- package/dist/chunk-VOSWUO3K.js +100 -0
- package/dist/chunk-VOSWUO3K.js.map +1 -0
- package/dist/{chunk-TUHBYJXL.js → chunk-VQ4AMTGZ.js} +1 -1
- package/dist/{chunk-3BCULS4U.js → chunk-VQNRICAQ.js} +145 -507
- package/dist/chunk-VQNRICAQ.js.map +1 -0
- package/dist/{chunk-H2YSH3DG.js → chunk-WKAXBXVA.js} +2 -2
- package/dist/{chunk-HRHO3ZNG.js → chunk-WKJFIMVN.js} +2 -2
- package/dist/{chunk-SXIMQLGV.js → chunk-WVGXCBOC.js} +2 -2
- package/dist/{chunk-CRML27CO.js → chunk-X5YYSAZX.js} +4 -4
- package/dist/{chunk-FZEEWOI2.js → chunk-XJJYSX6F.js} +2 -2
- package/dist/{chunk-U7EW2W4W.js → chunk-XKNHFDTT.js} +26 -6
- package/dist/chunk-XKNHFDTT.js.map +1 -0
- package/dist/{chunk-UG6VXIOK.js → chunk-XSTNGNJP.js} +2 -2
- package/dist/{chunk-YDPAE2RD.js → chunk-YFLLGRXO.js} +2 -2
- package/dist/{chunk-LPNCR4QK.js → chunk-YXFCALVT.js} +12 -12
- package/dist/{chunk-Q4WONDMJ.js → chunk-YYGZJPOK.js} +2 -2
- package/dist/{chunk-GTO56JY5.js → chunk-ZJPM7GZ3.js} +2 -2
- package/dist/{chunk-LOXHYCVS.js → chunk-ZW4VXELZ.js} +2 -2
- package/dist/{cli-O3F-ht3i.d.ts → cli-BEkm2MEf.d.ts} +5 -5
- package/dist/cli.d.ts +13 -14
- package/dist/cli.js +90 -85
- package/dist/coding/export-okf-codegraph.d.ts +56 -0
- package/dist/coding/export-okf-codegraph.js +526 -0
- package/dist/coding/export-okf-codegraph.js.map +1 -0
- package/dist/coding/pre-action-gate.d.ts +1 -2
- package/dist/compounding/engine.d.ts +2 -3
- package/dist/compounding/engine.js +24 -24
- package/dist/compounding/preference-consolidator.d.ts +1 -2
- package/dist/compression-optimizer.d.ts +1 -2
- package/dist/config.d.ts +1 -2
- package/dist/config.js +11 -11
- package/dist/connectors/codex-materialize-runner.d.ts +1 -2
- package/dist/connectors/codex-materialize-runner.js +23 -23
- package/dist/connectors/codex-materialize.d.ts +1 -2
- package/dist/connectors/index.d.ts +1 -2
- package/dist/connectors/index.js +23 -23
- package/dist/consolidation-provenance-check.d.ts +2 -3
- package/dist/consolidation-provenance-check.js +4 -4
- package/dist/consolidation-undo.d.ts +2 -3
- package/dist/consolidation-undo.js +3 -3
- package/dist/contradiction/index.d.ts +3 -4
- package/dist/contradiction/index.js +9 -9
- package/dist/{contradiction-scan-AKUWPX5N.js → contradiction-scan-NOYMFG66.js} +3 -3
- package/dist/converge-config.d.ts +1 -2
- package/dist/convergence-refresh.d.ts +2 -3
- package/dist/convergence-refresh.js +25 -25
- package/dist/conversation-index/backend.d.ts +1 -2
- package/dist/conversation-index/backend.js +2 -2
- package/dist/conversation-index/chunker.d.ts +1 -2
- package/dist/conversation-index/faiss-adapter.d.ts +1 -2
- package/dist/conversation-index/indexer.d.ts +1 -2
- package/dist/conversation-index/search.d.ts +1 -2
- package/dist/corpus-watermark.d.ts +1 -2
- package/dist/corpus-watermark.js +25 -25
- package/dist/cross-lingual-recall.d.ts +1 -2
- package/dist/day-summary.d.ts +1 -2
- package/dist/delinearize.d.ts +1 -2
- package/dist/dependency-propagation-config.d.ts +1 -2
- package/dist/{dependency-propagation-delivery-CL6RWXTA.d.ts → dependency-propagation-delivery-BCpeo14F.d.ts} +1 -1
- package/dist/direct-answer-wiring.d.ts +1 -2
- package/dist/direct-answer.d.ts +1 -2
- package/dist/embedding-fallback.d.ts +1 -2
- package/dist/enrichment/index.d.ts +1 -2
- package/dist/entity-origin-fields.d.ts +1 -2
- package/dist/entity-retrieval.d.ts +2 -3
- package/dist/entity-retrieval.js +23 -23
- package/dist/entity-schema.d.ts +1 -2
- package/dist/episodic-context.d.ts +1 -2
- package/dist/eval-trajectory-contracts.d.ts +1 -2
- package/dist/eval-trajectory-store.d.ts +1 -2
- package/dist/eval-trajectory.d.ts +1 -2
- package/dist/explicit-capture.d.ts +9 -10
- package/dist/explicit-capture.js +11 -11
- package/dist/external-wiki-access.d.ts +11 -12
- package/dist/external-wiki-access.js +50 -47
- package/dist/external-wiki-collection-registration.d.ts +1 -2
- package/dist/external-wiki-collection.d.ts +1 -2
- package/dist/external-wiki-mcp-tools.d.ts +11 -12
- package/dist/extraction-error-classification.d.ts +1 -2
- package/dist/extraction-faithfulness.d.ts +1 -2
- package/dist/extraction-faithfulness.js +2 -2
- package/dist/extraction-judge-telemetry.d.ts +1 -2
- package/dist/extraction-judge-training.d.ts +1 -2
- package/dist/extraction-judge.d.ts +1 -2
- package/dist/extraction-judge.js +2 -2
- package/dist/extraction-liveness.d.ts +1 -2
- package/dist/extraction-normalization.d.ts +1 -2
- package/dist/extraction-prompt.d.ts +1 -2
- package/dist/extraction-source-grounding-rules.d.ts +1 -2
- package/dist/extraction-source-grounding.d.ts +1 -2
- package/dist/extraction.d.ts +1 -2
- package/dist/extraction.js +32 -29
- package/dist/fallback-llm.d.ts +7 -2
- package/dist/fallback-llm.js +1 -1
- package/dist/{first-start-migration-4NETATFF.js → first-start-migration-KHIMCBIC.js} +3 -3
- package/dist/graph-dashboard-diff.d.ts +1 -2
- package/dist/graph-dashboard-key.d.ts +1 -2
- package/dist/graph-dashboard-parser.d.ts +1 -2
- package/dist/graph-edge-reinforcement.d.ts +1 -2
- package/dist/graph-path-reconstruction.d.ts +1 -2
- package/dist/graph-path-scoring.d.ts +1 -2
- package/dist/graph-snapshot.d.ts +1 -2
- package/dist/graph.d.ts +1 -2
- package/dist/harmonic-retrieval.js +1 -1
- package/dist/importance.d.ts +1 -2
- package/dist/importers/index.d.ts +1 -2
- package/dist/in-flight-reads.d.ts +1 -2
- package/dist/{index-C7Xep6S9.d.ts → index-D_pyMUaP.d.ts} +2 -2
- package/dist/index.d.ts +929 -700
- package/dist/index.js +167 -132
- package/dist/intent.d.ts +1 -2
- package/dist/lcm/engine.d.ts +1 -2
- package/dist/lcm/index.d.ts +1 -2
- package/dist/lcm/tools.d.ts +1 -2
- package/dist/lifecycle.d.ts +1 -2
- package/dist/live-connectors-runner.d.ts +1 -2
- package/dist/local-llm.d.ts +1 -2
- package/dist/local-model-endpoint.d.ts +1 -2
- package/dist/location/index.d.ts +315 -6
- package/dist/location/index.js +151 -19
- package/dist/maintenance/memory-governance.d.ts +1 -2
- package/dist/maintenance/memory-governance.js +23 -23
- package/dist/maintenance/rebuild-memory-lifecycle-ledger.d.ts +2 -3
- package/dist/maintenance/rebuild-memory-lifecycle-ledger.js +23 -23
- package/dist/maintenance/rebuild-memory-projection.d.ts +2 -3
- package/dist/maintenance/rebuild-memory-projection.js +24 -24
- package/dist/{maintenance-CJ-xqFp0.d.ts → maintenance-DDUX9d6D.d.ts} +3 -3
- package/dist/mcp-memory-inspector-app.d.ts +11 -12
- package/dist/mcp-read-only-tools.js +1 -1
- package/dist/memory-action-policy.d.ts +1 -2
- package/dist/memory-cache.d.ts +1 -2
- package/dist/memory-controller.d.ts +1 -2
- package/dist/memory-lifecycle-ledger-utils.d.ts +1 -2
- package/dist/memory-projection-mutations.js +3 -3
- package/dist/memory-projection-store.d.ts +1 -2
- package/dist/memory-projection-store.js +1 -1
- package/dist/memory-provenance.d.ts +1 -2
- package/dist/memory-snapshot.d.ts +1 -2
- package/dist/memory-subject-cli.d.ts +11 -12
- package/dist/memory-subject.d.ts +11 -12
- package/dist/memory-subject.js +4 -4
- package/dist/memory-worth-outcomes.d.ts +2 -3
- package/dist/models-json.d.ts +1 -2
- package/dist/namespaces/migrate.d.ts +3 -4
- package/dist/namespaces/migrate.js +24 -24
- package/dist/namespaces/principal.d.ts +1 -2
- package/dist/namespaces/search.d.ts +1 -2
- package/dist/namespaces/search.js +5 -5
- package/dist/namespaces/storage.d.ts +3 -4
- package/dist/namespaces/storage.js +23 -23
- package/dist/native-knowledge.d.ts +1 -2
- package/dist/offline-sync-file-io.js +3 -3
- package/dist/offline-sync-impression-drain.d.ts +1 -2
- package/dist/offline-sync-impression-drain.js +9 -9
- package/dist/offline-sync.js +4 -4
- package/dist/operator-doctor-corpus.d.ts +1 -2
- package/dist/operator-doctor-corpus.js +26 -26
- package/dist/operator-doctor-replica.d.ts +1 -2
- package/dist/operator-toolkit.d.ts +3 -4
- package/dist/operator-toolkit.js +42 -42
- package/dist/orchestration/compression-guideline-coordinator.d.ts +2 -3
- package/dist/orchestration/maintenance.d.ts +4 -5
- package/dist/orchestration/maintenance.js +37 -36
- package/dist/{orchestrator-BsntWxLy.d.ts → orchestrator-3F4jihCo.d.ts} +8 -8
- package/dist/orchestrator.d.ts +9 -10
- package/dist/orchestrator.js +111 -106
- package/dist/page-versioning.js +3 -3
- package/dist/patterns-cli.d.ts +1 -2
- package/dist/{pipeline-CVoysPm2.d.ts → pipeline-CB1dj6Uh.d.ts} +1 -1
- package/dist/policy-runtime.d.ts +1 -2
- package/dist/proactive-contention.d.ts +1 -2
- package/dist/provenance.d.ts +1 -2
- package/dist/{public-http-CuOxlTC2.d.ts → public-http-34-JIAGQ.d.ts} +1 -1
- package/dist/{purge-GB7PZHT2.js → purge-OP6BEDFY.js} +2 -2
- package/dist/{qmd-DWMAGA5l.d.ts → qmd-edLLZXc5.d.ts} +1 -1
- package/dist/qmd-preflight.d.ts +2 -3
- package/dist/qmd-recall-cache.d.ts +1 -2
- package/dist/qmd.d.ts +2 -3
- package/dist/recall-concurrency-config.d.ts +1 -2
- package/dist/recall-disclosure-escalation.d.ts +1 -2
- package/dist/recall-explain-renderer.d.ts +1 -2
- package/dist/recall-memory-map.d.ts +1 -2
- package/dist/recall-planner-llm.d.ts +1 -2
- package/dist/recall-planner-llm.js +1 -1
- package/dist/recall-state.d.ts +1 -2
- package/dist/recall-tag-filter.d.ts +1 -2
- package/dist/recall-timings.d.ts +1 -2
- package/dist/recall-xray-cli.d.ts +1 -2
- package/dist/recall-xray-renderer.d.ts +1 -2
- package/dist/recall-xray.d.ts +1 -2
- package/dist/reconcile/cursor.d.ts +1 -2
- package/dist/reconcile/manifest.d.ts +1 -2
- package/dist/reconcile/manifest.js +4 -4
- package/dist/reconcile/plan.d.ts +1 -2
- package/dist/replay/normalizers/chatgpt.d.ts +1 -2
- package/dist/replay/normalizers/claude.d.ts +1 -2
- package/dist/replay/normalizers/openclaw.d.ts +1 -2
- package/dist/replay/normalizers/shared.d.ts +1 -2
- package/dist/replay/runner.d.ts +1 -2
- package/dist/replay/types.d.ts +1 -2
- package/dist/replica-divergence.d.ts +1 -2
- package/dist/replica-peers-config.d.ts +1 -2
- package/dist/{resolution-XWBPKYFB.js → resolution-4DLI3IOR.js} +10 -10
- package/dist/resolve-auth-token.d.ts +1 -2
- package/dist/resume-bundles.js +12 -12
- package/dist/retrieval-agents.d.ts +2 -3
- package/dist/retrieval-tiers.d.ts +1 -2
- package/dist/routing/engine.d.ts +1 -2
- package/dist/routing/store.d.ts +1 -2
- package/dist/salvage-envelope.d.ts +1 -2
- package/dist/salvage-envelope.js +6 -6
- package/dist/schemas.d.ts +639 -174
- package/dist/schemas.js +3 -1
- package/dist/{scope-profiles-CPWkW_dI.d.ts → scope-profiles-BF2lu81V.d.ts} +1 -1
- package/dist/search/document-scanner.js +1 -1
- package/dist/search/embed-helper.d.ts +1 -2
- package/dist/search/factory.d.ts +1 -2
- package/dist/search/factory.js +4 -4
- package/dist/search/index.d.ts +1 -2
- package/dist/search/index.js +4 -4
- package/dist/search/lancedb-backend.d.ts +1 -2
- package/dist/search/lancedb-backend.js +1 -1
- package/dist/search/meilisearch-backend.d.ts +1 -2
- package/dist/search/meilisearch-backend.js +1 -1
- package/dist/search/noop-backend.d.ts +1 -2
- package/dist/search/orama-backend.d.ts +1 -2
- package/dist/search/orama-backend.js +1 -1
- package/dist/search/port.d.ts +1 -2
- package/dist/search/remote-backend.d.ts +1 -2
- package/dist/secure-store/index.js +3 -3
- package/dist/{semantic-consolidation-CNFVBXFc.d.ts → semantic-consolidation-5OuWXBRt.d.ts} +1 -1
- package/dist/semantic-consolidation.d.ts +2 -3
- package/dist/semantic-consolidation.js +24 -24
- package/dist/semantic-rule-promotion.js +23 -23
- package/dist/semantic-rule-verifier.d.ts +1 -2
- package/dist/semantic-rule-verifier.js +23 -23
- package/dist/{service-Bb-JIdQ0.d.ts → service-CrqEhLXD.d.ts} +2 -2
- package/dist/session-observer-bands.d.ts +1 -2
- package/dist/session-observer-state.d.ts +1 -2
- package/dist/shared-context/manager.d.ts +7 -8
- package/dist/signal.d.ts +1 -2
- package/dist/source-agent-qualifier.d.ts +1 -2
- package/dist/source-agent-qualifier.js +30 -27
- package/dist/standup/build.d.ts +16 -0
- package/dist/standup/build.js +17 -0
- package/dist/standup/build.js.map +1 -0
- package/dist/{storage-CukrlNKk.d.ts → storage-BQn-xnxm.d.ts} +1 -1
- package/dist/storage.d.ts +2 -3
- package/dist/storage.js +22 -22
- package/dist/subject-config.d.ts +1 -2
- package/dist/subject-config.js +5 -5
- package/dist/summarizer.d.ts +1 -2
- package/dist/summarizer.js +2 -2
- package/dist/summary-snapshot.d.ts +1 -2
- package/dist/support-passport/index.d.ts +16 -17
- package/dist/support-passport/index.js +52 -49
- package/dist/temporal-supersession.d.ts +2 -3
- package/dist/temporal-timeline-recall.d.ts +1 -2
- package/dist/temporal-validity.d.ts +1 -2
- package/dist/threading.d.ts +1 -2
- package/dist/tier-migration.d.ts +2 -3
- package/dist/tier-routing.d.ts +1 -2
- package/dist/tier-routing.js +2 -2
- package/dist/{tier-stats-4B5IJ3NE.js → tier-stats-2TOW3QNL.js} +3 -3
- package/dist/topics.d.ts +1 -2
- package/dist/transcript.d.ts +1 -2
- package/dist/transfer/capsule-export.js +2 -2
- package/dist/transfer/capsule-import.js +5 -5
- package/dist/transfer/export-okf.d.ts +39 -0
- package/dist/transfer/export-okf.js +112 -0
- package/dist/transfer/export-okf.js.map +1 -0
- package/dist/transfer/types.d.ts +78 -78
- package/dist/trust-score-stage.d.ts +1 -2
- package/dist/trust-score.d.ts +1 -2
- package/dist/{types-djxQlxJ7.d.ts → types-BRpcNjHZ.d.ts} +117 -2
- package/dist/types.d.ts +1 -2
- package/dist/utility-runtime.d.ts +1 -2
- package/dist/verified-recall.js +23 -23
- package/dist/who-knows-cli.d.ts +11 -12
- package/dist/who-knows-cli.js +24 -24
- package/dist/who-knows.d.ts +11 -12
- package/dist/who-knows.js +23 -23
- package/dist/write-envelope.d.ts +1 -2
- package/dist/write-envelope.js +5 -5
- package/package.json +34 -3
- package/src/access-admin-ops-surface.ts +6 -1
- package/src/access-boundary.ts +1 -0
- package/src/access-http.ts +3 -1
- package/src/access-mcp-output-schemas.ts +1 -0
- package/src/access-mcp.ts +3 -3
- package/src/access-operations.ts +1 -0
- package/src/access-service-offline-file-content.test.ts +63 -0
- package/src/access-surface-catalog.ts +2 -0
- package/src/activity/config.test.ts +1 -0
- package/src/activity/config.ts +21 -1
- package/src/activity/index.ts +1 -0
- package/src/activity/timeline/build.ts +279 -0
- package/src/activity/timeline/categories.ts +111 -0
- package/src/activity/timeline/classify.ts +110 -0
- package/src/activity/timeline/corrections.ts +145 -0
- package/src/activity/timeline/index.ts +6 -0
- package/src/activity/timeline/timeline.test.ts +277 -0
- package/src/activity/timeline/types.ts +106 -0
- package/src/activity/types.ts +6 -0
- package/src/cli/okf-commands.ts +45 -0
- package/src/cli.ts +2 -2
- package/src/coding/export-okf-codegraph.test.ts +381 -0
- package/src/coding/export-okf-codegraph.ts +565 -0
- package/src/config.test.ts +1 -0
- package/src/extraction-prompt-safety.test.ts +14 -2
- package/src/extraction.ts +21 -1
- package/src/fallback-llm.test.ts +134 -0
- package/src/fallback-llm.ts +77 -5
- package/src/location/access-operations.ts +17 -8
- package/src/location/backfill.ts +137 -0
- package/src/location/config.test.ts +3 -0
- package/src/location/config.ts +46 -2
- package/src/location/http-glue.ts +1 -1
- package/src/location/index.ts +3 -0
- package/src/location/intervals.ts +1 -0
- package/src/location/matching.test.ts +65 -0
- package/src/location/matching.ts +354 -0
- package/src/location/mcp-tools.ts +2 -1
- package/src/location/surfaces.test.ts +15 -2
- package/src/location/surfaces.ts +95 -18
- package/src/location/tagging.test.ts +119 -0
- package/src/location/tagging.ts +277 -0
- package/src/location/types.ts +23 -1
- package/src/mcp-read-only-tools.ts +1 -0
- package/src/memory-projection-store.ts +3 -1
- package/src/okf/cli.ts +18 -5
- package/src/okf/config.ts +5 -0
- package/src/okf/index-files.test.ts +60 -0
- package/src/okf/index-files.ts +114 -0
- package/src/okf/render.ts +133 -0
- package/src/okf/type-mapping.test.ts +3 -0
- package/src/okf/type-mapping.ts +2 -0
- package/src/orchestration/extraction-run.ts +2 -1
- package/src/orchestration/generic-recall-paths.ts +4 -3
- package/src/schemas.ts +17 -1
- package/src/standup/access-operations.ts +14 -0
- package/src/standup/build.test.ts +34 -0
- package/src/standup/build.ts +115 -0
- package/src/standup/http-glue.ts +15 -0
- package/src/standup/mcp-tools.ts +16 -0
- package/src/support-passport/card-projection.ts +1 -0
- package/src/support-passport/card-service-commit-forwarding.test.ts +1 -0
- package/src/support-passport/card-service.test.ts +75 -1
- package/src/support-passport/card-service.ts +6 -3
- package/src/support-passport/card-state.ts +5 -1
- package/src/support-passport/offline-sync-guard.ts +14 -1
- package/src/transfer/export-okf.test.ts +164 -0
- package/src/transfer/export-okf.ts +286 -0
- package/dist/chunk-2LWQSV6A.js.map +0 -1
- package/dist/chunk-3BCULS4U.js.map +0 -1
- package/dist/chunk-7BDZTALN.js.map +0 -1
- package/dist/chunk-7PHI6GUI.js.map +0 -1
- package/dist/chunk-AX7UXCHJ.js.map +0 -1
- package/dist/chunk-DEACDKE3.js.map +0 -1
- package/dist/chunk-FP7YTTVO.js.map +0 -1
- package/dist/chunk-JYSN42VN.js.map +0 -1
- package/dist/chunk-KZIF6XHX.js.map +0 -1
- package/dist/chunk-LKYIOCWL.js.map +0 -1
- package/dist/chunk-OXRRJXPR.js.map +0 -1
- package/dist/chunk-U7EW2W4W.js.map +0 -1
- package/dist/chunk-UW5NPZJ2.js.map +0 -1
- package/dist/chunk-XAB6STPO.js.map +0 -1
- package/dist/chunk-XNWXSGHS.js.map +0 -1
- package/dist/types-CM86alG1.d.ts +0 -89
- /package/dist/{auto-sync-2YPITIWN.js.map → auto-sync-Q6Q2FVSC.js.map} +0 -0
- /package/dist/{capsule-merge-SGIVB3WA.js.map → capsule-merge-SEHERWWP.js.map} +0 -0
- /package/dist/{chunk-LEPOP46W.js.map → chunk-227UFSEQ.js.map} +0 -0
- /package/dist/{chunk-NPFUNWNX.js.map → chunk-23CVL7HS.js.map} +0 -0
- /package/dist/{chunk-PO7NXBG2.js.map → chunk-2GF27PGH.js.map} +0 -0
- /package/dist/{chunk-MY2BC6UE.js.map → chunk-2LBAFHOQ.js.map} +0 -0
- /package/dist/{chunk-AZMLH5UT.js.map → chunk-33MFRY25.js.map} +0 -0
- /package/dist/{chunk-UEBDCMOO.js.map → chunk-3TSU662L.js.map} +0 -0
- /package/dist/{chunk-CAMNRAJF.js.map → chunk-4FHRZD5T.js.map} +0 -0
- /package/dist/{chunk-S5XOSTYM.js.map → chunk-4STAANV7.js.map} +0 -0
- /package/dist/{chunk-4F4AQFWL.js.map → chunk-6CEGSTBD.js.map} +0 -0
- /package/dist/{chunk-MDD2RINF.js.map → chunk-6RUHELWR.js.map} +0 -0
- /package/dist/{chunk-WNXYT4MK.js.map → chunk-72OIT7KS.js.map} +0 -0
- /package/dist/{chunk-KQAFEZQX.js.map → chunk-7LCGFUMB.js.map} +0 -0
- /package/dist/{chunk-SNOIKAHM.js.map → chunk-7UTDHQZ5.js.map} +0 -0
- /package/dist/{chunk-5HK3CJAR.js.map → chunk-7XOG75AU.js.map} +0 -0
- /package/dist/{chunk-UPFNQJC7.js.map → chunk-CN4VKV3S.js.map} +0 -0
- /package/dist/{chunk-PMVPCZJZ.js.map → chunk-CTCGHNWN.js.map} +0 -0
- /package/dist/{chunk-EGBDFJ36.js.map → chunk-DD5JFCWM.js.map} +0 -0
- /package/dist/{chunk-XBGHAAKR.js.map → chunk-DDX6KIXF.js.map} +0 -0
- /package/dist/{chunk-JIYDRBVZ.js.map → chunk-DJORULH3.js.map} +0 -0
- /package/dist/{chunk-UENKPWCS.js.map → chunk-DMEHOEC7.js.map} +0 -0
- /package/dist/{chunk-7KQB4EBS.js.map → chunk-DUAJKRR2.js.map} +0 -0
- /package/dist/{chunk-SEEJOGQX.js.map → chunk-EFQCDJZ2.js.map} +0 -0
- /package/dist/{chunk-Q57GOHLF.js.map → chunk-EGALNSZ4.js.map} +0 -0
- /package/dist/{chunk-KCT36JAW.js.map → chunk-ESNFSSO4.js.map} +0 -0
- /package/dist/{chunk-XQ3HXAQH.js.map → chunk-ET2CNMLD.js.map} +0 -0
- /package/dist/{chunk-PU56CXZA.js.map → chunk-EZSCW4EM.js.map} +0 -0
- /package/dist/{chunk-HMZKGHMD.js.map → chunk-FESUGFIL.js.map} +0 -0
- /package/dist/{chunk-3A2NJP2U.js.map → chunk-FKKGCGYL.js.map} +0 -0
- /package/dist/{chunk-BWGCOLEL.js.map → chunk-FTTJRVB7.js.map} +0 -0
- /package/dist/{chunk-ODU2CNNX.js.map → chunk-FYWLSFFS.js.map} +0 -0
- /package/dist/{chunk-3PKAS6VL.js.map → chunk-GX6FTSYH.js.map} +0 -0
- /package/dist/{chunk-76DIF5KT.js.map → chunk-H7VDIF2V.js.map} +0 -0
- /package/dist/{chunk-F7XUD3PL.js.map → chunk-HJXA6ZM7.js.map} +0 -0
- /package/dist/{chunk-4QEYREAV.js.map → chunk-HNPE66LB.js.map} +0 -0
- /package/dist/{chunk-P36Z4JRA.js.map → chunk-I5VB44ZK.js.map} +0 -0
- /package/dist/{chunk-EUYWQ7TS.js.map → chunk-IEZ6CGTW.js.map} +0 -0
- /package/dist/{chunk-5DHKCO52.js.map → chunk-IVIAHQBR.js.map} +0 -0
- /package/dist/{chunk-TFR3HG4K.js.map → chunk-J3OND5QT.js.map} +0 -0
- /package/dist/{chunk-5ACCD4L7.js.map → chunk-JRRQ747T.js.map} +0 -0
- /package/dist/{chunk-V4IDF3EZ.js.map → chunk-JTWZKNUH.js.map} +0 -0
- /package/dist/{chunk-5RWZH6PH.js.map → chunk-L4X4PJYK.js.map} +0 -0
- /package/dist/{chunk-UTQUEHC7.js.map → chunk-LUDBXTBJ.js.map} +0 -0
- /package/dist/{chunk-LDKPDODJ.js.map → chunk-ME35HVDJ.js.map} +0 -0
- /package/dist/{chunk-DPCXDG7G.js.map → chunk-MJRGVXPQ.js.map} +0 -0
- /package/dist/{chunk-773TRRGT.js.map → chunk-MJUCDM3C.js.map} +0 -0
- /package/dist/{chunk-T6ILXUAH.js.map → chunk-MN5NOOI7.js.map} +0 -0
- /package/dist/{chunk-AHPIFKNG.js.map → chunk-N4F7ZSSG.js.map} +0 -0
- /package/dist/{chunk-JOZUBF4A.js.map → chunk-NACLNNFQ.js.map} +0 -0
- /package/dist/{chunk-LC2BDILZ.js.map → chunk-NBP4EX5N.js.map} +0 -0
- /package/dist/{chunk-ZVPVTPGI.js.map → chunk-NNZFPYYX.js.map} +0 -0
- /package/dist/{chunk-DA7ITC5Z.js.map → chunk-O57GM3FR.js.map} +0 -0
- /package/dist/{chunk-7VZFRUQU.js.map → chunk-O7ERGZDA.js.map} +0 -0
- /package/dist/{chunk-3SZD4CYO.js.map → chunk-OAJMQKQR.js.map} +0 -0
- /package/dist/{chunk-HSZMX3ZJ.js.map → chunk-ODW5GDFE.js.map} +0 -0
- /package/dist/{chunk-J2WC5LF4.js.map → chunk-QBC33MPY.js.map} +0 -0
- /package/dist/{chunk-T7XP6IZE.js.map → chunk-QCRJMU5V.js.map} +0 -0
- /package/dist/{chunk-OA2O2GJ4.js.map → chunk-RZ3IZIJG.js.map} +0 -0
- /package/dist/{chunk-UL4MKZHI.js.map → chunk-SN4JXNLL.js.map} +0 -0
- /package/dist/{chunk-CPA5NBHN.js.map → chunk-TNGH4ZYI.js.map} +0 -0
- /package/dist/{chunk-F3NVYTTA.js.map → chunk-TNXNECAN.js.map} +0 -0
- /package/dist/{chunk-BEC4YBNA.js.map → chunk-TVW4C7PV.js.map} +0 -0
- /package/dist/{chunk-UFKPQBXH.js.map → chunk-U62OK7BB.js.map} +0 -0
- /package/dist/{chunk-TUHBYJXL.js.map → chunk-VQ4AMTGZ.js.map} +0 -0
- /package/dist/{chunk-H2YSH3DG.js.map → chunk-WKAXBXVA.js.map} +0 -0
- /package/dist/{chunk-HRHO3ZNG.js.map → chunk-WKJFIMVN.js.map} +0 -0
- /package/dist/{chunk-SXIMQLGV.js.map → chunk-WVGXCBOC.js.map} +0 -0
- /package/dist/{chunk-CRML27CO.js.map → chunk-X5YYSAZX.js.map} +0 -0
- /package/dist/{chunk-FZEEWOI2.js.map → chunk-XJJYSX6F.js.map} +0 -0
- /package/dist/{chunk-UG6VXIOK.js.map → chunk-XSTNGNJP.js.map} +0 -0
- /package/dist/{chunk-YDPAE2RD.js.map → chunk-YFLLGRXO.js.map} +0 -0
- /package/dist/{chunk-LPNCR4QK.js.map → chunk-YXFCALVT.js.map} +0 -0
- /package/dist/{chunk-Q4WONDMJ.js.map → chunk-YYGZJPOK.js.map} +0 -0
- /package/dist/{chunk-GTO56JY5.js.map → chunk-ZJPM7GZ3.js.map} +0 -0
- /package/dist/{chunk-LOXHYCVS.js.map → chunk-ZW4VXELZ.js.map} +0 -0
- /package/dist/{contradiction-scan-AKUWPX5N.js.map → contradiction-scan-NOYMFG66.js.map} +0 -0
- /package/dist/{first-start-migration-4NETATFF.js.map → first-start-migration-KHIMCBIC.js.map} +0 -0
- /package/dist/{purge-GB7PZHT2.js.map → purge-OP6BEDFY.js.map} +0 -0
- /package/dist/{resolution-XWBPKYFB.js.map → resolution-4DLI3IOR.js.map} +0 -0
- /package/dist/{tier-stats-4B5IJ3NE.js.map → tier-stats-2TOW3QNL.js.map} +0 -0
|
@@ -6,14 +6,14 @@ import {
|
|
|
6
6
|
loadSyncState,
|
|
7
7
|
syncWearableSource,
|
|
8
8
|
wearableSourceLabel
|
|
9
|
-
} from "./chunk-
|
|
9
|
+
} from "./chunk-3TSU662L.js";
|
|
10
10
|
import {
|
|
11
11
|
CompressionGuidelineCoordinator
|
|
12
12
|
} from "./chunk-UXREWVW4.js";
|
|
13
13
|
import {
|
|
14
14
|
ActivityStore,
|
|
15
15
|
MaintenanceScheduler
|
|
16
|
-
} from "./chunk-
|
|
16
|
+
} from "./chunk-YXFCALVT.js";
|
|
17
17
|
import {
|
|
18
18
|
runPeerProfileReasoner
|
|
19
19
|
} from "./chunk-I74SUMNI.js";
|
|
@@ -32,7 +32,7 @@ import {
|
|
|
32
32
|
import {
|
|
33
33
|
CompoundingEngine,
|
|
34
34
|
defaultTierMigrationCycleBudget
|
|
35
|
-
} from "./chunk-
|
|
35
|
+
} from "./chunk-OAJMQKQR.js";
|
|
36
36
|
import {
|
|
37
37
|
SharedContextManager
|
|
38
38
|
} from "./chunk-VI637ILW.js";
|
|
@@ -58,13 +58,13 @@ import {
|
|
|
58
58
|
} from "./chunk-YRFAYOFQ.js";
|
|
59
59
|
import {
|
|
60
60
|
decideTierTransition
|
|
61
|
-
} from "./chunk-
|
|
61
|
+
} from "./chunk-DD5JFCWM.js";
|
|
62
62
|
import {
|
|
63
63
|
TmtBuilder
|
|
64
64
|
} from "./chunk-ECZU5BJH.js";
|
|
65
65
|
import {
|
|
66
66
|
HourlySummarizer
|
|
67
|
-
} from "./chunk-
|
|
67
|
+
} from "./chunk-IEZ6CGTW.js";
|
|
68
68
|
import {
|
|
69
69
|
buildTargetedFactRecallSection,
|
|
70
70
|
shouldRecallTargetedFactEvidence
|
|
@@ -157,10 +157,10 @@ import {
|
|
|
157
157
|
} from "./chunk-OH7QLI6W.js";
|
|
158
158
|
import {
|
|
159
159
|
ExtractionEngine
|
|
160
|
-
} from "./chunk-
|
|
160
|
+
} from "./chunk-XKNHFDTT.js";
|
|
161
161
|
import {
|
|
162
162
|
parseMemoryActionEligibilityContext
|
|
163
|
-
} from "./chunk-
|
|
163
|
+
} from "./chunk-AJTG3CP7.js";
|
|
164
164
|
import {
|
|
165
165
|
ModelRegistry
|
|
166
166
|
} from "./chunk-WLZYGLJ4.js";
|
|
@@ -173,7 +173,7 @@ import {
|
|
|
173
173
|
getVerdictKind,
|
|
174
174
|
judgeFactDurability,
|
|
175
175
|
validateProcedureExtraction
|
|
176
|
-
} from "./chunk-
|
|
176
|
+
} from "./chunk-ODW5GDFE.js";
|
|
177
177
|
import {
|
|
178
178
|
buildEventOrderRecallSection
|
|
179
179
|
} from "./chunk-645WOU5I.js";
|
|
@@ -191,7 +191,7 @@ import {
|
|
|
191
191
|
buildEntityRecallSection,
|
|
192
192
|
entityRecentTranscriptLookbackHours,
|
|
193
193
|
readRecentEntityTranscriptEntries
|
|
194
|
-
} from "./chunk-
|
|
194
|
+
} from "./chunk-EZSCW4EM.js";
|
|
195
195
|
import {
|
|
196
196
|
planEpisodeWindowsWithFallback
|
|
197
197
|
} from "./chunk-T3GIETKV.js";
|
|
@@ -206,14 +206,14 @@ import {
|
|
|
206
206
|
} from "./chunk-LVXBC6YB.js";
|
|
207
207
|
import {
|
|
208
208
|
refreshConvergedNamespaces
|
|
209
|
-
} from "./chunk-
|
|
209
|
+
} from "./chunk-33MFRY25.js";
|
|
210
210
|
import {
|
|
211
211
|
builtInConnectorPackageSpecifier,
|
|
212
212
|
ensureBuiltInWearableConnectors,
|
|
213
213
|
getWearableConnector,
|
|
214
214
|
listWearableConnectors,
|
|
215
215
|
screenCandidateFact
|
|
216
|
-
} from "./chunk-
|
|
216
|
+
} from "./chunk-6QDXA26G.js";
|
|
217
217
|
import {
|
|
218
218
|
RoutingRulesStore
|
|
219
219
|
} from "./chunk-TBUEE7XF.js";
|
|
@@ -223,14 +223,14 @@ import {
|
|
|
223
223
|
import {
|
|
224
224
|
compareVerifiedEpisodeResults,
|
|
225
225
|
searchVerifiedEpisodes
|
|
226
|
-
} from "./chunk-
|
|
226
|
+
} from "./chunk-ZJPM7GZ3.js";
|
|
227
227
|
import {
|
|
228
228
|
ThreadingManager
|
|
229
229
|
} from "./chunk-OJP3N7UK.js";
|
|
230
230
|
import {
|
|
231
231
|
compareVerifiedSemanticRuleResults,
|
|
232
232
|
searchVerifiedSemanticRules
|
|
233
|
-
} from "./chunk-
|
|
233
|
+
} from "./chunk-I5VB44ZK.js";
|
|
234
234
|
import {
|
|
235
235
|
searchWorkProductLedgerEntries
|
|
236
236
|
} from "./chunk-NRLELHAY.js";
|
|
@@ -243,17 +243,17 @@ import {
|
|
|
243
243
|
import {
|
|
244
244
|
runNamespaceMaintenanceFanout,
|
|
245
245
|
summarizeNamespaceMaintenanceHealth
|
|
246
|
-
} from "./chunk-
|
|
246
|
+
} from "./chunk-2LBAFHOQ.js";
|
|
247
247
|
import {
|
|
248
248
|
planNamespaceMaintenance
|
|
249
|
-
} from "./chunk-
|
|
249
|
+
} from "./chunk-72OIT7KS.js";
|
|
250
250
|
import {
|
|
251
251
|
isAboveImportanceThreshold,
|
|
252
252
|
scoreImportance
|
|
253
253
|
} from "./chunk-UOBPK2OS.js";
|
|
254
254
|
import {
|
|
255
255
|
searchHarmonicRetrieval
|
|
256
|
-
} from "./chunk-
|
|
256
|
+
} from "./chunk-VQ4AMTGZ.js";
|
|
257
257
|
import {
|
|
258
258
|
EXTRACTION_JUDGE_VERDICT_CATEGORY,
|
|
259
259
|
recordJudgeVerdict
|
|
@@ -281,7 +281,7 @@ import {
|
|
|
281
281
|
materializeAfterSemanticConsolidation,
|
|
282
282
|
parseConsolidationResponse,
|
|
283
283
|
parseOperatorAwareConsolidationResponse
|
|
284
|
-
} from "./chunk-
|
|
284
|
+
} from "./chunk-CN4VKV3S.js";
|
|
285
285
|
import {
|
|
286
286
|
semanticChunkContent
|
|
287
287
|
} from "./chunk-2GBFKHBZ.js";
|
|
@@ -290,7 +290,7 @@ import {
|
|
|
290
290
|
} from "./chunk-6TBIWIAG.js";
|
|
291
291
|
import {
|
|
292
292
|
SmartBuffer
|
|
293
|
-
} from "./chunk-
|
|
293
|
+
} from "./chunk-NACLNNFQ.js";
|
|
294
294
|
import {
|
|
295
295
|
buildRecallQueryPolicy
|
|
296
296
|
} from "./chunk-C6WMSXCJ.js";
|
|
@@ -312,7 +312,7 @@ import {
|
|
|
312
312
|
} from "./chunk-MI2OTWV5.js";
|
|
313
313
|
import {
|
|
314
314
|
detectMeetings
|
|
315
|
-
} from "./chunk-
|
|
315
|
+
} from "./chunk-PEBH5DCK.js";
|
|
316
316
|
import {
|
|
317
317
|
compileCorrectionRule,
|
|
318
318
|
correctionsFilePath,
|
|
@@ -325,19 +325,14 @@ import {
|
|
|
325
325
|
} from "./chunk-QW27DOHG.js";
|
|
326
326
|
import {
|
|
327
327
|
MeetingsInputError
|
|
328
|
-
} from "./chunk-
|
|
328
|
+
} from "./chunk-KXIXO76C.js";
|
|
329
329
|
import {
|
|
330
330
|
WearablesInputError,
|
|
331
331
|
describeErrorForOperator
|
|
332
332
|
} from "./chunk-V7IZKJI3.js";
|
|
333
333
|
import {
|
|
334
334
|
NamespaceCatalog
|
|
335
|
-
} from "./chunk-
|
|
336
|
-
import {
|
|
337
|
-
activityDayWindow,
|
|
338
|
-
isValidActivityDate,
|
|
339
|
-
timezoneOffsetIso
|
|
340
|
-
} from "./chunk-M6L7HI7R.js";
|
|
335
|
+
} from "./chunk-GX6FTSYH.js";
|
|
341
336
|
import {
|
|
342
337
|
recordDreamsPhaseRun
|
|
343
338
|
} from "./chunk-EQWEIIKQ.js";
|
|
@@ -354,10 +349,10 @@ import {
|
|
|
354
349
|
filterRecallCandidates,
|
|
355
350
|
isGenericRecallExcludedPath,
|
|
356
351
|
isTopLevelArchivePath
|
|
357
|
-
} from "./chunk-
|
|
352
|
+
} from "./chunk-IHGMRDEE.js";
|
|
358
353
|
import {
|
|
359
354
|
importCapsule
|
|
360
|
-
} from "./chunk-
|
|
355
|
+
} from "./chunk-CTCGHNWN.js";
|
|
361
356
|
import {
|
|
362
357
|
isCodingGraphInstalled
|
|
363
358
|
} from "./chunk-VQ7B2Q6M.js";
|
|
@@ -397,7 +392,7 @@ import {
|
|
|
397
392
|
} from "./chunk-IVKIODHO.js";
|
|
398
393
|
import {
|
|
399
394
|
shouldSkipImplicitExtraction
|
|
400
|
-
} from "./chunk-
|
|
395
|
+
} from "./chunk-X5YYSAZX.js";
|
|
401
396
|
import {
|
|
402
397
|
boundRecallContextComposition,
|
|
403
398
|
composeRecallContext,
|
|
@@ -408,7 +403,7 @@ import {
|
|
|
408
403
|
} from "./chunk-7ZNJN5WZ.js";
|
|
409
404
|
import {
|
|
410
405
|
NamespaceStorageRouter
|
|
411
|
-
} from "./chunk-
|
|
406
|
+
} from "./chunk-HJXA6ZM7.js";
|
|
412
407
|
import {
|
|
413
408
|
GraphIndex
|
|
414
409
|
} from "./chunk-YMOPYG3K.js";
|
|
@@ -452,7 +447,7 @@ import {
|
|
|
452
447
|
throwIfRecallAborted,
|
|
453
448
|
tokenizeRecallQuery,
|
|
454
449
|
utcDateKeysForLocalDay
|
|
455
|
-
} from "./chunk-
|
|
450
|
+
} from "./chunk-RDGKVH6T.js";
|
|
456
451
|
import {
|
|
457
452
|
inferIntentFromText,
|
|
458
453
|
intentCompatibilityScore,
|
|
@@ -465,7 +460,7 @@ import {
|
|
|
465
460
|
} from "./chunk-TBBDFYXW.js";
|
|
466
461
|
import {
|
|
467
462
|
buildChainFollowupGenerator
|
|
468
|
-
} from "./chunk-
|
|
463
|
+
} from "./chunk-FESUGFIL.js";
|
|
469
464
|
import {
|
|
470
465
|
QmdResultResolver,
|
|
471
466
|
StorageManager,
|
|
@@ -484,7 +479,7 @@ import {
|
|
|
484
479
|
reconstructFusionInputs,
|
|
485
480
|
selfDeps,
|
|
486
481
|
serializeFusionDay
|
|
487
|
-
} from "./chunk-
|
|
482
|
+
} from "./chunk-GEJKYA7D.js";
|
|
488
483
|
import {
|
|
489
484
|
bodyIsEscaped,
|
|
490
485
|
decodeTranscriptBody,
|
|
@@ -501,12 +496,12 @@ import {
|
|
|
501
496
|
import {
|
|
502
497
|
NamespaceSearchRouter,
|
|
503
498
|
namespaceCollectionName
|
|
504
|
-
} from "./chunk-
|
|
499
|
+
} from "./chunk-FYWLSFFS.js";
|
|
505
500
|
import {
|
|
506
501
|
createConversationIndexRuntime,
|
|
507
502
|
createSearchBackend,
|
|
508
503
|
isSearchBackendEnabled
|
|
509
|
-
} from "./chunk-
|
|
504
|
+
} from "./chunk-HNPE66LB.js";
|
|
510
505
|
import {
|
|
511
506
|
NoopSearchBackend
|
|
512
507
|
} from "./chunk-CYEPCZN5.js";
|
|
@@ -529,15 +524,7 @@ import {
|
|
|
529
524
|
applyFaithfulnessVerdict,
|
|
530
525
|
createFaithfulnessCounters,
|
|
531
526
|
runFaithfulnessGateBatch
|
|
532
|
-
} from "./chunk-
|
|
533
|
-
import {
|
|
534
|
-
TAG_LIMITS,
|
|
535
|
-
composeMemoryEnvelope,
|
|
536
|
-
isMemoryCategory
|
|
537
|
-
} from "./chunk-H2YSH3DG.js";
|
|
538
|
-
import {
|
|
539
|
-
normalizeTags
|
|
540
|
-
} from "./chunk-BT7NVCML.js";
|
|
527
|
+
} from "./chunk-XSTNGNJP.js";
|
|
541
528
|
import {
|
|
542
529
|
checkCorpusReadAbort
|
|
543
530
|
} from "./chunk-5GINB5LC.js";
|
|
@@ -559,7 +546,7 @@ import {
|
|
|
559
546
|
requestEntityCanonicalIdReconcile,
|
|
560
547
|
requestEntityCanonicalIdReconcileSync,
|
|
561
548
|
withRawEntityPageMutation
|
|
562
|
-
} from "./chunk-
|
|
549
|
+
} from "./chunk-NNZFPYYX.js";
|
|
563
550
|
import {
|
|
564
551
|
applyTemporalSupersession,
|
|
565
552
|
applyTemporalSupersessionPrimaryMutation,
|
|
@@ -572,6 +559,14 @@ import {
|
|
|
572
559
|
isValidAsOf,
|
|
573
560
|
isValidityExpiredNow
|
|
574
561
|
} from "./chunk-6CIAGZ6X.js";
|
|
562
|
+
import {
|
|
563
|
+
TAG_LIMITS,
|
|
564
|
+
composeMemoryEnvelope,
|
|
565
|
+
isMemoryCategory
|
|
566
|
+
} from "./chunk-WKAXBXVA.js";
|
|
567
|
+
import {
|
|
568
|
+
normalizeTags
|
|
569
|
+
} from "./chunk-BT7NVCML.js";
|
|
575
570
|
import {
|
|
576
571
|
buildQmdRecallCacheKey,
|
|
577
572
|
getCachedQmdRecall,
|
|
@@ -581,7 +576,7 @@ import {
|
|
|
581
576
|
FallbackLlmClient,
|
|
582
577
|
fallbackLlmRuntimeContextFromConfig,
|
|
583
578
|
gatewayTaskChainOptions
|
|
584
|
-
} from "./chunk-
|
|
579
|
+
} from "./chunk-JALOAKSZ.js";
|
|
585
580
|
import {
|
|
586
581
|
estimateTokenCount
|
|
587
582
|
} from "./chunk-TOTT6S2V.js";
|
|
@@ -591,6 +586,11 @@ import {
|
|
|
591
586
|
import {
|
|
592
587
|
buildProcedurePersistBody
|
|
593
588
|
} from "./chunk-QDW3E4RD.js";
|
|
589
|
+
import {
|
|
590
|
+
activityDayWindow,
|
|
591
|
+
isValidActivityDate,
|
|
592
|
+
timezoneOffsetIso
|
|
593
|
+
} from "./chunk-M6L7HI7R.js";
|
|
594
594
|
import {
|
|
595
595
|
searchCausalTrajectories
|
|
596
596
|
} from "./chunk-GPFZFCRN.js";
|
|
@@ -598,7 +598,7 @@ import {
|
|
|
598
598
|
evaluateSubjectGuard,
|
|
599
599
|
isSharedPromotionTarget,
|
|
600
600
|
resolveWriteSubject
|
|
601
|
-
} from "./chunk-
|
|
601
|
+
} from "./chunk-ME35HVDJ.js";
|
|
602
602
|
import {
|
|
603
603
|
parseOriginClass
|
|
604
604
|
} from "./chunk-6Q3ZTEF6.js";
|
|
@@ -632,27 +632,30 @@ import {
|
|
|
632
632
|
getConfiguredNamespaces,
|
|
633
633
|
resolveNamespaceFromStorageDir,
|
|
634
634
|
resolveScopePlan
|
|
635
|
-
} from "./chunk-
|
|
635
|
+
} from "./chunk-EGALNSZ4.js";
|
|
636
636
|
import {
|
|
637
637
|
attachCitation,
|
|
638
638
|
hasCitationForTemplate,
|
|
639
639
|
stripCitationForTemplate
|
|
640
640
|
} from "./chunk-J6A3CX5N.js";
|
|
641
|
-
import {
|
|
642
|
-
assertPathInsideRoot
|
|
643
|
-
} from "./chunk-GCASGYIO.js";
|
|
644
641
|
import {
|
|
645
642
|
inferMemoryStatus,
|
|
646
643
|
isActiveMemoryStatus,
|
|
647
644
|
toMemoryPathRel
|
|
648
645
|
} from "./chunk-7RJUVTVF.js";
|
|
646
|
+
import {
|
|
647
|
+
openBetterSqlite3
|
|
648
|
+
} from "./chunk-RL6NEVXT.js";
|
|
649
|
+
import {
|
|
650
|
+
assertPathInsideRoot
|
|
651
|
+
} from "./chunk-GCASGYIO.js";
|
|
649
652
|
import {
|
|
650
653
|
excludeSupportPassportPrivateMemories,
|
|
651
654
|
isSupportPassportPrivateMemory
|
|
652
|
-
} from "./chunk-
|
|
655
|
+
} from "./chunk-EEOUMG3J.js";
|
|
653
656
|
import {
|
|
654
657
|
ContentHashIndex
|
|
655
|
-
} from "./chunk-
|
|
658
|
+
} from "./chunk-TVW4C7PV.js";
|
|
656
659
|
import {
|
|
657
660
|
normalizeAttributePairs,
|
|
658
661
|
stripAttributesSuffix
|
|
@@ -709,7 +712,7 @@ import {
|
|
|
709
712
|
import {
|
|
710
713
|
lcmSessionKeyForNamespace,
|
|
711
714
|
resolveCodingNamespaceOverlay
|
|
712
|
-
} from "./chunk-
|
|
715
|
+
} from "./chunk-QBC33MPY.js";
|
|
713
716
|
import {
|
|
714
717
|
expandTildePath
|
|
715
718
|
} from "./chunk-EYIEWJNI.js";
|
|
@@ -737,16 +740,16 @@ import {
|
|
|
737
740
|
} from "./chunk-FF4KLI5W.js";
|
|
738
741
|
import {
|
|
739
742
|
SecureStoreLockedError
|
|
740
|
-
} from "./chunk-
|
|
741
|
-
import {
|
|
742
|
-
isErrnoCode
|
|
743
|
-
} from "./chunk-5UZXUTVO.js";
|
|
743
|
+
} from "./chunk-ET2CNMLD.js";
|
|
744
744
|
import {
|
|
745
745
|
ALL_CATEGORY_DIRS,
|
|
746
746
|
ALL_CATEGORY_KEYS,
|
|
747
747
|
RECALL_FALLBACK_DIRS,
|
|
748
748
|
getCategoryDir
|
|
749
749
|
} from "./chunk-VS2IYZRU.js";
|
|
750
|
+
import {
|
|
751
|
+
isErrnoCode
|
|
752
|
+
} from "./chunk-5UZXUTVO.js";
|
|
750
753
|
import {
|
|
751
754
|
log
|
|
752
755
|
} from "./chunk-3WCASNQZ.js";
|
|
@@ -2303,7 +2306,7 @@ var RecallRerankCoordinator = class _RecallRerankCoordinator {
|
|
|
2303
2306
|
namespaces,
|
|
2304
2307
|
{
|
|
2305
2308
|
readNamespaceMemories: async (ns) => (await this.getStorage(ns)).readAllMemories(),
|
|
2306
|
-
readMemoryFrontmatter: async (
|
|
2309
|
+
readMemoryFrontmatter: async (path35, preferredNamespace) => {
|
|
2307
2310
|
if (!fallbackReader) {
|
|
2308
2311
|
for (const ns of namespaces) {
|
|
2309
2312
|
try {
|
|
@@ -2315,7 +2318,7 @@ var RecallRerankCoordinator = class _RecallRerankCoordinator {
|
|
|
2315
2318
|
}
|
|
2316
2319
|
if (!fallbackReader) return null;
|
|
2317
2320
|
const memory = await this.readQmdResultMemory(
|
|
2318
|
-
|
|
2321
|
+
path35,
|
|
2319
2322
|
fallbackReader,
|
|
2320
2323
|
namespaces,
|
|
2321
2324
|
preferredNamespace
|
|
@@ -15629,7 +15632,7 @@ var OrchestratorInitCoordinator = class {
|
|
|
15629
15632
|
if (signal.aborted) return;
|
|
15630
15633
|
if (lifecycleCaps.lifecyclePolicy && resolveQmdCapabilities(this.deps.config).qmdTierMigration) {
|
|
15631
15634
|
try {
|
|
15632
|
-
const { runFirstStartMigration } = await import("./first-start-migration-
|
|
15635
|
+
const { runFirstStartMigration } = await import("./first-start-migration-KHIMCBIC.js");
|
|
15633
15636
|
const result = await runFirstStartMigration({
|
|
15634
15637
|
storage: this.deps.storage,
|
|
15635
15638
|
config: this.deps.config,
|
|
@@ -15652,7 +15655,7 @@ var OrchestratorInitCoordinator = class {
|
|
|
15652
15655
|
if (signal.aborted) return;
|
|
15653
15656
|
if (!this.deps.wearablesAutoSyncHandle && this.deps.config.wearables.enabled && this.deps.config.wearables.autoSyncEnabled && Object.values(this.deps.config.wearables.sources).some((source) => source.enabled)) {
|
|
15654
15657
|
try {
|
|
15655
|
-
const { startWearablesAutoSync } = await import("./auto-sync-
|
|
15658
|
+
const { startWearablesAutoSync } = await import("./auto-sync-Q6Q2FVSC.js");
|
|
15656
15659
|
if (signal.aborted) return;
|
|
15657
15660
|
this.deps.wearablesAutoSyncHandle = startWearablesAutoSync(
|
|
15658
15661
|
{
|
|
@@ -22298,9 +22301,9 @@ function readStructuralSymbol(entry) {
|
|
|
22298
22301
|
const rec = entry;
|
|
22299
22302
|
const symbol = typeof rec.symbol === "string" ? rec.symbol.trim() : "";
|
|
22300
22303
|
if (!symbol) return null;
|
|
22301
|
-
const
|
|
22304
|
+
const path35 = typeof rec.path === "string" && rec.path.length > 0 ? rec.path : void 0;
|
|
22302
22305
|
const kind = typeof rec.kind === "string" && rec.kind.length > 0 ? rec.kind : void 0;
|
|
22303
|
-
const item =
|
|
22306
|
+
const item = path35 !== void 0 && kind !== void 0 ? { symbol, path: path35, kind } : path35 !== void 0 ? { symbol, path: path35 } : kind !== void 0 ? { symbol, kind } : { symbol };
|
|
22304
22307
|
return item;
|
|
22305
22308
|
}
|
|
22306
22309
|
function classifySpawnError(err) {
|
|
@@ -25864,6 +25867,438 @@ function publisherForConnector(connectorId) {
|
|
|
25864
25867
|
return publisherFor(hostIdForConnector(connectorId));
|
|
25865
25868
|
}
|
|
25866
25869
|
|
|
25870
|
+
// src/activity/timeline/categories.ts
|
|
25871
|
+
var TIMELINE_RESERVED_UNKNOWN = "system.unknown";
|
|
25872
|
+
var TIMELINE_RESERVED_IDLE = "system.idle";
|
|
25873
|
+
var TIMELINE_RESERVED_PAUSE = "system.pause";
|
|
25874
|
+
var COLOR_PATTERN = /^#[0-9a-fA-F]{6}$/;
|
|
25875
|
+
function isTimelineCategoryId(id) {
|
|
25876
|
+
const parts = id.split(".");
|
|
25877
|
+
if (parts.length === 0) return false;
|
|
25878
|
+
for (const part of parts) {
|
|
25879
|
+
if (part.length === 0) return false;
|
|
25880
|
+
const first = part.charCodeAt(0);
|
|
25881
|
+
if (first < 97 || first > 122) return false;
|
|
25882
|
+
for (let i = 1; i < part.length; i += 1) {
|
|
25883
|
+
const code = part.charCodeAt(i);
|
|
25884
|
+
const ok = code >= 97 && code <= 122 || code >= 48 && code <= 57 || code === 45;
|
|
25885
|
+
if (!ok) return false;
|
|
25886
|
+
}
|
|
25887
|
+
}
|
|
25888
|
+
return true;
|
|
25889
|
+
}
|
|
25890
|
+
var DEFAULT_TIMELINE_CATEGORIES = [
|
|
25891
|
+
{ id: "development", name: "Development", color: "#3b82f6", description: "Editors, terminals, IDEs, and code forges.", order: 10 },
|
|
25892
|
+
{ id: "communication", name: "Communication", color: "#f59e0b", description: "Mail, chat, and meetings.", order: 20 },
|
|
25893
|
+
{ id: "browsing", name: "Browsing", color: "#6366f1", description: "Web browsing without a more specific domain match.", order: 30 },
|
|
25894
|
+
{ id: "documents", name: "Documents", color: "#10b981", description: "Writing, notes, and PDFs.", order: 40 },
|
|
25895
|
+
{ id: "design", name: "Design & Media", color: "#ec4899", description: "Design, audio, and video tools.", order: 50 },
|
|
25896
|
+
{ id: "data", name: "Data & Analysis", color: "#84cc16", description: "Spreadsheets, dashboards, and databases.", order: 60 },
|
|
25897
|
+
{ id: "admin", name: "Admin", color: "#64748b", description: "File managers, settings, and system utilities.", order: 70 },
|
|
25898
|
+
{ id: "entertainment", name: "Entertainment", color: "#ef4444", description: "Video, music, and games.", order: 80 },
|
|
25899
|
+
{ id: TIMELINE_RESERVED_UNKNOWN, name: "Uncategorized", color: "#9ca3af", description: "Activity with no matching classification signal. Kept visible, never silently reassigned.", order: 990, system: true },
|
|
25900
|
+
{ id: TIMELINE_RESERVED_IDLE, name: "Idle", color: "#d1d5db", description: "Derived gap between cards where no activity was observed.", order: 991, system: true, idle: true },
|
|
25901
|
+
{ id: TIMELINE_RESERVED_PAUSE, name: "Paused", color: "#a78bfa", description: "User-declared pause interval.", order: 992, system: true }
|
|
25902
|
+
];
|
|
25903
|
+
function validateTimelineCategories(categories) {
|
|
25904
|
+
if (!Array.isArray(categories) || categories.length === 0) {
|
|
25905
|
+
throw new RangeError("timeline categories must be a non-empty array");
|
|
25906
|
+
}
|
|
25907
|
+
const seen = /* @__PURE__ */ new Set();
|
|
25908
|
+
for (const category of categories) {
|
|
25909
|
+
if (typeof category.id !== "string" || !isTimelineCategoryId(category.id)) {
|
|
25910
|
+
throw new RangeError(`timeline category id must be dotted kebab-case: ${String(category.id)}`);
|
|
25911
|
+
}
|
|
25912
|
+
if (seen.has(category.id)) {
|
|
25913
|
+
throw new RangeError(`timeline category id must be unique: ${category.id}`);
|
|
25914
|
+
}
|
|
25915
|
+
seen.add(category.id);
|
|
25916
|
+
if (typeof category.name !== "string" || category.name.length === 0) {
|
|
25917
|
+
throw new RangeError(`timeline category ${category.id}: name must be a non-empty string`);
|
|
25918
|
+
}
|
|
25919
|
+
if (typeof category.color !== "string" || !COLOR_PATTERN.test(category.color)) {
|
|
25920
|
+
throw new RangeError(`timeline category ${category.id}: color must be #RRGGBB`);
|
|
25921
|
+
}
|
|
25922
|
+
if (typeof category.description !== "string" || category.description.length === 0) {
|
|
25923
|
+
throw new RangeError(`timeline category ${category.id}: description must be a non-empty string`);
|
|
25924
|
+
}
|
|
25925
|
+
if (!Number.isInteger(category.order)) {
|
|
25926
|
+
throw new RangeError(`timeline category ${category.id}: order must be an integer`);
|
|
25927
|
+
}
|
|
25928
|
+
const isReserved = category.id === TIMELINE_RESERVED_UNKNOWN || category.id === TIMELINE_RESERVED_IDLE || category.id === TIMELINE_RESERVED_PAUSE;
|
|
25929
|
+
if (isReserved && category.system !== true) {
|
|
25930
|
+
throw new RangeError(`timeline category ${category.id} is reserved and must set system: true`);
|
|
25931
|
+
}
|
|
25932
|
+
if (!isReserved) {
|
|
25933
|
+
if (category.id.startsWith("system.")) {
|
|
25934
|
+
throw new RangeError(`timeline category id namespace "system." is reserved: ${category.id}`);
|
|
25935
|
+
}
|
|
25936
|
+
if (category.system === true || category.idle === true) {
|
|
25937
|
+
throw new RangeError(`timeline category ${category.id}: only reserved categories may set system/idle flags`);
|
|
25938
|
+
}
|
|
25939
|
+
}
|
|
25940
|
+
}
|
|
25941
|
+
const idle = categories.find((category) => category.id === TIMELINE_RESERVED_IDLE);
|
|
25942
|
+
if (idle !== void 0 && idle.idle !== true) {
|
|
25943
|
+
throw new RangeError(`timeline category ${TIMELINE_RESERVED_IDLE} must set idle: true`);
|
|
25944
|
+
}
|
|
25945
|
+
for (const reserved of [TIMELINE_RESERVED_UNKNOWN, TIMELINE_RESERVED_IDLE, TIMELINE_RESERVED_PAUSE]) {
|
|
25946
|
+
if (!categories.some((category) => category.id === reserved)) {
|
|
25947
|
+
throw new RangeError(`timeline categories must include the reserved "${reserved}" category`);
|
|
25948
|
+
}
|
|
25949
|
+
}
|
|
25950
|
+
}
|
|
25951
|
+
function sortTimelineCategories(categories) {
|
|
25952
|
+
return [...categories].sort((a, b) => a.order - b.order || (a.id < b.id ? -1 : a.id > b.id ? 1 : 0));
|
|
25953
|
+
}
|
|
25954
|
+
|
|
25955
|
+
// src/activity/timeline/classify.ts
|
|
25956
|
+
var DOMAIN_CONFIDENCE = 0.85;
|
|
25957
|
+
var APP_CONFIDENCE = 0.9;
|
|
25958
|
+
var TITLE_CONFIDENCE = 0.7;
|
|
25959
|
+
var UNKNOWN_CONFIDENCE = 0;
|
|
25960
|
+
var RULES = [
|
|
25961
|
+
{ categoryId: "development", domains: ["github.com", "gitlab.com", "stackoverflow.com", "linear.app", "atlassian.net"] },
|
|
25962
|
+
{ categoryId: "communication", domains: ["mail.google.com", "gmail.com", "outlook.com", "outlook.office.com", "slack.com"] },
|
|
25963
|
+
{ categoryId: "design", domains: ["figma.com", "canva.com"] },
|
|
25964
|
+
{ categoryId: "documents", domains: ["docs.google.com", "notion.so", "dropbox.com"] },
|
|
25965
|
+
{ categoryId: "entertainment", domains: ["youtube.com", "netflix.com", "spotify.com"] },
|
|
25966
|
+
{ categoryId: "data", domains: ["metabase", "tableau", "grafana"] },
|
|
25967
|
+
{ categoryId: "development", apps: ["code", "cursor", "neovim", "vim", "emacs", "xcode", "intellij", "terminal", "iterm", "warp", "wezterm", "kitty", "alacritty", "zed", "sublime", "datagrip"] },
|
|
25968
|
+
{ categoryId: "communication", apps: ["slack", "discord", "teams", "mail", "outlook", "thunderbird", "messages", "signal", "whatsapp", "telegram", "zoom", "facetime", "meet"] },
|
|
25969
|
+
{ categoryId: "design", apps: ["figma", "sketch", "photoshop", "illustrator", "indesign", "premiere", "after effects", "davinci", "blender", "ableton", "logic pro", "final cut"] },
|
|
25970
|
+
{ categoryId: "documents", apps: ["word", "pages", "notion", "obsidian", "notes", "typora", "bear", "preview", "acrobat"] },
|
|
25971
|
+
{ categoryId: "data", apps: ["excel", "numbers", "sheets", "tableau"] },
|
|
25972
|
+
{ categoryId: "admin", apps: ["finder", "settings", "system preferences", "activity monitor", "files", "explorer"] },
|
|
25973
|
+
{ categoryId: "entertainment", apps: ["spotify", "music", "youtube", "vlc", "quicktime", "steam", "netflix", "podcast", "tv"] },
|
|
25974
|
+
{ categoryId: "browsing", apps: ["chrome", "safari", "firefox", "edge", "arc", "brave", "browser"] },
|
|
25975
|
+
{ categoryId: "development", titles: ["pull request", "merge conflict", "terminal \u2014", "repository"] },
|
|
25976
|
+
{ categoryId: "communication", titles: ["inbox"] },
|
|
25977
|
+
{ categoryId: "data", titles: ["spreadsheet", "pivot table"] }
|
|
25978
|
+
];
|
|
25979
|
+
function classifyTimelineObservation(observation, categories) {
|
|
25980
|
+
const app = observation.app.toLowerCase();
|
|
25981
|
+
const title = observation.windowTitle.toLowerCase();
|
|
25982
|
+
const domain = observation.browserUrl === void 0 ? "" : hostOf(observation.browserUrl);
|
|
25983
|
+
for (const rule of RULES) {
|
|
25984
|
+
if (rule.domains !== void 0 && domain !== "" && rule.domains.some((pattern) => domain.includes(pattern))) {
|
|
25985
|
+
return checkedRule(rule, DOMAIN_CONFIDENCE, categories);
|
|
25986
|
+
}
|
|
25987
|
+
}
|
|
25988
|
+
for (const rule of RULES) {
|
|
25989
|
+
if (rule.apps !== void 0 && rule.apps.some((pattern) => app.includes(pattern))) {
|
|
25990
|
+
return checkedRule(rule, APP_CONFIDENCE, categories);
|
|
25991
|
+
}
|
|
25992
|
+
}
|
|
25993
|
+
for (const rule of RULES) {
|
|
25994
|
+
if (rule.titles !== void 0 && rule.titles.some((pattern) => title.includes(pattern))) {
|
|
25995
|
+
return checkedRule(rule, TITLE_CONFIDENCE, categories);
|
|
25996
|
+
}
|
|
25997
|
+
}
|
|
25998
|
+
return { categoryId: TIMELINE_RESERVED_UNKNOWN, confidence: UNKNOWN_CONFIDENCE };
|
|
25999
|
+
}
|
|
26000
|
+
function checkedRule(rule, confidence, categories) {
|
|
26001
|
+
if (!categories.some((category) => category.id === rule.categoryId)) {
|
|
26002
|
+
throw new RangeError(`timeline classification rule targets unknown category: ${rule.categoryId}`);
|
|
26003
|
+
}
|
|
26004
|
+
return { categoryId: rule.categoryId, confidence };
|
|
26005
|
+
}
|
|
26006
|
+
function hostOf(url) {
|
|
26007
|
+
try {
|
|
26008
|
+
return new URL(url).hostname.toLowerCase();
|
|
26009
|
+
} catch {
|
|
26010
|
+
return url.toLowerCase();
|
|
26011
|
+
}
|
|
26012
|
+
}
|
|
26013
|
+
|
|
26014
|
+
// src/activity/timeline/build.ts
|
|
26015
|
+
import { createHash as createHash9 } from "crypto";
|
|
26016
|
+
var TIMELINE_FORMAT_VERSION = 1;
|
|
26017
|
+
var TIMELINE_MERGE_GAP_MS = 12e4;
|
|
26018
|
+
var TIMELINE_MAX_DWELL_MS = 15 * 6e4;
|
|
26019
|
+
function canonicalMs(iso) {
|
|
26020
|
+
const parsed = Date.parse(iso);
|
|
26021
|
+
return Number.isFinite(parsed) ? parsed : Number.NaN;
|
|
26022
|
+
}
|
|
26023
|
+
function isoOf(ms) {
|
|
26024
|
+
return new Date(ms).toISOString();
|
|
26025
|
+
}
|
|
26026
|
+
function evidenceKeyOf(observation) {
|
|
26027
|
+
return `${observation.machine}|${isoOf(canonicalMs(observation.capturedAtUtc))}|${observation.contentHash}`;
|
|
26028
|
+
}
|
|
26029
|
+
function stableCardId(identity) {
|
|
26030
|
+
return `tlc_${createHash9("sha256").update(identity, "utf8").digest("hex").slice(0, 16)}`;
|
|
26031
|
+
}
|
|
26032
|
+
function formatDurationMinutes(ms) {
|
|
26033
|
+
return `${Math.round(ms / 6e4)}m`;
|
|
26034
|
+
}
|
|
26035
|
+
function unionIntervals(intervals) {
|
|
26036
|
+
const sorted = [...intervals].sort((a, b) => a[0] - b[0] || a[1] - b[1]);
|
|
26037
|
+
const merged = [];
|
|
26038
|
+
for (const interval of sorted) {
|
|
26039
|
+
const last = merged[merged.length - 1];
|
|
26040
|
+
if (last !== void 0 && interval[0] <= last[1]) {
|
|
26041
|
+
last[1] = Math.max(last[1], interval[1]);
|
|
26042
|
+
} else {
|
|
26043
|
+
merged.push([interval[0], interval[1]]);
|
|
26044
|
+
}
|
|
26045
|
+
}
|
|
26046
|
+
return merged;
|
|
26047
|
+
}
|
|
26048
|
+
function subtractInterval(start, end, cutStart, cutEnd) {
|
|
26049
|
+
if (cutEnd <= start || cutStart >= end) return [[start, end]];
|
|
26050
|
+
const pieces = [];
|
|
26051
|
+
if (cutStart > start) pieces.push([start, cutStart]);
|
|
26052
|
+
if (cutEnd < end) pieces.push([cutEnd, end]);
|
|
26053
|
+
return pieces;
|
|
26054
|
+
}
|
|
26055
|
+
function mergeTrack(machine, track, pauses) {
|
|
26056
|
+
const cards = [];
|
|
26057
|
+
let current = [];
|
|
26058
|
+
const pauseStartsAfter = (fromMs, toMs) => pauses.some(([ps, pe]) => ps >= fromMs && ps < toMs && pe > ps);
|
|
26059
|
+
for (const observation of track) {
|
|
26060
|
+
const last = current[current.length - 1];
|
|
26061
|
+
if (last !== void 0) {
|
|
26062
|
+
const gap = canonicalMs(observation.capturedAtUtc) - canonicalMs(last.capturedAtUtc);
|
|
26063
|
+
const sameKey = observation.app === last.app && observation.windowTitle === last.windowTitle;
|
|
26064
|
+
const pauseBetween = pauseStartsAfter(canonicalMs(last.capturedAtUtc), canonicalMs(observation.capturedAtUtc));
|
|
26065
|
+
if (!sameKey || gap > TIMELINE_MERGE_GAP_MS || pauseBetween) {
|
|
26066
|
+
cards.push({ machine, observations: current });
|
|
26067
|
+
current = [];
|
|
26068
|
+
}
|
|
26069
|
+
}
|
|
26070
|
+
current.push(observation);
|
|
26071
|
+
}
|
|
26072
|
+
if (current.length > 0) cards.push({ machine, observations: current });
|
|
26073
|
+
return cards;
|
|
26074
|
+
}
|
|
26075
|
+
function buildTimelineDay(input) {
|
|
26076
|
+
const categories = input.categories ?? DEFAULT_TIMELINE_CATEGORIES;
|
|
26077
|
+
validateTimelineCategories(categories);
|
|
26078
|
+
const window = activityDayWindow(input.date, input.timezone);
|
|
26079
|
+
const dayStartMs = Date.parse(window.startUtc);
|
|
26080
|
+
const dayEndMs = Date.parse(window.endUtc);
|
|
26081
|
+
const observations = input.observations.filter((observation) => Number.isFinite(canonicalMs(observation.capturedAtUtc))).filter((observation) => {
|
|
26082
|
+
const ms = canonicalMs(observation.capturedAtUtc);
|
|
26083
|
+
return ms >= dayStartMs && ms < dayEndMs;
|
|
26084
|
+
});
|
|
26085
|
+
for (const pause of input.pauses ?? []) {
|
|
26086
|
+
const startMs = canonicalMs(pause.startUtc);
|
|
26087
|
+
const endMs = canonicalMs(pause.endUtc);
|
|
26088
|
+
if (!Number.isFinite(startMs) || !Number.isFinite(endMs) || startMs >= endMs) {
|
|
26089
|
+
throw new RangeError("timeline pause must be a valid half-open [startUtc, endUtc) interval");
|
|
26090
|
+
}
|
|
26091
|
+
}
|
|
26092
|
+
const pauseIntervals = unionIntervals(
|
|
26093
|
+
(input.pauses ?? []).map((pause) => [canonicalMs(pause.startUtc), canonicalMs(pause.endUtc)]).map(([startMs, endMs]) => [Math.max(startMs, dayStartMs), Math.min(endMs, dayEndMs)]).filter(([startMs, endMs]) => endMs > startMs)
|
|
26094
|
+
);
|
|
26095
|
+
const tracks = /* @__PURE__ */ new Map();
|
|
26096
|
+
for (const observation of observations) {
|
|
26097
|
+
const track = tracks.get(observation.machine) ?? [];
|
|
26098
|
+
track.push(observation);
|
|
26099
|
+
tracks.set(observation.machine, track);
|
|
26100
|
+
}
|
|
26101
|
+
for (const track of tracks.values()) {
|
|
26102
|
+
track.sort(
|
|
26103
|
+
(a, b) => canonicalMs(a.capturedAtUtc) - canonicalMs(b.capturedAtUtc) || (a.contentHash < b.contentHash ? -1 : a.contentHash > b.contentHash ? 1 : 0)
|
|
26104
|
+
);
|
|
26105
|
+
}
|
|
26106
|
+
const cards = [];
|
|
26107
|
+
const machines = [...tracks.keys()].sort();
|
|
26108
|
+
for (const machine of machines) {
|
|
26109
|
+
const track = tracks.get(machine) ?? [];
|
|
26110
|
+
const merged = mergeTrack(machine, track, pauseIntervals);
|
|
26111
|
+
const trackIntervals = [];
|
|
26112
|
+
for (let index = 0; index < merged.length; index++) {
|
|
26113
|
+
const group = merged[index];
|
|
26114
|
+
const first = group.observations[0];
|
|
26115
|
+
const last = group.observations[group.observations.length - 1];
|
|
26116
|
+
const startMs = canonicalMs(first.capturedAtUtc);
|
|
26117
|
+
const lastMs = canonicalMs(last.capturedAtUtc);
|
|
26118
|
+
const nextObsMs = index + 1 < merged.length ? canonicalMs(merged[index + 1].observations[0].capturedAtUtc) : Number.POSITIVE_INFINITY;
|
|
26119
|
+
const pauseStartMs = pauseIntervals.find(([ps]) => ps > lastMs)?.[0] ?? Number.POSITIVE_INFINITY;
|
|
26120
|
+
const endMs = Math.max(lastMs, Math.min(lastMs + TIMELINE_MAX_DWELL_MS, nextObsMs, pauseStartMs, dayEndMs));
|
|
26121
|
+
trackIntervals.push([startMs, endMs]);
|
|
26122
|
+
const evidenceIds = group.observations.map((observation) => observation.id);
|
|
26123
|
+
const classification = classifyTimelineObservation(first, categories);
|
|
26124
|
+
cards.push({
|
|
26125
|
+
id: stableCardId(`activity|${machine}|${evidenceKeyOf(first)}|${evidenceKeyOf(last)}`),
|
|
26126
|
+
kind: "activity",
|
|
26127
|
+
title: first.windowTitle.length > 0 ? first.windowTitle : first.app,
|
|
26128
|
+
summary: `${first.app} \xB7 ${machine} \xB7 ${evidenceIds.length} obs \xB7 ${formatDurationMinutes(endMs - startMs)}`,
|
|
26129
|
+
categoryId: classification.categoryId,
|
|
26130
|
+
confidence: classification.confidence,
|
|
26131
|
+
startUtc: isoOf(startMs),
|
|
26132
|
+
endUtc: isoOf(endMs),
|
|
26133
|
+
dayKey: input.date,
|
|
26134
|
+
timezone: input.timezone,
|
|
26135
|
+
machine,
|
|
26136
|
+
evidenceIds,
|
|
26137
|
+
evidenceRange: { firstKey: evidenceKeyOf(first), lastKey: evidenceKeyOf(last) }
|
|
26138
|
+
});
|
|
26139
|
+
}
|
|
26140
|
+
for (let index = 0; index + 1 < trackIntervals.length; index++) {
|
|
26141
|
+
const gapStart = trackIntervals[index][1];
|
|
26142
|
+
const gapEnd = trackIntervals[index + 1][0];
|
|
26143
|
+
if (gapEnd <= gapStart) continue;
|
|
26144
|
+
let pieces = [[gapStart, gapEnd]];
|
|
26145
|
+
for (const [pauseStart, pauseEnd] of pauseIntervals) {
|
|
26146
|
+
pieces = pieces.flatMap(([start, end]) => subtractInterval(start, end, pauseStart, pauseEnd));
|
|
26147
|
+
}
|
|
26148
|
+
for (const [start, end] of pieces) {
|
|
26149
|
+
cards.push({
|
|
26150
|
+
id: stableCardId(`idle|${machine}|${isoOf(start)}|${isoOf(end)}`),
|
|
26151
|
+
kind: "idle",
|
|
26152
|
+
title: "Idle",
|
|
26153
|
+
summary: `${formatDurationMinutes(end - start)} gap on ${machine}`,
|
|
26154
|
+
categoryId: TIMELINE_RESERVED_IDLE,
|
|
26155
|
+
confidence: 1,
|
|
26156
|
+
startUtc: isoOf(start),
|
|
26157
|
+
endUtc: isoOf(end),
|
|
26158
|
+
dayKey: input.date,
|
|
26159
|
+
timezone: input.timezone,
|
|
26160
|
+
machine,
|
|
26161
|
+
evidenceIds: [],
|
|
26162
|
+
evidenceRange: null
|
|
26163
|
+
});
|
|
26164
|
+
}
|
|
26165
|
+
}
|
|
26166
|
+
}
|
|
26167
|
+
for (const [pauseStart, pauseEnd] of pauseIntervals) {
|
|
26168
|
+
const reason = (input.pauses ?? []).find((pause) => canonicalMs(pause.startUtc) === pauseStart)?.reason;
|
|
26169
|
+
cards.push({
|
|
26170
|
+
id: stableCardId(`pause|${isoOf(pauseStart)}|${isoOf(pauseEnd)}`),
|
|
26171
|
+
kind: "pause",
|
|
26172
|
+
title: "Paused",
|
|
26173
|
+
summary: reason === void 0 ? `${formatDurationMinutes(pauseEnd - pauseStart)} user pause` : `${formatDurationMinutes(pauseEnd - pauseStart)} user pause \u2014 ${reason}`,
|
|
26174
|
+
categoryId: TIMELINE_RESERVED_PAUSE,
|
|
26175
|
+
confidence: 1,
|
|
26176
|
+
startUtc: isoOf(pauseStart),
|
|
26177
|
+
endUtc: isoOf(pauseEnd),
|
|
26178
|
+
dayKey: input.date,
|
|
26179
|
+
timezone: input.timezone,
|
|
26180
|
+
machine: null,
|
|
26181
|
+
evidenceIds: [],
|
|
26182
|
+
evidenceRange: null
|
|
26183
|
+
});
|
|
26184
|
+
}
|
|
26185
|
+
cards.sort((a, b) => a.startUtc < b.startUtc ? -1 : a.startUtc > b.startUtc ? 1 : a.endUtc < b.endUtc ? -1 : a.endUtc > b.endUtc ? 1 : (a.machine ?? "") < (b.machine ?? "") ? -1 : (a.machine ?? "") > (b.machine ?? "") ? 1 : a.id < b.id ? -1 : a.id > b.id ? 1 : 0);
|
|
26186
|
+
return {
|
|
26187
|
+
formatVersion: TIMELINE_FORMAT_VERSION,
|
|
26188
|
+
date: input.date,
|
|
26189
|
+
timezone: input.timezone,
|
|
26190
|
+
startUtc: window.startUtc,
|
|
26191
|
+
endUtc: window.endUtc,
|
|
26192
|
+
cards
|
|
26193
|
+
};
|
|
26194
|
+
}
|
|
26195
|
+
function serializeTimelineDay(day) {
|
|
26196
|
+
return JSON.stringify(day);
|
|
26197
|
+
}
|
|
26198
|
+
|
|
26199
|
+
// src/activity/timeline/corrections.ts
|
|
26200
|
+
import { mkdirSync } from "fs";
|
|
26201
|
+
import path32 from "path";
|
|
26202
|
+
function timelineCorrectionDatabasePath(memoryDir) {
|
|
26203
|
+
return path32.join(memoryDir, "state", "activity-timeline.sqlite");
|
|
26204
|
+
}
|
|
26205
|
+
function rowToCorrection(row) {
|
|
26206
|
+
return {
|
|
26207
|
+
cardId: row.card_id,
|
|
26208
|
+
categoryId: row.category_id ?? void 0,
|
|
26209
|
+
title: row.title ?? void 0,
|
|
26210
|
+
editedAtUtc: row.edited_at_utc
|
|
26211
|
+
};
|
|
26212
|
+
}
|
|
26213
|
+
var TimelineCorrectionStore = class _TimelineCorrectionStore {
|
|
26214
|
+
db;
|
|
26215
|
+
constructor(db) {
|
|
26216
|
+
this.db = db;
|
|
26217
|
+
}
|
|
26218
|
+
static open(memoryDir) {
|
|
26219
|
+
mkdirSync(path32.join(memoryDir, "state"), { recursive: true });
|
|
26220
|
+
const db = openBetterSqlite3(timelineCorrectionDatabasePath(memoryDir));
|
|
26221
|
+
db.pragma("journal_mode = WAL");
|
|
26222
|
+
db.pragma("busy_timeout = 5000");
|
|
26223
|
+
db.exec(`
|
|
26224
|
+
CREATE TABLE IF NOT EXISTS timeline_corrections (
|
|
26225
|
+
card_id TEXT PRIMARY KEY,
|
|
26226
|
+
category_id TEXT,
|
|
26227
|
+
title TEXT,
|
|
26228
|
+
edited_at_utc TEXT NOT NULL
|
|
26229
|
+
);
|
|
26230
|
+
`);
|
|
26231
|
+
return new _TimelineCorrectionStore(db);
|
|
26232
|
+
}
|
|
26233
|
+
/**
|
|
26234
|
+
* Persist one correction. `categoryId`, when set, must exist in `categories`
|
|
26235
|
+
* (defaults to the built-in registry) — an unknown category is a malformed
|
|
26236
|
+
* edit and must fail rather than silently strand the card.
|
|
26237
|
+
*/
|
|
26238
|
+
upsert(correction, categories = DEFAULT_TIMELINE_CATEGORIES) {
|
|
26239
|
+
validateTimelineCategories(categories);
|
|
26240
|
+
if (typeof correction.cardId !== "string" || correction.cardId.length === 0) {
|
|
26241
|
+
throw new RangeError("timeline correction requires a non-empty cardId");
|
|
26242
|
+
}
|
|
26243
|
+
if (typeof correction.editedAtUtc !== "string" || Number.isNaN(Date.parse(correction.editedAtUtc))) {
|
|
26244
|
+
throw new RangeError("timeline correction requires a valid editedAtUtc instant");
|
|
26245
|
+
}
|
|
26246
|
+
if (correction.categoryId === void 0 && correction.title === void 0 || correction.title !== void 0 && correction.title.length === 0) {
|
|
26247
|
+
throw new RangeError("timeline correction must set a categoryId and/or a non-empty title");
|
|
26248
|
+
}
|
|
26249
|
+
if (correction.categoryId !== void 0 && !categories.some((category) => category.id === correction.categoryId)) {
|
|
26250
|
+
throw new RangeError(`timeline correction targets unknown category: ${correction.categoryId}`);
|
|
26251
|
+
}
|
|
26252
|
+
this.db.prepare(
|
|
26253
|
+
`INSERT INTO timeline_corrections (card_id, category_id, title, edited_at_utc)
|
|
26254
|
+
VALUES (?, ?, ?, ?)
|
|
26255
|
+
ON CONFLICT(card_id) DO UPDATE SET category_id = excluded.category_id, title = excluded.title, edited_at_utc = excluded.edited_at_utc`
|
|
26256
|
+
).run(correction.cardId, correction.categoryId ?? null, correction.title ?? null, correction.editedAtUtc);
|
|
26257
|
+
}
|
|
26258
|
+
get(cardId) {
|
|
26259
|
+
const row = this.db.prepare("SELECT card_id, category_id, title, edited_at_utc FROM timeline_corrections WHERE card_id = ?").get(cardId);
|
|
26260
|
+
return row === void 0 ? void 0 : rowToCorrection(row);
|
|
26261
|
+
}
|
|
26262
|
+
/** All corrections ordered by card id (deterministic listing). */
|
|
26263
|
+
list() {
|
|
26264
|
+
return this.db.prepare("SELECT card_id, category_id, title, edited_at_utc FROM timeline_corrections ORDER BY card_id ASC").all().map((row) => rowToCorrection(row));
|
|
26265
|
+
}
|
|
26266
|
+
/** Explicitly reset a card to its derived values; true when a correction existed. */
|
|
26267
|
+
reset(cardId) {
|
|
26268
|
+
return this.db.prepare("DELETE FROM timeline_corrections WHERE card_id = ?").run(cardId).changes > 0;
|
|
26269
|
+
}
|
|
26270
|
+
close() {
|
|
26271
|
+
this.db.close();
|
|
26272
|
+
}
|
|
26273
|
+
};
|
|
26274
|
+
function applyTimelineCorrections(cards, corrections) {
|
|
26275
|
+
const byCardId = new Map(corrections.map((correction) => [correction.cardId, correction]));
|
|
26276
|
+
return cards.map((card) => {
|
|
26277
|
+
const correction = byCardId.get(card.id);
|
|
26278
|
+
if (correction === void 0) return card;
|
|
26279
|
+
return {
|
|
26280
|
+
id: card.id,
|
|
26281
|
+
kind: card.kind,
|
|
26282
|
+
title: correction.title ?? card.title,
|
|
26283
|
+
summary: card.summary,
|
|
26284
|
+
categoryId: correction.categoryId ?? card.categoryId,
|
|
26285
|
+
confidence: 1,
|
|
26286
|
+
startUtc: card.startUtc,
|
|
26287
|
+
endUtc: card.endUtc,
|
|
26288
|
+
dayKey: card.dayKey,
|
|
26289
|
+
timezone: card.timezone,
|
|
26290
|
+
machine: card.machine,
|
|
26291
|
+
evidenceIds: card.evidenceIds,
|
|
26292
|
+
evidenceRange: card.evidenceRange,
|
|
26293
|
+
manualEdit: {
|
|
26294
|
+
...correction.categoryId !== void 0 ? { categoryId: correction.categoryId } : {},
|
|
26295
|
+
...correction.title !== void 0 ? { title: correction.title } : {},
|
|
26296
|
+
editedAtUtc: correction.editedAtUtc
|
|
26297
|
+
}
|
|
26298
|
+
};
|
|
26299
|
+
});
|
|
26300
|
+
}
|
|
26301
|
+
|
|
25867
26302
|
// src/activity/memory-gen.ts
|
|
25868
26303
|
var ACTIVITY_ALLOWED_CATEGORIES = {
|
|
25869
26304
|
decision: true,
|
|
@@ -26121,9 +26556,9 @@ async function generateActivityMemories(date, digestBody, config, deps) {
|
|
|
26121
26556
|
}
|
|
26122
26557
|
|
|
26123
26558
|
// src/session-summaries/index.ts
|
|
26124
|
-
import { createHash as
|
|
26559
|
+
import { createHash as createHash10 } from "crypto";
|
|
26125
26560
|
import { lstat as lstat3, mkdir as mkdir7, readFile as readFile7, readdir as readdir4, rename, rm, stat as stat4, writeFile as writeFile7 } from "fs/promises";
|
|
26126
|
-
import
|
|
26561
|
+
import path33 from "path";
|
|
26127
26562
|
|
|
26128
26563
|
// src/session-summaries/adapters.ts
|
|
26129
26564
|
var VALID_ROLES = /* @__PURE__ */ new Set(["user", "assistant", "tool", "system", "other"]);
|
|
@@ -26623,12 +27058,12 @@ var DEFAULT_MAX_FILES = 5e3;
|
|
|
26623
27058
|
var DEFAULT_MAX_SESSIONS = 500;
|
|
26624
27059
|
var SUPPORTED_EXTENSIONS = /* @__PURE__ */ new Set([".json", ".jsonl"]);
|
|
26625
27060
|
function shortHash(value, length = 16) {
|
|
26626
|
-
return
|
|
27061
|
+
return createHash10("sha256").update(value).digest("hex").slice(0, length);
|
|
26627
27062
|
}
|
|
26628
27063
|
async function listTranscriptFiles(root, maxFiles) {
|
|
26629
27064
|
const out = [];
|
|
26630
27065
|
let truncated = false;
|
|
26631
|
-
const entrySortKey = (entryName, isDirectory) => isDirectory ? `${entryName}${
|
|
27066
|
+
const entrySortKey = (entryName, isDirectory) => isDirectory ? `${entryName}${path33.sep}` : entryName;
|
|
26632
27067
|
async function visit(dir) {
|
|
26633
27068
|
if (truncated) return;
|
|
26634
27069
|
const entries = (await readdir4(dir, { withFileTypes: true })).sort(
|
|
@@ -26638,13 +27073,13 @@ async function listTranscriptFiles(root, maxFiles) {
|
|
|
26638
27073
|
if (truncated) return;
|
|
26639
27074
|
if (entry.name.startsWith(".")) continue;
|
|
26640
27075
|
if (entry.isSymbolicLink()) continue;
|
|
26641
|
-
const fullPath =
|
|
27076
|
+
const fullPath = path33.join(dir, entry.name);
|
|
26642
27077
|
if (entry.isDirectory()) {
|
|
26643
27078
|
await visit(fullPath);
|
|
26644
27079
|
continue;
|
|
26645
27080
|
}
|
|
26646
27081
|
if (!entry.isFile()) continue;
|
|
26647
|
-
const ext =
|
|
27082
|
+
const ext = path33.extname(entry.name).toLowerCase();
|
|
26648
27083
|
if (!SUPPORTED_EXTENSIONS.has(ext)) continue;
|
|
26649
27084
|
out.push(fullPath);
|
|
26650
27085
|
if (out.length > maxFiles) {
|
|
@@ -26671,7 +27106,7 @@ function normalizeInputDir(inputDir) {
|
|
|
26671
27106
|
if (typeof inputDir !== "string" || inputDir.trim().length === 0) {
|
|
26672
27107
|
throw new Error("inputDir must be a non-empty string");
|
|
26673
27108
|
}
|
|
26674
|
-
return
|
|
27109
|
+
return path33.resolve(expandTildePath(inputDir.trim()));
|
|
26675
27110
|
}
|
|
26676
27111
|
function initRoleCounts() {
|
|
26677
27112
|
return {
|
|
@@ -26828,11 +27263,11 @@ async function collectLocalSessionSummaries(options) {
|
|
|
26828
27263
|
continue;
|
|
26829
27264
|
}
|
|
26830
27265
|
seenFileHashes.add(fileHash);
|
|
26831
|
-
const fileExtension =
|
|
27266
|
+
const fileExtension = path33.extname(filePath).toLowerCase();
|
|
26832
27267
|
const parsed = await adapter.parseFile(
|
|
26833
27268
|
{
|
|
26834
27269
|
content,
|
|
26835
|
-
fileName:
|
|
27270
|
+
fileName: path33.basename(filePath),
|
|
26836
27271
|
fileExtension,
|
|
26837
27272
|
fileRef: fileHash
|
|
26838
27273
|
},
|
|
@@ -26888,7 +27323,7 @@ async function collectLocalSessionSummaries(options) {
|
|
|
26888
27323
|
}
|
|
26889
27324
|
async function readRedactionConfig(pathLike) {
|
|
26890
27325
|
if (!pathLike) return void 0;
|
|
26891
|
-
const raw = await readFile7(
|
|
27326
|
+
const raw = await readFile7(path33.resolve(expandTildePath(pathLike)), "utf-8");
|
|
26892
27327
|
const parsed = JSON.parse(raw);
|
|
26893
27328
|
if (!parsed || typeof parsed !== "object" || Array.isArray(parsed)) {
|
|
26894
27329
|
throw new Error("redaction config must be a JSON object");
|
|
@@ -26901,15 +27336,15 @@ function toJsonl(drafts) {
|
|
|
26901
27336
|
}
|
|
26902
27337
|
function defaultDraftOutputPath(memoryDir, generatedAt) {
|
|
26903
27338
|
const stamp = generatedAt.replace(/[:.]/g, "-");
|
|
26904
|
-
return
|
|
26905
|
-
|
|
27339
|
+
return path33.join(
|
|
27340
|
+
path33.resolve(expandTildePath(memoryDir)),
|
|
26906
27341
|
"state",
|
|
26907
27342
|
"session-summary-drafts",
|
|
26908
27343
|
`session-summaries-${stamp}.jsonl`
|
|
26909
27344
|
);
|
|
26910
27345
|
}
|
|
26911
27346
|
async function writeDrafts(filePath, drafts) {
|
|
26912
|
-
await mkdir7(
|
|
27347
|
+
await mkdir7(path33.dirname(filePath), { recursive: true });
|
|
26913
27348
|
const tempPath = `${filePath}.${process.pid}.${Date.now()}.tmp`;
|
|
26914
27349
|
try {
|
|
26915
27350
|
await writeFile7(tempPath, toJsonl(drafts), "utf-8");
|
|
@@ -26927,7 +27362,7 @@ async function runLocalSessionSummaryCliCommand(options) {
|
|
|
26927
27362
|
});
|
|
26928
27363
|
const wroteFiles = [];
|
|
26929
27364
|
if (options.output) {
|
|
26930
|
-
const outputPath =
|
|
27365
|
+
const outputPath = path33.resolve(expandTildePath(options.output));
|
|
26931
27366
|
await writeDrafts(outputPath, report.drafts);
|
|
26932
27367
|
wroteFiles.push(outputPath);
|
|
26933
27368
|
}
|
|
@@ -26962,19 +27397,19 @@ async function runLocalSessionSummaryCliCommand(options) {
|
|
|
26962
27397
|
|
|
26963
27398
|
// src/transfer/capsule-fork.ts
|
|
26964
27399
|
import { lstat as lstat4, mkdir as mkdir8, readFile as readFile8, realpath as realpath3, writeFile as writeFile8 } from "fs/promises";
|
|
26965
|
-
import
|
|
27400
|
+
import path34 from "path";
|
|
26966
27401
|
async function forkCapsule(opts) {
|
|
26967
27402
|
validateForkId(opts.forkId);
|
|
26968
|
-
const rootAbs =
|
|
27403
|
+
const rootAbs = path34.resolve(opts.targetRoot);
|
|
26969
27404
|
await assertIsDirectoryNotSymlink(rootAbs, "forkCapsule", "targetRoot");
|
|
26970
|
-
const forkDirAbs =
|
|
27405
|
+
const forkDirAbs = path34.join(rootAbs, "forks", opts.forkId);
|
|
26971
27406
|
const forkEntryExists = await pathEntryExists(forkDirAbs);
|
|
26972
27407
|
if (forkEntryExists) {
|
|
26973
27408
|
throw new Error(
|
|
26974
27409
|
`forkCapsule: fork path already exists \u2014 forkId "${opts.forkId}" is already in use at: ${forkDirAbs}`
|
|
26975
27410
|
);
|
|
26976
27411
|
}
|
|
26977
|
-
const archiveAbs =
|
|
27412
|
+
const archiveAbs = path34.resolve(opts.sourceArchive);
|
|
26978
27413
|
const importResult = await importCapsule({
|
|
26979
27414
|
archivePath: archiveAbs,
|
|
26980
27415
|
root: rootAbs,
|
|
@@ -26996,10 +27431,10 @@ async function forkCapsule(opts) {
|
|
|
26996
27431
|
importedRecords: importResult.imported.length,
|
|
26997
27432
|
skippedRecords: importResult.skipped.length
|
|
26998
27433
|
};
|
|
26999
|
-
const lineagePath =
|
|
27434
|
+
const lineagePath = path34.join(forkDirAbs, "lineage.json");
|
|
27000
27435
|
const rootReal = await realpath3(rootAbs);
|
|
27001
27436
|
await assertRealpathInsideRoot(rootReal, lineagePath, `forks/${opts.forkId}/lineage.json`, "forkCapsule");
|
|
27002
|
-
await mkdir8(
|
|
27437
|
+
await mkdir8(path34.dirname(lineagePath), { recursive: true });
|
|
27003
27438
|
await writeFile8(lineagePath, JSON.stringify(lineage, null, 2) + "\n", "utf-8");
|
|
27004
27439
|
return {
|
|
27005
27440
|
archivePath: archiveAbs,
|
|
@@ -27013,11 +27448,11 @@ async function readForkLineage(targetRoot, forkId) {
|
|
|
27013
27448
|
if (typeof forkId !== "string" || forkId.length === 0 || forkId.length > 64 || !CAPSULE_ID_PATTERN.test(forkId)) {
|
|
27014
27449
|
return null;
|
|
27015
27450
|
}
|
|
27016
|
-
const rootAbs =
|
|
27451
|
+
const rootAbs = path34.resolve(targetRoot);
|
|
27017
27452
|
const rootReal = await realpath3(rootAbs).catch(() => rootAbs);
|
|
27018
|
-
const lineagePath =
|
|
27019
|
-
const rel =
|
|
27020
|
-
if (rel.startsWith("..") ||
|
|
27453
|
+
const lineagePath = path34.join(rootReal, "forks", forkId, "lineage.json");
|
|
27454
|
+
const rel = path34.relative(rootReal, lineagePath);
|
|
27455
|
+
if (rel.startsWith("..") || path34.isAbsolute(rel)) {
|
|
27021
27456
|
return null;
|
|
27022
27457
|
}
|
|
27023
27458
|
if (!await isLineagePathContained(rootReal, lineagePath)) {
|
|
@@ -27058,19 +27493,19 @@ async function pathEntryExists(absPath) {
|
|
|
27058
27493
|
async function isLineagePathContained(rootReal, lineagePath) {
|
|
27059
27494
|
let existing = lineagePath;
|
|
27060
27495
|
const suffix = [];
|
|
27061
|
-
while (existing !==
|
|
27496
|
+
while (existing !== path34.dirname(existing)) {
|
|
27062
27497
|
const st = await lstat4(existing).catch(() => null);
|
|
27063
27498
|
if (st !== null) break;
|
|
27064
|
-
suffix.unshift(
|
|
27065
|
-
existing =
|
|
27499
|
+
suffix.unshift(path34.basename(existing));
|
|
27500
|
+
existing = path34.dirname(existing);
|
|
27066
27501
|
}
|
|
27067
27502
|
const existingReal = await realpath3(existing).catch(() => existing);
|
|
27068
|
-
const targetReal = suffix.length > 0 ?
|
|
27069
|
-
const rel =
|
|
27503
|
+
const targetReal = suffix.length > 0 ? path34.join(existingReal, ...suffix) : existingReal;
|
|
27504
|
+
const rel = path34.relative(rootReal, targetReal);
|
|
27070
27505
|
if (rel === "") return true;
|
|
27071
27506
|
if (rel === "..") return false;
|
|
27072
|
-
if (rel.startsWith(`..${
|
|
27073
|
-
if (
|
|
27507
|
+
if (rel.startsWith(`..${path34.sep}`)) return false;
|
|
27508
|
+
if (path34.isAbsolute(rel)) return false;
|
|
27074
27509
|
return true;
|
|
27075
27510
|
}
|
|
27076
27511
|
|
|
@@ -27155,6 +27590,21 @@ export {
|
|
|
27155
27590
|
getTaxonomyFilePath,
|
|
27156
27591
|
WearablesService,
|
|
27157
27592
|
locateTranscriptPath,
|
|
27593
|
+
TIMELINE_RESERVED_UNKNOWN,
|
|
27594
|
+
TIMELINE_RESERVED_IDLE,
|
|
27595
|
+
TIMELINE_RESERVED_PAUSE,
|
|
27596
|
+
DEFAULT_TIMELINE_CATEGORIES,
|
|
27597
|
+
validateTimelineCategories,
|
|
27598
|
+
sortTimelineCategories,
|
|
27599
|
+
classifyTimelineObservation,
|
|
27600
|
+
TIMELINE_FORMAT_VERSION,
|
|
27601
|
+
TIMELINE_MERGE_GAP_MS,
|
|
27602
|
+
TIMELINE_MAX_DWELL_MS,
|
|
27603
|
+
buildTimelineDay,
|
|
27604
|
+
serializeTimelineDay,
|
|
27605
|
+
timelineCorrectionDatabasePath,
|
|
27606
|
+
TimelineCorrectionStore,
|
|
27607
|
+
applyTimelineCorrections,
|
|
27158
27608
|
isEligibleActivityFact,
|
|
27159
27609
|
generateActivityMemories,
|
|
27160
27610
|
fuseMeeting,
|
|
@@ -27190,4 +27640,4 @@ export {
|
|
|
27190
27640
|
blendGraphExpandedRecallScore,
|
|
27191
27641
|
Orchestrator
|
|
27192
27642
|
};
|
|
27193
|
-
//# sourceMappingURL=chunk-
|
|
27643
|
+
//# sourceMappingURL=chunk-56IV4J5W.js.map
|