@framers/agentos-skills 0.4.1 → 0.6.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/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/code-safety/SKILL.md +4 -0
- package/registry/curated/document-export/SKILL.md +136 -15
- package/registry/curated/grounding-guard/SKILL.md +4 -0
- package/registry/curated/hitl-safety/SKILL.md +200 -0
- package/registry/curated/media-discovery/SKILL.md +121 -0
- package/registry/curated/pii-redaction/SKILL.md +4 -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 +128 -0
- package/registry/curated/voice-telephony/SKILL.md +210 -0
- package/registry.json +332 -77
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 |
|
|
@@ -35,6 +35,10 @@ vulnerabilities. You also have a tool for on-demand code scanning.
|
|
|
35
35
|
- **Insecure Deserialization**: pickle.loads, yaml.load without SafeLoader
|
|
36
36
|
- **SSRF**: unvalidated URL construction from user input
|
|
37
37
|
|
|
38
|
+
## Post-Approval Guardrail Override
|
|
39
|
+
|
|
40
|
+
When HITL (human-in-the-loop) is enabled with `guardrailOverride: true` (the default), the code-safety scanner runs **after** HITL approval as a post-approval guardrail. This means even actions approved by a human operator or LLM judge are scanned for destructive patterns before execution. This catches accidental approvals of dangerous commands like `rm -rf /` or `DROP TABLE`. See the **hitl-safety** skill for full HITL configuration.
|
|
41
|
+
|
|
38
42
|
## Constraints
|
|
39
43
|
|
|
40
44
|
- Regex-based detection — may have false positives on safe code patterns
|
|
@@ -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)
|
|
@@ -30,6 +30,10 @@ against the retrieved sources using NLI entailment detection.
|
|
|
30
30
|
- **Contradicted**: claim directly contradicts a source document
|
|
31
31
|
- **Unverifiable**: claim cannot be found in any source (potential hallucination)
|
|
32
32
|
|
|
33
|
+
## Interaction with HITL Guardrail Overrides
|
|
34
|
+
|
|
35
|
+
When HITL is enabled with `guardrailOverride: true`, the grounding guard participates in the post-approval guardrail pipeline. If a tool action is approved (by human or LLM judge) but produces output containing ungrounded claims, the grounding guard can flag or veto the response before it reaches the user. See the **hitl-safety** skill for HITL configuration details.
|
|
36
|
+
|
|
33
37
|
## Constraints
|
|
34
38
|
|
|
35
39
|
- Only runs when RAG sources are available (no sources → no verification)
|