@remnic/core 9.22.0 → 9.22.1
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/dist/access-admin-ops-surface.d.ts +15 -12
- package/dist/access-admin-ops-surface.js +25 -24
- package/dist/access-audit.js +2 -2
- package/dist/access-boundary.d.ts +13 -10
- package/dist/access-boundary.js +25 -24
- package/dist/access-cli.js +84 -82
- package/dist/access-cli.js.map +1 -1
- package/dist/access-http.d.ts +16 -9
- package/dist/access-http.js +33 -32
- package/dist/access-identity-continuity-surface.d.ts +9 -7
- package/dist/access-identity-continuity-surface.js +25 -24
- package/dist/access-lcm-surface.d.ts +12 -9
- package/dist/access-lcm-surface.js +25 -24
- package/dist/access-mcp-output-schemas.js +1 -1
- package/dist/access-mcp.d.ts +22 -10
- package/dist/access-mcp.js +31 -30
- package/dist/access-memory-search-fanout.d.ts +2 -2
- package/dist/{access-namespace-preflight-tmwQgCT6.d.ts → access-namespace-preflight-CmErR03h.d.ts} +1 -1
- package/dist/access-namespace-preflight.d.ts +3 -3
- package/dist/access-namespace-preflight.js +25 -24
- package/dist/access-observe-write-surface.d.ts +12 -9
- package/dist/access-observe-write-surface.js +25 -24
- package/dist/access-operations-batch.js +27 -26
- package/dist/access-operations.d.ts +13 -10
- package/dist/access-operations.js +28 -27
- package/dist/access-recall-concurrency.d.ts +12 -9
- package/dist/access-recall-concurrency.js +25 -24
- package/dist/access-recall-response.d.ts +12 -9
- package/dist/access-recall-response.js +25 -24
- package/dist/access-recall-surface.d.ts +14 -11
- package/dist/access-recall-surface.js +25 -24
- package/dist/{access-service-BtxW52vv.d.ts → access-service-CKEROeFP.d.ts} +22 -11
- package/dist/access-service.d.ts +13 -10
- package/dist/access-service.js +25 -24
- package/dist/access-surface-catalog.d.ts +12 -9
- package/dist/access-surface-catalog.js +6 -0
- package/dist/access-surface-catalog.js.map +1 -1
- package/dist/access-wearables-meetings-surface.d.ts +78 -0
- package/dist/access-wearables-meetings-surface.js +22 -0
- package/dist/access-wearables-meetings-surface.js.map +1 -0
- 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/active-recall.js +2 -2
- package/dist/{auto-sync-UPTUVE4X.js → auto-sync-5OE5QOZB.js} +3 -3
- package/dist/behavior-learner.d.ts +1 -1
- package/dist/behavior-signals.d.ts +1 -1
- package/dist/bootstrap.d.ts +9 -7
- package/dist/briefing.d.ts +2 -2
- package/dist/briefing.js +5 -5
- package/dist/buffer-surprise-report.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/{catalog-iWvWz61I.d.ts → catalog-BFTVo2Ez.d.ts} +1 -1
- package/dist/causal-behavior.d.ts +1 -1
- package/dist/causal-behavior.js +2 -2
- package/dist/causal-chain.js +2 -2
- package/dist/causal-consolidation.d.ts +1 -1
- package/dist/causal-consolidation.js +9 -9
- package/dist/causal-retrieval.js +2 -2
- package/dist/causal-trajectory-graph.d.ts +1 -1
- package/dist/causal-trajectory.js +1 -1
- package/dist/{chunk-GF22HWS2.js → chunk-2PHX3I5C.js} +7 -7
- package/dist/{chunk-JFDEYXF7.js → chunk-3NAHZQU3.js} +2 -2
- package/dist/{chunk-XBRPEGXF.js → chunk-3UOSVTFR.js} +5 -5
- package/dist/{chunk-TTKWTT72.js → chunk-3ZW6ZQO6.js} +3 -3
- package/dist/{chunk-UV72DEZD.js → chunk-4B77XSG5.js} +5 -5
- package/dist/{chunk-IC2TCZJ2.js → chunk-57QKLRBV.js} +3 -1
- package/dist/chunk-57QKLRBV.js.map +1 -0
- package/dist/{chunk-LMHDFOVV.js → chunk-5CPI2QWG.js} +3 -3
- package/dist/{chunk-P72WZMWQ.js → chunk-5FZQ74K5.js} +2 -2
- package/dist/{chunk-BRT7KEXU.js → chunk-6TWXQ4E2.js} +5 -5
- package/dist/{chunk-CV6ZYXK3.js → chunk-7I7AYIUQ.js} +3 -3
- package/dist/{chunk-TVVEYCNW.js → chunk-7K5Q6COX.js} +4 -4
- package/dist/{chunk-MONWCSVL.js → chunk-7RAJ3GXO.js} +2 -1
- package/dist/chunk-7RAJ3GXO.js.map +1 -0
- package/dist/{chunk-SQEDDWAM.js → chunk-A2RFKL3V.js} +5 -34
- package/dist/chunk-A2RFKL3V.js.map +1 -0
- package/dist/{chunk-JN57HZCD.js → chunk-ATEAL5EI.js} +6 -6
- package/dist/{chunk-4PYLBXX6.js → chunk-AYAROCWD.js} +2 -2
- package/dist/chunk-BLDBT6HZ.js +39 -0
- package/dist/chunk-BLDBT6HZ.js.map +1 -0
- package/dist/{chunk-NB2P47N7.js → chunk-CUUY5CC4.js} +6 -6
- package/dist/{chunk-KL5Y6PEV.js → chunk-E3ZMFFQZ.js} +2 -2
- package/dist/{chunk-55FDQYPS.js → chunk-ES5IHQ6M.js} +2 -2
- package/dist/{chunk-N47ZWQBO.js → chunk-G2NSSQES.js} +2 -2
- package/dist/{chunk-GSWPU5CR.js → chunk-GD3QOBMB.js} +2 -2
- package/dist/{chunk-6ANPNUVL.js → chunk-IIXLB5E7.js} +58 -36
- package/dist/chunk-IIXLB5E7.js.map +1 -0
- package/dist/{chunk-SACPRJ7F.js → chunk-JNIJBXVK.js} +2 -2
- package/dist/{chunk-W3XT32W7.js → chunk-JVGUY2AU.js} +23 -13
- package/dist/chunk-JVGUY2AU.js.map +1 -0
- package/dist/{chunk-DGLON3AL.js → chunk-KNRG6ZGJ.js} +6 -6
- package/dist/{chunk-GEUDRENF.js → chunk-MMTG3SCJ.js} +2 -2
- package/dist/{chunk-WZFAPHIK.js → chunk-MU7ZHSZE.js} +2 -2
- package/dist/{chunk-W4FBGYGK.js → chunk-NRV4Y3PM.js} +1 -1
- package/dist/{chunk-QTO2FGBT.js → chunk-OUW4PAY4.js} +191 -117
- package/dist/chunk-OUW4PAY4.js.map +1 -0
- package/dist/{chunk-KQ2XCQYN.js → chunk-P2BLHUL2.js} +2 -2
- package/dist/{chunk-ACGGTPU4.js → chunk-QCKQEBIY.js} +17 -9
- package/dist/chunk-QCKQEBIY.js.map +1 -0
- package/dist/{chunk-6L775BUB.js → chunk-QE63OHLB.js} +2 -2
- package/dist/{chunk-ONHRRJZM.js → chunk-QJAQNXWI.js} +6 -6
- package/dist/{chunk-EQYBHXRR.js → chunk-ROUL7RZU.js} +385 -59
- package/dist/chunk-ROUL7RZU.js.map +1 -0
- package/dist/{chunk-N6M7MRVN.js → chunk-RT4TSR2C.js} +9034 -8726
- package/dist/chunk-RT4TSR2C.js.map +1 -0
- package/dist/{chunk-6NZ7U4R4.js → chunk-SCOT5DTA.js} +1 -1
- package/dist/chunk-SCOT5DTA.js.map +1 -0
- package/dist/{chunk-6RYWNBSA.js → chunk-SVZGA2MK.js} +2 -2
- package/dist/chunk-SYOIVK7K.js +63 -0
- package/dist/chunk-SYOIVK7K.js.map +1 -0
- package/dist/{chunk-DM5A4ZFL.js → chunk-TWCOYET2.js} +11 -1
- package/dist/chunk-TWCOYET2.js.map +1 -0
- package/dist/{chunk-7S5OMI76.js → chunk-WS32QRLO.js} +109 -44
- package/dist/chunk-WS32QRLO.js.map +1 -0
- package/dist/{chunk-OCMLGND7.js → chunk-WWZ35GWW.js} +5 -5
- package/dist/{chunk-QMGIQUBG.js → chunk-XWPFZX6S.js} +503 -139
- package/dist/chunk-XWPFZX6S.js.map +1 -0
- package/dist/{chunk-A5N6ISRK.js → chunk-ZN4UZWMT.js} +2 -2
- package/dist/{chunk-7M6APKJL.js → chunk-ZYU7ZFLT.js} +2 -2
- package/dist/{cli-D9vXgWwM.d.ts → cli-BrwT9YMD.d.ts} +5 -5
- package/dist/cli.d.ts +14 -11
- package/dist/cli.js +57 -56
- package/dist/compounding/engine.d.ts +2 -2
- package/dist/compounding/engine.js +5 -5
- 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/config.js +2 -2
- package/dist/connectors/codex-materialize-runner.d.ts +1 -1
- package/dist/connectors/codex-materialize-runner.js +5 -5
- package/dist/connectors/codex-materialize.d.ts +1 -1
- package/dist/connectors/index.d.ts +1 -1
- package/dist/connectors/index.js +5 -5
- 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/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/day-summary.d.ts +1 -1
- package/dist/delinearize.d.ts +1 -1
- package/dist/direct-answer-wiring.d.ts +1 -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-retrieval.d.ts +2 -2
- package/dist/entity-retrieval.js +5 -5
- package/dist/entity-schema.d.ts +1 -1
- package/dist/explicit-capture.d.ts +9 -7
- package/dist/extraction-error-classification.d.ts +22 -0
- package/dist/extraction-error-classification.js +11 -0
- package/dist/extraction-error-classification.js.map +1 -0
- 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.d.ts +3 -17
- package/dist/extraction.js +5 -3
- package/dist/fallback-llm.d.ts +1 -1
- package/dist/{first-start-migration-LEXL3XYL.js → first-start-migration-BKNGOFED.js} +4 -4
- 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-snapshot.d.ts +1 -1
- package/dist/graph.d.ts +1 -1
- package/dist/importance.d.ts +1 -1
- package/dist/importers/index.d.ts +1 -1
- package/dist/in-flight-reads.d.ts +1 -1
- package/dist/index.d.ts +309 -519
- package/dist/index.js +176 -140
- package/dist/intent.d.ts +1 -1
- package/dist/lcm/engine.d.ts +1 -1
- package/dist/lcm/engine.js +3 -3
- package/dist/lcm/index.d.ts +1 -1
- package/dist/lcm/index.js +11 -11
- 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-model-endpoint.d.ts +1 -1
- package/dist/maintenance/memory-governance.d.ts +1 -1
- package/dist/maintenance/memory-governance.js +6 -6
- package/dist/maintenance/rebuild-memory-lifecycle-ledger.d.ts +2 -2
- package/dist/maintenance/rebuild-memory-lifecycle-ledger.js +5 -5
- package/dist/maintenance/rebuild-memory-projection.d.ts +2 -2
- package/dist/maintenance/rebuild-memory-projection.js +7 -7
- package/dist/maintenance-C98njYb8.d.ts +366 -0
- package/dist/mcp-memory-inspector-app.d.ts +12 -9
- package/dist/mcp-read-only-tools.js +1 -1
- 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-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 +12 -12
- package/dist/namespaces/principal.d.ts +1 -1
- package/dist/namespaces/search.d.ts +1 -1
- package/dist/namespaces/search.js +6 -6
- package/dist/namespaces/storage.d.ts +3 -3
- package/dist/namespaces/storage.js +5 -5
- package/dist/native-knowledge.d.ts +1 -1
- package/dist/offline-sync-impression-drain.d.ts +1 -1
- package/dist/operator-toolkit.d.ts +2 -2
- package/dist/operator-toolkit.js +18 -18
- package/dist/orchestration/compression-guideline-coordinator.d.ts +2 -2
- package/dist/orchestration/maintenance.d.ts +6 -223
- package/dist/orchestration/maintenance.js +12 -12
- package/dist/{orchestrator-DB93S48I.d.ts → orchestrator-C9ZVppNh.d.ts} +12 -481
- package/dist/orchestrator.d.ts +10 -8
- package/dist/orchestrator.js +84 -82
- package/dist/patterns-cli.d.ts +1 -1
- package/dist/{pipeline-DmGc-H66.d.ts → pipeline-id_-sqYm.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/{qmd-cJT0crkF.d.ts → qmd-R6XaQOZK.d.ts} +1 -1
- package/dist/qmd-preflight.d.ts +2 -2
- package/dist/qmd-recall-cache.d.ts +1 -1
- package/dist/qmd.d.ts +2 -2
- package/dist/qmd.js +4 -4
- 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-explain-renderer.js +3 -3
- 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-cli.js +4 -4
- package/dist/recall-xray-renderer.d.ts +1 -1
- package/dist/recall-xray-renderer.js +3 -3
- package/dist/recall-xray.d.ts +1 -1
- package/dist/recall-xray.js +2 -2
- 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/resolve-auth-token.d.ts +1 -1
- package/dist/resume-bundles.js +4 -4
- 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-KG2nODX7.d.ts → scope-profiles-EhyuAKkd.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 +5 -5
- package/dist/search/index.d.ts +1 -1
- package/dist/search/index.js +9 -9
- package/dist/search/lancedb-backend.d.ts +1 -1
- package/dist/search/meilisearch-backend.d.ts +1 -1
- package/dist/search/noop-backend.d.ts +1 -1
- package/dist/search/orama-backend.d.ts +1 -1
- package/dist/search/port.d.ts +1 -1
- package/dist/search/remote-backend.d.ts +1 -1
- package/dist/{semantic-consolidation-BaZlg0D8.d.ts → semantic-consolidation-B2xo26UQ.d.ts} +1 -1
- package/dist/semantic-consolidation.d.ts +2 -2
- package/dist/semantic-consolidation.js +7 -7
- package/dist/semantic-rule-promotion.js +5 -5
- package/dist/semantic-rule-verifier.d.ts +1 -1
- package/dist/semantic-rule-verifier.js +6 -6
- package/dist/service-DgFWlZ-r.d.ts +835 -0
- 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/{storage-BKhHHnRo.d.ts → storage-XGawwqXE.d.ts} +131 -2
- package/dist/storage.d.ts +2 -2
- package/dist/storage.js +4 -4
- package/dist/summarizer.d.ts +1 -1
- package/dist/summary-snapshot.d.ts +1 -1
- 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/transcript.d.ts +1 -1
- package/dist/trust-score-stage.d.ts +1 -1
- package/dist/trust-score.d.ts +1 -1
- package/dist/{types-GBQZuT7l.d.ts → types-Bbs0qz6b.d.ts} +2 -3
- package/dist/types.d.ts +1 -1
- package/dist/types.js +1 -1
- package/dist/utility-runtime.d.ts +1 -1
- package/dist/verified-recall.js +6 -6
- package/dist/write-envelope.d.ts +1 -1
- package/package.json +2 -2
- package/src/access-boundary.ts +3 -0
- package/src/access-http.test.ts +63 -0
- package/src/access-http.ts +26 -37
- package/src/access-mcp-output-schemas.ts +10 -0
- package/src/access-mcp.ts +4 -121
- package/src/access-operations-batch.ts +10 -5
- package/src/access-service.ts +43 -46
- package/src/access-surface-catalog.ts +6 -0
- package/src/access-wearables-meetings-surface.ts +139 -0
- package/src/activity/digest.ts +1 -1
- package/src/activity/runner.test.ts +37 -0
- package/src/activity/runner.ts +12 -0
- package/src/activity/scheduler.test.ts +1 -0
- package/src/activity/sync-registration.ts +13 -0
- package/src/cli/meetings-commands.ts +70 -0
- package/src/cli.ts +7 -6
- package/src/extraction-error-classification.ts +52 -0
- package/src/extraction.ts +2 -50
- package/src/mcp-read-only-tools.ts +2 -0
- package/src/meetings/build-memory.test.ts +364 -0
- package/src/meetings/build-scheduler.test.ts +55 -0
- package/src/meetings/build-scheduler.ts +96 -0
- package/src/meetings/day-source.test.ts +275 -0
- package/src/meetings/day-source.ts +352 -0
- package/src/meetings/http-glue.ts +126 -0
- package/src/meetings/index.ts +5 -4
- package/src/meetings/manual-sync-flush.test.ts +72 -0
- package/src/meetings/mcp-tools.ts +65 -0
- package/src/meetings/memory-gen.test.ts +498 -0
- package/src/meetings/memory-gen.ts +549 -0
- package/src/meetings/memory-generator.ts +5 -0
- package/src/meetings/namespace-isolation.test.ts +159 -0
- package/src/meetings/service.test.ts +195 -0
- package/src/meetings/service.ts +157 -0
- package/src/meetings/summary-extractor.test.ts +287 -0
- package/src/meetings/summary-extractor.ts +264 -0
- package/src/orchestration/maintenance.ts +8 -0
- package/src/orchestration/orchestrator-init.ts +6 -1
- package/src/orchestration/workspace-ops.ts +172 -8
- package/src/orchestrator.ts +12 -13
- package/src/storage.ts +21 -0
- package/src/testing/subjects/meetings-namespace-harness.ts +159 -0
- package/src/testing/subjects/meetings-namespace.test.ts +93 -0
- package/src/types.ts +1 -2
- package/src/wearables/cli.ts +2 -1
- package/src/wearables/index.ts +1 -0
- package/src/wearables/mcp-tools.ts +143 -0
- package/src/wearables/registry.test.ts +11 -0
- package/src/wearables/registry.ts +13 -0
- package/src/wearables/service.test.ts +62 -1
- package/src/wearables/service.ts +30 -2
- package/src/wearables/transcript-search-namespace-isolation.test.ts +98 -0
- package/dist/chunk-6ANPNUVL.js.map +0 -1
- package/dist/chunk-6NZ7U4R4.js.map +0 -1
- package/dist/chunk-7S5OMI76.js.map +0 -1
- package/dist/chunk-ACGGTPU4.js.map +0 -1
- package/dist/chunk-DM5A4ZFL.js.map +0 -1
- package/dist/chunk-EQYBHXRR.js.map +0 -1
- package/dist/chunk-IC2TCZJ2.js.map +0 -1
- package/dist/chunk-MONWCSVL.js.map +0 -1
- package/dist/chunk-N6M7MRVN.js.map +0 -1
- package/dist/chunk-QMGIQUBG.js.map +0 -1
- package/dist/chunk-QTO2FGBT.js.map +0 -1
- package/dist/chunk-SQEDDWAM.js.map +0 -1
- package/dist/chunk-W3XT32W7.js.map +0 -1
- /package/dist/{auto-sync-UPTUVE4X.js.map → auto-sync-5OE5QOZB.js.map} +0 -0
- /package/dist/{chunk-GF22HWS2.js.map → chunk-2PHX3I5C.js.map} +0 -0
- /package/dist/{chunk-JFDEYXF7.js.map → chunk-3NAHZQU3.js.map} +0 -0
- /package/dist/{chunk-XBRPEGXF.js.map → chunk-3UOSVTFR.js.map} +0 -0
- /package/dist/{chunk-TTKWTT72.js.map → chunk-3ZW6ZQO6.js.map} +0 -0
- /package/dist/{chunk-UV72DEZD.js.map → chunk-4B77XSG5.js.map} +0 -0
- /package/dist/{chunk-LMHDFOVV.js.map → chunk-5CPI2QWG.js.map} +0 -0
- /package/dist/{chunk-P72WZMWQ.js.map → chunk-5FZQ74K5.js.map} +0 -0
- /package/dist/{chunk-BRT7KEXU.js.map → chunk-6TWXQ4E2.js.map} +0 -0
- /package/dist/{chunk-CV6ZYXK3.js.map → chunk-7I7AYIUQ.js.map} +0 -0
- /package/dist/{chunk-TVVEYCNW.js.map → chunk-7K5Q6COX.js.map} +0 -0
- /package/dist/{chunk-JN57HZCD.js.map → chunk-ATEAL5EI.js.map} +0 -0
- /package/dist/{chunk-4PYLBXX6.js.map → chunk-AYAROCWD.js.map} +0 -0
- /package/dist/{chunk-NB2P47N7.js.map → chunk-CUUY5CC4.js.map} +0 -0
- /package/dist/{chunk-KL5Y6PEV.js.map → chunk-E3ZMFFQZ.js.map} +0 -0
- /package/dist/{chunk-55FDQYPS.js.map → chunk-ES5IHQ6M.js.map} +0 -0
- /package/dist/{chunk-N47ZWQBO.js.map → chunk-G2NSSQES.js.map} +0 -0
- /package/dist/{chunk-GSWPU5CR.js.map → chunk-GD3QOBMB.js.map} +0 -0
- /package/dist/{chunk-SACPRJ7F.js.map → chunk-JNIJBXVK.js.map} +0 -0
- /package/dist/{chunk-DGLON3AL.js.map → chunk-KNRG6ZGJ.js.map} +0 -0
- /package/dist/{chunk-GEUDRENF.js.map → chunk-MMTG3SCJ.js.map} +0 -0
- /package/dist/{chunk-WZFAPHIK.js.map → chunk-MU7ZHSZE.js.map} +0 -0
- /package/dist/{chunk-W4FBGYGK.js.map → chunk-NRV4Y3PM.js.map} +0 -0
- /package/dist/{chunk-KQ2XCQYN.js.map → chunk-P2BLHUL2.js.map} +0 -0
- /package/dist/{chunk-6L775BUB.js.map → chunk-QE63OHLB.js.map} +0 -0
- /package/dist/{chunk-ONHRRJZM.js.map → chunk-QJAQNXWI.js.map} +0 -0
- /package/dist/{chunk-6RYWNBSA.js.map → chunk-SVZGA2MK.js.map} +0 -0
- /package/dist/{chunk-OCMLGND7.js.map → chunk-WWZ35GWW.js.map} +0 -0
- /package/dist/{chunk-A5N6ISRK.js.map → chunk-ZN4UZWMT.js.map} +0 -0
- /package/dist/{chunk-7M6APKJL.js.map → chunk-ZYU7ZFLT.js.map} +0 -0
- /package/dist/{first-start-migration-LEXL3XYL.js.map → first-start-migration-BKNGOFED.js.map} +0 -0
|
@@ -453,3 +453,40 @@ test("an older-day failure does not starve newer dates in a multi-day window", a
|
|
|
453
453
|
await rm(memoryDir, { recursive: true, force: true });
|
|
454
454
|
}
|
|
455
455
|
});
|
|
456
|
+
|
|
457
|
+
test("runActivitySyncOnce reports every local date that gained snapshots (issue #1900 backfill)", async () => {
|
|
458
|
+
const memoryDir = await mkdtemp(path.join(os.tmpdir(), "remnic-activity-runner-"));
|
|
459
|
+
const store = ActivityStore.open(memoryDir);
|
|
460
|
+
try {
|
|
461
|
+
let calls = 0;
|
|
462
|
+
const client: ActivitySourceClient = {
|
|
463
|
+
machineLabel: "workstation-a",
|
|
464
|
+
async verify() {
|
|
465
|
+
return { ok: true };
|
|
466
|
+
},
|
|
467
|
+
async fetchSnapshots() {
|
|
468
|
+
calls += 1;
|
|
469
|
+
// Dates are processed oldest-first: day 1 = 2026-07-21, day 2 = 2026-07-22.
|
|
470
|
+
const capturedAtUtc = calls === 1 ? "2026-07-21T14:00:00.000Z" : "2026-07-22T14:00:00.000Z";
|
|
471
|
+
return { snapshots: [snapshot({ capturedAtUtc, contentHash: `hash-${calls}` })], nextCursor: null };
|
|
472
|
+
},
|
|
473
|
+
};
|
|
474
|
+
|
|
475
|
+
const summary = await runActivitySyncOnce({
|
|
476
|
+
config: enabledConfig({ syncDays: 2 }),
|
|
477
|
+
memoryDir,
|
|
478
|
+
store,
|
|
479
|
+
now: NOW,
|
|
480
|
+
createSourceClient: () => client,
|
|
481
|
+
});
|
|
482
|
+
|
|
483
|
+
assert.deepEqual(
|
|
484
|
+
summary.touchedDates,
|
|
485
|
+
["2026-07-21", "2026-07-22"],
|
|
486
|
+
"both days that inserted snapshots are reported so meetings rebuild the older day too",
|
|
487
|
+
);
|
|
488
|
+
} finally {
|
|
489
|
+
store.close();
|
|
490
|
+
await rm(memoryDir, { recursive: true, force: true });
|
|
491
|
+
}
|
|
492
|
+
});
|
package/src/activity/runner.ts
CHANGED
|
@@ -60,6 +60,12 @@ export interface ActivitySyncRunSummary {
|
|
|
60
60
|
reindexErrorCount: number;
|
|
61
61
|
totalInserted: number;
|
|
62
62
|
results: ActivitySourceRunItem[];
|
|
63
|
+
/**
|
|
64
|
+
* Local dates (YYYY-MM-DD, in the sync timezone) that gained new snapshots
|
|
65
|
+
* this run — a backfill/rolling window can touch several. Meetings rebuild
|
|
66
|
+
* uses this so a change to an OLDER day rebuilds that day, not just today.
|
|
67
|
+
*/
|
|
68
|
+
touchedDates: string[];
|
|
63
69
|
}
|
|
64
70
|
|
|
65
71
|
export interface ActivitySyncRunOptions {
|
|
@@ -148,6 +154,7 @@ export async function runActivitySyncOnce(options: ActivitySyncRunOptions): Prom
|
|
|
148
154
|
reindexErrorCount: 0,
|
|
149
155
|
totalInserted: 0,
|
|
150
156
|
results: [],
|
|
157
|
+
touchedDates: [],
|
|
151
158
|
};
|
|
152
159
|
}
|
|
153
160
|
|
|
@@ -163,6 +170,9 @@ export async function runActivitySyncOnce(options: ActivitySyncRunOptions): Prom
|
|
|
163
170
|
const ownStore = options.store === undefined;
|
|
164
171
|
const store = options.store ?? ActivityStore.open(options.memoryDir);
|
|
165
172
|
const results: ActivitySourceRunItem[] = [];
|
|
173
|
+
// Local dates that gained new snapshots this run (any source). Drives the
|
|
174
|
+
// meetings rebuild fan-out so a backfilled OLDER day is rebuilt too.
|
|
175
|
+
const touchedDates = new Set<string>();
|
|
166
176
|
|
|
167
177
|
try {
|
|
168
178
|
for (const sourceConfig of options.config.sources) {
|
|
@@ -191,6 +201,7 @@ export async function runActivitySyncOnce(options: ActivitySyncRunOptions): Prom
|
|
|
191
201
|
});
|
|
192
202
|
item.fetched += result.fetched;
|
|
193
203
|
item.inserted += result.inserted;
|
|
204
|
+
if (result.inserted > 0) touchedDates.add(date);
|
|
194
205
|
item.duplicates += result.duplicates;
|
|
195
206
|
if (result.digestWritten) item.digestsWritten += 1;
|
|
196
207
|
item.cursor = result.cursor;
|
|
@@ -233,5 +244,6 @@ export async function runActivitySyncOnce(options: ActivitySyncRunOptions): Prom
|
|
|
233
244
|
reindexErrorCount: results.filter((item) => item.reindexError !== undefined).length,
|
|
234
245
|
totalInserted: results.reduce((sum, item) => sum + item.inserted, 0),
|
|
235
246
|
results,
|
|
247
|
+
touchedDates: [...touchedDates].sort(),
|
|
236
248
|
};
|
|
237
249
|
}
|
|
@@ -50,6 +50,13 @@ export interface ActivitySyncRegistrarDeps {
|
|
|
50
50
|
readonly getQmd: () => ActivityIndexRefresher;
|
|
51
51
|
/** Debounced/singleflighted QMD retry used when a tick's reindex fails. */
|
|
52
52
|
readonly requestReindexRetry: () => void;
|
|
53
|
+
/**
|
|
54
|
+
* Tail step (issue #1900): observe a completed sync tick so a dependent
|
|
55
|
+
* subsystem (meeting building) can rebuild the affected day(s). Fired only
|
|
56
|
+
* after a durable tick and never after teardown. Optional; omitted by hosts
|
|
57
|
+
* that do not build meetings.
|
|
58
|
+
*/
|
|
59
|
+
readonly onSynced?: (summary: ActivitySyncRunSummary) => void;
|
|
53
60
|
/** Scheduler factory (injectable for tests); defaults to the real scheduler. */
|
|
54
61
|
readonly createScheduler?: (options: ActivitySyncSchedulerOptions) => ActivitySyncSchedulerLike;
|
|
55
62
|
}
|
|
@@ -111,6 +118,12 @@ export class ActivitySyncRegistrar {
|
|
|
111
118
|
);
|
|
112
119
|
this.deps.requestReindexRetry();
|
|
113
120
|
}
|
|
121
|
+
// Tail step: a durable tick that ingested snapshots may have changed a
|
|
122
|
+
// meeting's screen context; notify the dependent builder. Never after
|
|
123
|
+
// teardown.
|
|
124
|
+
if (summary.enabled && summary.totalInserted > 0 && !this.disposed) {
|
|
125
|
+
this.deps.onSynced?.(summary);
|
|
126
|
+
}
|
|
114
127
|
},
|
|
115
128
|
});
|
|
116
129
|
this.scheduler = scheduler;
|
|
@@ -0,0 +1,70 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* Meetings command group (issue #1900) — extracted from cli.ts so the surface
|
|
3
|
+
* file stays under its structural ceiling. Mirrors the
|
|
4
|
+
* registerResearchStatusCommands / registerCreationLedgerCommands seam: a single
|
|
5
|
+
* registrar wires the `meetings` command (list / show / build) on the parent
|
|
6
|
+
* `engram` command.
|
|
7
|
+
*
|
|
8
|
+
* Every subcommand forwards to the shared runner in meetings/cli.ts so this host
|
|
9
|
+
* CLI and the standalone `remnic` CLI never fork behavior or formatting.
|
|
10
|
+
* Behaviour is identical to the inline registration it replaces — the
|
|
11
|
+
* cli-command-surface contract tests guard against silent drift.
|
|
12
|
+
*/
|
|
13
|
+
|
|
14
|
+
import type { Orchestrator } from "../orchestrator.js";
|
|
15
|
+
import type { CliCommand } from "../cli.js";
|
|
16
|
+
import { runMeetingsCliCommand } from "../meetings/cli.js";
|
|
17
|
+
|
|
18
|
+
export function registerMeetingsCommands(cmd: CliCommand, orchestrator: Orchestrator): void {
|
|
19
|
+
const meetingsCmd = cmd
|
|
20
|
+
.command("meetings")
|
|
21
|
+
.description(
|
|
22
|
+
"Retrospective meetings: list records, show one, build (detect + fuse + store) a day",
|
|
23
|
+
);
|
|
24
|
+
const forwardMeetings = async (argv: string[]): Promise<void> => {
|
|
25
|
+
const service = await orchestrator.getMeetingsService();
|
|
26
|
+
const code = await runMeetingsCliCommand(
|
|
27
|
+
{ store: service.store, builder: service.builder, config: service.config },
|
|
28
|
+
argv,
|
|
29
|
+
{ stdout: process.stdout, stderr: process.stderr },
|
|
30
|
+
);
|
|
31
|
+
if (code !== 0) process.exitCode = code;
|
|
32
|
+
};
|
|
33
|
+
|
|
34
|
+
meetingsCmd
|
|
35
|
+
.command("list")
|
|
36
|
+
.description("List meeting records (all days, or one day)")
|
|
37
|
+
.option("--date <date>", "Day to list (YYYY-MM-DD)")
|
|
38
|
+
.option("--json", "JSON output")
|
|
39
|
+
.action(async (...args: unknown[]) => {
|
|
40
|
+
const options = (args[0] ?? {}) as Record<string, unknown>;
|
|
41
|
+
await forwardMeetings([
|
|
42
|
+
"list",
|
|
43
|
+
...(typeof options.date === "string" && options.date.length > 0
|
|
44
|
+
? ["--date", options.date]
|
|
45
|
+
: []),
|
|
46
|
+
...(options.json === true ? ["--json"] : []),
|
|
47
|
+
]);
|
|
48
|
+
});
|
|
49
|
+
|
|
50
|
+
meetingsCmd
|
|
51
|
+
.command("show <meeting-id>")
|
|
52
|
+
.description("Print a stored meeting record")
|
|
53
|
+
.action(async (...args: unknown[]) => {
|
|
54
|
+
await forwardMeetings(["show", String(args[0] ?? "")]);
|
|
55
|
+
});
|
|
56
|
+
|
|
57
|
+
meetingsCmd
|
|
58
|
+
.command("build")
|
|
59
|
+
.description("Detect + fuse + store the day's meetings")
|
|
60
|
+
.option("--date <date>", "Day to build (YYYY-MM-DD)")
|
|
61
|
+
.option("--json", "JSON output")
|
|
62
|
+
.action(async (...args: unknown[]) => {
|
|
63
|
+
const options = (args[0] ?? {}) as Record<string, unknown>;
|
|
64
|
+
await forwardMeetings([
|
|
65
|
+
"build",
|
|
66
|
+
...(typeof options.date === "string" ? ["--date", options.date] : []),
|
|
67
|
+
...(options.json === true ? ["--json"] : []),
|
|
68
|
+
]);
|
|
69
|
+
});
|
|
70
|
+
}
|
package/src/cli.ts
CHANGED
|
@@ -13,6 +13,7 @@ import { ThreadingManager } from "./threading.js";
|
|
|
13
13
|
import { bumpMemoryCorpusVersionForDir } from "./memory-corpus-version.js";
|
|
14
14
|
import { utcDayRange } from "./transcript.js";
|
|
15
15
|
import { runWearablesCliCommand } from "./wearables/cli.js";
|
|
16
|
+
import { registerMeetingsCommands } from "./cli/meetings-commands.js";
|
|
16
17
|
import { registerResearchStatusCommands } from "./cli/research-status-commands.js";
|
|
17
18
|
import { registerCreationLedgerCommands } from "./cli/creation-ledger-commands.js";
|
|
18
19
|
import type {
|
|
@@ -5197,11 +5198,11 @@ export function registerCli(
|
|
|
5197
5198
|
"Wearable transcript sources (Limitless / Bee / Omi): sync, transcripts, search, speakers, corrections",
|
|
5198
5199
|
);
|
|
5199
5200
|
const forwardWearables = async (argv: string[]): Promise<void> => {
|
|
5200
|
-
const
|
|
5201
|
-
|
|
5202
|
-
|
|
5203
|
-
|
|
5204
|
-
|
|
5201
|
+
const io = { stdout: process.stdout, stderr: process.stderr };
|
|
5202
|
+
const code = await runWearablesCliCommand(orchestrator.getWearablesService(), argv, io);
|
|
5203
|
+
if (argv[0] === "sync" && code === 0 && orchestrator.config.meetings.enabled) { // drain debounced build
|
|
5204
|
+
await (await orchestrator.getMeetingsService()).flushBuilds();
|
|
5205
|
+
}
|
|
5205
5206
|
if (code !== 0) process.exitCode = code;
|
|
5206
5207
|
};
|
|
5207
5208
|
const stringOpt = (options: Record<string, unknown>, key: string, flag: string): string[] =>
|
|
@@ -6230,7 +6231,7 @@ export function registerCli(
|
|
|
6230
6231
|
|
|
6231
6232
|
registerResearchStatusCommands(cmd, orchestrator);
|
|
6232
6233
|
|
|
6233
|
-
registerCreationLedgerCommands(cmd, orchestrator);
|
|
6234
|
+
registerCreationLedgerCommands(cmd, orchestrator); registerMeetingsCommands(cmd, orchestrator);
|
|
6234
6235
|
|
|
6235
6236
|
cmd
|
|
6236
6237
|
.command("trust-zone-promote")
|
|
@@ -0,0 +1,52 @@
|
|
|
1
|
+
import type { ExtractionFailureClass } from "./types.js";
|
|
2
|
+
import { isTransientHttpError } from "./connectors/live/transient-errors.js";
|
|
3
|
+
|
|
4
|
+
/**
|
|
5
|
+
* Read a numeric HTTP status off a thrown error without re-implementing the
|
|
6
|
+
* shared transient classifier. Uses `in`/typeof narrowing (no inline casts).
|
|
7
|
+
*/
|
|
8
|
+
function httpStatusFromError(err: unknown): number | undefined {
|
|
9
|
+
if (!err || typeof err !== "object") return undefined;
|
|
10
|
+
if ("status" in err && typeof err.status === "number" && Number.isFinite(err.status)) return err.status;
|
|
11
|
+
if ("statusCode" in err && typeof err.statusCode === "number" && Number.isFinite(err.statusCode)) {
|
|
12
|
+
return err.statusCode;
|
|
13
|
+
}
|
|
14
|
+
return undefined;
|
|
15
|
+
}
|
|
16
|
+
|
|
17
|
+
/**
|
|
18
|
+
* Map a thrown extraction error to a coarse failure class for the retry/breaker
|
|
19
|
+
* layer. 401/403 → `auth_config` (misconfigured provider, open the breaker);
|
|
20
|
+
* transient (429/5xx/network, per the shared `isTransientHttpError`) → back off;
|
|
21
|
+
* anything else defaults to `provider_retryable` (fail-open toward retry, but
|
|
22
|
+
* capped by the per-fingerprint attempt budget). Never throws.
|
|
23
|
+
*/
|
|
24
|
+
export function classifyExtractionThrownError(err: unknown): ExtractionFailureClass {
|
|
25
|
+
try {
|
|
26
|
+
const status = httpStatusFromError(err);
|
|
27
|
+
if (status === 401 || status === 403) return "auth_config";
|
|
28
|
+
if (isTransientHttpError(err)) return "provider_retryable";
|
|
29
|
+
return "provider_retryable";
|
|
30
|
+
} catch {
|
|
31
|
+
return "provider_retryable";
|
|
32
|
+
}
|
|
33
|
+
}
|
|
34
|
+
|
|
35
|
+
/**
|
|
36
|
+
* Map the gateway fallback's discriminated parse-failure reason to a coarse
|
|
37
|
+
* extraction failure class. "no models configured" is an auth/config problem;
|
|
38
|
+
* an HTTP/transport failure backs off; an unparseable-but-present response is a
|
|
39
|
+
* genuine empty-parse.
|
|
40
|
+
*/
|
|
41
|
+
export function classifyFallbackParseFailure(
|
|
42
|
+
reason: "no_models" | "empty" | "http_error",
|
|
43
|
+
): ExtractionFailureClass {
|
|
44
|
+
switch (reason) {
|
|
45
|
+
case "no_models":
|
|
46
|
+
return "auth_config";
|
|
47
|
+
case "http_error":
|
|
48
|
+
return "provider_retryable";
|
|
49
|
+
case "empty":
|
|
50
|
+
return "parse_empty";
|
|
51
|
+
}
|
|
52
|
+
}
|
package/src/extraction.ts
CHANGED
|
@@ -40,7 +40,8 @@ import { normalizeProcedureSteps } from "./procedural/procedure-types.js";
|
|
|
40
40
|
import { normalizeReasoningTrace } from "./reasoning-trace-types.js";
|
|
41
41
|
import { looksLikeMechanicalTelemetryTranscript } from "./telemetry-transcript.js";
|
|
42
42
|
import { buildFactProvenance, type ProvenanceTurnInput } from "./provenance.js";
|
|
43
|
-
import {
|
|
43
|
+
import { classifyExtractionThrownError, classifyFallbackParseFailure } from "./extraction-error-classification.js";
|
|
44
|
+
export { classifyExtractionThrownError, classifyFallbackParseFailure } from "./extraction-error-classification.js";
|
|
44
45
|
import { resolvePipelineProcessingCapabilities } from "./capabilities.js";
|
|
45
46
|
import { resolveMemoryLifecycleCapabilities,
|
|
46
47
|
resolveLocalLlmCapabilities,resolveRecallAuxiliaryCapabilities } from "./capabilities.js";
|
|
@@ -50,55 +51,6 @@ type ExtractedFactResult = ExtractionResult["facts"][number];
|
|
|
50
51
|
type ExtractedEntityResult = ExtractionResult["entities"][number];
|
|
51
52
|
type ExtractedRelationshipResult = NonNullable<ExtractionResult["relationships"]>[number];
|
|
52
53
|
|
|
53
|
-
/**
|
|
54
|
-
* Read a numeric HTTP status off a thrown error without re-implementing the
|
|
55
|
-
* shared transient classifier. Uses `in`/typeof narrowing (no inline casts).
|
|
56
|
-
*/
|
|
57
|
-
function httpStatusFromError(err: unknown): number | undefined {
|
|
58
|
-
if (!err || typeof err !== "object") return undefined;
|
|
59
|
-
if ("status" in err && typeof err.status === "number" && Number.isFinite(err.status)) return err.status;
|
|
60
|
-
if ("statusCode" in err && typeof err.statusCode === "number" && Number.isFinite(err.statusCode)) {
|
|
61
|
-
return err.statusCode;
|
|
62
|
-
}
|
|
63
|
-
return undefined;
|
|
64
|
-
}
|
|
65
|
-
|
|
66
|
-
/**
|
|
67
|
-
* Map a thrown extraction error to a coarse failure class for the retry/breaker
|
|
68
|
-
* layer. 401/403 → `auth_config` (misconfigured provider, open the breaker);
|
|
69
|
-
* transient (429/5xx/network, per the shared `isTransientHttpError`) → back off;
|
|
70
|
-
* anything else defaults to `provider_retryable` (fail-open toward retry, but
|
|
71
|
-
* capped by the per-fingerprint attempt budget). Never throws.
|
|
72
|
-
*/
|
|
73
|
-
export function classifyExtractionThrownError(err: unknown): ExtractionFailureClass {
|
|
74
|
-
try {
|
|
75
|
-
const status = httpStatusFromError(err);
|
|
76
|
-
if (status === 401 || status === 403) return "auth_config";
|
|
77
|
-
if (isTransientHttpError(err)) return "provider_retryable";
|
|
78
|
-
return "provider_retryable";
|
|
79
|
-
} catch {
|
|
80
|
-
return "provider_retryable";
|
|
81
|
-
}
|
|
82
|
-
}
|
|
83
|
-
|
|
84
|
-
/**
|
|
85
|
-
* Map the gateway fallback's discriminated parse-failure reason to a coarse
|
|
86
|
-
* extraction failure class. "no models configured" is an auth/config problem;
|
|
87
|
-
* an HTTP/transport failure backs off; an unparseable-but-present response is a
|
|
88
|
-
* genuine empty-parse.
|
|
89
|
-
*/
|
|
90
|
-
export function classifyFallbackParseFailure(
|
|
91
|
-
reason: "no_models" | "empty" | "http_error",
|
|
92
|
-
): ExtractionFailureClass {
|
|
93
|
-
switch (reason) {
|
|
94
|
-
case "no_models":
|
|
95
|
-
return "auth_config";
|
|
96
|
-
case "http_error":
|
|
97
|
-
return "provider_retryable";
|
|
98
|
-
case "empty":
|
|
99
|
-
return "parse_empty";
|
|
100
|
-
}
|
|
101
|
-
}
|
|
102
54
|
const PROACTIVE_MIN_CONFIDENCE = 0.8;
|
|
103
55
|
const CONSOLIDATION_RESPONSE_SCHEMA = `{
|
|
104
56
|
"items": [
|
|
@@ -21,6 +21,8 @@ export const MCP_READ_ONLY_TOOL_SUFFIXES: Readonly<Record<string, true>> = {
|
|
|
21
21
|
transcript_day: true,
|
|
22
22
|
transcript_search: true,
|
|
23
23
|
transcript_memories: true,
|
|
24
|
+
meetings_list: true,
|
|
25
|
+
meetings_get: true,
|
|
24
26
|
action_confidence: true,
|
|
25
27
|
capsule_list: true,
|
|
26
28
|
procedural_stats: true,
|