@lobu/cli 3.0.4 → 3.0.6

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 (74) hide show
  1. package/README.md +17 -221
  2. package/dist/api/context.d.ts +0 -2
  3. package/dist/api/context.d.ts.map +1 -1
  4. package/dist/api/context.js +2 -2
  5. package/dist/api/context.js.map +1 -1
  6. package/dist/commands/chat.d.ts +7 -2
  7. package/dist/commands/chat.d.ts.map +1 -1
  8. package/dist/commands/chat.js +111 -25
  9. package/dist/commands/chat.js.map +1 -1
  10. package/dist/commands/dev.d.ts +3 -2
  11. package/dist/commands/dev.d.ts.map +1 -1
  12. package/dist/commands/dev.js +17 -165
  13. package/dist/commands/dev.js.map +1 -1
  14. package/dist/commands/init.d.ts.map +1 -1
  15. package/dist/commands/init.js +132 -59
  16. package/dist/commands/init.js.map +1 -1
  17. package/dist/commands/skills/info.d.ts.map +1 -1
  18. package/dist/commands/skills/info.js +0 -9
  19. package/dist/commands/skills/info.js.map +1 -1
  20. package/dist/commands/skills/list.d.ts.map +1 -1
  21. package/dist/commands/skills/list.js +5 -6
  22. package/dist/commands/skills/list.js.map +1 -1
  23. package/dist/commands/skills/registry.d.ts +1 -11
  24. package/dist/commands/skills/registry.d.ts.map +1 -1
  25. package/dist/commands/skills/registry.js +0 -3
  26. package/dist/commands/skills/registry.js.map +1 -1
  27. package/dist/commands/status.js +1 -1
  28. package/dist/config/loader.d.ts +0 -18
  29. package/dist/config/loader.d.ts.map +1 -1
  30. package/dist/config/loader.js +2 -62
  31. package/dist/config/loader.js.map +1 -1
  32. package/dist/index.js +8 -15
  33. package/dist/index.js.map +1 -1
  34. package/dist/mcp-servers.json +8 -8
  35. package/dist/system-skills.json +52 -309
  36. package/dist/templates/README.md.tmpl +4 -4
  37. package/dist/templates/TESTING.md.tmpl +19 -19
  38. package/package.json +1 -2
  39. package/dist/__tests__/login.test.d.ts +0 -2
  40. package/dist/__tests__/login.test.d.ts.map +0 -1
  41. package/dist/__tests__/login.test.js +0 -173
  42. package/dist/__tests__/login.test.js.map +0 -1
  43. package/dist/api/client.d.ts +0 -11
  44. package/dist/api/client.d.ts.map +0 -1
  45. package/dist/api/client.js +0 -33
  46. package/dist/api/client.js.map +0 -1
  47. package/dist/commands/launch.d.ts +0 -6
  48. package/dist/commands/launch.d.ts.map +0 -1
  49. package/dist/commands/launch.js +0 -26
  50. package/dist/commands/launch.js.map +0 -1
  51. package/dist/config/agents-manifest.d.ts +0 -92
  52. package/dist/config/agents-manifest.d.ts.map +0 -1
  53. package/dist/config/agents-manifest.js +0 -7
  54. package/dist/config/agents-manifest.js.map +0 -1
  55. package/dist/config/platform-schemas.d.ts +0 -120
  56. package/dist/config/platform-schemas.d.ts.map +0 -1
  57. package/dist/config/platform-schemas.js +0 -97
  58. package/dist/config/platform-schemas.js.map +0 -1
  59. package/dist/config/transformer.d.ts +0 -14
  60. package/dist/config/transformer.d.ts.map +0 -1
  61. package/dist/config/transformer.js +0 -46
  62. package/dist/config/transformer.js.map +0 -1
  63. package/dist/mcp-servers.d.ts +0 -11
  64. package/dist/mcp-servers.d.ts.map +0 -1
  65. package/dist/mcp-servers.js +0 -27
  66. package/dist/mcp-servers.js.map +0 -1
  67. package/dist/types.d.ts +0 -76
  68. package/dist/types.d.ts.map +0 -1
  69. package/dist/types.js +0 -2
  70. package/dist/types.js.map +0 -1
  71. package/dist/utils/config.d.ts +0 -2
  72. package/dist/utils/config.d.ts.map +0 -1
  73. package/dist/utils/config.js +0 -13
  74. package/dist/utils/config.js.map +0 -1
@@ -1,40 +1,17 @@
1
1
  {
2
2
  "skills": [
3
3
  {
4
- "id": "google-workspace",
5
- "name": "Google Workspace",
6
- "description": "Gmail, Calendar, Drive integration",
7
- "integrations": [
4
+ "id": "owletto",
5
+ "name": "Owletto Memory",
6
+ "description": "Long-term memory across conversations. Use when you need to remember user preferences, recall past context, or store important facts.",
7
+ "instructions": "Check Owletto memory at the start of each conversation for relevant context. Store important user preferences, facts, and decisions.",
8
+ "hidden": true,
9
+ "mcpServers": [
8
10
  {
9
- "id": "google",
10
- "label": "Google",
11
- "authType": "oauth",
12
- "oauth": {
13
- "authUrl": "https://accounts.google.com/o/oauth2/v2/auth",
14
- "tokenUrl": "https://oauth2.googleapis.com/token",
15
- "incrementalAuth": true,
16
- "extraAuthParams": {
17
- "access_type": "offline",
18
- "prompt": "consent"
19
- }
20
- },
21
- "scopesConfig": {
22
- "default": ["openid", "profile", "email"],
23
- "available": [
24
- "https://www.googleapis.com/auth/gmail.readonly",
25
- "https://www.googleapis.com/auth/gmail.send",
26
- "https://www.googleapis.com/auth/calendar.readonly",
27
- "https://www.googleapis.com/auth/calendar.events",
28
- "https://www.googleapis.com/auth/drive.readonly"
29
- ]
30
- },
31
- "apiDomains": [
32
- "gmail.googleapis.com",
33
- "www.googleapis.com",
34
- "calendar.googleapis.com"
35
- ],
36
- "apiBase": "https://www.googleapis.com",
37
- "apiHints": "Calendar: /calendar/v3/calendars/primary/events; Gmail: /gmail/v1/users/me/messages, /gmail/v1/users/me/messages/send; Drive: /drive/v3/files"
11
+ "id": "owletto",
12
+ "name": "Owletto",
13
+ "url": "${env:MEMORY_URL}",
14
+ "type": "sse"
38
15
  }
39
16
  ]
40
17
  },
@@ -42,288 +19,50 @@
42
19
  "id": "github",
43
20
  "name": "GitHub",
44
21
  "description": "Repos, issues, pull requests, and code access",
45
- "integrations": [
46
- {
47
- "id": "github",
48
- "label": "GitHub",
49
- "authType": "oauth",
50
- "oauth": {
51
- "authUrl": "https://github.com/login/oauth/authorize",
52
- "tokenUrl": "https://github.com/login/oauth/access_token"
53
- },
54
- "scopesConfig": {
55
- "default": ["read:user", "user:email"],
56
- "available": [
57
- "repo",
58
- "read:org",
59
- "read:project",
60
- "gist",
61
- "notifications"
62
- ]
63
- },
64
- "apiDomains": ["api.github.com", "raw.githubusercontent.com"],
65
- "apiBase": "https://api.github.com",
66
- "apiHints": "Repos: /repos/{owner}/{repo}; Issues: /repos/{owner}/{repo}/issues; Pulls: /repos/{owner}/{repo}/pulls; User: /user"
67
- }
68
- ]
22
+ "instructions": "Use Owletto MCP tools for GitHub API access (issues, PRs, repos). For git operations, use the CLI directly — network permissions are granted for github.com.",
23
+ "permissions": ["github.com", ".github.com", ".githubusercontent.com"]
69
24
  },
70
25
  {
71
- "id": "microsoft-365",
72
- "name": "Microsoft 365",
73
- "description": "Outlook, OneDrive, and Teams integration",
74
- "integrations": [
75
- {
76
- "id": "microsoft",
77
- "label": "Microsoft",
78
- "authType": "oauth",
79
- "oauth": {
80
- "authUrl": "https://login.microsoftonline.com/common/oauth2/v2.0/authorize",
81
- "tokenUrl": "https://login.microsoftonline.com/common/oauth2/v2.0/token"
82
- },
83
- "scopesConfig": {
84
- "default": ["openid", "profile", "email", "offline_access"],
85
- "available": [
86
- "Mail.Read",
87
- "Mail.Send",
88
- "Calendars.Read",
89
- "Calendars.ReadWrite",
90
- "Files.Read",
91
- "Files.ReadWrite",
92
- "Chat.Read",
93
- "Team.ReadBasic.All"
94
- ]
95
- },
96
- "apiDomains": ["graph.microsoft.com"],
97
- "apiBase": "https://graph.microsoft.com/v1.0",
98
- "apiHints": "Mail: /me/messages; Calendar: /me/events; Files: /me/drive/root/children; Teams chats: /me/chats"
99
- }
100
- ]
101
- },
102
- {
103
- "id": "notion",
104
- "name": "Notion",
105
- "description": "Workspace pages, databases, and content",
106
- "integrations": [
107
- {
108
- "id": "notion",
109
- "label": "Notion",
110
- "authType": "oauth",
111
- "oauth": {
112
- "authUrl": "https://api.notion.com/v1/oauth/authorize",
113
- "tokenUrl": "https://api.notion.com/v1/oauth/token",
114
- "tokenEndpointAuthMethod": "client_secret_basic"
115
- },
116
- "apiDomains": ["api.notion.com"],
117
- "apiBase": "https://api.notion.com/v1",
118
- "apiHints": "Requires Notion-Version: 2022-06-28 header. Pages: /pages/{id}; Databases: /databases/{id}/query; Search: /search; Blocks: /blocks/{id}/children"
119
- }
120
- ]
121
- },
122
- {
123
- "id": "spotify",
124
- "name": "Spotify",
125
- "description": "Music playback, playlists, and library management",
126
- "integrations": [
127
- {
128
- "id": "spotify",
129
- "label": "Spotify",
130
- "authType": "oauth",
131
- "oauth": {
132
- "authUrl": "https://accounts.spotify.com/authorize",
133
- "tokenUrl": "https://accounts.spotify.com/api/token",
134
- "tokenEndpointAuthMethod": "client_secret_basic"
135
- },
136
- "scopesConfig": {
137
- "default": ["user-read-private", "user-read-email"],
138
- "available": [
139
- "user-read-playback-state",
140
- "user-modify-playback-state",
141
- "user-read-currently-playing",
142
- "playlist-read-private",
143
- "playlist-modify-public",
144
- "playlist-modify-private",
145
- "user-library-read",
146
- "user-library-modify",
147
- "user-top-read",
148
- "user-read-recently-played"
149
- ]
150
- },
151
- "apiDomains": ["api.spotify.com"],
152
- "apiBase": "https://api.spotify.com/v1",
153
- "apiHints": "Player: /me/player, /me/player/currently-playing; Playlists: /me/playlists, /playlists/{id}/tracks; Library: /me/tracks, /me/albums; Search: /search?q={query}&type=track,artist,album"
154
- }
155
- ]
26
+ "id": "google-workspace",
27
+ "name": "Google Workspace",
28
+ "description": "Gmail, Calendar, and Drive integration",
29
+ "instructions": "Use Owletto MCP tools for Google Workspace API access (Gmail, Calendar, Drive)."
156
30
  },
157
31
  {
158
32
  "id": "linear",
159
33
  "name": "Linear",
160
34
  "description": "Issue tracking and project management",
161
- "integrations": [
162
- {
163
- "id": "linear",
164
- "label": "Linear",
165
- "authType": "oauth",
166
- "oauth": {
167
- "authUrl": "https://linear.app/oauth/authorize",
168
- "tokenUrl": "https://api.linear.app/oauth/token"
169
- },
170
- "scopesConfig": {
171
- "default": ["read"],
172
- "available": ["read", "write", "issues:create", "comments:create"]
173
- },
174
- "apiDomains": ["api.linear.app"],
175
- "apiBase": "https://api.linear.app",
176
- "apiHints": "GraphQL API only. POST /graphql with query body. Example: { \"query\": \"{ issues { nodes { id title } } }\" }"
177
- }
178
- ]
35
+ "instructions": "Use Owletto MCP tools for Linear API access (issues, projects, cycles)."
36
+ },
37
+ {
38
+ "id": "notion",
39
+ "name": "Notion",
40
+ "description": "Workspace pages, databases, and content",
41
+ "instructions": "Use Owletto MCP tools for Notion API access (pages, databases, blocks)."
179
42
  },
180
43
  {
181
44
  "id": "jira",
182
45
  "name": "Jira",
183
46
  "description": "Atlassian Jira project and issue management",
184
- "integrations": [
185
- {
186
- "id": "jira",
187
- "label": "Atlassian",
188
- "authType": "oauth",
189
- "oauth": {
190
- "authUrl": "https://auth.atlassian.com/authorize",
191
- "tokenUrl": "https://auth.atlassian.com/oauth/token"
192
- },
193
- "scopesConfig": {
194
- "default": ["read:me"],
195
- "available": [
196
- "read:jira-work",
197
- "write:jira-work",
198
- "read:jira-user",
199
- "read:confluence-content.all"
200
- ]
201
- },
202
- "apiDomains": ["api.atlassian.com", "auth.atlassian.com"],
203
- "apiBase": "https://api.atlassian.com",
204
- "apiHints": "REST v3. First get cloudId: /oauth/token/accessible-resources, then /ex/jira/{cloudId}/rest/api/3/search for issues, /ex/jira/{cloudId}/rest/api/3/issue/{key} for details"
205
- }
206
- ]
47
+ "instructions": "Use Owletto MCP tools for Jira API access (issues, projects, boards)."
207
48
  },
208
49
  {
209
50
  "id": "sentry",
210
51
  "name": "Sentry",
211
- "description": "Error tracking, performance monitoring, and issue management",
212
- "integrations": [
213
- {
214
- "id": "sentry",
215
- "label": "Sentry",
216
- "authType": "oauth",
217
- "oauth": {
218
- "authUrl": "https://sentry.io/oauth/authorize/",
219
- "tokenUrl": "https://sentry.io/oauth/token/"
220
- },
221
- "scopesConfig": {
222
- "default": ["org:read", "project:read", "event:read"],
223
- "available": [
224
- "org:read",
225
- "org:write",
226
- "project:read",
227
- "project:write",
228
- "project:releases",
229
- "team:read",
230
- "team:write",
231
- "member:read",
232
- "event:read",
233
- "event:write"
234
- ]
235
- },
236
- "apiDomains": ["sentry.io"],
237
- "apiBase": "https://sentry.io/api/0",
238
- "apiHints": "Organizations: /organizations/; Projects: /organizations/{org}/projects/; Issues: /organizations/{org}/issues/"
239
- }
240
- ]
52
+ "description": "Error tracking and performance monitoring",
53
+ "instructions": "Use Owletto MCP tools for Sentry API access (issues, events, releases)."
241
54
  },
242
55
  {
243
- "id": "reddit",
244
- "name": "Reddit",
245
- "description": "Reddit posts, comments, subreddits, and user data",
246
- "integrations": [
247
- {
248
- "id": "reddit",
249
- "label": "Reddit",
250
- "authType": "oauth",
251
- "oauth": {
252
- "authUrl": "https://www.reddit.com/api/v1/authorize?duration=permanent",
253
- "tokenUrl": "https://www.reddit.com/api/v1/access_token",
254
- "tokenEndpointAuthMethod": "client_secret_basic"
255
- },
256
- "scopesConfig": {
257
- "default": ["identity", "read"],
258
- "available": [
259
- "submit",
260
- "vote",
261
- "edit",
262
- "save",
263
- "history",
264
- "mysubreddits",
265
- "subscribe",
266
- "flair"
267
- ]
268
- },
269
- "apiDomains": ["oauth.reddit.com"],
270
- "apiBase": "https://oauth.reddit.com",
271
- "apiHints": "User: /api/v1/me; Subreddit posts: /r/{subreddit}/hot; Submit: /api/submit; Vote: /api/vote; Comments: /r/{subreddit}/comments/{article}"
272
- }
273
- ]
274
- },
275
- {
276
- "id": "twitter",
277
- "name": "X (Twitter)",
278
- "description": "Tweets, timelines, users, and direct messages",
279
- "integrations": [
280
- {
281
- "id": "twitter",
282
- "label": "X (Twitter)",
283
- "authType": "oauth",
284
- "oauth": {
285
- "authUrl": "https://twitter.com/i/oauth2/authorize",
286
- "tokenUrl": "https://api.twitter.com/2/oauth2/token",
287
- "tokenEndpointAuthMethod": "client_secret_basic"
288
- },
289
- "scopesConfig": {
290
- "default": ["tweet.read", "users.read", "offline.access"],
291
- "available": [
292
- "tweet.write",
293
- "follows.read",
294
- "follows.write",
295
- "like.read",
296
- "like.write",
297
- "dm.read",
298
- "dm.write"
299
- ]
300
- },
301
- "apiDomains": ["api.twitter.com"],
302
- "apiBase": "https://api.twitter.com/2",
303
- "apiHints": "User: /users/me; Tweets: /tweets/{id}; Timeline: /users/{id}/tweets; Post tweet: /tweets; Search: /tweets/search/recent?query={q}"
304
- }
305
- ]
56
+ "id": "microsoft-365",
57
+ "name": "Microsoft 365",
58
+ "description": "Outlook, OneDrive, and Teams integration",
59
+ "instructions": "Use Owletto MCP tools for Microsoft 365 API access (Mail, Calendar, Files, Teams)."
306
60
  },
307
61
  {
308
- "id": "owletto",
309
- "name": "Owletto Memory",
310
- "description": "Long-term memory across conversations",
311
- "hidden": true,
312
- "mcpServers": [
313
- {
314
- "id": "owletto",
315
- "name": "Owletto",
316
- "url": "${env:OWLETTO_MCP_URL}",
317
- "type": "sse",
318
- "oauth": {
319
- "authUrl": "${env:OWLETTO_OAUTH_AUTH_URL}",
320
- "tokenUrl": "${env:OWLETTO_OAUTH_TOKEN_URL}",
321
- "clientId": "${env:OWLETTO_OAUTH_CLIENT_ID}",
322
- "scopes": ["mcp:read", "mcp:write"],
323
- "tokenEndpointAuthMethod": "none"
324
- }
325
- }
326
- ]
62
+ "id": "spotify",
63
+ "name": "Spotify",
64
+ "description": "Music playback, playlists, and library",
65
+ "instructions": "Use Owletto MCP tools for Spotify API access (player, playlists, library, search)."
327
66
  },
328
67
  {
329
68
  "id": "groq",
@@ -493,20 +232,6 @@
493
232
  "id": "openrouter",
494
233
  "name": "OpenRouter",
495
234
  "description": "Multi-provider model router with per-user billing",
496
- "integrations": [
497
- {
498
- "id": "openrouter",
499
- "label": "OpenRouter",
500
- "authType": "oauth",
501
- "oauth": {
502
- "authUrl": "https://openrouter.ai/auth",
503
- "tokenUrl": "https://openrouter.ai/api/v1/auth/keys"
504
- },
505
- "apiDomains": ["openrouter.ai"],
506
- "apiBase": "https://openrouter.ai/api/v1",
507
- "apiHints": "OpenAI-compatible API. Chat completions: /chat/completions; Models: /models"
508
- }
509
- ],
510
235
  "providers": [
511
236
  {
512
237
  "displayName": "OpenRouter",
@@ -616,6 +341,24 @@
616
341
  "modelsEndpoint": "/v1/models"
617
342
  }
618
343
  ]
344
+ },
345
+ {
346
+ "id": "openai",
347
+ "name": "OpenAI",
348
+ "description": "OpenAI Models",
349
+ "providers": [
350
+ {
351
+ "displayName": "OpenAI",
352
+ "iconUrl": "https://www.google.com/s2/favicons?domain=openai.com&sz=128",
353
+ "envVarName": "OPENAI_API_KEY",
354
+ "upstreamBaseUrl": "https://api.openai.com",
355
+ "apiKeyInstructions": "Get your API key from <a href=\"https://platform.openai.com/api-keys\" target=\"_blank\" class=\"text-blue-600 hover:underline\">OpenAI Dashboard</a>",
356
+ "apiKeyPlaceholder": "sk-...",
357
+ "sdkCompat": "openai",
358
+ "defaultModel": "gpt-4o",
359
+ "modelsEndpoint": "/v1/models"
360
+ }
361
+ ]
619
362
  }
620
363
  ]
621
364
  }
@@ -8,7 +8,7 @@ Make sure you have Docker CLI installed.
8
8
 
9
9
  ```bash
10
10
  # Start the services
11
- lobu dev -d
11
+ lobu run -d
12
12
 
13
13
  # View logs
14
14
  docker compose logs -f
@@ -51,7 +51,7 @@ Edit `.env` to configure:
51
51
 
52
52
  ### Platform Connections
53
53
 
54
- Platforms (Slack, Telegram, Discord, WhatsApp, Teams) are configured via the admin page at `{PUBLIC_GATEWAY_URL}/agents`. No platform-specific env vars needed just paste your bot token in the UI.
54
+ Platforms (Slack, Telegram, Discord, WhatsApp, Teams) are configured through the gateway APIs. No platform-specific env vars are required in `docker-compose.yml`; manage connections against `{PUBLIC_GATEWAY_URL}/api/v1/connections` and related auth/config endpoints.
55
55
 
56
56
  ### Worker Customization
57
57
 
@@ -80,8 +80,8 @@ The gateway will automatically pick up the latest worker image.
80
80
 
81
81
  The docker-compose.yml defines these services:
82
82
  - **redis** - Redis cache and queue
83
- - **gateway** - Slack integration and worker orchestration
84
- - **worker** - Claude worker (build-only, spawned dynamically)
83
+ - **gateway** - Platform connections and worker orchestration
84
+ - **worker** - Agent worker (build-only, spawned dynamically)
85
85
 
86
86
  ## Learn More
87
87
 
@@ -8,7 +8,7 @@ Send messages to your bot with optional file uploads.
8
8
 
9
9
  ### Endpoint
10
10
  ```
11
- POST http://localhost:{{GATEWAY_PORT}}/api/messaging/send
11
+ POST http://localhost:{{GATEWAY_PORT}}/api/v1/agents/{agentId}/messages
12
12
  ```
13
13
 
14
14
  ### Authentication
@@ -24,23 +24,23 @@ The bot token must be provided in the `Authorization` header, not in the request
24
24
 
25
25
  #### JSON Request (Simple Message)
26
26
  ```bash
27
- curl -X POST http://localhost:{{GATEWAY_PORT}}/api/messaging/send \
27
+ curl -X POST http://localhost:{{GATEWAY_PORT}}/api/v1/agents/{agentId}/messages \
28
28
  -H "Authorization: Bearer xoxb-your-bot-token" \
29
29
  -H "Content-Type: application/json" \
30
30
  -d '{
31
31
  "platform": "slack",
32
32
  "channel": "general",
33
- "message": "what is 2+2?"
33
+ "content": "what is 2+2?"
34
34
  }'
35
35
  ```
36
36
 
37
37
  #### Multipart Request (With File Upload)
38
38
  ```bash
39
- curl -X POST http://localhost:{{GATEWAY_PORT}}/api/messaging/send \
39
+ curl -X POST http://localhost:{{GATEWAY_PORT}}/api/v1/agents/{agentId}/messages \
40
40
  -H "Authorization: Bearer xoxb-your-bot-token" \
41
41
  -F "platform=slack" \
42
42
  -F "channel=C12345678" \
43
- -F "message=please review this file" \
43
+ -F "content=please review this file" \
44
44
  -F "file=@/path/to/document.pdf"
45
45
  ```
46
46
 
@@ -50,7 +50,7 @@ curl -X POST http://localhost:{{GATEWAY_PORT}}/api/messaging/send \
50
50
  |-------|----------|-------------|
51
51
  | `platform` | Yes | Platform name (currently: "slack") |
52
52
  | `channel` | Yes | Channel ID (e.g., `C12345678`) or name (e.g., `general`, `#general`) |
53
- | `message` | Yes | Message text to send (use `@me` to mention the bot) |
53
+ | `content` | Yes | Message text to send (use `@me` to mention the bot) |
54
54
  | `threadId` | No | Thread ID to reply to (for thread continuity) |
55
55
  | `files` | No | File attachments (multipart/form-data, up to 10 files) |
56
56
 
@@ -76,7 +76,7 @@ Use the `@me` placeholder to mention the bot in a platform-agnostic way:
76
76
 
77
77
  ```json
78
78
  {
79
- "message": "@me what is 2+2?"
79
+ "content": "@me what is 2+2?"
80
80
  }
81
81
  ```
82
82
 
@@ -90,39 +90,39 @@ If you don't want to mention the bot, simply omit `@me` from your message.
90
90
  ### Example: Simple Text Message (with @me)
91
91
 
92
92
  ```bash
93
- curl -X POST http://localhost:{{GATEWAY_PORT}}/api/messaging/send \
93
+ curl -X POST http://localhost:{{GATEWAY_PORT}}/api/v1/agents/{agentId}/messages \
94
94
  -H "Authorization: Bearer xoxb-your-bot-token" \
95
95
  -H "Content-Type: application/json" \
96
96
  -d '{
97
97
  "platform": "slack",
98
98
  "channel": "general",
99
- "message": "@me what is 2+2?"
99
+ "content": "@me what is 2+2?"
100
100
  }'
101
101
  ```
102
102
 
103
103
  ### Example: Without Bot Mention
104
104
 
105
105
  ```bash
106
- curl -X POST http://localhost:{{GATEWAY_PORT}}/api/messaging/send \
106
+ curl -X POST http://localhost:{{GATEWAY_PORT}}/api/v1/agents/{agentId}/messages \
107
107
  -H "Authorization: Bearer xoxb-your-bot-token" \
108
108
  -H "Content-Type: application/json" \
109
109
  -d '{
110
110
  "platform": "slack",
111
111
  "channel": "general",
112
- "message": "just a regular message"
112
+ "content": "just a regular message"
113
113
  }'
114
114
  ```
115
115
 
116
116
  ### Example: Thread Reply
117
117
 
118
118
  ```bash
119
- curl -X POST http://localhost:{{GATEWAY_PORT}}/api/messaging/send \
119
+ curl -X POST http://localhost:{{GATEWAY_PORT}}/api/v1/agents/{agentId}/messages \
120
120
  -H "Authorization: Bearer xoxb-your-bot-token" \
121
121
  -H "Content-Type: application/json" \
122
122
  -d '{
123
123
  "platform": "slack",
124
124
  "channel": "C12345678",
125
- "message": "tell me more about that",
125
+ "content": "tell me more about that",
126
126
  "threadId": "1234567890.123456"
127
127
  }'
128
128
  ```
@@ -130,22 +130,22 @@ curl -X POST http://localhost:{{GATEWAY_PORT}}/api/messaging/send \
130
130
  ### Example: Single File Upload
131
131
 
132
132
  ```bash
133
- curl -X POST http://localhost:{{GATEWAY_PORT}}/api/messaging/send \
133
+ curl -X POST http://localhost:{{GATEWAY_PORT}}/api/v1/agents/{agentId}/messages \
134
134
  -H "Authorization: Bearer xoxb-your-bot-token" \
135
135
  -F "platform=slack" \
136
136
  -F "channel=dev-channel" \
137
- -F "message=@me analyze this CSV" \
137
+ -F "content=@me analyze this CSV" \
138
138
  -F "files=@data.csv"
139
139
  ```
140
140
 
141
141
  ### Example: Multiple File Upload
142
142
 
143
143
  ```bash
144
- curl -X POST http://localhost:{{GATEWAY_PORT}}/api/messaging/send \
144
+ curl -X POST http://localhost:{{GATEWAY_PORT}}/api/v1/agents/{agentId}/messages \
145
145
  -H "Authorization: Bearer xoxb-your-bot-token" \
146
146
  -F "platform=slack" \
147
147
  -F "channel=dev-channel" \
148
- -F "message=@me review these documents" \
148
+ -F "content=@me review these documents" \
149
149
  -F "files=@document1.pdf" \
150
150
  -F "files=@document2.pdf" \
151
151
  -F "files=@spreadsheet.xlsx"
@@ -196,13 +196,13 @@ Testing a full conversation:
196
196
 
197
197
  ```bash
198
198
  # Step 1: Send initial message
199
- RESPONSE=$(curl -s -X POST http://localhost:{{GATEWAY_PORT}}/api/messaging/send \
199
+ RESPONSE=$(curl -s -X POST http://localhost:{{GATEWAY_PORT}}/api/v1/agents/{agentId}/messages \
200
200
  -H "Authorization: Bearer $SLACK_BOT_TOKEN" \
201
201
  -H "Content-Type: application/json" \
202
202
  -d '{
203
203
  "platform": "slack",
204
204
  "channel": "test-channel",
205
- "message": "@me give me three options"
205
+ "content": "@me give me three options"
206
206
  }')
207
207
 
208
208
  THREAD_ID=$(echo $RESPONSE | jq -r '.threadId')
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@lobu/cli",
3
- "version": "3.0.4",
3
+ "version": "3.0.6",
4
4
  "description": "CLI for deploying and managing AI agents on Lobu",
5
5
  "type": "module",
6
6
  "main": "dist/index.js",
@@ -30,7 +30,6 @@
30
30
  "open": "^10.1.0",
31
31
  "ora": "^8.0.1",
32
32
  "smol-toml": "^1.3.1",
33
- "yaml": "^2.3.4",
34
33
  "zod": "^3.24.0"
35
34
  },
36
35
  "devDependencies": {
@@ -1,2 +0,0 @@
1
- export {};
2
- //# sourceMappingURL=login.test.d.ts.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"login.test.d.ts","sourceRoot":"","sources":["../../src/__tests__/login.test.ts"],"names":[],"mappings":""}