mirror of
https://github.com/pocketpaw/pocketpaw.git
synced 2026-05-22 01:34:59 +00:00
* feat: merge desktop client into monorepo under client/ Move the Tauri 2.0 + SvelteKit desktop client from the separate pocketpaw-client repo into client/ to create a monorepo. Update .gitignore with client build artifact ignores and add Desktop Client section to CLAUDE.md. Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com> * fix(client): unignore client/src/lib and broaden node/sveltekit ignores The root .gitignore `lib/` pattern was blocking client/src/lib/ from being tracked. Anchor it to `/lib/` so only the root Python lib dir is ignored. Also generalize node_modules/ and .svelte-kit/ patterns to work at any depth. Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com> * fix(client): fix white OAuth screen on Windows Load a local loading page first in the OAuth popup window, then navigate to the external OAuth URL via eval(). WebView2 on Windows may not be fully initialized when WebviewUrl::External is used directly, resulting in a permanently white window. Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com> * fix(client): replace WebView OAuth popup with system browser + localhost server WebView2 secondary windows fail to render on Windows (white/transparent screen). Replace the OAuth popup with a temporary localhost HTTP server that captures the callback, and open the authorize URL in the system browser instead. Also pre-create sidepanel and quickask windows in tauri.conf.json (with visible: false) so they initialize alongside the main window, avoiding the same WebView2 rendering issue with dynamically-created transparent windows. Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com> * docs: add multi-mode workspace client design Design for transforming the desktop client into a full workspace IDE with tabbed workspaces, tiling layout engine, pluggable widgets, real-time agent collaboration, unified file management (local + remote + cloud), and responsive mobile support. Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com> * docs: add multi-mode workspace implementation plan Detailed 6-phase implementation plan with ~49 new files across Rust backend (fs commands, PTY, git, widget windows), SvelteKit frontend (tiling layout, Monaco editor, file previews, widget system, terminal), filesystem providers (local, remote, cloud), and co-work features. Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com> * docs: rewrite design as AI file explorer (Poly.app-inspired) Complete redesign from VS Code-like IDE to file-explorer-first UI. Primary interface is a visual file grid with rich thumbnails and 5 view modes (Icon, Grid, List, Column, Gallery). AI chat lives in a collapsible right sidebar with folder/file context awareness. Agent actions (create, edit, delete files) reflect in the grid in real-time. Terminal output is inline in chat, not a separate panel. Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com> * feat(client): add file explorer with list view, search/filter, and context menu Implements a full file explorer with Rust-backed filesystem operations (read, write, delete, rename, watch, thumbnails), multiple view modes (icon grid + list table), inline search/filter, and an enhanced context menu with rename, new folder, and keyboard shortcuts (Ctrl+F, F2, Del). Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com> * feat(deep-work): add v2 engine — retry, timeout, cancel, output chaining, PawKit schema Deep Work v2 hardens the execution engine and lays the foundation for PawKit-based Command Centers. This is the first WIP PR toward the blueprints-strategy vision. Engine improvements: - Task retry: auto-retry failed tasks up to configurable max_retries - Task timeout: per-task asyncio.wait_for with timeout_minutes - Output storage: task.output field for cross-task chaining - Error tracking: task.error_message for diagnostics - Project cancellation: CANCELLED status, stop_all_project_tasks, skip pending tasks with error_message - Manual retry API: POST /projects/{id}/tasks/{tid}/retry New PawKit config schema v0.1: - Pydantic v2 models for Command Center templates - Layout (panels, sections), workflows, user_config, integrations - YAML load/save utilities with PyYAML Files changed: - src/pocketpaw/mission_control/models.py — 5 new Task fields - src/pocketpaw/deep_work/models.py — TaskSpec v2 + CANCELLED status - src/pocketpaw/mission_control/executor.py — retry, timeout, output, stop_all - src/pocketpaw/deep_work/session.py — cancel(), materialize v2 fields - src/pocketpaw/deep_work/api.py — cancel + retry endpoints - src/pocketpaw/deep_work/__init__.py — cancel_project export - src/pocketpaw/deep_work/pawkit.py — NEW: PawKit config schema - tests/test_deep_work_v2.py — 71 new tests - tests/test_mission_control_executor.py — adapted for retry defaults Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com> * test(deep-work): add 21 E2E tests for v2 engine features API-level E2E tests using httpx.AsyncClient with ASGI transport. Real file-based store, session, scheduler, and executor — only the agent backend (LLM calls) is mocked. Coverage: full lifecycle, output chaining, auto-retry, timeout, cancellation, manual retry API, get plan API, skip task API, and PawKit YAML round-trip. Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com> * docs(deep-work): add v2 feature docs — retry, timeout, cancel, output chaining, PawKit Updated the Deep Work guide with new sections covering auto-retry, task timeout, output chaining, project cancellation, and PawKit template format. Added API endpoint pages for Cancel Project and Retry Task. Updated sidebar navigation in docs-config.json. Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com> * docs: add Command Centers concept page and PawKit technical reference New standalone pages for the two biggest ideas in the v2 engine: - docs/concepts/command-centers.mdx — the "why": agent-operated dashboards, PawKits as templates, conversational building, Kit Store marketplace, how it all connects - docs/advanced/pawkit.mdx — the "how": full YAML schema reference with panel types, workflow triggers, user config fields, integrations, and Python API examples Trimmed the PawKit section in deep-work.mdx to a cross-reference since the content now lives in dedicated pages. Updated sidebar navigation with both new entries. Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com> * feat(client): enhance file explorer with viewers, clipboard, and editor save Add file preview support (audio, video, PDF, markdown with syntax highlighting), copy/cut/paste with keyboard shortcuts, file properties dialog, open-in-terminal, editable code editor with Ctrl+S save and dirty tracking, and improved AI model settings panel with Ollama model fetching. Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com> * feat(client): migrate stores to REST-first architecture, WS push-only Move all request-response flows (sessions, chat, settings) to REST HTTP. WebSocket is now exclusively for server-initiated push events. - Add createSession() REST method to client - Remove WS convenience methods (chat, newSession, switchSession, etc.) - Remove bindEvents/disposeEvents from all stores - Rewrite sessionStore to use POST /sessions and REST history - Rewrite settingsStore.saveApiKey to use PUT /settings - Simplify connectionStore (remove sessionId, connection_info listener) - Simplify initializeStores (no more bindEvents calls) - Clean up WS types (remove chat/session event types) Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com> * fix(api): REST-first architecture, fix WS dual-delivery and persistent client bugs (#384) Move all request-response flows to REST HTTP. WebSocket is now push-only. Fixes dual-delivery bug where SSE chat responses were broadcast to all WS clients, and persistent Claude SDK client issues with stale data across sessions. Backend changes: - Add POST /sessions endpoint with SessionCreateResponse schema - Fix WS adapter send() — drop messages for unknown chat_ids instead of broadcasting - Fix WS adapter on_system_event() — route by session_key, not broadcast - Enhance PUT /settings with runtime side-effects (reset_router + memory reload) - Add cancel_task() to AgentLoop — lightweight cancellation without stopping router - Fix _on_done callback race — don't remove newer task's entry from _active_tasks - Add session lock contention logging for diagnostics Chat streaming fixes: - Cancel in-flight SSE streams when new request arrives for same session - Only cancel agent tasks when there IS a competing stream (not on every request) - Add diagnostic logging to SSE bridge event delivery Claude SDK persistent client fixes: - Include session_key in persistent client key — different sessions get fresh subprocesses - Drain trailing ResultMessage from subprocess pipe after each query to prevent stale data on subsequent queries (root cause of "second message shows first response") - Add dispatch/event logging for persistent vs stateless path diagnostics Co-authored-by: Claude Opus 4.6 <noreply@anthropic.com> * feat(api): add PawKits system + MC/DW route mounting for serve command - Add kits module (models, store, catalog, builtin YAML kits) - Add kits API router with CRUD, catalog, and data resolution endpoints - Add api:agents and api:standup source resolvers in kits data resolution - Mount MC and DW routers in serve.py (was only in dashboard.py) - Fix standup resolver to use manager.generate_standup() Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com> * feat: merge desktop client into monorepo (#290) * feat: merge desktop client into monorepo under client/ Move the Tauri 2.0 + SvelteKit desktop client from the separate pocketpaw-client repo into client/ to create a monorepo. Update .gitignore with client build artifact ignores and add Desktop Client section to CLAUDE.md. Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com> * fix(client): unignore client/src/lib and broaden node/sveltekit ignores The root .gitignore `lib/` pattern was blocking client/src/lib/ from being tracked. Anchor it to `/lib/` so only the root Python lib dir is ignored. Also generalize node_modules/ and .svelte-kit/ patterns to work at any depth. Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com> * fix(client): fix white OAuth screen on Windows Load a local loading page first in the OAuth popup window, then navigate to the external OAuth URL via eval(). WebView2 on Windows may not be fully initialized when WebviewUrl::External is used directly, resulting in a permanently white window. Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com> * fix(client): replace WebView OAuth popup with system browser + localhost server WebView2 secondary windows fail to render on Windows (white/transparent screen). Replace the OAuth popup with a temporary localhost HTTP server that captures the callback, and open the authorize URL in the system browser instead. Also pre-create sidepanel and quickask windows in tauri.conf.json (with visible: false) so they initialize alongside the main window, avoiding the same WebView2 rendering issue with dynamically-created transparent windows. Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com> * docs: add multi-mode workspace client design Design for transforming the desktop client into a full workspace IDE with tabbed workspaces, tiling layout engine, pluggable widgets, real-time agent collaboration, unified file management (local + remote + cloud), and responsive mobile support. Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com> * docs: add multi-mode workspace implementation plan Detailed 6-phase implementation plan with ~49 new files across Rust backend (fs commands, PTY, git, widget windows), SvelteKit frontend (tiling layout, Monaco editor, file previews, widget system, terminal), filesystem providers (local, remote, cloud), and co-work features. Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com> * docs: rewrite design as AI file explorer (Poly.app-inspired) Complete redesign from VS Code-like IDE to file-explorer-first UI. Primary interface is a visual file grid with rich thumbnails and 5 view modes (Icon, Grid, List, Column, Gallery). AI chat lives in a collapsible right sidebar with folder/file context awareness. Agent actions (create, edit, delete files) reflect in the grid in real-time. Terminal output is inline in chat, not a separate panel. Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com> * feat(client): add file explorer with list view, search/filter, and context menu Implements a full file explorer with Rust-backed filesystem operations (read, write, delete, rename, watch, thumbnails), multiple view modes (icon grid + list table), inline search/filter, and an enhanced context menu with rename, new folder, and keyboard shortcuts (Ctrl+F, F2, Del). Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com> * feat(client): enhance file explorer with viewers, clipboard, and editor save Add file preview support (audio, video, PDF, markdown with syntax highlighting), copy/cut/paste with keyboard shortcuts, file properties dialog, open-in-terminal, editable code editor with Ctrl+S save and dirty tracking, and improved AI model settings panel with Ollama model fetching. Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com> * feat(client): migrate stores to REST-first architecture, WS push-only Move all request-response flows (sessions, chat, settings) to REST HTTP. WebSocket is now exclusively for server-initiated push events. - Add createSession() REST method to client - Remove WS convenience methods (chat, newSession, switchSession, etc.) - Remove bindEvents/disposeEvents from all stores - Rewrite sessionStore to use POST /sessions and REST history - Rewrite settingsStore.saveApiKey to use PUT /settings - Simplify connectionStore (remove sessionId, connection_info listener) - Simplify initializeStores (no more bindEvents calls) - Clean up WS types (remove chat/session event types) Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com> * feat(client): full Mission Control integration — agents, execution, projects, notifications - Add MC/DW types (AgentProfile, MCTask, MCMessage, MCProject, etc.) - Add 25+ API methods (mcRequest + dwRequest helpers) for agents, tasks, execution, notifications, projects - Add mcStore (agents, running tasks, execution streaming, notifications) and projectStore (project lifecycle, planning) - Add AgentRoster panel with CRUD, KanbanBoard enhancements (assignment, run/stop, messages, running indicator) - Add TaskExecutionPanel slide-over for live agent streaming - Add NotificationBell in titlebar with unread badge - Add StandupPanel and document viewer/editor in DataTable - Add /projects route with creation wizard, plan review, lifecycle controls - Remove internal-docs from git tracking - Rename tabs: Deep Work → PawKits, Projects → Deep Work Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com> --------- Co-authored-by: Claude Opus 4.6 <noreply@anthropic.com> * feat(client): add PawKits catalog, layout renderer, and remaining panel components Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com> * feat(api): add PawKits system + MC/DW route mounting for serve command - Add kits module (models, store, catalog, builtin YAML kits) - Add kits API router with CRUD, catalog, and data resolution endpoints - Add api:agents and api:standup source resolvers in kits data resolution - Mount MC and DW routers in serve.py (was only in dashboard.py) - Fix standup resolver to use manager.generate_standup() Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com> * chore: add plans and update lockfile Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com> * chore: remove plans and revert uv.lock Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com> * fix: resolve merge breakages in chat, context builder, and MC routes - Add missing FileContext model and field to ChatRequest schema - Add file_context parameter to build_system_prompt() - Move /tasks/running route before /tasks/{task_id} to fix 404 - Remove unused TaskStatus import in kits.py Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com> * feat: resilient SDK streaming, in-app file viewer, and explorer tool - Replace _safe_iter with _resilient_receive to handle MessageParseError by re-creating the iterator instead of losing the stream - Add file-open command interception (start, xdg-open, etc.) to redirect to the in-app explorer viewer via PreToolUse hook - Add /api/files/content endpoint for serving file contents with MIME types - Add explorer built-in tool and open_in_explorer CLI command - Update dashboard frontend with file viewer modal and transparency fixes - Set SDK stream close timeout to 24h for long-running tool use - Suppress API-key errors in ResultMessage to avoid noisy logs Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com> * feat(client): tabbed explorer, file viewers, command palette, and onboarding refresh - Add multi-tab explorer with history, file type filtering, and address bar - Implement PDF, spreadsheet, notebook, document, and text preview viewers - Add command palette (Ctrl+K) with fuzzy search - Overhaul onboarding wizard with model search and backend setup - Add Tauri fs commands for file content and metadata - Improve chat input, file preview, and session dropdown - Update dialog components and workspace tabs - Add content preview caching and binary utils for file handling Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com> --------- Co-authored-by: Rohit Kushwaha <technicalrohit06@gmail.com> Co-authored-by: Claude Opus 4.6 <noreply@anthropic.com> Co-authored-by: Rohit Kushwaha <rohitk290106@gmail.com>
100 lines
6.0 KiB
Plaintext
100 lines
6.0 KiB
Plaintext
---
|
|
title: Command Centers
|
|
description: "Command Centers are agent-operated dashboards — not static visualizations, but living workspaces where your AI agent monitors data, runs workflows, and surfaces what matters. PawKits are publishable templates that give any Command Center a head start."
|
|
section: Core Concepts
|
|
ogType: article
|
|
keywords: ["command centers", "pawkit", "agent dashboard", "ai workspace", "canva for ai", "kit store", "agent operated"]
|
|
tags: ["concepts", "command-centers", "pawkit"]
|
|
---
|
|
|
|
# Command Centers
|
|
|
|
A Command Center is a custom dashboard that your AI agent actually operates. Not a static page of charts you stare at — a workspace where the agent monitors, researches, updates, and alerts on your behalf. You manage. The agent works.
|
|
|
|
## The Shift
|
|
|
|
Traditional apps put you in the driver's seat. You open the app, click through menus, read data, make decisions, take action. That works until you're managing six platforms, three inboxes, and a content calendar.
|
|
|
|
Command Centers flip the model:
|
|
|
|
| Traditional Apps | Command Centers |
|
|
|-----------------|-----------------|
|
|
| You navigate to data | Agent brings data to you |
|
|
| You check dashboards | Agent surfaces what changed |
|
|
| You click buttons | Agent runs workflows automatically |
|
|
| You create reports | Agent generates summaries on schedule |
|
|
| You notice problems | Agent alerts you before they escalate |
|
|
|
|
The dashboard still looks like a dashboard — metrics, tables, kanban boards, feeds. But behind every panel is an agent that's been doing the legwork while you were away.
|
|
|
|
## What You See
|
|
|
|
A Command Center is made of **sections** and **panels** arranged in a grid. The layout depends on the domain:
|
|
|
|
- A **YouTube Creator Studio** might show a metrics row (subscribers, views, revenue), a content pipeline kanban, a comments feed, and a performance chart
|
|
- A **Freelance Business HQ** might show active projects, invoice status, a client communication feed, and cash flow projections
|
|
- A **DevOps War Room** might show service health, recent deployments, alert history, and on-call rotation
|
|
|
|
Each panel pulls data from workflows the agent runs on a schedule or in response to triggers. When you open the Command Center in the morning, everything is already up to date.
|
|
|
|
## PawKits: Templates That Work Immediately
|
|
|
|
Every Command Center starts from a **PawKit** — a YAML template that bundles everything the dashboard needs:
|
|
|
|
- **Layout** — which panels go where, how wide, what type (table, chart, kanban, feed)
|
|
- **Workflows** — what the agent does automatically (morning scans, threshold alerts, weekly reports)
|
|
- **User Config** — what you fill in during setup (API keys, brand voice, niche, preferences)
|
|
- **Skills** — domain knowledge the agent needs (SEO tips, tax rules, content frameworks)
|
|
- **Integrations** — which external services to connect (Google Calendar, Reddit, Spotify)
|
|
|
|
When you install a PawKit, PocketPaw asks a few setup questions, renders the dashboard, and the agent starts working. Five minutes from install to a fully operational workspace.
|
|
|
|
### Building Through Conversation
|
|
|
|
You don't need to write YAML. Describe what you want and PocketPaw generates it:
|
|
|
|
```
|
|
You: I need a command center for managing my Etsy shop
|
|
PocketPaw: What would you want to see at a glance?
|
|
You: Active listings with stock levels, this week's sales, reviews
|
|
that need responses, and inventory alerts
|
|
PocketPaw: What should I monitor automatically?
|
|
You: Check reviews every morning. Alert me if stock drops below 10.
|
|
Send a Monday morning sales summary to Telegram.
|
|
PocketPaw: [renders dashboard with metrics, listing table, review feed,
|
|
and three scheduled workflows]
|
|
```
|
|
|
|
Need to tweak it? Just say so — "move the chart above the table", "add a column for tags", "change the stock alert threshold to 5". Every change updates the config live. You never touch the YAML unless you want to.
|
|
|
|
### The Kit Store
|
|
|
|
PawKits are shareable. Once you've built and tuned a Command Center for your domain — spending weeks getting the workflows right, the layout polished, the skills dialed in — you can strip out your personal data and publish it.
|
|
|
|
Other users browse by category, preview the layout, check what integrations are needed, and install with one click. Think app store, but for AI workspaces.
|
|
|
|
Categories span the full range: content creation, e-commerce, real estate, education, marketing, DevOps, finance, health — any domain where monitoring and automation help.
|
|
|
|
<Callout type="info">
|
|
The Kit Store ships in phases. Right now PawKits are YAML configs you load manually. Conversational building and the in-app marketplace are on the [roadmap](/advanced/roadmap).
|
|
</Callout>
|
|
|
|
## How It Connects
|
|
|
|
Command Centers build on existing PocketPaw infrastructure:
|
|
|
|
- **[Deep Work](/advanced/deep-work)** becomes the built-in "Project Orchestrator" Command Center — the same planning and execution engine, rendered as panels in the new framework
|
|
- **[Mission Control](/advanced/mission-control)** handles task storage, agent management, and the execution engine underneath
|
|
- **[Message Bus](/concepts/message-bus)** streams real-time updates to every panel via WebSocket
|
|
- **Workflows** use the same agent backends, tools, and memory as regular chat
|
|
|
|
The key insight: PocketPaw already has the engine (agents, tools, scheduling, multi-channel delivery). Command Centers give that engine a purpose-built interface for every domain.
|
|
|
|
## Why This Matters
|
|
|
|
Most AI agents suffer from the blank canvas problem. You install them, open the chat, and think: "now what?" PawKits solve that the same way Canva solved design — by giving you a starting point that's already useful, then letting you customize from there.
|
|
|
|
A YouTube creator doesn't need to figure out what to ask the agent. They install "YouTube Creator Studio", connect their channel, and the agent is already tracking analytics, flagging comments, and drafting video descriptions by morning.
|
|
|
|
For a deeper look at the YAML schema and how to build PawKits programmatically, see the [PawKit Reference](/advanced/pawkit).
|