Skip to content

Commit 6ce477b

Browse files
authored
feat: use plugin test functions dynamically, delete old icons, update docs (#95)
* refactor: use plugin test functions dynamically and test old icons Replace hardcoded test logic with registry lookup; delete public/integrations/ * fix: add API key validation to testFirecrawl * chore: remove dependencies field from plugin template and docs * fix: add API key validation to testSuperagent * docs: add AGENTS.md for AI plugin development guidance * chore: add missing group field type to CONTRIBUTING.md --------- Co-authored-by: Ben Sabic <bensabic@users.noreply.github.com>
1 parent 003ae96 commit 6ce477b

File tree

9 files changed

+549
-331
lines changed

9 files changed

+549
-331
lines changed

CONTRIBUTING.md

Lines changed: 3 additions & 9 deletions
Original file line numberDiff line numberDiff line change
@@ -448,11 +448,6 @@ const myIntegrationPlugin: IntegrationPlugin = {
448448
},
449449
},
450450

451-
// NPM dependencies for code export
452-
dependencies: {
453-
"my-integration-sdk": "^1.0.0",
454-
},
455-
456451
// Actions provided by this integration
457452
actions: [
458453
{
@@ -494,9 +489,8 @@ export default myIntegrationPlugin;
494489
1. **Icon**: Direct component reference (not an object with type/value)
495490
2. **envVar**: Maps formField to environment variable (auto-generates credential mapping)
496491
3. **getTestFunction**: Lazy-loads test function to avoid bundling server code
497-
4. **dependencies**: NPM packages included when exporting workflows
498-
5. **slug**: Action identifier (full ID becomes `my-integration/send-message`)
499-
6. **configFields**: Declarative array defining UI fields (not React components)
492+
4. **slug**: Action identifier (full ID becomes `my-integration/send-message`)
493+
5. **configFields**: Declarative array defining UI fields (not React components)
500494

501495
**Supported configField types:**
502496
- `template-input`: Single-line input with `{{variable}}` support
@@ -505,6 +499,7 @@ export default myIntegrationPlugin;
505499
- `number`: Number input (with optional `min` property)
506500
- `select`: Dropdown (requires `options` array)
507501
- `schema-builder`: JSON schema builder for structured output
502+
- `group`: Groups related fields in a collapsible section
508503

509504
#### Step 7: Run Plugin Discovery
510505

@@ -571,7 +566,6 @@ See `plugins/firecrawl/` for a complete, production-ready example with:
571566
- Custom SVG icon
572567
- Multiple actions (Scrape, Search)
573568
- Declarative config fields
574-
- NPM dependencies for code export
575569
- Lazy-loaded test function
576570

577571
### Example 2: Using Lucide Icons

0 commit comments

Comments
 (0)