datex-studio-cli 0.4.20__tar.gz → 0.4.22__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.
- {datex_studio_cli-0.4.20 → datex_studio_cli-0.4.22}/PKG-INFO +1 -1
- {datex_studio_cli-0.4.20 → datex_studio_cli-0.4.22}/pyproject.toml +1 -1
- {datex_studio_cli-0.4.20 → datex_studio_cli-0.4.22}/src/dxs/__init__.py +1 -1
- {datex_studio_cli-0.4.20 → datex_studio_cli-0.4.22}/src/dxs/cli.py +110 -10
- {datex_studio_cli-0.4.20 → datex_studio_cli-0.4.22}/src/dxs/core/auth/__init__.py +0 -2
- {datex_studio_cli-0.4.20 → datex_studio_cli-0.4.22}/src/dxs/core/auth/token_cache.py +309 -381
- datex_studio_cli-0.4.22/src/dxs/utils/update_check.py +452 -0
- datex_studio_cli-0.4.20/src/dxs/utils/update_check.py +0 -208
- {datex_studio_cli-0.4.20 → datex_studio_cli-0.4.22}/.gitignore +0 -0
- {datex_studio_cli-0.4.20 → datex_studio_cli-0.4.22}/CONTEXT.md +0 -0
- {datex_studio_cli-0.4.20 → datex_studio_cli-0.4.22}/README.md +0 -0
- {datex_studio_cli-0.4.20 → datex_studio_cli-0.4.22}/otel/.env.example +0 -0
- {datex_studio_cli-0.4.20 → datex_studio_cli-0.4.22}/otel/Dockerfile +0 -0
- {datex_studio_cli-0.4.20 → datex_studio_cli-0.4.22}/otel/README.md +0 -0
- {datex_studio_cli-0.4.20 → datex_studio_cli-0.4.22}/otel/apply-local-cache.js +0 -0
- {datex_studio_cli-0.4.20 → datex_studio_cli-0.4.22}/otel/collector-config.yaml +0 -0
- {datex_studio_cli-0.4.20 → datex_studio_cli-0.4.22}/otel/docker-compose.yml +0 -0
- {datex_studio_cli-0.4.20 → datex_studio_cli-0.4.22}/otel/local-test-settings.json +0 -0
- {datex_studio_cli-0.4.20 → datex_studio_cli-0.4.22}/otel/remote-settings.json +0 -0
- {datex_studio_cli-0.4.20 → datex_studio_cli-0.4.22}/report-creator.skill +0 -0
- {datex_studio_cli-0.4.20 → datex_studio_cli-0.4.22}/scripts/analyze_corpus.py +0 -0
- {datex_studio_cli-0.4.20 → datex_studio_cli-0.4.22}/scripts/generate_rdlx_schema.py +0 -0
- {datex_studio_cli-0.4.20 → datex_studio_cli-0.4.22}/src/dxs/__main__.py +0 -0
- {datex_studio_cli-0.4.20 → datex_studio_cli-0.4.22}/src/dxs/commands/__init__.py +0 -0
- {datex_studio_cli-0.4.20 → datex_studio_cli-0.4.22}/src/dxs/commands/api.py +0 -0
- {datex_studio_cli-0.4.20 → datex_studio_cli-0.4.22}/src/dxs/commands/auth.py +0 -0
- {datex_studio_cli-0.4.20 → datex_studio_cli-0.4.22}/src/dxs/commands/branch.py +0 -0
- {datex_studio_cli-0.4.20 → datex_studio_cli-0.4.22}/src/dxs/commands/branch_commit_guard.py +0 -0
- {datex_studio_cli-0.4.20 → datex_studio_cli-0.4.22}/src/dxs/commands/cascade.py +0 -0
- {datex_studio_cli-0.4.20 → datex_studio_cli-0.4.22}/src/dxs/commands/config.py +0 -0
- {datex_studio_cli-0.4.20 → datex_studio_cli-0.4.22}/src/dxs/commands/configuration.py +0 -0
- {datex_studio_cli-0.4.20 → datex_studio_cli-0.4.22}/src/dxs/commands/crm.py +0 -0
- {datex_studio_cli-0.4.20 → datex_studio_cli-0.4.22}/src/dxs/commands/crm_delivery.py +0 -0
- {datex_studio_cli-0.4.20 → datex_studio_cli-0.4.22}/src/dxs/commands/crm_time.py +0 -0
- {datex_studio_cli-0.4.20 → datex_studio_cli-0.4.22}/src/dxs/commands/datasource.py +0 -0
- {datex_studio_cli-0.4.20 → datex_studio_cli-0.4.22}/src/dxs/commands/devops.py +0 -0
- {datex_studio_cli-0.4.20 → datex_studio_cli-0.4.22}/src/dxs/commands/document.py +0 -0
- {datex_studio_cli-0.4.20 → datex_studio_cli-0.4.22}/src/dxs/commands/endpoint.py +0 -0
- {datex_studio_cli-0.4.20 → datex_studio_cli-0.4.22}/src/dxs/commands/env.py +0 -0
- {datex_studio_cli-0.4.20 → datex_studio_cli-0.4.22}/src/dxs/commands/explore.py +0 -0
- {datex_studio_cli-0.4.20 → datex_studio_cli-0.4.22}/src/dxs/commands/function.py +0 -0
- {datex_studio_cli-0.4.20 → datex_studio_cli-0.4.22}/src/dxs/commands/init.py +0 -0
- {datex_studio_cli-0.4.20 → datex_studio_cli-0.4.22}/src/dxs/commands/marketplace.py +0 -0
- {datex_studio_cli-0.4.20 → datex_studio_cli-0.4.22}/src/dxs/commands/ng/__init__.py +0 -0
- {datex_studio_cli-0.4.20 → datex_studio_cli-0.4.22}/src/dxs/commands/ng/_common.py +0 -0
- {datex_studio_cli-0.4.20 → datex_studio_cli-0.4.22}/src/dxs/commands/ng/api.py +0 -0
- {datex_studio_cli-0.4.20 → datex_studio_cli-0.4.22}/src/dxs/commands/ng/create.py +0 -0
- {datex_studio_cli-0.4.20 → datex_studio_cli-0.4.22}/src/dxs/commands/ng/data.py +0 -0
- {datex_studio_cli-0.4.20 → datex_studio_cli-0.4.22}/src/dxs/commands/ng/pack.py +0 -0
- {datex_studio_cli-0.4.20 → datex_studio_cli-0.4.22}/src/dxs/commands/ng/preview.py +0 -0
- {datex_studio_cli-0.4.20 → datex_studio_cli-0.4.22}/src/dxs/commands/odata.py +0 -0
- {datex_studio_cli-0.4.20 → datex_studio_cli-0.4.22}/src/dxs/commands/organization.py +0 -0
- {datex_studio_cli-0.4.20 → datex_studio_cli-0.4.22}/src/dxs/commands/proxy.py +0 -0
- {datex_studio_cli-0.4.20 → datex_studio_cli-0.4.22}/src/dxs/commands/reference.py +0 -0
- {datex_studio_cli-0.4.20 → datex_studio_cli-0.4.22}/src/dxs/commands/release_notes.py +0 -0
- {datex_studio_cli-0.4.20 → datex_studio_cli-0.4.22}/src/dxs/commands/repo.py +0 -0
- {datex_studio_cli-0.4.20 → datex_studio_cli-0.4.22}/src/dxs/commands/report/__init__.py +0 -0
- {datex_studio_cli-0.4.20 → datex_studio_cli-0.4.22}/src/dxs/commands/report/add_cmds.py +0 -0
- {datex_studio_cli-0.4.20 → datex_studio_cli-0.4.22}/src/dxs/commands/report/api.py +0 -0
- {datex_studio_cli-0.4.20 → datex_studio_cli-0.4.22}/src/dxs/commands/report/batch.py +0 -0
- {datex_studio_cli-0.4.20 → datex_studio_cli-0.4.22}/src/dxs/commands/report/create.py +0 -0
- {datex_studio_cli-0.4.20 → datex_studio_cli-0.4.22}/src/dxs/commands/report/data.py +0 -0
- {datex_studio_cli-0.4.20 → datex_studio_cli-0.4.22}/src/dxs/commands/report/dataset.py +0 -0
- {datex_studio_cli-0.4.20 → datex_studio_cli-0.4.22}/src/dxs/commands/report/edit.py +0 -0
- {datex_studio_cli-0.4.20 → datex_studio_cli-0.4.22}/src/dxs/commands/report/folder.py +0 -0
- {datex_studio_cli-0.4.20 → datex_studio_cli-0.4.22}/src/dxs/commands/report/preview.py +0 -0
- {datex_studio_cli-0.4.20 → datex_studio_cli-0.4.22}/src/dxs/commands/report/schema_cmds.py +0 -0
- {datex_studio_cli-0.4.20 → datex_studio_cli-0.4.22}/src/dxs/commands/reset.py +0 -0
- {datex_studio_cli-0.4.20 → datex_studio_cli-0.4.22}/src/dxs/commands/schema.py +0 -0
- {datex_studio_cli-0.4.20 → datex_studio_cli-0.4.22}/src/dxs/commands/servicepack.py +0 -0
- {datex_studio_cli-0.4.20 → datex_studio_cli-0.4.22}/src/dxs/commands/source.py +0 -0
- {datex_studio_cli-0.4.20 → datex_studio_cli-0.4.22}/src/dxs/commands/studio.py +0 -0
- {datex_studio_cli-0.4.20 → datex_studio_cli-0.4.22}/src/dxs/commands/telemetry.py +0 -0
- {datex_studio_cli-0.4.20 → datex_studio_cli-0.4.22}/src/dxs/commands/user.py +0 -0
- {datex_studio_cli-0.4.20 → datex_studio_cli-0.4.22}/src/dxs/commands/validation_report.py +0 -0
- {datex_studio_cli-0.4.20 → datex_studio_cli-0.4.22}/src/dxs/context.py +0 -0
- {datex_studio_cli-0.4.20 → datex_studio_cli-0.4.22}/src/dxs/core/__init__.py +0 -0
- {datex_studio_cli-0.4.20 → datex_studio_cli-0.4.22}/src/dxs/core/agent_browser.py +0 -0
- {datex_studio_cli-0.4.20 → datex_studio_cli-0.4.22}/src/dxs/core/api/__init__.py +0 -0
- {datex_studio_cli-0.4.20 → datex_studio_cli-0.4.22}/src/dxs/core/api/app_config.py +0 -0
- {datex_studio_cli-0.4.20 → datex_studio_cli-0.4.22}/src/dxs/core/api/client.py +0 -0
- {datex_studio_cli-0.4.20 → datex_studio_cli-0.4.22}/src/dxs/core/api/endpoints.py +0 -0
- {datex_studio_cli-0.4.20 → datex_studio_cli-0.4.22}/src/dxs/core/api/metadata_models.py +0 -0
- {datex_studio_cli-0.4.20 → datex_studio_cli-0.4.22}/src/dxs/core/api/models.py +0 -0
- {datex_studio_cli-0.4.20 → datex_studio_cli-0.4.22}/src/dxs/core/api/reference_graph.py +0 -0
- {datex_studio_cli-0.4.20 → datex_studio_cli-0.4.22}/src/dxs/core/auth/datex_tenant.py +0 -0
- {datex_studio_cli-0.4.20 → datex_studio_cli-0.4.22}/src/dxs/core/auth/decorators.py +0 -0
- {datex_studio_cli-0.4.20 → datex_studio_cli-0.4.22}/src/dxs/core/auth/msal_client.py +0 -0
- {datex_studio_cli-0.4.20 → datex_studio_cli-0.4.22}/src/dxs/core/auth/tenants.py +0 -0
- {datex_studio_cli-0.4.20 → datex_studio_cli-0.4.22}/src/dxs/core/cache.py +0 -0
- {datex_studio_cli-0.4.20 → datex_studio_cli-0.4.22}/src/dxs/core/datasource/__init__.py +0 -0
- {datex_studio_cli-0.4.20 → datex_studio_cli-0.4.22}/src/dxs/core/datasource/flow_generator.py +0 -0
- {datex_studio_cli-0.4.20 → datex_studio_cli-0.4.22}/src/dxs/core/datasource/flow_models.py +0 -0
- {datex_studio_cli-0.4.20 → datex_studio_cli-0.4.22}/src/dxs/core/datasource/flow_shape.py +0 -0
- {datex_studio_cli-0.4.20 → datex_studio_cli-0.4.22}/src/dxs/core/datasource/generator.py +0 -0
- {datex_studio_cli-0.4.20 → datex_studio_cli-0.4.22}/src/dxs/core/datasource/models.py +0 -0
- {datex_studio_cli-0.4.20 → datex_studio_cli-0.4.22}/src/dxs/core/datasource/parsers.py +0 -0
- {datex_studio_cli-0.4.20 → datex_studio_cli-0.4.22}/src/dxs/core/datasource/resolver.py +0 -0
- {datex_studio_cli-0.4.20 → datex_studio_cli-0.4.22}/src/dxs/core/datasource/type_def_parser.py +0 -0
- {datex_studio_cli-0.4.20 → datex_studio_cli-0.4.22}/src/dxs/core/datasource/validator.py +0 -0
- {datex_studio_cli-0.4.20 → datex_studio_cli-0.4.22}/src/dxs/core/designer/__init__.py +0 -0
- {datex_studio_cli-0.4.20 → datex_studio_cli-0.4.22}/src/dxs/core/designer/flow_models.py +0 -0
- {datex_studio_cli-0.4.20 → datex_studio_cli-0.4.22}/src/dxs/core/designer/models.py +0 -0
- {datex_studio_cli-0.4.20 → datex_studio_cli-0.4.22}/src/dxs/core/designer/parsers.py +0 -0
- {datex_studio_cli-0.4.20 → datex_studio_cli-0.4.22}/src/dxs/core/devops/__init__.py +0 -0
- {datex_studio_cli-0.4.20 → datex_studio_cli-0.4.22}/src/dxs/core/devops/client.py +0 -0
- {datex_studio_cli-0.4.20 → datex_studio_cli-0.4.22}/src/dxs/core/devops/helpers.py +0 -0
- {datex_studio_cli-0.4.20 → datex_studio_cli-0.4.22}/src/dxs/core/devops/models.py +0 -0
- {datex_studio_cli-0.4.20 → datex_studio_cli-0.4.22}/src/dxs/core/dynamics/__init__.py +0 -0
- {datex_studio_cli-0.4.20 → datex_studio_cli-0.4.22}/src/dxs/core/dynamics/client.py +0 -0
- {datex_studio_cli-0.4.20 → datex_studio_cli-0.4.22}/src/dxs/core/dynamics/html.py +0 -0
- {datex_studio_cli-0.4.20 → datex_studio_cli-0.4.22}/src/dxs/core/dynamics/metadata_cache.py +0 -0
- {datex_studio_cli-0.4.20 → datex_studio_cli-0.4.22}/src/dxs/core/dynamics/pagination.py +0 -0
- {datex_studio_cli-0.4.20 → datex_studio_cli-0.4.22}/src/dxs/core/dynamics/resolvers.py +0 -0
- {datex_studio_cli-0.4.20 → datex_studio_cli-0.4.22}/src/dxs/core/dynamics/time_entry.py +0 -0
- {datex_studio_cli-0.4.20 → datex_studio_cli-0.4.22}/src/dxs/core/footprint/__init__.py +0 -0
- {datex_studio_cli-0.4.20 → datex_studio_cli-0.4.22}/src/dxs/core/footprint/client.py +0 -0
- {datex_studio_cli-0.4.20 → datex_studio_cli-0.4.22}/src/dxs/core/footprint/edmx_parser.py +0 -0
- {datex_studio_cli-0.4.20 → datex_studio_cli-0.4.22}/src/dxs/core/footprint/metadata.py +0 -0
- {datex_studio_cli-0.4.20 → datex_studio_cli-0.4.22}/src/dxs/core/function/__init__.py +0 -0
- {datex_studio_cli-0.4.20 → datex_studio_cli-0.4.22}/src/dxs/core/function/generator.py +0 -0
- {datex_studio_cli-0.4.20 → datex_studio_cli-0.4.22}/src/dxs/core/function/models.py +0 -0
- {datex_studio_cli-0.4.20 → datex_studio_cli-0.4.22}/src/dxs/core/function/validator.py +0 -0
- {datex_studio_cli-0.4.20 → datex_studio_cli-0.4.22}/src/dxs/core/graph.py +0 -0
- {datex_studio_cli-0.4.20 → datex_studio_cli-0.4.22}/src/dxs/core/onboarding.py +0 -0
- {datex_studio_cli-0.4.20 → datex_studio_cli-0.4.22}/src/dxs/core/output/__init__.py +0 -0
- {datex_studio_cli-0.4.20 → datex_studio_cli-0.4.22}/src/dxs/core/output/csv_fmt.py +0 -0
- {datex_studio_cli-0.4.20 → datex_studio_cli-0.4.22}/src/dxs/core/output/formatter.py +0 -0
- {datex_studio_cli-0.4.20 → datex_studio_cli-0.4.22}/src/dxs/core/output/json_fmt.py +0 -0
- {datex_studio_cli-0.4.20 → datex_studio_cli-0.4.22}/src/dxs/core/output/redaction.py +0 -0
- {datex_studio_cli-0.4.20 → datex_studio_cli-0.4.22}/src/dxs/core/output/yaml_fmt.py +0 -0
- {datex_studio_cli-0.4.20 → datex_studio_cli-0.4.22}/src/dxs/core/release_notes.py +0 -0
- {datex_studio_cli-0.4.20 → datex_studio_cli-0.4.22}/src/dxs/core/responses.py +0 -0
- {datex_studio_cli-0.4.20 → datex_studio_cli-0.4.22}/src/dxs/core/telemetry/__init__.py +0 -0
- {datex_studio_cli-0.4.20 → datex_studio_cli-0.4.22}/src/dxs/core/telemetry/config.py +0 -0
- {datex_studio_cli-0.4.20 → datex_studio_cli-0.4.22}/src/dxs/core/telemetry/identity.py +0 -0
- {datex_studio_cli-0.4.20 → datex_studio_cli-0.4.22}/src/dxs/core/telemetry/recorder.py +0 -0
- {datex_studio_cli-0.4.20 → datex_studio_cli-0.4.22}/src/dxs/core/telemetry/scrubber.py +0 -0
- {datex_studio_cli-0.4.20 → datex_studio_cli-0.4.22}/src/dxs/core/telemetry/sender.py +0 -0
- {datex_studio_cli-0.4.20 → datex_studio_cli-0.4.22}/src/dxs/models/__init__.py +0 -0
- {datex_studio_cli-0.4.20 → datex_studio_cli-0.4.22}/src/dxs/ng/__init__.py +0 -0
- {datex_studio_cli-0.4.20 → datex_studio_cli-0.4.22}/src/dxs/ng/folder.py +0 -0
- {datex_studio_cli-0.4.20 → datex_studio_cli-0.4.22}/src/dxs/ng/manifest.py +0 -0
- {datex_studio_cli-0.4.20 → datex_studio_cli-0.4.22}/src/dxs/ng/mocks.py +0 -0
- {datex_studio_cli-0.4.20 → datex_studio_cli-0.4.22}/src/dxs/ng/preview.py +0 -0
- {datex_studio_cli-0.4.20 → datex_studio_cli-0.4.22}/src/dxs/ng/scaffold.py +0 -0
- {datex_studio_cli-0.4.20 → datex_studio_cli-0.4.22}/src/dxs/ng/serve_lock.py +0 -0
- {datex_studio_cli-0.4.20 → datex_studio_cli-0.4.22}/src/dxs/py.typed +0 -0
- {datex_studio_cli-0.4.20 → datex_studio_cli-0.4.22}/src/dxs/report/__init__.py +0 -0
- {datex_studio_cli-0.4.20 → datex_studio_cli-0.4.22}/src/dxs/report/datasource_binding.py +0 -0
- {datex_studio_cli-0.4.20 → datex_studio_cli-0.4.22}/src/dxs/report/engine.py +0 -0
- {datex_studio_cli-0.4.20 → datex_studio_cli-0.4.22}/src/dxs/report/field_parser.py +0 -0
- {datex_studio_cli-0.4.20 → datex_studio_cli-0.4.22}/src/dxs/report/folder.py +0 -0
- {datex_studio_cli-0.4.20 → datex_studio_cli-0.4.22}/src/dxs/report/manifest.py +0 -0
- {datex_studio_cli-0.4.20 → datex_studio_cli-0.4.22}/src/dxs/report/models.py +0 -0
- {datex_studio_cli-0.4.20 → datex_studio_cli-0.4.22}/src/dxs/report/preview.py +0 -0
- {datex_studio_cli-0.4.20 → datex_studio_cli-0.4.22}/src/dxs/report/preview_arjs.py +0 -0
- {datex_studio_cli-0.4.20 → datex_studio_cli-0.4.22}/src/dxs/report/schema.py +0 -0
- {datex_studio_cli-0.4.20 → datex_studio_cli-0.4.22}/src/dxs/report/svg_renderer.py +0 -0
- {datex_studio_cli-0.4.20 → datex_studio_cli-0.4.22}/src/dxs/report/templates/__init__.py +0 -0
- {datex_studio_cli-0.4.20 → datex_studio_cli-0.4.22}/src/dxs/report/templates/bill_of_lading.rdlx-json +0 -0
- {datex_studio_cli-0.4.20 → datex_studio_cli-0.4.22}/src/dxs/report/templates/shipping_label.rdlx-json +0 -0
- {datex_studio_cli-0.4.20 → datex_studio_cli-0.4.22}/src/dxs/report/validate_arjs.py +0 -0
- {datex_studio_cli-0.4.20 → datex_studio_cli-0.4.22}/src/dxs/report/validator.py +0 -0
- {datex_studio_cli-0.4.20 → datex_studio_cli-0.4.22}/src/dxs/report/wrapper.py +0 -0
- {datex_studio_cli-0.4.20 → datex_studio_cli-0.4.22}/src/dxs/utils/__init__.py +0 -0
- {datex_studio_cli-0.4.20 → datex_studio_cli-0.4.22}/src/dxs/utils/click_options.py +0 -0
- {datex_studio_cli-0.4.20 → datex_studio_cli-0.4.22}/src/dxs/utils/clipboard.py +0 -0
- {datex_studio_cli-0.4.20 → datex_studio_cli-0.4.22}/src/dxs/utils/config.py +0 -0
- {datex_studio_cli-0.4.20 → datex_studio_cli-0.4.22}/src/dxs/utils/errors.py +0 -0
- {datex_studio_cli-0.4.20 → datex_studio_cli-0.4.22}/src/dxs/utils/filtering.py +0 -0
- {datex_studio_cli-0.4.20 → datex_studio_cli-0.4.22}/src/dxs/utils/image.py +0 -0
- {datex_studio_cli-0.4.20 → datex_studio_cli-0.4.22}/src/dxs/utils/paths.py +0 -0
- {datex_studio_cli-0.4.20 → datex_studio_cli-0.4.22}/src/dxs/utils/resolvers.py +0 -0
- {datex_studio_cli-0.4.20 → datex_studio_cli-0.4.22}/src/dxs/utils/responses.py +0 -0
- {datex_studio_cli-0.4.20 → datex_studio_cli-0.4.22}/src/dxs/utils/restricted.py +0 -0
- {datex_studio_cli-0.4.20 → datex_studio_cli-0.4.22}/src/dxs/utils/sorting.py +0 -0
- {datex_studio_cli-0.4.20 → datex_studio_cli-0.4.22}/src/dxs/utils/versioning.py +0 -0
- {datex_studio_cli-0.4.20 → datex_studio_cli-0.4.22}/src/dxs/web/__init__.py +0 -0
- {datex_studio_cli-0.4.20 → datex_studio_cli-0.4.22}/src/dxs/web/app.py +0 -0
- {datex_studio_cli-0.4.20 → datex_studio_cli-0.4.22}/src/dxs/web/design.py +0 -0
- {datex_studio_cli-0.4.20 → datex_studio_cli-0.4.22}/src/dxs/web/proxy_app.py +0 -0
- {datex_studio_cli-0.4.20 → datex_studio_cli-0.4.22}/src/dxs/web/static/404/index.html +0 -0
- {datex_studio_cli-0.4.20 → datex_studio_cli-0.4.22}/src/dxs/web/static/404.html +0 -0
- {datex_studio_cli-0.4.20 → datex_studio_cli-0.4.22}/src/dxs/web/static/_next/static/UgyAMtPjH-Pt0RYWOHzIT/_buildManifest.js +0 -0
- {datex_studio_cli-0.4.20 → datex_studio_cli-0.4.22}/src/dxs/web/static/_next/static/UgyAMtPjH-Pt0RYWOHzIT/_ssgManifest.js +0 -0
- {datex_studio_cli-0.4.20 → datex_studio_cli-0.4.22}/src/dxs/web/static/_next/static/chunks/0b24cca5-c1e1c8810348f107.js +0 -0
- {datex_studio_cli-0.4.20 → datex_studio_cli-0.4.22}/src/dxs/web/static/_next/static/chunks/255-102f2e5b2e3dc2ef.js +0 -0
- {datex_studio_cli-0.4.20 → datex_studio_cli-0.4.22}/src/dxs/web/static/_next/static/chunks/4bd1b696-c023c6e3521b1417.js +0 -0
- {datex_studio_cli-0.4.20 → datex_studio_cli-0.4.22}/src/dxs/web/static/_next/static/chunks/538-84e2e111415f1fda.js +0 -0
- {datex_studio_cli-0.4.20 → datex_studio_cli-0.4.22}/src/dxs/web/static/_next/static/chunks/697-0e000ab410d9f470.js +0 -0
- {datex_studio_cli-0.4.20 → datex_studio_cli-0.4.22}/src/dxs/web/static/_next/static/chunks/871-1acacdb7b4022abf.js +0 -0
- {datex_studio_cli-0.4.20 → datex_studio_cli-0.4.22}/src/dxs/web/static/_next/static/chunks/8b8f67fc-6295949a4b5485a4.js +0 -0
- {datex_studio_cli-0.4.20 → datex_studio_cli-0.4.22}/src/dxs/web/static/_next/static/chunks/909-c88abba3cf0caec3.js +0 -0
- {datex_studio_cli-0.4.20 → datex_studio_cli-0.4.22}/src/dxs/web/static/_next/static/chunks/app/_not-found/page-ea1be7001c230704.js +0 -0
- {datex_studio_cli-0.4.20 → datex_studio_cli-0.4.22}/src/dxs/web/static/_next/static/chunks/app/design/capture/page-a5e129c2d223432c.js +0 -0
- {datex_studio_cli-0.4.20 → datex_studio_cli-0.4.22}/src/dxs/web/static/_next/static/chunks/app/design/page-21ba66a3dd3b03f0.js +0 -0
- {datex_studio_cli-0.4.20 → datex_studio_cli-0.4.22}/src/dxs/web/static/_next/static/chunks/app/layout-2cc6eac09e476c91.js +0 -0
- {datex_studio_cli-0.4.20 → datex_studio_cli-0.4.22}/src/dxs/web/static/_next/static/chunks/app/page-20c358395882cdac.js +0 -0
- {datex_studio_cli-0.4.20 → datex_studio_cli-0.4.22}/src/dxs/web/static/_next/static/chunks/framework-de98b93a850cfc71.js +0 -0
- {datex_studio_cli-0.4.20 → datex_studio_cli-0.4.22}/src/dxs/web/static/_next/static/chunks/main-0f18f91200dac003.js +0 -0
- {datex_studio_cli-0.4.20 → datex_studio_cli-0.4.22}/src/dxs/web/static/_next/static/chunks/main-app-b69998d8941231d8.js +0 -0
- {datex_studio_cli-0.4.20 → datex_studio_cli-0.4.22}/src/dxs/web/static/_next/static/chunks/pages/_app-7d307437aca18ad4.js +0 -0
- {datex_studio_cli-0.4.20 → datex_studio_cli-0.4.22}/src/dxs/web/static/_next/static/chunks/pages/_error-cb2a52f75f2162e2.js +0 -0
- {datex_studio_cli-0.4.20 → datex_studio_cli-0.4.22}/src/dxs/web/static/_next/static/chunks/polyfills-42372ed130431b0a.js +0 -0
- {datex_studio_cli-0.4.20 → datex_studio_cli-0.4.22}/src/dxs/web/static/_next/static/chunks/webpack-2b297ada5306c17f.js +0 -0
- {datex_studio_cli-0.4.20 → datex_studio_cli-0.4.22}/src/dxs/web/static/_next/static/css/360c657de5e04df8.css +0 -0
- {datex_studio_cli-0.4.20 → datex_studio_cli-0.4.22}/src/dxs/web/static/design/capture/index.html +0 -0
- {datex_studio_cli-0.4.20 → datex_studio_cli-0.4.22}/src/dxs/web/static/design/capture/index.txt +0 -0
- {datex_studio_cli-0.4.20 → datex_studio_cli-0.4.22}/src/dxs/web/static/design/index.html +0 -0
- {datex_studio_cli-0.4.20 → datex_studio_cli-0.4.22}/src/dxs/web/static/design/index.txt +0 -0
- {datex_studio_cli-0.4.20 → datex_studio_cli-0.4.22}/src/dxs/web/static/index.html +0 -0
- {datex_studio_cli-0.4.20 → datex_studio_cli-0.4.22}/src/dxs/web/static/index.txt +0 -0
- {datex_studio_cli-0.4.20 → datex_studio_cli-0.4.22}/src/dxs/web/static/render-cli.js +0 -0
- {datex_studio_cli-0.4.20 → datex_studio_cli-0.4.22}/src/dxs/web/static/report-preview.html +0 -0
- {datex_studio_cli-0.4.20 → datex_studio_cli-0.4.22}/src/dxs/web/static/report-validate.html +0 -0
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
Metadata-Version: 2.5
|
|
2
2
|
Name: datex-studio-cli
|
|
3
|
-
Version: 0.4.
|
|
3
|
+
Version: 0.4.22
|
|
4
4
|
Summary: CLI for Datex Studio low-code platform, designed for LLM-based AI agents
|
|
5
5
|
Project-URL: Homepage, https://github.com/datex/datex-studio-cli
|
|
6
6
|
Project-URL: Documentation, https://github.com/datex/datex-studio-cli
|
|
@@ -70,6 +70,17 @@ def _stdout_is_pipe() -> bool:
|
|
|
70
70
|
return False
|
|
71
71
|
|
|
72
72
|
|
|
73
|
+
def _stdin_is_tty() -> bool:
|
|
74
|
+
"""Whether stdin is interactive — gates confirmation prompts.
|
|
75
|
+
|
|
76
|
+
A helper for the same reason as ``_stdout_is_pipe``: tests patch it.
|
|
77
|
+
"""
|
|
78
|
+
try:
|
|
79
|
+
return sys.stdin.isatty()
|
|
80
|
+
except (AttributeError, ValueError):
|
|
81
|
+
return False
|
|
82
|
+
|
|
83
|
+
|
|
73
84
|
def _ensure_utf8_streams() -> None:
|
|
74
85
|
"""Force stdout/stderr to UTF-8 so non-ASCII output never crashes the CLI.
|
|
75
86
|
|
|
@@ -571,7 +582,7 @@ def register_commands() -> None:
|
|
|
571
582
|
@click.pass_context
|
|
572
583
|
def _after_command(ctx: click.Context, result: Any, **kwargs: Any) -> Any:
|
|
573
584
|
"""Run post-command hooks (telemetry success event + PyPI update notice)."""
|
|
574
|
-
from dxs.utils.update_check import maybe_show_update_notice
|
|
585
|
+
from dxs.utils.update_check import maybe_show_update_notice, maybe_show_update_result
|
|
575
586
|
|
|
576
587
|
dxs_ctx: DxsContext | None = ctx.find_object(DxsContext)
|
|
577
588
|
|
|
@@ -585,6 +596,13 @@ def _after_command(ctx: click.Context, result: Any, **kwargs: Any) -> Any:
|
|
|
585
596
|
except Exception: # noqa: BLE001
|
|
586
597
|
pass
|
|
587
598
|
|
|
599
|
+
# The background-upgrade outcome is the result of an explicit user
|
|
600
|
+
# action, so it is not gated by --no-update-check.
|
|
601
|
+
try:
|
|
602
|
+
maybe_show_update_result()
|
|
603
|
+
except Exception: # noqa: BLE001 - never let the update check break the CLI
|
|
604
|
+
pass
|
|
605
|
+
|
|
588
606
|
skip = bool(dxs_ctx and dxs_ctx.no_update_check)
|
|
589
607
|
try:
|
|
590
608
|
maybe_show_update_notice(skip=skip)
|
|
@@ -606,13 +624,23 @@ def _ctx_extras(dxs_ctx: "DxsContext | None") -> dict[str, Any]:
|
|
|
606
624
|
|
|
607
625
|
|
|
608
626
|
@cli.command("update")
|
|
609
|
-
|
|
610
|
-
|
|
611
|
-
|
|
612
|
-
|
|
613
|
-
|
|
614
|
-
|
|
627
|
+
@click.option("--yes", "-y", is_flag=True, help="Skip the confirmation prompt.")
|
|
628
|
+
@click.option(
|
|
629
|
+
"--check",
|
|
630
|
+
"check_only",
|
|
631
|
+
is_flag=True,
|
|
632
|
+
help="Only check for a newer release and print the upgrade command.",
|
|
633
|
+
)
|
|
634
|
+
def update_cmd(yes: bool, check_only: bool) -> None:
|
|
635
|
+
"""Upgrade dxs to the latest release on PyPI.
|
|
636
|
+
|
|
637
|
+
On macOS/Linux this process is replaced by the installer's upgrade
|
|
638
|
+
command (uv/pipx/pip), so its output appears right here. On Windows
|
|
639
|
+
the running dxs.exe locks its own files, so the upgrade runs in a
|
|
640
|
+
detached background helper after dxs exits — the outcome is reported
|
|
641
|
+
on the next dxs run, with details in ~/.datex/update.log.
|
|
615
642
|
"""
|
|
643
|
+
import shutil
|
|
616
644
|
import time
|
|
617
645
|
|
|
618
646
|
from dxs.utils.update_check import (
|
|
@@ -620,8 +648,14 @@ def update_cmd() -> None:
|
|
|
620
648
|
_fetch_latest_version,
|
|
621
649
|
_read_cache,
|
|
622
650
|
_write_cache,
|
|
651
|
+
count_windows_dxs_processes,
|
|
652
|
+
detect_upgrade_argv,
|
|
623
653
|
detect_upgrade_command,
|
|
654
|
+
is_dev_install,
|
|
624
655
|
is_newer,
|
|
656
|
+
is_windows,
|
|
657
|
+
perform_upgrade_posix,
|
|
658
|
+
perform_upgrade_windows,
|
|
625
659
|
)
|
|
626
660
|
|
|
627
661
|
click.echo(f"Current version: {__version__}", err=True)
|
|
@@ -636,11 +670,8 @@ def update_cmd() -> None:
|
|
|
636
670
|
click.echo("You are on the latest version.", err=True)
|
|
637
671
|
return
|
|
638
672
|
|
|
639
|
-
upgrade_cmd = detect_upgrade_command()
|
|
640
673
|
click.echo("", err=True)
|
|
641
674
|
click.echo(f" A new release of dxs is available: {__version__} → {latest}", err=True)
|
|
642
|
-
click.echo(f" To upgrade, run: {upgrade_cmd}", err=True)
|
|
643
|
-
click.echo(f" https://pypi.org/project/{PACKAGE_NAME}/{latest}/", err=True)
|
|
644
675
|
|
|
645
676
|
# Refresh the cache and suppress the auto-banner for the next dedupe
|
|
646
677
|
# window — the user has explicitly seen the news.
|
|
@@ -651,6 +682,75 @@ def update_cmd() -> None:
|
|
|
651
682
|
cache["last_notified_at"] = now
|
|
652
683
|
_write_cache(cache)
|
|
653
684
|
|
|
685
|
+
if check_only:
|
|
686
|
+
click.echo(f" To upgrade, run: {detect_upgrade_command()}", err=True)
|
|
687
|
+
click.echo(f" https://pypi.org/project/{PACKAGE_NAME}/{latest}/", err=True)
|
|
688
|
+
return
|
|
689
|
+
|
|
690
|
+
if is_dev_install():
|
|
691
|
+
click.echo(
|
|
692
|
+
"This is a development install (source checkout / editable). "
|
|
693
|
+
"Upgrade it with: git pull && uv sync",
|
|
694
|
+
err=True,
|
|
695
|
+
)
|
|
696
|
+
sys.exit(1)
|
|
697
|
+
|
|
698
|
+
argv = detect_upgrade_argv()
|
|
699
|
+
resolved = shutil.which(argv[0])
|
|
700
|
+
if resolved is None:
|
|
701
|
+
click.echo(
|
|
702
|
+
f"Cannot find '{argv[0]}' on PATH — install it or upgrade manually with: "
|
|
703
|
+
f"{detect_upgrade_command()}",
|
|
704
|
+
err=True,
|
|
705
|
+
)
|
|
706
|
+
sys.exit(1)
|
|
707
|
+
argv = [resolved, *argv[1:]]
|
|
708
|
+
|
|
709
|
+
if not yes:
|
|
710
|
+
if not _stdin_is_tty():
|
|
711
|
+
click.echo(
|
|
712
|
+
"Not an interactive session — re-run with --yes to upgrade.",
|
|
713
|
+
err=True,
|
|
714
|
+
)
|
|
715
|
+
sys.exit(1)
|
|
716
|
+
click.confirm(f" Upgrade to {latest} now?", abort=True, err=True)
|
|
717
|
+
|
|
718
|
+
if is_windows():
|
|
719
|
+
running = count_windows_dxs_processes()
|
|
720
|
+
if running is not None and running > 1:
|
|
721
|
+
click.echo(
|
|
722
|
+
f" Warning: {running} dxs processes are running (dxs studio, another "
|
|
723
|
+
"terminal?). The upgrade may fail until they all exit.",
|
|
724
|
+
err=True,
|
|
725
|
+
)
|
|
726
|
+
try:
|
|
727
|
+
log_path = perform_upgrade_windows(argv, latest)
|
|
728
|
+
except OSError as e:
|
|
729
|
+
click.echo(f"Failed to start the background upgrade: {e}", err=True)
|
|
730
|
+
sys.exit(1)
|
|
731
|
+
click.echo(" The upgrade will run in the background once dxs exits.", err=True)
|
|
732
|
+
click.echo(f" Log: {log_path}", err=True)
|
|
733
|
+
click.echo(
|
|
734
|
+
" The outcome will be reported the next time you run dxs — give it a minute.",
|
|
735
|
+
err=True,
|
|
736
|
+
)
|
|
737
|
+
return
|
|
738
|
+
|
|
739
|
+
click.echo(f" Running: {' '.join(argv)}", err=True)
|
|
740
|
+
# execvp never returns on success, so the result_callback (telemetry
|
|
741
|
+
# success event) won't run — record it here first.
|
|
742
|
+
try:
|
|
743
|
+
from dxs.core.telemetry import record_end
|
|
744
|
+
|
|
745
|
+
record_end(exit_code=0, ctx_extras={})
|
|
746
|
+
except Exception: # noqa: BLE001
|
|
747
|
+
pass
|
|
748
|
+
try:
|
|
749
|
+
perform_upgrade_posix(argv)
|
|
750
|
+
except OSError as e:
|
|
751
|
+
click.echo(f"Upgrade failed to start: {e}", err=True)
|
|
752
|
+
sys.exit(1)
|
|
753
|
+
|
|
654
754
|
|
|
655
755
|
# Register commands when module loads
|
|
656
756
|
register_commands()
|