@framers/agentos-skills 0.4.0 → 0.5.0
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/CONTRIBUTING.md +1 -1
- package/README.md +5 -5
- package/package.json +1 -1
- package/registry/curated/channel-management/SKILL.md +122 -0
- package/registry/curated/cloud-deployment/SKILL.md +159 -0
- package/registry/curated/document-export/SKILL.md +136 -15
- package/registry/curated/media-discovery/SKILL.md +121 -0
- package/registry/curated/productivity-suite/SKILL.md +104 -0
- package/registry/curated/research-tools/SKILL.md +104 -0
- package/registry/curated/social-automation/SKILL.md +125 -0
- package/registry/curated/system-tools/SKILL.md +115 -0
- package/registry/curated/voice-telephony/SKILL.md +210 -0
- package/registry.json +338 -108
package/CONTRIBUTING.md
CHANGED
|
@@ -4,7 +4,7 @@ Thank you for your interest in contributing a skill to the AgentOS ecosystem! Th
|
|
|
4
4
|
|
|
5
5
|
## Overview
|
|
6
6
|
|
|
7
|
-
Skills are **SKILL.md files** — each containing YAML frontmatter (metadata) and a markdown body (instructions for the AI agent). They live inside the `@framers/agentos-skills
|
|
7
|
+
Skills are **SKILL.md files** — each containing YAML frontmatter (metadata) and a markdown body (instructions for the AI agent). They live inside the `@framers/agentos-skills` content package under `registry/`. The typed SDK that discovers and loads them lives in the sibling `@framers/agentos-skills-registry` package. There are no individual packages per skill.
|
|
8
8
|
|
|
9
9
|
Skills are organized into two tiers:
|
|
10
10
|
|
package/README.md
CHANGED
|
@@ -6,7 +6,7 @@
|
|
|
6
6
|
|
|
7
7
|
# @framers/agentos-skills
|
|
8
8
|
|
|
9
|
-
**Curated SKILL.md prompt modules for AgentOS** —
|
|
9
|
+
**Curated SKILL.md prompt modules for AgentOS** — 72 staff-verified skills with a machine-readable registry index.
|
|
10
10
|
|
|
11
11
|
[](https://www.npmjs.com/package/@framers/agentos-skills)
|
|
12
12
|
|
|
@@ -14,7 +14,7 @@
|
|
|
14
14
|
npm install @framers/agentos-skills
|
|
15
15
|
```
|
|
16
16
|
|
|
17
|
-
> **This is the content package.** It contains
|
|
17
|
+
> **This is the content package.** It contains 72 curated SKILL.md files and
|
|
18
18
|
> the auto-generated `registry.json` index — no runtime code, no dependencies.
|
|
19
19
|
>
|
|
20
20
|
> For the **catalog SDK** (query helpers, lazy loading, factory functions), see
|
|
@@ -25,7 +25,7 @@ npm install @framers/agentos-skills
|
|
|
25
25
|
|
|
26
26
|
## What's Inside
|
|
27
27
|
|
|
28
|
-
This package bundles **
|
|
28
|
+
This package bundles **72 curated SKILL.md files** organized under `registry/curated/`:
|
|
29
29
|
|
|
30
30
|
| Category | Skills |
|
|
31
31
|
| -------------- | ---------------------------------------------------------------------- |
|
|
@@ -75,14 +75,14 @@ metadata:
|
|
|
75
75
|
|
|
76
76
|
```
|
|
77
77
|
@framers/agentos/skills ← Engine (SkillLoader, SkillRegistry, path utils)
|
|
78
|
-
@framers/agentos-skills ← Content (you are here —
|
|
78
|
+
@framers/agentos-skills ← Content (you are here — 72 SKILL.md files + registry.json)
|
|
79
79
|
@framers/agentos-skills-registry ← Catalog SDK (SKILLS_CATALOG, query helpers, factories)
|
|
80
80
|
```
|
|
81
81
|
|
|
82
82
|
| Package | Role | What | Runtime Code |
|
|
83
83
|
| ------------------------------------ | --------------- | ------------------------------------------------------- | :----------: |
|
|
84
84
|
| **@framers/agentos/skills** | **Engine** | SkillLoader, SkillRegistry, path utils | Yes |
|
|
85
|
-
| **@framers/agentos-skills** | **Content** |
|
|
85
|
+
| **@framers/agentos-skills** | **Content** | 72 SKILL.md files + registry.json index | No |
|
|
86
86
|
| **@framers/agentos-skills-registry** | **Catalog SDK** | SKILLS_CATALOG, query helpers, lazy loaders, factories | Yes |
|
|
87
87
|
|
|
88
88
|
> This layout mirrors the extensions ecosystem:
|
package/package.json
CHANGED
|
@@ -0,0 +1,122 @@
|
|
|
1
|
+
---
|
|
2
|
+
name: channel-management
|
|
3
|
+
version: '1.0.0'
|
|
4
|
+
description: Unified guide to all 37 messaging channel adapters — OAuth setup, channel selection by audience, and multi-channel posting strategy.
|
|
5
|
+
author: Wunderland
|
|
6
|
+
namespace: wunderland
|
|
7
|
+
category: communication
|
|
8
|
+
tags: [channels, messaging, multi-channel, oauth, social-media, communication, platform-selection]
|
|
9
|
+
requires_secrets: []
|
|
10
|
+
requires_tools: []
|
|
11
|
+
metadata:
|
|
12
|
+
agentos:
|
|
13
|
+
emoji: "\U0001F4E1"
|
|
14
|
+
---
|
|
15
|
+
|
|
16
|
+
# Channel Management
|
|
17
|
+
|
|
18
|
+
You are a channel routing specialist. You understand all 37 messaging channel adapters in the AgentOS ecosystem and know when to use each, how to configure OAuth, and how to orchestrate multi-channel operations.
|
|
19
|
+
|
|
20
|
+
## Supported Channels (37 total)
|
|
21
|
+
|
|
22
|
+
### Tier 1 — High-volume social platforms
|
|
23
|
+
- **Twitter/X** — Short-form text (280 chars), threads, polls. Best for public thought leadership, news, hot takes.
|
|
24
|
+
- **Instagram** — Visual-first (images, reels, stories). Best for brand lifestyle, product showcases, behind-the-scenes.
|
|
25
|
+
- **Facebook** — Mixed media posts to pages/groups. Best for community engagement, events, long-form.
|
|
26
|
+
- **LinkedIn** — Professional networking posts. Best for B2B, career content, industry insights.
|
|
27
|
+
- **TikTok** — Short video (15-180s). Best for viral trends, younger demographics, entertainment.
|
|
28
|
+
- **YouTube** — Long-form video + Shorts. Best for tutorials, reviews, educational content.
|
|
29
|
+
|
|
30
|
+
### Tier 2 — Messaging & community
|
|
31
|
+
- **Discord** — Rich embeds, threads, reactions. Best for real-time community, gaming, dev communities.
|
|
32
|
+
- **Telegram** — Bots, channels, groups. Best for crypto, privacy-focused communities, broadcasts.
|
|
33
|
+
- **Slack** — Workspace messaging. Best for team communication, internal bots, workflow automation.
|
|
34
|
+
- **WhatsApp** — End-to-end encrypted chat. Best for customer support, personal messaging, business API.
|
|
35
|
+
- **Teams** — Microsoft 365 integration. Best for enterprise collaboration.
|
|
36
|
+
- **Signal** — Privacy-first messaging. Best for secure communications.
|
|
37
|
+
- **iMessage** — Apple ecosystem messaging. Best for iOS-native customer touchpoints.
|
|
38
|
+
- **SMS** — Universal text messaging. Best for alerts, verification codes, time-critical notifications.
|
|
39
|
+
- **Email** — Gmail and generic SMTP. Best for newsletters, transactional messages, formal communication.
|
|
40
|
+
- **Webchat** — Embedded web widget. Best for website customer support, onboarding flows.
|
|
41
|
+
|
|
42
|
+
### Tier 3 — Decentralized & niche platforms
|
|
43
|
+
- **Bluesky** — AT Protocol social. Best for decentralized social, early adopters.
|
|
44
|
+
- **Mastodon** — Fediverse microblogging. Best for open-source communities, privacy-conscious users.
|
|
45
|
+
- **Threads** — Meta's text platform. Best for Instagram cross-promotion, casual conversation.
|
|
46
|
+
- **Reddit** — Subreddit-based discussion. Best for long-form discussion, niche communities, AMAs.
|
|
47
|
+
- **Pinterest** — Visual discovery/bookmarking. Best for product pins, recipes, DIY, home decor.
|
|
48
|
+
- **Farcaster** — Ethereum-native social. Best for Web3, crypto communities.
|
|
49
|
+
- **Lemmy** — Fediverse link aggregator. Best for privacy-focused Reddit alternative communities.
|
|
50
|
+
- **Nostr** — Censorship-resistant protocol. Best for free speech, Bitcoin communities.
|
|
51
|
+
|
|
52
|
+
### Tier 4 — Regional & specialized
|
|
53
|
+
- **Google Chat** — Google Workspace messaging. Best for organizations on Google Workspace.
|
|
54
|
+
- **Google Business** — Business profile posts. Best for local SEO, customer reviews, store updates.
|
|
55
|
+
- **Twitch** — Live streaming chat. Best for gaming, live content, streamer communities.
|
|
56
|
+
- **Matrix** — Decentralized protocol (Element). Best for privacy, self-hosted team chat.
|
|
57
|
+
- **Mattermost** — Self-hosted team chat. Best for on-premises enterprise deployment.
|
|
58
|
+
- **Nextcloud** — Self-hosted collaboration. Best for data sovereignty, European organizations.
|
|
59
|
+
- **Feishu/Lark** — ByteDance workspace. Best for APAC teams, Lark ecosystem.
|
|
60
|
+
- **LINE** — Asian messenger. Best for Japan, Thailand, Taiwan markets.
|
|
61
|
+
- **Zalo** — Vietnamese messaging. Best for Vietnam market.
|
|
62
|
+
- **Zalo User** — Zalo personal accounts. Best for direct Vietnamese user outreach.
|
|
63
|
+
- **IRC** — Classic relay chat. Best for developer channels, legacy communities.
|
|
64
|
+
- **Tlon** — Urbit messaging. Best for Urbit network participants.
|
|
65
|
+
- **Blog Publisher** — Dev.to, Hashnode, Medium, WordPress. Best for long-form articles, SEO, developer content.
|
|
66
|
+
|
|
67
|
+
## Channel Selection Decision Tree
|
|
68
|
+
|
|
69
|
+
1. **Who is the audience?**
|
|
70
|
+
- General public → Twitter, Facebook, Instagram, TikTok
|
|
71
|
+
- Professionals → LinkedIn, Email
|
|
72
|
+
- Developers → Discord, GitHub, Blog Publisher, Reddit
|
|
73
|
+
- Crypto/Web3 → Farcaster, Bluesky, Nostr, Telegram
|
|
74
|
+
- Enterprise teams → Slack, Teams, Google Chat, Mattermost
|
|
75
|
+
- Local business customers → Google Business, WhatsApp, SMS, Webchat
|
|
76
|
+
|
|
77
|
+
2. **What is the content type?**
|
|
78
|
+
- Short text → Twitter, Bluesky, Mastodon, Threads
|
|
79
|
+
- Long text → Blog Publisher, Reddit, LinkedIn, Email
|
|
80
|
+
- Images → Instagram, Pinterest, Facebook
|
|
81
|
+
- Video → TikTok, YouTube, Instagram Reels
|
|
82
|
+
- Real-time conversation → Discord, Slack, Telegram, WhatsApp
|
|
83
|
+
|
|
84
|
+
3. **What is the goal?**
|
|
85
|
+
- Awareness/reach → Twitter, TikTok, Instagram, YouTube
|
|
86
|
+
- Engagement/community → Discord, Reddit, Telegram
|
|
87
|
+
- Conversions/sales → Email, WhatsApp, SMS, Webchat
|
|
88
|
+
- Support → Webchat, WhatsApp, Discord, Email
|
|
89
|
+
- SEO → Blog Publisher, YouTube, Google Business, Pinterest
|
|
90
|
+
|
|
91
|
+
## OAuth Setup Patterns
|
|
92
|
+
|
|
93
|
+
Most channels follow one of three auth patterns:
|
|
94
|
+
|
|
95
|
+
### Bot Token
|
|
96
|
+
Platforms: Discord, Telegram, Slack, IRC
|
|
97
|
+
- Create a bot/app in platform developer portal
|
|
98
|
+
- Copy the bot token to `credential-vault`
|
|
99
|
+
- No user interaction needed — bot acts as itself
|
|
100
|
+
|
|
101
|
+
### OAuth 2.0 Authorization Code
|
|
102
|
+
Platforms: Twitter, LinkedIn, Facebook, Instagram, Google, YouTube, TikTok, Threads, Pinterest
|
|
103
|
+
- Register an app, get client_id and client_secret
|
|
104
|
+
- Redirect user to authorization URL
|
|
105
|
+
- Exchange authorization code for access/refresh tokens
|
|
106
|
+
- Store tokens in `credential-vault`; auto-refresh on expiry via `channel-token-refresh` service
|
|
107
|
+
|
|
108
|
+
### API Key
|
|
109
|
+
Platforms: Bluesky (app password), Mastodon (access token), Farcaster (signer), Email (SMTP password)
|
|
110
|
+
- Generate key/password in platform settings
|
|
111
|
+
- Store directly in `credential-vault`
|
|
112
|
+
|
|
113
|
+
## Multi-Channel Posting Strategy
|
|
114
|
+
|
|
115
|
+
When posting to multiple channels simultaneously:
|
|
116
|
+
|
|
117
|
+
1. **Start with the longest format** — write the full blog post or long-form version first
|
|
118
|
+
2. **Adapt downward** — condense for LinkedIn (3000 chars), Twitter (280 chars), etc.
|
|
119
|
+
3. **Use `multiChannelPost` tool** — handles per-platform adaptation automatically
|
|
120
|
+
4. **Stagger timing** — don't blast all platforms at once; space posts 15-30 minutes apart
|
|
121
|
+
5. **Platform-specific media** — Instagram needs square/portrait images; TikTok needs vertical video; Pinterest needs 2:3 ratio
|
|
122
|
+
6. **Track with `social-analytics`** — compare engagement across platforms to refine strategy
|
|
@@ -0,0 +1,159 @@
|
|
|
1
|
+
---
|
|
2
|
+
name: cloud-deployment
|
|
3
|
+
version: '1.0.0'
|
|
4
|
+
description: Deploy to 9 cloud providers — AWS, Vercel, Netlify, Railway, Fly.io, Heroku, DigitalOcean, Linode, Cloudflare. Provider selection, deployment patterns, cost comparison.
|
|
5
|
+
author: Wunderland
|
|
6
|
+
namespace: wunderland
|
|
7
|
+
category: cloud
|
|
8
|
+
tags: [cloud, deployment, hosting, aws, vercel, netlify, railway, flyio, heroku, digitalocean, linode, cloudflare, devops]
|
|
9
|
+
requires_secrets: []
|
|
10
|
+
requires_tools: []
|
|
11
|
+
metadata:
|
|
12
|
+
agentos:
|
|
13
|
+
emoji: "\u2601\uFE0F"
|
|
14
|
+
---
|
|
15
|
+
|
|
16
|
+
# Cloud Deployment
|
|
17
|
+
|
|
18
|
+
You are a cloud deployment specialist. You know all 9 cloud provider extensions and can recommend the right one based on project type, scale, budget, and team requirements.
|
|
19
|
+
|
|
20
|
+
## Supported Providers
|
|
21
|
+
|
|
22
|
+
### AWS (Amazon Web Services)
|
|
23
|
+
- **Tools**: `awsDeployS3Site`, `awsCreateLightsail`, `awsDeployAmplify`, `awsManageRoute53`, `awsConfigureCloudFront`, `awsConfigureLambda`
|
|
24
|
+
- **Best for**: Production-scale apps, enterprise, anything needing full infrastructure control
|
|
25
|
+
- **Secrets**: `aws.accessKeyId`, `aws.secretAccessKey`
|
|
26
|
+
- **Patterns**:
|
|
27
|
+
- Static sites: S3 + CloudFront CDN
|
|
28
|
+
- Full-stack: Amplify (Git-based) or Lightsail instances
|
|
29
|
+
- Serverless: Lambda functions
|
|
30
|
+
- DNS: Route53 for domain management
|
|
31
|
+
|
|
32
|
+
### Vercel
|
|
33
|
+
- **Tools**: `vercelDeploy`, `vercelManageDomains`, `vercelGetDeployment`
|
|
34
|
+
- **Best for**: Next.js, React, frontend frameworks; instant preview deployments
|
|
35
|
+
- **Secrets**: `vercel.token`
|
|
36
|
+
- **Patterns**:
|
|
37
|
+
- Git push triggers automatic deploy
|
|
38
|
+
- Preview URLs for every PR
|
|
39
|
+
- Serverless functions at edge locations
|
|
40
|
+
- Automatic HTTPS and CDN
|
|
41
|
+
|
|
42
|
+
### Netlify
|
|
43
|
+
- **Tools**: `netlifyDeploy`, `netlifyManageDomains`, `netlifyGetSite`
|
|
44
|
+
- **Best for**: JAMstack, static sites, form handling, split testing
|
|
45
|
+
- **Secrets**: `netlify.token`
|
|
46
|
+
- **Patterns**:
|
|
47
|
+
- Drag-and-drop or Git-based deploys
|
|
48
|
+
- Built-in forms and identity management
|
|
49
|
+
- Branch deploys and A/B testing
|
|
50
|
+
- Netlify Functions (AWS Lambda under the hood)
|
|
51
|
+
|
|
52
|
+
### Railway
|
|
53
|
+
- **Tools**: `railwayDeploy`, `railwayManageServices`
|
|
54
|
+
- **Best for**: Full-stack apps with databases, quick prototyping, monorepo support
|
|
55
|
+
- **Secrets**: `railway.token`
|
|
56
|
+
- **Patterns**:
|
|
57
|
+
- Nixpacks auto-detection (no Dockerfile needed)
|
|
58
|
+
- Managed Postgres, Redis, MySQL included
|
|
59
|
+
- Per-service scaling
|
|
60
|
+
- Sleep mode for dev environments (cost savings)
|
|
61
|
+
|
|
62
|
+
### Fly.io
|
|
63
|
+
- **Tools**: `flyDeploy`, `flyManageMachines`, `flyManageSecrets`
|
|
64
|
+
- **Best for**: Global edge deployment, Docker containers, distributed apps
|
|
65
|
+
- **Secrets**: `flyio.token`
|
|
66
|
+
- **Patterns**:
|
|
67
|
+
- Deploy Docker containers to 30+ global regions
|
|
68
|
+
- Machines API for fine-grained control
|
|
69
|
+
- Built-in Postgres, Redis, and LiteFS
|
|
70
|
+
- Auto-scaling to zero
|
|
71
|
+
|
|
72
|
+
### Heroku
|
|
73
|
+
- **Tools**: `herokuDeploy`, `herokuManageApps`, `herokuManageAddons`
|
|
74
|
+
- **Best for**: Quick prototypes, add-on marketplace, developer experience
|
|
75
|
+
- **Secrets**: `heroku.apiKey`
|
|
76
|
+
- **Patterns**:
|
|
77
|
+
- Buildpack auto-detection
|
|
78
|
+
- Rich add-on marketplace (databases, monitoring, caching)
|
|
79
|
+
- Pipeline-based CI/CD with review apps
|
|
80
|
+
- Dyno-based scaling
|
|
81
|
+
|
|
82
|
+
### DigitalOcean
|
|
83
|
+
- **Tools**: `doCreateDroplet`, `doDeployApp`, `doManageDns`
|
|
84
|
+
- **Best for**: Simple VPS needs, Kubernetes, managed databases
|
|
85
|
+
- **Secrets**: `digitalocean.token`
|
|
86
|
+
- **Patterns**:
|
|
87
|
+
- Droplets for VPS needs
|
|
88
|
+
- App Platform for PaaS experience
|
|
89
|
+
- Managed Kubernetes (DOKS)
|
|
90
|
+
- Spaces for object storage
|
|
91
|
+
|
|
92
|
+
### Linode (Akamai)
|
|
93
|
+
- **Tools**: `linodeDeploy`, `linodeManageInstances`
|
|
94
|
+
- **Best for**: Affordable VPS, high-performance compute, data sovereignty
|
|
95
|
+
- **Secrets**: `linode.token`
|
|
96
|
+
- **Patterns**:
|
|
97
|
+
- Linodes for VPS (competitive pricing)
|
|
98
|
+
- NodeBalancers for load balancing
|
|
99
|
+
- Block and Object Storage
|
|
100
|
+
- Kubernetes (LKE)
|
|
101
|
+
|
|
102
|
+
### Cloudflare Pages
|
|
103
|
+
- **Tools**: `cloudflareDeploy`, `cloudflareManageDns`, `cloudflareManageWorkers`
|
|
104
|
+
- **Best for**: Edge-first deployment, Workers for serverless, DNS/CDN, DDoS protection
|
|
105
|
+
- **Secrets**: `cloudflare.apiToken`
|
|
106
|
+
- **Patterns**:
|
|
107
|
+
- Pages for static + SSR frameworks
|
|
108
|
+
- Workers for serverless at edge (200+ cities)
|
|
109
|
+
- R2 for S3-compatible object storage (no egress fees)
|
|
110
|
+
- D1 for edge SQLite databases
|
|
111
|
+
|
|
112
|
+
## Provider Selection Decision Tree
|
|
113
|
+
|
|
114
|
+
1. **What are you deploying?**
|
|
115
|
+
- Static site/SPA → Vercel, Netlify, Cloudflare Pages, or S3+CloudFront
|
|
116
|
+
- Next.js/React → Vercel (first choice), Netlify, Cloudflare Pages
|
|
117
|
+
- Docker containers → Fly.io, Railway, DigitalOcean, AWS
|
|
118
|
+
- Full-stack with database → Railway, Fly.io, Heroku, AWS
|
|
119
|
+
- Serverless functions → Cloudflare Workers, AWS Lambda, Vercel
|
|
120
|
+
|
|
121
|
+
2. **What is the budget?**
|
|
122
|
+
- Free tier / hobby → Vercel, Netlify, Cloudflare Pages (generous free tiers)
|
|
123
|
+
- Affordable VPS → Linode ($5/mo), DigitalOcean ($4/mo)
|
|
124
|
+
- Cost-optimized production → Cloudflare (no egress), Railway (usage-based)
|
|
125
|
+
- Enterprise / no budget limit → AWS (most features, most complex)
|
|
126
|
+
|
|
127
|
+
3. **What is the scale?**
|
|
128
|
+
- Prototype / MVP → Railway, Heroku, Vercel
|
|
129
|
+
- Small-medium production → Fly.io, Vercel, Netlify
|
|
130
|
+
- Large-scale / global → AWS, Cloudflare, Fly.io
|
|
131
|
+
|
|
132
|
+
4. **Special requirements?**
|
|
133
|
+
- Global edge presence → Cloudflare, Fly.io, Vercel
|
|
134
|
+
- Self-managed infrastructure → AWS, DigitalOcean, Linode
|
|
135
|
+
- Managed databases included → Railway, Fly.io, Heroku
|
|
136
|
+
- Data sovereignty / specific region → Linode, DigitalOcean, AWS
|
|
137
|
+
|
|
138
|
+
## Deployment Workflow
|
|
139
|
+
|
|
140
|
+
1. **Build** — Ensure the project builds locally (`npm run build`, `docker build`, etc.)
|
|
141
|
+
2. **Configure secrets** — Store provider API keys in `credential-vault`
|
|
142
|
+
3. **Deploy** — Use the appropriate provider tool
|
|
143
|
+
4. **DNS** — Point domain using provider DNS tools or external registrar
|
|
144
|
+
5. **Verify** — Check deployment URL and run health checks
|
|
145
|
+
6. **Monitor** — Set up logging and alerting through provider dashboard
|
|
146
|
+
|
|
147
|
+
## Cost Comparison (approximate monthly, small app)
|
|
148
|
+
|
|
149
|
+
| Provider | Free Tier | Hobby | Production |
|
|
150
|
+
|----------|-----------|-------|------------|
|
|
151
|
+
| Vercel | Generous | $20/mo | $150+/mo |
|
|
152
|
+
| Netlify | Generous | $19/mo | $99+/mo |
|
|
153
|
+
| Cloudflare | Generous | Free (Workers) | Usage-based |
|
|
154
|
+
| Railway | $5 credit | $5-20/mo | Usage-based |
|
|
155
|
+
| Fly.io | 3 shared VMs | $5-15/mo | Usage-based |
|
|
156
|
+
| Heroku | None (removed) | $5-25/mo | $50+/mo |
|
|
157
|
+
| DigitalOcean | $200 credit (60d) | $4-12/mo | $40+/mo |
|
|
158
|
+
| Linode | $100 credit (60d) | $5-10/mo | $40+/mo |
|
|
159
|
+
| AWS | 12-month free tier | $5-20/mo | $50+/mo |
|
|
@@ -1,11 +1,11 @@
|
|
|
1
1
|
---
|
|
2
2
|
name: document-export
|
|
3
3
|
version: '1.0.0'
|
|
4
|
-
description: Export research, reports, and analysis to PDF, DOCX, PPTX, CSV, and XLSX with professional formatting.
|
|
4
|
+
description: Export research, reports, and analysis to PDF, DOCX, PPTX, CSV, and XLSX with professional formatting, charts, and theming.
|
|
5
5
|
author: Wunderland
|
|
6
6
|
namespace: wunderland
|
|
7
7
|
category: productivity
|
|
8
|
-
tags: [document, export, pdf, docx, pptx, csv, xlsx, report, slides]
|
|
8
|
+
tags: [document, export, pdf, docx, pptx, csv, xlsx, report, slides, charts, spreadsheet, presentation]
|
|
9
9
|
requires_secrets: []
|
|
10
10
|
requires_tools: [document_export, document_suggest]
|
|
11
11
|
metadata:
|
|
@@ -16,7 +16,51 @@ metadata:
|
|
|
16
16
|
|
|
17
17
|
# Document Export
|
|
18
18
|
|
|
19
|
-
You can export your responses, research, and analysis to professional documents.
|
|
19
|
+
You can export your responses, research, and analysis to professional documents in five formats: PDF, DOCX, PPTX, CSV, and XLSX.
|
|
20
|
+
|
|
21
|
+
## Tools
|
|
22
|
+
|
|
23
|
+
### `document_export`
|
|
24
|
+
|
|
25
|
+
Generate a document from structured content. Accepts a format, structured content with sections, and optional configuration.
|
|
26
|
+
|
|
27
|
+
**Formats**: `pdf`, `docx`, `pptx`, `csv`, `xlsx`
|
|
28
|
+
|
|
29
|
+
**Content structure**:
|
|
30
|
+
- `title` (required) -- document title for cover pages and metadata
|
|
31
|
+
- `subtitle` -- shown below the title on cover pages
|
|
32
|
+
- `author` -- embedded in document metadata
|
|
33
|
+
- `date` -- ISO 8601 date string
|
|
34
|
+
- `theme` -- visual preset: `dark`, `light`, `corporate`, `creative`, `minimal`
|
|
35
|
+
- `sections[]` -- ordered content sections, each containing any combination of:
|
|
36
|
+
- `heading` + `level` (1/2/3)
|
|
37
|
+
- `paragraphs[]` -- body text with inline markdown (`**bold**`, `*italic*`, `[link](url)`)
|
|
38
|
+
- `table` -- `{ headers: string[], rows: string[][] }`
|
|
39
|
+
- `chart` -- `{ type: bar|line|pie|doughnut|area|scatter, data: [...], title? }`
|
|
40
|
+
- `list` -- `{ items: string[], ordered?: boolean }`
|
|
41
|
+
- `keyValues` -- `[{ key, value }]` rendered as definition tables
|
|
42
|
+
- `image` -- `{ url?, base64?, caption?, width? }`
|
|
43
|
+
- `speakerNotes` -- PPTX only, attached as slide notes
|
|
44
|
+
- `layout` -- PPTX hint: `title`, `content`, `two-column`, `image-left`, `image-right`, `chart-full`, `comparison`
|
|
45
|
+
|
|
46
|
+
**Options**: `filename`, `pageSize` (letter/a4/legal), `orientation` (portrait/landscape), `coverPage`, `pageNumbers`
|
|
47
|
+
|
|
48
|
+
**Output**: `{ filePath, downloadUrl, previewUrl, format, sizeBytes, filename }`
|
|
49
|
+
|
|
50
|
+
### `document_suggest`
|
|
51
|
+
|
|
52
|
+
Check whether a response should offer document export. Pure heuristic, no LLM call.
|
|
53
|
+
|
|
54
|
+
**Input**: `responseText`, `wordCount`, `hasTableData`, `hasSections`, `isAnalytical`
|
|
55
|
+
|
|
56
|
+
**Rules**:
|
|
57
|
+
- 500+ words -> suggest PDF, DOCX
|
|
58
|
+
- Tabular data -> suggest CSV, XLSX
|
|
59
|
+
- Distinct sections -> suggest PPTX
|
|
60
|
+
- Analytical/quantitative -> reinforce PDF, XLSX
|
|
61
|
+
- Minimum 200 words before any suggestion
|
|
62
|
+
|
|
63
|
+
**Output**: `{ shouldOffer, suggestedFormats[], offerText }`
|
|
20
64
|
|
|
21
65
|
## When to Offer Export
|
|
22
66
|
|
|
@@ -34,21 +78,98 @@ When the user requests an export (or accepts your offer):
|
|
|
34
78
|
3. Call `document_export` with the structured content
|
|
35
79
|
4. Share the download link with the user
|
|
36
80
|
|
|
37
|
-
##
|
|
81
|
+
## Format Guide
|
|
82
|
+
|
|
83
|
+
### PDF Reports
|
|
84
|
+
|
|
85
|
+
Best for long-form research, analysis, and formal reports.
|
|
86
|
+
|
|
87
|
+
- Use level-1 heading for title, level-2 for major sections, level-3 for subsections
|
|
88
|
+
- Include tables for comparative data
|
|
89
|
+
- Add charts where numeric data is present (bar for comparisons, line for trends, pie for composition)
|
|
90
|
+
- Cover page generated automatically with title, subtitle, author, date
|
|
91
|
+
- Page numbers and headers included by default
|
|
92
|
+
- Supports inline markdown: **bold**, *italic*, [links](url)
|
|
93
|
+
- Images embedded from URLs or base64
|
|
94
|
+
|
|
95
|
+
### DOCX Word Documents
|
|
96
|
+
|
|
97
|
+
Same content capabilities as PDF but editable.
|
|
98
|
+
|
|
99
|
+
- Users who say "I need to edit it" or "send me a Word doc" -> DOCX
|
|
100
|
+
- All section types supported: headings, paragraphs, tables, charts (as data tables), images, lists
|
|
101
|
+
- Inline formatting preserved: bold, italic, hyperlinks
|
|
102
|
+
- Cover page, headers, footers with page numbers
|
|
103
|
+
|
|
104
|
+
### PPTX Slide Decks
|
|
105
|
+
|
|
106
|
+
Each section maps to one slide. Best for presentations and visual summaries.
|
|
107
|
+
|
|
108
|
+
- Keep text concise on slides -- move detail to `speakerNotes`
|
|
109
|
+
- Use `layout` hints: `title` for opener, `content` for standard, `chart-full` for data slides
|
|
110
|
+
- Native chart rendering (bar, line, pie, doughnut, area, scatter via pptxgenjs)
|
|
111
|
+
- Images automatically fetched and embedded
|
|
112
|
+
- Slide numbers in bottom-right
|
|
113
|
+
|
|
114
|
+
**Themes**:
|
|
115
|
+
- `corporate` -- business presentations, quarterly reviews (navy/grey, Arial)
|
|
116
|
+
- `dark` -- conference talks, tech demos (navy background, cyan accent)
|
|
117
|
+
- `light` -- general purpose, academic (white background, blue accent) [default]
|
|
118
|
+
- `creative` -- marketing, workshops (warm amber, gold accent, Georgia titles)
|
|
119
|
+
- `minimal` -- data-focused, research (monochrome, generous whitespace)
|
|
120
|
+
|
|
121
|
+
### CSV
|
|
122
|
+
|
|
123
|
+
Tabular data only. Each table section becomes a block of rows; multiple tables separated by blank rows.
|
|
124
|
+
|
|
125
|
+
- Best for data exports the user wants to import elsewhere
|
|
126
|
+
- Key-value pairs rendered as two-column tables
|
|
127
|
+
- Throws an error if no tabular data found (suggest PDF/DOCX instead)
|
|
128
|
+
|
|
129
|
+
### XLSX Spreadsheets
|
|
130
|
+
|
|
131
|
+
Multi-sheet Excel workbooks with formatting.
|
|
132
|
+
|
|
133
|
+
- Each table section becomes its own worksheet
|
|
134
|
+
- Header rows styled with accent colour and white bold text
|
|
135
|
+
- Auto-detected numeric columns get number formatting and SUM formulas
|
|
136
|
+
- Frozen header row for easy scrolling
|
|
137
|
+
- Auto-sized column widths
|
|
138
|
+
|
|
139
|
+
## Example Workflows
|
|
140
|
+
|
|
141
|
+
### Research -> PDF Report
|
|
142
|
+
|
|
143
|
+
1. User asks a research question
|
|
144
|
+
2. You conduct deep research, compile findings
|
|
145
|
+
3. `document_suggest` detects long analytical response -> `shouldOffer: true`
|
|
146
|
+
4. You offer: "I can export this analysis as a PDF or Word document. Want me to?"
|
|
147
|
+
5. User says "PDF please"
|
|
148
|
+
6. You call `document_export` with `format: "pdf"`, structured sections, charts for data
|
|
149
|
+
7. Share the download link
|
|
150
|
+
|
|
151
|
+
### Data Analysis -> Spreadsheet
|
|
38
152
|
|
|
39
|
-
|
|
40
|
-
|
|
41
|
-
|
|
42
|
-
|
|
153
|
+
1. User provides data or asks for analysis
|
|
154
|
+
2. You analyze, produce tables and charts
|
|
155
|
+
3. `document_suggest` detects tabular data -> suggests CSV, XLSX
|
|
156
|
+
4. User requests XLSX
|
|
157
|
+
5. You call `document_export` with tables as sections
|
|
158
|
+
6. Each table becomes a formatted worksheet with SUM formulas
|
|
43
159
|
|
|
44
|
-
|
|
160
|
+
### Presentation -> PPTX
|
|
45
161
|
|
|
46
|
-
|
|
47
|
-
|
|
48
|
-
|
|
49
|
-
|
|
50
|
-
|
|
162
|
+
1. User asks you to prepare a presentation
|
|
163
|
+
2. You organize content into distinct sections (intro, body, conclusion)
|
|
164
|
+
3. Use `layout: "title"` for opener, `"content"` for body, `"chart-full"` for data
|
|
165
|
+
4. Set `theme: "corporate"` for business contexts
|
|
166
|
+
5. Add `speakerNotes` with talking points
|
|
167
|
+
6. Call `document_export` with `format: "pptx"`
|
|
51
168
|
|
|
52
169
|
## Multi-Format
|
|
53
170
|
|
|
54
|
-
If the user says "export this" without specifying format, offer the most relevant options
|
|
171
|
+
If the user says "export this" without specifying format, offer the most relevant options:
|
|
172
|
+
- Research/analysis -> PDF + DOCX
|
|
173
|
+
- Data-heavy -> XLSX + CSV
|
|
174
|
+
- Structured overview -> PPTX
|
|
175
|
+
- General long content -> PDF (most universally useful)
|
|
@@ -0,0 +1,121 @@
|
|
|
1
|
+
---
|
|
2
|
+
name: media-discovery
|
|
3
|
+
version: '1.0.0'
|
|
4
|
+
description: Find and use media assets — GIF search via Giphy, stock photos, movie data from OMDB/Letterboxd, voice synthesis, and media uploads.
|
|
5
|
+
author: Wunderland
|
|
6
|
+
namespace: wunderland
|
|
7
|
+
category: media
|
|
8
|
+
tags: [media, giphy, images, movies, voice, tts, media-upload, omdb, letterboxd, image-search]
|
|
9
|
+
requires_secrets: []
|
|
10
|
+
requires_tools: []
|
|
11
|
+
metadata:
|
|
12
|
+
agentos:
|
|
13
|
+
emoji: "\U0001F3AC"
|
|
14
|
+
---
|
|
15
|
+
|
|
16
|
+
# Media Discovery
|
|
17
|
+
|
|
18
|
+
You are a media discovery and creation agent. You help users find GIFs, images, movie information, and generate voice audio. You know when each media tool is the right choice.
|
|
19
|
+
|
|
20
|
+
## Available Tools
|
|
21
|
+
|
|
22
|
+
### Giphy
|
|
23
|
+
- **Tool ID**: `giphySearch`
|
|
24
|
+
- **Secrets**: `giphy.apiKey`
|
|
25
|
+
- **Use when**: User wants a GIF reaction, animated illustration, or fun visual content
|
|
26
|
+
- **Capabilities**:
|
|
27
|
+
- Search GIFs by keyword with trending, relevance, and recency sorting
|
|
28
|
+
- Return multiple results with preview URLs and embed links
|
|
29
|
+
- Filter by rating (G, PG, PG-13, R)
|
|
30
|
+
- Access trending GIFs for current popular content
|
|
31
|
+
- **Tips**: Use specific keywords for better results; "happy dance" beats "happiness"
|
|
32
|
+
|
|
33
|
+
### Image Search
|
|
34
|
+
- **Tool ID**: `imageSearch`
|
|
35
|
+
- **Secrets**: `serper.apiKey` or `unsplash.apiKey`
|
|
36
|
+
- **Use when**: Need stock photos, illustrations, or reference images
|
|
37
|
+
- **Capabilities**:
|
|
38
|
+
- Search across Google Images, Unsplash, and other providers
|
|
39
|
+
- Filter by size (large, medium, icon), type (photo, illustration, clipart), color
|
|
40
|
+
- Return high-resolution URLs suitable for social media or documents
|
|
41
|
+
- License filtering for commercial-safe images
|
|
42
|
+
- **Tips**: Add style descriptors ("minimalist", "flat design", "photography") for targeted results
|
|
43
|
+
|
|
44
|
+
### OMDB (Open Movie Database)
|
|
45
|
+
- **Tool ID**: `omdbSearch`, `omdbGet`
|
|
46
|
+
- **Secrets**: `omdb.apiKey`
|
|
47
|
+
- **Use when**: Looking up movie/TV show information — ratings, cast, plot, awards
|
|
48
|
+
- **Capabilities**:
|
|
49
|
+
- Search by title, year, and type (movie, series, episode)
|
|
50
|
+
- Get detailed metadata: plot, director, actors, genre, ratings (IMDb, Rotten Tomatoes, Metacritic)
|
|
51
|
+
- Box office data and awards information
|
|
52
|
+
- Poster URLs for visual display
|
|
53
|
+
- **Tips**: Use IMDb ID for exact matches; title search can return multiple results
|
|
54
|
+
|
|
55
|
+
### Letterboxd
|
|
56
|
+
- **Tool ID**: `letterboxdSearch`, `letterboxdProfile`, `letterboxdReviews`
|
|
57
|
+
- **Secrets**: None required (public data)
|
|
58
|
+
- **Use when**: Want film community opinions, curated lists, or social film discovery
|
|
59
|
+
- **Capabilities**:
|
|
60
|
+
- Search films and find Letterboxd ratings
|
|
61
|
+
- View user profiles and watchlists
|
|
62
|
+
- Read community reviews and popular lists
|
|
63
|
+
- Discover films by genre, decade, or popularity
|
|
64
|
+
- **Tips**: Letterboxd ratings tend to differ from IMDb — more arthouse-friendly
|
|
65
|
+
|
|
66
|
+
### Voice Synthesis
|
|
67
|
+
- **Tool ID**: `voiceSynthesize`, `voiceListVoices`
|
|
68
|
+
- **Secrets**: `elevenlabs.apiKey` or `openai.apiKey`
|
|
69
|
+
- **Use when**: Need to generate spoken audio from text — podcasts, voiceovers, accessibility
|
|
70
|
+
- **Capabilities**:
|
|
71
|
+
- Text-to-speech with multiple voices and languages
|
|
72
|
+
- Voice cloning (ElevenLabs) with custom voice profiles
|
|
73
|
+
- Adjustable speed, pitch, and stability
|
|
74
|
+
- Output formats: MP3, WAV, OGG
|
|
75
|
+
- Streaming audio for real-time playback
|
|
76
|
+
- **Tips**: Use SSML tags for fine-grained control over pauses and emphasis
|
|
77
|
+
|
|
78
|
+
### Media Upload
|
|
79
|
+
- **Tool ID**: `mediaUpload`, `mediaTag`, `mediaSearch`
|
|
80
|
+
- **Secrets**: None (uses local media library)
|
|
81
|
+
- **Use when**: Uploading images/videos/audio to the media library for reuse across channels
|
|
82
|
+
- **Capabilities**:
|
|
83
|
+
- Upload files with auto-generated thumbnails
|
|
84
|
+
- Tag media with keywords for searchable organization
|
|
85
|
+
- Search existing library by tags, type, or date
|
|
86
|
+
- Serve media via URL for channel posting
|
|
87
|
+
- **Tips**: Tag media consistently (brand name, campaign, content type) for easy retrieval
|
|
88
|
+
|
|
89
|
+
## Workflow Patterns
|
|
90
|
+
|
|
91
|
+
### Social Post with Media
|
|
92
|
+
1. Determine content theme
|
|
93
|
+
2. Search for relevant images with `imageSearch` or GIFs with `giphySearch`
|
|
94
|
+
3. Upload chosen media to library with `mediaUpload`
|
|
95
|
+
4. Use the media URL when composing the social post
|
|
96
|
+
|
|
97
|
+
### Movie Recommendation
|
|
98
|
+
1. Search OMDB for the requested genre or title
|
|
99
|
+
2. Cross-reference with Letterboxd reviews for community sentiment
|
|
100
|
+
3. Present ratings from both sources with poster images
|
|
101
|
+
4. Generate a voice summary if requested
|
|
102
|
+
|
|
103
|
+
### Audio Content Creation
|
|
104
|
+
1. Write the script or talking points
|
|
105
|
+
2. Select an appropriate voice with `voiceListVoices`
|
|
106
|
+
3. Synthesize audio with `voiceSynthesize`
|
|
107
|
+
4. Upload to media library for distribution
|
|
108
|
+
|
|
109
|
+
### Media Library Management
|
|
110
|
+
1. Audit existing media with `mediaSearch`
|
|
111
|
+
2. Tag untagged assets with `mediaTag`
|
|
112
|
+
3. Identify gaps (missing platform-specific crops, outdated assets)
|
|
113
|
+
4. Upload new assets organized by campaign or content type
|
|
114
|
+
|
|
115
|
+
## Best Practices
|
|
116
|
+
|
|
117
|
+
- **Rights awareness** — Giphy GIFs are generally embeddable; stock photos may need attribution
|
|
118
|
+
- **Format matching** — use JPEG for photos, PNG for graphics with transparency, GIF for animations
|
|
119
|
+
- **Voice quality** — always preview voice synthesis output before publishing
|
|
120
|
+
- **Media library hygiene** — tag consistently, delete outdated assets, use descriptive filenames
|
|
121
|
+
- **Resolution** — use high-res images for social posts; downscale for thumbnails and previews
|