@remnic/core 9.3.622 → 9.3.624

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 (141) hide show
  1. package/dist/access-cli.js +24 -24
  2. package/dist/access-http.js +9 -9
  3. package/dist/access-mcp.js +8 -8
  4. package/dist/access-service.js +7 -7
  5. package/dist/briefing.js +4 -4
  6. package/dist/buffer-surprise.js +3 -3
  7. package/dist/calibration.js +2 -2
  8. package/dist/causal-consolidation.js +8 -8
  9. package/dist/{chunk-UK727RHF.js → chunk-2L54V4ZO.js} +3 -3
  10. package/dist/{chunk-YPNGPHNZ.js → chunk-2UFQYU5F.js} +2 -2
  11. package/dist/{chunk-XAZOWLW4.js → chunk-3VONWEQB.js} +3 -3
  12. package/dist/{chunk-BF7ZRHH2.js → chunk-66SLUXKM.js} +2 -2
  13. package/dist/{chunk-VNR3K2R3.js → chunk-7TPH6UZL.js} +14 -14
  14. package/dist/{chunk-AVHPSLQ2.js → chunk-AYHXQR53.js} +2 -2
  15. package/dist/{chunk-LANHQ7EN.js → chunk-BNW5NJJH.js} +2 -2
  16. package/dist/{chunk-6GMPIJAZ.js → chunk-C3IW2F5Z.js} +2 -2
  17. package/dist/{chunk-4NS2ELXF.js → chunk-FG76RDVI.js} +8 -10
  18. package/dist/chunk-FG76RDVI.js.map +1 -0
  19. package/dist/{chunk-3GM7ZY6H.js → chunk-FMGWXIES.js} +4 -4
  20. package/dist/{chunk-LMZ7XQBB.js → chunk-GLWW3EJQ.js} +3 -3
  21. package/dist/{chunk-2GRRN7SZ.js → chunk-GYTVOLNX.js} +2 -2
  22. package/dist/{chunk-IMA6GU4Y.js → chunk-H3PHZLMF.js} +3 -3
  23. package/dist/chunk-H3PHZLMF.js.map +1 -0
  24. package/dist/{chunk-XQUIHXNI.js → chunk-I6UCUHLK.js} +4 -4
  25. package/dist/{chunk-2I2MDQIB.js → chunk-I74SUMNI.js} +2 -2
  26. package/dist/chunk-I74SUMNI.js.map +1 -0
  27. package/dist/{chunk-4H5ZJHEN.js → chunk-J6A3CX5N.js} +8 -3
  28. package/dist/{chunk-4H5ZJHEN.js.map → chunk-J6A3CX5N.js.map} +1 -1
  29. package/dist/{chunk-DEVUWMME.js → chunk-KGIGRNR6.js} +2 -2
  30. package/dist/{chunk-EOLCAPOU.js → chunk-KQFQ3IS5.js} +5 -5
  31. package/dist/{chunk-QSVPYQPG.js → chunk-LDXUBPMO.js} +2 -2
  32. package/dist/chunk-LDXUBPMO.js.map +1 -0
  33. package/dist/{chunk-JFEKNTX7.js → chunk-LN4YGHTM.js} +6 -2
  34. package/dist/chunk-LN4YGHTM.js.map +1 -0
  35. package/dist/{chunk-WB3LYXC5.js → chunk-MON3LMO7.js} +3 -3
  36. package/dist/{chunk-GA3PMY73.js → chunk-O4UNM6OR.js} +2 -2
  37. package/dist/{chunk-4G2RQTAE.js → chunk-OZXVGYGZ.js} +2 -2
  38. package/dist/{chunk-WCYKT2DE.js → chunk-P4BC54KI.js} +23 -14
  39. package/dist/chunk-P4BC54KI.js.map +1 -0
  40. package/dist/{chunk-DXBCNDVD.js → chunk-PJGB7XRR.js} +5 -5
  41. package/dist/chunk-PJGB7XRR.js.map +1 -0
  42. package/dist/{chunk-ZNCDQZIS.js → chunk-QFQQFX2H.js} +3 -3
  43. package/dist/{chunk-ZNCDQZIS.js.map → chunk-QFQQFX2H.js.map} +1 -1
  44. package/dist/{chunk-CCNZM5UM.js → chunk-R3OQGYOU.js} +2 -2
  45. package/dist/{chunk-UZB5KHKX.js → chunk-RGMVMVMF.js} +2 -2
  46. package/dist/chunk-RGMVMVMF.js.map +1 -0
  47. package/dist/{chunk-EDP57PFC.js → chunk-RKW6QR7W.js} +22 -18
  48. package/dist/chunk-RKW6QR7W.js.map +1 -0
  49. package/dist/{chunk-4MHHUPNH.js → chunk-UGEBPVNI.js} +3 -3
  50. package/dist/{chunk-4WMCPJWX.js → chunk-UQ7RN5HK.js} +22 -13
  51. package/dist/chunk-UQ7RN5HK.js.map +1 -0
  52. package/dist/{chunk-ZUNNG6PC.js → chunk-W3BKVM64.js} +2 -2
  53. package/dist/{chunk-K5O2QY6T.js → chunk-YTWNKQ2G.js} +2 -2
  54. package/dist/chunk-YTWNKQ2G.js.map +1 -0
  55. package/dist/{chunk-2SGJY2UY.js → chunk-Z3CCEP6F.js} +3 -3
  56. package/dist/{chunk-UCGCSZP2.js → chunk-ZZPIJPPD.js} +2 -2
  57. package/dist/chunking.js +1 -1
  58. package/dist/cli.js +19 -19
  59. package/dist/compounding/engine.js +4 -4
  60. package/dist/connectors/codex-materialize-runner.js +5 -5
  61. package/dist/connectors/codex-materialize.js +1 -1
  62. package/dist/connectors/index.js +5 -5
  63. package/dist/contradiction/index.js +2 -2
  64. package/dist/{contradiction-scan-GD7KUFWS.js → contradiction-scan-AZTGFMPY.js} +3 -3
  65. package/dist/entity-retrieval.js +4 -4
  66. package/dist/explicit-capture.js +1 -1
  67. package/dist/extraction-judge.js +3 -3
  68. package/dist/extraction.js +3 -3
  69. package/dist/fallback-llm.js +2 -2
  70. package/dist/identity-continuity.js +1 -1
  71. package/dist/index.js +39 -36
  72. package/dist/index.js.map +1 -1
  73. package/dist/json-extract.js +1 -1
  74. package/dist/maintenance/memory-governance.js +4 -4
  75. package/dist/maintenance/rebuild-memory-lifecycle-ledger.js +4 -4
  76. package/dist/maintenance/rebuild-memory-projection.js +5 -5
  77. package/dist/namespaces/migrate.js +5 -5
  78. package/dist/namespaces/storage.js +4 -4
  79. package/dist/operator-toolkit.js +7 -7
  80. package/dist/orchestrator.js +21 -21
  81. package/dist/peers/index.js +1 -1
  82. package/dist/recall-planner-llm.js +2 -2
  83. package/dist/semantic-chunking.js +2 -2
  84. package/dist/semantic-consolidation.js +6 -6
  85. package/dist/semantic-rule-promotion.js +4 -4
  86. package/dist/semantic-rule-verifier.js +4 -4
  87. package/dist/source-attribution.js +1 -1
  88. package/dist/storage.js +3 -3
  89. package/dist/summarizer.js +3 -3
  90. package/dist/temporal-supersession.js +1 -1
  91. package/dist/verified-recall.js +4 -4
  92. package/package.json +1 -1
  93. package/src/access-http.ts +15 -8
  94. package/src/chunking.ts +38 -23
  95. package/src/coding/review-context.ts +7 -1
  96. package/src/connectors/codex-materialize.ts +6 -1
  97. package/src/explicit-capture.ts +7 -2
  98. package/src/identity-continuity.ts +7 -1
  99. package/src/json-extract.ts +4 -1
  100. package/src/orchestrator.ts +5 -1
  101. package/src/peers/profile-reasoner.ts +4 -1
  102. package/src/semantic-chunking.ts +32 -16
  103. package/src/semantic-consolidation.ts +4 -1
  104. package/src/source-attribution.test.ts +21 -0
  105. package/src/source-attribution.ts +17 -2
  106. package/src/storage.ts +11 -2
  107. package/src/temporal-supersession.ts +4 -1
  108. package/dist/chunk-2I2MDQIB.js.map +0 -1
  109. package/dist/chunk-4NS2ELXF.js.map +0 -1
  110. package/dist/chunk-4WMCPJWX.js.map +0 -1
  111. package/dist/chunk-DXBCNDVD.js.map +0 -1
  112. package/dist/chunk-EDP57PFC.js.map +0 -1
  113. package/dist/chunk-IMA6GU4Y.js.map +0 -1
  114. package/dist/chunk-JFEKNTX7.js.map +0 -1
  115. package/dist/chunk-K5O2QY6T.js.map +0 -1
  116. package/dist/chunk-QSVPYQPG.js.map +0 -1
  117. package/dist/chunk-UZB5KHKX.js.map +0 -1
  118. package/dist/chunk-WCYKT2DE.js.map +0 -1
  119. /package/dist/{chunk-UK727RHF.js.map → chunk-2L54V4ZO.js.map} +0 -0
  120. /package/dist/{chunk-YPNGPHNZ.js.map → chunk-2UFQYU5F.js.map} +0 -0
  121. /package/dist/{chunk-XAZOWLW4.js.map → chunk-3VONWEQB.js.map} +0 -0
  122. /package/dist/{chunk-BF7ZRHH2.js.map → chunk-66SLUXKM.js.map} +0 -0
  123. /package/dist/{chunk-VNR3K2R3.js.map → chunk-7TPH6UZL.js.map} +0 -0
  124. /package/dist/{chunk-AVHPSLQ2.js.map → chunk-AYHXQR53.js.map} +0 -0
  125. /package/dist/{chunk-LANHQ7EN.js.map → chunk-BNW5NJJH.js.map} +0 -0
  126. /package/dist/{chunk-6GMPIJAZ.js.map → chunk-C3IW2F5Z.js.map} +0 -0
  127. /package/dist/{chunk-3GM7ZY6H.js.map → chunk-FMGWXIES.js.map} +0 -0
  128. /package/dist/{chunk-LMZ7XQBB.js.map → chunk-GLWW3EJQ.js.map} +0 -0
  129. /package/dist/{chunk-2GRRN7SZ.js.map → chunk-GYTVOLNX.js.map} +0 -0
  130. /package/dist/{chunk-XQUIHXNI.js.map → chunk-I6UCUHLK.js.map} +0 -0
  131. /package/dist/{chunk-DEVUWMME.js.map → chunk-KGIGRNR6.js.map} +0 -0
  132. /package/dist/{chunk-EOLCAPOU.js.map → chunk-KQFQ3IS5.js.map} +0 -0
  133. /package/dist/{chunk-WB3LYXC5.js.map → chunk-MON3LMO7.js.map} +0 -0
  134. /package/dist/{chunk-GA3PMY73.js.map → chunk-O4UNM6OR.js.map} +0 -0
  135. /package/dist/{chunk-4G2RQTAE.js.map → chunk-OZXVGYGZ.js.map} +0 -0
  136. /package/dist/{chunk-CCNZM5UM.js.map → chunk-R3OQGYOU.js.map} +0 -0
  137. /package/dist/{chunk-4MHHUPNH.js.map → chunk-UGEBPVNI.js.map} +0 -0
  138. /package/dist/{chunk-ZUNNG6PC.js.map → chunk-W3BKVM64.js.map} +0 -0
  139. /package/dist/{chunk-2SGJY2UY.js.map → chunk-Z3CCEP6F.js.map} +0 -0
  140. /package/dist/{chunk-UCGCSZP2.js.map → chunk-ZZPIJPPD.js.map} +0 -0
  141. /package/dist/{contradiction-scan-GD7KUFWS.js.map → contradiction-scan-AZTGFMPY.js.map} +0 -0
package/dist/index.js CHANGED
@@ -1,4 +1,4 @@
1
- import "./chunk-2I2MDQIB.js";
1
+ import "./chunk-I74SUMNI.js";
2
2
  import {
3
3
  PEERS_DIR_NAME,
4
4
  PEER_ID_MAX_LENGTH,
@@ -49,7 +49,7 @@ import {
49
49
  ACTIVE_STATUSES,
50
50
  judgeContradictionPairs,
51
51
  runContradictionScan
52
- } from "./chunk-6GMPIJAZ.js";
52
+ } from "./chunk-C3IW2F5Z.js";
53
53
  import {
54
54
  executeResolution,
55
55
  isValidResolutionVerb
@@ -93,7 +93,7 @@ import {
93
93
  listTrainingExportAdapters,
94
94
  registerTrainingExportAdapter,
95
95
  runBulkImportCliCommand
96
- } from "./chunk-VNR3K2R3.js";
96
+ } from "./chunk-7TPH6UZL.js";
97
97
  import "./chunk-MC4FJXPA.js";
98
98
  import "./chunk-LQHDIS7L.js";
99
99
  import "./chunk-7F7Z6MOS.js";
@@ -115,8 +115,8 @@ import "./chunk-PYIFUBRK.js";
115
115
  import "./chunk-WMWVO45V.js";
116
116
  import "./chunk-D6RIFG4O.js";
117
117
  import "./chunk-JCK7V6SN.js";
118
- import "./chunk-GA3PMY73.js";
119
- import "./chunk-LMZ7XQBB.js";
118
+ import "./chunk-O4UNM6OR.js";
119
+ import "./chunk-GLWW3EJQ.js";
120
120
  import "./chunk-KJTKLXTH.js";
121
121
  import {
122
122
  clearBulkImportSources,
@@ -134,7 +134,7 @@ import {
134
134
  validateImportTurn
135
135
  } from "./chunk-PU44GBL4.js";
136
136
  import "./chunk-YR6GIWWY.js";
137
- import "./chunk-UCGCSZP2.js";
137
+ import "./chunk-ZZPIJPPD.js";
138
138
  import "./chunk-FH3PPO42.js";
139
139
  import {
140
140
  parseXrayBudgetFlag,
@@ -145,8 +145,8 @@ import {
145
145
  isAgentAccessSecretRef,
146
146
  resolveAgentAccessAuthToken
147
147
  } from "./chunk-TGQ2NTWH.js";
148
- import "./chunk-3GM7ZY6H.js";
149
- import "./chunk-AVHPSLQ2.js";
148
+ import "./chunk-FMGWXIES.js";
149
+ import "./chunk-AYHXQR53.js";
150
150
  import {
151
151
  parseStrictCliDate
152
152
  } from "./chunk-3T74IZB3.js";
@@ -162,7 +162,7 @@ import {
162
162
  import {
163
163
  DEFAULT_SURPRISE_K,
164
164
  computeSurprise
165
- } from "./chunk-BF7ZRHH2.js";
165
+ } from "./chunk-66SLUXKM.js";
166
166
  import {
167
167
  getMemoryForActiveMemory,
168
168
  recallForActiveMemory
@@ -182,7 +182,7 @@ import {
182
182
  saveTaxonomy,
183
183
  validateSlug,
184
184
  validateTaxonomy
185
- } from "./chunk-EDP57PFC.js";
185
+ } from "./chunk-RKW6QR7W.js";
186
186
  import "./chunk-5RIRL3XL.js";
187
187
  import {
188
188
  migrateFromEngram,
@@ -204,7 +204,7 @@ import "./chunk-UWK5OXUJ.js";
204
204
  import "./chunk-TECVW3JP.js";
205
205
  import "./chunk-T2PO5MUF.js";
206
206
  import "./chunk-HP5FMB6L.js";
207
- import "./chunk-UK727RHF.js";
207
+ import "./chunk-2L54V4ZO.js";
208
208
  import "./chunk-DRD2Q7HQ.js";
209
209
  import "./chunk-LXOM6IQU.js";
210
210
  import {
@@ -217,10 +217,10 @@ import {
217
217
  buildTargetedFactRecallSection,
218
218
  shouldRecallTargetedFactEvidence
219
219
  } from "./chunk-VWT3F4IV.js";
220
- import "./chunk-K5O2QY6T.js";
220
+ import "./chunk-YTWNKQ2G.js";
221
221
  import "./chunk-MDYG7VI7.js";
222
222
  import "./chunk-VOUOLGIP.js";
223
- import "./chunk-XAZOWLW4.js";
223
+ import "./chunk-3VONWEQB.js";
224
224
  import "./chunk-XJNBEDFE.js";
225
225
  import "./chunk-MHQC2WU2.js";
226
226
  import {
@@ -275,10 +275,10 @@ import {
275
275
  judgeFactDurability,
276
276
  normalizeCachedVerdict,
277
277
  verdictCacheSize
278
- } from "./chunk-2SGJY2UY.js";
278
+ } from "./chunk-Z3CCEP6F.js";
279
279
  import {
280
280
  ExtractionEngine
281
- } from "./chunk-WB3LYXC5.js";
281
+ } from "./chunk-MON3LMO7.js";
282
282
  import "./chunk-4RA3C3EV.js";
283
283
  import "./chunk-ROZJACKP.js";
284
284
  import "./chunk-54V4BZWP.js";
@@ -292,7 +292,7 @@ import {
292
292
  } from "./chunk-DB5A3NHS.js";
293
293
  import {
294
294
  buildEntityRecallSection
295
- } from "./chunk-LANHQ7EN.js";
295
+ } from "./chunk-BNW5NJJH.js";
296
296
  import {
297
297
  buildEventOrderRecallSection,
298
298
  shouldRecallEventOrderEvidence
@@ -331,18 +331,18 @@ import {
331
331
  import "./chunk-OD4FM2U7.js";
332
332
  import {
333
333
  buildExtensionsBlockForConsolidation
334
- } from "./chunk-ZNCDQZIS.js";
334
+ } from "./chunk-QFQQFX2H.js";
335
335
  import {
336
336
  runCodexMaterialize,
337
337
  runPostConsolidationMaterialize
338
- } from "./chunk-4MHHUPNH.js";
338
+ } from "./chunk-UGEBPVNI.js";
339
339
  import {
340
340
  MATERIALIZE_VERSION,
341
341
  SENTINEL_FILE,
342
342
  describeMemoriesDir,
343
343
  ensureSentinel,
344
344
  materializeForNamespace
345
- } from "./chunk-JFEKNTX7.js";
345
+ } from "./chunk-LN4YGHTM.js";
346
346
  import {
347
347
  REMNIC_EXTENSIONS_TOTAL_TOKEN_LIMIT,
348
348
  discoverMemoryExtensions,
@@ -354,9 +354,9 @@ import "./chunk-2PRQG7PV.js";
354
354
  import "./chunk-X6IRLNOO.js";
355
355
  import "./chunk-2F6NP3NT.js";
356
356
  import "./chunk-TERNBNJB.js";
357
- import "./chunk-CCNZM5UM.js";
357
+ import "./chunk-R3OQGYOU.js";
358
358
  import "./chunk-W4RVMTHR.js";
359
- import "./chunk-YPNGPHNZ.js";
359
+ import "./chunk-2UFQYU5F.js";
360
360
  import "./chunk-ZRWB5D4H.js";
361
361
  import "./chunk-A6D7A2FW.js";
362
362
  import "./chunk-FF4KLI5W.js";
@@ -381,7 +381,7 @@ import {
381
381
  ALL_CATEGORY_DIRS,
382
382
  ALL_CATEGORY_KEYS,
383
383
  getCategoryDir
384
- } from "./chunk-ZUNNG6PC.js";
384
+ } from "./chunk-W3BKVM64.js";
385
385
  import "./chunk-ZFXCQPNO.js";
386
386
  import "./chunk-Q6YIJGXJ.js";
387
387
  import "./chunk-ORFGK3XI.js";
@@ -443,18 +443,18 @@ import {
443
443
  runConnectorPollOnce
444
444
  } from "./chunk-OKTXM5H4.js";
445
445
  import "./chunk-3UXOZBHV.js";
446
- import "./chunk-WCYKT2DE.js";
447
- import "./chunk-4WMCPJWX.js";
446
+ import "./chunk-P4BC54KI.js";
447
+ import "./chunk-UQ7RN5HK.js";
448
448
  import {
449
449
  SmartBuffer
450
450
  } from "./chunk-IBTZEBUD.js";
451
451
  import {
452
452
  FallbackLlmClient
453
- } from "./chunk-DEVUWMME.js";
453
+ } from "./chunk-KGIGRNR6.js";
454
454
  import "./chunk-B5XMS73R.js";
455
455
  import "./chunk-7SI52C65.js";
456
456
  import "./chunk-L2EXJQJP.js";
457
- import "./chunk-UZB5KHKX.js";
457
+ import "./chunk-RGMVMVMF.js";
458
458
  import {
459
459
  setCodexCliFallbackRunnerForProcess
460
460
  } from "./chunk-RK6F44Y6.js";
@@ -478,7 +478,7 @@ import "./chunk-PVGDJXVK.js";
478
478
  import "./chunk-OADWQ5CR.js";
479
479
  import {
480
480
  EngramAccessHttpServer
481
- } from "./chunk-4NS2ELXF.js";
481
+ } from "./chunk-FG76RDVI.js";
482
482
  import "./chunk-SEDEKFYQ.js";
483
483
  import "./chunk-2QSZNTDO.js";
484
484
  import "./chunk-RSUYKGGZ.js";
@@ -488,7 +488,7 @@ import "./chunk-J64TK33U.js";
488
488
  import "./chunk-7RXCMVFQ.js";
489
489
  import {
490
490
  EngramMcpServer
491
- } from "./chunk-XQUIHXNI.js";
491
+ } from "./chunk-I6UCUHLK.js";
492
492
  import {
493
493
  REMNIC_CHATGPT_MEMORY_INSPECTOR_CANONICAL_TOOL,
494
494
  REMNIC_CHATGPT_MEMORY_INSPECTOR_MIME_TYPE,
@@ -509,7 +509,7 @@ import {
509
509
  EngramAccessService,
510
510
  computeProcedureStats,
511
511
  formatProcedureStatsText
512
- } from "./chunk-EOLCAPOU.js";
512
+ } from "./chunk-KQFQ3IS5.js";
513
513
  import "./chunk-GDASG7NC.js";
514
514
  import "./chunk-GDB4J2H3.js";
515
515
  import {
@@ -526,7 +526,7 @@ import {
526
526
  import "./chunk-SOBJ6NEY.js";
527
527
  import "./chunk-BT7NVCML.js";
528
528
  import "./chunk-H7XKCNR6.js";
529
- import "./chunk-2GRRN7SZ.js";
529
+ import "./chunk-GYTVOLNX.js";
530
530
  import {
531
531
  branchNamespaceName,
532
532
  describeCodingScope,
@@ -564,7 +564,7 @@ import {
564
564
  buildProcedureMarkdownBody,
565
565
  parseProcedureStepsFromBody
566
566
  } from "./chunk-QDW3E4RD.js";
567
- import "./chunk-IMA6GU4Y.js";
567
+ import "./chunk-H3PHZLMF.js";
568
568
  import {
569
569
  CrossNamespaceBudget,
570
570
  DEFAULT_CROSS_NAMESPACE_BUDGET
@@ -584,12 +584,12 @@ import {
584
584
  renderBriefingMarkdown,
585
585
  resolveBriefingSaveDir,
586
586
  validateBriefingFormat
587
- } from "./chunk-4G2RQTAE.js";
587
+ } from "./chunk-OZXVGYGZ.js";
588
588
  import {
589
589
  StorageManager,
590
590
  parseEntityFile,
591
591
  serializeEntityFile
592
- } from "./chunk-DXBCNDVD.js";
592
+ } from "./chunk-PJGB7XRR.js";
593
593
  import "./chunk-5UZXUTVO.js";
594
594
  import {
595
595
  CITATION_UNKNOWN,
@@ -601,7 +601,7 @@ import {
601
601
  parseAllCitations,
602
602
  parseCitation,
603
603
  stripCitation
604
- } from "./chunk-4H5ZJHEN.js";
604
+ } from "./chunk-J6A3CX5N.js";
605
605
  import {
606
606
  DEFAULT_RECALL_DISCLOSURE,
607
607
  RECALL_DISCLOSURE_LEVELS,
@@ -616,7 +616,7 @@ import "./chunk-MB5RSUW6.js";
616
616
  import "./chunk-6KYMPV2O.js";
617
617
  import "./chunk-CPPS65WS.js";
618
618
  import "./chunk-DM2T26WE.js";
619
- import "./chunk-QSVPYQPG.js";
619
+ import "./chunk-LDXUBPMO.js";
620
620
  import "./chunk-FVQJYWH7.js";
621
621
  import "./chunk-G7D6GZ5J.js";
622
622
  import {
@@ -780,7 +780,10 @@ function parseTouchedFiles(diff) {
780
780
  }
781
781
  const headerPrefix = line.match(/^(?:---|\+\+\+)[ \t]+/);
782
782
  if (headerPrefix) {
783
- const tail = line.slice(headerPrefix[0].length).replace(/[ \t]+$/, "");
783
+ const sliced = line.slice(headerPrefix[0].length);
784
+ let tailEnd = sliced.length;
785
+ while (tailEnd > 0 && (sliced[tailEnd - 1] === " " || sliced[tailEnd - 1] === " ")) tailEnd--;
786
+ const tail = sliced.slice(0, tailEnd);
784
787
  const raw = extractSingleDiffPathToken(tail);
785
788
  if (raw) {
786
789
  const stripped = stripDiffPathPrefix(raw);