@framers/agentos-skills 0.3.0 → 0.4.1
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 +231 -0
- package/README.md +93 -58
- package/package.json +19 -31
- package/registry/community/.gitkeep +0 -0
- package/registry/curated/1password/SKILL.md +53 -0
- package/registry/curated/account-manager/SKILL.md +60 -0
- package/registry/curated/agent-config/SKILL.md +22 -0
- package/registry/curated/amazon-polly/SKILL.md +74 -0
- package/registry/curated/apple-notes/SKILL.md +45 -0
- package/registry/curated/apple-reminders/SKILL.md +46 -0
- package/registry/curated/audio-generation/SKILL.md +231 -0
- package/registry/curated/blog-publisher/SKILL.md +110 -0
- package/registry/curated/bluesky-bot/SKILL.md +93 -0
- package/registry/curated/cli-tools/SKILL.md +137 -0
- package/registry/curated/cloud-ops/SKILL.md +124 -0
- package/registry/curated/code-safety/SKILL.md +42 -0
- package/registry/curated/coding-agent/SKILL.md +40 -0
- package/registry/curated/company-research/SKILL.md +46 -0
- package/registry/curated/content-creator/SKILL.md +53 -0
- package/registry/curated/deep-research/SKILL.md +56 -0
- package/registry/curated/diarization/SKILL.md +83 -0
- package/registry/curated/discord-helper/SKILL.md +43 -0
- package/registry/curated/document-export/SKILL.md +54 -0
- package/registry/curated/email-intelligence/SKILL.md +41 -0
- package/registry/curated/emergent-tools/SKILL.md +225 -0
- package/registry/curated/endpoint-semantic/SKILL.md +72 -0
- package/registry/curated/facebook-bot/SKILL.md +94 -0
- package/registry/curated/git/SKILL.md +49 -0
- package/registry/curated/github/SKILL.md +142 -0
- package/registry/curated/google-cloud-stt/SKILL.md +71 -0
- package/registry/curated/google-cloud-tts/SKILL.md +71 -0
- package/registry/curated/grounding-guard/SKILL.md +38 -0
- package/registry/curated/healthcheck/SKILL.md +43 -0
- package/registry/curated/image-editing/SKILL.md +25 -0
- package/registry/curated/image-gen/SKILL.md +141 -0
- package/registry/curated/instagram-bot/SKILL.md +60 -0
- package/registry/curated/interactive-widgets/SKILL.md +85 -0
- package/registry/curated/linkedin-bot/SKILL.md +86 -0
- package/registry/curated/mastodon-bot/SKILL.md +104 -0
- package/registry/curated/memory-manager/SKILL.md +127 -0
- package/registry/curated/ml-content-classifier/SKILL.md +38 -0
- package/registry/curated/movie-lookup/SKILL.md +48 -0
- package/registry/curated/multimodal-rag/SKILL.md +153 -0
- package/registry/curated/notion/SKILL.md +43 -0
- package/registry/curated/obsidian/SKILL.md +42 -0
- package/registry/curated/openwakeword/SKILL.md +75 -0
- package/registry/curated/pii-redaction/SKILL.md +56 -0
- package/registry/curated/pinterest-bot/SKILL.md +45 -0
- package/registry/curated/piper/SKILL.md +72 -0
- package/registry/curated/porcupine/SKILL.md +74 -0
- package/registry/curated/reddit-bot/SKILL.md +74 -0
- package/registry/curated/seo-campaign/SKILL.md +51 -0
- package/registry/curated/site-deploy/SKILL.md +119 -0
- package/registry/curated/slack-helper/SKILL.md +43 -0
- package/registry/curated/social-broadcast/SKILL.md +145 -0
- package/registry/curated/spotify-player/SKILL.md +45 -0
- package/registry/curated/streaming-stt-deepgram/SKILL.md +84 -0
- package/registry/curated/streaming-stt-whisper/SKILL.md +82 -0
- package/registry/curated/streaming-tts-elevenlabs/SKILL.md +84 -0
- package/registry/curated/streaming-tts-openai/SKILL.md +83 -0
- package/registry/curated/structured-output/SKILL.md +22 -0
- package/registry/curated/summarize/SKILL.md +40 -0
- package/registry/curated/threads-bot/SKILL.md +82 -0
- package/registry/curated/tiktok-bot/SKILL.md +104 -0
- package/registry/curated/topicality/SKILL.md +37 -0
- package/registry/curated/trello/SKILL.md +44 -0
- package/registry/curated/twitter-bot/SKILL.md +63 -0
- package/registry/curated/video-generation/SKILL.md +225 -0
- package/registry/curated/vision-ocr/SKILL.md +82 -0
- package/registry/curated/voice-conversation/SKILL.md +65 -0
- package/registry/curated/vosk/SKILL.md +74 -0
- package/registry/curated/weather/SKILL.md +37 -0
- package/registry/curated/web-scraper/SKILL.md +60 -0
- package/registry/curated/web-search/SKILL.md +49 -0
- package/registry/curated/whisper-transcribe/SKILL.md +58 -0
- package/registry/curated/youtube-bot/SKILL.md +104 -0
- package/registry.json +2446 -0
- package/scripts/update-registry.mjs +126 -0
- package/scripts/validate-skill.mjs +304 -0
- package/types.d.ts +160 -0
- package/dist/SkillLoader.d.ts +0 -50
- package/dist/SkillLoader.d.ts.map +0 -1
- package/dist/SkillLoader.js +0 -291
- package/dist/SkillLoader.js.map +0 -1
- package/dist/SkillRegistry.d.ts +0 -135
- package/dist/SkillRegistry.d.ts.map +0 -1
- package/dist/SkillRegistry.js +0 -455
- package/dist/SkillRegistry.js.map +0 -1
- package/dist/index.d.ts +0 -13
- package/dist/index.d.ts.map +0 -1
- package/dist/index.js +0 -13
- package/dist/index.js.map +0 -1
- package/dist/paths.d.ts +0 -35
- package/dist/paths.d.ts.map +0 -1
- package/dist/paths.js +0 -71
- package/dist/paths.js.map +0 -1
- package/dist/types.d.ts +0 -231
- package/dist/types.d.ts.map +0 -1
- package/dist/types.js +0 -21
- package/dist/types.js.map +0 -1
|
@@ -0,0 +1,71 @@
|
|
|
1
|
+
---
|
|
2
|
+
name: google-cloud-stt
|
|
3
|
+
version: '1.0.0'
|
|
4
|
+
description: Batch speech-to-text via Google Cloud Speech-to-Text API — LINEAR16 PCM, configurable language, word-level confidence scores.
|
|
5
|
+
author: Wunderland
|
|
6
|
+
namespace: wunderland
|
|
7
|
+
category: voice
|
|
8
|
+
tags: [voice, stt, speech-to-text, google, cloud, batch]
|
|
9
|
+
requires_secrets: [google.cloudSttCredentials]
|
|
10
|
+
requires_tools: []
|
|
11
|
+
metadata:
|
|
12
|
+
agentos:
|
|
13
|
+
emoji: "\U0001F3A4"
|
|
14
|
+
primaryEnv: GOOGLE_CLOUD_STT_CREDENTIALS
|
|
15
|
+
homepage: https://cloud.google.com/speech-to-text/docs
|
|
16
|
+
---
|
|
17
|
+
|
|
18
|
+
# Google Cloud STT
|
|
19
|
+
|
|
20
|
+
Use this skill when Google Cloud Speech-to-Text is the preferred provider, particularly when the user's Google Cloud project is already configured or when multi-language support is required without switching providers.
|
|
21
|
+
|
|
22
|
+
Prefer this over Deepgram when the agent is already operating within a Google Cloud environment, or when the user specifically requests Google as the STT backend.
|
|
23
|
+
|
|
24
|
+
## Setup
|
|
25
|
+
|
|
26
|
+
Set `GOOGLE_CLOUD_STT_CREDENTIALS` in the environment or agent secrets store. Accepts either:
|
|
27
|
+
- An absolute path to a service-account JSON key file
|
|
28
|
+
- A raw JSON string with the service-account credentials
|
|
29
|
+
|
|
30
|
+
## Configuration
|
|
31
|
+
|
|
32
|
+
```json
|
|
33
|
+
{
|
|
34
|
+
"voice": {
|
|
35
|
+
"stt": "google-cloud-stt"
|
|
36
|
+
}
|
|
37
|
+
}
|
|
38
|
+
```
|
|
39
|
+
|
|
40
|
+
With language override:
|
|
41
|
+
|
|
42
|
+
```json
|
|
43
|
+
{
|
|
44
|
+
"voice": {
|
|
45
|
+
"stt": "google-cloud-stt",
|
|
46
|
+
"providerOptions": {
|
|
47
|
+
"language": "fr-FR"
|
|
48
|
+
}
|
|
49
|
+
}
|
|
50
|
+
}
|
|
51
|
+
```
|
|
52
|
+
|
|
53
|
+
## Provider Rules
|
|
54
|
+
|
|
55
|
+
- Language codes follow BCP-47 format (e.g. `en-US`, `fr-FR`, `ja-JP`). Default is `en-US`.
|
|
56
|
+
- Audio input must be LINEAR16 PCM format. Convert other formats before sending.
|
|
57
|
+
- Confidence scores and word-level alternatives are included in the transcription result.
|
|
58
|
+
- Credentials are resolved at initialization; if the path is invalid or JSON is malformed, initialization will throw immediately.
|
|
59
|
+
|
|
60
|
+
## Examples
|
|
61
|
+
|
|
62
|
+
- "Transcribe this audio using Google Cloud Speech-to-Text."
|
|
63
|
+
- "Use Google STT with French language recognition."
|
|
64
|
+
- "Set up Google Cloud STT with my service account credentials."
|
|
65
|
+
|
|
66
|
+
## Constraints
|
|
67
|
+
|
|
68
|
+
- Requires a Google Cloud service account with the `Speech-to-Text` API enabled.
|
|
69
|
+
- Credentials must be either a path to a valid JSON key file or inline JSON string.
|
|
70
|
+
- This is a batch (non-streaming) provider. For real-time streaming, use Deepgram or Whisper instead.
|
|
71
|
+
- API costs apply per 15-second audio block.
|
|
@@ -0,0 +1,71 @@
|
|
|
1
|
+
---
|
|
2
|
+
name: google-cloud-tts
|
|
3
|
+
version: '1.0.0'
|
|
4
|
+
description: Text-to-speech synthesis via Google Cloud Text-to-Speech API — MP3 output, configurable language and voice, voice listing.
|
|
5
|
+
author: Wunderland
|
|
6
|
+
namespace: wunderland
|
|
7
|
+
category: voice
|
|
8
|
+
tags: [voice, tts, text-to-speech, google, cloud, neural]
|
|
9
|
+
requires_secrets: [google.cloudTtsCredentials]
|
|
10
|
+
requires_tools: []
|
|
11
|
+
metadata:
|
|
12
|
+
agentos:
|
|
13
|
+
emoji: "\U0001F50A"
|
|
14
|
+
primaryEnv: GOOGLE_CLOUD_TTS_CREDENTIALS
|
|
15
|
+
homepage: https://cloud.google.com/text-to-speech/docs
|
|
16
|
+
---
|
|
17
|
+
|
|
18
|
+
# Google Cloud TTS
|
|
19
|
+
|
|
20
|
+
Use this skill when Google Cloud Text-to-Speech is the preferred synthesis provider, particularly within a Google Cloud environment or when the user needs one of Google's Neural2 or WaveNet voices not available through other providers.
|
|
21
|
+
|
|
22
|
+
Prefer this over OpenAI TTS when the user already uses Google Cloud, needs a specific non-English language voice, or prefers Google's voice catalog.
|
|
23
|
+
|
|
24
|
+
## Setup
|
|
25
|
+
|
|
26
|
+
Set `GOOGLE_CLOUD_TTS_CREDENTIALS` in the environment or agent secrets store. Accepts either:
|
|
27
|
+
- An absolute path to a service-account JSON key file
|
|
28
|
+
- A raw JSON string with the service-account credentials
|
|
29
|
+
|
|
30
|
+
## Configuration
|
|
31
|
+
|
|
32
|
+
```json
|
|
33
|
+
{
|
|
34
|
+
"voice": {
|
|
35
|
+
"tts": "google-cloud-tts"
|
|
36
|
+
}
|
|
37
|
+
}
|
|
38
|
+
```
|
|
39
|
+
|
|
40
|
+
With voice and language options:
|
|
41
|
+
|
|
42
|
+
```json
|
|
43
|
+
{
|
|
44
|
+
"voice": {
|
|
45
|
+
"tts": "google-cloud-tts",
|
|
46
|
+
"providerOptions": {
|
|
47
|
+
"languageCode": "en-GB",
|
|
48
|
+
"voice": "en-GB-Neural2-A"
|
|
49
|
+
}
|
|
50
|
+
}
|
|
51
|
+
}
|
|
52
|
+
```
|
|
53
|
+
|
|
54
|
+
## Provider Rules
|
|
55
|
+
|
|
56
|
+
- Output is MP3 (audio/mpeg). Playback requires an MP3-capable audio pipeline.
|
|
57
|
+
- Language codes follow BCP-47 (e.g. `en-US`, `en-GB`, `de-DE`).
|
|
58
|
+
- Call `listAvailableVoices()` to enumerate all voices available on the account; useful for letting the user pick a voice.
|
|
59
|
+
- Neural2 and WaveNet voices require the respective API feature to be enabled on the Google Cloud project.
|
|
60
|
+
|
|
61
|
+
## Examples
|
|
62
|
+
|
|
63
|
+
- "Use Google Cloud TTS with a British English Neural2 voice."
|
|
64
|
+
- "List the available voices on my Google Cloud TTS account."
|
|
65
|
+
- "Synthesize this response using Google Cloud Text-to-Speech."
|
|
66
|
+
|
|
67
|
+
## Constraints
|
|
68
|
+
|
|
69
|
+
- Requires a Google Cloud service account with the `Text-to-Speech` API enabled.
|
|
70
|
+
- Credentials must be either a path to a valid JSON key file or inline JSON string.
|
|
71
|
+
- API costs apply per character synthesized.
|
|
@@ -0,0 +1,38 @@
|
|
|
1
|
+
---
|
|
2
|
+
name: grounding-guard
|
|
3
|
+
version: '1.0.0'
|
|
4
|
+
description: Verify response faithfulness against RAG source documents using NLI entailment and LLM-as-judge
|
|
5
|
+
author: Frame.dev
|
|
6
|
+
namespace: wunderland
|
|
7
|
+
category: security
|
|
8
|
+
tags: [guardrails, hallucination, grounding, faithfulness, nli, rag, fact-checking]
|
|
9
|
+
requires_tools: [check_grounding]
|
|
10
|
+
metadata:
|
|
11
|
+
agentos:
|
|
12
|
+
emoji: "\U0001F50D"
|
|
13
|
+
---
|
|
14
|
+
|
|
15
|
+
# Grounding Guard
|
|
16
|
+
|
|
17
|
+
A guardrail automatically verifies that your responses are faithful to
|
|
18
|
+
the source documents retrieved via RAG. Claims in your output are checked
|
|
19
|
+
against the retrieved sources using NLI entailment detection.
|
|
20
|
+
|
|
21
|
+
## When to Use check_grounding
|
|
22
|
+
|
|
23
|
+
- Before presenting synthesized answers from multiple RAG sources
|
|
24
|
+
- To verify that summarized content faithfully represents the originals
|
|
25
|
+
- When combining information from multiple documents
|
|
26
|
+
|
|
27
|
+
## What It Checks
|
|
28
|
+
|
|
29
|
+
- **Supported**: claim is entailed by at least one source document
|
|
30
|
+
- **Contradicted**: claim directly contradicts a source document
|
|
31
|
+
- **Unverifiable**: claim cannot be found in any source (potential hallucination)
|
|
32
|
+
|
|
33
|
+
## Constraints
|
|
34
|
+
|
|
35
|
+
- Only runs when RAG sources are available (no sources → no verification)
|
|
36
|
+
- NLI model (~40MB) loads lazily on first grounding check
|
|
37
|
+
- LLM escalation for ambiguous claims adds ~150-500ms (only when configured)
|
|
38
|
+
- Best for factual/informational responses; less useful for creative/opinion content
|
|
@@ -0,0 +1,43 @@
|
|
|
1
|
+
---
|
|
2
|
+
name: healthcheck
|
|
3
|
+
version: '1.0.0'
|
|
4
|
+
description: Monitor health and availability of systems, services, APIs, and infrastructure endpoints.
|
|
5
|
+
author: Wunderland
|
|
6
|
+
namespace: wunderland
|
|
7
|
+
category: devops
|
|
8
|
+
tags: [monitoring, health, uptime, infrastructure, diagnostics, status]
|
|
9
|
+
requires_secrets: []
|
|
10
|
+
requires_tools: [web-search]
|
|
11
|
+
metadata:
|
|
12
|
+
agentos:
|
|
13
|
+
emoji: "\U0001F3E5"
|
|
14
|
+
requires:
|
|
15
|
+
anyBins: ['curl', 'wget']
|
|
16
|
+
---
|
|
17
|
+
|
|
18
|
+
# System and Service Health Monitoring
|
|
19
|
+
|
|
20
|
+
You can check the health and availability of systems, services, APIs, and infrastructure endpoints. Use HTTP requests, ping commands, and service-specific health check protocols to assess operational status.
|
|
21
|
+
|
|
22
|
+
When performing health checks, test multiple dimensions: HTTP response codes, response times, SSL certificate validity, DNS resolution, and content correctness. For API endpoints, verify not just that they respond with 200 OK, but that the response body matches expected schemas. Track response latency and flag anything over reasonable thresholds (e.g., >2s for web pages, >500ms for API calls).
|
|
23
|
+
|
|
24
|
+
For infrastructure monitoring, check CPU, memory, disk usage, and network connectivity when system-level access is available. Aggregate results into a clear status dashboard format: green (healthy), yellow (degraded), red (down). Always include timestamps with health check results for audit trails.
|
|
25
|
+
|
|
26
|
+
When diagnosing failures, follow a systematic approach: check DNS resolution first, then TCP connectivity, then TLS handshake, then HTTP response. For intermittent issues, suggest monitoring intervals and alert thresholds. Provide remediation suggestions alongside failure reports when possible.
|
|
27
|
+
|
|
28
|
+
## Examples
|
|
29
|
+
|
|
30
|
+
- "Check if api.example.com is responding and measure latency"
|
|
31
|
+
- "Verify the SSL certificate for example.com is valid and not expiring soon"
|
|
32
|
+
- "Run health checks on all our microservice endpoints"
|
|
33
|
+
- "Check the status of our database, Redis, and message queue connections"
|
|
34
|
+
- "Monitor the /health endpoint every 30 seconds and alert on failures"
|
|
35
|
+
|
|
36
|
+
## Constraints
|
|
37
|
+
|
|
38
|
+
- Can only check endpoints that are network-accessible from the agent's environment.
|
|
39
|
+
- Deep application-level health checks require appropriate authentication and access.
|
|
40
|
+
- Cannot install monitoring agents or modify system configurations.
|
|
41
|
+
- Rate-limited health checks should respect the target service's acceptable request frequency.
|
|
42
|
+
- SSL certificate checks are informational; the agent cannot renew or modify certificates.
|
|
43
|
+
- Internal/private network services may not be reachable depending on the agent's network context.
|
|
@@ -0,0 +1,25 @@
|
|
|
1
|
+
---
|
|
2
|
+
name: image-editing
|
|
3
|
+
description: Edit, transform, and enhance images using AI models
|
|
4
|
+
version: 1.0.0
|
|
5
|
+
tags: [image, editing, img2img, inpainting, upscaling, variation]
|
|
6
|
+
tools_required: [editImage, upscaleImage, variateImage]
|
|
7
|
+
---
|
|
8
|
+
|
|
9
|
+
# Image Editing
|
|
10
|
+
|
|
11
|
+
Edit images with img2img transformation, inpainting (fill masked regions), outpainting (extend beyond borders), upscaling (2x/4x super resolution), and creating variations.
|
|
12
|
+
|
|
13
|
+
## Capabilities
|
|
14
|
+
- **img2img**: Transform an image based on a text prompt
|
|
15
|
+
- **Inpainting**: Fill in masked regions of an image
|
|
16
|
+
- **Upscaling**: Increase image resolution by 2x or 4x
|
|
17
|
+
- **Variations**: Create variations of an existing image
|
|
18
|
+
|
|
19
|
+
## Providers
|
|
20
|
+
OpenAI, Stability AI, Local Stable Diffusion (A1111/ComfyUI), Replicate
|
|
21
|
+
|
|
22
|
+
## Example
|
|
23
|
+
"Take this photo and make it look like a watercolor painting"
|
|
24
|
+
"Remove the background from this product photo"
|
|
25
|
+
"Upscale this image to 4x resolution"
|
|
@@ -0,0 +1,141 @@
|
|
|
1
|
+
---
|
|
2
|
+
name: image-gen
|
|
3
|
+
version: '2.0.0'
|
|
4
|
+
description: Generate, edit, upscale, and variate images using the AgentOS multi-provider image pipeline with automatic fallback.
|
|
5
|
+
author: Wunderland
|
|
6
|
+
namespace: wunderland
|
|
7
|
+
category: creative
|
|
8
|
+
tags: [image-generation, ai-art, dall-e, stable-diffusion, flux, replicate, stability, fal, creative, visual]
|
|
9
|
+
requires_secrets: []
|
|
10
|
+
requires_tools: [generate_image]
|
|
11
|
+
metadata:
|
|
12
|
+
agentos:
|
|
13
|
+
emoji: "\U0001F3A8"
|
|
14
|
+
primaryEnv: OPENAI_API_KEY
|
|
15
|
+
homepage: https://platform.openai.com/docs/guides/images
|
|
16
|
+
---
|
|
17
|
+
|
|
18
|
+
# AI Image Generation Workflow
|
|
19
|
+
|
|
20
|
+
Use this skill when the user wants to create, edit, upscale, or create variations of images. AgentOS provides four high-level APIs that route to any configured provider with automatic fallback when multiple providers have credentials set.
|
|
21
|
+
|
|
22
|
+
## The Four High-Level APIs
|
|
23
|
+
|
|
24
|
+
1. **`generateImage()`** — Create new images from text prompts.
|
|
25
|
+
2. **`editImage()`** — Transform existing images via img2img, inpainting, or outpainting.
|
|
26
|
+
3. **`upscaleImage()`** — Increase resolution (2x or 4x super-resolution).
|
|
27
|
+
4. **`variateImage()`** — Generate visual variations of an existing image.
|
|
28
|
+
|
|
29
|
+
If the `generate_image` tool is not loaded, enable it with `extensions_enable image-generation`.
|
|
30
|
+
|
|
31
|
+
## Provider Selection Guide
|
|
32
|
+
|
|
33
|
+
Choose the provider based on the user's priority:
|
|
34
|
+
|
|
35
|
+
| Priority | Provider | Env Var | Best For |
|
|
36
|
+
|----------|----------|---------|----------|
|
|
37
|
+
| Quality | **OpenAI** (GPT-Image-1, DALL-E 3) | `OPENAI_API_KEY` | Highest fidelity, prompt adherence, text-in-image |
|
|
38
|
+
| Control | **Stability AI** (SDXL, SD3, Ultra) | `STABILITY_API_KEY` | Negative prompts, style presets, cfg/steps tuning |
|
|
39
|
+
| Speed | **BFL / Flux** (Flux Pro 1.1) | `BFL_API_KEY` | Fast generation with strong quality |
|
|
40
|
+
| Speed | **Fal** (Flux Dev) | `FAL_API_KEY` | Serverless Flux inference, low latency |
|
|
41
|
+
| Variety | **Replicate** (Flux, SDXL, community models) | `REPLICATE_API_TOKEN` | Access to thousands of community models |
|
|
42
|
+
| Cost | **OpenRouter** (routes to cheapest) | `OPENROUTER_API_KEY` | Provider-agnostic routing, best price |
|
|
43
|
+
| Privacy | **Local SD** (A1111 / ComfyUI) | `STABLE_DIFFUSION_LOCAL_BASE_URL` | Fully offline, no data leaves the machine |
|
|
44
|
+
|
|
45
|
+
When multiple providers are configured, AgentOS wraps them in a **FallbackImageProxy** — if the primary provider fails (rate limit, outage, etc.), the request automatically retries on the next available provider in priority order.
|
|
46
|
+
|
|
47
|
+
## Operation Decision Tree
|
|
48
|
+
|
|
49
|
+
Use this to pick the right API for the user's request:
|
|
50
|
+
|
|
51
|
+
- **"Generate / create / draw / imagine"** -> `generateImage()`
|
|
52
|
+
- **"Edit / change / modify / transform"** -> `editImage()` with `mode: 'img2img'`
|
|
53
|
+
- **"Remove / fill in / fix this area"** -> `editImage()` with `mode: 'inpaint'` + mask
|
|
54
|
+
- **"Extend / expand the borders"** -> `editImage()` with `mode: 'outpaint'`
|
|
55
|
+
- **"Make it higher resolution / sharper"** -> `upscaleImage()` with `scale: 2` or `4`
|
|
56
|
+
- **"Show me variations / alternatives"** -> `variateImage()` with `n: 3-4`
|
|
57
|
+
|
|
58
|
+
## Prompt Engineering Tips
|
|
59
|
+
|
|
60
|
+
A strong image prompt has five components:
|
|
61
|
+
|
|
62
|
+
1. **Subject** — What is in the image. Be specific: "a red panda sitting on a mossy branch" not "an animal."
|
|
63
|
+
2. **Style** — Artistic approach: photorealistic, watercolor, pixel art, oil painting, vector illustration, cinematic, anime.
|
|
64
|
+
3. **Composition** — Camera angle and framing: close-up portrait, wide establishing shot, overhead flat lay, isometric.
|
|
65
|
+
4. **Lighting and Color** — Mood through light: golden hour, dramatic side-lighting, neon glow, muted earth tones, high contrast.
|
|
66
|
+
5. **Atmosphere** — Emotional tone: serene, ominous, whimsical, nostalgic, futuristic.
|
|
67
|
+
|
|
68
|
+
Additional tips:
|
|
69
|
+
- Front-load the most important elements. Models weight earlier tokens more heavily.
|
|
70
|
+
- Use negative prompts (Stability, Local SD) to exclude unwanted elements: "no text, no watermark, no blurry."
|
|
71
|
+
- For text-in-image, OpenAI GPT-Image-1 is the most reliable. Other models struggle with legible text.
|
|
72
|
+
- Request `quality: 'hd'` for DALL-E 3 when detail matters (doubles cost).
|
|
73
|
+
- For consistent characters across multiple images, describe the character in detail each time or use img2img with a reference.
|
|
74
|
+
|
|
75
|
+
## Sizes and Aspect Ratios
|
|
76
|
+
|
|
77
|
+
| Provider | Supported Sizes | Aspect Ratio Support |
|
|
78
|
+
|----------|----------------|---------------------|
|
|
79
|
+
| OpenAI | 1024x1024, 1792x1024, 1024x1792 | Via size selection |
|
|
80
|
+
| Stability | Flexible | `1:1`, `16:9`, `9:16`, `4:3`, `3:4`, etc. |
|
|
81
|
+
| Replicate/Flux | Flexible | `aspectRatio` parameter |
|
|
82
|
+
| Local SD | Any (multiples of 64) | Via `width`/`height` |
|
|
83
|
+
|
|
84
|
+
## Examples
|
|
85
|
+
|
|
86
|
+
- "Generate a photorealistic image of a cozy cabin in the mountains at sunset."
|
|
87
|
+
- "Create a professional logo for a coffee shop called 'Bean There' — vector illustration style, clean lines."
|
|
88
|
+
- "Edit this photo: make the sky more dramatic with storm clouds." (img2img)
|
|
89
|
+
- "Remove the person from the background of this product photo." (inpaint + mask)
|
|
90
|
+
- "Upscale this thumbnail to 4x resolution for print."
|
|
91
|
+
- "Show me 3 variations of this hero image with different color palettes."
|
|
92
|
+
- "Generate a 16:9 cinematic landscape of a neon-lit Tokyo street at night in the rain."
|
|
93
|
+
|
|
94
|
+
## Provider Preferences
|
|
95
|
+
|
|
96
|
+
You can override the default fallback chain on a per-request basis using the `providerPreferences` field from the agent config (see `providerPreferences.image` in `agent.config.json`). This lets users pin preferred providers, weight them for probabilistic routing, or block specific providers entirely.
|
|
97
|
+
|
|
98
|
+
| Key | Type | Purpose |
|
|
99
|
+
|-----|------|---------|
|
|
100
|
+
| `preferred` | `string[]` | Ordered list of provider IDs to try first (e.g., `['stability', 'openai']`). |
|
|
101
|
+
| `weights` | `Record<string, number>` | Relative selection weights for probabilistic routing (e.g., `{ stability: 0.7, openai: 0.3 }`). |
|
|
102
|
+
| `blocked` | `string[]` | Provider IDs that must never be used (e.g., `['replicate']`). |
|
|
103
|
+
|
|
104
|
+
Example — passing preferences inline:
|
|
105
|
+
|
|
106
|
+
```ts
|
|
107
|
+
generateImage({
|
|
108
|
+
prompt: 'A neon-lit Tokyo alley in the rain',
|
|
109
|
+
providerPreferences: {
|
|
110
|
+
preferred: ['stability', 'openai'],
|
|
111
|
+
blocked: ['replicate'],
|
|
112
|
+
},
|
|
113
|
+
});
|
|
114
|
+
```
|
|
115
|
+
|
|
116
|
+
Example — setting in `agent.config.json` so all image calls inherit the preference:
|
|
117
|
+
|
|
118
|
+
```jsonc
|
|
119
|
+
{
|
|
120
|
+
"providerPreferences": {
|
|
121
|
+
"image": {
|
|
122
|
+
"preferred": ["stability", "bfl"],
|
|
123
|
+
"weights": { "stability": 0.6, "bfl": 0.4 },
|
|
124
|
+
"blocked": ["replicate"]
|
|
125
|
+
}
|
|
126
|
+
}
|
|
127
|
+
}
|
|
128
|
+
```
|
|
129
|
+
|
|
130
|
+
When `providerPreferences.image` is set in the agent config, the runtime merges it with any per-request overrides (per-request wins). Blocked providers are removed from the fallback chain before any attempt is made.
|
|
131
|
+
|
|
132
|
+
## Constraints
|
|
133
|
+
|
|
134
|
+
- Image generation costs API credits per request; inform the user of approximate costs when possible.
|
|
135
|
+
- Content policy restrictions apply per provider: no realistic faces of real people, no violent/explicit content.
|
|
136
|
+
- DALL-E 3 does not support native inpainting — use GPT-Image-1 or Stability for mask-based editing.
|
|
137
|
+
- Upscaling is not supported by OpenAI or OpenRouter — use Stability, Replicate, or Local SD.
|
|
138
|
+
- Generated images may not perfectly match the prompt; iterative refinement is expected.
|
|
139
|
+
- Maximum prompt length varies by model (DALL-E 3: 4,000 chars; Stability: 2,000 chars).
|
|
140
|
+
- Local SD requires a running A1111 or ComfyUI instance with the API enabled.
|
|
141
|
+
- The fallback chain only activates when the primary provider fails; it does not merge results from multiple providers.
|
|
@@ -0,0 +1,60 @@
|
|
|
1
|
+
---
|
|
2
|
+
name: instagram-bot
|
|
3
|
+
version: '1.0.0'
|
|
4
|
+
description: Instagram growth automation — post scheduling, story creation, hashtag strategy, Reel uploads, and engagement analytics.
|
|
5
|
+
author: Wunderland
|
|
6
|
+
namespace: wunderland
|
|
7
|
+
category: social-automation
|
|
8
|
+
tags: [instagram, social-media, growth, reels, stories, hashtags, automation]
|
|
9
|
+
requires_secrets: [instagram.accessToken]
|
|
10
|
+
requires_tools: [instagramPost, instagramReel, instagramStory, instagramComment, instagramHashtags, instagramExplore, instagramAnalytics]
|
|
11
|
+
metadata:
|
|
12
|
+
agentos:
|
|
13
|
+
emoji: "\U0001F4F8"
|
|
14
|
+
primaryEnv: INSTAGRAM_ACCESS_TOKEN
|
|
15
|
+
---
|
|
16
|
+
|
|
17
|
+
# Instagram Bot
|
|
18
|
+
|
|
19
|
+
You are an autonomous Instagram content and engagement agent. You manage a professional Instagram presence — posting photos, Reels, Stories, and carousels while optimizing hashtags and tracking engagement.
|
|
20
|
+
|
|
21
|
+
## Core Capabilities
|
|
22
|
+
|
|
23
|
+
- **Post photos** and multi-image carousels with optimized captions
|
|
24
|
+
- **Upload Reels** — short-form video content
|
|
25
|
+
- **Post Stories** — ephemeral 24-hour content
|
|
26
|
+
- **Comment** on posts in your niche
|
|
27
|
+
- **Hashtag research** — find high-performing hashtags
|
|
28
|
+
- **Explore content** — discover trends and inspiration
|
|
29
|
+
- **Analytics** — track reach, impressions, likes, comments, saves
|
|
30
|
+
|
|
31
|
+
## Content Strategy
|
|
32
|
+
|
|
33
|
+
1. **Plan content calendar** — mix of posts, Reels, Stories, and carousels
|
|
34
|
+
2. **Research hashtags** — use 20-30 relevant hashtags per post (mix of popular + niche)
|
|
35
|
+
3. **Write captions** — engaging, value-driven, with clear call-to-action
|
|
36
|
+
4. **Post at optimal times** — based on audience analytics
|
|
37
|
+
5. **Engage with community** — comment on related posts
|
|
38
|
+
6. **Track performance** — adjust strategy based on what resonates
|
|
39
|
+
|
|
40
|
+
## Posting Guidelines
|
|
41
|
+
|
|
42
|
+
- **Photos/Carousels**: High-quality visuals with educational or entertaining captions
|
|
43
|
+
- **Reels**: 15-60 second videos, trending audio when possible
|
|
44
|
+
- **Stories**: Behind-the-scenes, polls, Q&A, quick updates
|
|
45
|
+
- **Carousel**: Multi-slide educational or story-driven content
|
|
46
|
+
|
|
47
|
+
## Hashtag Strategy
|
|
48
|
+
|
|
49
|
+
- Use `instagramHashtags` to research before posting
|
|
50
|
+
- Mix of: 5 broad (1M+ posts), 10 medium (100K-1M), 10 niche (<100K)
|
|
51
|
+
- Rotate hashtag sets to avoid shadowbanning
|
|
52
|
+
- Place hashtags in first comment, not caption
|
|
53
|
+
|
|
54
|
+
## Safety
|
|
55
|
+
|
|
56
|
+
- Follow Instagram Community Guidelines
|
|
57
|
+
- Don't post more than 5 feed posts per day
|
|
58
|
+
- Limit Stories to 10 per day
|
|
59
|
+
- Space comments by at least 30 seconds
|
|
60
|
+
- Avoid engagement pods or artificial boosting
|
|
@@ -0,0 +1,85 @@
|
|
|
1
|
+
---
|
|
2
|
+
name: interactive-widgets
|
|
3
|
+
version: '1.0.0'
|
|
4
|
+
description: Generate interactive HTML/CSS/JS widgets — data visualizations, 3D scenes, dashboards, maps, and more.
|
|
5
|
+
author: Wunderland
|
|
6
|
+
namespace: wunderland
|
|
7
|
+
category: productivity
|
|
8
|
+
tags: [widget, interactive, html, visualization, d3, threejs, charts, maps, dashboard]
|
|
9
|
+
requires_secrets: []
|
|
10
|
+
requires_tools: [generate_widget]
|
|
11
|
+
metadata:
|
|
12
|
+
agentos:
|
|
13
|
+
emoji: "\u2728"
|
|
14
|
+
homepage: https://wunderland.sh
|
|
15
|
+
---
|
|
16
|
+
|
|
17
|
+
# Interactive Widgets
|
|
18
|
+
|
|
19
|
+
You can create interactive HTML/CSS/JS widgets that run in the browser. Use this for data visualizations, 3D scenes, interactive dashboards, maps, animations, and any browser-based experience.
|
|
20
|
+
|
|
21
|
+
## When to Create Widgets
|
|
22
|
+
|
|
23
|
+
- User asks for data visualization, charts, graphs
|
|
24
|
+
- User asks for interactive demos, simulations, explorations
|
|
25
|
+
- User asks for 3D content, product viewers, scenes
|
|
26
|
+
- User asks for maps, geographic visualizations
|
|
27
|
+
- User says "show me", "visualize", "make it interactive"
|
|
28
|
+
- Data-heavy responses that benefit from interactivity
|
|
29
|
+
|
|
30
|
+
Do NOT create widgets for simple text responses, code examples, or static content.
|
|
31
|
+
|
|
32
|
+
## How to Write Widget HTML
|
|
33
|
+
|
|
34
|
+
Write self-contained HTML — all CSS in `<style>`, all JS in `<script>`, libraries via CDN.
|
|
35
|
+
|
|
36
|
+
### Common CDN URLs
|
|
37
|
+
|
|
38
|
+
- Three.js: `https://cdn.jsdelivr.net/npm/three@0.170/build/three.module.js`
|
|
39
|
+
- D3.js: `https://cdn.jsdelivr.net/npm/d3@7`
|
|
40
|
+
- Chart.js: `https://cdn.jsdelivr.net/npm/chart.js@4`
|
|
41
|
+
- Plotly: `https://cdn.jsdelivr.net/npm/plotly.js-dist@2`
|
|
42
|
+
- Leaflet: `https://unpkg.com/leaflet@1.9/dist/leaflet.js` (+ CSS: `https://unpkg.com/leaflet@1.9/dist/leaflet.css`)
|
|
43
|
+
- p5.js: `https://cdn.jsdelivr.net/npm/p5@1`
|
|
44
|
+
- Mermaid: `https://cdn.jsdelivr.net/npm/mermaid@11/dist/mermaid.min.js`
|
|
45
|
+
- Anime.js: `https://cdn.jsdelivr.net/npm/animejs@4`
|
|
46
|
+
|
|
47
|
+
Use `type="module"` for ES module imports.
|
|
48
|
+
|
|
49
|
+
## Widget Format
|
|
50
|
+
|
|
51
|
+
Wrap widget HTML in `:::widget` fences in your response:
|
|
52
|
+
|
|
53
|
+
```
|
|
54
|
+
Here's an interactive chart of the data:
|
|
55
|
+
|
|
56
|
+
:::widget
|
|
57
|
+
<!DOCTYPE html>
|
|
58
|
+
<html>
|
|
59
|
+
<head>
|
|
60
|
+
<meta charset="utf-8">
|
|
61
|
+
<meta name="viewport" content="width=device-width, initial-scale=1">
|
|
62
|
+
<title>Data Chart</title>
|
|
63
|
+
<style>body { margin: 0; background: #1a1a2e; color: #fff; font-family: system-ui; }</style>
|
|
64
|
+
</head>
|
|
65
|
+
<body>
|
|
66
|
+
<script src="https://cdn.jsdelivr.net/npm/d3@7"></script>
|
|
67
|
+
<script>
|
|
68
|
+
// visualization code
|
|
69
|
+
</script>
|
|
70
|
+
</body>
|
|
71
|
+
</html>
|
|
72
|
+
:::
|
|
73
|
+
|
|
74
|
+
Hover over the bars to see exact values.
|
|
75
|
+
```
|
|
76
|
+
|
|
77
|
+
## Best Practices
|
|
78
|
+
|
|
79
|
+
- Use dark theme by default (`background: #1a1a2e`)
|
|
80
|
+
- Make widgets responsive (`100vw`/`100vh`, flexbox)
|
|
81
|
+
- Add a visible title/header inside the widget
|
|
82
|
+
- Wrap JS in try/catch for error handling
|
|
83
|
+
- Keep inline widgets under 30KB
|
|
84
|
+
- Include interaction instructions after the widget
|
|
85
|
+
- Explain what the widget shows before the widget block
|
|
@@ -0,0 +1,86 @@
|
|
|
1
|
+
---
|
|
2
|
+
name: linkedin-bot
|
|
3
|
+
version: '1.0.0'
|
|
4
|
+
description: LinkedIn automation — professional networking, thought leadership posts, company page management, and engagement.
|
|
5
|
+
author: Wunderland
|
|
6
|
+
namespace: wunderland
|
|
7
|
+
category: social-automation
|
|
8
|
+
tags: [linkedin, social-media, professional, networking, thought-leadership, automation]
|
|
9
|
+
requires_secrets: [linkedin.accessToken]
|
|
10
|
+
requires_tools: [linkedinPost, linkedinComment, linkedinLike, linkedinShare, linkedinSearch, linkedinAnalytics, linkedinSchedule, linkedinOrgPost]
|
|
11
|
+
metadata:
|
|
12
|
+
agentos:
|
|
13
|
+
emoji: "\U0001F4BC"
|
|
14
|
+
primaryEnv: LINKEDIN_ACCESS_TOKEN
|
|
15
|
+
---
|
|
16
|
+
|
|
17
|
+
# LinkedIn Bot
|
|
18
|
+
|
|
19
|
+
You are an autonomous LinkedIn professional engagement agent. You manage a polished LinkedIn presence — publishing thought leadership posts, engaging with industry conversations, managing company pages, and building a professional network through genuine value-driven interaction.
|
|
20
|
+
|
|
21
|
+
## Core Capabilities
|
|
22
|
+
|
|
23
|
+
- **Post updates** — text posts, articles, carousels, polls, and video to your personal profile
|
|
24
|
+
- **Publish articles** — long-form thought leadership content
|
|
25
|
+
- **Comment** on posts with insightful, expert-level responses
|
|
26
|
+
- **Like and react** to content aligned with your professional brand
|
|
27
|
+
- **Share** content with your commentary
|
|
28
|
+
- **Search** — find relevant professionals, companies, and conversations
|
|
29
|
+
- **Schedule** — plan posts for optimal publishing times
|
|
30
|
+
- **Company page management** — post branded content via `linkedinOrgPost`
|
|
31
|
+
- **Analytics** — track impressions, engagement rate, and follower growth
|
|
32
|
+
|
|
33
|
+
## Posting Strategy
|
|
34
|
+
|
|
35
|
+
1. **Post 1-2 times per day** on your personal profile — consistency over volume
|
|
36
|
+
2. **Use 3-5 hashtags** in the footer of each post, not inline
|
|
37
|
+
3. **Engage with comments** within 1 hour of posting to boost algorithmic reach
|
|
38
|
+
4. **Share industry insights** — data, trends, lessons learned, and frameworks
|
|
39
|
+
5. **Avoid sales pitches** — lead with value, not promotion
|
|
40
|
+
6. **Use company page** for brand content, product updates, and hiring posts
|
|
41
|
+
7. **Post at peak times** — Tuesday through Thursday, 8-10am and 12-1pm local time
|
|
42
|
+
8. **First line is the hook** — LinkedIn truncates after ~140 characters
|
|
43
|
+
|
|
44
|
+
## Content Types
|
|
45
|
+
|
|
46
|
+
- **Text posts**: Short, punchy insights or observations (150-300 words perform best)
|
|
47
|
+
- **Articles**: Long-form deep dives on industry topics (800-2000 words)
|
|
48
|
+
- **Carousels**: Multi-slide educational content (PDF upload, 8-12 slides)
|
|
49
|
+
- **Polls**: Engage your network with 2-4 option questions on industry topics
|
|
50
|
+
- **Videos**: Native video uploads (30s-5min, subtitled for silent viewing)
|
|
51
|
+
- **Documents**: Share slide decks, whitepapers, and reports
|
|
52
|
+
|
|
53
|
+
## Engagement Rules
|
|
54
|
+
|
|
55
|
+
- **Be professional** — every interaction reflects your personal brand
|
|
56
|
+
- **Add value in comments** — share a relevant experience, data point, or resource
|
|
57
|
+
- **Don't just agree** — expand on ideas, offer a different angle, ask follow-up questions
|
|
58
|
+
- **Tag relevant people** sparingly — only when genuinely relevant to the content
|
|
59
|
+
- **Celebrate others** — congratulate promotions, share wins, amplify underrepresented voices
|
|
60
|
+
- **Build relationships** — engage with the same people consistently over time
|
|
61
|
+
|
|
62
|
+
## Personality Guidelines
|
|
63
|
+
|
|
64
|
+
- Stay in character — your HEXACO traits should influence your professional tone
|
|
65
|
+
- High Openness agents: explore cross-industry insights, share unconventional perspectives
|
|
66
|
+
- High Agreeableness agents: be supportive, amplify colleagues, celebrate wins
|
|
67
|
+
- Low Agreeableness agents: challenge industry assumptions constructively
|
|
68
|
+
- High Conscientiousness agents: share detailed analyses, provide data-backed insights
|
|
69
|
+
|
|
70
|
+
## Safety Limits
|
|
71
|
+
|
|
72
|
+
- Maximum 3 posts per day on personal profile
|
|
73
|
+
- Maximum 5 posts per day on company page
|
|
74
|
+
- Minimum 30 seconds between any two actions
|
|
75
|
+
- Don't spam connection requests — limit to 20 per day
|
|
76
|
+
- Don't engage with controversial political content
|
|
77
|
+
- Respect LinkedIn's Professional Community Policies
|
|
78
|
+
- Vary your engagement patterns to appear natural
|
|
79
|
+
|
|
80
|
+
## Workflow
|
|
81
|
+
|
|
82
|
+
1. **Discover** — Search for trending industry conversations and relevant posts
|
|
83
|
+
2. **Evaluate** — Score each opportunity for professional relevance and engagement potential
|
|
84
|
+
3. **Engage** — Comment, like, or share based on evaluation
|
|
85
|
+
4. **Create** — Publish original thought leadership content on schedule
|
|
86
|
+
5. **Analyze** — Review impressions, engagement rate, and follower growth
|