@remnic/core 9.5.0 → 9.6.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.
Files changed (296) hide show
  1. package/dist/access-admin-ops-surface.d.ts +6 -6
  2. package/dist/access-admin-ops-surface.js +12 -12
  3. package/dist/access-boundary.d.ts +6 -6
  4. package/dist/access-boundary.js +13 -13
  5. package/dist/access-cli.js +36 -36
  6. package/dist/access-http.d.ts +6 -6
  7. package/dist/access-http.js +17 -17
  8. package/dist/access-identity-continuity-surface.d.ts +5 -5
  9. package/dist/access-identity-continuity-surface.js +12 -12
  10. package/dist/access-lcm-surface.d.ts +6 -6
  11. package/dist/access-lcm-surface.js +12 -12
  12. package/dist/access-mcp.d.ts +6 -6
  13. package/dist/access-mcp.js +16 -16
  14. package/dist/access-observe-write-surface.d.ts +6 -6
  15. package/dist/access-observe-write-surface.js +12 -12
  16. package/dist/access-operations-batch.js +14 -14
  17. package/dist/access-operations.d.ts +7 -7
  18. package/dist/access-operations.js +15 -15
  19. package/dist/access-recall-surface.d.ts +6 -6
  20. package/dist/access-recall-surface.js +12 -12
  21. package/dist/access-schema.d.ts +4 -4
  22. package/dist/{access-service-DZX0sYAv.d.ts → access-service-CXJaql3A.d.ts} +4 -4
  23. package/dist/access-service.d.ts +6 -6
  24. package/dist/access-service.js +12 -12
  25. package/dist/access-surface-catalog.d.ts +6 -6
  26. package/dist/action-confidence.d.ts +1 -1
  27. package/dist/active-memory-bridge.d.ts +1 -1
  28. package/dist/active-recall.d.ts +1 -1
  29. package/dist/active-recall.js +1 -1
  30. package/dist/{auto-sync-G6IU7L6C.js → auto-sync-4A5YBWYO.js} +3 -3
  31. package/dist/behavior-learner.d.ts +1 -1
  32. package/dist/behavior-signals.d.ts +1 -1
  33. package/dist/bootstrap.d.ts +5 -5
  34. package/dist/briefing.d.ts +2 -2
  35. package/dist/briefing.js +4 -4
  36. package/dist/buffer-surprise-report.d.ts +1 -1
  37. package/dist/buffer.d.ts +2 -2
  38. package/dist/calibration.d.ts +1 -1
  39. package/dist/capabilities.d.ts +1 -1
  40. package/dist/{catalog-DoH2b0OR.d.ts → catalog-C9cu67Ig.d.ts} +1 -1
  41. package/dist/causal-behavior.d.ts +1 -1
  42. package/dist/causal-consolidation.d.ts +1 -1
  43. package/dist/causal-consolidation.js +5 -5
  44. package/dist/causal-trajectory-graph.d.ts +1 -1
  45. package/dist/{chunk-H5PFR5ZT.js → chunk-23JFRB73.js} +2 -2
  46. package/dist/{chunk-BGMSRN6I.js → chunk-3XIY7MDQ.js} +3 -3
  47. package/dist/{chunk-L2QJQSHL.js → chunk-4GNEDXDI.js} +2 -2
  48. package/dist/{chunk-MFDJ63U5.js → chunk-4LV23CHK.js} +2 -2
  49. package/dist/{chunk-AER6MT24.js → chunk-6SXVCD7W.js} +2 -2
  50. package/dist/{chunk-2SFEFR5I.js → chunk-72WG5QKN.js} +2 -2
  51. package/dist/{chunk-7BAJAXGB.js → chunk-7MW3CVLD.js} +2 -2
  52. package/dist/{chunk-SNNIUDRS.js → chunk-AYZJID4S.js} +2 -2
  53. package/dist/{chunk-M7XQSUBB.js → chunk-B3ABVQ36.js} +116 -9
  54. package/dist/chunk-B3ABVQ36.js.map +1 -0
  55. package/dist/{chunk-LNHJ32NK.js → chunk-BEM4D2QG.js} +3 -3
  56. package/dist/{chunk-AOYJVCFN.js → chunk-CYWA2CXR.js} +2 -2
  57. package/dist/{chunk-2JFDHI2K.js → chunk-DEG5ULFJ.js} +2 -2
  58. package/dist/{chunk-L6V3WJ55.js → chunk-DS7MM2ES.js} +3 -3
  59. package/dist/{chunk-CXEL3Y22.js → chunk-FKCRGLRD.js} +184 -29
  60. package/dist/{chunk-CXEL3Y22.js.map → chunk-FKCRGLRD.js.map} +1 -1
  61. package/dist/{chunk-TI7IHDBQ.js → chunk-H2DXDQCQ.js} +5 -5
  62. package/dist/{chunk-KMF67QDQ.js → chunk-HLN7RROI.js} +4 -4
  63. package/dist/{chunk-D2XYYU5Q.js → chunk-J3XHPFEU.js} +2 -2
  64. package/dist/{chunk-ODSYJXDU.js → chunk-JSNVWNGX.js} +2 -2
  65. package/dist/{chunk-7Z2DZNWN.js → chunk-KL4UAXUY.js} +43 -2
  66. package/dist/{chunk-7Z2DZNWN.js.map → chunk-KL4UAXUY.js.map} +1 -1
  67. package/dist/{chunk-4WNLSSHL.js → chunk-LADFWYHY.js} +4 -4
  68. package/dist/{chunk-UBGAOYBP.js → chunk-LR5DZ56F.js} +2 -2
  69. package/dist/{chunk-5K5VEDFY.js → chunk-N3JDIRBW.js} +2 -2
  70. package/dist/{chunk-2B7DP7AP.js → chunk-P454KXD6.js} +93 -15
  71. package/dist/chunk-P454KXD6.js.map +1 -0
  72. package/dist/{chunk-VWEWK2BM.js → chunk-PCLIWBGD.js} +3 -3
  73. package/dist/{chunk-TV7C3HCB.js → chunk-PNLFN2PZ.js} +2 -2
  74. package/dist/{chunk-STCCFQU5.js → chunk-PVUJ6WVV.js} +6 -6
  75. package/dist/{chunk-ITWTKT2R.js → chunk-RGK27ELN.js} +2 -2
  76. package/dist/{chunk-II6WHCCW.js → chunk-SIRPLF54.js} +2 -2
  77. package/dist/{chunk-UDCDGP6A.js → chunk-SVOHGUMI.js} +1188 -112
  78. package/dist/chunk-SVOHGUMI.js.map +1 -0
  79. package/dist/{chunk-NFTABV56.js → chunk-TLUDFPZL.js} +2 -2
  80. package/dist/{chunk-I74ZEBMA.js → chunk-UFUKHGZD.js} +4 -4
  81. package/dist/{chunk-L4UZBJNM.js → chunk-UTRJFDP2.js} +2 -2
  82. package/dist/{chunk-5GPPACXK.js → chunk-VSMRDBFT.js} +2 -1
  83. package/dist/{chunk-SNBEVJBX.js → chunk-XCL57M6Q.js} +3 -3
  84. package/dist/{chunk-DZSAXE3T.js → chunk-Y7UNNAZD.js} +2 -2
  85. package/dist/{chunk-XN3TUUX2.js → chunk-YQB32INI.js} +2 -2
  86. package/dist/{cli-1dghPCO2.d.ts → cli-CqdPA6z9.d.ts} +3 -3
  87. package/dist/cli.d.ts +7 -7
  88. package/dist/cli.js +29 -29
  89. package/dist/compounding/engine.d.ts +2 -2
  90. package/dist/compounding/engine.js +4 -4
  91. package/dist/compounding/preference-consolidator.d.ts +1 -1
  92. package/dist/compression-optimizer.d.ts +1 -1
  93. package/dist/config.d.ts +1 -1
  94. package/dist/config.js +1 -1
  95. package/dist/connectors/codex-materialize-runner.d.ts +1 -1
  96. package/dist/connectors/codex-materialize-runner.js +4 -4
  97. package/dist/connectors/codex-materialize.d.ts +1 -1
  98. package/dist/connectors/index.d.ts +1 -1
  99. package/dist/connectors/index.js +4 -4
  100. package/dist/consolidation-provenance-check.d.ts +2 -2
  101. package/dist/consolidation-undo.d.ts +2 -2
  102. package/dist/contradiction/index.d.ts +2 -2
  103. package/dist/conversation-index/backend.d.ts +1 -1
  104. package/dist/conversation-index/chunker.d.ts +1 -1
  105. package/dist/conversation-index/faiss-adapter.d.ts +1 -1
  106. package/dist/conversation-index/indexer.d.ts +1 -1
  107. package/dist/conversation-index/search.d.ts +1 -1
  108. package/dist/day-summary.d.ts +1 -1
  109. package/dist/delinearize.d.ts +1 -1
  110. package/dist/direct-answer-wiring.d.ts +1 -1
  111. package/dist/direct-answer.d.ts +1 -1
  112. package/dist/embedding-fallback.d.ts +1 -1
  113. package/dist/enrichment/index.d.ts +1 -1
  114. package/dist/entity-retrieval.d.ts +2 -2
  115. package/dist/entity-retrieval.js +4 -4
  116. package/dist/entity-schema.d.ts +1 -1
  117. package/dist/explicit-capture.d.ts +5 -5
  118. package/dist/extraction-faithfulness.d.ts +1 -1
  119. package/dist/extraction-judge-telemetry.d.ts +1 -1
  120. package/dist/extraction-judge-training.d.ts +1 -1
  121. package/dist/extraction-judge.d.ts +1 -1
  122. package/dist/extraction.d.ts +1 -1
  123. package/dist/fallback-llm.d.ts +1 -1
  124. package/dist/graph-dashboard-diff.d.ts +1 -1
  125. package/dist/graph-dashboard-key.d.ts +1 -1
  126. package/dist/graph-dashboard-parser.d.ts +1 -1
  127. package/dist/graph-edge-reinforcement.d.ts +1 -1
  128. package/dist/graph-snapshot.d.ts +1 -1
  129. package/dist/graph.d.ts +1 -1
  130. package/dist/identity-continuity.d.ts +1 -1
  131. package/dist/importance.d.ts +1 -1
  132. package/dist/index.d.ts +268 -17
  133. package/dist/index.js +80 -38
  134. package/dist/intent.d.ts +1 -1
  135. package/dist/lcm/engine.d.ts +1 -1
  136. package/dist/lcm/index.d.ts +1 -1
  137. package/dist/lcm/tools.d.ts +1 -1
  138. package/dist/lifecycle.d.ts +1 -1
  139. package/dist/live-connectors-runner.d.ts +1 -1
  140. package/dist/local-llm.d.ts +1 -1
  141. package/dist/local-model-endpoint.d.ts +1 -1
  142. package/dist/maintenance/memory-governance.d.ts +1 -1
  143. package/dist/maintenance/memory-governance.js +4 -4
  144. package/dist/maintenance/rebuild-memory-lifecycle-ledger.js +4 -4
  145. package/dist/maintenance/rebuild-memory-projection.js +5 -5
  146. package/dist/mcp-memory-inspector-app.d.ts +6 -6
  147. package/dist/memory-action-policy.d.ts +1 -1
  148. package/dist/memory-cache.d.ts +1 -1
  149. package/dist/memory-lifecycle-ledger-utils.d.ts +1 -1
  150. package/dist/memory-projection-store.d.ts +1 -1
  151. package/dist/memory-provenance.d.ts +1 -1
  152. package/dist/memory-worth-outcomes.d.ts +2 -2
  153. package/dist/models-json.d.ts +1 -1
  154. package/dist/namespaces/migrate.d.ts +3 -3
  155. package/dist/namespaces/migrate.js +11 -11
  156. package/dist/namespaces/principal.d.ts +1 -1
  157. package/dist/namespaces/search.d.ts +1 -1
  158. package/dist/namespaces/search.js +7 -7
  159. package/dist/namespaces/storage.d.ts +3 -3
  160. package/dist/namespaces/storage.js +4 -4
  161. package/dist/native-knowledge.d.ts +1 -1
  162. package/dist/operator-toolkit.d.ts +2 -2
  163. package/dist/operator-toolkit.js +15 -15
  164. package/dist/orchestration/compression-guideline-coordinator.d.ts +2 -2
  165. package/dist/orchestration/maintenance.d.ts +2 -2
  166. package/dist/orchestration/maintenance.js +6 -6
  167. package/dist/{orchestrator-Dh3WSW_O.d.ts → orchestrator-CWFrT8AF.d.ts} +91 -60
  168. package/dist/orchestrator.d.ts +5 -5
  169. package/dist/orchestrator.js +36 -36
  170. package/dist/patterns-cli.d.ts +1 -1
  171. package/dist/policy-runtime.d.ts +1 -1
  172. package/dist/provenance.d.ts +1 -1
  173. package/dist/{qmd-DoUVxqND.d.ts → qmd--fnPMK60.d.ts} +1 -1
  174. package/dist/qmd-preflight.d.ts +2 -2
  175. package/dist/qmd-recall-cache.d.ts +1 -1
  176. package/dist/qmd.d.ts +2 -2
  177. package/dist/recall-disclosure-escalation.d.ts +1 -1
  178. package/dist/recall-explain-renderer.d.ts +1 -1
  179. package/dist/recall-planner-llm.d.ts +1 -1
  180. package/dist/recall-state.d.ts +1 -1
  181. package/dist/recall-tag-filter.d.ts +1 -1
  182. package/dist/recall-timings.d.ts +1 -1
  183. package/dist/recall-xray-cli.d.ts +1 -1
  184. package/dist/recall-xray-renderer.d.ts +1 -1
  185. package/dist/recall-xray.d.ts +1 -1
  186. package/dist/resolve-auth-token.d.ts +1 -1
  187. package/dist/resume-bundles.js +2 -2
  188. package/dist/retrieval-agents.d.ts +2 -2
  189. package/dist/retrieval-tiers.d.ts +1 -1
  190. package/dist/routing/engine.d.ts +1 -1
  191. package/dist/routing/store.d.ts +1 -1
  192. package/dist/schemas.d.ts +22 -22
  193. package/dist/search/document-scanner.js +2 -2
  194. package/dist/search/embed-helper.d.ts +1 -1
  195. package/dist/search/factory.d.ts +1 -1
  196. package/dist/search/factory.js +6 -6
  197. package/dist/search/index.d.ts +1 -1
  198. package/dist/search/index.js +6 -6
  199. package/dist/search/lancedb-backend.d.ts +1 -1
  200. package/dist/search/lancedb-backend.js +3 -3
  201. package/dist/search/meilisearch-backend.d.ts +1 -1
  202. package/dist/search/meilisearch-backend.js +3 -3
  203. package/dist/search/noop-backend.d.ts +1 -1
  204. package/dist/search/orama-backend.d.ts +1 -1
  205. package/dist/search/orama-backend.js +3 -3
  206. package/dist/search/port.d.ts +1 -1
  207. package/dist/search/remote-backend.d.ts +1 -1
  208. package/dist/{semantic-consolidation-Dof1865o.d.ts → semantic-consolidation-O5lMZ4LG.d.ts} +1 -1
  209. package/dist/semantic-consolidation.d.ts +2 -2
  210. package/dist/semantic-consolidation.js +5 -5
  211. package/dist/semantic-rule-promotion.js +4 -4
  212. package/dist/semantic-rule-verifier.d.ts +1 -1
  213. package/dist/semantic-rule-verifier.js +4 -4
  214. package/dist/session-observer-bands.d.ts +1 -1
  215. package/dist/session-observer-state.d.ts +1 -1
  216. package/dist/shared-context/manager.d.ts +1 -1
  217. package/dist/signal.d.ts +1 -1
  218. package/dist/storage-C1maCNbc.d.ts +1591 -0
  219. package/dist/storage.d.ts +5 -1239
  220. package/dist/storage.js +3 -3
  221. package/dist/summarizer.d.ts +1 -1
  222. package/dist/summary-snapshot.d.ts +1 -1
  223. package/dist/temporal-supersession.d.ts +2 -2
  224. package/dist/temporal-validity.d.ts +1 -1
  225. package/dist/threading.d.ts +1 -1
  226. package/dist/tier-migration.d.ts +2 -2
  227. package/dist/tier-routing.d.ts +1 -1
  228. package/dist/topics.d.ts +1 -1
  229. package/dist/transcript.d.ts +1 -1
  230. package/dist/transfer/types.d.ts +12 -12
  231. package/dist/trust-score-stage.d.ts +1 -1
  232. package/dist/trust-score.d.ts +1 -1
  233. package/dist/{types-C7HUgOuA.d.ts → types-CGgcNWCG.d.ts} +31 -1
  234. package/dist/types.d.ts +1 -1
  235. package/dist/utility-runtime.d.ts +1 -1
  236. package/dist/verified-recall.js +4 -4
  237. package/package.json +2 -2
  238. package/src/cli-wearables-fuse.test.ts +197 -0
  239. package/src/cli.ts +25 -0
  240. package/src/storage.ts +16 -0
  241. package/src/wearables/cli.test.ts +102 -0
  242. package/src/wearables/cli.ts +65 -0
  243. package/src/wearables/config.test.ts +32 -0
  244. package/src/wearables/config.ts +52 -0
  245. package/src/wearables/day-store.test.ts +246 -0
  246. package/src/wearables/day-store.ts +272 -3
  247. package/src/wearables/fusion/cluster.ts +230 -0
  248. package/src/wearables/fusion/fuse.ts +218 -0
  249. package/src/wearables/fusion/fusion.test.ts +2575 -0
  250. package/src/wearables/fusion/index.ts +50 -0
  251. package/src/wearables/fusion/reconcile.ts +831 -0
  252. package/src/wearables/fusion/reconstruct.ts +251 -0
  253. package/src/wearables/fusion/store.ts +480 -0
  254. package/src/wearables/fusion/types.ts +228 -0
  255. package/src/wearables/index.ts +41 -0
  256. package/src/wearables/service.test.ts +1030 -2
  257. package/src/wearables/service.ts +258 -16
  258. package/src/wearables/speakers.test.ts +128 -0
  259. package/src/wearables/speakers.ts +58 -4
  260. package/src/wearables/storage-io.test.ts +146 -0
  261. package/src/wearables/types.ts +31 -0
  262. package/dist/chunk-2B7DP7AP.js.map +0 -1
  263. package/dist/chunk-M7XQSUBB.js.map +0 -1
  264. package/dist/chunk-UDCDGP6A.js.map +0 -1
  265. /package/dist/{auto-sync-G6IU7L6C.js.map → auto-sync-4A5YBWYO.js.map} +0 -0
  266. /package/dist/{chunk-H5PFR5ZT.js.map → chunk-23JFRB73.js.map} +0 -0
  267. /package/dist/{chunk-BGMSRN6I.js.map → chunk-3XIY7MDQ.js.map} +0 -0
  268. /package/dist/{chunk-L2QJQSHL.js.map → chunk-4GNEDXDI.js.map} +0 -0
  269. /package/dist/{chunk-MFDJ63U5.js.map → chunk-4LV23CHK.js.map} +0 -0
  270. /package/dist/{chunk-AER6MT24.js.map → chunk-6SXVCD7W.js.map} +0 -0
  271. /package/dist/{chunk-2SFEFR5I.js.map → chunk-72WG5QKN.js.map} +0 -0
  272. /package/dist/{chunk-7BAJAXGB.js.map → chunk-7MW3CVLD.js.map} +0 -0
  273. /package/dist/{chunk-SNNIUDRS.js.map → chunk-AYZJID4S.js.map} +0 -0
  274. /package/dist/{chunk-LNHJ32NK.js.map → chunk-BEM4D2QG.js.map} +0 -0
  275. /package/dist/{chunk-AOYJVCFN.js.map → chunk-CYWA2CXR.js.map} +0 -0
  276. /package/dist/{chunk-2JFDHI2K.js.map → chunk-DEG5ULFJ.js.map} +0 -0
  277. /package/dist/{chunk-L6V3WJ55.js.map → chunk-DS7MM2ES.js.map} +0 -0
  278. /package/dist/{chunk-TI7IHDBQ.js.map → chunk-H2DXDQCQ.js.map} +0 -0
  279. /package/dist/{chunk-KMF67QDQ.js.map → chunk-HLN7RROI.js.map} +0 -0
  280. /package/dist/{chunk-D2XYYU5Q.js.map → chunk-J3XHPFEU.js.map} +0 -0
  281. /package/dist/{chunk-ODSYJXDU.js.map → chunk-JSNVWNGX.js.map} +0 -0
  282. /package/dist/{chunk-4WNLSSHL.js.map → chunk-LADFWYHY.js.map} +0 -0
  283. /package/dist/{chunk-UBGAOYBP.js.map → chunk-LR5DZ56F.js.map} +0 -0
  284. /package/dist/{chunk-5K5VEDFY.js.map → chunk-N3JDIRBW.js.map} +0 -0
  285. /package/dist/{chunk-VWEWK2BM.js.map → chunk-PCLIWBGD.js.map} +0 -0
  286. /package/dist/{chunk-TV7C3HCB.js.map → chunk-PNLFN2PZ.js.map} +0 -0
  287. /package/dist/{chunk-STCCFQU5.js.map → chunk-PVUJ6WVV.js.map} +0 -0
  288. /package/dist/{chunk-ITWTKT2R.js.map → chunk-RGK27ELN.js.map} +0 -0
  289. /package/dist/{chunk-II6WHCCW.js.map → chunk-SIRPLF54.js.map} +0 -0
  290. /package/dist/{chunk-NFTABV56.js.map → chunk-TLUDFPZL.js.map} +0 -0
  291. /package/dist/{chunk-I74ZEBMA.js.map → chunk-UFUKHGZD.js.map} +0 -0
  292. /package/dist/{chunk-L4UZBJNM.js.map → chunk-UTRJFDP2.js.map} +0 -0
  293. /package/dist/{chunk-5GPPACXK.js.map → chunk-VSMRDBFT.js.map} +0 -0
  294. /package/dist/{chunk-SNBEVJBX.js.map → chunk-XCL57M6Q.js.map} +0 -0
  295. /package/dist/{chunk-DZSAXE3T.js.map → chunk-Y7UNNAZD.js.map} +0 -0
  296. /package/dist/{chunk-XN3TUUX2.js.map → chunk-YQB32INI.js.map} +0 -0
@@ -4,7 +4,7 @@ import {
4
4
  import {
5
5
  compareEntityTimestamps,
6
6
  normalizeEntityName
7
- } from "./chunk-UDCDGP6A.js";
7
+ } from "./chunk-SVOHGUMI.js";
8
8
  import {
9
9
  resolveNamespaceCapabilities
10
10
  } from "./chunk-VSF7AAGE.js";
@@ -682,4 +682,4 @@ export {
682
682
  entityIndexVersion,
683
683
  entityRecentTranscriptLookbackHours
684
684
  };
685
- //# sourceMappingURL=chunk-AOYJVCFN.js.map
685
+ //# sourceMappingURL=chunk-CYWA2CXR.js.map
@@ -1,6 +1,6 @@
1
1
  import {
2
2
  createSearchBackend
3
- } from "./chunk-KMF67QDQ.js";
3
+ } from "./chunk-HLN7RROI.js";
4
4
  import {
5
5
  namespaceIdentityToken,
6
6
  normalizeNamespaceIdentity
@@ -404,4 +404,4 @@ export {
404
404
  namespaceCollectionName,
405
405
  NamespaceSearchRouter
406
406
  };
407
- //# sourceMappingURL=chunk-2JFDHI2K.js.map
407
+ //# sourceMappingURL=chunk-DEG5ULFJ.js.map
@@ -1,9 +1,9 @@
1
1
  import {
2
2
  NamespaceStorageRouter
3
- } from "./chunk-TV7C3HCB.js";
3
+ } from "./chunk-PNLFN2PZ.js";
4
4
  import {
5
5
  namespaceCollectionName
6
- } from "./chunk-2JFDHI2K.js";
6
+ } from "./chunk-DEG5ULFJ.js";
7
7
  import {
8
8
  namespaceIdentityFromToken,
9
9
  namespaceIdentityToken
@@ -207,4 +207,4 @@ export {
207
207
  verifyNamespaces,
208
208
  runNamespaceMigration
209
209
  };
210
- //# sourceMappingURL=chunk-L6V3WJ55.js.map
210
+ //# sourceMappingURL=chunk-DS7MM2ES.js.map
@@ -4,10 +4,10 @@ import {
4
4
  loadSyncState,
5
5
  syncWearableSource,
6
6
  wearableSourceLabel
7
- } from "./chunk-D2XYYU5Q.js";
7
+ } from "./chunk-J3XHPFEU.js";
8
8
  import {
9
9
  MaintenanceScheduler
10
- } from "./chunk-H5PFR5ZT.js";
10
+ } from "./chunk-23JFRB73.js";
11
11
  import {
12
12
  runPeerProfileReasoner
13
13
  } from "./chunk-I74SUMNI.js";
@@ -29,7 +29,7 @@ import {
29
29
  import {
30
30
  CompoundingEngine,
31
31
  defaultTierMigrationCycleBudget
32
- } from "./chunk-SNNIUDRS.js";
32
+ } from "./chunk-AYZJID4S.js";
33
33
  import {
34
34
  SharedContextManager
35
35
  } from "./chunk-UI4FVU6T.js";
@@ -198,7 +198,7 @@ import {
198
198
  buildEntityRecallSection,
199
199
  entityRecentTranscriptLookbackHours,
200
200
  readRecentEntityTranscriptEntries
201
- } from "./chunk-AOYJVCFN.js";
201
+ } from "./chunk-CYWA2CXR.js";
202
202
  import {
203
203
  normalizeReplaySessionKey
204
204
  } from "./chunk-2PRQG7PV.js";
@@ -208,14 +208,14 @@ import {
208
208
  import {
209
209
  compareVerifiedEpisodeResults,
210
210
  searchVerifiedEpisodes
211
- } from "./chunk-II6WHCCW.js";
211
+ } from "./chunk-SIRPLF54.js";
212
212
  import {
213
213
  ThreadingManager
214
214
  } from "./chunk-DBRYEIGY.js";
215
215
  import {
216
216
  compareVerifiedSemanticRuleResults,
217
217
  searchVerifiedSemanticRules
218
- } from "./chunk-ITWTKT2R.js";
218
+ } from "./chunk-RGK27ELN.js";
219
219
  import {
220
220
  searchWorkProductLedgerEntries
221
221
  } from "./chunk-ZRWB5D4H.js";
@@ -228,14 +228,14 @@ import {
228
228
  import {
229
229
  runNamespaceMaintenanceFanout,
230
230
  summarizeNamespaceMaintenanceHealth
231
- } from "./chunk-STCCFQU5.js";
231
+ } from "./chunk-PVUJ6WVV.js";
232
232
  import {
233
233
  NamespaceCatalog,
234
234
  planNamespaceMaintenance
235
- } from "./chunk-MFDJ63U5.js";
235
+ } from "./chunk-4LV23CHK.js";
236
236
  import {
237
237
  NamespaceStorageRouter
238
- } from "./chunk-TV7C3HCB.js";
238
+ } from "./chunk-PNLFN2PZ.js";
239
239
  import {
240
240
  searchHarmonicRetrieval
241
241
  } from "./chunk-AV5ZEH4M.js";
@@ -270,7 +270,7 @@ import {
270
270
  materializeAfterSemanticConsolidation,
271
271
  parseConsolidationResponse,
272
272
  parseOperatorAwareConsolidationResponse
273
- } from "./chunk-UBGAOYBP.js";
273
+ } from "./chunk-LR5DZ56F.js";
274
274
  import {
275
275
  buildRecallQueryPolicy
276
276
  } from "./chunk-LBJBNWS2.js";
@@ -319,7 +319,7 @@ import {
319
319
  createCorrectionService,
320
320
  detectPassiveCorrections,
321
321
  qmdCollectionPathParts
322
- } from "./chunk-TI7IHDBQ.js";
322
+ } from "./chunk-H2DXDQCQ.js";
323
323
  import {
324
324
  importCapsule
325
325
  } from "./chunk-CYWCKFCL.js";
@@ -350,11 +350,11 @@ import {
350
350
  } from "./chunk-BAVVI5GP.js";
351
351
  import {
352
352
  NamespaceSearchRouter
353
- } from "./chunk-2JFDHI2K.js";
353
+ } from "./chunk-DEG5ULFJ.js";
354
354
  import {
355
355
  createConversationIndexRuntime,
356
356
  createSearchBackend
357
- } from "./chunk-KMF67QDQ.js";
357
+ } from "./chunk-HLN7RROI.js";
358
358
  import {
359
359
  NoopSearchBackend
360
360
  } from "./chunk-CYEPCZN5.js";
@@ -390,29 +390,38 @@ import {
390
390
  } from "./chunk-TBBDFYXW.js";
391
391
  import {
392
392
  buildChainFollowupGenerator
393
- } from "./chunk-DZSAXE3T.js";
393
+ } from "./chunk-Y7UNNAZD.js";
394
394
  import {
395
395
  ContentHashIndex,
396
396
  StorageManager,
397
397
  compareEntityTimestamps,
398
+ composeFusionDayMeta,
398
399
  fingerprintEntityStructuredFacts,
400
+ fuseDay,
401
+ hashFusionBody,
399
402
  normalizeAttributePairs,
400
403
  parseEntityFile,
401
- selfDeps
402
- } from "./chunk-UDCDGP6A.js";
404
+ parseFusionDay,
405
+ reconstructFusionInputs,
406
+ selfDeps,
407
+ serializeFusionDay
408
+ } from "./chunk-SVOHGUMI.js";
403
409
  import {
410
+ bodyIsEscaped,
411
+ decodeTranscriptBody,
412
+ escapeSegmentText,
404
413
  isValidTranscriptDate,
405
414
  loadSpeakerRegistry,
406
415
  parseDayTranscript,
407
416
  saveSpeakerRegistry,
408
417
  speakerRegistryKey
409
- } from "./chunk-M7XQSUBB.js";
418
+ } from "./chunk-B3ABVQ36.js";
410
419
  import {
411
420
  buildRetiredFactTombstoneInputs
412
421
  } from "./chunk-L2B3EE7B.js";
413
422
  import {
414
423
  assertPathInsideRoot
415
- } from "./chunk-5GPPACXK.js";
424
+ } from "./chunk-VSMRDBFT.js";
416
425
  import {
417
426
  applyTemporalSupersession,
418
427
  normalizeSupersessionKey,
@@ -12848,7 +12857,7 @@ var OrchestratorInitCoordinator = class {
12848
12857
  if (signal.aborted) return;
12849
12858
  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)) {
12850
12859
  try {
12851
- const { startWearablesAutoSync } = await import("./auto-sync-G6IU7L6C.js");
12860
+ const { startWearablesAutoSync } = await import("./auto-sync-4A5YBWYO.js");
12852
12861
  if (signal.aborted) return;
12853
12862
  this.deps.wearablesAutoSyncHandle = startWearablesAutoSync(
12854
12863
  {
@@ -13715,7 +13724,13 @@ Install it alongside Remnic:
13715
13724
  source,
13716
13725
  date,
13717
13726
  meta: parsed?.meta ?? null,
13718
- body: parsed?.body ?? raw,
13727
+ // Decode escaped segment text for display: the stored body is an
13728
+ // internal line-based serialization (newlines/backslashes escaped
13729
+ // so segment text survives the serialize -> reconstruct round
13730
+ // trip); user-facing view surfaces must show the original text.
13731
+ // The fusion reconstruct path reads raw bodies separately and
13732
+ // decodes once during parse, so this never double-decodes (#1849).
13733
+ body: decodeTranscriptBody(parsed?.body ?? raw, bodyIsEscaped(parsed?.meta)),
13719
13734
  overlapsWith: []
13720
13735
  });
13721
13736
  }
@@ -13730,6 +13745,131 @@ Install it alongside Remnic:
13730
13745
  const storage = await this.deps.getStorage();
13731
13746
  return storage.listWearableTranscriptDays(sourceId);
13732
13747
  }
13748
+ // -- cross-source fusion (#1810) -----------------------------------------
13749
+ /**
13750
+ * Fuse all enabled sources' stored transcripts for one day into a
13751
+ * derived `FusedWearableConversation[]` artifact. Deterministic and
13752
+ * idempotent: unchanged inputs and fusion config produce a stable
13753
+ * content hash and the derived file is left untouched on re-run. Requires
13754
+ * `wearables.fusion.enabled`; otherwise it throws. Raw per-source
13755
+ * transcripts are never modified.
13756
+ */
13757
+ async fuseDay(date) {
13758
+ this.assertEnabled();
13759
+ if (!this.deps.config.fusion.enabled) {
13760
+ throw new WearablesInputError(
13761
+ "wearables fusion is not enabled \u2014 set `wearables.fusion.enabled: true` in the plugin config"
13762
+ );
13763
+ }
13764
+ if (!isValidTranscriptDate(date)) {
13765
+ throw new WearablesInputError(`invalid date '${date}' \u2014 expected YYYY-MM-DD`);
13766
+ }
13767
+ const storage = await this.deps.getStorage();
13768
+ const enabled = this.enabledSources();
13769
+ const bodies = [];
13770
+ const sourceTimezones = [];
13771
+ for (const [source] of enabled) {
13772
+ const raw = await storage.readWearableDayTranscript(source, date);
13773
+ if (raw === null) continue;
13774
+ const parsed = parseDayTranscript(raw);
13775
+ bodies.push({
13776
+ source,
13777
+ body: parsed?.body ?? raw,
13778
+ escaped: bodyIsEscaped(parsed?.meta)
13779
+ });
13780
+ sourceTimezones.push(parsed?.meta.timezone ?? "");
13781
+ }
13782
+ const reconstructed = reconstructFusionInputs(date, bodies);
13783
+ const contributing = bodies.map((entry, i) => ({
13784
+ source: entry.source,
13785
+ timezone: sourceTimezones[i] ?? ""
13786
+ })).filter(
13787
+ (entry) => reconstructed.some((input) => input.source === entry.source)
13788
+ );
13789
+ if (contributing.length > 1) {
13790
+ const referenceTz = contributing[0].timezone;
13791
+ const allSameExplicitTz = referenceTz.trim().length > 0 && contributing.every((entry) => entry.timezone === referenceTz);
13792
+ if (!allSameExplicitTz) {
13793
+ const detail = contributing.map((entry) => `${entry.source}=${entry.timezone || "?"}`).join(", ");
13794
+ log.warn(
13795
+ `wearables fusion: skipping ${date} \u2014 sources were rendered under differing timezones (${detail}); reconstructFusionInputs only compares local clocks correctly when every source shares one explicit IANA timezone id`
13796
+ );
13797
+ await storage.fusionArtifactStore().deleteFusedDay(date);
13798
+ return {
13799
+ date,
13800
+ sources: [],
13801
+ conversationCount: 0,
13802
+ contentHash: "",
13803
+ written: false,
13804
+ skipped: { reason: "conflicting-timezones" }
13805
+ };
13806
+ }
13807
+ }
13808
+ const sourceTrust = {};
13809
+ for (const [id, settings] of enabled) {
13810
+ sourceTrust[id] = settings.sourceTrust;
13811
+ }
13812
+ const result = fuseDay(date, reconstructed, {
13813
+ proximityGapMs: this.deps.config.fusion.proximityGapMs,
13814
+ windowToleranceMs: this.deps.config.fusion.windowToleranceMs,
13815
+ sourceTrust
13816
+ });
13817
+ const existingRaw = await storage.fusionArtifactStore().readFusedDay(date);
13818
+ const existing = parseFusionDay(existingRaw ?? "");
13819
+ const parsedCleanly = existing?.parseOk === true;
13820
+ const skipUnchanged = existing !== null && parsedCleanly && existing.meta.contentHash === result.contentHash && existing.meta.bodyHash === hashFusionBody(existing.conversations);
13821
+ const written = !skipUnchanged;
13822
+ if (written) {
13823
+ const meta = composeFusionDayMeta(
13824
+ date,
13825
+ result.conversations,
13826
+ result.sources,
13827
+ result.contentHash,
13828
+ (/* @__PURE__ */ new Date()).toISOString()
13829
+ );
13830
+ await storage.fusionArtifactStore().writeFusedDay(
13831
+ date,
13832
+ serializeFusionDay(meta, result.conversations)
13833
+ );
13834
+ }
13835
+ return {
13836
+ date: result.date,
13837
+ sources: result.sources,
13838
+ conversationCount: result.conversations.length,
13839
+ contentHash: result.contentHash,
13840
+ written
13841
+ };
13842
+ }
13843
+ /**
13844
+ * List fused conversations for a date (the fusion listing surface).
13845
+ * Returns the persisted derived artifact's conversations, or an empty
13846
+ * array when no fused artifact has been written for that day. When a
13847
+ * file EXISTS but its body is corrupt (parseOk:false), throws
13848
+ * WearablesInputError so the caller can distinguish a broken artifact
13849
+ * from a day that was never fused — never silently returns an empty
13850
+ * list that looks identical to "no artifact" (issue #1849).
13851
+ */
13852
+ async fusedConversations(date) {
13853
+ if (!isValidTranscriptDate(date)) {
13854
+ throw new WearablesInputError(`invalid date '${date}' \u2014 expected YYYY-MM-DD`);
13855
+ }
13856
+ const storage = await this.deps.getStorage();
13857
+ const raw = await storage.fusionArtifactStore().readFusedDay(date);
13858
+ if (raw === null) return [];
13859
+ const parsed = parseFusionDay(raw);
13860
+ if (parsed === null) return [];
13861
+ if (!parsed.parseOk) {
13862
+ throw new WearablesInputError(
13863
+ `fused artifact for ${date} is corrupt \u2014 re-run \`wearables fuse ${date}\` to repair`
13864
+ );
13865
+ }
13866
+ return parsed.conversations;
13867
+ }
13868
+ /** List dates with stored fused artifacts, newest first. */
13869
+ async listFusedDays() {
13870
+ const storage = await this.deps.getStorage();
13871
+ return storage.fusionArtifactStore().listFusedDays();
13872
+ }
13733
13873
  /**
13734
13874
  * Search stored transcripts. Uses the indexed backend when available
13735
13875
  * and falls back to a bounded substring scan otherwise — the two
@@ -13763,25 +13903,36 @@ Install it alongside Remnic:
13763
13903
  return true;
13764
13904
  };
13765
13905
  if (this.deps.searchBackend) {
13766
- const hits = await this.deps.searchBackend.search(trimmed, limit * 5);
13767
- if (hits !== null) {
13768
- const results2 = [];
13906
+ const escaped = escapeSegmentText(trimmed);
13907
+ const queries = escaped === trimmed ? [trimmed] : [trimmed, escaped];
13908
+ const seen = /* @__PURE__ */ new Set();
13909
+ const results2 = [];
13910
+ const idxStorage = await this.deps.getStorage();
13911
+ for (const q of queries) {
13912
+ const hits = await this.deps.searchBackend.search(q, limit * 5);
13913
+ if (hits === null) break;
13769
13914
  for (const hit of hits) {
13770
13915
  const located = locateTranscriptPath(hit.path);
13771
13916
  if (!located) continue;
13772
13917
  if (!matchesScope(located.source, located.date)) continue;
13918
+ const dedupeKey = `${located.source}:${located.date}`;
13919
+ if (seen.has(dedupeKey)) continue;
13920
+ seen.add(dedupeKey);
13921
+ const idxRaw = await idxStorage.readWearableDayTranscript(located.source, located.date);
13922
+ const idxMeta = parseDayTranscript(idxRaw ?? "")?.meta ?? null;
13773
13923
  results2.push({
13774
13924
  source: located.source,
13775
13925
  date: located.date,
13776
13926
  score: hit.score,
13777
- snippet: hit.preview,
13927
+ snippet: decodeTranscriptBody(hit.preview, bodyIsEscaped(idxMeta)),
13778
13928
  backend: "indexed"
13779
13929
  });
13780
13930
  if (results2.length >= limit) break;
13781
13931
  }
13782
- if (results2.length > 0) {
13783
- return results2;
13784
- }
13932
+ if (results2.length >= limit) break;
13933
+ }
13934
+ if (results2.length > 0) {
13935
+ return results2;
13785
13936
  }
13786
13937
  }
13787
13938
  const storage = await this.deps.getStorage();
@@ -13792,7 +13943,11 @@ Install it alongside Remnic:
13792
13943
  if (!matchesScope(source, date)) continue;
13793
13944
  const raw = await storage.readWearableDayTranscript(source, date);
13794
13945
  if (raw === null) continue;
13795
- const body = parseDayTranscript(raw)?.body ?? raw;
13946
+ const scanParsed = parseDayTranscript(raw);
13947
+ const body = decodeTranscriptBody(
13948
+ scanParsed?.body ?? raw,
13949
+ bodyIsEscaped(scanParsed?.meta)
13950
+ );
13796
13951
  const lower = body.toLowerCase();
13797
13952
  const index = lower.indexOf(needle);
13798
13953
  if (index === -1) continue;
@@ -22713,4 +22868,4 @@ export {
22713
22868
  blendGraphExpandedRecallScore,
22714
22869
  Orchestrator
22715
22870
  };
22716
- //# sourceMappingURL=chunk-CXEL3Y22.js.map
22871
+ //# sourceMappingURL=chunk-FKCRGLRD.js.map