@adaptic/backend-legacy 0.0.960 → 0.0.962

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 (269) 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/client.cjs +131 -9
  66. package/client.d.ts +32 -0
  67. package/esm/ABTest.d.ts.map +1 -1
  68. package/esm/ABTest.js.map +1 -1
  69. package/esm/ABTest.mjs +180 -66
  70. package/esm/Account.d.ts.map +1 -1
  71. package/esm/Account.js.map +1 -1
  72. package/esm/Account.mjs +180 -66
  73. package/esm/AccountDecisionRecord.d.ts.map +1 -1
  74. package/esm/AccountDecisionRecord.js.map +1 -1
  75. package/esm/AccountDecisionRecord.mjs +180 -66
  76. package/esm/AccountLinkingRequest.d.ts.map +1 -1
  77. package/esm/AccountLinkingRequest.js.map +1 -1
  78. package/esm/AccountLinkingRequest.mjs +180 -66
  79. package/esm/Action.d.ts.map +1 -1
  80. package/esm/Action.js.map +1 -1
  81. package/esm/Action.mjs +180 -66
  82. package/esm/Alert.d.ts.map +1 -1
  83. package/esm/Alert.js.map +1 -1
  84. package/esm/Alert.mjs +180 -66
  85. package/esm/Allocation.d.ts.map +1 -1
  86. package/esm/Allocation.js.map +1 -1
  87. package/esm/Allocation.mjs +180 -66
  88. package/esm/AlpacaAccount.d.ts.map +1 -1
  89. package/esm/AlpacaAccount.js.map +1 -1
  90. package/esm/AlpacaAccount.mjs +180 -66
  91. package/esm/AnalyticsConfiguration.d.ts.map +1 -1
  92. package/esm/AnalyticsConfiguration.js.map +1 -1
  93. package/esm/AnalyticsConfiguration.mjs +180 -66
  94. package/esm/AnalyticsSnapshot.d.ts.map +1 -1
  95. package/esm/AnalyticsSnapshot.js.map +1 -1
  96. package/esm/AnalyticsSnapshot.mjs +180 -66
  97. package/esm/Asset.d.ts.map +1 -1
  98. package/esm/Asset.js.map +1 -1
  99. package/esm/Asset.mjs +180 -66
  100. package/esm/AuditLog.d.ts.map +1 -1
  101. package/esm/AuditLog.js.map +1 -1
  102. package/esm/AuditLog.mjs +180 -66
  103. package/esm/Authenticator.d.ts.map +1 -1
  104. package/esm/Authenticator.js.map +1 -1
  105. package/esm/Authenticator.mjs +180 -66
  106. package/esm/Configuration.d.ts.map +1 -1
  107. package/esm/Configuration.js.map +1 -1
  108. package/esm/Configuration.mjs +180 -66
  109. package/esm/ConflictEvent.d.ts.map +1 -1
  110. package/esm/ConflictEvent.js.map +1 -1
  111. package/esm/ConflictEvent.mjs +180 -66
  112. package/esm/ConnectionHealthSnapshot.d.ts.map +1 -1
  113. package/esm/ConnectionHealthSnapshot.js.map +1 -1
  114. package/esm/ConnectionHealthSnapshot.mjs +180 -66
  115. package/esm/Customer.d.ts.map +1 -1
  116. package/esm/Customer.js.map +1 -1
  117. package/esm/Customer.mjs +180 -66
  118. package/esm/DeadLetterMessage.d.ts.map +1 -1
  119. package/esm/DeadLetterMessage.js.map +1 -1
  120. package/esm/DeadLetterMessage.mjs +180 -66
  121. package/esm/DecisionMemorySummary.d.ts.map +1 -1
  122. package/esm/DecisionMemorySummary.js.map +1 -1
  123. package/esm/DecisionMemorySummary.mjs +180 -66
  124. package/esm/EconomicEvent.d.ts.map +1 -1
  125. package/esm/EconomicEvent.js.map +1 -1
  126. package/esm/EconomicEvent.mjs +180 -66
  127. package/esm/EquityBar.d.ts.map +1 -1
  128. package/esm/EquityBar.js.map +1 -1
  129. package/esm/EquityBar.mjs +180 -66
  130. package/esm/Event.d.ts.map +1 -1
  131. package/esm/Event.js.map +1 -1
  132. package/esm/Event.mjs +180 -66
  133. package/esm/EventSnapshot.d.ts.map +1 -1
  134. package/esm/EventSnapshot.js.map +1 -1
  135. package/esm/EventSnapshot.mjs +180 -66
  136. package/esm/FeatureImportanceAnalysis.d.ts.map +1 -1
  137. package/esm/FeatureImportanceAnalysis.js.map +1 -1
  138. package/esm/FeatureImportanceAnalysis.mjs +180 -66
  139. package/esm/InstitutionalFlowSignal.d.ts.map +1 -1
  140. package/esm/InstitutionalFlowSignal.js.map +1 -1
  141. package/esm/InstitutionalFlowSignal.mjs +180 -66
  142. package/esm/InstitutionalHolding.d.ts.map +1 -1
  143. package/esm/InstitutionalHolding.js.map +1 -1
  144. package/esm/InstitutionalHolding.mjs +180 -66
  145. package/esm/InstitutionalSentimentAlerts.d.ts.map +1 -1
  146. package/esm/InstitutionalSentimentAlerts.js.map +1 -1
  147. package/esm/InstitutionalSentimentAlerts.mjs +180 -66
  148. package/esm/InstitutionalSentimentErrors.d.ts.map +1 -1
  149. package/esm/InstitutionalSentimentErrors.js.map +1 -1
  150. package/esm/InstitutionalSentimentErrors.mjs +180 -66
  151. package/esm/InstitutionalSentimentHistory.d.ts.map +1 -1
  152. package/esm/InstitutionalSentimentHistory.js.map +1 -1
  153. package/esm/InstitutionalSentimentHistory.mjs +180 -66
  154. package/esm/InstitutionalSentimentMetrics.d.ts.map +1 -1
  155. package/esm/InstitutionalSentimentMetrics.js.map +1 -1
  156. package/esm/InstitutionalSentimentMetrics.mjs +180 -66
  157. package/esm/InviteToken.d.ts.map +1 -1
  158. package/esm/InviteToken.js.map +1 -1
  159. package/esm/InviteToken.mjs +180 -66
  160. package/esm/LinkedProvider.d.ts.map +1 -1
  161. package/esm/LinkedProvider.js.map +1 -1
  162. package/esm/LinkedProvider.mjs +180 -66
  163. package/esm/LlmConfiguration.d.ts.map +1 -1
  164. package/esm/LlmConfiguration.js.map +1 -1
  165. package/esm/LlmConfiguration.mjs +180 -66
  166. package/esm/MLModelVersion.d.ts.map +1 -1
  167. package/esm/MLModelVersion.js.map +1 -1
  168. package/esm/MLModelVersion.mjs +180 -66
  169. package/esm/MLTrainingData.d.ts.map +1 -1
  170. package/esm/MLTrainingData.js.map +1 -1
  171. package/esm/MLTrainingData.mjs +180 -66
  172. package/esm/MarketSentiment.d.ts.map +1 -1
  173. package/esm/MarketSentiment.js.map +1 -1
  174. package/esm/MarketSentiment.mjs +180 -66
  175. package/esm/ModelArtifact.d.ts.map +1 -1
  176. package/esm/ModelArtifact.js.map +1 -1
  177. package/esm/ModelArtifact.mjs +180 -66
  178. package/esm/ModelVersion.d.ts.map +1 -1
  179. package/esm/ModelVersion.js.map +1 -1
  180. package/esm/ModelVersion.mjs +180 -66
  181. package/esm/ModelVersionArtifact.d.ts.map +1 -1
  182. package/esm/ModelVersionArtifact.js.map +1 -1
  183. package/esm/ModelVersionArtifact.mjs +180 -66
  184. package/esm/NewsArticle.d.ts.map +1 -1
  185. package/esm/NewsArticle.js.map +1 -1
  186. package/esm/NewsArticle.mjs +180 -66
  187. package/esm/NewsArticleAssetSentiment.d.ts.map +1 -1
  188. package/esm/NewsArticleAssetSentiment.js.map +1 -1
  189. package/esm/NewsArticleAssetSentiment.mjs +180 -66
  190. package/esm/OptionsContract.d.ts.map +1 -1
  191. package/esm/OptionsContract.js.map +1 -1
  192. package/esm/OptionsContract.mjs +180 -66
  193. package/esm/OptionsGreeksHistory.d.ts.map +1 -1
  194. package/esm/OptionsGreeksHistory.js.map +1 -1
  195. package/esm/OptionsGreeksHistory.mjs +180 -66
  196. package/esm/OptionsPosition.d.ts.map +1 -1
  197. package/esm/OptionsPosition.js.map +1 -1
  198. package/esm/OptionsPosition.mjs +180 -66
  199. package/esm/OptionsPositionEvent.d.ts.map +1 -1
  200. package/esm/OptionsPositionEvent.js.map +1 -1
  201. package/esm/OptionsPositionEvent.mjs +180 -66
  202. package/esm/OptionsTradeExecution.d.ts.map +1 -1
  203. package/esm/OptionsTradeExecution.js.map +1 -1
  204. package/esm/OptionsTradeExecution.mjs +180 -66
  205. package/esm/PolicyOverlay.d.ts.map +1 -1
  206. package/esm/PolicyOverlay.js.map +1 -1
  207. package/esm/PolicyOverlay.mjs +180 -66
  208. package/esm/PortfolioGreeksHistory.d.ts.map +1 -1
  209. package/esm/PortfolioGreeksHistory.js.map +1 -1
  210. package/esm/PortfolioGreeksHistory.mjs +180 -66
  211. package/esm/ScheduledOptionOrder.d.ts.map +1 -1
  212. package/esm/ScheduledOptionOrder.js.map +1 -1
  213. package/esm/ScheduledOptionOrder.mjs +180 -66
  214. package/esm/Session.d.ts.map +1 -1
  215. package/esm/Session.js.map +1 -1
  216. package/esm/Session.mjs +180 -66
  217. package/esm/SignalGeneratorMetrics.d.ts.map +1 -1
  218. package/esm/SignalGeneratorMetrics.js.map +1 -1
  219. package/esm/SignalGeneratorMetrics.mjs +180 -66
  220. package/esm/SignalLineage.d.ts.map +1 -1
  221. package/esm/SignalLineage.js.map +1 -1
  222. package/esm/SignalLineage.mjs +180 -66
  223. package/esm/SignalOutcome.d.ts.map +1 -1
  224. package/esm/SignalOutcome.js.map +1 -1
  225. package/esm/SignalOutcome.mjs +180 -66
  226. package/esm/SignalPriorityQueue.d.ts.map +1 -1
  227. package/esm/SignalPriorityQueue.js.map +1 -1
  228. package/esm/SignalPriorityQueue.mjs +180 -66
  229. package/esm/SyncEvent.d.ts.map +1 -1
  230. package/esm/SyncEvent.js.map +1 -1
  231. package/esm/SyncEvent.mjs +180 -66
  232. package/esm/SystemAlert.d.ts.map +1 -1
  233. package/esm/SystemAlert.js.map +1 -1
  234. package/esm/SystemAlert.mjs +180 -66
  235. package/esm/Trade.d.ts.map +1 -1
  236. package/esm/Trade.js.map +1 -1
  237. package/esm/Trade.mjs +180 -66
  238. package/esm/TradeAuditEvent.d.ts.map +1 -1
  239. package/esm/TradeAuditEvent.js.map +1 -1
  240. package/esm/TradeAuditEvent.mjs +180 -66
  241. package/esm/TradeExecutionHistory.d.ts.map +1 -1
  242. package/esm/TradeExecutionHistory.js.map +1 -1
  243. package/esm/TradeExecutionHistory.mjs +180 -66
  244. package/esm/TradeOutcome.d.ts.map +1 -1
  245. package/esm/TradeOutcome.js.map +1 -1
  246. package/esm/TradeOutcome.mjs +180 -66
  247. package/esm/TradingPolicy.d.ts.map +1 -1
  248. package/esm/TradingPolicy.js.map +1 -1
  249. package/esm/TradingPolicy.mjs +180 -66
  250. package/esm/User.d.ts.map +1 -1
  251. package/esm/User.js.map +1 -1
  252. package/esm/User.mjs +180 -66
  253. package/esm/VerificationToken.d.ts.map +1 -1
  254. package/esm/VerificationToken.js.map +1 -1
  255. package/esm/VerificationToken.mjs +180 -66
  256. package/esm/WaitlistEntry.d.ts.map +1 -1
  257. package/esm/WaitlistEntry.js.map +1 -1
  258. package/esm/WaitlistEntry.mjs +180 -66
  259. package/esm/client.d.ts +32 -0
  260. package/esm/client.d.ts.map +1 -1
  261. package/esm/client.js.map +1 -1
  262. package/esm/client.mjs +130 -9
  263. package/esm/index.d.ts +2 -2
  264. package/esm/index.d.ts.map +1 -1
  265. package/esm/index.js.map +1 -1
  266. package/esm/index.mjs +1 -1
  267. package/index.cjs +2 -1
  268. package/index.d.ts +2 -2
  269. package/package.json +1 -1
@@ -361,13 +361,28 @@ exports.InstitutionalFlowSignal = {
361
361
  await new Promise(resolve => setTimeout(resolve, delay));
362
362
  continue;
363
363
  }
364
- // Log structured error details and rethrow
365
- logger_1.logger.error("Database create operation failed", {
366
- operation: 'createOneInstitutionalFlowSignal',
367
- model: 'InstitutionalFlowSignal',
368
- error: String(error),
369
- isRetryable: isConnectionError,
370
- });
364
+ // Log structured error details and rethrow.
365
+ // Demote transient failures to WARN with explicit transient+recoveryHint
366
+ // metadata so log analytics can distinguish recoverable upstream retries
367
+ // from true defects.
368
+ if (isConnectionError) {
369
+ logger_1.logger.warn("Database create operation failed (transient after retries)", {
370
+ operation: 'createOneInstitutionalFlowSignal',
371
+ model: 'InstitutionalFlowSignal',
372
+ error: String(error),
373
+ isRetryable: true,
374
+ transient: true,
375
+ recoveryHint: "Upstream caller should retry on next cycle",
376
+ });
377
+ }
378
+ else {
379
+ logger_1.logger.error("Database create operation failed", {
380
+ operation: 'createOneInstitutionalFlowSignal',
381
+ model: 'InstitutionalFlowSignal',
382
+ error: String(error),
383
+ isRetryable: false,
384
+ });
385
+ }
371
386
  throw error;
372
387
  }
373
388
  }
@@ -492,13 +507,25 @@ exports.InstitutionalFlowSignal = {
492
507
  await new Promise(resolve => setTimeout(resolve, delay));
493
508
  continue;
494
509
  }
495
- // Log structured error details and rethrow
496
- logger_1.logger.error("Database createMany operation failed", {
497
- operation: 'createManyInstitutionalFlowSignal',
498
- model: 'InstitutionalFlowSignal',
499
- error: String(error),
500
- isRetryable: isConnectionError,
501
- });
510
+ // Log structured error details and rethrow (transient -> WARN).
511
+ if (isConnectionError) {
512
+ logger_1.logger.warn("Database createMany operation failed (transient after retries)", {
513
+ operation: 'createManyInstitutionalFlowSignal',
514
+ model: 'InstitutionalFlowSignal',
515
+ error: String(error),
516
+ isRetryable: true,
517
+ transient: true,
518
+ recoveryHint: "Upstream caller should retry on next cycle",
519
+ });
520
+ }
521
+ else {
522
+ logger_1.logger.error("Database createMany operation failed", {
523
+ operation: 'createManyInstitutionalFlowSignal',
524
+ model: 'InstitutionalFlowSignal',
525
+ error: String(error),
526
+ isRetryable: false,
527
+ });
528
+ }
502
529
  throw error;
503
530
  }
504
531
  }
@@ -1189,14 +1216,27 @@ exports.InstitutionalFlowSignal = {
1189
1216
  await new Promise(resolve => setTimeout(resolve, delay));
1190
1217
  continue;
1191
1218
  }
1192
- // Log structured error details and rethrow
1193
- logger_1.logger.error("Database update operation failed", {
1194
- operation: 'updateOneInstitutionalFlowSignal',
1195
- model: 'InstitutionalFlowSignal',
1196
- error: String(error),
1197
- recordId: props.id,
1198
- isRetryable: isConnectionError,
1199
- });
1219
+ // Log structured error details and rethrow (transient -> WARN).
1220
+ if (isConnectionError) {
1221
+ logger_1.logger.warn("Database update operation failed (transient after retries)", {
1222
+ operation: 'updateOneInstitutionalFlowSignal',
1223
+ model: 'InstitutionalFlowSignal',
1224
+ error: String(error),
1225
+ recordId: props.id,
1226
+ isRetryable: true,
1227
+ transient: true,
1228
+ recoveryHint: "Upstream caller should retry on next cycle",
1229
+ });
1230
+ }
1231
+ else {
1232
+ logger_1.logger.error("Database update operation failed", {
1233
+ operation: 'updateOneInstitutionalFlowSignal',
1234
+ model: 'InstitutionalFlowSignal',
1235
+ error: String(error),
1236
+ recordId: props.id,
1237
+ isRetryable: false,
1238
+ });
1239
+ }
1200
1240
  throw error;
1201
1241
  }
1202
1242
  }
@@ -2049,14 +2089,27 @@ exports.InstitutionalFlowSignal = {
2049
2089
  await new Promise(resolve => setTimeout(resolve, delay));
2050
2090
  continue;
2051
2091
  }
2052
- // Log structured error details and rethrow
2053
- logger_1.logger.error("Database upsert operation failed", {
2054
- operation: 'upsertOneInstitutionalFlowSignal',
2055
- model: 'InstitutionalFlowSignal',
2056
- error: String(error),
2057
- recordId: props.id,
2058
- isRetryable: isConnectionError,
2059
- });
2092
+ // Log structured error details and rethrow (transient -> WARN).
2093
+ if (isConnectionError) {
2094
+ logger_1.logger.warn("Database upsert operation failed (transient after retries)", {
2095
+ operation: 'upsertOneInstitutionalFlowSignal',
2096
+ model: 'InstitutionalFlowSignal',
2097
+ error: String(error),
2098
+ recordId: props.id,
2099
+ isRetryable: true,
2100
+ transient: true,
2101
+ recoveryHint: "Upstream caller should retry on next cycle",
2102
+ });
2103
+ }
2104
+ else {
2105
+ logger_1.logger.error("Database upsert operation failed", {
2106
+ operation: 'upsertOneInstitutionalFlowSignal',
2107
+ model: 'InstitutionalFlowSignal',
2108
+ error: String(error),
2109
+ recordId: props.id,
2110
+ isRetryable: false,
2111
+ });
2112
+ }
2060
2113
  throw error;
2061
2114
  }
2062
2115
  }
@@ -2745,13 +2798,25 @@ exports.InstitutionalFlowSignal = {
2745
2798
  await new Promise(resolve => setTimeout(resolve, delay));
2746
2799
  continue;
2747
2800
  }
2748
- // Log structured error details and rethrow
2749
- logger_1.logger.error("Database updateMany operation failed", {
2750
- operation: 'updateManyInstitutionalFlowSignal',
2751
- model: 'InstitutionalFlowSignal',
2752
- error: String(error),
2753
- isRetryable: isConnectionError,
2754
- });
2801
+ // Log structured error details and rethrow (transient -> WARN).
2802
+ if (isConnectionError) {
2803
+ logger_1.logger.warn("Database updateMany operation failed (transient after retries)", {
2804
+ operation: 'updateManyInstitutionalFlowSignal',
2805
+ model: 'InstitutionalFlowSignal',
2806
+ error: String(error),
2807
+ isRetryable: true,
2808
+ transient: true,
2809
+ recoveryHint: "Upstream caller should retry on next cycle",
2810
+ });
2811
+ }
2812
+ else {
2813
+ logger_1.logger.error("Database updateMany operation failed", {
2814
+ operation: 'updateManyInstitutionalFlowSignal',
2815
+ model: 'InstitutionalFlowSignal',
2816
+ error: String(error),
2817
+ isRetryable: false,
2818
+ });
2819
+ }
2755
2820
  throw error;
2756
2821
  }
2757
2822
  }
@@ -2874,14 +2939,27 @@ exports.InstitutionalFlowSignal = {
2874
2939
  await new Promise(resolve => setTimeout(resolve, delay));
2875
2940
  continue;
2876
2941
  }
2877
- // Log structured error details and rethrow
2878
- logger_1.logger.error("Database delete operation failed", {
2879
- operation: 'deleteOneInstitutionalFlowSignal',
2880
- model: 'InstitutionalFlowSignal',
2881
- error: String(error),
2882
- recordId: props.id,
2883
- isRetryable: isConnectionError,
2884
- });
2942
+ // Log structured error details and rethrow (transient -> WARN).
2943
+ if (isConnectionError) {
2944
+ logger_1.logger.warn("Database delete operation failed (transient after retries)", {
2945
+ operation: 'deleteOneInstitutionalFlowSignal',
2946
+ model: 'InstitutionalFlowSignal',
2947
+ error: String(error),
2948
+ recordId: props.id,
2949
+ isRetryable: true,
2950
+ transient: true,
2951
+ recoveryHint: "Upstream caller should retry on next cycle",
2952
+ });
2953
+ }
2954
+ else {
2955
+ logger_1.logger.error("Database delete operation failed", {
2956
+ operation: 'deleteOneInstitutionalFlowSignal',
2957
+ model: 'InstitutionalFlowSignal',
2958
+ error: String(error),
2959
+ recordId: props.id,
2960
+ isRetryable: false,
2961
+ });
2962
+ }
2885
2963
  throw error;
2886
2964
  }
2887
2965
  }
@@ -2980,13 +3058,25 @@ exports.InstitutionalFlowSignal = {
2980
3058
  await new Promise(resolve => setTimeout(resolve, delay));
2981
3059
  continue;
2982
3060
  }
2983
- // Log structured error details and rethrow
2984
- logger_1.logger.error("Database get operation failed", {
2985
- operation: 'getInstitutionalFlowSignal',
2986
- model: 'InstitutionalFlowSignal',
2987
- error: String(error),
2988
- isRetryable: isConnectionError,
2989
- });
3061
+ // Log structured error details and rethrow (transient -> WARN).
3062
+ if (isConnectionError) {
3063
+ logger_1.logger.warn("Database get operation failed (transient after retries)", {
3064
+ operation: 'getInstitutionalFlowSignal',
3065
+ model: 'InstitutionalFlowSignal',
3066
+ error: String(error),
3067
+ isRetryable: true,
3068
+ transient: true,
3069
+ recoveryHint: "Upstream caller should retry on next cycle",
3070
+ });
3071
+ }
3072
+ else {
3073
+ logger_1.logger.error("Database get operation failed", {
3074
+ operation: 'getInstitutionalFlowSignal',
3075
+ model: 'InstitutionalFlowSignal',
3076
+ error: String(error),
3077
+ isRetryable: false,
3078
+ });
3079
+ }
2990
3080
  throw error;
2991
3081
  }
2992
3082
  }
@@ -3073,13 +3163,25 @@ exports.InstitutionalFlowSignal = {
3073
3163
  await new Promise(resolve => setTimeout(resolve, delay));
3074
3164
  continue;
3075
3165
  }
3076
- // Log structured error details and rethrow
3077
- logger_1.logger.error("Database getAll operation failed", {
3078
- operation: 'getAllInstitutionalFlowSignal',
3079
- model: 'InstitutionalFlowSignal',
3080
- error: String(error),
3081
- isRetryable: isConnectionError,
3082
- });
3166
+ // Log structured error details and rethrow (transient -> WARN).
3167
+ if (isConnectionError) {
3168
+ logger_1.logger.warn("Database getAll operation failed (transient after retries)", {
3169
+ operation: 'getAllInstitutionalFlowSignal',
3170
+ model: 'InstitutionalFlowSignal',
3171
+ error: String(error),
3172
+ isRetryable: true,
3173
+ transient: true,
3174
+ recoveryHint: "Upstream caller should retry on next cycle",
3175
+ });
3176
+ }
3177
+ else {
3178
+ logger_1.logger.error("Database getAll operation failed", {
3179
+ operation: 'getAllInstitutionalFlowSignal',
3180
+ model: 'InstitutionalFlowSignal',
3181
+ error: String(error),
3182
+ isRetryable: false,
3183
+ });
3184
+ }
3083
3185
  throw error;
3084
3186
  }
3085
3187
  }
@@ -3190,13 +3292,25 @@ exports.InstitutionalFlowSignal = {
3190
3292
  await new Promise(resolve => setTimeout(resolve, delay));
3191
3293
  continue;
3192
3294
  }
3193
- // Log structured error details and rethrow
3194
- logger_1.logger.error("Database findMany operation failed", {
3195
- operation: 'findManyInstitutionalFlowSignal',
3196
- model: 'InstitutionalFlowSignal',
3197
- error: String(error),
3198
- isRetryable: isConnectionError,
3199
- });
3295
+ // Log structured error details and rethrow (transient -> WARN).
3296
+ if (isConnectionError) {
3297
+ logger_1.logger.warn("Database findMany operation failed (transient after retries)", {
3298
+ operation: 'findManyInstitutionalFlowSignal',
3299
+ model: 'InstitutionalFlowSignal',
3300
+ error: String(error),
3301
+ isRetryable: true,
3302
+ transient: true,
3303
+ recoveryHint: "Upstream caller should retry on next cycle",
3304
+ });
3305
+ }
3306
+ else {
3307
+ logger_1.logger.error("Database findMany operation failed", {
3308
+ operation: 'findManyInstitutionalFlowSignal',
3309
+ model: 'InstitutionalFlowSignal',
3310
+ error: String(error),
3311
+ isRetryable: false,
3312
+ });
3313
+ }
3200
3314
  throw error;
3201
3315
  }
3202
3316
  }
@@ -365,13 +365,28 @@ exports.InstitutionalHolding = {
365
365
  await new Promise(resolve => setTimeout(resolve, delay));
366
366
  continue;
367
367
  }
368
- // Log structured error details and rethrow
369
- logger_1.logger.error("Database create operation failed", {
370
- operation: 'createOneInstitutionalHolding',
371
- model: 'InstitutionalHolding',
372
- error: String(error),
373
- isRetryable: isConnectionError,
374
- });
368
+ // Log structured error details and rethrow.
369
+ // Demote transient failures to WARN with explicit transient+recoveryHint
370
+ // metadata so log analytics can distinguish recoverable upstream retries
371
+ // from true defects.
372
+ if (isConnectionError) {
373
+ logger_1.logger.warn("Database create operation failed (transient after retries)", {
374
+ operation: 'createOneInstitutionalHolding',
375
+ model: 'InstitutionalHolding',
376
+ error: String(error),
377
+ isRetryable: true,
378
+ transient: true,
379
+ recoveryHint: "Upstream caller should retry on next cycle",
380
+ });
381
+ }
382
+ else {
383
+ logger_1.logger.error("Database create operation failed", {
384
+ operation: 'createOneInstitutionalHolding',
385
+ model: 'InstitutionalHolding',
386
+ error: String(error),
387
+ isRetryable: false,
388
+ });
389
+ }
375
390
  throw error;
376
391
  }
377
392
  }
@@ -499,13 +514,25 @@ exports.InstitutionalHolding = {
499
514
  await new Promise(resolve => setTimeout(resolve, delay));
500
515
  continue;
501
516
  }
502
- // Log structured error details and rethrow
503
- logger_1.logger.error("Database createMany operation failed", {
504
- operation: 'createManyInstitutionalHolding',
505
- model: 'InstitutionalHolding',
506
- error: String(error),
507
- isRetryable: isConnectionError,
508
- });
517
+ // Log structured error details and rethrow (transient -> WARN).
518
+ if (isConnectionError) {
519
+ logger_1.logger.warn("Database createMany operation failed (transient after retries)", {
520
+ operation: 'createManyInstitutionalHolding',
521
+ model: 'InstitutionalHolding',
522
+ error: String(error),
523
+ isRetryable: true,
524
+ transient: true,
525
+ recoveryHint: "Upstream caller should retry on next cycle",
526
+ });
527
+ }
528
+ else {
529
+ logger_1.logger.error("Database createMany operation failed", {
530
+ operation: 'createManyInstitutionalHolding',
531
+ model: 'InstitutionalHolding',
532
+ error: String(error),
533
+ isRetryable: false,
534
+ });
535
+ }
509
536
  throw error;
510
537
  }
511
538
  }
@@ -1193,14 +1220,27 @@ exports.InstitutionalHolding = {
1193
1220
  await new Promise(resolve => setTimeout(resolve, delay));
1194
1221
  continue;
1195
1222
  }
1196
- // Log structured error details and rethrow
1197
- logger_1.logger.error("Database update operation failed", {
1198
- operation: 'updateOneInstitutionalHolding',
1199
- model: 'InstitutionalHolding',
1200
- error: String(error),
1201
- recordId: props.id,
1202
- isRetryable: isConnectionError,
1203
- });
1223
+ // Log structured error details and rethrow (transient -> WARN).
1224
+ if (isConnectionError) {
1225
+ logger_1.logger.warn("Database update operation failed (transient after retries)", {
1226
+ operation: 'updateOneInstitutionalHolding',
1227
+ model: 'InstitutionalHolding',
1228
+ error: String(error),
1229
+ recordId: props.id,
1230
+ isRetryable: true,
1231
+ transient: true,
1232
+ recoveryHint: "Upstream caller should retry on next cycle",
1233
+ });
1234
+ }
1235
+ else {
1236
+ logger_1.logger.error("Database update operation failed", {
1237
+ operation: 'updateOneInstitutionalHolding',
1238
+ model: 'InstitutionalHolding',
1239
+ error: String(error),
1240
+ recordId: props.id,
1241
+ isRetryable: false,
1242
+ });
1243
+ }
1204
1244
  throw error;
1205
1245
  }
1206
1246
  }
@@ -2047,14 +2087,27 @@ exports.InstitutionalHolding = {
2047
2087
  await new Promise(resolve => setTimeout(resolve, delay));
2048
2088
  continue;
2049
2089
  }
2050
- // Log structured error details and rethrow
2051
- logger_1.logger.error("Database upsert operation failed", {
2052
- operation: 'upsertOneInstitutionalHolding',
2053
- model: 'InstitutionalHolding',
2054
- error: String(error),
2055
- recordId: props.id,
2056
- isRetryable: isConnectionError,
2057
- });
2090
+ // Log structured error details and rethrow (transient -> WARN).
2091
+ if (isConnectionError) {
2092
+ logger_1.logger.warn("Database upsert operation failed (transient after retries)", {
2093
+ operation: 'upsertOneInstitutionalHolding',
2094
+ model: 'InstitutionalHolding',
2095
+ error: String(error),
2096
+ recordId: props.id,
2097
+ isRetryable: true,
2098
+ transient: true,
2099
+ recoveryHint: "Upstream caller should retry on next cycle",
2100
+ });
2101
+ }
2102
+ else {
2103
+ logger_1.logger.error("Database upsert operation failed", {
2104
+ operation: 'upsertOneInstitutionalHolding',
2105
+ model: 'InstitutionalHolding',
2106
+ error: String(error),
2107
+ recordId: props.id,
2108
+ isRetryable: false,
2109
+ });
2110
+ }
2058
2111
  throw error;
2059
2112
  }
2060
2113
  }
@@ -2740,13 +2793,25 @@ exports.InstitutionalHolding = {
2740
2793
  await new Promise(resolve => setTimeout(resolve, delay));
2741
2794
  continue;
2742
2795
  }
2743
- // Log structured error details and rethrow
2744
- logger_1.logger.error("Database updateMany operation failed", {
2745
- operation: 'updateManyInstitutionalHolding',
2746
- model: 'InstitutionalHolding',
2747
- error: String(error),
2748
- isRetryable: isConnectionError,
2749
- });
2796
+ // Log structured error details and rethrow (transient -> WARN).
2797
+ if (isConnectionError) {
2798
+ logger_1.logger.warn("Database updateMany operation failed (transient after retries)", {
2799
+ operation: 'updateManyInstitutionalHolding',
2800
+ model: 'InstitutionalHolding',
2801
+ error: String(error),
2802
+ isRetryable: true,
2803
+ transient: true,
2804
+ recoveryHint: "Upstream caller should retry on next cycle",
2805
+ });
2806
+ }
2807
+ else {
2808
+ logger_1.logger.error("Database updateMany operation failed", {
2809
+ operation: 'updateManyInstitutionalHolding',
2810
+ model: 'InstitutionalHolding',
2811
+ error: String(error),
2812
+ isRetryable: false,
2813
+ });
2814
+ }
2750
2815
  throw error;
2751
2816
  }
2752
2817
  }
@@ -2869,14 +2934,27 @@ exports.InstitutionalHolding = {
2869
2934
  await new Promise(resolve => setTimeout(resolve, delay));
2870
2935
  continue;
2871
2936
  }
2872
- // Log structured error details and rethrow
2873
- logger_1.logger.error("Database delete operation failed", {
2874
- operation: 'deleteOneInstitutionalHolding',
2875
- model: 'InstitutionalHolding',
2876
- error: String(error),
2877
- recordId: props.id,
2878
- isRetryable: isConnectionError,
2879
- });
2937
+ // Log structured error details and rethrow (transient -> WARN).
2938
+ if (isConnectionError) {
2939
+ logger_1.logger.warn("Database delete operation failed (transient after retries)", {
2940
+ operation: 'deleteOneInstitutionalHolding',
2941
+ model: 'InstitutionalHolding',
2942
+ error: String(error),
2943
+ recordId: props.id,
2944
+ isRetryable: true,
2945
+ transient: true,
2946
+ recoveryHint: "Upstream caller should retry on next cycle",
2947
+ });
2948
+ }
2949
+ else {
2950
+ logger_1.logger.error("Database delete operation failed", {
2951
+ operation: 'deleteOneInstitutionalHolding',
2952
+ model: 'InstitutionalHolding',
2953
+ error: String(error),
2954
+ recordId: props.id,
2955
+ isRetryable: false,
2956
+ });
2957
+ }
2880
2958
  throw error;
2881
2959
  }
2882
2960
  }
@@ -2975,13 +3053,25 @@ exports.InstitutionalHolding = {
2975
3053
  await new Promise(resolve => setTimeout(resolve, delay));
2976
3054
  continue;
2977
3055
  }
2978
- // Log structured error details and rethrow
2979
- logger_1.logger.error("Database get operation failed", {
2980
- operation: 'getInstitutionalHolding',
2981
- model: 'InstitutionalHolding',
2982
- error: String(error),
2983
- isRetryable: isConnectionError,
2984
- });
3056
+ // Log structured error details and rethrow (transient -> WARN).
3057
+ if (isConnectionError) {
3058
+ logger_1.logger.warn("Database get operation failed (transient after retries)", {
3059
+ operation: 'getInstitutionalHolding',
3060
+ model: 'InstitutionalHolding',
3061
+ error: String(error),
3062
+ isRetryable: true,
3063
+ transient: true,
3064
+ recoveryHint: "Upstream caller should retry on next cycle",
3065
+ });
3066
+ }
3067
+ else {
3068
+ logger_1.logger.error("Database get operation failed", {
3069
+ operation: 'getInstitutionalHolding',
3070
+ model: 'InstitutionalHolding',
3071
+ error: String(error),
3072
+ isRetryable: false,
3073
+ });
3074
+ }
2985
3075
  throw error;
2986
3076
  }
2987
3077
  }
@@ -3068,13 +3158,25 @@ exports.InstitutionalHolding = {
3068
3158
  await new Promise(resolve => setTimeout(resolve, delay));
3069
3159
  continue;
3070
3160
  }
3071
- // Log structured error details and rethrow
3072
- logger_1.logger.error("Database getAll operation failed", {
3073
- operation: 'getAllInstitutionalHolding',
3074
- model: 'InstitutionalHolding',
3075
- error: String(error),
3076
- isRetryable: isConnectionError,
3077
- });
3161
+ // Log structured error details and rethrow (transient -> WARN).
3162
+ if (isConnectionError) {
3163
+ logger_1.logger.warn("Database getAll operation failed (transient after retries)", {
3164
+ operation: 'getAllInstitutionalHolding',
3165
+ model: 'InstitutionalHolding',
3166
+ error: String(error),
3167
+ isRetryable: true,
3168
+ transient: true,
3169
+ recoveryHint: "Upstream caller should retry on next cycle",
3170
+ });
3171
+ }
3172
+ else {
3173
+ logger_1.logger.error("Database getAll operation failed", {
3174
+ operation: 'getAllInstitutionalHolding',
3175
+ model: 'InstitutionalHolding',
3176
+ error: String(error),
3177
+ isRetryable: false,
3178
+ });
3179
+ }
3078
3180
  throw error;
3079
3181
  }
3080
3182
  }
@@ -3185,13 +3287,25 @@ exports.InstitutionalHolding = {
3185
3287
  await new Promise(resolve => setTimeout(resolve, delay));
3186
3288
  continue;
3187
3289
  }
3188
- // Log structured error details and rethrow
3189
- logger_1.logger.error("Database findMany operation failed", {
3190
- operation: 'findManyInstitutionalHolding',
3191
- model: 'InstitutionalHolding',
3192
- error: String(error),
3193
- isRetryable: isConnectionError,
3194
- });
3290
+ // Log structured error details and rethrow (transient -> WARN).
3291
+ if (isConnectionError) {
3292
+ logger_1.logger.warn("Database findMany operation failed (transient after retries)", {
3293
+ operation: 'findManyInstitutionalHolding',
3294
+ model: 'InstitutionalHolding',
3295
+ error: String(error),
3296
+ isRetryable: true,
3297
+ transient: true,
3298
+ recoveryHint: "Upstream caller should retry on next cycle",
3299
+ });
3300
+ }
3301
+ else {
3302
+ logger_1.logger.error("Database findMany operation failed", {
3303
+ operation: 'findManyInstitutionalHolding',
3304
+ model: 'InstitutionalHolding',
3305
+ error: String(error),
3306
+ isRetryable: false,
3307
+ });
3308
+ }
3195
3309
  throw error;
3196
3310
  }
3197
3311
  }