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
package/dist/cli/repl.js
ADDED
|
@@ -0,0 +1,132 @@
|
|
|
1
|
+
import * as readline from "readline";
|
|
2
|
+
import { showBanner } from "./ui/banner.js";
|
|
3
|
+
import { t } from "./ui/theme.js";
|
|
4
|
+
import { startSpinner, stopSpinner, updateSpinner } from "./ui/spinner.js";
|
|
5
|
+
import { formatToolCall } from "./ui/tool-display.js";
|
|
6
|
+
import { CliHistory } from "./history.js";
|
|
7
|
+
import { handleSlashCommand } from "./commands.js";
|
|
8
|
+
import { loadEnv } from "../infra/dotenv.js";
|
|
9
|
+
import { loadConfig } from "../config/config.js";
|
|
10
|
+
import { loadOrCreateIdentity } from "../security/device-identity.js";
|
|
11
|
+
import { initGemini } from "../ai/gemini.js";
|
|
12
|
+
import { Agent } from "../core/agent.js";
|
|
13
|
+
import { runBoot } from "../gateway/boot.js";
|
|
14
|
+
export async function startRepl(opts) {
|
|
15
|
+
const { rootDir, runtimeDir, soulDir } = opts;
|
|
16
|
+
loadEnv(rootDir);
|
|
17
|
+
// Boot
|
|
18
|
+
const bootOk = await runBoot({ rootDir, runtimeDir, soulDir });
|
|
19
|
+
if (!bootOk) {
|
|
20
|
+
console.error("Boot failed. Run 'wispy onboard' first.");
|
|
21
|
+
process.exit(1);
|
|
22
|
+
}
|
|
23
|
+
const config = loadConfig(runtimeDir);
|
|
24
|
+
const identity = loadOrCreateIdentity(runtimeDir);
|
|
25
|
+
const apiKey = config.gemini.apiKey || process.env.GEMINI_API_KEY;
|
|
26
|
+
if (!apiKey) {
|
|
27
|
+
console.error("GEMINI_API_KEY not set. Add it to .env or config.");
|
|
28
|
+
process.exit(1);
|
|
29
|
+
}
|
|
30
|
+
initGemini(apiKey);
|
|
31
|
+
const agent = new Agent({ config, runtimeDir, soulDir });
|
|
32
|
+
const history = new CliHistory(runtimeDir);
|
|
33
|
+
let currentSession = "cli-repl";
|
|
34
|
+
const cmdCtx = {
|
|
35
|
+
agent,
|
|
36
|
+
runtimeDir,
|
|
37
|
+
soulDir,
|
|
38
|
+
currentSession,
|
|
39
|
+
setSession: (key) => { currentSession = key; cmdCtx.currentSession = key; },
|
|
40
|
+
};
|
|
41
|
+
showBanner();
|
|
42
|
+
const rl = readline.createInterface({
|
|
43
|
+
input: process.stdin,
|
|
44
|
+
output: process.stdout,
|
|
45
|
+
prompt: t.prompt,
|
|
46
|
+
historySize: 200,
|
|
47
|
+
});
|
|
48
|
+
// Pre-load history into readline
|
|
49
|
+
const pastEntries = history.getAll();
|
|
50
|
+
for (const entry of pastEntries) {
|
|
51
|
+
rl.history?.unshift(entry);
|
|
52
|
+
}
|
|
53
|
+
rl.prompt();
|
|
54
|
+
rl.on("line", async (line) => {
|
|
55
|
+
const input = line.trim();
|
|
56
|
+
if (!input) {
|
|
57
|
+
rl.prompt();
|
|
58
|
+
return;
|
|
59
|
+
}
|
|
60
|
+
history.add(input);
|
|
61
|
+
// Slash commands
|
|
62
|
+
if (input.startsWith("/")) {
|
|
63
|
+
await handleSlashCommand(input, cmdCtx);
|
|
64
|
+
rl.prompt();
|
|
65
|
+
return;
|
|
66
|
+
}
|
|
67
|
+
// Chat with agent
|
|
68
|
+
try {
|
|
69
|
+
const thinkStart = Date.now();
|
|
70
|
+
const spinner = startSpinner("Thinking...");
|
|
71
|
+
let firstText = true;
|
|
72
|
+
for await (const chunk of agent.chatStream(input, "cli-user", "cli", "main")) {
|
|
73
|
+
switch (chunk.type) {
|
|
74
|
+
case "thinking":
|
|
75
|
+
updateSpinner(`Thinking... (${((Date.now() - thinkStart) / 1000).toFixed(1)}s)`);
|
|
76
|
+
break;
|
|
77
|
+
case "tool_call": {
|
|
78
|
+
stopSpinner();
|
|
79
|
+
const tc = {
|
|
80
|
+
name: chunk.content,
|
|
81
|
+
args: {},
|
|
82
|
+
status: "pending",
|
|
83
|
+
};
|
|
84
|
+
process.stdout.write(formatToolCall(tc) + "\n");
|
|
85
|
+
break;
|
|
86
|
+
}
|
|
87
|
+
case "tool_result": {
|
|
88
|
+
const tr = {
|
|
89
|
+
name: "tool",
|
|
90
|
+
args: {},
|
|
91
|
+
status: "ok",
|
|
92
|
+
result: chunk.content.slice(0, 200),
|
|
93
|
+
};
|
|
94
|
+
process.stdout.write(formatToolCall(tr) + "\n");
|
|
95
|
+
break;
|
|
96
|
+
}
|
|
97
|
+
case "text":
|
|
98
|
+
if (firstText) {
|
|
99
|
+
stopSpinner();
|
|
100
|
+
console.log();
|
|
101
|
+
firstText = false;
|
|
102
|
+
}
|
|
103
|
+
process.stdout.write(chunk.content);
|
|
104
|
+
break;
|
|
105
|
+
case "done":
|
|
106
|
+
if (firstText)
|
|
107
|
+
stopSpinner();
|
|
108
|
+
break;
|
|
109
|
+
}
|
|
110
|
+
}
|
|
111
|
+
// Final newline + render markdown for the full response
|
|
112
|
+
console.log("\n");
|
|
113
|
+
}
|
|
114
|
+
catch (err) {
|
|
115
|
+
stopSpinner();
|
|
116
|
+
console.error(t.err(`\nError: ${err instanceof Error ? err.message : String(err)}\n`));
|
|
117
|
+
}
|
|
118
|
+
rl.prompt();
|
|
119
|
+
});
|
|
120
|
+
rl.on("close", () => {
|
|
121
|
+
history.save();
|
|
122
|
+
console.log(t.dim("\n☁️ Goodbye!\n"));
|
|
123
|
+
process.exit(0);
|
|
124
|
+
});
|
|
125
|
+
// Handle Ctrl+C gracefully
|
|
126
|
+
rl.on("SIGINT", () => {
|
|
127
|
+
history.save();
|
|
128
|
+
console.log(t.dim("\n☁️ Goodbye!\n"));
|
|
129
|
+
process.exit(0);
|
|
130
|
+
});
|
|
131
|
+
}
|
|
132
|
+
//# sourceMappingURL=repl.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"repl.js","sourceRoot":"","sources":["../../src/cli/repl.ts"],"names":[],"mappings":"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"}
|
|
@@ -0,0 +1,17 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* Interactive setup wizard.
|
|
3
|
+
*
|
|
4
|
+
* Guides users through:
|
|
5
|
+
* 1. API key configuration
|
|
6
|
+
* 2. Model selection (cloud vs local)
|
|
7
|
+
* 3. Agent selection (checkboxes)
|
|
8
|
+
* 4. Voice mode toggle
|
|
9
|
+
* 5. Integration selection
|
|
10
|
+
* 6. Auto-start toggle
|
|
11
|
+
*/
|
|
12
|
+
import { type WorkspaceConfig } from "../../agents/workspace.js";
|
|
13
|
+
/**
|
|
14
|
+
* Run the interactive setup wizard.
|
|
15
|
+
*/
|
|
16
|
+
export declare function runSetupWizard(runtimeDir: string): Promise<WorkspaceConfig>;
|
|
17
|
+
//# sourceMappingURL=wizard.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"wizard.d.ts","sourceRoot":"","sources":["../../../src/cli/setup/wizard.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;GAUG;AAIH,OAAO,EAGL,KAAK,eAAe,EACrB,MAAM,2BAA2B,CAAC;AAcnC;;GAEG;AACH,wBAAsB,cAAc,CAClC,UAAU,EAAE,MAAM,GACjB,OAAO,CAAC,eAAe,CAAC,CAoK1B"}
|
|
@@ -0,0 +1,157 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* Interactive setup wizard.
|
|
3
|
+
*
|
|
4
|
+
* Guides users through:
|
|
5
|
+
* 1. API key configuration
|
|
6
|
+
* 2. Model selection (cloud vs local)
|
|
7
|
+
* 3. Agent selection (checkboxes)
|
|
8
|
+
* 4. Voice mode toggle
|
|
9
|
+
* 5. Integration selection
|
|
10
|
+
* 6. Auto-start toggle
|
|
11
|
+
*/
|
|
12
|
+
import * as readline from "readline";
|
|
13
|
+
import { t } from "../ui/theme.js";
|
|
14
|
+
import { getDefaultWorkspace, saveWorkspace, } from "../../agents/workspace.js";
|
|
15
|
+
import { createLogger } from "../../infra/logger.js";
|
|
16
|
+
const log = createLogger("setup");
|
|
17
|
+
/**
|
|
18
|
+
* Run the interactive setup wizard.
|
|
19
|
+
*/
|
|
20
|
+
export async function runSetupWizard(runtimeDir) {
|
|
21
|
+
const rl = readline.createInterface({
|
|
22
|
+
input: process.stdin,
|
|
23
|
+
output: process.stdout,
|
|
24
|
+
});
|
|
25
|
+
const ask = (question) => new Promise((resolve) => rl.question(question, resolve));
|
|
26
|
+
const askChoice = async (question, options) => {
|
|
27
|
+
console.log(t.bold(`\n${question}\n`));
|
|
28
|
+
for (let i = 0; i < options.length; i++) {
|
|
29
|
+
console.log(` ${t.brand(`${i + 1}.`)} ${options[i].label}`);
|
|
30
|
+
}
|
|
31
|
+
const answer = await ask(t.dim("\n Enter number: "));
|
|
32
|
+
const idx = parseInt(answer) - 1;
|
|
33
|
+
return options[Math.max(0, Math.min(idx, options.length - 1))].value;
|
|
34
|
+
};
|
|
35
|
+
const askMulti = async (question, options) => {
|
|
36
|
+
console.log(t.bold(`\n${question}`));
|
|
37
|
+
console.log(t.dim(" Enter numbers separated by commas (e.g., 1,2,4)\n"));
|
|
38
|
+
for (let i = 0; i < options.length; i++) {
|
|
39
|
+
const mark = options[i].defaultOn ? t.ok("[*]") : t.dim("[ ]");
|
|
40
|
+
console.log(` ${mark} ${t.brand(`${i + 1}.`)} ${options[i].label}`);
|
|
41
|
+
}
|
|
42
|
+
const answer = await ask(t.dim("\n Selection (Enter for defaults): "));
|
|
43
|
+
if (!answer.trim()) {
|
|
44
|
+
return options.filter((o) => o.defaultOn).map((o) => o.value);
|
|
45
|
+
}
|
|
46
|
+
return answer
|
|
47
|
+
.split(",")
|
|
48
|
+
.map((n) => parseInt(n.trim()) - 1)
|
|
49
|
+
.filter((i) => i >= 0 && i < options.length)
|
|
50
|
+
.map((i) => options[i].value);
|
|
51
|
+
};
|
|
52
|
+
const askYesNo = async (question, defaultYes = false) => {
|
|
53
|
+
const suffix = defaultYes ? " [Y/n]: " : " [y/N]: ";
|
|
54
|
+
const answer = await ask(` ${question}${suffix}`);
|
|
55
|
+
if (!answer.trim())
|
|
56
|
+
return defaultYes;
|
|
57
|
+
return answer.toLowerCase().startsWith("y");
|
|
58
|
+
};
|
|
59
|
+
// ─── Start Wizard ────────────────────────────────────────
|
|
60
|
+
console.clear();
|
|
61
|
+
console.log(t.brand("\n ☁️👀 Wispy Setup\n"));
|
|
62
|
+
console.log(t.dim(" Let's configure your AI agent workspace.\n"));
|
|
63
|
+
// 1. API Key
|
|
64
|
+
console.log(t.bold(" Step 1: Gemini API Key"));
|
|
65
|
+
const existingKey = process.env.GEMINI_API_KEY;
|
|
66
|
+
let geminiKey = existingKey || "";
|
|
67
|
+
if (existingKey) {
|
|
68
|
+
console.log(t.ok(` Found GEMINI_API_KEY in environment.`));
|
|
69
|
+
}
|
|
70
|
+
else {
|
|
71
|
+
geminiKey = await ask(t.dim(" Enter your Gemini API Key: "));
|
|
72
|
+
if (!geminiKey.trim()) {
|
|
73
|
+
console.log(t.warn(" No key provided. Set GEMINI_API_KEY in .env later."));
|
|
74
|
+
}
|
|
75
|
+
}
|
|
76
|
+
// 2. Model
|
|
77
|
+
const model = await askChoice("Step 2: Choose your default AI model", [
|
|
78
|
+
{ label: "Gemini 2.5 Pro (recommended, strong reasoning)", value: "gemini-2.5-pro" },
|
|
79
|
+
{ label: "Gemini 2.5 Flash (fast, cost-effective)", value: "gemini-2.5-flash" },
|
|
80
|
+
{ label: "Gemma 3 27B (local via Ollama, private)", value: "gemma3:27b" },
|
|
81
|
+
{ label: "Gemma 3 12B (local, lighter)", value: "gemma3:12b" },
|
|
82
|
+
]);
|
|
83
|
+
// 3. Agents
|
|
84
|
+
const agents = await askMulti("Step 3: Select agents for your workspace", [
|
|
85
|
+
{ label: "Coder — Code generation, debugging, refactoring", value: "coder", defaultOn: true },
|
|
86
|
+
{ label: "Researcher — Web search, analysis, summarization", value: "researcher", defaultOn: true },
|
|
87
|
+
{ label: "Writer — Content creation, copywriting, docs", value: "writer" },
|
|
88
|
+
{ label: "DevOps — CI/CD, deployment, infrastructure", value: "devops" },
|
|
89
|
+
{ label: "Designer — UI/UX design, accessibility", value: "designer" },
|
|
90
|
+
{ label: "Data Analyst — SQL, data analysis, visualization", value: "data" },
|
|
91
|
+
{ label: "Security — Audit, vulnerability scanning", value: "security", defaultOn: true },
|
|
92
|
+
{ label: "Planner — Task breakdown, project planning", value: "planner", defaultOn: true },
|
|
93
|
+
]);
|
|
94
|
+
// 4. Voice
|
|
95
|
+
console.log(t.bold("\n Step 4: Voice Mode"));
|
|
96
|
+
const voiceEnabled = await askYesNo("Enable voice mode? (requires sox + whisper)");
|
|
97
|
+
// 5. Integrations
|
|
98
|
+
const integrations = await askMulti("Step 5: Connect integrations", [
|
|
99
|
+
{ label: "Google Calendar", value: "google-calendar" },
|
|
100
|
+
{ label: "Gmail", value: "google-gmail" },
|
|
101
|
+
{ label: "Google Drive", value: "google-drive" },
|
|
102
|
+
{ label: "GitHub", value: "github" },
|
|
103
|
+
{ label: "Notion", value: "notion" },
|
|
104
|
+
{ label: "Slack", value: "slack" },
|
|
105
|
+
{ label: "Discord", value: "discord" },
|
|
106
|
+
{ label: "Spotify", value: "spotify" },
|
|
107
|
+
]);
|
|
108
|
+
// 6. Auto-start
|
|
109
|
+
console.log(t.bold("\n Step 6: Auto-Start"));
|
|
110
|
+
const autoStart = await askYesNo("Start Wispy gateway on login?");
|
|
111
|
+
rl.close();
|
|
112
|
+
// ─── Build Config ────────────────────────────────────────
|
|
113
|
+
const workspace = getDefaultWorkspace();
|
|
114
|
+
// Models
|
|
115
|
+
workspace.models.default = model;
|
|
116
|
+
if (model.includes(":")) {
|
|
117
|
+
workspace.models.local = model;
|
|
118
|
+
workspace.models.default = "gemini-2.5-flash"; // fallback for cloud tasks
|
|
119
|
+
}
|
|
120
|
+
// Agents
|
|
121
|
+
const allAgentIds = ["coder", "researcher", "writer", "devops", "designer", "data", "security", "planner"];
|
|
122
|
+
for (const id of allAgentIds) {
|
|
123
|
+
workspace.agents[id] = { enabled: agents.includes(id) };
|
|
124
|
+
}
|
|
125
|
+
// Voice
|
|
126
|
+
workspace.voice.enabled = voiceEnabled;
|
|
127
|
+
// Save
|
|
128
|
+
saveWorkspace(runtimeDir, workspace);
|
|
129
|
+
// Write API key to .env if provided
|
|
130
|
+
if (geminiKey && !existingKey) {
|
|
131
|
+
const { appendFileSync } = await import("fs");
|
|
132
|
+
const { resolve } = await import("path");
|
|
133
|
+
const envPath = resolve(process.cwd(), ".env");
|
|
134
|
+
appendFileSync(envPath, `\nGEMINI_API_KEY=${geminiKey}\n`);
|
|
135
|
+
}
|
|
136
|
+
// Auto-start
|
|
137
|
+
if (autoStart) {
|
|
138
|
+
try {
|
|
139
|
+
const { installAutoStart } = await import("../../autostart/service.js");
|
|
140
|
+
const result = installAutoStart(process.cwd(), runtimeDir, "wispy");
|
|
141
|
+
console.log(t.ok(`\n Auto-start: ${result.instructions}`));
|
|
142
|
+
}
|
|
143
|
+
catch (err) {
|
|
144
|
+
console.log(t.warn(`\n Auto-start setup failed. Configure manually.`));
|
|
145
|
+
}
|
|
146
|
+
}
|
|
147
|
+
// ─── Summary ─────────────────────────────────────────────
|
|
148
|
+
console.log(t.brand("\n ☁️👀 Setup Complete!\n"));
|
|
149
|
+
console.log(` Model: ${model}`);
|
|
150
|
+
console.log(` Agents: ${agents.join(", ")}`);
|
|
151
|
+
console.log(` Voice: ${voiceEnabled ? "enabled" : "disabled"}`);
|
|
152
|
+
console.log(` Integrations: ${integrations.length > 0 ? integrations.join(", ") : "none"}`);
|
|
153
|
+
console.log(` Auto-start: ${autoStart ? "enabled" : "disabled"}`);
|
|
154
|
+
console.log(t.dim("\n Run 'wispy' to start the interactive CLI.\n"));
|
|
155
|
+
return workspace;
|
|
156
|
+
}
|
|
157
|
+
//# sourceMappingURL=wizard.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"wizard.js","sourceRoot":"","sources":["../../../src/cli/setup/wizard.ts"],"names":[],"mappings":"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"}
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"banner.d.ts","sourceRoot":"","sources":["../../../src/cli/ui/banner.ts"],"names":[],"mappings":"AAEA,wBAAgB,UAAU,SAMzB"}
|
|
@@ -0,0 +1,9 @@
|
|
|
1
|
+
import { t } from "./theme.js";
|
|
2
|
+
export function showBanner() {
|
|
3
|
+
console.log();
|
|
4
|
+
console.log(t.brand(" ☁️👀 Wispy") + t.dim(" v0.1.0"));
|
|
5
|
+
console.log(t.dim(" Powered by Gemini 3 Pro"));
|
|
6
|
+
console.log(t.dim(" Type /help for commands, Ctrl+C to exit"));
|
|
7
|
+
console.log();
|
|
8
|
+
}
|
|
9
|
+
//# sourceMappingURL=banner.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"banner.js","sourceRoot":"","sources":["../../../src/cli/ui/banner.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,CAAC,EAAE,MAAM,YAAY,CAAC;AAE/B,MAAM,UAAU,UAAU;IACxB,OAAO,CAAC,GAAG,EAAE,CAAC;IACd,OAAO,CAAC,GAAG,CAAC,CAAC,CAAC,KAAK,CAAC,eAAe,CAAC,GAAG,CAAC,CAAC,GAAG,CAAC,SAAS,CAAC,CAAC,CAAC;IACzD,OAAO,CAAC,GAAG,CAAC,CAAC,CAAC,GAAG,CAAC,2BAA2B,CAAC,CAAC,CAAC;IAChD,OAAO,CAAC,GAAG,CAAC,CAAC,CAAC,GAAG,CAAC,2CAA2C,CAAC,CAAC,CAAC;IAChE,OAAO,CAAC,GAAG,EAAE,CAAC;AAChB,CAAC"}
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"renderer.d.ts","sourceRoot":"","sources":["../../../src/cli/ui/renderer.ts"],"names":[],"mappings":"AAEA;;;GAGG;AACH,wBAAgB,cAAc,CAAC,EAAE,EAAE,MAAM,GAAG,MAAM,CA8CjD"}
|
|
@@ -0,0 +1,55 @@
|
|
|
1
|
+
import chalk from "chalk";
|
|
2
|
+
/**
|
|
3
|
+
* Simple markdown-to-terminal renderer.
|
|
4
|
+
* Handles headers, bold, italic, code blocks, inline code, lists, and links.
|
|
5
|
+
*/
|
|
6
|
+
export function renderMarkdown(md) {
|
|
7
|
+
const lines = md.split("\n");
|
|
8
|
+
const out = [];
|
|
9
|
+
let inCodeBlock = false;
|
|
10
|
+
for (const line of lines) {
|
|
11
|
+
if (line.startsWith("```")) {
|
|
12
|
+
inCodeBlock = !inCodeBlock;
|
|
13
|
+
if (inCodeBlock) {
|
|
14
|
+
out.push(chalk.dim("─".repeat(40)));
|
|
15
|
+
}
|
|
16
|
+
else {
|
|
17
|
+
out.push(chalk.dim("─".repeat(40)));
|
|
18
|
+
}
|
|
19
|
+
continue;
|
|
20
|
+
}
|
|
21
|
+
if (inCodeBlock) {
|
|
22
|
+
out.push(chalk.gray(" " + line));
|
|
23
|
+
continue;
|
|
24
|
+
}
|
|
25
|
+
let l = line;
|
|
26
|
+
// Headers
|
|
27
|
+
if (l.startsWith("### ")) {
|
|
28
|
+
out.push(chalk.bold.cyan(l.slice(4)));
|
|
29
|
+
continue;
|
|
30
|
+
}
|
|
31
|
+
if (l.startsWith("## ")) {
|
|
32
|
+
out.push(chalk.bold.magenta(l.slice(3)));
|
|
33
|
+
continue;
|
|
34
|
+
}
|
|
35
|
+
if (l.startsWith("# ")) {
|
|
36
|
+
out.push(chalk.bold.yellow(l.slice(2)));
|
|
37
|
+
continue;
|
|
38
|
+
}
|
|
39
|
+
// Bullet lists
|
|
40
|
+
if (/^(\s*)[-*] /.test(l)) {
|
|
41
|
+
l = l.replace(/^(\s*)[-*] /, "$1• ");
|
|
42
|
+
}
|
|
43
|
+
// Inline code
|
|
44
|
+
l = l.replace(/`([^`]+)`/g, (_, code) => chalk.bgGray.white(` ${code} `));
|
|
45
|
+
// Bold
|
|
46
|
+
l = l.replace(/\*\*(.+?)\*\*/g, (_, text) => chalk.bold(text));
|
|
47
|
+
// Italic
|
|
48
|
+
l = l.replace(/\*(.+?)\*/g, (_, text) => chalk.italic(text));
|
|
49
|
+
// Links
|
|
50
|
+
l = l.replace(/\[([^\]]+)\]\(([^)]+)\)/g, (_, text, url) => `${chalk.underline.blue(text)} ${chalk.dim(`(${url})`)}`);
|
|
51
|
+
out.push(l);
|
|
52
|
+
}
|
|
53
|
+
return out.join("\n");
|
|
54
|
+
}
|
|
55
|
+
//# sourceMappingURL=renderer.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"renderer.js","sourceRoot":"","sources":["../../../src/cli/ui/renderer.ts"],"names":[],"mappings":"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"}
|
|
@@ -0,0 +1,7 @@
|
|
|
1
|
+
import { type Ora } from "ora";
|
|
2
|
+
export declare function startSpinner(text: string): Ora;
|
|
3
|
+
export declare function updateSpinner(text: string): void;
|
|
4
|
+
export declare function succeedSpinner(text?: string): void;
|
|
5
|
+
export declare function failSpinner(text?: string): void;
|
|
6
|
+
export declare function stopSpinner(): void;
|
|
7
|
+
//# sourceMappingURL=spinner.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"spinner.d.ts","sourceRoot":"","sources":["../../../src/cli/ui/spinner.ts"],"names":[],"mappings":"AAAA,OAAY,EAAE,KAAK,GAAG,EAAE,MAAM,KAAK,CAAC;AAKpC,wBAAgB,YAAY,CAAC,IAAI,EAAE,MAAM,GAAG,GAAG,CAI9C;AAED,wBAAgB,aAAa,CAAC,IAAI,EAAE,MAAM,QAEzC;AAED,wBAAgB,cAAc,CAAC,IAAI,CAAC,EAAE,MAAM,QAE3C;AAED,wBAAgB,WAAW,CAAC,IAAI,CAAC,EAAE,MAAM,QAExC;AAED,wBAAgB,WAAW,SAE1B"}
|
|
@@ -0,0 +1,31 @@
|
|
|
1
|
+
import ora from "ora";
|
|
2
|
+
import { t } from "./theme.js";
|
|
3
|
+
let active = null;
|
|
4
|
+
export function startSpinner(text) {
|
|
5
|
+
stopSpinner();
|
|
6
|
+
active = ora({ text: t.thinking(text), spinner: "dots" }).start();
|
|
7
|
+
return active;
|
|
8
|
+
}
|
|
9
|
+
export function updateSpinner(text) {
|
|
10
|
+
if (active)
|
|
11
|
+
active.text = t.thinking(text);
|
|
12
|
+
}
|
|
13
|
+
export function succeedSpinner(text) {
|
|
14
|
+
if (active) {
|
|
15
|
+
active.succeed(text);
|
|
16
|
+
active = null;
|
|
17
|
+
}
|
|
18
|
+
}
|
|
19
|
+
export function failSpinner(text) {
|
|
20
|
+
if (active) {
|
|
21
|
+
active.fail(text);
|
|
22
|
+
active = null;
|
|
23
|
+
}
|
|
24
|
+
}
|
|
25
|
+
export function stopSpinner() {
|
|
26
|
+
if (active) {
|
|
27
|
+
active.stop();
|
|
28
|
+
active = null;
|
|
29
|
+
}
|
|
30
|
+
}
|
|
31
|
+
//# sourceMappingURL=spinner.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"spinner.js","sourceRoot":"","sources":["../../../src/cli/ui/spinner.ts"],"names":[],"mappings":"AAAA,OAAO,GAAiB,MAAM,KAAK,CAAC;AACpC,OAAO,EAAE,CAAC,EAAE,MAAM,YAAY,CAAC;AAE/B,IAAI,MAAM,GAAe,IAAI,CAAC;AAE9B,MAAM,UAAU,YAAY,CAAC,IAAY;IACvC,WAAW,EAAE,CAAC;IACd,MAAM,GAAG,GAAG,CAAC,EAAE,IAAI,EAAE,CAAC,CAAC,QAAQ,CAAC,IAAI,CAAC,EAAE,OAAO,EAAE,MAAM,EAAE,CAAC,CAAC,KAAK,EAAE,CAAC;IAClE,OAAO,MAAM,CAAC;AAChB,CAAC;AAED,MAAM,UAAU,aAAa,CAAC,IAAY;IACxC,IAAI,MAAM;QAAE,MAAM,CAAC,IAAI,GAAG,CAAC,CAAC,QAAQ,CAAC,IAAI,CAAC,CAAC;AAC7C,CAAC;AAED,MAAM,UAAU,cAAc,CAAC,IAAa;IAC1C,IAAI,MAAM,EAAE,CAAC;QAAC,MAAM,CAAC,OAAO,CAAC,IAAI,CAAC,CAAC;QAAC,MAAM,GAAG,IAAI,CAAC;IAAC,CAAC;AACtD,CAAC;AAED,MAAM,UAAU,WAAW,CAAC,IAAa;IACvC,IAAI,MAAM,EAAE,CAAC;QAAC,MAAM,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC;QAAC,MAAM,GAAG,IAAI,CAAC;IAAC,CAAC;AACnD,CAAC;AAED,MAAM,UAAU,WAAW;IACzB,IAAI,MAAM,EAAE,CAAC;QAAC,MAAM,CAAC,IAAI,EAAE,CAAC;QAAC,MAAM,GAAG,IAAI,CAAC;IAAC,CAAC;AAC/C,CAAC"}
|
|
@@ -0,0 +1,21 @@
|
|
|
1
|
+
export declare const t: {
|
|
2
|
+
brand: import("chalk").ChalkInstance;
|
|
3
|
+
brandBold: import("chalk").ChalkInstance;
|
|
4
|
+
ok: import("chalk").ChalkInstance;
|
|
5
|
+
warn: import("chalk").ChalkInstance;
|
|
6
|
+
err: import("chalk").ChalkInstance;
|
|
7
|
+
info: import("chalk").ChalkInstance;
|
|
8
|
+
dim: import("chalk").ChalkInstance;
|
|
9
|
+
bold: import("chalk").ChalkInstance;
|
|
10
|
+
user: import("chalk").ChalkInstance;
|
|
11
|
+
agent: import("chalk").ChalkInstance;
|
|
12
|
+
system: import("chalk").ChalkInstance;
|
|
13
|
+
code: import("chalk").ChalkInstance;
|
|
14
|
+
tool: import("chalk").ChalkInstance;
|
|
15
|
+
toolOk: string;
|
|
16
|
+
toolFail: string;
|
|
17
|
+
toolPending: string;
|
|
18
|
+
thinking: import("chalk").ChalkInstance;
|
|
19
|
+
prompt: string;
|
|
20
|
+
};
|
|
21
|
+
//# sourceMappingURL=theme.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"theme.d.ts","sourceRoot":"","sources":["../../../src/cli/ui/theme.ts"],"names":[],"mappings":"AAEA,eAAO,MAAM,CAAC;;;;;;;;;;;;;;;;;;;CA8Bb,CAAC"}
|
|
@@ -0,0 +1,28 @@
|
|
|
1
|
+
import chalk from "chalk";
|
|
2
|
+
export const t = {
|
|
3
|
+
// Brand
|
|
4
|
+
brand: chalk.hex("#7C3AED"), // purple
|
|
5
|
+
brandBold: chalk.hex("#7C3AED").bold,
|
|
6
|
+
// Status
|
|
7
|
+
ok: chalk.green,
|
|
8
|
+
warn: chalk.yellow,
|
|
9
|
+
err: chalk.red,
|
|
10
|
+
info: chalk.cyan,
|
|
11
|
+
dim: chalk.dim,
|
|
12
|
+
bold: chalk.bold,
|
|
13
|
+
// Roles
|
|
14
|
+
user: chalk.blueBright.bold,
|
|
15
|
+
agent: chalk.hex("#7C3AED").bold,
|
|
16
|
+
system: chalk.gray,
|
|
17
|
+
// Code
|
|
18
|
+
code: chalk.bgGray.white,
|
|
19
|
+
// Tool
|
|
20
|
+
tool: chalk.yellowBright,
|
|
21
|
+
toolOk: chalk.green("✅"),
|
|
22
|
+
toolFail: chalk.red("❌"),
|
|
23
|
+
toolPending: chalk.yellow("⏳"),
|
|
24
|
+
// Misc
|
|
25
|
+
thinking: chalk.magenta,
|
|
26
|
+
prompt: chalk.hex("#7C3AED").bold("> "),
|
|
27
|
+
};
|
|
28
|
+
//# sourceMappingURL=theme.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"theme.js","sourceRoot":"","sources":["../../../src/cli/ui/theme.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,MAAM,OAAO,CAAC;AAE1B,MAAM,CAAC,MAAM,CAAC,GAAG;IACf,QAAQ;IACR,KAAK,EAAE,KAAK,CAAC,GAAG,CAAC,SAAS,CAAC,EAAQ,SAAS;IAC5C,SAAS,EAAE,KAAK,CAAC,GAAG,CAAC,SAAS,CAAC,CAAC,IAAI;IAEpC,SAAS;IACT,EAAE,EAAE,KAAK,CAAC,KAAK;IACf,IAAI,EAAE,KAAK,CAAC,MAAM;IAClB,GAAG,EAAE,KAAK,CAAC,GAAG;IACd,IAAI,EAAE,KAAK,CAAC,IAAI;IAChB,GAAG,EAAE,KAAK,CAAC,GAAG;IACd,IAAI,EAAE,KAAK,CAAC,IAAI;IAEhB,QAAQ;IACR,IAAI,EAAE,KAAK,CAAC,UAAU,CAAC,IAAI;IAC3B,KAAK,EAAE,KAAK,CAAC,GAAG,CAAC,SAAS,CAAC,CAAC,IAAI;IAChC,MAAM,EAAE,KAAK,CAAC,IAAI;IAElB,OAAO;IACP,IAAI,EAAE,KAAK,CAAC,MAAM,CAAC,KAAK;IAExB,OAAO;IACP,IAAI,EAAE,KAAK,CAAC,YAAY;IACxB,MAAM,EAAE,KAAK,CAAC,KAAK,CAAC,GAAG,CAAC;IACxB,QAAQ,EAAE,KAAK,CAAC,GAAG,CAAC,GAAG,CAAC;IACxB,WAAW,EAAE,KAAK,CAAC,MAAM,CAAC,GAAG,CAAC;IAE9B,OAAO;IACP,QAAQ,EAAE,KAAK,CAAC,OAAO;IACvB,MAAM,EAAE,KAAK,CAAC,GAAG,CAAC,SAAS,CAAC,CAAC,IAAI,CAAC,IAAI,CAAC;CACxC,CAAC"}
|
|
@@ -0,0 +1,9 @@
|
|
|
1
|
+
export interface ToolCallDisplay {
|
|
2
|
+
name: string;
|
|
3
|
+
args: Record<string, unknown>;
|
|
4
|
+
status: "pending" | "ok" | "error";
|
|
5
|
+
result?: string;
|
|
6
|
+
durationMs?: number;
|
|
7
|
+
}
|
|
8
|
+
export declare function formatToolCall(tc: ToolCallDisplay): string;
|
|
9
|
+
//# sourceMappingURL=tool-display.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"tool-display.d.ts","sourceRoot":"","sources":["../../../src/cli/ui/tool-display.ts"],"names":[],"mappings":"AAEA,MAAM,WAAW,eAAe;IAC9B,IAAI,EAAE,MAAM,CAAC;IACb,IAAI,EAAE,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,CAAC;IAC9B,MAAM,EAAE,SAAS,GAAG,IAAI,GAAG,OAAO,CAAC;IACnC,MAAM,CAAC,EAAE,MAAM,CAAC;IAChB,UAAU,CAAC,EAAE,MAAM,CAAC;CACrB;AAED,wBAAgB,cAAc,CAAC,EAAE,EAAE,eAAe,GAAG,MAAM,CAmB1D"}
|
|
@@ -0,0 +1,19 @@
|
|
|
1
|
+
import { t } from "./theme.js";
|
|
2
|
+
export function formatToolCall(tc) {
|
|
3
|
+
const icon = tc.status === "ok" ? t.toolOk : tc.status === "error" ? t.toolFail : t.toolPending;
|
|
4
|
+
const argsStr = Object.entries(tc.args)
|
|
5
|
+
.map(([k, v]) => {
|
|
6
|
+
const val = typeof v === "string" ? v : JSON.stringify(v);
|
|
7
|
+
return `${k}=${t.dim(val.length > 40 ? val.slice(0, 37) + "..." : val)}`;
|
|
8
|
+
})
|
|
9
|
+
.join(", ");
|
|
10
|
+
const duration = tc.durationMs ? t.dim(` (${(tc.durationMs / 1000).toFixed(1)}s)`) : "";
|
|
11
|
+
const lines = [` ${t.tool("🔧 " + tc.name)}(${argsStr})`];
|
|
12
|
+
lines.push(` ├─ ${icon}${duration}`);
|
|
13
|
+
if (tc.result && tc.status === "ok") {
|
|
14
|
+
const preview = tc.result.length > 100 ? tc.result.slice(0, 97) + "..." : tc.result;
|
|
15
|
+
lines.push(` │ ${t.dim(preview)}`);
|
|
16
|
+
}
|
|
17
|
+
return lines.join("\n");
|
|
18
|
+
}
|
|
19
|
+
//# sourceMappingURL=tool-display.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"tool-display.js","sourceRoot":"","sources":["../../../src/cli/ui/tool-display.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,CAAC,EAAE,MAAM,YAAY,CAAC;AAU/B,MAAM,UAAU,cAAc,CAAC,EAAmB;IAChD,MAAM,IAAI,GAAG,EAAE,CAAC,MAAM,KAAK,IAAI,CAAC,CAAC,CAAC,CAAC,CAAC,MAAM,CAAC,CAAC,CAAC,EAAE,CAAC,MAAM,KAAK,OAAO,CAAC,CAAC,CAAC,CAAC,CAAC,QAAQ,CAAC,CAAC,CAAC,CAAC,CAAC,WAAW,CAAC;IAChG,MAAM,OAAO,GAAG,MAAM,CAAC,OAAO,CAAC,EAAE,CAAC,IAAI,CAAC;SACpC,GAAG,CAAC,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,EAAE,EAAE;QACd,MAAM,GAAG,GAAG,OAAO,CAAC,KAAK,QAAQ,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,IAAI,CAAC,SAAS,CAAC,CAAC,CAAC,CAAC;QAC1D,OAAO,GAAG,CAAC,IAAI,CAAC,CAAC,GAAG,CAAC,GAAG,CAAC,MAAM,GAAG,EAAE,CAAC,CAAC,CAAC,GAAG,CAAC,KAAK,CAAC,CAAC,EAAE,EAAE,CAAC,GAAG,KAAK,CAAC,CAAC,CAAC,GAAG,CAAC,EAAE,CAAC;IAC3E,CAAC,CAAC;SACD,IAAI,CAAC,IAAI,CAAC,CAAC;IAEd,MAAM,QAAQ,GAAG,EAAE,CAAC,UAAU,CAAC,CAAC,CAAC,CAAC,CAAC,GAAG,CAAC,KAAK,CAAC,EAAE,CAAC,UAAU,GAAG,IAAI,CAAC,CAAC,OAAO,CAAC,CAAC,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC,EAAE,CAAC;IACxF,MAAM,KAAK,GAAG,CAAC,KAAK,CAAC,CAAC,IAAI,CAAC,KAAK,GAAG,EAAE,CAAC,IAAI,CAAC,IAAI,OAAO,GAAG,CAAC,CAAC;IAC3D,KAAK,CAAC,IAAI,CAAC,QAAQ,IAAI,GAAG,QAAQ,EAAE,CAAC,CAAC;IAEtC,IAAI,EAAE,CAAC,MAAM,IAAI,EAAE,CAAC,MAAM,KAAK,IAAI,EAAE,CAAC;QACpC,MAAM,OAAO,GAAG,EAAE,CAAC,MAAM,CAAC,MAAM,GAAG,GAAG,CAAC,CAAC,CAAC,EAAE,CAAC,MAAM,CAAC,KAAK,CAAC,CAAC,EAAE,EAAE,CAAC,GAAG,KAAK,CAAC,CAAC,CAAC,EAAE,CAAC,MAAM,CAAC;QACpF,KAAK,CAAC,IAAI,CAAC,QAAQ,CAAC,CAAC,GAAG,CAAC,OAAO,CAAC,EAAE,CAAC,CAAC;IACvC,CAAC;IAED,OAAO,KAAK,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC;AAC1B,CAAC"}
|
|
@@ -0,0 +1,37 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* Speech-to-Text engine.
|
|
3
|
+
*
|
|
4
|
+
* Supports:
|
|
5
|
+
* - whisper.cpp (local, fast, offline)
|
|
6
|
+
* - OpenAI Whisper API (cloud, accurate)
|
|
7
|
+
*
|
|
8
|
+
* Usage: Records audio from microphone, transcribes to text.
|
|
9
|
+
*/
|
|
10
|
+
export type SttEngine = "whisper" | "whisper-api";
|
|
11
|
+
export interface SttResult {
|
|
12
|
+
text: string;
|
|
13
|
+
language?: string;
|
|
14
|
+
confidence?: number;
|
|
15
|
+
}
|
|
16
|
+
/**
|
|
17
|
+
* Check if whisper.cpp (or whisper CLI) is available.
|
|
18
|
+
*/
|
|
19
|
+
export declare function isWhisperAvailable(): boolean;
|
|
20
|
+
/**
|
|
21
|
+
* Record audio from microphone to a temporary WAV file.
|
|
22
|
+
* Uses sox (cross-platform) or arecord (Linux).
|
|
23
|
+
*/
|
|
24
|
+
export declare function recordAudio(durationSeconds?: number): Promise<string>;
|
|
25
|
+
/**
|
|
26
|
+
* Transcribe audio using local whisper.cpp.
|
|
27
|
+
*/
|
|
28
|
+
export declare function transcribeLocal(audioPath: string): Promise<SttResult>;
|
|
29
|
+
/**
|
|
30
|
+
* Transcribe audio using OpenAI Whisper API.
|
|
31
|
+
*/
|
|
32
|
+
export declare function transcribeApi(audioPath: string, apiKey: string): Promise<SttResult>;
|
|
33
|
+
/**
|
|
34
|
+
* Transcribe audio using the configured engine.
|
|
35
|
+
*/
|
|
36
|
+
export declare function transcribe(audioPath: string, engine?: SttEngine): Promise<SttResult>;
|
|
37
|
+
//# sourceMappingURL=stt.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"stt.d.ts","sourceRoot":"","sources":["../../../src/cli/voice/stt.ts"],"names":[],"mappings":"AAAA;;;;;;;;GAQG;AAUH,MAAM,MAAM,SAAS,GAAG,SAAS,GAAG,aAAa,CAAC;AAElD,MAAM,WAAW,SAAS;IACxB,IAAI,EAAE,MAAM,CAAC;IACb,QAAQ,CAAC,EAAE,MAAM,CAAC;IAClB,UAAU,CAAC,EAAE,MAAM,CAAC;CACrB;AAED;;GAEG;AACH,wBAAgB,kBAAkB,IAAI,OAAO,CAO5C;AAED;;;GAGG;AACH,wBAAgB,WAAW,CAAC,eAAe,GAAE,MAAW,GAAG,OAAO,CAAC,MAAM,CAAC,CA2BzE;AAED;;GAEG;AACH,wBAAsB,eAAe,CAAC,SAAS,EAAE,MAAM,GAAG,OAAO,CAAC,SAAS,CAAC,CAiB3E;AAED;;GAEG;AACH,wBAAsB,aAAa,CACjC,SAAS,EAAE,MAAM,EACjB,MAAM,EAAE,MAAM,GACb,OAAO,CAAC,SAAS,CAAC,CAwBpB;AAED;;GAEG;AACH,wBAAsB,UAAU,CAC9B,SAAS,EAAE,MAAM,EACjB,MAAM,GAAE,SAAqB,GAC5B,OAAO,CAAC,SAAS,CAAC,CAOpB"}
|