@adaptic/backend-legacy 0.0.960 → 0.0.961

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 (258) hide show
  1. package/ABTest.cjs +180 -66
  2. package/Account.cjs +180 -66
  3. package/AccountDecisionRecord.cjs +180 -66
  4. package/AccountLinkingRequest.cjs +180 -66
  5. package/Action.cjs +180 -66
  6. package/Alert.cjs +180 -66
  7. package/Allocation.cjs +180 -66
  8. package/AlpacaAccount.cjs +180 -66
  9. package/AnalyticsConfiguration.cjs +180 -66
  10. package/AnalyticsSnapshot.cjs +180 -66
  11. package/Asset.cjs +180 -66
  12. package/AuditLog.cjs +180 -66
  13. package/Authenticator.cjs +180 -66
  14. package/Configuration.cjs +180 -66
  15. package/ConflictEvent.cjs +180 -66
  16. package/ConnectionHealthSnapshot.cjs +180 -66
  17. package/Customer.cjs +180 -66
  18. package/DeadLetterMessage.cjs +180 -66
  19. package/DecisionMemorySummary.cjs +180 -66
  20. package/EconomicEvent.cjs +180 -66
  21. package/EquityBar.cjs +180 -66
  22. package/Event.cjs +180 -66
  23. package/EventSnapshot.cjs +180 -66
  24. package/FeatureImportanceAnalysis.cjs +180 -66
  25. package/InstitutionalFlowSignal.cjs +180 -66
  26. package/InstitutionalHolding.cjs +180 -66
  27. package/InstitutionalSentimentAlerts.cjs +180 -66
  28. package/InstitutionalSentimentErrors.cjs +180 -66
  29. package/InstitutionalSentimentHistory.cjs +180 -66
  30. package/InstitutionalSentimentMetrics.cjs +180 -66
  31. package/InviteToken.cjs +180 -66
  32. package/LinkedProvider.cjs +180 -66
  33. package/LlmConfiguration.cjs +180 -66
  34. package/MLModelVersion.cjs +180 -66
  35. package/MLTrainingData.cjs +180 -66
  36. package/MarketSentiment.cjs +180 -66
  37. package/ModelArtifact.cjs +180 -66
  38. package/ModelVersion.cjs +180 -66
  39. package/ModelVersionArtifact.cjs +180 -66
  40. package/NewsArticle.cjs +180 -66
  41. package/NewsArticleAssetSentiment.cjs +180 -66
  42. package/OptionsContract.cjs +180 -66
  43. package/OptionsGreeksHistory.cjs +180 -66
  44. package/OptionsPosition.cjs +180 -66
  45. package/OptionsPositionEvent.cjs +180 -66
  46. package/OptionsTradeExecution.cjs +180 -66
  47. package/PolicyOverlay.cjs +180 -66
  48. package/PortfolioGreeksHistory.cjs +180 -66
  49. package/ScheduledOptionOrder.cjs +180 -66
  50. package/Session.cjs +180 -66
  51. package/SignalGeneratorMetrics.cjs +180 -66
  52. package/SignalLineage.cjs +180 -66
  53. package/SignalOutcome.cjs +180 -66
  54. package/SignalPriorityQueue.cjs +180 -66
  55. package/SyncEvent.cjs +180 -66
  56. package/SystemAlert.cjs +180 -66
  57. package/Trade.cjs +180 -66
  58. package/TradeAuditEvent.cjs +180 -66
  59. package/TradeExecutionHistory.cjs +180 -66
  60. package/TradeOutcome.cjs +180 -66
  61. package/TradingPolicy.cjs +180 -66
  62. package/User.cjs +180 -66
  63. package/VerificationToken.cjs +180 -66
  64. package/WaitlistEntry.cjs +180 -66
  65. package/esm/ABTest.d.ts.map +1 -1
  66. package/esm/ABTest.js.map +1 -1
  67. package/esm/ABTest.mjs +180 -66
  68. package/esm/Account.d.ts.map +1 -1
  69. package/esm/Account.js.map +1 -1
  70. package/esm/Account.mjs +180 -66
  71. package/esm/AccountDecisionRecord.d.ts.map +1 -1
  72. package/esm/AccountDecisionRecord.js.map +1 -1
  73. package/esm/AccountDecisionRecord.mjs +180 -66
  74. package/esm/AccountLinkingRequest.d.ts.map +1 -1
  75. package/esm/AccountLinkingRequest.js.map +1 -1
  76. package/esm/AccountLinkingRequest.mjs +180 -66
  77. package/esm/Action.d.ts.map +1 -1
  78. package/esm/Action.js.map +1 -1
  79. package/esm/Action.mjs +180 -66
  80. package/esm/Alert.d.ts.map +1 -1
  81. package/esm/Alert.js.map +1 -1
  82. package/esm/Alert.mjs +180 -66
  83. package/esm/Allocation.d.ts.map +1 -1
  84. package/esm/Allocation.js.map +1 -1
  85. package/esm/Allocation.mjs +180 -66
  86. package/esm/AlpacaAccount.d.ts.map +1 -1
  87. package/esm/AlpacaAccount.js.map +1 -1
  88. package/esm/AlpacaAccount.mjs +180 -66
  89. package/esm/AnalyticsConfiguration.d.ts.map +1 -1
  90. package/esm/AnalyticsConfiguration.js.map +1 -1
  91. package/esm/AnalyticsConfiguration.mjs +180 -66
  92. package/esm/AnalyticsSnapshot.d.ts.map +1 -1
  93. package/esm/AnalyticsSnapshot.js.map +1 -1
  94. package/esm/AnalyticsSnapshot.mjs +180 -66
  95. package/esm/Asset.d.ts.map +1 -1
  96. package/esm/Asset.js.map +1 -1
  97. package/esm/Asset.mjs +180 -66
  98. package/esm/AuditLog.d.ts.map +1 -1
  99. package/esm/AuditLog.js.map +1 -1
  100. package/esm/AuditLog.mjs +180 -66
  101. package/esm/Authenticator.d.ts.map +1 -1
  102. package/esm/Authenticator.js.map +1 -1
  103. package/esm/Authenticator.mjs +180 -66
  104. package/esm/Configuration.d.ts.map +1 -1
  105. package/esm/Configuration.js.map +1 -1
  106. package/esm/Configuration.mjs +180 -66
  107. package/esm/ConflictEvent.d.ts.map +1 -1
  108. package/esm/ConflictEvent.js.map +1 -1
  109. package/esm/ConflictEvent.mjs +180 -66
  110. package/esm/ConnectionHealthSnapshot.d.ts.map +1 -1
  111. package/esm/ConnectionHealthSnapshot.js.map +1 -1
  112. package/esm/ConnectionHealthSnapshot.mjs +180 -66
  113. package/esm/Customer.d.ts.map +1 -1
  114. package/esm/Customer.js.map +1 -1
  115. package/esm/Customer.mjs +180 -66
  116. package/esm/DeadLetterMessage.d.ts.map +1 -1
  117. package/esm/DeadLetterMessage.js.map +1 -1
  118. package/esm/DeadLetterMessage.mjs +180 -66
  119. package/esm/DecisionMemorySummary.d.ts.map +1 -1
  120. package/esm/DecisionMemorySummary.js.map +1 -1
  121. package/esm/DecisionMemorySummary.mjs +180 -66
  122. package/esm/EconomicEvent.d.ts.map +1 -1
  123. package/esm/EconomicEvent.js.map +1 -1
  124. package/esm/EconomicEvent.mjs +180 -66
  125. package/esm/EquityBar.d.ts.map +1 -1
  126. package/esm/EquityBar.js.map +1 -1
  127. package/esm/EquityBar.mjs +180 -66
  128. package/esm/Event.d.ts.map +1 -1
  129. package/esm/Event.js.map +1 -1
  130. package/esm/Event.mjs +180 -66
  131. package/esm/EventSnapshot.d.ts.map +1 -1
  132. package/esm/EventSnapshot.js.map +1 -1
  133. package/esm/EventSnapshot.mjs +180 -66
  134. package/esm/FeatureImportanceAnalysis.d.ts.map +1 -1
  135. package/esm/FeatureImportanceAnalysis.js.map +1 -1
  136. package/esm/FeatureImportanceAnalysis.mjs +180 -66
  137. package/esm/InstitutionalFlowSignal.d.ts.map +1 -1
  138. package/esm/InstitutionalFlowSignal.js.map +1 -1
  139. package/esm/InstitutionalFlowSignal.mjs +180 -66
  140. package/esm/InstitutionalHolding.d.ts.map +1 -1
  141. package/esm/InstitutionalHolding.js.map +1 -1
  142. package/esm/InstitutionalHolding.mjs +180 -66
  143. package/esm/InstitutionalSentimentAlerts.d.ts.map +1 -1
  144. package/esm/InstitutionalSentimentAlerts.js.map +1 -1
  145. package/esm/InstitutionalSentimentAlerts.mjs +180 -66
  146. package/esm/InstitutionalSentimentErrors.d.ts.map +1 -1
  147. package/esm/InstitutionalSentimentErrors.js.map +1 -1
  148. package/esm/InstitutionalSentimentErrors.mjs +180 -66
  149. package/esm/InstitutionalSentimentHistory.d.ts.map +1 -1
  150. package/esm/InstitutionalSentimentHistory.js.map +1 -1
  151. package/esm/InstitutionalSentimentHistory.mjs +180 -66
  152. package/esm/InstitutionalSentimentMetrics.d.ts.map +1 -1
  153. package/esm/InstitutionalSentimentMetrics.js.map +1 -1
  154. package/esm/InstitutionalSentimentMetrics.mjs +180 -66
  155. package/esm/InviteToken.d.ts.map +1 -1
  156. package/esm/InviteToken.js.map +1 -1
  157. package/esm/InviteToken.mjs +180 -66
  158. package/esm/LinkedProvider.d.ts.map +1 -1
  159. package/esm/LinkedProvider.js.map +1 -1
  160. package/esm/LinkedProvider.mjs +180 -66
  161. package/esm/LlmConfiguration.d.ts.map +1 -1
  162. package/esm/LlmConfiguration.js.map +1 -1
  163. package/esm/LlmConfiguration.mjs +180 -66
  164. package/esm/MLModelVersion.d.ts.map +1 -1
  165. package/esm/MLModelVersion.js.map +1 -1
  166. package/esm/MLModelVersion.mjs +180 -66
  167. package/esm/MLTrainingData.d.ts.map +1 -1
  168. package/esm/MLTrainingData.js.map +1 -1
  169. package/esm/MLTrainingData.mjs +180 -66
  170. package/esm/MarketSentiment.d.ts.map +1 -1
  171. package/esm/MarketSentiment.js.map +1 -1
  172. package/esm/MarketSentiment.mjs +180 -66
  173. package/esm/ModelArtifact.d.ts.map +1 -1
  174. package/esm/ModelArtifact.js.map +1 -1
  175. package/esm/ModelArtifact.mjs +180 -66
  176. package/esm/ModelVersion.d.ts.map +1 -1
  177. package/esm/ModelVersion.js.map +1 -1
  178. package/esm/ModelVersion.mjs +180 -66
  179. package/esm/ModelVersionArtifact.d.ts.map +1 -1
  180. package/esm/ModelVersionArtifact.js.map +1 -1
  181. package/esm/ModelVersionArtifact.mjs +180 -66
  182. package/esm/NewsArticle.d.ts.map +1 -1
  183. package/esm/NewsArticle.js.map +1 -1
  184. package/esm/NewsArticle.mjs +180 -66
  185. package/esm/NewsArticleAssetSentiment.d.ts.map +1 -1
  186. package/esm/NewsArticleAssetSentiment.js.map +1 -1
  187. package/esm/NewsArticleAssetSentiment.mjs +180 -66
  188. package/esm/OptionsContract.d.ts.map +1 -1
  189. package/esm/OptionsContract.js.map +1 -1
  190. package/esm/OptionsContract.mjs +180 -66
  191. package/esm/OptionsGreeksHistory.d.ts.map +1 -1
  192. package/esm/OptionsGreeksHistory.js.map +1 -1
  193. package/esm/OptionsGreeksHistory.mjs +180 -66
  194. package/esm/OptionsPosition.d.ts.map +1 -1
  195. package/esm/OptionsPosition.js.map +1 -1
  196. package/esm/OptionsPosition.mjs +180 -66
  197. package/esm/OptionsPositionEvent.d.ts.map +1 -1
  198. package/esm/OptionsPositionEvent.js.map +1 -1
  199. package/esm/OptionsPositionEvent.mjs +180 -66
  200. package/esm/OptionsTradeExecution.d.ts.map +1 -1
  201. package/esm/OptionsTradeExecution.js.map +1 -1
  202. package/esm/OptionsTradeExecution.mjs +180 -66
  203. package/esm/PolicyOverlay.d.ts.map +1 -1
  204. package/esm/PolicyOverlay.js.map +1 -1
  205. package/esm/PolicyOverlay.mjs +180 -66
  206. package/esm/PortfolioGreeksHistory.d.ts.map +1 -1
  207. package/esm/PortfolioGreeksHistory.js.map +1 -1
  208. package/esm/PortfolioGreeksHistory.mjs +180 -66
  209. package/esm/ScheduledOptionOrder.d.ts.map +1 -1
  210. package/esm/ScheduledOptionOrder.js.map +1 -1
  211. package/esm/ScheduledOptionOrder.mjs +180 -66
  212. package/esm/Session.d.ts.map +1 -1
  213. package/esm/Session.js.map +1 -1
  214. package/esm/Session.mjs +180 -66
  215. package/esm/SignalGeneratorMetrics.d.ts.map +1 -1
  216. package/esm/SignalGeneratorMetrics.js.map +1 -1
  217. package/esm/SignalGeneratorMetrics.mjs +180 -66
  218. package/esm/SignalLineage.d.ts.map +1 -1
  219. package/esm/SignalLineage.js.map +1 -1
  220. package/esm/SignalLineage.mjs +180 -66
  221. package/esm/SignalOutcome.d.ts.map +1 -1
  222. package/esm/SignalOutcome.js.map +1 -1
  223. package/esm/SignalOutcome.mjs +180 -66
  224. package/esm/SignalPriorityQueue.d.ts.map +1 -1
  225. package/esm/SignalPriorityQueue.js.map +1 -1
  226. package/esm/SignalPriorityQueue.mjs +180 -66
  227. package/esm/SyncEvent.d.ts.map +1 -1
  228. package/esm/SyncEvent.js.map +1 -1
  229. package/esm/SyncEvent.mjs +180 -66
  230. package/esm/SystemAlert.d.ts.map +1 -1
  231. package/esm/SystemAlert.js.map +1 -1
  232. package/esm/SystemAlert.mjs +180 -66
  233. package/esm/Trade.d.ts.map +1 -1
  234. package/esm/Trade.js.map +1 -1
  235. package/esm/Trade.mjs +180 -66
  236. package/esm/TradeAuditEvent.d.ts.map +1 -1
  237. package/esm/TradeAuditEvent.js.map +1 -1
  238. package/esm/TradeAuditEvent.mjs +180 -66
  239. package/esm/TradeExecutionHistory.d.ts.map +1 -1
  240. package/esm/TradeExecutionHistory.js.map +1 -1
  241. package/esm/TradeExecutionHistory.mjs +180 -66
  242. package/esm/TradeOutcome.d.ts.map +1 -1
  243. package/esm/TradeOutcome.js.map +1 -1
  244. package/esm/TradeOutcome.mjs +180 -66
  245. package/esm/TradingPolicy.d.ts.map +1 -1
  246. package/esm/TradingPolicy.js.map +1 -1
  247. package/esm/TradingPolicy.mjs +180 -66
  248. package/esm/User.d.ts.map +1 -1
  249. package/esm/User.js.map +1 -1
  250. package/esm/User.mjs +180 -66
  251. package/esm/VerificationToken.d.ts.map +1 -1
  252. package/esm/VerificationToken.js.map +1 -1
  253. package/esm/VerificationToken.mjs +180 -66
  254. package/esm/WaitlistEntry.d.ts.map +1 -1
  255. package/esm/WaitlistEntry.js.map +1 -1
  256. package/esm/WaitlistEntry.mjs +180 -66
  257. package/esm/index.d.ts.map +1 -1
  258. package/package.json +1 -1
@@ -142,13 +142,28 @@ exports.TradeExecutionHistory = {
142
142
  await new Promise(resolve => setTimeout(resolve, delay));
143
143
  continue;
144
144
  }
145
- // Log structured error details and rethrow
146
- logger_1.logger.error("Database create operation failed", {
147
- operation: 'createOneTradeExecutionHistory',
148
- model: 'TradeExecutionHistory',
149
- error: String(error),
150
- isRetryable: isConnectionError,
151
- });
145
+ // Log structured error details and rethrow.
146
+ // Demote transient failures to WARN with explicit transient+recoveryHint
147
+ // metadata so log analytics can distinguish recoverable upstream retries
148
+ // from true defects.
149
+ if (isConnectionError) {
150
+ logger_1.logger.warn("Database create operation failed (transient after retries)", {
151
+ operation: 'createOneTradeExecutionHistory',
152
+ model: 'TradeExecutionHistory',
153
+ error: String(error),
154
+ isRetryable: true,
155
+ transient: true,
156
+ recoveryHint: "Upstream caller should retry on next cycle",
157
+ });
158
+ }
159
+ else {
160
+ logger_1.logger.error("Database create operation failed", {
161
+ operation: 'createOneTradeExecutionHistory',
162
+ model: 'TradeExecutionHistory',
163
+ error: String(error),
164
+ isRetryable: false,
165
+ });
166
+ }
152
167
  throw error;
153
168
  }
154
169
  }
@@ -272,13 +287,25 @@ exports.TradeExecutionHistory = {
272
287
  await new Promise(resolve => setTimeout(resolve, delay));
273
288
  continue;
274
289
  }
275
- // Log structured error details and rethrow
276
- logger_1.logger.error("Database createMany operation failed", {
277
- operation: 'createManyTradeExecutionHistory',
278
- model: 'TradeExecutionHistory',
279
- error: String(error),
280
- isRetryable: isConnectionError,
281
- });
290
+ // Log structured error details and rethrow (transient -> WARN).
291
+ if (isConnectionError) {
292
+ logger_1.logger.warn("Database createMany operation failed (transient after retries)", {
293
+ operation: 'createManyTradeExecutionHistory',
294
+ model: 'TradeExecutionHistory',
295
+ error: String(error),
296
+ isRetryable: true,
297
+ transient: true,
298
+ recoveryHint: "Upstream caller should retry on next cycle",
299
+ });
300
+ }
301
+ else {
302
+ logger_1.logger.error("Database createMany operation failed", {
303
+ operation: 'createManyTradeExecutionHistory',
304
+ model: 'TradeExecutionHistory',
305
+ error: String(error),
306
+ isRetryable: false,
307
+ });
308
+ }
282
309
  throw error;
283
310
  }
284
311
  }
@@ -419,14 +446,27 @@ exports.TradeExecutionHistory = {
419
446
  await new Promise(resolve => setTimeout(resolve, delay));
420
447
  continue;
421
448
  }
422
- // Log structured error details and rethrow
423
- logger_1.logger.error("Database update operation failed", {
424
- operation: 'updateOneTradeExecutionHistory',
425
- model: 'TradeExecutionHistory',
426
- error: String(error),
427
- recordId: props.id,
428
- isRetryable: isConnectionError,
429
- });
449
+ // Log structured error details and rethrow (transient -> WARN).
450
+ if (isConnectionError) {
451
+ logger_1.logger.warn("Database update operation failed (transient after retries)", {
452
+ operation: 'updateOneTradeExecutionHistory',
453
+ model: 'TradeExecutionHistory',
454
+ error: String(error),
455
+ recordId: props.id,
456
+ isRetryable: true,
457
+ transient: true,
458
+ recoveryHint: "Upstream caller should retry on next cycle",
459
+ });
460
+ }
461
+ else {
462
+ logger_1.logger.error("Database update operation failed", {
463
+ operation: 'updateOneTradeExecutionHistory',
464
+ model: 'TradeExecutionHistory',
465
+ error: String(error),
466
+ recordId: props.id,
467
+ isRetryable: false,
468
+ });
469
+ }
430
470
  throw error;
431
471
  }
432
472
  }
@@ -569,14 +609,27 @@ exports.TradeExecutionHistory = {
569
609
  await new Promise(resolve => setTimeout(resolve, delay));
570
610
  continue;
571
611
  }
572
- // Log structured error details and rethrow
573
- logger_1.logger.error("Database upsert operation failed", {
574
- operation: 'upsertOneTradeExecutionHistory',
575
- model: 'TradeExecutionHistory',
576
- error: String(error),
577
- recordId: props.id,
578
- isRetryable: isConnectionError,
579
- });
612
+ // Log structured error details and rethrow (transient -> WARN).
613
+ if (isConnectionError) {
614
+ logger_1.logger.warn("Database upsert operation failed (transient after retries)", {
615
+ operation: 'upsertOneTradeExecutionHistory',
616
+ model: 'TradeExecutionHistory',
617
+ error: String(error),
618
+ recordId: props.id,
619
+ isRetryable: true,
620
+ transient: true,
621
+ recoveryHint: "Upstream caller should retry on next cycle",
622
+ });
623
+ }
624
+ else {
625
+ logger_1.logger.error("Database upsert operation failed", {
626
+ operation: 'upsertOneTradeExecutionHistory',
627
+ model: 'TradeExecutionHistory',
628
+ error: String(error),
629
+ recordId: props.id,
630
+ isRetryable: false,
631
+ });
632
+ }
580
633
  throw error;
581
634
  }
582
635
  }
@@ -715,13 +768,25 @@ exports.TradeExecutionHistory = {
715
768
  await new Promise(resolve => setTimeout(resolve, delay));
716
769
  continue;
717
770
  }
718
- // Log structured error details and rethrow
719
- logger_1.logger.error("Database updateMany operation failed", {
720
- operation: 'updateManyTradeExecutionHistory',
721
- model: 'TradeExecutionHistory',
722
- error: String(error),
723
- isRetryable: isConnectionError,
724
- });
771
+ // Log structured error details and rethrow (transient -> WARN).
772
+ if (isConnectionError) {
773
+ logger_1.logger.warn("Database updateMany operation failed (transient after retries)", {
774
+ operation: 'updateManyTradeExecutionHistory',
775
+ model: 'TradeExecutionHistory',
776
+ error: String(error),
777
+ isRetryable: true,
778
+ transient: true,
779
+ recoveryHint: "Upstream caller should retry on next cycle",
780
+ });
781
+ }
782
+ else {
783
+ logger_1.logger.error("Database updateMany operation failed", {
784
+ operation: 'updateManyTradeExecutionHistory',
785
+ model: 'TradeExecutionHistory',
786
+ error: String(error),
787
+ isRetryable: false,
788
+ });
789
+ }
725
790
  throw error;
726
791
  }
727
792
  }
@@ -844,14 +909,27 @@ exports.TradeExecutionHistory = {
844
909
  await new Promise(resolve => setTimeout(resolve, delay));
845
910
  continue;
846
911
  }
847
- // Log structured error details and rethrow
848
- logger_1.logger.error("Database delete operation failed", {
849
- operation: 'deleteOneTradeExecutionHistory',
850
- model: 'TradeExecutionHistory',
851
- error: String(error),
852
- recordId: props.id,
853
- isRetryable: isConnectionError,
854
- });
912
+ // Log structured error details and rethrow (transient -> WARN).
913
+ if (isConnectionError) {
914
+ logger_1.logger.warn("Database delete operation failed (transient after retries)", {
915
+ operation: 'deleteOneTradeExecutionHistory',
916
+ model: 'TradeExecutionHistory',
917
+ error: String(error),
918
+ recordId: props.id,
919
+ isRetryable: true,
920
+ transient: true,
921
+ recoveryHint: "Upstream caller should retry on next cycle",
922
+ });
923
+ }
924
+ else {
925
+ logger_1.logger.error("Database delete operation failed", {
926
+ operation: 'deleteOneTradeExecutionHistory',
927
+ model: 'TradeExecutionHistory',
928
+ error: String(error),
929
+ recordId: props.id,
930
+ isRetryable: false,
931
+ });
932
+ }
855
933
  throw error;
856
934
  }
857
935
  }
@@ -947,13 +1025,25 @@ exports.TradeExecutionHistory = {
947
1025
  await new Promise(resolve => setTimeout(resolve, delay));
948
1026
  continue;
949
1027
  }
950
- // Log structured error details and rethrow
951
- logger_1.logger.error("Database get operation failed", {
952
- operation: 'getTradeExecutionHistory',
953
- model: 'TradeExecutionHistory',
954
- error: String(error),
955
- isRetryable: isConnectionError,
956
- });
1028
+ // Log structured error details and rethrow (transient -> WARN).
1029
+ if (isConnectionError) {
1030
+ logger_1.logger.warn("Database get operation failed (transient after retries)", {
1031
+ operation: 'getTradeExecutionHistory',
1032
+ model: 'TradeExecutionHistory',
1033
+ error: String(error),
1034
+ isRetryable: true,
1035
+ transient: true,
1036
+ recoveryHint: "Upstream caller should retry on next cycle",
1037
+ });
1038
+ }
1039
+ else {
1040
+ logger_1.logger.error("Database get operation failed", {
1041
+ operation: 'getTradeExecutionHistory',
1042
+ model: 'TradeExecutionHistory',
1043
+ error: String(error),
1044
+ isRetryable: false,
1045
+ });
1046
+ }
957
1047
  throw error;
958
1048
  }
959
1049
  }
@@ -1040,13 +1130,25 @@ exports.TradeExecutionHistory = {
1040
1130
  await new Promise(resolve => setTimeout(resolve, delay));
1041
1131
  continue;
1042
1132
  }
1043
- // Log structured error details and rethrow
1044
- logger_1.logger.error("Database getAll operation failed", {
1045
- operation: 'getAllTradeExecutionHistory',
1046
- model: 'TradeExecutionHistory',
1047
- error: String(error),
1048
- isRetryable: isConnectionError,
1049
- });
1133
+ // Log structured error details and rethrow (transient -> WARN).
1134
+ if (isConnectionError) {
1135
+ logger_1.logger.warn("Database getAll operation failed (transient after retries)", {
1136
+ operation: 'getAllTradeExecutionHistory',
1137
+ model: 'TradeExecutionHistory',
1138
+ error: String(error),
1139
+ isRetryable: true,
1140
+ transient: true,
1141
+ recoveryHint: "Upstream caller should retry on next cycle",
1142
+ });
1143
+ }
1144
+ else {
1145
+ logger_1.logger.error("Database getAll operation failed", {
1146
+ operation: 'getAllTradeExecutionHistory',
1147
+ model: 'TradeExecutionHistory',
1148
+ error: String(error),
1149
+ isRetryable: false,
1150
+ });
1151
+ }
1050
1152
  throw error;
1051
1153
  }
1052
1154
  }
@@ -1154,13 +1256,25 @@ exports.TradeExecutionHistory = {
1154
1256
  await new Promise(resolve => setTimeout(resolve, delay));
1155
1257
  continue;
1156
1258
  }
1157
- // Log structured error details and rethrow
1158
- logger_1.logger.error("Database findMany operation failed", {
1159
- operation: 'findManyTradeExecutionHistory',
1160
- model: 'TradeExecutionHistory',
1161
- error: String(error),
1162
- isRetryable: isConnectionError,
1163
- });
1259
+ // Log structured error details and rethrow (transient -> WARN).
1260
+ if (isConnectionError) {
1261
+ logger_1.logger.warn("Database findMany operation failed (transient after retries)", {
1262
+ operation: 'findManyTradeExecutionHistory',
1263
+ model: 'TradeExecutionHistory',
1264
+ error: String(error),
1265
+ isRetryable: true,
1266
+ transient: true,
1267
+ recoveryHint: "Upstream caller should retry on next cycle",
1268
+ });
1269
+ }
1270
+ else {
1271
+ logger_1.logger.error("Database findMany operation failed", {
1272
+ operation: 'findManyTradeExecutionHistory',
1273
+ model: 'TradeExecutionHistory',
1274
+ error: String(error),
1275
+ isRetryable: false,
1276
+ });
1277
+ }
1164
1278
  throw error;
1165
1279
  }
1166
1280
  }
package/TradeOutcome.cjs CHANGED
@@ -174,13 +174,28 @@ exports.TradeOutcome = {
174
174
  await new Promise(resolve => setTimeout(resolve, delay));
175
175
  continue;
176
176
  }
177
- // Log structured error details and rethrow
178
- logger_1.logger.error("Database create operation failed", {
179
- operation: 'createOneTradeOutcome',
180
- model: 'TradeOutcome',
181
- error: String(error),
182
- isRetryable: isConnectionError,
183
- });
177
+ // Log structured error details and rethrow.
178
+ // Demote transient failures to WARN with explicit transient+recoveryHint
179
+ // metadata so log analytics can distinguish recoverable upstream retries
180
+ // from true defects.
181
+ if (isConnectionError) {
182
+ logger_1.logger.warn("Database create operation failed (transient after retries)", {
183
+ operation: 'createOneTradeOutcome',
184
+ model: 'TradeOutcome',
185
+ error: String(error),
186
+ isRetryable: true,
187
+ transient: true,
188
+ recoveryHint: "Upstream caller should retry on next cycle",
189
+ });
190
+ }
191
+ else {
192
+ logger_1.logger.error("Database create operation failed", {
193
+ operation: 'createOneTradeOutcome',
194
+ model: 'TradeOutcome',
195
+ error: String(error),
196
+ isRetryable: false,
197
+ });
198
+ }
184
199
  throw error;
185
200
  }
186
201
  }
@@ -319,13 +334,25 @@ exports.TradeOutcome = {
319
334
  await new Promise(resolve => setTimeout(resolve, delay));
320
335
  continue;
321
336
  }
322
- // Log structured error details and rethrow
323
- logger_1.logger.error("Database createMany operation failed", {
324
- operation: 'createManyTradeOutcome',
325
- model: 'TradeOutcome',
326
- error: String(error),
327
- isRetryable: isConnectionError,
328
- });
337
+ // Log structured error details and rethrow (transient -> WARN).
338
+ if (isConnectionError) {
339
+ logger_1.logger.warn("Database createMany operation failed (transient after retries)", {
340
+ operation: 'createManyTradeOutcome',
341
+ model: 'TradeOutcome',
342
+ error: String(error),
343
+ isRetryable: true,
344
+ transient: true,
345
+ recoveryHint: "Upstream caller should retry on next cycle",
346
+ });
347
+ }
348
+ else {
349
+ logger_1.logger.error("Database createMany operation failed", {
350
+ operation: 'createManyTradeOutcome',
351
+ model: 'TradeOutcome',
352
+ error: String(error),
353
+ isRetryable: false,
354
+ });
355
+ }
329
356
  throw error;
330
357
  }
331
358
  }
@@ -517,14 +544,27 @@ exports.TradeOutcome = {
517
544
  await new Promise(resolve => setTimeout(resolve, delay));
518
545
  continue;
519
546
  }
520
- // Log structured error details and rethrow
521
- logger_1.logger.error("Database update operation failed", {
522
- operation: 'updateOneTradeOutcome',
523
- model: 'TradeOutcome',
524
- error: String(error),
525
- recordId: props.id,
526
- isRetryable: isConnectionError,
527
- });
547
+ // Log structured error details and rethrow (transient -> WARN).
548
+ if (isConnectionError) {
549
+ logger_1.logger.warn("Database update operation failed (transient after retries)", {
550
+ operation: 'updateOneTradeOutcome',
551
+ model: 'TradeOutcome',
552
+ error: String(error),
553
+ recordId: props.id,
554
+ isRetryable: true,
555
+ transient: true,
556
+ recoveryHint: "Upstream caller should retry on next cycle",
557
+ });
558
+ }
559
+ else {
560
+ logger_1.logger.error("Database update operation failed", {
561
+ operation: 'updateOneTradeOutcome',
562
+ model: 'TradeOutcome',
563
+ error: String(error),
564
+ recordId: props.id,
565
+ isRetryable: false,
566
+ });
567
+ }
528
568
  throw error;
529
569
  }
530
570
  }
@@ -739,14 +779,27 @@ exports.TradeOutcome = {
739
779
  await new Promise(resolve => setTimeout(resolve, delay));
740
780
  continue;
741
781
  }
742
- // Log structured error details and rethrow
743
- logger_1.logger.error("Database upsert operation failed", {
744
- operation: 'upsertOneTradeOutcome',
745
- model: 'TradeOutcome',
746
- error: String(error),
747
- recordId: props.id,
748
- isRetryable: isConnectionError,
749
- });
782
+ // Log structured error details and rethrow (transient -> WARN).
783
+ if (isConnectionError) {
784
+ logger_1.logger.warn("Database upsert operation failed (transient after retries)", {
785
+ operation: 'upsertOneTradeOutcome',
786
+ model: 'TradeOutcome',
787
+ error: String(error),
788
+ recordId: props.id,
789
+ isRetryable: true,
790
+ transient: true,
791
+ recoveryHint: "Upstream caller should retry on next cycle",
792
+ });
793
+ }
794
+ else {
795
+ logger_1.logger.error("Database upsert operation failed", {
796
+ operation: 'upsertOneTradeOutcome',
797
+ model: 'TradeOutcome',
798
+ error: String(error),
799
+ recordId: props.id,
800
+ isRetryable: false,
801
+ });
802
+ }
750
803
  throw error;
751
804
  }
752
805
  }
@@ -936,13 +989,25 @@ exports.TradeOutcome = {
936
989
  await new Promise(resolve => setTimeout(resolve, delay));
937
990
  continue;
938
991
  }
939
- // Log structured error details and rethrow
940
- logger_1.logger.error("Database updateMany operation failed", {
941
- operation: 'updateManyTradeOutcome',
942
- model: 'TradeOutcome',
943
- error: String(error),
944
- isRetryable: isConnectionError,
945
- });
992
+ // Log structured error details and rethrow (transient -> WARN).
993
+ if (isConnectionError) {
994
+ logger_1.logger.warn("Database updateMany operation failed (transient after retries)", {
995
+ operation: 'updateManyTradeOutcome',
996
+ model: 'TradeOutcome',
997
+ error: String(error),
998
+ isRetryable: true,
999
+ transient: true,
1000
+ recoveryHint: "Upstream caller should retry on next cycle",
1001
+ });
1002
+ }
1003
+ else {
1004
+ logger_1.logger.error("Database updateMany operation failed", {
1005
+ operation: 'updateManyTradeOutcome',
1006
+ model: 'TradeOutcome',
1007
+ error: String(error),
1008
+ isRetryable: false,
1009
+ });
1010
+ }
946
1011
  throw error;
947
1012
  }
948
1013
  }
@@ -1065,14 +1130,27 @@ exports.TradeOutcome = {
1065
1130
  await new Promise(resolve => setTimeout(resolve, delay));
1066
1131
  continue;
1067
1132
  }
1068
- // Log structured error details and rethrow
1069
- logger_1.logger.error("Database delete operation failed", {
1070
- operation: 'deleteOneTradeOutcome',
1071
- model: 'TradeOutcome',
1072
- error: String(error),
1073
- recordId: props.id,
1074
- isRetryable: isConnectionError,
1075
- });
1133
+ // Log structured error details and rethrow (transient -> WARN).
1134
+ if (isConnectionError) {
1135
+ logger_1.logger.warn("Database delete operation failed (transient after retries)", {
1136
+ operation: 'deleteOneTradeOutcome',
1137
+ model: 'TradeOutcome',
1138
+ error: String(error),
1139
+ recordId: props.id,
1140
+ isRetryable: true,
1141
+ transient: true,
1142
+ recoveryHint: "Upstream caller should retry on next cycle",
1143
+ });
1144
+ }
1145
+ else {
1146
+ logger_1.logger.error("Database delete operation failed", {
1147
+ operation: 'deleteOneTradeOutcome',
1148
+ model: 'TradeOutcome',
1149
+ error: String(error),
1150
+ recordId: props.id,
1151
+ isRetryable: false,
1152
+ });
1153
+ }
1076
1154
  throw error;
1077
1155
  }
1078
1156
  }
@@ -1177,13 +1255,25 @@ exports.TradeOutcome = {
1177
1255
  await new Promise(resolve => setTimeout(resolve, delay));
1178
1256
  continue;
1179
1257
  }
1180
- // Log structured error details and rethrow
1181
- logger_1.logger.error("Database get operation failed", {
1182
- operation: 'getTradeOutcome',
1183
- model: 'TradeOutcome',
1184
- error: String(error),
1185
- isRetryable: isConnectionError,
1186
- });
1258
+ // Log structured error details and rethrow (transient -> WARN).
1259
+ if (isConnectionError) {
1260
+ logger_1.logger.warn("Database get operation failed (transient after retries)", {
1261
+ operation: 'getTradeOutcome',
1262
+ model: 'TradeOutcome',
1263
+ error: String(error),
1264
+ isRetryable: true,
1265
+ transient: true,
1266
+ recoveryHint: "Upstream caller should retry on next cycle",
1267
+ });
1268
+ }
1269
+ else {
1270
+ logger_1.logger.error("Database get operation failed", {
1271
+ operation: 'getTradeOutcome',
1272
+ model: 'TradeOutcome',
1273
+ error: String(error),
1274
+ isRetryable: false,
1275
+ });
1276
+ }
1187
1277
  throw error;
1188
1278
  }
1189
1279
  }
@@ -1270,13 +1360,25 @@ exports.TradeOutcome = {
1270
1360
  await new Promise(resolve => setTimeout(resolve, delay));
1271
1361
  continue;
1272
1362
  }
1273
- // Log structured error details and rethrow
1274
- logger_1.logger.error("Database getAll operation failed", {
1275
- operation: 'getAllTradeOutcome',
1276
- model: 'TradeOutcome',
1277
- error: String(error),
1278
- isRetryable: isConnectionError,
1279
- });
1363
+ // Log structured error details and rethrow (transient -> WARN).
1364
+ if (isConnectionError) {
1365
+ logger_1.logger.warn("Database getAll operation failed (transient after retries)", {
1366
+ operation: 'getAllTradeOutcome',
1367
+ model: 'TradeOutcome',
1368
+ error: String(error),
1369
+ isRetryable: true,
1370
+ transient: true,
1371
+ recoveryHint: "Upstream caller should retry on next cycle",
1372
+ });
1373
+ }
1374
+ else {
1375
+ logger_1.logger.error("Database getAll operation failed", {
1376
+ operation: 'getAllTradeOutcome',
1377
+ model: 'TradeOutcome',
1378
+ error: String(error),
1379
+ isRetryable: false,
1380
+ });
1381
+ }
1280
1382
  throw error;
1281
1383
  }
1282
1384
  }
@@ -1393,13 +1495,25 @@ exports.TradeOutcome = {
1393
1495
  await new Promise(resolve => setTimeout(resolve, delay));
1394
1496
  continue;
1395
1497
  }
1396
- // Log structured error details and rethrow
1397
- logger_1.logger.error("Database findMany operation failed", {
1398
- operation: 'findManyTradeOutcome',
1399
- model: 'TradeOutcome',
1400
- error: String(error),
1401
- isRetryable: isConnectionError,
1402
- });
1498
+ // Log structured error details and rethrow (transient -> WARN).
1499
+ if (isConnectionError) {
1500
+ logger_1.logger.warn("Database findMany operation failed (transient after retries)", {
1501
+ operation: 'findManyTradeOutcome',
1502
+ model: 'TradeOutcome',
1503
+ error: String(error),
1504
+ isRetryable: true,
1505
+ transient: true,
1506
+ recoveryHint: "Upstream caller should retry on next cycle",
1507
+ });
1508
+ }
1509
+ else {
1510
+ logger_1.logger.error("Database findMany operation failed", {
1511
+ operation: 'findManyTradeOutcome',
1512
+ model: 'TradeOutcome',
1513
+ error: String(error),
1514
+ isRetryable: false,
1515
+ });
1516
+ }
1403
1517
  throw error;
1404
1518
  }
1405
1519
  }