@maestrofrontier/frontier 1.4.4 → 1.5.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/.agents/plugins/marketplace.json +21 -0
- package/.codex-plugin/plugin.json +29 -0
- package/.cursorrules +197 -194
- package/AGENTS.md +214 -214
- package/CLAUDE.md +29 -29
- package/README.md +368 -278
- package/bin/maestro.cjs +75 -75
- package/commands/compress.md +36 -36
- package/commands/frontier.md +124 -124
- package/commands/terse.md +23 -23
- package/docs/codex.md +167 -98
- package/docs/orchestration.md +168 -168
- package/frontier/cli.cjs +279 -248
- package/frontier/config.cjs +468 -441
- package/frontier/dispatch.cjs +267 -255
- package/frontier/judge.cjs +92 -92
- package/frontier/run.cjs +201 -148
- package/frontier/schema.cjs +112 -112
- package/frontier/semaphore.cjs +49 -49
- package/frontier/synthesize.cjs +79 -79
- package/hooks/frontier-autorun.cjs +127 -124
- package/hooks/hooks.json +103 -103
- package/hooks/maestro-doctrine-guard.cjs +81 -81
- package/hooks/maestro-gate-reminder.cjs +22 -7
- package/hooks/maestro-gate-telemetry.cjs +79 -77
- package/hooks/maestro-phase-scope.cjs +118 -118
- package/hooks/maestro-statusline-sync.cjs +152 -152
- package/hooks/maestro-subagent-guard.cjs +148 -148
- package/hooks/maestro-terse-mode.cjs +189 -189
- package/hooks/maestro-toolbudget-advisory.cjs +127 -127
- package/integrations/README.md +111 -94
- package/integrations/cline/skills/frontier/SKILL.md +75 -75
- package/integrations/codex/prompts/frontier.md +70 -66
- package/integrations/codex/prompts/update.md +39 -36
- package/integrations/codex/skills/maestro-frontier/SKILL.md +122 -0
- package/integrations/codex/skills/{settings → maestro-settings}/SKILL.md +55 -46
- package/integrations/codex/skills/{terse → maestro-terse}/SKILL.md +58 -49
- package/integrations/codex/skills/maestro-update/SKILL.md +31 -0
- package/integrations/cursor/commands/frontier.md +63 -63
- package/integrations/cursor/commands/update.md +34 -34
- package/integrations/gemini/commands/frontier.toml +76 -76
- package/integrations/windsurf/workflows/frontier.md +70 -70
- package/package.json +58 -55
- package/scripts/install.cjs +1014 -605
- package/settings/cli.cjs +140 -140
- package/settings/config.cjs +309 -309
- package/skills/maestro-frontier/SKILL.md +122 -0
- package/skills/maestro-settings/SKILL.md +55 -0
- package/skills/maestro-terse/SKILL.md +58 -0
- package/skills/maestro-update/SKILL.md +31 -0
- package/skills/terse/SKILL.md +74 -0
- package/integrations/codex/skills/frontier/SKILL.md +0 -91
- package/integrations/codex/skills/update/SKILL.md +0 -29
|
@@ -0,0 +1,122 @@
|
|
|
1
|
+
---
|
|
2
|
+
name: maestro-frontier
|
|
3
|
+
description: Maestro Frontier local multi-CLI fusion engine - arm, disarm, inspect, or debug-run the panel
|
|
4
|
+
---
|
|
5
|
+
|
|
6
|
+
Drive the **Maestro Frontier** engine: a zero-dependency local multi-CLI fusion
|
|
7
|
+
engine where a parallel panel of local CLIs feeds a judge model's analysis and a
|
|
8
|
+
grounded synthesis.
|
|
9
|
+
|
|
10
|
+
When the Maestro Codex plugin hook is installed, enabled, and trusted, arming a
|
|
11
|
+
non-`off` mode makes normal later Codex prompts auto-run through Frontier until
|
|
12
|
+
you turn it off. Users should not need to type `maestro frontier run "<prompt>"`
|
|
13
|
+
for normal use.
|
|
14
|
+
|
|
15
|
+
Map the user's request to one engine CLI call and run it from the repo root.
|
|
16
|
+
Do not edit the engine's state file by hand.
|
|
17
|
+
|
|
18
|
+
## Command launcher
|
|
19
|
+
|
|
20
|
+
Use `maestro` when it is on `PATH`. If it is not, and this skill is loaded
|
|
21
|
+
from the Maestro Codex plugin, locate the plugin root by walking up from this
|
|
22
|
+
`SKILL.md` until `.codex-plugin/plugin.json` is present, then run:
|
|
23
|
+
|
|
24
|
+
```bash
|
|
25
|
+
node "<maestro-plugin-root>/bin/maestro.cjs" frontier ...
|
|
26
|
+
```
|
|
27
|
+
|
|
28
|
+
In the examples below, `maestro frontier ...` means either the bare command or
|
|
29
|
+
that plugin-root `node .../bin/maestro.cjs frontier ...` form.
|
|
30
|
+
|
|
31
|
+
## 1. Switch mode
|
|
32
|
+
|
|
33
|
+
Project/workspace scope is the default recommendation. Use `--scope
|
|
34
|
+
codex-project` from the repository root; the CLI expands it to the same
|
|
35
|
+
`codex-<8hex>` workspace scope the Codex plugin hook resolves from
|
|
36
|
+
`PLUGIN_ROOT` / `PLUGIN_DATA`. Default mode is `off`.
|
|
37
|
+
|
|
38
|
+
```bash
|
|
39
|
+
maestro frontier mode off --scope codex-project
|
|
40
|
+
maestro frontier mode single --model <model> --scope codex-project
|
|
41
|
+
maestro frontier mode fusion --preset chatgpt-duo --scope codex-project
|
|
42
|
+
maestro frontier mode fusion --preset frontier-trio --judge chatgpt --synth chatgpt --scope codex-project
|
|
43
|
+
maestro frontier mode fusion --preset custom --models <a,b,c> --scope codex-project
|
|
44
|
+
```
|
|
45
|
+
|
|
46
|
+
Models: `opus` (Claude Opus 4.8, needs `claude`), `gpt-5.5` (needs `codex`),
|
|
47
|
+
`gemini` (needs `gemini`). Presets: `opus-duo`, `opus-gpt`, `gpt-duo`,
|
|
48
|
+
`frontier-trio`, `custom`. Friendly aliases are accepted: `chatgpt` maps to
|
|
49
|
+
`gpt-5.5`, and `chatgpt-duo` maps to `gpt-duo`.
|
|
50
|
+
|
|
51
|
+
Judge + synth default to Opus except for presets with explicit stage defaults.
|
|
52
|
+
Override them for mixed panels with `--judge <model>` and `--synth <model>`;
|
|
53
|
+
for example, `--judge chatgpt --synth chatgpt`.
|
|
54
|
+
|
|
55
|
+
## 2. Show current mode/preset
|
|
56
|
+
|
|
57
|
+
```bash
|
|
58
|
+
maestro frontier status --scope codex-project
|
|
59
|
+
```
|
|
60
|
+
|
|
61
|
+
If you intentionally want one shared Codex state across unrelated repos, choose
|
|
62
|
+
an explicit global name such as `--scope codex-global`. Do not use global scope
|
|
63
|
+
unless that cross-repo behavior is what you want.
|
|
64
|
+
|
|
65
|
+
## 3. Normal use after arming
|
|
66
|
+
|
|
67
|
+
After mode is non-`off`, type ordinary Codex prompts. The trusted Codex hook
|
|
68
|
+
auto-runs Frontier and injects the synthesized answer as context for the live
|
|
69
|
+
reply. Turn it off with:
|
|
70
|
+
|
|
71
|
+
```bash
|
|
72
|
+
maestro frontier mode off --scope codex-project
|
|
73
|
+
```
|
|
74
|
+
|
|
75
|
+
## 4. Advanced/debug one-off run
|
|
76
|
+
|
|
77
|
+
Manual one-off execution remains available for debugging:
|
|
78
|
+
|
|
79
|
+
```bash
|
|
80
|
+
maestro frontier run "<prompt>" --scope codex-project
|
|
81
|
+
```
|
|
82
|
+
|
|
83
|
+
- `off`: prints a notice, spawns nothing.
|
|
84
|
+
- `single`: dispatches the one selected CLI, prints its answer.
|
|
85
|
+
- `fusion`: runs the panel in parallel, then judge, then synthesizer; prints
|
|
86
|
+
the final answer (a one-line run meta goes to stderr). Report stdout verbatim.
|
|
87
|
+
|
|
88
|
+
On error the engine prints `ERROR [<reason>]: <detail>` to stderr and exits
|
|
89
|
+
non-zero; relay the reason.
|
|
90
|
+
|
|
91
|
+
## Indicator instruction
|
|
92
|
+
|
|
93
|
+
<!-- INDICATOR INSTRUCTION - apply every turn while this skill is active -->
|
|
94
|
+
|
|
95
|
+
Before composing your first reply each turn, run:
|
|
96
|
+
|
|
97
|
+
```bash
|
|
98
|
+
maestro frontier status --scope codex-project
|
|
99
|
+
```
|
|
100
|
+
|
|
101
|
+
Parse the returned JSON `mode` field:
|
|
102
|
+
|
|
103
|
+
- If `mode` is not `off`, make the **first line** of your reply exactly:
|
|
104
|
+
`Maestro Frontier ON (<label>)`
|
|
105
|
+
where `<label>` is formed as follows:
|
|
106
|
+
- single mode -> `single - <model>` (e.g. `single - opus`)
|
|
107
|
+
- fusion mode -> `fusion - <preset>` (e.g. `fusion - frontier-trio`);
|
|
108
|
+
for a custom preset use `fusion - custom (<model1>, <model2>, ...)`
|
|
109
|
+
- If `mode` is `off`, output no indicator line.
|
|
110
|
+
|
|
111
|
+
<!-- END INDICATOR INSTRUCTION -->
|
|
112
|
+
|
|
113
|
+
## Notes
|
|
114
|
+
|
|
115
|
+
- Real `single`/`fusion` runs spawn local CLIs and cost tokens; `off` is free.
|
|
116
|
+
- The autorun hook no-ops when `FUSION_DEPTH >= 1`, so child `codex`, `claude`,
|
|
117
|
+
and `gemini` panel processes do not recursively run Frontier.
|
|
118
|
+
- Each model's CLI must be on `PATH`, or point at a specific build with
|
|
119
|
+
`MAESTRO_CLAUDE_BIN` / `MAESTRO_CODEX_BIN` / `MAESTRO_GEMINI_BIN`.
|
|
120
|
+
- Requires `node` on `PATH`. The bare `maestro` command is optional when the
|
|
121
|
+
skill is loaded from the Maestro Codex plugin; use the plugin-root launcher
|
|
122
|
+
above.
|
|
@@ -1,46 +1,55 @@
|
|
|
1
|
-
---
|
|
2
|
-
name: settings
|
|
3
|
-
description: View and change Maestro toggles (terse, frontier, context-bar) via the settings CLI
|
|
4
|
-
---
|
|
5
|
-
|
|
6
|
-
View or change **Maestro settings** for this project. The settings CLI manages
|
|
7
|
-
the three primary toggles: `terse`, `frontier`, and `context-bar`.
|
|
8
|
-
|
|
9
|
-
When the user invokes this skill, run the settings CLI from the repo root.
|
|
10
|
-
Do not edit settings files by hand.
|
|
11
|
-
|
|
12
|
-
##
|
|
13
|
-
|
|
14
|
-
|
|
15
|
-
|
|
16
|
-
|
|
17
|
-
|
|
18
|
-
|
|
19
|
-
|
|
20
|
-
|
|
21
|
-
|
|
22
|
-
|
|
23
|
-
|
|
24
|
-
|
|
25
|
-
```bash
|
|
26
|
-
node settings/cli.cjs
|
|
27
|
-
```
|
|
28
|
-
|
|
29
|
-
|
|
30
|
-
|
|
31
|
-
|
|
32
|
-
|
|
33
|
-
|
|
34
|
-
|
|
35
|
-
```
|
|
36
|
-
|
|
37
|
-
|
|
38
|
-
|
|
39
|
-
|
|
40
|
-
|
|
41
|
-
|
|
42
|
-
|
|
43
|
-
|
|
44
|
-
|
|
45
|
-
|
|
46
|
-
|
|
1
|
+
---
|
|
2
|
+
name: maestro-settings
|
|
3
|
+
description: View and change Maestro toggles (terse, frontier, context-bar) via the settings CLI
|
|
4
|
+
---
|
|
5
|
+
|
|
6
|
+
View or change **Maestro settings** for this project. The settings CLI manages
|
|
7
|
+
the three primary toggles: `terse`, `frontier`, and `context-bar`.
|
|
8
|
+
|
|
9
|
+
When the user invokes this skill, run the settings CLI from the repo root.
|
|
10
|
+
Do not edit settings files by hand.
|
|
11
|
+
|
|
12
|
+
## Command launcher
|
|
13
|
+
|
|
14
|
+
Use `node settings/cli.cjs` when Maestro is installed in the project root. If
|
|
15
|
+
that file is not present and this skill is loaded from the Maestro Codex
|
|
16
|
+
plugin, locate the plugin root by walking up from this `SKILL.md` until
|
|
17
|
+
`.codex-plugin/plugin.json` is present, then run:
|
|
18
|
+
|
|
19
|
+
```bash
|
|
20
|
+
node "<maestro-plugin-root>/settings/cli.cjs" ...
|
|
21
|
+
```
|
|
22
|
+
|
|
23
|
+
## Discover available commands
|
|
24
|
+
|
|
25
|
+
```bash
|
|
26
|
+
node settings/cli.cjs --help
|
|
27
|
+
```
|
|
28
|
+
|
|
29
|
+
If `settings/cli.cjs` is not present, use the plugin-root launcher above.
|
|
30
|
+
|
|
31
|
+
## Common operations
|
|
32
|
+
|
|
33
|
+
List current settings:
|
|
34
|
+
|
|
35
|
+
```bash
|
|
36
|
+
node settings/cli.cjs
|
|
37
|
+
```
|
|
38
|
+
|
|
39
|
+
Set a toggle:
|
|
40
|
+
|
|
41
|
+
```bash
|
|
42
|
+
node settings/cli.cjs terse <off|lite|full|ultra>
|
|
43
|
+
node settings/cli.cjs frontier <off|single|fusion>
|
|
44
|
+
node settings/cli.cjs context-bar <on|off>
|
|
45
|
+
```
|
|
46
|
+
|
|
47
|
+
If a subcommand name or argument differs from the above, follow the usage
|
|
48
|
+
printed by `--help` — do not guess flags.
|
|
49
|
+
|
|
50
|
+
## Notes
|
|
51
|
+
|
|
52
|
+
- Changes persist in Maestro's settings store and apply to subsequent agent
|
|
53
|
+
turns in this project.
|
|
54
|
+
- Requires `node` on `PATH`. A project-local Maestro install is optional when
|
|
55
|
+
the skill is loaded from the Maestro Codex plugin.
|
|
@@ -1,49 +1,58 @@
|
|
|
1
|
-
---
|
|
2
|
-
name: terse
|
|
3
|
-
description: Toggle Maestro terse output level (lite, full, ultra, off) via the settings CLI
|
|
4
|
-
---
|
|
5
|
-
|
|
6
|
-
Toggle the **Maestro terse** output level for this environment. Terse mode
|
|
7
|
-
condenses agent replies; levels range from `off` (default verbosity) through
|
|
8
|
-
`lite`, `full`, and `ultra` (most compressed).
|
|
9
|
-
|
|
10
|
-
When the user invokes this skill, run the settings CLI to read or change the
|
|
11
|
-
terse level. Do not edit settings files by hand.
|
|
12
|
-
|
|
13
|
-
##
|
|
14
|
-
|
|
15
|
-
|
|
16
|
-
|
|
17
|
-
|
|
18
|
-
|
|
19
|
-
|
|
20
|
-
|
|
21
|
-
|
|
22
|
-
|
|
23
|
-
|
|
24
|
-
|
|
25
|
-
|
|
26
|
-
|
|
27
|
-
|
|
28
|
-
|
|
29
|
-
|
|
30
|
-
|
|
31
|
-
|
|
32
|
-
|
|
33
|
-
|
|
34
|
-
|
|
35
|
-
|
|
36
|
-
node settings/cli.cjs terse
|
|
37
|
-
|
|
38
|
-
|
|
39
|
-
|
|
40
|
-
|
|
41
|
-
|
|
42
|
-
|
|
43
|
-
|
|
44
|
-
|
|
45
|
-
|
|
46
|
-
|
|
47
|
-
|
|
48
|
-
|
|
49
|
-
|
|
1
|
+
---
|
|
2
|
+
name: maestro-terse
|
|
3
|
+
description: Toggle Maestro terse output level (lite, full, ultra, off) via the settings CLI
|
|
4
|
+
---
|
|
5
|
+
|
|
6
|
+
Toggle the **Maestro terse** output level for this environment. Terse mode
|
|
7
|
+
condenses agent replies; levels range from `off` (default verbosity) through
|
|
8
|
+
`lite`, `full`, and `ultra` (most compressed).
|
|
9
|
+
|
|
10
|
+
When the user invokes this skill, run the settings CLI to read or change the
|
|
11
|
+
terse level. Do not edit settings files by hand.
|
|
12
|
+
|
|
13
|
+
## Command launcher
|
|
14
|
+
|
|
15
|
+
Use `node settings/cli.cjs` when Maestro is installed in the project root. If
|
|
16
|
+
that file is not present and this skill is loaded from the Maestro Codex
|
|
17
|
+
plugin, locate the plugin root by walking up from this `SKILL.md` until
|
|
18
|
+
`.codex-plugin/plugin.json` is present, then run:
|
|
19
|
+
|
|
20
|
+
```bash
|
|
21
|
+
node "<maestro-plugin-root>/settings/cli.cjs" ...
|
|
22
|
+
```
|
|
23
|
+
|
|
24
|
+
## Check current terse level
|
|
25
|
+
|
|
26
|
+
```bash
|
|
27
|
+
node settings/cli.cjs --help
|
|
28
|
+
```
|
|
29
|
+
|
|
30
|
+
Consult the help output for the exact read subcommand, then run it. If
|
|
31
|
+
`settings/cli.cjs` is not present, use the plugin-root launcher above.
|
|
32
|
+
|
|
33
|
+
## Set terse level
|
|
34
|
+
|
|
35
|
+
```bash
|
|
36
|
+
node settings/cli.cjs terse <level>
|
|
37
|
+
```
|
|
38
|
+
|
|
39
|
+
Valid levels: `off` | `lite` | `full` | `ultra`
|
|
40
|
+
|
|
41
|
+
Examples:
|
|
42
|
+
|
|
43
|
+
```bash
|
|
44
|
+
node settings/cli.cjs terse off
|
|
45
|
+
node settings/cli.cjs terse lite
|
|
46
|
+
node settings/cli.cjs terse full
|
|
47
|
+
node settings/cli.cjs terse ultra
|
|
48
|
+
```
|
|
49
|
+
|
|
50
|
+
If the CLI rejects an argument or the subcommand name differs, run
|
|
51
|
+
`node settings/cli.cjs --help` first and follow the printed usage.
|
|
52
|
+
|
|
53
|
+
## Notes
|
|
54
|
+
|
|
55
|
+
- The change persists in Maestro's settings store; it applies to subsequent
|
|
56
|
+
agent turns in this project.
|
|
57
|
+
- Requires `node` on `PATH`. A project-local Maestro install is optional when
|
|
58
|
+
the skill is loaded from the Maestro Codex plugin.
|
|
@@ -0,0 +1,31 @@
|
|
|
1
|
+
---
|
|
2
|
+
name: maestro-update
|
|
3
|
+
description: Update Maestro to the latest marketplace version for Codex
|
|
4
|
+
---
|
|
5
|
+
|
|
6
|
+
Update **Maestro** to the latest Codex marketplace code. This refreshes the
|
|
7
|
+
configured Git marketplace and reinstalls the Maestro plugin from it.
|
|
8
|
+
|
|
9
|
+
When the user invokes this skill, run:
|
|
10
|
+
|
|
11
|
+
```bash
|
|
12
|
+
codex plugin marketplace upgrade maestro
|
|
13
|
+
codex plugin add maestro@maestro
|
|
14
|
+
```
|
|
15
|
+
|
|
16
|
+
The update is idempotent. It will:
|
|
17
|
+
|
|
18
|
+
- Pull the latest Maestro source from the repository.
|
|
19
|
+
- Refresh the installed Maestro plugin cache.
|
|
20
|
+
- Refresh bundled Codex skills and hooks exposed by the plugin.
|
|
21
|
+
- Leave project-local configuration (state files, secrets) untouched.
|
|
22
|
+
|
|
23
|
+
## Notes
|
|
24
|
+
|
|
25
|
+
- Requires the Codex CLI on `PATH`.
|
|
26
|
+
- After reinstalling, restart the Codex session or open a new thread so updated
|
|
27
|
+
skills and hooks take effect.
|
|
28
|
+
- If the marketplace is not configured yet, run
|
|
29
|
+
`codex plugin marketplace add mbanderas/maestro` first.
|
|
30
|
+
- Portable/manual installs can still be refreshed with
|
|
31
|
+
`npx github:mbanderas/maestro install --target codex` from the project root.
|
|
@@ -1,63 +1,63 @@
|
|
|
1
|
-
Maestro Frontier — drive the local multi-CLI fusion engine (switch mode, or run a prompt through the panel).
|
|
2
|
-
|
|
3
|
-
Drive the **Maestro Frontier** engine — a zero-dependency local multi-CLI fusion
|
|
4
|
-
engine (a parallel panel of local CLIs → a judge model's analysis → a grounded
|
|
5
|
-
synthesis). It is the same engine the Claude Code plugin ships; here it runs through
|
|
6
|
-
the `maestro` CLI, installed into this repo during setup.
|
|
7
|
-
|
|
8
|
-
**This is a typing shortcut, not the Claude Code plugin.** Cursor has no
|
|
9
|
-
prompt hook, so arming a mode does **not** auto-run the engine on later prompts —
|
|
10
|
-
it only persists the mode. To actually fuse a prompt, invoke `run` explicitly
|
|
11
|
-
(step 3).
|
|
12
|
-
|
|
13
|
-
Requested action: `$ARGUMENTS`
|
|
14
|
-
|
|
15
|
-
Map it to one engine CLI call and run it from the repo root. Do not edit
|
|
16
|
-
the engine's state file by hand.
|
|
17
|
-
|
|
18
|
-
1. Switch mode (persists to `~/.config/maestro/frontier-state.cursor.json`; default `off`).
|
|
19
|
-
`--scope cursor` keeps Cursor's armed mode independent from Claude Code and Codex on the same machine:
|
|
20
|
-
|
|
21
|
-
```bash
|
|
22
|
-
maestro frontier mode off --scope cursor
|
|
23
|
-
maestro frontier mode single --model <model> --scope cursor
|
|
24
|
-
maestro frontier mode fusion --preset <preset> --scope cursor
|
|
25
|
-
maestro frontier mode fusion --preset custom --models <a,b,c> --scope cursor
|
|
26
|
-
maestro frontier mode fusion --preset <preset> --judge <model> --synth <model> --scope cursor
|
|
27
|
-
```
|
|
28
|
-
|
|
29
|
-
Models: `opus` (Claude Opus 4.8, needs `claude`), `gpt-5.5` (needs `codex`),
|
|
30
|
-
`gemini` (needs `gemini`). Presets: `opus-duo`, `opus-gpt`, `gpt-duo`,
|
|
31
|
-
`frontier-trio`, `custom`. Judge + synth default to Opus; `--judge`/`--synth`
|
|
32
|
-
override for any preset (e.g. `--judge opus --synth gpt-5.5`). `gpt-duo` runs
|
|
33
|
-
judge + synth on GPT-5.5 — a Codex-only fusion that needs no `claude`.
|
|
34
|
-
|
|
35
|
-
2. Show the current mode/preset:
|
|
36
|
-
|
|
37
|
-
```bash
|
|
38
|
-
maestro frontier status --scope cursor
|
|
39
|
-
```
|
|
40
|
-
|
|
41
|
-
3. Run a prompt through the current mode — **this is the action that actually
|
|
42
|
-
fuses**, since nothing auto-runs here. Set a mode first (step 1), then:
|
|
43
|
-
|
|
44
|
-
```bash
|
|
45
|
-
maestro frontier run "<prompt>" --scope cursor
|
|
46
|
-
```
|
|
47
|
-
|
|
48
|
-
- `off`: prints a notice, spawns nothing.
|
|
49
|
-
- `single`: dispatches the one selected CLI, prints its answer.
|
|
50
|
-
- `fusion`: runs the panel in parallel → judge → synthesizer; prints the final
|
|
51
|
-
answer (a one-line run meta goes to stderr). Report stdout verbatim.
|
|
52
|
-
|
|
53
|
-
On error the engine prints `ERROR [<reason>]: <detail>` to stderr and exits
|
|
54
|
-
non-zero — relay the reason.
|
|
55
|
-
|
|
56
|
-
Notes:
|
|
57
|
-
|
|
58
|
-
- Real `single`/`fusion` runs spawn local CLIs and cost tokens; use small prompts.
|
|
59
|
-
`off` is free.
|
|
60
|
-
- Each model's CLI must be on `PATH`, or point at a specific build with
|
|
61
|
-
`MAESTRO_CLAUDE_BIN` / `MAESTRO_CODEX_BIN` / `MAESTRO_GEMINI_BIN`.
|
|
62
|
-
- Requires `maestro` on `PATH` (installed during Maestro setup). If it is missing,
|
|
63
|
-
install Maestro first.
|
|
1
|
+
Maestro Frontier — drive the local multi-CLI fusion engine (switch mode, or run a prompt through the panel).
|
|
2
|
+
|
|
3
|
+
Drive the **Maestro Frontier** engine — a zero-dependency local multi-CLI fusion
|
|
4
|
+
engine (a parallel panel of local CLIs → a judge model's analysis → a grounded
|
|
5
|
+
synthesis). It is the same engine the Claude Code plugin ships; here it runs through
|
|
6
|
+
the `maestro` CLI, installed into this repo during setup.
|
|
7
|
+
|
|
8
|
+
**This is a typing shortcut, not the Claude Code plugin.** Cursor has no
|
|
9
|
+
prompt hook, so arming a mode does **not** auto-run the engine on later prompts —
|
|
10
|
+
it only persists the mode. To actually fuse a prompt, invoke `run` explicitly
|
|
11
|
+
(step 3).
|
|
12
|
+
|
|
13
|
+
Requested action: `$ARGUMENTS`
|
|
14
|
+
|
|
15
|
+
Map it to one engine CLI call and run it from the repo root. Do not edit
|
|
16
|
+
the engine's state file by hand.
|
|
17
|
+
|
|
18
|
+
1. Switch mode (persists to `~/.config/maestro/frontier-state.cursor.json`; default `off`).
|
|
19
|
+
`--scope cursor` keeps Cursor's armed mode independent from Claude Code and Codex on the same machine:
|
|
20
|
+
|
|
21
|
+
```bash
|
|
22
|
+
maestro frontier mode off --scope cursor
|
|
23
|
+
maestro frontier mode single --model <model> --scope cursor
|
|
24
|
+
maestro frontier mode fusion --preset <preset> --scope cursor
|
|
25
|
+
maestro frontier mode fusion --preset custom --models <a,b,c> --scope cursor
|
|
26
|
+
maestro frontier mode fusion --preset <preset> --judge <model> --synth <model> --scope cursor
|
|
27
|
+
```
|
|
28
|
+
|
|
29
|
+
Models: `opus` (Claude Opus 4.8, needs `claude`), `gpt-5.5` (needs `codex`),
|
|
30
|
+
`gemini` (needs `gemini`). Presets: `opus-duo`, `opus-gpt`, `gpt-duo`,
|
|
31
|
+
`frontier-trio`, `custom`. Judge + synth default to Opus; `--judge`/`--synth`
|
|
32
|
+
override for any preset (e.g. `--judge opus --synth gpt-5.5`). `gpt-duo` runs
|
|
33
|
+
judge + synth on GPT-5.5 — a Codex-only fusion that needs no `claude`.
|
|
34
|
+
|
|
35
|
+
2. Show the current mode/preset:
|
|
36
|
+
|
|
37
|
+
```bash
|
|
38
|
+
maestro frontier status --scope cursor
|
|
39
|
+
```
|
|
40
|
+
|
|
41
|
+
3. Run a prompt through the current mode — **this is the action that actually
|
|
42
|
+
fuses**, since nothing auto-runs here. Set a mode first (step 1), then:
|
|
43
|
+
|
|
44
|
+
```bash
|
|
45
|
+
maestro frontier run "<prompt>" --scope cursor
|
|
46
|
+
```
|
|
47
|
+
|
|
48
|
+
- `off`: prints a notice, spawns nothing.
|
|
49
|
+
- `single`: dispatches the one selected CLI, prints its answer.
|
|
50
|
+
- `fusion`: runs the panel in parallel → judge → synthesizer; prints the final
|
|
51
|
+
answer (a one-line run meta goes to stderr). Report stdout verbatim.
|
|
52
|
+
|
|
53
|
+
On error the engine prints `ERROR [<reason>]: <detail>` to stderr and exits
|
|
54
|
+
non-zero — relay the reason.
|
|
55
|
+
|
|
56
|
+
Notes:
|
|
57
|
+
|
|
58
|
+
- Real `single`/`fusion` runs spawn local CLIs and cost tokens; use small prompts.
|
|
59
|
+
`off` is free.
|
|
60
|
+
- Each model's CLI must be on `PATH`, or point at a specific build with
|
|
61
|
+
`MAESTRO_CLAUDE_BIN` / `MAESTRO_CODEX_BIN` / `MAESTRO_GEMINI_BIN`.
|
|
62
|
+
- Requires `maestro` on `PATH` (installed during Maestro setup). If it is missing,
|
|
63
|
+
install Maestro first.
|
|
@@ -1,34 +1,34 @@
|
|
|
1
|
-
Maestro update — refresh the portable Maestro files in this repository to the latest committed code.
|
|
2
|
-
|
|
3
|
-
Refresh the Maestro portable install in this repository to the latest committed
|
|
4
|
-
code from <https://github.com/mbanderas/maestro>.
|
|
5
|
-
|
|
6
|
-
Maestro has no version pin for portable installs — fetching the latest `main`
|
|
7
|
-
always resolves the newest committed code.
|
|
8
|
-
|
|
9
|
-
**If this repo contains a git clone of the Maestro source**, run:
|
|
10
|
-
|
|
11
|
-
```bash
|
|
12
|
-
git -C <path-to-maestro-clone> pull
|
|
13
|
-
```
|
|
14
|
-
|
|
15
|
-
Then re-copy `frontier/` and any integration command files you use into this project.
|
|
16
|
-
|
|
17
|
-
**If you downloaded and copied files manually** (no clone), re-fetch and re-copy
|
|
18
|
-
from latest `main`:
|
|
19
|
-
|
|
20
|
-
```bash
|
|
21
|
-
curl -O https://raw.githubusercontent.com/mbanderas/maestro/main/AGENTS.md
|
|
22
|
-
curl -O https://raw.githubusercontent.com/mbanderas/maestro/main/.cursorrules
|
|
23
|
-
curl -O https://raw.githubusercontent.com/mbanderas/maestro/main/frontier/cli.cjs
|
|
24
|
-
curl -O https://raw.githubusercontent.com/mbanderas/maestro/main/bin/maestro.cjs
|
|
25
|
-
# Re-copy the Cursor command files you installed:
|
|
26
|
-
# integrations/cursor/commands/frontier.md -> .cursor/commands/frontier.md
|
|
27
|
-
# integrations/cursor/commands/update.md -> .cursor/commands/update.md
|
|
28
|
-
```
|
|
29
|
-
|
|
30
|
-
After updating, run `node bin/maestro.cjs frontier status` to confirm the engine is present.
|
|
31
|
-
|
|
32
|
-
Report what was refreshed and note any errors.
|
|
33
|
-
|
|
34
|
-
Do not edit any other files.
|
|
1
|
+
Maestro update — refresh the portable Maestro files in this repository to the latest committed code.
|
|
2
|
+
|
|
3
|
+
Refresh the Maestro portable install in this repository to the latest committed
|
|
4
|
+
code from <https://github.com/mbanderas/maestro>.
|
|
5
|
+
|
|
6
|
+
Maestro has no version pin for portable installs — fetching the latest `main`
|
|
7
|
+
always resolves the newest committed code.
|
|
8
|
+
|
|
9
|
+
**If this repo contains a git clone of the Maestro source**, run:
|
|
10
|
+
|
|
11
|
+
```bash
|
|
12
|
+
git -C <path-to-maestro-clone> pull
|
|
13
|
+
```
|
|
14
|
+
|
|
15
|
+
Then re-copy `frontier/` and any integration command files you use into this project.
|
|
16
|
+
|
|
17
|
+
**If you downloaded and copied files manually** (no clone), re-fetch and re-copy
|
|
18
|
+
from latest `main`:
|
|
19
|
+
|
|
20
|
+
```bash
|
|
21
|
+
curl -O https://raw.githubusercontent.com/mbanderas/maestro/main/AGENTS.md
|
|
22
|
+
curl -O https://raw.githubusercontent.com/mbanderas/maestro/main/.cursorrules
|
|
23
|
+
curl -O https://raw.githubusercontent.com/mbanderas/maestro/main/frontier/cli.cjs
|
|
24
|
+
curl -O https://raw.githubusercontent.com/mbanderas/maestro/main/bin/maestro.cjs
|
|
25
|
+
# Re-copy the Cursor command files you installed:
|
|
26
|
+
# integrations/cursor/commands/frontier.md -> .cursor/commands/frontier.md
|
|
27
|
+
# integrations/cursor/commands/update.md -> .cursor/commands/update.md
|
|
28
|
+
```
|
|
29
|
+
|
|
30
|
+
After updating, run `node bin/maestro.cjs frontier status` to confirm the engine is present.
|
|
31
|
+
|
|
32
|
+
Report what was refreshed and note any errors.
|
|
33
|
+
|
|
34
|
+
Do not edit any other files.
|