beanhub-cli 3.0.0b2__tar.gz → 3.1.0__tar.gz
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.
- {beanhub_cli-3.0.0b2 → beanhub_cli-3.1.0}/PKG-INFO +11 -3
- {beanhub_cli-3.0.0b2 → beanhub_cli-3.1.0}/README.md +4 -0
- {beanhub_cli-3.0.0b2 → beanhub_cli-3.1.0}/beanhub_cli/format.py +70 -50
- {beanhub_cli-3.0.0b2 → beanhub_cli-3.1.0}/beanhub_cli/main.py +1 -0
- beanhub_cli-3.1.0/beanhub_cli/mcp/app/main.py +16 -0
- beanhub_cli-3.1.0/beanhub_cli/mcp/app/routes.py +62 -0
- beanhub_cli-3.1.0/beanhub_cli/mcp/cli.py +10 -0
- beanhub_cli-3.1.0/beanhub_cli/mcp/main.py +38 -0
- beanhub_cli-3.1.0/beanhub_cli/mcp/schemes.py +20 -0
- {beanhub_cli-3.0.0b2 → beanhub_cli-3.1.0}/docs/docs/commands/connect.md +0 -7
- {beanhub_cli-3.0.0b2 → beanhub_cli-3.1.0}/docs/docs/commands/login.md +0 -7
- {beanhub_cli-3.0.0b2 → beanhub_cli-3.1.0}/pyproject.toml +7 -3
- beanhub_cli-3.1.0/tests/forms/app/__init__.py +0 -0
- beanhub_cli-3.1.0/tests/inbox/__init__.py +0 -0
- {beanhub_cli-3.0.0b2 → beanhub_cli-3.1.0}/uv.lock +653 -10
- {beanhub_cli-3.0.0b2 → beanhub_cli-3.1.0}/.circleci/config.yml +0 -0
- {beanhub_cli-3.0.0b2 → beanhub_cli-3.1.0}/.gitignore +0 -0
- {beanhub_cli-3.0.0b2 → beanhub_cli-3.1.0}/.pre-commit-config.yaml +0 -0
- {beanhub_cli-3.0.0b2 → beanhub_cli-3.1.0}/LICENSE +0 -0
- {beanhub_cli-3.0.0b2 → beanhub_cli-3.1.0}/assets/beanhub.svg +0 -0
- {beanhub_cli-3.0.0b2 → beanhub_cli-3.1.0}/assets/forms-screenshot.png +0 -0
- {beanhub_cli-3.0.0b2 → beanhub_cli-3.1.0}/beanhub_cli/__init__.py +0 -0
- {beanhub_cli-3.0.0b2 → beanhub_cli-3.1.0}/beanhub_cli/aliase.py +0 -0
- {beanhub_cli-3.0.0b2 → beanhub_cli-3.1.0}/beanhub_cli/api_helpers.py +0 -0
- {beanhub_cli-3.0.0b2 → beanhub_cli-3.1.0}/beanhub_cli/auth.py +0 -0
- {beanhub_cli-3.0.0b2 → beanhub_cli-3.1.0}/beanhub_cli/cli.py +0 -0
- {beanhub_cli-3.0.0b2 → beanhub_cli-3.1.0}/beanhub_cli/config.py +0 -0
- {beanhub_cli-3.0.0b2 → beanhub_cli-3.1.0}/beanhub_cli/connect/__init__.py +0 -0
- {beanhub_cli-3.0.0b2 → beanhub_cli-3.1.0}/beanhub_cli/connect/cli.py +0 -0
- {beanhub_cli-3.0.0b2 → beanhub_cli-3.1.0}/beanhub_cli/connect/main.py +0 -0
- {beanhub_cli-3.0.0b2 → beanhub_cli-3.1.0}/beanhub_cli/encryption.py +0 -0
- {beanhub_cli-3.0.0b2 → beanhub_cli-3.1.0}/beanhub_cli/environment.py +0 -0
- {beanhub_cli-3.0.0b2 → beanhub_cli-3.1.0}/beanhub_cli/file_io.py +0 -0
- {beanhub_cli-3.0.0b2 → beanhub_cli-3.1.0}/beanhub_cli/forms/__init__.py +0 -0
- {beanhub_cli-3.0.0b2 → beanhub_cli-3.1.0}/beanhub_cli/forms/app/__init__.py +0 -0
- {beanhub_cli-3.0.0b2 → beanhub_cli-3.1.0}/beanhub_cli/forms/app/constants.py +0 -0
- {beanhub_cli-3.0.0b2 → beanhub_cli-3.1.0}/beanhub_cli/forms/app/data/sample_forms_doc.yaml +0 -0
- {beanhub_cli-3.0.0b2 → beanhub_cli-3.1.0}/beanhub_cli/forms/app/deps.py +0 -0
- {beanhub_cli-3.0.0b2 → beanhub_cli-3.1.0}/beanhub_cli/forms/app/helpers.py +0 -0
- {beanhub_cli-3.0.0b2 → beanhub_cli-3.1.0}/beanhub_cli/forms/app/main.py +0 -0
- {beanhub_cli-3.0.0b2 → beanhub_cli-3.1.0}/beanhub_cli/forms/app/routes.py +0 -0
- {beanhub_cli-3.0.0b2 → beanhub_cli-3.1.0}/beanhub_cli/forms/app/settings.py +0 -0
- {beanhub_cli-3.0.0b2 → beanhub_cli-3.1.0}/beanhub_cli/forms/app/static/js/beanhub-web-react-0.3.0.js +0 -0
- {beanhub_cli-3.0.0b2 → beanhub_cli-3.1.0}/beanhub_cli/forms/app/static/js/beanhub-web-react-0.3.0.js.LICENSE.txt +0 -0
- {beanhub_cli-3.0.0b2 → beanhub_cli-3.1.0}/beanhub_cli/forms/app/static/js/beanhub-web-react-0.3.0.js.map +0 -0
- {beanhub_cli-3.0.0b2 → beanhub_cli-3.1.0}/beanhub_cli/forms/app/static/vendor/bootstrap-datepicker/LICENSE +0 -0
- {beanhub_cli-3.0.0b2 → beanhub_cli-3.1.0}/beanhub_cli/forms/app/static/vendor/bootstrap-datepicker/css/bootstrap-datepicker.css +0 -0
- {beanhub_cli-3.0.0b2 → beanhub_cli-3.1.0}/beanhub_cli/forms/app/static/vendor/bootstrap-datepicker/css/bootstrap-datepicker.css.map +0 -0
- {beanhub_cli-3.0.0b2 → beanhub_cli-3.1.0}/beanhub_cli/forms/app/static/vendor/bootstrap-datepicker/css/bootstrap-datepicker.min.css +0 -0
- {beanhub_cli-3.0.0b2 → beanhub_cli-3.1.0}/beanhub_cli/forms/app/static/vendor/bootstrap-datepicker/js/bootstrap-datepicker.js +0 -0
- {beanhub_cli-3.0.0b2 → beanhub_cli-3.1.0}/beanhub_cli/forms/app/static/vendor/bootstrap-datepicker/js/bootstrap-datepicker.min.js +0 -0
- {beanhub_cli-3.0.0b2 → beanhub_cli-3.1.0}/beanhub_cli/forms/app/static/vendor/bootstrap-datepicker/locales/bootstrap-datepicker-en-CA.min.js +0 -0
- {beanhub_cli-3.0.0b2 → beanhub_cli-3.1.0}/beanhub_cli/forms/app/static/vendor/bootstrap-datepicker/locales/bootstrap-datepicker.ar-DZ.min.js +0 -0
- {beanhub_cli-3.0.0b2 → beanhub_cli-3.1.0}/beanhub_cli/forms/app/static/vendor/bootstrap-datepicker/locales/bootstrap-datepicker.ar-tn.min.js +0 -0
- {beanhub_cli-3.0.0b2 → beanhub_cli-3.1.0}/beanhub_cli/forms/app/static/vendor/bootstrap-datepicker/locales/bootstrap-datepicker.ar.min.js +0 -0
- {beanhub_cli-3.0.0b2 → beanhub_cli-3.1.0}/beanhub_cli/forms/app/static/vendor/bootstrap-datepicker/locales/bootstrap-datepicker.az.min.js +0 -0
- {beanhub_cli-3.0.0b2 → beanhub_cli-3.1.0}/beanhub_cli/forms/app/static/vendor/bootstrap-datepicker/locales/bootstrap-datepicker.bg.min.js +0 -0
- {beanhub_cli-3.0.0b2 → beanhub_cli-3.1.0}/beanhub_cli/forms/app/static/vendor/bootstrap-datepicker/locales/bootstrap-datepicker.bm.min.js +0 -0
- {beanhub_cli-3.0.0b2 → beanhub_cli-3.1.0}/beanhub_cli/forms/app/static/vendor/bootstrap-datepicker/locales/bootstrap-datepicker.bn.min.js +0 -0
- {beanhub_cli-3.0.0b2 → beanhub_cli-3.1.0}/beanhub_cli/forms/app/static/vendor/bootstrap-datepicker/locales/bootstrap-datepicker.br.min.js +0 -0
- {beanhub_cli-3.0.0b2 → beanhub_cli-3.1.0}/beanhub_cli/forms/app/static/vendor/bootstrap-datepicker/locales/bootstrap-datepicker.bs.min.js +0 -0
- {beanhub_cli-3.0.0b2 → beanhub_cli-3.1.0}/beanhub_cli/forms/app/static/vendor/bootstrap-datepicker/locales/bootstrap-datepicker.ca.min.js +0 -0
- {beanhub_cli-3.0.0b2 → beanhub_cli-3.1.0}/beanhub_cli/forms/app/static/vendor/bootstrap-datepicker/locales/bootstrap-datepicker.cs.min.js +0 -0
- {beanhub_cli-3.0.0b2 → beanhub_cli-3.1.0}/beanhub_cli/forms/app/static/vendor/bootstrap-datepicker/locales/bootstrap-datepicker.cy.min.js +0 -0
- {beanhub_cli-3.0.0b2 → beanhub_cli-3.1.0}/beanhub_cli/forms/app/static/vendor/bootstrap-datepicker/locales/bootstrap-datepicker.da.min.js +0 -0
- {beanhub_cli-3.0.0b2 → beanhub_cli-3.1.0}/beanhub_cli/forms/app/static/vendor/bootstrap-datepicker/locales/bootstrap-datepicker.de.min.js +0 -0
- {beanhub_cli-3.0.0b2 → beanhub_cli-3.1.0}/beanhub_cli/forms/app/static/vendor/bootstrap-datepicker/locales/bootstrap-datepicker.el.min.js +0 -0
- {beanhub_cli-3.0.0b2 → beanhub_cli-3.1.0}/beanhub_cli/forms/app/static/vendor/bootstrap-datepicker/locales/bootstrap-datepicker.en-AU.min.js +0 -0
- {beanhub_cli-3.0.0b2 → beanhub_cli-3.1.0}/beanhub_cli/forms/app/static/vendor/bootstrap-datepicker/locales/bootstrap-datepicker.en-CA.min.js +0 -0
- {beanhub_cli-3.0.0b2 → beanhub_cli-3.1.0}/beanhub_cli/forms/app/static/vendor/bootstrap-datepicker/locales/bootstrap-datepicker.en-GB.min.js +0 -0
- {beanhub_cli-3.0.0b2 → beanhub_cli-3.1.0}/beanhub_cli/forms/app/static/vendor/bootstrap-datepicker/locales/bootstrap-datepicker.en-IE.min.js +0 -0
- {beanhub_cli-3.0.0b2 → beanhub_cli-3.1.0}/beanhub_cli/forms/app/static/vendor/bootstrap-datepicker/locales/bootstrap-datepicker.en-NZ.min.js +0 -0
- {beanhub_cli-3.0.0b2 → beanhub_cli-3.1.0}/beanhub_cli/forms/app/static/vendor/bootstrap-datepicker/locales/bootstrap-datepicker.en-US.min.js +0 -0
- {beanhub_cli-3.0.0b2 → beanhub_cli-3.1.0}/beanhub_cli/forms/app/static/vendor/bootstrap-datepicker/locales/bootstrap-datepicker.en-ZA.min.js +0 -0
- {beanhub_cli-3.0.0b2 → beanhub_cli-3.1.0}/beanhub_cli/forms/app/static/vendor/bootstrap-datepicker/locales/bootstrap-datepicker.eo.min.js +0 -0
- {beanhub_cli-3.0.0b2 → beanhub_cli-3.1.0}/beanhub_cli/forms/app/static/vendor/bootstrap-datepicker/locales/bootstrap-datepicker.es.min.js +0 -0
- {beanhub_cli-3.0.0b2 → beanhub_cli-3.1.0}/beanhub_cli/forms/app/static/vendor/bootstrap-datepicker/locales/bootstrap-datepicker.et.min.js +0 -0
- {beanhub_cli-3.0.0b2 → beanhub_cli-3.1.0}/beanhub_cli/forms/app/static/vendor/bootstrap-datepicker/locales/bootstrap-datepicker.eu.min.js +0 -0
- {beanhub_cli-3.0.0b2 → beanhub_cli-3.1.0}/beanhub_cli/forms/app/static/vendor/bootstrap-datepicker/locales/bootstrap-datepicker.fa.min.js +0 -0
- {beanhub_cli-3.0.0b2 → beanhub_cli-3.1.0}/beanhub_cli/forms/app/static/vendor/bootstrap-datepicker/locales/bootstrap-datepicker.fi.min.js +0 -0
- {beanhub_cli-3.0.0b2 → beanhub_cli-3.1.0}/beanhub_cli/forms/app/static/vendor/bootstrap-datepicker/locales/bootstrap-datepicker.fo.min.js +0 -0
- {beanhub_cli-3.0.0b2 → beanhub_cli-3.1.0}/beanhub_cli/forms/app/static/vendor/bootstrap-datepicker/locales/bootstrap-datepicker.fr-CH.min.js +0 -0
- {beanhub_cli-3.0.0b2 → beanhub_cli-3.1.0}/beanhub_cli/forms/app/static/vendor/bootstrap-datepicker/locales/bootstrap-datepicker.fr.min.js +0 -0
- {beanhub_cli-3.0.0b2 → beanhub_cli-3.1.0}/beanhub_cli/forms/app/static/vendor/bootstrap-datepicker/locales/bootstrap-datepicker.gl.min.js +0 -0
- {beanhub_cli-3.0.0b2 → beanhub_cli-3.1.0}/beanhub_cli/forms/app/static/vendor/bootstrap-datepicker/locales/bootstrap-datepicker.he.min.js +0 -0
- {beanhub_cli-3.0.0b2 → beanhub_cli-3.1.0}/beanhub_cli/forms/app/static/vendor/bootstrap-datepicker/locales/bootstrap-datepicker.hi.min.js +0 -0
- {beanhub_cli-3.0.0b2 → beanhub_cli-3.1.0}/beanhub_cli/forms/app/static/vendor/bootstrap-datepicker/locales/bootstrap-datepicker.hr.min.js +0 -0
- {beanhub_cli-3.0.0b2 → beanhub_cli-3.1.0}/beanhub_cli/forms/app/static/vendor/bootstrap-datepicker/locales/bootstrap-datepicker.hu.min.js +0 -0
- {beanhub_cli-3.0.0b2 → beanhub_cli-3.1.0}/beanhub_cli/forms/app/static/vendor/bootstrap-datepicker/locales/bootstrap-datepicker.hy.min.js +0 -0
- {beanhub_cli-3.0.0b2 → beanhub_cli-3.1.0}/beanhub_cli/forms/app/static/vendor/bootstrap-datepicker/locales/bootstrap-datepicker.id.min.js +0 -0
- {beanhub_cli-3.0.0b2 → beanhub_cli-3.1.0}/beanhub_cli/forms/app/static/vendor/bootstrap-datepicker/locales/bootstrap-datepicker.is.min.js +0 -0
- {beanhub_cli-3.0.0b2 → beanhub_cli-3.1.0}/beanhub_cli/forms/app/static/vendor/bootstrap-datepicker/locales/bootstrap-datepicker.it-CH.min.js +0 -0
- {beanhub_cli-3.0.0b2 → beanhub_cli-3.1.0}/beanhub_cli/forms/app/static/vendor/bootstrap-datepicker/locales/bootstrap-datepicker.it.min.js +0 -0
- {beanhub_cli-3.0.0b2 → beanhub_cli-3.1.0}/beanhub_cli/forms/app/static/vendor/bootstrap-datepicker/locales/bootstrap-datepicker.ja.min.js +0 -0
- {beanhub_cli-3.0.0b2 → beanhub_cli-3.1.0}/beanhub_cli/forms/app/static/vendor/bootstrap-datepicker/locales/bootstrap-datepicker.ka.min.js +0 -0
- {beanhub_cli-3.0.0b2 → beanhub_cli-3.1.0}/beanhub_cli/forms/app/static/vendor/bootstrap-datepicker/locales/bootstrap-datepicker.kh.min.js +0 -0
- {beanhub_cli-3.0.0b2 → beanhub_cli-3.1.0}/beanhub_cli/forms/app/static/vendor/bootstrap-datepicker/locales/bootstrap-datepicker.kk.min.js +0 -0
- {beanhub_cli-3.0.0b2 → beanhub_cli-3.1.0}/beanhub_cli/forms/app/static/vendor/bootstrap-datepicker/locales/bootstrap-datepicker.km.min.js +0 -0
- {beanhub_cli-3.0.0b2 → beanhub_cli-3.1.0}/beanhub_cli/forms/app/static/vendor/bootstrap-datepicker/locales/bootstrap-datepicker.ko.min.js +0 -0
- {beanhub_cli-3.0.0b2 → beanhub_cli-3.1.0}/beanhub_cli/forms/app/static/vendor/bootstrap-datepicker/locales/bootstrap-datepicker.kr.min.js +0 -0
- {beanhub_cli-3.0.0b2 → beanhub_cli-3.1.0}/beanhub_cli/forms/app/static/vendor/bootstrap-datepicker/locales/bootstrap-datepicker.lt.min.js +0 -0
- {beanhub_cli-3.0.0b2 → beanhub_cli-3.1.0}/beanhub_cli/forms/app/static/vendor/bootstrap-datepicker/locales/bootstrap-datepicker.lv.min.js +0 -0
- {beanhub_cli-3.0.0b2 → beanhub_cli-3.1.0}/beanhub_cli/forms/app/static/vendor/bootstrap-datepicker/locales/bootstrap-datepicker.me.min.js +0 -0
- {beanhub_cli-3.0.0b2 → beanhub_cli-3.1.0}/beanhub_cli/forms/app/static/vendor/bootstrap-datepicker/locales/bootstrap-datepicker.mk.min.js +0 -0
- {beanhub_cli-3.0.0b2 → beanhub_cli-3.1.0}/beanhub_cli/forms/app/static/vendor/bootstrap-datepicker/locales/bootstrap-datepicker.mn.min.js +0 -0
- {beanhub_cli-3.0.0b2 → beanhub_cli-3.1.0}/beanhub_cli/forms/app/static/vendor/bootstrap-datepicker/locales/bootstrap-datepicker.mr.min.js +0 -0
- {beanhub_cli-3.0.0b2 → beanhub_cli-3.1.0}/beanhub_cli/forms/app/static/vendor/bootstrap-datepicker/locales/bootstrap-datepicker.ms.min.js +0 -0
- {beanhub_cli-3.0.0b2 → beanhub_cli-3.1.0}/beanhub_cli/forms/app/static/vendor/bootstrap-datepicker/locales/bootstrap-datepicker.nl-BE.min.js +0 -0
- {beanhub_cli-3.0.0b2 → beanhub_cli-3.1.0}/beanhub_cli/forms/app/static/vendor/bootstrap-datepicker/locales/bootstrap-datepicker.nl.min.js +0 -0
- {beanhub_cli-3.0.0b2 → beanhub_cli-3.1.0}/beanhub_cli/forms/app/static/vendor/bootstrap-datepicker/locales/bootstrap-datepicker.no.min.js +0 -0
- {beanhub_cli-3.0.0b2 → beanhub_cli-3.1.0}/beanhub_cli/forms/app/static/vendor/bootstrap-datepicker/locales/bootstrap-datepicker.oc.min.js +0 -0
- {beanhub_cli-3.0.0b2 → beanhub_cli-3.1.0}/beanhub_cli/forms/app/static/vendor/bootstrap-datepicker/locales/bootstrap-datepicker.pl.min.js +0 -0
- {beanhub_cli-3.0.0b2 → beanhub_cli-3.1.0}/beanhub_cli/forms/app/static/vendor/bootstrap-datepicker/locales/bootstrap-datepicker.pt-BR.min.js +0 -0
- {beanhub_cli-3.0.0b2 → beanhub_cli-3.1.0}/beanhub_cli/forms/app/static/vendor/bootstrap-datepicker/locales/bootstrap-datepicker.pt.min.js +0 -0
- {beanhub_cli-3.0.0b2 → beanhub_cli-3.1.0}/beanhub_cli/forms/app/static/vendor/bootstrap-datepicker/locales/bootstrap-datepicker.ro.min.js +0 -0
- {beanhub_cli-3.0.0b2 → beanhub_cli-3.1.0}/beanhub_cli/forms/app/static/vendor/bootstrap-datepicker/locales/bootstrap-datepicker.rs-latin.min.js +0 -0
- {beanhub_cli-3.0.0b2 → beanhub_cli-3.1.0}/beanhub_cli/forms/app/static/vendor/bootstrap-datepicker/locales/bootstrap-datepicker.rs.min.js +0 -0
- {beanhub_cli-3.0.0b2 → beanhub_cli-3.1.0}/beanhub_cli/forms/app/static/vendor/bootstrap-datepicker/locales/bootstrap-datepicker.ru.min.js +0 -0
- {beanhub_cli-3.0.0b2 → beanhub_cli-3.1.0}/beanhub_cli/forms/app/static/vendor/bootstrap-datepicker/locales/bootstrap-datepicker.si.min.js +0 -0
- {beanhub_cli-3.0.0b2 → beanhub_cli-3.1.0}/beanhub_cli/forms/app/static/vendor/bootstrap-datepicker/locales/bootstrap-datepicker.sk.min.js +0 -0
- {beanhub_cli-3.0.0b2 → beanhub_cli-3.1.0}/beanhub_cli/forms/app/static/vendor/bootstrap-datepicker/locales/bootstrap-datepicker.sl.min.js +0 -0
- {beanhub_cli-3.0.0b2 → beanhub_cli-3.1.0}/beanhub_cli/forms/app/static/vendor/bootstrap-datepicker/locales/bootstrap-datepicker.sq.min.js +0 -0
- {beanhub_cli-3.0.0b2 → beanhub_cli-3.1.0}/beanhub_cli/forms/app/static/vendor/bootstrap-datepicker/locales/bootstrap-datepicker.sr-latin.min.js +0 -0
- {beanhub_cli-3.0.0b2 → beanhub_cli-3.1.0}/beanhub_cli/forms/app/static/vendor/bootstrap-datepicker/locales/bootstrap-datepicker.sr.min.js +0 -0
- {beanhub_cli-3.0.0b2 → beanhub_cli-3.1.0}/beanhub_cli/forms/app/static/vendor/bootstrap-datepicker/locales/bootstrap-datepicker.sv.min.js +0 -0
- {beanhub_cli-3.0.0b2 → beanhub_cli-3.1.0}/beanhub_cli/forms/app/static/vendor/bootstrap-datepicker/locales/bootstrap-datepicker.sw.min.js +0 -0
- {beanhub_cli-3.0.0b2 → beanhub_cli-3.1.0}/beanhub_cli/forms/app/static/vendor/bootstrap-datepicker/locales/bootstrap-datepicker.ta.min.js +0 -0
- {beanhub_cli-3.0.0b2 → beanhub_cli-3.1.0}/beanhub_cli/forms/app/static/vendor/bootstrap-datepicker/locales/bootstrap-datepicker.tg.min.js +0 -0
- {beanhub_cli-3.0.0b2 → beanhub_cli-3.1.0}/beanhub_cli/forms/app/static/vendor/bootstrap-datepicker/locales/bootstrap-datepicker.th.min.js +0 -0
- {beanhub_cli-3.0.0b2 → beanhub_cli-3.1.0}/beanhub_cli/forms/app/static/vendor/bootstrap-datepicker/locales/bootstrap-datepicker.tk.min.js +0 -0
- {beanhub_cli-3.0.0b2 → beanhub_cli-3.1.0}/beanhub_cli/forms/app/static/vendor/bootstrap-datepicker/locales/bootstrap-datepicker.tr.min.js +0 -0
- {beanhub_cli-3.0.0b2 → beanhub_cli-3.1.0}/beanhub_cli/forms/app/static/vendor/bootstrap-datepicker/locales/bootstrap-datepicker.uk.min.js +0 -0
- {beanhub_cli-3.0.0b2 → beanhub_cli-3.1.0}/beanhub_cli/forms/app/static/vendor/bootstrap-datepicker/locales/bootstrap-datepicker.uz-cyrl.min.js +0 -0
- {beanhub_cli-3.0.0b2 → beanhub_cli-3.1.0}/beanhub_cli/forms/app/static/vendor/bootstrap-datepicker/locales/bootstrap-datepicker.uz-latn.min.js +0 -0
- {beanhub_cli-3.0.0b2 → beanhub_cli-3.1.0}/beanhub_cli/forms/app/static/vendor/bootstrap-datepicker/locales/bootstrap-datepicker.vi.min.js +0 -0
- {beanhub_cli-3.0.0b2 → beanhub_cli-3.1.0}/beanhub_cli/forms/app/static/vendor/bootstrap-datepicker/locales/bootstrap-datepicker.zh-CN.min.js +0 -0
- {beanhub_cli-3.0.0b2 → beanhub_cli-3.1.0}/beanhub_cli/forms/app/static/vendor/bootstrap-datepicker/locales/bootstrap-datepicker.zh-TW.min.js +0 -0
- {beanhub_cli-3.0.0b2 → beanhub_cli-3.1.0}/beanhub_cli/forms/app/static/vendor/fontawesome6/LICENSE.txt +0 -0
- {beanhub_cli-3.0.0b2 → beanhub_cli-3.1.0}/beanhub_cli/forms/app/static/vendor/fontawesome6/css/all.min.css +0 -0
- {beanhub_cli-3.0.0b2 → beanhub_cli-3.1.0}/beanhub_cli/forms/app/static/vendor/fontawesome6/webfonts/fa-brands-400.ttf +0 -0
- {beanhub_cli-3.0.0b2 → beanhub_cli-3.1.0}/beanhub_cli/forms/app/static/vendor/fontawesome6/webfonts/fa-brands-400.woff2 +0 -0
- {beanhub_cli-3.0.0b2 → beanhub_cli-3.1.0}/beanhub_cli/forms/app/static/vendor/fontawesome6/webfonts/fa-regular-400.ttf +0 -0
- {beanhub_cli-3.0.0b2 → beanhub_cli-3.1.0}/beanhub_cli/forms/app/static/vendor/fontawesome6/webfonts/fa-regular-400.woff2 +0 -0
- {beanhub_cli-3.0.0b2 → beanhub_cli-3.1.0}/beanhub_cli/forms/app/static/vendor/fontawesome6/webfonts/fa-solid-900.ttf +0 -0
- {beanhub_cli-3.0.0b2 → beanhub_cli-3.1.0}/beanhub_cli/forms/app/static/vendor/fontawesome6/webfonts/fa-solid-900.woff2 +0 -0
- {beanhub_cli-3.0.0b2 → beanhub_cli-3.1.0}/beanhub_cli/forms/app/static/vendor/fontawesome6/webfonts/fa-v4compatibility.ttf +0 -0
- {beanhub_cli-3.0.0b2 → beanhub_cli-3.1.0}/beanhub_cli/forms/app/static/vendor/fontawesome6/webfonts/fa-v4compatibility.woff2 +0 -0
- {beanhub_cli-3.0.0b2 → beanhub_cli-3.1.0}/beanhub_cli/forms/app/static/vendor/select2/LICENSE.md +0 -0
- {beanhub_cli-3.0.0b2 → beanhub_cli-3.1.0}/beanhub_cli/forms/app/static/vendor/select2/css/select2.css +0 -0
- {beanhub_cli-3.0.0b2 → beanhub_cli-3.1.0}/beanhub_cli/forms/app/static/vendor/select2/css/select2.min.css +0 -0
- {beanhub_cli-3.0.0b2 → beanhub_cli-3.1.0}/beanhub_cli/forms/app/static/vendor/select2/js/i18n/af.js +0 -0
- {beanhub_cli-3.0.0b2 → beanhub_cli-3.1.0}/beanhub_cli/forms/app/static/vendor/select2/js/i18n/ar.js +0 -0
- {beanhub_cli-3.0.0b2 → beanhub_cli-3.1.0}/beanhub_cli/forms/app/static/vendor/select2/js/i18n/az.js +0 -0
- {beanhub_cli-3.0.0b2 → beanhub_cli-3.1.0}/beanhub_cli/forms/app/static/vendor/select2/js/i18n/bg.js +0 -0
- {beanhub_cli-3.0.0b2 → beanhub_cli-3.1.0}/beanhub_cli/forms/app/static/vendor/select2/js/i18n/bn.js +0 -0
- {beanhub_cli-3.0.0b2 → beanhub_cli-3.1.0}/beanhub_cli/forms/app/static/vendor/select2/js/i18n/bs.js +0 -0
- {beanhub_cli-3.0.0b2 → beanhub_cli-3.1.0}/beanhub_cli/forms/app/static/vendor/select2/js/i18n/ca.js +0 -0
- {beanhub_cli-3.0.0b2 → beanhub_cli-3.1.0}/beanhub_cli/forms/app/static/vendor/select2/js/i18n/cs.js +0 -0
- {beanhub_cli-3.0.0b2 → beanhub_cli-3.1.0}/beanhub_cli/forms/app/static/vendor/select2/js/i18n/da.js +0 -0
- {beanhub_cli-3.0.0b2 → beanhub_cli-3.1.0}/beanhub_cli/forms/app/static/vendor/select2/js/i18n/de.js +0 -0
- {beanhub_cli-3.0.0b2 → beanhub_cli-3.1.0}/beanhub_cli/forms/app/static/vendor/select2/js/i18n/dsb.js +0 -0
- {beanhub_cli-3.0.0b2 → beanhub_cli-3.1.0}/beanhub_cli/forms/app/static/vendor/select2/js/i18n/el.js +0 -0
- {beanhub_cli-3.0.0b2 → beanhub_cli-3.1.0}/beanhub_cli/forms/app/static/vendor/select2/js/i18n/en.js +0 -0
- {beanhub_cli-3.0.0b2 → beanhub_cli-3.1.0}/beanhub_cli/forms/app/static/vendor/select2/js/i18n/eo.js +0 -0
- {beanhub_cli-3.0.0b2 → beanhub_cli-3.1.0}/beanhub_cli/forms/app/static/vendor/select2/js/i18n/es.js +0 -0
- {beanhub_cli-3.0.0b2 → beanhub_cli-3.1.0}/beanhub_cli/forms/app/static/vendor/select2/js/i18n/et.js +0 -0
- {beanhub_cli-3.0.0b2 → beanhub_cli-3.1.0}/beanhub_cli/forms/app/static/vendor/select2/js/i18n/eu.js +0 -0
- {beanhub_cli-3.0.0b2 → beanhub_cli-3.1.0}/beanhub_cli/forms/app/static/vendor/select2/js/i18n/fa.js +0 -0
- {beanhub_cli-3.0.0b2 → beanhub_cli-3.1.0}/beanhub_cli/forms/app/static/vendor/select2/js/i18n/fi.js +0 -0
- {beanhub_cli-3.0.0b2 → beanhub_cli-3.1.0}/beanhub_cli/forms/app/static/vendor/select2/js/i18n/fr.js +0 -0
- {beanhub_cli-3.0.0b2 → beanhub_cli-3.1.0}/beanhub_cli/forms/app/static/vendor/select2/js/i18n/gl.js +0 -0
- {beanhub_cli-3.0.0b2 → beanhub_cli-3.1.0}/beanhub_cli/forms/app/static/vendor/select2/js/i18n/he.js +0 -0
- {beanhub_cli-3.0.0b2 → beanhub_cli-3.1.0}/beanhub_cli/forms/app/static/vendor/select2/js/i18n/hi.js +0 -0
- {beanhub_cli-3.0.0b2 → beanhub_cli-3.1.0}/beanhub_cli/forms/app/static/vendor/select2/js/i18n/hr.js +0 -0
- {beanhub_cli-3.0.0b2 → beanhub_cli-3.1.0}/beanhub_cli/forms/app/static/vendor/select2/js/i18n/hsb.js +0 -0
- {beanhub_cli-3.0.0b2 → beanhub_cli-3.1.0}/beanhub_cli/forms/app/static/vendor/select2/js/i18n/hu.js +0 -0
- {beanhub_cli-3.0.0b2 → beanhub_cli-3.1.0}/beanhub_cli/forms/app/static/vendor/select2/js/i18n/hy.js +0 -0
- {beanhub_cli-3.0.0b2 → beanhub_cli-3.1.0}/beanhub_cli/forms/app/static/vendor/select2/js/i18n/id.js +0 -0
- {beanhub_cli-3.0.0b2 → beanhub_cli-3.1.0}/beanhub_cli/forms/app/static/vendor/select2/js/i18n/is.js +0 -0
- {beanhub_cli-3.0.0b2 → beanhub_cli-3.1.0}/beanhub_cli/forms/app/static/vendor/select2/js/i18n/it.js +0 -0
- {beanhub_cli-3.0.0b2 → beanhub_cli-3.1.0}/beanhub_cli/forms/app/static/vendor/select2/js/i18n/ja.js +0 -0
- {beanhub_cli-3.0.0b2 → beanhub_cli-3.1.0}/beanhub_cli/forms/app/static/vendor/select2/js/i18n/ka.js +0 -0
- {beanhub_cli-3.0.0b2 → beanhub_cli-3.1.0}/beanhub_cli/forms/app/static/vendor/select2/js/i18n/km.js +0 -0
- {beanhub_cli-3.0.0b2 → beanhub_cli-3.1.0}/beanhub_cli/forms/app/static/vendor/select2/js/i18n/ko.js +0 -0
- {beanhub_cli-3.0.0b2 → beanhub_cli-3.1.0}/beanhub_cli/forms/app/static/vendor/select2/js/i18n/lt.js +0 -0
- {beanhub_cli-3.0.0b2 → beanhub_cli-3.1.0}/beanhub_cli/forms/app/static/vendor/select2/js/i18n/lv.js +0 -0
- {beanhub_cli-3.0.0b2 → beanhub_cli-3.1.0}/beanhub_cli/forms/app/static/vendor/select2/js/i18n/mk.js +0 -0
- {beanhub_cli-3.0.0b2 → beanhub_cli-3.1.0}/beanhub_cli/forms/app/static/vendor/select2/js/i18n/ms.js +0 -0
- {beanhub_cli-3.0.0b2 → beanhub_cli-3.1.0}/beanhub_cli/forms/app/static/vendor/select2/js/i18n/nb.js +0 -0
- {beanhub_cli-3.0.0b2 → beanhub_cli-3.1.0}/beanhub_cli/forms/app/static/vendor/select2/js/i18n/ne.js +0 -0
- {beanhub_cli-3.0.0b2 → beanhub_cli-3.1.0}/beanhub_cli/forms/app/static/vendor/select2/js/i18n/nl.js +0 -0
- {beanhub_cli-3.0.0b2 → beanhub_cli-3.1.0}/beanhub_cli/forms/app/static/vendor/select2/js/i18n/pa.js +0 -0
- {beanhub_cli-3.0.0b2 → beanhub_cli-3.1.0}/beanhub_cli/forms/app/static/vendor/select2/js/i18n/pl.js +0 -0
- {beanhub_cli-3.0.0b2 → beanhub_cli-3.1.0}/beanhub_cli/forms/app/static/vendor/select2/js/i18n/ps.js +0 -0
- {beanhub_cli-3.0.0b2 → beanhub_cli-3.1.0}/beanhub_cli/forms/app/static/vendor/select2/js/i18n/pt-BR.js +0 -0
- {beanhub_cli-3.0.0b2 → beanhub_cli-3.1.0}/beanhub_cli/forms/app/static/vendor/select2/js/i18n/pt.js +0 -0
- {beanhub_cli-3.0.0b2 → beanhub_cli-3.1.0}/beanhub_cli/forms/app/static/vendor/select2/js/i18n/ro.js +0 -0
- {beanhub_cli-3.0.0b2 → beanhub_cli-3.1.0}/beanhub_cli/forms/app/static/vendor/select2/js/i18n/ru.js +0 -0
- {beanhub_cli-3.0.0b2 → beanhub_cli-3.1.0}/beanhub_cli/forms/app/static/vendor/select2/js/i18n/sk.js +0 -0
- {beanhub_cli-3.0.0b2 → beanhub_cli-3.1.0}/beanhub_cli/forms/app/static/vendor/select2/js/i18n/sl.js +0 -0
- {beanhub_cli-3.0.0b2 → beanhub_cli-3.1.0}/beanhub_cli/forms/app/static/vendor/select2/js/i18n/sq.js +0 -0
- {beanhub_cli-3.0.0b2 → beanhub_cli-3.1.0}/beanhub_cli/forms/app/static/vendor/select2/js/i18n/sr-Cyrl.js +0 -0
- {beanhub_cli-3.0.0b2 → beanhub_cli-3.1.0}/beanhub_cli/forms/app/static/vendor/select2/js/i18n/sr.js +0 -0
- {beanhub_cli-3.0.0b2 → beanhub_cli-3.1.0}/beanhub_cli/forms/app/static/vendor/select2/js/i18n/sv.js +0 -0
- {beanhub_cli-3.0.0b2 → beanhub_cli-3.1.0}/beanhub_cli/forms/app/static/vendor/select2/js/i18n/te.js +0 -0
- {beanhub_cli-3.0.0b2 → beanhub_cli-3.1.0}/beanhub_cli/forms/app/static/vendor/select2/js/i18n/th.js +0 -0
- {beanhub_cli-3.0.0b2 → beanhub_cli-3.1.0}/beanhub_cli/forms/app/static/vendor/select2/js/i18n/tk.js +0 -0
- {beanhub_cli-3.0.0b2 → beanhub_cli-3.1.0}/beanhub_cli/forms/app/static/vendor/select2/js/i18n/tr.js +0 -0
- {beanhub_cli-3.0.0b2 → beanhub_cli-3.1.0}/beanhub_cli/forms/app/static/vendor/select2/js/i18n/uk.js +0 -0
- {beanhub_cli-3.0.0b2 → beanhub_cli-3.1.0}/beanhub_cli/forms/app/static/vendor/select2/js/i18n/vi.js +0 -0
- {beanhub_cli-3.0.0b2 → beanhub_cli-3.1.0}/beanhub_cli/forms/app/static/vendor/select2/js/i18n/zh-CN.js +0 -0
- {beanhub_cli-3.0.0b2 → beanhub_cli-3.1.0}/beanhub_cli/forms/app/static/vendor/select2/js/i18n/zh-TW.js +0 -0
- {beanhub_cli-3.0.0b2 → beanhub_cli-3.1.0}/beanhub_cli/forms/app/static/vendor/select2/js/select2.full.js +0 -0
- {beanhub_cli-3.0.0b2 → beanhub_cli-3.1.0}/beanhub_cli/forms/app/static/vendor/select2/js/select2.full.min.js +0 -0
- {beanhub_cli-3.0.0b2 → beanhub_cli-3.1.0}/beanhub_cli/forms/app/static/vendor/select2/js/select2.js +0 -0
- {beanhub_cli-3.0.0b2 → beanhub_cli-3.1.0}/beanhub_cli/forms/app/static/vendor/select2/js/select2.min.js +0 -0
- {beanhub_cli-3.0.0b2 → beanhub_cli-3.1.0}/beanhub_cli/forms/app/templates/errors.html +0 -0
- {beanhub_cli-3.0.0b2 → beanhub_cli-3.1.0}/beanhub_cli/forms/app/templates/flash_messages.html +0 -0
- {beanhub_cli-3.0.0b2 → beanhub_cli-3.1.0}/beanhub_cli/forms/app/templates/footer.html +0 -0
- {beanhub_cli-3.0.0b2 → beanhub_cli-3.1.0}/beanhub_cli/forms/app/templates/form.html +0 -0
- {beanhub_cli-3.0.0b2 → beanhub_cli-3.1.0}/beanhub_cli/forms/app/templates/home.html +0 -0
- {beanhub_cli-3.0.0b2 → beanhub_cli-3.1.0}/beanhub_cli/forms/app/templates/layout.html +0 -0
- {beanhub_cli-3.0.0b2 → beanhub_cli-3.1.0}/beanhub_cli/forms/cli.py +0 -0
- {beanhub_cli-3.0.0b2 → beanhub_cli-3.1.0}/beanhub_cli/forms/main.py +0 -0
- {beanhub_cli-3.0.0b2 → beanhub_cli-3.1.0}/beanhub_cli/forms/validator.py +0 -0
- {beanhub_cli-3.0.0b2 → beanhub_cli-3.1.0}/beanhub_cli/import_cli.py +0 -0
- {beanhub_cli-3.0.0b2 → beanhub_cli-3.1.0}/beanhub_cli/inbox/__init__.py +0 -0
- {beanhub_cli-3.0.0b2 → beanhub_cli-3.1.0}/beanhub_cli/inbox/cli.py +0 -0
- {beanhub_cli-3.0.0b2 → beanhub_cli-3.1.0}/beanhub_cli/inbox/main.py +0 -0
- {beanhub_cli-3.0.0b2 → beanhub_cli-3.1.0}/beanhub_cli/internal_api/__init__.py +0 -0
- {beanhub_cli-3.0.0b2 → beanhub_cli-3.1.0}/beanhub_cli/internal_api/api/__init__.py +0 -0
- {beanhub_cli-3.0.0b2 → beanhub_cli-3.1.0}/beanhub_cli/internal_api/api/auth/__init__.py +0 -0
- {beanhub_cli-3.0.0b2 → beanhub_cli-3.1.0}/beanhub_cli/internal_api/api/auth/create_auth_session.py +0 -0
- {beanhub_cli-3.0.0b2 → beanhub_cli-3.1.0}/beanhub_cli/internal_api/api/auth/poll_auth_session.py +0 -0
- {beanhub_cli-3.0.0b2 → beanhub_cli-3.1.0}/beanhub_cli/internal_api/api/connect/__init__.py +0 -0
- {beanhub_cli-3.0.0b2 → beanhub_cli-3.1.0}/beanhub_cli/internal_api/api/connect/create_dump_request.py +0 -0
- {beanhub_cli-3.0.0b2 → beanhub_cli-3.1.0}/beanhub_cli/internal_api/api/connect/create_sync_batch.py +0 -0
- {beanhub_cli-3.0.0b2 → beanhub_cli-3.1.0}/beanhub_cli/internal_api/api/connect/get_dump_request.py +0 -0
- {beanhub_cli-3.0.0b2 → beanhub_cli-3.1.0}/beanhub_cli/internal_api/api/connect/get_sync_batch.py +0 -0
- {beanhub_cli-3.0.0b2 → beanhub_cli-3.1.0}/beanhub_cli/internal_api/api/inbox/__init__.py +0 -0
- {beanhub_cli-3.0.0b2 → beanhub_cli-3.1.0}/beanhub_cli/internal_api/api/inbox/create_inbox_dump_request.py +0 -0
- {beanhub_cli-3.0.0b2 → beanhub_cli-3.1.0}/beanhub_cli/internal_api/api/inbox/get_inbox_dump_request.py +0 -0
- {beanhub_cli-3.0.0b2 → beanhub_cli-3.1.0}/beanhub_cli/internal_api/api/inbox/get_inbox_emails.py +0 -0
- {beanhub_cli-3.0.0b2 → beanhub_cli-3.1.0}/beanhub_cli/internal_api/api/repo/__init__.py +0 -0
- {beanhub_cli-3.0.0b2 → beanhub_cli-3.1.0}/beanhub_cli/internal_api/api/repo/list_repo.py +0 -0
- {beanhub_cli-3.0.0b2 → beanhub_cli-3.1.0}/beanhub_cli/internal_api/client.py +0 -0
- {beanhub_cli-3.0.0b2 → beanhub_cli-3.1.0}/beanhub_cli/internal_api/errors.py +0 -0
- {beanhub_cli-3.0.0b2 → beanhub_cli-3.1.0}/beanhub_cli/internal_api/models/__init__.py +0 -0
- {beanhub_cli-3.0.0b2 → beanhub_cli-3.1.0}/beanhub_cli/internal_api/models/auth_session_not_ready_response.py +0 -0
- {beanhub_cli-3.0.0b2 → beanhub_cli-3.1.0}/beanhub_cli/internal_api/models/auth_session_poll_response.py +0 -0
- {beanhub_cli-3.0.0b2 → beanhub_cli-3.1.0}/beanhub_cli/internal_api/models/auth_session_request.py +0 -0
- {beanhub_cli-3.0.0b2 → beanhub_cli-3.1.0}/beanhub_cli/internal_api/models/auth_session_response.py +0 -0
- {beanhub_cli-3.0.0b2 → beanhub_cli-3.1.0}/beanhub_cli/internal_api/models/create_dump_request_request.py +0 -0
- {beanhub_cli-3.0.0b2 → beanhub_cli-3.1.0}/beanhub_cli/internal_api/models/create_dump_request_response.py +0 -0
- {beanhub_cli-3.0.0b2 → beanhub_cli-3.1.0}/beanhub_cli/internal_api/models/create_inbox_dump_request.py +0 -0
- {beanhub_cli-3.0.0b2 → beanhub_cli-3.1.0}/beanhub_cli/internal_api/models/create_inbox_dump_request_response.py +0 -0
- {beanhub_cli-3.0.0b2 → beanhub_cli-3.1.0}/beanhub_cli/internal_api/models/create_sync_batch_response.py +0 -0
- {beanhub_cli-3.0.0b2 → beanhub_cli-3.1.0}/beanhub_cli/internal_api/models/dump_request_state.py +0 -0
- {beanhub_cli-3.0.0b2 → beanhub_cli-3.1.0}/beanhub_cli/internal_api/models/generic_error.py +0 -0
- {beanhub_cli-3.0.0b2 → beanhub_cli-3.1.0}/beanhub_cli/internal_api/models/get_dump_request_response.py +0 -0
- {beanhub_cli-3.0.0b2 → beanhub_cli-3.1.0}/beanhub_cli/internal_api/models/get_inbox_dump_request_response.py +0 -0
- {beanhub_cli-3.0.0b2 → beanhub_cli-3.1.0}/beanhub_cli/internal_api/models/get_inbox_email_response.py +0 -0
- {beanhub_cli-3.0.0b2 → beanhub_cli-3.1.0}/beanhub_cli/internal_api/models/get_sync_batch_response.py +0 -0
- {beanhub_cli-3.0.0b2 → beanhub_cli-3.1.0}/beanhub_cli/internal_api/models/http_validation_error.py +0 -0
- {beanhub_cli-3.0.0b2 → beanhub_cli-3.1.0}/beanhub_cli/internal_api/models/inbox_dump_request_state.py +0 -0
- {beanhub_cli-3.0.0b2 → beanhub_cli-3.1.0}/beanhub_cli/internal_api/models/inbox_email.py +0 -0
- {beanhub_cli-3.0.0b2 → beanhub_cli-3.1.0}/beanhub_cli/internal_api/models/inbox_email_headers.py +0 -0
- {beanhub_cli-3.0.0b2 → beanhub_cli-3.1.0}/beanhub_cli/internal_api/models/item_data.py +0 -0
- {beanhub_cli-3.0.0b2 → beanhub_cli-3.1.0}/beanhub_cli/internal_api/models/list_repositories_response.py +0 -0
- {beanhub_cli-3.0.0b2 → beanhub_cli-3.1.0}/beanhub_cli/internal_api/models/plaid_item_sync_state.py +0 -0
- {beanhub_cli-3.0.0b2 → beanhub_cli-3.1.0}/beanhub_cli/internal_api/models/repository.py +0 -0
- {beanhub_cli-3.0.0b2 → beanhub_cli-3.1.0}/beanhub_cli/internal_api/models/repository_type.py +0 -0
- {beanhub_cli-3.0.0b2 → beanhub_cli-3.1.0}/beanhub_cli/internal_api/models/sync_data.py +0 -0
- {beanhub_cli-3.0.0b2 → beanhub_cli-3.1.0}/beanhub_cli/internal_api/models/validation_error.py +0 -0
- {beanhub_cli-3.0.0b2 → beanhub_cli-3.1.0}/beanhub_cli/internal_api/py.typed +0 -0
- {beanhub_cli-3.0.0b2 → beanhub_cli-3.1.0}/beanhub_cli/internal_api/types.py +0 -0
- {beanhub_cli-3.0.0b2 → beanhub_cli-3.1.0}/beanhub_cli/login.py +0 -0
- {beanhub_cli-3.0.0b2/tests → beanhub_cli-3.1.0/beanhub_cli/mcp}/__init__.py +0 -0
- {beanhub_cli-3.0.0b2/tests/connect → beanhub_cli-3.1.0/beanhub_cli/mcp/app}/__init__.py +0 -0
- {beanhub_cli-3.0.0b2 → beanhub_cli-3.1.0}/data/internal-api-config.yaml +0 -0
- {beanhub_cli-3.0.0b2 → beanhub_cli-3.1.0}/data/internal-openapi.json +0 -0
- {beanhub_cli-3.0.0b2 → beanhub_cli-3.1.0}/docs/docs/assets/favicon.svg +0 -0
- {beanhub_cli-3.0.0b2 → beanhub_cli-3.1.0}/docs/docs/assets/logo.svg +0 -0
- {beanhub_cli-3.0.0b2 → beanhub_cli-3.1.0}/docs/docs/commands/form.md +0 -0
- {beanhub_cli-3.0.0b2 → beanhub_cli-3.1.0}/docs/docs/commands/format.md +0 -0
- {beanhub_cli-3.0.0b2 → beanhub_cli-3.1.0}/docs/docs/commands/import.md +0 -0
- {beanhub_cli-3.0.0b2 → beanhub_cli-3.1.0}/docs/docs/getting-started.md +0 -0
- {beanhub_cli-3.0.0b2 → beanhub_cli-3.1.0}/docs/docs/img/auth-session-screenshot.png +0 -0
- {beanhub_cli-3.0.0b2 → beanhub_cli-3.1.0}/docs/docs/img/beanhub-connect-list.png +0 -0
- {beanhub_cli-3.0.0b2 → beanhub_cli-3.1.0}/docs/docs/img/beanhub-connect-pop-up.png +0 -0
- {beanhub_cli-3.0.0b2 → beanhub_cli-3.1.0}/docs/docs/img/forms-screenshot.png +0 -0
- {beanhub_cli-3.0.0b2 → beanhub_cli-3.1.0}/docs/docs/index.md +0 -0
- {beanhub_cli-3.0.0b2 → beanhub_cli-3.1.0}/docs/mkdocs.yml +0 -0
- {beanhub_cli-3.0.0b2 → beanhub_cli-3.1.0}/docs/netlify.toml +0 -0
- {beanhub_cli-3.0.0b2 → beanhub_cli-3.1.0}/docs/overrides/partials/integrations/analytics/custom.html +0 -0
- {beanhub_cli-3.0.0b2 → beanhub_cli-3.1.0}/docs/requirements.txt +0 -0
- {beanhub_cli-3.0.0b2 → beanhub_cli-3.1.0}/pytest.ini +0 -0
- {beanhub_cli-3.0.0b2 → beanhub_cli-3.1.0}/scripts/gen-internal-api.sh +0 -0
- {beanhub_cli-3.0.0b2/tests/forms → beanhub_cli-3.1.0/tests}/__init__.py +0 -0
- {beanhub_cli-3.0.0b2 → beanhub_cli-3.1.0}/tests/conftest.py +0 -0
- {beanhub_cli-3.0.0b2/tests/forms/app → beanhub_cli-3.1.0/tests/connect}/__init__.py +0 -0
- {beanhub_cli-3.0.0b2 → beanhub_cli-3.1.0}/tests/connect/test_dump.py +0 -0
- {beanhub_cli-3.0.0b2 → beanhub_cli-3.1.0}/tests/connect/test_encryption.py +0 -0
- {beanhub_cli-3.0.0b2 → beanhub_cli-3.1.0}/tests/connect/test_sync.py +0 -0
- {beanhub_cli-3.0.0b2 → beanhub_cli-3.1.0}/tests/factories.py +0 -0
- {beanhub_cli-3.0.0b2/tests/inbox → beanhub_cli-3.1.0/tests/forms}/__init__.py +0 -0
- {beanhub_cli-3.0.0b2 → beanhub_cli-3.1.0}/tests/forms/app/conftest.py +0 -0
- {beanhub_cli-3.0.0b2 → beanhub_cli-3.1.0}/tests/forms/app/test_forms.py +0 -0
- {beanhub_cli-3.0.0b2 → beanhub_cli-3.1.0}/tests/forms/app/types_def.py +0 -0
- {beanhub_cli-3.0.0b2 → beanhub_cli-3.1.0}/tests/forms/test_validator.py +0 -0
- {beanhub_cli-3.0.0b2 → beanhub_cli-3.1.0}/tests/helper.py +0 -0
- {beanhub_cli-3.0.0b2 → beanhub_cli-3.1.0}/tests/inbox/test_dump.py +0 -0
- {beanhub_cli-3.0.0b2 → beanhub_cli-3.1.0}/tests/test_format.py +0 -0
- {beanhub_cli-3.0.0b2 → beanhub_cli-3.1.0}/tests/test_login.py +0 -0
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
Metadata-Version: 2.4
|
|
2
2
|
Name: beanhub-cli
|
|
3
|
-
Version: 3.0
|
|
3
|
+
Version: 3.1.0
|
|
4
4
|
Summary: Command line tools for BeanHub and Beancount users
|
|
5
5
|
Project-URL: Documentation, https://beanhub-cli-docs.beanhub.io
|
|
6
6
|
Author-email: Fang-Pen Lin <fangpen@launchplatform.com>
|
|
@@ -9,16 +9,20 @@ License-File: LICENSE
|
|
|
9
9
|
Requires-Python: ~=3.10
|
|
10
10
|
Requires-Dist: attrs>=22.2.0
|
|
11
11
|
Requires-Dist: beancount-black<2,>=1.0.1
|
|
12
|
+
Requires-Dist: beancount-data>=3.0.2
|
|
13
|
+
Requires-Dist: beancount-exporter>=3.0.0
|
|
12
14
|
Requires-Dist: beancount-parser<1.3.0,>=1.2.3
|
|
13
15
|
Requires-Dist: beanhub-extract<1.0.0,>=0.1.0
|
|
14
16
|
Requires-Dist: beanhub-forms<0.2,>=0.1.3
|
|
15
17
|
Requires-Dist: beanhub-import<2.0.0,>=1.0.0
|
|
16
|
-
Requires-Dist: beanhub-inbox<0.3.0,>=0.2.
|
|
18
|
+
Requires-Dist: beanhub-inbox<0.3.0,>=0.2.3
|
|
17
19
|
Requires-Dist: click<9,>=8.1.7
|
|
18
|
-
Requires-Dist: cryptography
|
|
20
|
+
Requires-Dist: cryptography>=44.0.0
|
|
21
|
+
Requires-Dist: fastapi-mcp>=0.3.7
|
|
19
22
|
Requires-Dist: fastapi<1.0.0,>=0.98.0
|
|
20
23
|
Requires-Dist: httpx<0.29.0,>=0.20.0
|
|
21
24
|
Requires-Dist: jinja2<4.0.0,>=3.1.2
|
|
25
|
+
Requires-Dist: orjson>=3.11.0
|
|
22
26
|
Requires-Dist: pydantic-settings<3,>=2.0.3
|
|
23
27
|
Requires-Dist: pydantic<3,>=2.4.0
|
|
24
28
|
Requires-Dist: pynacl<2,>=1.5.0
|
|
@@ -43,10 +47,14 @@ Please read the [documentation here](https://beanhub-cli-docs.beanhub.io).
|
|
|
43
47
|
- [**Formatter**](https://beanhub-cli-docs.beanhub.io/commands/format/) - Advanced Beancount file formatter based on top of [beancount-black](https://github.com/LaunchPlatform/beancount-black)
|
|
44
48
|
- [**Beancount file manipulations**](https://beanhub-cli-docs.beanhub.io/commands/format/) - Effortless Beancount account name renaming and other basic manipulations
|
|
45
49
|
- [**Forms**](https://beanhub-cli-docs.beanhub.io/commands/form/) - You can run a [BeanHub Form](https://beanhub.io/blog/2023/07/31/automating-beancount-data-input-with-beanhub-custom-forms/) web app locally to try out your forms
|
|
50
|
+
- [**Inbox**](https://github.com/LaunchPlatform/beanhub-inbox) - Archive emails sending to a dedicated email address like yourname+repo@inbox.beanhub.io (BeanHub account needed) and then use LLM to extract values for your invoices and receipts
|
|
46
51
|
- **Doesn't require a BeanHub account** - While some features require a BeanHub account to operate, but we make most of them usable even without a BeanHub account
|
|
47
52
|
|
|
48
53
|
## Screenshots
|
|
49
54
|
|
|
55
|
+
<p align="center">
|
|
56
|
+
<video src="https://github.com/user-attachments/assets/eb496dab-cd95-4aca-8a29-89ff9d52570d" autoplay muted>
|
|
57
|
+
</p>
|
|
50
58
|
<p align="center">
|
|
51
59
|
<img src="https://github.com/LaunchPlatform/beanhub-cli/raw/master/assets/forms-screenshot.png?raw=true" alt="BeanHub Forms Screenshot" />
|
|
52
60
|
</p>
|
|
@@ -10,10 +10,14 @@ Please read the [documentation here](https://beanhub-cli-docs.beanhub.io).
|
|
|
10
10
|
- [**Formatter**](https://beanhub-cli-docs.beanhub.io/commands/format/) - Advanced Beancount file formatter based on top of [beancount-black](https://github.com/LaunchPlatform/beancount-black)
|
|
11
11
|
- [**Beancount file manipulations**](https://beanhub-cli-docs.beanhub.io/commands/format/) - Effortless Beancount account name renaming and other basic manipulations
|
|
12
12
|
- [**Forms**](https://beanhub-cli-docs.beanhub.io/commands/form/) - You can run a [BeanHub Form](https://beanhub.io/blog/2023/07/31/automating-beancount-data-input-with-beanhub-custom-forms/) web app locally to try out your forms
|
|
13
|
+
- [**Inbox**](https://github.com/LaunchPlatform/beanhub-inbox) - Archive emails sending to a dedicated email address like yourname+repo@inbox.beanhub.io (BeanHub account needed) and then use LLM to extract values for your invoices and receipts
|
|
13
14
|
- **Doesn't require a BeanHub account** - While some features require a BeanHub account to operate, but we make most of them usable even without a BeanHub account
|
|
14
15
|
|
|
15
16
|
## Screenshots
|
|
16
17
|
|
|
18
|
+
<p align="center">
|
|
19
|
+
<video src="https://github.com/user-attachments/assets/eb496dab-cd95-4aca-8a29-89ff9d52570d" autoplay muted>
|
|
20
|
+
</p>
|
|
17
21
|
<p align="center">
|
|
18
22
|
<img src="https://github.com/LaunchPlatform/beanhub-cli/raw/master/assets/forms-screenshot.png?raw=true" alt="BeanHub Forms Screenshot" />
|
|
19
23
|
</p>
|
|
@@ -1,5 +1,6 @@
|
|
|
1
1
|
import copy
|
|
2
2
|
import functools
|
|
3
|
+
import logging
|
|
3
4
|
import pathlib
|
|
4
5
|
import shutil
|
|
5
6
|
import sys
|
|
@@ -115,54 +116,26 @@ def combine_transforms(
|
|
|
115
116
|
return tree_or_token
|
|
116
117
|
|
|
117
118
|
|
|
118
|
-
|
|
119
|
-
|
|
120
|
-
|
|
121
|
-
|
|
122
|
-
|
|
123
|
-
|
|
124
|
-
|
|
125
|
-
|
|
126
|
-
type=(str, str),
|
|
127
|
-
help="rename account names",
|
|
128
|
-
nargs=2,
|
|
129
|
-
multiple=True,
|
|
130
|
-
)
|
|
131
|
-
@click.option(
|
|
132
|
-
"-rc",
|
|
133
|
-
"--rename-currency",
|
|
134
|
-
type=(str, str),
|
|
135
|
-
help="rename currency names",
|
|
136
|
-
nargs=2,
|
|
137
|
-
multiple=True,
|
|
138
|
-
)
|
|
139
|
-
@click.option(
|
|
140
|
-
"-s",
|
|
141
|
-
"--stdin-mode",
|
|
142
|
-
is_flag=True,
|
|
143
|
-
help="Read beancount file data from stdin and output result to stdout",
|
|
144
|
-
)
|
|
145
|
-
@click.option("-b", "--backup", is_flag=True, help="Create backup file")
|
|
146
|
-
@pass_env
|
|
147
|
-
def main(
|
|
148
|
-
env: Environment,
|
|
149
|
-
filename: list[click.Path],
|
|
150
|
-
backup_suffix: str,
|
|
151
|
-
rename_account: list[tuple[str, str]],
|
|
152
|
-
rename_currency: list[tuple[str, str]],
|
|
153
|
-
stdin_mode: bool,
|
|
154
|
-
backup: bool,
|
|
119
|
+
def format_beancount(
|
|
120
|
+
filenames: list[pathlib.Path],
|
|
121
|
+
backup_suffix: str = ".backup",
|
|
122
|
+
rename_account: list[tuple[str, str]] | None = None,
|
|
123
|
+
rename_currency: list[tuple[str, str]] | None = None,
|
|
124
|
+
stdin_mode: bool = False,
|
|
125
|
+
backup: bool = False,
|
|
126
|
+
logger: logging.Logger | None = None,
|
|
155
127
|
):
|
|
128
|
+
logger = logger or logging.getLogger(__name__)
|
|
156
129
|
tree_transformers: list[typing.Callable] = []
|
|
157
130
|
if rename_account:
|
|
158
131
|
for from_val, to_val in rename_account:
|
|
159
|
-
|
|
132
|
+
logger.info("Renaming account from %s to %s", from_val, to_val)
|
|
160
133
|
tree_transformers.append(
|
|
161
134
|
functools.partial(rename_account_transform, dict(rename_account))
|
|
162
135
|
)
|
|
163
136
|
if rename_currency:
|
|
164
137
|
for from_val, to_val in rename_currency:
|
|
165
|
-
|
|
138
|
+
logger.info("Renaming currency from %s to %s", from_val, to_val)
|
|
166
139
|
tree_transformers.append(
|
|
167
140
|
functools.partial(rename_commodity_transform, dict(rename_currency))
|
|
168
141
|
)
|
|
@@ -170,28 +143,28 @@ def main(
|
|
|
170
143
|
# TODO: support follow include statements
|
|
171
144
|
parser = make_parser()
|
|
172
145
|
if stdin_mode:
|
|
173
|
-
|
|
146
|
+
logger.info("Processing in stdin mode")
|
|
174
147
|
input_content = sys.stdin.read()
|
|
175
148
|
tree = parser.parse(input_content)
|
|
176
149
|
formatter = Formatter()
|
|
177
150
|
formatter.format(tree, sys.stdout)
|
|
178
151
|
else:
|
|
179
|
-
if
|
|
152
|
+
if filenames:
|
|
180
153
|
iterator = file_tree_iterator(
|
|
181
154
|
parser=parser,
|
|
182
|
-
filenames=
|
|
155
|
+
filenames=filenames,
|
|
183
156
|
)
|
|
184
157
|
else:
|
|
185
|
-
|
|
158
|
+
logger.info("No files provided, traverse starting from main.bean")
|
|
186
159
|
iterator = traverse(
|
|
187
160
|
parser=parser,
|
|
188
161
|
bean_file=pathlib.Path("main.bean"),
|
|
189
162
|
root_dir=pathlib.Path.cwd(),
|
|
190
163
|
)
|
|
191
164
|
for filepath, tree in iterator:
|
|
192
|
-
|
|
165
|
+
logger.info("Processing file %s", filepath)
|
|
193
166
|
if tree_transformers:
|
|
194
|
-
|
|
167
|
+
logger.info(
|
|
195
168
|
"Running %s transforms against file %s ...",
|
|
196
169
|
len(tree_transformers),
|
|
197
170
|
filepath,
|
|
@@ -207,14 +180,61 @@ def main(
|
|
|
207
180
|
output_content = output_file.read()
|
|
208
181
|
input_content = filepath.read_text()
|
|
209
182
|
if input_content == output_content:
|
|
210
|
-
|
|
183
|
+
logger.info("File %s is not changed, skip", filepath)
|
|
211
184
|
continue
|
|
212
185
|
if backup:
|
|
213
186
|
backup_path = create_backup(src=filepath, suffix=backup_suffix)
|
|
214
|
-
|
|
215
|
-
"File %s changed, backup to %s", filepath, backup_path
|
|
216
|
-
)
|
|
187
|
+
logger.info("File %s changed, backup to %s", filepath, backup_path)
|
|
217
188
|
output_file.seek(0)
|
|
218
189
|
with open(filepath, "wt") as input_file:
|
|
219
190
|
shutil.copyfileobj(output_file, input_file)
|
|
220
|
-
|
|
191
|
+
logger.info("done")
|
|
192
|
+
|
|
193
|
+
|
|
194
|
+
@cli.command(name="format", help="Format Beancount files with beancount-black")
|
|
195
|
+
@click.argument("filename", type=click.Path(exists=False, dir_okay=False), nargs=-1)
|
|
196
|
+
@click.option(
|
|
197
|
+
"--backup-suffix", type=str, default=".backup", help="suffix of backup file"
|
|
198
|
+
)
|
|
199
|
+
@click.option(
|
|
200
|
+
"-ra",
|
|
201
|
+
"--rename-account",
|
|
202
|
+
type=(str, str),
|
|
203
|
+
help="rename account names",
|
|
204
|
+
nargs=2,
|
|
205
|
+
multiple=True,
|
|
206
|
+
)
|
|
207
|
+
@click.option(
|
|
208
|
+
"-rc",
|
|
209
|
+
"--rename-currency",
|
|
210
|
+
type=(str, str),
|
|
211
|
+
help="rename currency names",
|
|
212
|
+
nargs=2,
|
|
213
|
+
multiple=True,
|
|
214
|
+
)
|
|
215
|
+
@click.option(
|
|
216
|
+
"-s",
|
|
217
|
+
"--stdin-mode",
|
|
218
|
+
is_flag=True,
|
|
219
|
+
help="Read beancount file data from stdin and output result to stdout",
|
|
220
|
+
)
|
|
221
|
+
@click.option("-b", "--backup", is_flag=True, help="Create backup file")
|
|
222
|
+
@pass_env
|
|
223
|
+
def main(
|
|
224
|
+
env: Environment,
|
|
225
|
+
filename: list[click.Path],
|
|
226
|
+
backup_suffix: str,
|
|
227
|
+
rename_account: list[tuple[str, str]],
|
|
228
|
+
rename_currency: list[tuple[str, str]],
|
|
229
|
+
stdin_mode: bool,
|
|
230
|
+
backup: bool,
|
|
231
|
+
):
|
|
232
|
+
format_beancount(
|
|
233
|
+
filenames=list(map(lambda item: pathlib.Path(str(item)), filename)),
|
|
234
|
+
backup_suffix=backup_suffix,
|
|
235
|
+
rename_account=rename_account,
|
|
236
|
+
rename_currency=rename_currency,
|
|
237
|
+
stdin_mode=stdin_mode,
|
|
238
|
+
backup=backup,
|
|
239
|
+
logger=env.logger,
|
|
240
|
+
)
|
|
@@ -0,0 +1,16 @@
|
|
|
1
|
+
from fastapi import FastAPI
|
|
2
|
+
from fastapi_mcp import FastApiMCP
|
|
3
|
+
|
|
4
|
+
from .routes import router
|
|
5
|
+
|
|
6
|
+
|
|
7
|
+
def make_app() -> FastAPI:
|
|
8
|
+
app = FastAPI(
|
|
9
|
+
openapi_url="",
|
|
10
|
+
docs_url=None,
|
|
11
|
+
redoc_url=None,
|
|
12
|
+
)
|
|
13
|
+
app.include_router(router)
|
|
14
|
+
mcp = FastApiMCP(app)
|
|
15
|
+
mcp.mount()
|
|
16
|
+
return app
|
|
@@ -0,0 +1,62 @@
|
|
|
1
|
+
import json
|
|
2
|
+
import logging
|
|
3
|
+
import pathlib
|
|
4
|
+
import subprocess
|
|
5
|
+
import sys
|
|
6
|
+
|
|
7
|
+
from beancount_data.data_types import EntryUnion
|
|
8
|
+
from beancount_data.data_types import ValidationResult
|
|
9
|
+
from fastapi import APIRouter
|
|
10
|
+
from fastapi import Request
|
|
11
|
+
from pydantic import TypeAdapter
|
|
12
|
+
|
|
13
|
+
from ...format import format_beancount
|
|
14
|
+
from ..schemes import ExportBeancountResult
|
|
15
|
+
from ..schemes import FormatResult
|
|
16
|
+
|
|
17
|
+
router = APIRouter()
|
|
18
|
+
logger = logging.getLogger(__name__)
|
|
19
|
+
entry_adapter = TypeAdapter(EntryUnion)
|
|
20
|
+
|
|
21
|
+
|
|
22
|
+
@router.get(
|
|
23
|
+
"/entries",
|
|
24
|
+
response_model=ExportBeancountResult,
|
|
25
|
+
operation_id="list-entries",
|
|
26
|
+
description="List all Beancount entries for the given Beancount file",
|
|
27
|
+
)
|
|
28
|
+
async def list_entries(
|
|
29
|
+
request: Request, beancount_file: str = "main.bean"
|
|
30
|
+
) -> ExportBeancountResult:
|
|
31
|
+
proc = subprocess.run(
|
|
32
|
+
(sys.executable, "-m", "beancount_exporter.main", beancount_file),
|
|
33
|
+
timeout=10,
|
|
34
|
+
capture_output=True,
|
|
35
|
+
)
|
|
36
|
+
lines = proc.stdout.splitlines()
|
|
37
|
+
result = ExportBeancountResult(
|
|
38
|
+
ok=proc.returncode == 0,
|
|
39
|
+
error=proc.stderr.decode("utf8"),
|
|
40
|
+
)
|
|
41
|
+
if proc.returncode == 0:
|
|
42
|
+
result.options = json.loads(lines[0])
|
|
43
|
+
result.validation_result = ValidationResult.model_validate_json(lines[2])
|
|
44
|
+
result.entries = list(map(entry_adapter.validate_json, lines[4:]))
|
|
45
|
+
else:
|
|
46
|
+
logger.error("Failed to export entries: %s", result.error)
|
|
47
|
+
return result
|
|
48
|
+
|
|
49
|
+
|
|
50
|
+
@router.get(
|
|
51
|
+
"/format",
|
|
52
|
+
response_model=FormatResult,
|
|
53
|
+
operation_id="format-beancount-file",
|
|
54
|
+
description="Format beancount files",
|
|
55
|
+
)
|
|
56
|
+
async def format_beancount_file(
|
|
57
|
+
request: Request, beancount_file: str = "main.bean"
|
|
58
|
+
) -> FormatResult:
|
|
59
|
+
format_beancount(filenames=[pathlib.Path(beancount_file)])
|
|
60
|
+
return FormatResult(
|
|
61
|
+
ok=True,
|
|
62
|
+
)
|
|
@@ -0,0 +1,38 @@
|
|
|
1
|
+
import click
|
|
2
|
+
import uvicorn
|
|
3
|
+
|
|
4
|
+
from ..environment import Environment
|
|
5
|
+
from ..environment import pass_env
|
|
6
|
+
from .app.main import make_app
|
|
7
|
+
from .cli import cli
|
|
8
|
+
|
|
9
|
+
|
|
10
|
+
@cli.command(name="server", help="Run a web server for the MCP service")
|
|
11
|
+
@click.option(
|
|
12
|
+
"-p",
|
|
13
|
+
"--port",
|
|
14
|
+
type=int,
|
|
15
|
+
default=8080,
|
|
16
|
+
show_default=True,
|
|
17
|
+
help="Port number for serving the MCP web app.",
|
|
18
|
+
)
|
|
19
|
+
@click.option(
|
|
20
|
+
"-h",
|
|
21
|
+
"--host",
|
|
22
|
+
type=str,
|
|
23
|
+
default="127.0.0.1",
|
|
24
|
+
show_default=True,
|
|
25
|
+
help="Host for serving the MCP web app.",
|
|
26
|
+
)
|
|
27
|
+
@click.option(
|
|
28
|
+
"--uvicorn-log-level",
|
|
29
|
+
default="info",
|
|
30
|
+
show_default=True,
|
|
31
|
+
help="Log level for Uvicorn web server.",
|
|
32
|
+
)
|
|
33
|
+
@pass_env
|
|
34
|
+
def run_server(env: Environment, port: int, host: str, uvicorn_log_level: str):
|
|
35
|
+
app = make_app()
|
|
36
|
+
config = uvicorn.Config(app=app, port=port, host=host, log_level=uvicorn_log_level)
|
|
37
|
+
server = uvicorn.Server(config=config)
|
|
38
|
+
server.run()
|
|
@@ -0,0 +1,20 @@
|
|
|
1
|
+
import typing
|
|
2
|
+
|
|
3
|
+
from beancount_data.data_types import EntryUnion
|
|
4
|
+
from beancount_data.data_types import ValidationResult
|
|
5
|
+
from pydantic import BaseModel
|
|
6
|
+
|
|
7
|
+
|
|
8
|
+
class ResultBase(BaseModel):
|
|
9
|
+
ok: bool
|
|
10
|
+
error: typing.Optional[str] = None
|
|
11
|
+
|
|
12
|
+
|
|
13
|
+
class ExportBeancountResult(ResultBase):
|
|
14
|
+
options: typing.Optional[typing.Dict[str, typing.Any]] = None
|
|
15
|
+
validation_result: typing.Optional[ValidationResult] = None
|
|
16
|
+
entries: typing.Optional[EntryUnion] = None
|
|
17
|
+
|
|
18
|
+
|
|
19
|
+
class FormatResult(ResultBase):
|
|
20
|
+
pass
|
|
@@ -10,13 +10,6 @@ Originally, this feature imports data as Git commits only to BeanHub's repositor
|
|
|
10
10
|
Later on, we added the standalone commands to make it possible to pull bank transactions directly into your local work environment without relying on updates in BeanHub's Git repository.
|
|
11
11
|
You can read our blog post [Direct Connect: Pulling transactions as CSV files from banks via Plaid directly](https://beanhub.io/blog/2025/01/16/direct-connect-repository/) to learn more.
|
|
12
12
|
|
|
13
|
-
Please note that connect commands require some extra optional Python dependencies.
|
|
14
|
-
Therefore, when installing BeanHub-CLI Python package, please make sure to include `connect` extra dependencies like this:
|
|
15
|
-
|
|
16
|
-
```bash
|
|
17
|
-
pip install "beanhub-cli[connect]"
|
|
18
|
-
```
|
|
19
|
-
|
|
20
13
|
## Pre-requirements
|
|
21
14
|
|
|
22
15
|
To pull transaction data from your bank automatically, you need to first log into your BeanHub account on our web app and then go to your repository.
|
|
@@ -4,13 +4,6 @@ We provide BeanHub-CLI as a standalone tool to work without a [BeanHub](https://
|
|
|
4
4
|
However, some features are for paid BeanHub members only and require access to your BeanHub account, such as [BeanHub Connect](https://beanhub.io/blog/2024/06/24/introduction-of-beanhub-connect/)'s sync and dump.
|
|
5
5
|
For those operations, you need to run the login command first.
|
|
6
6
|
|
|
7
|
-
Please note that BeanHub-CLI login command requires some extra optional Python dependencies.
|
|
8
|
-
Therefore, when installing BeanHub-CLI Python package, please make sure to include `login` extra dependencies like this:
|
|
9
|
-
|
|
10
|
-
```bash
|
|
11
|
-
pip install "beanhub-cli[login]"
|
|
12
|
-
```
|
|
13
|
-
|
|
14
7
|
It's very easy to log in to your BeanHub account with BeanHub-CLI. Simply run:
|
|
15
8
|
|
|
16
9
|
```bash
|
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
[project]
|
|
2
2
|
name = "beanhub-cli"
|
|
3
|
-
version = "3.0
|
|
3
|
+
version = "3.1.0"
|
|
4
4
|
description = "Command line tools for BeanHub and Beancount users"
|
|
5
5
|
authors = [{ name = "Fang-Pen Lin", email = "fangpen@launchplatform.com" }]
|
|
6
6
|
requires-python = "~=3.10"
|
|
@@ -24,11 +24,15 @@ dependencies = [
|
|
|
24
24
|
"tomli>=2.2.1,<3",
|
|
25
25
|
"tomli-w>=1.1.0,<2",
|
|
26
26
|
"pynacl>=1.5.0,<2",
|
|
27
|
-
"cryptography>=44.0.0,<45",
|
|
28
27
|
"beanhub-import>= 1.0.0, <2.0.0",
|
|
29
28
|
"beanhub-extract>= 0.1.0, <1.0.0",
|
|
30
29
|
"beancount-parser>= 1.2.3, <1.3.0",
|
|
31
|
-
"beanhub-inbox>=0.2.
|
|
30
|
+
"beanhub-inbox>=0.2.3,<0.3.0",
|
|
31
|
+
"cryptography>=44.0.0",
|
|
32
|
+
"fastapi-mcp>=0.3.7",
|
|
33
|
+
"beancount-data>=3.0.2",
|
|
34
|
+
"beancount-exporter>=3.0.0",
|
|
35
|
+
"orjson>=3.11.0",
|
|
32
36
|
]
|
|
33
37
|
|
|
34
38
|
[project.urls]
|
|
File without changes
|
|
File without changes
|