machinaos 0.0.12 → 0.0.13
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.
- package/client/package.json +1 -1
- package/client/src/components/OutputPanel.tsx +3 -2
- package/client/src/components/parameterPanel/InputSection.tsx +4 -3
- package/package.json +1 -1
- package/server/routers/websocket.py +5 -5
- package/server/services/ai.py +38 -13
- package/server/services/deployment/manager.py +14 -0
- package/server/services/execution/executor.py +2 -0
- package/server/services/execution/models.py +8 -0
- package/server/services/handlers/ai.py +71 -23
- package/server/services/handlers/tools.py +103 -6
- package/server/skills/android_agent/app-launcher-skill/SKILL.md +137 -0
- package/server/skills/android_agent/app-list-skill/SKILL.md +148 -0
- package/server/skills/android_agent/audio-skill/SKILL.md +169 -0
- package/server/skills/android_agent/battery-skill/SKILL.md +114 -0
- package/server/skills/android_agent/bluetooth-skill/SKILL.md +151 -0
- package/server/skills/android_agent/camera-skill/SKILL.md +148 -0
- package/server/skills/android_agent/environmental-skill/SKILL.md +140 -0
- package/server/skills/android_agent/location-skill/SKILL.md +163 -0
- package/server/skills/android_agent/motion-skill/SKILL.md +141 -0
- package/server/skills/android_agent/screen-control-skill/SKILL.md +164 -0
- package/server/skills/android_agent/wifi-skill/SKILL.md +182 -0
- package/server/skills/assistant/subagent-skill/SKILL.md +62 -30
- package/server/skills/coding_agent/javascript-skill/SKILL.md +196 -0
- package/server/skills/coding_agent/python-skill/SKILL.md +165 -0
- package/server/skills/social_agent/whatsapp-db-skill/SKILL.md +284 -0
- package/server/skills/social_agent/whatsapp-send-skill/SKILL.md +180 -0
- package/server/skills/task_agent/cron-scheduler-skill/SKILL.md +215 -0
- package/server/skills/task_agent/task-manager-skill/SKILL.md +251 -0
- package/server/skills/task_agent/timer-skill/SKILL.md +168 -0
- package/server/skills/travel_agent/geocoding-skill/SKILL.md +186 -0
- package/server/skills/travel_agent/nearby-places-skill/SKILL.md +234 -0
- package/server/skills/web_agent/http-request-skill/SKILL.md +211 -0
- package/server/skills/android/skill/SKILL.md +0 -84
- package/server/skills/assistant/code-skill/SKILL.md +0 -176
- package/server/skills/assistant/http-skill/SKILL.md +0 -163
- package/server/skills/assistant/maps-skill/SKILL.md +0 -172
- package/server/skills/assistant/scheduler-skill/SKILL.md +0 -86
- package/server/skills/assistant/whatsapp-skill/SKILL.md +0 -285
- /package/server/skills/{android → android_agent}/personality/SKILL.md +0 -0
- /package/server/skills/{assistant → web_agent}/web-search-skill/SKILL.md +0 -0
|
@@ -1,285 +0,0 @@
|
|
|
1
|
-
---
|
|
2
|
-
name: whatsapp-skill
|
|
3
|
-
description: Send WhatsApp messages, query contacts/groups, retrieve chat history. Look up contact info by name or phone for sending/replying.
|
|
4
|
-
metadata:
|
|
5
|
-
author: machina
|
|
6
|
-
version: "3.0"
|
|
7
|
-
category: messaging
|
|
8
|
-
icon: "💬"
|
|
9
|
-
color: "#25D366"
|
|
10
|
-
---
|
|
11
|
-
|
|
12
|
-
# WhatsApp Messaging Skill
|
|
13
|
-
|
|
14
|
-
This skill provides context for WhatsApp messaging capabilities.
|
|
15
|
-
|
|
16
|
-
## How It Works
|
|
17
|
-
|
|
18
|
-
This skill provides instructions and context. To execute WhatsApp actions, connect the appropriate **tool nodes** to the Zeenie's `input-tools` handle:
|
|
19
|
-
|
|
20
|
-
- **WhatsApp Send** node - Send messages to contacts or groups
|
|
21
|
-
- **WhatsApp DB** node - Query contacts, groups, and chat history
|
|
22
|
-
|
|
23
|
-
## whatsapp_send Tool
|
|
24
|
-
|
|
25
|
-
Send messages to contacts or groups.
|
|
26
|
-
|
|
27
|
-
### Schema Fields
|
|
28
|
-
|
|
29
|
-
| Field | Type | Required | Description |
|
|
30
|
-
|-------|------|----------|-------------|
|
|
31
|
-
| recipient_type | string | Yes | "phone" for individual or "group" for group chat |
|
|
32
|
-
| phone | string | If phone | Phone number without + prefix (e.g., 1234567890) |
|
|
33
|
-
| group_id | string | If group | Group JID (e.g., 123456789@g.us) |
|
|
34
|
-
| message_type | string | Yes | "text", "image", "video", "audio", "document", "sticker", "location", "contact" |
|
|
35
|
-
| message | string | If text | Text message content |
|
|
36
|
-
| media_url | string | If media | URL for image/video/audio/document/sticker |
|
|
37
|
-
| caption | string | No | Caption for media messages |
|
|
38
|
-
| latitude | float | If location | Latitude coordinate |
|
|
39
|
-
| longitude | float | If location | Longitude coordinate |
|
|
40
|
-
| location_name | string | No | Display name for location |
|
|
41
|
-
| address | string | No | Address text for location |
|
|
42
|
-
| contact_name | string | If contact | Contact display name |
|
|
43
|
-
| vcard | string | If contact | vCard 3.0 format string |
|
|
44
|
-
|
|
45
|
-
### Examples
|
|
46
|
-
|
|
47
|
-
**Send text message:**
|
|
48
|
-
```json
|
|
49
|
-
{
|
|
50
|
-
"recipient_type": "phone",
|
|
51
|
-
"phone": "1234567890",
|
|
52
|
-
"message_type": "text",
|
|
53
|
-
"message": "Hello! How are you?"
|
|
54
|
-
}
|
|
55
|
-
```
|
|
56
|
-
|
|
57
|
-
**Send image with caption:**
|
|
58
|
-
```json
|
|
59
|
-
{
|
|
60
|
-
"recipient_type": "phone",
|
|
61
|
-
"phone": "1234567890",
|
|
62
|
-
"message_type": "image",
|
|
63
|
-
"media_url": "https://example.com/photo.jpg",
|
|
64
|
-
"caption": "Check out this photo!"
|
|
65
|
-
}
|
|
66
|
-
```
|
|
67
|
-
|
|
68
|
-
**Send to group:**
|
|
69
|
-
```json
|
|
70
|
-
{
|
|
71
|
-
"recipient_type": "group",
|
|
72
|
-
"group_id": "123456789012345678@g.us",
|
|
73
|
-
"message_type": "text",
|
|
74
|
-
"message": "Hello everyone!"
|
|
75
|
-
}
|
|
76
|
-
```
|
|
77
|
-
|
|
78
|
-
**Send location:**
|
|
79
|
-
```json
|
|
80
|
-
{
|
|
81
|
-
"recipient_type": "phone",
|
|
82
|
-
"phone": "1234567890",
|
|
83
|
-
"message_type": "location",
|
|
84
|
-
"latitude": 37.7749,
|
|
85
|
-
"longitude": -122.4194,
|
|
86
|
-
"location_name": "San Francisco",
|
|
87
|
-
"address": "San Francisco, CA, USA"
|
|
88
|
-
}
|
|
89
|
-
```
|
|
90
|
-
|
|
91
|
-
### Response Format
|
|
92
|
-
|
|
93
|
-
```json
|
|
94
|
-
{
|
|
95
|
-
"success": true,
|
|
96
|
-
"recipient": "1234567890",
|
|
97
|
-
"recipient_type": "phone",
|
|
98
|
-
"message_type": "text",
|
|
99
|
-
"details": {
|
|
100
|
-
"status": "sent",
|
|
101
|
-
"preview": "Hello! How are you?",
|
|
102
|
-
"timestamp": "2025-01-30T12:00:00"
|
|
103
|
-
}
|
|
104
|
-
}
|
|
105
|
-
```
|
|
106
|
-
|
|
107
|
-
## whatsapp_db Tool
|
|
108
|
-
|
|
109
|
-
Query WhatsApp database - contacts, groups, messages.
|
|
110
|
-
|
|
111
|
-
### Schema Fields
|
|
112
|
-
|
|
113
|
-
| Field | Type | Required | Description |
|
|
114
|
-
|-------|------|----------|-------------|
|
|
115
|
-
| operation | string | Yes | "chat_history", "search_groups", "get_group_info", "get_contact_info", "list_contacts", "check_contacts" |
|
|
116
|
-
| chat_type | string | For chat_history | "individual" or "group" |
|
|
117
|
-
| phone | string | Varies | Phone number for chat_history (individual), get_contact_info |
|
|
118
|
-
| group_id | string | Varies | Group JID for chat_history (group), get_group_info |
|
|
119
|
-
| message_filter | string | No | For chat_history: "all" or "text_only" |
|
|
120
|
-
| group_filter | string | No | For chat_history (group): "all" or "contact" |
|
|
121
|
-
| sender_phone | string | No | For chat_history with group_filter="contact" |
|
|
122
|
-
| limit | int | No | Max results. chat_history: 1-500 (default 50), search_groups: 1-50 (default 20), list_contacts: 1-100 (default 50) |
|
|
123
|
-
| offset | int | No | For chat_history: pagination offset |
|
|
124
|
-
| query | string | No | Search query for search_groups, list_contacts. Use specific queries to narrow results |
|
|
125
|
-
| phones | string | For check_contacts | Comma-separated phone numbers |
|
|
126
|
-
| participant_limit | int | No | For get_group_info: max participants (1-100, default 50) |
|
|
127
|
-
|
|
128
|
-
**Important:** Always use small limits and specific queries to avoid context overflow errors.
|
|
129
|
-
|
|
130
|
-
### Operations
|
|
131
|
-
|
|
132
|
-
#### list_contacts
|
|
133
|
-
List contacts with saved names. Useful for finding someone by name.
|
|
134
|
-
|
|
135
|
-
```json
|
|
136
|
-
{
|
|
137
|
-
"operation": "list_contacts",
|
|
138
|
-
"query": "mom",
|
|
139
|
-
"limit": 10
|
|
140
|
-
}
|
|
141
|
-
```
|
|
142
|
-
|
|
143
|
-
#### get_contact_info
|
|
144
|
-
Get full contact info for sending/replying.
|
|
145
|
-
|
|
146
|
-
```json
|
|
147
|
-
{
|
|
148
|
-
"operation": "get_contact_info",
|
|
149
|
-
"phone": "919876543210"
|
|
150
|
-
}
|
|
151
|
-
```
|
|
152
|
-
|
|
153
|
-
#### search_groups
|
|
154
|
-
Search groups by name. Use specific query to narrow results.
|
|
155
|
-
|
|
156
|
-
```json
|
|
157
|
-
{
|
|
158
|
-
"operation": "search_groups",
|
|
159
|
-
"query": "family",
|
|
160
|
-
"limit": 10
|
|
161
|
-
}
|
|
162
|
-
```
|
|
163
|
-
|
|
164
|
-
#### get_group_info
|
|
165
|
-
Get group details with participant names. Large groups may have many participants.
|
|
166
|
-
|
|
167
|
-
```json
|
|
168
|
-
{
|
|
169
|
-
"operation": "get_group_info",
|
|
170
|
-
"group_id": "120363123456789@g.us",
|
|
171
|
-
"participant_limit": 20
|
|
172
|
-
}
|
|
173
|
-
```
|
|
174
|
-
|
|
175
|
-
#### chat_history
|
|
176
|
-
Retrieve message history.
|
|
177
|
-
|
|
178
|
-
```json
|
|
179
|
-
{
|
|
180
|
-
"operation": "chat_history",
|
|
181
|
-
"chat_type": "individual",
|
|
182
|
-
"phone": "1234567890",
|
|
183
|
-
"limit": 20
|
|
184
|
-
}
|
|
185
|
-
```
|
|
186
|
-
|
|
187
|
-
```json
|
|
188
|
-
{
|
|
189
|
-
"operation": "chat_history",
|
|
190
|
-
"chat_type": "group",
|
|
191
|
-
"group_id": "123456789012345678@g.us",
|
|
192
|
-
"message_filter": "text_only",
|
|
193
|
-
"limit": 50
|
|
194
|
-
}
|
|
195
|
-
```
|
|
196
|
-
|
|
197
|
-
#### check_contacts
|
|
198
|
-
Check WhatsApp registration status.
|
|
199
|
-
|
|
200
|
-
```json
|
|
201
|
-
{
|
|
202
|
-
"operation": "check_contacts",
|
|
203
|
-
"phones": "1234567890,0987654321"
|
|
204
|
-
}
|
|
205
|
-
```
|
|
206
|
-
|
|
207
|
-
### Response Formats
|
|
208
|
-
|
|
209
|
-
**list_contacts response:**
|
|
210
|
-
```json
|
|
211
|
-
{
|
|
212
|
-
"success": true,
|
|
213
|
-
"operation": "list_contacts",
|
|
214
|
-
"contacts": [
|
|
215
|
-
{"phone": "919876543210", "name": "Mom", "jid": "919876543210@s.whatsapp.net"}
|
|
216
|
-
],
|
|
217
|
-
"total": 1
|
|
218
|
-
}
|
|
219
|
-
```
|
|
220
|
-
|
|
221
|
-
**chat_history response:**
|
|
222
|
-
```json
|
|
223
|
-
{
|
|
224
|
-
"success": true,
|
|
225
|
-
"operation": "chat_history",
|
|
226
|
-
"messages": [
|
|
227
|
-
{
|
|
228
|
-
"index": 1,
|
|
229
|
-
"message_id": "ABC123",
|
|
230
|
-
"sender": "919876543210@s.whatsapp.net",
|
|
231
|
-
"text": "Hello!",
|
|
232
|
-
"timestamp": "2025-01-30T12:00:00",
|
|
233
|
-
"is_from_me": false
|
|
234
|
-
}
|
|
235
|
-
],
|
|
236
|
-
"total": 50,
|
|
237
|
-
"has_more": true
|
|
238
|
-
}
|
|
239
|
-
```
|
|
240
|
-
|
|
241
|
-
**get_group_info response:**
|
|
242
|
-
```json
|
|
243
|
-
{
|
|
244
|
-
"success": true,
|
|
245
|
-
"operation": "get_group_info",
|
|
246
|
-
"name": "Family Group",
|
|
247
|
-
"jid": "123456789@g.us",
|
|
248
|
-
"participants": [
|
|
249
|
-
{"phone": "919876543210", "name": "Mom", "is_admin": true},
|
|
250
|
-
{"phone": "919876543211", "name": "Dad", "is_admin": false}
|
|
251
|
-
]
|
|
252
|
-
}
|
|
253
|
-
```
|
|
254
|
-
|
|
255
|
-
## Common Workflows
|
|
256
|
-
|
|
257
|
-
### Send message to someone by name
|
|
258
|
-
|
|
259
|
-
1. Use `list_contacts` with query to find the person
|
|
260
|
-
2. Get their phone number from the result
|
|
261
|
-
3. Use `whatsapp_send` with the phone number
|
|
262
|
-
|
|
263
|
-
### Reply to someone in a group
|
|
264
|
-
|
|
265
|
-
1. Use `get_group_info` to get participant names and phones
|
|
266
|
-
2. Use `whatsapp_send` with recipient_type="phone" and the person's phone
|
|
267
|
-
|
|
268
|
-
### Find and message a group
|
|
269
|
-
|
|
270
|
-
1. Use `search_groups` to find the group by name
|
|
271
|
-
2. Use `whatsapp_send` with recipient_type="group" and the group_id
|
|
272
|
-
|
|
273
|
-
## Guidelines
|
|
274
|
-
|
|
275
|
-
1. **Phone numbers**: Always use without + prefix, just digits (e.g., 919876543210)
|
|
276
|
-
2. **Groups**: Use JID format ending in @g.us
|
|
277
|
-
3. **Contact lookup**: Use list_contacts first if you only have a name
|
|
278
|
-
4. **Media URLs**: Must be publicly accessible URLs
|
|
279
|
-
5. **Pagination**: Use offset with limit to page through chat history
|
|
280
|
-
|
|
281
|
-
## Setup Requirements
|
|
282
|
-
|
|
283
|
-
1. Connect this skill to Zeenie's `input-skill` handle
|
|
284
|
-
2. Connect WhatsApp tool nodes to Zeenie's `input-tools` handle
|
|
285
|
-
3. Ensure WhatsApp is connected (green status indicator)
|
|
File without changes
|
|
File without changes
|