|
| 1 | +# Plugin Implementation TODOs |
| 2 | + |
| 3 | +Each plugin has a **context** (AI persona, templates, skills) and a **service** (IPC, business logic, UI). |
| 4 | +Context system is complete for all 9 plugins. Service/UI work remains per plugin. |
| 5 | + |
| 6 | +--- |
| 7 | + |
| 8 | +## Phase 9: Image Generator (imagegen) |
| 9 | +- [x] Plugin context registered (system prompt, templates: generate/refine, skills: photo-real/ui-mockup/logo-icon) |
| 10 | +- [x] Plugin registered in PLUGIN_REGISTRY |
| 11 | +- [ ] ImageGenService — call Gemini imagen-4 API for generation |
| 12 | +- [ ] Wire pluginPrompt('imagegen', 'generate') for prompt refinement before sending to imagen |
| 13 | +- [ ] IPC handlers: imagegen:generate, imagegen:list, imagegen:delete |
| 14 | +- [ ] Preload bridge: window.daemon.imagegen.* |
| 15 | +- [ ] UI: prompt input, style/ratio selectors, gallery grid, image preview |
| 16 | +- [ ] Save generated images to images table + ~/.daemon/images/ |
| 17 | +- [ ] Saga orchestration: generate prompt → call imagen → save file → insert DB |
| 18 | + |
| 19 | +## Phase 10: Gmail Code Catcher (gmail) |
| 20 | +- [x] Plugin context registered (system prompt, templates: extract/summarize, skills: code-detect/action-items) |
| 21 | +- [x] Plugin registered in PLUGIN_REGISTRY |
| 22 | +- [x] GmailService — OAuth2 flow via Google API (tokens in oauth_tokens table via safeStorage) |
| 23 | +- [x] Wire pluginPrompt('gmail', 'extract') to parse email bodies |
| 24 | +- [x] IPC handlers: gmail:auth-status, gmail:auth, gmail:exchange-code, gmail:logout, gmail:list, gmail:read, gmail:extract, gmail:summarize |
| 25 | +- [x] Preload bridge: window.daemon.gmail.* |
| 26 | +- [x] UI: auth flow (credentials + code exchange), inbox list, email viewer, extract + summarize buttons, extraction cards with copy |
| 27 | +- [x] Saga orchestration: extract code via orchestratedPrompt |
| 28 | +- [ ] Auto-detect code in new emails, surface in morning briefing |
| 29 | +- [ ] Onboarding: Gmail OAuth setup during first-run |
| 30 | + |
| 31 | +## Phase 11: Tweet Generator (tweet-generator) |
| 32 | +- [x] Plugin context registered (system prompt, templates: original/reply/quote/thread, skills: ct-voice/solana-context/engagement-hooks/thread-craft) |
| 33 | +- [x] TweetService refactored to use pluginPrompt + SagaOrchestrator |
| 34 | +- [x] Voice profile reads from plugin context (falls back to legacy DB) |
| 35 | +- [x] IPC handlers complete |
| 36 | +- [x] Preload bridge complete |
| 37 | +- [x] UI: TweetGenerator, VoiceProfileEditor, TweetVariations, DraftList |
| 38 | +- [ ] Thread generation UI (uses 'thread' template, not yet wired) |
| 39 | +- [ ] Plugin context editor UI (toggle skills, edit system prompt from Settings) |
| 40 | +- [ ] Scheduled tweet drafts (morning batch generation) |
| 41 | + |
| 42 | +## Phase 12: Subscription Manager (subscriptions) |
| 43 | +- [x] Plugin context registered (system prompt, templates: analyze-usage/cost-alert/compare-plans, skills: usage-tracking/cost-optimization/overage-prediction) |
| 44 | +- [x] Plugin registered in PLUGIN_REGISTRY |
| 45 | +- [x] DB table: subscriptions (id, name, monthly_cost, renewal_day, usage_limit, usage_current, alert_at, url, api_key_hint) |
| 46 | +- [ ] SubscriptionService — CRUD + usage tracking + alert logic |
| 47 | +- [ ] Wire pluginPrompt('subscriptions', 'analyze-usage') for monthly reports |
| 48 | +- [ ] Wire pluginPrompt('subscriptions', 'cost-alert') for overage warnings |
| 49 | +- [ ] IPC handlers: subscriptions:list, subscriptions:add, subscriptions:update, subscriptions:delete, subscriptions:analyze |
| 50 | +- [ ] Preload bridge: window.daemon.subscriptions.* |
| 51 | +- [ ] UI: subscription list, add/edit modal, usage bars, cost breakdown chart |
| 52 | +- [ ] Alert integration with morning briefing (flag services approaching limits) |
| 53 | + |
| 54 | +## Phase 13: Remotion Panel (remotion) |
| 55 | +- [x] Plugin context registered (full production formula hardwired, templates: scene/composition/animate/terminal-demo/encode, 10 skills) |
| 56 | +- [x] Plugin registered in PLUGIN_REGISTRY |
| 57 | +- [ ] RemotionService — manage localhost Remotion studio, render pipeline |
| 58 | +- [ ] Wire pluginPrompt('remotion', 'scene') for AI scene generation |
| 59 | +- [ ] Wire pluginPrompt('remotion', 'composition') for full video scaffolding |
| 60 | +- [ ] Wire pluginPrompt('remotion', 'encode') for ffmpeg command generation |
| 61 | +- [ ] IPC handlers: remotion:render, remotion:preview, remotion:generate-scene, remotion:list-compositions |
| 62 | +- [ ] Preload bridge: window.daemon.remotion.* |
| 63 | +- [ ] UI: composition browser, scene editor, render queue, preview iframe |
| 64 | +- [ ] CompanionPanel (already in registry) — timeline, props editor |
| 65 | +- [ ] Saga orchestration: generate scene → write file → preview → render → encode |
| 66 | + |
| 67 | +## Phase 14: Browser + Playwright CDP (browser) |
| 68 | +- [x] Plugin context registered (system prompt, templates: summarize-page/extract-data/compare-pages/audit-page, skills: content-extract/page-diff/security-recon/screenshot-analysis) |
| 69 | +- [x] Plugin registered in PLUGIN_REGISTRY |
| 70 | +- [x] BrowserService — fetch-based navigation, page caching, AI analysis via pluginPrompt |
| 71 | +- [x] Wire pluginPrompt('browser', 'summarize-page') for page analysis |
| 72 | +- [x] Wire pluginPrompt('browser', 'audit-page') for security recon |
| 73 | +- [x] IPC handlers: browser:navigate, browser:content, browser:analyze, browser:audit, browser:history, browser:clear |
| 74 | +- [x] Preload bridge: window.daemon.browser.* |
| 75 | +- [x] UI: URL bar, page info, summarize/extract/audit buttons, content/analysis/history tabs, history list |
| 76 | +- [x] Saga orchestration: analysis via orchestratedPrompt |
| 77 | +- [ ] Playwright CDP integration (port 9222) for interactive automation |
| 78 | +- [ ] Embedded webview for visual browsing (currently fetch-only) |
| 79 | +- [ ] Screenshot capture + visual analysis |
| 80 | +- [ ] Page diff tracking (compare states before/after actions) |
| 81 | +- [ ] Onboarding: optional Playwright setup during first-run |
| 82 | + |
| 83 | +## Phase 15: Context Bridge Extension |
| 84 | +- [ ] VS Code extension that syncs DAEMON context to editor |
| 85 | +- [ ] Bi-directional: editor selections → DAEMON plugins, DAEMON outputs → editor |
| 86 | +- [ ] No plugin context needed (bridge, not AI consumer) |
| 87 | + |
| 88 | +--- |
| 89 | + |
| 90 | +## Future Plugins |
| 91 | + |
| 92 | +### Telegram (telegram) |
| 93 | +- [x] Plugin context registered (system prompt, templates: compose/summarize-chat/reply/announcement, skills: ct-tone/dev-tone/chat-summary/formatting) |
| 94 | +- [x] Plugin registered in PLUGIN_REGISTRY |
| 95 | +- [ ] TelegramService — connect via telegram-user MCP or TDLib |
| 96 | +- [ ] Wire pluginPrompt('telegram', 'compose') for message drafting |
| 97 | +- [ ] Wire pluginPrompt('telegram', 'summarize-chat') for conversation digests |
| 98 | +- [ ] IPC handlers: telegram:dialogs, telegram:read, telegram:send, telegram:summarize |
| 99 | +- [ ] Preload bridge: window.daemon.telegram.* |
| 100 | +- [ ] UI: dialog list, chat view, compose panel, channel management |
| 101 | +- [ ] Integration with morning briefing (overnight message summaries) |
| 102 | + |
| 103 | +### Morning Briefing (morning-briefing) |
| 104 | +- [x] Plugin context registered (system prompt, templates: digest/prioritize, skills: error-triage/git-summary) |
| 105 | +- [x] Plugin registered in PLUGIN_REGISTRY |
| 106 | +- [ ] BriefingService — aggregate overnight data from all sources |
| 107 | +- [ ] Wire pluginPrompt('morning-briefing', 'digest') for overnight compilation |
| 108 | +- [ ] Wire pluginPrompt('morning-briefing', 'prioritize') for task ranking |
| 109 | +- [ ] IPC handlers: briefing:generate, briefing:history, briefing:dismiss |
| 110 | +- [ ] Preload bridge: window.daemon.briefing.* |
| 111 | +- [ ] UI: overlay panel (already mounted as 'overlay' position), dismiss/snooze |
| 112 | +- [ ] Data sources: error_logs, git activity, crash_history, overnight_runs, telegram, gmail |
| 113 | +- [ ] DB table: overnight_runs (exists) — link briefings to run data |
| 114 | + |
| 115 | +### Services Panel (services) |
| 116 | +- [x] Plugin context registered (system prompt, templates: diagnose-crash/health-report/suggest-config/log-analysis, skills: crash-analysis/auto-fix/resource-monitor/log-parsing) |
| 117 | +- [x] Plugin registered in PLUGIN_REGISTRY |
| 118 | +- [x] DB tables: services, crash_history (exist) |
| 119 | +- [ ] ServicesService — start/stop/restart, health checks, log capture |
| 120 | +- [ ] Wire pluginPrompt('services', 'diagnose-crash') for crash analysis |
| 121 | +- [ ] Wire pluginPrompt('services', 'log-analysis') for pattern detection |
| 122 | +- [ ] IPC handlers: services:list, services:start, services:stop, services:logs, services:diagnose |
| 123 | +- [ ] Preload bridge: window.daemon.services.* |
| 124 | +- [ ] UI: service list with status dots, log viewer, crash history, config editor |
| 125 | +- [ ] Auto-restart with crash analysis before retry |
| 126 | +- [ ] Saga orchestration: detect crash → analyze logs → suggest fix → optionally auto-apply → restart |
| 127 | + |
| 128 | +--- |
| 129 | + |
| 130 | +## Cross-Plugin Infrastructure (Complete) |
| 131 | +- [x] PluginContextRegistry — register/get/update/toggle/reset per plugin |
| 132 | +- [x] PluginPrompt — template interpolation, skill injection, ClaudeRouter routing |
| 133 | +- [x] SagaOrchestrator — multi-step operations with compensation/rollback |
| 134 | +- [x] orchestratedPrompt() — wraps pluginPrompt in saga steps |
| 135 | +- [x] plugin_contexts DB table (V9 migration) |
| 136 | +- [x] IPC: plugin-context:get/update/toggle-skill/reset/list |
| 137 | +- [x] Preload: window.daemon.plugins.contextGet/Update/ToggleSkill/Reset/List |
| 138 | +- [x] Type declarations: PluginContextConfig, PluginSkill, PromptTemplate |
| 139 | +- [ ] Plugin Context Editor UI — settings panel to edit system prompts, toggle skills, switch models per plugin |
0 commit comments