@framers/agentos-skills 0.2.1 → 0.4.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.
Files changed (100) hide show
  1. package/CONTRIBUTING.md +231 -0
  2. package/README.md +99 -58
  3. package/package.json +22 -34
  4. package/registry/community/.gitkeep +0 -0
  5. package/registry/curated/1password/SKILL.md +53 -0
  6. package/registry/curated/account-manager/SKILL.md +60 -0
  7. package/registry/curated/agent-config/SKILL.md +22 -0
  8. package/registry/curated/amazon-polly/SKILL.md +74 -0
  9. package/registry/curated/apple-notes/SKILL.md +45 -0
  10. package/registry/curated/apple-reminders/SKILL.md +46 -0
  11. package/registry/curated/audio-generation/SKILL.md +231 -0
  12. package/registry/curated/blog-publisher/SKILL.md +110 -0
  13. package/registry/curated/bluesky-bot/SKILL.md +93 -0
  14. package/registry/curated/cli-tools/SKILL.md +137 -0
  15. package/registry/curated/cloud-ops/SKILL.md +124 -0
  16. package/registry/curated/code-safety/SKILL.md +42 -0
  17. package/registry/curated/coding-agent/SKILL.md +40 -0
  18. package/registry/curated/company-research/SKILL.md +46 -0
  19. package/registry/curated/content-creator/SKILL.md +53 -0
  20. package/registry/curated/deep-research/SKILL.md +56 -0
  21. package/registry/curated/diarization/SKILL.md +83 -0
  22. package/registry/curated/discord-helper/SKILL.md +43 -0
  23. package/registry/curated/document-export/SKILL.md +54 -0
  24. package/registry/curated/email-intelligence/SKILL.md +41 -0
  25. package/registry/curated/emergent-tools/SKILL.md +225 -0
  26. package/registry/curated/endpoint-semantic/SKILL.md +72 -0
  27. package/registry/curated/facebook-bot/SKILL.md +94 -0
  28. package/registry/curated/git/SKILL.md +49 -0
  29. package/registry/curated/github/SKILL.md +142 -0
  30. package/registry/curated/google-cloud-stt/SKILL.md +71 -0
  31. package/registry/curated/google-cloud-tts/SKILL.md +71 -0
  32. package/registry/curated/grounding-guard/SKILL.md +38 -0
  33. package/registry/curated/healthcheck/SKILL.md +43 -0
  34. package/registry/curated/image-editing/SKILL.md +25 -0
  35. package/registry/curated/image-gen/SKILL.md +141 -0
  36. package/registry/curated/instagram-bot/SKILL.md +60 -0
  37. package/registry/curated/interactive-widgets/SKILL.md +85 -0
  38. package/registry/curated/linkedin-bot/SKILL.md +86 -0
  39. package/registry/curated/mastodon-bot/SKILL.md +104 -0
  40. package/registry/curated/memory-manager/SKILL.md +127 -0
  41. package/registry/curated/ml-content-classifier/SKILL.md +38 -0
  42. package/registry/curated/movie-lookup/SKILL.md +48 -0
  43. package/registry/curated/multimodal-rag/SKILL.md +153 -0
  44. package/registry/curated/notion/SKILL.md +43 -0
  45. package/registry/curated/obsidian/SKILL.md +42 -0
  46. package/registry/curated/openwakeword/SKILL.md +75 -0
  47. package/registry/curated/pii-redaction/SKILL.md +56 -0
  48. package/registry/curated/pinterest-bot/SKILL.md +45 -0
  49. package/registry/curated/piper/SKILL.md +72 -0
  50. package/registry/curated/porcupine/SKILL.md +74 -0
  51. package/registry/curated/reddit-bot/SKILL.md +74 -0
  52. package/registry/curated/seo-campaign/SKILL.md +51 -0
  53. package/registry/curated/site-deploy/SKILL.md +119 -0
  54. package/registry/curated/slack-helper/SKILL.md +43 -0
  55. package/registry/curated/social-broadcast/SKILL.md +145 -0
  56. package/registry/curated/spotify-player/SKILL.md +45 -0
  57. package/registry/curated/streaming-stt-deepgram/SKILL.md +84 -0
  58. package/registry/curated/streaming-stt-whisper/SKILL.md +82 -0
  59. package/registry/curated/streaming-tts-elevenlabs/SKILL.md +84 -0
  60. package/registry/curated/streaming-tts-openai/SKILL.md +83 -0
  61. package/registry/curated/structured-output/SKILL.md +22 -0
  62. package/registry/curated/summarize/SKILL.md +40 -0
  63. package/registry/curated/threads-bot/SKILL.md +82 -0
  64. package/registry/curated/tiktok-bot/SKILL.md +104 -0
  65. package/registry/curated/topicality/SKILL.md +37 -0
  66. package/registry/curated/trello/SKILL.md +44 -0
  67. package/registry/curated/twitter-bot/SKILL.md +63 -0
  68. package/registry/curated/video-generation/SKILL.md +225 -0
  69. package/registry/curated/vision-ocr/SKILL.md +82 -0
  70. package/registry/curated/voice-conversation/SKILL.md +65 -0
  71. package/registry/curated/vosk/SKILL.md +74 -0
  72. package/registry/curated/weather/SKILL.md +37 -0
  73. package/registry/curated/web-scraper/SKILL.md +60 -0
  74. package/registry/curated/web-search/SKILL.md +49 -0
  75. package/registry/curated/whisper-transcribe/SKILL.md +58 -0
  76. package/registry/curated/youtube-bot/SKILL.md +104 -0
  77. package/registry.json +2446 -0
  78. package/scripts/update-registry.mjs +126 -0
  79. package/scripts/validate-skill.mjs +304 -0
  80. package/types.d.ts +160 -0
  81. package/dist/SkillLoader.d.ts +0 -50
  82. package/dist/SkillLoader.d.ts.map +0 -1
  83. package/dist/SkillLoader.js +0 -291
  84. package/dist/SkillLoader.js.map +0 -1
  85. package/dist/SkillRegistry.d.ts +0 -135
  86. package/dist/SkillRegistry.d.ts.map +0 -1
  87. package/dist/SkillRegistry.js +0 -455
  88. package/dist/SkillRegistry.js.map +0 -1
  89. package/dist/index.d.ts +0 -13
  90. package/dist/index.d.ts.map +0 -1
  91. package/dist/index.js +0 -13
  92. package/dist/index.js.map +0 -1
  93. package/dist/paths.d.ts +0 -35
  94. package/dist/paths.d.ts.map +0 -1
  95. package/dist/paths.js +0 -71
  96. package/dist/paths.js.map +0 -1
  97. package/dist/types.d.ts +0 -231
  98. package/dist/types.d.ts.map +0 -1
  99. package/dist/types.js +0 -21
  100. 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