@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
@@ -96,12 +96,31 @@ export const MarketSentiment = {
96
96
  });
97
97
  throw error;
98
98
  }
99
- // Check if this is a database connection error that we should retry
99
+ // Check if this is a database connection error that we should retry.
100
+ // Covers undici/fetch timeouts, Prisma Accelerate transients, connection
101
+ // pool exhaustion, and transient gateway statuses. Must stay consistent
102
+ // with the transient classifier in client.ts (onError link + enqueueOperation).
100
103
  const isConnectionError = error.message?.includes('Server has closed the connection') ||
101
104
  error.message?.includes('Cannot reach database server') ||
102
105
  error.message?.includes('Connection timed out') ||
106
+ error.message?.includes('aborted due to timeout') ||
107
+ error.message?.includes('TimeoutError') ||
108
+ error.message?.includes('fetch failed') ||
109
+ error.message?.includes('socket hang up') ||
110
+ error.message?.includes('ECONNRESET') ||
111
+ error.message?.includes('ECONNREFUSED') ||
112
+ error.message?.includes('ETIMEDOUT') ||
113
+ error.message?.includes('Connection pool timeout') ||
114
+ error.message?.includes('P2024') ||
115
+ error.message?.includes('status code 408') ||
116
+ error.message?.includes('status code 502') ||
117
+ error.message?.includes('status code 503') ||
118
+ error.message?.includes('status code 504') ||
103
119
  error.message?.includes('Accelerate') || // Prisma Accelerate proxy errors
104
- (error.networkError && error.networkError.message?.includes('Failed to fetch'));
120
+ (error.networkError && (error.networkError.message?.includes('Failed to fetch') ||
121
+ error.networkError.message?.includes('fetch failed') ||
122
+ error.networkError.message?.includes('aborted due to timeout') ||
123
+ error.networkError.message?.includes('TimeoutError')));
105
124
  if (isConnectionError && retryCount < MAX_RETRIES - 1) {
106
125
  retryCount++;
107
126
  const delay = Math.pow(2, retryCount) * 100; // Exponential backoff: 200ms, 400ms, 800ms
@@ -202,12 +221,31 @@ export const MarketSentiment = {
202
221
  });
203
222
  throw error;
204
223
  }
205
- // Check if this is a database connection error that we should retry
224
+ // Check if this is a database connection error that we should retry.
225
+ // Covers undici/fetch timeouts, Prisma Accelerate transients, connection
226
+ // pool exhaustion, and transient gateway statuses. Must stay consistent
227
+ // with the transient classifier in client.ts (onError link + enqueueOperation).
206
228
  const isConnectionError = error.message?.includes('Server has closed the connection') ||
207
229
  error.message?.includes('Cannot reach database server') ||
208
230
  error.message?.includes('Connection timed out') ||
231
+ error.message?.includes('aborted due to timeout') ||
232
+ error.message?.includes('TimeoutError') ||
233
+ error.message?.includes('fetch failed') ||
234
+ error.message?.includes('socket hang up') ||
235
+ error.message?.includes('ECONNRESET') ||
236
+ error.message?.includes('ECONNREFUSED') ||
237
+ error.message?.includes('ETIMEDOUT') ||
238
+ error.message?.includes('Connection pool timeout') ||
239
+ error.message?.includes('P2024') ||
240
+ error.message?.includes('status code 408') ||
241
+ error.message?.includes('status code 502') ||
242
+ error.message?.includes('status code 503') ||
243
+ error.message?.includes('status code 504') ||
209
244
  error.message?.includes('Accelerate') || // Prisma Accelerate proxy errors
210
- (error.networkError && error.networkError.message?.includes('Failed to fetch'));
245
+ (error.networkError && (error.networkError.message?.includes('Failed to fetch') ||
246
+ error.networkError.message?.includes('fetch failed') ||
247
+ error.networkError.message?.includes('aborted due to timeout') ||
248
+ error.networkError.message?.includes('TimeoutError')));
211
249
  if (isConnectionError && retryCount < MAX_RETRIES - 1) {
212
250
  retryCount++;
213
251
  const delay = Math.pow(2, retryCount) * 100; // Exponential backoff: 200ms, 400ms, 800ms
@@ -326,12 +364,31 @@ export const MarketSentiment = {
326
364
  });
327
365
  throw error;
328
366
  }
329
- // Check if this is a database connection error that we should retry
367
+ // Check if this is a database connection error that we should retry.
368
+ // Covers undici/fetch timeouts, Prisma Accelerate transients, connection
369
+ // pool exhaustion, and transient gateway statuses. Must stay consistent
370
+ // with the transient classifier in client.ts (onError link + enqueueOperation).
330
371
  const isConnectionError = error.message?.includes('Server has closed the connection') ||
331
372
  error.message?.includes('Cannot reach database server') ||
332
373
  error.message?.includes('Connection timed out') ||
374
+ error.message?.includes('aborted due to timeout') ||
375
+ error.message?.includes('TimeoutError') ||
376
+ error.message?.includes('fetch failed') ||
377
+ error.message?.includes('socket hang up') ||
378
+ error.message?.includes('ECONNRESET') ||
379
+ error.message?.includes('ECONNREFUSED') ||
380
+ error.message?.includes('ETIMEDOUT') ||
381
+ error.message?.includes('Connection pool timeout') ||
382
+ error.message?.includes('P2024') ||
383
+ error.message?.includes('status code 408') ||
384
+ error.message?.includes('status code 502') ||
385
+ error.message?.includes('status code 503') ||
386
+ error.message?.includes('status code 504') ||
333
387
  error.message?.includes('Accelerate') || // Prisma Accelerate proxy errors
334
- (error.networkError && error.networkError.message?.includes('Failed to fetch'));
388
+ (error.networkError && (error.networkError.message?.includes('Failed to fetch') ||
389
+ error.networkError.message?.includes('fetch failed') ||
390
+ error.networkError.message?.includes('aborted due to timeout') ||
391
+ error.networkError.message?.includes('TimeoutError')));
335
392
  if (isConnectionError && retryCount < MAX_RETRIES - 1) {
336
393
  retryCount++;
337
394
  const delay = Math.pow(2, retryCount) * 100; // Exponential backoff: 200ms, 400ms, 800ms
@@ -448,12 +505,31 @@ export const MarketSentiment = {
448
505
  });
449
506
  throw error;
450
507
  }
451
- // Check if this is a database connection error that we should retry
508
+ // Check if this is a database connection error that we should retry.
509
+ // Covers undici/fetch timeouts, Prisma Accelerate transients, connection
510
+ // pool exhaustion, and transient gateway statuses. Must stay consistent
511
+ // with the transient classifier in client.ts (onError link + enqueueOperation).
452
512
  const isConnectionError = error.message?.includes('Server has closed the connection') ||
453
513
  error.message?.includes('Cannot reach database server') ||
454
514
  error.message?.includes('Connection timed out') ||
515
+ error.message?.includes('aborted due to timeout') ||
516
+ error.message?.includes('TimeoutError') ||
517
+ error.message?.includes('fetch failed') ||
518
+ error.message?.includes('socket hang up') ||
519
+ error.message?.includes('ECONNRESET') ||
520
+ error.message?.includes('ECONNREFUSED') ||
521
+ error.message?.includes('ETIMEDOUT') ||
522
+ error.message?.includes('Connection pool timeout') ||
523
+ error.message?.includes('P2024') ||
524
+ error.message?.includes('status code 408') ||
525
+ error.message?.includes('status code 502') ||
526
+ error.message?.includes('status code 503') ||
527
+ error.message?.includes('status code 504') ||
455
528
  error.message?.includes('Accelerate') || // Prisma Accelerate proxy errors
456
- (error.networkError && error.networkError.message?.includes('Failed to fetch'));
529
+ (error.networkError && (error.networkError.message?.includes('Failed to fetch') ||
530
+ error.networkError.message?.includes('fetch failed') ||
531
+ error.networkError.message?.includes('aborted due to timeout') ||
532
+ error.networkError.message?.includes('TimeoutError')));
457
533
  if (isConnectionError && retryCount < MAX_RETRIES - 1) {
458
534
  retryCount++;
459
535
  const delay = Math.pow(2, retryCount) * 100; // Exponential backoff: 200ms, 400ms, 800ms
@@ -573,12 +649,31 @@ export const MarketSentiment = {
573
649
  });
574
650
  throw error;
575
651
  }
576
- // Check if this is a database connection error that we should retry
652
+ // Check if this is a database connection error that we should retry.
653
+ // Covers undici/fetch timeouts, Prisma Accelerate transients, connection
654
+ // pool exhaustion, and transient gateway statuses. Must stay consistent
655
+ // with the transient classifier in client.ts (onError link + enqueueOperation).
577
656
  const isConnectionError = error.message?.includes('Server has closed the connection') ||
578
657
  error.message?.includes('Cannot reach database server') ||
579
658
  error.message?.includes('Connection timed out') ||
659
+ error.message?.includes('aborted due to timeout') ||
660
+ error.message?.includes('TimeoutError') ||
661
+ error.message?.includes('fetch failed') ||
662
+ error.message?.includes('socket hang up') ||
663
+ error.message?.includes('ECONNRESET') ||
664
+ error.message?.includes('ECONNREFUSED') ||
665
+ error.message?.includes('ETIMEDOUT') ||
666
+ error.message?.includes('Connection pool timeout') ||
667
+ error.message?.includes('P2024') ||
668
+ error.message?.includes('status code 408') ||
669
+ error.message?.includes('status code 502') ||
670
+ error.message?.includes('status code 503') ||
671
+ error.message?.includes('status code 504') ||
580
672
  error.message?.includes('Accelerate') || // Prisma Accelerate proxy errors
581
- (error.networkError && error.networkError.message?.includes('Failed to fetch'));
673
+ (error.networkError && (error.networkError.message?.includes('Failed to fetch') ||
674
+ error.networkError.message?.includes('fetch failed') ||
675
+ error.networkError.message?.includes('aborted due to timeout') ||
676
+ error.networkError.message?.includes('TimeoutError')));
582
677
  if (isConnectionError && retryCount < MAX_RETRIES - 1) {
583
678
  retryCount++;
584
679
  const delay = Math.pow(2, retryCount) * 100; // Exponential backoff: 200ms, 400ms, 800ms
@@ -680,12 +775,31 @@ export const MarketSentiment = {
680
775
  });
681
776
  throw error;
682
777
  }
683
- // Check if this is a database connection error that we should retry
778
+ // Check if this is a database connection error that we should retry.
779
+ // Covers undici/fetch timeouts, Prisma Accelerate transients, connection
780
+ // pool exhaustion, and transient gateway statuses. Must stay consistent
781
+ // with the transient classifier in client.ts (onError link + enqueueOperation).
684
782
  const isConnectionError = error.message?.includes('Server has closed the connection') ||
685
783
  error.message?.includes('Cannot reach database server') ||
686
784
  error.message?.includes('Connection timed out') ||
785
+ error.message?.includes('aborted due to timeout') ||
786
+ error.message?.includes('TimeoutError') ||
787
+ error.message?.includes('fetch failed') ||
788
+ error.message?.includes('socket hang up') ||
789
+ error.message?.includes('ECONNRESET') ||
790
+ error.message?.includes('ECONNREFUSED') ||
791
+ error.message?.includes('ETIMEDOUT') ||
792
+ error.message?.includes('Connection pool timeout') ||
793
+ error.message?.includes('P2024') ||
794
+ error.message?.includes('status code 408') ||
795
+ error.message?.includes('status code 502') ||
796
+ error.message?.includes('status code 503') ||
797
+ error.message?.includes('status code 504') ||
687
798
  error.message?.includes('Accelerate') || // Prisma Accelerate proxy errors
688
- (error.networkError && error.networkError.message?.includes('Failed to fetch'));
799
+ (error.networkError && (error.networkError.message?.includes('Failed to fetch') ||
800
+ error.networkError.message?.includes('fetch failed') ||
801
+ error.networkError.message?.includes('aborted due to timeout') ||
802
+ error.networkError.message?.includes('TimeoutError')));
689
803
  if (isConnectionError && retryCount < MAX_RETRIES - 1) {
690
804
  retryCount++;
691
805
  const delay = Math.pow(2, retryCount) * 100; // Exponential backoff: 200ms, 400ms, 800ms
@@ -763,12 +877,31 @@ export const MarketSentiment = {
763
877
  if (error.message === 'No MarketSentiment found') {
764
878
  return null;
765
879
  }
766
- // Check if this is a database connection error that we should retry
880
+ // Check if this is a database connection error that we should retry.
881
+ // Covers undici/fetch timeouts, Prisma Accelerate transients, connection
882
+ // pool exhaustion, and transient gateway statuses. Must stay consistent
883
+ // with the transient classifier in client.ts (onError link + enqueueOperation).
767
884
  const isConnectionError = error.message?.includes('Server has closed the connection') ||
768
885
  error.message?.includes('Cannot reach database server') ||
769
886
  error.message?.includes('Connection timed out') ||
887
+ error.message?.includes('aborted due to timeout') ||
888
+ error.message?.includes('TimeoutError') ||
889
+ error.message?.includes('fetch failed') ||
890
+ error.message?.includes('socket hang up') ||
891
+ error.message?.includes('ECONNRESET') ||
892
+ error.message?.includes('ECONNREFUSED') ||
893
+ error.message?.includes('ETIMEDOUT') ||
894
+ error.message?.includes('Connection pool timeout') ||
895
+ error.message?.includes('P2024') ||
896
+ error.message?.includes('status code 408') ||
897
+ error.message?.includes('status code 502') ||
898
+ error.message?.includes('status code 503') ||
899
+ error.message?.includes('status code 504') ||
770
900
  error.message?.includes('Accelerate') || // Prisma Accelerate proxy errors
771
- (error.networkError && error.networkError.message?.includes('Failed to fetch'));
901
+ (error.networkError && (error.networkError.message?.includes('Failed to fetch') ||
902
+ error.networkError.message?.includes('fetch failed') ||
903
+ error.networkError.message?.includes('aborted due to timeout') ||
904
+ error.networkError.message?.includes('TimeoutError')));
772
905
  if (isConnectionError && retryCount < MAX_RETRIES - 1) {
773
906
  retryCount++;
774
907
  const delay = Math.pow(2, retryCount) * 100; // Exponential backoff: 200ms, 400ms, 800ms
@@ -835,12 +968,31 @@ export const MarketSentiment = {
835
968
  if (error.message === 'No MarketSentiment found') {
836
969
  return null;
837
970
  }
838
- // Check if this is a database connection error that we should retry
971
+ // Check if this is a database connection error that we should retry.
972
+ // Covers undici/fetch timeouts, Prisma Accelerate transients, connection
973
+ // pool exhaustion, and transient gateway statuses. Must stay consistent
974
+ // with the transient classifier in client.ts (onError link + enqueueOperation).
839
975
  const isConnectionError = error.message?.includes('Server has closed the connection') ||
840
976
  error.message?.includes('Cannot reach database server') ||
841
977
  error.message?.includes('Connection timed out') ||
978
+ error.message?.includes('aborted due to timeout') ||
979
+ error.message?.includes('TimeoutError') ||
980
+ error.message?.includes('fetch failed') ||
981
+ error.message?.includes('socket hang up') ||
982
+ error.message?.includes('ECONNRESET') ||
983
+ error.message?.includes('ECONNREFUSED') ||
984
+ error.message?.includes('ETIMEDOUT') ||
985
+ error.message?.includes('Connection pool timeout') ||
986
+ error.message?.includes('P2024') ||
987
+ error.message?.includes('status code 408') ||
988
+ error.message?.includes('status code 502') ||
989
+ error.message?.includes('status code 503') ||
990
+ error.message?.includes('status code 504') ||
842
991
  error.message?.includes('Accelerate') || // Prisma Accelerate proxy errors
843
- (error.networkError && error.networkError.message?.includes('Failed to fetch'));
992
+ (error.networkError && (error.networkError.message?.includes('Failed to fetch') ||
993
+ error.networkError.message?.includes('fetch failed') ||
994
+ error.networkError.message?.includes('aborted due to timeout') ||
995
+ error.networkError.message?.includes('TimeoutError')));
844
996
  if (isConnectionError && retryCount < MAX_RETRIES - 1) {
845
997
  retryCount++;
846
998
  const delay = Math.pow(2, retryCount) * 100; // Exponential backoff: 200ms, 400ms, 800ms
@@ -928,12 +1080,31 @@ export const MarketSentiment = {
928
1080
  if (error.message === 'No MarketSentiment found') {
929
1081
  return null;
930
1082
  }
931
- // Check if this is a database connection error that we should retry
1083
+ // Check if this is a database connection error that we should retry.
1084
+ // Covers undici/fetch timeouts, Prisma Accelerate transients, connection
1085
+ // pool exhaustion, and transient gateway statuses. Must stay consistent
1086
+ // with the transient classifier in client.ts (onError link + enqueueOperation).
932
1087
  const isConnectionError = error.message?.includes('Server has closed the connection') ||
933
1088
  error.message?.includes('Cannot reach database server') ||
934
1089
  error.message?.includes('Connection timed out') ||
1090
+ error.message?.includes('aborted due to timeout') ||
1091
+ error.message?.includes('TimeoutError') ||
1092
+ error.message?.includes('fetch failed') ||
1093
+ error.message?.includes('socket hang up') ||
1094
+ error.message?.includes('ECONNRESET') ||
1095
+ error.message?.includes('ECONNREFUSED') ||
1096
+ error.message?.includes('ETIMEDOUT') ||
1097
+ error.message?.includes('Connection pool timeout') ||
1098
+ error.message?.includes('P2024') ||
1099
+ error.message?.includes('status code 408') ||
1100
+ error.message?.includes('status code 502') ||
1101
+ error.message?.includes('status code 503') ||
1102
+ error.message?.includes('status code 504') ||
935
1103
  error.message?.includes('Accelerate') || // Prisma Accelerate proxy errors
936
- (error.networkError && error.networkError.message?.includes('Failed to fetch'));
1104
+ (error.networkError && (error.networkError.message?.includes('Failed to fetch') ||
1105
+ error.networkError.message?.includes('fetch failed') ||
1106
+ error.networkError.message?.includes('aborted due to timeout') ||
1107
+ error.networkError.message?.includes('TimeoutError')));
937
1108
  if (isConnectionError && retryCount < MAX_RETRIES - 1) {
938
1109
  retryCount++;
939
1110
  const delay = Math.pow(2, retryCount) * 100; // Exponential backoff: 200ms, 400ms, 800ms
@@ -1 +1 @@
1
- {"version":3,"file":"ModelArtifact.d.ts","sourceRoot":"","sources":["../../src/ModelArtifact.ts"],"names":[],"mappings":"AAEA,OAAO,EAAE,aAAa,IAAI,iBAAiB,EAAE,MAAM,qDAAqD,CAAC;AACzG,OAAO,EAAmB,gBAAgB,EAAE,qBAAqB,EAAoB,MAAM,UAAU,CAAC;AAoFpG,eAAO,MAAM,aAAa;IAExB;;;;;OAKG;IAEH;;;;;;OAMG;kBACiB,iBAAiB,iBAAiB,gBAAgB,CAAC,qBAAqB,CAAC,GAAG,OAAO,CAAC,iBAAiB,CAAC;IAya5H;;;;;;;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;IA0H/K;;;;;;OAMG;kBACiB,iBAAiB,iBAAiB,gBAAgB,CAAC,qBAAqB,CAAC,GAAG,OAAO,CAAC,iBAAiB,CAAC;IAo4C1H;;;;;;OAMG;kBACiB,iBAAiB,iBAAiB,gBAAgB,CAAC,qBAAqB,CAAC,GAAG,OAAO,CAAC,iBAAiB,CAAC;IAwrD1H;;;;;;OAMG;sBACqB,iBAAiB,EAAE,iBAAiB,gBAAgB,CAAC,qBAAqB,CAAC,GAAG,OAAO,CAAC;QAAE,KAAK,EAAE,MAAM,CAAA;KAAE,GAAG,IAAI,CAAC;IAm4CvI;;;;;;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;IAoFhJ;;;;;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;CAgGxJ,CAAC"}
1
+ {"version":3,"file":"ModelArtifact.d.ts","sourceRoot":"","sources":["../../src/ModelArtifact.ts"],"names":[],"mappings":"AAEA,OAAO,EAAE,aAAa,IAAI,iBAAiB,EAAE,MAAM,qDAAqD,CAAC;AACzG,OAAO,EAAmB,gBAAgB,EAAE,qBAAqB,EAAoB,MAAM,UAAU,CAAC;AAoFpG,eAAO,MAAM,aAAa;IAExB;;;;;OAKG;IAEH;;;;;;OAMG;kBACiB,iBAAiB,iBAAiB,gBAAgB,CAAC,qBAAqB,CAAC,GAAG,OAAO,CAAC,iBAAiB,CAAC;IA8b5H;;;;;;;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;IA+I/K;;;;;;OAMG;kBACiB,iBAAiB,iBAAiB,gBAAgB,CAAC,qBAAqB,CAAC,GAAG,OAAO,CAAC,iBAAiB,CAAC;IAy5C1H;;;;;;OAMG;kBACiB,iBAAiB,iBAAiB,gBAAgB,CAAC,qBAAqB,CAAC,GAAG,OAAO,CAAC,iBAAiB,CAAC;IA6sD1H;;;;;;OAMG;sBACqB,iBAAiB,EAAE,iBAAiB,gBAAgB,CAAC,qBAAqB,CAAC,GAAG,OAAO,CAAC;QAAE,KAAK,EAAE,MAAM,CAAA;KAAE,GAAG,IAAI,CAAC;IAw5CvI;;;;;;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;IAyGhJ;;;;;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;CAqHxJ,CAAC"}