@pixelml/claw 3.3.0 → 3.3.2

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.
@@ -0,0 +1,84 @@
1
+ # AgenticFlow Skill - Optimized Architecture (Workflows & Agents)
2
+
3
+ ## 🏗️ System Architecture
4
+
5
+ ```
6
+ ┌─────────────────────────────────────────────────────────────────┐
7
+ │ AgenticFlow Skill │
8
+ │ │
9
+ │ ┌────────────────────────────────────────────────────────────┐ │
10
+ │ │ SKILL.md (Entry Point) │ │
11
+ │ │ - Agent Architecture (Instructions + Tools) │ │
12
+ │ │ - Workflow Architecture (Nodes + Data Flow) │ │
13
+ │ │ - Local-first strategy │ │
14
+ │ └────────────────────────────────────────────────────────────┘ │
15
+ │ ↓ │
16
+ │ ┌────────────────────────────────────────────────────────────┐ │
17
+ │ │ AGENT LAYER (Reasoning & Identity) │ │
18
+ │ │ - Personality / Instructions │ │
19
+ │ │ - Tool Selection (Logic) │ │
20
+ │ │ - Workflow Integration (Execution) │ │
21
+ │ └────────────────────────────────────────────────────────────┘ │
22
+ │ ↓ │
23
+ │ ┌────────────────────────────────────────────────────────────┐ │
24
+ │ │ WORKFLOW LAYER (Deterministic Logic) │ │
25
+ │ │ - 139+ Node Types (LOCAL references/node_types.md) │ │
26
+ │ │ - 2,500+ MCP Actions (LOCAL references/mcp_integrations.md)│ │
27
+ │ │ - Real-world Examples (LOCAL references/workflow_guide.md) │ │
28
+ │ └────────────────────────────────────────────────────────────┘ │
29
+ │ ↓ │
30
+ │ ┌────────────────────────────────────────────────────────────┐ │
31
+ │ │ API CALLS (Only When Required) │ │
32
+ │ │ │ │
33
+ │ │ agenticflow_create_agent() │ │
34
+ │ │ agenticflow_validate_workflow() │ │
35
+ │ │ agenticflow_create_workflow() │ │
36
+ │ └────────────────────────────────────────────────────────────┘ │
37
+ └─────────────────────────────────────────────────────────────────┘
38
+ ```
39
+
40
+ ## 📊 Data Flow Diagram
41
+
42
+ ```
43
+ User Request
44
+
45
+
46
+ ┌────────────────────────────────────────┐
47
+ │ REASONING LAYER (Agent) │
48
+ │ Define Instructions & Name │
49
+ └────────────────────────────────────────┘
50
+
51
+
52
+ ┌────────────────────────────────────────┐
53
+ │ TOOL LAYER (Workflows) │
54
+ │ │
55
+ │ ┌──────────────┐ ┌───────────────┐ │
56
+ │ │ Nodes │ │ Integrations │ │
57
+ │ │ (139 Types) │ │ (2,500+ MCP) │ │
58
+ │ └──────────────┘ └───────────────┘ │
59
+ └────────────────────────────────────────┘
60
+
61
+
62
+ ┌────────────────────────────────────────┐
63
+ │ API LAYER (Creation) │
64
+ │ │
65
+ │ 1. Validate & Create Workflows │
66
+ │ 2. Create Agent & Attach Workflows │
67
+ └────────────────────────────────────────┘
68
+ ```
69
+
70
+ ## 🎯 Success Metrics
71
+
72
+ | Metric | Workflow | Agent |
73
+ |--------|----------|-------|
74
+ | Complexity | Low to Medium | High |
75
+ | Output | Deterministic | Probabilistic/Interactive |
76
+ | Execution | Sequence of nodes | Intent-based tool use |
77
+ | Power | API & Data processing | Conversational reasoning |
78
+
79
+ ## 🚀 Key Optimizations
80
+ - **Workflows as Tools**: Design logic once, use across multiple Agents.
81
+ - **Local-First**: Search nodes and patterns locally to design workflows before calling APIs.
82
+ - **Layered Validation**: Validate workflow structure before attaching to an Agent.
83
+
84
+ **FOR FULL TECHNICAL DETAILS, REFER TO GUIDES.md.**
@@ -0,0 +1,56 @@
1
+ ---
2
+ name: agenticflow-skill
3
+ description: This skill enables you to design and build both AgenticFlow autonomous AI agents and deterministic automation workflows. Use this when users want to create specialized AI entities or automate complex business processes with 2,500+ service integrations.
4
+ ---
5
+
6
+ # AgenticFlow Builder (Agents & Workflows)
7
+
8
+ ## 🏗️ Core Architectures
9
+
10
+ ### 🤖 1. AI Agents (High-Level)
11
+ Autonomous entities that can reason, interact, and perform tasks using tools.
12
+ - **Identity**: Instructions (System Prompt) and Personality.
13
+ - **Power Source**: **Workflows** (attached as Tools).
14
+ - **Knowledge**: Connected datasets and documents.
15
+ - **Best for**: Customer support, autonomous researchers, interactive assistants.
16
+
17
+ ### ⛓️ 2. Workflows (The Engines)
18
+ Deterministic automation pipelines that perform specific, repeatable tasks.
19
+ - **Structure**: A sequence of **Nodes** (139+ types).
20
+ - **Data Flow**: Template variable mapping `{{node_name.content}}`.
21
+ - **Integrations**: 2,500+ MCP actions.
22
+ - **Best for**: Data syncing, scheduled tasks, fixed automation loops.
23
+
24
+ > [!IMPORTANT]
25
+ > **Hierarchy:** A Workflow is typically a **Tool** used by an Agent. While a Workflow can run independently, an Agent provides the reasoning layer to decide *when* and *how* to use those Workflows.
26
+
27
+ ---
28
+
29
+ ## 🎯 When to use this skill
30
+
31
+ 1. **Building an Agent**: Use when the user needs an "entity" that can handle various requests, has a memory, or needs to make decisions on which tools to use.
32
+ 2. **Building a Workflow**: Use when the goal is a specific sequence of actions (e.g., "Every morning, scrape X and send to Y").
33
+ 3. **Hybrid Solutions**: Design the Workflows first as tools, then wrap them into a specialized Agent.
34
+
35
+ ---
36
+
37
+ ## � Quick Start: Build Process
38
+
39
+ ### Step 1: Logic Design (Workflows)
40
+ - Identify nodes in `references/node_types.md`.
41
+ - Plan data flow and MCP integrations (`references/mcp_integrations.md`).
42
+ - **Validation**: Call `agenticflow_validate_workflow()`.
43
+ - **Creation**: Call `agenticflow_create_workflow()`.
44
+
45
+ ### Step 2: Personality & Wrapper (Agents)
46
+ - Define `instructions` and `name`.
47
+ - Attach the created `workflow_id` as part of the agent's toolset.
48
+ - **Creation**: Call `agenticflow_create_agent()`.
49
+
50
+ ---
51
+
52
+ ## ⚡ Performance Optimization: Local-First Strategy
53
+ **CRITICAL:** This skill contains ALL node and pattern data locally to minimize latency.
54
+ - Details: `references/node_types.md`, `GUIDES.md`, `OPTIMIZATION.md`.
55
+
56
+ **FOR FULL TECHNICAL DETAILS, ALWAYS REFER TO `GUIDES.md`.**
@@ -0,0 +1,373 @@
1
+ # MCP Integration Reference
2
+
3
+ ## MCP Node Structure
4
+
5
+ ### Basic MCP Action Node
6
+ ```javascript
7
+ {
8
+ "name": "action_name",
9
+ "title": "Descriptive Title",
10
+ "node_type_name": "mcp_run_action",
11
+ "input_config": {
12
+ "action": "SERVICE-ACTION", // From MCP catalog
13
+ "input_params": {
14
+ "instruction": "AI instruction with {{template_variables}} from other nodes"
15
+ }
16
+ },
17
+ "connection": "{{__app_connections__['uuid']}}"
18
+ }
19
+ ```
20
+
21
+ ### Advanced MCP Action with Error Handling
22
+ ```javascript
23
+ {
24
+ "name": "robust_action",
25
+ "node_type_name": "mcp_run_action",
26
+ "input_config": {
27
+ "action": "SERVICE-ACTION",
28
+ "input_params": {
29
+ "instruction": "Process this data: {{previous_node.output}}. Handle errors gracefully and provide fallback results."
30
+ }
31
+ },
32
+ "connection": "{{__app_connections__['connection-uuid']}}",
33
+ "output_mapping": {
34
+ "success_data": "output.results",
35
+ "error_message": "output.error",
36
+ "status": "output.status"
37
+ }
38
+ }
39
+ ```
40
+
41
+ ## Popular MCP Actions by Category
42
+
43
+ ### CRM & Sales
44
+ **HubSpot**
45
+ - `HUBSPOT-CREATE-CONTACT` - Create new contact
46
+ - `HUBSPOT-UPDATE-DEAL` - Update deal information
47
+ - `HUBSPOT-GET-COMPANIES` - List companies
48
+ - `HUBSPOT-SEARCH-CONTACTS` - Search contacts by criteria
49
+
50
+ **Salesforce**
51
+ - `SALESFORCE-CREATE-LEAD` - Create new lead
52
+ - `SALESFORCE-UPDATE-OPPORTUNITY` - Update opportunity
53
+ - `SALESFORCE-QUERY-ACCOUNTS` - Query account data
54
+ - `SALESFORCE-CREATE-TASK` - Create follow-up task
55
+
56
+ **Pipedrive**
57
+ - `PIPEDRIVE-ADD-PERSON` - Add person to pipeline
58
+ - `PIPEDRIVE-CREATE-DEAL` - Create new deal
59
+ - `PIPEDRIVE-UPDATE-DEAL` - Update deal value
60
+ - `PIPEDRIVE-GET-ACTIVITIES` - Get recent activities
61
+
62
+ ### Communication
63
+
64
+ **Gmail**
65
+ - `GMAIL-SEND-EMAIL` - Send email with HTML support
66
+ - `GMAIL-SEARCH-EMAILS` - Search emails by criteria
67
+ - `GMAIL-CREATE-DRAFT` - Create email draft
68
+ - `GMAIL-GET-THREADS` - Get email threads
69
+ - `GMAIL-LABEL-EMAIL` - Apply labels to emails
70
+
71
+ **Slack**
72
+ - `SLACK-SEND-MESSAGE` - Send message to channel/user
73
+ - `SLACK-CREATE-CHANNEL` - Create new channel
74
+ - `SLACK-UPLOAD-FILE` - Upload file to Slack
75
+ - `SLACK-GET-CHANNELS` - List available channels
76
+ - `SLACK-ADD-REACTION` - Add emoji reaction
77
+
78
+ **Microsoft Teams**
79
+ - `TEAMS-CREATE-MEETING` - Create Teams meeting
80
+ - `TEAMS-SEND-MESSAGE` - Send message in channel
81
+ - `TEAMS-GET-CHANNELS` - List team channels
82
+ - `TEAMS-UPLOAD-FILE` - Upload file to Teams
83
+
84
+ **WhatsApp**
85
+ - `WHATSAPP-SEND-MESSAGE` - Send WhatsApp message
86
+ - `WHATSAPP-SEND-MEDIA` - Send media via WhatsApp
87
+ - `WHATSAPP-CREATE-GROUP` - Create WhatsApp group
88
+ - `WHATSAPP-GET-CONTACTS` - Get WhatsApp contacts
89
+
90
+ ### E-commerce
91
+
92
+ **Shopify**
93
+ - `SHOPIFY-GET-ORDERS` - Retrieve orders
94
+ - `SHOPIFY-UPDATE-PRODUCT` - Update product info
95
+ - `SHOPIFY-CREATE-PRODUCT` - Create new product
96
+ - `SHOPIFY-GET-CUSTOMERS` - Get customer data
97
+ - `SHOPIFY-GET-INVENTORY` - Check inventory levels
98
+
99
+ **WooCommerce**
100
+ - `WOO-CREATE-ORDER` - Create new order
101
+ - `WOO-UPDATE-PRODUCT` - Update product
102
+ - `WOO-GET-PRODUCTS` - List products
103
+ - `WOO-GET-CUSTOMERS` - Get customer data
104
+
105
+ **Stripe**
106
+ - `STRIPE-CREATE-PAYMENT` - Create payment intent
107
+ - `STRIPE-GET-CUSTOMERS` - Get customer list
108
+ - `STRIPE-CREATE-INVOICE` - Create invoice
109
+ - `STRIPE-REFUND-PAYMENT` - Process refund
110
+ - `STRIPE-GET-BALANCE` - Get account balance
111
+
112
+ ### Productivity
113
+
114
+ **Google Sheets**
115
+ - `GOOGLE_SHEETS-APPEND-ROW` - Add row to sheet
116
+ - `GOOGLE_SHEETS-UPDATE-RANGE` - Update cell range
117
+ - `GOOGLE_SHEETS-GET-RANGE` - Read cell range
118
+ - `GOOGLE_SHEETS-CREATE-SHEET` - Create new sheet
119
+ - `GOOGLE_SHEETS-DELETE-ROW` - Delete row from sheet
120
+
121
+ **Google Docs**
122
+ - `GOOGLE_DOCS-GET-DOCUMENT` - Get document content
123
+ - `GOOGLE_DOCS-UPDATE-DOCUMENT` - Update document
124
+ - `GOOGLE_DOCS-CREATE-DOCUMENT` - Create new document
125
+ - `GOOGLE_DOCS-EXPORT-DOCUMENT` - Export to PDF/Word
126
+
127
+ **Notion**
128
+ - `NOTION-CREATE-PAGE` - Create Notion page
129
+ - `NOTION-UPDATE-PAGE` - Update page content
130
+ - `NOTION-GET-DATABASE` - Get database entries
131
+ - `NOTION-SEARCH-PAGES` - Search pages
132
+ - `NOTION-ADD-BLOCK` - Add content block
133
+
134
+ **Airtable**
135
+ - `AIRTABLE-CREATE-RECORD` - Create new record
136
+ - `AIRTABLE-UPDATE-RECORD` - Update existing record
137
+ - `AIRTABLE-GET-RECORDS` - Get records from table
138
+ - `AIRTABLE-DELETE-RECORD` - Delete record
139
+ - `AIRTABLE-SEARCH-RECORDS` - Search records
140
+
141
+ ### Marketing
142
+
143
+ **Mailchimp**
144
+ - `MAILCHIMP-ADD-SUBSCRIBER` - Add email subscriber
145
+ - `MAILCHIMP-SEND-CAMPAIGN` - Send email campaign
146
+ - `MAILCHIMP-GET-LISTS` - Get email lists
147
+ - `MAILCHIMP-CREATE-CAMPAIGN` - Create campaign
148
+ - `MAILCHIMP-GET-SUBSCRIBERS` - Get subscriber data
149
+
150
+ **Facebook**
151
+ - `FACEBOOK-CREATE-POST` - Create Facebook post
152
+ - `FACEBOOK-GET-PAGES` - Get Facebook pages
153
+ - `FACEBOOK-UPLOAD-PHOTO` - Upload photo to page
154
+ - `FACEBOOK-GET-INSIGHTS` - Get page insights
155
+
156
+ **LinkedIn**
157
+ - `LINKEDIN-CREATE-POST` - Create LinkedIn post
158
+ - `LINKEDIN-GET-PROFILE` - Get profile data
159
+ - `LINKEDIN-SEND-CONNECTION` - Send connection request
160
+ - `LINKEDIN-GET-COMPANY-PAGE` - Get company page info
161
+
162
+ **Twitter/X**
163
+ - `TWITTER-CREATE-TWEET` - Create tweet
164
+ - `TWITTER-GET-TIMELINE` - Get timeline
165
+ - `TWITTER-GET-FOLLOWERS` - Get followers
166
+ - `TWITTER-RETWEET` - Retweet post
167
+
168
+ ### Project Management
169
+
170
+ **Asana**
171
+ - `ASANA-CREATE-TASK` - Create new task
172
+ - `ASANA-UPDATE-TASK` - Update task details
173
+ - `ASANA-GET-TASKS` - Get tasks from project
174
+ - `ASANA-CREATE-PROJECT` - Create new project
175
+ - `ASANA-ADD-COMMENT` - Add comment to task
176
+
177
+ **Trello**
178
+ - `TRELLO-CREATE-CARD` - Create new card
179
+ - `TRELLO-UPDATE-CARD` - Update card details
180
+ - `TRELLO-GET-BOARDS` - Get boards
181
+ - `TRELLO-ADD-COMMENT` - Add comment to card
182
+ - `TRELLO-MOVE-CARD` - Move card between lists
183
+
184
+ **Jira**
185
+ - `JIRA-CREATE-ISSUE` - Create new issue
186
+ - `JIRA-UPDATE-ISSUE` - Update issue details
187
+ - `JIRA-GET-ISSUES` - Get issues from project
188
+ - `JIRA-ADD-COMMENT` - Add comment to issue
189
+ - `JIRA-TRANSITION-ISSUE` - Change issue status
190
+
191
+ ### Social Media
192
+
193
+ **Instagram**
194
+ - `INSTAGRAM-CREATE-POST` - Create Instagram post
195
+ - `INSTAGRAM-GET-MEDIA` - Get media posts
196
+ - `INSTAGRAM-GET-COMMENTS` - Get post comments
197
+ - `INSTAGRAM-GET-INSIGHTS` - Get post insights
198
+
199
+ **TikTok**
200
+ - `TIKTOK-CREATE-VIDEO` - Create TikTok video
201
+ - `TIKTOK-GET-VIDEOS` - Get user videos
202
+ - `TIKTOK-GET-COMMENTS` - Get video comments
203
+ - `TIKTOK-GET-INSIGHTS` - Get video insights
204
+
205
+ **YouTube**
206
+ - `YOUTUBE-UPLOAD-VIDEO` - Upload YouTube video
207
+ - `YOUTUBE-GET-VIDEOS` - Get channel videos
208
+ - `YOUTUBE-GET-COMMENTS` - Get video comments
209
+ - `YOUTUBE-GET-ANALYTICS` - Get video analytics
210
+
211
+ ### Development Tools
212
+
213
+ **GitHub**
214
+ - `GITHUB-CREATE-ISSUE` - Create GitHub issue
215
+ - `GITHUB-GET-REPOSITORIES` - Get repositories
216
+ - `GITHUB-CREATE-PULL-REQUEST` - Create pull request
217
+ - `GITHUB-GET-ISSUES` - Get repository issues
218
+
219
+ **GitLab**
220
+ - `GITLAB-CREATE-ISSUE` - Create GitLab issue
221
+ - `GITLAB-GET-PROJECTS` - Get projects
222
+ - `GITLAB-CREATE-MERGE-REQUEST` - Create merge request
223
+ - `GITLAB-GET-ISSUES` - Get project issues
224
+
225
+ ### Analytics & Data
226
+
227
+ **Google Analytics**
228
+ - `GOOGLE_ANALYTICS-GET-REPORT` - Get analytics report
229
+ - `GOOGLE_ANALYTICS-GET-REALTIME` - Get realtime data
230
+ - `GOOGLE_ANALYTICS-GET-METADATA` - Get account metadata
231
+
232
+ **Mixpanel**
233
+ - `MIXPANEL-TRACK-EVENT` - Track user event
234
+ - `MIXPANEL-GET-USER-PROFILE` - Get user profile
235
+ - `MIXPANEL-EXPORT-DATA` - Export event data
236
+
237
+ **Amplitude**
238
+ - `AMPLITUDE-TRACK-EVENT` - Track event
239
+ - `AMPLITUDE-GET-USER-PROPERTIES` - Get user properties
240
+ - `AMPLITUDE-EXPORT-DATA` - Export user data
241
+
242
+ ## MCP Integration Best Practices
243
+
244
+ ### Connection Management
245
+ 1. **UUID Format**: Always use proper UUID format: `{{__app_connections__['uuid-here']}}`
246
+ 2. **Connection Testing**: Test connections before deploying workflows
247
+ 3. **Authentication**: Ensure OAuth/API keys are properly configured
248
+ 4. **Rate Limiting**: Respect service rate limits and implement delays
249
+
250
+ ### Instruction Design
251
+ 1. **Be Specific**: Provide clear, detailed instructions for AI execution
252
+ 2. **Include Context**: Pass relevant data from previous nodes using template variables
253
+ 3. **Error Handling**: Ask AI to handle errors gracefully and provide fallbacks
254
+ 4. **Data Formatting**: Specify desired output format when needed
255
+
256
+ ### Advanced Patterns
257
+
258
+ ### Conditional MCP Actions
259
+ ```javascript
260
+ {
261
+ "name": "conditional_action",
262
+ "node_type_name": "llm",
263
+ "input_config": {
264
+ "model": "DeepSeek V3",
265
+ "human_message": "Based on this data {{previous_node.output}}, should we send an email or Slack notification? Respond with either 'EMAIL' or 'SLACK'"
266
+ }
267
+ },
268
+ // Then use conditional logic to route to appropriate MCP action
269
+ ```
270
+
271
+ ### Batch Processing
272
+ ```javascript
273
+ {
274
+ "name": "batch_processor",
275
+ "node_type_name": "mcp_run_action",
276
+ "input_config": {
277
+ "action": "GOOGLE_SHEETS-APPEND-ROWS",
278
+ "input_params": {
279
+ "instruction": "Add all these rows to the sheet: {{data_array}}"
280
+ }
281
+ }
282
+ }
283
+ ```
284
+
285
+ ### Retry Logic
286
+ ```javascript
287
+ {
288
+ "name": "retry_action",
289
+ "node_type_name": "mcp_run_action",
290
+ "input_config": {
291
+ "action": "SERVICE-ACTION",
292
+ "input_params": {
293
+ "instruction": "Attempt this action. If it fails, wait 5 seconds and retry once: {{data}}"
294
+ }
295
+ }
296
+ }
297
+ ```
298
+
299
+ ## Troubleshooting MCP Integrations
300
+
301
+ ### Common Issues
302
+
303
+ **Connection Not Found**
304
+ ```
305
+ Error: "Connection not found"
306
+ Solution:
307
+ 1. Verify UUID is correct: {{__app_connections__['your-uuid']}}
308
+ 2. Check connection exists at agenticflow.ai/app/mcp
309
+ 3. Ensure connection is properly authenticated
310
+ ```
311
+
312
+ **Authentication Failed**
313
+ ```
314
+ Error: "Authentication failed"
315
+ Solution:
316
+ 1. Refresh OAuth tokens for the service
317
+ 2. Verify API keys are valid
318
+ 3. Check service account permissions
319
+ ```
320
+
321
+ **Rate Limit Exceeded**
322
+ ```
323
+ Error: "Rate limit exceeded"
324
+ Solution:
325
+ 1. Add delays between MCP actions
326
+ 2. Implement batch processing
327
+ 3. Use exponential backoff for retries
328
+ ```
329
+
330
+ **Invalid Action**
331
+ ```
332
+ Error: "Invalid action: SERVICE-ACTION"
333
+ Solution:
334
+ 1. Verify action name is correct
335
+ 2. Check MCP catalog for available actions
336
+ 3. Ensure service is properly connected
337
+ ```
338
+
339
+ ## Service Discovery
340
+
341
+ To find new MCP services:
342
+ 1. Visit agenticflow.ai/app/mcp
343
+ 2. Browse available services by category
344
+ 3. Test actions in the MCP playground
345
+ 4. Check action documentation for required parameters
346
+
347
+ ## Performance Optimization
348
+
349
+ ### Caching Strategies
350
+ 1. **Cache Frequent Queries**: Store results in intermediate nodes
351
+ 2. **Batch Operations**: Group similar MCP actions together
352
+ 3. **Parallel Execution**: Run independent MCP actions simultaneously
353
+ 4. **Connection Reuse**: Use same connection for multiple actions
354
+
355
+ ### Cost Management
356
+ 1. **Monitor Usage**: Track MCP action usage and costs
357
+ 2. **Choose Efficient Actions**: Use batch operations when possible
358
+ 3. **Implement Caching**: Reduce redundant API calls
359
+ 4. **Rate Limit Awareness**: Avoid unnecessary repeated calls
360
+
361
+ ## Security Best Practices
362
+
363
+ ### Data Protection
364
+ 1. **Sensitive Data**: Avoid passing sensitive data in instructions
365
+ 2. **Input Validation**: Validate data before MCP processing
366
+ 3. **Access Control**: Use principle of least privilege for connections
367
+ 4. **Audit Logging**: Log MCP actions for compliance
368
+
369
+ ### Connection Security
370
+ 1. **Secure Storage**: Store connection UUIDs securely
371
+ 2. **Regular Rotation**: Rotate API keys and OAuth tokens
372
+ 3. **Access Monitoring**: Monitor connection usage and access patterns
373
+ 4. **Revocation**: Immediately revoke compromised connections