@framers/agentos-skills-registry 0.15.0 → 0.17.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 CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@framers/agentos-skills-registry",
3
- "version": "0.15.0",
3
+ "version": "0.17.0",
4
4
  "files": [
5
5
  "dist",
6
6
  "registry",
@@ -0,0 +1,46 @@
1
+ ---
2
+ name: company-research
3
+ version: '1.0.0'
4
+ description: Research companies and contacts using Clearbit enrichment API.
5
+ author: Wunderland
6
+ namespace: wunderland
7
+ category: business
8
+ tags: [clearbit, company, enrichment, contacts, b2b, research]
9
+ requires_secrets: [clearbit.apiKey]
10
+ requires_tools: [clearbit_company, clearbit_person]
11
+ metadata:
12
+ agentos:
13
+ emoji: "\U0001F3E2"
14
+ homepage: https://clearbit.com
15
+ ---
16
+
17
+ # Company & Contact Research
18
+
19
+ You can research companies and people using the Clearbit enrichment API.
20
+
21
+ ## Workflow
22
+
23
+ 1. Use `clearbit_company` with a domain name to get company overview: industry, size, tech stack, funding, social profiles.
24
+ 2. Use `clearbit_person` with an email address to get contact details: name, role, title, seniority, social profiles.
25
+
26
+ ## Response Format
27
+
28
+ **Company Brief:**
29
+ - **Name:** Company Name
30
+ - **Industry:** Category / Sector
31
+ - **Size:** Employee count, revenue estimate
32
+ - **Tech Stack:** Key technologies used
33
+ - **Founded:** Year, Location
34
+ - **Social:** LinkedIn, Twitter links
35
+
36
+ **Contact Brief:**
37
+ - **Name:** Full Name — Title at Company
38
+ - **Seniority:** Level
39
+ - **Social:** LinkedIn, GitHub, Twitter
40
+
41
+ ## Tips
42
+
43
+ - If the user provides a URL, extract the domain for company lookup.
44
+ - If a person lookup returns company info, present both together.
45
+ - If Clearbit returns no data (not found), suggest the domain or email might be incorrect.
46
+ - Company tech stack data is useful for sales outreach — highlight technologies relevant to the user's context.
@@ -1,13 +1,13 @@
1
1
  ---
2
2
  name: emergent-tools
3
- version: '1.0.0'
4
- description: Forge new tools at runtime via LLM sandboxed execution, LLM-as-judge validation, composable tool building, and full audit trail.
3
+ version: '2.0.0'
4
+ description: Self-improving agent toolkit forge runtime tools, adapt personality traits, manage skills dynamically, compose multi-step workflows, and self-evaluate performance with bounded autonomy.
5
5
  author: Wunderland
6
6
  namespace: wunderland
7
7
  category: productivity
8
- tags: [emergent, tools, forge, sandbox, dynamic, runtime, LLM-judge]
8
+ tags: [emergent, tools, forge, sandbox, dynamic, runtime, LLM-judge, self-improvement, personality, skills, workflow, self-evaluation]
9
9
  requires_secrets: []
10
- requires_tools: [forge_tool]
10
+ requires_tools: [forge_tool, adapt_personality, manage_skills, create_workflow, self_evaluate]
11
11
  metadata:
12
12
  agentos:
13
13
  emoji: "\U0001F527"
@@ -15,7 +15,24 @@ metadata:
15
15
 
16
16
  # Emergent Tools
17
17
 
18
- You have access to the EmergentCapabilityEngine — a system that lets you create brand-new tools at runtime when no existing tool satisfies the user's request. This is a powerful capability; use it wisely.
18
+ You have access to the EmergentCapabilityEngine — a system that lets you create brand-new tools at runtime when no existing tool satisfies the user's request, and a suite of self-improvement tools that let you adapt your personality, manage your skills, compose workflows, and evaluate your own performance. These are powerful capabilities; use them wisely.
19
+
20
+ ## Self-Improvement Overview
21
+
22
+ The self-improvement system provides **bounded autonomy**: you can modify your own behavior within configurable limits. Four tools work together to form a self-improvement loop:
23
+
24
+ 1. **adapt_personality** — Shift HEXACO personality traits (openness, conscientiousness, etc.) to better match user needs.
25
+ 2. **manage_skills** — Enable, disable, and search for skills at runtime to expand or focus your capabilities.
26
+ 3. **create_workflow** — Compose multi-step tool pipelines for repeated tasks.
27
+ 4. **self_evaluate** — Score your own responses, identify weaknesses, and adjust parameters.
28
+
29
+ All modifications are bounded:
30
+ - Personality shifts are capped by a per-session delta budget (default: ±0.15 per trait).
31
+ - Skill changes are gated by an allowlist and optional human-in-the-loop approval for new categories.
32
+ - Workflows are limited to a configurable max step count (default: 10) with no recursion.
33
+ - Self-evaluations are capped per session (default: 10) to prevent excessive LLM calls.
34
+
35
+ Mutations decay over time via Ebbinghaus-style forgetting during consolidation cycles. Only reinforced adaptations persist long-term.
19
36
 
20
37
  ## When to Forge vs. Use Existing Tools
21
38
 
@@ -52,6 +69,112 @@ The `forge_tool` meta-tool is your interface to the EmergentCapabilityEngine. In
52
69
 
53
70
  The more precise your specification, the higher the first-pass success rate.
54
71
 
72
+ ## adapt_personality
73
+
74
+ The `adapt_personality` tool lets you shift HEXACO personality dimensions at runtime. Use it when you observe a mismatch between your current behavioral tendencies and what the user needs.
75
+
76
+ **When to adjust:**
77
+ - User feedback suggests you're too formal/casual, too verbose/terse, too cautious/bold.
78
+ - A pattern of user corrections indicates a trait mismatch (e.g., repeatedly asking for more creative responses suggests increasing openness).
79
+ - Self-evaluation identifies a personality-related weakness.
80
+
81
+ **How it works:**
82
+ - Provide the `trait` name (one of the HEXACO dimensions), a signed `delta`, and a `reasoning` string explaining why.
83
+ - The delta is clamped to the per-session budget (default ±0.15) and the final value to [0, 1].
84
+ - Every mutation is recorded in the PersonalityMutationStore with an audit trail.
85
+ - Mutations start at strength 1.0 and decay by the configured rate (default 0.05) each consolidation cycle.
86
+ - Unreinforced mutations fade to zero over ~18 cycles; reinforced mutations (repeated similar adjustments) maintain effective strength.
87
+
88
+ **Always provide reasoning.** The reasoning is persisted and auditable. Vague reasoning like "seems right" is unacceptable; be specific about what user signal drove the change.
89
+
90
+ ## manage_skills
91
+
92
+ The `manage_skills` tool lets you enable, disable, and search for skills at runtime.
93
+
94
+ **Actions:**
95
+ - `search` — Find skills by keyword or description. Always search before enabling to find the best match.
96
+ - `enable` — Load a skill by ID. The skill becomes immediately active.
97
+ - `disable` — Unload a previously loaded skill. Locked skills (core skills) cannot be disabled.
98
+ - `list` — List all currently active skills.
99
+
100
+ **Allowlist patterns:**
101
+ - `['*']` — All skills are permitted (default). Use with caution in production.
102
+ - `['category:productivity', 'category:search']` — Only skills in the listed categories are permitted.
103
+ - `['com.framers.skill.web-search', 'com.framers.skill.calculator']` — Only the exact skill IDs listed are permitted.
104
+
105
+ **Category gating:** When `requireApprovalForNewCategories` is enabled (default: true), enabling a skill from a category not already represented among active skills returns a `requires_approval` status. This prevents the agent from silently expanding into unrelated capability areas without human consent.
106
+
107
+ **Workflow:** Search → review results → enable the best match. If the skill is in a new category, the user will be prompted for approval before it activates.
108
+
109
+ ## create_workflow
110
+
111
+ The `create_workflow` tool lets you compose multi-step tool pipelines and execute them as a unit.
112
+
113
+ **Reference resolution:** Steps can reference data from earlier in the pipeline:
114
+ - `$input` — The workflow's original input argument.
115
+ - `$prev` — The output of the immediately preceding step.
116
+ - `$steps[N]` — The output of the Nth step (zero-indexed).
117
+
118
+ **Example workflow:**
119
+ ```json
120
+ {
121
+ "action": "create",
122
+ "name": "research_and_summarize",
123
+ "steps": [
124
+ { "tool": "web_search", "args": { "query": "$input.topic" } },
125
+ { "tool": "extract_text", "args": { "url": "$prev.results[0].url" } },
126
+ { "tool": "summarize", "args": { "text": "$prev.content", "maxLength": 200 } }
127
+ ]
128
+ }
129
+ ```
130
+
131
+ **Constraints:**
132
+ - Maximum steps per workflow: configurable (default 10).
133
+ - Only tools from the `allowedTools` list may be used. Default is `['*']` (all tools).
134
+ - `create_workflow` itself is always excluded from workflow steps to prevent recursion.
135
+ - Each step execution has a 30-second timeout.
136
+
137
+ **Actions:**
138
+ - `create` — Define a new named workflow.
139
+ - `run` — Execute a previously created workflow with input.
140
+ - `list` — List all workflows created in this session.
141
+
142
+ ## self_evaluate
143
+
144
+ The `self_evaluate` tool lets you score your own responses and adjust operational parameters.
145
+
146
+ **When to self-evaluate:**
147
+ - After a complex multi-turn interaction to assess overall quality.
148
+ - When user feedback (explicit or implicit) suggests dissatisfaction.
149
+ - Periodically (every N turns) as a quality checkpoint.
150
+
151
+ **Evaluation criteria:** The tool scores responses across multiple dimensions (helpfulness, accuracy, clarity, safety) and produces an overall score with reasoning.
152
+
153
+ **Auto-adjustment:** When `autoAdjust` is enabled (default: true), the tool can immediately apply parameter changes based on evaluation results:
154
+ - `temperature` — Adjust LLM sampling temperature for more/less creative responses.
155
+ - `verbosity` — Shift response length preference.
156
+ - `personality` — Delegate trait adjustments to `adapt_personality`.
157
+
158
+ **Adjustable parameters** are configured via `adjustableParams` (default: `['temperature', 'verbosity', 'personality']`). Only listed parameters can be modified.
159
+
160
+ **Session cap:** Maximum evaluations per session is configurable (default: 10) to prevent excessive self-reflection loops.
161
+
162
+ ## Self-Improvement Workflow
163
+
164
+ The full self-improvement loop combines all four tools:
165
+
166
+ 1. **Evaluate** — Use `self_evaluate` to score recent performance. Identify specific weaknesses (e.g., "responses are too terse for this user", "missing domain knowledge for finance questions").
167
+
168
+ 2. **Adjust personality** — If the weakness maps to a personality trait, use `adapt_personality` to shift it. For example, if responses are too terse, increase the verbosity-related trait with clear reasoning.
169
+
170
+ 3. **Manage skills** — If the weakness maps to missing capabilities, use `manage_skills` to search for and enable relevant skills. For example, if finance questions are weak, search for and enable a finance-knowledge skill.
171
+
172
+ 4. **Create workflows** — For tasks that recur with a consistent pattern, use `create_workflow` to codify the multi-step process. This saves re-planning on every invocation.
173
+
174
+ 5. **Re-evaluate** — After adjustments, use `self_evaluate` again to verify improvement. If scores improved, the adjustments are reinforced. If not, consider reverting or trying a different approach.
175
+
176
+ This loop is not meant to run on every turn. Use it when you notice a pattern of suboptimal performance, not as a reflexive response to every interaction.
177
+
55
178
  ## ComposableToolBuilder
56
179
 
57
180
  For compositions of existing tools, use the ComposableToolBuilder pattern:
@@ -85,6 +208,8 @@ Every forged tool carries an audit record containing:
85
208
 
86
209
  This trail is immutable. If a user asks "how was this tool made?", you can retrieve and explain its provenance.
87
210
 
211
+ Personality mutations are also fully auditable: every `adapt_personality` call records the trait, delta, reasoning, baseline value, and mutated value with timestamps.
212
+
88
213
  ## Best Practices
89
214
 
90
215
  1. **Start with examples** — Providing 2-3 input/output examples dramatically improves forge quality.
@@ -95,3 +220,6 @@ This trail is immutable. If a user asks "how was this tool made?", you can retri
95
220
  6. **Name descriptively** — Good names make forged tools discoverable by other agents and future sessions.
96
221
  7. **Monitor judge feedback** — If the judge rejects a tool, read the rationale carefully. It usually pinpoints exactly what to fix.
97
222
  8. **Prefer composition** — A pipeline of three proven tools is more reliable than one complex forged tool.
223
+ 9. **Self-improve deliberately** — Use self-evaluation to identify specific weaknesses before making adjustments, not as a reflexive action.
224
+ 10. **Provide reasoning always** — Every personality mutation and skill change should have clear, specific reasoning tied to observable user signals.
225
+ 11. **Let decay work** — Don't fight the decay model. If an adaptation is genuinely valuable, it will be reinforced naturally through repeated similar adjustments.
@@ -91,6 +91,44 @@ Additional tips:
91
91
  - "Show me 3 variations of this hero image with different color palettes."
92
92
  - "Generate a 16:9 cinematic landscape of a neon-lit Tokyo street at night in the rain."
93
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
+
94
132
  ## Constraints
95
133
 
96
134
  - Image generation costs API credits per request; inform the user of approximate costs when possible.
@@ -0,0 +1,48 @@
1
+ ---
2
+ name: movie-lookup
3
+ version: '1.0.0'
4
+ description: Research movies and TV shows using OMDB (IMDB/RT/Metacritic scores) and Letterboxd (community ratings and reviews).
5
+ author: Wunderland
6
+ namespace: wunderland
7
+ category: entertainment
8
+ tags: [movies, tv, imdb, letterboxd, rotten-tomatoes, metacritic, reviews]
9
+ requires_secrets: [omdb.apiKey]
10
+ requires_tools: [omdb_search, omdb_details, letterboxd_movie]
11
+ metadata:
12
+ agentos:
13
+ emoji: "\U0001F3AC"
14
+ homepage: https://www.omdbapi.com
15
+ ---
16
+
17
+ # Movie & TV Lookup
18
+
19
+ You can research movies and TV shows by combining data from OMDB and Letterboxd.
20
+
21
+ ## Workflow
22
+
23
+ 1. Use `omdb_search` to find the title and get the IMDB ID.
24
+ 2. Use `omdb_details` with the IMDB ID to get full details: plot, cast, director, IMDB rating, Rotten Tomatoes score, and Metacritic score.
25
+ 3. Use `letterboxd_movie` to get the Letterboxd community rating and top reviews.
26
+ 4. Present all four rating sources side-by-side for comparison.
27
+
28
+ ## Response Format
29
+
30
+ When presenting movie information, use this structure:
31
+
32
+ **Title** (Year) — Directed by Director
33
+
34
+ Ratings: IMDB X.X | RT XX% | Metacritic XX | Letterboxd X.X
35
+
36
+ Plot summary in 1-2 sentences.
37
+
38
+ Cast: Top 3-4 actors.
39
+
40
+ **Community Reviews** (from Letterboxd):
41
+ - "Review excerpt..." — @username (rating)
42
+
43
+ ## Tips
44
+
45
+ - If the user asks "is it good?" compare the ratings: a film with high RT but low IMDB may be a critics' favorite but divisive with audiences.
46
+ - If Letterboxd data is unavailable, present OMDB data alone — it already includes IMDB, RT, and Metacritic.
47
+ - Use `omdb_details` with `plot: 'full'` when the user wants a detailed plot summary.
48
+ - For TV series, OMDB returns season/episode data — use the `type: 'series'` filter in search.
package/registry.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "version": "1.0.0",
3
- "updated": "2026-03-27T10:16:24.338Z",
3
+ "updated": "2026-03-27T15:27:30.746Z",
4
4
  "categories": {
5
5
  "curated": [
6
6
  "1password",
@@ -86,7 +86,7 @@
86
86
  "namespace": "wunderland",
87
87
  "verified": true,
88
88
  "source": "curated",
89
- "verifiedAt": "2026-03-27T10:16:24.338Z",
89
+ "verifiedAt": "2026-03-27T15:27:30.746Z",
90
90
  "keywords": [
91
91
  "1password",
92
92
  "passwords",
@@ -131,7 +131,7 @@
131
131
  "namespace": "wunderland",
132
132
  "verified": true,
133
133
  "source": "curated",
134
- "verifiedAt": "2026-03-27T10:16:24.338Z",
134
+ "verifiedAt": "2026-03-27T15:27:30.746Z",
135
135
  "keywords": [
136
136
  "accounts",
137
137
  "credentials",
@@ -167,7 +167,7 @@
167
167
  "namespace": "wunderland",
168
168
  "verified": true,
169
169
  "source": "curated",
170
- "verifiedAt": "2026-03-27T10:16:24.338Z",
170
+ "verifiedAt": "2026-03-27T15:27:30.746Z",
171
171
  "keywords": [
172
172
  "agent",
173
173
  "config",
@@ -188,7 +188,7 @@
188
188
  "namespace": "wunderland",
189
189
  "verified": true,
190
190
  "source": "curated",
191
- "verifiedAt": "2026-03-27T10:16:24.338Z",
191
+ "verifiedAt": "2026-03-27T15:27:30.746Z",
192
192
  "keywords": [
193
193
  "voice",
194
194
  "tts",
@@ -219,7 +219,7 @@
219
219
  "namespace": "wunderland",
220
220
  "verified": true,
221
221
  "source": "curated",
222
- "verifiedAt": "2026-03-27T10:16:24.338Z",
222
+ "verifiedAt": "2026-03-27T15:27:30.746Z",
223
223
  "keywords": [
224
224
  "apple-notes",
225
225
  "macos",
@@ -253,7 +253,7 @@
253
253
  "namespace": "wunderland",
254
254
  "verified": true,
255
255
  "source": "curated",
256
- "verifiedAt": "2026-03-27T10:16:24.338Z",
256
+ "verifiedAt": "2026-03-27T15:27:30.746Z",
257
257
  "keywords": [
258
258
  "apple-reminders",
259
259
  "macos",
@@ -288,7 +288,7 @@
288
288
  "namespace": "wunderland",
289
289
  "verified": true,
290
290
  "source": "curated",
291
- "verifiedAt": "2026-03-27T10:16:24.338Z",
291
+ "verifiedAt": "2026-03-27T15:27:30.746Z",
292
292
  "keywords": [
293
293
  "audio",
294
294
  "music",
@@ -315,7 +315,7 @@
315
315
  "namespace": "wunderland",
316
316
  "verified": true,
317
317
  "source": "curated",
318
- "verifiedAt": "2026-03-27T10:16:24.338Z",
318
+ "verifiedAt": "2026-03-27T15:27:30.746Z",
319
319
  "keywords": [
320
320
  "blog",
321
321
  "publishing",
@@ -359,7 +359,7 @@
359
359
  "namespace": "wunderland",
360
360
  "verified": true,
361
361
  "source": "curated",
362
- "verifiedAt": "2026-03-27T10:16:24.338Z",
362
+ "verifiedAt": "2026-03-27T15:27:30.746Z",
363
363
  "keywords": [
364
364
  "bluesky",
365
365
  "social-media",
@@ -399,7 +399,7 @@
399
399
  "namespace": "wunderland",
400
400
  "verified": true,
401
401
  "source": "curated",
402
- "verifiedAt": "2026-03-27T10:16:24.338Z",
402
+ "verifiedAt": "2026-03-27T15:27:30.746Z",
403
403
  "keywords": [
404
404
  "cloud",
405
405
  "devops",
@@ -426,7 +426,7 @@
426
426
  "namespace": "wunderland",
427
427
  "verified": true,
428
428
  "source": "curated",
429
- "verifiedAt": "2026-03-27T10:16:24.338Z",
429
+ "verifiedAt": "2026-03-27T15:27:30.746Z",
430
430
  "keywords": [
431
431
  "guardrails",
432
432
  "code-safety",
@@ -454,7 +454,7 @@
454
454
  "namespace": "wunderland",
455
455
  "verified": true,
456
456
  "source": "curated",
457
- "verifiedAt": "2026-03-27T10:16:24.338Z",
457
+ "verifiedAt": "2026-03-27T15:27:30.746Z",
458
458
  "keywords": [
459
459
  "coding",
460
460
  "programming",
@@ -481,7 +481,7 @@
481
481
  "namespace": "wunderland",
482
482
  "verified": true,
483
483
  "source": "curated",
484
- "verifiedAt": "2026-03-27T10:16:24.338Z",
484
+ "verifiedAt": "2026-03-27T15:27:30.746Z",
485
485
  "keywords": [
486
486
  "content",
487
487
  "writing",
@@ -511,7 +511,7 @@
511
511
  "namespace": "wunderland",
512
512
  "verified": true,
513
513
  "source": "curated",
514
- "verifiedAt": "2026-03-27T10:16:24.338Z",
514
+ "verifiedAt": "2026-03-27T15:27:30.746Z",
515
515
  "keywords": [
516
516
  "research",
517
517
  "investigation",
@@ -549,7 +549,7 @@
549
549
  "namespace": "wunderland",
550
550
  "verified": true,
551
551
  "source": "curated",
552
- "verifiedAt": "2026-03-27T10:16:24.338Z",
552
+ "verifiedAt": "2026-03-27T15:27:30.746Z",
553
553
  "keywords": [
554
554
  "voice",
555
555
  "diarization",
@@ -574,7 +574,7 @@
574
574
  "namespace": "wunderland",
575
575
  "verified": true,
576
576
  "source": "curated",
577
- "verifiedAt": "2026-03-27T10:16:24.338Z",
577
+ "verifiedAt": "2026-03-27T15:27:30.746Z",
578
578
  "keywords": [
579
579
  "discord",
580
580
  "messaging",
@@ -602,7 +602,7 @@
602
602
  "namespace": "wunderland",
603
603
  "verified": true,
604
604
  "source": "curated",
605
- "verifiedAt": "2026-03-27T10:16:24.338Z",
605
+ "verifiedAt": "2026-03-27T15:27:30.746Z",
606
606
  "metadata": {
607
607
  "primaryEnv": "INTERNAL_API_SECRET",
608
608
  "emoji": "📧",
@@ -636,14 +636,14 @@
636
636
  "id": "com.framers.skill.emergent-tools",
637
637
  "name": "emergent-tools",
638
638
  "displayName": "emergent-tools",
639
- "version": "1.0.0",
639
+ "version": "2.0.0",
640
640
  "path": "registry/curated/emergent-tools",
641
- "description": "Forge new tools at runtime via LLM sandboxed execution, LLM-as-judge validation, composable tool building, and full audit trail.",
641
+ "description": "Self-improving agent toolkit forge runtime tools, adapt personality traits, manage skills dynamically, compose multi-step workflows, and self-evaluate performance with bounded autonomy.",
642
642
  "category": "productivity",
643
643
  "namespace": "wunderland",
644
644
  "verified": true,
645
645
  "source": "curated",
646
- "verifiedAt": "2026-03-27T10:16:24.338Z",
646
+ "verifiedAt": "2026-03-27T15:27:30.746Z",
647
647
  "keywords": [
648
648
  "emergent",
649
649
  "tools",
@@ -651,10 +651,19 @@
651
651
  "sandbox",
652
652
  "dynamic",
653
653
  "runtime",
654
- "LLM-judge"
654
+ "LLM-judge",
655
+ "self-improvement",
656
+ "personality",
657
+ "skills",
658
+ "workflow",
659
+ "self-evaluation"
655
660
  ],
656
661
  "requiredTools": [
657
- "forge_tool"
662
+ "forge_tool",
663
+ "adapt_personality",
664
+ "manage_skills",
665
+ "create_workflow",
666
+ "self_evaluate"
658
667
  ],
659
668
  "metadata": {
660
669
  "emoji": "🔧"
@@ -671,7 +680,7 @@
671
680
  "namespace": "wunderland",
672
681
  "verified": true,
673
682
  "source": "curated",
674
- "verifiedAt": "2026-03-27T10:16:24.338Z",
683
+ "verifiedAt": "2026-03-27T15:27:30.746Z",
675
684
  "keywords": [
676
685
  "voice",
677
686
  "endpointing",
@@ -697,7 +706,7 @@
697
706
  "namespace": "wunderland",
698
707
  "verified": true,
699
708
  "source": "curated",
700
- "verifiedAt": "2026-03-27T10:16:24.338Z",
709
+ "verifiedAt": "2026-03-27T15:27:30.746Z",
701
710
  "keywords": [
702
711
  "facebook",
703
712
  "social-media",
@@ -736,7 +745,7 @@
736
745
  "namespace": "wunderland",
737
746
  "verified": true,
738
747
  "source": "curated",
739
- "verifiedAt": "2026-03-27T10:16:24.338Z",
748
+ "verifiedAt": "2026-03-27T15:27:30.746Z",
740
749
  "keywords": [
741
750
  "git",
742
751
  "version-control",
@@ -790,7 +799,7 @@
790
799
  "namespace": "wunderland",
791
800
  "verified": true,
792
801
  "source": "curated",
793
- "verifiedAt": "2026-03-27T10:16:24.338Z",
802
+ "verifiedAt": "2026-03-27T15:27:30.746Z",
794
803
  "keywords": [
795
804
  "github",
796
805
  "git",
@@ -849,7 +858,7 @@
849
858
  "namespace": "wunderland",
850
859
  "verified": true,
851
860
  "source": "curated",
852
- "verifiedAt": "2026-03-27T10:16:24.338Z",
861
+ "verifiedAt": "2026-03-27T15:27:30.746Z",
853
862
  "keywords": [
854
863
  "voice",
855
864
  "stt",
@@ -878,7 +887,7 @@
878
887
  "namespace": "wunderland",
879
888
  "verified": true,
880
889
  "source": "curated",
881
- "verifiedAt": "2026-03-27T10:16:24.338Z",
890
+ "verifiedAt": "2026-03-27T15:27:30.746Z",
882
891
  "keywords": [
883
892
  "voice",
884
893
  "tts",
@@ -907,7 +916,7 @@
907
916
  "namespace": "wunderland",
908
917
  "verified": true,
909
918
  "source": "curated",
910
- "verifiedAt": "2026-03-27T10:16:24.338Z",
919
+ "verifiedAt": "2026-03-27T15:27:30.746Z",
911
920
  "keywords": [
912
921
  "guardrails",
913
922
  "hallucination",
@@ -935,7 +944,7 @@
935
944
  "namespace": "wunderland",
936
945
  "verified": true,
937
946
  "source": "curated",
938
- "verifiedAt": "2026-03-27T10:16:24.338Z",
947
+ "verifiedAt": "2026-03-27T15:27:30.746Z",
939
948
  "keywords": [
940
949
  "monitoring",
941
950
  "health",
@@ -968,7 +977,7 @@
968
977
  "namespace": "wunderland",
969
978
  "verified": true,
970
979
  "source": "curated",
971
- "verifiedAt": "2026-03-27T10:16:24.338Z",
980
+ "verifiedAt": "2026-03-27T15:27:30.746Z",
972
981
  "keywords": [
973
982
  "image",
974
983
  "editing",
@@ -989,7 +998,7 @@
989
998
  "namespace": "wunderland",
990
999
  "verified": true,
991
1000
  "source": "curated",
992
- "verifiedAt": "2026-03-27T10:16:24.338Z",
1001
+ "verifiedAt": "2026-03-27T15:27:30.746Z",
993
1002
  "keywords": [
994
1003
  "image-generation",
995
1004
  "ai-art",
@@ -1022,7 +1031,7 @@
1022
1031
  "namespace": "wunderland",
1023
1032
  "verified": true,
1024
1033
  "source": "curated",
1025
- "verifiedAt": "2026-03-27T10:16:24.338Z",
1034
+ "verifiedAt": "2026-03-27T15:27:30.746Z",
1026
1035
  "keywords": [
1027
1036
  "instagram",
1028
1037
  "social-media",
@@ -1060,7 +1069,7 @@
1060
1069
  "namespace": "wunderland",
1061
1070
  "verified": true,
1062
1071
  "source": "curated",
1063
- "verifiedAt": "2026-03-27T10:16:24.338Z",
1072
+ "verifiedAt": "2026-03-27T15:27:30.746Z",
1064
1073
  "keywords": [
1065
1074
  "linkedin",
1066
1075
  "social-media",
@@ -1098,7 +1107,7 @@
1098
1107
  "namespace": "wunderland",
1099
1108
  "verified": true,
1100
1109
  "source": "curated",
1101
- "verifiedAt": "2026-03-27T10:16:24.338Z",
1110
+ "verifiedAt": "2026-03-27T15:27:30.746Z",
1102
1111
  "keywords": [
1103
1112
  "mastodon",
1104
1113
  "fediverse",
@@ -1138,7 +1147,7 @@
1138
1147
  "namespace": "wunderland",
1139
1148
  "verified": true,
1140
1149
  "source": "curated",
1141
- "verifiedAt": "2026-03-27T10:16:24.338Z",
1150
+ "verifiedAt": "2026-03-27T15:27:30.746Z",
1142
1151
  "keywords": [
1143
1152
  "memory",
1144
1153
  "cognitive",
@@ -1162,7 +1171,7 @@
1162
1171
  "namespace": "wunderland",
1163
1172
  "verified": true,
1164
1173
  "source": "curated",
1165
- "verifiedAt": "2026-03-27T10:16:24.338Z",
1174
+ "verifiedAt": "2026-03-27T15:27:30.746Z",
1166
1175
  "keywords": [
1167
1176
  "guardrails",
1168
1177
  "safety",
@@ -1192,7 +1201,7 @@
1192
1201
  "namespace": "wunderland",
1193
1202
  "verified": true,
1194
1203
  "source": "curated",
1195
- "verifiedAt": "2026-03-27T10:16:24.338Z",
1204
+ "verifiedAt": "2026-03-27T15:27:30.746Z",
1196
1205
  "keywords": [
1197
1206
  "rag",
1198
1207
  "multimodal",
@@ -1222,7 +1231,7 @@
1222
1231
  "namespace": "wunderland",
1223
1232
  "verified": true,
1224
1233
  "source": "curated",
1225
- "verifiedAt": "2026-03-27T10:16:24.338Z",
1234
+ "verifiedAt": "2026-03-27T15:27:30.746Z",
1226
1235
  "keywords": [
1227
1236
  "notion",
1228
1237
  "wiki",
@@ -1251,7 +1260,7 @@
1251
1260
  "namespace": "wunderland",
1252
1261
  "verified": true,
1253
1262
  "source": "curated",
1254
- "verifiedAt": "2026-03-27T10:16:24.338Z",
1263
+ "verifiedAt": "2026-03-27T15:27:30.746Z",
1255
1264
  "keywords": [
1256
1265
  "obsidian",
1257
1266
  "markdown",
@@ -1279,7 +1288,7 @@
1279
1288
  "namespace": "wunderland",
1280
1289
  "verified": true,
1281
1290
  "source": "curated",
1282
- "verifiedAt": "2026-03-27T10:16:24.338Z",
1291
+ "verifiedAt": "2026-03-27T15:27:30.746Z",
1283
1292
  "keywords": [
1284
1293
  "voice",
1285
1294
  "wake-word",
@@ -1307,7 +1316,7 @@
1307
1316
  "namespace": "wunderland",
1308
1317
  "verified": true,
1309
1318
  "source": "curated",
1310
- "verifiedAt": "2026-03-27T10:16:24.338Z",
1319
+ "verifiedAt": "2026-03-27T15:27:30.746Z",
1311
1320
  "keywords": [
1312
1321
  "pii",
1313
1322
  "privacy",
@@ -1338,7 +1347,7 @@
1338
1347
  "namespace": "wunderland",
1339
1348
  "verified": true,
1340
1349
  "source": "curated",
1341
- "verifiedAt": "2026-03-27T10:16:24.338Z",
1350
+ "verifiedAt": "2026-03-27T15:27:30.746Z",
1342
1351
  "keywords": [
1343
1352
  "pinterest",
1344
1353
  "social-media",
@@ -1375,7 +1384,7 @@
1375
1384
  "namespace": "wunderland",
1376
1385
  "verified": true,
1377
1386
  "source": "curated",
1378
- "verifiedAt": "2026-03-27T10:16:24.338Z",
1387
+ "verifiedAt": "2026-03-27T15:27:30.746Z",
1379
1388
  "keywords": [
1380
1389
  "voice",
1381
1390
  "tts",
@@ -1402,7 +1411,7 @@
1402
1411
  "namespace": "wunderland",
1403
1412
  "verified": true,
1404
1413
  "source": "curated",
1405
- "verifiedAt": "2026-03-27T10:16:24.338Z",
1414
+ "verifiedAt": "2026-03-27T15:27:30.746Z",
1406
1415
  "keywords": [
1407
1416
  "voice",
1408
1417
  "wake-word",
@@ -1433,7 +1442,7 @@
1433
1442
  "namespace": "wunderland",
1434
1443
  "verified": true,
1435
1444
  "source": "curated",
1436
- "verifiedAt": "2026-03-27T10:16:24.338Z",
1445
+ "verifiedAt": "2026-03-27T15:27:30.746Z",
1437
1446
  "keywords": [
1438
1447
  "reddit",
1439
1448
  "social-media",
@@ -1474,7 +1483,7 @@
1474
1483
  "namespace": "wunderland",
1475
1484
  "verified": true,
1476
1485
  "source": "curated",
1477
- "verifiedAt": "2026-03-27T10:16:24.338Z",
1486
+ "verifiedAt": "2026-03-27T15:27:30.746Z",
1478
1487
  "keywords": [
1479
1488
  "seo",
1480
1489
  "link-building",
@@ -1509,7 +1518,7 @@
1509
1518
  "namespace": "wunderland",
1510
1519
  "verified": true,
1511
1520
  "source": "curated",
1512
- "verifiedAt": "2026-03-27T10:16:24.338Z",
1521
+ "verifiedAt": "2026-03-27T15:27:30.746Z",
1513
1522
  "keywords": [
1514
1523
  "deploy",
1515
1524
  "cloud",
@@ -1545,7 +1554,7 @@
1545
1554
  "namespace": "wunderland",
1546
1555
  "verified": true,
1547
1556
  "source": "curated",
1548
- "verifiedAt": "2026-03-27T10:16:24.338Z",
1557
+ "verifiedAt": "2026-03-27T15:27:30.746Z",
1549
1558
  "keywords": [
1550
1559
  "slack",
1551
1560
  "messaging",
@@ -1577,7 +1586,7 @@
1577
1586
  "namespace": "wunderland",
1578
1587
  "verified": true,
1579
1588
  "source": "curated",
1580
- "verifiedAt": "2026-03-27T10:16:24.338Z"
1589
+ "verifiedAt": "2026-03-27T15:27:30.746Z"
1581
1590
  },
1582
1591
  {
1583
1592
  "id": "com.framers.skill.spotify-player",
@@ -1590,7 +1599,7 @@
1590
1599
  "namespace": "wunderland",
1591
1600
  "verified": true,
1592
1601
  "source": "curated",
1593
- "verifiedAt": "2026-03-27T10:16:24.338Z",
1602
+ "verifiedAt": "2026-03-27T15:27:30.746Z",
1594
1603
  "keywords": [
1595
1604
  "spotify",
1596
1605
  "music",
@@ -1625,7 +1634,7 @@
1625
1634
  "namespace": "wunderland",
1626
1635
  "verified": true,
1627
1636
  "source": "curated",
1628
- "verifiedAt": "2026-03-27T10:16:24.338Z",
1637
+ "verifiedAt": "2026-03-27T15:27:30.746Z",
1629
1638
  "keywords": [
1630
1639
  "voice",
1631
1640
  "stt",
@@ -1655,7 +1664,7 @@
1655
1664
  "namespace": "wunderland",
1656
1665
  "verified": true,
1657
1666
  "source": "curated",
1658
- "verifiedAt": "2026-03-27T10:16:24.338Z",
1667
+ "verifiedAt": "2026-03-27T15:27:30.746Z",
1659
1668
  "keywords": [
1660
1669
  "voice",
1661
1670
  "stt",
@@ -1686,7 +1695,7 @@
1686
1695
  "namespace": "wunderland",
1687
1696
  "verified": true,
1688
1697
  "source": "curated",
1689
- "verifiedAt": "2026-03-27T10:16:24.338Z",
1698
+ "verifiedAt": "2026-03-27T15:27:30.746Z",
1690
1699
  "keywords": [
1691
1700
  "voice",
1692
1701
  "tts",
@@ -1716,7 +1725,7 @@
1716
1725
  "namespace": "wunderland",
1717
1726
  "verified": true,
1718
1727
  "source": "curated",
1719
- "verifiedAt": "2026-03-27T10:16:24.338Z",
1728
+ "verifiedAt": "2026-03-27T15:27:30.746Z",
1720
1729
  "keywords": [
1721
1730
  "voice",
1722
1731
  "tts",
@@ -1745,7 +1754,7 @@
1745
1754
  "namespace": "wunderland",
1746
1755
  "verified": true,
1747
1756
  "source": "curated",
1748
- "verifiedAt": "2026-03-27T10:16:24.338Z",
1757
+ "verifiedAt": "2026-03-27T15:27:30.746Z",
1749
1758
  "keywords": [
1750
1759
  "structured-output",
1751
1760
  "json",
@@ -1765,7 +1774,7 @@
1765
1774
  "namespace": "wunderland",
1766
1775
  "verified": true,
1767
1776
  "source": "curated",
1768
- "verifiedAt": "2026-03-27T10:16:24.338Z",
1777
+ "verifiedAt": "2026-03-27T15:27:30.746Z",
1769
1778
  "keywords": [
1770
1779
  "summarization",
1771
1780
  "text-processing",
@@ -1791,7 +1800,7 @@
1791
1800
  "namespace": "wunderland",
1792
1801
  "verified": true,
1793
1802
  "source": "curated",
1794
- "verifiedAt": "2026-03-27T10:16:24.338Z",
1803
+ "verifiedAt": "2026-03-27T15:27:30.746Z",
1795
1804
  "keywords": [
1796
1805
  "threads",
1797
1806
  "social-media",
@@ -1827,7 +1836,7 @@
1827
1836
  "namespace": "wunderland",
1828
1837
  "verified": true,
1829
1838
  "source": "curated",
1830
- "verifiedAt": "2026-03-27T10:16:24.338Z",
1839
+ "verifiedAt": "2026-03-27T15:27:30.746Z",
1831
1840
  "keywords": [
1832
1841
  "tiktok",
1833
1842
  "video",
@@ -1864,7 +1873,7 @@
1864
1873
  "namespace": "wunderland",
1865
1874
  "verified": true,
1866
1875
  "source": "curated",
1867
- "verifiedAt": "2026-03-27T10:16:24.338Z",
1876
+ "verifiedAt": "2026-03-27T15:27:30.746Z",
1868
1877
  "keywords": [
1869
1878
  "guardrails",
1870
1879
  "topics",
@@ -1891,7 +1900,7 @@
1891
1900
  "namespace": "wunderland",
1892
1901
  "verified": true,
1893
1902
  "source": "curated",
1894
- "verifiedAt": "2026-03-27T10:16:24.338Z",
1903
+ "verifiedAt": "2026-03-27T15:27:30.746Z",
1895
1904
  "keywords": [
1896
1905
  "trello",
1897
1906
  "kanban",
@@ -1924,7 +1933,7 @@
1924
1933
  "namespace": "wunderland",
1925
1934
  "verified": true,
1926
1935
  "source": "curated",
1927
- "verifiedAt": "2026-03-27T10:16:24.338Z",
1936
+ "verifiedAt": "2026-03-27T15:27:30.746Z",
1928
1937
  "keywords": [
1929
1938
  "twitter",
1930
1939
  "social-media",
@@ -1967,7 +1976,7 @@
1967
1976
  "namespace": "wunderland",
1968
1977
  "verified": true,
1969
1978
  "source": "curated",
1970
- "verifiedAt": "2026-03-27T10:16:24.338Z",
1979
+ "verifiedAt": "2026-03-27T15:27:30.746Z",
1971
1980
  "keywords": [
1972
1981
  "video",
1973
1982
  "generation",
@@ -1994,7 +2003,7 @@
1994
2003
  "namespace": "wunderland",
1995
2004
  "verified": true,
1996
2005
  "source": "curated",
1997
- "verifiedAt": "2026-03-27T10:16:24.338Z",
2006
+ "verifiedAt": "2026-03-27T15:27:30.746Z",
1998
2007
  "keywords": [
1999
2008
  "vision",
2000
2009
  "ocr",
@@ -2017,7 +2026,7 @@
2017
2026
  "namespace": "wunderland",
2018
2027
  "verified": true,
2019
2028
  "source": "curated",
2020
- "verifiedAt": "2026-03-27T10:16:24.338Z",
2029
+ "verifiedAt": "2026-03-27T15:27:30.746Z",
2021
2030
  "keywords": [
2022
2031
  "voice",
2023
2032
  "speech",
@@ -2044,7 +2053,7 @@
2044
2053
  "namespace": "wunderland",
2045
2054
  "verified": true,
2046
2055
  "source": "curated",
2047
- "verifiedAt": "2026-03-27T10:16:24.338Z",
2056
+ "verifiedAt": "2026-03-27T15:27:30.746Z",
2048
2057
  "keywords": [
2049
2058
  "voice",
2050
2059
  "stt",
@@ -2070,7 +2079,7 @@
2070
2079
  "namespace": "wunderland",
2071
2080
  "verified": true,
2072
2081
  "source": "curated",
2073
- "verifiedAt": "2026-03-27T10:16:24.338Z",
2082
+ "verifiedAt": "2026-03-27T15:27:30.746Z",
2074
2083
  "keywords": [
2075
2084
  "weather",
2076
2085
  "forecast",
@@ -2096,7 +2105,7 @@
2096
2105
  "namespace": "wunderland",
2097
2106
  "verified": true,
2098
2107
  "source": "curated",
2099
- "verifiedAt": "2026-03-27T10:16:24.338Z",
2108
+ "verifiedAt": "2026-03-27T15:27:30.746Z",
2100
2109
  "keywords": [
2101
2110
  "scraping",
2102
2111
  "browser",
@@ -2133,7 +2142,7 @@
2133
2142
  "namespace": "wunderland",
2134
2143
  "verified": true,
2135
2144
  "source": "curated",
2136
- "verifiedAt": "2026-03-27T10:16:24.338Z",
2145
+ "verifiedAt": "2026-03-27T15:27:30.746Z",
2137
2146
  "keywords": [
2138
2147
  "search",
2139
2148
  "web",
@@ -2160,7 +2169,7 @@
2160
2169
  "namespace": "wunderland",
2161
2170
  "verified": true,
2162
2171
  "source": "curated",
2163
- "verifiedAt": "2026-03-27T10:16:24.338Z",
2172
+ "verifiedAt": "2026-03-27T15:27:30.746Z",
2164
2173
  "keywords": [
2165
2174
  "transcription",
2166
2175
  "whisper",
@@ -2223,7 +2232,7 @@
2223
2232
  "namespace": "wunderland",
2224
2233
  "verified": true,
2225
2234
  "source": "curated",
2226
- "verifiedAt": "2026-03-27T10:16:24.338Z",
2235
+ "verifiedAt": "2026-03-27T15:27:30.746Z",
2227
2236
  "keywords": [
2228
2237
  "youtube",
2229
2238
  "video",