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.
- abstra/cli.py +8 -2
- {abstra-3.24.0.dist-info → abstra-3.24.2.dist-info}/METADATA +1 -2
- {abstra-3.24.0.dist-info → abstra-3.24.2.dist-info}/RECORD +205 -209
- abstra_internals/cloud_api/__init__.py +17 -8
- abstra_internals/contracts_generated.py +975 -707
- abstra_internals/controllers/ai.py +89 -1
- abstra_internals/controllers/git.py +6 -2
- abstra_internals/controllers/main.py +1 -1
- abstra_internals/interface/cli/editor.py +2 -2
- abstra_internals/repositories/git/__init__.py +1 -14
- abstra_internals/repositories/git/git_test.py +9 -1216
- abstra_internals/repositories/git/native.py +13 -7
- abstra_internals/repositories/git/types.py +7 -1
- abstra_internals/server/routes/git.py +11 -2
- abstra_statics/dist/assets/AbstraButton.vue_vue_type_script_setup_true_lang.a3ba2a31.js +2 -0
- abstra_statics/dist/assets/AbstraLogo.vue_vue_type_script_setup_true_lang.b1a71740.js +2 -0
- abstra_statics/dist/assets/ApiKeys.dafa1dc2.js +2 -0
- abstra_statics/dist/assets/App.45396b70.js +2 -0
- abstra_statics/dist/assets/App.vue_vue_type_style_index_0_lang.db5596a1.js +2 -0
- abstra_statics/dist/assets/BaseLayout.135a51d9.js +2 -0
- abstra_statics/dist/assets/Billing.622c9155.js +2 -0
- abstra_statics/dist/assets/{Breadcrumb.26dec5f7.js → Breadcrumb.8a82fa01.js} +3 -3
- abstra_statics/dist/assets/Builds.38c0f966.css +1 -0
- abstra_statics/dist/assets/Builds.c3fd9633.js +2 -0
- abstra_statics/dist/assets/{Card.6cfffb80.js → Card.38a860a4.js} +5 -5
- abstra_statics/dist/assets/{CircularLoading.a13d6a76.js → CircularLoading.217756fb.js} +2 -2
- abstra_statics/dist/assets/CloseCircleOutlined.4c4707d8.js +2 -0
- abstra_statics/dist/assets/ConnectorsView.121898a9.js +2 -0
- abstra_statics/dist/assets/ConnectorsView.b594798e.css +1 -0
- abstra_statics/dist/assets/ConsoleOmniChat.vue_vue_type_script_setup_true_lang.502d779a.js +2 -0
- abstra_statics/dist/assets/ContentLayout.b1c94c2b.js +2 -0
- abstra_statics/dist/assets/CrudView.75a430a4.js +2 -0
- abstra_statics/dist/assets/CrudView.8abe5bc2.css +1 -0
- abstra_statics/dist/assets/DocsButton.vue_vue_type_script_setup_true_lang.a9c8118b.js +2 -0
- abstra_statics/dist/assets/EditorLogin.fba78ce9.js +2 -0
- abstra_statics/dist/assets/EditorsView.1a9ccb13.js +2 -0
- abstra_statics/dist/assets/EnvVars.d77957ea.js +2 -0
- abstra_statics/dist/assets/Error.5bd293cc.js +2 -0
- abstra_statics/dist/assets/ExclamationCircleOutlined.5d5c3f30.js +2 -0
- abstra_statics/dist/assets/Files.39b07d88.css +1 -0
- abstra_statics/dist/assets/Files.c4ce443f.js +2 -0
- abstra_statics/dist/assets/Form.a4787001.js +2 -0
- abstra_statics/dist/assets/{FormRunner.46f6426d.css → FormRunner.1e6e7d2a.css} +1 -1
- abstra_statics/dist/assets/FormRunner.73650f9e.js +2 -0
- abstra_statics/dist/assets/Home.19a2303b.js +2 -0
- abstra_statics/dist/assets/Home.4eff6ce9.js +2 -0
- abstra_statics/dist/assets/Home.e8bf9440.css +1 -0
- abstra_statics/dist/assets/LoadingContainer.97fa8f2e.js +2 -0
- abstra_statics/dist/assets/LoadingOutlined.e309ab16.js +2 -0
- abstra_statics/dist/assets/Login.632cada3.js +2 -0
- abstra_statics/dist/assets/{Login.75d13f6c.css → Login.ac75228f.css} +1 -1
- abstra_statics/dist/assets/Login.ecec1ff2.js +2 -0
- abstra_statics/dist/assets/Login.vue_vue_type_script_setup_true_lang.ada1c6c9.js +2 -0
- abstra_statics/dist/assets/Logo.d77d5637.js +2 -0
- abstra_statics/dist/assets/Logs.c1f01b05.js +2 -0
- abstra_statics/dist/assets/LogsController.0ff97ed4.css +1 -0
- abstra_statics/dist/assets/LogsController.2dceb3d3.js +2 -0
- abstra_statics/dist/assets/Main.44b7640e.js +2 -0
- abstra_statics/dist/assets/{MockForm.deda9355.js → MockForm.9b7a0df3.js} +2 -2
- abstra_statics/dist/assets/Navbar.0951ed6d.js +2 -0
- abstra_statics/dist/assets/Navbar.61d3e0a6.css +1 -0
- abstra_statics/dist/assets/NewEditor.d65a400f.js +8 -0
- abstra_statics/dist/assets/NewEditor.e3cfeb2c.css +1 -0
- abstra_statics/dist/assets/OidcLoginCallback.66b0f38a.js +2 -0
- abstra_statics/dist/assets/OidcLogoutCallback.48d8429a.js +2 -0
- abstra_statics/dist/assets/OmniChat.60ee26c8.css +1 -0
- abstra_statics/dist/assets/OmniChat.c3de8733.js +6 -0
- abstra_statics/dist/assets/OnboardingView.6cda1bc5.js +2 -0
- abstra_statics/dist/assets/OnboardingView.e871e6d8.css +1 -0
- abstra_statics/dist/assets/Organization.c36206b7.js +2 -0
- abstra_statics/dist/assets/Organizations.2b1c6c65.js +2 -0
- abstra_statics/dist/assets/{PhArrowCounterClockwise.vue.8090d021.js → PhArrowCounterClockwise.vue.9e570570.js} +2 -2
- abstra_statics/dist/assets/{PhArrowSquareOut.vue.26582195.js → PhArrowSquareOut.vue.bcbdb6e7.js} +2 -2
- abstra_statics/dist/assets/{PhClockCounterClockwise.vue.812311ad.js → PhClockCounterClockwise.vue.4bd682d8.js} +2 -2
- abstra_statics/dist/assets/{PhCopy.vue.59b0f1b4.js → PhCopy.vue.29934bc2.js} +2 -2
- abstra_statics/dist/assets/PhCopySimple.vue.0241af8c.js +2 -0
- abstra_statics/dist/assets/{PhCube.vue.63ae7d32.js → PhCube.vue.0fe2c514.js} +2 -2
- abstra_statics/dist/assets/PhDatabase.vue.fdfb515c.js +2 -0
- abstra_statics/dist/assets/{PhDotsThreeVertical.vue.ab4580a5.js → PhDotsThreeVertical.vue.7a0e0638.js} +2 -2
- abstra_statics/dist/assets/{PhDownloadSimple.vue.c2eaaad1.js → PhDownloadSimple.vue.f1245c40.js} +2 -2
- abstra_statics/dist/assets/PhFileArrowUp.vue.c292afe1.js +2 -0
- abstra_statics/dist/assets/PhFilePlus.vue.c39ff1a9.js +2 -0
- abstra_statics/dist/assets/{PhFolderPlus.vue.05ba4a5c.js → PhFolderPlus.vue.bc40161e.js} +2 -2
- abstra_statics/dist/assets/{PhGear.vue.0e4a6135.js → PhGear.vue.0feed515.js} +2 -2
- abstra_statics/dist/assets/{PhKey.vue.b2c184d1.js → PhKey.vue.15a9e64e.js} +2 -2
- abstra_statics/dist/assets/{PhPencil.vue.2f2fe576.js → PhPencil.vue.a7219766.js} +2 -2
- abstra_statics/dist/assets/PhPencilSimple.vue.15a2b403.js +2 -0
- abstra_statics/dist/assets/PhRocket.vue.7155b91f.js +2 -0
- abstra_statics/dist/assets/{PhSignOut.vue.a271f14b.js → PhSignOut.vue.2af17bd7.js} +2 -2
- abstra_statics/dist/assets/{PhSparkle.vue.726defa2.js → PhSparkle.vue.c7f06cac.js} +2 -2
- abstra_statics/dist/assets/PhTranslate.vue.2ce651a6.js +2 -0
- abstra_statics/dist/assets/{PhUsersThree.vue.275d13ab.js → PhUsersThree.vue.2942df75.js} +2 -2
- abstra_statics/dist/assets/{PhWarningCircle.vue.3b1aca1b.js → PhWarningCircle.vue.05a40bc4.js} +2 -2
- abstra_statics/dist/assets/PhWebhooksLogo.vue.e4752384.js +2 -0
- abstra_statics/dist/assets/PlayerConfigProvider.00af5968.js +2 -0
- abstra_statics/dist/assets/PlayerNavbar.117f184b.js +2 -0
- abstra_statics/dist/assets/{PlayerNavbar.77209eae.css → PlayerNavbar.4dc29a45.css} +1 -1
- abstra_statics/dist/assets/Project.66111161.js +2 -0
- abstra_statics/dist/assets/Project.9c418d2e.css +1 -0
- abstra_statics/dist/assets/ProjectLogin.d9bb1f86.js +2 -0
- abstra_statics/dist/assets/ProjectSettings.f8c6f60a.js +2 -0
- abstra_statics/dist/assets/ProjectsView.32f6ccff.js +2 -0
- abstra_statics/dist/assets/ProjectsView.e26ddfd5.css +1 -0
- abstra_statics/dist/assets/SaveButton.363ea20f.css +1 -0
- abstra_statics/dist/assets/SaveButton.c3f2a4bb.js +2 -0
- abstra_statics/dist/assets/ScrollArea.vue_vue_type_script_setup_true_lang.cb5567cd.js +2 -0
- abstra_statics/dist/assets/{Sidebar.29baeab0.css → Sidebar.161522da.css} +1 -1
- abstra_statics/dist/assets/Sidebar.1c4e35be.js +2 -0
- abstra_statics/dist/assets/Sql.6d9a778c.css +1 -0
- abstra_statics/dist/assets/Sql.8d31ec23.js +5 -0
- abstra_statics/dist/assets/Steps.687763a5.js +2 -0
- abstra_statics/dist/assets/TableCard.8c99a870.js +2 -0
- abstra_statics/dist/assets/{TableEditor.5853a363.css → TableEditor.20fecc75.css} +1 -1
- abstra_statics/dist/assets/TableEditor.ba7a8b6a.js +2 -0
- abstra_statics/dist/assets/Tables.113960f2.js +39 -0
- abstra_statics/dist/assets/TablesDiagram.8e6d1e89.js +15 -0
- abstra_statics/dist/assets/TablesTabs.vue_vue_type_script_setup_true_lang.5cc96b0d.js +2 -0
- abstra_statics/dist/assets/Tasks.90846020.js +2 -0
- abstra_statics/dist/assets/{UploadOutlined.eab75eb0.js → UploadOutlined.518baf9a.js} +2 -2
- abstra_statics/dist/assets/View.ded6b355.js +2 -0
- abstra_statics/dist/assets/View.vue_vue_type_script_setup_true_lang.285b5e2c.js +2 -0
- abstra_statics/dist/assets/Watermark.5071a4b2.js +2 -0
- abstra_statics/dist/assets/WebEditor.18ece735.js +2 -0
- abstra_statics/dist/assets/WebEditor.b886e4d1.css +1 -0
- abstra_statics/dist/assets/WidgetPreview.88a4f27f.js +2 -0
- abstra_statics/dist/assets/WorkflowViewer.3b6aee8e.css +1 -0
- abstra_statics/dist/assets/WorkflowViewer.778c401d.js +2 -0
- abstra_statics/dist/assets/ant-design.4efc9ccd.js +2 -0
- abstra_statics/dist/assets/{apiKey.72f497ca.js → apiKey.bd946d8c.js} +2 -2
- abstra_statics/dist/assets/asyncComputed.7bc1692e.js +2 -0
- abstra_statics/dist/assets/{build.df2d55cc.js → build.a8637e29.js} +2 -2
- abstra_statics/dist/assets/colorHelpers.8ba18214.js +2 -0
- abstra_statics/dist/assets/{console.2bf7f04d.js → console.2a5ed51a.js} +4 -4
- abstra_statics/dist/assets/constants.534f67bc.js +2 -0
- abstra_statics/dist/assets/contracts.generated.8ad36e63.js +2 -0
- abstra_statics/dist/assets/{cssMode.7133c7cb.js → cssMode.6c4ccf50.js} +2 -2
- abstra_statics/dist/assets/{datetime.8de2ff28.js → datetime.89495471.js} +2 -2
- abstra_statics/dist/assets/dayjs.304f38f8.js +2 -0
- abstra_statics/dist/assets/editor.c1a1bd33.js +2 -0
- abstra_statics/dist/assets/editor.main.84e237cf.js +2 -0
- abstra_statics/dist/assets/fetch.452c58e5.js +2 -0
- abstra_statics/dist/assets/files.8999afd5.js +2 -0
- abstra_statics/dist/assets/{folder.d8e23009.js → folder.81ef8619.js} +2 -2
- abstra_statics/dist/assets/{freemarker2.6698d1ea.js → freemarker2.559f77f2.js} +2 -2
- abstra_statics/dist/assets/{handlebars.a6c42dc0.js → handlebars.8d101b7c.js} +2 -2
- abstra_statics/dist/assets/{html.493a5410.js → html.b3e7d3ab.js} +3 -3
- abstra_statics/dist/assets/{htmlMode.a28b2fca.js → htmlMode.2305b1bb.js} +2 -2
- abstra_statics/dist/assets/{index.fb49354b.js → index.71eb83f3.js} +2 -2
- abstra_statics/dist/assets/{index.79ce3bf1.js → index.90acf038.js} +2 -2
- abstra_statics/dist/assets/index.b74c262c.js +4 -0
- abstra_statics/dist/assets/index.bc97991a.js +2 -0
- abstra_statics/dist/assets/index.d809956c.js +2 -0
- abstra_statics/dist/assets/{index.57042181.css → index.da037bc0.css} +1 -1
- abstra_statics/dist/assets/index.da4f9d54.js +2 -0
- abstra_statics/dist/assets/{index.c34a405a.js → index.e5cb42a1.js} +2 -2
- abstra_statics/dist/assets/{index.5d6b1e62.js → index.f2beb20d.js} +2 -2
- abstra_statics/dist/assets/{index.4d20c159.js → index.f6171691.js} +3 -3
- abstra_statics/dist/assets/{javascript.3a36cf17.js → javascript.3000fc25.js} +3 -3
- abstra_statics/dist/assets/{jsonMode.bead6ac8.js → jsonMode.7bbb508d.js} +2 -2
- abstra_statics/dist/assets/{jwt-decode.9f7a5511.css → jwt-decode.c5760184.css} +2 -2
- abstra_statics/dist/assets/{jwt-decode.esm.d4517a10.js → jwt-decode.esm.c9c37cdc.js} +197 -197
- abstra_statics/dist/assets/{linters.2f3141cb.js → linters.7fec18d9.js} +2 -2
- abstra_statics/dist/assets/{liquid.0c337fae.js → liquid.b4ac9aaf.js} +3 -3
- abstra_statics/dist/assets/member.3c12efee.js +2 -0
- abstra_statics/dist/assets/metadata.e627ddda.js +2 -0
- abstra_statics/dist/assets/omniChatStore.508e8ece.js +9 -0
- abstra_statics/dist/assets/omniChatStore.b58e3bed.css +1 -0
- abstra_statics/dist/assets/{organization.928c9bef.js → organization.cd03f9a8.js} +2 -2
- abstra_statics/dist/assets/os.f08724fb.js +2 -0
- abstra_statics/dist/assets/player.7362caf4.js +2 -0
- abstra_statics/dist/assets/{plotly.min.7225d3a0.js → plotly.min.50ebb925.js} +2 -2
- abstra_statics/dist/assets/polling.4db5ee9a.js +2 -0
- abstra_statics/dist/assets/{project.619b7244.js → project.9a068e8d.js} +2 -2
- abstra_statics/dist/assets/{python.05764499.js → python.51a7c648.js} +3 -3
- abstra_statics/dist/assets/{razor.81a45581.js → razor.99323f5f.js} +3 -3
- abstra_statics/dist/assets/record.a33d29b1.js +2 -0
- abstra_statics/dist/assets/{redirect.f028a879.js → redirect.42bf4f0a.js} +2 -2
- abstra_statics/dist/assets/repository.5190b94f.js +2 -0
- abstra_statics/dist/assets/repository.94fb77c7.js +2 -0
- abstra_statics/dist/assets/repository.c0d70cb2.js +2 -0
- abstra_statics/dist/assets/router.4168cc71.js +2 -0
- abstra_statics/dist/assets/{router.424f7da9.js → router.a8616541.js} +5 -5
- abstra_statics/dist/assets/string.8fab6b53.js +2 -0
- abstra_statics/dist/assets/{tables.1f68ec62.js → tables.2e1c934b.js} +2 -2
- abstra_statics/dist/assets/tasksController.1feffcfe.js +4 -0
- abstra_statics/dist/assets/{toggleHighContrast.0d0e5662.js → toggleHighContrast.6544a728.js} +7 -7
- abstra_statics/dist/assets/{tsMode.6eadbf06.js → tsMode.922e04bb.js} +2 -2
- abstra_statics/dist/assets/{typescript.1670e287.js → typescript.1b4f8286.js} +3 -3
- abstra_statics/dist/assets/url.9e033350.js +2 -0
- abstra_statics/dist/assets/{useCodebaseEvents.53dec1f2.js → useCodebaseEvents.ffe057d1.js} +2 -2
- abstra_statics/dist/assets/useTables.5fffa3f1.js +2 -0
- abstra_statics/dist/assets/userStore.d962fba4.js +2 -0
- abstra_statics/dist/assets/uuid.8581bc03.js +2 -0
- abstra_statics/dist/assets/vue-flow-background.3e9183ec.js +2 -0
- abstra_statics/dist/assets/vue-flow-core.41c647da.js +22 -0
- abstra_statics/dist/assets/{vue-quill.esm-bundler.c4f04985.js → vue-quill.esm-bundler.36e79a95.js} +2 -2
- abstra_statics/dist/assets/{workspaceStore.6244d03d.js → workspaceStore.5a435520.js} +2 -2
- abstra_statics/dist/assets/{xml.f2867af8.js → xml.c1692f52.js} +3 -3
- abstra_statics/dist/assets/{yaml.5427bb1b.js → yaml.244444c1.js} +2 -2
- abstra_statics/dist/console.html +15 -15
- abstra_statics/dist/editor.html +15 -15
- abstra_statics/dist/player.html +10 -10
- abstra/connectors/banking/__init__.py +0 -0
- abstra/connectors/banking/brazil.py +0 -5
- abstra_internals/repositories/git/dulwich.py +0 -1353
- abstra_internals/services/banking/__init__.py +0 -3
- abstra_internals/services/banking/banking_service.py +0 -104
- abstra_internals/services/banking/client_factory.py +0 -70
- abstra_internals/services/banking/sdk/__init__.py +0 -0
- abstra_internals/services/banking/sdk/generate_totalbank_api.py +0 -383
- abstra_statics/dist/assets/AbstraButton.vue_vue_type_script_setup_true_lang.eb8ccb64.js +0 -2
- abstra_statics/dist/assets/AbstraLogo.vue_vue_type_script_setup_true_lang.9f98292e.js +0 -2
- abstra_statics/dist/assets/ApiKeys.e975c4f3.js +0 -2
- abstra_statics/dist/assets/App.f62faff6.js +0 -2
- abstra_statics/dist/assets/App.vue_vue_type_style_index_0_lang.5aa45ac1.js +0 -2
- abstra_statics/dist/assets/BaseLayout.1ec2c96d.js +0 -2
- abstra_statics/dist/assets/Billing.60adc9fa.js +0 -2
- abstra_statics/dist/assets/Builds.ace9e3da.css +0 -1
- abstra_statics/dist/assets/Builds.f86210bc.js +0 -2
- abstra_statics/dist/assets/CloseCircleOutlined.30bc25a8.js +0 -2
- abstra_statics/dist/assets/ConnectorsView.33c5380f.css +0 -1
- abstra_statics/dist/assets/ConnectorsView.eb4c769f.js +0 -2
- abstra_statics/dist/assets/ConsoleOmniChat.vue_vue_type_script_setup_true_lang.8d2e4672.js +0 -2
- abstra_statics/dist/assets/ContentLayout.d03fee5b.js +0 -2
- abstra_statics/dist/assets/CrudView.c0824225.js +0 -2
- abstra_statics/dist/assets/CrudView.e24590ae.css +0 -1
- abstra_statics/dist/assets/DocsButton.vue_vue_type_script_setup_true_lang.3668aee4.js +0 -2
- abstra_statics/dist/assets/EditorLogin.46db248f.js +0 -2
- abstra_statics/dist/assets/EditorsView.e72621fa.js +0 -2
- abstra_statics/dist/assets/EnvVars.f9f9d61f.js +0 -2
- abstra_statics/dist/assets/Error.864f05b3.js +0 -2
- abstra_statics/dist/assets/ExclamationCircleOutlined.a489b996.js +0 -2
- abstra_statics/dist/assets/Files.afe615e1.js +0 -2
- abstra_statics/dist/assets/Files.d0e8d2ff.css +0 -1
- abstra_statics/dist/assets/Form.556d0de2.js +0 -2
- abstra_statics/dist/assets/FormRunner.7f56a8c6.js +0 -2
- abstra_statics/dist/assets/Home.287d17f8.js +0 -2
- abstra_statics/dist/assets/Home.3794e8b4.css +0 -1
- abstra_statics/dist/assets/Home.5b7e9c23.js +0 -2
- abstra_statics/dist/assets/Live.37415b2d.css +0 -1
- abstra_statics/dist/assets/Live.50bacfea.js +0 -2
- abstra_statics/dist/assets/LoadingContainer.ebace8de.js +0 -2
- abstra_statics/dist/assets/LoadingOutlined.9e949112.js +0 -2
- abstra_statics/dist/assets/Login.536a3067.js +0 -2
- abstra_statics/dist/assets/Login.bec408c9.js +0 -2
- abstra_statics/dist/assets/Login.vue_vue_type_script_setup_true_lang.1c3f108d.js +0 -2
- abstra_statics/dist/assets/Logo.82d6ab70.js +0 -2
- abstra_statics/dist/assets/Logs.f6135084.js +0 -2
- abstra_statics/dist/assets/LogsController.6b666816.js +0 -2
- abstra_statics/dist/assets/LogsController.fb0d96c2.css +0 -1
- abstra_statics/dist/assets/Main.77b115f8.js +0 -2
- abstra_statics/dist/assets/Navbar.2dc6d02c.css +0 -1
- abstra_statics/dist/assets/Navbar.4a6f2b09.js +0 -2
- abstra_statics/dist/assets/NewEditor.5f84de86.css +0 -1
- abstra_statics/dist/assets/NewEditor.e558e47d.js +0 -8
- abstra_statics/dist/assets/OidcLoginCallback.7f514b45.js +0 -2
- abstra_statics/dist/assets/OidcLogoutCallback.038813a1.js +0 -2
- abstra_statics/dist/assets/OmniChat.05ba8d8a.css +0 -1
- abstra_statics/dist/assets/OmniChat.60d98deb.js +0 -6
- abstra_statics/dist/assets/OnboardingView.3996b08d.css +0 -1
- abstra_statics/dist/assets/OnboardingView.9413ee50.js +0 -2
- abstra_statics/dist/assets/Organization.7203cc0b.js +0 -2
- abstra_statics/dist/assets/Organizations.91220ca0.js +0 -2
- abstra_statics/dist/assets/PhBookBookmark.vue.5b7ab079.js +0 -2
- abstra_statics/dist/assets/PhChats.vue.b5df7174.js +0 -2
- abstra_statics/dist/assets/PhCopySimple.vue.d41d9160.js +0 -2
- abstra_statics/dist/assets/PhDatabase.vue.edfcb96b.js +0 -2
- abstra_statics/dist/assets/PhPencilSimple.vue.cc8620ae.js +0 -2
- abstra_statics/dist/assets/PhRocket.vue.e397203c.js +0 -2
- abstra_statics/dist/assets/PhUserList.vue.6a29f16d.js +0 -2
- abstra_statics/dist/assets/PhWebhooksLogo.vue.5e772aac.js +0 -2
- abstra_statics/dist/assets/PlayerConfigProvider.e90a2b41.js +0 -2
- abstra_statics/dist/assets/PlayerNavbar.11ec1844.js +0 -2
- abstra_statics/dist/assets/Project.9c75c141.css +0 -1
- abstra_statics/dist/assets/Project.c16740fb.js +0 -2
- abstra_statics/dist/assets/ProjectLogin.e7a6f444.js +0 -2
- abstra_statics/dist/assets/ProjectSettings.52c19693.js +0 -2
- abstra_statics/dist/assets/ProjectsView.16d8ecf6.css +0 -1
- abstra_statics/dist/assets/ProjectsView.22fa7a8e.js +0 -2
- abstra_statics/dist/assets/SaveButton.719393d2.js +0 -2
- abstra_statics/dist/assets/SaveButton.932ac6b8.css +0 -1
- abstra_statics/dist/assets/ScrollArea.vue_vue_type_script_setup_true_lang.d4028954.js +0 -2
- abstra_statics/dist/assets/Sidebar.5cb8e04e.js +0 -2
- abstra_statics/dist/assets/Sql.23d80bad.js +0 -5
- abstra_statics/dist/assets/Sql.90e6e2ba.css +0 -1
- abstra_statics/dist/assets/Steps.8e5d201a.js +0 -2
- abstra_statics/dist/assets/TableCard.59f95f8f.js +0 -2
- abstra_statics/dist/assets/TableEditor.8539f984.js +0 -2
- abstra_statics/dist/assets/Tables.44d953f7.js +0 -2
- abstra_statics/dist/assets/TablesDiagram.8e47383c.js +0 -15
- abstra_statics/dist/assets/TablesTabs.vue_vue_type_script_setup_true_lang.6866fb32.js +0 -2
- abstra_statics/dist/assets/Tasks.09551b19.js +0 -2
- abstra_statics/dist/assets/View.5fd7ddf0.js +0 -2
- abstra_statics/dist/assets/View.vue_vue_type_script_setup_true_lang.a904f400.js +0 -2
- abstra_statics/dist/assets/Watermark.ab3d818f.js +0 -2
- abstra_statics/dist/assets/WebEditor.c2e271d1.css +0 -1
- abstra_statics/dist/assets/WebEditor.d6ec6392.js +0 -2
- abstra_statics/dist/assets/WidgetPreview.86b31dec.js +0 -2
- abstra_statics/dist/assets/ant-design.a865486e.js +0 -2
- abstra_statics/dist/assets/asyncComputed.cf5282fc.js +0 -2
- abstra_statics/dist/assets/colorHelpers.37d9932b.js +0 -2
- abstra_statics/dist/assets/constants.7d38ec8b.js +0 -2
- abstra_statics/dist/assets/contracts.generated.590b1102.js +0 -2
- abstra_statics/dist/assets/dayjs.f18bbbca.js +0 -2
- abstra_statics/dist/assets/editor.3a4714e3.js +0 -2
- abstra_statics/dist/assets/editor.main.9c635b9a.js +0 -2
- abstra_statics/dist/assets/fetch.89fd5b7b.js +0 -2
- abstra_statics/dist/assets/index.2af3391c.js +0 -4
- abstra_statics/dist/assets/index.4176fe88.js +0 -2
- abstra_statics/dist/assets/index.fb182bd1.js +0 -2
- abstra_statics/dist/assets/member.48d6f2cd.js +0 -2
- abstra_statics/dist/assets/metadata.c3aed6e1.js +0 -2
- abstra_statics/dist/assets/omniChatStore.c53bcca2.js +0 -8
- abstra_statics/dist/assets/omniChatStore.ec95fb81.css +0 -1
- abstra_statics/dist/assets/player.d3aeafc5.js +0 -2
- abstra_statics/dist/assets/polling.82ee6b45.js +0 -2
- abstra_statics/dist/assets/record.7f43486c.js +0 -2
- abstra_statics/dist/assets/repository.9534db4b.js +0 -2
- abstra_statics/dist/assets/repository.c15239ce.js +0 -2
- abstra_statics/dist/assets/router.262190ec.js +0 -2
- abstra_statics/dist/assets/string.0acf5572.js +0 -2
- abstra_statics/dist/assets/tasksController.371896de.js +0 -4
- abstra_statics/dist/assets/url.e8732f77.js +0 -2
- abstra_statics/dist/assets/useTables.4f034cf8.js +0 -2
- abstra_statics/dist/assets/userStore.31024da3.js +0 -2
- abstra_statics/dist/assets/uuid.bde15ce7.js +0 -2
- abstra_statics/dist/assets/vue-flow-background.818c7852.js +0 -2
- abstra_statics/dist/assets/vue-flow-core.1180ec83.js +0 -22
- {abstra-3.24.0.dist-info → abstra-3.24.2.dist-info}/WHEEL +0 -0
- {abstra-3.24.0.dist-info → abstra-3.24.2.dist-info}/entry_points.txt +0 -0
- {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=
|
|
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(
|
|
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
|
-
|
|
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
|
]
|