@evalops/maestro 0.10.47 → 0.10.48
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/README.md +4 -0
- package/dist/audit/logger.d.ts +1 -1
- package/dist/cli/args.d.ts.map +1 -1
- package/dist/cli/args.js +2 -0
- package/dist/cli/args.js.map +1 -1
- package/dist/cli/commands/update.d.ts +12 -0
- package/dist/cli/commands/update.d.ts.map +1 -0
- package/dist/cli/commands/update.js +148 -0
- package/dist/cli/commands/update.js.map +1 -0
- package/dist/cli/help.d.ts.map +1 -1
- package/dist/cli/help.js +4 -0
- package/dist/cli/help.js.map +1 -1
- package/dist/cli-tui/commands/command-catalog.js +2 -2
- package/dist/cli-tui/commands/command-catalog.js.map +1 -1
- package/dist/cli-tui/commands/subcommands/ui-commands.d.ts +1 -1
- package/dist/cli-tui/commands/subcommands/ui-commands.js +2 -2
- package/dist/cli-tui/commands/subcommands/ui-commands.js.map +1 -1
- package/dist/cli-tui/footer.d.ts.map +1 -1
- package/dist/cli-tui/footer.js +1 -1
- package/dist/cli-tui/footer.js.map +1 -1
- package/dist/cli-tui/tui-renderer/ui-state-controller.d.ts +1 -1
- package/dist/cli-tui/tui-renderer/ui-state-controller.d.ts.map +1 -1
- package/dist/cli-tui/tui-renderer/ui-state-controller.js +5 -11
- package/dist/cli-tui/tui-renderer/ui-state-controller.js.map +1 -1
- package/dist/cli-tui/tui-renderer.d.ts.map +1 -1
- package/dist/cli-tui/tui-renderer.js +1 -1
- package/dist/cli-tui/tui-renderer.js.map +1 -1
- package/dist/cli-tui/ui-state.js +1 -1
- package/dist/cli-tui/ui-state.js.map +1 -1
- package/dist/cli-tui/utils/footer-utils.d.ts +1 -1
- package/dist/cli-tui/utils/footer-utils.d.ts.map +1 -1
- package/dist/cli-tui/utils/footer-utils.js.map +1 -1
- package/dist/cli.js +4072 -3450
- package/dist/cli.js.map +1 -1
- package/dist/codex/app-server-client.d.ts +8 -0
- package/dist/codex/app-server-client.d.ts.map +1 -1
- package/dist/codex/app-server-client.js +49 -3
- package/dist/codex/app-server-client.js.map +1 -1
- package/dist/main.d.ts.map +1 -1
- package/dist/main.js +5 -0
- package/dist/main.js.map +1 -1
- package/dist/models/config-loader.d.ts +13 -13
- package/dist/node_modules/@evalops/contracts/dist/scenario.d.ts +2 -0
- package/dist/node_modules/@evalops/contracts/dist/scenario.d.ts.map +1 -1
- package/dist/node_modules/@evalops/contracts/dist/scenario.js.map +1 -1
- package/dist/node_modules/@evalops/contracts/package.json +1 -1
- package/dist/node_modules/@evalops/tui/package.json +1 -1
- package/dist/platform/operating-plane-client.d.ts +3 -3
- package/dist/platform/operating-plane-client.d.ts.map +1 -1
- package/dist/platform/operating-plane-client.js.map +1 -1
- package/dist/platform/operating-plane-summary.js +3 -6
- package/dist/platform/operating-plane-summary.js.map +1 -1
- package/dist/server/agent-trajectory-scenarios.d.ts.map +1 -1
- package/dist/server/agent-trajectory-scenarios.js +29 -6
- package/dist/server/agent-trajectory-scenarios.js.map +1 -1
- package/dist/server/handlers/ui.d.ts.map +1 -1
- package/dist/server/handlers/ui.js +5 -5
- package/dist/server/handlers/ui.js.map +1 -1
- package/dist/server/stores/ui-store.d.ts.map +1 -1
- package/dist/server/stores/ui-store.js +8 -1
- package/dist/server/stores/ui-store.js.map +1 -1
- package/dist/tools/background/task-types.d.ts +1 -1
- package/dist/update/check.d.ts +2 -0
- package/dist/update/check.d.ts.map +1 -1
- package/dist/update/check.js +100 -41
- package/dist/update/check.js.map +1 -1
- package/dist/update/startup-refresh.d.ts +56 -0
- package/dist/update/startup-refresh.d.ts.map +1 -0
- package/dist/update/startup-refresh.js +321 -0
- package/dist/update/startup-refresh.js.map +1 -0
- package/dist/version.json +2 -2
- package/package.json +297 -296
package/README.md
CHANGED
|
@@ -56,6 +56,10 @@ nix run github:evalops/maestro
|
|
|
56
56
|
maestro codex login
|
|
57
57
|
```
|
|
58
58
|
|
|
59
|
+
`maestro codex login` uses Codex app-server auth. Published installs use the
|
|
60
|
+
packaged `@openai/codex` app-server and source checkouts fall back to a `codex`
|
|
61
|
+
binary on `PATH`, so an existing `codex login` is reused automatically.
|
|
62
|
+
|
|
59
63
|
Bare `maestro` defaults to `openai-codex/gpt-5.5`. Maestro also supports OpenAI API keys, Anthropic, Google, OpenRouter, Azure OpenAI, GitHub Copilot, Groq, xAI, Cerebras, and managed EvalOps auth. See [Models](docs/MODELS.md) for provider-specific setup and overrides.
|
|
60
64
|
|
|
61
65
|
For another Codex subscription model, select models under the `openai-codex` provider such as `openai-codex/gpt-5.5`.
|
package/dist/audit/logger.d.ts
CHANGED
|
@@ -126,10 +126,10 @@ export declare function queryAuditLogs(filters: {
|
|
|
126
126
|
offset?: number;
|
|
127
127
|
}): Promise<{
|
|
128
128
|
orgId: string;
|
|
129
|
+
status: "error" | "success" | "denied" | "failure";
|
|
129
130
|
id: string;
|
|
130
131
|
metadata: AuditMetadata | null;
|
|
131
132
|
action: string;
|
|
132
|
-
status: "error" | "success" | "denied" | "failure";
|
|
133
133
|
createdAt: Date;
|
|
134
134
|
traceId: string | null;
|
|
135
135
|
requestId: string | null;
|
package/dist/cli/args.d.ts.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"args.d.ts","sourceRoot":"","sources":["../../src/cli/args.ts"],"names":[],"mappings":"AAAA,MAAM,MAAM,IAAI,GAAG,MAAM,GAAG,MAAM,GAAG,KAAK,GAAG,UAAU,CAAC;AAExD,MAAM,WAAW,IAAI;IACpB,QAAQ,CAAC,EAAE,MAAM,CAAC;IAClB,KAAK,CAAC,EAAE,MAAM,CAAC;IACf,UAAU,CAAC,EAAE,MAAM,CAAC;IACpB,KAAK,CAAC,EAAE,MAAM,CAAC;IACf,UAAU,CAAC,EAAE,MAAM,CAAC;IACpB,MAAM,CAAC,EAAE,MAAM,CAAC;IAChB,YAAY,CAAC,EAAE,MAAM,CAAC;IACtB,kBAAkB,CAAC,EAAE,MAAM,CAAC;IAC5B,4DAA4D;IAC5D,IAAI,CAAC,EAAE,MAAM,CAAC;IACd,QAAQ,CAAC,EAAE,OAAO,CAAC;IACnB,MAAM,CAAC,EAAE,OAAO,CAAC;IACjB,IAAI,CAAC,EAAE,OAAO,CAAC;IACf,UAAU,CAAC,EAAE,OAAO,CAAC;IACrB,OAAO,CAAC,EAAE,OAAO,CAAC;IAClB,YAAY,CAAC,EAAE,OAAO,CAAC;IACvB,IAAI,CAAC,EAAE,IAAI,CAAC;IACZ,wDAAwD;IACxD,QAAQ,CAAC,EAAE,OAAO,CAAC;IACnB,SAAS,CAAC,EAAE,OAAO,CAAC;IACpB,OAAO,CAAC,EAAE,MAAM,CAAC;IACjB,QAAQ,CAAC,EAAE,OAAO,CAAC;IACnB,OAAO,CAAC,EAAE,MAAM,CAAC;IACjB,UAAU,CAAC,EAAE,MAAM,CAAC;IACpB,qDAAqD;IACrD,WAAW,CAAC,EAAE,MAAM,EAAE,CAAC;IACvB,cAAc,CAAC,EAAE,OAAO,CAAC;IACzB,YAAY,CAAC,EAAE,MAAM,GAAG,QAAQ,GAAG,MAAM,CAAC;IAC1C,QAAQ,CAAC,EAAE,MAAM,GAAG,SAAS,CAAC;IAC9B,KAAK,CAAC,EAAE,OAAO,CAAC;IAChB,QAAQ,CAAC,EAAE,OAAO,CAAC;IACnB,YAAY,CAAC,EAAE,OAAO,CAAC;IACvB,YAAY,CAAC,EAAE,OAAO,CAAC;IACvB,qCAAqC;IACrC,OAAO,CAAC,EAAE,MAAM,CAAC;IACjB,gBAAgB,CAAC,EAAE,MAAM,CAAC;IAC1B,cAAc,CAAC,EAAE,MAAM,CAAC;IACxB,YAAY,CAAC,EAAE,MAAM,CAAC;IACtB,WAAW,CAAC,EAAE,OAAO,CAAC;IACtB,MAAM,CAAC,EAAE,MAAM,EAAE,CAAC;IAClB,KAAK,CAAC,EAAE,MAAM,EAAE,CAAC;IACjB,QAAQ,EAAE,MAAM,EAAE,CAAC;IACnB,sCAAsC;IACtC,OAAO,CAAC,EAAE,MAAM,CAAC;IACjB,+CAA+C;IAC/C,eAAe,CAAC,EAAE,MAAM,EAAE,CAAC;IAC3B,2DAA2D;IAC3D,QAAQ,CAAC,EAAE,OAAO,CAAC;IACnB,2CAA2C;IAC3C,QAAQ,CAAC,EAAE,MAAM,CAAC;IAClB,YAAY,CAAC,EAAE,MAAM,CAAC;IACtB,aAAa,CAAC,EAAE,OAAO,CAAC;IACxB,SAAS,CAAC,EAAE,MAAM,CAAC;IACnB,sEAAsE;IACtE,kBAAkB,CAAC,EAAE,MAAM,CAAC;IAC5B,mEAAmE;IACnE,kBAAkB,CAAC,EAAE,MAAM,CAAC;CAC5B;
|
|
1
|
+
{"version":3,"file":"args.d.ts","sourceRoot":"","sources":["../../src/cli/args.ts"],"names":[],"mappings":"AAAA,MAAM,MAAM,IAAI,GAAG,MAAM,GAAG,MAAM,GAAG,KAAK,GAAG,UAAU,CAAC;AAExD,MAAM,WAAW,IAAI;IACpB,QAAQ,CAAC,EAAE,MAAM,CAAC;IAClB,KAAK,CAAC,EAAE,MAAM,CAAC;IACf,UAAU,CAAC,EAAE,MAAM,CAAC;IACpB,KAAK,CAAC,EAAE,MAAM,CAAC;IACf,UAAU,CAAC,EAAE,MAAM,CAAC;IACpB,MAAM,CAAC,EAAE,MAAM,CAAC;IAChB,YAAY,CAAC,EAAE,MAAM,CAAC;IACtB,kBAAkB,CAAC,EAAE,MAAM,CAAC;IAC5B,4DAA4D;IAC5D,IAAI,CAAC,EAAE,MAAM,CAAC;IACd,QAAQ,CAAC,EAAE,OAAO,CAAC;IACnB,MAAM,CAAC,EAAE,OAAO,CAAC;IACjB,IAAI,CAAC,EAAE,OAAO,CAAC;IACf,UAAU,CAAC,EAAE,OAAO,CAAC;IACrB,OAAO,CAAC,EAAE,OAAO,CAAC;IAClB,YAAY,CAAC,EAAE,OAAO,CAAC;IACvB,IAAI,CAAC,EAAE,IAAI,CAAC;IACZ,wDAAwD;IACxD,QAAQ,CAAC,EAAE,OAAO,CAAC;IACnB,SAAS,CAAC,EAAE,OAAO,CAAC;IACpB,OAAO,CAAC,EAAE,MAAM,CAAC;IACjB,QAAQ,CAAC,EAAE,OAAO,CAAC;IACnB,OAAO,CAAC,EAAE,MAAM,CAAC;IACjB,UAAU,CAAC,EAAE,MAAM,CAAC;IACpB,qDAAqD;IACrD,WAAW,CAAC,EAAE,MAAM,EAAE,CAAC;IACvB,cAAc,CAAC,EAAE,OAAO,CAAC;IACzB,YAAY,CAAC,EAAE,MAAM,GAAG,QAAQ,GAAG,MAAM,CAAC;IAC1C,QAAQ,CAAC,EAAE,MAAM,GAAG,SAAS,CAAC;IAC9B,KAAK,CAAC,EAAE,OAAO,CAAC;IAChB,QAAQ,CAAC,EAAE,OAAO,CAAC;IACnB,YAAY,CAAC,EAAE,OAAO,CAAC;IACvB,YAAY,CAAC,EAAE,OAAO,CAAC;IACvB,qCAAqC;IACrC,OAAO,CAAC,EAAE,MAAM,CAAC;IACjB,gBAAgB,CAAC,EAAE,MAAM,CAAC;IAC1B,cAAc,CAAC,EAAE,MAAM,CAAC;IACxB,YAAY,CAAC,EAAE,MAAM,CAAC;IACtB,WAAW,CAAC,EAAE,OAAO,CAAC;IACtB,MAAM,CAAC,EAAE,MAAM,EAAE,CAAC;IAClB,KAAK,CAAC,EAAE,MAAM,EAAE,CAAC;IACjB,QAAQ,EAAE,MAAM,EAAE,CAAC;IACnB,sCAAsC;IACtC,OAAO,CAAC,EAAE,MAAM,CAAC;IACjB,+CAA+C;IAC/C,eAAe,CAAC,EAAE,MAAM,EAAE,CAAC;IAC3B,2DAA2D;IAC3D,QAAQ,CAAC,EAAE,OAAO,CAAC;IACnB,2CAA2C;IAC3C,QAAQ,CAAC,EAAE,MAAM,CAAC;IAClB,YAAY,CAAC,EAAE,MAAM,CAAC;IACtB,aAAa,CAAC,EAAE,OAAO,CAAC;IACxB,SAAS,CAAC,EAAE,MAAM,CAAC;IACnB,sEAAsE;IACtE,kBAAkB,CAAC,EAAE,MAAM,CAAC;IAC5B,mEAAmE;IACnE,kBAAkB,CAAC,EAAE,MAAM,CAAC;CAC5B;AAyGD,wBAAgB,SAAS,CAAC,IAAI,EAAE,MAAM,EAAE,GAAG,IAAI,CA0P9C"}
|
package/dist/cli/args.js
CHANGED
|
@@ -6,6 +6,7 @@ const COMMANDS = new Set([
|
|
|
6
6
|
"cost",
|
|
7
7
|
"stats",
|
|
8
8
|
"status",
|
|
9
|
+
"update",
|
|
9
10
|
"run",
|
|
10
11
|
"agents",
|
|
11
12
|
"a2a",
|
|
@@ -351,6 +352,7 @@ export function parseArgs(args) {
|
|
|
351
352
|
arg === "hosted-runner" ||
|
|
352
353
|
arg === "init" ||
|
|
353
354
|
arg === "evalops" ||
|
|
355
|
+
arg === "update" ||
|
|
354
356
|
arg === "skill") {
|
|
355
357
|
result.commandArgs = args.slice(i + 1);
|
|
356
358
|
break;
|
package/dist/cli/args.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"args.js","sourceRoot":"","sources":["../../src/cli/args.ts"],"names":[],"mappings":"AA8DA,MAAM,QAAQ,GAAG,IAAI,GAAG,CAAC;IACxB,QAAQ;IACR,SAAS;IACT,OAAO;IACP,QAAQ;IACR,MAAM;IACN,OAAO;IACP,QAAQ;IACR,KAAK;IACL,QAAQ;IACR,KAAK;IACL,iBAAiB;IACjB,MAAM;IACN,KAAK;IACL,eAAe;IACf,MAAM;IACN,WAAW;IACX,SAAS;IACT,QAAQ;IACR,OAAO;IACP,OAAO;IACP,OAAO;IACP,QAAQ;IACR,QAAQ;IACR,QAAQ;IACR,QAAQ;IACR,UAAU;CACV,CAAC,CAAC;AACH,MAAM,mBAAmB,GAAG,IAAI,GAAG,CAAC;IACnC,QAAQ;IACR,SAAS;IACT,OAAO;IACP,QAAQ;IACR,MAAM;IACN,OAAO;IACP,KAAK;IACL,QAAQ;IACR,WAAW;IACX,SAAS;IACT,QAAQ;IACR,OAAO;IACP,OAAO;IACP,OAAO;IACP,QAAQ;IACR,QAAQ;IACR,UAAU;CACV,CAAC,CAAC;AACH,MAAM,eAAe,GAAG,IAAI,GAAG,CAAC,CAAC,SAAS,EAAE,QAAQ,EAAE,QAAQ,EAAE,SAAS,CAAC,CAAC,CAAC;AAE5E,MAAM,iBAAiB,GAAG,IAAI,GAAG,CAAC;IACjC,QAAQ;IACR,YAAY;IACZ,SAAS;IACT,IAAI;IACJ,eAAe;IACf,UAAU;IACV,eAAe;IACf,WAAW;IACX,QAAQ;IACR,iBAAiB;IACjB,wBAAwB;IACxB,WAAW;IACX,iBAAiB;IACjB,QAAQ;IACR,WAAW;IACX,iBAAiB;IACjB,uBAAuB;IACvB,SAAS;IACT,YAAY;IACZ,UAAU;IACV,WAAW;IACX,UAAU;IACV,SAAS;IACT,UAAU;IACV,mBAAmB;CACnB,CAAC,CAAC;AAEH,MAAM,4BAA4B,GAAG,IAAI,GAAG,CAAC,CAAC,iBAAiB,CAAC,CAAC,CAAC;AAClE,MAAM,wBAAwB,GAAG,CAAC,gBAAgB,EAAE,eAAe,CAAC,CAAC;AAErE,SAAS,sBAAsB,CAAC,MAAY,EAAE,GAAW;IACxD,OAAO,CACN,MAAM,CAAC,OAAO,KAAK,QAAQ;QAC3B,MAAM,CAAC,UAAU,KAAK,MAAM;QAC5B,CAAC,GAAG,KAAK,UAAU,IAAI,GAAG,KAAK,IAAI,CAAC,CACpC,CAAC;AACH,CAAC;AAED,SAAS,gBAAgB,CAAC,IAAc,EAAE,KAAa;IACtD,KAAK,IAAI,KAAK,GAAG,KAAK,EAAE,KAAK,GAAG,IAAI,CAAC,MAAM,EAAE,KAAK,EAAE,EAAE,CAAC;QACtD,MAAM,KAAK,GAAG,IAAI,CAAC,KAAK,CAAC,CAAC;QAC1B,IAAI,CAAC,KAAK;YAAE,SAAS;QACrB,IAAI,CAAC,KAAK,CAAC,UAAU,CAAC,GAAG,CAAC,EAAE,CAAC;YAC5B,OAAO,KAAK,CAAC;QACd,CAAC;QACD,IAAI,iBAAiB,CAAC,GAAG,CAAC,KAAK,CAAC,IAAI,KAAK,GAAG,CAAC,GAAG,IAAI,CAAC,MAAM,EAAE,CAAC;YAC7D,KAAK,EAAE,CAAC;QACT,CAAC;IACF,CAAC;IACD,OAAO,SAAS,CAAC;AAClB,CAAC;AAED,MAAM,UAAU,SAAS,CAAC,IAAc;IACvC,MAAM,MAAM,GAAS;QACpB,QAAQ,EAAE,EAAE;KACZ,CAAC;IAEF,KAAK,IAAI,CAAC,GAAG,CAAC,EAAE,CAAC,GAAG,IAAI,CAAC,MAAM,EAAE,CAAC,EAAE,EAAE,CAAC;QACtC,MAAM,GAAG,GAAG,IAAI,CAAC,CAAC,CAAC,CAAC;QAEpB,IAAI,GAAG,KAAK,QAAQ,IAAI,GAAG,KAAK,IAAI,EAAE,CAAC;YACtC,MAAM,CAAC,IAAI,GAAG,IAAI,CAAC;QACpB,CAAC;aAAM,IAAI,GAAG,KAAK,eAAe,IAAI,GAAG,KAAK,YAAY,EAAE,CAAC;YAC5D,MAAM,CAAC,IAAI,GAAG,IAAI,CAAC;YACnB,MAAM,CAAC,UAAU,GAAG,IAAI,CAAC;QAC1B,CAAC;aAAM,IAAI,GAAG,KAAK,kBAAkB,EAAE,CAAC;YACvC,MAAM,CAAC,YAAY,GAAG,IAAI,CAAC;QAC5B,CAAC;aAAM,IAAI,GAAG,KAAK,WAAW,IAAI,GAAG,KAAK,IAAI,EAAE,CAAC;YAChD,MAAM,CAAC,OAAO,GAAG,IAAI,CAAC;QACvB,CAAC;aAAM,IAAI,GAAG,EAAE,UAAU,CAAC,SAAS,CAAC,EAAE,CAAC;YACvC,MAAM,IAAI,GAAG,GAAG,CAAC,KAAK,CAAC,SAAS,CAAC,MAAM,CAAC,CAAC;YACzC,IACC,IAAI,KAAK,MAAM;gBACf,IAAI,KAAK,MAAM;gBACf,IAAI,KAAK,KAAK;gBACd,IAAI,KAAK,UAAU,EAClB,CAAC;gBACF,MAAM,CAAC,IAAI,GAAG,IAAI,CAAC;gBACnB,IAAI,IAAI,KAAK,UAAU,EAAE,CAAC;oBACzB,MAAM,CAAC,QAAQ,GAAG,IAAI,CAAC;gBACxB,CAAC;YACF,CAAC;QACF,CAAC;aAAM,IAAI,GAAG,KAAK,QAAQ,IAAI,CAAC,GAAG,CAAC,GAAG,IAAI,CAAC,MAAM,EAAE,CAAC;YACpD,MAAM,IAAI,GAAG,IAAI,CAAC,EAAE,CAAC,CAAC,CAAC;YACvB,IACC,IAAI,KAAK,MAAM;gBACf,IAAI,KAAK,MAAM;gBACf,IAAI,KAAK,KAAK;gBACd,IAAI,KAAK,UAAU,EAClB,CAAC;gBACF,MAAM,CAAC,IAAI,GAAG,IAAI,CAAC;gBACnB,IAAI,IAAI,KAAK,UAAU,EAAE,CAAC;oBACzB,MAAM,CAAC,QAAQ,GAAG,IAAI,CAAC;gBACxB,CAAC;YACF,CAAC;QACF,CAAC;aAAM,IAAI,GAAG,KAAK,YAAY,EAAE,CAAC;YACjC,MAAM,CAAC,QAAQ,GAAG,IAAI,CAAC;YACvB,MAAM,CAAC,IAAI,GAAG,UAAU,CAAC;QAC1B,CAAC;aAAM,IAAI,GAAG,KAAK,YAAY,IAAI,GAAG,KAAK,IAAI,EAAE,CAAC;YACjD,MAAM,CAAC,QAAQ,GAAG,IAAI,CAAC;QACxB,CAAC;aAAM,IAAI,GAAG,KAAK,UAAU,IAAI,GAAG,KAAK,IAAI,EAAE,CAAC;YAC/C,IAAI,MAAM,CAAC,OAAO,KAAK,MAAM,EAAE,CAAC;gBAC/B,MAAM,OAAO,GAAG,IAAI,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC;gBAC5B,IAAI,CAAC,GAAG,CAAC,GAAG,IAAI,CAAC,MAAM,IAAI,OAAO,IAAI,CAAC,OAAO,CAAC,UAAU,CAAC,GAAG,CAAC,EAAE,CAAC;oBAChE,MAAM,CAAC,YAAY,GAAG,OAAO,CAAC;oBAC9B,CAAC,EAAE,CAAC;gBACL,CAAC;qBAAM,CAAC;oBACP,MAAM,CAAC,WAAW,GAAG,IAAI,CAAC;gBAC3B,CAAC;YACF,CAAC;iBAAM,CAAC;gBACP,MAAM,CAAC,MAAM,GAAG,IAAI,CAAC;YACtB,CAAC;QACF,CAAC;aAAM,IAAI,GAAG,KAAK,YAAY,IAAI,CAAC,GAAG,CAAC,GAAG,IAAI,CAAC,MAAM,EAAE,CAAC;YACxD,MAAM,CAAC,QAAQ,GAAG,IAAI,CAAC,EAAE,CAAC,CAAC,CAAC;QAC7B,CAAC;aAAM,IAAI,CAAC,GAAG,KAAK,SAAS,IAAI,GAAG,KAAK,IAAI,CAAC,IAAI,CAAC,GAAG,CAAC,GAAG,IAAI,CAAC,MAAM,EAAE,CAAC;YACvE,MAAM,CAAC,KAAK,GAAG,IAAI,CAAC,EAAE,CAAC,CAAC,CAAC;QAC1B,CAAC;aAAM,IAAI,GAAG,KAAK,eAAe,EAAE,CAAC;YACpC,MAAM,QAAQ,GAAG,IAAI,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC;YAC7B,IACC,QAAQ,KAAK,SAAS;gBACtB,CAAC,QAAQ,CAAC,UAAU,CAAC,GAAG,CAAC,IAAI,MAAM,CAAC,KAAK,CAAC,MAAM,CAAC,QAAQ,CAAC,CAAC,CAAC,EAC3D,CAAC;gBACF,MAAM,CAAC,KAAK,GAAG,gCAAgC,CAAC;gBAChD,SAAS;YACV,CAAC;YAED,CAAC,EAAE,CAAC;YACJ,MAAM,KAAK,GAAG,MAAM,CAAC,QAAQ,CAAC,CAAC;YAC/B,IAAI,MAAM,CAAC,SAAS,CAAC,KAAK,CAAC,IAAI,KAAK,GAAG,CAAC,EAAE,CAAC;gBAC1C,MAAM,CAAC,UAAU,GAAG,KAAK,CAAC;YAC3B,CAAC;iBAAM,CAAC;gBACP,MAAM,CAAC,KAAK,GAAG,0CAA0C,CAAC;YAC3D,CAAC;QACF,CAAC;aAAM,IAAI,GAAG,KAAK,UAAU,IAAI,CAAC,GAAG,CAAC,GAAG,IAAI,CAAC,MAAM,EAAE,CAAC;YACtD,MAAM,SAAS,GAAG,IAAI,CAAC,EAAE,CAAC,CAAE,CAAC;YAC7B,MAAM,QAAQ,GAAG,SAAS;iBACxB,KAAK,CAAC,GAAG,CAAC;iBACV,GAAG,CAAC,CAAC,KAAK,EAAE,EAAE,CAAC,KAAK,CAAC,IAAI,EAAE,CAAC;iBAC5B,MAAM,CAAC,CAAC,KAAK,EAAE,EAAE,CAAC,KAAK,CAAC,MAAM,GAAG,CAAC,CAAC,CAAC;YACtC,IAAI,QAAQ,CAAC,MAAM,GAAG,CAAC,EAAE,CAAC;gBACzB,MAAM,CAAC,MAAM,GAAG,QAAQ,CAAC;YAC1B,CAAC;QACF,CAAC;aAAM,IAAI,GAAG,KAAK,eAAe,IAAI,CAAC,GAAG,CAAC,GAAG,IAAI,CAAC,MAAM,EAAE,CAAC;YAC3D,MAAM,CAAC,UAAU,GAAG,IAAI,CAAC,EAAE,CAAC,CAAC,CAAC;QAC/B,CAAC;aAAM,IAAI,GAAG,KAAK,WAAW,IAAI,CAAC,GAAG,CAAC,GAAG,IAAI,CAAC,MAAM,EAAE,CAAC;YACvD,MAAM,CAAC,MAAM,GAAG,IAAI,CAAC,EAAE,CAAC,CAAC,CAAC;QAC3B,CAAC;aAAM,IAAI,GAAG,KAAK,QAAQ,IAAI,CAAC,GAAG,CAAC,GAAG,IAAI,CAAC,MAAM,EAAE,CAAC;YACpD,MAAM,KAAK,GAAG,MAAM,CAAC,QAAQ,CAAC,IAAI,CAAC,EAAE,CAAC,CAAC,IAAI,EAAE,EAAE,EAAE,CAAC,CAAC;YACnD,IAAI,MAAM,CAAC,QAAQ,CAAC,KAAK,CAAC,IAAI,KAAK,GAAG,CAAC,IAAI,KAAK,GAAG,KAAK,EAAE,CAAC;gBAC1D,MAAM,CAAC,IAAI,GAAG,KAAK,CAAC;YACrB,CAAC;QACF,CAAC;aAAM,IAAI,GAAG,KAAK,iBAAiB,IAAI,CAAC,GAAG,CAAC,GAAG,IAAI,CAAC,MAAM,EAAE,CAAC;YAC7D,MAAM,CAAC,YAAY,GAAG,IAAI,CAAC,EAAE,CAAC,CAAC,CAAC;QACjC,CAAC;aAAM,IAAI,GAAG,KAAK,wBAAwB,IAAI,CAAC,GAAG,CAAC,GAAG,IAAI,CAAC,MAAM,EAAE,CAAC;YACpE,MAAM,CAAC,kBAAkB,GAAG,IAAI,CAAC,EAAE,CAAC,CAAC,CAAC;QACvC,CAAC;aAAM,IAAI,GAAG,KAAK,cAAc,EAAE,CAAC;YACnC,MAAM,CAAC,SAAS,GAAG,IAAI,CAAC;QACzB,CAAC;aAAM,IAAI,GAAG,KAAK,WAAW,IAAI,CAAC,GAAG,CAAC,GAAG,IAAI,CAAC,MAAM,EAAE,CAAC;YACvD,MAAM,CAAC,OAAO,GAAG,IAAI,CAAC,EAAE,CAAC,CAAC,CAAC;QAC5B,CAAC;aAAM,IAAI,GAAG,KAAK,aAAa,EAAE,CAAC;YAClC,MAAM,CAAC,QAAQ,GAAG,IAAI,CAAC;QACxB,CAAC;aAAM,IAAI,GAAG,KAAK,iBAAiB,IAAI,CAAC,GAAG,CAAC,GAAG,IAAI,CAAC,MAAM,EAAE,CAAC;YAC7D,MAAM,IAAI,GAAG,IAAI,CAAC,EAAE,CAAC,CAAC,CAAC;YACvB,IAAI,IAAI,KAAK,MAAM,IAAI,IAAI,KAAK,QAAQ,IAAI,IAAI,KAAK,MAAM,EAAE,CAAC;gBAC7D,MAAM,CAAC,YAAY,GAAG,IAAI,CAAC;YAC5B,CAAC;QACF,CAAC;aAAM,IAAI,GAAG,KAAK,QAAQ,IAAI,CAAC,GAAG,CAAC,GAAG,IAAI,CAAC,MAAM,EAAE,CAAC;YACpD,MAAM,KAAK,GAAG,IAAI,CAAC,EAAE,CAAC,CAAC,CAAC;YACxB,IAAI,KAAK,KAAK,MAAM,IAAI,KAAK,KAAK,SAAS,EAAE,CAAC;gBAC7C,MAAM,CAAC,QAAQ,GAAG,KAAK,CAAC;YACzB,CAAC;QACF,CAAC;aAAM,IAAI,GAAG,KAAK,SAAS,EAAE,CAAC;YAC9B,MAAM,CAAC,KAAK,GAAG,IAAI,CAAC;QACrB,CAAC;aAAM,IAAI,GAAG,KAAK,QAAQ,EAAE,CAAC;YAC7B,MAAM,CAAC,QAAQ,GAAG,IAAI,CAAC;QACxB,CAAC;aAAM,IAAI,GAAG,KAAK,aAAa,EAAE,CAAC;YAClC,MAAM,CAAC,YAAY,GAAG,IAAI,CAAC;QAC5B,CAAC;aAAM,IAAI,GAAG,KAAK,aAAa,EAAE,CAAC;YAClC,MAAM,CAAC,YAAY,GAAG,IAAI,CAAC;QAC5B,CAAC;aAAM,IAAI,GAAG,KAAK,WAAW,IAAI,CAAC,GAAG,CAAC,GAAG,IAAI,CAAC,MAAM,EAAE,CAAC;YACvD,MAAM,CAAC,OAAO,GAAG,IAAI,CAAC,EAAE,CAAC,CAAC,CAAC;QAC5B,CAAC;aAAM,IAAI,GAAG,KAAK,iBAAiB,IAAI,CAAC,GAAG,CAAC,GAAG,IAAI,CAAC,MAAM,EAAE,CAAC;YAC7D,MAAM,CAAC,gBAAgB,GAAG,IAAI,CAAC,EAAE,CAAC,CAAC,CAAC;QACrC,CAAC;aAAM,IAAI,GAAG,KAAK,uBAAuB,IAAI,CAAC,GAAG,CAAC,GAAG,IAAI,CAAC,MAAM,EAAE,CAAC;YACnE,MAAM,CAAC,cAAc,GAAG,IAAI,CAAC,EAAE,CAAC,CAAC,CAAC;QACnC,CAAC;aAAM,IAAI,GAAG,KAAK,QAAQ,IAAI,MAAM,CAAC,OAAO,KAAK,MAAM,EAAE,CAAC;YAC1D,MAAM,CAAC,WAAW,GAAG,IAAI,CAAC;QAC3B,CAAC;aAAM,IAAI,GAAG,KAAK,SAAS,IAAI,CAAC,GAAG,CAAC,GAAG,IAAI,CAAC,MAAM,EAAE,CAAC;YACrD,MAAM,QAAQ,GAAG,IAAI,CAAC,EAAE,CAAC,CAAE,CAAC;YAC5B,MAAM,SAAS,GAAG,QAAQ;iBACxB,KAAK,CAAC,GAAG,CAAC;iBACV,GAAG,CAAC,CAAC,KAAK,EAAE,EAAE,CAAC,KAAK,CAAC,IAAI,EAAE,CAAC;iBAC5B,MAAM,CAAC,CAAC,KAAK,EAAE,EAAE,CAAC,KAAK,CAAC,MAAM,GAAG,CAAC,CAAC,CAAC;YACtC,IAAI,SAAS,CAAC,MAAM,GAAG,CAAC,EAAE,CAAC;gBAC1B,MAAM,CAAC,KAAK,GAAG,SAAS,CAAC;YAC1B,CAAC;QACF,CAAC;aAAM,IAAI,GAAG,KAAK,YAAY,IAAI,GAAG,KAAK,kBAAkB,EAAE,CAAC;YAC/D,MAAM,CAAC,QAAQ,GAAG,IAAI,CAAC;QACxB,CAAC;aAAM,IAAI,GAAG,KAAK,YAAY,IAAI,CAAC,GAAG,CAAC,GAAG,IAAI,CAAC,MAAM,EAAE,CAAC;YACxD,MAAM,CAAC,QAAQ,GAAG,IAAI,CAAC,EAAE,CAAC,CAAC,CAAC;QAC7B,CAAC;aAAM,IAAI,GAAG,KAAK,UAAU,IAAI,CAAC,GAAG,CAAC,GAAG,IAAI,CAAC,MAAM,EAAE,CAAC;YACtD,MAAM,CAAC,YAAY,GAAG,IAAI,CAAC,EAAE,CAAC,CAAC,CAAC;QACjC,CAAC;aAAM,IAAI,GAAG,KAAK,kBAAkB,EAAE,CAAC;YACvC,MAAM,CAAC,aAAa,GAAG,IAAI,CAAC;QAC7B,CAAC;aAAM,IAAI,GAAG,KAAK,SAAS,IAAI,CAAC,GAAG,CAAC,GAAG,IAAI,CAAC,MAAM,EAAE,CAAC;YACrD,MAAM,CAAC,SAAS,GAAG,IAAI,CAAC,EAAE,CAAC,CAAE,CAAC;QAC/B,CAAC;aAAM,IAAI,GAAG,KAAK,UAAU,IAAI,CAAC,GAAG,CAAC,GAAG,IAAI,CAAC,MAAM,EAAE,CAAC;YACtD,MAAM,CAAC,kBAAkB,GAAG,IAAI,CAAC,EAAE,CAAC,CAAE,CAAC;QACxC,CAAC;aAAM,IAAI,GAAG,KAAK,mBAAmB,IAAI,CAAC,GAAG,CAAC,GAAG,IAAI,CAAC,MAAM,EAAE,CAAC;YAC/D,MAAM,CAAC,kBAAkB,GAAG,IAAI,CAAC,EAAE,CAAC,CAAE,CAAC;QACxC,CAAC;aAAM,IAAI,GAAG,KAAK,YAAY,EAAE,CAAC;YACjC,MAAM,CAAC,cAAc,GAAG,IAAI,CAAC;QAC9B,CAAC;aAAM,IAAI,GAAG,KAAK,WAAW,IAAI,CAAC,GAAG,CAAC,GAAG,IAAI,CAAC,MAAM,EAAE,CAAC;YACvD,MAAM,CAAC,OAAO,GAAG,IAAI,CAAC,EAAE,CAAC,CAAC,CAAC;QAC5B,CAAC;aAAM,IAAI,GAAG,KAAK,UAAU,IAAI,CAAC,GAAG,CAAC,GAAG,IAAI,CAAC,MAAM,EAAE,CAAC;YACtD,uCAAuC;YACvC,MAAM,QAAQ,GAAG,IAAI,CAAC,EAAE,CAAC,CAAE,CAAC;YAC5B,IAAI,CAAC,MAAM,CAAC,eAAe,EAAE,CAAC;gBAC7B,MAAM,CAAC,eAAe,GAAG,EAAE,CAAC;YAC7B,CAAC;YACD,MAAM,CAAC,eAAe,CAAC,IAAI,CAAC,QAAQ,CAAC,CAAC;QACvC,CAAC;aAAM,IAAI,GAAG,IAAI,4BAA4B,CAAC,GAAG,CAAC,GAAG,CAAC,EAAE,CAAC;YACzD,gEAAgE;YAChE,MAAM,OAAO,GAAG,IAAI,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC;YAC5B,IAAI,OAAO,IAAI,CAAC,OAAO,CAAC,UAAU,CAAC,GAAG,CAAC,IAAI,CAAC,QAAQ,CAAC,GAAG,CAAC,OAAO,CAAC,EAAE,CAAC;gBACnE,CAAC,EAAE,CAAC;YACL,CAAC;QACF,CAAC;aAAM,IACN,GAAG;YACH,CAAC,KAAK,CAAC,IAAI,CAAC,4BAA4B,CAAC,CAAC,IAAI,CAAC,CAAC,IAAI,EAAE,EAAE,CACvD,GAAG,CAAC,UAAU,CAAC,GAAG,IAAI,GAAG,CAAC,CAC1B;gBACA,wBAAwB,CAAC,IAAI,CAAC,CAAC,IAAI,EAAE,EAAE,CAAC,GAAG,CAAC,UAAU,CAAC,IAAI,CAAC,CAAC,CAAC,EAC9D,CAAC;YACF,gEAAgE;QACjE,CAAC;aAAM,IACN,MAAM,CAAC,OAAO,KAAK,OAAO;YAC1B,MAAM,CAAC,UAAU,KAAK,OAAO;YAC7B,CAAC,GAAG,KAAK,UAAU,IAAI,GAAG,KAAK,eAAe,IAAI,GAAG,KAAK,eAAe,CAAC,EACzE,CAAC;YACF,IAAI,CAAC,MAAM,CAAC,WAAW,EAAE,CAAC;gBACzB,MAAM,CAAC,WAAW,GAAG,EAAE,CAAC;YACzB,CAAC;YACD,MAAM,CAAC,WAAW,CAAC,IAAI,CAAC,GAAG,CAAC,CAAC;QAC9B,CAAC;aAAM,IAAI,GAAG,IAAI,sBAAsB,CAAC,MAAM,EAAE,GAAG,CAAC,EAAE,CAAC;YACvD,MAAM,OAAO,GAAG,IAAI,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC;YAC5B,IAAI,OAAO,IAAI,CAAC,OAAO,CAAC,UAAU,CAAC,GAAG,CAAC,EAAE,CAAC;gBACzC,CAAC,EAAE,CAAC;YACL,CAAC;QACF,CAAC;aAAM,IAAI,GAAG,EAAE,UAAU,CAAC,GAAG,CAAC,EAAE,CAAC;YACjC,MAAM,CAAC,KAAK,GAAG,mBAAmB,GAAG,EAAE,CAAC;QACzC,CAAC;aAAM,IAAI,GAAG,EAAE,CAAC;YAChB,MAAM,OAAO,GAAG,IAAI,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC;YAC5B,MAAM,cAAc,GACnB,QAAQ,CAAC,GAAG,CAAC,GAAG,CAAC;gBACjB,CAAC,GAAG,KAAK,KAAK;oBACb,CAAC,MAAM,CAAC,QAAQ,CAAC,MAAM,KAAK,CAAC;wBAC5B,eAAe,CAAC,GAAG,CAAC,gBAAgB,CAAC,IAAI,EAAE,CAAC,GAAG,CAAC,CAAC,IAAI,EAAE,CAAC,CAAC,CAAC,CAAC;YAC9D,IAAI,CAAC,MAAM,CAAC,OAAO,IAAI,cAAc,EAAE,CAAC;gBACvC,MAAM,CAAC,OAAO,GAAG,GAAG,CAAC;gBACrB,MAAM,uBAAuB,GAC5B,mBAAmB,CAAC,GAAG,CAAC,GAAG,CAAC;oBAC5B,CAAC,GAAG,KAAK,SAAS,IAAI,OAAO,KAAK,SAAS,IAAI,OAAO,KAAK,MAAM,CAAC,CAAC;gBACpE,IACC,uBAAuB;oBACvB,CAAC,GAAG,CAAC,GAAG,IAAI,CAAC,MAAM;oBACnB,OAAO;oBACP,CAAC,OAAO,CAAC,UAAU,CAAC,GAAG,CAAC,EACvB,CAAC;oBACF,MAAM,CAAC,UAAU,GAAG,OAAO,CAAC;oBAC5B,CAAC,EAAE,CAAC;gBACL,CAAC;gBACD,IACC,GAAG,KAAK,QAAQ;oBAChB,GAAG,KAAK,KAAK;oBACb,GAAG,KAAK,iBAAiB;oBACzB,GAAG,KAAK,eAAe;oBACvB,GAAG,KAAK,MAAM;oBACd,GAAG,KAAK,SAAS;oBACjB,GAAG,KAAK,OAAO,EACd,CAAC;oBACF,MAAM,CAAC,WAAW,GAAG,IAAI,CAAC,KAAK,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC;oBACvC,MAAM;gBACP,CAAC;YACF,CAAC;iBAAM,CAAC;gBACP,MAAM,CAAC,QAAQ,CAAC,IAAI,CAAC,GAAG,CAAC,CAAC;YAC3B,CAAC;QACF,CAAC;IACF,CAAC;IAED,IACC,MAAM,CAAC,OAAO,KAAK,KAAK;QACxB,CAAC,MAAM,CAAC,UAAU;QAClB,MAAM,CAAC,QAAQ,CAAC,CAAC,CAAC;QAClB,eAAe,CAAC,GAAG,CAAC,MAAM,CAAC,QAAQ,CAAC,CAAC,CAAC,CAAC,EACtC,CAAC;QACF,MAAM,CAAC,UAAU,GAAG,MAAM,CAAC,QAAQ,CAAC,CAAC,CAAC,CAAC;QACvC,MAAM,CAAC,QAAQ,GAAG,MAAM,CAAC,QAAQ,CAAC,KAAK,CAAC,CAAC,CAAC,CAAC;IAC5C,CAAC;IAED,OAAO,MAAM,CAAC;AACf,CAAC","sourcesContent":["export type Mode = \"text\" | \"json\" | \"rpc\" | \"headless\";\n\nexport interface Args {\n\tprovider?: string;\n\tmodel?: string;\n\ttaskBudget?: number;\n\terror?: string;\n\tmodelsFile?: string;\n\tapiKey?: string;\n\tsystemPrompt?: string;\n\tappendSystemPrompt?: string;\n\t/** Port for `maestro web` (defaults to PORT env or 8080) */\n\tport?: number;\n\tcontinue?: boolean;\n\tresume?: boolean;\n\thelp?: boolean;\n\thelpHidden?: boolean;\n\tversion?: boolean;\n\tlistModesAll?: boolean;\n\tmode?: Mode;\n\t/** Run in headless mode for native TUI communication */\n\theadless?: boolean;\n\tnoSession?: boolean;\n\tsession?: string;\n\tsafeMode?: boolean;\n\tcommand?: string;\n\tsubcommand?: string;\n\t/** Raw arguments owned by command-group handlers. */\n\tcommandArgs?: string[];\n\tcontextLiveMcp?: boolean;\n\tapprovalMode?: \"auto\" | \"prompt\" | \"fail\";\n\tauthMode?: \"auto\" | \"api-key\";\n\tforce?: boolean;\n\texecJson?: boolean;\n\texecFullAuto?: boolean;\n\texecReadOnly?: boolean;\n\t/** Sandbox backend or policy mode */\n\tsandbox?: string;\n\texecOutputSchema?: string;\n\texecOutputLast?: string;\n\texecResumeId?: string;\n\texecUseLast?: boolean;\n\tmodels?: string[];\n\ttools?: string[];\n\tmessages: string[];\n\t/** TOML config profile to activate */\n\tprofile?: string;\n\t/** CLI config overrides in key=value format */\n\tconfigOverrides?: string[];\n\t/** Start in read-only mode (activates explore composer) */\n\treadonly?: boolean;\n\t/** Agent profile to activate on startup */\n\tcomposer?: string;\n\texportFormat?: string;\n\tredactSecrets?: boolean;\n\tjunitPath?: string;\n\t/** Open a real agent session backed by a scripted replay scenario. */\n\treplayScenarioPath?: string;\n\t/** Record assistant turns into a scripted replay scenario file. */\n\trecordScenarioPath?: string;\n}\n\nconst COMMANDS = new Set([\n\t\"config\",\n\t\"context\",\n\t\"modes\",\n\t\"models\",\n\t\"cost\",\n\t\"stats\",\n\t\"status\",\n\t\"run\",\n\t\"agents\",\n\t\"a2a\",\n\t\"operating-plane\",\n\t\"exec\",\n\t\"web\",\n\t\"hosted-runner\",\n\t\"init\",\n\t\"anthropic\",\n\t\"evalops\",\n\t\"openai\",\n\t\"codex\",\n\t\"hooks\",\n\t\"skill\",\n\t\"memory\",\n\t\"remote\",\n\t\"export\",\n\t\"import\",\n\t\"scenario\",\n]);\nconst SUBCOMMAND_COMMANDS = new Set([\n\t\"config\",\n\t\"context\",\n\t\"modes\",\n\t\"models\",\n\t\"cost\",\n\t\"stats\",\n\t\"run\",\n\t\"agents\",\n\t\"anthropic\",\n\t\"evalops\",\n\t\"openai\",\n\t\"codex\",\n\t\"hooks\",\n\t\"skill\",\n\t\"memory\",\n\t\"remote\",\n\t\"scenario\",\n]);\nconst RUN_SUBCOMMANDS = new Set([\"inspect\", \"ledger\", \"replay\", \"promote\"]);\n\nconst FLAGS_WITH_VALUES = new Set([\n\t\"--mode\",\n\t\"--provider\",\n\t\"--model\",\n\t\"-m\",\n\t\"--task-budget\",\n\t\"--models\",\n\t\"--models-file\",\n\t\"--api-key\",\n\t\"--port\",\n\t\"--system-prompt\",\n\t\"--append-system-prompt\",\n\t\"--session\",\n\t\"--approval-mode\",\n\t\"--auth\",\n\t\"--sandbox\",\n\t\"--output-schema\",\n\t\"--output-last-message\",\n\t\"--tools\",\n\t\"--composer\",\n\t\"--format\",\n\t\"--profile\",\n\t\"--config\",\n\t\"--junit\",\n\t\"--replay\",\n\t\"--record-scenario\",\n]);\n\nconst DEPRECATED_FLAGS_WITH_VALUES = new Set([\"--codex-api-key\"]);\nconst DEPRECATED_FLAG_PREFIXES = [\"--auth=chatgpt\", \"--auth=claude\"];\n\nfunction isConfigInitPresetFlag(result: Args, arg: string): boolean {\n\treturn (\n\t\tresult.command === \"config\" &&\n\t\tresult.subcommand === \"init\" &&\n\t\t(arg === \"--preset\" || arg === \"-p\")\n\t);\n}\n\nfunction nextNonFlagToken(args: string[], start: number): string | undefined {\n\tfor (let index = start; index < args.length; index++) {\n\t\tconst token = args[index];\n\t\tif (!token) continue;\n\t\tif (!token.startsWith(\"-\")) {\n\t\t\treturn token;\n\t\t}\n\t\tif (FLAGS_WITH_VALUES.has(token) && index + 1 < args.length) {\n\t\t\tindex++;\n\t\t}\n\t}\n\treturn undefined;\n}\n\nexport function parseArgs(args: string[]): Args {\n\tconst result: Args = {\n\t\tmessages: [],\n\t};\n\n\tfor (let i = 0; i < args.length; i++) {\n\t\tconst arg = args[i];\n\n\t\tif (arg === \"--help\" || arg === \"-h\") {\n\t\t\tresult.help = true;\n\t\t} else if (arg === \"--help-hidden\" || arg === \"--help-all\") {\n\t\t\tresult.help = true;\n\t\t\tresult.helpHidden = true;\n\t\t} else if (arg === \"--list-modes-all\") {\n\t\t\tresult.listModesAll = true;\n\t\t} else if (arg === \"--version\" || arg === \"-v\") {\n\t\t\tresult.version = true;\n\t\t} else if (arg?.startsWith(\"--mode=\")) {\n\t\t\tconst mode = arg.slice(\"--mode=\".length);\n\t\t\tif (\n\t\t\t\tmode === \"text\" ||\n\t\t\t\tmode === \"json\" ||\n\t\t\t\tmode === \"rpc\" ||\n\t\t\t\tmode === \"headless\"\n\t\t\t) {\n\t\t\t\tresult.mode = mode;\n\t\t\t\tif (mode === \"headless\") {\n\t\t\t\t\tresult.headless = true;\n\t\t\t\t}\n\t\t\t}\n\t\t} else if (arg === \"--mode\" && i + 1 < args.length) {\n\t\t\tconst mode = args[++i];\n\t\t\tif (\n\t\t\t\tmode === \"text\" ||\n\t\t\t\tmode === \"json\" ||\n\t\t\t\tmode === \"rpc\" ||\n\t\t\t\tmode === \"headless\"\n\t\t\t) {\n\t\t\t\tresult.mode = mode;\n\t\t\t\tif (mode === \"headless\") {\n\t\t\t\t\tresult.headless = true;\n\t\t\t\t}\n\t\t\t}\n\t\t} else if (arg === \"--headless\") {\n\t\t\tresult.headless = true;\n\t\t\tresult.mode = \"headless\";\n\t\t} else if (arg === \"--continue\" || arg === \"-c\") {\n\t\t\tresult.continue = true;\n\t\t} else if (arg === \"--resume\" || arg === \"-r\") {\n\t\t\tif (result.command === \"exec\") {\n\t\t\t\tconst nextArg = args[i + 1];\n\t\t\t\tif (i + 1 < args.length && nextArg && !nextArg.startsWith(\"-\")) {\n\t\t\t\t\tresult.execResumeId = nextArg;\n\t\t\t\t\ti++;\n\t\t\t\t} else {\n\t\t\t\t\tresult.execUseLast = true;\n\t\t\t\t}\n\t\t\t} else {\n\t\t\t\tresult.resume = true;\n\t\t\t}\n\t\t} else if (arg === \"--provider\" && i + 1 < args.length) {\n\t\t\tresult.provider = args[++i];\n\t\t} else if ((arg === \"--model\" || arg === \"-m\") && i + 1 < args.length) {\n\t\t\tresult.model = args[++i];\n\t\t} else if (arg === \"--task-budget\") {\n\t\t\tconst rawValue = args[i + 1];\n\t\t\tif (\n\t\t\t\trawValue === undefined ||\n\t\t\t\t(rawValue.startsWith(\"-\") && Number.isNaN(Number(rawValue)))\n\t\t\t) {\n\t\t\t\tresult.error = \"--task-budget requires a value\";\n\t\t\t\tcontinue;\n\t\t\t}\n\n\t\t\ti++;\n\t\t\tconst value = Number(rawValue);\n\t\t\tif (Number.isInteger(value) && value > 0) {\n\t\t\t\tresult.taskBudget = value;\n\t\t\t} else {\n\t\t\t\tresult.error = \"--task-budget must be a positive integer\";\n\t\t\t}\n\t\t} else if (arg === \"--models\" && i + 1 < args.length) {\n\t\t\tconst modelsArg = args[++i]!;\n\t\t\tconst patterns = modelsArg\n\t\t\t\t.split(\",\")\n\t\t\t\t.map((value) => value.trim())\n\t\t\t\t.filter((value) => value.length > 0);\n\t\t\tif (patterns.length > 0) {\n\t\t\t\tresult.models = patterns;\n\t\t\t}\n\t\t} else if (arg === \"--models-file\" && i + 1 < args.length) {\n\t\t\tresult.modelsFile = args[++i];\n\t\t} else if (arg === \"--api-key\" && i + 1 < args.length) {\n\t\t\tresult.apiKey = args[++i];\n\t\t} else if (arg === \"--port\" && i + 1 < args.length) {\n\t\t\tconst value = Number.parseInt(args[++i] ?? \"\", 10);\n\t\t\tif (Number.isFinite(value) && value > 0 && value < 65536) {\n\t\t\t\tresult.port = value;\n\t\t\t}\n\t\t} else if (arg === \"--system-prompt\" && i + 1 < args.length) {\n\t\t\tresult.systemPrompt = args[++i];\n\t\t} else if (arg === \"--append-system-prompt\" && i + 1 < args.length) {\n\t\t\tresult.appendSystemPrompt = args[++i];\n\t\t} else if (arg === \"--no-session\") {\n\t\t\tresult.noSession = true;\n\t\t} else if (arg === \"--session\" && i + 1 < args.length) {\n\t\t\tresult.session = args[++i];\n\t\t} else if (arg === \"--safe-mode\") {\n\t\t\tresult.safeMode = true;\n\t\t} else if (arg === \"--approval-mode\" && i + 1 < args.length) {\n\t\t\tconst mode = args[++i];\n\t\t\tif (mode === \"auto\" || mode === \"prompt\" || mode === \"fail\") {\n\t\t\t\tresult.approvalMode = mode;\n\t\t\t}\n\t\t} else if (arg === \"--auth\" && i + 1 < args.length) {\n\t\t\tconst value = args[++i];\n\t\t\tif (value === \"auto\" || value === \"api-key\") {\n\t\t\t\tresult.authMode = value;\n\t\t\t}\n\t\t} else if (arg === \"--force\") {\n\t\t\tresult.force = true;\n\t\t} else if (arg === \"--json\") {\n\t\t\tresult.execJson = true;\n\t\t} else if (arg === \"--full-auto\") {\n\t\t\tresult.execFullAuto = true;\n\t\t} else if (arg === \"--read-only\") {\n\t\t\tresult.execReadOnly = true;\n\t\t} else if (arg === \"--sandbox\" && i + 1 < args.length) {\n\t\t\tresult.sandbox = args[++i];\n\t\t} else if (arg === \"--output-schema\" && i + 1 < args.length) {\n\t\t\tresult.execOutputSchema = args[++i];\n\t\t} else if (arg === \"--output-last-message\" && i + 1 < args.length) {\n\t\t\tresult.execOutputLast = args[++i];\n\t\t} else if (arg === \"--last\" && result.command === \"exec\") {\n\t\t\tresult.execUseLast = true;\n\t\t} else if (arg === \"--tools\" && i + 1 < args.length) {\n\t\t\tconst toolsArg = args[++i]!;\n\t\t\tconst toolNames = toolsArg\n\t\t\t\t.split(\",\")\n\t\t\t\t.map((value) => value.trim())\n\t\t\t\t.filter((value) => value.length > 0);\n\t\t\tif (toolNames.length > 0) {\n\t\t\t\tresult.tools = toolNames;\n\t\t\t}\n\t\t} else if (arg === \"--readonly\" || arg === \"--read-only-mode\") {\n\t\t\tresult.readonly = true;\n\t\t} else if (arg === \"--composer\" && i + 1 < args.length) {\n\t\t\tresult.composer = args[++i];\n\t\t} else if (arg === \"--format\" && i + 1 < args.length) {\n\t\t\tresult.exportFormat = args[++i];\n\t\t} else if (arg === \"--redact-secrets\") {\n\t\t\tresult.redactSecrets = true;\n\t\t} else if (arg === \"--junit\" && i + 1 < args.length) {\n\t\t\tresult.junitPath = args[++i]!;\n\t\t} else if (arg === \"--replay\" && i + 1 < args.length) {\n\t\t\tresult.replayScenarioPath = args[++i]!;\n\t\t} else if (arg === \"--record-scenario\" && i + 1 < args.length) {\n\t\t\tresult.recordScenarioPath = args[++i]!;\n\t\t} else if (arg === \"--live-mcp\") {\n\t\t\tresult.contextLiveMcp = true;\n\t\t} else if (arg === \"--profile\" && i + 1 < args.length) {\n\t\t\tresult.profile = args[++i];\n\t\t} else if (arg === \"--config\" && i + 1 < args.length) {\n\t\t\t// Config overrides in key=value format\n\t\t\tconst override = args[++i]!;\n\t\t\tif (!result.configOverrides) {\n\t\t\t\tresult.configOverrides = [];\n\t\t\t}\n\t\t\tresult.configOverrides.push(override);\n\t\t} else if (arg && DEPRECATED_FLAGS_WITH_VALUES.has(arg)) {\n\t\t\t// Preserve the later migration error from validateCodexFlags().\n\t\t\tconst nextArg = args[i + 1];\n\t\t\tif (nextArg && !nextArg.startsWith(\"-\") && !COMMANDS.has(nextArg)) {\n\t\t\t\ti++;\n\t\t\t}\n\t\t} else if (\n\t\t\targ &&\n\t\t\t(Array.from(DEPRECATED_FLAGS_WITH_VALUES).some((flag) =>\n\t\t\t\targ.startsWith(`${flag}=`),\n\t\t\t) ||\n\t\t\t\tDEPRECATED_FLAG_PREFIXES.some((flag) => arg.startsWith(flag)))\n\t\t) {\n\t\t\t// Preserve the later migration error from validateCodexFlags().\n\t\t} else if (\n\t\t\tresult.command === \"codex\" &&\n\t\t\tresult.subcommand === \"login\" &&\n\t\t\t(arg === \"--device\" || arg === \"--device-code\" || arg === \"--device-auth\")\n\t\t) {\n\t\t\tif (!result.commandArgs) {\n\t\t\t\tresult.commandArgs = [];\n\t\t\t}\n\t\t\tresult.commandArgs.push(arg);\n\t\t} else if (arg && isConfigInitPresetFlag(result, arg)) {\n\t\t\tconst nextArg = args[i + 1];\n\t\t\tif (nextArg && !nextArg.startsWith(\"-\")) {\n\t\t\t\ti++;\n\t\t\t}\n\t\t} else if (arg?.startsWith(\"-\")) {\n\t\t\tresult.error = `Unknown option: ${arg}`;\n\t\t} else if (arg) {\n\t\t\tconst nextArg = args[i + 1];\n\t\t\tconst isCommandToken =\n\t\t\t\tCOMMANDS.has(arg) &&\n\t\t\t\t(arg !== \"run\" ||\n\t\t\t\t\t(result.messages.length === 0 &&\n\t\t\t\t\t\tRUN_SUBCOMMANDS.has(nextNonFlagToken(args, i + 1) ?? \"\")));\n\t\t\tif (!result.command && isCommandToken) {\n\t\t\t\tresult.command = arg;\n\t\t\t\tconst shouldConsumeSubcommand =\n\t\t\t\t\tSUBCOMMAND_COMMANDS.has(arg) &&\n\t\t\t\t\t(arg !== \"context\" || nextArg === \"explain\" || nextArg === \"diff\");\n\t\t\t\tif (\n\t\t\t\t\tshouldConsumeSubcommand &&\n\t\t\t\t\ti + 1 < args.length &&\n\t\t\t\t\tnextArg &&\n\t\t\t\t\t!nextArg.startsWith(\"-\")\n\t\t\t\t) {\n\t\t\t\t\tresult.subcommand = nextArg;\n\t\t\t\t\ti++;\n\t\t\t\t}\n\t\t\t\tif (\n\t\t\t\t\targ === \"remote\" ||\n\t\t\t\t\targ === \"a2a\" ||\n\t\t\t\t\targ === \"operating-plane\" ||\n\t\t\t\t\targ === \"hosted-runner\" ||\n\t\t\t\t\targ === \"init\" ||\n\t\t\t\t\targ === \"evalops\" ||\n\t\t\t\t\targ === \"skill\"\n\t\t\t\t) {\n\t\t\t\t\tresult.commandArgs = args.slice(i + 1);\n\t\t\t\t\tbreak;\n\t\t\t\t}\n\t\t\t} else {\n\t\t\t\tresult.messages.push(arg);\n\t\t\t}\n\t\t}\n\t}\n\n\tif (\n\t\tresult.command === \"run\" &&\n\t\t!result.subcommand &&\n\t\tresult.messages[0] &&\n\t\tRUN_SUBCOMMANDS.has(result.messages[0])\n\t) {\n\t\tresult.subcommand = result.messages[0];\n\t\tresult.messages = result.messages.slice(1);\n\t}\n\n\treturn result;\n}\n"]}
|
|
1
|
+
{"version":3,"file":"args.js","sourceRoot":"","sources":["../../src/cli/args.ts"],"names":[],"mappings":"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","sourcesContent":["export type Mode = \"text\" | \"json\" | \"rpc\" | \"headless\";\n\nexport interface Args {\n\tprovider?: string;\n\tmodel?: string;\n\ttaskBudget?: number;\n\terror?: string;\n\tmodelsFile?: string;\n\tapiKey?: string;\n\tsystemPrompt?: string;\n\tappendSystemPrompt?: string;\n\t/** Port for `maestro web` (defaults to PORT env or 8080) */\n\tport?: number;\n\tcontinue?: boolean;\n\tresume?: boolean;\n\thelp?: boolean;\n\thelpHidden?: boolean;\n\tversion?: boolean;\n\tlistModesAll?: boolean;\n\tmode?: Mode;\n\t/** Run in headless mode for native TUI communication */\n\theadless?: boolean;\n\tnoSession?: boolean;\n\tsession?: string;\n\tsafeMode?: boolean;\n\tcommand?: string;\n\tsubcommand?: string;\n\t/** Raw arguments owned by command-group handlers. */\n\tcommandArgs?: string[];\n\tcontextLiveMcp?: boolean;\n\tapprovalMode?: \"auto\" | \"prompt\" | \"fail\";\n\tauthMode?: \"auto\" | \"api-key\";\n\tforce?: boolean;\n\texecJson?: boolean;\n\texecFullAuto?: boolean;\n\texecReadOnly?: boolean;\n\t/** Sandbox backend or policy mode */\n\tsandbox?: string;\n\texecOutputSchema?: string;\n\texecOutputLast?: string;\n\texecResumeId?: string;\n\texecUseLast?: boolean;\n\tmodels?: string[];\n\ttools?: string[];\n\tmessages: string[];\n\t/** TOML config profile to activate */\n\tprofile?: string;\n\t/** CLI config overrides in key=value format */\n\tconfigOverrides?: string[];\n\t/** Start in read-only mode (activates explore composer) */\n\treadonly?: boolean;\n\t/** Agent profile to activate on startup */\n\tcomposer?: string;\n\texportFormat?: string;\n\tredactSecrets?: boolean;\n\tjunitPath?: string;\n\t/** Open a real agent session backed by a scripted replay scenario. */\n\treplayScenarioPath?: string;\n\t/** Record assistant turns into a scripted replay scenario file. */\n\trecordScenarioPath?: string;\n}\n\nconst COMMANDS = new Set([\n\t\"config\",\n\t\"context\",\n\t\"modes\",\n\t\"models\",\n\t\"cost\",\n\t\"stats\",\n\t\"status\",\n\t\"update\",\n\t\"run\",\n\t\"agents\",\n\t\"a2a\",\n\t\"operating-plane\",\n\t\"exec\",\n\t\"web\",\n\t\"hosted-runner\",\n\t\"init\",\n\t\"anthropic\",\n\t\"evalops\",\n\t\"openai\",\n\t\"codex\",\n\t\"hooks\",\n\t\"skill\",\n\t\"memory\",\n\t\"remote\",\n\t\"export\",\n\t\"import\",\n\t\"scenario\",\n]);\nconst SUBCOMMAND_COMMANDS = new Set([\n\t\"config\",\n\t\"context\",\n\t\"modes\",\n\t\"models\",\n\t\"cost\",\n\t\"stats\",\n\t\"run\",\n\t\"agents\",\n\t\"anthropic\",\n\t\"evalops\",\n\t\"openai\",\n\t\"codex\",\n\t\"hooks\",\n\t\"skill\",\n\t\"memory\",\n\t\"remote\",\n\t\"scenario\",\n]);\nconst RUN_SUBCOMMANDS = new Set([\"inspect\", \"ledger\", \"replay\", \"promote\"]);\n\nconst FLAGS_WITH_VALUES = new Set([\n\t\"--mode\",\n\t\"--provider\",\n\t\"--model\",\n\t\"-m\",\n\t\"--task-budget\",\n\t\"--models\",\n\t\"--models-file\",\n\t\"--api-key\",\n\t\"--port\",\n\t\"--system-prompt\",\n\t\"--append-system-prompt\",\n\t\"--session\",\n\t\"--approval-mode\",\n\t\"--auth\",\n\t\"--sandbox\",\n\t\"--output-schema\",\n\t\"--output-last-message\",\n\t\"--tools\",\n\t\"--composer\",\n\t\"--format\",\n\t\"--profile\",\n\t\"--config\",\n\t\"--junit\",\n\t\"--replay\",\n\t\"--record-scenario\",\n]);\n\nconst DEPRECATED_FLAGS_WITH_VALUES = new Set([\"--codex-api-key\"]);\nconst DEPRECATED_FLAG_PREFIXES = [\"--auth=chatgpt\", \"--auth=claude\"];\n\nfunction isConfigInitPresetFlag(result: Args, arg: string): boolean {\n\treturn (\n\t\tresult.command === \"config\" &&\n\t\tresult.subcommand === \"init\" &&\n\t\t(arg === \"--preset\" || arg === \"-p\")\n\t);\n}\n\nfunction nextNonFlagToken(args: string[], start: number): string | undefined {\n\tfor (let index = start; index < args.length; index++) {\n\t\tconst token = args[index];\n\t\tif (!token) continue;\n\t\tif (!token.startsWith(\"-\")) {\n\t\t\treturn token;\n\t\t}\n\t\tif (FLAGS_WITH_VALUES.has(token) && index + 1 < args.length) {\n\t\t\tindex++;\n\t\t}\n\t}\n\treturn undefined;\n}\n\nexport function parseArgs(args: string[]): Args {\n\tconst result: Args = {\n\t\tmessages: [],\n\t};\n\n\tfor (let i = 0; i < args.length; i++) {\n\t\tconst arg = args[i];\n\n\t\tif (arg === \"--help\" || arg === \"-h\") {\n\t\t\tresult.help = true;\n\t\t} else if (arg === \"--help-hidden\" || arg === \"--help-all\") {\n\t\t\tresult.help = true;\n\t\t\tresult.helpHidden = true;\n\t\t} else if (arg === \"--list-modes-all\") {\n\t\t\tresult.listModesAll = true;\n\t\t} else if (arg === \"--version\" || arg === \"-v\") {\n\t\t\tresult.version = true;\n\t\t} else if (arg?.startsWith(\"--mode=\")) {\n\t\t\tconst mode = arg.slice(\"--mode=\".length);\n\t\t\tif (\n\t\t\t\tmode === \"text\" ||\n\t\t\t\tmode === \"json\" ||\n\t\t\t\tmode === \"rpc\" ||\n\t\t\t\tmode === \"headless\"\n\t\t\t) {\n\t\t\t\tresult.mode = mode;\n\t\t\t\tif (mode === \"headless\") {\n\t\t\t\t\tresult.headless = true;\n\t\t\t\t}\n\t\t\t}\n\t\t} else if (arg === \"--mode\" && i + 1 < args.length) {\n\t\t\tconst mode = args[++i];\n\t\t\tif (\n\t\t\t\tmode === \"text\" ||\n\t\t\t\tmode === \"json\" ||\n\t\t\t\tmode === \"rpc\" ||\n\t\t\t\tmode === \"headless\"\n\t\t\t) {\n\t\t\t\tresult.mode = mode;\n\t\t\t\tif (mode === \"headless\") {\n\t\t\t\t\tresult.headless = true;\n\t\t\t\t}\n\t\t\t}\n\t\t} else if (arg === \"--headless\") {\n\t\t\tresult.headless = true;\n\t\t\tresult.mode = \"headless\";\n\t\t} else if (arg === \"--continue\" || arg === \"-c\") {\n\t\t\tresult.continue = true;\n\t\t} else if (arg === \"--resume\" || arg === \"-r\") {\n\t\t\tif (result.command === \"exec\") {\n\t\t\t\tconst nextArg = args[i + 1];\n\t\t\t\tif (i + 1 < args.length && nextArg && !nextArg.startsWith(\"-\")) {\n\t\t\t\t\tresult.execResumeId = nextArg;\n\t\t\t\t\ti++;\n\t\t\t\t} else {\n\t\t\t\t\tresult.execUseLast = true;\n\t\t\t\t}\n\t\t\t} else {\n\t\t\t\tresult.resume = true;\n\t\t\t}\n\t\t} else if (arg === \"--provider\" && i + 1 < args.length) {\n\t\t\tresult.provider = args[++i];\n\t\t} else if ((arg === \"--model\" || arg === \"-m\") && i + 1 < args.length) {\n\t\t\tresult.model = args[++i];\n\t\t} else if (arg === \"--task-budget\") {\n\t\t\tconst rawValue = args[i + 1];\n\t\t\tif (\n\t\t\t\trawValue === undefined ||\n\t\t\t\t(rawValue.startsWith(\"-\") && Number.isNaN(Number(rawValue)))\n\t\t\t) {\n\t\t\t\tresult.error = \"--task-budget requires a value\";\n\t\t\t\tcontinue;\n\t\t\t}\n\n\t\t\ti++;\n\t\t\tconst value = Number(rawValue);\n\t\t\tif (Number.isInteger(value) && value > 0) {\n\t\t\t\tresult.taskBudget = value;\n\t\t\t} else {\n\t\t\t\tresult.error = \"--task-budget must be a positive integer\";\n\t\t\t}\n\t\t} else if (arg === \"--models\" && i + 1 < args.length) {\n\t\t\tconst modelsArg = args[++i]!;\n\t\t\tconst patterns = modelsArg\n\t\t\t\t.split(\",\")\n\t\t\t\t.map((value) => value.trim())\n\t\t\t\t.filter((value) => value.length > 0);\n\t\t\tif (patterns.length > 0) {\n\t\t\t\tresult.models = patterns;\n\t\t\t}\n\t\t} else if (arg === \"--models-file\" && i + 1 < args.length) {\n\t\t\tresult.modelsFile = args[++i];\n\t\t} else if (arg === \"--api-key\" && i + 1 < args.length) {\n\t\t\tresult.apiKey = args[++i];\n\t\t} else if (arg === \"--port\" && i + 1 < args.length) {\n\t\t\tconst value = Number.parseInt(args[++i] ?? \"\", 10);\n\t\t\tif (Number.isFinite(value) && value > 0 && value < 65536) {\n\t\t\t\tresult.port = value;\n\t\t\t}\n\t\t} else if (arg === \"--system-prompt\" && i + 1 < args.length) {\n\t\t\tresult.systemPrompt = args[++i];\n\t\t} else if (arg === \"--append-system-prompt\" && i + 1 < args.length) {\n\t\t\tresult.appendSystemPrompt = args[++i];\n\t\t} else if (arg === \"--no-session\") {\n\t\t\tresult.noSession = true;\n\t\t} else if (arg === \"--session\" && i + 1 < args.length) {\n\t\t\tresult.session = args[++i];\n\t\t} else if (arg === \"--safe-mode\") {\n\t\t\tresult.safeMode = true;\n\t\t} else if (arg === \"--approval-mode\" && i + 1 < args.length) {\n\t\t\tconst mode = args[++i];\n\t\t\tif (mode === \"auto\" || mode === \"prompt\" || mode === \"fail\") {\n\t\t\t\tresult.approvalMode = mode;\n\t\t\t}\n\t\t} else if (arg === \"--auth\" && i + 1 < args.length) {\n\t\t\tconst value = args[++i];\n\t\t\tif (value === \"auto\" || value === \"api-key\") {\n\t\t\t\tresult.authMode = value;\n\t\t\t}\n\t\t} else if (arg === \"--force\") {\n\t\t\tresult.force = true;\n\t\t} else if (arg === \"--json\") {\n\t\t\tresult.execJson = true;\n\t\t} else if (arg === \"--full-auto\") {\n\t\t\tresult.execFullAuto = true;\n\t\t} else if (arg === \"--read-only\") {\n\t\t\tresult.execReadOnly = true;\n\t\t} else if (arg === \"--sandbox\" && i + 1 < args.length) {\n\t\t\tresult.sandbox = args[++i];\n\t\t} else if (arg === \"--output-schema\" && i + 1 < args.length) {\n\t\t\tresult.execOutputSchema = args[++i];\n\t\t} else if (arg === \"--output-last-message\" && i + 1 < args.length) {\n\t\t\tresult.execOutputLast = args[++i];\n\t\t} else if (arg === \"--last\" && result.command === \"exec\") {\n\t\t\tresult.execUseLast = true;\n\t\t} else if (arg === \"--tools\" && i + 1 < args.length) {\n\t\t\tconst toolsArg = args[++i]!;\n\t\t\tconst toolNames = toolsArg\n\t\t\t\t.split(\",\")\n\t\t\t\t.map((value) => value.trim())\n\t\t\t\t.filter((value) => value.length > 0);\n\t\t\tif (toolNames.length > 0) {\n\t\t\t\tresult.tools = toolNames;\n\t\t\t}\n\t\t} else if (arg === \"--readonly\" || arg === \"--read-only-mode\") {\n\t\t\tresult.readonly = true;\n\t\t} else if (arg === \"--composer\" && i + 1 < args.length) {\n\t\t\tresult.composer = args[++i];\n\t\t} else if (arg === \"--format\" && i + 1 < args.length) {\n\t\t\tresult.exportFormat = args[++i];\n\t\t} else if (arg === \"--redact-secrets\") {\n\t\t\tresult.redactSecrets = true;\n\t\t} else if (arg === \"--junit\" && i + 1 < args.length) {\n\t\t\tresult.junitPath = args[++i]!;\n\t\t} else if (arg === \"--replay\" && i + 1 < args.length) {\n\t\t\tresult.replayScenarioPath = args[++i]!;\n\t\t} else if (arg === \"--record-scenario\" && i + 1 < args.length) {\n\t\t\tresult.recordScenarioPath = args[++i]!;\n\t\t} else if (arg === \"--live-mcp\") {\n\t\t\tresult.contextLiveMcp = true;\n\t\t} else if (arg === \"--profile\" && i + 1 < args.length) {\n\t\t\tresult.profile = args[++i];\n\t\t} else if (arg === \"--config\" && i + 1 < args.length) {\n\t\t\t// Config overrides in key=value format\n\t\t\tconst override = args[++i]!;\n\t\t\tif (!result.configOverrides) {\n\t\t\t\tresult.configOverrides = [];\n\t\t\t}\n\t\t\tresult.configOverrides.push(override);\n\t\t} else if (arg && DEPRECATED_FLAGS_WITH_VALUES.has(arg)) {\n\t\t\t// Preserve the later migration error from validateCodexFlags().\n\t\t\tconst nextArg = args[i + 1];\n\t\t\tif (nextArg && !nextArg.startsWith(\"-\") && !COMMANDS.has(nextArg)) {\n\t\t\t\ti++;\n\t\t\t}\n\t\t} else if (\n\t\t\targ &&\n\t\t\t(Array.from(DEPRECATED_FLAGS_WITH_VALUES).some((flag) =>\n\t\t\t\targ.startsWith(`${flag}=`),\n\t\t\t) ||\n\t\t\t\tDEPRECATED_FLAG_PREFIXES.some((flag) => arg.startsWith(flag)))\n\t\t) {\n\t\t\t// Preserve the later migration error from validateCodexFlags().\n\t\t} else if (\n\t\t\tresult.command === \"codex\" &&\n\t\t\tresult.subcommand === \"login\" &&\n\t\t\t(arg === \"--device\" || arg === \"--device-code\" || arg === \"--device-auth\")\n\t\t) {\n\t\t\tif (!result.commandArgs) {\n\t\t\t\tresult.commandArgs = [];\n\t\t\t}\n\t\t\tresult.commandArgs.push(arg);\n\t\t} else if (arg && isConfigInitPresetFlag(result, arg)) {\n\t\t\tconst nextArg = args[i + 1];\n\t\t\tif (nextArg && !nextArg.startsWith(\"-\")) {\n\t\t\t\ti++;\n\t\t\t}\n\t\t} else if (arg?.startsWith(\"-\")) {\n\t\t\tresult.error = `Unknown option: ${arg}`;\n\t\t} else if (arg) {\n\t\t\tconst nextArg = args[i + 1];\n\t\t\tconst isCommandToken =\n\t\t\t\tCOMMANDS.has(arg) &&\n\t\t\t\t(arg !== \"run\" ||\n\t\t\t\t\t(result.messages.length === 0 &&\n\t\t\t\t\t\tRUN_SUBCOMMANDS.has(nextNonFlagToken(args, i + 1) ?? \"\")));\n\t\t\tif (!result.command && isCommandToken) {\n\t\t\t\tresult.command = arg;\n\t\t\t\tconst shouldConsumeSubcommand =\n\t\t\t\t\tSUBCOMMAND_COMMANDS.has(arg) &&\n\t\t\t\t\t(arg !== \"context\" || nextArg === \"explain\" || nextArg === \"diff\");\n\t\t\t\tif (\n\t\t\t\t\tshouldConsumeSubcommand &&\n\t\t\t\t\ti + 1 < args.length &&\n\t\t\t\t\tnextArg &&\n\t\t\t\t\t!nextArg.startsWith(\"-\")\n\t\t\t\t) {\n\t\t\t\t\tresult.subcommand = nextArg;\n\t\t\t\t\ti++;\n\t\t\t\t}\n\t\t\t\tif (\n\t\t\t\t\targ === \"remote\" ||\n\t\t\t\t\targ === \"a2a\" ||\n\t\t\t\t\targ === \"operating-plane\" ||\n\t\t\t\t\targ === \"hosted-runner\" ||\n\t\t\t\t\targ === \"init\" ||\n\t\t\t\t\targ === \"evalops\" ||\n\t\t\t\t\targ === \"update\" ||\n\t\t\t\t\targ === \"skill\"\n\t\t\t\t) {\n\t\t\t\t\tresult.commandArgs = args.slice(i + 1);\n\t\t\t\t\tbreak;\n\t\t\t\t}\n\t\t\t} else {\n\t\t\t\tresult.messages.push(arg);\n\t\t\t}\n\t\t}\n\t}\n\n\tif (\n\t\tresult.command === \"run\" &&\n\t\t!result.subcommand &&\n\t\tresult.messages[0] &&\n\t\tRUN_SUBCOMMANDS.has(result.messages[0])\n\t) {\n\t\tresult.subcommand = result.messages[0];\n\t\tresult.messages = result.messages.slice(1);\n\t}\n\n\treturn result;\n}\n"]}
|
|
@@ -0,0 +1,12 @@
|
|
|
1
|
+
import { checkForUpdate } from "../../update/check.js";
|
|
2
|
+
import { attemptStartupUpdate } from "../../update/startup-refresh.js";
|
|
3
|
+
interface UpdateCommandDeps {
|
|
4
|
+
attemptStartupUpdateImpl?: typeof attemptStartupUpdate;
|
|
5
|
+
checkForUpdateImpl?: typeof checkForUpdate;
|
|
6
|
+
currentVersion?: string;
|
|
7
|
+
env?: NodeJS.ProcessEnv;
|
|
8
|
+
isTty?: boolean;
|
|
9
|
+
}
|
|
10
|
+
export declare function handleUpdateCommand(commandArgs?: string[], deps?: UpdateCommandDeps): Promise<void>;
|
|
11
|
+
export {};
|
|
12
|
+
//# sourceMappingURL=update.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"update.d.ts","sourceRoot":"","sources":["../../../src/cli/commands/update.ts"],"names":[],"mappings":"AAEA,OAAO,EAA0B,cAAc,EAAE,MAAM,uBAAuB,CAAC;AAC/E,OAAO,EAEN,oBAAoB,EACpB,MAAM,iCAAiC,CAAC;AAQzC,UAAU,iBAAiB;IAC1B,wBAAwB,CAAC,EAAE,OAAO,oBAAoB,CAAC;IACvD,kBAAkB,CAAC,EAAE,OAAO,cAAc,CAAC;IAC3C,cAAc,CAAC,EAAE,MAAM,CAAC;IACxB,GAAG,CAAC,EAAE,MAAM,CAAC,UAAU,CAAC;IACxB,KAAK,CAAC,EAAE,OAAO,CAAC;CAChB;AA+ED,wBAAsB,mBAAmB,CACxC,WAAW,GAAE,MAAM,EAAO,EAC1B,IAAI,GAAE,iBAAsB,GAC1B,OAAO,CAAC,IAAI,CAAC,CA4Ff"}
|
|
@@ -0,0 +1,148 @@
|
|
|
1
|
+
import chalk from "chalk";
|
|
2
|
+
import { getPackageVersion } from "../../package-metadata.js";
|
|
3
|
+
import { checkForUpdate } from "../../update/check.js";
|
|
4
|
+
import { attemptStartupUpdate, } from "../../update/startup-refresh.js";
|
|
5
|
+
const STARTUP_UPDATE_SKIP_ENV = "MAESTRO_SKIP_STARTUP_UPDATE";
|
|
6
|
+
const STARTUP_UPDATE_MODE_ENV = "MAESTRO_STARTUP_UPDATE";
|
|
7
|
+
const STARTUP_UPDATE_RETRY_ENV = "MAESTRO_STARTUP_UPDATE_RETRY_MS";
|
|
8
|
+
function parseUpdateArgs(args) {
|
|
9
|
+
const parsed = {
|
|
10
|
+
check: false,
|
|
11
|
+
help: false,
|
|
12
|
+
json: false,
|
|
13
|
+
};
|
|
14
|
+
for (const arg of args) {
|
|
15
|
+
switch (arg) {
|
|
16
|
+
case "--check":
|
|
17
|
+
parsed.check = true;
|
|
18
|
+
break;
|
|
19
|
+
case "--json":
|
|
20
|
+
parsed.json = true;
|
|
21
|
+
break;
|
|
22
|
+
case "--help":
|
|
23
|
+
case "-h":
|
|
24
|
+
parsed.help = true;
|
|
25
|
+
break;
|
|
26
|
+
default:
|
|
27
|
+
return { error: `Unknown maestro update option: ${arg}` };
|
|
28
|
+
}
|
|
29
|
+
}
|
|
30
|
+
return parsed;
|
|
31
|
+
}
|
|
32
|
+
function printUpdateHelp() {
|
|
33
|
+
console.log(`Usage: maestro update [--check] [--json]
|
|
34
|
+
|
|
35
|
+
Options:
|
|
36
|
+
--check Check for the newest Maestro version without installing it
|
|
37
|
+
--json Print machine-readable update status
|
|
38
|
+
--help Show this help`);
|
|
39
|
+
}
|
|
40
|
+
function printJson(value) {
|
|
41
|
+
console.log(JSON.stringify(value, null, 2));
|
|
42
|
+
}
|
|
43
|
+
function formatCheckMessage(check) {
|
|
44
|
+
if (check.error) {
|
|
45
|
+
return `Maestro update check failed: ${check.error}`;
|
|
46
|
+
}
|
|
47
|
+
if (check.isUpdateAvailable && check.latestVersion) {
|
|
48
|
+
return `Maestro ${check.latestVersion} is available (current ${check.currentVersion}).`;
|
|
49
|
+
}
|
|
50
|
+
return `Maestro is up to date (${check.currentVersion}).`;
|
|
51
|
+
}
|
|
52
|
+
function installEnv(env) {
|
|
53
|
+
const nextEnv = { ...env };
|
|
54
|
+
delete nextEnv[STARTUP_UPDATE_SKIP_ENV];
|
|
55
|
+
delete nextEnv[STARTUP_UPDATE_MODE_ENV];
|
|
56
|
+
delete nextEnv.CI;
|
|
57
|
+
delete nextEnv.NODE_ENV;
|
|
58
|
+
nextEnv[STARTUP_UPDATE_RETRY_ENV] = "0";
|
|
59
|
+
return nextEnv;
|
|
60
|
+
}
|
|
61
|
+
function jsonForOutcome(outcome) {
|
|
62
|
+
const check = "check" in outcome ? outcome.check : undefined;
|
|
63
|
+
return {
|
|
64
|
+
status: outcome.status,
|
|
65
|
+
reason: "reason" in outcome ? outcome.reason : undefined,
|
|
66
|
+
error: "error" in outcome ? outcome.error : undefined,
|
|
67
|
+
exitCode: "exitCode" in outcome ? outcome.exitCode : undefined,
|
|
68
|
+
currentVersion: check?.currentVersion,
|
|
69
|
+
latestVersion: check?.latestVersion,
|
|
70
|
+
sourceUrl: check?.sourceUrl,
|
|
71
|
+
};
|
|
72
|
+
}
|
|
73
|
+
export async function handleUpdateCommand(commandArgs = [], deps = {}) {
|
|
74
|
+
const parsed = parseUpdateArgs(commandArgs);
|
|
75
|
+
if ("error" in parsed) {
|
|
76
|
+
console.error(chalk.red(parsed.error));
|
|
77
|
+
process.exitCode = 1;
|
|
78
|
+
return;
|
|
79
|
+
}
|
|
80
|
+
if (parsed.help) {
|
|
81
|
+
printUpdateHelp();
|
|
82
|
+
return;
|
|
83
|
+
}
|
|
84
|
+
const currentVersion = deps.currentVersion ?? getPackageVersion();
|
|
85
|
+
const env = deps.env ?? process.env;
|
|
86
|
+
if (parsed.check) {
|
|
87
|
+
const check = await (deps.checkForUpdateImpl ?? checkForUpdate)(currentVersion);
|
|
88
|
+
if (parsed.json) {
|
|
89
|
+
printJson({
|
|
90
|
+
status: check.error
|
|
91
|
+
? "failed"
|
|
92
|
+
: check.isUpdateAvailable
|
|
93
|
+
? "available"
|
|
94
|
+
: "current",
|
|
95
|
+
currentVersion: check.currentVersion,
|
|
96
|
+
latestVersion: check.latestVersion,
|
|
97
|
+
sourceUrl: check.sourceUrl,
|
|
98
|
+
error: check.error,
|
|
99
|
+
});
|
|
100
|
+
}
|
|
101
|
+
else if (check.error) {
|
|
102
|
+
console.error(chalk.red(formatCheckMessage(check)));
|
|
103
|
+
}
|
|
104
|
+
else {
|
|
105
|
+
console.log(formatCheckMessage(check));
|
|
106
|
+
}
|
|
107
|
+
if (check.error) {
|
|
108
|
+
process.exitCode = 1;
|
|
109
|
+
}
|
|
110
|
+
return;
|
|
111
|
+
}
|
|
112
|
+
const outcome = await (deps.attemptStartupUpdateImpl ?? attemptStartupUpdate)({
|
|
113
|
+
args: [],
|
|
114
|
+
currentVersion,
|
|
115
|
+
env: installEnv(env),
|
|
116
|
+
isTty: deps.isTty ?? true,
|
|
117
|
+
restart: false,
|
|
118
|
+
});
|
|
119
|
+
if (parsed.json) {
|
|
120
|
+
printJson(jsonForOutcome(outcome));
|
|
121
|
+
}
|
|
122
|
+
else {
|
|
123
|
+
switch (outcome.status) {
|
|
124
|
+
case "updated":
|
|
125
|
+
console.log(chalk.green(`Updated Maestro to ${outcome.check.latestVersion ?? "the latest version"}.`));
|
|
126
|
+
break;
|
|
127
|
+
case "current":
|
|
128
|
+
console.log(formatCheckMessage(outcome.check));
|
|
129
|
+
break;
|
|
130
|
+
case "available":
|
|
131
|
+
console.log(`Maestro ${outcome.check.latestVersion ?? "update"} is available, but automatic install was not attempted.`);
|
|
132
|
+
break;
|
|
133
|
+
case "skipped":
|
|
134
|
+
console.error(chalk.yellow(`Maestro update skipped: ${outcome.reason}.`));
|
|
135
|
+
break;
|
|
136
|
+
case "failed":
|
|
137
|
+
console.error(chalk.red(`Maestro update failed: ${outcome.error}`));
|
|
138
|
+
break;
|
|
139
|
+
case "restarted":
|
|
140
|
+
console.log(chalk.green(`Updated Maestro to ${outcome.check.latestVersion ?? "the latest version"}.`));
|
|
141
|
+
break;
|
|
142
|
+
}
|
|
143
|
+
}
|
|
144
|
+
if (outcome.status === "failed" || outcome.status === "skipped") {
|
|
145
|
+
process.exitCode = 1;
|
|
146
|
+
}
|
|
147
|
+
}
|
|
148
|
+
//# sourceMappingURL=update.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"update.js","sourceRoot":"","sources":["../../../src/cli/commands/update.ts"],"names":[],"mappings":"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","sourcesContent":["import chalk from \"chalk\";\nimport { getPackageVersion } from \"../../package-metadata.js\";\nimport { type UpdateCheckResult, checkForUpdate } from \"../../update/check.js\";\nimport {\n\ttype StartupUpdateOutcome,\n\tattemptStartupUpdate,\n} from \"../../update/startup-refresh.js\";\n\ninterface ParsedUpdateArgs {\n\tcheck: boolean;\n\thelp: boolean;\n\tjson: boolean;\n}\n\ninterface UpdateCommandDeps {\n\tattemptStartupUpdateImpl?: typeof attemptStartupUpdate;\n\tcheckForUpdateImpl?: typeof checkForUpdate;\n\tcurrentVersion?: string;\n\tenv?: NodeJS.ProcessEnv;\n\tisTty?: boolean;\n}\n\nconst STARTUP_UPDATE_SKIP_ENV = \"MAESTRO_SKIP_STARTUP_UPDATE\";\nconst STARTUP_UPDATE_MODE_ENV = \"MAESTRO_STARTUP_UPDATE\";\nconst STARTUP_UPDATE_RETRY_ENV = \"MAESTRO_STARTUP_UPDATE_RETRY_MS\";\n\nfunction parseUpdateArgs(args: string[]): ParsedUpdateArgs | { error: string } {\n\tconst parsed: ParsedUpdateArgs = {\n\t\tcheck: false,\n\t\thelp: false,\n\t\tjson: false,\n\t};\n\n\tfor (const arg of args) {\n\t\tswitch (arg) {\n\t\t\tcase \"--check\":\n\t\t\t\tparsed.check = true;\n\t\t\t\tbreak;\n\t\t\tcase \"--json\":\n\t\t\t\tparsed.json = true;\n\t\t\t\tbreak;\n\t\t\tcase \"--help\":\n\t\t\tcase \"-h\":\n\t\t\t\tparsed.help = true;\n\t\t\t\tbreak;\n\t\t\tdefault:\n\t\t\t\treturn { error: `Unknown maestro update option: ${arg}` };\n\t\t}\n\t}\n\n\treturn parsed;\n}\n\nfunction printUpdateHelp(): void {\n\tconsole.log(`Usage: maestro update [--check] [--json]\n\nOptions:\n --check Check for the newest Maestro version without installing it\n --json Print machine-readable update status\n --help Show this help`);\n}\n\nfunction printJson(value: unknown): void {\n\tconsole.log(JSON.stringify(value, null, 2));\n}\n\nfunction formatCheckMessage(check: UpdateCheckResult): string {\n\tif (check.error) {\n\t\treturn `Maestro update check failed: ${check.error}`;\n\t}\n\tif (check.isUpdateAvailable && check.latestVersion) {\n\t\treturn `Maestro ${check.latestVersion} is available (current ${check.currentVersion}).`;\n\t}\n\treturn `Maestro is up to date (${check.currentVersion}).`;\n}\n\nfunction installEnv(env: NodeJS.ProcessEnv): NodeJS.ProcessEnv {\n\tconst nextEnv = { ...env };\n\tdelete nextEnv[STARTUP_UPDATE_SKIP_ENV];\n\tdelete nextEnv[STARTUP_UPDATE_MODE_ENV];\n\tdelete nextEnv.CI;\n\tdelete nextEnv.NODE_ENV;\n\tnextEnv[STARTUP_UPDATE_RETRY_ENV] = \"0\";\n\treturn nextEnv;\n}\n\nfunction jsonForOutcome(outcome: StartupUpdateOutcome) {\n\tconst check = \"check\" in outcome ? outcome.check : undefined;\n\treturn {\n\t\tstatus: outcome.status,\n\t\treason: \"reason\" in outcome ? outcome.reason : undefined,\n\t\terror: \"error\" in outcome ? outcome.error : undefined,\n\t\texitCode: \"exitCode\" in outcome ? outcome.exitCode : undefined,\n\t\tcurrentVersion: check?.currentVersion,\n\t\tlatestVersion: check?.latestVersion,\n\t\tsourceUrl: check?.sourceUrl,\n\t};\n}\n\nexport async function handleUpdateCommand(\n\tcommandArgs: string[] = [],\n\tdeps: UpdateCommandDeps = {},\n): Promise<void> {\n\tconst parsed = parseUpdateArgs(commandArgs);\n\tif (\"error\" in parsed) {\n\t\tconsole.error(chalk.red(parsed.error));\n\t\tprocess.exitCode = 1;\n\t\treturn;\n\t}\n\tif (parsed.help) {\n\t\tprintUpdateHelp();\n\t\treturn;\n\t}\n\n\tconst currentVersion = deps.currentVersion ?? getPackageVersion();\n\tconst env = deps.env ?? process.env;\n\n\tif (parsed.check) {\n\t\tconst check = await (deps.checkForUpdateImpl ?? checkForUpdate)(\n\t\t\tcurrentVersion,\n\t\t);\n\t\tif (parsed.json) {\n\t\t\tprintJson({\n\t\t\t\tstatus: check.error\n\t\t\t\t\t? \"failed\"\n\t\t\t\t\t: check.isUpdateAvailable\n\t\t\t\t\t\t? \"available\"\n\t\t\t\t\t\t: \"current\",\n\t\t\t\tcurrentVersion: check.currentVersion,\n\t\t\t\tlatestVersion: check.latestVersion,\n\t\t\t\tsourceUrl: check.sourceUrl,\n\t\t\t\terror: check.error,\n\t\t\t});\n\t\t} else if (check.error) {\n\t\t\tconsole.error(chalk.red(formatCheckMessage(check)));\n\t\t} else {\n\t\t\tconsole.log(formatCheckMessage(check));\n\t\t}\n\t\tif (check.error) {\n\t\t\tprocess.exitCode = 1;\n\t\t}\n\t\treturn;\n\t}\n\n\tconst outcome = await (deps.attemptStartupUpdateImpl ?? attemptStartupUpdate)(\n\t\t{\n\t\t\targs: [],\n\t\t\tcurrentVersion,\n\t\t\tenv: installEnv(env),\n\t\t\tisTty: deps.isTty ?? true,\n\t\t\trestart: false,\n\t\t},\n\t);\n\n\tif (parsed.json) {\n\t\tprintJson(jsonForOutcome(outcome));\n\t} else {\n\t\tswitch (outcome.status) {\n\t\t\tcase \"updated\":\n\t\t\t\tconsole.log(\n\t\t\t\t\tchalk.green(\n\t\t\t\t\t\t`Updated Maestro to ${outcome.check.latestVersion ?? \"the latest version\"}.`,\n\t\t\t\t\t),\n\t\t\t\t);\n\t\t\t\tbreak;\n\t\t\tcase \"current\":\n\t\t\t\tconsole.log(formatCheckMessage(outcome.check));\n\t\t\t\tbreak;\n\t\t\tcase \"available\":\n\t\t\t\tconsole.log(\n\t\t\t\t\t`Maestro ${outcome.check.latestVersion ?? \"update\"} is available, but automatic install was not attempted.`,\n\t\t\t\t);\n\t\t\t\tbreak;\n\t\t\tcase \"skipped\":\n\t\t\t\tconsole.error(\n\t\t\t\t\tchalk.yellow(`Maestro update skipped: ${outcome.reason}.`),\n\t\t\t\t);\n\t\t\t\tbreak;\n\t\t\tcase \"failed\":\n\t\t\t\tconsole.error(chalk.red(`Maestro update failed: ${outcome.error}`));\n\t\t\t\tbreak;\n\t\t\tcase \"restarted\":\n\t\t\t\tconsole.log(\n\t\t\t\t\tchalk.green(\n\t\t\t\t\t\t`Updated Maestro to ${outcome.check.latestVersion ?? \"the latest version\"}.`,\n\t\t\t\t\t),\n\t\t\t\t);\n\t\t\t\tbreak;\n\t\t}\n\t}\n\n\tif (outcome.status === \"failed\" || outcome.status === \"skipped\") {\n\t\tprocess.exitCode = 1;\n\t}\n}\n"]}
|
package/dist/cli/help.d.ts.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"help.d.ts","sourceRoot":"","sources":["../../src/cli/help.ts"],"names":[],"mappings":"AAyFA;;;;;;;;;;;;;;;;;;;GAmBG;AACH,wBAAgB,SAAS,CACxB,OAAO,EAAE,MAAM,EACf,OAAO,CAAC,EAAE;IAAE,aAAa,CAAC,EAAE,OAAO,CAAA;CAAE,
|
|
1
|
+
{"version":3,"file":"help.d.ts","sourceRoot":"","sources":["../../src/cli/help.ts"],"names":[],"mappings":"AAyFA;;;;;;;;;;;;;;;;;;;GAmBG;AACH,wBAAgB,SAAS,CACxB,OAAO,EAAE,MAAM,EACf,OAAO,CAAC,EAAE;IAAE,aAAa,CAAC,EAAE,OAAO,CAAA;CAAE,QA0RrC"}
|
package/dist/cli/help.js
CHANGED
|
@@ -135,6 +135,10 @@ export function printHelp(version, options) {
|
|
|
135
135
|
# Confirm managed mode sinks and EvalOps org identity
|
|
136
136
|
maestro status
|
|
137
137
|
|
|
138
|
+
# Check or install the newest published Maestro CLI
|
|
139
|
+
maestro update --check
|
|
140
|
+
maestro update
|
|
141
|
+
|
|
138
142
|
# Inspect mode-level subagent model dispatch before running a swarm
|
|
139
143
|
maestro modes describe smart
|
|
140
144
|
|
package/dist/cli/help.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"help.js","sourceRoot":"","sources":["../../src/cli/help.ts"],"names":[],"mappings":"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","sourcesContent":["/**\n * @fileoverview CLI Help Output Module\n *\n * This module generates and displays the `--help` output for the Maestro CLI.\n * It provides a comprehensive overview of:\n *\n * - **Usage syntax** and common invocation patterns\n * - **Command-line options** for provider, model, session management, etc.\n * - **Environment variables** for API keys and configuration\n * - **Available tools** and their capabilities\n * - **Subcommands** like `maestro exec` for headless execution\n * - **Session management** commands and workflows\n *\n * ## Styling\n *\n * The output uses the application's theme system for consistent terminal styling:\n * - `heading()` - Main title styling\n * - `sectionHeading()` - Section headers\n * - `muted()` - De-emphasized text for descriptions\n * - `badge()` - Highlighted tips and hints\n *\n * @module cli/help\n */\nimport { badge, heading, muted, sectionHeading } from \"../style/theme.js\";\n\ninterface CliHelpOption {\n\ttext: string;\n\thidden?: boolean;\n}\n\nconst CLI_OPTIONS: CliHelpOption[] = [\n\t{ text: \"--provider <name> Provider name (default: openai-codex)\" },\n\t{ text: \"-m, --model <id> Model ID (default: gpt-5.5)\" },\n\t{ text: \"--task-budget <tokens> API-side Anthropic task budget in tokens\" },\n\t{\n\t\ttext: \"--models <patterns> Comma-separated patterns for Ctrl+P model cycling\",\n\t},\n\t{\n\t\ttext: \"--tools <names> Comma-separated tool names to enable (e.g., read,search,list,find)\",\n\t},\n\t{ text: \"--api-key <key> API key (defaults to env vars)\" },\n\t{\n\t\ttext: \"--system-prompt <text> System prompt (default: coding assistant prompt)\",\n\t},\n\t{\n\t\ttext: \"--append-system-prompt <text> Append instructions to the system prompt\",\n\t},\n\t{ text: \"--mode <mode> Output mode: text (default), json, or rpc\" },\n\t{\n\t\ttext: \"--auth <mode> Credential mode: auto (default), api-key\",\n\t},\n\t{\n\t\ttext: \"--approval-mode <mode> Action approvals: prompt (default in TUI), auto, fail\",\n\t},\n\t{\n\t\ttext: \"--sandbox <mode> Sandbox mode: read-only, workspace-write, danger-full-access, native, docker, local, none\",\n\t},\n\t{\n\t\ttext: \"--port <n> Port for `maestro web` (defaults to PORT env or 8080)\",\n\t},\n\t{ text: \"--continue, -c Continue previous session\" },\n\t{ text: \"--resume, -r Select a session to resume\" },\n\t{ text: \"--session <path> Use specific session file\" },\n\t{ text: \"--no-session Don't save session (ephemeral)\" },\n\t{ text: \"--safe-mode Enable extra safety restrictions\" },\n\t{\n\t\ttext: \"--replay <path|uri> Open a scripted deterministic replay session\",\n\t},\n\t{\n\t\ttext: \"--record-scenario <path> Record assistant turns as a replay fixture\",\n\t},\n\t{ text: \"--help, -h Show this help\" },\n\t{\n\t\ttext: \"--help-hidden Show hidden support and staged-rollout flags\",\n\t\thidden: true,\n\t},\n\t{\n\t\ttext: \"--list-modes-all List visible and hidden agent modes\",\n\t\thidden: true,\n\t},\n];\n\nfunction renderHelpOptions(options: CliHelpOption[], includeHidden: boolean) {\n\treturn options\n\t\t.filter((option) => includeHidden || option.hidden !== true)\n\t\t.map((option) => ` ${muted(option.text)}`)\n\t\t.join(\"\\n\");\n}\n\n/**\n * Prints the complete CLI help message to stdout.\n *\n * This function is invoked when the user runs `maestro --help` or `maestro -h`.\n * It formats and displays all available options, commands, and usage examples\n * using the terminal theme for consistent styling.\n *\n * @param version - The current Maestro version string (e.g., \"1.2.3\")\n *\n * @example\n * ```typescript\n * import { printHelp } from \"./help.js\";\n * import { version } from \"../../package.json\";\n *\n * if (args.includes(\"--help\")) {\n * printHelp(version);\n * process.exit(0);\n * }\n * ```\n */\nexport function printHelp(\n\tversion: string,\n\toptions?: { includeHidden?: boolean },\n) {\n\tconst includeHidden = options?.includeHidden === true;\n\tconst header = `${heading(\"Maestro\")} ${muted(\n\t\t`v${version} by EvalOps — AI coding assistant with read, list, search, diff, bash, edit, write, todo tools`,\n\t)}`;\n\tconst usage = `${sectionHeading(\"Usage\")}${muted(\n\t\t\"maestro [options] [messages...]\",\n\t)}`;\n\tconst renderedOptions = `${sectionHeading(\"Options\")}${renderHelpOptions(\n\t\tCLI_OPTIONS,\n\t\tincludeHidden,\n\t)}`;\n\tconst hiddenSupportSection = includeHidden\n\t\t? `${sectionHeading(\"Hidden Support Flags\")}${muted(\n\t\t\t\t\" Hidden flags are external support surfaces. Keep them in docs/CONVENTIONS/staged-rollout-registry.json with an owner, telemetry event, and promotion/removal target.\",\n\t\t\t)}`\n\t\t: null;\n\tconst examples = `${sectionHeading(\"Examples\")}${muted(\n\t\t` # Interactive mode (defaults to openai-codex/gpt-5.5 after \\`maestro codex login\\`)\n maestro\n\n # Single message\n maestro \"List all .ts files in src/\"\n\n # Multiple messages\n maestro \"Read package.json\" \"What dependencies do we have?\"\n\n # Continue previous session\n maestro --continue \"What did we discuss?\"\n\n # Use different model\n maestro --provider openai --model gpt-4o-mini \"Help me refactor this code\"\n\n # Use Codex subscription models explicitly\n maestro --provider openai-codex --model gpt-5.5 \"Plan this migration\"\n maestro codex doctor\n\n # Bootstrap EvalOps login, API key, and agent registration in one flow\n maestro init\n\n # Use EvalOps managed gateway models after \\`maestro init\\`\n maestro --provider evalops --model gpt-4o-mini \"Say hello in one sentence\"\n\n # Confirm managed mode sinks and EvalOps org identity\n maestro status\n\n # Inspect mode-level subagent model dispatch before running a swarm\n maestro modes describe smart\n\n # Explain which instruction files and MCP context sources are visible\n maestro context explain\n\n # Compare context sources between two workspaces\n maestro context diff ./before ./after\n\n # Include live MCP resources and prompts in context diagnostics\n maestro context explain --live-mcp\n\n # Export a portable session log\n maestro export <session-id> ./session.jsonl --format jsonl\n\n # Export a portable JSON archive with secret redaction\n maestro export <session-id> ./session.json --format json --redact-secrets\n\n # Import a portable session log into this workspace\n maestro import ./session.json\n\n # Scaffold and validate progressive skill packages\n maestro skill new processing-incidents --description \"Process incident reports. Use when the user asks for incident triage.\"\n maestro skill lint .maestro/skills\n\n # Start a hosted EvalOps runner session and wait for attach readiness\n maestro remote start --workspace ws_123 --repo evalops/foo --branch main --ttl 90m --wait --verify\n\n # Run a single-session hosted runtime pod entrypoint\n maestro hosted-runner --runner-session-id mrs_abc --workspace-root /workspace --listen 0.0.0.0:8080\n\n # Show usage analytics for the last 7 days\n maestro stats\n\n # Show usage analytics for one session\n maestro stats --session <session-id>\n\n # Reconstruct the timeline, trajectory, and evidence coverage for a saved run\n maestro run inspect <session-id> --json\n maestro run promote <session-id>\n\n # Validate and run a deterministic scenario fixture\n maestro scenario validate ./test/fixtures/agent-trajectory-scenarios/local-diagnostic-success.json\n maestro scenario run ./test/fixtures/agent-trajectory-scenarios/local-diagnostic-success.json --junit ./tmp/scenario.xml\n\n # Open a real agent session backed by a scripted model fixture\n maestro --replay ./test/fixtures/scripted-replay/basic-tool-call.json\n maestro --replay gs://evalops-prod-maestro-scenario-fixtures/maestro/scenarios/example.json\n\n # Record a live run into a replayable scripted scenario\n maestro --record-scenario ./tmp/recorded-scenario.json \"inspect package.json\"`,\n\t)}`;\n\tconst env = `${sectionHeading(\"Environment Variables:\")}${muted(\n\t\t` GEMINI_API_KEY - Google Gemini API key\n OPENAI_API_KEY - OpenAI API key\n OPENAI_CODEX_TOKEN - OpenAI Codex ChatGPT access token\n OPENAI_CODEX_ACCOUNT_ID - ChatGPT account id when using a raw Codex token\n ANTHROPIC_API_KEY - Anthropic API key\n MAESTRO_AGENT_DIR - Session storage directory (default: ~/.maestro/agent)\n MAESTRO_SANDBOX_MODE - Sandbox mode: read-only, workspace-write, danger-full-access\n MAESTRO_CHANGELOG - Set to off/false/hide/hidden/skip/0 to hide startup changelog banner\n MAESTRO_TUI_MINIMAL - Set to 1/true to disable animations and reduce TUI effects (SSH-friendly)\n MAESTRO_TUI_TOOL_MAX_CHARS - Max chars shown per tool output panel (0 = unlimited)\n MAESTRO_TUI_TOOL_MAX_LINES - Max lines shown per tool output panel (0 = unlimited)\n MAESTRO_MEMORY_BASE - Durable memory service base URL\n MAESTRO_MEMORY_ACCESS_TOKEN - Override bearer token for durable memory service\n MAESTRO_MEMORY_TEAM_ID - Optional team scope for durable memory service\n MAESTRO_SHARED_MEMORY_BASE - Shared memory base URL (Cloudflare Durable Objects worker)\n MAESTRO_SHARED_MEMORY_API_KEY - API key for shared memory service\n MAESTRO_REMOTE_RUNNER_URL - Hosted runner control-plane URL (default: https://runner.evalops.dev)\n MAESTRO_REMOTE_RUNNER_TOKEN - Hosted runner bearer token override\n MAESTRO_REMOTE_RUNNER_ORG_ID - EvalOps organization id for hosted runner sessions\n MAESTRO_REMOTE_RUNNER_WORKSPACE_ID - EvalOps workspace id for hosted runner sessions\n CODING_AGENT_DIR - Legacy session directory override (fallback)`,\n\t)}`;\n\tconst execSection = `${sectionHeading(\"maestro exec\")}${muted(\n\t\t` maestro exec \"Summarize recent changes\" --json\n\n Flags:\n --json Stream JSONL thread/turn events\n --output-schema <file|json> Validate final assistant JSON against a schema\n --output-last-message <path> Write the final assistant message to disk\n --full-auto | --read-only Force approval policy (auto or fail)\n --sandbox <mode> Run in sandbox: read-only, workspace-write, danger-full-access, native, docker, local, none\n --resume <sessionId> Resume a prior exec session by id\n --last Resume the most recent exec session`,\n\t)}`;\n\tconst webSection = `${sectionHeading(\"maestro web\")}${muted(\n\t\t` # Start the bundled web UI + API server\n maestro web\n\n # Use a custom port\n maestro web --port 3000`,\n\t)}`;\n\tconst portabilitySection = `${sectionHeading(\"Session Portability\")}${muted(\n\t\t` maestro export <session-id> [output-path] --format json|jsonl [--redact-secrets]\n maestro import <file.json|file.jsonl>\n\n Notes:\n - json preserves the full session in a portable wrapper object\n - jsonl preserves the append-only session log verbatim unless redaction is requested\n - --redact-secrets scrubs detected credentials from exported payloads\n - import restores the session into the current workspace session directory`,\n\t)}`;\n\tconst modesSection = `${sectionHeading(\"maestro modes\")}${muted(\n\t\t` maestro modes list\n maestro modes describe <mode> [--provider <provider>] [--json]\n\n Prints the mode primary/fallback model policy and resolved subagent dispatch\n table, including cross-provider overrides such as smart-mode coder lanes\n routed to openai-codex/gpt-5.5.`,\n\t)}`;\n\tconst memorySection = `${sectionHeading(\"maestro memory\")}${muted(\n\t\t` maestro memory [status] Show shared memory service status\n maestro memory session <id> Show per-session metrics\n maestro memory audit <id> [n] Show recent sync audit entries\n maestro memory export <id> Export metrics log as JSONL\n maestro memory watch [id] [ms] Poll status/metrics continuously`,\n\t)}`;\n\tconst skillSection = `${sectionHeading(\"maestro skill\")}${muted(\n\t\t` maestro skill list List available progressive skills\n maestro skill inspect <name> Print one skill package manifest\n maestro skill install <source> Validate and install an OSS skill package\n maestro skill publish-check <src> Validate an OSS skill package for publishing\n maestro skill new <name> Scaffold SKILL.md, reference/, scripts/, toolbox/, and mcp.json.example\n maestro skill lint [path...] Validate frontmatter, budget, mcp.json includeTools, and toolbox shape`,\n\t)}`;\n\tconst remoteSection = `${sectionHeading(\"maestro remote\")}${muted(\n\t\t` maestro remote start --workspace <id> --repo <repo> --branch <branch> [--ttl 90m] [--wait] [--verify]\n maestro remote list --workspace <id> [--state running]\n maestro remote attach <session-id> [--verify] [--print-env]\n maestro remote extend <session-id> --ttl 2h\n maestro remote stop <session-id> [--reason <text>]`,\n\t)}`;\n\tconst operatingPlaneHelp = [\n\t\t\" maestro operating-plane status --thread-id <slack-thread> [--artifact-id <id>] [--auth-subject <subject>]\",\n\t\t\" maestro operating-plane status --trace-id <id> --json\",\n\t\t\" Fetches the Platform operating-plane ledger and prints content-free runtime\",\n\t\t\" status with identity, model/tool/approval/trace/artifact/cost signals,\",\n\t\t\" allowed artifact ids/revisions, blockers, next actions, and withheld reasons.\",\n\t].join(\"\\n\");\n\tconst operatingPlaneSection = `${sectionHeading(\"maestro operating-plane\")}${muted(operatingPlaneHelp)}`;\n\tconst runSection = `${sectionHeading(\"maestro run\")}${muted(\n\t\t` maestro run inspect <session-id> [--json]\n maestro run ledger <session-id>\n maestro run replay <session-id>\n maestro run promote <session-id>\n\n Reconstructs a saved session into a timeline plus canonical agent trajectory\n with prompt, tool, file-change, artifact, policy, diagnostic, compaction,\n pending-wait, and MCP-context coverage. The ledger/replay/promote commands\n expose the local AgentRuntime projection and dry-run Platform promotion plan.`,\n\t)}`;\n\tconst initSection = `${sectionHeading(\"maestro init\")}${muted(\n\t\t` maestro init Login, create or reuse an API key, and register this agent\n maestro init --rotate-key Replace the stored agent MCP API key\n maestro init --mcp-url <url> Override the EvalOps agent MCP endpoint\n maestro init --capability code:write Declare an agent-registry capability\n maestro init --json Emit machine-readable bootstrap output`,\n\t)}`;\n\tconst hostedRunnerSection = `${sectionHeading(\"maestro hosted-runner\")}${muted(\n\t\t` maestro hosted-runner --runner-session-id <id> --workspace-root <path> [--listen 0.0.0.0:8080]\n\n Env mode:\n MAESTRO_RUNNER_SESSION_ID=mrs_abc MAESTRO_WORKSPACE_ROOT=/workspace maestro hosted-runner`,\n\t)}`;\n\tconst sessionsSection = `${sectionHeading(\"Session Metadata\")}${muted(\n\t\t` /session favorite|unfavorite Toggle favorite for current session\n /session summary \"<text>\" Save a manual summary for current session\n /sessions summarize <id> Auto-summarize a saved session`,\n\t)}`;\n\tconst sessionsDiscovery = `${sectionHeading(\"Session Commands\")}${muted(\n\t\t` /session [info|favorite|unfavorite|summary \"<text>\"]\n /sessions [list|load <id>|favorite <id>|unfavorite <id>|summarize <id>]\n (Also available via TUI command palette)`,\n\t)}`;\n\tconst tools = `${sectionHeading(\"Available Tools\")}${muted(\n\t\t` read - Read file contents\n list - List files in a directory\n find - Fast file search using fd (glob patterns)\n search - Search files with ripgrep-style filtering\n parallel_ripgrep - Run multiple ripgrep patterns in parallel and merge line ranges\n diff - Show git diffs (workspace, staged, or ranges)\n bash - Execute bash commands\n edit - Edit files with find/replace\n write - Write files (creates/overwrites)\n todo - Create TodoWrite-style checklists\n\n Read-only tools: read,list,find,search,parallel_ripgrep,diff,status\n Example: maestro --tools read,list,find,search,parallel_ripgrep,diff \"Analyze this code\"`,\n\t)}`;\n\n\tconst frameworkSection = `${sectionHeading(\"Framework Preference\")}${muted(\n\t\t` /framework <id> Set default stack (fastapi, express, node)\n /framework <id> --workspace Set workspace-scoped default\n /framework list Show available options\n Precedence: policy (locked) > policy > env override > env default > workspace > user file > none`,\n\t)}`;\n\n\tconsole.log(\n\t\t[\n\t\t\theader,\n\t\t\tusage,\n\t\t\trenderedOptions,\n\t\t\thiddenSupportSection,\n\t\t\texamples,\n\t\t\tenv,\n\t\t\texecSection,\n\t\t\twebSection,\n\t\t\tportabilitySection,\n\t\t\tmodesSection,\n\t\t\tmemorySection,\n\t\t\tskillSection,\n\t\t\tinitSection,\n\t\t\trunSection,\n\t\t\tremoteSection,\n\t\t\toperatingPlaneSection,\n\t\t\thostedRunnerSection,\n\t\t\tsessionsSection,\n\t\t\tsessionsDiscovery,\n\t\t\t`${sectionHeading(\"Tips\")}${badge(\n\t\t\t\t\"Need models?\",\n\t\t\t\t\"maestro models list\",\n\t\t\t\t\"info\",\n\t\t\t)}`,\n\t\t\tframeworkSection,\n\t\t\ttools,\n\t\t]\n\t\t\t.filter((section): section is string => section !== null)\n\t\t\t.join(\"\\n\\n\"),\n\t);\n}\n"]}
|
|
1
|
+
{"version":3,"file":"help.js","sourceRoot":"","sources":["../../src/cli/help.ts"],"names":[],"mappings":"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","sourcesContent":["/**\n * @fileoverview CLI Help Output Module\n *\n * This module generates and displays the `--help` output for the Maestro CLI.\n * It provides a comprehensive overview of:\n *\n * - **Usage syntax** and common invocation patterns\n * - **Command-line options** for provider, model, session management, etc.\n * - **Environment variables** for API keys and configuration\n * - **Available tools** and their capabilities\n * - **Subcommands** like `maestro exec` for headless execution\n * - **Session management** commands and workflows\n *\n * ## Styling\n *\n * The output uses the application's theme system for consistent terminal styling:\n * - `heading()` - Main title styling\n * - `sectionHeading()` - Section headers\n * - `muted()` - De-emphasized text for descriptions\n * - `badge()` - Highlighted tips and hints\n *\n * @module cli/help\n */\nimport { badge, heading, muted, sectionHeading } from \"../style/theme.js\";\n\ninterface CliHelpOption {\n\ttext: string;\n\thidden?: boolean;\n}\n\nconst CLI_OPTIONS: CliHelpOption[] = [\n\t{ text: \"--provider <name> Provider name (default: openai-codex)\" },\n\t{ text: \"-m, --model <id> Model ID (default: gpt-5.5)\" },\n\t{ text: \"--task-budget <tokens> API-side Anthropic task budget in tokens\" },\n\t{\n\t\ttext: \"--models <patterns> Comma-separated patterns for Ctrl+P model cycling\",\n\t},\n\t{\n\t\ttext: \"--tools <names> Comma-separated tool names to enable (e.g., read,search,list,find)\",\n\t},\n\t{ text: \"--api-key <key> API key (defaults to env vars)\" },\n\t{\n\t\ttext: \"--system-prompt <text> System prompt (default: coding assistant prompt)\",\n\t},\n\t{\n\t\ttext: \"--append-system-prompt <text> Append instructions to the system prompt\",\n\t},\n\t{ text: \"--mode <mode> Output mode: text (default), json, or rpc\" },\n\t{\n\t\ttext: \"--auth <mode> Credential mode: auto (default), api-key\",\n\t},\n\t{\n\t\ttext: \"--approval-mode <mode> Action approvals: prompt (default in TUI), auto, fail\",\n\t},\n\t{\n\t\ttext: \"--sandbox <mode> Sandbox mode: read-only, workspace-write, danger-full-access, native, docker, local, none\",\n\t},\n\t{\n\t\ttext: \"--port <n> Port for `maestro web` (defaults to PORT env or 8080)\",\n\t},\n\t{ text: \"--continue, -c Continue previous session\" },\n\t{ text: \"--resume, -r Select a session to resume\" },\n\t{ text: \"--session <path> Use specific session file\" },\n\t{ text: \"--no-session Don't save session (ephemeral)\" },\n\t{ text: \"--safe-mode Enable extra safety restrictions\" },\n\t{\n\t\ttext: \"--replay <path|uri> Open a scripted deterministic replay session\",\n\t},\n\t{\n\t\ttext: \"--record-scenario <path> Record assistant turns as a replay fixture\",\n\t},\n\t{ text: \"--help, -h Show this help\" },\n\t{\n\t\ttext: \"--help-hidden Show hidden support and staged-rollout flags\",\n\t\thidden: true,\n\t},\n\t{\n\t\ttext: \"--list-modes-all List visible and hidden agent modes\",\n\t\thidden: true,\n\t},\n];\n\nfunction renderHelpOptions(options: CliHelpOption[], includeHidden: boolean) {\n\treturn options\n\t\t.filter((option) => includeHidden || option.hidden !== true)\n\t\t.map((option) => ` ${muted(option.text)}`)\n\t\t.join(\"\\n\");\n}\n\n/**\n * Prints the complete CLI help message to stdout.\n *\n * This function is invoked when the user runs `maestro --help` or `maestro -h`.\n * It formats and displays all available options, commands, and usage examples\n * using the terminal theme for consistent styling.\n *\n * @param version - The current Maestro version string (e.g., \"1.2.3\")\n *\n * @example\n * ```typescript\n * import { printHelp } from \"./help.js\";\n * import { version } from \"../../package.json\";\n *\n * if (args.includes(\"--help\")) {\n * printHelp(version);\n * process.exit(0);\n * }\n * ```\n */\nexport function printHelp(\n\tversion: string,\n\toptions?: { includeHidden?: boolean },\n) {\n\tconst includeHidden = options?.includeHidden === true;\n\tconst header = `${heading(\"Maestro\")} ${muted(\n\t\t`v${version} by EvalOps — AI coding assistant with read, list, search, diff, bash, edit, write, todo tools`,\n\t)}`;\n\tconst usage = `${sectionHeading(\"Usage\")}${muted(\n\t\t\"maestro [options] [messages...]\",\n\t)}`;\n\tconst renderedOptions = `${sectionHeading(\"Options\")}${renderHelpOptions(\n\t\tCLI_OPTIONS,\n\t\tincludeHidden,\n\t)}`;\n\tconst hiddenSupportSection = includeHidden\n\t\t? `${sectionHeading(\"Hidden Support Flags\")}${muted(\n\t\t\t\t\" Hidden flags are external support surfaces. Keep them in docs/CONVENTIONS/staged-rollout-registry.json with an owner, telemetry event, and promotion/removal target.\",\n\t\t\t)}`\n\t\t: null;\n\tconst examples = `${sectionHeading(\"Examples\")}${muted(\n\t\t` # Interactive mode (defaults to openai-codex/gpt-5.5 after \\`maestro codex login\\`)\n maestro\n\n # Single message\n maestro \"List all .ts files in src/\"\n\n # Multiple messages\n maestro \"Read package.json\" \"What dependencies do we have?\"\n\n # Continue previous session\n maestro --continue \"What did we discuss?\"\n\n # Use different model\n maestro --provider openai --model gpt-4o-mini \"Help me refactor this code\"\n\n # Use Codex subscription models explicitly\n maestro --provider openai-codex --model gpt-5.5 \"Plan this migration\"\n maestro codex doctor\n\n # Bootstrap EvalOps login, API key, and agent registration in one flow\n maestro init\n\n # Use EvalOps managed gateway models after \\`maestro init\\`\n maestro --provider evalops --model gpt-4o-mini \"Say hello in one sentence\"\n\n # Confirm managed mode sinks and EvalOps org identity\n maestro status\n\n # Check or install the newest published Maestro CLI\n maestro update --check\n maestro update\n\n # Inspect mode-level subagent model dispatch before running a swarm\n maestro modes describe smart\n\n # Explain which instruction files and MCP context sources are visible\n maestro context explain\n\n # Compare context sources between two workspaces\n maestro context diff ./before ./after\n\n # Include live MCP resources and prompts in context diagnostics\n maestro context explain --live-mcp\n\n # Export a portable session log\n maestro export <session-id> ./session.jsonl --format jsonl\n\n # Export a portable JSON archive with secret redaction\n maestro export <session-id> ./session.json --format json --redact-secrets\n\n # Import a portable session log into this workspace\n maestro import ./session.json\n\n # Scaffold and validate progressive skill packages\n maestro skill new processing-incidents --description \"Process incident reports. Use when the user asks for incident triage.\"\n maestro skill lint .maestro/skills\n\n # Start a hosted EvalOps runner session and wait for attach readiness\n maestro remote start --workspace ws_123 --repo evalops/foo --branch main --ttl 90m --wait --verify\n\n # Run a single-session hosted runtime pod entrypoint\n maestro hosted-runner --runner-session-id mrs_abc --workspace-root /workspace --listen 0.0.0.0:8080\n\n # Show usage analytics for the last 7 days\n maestro stats\n\n # Show usage analytics for one session\n maestro stats --session <session-id>\n\n # Reconstruct the timeline, trajectory, and evidence coverage for a saved run\n maestro run inspect <session-id> --json\n maestro run promote <session-id>\n\n # Validate and run a deterministic scenario fixture\n maestro scenario validate ./test/fixtures/agent-trajectory-scenarios/local-diagnostic-success.json\n maestro scenario run ./test/fixtures/agent-trajectory-scenarios/local-diagnostic-success.json --junit ./tmp/scenario.xml\n\n # Open a real agent session backed by a scripted model fixture\n maestro --replay ./test/fixtures/scripted-replay/basic-tool-call.json\n maestro --replay gs://evalops-prod-maestro-scenario-fixtures/maestro/scenarios/example.json\n\n # Record a live run into a replayable scripted scenario\n maestro --record-scenario ./tmp/recorded-scenario.json \"inspect package.json\"`,\n\t)}`;\n\tconst env = `${sectionHeading(\"Environment Variables:\")}${muted(\n\t\t` GEMINI_API_KEY - Google Gemini API key\n OPENAI_API_KEY - OpenAI API key\n OPENAI_CODEX_TOKEN - OpenAI Codex ChatGPT access token\n OPENAI_CODEX_ACCOUNT_ID - ChatGPT account id when using a raw Codex token\n ANTHROPIC_API_KEY - Anthropic API key\n MAESTRO_AGENT_DIR - Session storage directory (default: ~/.maestro/agent)\n MAESTRO_SANDBOX_MODE - Sandbox mode: read-only, workspace-write, danger-full-access\n MAESTRO_CHANGELOG - Set to off/false/hide/hidden/skip/0 to hide startup changelog banner\n MAESTRO_TUI_MINIMAL - Set to 1/true to disable animations and reduce TUI effects (SSH-friendly)\n MAESTRO_TUI_TOOL_MAX_CHARS - Max chars shown per tool output panel (0 = unlimited)\n MAESTRO_TUI_TOOL_MAX_LINES - Max lines shown per tool output panel (0 = unlimited)\n MAESTRO_MEMORY_BASE - Durable memory service base URL\n MAESTRO_MEMORY_ACCESS_TOKEN - Override bearer token for durable memory service\n MAESTRO_MEMORY_TEAM_ID - Optional team scope for durable memory service\n MAESTRO_SHARED_MEMORY_BASE - Shared memory base URL (Cloudflare Durable Objects worker)\n MAESTRO_SHARED_MEMORY_API_KEY - API key for shared memory service\n MAESTRO_REMOTE_RUNNER_URL - Hosted runner control-plane URL (default: https://runner.evalops.dev)\n MAESTRO_REMOTE_RUNNER_TOKEN - Hosted runner bearer token override\n MAESTRO_REMOTE_RUNNER_ORG_ID - EvalOps organization id for hosted runner sessions\n MAESTRO_REMOTE_RUNNER_WORKSPACE_ID - EvalOps workspace id for hosted runner sessions\n CODING_AGENT_DIR - Legacy session directory override (fallback)`,\n\t)}`;\n\tconst execSection = `${sectionHeading(\"maestro exec\")}${muted(\n\t\t` maestro exec \"Summarize recent changes\" --json\n\n Flags:\n --json Stream JSONL thread/turn events\n --output-schema <file|json> Validate final assistant JSON against a schema\n --output-last-message <path> Write the final assistant message to disk\n --full-auto | --read-only Force approval policy (auto or fail)\n --sandbox <mode> Run in sandbox: read-only, workspace-write, danger-full-access, native, docker, local, none\n --resume <sessionId> Resume a prior exec session by id\n --last Resume the most recent exec session`,\n\t)}`;\n\tconst webSection = `${sectionHeading(\"maestro web\")}${muted(\n\t\t` # Start the bundled web UI + API server\n maestro web\n\n # Use a custom port\n maestro web --port 3000`,\n\t)}`;\n\tconst portabilitySection = `${sectionHeading(\"Session Portability\")}${muted(\n\t\t` maestro export <session-id> [output-path] --format json|jsonl [--redact-secrets]\n maestro import <file.json|file.jsonl>\n\n Notes:\n - json preserves the full session in a portable wrapper object\n - jsonl preserves the append-only session log verbatim unless redaction is requested\n - --redact-secrets scrubs detected credentials from exported payloads\n - import restores the session into the current workspace session directory`,\n\t)}`;\n\tconst modesSection = `${sectionHeading(\"maestro modes\")}${muted(\n\t\t` maestro modes list\n maestro modes describe <mode> [--provider <provider>] [--json]\n\n Prints the mode primary/fallback model policy and resolved subagent dispatch\n table, including cross-provider overrides such as smart-mode coder lanes\n routed to openai-codex/gpt-5.5.`,\n\t)}`;\n\tconst memorySection = `${sectionHeading(\"maestro memory\")}${muted(\n\t\t` maestro memory [status] Show shared memory service status\n maestro memory session <id> Show per-session metrics\n maestro memory audit <id> [n] Show recent sync audit entries\n maestro memory export <id> Export metrics log as JSONL\n maestro memory watch [id] [ms] Poll status/metrics continuously`,\n\t)}`;\n\tconst skillSection = `${sectionHeading(\"maestro skill\")}${muted(\n\t\t` maestro skill list List available progressive skills\n maestro skill inspect <name> Print one skill package manifest\n maestro skill install <source> Validate and install an OSS skill package\n maestro skill publish-check <src> Validate an OSS skill package for publishing\n maestro skill new <name> Scaffold SKILL.md, reference/, scripts/, toolbox/, and mcp.json.example\n maestro skill lint [path...] Validate frontmatter, budget, mcp.json includeTools, and toolbox shape`,\n\t)}`;\n\tconst remoteSection = `${sectionHeading(\"maestro remote\")}${muted(\n\t\t` maestro remote start --workspace <id> --repo <repo> --branch <branch> [--ttl 90m] [--wait] [--verify]\n maestro remote list --workspace <id> [--state running]\n maestro remote attach <session-id> [--verify] [--print-env]\n maestro remote extend <session-id> --ttl 2h\n maestro remote stop <session-id> [--reason <text>]`,\n\t)}`;\n\tconst operatingPlaneHelp = [\n\t\t\" maestro operating-plane status --thread-id <slack-thread> [--artifact-id <id>] [--auth-subject <subject>]\",\n\t\t\" maestro operating-plane status --trace-id <id> --json\",\n\t\t\" Fetches the Platform operating-plane ledger and prints content-free runtime\",\n\t\t\" status with identity, model/tool/approval/trace/artifact/cost signals,\",\n\t\t\" allowed artifact ids/revisions, blockers, next actions, and withheld reasons.\",\n\t].join(\"\\n\");\n\tconst operatingPlaneSection = `${sectionHeading(\"maestro operating-plane\")}${muted(operatingPlaneHelp)}`;\n\tconst runSection = `${sectionHeading(\"maestro run\")}${muted(\n\t\t` maestro run inspect <session-id> [--json]\n maestro run ledger <session-id>\n maestro run replay <session-id>\n maestro run promote <session-id>\n\n Reconstructs a saved session into a timeline plus canonical agent trajectory\n with prompt, tool, file-change, artifact, policy, diagnostic, compaction,\n pending-wait, and MCP-context coverage. The ledger/replay/promote commands\n expose the local AgentRuntime projection and dry-run Platform promotion plan.`,\n\t)}`;\n\tconst initSection = `${sectionHeading(\"maestro init\")}${muted(\n\t\t` maestro init Login, create or reuse an API key, and register this agent\n maestro init --rotate-key Replace the stored agent MCP API key\n maestro init --mcp-url <url> Override the EvalOps agent MCP endpoint\n maestro init --capability code:write Declare an agent-registry capability\n maestro init --json Emit machine-readable bootstrap output`,\n\t)}`;\n\tconst hostedRunnerSection = `${sectionHeading(\"maestro hosted-runner\")}${muted(\n\t\t` maestro hosted-runner --runner-session-id <id> --workspace-root <path> [--listen 0.0.0.0:8080]\n\n Env mode:\n MAESTRO_RUNNER_SESSION_ID=mrs_abc MAESTRO_WORKSPACE_ROOT=/workspace maestro hosted-runner`,\n\t)}`;\n\tconst sessionsSection = `${sectionHeading(\"Session Metadata\")}${muted(\n\t\t` /session favorite|unfavorite Toggle favorite for current session\n /session summary \"<text>\" Save a manual summary for current session\n /sessions summarize <id> Auto-summarize a saved session`,\n\t)}`;\n\tconst sessionsDiscovery = `${sectionHeading(\"Session Commands\")}${muted(\n\t\t` /session [info|favorite|unfavorite|summary \"<text>\"]\n /sessions [list|load <id>|favorite <id>|unfavorite <id>|summarize <id>]\n (Also available via TUI command palette)`,\n\t)}`;\n\tconst tools = `${sectionHeading(\"Available Tools\")}${muted(\n\t\t` read - Read file contents\n list - List files in a directory\n find - Fast file search using fd (glob patterns)\n search - Search files with ripgrep-style filtering\n parallel_ripgrep - Run multiple ripgrep patterns in parallel and merge line ranges\n diff - Show git diffs (workspace, staged, or ranges)\n bash - Execute bash commands\n edit - Edit files with find/replace\n write - Write files (creates/overwrites)\n todo - Create TodoWrite-style checklists\n\n Read-only tools: read,list,find,search,parallel_ripgrep,diff,status\n Example: maestro --tools read,list,find,search,parallel_ripgrep,diff \"Analyze this code\"`,\n\t)}`;\n\n\tconst frameworkSection = `${sectionHeading(\"Framework Preference\")}${muted(\n\t\t` /framework <id> Set default stack (fastapi, express, node)\n /framework <id> --workspace Set workspace-scoped default\n /framework list Show available options\n Precedence: policy (locked) > policy > env override > env default > workspace > user file > none`,\n\t)}`;\n\n\tconsole.log(\n\t\t[\n\t\t\theader,\n\t\t\tusage,\n\t\t\trenderedOptions,\n\t\t\thiddenSupportSection,\n\t\t\texamples,\n\t\t\tenv,\n\t\t\texecSection,\n\t\t\twebSection,\n\t\t\tportabilitySection,\n\t\t\tmodesSection,\n\t\t\tmemorySection,\n\t\t\tskillSection,\n\t\t\tinitSection,\n\t\t\trunSection,\n\t\t\tremoteSection,\n\t\t\toperatingPlaneSection,\n\t\t\thostedRunnerSection,\n\t\t\tsessionsSection,\n\t\t\tsessionsDiscovery,\n\t\t\t`${sectionHeading(\"Tips\")}${badge(\n\t\t\t\t\"Need models?\",\n\t\t\t\t\"maestro models list\",\n\t\t\t\t\"info\",\n\t\t\t)}`,\n\t\t\tframeworkSection,\n\t\t\ttools,\n\t\t]\n\t\t\t.filter((section): section is string => section !== null)\n\t\t\t.join(\"\\n\\n\"),\n\t);\n}\n"]}
|
|
@@ -581,9 +581,9 @@ export const PRIMARY_COMMAND_CATALOG = [
|
|
|
581
581
|
}),
|
|
582
582
|
withArgs("footer", "footer", {
|
|
583
583
|
description: "Switch footer style or view/clear footer alerts",
|
|
584
|
-
usage: "/footer [
|
|
584
|
+
usage: "/footer [rich|solo|history|clear]",
|
|
585
585
|
tags: ["ui"],
|
|
586
|
-
examples: ["/footer", "/footer
|
|
586
|
+
examples: ["/footer", "/footer rich", "/footer solo", "/footer history"],
|
|
587
587
|
}),
|
|
588
588
|
withArgs("alerts", "footer", {
|
|
589
589
|
description: "Alias for footer alerts (history|clear)",
|