sea-dev 1.0.0

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 (784) hide show
  1. package/.claude/tasks/README.md +89 -0
  2. package/.cursor/rules/commits.mdc +31 -0
  3. package/.cursor/rules/general.mdc +84 -0
  4. package/.github/workflows/ci-cd.yml +141 -0
  5. package/CLAUDE.md +337 -0
  6. package/README.md +129 -0
  7. package/apps/api/.prettierignore +6 -0
  8. package/apps/api/.prettierrc.js +3 -0
  9. package/apps/api/dotenvx-safe.sh +11 -0
  10. package/apps/api/eslint.config.mjs +3 -0
  11. package/apps/api/package.json +58 -0
  12. package/apps/api/src/clients/posthog.ts +25 -0
  13. package/apps/api/src/dal/submission.ts +59 -0
  14. package/apps/api/src/errors.ts +55 -0
  15. package/apps/api/src/index.ts +21 -0
  16. package/apps/api/src/lib/channel.ts +28 -0
  17. package/apps/api/src/lib/config.ts +9 -0
  18. package/apps/api/src/lib/fmt.test.ts +9 -0
  19. package/apps/api/src/lib/fmt.ts +62 -0
  20. package/apps/api/src/lib/invariant.ts +23 -0
  21. package/apps/api/src/middleware/auth.ts +66 -0
  22. package/apps/api/src/routes/index.ts +20 -0
  23. package/apps/api/src/routes/v2/chat/handlers.ts +693 -0
  24. package/apps/api/src/routes/v2/chat/index.ts +257 -0
  25. package/apps/api/src/routes/v2/chat/schemas.ts +43 -0
  26. package/apps/api/src/routes/v2/deals/handlers.ts +64 -0
  27. package/apps/api/src/routes/v2/deals/index.ts +88 -0
  28. package/apps/api/src/routes/v2/deals/schemas.ts +38 -0
  29. package/apps/api/src/routes/v2/forms/handlers.ts +415 -0
  30. package/apps/api/src/routes/v2/forms/index.ts +382 -0
  31. package/apps/api/src/routes/v2/forms/schemas.ts +243 -0
  32. package/apps/api/src/routes/v2/index.ts +19 -0
  33. package/apps/api/src/routes/v2/pipelines/handlers.ts +261 -0
  34. package/apps/api/src/routes/v2/pipelines/index.ts +224 -0
  35. package/apps/api/src/routes/v2/pipelines/schemas.ts +173 -0
  36. package/apps/api/src/routes/v2/submissions/handlers.ts +555 -0
  37. package/apps/api/src/routes/v2/submissions/index.ts +366 -0
  38. package/apps/api/src/routes/v2/submissions/schemas.ts +233 -0
  39. package/apps/api/src/routes/v2/workflows/handlers.ts +81 -0
  40. package/apps/api/src/routes/v2/workflows/index.ts +88 -0
  41. package/apps/api/src/routes/v2/workflows/schemas.ts +40 -0
  42. package/apps/api/src/server.ts +146 -0
  43. package/apps/api/src/static/favicon.ico +0 -0
  44. package/apps/api/src/types/api.ts +14 -0
  45. package/apps/api/src/types/result.ts +3 -0
  46. package/apps/api/tsconfig.json +22 -0
  47. package/apps/api/vite.config.ts +28 -0
  48. package/apps/api/vitest.config.ts +14 -0
  49. package/apps/conversion-worker/Dockerfile +59 -0
  50. package/apps/conversion-worker/package.json +31 -0
  51. package/apps/conversion-worker/src/lib/config.ts +7 -0
  52. package/apps/conversion-worker/src/main.ts +22 -0
  53. package/apps/conversion-worker/src/workflows/convert-pptx.ts +116 -0
  54. package/apps/conversion-worker/tsconfig.json +27 -0
  55. package/apps/conversion-worker/vite.config.ts +33 -0
  56. package/apps/main/.prettierignore +6 -0
  57. package/apps/main/.prettierrc.js +3 -0
  58. package/apps/main/CLAUDE.md +245 -0
  59. package/apps/main/Procfile +1 -0
  60. package/apps/main/README.md +193 -0
  61. package/apps/main/db-tests.jsonl +116 -0
  62. package/apps/main/dotenvx-safe.sh +11 -0
  63. package/apps/main/drizzle/meta/_journal.json +1 -0
  64. package/apps/main/drizzle.config.ts +25 -0
  65. package/apps/main/eslint.config.mjs +3 -0
  66. package/apps/main/generate-routes.mjs +5 -0
  67. package/apps/main/package.json +131 -0
  68. package/apps/main/playwright.config.ts +23 -0
  69. package/apps/main/postcss.config.ts +5 -0
  70. package/apps/main/public/bg-dark.svg +10 -0
  71. package/apps/main/public/bg.svg +10 -0
  72. package/apps/main/public/favicon.ico +0 -0
  73. package/apps/main/run.sh +146 -0
  74. package/apps/main/scripts/browser.ts +14 -0
  75. package/apps/main/scripts/db-test-cov.ts +277 -0
  76. package/apps/main/scripts/login.ts +78 -0
  77. package/apps/main/scripts/repl.ts +61 -0
  78. package/apps/main/src/_foo.ts +31 -0
  79. package/apps/main/src/_tests/db.test.ts +19 -0
  80. package/apps/main/src/_tests/mock-db.ts +60 -0
  81. package/apps/main/src/client.tsx +13 -0
  82. package/apps/main/src/clients/loops.ts +13 -0
  83. package/apps/main/src/clients/polar.ts +12 -0
  84. package/apps/main/src/clients/posthog.ts +12 -0
  85. package/apps/main/src/components/chat/chat-context.tsx +99 -0
  86. package/apps/main/src/components/chat/chat-messages.tsx +184 -0
  87. package/apps/main/src/components/chat/chat-status.tsx +140 -0
  88. package/apps/main/src/components/chat/chat.tsx +458 -0
  89. package/apps/main/src/components/chat/citation-modal.tsx +54 -0
  90. package/apps/main/src/components/cta.tsx +21 -0
  91. package/apps/main/src/components/data-display/derived.tsx +40 -0
  92. package/apps/main/src/components/data-display/group-single.tsx +57 -0
  93. package/apps/main/src/components/data-display/group-table.tsx +165 -0
  94. package/apps/main/src/components/data-display/group-wrapper.tsx +54 -0
  95. package/apps/main/src/components/data-display/item.tsx +678 -0
  96. package/apps/main/src/components/error.tsx +45 -0
  97. package/apps/main/src/components/forms/error.tsx +22 -0
  98. package/apps/main/src/components/grid.tsx +7 -0
  99. package/apps/main/src/components/header/container.tsx +73 -0
  100. package/apps/main/src/components/header/header-bar.tsx +102 -0
  101. package/apps/main/src/components/modals/copy-display.tsx +37 -0
  102. package/apps/main/src/components/modals/copy-form.tsx +152 -0
  103. package/apps/main/src/components/modals/duplicate-workflow.tsx +89 -0
  104. package/apps/main/src/components/modals/field-correction.tsx +323 -0
  105. package/apps/main/src/components/modals/form-viewer.tsx +126 -0
  106. package/apps/main/src/components/modals/modals.tsx +44 -0
  107. package/apps/main/src/components/modals/new-deal.tsx +78 -0
  108. package/apps/main/src/components/modals/new-form.tsx +133 -0
  109. package/apps/main/src/components/modals/new-pipeline.tsx +70 -0
  110. package/apps/main/src/components/modals/new-submission.tsx +321 -0
  111. package/apps/main/src/components/modals/new-workflow.tsx +342 -0
  112. package/apps/main/src/components/modals/transformation-sources-modal.tsx +157 -0
  113. package/apps/main/src/components/modals/view-report.tsx +193 -0
  114. package/apps/main/src/components/not-found.tsx +14 -0
  115. package/apps/main/src/components/search/search-bar.tsx +178 -0
  116. package/apps/main/src/components/sheet-selector.tsx +135 -0
  117. package/apps/main/src/components/side-panel/doc-list.tsx +480 -0
  118. package/apps/main/src/components/sidebar/admin-sidebar.tsx +75 -0
  119. package/apps/main/src/components/sidebar/app-sidebar.tsx +417 -0
  120. package/apps/main/src/components/sidebar/model-select.tsx +134 -0
  121. package/apps/main/src/components/sidebar/settings-sidebar.tsx +132 -0
  122. package/apps/main/src/components/sidebar/sidebar-right.tsx +22 -0
  123. package/apps/main/src/components/sidebar/stop-impersonate.tsx +21 -0
  124. package/apps/main/src/components/svg/loading.tsx +33 -0
  125. package/apps/main/src/components/theme-selector.tsx +43 -0
  126. package/apps/main/src/components/unsaved-badge.tsx +19 -0
  127. package/apps/main/src/components/upload/file-upload.tsx +354 -0
  128. package/apps/main/src/fns/submission-groups.ts +28 -0
  129. package/apps/main/src/fns/submission-items.ts +11 -0
  130. package/apps/main/src/global-middleware.ts +16 -0
  131. package/apps/main/src/hooks/use-update-state.ts +18 -0
  132. package/apps/main/src/lib/auth-client.ts +16 -0
  133. package/apps/main/src/lib/auth.test.ts +359 -0
  134. package/apps/main/src/lib/auth.ts +144 -0
  135. package/apps/main/src/lib/billing.ts +23 -0
  136. package/apps/main/src/lib/config-iso.ts +76 -0
  137. package/apps/main/src/lib/config.ts +61 -0
  138. package/apps/main/src/lib/excel.ts +16 -0
  139. package/apps/main/src/lib/feedback-cache.ts +70 -0
  140. package/apps/main/src/lib/logger.ts +44 -0
  141. package/apps/main/src/lib/models.ts +22 -0
  142. package/apps/main/src/lib/not-found.ts +17 -0
  143. package/apps/main/src/lib/pdf.ts +16 -0
  144. package/apps/main/src/lib/tabularize.ts +54 -0
  145. package/apps/main/src/lib/utils.ts +10 -0
  146. package/apps/main/src/lib/zfd.ts +217 -0
  147. package/apps/main/src/middleware.ts +55 -0
  148. package/apps/main/src/routeTree.gen.ts +1255 -0
  149. package/apps/main/src/router.tsx +24 -0
  150. package/apps/main/src/routes/__root.tsx +92 -0
  151. package/apps/main/src/routes/_authed/_app/(dashboard)/index.tsx +227 -0
  152. package/apps/main/src/routes/_authed/_app/agents/$agentId/config.tsx +224 -0
  153. package/apps/main/src/routes/_authed/_app/agents/$agentId/index.tsx +206 -0
  154. package/apps/main/src/routes/_authed/_app/agents/-components/agent-actions-menu.tsx +94 -0
  155. package/apps/main/src/routes/_authed/_app/agents/-components/agent-artifacts.tsx +153 -0
  156. package/apps/main/src/routes/_authed/_app/agents/-components/agent-chat.tsx +220 -0
  157. package/apps/main/src/routes/_authed/_app/agents/-components/agent-history-menu.tsx +81 -0
  158. package/apps/main/src/routes/_authed/_app/agents/-components/agent-model-select.tsx +84 -0
  159. package/apps/main/src/routes/_authed/_app/agents/-components/agent-relevant-items.tsx +226 -0
  160. package/apps/main/src/routes/_authed/_app/agents/-components/agent-upload-button.tsx +298 -0
  161. package/apps/main/src/routes/_authed/_app/agents/-components/context-modal.tsx +187 -0
  162. package/apps/main/src/routes/_authed/_app/agents/-fns.ts +560 -0
  163. package/apps/main/src/routes/_authed/_app/agents/index.tsx +65 -0
  164. package/apps/main/src/routes/_authed/_app/deals/$dealId/$subId/-components/citation-tree.tsx +268 -0
  165. package/apps/main/src/routes/_authed/_app/deals/$dealId/$subId.tsx +655 -0
  166. package/apps/main/src/routes/_authed/_app/deals/$dealId/-components/doc-loading.tsx +37 -0
  167. package/apps/main/src/routes/_authed/_app/deals/$dealId/-components/share-link.tsx +42 -0
  168. package/apps/main/src/routes/_authed/_app/deals/$dealId/-components/submission-card.tsx +89 -0
  169. package/apps/main/src/routes/_authed/_app/deals/$dealId/-components/submission-filter.tsx +193 -0
  170. package/apps/main/src/routes/_authed/_app/deals/$dealId/-components/submissions.tsx +36 -0
  171. package/apps/main/src/routes/_authed/_app/deals/$dealId/-components/summary.tsx +82 -0
  172. package/apps/main/src/routes/_authed/_app/deals/$dealId/-components/upload-doc.tsx +120 -0
  173. package/apps/main/src/routes/_authed/_app/deals/$dealId/-fns.ts +653 -0
  174. package/apps/main/src/routes/_authed/_app/deals/$dealId/index.tsx +259 -0
  175. package/apps/main/src/routes/_authed/_app/deals/$dealId/route.tsx +29 -0
  176. package/apps/main/src/routes/_authed/_app/deals/index.tsx +104 -0
  177. package/apps/main/src/routes/_authed/_app/feedback/index.tsx +639 -0
  178. package/apps/main/src/routes/_authed/_app/feedback/insights.tsx +250 -0
  179. package/apps/main/src/routes/_authed/_app/pipelines/$pipelineId/$runId/-components/blockers-panel.tsx +260 -0
  180. package/apps/main/src/routes/_authed/_app/pipelines/$pipelineId/$runId/-components/manual-input-panel.tsx +301 -0
  181. package/apps/main/src/routes/_authed/_app/pipelines/$pipelineId/$runId/-components/submission-selector-modal.tsx +143 -0
  182. package/apps/main/src/routes/_authed/_app/pipelines/$pipelineId/$runId/-components/upload-doc.tsx +120 -0
  183. package/apps/main/src/routes/_authed/_app/pipelines/$pipelineId/$runId/index.tsx +1485 -0
  184. package/apps/main/src/routes/_authed/_app/pipelines/$pipelineId/-components/dag-view.tsx +296 -0
  185. package/apps/main/src/routes/_authed/_app/pipelines/$pipelineId/-components/step-config-modal.tsx +634 -0
  186. package/apps/main/src/routes/_authed/_app/pipelines/$pipelineId/index.tsx +911 -0
  187. package/apps/main/src/routes/_authed/_app/pipelines/-fns.ts +510 -0
  188. package/apps/main/src/routes/_authed/_app/pipelines/index.tsx +103 -0
  189. package/apps/main/src/routes/_authed/_app/reports/$reportId.tsx +397 -0
  190. package/apps/main/src/routes/_authed/_app/reports/-fns.ts +11 -0
  191. package/apps/main/src/routes/_authed/_app/reports/index.tsx +22 -0
  192. package/apps/main/src/routes/_authed/_app/route.tsx +48 -0
  193. package/apps/main/src/routes/_authed/_app/submissions/-columns.tsx +161 -0
  194. package/apps/main/src/routes/_authed/_app/submissions/-fns.ts +128 -0
  195. package/apps/main/src/routes/_authed/_app/submissions/index.tsx +190 -0
  196. package/apps/main/src/routes/_authed/_app/workflows/$wfSlug/$formId.tsx +542 -0
  197. package/apps/main/src/routes/_authed/_app/workflows/$wfSlug/-components/derived.tsx +154 -0
  198. package/apps/main/src/routes/_authed/_app/workflows/$wfSlug/-components/field.tsx +369 -0
  199. package/apps/main/src/routes/_authed/_app/workflows/$wfSlug/-components/group.tsx +475 -0
  200. package/apps/main/src/routes/_authed/_app/workflows/$wfSlug/index.tsx +263 -0
  201. package/apps/main/src/routes/_authed/_app/workflows/$wfSlug/route.tsx +33 -0
  202. package/apps/main/src/routes/_authed/_app/workflows/-components/form-card.tsx +315 -0
  203. package/apps/main/src/routes/_authed/_app/workflows/index.tsx +86 -0
  204. package/apps/main/src/routes/_authed/admin/index.tsx +12 -0
  205. package/apps/main/src/routes/_authed/admin/route.tsx +42 -0
  206. package/apps/main/src/routes/_authed/admin/users/-columns.tsx +124 -0
  207. package/apps/main/src/routes/_authed/admin/users/-fns.ts +30 -0
  208. package/apps/main/src/routes/_authed/admin/users/index.tsx +29 -0
  209. package/apps/main/src/routes/_authed/catchNotFound.tsx +114 -0
  210. package/apps/main/src/routes/_authed/redirects/forms.$id.tsx +29 -0
  211. package/apps/main/src/routes/_authed/redirects/submissions.$id.tsx +27 -0
  212. package/apps/main/src/routes/_authed/redirects/workflows.$id.tsx +27 -0
  213. package/apps/main/src/routes/_authed/route.tsx +51 -0
  214. package/apps/main/src/routes/_authed/settings/-components/new-api-key.tsx +85 -0
  215. package/apps/main/src/routes/_authed/settings/-components/new-invite.tsx +100 -0
  216. package/apps/main/src/routes/_authed/settings/analytics.tsx +1710 -0
  217. package/apps/main/src/routes/_authed/settings/billing/-components/price-table.tsx +129 -0
  218. package/apps/main/src/routes/_authed/settings/billing/-fns.ts +76 -0
  219. package/apps/main/src/routes/_authed/settings/billing/index.tsx +119 -0
  220. package/apps/main/src/routes/_authed/settings/embed.tsx +337 -0
  221. package/apps/main/src/routes/_authed/settings/index.tsx +12 -0
  222. package/apps/main/src/routes/_authed/settings/keys.tsx +157 -0
  223. package/apps/main/src/routes/_authed/settings/members.tsx +276 -0
  224. package/apps/main/src/routes/_authed/settings/route.tsx +22 -0
  225. package/apps/main/src/routes/_authed/settings/user.tsx +87 -0
  226. package/apps/main/src/routes/_authed/settings/workspace.tsx +206 -0
  227. package/apps/main/src/routes/_public/-components/sign-in-up.tsx +96 -0
  228. package/apps/main/src/routes/_public/embedded.tsx +57 -0
  229. package/apps/main/src/routes/_public/invite.$inviteId.tsx +143 -0
  230. package/apps/main/src/routes/_public/no-access.tsx +38 -0
  231. package/apps/main/src/routes/_public/no-invite.tsx +39 -0
  232. package/apps/main/src/routes/_public/otp.tsx +103 -0
  233. package/apps/main/src/routes/_public/route.tsx +15 -0
  234. package/apps/main/src/routes/_public/sign-in.tsx +111 -0
  235. package/apps/main/src/routes/_public/sign-up.tsx +114 -0
  236. package/apps/main/src/routes/api/auth/$.ts +11 -0
  237. package/apps/main/src/routes/api/billing/paid.ts +42 -0
  238. package/apps/main/src/routes/api/billing/webhooks.ts +70 -0
  239. package/apps/main/src/routes/api/chat/agent.ts +40 -0
  240. package/apps/main/src/routes/api/chat/key.ts +42 -0
  241. package/apps/main/src/routes/api/chat/member.ts +35 -0
  242. package/apps/main/src/routes/api/test/index.ts +19 -0
  243. package/apps/main/src/server.tsx +6 -0
  244. package/apps/main/src/styles/app.css +23 -0
  245. package/apps/main/src/vite-env.d.ts +7 -0
  246. package/apps/main/test.http +6 -0
  247. package/apps/main/tsconfig.json +17 -0
  248. package/apps/main/vite.config.ts +24 -0
  249. package/apps/main/vitest.config.js +17 -0
  250. package/apps/mcp/README.md +171 -0
  251. package/apps/mcp/eslint.config.mjs +3 -0
  252. package/apps/mcp/package.json +37 -0
  253. package/apps/mcp/src/index.ts +414 -0
  254. package/apps/mcp/tsconfig.json +19 -0
  255. package/apps/mcp/vite.config.ts +22 -0
  256. package/apps/posthog-proxy/index.html +9 -0
  257. package/apps/workers/.prettierignore +7 -0
  258. package/apps/workers/.prettierrc.js +3 -0
  259. package/apps/workers/dotenvx-safe.sh +11 -0
  260. package/apps/workers/eslint.config.mjs +3 -0
  261. package/apps/workers/package.json +65 -0
  262. package/apps/workers/src/lib/config.ts +7 -0
  263. package/apps/workers/src/lib/messages.ts +0 -0
  264. package/apps/workers/src/lib/posthog.ts +25 -0
  265. package/apps/workers/src/main.ts +58 -0
  266. package/apps/workers/src/workflows/extraction.ts +866 -0
  267. package/apps/workers/src/workflows/index.ts +3 -0
  268. package/apps/workers/src/workflows/pipeline-dag.ts +210 -0
  269. package/apps/workers/src/workflows/pipeline-steps.ts +1393 -0
  270. package/apps/workers/tsconfig.json +16 -0
  271. package/apps/workers/vite.config.ts +35 -0
  272. package/docs/CHANGELOG.md +84 -0
  273. package/docs/agent-templates-and-runs.md +859 -0
  274. package/docs/aws-migration-plan.md +267 -0
  275. package/docs/impl-p0-form-builder-improvements.md +683 -0
  276. package/docs/on-prem-deployment-spec.docx +0 -0
  277. package/docs/on-prem-deployment-spec.md +378 -0
  278. package/docs/prd-form-builder-strategy.md +1120 -0
  279. package/docs/widget-ng-apf-packaging-spec.md +43 -0
  280. package/infra/k8s/charts/seadotdev/Chart.yaml +6 -0
  281. package/infra/k8s/charts/seadotdev/templates/_helpers.tpl +27 -0
  282. package/infra/k8s/charts/seadotdev/templates/api-v2.yaml +105 -0
  283. package/infra/k8s/charts/seadotdev/templates/external-secrets.yaml +83 -0
  284. package/infra/k8s/charts/seadotdev/templates/ingress.yaml +54 -0
  285. package/infra/k8s/charts/seadotdev/templates/main-app.yaml +104 -0
  286. package/infra/k8s/charts/seadotdev/templates/workers.yaml +182 -0
  287. package/infra/k8s/charts/seadotdev/values.yaml +143 -0
  288. package/infra/terraform/main.tf +399 -0
  289. package/libs/ai/.prettierignore +2 -0
  290. package/libs/ai/.prettierrc.js +5 -0
  291. package/libs/ai/README.md +139 -0
  292. package/libs/ai/eslint.config.mjs +3 -0
  293. package/libs/ai/package.json +42 -0
  294. package/libs/ai/src/index.ts +5 -0
  295. package/libs/ai/src/models.ts +19 -0
  296. package/libs/ai/src/rag/index.ts +1 -0
  297. package/libs/ai/src/rag/rag.test.ts +99 -0
  298. package/libs/ai/src/rag/rag.ts +510 -0
  299. package/libs/ai/tsconfig.json +21 -0
  300. package/libs/ai/vite.config.ts +38 -0
  301. package/libs/cache/.prettierignore +2 -0
  302. package/libs/cache/eslint.config.mjs +3 -0
  303. package/libs/cache/package.json +35 -0
  304. package/libs/cache/src/feedback.ts +77 -0
  305. package/libs/cache/src/index.ts +2 -0
  306. package/libs/cache/tsconfig.json +19 -0
  307. package/libs/cache/vite.config.ts +36 -0
  308. package/libs/clients/.prettierignore +6 -0
  309. package/libs/clients/eslint.config.mjs +3 -0
  310. package/libs/clients/package.json +59 -0
  311. package/libs/clients/src/azure.ts +249 -0
  312. package/libs/clients/src/gcp.ts +220 -0
  313. package/libs/clients/src/hatchet.ts +86 -0
  314. package/libs/clients/src/index.ts +8 -0
  315. package/libs/clients/src/loops.ts +86 -0
  316. package/libs/clients/src/polar.ts +77 -0
  317. package/libs/clients/src/posthog.ts +55 -0
  318. package/libs/clients/tsconfig.json +19 -0
  319. package/libs/clients/vite.config.ts +35 -0
  320. package/libs/config/.prettierignore +6 -0
  321. package/libs/config/.prettierrc.js +12 -0
  322. package/libs/config/eslint.config.mjs +3 -0
  323. package/libs/config/package.json +50 -0
  324. package/libs/config/src/azure.ts +54 -0
  325. package/libs/config/src/db.ts +18 -0
  326. package/libs/config/src/gcp.ts +53 -0
  327. package/libs/config/src/google.ts +17 -0
  328. package/libs/config/src/hatchet.ts +20 -0
  329. package/libs/config/src/index.ts +108 -0
  330. package/libs/config/src/llm.ts +17 -0
  331. package/libs/config/src/polar.ts +24 -0
  332. package/libs/config/src/util.ts +8 -0
  333. package/libs/config/src/vercel.ts +26 -0
  334. package/libs/config/tsconfig.json +19 -0
  335. package/libs/config/vite.config.ts +34 -0
  336. package/libs/core/.prettierignore +2 -0
  337. package/libs/core/eslint.config.mjs +3 -0
  338. package/libs/core/package.json +59 -0
  339. package/libs/core/src/chat/derived.ts +97 -0
  340. package/libs/core/src/chat/feedback.ts +293 -0
  341. package/libs/core/src/chat/index.ts +6 -0
  342. package/libs/core/src/chat/model.ts +92 -0
  343. package/libs/core/src/chat/prepare-tools.ts +286 -0
  344. package/libs/core/src/chat/prompts.ts +623 -0
  345. package/libs/core/src/chat/stream.ts +311 -0
  346. package/libs/core/src/chat/summarize.ts +168 -0
  347. package/libs/core/src/chat/tools/agent.ts +403 -0
  348. package/libs/core/src/chat/tools/chart-agent.ts +526 -0
  349. package/libs/core/src/chat/tools/chart-helpers/sandbox.ts +47 -0
  350. package/libs/core/src/chat/tools/chart.ts +86 -0
  351. package/libs/core/src/chat/tools/credit-agent.ts +1383 -0
  352. package/libs/core/src/chat/tools/credit.ts +1435 -0
  353. package/libs/core/src/chat/tools/deep-dive-agent.ts +100 -0
  354. package/libs/core/src/chat/tools/deep-dive.ts +141 -0
  355. package/libs/core/src/chat/tools/form.ts +449 -0
  356. package/libs/core/src/chat/tools/helpers.ts +91 -0
  357. package/libs/core/src/chat/tools/index.ts +42 -0
  358. package/libs/core/src/chat/tools/pipeline-artifact.ts +76 -0
  359. package/libs/core/src/chat/tools/report.ts +40 -0
  360. package/libs/core/src/chat/tools/search.ts +390 -0
  361. package/libs/core/src/chat/tools/submission.ts +227 -0
  362. package/libs/core/src/chat/tools/workflow.ts +684 -0
  363. package/libs/core/src/chat/types.ts +3 -0
  364. package/libs/core/src/data-extraction/classification/azure.ts +168 -0
  365. package/libs/core/src/data-extraction/classification/index.ts +1 -0
  366. package/libs/core/src/data-extraction/dal.ts +246 -0
  367. package/libs/core/src/data-extraction/form-structure-extractor.ts +294 -0
  368. package/libs/core/src/data-extraction/index.ts +4 -0
  369. package/libs/core/src/data-extraction/layout/azure.ts +730 -0
  370. package/libs/core/src/data-extraction/layout/excel.ts +180 -0
  371. package/libs/core/src/data-extraction/layout/gcp.ts +1071 -0
  372. package/libs/core/src/data-extraction/layout/index.ts +266 -0
  373. package/libs/core/src/data-extraction/layout/plaintext.ts +45 -0
  374. package/libs/core/src/data-extraction/models.ts +38 -0
  375. package/libs/core/src/data-extraction/pdf-utils.ts +96 -0
  376. package/libs/core/src/data-extraction/structuring/bank-statement.ts +1182 -0
  377. package/libs/core/src/data-extraction/structuring/custom.ts +495 -0
  378. package/libs/core/src/data-extraction/structuring/index.ts +290 -0
  379. package/libs/core/src/data-extraction/structuring/prompts.ts +69 -0
  380. package/libs/core/src/data-extraction/type-guards.ts +110 -0
  381. package/libs/core/src/data-extraction/types.ts +84 -0
  382. package/libs/core/src/data-extraction/utils.ts +31 -0
  383. package/libs/core/src/data-extraction/validation/bank-statement.ts +127 -0
  384. package/libs/core/src/deals.ts +17 -0
  385. package/libs/core/src/documents.ts +152 -0
  386. package/libs/core/src/index.ts +5 -0
  387. package/libs/core/src/pipelines/display.ts +678 -0
  388. package/libs/core/src/pipelines/execute.ts +2342 -0
  389. package/libs/core/src/pipelines/index.ts +4 -0
  390. package/libs/core/src/pipelines/list.ts +12 -0
  391. package/libs/core/src/pipelines/runs.ts +53 -0
  392. package/libs/core/tsconfig.json +20 -0
  393. package/libs/core/vite.config.ts +56 -0
  394. package/libs/dal/.prettierignore +6 -0
  395. package/libs/dal/.prettierrc.js +12 -0
  396. package/libs/dal/eslint.config.mjs +3 -0
  397. package/libs/dal/package.json +57 -0
  398. package/libs/dal/src/_tests/db.test.ts +19 -0
  399. package/libs/dal/src/_tests/mock-db.ts +60 -0
  400. package/libs/dal/src/api-key.test.ts +397 -0
  401. package/libs/dal/src/api-key.ts +110 -0
  402. package/libs/dal/src/billing.ts +23 -0
  403. package/libs/dal/src/conversation.test.ts +655 -0
  404. package/libs/dal/src/conversation.ts +532 -0
  405. package/libs/dal/src/deal.test.ts +45 -0
  406. package/libs/dal/src/deal.ts +87 -0
  407. package/libs/dal/src/defaults-consumer-lending-uk.ts +33 -0
  408. package/libs/dal/src/defaults-consumer-lending-us.ts +33 -0
  409. package/libs/dal/src/defaults-private-credit.ts +57 -0
  410. package/libs/dal/src/defaults-private-equity.ts +51 -0
  411. package/libs/dal/src/defaults-smb-lending-us.ts +1569 -0
  412. package/libs/dal/src/defaults-sme-lending-uk-express.ts +1527 -0
  413. package/libs/dal/src/defaults-sme-lending-uk.ts +1669 -0
  414. package/libs/dal/src/defaults-types.ts +23 -0
  415. package/libs/dal/src/defaults.ts +550 -0
  416. package/libs/dal/src/document.test.ts +70 -0
  417. package/libs/dal/src/document.ts +192 -0
  418. package/libs/dal/src/feedback.ts +255 -0
  419. package/libs/dal/src/form.test.ts +637 -0
  420. package/libs/dal/src/form.ts +1165 -0
  421. package/libs/dal/src/index.ts +20 -0
  422. package/libs/dal/src/invitation.test.ts +746 -0
  423. package/libs/dal/src/invitation.ts +207 -0
  424. package/libs/dal/src/member.test.ts +185 -0
  425. package/libs/dal/src/member.ts +80 -0
  426. package/libs/dal/src/organization.ts +116 -0
  427. package/libs/dal/src/permission.ts +25 -0
  428. package/libs/dal/src/pipeline.test.ts +388 -0
  429. package/libs/dal/src/pipeline.ts +4222 -0
  430. package/libs/dal/src/report.ts +199 -0
  431. package/libs/dal/src/result.ts +16 -0
  432. package/libs/dal/src/search.ts +172 -0
  433. package/libs/dal/src/session.test.ts +110 -0
  434. package/libs/dal/src/session.ts +31 -0
  435. package/libs/dal/src/submission.test.ts +1304 -0
  436. package/libs/dal/src/submission.ts +1396 -0
  437. package/libs/dal/src/tool.ts +159 -0
  438. package/libs/dal/src/user.ts +16 -0
  439. package/libs/dal/src/workflow.test.ts +89 -0
  440. package/libs/dal/src/workflow.ts +262 -0
  441. package/libs/dal/tsconfig.build.json +4 -0
  442. package/libs/dal/tsconfig.json +22 -0
  443. package/libs/dal/vite.config.ts +34 -0
  444. package/libs/db/.prettierignore +6 -0
  445. package/libs/db/.prettierrc.js +12 -0
  446. package/libs/db/eslint.config.mjs +3 -0
  447. package/libs/db/package.json +52 -0
  448. package/libs/db/src/index.ts +24 -0
  449. package/libs/db/src/relations.ts +549 -0
  450. package/libs/db/src/schema.ts +2 -0
  451. package/libs/db/src/schemas/api.ts +35 -0
  452. package/libs/db/src/schemas/conversations.ts +175 -0
  453. package/libs/db/src/schemas/core.ts +359 -0
  454. package/libs/db/src/schemas/documents.ts +181 -0
  455. package/libs/db/src/schemas/feedback.ts +40 -0
  456. package/libs/db/src/schemas/index.ts +26 -0
  457. package/libs/db/src/schemas/organisations.ts +97 -0
  458. package/libs/db/src/schemas/pipelines.ts +440 -0
  459. package/libs/db/src/schemas/users.ts +95 -0
  460. package/libs/db/src/types.ts +190 -0
  461. package/libs/db/src/utils.ts +14 -0
  462. package/libs/db/tsconfig.json +19 -0
  463. package/libs/db/vite.config.ts +31 -0
  464. package/libs/lint/.prettierignore +6 -0
  465. package/libs/lint/eslint.config.mjs +61 -0
  466. package/libs/lint/package.json +29 -0
  467. package/libs/lint/prettier.config.js +12 -0
  468. package/libs/schemas/.prettierignore +6 -0
  469. package/libs/schemas/.prettierrc.js +12 -0
  470. package/libs/schemas/README.md +15 -0
  471. package/libs/schemas/eslint.config.mjs +3 -0
  472. package/libs/schemas/package.json +67 -0
  473. package/libs/schemas/src/core/chat.ts +67 -0
  474. package/libs/schemas/src/core/core-result.ts +15 -0
  475. package/libs/schemas/src/core/data-extraction.ts +184 -0
  476. package/libs/schemas/src/core/layout.ts +478 -0
  477. package/libs/schemas/src/core/pipeline.ts +128 -0
  478. package/libs/schemas/src/core/submission.ts +97 -0
  479. package/libs/schemas/src/db/account.ts +57 -0
  480. package/libs/schemas/src/db/apiKey.ts +57 -0
  481. package/libs/schemas/src/db/context.ts +33 -0
  482. package/libs/schemas/src/db/conversation.ts +65 -0
  483. package/libs/schemas/src/db/deal.ts +42 -0
  484. package/libs/schemas/src/db/document.ts +103 -0
  485. package/libs/schemas/src/db/documentCitation.ts +58 -0
  486. package/libs/schemas/src/db/documentExtraction.ts +69 -0
  487. package/libs/schemas/src/db/fieldCorrection.ts +85 -0
  488. package/libs/schemas/src/db/form.ts +45 -0
  489. package/libs/schemas/src/db/formField.ts +59 -0
  490. package/libs/schemas/src/db/formGroup.ts +42 -0
  491. package/libs/schemas/src/db/impersonation.ts +39 -0
  492. package/libs/schemas/src/db/index.ts +25 -0
  493. package/libs/schemas/src/db/invitation.ts +42 -0
  494. package/libs/schemas/src/db/member.ts +36 -0
  495. package/libs/schemas/src/db/message.ts +58 -0
  496. package/libs/schemas/src/db/organization.ts +62 -0
  497. package/libs/schemas/src/db/session.ts +48 -0
  498. package/libs/schemas/src/db/submission.ts +54 -0
  499. package/libs/schemas/src/db/submissionGroup.ts +36 -0
  500. package/libs/schemas/src/db/submissionItem.ts +33 -0
  501. package/libs/schemas/src/db/submissionItemVersion.ts +70 -0
  502. package/libs/schemas/src/db/user.ts +51 -0
  503. package/libs/schemas/src/db/utils.ts +3 -0
  504. package/libs/schemas/src/db/verification.ts +36 -0
  505. package/libs/schemas/src/db/workflow.ts +42 -0
  506. package/libs/schemas/src/index.ts +10 -0
  507. package/libs/schemas/tsconfig.json +21 -0
  508. package/libs/schemas/vite.config.ts +38 -0
  509. package/libs/ui/.prettierignore +6 -0
  510. package/libs/ui/.prettierrc.js +12 -0
  511. package/libs/ui/components.json +24 -0
  512. package/libs/ui/eslint.config.mjs +3 -0
  513. package/libs/ui/package.json +142 -0
  514. package/libs/ui/src/components/chart-viz/chart.tsx +255 -0
  515. package/libs/ui/src/components/chart-viz/converters.ts +474 -0
  516. package/libs/ui/src/components/chart-viz/dashboard.tsx +146 -0
  517. package/libs/ui/src/components/chart-viz/index.ts +37 -0
  518. package/libs/ui/src/components/chart-viz/markdown.tsx +344 -0
  519. package/libs/ui/src/components/chart-viz/table.tsx +446 -0
  520. package/libs/ui/src/components/chart-viz/theme-context.tsx +70 -0
  521. package/libs/ui/src/components/chart-viz/themes/dark.ts +98 -0
  522. package/libs/ui/src/components/chart-viz/themes/index.ts +69 -0
  523. package/libs/ui/src/components/chart-viz/themes/light.ts +98 -0
  524. package/libs/ui/src/components/chart-viz/themes/tailwind.ts +326 -0
  525. package/libs/ui/src/components/chart-viz/themes/types.ts +99 -0
  526. package/libs/ui/src/components/chart-viz/tool-display.tsx +150 -0
  527. package/libs/ui/src/components/chart-viz/types.ts +95 -0
  528. package/libs/ui/src/components/doc-viewers/excel/index.tsx +431 -0
  529. package/libs/ui/src/components/doc-viewers/excel/themes.ts +160 -0
  530. package/libs/ui/src/components/doc-viewers/image/index.tsx +410 -0
  531. package/libs/ui/src/components/doc-viewers/pdf/index.tsx +258 -0
  532. package/libs/ui/src/components/doc-viewers/pdf/virtualized-pdf.tsx +556 -0
  533. package/libs/ui/src/components/misc/rel-date.tsx +52 -0
  534. package/libs/ui/src/components/misc/styled-link.tsx +2 -0
  535. package/libs/ui/src/components/table/data-table.tsx +546 -0
  536. package/libs/ui/src/components/table/report-table.tsx +305 -0
  537. package/libs/ui/src/components/table/sortable-column.tsx +34 -0
  538. package/libs/ui/src/components/ui/accordion.tsx +62 -0
  539. package/libs/ui/src/components/ui/alert-dialog.tsx +142 -0
  540. package/libs/ui/src/components/ui/alert.tsx +62 -0
  541. package/libs/ui/src/components/ui/artifact.tsx +118 -0
  542. package/libs/ui/src/components/ui/attachments.tsx +388 -0
  543. package/libs/ui/src/components/ui/avatar.tsx +39 -0
  544. package/libs/ui/src/components/ui/badge.tsx +43 -0
  545. package/libs/ui/src/components/ui/breadcrumb.tsx +102 -0
  546. package/libs/ui/src/components/ui/button-group.tsx +78 -0
  547. package/libs/ui/src/components/ui/button.tsx +79 -0
  548. package/libs/ui/src/components/ui/card.tsx +32 -0
  549. package/libs/ui/src/components/ui/carousel.tsx +228 -0
  550. package/libs/ui/src/components/ui/chain-of-thought.tsx +198 -0
  551. package/libs/ui/src/components/ui/checkbox.tsx +27 -0
  552. package/libs/ui/src/components/ui/citation.tsx +34 -0
  553. package/libs/ui/src/components/ui/code-block.tsx +500 -0
  554. package/libs/ui/src/components/ui/collapsible.tsx +19 -0
  555. package/libs/ui/src/components/ui/command.tsx +161 -0
  556. package/libs/ui/src/components/ui/conversation.tsx +90 -0
  557. package/libs/ui/src/components/ui/dialog.tsx +142 -0
  558. package/libs/ui/src/components/ui/dropdown-menu.tsx +246 -0
  559. package/libs/ui/src/components/ui/highlight.tsx +3 -0
  560. package/libs/ui/src/components/ui/hover-card.tsx +36 -0
  561. package/libs/ui/src/components/ui/inline-citation.tsx +251 -0
  562. package/libs/ui/src/components/ui/input-group.tsx +156 -0
  563. package/libs/ui/src/components/ui/input-otp.tsx +78 -0
  564. package/libs/ui/src/components/ui/input.tsx +21 -0
  565. package/libs/ui/src/components/ui/label.tsx +19 -0
  566. package/libs/ui/src/components/ui/model-selector.tsx +174 -0
  567. package/libs/ui/src/components/ui/multisidebar.tsx +750 -0
  568. package/libs/ui/src/components/ui/popover.tsx +43 -0
  569. package/libs/ui/src/components/ui/progress.tsx +28 -0
  570. package/libs/ui/src/components/ui/reasoning.tsx +178 -0
  571. package/libs/ui/src/components/ui/resizable.tsx +49 -0
  572. package/libs/ui/src/components/ui/scroll-area.tsx +54 -0
  573. package/libs/ui/src/components/ui/select.tsx +171 -0
  574. package/libs/ui/src/components/ui/separator.tsx +26 -0
  575. package/libs/ui/src/components/ui/sheet.tsx +128 -0
  576. package/libs/ui/src/components/ui/shimmer.tsx +53 -0
  577. package/libs/ui/src/components/ui/skeleton.tsx +13 -0
  578. package/libs/ui/src/components/ui/sonner.tsx +23 -0
  579. package/libs/ui/src/components/ui/switch.tsx +26 -0
  580. package/libs/ui/src/components/ui/table.tsx +96 -0
  581. package/libs/ui/src/components/ui/tabs.tsx +52 -0
  582. package/libs/ui/src/components/ui/textarea.tsx +41 -0
  583. package/libs/ui/src/components/ui/tool.tsx +209 -0
  584. package/libs/ui/src/components/ui/tooltip.tsx +58 -0
  585. package/libs/ui/src/components/ui/typography.tsx +113 -0
  586. package/libs/ui/src/fonts/manrope-v15-latin-300.woff2 +0 -0
  587. package/libs/ui/src/fonts/manrope-v15-latin-400.woff2 +0 -0
  588. package/libs/ui/src/fonts/manrope-v15-latin-500.woff2 +0 -0
  589. package/libs/ui/src/fonts/manrope-v15-latin-600.woff2 +0 -0
  590. package/libs/ui/src/hooks/use-mobile.ts +19 -0
  591. package/libs/ui/src/lib/utils.ts +6 -0
  592. package/libs/ui/src/styles/fonts.css +35 -0
  593. package/libs/ui/src/styles/style.css +218 -0
  594. package/libs/ui/tsconfig.json +21 -0
  595. package/libs/ui/vite.config.ts +80 -0
  596. package/libs/ui-lit/README.md +245 -0
  597. package/libs/ui-lit/TESTING_GUIDE.md +296 -0
  598. package/libs/ui-lit/eslint.config.mjs +3 -0
  599. package/libs/ui-lit/package.json +41 -0
  600. package/libs/ui-lit/scripts/build-css.js +43 -0
  601. package/libs/ui-lit/src/components/sea-alert.ts +132 -0
  602. package/libs/ui-lit/src/components/sea-button.ts +95 -0
  603. package/libs/ui-lit/src/components/sea-card.ts +113 -0
  604. package/libs/ui-lit/src/components/sea-input.ts +184 -0
  605. package/libs/ui-lit/src/components/sea-spinner.ts +65 -0
  606. package/libs/ui-lit/src/index.ts +15 -0
  607. package/libs/ui-lit/src/lib/utils.ts +6 -0
  608. package/libs/ui-lit/src/styles/tailwind.css +76 -0
  609. package/libs/ui-lit/src/theme.css +66 -0
  610. package/libs/ui-lit/src/theme.ts +79 -0
  611. package/libs/ui-lit/src/vite-env.d.ts +6 -0
  612. package/libs/ui-lit/tailwind.config.ts +50 -0
  613. package/libs/ui-lit/test.html +289 -0
  614. package/libs/ui-lit/tsconfig.json +23 -0
  615. package/libs/ui-lit/vite.config.ts +31 -0
  616. package/libs/ui-lit/vite.css.config.ts +20 -0
  617. package/libs/util/.prettierignore +6 -0
  618. package/libs/util/.prettierrc.js +12 -0
  619. package/libs/util/eslint.config.mjs +3 -0
  620. package/libs/util/package.json +45 -0
  621. package/libs/util/src/billing.ts +10 -0
  622. package/libs/util/src/data-transform.ts +19 -0
  623. package/libs/util/src/encryption.ts +45 -0
  624. package/libs/util/src/fmt.test.ts +9 -0
  625. package/libs/util/src/fmt.ts +71 -0
  626. package/libs/util/src/fuzzy.ts +47 -0
  627. package/libs/util/src/id.ts +24 -0
  628. package/libs/util/src/invariant.ts +31 -0
  629. package/libs/util/src/sub-name.ts +7 -0
  630. package/libs/util/tsconfig.json +19 -0
  631. package/libs/util/vite.config.ts +34 -0
  632. package/package.json +28 -0
  633. package/packages/widget/.prettierignore +6 -0
  634. package/packages/widget/.prettierrc.js +12 -0
  635. package/packages/widget/README.md +95 -0
  636. package/packages/widget/eslint.config.mjs +11 -0
  637. package/packages/widget/openapi-ts.config.ts +8 -0
  638. package/packages/widget/package.json +89 -0
  639. package/packages/widget/postcss.config.mjs +10 -0
  640. package/packages/widget/src/clients/api/client/client.ts +187 -0
  641. package/packages/widget/src/clients/api/client/index.ts +22 -0
  642. package/packages/widget/src/clients/api/client/types.ts +192 -0
  643. package/packages/widget/src/clients/api/client/utils.ts +394 -0
  644. package/packages/widget/src/clients/api/client.gen.ts +18 -0
  645. package/packages/widget/src/clients/api/core/auth.ts +39 -0
  646. package/packages/widget/src/clients/api/core/bodySerializer.ts +74 -0
  647. package/packages/widget/src/clients/api/core/params.ts +132 -0
  648. package/packages/widget/src/clients/api/core/pathSerializer.ts +169 -0
  649. package/packages/widget/src/clients/api/core/types.ts +80 -0
  650. package/packages/widget/src/clients/api/index.ts +3 -0
  651. package/packages/widget/src/clients/api/sdk.gen.ts +805 -0
  652. package/packages/widget/src/clients/api/types.gen.ts +2085 -0
  653. package/packages/widget/src/components/container.tsx +42 -0
  654. package/packages/widget/src/components/data-display.tsx +384 -0
  655. package/packages/widget/src/components/data-viewer.tsx +311 -0
  656. package/packages/widget/src/components/doc-list.tsx +102 -0
  657. package/packages/widget/src/components/field-correction-modal.tsx +265 -0
  658. package/packages/widget/src/components/header.tsx +71 -0
  659. package/packages/widget/src/components/new-submission.tsx +290 -0
  660. package/packages/widget/src/components/sidebar-right.tsx +19 -0
  661. package/packages/widget/src/components/submission-card.tsx +66 -0
  662. package/packages/widget/src/components/submission-page.tsx +75 -0
  663. package/packages/widget/src/components/upload-doc.tsx +241 -0
  664. package/packages/widget/src/components/widget.tsx +101 -0
  665. package/packages/widget/src/index.tsx +167 -0
  666. package/packages/widget/src/lib/config.ts +2 -0
  667. package/packages/widget/src/lib/util.ts +40 -0
  668. package/packages/widget/src/styles/index.css +5 -0
  669. package/packages/widget/src/styles/tw-properties.css +337 -0
  670. package/packages/widget/src/vite-env.d.ts +3 -0
  671. package/packages/widget/tsconfig.app.json +35 -0
  672. package/packages/widget/tsconfig.json +4 -0
  673. package/packages/widget/tsconfig.node.json +24 -0
  674. package/packages/widget/vite.config.ts +116 -0
  675. package/packages/widget-lit/BOTTLENECKS.md +250 -0
  676. package/packages/widget-lit/IMPLEMENTATION_SUMMARY.md +295 -0
  677. package/packages/widget-lit/README.md +232 -0
  678. package/packages/widget-lit/eslint.config.mjs +3 -0
  679. package/packages/widget-lit/package.json +52 -0
  680. package/packages/widget-lit/src/api-client.ts +230 -0
  681. package/packages/widget-lit/src/api-client.ts.backup +218 -0
  682. package/packages/widget-lit/src/components/sea-chat.ts +382 -0
  683. package/packages/widget-lit/src/components/sea-submission-viewer.ts +267 -0
  684. package/packages/widget-lit/src/components/sea-widget.ts +317 -0
  685. package/packages/widget-lit/src/index.ts +48 -0
  686. package/packages/widget-lit/src/react.ts +58 -0
  687. package/packages/widget-lit/src/style.css +47 -0
  688. package/packages/widget-lit/tsconfig.json +24 -0
  689. package/packages/widget-lit/vite.config.ts +29 -0
  690. package/packages/widget-ng/DEVELOPMENT.md +74 -0
  691. package/packages/widget-ng/README.md +657 -0
  692. package/packages/widget-ng/dev.sh +14 -0
  693. package/packages/widget-ng/eslint.config.mjs +24 -0
  694. package/packages/widget-ng/ng-package.json +9 -0
  695. package/packages/widget-ng/package.json +85 -0
  696. package/packages/widget-ng/src/index.ts +45 -0
  697. package/packages/widget-ng/src/lib/components/sea-chat.component.ts +737 -0
  698. package/packages/widget-ng/src/lib/components/sea-data-viewer.component.ts +2240 -0
  699. package/packages/widget-ng/src/lib/components/sea-deal-form-modal.component.ts +702 -0
  700. package/packages/widget-ng/src/lib/components/sea-document-list.component.ts +350 -0
  701. package/packages/widget-ng/src/lib/components/sea-feedback-modal.component.ts +461 -0
  702. package/packages/widget-ng/src/lib/components/sea-file-upload.component.ts +655 -0
  703. package/packages/widget-ng/src/lib/components/sea-model-selection-modal.component.ts +367 -0
  704. package/packages/widget-ng/src/lib/components/sea-new-submission-modal.component.ts +414 -0
  705. package/packages/widget-ng/src/lib/components/sea-pdf-viewer.component.ts +869 -0
  706. package/packages/widget-ng/src/lib/components/sea-submission-card.component.ts +251 -0
  707. package/packages/widget-ng/src/lib/components/sea-widget.component.ts +684 -0
  708. package/packages/widget-ng/src/lib/models/submission.model.ts +170 -0
  709. package/packages/widget-ng/src/lib/pipes/markdown.pipe.ts +57 -0
  710. package/packages/widget-ng/src/lib/services/api-client.service.ts +715 -0
  711. package/packages/widget-ng/src/lib/services/chat.service.ts +330 -0
  712. package/packages/widget-ng/src/lib/services/config.service.ts +107 -0
  713. package/packages/widget-ng/src/web-component.ts +56 -0
  714. package/packages/widget-ng/tsconfig.json +25 -0
  715. package/packages/widget-ng/tsconfig.lib.json +9 -0
  716. package/packages/widget-ng/vite.config.elements.ts +26 -0
  717. package/packages/widget-ng/vitest.config.ts +19 -0
  718. package/packages/widget-ng/vitest.setup.ts +13 -0
  719. package/pnpm-workspace.yaml +18 -0
  720. package/render.yaml +136 -0
  721. package/scripts/README.md +57 -0
  722. package/scripts/package.json +22 -0
  723. package/scripts/python/.python-version +1 -0
  724. package/scripts/python/README.md +3 -0
  725. package/scripts/python/export-org-data.py +693 -0
  726. package/scripts/python/pyproject.toml +29 -0
  727. package/scripts/python/requirements-dev.lock +36 -0
  728. package/scripts/python/requirements.lock +36 -0
  729. package/scripts/python/src/gen.py +297 -0
  730. package/scripts/python/test.py +34 -0
  731. package/scripts/src/fix-storage-provider-mismatch.ts +239 -0
  732. package/scripts/src/sync-render-yaml.ts +290 -0
  733. package/scripts/src/test-chat-stream.ts +300 -0
  734. package/scripts/src/test-reconciliation.ts +230 -0
  735. package/scripts/tsconfig.json +15 -0
  736. package/tests/angular-test-app/.vscode/extensions.json +4 -0
  737. package/tests/angular-test-app/.vscode/launch.json +13 -0
  738. package/tests/angular-test-app/.vscode/tasks.json +24 -0
  739. package/tests/angular-test-app/README.md +59 -0
  740. package/tests/angular-test-app/angular.json +111 -0
  741. package/tests/angular-test-app/clean-start.sh +14 -0
  742. package/tests/angular-test-app/package.json +36 -0
  743. package/tests/angular-test-app/public/favicon.ico +0 -0
  744. package/tests/angular-test-app/src/app/app.component.ts +220 -0
  745. package/tests/angular-test-app/src/app/app.config.ts +5 -0
  746. package/tests/angular-test-app/src/env.d.ts +13 -0
  747. package/tests/angular-test-app/src/index.html +13 -0
  748. package/tests/angular-test-app/src/main.ts +6 -0
  749. package/tests/angular-test-app/src/styles.css +8 -0
  750. package/tests/angular-test-app/tsconfig.app.json +15 -0
  751. package/tests/angular-test-app/tsconfig.json +27 -0
  752. package/tests/crm-viewer-app/API_INTEGRATION_SUMMARY.md +295 -0
  753. package/tests/crm-viewer-app/CURRENT_ASSETS_FIELDS.md +148 -0
  754. package/tests/crm-viewer-app/FIELD_ID_MAPPING.md +206 -0
  755. package/tests/crm-viewer-app/INTEGRATION_GUIDE.md +309 -0
  756. package/tests/crm-viewer-app/README.md +174 -0
  757. package/tests/crm-viewer-app/REAL_API_INTEGRATION.md +240 -0
  758. package/tests/crm-viewer-app/UPDATED_IMPLEMENTATION.md +279 -0
  759. package/tests/crm-viewer-app/angular.json +114 -0
  760. package/tests/crm-viewer-app/package.json +35 -0
  761. package/tests/crm-viewer-app/src/app/app.component.ts +534 -0
  762. package/tests/crm-viewer-app/src/app/citation.service.ts +316 -0
  763. package/tests/crm-viewer-app/src/env.d.ts +16 -0
  764. package/tests/crm-viewer-app/src/index.html +19 -0
  765. package/tests/crm-viewer-app/src/main.ts +7 -0
  766. package/tests/crm-viewer-app/src/styles.css +409 -0
  767. package/tests/crm-viewer-app/src/template.html +2678 -0
  768. package/tests/crm-viewer-app/tsconfig.app.json +15 -0
  769. package/tests/crm-viewer-app/tsconfig.json +27 -0
  770. package/tests/e2e/package.json +17 -0
  771. package/tests/e2e/playwright.config.ts +75 -0
  772. package/tests/e2e/tests/api/health.spec.ts +10 -0
  773. package/tests/e2e/tests/app/example.spec.ts +10 -0
  774. package/tests/widget-test-app/.prettierignore +6 -0
  775. package/tests/widget-test-app/README.md +48 -0
  776. package/tests/widget-test-app/index.html +12 -0
  777. package/tests/widget-test-app/package.json +24 -0
  778. package/tests/widget-test-app/src/App.css +192 -0
  779. package/tests/widget-test-app/src/App.tsx +80 -0
  780. package/tests/widget-test-app/src/main.tsx +9 -0
  781. package/tests/widget-test-app/src/vite-env.d.ts +4 -0
  782. package/tests/widget-test-app/tsconfig.json +25 -0
  783. package/tests/widget-test-app/tsconfig.node.json +11 -0
  784. package/tests/widget-test-app/vite.config.ts +14 -0
@@ -0,0 +1,1569 @@
1
+ import type { DenormWorkflow } from "./defaults-types";
2
+
3
+ export const defaultWorkflows: DenormWorkflow[] = [
4
+ // **************************
5
+ // Origination (Light Underwrite)
6
+ // **************************
7
+ {
8
+ name: "Origination",
9
+ slug: "origination",
10
+ hint: "Extract applicant details, loan amounts, business information, contact data",
11
+ forms: [
12
+ {
13
+ // **************************
14
+ // Origination - Investment Memo
15
+ // **************************
16
+ name: "Investment Memo",
17
+ hint: "Extract borrower profile, credit request details, industry analysis, management assessment, and financial performance metrics from investment memorandum",
18
+ groups: [
19
+ {
20
+ name: "Borrower Profile",
21
+ order: 0,
22
+ fields: [
23
+ {
24
+ name: "Borrower Name",
25
+ type: "string",
26
+ hint: "Legal name of the borrowing entity",
27
+ order: 0,
28
+ },
29
+ {
30
+ name: "Business Description",
31
+ type: "string-long",
32
+ hint: "Description of the borrower's primary business operations and activities",
33
+ order: 1,
34
+ },
35
+ {
36
+ name: "Company Overview",
37
+ type: "string-long",
38
+ hint: "Executive summary of the company including history, key products/services, and market position",
39
+ order: 2,
40
+ },
41
+ {
42
+ name: "Business Address",
43
+ type: "string",
44
+ hint: "Primary business address or headquarters location",
45
+ order: 3,
46
+ },
47
+ {
48
+ name: "Credit Request",
49
+ type: "string-long",
50
+ hint: "Details of the financing request including amount, purpose, and structure",
51
+ order: 4,
52
+ },
53
+ {
54
+ name: "EIN",
55
+ type: "string",
56
+ hint: "Employer Identification Number",
57
+ order: 5,
58
+ },
59
+ ],
60
+ },
61
+ {
62
+ name: "Industry & Market Analysis",
63
+ order: 1,
64
+ fields: [
65
+ {
66
+ name: "Industry Overview",
67
+ type: "string-long",
68
+ hint: "Analysis of the borrower's industry including trends, outlook, and competitive dynamics",
69
+ order: 0,
70
+ },
71
+ {
72
+ name: "BusinessOperations",
73
+ type: "string-long",
74
+ hint: "Detailed description of day-to-day business operations and revenue drivers",
75
+ order: 1,
76
+ },
77
+ {
78
+ name: "Market Segment",
79
+ type: "string",
80
+ hint: "Specific market segment or niche within the broader industry",
81
+ order: 2,
82
+ },
83
+ {
84
+ name: "Industry Classification",
85
+ type: "string",
86
+ hint: "NAICS or SIC industry classification code and description",
87
+ order: 3,
88
+ },
89
+ {
90
+ name: "Business Type",
91
+ type: "string",
92
+ hint: "Type of business entity (LLC, Corporation, Partnership, etc.)",
93
+ order: 4,
94
+ },
95
+ ],
96
+ },
97
+ {
98
+ name: "Management & Ownership",
99
+ order: 2,
100
+ fields: [
101
+ {
102
+ name: "Management Team",
103
+ type: "string-long",
104
+ hint: "Background and experience of key management personnel including CEO, CFO, and other executives",
105
+ order: 0,
106
+ },
107
+ {
108
+ name: "Ownership Structure",
109
+ type: "string-long",
110
+ hint: "Ownership percentages, key shareholders, and corporate structure details",
111
+ order: 1,
112
+ },
113
+ ],
114
+ },
115
+ {
116
+ name: "Credit Facility Details",
117
+ order: 3,
118
+ fields: [
119
+ {
120
+ name: "Facility Structure",
121
+ type: "string-long",
122
+ hint: "Proposed loan structure including facility type, terms, covenants, and security",
123
+ order: 0,
124
+ },
125
+ ],
126
+ },
127
+ {
128
+ name: "Banking Relationship",
129
+ order: 4,
130
+ fields: [
131
+ {
132
+ name: "Banking History",
133
+ type: "string-long",
134
+ hint: "Historical banking relationship and account performance summary",
135
+ order: 0,
136
+ },
137
+ {
138
+ name: "Account Activity",
139
+ type: "string-long",
140
+ hint: "Summary of recent account activity and transaction patterns",
141
+ order: 1,
142
+ },
143
+ {
144
+ name: "Primary Account Number",
145
+ type: "string",
146
+ hint: "Primary operating account number",
147
+ order: 2,
148
+ },
149
+ {
150
+ name: "Statement Date",
151
+ type: "date",
152
+ hint: "Most recent bank statement date",
153
+ order: 3,
154
+ },
155
+ {
156
+ name: "Current Balance",
157
+ type: "money",
158
+ hint: "Current account balance as of statement date",
159
+ order: 4,
160
+ },
161
+ {
162
+ name: "Low Balance",
163
+ type: "money",
164
+ hint: "Lowest account balance during the review period",
165
+ order: 5,
166
+ },
167
+ ],
168
+ },
169
+ {
170
+ name: "Financial Performance",
171
+ order: 5,
172
+ fields: [
173
+ {
174
+ name: "Financial Period",
175
+ type: "string",
176
+ hint: "Financial reporting period being analyzed (e.g., FY2023, TTM, etc.)",
177
+ order: 0,
178
+ },
179
+ {
180
+ name: "EBITDA",
181
+ type: "money",
182
+ hint: "Earnings before interest, taxes, depreciation and amortization for the period",
183
+ order: 1,
184
+ },
185
+ {
186
+ name: "Total Debt To EBITDA",
187
+ type: "number",
188
+ hint: "Total debt to EBITDA ratio indicating leverage level",
189
+ order: 2,
190
+ },
191
+ {
192
+ name: "Debt Service Coverage Ratio",
193
+ type: "number",
194
+ hint: "Projected debt service coverage ratio demonstrating repayment capacity",
195
+ order: 3,
196
+ },
197
+ {
198
+ name: "Cash Flow Breakeven",
199
+ type: "string",
200
+ hint: "Projected month when borrower achieves positive cash flow",
201
+ order: 4,
202
+ },
203
+ ],
204
+ },
205
+ ],
206
+ },
207
+
208
+ // **************************
209
+ // Origination - Bank Statement
210
+ // **************************
211
+ {
212
+ name: "Bank Statement",
213
+ hint: "Extract account balances, transactions, deposits, withdrawals, and cash flow patterns",
214
+ groups: [
215
+ {
216
+ name: "Bank Statement",
217
+ order: 0,
218
+ fields: [
219
+ {
220
+ name: "BankName",
221
+ type: "string",
222
+ order: 0,
223
+ },
224
+ {
225
+ name: "AccountNumber",
226
+ type: "string",
227
+ order: 1,
228
+ },
229
+ {
230
+ name: "AccountType",
231
+ type: "string",
232
+ order: 2,
233
+ },
234
+ {
235
+ name: "AccountHolderName",
236
+ type: "string",
237
+ order: 3,
238
+ },
239
+ {
240
+ name: "StatementPeriodStart",
241
+ type: "date",
242
+ order: 4,
243
+ },
244
+ {
245
+ name: "StatementPeriodEnd",
246
+ type: "date",
247
+ order: 5,
248
+ },
249
+ {
250
+ name: "OpeningBalance",
251
+ type: "money",
252
+ order: 6,
253
+ },
254
+ {
255
+ name: "ClosingBalance",
256
+ type: "money",
257
+ order: 7,
258
+ },
259
+ {
260
+ name: "IBAN",
261
+ type: "string",
262
+ order: 8,
263
+ },
264
+ {
265
+ name: "Currency",
266
+ type: "string",
267
+ order: 9,
268
+ },
269
+ {
270
+ name: "SortCode",
271
+ type: "string",
272
+ order: 10,
273
+ },
274
+ ],
275
+ },
276
+ {
277
+ name: "Transactions",
278
+ multi: true,
279
+ order: 1,
280
+ fields: [
281
+ {
282
+ name: "Date",
283
+ type: "date",
284
+ order: 0,
285
+ },
286
+ {
287
+ name: "Description",
288
+ type: "string",
289
+ order: 1,
290
+ },
291
+ {
292
+ name: "DepositAmount",
293
+ type: "money",
294
+ order: 2,
295
+ },
296
+ {
297
+ name: "WithdrawalAmount",
298
+ type: "money",
299
+ order: 3,
300
+ },
301
+ {
302
+ name: "Balance",
303
+ type: "money",
304
+ order: 4,
305
+ },
306
+ ],
307
+ },
308
+ ],
309
+ },
310
+
311
+ // **************************
312
+ // Origination - Principal Owners (US)
313
+ // **************************
314
+ {
315
+ name: "Principal Owners",
316
+ hint: "Extract principal owner information including SSN, ownership percentage, and personal details",
317
+ groups: [
318
+ {
319
+ name: "Company Information",
320
+ order: 0,
321
+ fields: [
322
+ {
323
+ name: "EIN",
324
+ type: "string",
325
+ hint: "Employer Identification Number",
326
+ order: 0,
327
+ },
328
+ {
329
+ name: "StateOfIncorporation",
330
+ type: "string",
331
+ hint: "State where the company is incorporated",
332
+ order: 1,
333
+ },
334
+ {
335
+ name: "DateOfIncorporation",
336
+ type: "date",
337
+ hint: "Date the company was incorporated",
338
+ order: 2,
339
+ },
340
+ ],
341
+ },
342
+ {
343
+ name: "Principal Owners",
344
+ order: 1,
345
+ multi: true,
346
+ fields: [
347
+ {
348
+ name: "OwnerName",
349
+ type: "string",
350
+ hint: "Full name of the principal owner",
351
+ order: 0,
352
+ },
353
+ {
354
+ name: "SSN",
355
+ type: "string",
356
+ hint: "Social Security Number (last 4 digits only for security)",
357
+ order: 1,
358
+ },
359
+ {
360
+ name: "OwnershipPercentage",
361
+ type: "number",
362
+ hint: "Percentage of ownership in the company",
363
+ order: 2,
364
+ },
365
+ {
366
+ name: "Title",
367
+ type: "string",
368
+ hint: "Title or role in the company (e.g., CEO, President, Managing Member)",
369
+ order: 3,
370
+ },
371
+ {
372
+ name: "DateOfBirth",
373
+ type: "date",
374
+ hint: "Owner's date of birth",
375
+ order: 4,
376
+ },
377
+ {
378
+ name: "ResidentialAddress",
379
+ type: "string-long",
380
+ hint: "Owner's residential address",
381
+ order: 5,
382
+ },
383
+ ],
384
+ },
385
+ ],
386
+ },
387
+ ],
388
+ },
389
+
390
+ // **************************
391
+ // Underwriting (Full Business Details)
392
+ // **************************
393
+ {
394
+ name: "Underwriting",
395
+ slug: "underwriting",
396
+ hint: "Extract financial statements, credit scores, collateral, risk assessments",
397
+ forms: [
398
+ // **************************
399
+ // Underwriting - US Income Statement
400
+ // **************************
401
+ {
402
+ name: "Income Statement",
403
+ hint: "Capture Income Statement results across reporting periods using US GAAP terminology",
404
+ groups: [
405
+ {
406
+ name: "General Information",
407
+ order: 0,
408
+ fields: [
409
+ {
410
+ name: "CompanyName",
411
+ type: "string",
412
+ hint: "Name of the company for which the financials are reported",
413
+ order: 0,
414
+ },
415
+ {
416
+ name: "EIN",
417
+ type: "string",
418
+ hint: "Employer Identification Number",
419
+ order: 1,
420
+ },
421
+ {
422
+ name: "FiscalYearEnd",
423
+ type: "date",
424
+ hint: "Fiscal year end date for the reporting period",
425
+ order: 2,
426
+ },
427
+ ],
428
+ },
429
+ {
430
+ name: "Income Statement",
431
+ order: 1,
432
+ multi: true,
433
+ fields: [
434
+ {
435
+ name: "FinancialPeriod",
436
+ type: "date",
437
+ hint: "The relevant financial period end date. Provide the date in UTC (YYYY-MM-DD).",
438
+ order: 0,
439
+ },
440
+ {
441
+ name: "Net Sales",
442
+ type: "money",
443
+ hint: "Total net sales revenue",
444
+ order: 1,
445
+ },
446
+ {
447
+ name: "Cost of Goods Sold",
448
+ type: "money",
449
+ hint: "Direct costs of producing goods sold",
450
+ order: 2,
451
+ },
452
+ {
453
+ name: "Gross Profit",
454
+ type: "money",
455
+ hint: "Net Sales minus Cost of Goods Sold",
456
+ order: 3,
457
+ },
458
+ {
459
+ name: "Operating Expenses",
460
+ type: "money",
461
+ hint: "Total operating expenses including SG&A",
462
+ order: 4,
463
+ },
464
+ {
465
+ name: "Operating Income",
466
+ type: "money",
467
+ hint: "Income from operations before interest and tax (US equivalent of EBIT)",
468
+ order: 5,
469
+ },
470
+ {
471
+ name: "EBITDA",
472
+ type: "money",
473
+ hint: "Earnings before interest, taxes, depreciation, and amortization",
474
+ order: 6,
475
+ },
476
+ {
477
+ name: "Interest Expense",
478
+ type: "money",
479
+ hint: "Total interest expense for the period",
480
+ order: 7,
481
+ },
482
+ {
483
+ name: "Income Before Tax",
484
+ type: "money",
485
+ hint: "Income after all operating and financing activities but before tax",
486
+ order: 8,
487
+ },
488
+ {
489
+ name: "Income Tax Expense",
490
+ type: "money",
491
+ hint: "Total income tax expense for the period",
492
+ order: 9,
493
+ },
494
+ {
495
+ name: "Net Income",
496
+ type: "money",
497
+ hint: "Net income after tax",
498
+ order: 10,
499
+ },
500
+ ],
501
+ },
502
+ ],
503
+ },
504
+
505
+ // **************************
506
+ // Underwriting - US Balance Sheet
507
+ // **************************
508
+ {
509
+ name: "Balance Sheet",
510
+ hint: "Capture Balance Sheet positions at different reporting dates using US GAAP terminology",
511
+ groups: [
512
+ {
513
+ name: "General Information",
514
+ order: 0,
515
+ fields: [
516
+ {
517
+ name: "CompanyName",
518
+ type: "string",
519
+ hint: "Name of the company for which the financials are reported",
520
+ order: 0,
521
+ },
522
+ {
523
+ name: "EIN",
524
+ type: "string",
525
+ hint: "Employer Identification Number",
526
+ order: 1,
527
+ },
528
+ ],
529
+ },
530
+ {
531
+ name: "Balance Sheet",
532
+ order: 1,
533
+ multi: true,
534
+ fields: [
535
+ {
536
+ name: "FinancialDate",
537
+ type: "date",
538
+ hint: "The balance sheet reporting date. Provide the date in UTC (YYYY-MM-DD).",
539
+ order: 0,
540
+ },
541
+ {
542
+ name: "Cash and Cash Equivalents",
543
+ type: "money",
544
+ hint: "Cash on hand plus cash equivalents available at the reporting date",
545
+ order: 1,
546
+ },
547
+ {
548
+ name: "Accounts Receivable",
549
+ type: "money",
550
+ hint: "Outstanding customer balances expected to be collected",
551
+ order: 2,
552
+ },
553
+ {
554
+ name: "Inventory",
555
+ type: "money",
556
+ hint: "Value of goods held for sale or production",
557
+ order: 3,
558
+ },
559
+ {
560
+ name: "Total Current Assets",
561
+ type: "money",
562
+ hint: "Sum of assets expected to be converted to cash within one year",
563
+ order: 4,
564
+ },
565
+ {
566
+ name: "Property, Plant and Equipment",
567
+ type: "money",
568
+ hint: "Net value of long-term tangible assets",
569
+ order: 5,
570
+ },
571
+ {
572
+ name: "Total Assets",
573
+ type: "money",
574
+ hint: "Total assets combining current and non-current balances",
575
+ order: 6,
576
+ },
577
+ {
578
+ name: "Accounts Payable",
579
+ type: "money",
580
+ hint: "Outstanding supplier balances due within one year",
581
+ order: 7,
582
+ },
583
+ {
584
+ name: "Short-Term Debt",
585
+ type: "money",
586
+ hint: "Current portion of debt obligations due within one year",
587
+ order: 8,
588
+ },
589
+ {
590
+ name: "Total Current Liabilities",
591
+ type: "money",
592
+ hint: "Sum of liabilities due within one year",
593
+ order: 9,
594
+ },
595
+ {
596
+ name: "Long-Term Debt",
597
+ type: "money",
598
+ hint: "Non-current debt obligations extending beyond one year",
599
+ order: 10,
600
+ },
601
+ {
602
+ name: "Total Liabilities",
603
+ type: "money",
604
+ hint: "Total liabilities combining current and long-term balances",
605
+ order: 11,
606
+ },
607
+ {
608
+ name: "Stockholders' Equity",
609
+ type: "money",
610
+ hint: "Owners' residual interest in the company after liabilities are deducted from assets",
611
+ order: 12,
612
+ },
613
+ ],
614
+ },
615
+ ],
616
+ },
617
+
618
+ // **************************
619
+ // Underwriting - Tax Returns (US)
620
+ // **************************
621
+ {
622
+ name: "Tax Returns",
623
+ hint: "Extract tax return information including federal and state tax filings",
624
+ groups: [
625
+ {
626
+ name: "Tax Return Summary",
627
+ order: 0,
628
+ fields: [
629
+ {
630
+ name: "TaxYear",
631
+ type: "string",
632
+ hint: "Tax year for the return (e.g., 2023)",
633
+ order: 0,
634
+ },
635
+ {
636
+ name: "ReturnType",
637
+ type: "string",
638
+ hint: "Type of tax return (e.g., Form 1120, Form 1120S, Form 1065)",
639
+ order: 1,
640
+ },
641
+ {
642
+ name: "FilingStatus",
643
+ type: "string",
644
+ hint: "Filing status (e.g., Filed, Extension, Amended)",
645
+ order: 2,
646
+ },
647
+ {
648
+ name: "FilingDate",
649
+ type: "date",
650
+ hint: "Date the tax return was filed",
651
+ order: 3,
652
+ },
653
+ ],
654
+ },
655
+ {
656
+ name: "Tax Return Details",
657
+ order: 1,
658
+ multi: true,
659
+ fields: [
660
+ {
661
+ name: "GrossReceipts",
662
+ type: "money",
663
+ hint: "Total gross receipts or sales",
664
+ order: 0,
665
+ },
666
+ {
667
+ name: "CostOfGoodsSold",
668
+ type: "money",
669
+ hint: "Cost of goods sold from tax return",
670
+ order: 1,
671
+ },
672
+ {
673
+ name: "GrossProfit",
674
+ type: "money",
675
+ hint: "Gross profit from tax return",
676
+ order: 2,
677
+ },
678
+ {
679
+ name: "TotalDeductions",
680
+ type: "money",
681
+ hint: "Total deductions claimed",
682
+ order: 3,
683
+ },
684
+ {
685
+ name: "TaxableIncome",
686
+ type: "money",
687
+ hint: "Taxable income before credits",
688
+ order: 4,
689
+ },
690
+ {
691
+ name: "TotalTax",
692
+ type: "money",
693
+ hint: "Total tax liability",
694
+ order: 5,
695
+ },
696
+ {
697
+ name: "TaxPaid",
698
+ type: "money",
699
+ hint: "Total tax paid",
700
+ order: 6,
701
+ },
702
+ {
703
+ name: "RefundOrAmountDue",
704
+ type: "money",
705
+ hint: "Refund amount or amount due",
706
+ order: 7,
707
+ },
708
+ ],
709
+ },
710
+ ],
711
+ },
712
+
713
+ // **************************
714
+ // Underwriting - Credit Bureau
715
+ // **************************
716
+ {
717
+ name: "Credit Bureau",
718
+ hint: "Extract credit bureau information including FICO scores, Dun & Bradstreet reports, and payment history",
719
+ groups: [
720
+ {
721
+ name: "Credit Overview",
722
+ order: 0,
723
+ fields: [
724
+ {
725
+ name: "FICOScore",
726
+ type: "number",
727
+ hint: "FICO credit score for the business",
728
+ order: 0,
729
+ },
730
+ {
731
+ name: "DunBradstreetRating",
732
+ type: "string",
733
+ hint: "Dun & Bradstreet credit rating",
734
+ order: 1,
735
+ },
736
+ {
737
+ name: "PaydexScore",
738
+ type: "number",
739
+ hint: "Dun & Bradstreet Paydex score (payment performance)",
740
+ order: 2,
741
+ },
742
+ {
743
+ name: "CreditLimit",
744
+ type: "money",
745
+ hint: "Recommended credit limit",
746
+ order: 3,
747
+ },
748
+ ],
749
+ },
750
+ {
751
+ name: "Payment History",
752
+ order: 1,
753
+ multi: true,
754
+ fields: [
755
+ {
756
+ name: "CreditorName",
757
+ type: "string",
758
+ hint: "Name of the creditor",
759
+ order: 0,
760
+ },
761
+ {
762
+ name: "AccountType",
763
+ type: "string",
764
+ hint: "Type of account (e.g., Trade, Bank, Leasing)",
765
+ order: 1,
766
+ },
767
+ {
768
+ name: "PaymentStatus",
769
+ type: "string",
770
+ hint: "Payment status (e.g., Current, Past Due, Default)",
771
+ order: 2,
772
+ },
773
+ {
774
+ name: "DaysPastDue",
775
+ type: "number",
776
+ hint: "Number of days past due (if applicable)",
777
+ order: 3,
778
+ },
779
+ ],
780
+ },
781
+ ],
782
+ },
783
+
784
+ // **************************
785
+ // Underwriting - UCC Filings & Business Registration
786
+ // **************************
787
+ {
788
+ name: "UCC Filings & Business Registration",
789
+ hint: "Extract UCC filing information and business registration details",
790
+ groups: [
791
+ {
792
+ name: "Business Registration",
793
+ order: 0,
794
+ fields: [
795
+ {
796
+ name: "EIN",
797
+ type: "string",
798
+ hint: "Employer Identification Number",
799
+ order: 0,
800
+ },
801
+ {
802
+ name: "StateOfIncorporation",
803
+ type: "string",
804
+ hint: "State where the company is incorporated",
805
+ order: 1,
806
+ },
807
+ {
808
+ name: "EntityType",
809
+ type: "string",
810
+ hint: "Type of business entity (e.g., LLC, Corporation, Partnership)",
811
+ order: 2,
812
+ },
813
+ {
814
+ name: "DateOfIncorporation",
815
+ type: "date",
816
+ hint: "Date the company was incorporated",
817
+ order: 3,
818
+ },
819
+ {
820
+ name: "RegisteredAgent",
821
+ type: "string",
822
+ hint: "Registered agent name",
823
+ order: 4,
824
+ },
825
+ ],
826
+ },
827
+ {
828
+ name: "UCC Filings",
829
+ order: 1,
830
+ multi: true,
831
+ fields: [
832
+ {
833
+ name: "FilingNumber",
834
+ type: "string",
835
+ hint: "UCC filing number",
836
+ order: 0,
837
+ },
838
+ {
839
+ name: "FilingDate",
840
+ type: "date",
841
+ hint: "Date of UCC filing",
842
+ order: 1,
843
+ },
844
+ {
845
+ name: "SecuredParty",
846
+ type: "string",
847
+ hint: "Name of the secured party (lender)",
848
+ order: 2,
849
+ },
850
+ {
851
+ name: "CollateralDescription",
852
+ type: "string-long",
853
+ hint: "Description of collateral covered by the filing",
854
+ order: 3,
855
+ },
856
+ {
857
+ name: "FilingStatus",
858
+ type: "string",
859
+ hint: "Filing status (e.g., Active, Terminated, Continuation)",
860
+ order: 4,
861
+ },
862
+ ],
863
+ },
864
+ ],
865
+ },
866
+
867
+ // **************************
868
+ // Underwriting - Security & Collateral
869
+ // **************************
870
+ {
871
+ name: "Security & Collateral",
872
+ hint: "Extract security and collateral information including property charges and personal guarantees",
873
+ groups: [
874
+ {
875
+ name: "Overview",
876
+ order: 0,
877
+ fields: [
878
+ {
879
+ name: "TotalSecurityValue",
880
+ type: "money",
881
+ hint: "Total value of all security provided",
882
+ order: 0,
883
+ },
884
+ {
885
+ name: "LoanToValue",
886
+ type: "number",
887
+ hint: "Loan to value ratio as a percentage",
888
+ order: 1,
889
+ },
890
+ ],
891
+ },
892
+ {
893
+ name: "Property Charges",
894
+ order: 1,
895
+ multi: true,
896
+ fields: [
897
+ {
898
+ name: "PropertyAddress",
899
+ type: "string-long",
900
+ hint: "Address of the property being charged",
901
+ order: 0,
902
+ },
903
+ {
904
+ name: "PropertyValue",
905
+ type: "money",
906
+ hint: "Current market value of the property",
907
+ order: 1,
908
+ },
909
+ {
910
+ name: "OutstandingMortgage",
911
+ type: "money",
912
+ hint: "Outstanding mortgage balance on the property",
913
+ order: 2,
914
+ },
915
+ {
916
+ name: "ChargeType",
917
+ type: "string",
918
+ hint: "Type of charge (e.g., First Charge, Second Charge, Floating Charge)",
919
+ order: 3,
920
+ },
921
+ ],
922
+ },
923
+ {
924
+ name: "Personal Guarantees",
925
+ order: 2,
926
+ multi: true,
927
+ fields: [
928
+ {
929
+ name: "GuarantorName",
930
+ type: "string",
931
+ hint: "Full name of the guarantor",
932
+ order: 0,
933
+ },
934
+ {
935
+ name: "GuaranteeAmount",
936
+ type: "money",
937
+ hint: "Amount guaranteed by this individual",
938
+ order: 1,
939
+ },
940
+ {
941
+ name: "PersonalAssetsValue",
942
+ type: "money",
943
+ hint: "Estimated value of personal assets of the guarantor",
944
+ order: 2,
945
+ },
946
+ ],
947
+ },
948
+ ],
949
+ },
950
+
951
+ // **************************
952
+ // Underwriting - Cash Conversion Ratios
953
+ // **************************
954
+ {
955
+ name: "Cash Conversion Ratios",
956
+ hint: "Capture DPO, DSO, DIO, and cash conversion cycle calculations",
957
+ groups: [
958
+ {
959
+ name: "Days Payable Outstanding",
960
+ order: 0,
961
+ fields: [
962
+ {
963
+ name: "Date",
964
+ type: "date",
965
+ hint: "The date corresponding to the calculation.",
966
+ order: 0,
967
+ },
968
+ {
969
+ name: "Period Length",
970
+ type: "string",
971
+ hint: "E.g. Monthly, Quarterly, Yearly.",
972
+ order: 1,
973
+ },
974
+ {
975
+ name: "Beginning AP",
976
+ type: "money",
977
+ hint: "Start of period balance sheet value (Accounts Payable).",
978
+ order: 2,
979
+ },
980
+ {
981
+ name: "Ending AP",
982
+ type: "money",
983
+ hint: "End of period balance sheet value (Accounts Payable).",
984
+ order: 3,
985
+ },
986
+ {
987
+ name: "Cost of Goods Sold (COGS)",
988
+ type: "money",
989
+ hint: "Total COGS for the period, from income statement.",
990
+ order: 4,
991
+ },
992
+ {
993
+ name: "Number of Days",
994
+ type: "number",
995
+ hint: "Length of the period (e.g., 90 for a quarter).",
996
+ order: 5,
997
+ },
998
+ {
999
+ name: "Days Payable Outstanding (DPO)",
1000
+ type: "number",
1001
+ hint: "Calculated as [(Beginning AP + Ending AP) / 2] / (COGS / Number of Days).",
1002
+ order: 6,
1003
+ },
1004
+ ],
1005
+ },
1006
+ {
1007
+ name: "Days Sales Outstanding",
1008
+ order: 1,
1009
+ fields: [
1010
+ {
1011
+ name: "Date",
1012
+ type: "date",
1013
+ hint: "The date corresponding to the calculation.",
1014
+ order: 0,
1015
+ },
1016
+ {
1017
+ name: "Period Length",
1018
+ type: "string",
1019
+ hint: "E.g. Monthly, Quarterly, Yearly.",
1020
+ order: 1,
1021
+ },
1022
+ {
1023
+ name: "Beginning AR",
1024
+ type: "money",
1025
+ hint: "Start of period balance sheet value (Accounts Receivable).",
1026
+ order: 2,
1027
+ },
1028
+ {
1029
+ name: "Ending AR",
1030
+ type: "money",
1031
+ hint: "End of period balance sheet value (Accounts Receivable).",
1032
+ order: 3,
1033
+ },
1034
+ {
1035
+ name: "Revenue",
1036
+ type: "money",
1037
+ hint: "Total revenue for the period, from the Income Statement.",
1038
+ order: 4,
1039
+ },
1040
+ {
1041
+ name: "Number of Days",
1042
+ type: "number",
1043
+ hint: "Length of the period (e.g., 90 for a quarter).",
1044
+ order: 5,
1045
+ },
1046
+ {
1047
+ name: "Days Sales Outstanding (DSO)",
1048
+ type: "number",
1049
+ hint: "Calculated as [(Beginning AR + Ending AR) / 2] / (Revenue / Number of Days).",
1050
+ order: 6,
1051
+ },
1052
+ ],
1053
+ },
1054
+ {
1055
+ name: "Days Inventory Outstanding",
1056
+ order: 2,
1057
+ fields: [
1058
+ {
1059
+ name: "Date",
1060
+ type: "date",
1061
+ hint: "The date corresponding to the calculation.",
1062
+ order: 0,
1063
+ },
1064
+ {
1065
+ name: "Period Length",
1066
+ type: "string",
1067
+ hint: "E.g. Monthly, Quarterly, Yearly.",
1068
+ order: 1,
1069
+ },
1070
+ {
1071
+ name: "Beginning Inventory",
1072
+ type: "money",
1073
+ hint: "Start of period balance sheet value.",
1074
+ order: 2,
1075
+ },
1076
+ {
1077
+ name: "Ending Inventory",
1078
+ type: "money",
1079
+ hint: "End of period balance sheet value.",
1080
+ order: 3,
1081
+ },
1082
+ {
1083
+ name: "Cost of Goods Sold (COGS)",
1084
+ type: "money",
1085
+ hint: "Total COGS for the period, from income statement.",
1086
+ order: 4,
1087
+ },
1088
+ {
1089
+ name: "Number of Days",
1090
+ type: "number",
1091
+ hint: "Length of the period (e.g., 90 for a quarter).",
1092
+ order: 5,
1093
+ },
1094
+ {
1095
+ name: "Days Inventory Outstanding (DIO)",
1096
+ type: "number",
1097
+ hint: "Calculated as [(Beginning Inventory + Ending Inventory) / 2] / (COGS / Number of Days).",
1098
+ order: 6,
1099
+ },
1100
+ ],
1101
+ },
1102
+ {
1103
+ name: "Cash Conversion Cycle",
1104
+ order: 3,
1105
+ fields: [
1106
+ {
1107
+ name: "CCC",
1108
+ type: "number",
1109
+ hint: "Calculated as DIO + DSO – DPO.",
1110
+ order: 0,
1111
+ },
1112
+ ],
1113
+ },
1114
+ ],
1115
+ },
1116
+ ],
1117
+ },
1118
+
1119
+ // **************************
1120
+ // Monitoring (Light Underwrite)
1121
+ // **************************
1122
+ {
1123
+ name: "Monitoring",
1124
+ slug: "monitoring",
1125
+ hint: "Extract payment records, covenant compliance, performance metrics, alerts",
1126
+ forms: [
1127
+ {
1128
+ // **************************
1129
+ // Monitoring - Investment Memo
1130
+ // **************************
1131
+ name: "Investment Memo",
1132
+ hint: "Extract borrower profile, credit request details, industry analysis, management assessment, and financial performance metrics from investment memorandum",
1133
+ groups: [
1134
+ {
1135
+ name: "Borrower Profile",
1136
+ order: 0,
1137
+ fields: [
1138
+ {
1139
+ name: "Borrower Name",
1140
+ type: "string",
1141
+ hint: "Legal name of the borrowing entity",
1142
+ order: 0,
1143
+ },
1144
+ {
1145
+ name: "Business Description",
1146
+ type: "string-long",
1147
+ hint: "Description of the borrower's primary business operations and activities",
1148
+ order: 1,
1149
+ },
1150
+ {
1151
+ name: "Company Overview",
1152
+ type: "string-long",
1153
+ hint: "Executive summary of the company including history, key products/services, and market position",
1154
+ order: 2,
1155
+ },
1156
+ {
1157
+ name: "Business Address",
1158
+ type: "string",
1159
+ hint: "Primary business address or headquarters location",
1160
+ order: 3,
1161
+ },
1162
+ {
1163
+ name: "Credit Request",
1164
+ type: "string-long",
1165
+ hint: "Details of the financing request including amount, purpose, and structure",
1166
+ order: 4,
1167
+ },
1168
+ {
1169
+ name: "EIN",
1170
+ type: "string",
1171
+ hint: "Employer Identification Number",
1172
+ order: 5,
1173
+ },
1174
+ ],
1175
+ },
1176
+ {
1177
+ name: "Industry & Market Analysis",
1178
+ order: 1,
1179
+ fields: [
1180
+ {
1181
+ name: "Industry Overview",
1182
+ type: "string-long",
1183
+ hint: "Analysis of the borrower's industry including trends, outlook, and competitive dynamics",
1184
+ order: 0,
1185
+ },
1186
+ {
1187
+ name: "BusinessOperations",
1188
+ type: "string-long",
1189
+ hint: "Detailed description of day-to-day business operations and revenue drivers",
1190
+ order: 1,
1191
+ },
1192
+ {
1193
+ name: "Market Segment",
1194
+ type: "string",
1195
+ hint: "Specific market segment or niche within the broader industry",
1196
+ order: 2,
1197
+ },
1198
+ {
1199
+ name: "Industry Classification",
1200
+ type: "string",
1201
+ hint: "NAICS or SIC industry classification code and description",
1202
+ order: 3,
1203
+ },
1204
+ {
1205
+ name: "Business Type",
1206
+ type: "string",
1207
+ hint: "Type of business entity (LLC, Corporation, Partnership, etc.)",
1208
+ order: 4,
1209
+ },
1210
+ ],
1211
+ },
1212
+ {
1213
+ name: "Management & Ownership",
1214
+ order: 2,
1215
+ fields: [
1216
+ {
1217
+ name: "Management Team",
1218
+ type: "string-long",
1219
+ hint: "Background and experience of key management personnel including CEO, CFO, and other executives",
1220
+ order: 0,
1221
+ },
1222
+ {
1223
+ name: "Ownership Structure",
1224
+ type: "string-long",
1225
+ hint: "Ownership percentages, key shareholders, and corporate structure details",
1226
+ order: 1,
1227
+ },
1228
+ ],
1229
+ },
1230
+ {
1231
+ name: "Credit Facility Details",
1232
+ order: 3,
1233
+ fields: [
1234
+ {
1235
+ name: "Facility Structure",
1236
+ type: "string-long",
1237
+ hint: "Proposed loan structure including facility type, terms, covenants, and security",
1238
+ order: 0,
1239
+ },
1240
+ ],
1241
+ },
1242
+ {
1243
+ name: "Banking Relationship",
1244
+ order: 4,
1245
+ fields: [
1246
+ {
1247
+ name: "Banking History",
1248
+ type: "string-long",
1249
+ hint: "Historical banking relationship and account performance summary",
1250
+ order: 0,
1251
+ },
1252
+ {
1253
+ name: "Account Activity",
1254
+ type: "string-long",
1255
+ hint: "Summary of recent account activity and transaction patterns",
1256
+ order: 1,
1257
+ },
1258
+ {
1259
+ name: "Primary Account Number",
1260
+ type: "string",
1261
+ hint: "Primary operating account number",
1262
+ order: 2,
1263
+ },
1264
+ {
1265
+ name: "Statement Date",
1266
+ type: "date",
1267
+ hint: "Most recent bank statement date",
1268
+ order: 3,
1269
+ },
1270
+ {
1271
+ name: "Current Balance",
1272
+ type: "money",
1273
+ hint: "Current account balance as of statement date",
1274
+ order: 4,
1275
+ },
1276
+ {
1277
+ name: "Low Balance",
1278
+ type: "money",
1279
+ hint: "Lowest account balance during the review period",
1280
+ order: 5,
1281
+ },
1282
+ ],
1283
+ },
1284
+ {
1285
+ name: "Financial Performance",
1286
+ order: 5,
1287
+ fields: [
1288
+ {
1289
+ name: "Financial Period",
1290
+ type: "string",
1291
+ hint: "Financial reporting period being analyzed (e.g., FY2023, TTM, etc.)",
1292
+ order: 0,
1293
+ },
1294
+ {
1295
+ name: "EBITDA",
1296
+ type: "money",
1297
+ hint: "Earnings before interest, taxes, depreciation and amortization for the period",
1298
+ order: 1,
1299
+ },
1300
+ {
1301
+ name: "Total Debt To EBITDA",
1302
+ type: "number",
1303
+ hint: "Total debt to EBITDA ratio indicating leverage level",
1304
+ order: 2,
1305
+ },
1306
+ {
1307
+ name: "Debt Service Coverage Ratio",
1308
+ type: "number",
1309
+ hint: "Projected debt service coverage ratio demonstrating repayment capacity",
1310
+ order: 3,
1311
+ },
1312
+ {
1313
+ name: "Cash Flow Breakeven",
1314
+ type: "string",
1315
+ hint: "Projected month when borrower achieves positive cash flow",
1316
+ order: 4,
1317
+ },
1318
+ ],
1319
+ },
1320
+ ],
1321
+ },
1322
+
1323
+ // **************************
1324
+ // Monitoring - Bank Statement
1325
+ // **************************
1326
+ {
1327
+ name: "Bank Statement",
1328
+ hint: "Extract account balances, transactions, deposits, withdrawals, and cash flow patterns",
1329
+ groups: [
1330
+ {
1331
+ name: "Bank Statement",
1332
+ order: 0,
1333
+ fields: [
1334
+ {
1335
+ name: "BankName",
1336
+ type: "string",
1337
+ order: 0,
1338
+ },
1339
+ {
1340
+ name: "AccountNumber",
1341
+ type: "string",
1342
+ order: 1,
1343
+ },
1344
+ {
1345
+ name: "AccountType",
1346
+ type: "string",
1347
+ order: 2,
1348
+ },
1349
+ {
1350
+ name: "AccountHolderName",
1351
+ type: "string",
1352
+ order: 3,
1353
+ },
1354
+ {
1355
+ name: "StatementPeriodStart",
1356
+ type: "date",
1357
+ order: 4,
1358
+ },
1359
+ {
1360
+ name: "StatementPeriodEnd",
1361
+ type: "date",
1362
+ order: 5,
1363
+ },
1364
+ {
1365
+ name: "OpeningBalance",
1366
+ type: "money",
1367
+ order: 6,
1368
+ },
1369
+ {
1370
+ name: "ClosingBalance",
1371
+ type: "money",
1372
+ order: 7,
1373
+ },
1374
+ {
1375
+ name: "IBAN",
1376
+ type: "string",
1377
+ order: 8,
1378
+ },
1379
+ {
1380
+ name: "Currency",
1381
+ type: "string",
1382
+ order: 9,
1383
+ },
1384
+ {
1385
+ name: "SortCode",
1386
+ type: "string",
1387
+ order: 10,
1388
+ },
1389
+ ],
1390
+ },
1391
+ {
1392
+ name: "Transactions",
1393
+ multi: true,
1394
+ order: 1,
1395
+ fields: [
1396
+ {
1397
+ name: "Date",
1398
+ type: "date",
1399
+ order: 0,
1400
+ },
1401
+ {
1402
+ name: "Description",
1403
+ type: "string",
1404
+ order: 1,
1405
+ },
1406
+ {
1407
+ name: "DepositAmount",
1408
+ type: "money",
1409
+ order: 2,
1410
+ },
1411
+ {
1412
+ name: "WithdrawalAmount",
1413
+ type: "money",
1414
+ order: 3,
1415
+ },
1416
+ {
1417
+ name: "Balance",
1418
+ type: "money",
1419
+ order: 4,
1420
+ },
1421
+ ],
1422
+ },
1423
+ ],
1424
+ },
1425
+
1426
+ // **************************
1427
+ // Monitoring - Principal Owners (US)
1428
+ // **************************
1429
+ {
1430
+ name: "Principal Owners",
1431
+ hint: "Extract principal owner information including SSN, ownership percentage, and personal details",
1432
+ groups: [
1433
+ {
1434
+ name: "Company Information",
1435
+ order: 0,
1436
+ fields: [
1437
+ {
1438
+ name: "EIN",
1439
+ type: "string",
1440
+ hint: "Employer Identification Number",
1441
+ order: 0,
1442
+ },
1443
+ {
1444
+ name: "StateOfIncorporation",
1445
+ type: "string",
1446
+ hint: "State where the company is incorporated",
1447
+ order: 1,
1448
+ },
1449
+ {
1450
+ name: "DateOfIncorporation",
1451
+ type: "date",
1452
+ hint: "Date the company was incorporated",
1453
+ order: 2,
1454
+ },
1455
+ ],
1456
+ },
1457
+ {
1458
+ name: "Principal Owners",
1459
+ order: 1,
1460
+ multi: true,
1461
+ fields: [
1462
+ {
1463
+ name: "OwnerName",
1464
+ type: "string",
1465
+ hint: "Full name of the principal owner",
1466
+ order: 0,
1467
+ },
1468
+ {
1469
+ name: "SSN",
1470
+ type: "string",
1471
+ hint: "Social Security Number (last 4 digits only for security)",
1472
+ order: 1,
1473
+ },
1474
+ {
1475
+ name: "OwnershipPercentage",
1476
+ type: "number",
1477
+ hint: "Percentage of ownership in the company",
1478
+ order: 2,
1479
+ },
1480
+ {
1481
+ name: "Title",
1482
+ type: "string",
1483
+ hint: "Title or role in the company (e.g., CEO, President, Managing Member)",
1484
+ order: 3,
1485
+ },
1486
+ {
1487
+ name: "DateOfBirth",
1488
+ type: "date",
1489
+ hint: "Owner's date of birth",
1490
+ order: 4,
1491
+ },
1492
+ {
1493
+ name: "ResidentialAddress",
1494
+ type: "string-long",
1495
+ hint: "Owner's residential address",
1496
+ order: 5,
1497
+ },
1498
+ ],
1499
+ },
1500
+ ],
1501
+ },
1502
+
1503
+ // **************************
1504
+ // Monitoring - Covenant Compliance
1505
+ // **************************
1506
+ {
1507
+ name: "Covenant Compliance",
1508
+ hint: "Extract covenant compliance information including financial covenants and overall compliance status",
1509
+ groups: [
1510
+ {
1511
+ name: "Reporting Information",
1512
+ order: 0,
1513
+ fields: [
1514
+ {
1515
+ name: "ReportingPeriod",
1516
+ type: "string",
1517
+ hint: "Reporting period for covenant compliance (e.g., Q1 2024, FY 2024)",
1518
+ order: 0,
1519
+ },
1520
+ {
1521
+ name: "OverallComplianceStatus",
1522
+ type: "string",
1523
+ hint: "Overall compliance status (e.g., Compliant, Breach, At Risk)",
1524
+ order: 1,
1525
+ },
1526
+ ],
1527
+ },
1528
+ {
1529
+ name: "Financial Covenants",
1530
+ order: 1,
1531
+ multi: true,
1532
+ fields: [
1533
+ {
1534
+ name: "CovenantDescription",
1535
+ type: "string-long",
1536
+ hint: "Description of the covenant requirement",
1537
+ order: 0,
1538
+ },
1539
+ {
1540
+ name: "RequiredLevel",
1541
+ type: "string",
1542
+ hint: "Required level or threshold for compliance",
1543
+ order: 1,
1544
+ },
1545
+ {
1546
+ name: "ActualLevel",
1547
+ type: "string",
1548
+ hint: "Actual level achieved",
1549
+ order: 2,
1550
+ },
1551
+ {
1552
+ name: "ComplianceStatus",
1553
+ type: "string",
1554
+ hint: "Compliance status for this specific covenant (e.g., Compliant, Breach)",
1555
+ order: 3,
1556
+ },
1557
+ {
1558
+ name: "Comments",
1559
+ type: "string-long",
1560
+ hint: "Additional comments or notes regarding compliance",
1561
+ order: 4,
1562
+ },
1563
+ ],
1564
+ },
1565
+ ],
1566
+ },
1567
+ ],
1568
+ },
1569
+ ];