This commit is contained in:
30
packages/marketplace/skills/browser-automation.md
Normal file
30
packages/marketplace/skills/browser-automation.md
Normal file
@@ -0,0 +1,30 @@
|
||||
---
|
||||
name: browser-automation
|
||||
description: Enable browser automation for web scraping, testing, and interaction
|
||||
category: tools
|
||||
tools: [browser_navigate, browser_screenshot, browser_click, browser_fill, browser_evaluate, browser_snapshot]
|
||||
---
|
||||
|
||||
# Browser Automation
|
||||
|
||||
Enable your agent to control a web browser for:
|
||||
- Web scraping and data extraction
|
||||
- Form filling and testing
|
||||
- Screenshot capture
|
||||
- JavaScript execution on web pages
|
||||
|
||||
## Setup
|
||||
Run this command in your Waggle installation directory:
|
||||
```
|
||||
npm install playwright-core
|
||||
```
|
||||
|
||||
Then restart Waggle. Browser tools will be automatically available.
|
||||
|
||||
## Available Tools
|
||||
- `browser_navigate` — Open a URL
|
||||
- `browser_screenshot` — Capture page screenshot
|
||||
- `browser_click` — Click elements
|
||||
- `browser_fill` — Fill form fields
|
||||
- `browser_evaluate` — Run JavaScript
|
||||
- `browser_snapshot` — Get page DOM
|
||||
31
packages/marketplace/skills/chart-generator.md
Normal file
31
packages/marketplace/skills/chart-generator.md
Normal file
@@ -0,0 +1,31 @@
|
||||
---
|
||||
name: chart-generator
|
||||
description: Generate charts and data visualizations using Mermaid diagrams
|
||||
category: visualization
|
||||
builtIn: true
|
||||
---
|
||||
|
||||
# Chart Generator
|
||||
|
||||
You can create charts using Mermaid diagram syntax. When the user asks for a chart, graph, or visualization:
|
||||
|
||||
1. Analyze the data provided
|
||||
2. Choose the appropriate chart type (pie, bar, flowchart, sequence, gantt, etc.)
|
||||
3. Generate the Mermaid syntax in a ```mermaid code block
|
||||
|
||||
## Supported Chart Types
|
||||
- Pie charts: for proportions and distributions
|
||||
- Flowcharts: for processes and decision trees
|
||||
- Sequence diagrams: for interactions and API flows
|
||||
- Gantt charts: for timelines and project plans
|
||||
- Bar charts (using xychart-beta): for comparisons
|
||||
- Git graphs: for branch visualizations
|
||||
|
||||
## Example
|
||||
```mermaid
|
||||
pie title Project Budget
|
||||
"Engineering" : 45
|
||||
"Marketing" : 25
|
||||
"Operations" : 20
|
||||
"Other" : 10
|
||||
```
|
||||
71
packages/marketplace/skills/pdf-generator.md
Normal file
71
packages/marketplace/skills/pdf-generator.md
Normal file
@@ -0,0 +1,71 @@
|
||||
---
|
||||
name: pdf-generator
|
||||
description: Generate PDF documents using reportlab or weasyprint
|
||||
category: documents
|
||||
builtIn: true
|
||||
---
|
||||
|
||||
# PDF Generator
|
||||
|
||||
Generate PDF documents. Use the bash tool to run a Python script with reportlab.
|
||||
|
||||
## Workflow
|
||||
|
||||
1. Create a Python script that uses reportlab to build the PDF
|
||||
2. Run it with the bash tool
|
||||
3. Return the file path to the user
|
||||
|
||||
## Requirements
|
||||
|
||||
- python3 with reportlab installed (`pip install reportlab`)
|
||||
|
||||
## Example Script
|
||||
|
||||
```python
|
||||
from reportlab.lib.pagesizes import letter
|
||||
from reportlab.lib.styles import getSampleStyleSheet, ParagraphStyle
|
||||
from reportlab.lib.units import inch
|
||||
from reportlab.platypus import SimpleDocTemplate, Paragraph, Spacer, Table, TableStyle
|
||||
from reportlab.lib import colors
|
||||
|
||||
doc = SimpleDocTemplate("report.pdf", pagesize=letter)
|
||||
styles = getSampleStyleSheet()
|
||||
elements = []
|
||||
|
||||
# Title
|
||||
title_style = ParagraphStyle('Title', parent=styles['Title'], fontSize=24, spaceAfter=30)
|
||||
elements.append(Paragraph("Quarterly Report", title_style))
|
||||
elements.append(Spacer(1, 12))
|
||||
|
||||
# Body text
|
||||
elements.append(Paragraph("This report covers Q1 2026 performance metrics.", styles['Normal']))
|
||||
elements.append(Spacer(1, 12))
|
||||
|
||||
# Table
|
||||
data = [
|
||||
["Metric", "Value", "Change"],
|
||||
["Revenue", "$2.4M", "+15%"],
|
||||
["Users", "12,500", "+22%"],
|
||||
["Retention", "94%", "+3%"],
|
||||
]
|
||||
table = Table(data, colWidths=[2*inch, 1.5*inch, 1*inch])
|
||||
table.setStyle(TableStyle([
|
||||
('BACKGROUND', (0, 0), (-1, 0), colors.HexColor('#4472C4')),
|
||||
('TEXTCOLOR', (0, 0), (-1, 0), colors.white),
|
||||
('FONTNAME', (0, 0), (-1, 0), 'Helvetica-Bold'),
|
||||
('GRID', (0, 0), (-1, -1), 0.5, colors.grey),
|
||||
('ALIGN', (1, 0), (-1, -1), 'CENTER'),
|
||||
]))
|
||||
elements.append(table)
|
||||
|
||||
doc.build(elements)
|
||||
print("Created report.pdf")
|
||||
```
|
||||
|
||||
## Tips
|
||||
|
||||
- Use `SimpleDocTemplate` for multi-page documents with automatic pagination
|
||||
- Use `reportlab.graphics` for charts and diagrams
|
||||
- Use `reportlab.lib.colors` for color management
|
||||
- For HTML-to-PDF, consider weasyprint (`pip install weasyprint`) as an alternative
|
||||
- Add page numbers with a custom `PageTemplate` and `Frame`
|
||||
54
packages/marketplace/skills/pptx-generator.md
Normal file
54
packages/marketplace/skills/pptx-generator.md
Normal file
@@ -0,0 +1,54 @@
|
||||
---
|
||||
name: pptx-generator
|
||||
description: Generate PowerPoint presentations using python-pptx
|
||||
category: documents
|
||||
builtIn: true
|
||||
---
|
||||
|
||||
# PPTX Generator
|
||||
|
||||
Generate PowerPoint presentations. Use the bash tool to run a Python script with python-pptx.
|
||||
|
||||
## Workflow
|
||||
|
||||
1. Create a Python script that uses python-pptx to build the presentation
|
||||
2. Run it with the bash tool
|
||||
3. Return the file path to the user
|
||||
|
||||
## Requirements
|
||||
|
||||
- python3 with python-pptx installed (`pip install python-pptx`)
|
||||
|
||||
## Example Script
|
||||
|
||||
```python
|
||||
from pptx import Presentation
|
||||
from pptx.util import Inches, Pt
|
||||
from pptx.enum.text import PP_ALIGN
|
||||
|
||||
prs = Presentation()
|
||||
|
||||
# Title slide
|
||||
slide = prs.slides.add_slide(prs.slide_layouts[0])
|
||||
slide.shapes.title.text = "Quarterly Report"
|
||||
slide.placeholders[1].text = "Q1 2026 Results"
|
||||
|
||||
# Content slide
|
||||
slide = prs.slides.add_slide(prs.slide_layouts[1])
|
||||
slide.shapes.title.text = "Key Metrics"
|
||||
body = slide.placeholders[1]
|
||||
tf = body.text_frame
|
||||
tf.text = "Revenue: $2.4M (+15% YoY)"
|
||||
p = tf.add_paragraph()
|
||||
p.text = "Active Users: 12,500 (+22%)"
|
||||
|
||||
prs.save("report.pptx")
|
||||
print("Created report.pptx")
|
||||
```
|
||||
|
||||
## Tips
|
||||
|
||||
- Use `prs.slide_layouts[0]` for title slides, `[1]` for content slides
|
||||
- Add charts with `pptx.chart` module
|
||||
- Add images with `slide.shapes.add_picture()`
|
||||
- Set slide dimensions with `prs.slide_width` and `prs.slide_height`
|
||||
65
packages/marketplace/skills/xlsx-generator.md
Normal file
65
packages/marketplace/skills/xlsx-generator.md
Normal file
@@ -0,0 +1,65 @@
|
||||
---
|
||||
name: xlsx-generator
|
||||
description: Generate Excel spreadsheets using openpyxl
|
||||
category: documents
|
||||
builtIn: true
|
||||
---
|
||||
|
||||
# XLSX Generator
|
||||
|
||||
Generate Excel spreadsheets. Use the bash tool to run a Python script with openpyxl.
|
||||
|
||||
## Workflow
|
||||
|
||||
1. Create a Python script that uses openpyxl to build the spreadsheet
|
||||
2. Run it with the bash tool
|
||||
3. Return the file path to the user
|
||||
|
||||
## Requirements
|
||||
|
||||
- python3 with openpyxl installed (`pip install openpyxl`)
|
||||
|
||||
## Example Script
|
||||
|
||||
```python
|
||||
from openpyxl import Workbook
|
||||
from openpyxl.styles import Font, Alignment, PatternFill
|
||||
from openpyxl.chart import BarChart, Reference
|
||||
|
||||
wb = Workbook()
|
||||
ws = wb.active
|
||||
ws.title = "Sales Data"
|
||||
|
||||
# Headers
|
||||
headers = ["Month", "Revenue", "Expenses", "Profit"]
|
||||
for col, header in enumerate(headers, 1):
|
||||
cell = ws.cell(row=1, column=col, value=header)
|
||||
cell.font = Font(bold=True, size=12)
|
||||
cell.fill = PatternFill(start_color="4472C4", fill_type="solid")
|
||||
cell.font = Font(bold=True, color="FFFFFF")
|
||||
|
||||
# Data
|
||||
data = [
|
||||
["Jan", 45000, 32000, 13000],
|
||||
["Feb", 52000, 35000, 17000],
|
||||
["Mar", 48000, 33000, 15000],
|
||||
]
|
||||
for row_idx, row_data in enumerate(data, 2):
|
||||
for col_idx, value in enumerate(row_data, 1):
|
||||
ws.cell(row=row_idx, column=col_idx, value=value)
|
||||
|
||||
# Auto-width columns
|
||||
for col in ws.columns:
|
||||
ws.column_dimensions[col[0].column_letter].width = 15
|
||||
|
||||
wb.save("sales-report.xlsx")
|
||||
print("Created sales-report.xlsx")
|
||||
```
|
||||
|
||||
## Tips
|
||||
|
||||
- Use `openpyxl.styles` for formatting (fonts, colors, borders)
|
||||
- Use `openpyxl.chart` for embedded charts
|
||||
- Use `ws.merge_cells()` for merged header rows
|
||||
- Use `openpyxl.utils` for column letter conversions
|
||||
- Add formulas as strings: `ws['D2'] = '=B2-C2'`
|
||||
Reference in New Issue
Block a user