.gitignore
.python_version
LICENSE
MANIFEST.in
README.md
development.md
install.sh
justfile
pyproject.toml
uv.lock
packages/.gitignore
packages/fiab-core/.python-version
packages/fiab-core/LICENSE
packages/fiab-core/README.md
packages/fiab-core/justfile
packages/fiab-core/pyproject.toml
packages/fiab-core/src/fiab_core/__init__.py
packages/fiab-core/src/fiab_core/artifacts.py
packages/fiab-core/src/fiab_core/fable.py
packages/fiab-core/src/fiab_core/plugin.py
packages/fiab-core/src/fiab_core/pydantic_utils.py
packages/fiab-core/src/fiab_core/types.py
packages/fiab-core/src/fiab_core/tools/__init__.py
packages/fiab-core/src/fiab_core/tools/blocks.py
packages/fiab-core/src/fiab_core/tools/plugins.py
packages/fiab-core/src/fiab_core/tools/validators.py
packages/fiab-core/tests/test_base.py
packages/fiab-core/tests/test_fable.py
packages/fiab-core/tests/test_providers.py
packages/fiab-core/tests/test_types.py
packages/fiab-mcp-server/LICENSE
packages/fiab-mcp-server/README.md
packages/fiab-mcp-server/justfile
packages/fiab-mcp-server/pyproject.toml
packages/fiab-mcp-server/src/fiab_mcp_server/__init__.py
packages/fiab-mcp-server/src/fiab_mcp_server/__main__.py
packages/fiab-mcp-server/src/fiab_mcp_server/server.py
packages/fiab-mcp-server/tests/test_ok.py
packages/fiab-plugin-demo/.python-version
packages/fiab-plugin-demo/LICENSE
packages/fiab-plugin-demo/README.md
packages/fiab-plugin-demo/justfile
packages/fiab-plugin-demo/pyproject.toml
packages/fiab-plugin-demo/src/fiab_plugin_demo/__init__.py
packages/fiab-plugin-demo/src/fiab_plugin_demo/blocks.py
packages/fiab-plugin-demo/src/fiab_plugin_demo/py.typed
packages/fiab-plugin-demo/tests/test_base.py
packages/fiab-plugin-demo/tests/test_blocks.py
packages/fiab-plugin-ecmwf/.python-version
packages/fiab-plugin-ecmwf/LICENSE
packages/fiab-plugin-ecmwf/README.md
packages/fiab-plugin-ecmwf/justfile
packages/fiab-plugin-ecmwf/pyproject.toml
packages/fiab-plugin-ecmwf/scripts/get_metadata_from_anemoi.py
packages/fiab-plugin-ecmwf/scripts/swap_attention.py
packages/fiab-plugin-ecmwf/src/fiab_plugin_ecmwf/__init__.py
packages/fiab-plugin-ecmwf/src/fiab_plugin_ecmwf/blocks.py
packages/fiab-plugin-ecmwf/src/fiab_plugin_ecmwf/py.typed
packages/fiab-plugin-ecmwf/src/fiab_plugin_ecmwf/qubed_utils.py
packages/fiab-plugin-ecmwf/src/fiab_plugin_ecmwf/anemoi/__init__.py
packages/fiab-plugin-ecmwf/src/fiab_plugin_ecmwf/anemoi/blocks.py
packages/fiab-plugin-ecmwf/src/fiab_plugin_ecmwf/anemoi/utils.py
packages/fiab-plugin-ecmwf/src/fiab_plugin_ecmwf/runtime/__init__.py
packages/fiab-plugin-ecmwf/src/fiab_plugin_ecmwf/runtime/plots.py
packages/fiab-plugin-ecmwf/src/fiab_plugin_ecmwf/runtime/sinks.py
packages/fiab-plugin-ecmwf/src/fiab_plugin_ecmwf/runtime/source.py
packages/fiab-plugin-ecmwf/tests/conftest.py
packages/fiab-plugin-ecmwf/tests/runtime/test_anemoi_blocks.py
packages/fiab-plugin-ecmwf/tests/runtime/test_qubedinstanceoutput.py
packages/fiab-plugin-ecmwf/tests/unit/test_base.py
packages/fiab-plugin-ecmwf/tests/unit/test_blocks.py
packages/fiab-plugin-test/.python-version
packages/fiab-plugin-test/LICENSE
packages/fiab-plugin-test/README.md
packages/fiab-plugin-test/justfile
packages/fiab-plugin-test/pyproject.toml
packages/fiab-plugin-test/src/fiab_plugin_test/__init__.py
packages/fiab-plugin-test/src/fiab_plugin_test/py.typed
packages/fiab-plugin-test/src/fiab_plugin_test/runtime.py
packages/fiab-plugin-test/tests/conftest.py
packages/fiab-plugin-test/tests/test_base.py
src/forecast_in_a_box.egg-info/PKG-INFO
src/forecast_in_a_box.egg-info/SOURCES.txt
src/forecast_in_a_box.egg-info/dependency_links.txt
src/forecast_in_a_box.egg-info/requires.txt
src/forecast_in_a_box.egg-info/top_level.txt
src/forecastbox/__init__.py
src/forecastbox/_version.py
src/forecastbox/domain/__init__.py
src/forecastbox/domain/admin.py
src/forecastbox/domain/artifact/__init__.py
src/forecastbox/domain/artifact/base.py
src/forecastbox/domain/artifact/catalog.py
src/forecastbox/domain/artifact/compatibility.py
src/forecastbox/domain/artifact/io.py
src/forecastbox/domain/artifact/manager.py
src/forecastbox/domain/auth/__init__.py
src/forecastbox/domain/auth/db.py
src/forecastbox/domain/auth/oidc.py
src/forecastbox/domain/auth/users.py
src/forecastbox/domain/blueprint/__init__.py
src/forecastbox/domain/blueprint/cascade.py
src/forecastbox/domain/blueprint/configuration_values.py
src/forecastbox/domain/blueprint/db.py
src/forecastbox/domain/blueprint/exceptions.py
src/forecastbox/domain/blueprint/service.py
src/forecastbox/domain/blueprint/types.py
src/forecastbox/domain/experiment/__init__.py
src/forecastbox/domain/experiment/db.py
src/forecastbox/domain/experiment/exceptions.py
src/forecastbox/domain/experiment/service.py
src/forecastbox/domain/experiment/types.py
src/forecastbox/domain/experiment/scheduling/__init__.py
src/forecastbox/domain/experiment/scheduling/background.py
src/forecastbox/domain/experiment/scheduling/db.py
src/forecastbox/domain/experiment/scheduling/dt_utils.py
src/forecastbox/domain/experiment/scheduling/job_utils.py
src/forecastbox/domain/gateway/__init__.py
src/forecastbox/domain/gateway/exceptions.py
src/forecastbox/domain/gateway/service.py
src/forecastbox/domain/glyphs/__init__.py
src/forecastbox/domain/glyphs/exceptions.py
src/forecastbox/domain/glyphs/global_db.py
src/forecastbox/domain/glyphs/intrinsic.py
src/forecastbox/domain/glyphs/jinja_interpolation.py
src/forecastbox/domain/glyphs/resolution.py
src/forecastbox/domain/glyphs/types.py
src/forecastbox/domain/lens/__init__.py
src/forecastbox/domain/lens/manager.py
src/forecastbox/domain/plugin/__init__.py
src/forecastbox/domain/plugin/manager.py
src/forecastbox/domain/plugin/store.py
src/forecastbox/domain/run/__init__.py
src/forecastbox/domain/run/background.py
src/forecastbox/domain/run/cascade.py
src/forecastbox/domain/run/compile.py
src/forecastbox/domain/run/db.py
src/forecastbox/domain/run/detail.py
src/forecastbox/domain/run/exceptions.py
src/forecastbox/domain/run/service.py
src/forecastbox/domain/run/types.py
src/forecastbox/entrypoint/__init__.py
src/forecastbox/entrypoint/app.py
src/forecastbox/entrypoint/main.py
src/forecastbox/entrypoint/bootstrap/__init__.py
src/forecastbox/entrypoint/bootstrap/checks.py
src/forecastbox/entrypoint/bootstrap/config.py
src/forecastbox/entrypoint/bootstrap/launchers.py
src/forecastbox/entrypoint/bootstrap/procs.py
src/forecastbox/entrypoint/bootstrap/service.py
src/forecastbox/entrypoint/templates/share.html
src/forecastbox/routes/__init__.py
src/forecastbox/routes/admin.py
src/forecastbox/routes/artifacts.py
src/forecastbox/routes/auth.py
src/forecastbox/routes/blueprint.py
src/forecastbox/routes/experiment.py
src/forecastbox/routes/gateway.py
src/forecastbox/routes/lens.py
src/forecastbox/routes/plugins.py
src/forecastbox/routes/run.py
src/forecastbox/routes/status.py
src/forecastbox/schemata/__init__.py
src/forecastbox/schemata/jobs.py
src/forecastbox/schemata/user.py
src/forecastbox/static/favicon.ico
src/forecastbox/static/index.html
src/forecastbox/static/logo192.png
src/forecastbox/static/logo512.png
src/forecastbox/static/manifest.json
src/forecastbox/static/mockServiceWorker.js
src/forecastbox/static/robots.txt
src/forecastbox/static/assets/ComboboxEmpty-BNiozqLG.js
src/forecastbox/static/assets/CommandPalette-B4LvPByK.js
src/forecastbox/static/assets/DialogTitle-C7_KlRja.js
src/forecastbox/static/assets/DirectionContext-Djwa5P5S.js
src/forecastbox/static/assets/EditScheduleDialog-BcX6IMCK.js
src/forecastbox/static/assets/EmptyState-KEc2sOJ1.js
src/forecastbox/static/assets/ErrorPanel-UCeqLrS6.js
src/forecastbox/static/assets/FableBuilderPage-DKuooy1W.js
src/forecastbox/static/assets/FableMiniFlow-Dh3If-Uw.js
src/forecastbox/static/assets/FacetSearchBar-CeXgSpNh.js
src/forecastbox/static/assets/Footer--jR8bohm.js
src/forecastbox/static/assets/ForecastRunSearchHeader-CS1VCWLN.js
src/forecastbox/static/assets/FormContext-De8CLPqR.js
src/forecastbox/static/assets/GlyphFormDialog-Co7sedIT.js
src/forecastbox/static/assets/ImageViewer-CNExaDNh.js
src/forecastbox/static/assets/LoadingSpinner-DiKWbAM5.js
src/forecastbox/static/assets/PageHeader-DKh4eKyA.js
src/forecastbox/static/assets/Pagination-CsSa1ao1.js
src/forecastbox/static/assets/PdfViewer-CGyg66ji.js
src/forecastbox/static/assets/PluginStatusBadge-DP_YXIai.js
src/forecastbox/static/assets/PublicLayout-BJNZckEy.js
src/forecastbox/static/assets/RotatingGlobe-Cxy31Ab-.js
src/forecastbox/static/assets/RunActivityChart-IgM5itO6.js
src/forecastbox/static/assets/RunCanvas-CsPq5tS5.js
src/forecastbox/static/assets/RunMetadataDialog-CRM5app2.js
src/forecastbox/static/assets/ScheduleFields-BQywsEeW.js
src/forecastbox/static/assets/Separator-Cwkgchuz.js
src/forecastbox/static/assets/StatCard-BMK22n5r.js
src/forecastbox/static/assets/StatusBadge-B-8lNX9R.js
src/forecastbox/static/assets/StatusDetailsPopover-CBmMJx1M.js
src/forecastbox/static/assets/_authenticated-B8qZfjdO.js
src/forecastbox/static/assets/about-ofwk86Li.js
src/forecastbox/static/assets/activityStore-CBxge11f.js
src/forecastbox/static/assets/admin-NxkbNnmG.js
src/forecastbox/static/assets/admin-cgzreHq5.js
src/forecastbox/static/assets/alert-IXE-aCiU.js
src/forecastbox/static/assets/alert-dialog-BqeqGVH7.js
src/forecastbox/static/assets/arrow-left-buv9-xjp.js
src/forecastbox/static/assets/arrow-right-YxVrAnii.js
src/forecastbox/static/assets/artifacts-cgzreHq5.js
src/forecastbox/static/assets/artifacts._artifactId-DWPHYg28.js
src/forecastbox/static/assets/artifacts.index-C2UHPDdx.js
src/forecastbox/static/assets/badge-jvg371iF.js
src/forecastbox/static/assets/bookmark-NyjmwDt0.js
src/forecastbox/static/assets/box-Cxo8HaRL.js
src/forecastbox/static/assets/button-DDJmf8dy.js
src/forecastbox/static/assets/calendar-BPIQ_nTg.js
src/forecastbox/static/assets/charts-vcVkqeuc.js
src/forecastbox/static/assets/check-DKJ_EufZ.js
src/forecastbox/static/assets/chevron-down-R9eFMbHZ.js
src/forecastbox/static/assets/chevron-left-DaxKJXEO.js
src/forecastbox/static/assets/chevron-right-B0X38LLF.js
src/forecastbox/static/assets/circle-alert-RpwzB5Zt.js
src/forecastbox/static/assets/circle-check-DL7Lm0Kl.js
src/forecastbox/static/assets/circle-question-mark-D4ELZAw7.js
src/forecastbox/static/assets/clock-Cd5b41za.js
src/forecastbox/static/assets/collapsible-B_uTpriQ.js
src/forecastbox/static/assets/composite-C5d79rkm.js
src/forecastbox/static/assets/config-DmrLXXRe.js
src/forecastbox/static/assets/configure-BIHii77Q.js
src/forecastbox/static/assets/configure._fableId-Da5IpxN6.js
src/forecastbox/static/assets/dashboard-DG35hh7Q.js
src/forecastbox/static/assets/datefns-BEscp463.js
src/forecastbox/static/assets/datetime-CoIALQdu.js
src/forecastbox/static/assets/dialog-B68iABdB.js
src/forecastbox/static/assets/download-CYT_JeJx.js
src/forecastbox/static/assets/download-DUEuOxCX.js
src/forecastbox/static/assets/dropdown-menu-DMZlH2m3.js
src/forecastbox/static/assets/ellipsis-vertical-BzcvRNPH.js
src/forecastbox/static/assets/executions._jobId-BS87GEor.js
src/forecastbox/static/assets/executions.index-BgyNcuZL.js
src/forecastbox/static/assets/external-link-DH85U0i1.js
src/forecastbox/static/assets/eye-DqKRwQBi.js
src/forecastbox/static/assets/fable-CWgS3qAb.js
src/forecastbox/static/assets/fable-to-graph-Bc39Jzfx.js
src/forecastbox/static/assets/file-text-sIeJTeTM.js
src/forecastbox/static/assets/flow-CBYVZtCu.js
src/forecastbox/static/assets/flow-CHpVij2M.css
src/forecastbox/static/assets/ibm-plex-sans-cyrillic-ext-wght-normal-d45eAU9y.woff2
src/forecastbox/static/assets/ibm-plex-sans-cyrillic-wght-normal-BAAhND-U.woff2
src/forecastbox/static/assets/ibm-plex-sans-greek-wght-normal-CmyJS8uq.woff2
src/forecastbox/static/assets/ibm-plex-sans-latin-ext-wght-normal-CIII54If.woff2
src/forecastbox/static/assets/ibm-plex-sans-latin-wght-normal-IvpUvPa2.woff2
src/forecastbox/static/assets/ibm-plex-sans-vietnamese-wght-normal-Dg1JeJN0.woff2
src/forecastbox/static/assets/index-BJYrFxMK.js
src/forecastbox/static/assets/index-v4qiULFp.css
src/forecastbox/static/assets/input-DzjS054O.js
src/forecastbox/static/assets/input-group-CgtfcrI-.js
src/forecastbox/static/assets/job-status-BQwNhAhQ.js
src/forecastbox/static/assets/label-DfH7VgkE.js
src/forecastbox/static/assets/layout-grid-CxQgaQmr.js
src/forecastbox/static/assets/list-CwjIdxyD.js
src/forecastbox/static/assets/loader-circle-BsYdjilQ.js
src/forecastbox/static/assets/locales-C28NCsAi.js
src/forecastbox/static/assets/maximize-2-KNtDDPof.js
src/forecastbox/static/assets/package-BGKY2lle.js
src/forecastbox/static/assets/pdf.worker.min-iDqQPrd3.mjs
src/forecastbox/static/assets/pdfjs-DxjaUvfW.js
src/forecastbox/static/assets/play-DG7bLaIy.js
src/forecastbox/static/assets/plugins-cgzreHq5.js
src/forecastbox/static/assets/plugins._pluginId-jjFEQ4P7.js
src/forecastbox/static/assets/plugins.index-DvKvW3Gj.js
src/forecastbox/static/assets/popover-BPuahYS0.js
src/forecastbox/static/assets/popupStateMapping-DHmkXkme.js
src/forecastbox/static/assets/presets-WMdi5VVb.js
src/forecastbox/static/assets/presets-_xHkv6o4.js
src/forecastbox/static/assets/progress-Cnh-6uWZ.js
src/forecastbox/static/assets/prop-types-C6-EzyOO.js
src/forecastbox/static/assets/puzzle-CNoziiyI.js
src/forecastbox/static/assets/query-CLbzzqMz.js
src/forecastbox/static/assets/refresh-cw-BS_nFuHO.js
src/forecastbox/static/assets/resolveAriaLabelledBy-Cax9ykFM.js
src/forecastbox/static/assets/rolldown-runtime-QTnfLwEv.js
src/forecastbox/static/assets/router-BLA0YXne.js
src/forecastbox/static/assets/routes-iv8BaX9b.js
src/forecastbox/static/assets/schedules._scheduleId-DwvONjUD.js
src/forecastbox/static/assets/schedules.index-jvw5sdnL.js
src/forecastbox/static/assets/search-Bb-BLILn.js
src/forecastbox/static/assets/select-C74qGnf_.js
src/forecastbox/static/assets/separator-CyVwgtxU.js
src/forecastbox/static/assets/settings-2-DL1tJp1N.js
src/forecastbox/static/assets/shadowDom-SSN7nMwu.js
src/forecastbox/static/assets/spinner-BGFv3oJQ.js
src/forecastbox/static/assets/switch-hwTVl6Kc.js
src/forecastbox/static/assets/system-tags-D6xXLHWL.js
src/forecastbox/static/assets/tabs-BqX3hL68.js
src/forecastbox/static/assets/textarea-DF4a9z0e.js
src/forecastbox/static/assets/three-5BJcPdNz.js
src/forecastbox/static/assets/tooltip-C6TI13BX.js
src/forecastbox/static/assets/trash-2-B3xtMbQf.js
src/forecastbox/static/assets/url-state-D1gAGVWI.js
src/forecastbox/static/assets/useArtifacts-BTrsXN-Z.js
src/forecastbox/static/assets/useBaseUiId-Bx66nOFd.js
src/forecastbox/static/assets/useCompositeListItem-DwZzD8kT.js
src/forecastbox/static/assets/useConfigPresets-Cz9kw7-W.js
src/forecastbox/static/assets/useFable-ByvyjtwH.js
src/forecastbox/static/assets/useForecastRuns-D4SUbW4-.js
src/forecastbox/static/assets/useHotkey-x3PrAmKR.js
src/forecastbox/static/assets/useJobs-CWd2UfLa.js
src/forecastbox/static/assets/useLabelableId-BxMSfDNY.js
src/forecastbox/static/assets/useMedia-CyR6Yj1B.js
src/forecastbox/static/assets/useOpenChangeComplete-FkDBd4ZW.js
src/forecastbox/static/assets/useOpenInteractionType-q5gjPHRz.js
src/forecastbox/static/assets/usePositioner-rFQK49oy.js
src/forecastbox/static/assets/useSchedules-4_YtRMMW.js
src/forecastbox/static/assets/useStatus-D5dVX11G.js
src/forecastbox/static/assets/useTriggerFocusGuards-DbTS9h3y.js
src/forecastbox/static/assets/useUser-BjjILSV-.js
src/forecastbox/static/assets/useValueChanged-DkJ5LGZ4.js
src/forecastbox/static/assets/user-B5chlPMM.js
src/forecastbox/static/assets/utils-jr1Vs9dn.js
src/forecastbox/static/assets/variables-cgzreHq5.js
src/forecastbox/static/assets/variables.index-CQDvjtP8.js
src/forecastbox/static/assets/vendor-C0Fs0kvo.js
src/forecastbox/static/assets/viewerHeaderBtn-Cok6Pw6A.js
src/forecastbox/static/assets/x-Dhcj44yP.js
src/forecastbox/static/assets/zod-IxJW0I7u.js
src/forecastbox/static/dag/example.html
src/forecastbox/static/era5/sprite_sheet.png
src/forecastbox/static/logos/destination_earth_logo.svg
src/forecastbox/static/logos/ecmwf.svg
src/forecastbox/static/logos/fiab.png
src/forecastbox/static/logos/wmo.svg
src/forecastbox/static/logos/org/ECMWF.png
src/forecastbox/static/logos/org/MetNorway.png
src/forecastbox/static/logos/org/destine-fund.png
src/forecastbox/static/logos/org/destine.png
src/forecastbox/static/logos/packages/anemoi.webp
src/forecastbox/static/logos/packages/earthkit-dark.svg
src/forecastbox/static/logos/packages/earthkit-light.svg
src/forecastbox/utility/__init__.py
src/forecastbox/utility/auth.py
src/forecastbox/utility/concurrent.py
src/forecastbox/utility/config.py
src/forecastbox/utility/db.py
src/forecastbox/utility/graph.py
src/forecastbox/utility/httpx.py
src/forecastbox/utility/memcache.py
src/forecastbox/utility/pagination.py
src/forecastbox/utility/pydantic.py
src/forecastbox/utility/structural.py
src/forecastbox/utility/time.py
src/forecastbox/utility/tunnel.py
src/forecastbox/utility/rsjf/__init__.py
src/forecastbox/utility/rsjf/forms.py
src/forecastbox/utility/rsjf/from_pydantic.py
src/forecastbox/utility/rsjf/jsonSchema.py
src/forecastbox/utility/rsjf/uiSchema.py
src/forecastbox/utility/rsjf/utils.py
tests/integration/__init__.py
tests/integration/conftest.py
tests/integration/test_admin_flows.py
tests/integration/test_blueprint.py
tests/integration/test_db_startup.py
tests/integration/test_model.py
tests/integration/test_schedule.py
tests/integration/utils.py
tests/integration/data/.gitignore
tests/integration/static/index.html
tests/largeE2E/__init__.py
tests/largeE2E/bigtest.py
tests/largeE2E/blueprint.py
tests/largeE2E/scheduler_helper.py
tests/unit/test_artifacts.py
tests/unit/test_graph.py
tests/unit/test_jobs.py
tests/unit/test_updates.py
tests/unit/checkpoints/simple.yaml
tests/unit/domain/__init__.py
tests/unit/domain/blueprint/test_configuration_values.py
tests/unit/domain/gateway/test_service.py
tests/unit/domain/glyphs/__init__.py
tests/unit/domain/glyphs/test_global.py
tests/unit/domain/glyphs/test_resolution.py
tests/unit/domain/lens/__init__.py
tests/unit/domain/lens/test_lens_manager.py
tests/unit/domain/run/__init__.py
tests/unit/domain/run/test_cascade.py
tests/unit/domain/run/test_compile.py
tests/unit/domain/run/test_detail.py
tests/unit/domain/run/test_run_detailed_report.py
tests/unit/domain/run/test_service.py
tests/unit/ecpyutil/test_deepunion.py
tests/unit/ecpyutil/test_fetch_file.py
tests/unit/plugins/test_stores.py
tests/unit/rjsf/__init__.py
tests/unit/rjsf/test_forms.py
tests/unit/rjsf/test_from_pydantic.py
tests/unit/rjsf/test_jsonSchema.py
tests/unit/rjsf/test_uiSchema.py
tests/unit/rjsf/test_utils.py
tests/unit/scheduling/test_dt_utils.py
tests/unit/scheduling/test_experiment_runnable.py
tests/unit/utility/__init__.py
tests/unit/utility/test_memcache.py
tests/unit/utility/test_pagination.py
tests/unit/utility/test_tunnel.py