keboola-cli 0.80.2__tar.gz → 0.80.3__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.
Files changed (479) hide show
  1. {keboola_cli-0.80.2 → keboola_cli-0.80.3}/PKG-INFO +1 -1
  2. {keboola_cli-0.80.2 → keboola_cli-0.80.3}/pyproject.toml +1 -1
  3. {keboola_cli-0.80.2 → keboola_cli-0.80.3}/src/keboola_agent_cli/changelog.py +22 -0
  4. {keboola_cli-0.80.2 → keboola_cli-0.80.3}/src/keboola_agent_cli/commands/_semantic_layer_reference_data.py +5 -1
  5. {keboola_cli-0.80.2 → keboola_cli-0.80.3}/src/keboola_agent_cli/commands/dev_portal.py +2 -2
  6. {keboola_cli-0.80.2 → keboola_cli-0.80.3}/src/keboola_agent_cli/services/deep_lineage_service.py +19 -2
  7. {keboola_cli-0.80.2 → keboola_cli-0.80.3}/tests/test_deep_lineage_service.py +47 -0
  8. {keboola_cli-0.80.2 → keboola_cli-0.80.3}/.gitignore +0 -0
  9. {keboola_cli-0.80.2 → keboola_cli-0.80.3}/CLAUDE.md +0 -0
  10. {keboola_cli-0.80.2 → keboola_cli-0.80.3}/CONTRIBUTING.md +0 -0
  11. {keboola_cli-0.80.2 → keboola_cli-0.80.3}/LICENSE +0 -0
  12. {keboola_cli-0.80.2 → keboola_cli-0.80.3}/Makefile +0 -0
  13. {keboola_cli-0.80.2 → keboola_cli-0.80.3}/README.md +0 -0
  14. {keboola_cli-0.80.2 → keboola_cli-0.80.3}/examples/README.md +0 -0
  15. {keboola_cli-0.80.2 → keboola_cli-0.80.3}/examples/storage_tui/README.md +0 -0
  16. {keboola_cli-0.80.2 → keboola_cli-0.80.3}/plugins/kbagent/.claude-plugin/CLAUDE.md +0 -0
  17. {keboola_cli-0.80.2 → keboola_cli-0.80.3}/scripts/benchmark.py +0 -0
  18. {keboola_cli-0.80.2 → keboola_cli-0.80.3}/scripts/check_command_sync.py +0 -0
  19. {keboola_cli-0.80.2 → keboola_cli-0.80.3}/scripts/check_error_codes.py +0 -0
  20. {keboola_cli-0.80.2 → keboola_cli-0.80.3}/scripts/check_file_size.py +0 -0
  21. {keboola_cli-0.80.2 → keboola_cli-0.80.3}/scripts/check_mcp_parity.py +0 -0
  22. {keboola_cli-0.80.2 → keboola_cli-0.80.3}/scripts/check_sentinel_guards.py +0 -0
  23. {keboola_cli-0.80.2 → keboola_cli-0.80.3}/scripts/check_wheel_ui.py +0 -0
  24. {keboola_cli-0.80.2 → keboola_cli-0.80.3}/scripts/debug_linkedby_type.sh +0 -0
  25. {keboola_cli-0.80.2 → keboola_cli-0.80.3}/scripts/file_size_baseline.json +0 -0
  26. {keboola_cli-0.80.2 → keboola_cli-0.80.3}/scripts/gen_command_reference.py +0 -0
  27. {keboola_cli-0.80.2 → keboola_cli-0.80.3}/scripts/gen_release_notes.py +0 -0
  28. {keboola_cli-0.80.2 → keboola_cli-0.80.3}/scripts/generate_changelog.py +0 -0
  29. {keboola_cli-0.80.2 → keboola_cli-0.80.3}/scripts/generate_skill.py +0 -0
  30. {keboola_cli-0.80.2 → keboola_cli-0.80.3}/scripts/hatch_build.py +0 -0
  31. {keboola_cli-0.80.2 → keboola_cli-0.80.3}/scripts/lineage_deep.py +0 -0
  32. {keboola_cli-0.80.2 → keboola_cli-0.80.3}/scripts/post-edit-quality.sh +0 -0
  33. {keboola_cli-0.80.2 → keboola_cli-0.80.3}/scripts/pre-commit +0 -0
  34. {keboola_cli-0.80.2 → keboola_cli-0.80.3}/scripts/sync_version.py +0 -0
  35. {keboola_cli-0.80.2 → keboola_cli-0.80.3}/scripts/web-dev.sh +0 -0
  36. {keboola_cli-0.80.2 → keboola_cli-0.80.3}/src/keboola_agent_cli/__init__.py +0 -0
  37. {keboola_cli-0.80.2 → keboola_cli-0.80.3}/src/keboola_agent_cli/__main__.py +0 -0
  38. {keboola_cli-0.80.2 → keboola_cli-0.80.3}/src/keboola_agent_cli/ai_client.py +0 -0
  39. {keboola_cli-0.80.2 → keboola_cli-0.80.3}/src/keboola_agent_cli/auth/__init__.py +0 -0
  40. {keboola_cli-0.80.2 → keboola_cli-0.80.3}/src/keboola_agent_cli/auth/auth_client.py +0 -0
  41. {keboola_cli-0.80.2 → keboola_cli-0.80.3}/src/keboola_agent_cli/auth/device.py +0 -0
  42. {keboola_cli-0.80.2 → keboola_cli-0.80.3}/src/keboola_agent_cli/auth/environment.py +0 -0
  43. {keboola_cli-0.80.2 → keboola_cli-0.80.3}/src/keboola_agent_cli/auth/models.py +0 -0
  44. {keboola_cli-0.80.2 → keboola_cli-0.80.3}/src/keboola_agent_cli/auth/pkce.py +0 -0
  45. {keboola_cli-0.80.2 → keboola_cli-0.80.3}/src/keboola_agent_cli/auth/sentinel.py +0 -0
  46. {keboola_cli-0.80.2 → keboola_cli-0.80.3}/src/keboola_agent_cli/auth/state_store.py +0 -0
  47. {keboola_cli-0.80.2 → keboola_cli-0.80.3}/src/keboola_agent_cli/auth/token_provider.py +0 -0
  48. {keboola_cli-0.80.2 → keboola_cli-0.80.3}/src/keboola_agent_cli/auto_update.py +0 -0
  49. {keboola_cli-0.80.2 → keboola_cli-0.80.3}/src/keboola_agent_cli/cli.py +0 -0
  50. {keboola_cli-0.80.2 → keboola_cli-0.80.3}/src/keboola_agent_cli/client/__init__.py +0 -0
  51. {keboola_cli-0.80.2 → keboola_cli-0.80.3}/src/keboola_agent_cli/client/_client.py +0 -0
  52. {keboola_cli-0.80.2 → keboola_cli-0.80.3}/src/keboola_agent_cli/client/_core.py +0 -0
  53. {keboola_cli-0.80.2 → keboola_cli-0.80.3}/src/keboola_agent_cli/client/_transfer.py +0 -0
  54. {keboola_cli-0.80.2 → keboola_cli-0.80.3}/src/keboola_agent_cli/client/branches.py +0 -0
  55. {keboola_cli-0.80.2 → keboola_cli-0.80.3}/src/keboola_agent_cli/client/configs.py +0 -0
  56. {keboola_cli-0.80.2 → keboola_cli-0.80.3}/src/keboola_agent_cli/client/misc.py +0 -0
  57. {keboola_cli-0.80.2 → keboola_cli-0.80.3}/src/keboola_agent_cli/client/query.py +0 -0
  58. {keboola_cli-0.80.2 → keboola_cli-0.80.3}/src/keboola_agent_cli/client/queue.py +0 -0
  59. {keboola_cli-0.80.2 → keboola_cli-0.80.3}/src/keboola_agent_cli/client/storage_files.py +0 -0
  60. {keboola_cli-0.80.2 → keboola_cli-0.80.3}/src/keboola_agent_cli/client/storage_tables.py +0 -0
  61. {keboola_cli-0.80.2 → keboola_cli-0.80.3}/src/keboola_agent_cli/client/stream.py +0 -0
  62. {keboola_cli-0.80.2 → keboola_cli-0.80.3}/src/keboola_agent_cli/client/tokens.py +0 -0
  63. {keboola_cli-0.80.2 → keboola_cli-0.80.3}/src/keboola_agent_cli/client/workspaces.py +0 -0
  64. {keboola_cli-0.80.2 → keboola_cli-0.80.3}/src/keboola_agent_cli/commands/__init__.py +0 -0
  65. {keboola_cli-0.80.2 → keboola_cli-0.80.3}/src/keboola_agent_cli/commands/_auth_picker.py +0 -0
  66. {keboola_cli-0.80.2 → keboola_cli-0.80.3}/src/keboola_agent_cli/commands/_checkbox_select.py +0 -0
  67. {keboola_cli-0.80.2 → keboola_cli-0.80.3}/src/keboola_agent_cli/commands/_data_app_git.py +0 -0
  68. {keboola_cli-0.80.2 → keboola_cli-0.80.3}/src/keboola_agent_cli/commands/_data_app_runtime.py +0 -0
  69. {keboola_cli-0.80.2 → keboola_cli-0.80.3}/src/keboola_agent_cli/commands/_helpers.py +0 -0
  70. {keboola_cli-0.80.2 → keboola_cli-0.80.3}/src/keboola_agent_cli/commands/_metadata_input.py +0 -0
  71. {keboola_cli-0.80.2 → keboola_cli-0.80.3}/src/keboola_agent_cli/commands/_semantic_layer_crud.py +0 -0
  72. {keboola_cli-0.80.2 → keboola_cli-0.80.3}/src/keboola_agent_cli/commands/_semantic_layer_helpers.py +0 -0
  73. {keboola_cli-0.80.2 → keboola_cli-0.80.3}/src/keboola_agent_cli/commands/_storage_snapshots.py +0 -0
  74. {keboola_cli-0.80.2 → keboola_cli-0.80.3}/src/keboola_agent_cli/commands/agent.py +0 -0
  75. {keboola_cli-0.80.2 → keboola_cli-0.80.3}/src/keboola_agent_cli/commands/auth.py +0 -0
  76. {keboola_cli-0.80.2 → keboola_cli-0.80.3}/src/keboola_agent_cli/commands/branch.py +0 -0
  77. {keboola_cli-0.80.2 → keboola_cli-0.80.3}/src/keboola_agent_cli/commands/changelog.py +0 -0
  78. {keboola_cli-0.80.2 → keboola_cli-0.80.3}/src/keboola_agent_cli/commands/component.py +0 -0
  79. {keboola_cli-0.80.2 → keboola_cli-0.80.3}/src/keboola_agent_cli/commands/config.py +0 -0
  80. {keboola_cli-0.80.2 → keboola_cli-0.80.3}/src/keboola_agent_cli/commands/context.py +0 -0
  81. {keboola_cli-0.80.2 → keboola_cli-0.80.3}/src/keboola_agent_cli/commands/data_app.py +0 -0
  82. {keboola_cli-0.80.2 → keboola_cli-0.80.3}/src/keboola_agent_cli/commands/docs.py +0 -0
  83. {keboola_cli-0.80.2 → keboola_cli-0.80.3}/src/keboola_agent_cli/commands/doctor.py +0 -0
  84. {keboola_cli-0.80.2 → keboola_cli-0.80.3}/src/keboola_agent_cli/commands/encrypt.py +0 -0
  85. {keboola_cli-0.80.2 → keboola_cli-0.80.3}/src/keboola_agent_cli/commands/feature.py +0 -0
  86. {keboola_cli-0.80.2 → keboola_cli-0.80.3}/src/keboola_agent_cli/commands/flow.py +0 -0
  87. {keboola_cli-0.80.2 → keboola_cli-0.80.3}/src/keboola_agent_cli/commands/http_client.py +0 -0
  88. {keboola_cli-0.80.2 → keboola_cli-0.80.3}/src/keboola_agent_cli/commands/init.py +0 -0
  89. {keboola_cli-0.80.2 → keboola_cli-0.80.3}/src/keboola_agent_cli/commands/job.py +0 -0
  90. {keboola_cli-0.80.2 → keboola_cli-0.80.3}/src/keboola_agent_cli/commands/kai.py +0 -0
  91. {keboola_cli-0.80.2 → keboola_cli-0.80.3}/src/keboola_agent_cli/commands/lineage.py +0 -0
  92. {keboola_cli-0.80.2 → keboola_cli-0.80.3}/src/keboola_agent_cli/commands/org.py +0 -0
  93. {keboola_cli-0.80.2 → keboola_cli-0.80.3}/src/keboola_agent_cli/commands/permissions.py +0 -0
  94. {keboola_cli-0.80.2 → keboola_cli-0.80.3}/src/keboola_agent_cli/commands/project.py +0 -0
  95. {keboola_cli-0.80.2 → keboola_cli-0.80.3}/src/keboola_agent_cli/commands/repl.py +0 -0
  96. {keboola_cli-0.80.2 → keboola_cli-0.80.3}/src/keboola_agent_cli/commands/schedule.py +0 -0
  97. {keboola_cli-0.80.2 → keboola_cli-0.80.3}/src/keboola_agent_cli/commands/search.py +0 -0
  98. {keboola_cli-0.80.2 → keboola_cli-0.80.3}/src/keboola_agent_cli/commands/semantic_layer.py +0 -0
  99. {keboola_cli-0.80.2 → keboola_cli-0.80.3}/src/keboola_agent_cli/commands/serve.py +0 -0
  100. {keboola_cli-0.80.2 → keboola_cli-0.80.3}/src/keboola_agent_cli/commands/sharing.py +0 -0
  101. {keboola_cli-0.80.2 → keboola_cli-0.80.3}/src/keboola_agent_cli/commands/storage.py +0 -0
  102. {keboola_cli-0.80.2 → keboola_cli-0.80.3}/src/keboola_agent_cli/commands/stream.py +0 -0
  103. {keboola_cli-0.80.2 → keboola_cli-0.80.3}/src/keboola_agent_cli/commands/sync.py +0 -0
  104. {keboola_cli-0.80.2 → keboola_cli-0.80.3}/src/keboola_agent_cli/commands/token.py +0 -0
  105. {keboola_cli-0.80.2 → keboola_cli-0.80.3}/src/keboola_agent_cli/commands/tool.py +0 -0
  106. {keboola_cli-0.80.2 → keboola_cli-0.80.3}/src/keboola_agent_cli/commands/transformation.py +0 -0
  107. {keboola_cli-0.80.2 → keboola_cli-0.80.3}/src/keboola_agent_cli/commands/version.py +0 -0
  108. {keboola_cli-0.80.2 → keboola_cli-0.80.3}/src/keboola_agent_cli/commands/workspace.py +0 -0
  109. {keboola_cli-0.80.2 → keboola_cli-0.80.3}/src/keboola_agent_cli/config_store.py +0 -0
  110. {keboola_cli-0.80.2 → keboola_cli-0.80.3}/src/keboola_agent_cli/constants.py +0 -0
  111. {keboola_cli-0.80.2 → keboola_cli-0.80.3}/src/keboola_agent_cli/data_science_client.py +0 -0
  112. {keboola_cli-0.80.2 → keboola_cli-0.80.3}/src/keboola_agent_cli/dev_portal_client.py +0 -0
  113. {keboola_cli-0.80.2 → keboola_cli-0.80.3}/src/keboola_agent_cli/errors.py +0 -0
  114. {keboola_cli-0.80.2 → keboola_cli-0.80.3}/src/keboola_agent_cli/frozen_dist.py +0 -0
  115. {keboola_cli-0.80.2 → keboola_cli-0.80.3}/src/keboola_agent_cli/http_base.py +0 -0
  116. {keboola_cli-0.80.2 → keboola_cli-0.80.3}/src/keboola_agent_cli/json_utils.py +0 -0
  117. {keboola_cli-0.80.2 → keboola_cli-0.80.3}/src/keboola_agent_cli/lib.py +0 -0
  118. {keboola_cli-0.80.2 → keboola_cli-0.80.3}/src/keboola_agent_cli/manage_client.py +0 -0
  119. {keboola_cli-0.80.2 → keboola_cli-0.80.3}/src/keboola_agent_cli/mcp_parity.py +0 -0
  120. {keboola_cli-0.80.2 → keboola_cli-0.80.3}/src/keboola_agent_cli/metastore_client.py +0 -0
  121. {keboola_cli-0.80.2 → keboola_cli-0.80.3}/src/keboola_agent_cli/models.py +0 -0
  122. {keboola_cli-0.80.2 → keboola_cli-0.80.3}/src/keboola_agent_cli/output.py +0 -0
  123. {keboola_cli-0.80.2 → keboola_cli-0.80.3}/src/keboola_agent_cli/permissions.py +0 -0
  124. {keboola_cli-0.80.2 → keboola_cli-0.80.3}/src/keboola_agent_cli/py.typed +0 -0
  125. {keboola_cli-0.80.2 → keboola_cli-0.80.3}/src/keboola_agent_cli/resources/__init__.py +0 -0
  126. {keboola_cli-0.80.2 → keboola_cli-0.80.3}/src/keboola_agent_cli/resources/flow/__init__.py +0 -0
  127. {keboola_cli-0.80.2 → keboola_cli-0.80.3}/src/keboola_agent_cli/resources/flow/conditional-flow-schema.json +0 -0
  128. {keboola_cli-0.80.2 → keboola_cli-0.80.3}/src/keboola_agent_cli/resources/flow/conditional_flow_examples.jsonl +0 -0
  129. {keboola_cli-0.80.2 → keboola_cli-0.80.3}/src/keboola_agent_cli/resources/flow/flow-schema.json +0 -0
  130. {keboola_cli-0.80.2 → keboola_cli-0.80.3}/src/keboola_agent_cli/resources/flow/legacy_flow_examples.jsonl +0 -0
  131. {keboola_cli-0.80.2 → keboola_cli-0.80.3}/src/keboola_agent_cli/result_models.py +0 -0
  132. {keboola_cli-0.80.2 → keboola_cli-0.80.3}/src/keboola_agent_cli/scheduler_client.py +0 -0
  133. {keboola_cli-0.80.2 → keboola_cli-0.80.3}/src/keboola_agent_cli/server/__init__.py +0 -0
  134. {keboola_cli-0.80.2 → keboola_cli-0.80.3}/src/keboola_agent_cli/server/agent_runner.py +0 -0
  135. {keboola_cli-0.80.2 → keboola_cli-0.80.3}/src/keboola_agent_cli/server/agents_store.py +0 -0
  136. {keboola_cli-0.80.2 → keboola_cli-0.80.3}/src/keboola_agent_cli/server/app.py +0 -0
  137. {keboola_cli-0.80.2 → keboola_cli-0.80.3}/src/keboola_agent_cli/server/auth.py +0 -0
  138. {keboola_cli-0.80.2 → keboola_cli-0.80.3}/src/keboola_agent_cli/server/dependencies.py +0 -0
  139. {keboola_cli-0.80.2 → keboola_cli-0.80.3}/src/keboola_agent_cli/server/pricing.py +0 -0
  140. {keboola_cli-0.80.2 → keboola_cli-0.80.3}/src/keboola_agent_cli/server/routers/__init__.py +0 -0
  141. {keboola_cli-0.80.2 → keboola_cli-0.80.3}/src/keboola_agent_cli/server/routers/agents.py +0 -0
  142. {keboola_cli-0.80.2 → keboola_cli-0.80.3}/src/keboola_agent_cli/server/routers/ai_chat.py +0 -0
  143. {keboola_cli-0.80.2 → keboola_cli-0.80.3}/src/keboola_agent_cli/server/routers/branches.py +0 -0
  144. {keboola_cli-0.80.2 → keboola_cli-0.80.3}/src/keboola_agent_cli/server/routers/components.py +0 -0
  145. {keboola_cli-0.80.2 → keboola_cli-0.80.3}/src/keboola_agent_cli/server/routers/configs.py +0 -0
  146. {keboola_cli-0.80.2 → keboola_cli-0.80.3}/src/keboola_agent_cli/server/routers/data_apps.py +0 -0
  147. {keboola_cli-0.80.2 → keboola_cli-0.80.3}/src/keboola_agent_cli/server/routers/dev_portal.py +0 -0
  148. {keboola_cli-0.80.2 → keboola_cli-0.80.3}/src/keboola_agent_cli/server/routers/docs.py +0 -0
  149. {keboola_cli-0.80.2 → keboola_cli-0.80.3}/src/keboola_agent_cli/server/routers/encrypt.py +0 -0
  150. {keboola_cli-0.80.2 → keboola_cli-0.80.3}/src/keboola_agent_cli/server/routers/feature.py +0 -0
  151. {keboola_cli-0.80.2 → keboola_cli-0.80.3}/src/keboola_agent_cli/server/routers/flows.py +0 -0
  152. {keboola_cli-0.80.2 → keboola_cli-0.80.3}/src/keboola_agent_cli/server/routers/health.py +0 -0
  153. {keboola_cli-0.80.2 → keboola_cli-0.80.3}/src/keboola_agent_cli/server/routers/jobs.py +0 -0
  154. {keboola_cli-0.80.2 → keboola_cli-0.80.3}/src/keboola_agent_cli/server/routers/kai.py +0 -0
  155. {keboola_cli-0.80.2 → keboola_cli-0.80.3}/src/keboola_agent_cli/server/routers/lineage.py +0 -0
  156. {keboola_cli-0.80.2 → keboola_cli-0.80.3}/src/keboola_agent_cli/server/routers/mcp.py +0 -0
  157. {keboola_cli-0.80.2 → keboola_cli-0.80.3}/src/keboola_agent_cli/server/routers/members.py +0 -0
  158. {keboola_cli-0.80.2 → keboola_cli-0.80.3}/src/keboola_agent_cli/server/routers/org.py +0 -0
  159. {keboola_cli-0.80.2 → keboola_cli-0.80.3}/src/keboola_agent_cli/server/routers/projects.py +0 -0
  160. {keboola_cli-0.80.2 → keboola_cli-0.80.3}/src/keboola_agent_cli/server/routers/schedules.py +0 -0
  161. {keboola_cli-0.80.2 → keboola_cli-0.80.3}/src/keboola_agent_cli/server/routers/search.py +0 -0
  162. {keboola_cli-0.80.2 → keboola_cli-0.80.3}/src/keboola_agent_cli/server/routers/semantic_layer.py +0 -0
  163. {keboola_cli-0.80.2 → keboola_cli-0.80.3}/src/keboola_agent_cli/server/routers/sharing.py +0 -0
  164. {keboola_cli-0.80.2 → keboola_cli-0.80.3}/src/keboola_agent_cli/server/routers/storage.py +0 -0
  165. {keboola_cli-0.80.2 → keboola_cli-0.80.3}/src/keboola_agent_cli/server/routers/stream.py +0 -0
  166. {keboola_cli-0.80.2 → keboola_cli-0.80.3}/src/keboola_agent_cli/server/routers/token.py +0 -0
  167. {keboola_cli-0.80.2 → keboola_cli-0.80.3}/src/keboola_agent_cli/server/routers/transformation.py +0 -0
  168. {keboola_cli-0.80.2 → keboola_cli-0.80.3}/src/keboola_agent_cli/server/routers/workspaces.py +0 -0
  169. {keboola_cli-0.80.2 → keboola_cli-0.80.3}/src/keboola_agent_cli/server/run_broadcaster.py +0 -0
  170. {keboola_cli-0.80.2 → keboola_cli-0.80.3}/src/keboola_agent_cli/server/sse.py +0 -0
  171. {keboola_cli-0.80.2 → keboola_cli-0.80.3}/src/keboola_agent_cli/services/__init__.py +0 -0
  172. {keboola_cli-0.80.2 → keboola_cli-0.80.3}/src/keboola_agent_cli/services/_auth_registration.py +0 -0
  173. {keboola_cli-0.80.2 → keboola_cli-0.80.3}/src/keboola_agent_cli/services/_encryption.py +0 -0
  174. {keboola_cli-0.80.2 → keboola_cli-0.80.3}/src/keboola_agent_cli/services/_semantic_layer_cascade.py +0 -0
  175. {keboola_cli-0.80.2 → keboola_cli-0.80.3}/src/keboola_agent_cli/services/_semantic_layer_crud.py +0 -0
  176. {keboola_cli-0.80.2 → keboola_cli-0.80.3}/src/keboola_agent_cli/services/_semantic_layer_internals.py +0 -0
  177. {keboola_cli-0.80.2 → keboola_cli-0.80.3}/src/keboola_agent_cli/services/_semantic_layer_lookup.py +0 -0
  178. {keboola_cli-0.80.2 → keboola_cli-0.80.3}/src/keboola_agent_cli/services/_semantic_layer_reference_data.py +0 -0
  179. {keboola_cli-0.80.2 → keboola_cli-0.80.3}/src/keboola_agent_cli/services/_sync_bindings.py +0 -0
  180. {keboola_cli-0.80.2 → keboola_cli-0.80.3}/src/keboola_agent_cli/services/_sync_branch.py +0 -0
  181. {keboola_cli-0.80.2 → keboola_cli-0.80.3}/src/keboola_agent_cli/services/_sync_bulk.py +0 -0
  182. {keboola_cli-0.80.2 → keboola_cli-0.80.3}/src/keboola_agent_cli/services/_sync_clone.py +0 -0
  183. {keboola_cli-0.80.2 → keboola_cli-0.80.3}/src/keboola_agent_cli/services/_sync_models.py +0 -0
  184. {keboola_cli-0.80.2 → keboola_cli-0.80.3}/src/keboola_agent_cli/services/_sync_push_ops.py +0 -0
  185. {keboola_cli-0.80.2 → keboola_cli-0.80.3}/src/keboola_agent_cli/services/_sync_storage.py +0 -0
  186. {keboola_cli-0.80.2 → keboola_cli-0.80.3}/src/keboola_agent_cli/services/_sync_writeback.py +0 -0
  187. {keboola_cli-0.80.2 → keboola_cli-0.80.3}/src/keboola_agent_cli/services/_transformation_ops.py +0 -0
  188. {keboola_cli-0.80.2 → keboola_cli-0.80.3}/src/keboola_agent_cli/services/agent_service.py +0 -0
  189. {keboola_cli-0.80.2 → keboola_cli-0.80.3}/src/keboola_agent_cli/services/auth_service.py +0 -0
  190. {keboola_cli-0.80.2 → keboola_cli-0.80.3}/src/keboola_agent_cli/services/base.py +0 -0
  191. {keboola_cli-0.80.2 → keboola_cli-0.80.3}/src/keboola_agent_cli/services/branch_service.py +0 -0
  192. {keboola_cli-0.80.2 → keboola_cli-0.80.3}/src/keboola_agent_cli/services/component_service.py +0 -0
  193. {keboola_cli-0.80.2 → keboola_cli-0.80.3}/src/keboola_agent_cli/services/config_service.py +0 -0
  194. {keboola_cli-0.80.2 → keboola_cli-0.80.3}/src/keboola_agent_cli/services/data_app_git_service.py +0 -0
  195. {keboola_cli-0.80.2 → keboola_cli-0.80.3}/src/keboola_agent_cli/services/data_app_service.py +0 -0
  196. {keboola_cli-0.80.2 → keboola_cli-0.80.3}/src/keboola_agent_cli/services/dev_portal_service.py +0 -0
  197. {keboola_cli-0.80.2 → keboola_cli-0.80.3}/src/keboola_agent_cli/services/docs_service.py +0 -0
  198. {keboola_cli-0.80.2 → keboola_cli-0.80.3}/src/keboola_agent_cli/services/doctor_service.py +0 -0
  199. {keboola_cli-0.80.2 → keboola_cli-0.80.3}/src/keboola_agent_cli/services/encrypt_service.py +0 -0
  200. {keboola_cli-0.80.2 → keboola_cli-0.80.3}/src/keboola_agent_cli/services/feature_service.py +0 -0
  201. {keboola_cli-0.80.2 → keboola_cli-0.80.3}/src/keboola_agent_cli/services/flow_service.py +0 -0
  202. {keboola_cli-0.80.2 → keboola_cli-0.80.3}/src/keboola_agent_cli/services/flow_validation.py +0 -0
  203. {keboola_cli-0.80.2 → keboola_cli-0.80.3}/src/keboola_agent_cli/services/http_forwarder_service.py +0 -0
  204. {keboola_cli-0.80.2 → keboola_cli-0.80.3}/src/keboola_agent_cli/services/job_idempotency_store.py +0 -0
  205. {keboola_cli-0.80.2 → keboola_cli-0.80.3}/src/keboola_agent_cli/services/job_service.py +0 -0
  206. {keboola_cli-0.80.2 → keboola_cli-0.80.3}/src/keboola_agent_cli/services/kai_service.py +0 -0
  207. {keboola_cli-0.80.2 → keboola_cli-0.80.3}/src/keboola_agent_cli/services/lineage_service.py +0 -0
  208. {keboola_cli-0.80.2 → keboola_cli-0.80.3}/src/keboola_agent_cli/services/mcp_service.py +0 -0
  209. {keboola_cli-0.80.2 → keboola_cli-0.80.3}/src/keboola_agent_cli/services/mcp_transport.py +0 -0
  210. {keboola_cli-0.80.2 → keboola_cli-0.80.3}/src/keboola_agent_cli/services/member_service.py +0 -0
  211. {keboola_cli-0.80.2 → keboola_cli-0.80.3}/src/keboola_agent_cli/services/org_service.py +0 -0
  212. {keboola_cli-0.80.2 → keboola_cli-0.80.3}/src/keboola_agent_cli/services/project_service.py +0 -0
  213. {keboola_cli-0.80.2 → keboola_cli-0.80.3}/src/keboola_agent_cli/services/repo_validate_service.py +0 -0
  214. {keboola_cli-0.80.2 → keboola_cli-0.80.3}/src/keboola_agent_cli/services/schedule_service.py +0 -0
  215. {keboola_cli-0.80.2 → keboola_cli-0.80.3}/src/keboola_agent_cli/services/search_service.py +0 -0
  216. {keboola_cli-0.80.2 → keboola_cli-0.80.3}/src/keboola_agent_cli/services/semantic_layer_service.py +0 -0
  217. {keboola_cli-0.80.2 → keboola_cli-0.80.3}/src/keboola_agent_cli/services/sharing_service.py +0 -0
  218. {keboola_cli-0.80.2 → keboola_cli-0.80.3}/src/keboola_agent_cli/services/snapshot_service.py +0 -0
  219. {keboola_cli-0.80.2 → keboola_cli-0.80.3}/src/keboola_agent_cli/services/storage_service.py +0 -0
  220. {keboola_cli-0.80.2 → keboola_cli-0.80.3}/src/keboola_agent_cli/services/stream_service.py +0 -0
  221. {keboola_cli-0.80.2 → keboola_cli-0.80.3}/src/keboola_agent_cli/services/sync_service.py +0 -0
  222. {keboola_cli-0.80.2 → keboola_cli-0.80.3}/src/keboola_agent_cli/services/token_service.py +0 -0
  223. {keboola_cli-0.80.2 → keboola_cli-0.80.3}/src/keboola_agent_cli/services/transformation_service.py +0 -0
  224. {keboola_cli-0.80.2 → keboola_cli-0.80.3}/src/keboola_agent_cli/services/variables_service.py +0 -0
  225. {keboola_cli-0.80.2 → keboola_cli-0.80.3}/src/keboola_agent_cli/services/version_service.py +0 -0
  226. {keboola_cli-0.80.2 → keboola_cli-0.80.3}/src/keboola_agent_cli/services/workspace_service.py +0 -0
  227. {keboola_cli-0.80.2 → keboola_cli-0.80.3}/src/keboola_agent_cli/stream_client.py +0 -0
  228. {keboola_cli-0.80.2 → keboola_cli-0.80.3}/src/keboola_agent_cli/sync/__init__.py +0 -0
  229. {keboola_cli-0.80.2 → keboola_cli-0.80.3}/src/keboola_agent_cli/sync/branch_mapping.py +0 -0
  230. {keboola_cli-0.80.2 → keboola_cli-0.80.3}/src/keboola_agent_cli/sync/clone.py +0 -0
  231. {keboola_cli-0.80.2 → keboola_cli-0.80.3}/src/keboola_agent_cli/sync/code_extraction.py +0 -0
  232. {keboola_cli-0.80.2 → keboola_cli-0.80.3}/src/keboola_agent_cli/sync/config_format.py +0 -0
  233. {keboola_cli-0.80.2 → keboola_cli-0.80.3}/src/keboola_agent_cli/sync/diff_engine.py +0 -0
  234. {keboola_cli-0.80.2 → keboola_cli-0.80.3}/src/keboola_agent_cli/sync/git_utils.py +0 -0
  235. {keboola_cli-0.80.2 → keboola_cli-0.80.3}/src/keboola_agent_cli/sync/manifest.py +0 -0
  236. {keboola_cli-0.80.2 → keboola_cli-0.80.3}/src/keboola_agent_cli/sync/naming.py +0 -0
  237. {keboola_cli-0.80.2 → keboola_cli-0.80.3}/src/keboola_agent_cli/sync/secrets.py +0 -0
  238. {keboola_cli-0.80.2 → keboola_cli-0.80.3}/src/keboola_agent_cli/sync/sql_split.py +0 -0
  239. {keboola_cli-0.80.2 → keboola_cli-0.80.3}/src/keboola_agent_cli/update_runner.py +0 -0
  240. {keboola_cli-0.80.2 → keboola_cli-0.80.3}/tests/__init__.py +0 -0
  241. {keboola_cli-0.80.2 → keboola_cli-0.80.3}/tests/conftest.py +0 -0
  242. {keboola_cli-0.80.2 → keboola_cli-0.80.3}/tests/helpers.py +0 -0
  243. {keboola_cli-0.80.2 → keboola_cli-0.80.3}/tests/test_agent_cli.py +0 -0
  244. {keboola_cli-0.80.2 → keboola_cli-0.80.3}/tests/test_agent_prompt.py +0 -0
  245. {keboola_cli-0.80.2 → keboola_cli-0.80.3}/tests/test_agent_prompt_helper.py +0 -0
  246. {keboola_cli-0.80.2 → keboola_cli-0.80.3}/tests/test_agent_runner.py +0 -0
  247. {keboola_cli-0.80.2 → keboola_cli-0.80.3}/tests/test_agent_service.py +0 -0
  248. {keboola_cli-0.80.2 → keboola_cli-0.80.3}/tests/test_agents_store_events.py +0 -0
  249. {keboola_cli-0.80.2 → keboola_cli-0.80.3}/tests/test_ai_client.py +0 -0
  250. {keboola_cli-0.80.2 → keboola_cli-0.80.3}/tests/test_auth_client.py +0 -0
  251. {keboola_cli-0.80.2 → keboola_cli-0.80.3}/tests/test_auth_device.py +0 -0
  252. {keboola_cli-0.80.2 → keboola_cli-0.80.3}/tests/test_auth_environment.py +0 -0
  253. {keboola_cli-0.80.2 → keboola_cli-0.80.3}/tests/test_auth_models.py +0 -0
  254. {keboola_cli-0.80.2 → keboola_cli-0.80.3}/tests/test_auth_picker.py +0 -0
  255. {keboola_cli-0.80.2 → keboola_cli-0.80.3}/tests/test_auth_pkce.py +0 -0
  256. {keboola_cli-0.80.2 → keboola_cli-0.80.3}/tests/test_auth_register_projects.py +0 -0
  257. {keboola_cli-0.80.2 → keboola_cli-0.80.3}/tests/test_auth_sentinel.py +0 -0
  258. {keboola_cli-0.80.2 → keboola_cli-0.80.3}/tests/test_auth_sentinel_guards.py +0 -0
  259. {keboola_cli-0.80.2 → keboola_cli-0.80.3}/tests/test_auth_service.py +0 -0
  260. {keboola_cli-0.80.2 → keboola_cli-0.80.3}/tests/test_auth_state_store.py +0 -0
  261. {keboola_cli-0.80.2 → keboola_cli-0.80.3}/tests/test_auto_update.py +0 -0
  262. {keboola_cli-0.80.2 → keboola_cli-0.80.3}/tests/test_base_service.py +0 -0
  263. {keboola_cli-0.80.2 → keboola_cli-0.80.3}/tests/test_branch_metadata_cli.py +0 -0
  264. {keboola_cli-0.80.2 → keboola_cli-0.80.3}/tests/test_branch_metadata_service.py +0 -0
  265. {keboola_cli-0.80.2 → keboola_cli-0.80.3}/tests/test_branch_service.py +0 -0
  266. {keboola_cli-0.80.2 → keboola_cli-0.80.3}/tests/test_build_hook.py +0 -0
  267. {keboola_cli-0.80.2 → keboola_cli-0.80.3}/tests/test_changelog_check.py +0 -0
  268. {keboola_cli-0.80.2 → keboola_cli-0.80.3}/tests/test_changelog_render.py +0 -0
  269. {keboola_cli-0.80.2 → keboola_cli-0.80.3}/tests/test_check_command_sync.py +0 -0
  270. {keboola_cli-0.80.2 → keboola_cli-0.80.3}/tests/test_check_file_size.py +0 -0
  271. {keboola_cli-0.80.2 → keboola_cli-0.80.3}/tests/test_check_sentinel_guards.py +0 -0
  272. {keboola_cli-0.80.2 → keboola_cli-0.80.3}/tests/test_checkbox_select.py +0 -0
  273. {keboola_cli-0.80.2 → keboola_cli-0.80.3}/tests/test_choice_enums.py +0 -0
  274. {keboola_cli-0.80.2 → keboola_cli-0.80.3}/tests/test_cli.py +0 -0
  275. {keboola_cli-0.80.2 → keboola_cli-0.80.3}/tests/test_cli_auth.py +0 -0
  276. {keboola_cli-0.80.2 → keboola_cli-0.80.3}/tests/test_client.py +0 -0
  277. {keboola_cli-0.80.2 → keboola_cli-0.80.3}/tests/test_client_device_enrollment.py +0 -0
  278. {keboola_cli-0.80.2 → keboola_cli-0.80.3}/tests/test_component_cli.py +0 -0
  279. {keboola_cli-0.80.2 → keboola_cli-0.80.3}/tests/test_component_service.py +0 -0
  280. {keboola_cli-0.80.2 → keboola_cli-0.80.3}/tests/test_component_sync_action.py +0 -0
  281. {keboola_cli-0.80.2 → keboola_cli-0.80.3}/tests/test_config_create_cli.py +0 -0
  282. {keboola_cli-0.80.2 → keboola_cli-0.80.3}/tests/test_config_create_service.py +0 -0
  283. {keboola_cli-0.80.2 → keboola_cli-0.80.3}/tests/test_config_encryption.py +0 -0
  284. {keboola_cli-0.80.2 → keboola_cli-0.80.3}/tests/test_config_examples.py +0 -0
  285. {keboola_cli-0.80.2 → keboola_cli-0.80.3}/tests/test_config_metadata.py +0 -0
  286. {keboola_cli-0.80.2 → keboola_cli-0.80.3}/tests/test_config_rename.py +0 -0
  287. {keboola_cli-0.80.2 → keboola_cli-0.80.3}/tests/test_config_rename_cli.py +0 -0
  288. {keboola_cli-0.80.2 → keboola_cli-0.80.3}/tests/test_config_resolution.py +0 -0
  289. {keboola_cli-0.80.2 → keboola_cli-0.80.3}/tests/test_config_row_cli.py +0 -0
  290. {keboola_cli-0.80.2 → keboola_cli-0.80.3}/tests/test_config_row_service.py +0 -0
  291. {keboola_cli-0.80.2 → keboola_cli-0.80.3}/tests/test_config_search.py +0 -0
  292. {keboola_cli-0.80.2 → keboola_cli-0.80.3}/tests/test_config_search_cli.py +0 -0
  293. {keboola_cli-0.80.2 → keboola_cli-0.80.3}/tests/test_config_set_default_bucket.py +0 -0
  294. {keboola_cli-0.80.2 → keboola_cli-0.80.3}/tests/test_config_store.py +0 -0
  295. {keboola_cli-0.80.2 → keboola_cli-0.80.3}/tests/test_config_update.py +0 -0
  296. {keboola_cli-0.80.2 → keboola_cli-0.80.3}/tests/test_data_app_cli.py +0 -0
  297. {keboola_cli-0.80.2 → keboola_cli-0.80.3}/tests/test_data_app_git_repo.py +0 -0
  298. {keboola_cli-0.80.2 → keboola_cli-0.80.3}/tests/test_data_app_plain_env_keys.py +0 -0
  299. {keboola_cli-0.80.2 → keboola_cli-0.80.3}/tests/test_data_app_secrets_cli.py +0 -0
  300. {keboola_cli-0.80.2 → keboola_cli-0.80.3}/tests/test_data_app_secrets_service.py +0 -0
  301. {keboola_cli-0.80.2 → keboola_cli-0.80.3}/tests/test_data_app_service.py +0 -0
  302. {keboola_cli-0.80.2 → keboola_cli-0.80.3}/tests/test_data_app_validate_repo_service.py +0 -0
  303. {keboola_cli-0.80.2 → keboola_cli-0.80.3}/tests/test_dev_portal_cli.py +0 -0
  304. {keboola_cli-0.80.2 → keboola_cli-0.80.3}/tests/test_dev_portal_client.py +0 -0
  305. {keboola_cli-0.80.2 → keboola_cli-0.80.3}/tests/test_dev_portal_service.py +0 -0
  306. {keboola_cli-0.80.2 → keboola_cli-0.80.3}/tests/test_docs_cli.py +0 -0
  307. {keboola_cli-0.80.2 → keboola_cli-0.80.3}/tests/test_doctor_service.py +0 -0
  308. {keboola_cli-0.80.2 → keboola_cli-0.80.3}/tests/test_e2e.py +0 -0
  309. {keboola_cli-0.80.2 → keboola_cli-0.80.3}/tests/test_e2e_auth.py +0 -0
  310. {keboola_cli-0.80.2 → keboola_cli-0.80.3}/tests/test_e2e_config_dir_mode.py +0 -0
  311. {keboola_cli-0.80.2 → keboola_cli-0.80.3}/tests/test_e2e_lineage_deep.py +0 -0
  312. {keboola_cli-0.80.2 → keboola_cli-0.80.3}/tests/test_encrypt_cli.py +0 -0
  313. {keboola_cli-0.80.2 → keboola_cli-0.80.3}/tests/test_encrypt_service.py +0 -0
  314. {keboola_cli-0.80.2 → keboola_cli-0.80.3}/tests/test_encryption.py +0 -0
  315. {keboola_cli-0.80.2 → keboola_cli-0.80.3}/tests/test_errors.py +0 -0
  316. {keboola_cli-0.80.2 → keboola_cli-0.80.3}/tests/test_feature_cli.py +0 -0
  317. {keboola_cli-0.80.2 → keboola_cli-0.80.3}/tests/test_feature_service.py +0 -0
  318. {keboola_cli-0.80.2 → keboola_cli-0.80.3}/tests/test_file_locking.py +0 -0
  319. {keboola_cli-0.80.2 → keboola_cli-0.80.3}/tests/test_flow_cli.py +0 -0
  320. {keboola_cli-0.80.2 → keboola_cli-0.80.3}/tests/test_flow_examples.py +0 -0
  321. {keboola_cli-0.80.2 → keboola_cli-0.80.3}/tests/test_flow_service.py +0 -0
  322. {keboola_cli-0.80.2 → keboola_cli-0.80.3}/tests/test_flow_validation.py +0 -0
  323. {keboola_cli-0.80.2 → keboola_cli-0.80.3}/tests/test_frozen_dist.py +0 -0
  324. {keboola_cli-0.80.2 → keboola_cli-0.80.3}/tests/test_gen_command_reference.py +0 -0
  325. {keboola_cli-0.80.2 → keboola_cli-0.80.3}/tests/test_gen_release_notes.py +0 -0
  326. {keboola_cli-0.80.2 → keboola_cli-0.80.3}/tests/test_helpers.py +0 -0
  327. {keboola_cli-0.80.2 → keboola_cli-0.80.3}/tests/test_http_base.py +0 -0
  328. {keboola_cli-0.80.2 → keboola_cli-0.80.3}/tests/test_http_base_auth.py +0 -0
  329. {keboola_cli-0.80.2 → keboola_cli-0.80.3}/tests/test_http_client_cmd.py +0 -0
  330. {keboola_cli-0.80.2 → keboola_cli-0.80.3}/tests/test_http_forwarder_service.py +0 -0
  331. {keboola_cli-0.80.2 → keboola_cli-0.80.3}/tests/test_integration.py +0 -0
  332. {keboola_cli-0.80.2 → keboola_cli-0.80.3}/tests/test_job_idempotency_store.py +0 -0
  333. {keboola_cli-0.80.2 → keboola_cli-0.80.3}/tests/test_json_utils.py +0 -0
  334. {keboola_cli-0.80.2 → keboola_cli-0.80.3}/tests/test_kai_cli.py +0 -0
  335. {keboola_cli-0.80.2 → keboola_cli-0.80.3}/tests/test_kai_service.py +0 -0
  336. {keboola_cli-0.80.2 → keboola_cli-0.80.3}/tests/test_lib.py +0 -0
  337. {keboola_cli-0.80.2 → keboola_cli-0.80.3}/tests/test_lib_device_enrollment.py +0 -0
  338. {keboola_cli-0.80.2 → keboola_cli-0.80.3}/tests/test_lineage_service.py +0 -0
  339. {keboola_cli-0.80.2 → keboola_cli-0.80.3}/tests/test_local_ai_chat.py +0 -0
  340. {keboola_cli-0.80.2 → keboola_cli-0.80.3}/tests/test_manage_client.py +0 -0
  341. {keboola_cli-0.80.2 → keboola_cli-0.80.3}/tests/test_manage_token_bulk.py +0 -0
  342. {keboola_cli-0.80.2 → keboola_cli-0.80.3}/tests/test_manage_token_cli.py +0 -0
  343. {keboola_cli-0.80.2 → keboola_cli-0.80.3}/tests/test_mcp_deprecation_warnings.py +0 -0
  344. {keboola_cli-0.80.2 → keboola_cli-0.80.3}/tests/test_mcp_parity_map.py +0 -0
  345. {keboola_cli-0.80.2 → keboola_cli-0.80.3}/tests/test_mcp_service.py +0 -0
  346. {keboola_cli-0.80.2 → keboola_cli-0.80.3}/tests/test_mcp_transport.py +0 -0
  347. {keboola_cli-0.80.2 → keboola_cli-0.80.3}/tests/test_member_cli.py +0 -0
  348. {keboola_cli-0.80.2 → keboola_cli-0.80.3}/tests/test_member_service.py +0 -0
  349. {keboola_cli-0.80.2 → keboola_cli-0.80.3}/tests/test_metastore_client.py +0 -0
  350. {keboola_cli-0.80.2 → keboola_cli-0.80.3}/tests/test_models.py +0 -0
  351. {keboola_cli-0.80.2 → keboola_cli-0.80.3}/tests/test_normalize_script.py +0 -0
  352. {keboola_cli-0.80.2 → keboola_cli-0.80.3}/tests/test_org_service.py +0 -0
  353. {keboola_cli-0.80.2 → keboola_cli-0.80.3}/tests/test_output.py +0 -0
  354. {keboola_cli-0.80.2 → keboola_cli-0.80.3}/tests/test_permissions.py +0 -0
  355. {keboola_cli-0.80.2 → keboola_cli-0.80.3}/tests/test_permissions_cli.py +0 -0
  356. {keboola_cli-0.80.2 → keboola_cli-0.80.3}/tests/test_pricing.py +0 -0
  357. {keboola_cli-0.80.2 → keboola_cli-0.80.3}/tests/test_project_edit.py +0 -0
  358. {keboola_cli-0.80.2 → keboola_cli-0.80.3}/tests/test_project_edit_cli.py +0 -0
  359. {keboola_cli-0.80.2 → keboola_cli-0.80.3}/tests/test_project_info_cli.py +0 -0
  360. {keboola_cli-0.80.2 → keboola_cli-0.80.3}/tests/test_project_info_service.py +0 -0
  361. {keboola_cli-0.80.2 → keboola_cli-0.80.3}/tests/test_repl.py +0 -0
  362. {keboola_cli-0.80.2 → keboola_cli-0.80.3}/tests/test_result_models.py +0 -0
  363. {keboola_cli-0.80.2 → keboola_cli-0.80.3}/tests/test_run_broadcaster.py +0 -0
  364. {keboola_cli-0.80.2 → keboola_cli-0.80.3}/tests/test_schedule_cli.py +0 -0
  365. {keboola_cli-0.80.2 → keboola_cli-0.80.3}/tests/test_schedule_service.py +0 -0
  366. {keboola_cli-0.80.2 → keboola_cli-0.80.3}/tests/test_scheduler_client.py +0 -0
  367. {keboola_cli-0.80.2 → keboola_cli-0.80.3}/tests/test_search_cli.py +0 -0
  368. {keboola_cli-0.80.2 → keboola_cli-0.80.3}/tests/test_search_service.py +0 -0
  369. {keboola_cli-0.80.2 → keboola_cli-0.80.3}/tests/test_semantic_layer_cli.py +0 -0
  370. {keboola_cli-0.80.2 → keboola_cli-0.80.3}/tests/test_semantic_layer_schema.py +0 -0
  371. {keboola_cli-0.80.2 → keboola_cli-0.80.3}/tests/test_semantic_layer_service.py +0 -0
  372. {keboola_cli-0.80.2 → keboola_cli-0.80.3}/tests/test_serve_banner_encoding.py +0 -0
  373. {keboola_cli-0.80.2 → keboola_cli-0.80.3}/tests/test_serve_conversation_id.py +0 -0
  374. {keboola_cli-0.80.2 → keboola_cli-0.80.3}/tests/test_serve_ui.py +0 -0
  375. {keboola_cli-0.80.2 → keboola_cli-0.80.3}/tests/test_server_router_calls.py +0 -0
  376. {keboola_cli-0.80.2 → keboola_cli-0.80.3}/tests/test_server_semantic_layer_routes_e2e.py +0 -0
  377. {keboola_cli-0.80.2 → keboola_cli-0.80.3}/tests/test_server_smoke.py +0 -0
  378. {keboola_cli-0.80.2 → keboola_cli-0.80.3}/tests/test_services.py +0 -0
  379. {keboola_cli-0.80.2 → keboola_cli-0.80.3}/tests/test_sharing_service.py +0 -0
  380. {keboola_cli-0.80.2 → keboola_cli-0.80.3}/tests/test_skill_frontmatter.py +0 -0
  381. {keboola_cli-0.80.2 → keboola_cli-0.80.3}/tests/test_sql_split.py +0 -0
  382. {keboola_cli-0.80.2 → keboola_cli-0.80.3}/tests/test_storage_clone.py +0 -0
  383. {keboola_cli-0.80.2 → keboola_cli-0.80.3}/tests/test_storage_create_table.py +0 -0
  384. {keboola_cli-0.80.2 → keboola_cli-0.80.3}/tests/test_storage_delete.py +0 -0
  385. {keboola_cli-0.80.2 → keboola_cli-0.80.3}/tests/test_storage_describe_cli.py +0 -0
  386. {keboola_cli-0.80.2 → keboola_cli-0.80.3}/tests/test_storage_describe_service.py +0 -0
  387. {keboola_cli-0.80.2 → keboola_cli-0.80.3}/tests/test_storage_empty_definition.py +0 -0
  388. {keboola_cli-0.80.2 → keboola_cli-0.80.3}/tests/test_storage_export_filters.py +0 -0
  389. {keboola_cli-0.80.2 → keboola_cli-0.80.3}/tests/test_storage_files.py +0 -0
  390. {keboola_cli-0.80.2 → keboola_cli-0.80.3}/tests/test_storage_snapshots.py +0 -0
  391. {keboola_cli-0.80.2 → keboola_cli-0.80.3}/tests/test_storage_swap.py +0 -0
  392. {keboola_cli-0.80.2 → keboola_cli-0.80.3}/tests/test_storage_tables.py +0 -0
  393. {keboola_cli-0.80.2 → keboola_cli-0.80.3}/tests/test_storage_truncate.py +0 -0
  394. {keboola_cli-0.80.2 → keboola_cli-0.80.3}/tests/test_storage_write.py +0 -0
  395. {keboola_cli-0.80.2 → keboola_cli-0.80.3}/tests/test_stream_cli.py +0 -0
  396. {keboola_cli-0.80.2 → keboola_cli-0.80.3}/tests/test_stream_client.py +0 -0
  397. {keboola_cli-0.80.2 → keboola_cli-0.80.3}/tests/test_stream_service.py +0 -0
  398. {keboola_cli-0.80.2 → keboola_cli-0.80.3}/tests/test_sync_branch_mapping.py +0 -0
  399. {keboola_cli-0.80.2 → keboola_cli-0.80.3}/tests/test_sync_cli.py +0 -0
  400. {keboola_cli-0.80.2 → keboola_cli-0.80.3}/tests/test_sync_clone.py +0 -0
  401. {keboola_cli-0.80.2 → keboola_cli-0.80.3}/tests/test_sync_code_extraction.py +0 -0
  402. {keboola_cli-0.80.2 → keboola_cli-0.80.3}/tests/test_sync_config_format.py +0 -0
  403. {keboola_cli-0.80.2 → keboola_cli-0.80.3}/tests/test_sync_diff_engine.py +0 -0
  404. {keboola_cli-0.80.2 → keboola_cli-0.80.3}/tests/test_sync_e2e.py +0 -0
  405. {keboola_cli-0.80.2 → keboola_cli-0.80.3}/tests/test_sync_encrypt.py +0 -0
  406. {keboola_cli-0.80.2 → keboola_cli-0.80.3}/tests/test_sync_force_pull_baseline.py +0 -0
  407. {keboola_cli-0.80.2 → keboola_cli-0.80.3}/tests/test_sync_manifest.py +0 -0
  408. {keboola_cli-0.80.2 → keboola_cli-0.80.3}/tests/test_sync_naming.py +0 -0
  409. {keboola_cli-0.80.2 → keboola_cli-0.80.3}/tests/test_sync_plaintext_audit.py +0 -0
  410. {keboola_cli-0.80.2 → keboola_cli-0.80.3}/tests/test_sync_reconcile.py +0 -0
  411. {keboola_cli-0.80.2 → keboola_cli-0.80.3}/tests/test_sync_secrets.py +0 -0
  412. {keboola_cli-0.80.2 → keboola_cli-0.80.3}/tests/test_sync_service.py +0 -0
  413. {keboola_cli-0.80.2 → keboola_cli-0.80.3}/tests/test_sync_storage_jobs.py +0 -0
  414. {keboola_cli-0.80.2 → keboola_cli-0.80.3}/tests/test_sync_version_script.py +0 -0
  415. {keboola_cli-0.80.2 → keboola_cli-0.80.3}/tests/test_token_cli.py +0 -0
  416. {keboola_cli-0.80.2 → keboola_cli-0.80.3}/tests/test_token_provider.py +0 -0
  417. {keboola_cli-0.80.2 → keboola_cli-0.80.3}/tests/test_token_service.py +0 -0
  418. {keboola_cli-0.80.2 → keboola_cli-0.80.3}/tests/test_tool_call_permissions.py +0 -0
  419. {keboola_cli-0.80.2 → keboola_cli-0.80.3}/tests/test_transformation_cli.py +0 -0
  420. {keboola_cli-0.80.2 → keboola_cli-0.80.3}/tests/test_transformation_ops.py +0 -0
  421. {keboola_cli-0.80.2 → keboola_cli-0.80.3}/tests/test_update_runner.py +0 -0
  422. {keboola_cli-0.80.2 → keboola_cli-0.80.3}/tests/test_variables_cli.py +0 -0
  423. {keboola_cli-0.80.2 → keboola_cli-0.80.3}/tests/test_variables_service.py +0 -0
  424. {keboola_cli-0.80.2 → keboola_cli-0.80.3}/tests/test_version_service.py +0 -0
  425. {keboola_cli-0.80.2 → keboola_cli-0.80.3}/tests/test_workspace_cli.py +0 -0
  426. {keboola_cli-0.80.2 → keboola_cli-0.80.3}/tests/test_workspace_gc.py +0 -0
  427. {keboola_cli-0.80.2 → keboola_cli-0.80.3}/tests/test_workspace_service.py +0 -0
  428. {keboola_cli-0.80.2 → keboola_cli-0.80.3}/tests/test_workspace_sql_helper.py +0 -0
  429. {keboola_cli-0.80.2 → keboola_cli-0.80.3}/web/README.md +0 -0
  430. {keboola_cli-0.80.2 → keboola_cli-0.80.3}/web/frontend/index.html +0 -0
  431. {keboola_cli-0.80.2 → keboola_cli-0.80.3}/web/frontend/package-lock.json +0 -0
  432. {keboola_cli-0.80.2 → keboola_cli-0.80.3}/web/frontend/package.json +0 -0
  433. {keboola_cli-0.80.2 → keboola_cli-0.80.3}/web/frontend/postcss.config.js +0 -0
  434. {keboola_cli-0.80.2 → keboola_cli-0.80.3}/web/frontend/src/App.tsx +0 -0
  435. {keboola_cli-0.80.2 → keboola_cli-0.80.3}/web/frontend/src/api/client.ts +0 -0
  436. {keboola_cli-0.80.2 → keboola_cli-0.80.3}/web/frontend/src/components/AgentRunView.tsx +0 -0
  437. {keboola_cli-0.80.2 → keboola_cli-0.80.3}/web/frontend/src/components/ConfirmModal.tsx +0 -0
  438. {keboola_cli-0.80.2 → keboola_cli-0.80.3}/web/frontend/src/components/Drawer.tsx +0 -0
  439. {keboola_cli-0.80.2 → keboola_cli-0.80.3}/web/frontend/src/components/Empty.tsx +0 -0
  440. {keboola_cli-0.80.2 → keboola_cli-0.80.3}/web/frontend/src/components/JsonView.tsx +0 -0
  441. {keboola_cli-0.80.2 → keboola_cli-0.80.3}/web/frontend/src/components/ManageTokenModal.tsx +0 -0
  442. {keboola_cli-0.80.2 → keboola_cli-0.80.3}/web/frontend/src/components/Table.tsx +0 -0
  443. {keboola_cli-0.80.2 → keboola_cli-0.80.3}/web/frontend/src/index.css +0 -0
  444. {keboola_cli-0.80.2 → keboola_cli-0.80.3}/web/frontend/src/layout/Shell.tsx +0 -0
  445. {keboola_cli-0.80.2 → keboola_cli-0.80.3}/web/frontend/src/layout/Sidebar.tsx +0 -0
  446. {keboola_cli-0.80.2 → keboola_cli-0.80.3}/web/frontend/src/layout/StatusBar.tsx +0 -0
  447. {keboola_cli-0.80.2 → keboola_cli-0.80.3}/web/frontend/src/layout/TopBar.tsx +0 -0
  448. {keboola_cli-0.80.2 → keboola_cli-0.80.3}/web/frontend/src/main.tsx +0 -0
  449. {keboola_cli-0.80.2 → keboola_cli-0.80.3}/web/frontend/src/pages/Agents.tsx +0 -0
  450. {keboola_cli-0.80.2 → keboola_cli-0.80.3}/web/frontend/src/pages/Branches.tsx +0 -0
  451. {keboola_cli-0.80.2 → keboola_cli-0.80.3}/web/frontend/src/pages/Changelog.tsx +0 -0
  452. {keboola_cli-0.80.2 → keboola_cli-0.80.3}/web/frontend/src/pages/Components.tsx +0 -0
  453. {keboola_cli-0.80.2 → keboola_cli-0.80.3}/web/frontend/src/pages/Configs.tsx +0 -0
  454. {keboola_cli-0.80.2 → keboola_cli-0.80.3}/web/frontend/src/pages/Dashboard.tsx +0 -0
  455. {keboola_cli-0.80.2 → keboola_cli-0.80.3}/web/frontend/src/pages/DataApps.tsx +0 -0
  456. {keboola_cli-0.80.2 → keboola_cli-0.80.3}/web/frontend/src/pages/Doctor.tsx +0 -0
  457. {keboola_cli-0.80.2 → keboola_cli-0.80.3}/web/frontend/src/pages/Encrypt.tsx +0 -0
  458. {keboola_cli-0.80.2 → keboola_cli-0.80.3}/web/frontend/src/pages/Flows.tsx +0 -0
  459. {keboola_cli-0.80.2 → keboola_cli-0.80.3}/web/frontend/src/pages/Jobs.tsx +0 -0
  460. {keboola_cli-0.80.2 → keboola_cli-0.80.3}/web/frontend/src/pages/Lineage.tsx +0 -0
  461. {keboola_cli-0.80.2 → keboola_cli-0.80.3}/web/frontend/src/pages/LocalAi.tsx +0 -0
  462. {keboola_cli-0.80.2 → keboola_cli-0.80.3}/web/frontend/src/pages/Mcp.tsx +0 -0
  463. {keboola_cli-0.80.2 → keboola_cli-0.80.3}/web/frontend/src/pages/Members.tsx +0 -0
  464. {keboola_cli-0.80.2 → keboola_cli-0.80.3}/web/frontend/src/pages/Org.tsx +0 -0
  465. {keboola_cli-0.80.2 → keboola_cli-0.80.3}/web/frontend/src/pages/Projects.tsx +0 -0
  466. {keboola_cli-0.80.2 → keboola_cli-0.80.3}/web/frontend/src/pages/Schedules.tsx +0 -0
  467. {keboola_cli-0.80.2 → keboola_cli-0.80.3}/web/frontend/src/pages/Search.tsx +0 -0
  468. {keboola_cli-0.80.2 → keboola_cli-0.80.3}/web/frontend/src/pages/SemanticLayer.tsx +0 -0
  469. {keboola_cli-0.80.2 → keboola_cli-0.80.3}/web/frontend/src/pages/SemanticLayerDialogs.tsx +0 -0
  470. {keboola_cli-0.80.2 → keboola_cli-0.80.3}/web/frontend/src/pages/Sharing.tsx +0 -0
  471. {keboola_cli-0.80.2 → keboola_cli-0.80.3}/web/frontend/src/pages/Storage.tsx +0 -0
  472. {keboola_cli-0.80.2 → keboola_cli-0.80.3}/web/frontend/src/pages/Streams.tsx +0 -0
  473. {keboola_cli-0.80.2 → keboola_cli-0.80.3}/web/frontend/src/pages/Workspaces.tsx +0 -0
  474. {keboola_cli-0.80.2 → keboola_cli-0.80.3}/web/frontend/src/state.tsx +0 -0
  475. {keboola_cli-0.80.2 → keboola_cli-0.80.3}/web/frontend/src/theme.tsx +0 -0
  476. {keboola_cli-0.80.2 → keboola_cli-0.80.3}/web/frontend/src/types.ts +0 -0
  477. {keboola_cli-0.80.2 → keboola_cli-0.80.3}/web/frontend/tailwind.config.ts +0 -0
  478. {keboola_cli-0.80.2 → keboola_cli-0.80.3}/web/frontend/tsconfig.json +0 -0
  479. {keboola_cli-0.80.2 → keboola_cli-0.80.3}/web/frontend/vite.config.ts +0 -0
@@ -1,6 +1,6 @@
1
1
  Metadata-Version: 2.5
2
2
  Name: keboola-cli
3
- Version: 0.80.2
3
+ Version: 0.80.3
4
4
  Summary: AI-friendly CLI for managing Keboola projects
5
5
  Author-email: Keboola <dev@keboola.com>
6
6
  License-Expression: MIT
@@ -1,6 +1,6 @@
1
1
  [project]
2
2
  name = "keboola-cli"
3
- version = "0.80.2"
3
+ version = "0.80.3"
4
4
  description = "AI-friendly CLI for managing Keboola projects"
5
5
  readme = "README.md"
6
6
  requires-python = ">=3.12"
@@ -24,6 +24,28 @@ from .constants import CHANGELOG_HEADLINE_MAX_CHARS
24
24
 
25
25
  # Ordered newest-first. Each value is a list of brief one-line descriptions.
26
26
  CHANGELOG: dict[str, list[str]] = {
27
+ "0.80.3": [
28
+ "Fix (#570): `kbagent lineage build` crashed with `UnicodeDecodeError` on "
29
+ "Windows when a transformation's `transform.sql` or `code.py` contained "
30
+ "non-ASCII text -- an accented word in a Czech comment was enough to abort "
31
+ "the whole graph. The reads used `Path.read_text()`, which decodes with "
32
+ "the platform default: cp1250 on a Czech box, where UTF-8's continuation "
33
+ "bytes are undefined. Keboola serves this content as UTF-8, so UTF-8 is "
34
+ "now explicit, which also makes a build reproducible across machines "
35
+ "instead of varying with the host locale. Files that genuinely hold "
36
+ "non-UTF-8 bytes -- a transformation edited locally and saved in the OS "
37
+ 'codepage -- decode with `errors="replace"`: table identifiers are '
38
+ "ASCII, so a mangled comment costs nothing and never costs the graph. The "
39
+ "`PYTHONUTF8=1` workaround is no longer needed. Thanks to "
40
+ "@papousek-radan for the report.",
41
+ "Fix (#570): the same unqualified `Path.read_text()` in "
42
+ "`dev-portal create --data` / `patch --value-file` and "
43
+ "`semantic-layer reference-data set --members-file` now reads UTF-8 too. "
44
+ "Those parse their input as data rather than scan it, so they stay "
45
+ "strict: a decode error there is honest and identical on every OS, "
46
+ "whereas the platform default silently produced different results per "
47
+ "machine.",
48
+ ],
27
49
  "0.80.2": [
28
50
  "Fix (#571): the deferred Windows self-update never applied. kbagent has "
29
51
  "not auto-updated on Windows since the deferred path landed in 0.78.0 -- "
@@ -111,7 +111,11 @@ def _print_reference_data_delete_result(console: Console, data: dict) -> None:
111
111
  def _load_members(formatter: Any, members_file: str) -> list[dict]:
112
112
  """Read a JSON array of member objects from a file or ``-`` (stdin)."""
113
113
  try:
114
- raw = sys.stdin.read() if members_file == "-" else Path(members_file).read_text()
114
+ raw = (
115
+ sys.stdin.read()
116
+ if members_file == "-"
117
+ else Path(members_file).read_text(encoding="utf-8")
118
+ )
115
119
  except OSError as exc:
116
120
  formatter.error(
117
121
  message=f"Could not read members file {members_file!r}: {exc}",
@@ -317,7 +317,7 @@ def _load_payload(data: str | None) -> dict:
317
317
  raise typer.BadParameter("--data is required")
318
318
  if data == "-":
319
319
  return json.loads(sys.stdin.read())
320
- return json.loads(Path(data).read_text())
320
+ return json.loads(Path(data).read_text(encoding="utf-8"))
321
321
 
322
322
 
323
323
  def _render_pending(formatter: OutputFormatter, pending: PendingWrite) -> None:
@@ -435,7 +435,7 @@ def patch_cmd(
435
435
  payload = _load_payload(data)
436
436
  elif property_:
437
437
  if value_file:
438
- raw = Path(value_file).read_text()
438
+ raw = Path(value_file).read_text(encoding="utf-8")
439
439
  elif value is not None:
440
440
  raw = value
441
441
  else:
@@ -48,6 +48,23 @@ _QUALIFIED_3 = re.compile(r'"KBC_USE4_(\d+)"\s*\.\s*"([^"]+)"\s*\.\s*"([^"]+)"')
48
48
  _QUALIFIED_2 = re.compile(r'"([^"]+)"\s*\.\s*"([^"]+)"')
49
49
 
50
50
 
51
+ def _read_source(path: Path) -> str:
52
+ """Read a transformation's code, whatever bytes the file actually holds.
53
+
54
+ ``Path.read_text()`` decodes with the platform default, which on a Czech or
55
+ Polish Windows box is cp1250 -- so a single accented character in a SQL
56
+ comment aborted the whole lineage build with ``UnicodeDecodeError`` (issue
57
+ #570). Keboola serves this content as UTF-8, so UTF-8 is the right guess
58
+ everywhere, and forcing it also makes a build reproducible across machines.
59
+
60
+ ``errors="replace"`` because the goal here is finding table references: a
61
+ file that genuinely holds non-UTF-8 bytes (a locally-edited transformation
62
+ saved in the OS codepage) should cost a mangled comment, never the entire
63
+ graph. Table identifiers are ASCII, so nothing load-bearing is lost.
64
+ """
65
+ return path.read_text(encoding="utf-8", errors="replace")
66
+
67
+
51
68
  def extract_sql_table_refs(sql: str, project_id: int) -> list[tuple[int, str, str]]:
52
69
  """Extract table references from Snowflake SQL using a state machine.
53
70
 
@@ -632,10 +649,10 @@ class DeepLineageService:
632
649
  code_py = full_path / "code.py"
633
650
 
634
651
  if transform_sql.exists():
635
- code = transform_sql.read_text()
652
+ code = _read_source(transform_sql)
636
653
  code_type = "sql"
637
654
  elif code_py.exists():
638
- code = code_py.read_text()
655
+ code = _read_source(code_py)
639
656
  code_type = "python"
640
657
 
641
658
  # Include config row mappings
@@ -4,6 +4,7 @@ import json
4
4
  from pathlib import Path
5
5
  from unittest.mock import patch
6
6
 
7
+ import pytest
7
8
  import yaml
8
9
 
9
10
  from keboola_agent_cli.config_store import ConfigStore
@@ -15,6 +16,7 @@ from keboola_agent_cli.services.deep_lineage_service import (
15
16
  Table,
16
17
  _collect_create_targets,
17
18
  _collect_cte_names,
19
+ _read_source,
18
20
  _strip_comments_and_strings,
19
21
  extract_sql_table_refs,
20
22
  )
@@ -939,3 +941,48 @@ class TestRenderErDiagramXssRegression:
939
941
  )
940
942
  assert "<img" not in rendered
941
943
  assert "&lt;img" in rendered
944
+
945
+
946
+ class TestSourceReadsAreUtf8:
947
+ """Transformation code must decode the same on every host (issue #570).
948
+
949
+ `Path.read_text()` uses the platform default encoding. On a Czech or Polish
950
+ Windows box that is cp1250, so one accented character in a SQL comment
951
+ aborted the entire `lineage build` with `UnicodeDecodeError`. These run
952
+ everywhere by driving the decode explicitly rather than by depending on the
953
+ host's locale.
954
+ """
955
+
956
+ def test_utf8_content_survives_a_cp1250_default(
957
+ self, tmp_path: Path, monkeypatch: pytest.MonkeyPatch
958
+ ) -> None:
959
+ """The exact reported crash: UTF-8 bytes read on a cp1250 host."""
960
+ sql = tmp_path / "transform.sql"
961
+ # U+0159 encodes to 0xC5 0x99 in UTF-8; 0x99 is undefined in cp1250,
962
+ # which is what raised in the report.
963
+ sql.write_bytes("-- příprava dat\nSELECT 1 FROM t;\n".encode())
964
+
965
+ real_read_text = Path.read_text
966
+
967
+ def cp1250_default(
968
+ self: Path, encoding: str | None = None, errors: str | None = None
969
+ ) -> str:
970
+ # Mimic a Windows host: no explicit encoding means cp1250.
971
+ return real_read_text(self, encoding=encoding or "cp1250", errors=errors)
972
+
973
+ monkeypatch.setattr(Path, "read_text", cp1250_default)
974
+
975
+ code = _read_source(sql)
976
+ assert "SELECT 1 FROM t" in code
977
+ assert "příprava" in code, "UTF-8 content must round-trip intact"
978
+
979
+ def test_genuinely_undecodable_bytes_do_not_abort_the_build(self, tmp_path: Path) -> None:
980
+ """A locally-edited file saved in the OS codepage costs a comment, not the graph."""
981
+ sql = tmp_path / "transform.sql"
982
+ # 0x81 is invalid UTF-8 and is the byte from the report's traceback.
983
+ sql.write_bytes(b"-- koment\x81\nSELECT 1 FROM in.c_bucket.tbl;\n")
984
+
985
+ code = _read_source(sql)
986
+
987
+ # The table reference -- the only thing lineage actually needs -- survives.
988
+ assert "in.c_bucket.tbl" in code
File without changes
File without changes
File without changes
File without changes
File without changes