airbyte-agent-slack 0.1.25__py3-none-any.whl → 0.1.32__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.
@@ -17,9 +17,9 @@ from .models import (
17
17
  ChannelPurpose,
18
18
  ChannelsListResponse,
19
19
  ChannelResponse,
20
- Attachment,
21
- Reaction,
22
20
  File,
21
+ Reaction,
22
+ Attachment,
23
23
  Message,
24
24
  Thread,
25
25
  EditedInfo,
@@ -95,9 +95,9 @@ __all__ = [
95
95
  "ChannelPurpose",
96
96
  "ChannelsListResponse",
97
97
  "ChannelResponse",
98
- "Attachment",
99
- "Reaction",
100
98
  "File",
99
+ "Reaction",
100
+ "Attachment",
101
101
  "Message",
102
102
  "Thread",
103
103
  "EditedInfo",
@@ -758,7 +758,6 @@ def _generate_default_auth_config(auth_type: AuthType) -> AirbyteAuthConfig:
758
758
  description="Authentication bearer token",
759
759
  format=None,
760
760
  pattern=None,
761
- airbyte_secret=False,
762
761
  default=None,
763
762
  )
764
763
  },
@@ -778,7 +777,6 @@ def _generate_default_auth_config(auth_type: AuthType) -> AirbyteAuthConfig:
778
777
  description="Authentication username",
779
778
  format=None,
780
779
  pattern=None,
781
- airbyte_secret=False,
782
780
  default=None,
783
781
  ),
784
782
  "password": AuthConfigFieldSpec(
@@ -787,7 +785,6 @@ def _generate_default_auth_config(auth_type: AuthType) -> AirbyteAuthConfig:
787
785
  description="Authentication password",
788
786
  format=None,
789
787
  pattern=None,
790
- airbyte_secret=False,
791
788
  default=None,
792
789
  ),
793
790
  },
@@ -807,7 +804,6 @@ def _generate_default_auth_config(auth_type: AuthType) -> AirbyteAuthConfig:
807
804
  description="API authentication key",
808
805
  format=None,
809
806
  pattern=None,
810
- airbyte_secret=False,
811
807
  default=None,
812
808
  )
813
809
  },
@@ -832,7 +828,6 @@ def _generate_default_auth_config(auth_type: AuthType) -> AirbyteAuthConfig:
832
828
  description="OAuth2 access token",
833
829
  format=None,
834
830
  pattern=None,
835
- airbyte_secret=False,
836
831
  default=None,
837
832
  ),
838
833
  "refresh_token": AuthConfigFieldSpec(
@@ -841,7 +836,6 @@ def _generate_default_auth_config(auth_type: AuthType) -> AirbyteAuthConfig:
841
836
  description="OAuth2 refresh token (optional)",
842
837
  format=None,
843
838
  pattern=None,
844
- airbyte_secret=False,
845
839
  default=None,
846
840
  ),
847
841
  "client_id": AuthConfigFieldSpec(
@@ -850,7 +844,6 @@ def _generate_default_auth_config(auth_type: AuthType) -> AirbyteAuthConfig:
850
844
  description="OAuth2 client ID (optional)",
851
845
  format=None,
852
846
  pattern=None,
853
- airbyte_secret=False,
854
847
  default=None,
855
848
  ),
856
849
  "client_secret": AuthConfigFieldSpec(
@@ -859,7 +852,6 @@ def _generate_default_auth_config(auth_type: AuthType) -> AirbyteAuthConfig:
859
852
  description="OAuth2 client secret (optional)",
860
853
  format=None,
861
854
  pattern=None,
862
- airbyte_secret=False,
863
855
  default=None,
864
856
  ),
865
857
  },
@@ -490,7 +490,7 @@ class HTTPClient:
490
490
 
491
491
  if not response_text.strip():
492
492
  response_data = {}
493
- elif "application/json" in content_type or not content_type:
493
+ elif "application/json" in content_type or "+json" in content_type or not content_type:
494
494
  response_data = await response.json()
495
495
  else:
496
496
  error_msg = f"Expected JSON response for {method.upper()} {url}, got content-type: {content_type}"
@@ -380,7 +380,11 @@ def describe_entities(model: ConnectorModelProtocol) -> list[dict[str, Any]]:
380
380
  return entities
381
381
 
382
382
 
383
- def generate_tool_description(model: ConnectorModelProtocol) -> str:
383
+ def generate_tool_description(
384
+ model: ConnectorModelProtocol,
385
+ *,
386
+ enable_hosted_mode_features: bool = True,
387
+ ) -> str:
384
388
  """Generate AI tool description from connector metadata.
385
389
 
386
390
  Produces a detailed description that includes:
@@ -393,6 +397,7 @@ def generate_tool_description(model: ConnectorModelProtocol) -> str:
393
397
 
394
398
  Args:
395
399
  model: Object conforming to ConnectorModelProtocol (e.g., ConnectorModel)
400
+ enable_hosted_mode_features: When False, omit hosted-mode search guidance from the docstring.
396
401
 
397
402
  Returns:
398
403
  Formatted description string suitable for AI tool documentation
@@ -402,8 +407,9 @@ def generate_tool_description(model: ConnectorModelProtocol) -> str:
402
407
  # at the first empty line and only keeps the initial section.
403
408
 
404
409
  # Entity/action parameter details (including pagination params like limit, starting_after)
405
- search_field_paths = _collect_search_field_paths(model)
406
- lines.append("ENTITIES AND PARAMETERS:")
410
+ search_field_paths = _collect_search_field_paths(model) if enable_hosted_mode_features else {}
411
+ # Avoid a "PARAMETERS:" header because some docstring parsers treat it as a params section marker.
412
+ lines.append("ENTITIES (ACTIONS + PARAMS):")
407
413
  for entity in model.entities:
408
414
  lines.append(f" {entity.name}:")
409
415
  actions = getattr(entity, "actions", []) or []
@@ -427,8 +433,9 @@ def generate_tool_description(model: ConnectorModelProtocol) -> str:
427
433
  lines.append(" To paginate: pass starting_after=<last_id> while has_more is true")
428
434
 
429
435
  lines.append("GUIDELINES:")
430
- lines.append(' - Prefer cached search over direct API calls when using execute(): action="search" whenever possible.')
431
- lines.append(" - Direct API actions (list/get/download) are slower and should be used only if search cannot answer the query.")
436
+ if enable_hosted_mode_features:
437
+ lines.append(' - Prefer cached search over direct API calls when using execute(): action="search" whenever possible.')
438
+ lines.append(" - Direct API actions (list/get/download) are slower and should be used only if search cannot answer the query.")
432
439
  lines.append(" - Keep results small: use params.fields, params.query.filter, small params.limit, and cursor pagination.")
433
440
  lines.append(" - If output is too large, refine the query with tighter filters/fields/limit.")
434
441
 
@@ -55,7 +55,6 @@ class AuthConfigFieldSpec(BaseModel):
55
55
  description: str | None = None
56
56
  format: str | None = None # e.g., "email", "uri"
57
57
  pattern: str | None = None # Regex validation
58
- airbyte_secret: bool = Field(False, alias="airbyte_secret")
59
58
  default: Any | None = None
60
59
 
61
60
 
@@ -107,7 +107,7 @@ class SlackConnector:
107
107
  """
108
108
 
109
109
  connector_name = "slack"
110
- connector_version = "0.1.8"
110
+ connector_version = "0.1.10"
111
111
  vendored_sdk_version = "0.1.0" # Version of vendored connector-sdk
112
112
 
113
113
  # Map of (entity, action) -> needs_envelope for envelope wrapping decision
@@ -427,6 +427,7 @@ class SlackConnector:
427
427
  func: _F | None = None,
428
428
  *,
429
429
  update_docstring: bool = True,
430
+ enable_hosted_mode_features: bool = True,
430
431
  max_output_chars: int | None = DEFAULT_MAX_OUTPUT_CHARS,
431
432
  ) -> _F | Callable[[_F], _F]:
432
433
  """
@@ -445,12 +446,16 @@ class SlackConnector:
445
446
 
446
447
  Args:
447
448
  update_docstring: When True, append connector capabilities to __doc__.
449
+ enable_hosted_mode_features: When False, omit hosted-mode search sections from docstrings.
448
450
  max_output_chars: Max serialized output size before raising. Use None to disable.
449
451
  """
450
452
 
451
453
  def decorate(inner: _F) -> _F:
452
454
  if update_docstring:
453
- description = generate_tool_description(SlackConnectorModel)
455
+ description = generate_tool_description(
456
+ SlackConnectorModel,
457
+ enable_hosted_mode_features=enable_hosted_mode_features,
458
+ )
454
459
  original_doc = inner.__doc__ or ""
455
460
  if original_doc.strip():
456
461
  full_doc = f"{original_doc.strip()}\n{description}"
@@ -27,7 +27,7 @@ from uuid import (
27
27
  SlackConnectorModel: ConnectorModel = ConnectorModel(
28
28
  id=UUID('c2281cee-86f9-4a86-bb48-d23286b4c7bd'),
29
29
  name='slack',
30
- version='0.1.8',
30
+ version='0.1.10',
31
31
  base_url='https://slack.com/api',
32
32
  auth=AuthConfig(
33
33
  options=[
@@ -43,7 +43,6 @@ SlackConnectorModel: ConnectorModel = ConnectorModel(
43
43
  'api_token': AuthConfigFieldSpec(
44
44
  title='API Token',
45
45
  description='Your Slack Bot Token (xoxb-) or User Token (xoxp-)',
46
- airbyte_secret=True,
47
46
  ),
48
47
  },
49
48
  auth_mapping={'token': '${api_token}'},
@@ -71,12 +70,10 @@ SlackConnectorModel: ConnectorModel = ConnectorModel(
71
70
  'client_secret': AuthConfigFieldSpec(
72
71
  title='Client Secret',
73
72
  description="Your Slack App's Client Secret",
74
- airbyte_secret=True,
75
73
  ),
76
74
  'access_token': AuthConfigFieldSpec(
77
75
  title='Access Token',
78
76
  description='OAuth access token (bot token from oauth.v2.access response)',
79
- airbyte_secret=True,
80
77
  ),
81
78
  },
82
79
  auth_mapping={
@@ -176,35 +176,6 @@ class ChannelResponse(BaseModel):
176
176
  ok: Union[bool, Any] = Field(default=None)
177
177
  channel: Union[Channel, Any] = Field(default=None)
178
178
 
179
- class Attachment(BaseModel):
180
- """Message attachment"""
181
- model_config = ConfigDict(extra="allow", populate_by_name=True)
182
-
183
- id: Union[int | None, Any] = Field(default=None)
184
- fallback: Union[str | None, Any] = Field(default=None)
185
- color: Union[str | None, Any] = Field(default=None)
186
- pretext: Union[str | None, Any] = Field(default=None)
187
- author_name: Union[str | None, Any] = Field(default=None)
188
- author_link: Union[str | None, Any] = Field(default=None)
189
- author_icon: Union[str | None, Any] = Field(default=None)
190
- title: Union[str | None, Any] = Field(default=None)
191
- title_link: Union[str | None, Any] = Field(default=None)
192
- text: Union[str | None, Any] = Field(default=None)
193
- fields: Union[list[dict[str, Any]] | None, Any] = Field(default=None)
194
- image_url: Union[str | None, Any] = Field(default=None)
195
- thumb_url: Union[str | None, Any] = Field(default=None)
196
- footer: Union[str | None, Any] = Field(default=None)
197
- footer_icon: Union[str | None, Any] = Field(default=None)
198
- ts: Union[Any, Any] = Field(default=None)
199
-
200
- class Reaction(BaseModel):
201
- """Message reaction"""
202
- model_config = ConfigDict(extra="allow", populate_by_name=True)
203
-
204
- name: Union[str | None, Any] = Field(default=None)
205
- users: Union[list[str] | None, Any] = Field(default=None)
206
- count: Union[int | None, Any] = Field(default=None)
207
-
208
179
  class File(BaseModel):
209
180
  """File object"""
210
181
  model_config = ConfigDict(extra="allow", populate_by_name=True)
@@ -229,6 +200,35 @@ class File(BaseModel):
229
200
  created: Union[int | None, Any] = Field(default=None)
230
201
  timestamp: Union[int | None, Any] = Field(default=None)
231
202
 
203
+ class Reaction(BaseModel):
204
+ """Message reaction"""
205
+ model_config = ConfigDict(extra="allow", populate_by_name=True)
206
+
207
+ name: Union[str | None, Any] = Field(default=None)
208
+ users: Union[list[str] | None, Any] = Field(default=None)
209
+ count: Union[int | None, Any] = Field(default=None)
210
+
211
+ class Attachment(BaseModel):
212
+ """Message attachment"""
213
+ model_config = ConfigDict(extra="allow", populate_by_name=True)
214
+
215
+ id: Union[int | None, Any] = Field(default=None)
216
+ fallback: Union[str | None, Any] = Field(default=None)
217
+ color: Union[str | None, Any] = Field(default=None)
218
+ pretext: Union[str | None, Any] = Field(default=None)
219
+ author_name: Union[str | None, Any] = Field(default=None)
220
+ author_link: Union[str | None, Any] = Field(default=None)
221
+ author_icon: Union[str | None, Any] = Field(default=None)
222
+ title: Union[str | None, Any] = Field(default=None)
223
+ title_link: Union[str | None, Any] = Field(default=None)
224
+ text: Union[str | None, Any] = Field(default=None)
225
+ fields: Union[list[dict[str, Any]] | None, Any] = Field(default=None)
226
+ image_url: Union[str | None, Any] = Field(default=None)
227
+ thumb_url: Union[str | None, Any] = Field(default=None)
228
+ footer: Union[str | None, Any] = Field(default=None)
229
+ footer_icon: Union[str | None, Any] = Field(default=None)
230
+ ts: Union[Any, Any] = Field(default=None)
231
+
232
232
  class Message(BaseModel):
233
233
  """Slack message object"""
234
234
  model_config = ConfigDict(extra="allow", populate_by_name=True)
@@ -1,6 +1,6 @@
1
1
  Metadata-Version: 2.4
2
2
  Name: airbyte-agent-slack
3
- Version: 0.1.25
3
+ Version: 0.1.32
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/
@@ -130,13 +130,11 @@ async def slack_execute(entity: str, action: str, params: dict | None = None):
130
130
  return await connector.execute(entity, action, params or {})
131
131
  ```
132
132
 
133
- ## Replication Configuration
134
-
135
- This connector supports replication configuration for MULTI mode sources. See the [full reference documentation](./REFERENCE.md#replication-configuration) for details on available options like `start_date`.
136
-
137
133
  ## Full documentation
138
134
 
139
- This connector supports the following entities and actions.
135
+ ### Entities and actions
136
+
137
+ This connector supports the following entities and actions. For more details, see this connector's [full reference documentation](REFERENCE.md).
140
138
 
141
139
  | Entity | Actions |
142
140
  |--------|---------|
@@ -150,14 +148,16 @@ This connector supports the following entities and actions.
150
148
  | Reactions | [Create](./REFERENCE.md#reactions-create) |
151
149
 
152
150
 
153
- For all authentication options, see the connector's [authentication documentation](AUTH.md).
151
+ ### Authentication and configuration
152
+
153
+ For all authentication and configuration options, see the connector's [authentication documentation](AUTH.md).
154
154
 
155
- For detailed documentation on available actions and parameters, see this connector's [full reference documentation](./REFERENCE.md).
155
+ ### Slack API docs
156
156
 
157
- For the service's official API docs, see the [Slack API reference](https://api.slack.com/methods).
157
+ See the official [Slack API reference](https://api.slack.com/methods).
158
158
 
159
159
  ## Version information
160
160
 
161
- - **Package version:** 0.1.25
162
- - **Connector version:** 0.1.8
163
- - **Generated with Connector SDK commit SHA:** 4bded58d3cabff3ac257c30c425ccab118f6ed87
161
+ - **Package version:** 0.1.32
162
+ - **Connector version:** 0.1.10
163
+ - **Generated with Connector SDK commit SHA:** 97007bbdad3a6ac982ee2c0cdd667acdb5c12d3c
@@ -1,18 +1,18 @@
1
- airbyte_agent_slack/__init__.py,sha256=TDxULjzfyyXPzw-VQJjgA1WWc-qRMJ96vs5NHq_zupU,3703
2
- airbyte_agent_slack/connector.py,sha256=Z_HClKPXQQuYboYlUQYJ4WOqru8uwJYLNA5vPn_0UlQ,39588
3
- airbyte_agent_slack/connector_model.py,sha256=gEtUk1vNnmnHHhNfZg34lLGzIx9YKQ1HwGKGWmqVG_k,194646
4
- airbyte_agent_slack/models.py,sha256=Vbnwtjz7om8TwxG2TQuKeGoZVroG8DZlNdZ9P6nlisI,28916
1
+ airbyte_agent_slack/__init__.py,sha256=LI0Ft_RZcoyUgY6y00MYQDN9Cc93UeuqxtGwz0IIUV4,3703
2
+ airbyte_agent_slack/connector.py,sha256=qHDxLbxnn_NRG1wtTzbHC0R3zm8dJ2Rghhd6PeV3Zi0,39858
3
+ airbyte_agent_slack/connector_model.py,sha256=ZZMvJ6z56KfY5Yo5XbHP2O3wl4X-RG3FrxBjiLMIZEo,194500
4
+ airbyte_agent_slack/models.py,sha256=ovaECkXfG4iXG4uR9FZbsUJBcF_AJtPrGnldvuMjDYw,28916
5
5
  airbyte_agent_slack/types.py,sha256=QDLOYuH23w4H_5fxVjTcBBz6BMYm2PWbuM1K_EOcD4o,32154
6
6
  airbyte_agent_slack/_vendored/__init__.py,sha256=ILl7AHXMui__swyrjxrh9yRa4dLiwBvV6axPWFWty80,38
7
7
  airbyte_agent_slack/_vendored/connector_sdk/__init__.py,sha256=T5o7roU6NSpH-lCAGZ338sE5dlh4ZU6i6IkeG1zpems,1949
8
8
  airbyte_agent_slack/_vendored/connector_sdk/auth_strategies.py,sha256=5Sb9moUp623o67Q2wMa8iZldJH08y4gQdoutoO_75Iw,42088
9
9
  airbyte_agent_slack/_vendored/connector_sdk/auth_template.py,sha256=nju4jqlFC_KI82ILNumNIyiUtRJcy7J94INIZ0QraI4,4454
10
- airbyte_agent_slack/_vendored/connector_sdk/connector_model_loader.py,sha256=VPNu4KKQPDmF9YIDH0qVvvpZ-BACDZ6joNgFQEZbjo8,41828
10
+ airbyte_agent_slack/_vendored/connector_sdk/connector_model_loader.py,sha256=AW9bsdggzuc3ydy2bYYF33L6LxLKLQer9Wm47IOuQw0,41492
11
11
  airbyte_agent_slack/_vendored/connector_sdk/constants.py,sha256=AtzOvhDMWbRJgpsQNWl5tkogHD6mWgEY668PgRmgtOY,2737
12
12
  airbyte_agent_slack/_vendored/connector_sdk/exceptions.py,sha256=ss5MGv9eVPmsbLcLWetuu3sDmvturwfo6Pw3M37Oq5k,481
13
13
  airbyte_agent_slack/_vendored/connector_sdk/extensions.py,sha256=XWRRoJOOrwUHSKbuQt5DU7CCu8ePzhd_HuP7c_uD77w,21376
14
- airbyte_agent_slack/_vendored/connector_sdk/http_client.py,sha256=yucwu3OvJh5wLQa1mk-gTKjtqjKKucMw5ltmlE7mk1c,28000
15
- airbyte_agent_slack/_vendored/connector_sdk/introspection.py,sha256=kRVI4TDQDLdcCnTBUML8ycAtdqAQufVh-027sMkb4i8,19165
14
+ airbyte_agent_slack/_vendored/connector_sdk/http_client.py,sha256=09Fclbq4wrg38EM2Yh2kHiykQVXqdAGby024elcEz8E,28027
15
+ airbyte_agent_slack/_vendored/connector_sdk/introspection.py,sha256=e9uWn2ofpeehoBbzNgts_bjlKLn8ayA1Y3OpDC3b7ZA,19517
16
16
  airbyte_agent_slack/_vendored/connector_sdk/secrets.py,sha256=J9ezMu4xNnLW11xY5RCre6DHP7YMKZCqwGJfk7ufHAM,6855
17
17
  airbyte_agent_slack/_vendored/connector_sdk/types.py,sha256=in8gHsn5nsScujOfHZmkOgNmqmJKiPyNNjg59m5fGWc,8807
18
18
  airbyte_agent_slack/_vendored/connector_sdk/utils.py,sha256=G4LUXOC2HzPoND2v4tQW68R9uuPX9NQyCjaGxb7Kpl0,1958
@@ -47,11 +47,11 @@ airbyte_agent_slack/_vendored/connector_sdk/schema/components.py,sha256=nJIPieav
47
47
  airbyte_agent_slack/_vendored/connector_sdk/schema/connector.py,sha256=mSZk1wr2YSdRj9tTRsPAuIlCzd_xZLw-Bzl1sMwE0rE,3731
48
48
  airbyte_agent_slack/_vendored/connector_sdk/schema/extensions.py,sha256=5hgpFHK7fzpzegCkJk882DeIP79bCx_qairKJhvPMZ8,9590
49
49
  airbyte_agent_slack/_vendored/connector_sdk/schema/operations.py,sha256=RpzGtAI4yvAtMHAfMUMcUwgHv_qJojnKlNb75_agUF8,5729
50
- airbyte_agent_slack/_vendored/connector_sdk/schema/security.py,sha256=6ljzf_JHs4amnQX9AhePcEsT8P3ZnTSC4xeg7-cvsNQ,9100
50
+ airbyte_agent_slack/_vendored/connector_sdk/schema/security.py,sha256=1CVCavrPdHHyk7B6JtUD75yRS_hWLCemZF1zwGbdqxg,9036
51
51
  airbyte_agent_slack/_vendored/connector_sdk/telemetry/__init__.py,sha256=RaLgkBU4dfxn1LC5Y0Q9rr2PJbrwjxvPgBLmq8_WafE,211
52
52
  airbyte_agent_slack/_vendored/connector_sdk/telemetry/config.py,sha256=tLmQwAFD0kP1WyBGWBS3ysaudN9H3e-3EopKZi6cGKg,885
53
53
  airbyte_agent_slack/_vendored/connector_sdk/telemetry/events.py,sha256=8Y1NbXiwISX-V_wRofY7PqcwEXD0dLMnntKkY6XFU2s,1328
54
54
  airbyte_agent_slack/_vendored/connector_sdk/telemetry/tracker.py,sha256=Ftrk0_ddfM7dZG8hF9xBuPwhbc9D6JZ7Q9qs5o3LEyA,5579
55
- airbyte_agent_slack-0.1.25.dist-info/METADATA,sha256=ZhsHvE4W07Ko8dqlkoMBitEcoXhAYbelwV0QjCQanQo,6680
56
- airbyte_agent_slack-0.1.25.dist-info/WHEEL,sha256=WLgqFyCfm_KASv4WHyYy0P3pM_m7J5L9k2skdKLirC8,87
57
- airbyte_agent_slack-0.1.25.dist-info/RECORD,,
55
+ airbyte_agent_slack-0.1.32.dist-info/METADATA,sha256=U2UPmUL62itN-FcxSAUEEmjT-SM6QKw2IGZS0nsF1eA,6468
56
+ airbyte_agent_slack-0.1.32.dist-info/WHEEL,sha256=WLgqFyCfm_KASv4WHyYy0P3pM_m7J5L9k2skdKLirC8,87
57
+ airbyte_agent_slack-0.1.32.dist-info/RECORD,,