airbyte-internal-ops 0.6.0__tar.gz → 0.7.0__tar.gz

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (445) hide show
  1. {airbyte_internal_ops-0.6.0 → airbyte_internal_ops-0.7.0}/PKG-INFO +4 -1
  2. {airbyte_internal_ops-0.6.0 → airbyte_internal_ops-0.7.0}/conftest.py +0 -2
  3. {airbyte_internal_ops-0.6.0 → airbyte_internal_ops-0.7.0}/infra/sentry/__main__.py +40 -2
  4. {airbyte_internal_ops-0.6.0 → airbyte_internal_ops-0.7.0}/pyproject.toml +3 -0
  5. {airbyte_internal_ops-0.6.0 → airbyte_internal_ops-0.7.0}/ruff.toml +2 -2
  6. airbyte_internal_ops-0.7.0/src/airbyte_ops_mcp/_sentry.py +101 -0
  7. {airbyte_internal_ops-0.6.0 → airbyte_internal_ops-0.7.0}/src/airbyte_ops_mcp/cli/app.py +1 -1
  8. airbyte_internal_ops-0.6.0/src/airbyte_ops_mcp/cli/repo.py → airbyte_internal_ops-0.7.0/src/airbyte_ops_mcp/cli/local.py +131 -8
  9. airbyte_internal_ops-0.7.0/src/airbyte_ops_mcp/connector_ops/__init__.py +17 -0
  10. airbyte_internal_ops-0.7.0/src/airbyte_ops_mcp/connector_ops/utils.py +859 -0
  11. {airbyte_internal_ops-0.6.0/src/airbyte_ops_mcp/_legacy/airbyte_ci → airbyte_internal_ops-0.7.0/src/airbyte_ops_mcp}/connector_qa/checks/assets.py +4 -5
  12. {airbyte_internal_ops-0.6.0/src/airbyte_ops_mcp/_legacy/airbyte_ci → airbyte_internal_ops-0.7.0/src/airbyte_ops_mcp}/connector_qa/checks/documentation/__init__.py +1 -1
  13. {airbyte_internal_ops-0.6.0/src/airbyte_ops_mcp/_legacy/airbyte_ci → airbyte_internal_ops-0.7.0/src/airbyte_ops_mcp}/connector_qa/checks/documentation/documentation.py +23 -22
  14. {airbyte_internal_ops-0.6.0/src/airbyte_ops_mcp/_legacy/airbyte_ci → airbyte_internal_ops-0.7.0/src/airbyte_ops_mcp}/connector_qa/checks/documentation/models.py +7 -7
  15. {airbyte_internal_ops-0.6.0/src/airbyte_ops_mcp/_legacy/airbyte_ci → airbyte_internal_ops-0.7.0/src/airbyte_ops_mcp}/connector_qa/checks/metadata.py +15 -15
  16. {airbyte_internal_ops-0.6.0/src/airbyte_ops_mcp/_legacy/airbyte_ci → airbyte_internal_ops-0.7.0/src/airbyte_ops_mcp}/connector_qa/checks/packaging.py +11 -9
  17. {airbyte_internal_ops-0.6.0/src/airbyte_ops_mcp/_legacy/airbyte_ci → airbyte_internal_ops-0.7.0/src/airbyte_ops_mcp}/connector_qa/checks/security.py +16 -20
  18. {airbyte_internal_ops-0.6.0/src/airbyte_ops_mcp/_legacy/airbyte_ci → airbyte_internal_ops-0.7.0/src/airbyte_ops_mcp}/connector_qa/checks/version.py +94 -18
  19. {airbyte_internal_ops-0.6.0/src/airbyte_ops_mcp/_legacy/airbyte_ci → airbyte_internal_ops-0.7.0/src/airbyte_ops_mcp}/connector_qa/cli.py +6 -8
  20. {airbyte_internal_ops-0.6.0/src/airbyte_ops_mcp/_legacy/airbyte_ci → airbyte_internal_ops-0.7.0/src/airbyte_ops_mcp}/connector_qa/models.py +7 -8
  21. {airbyte_internal_ops-0.6.0/src/airbyte_ops_mcp/_legacy/airbyte_ci → airbyte_internal_ops-0.7.0/src/airbyte_ops_mcp}/connector_qa/utils.py +2 -2
  22. {airbyte_internal_ops-0.6.0 → airbyte_internal_ops-0.7.0}/src/airbyte_ops_mcp/mcp/_guidance.py +37 -0
  23. {airbyte_internal_ops-0.6.0 → airbyte_internal_ops-0.7.0}/src/airbyte_ops_mcp/mcp/cloud_connector_versions.py +50 -10
  24. {airbyte_internal_ops-0.6.0 → airbyte_internal_ops-0.7.0}/src/airbyte_ops_mcp/mcp/server.py +5 -0
  25. {airbyte_internal_ops-0.6.0 → airbyte_internal_ops-0.7.0}/tests/legacy/airbyte_ci/connector_qa/integration_tests/test_documentation.py +1 -1
  26. {airbyte_internal_ops-0.6.0 → airbyte_internal_ops-0.7.0}/tests/legacy/airbyte_ci/connector_qa/unit_tests/test_checks/test_version.py +5 -7
  27. {airbyte_internal_ops-0.6.0 → airbyte_internal_ops-0.7.0}/tests/legacy/airbyte_ci/connector_qa/unit_tests/test_models.py +4 -4
  28. airbyte_internal_ops-0.7.0/tests/test_sentry.py +109 -0
  29. {airbyte_internal_ops-0.6.0 → airbyte_internal_ops-0.7.0}/uv.lock +19 -0
  30. {airbyte_internal_ops-0.6.0 → airbyte_internal_ops-0.7.0}/.env.template +0 -0
  31. {airbyte_internal_ops-0.6.0 → airbyte_internal_ops-0.7.0}/.github/copilot-instructions.md +0 -0
  32. {airbyte_internal_ops-0.6.0 → airbyte_internal_ops-0.7.0}/.github/dependabot.yml +0 -0
  33. {airbyte_internal_ops-0.6.0 → airbyte_internal_ops-0.7.0}/.github/pr-welcome-message.md +0 -0
  34. {airbyte_internal_ops-0.6.0 → airbyte_internal_ops-0.7.0}/.github/workflows/autofix-command.yml +0 -0
  35. {airbyte_internal_ops-0.6.0 → airbyte_internal_ops-0.7.0}/.github/workflows/connector-regression-test.yml +0 -0
  36. {airbyte_internal_ops-0.6.0 → airbyte_internal_ops-0.7.0}/.github/workflows/format-check.yml +0 -0
  37. {airbyte_internal_ops-0.6.0 → airbyte_internal_ops-0.7.0}/.github/workflows/lint-check.yml +0 -0
  38. {airbyte_internal_ops-0.6.0 → airbyte_internal_ops-0.7.0}/.github/workflows/lock-command.yml +0 -0
  39. {airbyte_internal_ops-0.6.0 → airbyte_internal_ops-0.7.0}/.github/workflows/pdoc_preview.yml +0 -0
  40. {airbyte_internal_ops-0.6.0 → airbyte_internal_ops-0.7.0}/.github/workflows/pdoc_publish.yml +0 -0
  41. {airbyte_internal_ops-0.6.0 → airbyte_internal_ops-0.7.0}/.github/workflows/poe-command.yml +0 -0
  42. {airbyte_internal_ops-0.6.0 → airbyte_internal_ops-0.7.0}/.github/workflows/pr-welcome.yml +0 -0
  43. {airbyte_internal_ops-0.6.0 → airbyte_internal_ops-0.7.0}/.github/workflows/publish.yml +0 -0
  44. {airbyte_internal_ops-0.6.0 → airbyte_internal_ops-0.7.0}/.github/workflows/pytest-fast.yml +0 -0
  45. {airbyte_internal_ops-0.6.0 → airbyte_internal_ops-0.7.0}/.github/workflows/pytest-matrix.yml +0 -0
  46. {airbyte_internal_ops-0.6.0 → airbyte_internal_ops-0.7.0}/.github/workflows/regression-tests-ci.yml +0 -0
  47. {airbyte_internal_ops-0.6.0 → airbyte_internal_ops-0.7.0}/.github/workflows/release-drafter.yml +0 -0
  48. {airbyte_internal_ops-0.6.0 → airbyte_internal_ops-0.7.0}/.github/workflows/semantic-pr-check.yml +0 -0
  49. {airbyte_internal_ops-0.6.0 → airbyte_internal_ops-0.7.0}/.github/workflows/sentry-apply-command.yml +0 -0
  50. {airbyte_internal_ops-0.6.0 → airbyte_internal_ops-0.7.0}/.github/workflows/sentry-preview.yml +0 -0
  51. {airbyte_internal_ops-0.6.0 → airbyte_internal_ops-0.7.0}/.github/workflows/slash-command-dispatch.yml +0 -0
  52. {airbyte_internal_ops-0.6.0 → airbyte_internal_ops-0.7.0}/.github/workflows/tk-todo-check.yml +0 -0
  53. {airbyte_internal_ops-0.6.0 → airbyte_internal_ops-0.7.0}/.github/workflows/validate-build.yml +0 -0
  54. {airbyte_internal_ops-0.6.0 → airbyte_internal_ops-0.7.0}/.gitignore +0 -0
  55. {airbyte_internal_ops-0.6.0 → airbyte_internal_ops-0.7.0}/.mcp.json.template +0 -0
  56. {airbyte_internal_ops-0.6.0 → airbyte_internal_ops-0.7.0}/CONTRIBUTING.md +0 -0
  57. {airbyte_internal_ops-0.6.0 → airbyte_internal_ops-0.7.0}/README.md +0 -0
  58. {airbyte_internal_ops-0.6.0 → airbyte_internal_ops-0.7.0}/docs/.gitignore +0 -0
  59. {airbyte_internal_ops-0.6.0 → airbyte_internal_ops-0.7.0}/docs/generate.py +0 -0
  60. {airbyte_internal_ops-0.6.0 → airbyte_internal_ops-0.7.0}/docs/templates/custom.css +0 -0
  61. {airbyte_internal_ops-0.6.0 → airbyte_internal_ops-0.7.0}/docs/templates/theme.css +0 -0
  62. {airbyte_internal_ops-0.6.0 → airbyte_internal_ops-0.7.0}/infra/sentry/.gitignore +0 -0
  63. {airbyte_internal_ops-0.6.0 → airbyte_internal_ops-0.7.0}/infra/sentry/CONTRIBUTING.md +0 -0
  64. {airbyte_internal_ops-0.6.0 → airbyte_internal_ops-0.7.0}/infra/sentry/Pulumi.prod.yaml +0 -0
  65. {airbyte_internal_ops-0.6.0 → airbyte_internal_ops-0.7.0}/infra/sentry/Pulumi.yaml +0 -0
  66. {airbyte_internal_ops-0.6.0 → airbyte_internal_ops-0.7.0}/infra/sentry/README.md +0 -0
  67. {airbyte_internal_ops-0.6.0 → airbyte_internal_ops-0.7.0}/infra/sentry/requirements.txt +0 -0
  68. {airbyte_internal_ops-0.6.0 → airbyte_internal_ops-0.7.0}/poe_tasks.toml +0 -0
  69. {airbyte_internal_ops-0.6.0 → airbyte_internal_ops-0.7.0}/pyrefly.toml +0 -0
  70. {airbyte_internal_ops-0.6.0 → airbyte_internal_ops-0.7.0}/pytest.ini +0 -0
  71. {airbyte_internal_ops-0.6.0 → airbyte_internal_ops-0.7.0}/src/airbyte_ops_mcp/__init__.py +0 -0
  72. {airbyte_internal_ops-0.6.0 → airbyte_internal_ops-0.7.0}/src/airbyte_ops_mcp/_legacy/__init__.py +0 -0
  73. {airbyte_internal_ops-0.6.0 → airbyte_internal_ops-0.7.0}/src/airbyte_ops_mcp/_legacy/airbyte_ci/README.md +0 -0
  74. {airbyte_internal_ops-0.6.0 → airbyte_internal_ops-0.7.0}/src/airbyte_ops_mcp/_legacy/airbyte_ci/connector_erd_generator/README.md +0 -0
  75. {airbyte_internal_ops-0.6.0 → airbyte_internal_ops-0.7.0}/src/airbyte_ops_mcp/_legacy/airbyte_ci/connector_erd_generator/__init__.py +0 -0
  76. {airbyte_internal_ops-0.6.0 → airbyte_internal_ops-0.7.0}/src/airbyte_ops_mcp/_legacy/airbyte_ci/connector_erd_generator/dbml_assembler.py +0 -0
  77. {airbyte_internal_ops-0.6.0 → airbyte_internal_ops-0.7.0}/src/airbyte_ops_mcp/_legacy/airbyte_ci/connector_erd_generator/erd_service.py +0 -0
  78. {airbyte_internal_ops-0.6.0 → airbyte_internal_ops-0.7.0}/src/airbyte_ops_mcp/_legacy/airbyte_ci/connector_erd_generator/relationships.py +0 -0
  79. {airbyte_internal_ops-0.6.0 → airbyte_internal_ops-0.7.0}/src/airbyte_ops_mcp/_legacy/airbyte_ci/connector_insights/README.md +0 -0
  80. {airbyte_internal_ops-0.6.0 → airbyte_internal_ops-0.7.0}/src/airbyte_ops_mcp/_legacy/airbyte_ci/connector_insights/__init__.py +0 -0
  81. {airbyte_internal_ops-0.6.0 → airbyte_internal_ops-0.7.0}/src/airbyte_ops_mcp/_legacy/airbyte_ci/connector_insights/cli.py +0 -0
  82. {airbyte_internal_ops-0.6.0 → airbyte_internal_ops-0.7.0}/src/airbyte_ops_mcp/_legacy/airbyte_ci/connector_insights/hacks.py +0 -0
  83. {airbyte_internal_ops-0.6.0 → airbyte_internal_ops-0.7.0}/src/airbyte_ops_mcp/_legacy/airbyte_ci/connector_insights/insights.py +0 -0
  84. {airbyte_internal_ops-0.6.0 → airbyte_internal_ops-0.7.0}/src/airbyte_ops_mcp/_legacy/airbyte_ci/connector_insights/models.py +0 -0
  85. {airbyte_internal_ops-0.6.0 → airbyte_internal_ops-0.7.0}/src/airbyte_ops_mcp/_legacy/airbyte_ci/connector_insights/pylint.py +0 -0
  86. {airbyte_internal_ops-0.6.0 → airbyte_internal_ops-0.7.0}/src/airbyte_ops_mcp/_legacy/airbyte_ci/connector_insights/pylint_plugins/cdk_deprecation_checkers.py +0 -0
  87. {airbyte_internal_ops-0.6.0 → airbyte_internal_ops-0.7.0}/src/airbyte_ops_mcp/_legacy/airbyte_ci/connector_insights/result_backends.py +0 -0
  88. {airbyte_internal_ops-0.6.0 → airbyte_internal_ops-0.7.0}/src/airbyte_ops_mcp/_legacy/airbyte_ci/connector_insights/utils.py +0 -0
  89. {airbyte_internal_ops-0.6.0 → airbyte_internal_ops-0.7.0}/src/airbyte_ops_mcp/_legacy/airbyte_ci/connector_ops/README.md +0 -0
  90. {airbyte_internal_ops-0.6.0 → airbyte_internal_ops-0.7.0}/src/airbyte_ops_mcp/_legacy/airbyte_ci/connector_ops/__init__.py +0 -0
  91. {airbyte_internal_ops-0.6.0 → airbyte_internal_ops-0.7.0}/src/airbyte_ops_mcp/_legacy/airbyte_ci/connector_ops/utils.py +0 -0
  92. {airbyte_internal_ops-0.6.0 → airbyte_internal_ops-0.7.0}/src/airbyte_ops_mcp/_legacy/airbyte_ci/connector_pipelines/DELETEME-dagger/README.md +0 -0
  93. {airbyte_internal_ops-0.6.0 → airbyte_internal_ops-0.7.0}/src/airbyte_ops_mcp/_legacy/airbyte_ci/connector_pipelines/DELETEME-dagger/actions/__init__.py +0 -0
  94. {airbyte_internal_ops-0.6.0 → airbyte_internal_ops-0.7.0}/src/airbyte_ops_mcp/_legacy/airbyte_ci/connector_pipelines/DELETEME-dagger/actions/connector/hooks.py +0 -0
  95. {airbyte_internal_ops-0.6.0 → airbyte_internal_ops-0.7.0}/src/airbyte_ops_mcp/_legacy/airbyte_ci/connector_pipelines/DELETEME-dagger/actions/connector/normalization.py +0 -0
  96. {airbyte_internal_ops-0.6.0 → airbyte_internal_ops-0.7.0}/src/airbyte_ops_mcp/_legacy/airbyte_ci/connector_pipelines/DELETEME-dagger/actions/python/common.py +0 -0
  97. {airbyte_internal_ops-0.6.0 → airbyte_internal_ops-0.7.0}/src/airbyte_ops_mcp/_legacy/airbyte_ci/connector_pipelines/DELETEME-dagger/actions/python/pipx.py +0 -0
  98. {airbyte_internal_ops-0.6.0 → airbyte_internal_ops-0.7.0}/src/airbyte_ops_mcp/_legacy/airbyte_ci/connector_pipelines/DELETEME-dagger/actions/python/poetry.py +0 -0
  99. {airbyte_internal_ops-0.6.0 → airbyte_internal_ops-0.7.0}/src/airbyte_ops_mcp/_legacy/airbyte_ci/connector_pipelines/DELETEME-dagger/actions/remote_storage.py +0 -0
  100. {airbyte_internal_ops-0.6.0 → airbyte_internal_ops-0.7.0}/src/airbyte_ops_mcp/_legacy/airbyte_ci/connector_pipelines/DELETEME-dagger/actions/secrets.py +0 -0
  101. {airbyte_internal_ops-0.6.0 → airbyte_internal_ops-0.7.0}/src/airbyte_ops_mcp/_legacy/airbyte_ci/connector_pipelines/DELETEME-dagger/actions/system/common.py +0 -0
  102. {airbyte_internal_ops-0.6.0 → airbyte_internal_ops-0.7.0}/src/airbyte_ops_mcp/_legacy/airbyte_ci/connector_pipelines/DELETEME-dagger/actions/system/docker.py +0 -0
  103. {airbyte_internal_ops-0.6.0 → airbyte_internal_ops-0.7.0}/src/airbyte_ops_mcp/_legacy/airbyte_ci/connector_pipelines/DELETEME-dagger/containers/git.py +0 -0
  104. {airbyte_internal_ops-0.6.0 → airbyte_internal_ops-0.7.0}/src/airbyte_ops_mcp/_legacy/airbyte_ci/connector_pipelines/DELETEME-dagger/containers/internal_tools.py +0 -0
  105. {airbyte_internal_ops-0.6.0 → airbyte_internal_ops-0.7.0}/src/airbyte_ops_mcp/_legacy/airbyte_ci/connector_pipelines/DELETEME-dagger/containers/java.py +0 -0
  106. {airbyte_internal_ops-0.6.0 → airbyte_internal_ops-0.7.0}/src/airbyte_ops_mcp/_legacy/airbyte_ci/connector_pipelines/DELETEME-dagger/containers/python.py +0 -0
  107. {airbyte_internal_ops-0.6.0 → airbyte_internal_ops-0.7.0}/src/airbyte_ops_mcp/_legacy/airbyte_ci/connector_pipelines/DELETEME-dagger-helpers/__init__.py +0 -0
  108. {airbyte_internal_ops-0.6.0 → airbyte_internal_ops-0.7.0}/src/airbyte_ops_mcp/_legacy/airbyte_ci/connector_pipelines/DELETEME-dagger-helpers/cache_keys.py +0 -0
  109. {airbyte_internal_ops-0.6.0 → airbyte_internal_ops-0.7.0}/src/airbyte_ops_mcp/_legacy/airbyte_ci/connector_pipelines/DELETEME-dagger-helpers/cli.py +0 -0
  110. {airbyte_internal_ops-0.6.0 → airbyte_internal_ops-0.7.0}/src/airbyte_ops_mcp/_legacy/airbyte_ci/connector_pipelines/DELETEME-dagger-helpers/connectors/__init__.py +0 -0
  111. {airbyte_internal_ops-0.6.0 → airbyte_internal_ops-0.7.0}/src/airbyte_ops_mcp/_legacy/airbyte_ci/connector_pipelines/DELETEME-dagger-helpers/connectors/cdk_helpers.py +0 -0
  112. {airbyte_internal_ops-0.6.0 → airbyte_internal_ops-0.7.0}/src/airbyte_ops_mcp/_legacy/airbyte_ci/connector_pipelines/DELETEME-dagger-helpers/connectors/command.py +0 -0
  113. {airbyte_internal_ops-0.6.0 → airbyte_internal_ops-0.7.0}/src/airbyte_ops_mcp/_legacy/airbyte_ci/connector_pipelines/DELETEME-dagger-helpers/connectors/dagger_fs.py +0 -0
  114. {airbyte_internal_ops-0.6.0 → airbyte_internal_ops-0.7.0}/src/airbyte_ops_mcp/_legacy/airbyte_ci/connector_pipelines/DELETEME-dagger-helpers/connectors/format.py +0 -0
  115. {airbyte_internal_ops-0.6.0 → airbyte_internal_ops-0.7.0}/src/airbyte_ops_mcp/_legacy/airbyte_ci/connector_pipelines/DELETEME-dagger-helpers/connectors/modifed.py +0 -0
  116. {airbyte_internal_ops-0.6.0 → airbyte_internal_ops-0.7.0}/src/airbyte_ops_mcp/_legacy/airbyte_ci/connector_pipelines/DELETEME-dagger-helpers/connectors/yaml.py +0 -0
  117. {airbyte_internal_ops-0.6.0 → airbyte_internal_ops-0.7.0}/src/airbyte_ops_mcp/_legacy/airbyte_ci/connector_pipelines/DELETEME-dagger-helpers/execution/__init__.py +0 -0
  118. {airbyte_internal_ops-0.6.0 → airbyte_internal_ops-0.7.0}/src/airbyte_ops_mcp/_legacy/airbyte_ci/connector_pipelines/DELETEME-dagger-helpers/execution/argument_parsing.py +0 -0
  119. {airbyte_internal_ops-0.6.0 → airbyte_internal_ops-0.7.0}/src/airbyte_ops_mcp/_legacy/airbyte_ci/connector_pipelines/DELETEME-dagger-helpers/execution/run_steps.py +0 -0
  120. {airbyte_internal_ops-0.6.0 → airbyte_internal_ops-0.7.0}/src/airbyte_ops_mcp/_legacy/airbyte_ci/connector_pipelines/DELETEME-dagger-helpers/gcs.py +0 -0
  121. {airbyte_internal_ops-0.6.0 → airbyte_internal_ops-0.7.0}/src/airbyte_ops_mcp/_legacy/airbyte_ci/connector_pipelines/DELETEME-dagger-helpers/git.py +0 -0
  122. {airbyte_internal_ops-0.6.0 → airbyte_internal_ops-0.7.0}/src/airbyte_ops_mcp/_legacy/airbyte_ci/connector_pipelines/DELETEME-dagger-helpers/github.py +0 -0
  123. {airbyte_internal_ops-0.6.0 → airbyte_internal_ops-0.7.0}/src/airbyte_ops_mcp/_legacy/airbyte_ci/connector_pipelines/DELETEME-dagger-helpers/pip.py +0 -0
  124. {airbyte_internal_ops-0.6.0 → airbyte_internal_ops-0.7.0}/src/airbyte_ops_mcp/_legacy/airbyte_ci/connector_pipelines/DELETEME-dagger-helpers/sentry_utils.py +0 -0
  125. {airbyte_internal_ops-0.6.0 → airbyte_internal_ops-0.7.0}/src/airbyte_ops_mcp/_legacy/airbyte_ci/connector_pipelines/DELETEME-dagger-helpers/slack.py +0 -0
  126. {airbyte_internal_ops-0.6.0 → airbyte_internal_ops-0.7.0}/src/airbyte_ops_mcp/_legacy/airbyte_ci/connector_pipelines/DELETEME-dagger-helpers/utils.py +0 -0
  127. {airbyte_internal_ops-0.6.0 → airbyte_internal_ops-0.7.0}/src/airbyte_ops_mcp/_legacy/airbyte_ci/connector_pipelines/README.md +0 -0
  128. {airbyte_internal_ops-0.6.0 → airbyte_internal_ops-0.7.0}/src/airbyte_ops_mcp/_legacy/airbyte_ci/connector_pipelines/__init__.py +0 -0
  129. {airbyte_internal_ops-0.6.0 → airbyte_internal_ops-0.7.0}/src/airbyte_ops_mcp/_legacy/airbyte_ci/connector_pipelines/airbyte_ci/__init__.py +0 -0
  130. {airbyte_internal_ops-0.6.0 → airbyte_internal_ops-0.7.0}/src/airbyte_ops_mcp/_legacy/airbyte_ci/connector_pipelines/airbyte_ci/connectors/__init__.py +0 -0
  131. {airbyte_internal_ops-0.6.0 → airbyte_internal_ops-0.7.0}/src/airbyte_ops_mcp/_legacy/airbyte_ci/connector_pipelines/airbyte_ci/connectors/build_image/__init__.py +0 -0
  132. {airbyte_internal_ops-0.6.0 → airbyte_internal_ops-0.7.0}/src/airbyte_ops_mcp/_legacy/airbyte_ci/connector_pipelines/airbyte_ci/connectors/build_image/commands.py +0 -0
  133. {airbyte_internal_ops-0.6.0 → airbyte_internal_ops-0.7.0}/src/airbyte_ops_mcp/_legacy/airbyte_ci/connector_pipelines/airbyte_ci/connectors/build_image/pipeline.py +0 -0
  134. {airbyte_internal_ops-0.6.0 → airbyte_internal_ops-0.7.0}/src/airbyte_ops_mcp/_legacy/airbyte_ci/connector_pipelines/airbyte_ci/connectors/build_image/steps/__init__.py +0 -0
  135. {airbyte_internal_ops-0.6.0 → airbyte_internal_ops-0.7.0}/src/airbyte_ops_mcp/_legacy/airbyte_ci/connector_pipelines/airbyte_ci/connectors/build_image/steps/build_customization.py +0 -0
  136. {airbyte_internal_ops-0.6.0 → airbyte_internal_ops-0.7.0}/src/airbyte_ops_mcp/_legacy/airbyte_ci/connector_pipelines/airbyte_ci/connectors/build_image/steps/common.py +0 -0
  137. {airbyte_internal_ops-0.6.0 → airbyte_internal_ops-0.7.0}/src/airbyte_ops_mcp/_legacy/airbyte_ci/connector_pipelines/airbyte_ci/connectors/build_image/steps/java_connectors.py +0 -0
  138. {airbyte_internal_ops-0.6.0 → airbyte_internal_ops-0.7.0}/src/airbyte_ops_mcp/_legacy/airbyte_ci/connector_pipelines/airbyte_ci/connectors/build_image/steps/manifest_only_connectors.py +0 -0
  139. {airbyte_internal_ops-0.6.0 → airbyte_internal_ops-0.7.0}/src/airbyte_ops_mcp/_legacy/airbyte_ci/connector_pipelines/airbyte_ci/connectors/build_image/steps/normalization.py +0 -0
  140. {airbyte_internal_ops-0.6.0 → airbyte_internal_ops-0.7.0}/src/airbyte_ops_mcp/_legacy/airbyte_ci/connector_pipelines/airbyte_ci/connectors/build_image/steps/python_connectors.py +0 -0
  141. {airbyte_internal_ops-0.6.0 → airbyte_internal_ops-0.7.0}/src/airbyte_ops_mcp/_legacy/airbyte_ci/connector_pipelines/airbyte_ci/connectors/commands.py +0 -0
  142. {airbyte_internal_ops-0.6.0 → airbyte_internal_ops-0.7.0}/src/airbyte_ops_mcp/_legacy/airbyte_ci/connector_pipelines/airbyte_ci/connectors/consts.py +0 -0
  143. {airbyte_internal_ops-0.6.0 → airbyte_internal_ops-0.7.0}/src/airbyte_ops_mcp/_legacy/airbyte_ci/connector_pipelines/airbyte_ci/connectors/context.py +0 -0
  144. {airbyte_internal_ops-0.6.0 → airbyte_internal_ops-0.7.0}/src/airbyte_ops_mcp/_legacy/airbyte_ci/connector_pipelines/airbyte_ci/connectors/generate_erd/__init__.py +0 -0
  145. {airbyte_internal_ops-0.6.0 → airbyte_internal_ops-0.7.0}/src/airbyte_ops_mcp/_legacy/airbyte_ci/connector_pipelines/airbyte_ci/connectors/generate_erd/commands.py +0 -0
  146. {airbyte_internal_ops-0.6.0 → airbyte_internal_ops-0.7.0}/src/airbyte_ops_mcp/_legacy/airbyte_ci/connector_pipelines/airbyte_ci/connectors/generate_erd/pipeline.py +0 -0
  147. {airbyte_internal_ops-0.6.0 → airbyte_internal_ops-0.7.0}/src/airbyte_ops_mcp/_legacy/airbyte_ci/connector_pipelines/airbyte_ci/connectors/list/__init__.py +0 -0
  148. {airbyte_internal_ops-0.6.0 → airbyte_internal_ops-0.7.0}/src/airbyte_ops_mcp/_legacy/airbyte_ci/connector_pipelines/airbyte_ci/connectors/list/commands.py +0 -0
  149. {airbyte_internal_ops-0.6.0 → airbyte_internal_ops-0.7.0}/src/airbyte_ops_mcp/_legacy/airbyte_ci/connector_pipelines/airbyte_ci/connectors/migrate_to_inline_schemas/__init__.py +0 -0
  150. {airbyte_internal_ops-0.6.0 → airbyte_internal_ops-0.7.0}/src/airbyte_ops_mcp/_legacy/airbyte_ci/connector_pipelines/airbyte_ci/connectors/migrate_to_inline_schemas/commands.py +0 -0
  151. {airbyte_internal_ops-0.6.0 → airbyte_internal_ops-0.7.0}/src/airbyte_ops_mcp/_legacy/airbyte_ci/connector_pipelines/airbyte_ci/connectors/migrate_to_inline_schemas/pipeline.py +0 -0
  152. {airbyte_internal_ops-0.6.0 → airbyte_internal_ops-0.7.0}/src/airbyte_ops_mcp/_legacy/airbyte_ci/connector_pipelines/airbyte_ci/connectors/pipeline.py +0 -0
  153. {airbyte_internal_ops-0.6.0 → airbyte_internal_ops-0.7.0}/src/airbyte_ops_mcp/_legacy/airbyte_ci/connector_pipelines/airbyte_ci/connectors/pull_request/__init__.py +0 -0
  154. {airbyte_internal_ops-0.6.0 → airbyte_internal_ops-0.7.0}/src/airbyte_ops_mcp/_legacy/airbyte_ci/connector_pipelines/airbyte_ci/connectors/pull_request/commands.py +0 -0
  155. {airbyte_internal_ops-0.6.0 → airbyte_internal_ops-0.7.0}/src/airbyte_ops_mcp/_legacy/airbyte_ci/connector_pipelines/airbyte_ci/connectors/pull_request/pipeline.py +0 -0
  156. {airbyte_internal_ops-0.6.0 → airbyte_internal_ops-0.7.0}/src/airbyte_ops_mcp/_legacy/airbyte_ci/connector_pipelines/airbyte_ci/connectors/reports.py +0 -0
  157. {airbyte_internal_ops-0.6.0 → airbyte_internal_ops-0.7.0}/src/airbyte_ops_mcp/_legacy/airbyte_ci/connector_pipelines/airbyte_ci/connectors/test/__init__.py +0 -0
  158. {airbyte_internal_ops-0.6.0 → airbyte_internal_ops-0.7.0}/src/airbyte_ops_mcp/_legacy/airbyte_ci/connector_pipelines/airbyte_ci/connectors/test/commands.py +0 -0
  159. {airbyte_internal_ops-0.6.0 → airbyte_internal_ops-0.7.0}/src/airbyte_ops_mcp/_legacy/airbyte_ci/connector_pipelines/airbyte_ci/connectors/test/context.py +0 -0
  160. {airbyte_internal_ops-0.6.0 → airbyte_internal_ops-0.7.0}/src/airbyte_ops_mcp/_legacy/airbyte_ci/connector_pipelines/airbyte_ci/connectors/test/pipeline.py +0 -0
  161. {airbyte_internal_ops-0.6.0 → airbyte_internal_ops-0.7.0}/src/airbyte_ops_mcp/_legacy/airbyte_ci/connector_pipelines/airbyte_ci/connectors/test/steps/__init__.py +0 -0
  162. {airbyte_internal_ops-0.6.0 → airbyte_internal_ops-0.7.0}/src/airbyte_ops_mcp/_legacy/airbyte_ci/connector_pipelines/airbyte_ci/connectors/test/steps/common.py +0 -0
  163. {airbyte_internal_ops-0.6.0 → airbyte_internal_ops-0.7.0}/src/airbyte_ops_mcp/_legacy/airbyte_ci/connector_pipelines/airbyte_ci/connectors/test/steps/java_connectors.py +0 -0
  164. {airbyte_internal_ops-0.6.0 → airbyte_internal_ops-0.7.0}/src/airbyte_ops_mcp/_legacy/airbyte_ci/connector_pipelines/airbyte_ci/connectors/test/steps/manifest_only_connectors.py +0 -0
  165. {airbyte_internal_ops-0.6.0 → airbyte_internal_ops-0.7.0}/src/airbyte_ops_mcp/_legacy/airbyte_ci/connector_pipelines/airbyte_ci/connectors/test/steps/python_connectors.py +0 -0
  166. {airbyte_internal_ops-0.6.0 → airbyte_internal_ops-0.7.0}/src/airbyte_ops_mcp/_legacy/airbyte_ci/connector_pipelines/airbyte_ci/connectors/test/steps/templates/test_report.html.j2 +0 -0
  167. {airbyte_internal_ops-0.6.0 → airbyte_internal_ops-0.7.0}/src/airbyte_ops_mcp/_legacy/airbyte_ci/connector_pipelines/airbyte_ci/connectors/up_to_date/__init__.py +0 -0
  168. {airbyte_internal_ops-0.6.0 → airbyte_internal_ops-0.7.0}/src/airbyte_ops_mcp/_legacy/airbyte_ci/connector_pipelines/airbyte_ci/connectors/up_to_date/commands.py +0 -0
  169. {airbyte_internal_ops-0.6.0 → airbyte_internal_ops-0.7.0}/src/airbyte_ops_mcp/_legacy/airbyte_ci/connector_pipelines/airbyte_ci/connectors/up_to_date/pipeline.py +0 -0
  170. {airbyte_internal_ops-0.6.0 → airbyte_internal_ops-0.7.0}/src/airbyte_ops_mcp/_legacy/airbyte_ci/connector_pipelines/airbyte_ci/connectors/up_to_date/steps.py +0 -0
  171. {airbyte_internal_ops-0.6.0 → airbyte_internal_ops-0.7.0}/src/airbyte_ops_mcp/_legacy/airbyte_ci/connector_pipelines/airbyte_ci/connectors/up_to_date/templates/up_to_date_pr_body.md.j2 +0 -0
  172. {airbyte_internal_ops-0.6.0 → airbyte_internal_ops-0.7.0}/src/airbyte_ops_mcp/_legacy/airbyte_ci/connector_pipelines/airbyte_ci/connectors/upgrade_cdk/__init__.py +0 -0
  173. {airbyte_internal_ops-0.6.0 → airbyte_internal_ops-0.7.0}/src/airbyte_ops_mcp/_legacy/airbyte_ci/connector_pipelines/airbyte_ci/connectors/upgrade_cdk/commands.py +0 -0
  174. {airbyte_internal_ops-0.6.0 → airbyte_internal_ops-0.7.0}/src/airbyte_ops_mcp/_legacy/airbyte_ci/connector_pipelines/airbyte_ci/connectors/upgrade_cdk/pipeline.py +0 -0
  175. {airbyte_internal_ops-0.6.0 → airbyte_internal_ops-0.7.0}/src/airbyte_ops_mcp/_legacy/airbyte_ci/connector_pipelines/airbyte_ci/metadata/__init__.py +0 -0
  176. {airbyte_internal_ops-0.6.0 → airbyte_internal_ops-0.7.0}/src/airbyte_ops_mcp/_legacy/airbyte_ci/connector_pipelines/airbyte_ci/metadata/commands.py +0 -0
  177. {airbyte_internal_ops-0.6.0 → airbyte_internal_ops-0.7.0}/src/airbyte_ops_mcp/_legacy/airbyte_ci/connector_pipelines/airbyte_ci/metadata/pipeline.py +0 -0
  178. {airbyte_internal_ops-0.6.0 → airbyte_internal_ops-0.7.0}/src/airbyte_ops_mcp/_legacy/airbyte_ci/connector_pipelines/airbyte_ci/poetry/__init__.py +0 -0
  179. {airbyte_internal_ops-0.6.0 → airbyte_internal_ops-0.7.0}/src/airbyte_ops_mcp/_legacy/airbyte_ci/connector_pipelines/airbyte_ci/poetry/commands.py +0 -0
  180. {airbyte_internal_ops-0.6.0 → airbyte_internal_ops-0.7.0}/src/airbyte_ops_mcp/_legacy/airbyte_ci/connector_pipelines/airbyte_ci/steps/__init__.py +0 -0
  181. {airbyte_internal_ops-0.6.0 → airbyte_internal_ops-0.7.0}/src/airbyte_ops_mcp/_legacy/airbyte_ci/connector_pipelines/airbyte_ci/steps/base_image.py +0 -0
  182. {airbyte_internal_ops-0.6.0 → airbyte_internal_ops-0.7.0}/src/airbyte_ops_mcp/_legacy/airbyte_ci/connector_pipelines/airbyte_ci/steps/docker.py +0 -0
  183. {airbyte_internal_ops-0.6.0 → airbyte_internal_ops-0.7.0}/src/airbyte_ops_mcp/_legacy/airbyte_ci/connector_pipelines/airbyte_ci/steps/gradle.py +0 -0
  184. {airbyte_internal_ops-0.6.0 → airbyte_internal_ops-0.7.0}/src/airbyte_ops_mcp/_legacy/airbyte_ci/connector_pipelines/airbyte_ci/steps/no_op.py +0 -0
  185. {airbyte_internal_ops-0.6.0 → airbyte_internal_ops-0.7.0}/src/airbyte_ops_mcp/_legacy/airbyte_ci/connector_pipelines/airbyte_ci/steps/poetry.py +0 -0
  186. {airbyte_internal_ops-0.6.0 → airbyte_internal_ops-0.7.0}/src/airbyte_ops_mcp/_legacy/airbyte_ci/connector_pipelines/airbyte_ci/steps/pull_request.py +0 -0
  187. {airbyte_internal_ops-0.6.0 → airbyte_internal_ops-0.7.0}/src/airbyte_ops_mcp/_legacy/airbyte_ci/connector_pipelines/airbyte_ci/test/__init__.py +0 -0
  188. {airbyte_internal_ops-0.6.0 → airbyte_internal_ops-0.7.0}/src/airbyte_ops_mcp/_legacy/airbyte_ci/connector_pipelines/airbyte_ci/test/commands.py +0 -0
  189. {airbyte_internal_ops-0.6.0 → airbyte_internal_ops-0.7.0}/src/airbyte_ops_mcp/_legacy/airbyte_ci/connector_pipelines/airbyte_ci/test/models.py +0 -0
  190. {airbyte_internal_ops-0.6.0 → airbyte_internal_ops-0.7.0}/src/airbyte_ops_mcp/_legacy/airbyte_ci/connector_pipelines/airbyte_ci/test/pipeline.py +0 -0
  191. {airbyte_internal_ops-0.6.0 → airbyte_internal_ops-0.7.0}/src/airbyte_ops_mcp/_legacy/airbyte_ci/connector_pipelines/airbyte_ci/update/__init__.py +0 -0
  192. {airbyte_internal_ops-0.6.0 → airbyte_internal_ops-0.7.0}/src/airbyte_ops_mcp/_legacy/airbyte_ci/connector_pipelines/airbyte_ci/update/commands.py +0 -0
  193. {airbyte_internal_ops-0.6.0 → airbyte_internal_ops-0.7.0}/src/airbyte_ops_mcp/_legacy/airbyte_ci/connector_pipelines/cli/airbyte_ci.py +0 -0
  194. {airbyte_internal_ops-0.6.0 → airbyte_internal_ops-0.7.0}/src/airbyte_ops_mcp/_legacy/airbyte_ci/connector_pipelines/cli/auto_update.py +0 -0
  195. {airbyte_internal_ops-0.6.0 → airbyte_internal_ops-0.7.0}/src/airbyte_ops_mcp/_legacy/airbyte_ci/connector_pipelines/cli/click_decorators.py +0 -0
  196. {airbyte_internal_ops-0.6.0 → airbyte_internal_ops-0.7.0}/src/airbyte_ops_mcp/_legacy/airbyte_ci/connector_pipelines/cli/confirm_prompt.py +0 -0
  197. {airbyte_internal_ops-0.6.0 → airbyte_internal_ops-0.7.0}/src/airbyte_ops_mcp/_legacy/airbyte_ci/connector_pipelines/cli/dagger_pipeline_command.py +0 -0
  198. {airbyte_internal_ops-0.6.0 → airbyte_internal_ops-0.7.0}/src/airbyte_ops_mcp/_legacy/airbyte_ci/connector_pipelines/cli/dagger_run.py +0 -0
  199. {airbyte_internal_ops-0.6.0 → airbyte_internal_ops-0.7.0}/src/airbyte_ops_mcp/_legacy/airbyte_ci/connector_pipelines/cli/ensure_repo_root.py +0 -0
  200. {airbyte_internal_ops-0.6.0 → airbyte_internal_ops-0.7.0}/src/airbyte_ops_mcp/_legacy/airbyte_ci/connector_pipelines/cli/lazy_group.py +0 -0
  201. {airbyte_internal_ops-0.6.0 → airbyte_internal_ops-0.7.0}/src/airbyte_ops_mcp/_legacy/airbyte_ci/connector_pipelines/cli/secrets.py +0 -0
  202. {airbyte_internal_ops-0.6.0 → airbyte_internal_ops-0.7.0}/src/airbyte_ops_mcp/_legacy/airbyte_ci/connector_pipelines/cli/telemetry.py +0 -0
  203. {airbyte_internal_ops-0.6.0 → airbyte_internal_ops-0.7.0}/src/airbyte_ops_mcp/_legacy/airbyte_ci/connector_pipelines/consts.py +0 -0
  204. {airbyte_internal_ops-0.6.0 → airbyte_internal_ops-0.7.0}/src/airbyte_ops_mcp/_legacy/airbyte_ci/connector_pipelines/hacks.py +0 -0
  205. {airbyte_internal_ops-0.6.0 → airbyte_internal_ops-0.7.0}/src/airbyte_ops_mcp/_legacy/airbyte_ci/connector_pipelines/models/__init__.py +0 -0
  206. {airbyte_internal_ops-0.6.0 → airbyte_internal_ops-0.7.0}/src/airbyte_ops_mcp/_legacy/airbyte_ci/connector_pipelines/models/artifacts.py +0 -0
  207. {airbyte_internal_ops-0.6.0 → airbyte_internal_ops-0.7.0}/src/airbyte_ops_mcp/_legacy/airbyte_ci/connector_pipelines/models/ci_requirements.py +0 -0
  208. {airbyte_internal_ops-0.6.0 → airbyte_internal_ops-0.7.0}/src/airbyte_ops_mcp/_legacy/airbyte_ci/connector_pipelines/models/contexts/__init__.py +0 -0
  209. {airbyte_internal_ops-0.6.0 → airbyte_internal_ops-0.7.0}/src/airbyte_ops_mcp/_legacy/airbyte_ci/connector_pipelines/models/contexts/click_pipeline_context.py +0 -0
  210. {airbyte_internal_ops-0.6.0 → airbyte_internal_ops-0.7.0}/src/airbyte_ops_mcp/_legacy/airbyte_ci/connector_pipelines/models/contexts/pipeline_context.py +0 -0
  211. {airbyte_internal_ops-0.6.0 → airbyte_internal_ops-0.7.0}/src/airbyte_ops_mcp/_legacy/airbyte_ci/connector_pipelines/models/reports.py +0 -0
  212. {airbyte_internal_ops-0.6.0 → airbyte_internal_ops-0.7.0}/src/airbyte_ops_mcp/_legacy/airbyte_ci/connector_pipelines/models/secrets.py +0 -0
  213. {airbyte_internal_ops-0.6.0 → airbyte_internal_ops-0.7.0}/src/airbyte_ops_mcp/_legacy/airbyte_ci/connector_pipelines/models/singleton.py +0 -0
  214. {airbyte_internal_ops-0.6.0 → airbyte_internal_ops-0.7.0}/src/airbyte_ops_mcp/_legacy/airbyte_ci/connector_pipelines/models/steps.py +0 -0
  215. {airbyte_internal_ops-0.6.0 → airbyte_internal_ops-0.7.0}/src/airbyte_ops_mcp/_legacy/airbyte_ci/metadata_service/README.md +0 -0
  216. {airbyte_internal_ops-0.6.0 → airbyte_internal_ops-0.7.0}/src/airbyte_ops_mcp/_legacy/airbyte_ci/metadata_service/commands.py +0 -0
  217. {airbyte_internal_ops-0.6.0 → airbyte_internal_ops-0.7.0}/src/airbyte_ops_mcp/_legacy/airbyte_ci/metadata_service/constants.py +0 -0
  218. {airbyte_internal_ops-0.6.0 → airbyte_internal_ops-0.7.0}/src/airbyte_ops_mcp/_legacy/airbyte_ci/metadata_service/docs/external_documentation_urls.md +0 -0
  219. {airbyte_internal_ops-0.6.0 → airbyte_internal_ops-0.7.0}/src/airbyte_ops_mcp/_legacy/airbyte_ci/metadata_service/gcs_upload.py +0 -0
  220. {airbyte_internal_ops-0.6.0 → airbyte_internal_ops-0.7.0}/src/airbyte_ops_mcp/_legacy/airbyte_ci/metadata_service/helpers/files.py +0 -0
  221. {airbyte_internal_ops-0.6.0 → airbyte_internal_ops-0.7.0}/src/airbyte_ops_mcp/_legacy/airbyte_ci/metadata_service/helpers/gcs.py +0 -0
  222. {airbyte_internal_ops-0.6.0 → airbyte_internal_ops-0.7.0}/src/airbyte_ops_mcp/_legacy/airbyte_ci/metadata_service/helpers/object_helpers.py +0 -0
  223. {airbyte_internal_ops-0.6.0 → airbyte_internal_ops-0.7.0}/src/airbyte_ops_mcp/_legacy/airbyte_ci/metadata_service/helpers/slack.py +0 -0
  224. {airbyte_internal_ops-0.6.0 → airbyte_internal_ops-0.7.0}/src/airbyte_ops_mcp/_legacy/airbyte_ci/metadata_service/orchestrator/.env.template +0 -0
  225. {airbyte_internal_ops-0.6.0 → airbyte_internal_ops-0.7.0}/src/airbyte_ops_mcp/_legacy/airbyte_ci/metadata_service/orchestrator/README.md +0 -0
  226. {airbyte_internal_ops-0.6.0 → airbyte_internal_ops-0.7.0}/src/airbyte_ops_mcp/_legacy/airbyte_ci/metadata_service/orchestrator/dagster_cloud.yaml +0 -0
  227. {airbyte_internal_ops-0.6.0 → airbyte_internal_ops-0.7.0}/src/airbyte_ops_mcp/_legacy/airbyte_ci/metadata_service/orchestrator/orchestrator/__init__.py +0 -0
  228. {airbyte_internal_ops-0.6.0 → airbyte_internal_ops-0.7.0}/src/airbyte_ops_mcp/_legacy/airbyte_ci/metadata_service/orchestrator/orchestrator/assets/connector_metrics.py +0 -0
  229. {airbyte_internal_ops-0.6.0 → airbyte_internal_ops-0.7.0}/src/airbyte_ops_mcp/_legacy/airbyte_ci/metadata_service/orchestrator/orchestrator/assets/github.py +0 -0
  230. {airbyte_internal_ops-0.6.0 → airbyte_internal_ops-0.7.0}/src/airbyte_ops_mcp/_legacy/airbyte_ci/metadata_service/orchestrator/orchestrator/assets/metadata.py +0 -0
  231. {airbyte_internal_ops-0.6.0 → airbyte_internal_ops-0.7.0}/src/airbyte_ops_mcp/_legacy/airbyte_ci/metadata_service/orchestrator/orchestrator/assets/registry.py +0 -0
  232. {airbyte_internal_ops-0.6.0 → airbyte_internal_ops-0.7.0}/src/airbyte_ops_mcp/_legacy/airbyte_ci/metadata_service/orchestrator/orchestrator/assets/registry_entry.py +0 -0
  233. {airbyte_internal_ops-0.6.0 → airbyte_internal_ops-0.7.0}/src/airbyte_ops_mcp/_legacy/airbyte_ci/metadata_service/orchestrator/orchestrator/assets/registry_report.py +0 -0
  234. {airbyte_internal_ops-0.6.0 → airbyte_internal_ops-0.7.0}/src/airbyte_ops_mcp/_legacy/airbyte_ci/metadata_service/orchestrator/orchestrator/assets/slack.py +0 -0
  235. {airbyte_internal_ops-0.6.0 → airbyte_internal_ops-0.7.0}/src/airbyte_ops_mcp/_legacy/airbyte_ci/metadata_service/orchestrator/orchestrator/assets/specs_secrets_mask.py +0 -0
  236. {airbyte_internal_ops-0.6.0 → airbyte_internal_ops-0.7.0}/src/airbyte_ops_mcp/_legacy/airbyte_ci/metadata_service/orchestrator/orchestrator/config.py +0 -0
  237. {airbyte_internal_ops-0.6.0 → airbyte_internal_ops-0.7.0}/src/airbyte_ops_mcp/_legacy/airbyte_ci/metadata_service/orchestrator/orchestrator/fetcher/connector_cdk_version.py +0 -0
  238. {airbyte_internal_ops-0.6.0 → airbyte_internal_ops-0.7.0}/src/airbyte_ops_mcp/_legacy/airbyte_ci/metadata_service/orchestrator/orchestrator/hacks.py +0 -0
  239. {airbyte_internal_ops-0.6.0 → airbyte_internal_ops-0.7.0}/src/airbyte_ops_mcp/_legacy/airbyte_ci/metadata_service/orchestrator/orchestrator/jobs/registry.py +0 -0
  240. {airbyte_internal_ops-0.6.0 → airbyte_internal_ops-0.7.0}/src/airbyte_ops_mcp/_legacy/airbyte_ci/metadata_service/orchestrator/orchestrator/logging/publish_connector_lifecycle.py +0 -0
  241. {airbyte_internal_ops-0.6.0 → airbyte_internal_ops-0.7.0}/src/airbyte_ops_mcp/_legacy/airbyte_ci/metadata_service/orchestrator/orchestrator/logging/sentry.py +0 -0
  242. {airbyte_internal_ops-0.6.0 → airbyte_internal_ops-0.7.0}/src/airbyte_ops_mcp/_legacy/airbyte_ci/metadata_service/orchestrator/orchestrator/models/ci_report.py +0 -0
  243. {airbyte_internal_ops-0.6.0 → airbyte_internal_ops-0.7.0}/src/airbyte_ops_mcp/_legacy/airbyte_ci/metadata_service/orchestrator/orchestrator/models/metadata.py +0 -0
  244. {airbyte_internal_ops-0.6.0 → airbyte_internal_ops-0.7.0}/src/airbyte_ops_mcp/_legacy/airbyte_ci/metadata_service/orchestrator/orchestrator/ops/slack.py +0 -0
  245. {airbyte_internal_ops-0.6.0 → airbyte_internal_ops-0.7.0}/src/airbyte_ops_mcp/_legacy/airbyte_ci/metadata_service/orchestrator/orchestrator/resources/file_managers/local_file_manager.py +0 -0
  246. {airbyte_internal_ops-0.6.0 → airbyte_internal_ops-0.7.0}/src/airbyte_ops_mcp/_legacy/airbyte_ci/metadata_service/orchestrator/orchestrator/resources/gcp.py +0 -0
  247. {airbyte_internal_ops-0.6.0 → airbyte_internal_ops-0.7.0}/src/airbyte_ops_mcp/_legacy/airbyte_ci/metadata_service/orchestrator/orchestrator/resources/github.py +0 -0
  248. {airbyte_internal_ops-0.6.0 → airbyte_internal_ops-0.7.0}/src/airbyte_ops_mcp/_legacy/airbyte_ci/metadata_service/orchestrator/orchestrator/resources/local.py +0 -0
  249. {airbyte_internal_ops-0.6.0 → airbyte_internal_ops-0.7.0}/src/airbyte_ops_mcp/_legacy/airbyte_ci/metadata_service/orchestrator/orchestrator/sensors/gcs.py +0 -0
  250. {airbyte_internal_ops-0.6.0 → airbyte_internal_ops-0.7.0}/src/airbyte_ops_mcp/_legacy/airbyte_ci/metadata_service/orchestrator/orchestrator/sensors/github.py +0 -0
  251. {airbyte_internal_ops-0.6.0 → airbyte_internal_ops-0.7.0}/src/airbyte_ops_mcp/_legacy/airbyte_ci/metadata_service/orchestrator/orchestrator/sensors/registry.py +0 -0
  252. {airbyte_internal_ops-0.6.0 → airbyte_internal_ops-0.7.0}/src/airbyte_ops_mcp/_legacy/airbyte_ci/metadata_service/orchestrator/orchestrator/templates/base.html +0 -0
  253. {airbyte_internal_ops-0.6.0 → airbyte_internal_ops-0.7.0}/src/airbyte_ops_mcp/_legacy/airbyte_ci/metadata_service/orchestrator/orchestrator/templates/connector_registry_locations.html +0 -0
  254. {airbyte_internal_ops-0.6.0 → airbyte_internal_ops-0.7.0}/src/airbyte_ops_mcp/_legacy/airbyte_ci/metadata_service/orchestrator/orchestrator/templates/render.py +0 -0
  255. {airbyte_internal_ops-0.6.0 → airbyte_internal_ops-0.7.0}/src/airbyte_ops_mcp/_legacy/airbyte_ci/metadata_service/orchestrator/orchestrator/utils/blob_helpers.py +0 -0
  256. {airbyte_internal_ops-0.6.0 → airbyte_internal_ops-0.7.0}/src/airbyte_ops_mcp/_legacy/airbyte_ci/metadata_service/orchestrator/orchestrator/utils/dagster_helpers.py +0 -0
  257. {airbyte_internal_ops-0.6.0 → airbyte_internal_ops-0.7.0}/src/airbyte_ops_mcp/_legacy/airbyte_ci/metadata_service/orchestrator/orchestrator/utils/object_helpers.py +0 -0
  258. {airbyte_internal_ops-0.6.0 → airbyte_internal_ops-0.7.0}/src/airbyte_ops_mcp/_legacy/airbyte_ci/metadata_service/orchestrator/poetry.lock +0 -0
  259. {airbyte_internal_ops-0.6.0 → airbyte_internal_ops-0.7.0}/src/airbyte_ops_mcp/_legacy/airbyte_ci/metadata_service/orchestrator/tests/__init__.py +0 -0
  260. {airbyte_internal_ops-0.6.0 → airbyte_internal_ops-0.7.0}/src/airbyte_ops_mcp/_legacy/airbyte_ci/metadata_service/orchestrator/tests/conftest.py.disabled +0 -0
  261. {airbyte_internal_ops-0.6.0 → airbyte_internal_ops-0.7.0}/src/airbyte_ops_mcp/_legacy/airbyte_ci/metadata_service/orchestrator/tests/fixtures/__init__.py +0 -0
  262. {airbyte_internal_ops-0.6.0 → airbyte_internal_ops-0.7.0}/src/airbyte_ops_mcp/_legacy/airbyte_ci/metadata_service/orchestrator/tests/fixtures/cloud_registry.json +0 -0
  263. {airbyte_internal_ops-0.6.0 → airbyte_internal_ops-0.7.0}/src/airbyte_ops_mcp/_legacy/airbyte_ci/metadata_service/orchestrator/tests/fixtures/oss_registry.json +0 -0
  264. {airbyte_internal_ops-0.6.0 → airbyte_internal_ops-0.7.0}/src/airbyte_ops_mcp/_legacy/airbyte_ci/metadata_service/orchestrator/tests/test_connector_metrics.py +0 -0
  265. {airbyte_internal_ops-0.6.0 → airbyte_internal_ops-0.7.0}/src/airbyte_ops_mcp/_legacy/airbyte_ci/metadata_service/orchestrator/tests/test_dagster_helpers.py +0 -0
  266. {airbyte_internal_ops-0.6.0 → airbyte_internal_ops-0.7.0}/src/airbyte_ops_mcp/_legacy/airbyte_ci/metadata_service/orchestrator/tests/test_debug.py +0 -0
  267. {airbyte_internal_ops-0.6.0 → airbyte_internal_ops-0.7.0}/src/airbyte_ops_mcp/_legacy/airbyte_ci/metadata_service/orchestrator/tests/test_partition_jobs.py +0 -0
  268. {airbyte_internal_ops-0.6.0 → airbyte_internal_ops-0.7.0}/src/airbyte_ops_mcp/_legacy/airbyte_ci/metadata_service/orchestrator/tests/test_registry.py +0 -0
  269. {airbyte_internal_ops-0.6.0 → airbyte_internal_ops-0.7.0}/src/airbyte_ops_mcp/_legacy/airbyte_ci/metadata_service/orchestrator/tests/test_specs_secrets_mask.py +0 -0
  270. {airbyte_internal_ops-0.6.0 → airbyte_internal_ops-0.7.0}/src/airbyte_ops_mcp/_legacy/airbyte_ci/metadata_service/registry.py +0 -0
  271. {airbyte_internal_ops-0.6.0 → airbyte_internal_ops-0.7.0}/src/airbyte_ops_mcp/_legacy/airbyte_ci/metadata_service/registry_entry.py +0 -0
  272. {airbyte_internal_ops-0.6.0 → airbyte_internal_ops-0.7.0}/src/airbyte_ops_mcp/_legacy/airbyte_ci/metadata_service/registry_report.py +0 -0
  273. {airbyte_internal_ops-0.6.0 → airbyte_internal_ops-0.7.0}/src/airbyte_ops_mcp/_legacy/airbyte_ci/metadata_service/sentry.py +0 -0
  274. {airbyte_internal_ops-0.6.0 → airbyte_internal_ops-0.7.0}/src/airbyte_ops_mcp/_legacy/airbyte_ci/metadata_service/spec_cache.py +0 -0
  275. {airbyte_internal_ops-0.6.0 → airbyte_internal_ops-0.7.0}/src/airbyte_ops_mcp/_legacy/airbyte_ci/metadata_service/specs_secrets_mask.py +0 -0
  276. {airbyte_internal_ops-0.6.0 → airbyte_internal_ops-0.7.0}/src/airbyte_ops_mcp/_legacy/airbyte_ci/metadata_service/stale_metadata_report.py +0 -0
  277. {airbyte_internal_ops-0.6.0 → airbyte_internal_ops-0.7.0}/src/airbyte_ops_mcp/_legacy/airbyte_ci/metadata_service/templates/base.html +0 -0
  278. {airbyte_internal_ops-0.6.0 → airbyte_internal_ops-0.7.0}/src/airbyte_ops_mcp/_legacy/airbyte_ci/metadata_service/templates/connector_registry_locations.html +0 -0
  279. {airbyte_internal_ops-0.6.0 → airbyte_internal_ops-0.7.0}/src/airbyte_ops_mcp/_legacy/airbyte_ci/metadata_service/templates/render.py +0 -0
  280. {airbyte_internal_ops-0.6.0 → airbyte_internal_ops-0.7.0}/src/airbyte_ops_mcp/airbyte_repo/__init__.py +0 -0
  281. {airbyte_internal_ops-0.6.0 → airbyte_internal_ops-0.7.0}/src/airbyte_ops_mcp/airbyte_repo/bump_version.py +0 -0
  282. {airbyte_internal_ops-0.6.0 → airbyte_internal_ops-0.7.0}/src/airbyte_ops_mcp/airbyte_repo/list_connectors.py +0 -0
  283. {airbyte_internal_ops-0.6.0 → airbyte_internal_ops-0.7.0}/src/airbyte_ops_mcp/airbyte_repo/utils.py +0 -0
  284. {airbyte_internal_ops-0.6.0 → airbyte_internal_ops-0.7.0}/src/airbyte_ops_mcp/cli/__init__.py +0 -0
  285. {airbyte_internal_ops-0.6.0 → airbyte_internal_ops-0.7.0}/src/airbyte_ops_mcp/cli/_base.py +0 -0
  286. {airbyte_internal_ops-0.6.0 → airbyte_internal_ops-0.7.0}/src/airbyte_ops_mcp/cli/_shared.py +0 -0
  287. {airbyte_internal_ops-0.6.0 → airbyte_internal_ops-0.7.0}/src/airbyte_ops_mcp/cli/cloud.py +0 -0
  288. {airbyte_internal_ops-0.6.0 → airbyte_internal_ops-0.7.0}/src/airbyte_ops_mcp/cli/gh.py +0 -0
  289. {airbyte_internal_ops-0.6.0 → airbyte_internal_ops-0.7.0}/src/airbyte_ops_mcp/cli/registry.py +0 -0
  290. {airbyte_internal_ops-0.6.0 → airbyte_internal_ops-0.7.0}/src/airbyte_ops_mcp/cloud_admin/__init__.py +0 -0
  291. {airbyte_internal_ops-0.6.0 → airbyte_internal_ops-0.7.0}/src/airbyte_ops_mcp/cloud_admin/api_client.py +0 -0
  292. {airbyte_internal_ops-0.6.0 → airbyte_internal_ops-0.7.0}/src/airbyte_ops_mcp/cloud_admin/auth.py +0 -0
  293. {airbyte_internal_ops-0.6.0 → airbyte_internal_ops-0.7.0}/src/airbyte_ops_mcp/cloud_admin/connection_config.py +0 -0
  294. {airbyte_internal_ops-0.6.0 → airbyte_internal_ops-0.7.0}/src/airbyte_ops_mcp/cloud_admin/models.py +0 -0
  295. {airbyte_internal_ops-0.6.0 → airbyte_internal_ops-0.7.0}/src/airbyte_ops_mcp/connection_config_retriever/__init__.py +0 -0
  296. {airbyte_internal_ops-0.6.0 → airbyte_internal_ops-0.7.0}/src/airbyte_ops_mcp/connection_config_retriever/audit_logging.py +0 -0
  297. {airbyte_internal_ops-0.6.0 → airbyte_internal_ops-0.7.0}/src/airbyte_ops_mcp/connection_config_retriever/retrieval.py +0 -0
  298. {airbyte_internal_ops-0.6.0 → airbyte_internal_ops-0.7.0}/src/airbyte_ops_mcp/connection_config_retriever/secrets_resolution.py +0 -0
  299. {airbyte_internal_ops-0.6.0/src/airbyte_ops_mcp/_legacy/airbyte_ci → airbyte_internal_ops-0.7.0/src/airbyte_ops_mcp}/connector_qa/README.md +0 -0
  300. {airbyte_internal_ops-0.6.0/src/airbyte_ops_mcp/_legacy/airbyte_ci → airbyte_internal_ops-0.7.0/src/airbyte_ops_mcp}/connector_qa/__init__.py +0 -0
  301. {airbyte_internal_ops-0.6.0/src/airbyte_ops_mcp/_legacy/airbyte_ci → airbyte_internal_ops-0.7.0/src/airbyte_ops_mcp}/connector_qa/checks/__init__.py +0 -0
  302. {airbyte_internal_ops-0.6.0/src/airbyte_ops_mcp/_legacy/airbyte_ci → airbyte_internal_ops-0.7.0/src/airbyte_ops_mcp}/connector_qa/checks/documentation/helpers.py +0 -0
  303. {airbyte_internal_ops-0.6.0/src/airbyte_ops_mcp/_legacy/airbyte_ci → airbyte_internal_ops-0.7.0/src/airbyte_ops_mcp}/connector_qa/checks/documentation/templates/documentation_headers_check_description.md.j2 +0 -0
  304. {airbyte_internal_ops-0.6.0/src/airbyte_ops_mcp/_legacy/airbyte_ci → airbyte_internal_ops-0.7.0/src/airbyte_ops_mcp}/connector_qa/checks/documentation/templates/section_content_description.md.j2 +0 -0
  305. {airbyte_internal_ops-0.6.0/src/airbyte_ops_mcp/_legacy/airbyte_ci → airbyte_internal_ops-0.7.0/src/airbyte_ops_mcp}/connector_qa/checks/documentation/templates/template.md.j2 +0 -0
  306. {airbyte_internal_ops-0.6.0/src/airbyte_ops_mcp/_legacy/airbyte_ci → airbyte_internal_ops-0.7.0/src/airbyte_ops_mcp}/connector_qa/consts.py +0 -0
  307. {airbyte_internal_ops-0.6.0/src/airbyte_ops_mcp/_legacy/airbyte_ci → airbyte_internal_ops-0.7.0/src/airbyte_ops_mcp}/connector_qa/templates/__init__.py +0 -0
  308. {airbyte_internal_ops-0.6.0/src/airbyte_ops_mcp/_legacy/airbyte_ci → airbyte_internal_ops-0.7.0/src/airbyte_ops_mcp}/connector_qa/templates/qa_checks.md.j2 +0 -0
  309. {airbyte_internal_ops-0.6.0 → airbyte_internal_ops-0.7.0}/src/airbyte_ops_mcp/constants.py +0 -0
  310. {airbyte_internal_ops-0.6.0 → airbyte_internal_ops-0.7.0}/src/airbyte_ops_mcp/docker_hub.py +0 -0
  311. {airbyte_internal_ops-0.6.0 → airbyte_internal_ops-0.7.0}/src/airbyte_ops_mcp/gcp_auth.py +0 -0
  312. {airbyte_internal_ops-0.6.0 → airbyte_internal_ops-0.7.0}/src/airbyte_ops_mcp/gcp_logs/__init__.py +0 -0
  313. {airbyte_internal_ops-0.6.0 → airbyte_internal_ops-0.7.0}/src/airbyte_ops_mcp/gcp_logs/error_lookup.py +0 -0
  314. {airbyte_internal_ops-0.6.0 → airbyte_internal_ops-0.7.0}/src/airbyte_ops_mcp/github_actions.py +0 -0
  315. {airbyte_internal_ops-0.6.0 → airbyte_internal_ops-0.7.0}/src/airbyte_ops_mcp/github_api.py +0 -0
  316. {airbyte_internal_ops-0.6.0 → airbyte_internal_ops-0.7.0}/src/airbyte_ops_mcp/mcp/__init__.py +0 -0
  317. {airbyte_internal_ops-0.6.0 → airbyte_internal_ops-0.7.0}/src/airbyte_ops_mcp/mcp/connector_analysis.py +0 -0
  318. {airbyte_internal_ops-0.6.0 → airbyte_internal_ops-0.7.0}/src/airbyte_ops_mcp/mcp/connector_qa.py +0 -0
  319. {airbyte_internal_ops-0.6.0 → airbyte_internal_ops-0.7.0}/src/airbyte_ops_mcp/mcp/gcp_logs.py +0 -0
  320. {airbyte_internal_ops-0.6.0 → airbyte_internal_ops-0.7.0}/src/airbyte_ops_mcp/mcp/github_actions.py +0 -0
  321. {airbyte_internal_ops-0.6.0 → airbyte_internal_ops-0.7.0}/src/airbyte_ops_mcp/mcp/github_repo_ops.py +0 -0
  322. {airbyte_internal_ops-0.6.0 → airbyte_internal_ops-0.7.0}/src/airbyte_ops_mcp/mcp/metadata.py +0 -0
  323. {airbyte_internal_ops-0.6.0 → airbyte_internal_ops-0.7.0}/src/airbyte_ops_mcp/mcp/prerelease.py +0 -0
  324. {airbyte_internal_ops-0.6.0 → airbyte_internal_ops-0.7.0}/src/airbyte_ops_mcp/mcp/prod_db_queries.py +0 -0
  325. {airbyte_internal_ops-0.6.0 → airbyte_internal_ops-0.7.0}/src/airbyte_ops_mcp/mcp/prompts.py +0 -0
  326. {airbyte_internal_ops-0.6.0 → airbyte_internal_ops-0.7.0}/src/airbyte_ops_mcp/mcp/registry.py +0 -0
  327. {airbyte_internal_ops-0.6.0 → airbyte_internal_ops-0.7.0}/src/airbyte_ops_mcp/mcp/regression_tests.py +0 -0
  328. {airbyte_internal_ops-0.6.0 → airbyte_internal_ops-0.7.0}/src/airbyte_ops_mcp/metadata_validator.py +0 -0
  329. {airbyte_internal_ops-0.6.0 → airbyte_internal_ops-0.7.0}/src/airbyte_ops_mcp/prod_db_access/__init__.py +0 -0
  330. {airbyte_internal_ops-0.6.0 → airbyte_internal_ops-0.7.0}/src/airbyte_ops_mcp/prod_db_access/db_engine.py +0 -0
  331. {airbyte_internal_ops-0.6.0 → airbyte_internal_ops-0.7.0}/src/airbyte_ops_mcp/prod_db_access/py.typed +0 -0
  332. {airbyte_internal_ops-0.6.0 → airbyte_internal_ops-0.7.0}/src/airbyte_ops_mcp/prod_db_access/queries.py +0 -0
  333. {airbyte_internal_ops-0.6.0 → airbyte_internal_ops-0.7.0}/src/airbyte_ops_mcp/prod_db_access/sql.py +0 -0
  334. {airbyte_internal_ops-0.6.0 → airbyte_internal_ops-0.7.0}/src/airbyte_ops_mcp/py.typed +0 -0
  335. {airbyte_internal_ops-0.6.0 → airbyte_internal_ops-0.7.0}/src/airbyte_ops_mcp/registry/__init__.py +0 -0
  336. {airbyte_internal_ops-0.6.0 → airbyte_internal_ops-0.7.0}/src/airbyte_ops_mcp/registry/models.py +0 -0
  337. {airbyte_internal_ops-0.6.0 → airbyte_internal_ops-0.7.0}/src/airbyte_ops_mcp/registry/publish.py +0 -0
  338. {airbyte_internal_ops-0.6.0 → airbyte_internal_ops-0.7.0}/src/airbyte_ops_mcp/regression_tests/__init__.py +0 -0
  339. {airbyte_internal_ops-0.6.0 → airbyte_internal_ops-0.7.0}/src/airbyte_ops_mcp/regression_tests/cdk_secrets.py +0 -0
  340. {airbyte_internal_ops-0.6.0 → airbyte_internal_ops-0.7.0}/src/airbyte_ops_mcp/regression_tests/ci_output.py +0 -0
  341. {airbyte_internal_ops-0.6.0 → airbyte_internal_ops-0.7.0}/src/airbyte_ops_mcp/regression_tests/commons/__init__.py +0 -0
  342. {airbyte_internal_ops-0.6.0 → airbyte_internal_ops-0.7.0}/src/airbyte_ops_mcp/regression_tests/config.py +0 -0
  343. {airbyte_internal_ops-0.6.0 → airbyte_internal_ops-0.7.0}/src/airbyte_ops_mcp/regression_tests/connection_fetcher.py +0 -0
  344. {airbyte_internal_ops-0.6.0 → airbyte_internal_ops-0.7.0}/src/airbyte_ops_mcp/regression_tests/connection_secret_retriever.py +0 -0
  345. {airbyte_internal_ops-0.6.0 → airbyte_internal_ops-0.7.0}/src/airbyte_ops_mcp/regression_tests/connector_runner.py +0 -0
  346. {airbyte_internal_ops-0.6.0 → airbyte_internal_ops-0.7.0}/src/airbyte_ops_mcp/regression_tests/evaluation_modes.py +0 -0
  347. {airbyte_internal_ops-0.6.0 → airbyte_internal_ops-0.7.0}/src/airbyte_ops_mcp/regression_tests/http_metrics.py +0 -0
  348. {airbyte_internal_ops-0.6.0 → airbyte_internal_ops-0.7.0}/src/airbyte_ops_mcp/regression_tests/message_cache/__init__.py +0 -0
  349. {airbyte_internal_ops-0.6.0 → airbyte_internal_ops-0.7.0}/src/airbyte_ops_mcp/regression_tests/message_cache/duckdb_cache.py +0 -0
  350. {airbyte_internal_ops-0.6.0 → airbyte_internal_ops-0.7.0}/src/airbyte_ops_mcp/regression_tests/models.py +0 -0
  351. {airbyte_internal_ops-0.6.0 → airbyte_internal_ops-0.7.0}/src/airbyte_ops_mcp/regression_tests/obfuscation.py +0 -0
  352. {airbyte_internal_ops-0.6.0 → airbyte_internal_ops-0.7.0}/src/airbyte_ops_mcp/regression_tests/regression/__init__.py +0 -0
  353. {airbyte_internal_ops-0.6.0 → airbyte_internal_ops-0.7.0}/src/airbyte_ops_mcp/regression_tests/regression/comparators.py +0 -0
  354. {airbyte_internal_ops-0.6.0 → airbyte_internal_ops-0.7.0}/src/airbyte_ops_mcp/regression_tests/schema_generation.py +0 -0
  355. {airbyte_internal_ops-0.6.0 → airbyte_internal_ops-0.7.0}/src/airbyte_ops_mcp/regression_tests/validation/__init__.py +0 -0
  356. {airbyte_internal_ops-0.6.0 → airbyte_internal_ops-0.7.0}/src/airbyte_ops_mcp/regression_tests/validation/catalog_validators.py +0 -0
  357. {airbyte_internal_ops-0.6.0 → airbyte_internal_ops-0.7.0}/src/airbyte_ops_mcp/regression_tests/validation/record_validators.py +0 -0
  358. {airbyte_internal_ops-0.6.0 → airbyte_internal_ops-0.7.0}/src/airbyte_ops_mcp/telemetry.py +0 -0
  359. {airbyte_internal_ops-0.6.0 → airbyte_internal_ops-0.7.0}/tests/__init__.py +0 -0
  360. {airbyte_internal_ops-0.6.0 → airbyte_internal_ops-0.7.0}/tests/legacy/airbyte_ci/connector_erd_generator/__init__.py +0 -0
  361. {airbyte_internal_ops-0.6.0 → airbyte_internal_ops-0.7.0}/tests/legacy/airbyte_ci/connector_erd_generator/builder.py +0 -0
  362. {airbyte_internal_ops-0.6.0 → airbyte_internal_ops-0.7.0}/tests/legacy/airbyte_ci/connector_erd_generator/test_dbml_assembler.py +0 -0
  363. {airbyte_internal_ops-0.6.0 → airbyte_internal_ops-0.7.0}/tests/legacy/airbyte_ci/connector_erd_generator/test_relationships.py +0 -0
  364. {airbyte_internal_ops-0.6.0 → airbyte_internal_ops-0.7.0}/tests/legacy/airbyte_ci/connector_ops/conftest.py +0 -0
  365. {airbyte_internal_ops-0.6.0 → airbyte_internal_ops-0.7.0}/tests/legacy/airbyte_ci/connector_ops/test_migration_files/bad-header.md +0 -0
  366. {airbyte_internal_ops-0.6.0 → airbyte_internal_ops-0.7.0}/tests/legacy/airbyte_ci/connector_ops/test_migration_files/bad-title.md +0 -0
  367. {airbyte_internal_ops-0.6.0 → airbyte_internal_ops-0.7.0}/tests/legacy/airbyte_ci/connector_ops/test_migration_files/extra-header.md +0 -0
  368. {airbyte_internal_ops-0.6.0 → airbyte_internal_ops-0.7.0}/tests/legacy/airbyte_ci/connector_ops/test_migration_files/missing-entry.md +0 -0
  369. {airbyte_internal_ops-0.6.0 → airbyte_internal_ops-0.7.0}/tests/legacy/airbyte_ci/connector_ops/test_migration_files/out-of-order.md +0 -0
  370. {airbyte_internal_ops-0.6.0 → airbyte_internal_ops-0.7.0}/tests/legacy/airbyte_ci/connector_ops/test_utils.py +0 -0
  371. {airbyte_internal_ops-0.6.0 → airbyte_internal_ops-0.7.0}/tests/legacy/airbyte_ci/connector_qa/__init__.py +0 -0
  372. {airbyte_internal_ops-0.6.0 → airbyte_internal_ops-0.7.0}/tests/legacy/airbyte_ci/connector_qa/conftest.py +0 -0
  373. {airbyte_internal_ops-0.6.0 → airbyte_internal_ops-0.7.0}/tests/legacy/airbyte_ci/connector_qa/integration_tests/__init__.py +0 -0
  374. {airbyte_internal_ops-0.6.0 → airbyte_internal_ops-0.7.0}/tests/legacy/airbyte_ci/connector_qa/unit_tests/__init__.py +0 -0
  375. {airbyte_internal_ops-0.6.0 → airbyte_internal_ops-0.7.0}/tests/legacy/airbyte_ci/connector_qa/unit_tests/test_checks/__init__.py +0 -0
  376. {airbyte_internal_ops-0.6.0 → airbyte_internal_ops-0.7.0}/tests/legacy/airbyte_ci/connector_qa/unit_tests/test_checks/data/docs/correct.md +0 -0
  377. {airbyte_internal_ops-0.6.0 → airbyte_internal_ops-0.7.0}/tests/legacy/airbyte_ci/connector_qa/unit_tests/test_checks/data/docs/incorrect_not_all_structure.md +0 -0
  378. {airbyte_internal_ops-0.6.0 → airbyte_internal_ops-0.7.0}/tests/legacy/airbyte_ci/connector_qa/unit_tests/test_checks/data/docs/invalid_links.md +0 -0
  379. {airbyte_internal_ops-0.6.0 → airbyte_internal_ops-0.7.0}/tests/legacy/airbyte_ci/connector_qa/unit_tests/test_checks/test_assets.py +0 -0
  380. {airbyte_internal_ops-0.6.0 → airbyte_internal_ops-0.7.0}/tests/legacy/airbyte_ci/connector_qa/unit_tests/test_checks/test_documentation.py +0 -0
  381. {airbyte_internal_ops-0.6.0 → airbyte_internal_ops-0.7.0}/tests/legacy/airbyte_ci/connector_qa/unit_tests/test_checks/test_metadata.py +0 -0
  382. {airbyte_internal_ops-0.6.0 → airbyte_internal_ops-0.7.0}/tests/legacy/airbyte_ci/connector_qa/unit_tests/test_checks/test_packaging.py +0 -0
  383. {airbyte_internal_ops-0.6.0 → airbyte_internal_ops-0.7.0}/tests/legacy/airbyte_ci/connector_qa/unit_tests/test_checks/test_security.py +0 -0
  384. {airbyte_internal_ops-0.6.0 → airbyte_internal_ops-0.7.0}/tests/legacy/airbyte_ci/pipelines/__init__.py +0 -0
  385. {airbyte_internal_ops-0.6.0 → airbyte_internal_ops-0.7.0}/tests/legacy/airbyte_ci/pipelines/conftest.py +0 -0
  386. {airbyte_internal_ops-0.6.0 → airbyte_internal_ops-0.7.0}/tests/legacy/airbyte_ci/pipelines/test_actions/test_environments.py +0 -0
  387. {airbyte_internal_ops-0.6.0 → airbyte_internal_ops-0.7.0}/tests/legacy/airbyte_ci/pipelines/test_bases.py +0 -0
  388. {airbyte_internal_ops-0.6.0 → airbyte_internal_ops-0.7.0}/tests/legacy/airbyte_ci/pipelines/test_build_image/__init__.py +0 -0
  389. {airbyte_internal_ops-0.6.0 → airbyte_internal_ops-0.7.0}/tests/legacy/airbyte_ci/pipelines/test_build_image/dummy_build_customization.py +0 -0
  390. {airbyte_internal_ops-0.6.0 → airbyte_internal_ops-0.7.0}/tests/legacy/airbyte_ci/pipelines/test_build_image/test_manifest_only_connectors.py +0 -0
  391. {airbyte_internal_ops-0.6.0 → airbyte_internal_ops-0.7.0}/tests/legacy/airbyte_ci/pipelines/test_build_image/test_python_connectors.py +0 -0
  392. {airbyte_internal_ops-0.6.0 → airbyte_internal_ops-0.7.0}/tests/legacy/airbyte_ci/pipelines/test_build_image/test_steps/test_common.py +0 -0
  393. {airbyte_internal_ops-0.6.0 → airbyte_internal_ops-0.7.0}/tests/legacy/airbyte_ci/pipelines/test_changelog/initial_files/changelog_header_no_newline.md +0 -0
  394. {airbyte_internal_ops-0.6.0 → airbyte_internal_ops-0.7.0}/tests/legacy/airbyte_ci/pipelines/test_changelog/initial_files/changelog_header_no_separator.md +0 -0
  395. {airbyte_internal_ops-0.6.0 → airbyte_internal_ops-0.7.0}/tests/legacy/airbyte_ci/pipelines/test_changelog/initial_files/no_changelog_header.md +0 -0
  396. {airbyte_internal_ops-0.6.0 → airbyte_internal_ops-0.7.0}/tests/legacy/airbyte_ci/pipelines/test_changelog/initial_files/valid_changelog_at_end.md +0 -0
  397. {airbyte_internal_ops-0.6.0 → airbyte_internal_ops-0.7.0}/tests/legacy/airbyte_ci/pipelines/test_changelog/initial_files/valid_changelog_in_middle.md +0 -0
  398. {airbyte_internal_ops-0.6.0 → airbyte_internal_ops-0.7.0}/tests/legacy/airbyte_ci/pipelines/test_changelog/result_files/changelog_header_no_newline.md +0 -0
  399. {airbyte_internal_ops-0.6.0 → airbyte_internal_ops-0.7.0}/tests/legacy/airbyte_ci/pipelines/test_changelog/result_files/changelog_header_no_separator.md +0 -0
  400. {airbyte_internal_ops-0.6.0 → airbyte_internal_ops-0.7.0}/tests/legacy/airbyte_ci/pipelines/test_changelog/result_files/dupicate_version_date_valid_changelog_at_end.md +0 -0
  401. {airbyte_internal_ops-0.6.0 → airbyte_internal_ops-0.7.0}/tests/legacy/airbyte_ci/pipelines/test_changelog/result_files/dupicate_version_date_valid_changelog_in_middle.md +0 -0
  402. {airbyte_internal_ops-0.6.0 → airbyte_internal_ops-0.7.0}/tests/legacy/airbyte_ci/pipelines/test_changelog/result_files/dupicate_versions_valid_changelog_at_end.md +0 -0
  403. {airbyte_internal_ops-0.6.0 → airbyte_internal_ops-0.7.0}/tests/legacy/airbyte_ci/pipelines/test_changelog/result_files/dupicate_versions_valid_changelog_in_middle.md +0 -0
  404. {airbyte_internal_ops-0.6.0 → airbyte_internal_ops-0.7.0}/tests/legacy/airbyte_ci/pipelines/test_changelog/result_files/duplicate_entry_valid_changelog_at_end.md +0 -0
  405. {airbyte_internal_ops-0.6.0 → airbyte_internal_ops-0.7.0}/tests/legacy/airbyte_ci/pipelines/test_changelog/result_files/duplicate_entry_valid_changelog_in_middle.md +0 -0
  406. {airbyte_internal_ops-0.6.0 → airbyte_internal_ops-0.7.0}/tests/legacy/airbyte_ci/pipelines/test_changelog/result_files/existing_entries_valid_changelog_at_end.md +0 -0
  407. {airbyte_internal_ops-0.6.0 → airbyte_internal_ops-0.7.0}/tests/legacy/airbyte_ci/pipelines/test_changelog/result_files/existing_entries_valid_changelog_in_middle.md +0 -0
  408. {airbyte_internal_ops-0.6.0 → airbyte_internal_ops-0.7.0}/tests/legacy/airbyte_ci/pipelines/test_changelog/result_files/no_changelog_header.md +0 -0
  409. {airbyte_internal_ops-0.6.0 → airbyte_internal_ops-0.7.0}/tests/legacy/airbyte_ci/pipelines/test_changelog/result_files/single_insert_valid_changelog_at_end.md +0 -0
  410. {airbyte_internal_ops-0.6.0 → airbyte_internal_ops-0.7.0}/tests/legacy/airbyte_ci/pipelines/test_changelog/result_files/single_insert_valid_changelog_in_middle.md +0 -0
  411. {airbyte_internal_ops-0.6.0 → airbyte_internal_ops-0.7.0}/tests/legacy/airbyte_ci/pipelines/test_changelog.py +0 -0
  412. {airbyte_internal_ops-0.6.0 → airbyte_internal_ops-0.7.0}/tests/legacy/airbyte_ci/pipelines/test_cli/__init__.py +0 -0
  413. {airbyte_internal_ops-0.6.0 → airbyte_internal_ops-0.7.0}/tests/legacy/airbyte_ci/pipelines/test_cli/test_click_decorators.py +0 -0
  414. {airbyte_internal_ops-0.6.0 → airbyte_internal_ops-0.7.0}/tests/legacy/airbyte_ci/pipelines/test_commands/__init__.py +0 -0
  415. {airbyte_internal_ops-0.6.0 → airbyte_internal_ops-0.7.0}/tests/legacy/airbyte_ci/pipelines/test_commands/test_groups/__init__.py +0 -0
  416. {airbyte_internal_ops-0.6.0 → airbyte_internal_ops-0.7.0}/tests/legacy/airbyte_ci/pipelines/test_commands/test_groups/test_connectors.py +0 -0
  417. {airbyte_internal_ops-0.6.0 → airbyte_internal_ops-0.7.0}/tests/legacy/airbyte_ci/pipelines/test_dagger/__init__.py +0 -0
  418. {airbyte_internal_ops-0.6.0 → airbyte_internal_ops-0.7.0}/tests/legacy/airbyte_ci/pipelines/test_dagger/test_actions/__init__.py +0 -0
  419. {airbyte_internal_ops-0.6.0 → airbyte_internal_ops-0.7.0}/tests/legacy/airbyte_ci/pipelines/test_dagger/test_actions/test_python/__init__.py +0 -0
  420. {airbyte_internal_ops-0.6.0 → airbyte_internal_ops-0.7.0}/tests/legacy/airbyte_ci/pipelines/test_dagger/test_actions/test_python/test_common.py +0 -0
  421. {airbyte_internal_ops-0.6.0 → airbyte_internal_ops-0.7.0}/tests/legacy/airbyte_ci/pipelines/test_gradle.py +0 -0
  422. {airbyte_internal_ops-0.6.0 → airbyte_internal_ops-0.7.0}/tests/legacy/airbyte_ci/pipelines/test_helpers/__init__.py +0 -0
  423. {airbyte_internal_ops-0.6.0 → airbyte_internal_ops-0.7.0}/tests/legacy/airbyte_ci/pipelines/test_helpers/test_execution/__init__.py +0 -0
  424. {airbyte_internal_ops-0.6.0 → airbyte_internal_ops-0.7.0}/tests/legacy/airbyte_ci/pipelines/test_helpers/test_execution/test_argument_parsing.py +0 -0
  425. {airbyte_internal_ops-0.6.0 → airbyte_internal_ops-0.7.0}/tests/legacy/airbyte_ci/pipelines/test_helpers/test_execution/test_run_steps.py +0 -0
  426. {airbyte_internal_ops-0.6.0 → airbyte_internal_ops-0.7.0}/tests/legacy/airbyte_ci/pipelines/test_helpers/test_pip.py +0 -0
  427. {airbyte_internal_ops-0.6.0 → airbyte_internal_ops-0.7.0}/tests/legacy/airbyte_ci/pipelines/test_helpers/test_utils.py +0 -0
  428. {airbyte_internal_ops-0.6.0 → airbyte_internal_ops-0.7.0}/tests/legacy/airbyte_ci/pipelines/test_models/__init__.py +0 -0
  429. {airbyte_internal_ops-0.6.0 → airbyte_internal_ops-0.7.0}/tests/legacy/airbyte_ci/pipelines/test_models/test_click_pipeline_context.py +0 -0
  430. {airbyte_internal_ops-0.6.0 → airbyte_internal_ops-0.7.0}/tests/legacy/airbyte_ci/pipelines/test_models/test_singleton.py +0 -0
  431. {airbyte_internal_ops-0.6.0 → airbyte_internal_ops-0.7.0}/tests/legacy/airbyte_ci/pipelines/test_poetry/test_poetry_publish.py +0 -0
  432. {airbyte_internal_ops-0.6.0 → airbyte_internal_ops-0.7.0}/tests/legacy/airbyte_ci/pipelines/test_publish.py +0 -0
  433. {airbyte_internal_ops-0.6.0 → airbyte_internal_ops-0.7.0}/tests/legacy/airbyte_ci/pipelines/test_steps/__init__.py +0 -0
  434. {airbyte_internal_ops-0.6.0 → airbyte_internal_ops-0.7.0}/tests/legacy/airbyte_ci/pipelines/test_steps/test_simple_docker_step.py +0 -0
  435. {airbyte_internal_ops-0.6.0 → airbyte_internal_ops-0.7.0}/tests/legacy/airbyte_ci/pipelines/test_steps/test_version_check.py +0 -0
  436. {airbyte_internal_ops-0.6.0 → airbyte_internal_ops-0.7.0}/tests/legacy/airbyte_ci/pipelines/test_tests/__init__.py +0 -0
  437. {airbyte_internal_ops-0.6.0 → airbyte_internal_ops-0.7.0}/tests/legacy/airbyte_ci/pipelines/test_tests/test_common.py +0 -0
  438. {airbyte_internal_ops-0.6.0 → airbyte_internal_ops-0.7.0}/tests/legacy/airbyte_ci/pipelines/test_tests/test_python_connectors.py +0 -0
  439. {airbyte_internal_ops-0.6.0 → airbyte_internal_ops-0.7.0}/tests/legacy/airbyte_ci/pipelines/test_upgrade_java_cdk.py +0 -0
  440. {airbyte_internal_ops-0.6.0 → airbyte_internal_ops-0.7.0}/tests/legacy/airbyte_ci/pipelines/utils.py +0 -0
  441. {airbyte_internal_ops-0.6.0 → airbyte_internal_ops-0.7.0}/tests/test_airbyte_admin_mcp.py +0 -0
  442. {airbyte_internal_ops-0.6.0 → airbyte_internal_ops-0.7.0}/tests/test_bump_version.py +0 -0
  443. {airbyte_internal_ops-0.6.0 → airbyte_internal_ops-0.7.0}/tests/test_cli_registry.py +0 -0
  444. {airbyte_internal_ops-0.6.0 → airbyte_internal_ops-0.7.0}/tests/test_list_connectors.py +0 -0
  445. {airbyte_internal_ops-0.6.0 → airbyte_internal_ops-0.7.0}/tests/test_prerelease.py +0 -0
@@ -1,6 +1,6 @@
1
1
  Metadata-Version: 2.4
2
2
  Name: airbyte-internal-ops
3
- Version: 0.6.0
3
+ Version: 0.7.0
4
4
  Summary: MCP and API interfaces that let the agents do the admin work
5
5
  Author-email: Aaron Steers <aj@airbyte.io>
6
6
  Keywords: admin,airbyte,api,mcp
@@ -29,11 +29,14 @@ Requires-Dist: google-cloud-secret-manager<3.0,>=2.18.0
29
29
  Requires-Dist: google-cloud-storage<3.0,>=2.8.0
30
30
  Requires-Dist: jinja2<4.0,>=3.1.2
31
31
  Requires-Dist: pydantic>=2.0.0
32
+ Requires-Dist: pydash<8.0,>=6.0.2
32
33
  Requires-Dist: python-dotenv<2.0,>=1.0.0
33
34
  Requires-Dist: pyyaml<7.0,>=6.0.0
34
35
  Requires-Dist: requests<3.0,>=2.31.0
35
36
  Requires-Dist: rich<14.0,>=13.0.0
36
37
  Requires-Dist: semver<4.0,>=3.0.1
38
+ Requires-Dist: sentry-sdk>=2.50.0
39
+ Requires-Dist: simpleeval<1.0,>=0.9.13
37
40
  Requires-Dist: slack-sdk<4.0,>=3.36.0
38
41
  Requires-Dist: sqlalchemy<3.0,>=2.0.0
39
42
  Requires-Dist: toml<1.0,>=0.10.2
@@ -5,10 +5,8 @@
5
5
  # - connector_insights: https://github.com/airbytehq/airbyte-ops-mcp/issues/50
6
6
  # - connector_ops: https://github.com/airbytehq/airbyte-ops-mcp/issues/52
7
7
  # - connector_pipelines: https://github.com/airbytehq/airbyte-ops-mcp/issues/53
8
- # - connector_qa: https://github.com/airbytehq/airbyte-ops-mcp/issues/54
9
8
  # - metadata_models: https://github.com/airbytehq/airbyte-ops-mcp/issues/55
10
9
  # - metadata_service: https://github.com/airbytehq/airbyte-ops-mcp/issues/56
11
- # Note: connector_live_tests was migrated to regression_tests/ (issue #51 closed)
12
10
 
13
11
  collect_ignore_glob = [
14
12
  # Legacy airbyte_ci source modules (recursive)
@@ -75,6 +75,8 @@ ABCTL_PROJECT_ALIAS = "abctl"
75
75
  ABCTL_PROJECT_ID = "abctl"
76
76
  CORAL_AGENTS_PROJECT_ALIAS = "coral-agents"
77
77
  CORAL_AGENTS_PROJECT_ID = "coral-agents"
78
+ AIRBYTE_OPS_MCP_PROJECT_ALIAS = "airbyte-internal-ops-app"
79
+ AIRBYTE_OPS_MCP_PROJECT_ID = "internal-ops-app" # Actual Sentry project slug
78
80
 
79
81
  # =============================================================================
80
82
  # PROJECT CONFIGURATIONS
@@ -174,6 +176,12 @@ CORAL_AGENTS_GROUPING_ENHANCEMENTS = """\
174
176
  # python: mark coral_agents modules as in-app
175
177
  stack.module:coral_agents* +app"""
176
178
 
179
+ # Grouping enhancements for airbyte-internal-ops-app project
180
+ # Mark airbyte_ops_mcp modules as in-app for better stack trace grouping
181
+ AIRBYTE_OPS_MCP_GROUPING_ENHANCEMENTS = """\
182
+ # python: mark airbyte_ops_mcp modules as in-app
183
+ stack.module:airbyte_ops_mcp* +app"""
184
+
177
185
 
178
186
  # =============================================================================
179
187
  # PROJECTS
@@ -252,7 +260,6 @@ def define_abctl_project() -> tuple[sentry.Project, OutputVarsMap]:
252
260
  filters=sentry.ProjectFiltersArgs(
253
261
  error_messages=[
254
262
  "*kong.ParseError: unexpected argument start",
255
- "*errors.joinError: failed to determine if any previous psql version exists: error reading pgdata version file*",
256
263
  "*values.yaml*no such file or directory*",
257
264
  "*values.yml*no such file or directory*",
258
265
  ],
@@ -290,7 +297,6 @@ def define_coral_agents_project() -> tuple[sentry.Project, OutputVarsMap]:
290
297
  grouping_enhancements=CORAL_AGENTS_GROUPING_ENHANCEMENTS,
291
298
  opts=pulumi.ResourceOptions(
292
299
  protect=True,
293
- import_=f"{ORGANIZATION}/{CORAL_AGENTS_PROJECT_ID}",
294
300
  ),
295
301
  )
296
302
  outputs: OutputVarsMap = {
@@ -305,6 +311,36 @@ def define_coral_agents_project() -> tuple[sentry.Project, OutputVarsMap]:
305
311
  return project, outputs
306
312
 
307
313
 
314
+ def define_airbyte_ops_mcp_project() -> tuple[sentry.Project, OutputVarsMap]:
315
+ """Define the airbyte-internal-ops-app project for MCP server error monitoring.
316
+
317
+ This project monitors the airbyte-internal-ops package, which provides MCP tools
318
+ for Airbyte admin operations. It captures errors during server startup,
319
+ tool execution, and API interactions.
320
+ """
321
+ project = sentry.Project(
322
+ AIRBYTE_OPS_MCP_PROJECT_ALIAS,
323
+ organization=ORGANIZATION,
324
+ name=AIRBYTE_OPS_MCP_PROJECT_ID,
325
+ slug=AIRBYTE_OPS_MCP_PROJECT_ID,
326
+ platform="python",
327
+ teams=[
328
+ "airbyte",
329
+ ],
330
+ grouping_enhancements=AIRBYTE_OPS_MCP_GROUPING_ENHANCEMENTS,
331
+ )
332
+ outputs: OutputVarsMap = {
333
+ "projects.airbyte-internal-ops-app.slug": project.slug,
334
+ "projects.airbyte-internal-ops-app.url": project.slug.apply(
335
+ lambda s: f"https://{ORGANIZATION}.sentry.io/projects/{s}/"
336
+ ),
337
+ "projects.airbyte-internal-ops-app.issue_grouping_url": project.slug.apply(
338
+ lambda s: f"https://{ORGANIZATION}.sentry.io/settings/projects/{s}/issue-grouping/"
339
+ ),
340
+ }
341
+ return project, outputs
342
+
343
+
308
344
  def define_connector_incidents_alert_rules(
309
345
  project: sentry.Project,
310
346
  ) -> list[sentry.IssueAlert]:
@@ -739,6 +775,7 @@ def main() -> None:
739
775
  _, connector_ci_outputs = define_connector_ci_project()
740
776
  _, abctl_outputs = define_abctl_project()
741
777
  _, coral_agents_outputs = define_coral_agents_project()
778
+ _, airbyte_ops_mcp_outputs = define_airbyte_ops_mcp_project()
742
779
 
743
780
  # Create alert rules for connector-incidents project
744
781
  # Note: Alert resources are created for side effects; return value not needed
@@ -758,6 +795,7 @@ def main() -> None:
758
795
  **connector_ci_outputs,
759
796
  **abctl_outputs,
760
797
  **coral_agents_outputs,
798
+ **airbyte_ops_mcp_outputs,
761
799
  }
762
800
  for key, value in all_outputs.items():
763
801
  pulumi.export(key, value)
@@ -26,11 +26,14 @@ dependencies = [
26
26
  "google-cloud-storage>=2.8.0,<3.0",
27
27
  "jinja2>=3.1.2,<4.0",
28
28
  "pydantic>=2.0.0",
29
+ "pydash>=6.0.2,<8.0",
29
30
  "python-dotenv>=1.0.0,<2.0",
30
31
  "pyyaml>=6.0.0,<7.0",
31
32
  "requests>=2.31.0,<3.0",
32
33
  "rich>=13.0.0,<14.0",
33
34
  "semver>=3.0.1,<4.0",
35
+ "sentry-sdk>=2.50.0",
36
+ "simpleeval>=0.9.13,<1.0",
34
37
  "slack-sdk>=3.36.0,<4.0",
35
38
  "sqlalchemy>=2.0.0,<3.0",
36
39
  "toml>=0.10.2,<1.0",
@@ -13,13 +13,13 @@ exclude = [
13
13
  "src/airbyte_ops_mcp/_legacy/airbyte_ci/connector_insights/*", # https://github.com/airbytehq/airbyte-ops-mcp/issues/50
14
14
  "src/airbyte_ops_mcp/_legacy/airbyte_ci/connector_ops/*", # https://github.com/airbytehq/airbyte-ops-mcp/issues/52
15
15
  "src/airbyte_ops_mcp/_legacy/airbyte_ci/connector_pipelines/*", # https://github.com/airbytehq/airbyte-ops-mcp/issues/53
16
- "src/airbyte_ops_mcp/_legacy/airbyte_ci/connector_qa/*", # https://github.com/airbytehq/airbyte-ops-mcp/issues/54
17
16
  "src/airbyte_ops_mcp/_legacy/airbyte_ci/metadata_service/*", # https://github.com/airbytehq/airbyte-ops-mcp/issues/56
18
17
  # Legacy tests for the above subprojects
19
18
  "tests/legacy/airbyte_ci/connector_erd_generator/*", # https://github.com/airbytehq/airbyte-ops-mcp/issues/49
20
19
  "tests/legacy/airbyte_ci/connector_ops/*", # https://github.com/airbytehq/airbyte-ops-mcp/issues/52
21
20
  "tests/legacy/airbyte_ci/pipelines/*", # https://github.com/airbytehq/airbyte-ops-mcp/issues/53
22
- # Note: connector_live_tests was migrated to regression_tests/ (issue #51 closed)
21
+ # Migrated from legacy but contains pre-existing lint issues - to be cleaned up separately
22
+ "src/airbyte_ops_mcp/connector_ops/utils.py", # Migrated from _legacy/airbyte_ci/connector_ops
23
23
  ]
24
24
 
25
25
  [lint]
@@ -0,0 +1,101 @@
1
+ # Copyright (c) 2025 Airbyte, Inc., all rights reserved.
2
+ """Sentry error tracking integration for airbyte-ops-mcp.
3
+
4
+ This module provides automatic error tracking via Sentry for the airbyte-ops-mcp
5
+ package. Errors during server startup, tool execution, and API interactions are
6
+ automatically captured and reported.
7
+
8
+ The Sentry DSN is embedded in the package since it only allows write access
9
+ (sending errors), not read access. This is standard practice for client-side
10
+ error tracking.
11
+
12
+ To disable Sentry tracking, set the environment variable:
13
+ AIRBYTE_DISABLE_SENTRY=1
14
+ """
15
+
16
+ import logging
17
+ import os
18
+ from typing import Literal
19
+
20
+ import sentry_sdk
21
+
22
+ # Valid Sentry severity levels
23
+ SentryLevel = Literal["fatal", "error", "warning", "info", "debug"]
24
+
25
+ logger = logging.getLogger(__name__)
26
+
27
+ # Environment variable to disable Sentry tracking
28
+ DISABLE_SENTRY_ENV_VAR = "AIRBYTE_DISABLE_SENTRY"
29
+
30
+ # Sentry DSN for the airbyte-ops-mcp project
31
+ # This DSN only allows sending errors to Sentry, not reading data.
32
+ # It is safe to embed in client-side code per Sentry's documentation.
33
+ # Project: https://airbytehq.sentry.io/projects/internal-ops-app/
34
+ _SENTRY_DSN = "https://292842cbf7f632f34c68cff23f2deee3@o1009025.ingest.us.sentry.io/4510746336559104"
35
+
36
+ _sentry_initialized = False
37
+
38
+
39
+ def _get_package_version() -> str:
40
+ """Get the package version for Sentry release tracking."""
41
+ try:
42
+ from importlib.metadata import version
43
+
44
+ return version("airbyte-internal-ops")
45
+ except Exception as exc:
46
+ logger.debug("Failed to get package version for Sentry release", exc_info=exc)
47
+ return "unknown"
48
+
49
+
50
+ def init_sentry_tracking() -> bool:
51
+ """Initialize Sentry error tracking if not already initialized.
52
+
53
+ Returns:
54
+ True if Sentry was initialized successfully, False otherwise.
55
+ """
56
+ global _sentry_initialized
57
+
58
+ if _sentry_initialized:
59
+ return True
60
+
61
+ if os.getenv(DISABLE_SENTRY_ENV_VAR):
62
+ logger.debug("Sentry tracking is disabled via environment variable")
63
+ return False
64
+
65
+ try:
66
+ sentry_sdk.init(
67
+ dsn=_SENTRY_DSN,
68
+ release=f"airbyte-ops-mcp@{_get_package_version()}",
69
+ environment=os.getenv("SENTRY_ENVIRONMENT", "production"),
70
+ # Only send errors, not performance data
71
+ traces_sample_rate=0.0,
72
+ # Attach request data for better debugging
73
+ send_default_pii=False,
74
+ # Set server name to help identify the source
75
+ server_name=os.getenv("HOSTNAME", "unknown"),
76
+ )
77
+ _sentry_initialized = True
78
+ logger.debug("Sentry initialized successfully")
79
+ return True
80
+ except Exception as e:
81
+ logger.warning(f"Failed to initialize Sentry: {e}")
82
+ return False
83
+
84
+
85
+ def capture_exception(exception: BaseException) -> None:
86
+ """Capture an exception and send it to Sentry.
87
+
88
+ This is a convenience wrapper that ensures Sentry is initialized
89
+ before capturing the exception.
90
+ """
91
+ if init_sentry_tracking():
92
+ sentry_sdk.capture_exception(exception)
93
+
94
+
95
+ def capture_message(message: str, level: SentryLevel = "info") -> None:
96
+ """Capture a message and send it to Sentry.
97
+
98
+ This is useful for logging important events that aren't exceptions.
99
+ """
100
+ if init_sentry_tracking():
101
+ sentry_sdk.capture_message(message, level=level)
@@ -12,8 +12,8 @@ and provides the main() function for the CLI entry point.
12
12
  from airbyte_ops_mcp.cli import (
13
13
  cloud, # noqa: F401
14
14
  gh, # noqa: F401
15
+ local, # noqa: F401
15
16
  registry, # noqa: F401
16
- repo, # noqa: F401
17
17
  )
18
18
  from airbyte_ops_mcp.cli._base import app
19
19
 
@@ -2,9 +2,11 @@
2
2
  """CLI commands for local Airbyte monorepo operations.
3
3
 
4
4
  Commands:
5
- airbyte-ops repo connector list - List connectors in the monorepo
6
- airbyte-ops repo connector info - Get metadata for a single connector
7
- airbyte-ops repo connector bump-version - Bump connector version
5
+ airbyte-ops local connector list - List connectors in the monorepo
6
+ airbyte-ops local connector info - Get metadata for a single connector
7
+ airbyte-ops local connector bump-version - Bump connector version
8
+ airbyte-ops local connector qa - Run QA checks on a connector
9
+ airbyte-ops local connector qa-docs-generate - Generate QA checks documentation
8
10
  """
9
11
 
10
12
  from __future__ import annotations
@@ -15,6 +17,7 @@ from typing import Annotated, Literal
15
17
 
16
18
  import yaml
17
19
  from cyclopts import App, Parameter
20
+ from jinja2 import Environment, PackageLoader, select_autoescape
18
21
  from rich.console import Console
19
22
 
20
23
  from airbyte_ops_mcp.airbyte_repo.bump_version import (
@@ -31,6 +34,19 @@ from airbyte_ops_mcp.airbyte_repo.list_connectors import (
31
34
  )
32
35
  from airbyte_ops_mcp.cli._base import app
33
36
  from airbyte_ops_mcp.cli._shared import exit_with_error, print_json
37
+ from airbyte_ops_mcp.connector_ops.utils import Connector
38
+ from airbyte_ops_mcp.connector_qa.checks import ENABLED_CHECKS
39
+ from airbyte_ops_mcp.connector_qa.consts import CONNECTORS_QA_DOC_TEMPLATE_NAME
40
+ from airbyte_ops_mcp.connector_qa.models import (
41
+ Check,
42
+ CheckCategory,
43
+ CheckStatus,
44
+ Report,
45
+ )
46
+ from airbyte_ops_mcp.connector_qa.utils import (
47
+ get_all_connectors_in_directory,
48
+ remove_strict_encrypt_suffix,
49
+ )
34
50
  from airbyte_ops_mcp.mcp.github_repo_ops import list_connectors_in_repo
35
51
 
36
52
  console = Console()
@@ -138,13 +154,13 @@ def _get_connector_info(
138
154
  }
139
155
 
140
156
 
141
- # Create the repo sub-app
142
- repo_app = App(name="repo", help="Local Airbyte monorepo operations.")
143
- app.command(repo_app)
157
+ # Create the local sub-app
158
+ local_app = App(name="local", help="Local Airbyte monorepo operations.")
159
+ app.command(local_app)
144
160
 
145
- # Create the connector sub-app under repo
161
+ # Create the connector sub-app under local
146
162
  connector_app = App(name="connector", help="Connector operations in the monorepo.")
147
- repo_app.command(connector_app)
163
+ local_app.command(connector_app)
148
164
 
149
165
 
150
166
  @connector_app.command(name="list")
@@ -486,3 +502,110 @@ def bump_version(
486
502
  "new_version": result.new_version,
487
503
  }
488
504
  )
505
+
506
+
507
+ @connector_app.command(name="qa")
508
+ def run_qa_checks(
509
+ name: Annotated[
510
+ list[str] | None,
511
+ Parameter(
512
+ help="Connector technical name(s) (e.g., source-github). Can be specified multiple times."
513
+ ),
514
+ ] = None,
515
+ connector_directory: Annotated[
516
+ str | None,
517
+ Parameter(
518
+ help="Directory containing connectors to run checks on all connectors in this directory."
519
+ ),
520
+ ] = None,
521
+ check: Annotated[
522
+ list[str] | None,
523
+ Parameter(help="Specific check(s) to run. Can be specified multiple times."),
524
+ ] = None,
525
+ report_path: Annotated[
526
+ str | None,
527
+ Parameter(help="Path to write the JSON report file."),
528
+ ] = None,
529
+ ) -> None:
530
+ """Run QA checks on connector(s).
531
+
532
+ Validates connector metadata, documentation, packaging, security, and versioning.
533
+ Exit code is non-zero if any checks fail.
534
+ """
535
+ # Determine which checks to run
536
+ checks_to_run = ENABLED_CHECKS
537
+ if check:
538
+ check_names = set(check)
539
+ checks_to_run = [c for c in ENABLED_CHECKS if type(c).__name__ in check_names]
540
+ if not checks_to_run:
541
+ exit_with_error(
542
+ f"No matching checks found. Available checks: {[type(c).__name__ for c in ENABLED_CHECKS]}"
543
+ )
544
+
545
+ # Collect connectors to check
546
+ connectors: list[Connector] = []
547
+ if name:
548
+ connectors.extend(Connector(remove_strict_encrypt_suffix(n)) for n in name)
549
+ if connector_directory:
550
+ connectors.extend(get_all_connectors_in_directory(Path(connector_directory)))
551
+
552
+ if not connectors:
553
+ exit_with_error("No connectors specified. Use --name or --connector-directory.")
554
+
555
+ connectors = sorted(connectors, key=lambda c: c.technical_name)
556
+
557
+ # Run checks synchronously (simpler than async for CLI)
558
+ all_results = []
559
+ for connector in connectors:
560
+ for qa_check in checks_to_run:
561
+ result = qa_check.run(connector)
562
+ status_icon = (
563
+ "[green]PASS[/green]"
564
+ if result.status == CheckStatus.PASSED
565
+ else "[red]FAIL[/red]"
566
+ )
567
+ console.print(
568
+ f"{status_icon} {connector.technical_name}: {result.check.name}"
569
+ )
570
+ if result.message:
571
+ console.print(f" {result.message}")
572
+ all_results.append(result)
573
+
574
+ # Write report if requested
575
+ if report_path:
576
+ Report(check_results=all_results).write(Path(report_path))
577
+ console.print(f"Report written to {report_path}")
578
+
579
+ # Exit with error if any checks failed
580
+ failed = [r for r in all_results if r.status == CheckStatus.FAILED]
581
+ if failed:
582
+ exit_with_error(f"{len(failed)} check(s) failed")
583
+
584
+
585
+ @connector_app.command(name="qa-docs-generate")
586
+ def generate_qa_docs(
587
+ output_file: Annotated[
588
+ str,
589
+ Parameter(help="Path to write the generated documentation file."),
590
+ ],
591
+ ) -> None:
592
+ """Generate documentation for QA checks.
593
+
594
+ Creates a markdown file documenting all available QA checks organized by category.
595
+ """
596
+ checks_by_category: dict[CheckCategory, list[Check]] = {}
597
+ for qa_check in ENABLED_CHECKS:
598
+ checks_by_category.setdefault(qa_check.category, []).append(qa_check)
599
+
600
+ jinja_env = Environment(
601
+ loader=PackageLoader("airbyte_ops_mcp.connector_qa", "templates"),
602
+ autoescape=select_autoescape(),
603
+ trim_blocks=False,
604
+ lstrip_blocks=True,
605
+ )
606
+ template = jinja_env.get_template(CONNECTORS_QA_DOC_TEMPLATE_NAME)
607
+ documentation = template.render(checks_by_category=checks_by_category)
608
+
609
+ output_path = Path(output_file)
610
+ output_path.write_text(documentation)
611
+ console.print(f"Documentation written to {output_file}")
@@ -0,0 +1,17 @@
1
+ """Connector operations utilities."""
2
+
3
+ from airbyte_ops_mcp.connector_ops.utils import (
4
+ Connector,
5
+ ConnectorInvalidNameError,
6
+ ConnectorLanguage,
7
+ ConnectorLanguageError,
8
+ ConnectorVersionNotFound,
9
+ )
10
+
11
+ __all__ = [
12
+ "Connector",
13
+ "ConnectorInvalidNameError",
14
+ "ConnectorLanguage",
15
+ "ConnectorLanguageError",
16
+ "ConnectorVersionNotFound",
17
+ ]