@praveencs/agent 0.9.29 → 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/plugins.d.ts.map +1 -1
- package/dist/src/cli/commands/plugins.js +63 -12
- package/dist/src/cli/commands/plugins.js.map +1 -1
- 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/skills.d.ts.map +1 -1
- package/dist/src/cli/commands/skills.js +52 -121
- package/dist/src/cli/commands/skills.js.map +1 -1
- 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/loader.d.ts +4 -0
- package/dist/src/config/loader.d.ts.map +1 -1
- package/dist/src/config/loader.js +27 -6
- package/dist/src/config/loader.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/hub/lockfile.d.ts +29 -0
- package/dist/src/hub/lockfile.d.ts.map +1 -0
- package/dist/src/hub/lockfile.js +72 -0
- package/dist/src/hub/lockfile.js.map +1 -0
- package/dist/src/hub/publisher.d.ts +13 -0
- package/dist/src/hub/publisher.d.ts.map +1 -0
- package/dist/src/hub/publisher.js +159 -0
- package/dist/src/hub/publisher.js.map +1 -0
- package/dist/src/hub/registry.d.ts +40 -0
- package/dist/src/hub/registry.d.ts.map +1 -0
- package/dist/src/hub/registry.js +123 -0
- package/dist/src/hub/registry.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/plugins/loader.d.ts.map +1 -1
- package/dist/src/plugins/loader.js +10 -0
- package/dist/src/plugins/loader.js.map +1 -1
- 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/skills/loader.d.ts.map +1 -1
- package/dist/src/skills/loader.js +10 -0
- package/dist/src/skills/loader.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/dist/src/utils/paths.d.ts +4 -4
- package/dist/src/utils/paths.d.ts.map +1 -1
- package/dist/src/utils/paths.js +8 -8
- package/dist/src/utils/paths.js.map +1 -1
- package/docs/DOCUMENTATION.md +137 -0
- package/package.json +4 -2
- 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
package/README.md
CHANGED
|
@@ -301,20 +301,66 @@ The daemon auto-discovers scripts and can execute them via the `script.run` tool
|
|
|
301
301
|
|
|
302
302
|
### Plugins
|
|
303
303
|
|
|
304
|
-
Bundle skills
|
|
304
|
+
Bundle native Node.js tools, skills, commands, scripts, and hooks into a single distributable package. The **Agent Hub** acts as the official registry for community plugins.
|
|
305
305
|
|
|
306
|
+
```bash
|
|
307
|
+
# Install the official GitHub plugin from the Hub
|
|
308
|
+
agent plugins install github
|
|
309
|
+
|
|
310
|
+
# Or install from a local path
|
|
311
|
+
agent plugins install ./my-plugin
|
|
312
|
+
|
|
313
|
+
# List installed plugins
|
|
314
|
+
agent plugins list
|
|
306
315
|
```
|
|
307
|
-
|
|
308
|
-
|
|
309
|
-
|
|
310
|
-
|
|
311
|
-
|
|
312
|
-
|
|
316
|
+
|
|
317
|
+
**Featured Plugin: GitHub (`github`)**
|
|
318
|
+
- Grants the agent zero-dependency native control over GitHub.
|
|
319
|
+
- Can create repos, open PRs, and manipulate Issues.
|
|
320
|
+
- Unlocks **Advanced Global Search** natively.
|
|
321
|
+
- Can view, dispatch, and monitor **GitHub Actions CI/CD workflows**.
|
|
322
|
+
|
|
323
|
+
**16 Plugins Available** — Slack, Notion, Vercel, Supabase, Stripe, AWS, Discord, OpenAI, Linear, Docker, MongoDB, Firebase, Telegram, HuggingFace, Resend.
|
|
324
|
+
|
|
325
|
+
### 🐳 Sandboxed Execution
|
|
326
|
+
|
|
327
|
+
Run commands safely inside Docker containers:
|
|
328
|
+
|
|
329
|
+
```bash
|
|
330
|
+
agent sandbox start # Spin up ephemeral container
|
|
331
|
+
agent sandbox status # Container info
|
|
332
|
+
agent sandbox stop # Destroy sandbox
|
|
313
333
|
```
|
|
314
334
|
|
|
335
|
+
### 🐝 Multi-Agent Swarm
|
|
336
|
+
|
|
337
|
+
Coordinate specialized agents (Planner, Coder, Reviewer, Researcher, Tester):
|
|
338
|
+
|
|
315
339
|
```bash
|
|
316
|
-
agent
|
|
317
|
-
agent
|
|
340
|
+
agent swarm start "Build a REST API with auth"
|
|
341
|
+
agent swarm status # View agents & tasks
|
|
342
|
+
agent swarm roles # List available roles
|
|
343
|
+
```
|
|
344
|
+
|
|
345
|
+
### 🖥️ Desktop Automation
|
|
346
|
+
|
|
347
|
+
Cross-platform desktop control (Linux, macOS, Windows):
|
|
348
|
+
|
|
349
|
+
```bash
|
|
350
|
+
agent desktop screenshot # Capture screen
|
|
351
|
+
agent desktop click 500 300 # Mouse click
|
|
352
|
+
agent desktop type "Hello" --enter
|
|
353
|
+
agent desktop hotkey ctrl+s # Keyboard shortcut
|
|
354
|
+
```
|
|
355
|
+
|
|
356
|
+
### 🌈 Multimodal Interfaces
|
|
357
|
+
|
|
358
|
+
Voice, vision, and speech powered by OpenAI:
|
|
359
|
+
|
|
360
|
+
```bash
|
|
361
|
+
agent multimodal transcribe audio.wav # Whisper STT
|
|
362
|
+
agent multimodal analyze image.png # GPT-4o Vision
|
|
363
|
+
agent multimodal speak "Done!" # TTS
|
|
318
364
|
```
|
|
319
365
|
|
|
320
366
|
### Lifecycle Hooks
|
package/ROADMAP.md
CHANGED
|
@@ -1,71 +1,63 @@
|
|
|
1
1
|
# 🛣️ Roadmap: The Future of @praveencs/agent
|
|
2
2
|
|
|
3
|
-
We have built a robust autonomous agent runtime (`v0.
|
|
4
|
-
Here is our vision for the next major milestones.
|
|
3
|
+
We have built a robust autonomous agent runtime (`v0.9.x`). Here is our progress on the major milestones.
|
|
5
4
|
|
|
6
|
-
## Phase 1: Robustness & Safety
|
|
7
|
-
- [
|
|
8
|
-
- [
|
|
9
|
-
- [
|
|
5
|
+
## Phase 1: Robustness & Safety ✅
|
|
6
|
+
- [x] **Sandboxed Execution**: Run all shell commands inside ephemeral Docker containers via `src/sandbox/`. Configure image, network, and mounts in `agent.yaml`.
|
|
7
|
+
- [x] **Permission Scopes**: Fine-grained access control via the policy engine (`config.policy`).
|
|
8
|
+
- [x] **Secrets Management**: Encrypted credential vault with `agent studio` Credentials page and `secrets.get/set/list` tools.
|
|
10
9
|
|
|
11
|
-
## Phase 2: Multi-Agent Collaboration (The Swarm)
|
|
12
|
-
- [
|
|
13
|
-
- [
|
|
14
|
-
|
|
15
|
-
- `Reviewer Agent`: Critiques pull requests.
|
|
16
|
-
- `Architect Agent`: High-level system design.
|
|
17
|
-
- [ ] **Orchestrator**: A master process that spins up specialized agents for a complex goal.
|
|
10
|
+
## Phase 2: Multi-Agent Collaboration (The Swarm) ✅
|
|
11
|
+
- [x] **Agent-to-Agent Protocol**: Event-driven `MessageBus` for inter-agent communication with pub/sub, broadcast, and history.
|
|
12
|
+
- [x] **Specialized Personas**: 5 built-in roles — Planner, Coder, Reviewer, Researcher, Tester — each with system prompts and tool permissions.
|
|
13
|
+
- [x] **Orchestrator**: `SwarmOrchestrator` spawns agents, assigns tasks, handles delegation chains up to configurable depth.
|
|
18
14
|
|
|
19
|
-
## Phase 3: Multimodal Interfaces
|
|
20
|
-
- [
|
|
21
|
-
- [
|
|
15
|
+
## Phase 3: Multimodal Interfaces ✅
|
|
16
|
+
- [x] **Voice Interface**: Speech-to-text via OpenAI Whisper (`agent multimodal transcribe`).
|
|
17
|
+
- [x] **Vision Capabilities**: Image analysis via GPT-4o vision (`agent multimodal analyze`) — supports local files and URLs.
|
|
18
|
+
- [x] **Text-to-Speech**: Generate spoken audio with 6 voices (`agent multimodal speak`).
|
|
22
19
|
- [ ] **IDE Integration**: VS Code extension to have the agent live in your editor sidebar.
|
|
23
20
|
|
|
24
21
|
## Phase 4: The Agent Cloud
|
|
25
|
-
- [
|
|
22
|
+
- [x] **Skill Hub**: Agent Hub with 16 plugins (registry + remote install from GitHub).
|
|
26
23
|
- [ ] **Remote Execution**: Run the heavy agent logic on a cloud server while controlling it from your laptop.
|
|
27
|
-
- [
|
|
24
|
+
- [x] **Web Dashboard**: Agent Studio with real-time visualization, 18 panels, and REST API.
|
|
28
25
|
|
|
29
26
|
## Phase 5: Plugin Ecosystem & Extensibility ✅
|
|
30
|
-
- [x] **Lifecycle Hooks**: Event-driven hook system (`before:tool`, `after:step`, `before:plan`, etc.)
|
|
31
|
-
- [x] **Lightweight Commands**: Reusable goal templates
|
|
32
|
-
- [x] **Multi-CLI Orchestration**:
|
|
33
|
-
- [x] **Plugin System**:
|
|
34
|
-
- [x] **Scripts System**: Repeatable
|
|
35
|
-
- [x] **New CLI Commands**: `agent hooks
|
|
27
|
+
- [x] **Lifecycle Hooks**: Event-driven hook system (`before:tool`, `after:step`, `before:plan`, etc.).
|
|
28
|
+
- [x] **Lightweight Commands**: Reusable goal templates as markdown files with YAML frontmatter.
|
|
29
|
+
- [x] **Multi-CLI Orchestration**: Tool wrappers for external AI CLIs (`cli.cursor`, `cli.codex`, `cli.gemini`, `cli.claude`).
|
|
30
|
+
- [x] **Plugin System**: 16 distributable plugins (GitHub, Slack, Notion, Vercel, Supabase, Stripe, AWS, Discord, OpenAI, Linear, Docker, MongoDB, Firebase, Telegram, HuggingFace, Resend).
|
|
31
|
+
- [x] **Scripts System**: Repeatable scriptable tasks via `script.yaml`.
|
|
32
|
+
- [x] **New CLI Commands**: `agent hooks|commands|plugins|scripts|sandbox|swarm|desktop|multimodal`.
|
|
36
33
|
|
|
37
34
|
## Phase 6: Interactive CLI Experience ✅
|
|
38
|
-
- [x] **Interactive REPL**:
|
|
39
|
-
- [x] **Slash Commands**: Built-in `/help`, `/skills`, `/commands`, `/hooks`, `/model`, `/compact`, `/clear`, `/exit
|
|
40
|
-
- [x] **Rich Terminal UI**: Bordered welcome banner,
|
|
41
|
-
- [x] **Tab Completion**: Autocomplete slash commands
|
|
42
|
-
- [x] **Conversation Context**: Multi-turn
|
|
35
|
+
- [x] **Interactive REPL**: Conversational sessions with multi-turn context and slash commands.
|
|
36
|
+
- [x] **Slash Commands**: Built-in `/help`, `/skills`, `/commands`, `/hooks`, `/model`, `/compact`, `/clear`, `/exit`.
|
|
37
|
+
- [x] **Rich Terminal UI**: Bordered welcome banner, spinners, inline tool call badges, completion timing.
|
|
38
|
+
- [x] **Tab Completion**: Autocomplete slash commands in the REPL.
|
|
39
|
+
- [x] **Conversation Context**: Multi-turn with conversation compaction support.
|
|
43
40
|
|
|
44
|
-
## Phase 7: Desktop Automation (All OS)
|
|
45
|
-
|
|
41
|
+
## Phase 7: Desktop Automation (All OS) ✅
|
|
42
|
+
- [x] **`desktop.screenshot`**: Cross-platform capture (scrot/gnome-screenshot, screencapture, PowerShell).
|
|
43
|
+
- [x] **`desktop.click`** / **`desktop.doubleClick`** / **`desktop.rightClick`**: Mouse control via xdotool/osascript.
|
|
44
|
+
- [x] **`desktop.type`** / **`desktop.hotkey`**: Keyboard input and shortcut combinations.
|
|
45
|
+
- [x] **`desktop.scroll`**: Scroll at position.
|
|
46
|
+
- [x] **`desktop.drag`**: Drag from point A to point B.
|
|
47
|
+
- [x] **Cross-platform engine**: Works on Linux (xdotool), macOS (osascript/cliclick), and Windows (PowerShell).
|
|
46
48
|
|
|
47
|
-
### Layer
|
|
48
|
-
- [
|
|
49
|
-
- [ ]
|
|
50
|
-
- [ ]
|
|
51
|
-
- [ ] **`desktop.scroll`**: Scroll at position or within active window.
|
|
52
|
-
- [ ] **`desktop.drag`**: Drag from point A to point B.
|
|
53
|
-
- [ ] **Cross-platform engine**: Built on [`nut.js`](https://nutjs.dev) — works on Windows, macOS, and Linux with a single API.
|
|
49
|
+
### Layer 2: AI-Powered Vision ✅
|
|
50
|
+
- [x] **Vision Loop**: Screenshot → GPT-4o analysis → action → verify cycle via MultimodalEngine.
|
|
51
|
+
- [ ] **Element Detection**: Use image template matching for UI element recognition.
|
|
52
|
+
- [ ] **OCR Integration**: Extract text from screen regions.
|
|
54
53
|
|
|
55
|
-
### Layer
|
|
56
|
-
- [
|
|
57
|
-
- [
|
|
58
|
-
- [ ] **
|
|
59
|
-
- [ ] **OCR Integration**: Extract text from screen regions for reading non-accessible UI content.
|
|
60
|
-
|
|
61
|
-
### Layer 3: OS-Native Accessibility APIs
|
|
62
|
-
- [ ] **macOS**: AppleScript / JXA for native app control (`tell application "Safari" to open location`).
|
|
63
|
-
- [ ] **Windows**: PowerShell + UI Automation API for Win32/WPF/UWP app control.
|
|
64
|
-
- [ ] **Linux**: `xdotool` + AT-SPI2 for X11/Wayland window management and GTK/Qt app inspection.
|
|
65
|
-
- [ ] **Window Management**: `desktop.focus`, `desktop.resize`, `desktop.list_windows` via `active-win` / `node-window-manager`.
|
|
54
|
+
### Layer 3: OS-Native Accessibility APIs (Partial)
|
|
55
|
+
- [x] **macOS**: AppleScript/osascript for native app control.
|
|
56
|
+
- [x] **Linux**: xdotool for X11 window management.
|
|
57
|
+
- [ ] **Windows**: PowerShell + UI Automation API.
|
|
66
58
|
|
|
67
59
|
### Layer 4: Browser Automation
|
|
68
|
-
- [ ] **Playwright Integration**: `desktop.browser.open`, `desktop.browser.click`, `desktop.browser.fill
|
|
60
|
+
- [ ] **Playwright Integration**: `desktop.browser.open`, `desktop.browser.click`, `desktop.browser.fill`.
|
|
69
61
|
- [ ] **Cookie/Session Persistence**: Maintain browser sessions across agent runs.
|
|
70
62
|
|
|
71
63
|
### Use Cases
|
|
@@ -0,0 +1,192 @@
|
|
|
1
|
+
<p align="center">
|
|
2
|
+
<h1 align="center">📦 Agent Hub</h1>
|
|
3
|
+
<p align="center">
|
|
4
|
+
The official Plugin and Skill registry for <a href="https://github.com/praveencs87/agent"><b>@praveencs/agent</b></a><br/>
|
|
5
|
+
Community-built plugins and skills for AI-powered automation
|
|
6
|
+
</p>
|
|
7
|
+
<p align="center">
|
|
8
|
+
<a href="https://github.com/praveencs87/agent-skills"><img src="https://img.shields.io/badge/skills-16-blueviolet" alt="Skills"></a>
|
|
9
|
+
<a href="https://github.com/praveencs87/agent"><img src="https://img.shields.io/badge/agent-v0.1.0-blue" alt="Agent"></a>
|
|
10
|
+
<a href="https://github.com/praveencs87/agent-skills/blob/main/LICENSE"><img src="https://img.shields.io/badge/license-MIT-green" alt="License"></a>
|
|
11
|
+
</p>
|
|
12
|
+
</p>
|
|
13
|
+
|
|
14
|
+
---
|
|
15
|
+
|
|
16
|
+
## Installation
|
|
17
|
+
|
|
18
|
+
### Installing Plugins
|
|
19
|
+
```bash
|
|
20
|
+
agent plugins install <plugin-name>
|
|
21
|
+
# Example:
|
|
22
|
+
agent plugins install github
|
|
23
|
+
```
|
|
24
|
+
|
|
25
|
+
### Installing Skills
|
|
26
|
+
```bash
|
|
27
|
+
agent skills install <skill-name>
|
|
28
|
+
```
|
|
29
|
+
|
|
30
|
+
### Manual Installation
|
|
31
|
+
```bash
|
|
32
|
+
git clone https://github.com/praveencs87/agent-skills.git
|
|
33
|
+
cp -r agent-skills/skills/<skill-name> .agent/skills/
|
|
34
|
+
```
|
|
35
|
+
|
|
36
|
+
---
|
|
37
|
+
|
|
38
|
+
## 📋 Table of Contents
|
|
39
|
+
|
|
40
|
+
- [Plugins](#plugins)
|
|
41
|
+
- [Coding & IDEs](#coding--ides)
|
|
42
|
+
- [Git & Version Control](#git--version-control)
|
|
43
|
+
- [DevOps & Cloud](#devops--cloud)
|
|
44
|
+
- [Communication](#communication)
|
|
45
|
+
- [Productivity](#productivity)
|
|
46
|
+
- [Search & Research](#search--research)
|
|
47
|
+
- [CLI Utilities](#cli-utilities)
|
|
48
|
+
- [Data & Analytics](#data--analytics)
|
|
49
|
+
- [Browser & Automation](#browser--automation)
|
|
50
|
+
|
|
51
|
+
---
|
|
52
|
+
|
|
53
|
+
## Plugins
|
|
54
|
+
|
|
55
|
+
Plugins are full-capability bundles that provide native Node.js tools, hooks, scripts, and skills in a single standalone package.
|
|
56
|
+
|
|
57
|
+
| Plugin | Description | Capabilities |
|
|
58
|
+
|--------|-------------|--------------|
|
|
59
|
+
| [github](plugins/github/) | Manage repos, PRs, issues, and CI/CD workflows on GitHub. | `tools/github.js`, `skills/github-manager.md` |
|
|
60
|
+
| [slack](plugins/slack/) | Send messages, manage channels, search history, and upload files to Slack. | `tools/slack.js`, `skills/slack-manager.md` |
|
|
61
|
+
| [notion](plugins/notion/) | Create/manage Notion pages, databases, blocks, and search workspace. | `tools/notion.js`, `skills/notion-manager.md` |
|
|
62
|
+
| [vercel](plugins/vercel/) | Deploy projects, manage domains, and configure env vars on Vercel. | `tools/vercel.js`, `skills/vercel-manager.md` |
|
|
63
|
+
| [supabase](plugins/supabase/) | Query Postgres, manage auth users, and use storage on Supabase. | `tools/supabase.js`, `skills/supabase-manager.md` |
|
|
64
|
+
| [stripe](plugins/stripe/) | Manage customers, subscriptions, checkout sessions, and refunds on Stripe. | `tools/stripe.js`, `skills/stripe-manager.md` |
|
|
65
|
+
| [aws](plugins/aws/) | Manage S3 buckets, Lambda functions, EC2 instances, and CloudWatch logs. | `tools/aws.js`, `skills/aws-manager.md` |
|
|
66
|
+
| [discord](plugins/discord/) | Send messages, manage channels and roles, use webhooks on Discord. | `tools/discord.js`, `skills/discord-manager.md` |
|
|
67
|
+
| [openai](plugins/openai/) | Direct GPT chat, DALL-E image gen, Whisper transcription, TTS, and embeddings. | `tools/openai.js`, `skills/openai-manager.md` |
|
|
68
|
+
| [linear](plugins/linear/) | Manage issues, projects, teams, and cycles on Linear. | `tools/linear.js`, `skills/linear-manager.md` |
|
|
69
|
+
| [docker](plugins/docker/) | Build images, run containers, manage compose stacks on Docker. | `tools/docker.js`, `skills/docker-manager.md` |
|
|
70
|
+
| [mongodb](plugins/mongodb/) | Query, insert, update, and aggregate data on MongoDB Atlas. | `tools/mongodb.js`, `skills/mongodb-manager.md` |
|
|
71
|
+
| [firebase](plugins/firebase/) | Manage Firestore docs, Auth users, and Cloud Storage on Firebase. | `tools/firebase.js`, `skills/firebase-manager.md` |
|
|
72
|
+
| [telegram](plugins/telegram/) | Send messages, photos, polls, and manage groups via Telegram bots. | `tools/telegram.js`, `skills/telegram-manager.md` |
|
|
73
|
+
| [huggingface](plugins/huggingface/) | Run ML inference and search the Hugging Face model hub. | `tools/huggingface.js`, `skills/huggingface-manager.md` |
|
|
74
|
+
| [resend](plugins/resend/) | Send transactional emails and manage domains via Resend. | `tools/resend.js`, `skills/resend-manager.md` |
|
|
75
|
+
|
|
76
|
+
---
|
|
77
|
+
|
|
78
|
+
## Coding & IDEs
|
|
79
|
+
|
|
80
|
+
| Skill | Description | Tools |
|
|
81
|
+
|-------|-------------|-------|
|
|
82
|
+
| [open-vscode](skills/open-vscode/) | Opens VS Code in the current or specified directory | `cmd.run` |
|
|
83
|
+
| [project-scaffold](skills/project-scaffold/) | Scaffold new projects (Node.js, Python, React, Next.js, Express) | `cmd.run`, `fs.write` |
|
|
84
|
+
| [npm-publish](skills/npm-publish/) | Prepare and publish npm packages with version bumping | `cmd.run`, `fs.read`, `fs.write` |
|
|
85
|
+
| [code-review](skills/code-review/) | Review code changes for bugs, security issues, and best practices | `cmd.run`, `git.diff`, `fs.read` |
|
|
86
|
+
|
|
87
|
+
## Git & Version Control
|
|
88
|
+
|
|
89
|
+
| Skill | Description | Tools |
|
|
90
|
+
|-------|-------------|-------|
|
|
91
|
+
| [git-commit](skills/git-commit/) | Stages changes and creates conventional git commits | `cmd.run`, `git.status`, `git.diff` |
|
|
92
|
+
|
|
93
|
+
## DevOps & Cloud
|
|
94
|
+
|
|
95
|
+
| Skill | Description | Tools |
|
|
96
|
+
|-------|-------------|-------|
|
|
97
|
+
| [docker-deploy](skills/docker-deploy/) | Build, run, and manage Docker containers and compose stacks | `cmd.run` |
|
|
98
|
+
| [system-monitor](skills/system-monitor/) | Monitor system resources — CPU, memory, disk, processes | `cmd.run` |
|
|
99
|
+
| [log-analyzer](skills/log-analyzer/) | Analyze log files — find errors, patterns, and anomalies | `cmd.run`, `fs.read` |
|
|
100
|
+
|
|
101
|
+
## Communication
|
|
102
|
+
|
|
103
|
+
| Skill | Description | Tools |
|
|
104
|
+
|-------|-------------|-------|
|
|
105
|
+
| [send-email](skills/send-email/) | Sends emails using nodemailer via SMTP | `cmd.run` |
|
|
106
|
+
|
|
107
|
+
## Productivity
|
|
108
|
+
|
|
109
|
+
| Skill | Description | Tools |
|
|
110
|
+
|-------|-------------|-------|
|
|
111
|
+
| [create-note](skills/create-note/) | Creates formatted markdown notes and saves them as files | `fs.write` |
|
|
112
|
+
|
|
113
|
+
## Search & Research
|
|
114
|
+
|
|
115
|
+
| Skill | Description | Tools |
|
|
116
|
+
|-------|-------------|-------|
|
|
117
|
+
| [web-search](skills/web-search/) | Search the web using curl and extract relevant information | `cmd.run` |
|
|
118
|
+
|
|
119
|
+
## CLI Utilities
|
|
120
|
+
|
|
121
|
+
| Skill | Description | Tools |
|
|
122
|
+
|-------|-------------|-------|
|
|
123
|
+
| [file-organizer](skills/file-organizer/) | Organizes files by type, date, or custom rules | `cmd.run`, `fs.read`, `fs.write` |
|
|
124
|
+
| [backup](skills/backup/) | Backup files and directories using tar, rsync, or zip | `cmd.run` |
|
|
125
|
+
| [cron-scheduler](skills/cron-scheduler/) | Manage cron jobs — create, list, edit, delete | `cmd.run` |
|
|
126
|
+
|
|
127
|
+
## Data & Analytics
|
|
128
|
+
|
|
129
|
+
| Skill | Description | Tools |
|
|
130
|
+
|-------|-------------|-------|
|
|
131
|
+
| [db-query](skills/db-query/) | Query databases — SQLite, PostgreSQL, MySQL via CLI | `cmd.run` |
|
|
132
|
+
|
|
133
|
+
## Browser & Automation
|
|
134
|
+
|
|
135
|
+
| Skill | Description | Tools |
|
|
136
|
+
|-------|-------------|-------|
|
|
137
|
+
| [api-tester](skills/api-tester/) | Test REST APIs with curl — GET, POST, PUT, DELETE | `cmd.run` |
|
|
138
|
+
|
|
139
|
+
---
|
|
140
|
+
|
|
141
|
+
## 🛠️ Creating a Skill
|
|
142
|
+
|
|
143
|
+
Each skill is a folder containing:
|
|
144
|
+
|
|
145
|
+
```
|
|
146
|
+
my-skill/
|
|
147
|
+
├── skill.json # Manifest (name, description, tools, permissions)
|
|
148
|
+
└── prompt.md # Instructions for the AI agent
|
|
149
|
+
```
|
|
150
|
+
|
|
151
|
+
### `skill.json` Example
|
|
152
|
+
```json
|
|
153
|
+
{
|
|
154
|
+
"name": "my-skill",
|
|
155
|
+
"version": "1.0.0",
|
|
156
|
+
"description": "What this skill does",
|
|
157
|
+
"tools": ["cmd.run"],
|
|
158
|
+
"permissions": {
|
|
159
|
+
"required": ["exec"]
|
|
160
|
+
},
|
|
161
|
+
"entrypoint": "prompt.md",
|
|
162
|
+
"state": "approved"
|
|
163
|
+
}
|
|
164
|
+
```
|
|
165
|
+
|
|
166
|
+
### `prompt.md` Example
|
|
167
|
+
```markdown
|
|
168
|
+
Describe what the agent should do when this skill is invoked.
|
|
169
|
+
Include specific commands, parameters, and expected outputs.
|
|
170
|
+
```
|
|
171
|
+
|
|
172
|
+
---
|
|
173
|
+
|
|
174
|
+
## 🤝 Contributing
|
|
175
|
+
|
|
176
|
+
1. Fork this repository
|
|
177
|
+
2. Create your skill folder under `skills/`
|
|
178
|
+
3. Add `skill.json` and `prompt.md`
|
|
179
|
+
4. Add your skill to `registry.json`
|
|
180
|
+
5. Submit a Pull Request
|
|
181
|
+
|
|
182
|
+
### Guidelines
|
|
183
|
+
- Skills should be focused and single-purpose
|
|
184
|
+
- Include clear instructions in `prompt.md`
|
|
185
|
+
- Specify minimum required permissions
|
|
186
|
+
- Test your skill with `agent run --skill <name> "<goal>"`
|
|
187
|
+
|
|
188
|
+
---
|
|
189
|
+
|
|
190
|
+
## License
|
|
191
|
+
|
|
192
|
+
MIT © [praveencs](https://github.com/praveencs87)
|
|
@@ -0,0 +1,22 @@
|
|
|
1
|
+
{
|
|
2
|
+
"name": "aws",
|
|
3
|
+
"version": "1.0.0",
|
|
4
|
+
"description": "Manage S3 buckets, Lambda functions, EC2 instances, and CloudWatch logs on AWS.",
|
|
5
|
+
"author": "Praveen",
|
|
6
|
+
"category": "DevOps & Cloud",
|
|
7
|
+
"tags": [
|
|
8
|
+
"aws",
|
|
9
|
+
"s3",
|
|
10
|
+
"lambda",
|
|
11
|
+
"ec2",
|
|
12
|
+
"cloud"
|
|
13
|
+
],
|
|
14
|
+
"exports": {
|
|
15
|
+
"tools": [
|
|
16
|
+
"tools/aws.js"
|
|
17
|
+
],
|
|
18
|
+
"skills": [
|
|
19
|
+
"skills/aws-manager.md"
|
|
20
|
+
]
|
|
21
|
+
}
|
|
22
|
+
}
|
|
@@ -0,0 +1,17 @@
|
|
|
1
|
+
# AWS Manager
|
|
2
|
+
|
|
3
|
+
## Description
|
|
4
|
+
This skill enables you to manage S3 buckets, Lambda functions, EC2 instances, and CloudWatch logs on AWS.
|
|
5
|
+
|
|
6
|
+
## Instructions
|
|
7
|
+
1. This plugin uses the **AWS CLI** (`aws`). It must be installed and configured on the host machine.
|
|
8
|
+
2. For S3 operations: `s3_list_buckets` shows all buckets, `s3_list_objects` lists files in a bucket with optional `prefix` filtering.
|
|
9
|
+
3. To upload a local file to S3, use `action: "s3_upload"` with `file` (local path), `bucket`, and `key` (destination path).
|
|
10
|
+
4. For Lambda, use `lambda_invoke` with `function_name` and a `payload` object. The response contains the function's return value.
|
|
11
|
+
5. For EC2, use `ec2_list` to see instances (filtered by `state`: running, stopped). Use `ec2_start` / `ec2_stop` with the `instance_id`.
|
|
12
|
+
6. For CloudWatch, first `cloudwatch_log_groups` to discover groups, then `cloudwatch_logs` with `log_group` and `log_stream` to fetch entries.
|
|
13
|
+
7. Set `region` parameter to target a specific AWS region, or it defaults to `AWS_DEFAULT_REGION` or `us-east-1`.
|
|
14
|
+
8. Credentials can be configured via `AWS_ACCESS_KEY_ID` + `AWS_SECRET_ACCESS_KEY` or `AWS_PROFILE`.
|
|
15
|
+
|
|
16
|
+
## Input Variables
|
|
17
|
+
{{input}}
|
|
@@ -0,0 +1,152 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* AWS automation tool.
|
|
3
|
+
* Provides S3, Lambda, EC2, and CloudWatch management via AWS CLI commands.
|
|
4
|
+
* Uses the AWS CLI (`aws`) which must be installed and configured on the host.
|
|
5
|
+
*/
|
|
6
|
+
import { execFile } from 'node:child_process';
|
|
7
|
+
import { promisify } from 'node:util';
|
|
8
|
+
|
|
9
|
+
const execFileAsync = promisify(execFile);
|
|
10
|
+
|
|
11
|
+
export async function execute(params) {
|
|
12
|
+
const { action, ...args } = params;
|
|
13
|
+
|
|
14
|
+
// Verify AWS credentials are available
|
|
15
|
+
if (!process.env.AWS_ACCESS_KEY_ID && !process.env.AWS_PROFILE) {
|
|
16
|
+
throw new Error('AWS credentials not configured. Export AWS_ACCESS_KEY_ID + AWS_SECRET_ACCESS_KEY, or set AWS_PROFILE.');
|
|
17
|
+
}
|
|
18
|
+
|
|
19
|
+
const region = args.region || process.env.AWS_DEFAULT_REGION || 'us-east-1';
|
|
20
|
+
|
|
21
|
+
/** Run an AWS CLI command and return parsed JSON */
|
|
22
|
+
async function awsCli(service, command, cliArgs = []) {
|
|
23
|
+
const fullArgs = [service, command, '--region', region, '--output', 'json', ...cliArgs];
|
|
24
|
+
try {
|
|
25
|
+
const { stdout } = await execFileAsync('aws', fullArgs, {
|
|
26
|
+
timeout: 30000,
|
|
27
|
+
maxBuffer: 10 * 1024 * 1024,
|
|
28
|
+
env: process.env
|
|
29
|
+
});
|
|
30
|
+
try {
|
|
31
|
+
return JSON.parse(stdout);
|
|
32
|
+
} catch {
|
|
33
|
+
return { output: stdout.trim() };
|
|
34
|
+
}
|
|
35
|
+
} catch (err) {
|
|
36
|
+
throw new Error(`AWS CLI Error: ${err.stderr || err.message}`);
|
|
37
|
+
}
|
|
38
|
+
}
|
|
39
|
+
|
|
40
|
+
try {
|
|
41
|
+
switch (action) {
|
|
42
|
+
// --- S3 ---
|
|
43
|
+
case 's3_list_buckets':
|
|
44
|
+
return await awsCli('s3api', 'list-buckets');
|
|
45
|
+
|
|
46
|
+
case 's3_list_objects':
|
|
47
|
+
return await awsCli('s3api', 'list-objects-v2', [
|
|
48
|
+
'--bucket', args.bucket,
|
|
49
|
+
'--max-items', String(args.limit || 50),
|
|
50
|
+
...(args.prefix ? ['--prefix', args.prefix] : [])
|
|
51
|
+
]);
|
|
52
|
+
|
|
53
|
+
case 's3_create_bucket':
|
|
54
|
+
return await awsCli('s3api', 'create-bucket', [
|
|
55
|
+
'--bucket', args.bucket,
|
|
56
|
+
...(region !== 'us-east-1' ? ['--create-bucket-configuration', `LocationConstraint=${region}`] : [])
|
|
57
|
+
]);
|
|
58
|
+
|
|
59
|
+
case 's3_delete_bucket':
|
|
60
|
+
return await awsCli('s3api', 'delete-bucket', ['--bucket', args.bucket]);
|
|
61
|
+
|
|
62
|
+
case 's3_upload': {
|
|
63
|
+
const dest = `s3://${args.bucket}/${args.key}`;
|
|
64
|
+
return await awsCli('s3', 'cp', [args.file, dest]);
|
|
65
|
+
}
|
|
66
|
+
|
|
67
|
+
case 's3_download': {
|
|
68
|
+
const src = `s3://${args.bucket}/${args.key}`;
|
|
69
|
+
return await awsCli('s3', 'cp', [src, args.file || `./${args.key}`]);
|
|
70
|
+
}
|
|
71
|
+
|
|
72
|
+
// --- LAMBDA ---
|
|
73
|
+
case 'lambda_list':
|
|
74
|
+
return await awsCli('lambda', 'list-functions', ['--max-items', String(args.limit || 20)]);
|
|
75
|
+
|
|
76
|
+
case 'lambda_invoke':
|
|
77
|
+
return await awsCli('lambda', 'invoke', [
|
|
78
|
+
'--function-name', args.function_name,
|
|
79
|
+
'--payload', JSON.stringify(args.payload || {}),
|
|
80
|
+
'--cli-binary-format', 'raw-in-base64-out',
|
|
81
|
+
'/dev/stdout'
|
|
82
|
+
]);
|
|
83
|
+
|
|
84
|
+
case 'lambda_get':
|
|
85
|
+
return await awsCli('lambda', 'get-function', ['--function-name', args.function_name]);
|
|
86
|
+
|
|
87
|
+
// --- EC2 ---
|
|
88
|
+
case 'ec2_list':
|
|
89
|
+
return await awsCli('ec2', 'describe-instances', [
|
|
90
|
+
'--filters', `Name=instance-state-name,Values=${args.state || 'running'}`,
|
|
91
|
+
'--max-items', String(args.limit || 20)
|
|
92
|
+
]);
|
|
93
|
+
|
|
94
|
+
case 'ec2_start':
|
|
95
|
+
return await awsCli('ec2', 'start-instances', ['--instance-ids', args.instance_id]);
|
|
96
|
+
|
|
97
|
+
case 'ec2_stop':
|
|
98
|
+
return await awsCli('ec2', 'stop-instances', ['--instance-ids', args.instance_id]);
|
|
99
|
+
|
|
100
|
+
// --- CLOUDWATCH ---
|
|
101
|
+
case 'cloudwatch_logs':
|
|
102
|
+
return await awsCli('logs', 'get-log-events', [
|
|
103
|
+
'--log-group-name', args.log_group,
|
|
104
|
+
'--log-stream-name', args.log_stream,
|
|
105
|
+
'--limit', String(args.limit || 50)
|
|
106
|
+
]);
|
|
107
|
+
|
|
108
|
+
case 'cloudwatch_log_groups':
|
|
109
|
+
return await awsCli('logs', 'describe-log-groups', [
|
|
110
|
+
'--limit', String(args.limit || 20)
|
|
111
|
+
]);
|
|
112
|
+
|
|
113
|
+
default:
|
|
114
|
+
throw new Error(`Unknown action: ${action}`);
|
|
115
|
+
}
|
|
116
|
+
} catch (err) {
|
|
117
|
+
return { error: err.message, stack: err.stack };
|
|
118
|
+
}
|
|
119
|
+
}
|
|
120
|
+
|
|
121
|
+
export const definition = {
|
|
122
|
+
name: 'aws',
|
|
123
|
+
description: 'Manage AWS resources: S3 buckets, Lambda functions, EC2 instances, and CloudWatch logs. Requires AWS CLI installed and credentials configured.',
|
|
124
|
+
parameters: {
|
|
125
|
+
type: 'object',
|
|
126
|
+
required: ['action'],
|
|
127
|
+
properties: {
|
|
128
|
+
action: {
|
|
129
|
+
type: 'string',
|
|
130
|
+
description: 'The AWS operation to perform',
|
|
131
|
+
enum: [
|
|
132
|
+
's3_list_buckets', 's3_list_objects', 's3_create_bucket', 's3_delete_bucket', 's3_upload', 's3_download',
|
|
133
|
+
'lambda_list', 'lambda_invoke', 'lambda_get',
|
|
134
|
+
'ec2_list', 'ec2_start', 'ec2_stop',
|
|
135
|
+
'cloudwatch_logs', 'cloudwatch_log_groups'
|
|
136
|
+
]
|
|
137
|
+
},
|
|
138
|
+
bucket: { type: 'string', description: 'S3 bucket name' },
|
|
139
|
+
key: { type: 'string', description: 'S3 object key (path within bucket)' },
|
|
140
|
+
prefix: { type: 'string', description: 'S3 key prefix for filtering' },
|
|
141
|
+
file: { type: 'string', description: 'Local file path (for upload/download)' },
|
|
142
|
+
function_name: { type: 'string', description: 'Lambda function name or ARN' },
|
|
143
|
+
payload: { type: 'object', description: 'JSON payload for Lambda invocation' },
|
|
144
|
+
instance_id: { type: 'string', description: 'EC2 instance ID (i-xxx)' },
|
|
145
|
+
state: { type: 'string', description: 'EC2 instance state filter (running, stopped, etc.)' },
|
|
146
|
+
log_group: { type: 'string', description: 'CloudWatch log group name' },
|
|
147
|
+
log_stream: { type: 'string', description: 'CloudWatch log stream name' },
|
|
148
|
+
region: { type: 'string', description: 'AWS region (default: us-east-1)' },
|
|
149
|
+
limit: { type: 'number', description: 'Max results to return' }
|
|
150
|
+
}
|
|
151
|
+
}
|
|
152
|
+
};
|
|
@@ -0,0 +1,22 @@
|
|
|
1
|
+
{
|
|
2
|
+
"name": "discord",
|
|
3
|
+
"version": "1.0.0",
|
|
4
|
+
"description": "Send messages, manage channels and roles, and interact with Discord servers via webhooks and bot API.",
|
|
5
|
+
"author": "Praveen",
|
|
6
|
+
"category": "Communication",
|
|
7
|
+
"tags": [
|
|
8
|
+
"discord",
|
|
9
|
+
"messaging",
|
|
10
|
+
"chat",
|
|
11
|
+
"bot",
|
|
12
|
+
"community"
|
|
13
|
+
],
|
|
14
|
+
"exports": {
|
|
15
|
+
"tools": [
|
|
16
|
+
"tools/discord.js"
|
|
17
|
+
],
|
|
18
|
+
"skills": [
|
|
19
|
+
"skills/discord-manager.md"
|
|
20
|
+
]
|
|
21
|
+
}
|
|
22
|
+
}
|
|
@@ -0,0 +1,15 @@
|
|
|
1
|
+
# Discord Manager
|
|
2
|
+
|
|
3
|
+
## Description
|
|
4
|
+
This skill enables you to send messages, manage channels and roles, and interact with Discord servers.
|
|
5
|
+
|
|
6
|
+
## Instructions
|
|
7
|
+
1. Discord uses **snowflake IDs** (large numbers like `1234567890123456789`) for channels, guilds, users, and roles. You must provide numeric IDs, not names.
|
|
8
|
+
2. For quick notifications without a bot token, use `action: "send_webhook"` with a `webhook_url`. Webhooks only need a URL, no authentication.
|
|
9
|
+
3. To send a rich message, use `embeds` (an array of embed objects with `title`, `description`, `color`, `fields`, etc.).
|
|
10
|
+
4. To manage a server, you need the `guild_id`. Use `action: "get_guild"` to verify access.
|
|
11
|
+
5. Channel types: `0` = text channel, `2` = voice channel, `4` = category. Use `parent_id` to nest a channel under a category.
|
|
12
|
+
6. If the tool returns an authentication error, the user needs to export `DISCORD_BOT_TOKEN`. Create a bot at https://discord.com/developers/applications.
|
|
13
|
+
|
|
14
|
+
## Input Variables
|
|
15
|
+
{{input}}
|