matimo 0.1.0-alpha.3 → 0.1.0-alpha.4

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 (158) hide show
  1. package/README.md +124 -598
  2. package/package.json +23 -23
  3. package/packages/cli/bin/matimo.cjs +26 -0
  4. package/packages/cli/dist/cli.d.ts +6 -0
  5. package/packages/cli/dist/cli.d.ts.map +1 -0
  6. package/packages/cli/dist/cli.js +95 -0
  7. package/packages/cli/dist/cli.js.map +1 -0
  8. package/packages/cli/dist/commands/install.d.ts +6 -0
  9. package/packages/cli/dist/commands/install.d.ts.map +1 -0
  10. package/packages/cli/dist/commands/install.js +48 -0
  11. package/packages/cli/dist/commands/install.js.map +1 -0
  12. package/packages/cli/dist/commands/list.d.ts +9 -0
  13. package/packages/cli/dist/commands/list.d.ts.map +1 -0
  14. package/packages/cli/dist/commands/list.js +70 -0
  15. package/packages/cli/dist/commands/list.js.map +1 -0
  16. package/packages/cli/dist/commands/search.d.ts +2 -0
  17. package/packages/cli/dist/commands/search.d.ts.map +1 -0
  18. package/packages/cli/dist/commands/search.js +148 -0
  19. package/packages/cli/dist/commands/search.js.map +1 -0
  20. package/packages/core/dist/src/auth/oauth2-config.d.ts.map +1 -0
  21. package/packages/core/dist/src/auth/oauth2-config.js.map +1 -0
  22. package/packages/core/dist/src/auth/oauth2-handler.d.ts.map +1 -0
  23. package/packages/core/dist/src/auth/oauth2-handler.js.map +1 -0
  24. package/packages/core/dist/src/auth/oauth2-provider-loader.d.ts.map +1 -0
  25. package/packages/core/dist/src/auth/oauth2-provider-loader.js.map +1 -0
  26. package/{dist → packages/core/dist/src}/core/schema.d.ts +11 -1
  27. package/packages/core/dist/src/core/schema.d.ts.map +1 -0
  28. package/{dist → packages/core/dist/src}/core/schema.js +12 -3
  29. package/packages/core/dist/src/core/schema.js.map +1 -0
  30. package/{dist → packages/core/dist/src}/core/tool-loader.d.ts +16 -0
  31. package/packages/core/dist/src/core/tool-loader.d.ts.map +1 -0
  32. package/{dist → packages/core/dist/src}/core/tool-loader.js +97 -1
  33. package/packages/core/dist/src/core/tool-loader.js.map +1 -0
  34. package/packages/core/dist/src/core/tool-registry.d.ts.map +1 -0
  35. package/packages/core/dist/src/core/tool-registry.js.map +1 -0
  36. package/{dist → packages/core/dist/src}/core/types.d.ts +15 -1
  37. package/packages/core/dist/src/core/types.d.ts.map +1 -0
  38. package/{dist → packages/core/dist/src}/core/types.js.map +1 -1
  39. package/packages/core/dist/src/decorators/index.d.ts.map +1 -0
  40. package/packages/core/dist/src/decorators/index.js.map +1 -0
  41. package/packages/core/dist/src/decorators/tool-decorator.d.ts.map +1 -0
  42. package/packages/core/dist/src/decorators/tool-decorator.js.map +1 -0
  43. package/packages/core/dist/src/encodings/parameter-encoding.d.ts.map +1 -0
  44. package/packages/core/dist/src/encodings/parameter-encoding.js.map +1 -0
  45. package/packages/core/dist/src/errors/matimo-error.d.ts.map +1 -0
  46. package/packages/core/dist/src/errors/matimo-error.js.map +1 -0
  47. package/packages/core/dist/src/executors/command-executor.d.ts.map +1 -0
  48. package/packages/core/dist/src/executors/command-executor.js.map +1 -0
  49. package/packages/core/dist/src/executors/function-executor.d.ts +23 -0
  50. package/packages/core/dist/src/executors/function-executor.d.ts.map +1 -0
  51. package/packages/core/dist/src/executors/function-executor.js +164 -0
  52. package/packages/core/dist/src/executors/function-executor.js.map +1 -0
  53. package/packages/core/dist/src/executors/http-executor.d.ts.map +1 -0
  54. package/packages/core/dist/src/executors/http-executor.js.map +1 -0
  55. package/{dist → packages/core/dist/src}/index.d.ts +5 -1
  56. package/packages/core/dist/src/index.d.ts.map +1 -0
  57. package/{dist → packages/core/dist/src}/index.js +3 -0
  58. package/packages/core/dist/src/index.js.map +1 -0
  59. package/packages/core/dist/src/integrations/langchain.d.ts +46 -0
  60. package/packages/core/dist/src/integrations/langchain.d.ts.map +1 -0
  61. package/packages/core/dist/src/integrations/langchain.js +197 -0
  62. package/packages/core/dist/src/integrations/langchain.js.map +1 -0
  63. package/{dist → packages/core/dist/src}/matimo-instance.d.ts +30 -4
  64. package/packages/core/dist/src/matimo-instance.d.ts.map +1 -0
  65. package/{dist → packages/core/dist/src}/matimo-instance.js +63 -10
  66. package/packages/core/dist/src/matimo-instance.js.map +1 -0
  67. package/packages/core/dist/tools/calculator/calculator.d.ts +26 -0
  68. package/packages/core/dist/tools/calculator/calculator.d.ts.map +1 -0
  69. package/packages/core/dist/tools/calculator/calculator.js +104 -0
  70. package/packages/core/dist/tools/calculator/calculator.js.map +1 -0
  71. package/packages/core/dist/tsconfig.tsbuildinfo +1 -0
  72. package/dist/auth/oauth2-config.d.ts.map +0 -1
  73. package/dist/auth/oauth2-config.js.map +0 -1
  74. package/dist/auth/oauth2-handler.d.ts.map +0 -1
  75. package/dist/auth/oauth2-handler.js.map +0 -1
  76. package/dist/auth/oauth2-provider-loader.d.ts.map +0 -1
  77. package/dist/auth/oauth2-provider-loader.js.map +0 -1
  78. package/dist/core/schema.d.ts.map +0 -1
  79. package/dist/core/schema.js.map +0 -1
  80. package/dist/core/tool-loader.d.ts.map +0 -1
  81. package/dist/core/tool-loader.js.map +0 -1
  82. package/dist/core/tool-registry.d.ts.map +0 -1
  83. package/dist/core/tool-registry.js.map +0 -1
  84. package/dist/core/types.d.ts.map +0 -1
  85. package/dist/decorators/index.d.ts.map +0 -1
  86. package/dist/decorators/index.js.map +0 -1
  87. package/dist/decorators/tool-decorator.d.ts.map +0 -1
  88. package/dist/decorators/tool-decorator.js.map +0 -1
  89. package/dist/encodings/parameter-encoding.d.ts.map +0 -1
  90. package/dist/encodings/parameter-encoding.js.map +0 -1
  91. package/dist/errors/matimo-error.d.ts.map +0 -1
  92. package/dist/errors/matimo-error.js.map +0 -1
  93. package/dist/executors/command-executor.d.ts.map +0 -1
  94. package/dist/executors/command-executor.js.map +0 -1
  95. package/dist/executors/http-executor.d.ts.map +0 -1
  96. package/dist/executors/http-executor.js.map +0 -1
  97. package/dist/index.d.ts.map +0 -1
  98. package/dist/index.js.map +0 -1
  99. package/dist/matimo-instance.d.ts.map +0 -1
  100. package/dist/matimo-instance.js.map +0 -1
  101. package/tools/calculator/calculator.ts +0 -78
  102. package/tools/calculator/definition.yaml +0 -71
  103. package/tools/echo-tool/definition.yaml +0 -35
  104. package/tools/examples/calculator.yaml +0 -54
  105. package/tools/examples/echo-tool.yaml +0 -35
  106. package/tools/examples/http-client.yaml +0 -66
  107. package/tools/github/definition.yaml +0 -41
  108. package/tools/gmail/README.md +0 -1189
  109. package/tools/gmail/create-draft/definition.yaml +0 -99
  110. package/tools/gmail/definition.yaml +0 -49
  111. package/tools/gmail/delete-message/definition.yaml +0 -42
  112. package/tools/gmail/get-message/definition.yaml +0 -89
  113. package/tools/gmail/list-messages/definition.yaml +0 -84
  114. package/tools/gmail/send-email/definition.yaml +0 -95
  115. package/tools/http-client/definition.yaml +0 -73
  116. package/tools/slack/README.md +0 -200
  117. package/tools/slack/assets/icon.svg +0 -9
  118. package/tools/slack/assets/logo-dark.svg +0 -14
  119. package/tools/slack/assets/logo-light.svg +0 -14
  120. package/tools/slack/assets/logo.svg +0 -14
  121. package/tools/slack/definition.yaml +0 -54
  122. package/tools/slack/get-user/definition.yaml +0 -31
  123. package/tools/slack/list-channels/definition.yaml +0 -46
  124. package/tools/slack/send-message/definition.yaml +0 -30
  125. package/tools/slack/slack_add_reaction/definition.yaml +0 -45
  126. package/tools/slack/slack_create_channel/definition.yaml +0 -41
  127. package/tools/slack/slack_get_channel_history/definition.yaml +0 -58
  128. package/tools/slack/slack_get_reactions/definition.yaml +0 -36
  129. package/tools/slack/slack_get_thread_replies/definition.yaml +0 -45
  130. package/tools/slack/slack_get_user_info/definition.yaml +0 -32
  131. package/tools/slack/slack_join_channel/definition.yaml +0 -35
  132. package/tools/slack/slack_reply_to_message/definition.yaml +0 -49
  133. package/tools/slack/slack_search_messages/definition.yaml +0 -46
  134. package/tools/slack/slack_send_channel_message/definition.yaml +0 -34
  135. package/tools/slack/slack_send_dm/definition.yaml +0 -37
  136. package/tools/slack/slack_set_channel_topic/definition.yaml +0 -40
  137. package/tools/slack/slack_upload_file/definition.yaml +0 -152
  138. /package/{dist → packages/core/dist/src}/auth/oauth2-config.d.ts +0 -0
  139. /package/{dist → packages/core/dist/src}/auth/oauth2-config.js +0 -0
  140. /package/{dist → packages/core/dist/src}/auth/oauth2-handler.d.ts +0 -0
  141. /package/{dist → packages/core/dist/src}/auth/oauth2-handler.js +0 -0
  142. /package/{dist → packages/core/dist/src}/auth/oauth2-provider-loader.d.ts +0 -0
  143. /package/{dist → packages/core/dist/src}/auth/oauth2-provider-loader.js +0 -0
  144. /package/{dist → packages/core/dist/src}/core/tool-registry.d.ts +0 -0
  145. /package/{dist → packages/core/dist/src}/core/tool-registry.js +0 -0
  146. /package/{dist → packages/core/dist/src}/core/types.js +0 -0
  147. /package/{dist → packages/core/dist/src}/decorators/index.d.ts +0 -0
  148. /package/{dist → packages/core/dist/src}/decorators/index.js +0 -0
  149. /package/{dist → packages/core/dist/src}/decorators/tool-decorator.d.ts +0 -0
  150. /package/{dist → packages/core/dist/src}/decorators/tool-decorator.js +0 -0
  151. /package/{dist → packages/core/dist/src}/encodings/parameter-encoding.d.ts +0 -0
  152. /package/{dist → packages/core/dist/src}/encodings/parameter-encoding.js +0 -0
  153. /package/{dist → packages/core/dist/src}/errors/matimo-error.d.ts +0 -0
  154. /package/{dist → packages/core/dist/src}/errors/matimo-error.js +0 -0
  155. /package/{dist → packages/core/dist/src}/executors/command-executor.d.ts +0 -0
  156. /package/{dist → packages/core/dist/src}/executors/command-executor.js +0 -0
  157. /package/{dist → packages/core/dist/src}/executors/http-executor.d.ts +0 -0
  158. /package/{dist → packages/core/dist/src}/executors/http-executor.js +0 -0
@@ -1,35 +0,0 @@
1
- name: slack_join_channel
2
- description: |-
3
- Add bot to a channel.
4
- Uses conversations.join API method.
5
- Bot must be invited to private channels by an admin first.
6
- version: '1.0.0'
7
- parameters:
8
- channel:
9
- type: string
10
- required: true
11
- description: |-
12
- Channel ID or name to join.
13
- Format: C followed by alphanumeric (e.g., C123456)
14
- execution:
15
- type: http
16
- method: POST
17
- url: 'https://slack.com/api/conversations.join'
18
- headers:
19
- Authorization: 'Bearer {SLACK_BOT_TOKEN}'
20
- Content-Type: application/json
21
- body:
22
- channel: '{channel}'
23
- timeout: 10000
24
- authentication:
25
- type: api_key
26
- location: header
27
- name: Authorization
28
- notes:
29
- env: SLACK_BOT_TOKEN
30
- scopes: channels:manage
31
- important: |-
32
- - Public channels: Bot joins automatically
33
- - Private channels: Admin must invite bot first
34
- - Bot cannot join archived channels
35
- - Use for gaining access before sending messages
@@ -1,49 +0,0 @@
1
- name: slack_reply_to_message
2
- description: |-
3
- Post a reply to a message thread.
4
- Uses chat.postMessage API method with thread_ts parameter.
5
- version: '1.0.0'
6
- parameters:
7
- channel:
8
- type: string
9
- required: true
10
- description: Channel ID containing the parent message
11
- thread_ts:
12
- type: string
13
- required: true
14
- description: |-
15
- Timestamp of the parent message that starts the thread.
16
- Use parent's ts value, never use a reply's ts value.
17
- text:
18
- type: string
19
- required: false
20
- description: |-
21
- Reply text (optional if using blocks for rich formatting).
22
- Recommended as fallback for notifications and accessibility.
23
- blocks:
24
- type: array
25
- required: false
26
- description: Block Kit JSON array for rich message formatting
27
- execution:
28
- type: http
29
- method: POST
30
- url: 'https://slack.com/api/chat.postMessage'
31
- headers:
32
- Authorization: 'Bearer {SLACK_BOT_TOKEN}'
33
- Content-Type: application/json
34
- body:
35
- channel: '{channel}'
36
- text: '{text}'
37
- thread_ts: '{thread_ts}'
38
- timeout: 15000
39
- authentication:
40
- type: api_key
41
- location: header
42
- name: Authorization
43
- notes:
44
- env: SLACK_BOT_TOKEN
45
- scopes: chat:write
46
- important: |-
47
- - thread_ts must be parent message timestamp, not a reply
48
- - Either text or blocks is recommended (both optional)
49
- - Threads keep conversations organized by topic
@@ -1,46 +0,0 @@
1
- name: slack_search_messages
2
- description: |-
3
- Search across Slack message history.
4
- Uses search.messages API method.
5
- Supports filtering by channel, date range, and other criteria.
6
- version: '1.0.0'
7
- parameters:
8
- query:
9
- type: string
10
- required: true
11
- description: |-
12
- Search query text.
13
- Supports operators: from:@user, in:#channel, after:YYYY-MM-DD, etc.
14
- sort:
15
- type: string
16
- required: false
17
- description: |-
18
- Sort results by: score (relevance, default) or timestamp
19
- count:
20
- type: number
21
- required: false
22
- description: |-
23
- Number of results to return.
24
- Default: 20, Max: 100
25
- execution:
26
- type: http
27
- method: GET
28
- url: 'https://slack.com/api/search.messages'
29
- headers:
30
- Authorization: 'Bearer {SLACK_BOT_TOKEN}'
31
- query_params:
32
- query: '{query}'
33
- sort: '{sort}'
34
- count: '{count}'
35
- timeout: 15000
36
- authentication:
37
- type: api_key
38
- location: header
39
- name: Authorization
40
- notes:
41
- env: SLACK_BOT_TOKEN
42
- scopes: search:read
43
- important: |-
44
- - Query supports advanced search operators
45
- - Example: "from:@alice in:#engineering after:2024-01-01"
46
- - Default sort is by relevance score
@@ -1,34 +0,0 @@
1
- name: slack_send_channel_message
2
- description: Post a message (text, markdown, blocks) to a public/private Slack channel.
3
- version: '1.0.0'
4
- parameters:
5
- channel:
6
- type: string
7
- required: true
8
- description: Channel ID or name to post the message to
9
- text:
10
- type: string
11
- required: false
12
- description: Plain-text message (optional if blocks provided, recommended as fallback for accessibility)
13
- blocks:
14
- type: array
15
- required: false
16
- description: Slack Block Kit JSON blocks (optional, used instead of text for rich formatting)
17
- execution:
18
- type: http
19
- method: POST
20
- url: 'https://slack.com/api/chat.postMessage'
21
- headers:
22
- Authorization: 'Bearer {SLACK_BOT_TOKEN}'
23
- Content-Type: application/json
24
- body:
25
- channel: '{channel}'
26
- text: '{text}'
27
- timeout: 15000
28
- authentication:
29
- type: api_key
30
- location: header
31
- name: Authorization
32
- notes:
33
- env: SLACK_BOT_TOKEN
34
- caution: Ensure `chat:write` scope and bot membership in private channels. Either text or blocks is recommended (not both required). Unresolved placeholders (e.g., {blocks} when not provided) will be sent as literal strings per Slack API contract.
@@ -1,37 +0,0 @@
1
- name: slack_send_dm
2
- description: |-
3
- Open or resume a direct message (DM) or multi-person direct message (MPIM) conversation.
4
- Uses conversations.open API method.
5
- After opening, use chat.postMessage to send the actual message.
6
- version: '1.0.0'
7
- parameters:
8
- user:
9
- type: string
10
- required: true
11
- description: |-
12
- User ID or comma-separated user IDs for multi-person DM.
13
- - 1 user ID: Creates a 1:1 DM
14
- - Multiple user IDs (2-8): Creates an MPIM
15
- Do not include the authenticated bot's user ID.
16
- execution:
17
- type: http
18
- method: POST
19
- url: 'https://slack.com/api/conversations.open'
20
- headers:
21
- Authorization: 'Bearer {SLACK_BOT_TOKEN}'
22
- Content-Type: application/json
23
- body:
24
- users: '{user}'
25
- timeout: 15000
26
- authentication:
27
- type: api_key
28
- location: header
29
- name: Authorization
30
- notes:
31
- env: SLACK_BOT_TOKEN
32
- scopes: im:write, mpim:write
33
- important: |-
34
- - This method OPENS a conversation, it does not send a message
35
- - Returns channel ID (D...) to use with chat.postMessage
36
- - Subsequent calls with same users return existing conversation
37
- - For 1:1 DMs, use user ID (U...), not DM channel ID (D...)
@@ -1,40 +0,0 @@
1
- name: slack_set_channel_topic
2
- description: |-
3
- Set or update the topic (description) for a channel.
4
- Uses conversations.setTopic API method.
5
- Topic is displayed below the channel name in Slack UI.
6
- version: '1.0.0'
7
- parameters:
8
- channel:
9
- type: string
10
- required: true
11
- description: Channel ID to update
12
- topic:
13
- type: string
14
- required: true
15
- description: |-
16
- New topic text.
17
- Max 250 characters.
18
- Supports text formatting (@mentions, links, etc.)
19
- execution:
20
- type: http
21
- method: POST
22
- url: 'https://slack.com/api/conversations.setTopic'
23
- headers:
24
- Authorization: 'Bearer {SLACK_BOT_TOKEN}'
25
- Content-Type: application/json
26
- body:
27
- channel: '{channel}'
28
- topic: '{topic}'
29
- timeout: 10000
30
- authentication:
31
- type: api_key
32
- location: header
33
- name: Authorization
34
- notes:
35
- env: SLACK_BOT_TOKEN
36
- scopes: conversations:manage
37
- important: |-
38
- - Bot must be channel member to set topic
39
- - Topic limited to 250 characters
40
- - Visible in channel info below channel name
@@ -1,152 +0,0 @@
1
- name: slack_upload_file
2
- description: |-
3
- Upload a file to Slack using the modern files API.
4
-
5
- This tool provides a simplified interface to upload files to Slack.
6
- It uses the latest Slack file upload API (files.getUploadURLExternal + files.completeUploadExternal)
7
- introduced in 2024 as the recommended approach.
8
-
9
- FEATURES:
10
- ✅ Supports files up to 500MB
11
- ✅ Share directly to channels during upload
12
- ✅ Add file title and initial comment
13
- ✅ Better error handling and retry logic
14
- ✅ Modern, official Slack recommended API
15
- ✅ Future-proof (won't be deprecated)
16
-
17
- REQUIRED SCOPES:
18
- • files:write - Required to upload files
19
-
20
- API REFERENCE:
21
- https://docs.slack.dev/reference/methods/files.getUploadURLExternal
22
- https://docs.slack.dev/reference/methods/files.completeUploadExternal
23
- version: '1.0.0'
24
- parameters:
25
- filename:
26
- type: string
27
- required: true
28
- description: |-
29
- Name of the file (e.g., "report.pdf", "data.json")
30
- Used as the file name in Slack
31
- file_size:
32
- type: number
33
- required: true
34
- description: |-
35
- Size of the file in bytes.
36
- Maximum 500MB (524,288,000 bytes)
37
- Must match actual file size for upload
38
- channel_id:
39
- type: string
40
- required: true
41
- description: |-
42
- Channel ID to share file with.
43
- Example: "C024BE91L"
44
- Bot must be a member of the channel
45
- title:
46
- type: string
47
- required: false
48
- description: |-
49
- Title for the file in Slack (separate from filename).
50
- If not provided, filename is used as title.
51
- Supports up to 255 characters
52
- initial_comment:
53
- type: string
54
- required: false
55
- description: |-
56
- Message text to introduce the file in the channel.
57
- Example: "Here's the quarterly report PDF"
58
- Supports markdown formatting
59
- execution:
60
- type: http
61
- method: POST
62
- url: 'https://slack.com/api/files.getUploadURLExternal'
63
- headers:
64
- Authorization: 'Bearer {SLACK_BOT_TOKEN}'
65
- Content-Type: application/json
66
- body:
67
- filename: '{filename}'
68
- length: '{file_size}'
69
- timeout: 30000
70
- authentication:
71
- type: api_key
72
- location: header
73
- name: Authorization
74
- output_schema:
75
- type: object
76
- properties:
77
- ok:
78
- type: boolean
79
- description: Whether the request was successful
80
- upload_url:
81
- type: string
82
- description: URL where to upload the file binary
83
- file_id:
84
- type: string
85
- description: Unique identifier for the uploaded file
86
- upload_url_expires:
87
- type: number
88
- description: Unix timestamp when the upload URL expires
89
- notes:
90
- env: SLACK_BOT_TOKEN
91
-
92
- api_version: |-
93
- Modern API (Current - Recommended)
94
- • Uses: files.getUploadURLExternal (get upload URL)
95
- • Uses: files.completeUploadExternal (complete upload)
96
- • Introduced: 2024
97
- • Status: Official Slack recommendation
98
- • Maintenance: Actively maintained
99
-
100
- scopes_required: |-
101
- • files:write - Required to upload files
102
- • channels:read - Optional, to validate channel IDs
103
-
104
- usage_pattern: |-
105
- TWO-STEP PROCESS:
106
-
107
- 1. Get Upload URL (this tool):
108
- Call with: filename, file_size, channel_id
109
- Returns: upload_url, file_id, upload_url_expires
110
-
111
- 2. Upload File Binary (manual/SDK):
112
- Method: HTTP PUT to upload_url
113
- Headers: Content-Type: application/octet-stream
114
- Body: Raw file binary content
115
-
116
- 3. Complete Upload (use slack_complete_file_upload):
117
- Call with: file_id, channel_id, title, initial_comment
118
- Returns: File object with sharing info
119
-
120
- important: |-
121
- • Bot requires files:write scope
122
- • File size must match file_size parameter exactly
123
- • Upload URL expires (check upload_url_expires)
124
- • If URL expires, start over with fresh getUploadURLExternal call
125
- • Channel ID must be one where bot is a member
126
-
127
- best_practices: |-
128
- DO:
129
- ✅ Check upload_url_expires before uploading large files
130
- ✅ Use Content-Type: application/octet-stream for PUT
131
- ✅ Verify file_size matches actual file size
132
- ✅ Include initial_comment for context when sharing
133
- ✅ Validate channel_id exists before uploading
134
-
135
- DON'T:
136
- ❌ Use channels bot hasn't joined
137
- ❌ Wait too long between getting URL and uploading (URLs expire ~2 hours)
138
- ❌ Forget to call slack_complete_file_upload after upload
139
- ❌ Include sensitive data in initial_comment
140
-
141
- limitations: |-
142
- • Maximum file size: 500MB
143
- • Upload URL valid for approximately 2 hours
144
- • Bot must be member of channel to share
145
- • Response format follows Slack Web API standards
146
-
147
- changelog: |-
148
- Version 1.0.0 (Feb 2026):
149
- • Updated to use modern files.getUploadURLExternal API
150
- • Replaces deprecated files.upload (sunset Nov 12, 2025)
151
- • Supports up to 500MB files
152
- • Better error handling
File without changes