matimo 0.1.0-alpha.1 → 0.1.0-alpha.3

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 (88) hide show
  1. package/README.md +83 -28
  2. package/dist/core/schema.d.ts +1 -1
  3. package/dist/core/schema.d.ts.map +1 -1
  4. package/dist/core/schema.js +8 -3
  5. package/dist/core/schema.js.map +1 -1
  6. package/dist/core/tool-loader.d.ts.map +1 -1
  7. package/dist/core/tool-loader.js +15 -4
  8. package/dist/core/tool-loader.js.map +1 -1
  9. package/dist/core/tool-registry.d.ts.map +1 -1
  10. package/dist/core/tool-registry.js +5 -1
  11. package/dist/core/tool-registry.js.map +1 -1
  12. package/dist/decorators/tool-decorator.d.ts.map +1 -1
  13. package/dist/decorators/tool-decorator.js +7 -4
  14. package/dist/decorators/tool-decorator.js.map +1 -1
  15. package/dist/encodings/parameter-encoding.d.ts.map +1 -1
  16. package/dist/encodings/parameter-encoding.js +9 -2
  17. package/dist/encodings/parameter-encoding.js.map +1 -1
  18. package/dist/executors/command-executor.d.ts.map +1 -1
  19. package/dist/executors/command-executor.js +5 -1
  20. package/dist/executors/command-executor.js.map +1 -1
  21. package/dist/executors/http-executor.d.ts.map +1 -1
  22. package/dist/executors/http-executor.js +5 -1
  23. package/dist/executors/http-executor.js.map +1 -1
  24. package/package.json +4 -4
  25. package/tools/calculator/calculator.ts +78 -0
  26. package/tools/calculator/definition.yaml +71 -0
  27. package/tools/echo-tool/definition.yaml +35 -0
  28. package/tools/examples/calculator.yaml +54 -0
  29. package/tools/examples/echo-tool.yaml +35 -0
  30. package/tools/examples/http-client.yaml +66 -0
  31. package/tools/github/definition.yaml +41 -0
  32. package/tools/gmail/README.md +1189 -0
  33. package/tools/gmail/create-draft/definition.yaml +99 -0
  34. package/tools/gmail/definition.yaml +49 -0
  35. package/tools/gmail/delete-message/definition.yaml +42 -0
  36. package/tools/gmail/get-message/definition.yaml +89 -0
  37. package/tools/gmail/list-messages/definition.yaml +84 -0
  38. package/tools/gmail/send-email/definition.yaml +95 -0
  39. package/tools/http-client/definition.yaml +73 -0
  40. package/tools/slack/README.md +200 -0
  41. package/tools/slack/assets/icon.svg +9 -0
  42. package/tools/slack/assets/logo-dark.svg +14 -0
  43. package/tools/slack/assets/logo-light.svg +14 -0
  44. package/tools/slack/assets/logo.svg +14 -0
  45. package/tools/slack/definition.yaml +54 -0
  46. package/tools/slack/get-user/definition.yaml +31 -0
  47. package/tools/slack/list-channels/definition.yaml +46 -0
  48. package/tools/slack/send-message/definition.yaml +30 -0
  49. package/tools/slack/slack_add_reaction/definition.yaml +45 -0
  50. package/tools/slack/slack_create_channel/definition.yaml +41 -0
  51. package/tools/slack/slack_get_channel_history/definition.yaml +58 -0
  52. package/tools/slack/slack_get_reactions/definition.yaml +36 -0
  53. package/tools/slack/slack_get_thread_replies/definition.yaml +45 -0
  54. package/tools/slack/slack_get_user_info/definition.yaml +32 -0
  55. package/tools/slack/slack_join_channel/definition.yaml +35 -0
  56. package/tools/slack/slack_reply_to_message/definition.yaml +49 -0
  57. package/tools/slack/slack_search_messages/definition.yaml +46 -0
  58. package/tools/slack/slack_send_channel_message/definition.yaml +34 -0
  59. package/tools/slack/slack_send_dm/definition.yaml +37 -0
  60. package/tools/slack/slack_set_channel_topic/definition.yaml +40 -0
  61. package/tools/slack/slack_upload_file/definition.yaml +152 -0
  62. package/docs/Gemfile +0 -5
  63. package/docs/RELEASES.md +0 -69
  64. package/docs/ROADMAP.md +0 -138
  65. package/docs/_config.yml +0 -27
  66. package/docs/api-reference/ERRORS.md +0 -445
  67. package/docs/api-reference/SDK.md +0 -582
  68. package/docs/api-reference/TYPES.md +0 -415
  69. package/docs/architecture/OAUTH.md +0 -1366
  70. package/docs/architecture/OVERVIEW.md +0 -564
  71. package/docs/assets/logo.png +0 -0
  72. package/docs/community/COMMIT_GUIDELINES.md +0 -552
  73. package/docs/framework-integrations/LANGCHAIN.md +0 -286
  74. package/docs/getting-started/QUICK_START.md +0 -211
  75. package/docs/getting-started/YOUR_FIRST_TOOL.md +0 -217
  76. package/docs/getting-started/installation.md +0 -124
  77. package/docs/index.md +0 -288
  78. package/docs/tool-development/DECORATOR_GUIDE.md +0 -633
  79. package/docs/tool-development/OAUTH_LINK.md +0 -5
  80. package/docs/tool-development/PROVIDER_CONFIGURATION.md +0 -458
  81. package/docs/tool-development/TESTING.md +0 -412
  82. package/docs/tool-development/TOOL_SPECIFICATION.md +0 -793
  83. package/docs/tool-development/YAML_TOOLS.md +0 -65
  84. package/docs/troubleshooting/FAQ.md +0 -391
  85. package/docs/user-guide/AUTHENTICATION.md +0 -255
  86. package/docs/user-guide/DEVELOPMENT_STANDARDS.md +0 -698
  87. package/docs/user-guide/SDK_PATTERNS.md +0 -316
  88. package/docs/user-guide/TOOL_DISCOVERY.md +0 -209
@@ -0,0 +1,35 @@
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
@@ -0,0 +1,49 @@
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
@@ -0,0 +1,46 @@
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
@@ -0,0 +1,34 @@
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.
@@ -0,0 +1,37 @@
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...)
@@ -0,0 +1,40 @@
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
@@ -0,0 +1,152 @@
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
package/docs/Gemfile DELETED
@@ -1,5 +0,0 @@
1
- source "https://rubygems.org"
2
-
3
- gem "jekyll", "~> 4.3.0"
4
- gem "jekyll-theme-slate"
5
- gem "webrick", "~> 1.8"
package/docs/RELEASES.md DELETED
@@ -1,69 +0,0 @@
1
- # v0.1.0-alpha.1
2
-
3
- > First alpha release - Core OAuth2, tool execution, and SDK patterns
4
-
5
- **Released**: February 3, 2026
6
-
7
- ## What's New
8
-
9
- ### OAuth2 Multi-Provider Support
10
- - OAuth2 handler with token injection
11
- - Providers: Google (Gmail), GitHub, Slack
12
- - Provider YAML configuration
13
- - Automatic token injection into requests
14
-
15
- ### Tool System
16
- - YAML/JSON tool definitions with Zod validation
17
- - Command executor (shell commands with templating)
18
- - HTTP executor (REST APIs with OAuth2)
19
- - Provider definition system
20
- - Tool discovery and filtering
21
-
22
- ### SDK Patterns
23
- - **Factory pattern**: `const m = await matimo.init('./tools'); m.execute(toolName, params)`
24
- - **Decorator pattern**: `@tool('calculator')` for class-based usage
25
- - Tool discovery, filtering, and search
26
- - Full TypeScript support with strict types
27
-
28
- ### Tools Included
29
- - **Gmail** (5 tools): send, list, get, draft, delete
30
- - **Utilities**: calculator, echo, HTTP client
31
- - **Provider configs**: Google, GitHub, Slack
32
-
33
- ## Installation
34
-
35
- ```bash
36
- npm install matimo@0.1.0-alpha.1
37
- pnpm add matimo@0.1.0-alpha.1
38
- ```
39
-
40
- ## Quick Start
41
-
42
- ```typescript
43
- import { matimo } from 'matimo';
44
-
45
- const m = await matimo.init('./tools');
46
- const result = await m.execute('calculator', {
47
- operation: 'add', a: 5, b: 3
48
- });
49
- ```
50
-
51
- ## Documentation
52
-
53
- - [Installation & Setup](./getting-started/installation.md)
54
- - [Quick Start](./getting-started/QUICK_START.md)
55
- - [SDK Patterns](./user-guide/SDK_PATTERNS.md)
56
- - [OAuth2 Guide](./architecture/OAUTH.md)
57
- - [API Reference](./api-reference/SDK.md)
58
- - [Examples](../examples/)
59
-
60
-
61
- ## Known Limitations
62
-
63
- This is an **alpha release**. Not recommended for production without thorough testing.
64
-
65
- See [Roadmap](./ROADMAP.md) for future features.
66
-
67
- ## Contributing
68
-
69
- [Contributing Guide](../CONTRIBUTING.md) | [Report Issues](https://github.com/tallclub/matimo/issues)
package/docs/ROADMAP.md DELETED
@@ -1,138 +0,0 @@
1
- # Matimo Roadmap
2
-
3
- ## v0.1.0-alpha.1 (Current Release)
4
-
5
- ### ✅ Core Features Implemented
6
-
7
- **OAuth2 Authentication**
8
- - OAuth2 handler with token management
9
- - Provider-agnostic configuration via YAML
10
- - Multi-provider support (Google, GitHub, Slack)
11
- - Token injection system for tools
12
-
13
- **Tool System**
14
- - YAML-based tool definitions with Zod validation
15
- - Tool loader and registry
16
- - Command executor (shell commands + templating)
17
- - HTTP executor (REST APIs with OAuth2 support)
18
- - Parameter encoding utilities
19
-
20
- **SDK Patterns**
21
- - Factory pattern (recommended for simple use cases)
22
- - Decorator pattern (@tool decorators for class-based code)
23
- - Tool discovery and filtering
24
- - Full TypeScript type safety (zero `any` types)
25
-
26
- **Tool Examples**
27
- - Gmail tools (list, get, send, create-draft, delete)
28
- - GitHub provider configuration
29
- - Slack provider configuration
30
- - Calculator and echo tools (reference implementations)
31
-
32
- **Quality Assurance**
33
- - 100% test passing
34
- - Full TypeScript strict mode enforcement
35
- - ESLint clean with zero warnings
36
- - Prettier formatting
37
- - Zod schema validation for all definitions
38
-
39
- **Documentation**
40
- - Quick start guide
41
- - API reference
42
- - Tool specification
43
- - OAuth2 implementation guide
44
- - Decorator pattern guide
45
- - Contributing guide
46
- - Security guidelines
47
-
48
- ---
49
-
50
- ## Future Release (not in specific order)
51
-
52
- ### 🔜 Planned Features
53
-
54
- **CLI Tool**
55
- - `matimo list` - List all tools
56
- - `matimo execute` - Execute tools from command line
57
- - `matimo validate` - Validate tool YAML files
58
- - `matimo test` - Test tool execution locally
59
-
60
- **MCP (Model Context Protocol) Server**
61
- - Native MCP server
62
- - Tool discovery via MCP
63
- - Automatic tool calling
64
- - Session management
65
-
66
- **Framework Integrations**
67
- - CrewAI integration examples
68
- - Vercel AI SDK integration
69
- - Custom framework patterns
70
- - Framework-specific documentation
71
-
72
- **Advanced Features**
73
- - Rate limiting (token bucket algorithm)
74
- - Health monitoring (API schema drift detection)
75
- - Token refresh automation
76
- - Error recovery strategies
77
-
78
- **REST API Server**
79
- - HTTP endpoints for tool execution
80
- - Async job execution
81
- - Webhook support
82
- - OpenAPI documentation
83
-
84
- **Python SDK**
85
- - Python implementation with same YAML definitions
86
- - LangChain Python integration
87
- - CrewAI Python support
88
- - Feature parity with Node.js SDK
89
-
90
- **Tool Marketplace**
91
- - Distributed tool registry
92
- - Tool publishing and versioning
93
- - Community tool submissions
94
- - Tool ratings and reviews
95
-
96
- **Deployment**
97
- - Docker images and Dockerfile examples
98
- - Kubernetes deployment guides
99
- - CI/CD integration examples
100
- - Production deployment patterns
101
-
102
- **Ecosystem Maturity**
103
- - Automated schema translation (OpenAPI → Matimo YAML)
104
- - Performance optimizations
105
- - Enterprise features (audit logs, rate limiting)
106
-
107
- **Skills/Workflows**
108
- - Tool composition/chaining
109
- - Conditional execution
110
- - Error handling workflows
111
- - Advanced orchestration
112
-
113
-
114
- ## How to Use This Roadmap
115
-
116
- - **v0.1.0-alpha.1**: Use current implementation for OAuth2, tool execution, and SDK patterns
117
- - **Future Releases**: These are planned but not yet implemented. Contributions welcome!
118
- - **Contributing**: See [CONTRIBUTING.md](../CONTRIBUTING.md) for how to help
119
-
120
- ---
121
-
122
- ## Release Thoughts
123
-
124
- ```
125
- v0.1.0-alpha.1 Feb 2026 (Current)
126
-
127
- v0.1.0-alpha.2 3rd week Feb 2026.
128
-
129
- v0.1.0-alpha.3 1st week Mar 2026.
130
-
131
- v0.1.0 End of March 2026.
132
- ```
133
-
134
- ---
135
-
136
- ## Contributing to the Roadmap
137
-
138
- Have ideas? [Open a GitHub Discussion](https://github.com/tallclub/matimo/discussions) to propose features for future releases.
package/docs/_config.yml DELETED
@@ -1,27 +0,0 @@
1
- theme: jekyll-theme-slate
2
- title: Matimo - AI Tools Ecosystem
3
- description: Define tools once in YAML, use them everywhere
4
- show_downloads: true
5
- google_analytics: false
6
-
7
- # Matimo Documentation
8
- url: "https://tallclub.github.io"
9
- baseurl: "/matimo"
10
- repository: "tallclub/matimo"
11
-
12
- # Build settings
13
- markdown: kramdown
14
- highlighter: rouge
15
-
16
- # Navigation
17
- nav:
18
- - text: "Home"
19
- url: "/"
20
- - text: "Getting Started"
21
- url: "/getting-started/"
22
- - text: "Documentation"
23
- url: "/"
24
- - text: "GitHub"
25
- url: "https://github.com/tallclub/matimo"
26
- - text: "npm"
27
- url: "https://www.npmjs.com/package/matimo"