airbyte-agent-mcp 0.1.60__py3-none-any.whl → 0.1.64__py3-none-any.whl

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.
@@ -519,13 +519,14 @@ def _parse_oauth2_config(scheme: Any) -> dict[str, str]:
519
519
  config["refresh_url"] = refresh_url
520
520
 
521
521
  # Extract custom refresh configuration from x-airbyte-token-refresh extension
522
+ # Note: x_token_refresh is a Dict[str, Any], not a Pydantic model, so use .get()
522
523
  x_token_refresh = getattr(scheme, "x_token_refresh", None)
523
524
  if x_token_refresh:
524
- auth_style = getattr(x_token_refresh, "auth_style", None)
525
+ auth_style = x_token_refresh.get("auth_style")
525
526
  if auth_style:
526
527
  config["auth_style"] = auth_style
527
528
 
528
- body_format = getattr(x_token_refresh, "body_format", None)
529
+ body_format = x_token_refresh.get("body_format")
529
530
  if body_format:
530
531
  config["body_format"] = body_format
531
532
 
@@ -152,6 +152,7 @@ class Server(BaseModel):
152
152
  url: str
153
153
  description: str | None = None
154
154
  variables: Dict[str, ServerVariable] = Field(default_factory=dict)
155
+ x_airbyte_replication_user_config_mapping: Dict[str, str] | None = Field(default=None, alias="x-airbyte-replication-user-config-mapping")
155
156
 
156
157
  @field_validator("url")
157
158
  @classmethod
@@ -12,7 +12,7 @@ to Operation, Schema, or other models when their respective features
12
12
  are implemented.
13
13
  """
14
14
 
15
- from typing import Literal, Optional
15
+ from typing import Literal
16
16
 
17
17
  from pydantic import BaseModel, ConfigDict, Field
18
18
 
@@ -109,6 +109,30 @@ class RetryConfig(BaseModel):
109
109
  retry_after_format: Literal["seconds", "milliseconds", "unix_timestamp"] = "seconds"
110
110
 
111
111
 
112
+ class CacheFieldProperty(BaseModel):
113
+ """
114
+ Nested property definition for object-type cache fields.
115
+
116
+ Supports recursive nesting to represent complex nested schemas in cache field definitions.
117
+ Used when a cache field has type 'object' and needs to define its internal structure.
118
+
119
+ Example YAML usage:
120
+ - name: collaboration
121
+ type: ['null', 'object']
122
+ description: "Collaboration data"
123
+ properties:
124
+ brief:
125
+ type: ['null', 'string']
126
+ comments:
127
+ type: ['null', 'array']
128
+ """
129
+
130
+ model_config = ConfigDict(populate_by_name=True, extra="forbid")
131
+
132
+ type: str | list[str]
133
+ properties: dict[str, "CacheFieldProperty"] | None = None
134
+
135
+
112
136
  class CacheFieldConfig(BaseModel):
113
137
  """
114
138
  Field configuration for cache mapping.
@@ -116,15 +140,19 @@ class CacheFieldConfig(BaseModel):
116
140
  Defines a single field in a cache entity, with optional name aliasing
117
141
  to map between user-facing field names and cache storage names.
118
142
 
143
+ For object-type fields, supports nested properties to define the internal structure
144
+ of complex nested schemas.
145
+
119
146
  Used in x-airbyte-cache extension for api_search operations.
120
147
  """
121
148
 
122
149
  model_config = ConfigDict(populate_by_name=True, extra="forbid")
123
150
 
124
151
  name: str
125
- x_airbyte_name: Optional[str] = Field(default=None, alias="x-airbyte-name")
152
+ x_airbyte_name: str | None = Field(default=None, alias="x-airbyte-name")
126
153
  type: str | list[str]
127
154
  description: str
155
+ properties: dict[str, CacheFieldProperty] | None = None
128
156
 
129
157
  @property
130
158
  def cache_name(self) -> str:
@@ -145,7 +173,7 @@ class CacheEntityConfig(BaseModel):
145
173
  model_config = ConfigDict(populate_by_name=True, extra="forbid")
146
174
 
147
175
  entity: str
148
- x_airbyte_name: Optional[str] = Field(default=None, alias="x-airbyte-name")
176
+ x_airbyte_name: str | None = Field(default=None, alias="x-airbyte-name")
149
177
  fields: list[CacheFieldConfig]
150
178
 
151
179
  @property
@@ -186,7 +214,7 @@ class CacheConfig(BaseModel):
186
214
 
187
215
  entities: list[CacheEntityConfig]
188
216
 
189
- def get_entity_mapping(self, user_entity: str) -> Optional[CacheEntityConfig]:
217
+ def get_entity_mapping(self, user_entity: str) -> CacheEntityConfig | None:
190
218
  """
191
219
  Get entity config by user-facing name.
192
220
 
@@ -1,6 +1,6 @@
1
1
  Metadata-Version: 2.4
2
2
  Name: airbyte-agent-mcp
3
- Version: 0.1.60
3
+ Version: 0.1.64
4
4
  Summary: MCP server that exposes Airbyte Connector SDK as MCP tools
5
5
  Author-email: Airbyte Support <support@airbyte.io>
6
6
  Requires-Python: >=3.13
@@ -10,7 +10,7 @@ airbyte_agent_mcp/_vendored/__init__.py,sha256=ILl7AHXMui__swyrjxrh9yRa4dLiwBvV6
10
10
  airbyte_agent_mcp/_vendored/connector_sdk/__init__.py,sha256=T5o7roU6NSpH-lCAGZ338sE5dlh4ZU6i6IkeG1zpems,1949
11
11
  airbyte_agent_mcp/_vendored/connector_sdk/auth_strategies.py,sha256=BdjAzFRTwXCmLFqYWqZ4Dx9RsqtI7pAkw-8NynSK4sQ,39914
12
12
  airbyte_agent_mcp/_vendored/connector_sdk/auth_template.py,sha256=nju4jqlFC_KI82ILNumNIyiUtRJcy7J94INIZ0QraI4,4454
13
- airbyte_agent_mcp/_vendored/connector_sdk/connector_model_loader.py,sha256=Cx9wPhKwWfzkc8i63IevL0EsN3iWUl_OA-_jA9EKNcE,34877
13
+ airbyte_agent_mcp/_vendored/connector_sdk/connector_model_loader.py,sha256=b88aoMynHxtG2dhzclkWrLiJbefTiKMzReyj3lOiwJI,34940
14
14
  airbyte_agent_mcp/_vendored/connector_sdk/constants.py,sha256=AtzOvhDMWbRJgpsQNWl5tkogHD6mWgEY668PgRmgtOY,2737
15
15
  airbyte_agent_mcp/_vendored/connector_sdk/exceptions.py,sha256=ss5MGv9eVPmsbLcLWetuu3sDmvturwfo6Pw3M37Oq5k,481
16
16
  airbyte_agent_mcp/_vendored/connector_sdk/extensions.py,sha256=XWRRoJOOrwUHSKbuQt5DU7CCu8ePzhd_HuP7c_uD77w,21376
@@ -45,16 +45,16 @@ airbyte_agent_mcp/_vendored/connector_sdk/performance/__init__.py,sha256=Sp5fSd1
45
45
  airbyte_agent_mcp/_vendored/connector_sdk/performance/instrumentation.py,sha256=_dXvNiqdndIBwDjeDKNViWzn_M5FkSUsMmJtFldrmsM,1504
46
46
  airbyte_agent_mcp/_vendored/connector_sdk/performance/metrics.py,sha256=FRff7dKt4iwt_A7pxV5n9kAGBR756PC7q8-weWygPSM,2817
47
47
  airbyte_agent_mcp/_vendored/connector_sdk/schema/__init__.py,sha256=Uymu-QuzGJuMxexBagIvUxpVAigIuIhz3KeBl_Vu4Ko,1638
48
- airbyte_agent_mcp/_vendored/connector_sdk/schema/base.py,sha256=RcsVLrO0L57g4kWfpDWjfc9gelvecplmoy43Zi-7GEY,4944
48
+ airbyte_agent_mcp/_vendored/connector_sdk/schema/base.py,sha256=4RYTkCWgyS5Z75z9TKj9vXySfO00HJ03QDtbdVYeHYM,5086
49
49
  airbyte_agent_mcp/_vendored/connector_sdk/schema/components.py,sha256=x3YCM1p2n_xHi50fMeOX0mXUiPqjGlLHs3Go8jXokb0,7895
50
50
  airbyte_agent_mcp/_vendored/connector_sdk/schema/connector.py,sha256=mSZk1wr2YSdRj9tTRsPAuIlCzd_xZLw-Bzl1sMwE0rE,3731
51
- airbyte_agent_mcp/_vendored/connector_sdk/schema/extensions.py,sha256=YuA40iwQeioPYIxJRM7VBY6CrbtT9AKYFoJrF3lFN3M,6239
51
+ airbyte_agent_mcp/_vendored/connector_sdk/schema/extensions.py,sha256=f7VhHrcIYxaPOJHMc4g0lpy04pZTbx5nlroNzAu5B9Q,7135
52
52
  airbyte_agent_mcp/_vendored/connector_sdk/schema/operations.py,sha256=RpzGtAI4yvAtMHAfMUMcUwgHv_qJojnKlNb75_agUF8,5729
53
53
  airbyte_agent_mcp/_vendored/connector_sdk/schema/security.py,sha256=zQ9RRuF3LBgLQi_4cItmjXbG_5WKlmCNM3nCil30H90,8470
54
54
  airbyte_agent_mcp/_vendored/connector_sdk/telemetry/__init__.py,sha256=RaLgkBU4dfxn1LC5Y0Q9rr2PJbrwjxvPgBLmq8_WafE,211
55
55
  airbyte_agent_mcp/_vendored/connector_sdk/telemetry/config.py,sha256=tLmQwAFD0kP1WyBGWBS3ysaudN9H3e-3EopKZi6cGKg,885
56
56
  airbyte_agent_mcp/_vendored/connector_sdk/telemetry/events.py,sha256=8Y1NbXiwISX-V_wRofY7PqcwEXD0dLMnntKkY6XFU2s,1328
57
57
  airbyte_agent_mcp/_vendored/connector_sdk/telemetry/tracker.py,sha256=Ftrk0_ddfM7dZG8hF9xBuPwhbc9D6JZ7Q9qs5o3LEyA,5579
58
- airbyte_agent_mcp-0.1.60.dist-info/METADATA,sha256=KRW4oLq5QYG2rUlpeCpSMXtfpytf0BEiVHe5wg7f5nk,3009
59
- airbyte_agent_mcp-0.1.60.dist-info/WHEEL,sha256=WLgqFyCfm_KASv4WHyYy0P3pM_m7J5L9k2skdKLirC8,87
60
- airbyte_agent_mcp-0.1.60.dist-info/RECORD,,
58
+ airbyte_agent_mcp-0.1.64.dist-info/METADATA,sha256=4IimXK4qhjfTEjYo-Ya1aKq9Y7ABo2t7MExRZ1GOnRk,3009
59
+ airbyte_agent_mcp-0.1.64.dist-info/WHEEL,sha256=WLgqFyCfm_KASv4WHyYy0P3pM_m7J5L9k2skdKLirC8,87
60
+ airbyte_agent_mcp-0.1.64.dist-info/RECORD,,