wispy-ai 0.1.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/.env.example +20 -0
- package/LICENSE +21 -0
- package/README.md +232 -0
- package/bin/wispy.js +3 -0
- package/dist/a2a/delegation.d.ts +19 -0
- package/dist/a2a/delegation.d.ts.map +1 -0
- package/dist/a2a/delegation.js +156 -0
- package/dist/a2a/delegation.js.map +1 -0
- package/dist/a2a/peer.d.ts +19 -0
- package/dist/a2a/peer.d.ts.map +1 -0
- package/dist/a2a/peer.js +27 -0
- package/dist/a2a/peer.js.map +1 -0
- package/dist/a2a/protocol.d.ts +36 -0
- package/dist/a2a/protocol.d.ts.map +1 -0
- package/dist/a2a/protocol.js +23 -0
- package/dist/a2a/protocol.js.map +1 -0
- package/dist/agents/collaboration.d.ts +59 -0
- package/dist/agents/collaboration.d.ts.map +1 -0
- package/dist/agents/collaboration.js +110 -0
- package/dist/agents/collaboration.js.map +1 -0
- package/dist/agents/orchestrator.d.ts +59 -0
- package/dist/agents/orchestrator.d.ts.map +1 -0
- package/dist/agents/orchestrator.js +171 -0
- package/dist/agents/orchestrator.js.map +1 -0
- package/dist/agents/tool-executor.d.ts +36 -0
- package/dist/agents/tool-executor.d.ts.map +1 -0
- package/dist/agents/tool-executor.js +363 -0
- package/dist/agents/tool-executor.js.map +1 -0
- package/dist/agents/types/coder.d.ts +10 -0
- package/dist/agents/types/coder.d.ts.map +1 -0
- package/dist/agents/types/coder.js +43 -0
- package/dist/agents/types/coder.js.map +1 -0
- package/dist/agents/types/data.d.ts +7 -0
- package/dist/agents/types/data.d.ts.map +1 -0
- package/dist/agents/types/data.js +30 -0
- package/dist/agents/types/data.js.map +1 -0
- package/dist/agents/types/designer.d.ts +7 -0
- package/dist/agents/types/designer.d.ts.map +1 -0
- package/dist/agents/types/designer.js +30 -0
- package/dist/agents/types/designer.js.map +1 -0
- package/dist/agents/types/devops.d.ts +7 -0
- package/dist/agents/types/devops.d.ts.map +1 -0
- package/dist/agents/types/devops.js +30 -0
- package/dist/agents/types/devops.js.map +1 -0
- package/dist/agents/types/planner.d.ts +7 -0
- package/dist/agents/types/planner.d.ts.map +1 -0
- package/dist/agents/types/planner.js +35 -0
- package/dist/agents/types/planner.js.map +1 -0
- package/dist/agents/types/researcher.d.ts +10 -0
- package/dist/agents/types/researcher.d.ts.map +1 -0
- package/dist/agents/types/researcher.js +33 -0
- package/dist/agents/types/researcher.js.map +1 -0
- package/dist/agents/types/security.d.ts +7 -0
- package/dist/agents/types/security.d.ts.map +1 -0
- package/dist/agents/types/security.js +30 -0
- package/dist/agents/types/security.js.map +1 -0
- package/dist/agents/types/writer.d.ts +7 -0
- package/dist/agents/types/writer.d.ts.map +1 -0
- package/dist/agents/types/writer.js +30 -0
- package/dist/agents/types/writer.js.map +1 -0
- package/dist/agents/workspace.d.ts +61 -0
- package/dist/agents/workspace.d.ts.map +1 -0
- package/dist/agents/workspace.js +115 -0
- package/dist/agents/workspace.js.map +1 -0
- package/dist/ai/embeddings.d.ts +4 -0
- package/dist/ai/embeddings.d.ts.map +1 -0
- package/dist/ai/embeddings.js +20 -0
- package/dist/ai/embeddings.js.map +1 -0
- package/dist/ai/gemini.d.ts +31 -0
- package/dist/ai/gemini.d.ts.map +1 -0
- package/dist/ai/gemini.js +121 -0
- package/dist/ai/gemini.js.map +1 -0
- package/dist/ai/model-registry.d.ts +73 -0
- package/dist/ai/model-registry.d.ts.map +1 -0
- package/dist/ai/model-registry.js +86 -0
- package/dist/ai/model-registry.js.map +1 -0
- package/dist/ai/prompts.d.ts +3 -0
- package/dist/ai/prompts.d.ts.map +1 -0
- package/dist/ai/prompts.js +42 -0
- package/dist/ai/prompts.js.map +1 -0
- package/dist/ai/providers/ollama.d.ts +22 -0
- package/dist/ai/providers/ollama.d.ts.map +1 -0
- package/dist/ai/providers/ollama.js +144 -0
- package/dist/ai/providers/ollama.js.map +1 -0
- package/dist/ai/providers/openai-compat.d.ts +25 -0
- package/dist/ai/providers/openai-compat.d.ts.map +1 -0
- package/dist/ai/providers/openai-compat.js +141 -0
- package/dist/ai/providers/openai-compat.js.map +1 -0
- package/dist/ai/router.d.ts +10 -0
- package/dist/ai/router.d.ts.map +1 -0
- package/dist/ai/router.js +23 -0
- package/dist/ai/router.js.map +1 -0
- package/dist/ai/tools.d.ts +15 -0
- package/dist/ai/tools.d.ts.map +1 -0
- package/dist/ai/tools.js +134 -0
- package/dist/ai/tools.js.map +1 -0
- package/dist/autostart/service.d.ts +24 -0
- package/dist/autostart/service.d.ts.map +1 -0
- package/dist/autostart/service.js +202 -0
- package/dist/autostart/service.js.map +1 -0
- package/dist/channels/dock.d.ts +22 -0
- package/dist/channels/dock.d.ts.map +1 -0
- package/dist/channels/dock.js +21 -0
- package/dist/channels/dock.js.map +1 -0
- package/dist/channels/rest/adapter.d.ts +4 -0
- package/dist/channels/rest/adapter.d.ts.map +1 -0
- package/dist/channels/rest/adapter.js +86 -0
- package/dist/channels/rest/adapter.js.map +1 -0
- package/dist/channels/telegram/adapter.d.ts +3 -0
- package/dist/channels/telegram/adapter.d.ts.map +1 -0
- package/dist/channels/telegram/adapter.js +56 -0
- package/dist/channels/telegram/adapter.js.map +1 -0
- package/dist/cli/commands.d.ts +17 -0
- package/dist/cli/commands.d.ts.map +1 -0
- package/dist/cli/commands.js +258 -0
- package/dist/cli/commands.js.map +1 -0
- package/dist/cli/doctor.d.ts +8 -0
- package/dist/cli/doctor.d.ts.map +1 -0
- package/dist/cli/doctor.js +34 -0
- package/dist/cli/doctor.js.map +1 -0
- package/dist/cli/history.d.ts +9 -0
- package/dist/cli/history.d.ts.map +1 -0
- package/dist/cli/history.js +32 -0
- package/dist/cli/history.js.map +1 -0
- package/dist/cli/postinstall.d.ts +5 -0
- package/dist/cli/postinstall.d.ts.map +1 -0
- package/dist/cli/postinstall.js +20 -0
- package/dist/cli/postinstall.js.map +1 -0
- package/dist/cli/program.d.ts +3 -0
- package/dist/cli/program.d.ts.map +1 -0
- package/dist/cli/program.js +537 -0
- package/dist/cli/program.js.map +1 -0
- package/dist/cli/repl.d.ts +7 -0
- package/dist/cli/repl.d.ts.map +1 -0
- package/dist/cli/repl.js +132 -0
- package/dist/cli/repl.js.map +1 -0
- package/dist/cli/setup/wizard.d.ts +17 -0
- package/dist/cli/setup/wizard.d.ts.map +1 -0
- package/dist/cli/setup/wizard.js +157 -0
- package/dist/cli/setup/wizard.js.map +1 -0
- package/dist/cli/ui/banner.d.ts +2 -0
- package/dist/cli/ui/banner.d.ts.map +1 -0
- package/dist/cli/ui/banner.js +9 -0
- package/dist/cli/ui/banner.js.map +1 -0
- package/dist/cli/ui/renderer.d.ts +6 -0
- package/dist/cli/ui/renderer.d.ts.map +1 -0
- package/dist/cli/ui/renderer.js +55 -0
- package/dist/cli/ui/renderer.js.map +1 -0
- package/dist/cli/ui/spinner.d.ts +7 -0
- package/dist/cli/ui/spinner.d.ts.map +1 -0
- package/dist/cli/ui/spinner.js +31 -0
- package/dist/cli/ui/spinner.js.map +1 -0
- package/dist/cli/ui/theme.d.ts +21 -0
- package/dist/cli/ui/theme.d.ts.map +1 -0
- package/dist/cli/ui/theme.js +28 -0
- package/dist/cli/ui/theme.js.map +1 -0
- package/dist/cli/ui/tool-display.d.ts +9 -0
- package/dist/cli/ui/tool-display.d.ts.map +1 -0
- package/dist/cli/ui/tool-display.js +19 -0
- package/dist/cli/ui/tool-display.js.map +1 -0
- package/dist/cli/voice/stt.d.ts +37 -0
- package/dist/cli/voice/stt.d.ts.map +1 -0
- package/dist/cli/voice/stt.js +115 -0
- package/dist/cli/voice/stt.js.map +1 -0
- package/dist/cli/voice/tts.d.ts +35 -0
- package/dist/cli/voice/tts.d.ts.map +1 -0
- package/dist/cli/voice/tts.js +142 -0
- package/dist/cli/voice/tts.js.map +1 -0
- package/dist/cli/voice/voice-mode.d.ts +35 -0
- package/dist/cli/voice/voice-mode.d.ts.map +1 -0
- package/dist/cli/voice/voice-mode.js +89 -0
- package/dist/cli/voice/voice-mode.js.map +1 -0
- package/dist/config/config.d.ts +5 -0
- package/dist/config/config.d.ts.map +1 -0
- package/dist/config/config.js +68 -0
- package/dist/config/config.js.map +1 -0
- package/dist/config/hot-reload.d.ts +3 -0
- package/dist/config/hot-reload.d.ts.map +1 -0
- package/dist/config/hot-reload.js +21 -0
- package/dist/config/hot-reload.js.map +1 -0
- package/dist/config/schema.d.ts +48 -0
- package/dist/config/schema.d.ts.map +1 -0
- package/dist/config/schema.js +105 -0
- package/dist/config/schema.js.map +1 -0
- package/dist/content/pipeline.d.ts +12 -0
- package/dist/content/pipeline.d.ts.map +1 -0
- package/dist/content/pipeline.js +55 -0
- package/dist/content/pipeline.js.map +1 -0
- package/dist/content/publisher.d.ts +26 -0
- package/dist/content/publisher.d.ts.map +1 -0
- package/dist/content/publisher.js +101 -0
- package/dist/content/publisher.js.map +1 -0
- package/dist/core/agent.d.ts +37 -0
- package/dist/core/agent.d.ts.map +1 -0
- package/dist/core/agent.js +170 -0
- package/dist/core/agent.js.map +1 -0
- package/dist/core/heartbeat.d.ts +15 -0
- package/dist/core/heartbeat.d.ts.map +1 -0
- package/dist/core/heartbeat.js +70 -0
- package/dist/core/heartbeat.js.map +1 -0
- package/dist/core/identity.d.ts +13 -0
- package/dist/core/identity.d.ts.map +1 -0
- package/dist/core/identity.js +16 -0
- package/dist/core/identity.js.map +1 -0
- package/dist/core/memory.d.ts +11 -0
- package/dist/core/memory.d.ts.map +1 -0
- package/dist/core/memory.js +58 -0
- package/dist/core/memory.js.map +1 -0
- package/dist/core/session.d.ts +29 -0
- package/dist/core/session.d.ts.map +1 -0
- package/dist/core/session.js +59 -0
- package/dist/core/session.js.map +1 -0
- package/dist/core/thinking.d.ts +3 -0
- package/dist/core/thinking.d.ts.map +1 -0
- package/dist/core/thinking.js +27 -0
- package/dist/core/thinking.js.map +1 -0
- package/dist/cron/service.d.ts +24 -0
- package/dist/cron/service.d.ts.map +1 -0
- package/dist/cron/service.js +74 -0
- package/dist/cron/service.js.map +1 -0
- package/dist/entry.d.ts +2 -0
- package/dist/entry.d.ts.map +1 -0
- package/dist/entry.js +26 -0
- package/dist/entry.js.map +1 -0
- package/dist/gateway/boot.d.ts +9 -0
- package/dist/gateway/boot.d.ts.map +1 -0
- package/dist/gateway/boot.js +64 -0
- package/dist/gateway/boot.js.map +1 -0
- package/dist/gateway/client.d.ts +19 -0
- package/dist/gateway/client.d.ts.map +1 -0
- package/dist/gateway/client.js +64 -0
- package/dist/gateway/client.js.map +1 -0
- package/dist/gateway/protocol/index.d.ts +41 -0
- package/dist/gateway/protocol/index.d.ts.map +1 -0
- package/dist/gateway/protocol/index.js +30 -0
- package/dist/gateway/protocol/index.js.map +1 -0
- package/dist/gateway/server.d.ts +9 -0
- package/dist/gateway/server.d.ts.map +1 -0
- package/dist/gateway/server.js +147 -0
- package/dist/gateway/server.js.map +1 -0
- package/dist/index.d.ts +10 -0
- package/dist/index.d.ts.map +1 -0
- package/dist/index.js +10 -0
- package/dist/index.js.map +1 -0
- package/dist/infra/dotenv.d.ts +2 -0
- package/dist/infra/dotenv.d.ts.map +1 -0
- package/dist/infra/dotenv.js +7 -0
- package/dist/infra/dotenv.js.map +1 -0
- package/dist/infra/logger.d.ts +4 -0
- package/dist/infra/logger.d.ts.map +1 -0
- package/dist/infra/logger.js +12 -0
- package/dist/infra/logger.js.map +1 -0
- package/dist/infra/ports.d.ts +2 -0
- package/dist/infra/ports.d.ts.map +1 -0
- package/dist/infra/ports.js +12 -0
- package/dist/infra/ports.js.map +1 -0
- package/dist/integrations/ai-models/anthropic.d.ts +15 -0
- package/dist/integrations/ai-models/anthropic.d.ts.map +1 -0
- package/dist/integrations/ai-models/anthropic.js +91 -0
- package/dist/integrations/ai-models/anthropic.js.map +1 -0
- package/dist/integrations/ai-models/ollama.d.ts +17 -0
- package/dist/integrations/ai-models/ollama.d.ts.map +1 -0
- package/dist/integrations/ai-models/ollama.js +113 -0
- package/dist/integrations/ai-models/ollama.js.map +1 -0
- package/dist/integrations/ai-models/openai.d.ts +19 -0
- package/dist/integrations/ai-models/openai.d.ts.map +1 -0
- package/dist/integrations/ai-models/openai.js +136 -0
- package/dist/integrations/ai-models/openai.js.map +1 -0
- package/dist/integrations/base.d.ts +102 -0
- package/dist/integrations/base.d.ts.map +1 -0
- package/dist/integrations/base.js +44 -0
- package/dist/integrations/base.js.map +1 -0
- package/dist/integrations/categories.d.ts +13 -0
- package/dist/integrations/categories.d.ts.map +1 -0
- package/dist/integrations/categories.js +69 -0
- package/dist/integrations/categories.js.map +1 -0
- package/dist/integrations/chat/discord.d.ts +19 -0
- package/dist/integrations/chat/discord.d.ts.map +1 -0
- package/dist/integrations/chat/discord.js +122 -0
- package/dist/integrations/chat/discord.js.map +1 -0
- package/dist/integrations/chat/slack.d.ts +19 -0
- package/dist/integrations/chat/slack.d.ts.map +1 -0
- package/dist/integrations/chat/slack.js +113 -0
- package/dist/integrations/chat/slack.js.map +1 -0
- package/dist/integrations/chat/whatsapp.d.ts +18 -0
- package/dist/integrations/chat/whatsapp.d.ts.map +1 -0
- package/dist/integrations/chat/whatsapp.js +115 -0
- package/dist/integrations/chat/whatsapp.js.map +1 -0
- package/dist/integrations/credential-manager.d.ts +68 -0
- package/dist/integrations/credential-manager.d.ts.map +1 -0
- package/dist/integrations/credential-manager.js +156 -0
- package/dist/integrations/credential-manager.js.map +1 -0
- package/dist/integrations/google/calendar.d.ts +17 -0
- package/dist/integrations/google/calendar.d.ts.map +1 -0
- package/dist/integrations/google/calendar.js +126 -0
- package/dist/integrations/google/calendar.js.map +1 -0
- package/dist/integrations/google/docs.d.ts +19 -0
- package/dist/integrations/google/docs.d.ts.map +1 -0
- package/dist/integrations/google/docs.js +153 -0
- package/dist/integrations/google/docs.js.map +1 -0
- package/dist/integrations/google/drive.d.ts +17 -0
- package/dist/integrations/google/drive.d.ts.map +1 -0
- package/dist/integrations/google/drive.js +130 -0
- package/dist/integrations/google/drive.js.map +1 -0
- package/dist/integrations/google/gmail.d.ts +19 -0
- package/dist/integrations/google/gmail.d.ts.map +1 -0
- package/dist/integrations/google/gmail.js +124 -0
- package/dist/integrations/google/gmail.js.map +1 -0
- package/dist/integrations/google/maps.d.ts +20 -0
- package/dist/integrations/google/maps.d.ts.map +1 -0
- package/dist/integrations/google/maps.js +115 -0
- package/dist/integrations/google/maps.js.map +1 -0
- package/dist/integrations/google/meet.d.ts +16 -0
- package/dist/integrations/google/meet.d.ts.map +1 -0
- package/dist/integrations/google/meet.js +104 -0
- package/dist/integrations/google/meet.js.map +1 -0
- package/dist/integrations/google/oauth.d.ts +39 -0
- package/dist/integrations/google/oauth.d.ts.map +1 -0
- package/dist/integrations/google/oauth.js +134 -0
- package/dist/integrations/google/oauth.js.map +1 -0
- package/dist/integrations/google/search.d.ts +15 -0
- package/dist/integrations/google/search.d.ts.map +1 -0
- package/dist/integrations/google/search.js +66 -0
- package/dist/integrations/google/search.js.map +1 -0
- package/dist/integrations/google/sheets.d.ts +17 -0
- package/dist/integrations/google/sheets.d.ts.map +1 -0
- package/dist/integrations/google/sheets.js +118 -0
- package/dist/integrations/google/sheets.js.map +1 -0
- package/dist/integrations/google/youtube.d.ts +19 -0
- package/dist/integrations/google/youtube.d.ts.map +1 -0
- package/dist/integrations/google/youtube.js +128 -0
- package/dist/integrations/google/youtube.js.map +1 -0
- package/dist/integrations/loader.d.ts +15 -0
- package/dist/integrations/loader.d.ts.map +1 -0
- package/dist/integrations/loader.js +97 -0
- package/dist/integrations/loader.js.map +1 -0
- package/dist/integrations/music/spotify.d.ts +21 -0
- package/dist/integrations/music/spotify.d.ts.map +1 -0
- package/dist/integrations/music/spotify.js +161 -0
- package/dist/integrations/music/spotify.js.map +1 -0
- package/dist/integrations/productivity/github.d.ts +20 -0
- package/dist/integrations/productivity/github.d.ts.map +1 -0
- package/dist/integrations/productivity/github.js +146 -0
- package/dist/integrations/productivity/github.js.map +1 -0
- package/dist/integrations/productivity/linear.d.ts +19 -0
- package/dist/integrations/productivity/linear.d.ts.map +1 -0
- package/dist/integrations/productivity/linear.js +152 -0
- package/dist/integrations/productivity/linear.js.map +1 -0
- package/dist/integrations/productivity/notion.d.ts +20 -0
- package/dist/integrations/productivity/notion.d.ts.map +1 -0
- package/dist/integrations/productivity/notion.js +186 -0
- package/dist/integrations/productivity/notion.js.map +1 -0
- package/dist/integrations/productivity/obsidian.d.ts +21 -0
- package/dist/integrations/productivity/obsidian.d.ts.map +1 -0
- package/dist/integrations/productivity/obsidian.js +141 -0
- package/dist/integrations/productivity/obsidian.js.map +1 -0
- package/dist/integrations/registry.d.ts +78 -0
- package/dist/integrations/registry.d.ts.map +1 -0
- package/dist/integrations/registry.js +193 -0
- package/dist/integrations/registry.js.map +1 -0
- package/dist/integrations/smart-home/homeassistant.d.ts +21 -0
- package/dist/integrations/smart-home/homeassistant.d.ts.map +1 -0
- package/dist/integrations/smart-home/homeassistant.js +129 -0
- package/dist/integrations/smart-home/homeassistant.js.map +1 -0
- package/dist/integrations/smart-home/hue.d.ts +23 -0
- package/dist/integrations/smart-home/hue.d.ts.map +1 -0
- package/dist/integrations/smart-home/hue.js +144 -0
- package/dist/integrations/smart-home/hue.js.map +1 -0
- package/dist/integrations/social/email-smtp.d.ts +23 -0
- package/dist/integrations/social/email-smtp.d.ts.map +1 -0
- package/dist/integrations/social/email-smtp.js +168 -0
- package/dist/integrations/social/email-smtp.js.map +1 -0
- package/dist/integrations/social/twitter.d.ts +28 -0
- package/dist/integrations/social/twitter.d.ts.map +1 -0
- package/dist/integrations/social/twitter.js +168 -0
- package/dist/integrations/social/twitter.js.map +1 -0
- package/dist/integrations/tools/browser.d.ts +18 -0
- package/dist/integrations/tools/browser.d.ts.map +1 -0
- package/dist/integrations/tools/browser.js +131 -0
- package/dist/integrations/tools/browser.js.map +1 -0
- package/dist/integrations/tools/weather.d.ts +17 -0
- package/dist/integrations/tools/weather.d.ts.map +1 -0
- package/dist/integrations/tools/weather.js +113 -0
- package/dist/integrations/tools/weather.js.map +1 -0
- package/dist/integrations/tools/webhooks.d.ts +15 -0
- package/dist/integrations/tools/webhooks.d.ts.map +1 -0
- package/dist/integrations/tools/webhooks.js +89 -0
- package/dist/integrations/tools/webhooks.js.map +1 -0
- package/dist/mcp/client.d.ts +42 -0
- package/dist/mcp/client.d.ts.map +1 -0
- package/dist/mcp/client.js +164 -0
- package/dist/mcp/client.js.map +1 -0
- package/dist/mcp/server.d.ts +2 -0
- package/dist/mcp/server.d.ts.map +1 -0
- package/dist/mcp/server.js +114 -0
- package/dist/mcp/server.js.map +1 -0
- package/dist/mcp/tools-adapter.d.ts +14 -0
- package/dist/mcp/tools-adapter.d.ts.map +1 -0
- package/dist/mcp/tools-adapter.js +133 -0
- package/dist/mcp/tools-adapter.js.map +1 -0
- package/dist/memory/manager.d.ts +14 -0
- package/dist/memory/manager.d.ts.map +1 -0
- package/dist/memory/manager.js +49 -0
- package/dist/memory/manager.js.map +1 -0
- package/dist/memory/vector-store.d.ts +17 -0
- package/dist/memory/vector-store.d.ts.map +1 -0
- package/dist/memory/vector-store.js +65 -0
- package/dist/memory/vector-store.js.map +1 -0
- package/dist/security/action-guard.d.ts +12 -0
- package/dist/security/action-guard.d.ts.map +1 -0
- package/dist/security/action-guard.js +37 -0
- package/dist/security/action-guard.js.map +1 -0
- package/dist/security/api-key-guard.d.ts +3 -0
- package/dist/security/api-key-guard.d.ts.map +1 -0
- package/dist/security/api-key-guard.js +36 -0
- package/dist/security/api-key-guard.js.map +1 -0
- package/dist/security/auth.d.ts +17 -0
- package/dist/security/auth.d.ts.map +1 -0
- package/dist/security/auth.js +31 -0
- package/dist/security/auth.js.map +1 -0
- package/dist/security/device-identity.d.ts +11 -0
- package/dist/security/device-identity.d.ts.map +1 -0
- package/dist/security/device-identity.js +64 -0
- package/dist/security/device-identity.js.map +1 -0
- package/dist/security/encryption.d.ts +5 -0
- package/dist/security/encryption.d.ts.map +1 -0
- package/dist/security/encryption.js +13 -0
- package/dist/security/encryption.js.map +1 -0
- package/dist/security/isolation.d.ts +11 -0
- package/dist/security/isolation.d.ts.map +1 -0
- package/dist/security/isolation.js +37 -0
- package/dist/security/isolation.js.map +1 -0
- package/dist/skills/loader.d.ts +17 -0
- package/dist/skills/loader.d.ts.map +1 -0
- package/dist/skills/loader.js +68 -0
- package/dist/skills/loader.js.map +1 -0
- package/dist/token/estimator.d.ts +72 -0
- package/dist/token/estimator.d.ts.map +1 -0
- package/dist/token/estimator.js +165 -0
- package/dist/token/estimator.js.map +1 -0
- package/dist/utils/crypto.d.ts +4 -0
- package/dist/utils/crypto.d.ts.map +1 -0
- package/dist/utils/crypto.js +28 -0
- package/dist/utils/crypto.js.map +1 -0
- package/dist/utils/file.d.ts +14 -0
- package/dist/utils/file.d.ts.map +1 -0
- package/dist/utils/file.js +54 -0
- package/dist/utils/file.js.map +1 -0
- package/dist/utils/media.d.ts +6 -0
- package/dist/utils/media.d.ts.map +1 -0
- package/dist/utils/media.js +65 -0
- package/dist/utils/media.js.map +1 -0
- package/dist/wallet/x402.d.ts +22 -0
- package/dist/wallet/x402.d.ts.map +1 -0
- package/dist/wallet/x402.js +63 -0
- package/dist/wallet/x402.js.map +1 -0
- package/package.json +79 -0
- package/wispy/AGENTS.md +46 -0
- package/wispy/BOOT.md +28 -0
- package/wispy/CONTEXT.md +13 -0
- package/wispy/HEARTBEAT.md +17 -0
- package/wispy/IDENTITY.md +26 -0
- package/wispy/MEMORY.md +16 -0
- package/wispy/SOUL.md +35 -0
- package/wispy/TOOLS.md +45 -0
- package/wispy/USER.md +16 -0
- package/wispy/skills/a2a-delegate/SKILL.md +14 -0
- package/wispy/skills/content-creator/SKILL.md +14 -0
- package/wispy/skills/image-gen/SKILL.md +14 -0
- package/wispy/skills/wallet-ops/SKILL.md +14 -0
- package/wispy/skills/x-poster/SKILL.md +11 -0
|
@@ -0,0 +1,363 @@
|
|
|
1
|
+
import { exec } from "child_process";
|
|
2
|
+
import { promisify } from "util";
|
|
3
|
+
import { readFileSync, writeFileSync, existsSync, readdirSync } from "fs";
|
|
4
|
+
import { resolve, dirname } from "path";
|
|
5
|
+
import { ensureDir } from "../utils/file.js";
|
|
6
|
+
import { saveMedia } from "../utils/media.js";
|
|
7
|
+
import { requestApproval, categorizeAction } from "../security/action-guard.js";
|
|
8
|
+
import { sanitizeOutput } from "../security/api-key-guard.js";
|
|
9
|
+
import { appendToMemory, appendDailyNote } from "../core/memory.js";
|
|
10
|
+
import { createLogger } from "../infra/logger.js";
|
|
11
|
+
const log = createLogger("tool-executor");
|
|
12
|
+
const execAsync = promisify(exec);
|
|
13
|
+
// Dangerous command patterns to block entirely
|
|
14
|
+
const BLOCKED_PATTERNS = [
|
|
15
|
+
/rm\s+-rf\s+\//,
|
|
16
|
+
/mkfs\./,
|
|
17
|
+
/dd\s+if=/,
|
|
18
|
+
/:(){ :|:& };:/,
|
|
19
|
+
/>\s*\/dev\/sd/,
|
|
20
|
+
/chmod\s+-R\s+777\s+\//,
|
|
21
|
+
/curl.*\|\s*bash/,
|
|
22
|
+
/wget.*\|\s*bash/,
|
|
23
|
+
];
|
|
24
|
+
// Commands that are safe to auto-approve
|
|
25
|
+
const SAFE_COMMANDS = new Set([
|
|
26
|
+
"ls", "pwd", "echo", "cat", "head", "tail", "wc", "grep", "find",
|
|
27
|
+
"which", "whoami", "hostname", "date", "uname", "env",
|
|
28
|
+
"git status", "git log", "git diff", "git branch",
|
|
29
|
+
"node --version", "npm --version", "python --version",
|
|
30
|
+
]);
|
|
31
|
+
export class ToolExecutor {
|
|
32
|
+
config;
|
|
33
|
+
runtimeDir;
|
|
34
|
+
soulDir;
|
|
35
|
+
memoryManager;
|
|
36
|
+
integrationRegistry;
|
|
37
|
+
constructor(config, runtimeDir, soulDir, memoryManager, integrationRegistry) {
|
|
38
|
+
this.config = config;
|
|
39
|
+
this.runtimeDir = runtimeDir;
|
|
40
|
+
this.soulDir = soulDir;
|
|
41
|
+
this.memoryManager = memoryManager;
|
|
42
|
+
this.integrationRegistry = integrationRegistry;
|
|
43
|
+
}
|
|
44
|
+
async execute(tool) {
|
|
45
|
+
log.info("Executing tool: %s", tool.name);
|
|
46
|
+
try {
|
|
47
|
+
switch (tool.name) {
|
|
48
|
+
case "bash":
|
|
49
|
+
return this.executeBash(tool.args);
|
|
50
|
+
case "file_read":
|
|
51
|
+
return this.executeFileRead(tool.args);
|
|
52
|
+
case "file_write":
|
|
53
|
+
return this.executeFileWrite(tool.args);
|
|
54
|
+
case "file_search":
|
|
55
|
+
return this.executeFileSearch(tool.args);
|
|
56
|
+
case "memory_search":
|
|
57
|
+
return this.executeMemorySearch(tool.args);
|
|
58
|
+
case "memory_save":
|
|
59
|
+
return this.executeMemorySave(tool.args);
|
|
60
|
+
case "web_fetch":
|
|
61
|
+
return this.executeWebFetch(tool.args);
|
|
62
|
+
case "web_search":
|
|
63
|
+
return this.executeWebSearch(tool.args);
|
|
64
|
+
case "image_generate":
|
|
65
|
+
return this.executeImageGenerate(tool.args);
|
|
66
|
+
case "send_message":
|
|
67
|
+
return this.executeSendMessage(tool.args);
|
|
68
|
+
case "schedule_task":
|
|
69
|
+
return this.executeScheduleTask(tool.args);
|
|
70
|
+
case "wallet_balance":
|
|
71
|
+
return this.executeWalletBalance(tool.args);
|
|
72
|
+
case "wallet_pay":
|
|
73
|
+
return this.executeWalletPay(tool.args);
|
|
74
|
+
case "list_directory":
|
|
75
|
+
return this.executeListDirectory(tool.args);
|
|
76
|
+
default:
|
|
77
|
+
// Fallback to integration registry
|
|
78
|
+
if (this.integrationRegistry) {
|
|
79
|
+
const integrationResult = await this.integrationRegistry.executeTool(tool.name, tool.args);
|
|
80
|
+
if (integrationResult) {
|
|
81
|
+
return {
|
|
82
|
+
success: integrationResult.success,
|
|
83
|
+
output: integrationResult.output,
|
|
84
|
+
error: integrationResult.error,
|
|
85
|
+
};
|
|
86
|
+
}
|
|
87
|
+
}
|
|
88
|
+
return { success: false, output: "", error: `Unknown tool: ${tool.name}` };
|
|
89
|
+
}
|
|
90
|
+
}
|
|
91
|
+
catch (err) {
|
|
92
|
+
const msg = err instanceof Error ? err.message : String(err);
|
|
93
|
+
log.error({ err }, "Tool execution failed: %s", tool.name);
|
|
94
|
+
return { success: false, output: "", error: msg };
|
|
95
|
+
}
|
|
96
|
+
}
|
|
97
|
+
async executeBash(args) {
|
|
98
|
+
const command = String(args.command || "");
|
|
99
|
+
if (!command)
|
|
100
|
+
return { success: false, output: "", error: "No command provided" };
|
|
101
|
+
// Block dangerous commands
|
|
102
|
+
for (const pattern of BLOCKED_PATTERNS) {
|
|
103
|
+
if (pattern.test(command)) {
|
|
104
|
+
return { success: false, output: "", error: "Command blocked for safety: " + command.slice(0, 50) };
|
|
105
|
+
}
|
|
106
|
+
}
|
|
107
|
+
// Check if approval needed
|
|
108
|
+
const category = categorizeAction("bash");
|
|
109
|
+
const isSafe = SAFE_COMMANDS.has(command.split(" ")[0]) ||
|
|
110
|
+
SAFE_COMMANDS.has(command.trim());
|
|
111
|
+
if (!isSafe && this.config.security.requireApprovalForExternal) {
|
|
112
|
+
const approved = await requestApproval("bash", `Execute: ${command}`, { command });
|
|
113
|
+
if (!approved) {
|
|
114
|
+
return { success: false, output: "", error: "Command not approved by user" };
|
|
115
|
+
}
|
|
116
|
+
}
|
|
117
|
+
try {
|
|
118
|
+
const { stdout, stderr } = await execAsync(command, {
|
|
119
|
+
timeout: 30000,
|
|
120
|
+
maxBuffer: 1024 * 1024, // 1MB
|
|
121
|
+
cwd: process.cwd(),
|
|
122
|
+
env: { ...process.env },
|
|
123
|
+
});
|
|
124
|
+
const output = sanitizeOutput(stdout + (stderr ? `\nSTDERR: ${stderr}` : ""));
|
|
125
|
+
return { success: true, output };
|
|
126
|
+
}
|
|
127
|
+
catch (err) {
|
|
128
|
+
const output = sanitizeOutput(err.stdout || "");
|
|
129
|
+
const error = sanitizeOutput(err.stderr || err.message || "Command failed");
|
|
130
|
+
return { success: false, output, error };
|
|
131
|
+
}
|
|
132
|
+
}
|
|
133
|
+
executeFileRead(args) {
|
|
134
|
+
const path = String(args.path || "");
|
|
135
|
+
if (!path)
|
|
136
|
+
return { success: false, output: "", error: "No path provided" };
|
|
137
|
+
if (!existsSync(path))
|
|
138
|
+
return { success: false, output: "", error: `File not found: ${path}` };
|
|
139
|
+
try {
|
|
140
|
+
const content = readFileSync(path, "utf-8");
|
|
141
|
+
// Limit output size
|
|
142
|
+
const truncated = content.length > 50000
|
|
143
|
+
? content.slice(0, 50000) + "\n... (truncated)"
|
|
144
|
+
: content;
|
|
145
|
+
return { success: true, output: sanitizeOutput(truncated) };
|
|
146
|
+
}
|
|
147
|
+
catch (err) {
|
|
148
|
+
return { success: false, output: "", error: err.message };
|
|
149
|
+
}
|
|
150
|
+
}
|
|
151
|
+
async executeFileWrite(args) {
|
|
152
|
+
const path = String(args.path || "");
|
|
153
|
+
const content = String(args.content || "");
|
|
154
|
+
if (!path)
|
|
155
|
+
return { success: false, output: "", error: "No path provided" };
|
|
156
|
+
// Approval for overwrite
|
|
157
|
+
if (existsSync(path) && this.config.security.requireApprovalForExternal) {
|
|
158
|
+
const approved = await requestApproval("file_write", `Overwrite: ${path}`, { path });
|
|
159
|
+
if (!approved)
|
|
160
|
+
return { success: false, output: "", error: "Write not approved" };
|
|
161
|
+
}
|
|
162
|
+
try {
|
|
163
|
+
ensureDir(dirname(path));
|
|
164
|
+
writeFileSync(path, content, "utf-8");
|
|
165
|
+
return { success: true, output: `Written ${content.length} bytes to ${path}` };
|
|
166
|
+
}
|
|
167
|
+
catch (err) {
|
|
168
|
+
return { success: false, output: "", error: err.message };
|
|
169
|
+
}
|
|
170
|
+
}
|
|
171
|
+
executeFileSearch(args) {
|
|
172
|
+
const pattern = String(args.pattern || args.query || "");
|
|
173
|
+
const dir = String(args.directory || args.path || process.cwd());
|
|
174
|
+
if (!pattern)
|
|
175
|
+
return { success: false, output: "", error: "No pattern provided" };
|
|
176
|
+
try {
|
|
177
|
+
const results = [];
|
|
178
|
+
const search = (d, depth) => {
|
|
179
|
+
if (depth > 5 || results.length > 50)
|
|
180
|
+
return;
|
|
181
|
+
try {
|
|
182
|
+
const entries = readdirSync(d, { withFileTypes: true });
|
|
183
|
+
for (const entry of entries) {
|
|
184
|
+
if (entry.name.startsWith(".") || entry.name === "node_modules")
|
|
185
|
+
continue;
|
|
186
|
+
const full = resolve(d, entry.name);
|
|
187
|
+
if (entry.isDirectory()) {
|
|
188
|
+
search(full, depth + 1);
|
|
189
|
+
}
|
|
190
|
+
else if (entry.name.includes(pattern) || entry.name.match(pattern)) {
|
|
191
|
+
results.push(full);
|
|
192
|
+
}
|
|
193
|
+
}
|
|
194
|
+
}
|
|
195
|
+
catch { /* skip inaccessible dirs */ }
|
|
196
|
+
};
|
|
197
|
+
search(dir, 0);
|
|
198
|
+
return { success: true, output: results.join("\n") || "No files found" };
|
|
199
|
+
}
|
|
200
|
+
catch (err) {
|
|
201
|
+
return { success: false, output: "", error: err.message };
|
|
202
|
+
}
|
|
203
|
+
}
|
|
204
|
+
async executeMemorySearch(args) {
|
|
205
|
+
const query = String(args.query || "");
|
|
206
|
+
if (!query)
|
|
207
|
+
return { success: false, output: "", error: "No query provided" };
|
|
208
|
+
if (!this.memoryManager) {
|
|
209
|
+
return { success: false, output: "", error: "Memory system not initialized" };
|
|
210
|
+
}
|
|
211
|
+
const results = await this.memoryManager.search(query, 5);
|
|
212
|
+
if (results.length === 0)
|
|
213
|
+
return { success: true, output: "No memories found for: " + query };
|
|
214
|
+
const output = results
|
|
215
|
+
.map((r, i) => `[${i + 1}] (score: ${r.score.toFixed(2)}) ${r.text}`)
|
|
216
|
+
.join("\n\n");
|
|
217
|
+
return { success: true, output };
|
|
218
|
+
}
|
|
219
|
+
executeMemorySave(args) {
|
|
220
|
+
const fact = String(args.fact || "");
|
|
221
|
+
const category = String(args.category || "User Facts");
|
|
222
|
+
if (!fact)
|
|
223
|
+
return { success: false, output: "", error: "No fact provided" };
|
|
224
|
+
appendToMemory(this.soulDir, category, fact);
|
|
225
|
+
appendDailyNote(this.soulDir, `Saved memory: ${fact.slice(0, 80)}`);
|
|
226
|
+
return { success: true, output: `Saved to memory [${category}]: ${fact}` };
|
|
227
|
+
}
|
|
228
|
+
async executeWebFetch(args) {
|
|
229
|
+
const url = String(args.url || "");
|
|
230
|
+
if (!url)
|
|
231
|
+
return { success: false, output: "", error: "No URL provided" };
|
|
232
|
+
try {
|
|
233
|
+
const controller = new AbortController();
|
|
234
|
+
const timeout = setTimeout(() => controller.abort(), 15000);
|
|
235
|
+
const res = await fetch(url, {
|
|
236
|
+
signal: controller.signal,
|
|
237
|
+
headers: { "User-Agent": "Wispy/0.1.0" },
|
|
238
|
+
});
|
|
239
|
+
clearTimeout(timeout);
|
|
240
|
+
if (!res.ok)
|
|
241
|
+
return { success: false, output: "", error: `HTTP ${res.status}` };
|
|
242
|
+
const contentType = res.headers.get("content-type") || "";
|
|
243
|
+
if (contentType.includes("text") || contentType.includes("json")) {
|
|
244
|
+
let text = await res.text();
|
|
245
|
+
// Strip HTML tags for readability
|
|
246
|
+
if (contentType.includes("html")) {
|
|
247
|
+
text = text
|
|
248
|
+
.replace(/<script[^>]*>[\s\S]*?<\/script>/gi, "")
|
|
249
|
+
.replace(/<style[^>]*>[\s\S]*?<\/style>/gi, "")
|
|
250
|
+
.replace(/<[^>]+>/g, " ")
|
|
251
|
+
.replace(/\s+/g, " ")
|
|
252
|
+
.trim();
|
|
253
|
+
}
|
|
254
|
+
const truncated = text.length > 30000 ? text.slice(0, 30000) + "\n...(truncated)" : text;
|
|
255
|
+
return { success: true, output: sanitizeOutput(truncated) };
|
|
256
|
+
}
|
|
257
|
+
// Binary content — save to media
|
|
258
|
+
const buf = Buffer.from(await res.arrayBuffer());
|
|
259
|
+
const filename = url.split("/").pop() || "download";
|
|
260
|
+
const path = saveMedia(this.runtimeDir, "incoming", filename, buf);
|
|
261
|
+
return { success: true, output: `Downloaded to: ${path} (${buf.length} bytes)` };
|
|
262
|
+
}
|
|
263
|
+
catch (err) {
|
|
264
|
+
return { success: false, output: "", error: err.message };
|
|
265
|
+
}
|
|
266
|
+
}
|
|
267
|
+
async executeWebSearch(args) {
|
|
268
|
+
const query = String(args.query || "");
|
|
269
|
+
if (!query)
|
|
270
|
+
return { success: false, output: "", error: "No query provided" };
|
|
271
|
+
// Use Gemini with grounding for web search
|
|
272
|
+
try {
|
|
273
|
+
const { generate } = await import("../ai/gemini.js");
|
|
274
|
+
const result = await generate({
|
|
275
|
+
model: this.config.gemini.models.flash,
|
|
276
|
+
messages: [{ role: "user", content: `Search the web for: ${query}\n\nProvide a summary of the top results with sources.` }],
|
|
277
|
+
thinkingLevel: "minimal",
|
|
278
|
+
});
|
|
279
|
+
return { success: true, output: result.text };
|
|
280
|
+
}
|
|
281
|
+
catch (err) {
|
|
282
|
+
return { success: false, output: "", error: "Web search failed: " + err.message };
|
|
283
|
+
}
|
|
284
|
+
}
|
|
285
|
+
async executeImageGenerate(args) {
|
|
286
|
+
const prompt = String(args.prompt || "");
|
|
287
|
+
if (!prompt)
|
|
288
|
+
return { success: false, output: "", error: "No prompt provided" };
|
|
289
|
+
try {
|
|
290
|
+
const { generate } = await import("../ai/gemini.js");
|
|
291
|
+
const result = await generate({
|
|
292
|
+
model: this.config.gemini.models.image,
|
|
293
|
+
messages: [{ role: "user", content: prompt }],
|
|
294
|
+
thinkingLevel: "none",
|
|
295
|
+
});
|
|
296
|
+
// Nano Banana returns image data
|
|
297
|
+
return { success: true, output: result.text || "Image generated" };
|
|
298
|
+
}
|
|
299
|
+
catch (err) {
|
|
300
|
+
return { success: false, output: "", error: "Image generation failed: " + err.message };
|
|
301
|
+
}
|
|
302
|
+
}
|
|
303
|
+
async executeSendMessage(args) {
|
|
304
|
+
const channel = String(args.channel || "");
|
|
305
|
+
const peerId = String(args.peerId || args.to || "");
|
|
306
|
+
const text = String(args.text || args.message || "");
|
|
307
|
+
if (!text)
|
|
308
|
+
return { success: false, output: "", error: "No message text" };
|
|
309
|
+
// Requires approval
|
|
310
|
+
const approved = await requestApproval("send_message", `Send to ${channel}:${peerId}: ${text.slice(0, 50)}`, args);
|
|
311
|
+
if (!approved)
|
|
312
|
+
return { success: false, output: "", error: "Send not approved" };
|
|
313
|
+
// Delegate to channel manager (will be wired in gateway)
|
|
314
|
+
return { success: true, output: `Message queued for ${channel}:${peerId}` };
|
|
315
|
+
}
|
|
316
|
+
executeScheduleTask(args) {
|
|
317
|
+
const name = String(args.name || "");
|
|
318
|
+
const cron = String(args.cron || "");
|
|
319
|
+
const instruction = String(args.instruction || "");
|
|
320
|
+
if (!name || !cron || !instruction) {
|
|
321
|
+
return { success: false, output: "", error: "name, cron, and instruction are required" };
|
|
322
|
+
}
|
|
323
|
+
// Will be wired to CronService
|
|
324
|
+
return { success: true, output: `Task "${name}" scheduled: ${cron}` };
|
|
325
|
+
}
|
|
326
|
+
async executeWalletBalance(_args) {
|
|
327
|
+
try {
|
|
328
|
+
const { getBalance, getWalletAddress } = await import("../wallet/x402.js");
|
|
329
|
+
const address = getWalletAddress(this.runtimeDir);
|
|
330
|
+
if (!address)
|
|
331
|
+
return { success: false, output: "", error: "Wallet not initialized" };
|
|
332
|
+
const balance = await getBalance(this.runtimeDir);
|
|
333
|
+
return { success: true, output: `Address: ${address}\nUSDC Balance: ${balance}` };
|
|
334
|
+
}
|
|
335
|
+
catch (err) {
|
|
336
|
+
return { success: false, output: "", error: err.message };
|
|
337
|
+
}
|
|
338
|
+
}
|
|
339
|
+
async executeWalletPay(args) {
|
|
340
|
+
const to = String(args.to || args.address || "");
|
|
341
|
+
const amount = String(args.amount || "");
|
|
342
|
+
if (!to || !amount)
|
|
343
|
+
return { success: false, output: "", error: "to and amount required" };
|
|
344
|
+
const approved = await requestApproval("wallet_pay", `Send ${amount} USDC to ${to}`, args);
|
|
345
|
+
if (!approved)
|
|
346
|
+
return { success: false, output: "", error: "Payment not approved" };
|
|
347
|
+
return { success: true, output: `Payment of ${amount} USDC to ${to} initiated` };
|
|
348
|
+
}
|
|
349
|
+
executeListDirectory(args) {
|
|
350
|
+
const dir = String(args.path || args.directory || process.cwd());
|
|
351
|
+
try {
|
|
352
|
+
const entries = readdirSync(dir, { withFileTypes: true });
|
|
353
|
+
const output = entries
|
|
354
|
+
.map((e) => `${e.isDirectory() ? "[DIR] " : " "}${e.name}`)
|
|
355
|
+
.join("\n");
|
|
356
|
+
return { success: true, output };
|
|
357
|
+
}
|
|
358
|
+
catch (err) {
|
|
359
|
+
return { success: false, output: "", error: err.message };
|
|
360
|
+
}
|
|
361
|
+
}
|
|
362
|
+
}
|
|
363
|
+
//# sourceMappingURL=tool-executor.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"tool-executor.js","sourceRoot":"","sources":["../../src/agents/tool-executor.ts"],"names":[],"mappings":"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"}
|
|
@@ -0,0 +1,10 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* Coder agent — specializes in code generation, debugging, and refactoring.
|
|
3
|
+
*
|
|
4
|
+
* Capabilities: code-gen, refactor, debug, test, explain, review
|
|
5
|
+
* Default model: gemini-2.5-pro (needs strong reasoning)
|
|
6
|
+
*/
|
|
7
|
+
import type { AgentTypeConfig } from "../workspace.js";
|
|
8
|
+
export declare const CODER_CONFIG: AgentTypeConfig;
|
|
9
|
+
export default CODER_CONFIG;
|
|
10
|
+
//# sourceMappingURL=coder.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"coder.d.ts","sourceRoot":"","sources":["../../../src/agents/types/coder.ts"],"names":[],"mappings":"AAAA;;;;;GAKG;AAEH,OAAO,KAAK,EAAE,eAAe,EAAE,MAAM,iBAAiB,CAAC;AAoBvD,eAAO,MAAM,YAAY,EAAE,eAiB1B,CAAC;AAEF,eAAe,YAAY,CAAC"}
|
|
@@ -0,0 +1,43 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* Coder agent — specializes in code generation, debugging, and refactoring.
|
|
3
|
+
*
|
|
4
|
+
* Capabilities: code-gen, refactor, debug, test, explain, review
|
|
5
|
+
* Default model: gemini-2.5-pro (needs strong reasoning)
|
|
6
|
+
*/
|
|
7
|
+
const CODER_SYSTEM_PROMPT = `You are a senior software engineer. You write clean, production-ready code.
|
|
8
|
+
|
|
9
|
+
Capabilities:
|
|
10
|
+
- Generate code in any language (TypeScript, Python, Rust, Go, Java, C++, etc.)
|
|
11
|
+
- Debug issues by analyzing error messages, stack traces, and code
|
|
12
|
+
- Refactor code for better structure, performance, and readability
|
|
13
|
+
- Write and run tests
|
|
14
|
+
- Explain complex code clearly
|
|
15
|
+
- Review code for bugs, security issues, and best practices
|
|
16
|
+
|
|
17
|
+
Rules:
|
|
18
|
+
- Always write TypeScript-strict, ESM-compatible code by default
|
|
19
|
+
- Prefer simple solutions over complex ones
|
|
20
|
+
- Never introduce security vulnerabilities
|
|
21
|
+
- Test your changes before declaring done
|
|
22
|
+
- Use existing patterns in the codebase
|
|
23
|
+
- Minimize token usage — be concise, don't repeat code that doesn't change`;
|
|
24
|
+
export const CODER_CONFIG = {
|
|
25
|
+
id: "coder",
|
|
26
|
+
name: "Coder",
|
|
27
|
+
description: "Code generation, debugging, refactoring, and testing",
|
|
28
|
+
systemPrompt: CODER_SYSTEM_PROMPT,
|
|
29
|
+
defaultModel: "gemini-2.5-pro",
|
|
30
|
+
capabilities: ["code-gen", "refactor", "debug", "test", "explain", "review"],
|
|
31
|
+
tools: [
|
|
32
|
+
"bash",
|
|
33
|
+
"file_read",
|
|
34
|
+
"file_write",
|
|
35
|
+
"file_search",
|
|
36
|
+
"list_directory",
|
|
37
|
+
"memory_search",
|
|
38
|
+
"web_fetch",
|
|
39
|
+
],
|
|
40
|
+
thinkingLevel: "medium",
|
|
41
|
+
};
|
|
42
|
+
export default CODER_CONFIG;
|
|
43
|
+
//# sourceMappingURL=coder.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"coder.js","sourceRoot":"","sources":["../../../src/agents/types/coder.ts"],"names":[],"mappings":"AAAA;;;;;GAKG;AAIH,MAAM,mBAAmB,GAAG;;;;;;;;;;;;;;;;2EAgB+C,CAAC;AAE5E,MAAM,CAAC,MAAM,YAAY,GAAoB;IAC3C,EAAE,EAAE,OAAO;IACX,IAAI,EAAE,OAAO;IACb,WAAW,EAAE,sDAAsD;IACnE,YAAY,EAAE,mBAAmB;IACjC,YAAY,EAAE,gBAAgB;IAC9B,YAAY,EAAE,CAAC,UAAU,EAAE,UAAU,EAAE,OAAO,EAAE,MAAM,EAAE,SAAS,EAAE,QAAQ,CAAC;IAC5E,KAAK,EAAE;QACL,MAAM;QACN,WAAW;QACX,YAAY;QACZ,aAAa;QACb,gBAAgB;QAChB,eAAe;QACf,WAAW;KACZ;IACD,aAAa,EAAE,QAAQ;CACxB,CAAC;AAEF,eAAe,YAAY,CAAC"}
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"data.d.ts","sourceRoot":"","sources":["../../../src/agents/types/data.ts"],"names":[],"mappings":"AAAA;;GAEG;AAEH,OAAO,KAAK,EAAE,eAAe,EAAE,MAAM,iBAAiB,CAAC;AAkBvD,eAAO,MAAM,WAAW,EAAE,eASzB,CAAC;AAEF,eAAe,WAAW,CAAC"}
|
|
@@ -0,0 +1,30 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* Data Analyst agent — specializes in data analysis, SQL, and visualization.
|
|
3
|
+
*/
|
|
4
|
+
const DATA_SYSTEM_PROMPT = `You are a data analyst. You analyze data, write queries, and create insights.
|
|
5
|
+
|
|
6
|
+
Capabilities:
|
|
7
|
+
- Write SQL queries for any database
|
|
8
|
+
- Analyze CSV, JSON, and structured data
|
|
9
|
+
- Statistical analysis and trend detection
|
|
10
|
+
- Create data visualizations (describe charts, generate chart configs)
|
|
11
|
+
- Build data pipelines
|
|
12
|
+
|
|
13
|
+
Rules:
|
|
14
|
+
- Validate data quality before analysis
|
|
15
|
+
- Use parameterized queries (never concatenate user input)
|
|
16
|
+
- Show your methodology
|
|
17
|
+
- Quantify uncertainty
|
|
18
|
+
- Present findings clearly with key metrics first`;
|
|
19
|
+
export const DATA_CONFIG = {
|
|
20
|
+
id: "data",
|
|
21
|
+
name: "Data Analyst",
|
|
22
|
+
description: "Data analysis, SQL, visualization, and insights",
|
|
23
|
+
systemPrompt: DATA_SYSTEM_PROMPT,
|
|
24
|
+
defaultModel: "gemini-2.5-pro",
|
|
25
|
+
capabilities: ["sql", "analysis", "visualization", "statistics", "etl"],
|
|
26
|
+
tools: ["bash", "file_read", "file_write", "memory_search", "web_fetch"],
|
|
27
|
+
thinkingLevel: "medium",
|
|
28
|
+
};
|
|
29
|
+
export default DATA_CONFIG;
|
|
30
|
+
//# sourceMappingURL=data.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"data.js","sourceRoot":"","sources":["../../../src/agents/types/data.ts"],"names":[],"mappings":"AAAA;;GAEG;AAIH,MAAM,kBAAkB,GAAG;;;;;;;;;;;;;;kDAcuB,CAAC;AAEnD,MAAM,CAAC,MAAM,WAAW,GAAoB;IAC1C,EAAE,EAAE,MAAM;IACV,IAAI,EAAE,cAAc;IACpB,WAAW,EAAE,iDAAiD;IAC9D,YAAY,EAAE,kBAAkB;IAChC,YAAY,EAAE,gBAAgB;IAC9B,YAAY,EAAE,CAAC,KAAK,EAAE,UAAU,EAAE,eAAe,EAAE,YAAY,EAAE,KAAK,CAAC;IACvE,KAAK,EAAE,CAAC,MAAM,EAAE,WAAW,EAAE,YAAY,EAAE,eAAe,EAAE,WAAW,CAAC;IACxE,aAAa,EAAE,QAAQ;CACxB,CAAC;AAEF,eAAe,WAAW,CAAC"}
|
|
@@ -0,0 +1,7 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* Designer agent — specializes in UI/UX suggestions and design systems.
|
|
3
|
+
*/
|
|
4
|
+
import type { AgentTypeConfig } from "../workspace.js";
|
|
5
|
+
export declare const DESIGNER_CONFIG: AgentTypeConfig;
|
|
6
|
+
export default DESIGNER_CONFIG;
|
|
7
|
+
//# sourceMappingURL=designer.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"designer.d.ts","sourceRoot":"","sources":["../../../src/agents/types/designer.ts"],"names":[],"mappings":"AAAA;;GAEG;AAEH,OAAO,KAAK,EAAE,eAAe,EAAE,MAAM,iBAAiB,CAAC;AAkBvD,eAAO,MAAM,eAAe,EAAE,eAS7B,CAAC;AAEF,eAAe,eAAe,CAAC"}
|
|
@@ -0,0 +1,30 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* Designer agent — specializes in UI/UX suggestions and design systems.
|
|
3
|
+
*/
|
|
4
|
+
const DESIGNER_SYSTEM_PROMPT = `You are a UI/UX designer. You create intuitive, beautiful interfaces.
|
|
5
|
+
|
|
6
|
+
Capabilities:
|
|
7
|
+
- Design component layouts and page structures
|
|
8
|
+
- Create design system tokens (colors, spacing, typography)
|
|
9
|
+
- Write Tailwind CSS and component markup
|
|
10
|
+
- Review designs for accessibility (WCAG)
|
|
11
|
+
- Suggest UX improvements
|
|
12
|
+
|
|
13
|
+
Rules:
|
|
14
|
+
- Mobile-first responsive design
|
|
15
|
+
- Accessibility is non-negotiable (contrast, labels, keyboard nav)
|
|
16
|
+
- Follow platform conventions
|
|
17
|
+
- Consistent spacing and typography
|
|
18
|
+
- Prefer system fonts and minimal dependencies`;
|
|
19
|
+
export const DESIGNER_CONFIG = {
|
|
20
|
+
id: "designer",
|
|
21
|
+
name: "Designer",
|
|
22
|
+
description: "UI/UX design, component layouts, and accessibility",
|
|
23
|
+
systemPrompt: DESIGNER_SYSTEM_PROMPT,
|
|
24
|
+
defaultModel: "gemini-2.5-pro",
|
|
25
|
+
capabilities: ["ui-design", "ux-review", "accessibility", "design-system", "css"],
|
|
26
|
+
tools: ["file_read", "file_write", "web_fetch", "image_generate"],
|
|
27
|
+
thinkingLevel: "medium",
|
|
28
|
+
};
|
|
29
|
+
export default DESIGNER_CONFIG;
|
|
30
|
+
//# sourceMappingURL=designer.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"designer.js","sourceRoot":"","sources":["../../../src/agents/types/designer.ts"],"names":[],"mappings":"AAAA;;GAEG;AAIH,MAAM,sBAAsB,GAAG;;;;;;;;;;;;;;+CAcgB,CAAC;AAEhD,MAAM,CAAC,MAAM,eAAe,GAAoB;IAC9C,EAAE,EAAE,UAAU;IACd,IAAI,EAAE,UAAU;IAChB,WAAW,EAAE,oDAAoD;IACjE,YAAY,EAAE,sBAAsB;IACpC,YAAY,EAAE,gBAAgB;IAC9B,YAAY,EAAE,CAAC,WAAW,EAAE,WAAW,EAAE,eAAe,EAAE,eAAe,EAAE,KAAK,CAAC;IACjF,KAAK,EAAE,CAAC,WAAW,EAAE,YAAY,EAAE,WAAW,EAAE,gBAAgB,CAAC;IACjE,aAAa,EAAE,QAAQ;CACxB,CAAC;AAEF,eAAe,eAAe,CAAC"}
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"devops.d.ts","sourceRoot":"","sources":["../../../src/agents/types/devops.ts"],"names":[],"mappings":"AAAA;;GAEG;AAEH,OAAO,KAAK,EAAE,eAAe,EAAE,MAAM,iBAAiB,CAAC;AAkBvD,eAAO,MAAM,aAAa,EAAE,eAS3B,CAAC;AAEF,eAAe,aAAa,CAAC"}
|
|
@@ -0,0 +1,30 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* DevOps agent — specializes in CI/CD, deployment, and infrastructure.
|
|
3
|
+
*/
|
|
4
|
+
const DEVOPS_SYSTEM_PROMPT = `You are a DevOps engineer. You handle deployment, CI/CD, and infrastructure.
|
|
5
|
+
|
|
6
|
+
Capabilities:
|
|
7
|
+
- Configure CI/CD pipelines (GitHub Actions, GitLab CI)
|
|
8
|
+
- Write Dockerfiles and docker-compose configurations
|
|
9
|
+
- Set up environment variables and secrets
|
|
10
|
+
- Monitor logs and health checks
|
|
11
|
+
- Configure DNS, SSL, and cloud services
|
|
12
|
+
|
|
13
|
+
Rules:
|
|
14
|
+
- Never expose secrets in code or logs
|
|
15
|
+
- Always use environment variables for credentials
|
|
16
|
+
- Follow 12-factor app principles
|
|
17
|
+
- Prefer managed services over self-hosted
|
|
18
|
+
- Document all infrastructure changes`;
|
|
19
|
+
export const DEVOPS_CONFIG = {
|
|
20
|
+
id: "devops",
|
|
21
|
+
name: "DevOps",
|
|
22
|
+
description: "CI/CD, deployment, monitoring, and infrastructure",
|
|
23
|
+
systemPrompt: DEVOPS_SYSTEM_PROMPT,
|
|
24
|
+
defaultModel: "gemini-2.5-flash",
|
|
25
|
+
capabilities: ["deploy", "monitor", "ci-cd", "docker", "cloud"],
|
|
26
|
+
tools: ["bash", "file_read", "file_write", "file_search", "web_fetch"],
|
|
27
|
+
thinkingLevel: "low",
|
|
28
|
+
};
|
|
29
|
+
export default DEVOPS_CONFIG;
|
|
30
|
+
//# sourceMappingURL=devops.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"devops.js","sourceRoot":"","sources":["../../../src/agents/types/devops.ts"],"names":[],"mappings":"AAAA;;GAEG;AAIH,MAAM,oBAAoB,GAAG;;;;;;;;;;;;;;sCAcS,CAAC;AAEvC,MAAM,CAAC,MAAM,aAAa,GAAoB;IAC5C,EAAE,EAAE,QAAQ;IACZ,IAAI,EAAE,QAAQ;IACd,WAAW,EAAE,mDAAmD;IAChE,YAAY,EAAE,oBAAoB;IAClC,YAAY,EAAE,kBAAkB;IAChC,YAAY,EAAE,CAAC,QAAQ,EAAE,SAAS,EAAE,OAAO,EAAE,QAAQ,EAAE,OAAO,CAAC;IAC/D,KAAK,EAAE,CAAC,MAAM,EAAE,WAAW,EAAE,YAAY,EAAE,aAAa,EAAE,WAAW,CAAC;IACtE,aAAa,EAAE,KAAK;CACrB,CAAC;AAEF,eAAe,aAAa,CAAC"}
|
|
@@ -0,0 +1,7 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* Planner agent — specializes in task breakdown and project management.
|
|
3
|
+
*/
|
|
4
|
+
import type { AgentTypeConfig } from "../workspace.js";
|
|
5
|
+
export declare const PLANNER_CONFIG: AgentTypeConfig;
|
|
6
|
+
export default PLANNER_CONFIG;
|
|
7
|
+
//# sourceMappingURL=planner.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"planner.d.ts","sourceRoot":"","sources":["../../../src/agents/types/planner.ts"],"names":[],"mappings":"AAAA;;GAEG;AAEH,OAAO,KAAK,EAAE,eAAe,EAAE,MAAM,iBAAiB,CAAC;AAuBvD,eAAO,MAAM,cAAc,EAAE,eAS5B,CAAC;AAEF,eAAe,cAAc,CAAC"}
|
|
@@ -0,0 +1,35 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* Planner agent — specializes in task breakdown and project management.
|
|
3
|
+
*/
|
|
4
|
+
const PLANNER_SYSTEM_PROMPT = `You are a project planner. You break complex tasks into actionable steps.
|
|
5
|
+
|
|
6
|
+
Capabilities:
|
|
7
|
+
- Decompose complex tasks into subtasks
|
|
8
|
+
- Identify which agent type should handle each subtask
|
|
9
|
+
- Estimate complexity and dependencies
|
|
10
|
+
- Create execution order (parallel vs sequential)
|
|
11
|
+
- Track progress across multi-step tasks
|
|
12
|
+
|
|
13
|
+
Rules:
|
|
14
|
+
- Break tasks into the smallest useful units
|
|
15
|
+
- Identify dependencies explicitly
|
|
16
|
+
- Assign the right agent for each subtask
|
|
17
|
+
- Consider error handling and fallbacks
|
|
18
|
+
- Keep plans concise — no unnecessary steps
|
|
19
|
+
|
|
20
|
+
Output format for task breakdown:
|
|
21
|
+
1. [agent: coder] Task description
|
|
22
|
+
2. [agent: security] Task description (depends on: 1)
|
|
23
|
+
3. [agent: devops] Task description (parallel with: 2)`;
|
|
24
|
+
export const PLANNER_CONFIG = {
|
|
25
|
+
id: "planner",
|
|
26
|
+
name: "Planner",
|
|
27
|
+
description: "Task breakdown, project planning, and coordination",
|
|
28
|
+
systemPrompt: PLANNER_SYSTEM_PROMPT,
|
|
29
|
+
defaultModel: "gemini-2.5-flash",
|
|
30
|
+
capabilities: ["plan", "decompose", "prioritize", "coordinate", "estimate"],
|
|
31
|
+
tools: ["memory_search", "file_read", "file_search", "list_directory"],
|
|
32
|
+
thinkingLevel: "medium",
|
|
33
|
+
};
|
|
34
|
+
export default PLANNER_CONFIG;
|
|
35
|
+
//# sourceMappingURL=planner.js.map
|