@adaptic/backend-legacy 0.0.953 → 0.0.954

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 (262) hide show
  1. package/ABTest.cjs +207 -36
  2. package/Account.cjs +207 -36
  3. package/AccountDecisionRecord.cjs +207 -36
  4. package/AccountLinkingRequest.cjs +207 -36
  5. package/Action.cjs +207 -36
  6. package/Alert.cjs +207 -36
  7. package/Allocation.cjs +207 -36
  8. package/AlpacaAccount.cjs +207 -36
  9. package/AnalyticsConfiguration.cjs +207 -36
  10. package/AnalyticsSnapshot.cjs +207 -36
  11. package/Asset.cjs +207 -36
  12. package/AuditLog.cjs +207 -36
  13. package/Authenticator.cjs +207 -36
  14. package/Configuration.cjs +207 -36
  15. package/ConflictEvent.cjs +207 -36
  16. package/ConnectionHealthSnapshot.cjs +207 -36
  17. package/Customer.cjs +207 -36
  18. package/DeadLetterMessage.cjs +207 -36
  19. package/DecisionMemorySummary.cjs +207 -36
  20. package/EconomicEvent.cjs +207 -36
  21. package/EquityBar.cjs +207 -36
  22. package/Event.cjs +207 -36
  23. package/EventSnapshot.cjs +207 -36
  24. package/FeatureImportanceAnalysis.cjs +207 -36
  25. package/InstitutionalFlowSignal.cjs +207 -36
  26. package/InstitutionalHolding.cjs +207 -36
  27. package/InstitutionalSentimentAlerts.cjs +207 -36
  28. package/InstitutionalSentimentErrors.cjs +207 -36
  29. package/InstitutionalSentimentHistory.cjs +207 -36
  30. package/InstitutionalSentimentMetrics.cjs +207 -36
  31. package/InviteToken.cjs +207 -36
  32. package/LinkedProvider.cjs +207 -36
  33. package/LlmConfiguration.cjs +207 -36
  34. package/MLModelVersion.cjs +207 -36
  35. package/MLTrainingData.cjs +207 -36
  36. package/MarketSentiment.cjs +207 -36
  37. package/ModelArtifact.cjs +207 -36
  38. package/ModelVersion.cjs +207 -36
  39. package/ModelVersionArtifact.cjs +207 -36
  40. package/NewsArticle.cjs +207 -36
  41. package/NewsArticleAssetSentiment.cjs +207 -36
  42. package/OptionsContract.cjs +207 -36
  43. package/OptionsGreeksHistory.cjs +207 -36
  44. package/OptionsPosition.cjs +207 -36
  45. package/OptionsPositionEvent.cjs +207 -36
  46. package/OptionsTradeExecution.cjs +207 -36
  47. package/PolicyOverlay.cjs +207 -36
  48. package/PortfolioGreeksHistory.cjs +207 -36
  49. package/ScheduledOptionOrder.cjs +207 -36
  50. package/Session.cjs +207 -36
  51. package/SignalGeneratorMetrics.cjs +207 -36
  52. package/SignalLineage.cjs +207 -36
  53. package/SignalOutcome.cjs +207 -36
  54. package/SignalPriorityQueue.cjs +207 -36
  55. package/SyncEvent.cjs +207 -36
  56. package/SystemAlert.cjs +207 -36
  57. package/Trade.cjs +207 -36
  58. package/TradeAuditEvent.cjs +207 -36
  59. package/TradeExecutionHistory.cjs +207 -36
  60. package/TradeOutcome.cjs +207 -36
  61. package/TradingPolicy.cjs +207 -36
  62. package/User.cjs +207 -36
  63. package/VerificationToken.cjs +207 -36
  64. package/WaitlistEntry.cjs +207 -36
  65. package/client.cjs +2 -0
  66. package/esm/ABTest.d.ts.map +1 -1
  67. package/esm/ABTest.js.map +1 -1
  68. package/esm/ABTest.mjs +189 -18
  69. package/esm/Account.d.ts.map +1 -1
  70. package/esm/Account.js.map +1 -1
  71. package/esm/Account.mjs +189 -18
  72. package/esm/AccountDecisionRecord.d.ts.map +1 -1
  73. package/esm/AccountDecisionRecord.js.map +1 -1
  74. package/esm/AccountDecisionRecord.mjs +189 -18
  75. package/esm/AccountLinkingRequest.d.ts.map +1 -1
  76. package/esm/AccountLinkingRequest.js.map +1 -1
  77. package/esm/AccountLinkingRequest.mjs +189 -18
  78. package/esm/Action.d.ts.map +1 -1
  79. package/esm/Action.js.map +1 -1
  80. package/esm/Action.mjs +189 -18
  81. package/esm/Alert.d.ts.map +1 -1
  82. package/esm/Alert.js.map +1 -1
  83. package/esm/Alert.mjs +189 -18
  84. package/esm/Allocation.d.ts.map +1 -1
  85. package/esm/Allocation.js.map +1 -1
  86. package/esm/Allocation.mjs +189 -18
  87. package/esm/AlpacaAccount.d.ts.map +1 -1
  88. package/esm/AlpacaAccount.js.map +1 -1
  89. package/esm/AlpacaAccount.mjs +189 -18
  90. package/esm/AnalyticsConfiguration.d.ts.map +1 -1
  91. package/esm/AnalyticsConfiguration.js.map +1 -1
  92. package/esm/AnalyticsConfiguration.mjs +189 -18
  93. package/esm/AnalyticsSnapshot.d.ts.map +1 -1
  94. package/esm/AnalyticsSnapshot.js.map +1 -1
  95. package/esm/AnalyticsSnapshot.mjs +189 -18
  96. package/esm/Asset.d.ts.map +1 -1
  97. package/esm/Asset.js.map +1 -1
  98. package/esm/Asset.mjs +189 -18
  99. package/esm/AuditLog.d.ts.map +1 -1
  100. package/esm/AuditLog.js.map +1 -1
  101. package/esm/AuditLog.mjs +189 -18
  102. package/esm/Authenticator.d.ts.map +1 -1
  103. package/esm/Authenticator.js.map +1 -1
  104. package/esm/Authenticator.mjs +189 -18
  105. package/esm/Configuration.d.ts.map +1 -1
  106. package/esm/Configuration.js.map +1 -1
  107. package/esm/Configuration.mjs +189 -18
  108. package/esm/ConflictEvent.d.ts.map +1 -1
  109. package/esm/ConflictEvent.js.map +1 -1
  110. package/esm/ConflictEvent.mjs +189 -18
  111. package/esm/ConnectionHealthSnapshot.d.ts.map +1 -1
  112. package/esm/ConnectionHealthSnapshot.js.map +1 -1
  113. package/esm/ConnectionHealthSnapshot.mjs +189 -18
  114. package/esm/Customer.d.ts.map +1 -1
  115. package/esm/Customer.js.map +1 -1
  116. package/esm/Customer.mjs +189 -18
  117. package/esm/DeadLetterMessage.d.ts.map +1 -1
  118. package/esm/DeadLetterMessage.js.map +1 -1
  119. package/esm/DeadLetterMessage.mjs +189 -18
  120. package/esm/DecisionMemorySummary.d.ts.map +1 -1
  121. package/esm/DecisionMemorySummary.js.map +1 -1
  122. package/esm/DecisionMemorySummary.mjs +189 -18
  123. package/esm/EconomicEvent.d.ts.map +1 -1
  124. package/esm/EconomicEvent.js.map +1 -1
  125. package/esm/EconomicEvent.mjs +189 -18
  126. package/esm/EquityBar.d.ts.map +1 -1
  127. package/esm/EquityBar.js.map +1 -1
  128. package/esm/EquityBar.mjs +189 -18
  129. package/esm/Event.d.ts.map +1 -1
  130. package/esm/Event.js.map +1 -1
  131. package/esm/Event.mjs +189 -18
  132. package/esm/EventSnapshot.d.ts.map +1 -1
  133. package/esm/EventSnapshot.js.map +1 -1
  134. package/esm/EventSnapshot.mjs +189 -18
  135. package/esm/FeatureImportanceAnalysis.d.ts.map +1 -1
  136. package/esm/FeatureImportanceAnalysis.js.map +1 -1
  137. package/esm/FeatureImportanceAnalysis.mjs +189 -18
  138. package/esm/InstitutionalFlowSignal.d.ts.map +1 -1
  139. package/esm/InstitutionalFlowSignal.js.map +1 -1
  140. package/esm/InstitutionalFlowSignal.mjs +189 -18
  141. package/esm/InstitutionalHolding.d.ts.map +1 -1
  142. package/esm/InstitutionalHolding.js.map +1 -1
  143. package/esm/InstitutionalHolding.mjs +189 -18
  144. package/esm/InstitutionalSentimentAlerts.d.ts.map +1 -1
  145. package/esm/InstitutionalSentimentAlerts.js.map +1 -1
  146. package/esm/InstitutionalSentimentAlerts.mjs +189 -18
  147. package/esm/InstitutionalSentimentErrors.d.ts.map +1 -1
  148. package/esm/InstitutionalSentimentErrors.js.map +1 -1
  149. package/esm/InstitutionalSentimentErrors.mjs +189 -18
  150. package/esm/InstitutionalSentimentHistory.d.ts.map +1 -1
  151. package/esm/InstitutionalSentimentHistory.js.map +1 -1
  152. package/esm/InstitutionalSentimentHistory.mjs +189 -18
  153. package/esm/InstitutionalSentimentMetrics.d.ts.map +1 -1
  154. package/esm/InstitutionalSentimentMetrics.js.map +1 -1
  155. package/esm/InstitutionalSentimentMetrics.mjs +189 -18
  156. package/esm/InviteToken.d.ts.map +1 -1
  157. package/esm/InviteToken.js.map +1 -1
  158. package/esm/InviteToken.mjs +189 -18
  159. package/esm/LinkedProvider.d.ts.map +1 -1
  160. package/esm/LinkedProvider.js.map +1 -1
  161. package/esm/LinkedProvider.mjs +189 -18
  162. package/esm/LlmConfiguration.d.ts.map +1 -1
  163. package/esm/LlmConfiguration.js.map +1 -1
  164. package/esm/LlmConfiguration.mjs +189 -18
  165. package/esm/MLModelVersion.d.ts.map +1 -1
  166. package/esm/MLModelVersion.js.map +1 -1
  167. package/esm/MLModelVersion.mjs +189 -18
  168. package/esm/MLTrainingData.d.ts.map +1 -1
  169. package/esm/MLTrainingData.js.map +1 -1
  170. package/esm/MLTrainingData.mjs +189 -18
  171. package/esm/MarketSentiment.d.ts.map +1 -1
  172. package/esm/MarketSentiment.js.map +1 -1
  173. package/esm/MarketSentiment.mjs +189 -18
  174. package/esm/ModelArtifact.d.ts.map +1 -1
  175. package/esm/ModelArtifact.js.map +1 -1
  176. package/esm/ModelArtifact.mjs +189 -18
  177. package/esm/ModelVersion.d.ts.map +1 -1
  178. package/esm/ModelVersion.js.map +1 -1
  179. package/esm/ModelVersion.mjs +189 -18
  180. package/esm/ModelVersionArtifact.d.ts.map +1 -1
  181. package/esm/ModelVersionArtifact.js.map +1 -1
  182. package/esm/ModelVersionArtifact.mjs +189 -18
  183. package/esm/NewsArticle.d.ts.map +1 -1
  184. package/esm/NewsArticle.js.map +1 -1
  185. package/esm/NewsArticle.mjs +189 -18
  186. package/esm/NewsArticleAssetSentiment.d.ts.map +1 -1
  187. package/esm/NewsArticleAssetSentiment.js.map +1 -1
  188. package/esm/NewsArticleAssetSentiment.mjs +189 -18
  189. package/esm/OptionsContract.d.ts.map +1 -1
  190. package/esm/OptionsContract.js.map +1 -1
  191. package/esm/OptionsContract.mjs +189 -18
  192. package/esm/OptionsGreeksHistory.d.ts.map +1 -1
  193. package/esm/OptionsGreeksHistory.js.map +1 -1
  194. package/esm/OptionsGreeksHistory.mjs +189 -18
  195. package/esm/OptionsPosition.d.ts.map +1 -1
  196. package/esm/OptionsPosition.js.map +1 -1
  197. package/esm/OptionsPosition.mjs +189 -18
  198. package/esm/OptionsPositionEvent.d.ts.map +1 -1
  199. package/esm/OptionsPositionEvent.js.map +1 -1
  200. package/esm/OptionsPositionEvent.mjs +189 -18
  201. package/esm/OptionsTradeExecution.d.ts.map +1 -1
  202. package/esm/OptionsTradeExecution.js.map +1 -1
  203. package/esm/OptionsTradeExecution.mjs +189 -18
  204. package/esm/PolicyOverlay.d.ts.map +1 -1
  205. package/esm/PolicyOverlay.js.map +1 -1
  206. package/esm/PolicyOverlay.mjs +189 -18
  207. package/esm/PortfolioGreeksHistory.d.ts.map +1 -1
  208. package/esm/PortfolioGreeksHistory.js.map +1 -1
  209. package/esm/PortfolioGreeksHistory.mjs +189 -18
  210. package/esm/ScheduledOptionOrder.d.ts.map +1 -1
  211. package/esm/ScheduledOptionOrder.js.map +1 -1
  212. package/esm/ScheduledOptionOrder.mjs +189 -18
  213. package/esm/Session.d.ts.map +1 -1
  214. package/esm/Session.js.map +1 -1
  215. package/esm/Session.mjs +189 -18
  216. package/esm/SignalGeneratorMetrics.d.ts.map +1 -1
  217. package/esm/SignalGeneratorMetrics.js.map +1 -1
  218. package/esm/SignalGeneratorMetrics.mjs +189 -18
  219. package/esm/SignalLineage.d.ts.map +1 -1
  220. package/esm/SignalLineage.js.map +1 -1
  221. package/esm/SignalLineage.mjs +189 -18
  222. package/esm/SignalOutcome.d.ts.map +1 -1
  223. package/esm/SignalOutcome.js.map +1 -1
  224. package/esm/SignalOutcome.mjs +189 -18
  225. package/esm/SignalPriorityQueue.d.ts.map +1 -1
  226. package/esm/SignalPriorityQueue.js.map +1 -1
  227. package/esm/SignalPriorityQueue.mjs +189 -18
  228. package/esm/SyncEvent.d.ts.map +1 -1
  229. package/esm/SyncEvent.js.map +1 -1
  230. package/esm/SyncEvent.mjs +189 -18
  231. package/esm/SystemAlert.d.ts.map +1 -1
  232. package/esm/SystemAlert.js.map +1 -1
  233. package/esm/SystemAlert.mjs +189 -18
  234. package/esm/Trade.d.ts.map +1 -1
  235. package/esm/Trade.js.map +1 -1
  236. package/esm/Trade.mjs +189 -18
  237. package/esm/TradeAuditEvent.d.ts.map +1 -1
  238. package/esm/TradeAuditEvent.js.map +1 -1
  239. package/esm/TradeAuditEvent.mjs +189 -18
  240. package/esm/TradeExecutionHistory.d.ts.map +1 -1
  241. package/esm/TradeExecutionHistory.js.map +1 -1
  242. package/esm/TradeExecutionHistory.mjs +189 -18
  243. package/esm/TradeOutcome.d.ts.map +1 -1
  244. package/esm/TradeOutcome.js.map +1 -1
  245. package/esm/TradeOutcome.mjs +189 -18
  246. package/esm/TradingPolicy.d.ts.map +1 -1
  247. package/esm/TradingPolicy.js.map +1 -1
  248. package/esm/TradingPolicy.mjs +189 -18
  249. package/esm/User.d.ts.map +1 -1
  250. package/esm/User.js.map +1 -1
  251. package/esm/User.mjs +189 -18
  252. package/esm/VerificationToken.d.ts.map +1 -1
  253. package/esm/VerificationToken.js.map +1 -1
  254. package/esm/VerificationToken.mjs +189 -18
  255. package/esm/WaitlistEntry.d.ts.map +1 -1
  256. package/esm/WaitlistEntry.js.map +1 -1
  257. package/esm/WaitlistEntry.mjs +189 -18
  258. package/esm/client.d.ts.map +1 -1
  259. package/esm/client.js.map +1 -1
  260. package/esm/client.mjs +2 -0
  261. package/esm/index.d.ts.map +1 -1
  262. package/package.json +1 -1
@@ -132,12 +132,31 @@ export const TradeOutcome = {
132
132
  });
133
133
  throw error;
134
134
  }
135
- // Check if this is a database connection error that we should retry
135
+ // Check if this is a database connection error that we should retry.
136
+ // Covers undici/fetch timeouts, Prisma Accelerate transients, connection
137
+ // pool exhaustion, and transient gateway statuses. Must stay consistent
138
+ // with the transient classifier in client.ts (onError link + enqueueOperation).
136
139
  const isConnectionError = error.message?.includes('Server has closed the connection') ||
137
140
  error.message?.includes('Cannot reach database server') ||
138
141
  error.message?.includes('Connection timed out') ||
142
+ error.message?.includes('aborted due to timeout') ||
143
+ error.message?.includes('TimeoutError') ||
144
+ error.message?.includes('fetch failed') ||
145
+ error.message?.includes('socket hang up') ||
146
+ error.message?.includes('ECONNRESET') ||
147
+ error.message?.includes('ECONNREFUSED') ||
148
+ error.message?.includes('ETIMEDOUT') ||
149
+ error.message?.includes('Connection pool timeout') ||
150
+ error.message?.includes('P2024') ||
151
+ error.message?.includes('status code 408') ||
152
+ error.message?.includes('status code 502') ||
153
+ error.message?.includes('status code 503') ||
154
+ error.message?.includes('status code 504') ||
139
155
  error.message?.includes('Accelerate') || // Prisma Accelerate proxy errors
140
- (error.networkError && error.networkError.message?.includes('Failed to fetch'));
156
+ (error.networkError && (error.networkError.message?.includes('Failed to fetch') ||
157
+ error.networkError.message?.includes('fetch failed') ||
158
+ error.networkError.message?.includes('aborted due to timeout') ||
159
+ error.networkError.message?.includes('TimeoutError')));
141
160
  if (isConnectionError && retryCount < MAX_RETRIES - 1) {
142
161
  retryCount++;
143
162
  const delay = Math.pow(2, retryCount) * 100; // Exponential backoff: 200ms, 400ms, 800ms
@@ -256,12 +275,31 @@ export const TradeOutcome = {
256
275
  });
257
276
  throw error;
258
277
  }
259
- // Check if this is a database connection error that we should retry
278
+ // Check if this is a database connection error that we should retry.
279
+ // Covers undici/fetch timeouts, Prisma Accelerate transients, connection
280
+ // pool exhaustion, and transient gateway statuses. Must stay consistent
281
+ // with the transient classifier in client.ts (onError link + enqueueOperation).
260
282
  const isConnectionError = error.message?.includes('Server has closed the connection') ||
261
283
  error.message?.includes('Cannot reach database server') ||
262
284
  error.message?.includes('Connection timed out') ||
285
+ error.message?.includes('aborted due to timeout') ||
286
+ error.message?.includes('TimeoutError') ||
287
+ error.message?.includes('fetch failed') ||
288
+ error.message?.includes('socket hang up') ||
289
+ error.message?.includes('ECONNRESET') ||
290
+ error.message?.includes('ECONNREFUSED') ||
291
+ error.message?.includes('ETIMEDOUT') ||
292
+ error.message?.includes('Connection pool timeout') ||
293
+ error.message?.includes('P2024') ||
294
+ error.message?.includes('status code 408') ||
295
+ error.message?.includes('status code 502') ||
296
+ error.message?.includes('status code 503') ||
297
+ error.message?.includes('status code 504') ||
263
298
  error.message?.includes('Accelerate') || // Prisma Accelerate proxy errors
264
- (error.networkError && error.networkError.message?.includes('Failed to fetch'));
299
+ (error.networkError && (error.networkError.message?.includes('Failed to fetch') ||
300
+ error.networkError.message?.includes('fetch failed') ||
301
+ error.networkError.message?.includes('aborted due to timeout') ||
302
+ error.networkError.message?.includes('TimeoutError')));
265
303
  if (isConnectionError && retryCount < MAX_RETRIES - 1) {
266
304
  retryCount++;
267
305
  const delay = Math.pow(2, retryCount) * 100; // Exponential backoff: 200ms, 400ms, 800ms
@@ -432,12 +470,31 @@ export const TradeOutcome = {
432
470
  });
433
471
  throw error;
434
472
  }
435
- // Check if this is a database connection error that we should retry
473
+ // Check if this is a database connection error that we should retry.
474
+ // Covers undici/fetch timeouts, Prisma Accelerate transients, connection
475
+ // pool exhaustion, and transient gateway statuses. Must stay consistent
476
+ // with the transient classifier in client.ts (onError link + enqueueOperation).
436
477
  const isConnectionError = error.message?.includes('Server has closed the connection') ||
437
478
  error.message?.includes('Cannot reach database server') ||
438
479
  error.message?.includes('Connection timed out') ||
480
+ error.message?.includes('aborted due to timeout') ||
481
+ error.message?.includes('TimeoutError') ||
482
+ error.message?.includes('fetch failed') ||
483
+ error.message?.includes('socket hang up') ||
484
+ error.message?.includes('ECONNRESET') ||
485
+ error.message?.includes('ECONNREFUSED') ||
486
+ error.message?.includes('ETIMEDOUT') ||
487
+ error.message?.includes('Connection pool timeout') ||
488
+ error.message?.includes('P2024') ||
489
+ error.message?.includes('status code 408') ||
490
+ error.message?.includes('status code 502') ||
491
+ error.message?.includes('status code 503') ||
492
+ error.message?.includes('status code 504') ||
439
493
  error.message?.includes('Accelerate') || // Prisma Accelerate proxy errors
440
- (error.networkError && error.networkError.message?.includes('Failed to fetch'));
494
+ (error.networkError && (error.networkError.message?.includes('Failed to fetch') ||
495
+ error.networkError.message?.includes('fetch failed') ||
496
+ error.networkError.message?.includes('aborted due to timeout') ||
497
+ error.networkError.message?.includes('TimeoutError')));
441
498
  if (isConnectionError && retryCount < MAX_RETRIES - 1) {
442
499
  retryCount++;
443
500
  const delay = Math.pow(2, retryCount) * 100; // Exponential backoff: 200ms, 400ms, 800ms
@@ -633,12 +690,31 @@ export const TradeOutcome = {
633
690
  });
634
691
  throw error;
635
692
  }
636
- // Check if this is a database connection error that we should retry
693
+ // Check if this is a database connection error that we should retry.
694
+ // Covers undici/fetch timeouts, Prisma Accelerate transients, connection
695
+ // pool exhaustion, and transient gateway statuses. Must stay consistent
696
+ // with the transient classifier in client.ts (onError link + enqueueOperation).
637
697
  const isConnectionError = error.message?.includes('Server has closed the connection') ||
638
698
  error.message?.includes('Cannot reach database server') ||
639
699
  error.message?.includes('Connection timed out') ||
700
+ error.message?.includes('aborted due to timeout') ||
701
+ error.message?.includes('TimeoutError') ||
702
+ error.message?.includes('fetch failed') ||
703
+ error.message?.includes('socket hang up') ||
704
+ error.message?.includes('ECONNRESET') ||
705
+ error.message?.includes('ECONNREFUSED') ||
706
+ error.message?.includes('ETIMEDOUT') ||
707
+ error.message?.includes('Connection pool timeout') ||
708
+ error.message?.includes('P2024') ||
709
+ error.message?.includes('status code 408') ||
710
+ error.message?.includes('status code 502') ||
711
+ error.message?.includes('status code 503') ||
712
+ error.message?.includes('status code 504') ||
640
713
  error.message?.includes('Accelerate') || // Prisma Accelerate proxy errors
641
- (error.networkError && error.networkError.message?.includes('Failed to fetch'));
714
+ (error.networkError && (error.networkError.message?.includes('Failed to fetch') ||
715
+ error.networkError.message?.includes('fetch failed') ||
716
+ error.networkError.message?.includes('aborted due to timeout') ||
717
+ error.networkError.message?.includes('TimeoutError')));
642
718
  if (isConnectionError && retryCount < MAX_RETRIES - 1) {
643
719
  retryCount++;
644
720
  const delay = Math.pow(2, retryCount) * 100; // Exponential backoff: 200ms, 400ms, 800ms
@@ -810,12 +886,31 @@ export const TradeOutcome = {
810
886
  });
811
887
  throw error;
812
888
  }
813
- // Check if this is a database connection error that we should retry
889
+ // Check if this is a database connection error that we should retry.
890
+ // Covers undici/fetch timeouts, Prisma Accelerate transients, connection
891
+ // pool exhaustion, and transient gateway statuses. Must stay consistent
892
+ // with the transient classifier in client.ts (onError link + enqueueOperation).
814
893
  const isConnectionError = error.message?.includes('Server has closed the connection') ||
815
894
  error.message?.includes('Cannot reach database server') ||
816
895
  error.message?.includes('Connection timed out') ||
896
+ error.message?.includes('aborted due to timeout') ||
897
+ error.message?.includes('TimeoutError') ||
898
+ error.message?.includes('fetch failed') ||
899
+ error.message?.includes('socket hang up') ||
900
+ error.message?.includes('ECONNRESET') ||
901
+ error.message?.includes('ECONNREFUSED') ||
902
+ error.message?.includes('ETIMEDOUT') ||
903
+ error.message?.includes('Connection pool timeout') ||
904
+ error.message?.includes('P2024') ||
905
+ error.message?.includes('status code 408') ||
906
+ error.message?.includes('status code 502') ||
907
+ error.message?.includes('status code 503') ||
908
+ error.message?.includes('status code 504') ||
817
909
  error.message?.includes('Accelerate') || // Prisma Accelerate proxy errors
818
- (error.networkError && error.networkError.message?.includes('Failed to fetch'));
910
+ (error.networkError && (error.networkError.message?.includes('Failed to fetch') ||
911
+ error.networkError.message?.includes('fetch failed') ||
912
+ error.networkError.message?.includes('aborted due to timeout') ||
913
+ error.networkError.message?.includes('TimeoutError')));
819
914
  if (isConnectionError && retryCount < MAX_RETRIES - 1) {
820
915
  retryCount++;
821
916
  const delay = Math.pow(2, retryCount) * 100; // Exponential backoff: 200ms, 400ms, 800ms
@@ -917,12 +1012,31 @@ export const TradeOutcome = {
917
1012
  });
918
1013
  throw error;
919
1014
  }
920
- // Check if this is a database connection error that we should retry
1015
+ // Check if this is a database connection error that we should retry.
1016
+ // Covers undici/fetch timeouts, Prisma Accelerate transients, connection
1017
+ // pool exhaustion, and transient gateway statuses. Must stay consistent
1018
+ // with the transient classifier in client.ts (onError link + enqueueOperation).
921
1019
  const isConnectionError = error.message?.includes('Server has closed the connection') ||
922
1020
  error.message?.includes('Cannot reach database server') ||
923
1021
  error.message?.includes('Connection timed out') ||
1022
+ error.message?.includes('aborted due to timeout') ||
1023
+ error.message?.includes('TimeoutError') ||
1024
+ error.message?.includes('fetch failed') ||
1025
+ error.message?.includes('socket hang up') ||
1026
+ error.message?.includes('ECONNRESET') ||
1027
+ error.message?.includes('ECONNREFUSED') ||
1028
+ error.message?.includes('ETIMEDOUT') ||
1029
+ error.message?.includes('Connection pool timeout') ||
1030
+ error.message?.includes('P2024') ||
1031
+ error.message?.includes('status code 408') ||
1032
+ error.message?.includes('status code 502') ||
1033
+ error.message?.includes('status code 503') ||
1034
+ error.message?.includes('status code 504') ||
924
1035
  error.message?.includes('Accelerate') || // Prisma Accelerate proxy errors
925
- (error.networkError && error.networkError.message?.includes('Failed to fetch'));
1036
+ (error.networkError && (error.networkError.message?.includes('Failed to fetch') ||
1037
+ error.networkError.message?.includes('fetch failed') ||
1038
+ error.networkError.message?.includes('aborted due to timeout') ||
1039
+ error.networkError.message?.includes('TimeoutError')));
926
1040
  if (isConnectionError && retryCount < MAX_RETRIES - 1) {
927
1041
  retryCount++;
928
1042
  const delay = Math.pow(2, retryCount) * 100; // Exponential backoff: 200ms, 400ms, 800ms
@@ -1009,12 +1123,31 @@ export const TradeOutcome = {
1009
1123
  if (error.message === 'No TradeOutcome found') {
1010
1124
  return null;
1011
1125
  }
1012
- // Check if this is a database connection error that we should retry
1126
+ // Check if this is a database connection error that we should retry.
1127
+ // Covers undici/fetch timeouts, Prisma Accelerate transients, connection
1128
+ // pool exhaustion, and transient gateway statuses. Must stay consistent
1129
+ // with the transient classifier in client.ts (onError link + enqueueOperation).
1013
1130
  const isConnectionError = error.message?.includes('Server has closed the connection') ||
1014
1131
  error.message?.includes('Cannot reach database server') ||
1015
1132
  error.message?.includes('Connection timed out') ||
1133
+ error.message?.includes('aborted due to timeout') ||
1134
+ error.message?.includes('TimeoutError') ||
1135
+ error.message?.includes('fetch failed') ||
1136
+ error.message?.includes('socket hang up') ||
1137
+ error.message?.includes('ECONNRESET') ||
1138
+ error.message?.includes('ECONNREFUSED') ||
1139
+ error.message?.includes('ETIMEDOUT') ||
1140
+ error.message?.includes('Connection pool timeout') ||
1141
+ error.message?.includes('P2024') ||
1142
+ error.message?.includes('status code 408') ||
1143
+ error.message?.includes('status code 502') ||
1144
+ error.message?.includes('status code 503') ||
1145
+ error.message?.includes('status code 504') ||
1016
1146
  error.message?.includes('Accelerate') || // Prisma Accelerate proxy errors
1017
- (error.networkError && error.networkError.message?.includes('Failed to fetch'));
1147
+ (error.networkError && (error.networkError.message?.includes('Failed to fetch') ||
1148
+ error.networkError.message?.includes('fetch failed') ||
1149
+ error.networkError.message?.includes('aborted due to timeout') ||
1150
+ error.networkError.message?.includes('TimeoutError')));
1018
1151
  if (isConnectionError && retryCount < MAX_RETRIES - 1) {
1019
1152
  retryCount++;
1020
1153
  const delay = Math.pow(2, retryCount) * 100; // Exponential backoff: 200ms, 400ms, 800ms
@@ -1081,12 +1214,31 @@ export const TradeOutcome = {
1081
1214
  if (error.message === 'No TradeOutcome found') {
1082
1215
  return null;
1083
1216
  }
1084
- // Check if this is a database connection error that we should retry
1217
+ // Check if this is a database connection error that we should retry.
1218
+ // Covers undici/fetch timeouts, Prisma Accelerate transients, connection
1219
+ // pool exhaustion, and transient gateway statuses. Must stay consistent
1220
+ // with the transient classifier in client.ts (onError link + enqueueOperation).
1085
1221
  const isConnectionError = error.message?.includes('Server has closed the connection') ||
1086
1222
  error.message?.includes('Cannot reach database server') ||
1087
1223
  error.message?.includes('Connection timed out') ||
1224
+ error.message?.includes('aborted due to timeout') ||
1225
+ error.message?.includes('TimeoutError') ||
1226
+ error.message?.includes('fetch failed') ||
1227
+ error.message?.includes('socket hang up') ||
1228
+ error.message?.includes('ECONNRESET') ||
1229
+ error.message?.includes('ECONNREFUSED') ||
1230
+ error.message?.includes('ETIMEDOUT') ||
1231
+ error.message?.includes('Connection pool timeout') ||
1232
+ error.message?.includes('P2024') ||
1233
+ error.message?.includes('status code 408') ||
1234
+ error.message?.includes('status code 502') ||
1235
+ error.message?.includes('status code 503') ||
1236
+ error.message?.includes('status code 504') ||
1088
1237
  error.message?.includes('Accelerate') || // Prisma Accelerate proxy errors
1089
- (error.networkError && error.networkError.message?.includes('Failed to fetch'));
1238
+ (error.networkError && (error.networkError.message?.includes('Failed to fetch') ||
1239
+ error.networkError.message?.includes('fetch failed') ||
1240
+ error.networkError.message?.includes('aborted due to timeout') ||
1241
+ error.networkError.message?.includes('TimeoutError')));
1090
1242
  if (isConnectionError && retryCount < MAX_RETRIES - 1) {
1091
1243
  retryCount++;
1092
1244
  const delay = Math.pow(2, retryCount) * 100; // Exponential backoff: 200ms, 400ms, 800ms
@@ -1183,12 +1335,31 @@ export const TradeOutcome = {
1183
1335
  if (error.message === 'No TradeOutcome found') {
1184
1336
  return null;
1185
1337
  }
1186
- // Check if this is a database connection error that we should retry
1338
+ // Check if this is a database connection error that we should retry.
1339
+ // Covers undici/fetch timeouts, Prisma Accelerate transients, connection
1340
+ // pool exhaustion, and transient gateway statuses. Must stay consistent
1341
+ // with the transient classifier in client.ts (onError link + enqueueOperation).
1187
1342
  const isConnectionError = error.message?.includes('Server has closed the connection') ||
1188
1343
  error.message?.includes('Cannot reach database server') ||
1189
1344
  error.message?.includes('Connection timed out') ||
1345
+ error.message?.includes('aborted due to timeout') ||
1346
+ error.message?.includes('TimeoutError') ||
1347
+ error.message?.includes('fetch failed') ||
1348
+ error.message?.includes('socket hang up') ||
1349
+ error.message?.includes('ECONNRESET') ||
1350
+ error.message?.includes('ECONNREFUSED') ||
1351
+ error.message?.includes('ETIMEDOUT') ||
1352
+ error.message?.includes('Connection pool timeout') ||
1353
+ error.message?.includes('P2024') ||
1354
+ error.message?.includes('status code 408') ||
1355
+ error.message?.includes('status code 502') ||
1356
+ error.message?.includes('status code 503') ||
1357
+ error.message?.includes('status code 504') ||
1190
1358
  error.message?.includes('Accelerate') || // Prisma Accelerate proxy errors
1191
- (error.networkError && error.networkError.message?.includes('Failed to fetch'));
1359
+ (error.networkError && (error.networkError.message?.includes('Failed to fetch') ||
1360
+ error.networkError.message?.includes('fetch failed') ||
1361
+ error.networkError.message?.includes('aborted due to timeout') ||
1362
+ error.networkError.message?.includes('TimeoutError')));
1192
1363
  if (isConnectionError && retryCount < MAX_RETRIES - 1) {
1193
1364
  retryCount++;
1194
1365
  const delay = Math.pow(2, retryCount) * 100; // Exponential backoff: 200ms, 400ms, 800ms
@@ -1 +1 @@
1
- {"version":3,"file":"TradingPolicy.d.ts","sourceRoot":"","sources":["../../src/TradingPolicy.ts"],"names":[],"mappings":"AAEA,OAAO,EAAE,aAAa,IAAI,iBAAiB,EAAE,MAAM,qDAAqD,CAAC;AACzG,OAAO,EAAmB,gBAAgB,EAAE,qBAAqB,EAAoB,MAAM,UAAU,CAAC;AAsEpG,eAAO,MAAM,aAAa;IAExB;;;;;OAKG;IAEH;;;;;;OAMG;kBACiB,iBAAiB,iBAAiB,gBAAgB,CAAC,qBAAqB,CAAC,GAAG,OAAO,CAAC,iBAAiB,CAAC;IAojB5H;;;;;;;OAOG;sBACqB,iBAAiB,EAAE,iBAAiB,gBAAgB,CAAC,qBAAqB,CAAC,YAAY;QAAE,cAAc,CAAC,EAAE,OAAO,CAAA;KAAE,GAAG,OAAO,CAAC;QAAE,KAAK,EAAE,MAAM,CAAA;KAAE,GAAG,IAAI,CAAC;IAkK/K;;;;;;OAMG;kBACiB,iBAAiB,iBAAiB,gBAAgB,CAAC,qBAAqB,CAAC,GAAG,OAAO,CAAC,iBAAiB,CAAC;IA0oD1H;;;;;;OAMG;kBACiB,iBAAiB,iBAAiB,gBAAgB,CAAC,qBAAqB,CAAC,GAAG,OAAO,CAAC,iBAAiB,CAAC;IAmlE1H;;;;;;OAMG;sBACqB,iBAAiB,EAAE,iBAAiB,gBAAgB,CAAC,qBAAqB,CAAC,GAAG,OAAO,CAAC;QAAE,KAAK,EAAE,MAAM,CAAA;KAAE,GAAG,IAAI,CAAC;IAyoDvI;;;;;;OAMG;kBACiB,iBAAiB,iBAAiB,gBAAgB,CAAC,qBAAqB,CAAC,GAAG,OAAO,CAAC,iBAAiB,CAAC;IAmH1H;;;;;;;OAOG;eACc,iBAAiB,iBAAiB,gBAAgB,CAAC,qBAAqB,CAAC,eAAe,GAAG,GAAG,OAAO,CAAC,iBAAiB,GAAG,IAAI,CAAC;IA8FhJ;;;;;OAKG;0BACyB,gBAAgB,CAAC,qBAAqB,CAAC,GAAG,OAAO,CAAC,iBAAiB,EAAE,GAAG,IAAI,CAAC;IA4EzG;;;;;;;OAOG;oBACmB,iBAAiB,iBAAiB,gBAAgB,CAAC,qBAAqB,CAAC,eAAe,GAAG,GAAG,OAAO,CAAC,iBAAiB,EAAE,GAAG,IAAI,CAAC;CA4GxJ,CAAC"}
1
+ {"version":3,"file":"TradingPolicy.d.ts","sourceRoot":"","sources":["../../src/TradingPolicy.ts"],"names":[],"mappings":"AAEA,OAAO,EAAE,aAAa,IAAI,iBAAiB,EAAE,MAAM,qDAAqD,CAAC;AACzG,OAAO,EAAmB,gBAAgB,EAAE,qBAAqB,EAAoB,MAAM,UAAU,CAAC;AAsEpG,eAAO,MAAM,aAAa;IAExB;;;;;OAKG;IAEH;;;;;;OAMG;kBACiB,iBAAiB,iBAAiB,gBAAgB,CAAC,qBAAqB,CAAC,GAAG,OAAO,CAAC,iBAAiB,CAAC;IAykB5H;;;;;;;OAOG;sBACqB,iBAAiB,EAAE,iBAAiB,gBAAgB,CAAC,qBAAqB,CAAC,YAAY;QAAE,cAAc,CAAC,EAAE,OAAO,CAAA;KAAE,GAAG,OAAO,CAAC;QAAE,KAAK,EAAE,MAAM,CAAA;KAAE,GAAG,IAAI,CAAC;IAuL/K;;;;;;OAMG;kBACiB,iBAAiB,iBAAiB,gBAAgB,CAAC,qBAAqB,CAAC,GAAG,OAAO,CAAC,iBAAiB,CAAC;IA+pD1H;;;;;;OAMG;kBACiB,iBAAiB,iBAAiB,gBAAgB,CAAC,qBAAqB,CAAC,GAAG,OAAO,CAAC,iBAAiB,CAAC;IAwmE1H;;;;;;OAMG;sBACqB,iBAAiB,EAAE,iBAAiB,gBAAgB,CAAC,qBAAqB,CAAC,GAAG,OAAO,CAAC;QAAE,KAAK,EAAE,MAAM,CAAA;KAAE,GAAG,IAAI,CAAC;IA8pDvI;;;;;;OAMG;kBACiB,iBAAiB,iBAAiB,gBAAgB,CAAC,qBAAqB,CAAC,GAAG,OAAO,CAAC,iBAAiB,CAAC;IAwI1H;;;;;;;OAOG;eACc,iBAAiB,iBAAiB,gBAAgB,CAAC,qBAAqB,CAAC,eAAe,GAAG,GAAG,OAAO,CAAC,iBAAiB,GAAG,IAAI,CAAC;IAmHhJ;;;;;OAKG;0BACyB,gBAAgB,CAAC,qBAAqB,CAAC,GAAG,OAAO,CAAC,iBAAiB,EAAE,GAAG,IAAI,CAAC;IAiGzG;;;;;;;OAOG;oBACmB,iBAAiB,iBAAiB,gBAAgB,CAAC,qBAAqB,CAAC,eAAe,GAAG,GAAG,OAAO,CAAC,iBAAiB,EAAE,GAAG,IAAI,CAAC;CAiIxJ,CAAC"}