Skip to content
Open
Show file tree
Hide file tree
Changes from 20 commits
Commits
Show all changes
57 commits
Select commit Hold shift + click to select a range
5e45aee
MAESTRO: Phase 01 - Cue foundational types, template variables, logge…
pedramamini Mar 1, 2026
8ccf4a4
MAESTRO: Phase 02 - Cue Engine core, YAML loader, and file watcher pr…
pedramamini Mar 1, 2026
350b788
MAESTRO: Phase 03 - Cue executor for background agent spawning and hi…
pedramamini Mar 1, 2026
c1a8be1
MAESTRO: Phase 04 - IPC handlers, preload API, and CueEngine initiali…
pedramamini Mar 1, 2026
7a61e3e
MAESTRO: Phase 05 - CUE type rendering in History panel and detail modal
pedramamini Mar 1, 2026
29c275c
MAESTRO: Phase 05 - CUE log level test coverage for LogViewer component
pedramamini Mar 1, 2026
fddaeb6
MAESTRO: Phase 06 - Cue Modal dashboard with sessions, active runs, a…
pedramamini Mar 1, 2026
1b6c603
MAESTRO: Phase 07 - Cue YAML Editor with AI-assisted prompt generation
pedramamini Mar 1, 2026
d2b9345
MAESTRO: Phase 08 - Cue Help Modal and auto-discovery of maestro-cue.…
pedramamini Mar 1, 2026
5d9ef9d
MAESTRO: Phase 09 - Agent completion chains with fan-out, fan-in, and…
pedramamini Mar 1, 2026
134db4c
MAESTRO: Phase 10 - YAML hot reload with config change/removal detect…
pedramamini Mar 1, 2026
3ee6c8a
MAESTRO: Phase 10 - Cue status indicator in session list (Encore Feat…
pedramamini Mar 1, 2026
b73daae
MAESTRO: Phase 10 - Update documentation tables with Cue references
pedramamini Mar 1, 2026
f2b8802
MAESTRO: Phase 11 - Per-agent concurrency control and event queuing
pedramamini Mar 1, 2026
c0f8c55
MAESTRO: Phase 12 - Sleep/wake reconciliation with heartbeat and even…
pedramamini Mar 1, 2026
e4e4bec
MAESTRO: Phase 13 - Event payload filtering for Cue subscriptions
pedramamini Mar 1, 2026
6c2c252
MAESTRO: Phase 14 - Named coordination pattern presets and AI pattern…
pedramamini Mar 1, 2026
3916890
MAESTRO: Phase 01 - GitHub polling foundation (types, DB, poller module)
pedramamini Mar 4, 2026
da7f13c
MAESTRO: Phase 02 - GitHub polling integration (engine, YAML, executo…
pedramamini Mar 4, 2026
5c9c638
MAESTRO: Phase 03 - Add GitHub pattern presets (PR Review, Issue Tria…
pedramamini Mar 4, 2026
a7af3f0
MAESTRO: Sync CueEventType across preload and renderer with GitHub ev…
pedramamini Mar 4, 2026
bccf2be
MAESTRO: Add GitHub event documentation to Cue Help Modal
pedramamini Mar 4, 2026
5f7a2c2
MAESTRO: Add GitHub event payload display to Cue activity log
pedramamini Mar 4, 2026
80880ba
MAESTRO: Add GitHub event types to CueYamlEditor YAML template and AI…
pedramamini Mar 4, 2026
e01f2bf
Merge origin/main into maestro-cue-spinout with PR review fixes
pedramamini Mar 5, 2026
0ef4db6
MAESTRO: Add task.pending event type to Cue automation system
pedramamini Mar 5, 2026
a9d37cb
MAESTRO: Update CLAUDE.md Cue description to include all trigger types
pedramamini Mar 5, 2026
9625315
Replace hardcoded tool detail extractors with generic summarizeToolInput
pedramamini Mar 5, 2026
28b93de
Gate CUE history filter on maestroCue encore feature and fix crowded …
pedramamini Mar 6, 2026
56108c9
Add CUE entry type to History Panel help modal when maestroCue is ena…
pedramamini Mar 6, 2026
03ae596
Add comprehensive Maestro Cue user documentation (4 pages)
pedramamini Mar 6, 2026
c1cf4dc
Add Cue YAML editor, context menu integration, and fix help modal z-i…
pedramamini Mar 6, 2026
c2a366c
Add tests for cueYamlEditor modal and Configure Maestro Cue command p…
pedramamini Mar 6, 2026
fd20866
Move Configure Maestro Cue below Configure Worktrees in context menu
pedramamini Mar 6, 2026
0b7e4aa
Center history filter pills when CUE type adds a third row
pedramamini Mar 6, 2026
5c4a954
Add conversational AI Assist chat to CueYamlEditor with agent spawn a…
pedramamini Mar 6, 2026
d5c606e
Add Cue Examples cookbook page and document triggeredBy filter field
pedramamini Mar 6, 2026
fc466b8
Rename Cancel to Exit in CueYamlEditor and pass cueShortcutKeys to Cu…
pedramamini Mar 6, 2026
993957e
Add missing Cue template variables for file changeType and agent comp…
pedramamini Mar 6, 2026
c8154d8
Add Cue Graph visualizer tab, standardize modal sizes, and inline hel…
pedramamini Mar 6, 2026
3c38127
Use theme accent instead of hardcoded Cue teal for toggles, borders, …
pedramamini Mar 6, 2026
10c5d20
MAESTRO: Add pipeline types and React Flow canvas foundation for Cue …
pedramamini Mar 7, 2026
747a93c
MAESTRO: Add custom node types and pipeline edge for Cue visual editor
pedramamini Mar 7, 2026
c8af227
MAESTRO: Add trigger and agent drawers with drag-and-drop for Cue pip…
pedramamini Mar 7, 2026
c77aba7
MAESTRO: Add pipeline lifecycle management with selector dropdown, co…
pedramamini Mar 7, 2026
215981e
MAESTRO: Add node and edge configuration panels for Cue pipeline editor
pedramamini Mar 7, 2026
ab4174d
MAESTRO: Add pipeline-to-YAML conversion utility for Cue visual editor
pedramamini Mar 7, 2026
b444a8f
MAESTRO: Add YAML-to-pipeline reverse conversion for Cue visual editor
pedramamini Mar 7, 2026
4489eef
MAESTRO: Integrate YAML conversion into pipeline editor with save/loa…
pedramamini Mar 7, 2026
4ab5a75
MAESTRO: Add pipeline layout persistence via IPC for Cue visual editor
pedramamini Mar 7, 2026
f1784ed
MAESTRO: Update CueModal to use Pipeline Editor as default tab and re…
pedramamini Mar 7, 2026
e2752bd
MAESTRO: Add pipeline-aware status indicators to CueModal Dashboard tab
pedramamini Mar 7, 2026
e1f53fe
MAESTRO: Add polish features to Cue visual pipeline editor
pedramamini Mar 7, 2026
cb00fc4
MAESTRO: Fix empty pipeline graph and add drawer improvements
pedramamini Mar 7, 2026
894c665
MAESTRO: Add layout algorithms and node dragging to Cue graph view
pedramamini Mar 7, 2026
0445fec
MAESTRO: Fix pipeline editor UI issues and add legend/auto-config
pedramamini Mar 7, 2026
8e26571
MAESTRO: Add drag handles and gear icons to pipeline editor nodes
pedramamini Mar 7, 2026
File filter

Filter by extension

Filter by extension


Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
35 changes: 35 additions & 0 deletions CLAUDE-IPC.md
Original file line number Diff line number Diff line change
Expand Up @@ -43,6 +43,7 @@ The `window.maestro` API exposes the following namespaces:
- `history` - Per-agent execution history (see History API below)
- `cli` - CLI activity detection for playbook runs
- `tempfile` - Temporary file management for batch processing
- `cue` - Maestro Cue event-driven automation (see Cue API below)

## Analytics & Visualization

Expand Down Expand Up @@ -74,6 +75,40 @@ window.maestro.history = {

**AI Context Integration**: Use `getFilePath(sessionId)` to get the path to an agent's history file. This file can be passed directly to AI agents as context, giving them visibility into past completed tasks, decisions, and work patterns.

## Cue API

Maestro Cue event-driven automation engine. Gated behind the `maestroCue` Encore Feature flag.

```typescript
window.maestro.cue = {
// Query engine state
getStatus: () => Promise<CueSessionStatus[]>,
getActiveRuns: () => Promise<CueRunResult[]>,
getActivityLog: (limit?) => Promise<CueRunResult[]>,

// Engine controls
enable: () => Promise<void>,
disable: () => Promise<void>,

// Run management
stopRun: (runId) => Promise<boolean>,
stopAll: () => Promise<void>,

// Session config management
refreshSession: (sessionId, projectRoot) => Promise<void>,

// YAML config file operations
readYaml: (projectRoot) => Promise<string | null>,
writeYaml: (projectRoot, content) => Promise<void>,
validateYaml: (content) => Promise<{ valid: boolean; errors: string[] }>,

// Real-time updates
onActivityUpdate: (callback) => () => void, // Returns unsubscribe function
};
```

**Events:** `cue:activityUpdate` is pushed from main process on subscription triggers, run completions, config reloads, and config removals.

## Power Management

- `power` - Sleep prevention: setEnabled, isEnabled, getStatus, addReason, removeReason
Expand Down
13 changes: 11 additions & 2 deletions CLAUDE-PATTERNS.md
Original file line number Diff line number Diff line change
Expand Up @@ -348,16 +348,25 @@ When adding a new Encore Feature, gate **all** access points:
6. **Hamburger menu** — Make the setter optional, conditionally render the menu item in `SessionList.tsx`
7. **Command palette** — Pass `undefined` for the handler in `QuickActionsModal.tsx` (already conditionally renders based on handler existence)

### Reference Implementation: Director's Notes
### Reference Implementations

Director's Notes is the first Encore Feature and serves as the canonical example:
**Director's Notes** — First Encore Feature, canonical example:

- **Flag:** `encoreFeatures.directorNotes` in `EncoreFeatureFlags`
- **App.tsx gating:** Modal render wrapped in `{encoreFeatures.directorNotes && directorNotesOpen && (…)}`, callback passed as `encoreFeatures.directorNotes ? () => setDirectorNotesOpen(true) : undefined`
- **Keyboard shortcut:** `ctx.encoreFeatures?.directorNotes` guard in `useMainKeyboardHandler.ts`
- **Hamburger menu:** `setDirectorNotesOpen` made optional in `SessionList.tsx`, button conditionally rendered with `{setDirectorNotesOpen && (…)}`
- **Command palette:** `onOpenDirectorNotes` already conditionally renders in `QuickActionsModal.tsx` — passing `undefined` from App.tsx is sufficient

**Maestro Cue** — Event-driven automation, second Encore Feature:

- **Flag:** `encoreFeatures.maestroCue` in `EncoreFeatureFlags`
- **App.tsx gating:** Cue modal, hooks (`useCue`, `useCueAutoDiscovery`), and engine lifecycle gated on `encoreFeatures.maestroCue`
- **Keyboard shortcut:** `ctx.encoreFeatures?.maestroCue` guard in `useMainKeyboardHandler.ts`
- **Hamburger menu:** `setMaestroCueOpen` made optional in `SessionList.tsx`
- **Command palette:** `onOpenMaestroCue` conditionally renders in `QuickActionsModal.tsx`
- **Session list:** Cue status indicator (Zap icon) gated on `maestroCueEnabled`

When adding a new Encore Feature, mirror this pattern across all access points.

See [CONTRIBUTING.md → Encore Features](CONTRIBUTING.md#encore-features-feature-gating) for the full contributor guide.
12 changes: 11 additions & 1 deletion CLAUDE.md
Original file line number Diff line number Diff line change
Expand Up @@ -72,6 +72,11 @@ Use "agent" in user-facing language. Reserve "session" for provider-level conver
- **Command Terminal** - Main window in terminal/shell mode
- **System Log Viewer** - Special view for system logs (`LogViewer.tsx`)

### Automation

- **Cue** — Event-driven automation system (Maestro Cue), gated as an Encore Feature. Watches for file changes, time intervals, and agent completions to trigger automated prompts. Configured via `maestro-cue.yaml` per project.
- **Cue Modal** — Dashboard for managing Cue subscriptions and viewing activity (`CueModal.tsx`)

### Agent States (color-coded)

- **Green** - Ready/idle
Expand Down Expand Up @@ -131,9 +136,10 @@ src/
│ ├── preload.ts # Secure IPC bridge
│ ├── process-manager.ts # Process spawning (PTY + child_process)
│ ├── agent-*.ts # Agent detection, capabilities, session storage
│ ├── cue/ # Maestro Cue event-driven automation engine
│ ├── parsers/ # Per-agent output parsers + error patterns
│ ├── storage/ # Per-agent session storage implementations
│ ├── ipc/handlers/ # IPC handler modules (stats, git, playbooks, etc.)
│ ├── ipc/handlers/ # IPC handler modules (stats, git, playbooks, cue, etc.)
│ └── utils/ # Utilities (execFile, ssh-spawn-wrapper, etc.)
├── renderer/ # React frontend (desktop)
Expand Down Expand Up @@ -202,6 +208,10 @@ src/
| Add Director's Notes feature | `src/renderer/components/DirectorNotes/`, `src/main/ipc/handlers/director-notes.ts` |
| Add Encore Feature | `src/renderer/types/index.ts` (flag), `useSettings.ts` (state), `SettingsModal.tsx` (toggle UI), gate in `App.tsx` + keyboard handler |
| Modify history components | `src/renderer/components/History/` |
| Add Cue event type | `src/main/cue/cue-types.ts`, `src/main/cue/cue-engine.ts` |
| Add Cue template variable | `src/shared/templateVariables.ts`, `src/main/cue/cue-executor.ts` |
| Modify Cue modal | `src/renderer/components/CueModal.tsx` |
| Configure Cue engine | `src/main/cue/cue-engine.ts`, `src/main/ipc/handlers/cue.ts` |

---

Expand Down
Loading