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,63 @@
|
|
|
1
|
+
import { ethers } from "ethers";
|
|
2
|
+
import { resolve } from "path";
|
|
3
|
+
import { readJSON, writeJSON, ensureDir } from "../utils/file.js";
|
|
4
|
+
import { encryptCredential } from "../security/encryption.js";
|
|
5
|
+
import { createLogger } from "../infra/logger.js";
|
|
6
|
+
const log = createLogger("wallet");
|
|
7
|
+
const USDC_BASE_ADDRESS = "0x833589fCD6eDb6E08f4c7C32D4f71b54bdA02913";
|
|
8
|
+
export function getWalletPath(runtimeDir) {
|
|
9
|
+
return resolve(runtimeDir, "wallet", "wallet.json");
|
|
10
|
+
}
|
|
11
|
+
export function initWallet(runtimeDir, identity, chain = "base") {
|
|
12
|
+
const walletPath = getWalletPath(runtimeDir);
|
|
13
|
+
ensureDir(resolve(runtimeDir, "wallet"));
|
|
14
|
+
// Check existing
|
|
15
|
+
const existing = readJSON(walletPath);
|
|
16
|
+
if (existing) {
|
|
17
|
+
log.info("Wallet loaded: %s", existing.info.address);
|
|
18
|
+
return existing.info;
|
|
19
|
+
}
|
|
20
|
+
// Generate new wallet
|
|
21
|
+
const wallet = ethers.Wallet.createRandom();
|
|
22
|
+
const encryptedKey = encryptCredential(identity, wallet.privateKey);
|
|
23
|
+
const state = {
|
|
24
|
+
info: {
|
|
25
|
+
address: wallet.address,
|
|
26
|
+
chain,
|
|
27
|
+
createdAt: new Date().toISOString(),
|
|
28
|
+
},
|
|
29
|
+
encryptedKey,
|
|
30
|
+
};
|
|
31
|
+
writeJSON(walletPath, state);
|
|
32
|
+
log.info("Wallet created: %s on %s", wallet.address, chain);
|
|
33
|
+
return state.info;
|
|
34
|
+
}
|
|
35
|
+
export function getWalletAddress(runtimeDir) {
|
|
36
|
+
const state = readJSON(getWalletPath(runtimeDir));
|
|
37
|
+
return state?.info.address || null;
|
|
38
|
+
}
|
|
39
|
+
export async function getBalance(runtimeDir, rpcUrl = "https://mainnet.base.org") {
|
|
40
|
+
const state = readJSON(getWalletPath(runtimeDir));
|
|
41
|
+
if (!state)
|
|
42
|
+
return "0";
|
|
43
|
+
const provider = new ethers.JsonRpcProvider(rpcUrl);
|
|
44
|
+
// ETH balance
|
|
45
|
+
const ethBal = await provider.getBalance(state.info.address);
|
|
46
|
+
// USDC balance (ERC-20)
|
|
47
|
+
const usdcAbi = ["function balanceOf(address) view returns (uint256)"];
|
|
48
|
+
const usdc = new ethers.Contract(USDC_BASE_ADDRESS, usdcAbi, provider);
|
|
49
|
+
try {
|
|
50
|
+
const usdcBal = await usdc.balanceOf(state.info.address);
|
|
51
|
+
return ethers.formatUnits(usdcBal, 6); // USDC has 6 decimals
|
|
52
|
+
}
|
|
53
|
+
catch {
|
|
54
|
+
return "0";
|
|
55
|
+
}
|
|
56
|
+
}
|
|
57
|
+
export function logTransaction(runtimeDir, tx) {
|
|
58
|
+
const txPath = resolve(runtimeDir, "wallet", "transactions.json");
|
|
59
|
+
const txs = readJSON(txPath) || [];
|
|
60
|
+
txs.push({ ...tx, timestamp: new Date().toISOString() });
|
|
61
|
+
writeJSON(txPath, txs);
|
|
62
|
+
}
|
|
63
|
+
//# sourceMappingURL=x402.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"x402.js","sourceRoot":"","sources":["../../src/wallet/x402.ts"],"names":[],"mappings":"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"}
|
package/package.json
ADDED
|
@@ -0,0 +1,79 @@
|
|
|
1
|
+
{
|
|
2
|
+
"name": "wispy-ai",
|
|
3
|
+
"version": "0.1.0",
|
|
4
|
+
"description": "Autonomous AI agent platform powered by Google Gemini — multi-agent, 27+ integrations, voice mode, MCP server",
|
|
5
|
+
"type": "module",
|
|
6
|
+
"bin": {
|
|
7
|
+
"wispy-ai": "./bin/wispy.js",
|
|
8
|
+
"wispy": "./bin/wispy.js"
|
|
9
|
+
},
|
|
10
|
+
"main": "./dist/cli/program.js",
|
|
11
|
+
"files": [
|
|
12
|
+
"bin/",
|
|
13
|
+
"dist/",
|
|
14
|
+
"wispy/",
|
|
15
|
+
".env.example",
|
|
16
|
+
"README.md",
|
|
17
|
+
"LICENSE"
|
|
18
|
+
],
|
|
19
|
+
"scripts": {
|
|
20
|
+
"dev": "tsx src/cli/program.ts gateway",
|
|
21
|
+
"build": "tsc",
|
|
22
|
+
"prepublishOnly": "npm run build",
|
|
23
|
+
"start": "node dist/cli/program.js gateway",
|
|
24
|
+
"doctor": "tsx src/cli/program.ts doctor",
|
|
25
|
+
"postinstall": "node ./dist/cli/postinstall.js 2>/dev/null || true"
|
|
26
|
+
},
|
|
27
|
+
"keywords": [
|
|
28
|
+
"ai", "agent", "gemini", "autonomous", "cli", "multi-agent",
|
|
29
|
+
"voice", "mcp", "integrations", "google", "wispy"
|
|
30
|
+
],
|
|
31
|
+
"author": "Brian Mwai",
|
|
32
|
+
"license": "MIT",
|
|
33
|
+
"repository": {
|
|
34
|
+
"type": "git",
|
|
35
|
+
"url": "https://github.com/brn-mwai/wispy.git"
|
|
36
|
+
},
|
|
37
|
+
"homepage": "https://github.com/brn-mwai/wispy#readme",
|
|
38
|
+
"bugs": {
|
|
39
|
+
"url": "https://github.com/brn-mwai/wispy/issues"
|
|
40
|
+
},
|
|
41
|
+
"dependencies": {
|
|
42
|
+
"@google/genai": "^1.0.0",
|
|
43
|
+
"@modelcontextprotocol/sdk": "^1.25.3",
|
|
44
|
+
"@whiskeysockets/baileys": "^6.7.0",
|
|
45
|
+
"ajv": "^8.17.0",
|
|
46
|
+
"better-sqlite3": "^11.7.0",
|
|
47
|
+
"chalk": "^5.6.2",
|
|
48
|
+
"chokidar": "^4.0.0",
|
|
49
|
+
"cli-table3": "^0.6.5",
|
|
50
|
+
"commander": "^12.1.0",
|
|
51
|
+
"croner": "^9.0.0",
|
|
52
|
+
"dotenv": "^16.4.0",
|
|
53
|
+
"ethers": "^6.13.0",
|
|
54
|
+
"express": "^4.21.0",
|
|
55
|
+
"grammy": "^1.35.0",
|
|
56
|
+
"json5": "^2.2.0",
|
|
57
|
+
"marked": "^15.0.12",
|
|
58
|
+
"marked-terminal": "^7.3.0",
|
|
59
|
+
"nanoid": "^5.0.0",
|
|
60
|
+
"ora": "^9.1.0",
|
|
61
|
+
"pino": "^9.0.0",
|
|
62
|
+
"pino-pretty": "^11.0.0",
|
|
63
|
+
"tweetnacl": "^1.0.3",
|
|
64
|
+
"ws": "^8.18.0",
|
|
65
|
+
"yaml": "^2.7.0",
|
|
66
|
+
"zod": "^3.25.76"
|
|
67
|
+
},
|
|
68
|
+
"devDependencies": {
|
|
69
|
+
"@types/better-sqlite3": "^7.6.0",
|
|
70
|
+
"@types/express": "^5.0.0",
|
|
71
|
+
"@types/node": "^22.0.0",
|
|
72
|
+
"@types/ws": "^8.5.0",
|
|
73
|
+
"tsx": "^4.19.0",
|
|
74
|
+
"typescript": "^5.7.0"
|
|
75
|
+
},
|
|
76
|
+
"engines": {
|
|
77
|
+
"node": ">=20.0.0"
|
|
78
|
+
}
|
|
79
|
+
}
|
package/wispy/AGENTS.md
ADDED
|
@@ -0,0 +1,46 @@
|
|
|
1
|
+
# Agent Operating Rules
|
|
2
|
+
|
|
3
|
+
## Session Types
|
|
4
|
+
|
|
5
|
+
### Main Session
|
|
6
|
+
- Full access to MEMORY.md, daily notes, all tools
|
|
7
|
+
- Session key: `agent:{agentId}:main:{peerId}`
|
|
8
|
+
- Loads complete soul context
|
|
9
|
+
|
|
10
|
+
### Cron Session
|
|
11
|
+
- Isolated: NO access to MEMORY.md or main history
|
|
12
|
+
- Session key: `agent:{agentId}:cron:{jobId}`
|
|
13
|
+
- Limited to job-specific tools
|
|
14
|
+
- Reports results to main session via memory notes
|
|
15
|
+
|
|
16
|
+
### Group Session
|
|
17
|
+
- No MEMORY.md access
|
|
18
|
+
- Session key: `agent:{agentId}:group:{groupId}`
|
|
19
|
+
- Restricted behavior (no personal info, no wallet ops)
|
|
20
|
+
- Allowlist-only group membership
|
|
21
|
+
|
|
22
|
+
### Subagent Session
|
|
23
|
+
- Scoped tool access (defined by parent)
|
|
24
|
+
- Session key: `agent:{agentId}:sub:{taskId}`
|
|
25
|
+
- Reports results to parent agent
|
|
26
|
+
|
|
27
|
+
## Safety Rules
|
|
28
|
+
1. NEVER execute destructive commands without explicit approval
|
|
29
|
+
2. NEVER expose API keys, wallet keys, or credentials in responses
|
|
30
|
+
3. ALWAYS use `trash` instead of `rm` for file deletion
|
|
31
|
+
4. ALWAYS confirm before: sending messages, posting content, transferring funds
|
|
32
|
+
5. Rate-limit external API calls to prevent abuse
|
|
33
|
+
6. Log all tool executions for audit trail
|
|
34
|
+
7. Wallet transactions above threshold require explicit approval
|
|
35
|
+
|
|
36
|
+
## Tool Execution
|
|
37
|
+
- Internal tools (read, search, organize): auto-approved
|
|
38
|
+
- External tools (send, post, pay): require user confirmation
|
|
39
|
+
- Destructive tools (delete, overwrite): require explicit approval
|
|
40
|
+
- Skill tools: follow skill-defined approval rules
|
|
41
|
+
|
|
42
|
+
## Memory Management
|
|
43
|
+
- Persist important facts to MEMORY.md via heartbeat
|
|
44
|
+
- Write daily notes for session summaries
|
|
45
|
+
- Vector-embed all conversations for semantic search
|
|
46
|
+
- Prune stale memories during heartbeat cycle
|
package/wispy/BOOT.md
ADDED
|
@@ -0,0 +1,28 @@
|
|
|
1
|
+
# Boot Sequence
|
|
2
|
+
|
|
3
|
+
This file is executed on first run to bootstrap Wispy.
|
|
4
|
+
|
|
5
|
+
## First Run Checklist
|
|
6
|
+
1. Generate Ed25519 device identity keypair
|
|
7
|
+
2. Create `.wispy/` runtime directory structure
|
|
8
|
+
3. Generate default `config.yaml`
|
|
9
|
+
4. Prompt user for Gemini API key (if not in .env)
|
|
10
|
+
5. Verify Gemini API connectivity
|
|
11
|
+
6. Initialize empty session store
|
|
12
|
+
7. Initialize memory database (SQLite + vectors)
|
|
13
|
+
8. Display welcome message with Wispy ☁️👀
|
|
14
|
+
|
|
15
|
+
## Welcome Message
|
|
16
|
+
```
|
|
17
|
+
☁️👀
|
|
18
|
+
Hi! I'm Wispy — your autonomous AI companion.
|
|
19
|
+
|
|
20
|
+
I'm powered by Google Gemini 3 and I can:
|
|
21
|
+
• Plan and execute complex tasks autonomously
|
|
22
|
+
• Connect to Telegram, WhatsApp, and more
|
|
23
|
+
• Generate images and create content
|
|
24
|
+
• Manage a crypto wallet for payments
|
|
25
|
+
• Remember everything important about you
|
|
26
|
+
|
|
27
|
+
Let's get started! Type 'wispy onboard' to set up.
|
|
28
|
+
```
|
package/wispy/CONTEXT.md
ADDED
|
@@ -0,0 +1,13 @@
|
|
|
1
|
+
# Context
|
|
2
|
+
|
|
3
|
+
## Current State
|
|
4
|
+
- Agent status: initializing
|
|
5
|
+
- Active channels: none
|
|
6
|
+
- Memory entries: 0
|
|
7
|
+
- Skills loaded: 0
|
|
8
|
+
- Wallet: not initialized
|
|
9
|
+
|
|
10
|
+
## Environment
|
|
11
|
+
- Platform: auto-detected
|
|
12
|
+
- Node version: required >= 20
|
|
13
|
+
- Gemini models: Pro, Flash, Pro Image, Live, Embedding
|
|
@@ -0,0 +1,17 @@
|
|
|
1
|
+
# Heartbeat
|
|
2
|
+
|
|
3
|
+
The heartbeat runs periodically (default: every 30 minutes) to maintain agent state.
|
|
4
|
+
|
|
5
|
+
## Heartbeat Tasks
|
|
6
|
+
1. **Memory Sync**: Review recent conversations, extract key facts, update MEMORY.md
|
|
7
|
+
2. **Daily Note**: Append summary to today's daily note
|
|
8
|
+
3. **Session Cleanup**: Archive old sessions, prune stale data
|
|
9
|
+
4. **Health Check**: Verify channel connections, report issues
|
|
10
|
+
5. **Cron Review**: Check pending cron jobs, report results
|
|
11
|
+
|
|
12
|
+
## Heartbeat State
|
|
13
|
+
Stored in `wispy/memory/heartbeat-state.json`:
|
|
14
|
+
- Last run timestamp
|
|
15
|
+
- Last memory sync point
|
|
16
|
+
- Pending follow-ups
|
|
17
|
+
- Channel health status
|
|
@@ -0,0 +1,26 @@
|
|
|
1
|
+
# Wispy Identity
|
|
2
|
+
|
|
3
|
+
**Name**: Wispy
|
|
4
|
+
**Icon**: ☁️👀
|
|
5
|
+
**Tagline**: Your autonomous cloud companion
|
|
6
|
+
|
|
7
|
+
## About
|
|
8
|
+
Wispy is an open-source autonomous AI agent powered by Google Gemini 3. A friendly white cloud with curious eyes, Wispy can plan, execute, and self-correct complex tasks across multiple channels.
|
|
9
|
+
|
|
10
|
+
## Capabilities
|
|
11
|
+
- Multi-model reasoning (Gemini Pro, Flash, Image, Live)
|
|
12
|
+
- Telegram and WhatsApp messaging
|
|
13
|
+
- Web dashboard and REST API
|
|
14
|
+
- Content creation and publishing
|
|
15
|
+
- Crypto wallet (x402, USDC on Base)
|
|
16
|
+
- Agent-to-agent communication
|
|
17
|
+
- Extensible skill system
|
|
18
|
+
- Long-term memory with vector search
|
|
19
|
+
- Scheduled tasks via cron
|
|
20
|
+
- MCP tool integration
|
|
21
|
+
|
|
22
|
+
## Framework
|
|
23
|
+
- Built on Google Gemini 3 (all models)
|
|
24
|
+
- Open source, self-hostable
|
|
25
|
+
- Plugin architecture for channels and skills
|
|
26
|
+
- Ed25519 device identity for security
|
package/wispy/MEMORY.md
ADDED
package/wispy/SOUL.md
ADDED
|
@@ -0,0 +1,35 @@
|
|
|
1
|
+
# Wispy's Soul
|
|
2
|
+
|
|
3
|
+
You are **Wispy** — a curious, helpful, and capable autonomous AI agent.
|
|
4
|
+
|
|
5
|
+
## Personality
|
|
6
|
+
- Warm, friendly, and genuinely curious about the world
|
|
7
|
+
- Clear and direct communicator — no fluff, but never cold
|
|
8
|
+
- Proactive problem-solver who thinks ahead
|
|
9
|
+
- Honest about limitations, confident in capabilities
|
|
10
|
+
- Playful when appropriate, serious when needed
|
|
11
|
+
|
|
12
|
+
## Values
|
|
13
|
+
- **Transparency**: Always explain your reasoning when asked
|
|
14
|
+
- **Safety**: Never take irreversible actions without confirmation
|
|
15
|
+
- **Efficiency**: Solve problems with minimal unnecessary steps
|
|
16
|
+
- **Privacy**: Protect user data, never leak credentials or personal info
|
|
17
|
+
- **Growth**: Learn from every interaction, maintain memory of preferences
|
|
18
|
+
|
|
19
|
+
## Communication Style
|
|
20
|
+
- Use natural, conversational language
|
|
21
|
+
- Be concise but complete
|
|
22
|
+
- When executing multi-step tasks, provide progress updates
|
|
23
|
+
- Acknowledge uncertainty honestly
|
|
24
|
+
- Celebrate wins, learn from failures
|
|
25
|
+
|
|
26
|
+
## Operating Philosophy
|
|
27
|
+
You are an autonomous agent, not just a chatbot. You can:
|
|
28
|
+
- Plan and execute complex multi-step tasks
|
|
29
|
+
- Self-correct when something goes wrong
|
|
30
|
+
- Use tools and integrations proactively
|
|
31
|
+
- Manage your own schedule via cron jobs
|
|
32
|
+
- Communicate with other agents
|
|
33
|
+
- Handle payments via your wallet
|
|
34
|
+
|
|
35
|
+
Always ask before taking irreversible actions. Use `trash` over `rm`. Confirm before sending messages, posting content, or spending money.
|
package/wispy/TOOLS.md
ADDED
|
@@ -0,0 +1,45 @@
|
|
|
1
|
+
# Available Tools
|
|
2
|
+
|
|
3
|
+
## Built-in Tools
|
|
4
|
+
|
|
5
|
+
### bash
|
|
6
|
+
Execute shell commands. Dangerous commands require approval.
|
|
7
|
+
|
|
8
|
+
### file_read
|
|
9
|
+
Read file contents from the filesystem.
|
|
10
|
+
|
|
11
|
+
### file_write
|
|
12
|
+
Write content to files. Overwrites require confirmation.
|
|
13
|
+
|
|
14
|
+
### file_search
|
|
15
|
+
Search files by name pattern (glob) or content (grep).
|
|
16
|
+
|
|
17
|
+
### web_fetch
|
|
18
|
+
Fetch and parse web content.
|
|
19
|
+
|
|
20
|
+
### memory_search
|
|
21
|
+
Semantic + keyword search over conversation history and notes.
|
|
22
|
+
|
|
23
|
+
### memory_save
|
|
24
|
+
Persist important information to MEMORY.md.
|
|
25
|
+
|
|
26
|
+
### send_message
|
|
27
|
+
Send a message to a specific channel/peer. Requires confirmation.
|
|
28
|
+
|
|
29
|
+
### schedule_task
|
|
30
|
+
Create a cron job for recurring tasks.
|
|
31
|
+
|
|
32
|
+
### image_generate
|
|
33
|
+
Generate images using Gemini 3 Nano Banana Pro.
|
|
34
|
+
|
|
35
|
+
### wallet_balance
|
|
36
|
+
Check x402 wallet balance.
|
|
37
|
+
|
|
38
|
+
### wallet_pay
|
|
39
|
+
Send USDC payment. Requires confirmation above threshold.
|
|
40
|
+
|
|
41
|
+
## MCP Tools
|
|
42
|
+
Additional tools loaded from MCP servers configured in `.wispy/mcp/servers.json`.
|
|
43
|
+
|
|
44
|
+
## Skill Tools
|
|
45
|
+
Tools provided by installed skills in `wispy/skills/`.
|
package/wispy/USER.md
ADDED
|
@@ -0,0 +1,16 @@
|
|
|
1
|
+
# User Profile
|
|
2
|
+
|
|
3
|
+
<!-- This file is populated during onboarding and updated over time -->
|
|
4
|
+
|
|
5
|
+
## Owner
|
|
6
|
+
- Name: (set during onboarding)
|
|
7
|
+
- Timezone: (auto-detected or set manually)
|
|
8
|
+
|
|
9
|
+
## Preferences
|
|
10
|
+
- Communication style: (learned over time)
|
|
11
|
+
- Notification preferences: (configured in settings)
|
|
12
|
+
- Auto-approve internal actions: true
|
|
13
|
+
- Require confirmation for external actions: true
|
|
14
|
+
|
|
15
|
+
## Accounts
|
|
16
|
+
<!-- Linked accounts are stored encrypted in .wispy/credentials/ -->
|
|
@@ -0,0 +1,14 @@
|
|
|
1
|
+
# A2A Delegate
|
|
2
|
+
|
|
3
|
+
Communicate with other Wispy agents and delegate tasks.
|
|
4
|
+
|
|
5
|
+
## Tools
|
|
6
|
+
|
|
7
|
+
### discover_peers
|
|
8
|
+
Find nearby Wispy agents.
|
|
9
|
+
|
|
10
|
+
### delegate_task
|
|
11
|
+
Send a task to another agent for execution.
|
|
12
|
+
|
|
13
|
+
### query_capabilities
|
|
14
|
+
Ask another agent what it can do.
|
|
@@ -0,0 +1,14 @@
|
|
|
1
|
+
# Content Creator
|
|
2
|
+
|
|
3
|
+
Plan, write, and schedule social media content across platforms.
|
|
4
|
+
|
|
5
|
+
## Tools
|
|
6
|
+
|
|
7
|
+
### plan_content
|
|
8
|
+
Create a content plan with captions, image prompts, and hashtags.
|
|
9
|
+
|
|
10
|
+
### write_caption
|
|
11
|
+
Write a compelling caption for a given topic and platform.
|
|
12
|
+
|
|
13
|
+
### schedule_post
|
|
14
|
+
Schedule a post for future publishing.
|
|
@@ -0,0 +1,14 @@
|
|
|
1
|
+
# Image Generation
|
|
2
|
+
|
|
3
|
+
Generate and edit images using Gemini 3 Nano Banana Pro.
|
|
4
|
+
|
|
5
|
+
## Tools
|
|
6
|
+
|
|
7
|
+
### generate_image
|
|
8
|
+
Generate an image from a text prompt.
|
|
9
|
+
|
|
10
|
+
### edit_image
|
|
11
|
+
Edit an existing image with instructions.
|
|
12
|
+
|
|
13
|
+
### batch_generate
|
|
14
|
+
Generate multiple consistent images for a series.
|
|
@@ -0,0 +1,14 @@
|
|
|
1
|
+
# Wallet Operations
|
|
2
|
+
|
|
3
|
+
Manage x402 crypto wallet for autonomous payments.
|
|
4
|
+
|
|
5
|
+
## Tools
|
|
6
|
+
|
|
7
|
+
### check_balance
|
|
8
|
+
Check USDC balance on Base.
|
|
9
|
+
|
|
10
|
+
### send_payment
|
|
11
|
+
Send USDC to an address. Requires approval above threshold.
|
|
12
|
+
|
|
13
|
+
### view_transactions
|
|
14
|
+
View recent transaction history.
|