abstra 3.24.0__py3-none-any.whl → 3.24.2__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 (331) hide show
  1. abstra/cli.py +8 -2
  2. {abstra-3.24.0.dist-info → abstra-3.24.2.dist-info}/METADATA +1 -2
  3. {abstra-3.24.0.dist-info → abstra-3.24.2.dist-info}/RECORD +205 -209
  4. abstra_internals/cloud_api/__init__.py +17 -8
  5. abstra_internals/contracts_generated.py +975 -707
  6. abstra_internals/controllers/ai.py +89 -1
  7. abstra_internals/controllers/git.py +6 -2
  8. abstra_internals/controllers/main.py +1 -1
  9. abstra_internals/interface/cli/editor.py +2 -2
  10. abstra_internals/repositories/git/__init__.py +1 -14
  11. abstra_internals/repositories/git/git_test.py +9 -1216
  12. abstra_internals/repositories/git/native.py +13 -7
  13. abstra_internals/repositories/git/types.py +7 -1
  14. abstra_internals/server/routes/git.py +11 -2
  15. abstra_statics/dist/assets/AbstraButton.vue_vue_type_script_setup_true_lang.a3ba2a31.js +2 -0
  16. abstra_statics/dist/assets/AbstraLogo.vue_vue_type_script_setup_true_lang.b1a71740.js +2 -0
  17. abstra_statics/dist/assets/ApiKeys.dafa1dc2.js +2 -0
  18. abstra_statics/dist/assets/App.45396b70.js +2 -0
  19. abstra_statics/dist/assets/App.vue_vue_type_style_index_0_lang.db5596a1.js +2 -0
  20. abstra_statics/dist/assets/BaseLayout.135a51d9.js +2 -0
  21. abstra_statics/dist/assets/Billing.622c9155.js +2 -0
  22. abstra_statics/dist/assets/{Breadcrumb.26dec5f7.js → Breadcrumb.8a82fa01.js} +3 -3
  23. abstra_statics/dist/assets/Builds.38c0f966.css +1 -0
  24. abstra_statics/dist/assets/Builds.c3fd9633.js +2 -0
  25. abstra_statics/dist/assets/{Card.6cfffb80.js → Card.38a860a4.js} +5 -5
  26. abstra_statics/dist/assets/{CircularLoading.a13d6a76.js → CircularLoading.217756fb.js} +2 -2
  27. abstra_statics/dist/assets/CloseCircleOutlined.4c4707d8.js +2 -0
  28. abstra_statics/dist/assets/ConnectorsView.121898a9.js +2 -0
  29. abstra_statics/dist/assets/ConnectorsView.b594798e.css +1 -0
  30. abstra_statics/dist/assets/ConsoleOmniChat.vue_vue_type_script_setup_true_lang.502d779a.js +2 -0
  31. abstra_statics/dist/assets/ContentLayout.b1c94c2b.js +2 -0
  32. abstra_statics/dist/assets/CrudView.75a430a4.js +2 -0
  33. abstra_statics/dist/assets/CrudView.8abe5bc2.css +1 -0
  34. abstra_statics/dist/assets/DocsButton.vue_vue_type_script_setup_true_lang.a9c8118b.js +2 -0
  35. abstra_statics/dist/assets/EditorLogin.fba78ce9.js +2 -0
  36. abstra_statics/dist/assets/EditorsView.1a9ccb13.js +2 -0
  37. abstra_statics/dist/assets/EnvVars.d77957ea.js +2 -0
  38. abstra_statics/dist/assets/Error.5bd293cc.js +2 -0
  39. abstra_statics/dist/assets/ExclamationCircleOutlined.5d5c3f30.js +2 -0
  40. abstra_statics/dist/assets/Files.39b07d88.css +1 -0
  41. abstra_statics/dist/assets/Files.c4ce443f.js +2 -0
  42. abstra_statics/dist/assets/Form.a4787001.js +2 -0
  43. abstra_statics/dist/assets/{FormRunner.46f6426d.css → FormRunner.1e6e7d2a.css} +1 -1
  44. abstra_statics/dist/assets/FormRunner.73650f9e.js +2 -0
  45. abstra_statics/dist/assets/Home.19a2303b.js +2 -0
  46. abstra_statics/dist/assets/Home.4eff6ce9.js +2 -0
  47. abstra_statics/dist/assets/Home.e8bf9440.css +1 -0
  48. abstra_statics/dist/assets/LoadingContainer.97fa8f2e.js +2 -0
  49. abstra_statics/dist/assets/LoadingOutlined.e309ab16.js +2 -0
  50. abstra_statics/dist/assets/Login.632cada3.js +2 -0
  51. abstra_statics/dist/assets/{Login.75d13f6c.css → Login.ac75228f.css} +1 -1
  52. abstra_statics/dist/assets/Login.ecec1ff2.js +2 -0
  53. abstra_statics/dist/assets/Login.vue_vue_type_script_setup_true_lang.ada1c6c9.js +2 -0
  54. abstra_statics/dist/assets/Logo.d77d5637.js +2 -0
  55. abstra_statics/dist/assets/Logs.c1f01b05.js +2 -0
  56. abstra_statics/dist/assets/LogsController.0ff97ed4.css +1 -0
  57. abstra_statics/dist/assets/LogsController.2dceb3d3.js +2 -0
  58. abstra_statics/dist/assets/Main.44b7640e.js +2 -0
  59. abstra_statics/dist/assets/{MockForm.deda9355.js → MockForm.9b7a0df3.js} +2 -2
  60. abstra_statics/dist/assets/Navbar.0951ed6d.js +2 -0
  61. abstra_statics/dist/assets/Navbar.61d3e0a6.css +1 -0
  62. abstra_statics/dist/assets/NewEditor.d65a400f.js +8 -0
  63. abstra_statics/dist/assets/NewEditor.e3cfeb2c.css +1 -0
  64. abstra_statics/dist/assets/OidcLoginCallback.66b0f38a.js +2 -0
  65. abstra_statics/dist/assets/OidcLogoutCallback.48d8429a.js +2 -0
  66. abstra_statics/dist/assets/OmniChat.60ee26c8.css +1 -0
  67. abstra_statics/dist/assets/OmniChat.c3de8733.js +6 -0
  68. abstra_statics/dist/assets/OnboardingView.6cda1bc5.js +2 -0
  69. abstra_statics/dist/assets/OnboardingView.e871e6d8.css +1 -0
  70. abstra_statics/dist/assets/Organization.c36206b7.js +2 -0
  71. abstra_statics/dist/assets/Organizations.2b1c6c65.js +2 -0
  72. abstra_statics/dist/assets/{PhArrowCounterClockwise.vue.8090d021.js → PhArrowCounterClockwise.vue.9e570570.js} +2 -2
  73. abstra_statics/dist/assets/{PhArrowSquareOut.vue.26582195.js → PhArrowSquareOut.vue.bcbdb6e7.js} +2 -2
  74. abstra_statics/dist/assets/{PhClockCounterClockwise.vue.812311ad.js → PhClockCounterClockwise.vue.4bd682d8.js} +2 -2
  75. abstra_statics/dist/assets/{PhCopy.vue.59b0f1b4.js → PhCopy.vue.29934bc2.js} +2 -2
  76. abstra_statics/dist/assets/PhCopySimple.vue.0241af8c.js +2 -0
  77. abstra_statics/dist/assets/{PhCube.vue.63ae7d32.js → PhCube.vue.0fe2c514.js} +2 -2
  78. abstra_statics/dist/assets/PhDatabase.vue.fdfb515c.js +2 -0
  79. abstra_statics/dist/assets/{PhDotsThreeVertical.vue.ab4580a5.js → PhDotsThreeVertical.vue.7a0e0638.js} +2 -2
  80. abstra_statics/dist/assets/{PhDownloadSimple.vue.c2eaaad1.js → PhDownloadSimple.vue.f1245c40.js} +2 -2
  81. abstra_statics/dist/assets/PhFileArrowUp.vue.c292afe1.js +2 -0
  82. abstra_statics/dist/assets/PhFilePlus.vue.c39ff1a9.js +2 -0
  83. abstra_statics/dist/assets/{PhFolderPlus.vue.05ba4a5c.js → PhFolderPlus.vue.bc40161e.js} +2 -2
  84. abstra_statics/dist/assets/{PhGear.vue.0e4a6135.js → PhGear.vue.0feed515.js} +2 -2
  85. abstra_statics/dist/assets/{PhKey.vue.b2c184d1.js → PhKey.vue.15a9e64e.js} +2 -2
  86. abstra_statics/dist/assets/{PhPencil.vue.2f2fe576.js → PhPencil.vue.a7219766.js} +2 -2
  87. abstra_statics/dist/assets/PhPencilSimple.vue.15a2b403.js +2 -0
  88. abstra_statics/dist/assets/PhRocket.vue.7155b91f.js +2 -0
  89. abstra_statics/dist/assets/{PhSignOut.vue.a271f14b.js → PhSignOut.vue.2af17bd7.js} +2 -2
  90. abstra_statics/dist/assets/{PhSparkle.vue.726defa2.js → PhSparkle.vue.c7f06cac.js} +2 -2
  91. abstra_statics/dist/assets/PhTranslate.vue.2ce651a6.js +2 -0
  92. abstra_statics/dist/assets/{PhUsersThree.vue.275d13ab.js → PhUsersThree.vue.2942df75.js} +2 -2
  93. abstra_statics/dist/assets/{PhWarningCircle.vue.3b1aca1b.js → PhWarningCircle.vue.05a40bc4.js} +2 -2
  94. abstra_statics/dist/assets/PhWebhooksLogo.vue.e4752384.js +2 -0
  95. abstra_statics/dist/assets/PlayerConfigProvider.00af5968.js +2 -0
  96. abstra_statics/dist/assets/PlayerNavbar.117f184b.js +2 -0
  97. abstra_statics/dist/assets/{PlayerNavbar.77209eae.css → PlayerNavbar.4dc29a45.css} +1 -1
  98. abstra_statics/dist/assets/Project.66111161.js +2 -0
  99. abstra_statics/dist/assets/Project.9c418d2e.css +1 -0
  100. abstra_statics/dist/assets/ProjectLogin.d9bb1f86.js +2 -0
  101. abstra_statics/dist/assets/ProjectSettings.f8c6f60a.js +2 -0
  102. abstra_statics/dist/assets/ProjectsView.32f6ccff.js +2 -0
  103. abstra_statics/dist/assets/ProjectsView.e26ddfd5.css +1 -0
  104. abstra_statics/dist/assets/SaveButton.363ea20f.css +1 -0
  105. abstra_statics/dist/assets/SaveButton.c3f2a4bb.js +2 -0
  106. abstra_statics/dist/assets/ScrollArea.vue_vue_type_script_setup_true_lang.cb5567cd.js +2 -0
  107. abstra_statics/dist/assets/{Sidebar.29baeab0.css → Sidebar.161522da.css} +1 -1
  108. abstra_statics/dist/assets/Sidebar.1c4e35be.js +2 -0
  109. abstra_statics/dist/assets/Sql.6d9a778c.css +1 -0
  110. abstra_statics/dist/assets/Sql.8d31ec23.js +5 -0
  111. abstra_statics/dist/assets/Steps.687763a5.js +2 -0
  112. abstra_statics/dist/assets/TableCard.8c99a870.js +2 -0
  113. abstra_statics/dist/assets/{TableEditor.5853a363.css → TableEditor.20fecc75.css} +1 -1
  114. abstra_statics/dist/assets/TableEditor.ba7a8b6a.js +2 -0
  115. abstra_statics/dist/assets/Tables.113960f2.js +39 -0
  116. abstra_statics/dist/assets/TablesDiagram.8e6d1e89.js +15 -0
  117. abstra_statics/dist/assets/TablesTabs.vue_vue_type_script_setup_true_lang.5cc96b0d.js +2 -0
  118. abstra_statics/dist/assets/Tasks.90846020.js +2 -0
  119. abstra_statics/dist/assets/{UploadOutlined.eab75eb0.js → UploadOutlined.518baf9a.js} +2 -2
  120. abstra_statics/dist/assets/View.ded6b355.js +2 -0
  121. abstra_statics/dist/assets/View.vue_vue_type_script_setup_true_lang.285b5e2c.js +2 -0
  122. abstra_statics/dist/assets/Watermark.5071a4b2.js +2 -0
  123. abstra_statics/dist/assets/WebEditor.18ece735.js +2 -0
  124. abstra_statics/dist/assets/WebEditor.b886e4d1.css +1 -0
  125. abstra_statics/dist/assets/WidgetPreview.88a4f27f.js +2 -0
  126. abstra_statics/dist/assets/WorkflowViewer.3b6aee8e.css +1 -0
  127. abstra_statics/dist/assets/WorkflowViewer.778c401d.js +2 -0
  128. abstra_statics/dist/assets/ant-design.4efc9ccd.js +2 -0
  129. abstra_statics/dist/assets/{apiKey.72f497ca.js → apiKey.bd946d8c.js} +2 -2
  130. abstra_statics/dist/assets/asyncComputed.7bc1692e.js +2 -0
  131. abstra_statics/dist/assets/{build.df2d55cc.js → build.a8637e29.js} +2 -2
  132. abstra_statics/dist/assets/colorHelpers.8ba18214.js +2 -0
  133. abstra_statics/dist/assets/{console.2bf7f04d.js → console.2a5ed51a.js} +4 -4
  134. abstra_statics/dist/assets/constants.534f67bc.js +2 -0
  135. abstra_statics/dist/assets/contracts.generated.8ad36e63.js +2 -0
  136. abstra_statics/dist/assets/{cssMode.7133c7cb.js → cssMode.6c4ccf50.js} +2 -2
  137. abstra_statics/dist/assets/{datetime.8de2ff28.js → datetime.89495471.js} +2 -2
  138. abstra_statics/dist/assets/dayjs.304f38f8.js +2 -0
  139. abstra_statics/dist/assets/editor.c1a1bd33.js +2 -0
  140. abstra_statics/dist/assets/editor.main.84e237cf.js +2 -0
  141. abstra_statics/dist/assets/fetch.452c58e5.js +2 -0
  142. abstra_statics/dist/assets/files.8999afd5.js +2 -0
  143. abstra_statics/dist/assets/{folder.d8e23009.js → folder.81ef8619.js} +2 -2
  144. abstra_statics/dist/assets/{freemarker2.6698d1ea.js → freemarker2.559f77f2.js} +2 -2
  145. abstra_statics/dist/assets/{handlebars.a6c42dc0.js → handlebars.8d101b7c.js} +2 -2
  146. abstra_statics/dist/assets/{html.493a5410.js → html.b3e7d3ab.js} +3 -3
  147. abstra_statics/dist/assets/{htmlMode.a28b2fca.js → htmlMode.2305b1bb.js} +2 -2
  148. abstra_statics/dist/assets/{index.fb49354b.js → index.71eb83f3.js} +2 -2
  149. abstra_statics/dist/assets/{index.79ce3bf1.js → index.90acf038.js} +2 -2
  150. abstra_statics/dist/assets/index.b74c262c.js +4 -0
  151. abstra_statics/dist/assets/index.bc97991a.js +2 -0
  152. abstra_statics/dist/assets/index.d809956c.js +2 -0
  153. abstra_statics/dist/assets/{index.57042181.css → index.da037bc0.css} +1 -1
  154. abstra_statics/dist/assets/index.da4f9d54.js +2 -0
  155. abstra_statics/dist/assets/{index.c34a405a.js → index.e5cb42a1.js} +2 -2
  156. abstra_statics/dist/assets/{index.5d6b1e62.js → index.f2beb20d.js} +2 -2
  157. abstra_statics/dist/assets/{index.4d20c159.js → index.f6171691.js} +3 -3
  158. abstra_statics/dist/assets/{javascript.3a36cf17.js → javascript.3000fc25.js} +3 -3
  159. abstra_statics/dist/assets/{jsonMode.bead6ac8.js → jsonMode.7bbb508d.js} +2 -2
  160. abstra_statics/dist/assets/{jwt-decode.9f7a5511.css → jwt-decode.c5760184.css} +2 -2
  161. abstra_statics/dist/assets/{jwt-decode.esm.d4517a10.js → jwt-decode.esm.c9c37cdc.js} +197 -197
  162. abstra_statics/dist/assets/{linters.2f3141cb.js → linters.7fec18d9.js} +2 -2
  163. abstra_statics/dist/assets/{liquid.0c337fae.js → liquid.b4ac9aaf.js} +3 -3
  164. abstra_statics/dist/assets/member.3c12efee.js +2 -0
  165. abstra_statics/dist/assets/metadata.e627ddda.js +2 -0
  166. abstra_statics/dist/assets/omniChatStore.508e8ece.js +9 -0
  167. abstra_statics/dist/assets/omniChatStore.b58e3bed.css +1 -0
  168. abstra_statics/dist/assets/{organization.928c9bef.js → organization.cd03f9a8.js} +2 -2
  169. abstra_statics/dist/assets/os.f08724fb.js +2 -0
  170. abstra_statics/dist/assets/player.7362caf4.js +2 -0
  171. abstra_statics/dist/assets/{plotly.min.7225d3a0.js → plotly.min.50ebb925.js} +2 -2
  172. abstra_statics/dist/assets/polling.4db5ee9a.js +2 -0
  173. abstra_statics/dist/assets/{project.619b7244.js → project.9a068e8d.js} +2 -2
  174. abstra_statics/dist/assets/{python.05764499.js → python.51a7c648.js} +3 -3
  175. abstra_statics/dist/assets/{razor.81a45581.js → razor.99323f5f.js} +3 -3
  176. abstra_statics/dist/assets/record.a33d29b1.js +2 -0
  177. abstra_statics/dist/assets/{redirect.f028a879.js → redirect.42bf4f0a.js} +2 -2
  178. abstra_statics/dist/assets/repository.5190b94f.js +2 -0
  179. abstra_statics/dist/assets/repository.94fb77c7.js +2 -0
  180. abstra_statics/dist/assets/repository.c0d70cb2.js +2 -0
  181. abstra_statics/dist/assets/router.4168cc71.js +2 -0
  182. abstra_statics/dist/assets/{router.424f7da9.js → router.a8616541.js} +5 -5
  183. abstra_statics/dist/assets/string.8fab6b53.js +2 -0
  184. abstra_statics/dist/assets/{tables.1f68ec62.js → tables.2e1c934b.js} +2 -2
  185. abstra_statics/dist/assets/tasksController.1feffcfe.js +4 -0
  186. abstra_statics/dist/assets/{toggleHighContrast.0d0e5662.js → toggleHighContrast.6544a728.js} +7 -7
  187. abstra_statics/dist/assets/{tsMode.6eadbf06.js → tsMode.922e04bb.js} +2 -2
  188. abstra_statics/dist/assets/{typescript.1670e287.js → typescript.1b4f8286.js} +3 -3
  189. abstra_statics/dist/assets/url.9e033350.js +2 -0
  190. abstra_statics/dist/assets/{useCodebaseEvents.53dec1f2.js → useCodebaseEvents.ffe057d1.js} +2 -2
  191. abstra_statics/dist/assets/useTables.5fffa3f1.js +2 -0
  192. abstra_statics/dist/assets/userStore.d962fba4.js +2 -0
  193. abstra_statics/dist/assets/uuid.8581bc03.js +2 -0
  194. abstra_statics/dist/assets/vue-flow-background.3e9183ec.js +2 -0
  195. abstra_statics/dist/assets/vue-flow-core.41c647da.js +22 -0
  196. abstra_statics/dist/assets/{vue-quill.esm-bundler.c4f04985.js → vue-quill.esm-bundler.36e79a95.js} +2 -2
  197. abstra_statics/dist/assets/{workspaceStore.6244d03d.js → workspaceStore.5a435520.js} +2 -2
  198. abstra_statics/dist/assets/{xml.f2867af8.js → xml.c1692f52.js} +3 -3
  199. abstra_statics/dist/assets/{yaml.5427bb1b.js → yaml.244444c1.js} +2 -2
  200. abstra_statics/dist/console.html +15 -15
  201. abstra_statics/dist/editor.html +15 -15
  202. abstra_statics/dist/player.html +10 -10
  203. abstra/connectors/banking/__init__.py +0 -0
  204. abstra/connectors/banking/brazil.py +0 -5
  205. abstra_internals/repositories/git/dulwich.py +0 -1353
  206. abstra_internals/services/banking/__init__.py +0 -3
  207. abstra_internals/services/banking/banking_service.py +0 -104
  208. abstra_internals/services/banking/client_factory.py +0 -70
  209. abstra_internals/services/banking/sdk/__init__.py +0 -0
  210. abstra_internals/services/banking/sdk/generate_totalbank_api.py +0 -383
  211. abstra_statics/dist/assets/AbstraButton.vue_vue_type_script_setup_true_lang.eb8ccb64.js +0 -2
  212. abstra_statics/dist/assets/AbstraLogo.vue_vue_type_script_setup_true_lang.9f98292e.js +0 -2
  213. abstra_statics/dist/assets/ApiKeys.e975c4f3.js +0 -2
  214. abstra_statics/dist/assets/App.f62faff6.js +0 -2
  215. abstra_statics/dist/assets/App.vue_vue_type_style_index_0_lang.5aa45ac1.js +0 -2
  216. abstra_statics/dist/assets/BaseLayout.1ec2c96d.js +0 -2
  217. abstra_statics/dist/assets/Billing.60adc9fa.js +0 -2
  218. abstra_statics/dist/assets/Builds.ace9e3da.css +0 -1
  219. abstra_statics/dist/assets/Builds.f86210bc.js +0 -2
  220. abstra_statics/dist/assets/CloseCircleOutlined.30bc25a8.js +0 -2
  221. abstra_statics/dist/assets/ConnectorsView.33c5380f.css +0 -1
  222. abstra_statics/dist/assets/ConnectorsView.eb4c769f.js +0 -2
  223. abstra_statics/dist/assets/ConsoleOmniChat.vue_vue_type_script_setup_true_lang.8d2e4672.js +0 -2
  224. abstra_statics/dist/assets/ContentLayout.d03fee5b.js +0 -2
  225. abstra_statics/dist/assets/CrudView.c0824225.js +0 -2
  226. abstra_statics/dist/assets/CrudView.e24590ae.css +0 -1
  227. abstra_statics/dist/assets/DocsButton.vue_vue_type_script_setup_true_lang.3668aee4.js +0 -2
  228. abstra_statics/dist/assets/EditorLogin.46db248f.js +0 -2
  229. abstra_statics/dist/assets/EditorsView.e72621fa.js +0 -2
  230. abstra_statics/dist/assets/EnvVars.f9f9d61f.js +0 -2
  231. abstra_statics/dist/assets/Error.864f05b3.js +0 -2
  232. abstra_statics/dist/assets/ExclamationCircleOutlined.a489b996.js +0 -2
  233. abstra_statics/dist/assets/Files.afe615e1.js +0 -2
  234. abstra_statics/dist/assets/Files.d0e8d2ff.css +0 -1
  235. abstra_statics/dist/assets/Form.556d0de2.js +0 -2
  236. abstra_statics/dist/assets/FormRunner.7f56a8c6.js +0 -2
  237. abstra_statics/dist/assets/Home.287d17f8.js +0 -2
  238. abstra_statics/dist/assets/Home.3794e8b4.css +0 -1
  239. abstra_statics/dist/assets/Home.5b7e9c23.js +0 -2
  240. abstra_statics/dist/assets/Live.37415b2d.css +0 -1
  241. abstra_statics/dist/assets/Live.50bacfea.js +0 -2
  242. abstra_statics/dist/assets/LoadingContainer.ebace8de.js +0 -2
  243. abstra_statics/dist/assets/LoadingOutlined.9e949112.js +0 -2
  244. abstra_statics/dist/assets/Login.536a3067.js +0 -2
  245. abstra_statics/dist/assets/Login.bec408c9.js +0 -2
  246. abstra_statics/dist/assets/Login.vue_vue_type_script_setup_true_lang.1c3f108d.js +0 -2
  247. abstra_statics/dist/assets/Logo.82d6ab70.js +0 -2
  248. abstra_statics/dist/assets/Logs.f6135084.js +0 -2
  249. abstra_statics/dist/assets/LogsController.6b666816.js +0 -2
  250. abstra_statics/dist/assets/LogsController.fb0d96c2.css +0 -1
  251. abstra_statics/dist/assets/Main.77b115f8.js +0 -2
  252. abstra_statics/dist/assets/Navbar.2dc6d02c.css +0 -1
  253. abstra_statics/dist/assets/Navbar.4a6f2b09.js +0 -2
  254. abstra_statics/dist/assets/NewEditor.5f84de86.css +0 -1
  255. abstra_statics/dist/assets/NewEditor.e558e47d.js +0 -8
  256. abstra_statics/dist/assets/OidcLoginCallback.7f514b45.js +0 -2
  257. abstra_statics/dist/assets/OidcLogoutCallback.038813a1.js +0 -2
  258. abstra_statics/dist/assets/OmniChat.05ba8d8a.css +0 -1
  259. abstra_statics/dist/assets/OmniChat.60d98deb.js +0 -6
  260. abstra_statics/dist/assets/OnboardingView.3996b08d.css +0 -1
  261. abstra_statics/dist/assets/OnboardingView.9413ee50.js +0 -2
  262. abstra_statics/dist/assets/Organization.7203cc0b.js +0 -2
  263. abstra_statics/dist/assets/Organizations.91220ca0.js +0 -2
  264. abstra_statics/dist/assets/PhBookBookmark.vue.5b7ab079.js +0 -2
  265. abstra_statics/dist/assets/PhChats.vue.b5df7174.js +0 -2
  266. abstra_statics/dist/assets/PhCopySimple.vue.d41d9160.js +0 -2
  267. abstra_statics/dist/assets/PhDatabase.vue.edfcb96b.js +0 -2
  268. abstra_statics/dist/assets/PhPencilSimple.vue.cc8620ae.js +0 -2
  269. abstra_statics/dist/assets/PhRocket.vue.e397203c.js +0 -2
  270. abstra_statics/dist/assets/PhUserList.vue.6a29f16d.js +0 -2
  271. abstra_statics/dist/assets/PhWebhooksLogo.vue.5e772aac.js +0 -2
  272. abstra_statics/dist/assets/PlayerConfigProvider.e90a2b41.js +0 -2
  273. abstra_statics/dist/assets/PlayerNavbar.11ec1844.js +0 -2
  274. abstra_statics/dist/assets/Project.9c75c141.css +0 -1
  275. abstra_statics/dist/assets/Project.c16740fb.js +0 -2
  276. abstra_statics/dist/assets/ProjectLogin.e7a6f444.js +0 -2
  277. abstra_statics/dist/assets/ProjectSettings.52c19693.js +0 -2
  278. abstra_statics/dist/assets/ProjectsView.16d8ecf6.css +0 -1
  279. abstra_statics/dist/assets/ProjectsView.22fa7a8e.js +0 -2
  280. abstra_statics/dist/assets/SaveButton.719393d2.js +0 -2
  281. abstra_statics/dist/assets/SaveButton.932ac6b8.css +0 -1
  282. abstra_statics/dist/assets/ScrollArea.vue_vue_type_script_setup_true_lang.d4028954.js +0 -2
  283. abstra_statics/dist/assets/Sidebar.5cb8e04e.js +0 -2
  284. abstra_statics/dist/assets/Sql.23d80bad.js +0 -5
  285. abstra_statics/dist/assets/Sql.90e6e2ba.css +0 -1
  286. abstra_statics/dist/assets/Steps.8e5d201a.js +0 -2
  287. abstra_statics/dist/assets/TableCard.59f95f8f.js +0 -2
  288. abstra_statics/dist/assets/TableEditor.8539f984.js +0 -2
  289. abstra_statics/dist/assets/Tables.44d953f7.js +0 -2
  290. abstra_statics/dist/assets/TablesDiagram.8e47383c.js +0 -15
  291. abstra_statics/dist/assets/TablesTabs.vue_vue_type_script_setup_true_lang.6866fb32.js +0 -2
  292. abstra_statics/dist/assets/Tasks.09551b19.js +0 -2
  293. abstra_statics/dist/assets/View.5fd7ddf0.js +0 -2
  294. abstra_statics/dist/assets/View.vue_vue_type_script_setup_true_lang.a904f400.js +0 -2
  295. abstra_statics/dist/assets/Watermark.ab3d818f.js +0 -2
  296. abstra_statics/dist/assets/WebEditor.c2e271d1.css +0 -1
  297. abstra_statics/dist/assets/WebEditor.d6ec6392.js +0 -2
  298. abstra_statics/dist/assets/WidgetPreview.86b31dec.js +0 -2
  299. abstra_statics/dist/assets/ant-design.a865486e.js +0 -2
  300. abstra_statics/dist/assets/asyncComputed.cf5282fc.js +0 -2
  301. abstra_statics/dist/assets/colorHelpers.37d9932b.js +0 -2
  302. abstra_statics/dist/assets/constants.7d38ec8b.js +0 -2
  303. abstra_statics/dist/assets/contracts.generated.590b1102.js +0 -2
  304. abstra_statics/dist/assets/dayjs.f18bbbca.js +0 -2
  305. abstra_statics/dist/assets/editor.3a4714e3.js +0 -2
  306. abstra_statics/dist/assets/editor.main.9c635b9a.js +0 -2
  307. abstra_statics/dist/assets/fetch.89fd5b7b.js +0 -2
  308. abstra_statics/dist/assets/index.2af3391c.js +0 -4
  309. abstra_statics/dist/assets/index.4176fe88.js +0 -2
  310. abstra_statics/dist/assets/index.fb182bd1.js +0 -2
  311. abstra_statics/dist/assets/member.48d6f2cd.js +0 -2
  312. abstra_statics/dist/assets/metadata.c3aed6e1.js +0 -2
  313. abstra_statics/dist/assets/omniChatStore.c53bcca2.js +0 -8
  314. abstra_statics/dist/assets/omniChatStore.ec95fb81.css +0 -1
  315. abstra_statics/dist/assets/player.d3aeafc5.js +0 -2
  316. abstra_statics/dist/assets/polling.82ee6b45.js +0 -2
  317. abstra_statics/dist/assets/record.7f43486c.js +0 -2
  318. abstra_statics/dist/assets/repository.9534db4b.js +0 -2
  319. abstra_statics/dist/assets/repository.c15239ce.js +0 -2
  320. abstra_statics/dist/assets/router.262190ec.js +0 -2
  321. abstra_statics/dist/assets/string.0acf5572.js +0 -2
  322. abstra_statics/dist/assets/tasksController.371896de.js +0 -4
  323. abstra_statics/dist/assets/url.e8732f77.js +0 -2
  324. abstra_statics/dist/assets/useTables.4f034cf8.js +0 -2
  325. abstra_statics/dist/assets/userStore.31024da3.js +0 -2
  326. abstra_statics/dist/assets/uuid.bde15ce7.js +0 -2
  327. abstra_statics/dist/assets/vue-flow-background.818c7852.js +0 -2
  328. abstra_statics/dist/assets/vue-flow-core.1180ec83.js +0 -22
  329. {abstra-3.24.0.dist-info → abstra-3.24.2.dist-info}/WHEEL +0 -0
  330. {abstra-3.24.0.dist-info → abstra-3.24.2.dist-info}/entry_points.txt +0 -0
  331. {abstra-3.24.0.dist-info → abstra-3.24.2.dist-info}/top_level.txt +0 -0
@@ -1,10 +1,17 @@
1
+ import base64
2
+ import io
1
3
  from dataclasses import dataclass
2
4
  from typing import Any, Dict, List
3
5
 
6
+ import pypdfium2 as pdfium
7
+
4
8
  from abstra_internals.cloud_api import get_session_path, get_tunnel_secret_key
5
9
  from abstra_internals.contracts_generated import (
6
10
  AbstraLibApiAiStreamRequest,
7
11
  CloudApiCliAiV2StreamRequest,
12
+ CloudApiCliAiV2StreamRequestContentItem,
13
+ CloudApiCliAiV2StreamRequestContentItemAssistantFileInput,
14
+ CloudApiCliAiV2StreamRequestContentItemAssistantTextInput,
8
15
  )
9
16
  from abstra_internals.controllers.main import MainController
10
17
  from abstra_internals.credentials import resolve_headers
@@ -71,15 +78,96 @@ class AiController:
71
78
  self.controller = controller
72
79
  self.repos = controller.repositories
73
80
 
81
+ def _extract_pdf_images(self, pdf_bytes: bytes) -> List[bytes]:
82
+ images = []
83
+ pdf_io = io.BytesIO(pdf_bytes)
84
+ for page in pdfium.PdfDocument(pdf_io):
85
+ bitmap = page.render(
86
+ scale=4, # 288 dpi
87
+ rotation=0,
88
+ )
89
+ pil_image = bitmap.to_pil()
90
+ image_io = io.BytesIO()
91
+ pil_image.save(image_io, format="png")
92
+ image_io.seek(0)
93
+ images.append(image_io.read())
94
+ return images
95
+
96
+ def _process_pdf_content(
97
+ self, pdf_file: CloudApiCliAiV2StreamRequestContentItemAssistantFileInput
98
+ ) -> List[CloudApiCliAiV2StreamRequestContentItem]:
99
+ processed_items = []
100
+ try:
101
+ pdf_bytes = base64.b64decode(pdf_file.file_content)
102
+ images = self._extract_pdf_images(pdf_bytes)
103
+
104
+ processed_items.append(
105
+ CloudApiCliAiV2StreamRequestContentItemAssistantTextInput(
106
+ type="text",
107
+ text=f"[PDF Document: {pdf_file.file_name} - {len(images)} page(s)]",
108
+ )
109
+ )
110
+
111
+ for idx, image_bytes in enumerate(images, 1):
112
+ image_base64 = base64.b64encode(image_bytes).decode("utf-8")
113
+ processed_items.append(
114
+ CloudApiCliAiV2StreamRequestContentItemAssistantFileInput(
115
+ type="file",
116
+ file_name=f"{pdf_file.file_name}_page_{idx}.png",
117
+ file_content=image_base64,
118
+ )
119
+ )
120
+ except Exception as e:
121
+ print(f"Error extracting PDF images: {e}")
122
+ processed_items.append(
123
+ CloudApiCliAiV2StreamRequestContentItemAssistantTextInput(
124
+ type="text",
125
+ text=f"[PDF Document: {pdf_file.file_name}]\nNote: Could not extract images from this PDF.",
126
+ )
127
+ )
128
+ return processed_items
129
+
130
+ def _process_content(
131
+ self, content: List[CloudApiCliAiV2StreamRequestContentItem]
132
+ ) -> List[CloudApiCliAiV2StreamRequestContentItem]:
133
+ processed_content = []
134
+
135
+ for item in content:
136
+ if isinstance(
137
+ item, CloudApiCliAiV2StreamRequestContentItemAssistantTextInput
138
+ ):
139
+ processed_content.append(item)
140
+ continue
141
+
142
+ if not item.file_name.lower().endswith(".pdf"):
143
+ processed_content.append(item)
144
+ continue
145
+
146
+ try:
147
+ processed_pdf_items = self._process_pdf_content(item)
148
+ processed_content.extend(processed_pdf_items)
149
+ except Exception as e:
150
+ print(f"Error extracting PDF images: {e}")
151
+ processed_content.append(
152
+ CloudApiCliAiV2StreamRequestContentItemAssistantTextInput(
153
+ type="text",
154
+ text=f"[PDF Document: {item.file_name}]\nNote: Could not extract images from this PDF.",
155
+ )
156
+ )
157
+
158
+ return processed_content
159
+
74
160
  def send_ai_message(
75
161
  self,
76
162
  body: AbstraLibApiAiStreamRequest,
77
163
  ):
78
164
  try:
165
+ processed_content = self._process_content(body.content)
166
+
79
167
  yield from self.repos.ai.get_ai_messages(
80
168
  CloudApiCliAiV2StreamRequest(
81
169
  conversation_id=body.conversation_id,
82
- content=body.content,
170
+ content=processed_content,
83
171
  context={
84
172
  **body.context,
85
173
  "libVersion": str(get_local_package_version()),
@@ -165,6 +165,8 @@ class GitController:
165
165
 
166
166
  status_response = GitStatusResponse(
167
167
  available=status.available,
168
+ git_installed=status.git_installed,
169
+ is_monorepo=status.is_monorepo,
168
170
  branch=status.branch,
169
171
  branches=status.branches,
170
172
  last_commit=status.last_commit,
@@ -213,12 +215,14 @@ class GitController:
213
215
 
214
216
  return {"success": success, "message": message}
215
217
 
216
- def commit_changes(self, message: str) -> Dict[str, Any]:
218
+ def commit_changes(
219
+ self, message: str, author: Optional[str] = None
220
+ ) -> Dict[str, Any]:
217
221
  commit_message = message.strip()
218
222
  if not commit_message:
219
223
  return {"success": False, "message": "Commit message cannot be empty"}
220
224
 
221
- success = self.git_repository.commit_changes(commit_message)
225
+ success = self.git_repository.commit_changes(commit_message, author)
222
226
 
223
227
  message = (
224
228
  f"Successfully committed changes: {commit_message}"
@@ -1809,7 +1809,7 @@ class MainController:
1809
1809
  tempfile = Path(mktemp(suffix=".py"))
1810
1810
 
1811
1811
  stage = self.create_job(title, str(tempfile), (0, 0))
1812
- tempfile.write_text(code)
1812
+ tempfile.write_text(code, encoding="utf-8")
1813
1813
 
1814
1814
  execution_result = ExecutionController(
1815
1815
  repositories=self.repositories,
@@ -80,7 +80,7 @@ def ensure_certificates():
80
80
  print(f"Failed to restore certificates: {update_e}")
81
81
 
82
82
 
83
- def editor(headless: bool):
83
+ def editor(headless: bool, verbose: bool = False):
84
84
  ensure_certificates()
85
85
 
86
86
  load_dotenv(Settings.root_path / ".env")
@@ -119,6 +119,6 @@ def editor(headless: bool):
119
119
  if not headless:
120
120
  background_open_editor()
121
121
 
122
- connect_tunnel()
122
+ connect_tunnel(verbose=verbose)
123
123
 
124
124
  server.serve_forever()
@@ -1,8 +1,3 @@
1
- import shutil
2
-
3
- from abstra_internals.environment import FORCE_GIT_CLIENT
4
-
5
- from .dulwich import DulwichGitRepository
6
1
  from .native import NativeGitRepository
7
2
  from .types import (
8
3
  AheadBehindInfo,
@@ -15,14 +10,7 @@ from .types import (
15
10
 
16
11
 
17
12
  def create_git_repository(working_directory) -> GitRepositoryInterface:
18
- if FORCE_GIT_CLIENT == "native":
19
- return NativeGitRepository(working_directory)
20
- elif FORCE_GIT_CLIENT == "dulwich":
21
- return DulwichGitRepository(working_directory)
22
- elif shutil.which("git") is not None:
23
- return NativeGitRepository(working_directory)
24
- else:
25
- return DulwichGitRepository(working_directory)
13
+ return NativeGitRepository(working_directory)
26
14
 
27
15
 
28
16
  __all__ = [
@@ -32,7 +20,6 @@ __all__ = [
32
20
  "GitStatusResponse",
33
21
  "GitRepositoryInterface",
34
22
  "NativeGitRepository",
35
- "DulwichGitRepository",
36
23
  "create_git_repository",
37
24
  "AheadBehindInfo",
38
25
  ]