@praveencs/agent 0.9.30 → 0.10.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/README.md +55 -9
- package/ROADMAP.md +42 -50
- package/agent-skills/README.md +192 -0
- package/agent-skills/plugins/aws/plugin.json +22 -0
- package/agent-skills/plugins/aws/skills/aws-manager.md +17 -0
- package/agent-skills/plugins/aws/tools/aws.js +152 -0
- package/agent-skills/plugins/discord/plugin.json +22 -0
- package/agent-skills/plugins/discord/skills/discord-manager.md +15 -0
- package/agent-skills/plugins/discord/tools/discord.js +150 -0
- package/agent-skills/plugins/docker/plugin.json +21 -0
- package/agent-skills/plugins/docker/skills/docker-manager.md +15 -0
- package/agent-skills/plugins/docker/tools/docker.js +135 -0
- package/agent-skills/plugins/firebase/plugin.json +22 -0
- package/agent-skills/plugins/firebase/skills/firebase-manager.md +14 -0
- package/agent-skills/plugins/firebase/tools/firebase.js +157 -0
- package/agent-skills/plugins/github/plugin.json +23 -0
- package/agent-skills/plugins/github/skills/github-manager.md +15 -0
- package/agent-skills/plugins/github/tools/github.js +133 -0
- package/agent-skills/plugins/huggingface/plugin.json +22 -0
- package/agent-skills/plugins/huggingface/skills/huggingface-manager.md +16 -0
- package/agent-skills/plugins/huggingface/tools/huggingface.js +149 -0
- package/agent-skills/plugins/linear/plugin.json +22 -0
- package/agent-skills/plugins/linear/skills/linear-manager.md +16 -0
- package/agent-skills/plugins/linear/tools/linear.js +199 -0
- package/agent-skills/plugins/mongodb/plugin.json +21 -0
- package/agent-skills/plugins/mongodb/skills/mongodb-manager.md +14 -0
- package/agent-skills/plugins/mongodb/tools/mongodb.js +123 -0
- package/agent-skills/plugins/notion/plugin.json +22 -0
- package/agent-skills/plugins/notion/skills/notion-manager.md +16 -0
- package/agent-skills/plugins/notion/tools/notion.js +158 -0
- package/agent-skills/plugins/openai/plugin.json +23 -0
- package/agent-skills/plugins/openai/skills/openai-manager.md +15 -0
- package/agent-skills/plugins/openai/tools/openai.js +137 -0
- package/agent-skills/plugins/resend/plugin.json +21 -0
- package/agent-skills/plugins/resend/skills/resend-manager.md +15 -0
- package/agent-skills/plugins/resend/tools/resend.js +102 -0
- package/agent-skills/plugins/slack/plugin.json +22 -0
- package/agent-skills/plugins/slack/skills/slack-manager.md +15 -0
- package/agent-skills/plugins/slack/tools/slack.js +168 -0
- package/agent-skills/plugins/stripe/plugin.json +22 -0
- package/agent-skills/plugins/stripe/skills/stripe-manager.md +16 -0
- package/agent-skills/plugins/stripe/tools/stripe.js +174 -0
- package/agent-skills/plugins/supabase/plugin.json +22 -0
- package/agent-skills/plugins/supabase/skills/supabase-manager.md +16 -0
- package/agent-skills/plugins/supabase/tools/supabase.js +153 -0
- package/agent-skills/plugins/telegram/plugin.json +21 -0
- package/agent-skills/plugins/telegram/skills/telegram-manager.md +14 -0
- package/agent-skills/plugins/telegram/tools/telegram.js +131 -0
- package/agent-skills/plugins/vercel/plugin.json +22 -0
- package/agent-skills/plugins/vercel/skills/vercel-manager.md +15 -0
- package/agent-skills/plugins/vercel/tools/vercel.js +145 -0
- package/agent-skills/registry.json +675 -0
- package/agent-skills/skills/api-tester/prompt.md +27 -0
- package/agent-skills/skills/api-tester/skill.json +16 -0
- package/agent-skills/skills/backup/prompt.md +12 -0
- package/agent-skills/skills/backup/skill.json +1 -0
- package/agent-skills/skills/code-review/prompt.md +29 -0
- package/agent-skills/skills/code-review/skill.json +18 -0
- package/agent-skills/skills/create-note/prompt.md +21 -0
- package/agent-skills/skills/create-note/skill.json +15 -0
- package/agent-skills/skills/cron-scheduler/prompt.md +25 -0
- package/agent-skills/skills/cron-scheduler/skill.json +1 -0
- package/agent-skills/skills/db-query/prompt.md +12 -0
- package/agent-skills/skills/db-query/skill.json +1 -0
- package/agent-skills/skills/docker-deploy/prompt.md +21 -0
- package/agent-skills/skills/docker-deploy/skill.json +16 -0
- package/agent-skills/skills/file-organizer/prompt.md +32 -0
- package/agent-skills/skills/file-organizer/skill.json +19 -0
- package/agent-skills/skills/git-commit/prompt.md +21 -0
- package/agent-skills/skills/git-commit/skill.json +17 -0
- package/agent-skills/skills/log-analyzer/prompt.md +16 -0
- package/agent-skills/skills/log-analyzer/skill.json +1 -0
- package/agent-skills/skills/npm-publish/prompt.md +24 -0
- package/agent-skills/skills/npm-publish/skill.json +20 -0
- package/agent-skills/skills/open-vscode/prompt.md +8 -0
- package/agent-skills/skills/open-vscode/skill.json +15 -0
- package/agent-skills/skills/project-scaffold/prompt.md +43 -0
- package/agent-skills/skills/project-scaffold/skill.json +17 -0
- package/agent-skills/skills/send-email/prompt.md +19 -0
- package/agent-skills/skills/send-email/send.js +60 -0
- package/agent-skills/skills/send-email/skill.json +16 -0
- package/agent-skills/skills/system-monitor/prompt.md +27 -0
- package/agent-skills/skills/system-monitor/skill.json +15 -0
- package/agent-skills/skills/web-search/prompt.md +26 -0
- package/agent-skills/skills/web-search/skill.json +16 -0
- package/dist/src/cli/commands/desktop.d.ts +3 -0
- package/dist/src/cli/commands/desktop.d.ts.map +1 -0
- package/dist/src/cli/commands/desktop.js +80 -0
- package/dist/src/cli/commands/desktop.js.map +1 -0
- package/dist/src/cli/commands/multimodal.d.ts +3 -0
- package/dist/src/cli/commands/multimodal.d.ts.map +1 -0
- package/dist/src/cli/commands/multimodal.js +78 -0
- package/dist/src/cli/commands/multimodal.js.map +1 -0
- package/dist/src/cli/commands/sandbox.d.ts +3 -0
- package/dist/src/cli/commands/sandbox.d.ts.map +1 -0
- package/dist/src/cli/commands/sandbox.js +89 -0
- package/dist/src/cli/commands/sandbox.js.map +1 -0
- package/dist/src/cli/commands/swarm.d.ts +3 -0
- package/dist/src/cli/commands/swarm.d.ts.map +1 -0
- package/dist/src/cli/commands/swarm.js +120 -0
- package/dist/src/cli/commands/swarm.js.map +1 -0
- package/dist/src/cli/index.d.ts.map +1 -1
- package/dist/src/cli/index.js +8 -0
- package/dist/src/cli/index.js.map +1 -1
- package/dist/src/config/defaults.d.ts.map +1 -1
- package/dist/src/config/defaults.js +42 -0
- package/dist/src/config/defaults.js.map +1 -1
- package/dist/src/config/schema.d.ts +261 -0
- package/dist/src/config/schema.d.ts.map +1 -1
- package/dist/src/config/schema.js +58 -0
- package/dist/src/config/schema.js.map +1 -1
- package/dist/src/desktop/engine.d.ts +42 -0
- package/dist/src/desktop/engine.d.ts.map +1 -0
- package/dist/src/desktop/engine.js +77 -0
- package/dist/src/desktop/engine.js.map +1 -0
- package/dist/src/desktop/index.d.ts +6 -0
- package/dist/src/desktop/index.d.ts.map +1 -0
- package/dist/src/desktop/index.js +6 -0
- package/dist/src/desktop/index.js.map +1 -0
- package/dist/src/desktop/input.d.ts +20 -0
- package/dist/src/desktop/input.d.ts.map +1 -0
- package/dist/src/desktop/input.js +160 -0
- package/dist/src/desktop/input.js.map +1 -0
- package/dist/src/desktop/screen.d.ts +17 -0
- package/dist/src/desktop/screen.d.ts.map +1 -0
- package/dist/src/desktop/screen.js +120 -0
- package/dist/src/desktop/screen.js.map +1 -0
- package/dist/src/desktop/types.d.ts +50 -0
- package/dist/src/desktop/types.d.ts.map +1 -0
- package/dist/src/desktop/types.js +10 -0
- package/dist/src/desktop/types.js.map +1 -0
- package/dist/src/multimodal/engine.d.ts +33 -0
- package/dist/src/multimodal/engine.d.ts.map +1 -0
- package/dist/src/multimodal/engine.js +63 -0
- package/dist/src/multimodal/engine.js.map +1 -0
- package/dist/src/multimodal/index.d.ts +7 -0
- package/dist/src/multimodal/index.d.ts.map +1 -0
- package/dist/src/multimodal/index.js +7 -0
- package/dist/src/multimodal/index.js.map +1 -0
- package/dist/src/multimodal/tts.d.ts +11 -0
- package/dist/src/multimodal/tts.d.ts.map +1 -0
- package/dist/src/multimodal/tts.js +48 -0
- package/dist/src/multimodal/tts.js.map +1 -0
- package/dist/src/multimodal/types.d.ts +55 -0
- package/dist/src/multimodal/types.d.ts.map +1 -0
- package/dist/src/multimodal/types.js +20 -0
- package/dist/src/multimodal/types.js.map +1 -0
- package/dist/src/multimodal/vision.d.ts +15 -0
- package/dist/src/multimodal/vision.d.ts.map +1 -0
- package/dist/src/multimodal/vision.js +98 -0
- package/dist/src/multimodal/vision.js.map +1 -0
- package/dist/src/multimodal/voice.d.ts +11 -0
- package/dist/src/multimodal/voice.d.ts.map +1 -0
- package/dist/src/multimodal/voice.js +43 -0
- package/dist/src/multimodal/voice.js.map +1 -0
- package/dist/src/plans/types.d.ts +18 -18
- package/dist/src/sandbox/docker.d.ts +42 -0
- package/dist/src/sandbox/docker.d.ts.map +1 -0
- package/dist/src/sandbox/docker.js +131 -0
- package/dist/src/sandbox/docker.js.map +1 -0
- package/dist/src/sandbox/engine.d.ts +50 -0
- package/dist/src/sandbox/engine.d.ts.map +1 -0
- package/dist/src/sandbox/engine.js +133 -0
- package/dist/src/sandbox/engine.js.map +1 -0
- package/dist/src/sandbox/index.d.ts +5 -0
- package/dist/src/sandbox/index.d.ts.map +1 -0
- package/dist/src/sandbox/index.js +5 -0
- package/dist/src/sandbox/index.js.map +1 -0
- package/dist/src/sandbox/types.d.ts +41 -0
- package/dist/src/sandbox/types.d.ts.map +1 -0
- package/dist/src/sandbox/types.js +12 -0
- package/dist/src/sandbox/types.js.map +1 -0
- package/dist/src/scripts/types.d.ts +2 -2
- package/dist/src/server/app.d.ts.map +1 -1
- package/dist/src/server/app.js +133 -0
- package/dist/src/server/app.js.map +1 -1
- package/dist/src/swarm/bus.d.ts +27 -0
- package/dist/src/swarm/bus.d.ts.map +1 -0
- package/dist/src/swarm/bus.js +64 -0
- package/dist/src/swarm/bus.js.map +1 -0
- package/dist/src/swarm/index.d.ts +6 -0
- package/dist/src/swarm/index.d.ts.map +1 -0
- package/dist/src/swarm/index.js +6 -0
- package/dist/src/swarm/index.js.map +1 -0
- package/dist/src/swarm/orchestrator.d.ts +79 -0
- package/dist/src/swarm/orchestrator.d.ts.map +1 -0
- package/dist/src/swarm/orchestrator.js +271 -0
- package/dist/src/swarm/orchestrator.js.map +1 -0
- package/dist/src/swarm/roles.d.ts +18 -0
- package/dist/src/swarm/roles.d.ts.map +1 -0
- package/dist/src/swarm/roles.js +83 -0
- package/dist/src/swarm/roles.js.map +1 -0
- package/dist/src/swarm/types.d.ts +58 -0
- package/dist/src/swarm/types.d.ts.map +1 -0
- package/dist/src/swarm/types.js +10 -0
- package/dist/src/swarm/types.js.map +1 -0
- package/dist/src/tools/core/cmd.d.ts.map +1 -1
- package/dist/src/tools/core/cmd.js +28 -0
- package/dist/src/tools/core/cmd.js.map +1 -1
- package/docs/DOCUMENTATION.md +137 -0
- package/package.json +3 -1
- package/studio/README.md +73 -0
- package/studio/eslint.config.js +23 -0
- package/studio/index.html +13 -0
- package/studio/package-lock.json +4350 -0
- package/studio/package.json +44 -0
- package/studio/postcss.config.js +6 -0
- package/studio/public/vite.svg +1 -0
- package/studio/src/App.tsx +243 -0
- package/studio/src/assets/react.svg +1 -0
- package/studio/src/components/Capabilities.tsx +80 -0
- package/studio/src/components/CommandsManager.tsx +94 -0
- package/studio/src/components/CostDashboard.tsx +182 -0
- package/studio/src/components/CredentialCapture.tsx +196 -0
- package/studio/src/components/CredentialsManager.tsx +257 -0
- package/studio/src/components/DaemonPanel.tsx +91 -0
- package/studio/src/components/DesktopPanel.tsx +118 -0
- package/studio/src/components/GoalTemplates.tsx +190 -0
- package/studio/src/components/GoalsPanel.tsx +235 -0
- package/studio/src/components/MemoryExplorer.tsx +152 -0
- package/studio/src/components/MultimodalPanel.tsx +150 -0
- package/studio/src/components/NotificationsPanel.tsx +175 -0
- package/studio/src/components/PluginsManager.tsx +60 -0
- package/studio/src/components/SandboxPanel.tsx +118 -0
- package/studio/src/components/ScriptsManager.tsx +269 -0
- package/studio/src/components/SkillsManager.tsx +123 -0
- package/studio/src/components/SwarmPanel.tsx +149 -0
- package/studio/src/components/TaskStreaming.tsx +189 -0
- package/studio/src/components/Terminal.tsx +200 -0
- package/studio/src/index.css +51 -0
- package/studio/src/main.tsx +13 -0
- package/studio/tailwind.config.js +47 -0
- package/studio/tsconfig.app.json +28 -0
- package/studio/tsconfig.json +7 -0
- package/studio/tsconfig.node.json +26 -0
- package/studio/vite.config.ts +7 -0
|
@@ -0,0 +1,16 @@
|
|
|
1
|
+
{
|
|
2
|
+
"name": "api-tester",
|
|
3
|
+
"version": "1.0.0",
|
|
4
|
+
"description": "Test REST APIs with curl — GET, POST, PUT, DELETE with auth and headers",
|
|
5
|
+
"tools": [
|
|
6
|
+
"cmd.run"
|
|
7
|
+
],
|
|
8
|
+
"permissions": {
|
|
9
|
+
"required": [
|
|
10
|
+
"exec",
|
|
11
|
+
"network"
|
|
12
|
+
]
|
|
13
|
+
},
|
|
14
|
+
"entrypoint": "prompt.md",
|
|
15
|
+
"state": "approved"
|
|
16
|
+
}
|
|
@@ -0,0 +1,12 @@
|
|
|
1
|
+
Backup files and directories.
|
|
2
|
+
|
|
3
|
+
## Methods
|
|
4
|
+
- **tar.gz**: `tar -czf backup-$(date +%Y%m%d).tar.gz <source>`
|
|
5
|
+
- **zip**: `zip -r backup-$(date +%Y%m%d).zip <source>`
|
|
6
|
+
- **rsync**: `rsync -avz <source> <destination>`
|
|
7
|
+
|
|
8
|
+
## Best Practices
|
|
9
|
+
1. Include date in backup filename
|
|
10
|
+
2. Exclude node_modules, .git, and other large directories
|
|
11
|
+
3. Show backup size after completion
|
|
12
|
+
4. Verify backup integrity: `tar -tzf backup.tar.gz | head`
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"name":"backup","version":"1.0.0","description":"Backup files and directories using tar, rsync, or zip","tools":["cmd.run"],"permissions":{"required":["exec","filesystem.read"]},"entrypoint":"prompt.md","state":"approved"}
|
|
@@ -0,0 +1,29 @@
|
|
|
1
|
+
Review code for quality, bugs, security, and best practices.
|
|
2
|
+
|
|
3
|
+
## Steps
|
|
4
|
+
1. Get the diff using `git.diff` or `git diff HEAD~1`
|
|
5
|
+
2. Analyze each changed file for:
|
|
6
|
+
- **Bugs**: Logic errors, null references, off-by-one errors
|
|
7
|
+
- **Security**: SQL injection, XSS, hardcoded secrets, insecure deserialization
|
|
8
|
+
- **Performance**: N+1 queries, unnecessary loops, memory leaks
|
|
9
|
+
- **Style**: Naming conventions, code duplication, complexity
|
|
10
|
+
- **Best Practices**: Error handling, logging, input validation
|
|
11
|
+
|
|
12
|
+
## Output Format
|
|
13
|
+
```
|
|
14
|
+
📝 Code Review Summary
|
|
15
|
+
━━━━━━━━━━━━━━━━━━━━━
|
|
16
|
+
Files Changed: 5
|
|
17
|
+
Issues Found: 3
|
|
18
|
+
|
|
19
|
+
🔴 Critical:
|
|
20
|
+
src/auth.ts:42 — API key hardcoded in source code
|
|
21
|
+
|
|
22
|
+
🟡 Warning:
|
|
23
|
+
src/utils.ts:18 — Missing error handling in async function
|
|
24
|
+
|
|
25
|
+
🟢 Suggestion:
|
|
26
|
+
src/index.ts:5 — Consider using destructuring assignment
|
|
27
|
+
|
|
28
|
+
Overall: ⚠️ Needs attention before merge
|
|
29
|
+
```
|
|
@@ -0,0 +1,18 @@
|
|
|
1
|
+
{
|
|
2
|
+
"name": "code-review",
|
|
3
|
+
"version": "1.0.0",
|
|
4
|
+
"description": "Review code changes for bugs, best practices, and security issues",
|
|
5
|
+
"tools": [
|
|
6
|
+
"cmd.run",
|
|
7
|
+
"git.diff",
|
|
8
|
+
"fs.read"
|
|
9
|
+
],
|
|
10
|
+
"permissions": {
|
|
11
|
+
"required": [
|
|
12
|
+
"exec",
|
|
13
|
+
"filesystem.read"
|
|
14
|
+
]
|
|
15
|
+
},
|
|
16
|
+
"entrypoint": "prompt.md",
|
|
17
|
+
"state": "approved"
|
|
18
|
+
}
|
|
@@ -0,0 +1,21 @@
|
|
|
1
|
+
Create formatted notes and save them as files.
|
|
2
|
+
|
|
3
|
+
## Behavior
|
|
4
|
+
1. Parse the user's request to extract the note topic and content
|
|
5
|
+
2. Format the note with proper markdown structure:
|
|
6
|
+
- Title as H1 heading
|
|
7
|
+
- Date/time stamp
|
|
8
|
+
- Organized sections with headers
|
|
9
|
+
- Bullet points for lists
|
|
10
|
+
3. Save using `fs.write` to a `.md` file
|
|
11
|
+
|
|
12
|
+
## Naming Convention
|
|
13
|
+
- Use kebab-case: `my-note-topic.md`
|
|
14
|
+
- Save in current directory or a `notes/` folder if it exists
|
|
15
|
+
- Add timestamp prefix if user requests: `2024-01-15-my-note.md`
|
|
16
|
+
|
|
17
|
+
## Formatting
|
|
18
|
+
- Always include a title
|
|
19
|
+
- Add a date created line
|
|
20
|
+
- Use proper markdown formatting
|
|
21
|
+
- Include tags at the bottom if relevant: `Tags: #topic1 #topic2`
|
|
@@ -0,0 +1,15 @@
|
|
|
1
|
+
{
|
|
2
|
+
"name": "create-note",
|
|
3
|
+
"version": "1.0.0",
|
|
4
|
+
"description": "Creates formatted notes and saves them as markdown files",
|
|
5
|
+
"tools": [
|
|
6
|
+
"fs.write"
|
|
7
|
+
],
|
|
8
|
+
"permissions": {
|
|
9
|
+
"required": [
|
|
10
|
+
"filesystem.write"
|
|
11
|
+
]
|
|
12
|
+
},
|
|
13
|
+
"entrypoint": "prompt.md",
|
|
14
|
+
"state": "approved"
|
|
15
|
+
}
|
|
@@ -0,0 +1,25 @@
|
|
|
1
|
+
Manage cron jobs for scheduling tasks.
|
|
2
|
+
|
|
3
|
+
## Commands
|
|
4
|
+
- **List**: `crontab -l`
|
|
5
|
+
- **Edit**: `crontab -e`
|
|
6
|
+
- **Add job**: `(crontab -l 2>/dev/null; echo "<schedule> <command>") | crontab -`
|
|
7
|
+
- **Remove all**: `crontab -r` (⚠️ dangerous, ask first)
|
|
8
|
+
|
|
9
|
+
## Cron Format
|
|
10
|
+
```
|
|
11
|
+
┌─── minute (0-59)
|
|
12
|
+
│ ┌─── hour (0-23)
|
|
13
|
+
│ │ ┌─── day of month (1-31)
|
|
14
|
+
│ │ │ ┌─── month (1-12)
|
|
15
|
+
│ │ │ │ ┌─── day of week (0-7, Sun=0/7)
|
|
16
|
+
│ │ │ │ │
|
|
17
|
+
* * * * * command
|
|
18
|
+
```
|
|
19
|
+
|
|
20
|
+
## Common Schedules
|
|
21
|
+
- Every minute: `* * * * *`
|
|
22
|
+
- Every hour: `0 * * * *`
|
|
23
|
+
- Daily at midnight: `0 0 * * *`
|
|
24
|
+
- Every Monday 9am: `0 9 * * 1`
|
|
25
|
+
- Every 5 minutes: `*/5 * * * *`
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"name":"cron-scheduler","version":"1.0.0","description":"Manage cron jobs — create, list, edit, and delete scheduled tasks","tools":["cmd.run"],"permissions":{"required":["exec"]},"entrypoint":"prompt.md","state":"approved"}
|
|
@@ -0,0 +1,12 @@
|
|
|
1
|
+
Query databases using CLI tools.
|
|
2
|
+
|
|
3
|
+
## Supported Databases
|
|
4
|
+
- **SQLite**: `sqlite3 <db> "<query>"`
|
|
5
|
+
- **PostgreSQL**: `psql -h <host> -U <user> -d <db> -c "<query>"`
|
|
6
|
+
- **MySQL**: `mysql -h <host> -u <user> -p<pass> -e "<query>" <db>`
|
|
7
|
+
|
|
8
|
+
## Safety
|
|
9
|
+
- NEVER execute DROP, DELETE, or TRUNCATE without explicit user confirmation
|
|
10
|
+
- Use SELECT queries by default
|
|
11
|
+
- Always LIMIT results: `SELECT * FROM table LIMIT 20`
|
|
12
|
+
- Show table schema first: `.schema` (SQLite) or `\d table` (PostgreSQL)
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"name":"db-query","version":"1.0.0","description":"Query databases — SQLite, PostgreSQL, MySQL via CLI tools","tools":["cmd.run"],"permissions":{"required":["exec"]},"entrypoint":"prompt.md","state":"approved"}
|
|
@@ -0,0 +1,21 @@
|
|
|
1
|
+
Build and deploy Docker containers.
|
|
2
|
+
|
|
3
|
+
## Commands
|
|
4
|
+
- **Build**: `docker build -t <name> .`
|
|
5
|
+
- **Run**: `docker run -d -p <host>:<container> <name>`
|
|
6
|
+
- **Stop**: `docker stop <container-id>`
|
|
7
|
+
- **List**: `docker ps -a`
|
|
8
|
+
- **Logs**: `docker logs <container-id>`
|
|
9
|
+
- **Clean**: `docker system prune -f`
|
|
10
|
+
|
|
11
|
+
## Docker Compose
|
|
12
|
+
- **Start**: `docker-compose up -d`
|
|
13
|
+
- **Stop**: `docker-compose down`
|
|
14
|
+
- **Rebuild**: `docker-compose up -d --build`
|
|
15
|
+
|
|
16
|
+
## Best Practices
|
|
17
|
+
1. Always check if Docker is installed first: `docker --version`
|
|
18
|
+
2. Check if a Dockerfile exists before building
|
|
19
|
+
3. Use meaningful tag names: `<project>:<version>`
|
|
20
|
+
4. Show container logs after starting to verify it's running
|
|
21
|
+
5. Ask user for port mappings if not specified
|
|
@@ -0,0 +1,16 @@
|
|
|
1
|
+
{
|
|
2
|
+
"name": "docker-deploy",
|
|
3
|
+
"version": "1.0.0",
|
|
4
|
+
"description": "Builds and deploys Docker containers from Dockerfiles",
|
|
5
|
+
"tools": [
|
|
6
|
+
"cmd.run"
|
|
7
|
+
],
|
|
8
|
+
"permissions": {
|
|
9
|
+
"required": [
|
|
10
|
+
"exec",
|
|
11
|
+
"network"
|
|
12
|
+
]
|
|
13
|
+
},
|
|
14
|
+
"entrypoint": "prompt.md",
|
|
15
|
+
"state": "approved"
|
|
16
|
+
}
|
|
@@ -0,0 +1,32 @@
|
|
|
1
|
+
Organize files in a directory by type, date, or custom rules.
|
|
2
|
+
|
|
3
|
+
## Strategies
|
|
4
|
+
### By File Type
|
|
5
|
+
```
|
|
6
|
+
Documents/ → .pdf, .doc, .docx, .txt, .md
|
|
7
|
+
Images/ → .jpg, .jpeg, .png, .gif, .svg, .webp
|
|
8
|
+
Videos/ → .mp4, .avi, .mkv, .mov
|
|
9
|
+
Audio/ → .mp3, .wav, .flac, .aac
|
|
10
|
+
Code/ → .js, .ts, .py, .go, .rs, .java
|
|
11
|
+
Archives/ → .zip, .tar, .gz, .rar, .7z
|
|
12
|
+
Other/ → everything else
|
|
13
|
+
```
|
|
14
|
+
|
|
15
|
+
### By Date
|
|
16
|
+
Organize into `YYYY/MM/` folders based on file modification date.
|
|
17
|
+
|
|
18
|
+
### By Project
|
|
19
|
+
Group related files by detecting common prefixes or naming patterns.
|
|
20
|
+
|
|
21
|
+
## Steps
|
|
22
|
+
1. List all files in the target directory using `cmd.run` with `ls -la`
|
|
23
|
+
2. Analyze file extensions and names
|
|
24
|
+
3. Create destination folders using `cmd.run` with `mkdir -p`
|
|
25
|
+
4. Move files using `cmd.run` with `mv`
|
|
26
|
+
5. Report what was organized
|
|
27
|
+
|
|
28
|
+
## Safety
|
|
29
|
+
- Always show a preview of what will be moved BEFORE executing
|
|
30
|
+
- Never organize system directories (`/`, `/usr`, etc.)
|
|
31
|
+
- Skip hidden files (dotfiles) unless explicitly requested
|
|
32
|
+
- Ask for confirmation before moving files
|
|
@@ -0,0 +1,19 @@
|
|
|
1
|
+
{
|
|
2
|
+
"name": "file-organizer",
|
|
3
|
+
"version": "1.0.0",
|
|
4
|
+
"description": "Organizes files in a directory by type, date, or custom rules",
|
|
5
|
+
"tools": [
|
|
6
|
+
"cmd.run",
|
|
7
|
+
"fs.read",
|
|
8
|
+
"fs.write"
|
|
9
|
+
],
|
|
10
|
+
"permissions": {
|
|
11
|
+
"required": [
|
|
12
|
+
"exec",
|
|
13
|
+
"filesystem.read",
|
|
14
|
+
"filesystem.write"
|
|
15
|
+
]
|
|
16
|
+
},
|
|
17
|
+
"entrypoint": "prompt.md",
|
|
18
|
+
"state": "approved"
|
|
19
|
+
}
|
|
@@ -0,0 +1,21 @@
|
|
|
1
|
+
Automate git commits with meaningful messages.
|
|
2
|
+
|
|
3
|
+
## Steps
|
|
4
|
+
1. Use `git.status` to check what files have changed
|
|
5
|
+
2. Use `git.diff` to see the actual changes
|
|
6
|
+
3. Generate a concise, conventional commit message based on the changes
|
|
7
|
+
4. Use `cmd.run` to execute:
|
|
8
|
+
- `git add .` (or specific files if the user specifies)
|
|
9
|
+
- `git commit -m "<generated message>"`
|
|
10
|
+
|
|
11
|
+
## Commit Message Format
|
|
12
|
+
Use conventional commits format:
|
|
13
|
+
- `feat: <description>` — New feature
|
|
14
|
+
- `fix: <description>` — Bug fix
|
|
15
|
+
- `docs: <description>` — Documentation changes
|
|
16
|
+
- `refactor: <description>` — Code refactoring
|
|
17
|
+
- `chore: <description>` — Maintenance tasks
|
|
18
|
+
- `style: <description>` — Formatting changes
|
|
19
|
+
|
|
20
|
+
If the user provides a custom message, use that instead.
|
|
21
|
+
Ask the user to confirm the commit message before executing.
|
|
@@ -0,0 +1,17 @@
|
|
|
1
|
+
{
|
|
2
|
+
"name": "git-commit",
|
|
3
|
+
"version": "1.0.0",
|
|
4
|
+
"description": "Stages changes and creates a git commit with a meaningful message",
|
|
5
|
+
"tools": [
|
|
6
|
+
"cmd.run",
|
|
7
|
+
"git.status",
|
|
8
|
+
"git.diff"
|
|
9
|
+
],
|
|
10
|
+
"permissions": {
|
|
11
|
+
"required": [
|
|
12
|
+
"exec"
|
|
13
|
+
]
|
|
14
|
+
},
|
|
15
|
+
"entrypoint": "prompt.md",
|
|
16
|
+
"state": "approved"
|
|
17
|
+
}
|
|
@@ -0,0 +1,16 @@
|
|
|
1
|
+
Analyze log files to find errors, patterns, and anomalies.
|
|
2
|
+
|
|
3
|
+
## Commands
|
|
4
|
+
- **Tail logs**: `tail -f <logfile>` or `tail -n 100 <logfile>`
|
|
5
|
+
- **Find errors**: `grep -i "error\|fail\|exception\|fatal" <logfile>`
|
|
6
|
+
- **Count by level**: `grep -c "ERROR" <logfile>`
|
|
7
|
+
- **Time range**: `awk '/2024-01-15 10:00/,/2024-01-15 11:00/' <logfile>`
|
|
8
|
+
- **Top errors**: `grep "ERROR" <logfile> | sort | uniq -c | sort -rn | head -10`
|
|
9
|
+
|
|
10
|
+
## Output
|
|
11
|
+
Provide a structured summary:
|
|
12
|
+
- Total lines analyzed
|
|
13
|
+
- Error count by severity (ERROR, WARN, INFO)
|
|
14
|
+
- Top 5 most frequent errors
|
|
15
|
+
- Timeline of error spikes (if time-stamped)
|
|
16
|
+
- Recommended actions
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"name":"log-analyzer","version":"1.0.0","description":"Analyze log files — find errors, patterns, and anomalies","tools":["cmd.run","fs.read"],"permissions":{"required":["exec","filesystem.read"]},"entrypoint":"prompt.md","state":"approved"}
|
|
@@ -0,0 +1,24 @@
|
|
|
1
|
+
Prepare and publish npm packages.
|
|
2
|
+
|
|
3
|
+
## Pre-publish Checklist
|
|
4
|
+
1. Verify `package.json` has correct `name`, `version`, `main`, `types`, `bin`
|
|
5
|
+
2. Ensure `files` field or `.npmignore` is configured
|
|
6
|
+
3. Run `npm run build` if applicable
|
|
7
|
+
4. Run `npm test` if tests exist
|
|
8
|
+
5. Run `npm pack --dry-run` to preview package contents
|
|
9
|
+
|
|
10
|
+
## Version Bumping
|
|
11
|
+
- **Patch** (bug fixes): `npm version patch`
|
|
12
|
+
- **Minor** (new features): `npm version minor`
|
|
13
|
+
- **Major** (breaking changes): `npm version major`
|
|
14
|
+
|
|
15
|
+
## Publishing
|
|
16
|
+
```bash
|
|
17
|
+
npm publish --access public # For scoped packages
|
|
18
|
+
npm publish # For unscoped packages
|
|
19
|
+
```
|
|
20
|
+
|
|
21
|
+
## Post-publish
|
|
22
|
+
- Verify on npmjs.com: `npm view <package-name>`
|
|
23
|
+
- Tag the release in git: `git tag v<version> && git push --tags`
|
|
24
|
+
- Update CHANGELOG.md if it exists
|
|
@@ -0,0 +1,20 @@
|
|
|
1
|
+
{
|
|
2
|
+
"name": "npm-publish",
|
|
3
|
+
"version": "1.0.0",
|
|
4
|
+
"description": "Prepare and publish npm packages with version bumping and changelog",
|
|
5
|
+
"tools": [
|
|
6
|
+
"cmd.run",
|
|
7
|
+
"fs.read",
|
|
8
|
+
"fs.write"
|
|
9
|
+
],
|
|
10
|
+
"permissions": {
|
|
11
|
+
"required": [
|
|
12
|
+
"exec",
|
|
13
|
+
"network",
|
|
14
|
+
"filesystem.read",
|
|
15
|
+
"filesystem.write"
|
|
16
|
+
]
|
|
17
|
+
},
|
|
18
|
+
"entrypoint": "prompt.md",
|
|
19
|
+
"state": "approved"
|
|
20
|
+
}
|
|
@@ -0,0 +1,8 @@
|
|
|
1
|
+
Use cmd.run to open Visual Studio Code.
|
|
2
|
+
|
|
3
|
+
- To open in the current directory: execute `code .`
|
|
4
|
+
- To open a specific path: execute `code <path>`
|
|
5
|
+
- To open in a new window: execute `code -n .`
|
|
6
|
+
- To open a specific file: execute `code <filename>`
|
|
7
|
+
|
|
8
|
+
Always confirm the action with the user before executing.
|
|
@@ -0,0 +1,15 @@
|
|
|
1
|
+
{
|
|
2
|
+
"name": "open-vscode",
|
|
3
|
+
"version": "1.0.0",
|
|
4
|
+
"description": "Opens VS Code in the current or specified directory",
|
|
5
|
+
"tools": [
|
|
6
|
+
"cmd.run"
|
|
7
|
+
],
|
|
8
|
+
"permissions": {
|
|
9
|
+
"required": [
|
|
10
|
+
"exec"
|
|
11
|
+
]
|
|
12
|
+
},
|
|
13
|
+
"entrypoint": "prompt.md",
|
|
14
|
+
"state": "approved"
|
|
15
|
+
}
|
|
@@ -0,0 +1,43 @@
|
|
|
1
|
+
Scaffold new projects with proper structure and best practices.
|
|
2
|
+
|
|
3
|
+
## Supported Templates
|
|
4
|
+
|
|
5
|
+
### Node.js / TypeScript
|
|
6
|
+
```bash
|
|
7
|
+
mkdir <project> && cd <project>
|
|
8
|
+
npm init -y
|
|
9
|
+
npm install typescript @types/node --save-dev
|
|
10
|
+
npx tsc --init
|
|
11
|
+
```
|
|
12
|
+
Create: `src/index.ts`, `.gitignore`, `README.md`, `tsconfig.json`
|
|
13
|
+
|
|
14
|
+
### React (Vite)
|
|
15
|
+
```bash
|
|
16
|
+
npx -y create-vite@latest <project> --template react-ts
|
|
17
|
+
```
|
|
18
|
+
|
|
19
|
+
### Next.js
|
|
20
|
+
```bash
|
|
21
|
+
npx -y create-next-app@latest <project> --typescript --tailwind --eslint --app --src-dir
|
|
22
|
+
```
|
|
23
|
+
|
|
24
|
+
### Python
|
|
25
|
+
```bash
|
|
26
|
+
mkdir <project> && cd <project>
|
|
27
|
+
python3 -m venv venv
|
|
28
|
+
```
|
|
29
|
+
Create: `main.py`, `requirements.txt`, `.gitignore`, `README.md`
|
|
30
|
+
|
|
31
|
+
### Express API
|
|
32
|
+
```bash
|
|
33
|
+
mkdir <project> && cd <project>
|
|
34
|
+
npm init -y
|
|
35
|
+
npm install express cors dotenv
|
|
36
|
+
npm install typescript @types/express @types/node --save-dev
|
|
37
|
+
```
|
|
38
|
+
|
|
39
|
+
## Post-Setup
|
|
40
|
+
1. Initialize git: `git init`
|
|
41
|
+
2. Create `.gitignore` appropriate for the project type
|
|
42
|
+
3. Create a `README.md` with project name and basic setup instructions
|
|
43
|
+
4. Show the project structure to the user
|
|
@@ -0,0 +1,17 @@
|
|
|
1
|
+
{
|
|
2
|
+
"name": "project-scaffold",
|
|
3
|
+
"version": "1.0.0",
|
|
4
|
+
"description": "Scaffold new projects (Node.js, Python, React, Next.js, etc.) with best practices",
|
|
5
|
+
"tools": [
|
|
6
|
+
"cmd.run",
|
|
7
|
+
"fs.write"
|
|
8
|
+
],
|
|
9
|
+
"permissions": {
|
|
10
|
+
"required": [
|
|
11
|
+
"exec",
|
|
12
|
+
"filesystem.write"
|
|
13
|
+
]
|
|
14
|
+
},
|
|
15
|
+
"entrypoint": "prompt.md",
|
|
16
|
+
"state": "approved"
|
|
17
|
+
}
|
|
@@ -0,0 +1,19 @@
|
|
|
1
|
+
Send an email using the helper script.
|
|
2
|
+
|
|
3
|
+
## Usage
|
|
4
|
+
Run the send script using cmd.run:
|
|
5
|
+
```
|
|
6
|
+
node .agent/skills/send-email/send.js --to <recipient> --subject "<subject>" --body "<body>"
|
|
7
|
+
```
|
|
8
|
+
|
|
9
|
+
## Requirements
|
|
10
|
+
- Environment variables `EMAIL_USER` and `EMAIL_PASS` must be set
|
|
11
|
+
- `nodemailer` must be installed (`npm install nodemailer`)
|
|
12
|
+
|
|
13
|
+
## Parameters
|
|
14
|
+
- `--to`: Recipient email address (required)
|
|
15
|
+
- `--subject`: Email subject line (required)
|
|
16
|
+
- `--body`: Email body text (required)
|
|
17
|
+
- `--html`: Send as HTML email (optional flag)
|
|
18
|
+
|
|
19
|
+
If the user doesn't specify a subject, generate an appropriate one based on the body content.
|
|
@@ -0,0 +1,60 @@
|
|
|
1
|
+
#!/usr/bin/env node
|
|
2
|
+
|
|
3
|
+
/**
|
|
4
|
+
* send.js — Simple email sender using nodemailer
|
|
5
|
+
* Usage: node send.js --to <email> --subject "<subject>" --body "<body>"
|
|
6
|
+
*
|
|
7
|
+
* Requires: EMAIL_USER and EMAIL_PASS environment variables
|
|
8
|
+
*/
|
|
9
|
+
|
|
10
|
+
const args = process.argv.slice(2);
|
|
11
|
+
|
|
12
|
+
function getArg(name) {
|
|
13
|
+
const idx = args.indexOf(`--${name}`);
|
|
14
|
+
return idx !== -1 && args[idx + 1] ? args[idx + 1] : null;
|
|
15
|
+
}
|
|
16
|
+
|
|
17
|
+
const to = getArg('to');
|
|
18
|
+
const subject = getArg('subject');
|
|
19
|
+
const body = getArg('body');
|
|
20
|
+
const isHtml = args.includes('--html');
|
|
21
|
+
|
|
22
|
+
if (!to || !subject || !body) {
|
|
23
|
+
console.error('Usage: node send.js --to <email> --subject "<subject>" --body "<body>" [--html]');
|
|
24
|
+
process.exit(1);
|
|
25
|
+
}
|
|
26
|
+
|
|
27
|
+
const user = process.env.EMAIL_USER;
|
|
28
|
+
const pass = process.env.EMAIL_PASS;
|
|
29
|
+
|
|
30
|
+
if (!user || !pass) {
|
|
31
|
+
console.error('Error: EMAIL_USER and EMAIL_PASS environment variables are required');
|
|
32
|
+
process.exit(1);
|
|
33
|
+
}
|
|
34
|
+
|
|
35
|
+
async function sendEmail() {
|
|
36
|
+
try {
|
|
37
|
+
const nodemailer = await import('nodemailer');
|
|
38
|
+
|
|
39
|
+
const transporter = nodemailer.default.createTransport({
|
|
40
|
+
service: 'gmail',
|
|
41
|
+
auth: { user, pass }
|
|
42
|
+
});
|
|
43
|
+
|
|
44
|
+
const mailOptions = {
|
|
45
|
+
from: user,
|
|
46
|
+
to,
|
|
47
|
+
subject,
|
|
48
|
+
[isHtml ? 'html' : 'text']: body
|
|
49
|
+
};
|
|
50
|
+
|
|
51
|
+
const info = await transporter.sendMail(mailOptions);
|
|
52
|
+
console.log(`✅ Email sent successfully to ${to}`);
|
|
53
|
+
console.log(` Message ID: ${info.messageId}`);
|
|
54
|
+
} catch (error) {
|
|
55
|
+
console.error(`❌ Failed to send email: ${error.message}`);
|
|
56
|
+
process.exit(1);
|
|
57
|
+
}
|
|
58
|
+
}
|
|
59
|
+
|
|
60
|
+
sendEmail();
|
|
@@ -0,0 +1,16 @@
|
|
|
1
|
+
{
|
|
2
|
+
"name": "send-email",
|
|
3
|
+
"version": "1.0.0",
|
|
4
|
+
"description": "Sends emails using nodemailer via SMTP",
|
|
5
|
+
"tools": [
|
|
6
|
+
"cmd.run"
|
|
7
|
+
],
|
|
8
|
+
"permissions": {
|
|
9
|
+
"required": [
|
|
10
|
+
"exec",
|
|
11
|
+
"network"
|
|
12
|
+
]
|
|
13
|
+
},
|
|
14
|
+
"entrypoint": "prompt.md",
|
|
15
|
+
"state": "approved"
|
|
16
|
+
}
|
|
@@ -0,0 +1,27 @@
|
|
|
1
|
+
Monitor system resources and report health status.
|
|
2
|
+
|
|
3
|
+
## Commands
|
|
4
|
+
- **CPU**: `top -bn1 | head -20` or `mpstat` (if sysstat installed)
|
|
5
|
+
- **Memory**: `free -h`
|
|
6
|
+
- **Disk**: `df -h`
|
|
7
|
+
- **Processes**: `ps aux --sort=-%cpu | head -15`
|
|
8
|
+
- **Network**: `ss -tunlp` or `netstat -tunlp`
|
|
9
|
+
- **Uptime**: `uptime`
|
|
10
|
+
- **OS Info**: `uname -a` and `cat /etc/os-release`
|
|
11
|
+
|
|
12
|
+
## Output
|
|
13
|
+
Present a clean dashboard-style summary:
|
|
14
|
+
```
|
|
15
|
+
🖥️ System Health Report
|
|
16
|
+
━━━━━━━━━━━━━━━━━━━━━
|
|
17
|
+
CPU: 45% used (4 cores)
|
|
18
|
+
Memory: 6.2GB / 16GB (39%)
|
|
19
|
+
Disk: 120GB / 500GB (24%)
|
|
20
|
+
Uptime: 3 days, 14 hours
|
|
21
|
+
Top Process: node (12% CPU)
|
|
22
|
+
```
|
|
23
|
+
|
|
24
|
+
## Alerts
|
|
25
|
+
- Flag if CPU > 80%
|
|
26
|
+
- Flag if Memory > 90%
|
|
27
|
+
- Flag if Disk > 85%
|
|
@@ -0,0 +1,15 @@
|
|
|
1
|
+
{
|
|
2
|
+
"name": "system-monitor",
|
|
3
|
+
"version": "1.0.0",
|
|
4
|
+
"description": "Monitor system resources — CPU, memory, disk, and running processes",
|
|
5
|
+
"tools": [
|
|
6
|
+
"cmd.run"
|
|
7
|
+
],
|
|
8
|
+
"permissions": {
|
|
9
|
+
"required": [
|
|
10
|
+
"exec"
|
|
11
|
+
]
|
|
12
|
+
},
|
|
13
|
+
"entrypoint": "prompt.md",
|
|
14
|
+
"state": "approved"
|
|
15
|
+
}
|
|
@@ -0,0 +1,26 @@
|
|
|
1
|
+
Search the web and extract relevant information.
|
|
2
|
+
|
|
3
|
+
## Methods
|
|
4
|
+
### Using curl + DuckDuckGo
|
|
5
|
+
```bash
|
|
6
|
+
curl -s "https://html.duckduckgo.com/html/?q=<query>" | grep -oP '(?<=<a rel="nofollow" class="result__a" href=").*?(?=")'
|
|
7
|
+
```
|
|
8
|
+
|
|
9
|
+
### Using curl + Google (basic)
|
|
10
|
+
```bash
|
|
11
|
+
curl -s "https://www.google.com/search?q=<query>" -H "User-Agent: Mozilla/5.0"
|
|
12
|
+
```
|
|
13
|
+
|
|
14
|
+
## Steps
|
|
15
|
+
1. URL-encode the user's search query
|
|
16
|
+
2. Fetch search results using curl
|
|
17
|
+
3. Parse and extract relevant links and snippets
|
|
18
|
+
4. Present top results in a clean, readable format
|
|
19
|
+
|
|
20
|
+
## Output Format
|
|
21
|
+
For each result, show:
|
|
22
|
+
- **Title**: The page title
|
|
23
|
+
- **URL**: The direct link
|
|
24
|
+
- **Snippet**: A brief summary
|
|
25
|
+
|
|
26
|
+
If the user wants to read a specific page, use `curl` to fetch and extract the main content.
|
|
@@ -0,0 +1,16 @@
|
|
|
1
|
+
{
|
|
2
|
+
"name": "web-search",
|
|
3
|
+
"version": "1.0.0",
|
|
4
|
+
"description": "Search the web using curl and extract relevant information",
|
|
5
|
+
"tools": [
|
|
6
|
+
"cmd.run"
|
|
7
|
+
],
|
|
8
|
+
"permissions": {
|
|
9
|
+
"required": [
|
|
10
|
+
"exec",
|
|
11
|
+
"network"
|
|
12
|
+
]
|
|
13
|
+
},
|
|
14
|
+
"entrypoint": "prompt.md",
|
|
15
|
+
"state": "approved"
|
|
16
|
+
}
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"desktop.d.ts","sourceRoot":"","sources":["../../../../src/cli/commands/desktop.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,OAAO,EAAE,MAAM,WAAW,CAAC;AAIpC,wBAAgB,oBAAoB,IAAI,OAAO,CAiF9C"}
|