Skip to content

Commit 3e69324

Browse files
committed
πŸš€ SperaxOS Plugin Delivery β€” Now Live!
The official plugin ecosystem for SperaxOS is here. πŸ”Œ Discover, install, and manage plugins seamlessly ⚑ Instant deployment powered by Vercel 🌍 Multi-language support out of the box πŸ› οΈ Developer-friendly plugin architecture Welcome to the future of SperaxOS extensibility.
1 parent 170e019 commit 3e69324

File tree

268 files changed

+49019
-0
lines changed

Some content is hidden

Large Commits have some content hidden by default. Use the searchbox below for content that may be hidden.

268 files changed

+49019
-0
lines changed

β€Ž.editorconfigβ€Ž

Lines changed: 21 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,21 @@
1+
# EditorConfig helps maintain consistent coding styles
2+
# https://editorconfig.org
3+
4+
root = true
5+
6+
[*]
7+
charset = utf-8
8+
end_of_line = lf
9+
indent_size = 2
10+
indent_style = space
11+
insert_final_newline = true
12+
trim_trailing_whitespace = true
13+
14+
[*.md]
15+
trim_trailing_whitespace = false
16+
17+
[*.{json,yml,yaml}]
18+
indent_size = 2
19+
20+
[Makefile]
21+
indent_style = tab

β€Ž.env.exampleβ€Ž

Lines changed: 48 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,48 @@
1+
# Plugin Delivery Environment Variables
2+
# Copy this file to .env and fill in your values
3+
4+
# =============================================================================
5+
# REQUIRED - Core Configuration
6+
# =============================================================================
7+
8+
# Your plugin index base URL
9+
PLUGIN_INDEX_URL=https://plugin.delivery
10+
11+
# Gateway service URL
12+
GATEWAY_URL=https://gateway.plugin.delivery
13+
14+
# =============================================================================
15+
# OPTIONAL - API Keys for Built-in Plugins
16+
# =============================================================================
17+
18+
# CoinGecko API (optional - free tier works without key)
19+
# COINGECKO_API_KEY=your_api_key
20+
21+
# DexScreener API (optional)
22+
# DEXSCREENER_API_KEY=your_api_key
23+
24+
# =============================================================================
25+
# DEPLOYMENT - Vercel
26+
# =============================================================================
27+
28+
# Vercel deployment tokens (for CI/CD)
29+
# VERCEL_TOKEN=your_token
30+
# VERCEL_ORG_ID=your_org_id
31+
# VERCEL_PROJECT_ID=your_project_id
32+
33+
# =============================================================================
34+
# DEPLOYMENT - NPM Publishing
35+
# =============================================================================
36+
37+
# NPM token for publishing @sperax packages
38+
# NPM_TOKEN=your_npm_token
39+
40+
# =============================================================================
41+
# DEVELOPMENT
42+
# =============================================================================
43+
44+
# Enable debug logging
45+
# DEBUG=true
46+
47+
# Local development port
48+
# PORT=3000
Lines changed: 53 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,53 @@
1+
---
2+
name: Bug Report
3+
about: Report a bug or issue with a plugin
4+
title: '[Bug] '
5+
labels: bug
6+
assignees: ''
7+
---
8+
9+
## Bug Description
10+
11+
A clear and concise description of what the bug is.
12+
13+
## Plugin Information
14+
15+
- **Plugin Name**:
16+
- **Plugin Version**:
17+
- **SDK Version**:
18+
19+
## Environment
20+
21+
- **OS**: [e.g., macOS, Windows, Linux]
22+
- **Node.js Version**:
23+
- **pnpm Version**:
24+
- **Browser** (if applicable):
25+
26+
## Steps to Reproduce
27+
28+
1. Go to '...'
29+
2. Click on '....'
30+
3. Scroll down to '....'
31+
4. See error
32+
33+
## Expected Behavior
34+
35+
A clear and concise description of what you expected to happen.
36+
37+
## Actual Behavior
38+
39+
A clear and concise description of what actually happened.
40+
41+
## Screenshots
42+
43+
If applicable, add screenshots to help explain your problem.
44+
45+
## Console Logs
46+
47+
```
48+
Paste any relevant console logs here
49+
```
50+
51+
## Additional Context
52+
53+
Add any other context about the problem here.
Lines changed: 43 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,43 @@
1+
---
2+
name: Feature Request
3+
about: Suggest an idea or feature for the plugin ecosystem
4+
title: '[Feature] '
5+
labels: enhancement
6+
assignees: ''
7+
---
8+
9+
## Feature Summary
10+
11+
A clear and concise description of the feature you'd like.
12+
13+
## Problem Statement
14+
15+
Describe the problem this feature would solve. Ex. I'm always frustrated when [...]
16+
17+
## Proposed Solution
18+
19+
A clear and concise description of what you want to happen.
20+
21+
## Use Cases
22+
23+
Describe specific use cases where this feature would be beneficial:
24+
25+
1.
26+
2.
27+
3.
28+
29+
## Alternative Solutions
30+
31+
Describe any alternative solutions or features you've considered.
32+
33+
## Implementation Details (Optional)
34+
35+
If you have ideas on how this could be implemented, share them here:
36+
37+
- API changes:
38+
- New components:
39+
- Configuration options:
40+
41+
## Additional Context
42+
43+
Add any other context, mockups, or screenshots about the feature request here.
Lines changed: 67 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,67 @@
1+
---
2+
name: Plugin Submission
3+
about: Submit a new plugin to be added to the index
4+
title: '[Plugin] '
5+
labels: plugin-submission
6+
assignees: ''
7+
---
8+
9+
## Plugin Information
10+
11+
- **Plugin Name**:
12+
- **Author/Organization**:
13+
- **Repository URL**:
14+
- **Plugin Manifest URL**:
15+
16+
## Plugin Type
17+
18+
Select the type of plugin:
19+
- [ ] Default (API-based with optional UI)
20+
- [ ] Standalone (Full UI in iframe)
21+
- [ ] Markdown (Returns markdown content)
22+
- [ ] OpenAPI (OpenAPI specification-based)
23+
24+
## Description
25+
26+
Provide a brief description of what your plugin does.
27+
28+
## Features
29+
30+
List the main features of your plugin:
31+
32+
1.
33+
2.
34+
3.
35+
36+
## API Endpoints
37+
38+
List the API endpoints your plugin provides:
39+
40+
| Method | Endpoint | Description |
41+
|--------|----------|-------------|
42+
| GET | /api/... | ... |
43+
| POST | /api/... | ... |
44+
45+
## Settings/Configuration
46+
47+
List any settings or configuration options your plugin requires:
48+
49+
| Setting | Type | Required | Description |
50+
|---------|------|----------|-------------|
51+
| apiKey | string | Yes | ... |
52+
53+
## Screenshots (Optional)
54+
55+
Add screenshots showing your plugin in action.
56+
57+
## Testing
58+
59+
- [ ] I have tested my plugin locally
60+
- [ ] My plugin manifest is valid JSON
61+
- [ ] My plugin follows the [Plugin Development Guide](../docs/PLUGIN_DEVELOPMENT_GUIDE.md)
62+
- [ ] My plugin has proper error handling
63+
- [ ] My plugin includes proper documentation
64+
65+
## Additional Notes
66+
67+
Add any other notes or context about your plugin here.
Lines changed: 48 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,48 @@
1+
## Description
2+
3+
Brief description of the changes in this PR.
4+
5+
## Type of Change
6+
7+
- [ ] Bug fix (non-breaking change which fixes an issue)
8+
- [ ] New feature (non-breaking change which adds functionality)
9+
- [ ] Breaking change (fix or feature that would cause existing functionality to not work as expected)
10+
- [ ] New plugin submission
11+
- [ ] Documentation update
12+
- [ ] Refactoring (no functional changes)
13+
- [ ] CI/CD changes
14+
15+
## Related Issues
16+
17+
Fixes #(issue number)
18+
19+
## Changes Made
20+
21+
- Change 1
22+
- Change 2
23+
- Change 3
24+
25+
## Testing
26+
27+
Describe the tests you ran to verify your changes:
28+
29+
- [ ] Unit tests pass
30+
- [ ] Integration tests pass
31+
- [ ] Manual testing completed
32+
33+
## Screenshots (if applicable)
34+
35+
Add screenshots to help explain your changes.
36+
37+
## Checklist
38+
39+
- [ ] My code follows the project's style guidelines
40+
- [ ] I have performed a self-review of my code
41+
- [ ] I have commented my code where necessary
42+
- [ ] I have made corresponding changes to the documentation
43+
- [ ] My changes generate no new warnings
44+
- [ ] Any dependent changes have been merged and published
45+
46+
## Additional Notes
47+
48+
Add any additional notes for reviewers here.

β€Ž.github/workflows/deploy.ymlβ€Ž

Lines changed: 47 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,47 @@
1+
name: Deploy
2+
3+
on:
4+
push:
5+
branches: [main]
6+
workflow_dispatch:
7+
8+
env:
9+
VERCEL_ORG_ID: ${{ secrets.VERCEL_ORG_ID }}
10+
VERCEL_PROJECT_ID: ${{ secrets.VERCEL_PROJECT_ID }}
11+
12+
jobs:
13+
deploy:
14+
runs-on: ubuntu-latest
15+
16+
steps:
17+
- name: Checkout repository
18+
uses: actions/checkout@v4
19+
20+
- name: Setup pnpm
21+
uses: pnpm/action-setup@v2
22+
with:
23+
version: 8
24+
25+
- name: Setup Node.js
26+
uses: actions/setup-node@v4
27+
with:
28+
node-version: '20'
29+
cache: 'pnpm'
30+
31+
- name: Install dependencies
32+
run: pnpm install --frozen-lockfile
33+
34+
- name: Build
35+
run: pnpm build
36+
37+
- name: Install Vercel CLI
38+
run: npm install --global vercel@latest
39+
40+
- name: Pull Vercel Environment Information
41+
run: vercel pull --yes --environment=production --token=${{ secrets.VERCEL_TOKEN }}
42+
43+
- name: Build Project Artifacts
44+
run: vercel build --prod --token=${{ secrets.VERCEL_TOKEN }}
45+
46+
- name: Deploy Project Artifacts to Vercel
47+
run: vercel deploy --prebuilt --prod --token=${{ secrets.VERCEL_TOKEN }}
Lines changed: 57 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,57 @@
1+
name: Release
2+
3+
on:
4+
push:
5+
tags:
6+
- 'v*'
7+
8+
permissions:
9+
contents: write
10+
packages: write
11+
12+
jobs:
13+
release:
14+
runs-on: ubuntu-latest
15+
16+
steps:
17+
- name: Checkout repository
18+
uses: actions/checkout@v4
19+
with:
20+
fetch-depth: 0
21+
22+
- name: Setup pnpm
23+
uses: pnpm/action-setup@v2
24+
with:
25+
version: 8
26+
27+
- name: Setup Node.js
28+
uses: actions/setup-node@v4
29+
with:
30+
node-version: '20'
31+
registry-url: 'https://registry.npmjs.org'
32+
cache: 'pnpm'
33+
34+
- name: Install dependencies
35+
run: pnpm install --frozen-lockfile
36+
37+
- name: Build packages
38+
run: pnpm build
39+
40+
- name: Publish SDK to NPM
41+
working-directory: packages/sdk
42+
run: pnpm publish --access public --no-git-checks
43+
env:
44+
NODE_AUTH_TOKEN: ${{ secrets.NPM_TOKEN }}
45+
46+
- name: Publish Gateway to NPM
47+
working-directory: packages/gateway
48+
run: pnpm publish --access public --no-git-checks
49+
env:
50+
NODE_AUTH_TOKEN: ${{ secrets.NPM_TOKEN }}
51+
52+
- name: Create GitHub Release
53+
uses: softprops/action-gh-release@v1
54+
with:
55+
generate_release_notes: true
56+
env:
57+
GITHUB_TOKEN: ${{ secrets.GITHUB_TOKEN }}

0 commit comments

Comments
Β (0)