airbyte-agent-slack 0.1.35__tar.gz → 0.1.37__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 (62) hide show
  1. {airbyte_agent_slack-0.1.35 → airbyte_agent_slack-0.1.37}/CHANGELOG.md +10 -0
  2. {airbyte_agent_slack-0.1.35 → airbyte_agent_slack-0.1.37}/PKG-INFO +4 -4
  3. {airbyte_agent_slack-0.1.35 → airbyte_agent_slack-0.1.37}/README.md +3 -3
  4. {airbyte_agent_slack-0.1.35 → airbyte_agent_slack-0.1.37}/airbyte_agent_slack/__init__.py +4 -4
  5. {airbyte_agent_slack-0.1.35 → airbyte_agent_slack-0.1.37}/airbyte_agent_slack/_vendored/connector_sdk/executor/local_executor.py +4 -3
  6. {airbyte_agent_slack-0.1.35 → airbyte_agent_slack-0.1.37}/airbyte_agent_slack/_vendored/connector_sdk/http/adapters/httpx_adapter.py +10 -1
  7. {airbyte_agent_slack-0.1.35 → airbyte_agent_slack-0.1.37}/airbyte_agent_slack/_vendored/connector_sdk/schema/base.py +11 -0
  8. {airbyte_agent_slack-0.1.35 → airbyte_agent_slack-0.1.37}/airbyte_agent_slack/_vendored/connector_sdk/validation.py +22 -1
  9. airbyte_agent_slack-0.1.37/airbyte_agent_slack/_vendored/connector_sdk/validation_replication.py +970 -0
  10. {airbyte_agent_slack-0.1.35 → airbyte_agent_slack-0.1.37}/airbyte_agent_slack/connector.py +1 -1
  11. {airbyte_agent_slack-0.1.35 → airbyte_agent_slack-0.1.37}/airbyte_agent_slack/connector_model.py +1 -1
  12. {airbyte_agent_slack-0.1.35 → airbyte_agent_slack-0.1.37}/pyproject.toml +1 -1
  13. {airbyte_agent_slack-0.1.35 → airbyte_agent_slack-0.1.37}/.gitignore +0 -0
  14. {airbyte_agent_slack-0.1.35 → airbyte_agent_slack-0.1.37}/AUTH.md +0 -0
  15. {airbyte_agent_slack-0.1.35 → airbyte_agent_slack-0.1.37}/REFERENCE.md +0 -0
  16. {airbyte_agent_slack-0.1.35 → airbyte_agent_slack-0.1.37}/airbyte_agent_slack/_vendored/__init__.py +0 -0
  17. {airbyte_agent_slack-0.1.35 → airbyte_agent_slack-0.1.37}/airbyte_agent_slack/_vendored/connector_sdk/__init__.py +0 -0
  18. {airbyte_agent_slack-0.1.35 → airbyte_agent_slack-0.1.37}/airbyte_agent_slack/_vendored/connector_sdk/auth_strategies.py +0 -0
  19. {airbyte_agent_slack-0.1.35 → airbyte_agent_slack-0.1.37}/airbyte_agent_slack/_vendored/connector_sdk/auth_template.py +0 -0
  20. {airbyte_agent_slack-0.1.35 → airbyte_agent_slack-0.1.37}/airbyte_agent_slack/_vendored/connector_sdk/cloud_utils/__init__.py +0 -0
  21. {airbyte_agent_slack-0.1.35 → airbyte_agent_slack-0.1.37}/airbyte_agent_slack/_vendored/connector_sdk/cloud_utils/client.py +0 -0
  22. {airbyte_agent_slack-0.1.35 → airbyte_agent_slack-0.1.37}/airbyte_agent_slack/_vendored/connector_sdk/connector_model_loader.py +0 -0
  23. {airbyte_agent_slack-0.1.35 → airbyte_agent_slack-0.1.37}/airbyte_agent_slack/_vendored/connector_sdk/constants.py +0 -0
  24. {airbyte_agent_slack-0.1.35 → airbyte_agent_slack-0.1.37}/airbyte_agent_slack/_vendored/connector_sdk/exceptions.py +0 -0
  25. {airbyte_agent_slack-0.1.35 → airbyte_agent_slack-0.1.37}/airbyte_agent_slack/_vendored/connector_sdk/executor/__init__.py +0 -0
  26. {airbyte_agent_slack-0.1.35 → airbyte_agent_slack-0.1.37}/airbyte_agent_slack/_vendored/connector_sdk/executor/hosted_executor.py +0 -0
  27. {airbyte_agent_slack-0.1.35 → airbyte_agent_slack-0.1.37}/airbyte_agent_slack/_vendored/connector_sdk/executor/models.py +0 -0
  28. {airbyte_agent_slack-0.1.35 → airbyte_agent_slack-0.1.37}/airbyte_agent_slack/_vendored/connector_sdk/extensions.py +0 -0
  29. {airbyte_agent_slack-0.1.35 → airbyte_agent_slack-0.1.37}/airbyte_agent_slack/_vendored/connector_sdk/http/__init__.py +0 -0
  30. {airbyte_agent_slack-0.1.35 → airbyte_agent_slack-0.1.37}/airbyte_agent_slack/_vendored/connector_sdk/http/adapters/__init__.py +0 -0
  31. {airbyte_agent_slack-0.1.35 → airbyte_agent_slack-0.1.37}/airbyte_agent_slack/_vendored/connector_sdk/http/config.py +0 -0
  32. {airbyte_agent_slack-0.1.35 → airbyte_agent_slack-0.1.37}/airbyte_agent_slack/_vendored/connector_sdk/http/exceptions.py +0 -0
  33. {airbyte_agent_slack-0.1.35 → airbyte_agent_slack-0.1.37}/airbyte_agent_slack/_vendored/connector_sdk/http/protocols.py +0 -0
  34. {airbyte_agent_slack-0.1.35 → airbyte_agent_slack-0.1.37}/airbyte_agent_slack/_vendored/connector_sdk/http/response.py +0 -0
  35. {airbyte_agent_slack-0.1.35 → airbyte_agent_slack-0.1.37}/airbyte_agent_slack/_vendored/connector_sdk/http_client.py +0 -0
  36. {airbyte_agent_slack-0.1.35 → airbyte_agent_slack-0.1.37}/airbyte_agent_slack/_vendored/connector_sdk/introspection.py +0 -0
  37. {airbyte_agent_slack-0.1.35 → airbyte_agent_slack-0.1.37}/airbyte_agent_slack/_vendored/connector_sdk/logging/__init__.py +0 -0
  38. {airbyte_agent_slack-0.1.35 → airbyte_agent_slack-0.1.37}/airbyte_agent_slack/_vendored/connector_sdk/logging/logger.py +0 -0
  39. {airbyte_agent_slack-0.1.35 → airbyte_agent_slack-0.1.37}/airbyte_agent_slack/_vendored/connector_sdk/logging/types.py +0 -0
  40. {airbyte_agent_slack-0.1.35 → airbyte_agent_slack-0.1.37}/airbyte_agent_slack/_vendored/connector_sdk/observability/__init__.py +0 -0
  41. {airbyte_agent_slack-0.1.35 → airbyte_agent_slack-0.1.37}/airbyte_agent_slack/_vendored/connector_sdk/observability/config.py +0 -0
  42. {airbyte_agent_slack-0.1.35 → airbyte_agent_slack-0.1.37}/airbyte_agent_slack/_vendored/connector_sdk/observability/models.py +0 -0
  43. {airbyte_agent_slack-0.1.35 → airbyte_agent_slack-0.1.37}/airbyte_agent_slack/_vendored/connector_sdk/observability/redactor.py +0 -0
  44. {airbyte_agent_slack-0.1.35 → airbyte_agent_slack-0.1.37}/airbyte_agent_slack/_vendored/connector_sdk/observability/session.py +0 -0
  45. {airbyte_agent_slack-0.1.35 → airbyte_agent_slack-0.1.37}/airbyte_agent_slack/_vendored/connector_sdk/performance/__init__.py +0 -0
  46. {airbyte_agent_slack-0.1.35 → airbyte_agent_slack-0.1.37}/airbyte_agent_slack/_vendored/connector_sdk/performance/instrumentation.py +0 -0
  47. {airbyte_agent_slack-0.1.35 → airbyte_agent_slack-0.1.37}/airbyte_agent_slack/_vendored/connector_sdk/performance/metrics.py +0 -0
  48. {airbyte_agent_slack-0.1.35 → airbyte_agent_slack-0.1.37}/airbyte_agent_slack/_vendored/connector_sdk/schema/__init__.py +0 -0
  49. {airbyte_agent_slack-0.1.35 → airbyte_agent_slack-0.1.37}/airbyte_agent_slack/_vendored/connector_sdk/schema/components.py +0 -0
  50. {airbyte_agent_slack-0.1.35 → airbyte_agent_slack-0.1.37}/airbyte_agent_slack/_vendored/connector_sdk/schema/connector.py +0 -0
  51. {airbyte_agent_slack-0.1.35 → airbyte_agent_slack-0.1.37}/airbyte_agent_slack/_vendored/connector_sdk/schema/extensions.py +0 -0
  52. {airbyte_agent_slack-0.1.35 → airbyte_agent_slack-0.1.37}/airbyte_agent_slack/_vendored/connector_sdk/schema/operations.py +0 -0
  53. {airbyte_agent_slack-0.1.35 → airbyte_agent_slack-0.1.37}/airbyte_agent_slack/_vendored/connector_sdk/schema/security.py +0 -0
  54. {airbyte_agent_slack-0.1.35 → airbyte_agent_slack-0.1.37}/airbyte_agent_slack/_vendored/connector_sdk/secrets.py +0 -0
  55. {airbyte_agent_slack-0.1.35 → airbyte_agent_slack-0.1.37}/airbyte_agent_slack/_vendored/connector_sdk/telemetry/__init__.py +0 -0
  56. {airbyte_agent_slack-0.1.35 → airbyte_agent_slack-0.1.37}/airbyte_agent_slack/_vendored/connector_sdk/telemetry/config.py +0 -0
  57. {airbyte_agent_slack-0.1.35 → airbyte_agent_slack-0.1.37}/airbyte_agent_slack/_vendored/connector_sdk/telemetry/events.py +0 -0
  58. {airbyte_agent_slack-0.1.35 → airbyte_agent_slack-0.1.37}/airbyte_agent_slack/_vendored/connector_sdk/telemetry/tracker.py +0 -0
  59. {airbyte_agent_slack-0.1.35 → airbyte_agent_slack-0.1.37}/airbyte_agent_slack/_vendored/connector_sdk/types.py +0 -0
  60. {airbyte_agent_slack-0.1.35 → airbyte_agent_slack-0.1.37}/airbyte_agent_slack/_vendored/connector_sdk/utils.py +0 -0
  61. {airbyte_agent_slack-0.1.35 → airbyte_agent_slack-0.1.37}/airbyte_agent_slack/models.py +24 -24
  62. {airbyte_agent_slack-0.1.35 → airbyte_agent_slack-0.1.37}/airbyte_agent_slack/types.py +0 -0
@@ -1,5 +1,15 @@
1
1
  # Slack changelog
2
2
 
3
+ ## [0.1.37] - 2026-01-30
4
+ - Updated connector definition (YAML version 0.1.11)
5
+ - Source commit: 5f65d643
6
+ - SDK version: 0.1.0
7
+
8
+ ## [0.1.36] - 2026-01-30
9
+ - Updated connector definition (YAML version 0.1.10)
10
+ - Source commit: 5b20f488
11
+ - SDK version: 0.1.0
12
+
3
13
  ## [0.1.35] - 2026-01-30
4
14
  - Updated connector definition (YAML version 0.1.10)
5
15
  - Source commit: a3729d85
@@ -1,6 +1,6 @@
1
1
  Metadata-Version: 2.4
2
2
  Name: airbyte-agent-slack
3
- Version: 0.1.35
3
+ Version: 0.1.37
4
4
  Summary: Airbyte Slack Connector for AI platforms
5
5
  Project-URL: Homepage, https://github.com/airbytehq/airbyte-agent-connectors
6
6
  Project-URL: Documentation, https://docs.airbyte.com/ai-agents/
@@ -158,7 +158,7 @@ See the official [Slack API reference](https://api.slack.com/methods).
158
158
 
159
159
  ## Version information
160
160
 
161
- - **Package version:** 0.1.35
162
- - **Connector version:** 0.1.10
163
- - **Generated with Connector SDK commit SHA:** e4eb233f8dd57ad9bc825064625222a988db2cc6
161
+ - **Package version:** 0.1.37
162
+ - **Connector version:** 0.1.11
163
+ - **Generated with Connector SDK commit SHA:** 580ea1221eff062f41b1065a155124c85861cb18
164
164
  - **Changelog:** [View changelog](https://github.com/airbytehq/airbyte-agent-connectors/blob/main/connectors/slack/CHANGELOG.md)
@@ -125,7 +125,7 @@ See the official [Slack API reference](https://api.slack.com/methods).
125
125
 
126
126
  ## Version information
127
127
 
128
- - **Package version:** 0.1.35
129
- - **Connector version:** 0.1.10
130
- - **Generated with Connector SDK commit SHA:** e4eb233f8dd57ad9bc825064625222a988db2cc6
128
+ - **Package version:** 0.1.37
129
+ - **Connector version:** 0.1.11
130
+ - **Generated with Connector SDK commit SHA:** 580ea1221eff062f41b1065a155124c85861cb18
131
131
  - **Changelog:** [View changelog](https://github.com/airbytehq/airbyte-agent-connectors/blob/main/connectors/slack/CHANGELOG.md)
@@ -17,9 +17,9 @@ from .models import (
17
17
  ChannelPurpose,
18
18
  ChannelsListResponse,
19
19
  ChannelResponse,
20
- File,
21
- Attachment,
22
20
  Reaction,
21
+ Attachment,
22
+ File,
23
23
  Message,
24
24
  Thread,
25
25
  EditedInfo,
@@ -96,9 +96,9 @@ __all__ = [
96
96
  "ChannelPurpose",
97
97
  "ChannelsListResponse",
98
98
  "ChannelResponse",
99
- "File",
100
- "Attachment",
101
99
  "Reaction",
100
+ "Attachment",
101
+ "File",
102
102
  "Message",
103
103
  "Thread",
104
104
  "EditedInfo",
@@ -584,7 +584,7 @@ class LocalExecutor:
584
584
  return ExecutionResult(
585
585
  success=True,
586
586
  data={
587
- "status": "unhealthy",
587
+ "status": "skipped",
588
588
  "error": "No list operation available for health check",
589
589
  },
590
590
  )
@@ -599,7 +599,7 @@ class LocalExecutor:
599
599
  return ExecutionResult(
600
600
  success=True,
601
601
  data={
602
- "status": "unhealthy",
602
+ "status": "skipped",
603
603
  "error": "No standard handler available",
604
604
  },
605
605
  )
@@ -616,13 +616,14 @@ class LocalExecutor:
616
616
  )
617
617
  except Exception as e:
618
618
  return ExecutionResult(
619
- success=True,
619
+ success=False,
620
620
  data={
621
621
  "status": "unhealthy",
622
622
  "error": str(e),
623
623
  "checked_entity": check_entity,
624
624
  "checked_action": "list",
625
625
  },
626
+ error=str(e),
626
627
  )
627
628
 
628
629
  async def _execute_operation(
@@ -186,7 +186,16 @@ class HTTPXClient:
186
186
  # Try to get error message from response
187
187
  try:
188
188
  error_data = httpx_response.json()
189
- error_message = error_data.get("message") or error_data.get("error") or str(error_data)
189
+ errors_list = error_data.get("errors")
190
+ if isinstance(errors_list, list):
191
+
192
+ def _extract_error(e: object) -> str:
193
+ if isinstance(e, dict):
194
+ return str(e.get("userPresentableMessage") or e.get("message") or e.get("error") or e)
195
+ return str(e)
196
+
197
+ errors_list = ", ".join(_extract_error(e) for e in errors_list)
198
+ error_message = errors_list or error_data.get("message") or error_data.get("error") or str(error_data)
190
199
  except Exception:
191
200
  error_message = httpx_response.text or f"HTTP {status_code} error"
192
201
 
@@ -126,6 +126,17 @@ class Info(BaseModel):
126
126
  x_airbyte_example_questions: ExampleQuestions | None = Field(None, alias="x-airbyte-example-questions")
127
127
  x_airbyte_cache: CacheConfig | None = Field(None, alias="x-airbyte-cache")
128
128
  x_airbyte_replication_config: ReplicationConfig | None = Field(None, alias="x-airbyte-replication-config")
129
+ x_airbyte_skip_suggested_streams: list[str] = Field(
130
+ default_factory=list,
131
+ alias="x-airbyte-skip-suggested-streams",
132
+ description="List of Airbyte suggested streams to skip when validating cache entity coverage",
133
+ )
134
+ x_airbyte_skip_auth_methods: list[str] = Field(
135
+ default_factory=list,
136
+ alias="x-airbyte-skip-auth-methods",
137
+ description="List of Airbyte auth methods to skip when validating auth compatibility. "
138
+ "Use the SelectiveAuthenticator option key (e.g., 'Private App Credentials', 'oauth2.0')",
139
+ )
129
140
 
130
141
 
131
142
  class ServerVariable(BaseModel):
@@ -5,6 +5,7 @@ These tools help ensure that connectors are ready to ship by:
5
5
  - Checking that all entity/action operations have corresponding test cassettes
6
6
  - Validating that response schemas match the actual cassette responses
7
7
  - Detecting fields present in responses but not declared in schemas
8
+ - Validating replication compatibility with Airbyte source connectors
8
9
  """
9
10
 
10
11
  from collections import defaultdict
@@ -21,6 +22,7 @@ from .connector_model_loader import (
21
22
  )
22
23
  from .testing.spec_loader import load_test_spec
23
24
  from .types import Action, EndpointDefinition
25
+ from .validation_replication import validate_replication_compatibility
24
26
 
25
27
 
26
28
  def build_cassette_map(cassettes_dir: Path) -> Dict[Tuple[str, str], List[Path]]:
@@ -808,7 +810,25 @@ def validate_connector_readiness(connector_dir: str | Path) -> Dict[str, Any]:
808
810
  }
809
811
  )
810
812
 
811
- success = operations_missing_cassettes == 0 and cassettes_invalid == 0 and total_operations > 0
813
+ # Validate replication compatibility with Airbyte
814
+ replication_result = validate_replication_compatibility(
815
+ connector_yaml_path=config_file,
816
+ raw_spec=raw_spec,
817
+ )
818
+
819
+ # Merge replication errors/warnings into totals
820
+ # Note: If connector is not in registry, we don't count warnings since this is expected for test connectors
821
+ replication_errors = replication_result.get("errors", [])
822
+ replication_warnings = replication_result.get("warnings", [])
823
+ total_errors += len(replication_errors)
824
+
825
+ # Only count replication warnings if the connector was found in the registry
826
+ # (i.e., there are actual validation issues, not just "not found in registry")
827
+ if replication_result.get("registry_found", False):
828
+ total_warnings += len(replication_warnings)
829
+
830
+ # Update success criteria to include replication validation
831
+ success = operations_missing_cassettes == 0 and cassettes_invalid == 0 and total_operations > 0 and len(replication_errors) == 0
812
832
 
813
833
  # Check for preferred_for_check on at least one list operation
814
834
  has_preferred_check = False
@@ -834,6 +854,7 @@ def validate_connector_readiness(connector_dir: str | Path) -> Dict[str, Any]:
834
854
  "connector_name": config.name,
835
855
  "connector_path": str(connector_path),
836
856
  "validation_results": validation_results,
857
+ "replication_validation": replication_result,
837
858
  "readiness_warnings": readiness_warnings,
838
859
  "summary": {
839
860
  "total_operations": total_operations,