@remnic/core 9.69.26 → 9.69.28

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 (244) hide show
  1. package/dist/access-admin-ops-surface.d.ts +1 -1
  2. package/dist/access-admin-ops-surface.js +21 -21
  3. package/dist/access-authorization-probe.d.ts +1 -1
  4. package/dist/access-authorization-probe.js +22 -22
  5. package/dist/access-boundary.d.ts +1 -1
  6. package/dist/access-boundary.js +21 -21
  7. package/dist/access-cli.js +73 -73
  8. package/dist/access-extraction-force-flush.d.ts +1 -1
  9. package/dist/access-extraction-force-flush.js +21 -21
  10. package/dist/access-http-briefing.d.ts +1 -1
  11. package/dist/access-http-briefing.js +22 -22
  12. package/dist/access-http-lcm-compaction.d.ts +1 -1
  13. package/dist/access-http-lifecycle-flush.d.ts +1 -1
  14. package/dist/access-http-offline-stream.d.ts +1 -1
  15. package/dist/access-http-query.js +23 -23
  16. package/dist/access-http.d.ts +2 -2
  17. package/dist/access-http.js +38 -38
  18. package/dist/access-identity-continuity-surface.js +21 -21
  19. package/dist/access-lcm-surface.d.ts +1 -1
  20. package/dist/access-lcm-surface.js +21 -21
  21. package/dist/access-mcp.d.ts +1 -1
  22. package/dist/access-mcp.js +29 -29
  23. package/dist/access-namespace-preflight.js +21 -21
  24. package/dist/access-observe-write-surface.d.ts +1 -1
  25. package/dist/access-observe-write-surface.js +21 -21
  26. package/dist/access-operations-batch.js +23 -23
  27. package/dist/access-operations.d.ts +1 -1
  28. package/dist/access-operations.js +28 -28
  29. package/dist/access-recall-concurrency.d.ts +1 -1
  30. package/dist/access-recall-concurrency.js +21 -21
  31. package/dist/access-recall-response.d.ts +1 -1
  32. package/dist/access-recall-response.js +21 -21
  33. package/dist/access-recall-surface.d.ts +1 -1
  34. package/dist/access-recall-surface.js +21 -21
  35. package/dist/access-schema.js +3 -3
  36. package/dist/access-service-helpers.d.ts +1 -1
  37. package/dist/access-service.d.ts +1 -1
  38. package/dist/access-service.js +21 -21
  39. package/dist/access-surface-catalog.d.ts +1 -1
  40. package/dist/access-surface-catalog.js +23 -23
  41. package/dist/briefing.js +8 -8
  42. package/dist/buffer.js +4 -4
  43. package/dist/{capsule-crypto-YO5QJ6L3.js → capsule-crypto-7FJQINUR.js} +2 -2
  44. package/dist/causal-consolidation.js +9 -9
  45. package/dist/{chunk-N3ZOP7KC.js → chunk-2AMEUKCG.js} +2 -2
  46. package/dist/{chunk-BXLOS5AJ.js → chunk-2NLLXCJG.js} +2 -2
  47. package/dist/{chunk-MWN6QEI2.js → chunk-2YDWI2LO.js} +2 -2
  48. package/dist/{chunk-6XL73HQ4.js → chunk-3FEH4C4V.js} +1 -1
  49. package/dist/{chunk-ZUNNRGJX.js → chunk-4KMGFWQY.js} +7 -7
  50. package/dist/{chunk-R7RTXEYG.js → chunk-4P43SE4H.js} +2 -2
  51. package/dist/{chunk-U6N5IBVY.js → chunk-5ISVONB7.js} +2 -2
  52. package/dist/{chunk-OEYZXDQI.js → chunk-5KND6CSX.js} +2 -2
  53. package/dist/{chunk-AQ7SYDVO.js → chunk-5PTRLTK2.js} +2 -2
  54. package/dist/{chunk-FHYVNJBN.js → chunk-6TZWGQTT.js} +2 -2
  55. package/dist/{chunk-VDX2J7OX.js → chunk-7LCGFUMB.js} +4 -4
  56. package/dist/{chunk-227UFSEQ.js → chunk-7RZJWZ46.js} +5 -5
  57. package/dist/{chunk-GHTSNGBZ.js → chunk-ALBYEXFX.js} +2 -2
  58. package/dist/{chunk-Y2MZGBOY.js → chunk-BHHONFSK.js} +2 -2
  59. package/dist/{chunk-ZO2AZIRT.js → chunk-BIVJCVT2.js} +2 -2
  60. package/dist/{chunk-CEH2AFXG.js → chunk-C24UZSFW.js} +6 -6
  61. package/dist/{chunk-MZLV2OJE.js → chunk-C6XEXTSJ.js} +34 -34
  62. package/dist/{chunk-QBH7M7Q4.js → chunk-COUYFFID.js} +2 -2
  63. package/dist/{chunk-V4ZBR7CW.js → chunk-EIJR4PZL.js} +3 -3
  64. package/dist/{chunk-TVEONGBU.js → chunk-EZKSOM5K.js} +2 -2
  65. package/dist/{chunk-SJDQ5RSN.js → chunk-GC65K6DI.js} +3 -3
  66. package/dist/{chunk-6NXSYYGP.js → chunk-HLTAZTN7.js} +2 -2
  67. package/dist/{chunk-E2P7TZTF.js → chunk-HTPQJ32S.js} +2 -2
  68. package/dist/{chunk-MY5EDR46.js → chunk-I3OQBP23.js} +2 -2
  69. package/dist/{chunk-QOOBICJF.js → chunk-IE57QQSZ.js} +2 -2
  70. package/dist/{chunk-ZY4DSWZ5.js → chunk-IES4QHLM.js} +4 -4
  71. package/dist/{chunk-2EKJDQZB.js → chunk-INBOGQ3E.js} +2 -2
  72. package/dist/{chunk-3GGUMRS4.js → chunk-MSSJSC2V.js} +2 -2
  73. package/dist/{chunk-KH6PK4EQ.js → chunk-MYB6DWE5.js} +6 -6
  74. package/dist/{chunk-WJHGDE7X.js → chunk-NC7RM2XS.js} +2 -2
  75. package/dist/{chunk-W24T5YMW.js → chunk-NOPN47AL.js} +2 -2
  76. package/dist/{chunk-RX3SC4C5.js → chunk-NVOFMARR.js} +2 -2
  77. package/dist/{chunk-JJ4XK25O.js → chunk-OMLGLMWL.js} +7 -7
  78. package/dist/{chunk-46ZPIGWI.js → chunk-OVAJKCN3.js} +2 -2
  79. package/dist/{chunk-EOQ6FSQP.js → chunk-OYHGTHVX.js} +2 -2
  80. package/dist/{chunk-5ATKSPEQ.js → chunk-PKS56ZRR.js} +2 -2
  81. package/dist/{chunk-6LLLREDJ.js → chunk-QW3FMKT2.js} +2 -2
  82. package/dist/{chunk-OU4K7IFP.js → chunk-R55WAWS3.js} +12 -12
  83. package/dist/{chunk-SO4IYSGT.js → chunk-R5T5FB2R.js} +40 -40
  84. package/dist/{chunk-6CVNSDCZ.js → chunk-RFWEDCRC.js} +3 -3
  85. package/dist/{chunk-FQ7HAWWC.js → chunk-RZN4LQ5Y.js} +17 -2
  86. package/dist/{chunk-FQ7HAWWC.js.map → chunk-RZN4LQ5Y.js.map} +1 -1
  87. package/dist/{chunk-GNMELJGM.js → chunk-S2DU3UBN.js} +4 -4
  88. package/dist/{chunk-VVX5PZFS.js → chunk-TDYAIXHK.js} +5 -5
  89. package/dist/{chunk-KAXCYM66.js → chunk-U6S754L6.js} +2 -2
  90. package/dist/{chunk-XM24CDZX.js → chunk-UEEN7GXR.js} +2 -2
  91. package/dist/{chunk-XSGUMQQQ.js → chunk-UY2RORVF.js} +2 -2
  92. package/dist/{chunk-THQTFTQS.js → chunk-UY7VPC6Q.js} +15 -15
  93. package/dist/{chunk-3NYTZE5G.js → chunk-W7OU4I3Y.js} +2 -2
  94. package/dist/{chunk-6VF3R3XQ.js → chunk-WFZBRS6N.js} +2 -2
  95. package/dist/{chunk-RBCQVOVJ.js → chunk-WOOTZ6DH.js} +3 -3
  96. package/dist/{chunk-DDB3S53L.js → chunk-WW3MR6T3.js} +2 -2
  97. package/dist/{chunk-2L5FSNPC.js → chunk-X2NFFBTO.js} +7 -7
  98. package/dist/{chunk-DQEMWVMT.js → chunk-X7Y7WX73.js} +1 -1
  99. package/dist/{chunk-XTJC7CVX.js → chunk-XR67IAXP.js} +2 -2
  100. package/dist/{chunk-5IEV3YBY.js → chunk-YFDJVB2K.js} +2 -2
  101. package/dist/{chunk-4TKJGOCJ.js → chunk-YGTSOVCR.js} +2 -2
  102. package/dist/{chunk-UCKYTA2T.js → chunk-YIHKAUS4.js} +3 -3
  103. package/dist/{chunk-WMLEPWMO.js → chunk-YJETZFLJ.js} +2 -2
  104. package/dist/{chunk-CGJV2YIY.js → chunk-Z5XE7AMC.js} +2 -2
  105. package/dist/{chunk-2Z4GS5E6.js → chunk-ZMNT26KV.js} +2 -2
  106. package/dist/{chunk-JEC4DVM3.js → chunk-ZNR5SVUI.js} +3 -3
  107. package/dist/{cli-B_YwqoIr.d.ts → cli-BqMNkQn5.d.ts} +1 -1
  108. package/dist/cli.d.ts +2 -2
  109. package/dist/cli.js +52 -52
  110. package/dist/coding/export-okf-codegraph.js +8 -8
  111. package/dist/compounding/engine.js +8 -8
  112. package/dist/connectors/codex-materialize-runner.js +8 -8
  113. package/dist/connectors/index.js +8 -8
  114. package/dist/convergence-refresh.js +10 -10
  115. package/dist/conversation-index/backend.js +2 -2
  116. package/dist/corpus-watermark.js +10 -10
  117. package/dist/deep-recall-http-glue.d.ts +1 -1
  118. package/dist/deep-recall-http-glue.js +4 -4
  119. package/dist/deep-recall-mcp-tools.d.ts +1 -1
  120. package/dist/entity-retrieval.js +8 -8
  121. package/dist/external-wiki-access.d.ts +1 -1
  122. package/dist/external-wiki-access.js +22 -22
  123. package/dist/external-wiki-mcp-tools.d.ts +1 -1
  124. package/dist/extraction.js +11 -11
  125. package/dist/harmonic-retrieval.js +1 -1
  126. package/dist/http-retry.d.ts +83 -0
  127. package/dist/http-retry.js +101 -0
  128. package/dist/http-retry.js.map +1 -0
  129. package/dist/importers/index.d.ts +21 -1
  130. package/dist/importers/index.js +3 -1
  131. package/dist/importers/test-utils.d.ts +24 -0
  132. package/dist/importers/test-utils.js +31 -0
  133. package/dist/importers/test-utils.js.map +1 -0
  134. package/dist/index.d.ts +7 -7
  135. package/dist/index.js +93 -91
  136. package/dist/lcm/engine.js +3 -3
  137. package/dist/lcm/index.js +6 -6
  138. package/dist/location/index.js +10 -10
  139. package/dist/maintenance/memory-governance.js +8 -8
  140. package/dist/maintenance/rebuild-memory-lifecycle-ledger.js +8 -8
  141. package/dist/maintenance/rebuild-memory-projection.js +9 -9
  142. package/dist/mcp-memory-inspector-app.d.ts +1 -1
  143. package/dist/memory-subject-cli.d.ts +1 -1
  144. package/dist/memory-subject.d.ts +1 -1
  145. package/dist/namespaces/migrate.js +9 -9
  146. package/dist/namespaces/search.js +6 -6
  147. package/dist/namespaces/storage.js +8 -8
  148. package/dist/operator-doctor-corpus.js +11 -11
  149. package/dist/operator-toolkit.js +16 -16
  150. package/dist/orchestration/maintenance.js +16 -16
  151. package/dist/orchestrator.js +74 -74
  152. package/dist/{public-http-D6d4W8x-.d.ts → public-http-ByX2eTla.d.ts} +1 -1
  153. package/dist/qmd.js +4 -4
  154. package/dist/schemas.d.ts +42 -42
  155. package/dist/search/factory.js +5 -5
  156. package/dist/search/index.js +5 -5
  157. package/dist/semantic-consolidation.js +9 -9
  158. package/dist/semantic-rule-promotion.js +8 -8
  159. package/dist/semantic-rule-verifier.js +8 -8
  160. package/dist/source-agent-qualifier.js +10 -10
  161. package/dist/standup/build.js +8 -8
  162. package/dist/storage.js +7 -7
  163. package/dist/support-passport/index.d.ts +4 -4
  164. package/dist/support-passport/index.js +24 -24
  165. package/dist/transfer/backup.js +2 -2
  166. package/dist/transfer/capsule-export.js +2 -2
  167. package/dist/transfer/capsule-import.js +2 -2
  168. package/dist/transfer/export-okf.js +9 -9
  169. package/dist/transfer/types.d.ts +12 -12
  170. package/dist/verified-recall.js +8 -8
  171. package/dist/who-knows-cli.d.ts +1 -1
  172. package/dist/who-knows-cli.js +9 -9
  173. package/dist/who-knows.d.ts +1 -1
  174. package/dist/who-knows.js +8 -8
  175. package/package.json +22 -2
  176. package/src/http-retry.test.ts +281 -0
  177. package/src/http-retry.ts +183 -0
  178. package/src/importers/base.ts +45 -0
  179. package/src/importers/index.test.ts +42 -0
  180. package/src/importers/index.ts +5 -0
  181. package/src/importers/test-utils.ts +44 -0
  182. package/src/index.ts +3 -0
  183. package/dist/{access-service-Cv8Rizo0.d.ts → access-service-GrdVg_-Z.d.ts} +6 -6
  184. /package/dist/{capsule-crypto-YO5QJ6L3.js.map → capsule-crypto-7FJQINUR.js.map} +0 -0
  185. /package/dist/{chunk-N3ZOP7KC.js.map → chunk-2AMEUKCG.js.map} +0 -0
  186. /package/dist/{chunk-BXLOS5AJ.js.map → chunk-2NLLXCJG.js.map} +0 -0
  187. /package/dist/{chunk-MWN6QEI2.js.map → chunk-2YDWI2LO.js.map} +0 -0
  188. /package/dist/{chunk-6XL73HQ4.js.map → chunk-3FEH4C4V.js.map} +0 -0
  189. /package/dist/{chunk-ZUNNRGJX.js.map → chunk-4KMGFWQY.js.map} +0 -0
  190. /package/dist/{chunk-R7RTXEYG.js.map → chunk-4P43SE4H.js.map} +0 -0
  191. /package/dist/{chunk-U6N5IBVY.js.map → chunk-5ISVONB7.js.map} +0 -0
  192. /package/dist/{chunk-OEYZXDQI.js.map → chunk-5KND6CSX.js.map} +0 -0
  193. /package/dist/{chunk-AQ7SYDVO.js.map → chunk-5PTRLTK2.js.map} +0 -0
  194. /package/dist/{chunk-FHYVNJBN.js.map → chunk-6TZWGQTT.js.map} +0 -0
  195. /package/dist/{chunk-VDX2J7OX.js.map → chunk-7LCGFUMB.js.map} +0 -0
  196. /package/dist/{chunk-227UFSEQ.js.map → chunk-7RZJWZ46.js.map} +0 -0
  197. /package/dist/{chunk-GHTSNGBZ.js.map → chunk-ALBYEXFX.js.map} +0 -0
  198. /package/dist/{chunk-Y2MZGBOY.js.map → chunk-BHHONFSK.js.map} +0 -0
  199. /package/dist/{chunk-ZO2AZIRT.js.map → chunk-BIVJCVT2.js.map} +0 -0
  200. /package/dist/{chunk-CEH2AFXG.js.map → chunk-C24UZSFW.js.map} +0 -0
  201. /package/dist/{chunk-MZLV2OJE.js.map → chunk-C6XEXTSJ.js.map} +0 -0
  202. /package/dist/{chunk-QBH7M7Q4.js.map → chunk-COUYFFID.js.map} +0 -0
  203. /package/dist/{chunk-V4ZBR7CW.js.map → chunk-EIJR4PZL.js.map} +0 -0
  204. /package/dist/{chunk-TVEONGBU.js.map → chunk-EZKSOM5K.js.map} +0 -0
  205. /package/dist/{chunk-SJDQ5RSN.js.map → chunk-GC65K6DI.js.map} +0 -0
  206. /package/dist/{chunk-6NXSYYGP.js.map → chunk-HLTAZTN7.js.map} +0 -0
  207. /package/dist/{chunk-E2P7TZTF.js.map → chunk-HTPQJ32S.js.map} +0 -0
  208. /package/dist/{chunk-MY5EDR46.js.map → chunk-I3OQBP23.js.map} +0 -0
  209. /package/dist/{chunk-QOOBICJF.js.map → chunk-IE57QQSZ.js.map} +0 -0
  210. /package/dist/{chunk-ZY4DSWZ5.js.map → chunk-IES4QHLM.js.map} +0 -0
  211. /package/dist/{chunk-2EKJDQZB.js.map → chunk-INBOGQ3E.js.map} +0 -0
  212. /package/dist/{chunk-3GGUMRS4.js.map → chunk-MSSJSC2V.js.map} +0 -0
  213. /package/dist/{chunk-KH6PK4EQ.js.map → chunk-MYB6DWE5.js.map} +0 -0
  214. /package/dist/{chunk-WJHGDE7X.js.map → chunk-NC7RM2XS.js.map} +0 -0
  215. /package/dist/{chunk-W24T5YMW.js.map → chunk-NOPN47AL.js.map} +0 -0
  216. /package/dist/{chunk-RX3SC4C5.js.map → chunk-NVOFMARR.js.map} +0 -0
  217. /package/dist/{chunk-JJ4XK25O.js.map → chunk-OMLGLMWL.js.map} +0 -0
  218. /package/dist/{chunk-46ZPIGWI.js.map → chunk-OVAJKCN3.js.map} +0 -0
  219. /package/dist/{chunk-EOQ6FSQP.js.map → chunk-OYHGTHVX.js.map} +0 -0
  220. /package/dist/{chunk-5ATKSPEQ.js.map → chunk-PKS56ZRR.js.map} +0 -0
  221. /package/dist/{chunk-6LLLREDJ.js.map → chunk-QW3FMKT2.js.map} +0 -0
  222. /package/dist/{chunk-OU4K7IFP.js.map → chunk-R55WAWS3.js.map} +0 -0
  223. /package/dist/{chunk-SO4IYSGT.js.map → chunk-R5T5FB2R.js.map} +0 -0
  224. /package/dist/{chunk-6CVNSDCZ.js.map → chunk-RFWEDCRC.js.map} +0 -0
  225. /package/dist/{chunk-GNMELJGM.js.map → chunk-S2DU3UBN.js.map} +0 -0
  226. /package/dist/{chunk-VVX5PZFS.js.map → chunk-TDYAIXHK.js.map} +0 -0
  227. /package/dist/{chunk-KAXCYM66.js.map → chunk-U6S754L6.js.map} +0 -0
  228. /package/dist/{chunk-XM24CDZX.js.map → chunk-UEEN7GXR.js.map} +0 -0
  229. /package/dist/{chunk-XSGUMQQQ.js.map → chunk-UY2RORVF.js.map} +0 -0
  230. /package/dist/{chunk-THQTFTQS.js.map → chunk-UY7VPC6Q.js.map} +0 -0
  231. /package/dist/{chunk-3NYTZE5G.js.map → chunk-W7OU4I3Y.js.map} +0 -0
  232. /package/dist/{chunk-6VF3R3XQ.js.map → chunk-WFZBRS6N.js.map} +0 -0
  233. /package/dist/{chunk-RBCQVOVJ.js.map → chunk-WOOTZ6DH.js.map} +0 -0
  234. /package/dist/{chunk-DDB3S53L.js.map → chunk-WW3MR6T3.js.map} +0 -0
  235. /package/dist/{chunk-2L5FSNPC.js.map → chunk-X2NFFBTO.js.map} +0 -0
  236. /package/dist/{chunk-DQEMWVMT.js.map → chunk-X7Y7WX73.js.map} +0 -0
  237. /package/dist/{chunk-XTJC7CVX.js.map → chunk-XR67IAXP.js.map} +0 -0
  238. /package/dist/{chunk-5IEV3YBY.js.map → chunk-YFDJVB2K.js.map} +0 -0
  239. /package/dist/{chunk-4TKJGOCJ.js.map → chunk-YGTSOVCR.js.map} +0 -0
  240. /package/dist/{chunk-UCKYTA2T.js.map → chunk-YIHKAUS4.js.map} +0 -0
  241. /package/dist/{chunk-WMLEPWMO.js.map → chunk-YJETZFLJ.js.map} +0 -0
  242. /package/dist/{chunk-CGJV2YIY.js.map → chunk-Z5XE7AMC.js.map} +0 -0
  243. /package/dist/{chunk-2Z4GS5E6.js.map → chunk-ZMNT26KV.js.map} +0 -0
  244. /package/dist/{chunk-JEC4DVM3.js.map → chunk-ZNR5SVUI.js.map} +0 -0
@@ -34,7 +34,7 @@ import "../chunk-C5C7IJ4Q.js";
34
34
  import "../chunk-EMDLM3LW.js";
35
35
  import {
36
36
  runCodexMaterialize
37
- } from "../chunk-KAXCYM66.js";
37
+ } from "../chunk-U6S754L6.js";
38
38
  import "../chunk-3UXOZBHV.js";
39
39
  import {
40
40
  MATERIALIZE_VERSION,
@@ -51,12 +51,12 @@ import {
51
51
  truncateToTokenBudget,
52
52
  validateMemoryMd
53
53
  } from "../chunk-KEF46KL2.js";
54
- import "../chunk-XSGUMQQQ.js";
54
+ import "../chunk-UY2RORVF.js";
55
55
  import "../chunk-UHVXE24Y.js";
56
56
  import "../chunk-46WM6JX2.js";
57
57
  import "../chunk-D5F7TKMH.js";
58
- import "../chunk-2Z4GS5E6.js";
59
- import "../chunk-6CVNSDCZ.js";
58
+ import "../chunk-ZMNT26KV.js";
59
+ import "../chunk-RFWEDCRC.js";
60
60
  import "../chunk-BD7JTBYP.js";
61
61
  import "../chunk-OB3XMWX5.js";
62
62
  import "../chunk-CYEPCZN5.js";
@@ -65,10 +65,10 @@ import "../chunk-YQNNHLCG.js";
65
65
  import "../chunk-4O6WRBGE.js";
66
66
  import "../chunk-6KTXE6A3.js";
67
67
  import "../chunk-GUMZC2BO.js";
68
- import "../chunk-227UFSEQ.js";
68
+ import "../chunk-7RZJWZ46.js";
69
+ import "../chunk-A7Q43EUZ.js";
69
70
  import "../chunk-ET356KSB.js";
70
71
  import "../chunk-72A4L5JJ.js";
71
- import "../chunk-A7Q43EUZ.js";
72
72
  import "../chunk-S2V7RUCL.js";
73
73
  import "../chunk-SO7SV523.js";
74
74
  import "../chunk-SCU65EZI.js";
@@ -90,10 +90,10 @@ import "../chunk-RBOJCG4T.js";
90
90
  import "../chunk-R7QY5ZVB.js";
91
91
  import "../chunk-5WITETWU.js";
92
92
  import "../chunk-6CIAGZ6X.js";
93
- import "../chunk-CEH2AFXG.js";
93
+ import "../chunk-C24UZSFW.js";
94
94
  import "../chunk-JXN77SGO.js";
95
- import "../chunk-IUM3VSHI.js";
96
95
  import "../chunk-ZLQ37WJX.js";
96
+ import "../chunk-IUM3VSHI.js";
97
97
  import "../chunk-3QQTXYZ6.js";
98
98
  import "../chunk-BT7NVCML.js";
99
99
  import "../chunk-C64XATK7.js";
@@ -1,16 +1,16 @@
1
1
  import {
2
2
  refreshConvergedNamespaces
3
- } from "./chunk-6NXSYYGP.js";
4
- import "./chunk-JEC4DVM3.js";
3
+ } from "./chunk-HLTAZTN7.js";
4
+ import "./chunk-ZNR5SVUI.js";
5
5
  import "./chunk-KJTKLXTH.js";
6
6
  import "./chunk-2DQ2XREU.js";
7
- import "./chunk-MY5EDR46.js";
8
- import "./chunk-XSGUMQQQ.js";
7
+ import "./chunk-I3OQBP23.js";
8
+ import "./chunk-UY2RORVF.js";
9
9
  import "./chunk-UHVXE24Y.js";
10
10
  import "./chunk-46WM6JX2.js";
11
11
  import "./chunk-D5F7TKMH.js";
12
- import "./chunk-2Z4GS5E6.js";
13
- import "./chunk-6CVNSDCZ.js";
12
+ import "./chunk-ZMNT26KV.js";
13
+ import "./chunk-RFWEDCRC.js";
14
14
  import "./chunk-BD7JTBYP.js";
15
15
  import "./chunk-OB3XMWX5.js";
16
16
  import "./chunk-CYEPCZN5.js";
@@ -19,10 +19,10 @@ import "./chunk-YQNNHLCG.js";
19
19
  import "./chunk-4O6WRBGE.js";
20
20
  import "./chunk-6KTXE6A3.js";
21
21
  import "./chunk-GUMZC2BO.js";
22
- import "./chunk-227UFSEQ.js";
22
+ import "./chunk-7RZJWZ46.js";
23
+ import "./chunk-A7Q43EUZ.js";
23
24
  import "./chunk-ET356KSB.js";
24
25
  import "./chunk-72A4L5JJ.js";
25
- import "./chunk-A7Q43EUZ.js";
26
26
  import "./chunk-S2V7RUCL.js";
27
27
  import "./chunk-SO7SV523.js";
28
28
  import "./chunk-SCU65EZI.js";
@@ -44,10 +44,10 @@ import "./chunk-RBOJCG4T.js";
44
44
  import "./chunk-R7QY5ZVB.js";
45
45
  import "./chunk-5WITETWU.js";
46
46
  import "./chunk-6CIAGZ6X.js";
47
- import "./chunk-CEH2AFXG.js";
47
+ import "./chunk-C24UZSFW.js";
48
48
  import "./chunk-JXN77SGO.js";
49
- import "./chunk-IUM3VSHI.js";
50
49
  import "./chunk-ZLQ37WJX.js";
50
+ import "./chunk-IUM3VSHI.js";
51
51
  import "./chunk-3QQTXYZ6.js";
52
52
  import "./chunk-BT7NVCML.js";
53
53
  import "./chunk-C64XATK7.js";
@@ -1,9 +1,9 @@
1
1
  import {
2
2
  createConversationIndexBackend
3
- } from "../chunk-227UFSEQ.js";
3
+ } from "../chunk-7RZJWZ46.js";
4
+ import "../chunk-A7Q43EUZ.js";
4
5
  import "../chunk-ET356KSB.js";
5
6
  import "../chunk-72A4L5JJ.js";
6
- import "../chunk-A7Q43EUZ.js";
7
7
  import "../chunk-O75CRYGF.js";
8
8
  import "../chunk-3WCASNQZ.js";
9
9
  import "../chunk-PZ5AY32C.js";
@@ -9,15 +9,15 @@ import {
9
9
  computeServiceCorpusWatermarks,
10
10
  digestPartitionCensus,
11
11
  resolveCorpusNamespaceRoots
12
- } from "./chunk-AQ7SYDVO.js";
13
- import "./chunk-RBCQVOVJ.js";
14
- import "./chunk-E2P7TZTF.js";
15
- import "./chunk-XSGUMQQQ.js";
12
+ } from "./chunk-5PTRLTK2.js";
13
+ import "./chunk-WOOTZ6DH.js";
14
+ import "./chunk-HTPQJ32S.js";
15
+ import "./chunk-UY2RORVF.js";
16
16
  import "./chunk-UHVXE24Y.js";
17
17
  import "./chunk-46WM6JX2.js";
18
18
  import "./chunk-D5F7TKMH.js";
19
- import "./chunk-2Z4GS5E6.js";
20
- import "./chunk-6CVNSDCZ.js";
19
+ import "./chunk-ZMNT26KV.js";
20
+ import "./chunk-RFWEDCRC.js";
21
21
  import "./chunk-BD7JTBYP.js";
22
22
  import "./chunk-OB3XMWX5.js";
23
23
  import "./chunk-CYEPCZN5.js";
@@ -26,10 +26,10 @@ import "./chunk-YQNNHLCG.js";
26
26
  import "./chunk-4O6WRBGE.js";
27
27
  import "./chunk-6KTXE6A3.js";
28
28
  import "./chunk-GUMZC2BO.js";
29
- import "./chunk-227UFSEQ.js";
29
+ import "./chunk-7RZJWZ46.js";
30
+ import "./chunk-A7Q43EUZ.js";
30
31
  import "./chunk-ET356KSB.js";
31
32
  import "./chunk-72A4L5JJ.js";
32
- import "./chunk-A7Q43EUZ.js";
33
33
  import "./chunk-S2V7RUCL.js";
34
34
  import "./chunk-SO7SV523.js";
35
35
  import "./chunk-SCU65EZI.js";
@@ -51,10 +51,10 @@ import "./chunk-RBOJCG4T.js";
51
51
  import "./chunk-R7QY5ZVB.js";
52
52
  import "./chunk-5WITETWU.js";
53
53
  import "./chunk-6CIAGZ6X.js";
54
- import "./chunk-CEH2AFXG.js";
54
+ import "./chunk-C24UZSFW.js";
55
55
  import "./chunk-JXN77SGO.js";
56
- import "./chunk-IUM3VSHI.js";
57
56
  import "./chunk-ZLQ37WJX.js";
57
+ import "./chunk-IUM3VSHI.js";
58
58
  import "./chunk-3QQTXYZ6.js";
59
59
  import "./chunk-BT7NVCML.js";
60
60
  import "./chunk-C64XATK7.js";
@@ -1,5 +1,5 @@
1
1
  import { IncomingMessage, ServerResponse } from 'node:http';
2
- import { f as EngramAccessService } from './access-service-Cv8Rizo0.js';
2
+ import { f as EngramAccessService } from './access-service-GrdVg_-Z.js';
3
3
  import './types-YY-eKKU7.js';
4
4
  import './message-parts/index.js';
5
5
  import './bounded-jsonl-state.js';
@@ -1,10 +1,10 @@
1
1
  import {
2
2
  respondDeepRecall
3
- } from "./chunk-GHTSNGBZ.js";
4
- import "./chunk-N3ZOP7KC.js";
5
- import "./chunk-VDX2J7OX.js";
3
+ } from "./chunk-ALBYEXFX.js";
4
+ import "./chunk-2AMEUKCG.js";
5
+ import "./chunk-7LCGFUMB.js";
6
+ import "./chunk-X7Y7WX73.js";
6
7
  import "./chunk-WEHSQBFR.js";
7
- import "./chunk-DQEMWVMT.js";
8
8
  import "./chunk-J4EB7DNW.js";
9
9
  import "./chunk-BJMBJZ2Y.js";
10
10
  import "./chunk-UKJAGEXH.js";
@@ -1,4 +1,4 @@
1
- import { K as McpTool } from './access-service-Cv8Rizo0.js';
1
+ import { K as McpTool } from './access-service-GrdVg_-Z.js';
2
2
  import './types-YY-eKKU7.js';
3
3
  import './message-parts/index.js';
4
4
  import './bounded-jsonl-state.js';
@@ -3,19 +3,19 @@ import {
3
3
  entityIndexVersion,
4
4
  entityRecentTranscriptLookbackHours,
5
5
  readRecentEntityTranscriptEntries
6
- } from "./chunk-4TKJGOCJ.js";
6
+ } from "./chunk-YGTSOVCR.js";
7
7
  import "./chunk-GKUA4MGB.js";
8
8
  import "./chunk-5AUY5Z5E.js";
9
9
  import "./chunk-SVH57F5Z.js";
10
10
  import "./chunk-MKYRCCSN.js";
11
11
  import "./chunk-2DQ2XREU.js";
12
12
  import "./chunk-7ZNJN5WZ.js";
13
- import "./chunk-XSGUMQQQ.js";
13
+ import "./chunk-UY2RORVF.js";
14
14
  import "./chunk-UHVXE24Y.js";
15
15
  import "./chunk-46WM6JX2.js";
16
16
  import "./chunk-D5F7TKMH.js";
17
- import "./chunk-2Z4GS5E6.js";
18
- import "./chunk-6CVNSDCZ.js";
17
+ import "./chunk-ZMNT26KV.js";
18
+ import "./chunk-RFWEDCRC.js";
19
19
  import "./chunk-BD7JTBYP.js";
20
20
  import "./chunk-OB3XMWX5.js";
21
21
  import "./chunk-CYEPCZN5.js";
@@ -24,10 +24,10 @@ import "./chunk-YQNNHLCG.js";
24
24
  import "./chunk-4O6WRBGE.js";
25
25
  import "./chunk-6KTXE6A3.js";
26
26
  import "./chunk-GUMZC2BO.js";
27
- import "./chunk-227UFSEQ.js";
27
+ import "./chunk-7RZJWZ46.js";
28
+ import "./chunk-A7Q43EUZ.js";
28
29
  import "./chunk-ET356KSB.js";
29
30
  import "./chunk-72A4L5JJ.js";
30
- import "./chunk-A7Q43EUZ.js";
31
31
  import "./chunk-S2V7RUCL.js";
32
32
  import "./chunk-SO7SV523.js";
33
33
  import "./chunk-SCU65EZI.js";
@@ -49,10 +49,10 @@ import "./chunk-RBOJCG4T.js";
49
49
  import "./chunk-R7QY5ZVB.js";
50
50
  import "./chunk-5WITETWU.js";
51
51
  import "./chunk-6CIAGZ6X.js";
52
- import "./chunk-CEH2AFXG.js";
52
+ import "./chunk-C24UZSFW.js";
53
53
  import "./chunk-JXN77SGO.js";
54
- import "./chunk-IUM3VSHI.js";
55
54
  import "./chunk-ZLQ37WJX.js";
55
+ import "./chunk-IUM3VSHI.js";
56
56
  import "./chunk-3QQTXYZ6.js";
57
57
  import "./chunk-BT7NVCML.js";
58
58
  import "./chunk-C64XATK7.js";
@@ -1,4 +1,4 @@
1
- import { B as BoundOperation } from './access-service-Cv8Rizo0.js';
1
+ import { B as BoundOperation } from './access-service-GrdVg_-Z.js';
2
2
  import { ExternalWikiSearchResult, ExternalWikiSearchInput } from './external-wiki-search.js';
3
3
  import './types-YY-eKKU7.js';
4
4
  import './message-parts/index.js';
@@ -1,17 +1,17 @@
1
1
  import {
2
2
  externalWikiSearchOperation
3
- } from "./chunk-RX3SC4C5.js";
3
+ } from "./chunk-NVOFMARR.js";
4
4
  import "./chunk-7T4TOGMS.js";
5
5
  import "./chunk-7YQ6ESEA.js";
6
- import "./chunk-OU4K7IFP.js";
6
+ import "./chunk-R55WAWS3.js";
7
7
  import "./chunk-W4F3C7N7.js";
8
8
  import "./chunk-MPC7TYTZ.js";
9
- import "./chunk-VVX5PZFS.js";
9
+ import "./chunk-TDYAIXHK.js";
10
10
  import "./chunk-CC37E3QM.js";
11
11
  import "./chunk-ND6IQGSZ.js";
12
12
  import "./chunk-VQ7B2Q6M.js";
13
13
  import "./chunk-PJSK6OJM.js";
14
- import "./chunk-2EKJDQZB.js";
14
+ import "./chunk-INBOGQ3E.js";
15
15
  import "./chunk-GNVZQ5JN.js";
16
16
  import "./chunk-YN2UN7N3.js";
17
17
  import "./chunk-ROBHL3GL.js";
@@ -24,7 +24,7 @@ import "./chunk-H7XKCNR6.js";
24
24
  import "./chunk-22FVR2KE.js";
25
25
  import "./chunk-SOBJ6NEY.js";
26
26
  import "./chunk-2JVJ7UHC.js";
27
- import "./chunk-EOQ6FSQP.js";
27
+ import "./chunk-OYHGTHVX.js";
28
28
  import "./chunk-CVILPI77.js";
29
29
  import "./chunk-6WHJ2EAB.js";
30
30
  import "./chunk-AQEJKOKI.js";
@@ -33,7 +33,7 @@ import "./chunk-UD7UNYRD.js";
33
33
  import "./chunk-IISBCCWR.js";
34
34
  import "./chunk-2YA5N2BY.js";
35
35
  import "./chunk-HWLIMQE2.js";
36
- import "./chunk-6XL73HQ4.js";
36
+ import "./chunk-3FEH4C4V.js";
37
37
  import "./chunk-EI6V5UXY.js";
38
38
  import "./chunk-3GCK6ONU.js";
39
39
  import "./chunk-YSSAGB2O.js";
@@ -56,13 +56,13 @@ import "./chunk-HRATODNO.js";
56
56
  import "./chunk-BMWN7B3Y.js";
57
57
  import "./chunk-DXFG2VGN.js";
58
58
  import "./chunk-RF2SMMPP.js";
59
- import "./chunk-MY5EDR46.js";
60
- import "./chunk-AQ7SYDVO.js";
61
- import "./chunk-RBCQVOVJ.js";
62
- import "./chunk-E2P7TZTF.js";
59
+ import "./chunk-I3OQBP23.js";
60
+ import "./chunk-5PTRLTK2.js";
61
+ import "./chunk-WOOTZ6DH.js";
62
+ import "./chunk-HTPQJ32S.js";
63
63
  import "./chunk-UFGFMWAD.js";
64
64
  import "./chunk-ZY2MNJR6.js";
65
- import "./chunk-KAXCYM66.js";
65
+ import "./chunk-U6S754L6.js";
66
66
  import "./chunk-3UXOZBHV.js";
67
67
  import "./chunk-KEF46KL2.js";
68
68
  import "./chunk-5FAGCOZD.js";
@@ -71,13 +71,13 @@ import "./chunk-2LSZVONP.js";
71
71
  import "./chunk-DEUNUKTD.js";
72
72
  import "./chunk-LXY5VVGM.js";
73
73
  import "./chunk-GKCXTSFF.js";
74
- import "./chunk-WJHGDE7X.js";
75
- import "./chunk-XSGUMQQQ.js";
74
+ import "./chunk-NC7RM2XS.js";
75
+ import "./chunk-UY2RORVF.js";
76
76
  import "./chunk-UHVXE24Y.js";
77
77
  import "./chunk-46WM6JX2.js";
78
78
  import "./chunk-D5F7TKMH.js";
79
- import "./chunk-2Z4GS5E6.js";
80
- import "./chunk-6CVNSDCZ.js";
79
+ import "./chunk-ZMNT26KV.js";
80
+ import "./chunk-RFWEDCRC.js";
81
81
  import "./chunk-BD7JTBYP.js";
82
82
  import "./chunk-OB3XMWX5.js";
83
83
  import "./chunk-CYEPCZN5.js";
@@ -86,10 +86,10 @@ import "./chunk-YQNNHLCG.js";
86
86
  import "./chunk-4O6WRBGE.js";
87
87
  import "./chunk-6KTXE6A3.js";
88
88
  import "./chunk-GUMZC2BO.js";
89
- import "./chunk-227UFSEQ.js";
89
+ import "./chunk-7RZJWZ46.js";
90
+ import "./chunk-A7Q43EUZ.js";
90
91
  import "./chunk-ET356KSB.js";
91
92
  import "./chunk-72A4L5JJ.js";
92
- import "./chunk-A7Q43EUZ.js";
93
93
  import "./chunk-S2V7RUCL.js";
94
94
  import "./chunk-SO7SV523.js";
95
95
  import "./chunk-SCU65EZI.js";
@@ -112,15 +112,15 @@ import "./chunk-R7QY5ZVB.js";
112
112
  import "./chunk-5WITETWU.js";
113
113
  import "./chunk-6CIAGZ6X.js";
114
114
  import "./chunk-UBCBDJOB.js";
115
- import "./chunk-FHYVNJBN.js";
115
+ import "./chunk-6TZWGQTT.js";
116
116
  import "./chunk-MT47LH5L.js";
117
117
  import "./chunk-CSAKJVXW.js";
118
118
  import "./chunk-K2XUWZBM.js";
119
119
  import "./chunk-OD4FM2U7.js";
120
- import "./chunk-CEH2AFXG.js";
120
+ import "./chunk-C24UZSFW.js";
121
121
  import "./chunk-JXN77SGO.js";
122
- import "./chunk-IUM3VSHI.js";
123
122
  import "./chunk-ZLQ37WJX.js";
123
+ import "./chunk-IUM3VSHI.js";
124
124
  import "./chunk-3QQTXYZ6.js";
125
125
  import "./chunk-BT7NVCML.js";
126
126
  import "./chunk-C64XATK7.js";
@@ -180,9 +180,9 @@ import "./chunk-EEOUMG3J.js";
180
180
  import "./chunk-JDSVLVCG.js";
181
181
  import "./chunk-5GKPFL3S.js";
182
182
  import "./chunk-JAKIDQB2.js";
183
- import "./chunk-VDX2J7OX.js";
183
+ import "./chunk-7LCGFUMB.js";
184
+ import "./chunk-X7Y7WX73.js";
184
185
  import "./chunk-WEHSQBFR.js";
185
- import "./chunk-DQEMWVMT.js";
186
186
  import "./chunk-J4EB7DNW.js";
187
187
  import "./chunk-BJMBJZ2Y.js";
188
188
  import "./chunk-UKJAGEXH.js";
@@ -1,4 +1,4 @@
1
- import { K as McpTool } from './access-service-Cv8Rizo0.js';
1
+ import { K as McpTool } from './access-service-GrdVg_-Z.js';
2
2
  import './types-YY-eKKU7.js';
3
3
  import './message-parts/index.js';
4
4
  import './bounded-jsonl-state.js';
@@ -1,8 +1,8 @@
1
1
  import {
2
2
  ExtractionEngine,
3
3
  shouldEnableLocalExtractionThinking
4
- } from "./chunk-DDB3S53L.js";
5
- import "./chunk-XTJC7CVX.js";
4
+ } from "./chunk-WW3MR6T3.js";
5
+ import "./chunk-XR67IAXP.js";
6
6
  import "./chunk-AJTG3CP7.js";
7
7
  import "./chunk-54V4BZWP.js";
8
8
  import "./chunk-2CGLBUW3.js";
@@ -31,15 +31,15 @@ import "./chunk-WLZYGLJ4.js";
31
31
  import "./chunk-IVKIODHO.js";
32
32
  import "./chunk-WKDFJXW5.js";
33
33
  import "./chunk-JUXOTY6J.js";
34
- import "./chunk-KAXCYM66.js";
34
+ import "./chunk-U6S754L6.js";
35
35
  import "./chunk-3UXOZBHV.js";
36
36
  import "./chunk-KEF46KL2.js";
37
- import "./chunk-XSGUMQQQ.js";
37
+ import "./chunk-UY2RORVF.js";
38
38
  import "./chunk-UHVXE24Y.js";
39
39
  import "./chunk-46WM6JX2.js";
40
40
  import "./chunk-D5F7TKMH.js";
41
- import "./chunk-2Z4GS5E6.js";
42
- import "./chunk-6CVNSDCZ.js";
41
+ import "./chunk-ZMNT26KV.js";
42
+ import "./chunk-RFWEDCRC.js";
43
43
  import "./chunk-BD7JTBYP.js";
44
44
  import "./chunk-OB3XMWX5.js";
45
45
  import "./chunk-CYEPCZN5.js";
@@ -48,10 +48,10 @@ import "./chunk-YQNNHLCG.js";
48
48
  import "./chunk-4O6WRBGE.js";
49
49
  import "./chunk-6KTXE6A3.js";
50
50
  import "./chunk-GUMZC2BO.js";
51
- import "./chunk-227UFSEQ.js";
51
+ import "./chunk-7RZJWZ46.js";
52
+ import "./chunk-A7Q43EUZ.js";
52
53
  import "./chunk-ET356KSB.js";
53
54
  import "./chunk-72A4L5JJ.js";
54
- import "./chunk-A7Q43EUZ.js";
55
55
  import "./chunk-S2V7RUCL.js";
56
56
  import "./chunk-SO7SV523.js";
57
57
  import "./chunk-SCU65EZI.js";
@@ -73,15 +73,15 @@ import "./chunk-RBOJCG4T.js";
73
73
  import "./chunk-R7QY5ZVB.js";
74
74
  import "./chunk-5WITETWU.js";
75
75
  import "./chunk-6CIAGZ6X.js";
76
- import "./chunk-FHYVNJBN.js";
76
+ import "./chunk-6TZWGQTT.js";
77
77
  import "./chunk-MT47LH5L.js";
78
78
  import "./chunk-CSAKJVXW.js";
79
79
  import "./chunk-K2XUWZBM.js";
80
80
  import "./chunk-OD4FM2U7.js";
81
- import "./chunk-CEH2AFXG.js";
81
+ import "./chunk-C24UZSFW.js";
82
82
  import "./chunk-JXN77SGO.js";
83
- import "./chunk-IUM3VSHI.js";
84
83
  import "./chunk-ZLQ37WJX.js";
84
+ import "./chunk-IUM3VSHI.js";
85
85
  import "./chunk-3QQTXYZ6.js";
86
86
  import "./chunk-BT7NVCML.js";
87
87
  import "./chunk-C64XATK7.js";
@@ -3,7 +3,7 @@ import {
3
3
  readCueAnchors,
4
4
  readProjectedHarmonicGraph,
5
5
  searchHarmonicRetrieval
6
- } from "./chunk-6XL73HQ4.js";
6
+ } from "./chunk-3FEH4C4V.js";
7
7
  import "./chunk-BMWN7B3Y.js";
8
8
  import "./chunk-6CIAGZ6X.js";
9
9
  import "./chunk-YCVB7X56.js";
@@ -0,0 +1,83 @@
1
+ /**
2
+ * Shared retrying fetch for connector packages (issue #2792).
3
+ *
4
+ * One copy of the retry loop that six connector clients and the X MCP
5
+ * client duplicated: attempt counting, per-attempt timeout signal,
6
+ * 429/5xx retry with Retry-After (seconds or HTTP-date) plus capped
7
+ * exponential backoff, raw rethrow of caller aborts, and socket
8
+ * release on retryable responses. Vendors keep everything
9
+ * request-specific: headers/body, the error classes their callers
10
+ * match on, and what happens to a successful response body.
11
+ *
12
+ * Import via the `@remnic/core/http-retry` subpath (same pattern as
13
+ * `@remnic/core/abort-error`) — the root index stays untouched.
14
+ */
15
+ interface RetryingFetchOptions {
16
+ /** Request init for every attempt. Ignored when `buildInit` is set. */
17
+ init?: RequestInit;
18
+ /**
19
+ * Init builder invoked ONCE, before the retry loop. Request
20
+ * construction (e.g. token acquisition) must stay outside the
21
+ * transport retry boundary: a deterministic provider failure —
22
+ * missing grant, revoked grant, unpersistable token file — runs once
23
+ * and propagates unwrapped, never retried or vendor-wrapped.
24
+ */
25
+ buildInit?: () => RequestInit | Promise<RequestInit>;
26
+ fetchImpl?: typeof fetch;
27
+ sleep?: (ms: number) => Promise<void>;
28
+ signal?: AbortSignal;
29
+ timeoutMs?: number;
30
+ /** Retries after the first attempt. Default 3 (4 attempts total). */
31
+ maxRetries?: number;
32
+ maxRetryDelayMs?: number;
33
+ /** First backoff step; doubles per attempt. Default 1_000. */
34
+ backoffBaseMs?: number;
35
+ /**
36
+ * Vendor Retry-After parsing (e.g. a body field). A `null`/`undefined`
37
+ * result falls back to the shared Retry-After header parse, then to
38
+ * exponential backoff. A number (including 0) is used as-is.
39
+ */
40
+ retryAfterMs?: (response: Response) => number | null | undefined | Promise<number | null | undefined>;
41
+ /** Wraps an exhausted network/timeout failure into the vendor error. */
42
+ networkError: (err: unknown, attempts: number, context: NetworkErrorContext) => Error;
43
+ /** Wraps a retryable (429/5xx) response; thrown when retries are exhausted. */
44
+ retryableError: (response: Response) => Error | Promise<Error>;
45
+ }
46
+ interface NetworkErrorContext {
47
+ /** True when the helper's own timeout signal fired (not a caller abort). */
48
+ timedOut: boolean;
49
+ }
50
+ /**
51
+ * Base class for connector API errors: a message plus optional HTTP
52
+ * status and vendor detail. Vendor subclasses set their own `name`.
53
+ */
54
+ declare class ConnectorApiError extends Error {
55
+ readonly status?: number | undefined;
56
+ readonly detail?: string | undefined;
57
+ constructor(message: string, status?: number | undefined, detail?: string | undefined);
58
+ }
59
+ /**
60
+ * Network/timeout failures wrap Node error text that can carry loader
61
+ * paths or stack fragments; sync errors reach MCP clients verbatim, so
62
+ * only the error name + code survive.
63
+ */
64
+ declare function describeNetworkError(err: unknown): string;
65
+ /** Loop instead of `/\/+$/` — CodeQL js/polynomial-redos on user-set URLs. */
66
+ declare function stripTrailingSlashes(value: string): string;
67
+ /** Release the socket back to the pool: an unconsumed response body pins the undici connection. */
68
+ declare function discardResponseBody(response: Response): void;
69
+ /**
70
+ * Parse a `Retry-After` header as delay in ms, capped at `capMs`:
71
+ * delay-seconds first, then HTTP-date. `undefined` when absent or
72
+ * unparseable.
73
+ */
74
+ declare function retryAfterHeaderMs(response: Response, capMs: number): number | undefined;
75
+ /**
76
+ * Fetch with retries on network failures, 429, and 5xx. Returns the
77
+ * final response (ok or non-retryable status) for the caller to
78
+ * interpret; throws the vendor-wrapped error when retries are exhausted
79
+ * or the transport fails.
80
+ */
81
+ declare function retryingFetch(url: string, options: RetryingFetchOptions): Promise<Response>;
82
+
83
+ export { ConnectorApiError, type NetworkErrorContext, type RetryingFetchOptions, describeNetworkError, discardResponseBody, retryAfterHeaderMs, retryingFetch, stripTrailingSlashes };
@@ -0,0 +1,101 @@
1
+ import "./chunk-PZ5AY32C.js";
2
+
3
+ // src/http-retry.ts
4
+ var ConnectorApiError = class extends Error {
5
+ constructor(message, status, detail) {
6
+ super(message);
7
+ this.status = status;
8
+ this.detail = detail;
9
+ this.name = "ConnectorApiError";
10
+ }
11
+ status;
12
+ detail;
13
+ };
14
+ var DEFAULT_TIMEOUT_MS = 3e4;
15
+ var DEFAULT_MAX_RETRIES = 3;
16
+ var DEFAULT_MAX_RETRY_DELAY_MS = 3e4;
17
+ var DEFAULT_BACKOFF_BASE_MS = 1e3;
18
+ function defaultSleep(ms) {
19
+ const { promise, resolve } = Promise.withResolvers();
20
+ setTimeout(resolve, ms);
21
+ return promise;
22
+ }
23
+ function describeNetworkError(err) {
24
+ if (!(err instanceof Error)) return "unexpected non-Error failure";
25
+ const code = err.code;
26
+ return typeof code === "string" && code.length > 0 ? `${err.name} (${code})` : err.name;
27
+ }
28
+ function stripTrailingSlashes(value) {
29
+ let end = value.length;
30
+ while (end > 0 && value.charCodeAt(end - 1) === 47) end--;
31
+ return value.slice(0, end);
32
+ }
33
+ function discardResponseBody(response) {
34
+ void response.body?.cancel().catch(() => {
35
+ });
36
+ }
37
+ function retryAfterHeaderMs(response, capMs) {
38
+ const header = response.headers.get("retry-after");
39
+ if (header === null || header.length === 0) return void 0;
40
+ const seconds = Number(header);
41
+ if (Number.isFinite(seconds) && seconds >= 0) {
42
+ return Math.min(capMs, Math.ceil(seconds * 1e3));
43
+ }
44
+ const when = Date.parse(header);
45
+ if (Number.isFinite(when)) {
46
+ return Math.min(capMs, Math.max(0, when - Date.now()));
47
+ }
48
+ return void 0;
49
+ }
50
+ async function retryingFetch(url, options) {
51
+ const fetchImpl = options.fetchImpl ?? fetch;
52
+ const sleep = options.sleep ?? defaultSleep;
53
+ const timeoutMs = options.timeoutMs ?? DEFAULT_TIMEOUT_MS;
54
+ const maxRetries = options.maxRetries ?? DEFAULT_MAX_RETRIES;
55
+ const maxRetryDelayMs = options.maxRetryDelayMs ?? DEFAULT_MAX_RETRY_DELAY_MS;
56
+ const backoffBaseMs = options.backoffBaseMs ?? DEFAULT_BACKOFF_BASE_MS;
57
+ const backoffMs = (attempt) => Math.min(maxRetryDelayMs, backoffBaseMs * 2 ** attempt);
58
+ const attempts = maxRetries + 1;
59
+ options.signal?.throwIfAborted();
60
+ const init = options.buildInit ? await options.buildInit() : options.init;
61
+ let lastError;
62
+ for (let attempt = 0; attempt <= maxRetries; attempt++) {
63
+ options.signal?.throwIfAborted();
64
+ const timeoutSignal = AbortSignal.timeout(timeoutMs);
65
+ const combined = options.signal ? AbortSignal.any([options.signal, timeoutSignal]) : timeoutSignal;
66
+ let response;
67
+ try {
68
+ response = await fetchImpl(url, { ...init, signal: combined });
69
+ } catch (err) {
70
+ if (options.signal?.aborted) throw err;
71
+ if (attempt < maxRetries) {
72
+ await sleep(backoffMs(attempt));
73
+ continue;
74
+ }
75
+ throw options.networkError(err, attempts, { timedOut: timeoutSignal.aborted });
76
+ }
77
+ if (response.status === 429 || response.status >= 500) {
78
+ lastError = await options.retryableError(response);
79
+ if (attempt < maxRetries) {
80
+ const override = options.retryAfterMs ? await options.retryAfterMs(response) : void 0;
81
+ const delay = override ?? retryAfterHeaderMs(response, maxRetryDelayMs) ?? backoffMs(attempt);
82
+ discardResponseBody(response);
83
+ await sleep(delay);
84
+ continue;
85
+ }
86
+ discardResponseBody(response);
87
+ throw lastError;
88
+ }
89
+ return response;
90
+ }
91
+ throw lastError instanceof Error ? lastError : new ConnectorApiError("request failed");
92
+ }
93
+ export {
94
+ ConnectorApiError,
95
+ describeNetworkError,
96
+ discardResponseBody,
97
+ retryAfterHeaderMs,
98
+ retryingFetch,
99
+ stripTrailingSlashes
100
+ };
101
+ //# sourceMappingURL=http-retry.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"sources":["../src/http-retry.ts"],"sourcesContent":["/**\n * Shared retrying fetch for connector packages (issue #2792).\n *\n * One copy of the retry loop that six connector clients and the X MCP\n * client duplicated: attempt counting, per-attempt timeout signal,\n * 429/5xx retry with Retry-After (seconds or HTTP-date) plus capped\n * exponential backoff, raw rethrow of caller aborts, and socket\n * release on retryable responses. Vendors keep everything\n * request-specific: headers/body, the error classes their callers\n * match on, and what happens to a successful response body.\n *\n * Import via the `@remnic/core/http-retry` subpath (same pattern as\n * `@remnic/core/abort-error`) — the root index stays untouched.\n */\n\nexport interface RetryingFetchOptions {\n /** Request init for every attempt. Ignored when `buildInit` is set. */\n init?: RequestInit;\n /**\n * Init builder invoked ONCE, before the retry loop. Request\n * construction (e.g. token acquisition) must stay outside the\n * transport retry boundary: a deterministic provider failure —\n * missing grant, revoked grant, unpersistable token file — runs once\n * and propagates unwrapped, never retried or vendor-wrapped.\n */\n buildInit?: () => RequestInit | Promise<RequestInit>;\n fetchImpl?: typeof fetch;\n sleep?: (ms: number) => Promise<void>;\n signal?: AbortSignal;\n timeoutMs?: number;\n /** Retries after the first attempt. Default 3 (4 attempts total). */\n maxRetries?: number;\n maxRetryDelayMs?: number;\n /** First backoff step; doubles per attempt. Default 1_000. */\n backoffBaseMs?: number;\n /**\n * Vendor Retry-After parsing (e.g. a body field). A `null`/`undefined`\n * result falls back to the shared Retry-After header parse, then to\n * exponential backoff. A number (including 0) is used as-is.\n */\n retryAfterMs?: (response: Response) => number | null | undefined | Promise<number | null | undefined>;\n /** Wraps an exhausted network/timeout failure into the vendor error. */\n networkError: (err: unknown, attempts: number, context: NetworkErrorContext) => Error;\n /** Wraps a retryable (429/5xx) response; thrown when retries are exhausted. */\n retryableError: (response: Response) => Error | Promise<Error>;\n}\n\nexport interface NetworkErrorContext {\n /** True when the helper's own timeout signal fired (not a caller abort). */\n timedOut: boolean;\n}\n\n/**\n * Base class for connector API errors: a message plus optional HTTP\n * status and vendor detail. Vendor subclasses set their own `name`.\n */\nexport class ConnectorApiError extends Error {\n constructor(\n message: string,\n readonly status?: number,\n readonly detail?: string,\n ) {\n super(message);\n this.name = \"ConnectorApiError\";\n }\n}\n\nconst DEFAULT_TIMEOUT_MS = 30_000;\nconst DEFAULT_MAX_RETRIES = 3;\nconst DEFAULT_MAX_RETRY_DELAY_MS = 30_000;\nconst DEFAULT_BACKOFF_BASE_MS = 1_000;\n\nfunction defaultSleep(ms: number): Promise<void> {\n const { promise, resolve } = Promise.withResolvers<void>();\n setTimeout(resolve, ms);\n return promise;\n}\n\n/**\n * Network/timeout failures wrap Node error text that can carry loader\n * paths or stack fragments; sync errors reach MCP clients verbatim, so\n * only the error name + code survive.\n */\nexport function describeNetworkError(err: unknown): string {\n if (!(err instanceof Error)) return \"unexpected non-Error failure\";\n const code = (err as NodeJS.ErrnoException).code;\n return typeof code === \"string\" && code.length > 0 ? `${err.name} (${code})` : err.name;\n}\n\n/** Loop instead of `/\\/+$/` — CodeQL js/polynomial-redos on user-set URLs. */\nexport function stripTrailingSlashes(value: string): string {\n let end = value.length;\n while (end > 0 && value.charCodeAt(end - 1) === 0x2f) end--;\n return value.slice(0, end);\n}\n\n/** Release the socket back to the pool: an unconsumed response body pins the undici connection. */\nexport function discardResponseBody(response: Response): void {\n void response.body?.cancel().catch(() => {});\n}\n\n/**\n * Parse a `Retry-After` header as delay in ms, capped at `capMs`:\n * delay-seconds first, then HTTP-date. `undefined` when absent or\n * unparseable.\n */\nexport function retryAfterHeaderMs(response: Response, capMs: number): number | undefined {\n const header = response.headers.get(\"retry-after\");\n if (header === null || header.length === 0) return undefined;\n const seconds = Number(header);\n if (Number.isFinite(seconds) && seconds >= 0) {\n return Math.min(capMs, Math.ceil(seconds * 1_000));\n }\n const when = Date.parse(header);\n if (Number.isFinite(when)) {\n return Math.min(capMs, Math.max(0, when - Date.now()));\n }\n return undefined;\n}\n\n/**\n * Fetch with retries on network failures, 429, and 5xx. Returns the\n * final response (ok or non-retryable status) for the caller to\n * interpret; throws the vendor-wrapped error when retries are exhausted\n * or the transport fails.\n */\nexport async function retryingFetch(\n url: string,\n options: RetryingFetchOptions,\n): Promise<Response> {\n const fetchImpl = options.fetchImpl ?? fetch;\n const sleep = options.sleep ?? defaultSleep;\n const timeoutMs = options.timeoutMs ?? DEFAULT_TIMEOUT_MS;\n const maxRetries = options.maxRetries ?? DEFAULT_MAX_RETRIES;\n const maxRetryDelayMs = options.maxRetryDelayMs ?? DEFAULT_MAX_RETRY_DELAY_MS;\n const backoffBaseMs = options.backoffBaseMs ?? DEFAULT_BACKOFF_BASE_MS;\n const backoffMs = (attempt: number): number =>\n Math.min(maxRetryDelayMs, backoffBaseMs * 2 ** attempt);\n const attempts = maxRetries + 1;\n\n // Request construction runs once, outside the retry boundary: only\n // fetch/network/HTTP-retryable failures retry, so initializer/token\n // provider errors execute once and propagate unchanged (issue #2792).\n options.signal?.throwIfAborted();\n const init = options.buildInit ? await options.buildInit() : options.init;\n\n let lastError: unknown;\n for (let attempt = 0; attempt <= maxRetries; attempt++) {\n options.signal?.throwIfAborted();\n const timeoutSignal = AbortSignal.timeout(timeoutMs);\n const combined = options.signal\n ? AbortSignal.any([options.signal, timeoutSignal])\n : timeoutSignal;\n let response: Response;\n try {\n response = await fetchImpl(url, { ...init, signal: combined });\n } catch (err) {\n // The caller's abort always propagates unwrapped and unretried.\n if (options.signal?.aborted) throw err;\n if (attempt < maxRetries) {\n await sleep(backoffMs(attempt));\n continue;\n }\n throw options.networkError(err, attempts, { timedOut: timeoutSignal.aborted });\n }\n\n if (response.status === 429 || response.status >= 500) {\n lastError = await options.retryableError(response);\n if (attempt < maxRetries) {\n const override = options.retryAfterMs ? await options.retryAfterMs(response) : undefined;\n const delay = override ?? retryAfterHeaderMs(response, maxRetryDelayMs) ?? backoffMs(attempt);\n discardResponseBody(response);\n await sleep(delay);\n continue;\n }\n discardResponseBody(response);\n throw lastError;\n }\n return response;\n }\n // Unreachable: every terminal loop path throws. Kept for exhaustiveness.\n throw lastError instanceof Error ? lastError : new ConnectorApiError(\"request failed\");\n}\n"],"mappings":"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","names":[]}