cs-models 0.0.627__py3-none-any.whl → 0.0.847__py3-none-any.whl

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 (392) hide show
  1. cs_models/database/operations.py +17 -5
  2. cs_models/resources/ArtifactVectorIndex/__init__.py +0 -0
  3. cs_models/resources/ArtifactVectorIndex/models.py +32 -0
  4. cs_models/resources/ArtifactVectorIndex/schemas.py +16 -0
  5. cs_models/resources/ArtifactVectorIndexQueue/__init__.py +0 -0
  6. cs_models/resources/ArtifactVectorIndexQueue/models.py +34 -0
  7. cs_models/resources/ArtifactVectorIndexQueue/schemas.py +17 -0
  8. cs_models/resources/AssistantCommand/models.py +14 -1
  9. cs_models/resources/AssistantCommand/schemas.py +2 -0
  10. cs_models/resources/AssistantCommandArtifact/models.py +2 -1
  11. cs_models/resources/AssistantCommandArtifact/schemas.py +1 -0
  12. cs_models/resources/AssistantCommandChart/__init__.py +0 -0
  13. cs_models/resources/AssistantCommandChart/models.py +37 -0
  14. cs_models/resources/AssistantCommandChart/schemas.py +16 -0
  15. cs_models/resources/AssistantSession/models.py +8 -1
  16. cs_models/resources/AssistantSession/schemas.py +3 -0
  17. cs_models/resources/AssistantUserQuery/models.py +5 -1
  18. cs_models/resources/AssistantUserQuery/schemas.py +40 -1
  19. cs_models/resources/B3CRSS/__init__.py +0 -0
  20. cs_models/resources/B3CRSS/models.py +25 -0
  21. cs_models/resources/B3CRSS/schemas.py +14 -0
  22. cs_models/resources/CampaignTracker/__init__.py +0 -0
  23. cs_models/resources/CampaignTracker/models.py +29 -0
  24. cs_models/resources/CampaignTracker/schemas.py +17 -0
  25. cs_models/resources/CompanyDrugCount/__init__.py +0 -0
  26. cs_models/resources/CompanyDrugCount/models.py +28 -0
  27. cs_models/resources/CompanyDrugCount/schemas.py +11 -0
  28. cs_models/resources/CompanyMarketCap/__init__.py +0 -0
  29. cs_models/resources/CompanyMarketCap/models.py +29 -0
  30. cs_models/resources/CompanyMarketCap/schemas.py +11 -0
  31. cs_models/resources/CompanyOUS/models.py +4 -0
  32. cs_models/resources/CompanyOUS/schemas.py +6 -0
  33. cs_models/resources/CompanyOutbox/models.py +1 -0
  34. cs_models/resources/CompanyOutbox/schemas.py +1 -0
  35. cs_models/resources/CompanyReview/models.py +4 -1
  36. cs_models/resources/CompanyReview/schemas.py +3 -0
  37. cs_models/resources/CompanySEC/models.py +4 -0
  38. cs_models/resources/CompanySEC/schemas.py +6 -0
  39. cs_models/resources/Config/models.py +2 -0
  40. cs_models/resources/Config/schemas.py +3 -0
  41. cs_models/resources/CoverPage13F/__init__.py +0 -0
  42. cs_models/resources/CoverPage13F/models.py +29 -0
  43. cs_models/resources/CoverPage13F/schemas.py +27 -0
  44. cs_models/resources/Cusip13FSubsidiary/__init__.py +0 -0
  45. cs_models/resources/Cusip13FSubsidiary/models.py +28 -0
  46. cs_models/resources/Cusip13FSubsidiary/schemas.py +14 -0
  47. cs_models/resources/Deal/models.py +2 -0
  48. cs_models/resources/Deal/schemas.py +2 -0
  49. cs_models/resources/DealAdvisor/__init__.py +0 -0
  50. cs_models/resources/DealAdvisor/models.py +35 -0
  51. cs_models/resources/DealAdvisor/schemas.py +15 -0
  52. cs_models/resources/DealInvestor/models.py +1 -0
  53. cs_models/resources/DealInvestor/schemas.py +1 -0
  54. cs_models/resources/DealType/__init__.py +0 -0
  55. cs_models/resources/DealType/models.py +33 -0
  56. cs_models/resources/DealType/schemas.py +14 -0
  57. cs_models/resources/DealUnderwriter/__init__.py +0 -0
  58. cs_models/resources/DealUnderwriter/models.py +35 -0
  59. cs_models/resources/DealUnderwriter/schemas.py +15 -0
  60. cs_models/resources/DeepResearchAgenticUnit/__init__.py +14 -0
  61. cs_models/resources/DeepResearchAgenticUnit/models.py +123 -0
  62. cs_models/resources/DeepResearchAgenticUnit/schemas.py +50 -0
  63. cs_models/resources/DeepResearchSession/__init__.py +20 -0
  64. cs_models/resources/DeepResearchSession/models.py +170 -0
  65. cs_models/resources/DeepResearchSession/schemas.py +94 -0
  66. cs_models/resources/DeepResearchSubTask/__init__.py +20 -0
  67. cs_models/resources/DeepResearchSubTask/models.py +177 -0
  68. cs_models/resources/DeepResearchSubTask/schemas.py +105 -0
  69. cs_models/resources/Designation/models.py +7 -0
  70. cs_models/resources/Designation/schemas.py +2 -0
  71. cs_models/resources/DesignationOutbox/models.py +2 -0
  72. cs_models/resources/DesignationOutbox/schemas.py +1 -0
  73. cs_models/resources/Digest/models.py +1 -0
  74. cs_models/resources/Digest/schemas.py +1 -0
  75. cs_models/resources/DocChunk/__init__.py +0 -0
  76. cs_models/resources/DocChunk/models.py +33 -0
  77. cs_models/resources/DocChunk/schemas.py +20 -0
  78. cs_models/resources/DocMarkdownTable/__init__.py +0 -0
  79. cs_models/resources/DocMarkdownTable/models.py +29 -0
  80. cs_models/resources/DocMarkdownTable/schemas.py +16 -0
  81. cs_models/resources/EventLLM/__init__.py +0 -0
  82. cs_models/resources/EventLLM/models.py +41 -0
  83. cs_models/resources/EventLLM/schemas.py +39 -0
  84. cs_models/resources/EventsQueue/__init__.py +0 -0
  85. cs_models/resources/EventsQueue/models.py +33 -0
  86. cs_models/resources/EventsQueue/schemas.py +18 -0
  87. cs_models/resources/ExplorerColumn/__init__.py +0 -0
  88. cs_models/resources/ExplorerColumn/models.py +33 -0
  89. cs_models/resources/ExplorerColumn/schemas.py +16 -0
  90. cs_models/resources/ExternalDrive/__init__.py +0 -0
  91. cs_models/resources/ExternalDrive/models.py +29 -0
  92. cs_models/resources/ExternalDrive/schemas.py +14 -0
  93. cs_models/resources/FDADrugReview/__init__.py +0 -0
  94. cs_models/resources/FDADrugReview/models.py +29 -0
  95. cs_models/resources/FDADrugReview/schemas.py +19 -0
  96. cs_models/resources/FDADrugReviewFile/__init__.py +0 -0
  97. cs_models/resources/FDADrugReviewFile/models.py +43 -0
  98. cs_models/resources/FDADrugReviewFile/schemas.py +22 -0
  99. cs_models/resources/FDADrugReviewFileCondition/__init__.py +0 -0
  100. cs_models/resources/FDADrugReviewFileCondition/models.py +42 -0
  101. cs_models/resources/FDADrugReviewFileCondition/schemas.py +18 -0
  102. cs_models/resources/FDADrugReviewFileIntervention/__init__.py +0 -0
  103. cs_models/resources/FDADrugReviewFileIntervention/models.py +42 -0
  104. cs_models/resources/FDADrugReviewFileIntervention/schemas.py +18 -0
  105. cs_models/resources/FDADrugReviewFileTarget/__init__.py +0 -0
  106. cs_models/resources/FDADrugReviewFileTarget/models.py +42 -0
  107. cs_models/resources/FDADrugReviewFileTarget/schemas.py +18 -0
  108. cs_models/resources/FDALabel/models.py +3 -0
  109. cs_models/resources/FDALabel/schemas.py +2 -0
  110. cs_models/resources/FDAMeetingFiling/models.py +1 -0
  111. cs_models/resources/FDAMeetingFiling/schemas.py +1 -0
  112. cs_models/resources/FinancingDealType/__init__.py +0 -0
  113. cs_models/resources/FinancingDealType/models.py +28 -0
  114. cs_models/resources/FinancingDealType/schemas.py +13 -0
  115. cs_models/resources/InfoTable13F/__init__.py +0 -0
  116. cs_models/resources/InfoTable13F/models.py +26 -0
  117. cs_models/resources/InfoTable13F/schemas.py +20 -0
  118. cs_models/resources/Meeting/models.py +8 -0
  119. cs_models/resources/Meeting/schemas.py +84 -0
  120. cs_models/resources/MeetingDataOutbox/models.py +8 -1
  121. cs_models/resources/MeetingDataOutbox/schemas.py +4 -1
  122. cs_models/resources/MeetingUserDocument/__init__.py +0 -0
  123. cs_models/resources/MeetingUserDocument/models.py +39 -0
  124. cs_models/resources/MeetingUserDocument/schemas.py +17 -0
  125. cs_models/resources/MindgramOAuth/__init__.py +0 -0
  126. cs_models/resources/MindgramOAuth/models.py +35 -0
  127. cs_models/resources/MindgramOAuth/schemas.py +33 -0
  128. cs_models/resources/NCTFDADrugReviewFile/__init__.py +0 -0
  129. cs_models/resources/NCTFDADrugReviewFile/models.py +37 -0
  130. cs_models/resources/NCTFDADrugReviewFile/schemas.py +16 -0
  131. cs_models/resources/NCTFacilities/models.py +1 -0
  132. cs_models/resources/NCTFacilities/schemas.py +1 -0
  133. cs_models/resources/NCTParticipationCriteria/__init__.py +0 -0
  134. cs_models/resources/NCTParticipationCriteria/models.py +28 -0
  135. cs_models/resources/NCTParticipationCriteria/schemas.py +14 -0
  136. cs_models/resources/NCTStudy/models.py +2 -0
  137. cs_models/resources/NCTStudy/schemas.py +2 -0
  138. cs_models/resources/NotificationReadStatus/__init__.py +0 -0
  139. cs_models/resources/NotificationReadStatus/models.py +30 -0
  140. cs_models/resources/NotificationReadStatus/schemas.py +15 -0
  141. cs_models/resources/OtherManager13F/__init__.py +0 -0
  142. cs_models/resources/OtherManager13F/models.py +18 -0
  143. cs_models/resources/OtherManager13F/schemas.py +12 -0
  144. cs_models/resources/OtherManager213F/__init__.py +0 -0
  145. cs_models/resources/OtherManager213F/models.py +15 -0
  146. cs_models/resources/OtherManager213F/schemas.py +13 -0
  147. cs_models/resources/PipelineCrawlSession/__init__.py +0 -0
  148. cs_models/resources/PipelineCrawlSession/models.py +67 -0
  149. cs_models/resources/PipelineCrawlSession/schemas.py +22 -0
  150. cs_models/resources/PipelineCrawledPage/__init__.py +0 -0
  151. cs_models/resources/PipelineCrawledPage/models.py +80 -0
  152. cs_models/resources/PipelineCrawledPage/schemas.py +34 -0
  153. cs_models/resources/PipelineDrugPortfolio/__init__.py +0 -0
  154. cs_models/resources/PipelineDrugPortfolio/models.py +92 -0
  155. cs_models/resources/PipelineDrugPortfolio/schemas.py +31 -0
  156. cs_models/resources/PipelineExtractionLog/__init__.py +0 -0
  157. cs_models/resources/PipelineExtractionLog/models.py +55 -0
  158. cs_models/resources/PipelineExtractionLog/schemas.py +23 -0
  159. cs_models/resources/PromptIndices/__init__.py +0 -0
  160. cs_models/resources/PromptIndices/models.py +27 -0
  161. cs_models/resources/PromptIndices/schemas.py +17 -0
  162. cs_models/resources/PubmedMeetingSellSideSignal/__init__.py +0 -0
  163. cs_models/resources/PubmedMeetingSellSideSignal/models.py +64 -0
  164. cs_models/resources/PubmedMeetingSellSideSignal/schemas.py +21 -0
  165. cs_models/resources/PubmedMeetingUserDocument/__init__.py +0 -0
  166. cs_models/resources/PubmedMeetingUserDocument/models.py +40 -0
  167. cs_models/resources/PubmedMeetingUserDocument/schemas.py +16 -0
  168. cs_models/resources/PubmedUserDocument/__init__.py +0 -0
  169. cs_models/resources/PubmedUserDocument/models.py +35 -0
  170. cs_models/resources/PubmedUserDocument/schemas.py +15 -0
  171. cs_models/resources/PubmedVectorIndex/__init__.py +0 -0
  172. cs_models/resources/PubmedVectorIndex/models.py +33 -0
  173. cs_models/resources/PubmedVectorIndex/schemas.py +16 -0
  174. cs_models/resources/SalesEstimate/__init__.py +0 -0
  175. cs_models/resources/SalesEstimate/models.py +39 -0
  176. cs_models/resources/SalesEstimate/schemas.py +26 -0
  177. cs_models/resources/SalesEstimateCompany/__init__.py +0 -0
  178. cs_models/resources/SalesEstimateCompany/models.py +38 -0
  179. cs_models/resources/SalesEstimateCompany/schemas.py +35 -0
  180. cs_models/resources/SalesEstimateCondition/__init__.py +0 -0
  181. cs_models/resources/SalesEstimateCondition/models.py +41 -0
  182. cs_models/resources/SalesEstimateCondition/schemas.py +17 -0
  183. cs_models/resources/SalesEstimateIntervention/__init__.py +0 -0
  184. cs_models/resources/SalesEstimateIntervention/models.py +41 -0
  185. cs_models/resources/SalesEstimateIntervention/schemas.py +17 -0
  186. cs_models/resources/SalesEstimateTarget/__init__.py +0 -0
  187. cs_models/resources/SalesEstimateTarget/models.py +41 -0
  188. cs_models/resources/SalesEstimateTarget/schemas.py +17 -0
  189. cs_models/resources/SalesTable/__init__.py +0 -0
  190. cs_models/resources/SalesTable/models.py +34 -0
  191. cs_models/resources/SalesTable/schemas.py +20 -0
  192. cs_models/resources/SearchLink/__init__.py +0 -0
  193. cs_models/resources/SearchLink/models.py +29 -0
  194. cs_models/resources/SearchLink/schemas.py +16 -0
  195. cs_models/resources/SellSideAbstractMention/__init__.py +0 -0
  196. cs_models/resources/SellSideAbstractMention/models.py +57 -0
  197. cs_models/resources/SellSideAbstractMention/schemas.py +28 -0
  198. cs_models/resources/SellSideAbstractMentionLink/__init__.py +0 -0
  199. cs_models/resources/SellSideAbstractMentionLink/models.py +60 -0
  200. cs_models/resources/SellSideAbstractMentionLink/schemas.py +24 -0
  201. cs_models/resources/SellSideSource/__init__.py +0 -0
  202. cs_models/resources/SellSideSource/models.py +25 -0
  203. cs_models/resources/SellSideSource/schemas.py +13 -0
  204. cs_models/resources/Signature13F/__init__.py +0 -0
  205. cs_models/resources/Signature13F/models.py +15 -0
  206. cs_models/resources/Signature13F/schemas.py +13 -0
  207. cs_models/resources/SmartDefGrid/__init__.py +0 -0
  208. cs_models/resources/SmartDefGrid/models.py +30 -0
  209. cs_models/resources/SmartDefGrid/schemas.py +52 -0
  210. cs_models/resources/SmartDefGridCell/__init__.py +0 -0
  211. cs_models/resources/SmartDefGridCell/models.py +51 -0
  212. cs_models/resources/SmartDefGridCell/schemas.py +39 -0
  213. cs_models/resources/SmartDefGridCellAnswer/__init__.py +0 -0
  214. cs_models/resources/SmartDefGridCellAnswer/models.py +45 -0
  215. cs_models/resources/SmartDefGridCellAnswer/schemas.py +23 -0
  216. cs_models/resources/SmartDefGridCellAnswerCitation/__init__.py +0 -0
  217. cs_models/resources/SmartDefGridCellAnswerCitation/models.py +21 -0
  218. cs_models/resources/SmartDefGridCellAnswerCitation/schemas.py +14 -0
  219. cs_models/resources/SmartDefGridCellQuestion/__init__.py +0 -0
  220. cs_models/resources/SmartDefGridCellQuestion/models.py +76 -0
  221. cs_models/resources/SmartDefGridCellQuestion/schemas.py +41 -0
  222. cs_models/resources/SmartDefGridCellValue/__init__.py +0 -0
  223. cs_models/resources/SmartDefGridCellValue/models.py +54 -0
  224. cs_models/resources/SmartDefGridCellValue/schemas.py +19 -0
  225. cs_models/resources/SmartDefGridRun/__init__.py +0 -0
  226. cs_models/resources/SmartDefGridRun/models.py +60 -0
  227. cs_models/resources/SmartDefGridRun/schemas.py +31 -0
  228. cs_models/resources/SmartGrid/__init__.py +0 -0
  229. cs_models/resources/SmartGrid/models.py +34 -0
  230. cs_models/resources/SmartGrid/schemas.py +18 -0
  231. cs_models/resources/SmartGridCell/__init__.py +0 -0
  232. cs_models/resources/SmartGridCell/models.py +44 -0
  233. cs_models/resources/SmartGridCell/schemas.py +22 -0
  234. cs_models/resources/Submission13F/__init__.py +0 -0
  235. cs_models/resources/Submission13F/models.py +12 -0
  236. cs_models/resources/Submission13F/schemas.py +10 -0
  237. cs_models/resources/SummaryPage13F/__init__.py +0 -0
  238. cs_models/resources/SummaryPage13F/models.py +12 -0
  239. cs_models/resources/SummaryPage13F/schemas.py +9 -0
  240. cs_models/resources/TableFigure/__init__.py +0 -0
  241. cs_models/resources/TableFigure/models.py +40 -0
  242. cs_models/resources/TableFigure/schemas.py +61 -0
  243. cs_models/resources/TargetSyn/models.py +4 -0
  244. cs_models/resources/TargetSyn/schemas.py +3 -0
  245. cs_models/resources/Transcript/__init__.py +0 -0
  246. cs_models/resources/Transcript/models.py +31 -0
  247. cs_models/resources/Transcript/schemas.py +20 -0
  248. cs_models/resources/TranscriptCondition/__init__.py +0 -0
  249. cs_models/resources/TranscriptCondition/models.py +41 -0
  250. cs_models/resources/TranscriptCondition/schemas.py +17 -0
  251. cs_models/resources/TranscriptEquity/__init__.py +0 -0
  252. cs_models/resources/TranscriptEquity/models.py +28 -0
  253. cs_models/resources/TranscriptEquity/schemas.py +15 -0
  254. cs_models/resources/TranscriptEquityCompany/__init__.py +0 -0
  255. cs_models/resources/TranscriptEquityCompany/models.py +34 -0
  256. cs_models/resources/TranscriptEquityCompany/schemas.py +16 -0
  257. cs_models/resources/TranscriptGrouping/__init__.py +0 -0
  258. cs_models/resources/TranscriptGrouping/models.py +23 -0
  259. cs_models/resources/TranscriptGrouping/schemas.py +14 -0
  260. cs_models/resources/TranscriptGroupingMap/__init__.py +0 -0
  261. cs_models/resources/TranscriptGroupingMap/models.py +31 -0
  262. cs_models/resources/TranscriptGroupingMap/schemas.py +14 -0
  263. cs_models/resources/TranscriptIntervention/__init__.py +0 -0
  264. cs_models/resources/TranscriptIntervention/models.py +41 -0
  265. cs_models/resources/TranscriptIntervention/schemas.py +17 -0
  266. cs_models/resources/TranscriptItem/__init__.py +0 -0
  267. cs_models/resources/TranscriptItem/models.py +35 -0
  268. cs_models/resources/TranscriptItem/schemas.py +20 -0
  269. cs_models/resources/TranscriptTarget/__init__.py +0 -0
  270. cs_models/resources/TranscriptTarget/models.py +41 -0
  271. cs_models/resources/TranscriptTarget/schemas.py +17 -0
  272. cs_models/resources/UserAutomatedDigest/__init__.py +0 -0
  273. cs_models/resources/UserAutomatedDigest/models.py +35 -0
  274. cs_models/resources/UserAutomatedDigest/schemas.py +19 -0
  275. cs_models/resources/UserDocument/models.py +9 -0
  276. cs_models/resources/UserDocument/schemas.py +3 -0
  277. cs_models/resources/UserDocumentAccess/__init__.py +0 -0
  278. cs_models/resources/UserDocumentAccess/models.py +35 -0
  279. cs_models/resources/UserDocumentAccess/schemas.py +19 -0
  280. cs_models/resources/UserDocumentChunk/__init__.py +0 -0
  281. cs_models/resources/UserDocumentChunk/models.py +35 -0
  282. cs_models/resources/UserDocumentChunk/schemas.py +18 -0
  283. cs_models/resources/UserDocumentHierarchy/__init__.py +0 -0
  284. cs_models/resources/UserDocumentHierarchy/models.py +51 -0
  285. cs_models/resources/UserDocumentHierarchy/schemas.py +24 -0
  286. cs_models/resources/UserDocumentMeeting/__init__.py +0 -0
  287. cs_models/resources/UserDocumentMeeting/models.py +33 -0
  288. cs_models/resources/UserDocumentMeeting/schemas.py +14 -0
  289. cs_models/resources/UserDocumentTag/__init__.py +0 -0
  290. cs_models/resources/UserDocumentTag/models.py +31 -0
  291. cs_models/resources/UserDocumentTag/schemas.py +15 -0
  292. cs_models/resources/UserExplorerColumn/__init__.py +0 -0
  293. cs_models/resources/UserExplorerColumn/models.py +30 -0
  294. cs_models/resources/UserExplorerColumn/schemas.py +14 -0
  295. cs_models/resources/UserInternalDocWorkflow/__init__.py +0 -0
  296. cs_models/resources/UserInternalDocWorkflow/models.py +28 -0
  297. cs_models/resources/UserInternalDocWorkflow/schemas.py +11 -0
  298. cs_models/resources/UserMeeting/__init__.py +0 -0
  299. cs_models/resources/UserMeeting/models.py +31 -0
  300. cs_models/resources/UserMeeting/schemas.py +12 -0
  301. cs_models/resources/UserMeetingFavorite/__init__.py +0 -0
  302. cs_models/resources/UserMeetingFavorite/models.py +36 -0
  303. cs_models/resources/UserMeetingFavorite/schemas.py +13 -0
  304. cs_models/resources/UserSavedSearch/models.py +1 -0
  305. cs_models/resources/UserSavedSearch/schemas.py +1 -0
  306. cs_models/resources/UserSavedSearchAccess/__init__.py +0 -0
  307. cs_models/resources/UserSavedSearchAccess/models.py +34 -0
  308. cs_models/resources/UserSavedSearchAccess/schemas.py +18 -0
  309. cs_models/resources/UserSavedSearchCollectionMap/__init__.py +0 -0
  310. cs_models/resources/UserSavedSearchCollectionMap/models.py +33 -0
  311. cs_models/resources/UserSavedSearchCollectionMap/schemas.py +14 -0
  312. cs_models/resources/UserSavedSearchDigest/__init__.py +0 -0
  313. cs_models/resources/UserSavedSearchDigest/models.py +36 -0
  314. cs_models/resources/UserSavedSearchDigest/schemas.py +16 -0
  315. cs_models/resources/UserVAParameterView/__init__.py +0 -0
  316. cs_models/resources/UserVAParameterView/models.py +27 -0
  317. cs_models/resources/UserVAParameterView/schemas.py +13 -0
  318. cs_models/resources/UserWatchlistAccess/__init__.py +0 -0
  319. cs_models/resources/UserWatchlistAccess/models.py +31 -0
  320. cs_models/resources/UserWatchlistAccess/schemas.py +15 -0
  321. cs_models/resources/UserWorkbook/__init__.py +0 -0
  322. cs_models/resources/UserWorkbook/models.py +31 -0
  323. cs_models/resources/UserWorkbook/schemas.py +15 -0
  324. cs_models/resources/UserWorkbookWorkflows/__init__.py +0 -0
  325. cs_models/resources/UserWorkbookWorkflows/models.py +27 -0
  326. cs_models/resources/UserWorkbookWorkflows/schemas.py +15 -0
  327. cs_models/resources/UserWorkbookWorkflowsShared/__init__.py +0 -0
  328. cs_models/resources/UserWorkbookWorkflowsShared/models.py +31 -0
  329. cs_models/resources/UserWorkbookWorkflowsShared/schemas.py +15 -0
  330. cs_models/resources/VACompanyMap/__init__.py +0 -0
  331. cs_models/resources/VACompanyMap/models.py +37 -0
  332. cs_models/resources/VACompanyMap/schemas.py +38 -0
  333. cs_models/resources/VAParameter/__init__.py +0 -0
  334. cs_models/resources/VAParameter/models.py +36 -0
  335. cs_models/resources/VAParameter/schemas.py +25 -0
  336. cs_models/resources/VAParameterCondition/__init__.py +0 -0
  337. cs_models/resources/VAParameterCondition/models.py +41 -0
  338. cs_models/resources/VAParameterCondition/schemas.py +17 -0
  339. cs_models/resources/VAParameterGeography/__init__.py +0 -0
  340. cs_models/resources/VAParameterGeography/models.py +0 -0
  341. cs_models/resources/VAParameterGeography/schemas.py +0 -0
  342. cs_models/resources/VAParameterIntervention/__init__.py +0 -0
  343. cs_models/resources/VAParameterIntervention/models.py +41 -0
  344. cs_models/resources/VAParameterIntervention/schemas.py +17 -0
  345. cs_models/resources/VAParameterValue/__init__.py +0 -0
  346. cs_models/resources/VAParameterValue/models.py +42 -0
  347. cs_models/resources/VAParameterValue/schemas.py +27 -0
  348. cs_models/resources/VAParameterView/__init__.py +0 -0
  349. cs_models/resources/VAParameterView/models.py +35 -0
  350. cs_models/resources/VAParameterView/schemas.py +15 -0
  351. cs_models/resources/ViewPublicAssistantUserQuery/__init__.py +0 -0
  352. cs_models/resources/ViewPublicAssistantUserQuery/models.py +30 -0
  353. cs_models/resources/ViewPublicAssistantUserQuery/schemas.py +14 -0
  354. cs_models/resources/ViewPublicWorkbook/__init__.py +0 -0
  355. cs_models/resources/ViewPublicWorkbook/models.py +30 -0
  356. cs_models/resources/ViewPublicWorkbook/schemas.py +14 -0
  357. cs_models/resources/ViewPublicationCondition/__init__.py +0 -0
  358. cs_models/resources/ViewPublicationCondition/models.py +32 -0
  359. cs_models/resources/ViewPublicationCondition/schemas.py +16 -0
  360. cs_models/resources/WatchlistDigest/__init__.py +0 -0
  361. cs_models/resources/WatchlistDigest/models.py +36 -0
  362. cs_models/resources/WatchlistDigest/schemas.py +16 -0
  363. cs_models/resources/Workbook/__init__.py +0 -0
  364. cs_models/resources/Workbook/models.py +46 -0
  365. cs_models/resources/Workbook/schemas.py +32 -0
  366. cs_models/resources/WorkbookBlock/__init__.py +0 -0
  367. cs_models/resources/WorkbookBlock/models.py +50 -0
  368. cs_models/resources/WorkbookBlock/schemas.py +63 -0
  369. cs_models/resources/WorkbookBlockComment/__init__.py +0 -0
  370. cs_models/resources/WorkbookBlockComment/models.py +36 -0
  371. cs_models/resources/WorkbookBlockComment/schemas.py +15 -0
  372. cs_models/resources/WorkbookCommentThread/__init__.py +0 -0
  373. cs_models/resources/WorkbookCommentThread/models.py +59 -0
  374. cs_models/resources/WorkbookCommentThread/schemas.py +35 -0
  375. cs_models/resources/WorkbookMeta/__init__.py +0 -0
  376. cs_models/resources/WorkbookMeta/models.py +14 -0
  377. cs_models/resources/WorkbookMeta/schemas.py +9 -0
  378. cs_models/resources/WorkbookThreadComment/__init__.py +0 -0
  379. cs_models/resources/WorkbookThreadComment/models.py +38 -0
  380. cs_models/resources/WorkbookThreadComment/schemas.py +14 -0
  381. cs_models/resources/WorkbookWorkflow/__init__.py +0 -0
  382. cs_models/resources/WorkbookWorkflow/models.py +39 -0
  383. cs_models/resources/WorkbookWorkflow/schemas.py +24 -0
  384. cs_models/resources/WorkbookWorkflowBlock/__init__.py +0 -0
  385. cs_models/resources/WorkbookWorkflowBlock/models.py +37 -0
  386. cs_models/resources/WorkbookWorkflowBlock/schemas.py +60 -0
  387. cs_models/utils/utils.py +27 -1
  388. cs_models-0.0.847.dist-info/METADATA +29 -0
  389. {cs_models-0.0.627.dist-info → cs_models-0.0.847.dist-info}/RECORD +391 -52
  390. {cs_models-0.0.627.dist-info → cs_models-0.0.847.dist-info}/WHEEL +1 -1
  391. cs_models-0.0.627.dist-info/METADATA +0 -29
  392. {cs_models-0.0.627.dist-info → cs_models-0.0.847.dist-info}/top_level.txt +0 -0
@@ -18,5 +18,6 @@ class CompanyOutboxResourceSchema(Schema):
18
18
  company_ous_id = fields.Integer(allow_none=True)
19
19
  source = fields.String(required=True)
20
20
  news_id = fields.Integer(allow_none=True)
21
+ reviewed = fields.Boolean(allow_none=True)
21
22
  historical = fields.Boolean(allow_none=True)
22
23
  updated_at = fields.DateTime(dump_only=True)
@@ -32,7 +32,10 @@ class CompanyReviewModel(Base):
32
32
  ForeignKey('newswires.id'),
33
33
  nullable=False,
34
34
  )
35
- reviewed = Column(Boolean, nullable=False)
35
+ reviewed = Column(Boolean, nullable=True)
36
+ historical = Column(Boolean, nullable=True)
37
+ approval = Column(Boolean, nullable=True)
38
+ to_qc = Column(Boolean, nullable=True)
36
39
  updated_at = Column(
37
40
  DateTime,
38
41
  nullable=False,
@@ -14,4 +14,7 @@ class CompanyReviewResourceSchema(Schema):
14
14
  note_tag = fields.String(allow_none=True)
15
15
  news_id = fields.Integer(allow_none=False)
16
16
  reviewed = fields.Boolean(allow_none=True)
17
+ historical = fields.Boolean(allow_none=True)
18
+ approval = fields.Boolean(allow_none=True)
19
+ to_qc = fields.Boolean(allow_none=True)
17
20
  updated_at = fields.DateTime(dump_only=True)
@@ -6,6 +6,7 @@ from sqlalchemy import (
6
6
  UniqueConstraint,
7
7
  Boolean,
8
8
  Text,
9
+ DECIMAL,
9
10
  )
10
11
  from datetime import datetime
11
12
 
@@ -21,6 +22,7 @@ class CompanySECModel(Base):
21
22
  ticker = Column(String(20), nullable=False, index=True)
22
23
  title = Column(String(255), nullable=False, index=True)
23
24
  exchange = Column(String(50), nullable=True)
25
+ market_cap = Column(DECIMAL(20, 2), nullable=False)
24
26
  company_url = Column(String(255), nullable=True)
25
27
  pipeline_url = Column(String(255), nullable=True)
26
28
  ir_url = Column(String(255), nullable=True)
@@ -30,6 +32,8 @@ class CompanySECModel(Base):
30
32
  discarded = Column(Boolean, nullable=True)
31
33
  skip_sec = Column(Boolean, nullable=True)
32
34
  last_crawl_date = Column(DateTime, nullable=True)
35
+ last_pipeline_crawl_date = Column(DateTime, nullable=True)
36
+ pipeline_crawl_enabled = Column(Boolean, nullable=True, default=True)
33
37
  industry_type = Column(String(50), nullable=True)
34
38
  relevant_links = Column(Text, nullable=True)
35
39
  notes = Column(Text, nullable=True)
@@ -14,6 +14,7 @@ class CompanySECResourceSchema(Schema):
14
14
  ticker = fields.String(allow_none=True)
15
15
  title = fields.String(required=True)
16
16
  exchange = fields.String(allow_none=True)
17
+ market_cap = fields.Decimal(allow_none=True)
17
18
  company_url = fields.String(allow_none=True)
18
19
  pipeline_url = fields.String(allow_none=True)
19
20
  ir_url = fields.String(allow_none=True)
@@ -23,6 +24,8 @@ class CompanySECResourceSchema(Schema):
23
24
  discarded = fields.Boolean(allow_none=True)
24
25
  skip_sec = fields.Boolean(allow_none=True)
25
26
  last_crawl_date = fields.DateTime(allow_none=True)
27
+ last_pipeline_crawl_date = fields.DateTime(allow_none=True)
28
+ pipeline_crawl_enabled = fields.Boolean(allow_none=True)
26
29
  industry_type = fields.String(allow_none=True)
27
30
  relevant_links = fields.String(allow_none=True)
28
31
  notes = fields.String(allow_none=True)
@@ -31,6 +34,7 @@ class CompanySECResourceSchema(Schema):
31
34
 
32
35
  class CompanySECUpdateSchema(Schema):
33
36
  id = fields.Integer()
37
+ market_cap = fields.Decimal(allow_none=True)
34
38
  company_url = fields.String(allow_none=True)
35
39
  pipeline_url = fields.String(allow_none=True)
36
40
  ir_url = fields.String(allow_none=True)
@@ -41,5 +45,7 @@ class CompanySECUpdateSchema(Schema):
41
45
  discarded = fields.Boolean(allow_none=True)
42
46
  skip_sec = fields.Boolean(allow_none=True)
43
47
  last_crawl_date = fields.DateTime(allow_none=True)
48
+ last_pipeline_crawl_date = fields.DateTime(allow_none=True)
49
+ pipeline_crawl_enabled = fields.Boolean(allow_none=True)
44
50
  industry_type = fields.String(allow_none=True)
45
51
  updated_at = fields.DateTime(dump_only=True)
@@ -2,6 +2,7 @@ from sqlalchemy import (
2
2
  Column,
3
3
  Integer,
4
4
  String,
5
+ Text,
5
6
  DateTime,
6
7
  UniqueConstraint,
7
8
  )
@@ -16,6 +17,7 @@ class ConfigModel(Base):
16
17
  id = Column(Integer, primary_key=True)
17
18
  table_name = Column(String(128), nullable=False)
18
19
  field_name = Column(String(128), nullable=False)
20
+ field_value = Column(Text, nullable=True)
19
21
  latest_date = Column(DateTime, nullable=False)
20
22
  updated_at = Column(
21
23
  DateTime,
@@ -14,6 +14,7 @@ class ConfigResourceSchema(Schema):
14
14
  latest_date = fields.DateTime(required=True)
15
15
  table_name = fields.String(required=True)
16
16
  field_name = fields.String(required=True)
17
+ field_value = fields.String(allow_none=True)
17
18
  updated_at = fields.DateTime(dump_only=True)
18
19
 
19
20
  @pre_load
@@ -34,6 +35,7 @@ class ConfigQueryParamsSchema(Schema):
34
35
  id = fields.Integer()
35
36
  table_name = fields.String()
36
37
  field_name = fields.String()
38
+ field_value = fields.String()
37
39
  latest_date = fields.DateTime()
38
40
 
39
41
  @pre_load
@@ -54,6 +56,7 @@ class ConfigPatchSchema(Schema):
54
56
  latest_date = fields.DateTime(allow_none=False)
55
57
  table_name = fields.String(allow_none=False)
56
58
  field_name = fields.String(allow_none=False)
59
+ field_value = fields.String(allow_none=True)
57
60
 
58
61
  @pre_load
59
62
  def convert_string_to_datetime(self, in_data, **kwargs):
File without changes
@@ -0,0 +1,29 @@
1
+ from sqlalchemy import Column, Integer, String, Date
2
+
3
+ from ...database import Base
4
+
5
+
6
+ class Coverpage13FModel(Base):
7
+ __tablename__ = '13fcoverpage'
8
+
9
+ ACCESSION_NUMBER = Column(String(25), primary_key=True)
10
+ REPORTCALENDARORQUARTER = Column(Date, nullable=False)
11
+ ISAMENDMENT = Column(String(1))
12
+ AMENDMENTNO = Column(Integer)
13
+ AMENDMENTTYPE = Column(String(20))
14
+ CONFDENIEDEXPIRED = Column(String(1))
15
+ DATEDENIEDEXPIRED = Column(Date)
16
+ DATEREPORTED = Column(Date)
17
+ REASONFORNONCONFIDENTIALITY = Column(String(40))
18
+ FILINGMANAGER_NAME = Column(String(150), nullable=False)
19
+ FILINGMANAGER_STREET1 = Column(String(40))
20
+ FILINGMANAGER_STREET2 = Column(String(40))
21
+ FILINGMANAGER_CITY = Column(String(30))
22
+ FILINGMANAGER_STATEORCOUNTRY = Column(String(2))
23
+ FILINGMANAGER_ZIPCODE = Column(String(10))
24
+ REPORTTYPE = Column(String(30), nullable=False)
25
+ FORM13FFILENUMBER = Column(String(17))
26
+ CRDNUMBER = Column(String(9))
27
+ SECFILENUMBER = Column(String(17))
28
+ PROVIDEINFOFORINSTRUCTION5 = Column(String(1), nullable=False)
29
+ ADDITIONALINFORMATION = Column(String(4000))
@@ -0,0 +1,27 @@
1
+ from marshmallow import Schema, fields
2
+ from ...utils.utils import Safe13FDate, Safe13FInteger
3
+
4
+
5
+ class Coverpage13FSchema(Schema):
6
+ ACCESSION_NUMBER = fields.String(required=True)
7
+ REPORTCALENDARORQUARTER = Safe13FDate(required=True)
8
+ ISAMENDMENT = fields.String()
9
+ AMENDMENTNO = Safe13FInteger(allow_none=True)
10
+ AMENDMENTTYPE = fields.String()
11
+ CONFDENIEDEXPIRED = fields.String()
12
+ DATEDENIEDEXPIRED = Safe13FDate(allow_none=True)
13
+ DATEREPORTED = Safe13FDate(allow_none=True)
14
+ REASONFORNONCONFIDENTIALITY = fields.String()
15
+ FILINGMANAGER_NAME = fields.String(required=True)
16
+ FILINGMANAGER_STREET1 = fields.String()
17
+ FILINGMANAGER_STREET2 = fields.String()
18
+ FILINGMANAGER_CITY = fields.String()
19
+ FILINGMANAGER_STATEORCOUNTRY = fields.String()
20
+ FILINGMANAGER_ZIPCODE = fields.String()
21
+ REPORTTYPE = fields.String(required=True)
22
+ FORM13FFILENUMBER = fields.String()
23
+ CRDNUMBER = fields.String()
24
+ SECFILENUMBER = fields.String()
25
+ PROVIDEINFOFORINSTRUCTION5 = fields.String(required=True)
26
+ ADDITIONALINFORMATION = fields.String()
27
+
File without changes
@@ -0,0 +1,28 @@
1
+ from datetime import datetime
2
+ from sqlalchemy import String
3
+ from ...database import Base
4
+ from sqlalchemy import (
5
+ Column,
6
+ Integer,
7
+ DateTime,
8
+ ForeignKey,
9
+ )
10
+
11
+
12
+ class Cusip13FSubsidiaryModel(Base):
13
+ __tablename__ = 'cusip13f_subsidiaries'
14
+
15
+ id = Column(Integer, primary_key=True)
16
+ cusip = Column(String(9), nullable=False)
17
+ subsidiary_id = Column(
18
+ Integer,
19
+ ForeignKey('subsidiaries.id'),
20
+ nullable=False,
21
+ )
22
+ updated_at = Column(
23
+ DateTime,
24
+ nullable=False,
25
+ # https://stackoverflow.com/questions/58776476/why-doesnt-freezegun-work-with-sqlalchemy-default-values
26
+ default=lambda: datetime.utcnow(),
27
+ onupdate=lambda: datetime.utcnow(),
28
+ )
@@ -0,0 +1,14 @@
1
+ from marshmallow import (
2
+ Schema,
3
+ fields,
4
+ validate,
5
+ )
6
+
7
+
8
+ class Cusip13FSubsidiaryResourceSchema(Schema):
9
+ not_blank = validate.Length(min=1, error='Field cannot be blank')
10
+
11
+ id = fields.Integer(dump_only=True)
12
+ cusip = fields.String(required=True)
13
+ subsidiary_id = fields.Integer(required=True)
14
+ updated_at = fields.DateTime()
@@ -19,6 +19,8 @@ class DealModel(Base):
19
19
  id = Column(Integer, primary_key=True)
20
20
  announcement_date = Column(DateTime, nullable=False, index=True)
21
21
  round = Column(String(50), nullable=True)
22
+ deal_type = Column(String(128), nullable=True)
23
+ price = Column(String(50), nullable=True)
22
24
  deal_value = Column(DECIMAL(13, 2), nullable=False)
23
25
  currency = Column(String(10), nullable=True)
24
26
  company_sec_id = Column(
@@ -15,6 +15,8 @@ class DealResourceSchema(Schema):
15
15
  announcement_date = fields.DateTime(required=True)
16
16
  deal_value = fields.Decimal()
17
17
  round = fields.String(allow_none=True)
18
+ deal_type = fields.String(allow_none=True)
19
+ price = fields.String(allow_none=True)
18
20
  currency = fields.String(allow_none=True)
19
21
  company_sec_id = fields.Integer(allow_none=True)
20
22
  company_ous_id = fields.Integer(allow_none=True)
File without changes
@@ -0,0 +1,35 @@
1
+ from datetime import datetime
2
+
3
+ from sqlalchemy import (
4
+ Column,
5
+ Integer,
6
+ DateTime,
7
+ ForeignKey,
8
+ Boolean,
9
+ )
10
+
11
+ from ...database import Base
12
+
13
+
14
+ class DealAdvisorModel(Base):
15
+ __tablename__ = "deal_advisors"
16
+
17
+ id = Column(Integer, primary_key=True)
18
+ deal_id = Column(
19
+ Integer,
20
+ ForeignKey('deals.id'),
21
+ nullable=False,
22
+ )
23
+ advisor_id = Column(
24
+ Integer,
25
+ ForeignKey('investors.id'),
26
+ nullable=False,
27
+ )
28
+ is_deleted = Column(Boolean, nullable=True)
29
+ updated_at = Column(
30
+ DateTime,
31
+ nullable=False,
32
+ # https://stackoverflow.com/questions/58776476/why-doesnt-freezegun-work-with-sqlalchemy-default-values
33
+ default=lambda: datetime.utcnow(),
34
+ onupdate=lambda: datetime.utcnow(),
35
+ )
@@ -0,0 +1,15 @@
1
+ from marshmallow import (
2
+ Schema,
3
+ fields,
4
+ validate,
5
+ )
6
+
7
+
8
+ class DealAdvisorResourceSchema(Schema):
9
+ not_blank = validate.Length(min=1, error='Field cannot be blank')
10
+
11
+ id = fields.Integer(dump_only=True)
12
+ deal_id = fields.Integer(required=True)
13
+ advisor_id = fields.Integer(required=True)
14
+ is_deleted = fields.Boolean(allow_none=True)
15
+ updated_at = fields.DateTime()
@@ -25,6 +25,7 @@ class DealInvestorModel(Base):
25
25
  ForeignKey('investors.id'),
26
26
  nullable=False,
27
27
  )
28
+ lead = Column(Boolean, nullable=True)
28
29
  is_deleted = Column(Boolean, nullable=True)
29
30
  updated_at = Column(
30
31
  DateTime,
@@ -11,5 +11,6 @@ class DealInvestorResourceSchema(Schema):
11
11
  id = fields.Integer(dump_only=True)
12
12
  deal_id = fields.Integer(required=True)
13
13
  investor_id = fields.Integer(required=True)
14
+ lead = fields.Boolean(allow_none=True)
14
15
  is_deleted = fields.Boolean(allow_none=True)
15
16
  updated_at = fields.DateTime()
File without changes
@@ -0,0 +1,33 @@
1
+ from datetime import datetime
2
+
3
+ from sqlalchemy import (
4
+ Column,
5
+ Integer,
6
+ DateTime,
7
+ ForeignKey,
8
+ )
9
+
10
+ from ...database import Base
11
+
12
+
13
+ class DealTypeModel(Base):
14
+ __tablename__ = "deal_types"
15
+
16
+ id = Column(Integer, primary_key=True)
17
+ deal_id = Column(
18
+ Integer,
19
+ ForeignKey('deals.id'),
20
+ nullable=False,
21
+ )
22
+ deal_type_id = Column(
23
+ Integer,
24
+ ForeignKey('financing_deal_types.id'),
25
+ nullable=False,
26
+ )
27
+ updated_at = Column(
28
+ DateTime,
29
+ nullable=False,
30
+ # https://stackoverflow.com/questions/58776476/why-doesnt-freezegun-work-with-sqlalchemy-default-values
31
+ default=lambda: datetime.utcnow(),
32
+ onupdate=lambda: datetime.utcnow(),
33
+ )
@@ -0,0 +1,14 @@
1
+ from marshmallow import (
2
+ Schema,
3
+ fields,
4
+ validate,
5
+ )
6
+
7
+
8
+ class DealTypeResourceSchema(Schema):
9
+ not_blank = validate.Length(min=1, error='Field cannot be blank')
10
+
11
+ id = fields.Integer(dump_only=True)
12
+ deal_id = fields.Integer(required=True)
13
+ deal_type_id = fields.Integer(required=True)
14
+ updated_at = fields.DateTime()
File without changes
@@ -0,0 +1,35 @@
1
+ from datetime import datetime
2
+
3
+ from sqlalchemy import (
4
+ Column,
5
+ Integer,
6
+ DateTime,
7
+ ForeignKey,
8
+ Boolean,
9
+ )
10
+
11
+ from ...database import Base
12
+
13
+
14
+ class DealUnderwriterModel(Base):
15
+ __tablename__ = "deal_underwriters"
16
+
17
+ id = Column(Integer, primary_key=True)
18
+ deal_id = Column(
19
+ Integer,
20
+ ForeignKey('deals.id'),
21
+ nullable=False,
22
+ )
23
+ underwriter_id = Column(
24
+ Integer,
25
+ ForeignKey('investors.id'),
26
+ nullable=False,
27
+ )
28
+ is_deleted = Column(Boolean, nullable=True)
29
+ updated_at = Column(
30
+ DateTime,
31
+ nullable=False,
32
+ # https://stackoverflow.com/questions/58776476/why-doesnt-freezegun-work-with-sqlalchemy-default-values
33
+ default=lambda: datetime.utcnow(),
34
+ onupdate=lambda: datetime.utcnow(),
35
+ )
@@ -0,0 +1,15 @@
1
+ from marshmallow import (
2
+ Schema,
3
+ fields,
4
+ validate,
5
+ )
6
+
7
+
8
+ class DealUnderwriterResourceSchema(Schema):
9
+ not_blank = validate.Length(min=1, error='Field cannot be blank')
10
+
11
+ id = fields.Integer(dump_only=True)
12
+ deal_id = fields.Integer(required=True)
13
+ underwriter_id = fields.Integer(required=True)
14
+ is_deleted = fields.Boolean(allow_none=True)
15
+ updated_at = fields.DateTime()
@@ -0,0 +1,14 @@
1
+ """DeepResearchAgenticUnit - Self-contained research modules for v2 architecture."""
2
+
3
+ from .models import DeepResearchAgenticUnitModel, UnitStatusEnum
4
+ from .schemas import (
5
+ DeepResearchAgenticUnitResourceSchema,
6
+ DeepResearchAgenticUnitCreateSchema,
7
+ )
8
+
9
+ __all__ = [
10
+ "DeepResearchAgenticUnitModel",
11
+ "UnitStatusEnum",
12
+ "DeepResearchAgenticUnitResourceSchema",
13
+ "DeepResearchAgenticUnitCreateSchema",
14
+ ]
@@ -0,0 +1,123 @@
1
+ """Models for Deep Research Agentic Units - Self-contained research modules."""
2
+ import enum
3
+ from datetime import datetime
4
+
5
+ from sqlalchemy import (
6
+ Column,
7
+ DateTime,
8
+ Integer,
9
+ String,
10
+ Text,
11
+ Boolean,
12
+ ForeignKey,
13
+ Enum,
14
+ Float,
15
+ )
16
+ from sqlalchemy.orm import relationship
17
+
18
+ from ...database import Base
19
+
20
+
21
+ class UnitStatusEnum(enum.Enum):
22
+ """Status enum for agentic units."""
23
+ PENDING = "PENDING"
24
+ PLANNING = "PLANNING" # Internal DAG being planned
25
+ EXECUTING = "EXECUTING" # Internal tasks running
26
+ COMPLETED = "COMPLETED"
27
+ FAILED = "FAILED"
28
+ SKIPPED = "SKIPPED"
29
+
30
+
31
+ class DeepResearchAgenticUnitModel(Base):
32
+ """
33
+ Model for Deep Research Agentic Units.
34
+
35
+ An Agentic Unit is a self-contained research module that answers
36
+ ONE coherent objective using any combination of internal tasks
37
+ (DISCOVERY, INVESTIGATION, SMART_GRID, AGGREGATION).
38
+
39
+ Part of the V2 architecture that replaces rigid upfront DAG decomposition
40
+ with an adaptive Plan -> Execute -> Evaluate loop.
41
+ """
42
+
43
+ __tablename__ = "deep_research_agentic_units"
44
+
45
+ id = Column(Integer, primary_key=True)
46
+
47
+ # Parent session
48
+ session_id = Column(
49
+ Integer,
50
+ ForeignKey("deep_research_sessions.id"),
51
+ nullable=False,
52
+ )
53
+
54
+ # Identity
55
+ unit_id = Column(String(50), nullable=False) # Logical ID: "A", "B", "C", etc.
56
+ unit_label = Column(String(255), nullable=True) # Human-readable label
57
+ objective = Column(Text, nullable=False) # What this unit answers
58
+
59
+ # DAG Structure (outer DAG - dependencies between units)
60
+ depends_on = Column(Text, nullable=True) # JSON: ["A", "B"] - other unit_ids
61
+ wave_number = Column(Integer, default=0) # Computed from dependencies
62
+
63
+ # Internal Structure (inner DAG - tasks within this unit)
64
+ internal_dag = Column(Text, nullable=True) # JSON: List of internal tasks
65
+ internal_dag_planned = Column(Boolean, default=False)
66
+
67
+ # Execution State
68
+ status = Column(
69
+ "status",
70
+ Enum(UnitStatusEnum),
71
+ default=UnitStatusEnum.PENDING,
72
+ nullable=False,
73
+ )
74
+
75
+ # Outputs (populated after execution)
76
+ result_s3_key = Column(String(512), nullable=True)
77
+ result_summary = Column(Text, nullable=True) # Concise answer to objective
78
+ entities_discovered = Column(Text, nullable=True) # JSON: Entities found (if any)
79
+ confidence = Column(Float, nullable=True) # 0-1 confidence in results
80
+ gaps_identified = Column(Text, nullable=True) # JSON: What couldn't be answered
81
+
82
+ # Metrics
83
+ tokens_used = Column(Integer, default=0)
84
+ tasks_completed = Column(Integer, default=0)
85
+ tasks_failed = Column(Integer, default=0)
86
+
87
+ # Context from dependencies (populated before execution)
88
+ input_context = Column(Text, nullable=True) # JSON: Summaries from dependency units
89
+
90
+ # Timestamps
91
+ created_at = Column(
92
+ DateTime,
93
+ nullable=False,
94
+ default=lambda: datetime.utcnow(),
95
+ )
96
+ started_at = Column(DateTime, nullable=True)
97
+ completed_at = Column(DateTime, nullable=True)
98
+ updated_at = Column(
99
+ DateTime,
100
+ nullable=False,
101
+ default=lambda: datetime.utcnow(),
102
+ onupdate=lambda: datetime.utcnow(),
103
+ )
104
+
105
+ # Error handling
106
+ error_message = Column(Text, nullable=True)
107
+ retry_count = Column(Integer, default=0)
108
+
109
+ # Soft delete
110
+ is_deleted = Column(Boolean, nullable=True)
111
+
112
+ # ORM Relationships
113
+ session = relationship(
114
+ "DeepResearchSessionModel",
115
+ back_populates="agentic_units",
116
+ )
117
+
118
+ internal_tasks = relationship(
119
+ "DeepResearchSubTaskModel",
120
+ primaryjoin="and_(DeepResearchAgenticUnitModel.id==DeepResearchSubTaskModel.agentic_unit_id, "
121
+ "or_(DeepResearchSubTaskModel.is_deleted==False, DeepResearchSubTaskModel.is_deleted==None))",
122
+ back_populates="agentic_unit",
123
+ )
@@ -0,0 +1,50 @@
1
+ """Marshmallow schemas for Deep Research Agentic Units."""
2
+
3
+ from marshmallow import Schema, fields, EXCLUDE
4
+
5
+
6
+ class DeepResearchAgenticUnitResourceSchema(Schema):
7
+ """Schema for reading agentic unit resources."""
8
+
9
+ class Meta:
10
+ unknown = EXCLUDE
11
+
12
+ id = fields.Integer(dump_only=True)
13
+ session_id = fields.Integer(required=True)
14
+ unit_id = fields.String(required=True)
15
+ unit_label = fields.String(allow_none=True)
16
+ objective = fields.String(required=True)
17
+ depends_on = fields.String(allow_none=True) # JSON string
18
+ wave_number = fields.Integer(allow_none=True)
19
+ internal_dag = fields.String(allow_none=True) # JSON string
20
+ internal_dag_planned = fields.Boolean(allow_none=True)
21
+ status = fields.String(allow_none=True)
22
+ result_s3_key = fields.String(allow_none=True)
23
+ result_summary = fields.String(allow_none=True)
24
+ entities_discovered = fields.String(allow_none=True) # JSON string
25
+ confidence = fields.Float(allow_none=True)
26
+ gaps_identified = fields.String(allow_none=True) # JSON string
27
+ tokens_used = fields.Integer(allow_none=True)
28
+ tasks_completed = fields.Integer(allow_none=True)
29
+ tasks_failed = fields.Integer(allow_none=True)
30
+ input_context = fields.String(allow_none=True) # JSON string
31
+ created_at = fields.DateTime(dump_only=True)
32
+ started_at = fields.DateTime(allow_none=True)
33
+ completed_at = fields.DateTime(allow_none=True)
34
+ updated_at = fields.DateTime(dump_only=True)
35
+ error_message = fields.String(allow_none=True)
36
+ retry_count = fields.Integer(allow_none=True)
37
+
38
+
39
+ class DeepResearchAgenticUnitCreateSchema(Schema):
40
+ """Schema for creating agentic units."""
41
+
42
+ class Meta:
43
+ unknown = EXCLUDE
44
+
45
+ session_id = fields.Integer(required=True)
46
+ unit_id = fields.String(required=True)
47
+ unit_label = fields.String(allow_none=True)
48
+ objective = fields.String(required=True)
49
+ depends_on = fields.String(allow_none=True) # JSON string of unit_ids
50
+ wave_number = fields.Integer(allow_none=True, load_default=0)
@@ -0,0 +1,20 @@
1
+ """Deep Research Session model and schema exports."""
2
+ from .models import (
3
+ DeepResearchSessionModel,
4
+ DeepResearchStatusEnum,
5
+ HITLStatusEnum,
6
+ )
7
+ from .schemas import (
8
+ DeepResearchSessionResourceSchema,
9
+ DeepResearchSessionCreateSchema,
10
+ DeepResearchSessionProgressSchema,
11
+ )
12
+
13
+ __all__ = [
14
+ "DeepResearchSessionModel",
15
+ "DeepResearchStatusEnum",
16
+ "HITLStatusEnum",
17
+ "DeepResearchSessionResourceSchema",
18
+ "DeepResearchSessionCreateSchema",
19
+ "DeepResearchSessionProgressSchema",
20
+ ]