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.
Files changed (41) hide show
  1. package/client/package.json +1 -1
  2. package/client/src/components/OutputPanel.tsx +3 -2
  3. package/client/src/components/parameterPanel/InputSection.tsx +4 -3
  4. package/package.json +1 -1
  5. package/server/routers/websocket.py +5 -5
  6. package/server/services/ai.py +38 -13
  7. package/server/services/deployment/manager.py +14 -0
  8. package/server/services/execution/executor.py +2 -0
  9. package/server/services/execution/models.py +8 -0
  10. package/server/services/handlers/ai.py +71 -23
  11. package/server/services/handlers/tools.py +103 -6
  12. package/server/skills/android_agent/app-launcher-skill/SKILL.md +137 -0
  13. package/server/skills/android_agent/app-list-skill/SKILL.md +148 -0
  14. package/server/skills/android_agent/audio-skill/SKILL.md +169 -0
  15. package/server/skills/android_agent/battery-skill/SKILL.md +114 -0
  16. package/server/skills/android_agent/bluetooth-skill/SKILL.md +151 -0
  17. package/server/skills/android_agent/camera-skill/SKILL.md +148 -0
  18. package/server/skills/android_agent/environmental-skill/SKILL.md +140 -0
  19. package/server/skills/android_agent/location-skill/SKILL.md +163 -0
  20. package/server/skills/android_agent/motion-skill/SKILL.md +141 -0
  21. package/server/skills/android_agent/screen-control-skill/SKILL.md +164 -0
  22. package/server/skills/android_agent/wifi-skill/SKILL.md +182 -0
  23. package/server/skills/assistant/subagent-skill/SKILL.md +62 -30
  24. package/server/skills/coding_agent/javascript-skill/SKILL.md +196 -0
  25. package/server/skills/coding_agent/python-skill/SKILL.md +165 -0
  26. package/server/skills/social_agent/whatsapp-db-skill/SKILL.md +284 -0
  27. package/server/skills/social_agent/whatsapp-send-skill/SKILL.md +180 -0
  28. package/server/skills/task_agent/cron-scheduler-skill/SKILL.md +215 -0
  29. package/server/skills/task_agent/task-manager-skill/SKILL.md +251 -0
  30. package/server/skills/task_agent/timer-skill/SKILL.md +168 -0
  31. package/server/skills/travel_agent/geocoding-skill/SKILL.md +186 -0
  32. package/server/skills/travel_agent/nearby-places-skill/SKILL.md +234 -0
  33. package/server/skills/web_agent/http-request-skill/SKILL.md +211 -0
  34. package/server/skills/android/skill/SKILL.md +0 -84
  35. package/server/skills/assistant/code-skill/SKILL.md +0 -176
  36. package/server/skills/assistant/http-skill/SKILL.md +0 -163
  37. package/server/skills/assistant/maps-skill/SKILL.md +0 -172
  38. package/server/skills/assistant/scheduler-skill/SKILL.md +0 -86
  39. package/server/skills/assistant/whatsapp-skill/SKILL.md +0 -285
  40. /package/server/skills/{android → android_agent}/personality/SKILL.md +0 -0
  41. /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)