daemora 1.0.0-alpha.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/LICENSE +661 -0
- package/README.md +645 -0
- package/crew/_template/plugin.json +18 -0
- package/crew/analyst/plugin.json +29 -0
- package/crew/architect/plugin.json +29 -0
- package/crew/assistant/plugin.json +29 -0
- package/crew/backend/plugin.json +31 -0
- package/crew/devops/plugin.json +30 -0
- package/crew/facebook/plugin.json +36 -0
- package/crew/frontend/plugin.json +30 -0
- package/crew/github/plugin.json +18 -0
- package/crew/gmail/plugin.json +34 -0
- package/crew/google-calendar/plugin.json +26 -0
- package/crew/google-services/plugin.json +25 -0
- package/crew/imessage/plugin.json +24 -0
- package/crew/instagram/plugin.json +34 -0
- package/crew/linkedin/plugin.json +24 -0
- package/crew/meeting-attendant/plugin.json +27 -0
- package/crew/notifications/plugin.json +23 -0
- package/crew/notion/plugin.json +18 -0
- package/crew/planner/plugin.json +25 -0
- package/crew/reddit/plugin.json +32 -0
- package/crew/researcher/plugin.json +29 -0
- package/crew/reviewer/plugin.json +29 -0
- package/crew/security/plugin.json +30 -0
- package/crew/smart-home/plugin.json +23 -0
- package/crew/ssh-remote/plugin.json +28 -0
- package/crew/tiktok/plugin.json +26 -0
- package/crew/twitter/plugin.json +46 -0
- package/crew/video-editor/plugin.json +19 -0
- package/crew/video-editor/rules/3d.md +86 -0
- package/crew/video-editor/rules/animations.md +31 -0
- package/crew/video-editor/rules/assets/charts-bar-chart.tsx +173 -0
- package/crew/video-editor/rules/assets/text-animations-typewriter.tsx +100 -0
- package/crew/video-editor/rules/assets/text-animations-word-highlight.tsx +103 -0
- package/crew/video-editor/rules/assets.md +78 -0
- package/crew/video-editor/rules/audio-visualization.md +198 -0
- package/crew/video-editor/rules/audio.md +169 -0
- package/crew/video-editor/rules/calculate-metadata.md +134 -0
- package/crew/video-editor/rules/can-decode.md +81 -0
- package/crew/video-editor/rules/charts.md +120 -0
- package/crew/video-editor/rules/compositions.md +154 -0
- package/crew/video-editor/rules/cursor-and-clicks.md +108 -0
- package/crew/video-editor/rules/display-captions.md +184 -0
- package/crew/video-editor/rules/extract-frames.md +229 -0
- package/crew/video-editor/rules/ffmpeg.md +34 -0
- package/crew/video-editor/rules/focus-zoom.md +108 -0
- package/crew/video-editor/rules/fonts.md +152 -0
- package/crew/video-editor/rules/get-audio-duration.md +58 -0
- package/crew/video-editor/rules/get-video-dimensions.md +68 -0
- package/crew/video-editor/rules/get-video-duration.md +60 -0
- package/crew/video-editor/rules/gifs.md +141 -0
- package/crew/video-editor/rules/images.md +134 -0
- package/crew/video-editor/rules/import-srt-captions.md +69 -0
- package/crew/video-editor/rules/light-leaks.md +73 -0
- package/crew/video-editor/rules/lottie.md +70 -0
- package/crew/video-editor/rules/maps.md +412 -0
- package/crew/video-editor/rules/measuring-dom-nodes.md +34 -0
- package/crew/video-editor/rules/measuring-text.md +140 -0
- package/crew/video-editor/rules/parameters.md +109 -0
- package/crew/video-editor/rules/sequencing.md +118 -0
- package/crew/video-editor/rules/sfx.md +30 -0
- package/crew/video-editor/rules/silence-detection.md +71 -0
- package/crew/video-editor/rules/subtitles.md +36 -0
- package/crew/video-editor/rules/tailwind.md +11 -0
- package/crew/video-editor/rules/text-animations.md +20 -0
- package/crew/video-editor/rules/theme-switching.md +103 -0
- package/crew/video-editor/rules/timing.md +136 -0
- package/crew/video-editor/rules/transcribe-captions.md +70 -0
- package/crew/video-editor/rules/transitions.md +197 -0
- package/crew/video-editor/rules/transparent-videos.md +106 -0
- package/crew/video-editor/rules/trimming.md +51 -0
- package/crew/video-editor/rules/ui-chrome.md +139 -0
- package/crew/video-editor/rules/videos.md +171 -0
- package/crew/video-editor/rules/voiceover.md +99 -0
- package/crew/video-editor/template/README.md +42 -0
- package/crew/video-editor/template/package.json +24 -0
- package/crew/video-editor/template/public/.gitkeep +0 -0
- package/crew/video-editor/template/public/image.png +0 -0
- package/crew/video-editor/template/public/logo.png +0 -0
- package/crew/video-editor/template/remotion.config.ts +5 -0
- package/crew/video-editor/template/src/Root.tsx +21 -0
- package/crew/video-editor/template/src/Video.tsx +38 -0
- package/crew/video-editor/template/src/components/LogoStinger.tsx +77 -0
- package/crew/video-editor/template/src/index.ts +4 -0
- package/crew/video-editor/template/tsconfig.json +16 -0
- package/crew/youtube/plugin.json +42 -0
- package/dist/auth/AuthProvider.d.ts +35 -0
- package/dist/auth/AuthProvider.d.ts.map +1 -0
- package/dist/auth/AuthProvider.js +13 -0
- package/dist/auth/AuthProvider.js.map +1 -0
- package/dist/auth/AuthStore.d.ts +79 -0
- package/dist/auth/AuthStore.d.ts.map +1 -0
- package/dist/auth/AuthStore.js +139 -0
- package/dist/auth/AuthStore.js.map +1 -0
- package/dist/auth/LocalAuthProvider.d.ts +28 -0
- package/dist/auth/LocalAuthProvider.d.ts.map +1 -0
- package/dist/auth/LocalAuthProvider.js +70 -0
- package/dist/auth/LocalAuthProvider.js.map +1 -0
- package/dist/auth/TokenService.d.ts +83 -0
- package/dist/auth/TokenService.d.ts.map +1 -0
- package/dist/auth/TokenService.js +129 -0
- package/dist/auth/TokenService.js.map +1 -0
- package/dist/auth/fileToken.d.ts +33 -0
- package/dist/auth/fileToken.d.ts.map +1 -0
- package/dist/auth/fileToken.js +69 -0
- package/dist/auth/fileToken.js.map +1 -0
- package/dist/auth/index.d.ts +47 -0
- package/dist/auth/index.d.ts.map +1 -0
- package/dist/auth/index.js +76 -0
- package/dist/auth/index.js.map +1 -0
- package/dist/auth/jwt.d.ts +27 -0
- package/dist/auth/jwt.d.ts.map +1 -0
- package/dist/auth/jwt.js +67 -0
- package/dist/auth/jwt.js.map +1 -0
- package/dist/channels/BaseChannel.d.ts +139 -0
- package/dist/channels/BaseChannel.d.ts.map +1 -0
- package/dist/channels/BaseChannel.js +103 -0
- package/dist/channels/BaseChannel.js.map +1 -0
- package/dist/channels/BlueBubblesChannel.d.ts +37 -0
- package/dist/channels/BlueBubblesChannel.d.ts.map +1 -0
- package/dist/channels/BlueBubblesChannel.js +115 -0
- package/dist/channels/BlueBubblesChannel.js.map +1 -0
- package/dist/channels/ChannelManager.d.ts +85 -0
- package/dist/channels/ChannelManager.d.ts.map +1 -0
- package/dist/channels/ChannelManager.js +557 -0
- package/dist/channels/ChannelManager.js.map +1 -0
- package/dist/channels/ChannelRegistry.d.ts +57 -0
- package/dist/channels/ChannelRegistry.d.ts.map +1 -0
- package/dist/channels/ChannelRegistry.js +93 -0
- package/dist/channels/ChannelRegistry.js.map +1 -0
- package/dist/channels/DiscordChannel.d.ts +87 -0
- package/dist/channels/DiscordChannel.d.ts.map +1 -0
- package/dist/channels/DiscordChannel.js +469 -0
- package/dist/channels/DiscordChannel.js.map +1 -0
- package/dist/channels/EmailChannel.d.ts +64 -0
- package/dist/channels/EmailChannel.d.ts.map +1 -0
- package/dist/channels/EmailChannel.js +226 -0
- package/dist/channels/EmailChannel.js.map +1 -0
- package/dist/channels/FeishuChannel.d.ts +40 -0
- package/dist/channels/FeishuChannel.d.ts.map +1 -0
- package/dist/channels/FeishuChannel.js +169 -0
- package/dist/channels/FeishuChannel.js.map +1 -0
- package/dist/channels/GoogleChatChannel.d.ts +46 -0
- package/dist/channels/GoogleChatChannel.d.ts.map +1 -0
- package/dist/channels/GoogleChatChannel.js +184 -0
- package/dist/channels/GoogleChatChannel.js.map +1 -0
- package/dist/channels/IRCChannel.d.ts +50 -0
- package/dist/channels/IRCChannel.d.ts.map +1 -0
- package/dist/channels/IRCChannel.js +149 -0
- package/dist/channels/IRCChannel.js.map +1 -0
- package/dist/channels/LineChannel.d.ts +35 -0
- package/dist/channels/LineChannel.d.ts.map +1 -0
- package/dist/channels/LineChannel.js +118 -0
- package/dist/channels/LineChannel.js.map +1 -0
- package/dist/channels/MatrixChannel.d.ts +45 -0
- package/dist/channels/MatrixChannel.d.ts.map +1 -0
- package/dist/channels/MatrixChannel.js +156 -0
- package/dist/channels/MatrixChannel.js.map +1 -0
- package/dist/channels/MattermostChannel.d.ts +42 -0
- package/dist/channels/MattermostChannel.d.ts.map +1 -0
- package/dist/channels/MattermostChannel.js +144 -0
- package/dist/channels/MattermostChannel.js.map +1 -0
- package/dist/channels/NextcloudChannel.d.ts +46 -0
- package/dist/channels/NextcloudChannel.d.ts.map +1 -0
- package/dist/channels/NextcloudChannel.js +146 -0
- package/dist/channels/NextcloudChannel.js.map +1 -0
- package/dist/channels/SignalChannel.d.ts +39 -0
- package/dist/channels/SignalChannel.d.ts.map +1 -0
- package/dist/channels/SignalChannel.js +160 -0
- package/dist/channels/SignalChannel.js.map +1 -0
- package/dist/channels/SlackChannel.d.ts +81 -0
- package/dist/channels/SlackChannel.d.ts.map +1 -0
- package/dist/channels/SlackChannel.js +363 -0
- package/dist/channels/SlackChannel.js.map +1 -0
- package/dist/channels/StreamingEditor.d.ts +37 -0
- package/dist/channels/StreamingEditor.d.ts.map +1 -0
- package/dist/channels/StreamingEditor.js +108 -0
- package/dist/channels/StreamingEditor.js.map +1 -0
- package/dist/channels/TelegramChannel.d.ts +84 -0
- package/dist/channels/TelegramChannel.d.ts.map +1 -0
- package/dist/channels/TelegramChannel.js +469 -0
- package/dist/channels/TelegramChannel.js.map +1 -0
- package/dist/channels/TwitchChannel.d.ts +45 -0
- package/dist/channels/TwitchChannel.d.ts.map +1 -0
- package/dist/channels/TwitchChannel.js +117 -0
- package/dist/channels/TwitchChannel.js.map +1 -0
- package/dist/channels/WhatsAppChannel.d.ts +45 -0
- package/dist/channels/WhatsAppChannel.d.ts.map +1 -0
- package/dist/channels/WhatsAppChannel.js +153 -0
- package/dist/channels/WhatsAppChannel.js.map +1 -0
- package/dist/channels/ZaloChannel.d.ts +42 -0
- package/dist/channels/ZaloChannel.d.ts.map +1 -0
- package/dist/channels/ZaloChannel.js +114 -0
- package/dist/channels/ZaloChannel.js.map +1 -0
- package/dist/cli/commands/config.d.ts +10 -0
- package/dist/cli/commands/config.d.ts.map +1 -0
- package/dist/cli/commands/config.js +107 -0
- package/dist/cli/commands/config.js.map +1 -0
- package/dist/cli/commands/daemon.d.ts +17 -0
- package/dist/cli/commands/daemon.d.ts.map +1 -0
- package/dist/cli/commands/daemon.js +82 -0
- package/dist/cli/commands/daemon.js.map +1 -0
- package/dist/cli/commands/doctor.d.ts +17 -0
- package/dist/cli/commands/doctor.d.ts.map +1 -0
- package/dist/cli/commands/doctor.js +138 -0
- package/dist/cli/commands/doctor.js.map +1 -0
- package/dist/cli/commands/setup.d.ts +16 -0
- package/dist/cli/commands/setup.d.ts.map +1 -0
- package/dist/cli/commands/setup.js +206 -0
- package/dist/cli/commands/setup.js.map +1 -0
- package/dist/cli/commands/start.d.ts +8 -0
- package/dist/cli/commands/start.d.ts.map +1 -0
- package/dist/cli/commands/start.js +444 -0
- package/dist/cli/commands/start.js.map +1 -0
- package/dist/cli/commands/vault.d.ts +15 -0
- package/dist/cli/commands/vault.d.ts.map +1 -0
- package/dist/cli/commands/vault.js +167 -0
- package/dist/cli/commands/vault.js.map +1 -0
- package/dist/cli/index.d.ts +13 -0
- package/dist/cli/index.d.ts.map +1 -0
- package/dist/cli/index.js +93 -0
- package/dist/cli/index.js.map +1 -0
- package/dist/cli/loadEnv.d.ts +14 -0
- package/dist/cli/loadEnv.d.ts.map +1 -0
- package/dist/cli/loadEnv.js +18 -0
- package/dist/cli/loadEnv.js.map +1 -0
- package/dist/config/ConfigManager.d.ts +79 -0
- package/dist/config/ConfigManager.d.ts.map +1 -0
- package/dist/config/ConfigManager.js +118 -0
- package/dist/config/ConfigManager.js.map +1 -0
- package/dist/config/Secret.d.ts +29 -0
- package/dist/config/Secret.d.ts.map +1 -0
- package/dist/config/Secret.js +47 -0
- package/dist/config/Secret.js.map +1 -0
- package/dist/config/SecretVault.d.ts +53 -0
- package/dist/config/SecretVault.d.ts.map +1 -0
- package/dist/config/SecretVault.js +205 -0
- package/dist/config/SecretVault.js.map +1 -0
- package/dist/config/SettingsStore.d.ts +46 -0
- package/dist/config/SettingsStore.d.ts.map +1 -0
- package/dist/config/SettingsStore.js +132 -0
- package/dist/config/SettingsStore.js.map +1 -0
- package/dist/config/env.d.ts +21 -0
- package/dist/config/env.d.ts.map +1 -0
- package/dist/config/env.js +62 -0
- package/dist/config/env.js.map +1 -0
- package/dist/config/schema.d.ts +127 -0
- package/dist/config/schema.d.ts.map +1 -0
- package/dist/config/schema.js +346 -0
- package/dist/config/schema.js.map +1 -0
- package/dist/core/AgentLoop.d.ts +180 -0
- package/dist/core/AgentLoop.d.ts.map +1 -0
- package/dist/core/AgentLoop.js +428 -0
- package/dist/core/AgentLoop.js.map +1 -0
- package/dist/core/AttachmentProcessor.d.ts +75 -0
- package/dist/core/AttachmentProcessor.d.ts.map +1 -0
- package/dist/core/AttachmentProcessor.js +191 -0
- package/dist/core/AttachmentProcessor.js.map +1 -0
- package/dist/core/Compaction.d.ts +62 -0
- package/dist/core/Compaction.d.ts.map +1 -0
- package/dist/core/Compaction.js +260 -0
- package/dist/core/Compaction.js.map +1 -0
- package/dist/core/InboundDebouncer.d.ts +42 -0
- package/dist/core/InboundDebouncer.d.ts.map +1 -0
- package/dist/core/InboundDebouncer.js +81 -0
- package/dist/core/InboundDebouncer.js.map +1 -0
- package/dist/core/LoopDetector.d.ts +36 -0
- package/dist/core/LoopDetector.d.ts.map +1 -0
- package/dist/core/LoopDetector.js +139 -0
- package/dist/core/LoopDetector.js.map +1 -0
- package/dist/core/TaskRunner.d.ts +134 -0
- package/dist/core/TaskRunner.d.ts.map +1 -0
- package/dist/core/TaskRunner.js +454 -0
- package/dist/core/TaskRunner.js.map +1 -0
- package/dist/costs/CostTracker.d.ts +70 -0
- package/dist/costs/CostTracker.d.ts.map +1 -0
- package/dist/costs/CostTracker.js +176 -0
- package/dist/costs/CostTracker.js.map +1 -0
- package/dist/crew/CrewAgentRunner.d.ts +55 -0
- package/dist/crew/CrewAgentRunner.d.ts.map +1 -0
- package/dist/crew/CrewAgentRunner.js +208 -0
- package/dist/crew/CrewAgentRunner.js.map +1 -0
- package/dist/crew/CrewLoader.d.ts +43 -0
- package/dist/crew/CrewLoader.d.ts.map +1 -0
- package/dist/crew/CrewLoader.js +122 -0
- package/dist/crew/CrewLoader.js.map +1 -0
- package/dist/crew/CrewRegistry.d.ts +30 -0
- package/dist/crew/CrewRegistry.d.ts.map +1 -0
- package/dist/crew/CrewRegistry.js +56 -0
- package/dist/crew/CrewRegistry.js.map +1 -0
- package/dist/crew/types.d.ts +79 -0
- package/dist/crew/types.d.ts.map +1 -0
- package/dist/crew/types.js +36 -0
- package/dist/crew/types.js.map +1 -0
- package/dist/cron/CronScheduler.d.ts +40 -0
- package/dist/cron/CronScheduler.d.ts.map +1 -0
- package/dist/cron/CronScheduler.js +119 -0
- package/dist/cron/CronScheduler.js.map +1 -0
- package/dist/cron/CronStore.d.ts +73 -0
- package/dist/cron/CronStore.d.ts.map +1 -0
- package/dist/cron/CronStore.js +209 -0
- package/dist/cron/CronStore.js.map +1 -0
- package/dist/cron/cronParser.d.ts +33 -0
- package/dist/cron/cronParser.d.ts.map +1 -0
- package/dist/cron/cronParser.js +211 -0
- package/dist/cron/cronParser.js.map +1 -0
- package/dist/daemon/DaemonManager.d.ts +59 -0
- package/dist/daemon/DaemonManager.d.ts.map +1 -0
- package/dist/daemon/DaemonManager.js +380 -0
- package/dist/daemon/DaemonManager.js.map +1 -0
- package/dist/embeddings/Embeddings.d.ts +70 -0
- package/dist/embeddings/Embeddings.d.ts.map +1 -0
- package/dist/embeddings/Embeddings.js +252 -0
- package/dist/embeddings/Embeddings.js.map +1 -0
- package/dist/embeddings/TfIdf.d.ts +26 -0
- package/dist/embeddings/TfIdf.d.ts.map +1 -0
- package/dist/embeddings/TfIdf.js +88 -0
- package/dist/embeddings/TfIdf.js.map +1 -0
- package/dist/events/eventBus.d.ts +97 -0
- package/dist/events/eventBus.d.ts.map +1 -0
- package/dist/events/eventBus.js +26 -0
- package/dist/events/eventBus.js.map +1 -0
- package/dist/goals/GoalStore.d.ts +40 -0
- package/dist/goals/GoalStore.d.ts.map +1 -0
- package/dist/goals/GoalStore.js +82 -0
- package/dist/goals/GoalStore.js.map +1 -0
- package/dist/hooks/HookRunner.d.ts +80 -0
- package/dist/hooks/HookRunner.d.ts.map +1 -0
- package/dist/hooks/HookRunner.js +218 -0
- package/dist/hooks/HookRunner.js.map +1 -0
- package/dist/integrations/IntegrationCrewSync.d.ts +33 -0
- package/dist/integrations/IntegrationCrewSync.d.ts.map +1 -0
- package/dist/integrations/IntegrationCrewSync.js +96 -0
- package/dist/integrations/IntegrationCrewSync.js.map +1 -0
- package/dist/integrations/IntegrationManager.d.ts +116 -0
- package/dist/integrations/IntegrationManager.d.ts.map +1 -0
- package/dist/integrations/IntegrationManager.js +580 -0
- package/dist/integrations/IntegrationManager.js.map +1 -0
- package/dist/integrations/IntegrationStore.d.ts +42 -0
- package/dist/integrations/IntegrationStore.d.ts.map +1 -0
- package/dist/integrations/IntegrationStore.js +146 -0
- package/dist/integrations/IntegrationStore.js.map +1 -0
- package/dist/integrations/authFetch.d.ts +21 -0
- package/dist/integrations/authFetch.d.ts.map +1 -0
- package/dist/integrations/authFetch.js +36 -0
- package/dist/integrations/authFetch.js.map +1 -0
- package/dist/integrations/facebook/FacebookClient.d.ts +33 -0
- package/dist/integrations/facebook/FacebookClient.d.ts.map +1 -0
- package/dist/integrations/facebook/FacebookClient.js +88 -0
- package/dist/integrations/facebook/FacebookClient.js.map +1 -0
- package/dist/integrations/facebook/tools.d.ts +9 -0
- package/dist/integrations/facebook/tools.d.ts.map +1 -0
- package/dist/integrations/facebook/tools.js +324 -0
- package/dist/integrations/facebook/tools.js.map +1 -0
- package/dist/integrations/gmail/GmailClient.d.ts +34 -0
- package/dist/integrations/gmail/GmailClient.d.ts.map +1 -0
- package/dist/integrations/gmail/GmailClient.js +69 -0
- package/dist/integrations/gmail/GmailClient.js.map +1 -0
- package/dist/integrations/gmail/tools.d.ts +14 -0
- package/dist/integrations/gmail/tools.d.ts.map +1 -0
- package/dist/integrations/gmail/tools.js +295 -0
- package/dist/integrations/gmail/tools.js.map +1 -0
- package/dist/integrations/google-calendar/CalendarClient.d.ts +16 -0
- package/dist/integrations/google-calendar/CalendarClient.d.ts.map +1 -0
- package/dist/integrations/google-calendar/CalendarClient.js +39 -0
- package/dist/integrations/google-calendar/CalendarClient.js.map +1 -0
- package/dist/integrations/google-calendar/tools.d.ts +15 -0
- package/dist/integrations/google-calendar/tools.d.ts.map +1 -0
- package/dist/integrations/google-calendar/tools.js +246 -0
- package/dist/integrations/google-calendar/tools.js.map +1 -0
- package/dist/integrations/instagram/InstagramClient.d.ts +33 -0
- package/dist/integrations/instagram/InstagramClient.d.ts.map +1 -0
- package/dist/integrations/instagram/InstagramClient.js +93 -0
- package/dist/integrations/instagram/InstagramClient.js.map +1 -0
- package/dist/integrations/instagram/tools.d.ts +17 -0
- package/dist/integrations/instagram/tools.d.ts.map +1 -0
- package/dist/integrations/instagram/tools.js +348 -0
- package/dist/integrations/instagram/tools.js.map +1 -0
- package/dist/integrations/keys.d.ts +56 -0
- package/dist/integrations/keys.d.ts.map +1 -0
- package/dist/integrations/keys.js +174 -0
- package/dist/integrations/keys.js.map +1 -0
- package/dist/integrations/linkedin/LinkedInClient.d.ts +24 -0
- package/dist/integrations/linkedin/LinkedInClient.d.ts.map +1 -0
- package/dist/integrations/linkedin/LinkedInClient.js +56 -0
- package/dist/integrations/linkedin/LinkedInClient.js.map +1 -0
- package/dist/integrations/linkedin/tools.d.ts +14 -0
- package/dist/integrations/linkedin/tools.d.ts.map +1 -0
- package/dist/integrations/linkedin/tools.js +154 -0
- package/dist/integrations/linkedin/tools.js.map +1 -0
- package/dist/integrations/pkce.d.ts +17 -0
- package/dist/integrations/pkce.d.ts.map +1 -0
- package/dist/integrations/pkce.js +22 -0
- package/dist/integrations/pkce.js.map +1 -0
- package/dist/integrations/providers/github.d.ts +20 -0
- package/dist/integrations/providers/github.d.ts.map +1 -0
- package/dist/integrations/providers/github.js +113 -0
- package/dist/integrations/providers/github.js.map +1 -0
- package/dist/integrations/providers/google.d.ts +17 -0
- package/dist/integrations/providers/google.d.ts.map +1 -0
- package/dist/integrations/providers/google.js +115 -0
- package/dist/integrations/providers/google.js.map +1 -0
- package/dist/integrations/providers/linkedin.d.ts +22 -0
- package/dist/integrations/providers/linkedin.d.ts.map +1 -0
- package/dist/integrations/providers/linkedin.js +103 -0
- package/dist/integrations/providers/linkedin.js.map +1 -0
- package/dist/integrations/providers/meta.d.ts +19 -0
- package/dist/integrations/providers/meta.d.ts.map +1 -0
- package/dist/integrations/providers/meta.js +116 -0
- package/dist/integrations/providers/meta.js.map +1 -0
- package/dist/integrations/providers/notion.d.ts +21 -0
- package/dist/integrations/providers/notion.d.ts.map +1 -0
- package/dist/integrations/providers/notion.js +96 -0
- package/dist/integrations/providers/notion.js.map +1 -0
- package/dist/integrations/providers/reddit.d.ts +18 -0
- package/dist/integrations/providers/reddit.d.ts.map +1 -0
- package/dist/integrations/providers/reddit.js +104 -0
- package/dist/integrations/providers/reddit.js.map +1 -0
- package/dist/integrations/providers/tiktok.d.ts +28 -0
- package/dist/integrations/providers/tiktok.d.ts.map +1 -0
- package/dist/integrations/providers/tiktok.js +138 -0
- package/dist/integrations/providers/tiktok.js.map +1 -0
- package/dist/integrations/providers/twitter.d.ts +26 -0
- package/dist/integrations/providers/twitter.d.ts.map +1 -0
- package/dist/integrations/providers/twitter.js +141 -0
- package/dist/integrations/providers/twitter.js.map +1 -0
- package/dist/integrations/reddit/RedditClient.d.ts +18 -0
- package/dist/integrations/reddit/RedditClient.d.ts.map +1 -0
- package/dist/integrations/reddit/RedditClient.js +54 -0
- package/dist/integrations/reddit/RedditClient.js.map +1 -0
- package/dist/integrations/reddit/tools.d.ts +16 -0
- package/dist/integrations/reddit/tools.d.ts.map +1 -0
- package/dist/integrations/reddit/tools.js +293 -0
- package/dist/integrations/reddit/tools.js.map +1 -0
- package/dist/integrations/tiktok/TikTokClient.d.ts +21 -0
- package/dist/integrations/tiktok/TikTokClient.d.ts.map +1 -0
- package/dist/integrations/tiktok/TikTokClient.js +44 -0
- package/dist/integrations/tiktok/TikTokClient.js.map +1 -0
- package/dist/integrations/tiktok/tools.d.ts +17 -0
- package/dist/integrations/tiktok/tools.d.ts.map +1 -0
- package/dist/integrations/tiktok/tools.js +258 -0
- package/dist/integrations/tiktok/tools.js.map +1 -0
- package/dist/integrations/tools.d.ts +20 -0
- package/dist/integrations/tools.d.ts.map +1 -0
- package/dist/integrations/tools.js +43 -0
- package/dist/integrations/tools.js.map +1 -0
- package/dist/integrations/twitter/TwitterClient.d.ts +19 -0
- package/dist/integrations/twitter/TwitterClient.d.ts.map +1 -0
- package/dist/integrations/twitter/TwitterClient.js +51 -0
- package/dist/integrations/twitter/TwitterClient.js.map +1 -0
- package/dist/integrations/twitter/tools.d.ts +11 -0
- package/dist/integrations/twitter/tools.d.ts.map +1 -0
- package/dist/integrations/twitter/tools.js +459 -0
- package/dist/integrations/twitter/tools.js.map +1 -0
- package/dist/integrations/types.d.ts +118 -0
- package/dist/integrations/types.d.ts.map +1 -0
- package/dist/integrations/types.js +10 -0
- package/dist/integrations/types.js.map +1 -0
- package/dist/integrations/youtube/YouTubeClient.d.ts +45 -0
- package/dist/integrations/youtube/YouTubeClient.d.ts.map +1 -0
- package/dist/integrations/youtube/YouTubeClient.js +115 -0
- package/dist/integrations/youtube/YouTubeClient.js.map +1 -0
- package/dist/integrations/youtube/tools.d.ts +14 -0
- package/dist/integrations/youtube/tools.d.ts.map +1 -0
- package/dist/integrations/youtube/tools.js +500 -0
- package/dist/integrations/youtube/tools.js.map +1 -0
- package/dist/learning/BackgroundReviewer.d.ts +43 -0
- package/dist/learning/BackgroundReviewer.d.ts.map +1 -0
- package/dist/learning/BackgroundReviewer.js +143 -0
- package/dist/learning/BackgroundReviewer.js.map +1 -0
- package/dist/learning/ExtractionPipeline.d.ts +46 -0
- package/dist/learning/ExtractionPipeline.d.ts.map +1 -0
- package/dist/learning/ExtractionPipeline.js +220 -0
- package/dist/learning/ExtractionPipeline.js.map +1 -0
- package/dist/learning/MemoryDecay.d.ts +63 -0
- package/dist/learning/MemoryDecay.d.ts.map +1 -0
- package/dist/learning/MemoryDecay.js +204 -0
- package/dist/learning/MemoryDecay.js.map +1 -0
- package/dist/learning/SmartRecall.d.ts +58 -0
- package/dist/learning/SmartRecall.d.ts.map +1 -0
- package/dist/learning/SmartRecall.js +182 -0
- package/dist/learning/SmartRecall.js.map +1 -0
- package/dist/mcp/MCPIntegrationBridge.d.ts +40 -0
- package/dist/mcp/MCPIntegrationBridge.d.ts.map +1 -0
- package/dist/mcp/MCPIntegrationBridge.js +136 -0
- package/dist/mcp/MCPIntegrationBridge.js.map +1 -0
- package/dist/mcp/MCPManager.d.ts +126 -0
- package/dist/mcp/MCPManager.d.ts.map +1 -0
- package/dist/mcp/MCPManager.js +418 -0
- package/dist/mcp/MCPManager.js.map +1 -0
- package/dist/mcp/MCPStore.d.ts +41 -0
- package/dist/mcp/MCPStore.d.ts.map +1 -0
- package/dist/mcp/MCPStore.js +102 -0
- package/dist/mcp/MCPStore.js.map +1 -0
- package/dist/mcp/defaults.d.ts +51 -0
- package/dist/mcp/defaults.d.ts.map +1 -0
- package/dist/mcp/defaults.js +243 -0
- package/dist/mcp/defaults.js.map +1 -0
- package/dist/memory/DeclarativeMemoryStore.d.ts +54 -0
- package/dist/memory/DeclarativeMemoryStore.d.ts.map +1 -0
- package/dist/memory/DeclarativeMemoryStore.js +195 -0
- package/dist/memory/DeclarativeMemoryStore.js.map +1 -0
- package/dist/memory/MemoryStore.d.ts +65 -0
- package/dist/memory/MemoryStore.d.ts.map +1 -0
- package/dist/memory/MemoryStore.js +189 -0
- package/dist/memory/MemoryStore.js.map +1 -0
- package/dist/memory/SessionStore.d.ts +207 -0
- package/dist/memory/SessionStore.d.ts.map +1 -0
- package/dist/memory/SessionStore.js +391 -0
- package/dist/memory/SessionStore.js.map +1 -0
- package/dist/models/ModelRouter.d.ts +57 -0
- package/dist/models/ModelRouter.d.ts.map +1 -0
- package/dist/models/ModelRouter.js +301 -0
- package/dist/models/ModelRouter.js.map +1 -0
- package/dist/models/discovery.d.ts +44 -0
- package/dist/models/discovery.d.ts.map +1 -0
- package/dist/models/discovery.js +456 -0
- package/dist/models/discovery.js.map +1 -0
- package/dist/models/providers.d.ts +82 -0
- package/dist/models/providers.d.ts.map +1 -0
- package/dist/models/providers.js +455 -0
- package/dist/models/providers.js.map +1 -0
- package/dist/models/registry.d.ts +13 -0
- package/dist/models/registry.d.ts.map +1 -0
- package/dist/models/registry.js +42 -0
- package/dist/models/registry.js.map +1 -0
- package/dist/models/types.d.ts +24 -0
- package/dist/models/types.d.ts.map +1 -0
- package/dist/models/types.js +8 -0
- package/dist/models/types.js.map +1 -0
- package/dist/projects/ProjectStore.d.ts +73 -0
- package/dist/projects/ProjectStore.d.ts.map +1 -0
- package/dist/projects/ProjectStore.js +132 -0
- package/dist/projects/ProjectStore.js.map +1 -0
- package/dist/safety/AuditLog.d.ts +53 -0
- package/dist/safety/AuditLog.d.ts.map +1 -0
- package/dist/safety/AuditLog.js +170 -0
- package/dist/safety/AuditLog.js.map +1 -0
- package/dist/safety/CircuitBreaker.d.ts +53 -0
- package/dist/safety/CircuitBreaker.d.ts.map +1 -0
- package/dist/safety/CircuitBreaker.js +112 -0
- package/dist/safety/CircuitBreaker.js.map +1 -0
- package/dist/safety/CommandGuard.d.ts +32 -0
- package/dist/safety/CommandGuard.d.ts.map +1 -0
- package/dist/safety/CommandGuard.js +157 -0
- package/dist/safety/CommandGuard.js.map +1 -0
- package/dist/safety/DockerSandbox.d.ts +72 -0
- package/dist/safety/DockerSandbox.d.ts.map +1 -0
- package/dist/safety/DockerSandbox.js +188 -0
- package/dist/safety/DockerSandbox.js.map +1 -0
- package/dist/safety/EgressGuard.d.ts +35 -0
- package/dist/safety/EgressGuard.d.ts.map +1 -0
- package/dist/safety/EgressGuard.js +95 -0
- package/dist/safety/EgressGuard.js.map +1 -0
- package/dist/safety/ExecApproval.d.ts +53 -0
- package/dist/safety/ExecApproval.d.ts.map +1 -0
- package/dist/safety/ExecApproval.js +120 -0
- package/dist/safety/ExecApproval.js.map +1 -0
- package/dist/safety/FilesystemGuard.d.ts +94 -0
- package/dist/safety/FilesystemGuard.d.ts.map +1 -0
- package/dist/safety/FilesystemGuard.js +275 -0
- package/dist/safety/FilesystemGuard.js.map +1 -0
- package/dist/safety/GitRollback.d.ts +47 -0
- package/dist/safety/GitRollback.d.ts.map +1 -0
- package/dist/safety/GitRollback.js +161 -0
- package/dist/safety/GitRollback.js.map +1 -0
- package/dist/safety/HumanApproval.d.ts +65 -0
- package/dist/safety/HumanApproval.d.ts.map +1 -0
- package/dist/safety/HumanApproval.js +157 -0
- package/dist/safety/HumanApproval.js.map +1 -0
- package/dist/safety/InputSanitizer.d.ts +59 -0
- package/dist/safety/InputSanitizer.d.ts.map +1 -0
- package/dist/safety/InputSanitizer.js +111 -0
- package/dist/safety/InputSanitizer.js.map +1 -0
- package/dist/safety/PermissionGuard.d.ts +49 -0
- package/dist/safety/PermissionGuard.d.ts.map +1 -0
- package/dist/safety/PermissionGuard.js +136 -0
- package/dist/safety/PermissionGuard.js.map +1 -0
- package/dist/safety/Sandbox.d.ts +38 -0
- package/dist/safety/Sandbox.d.ts.map +1 -0
- package/dist/safety/Sandbox.js +82 -0
- package/dist/safety/Sandbox.js.map +1 -0
- package/dist/safety/SecretScanner.d.ts +67 -0
- package/dist/safety/SecretScanner.d.ts.map +1 -0
- package/dist/safety/SecretScanner.js +150 -0
- package/dist/safety/SecretScanner.js.map +1 -0
- package/dist/safety/Supervisor.d.ts +69 -0
- package/dist/safety/Supervisor.d.ts.map +1 -0
- package/dist/safety/Supervisor.js +165 -0
- package/dist/safety/Supervisor.js.map +1 -0
- package/dist/scheduler/CronExecutor.d.ts +18 -0
- package/dist/scheduler/CronExecutor.d.ts.map +1 -0
- package/dist/scheduler/CronExecutor.js +57 -0
- package/dist/scheduler/CronExecutor.js.map +1 -0
- package/dist/scheduler/DailyLog.d.ts +29 -0
- package/dist/scheduler/DailyLog.d.ts.map +1 -0
- package/dist/scheduler/DailyLog.js +84 -0
- package/dist/scheduler/DailyLog.js.map +1 -0
- package/dist/scheduler/DeliveryPresetStore.d.ts +47 -0
- package/dist/scheduler/DeliveryPresetStore.d.ts.map +1 -0
- package/dist/scheduler/DeliveryPresetStore.js +101 -0
- package/dist/scheduler/DeliveryPresetStore.js.map +1 -0
- package/dist/scheduler/GoalPulse.d.ts +42 -0
- package/dist/scheduler/GoalPulse.d.ts.map +1 -0
- package/dist/scheduler/GoalPulse.js +123 -0
- package/dist/scheduler/GoalPulse.js.map +1 -0
- package/dist/scheduler/Heartbeat.d.ts +87 -0
- package/dist/scheduler/Heartbeat.d.ts.map +1 -0
- package/dist/scheduler/Heartbeat.js +313 -0
- package/dist/scheduler/Heartbeat.js.map +1 -0
- package/dist/scheduler/MorningPulse.d.ts +23 -0
- package/dist/scheduler/MorningPulse.d.ts.map +1 -0
- package/dist/scheduler/MorningPulse.js +45 -0
- package/dist/scheduler/MorningPulse.js.map +1 -0
- package/dist/server/index.d.ts +77 -0
- package/dist/server/index.d.ts.map +1 -0
- package/dist/server/index.js +227 -0
- package/dist/server/index.js.map +1 -0
- package/dist/server/middleware/requireAuth.d.ts +41 -0
- package/dist/server/middleware/requireAuth.d.ts.map +1 -0
- package/dist/server/middleware/requireAuth.js +72 -0
- package/dist/server/middleware/requireAuth.js.map +1 -0
- package/dist/server/middleware/security.d.ts +83 -0
- package/dist/server/middleware/security.d.ts.map +1 -0
- package/dist/server/middleware/security.js +171 -0
- package/dist/server/middleware/security.js.map +1 -0
- package/dist/server/routes/auth.d.ts +24 -0
- package/dist/server/routes/auth.d.ts.map +1 -0
- package/dist/server/routes/auth.js +65 -0
- package/dist/server/routes/auth.js.map +1 -0
- package/dist/server/routes/channels.d.ts +7 -0
- package/dist/server/routes/channels.d.ts.map +1 -0
- package/dist/server/routes/channels.js +90 -0
- package/dist/server/routes/channels.js.map +1 -0
- package/dist/server/routes/chat.d.ts +19 -0
- package/dist/server/routes/chat.d.ts.map +1 -0
- package/dist/server/routes/chat.js +209 -0
- package/dist/server/routes/chat.js.map +1 -0
- package/dist/server/routes/compat.d.ts +8 -0
- package/dist/server/routes/compat.d.ts.map +1 -0
- package/dist/server/routes/compat.js +661 -0
- package/dist/server/routes/compat.js.map +1 -0
- package/dist/server/routes/config.d.ts +10 -0
- package/dist/server/routes/config.d.ts.map +1 -0
- package/dist/server/routes/config.js +142 -0
- package/dist/server/routes/config.js.map +1 -0
- package/dist/server/routes/costs.d.ts +7 -0
- package/dist/server/routes/costs.d.ts.map +1 -0
- package/dist/server/routes/costs.js +23 -0
- package/dist/server/routes/costs.js.map +1 -0
- package/dist/server/routes/crew.d.ts +21 -0
- package/dist/server/routes/crew.d.ts.map +1 -0
- package/dist/server/routes/crew.js +372 -0
- package/dist/server/routes/crew.js.map +1 -0
- package/dist/server/routes/cron.d.ts +9 -0
- package/dist/server/routes/cron.d.ts.map +1 -0
- package/dist/server/routes/cron.js +91 -0
- package/dist/server/routes/cron.js.map +1 -0
- package/dist/server/routes/deliveryPresets.d.ts +13 -0
- package/dist/server/routes/deliveryPresets.d.ts.map +1 -0
- package/dist/server/routes/deliveryPresets.js +42 -0
- package/dist/server/routes/deliveryPresets.js.map +1 -0
- package/dist/server/routes/goals.d.ts +7 -0
- package/dist/server/routes/goals.d.ts.map +1 -0
- package/dist/server/routes/goals.js +65 -0
- package/dist/server/routes/goals.js.map +1 -0
- package/dist/server/routes/integrations.d.ts +35 -0
- package/dist/server/routes/integrations.d.ts.map +1 -0
- package/dist/server/routes/integrations.js +448 -0
- package/dist/server/routes/integrations.js.map +1 -0
- package/dist/server/routes/mcp.d.ts +7 -0
- package/dist/server/routes/mcp.d.ts.map +1 -0
- package/dist/server/routes/mcp.js +88 -0
- package/dist/server/routes/mcp.js.map +1 -0
- package/dist/server/routes/memory.d.ts +15 -0
- package/dist/server/routes/memory.d.ts.map +1 -0
- package/dist/server/routes/memory.js +104 -0
- package/dist/server/routes/memory.js.map +1 -0
- package/dist/server/routes/providers.d.ts +15 -0
- package/dist/server/routes/providers.d.ts.map +1 -0
- package/dist/server/routes/providers.js +209 -0
- package/dist/server/routes/providers.js.map +1 -0
- package/dist/server/routes/security.d.ts +15 -0
- package/dist/server/routes/security.d.ts.map +1 -0
- package/dist/server/routes/security.js +117 -0
- package/dist/server/routes/security.js.map +1 -0
- package/dist/server/routes/sessions.d.ts +12 -0
- package/dist/server/routes/sessions.d.ts.map +1 -0
- package/dist/server/routes/sessions.js +172 -0
- package/dist/server/routes/sessions.js.map +1 -0
- package/dist/server/routes/skills.d.ts +11 -0
- package/dist/server/routes/skills.d.ts.map +1 -0
- package/dist/server/routes/skills.js +214 -0
- package/dist/server/routes/skills.js.map +1 -0
- package/dist/server/routes/tasks.d.ts +10 -0
- package/dist/server/routes/tasks.d.ts.map +1 -0
- package/dist/server/routes/tasks.js +38 -0
- package/dist/server/routes/tasks.js.map +1 -0
- package/dist/server/routes/teams.d.ts +7 -0
- package/dist/server/routes/teams.d.ts.map +1 -0
- package/dist/server/routes/teams.js +61 -0
- package/dist/server/routes/teams.js.map +1 -0
- package/dist/server/routes/tunnel.d.ts +12 -0
- package/dist/server/routes/tunnel.d.ts.map +1 -0
- package/dist/server/routes/tunnel.js +18 -0
- package/dist/server/routes/tunnel.js.map +1 -0
- package/dist/server/routes/vault.d.ts +15 -0
- package/dist/server/routes/vault.d.ts.map +1 -0
- package/dist/server/routes/vault.js +82 -0
- package/dist/server/routes/vault.js.map +1 -0
- package/dist/server/routes/voice.d.ts +16 -0
- package/dist/server/routes/voice.d.ts.map +1 -0
- package/dist/server/routes/voice.js +431 -0
- package/dist/server/routes/voice.js.map +1 -0
- package/dist/server/routes/watchers.d.ts +14 -0
- package/dist/server/routes/watchers.d.ts.map +1 -0
- package/dist/server/routes/watchers.js +143 -0
- package/dist/server/routes/watchers.js.map +1 -0
- package/dist/services/Cleanup.d.ts +50 -0
- package/dist/services/Cleanup.d.ts.map +1 -0
- package/dist/services/Cleanup.js +104 -0
- package/dist/services/Cleanup.js.map +1 -0
- package/dist/skills/SecurityScanner.d.ts +18 -0
- package/dist/skills/SecurityScanner.d.ts.map +1 -0
- package/dist/skills/SecurityScanner.js +49 -0
- package/dist/skills/SecurityScanner.js.map +1 -0
- package/dist/skills/SkillLoader.d.ts +45 -0
- package/dist/skills/SkillLoader.d.ts.map +1 -0
- package/dist/skills/SkillLoader.js +336 -0
- package/dist/skills/SkillLoader.js.map +1 -0
- package/dist/skills/SkillRegistry.d.ts +78 -0
- package/dist/skills/SkillRegistry.d.ts.map +1 -0
- package/dist/skills/SkillRegistry.js +185 -0
- package/dist/skills/SkillRegistry.js.map +1 -0
- package/dist/skills/SkillSnapshot.d.ts +37 -0
- package/dist/skills/SkillSnapshot.d.ts.map +1 -0
- package/dist/skills/SkillSnapshot.js +106 -0
- package/dist/skills/SkillSnapshot.js.map +1 -0
- package/dist/skills/types.d.ts +184 -0
- package/dist/skills/types.d.ts.map +1 -0
- package/dist/skills/types.js +58 -0
- package/dist/skills/types.js.map +1 -0
- package/dist/tasks/TaskStore.d.ts +70 -0
- package/dist/tasks/TaskStore.d.ts.map +1 -0
- package/dist/tasks/TaskStore.js +200 -0
- package/dist/tasks/TaskStore.js.map +1 -0
- package/dist/teams/TeamRunner.d.ts +46 -0
- package/dist/teams/TeamRunner.d.ts.map +1 -0
- package/dist/teams/TeamRunner.js +186 -0
- package/dist/teams/TeamRunner.js.map +1 -0
- package/dist/teams/TeamStore.d.ts +84 -0
- package/dist/teams/TeamStore.d.ts.map +1 -0
- package/dist/teams/TeamStore.js +231 -0
- package/dist/teams/TeamStore.js.map +1 -0
- package/dist/teams/templates.d.ts +18 -0
- package/dist/teams/templates.d.ts.map +1 -0
- package/dist/teams/templates.js +89 -0
- package/dist/teams/templates.js.map +1 -0
- package/dist/tools/core/applyPatch.d.ts +19 -0
- package/dist/tools/core/applyPatch.d.ts.map +1 -0
- package/dist/tools/core/applyPatch.js +51 -0
- package/dist/tools/core/applyPatch.js.map +1 -0
- package/dist/tools/core/broadcast.d.ts +67 -0
- package/dist/tools/core/broadcast.d.ts.map +1 -0
- package/dist/tools/core/broadcast.js +93 -0
- package/dist/tools/core/broadcast.js.map +1 -0
- package/dist/tools/core/clipboard.d.ts +17 -0
- package/dist/tools/core/clipboard.d.ts.map +1 -0
- package/dist/tools/core/clipboard.js +38 -0
- package/dist/tools/core/clipboard.js.map +1 -0
- package/dist/tools/core/createDocument.d.ts +27 -0
- package/dist/tools/core/createDocument.d.ts.map +1 -0
- package/dist/tools/core/createDocument.js +297 -0
- package/dist/tools/core/createDocument.js.map +1 -0
- package/dist/tools/core/cronTool.d.ts +55 -0
- package/dist/tools/core/cronTool.d.ts.map +1 -0
- package/dist/tools/core/cronTool.js +162 -0
- package/dist/tools/core/cronTool.js.map +1 -0
- package/dist/tools/core/desktop.d.ts +16 -0
- package/dist/tools/core/desktop.d.ts.map +1 -0
- package/dist/tools/core/desktop.js +480 -0
- package/dist/tools/core/desktop.js.map +1 -0
- package/dist/tools/core/editFile.d.ts +43 -0
- package/dist/tools/core/editFile.d.ts.map +1 -0
- package/dist/tools/core/editFile.js +104 -0
- package/dist/tools/core/editFile.js.map +1 -0
- package/dist/tools/core/executeCommand.d.ts +36 -0
- package/dist/tools/core/executeCommand.d.ts.map +1 -0
- package/dist/tools/core/executeCommand.js +92 -0
- package/dist/tools/core/executeCommand.js.map +1 -0
- package/dist/tools/core/fetchUrl.d.ts +38 -0
- package/dist/tools/core/fetchUrl.d.ts.map +1 -0
- package/dist/tools/core/fetchUrl.js +111 -0
- package/dist/tools/core/fetchUrl.js.map +1 -0
- package/dist/tools/core/generateImage.d.ts +42 -0
- package/dist/tools/core/generateImage.d.ts.map +1 -0
- package/dist/tools/core/generateImage.js +143 -0
- package/dist/tools/core/generateImage.js.map +1 -0
- package/dist/tools/core/generateMusic.d.ts +42 -0
- package/dist/tools/core/generateMusic.d.ts.map +1 -0
- package/dist/tools/core/generateMusic.js +158 -0
- package/dist/tools/core/generateMusic.js.map +1 -0
- package/dist/tools/core/generateVideo.d.ts +45 -0
- package/dist/tools/core/generateVideo.d.ts.map +1 -0
- package/dist/tools/core/generateVideo.js +447 -0
- package/dist/tools/core/generateVideo.js.map +1 -0
- package/dist/tools/core/gitTool.d.ts +81 -0
- package/dist/tools/core/gitTool.d.ts.map +1 -0
- package/dist/tools/core/gitTool.js +196 -0
- package/dist/tools/core/gitTool.js.map +1 -0
- package/dist/tools/core/glob.d.ts +26 -0
- package/dist/tools/core/glob.d.ts.map +1 -0
- package/dist/tools/core/glob.js +104 -0
- package/dist/tools/core/glob.js.map +1 -0
- package/dist/tools/core/goalTool.d.ts +50 -0
- package/dist/tools/core/goalTool.d.ts.map +1 -0
- package/dist/tools/core/goalTool.js +150 -0
- package/dist/tools/core/goalTool.js.map +1 -0
- package/dist/tools/core/grep.d.ts +32 -0
- package/dist/tools/core/grep.d.ts.map +1 -0
- package/dist/tools/core/grep.js +83 -0
- package/dist/tools/core/grep.js.map +1 -0
- package/dist/tools/core/imageAnalysis.d.ts +18 -0
- package/dist/tools/core/imageAnalysis.d.ts.map +1 -0
- package/dist/tools/core/imageAnalysis.js +77 -0
- package/dist/tools/core/imageAnalysis.js.map +1 -0
- package/dist/tools/core/imageOps.d.ts +70 -0
- package/dist/tools/core/imageOps.d.ts.map +1 -0
- package/dist/tools/core/imageOps.js +179 -0
- package/dist/tools/core/imageOps.js.map +1 -0
- package/dist/tools/core/index.d.ts +50 -0
- package/dist/tools/core/index.d.ts.map +1 -0
- package/dist/tools/core/index.js +159 -0
- package/dist/tools/core/index.js.map +1 -0
- package/dist/tools/core/listCrews.d.ts +41 -0
- package/dist/tools/core/listCrews.d.ts.map +1 -0
- package/dist/tools/core/listCrews.js +50 -0
- package/dist/tools/core/listCrews.js.map +1 -0
- package/dist/tools/core/listDirectory.d.ts +33 -0
- package/dist/tools/core/listDirectory.d.ts.map +1 -0
- package/dist/tools/core/listDirectory.js +89 -0
- package/dist/tools/core/listDirectory.js.map +1 -0
- package/dist/tools/core/manageAgents.d.ts +48 -0
- package/dist/tools/core/manageAgents.d.ts.map +1 -0
- package/dist/tools/core/manageAgents.js +104 -0
- package/dist/tools/core/manageAgents.js.map +1 -0
- package/dist/tools/core/manageMCP.d.ts +52 -0
- package/dist/tools/core/manageMCP.d.ts.map +1 -0
- package/dist/tools/core/manageMCP.js +160 -0
- package/dist/tools/core/manageMCP.js.map +1 -0
- package/dist/tools/core/memory.d.ts +49 -0
- package/dist/tools/core/memory.d.ts.map +1 -0
- package/dist/tools/core/memory.js +80 -0
- package/dist/tools/core/memory.js.map +1 -0
- package/dist/tools/core/memoryRecall.d.ts +39 -0
- package/dist/tools/core/memoryRecall.d.ts.map +1 -0
- package/dist/tools/core/memoryRecall.js +42 -0
- package/dist/tools/core/memoryRecall.js.map +1 -0
- package/dist/tools/core/memorySave.d.ts +33 -0
- package/dist/tools/core/memorySave.d.ts.map +1 -0
- package/dist/tools/core/memorySave.js +41 -0
- package/dist/tools/core/memorySave.js.map +1 -0
- package/dist/tools/core/messageChannel.d.ts +27 -0
- package/dist/tools/core/messageChannel.d.ts.map +1 -0
- package/dist/tools/core/messageChannel.js +59 -0
- package/dist/tools/core/messageChannel.js.map +1 -0
- package/dist/tools/core/parallelCrew.d.ts +54 -0
- package/dist/tools/core/parallelCrew.d.ts.map +1 -0
- package/dist/tools/core/parallelCrew.js +60 -0
- package/dist/tools/core/parallelCrew.js.map +1 -0
- package/dist/tools/core/pollTool.d.ts +36 -0
- package/dist/tools/core/pollTool.d.ts.map +1 -0
- package/dist/tools/core/pollTool.js +69 -0
- package/dist/tools/core/pollTool.js.map +1 -0
- package/dist/tools/core/projectTracker.d.ts +71 -0
- package/dist/tools/core/projectTracker.d.ts.map +1 -0
- package/dist/tools/core/projectTracker.js +181 -0
- package/dist/tools/core/projectTracker.js.map +1 -0
- package/dist/tools/core/readFile.d.ts +24 -0
- package/dist/tools/core/readFile.d.ts.map +1 -0
- package/dist/tools/core/readFile.js +49 -0
- package/dist/tools/core/readFile.js.map +1 -0
- package/dist/tools/core/readPDF.d.ts +32 -0
- package/dist/tools/core/readPDF.d.ts.map +1 -0
- package/dist/tools/core/readPDF.js +135 -0
- package/dist/tools/core/readPDF.js.map +1 -0
- package/dist/tools/core/reloadTool.d.ts +36 -0
- package/dist/tools/core/reloadTool.d.ts.map +1 -0
- package/dist/tools/core/reloadTool.js +109 -0
- package/dist/tools/core/reloadTool.js.map +1 -0
- package/dist/tools/core/replyToUser.d.ts +14 -0
- package/dist/tools/core/replyToUser.d.ts.map +1 -0
- package/dist/tools/core/replyToUser.js +19 -0
- package/dist/tools/core/replyToUser.js.map +1 -0
- package/dist/tools/core/screenCapture.d.ts +17 -0
- package/dist/tools/core/screenCapture.d.ts.map +1 -0
- package/dist/tools/core/screenCapture.js +34 -0
- package/dist/tools/core/screenCapture.js.map +1 -0
- package/dist/tools/core/sendEmail.d.ts +34 -0
- package/dist/tools/core/sendEmail.d.ts.map +1 -0
- package/dist/tools/core/sendEmail.js +56 -0
- package/dist/tools/core/sendEmail.js.map +1 -0
- package/dist/tools/core/sendFile.d.ts +37 -0
- package/dist/tools/core/sendFile.d.ts.map +1 -0
- package/dist/tools/core/sendFile.js +53 -0
- package/dist/tools/core/sendFile.js.map +1 -0
- package/dist/tools/core/sessionSearch.d.ts +62 -0
- package/dist/tools/core/sessionSearch.d.ts.map +1 -0
- package/dist/tools/core/sessionSearch.js +154 -0
- package/dist/tools/core/sessionSearch.js.map +1 -0
- package/dist/tools/core/skillManage.d.ts +71 -0
- package/dist/tools/core/skillManage.d.ts.map +1 -0
- package/dist/tools/core/skillManage.js +353 -0
- package/dist/tools/core/skillManage.js.map +1 -0
- package/dist/tools/core/skillView.d.ts +46 -0
- package/dist/tools/core/skillView.d.ts.map +1 -0
- package/dist/tools/core/skillView.js +101 -0
- package/dist/tools/core/skillView.js.map +1 -0
- package/dist/tools/core/teamTool.d.ts +71 -0
- package/dist/tools/core/teamTool.d.ts.map +1 -0
- package/dist/tools/core/teamTool.js +132 -0
- package/dist/tools/core/teamTool.js.map +1 -0
- package/dist/tools/core/textToSpeech.d.ts +25 -0
- package/dist/tools/core/textToSpeech.d.ts.map +1 -0
- package/dist/tools/core/textToSpeech.js +87 -0
- package/dist/tools/core/textToSpeech.js.map +1 -0
- package/dist/tools/core/transcribeAudio.d.ts +21 -0
- package/dist/tools/core/transcribeAudio.d.ts.map +1 -0
- package/dist/tools/core/transcribeAudio.js +27 -0
- package/dist/tools/core/transcribeAudio.js.map +1 -0
- package/dist/tools/core/useCrew.d.ts +38 -0
- package/dist/tools/core/useCrew.d.ts.map +1 -0
- package/dist/tools/core/useCrew.js +48 -0
- package/dist/tools/core/useCrew.js.map +1 -0
- package/dist/tools/core/useMCP.d.ts +40 -0
- package/dist/tools/core/useMCP.d.ts.map +1 -0
- package/dist/tools/core/useMCP.js +64 -0
- package/dist/tools/core/useMCP.js.map +1 -0
- package/dist/tools/core/watcherTool.d.ts +47 -0
- package/dist/tools/core/watcherTool.d.ts.map +1 -0
- package/dist/tools/core/watcherTool.js +119 -0
- package/dist/tools/core/watcherTool.js.map +1 -0
- package/dist/tools/core/webFetch.d.ts +48 -0
- package/dist/tools/core/webFetch.d.ts.map +1 -0
- package/dist/tools/core/webFetch.js +265 -0
- package/dist/tools/core/webFetch.js.map +1 -0
- package/dist/tools/core/webSearch.d.ts +55 -0
- package/dist/tools/core/webSearch.d.ts.map +1 -0
- package/dist/tools/core/webSearch.js +429 -0
- package/dist/tools/core/webSearch.js.map +1 -0
- package/dist/tools/core/writeFile.d.ts +27 -0
- package/dist/tools/core/writeFile.d.ts.map +1 -0
- package/dist/tools/core/writeFile.js +51 -0
- package/dist/tools/core/writeFile.js.map +1 -0
- package/dist/tools/registry.d.ts +36 -0
- package/dist/tools/registry.d.ts.map +1 -0
- package/dist/tools/registry.js +73 -0
- package/dist/tools/registry.js.map +1 -0
- package/dist/tools/types.d.ts +50 -0
- package/dist/tools/types.d.ts.map +1 -0
- package/dist/tools/types.js +20 -0
- package/dist/tools/types.js.map +1 -0
- package/dist/tunnels/TunnelManager.d.ts +52 -0
- package/dist/tunnels/TunnelManager.d.ts.map +1 -0
- package/dist/tunnels/TunnelManager.js +183 -0
- package/dist/tunnels/TunnelManager.js.map +1 -0
- package/dist/tunnels/urls.d.ts +20 -0
- package/dist/tunnels/urls.d.ts.map +1 -0
- package/dist/tunnels/urls.js +22 -0
- package/dist/tunnels/urls.js.map +1 -0
- package/dist/util/errors.d.ts +54 -0
- package/dist/util/errors.d.ts.map +1 -0
- package/dist/util/errors.js +102 -0
- package/dist/util/errors.js.map +1 -0
- package/dist/util/logger.d.ts +21 -0
- package/dist/util/logger.d.ts.map +1 -0
- package/dist/util/logger.js +62 -0
- package/dist/util/logger.js.map +1 -0
- package/dist/util/msgText.d.ts +16 -0
- package/dist/util/msgText.d.ts.map +1 -0
- package/dist/util/msgText.js +65 -0
- package/dist/util/msgText.js.map +1 -0
- package/dist/util/result.d.ts +24 -0
- package/dist/util/result.d.ts.map +1 -0
- package/dist/util/result.js +35 -0
- package/dist/util/result.js.map +1 -0
- package/dist/util/tokenEstimate.d.ts +12 -0
- package/dist/util/tokenEstimate.d.ts.map +1 -0
- package/dist/util/tokenEstimate.js +22 -0
- package/dist/util/tokenEstimate.js.map +1 -0
- package/dist/voice/DaemoraLLM.d.ts +44 -0
- package/dist/voice/DaemoraLLM.d.ts.map +1 -0
- package/dist/voice/DaemoraLLM.js +185 -0
- package/dist/voice/DaemoraLLM.js.map +1 -0
- package/dist/voice/ElevenLabsSTT.d.ts +41 -0
- package/dist/voice/ElevenLabsSTT.d.ts.map +1 -0
- package/dist/voice/ElevenLabsSTT.js +98 -0
- package/dist/voice/ElevenLabsSTT.js.map +1 -0
- package/dist/voice/GroqTTS.d.ts +38 -0
- package/dist/voice/GroqTTS.d.ts.map +1 -0
- package/dist/voice/GroqTTS.js +208 -0
- package/dist/voice/GroqTTS.js.map +1 -0
- package/dist/voice/LiveKitServer.d.ts +30 -0
- package/dist/voice/LiveKitServer.d.ts.map +1 -0
- package/dist/voice/LiveKitServer.js +119 -0
- package/dist/voice/LiveKitServer.js.map +1 -0
- package/dist/voice/LiveKitToken.d.ts +25 -0
- package/dist/voice/LiveKitToken.d.ts.map +1 -0
- package/dist/voice/LiveKitToken.js +44 -0
- package/dist/voice/LiveKitToken.js.map +1 -0
- package/dist/voice/SidecarSupervisor.d.ts +39 -0
- package/dist/voice/SidecarSupervisor.d.ts.map +1 -0
- package/dist/voice/SidecarSupervisor.js +194 -0
- package/dist/voice/SidecarSupervisor.js.map +1 -0
- package/dist/voice/VoiceAgent.d.ts +23 -0
- package/dist/voice/VoiceAgent.d.ts.map +1 -0
- package/dist/voice/VoiceAgent.js +265 -0
- package/dist/voice/VoiceAgent.js.map +1 -0
- package/dist/voice/VoiceProviders.d.ts +29 -0
- package/dist/voice/VoiceProviders.d.ts.map +1 -0
- package/dist/voice/VoiceProviders.js +177 -0
- package/dist/voice/VoiceProviders.js.map +1 -0
- package/dist/voice/VoiceSession.d.ts +106 -0
- package/dist/voice/VoiceSession.d.ts.map +1 -0
- package/dist/voice/VoiceSession.js +454 -0
- package/dist/voice/VoiceSession.js.map +1 -0
- package/dist/voice/VoiceSocket.d.ts +49 -0
- package/dist/voice/VoiceSocket.d.ts.map +1 -0
- package/dist/voice/VoiceSocket.js +274 -0
- package/dist/voice/VoiceSocket.js.map +1 -0
- package/dist/voice/stt/DeepgramSTT.d.ts +26 -0
- package/dist/voice/stt/DeepgramSTT.d.ts.map +1 -0
- package/dist/voice/stt/DeepgramSTT.js +188 -0
- package/dist/voice/stt/DeepgramSTT.js.map +1 -0
- package/dist/voice/stt/GroqSTT.d.ts +28 -0
- package/dist/voice/stt/GroqSTT.d.ts.map +1 -0
- package/dist/voice/stt/GroqSTT.js +169 -0
- package/dist/voice/stt/GroqSTT.js.map +1 -0
- package/dist/voice/stt/STTAdapter.d.ts +47 -0
- package/dist/voice/stt/STTAdapter.d.ts.map +1 -0
- package/dist/voice/stt/STTAdapter.js +27 -0
- package/dist/voice/stt/STTAdapter.js.map +1 -0
- package/dist/voice/transcribe.d.ts +33 -0
- package/dist/voice/transcribe.d.ts.map +1 -0
- package/dist/voice/transcribe.js +73 -0
- package/dist/voice/transcribe.js.map +1 -0
- package/dist/voice/transcriptFilter.d.ts +16 -0
- package/dist/voice/transcriptFilter.d.ts.map +1 -0
- package/dist/voice/transcriptFilter.js +36 -0
- package/dist/voice/transcriptFilter.js.map +1 -0
- package/dist/voice/tts/CartesiaTTS.d.ts +31 -0
- package/dist/voice/tts/CartesiaTTS.d.ts.map +1 -0
- package/dist/voice/tts/CartesiaTTS.js +201 -0
- package/dist/voice/tts/CartesiaTTS.js.map +1 -0
- package/dist/voice/tts/ElevenLabsTTS.d.ts +29 -0
- package/dist/voice/tts/ElevenLabsTTS.d.ts.map +1 -0
- package/dist/voice/tts/ElevenLabsTTS.js +210 -0
- package/dist/voice/tts/ElevenLabsTTS.js.map +1 -0
- package/dist/voice/tts/OpenAITTS.d.ts +23 -0
- package/dist/voice/tts/OpenAITTS.d.ts.map +1 -0
- package/dist/voice/tts/OpenAITTS.js +124 -0
- package/dist/voice/tts/OpenAITTS.js.map +1 -0
- package/dist/voice/tts/TTSAdapter.d.ts +46 -0
- package/dist/voice/tts/TTSAdapter.d.ts.map +1 -0
- package/dist/voice/tts/TTSAdapter.js +26 -0
- package/dist/voice/tts/TTSAdapter.js.map +1 -0
- package/dist/voice-worker.mjs +607 -0
- package/dist/watchers/FileWatcher.d.ts +47 -0
- package/dist/watchers/FileWatcher.d.ts.map +1 -0
- package/dist/watchers/FileWatcher.js +103 -0
- package/dist/watchers/FileWatcher.js.map +1 -0
- package/dist/watchers/IntegrationWatcher.d.ts +68 -0
- package/dist/watchers/IntegrationWatcher.d.ts.map +1 -0
- package/dist/watchers/IntegrationWatcher.js +347 -0
- package/dist/watchers/IntegrationWatcher.js.map +1 -0
- package/dist/watchers/PollWatcher.d.ts +54 -0
- package/dist/watchers/PollWatcher.d.ts.map +1 -0
- package/dist/watchers/PollWatcher.js +135 -0
- package/dist/watchers/PollWatcher.js.map +1 -0
- package/dist/watchers/WatcherRunner.d.ts +49 -0
- package/dist/watchers/WatcherRunner.d.ts.map +1 -0
- package/dist/watchers/WatcherRunner.js +203 -0
- package/dist/watchers/WatcherRunner.js.map +1 -0
- package/dist/watchers/WatcherStore.d.ts +43 -0
- package/dist/watchers/WatcherStore.d.ts.map +1 -0
- package/dist/watchers/WatcherStore.js +78 -0
- package/dist/watchers/WatcherStore.js.map +1 -0
- package/dist/webhooks/WebhookHandler.d.ts +36 -0
- package/dist/webhooks/WebhookHandler.d.ts.map +1 -0
- package/dist/webhooks/WebhookHandler.js +264 -0
- package/dist/webhooks/WebhookHandler.js.map +1 -0
- package/dist/webhooks/WebhookTokenStore.d.ts +48 -0
- package/dist/webhooks/WebhookTokenStore.d.ts.map +1 -0
- package/dist/webhooks/WebhookTokenStore.js +136 -0
- package/dist/webhooks/WebhookTokenStore.js.map +1 -0
- package/dist/webhooks/hmac.d.ts +43 -0
- package/dist/webhooks/hmac.d.ts.map +1 -0
- package/dist/webhooks/hmac.js +98 -0
- package/dist/webhooks/hmac.js.map +1 -0
- package/dist/webhooks/watcherTemplates.d.ts +21 -0
- package/dist/webhooks/watcherTemplates.d.ts.map +1 -0
- package/dist/webhooks/watcherTemplates.js +164 -0
- package/dist/webhooks/watcherTemplates.js.map +1 -0
- package/package.json +119 -0
- package/public/architecture.svg +99 -0
- package/public/banner.png +0 -0
- package/public/banner.svg +141 -0
- package/public/multi-agent.svg +109 -0
- package/public/security.svg +84 -0
- package/public/steer-inject.svg +73 -0
- package/public/task-lifecycle.svg +77 -0
- package/skills/_template/SKILL.md +11 -0
- package/skills/api-development.md +35 -0
- package/skills/apple-notes/SKILL.md +77 -0
- package/skills/apple-reminders/SKILL.md +118 -0
- package/skills/artifacts-builder/SKILL.md +74 -0
- package/skills/artifacts-builder/scripts/bundle-artifact.sh +54 -0
- package/skills/artifacts-builder/scripts/init-artifact.sh +322 -0
- package/skills/artifacts-builder/scripts/shadcn-components.tar.gz +0 -0
- package/skills/brand-guidelines.md +73 -0
- package/skills/browser.md +77 -0
- package/skills/camsnap/SKILL.md +45 -0
- package/skills/changelog-generator.md +104 -0
- package/skills/coding-agent/SKILL.md +316 -0
- package/skills/content-research-writer.md +538 -0
- package/skills/create-new-skill.md +564 -0
- package/skills/data-analysis.md +27 -0
- package/skills/debugging.md +33 -0
- package/skills/devops.md +37 -0
- package/skills/discord/SKILL.md +197 -0
- package/skills/document-docx.md +197 -0
- package/skills/document-pptx.md +484 -0
- package/skills/document-xlsx.md +289 -0
- package/skills/documents.md +13 -0
- package/skills/domain-name-brainstormer.md +212 -0
- package/skills/email.md +13 -0
- package/skills/example-pdf/SKILL.md +17 -0
- package/skills/file-organizer.md +433 -0
- package/skills/frontend-design.md +42 -0
- package/skills/gif-search.md +53 -0
- package/skills/github/SKILL.md +163 -0
- package/skills/google-workspace.md +64 -0
- package/skills/image-enhancer.md +99 -0
- package/skills/image-gen.md +48 -0
- package/skills/invoice-organizer.md +446 -0
- package/skills/lead-research-assistant.md +199 -0
- package/skills/link-understanding.md +21 -0
- package/skills/macos-automation.md +62 -0
- package/skills/mcp-builder/SKILL.md +328 -0
- package/skills/mcp-builder/reference/evaluation.md +602 -0
- package/skills/mcp-builder/reference/mcp_best_practices.md +915 -0
- package/skills/mcp-builder/reference/node_mcp_server.md +916 -0
- package/skills/mcp-builder/reference/python_mcp_server.md +752 -0
- package/skills/mcp-builder/scripts/connections.py +151 -0
- package/skills/mcp-builder/scripts/evaluation.py +373 -0
- package/skills/mcp-builder/scripts/example_evaluation.xml +22 -0
- package/skills/mcp-builder/scripts/requirements.txt +2 -0
- package/skills/meeting-attendance.md +37 -0
- package/skills/meeting-insights-analyzer.md +327 -0
- package/skills/model-usage/SKILL.md +69 -0
- package/skills/model-usage/references/codexbar-cli.md +33 -0
- package/skills/model-usage/scripts/model_usage.py +320 -0
- package/skills/model-usage/scripts/test_model_usage.py +40 -0
- package/skills/notion/SKILL.md +174 -0
- package/skills/obsidian/SKILL.md +81 -0
- package/skills/orchestration.md +114 -0
- package/skills/pdf.md +60 -0
- package/skills/planning/SKILL.md +98 -0
- package/skills/planning.md +168 -0
- package/skills/raffle-winner-picker.md +159 -0
- package/skills/remotion.md +126 -0
- package/skills/research.md +13 -0
- package/skills/skill-creator/SKILL.md +372 -0
- package/skills/skill-creator/license.txt +202 -0
- package/skills/skill-creator/scripts/init_skill.py +378 -0
- package/skills/skill-creator/scripts/package_skill.py +139 -0
- package/skills/skill-creator/scripts/quick_validate.py +159 -0
- package/skills/skill-creator/scripts/test_package_skill.py +160 -0
- package/skills/skill-creator/scripts/test_quick_validate.py +72 -0
- package/skills/slack/SKILL.md +144 -0
- package/skills/slack-gif-creator/SKILL.md +646 -0
- package/skills/slack-gif-creator/core/color_palettes.py +302 -0
- package/skills/slack-gif-creator/core/easing.py +230 -0
- package/skills/slack-gif-creator/core/frame_composer.py +469 -0
- package/skills/slack-gif-creator/core/gif_builder.py +246 -0
- package/skills/slack-gif-creator/core/typography.py +357 -0
- package/skills/slack-gif-creator/core/validators.py +264 -0
- package/skills/slack-gif-creator/core/visual_effects.py +494 -0
- package/skills/slack-gif-creator/requirements.txt +4 -0
- package/skills/slack-gif-creator/templates/bounce.py +106 -0
- package/skills/slack-gif-creator/templates/explode.py +331 -0
- package/skills/slack-gif-creator/templates/fade.py +329 -0
- package/skills/slack-gif-creator/templates/flip.py +291 -0
- package/skills/slack-gif-creator/templates/kaleidoscope.py +211 -0
- package/skills/slack-gif-creator/templates/morph.py +329 -0
- package/skills/slack-gif-creator/templates/move.py +293 -0
- package/skills/slack-gif-creator/templates/pulse.py +268 -0
- package/skills/slack-gif-creator/templates/shake.py +127 -0
- package/skills/slack-gif-creator/templates/slide.py +291 -0
- package/skills/slack-gif-creator/templates/spin.py +269 -0
- package/skills/slack-gif-creator/templates/wiggle.py +300 -0
- package/skills/slack-gif-creator/templates/zoom.py +312 -0
- package/skills/summarize/SKILL.md +87 -0
- package/skills/system-admin.md +44 -0
- package/skills/tailored-resume-generator.md +345 -0
- package/skills/task-decomposition/SKILL.md +113 -0
- package/skills/theme-factory/SKILL.md +59 -0
- package/skills/theme-factory/theme-showcase.pdf +0 -0
- package/skills/theme-factory/themes/arctic-frost.md +19 -0
- package/skills/theme-factory/themes/botanical-garden.md +19 -0
- package/skills/theme-factory/themes/desert-rose.md +19 -0
- package/skills/theme-factory/themes/forest-canopy.md +19 -0
- package/skills/theme-factory/themes/golden-hour.md +19 -0
- package/skills/theme-factory/themes/midnight-galaxy.md +19 -0
- package/skills/theme-factory/themes/modern-minimalist.md +19 -0
- package/skills/theme-factory/themes/ocean-depths.md +19 -0
- package/skills/theme-factory/themes/sunset-boulevard.md +19 -0
- package/skills/theme-factory/themes/tech-innovation.md +19 -0
- package/skills/things-mac/SKILL.md +86 -0
- package/skills/tmux/SKILL.md +170 -0
- package/skills/tmux/scripts/find-sessions.sh +112 -0
- package/skills/tmux/scripts/wait-for-text.sh +83 -0
- package/skills/trello/SKILL.md +108 -0
- package/skills/video-downloader.md +99 -0
- package/skills/video-frames/SKILL.md +46 -0
- package/skills/video-frames/scripts/frame.sh +81 -0
- package/skills/weather/SKILL.md +129 -0
- package/skills/web-development.md +32 -0
- package/skills/webapp-testing/SKILL.md +96 -0
- package/skills/webapp-testing/examples/console_logging.py +35 -0
- package/skills/webapp-testing/examples/element_discovery.py +40 -0
- package/skills/webapp-testing/examples/static_html_automation.py +33 -0
- package/skills/webapp-testing/scripts/with_server.py +106 -0
- package/ui/dist/assets/index-DuybLBDW.css +1 -0
- package/ui/dist/assets/index-kK4jTnXz.js +569 -0
- package/ui/dist/favicon.svg +29 -0
- package/ui/dist/index.html +16 -0
|
@@ -0,0 +1,104 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* edit_file — surgical, diff-safe in-place edit.
|
|
3
|
+
*
|
|
4
|
+
* Contract the model can rely on:
|
|
5
|
+
* - `old_string` must be present EXACTLY once in the file, unless
|
|
6
|
+
* `replace_all` is true. Zero matches = NotFound. Multiple matches
|
|
7
|
+
* with replace_all=false = ValidationError with the count. This is
|
|
8
|
+
* the single most important property — it's what lets an LLM edit
|
|
9
|
+
* code without rewriting whole files.
|
|
10
|
+
* - `old_string !== new_string` — we refuse no-op edits.
|
|
11
|
+
* - Writes via rename-swap (write temp → rename). Crash mid-write
|
|
12
|
+
* leaves the original intact.
|
|
13
|
+
* - Records bytes before/after + occurrences replaced so the caller
|
|
14
|
+
* can surface a meaningful diff summary.
|
|
15
|
+
*/
|
|
16
|
+
import { readFile, rename, writeFile, stat, unlink } from "node:fs/promises";
|
|
17
|
+
import { dirname, basename, join } from "node:path";
|
|
18
|
+
import { randomUUID } from "node:crypto";
|
|
19
|
+
import { z } from "zod";
|
|
20
|
+
import { NotFoundError, PermissionDeniedError, ValidationError } from "../../util/errors.js";
|
|
21
|
+
const inputSchema = z.object({
|
|
22
|
+
path: z.string().min(1).describe("Absolute or relative file path. Must already exist."),
|
|
23
|
+
old_string: z.string().min(1).describe("Exact text to replace. Must match once (or use replace_all)."),
|
|
24
|
+
new_string: z.string().describe("Replacement text. Empty = deletion."),
|
|
25
|
+
replace_all: z.boolean().default(false).describe("If true, replace every occurrence."),
|
|
26
|
+
});
|
|
27
|
+
export function makeEditFileTool(guard) {
|
|
28
|
+
return {
|
|
29
|
+
name: "edit_file",
|
|
30
|
+
description: "In-place text replacement. old_string must match exactly once unless replace_all:true. Safer than write_file for modifying existing files.",
|
|
31
|
+
category: "filesystem",
|
|
32
|
+
source: { kind: "core" },
|
|
33
|
+
alwaysOn: true,
|
|
34
|
+
destructive: true,
|
|
35
|
+
inputSchema,
|
|
36
|
+
async execute({ path, old_string, new_string, replace_all }) {
|
|
37
|
+
if (old_string === new_string) {
|
|
38
|
+
throw new ValidationError("edit_file: old_string and new_string are identical — no-op edit rejected.");
|
|
39
|
+
}
|
|
40
|
+
const canonical = guard.ensureAllowed(path, "write");
|
|
41
|
+
let s;
|
|
42
|
+
try {
|
|
43
|
+
s = await stat(canonical);
|
|
44
|
+
}
|
|
45
|
+
catch (e) {
|
|
46
|
+
const err = e;
|
|
47
|
+
if (err.code === "ENOENT")
|
|
48
|
+
throw new NotFoundError(`File not found: ${canonical}`);
|
|
49
|
+
if (err.code === "EACCES")
|
|
50
|
+
throw new PermissionDeniedError(`Read denied: ${canonical}`);
|
|
51
|
+
throw err;
|
|
52
|
+
}
|
|
53
|
+
if (!s.isFile())
|
|
54
|
+
throw new ValidationError(`Not a regular file: ${canonical}`);
|
|
55
|
+
const original = await readFile(canonical, "utf-8");
|
|
56
|
+
const bytesBefore = Buffer.byteLength(original, "utf-8");
|
|
57
|
+
const count = countOccurrences(original, old_string);
|
|
58
|
+
if (count === 0) {
|
|
59
|
+
throw new NotFoundError(`edit_file: old_string not found in ${canonical}. File contents may have drifted — re-read before editing.`);
|
|
60
|
+
}
|
|
61
|
+
if (count > 1 && !replace_all) {
|
|
62
|
+
throw new ValidationError(`edit_file: old_string appears ${count} times in ${canonical}. Provide a larger unique anchor or pass replace_all:true.`);
|
|
63
|
+
}
|
|
64
|
+
const next = replace_all
|
|
65
|
+
? original.split(old_string).join(new_string)
|
|
66
|
+
: original.replace(old_string, new_string);
|
|
67
|
+
const bytesAfter = Buffer.byteLength(next, "utf-8");
|
|
68
|
+
const replacements = replace_all ? count : 1;
|
|
69
|
+
// Rename-swap write: crash safety + no torn reads by other procs.
|
|
70
|
+
const tmp = join(dirname(canonical), `.${basename(canonical)}.${randomUUID()}.tmp`);
|
|
71
|
+
try {
|
|
72
|
+
await writeFile(tmp, next, { encoding: "utf-8", mode: s.mode });
|
|
73
|
+
await rename(tmp, canonical);
|
|
74
|
+
}
|
|
75
|
+
catch (e) {
|
|
76
|
+
try {
|
|
77
|
+
await unlink(tmp);
|
|
78
|
+
}
|
|
79
|
+
catch { /* tmp may not exist; ignore */ }
|
|
80
|
+
const err = e;
|
|
81
|
+
if (err.code === "EACCES")
|
|
82
|
+
throw new PermissionDeniedError(`Write denied: ${canonical}`);
|
|
83
|
+
throw err;
|
|
84
|
+
}
|
|
85
|
+
return { path: canonical, replacements, bytesBefore, bytesAfter };
|
|
86
|
+
},
|
|
87
|
+
};
|
|
88
|
+
}
|
|
89
|
+
/** Count non-overlapping occurrences of needle in haystack. */
|
|
90
|
+
function countOccurrences(haystack, needle) {
|
|
91
|
+
if (needle.length === 0)
|
|
92
|
+
return 0;
|
|
93
|
+
let idx = 0;
|
|
94
|
+
let n = 0;
|
|
95
|
+
while (true) {
|
|
96
|
+
const hit = haystack.indexOf(needle, idx);
|
|
97
|
+
if (hit < 0)
|
|
98
|
+
break;
|
|
99
|
+
n++;
|
|
100
|
+
idx = hit + needle.length;
|
|
101
|
+
}
|
|
102
|
+
return n;
|
|
103
|
+
}
|
|
104
|
+
//# sourceMappingURL=editFile.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"editFile.js","sourceRoot":"","sources":["../../../src/tools/core/editFile.ts"],"names":[],"mappings":"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"}
|
|
@@ -0,0 +1,36 @@
|
|
|
1
|
+
import { z } from "zod";
|
|
2
|
+
import type { FilesystemGuard } from "../../safety/FilesystemGuard.js";
|
|
3
|
+
import type { ToolDef } from "../types.js";
|
|
4
|
+
declare const inputSchema: z.ZodObject<{
|
|
5
|
+
command: z.ZodString;
|
|
6
|
+
cwd: z.ZodOptional<z.ZodString>;
|
|
7
|
+
/** Hard timeout — protects against hanging commands. */
|
|
8
|
+
timeoutMs: z.ZodDefault<z.ZodNumber>;
|
|
9
|
+
/** Output cap to protect context. */
|
|
10
|
+
maxOutputBytes: z.ZodDefault<z.ZodNumber>;
|
|
11
|
+
/** Defaults to bash on macOS/Linux, cmd on Windows. */
|
|
12
|
+
shell: z.ZodOptional<z.ZodString>;
|
|
13
|
+
}, "strip", z.ZodTypeAny, {
|
|
14
|
+
command: string;
|
|
15
|
+
timeoutMs: number;
|
|
16
|
+
maxOutputBytes: number;
|
|
17
|
+
shell?: string | undefined;
|
|
18
|
+
cwd?: string | undefined;
|
|
19
|
+
}, {
|
|
20
|
+
command: string;
|
|
21
|
+
timeoutMs?: number | undefined;
|
|
22
|
+
shell?: string | undefined;
|
|
23
|
+
cwd?: string | undefined;
|
|
24
|
+
maxOutputBytes?: number | undefined;
|
|
25
|
+
}>;
|
|
26
|
+
interface ExecResult {
|
|
27
|
+
readonly stdout: string;
|
|
28
|
+
readonly stderr: string;
|
|
29
|
+
readonly exitCode: number | null;
|
|
30
|
+
readonly signal: NodeJS.Signals | null;
|
|
31
|
+
readonly truncated: boolean;
|
|
32
|
+
readonly durationMs: number;
|
|
33
|
+
}
|
|
34
|
+
export declare function makeExecuteCommandTool(guard: FilesystemGuard): ToolDef<typeof inputSchema, ExecResult>;
|
|
35
|
+
export {};
|
|
36
|
+
//# sourceMappingURL=executeCommand.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"executeCommand.d.ts","sourceRoot":"","sources":["../../../src/tools/core/executeCommand.ts"],"names":[],"mappings":"AACA,OAAO,EAAE,CAAC,EAAE,MAAM,KAAK,CAAC;AAExB,OAAO,KAAK,EAAE,eAAe,EAAE,MAAM,iCAAiC,CAAC;AAEvE,OAAO,KAAK,EAAE,OAAO,EAAE,MAAM,aAAa,CAAC;AAE3C,QAAA,MAAM,WAAW;;;IAGf,wDAAwD;;IAExD,qCAAqC;;IAErC,uDAAuD;;;;;;;;;;;;;;EAEvD,CAAC;AAEH,UAAU,UAAU;IAClB,QAAQ,CAAC,MAAM,EAAE,MAAM,CAAC;IACxB,QAAQ,CAAC,MAAM,EAAE,MAAM,CAAC;IACxB,QAAQ,CAAC,QAAQ,EAAE,MAAM,GAAG,IAAI,CAAC;IACjC,QAAQ,CAAC,MAAM,EAAE,MAAM,CAAC,OAAO,GAAG,IAAI,CAAC;IACvC,QAAQ,CAAC,SAAS,EAAE,OAAO,CAAC;IAC5B,QAAQ,CAAC,UAAU,EAAE,MAAM,CAAC;CAC7B;AAED,wBAAgB,sBAAsB,CAAC,KAAK,EAAE,eAAe,GAAG,OAAO,CAAC,OAAO,WAAW,EAAE,UAAU,CAAC,CAiFtG"}
|
|
@@ -0,0 +1,92 @@
|
|
|
1
|
+
import { spawn } from "node:child_process";
|
|
2
|
+
import { z } from "zod";
|
|
3
|
+
import { TimeoutError, ValidationError } from "../../util/errors.js";
|
|
4
|
+
const inputSchema = z.object({
|
|
5
|
+
command: z.string().min(1).describe("The shell command to run."),
|
|
6
|
+
cwd: z.string().optional(),
|
|
7
|
+
/** Hard timeout — protects against hanging commands. */
|
|
8
|
+
timeoutMs: z.number().int().positive().max(600_000).default(60_000),
|
|
9
|
+
/** Output cap to protect context. */
|
|
10
|
+
maxOutputBytes: z.number().int().positive().max(1_000_000).default(100_000),
|
|
11
|
+
/** Defaults to bash on macOS/Linux, cmd on Windows. */
|
|
12
|
+
shell: z.string().optional(),
|
|
13
|
+
});
|
|
14
|
+
export function makeExecuteCommandTool(guard) {
|
|
15
|
+
return {
|
|
16
|
+
name: "execute_command",
|
|
17
|
+
description: "Run a shell command. Bounded timeout + output. Blocks commands that reference sensitive paths.",
|
|
18
|
+
category: "shell",
|
|
19
|
+
source: { kind: "core" },
|
|
20
|
+
alwaysOn: true,
|
|
21
|
+
destructive: true,
|
|
22
|
+
inputSchema,
|
|
23
|
+
async execute({ command, cwd, timeoutMs, maxOutputBytes, shell }, { abortSignal }) {
|
|
24
|
+
// Defence-in-depth: scan the command for absolute paths that hit
|
|
25
|
+
// the denylist. Not a sandbox — a real sandbox needs OS-level
|
|
26
|
+
// isolation — but catches the obvious "cat /etc/shadow" class.
|
|
27
|
+
guard.ensureCommandAllowed(command);
|
|
28
|
+
if (cwd)
|
|
29
|
+
guard.ensureAllowed(cwd, "read");
|
|
30
|
+
const started = Date.now();
|
|
31
|
+
const useShell = shell ?? (process.platform === "win32" ? true : "/bin/bash");
|
|
32
|
+
return await new Promise((resolvePromise, rejectPromise) => {
|
|
33
|
+
const child = spawn(command, {
|
|
34
|
+
...(cwd ? { cwd } : {}),
|
|
35
|
+
shell: useShell,
|
|
36
|
+
stdio: ["ignore", "pipe", "pipe"],
|
|
37
|
+
signal: abortSignal,
|
|
38
|
+
});
|
|
39
|
+
let stdout = "";
|
|
40
|
+
let stderr = "";
|
|
41
|
+
let truncated = false;
|
|
42
|
+
const onData = (which) => (chunk) => {
|
|
43
|
+
const buf = chunk.toString("utf-8");
|
|
44
|
+
if (which === "out") {
|
|
45
|
+
if (stdout.length + buf.length > maxOutputBytes) {
|
|
46
|
+
stdout += buf.slice(0, Math.max(0, maxOutputBytes - stdout.length));
|
|
47
|
+
truncated = true;
|
|
48
|
+
}
|
|
49
|
+
else {
|
|
50
|
+
stdout += buf;
|
|
51
|
+
}
|
|
52
|
+
}
|
|
53
|
+
else if (stderr.length + buf.length > maxOutputBytes) {
|
|
54
|
+
stderr += buf.slice(0, Math.max(0, maxOutputBytes - stderr.length));
|
|
55
|
+
truncated = true;
|
|
56
|
+
}
|
|
57
|
+
else {
|
|
58
|
+
stderr += buf;
|
|
59
|
+
}
|
|
60
|
+
};
|
|
61
|
+
child.stdout?.on("data", onData("out"));
|
|
62
|
+
child.stderr?.on("data", onData("err"));
|
|
63
|
+
const timer = setTimeout(() => {
|
|
64
|
+
child.kill("SIGTERM");
|
|
65
|
+
setTimeout(() => child.kill("SIGKILL"), 2000).unref();
|
|
66
|
+
rejectPromise(new TimeoutError(`execute_command (${command})`, timeoutMs));
|
|
67
|
+
}, timeoutMs);
|
|
68
|
+
timer.unref();
|
|
69
|
+
child.once("error", (err) => {
|
|
70
|
+
clearTimeout(timer);
|
|
71
|
+
if (abortSignal.aborted) {
|
|
72
|
+
rejectPromise(new ValidationError("Command cancelled"));
|
|
73
|
+
return;
|
|
74
|
+
}
|
|
75
|
+
rejectPromise(err);
|
|
76
|
+
});
|
|
77
|
+
child.once("close", (exitCode, signal) => {
|
|
78
|
+
clearTimeout(timer);
|
|
79
|
+
resolvePromise({
|
|
80
|
+
stdout,
|
|
81
|
+
stderr,
|
|
82
|
+
exitCode,
|
|
83
|
+
signal,
|
|
84
|
+
truncated,
|
|
85
|
+
durationMs: Date.now() - started,
|
|
86
|
+
});
|
|
87
|
+
});
|
|
88
|
+
});
|
|
89
|
+
},
|
|
90
|
+
};
|
|
91
|
+
}
|
|
92
|
+
//# sourceMappingURL=executeCommand.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"executeCommand.js","sourceRoot":"","sources":["../../../src/tools/core/executeCommand.ts"],"names":[],"mappings":"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"}
|
|
@@ -0,0 +1,38 @@
|
|
|
1
|
+
import { z } from "zod";
|
|
2
|
+
import type { ToolDef } from "../types.js";
|
|
3
|
+
declare const inputSchema: z.ZodObject<{
|
|
4
|
+
url: z.ZodString;
|
|
5
|
+
method: z.ZodDefault<z.ZodEnum<["GET", "POST", "PUT", "PATCH", "DELETE", "HEAD"]>>;
|
|
6
|
+
headers: z.ZodOptional<z.ZodRecord<z.ZodString, z.ZodString>>;
|
|
7
|
+
body: z.ZodOptional<z.ZodString>;
|
|
8
|
+
timeoutMs: z.ZodDefault<z.ZodNumber>;
|
|
9
|
+
maxBytes: z.ZodDefault<z.ZodNumber>;
|
|
10
|
+
/** Return parsed JSON when content-type is application/json (default true). */
|
|
11
|
+
parseJson: z.ZodDefault<z.ZodBoolean>;
|
|
12
|
+
}, "strip", z.ZodTypeAny, {
|
|
13
|
+
url: string;
|
|
14
|
+
method: "POST" | "GET" | "PUT" | "PATCH" | "DELETE" | "HEAD";
|
|
15
|
+
timeoutMs: number;
|
|
16
|
+
maxBytes: number;
|
|
17
|
+
parseJson: boolean;
|
|
18
|
+
body?: string | undefined;
|
|
19
|
+
headers?: Record<string, string> | undefined;
|
|
20
|
+
}, {
|
|
21
|
+
url: string;
|
|
22
|
+
method?: "POST" | "GET" | "PUT" | "PATCH" | "DELETE" | "HEAD" | undefined;
|
|
23
|
+
body?: string | undefined;
|
|
24
|
+
timeoutMs?: number | undefined;
|
|
25
|
+
headers?: Record<string, string> | undefined;
|
|
26
|
+
maxBytes?: number | undefined;
|
|
27
|
+
parseJson?: boolean | undefined;
|
|
28
|
+
}>;
|
|
29
|
+
interface FetchResult {
|
|
30
|
+
readonly status: number;
|
|
31
|
+
readonly headers: Record<string, string>;
|
|
32
|
+
readonly body: string | unknown;
|
|
33
|
+
readonly truncated: boolean;
|
|
34
|
+
readonly durationMs: number;
|
|
35
|
+
}
|
|
36
|
+
export declare const fetchUrlTool: ToolDef<typeof inputSchema, FetchResult>;
|
|
37
|
+
export {};
|
|
38
|
+
//# sourceMappingURL=fetchUrl.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"fetchUrl.d.ts","sourceRoot":"","sources":["../../../src/tools/core/fetchUrl.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,CAAC,EAAE,MAAM,KAAK,CAAC;AAGxB,OAAO,KAAK,EAAE,OAAO,EAAE,MAAM,aAAa,CAAC;AAE3C,QAAA,MAAM,WAAW;;;;;;;IAOf,+EAA+E;;;;;;;;;;;;;;;;;;EAE/E,CAAC;AAEH,UAAU,WAAW;IACnB,QAAQ,CAAC,MAAM,EAAE,MAAM,CAAC;IACxB,QAAQ,CAAC,OAAO,EAAE,MAAM,CAAC,MAAM,EAAE,MAAM,CAAC,CAAC;IACzC,QAAQ,CAAC,IAAI,EAAE,MAAM,GAAG,OAAO,CAAC;IAChC,QAAQ,CAAC,SAAS,EAAE,OAAO,CAAC;IAC5B,QAAQ,CAAC,UAAU,EAAE,MAAM,CAAC;CAC7B;AAED,eAAO,MAAM,YAAY,EAAE,OAAO,CAAC,OAAO,WAAW,EAAE,WAAW,CAyEjE,CAAC"}
|
|
@@ -0,0 +1,111 @@
|
|
|
1
|
+
import { z } from "zod";
|
|
2
|
+
import { TimeoutError, ValidationError } from "../../util/errors.js";
|
|
3
|
+
const inputSchema = z.object({
|
|
4
|
+
url: z.string().url(),
|
|
5
|
+
method: z.enum(["GET", "POST", "PUT", "PATCH", "DELETE", "HEAD"]).default("GET"),
|
|
6
|
+
headers: z.record(z.string(), z.string()).optional(),
|
|
7
|
+
body: z.string().optional(),
|
|
8
|
+
timeoutMs: z.number().int().positive().max(60_000).default(15_000),
|
|
9
|
+
maxBytes: z.number().int().positive().max(2_000_000).default(500_000),
|
|
10
|
+
/** Return parsed JSON when content-type is application/json (default true). */
|
|
11
|
+
parseJson: z.boolean().default(true),
|
|
12
|
+
});
|
|
13
|
+
export const fetchUrlTool = {
|
|
14
|
+
name: "fetch_url",
|
|
15
|
+
description: "HTTP request. Bounded timeout + body size. Auto-parses JSON unless parseJson:false.",
|
|
16
|
+
category: "network",
|
|
17
|
+
source: { kind: "core" },
|
|
18
|
+
alwaysOn: true,
|
|
19
|
+
inputSchema,
|
|
20
|
+
async execute({ url, method, headers, body, timeoutMs, maxBytes, parseJson }, { abortSignal }) {
|
|
21
|
+
const started = Date.now();
|
|
22
|
+
// Compose user-abort with timeout-abort so the upstream cancellation works regardless of which fires.
|
|
23
|
+
const timer = AbortSignal.timeout(timeoutMs);
|
|
24
|
+
const composite = anySignal([abortSignal, timer]);
|
|
25
|
+
const init = { method, signal: composite };
|
|
26
|
+
if (headers)
|
|
27
|
+
init.headers = headers;
|
|
28
|
+
if (body !== undefined)
|
|
29
|
+
init.body = body;
|
|
30
|
+
let res;
|
|
31
|
+
try {
|
|
32
|
+
res = await fetch(url, init);
|
|
33
|
+
}
|
|
34
|
+
catch (e) {
|
|
35
|
+
if (e.name === "TimeoutError" || e.message?.includes("timed out")) {
|
|
36
|
+
throw new TimeoutError(`fetch_url ${url}`, timeoutMs);
|
|
37
|
+
}
|
|
38
|
+
if (abortSignal.aborted)
|
|
39
|
+
throw new ValidationError("Fetch cancelled");
|
|
40
|
+
throw e;
|
|
41
|
+
}
|
|
42
|
+
const reader = res.body?.getReader();
|
|
43
|
+
let received = 0;
|
|
44
|
+
const chunks = [];
|
|
45
|
+
let truncated = false;
|
|
46
|
+
if (reader) {
|
|
47
|
+
while (true) {
|
|
48
|
+
const { done, value } = await reader.read();
|
|
49
|
+
if (done)
|
|
50
|
+
break;
|
|
51
|
+
if (received + value.byteLength > maxBytes) {
|
|
52
|
+
chunks.push(value.subarray(0, Math.max(0, maxBytes - received)));
|
|
53
|
+
truncated = true;
|
|
54
|
+
await reader.cancel();
|
|
55
|
+
break;
|
|
56
|
+
}
|
|
57
|
+
chunks.push(value);
|
|
58
|
+
received += value.byteLength;
|
|
59
|
+
}
|
|
60
|
+
}
|
|
61
|
+
const text = new TextDecoder("utf-8").decode(concat(chunks));
|
|
62
|
+
const headerObj = {};
|
|
63
|
+
res.headers.forEach((v, k) => {
|
|
64
|
+
headerObj[k] = v;
|
|
65
|
+
});
|
|
66
|
+
let parsedBody = text;
|
|
67
|
+
if (parseJson && (res.headers.get("content-type") ?? "").includes("application/json")) {
|
|
68
|
+
try {
|
|
69
|
+
parsedBody = JSON.parse(text);
|
|
70
|
+
}
|
|
71
|
+
catch {
|
|
72
|
+
// fall through with text body
|
|
73
|
+
}
|
|
74
|
+
}
|
|
75
|
+
return {
|
|
76
|
+
status: res.status,
|
|
77
|
+
headers: headerObj,
|
|
78
|
+
body: parsedBody,
|
|
79
|
+
truncated,
|
|
80
|
+
durationMs: Date.now() - started,
|
|
81
|
+
};
|
|
82
|
+
},
|
|
83
|
+
};
|
|
84
|
+
function anySignal(signals) {
|
|
85
|
+
// Polyfill of AbortSignal.any for Node <= 20. Node 22 has it native.
|
|
86
|
+
// We engines>=22 in package.json so the native path is the common case;
|
|
87
|
+
// the manual path stays for safety.
|
|
88
|
+
const native = AbortSignal.any;
|
|
89
|
+
if (typeof native === "function")
|
|
90
|
+
return native(Array.from(signals));
|
|
91
|
+
const ctrl = new AbortController();
|
|
92
|
+
for (const s of signals) {
|
|
93
|
+
if (s.aborted) {
|
|
94
|
+
ctrl.abort(s.reason);
|
|
95
|
+
break;
|
|
96
|
+
}
|
|
97
|
+
s.addEventListener("abort", () => ctrl.abort(s.reason), { once: true });
|
|
98
|
+
}
|
|
99
|
+
return ctrl.signal;
|
|
100
|
+
}
|
|
101
|
+
function concat(chunks) {
|
|
102
|
+
const total = chunks.reduce((n, c) => n + c.byteLength, 0);
|
|
103
|
+
const out = new Uint8Array(total);
|
|
104
|
+
let offset = 0;
|
|
105
|
+
for (const c of chunks) {
|
|
106
|
+
out.set(c, offset);
|
|
107
|
+
offset += c.byteLength;
|
|
108
|
+
}
|
|
109
|
+
return out;
|
|
110
|
+
}
|
|
111
|
+
//# sourceMappingURL=fetchUrl.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"fetchUrl.js","sourceRoot":"","sources":["../../../src/tools/core/fetchUrl.ts"],"names":[],"mappings":"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"}
|
|
@@ -0,0 +1,42 @@
|
|
|
1
|
+
import { z } from "zod";
|
|
2
|
+
import type { ConfigManager } from "../../config/ConfigManager.js";
|
|
3
|
+
import type { ToolDef } from "../types.js";
|
|
4
|
+
/**
|
|
5
|
+
* Provider-agnostic image generation. Resolution order:
|
|
6
|
+
*
|
|
7
|
+
* 1. Caller passes `provider` + `model` directly → use them.
|
|
8
|
+
* 2. Caller passes only `model` → infer provider from configured keys.
|
|
9
|
+
* 3. IMAGE_GEN_MODEL setting holds "provider:model" → use that.
|
|
10
|
+
* 4. Auto-pick: vertex (Express) → google → openai → fail.
|
|
11
|
+
*
|
|
12
|
+
* Each provider routes to its own REST surface. Output is always
|
|
13
|
+
* saved as PNG to <dataDir>/outputs/ so the chat UI renders inline.
|
|
14
|
+
*/
|
|
15
|
+
declare const PROVIDERS: readonly ["openai", "vertex", "google"];
|
|
16
|
+
type ImageProvider = (typeof PROVIDERS)[number];
|
|
17
|
+
declare const inputSchema: z.ZodObject<{
|
|
18
|
+
prompt: z.ZodString;
|
|
19
|
+
provider: z.ZodOptional<z.ZodEnum<["openai", "vertex", "google"]>>;
|
|
20
|
+
model: z.ZodOptional<z.ZodString>;
|
|
21
|
+
size: z.ZodOptional<z.ZodString>;
|
|
22
|
+
outputPath: z.ZodOptional<z.ZodString>;
|
|
23
|
+
}, "strip", z.ZodTypeAny, {
|
|
24
|
+
prompt: string;
|
|
25
|
+
provider?: "openai" | "google" | "vertex" | undefined;
|
|
26
|
+
model?: string | undefined;
|
|
27
|
+
size?: string | undefined;
|
|
28
|
+
outputPath?: string | undefined;
|
|
29
|
+
}, {
|
|
30
|
+
prompt: string;
|
|
31
|
+
provider?: "openai" | "google" | "vertex" | undefined;
|
|
32
|
+
model?: string | undefined;
|
|
33
|
+
size?: string | undefined;
|
|
34
|
+
outputPath?: string | undefined;
|
|
35
|
+
}>;
|
|
36
|
+
export declare function makeGenerateImageTool(cfg: ConfigManager): ToolDef<typeof inputSchema, {
|
|
37
|
+
path: string;
|
|
38
|
+
provider: ImageProvider;
|
|
39
|
+
model: string;
|
|
40
|
+
}>;
|
|
41
|
+
export {};
|
|
42
|
+
//# sourceMappingURL=generateImage.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"generateImage.d.ts","sourceRoot":"","sources":["../../../src/tools/core/generateImage.ts"],"names":[],"mappings":"AAEA,OAAO,EAAE,CAAC,EAAE,MAAM,KAAK,CAAC;AAExB,OAAO,KAAK,EAAE,aAAa,EAAE,MAAM,+BAA+B,CAAC;AAEnE,OAAO,KAAK,EAAE,OAAO,EAAE,MAAM,aAAa,CAAC;AAE3C;;;;;;;;;;GAUG;AAEH,QAAA,MAAM,SAAS,yCAA0C,CAAC;AAC1D,KAAK,aAAa,GAAG,CAAC,OAAO,SAAS,CAAC,CAAC,MAAM,CAAC,CAAC;AAEhD,QAAA,MAAM,WAAW;;;;;;;;;;;;;;;;;;EAUf,CAAC;AAEH,wBAAgB,qBAAqB,CAAC,GAAG,EAAE,aAAa,GAAG,OAAO,CAAC,OAAO,WAAW,EAAE;IAAE,IAAI,EAAE,MAAM,CAAC;IAAC,QAAQ,EAAE,aAAa,CAAC;IAAC,KAAK,EAAE,MAAM,CAAA;CAAE,CAAC,CA2B/I"}
|
|
@@ -0,0 +1,143 @@
|
|
|
1
|
+
import { mkdir, writeFile } from "node:fs/promises";
|
|
2
|
+
import { join } from "node:path";
|
|
3
|
+
import { z } from "zod";
|
|
4
|
+
import { ProviderUnavailableError } from "../../util/errors.js";
|
|
5
|
+
/**
|
|
6
|
+
* Provider-agnostic image generation. Resolution order:
|
|
7
|
+
*
|
|
8
|
+
* 1. Caller passes `provider` + `model` directly → use them.
|
|
9
|
+
* 2. Caller passes only `model` → infer provider from configured keys.
|
|
10
|
+
* 3. IMAGE_GEN_MODEL setting holds "provider:model" → use that.
|
|
11
|
+
* 4. Auto-pick: vertex (Express) → google → openai → fail.
|
|
12
|
+
*
|
|
13
|
+
* Each provider routes to its own REST surface. Output is always
|
|
14
|
+
* saved as PNG to <dataDir>/outputs/ so the chat UI renders inline.
|
|
15
|
+
*/
|
|
16
|
+
const PROVIDERS = ["openai", "vertex", "google"];
|
|
17
|
+
const inputSchema = z.object({
|
|
18
|
+
prompt: z.string().min(1).max(4000).describe("Image description."),
|
|
19
|
+
provider: z.enum(PROVIDERS).optional().describe("DO NOT SET. Provider auto-picks from the IMAGE_GEN_MODEL setting; only override if you have a specific reason."),
|
|
20
|
+
model: z.string().optional().describe("DO NOT SET. Model auto-picks from the IMAGE_GEN_MODEL setting."),
|
|
21
|
+
size: z.string().optional().describe("Aspect / dimensions, provider-specific."),
|
|
22
|
+
outputPath: z.string().optional(),
|
|
23
|
+
});
|
|
24
|
+
export function makeGenerateImageTool(cfg) {
|
|
25
|
+
return {
|
|
26
|
+
name: "generate_image",
|
|
27
|
+
description: "Generate an image from text. Pass ONLY `prompt` and (optionally) `outputPath` / `size`. Provider and model are configured in settings — do not pass them. Returns the saved PNG path.",
|
|
28
|
+
category: "ai",
|
|
29
|
+
source: { kind: "core" },
|
|
30
|
+
alwaysOn: false,
|
|
31
|
+
tags: ["image", "generate", "art", "gemini", "imagen", "dalle", "nano-banana"],
|
|
32
|
+
inputSchema,
|
|
33
|
+
async execute({ prompt, provider, model, size, outputPath }) {
|
|
34
|
+
const resolved = resolveProviderAndModel(cfg, provider, model);
|
|
35
|
+
const apiKey = cfg.vault.get(resolved.keyName)?.reveal();
|
|
36
|
+
if (!apiKey)
|
|
37
|
+
throw new ProviderUnavailableError(resolved.provider, resolved.keyName);
|
|
38
|
+
const png = await generate(resolved.provider, resolved.model, apiKey, prompt, size);
|
|
39
|
+
let path = outputPath;
|
|
40
|
+
if (!path) {
|
|
41
|
+
const outDir = join(cfg.env.dataDir, "outputs");
|
|
42
|
+
await mkdir(outDir, { recursive: true });
|
|
43
|
+
path = join(outDir, `daemora-image-${Date.now()}.png`);
|
|
44
|
+
}
|
|
45
|
+
await writeFile(path, png);
|
|
46
|
+
return { path, provider: resolved.provider, model: resolved.model };
|
|
47
|
+
},
|
|
48
|
+
};
|
|
49
|
+
}
|
|
50
|
+
function resolveProviderAndModel(cfg, provider, model) {
|
|
51
|
+
// 1. Explicit provider wins.
|
|
52
|
+
if (provider) {
|
|
53
|
+
return {
|
|
54
|
+
provider,
|
|
55
|
+
model: model ?? defaultModelFor(provider),
|
|
56
|
+
keyName: keyNameFor(provider),
|
|
57
|
+
};
|
|
58
|
+
}
|
|
59
|
+
// 2. IMAGE_GEN_MODEL setting (format: "provider:model").
|
|
60
|
+
const setting = cfg.setting("IMAGE_GEN_MODEL") ?? undefined;
|
|
61
|
+
if (setting && setting.includes(":")) {
|
|
62
|
+
const [p, ...rest] = setting.split(":");
|
|
63
|
+
if (PROVIDERS.includes(p)) {
|
|
64
|
+
return {
|
|
65
|
+
provider: p,
|
|
66
|
+
model: model ?? rest.join(":"),
|
|
67
|
+
keyName: keyNameFor(p),
|
|
68
|
+
};
|
|
69
|
+
}
|
|
70
|
+
}
|
|
71
|
+
// 3. Auto-pick: prefer Vertex (Nano Banana on Express key) → Google AI → OpenAI.
|
|
72
|
+
for (const p of PROVIDERS) {
|
|
73
|
+
if (cfg.vault.get(keyNameFor(p)) !== undefined) {
|
|
74
|
+
return { provider: p, model: model ?? defaultModelFor(p), keyName: keyNameFor(p) };
|
|
75
|
+
}
|
|
76
|
+
}
|
|
77
|
+
throw new ProviderUnavailableError("No image generation provider configured. Set GOOGLE_VERTEX_API_KEY, GOOGLE_AI_API_KEY, or OPENAI_API_KEY.");
|
|
78
|
+
}
|
|
79
|
+
function keyNameFor(provider) {
|
|
80
|
+
switch (provider) {
|
|
81
|
+
case "openai": return "OPENAI_API_KEY";
|
|
82
|
+
case "google": return "GOOGLE_AI_API_KEY";
|
|
83
|
+
case "vertex": return "GOOGLE_VERTEX_API_KEY";
|
|
84
|
+
}
|
|
85
|
+
}
|
|
86
|
+
function defaultModelFor(provider) {
|
|
87
|
+
switch (provider) {
|
|
88
|
+
case "openai": return "dall-e-3";
|
|
89
|
+
case "google": return "gemini-2.5-flash-image";
|
|
90
|
+
case "vertex": return "gemini-2.5-flash-image";
|
|
91
|
+
}
|
|
92
|
+
}
|
|
93
|
+
async function generate(provider, model, apiKey, prompt, size) {
|
|
94
|
+
if (provider === "openai")
|
|
95
|
+
return generateOpenAI(model, apiKey, prompt, size ?? "1024x1024");
|
|
96
|
+
if (provider === "google")
|
|
97
|
+
return generateGemini("https://generativelanguage.googleapis.com/v1beta", model, apiKey, prompt);
|
|
98
|
+
// vertex express — same Gemini :generateContent shape, different host.
|
|
99
|
+
return generateGemini("https://aiplatform.googleapis.com/v1beta1", `publishers/google/models/${model}`, apiKey, prompt);
|
|
100
|
+
}
|
|
101
|
+
async function generateOpenAI(model, apiKey, prompt, size) {
|
|
102
|
+
const res = await fetch("https://api.openai.com/v1/images/generations", {
|
|
103
|
+
method: "POST",
|
|
104
|
+
headers: { "Content-Type": "application/json", Authorization: `Bearer ${apiKey}` },
|
|
105
|
+
body: JSON.stringify({ model, prompt, size, n: 1, response_format: "b64_json" }),
|
|
106
|
+
signal: AbortSignal.timeout(120_000),
|
|
107
|
+
});
|
|
108
|
+
if (!res.ok)
|
|
109
|
+
throw new Error(`OpenAI image ${res.status}: ${await res.text()}`);
|
|
110
|
+
const data = (await res.json());
|
|
111
|
+
const b64 = data.data[0]?.b64_json;
|
|
112
|
+
if (!b64)
|
|
113
|
+
throw new Error("OpenAI returned no image data");
|
|
114
|
+
return Buffer.from(b64, "base64");
|
|
115
|
+
}
|
|
116
|
+
/**
|
|
117
|
+
* Gemini image gen via :generateContent — works for both Google AI
|
|
118
|
+
* (generativelanguage.googleapis.com) and Vertex Express
|
|
119
|
+
* (aiplatform.googleapis.com). Both expect the same body shape and
|
|
120
|
+
* return inline_data parts. The model path differs: Google AI uses
|
|
121
|
+
* `models/{name}`, Vertex uses `publishers/google/models/{name}`.
|
|
122
|
+
*/
|
|
123
|
+
async function generateGemini(baseUrl, modelPath, apiKey, prompt) {
|
|
124
|
+
const url = `${baseUrl}/${modelPath.includes("/") ? modelPath : `models/${modelPath}`}:generateContent?key=${encodeURIComponent(apiKey)}`;
|
|
125
|
+
const res = await fetch(url, {
|
|
126
|
+
method: "POST",
|
|
127
|
+
headers: { "Content-Type": "application/json" },
|
|
128
|
+
body: JSON.stringify({
|
|
129
|
+
contents: [{ role: "user", parts: [{ text: prompt }] }],
|
|
130
|
+
generationConfig: { responseModalities: ["IMAGE"] },
|
|
131
|
+
}),
|
|
132
|
+
signal: AbortSignal.timeout(120_000),
|
|
133
|
+
});
|
|
134
|
+
if (!res.ok)
|
|
135
|
+
throw new Error(`Gemini image ${res.status}: ${await res.text()}`);
|
|
136
|
+
const data = (await res.json());
|
|
137
|
+
const parts = data.candidates?.[0]?.content?.parts ?? [];
|
|
138
|
+
const inline = parts.find((p) => p.inlineData?.data);
|
|
139
|
+
if (!inline?.inlineData)
|
|
140
|
+
throw new Error("Gemini returned no image inline_data");
|
|
141
|
+
return Buffer.from(inline.inlineData.data, "base64");
|
|
142
|
+
}
|
|
143
|
+
//# sourceMappingURL=generateImage.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"generateImage.js","sourceRoot":"","sources":["../../../src/tools/core/generateImage.ts"],"names":[],"mappings":"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"}
|