@yuaone/cli 0.6.0 → 0.7.0

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (34) hide show
  1. package/README.md +255 -0
  2. package/dist/cli.js +73 -0
  3. package/dist/cli.js.map +1 -1
  4. package/dist/commands/index.d.ts.map +1 -1
  5. package/dist/commands/index.js +70 -0
  6. package/dist/commands/index.js.map +1 -1
  7. package/dist/tui/App.d.ts.map +1 -1
  8. package/dist/tui/App.js +33 -4
  9. package/dist/tui/App.js.map +1 -1
  10. package/dist/tui/agent-bridge.d.ts.map +1 -1
  11. package/dist/tui/agent-bridge.js +42 -8
  12. package/dist/tui/agent-bridge.js.map +1 -1
  13. package/dist/tui/components/InputBox.d.ts.map +1 -1
  14. package/dist/tui/components/InputBox.js +50 -8
  15. package/dist/tui/components/InputBox.js.map +1 -1
  16. package/dist/tui/components/MarkdownRenderer.d.ts.map +1 -1
  17. package/dist/tui/components/MarkdownRenderer.js +20 -4
  18. package/dist/tui/components/MarkdownRenderer.js.map +1 -1
  19. package/dist/tui/components/MessageBubble.d.ts.map +1 -1
  20. package/dist/tui/components/MessageBubble.js +42 -22
  21. package/dist/tui/components/MessageBubble.js.map +1 -1
  22. package/dist/tui/components/MessageList.d.ts.map +1 -1
  23. package/dist/tui/components/MessageList.js +30 -11
  24. package/dist/tui/components/MessageList.js.map +1 -1
  25. package/dist/tui/hooks/useAgentStream.d.ts.map +1 -1
  26. package/dist/tui/hooks/useAgentStream.js +15 -9
  27. package/dist/tui/hooks/useAgentStream.js.map +1 -1
  28. package/dist/tui/hooks/useMouseScroll.d.ts +17 -0
  29. package/dist/tui/hooks/useMouseScroll.d.ts.map +1 -0
  30. package/dist/tui/hooks/useMouseScroll.js +83 -0
  31. package/dist/tui/hooks/useMouseScroll.js.map +1 -0
  32. package/dist/tui/types.d.ts +0 -1
  33. package/dist/tui/types.d.ts.map +1 -1
  34. package/package.json +3 -3
package/README.md ADDED
@@ -0,0 +1,255 @@
1
+ # YUAN CLI
2
+
3
+ **Autonomous Coding Agent** — runs in your terminal, powered by any LLM.
4
+
5
+ ```
6
+ npm install -g @yuaone/cli
7
+ yuan
8
+ ```
9
+
10
+ ---
11
+
12
+ ## Features
13
+
14
+ - **Full TUI** — full-screen terminal UI with message history, status bar, slash menu
15
+ - **Persistent conversation** — conversation history preserved across messages within a session
16
+ - **BYOK** — bring your own API key (OpenAI, Anthropic, Google Gemini, or YUA Platform)
17
+ - **Multi-provider** — store keys for all providers, switch model at runtime
18
+ - **Tool Use** — file read/write/edit, shell exec, grep, glob, git ops, web search
19
+ - **Approval system** — interactive `[Allow] [Always Allow] [Deny]` for destructive tools
20
+ - **Design Mode** — AI-powered real-time design collaboration with Playwright
21
+ - **Parallel tools** — dependency-aware batching for read-only tools
22
+ - **Advanced AI engine** — HierarchicalPlanner, ReflexionEngine, ContinuationEngine, PolicyEngine
23
+
24
+ ---
25
+
26
+ ## Install
27
+
28
+ ```bash
29
+ npm install -g @yuaone/cli
30
+ # or
31
+ pnpm install -g @yuaone/cli
32
+ ```
33
+
34
+ Requires Node.js ≥ 18.
35
+
36
+ ---
37
+
38
+ ## Quick Start
39
+
40
+ ```bash
41
+ # Interactive TUI (default)
42
+ yuan
43
+
44
+ # One-shot task
45
+ yuan code "refactor auth.ts to use async/await"
46
+
47
+ # Classic readline REPL
48
+ yuan --classic
49
+
50
+ # Setup API keys
51
+ yuan config
52
+ ```
53
+
54
+ ---
55
+
56
+ ## Configuration
57
+
58
+ ```bash
59
+ # Interactive setup wizard
60
+ yuan config
61
+
62
+ # Set key for a specific provider
63
+ yuan config set-key anthropic sk-ant-xxxxx
64
+ yuan config set-key openai sk-xxxxx
65
+ yuan config set-key google AIzaxxx
66
+ yuan config set-key yua yua_sk_xxxxx
67
+
68
+ # Show current config (keys masked)
69
+ yuan config show
70
+
71
+ # Switch execution mode
72
+ yuan config set-mode local # BYOK (default)
73
+ yuan config set-mode cloud # YUA Platform
74
+
75
+ # Set cloud server
76
+ yuan config set-server https://api.yuaone.com
77
+ ```
78
+
79
+ Config is stored at `~/.yuan/config.json` (chmod 600).
80
+
81
+ ### Environment Variables
82
+
83
+ Keys can also be set via env vars — no config file needed:
84
+
85
+ | Provider | Env var |
86
+ |-----------|--------------------------------------|
87
+ | OpenAI | `OPENAI_API_KEY` |
88
+ | Anthropic | `ANTHROPIC_API_KEY` |
89
+ | Google | `GOOGLE_API_KEY` or `GEMINI_API_KEY` |
90
+ | YUA | `YUA_API_KEY` |
91
+
92
+ ---
93
+
94
+ ## Slash Commands
95
+
96
+ Type `/` in the TUI to open the command menu (arrow keys to navigate, Enter to select).
97
+
98
+ | Command | Description |
99
+ |--------------|--------------------------------------------------|
100
+ | `/help` | Show available commands |
101
+ | `/status` | Provider, model, tokens, session info |
102
+ | `/model` | Show or change model / set provider key |
103
+ | `/mode` | Show or change agent mode |
104
+ | `/config` | Show current configuration |
105
+ | `/clear` | Clear conversation history |
106
+ | `/compact` | Compress context to save tokens |
107
+ | `/diff` | Show file changes (git diff) |
108
+ | `/undo` | Undo last file change |
109
+ | `/approve` | Approve pending tool action |
110
+ | `/reject` | Reject pending tool action |
111
+ | `/retry` | Retry last failed action |
112
+ | `/cost` | Token usage & estimated cost |
113
+ | `/tools` | List available tools |
114
+ | `/memory` | Show YUAN.md learnings |
115
+ | `/plugins` | Plugin management (install/remove/search) |
116
+ | `/skills` | Available skills (tree view) |
117
+ | `/session` | Session management |
118
+ | `/settings` | Auto-update preferences |
119
+ | `/exit` | Exit YUAN |
120
+
121
+ ### /model — Provider & Model Management
122
+
123
+ ```bash
124
+ # Show current model + all available providers
125
+ /model
126
+
127
+ # Switch model (provider/model format)
128
+ /model anthropic/claude-sonnet-4-6
129
+ /model openai/gpt-4o
130
+ /model google/gemini-2.5-pro
131
+
132
+ # Store a provider key at runtime (no restart needed)
133
+ /model setkey anthropic sk-ant-xxxxx
134
+ /model setkey openai sk-xxxxx
135
+ /model setkey google AIzaxxx
136
+ ```
137
+
138
+ ### /mode — Agent Modes
139
+
140
+ ```bash
141
+ /mode # Show current mode
142
+ /mode auto # Automatic (default)
143
+ /mode manual # Step-by-step with approval
144
+ /mode architect # High-level planning focus
145
+ /mode code # Pure coding focus
146
+ /mode ask # Q&A only, no file changes
147
+ ```
148
+
149
+ ---
150
+
151
+ ## Model Catalog (2026)
152
+
153
+ ### OpenAI
154
+ | Model | Notes |
155
+ |-------|-------|
156
+ | `gpt-4o` | Fast, multimodal |
157
+ | `gpt-4o-mini` | Default for OpenAI — fast & cheap |
158
+ | `gpt-4.1` | Latest GPT-4 generation |
159
+ | `gpt-4.1-mini` | Fast, cost-effective |
160
+ | `o3` | Advanced reasoning |
161
+ | `o3-mini` | Fast reasoning |
162
+ | `o4-mini` | Latest mini reasoning |
163
+ | `gpt-5` | Flagship, 1M context |
164
+ | `gpt-5-mini` | Fast GPT-5 |
165
+
166
+ ### Anthropic
167
+ | Model | Notes |
168
+ |-------|-------|
169
+ | `claude-opus-4-6` | Most capable, 1M context |
170
+ | `claude-sonnet-4-6` | Default — balanced speed/quality |
171
+ | `claude-haiku-4-5` | Fastest, lowest cost |
172
+
173
+ ### Google Gemini
174
+ | Model | Notes |
175
+ |-------|-------|
176
+ | `gemini-2.5-pro` | Frontier, 2M context |
177
+ | `gemini-2.5-flash` | Default for Google — fast |
178
+ | `gemini-2.5-flash-lite` | Ultra-fast & cheap |
179
+ | `gemini-3.1-pro` | Latest frontier, 2M context |
180
+ | `gemini-3.1-flash` | Fast |
181
+
182
+ ---
183
+
184
+ ## Session Management
185
+
186
+ ```bash
187
+ # Resume last session
188
+ yuan resume
189
+
190
+ # List recent sessions
191
+ yuan resume --list
192
+
193
+ # Resume specific session by ID
194
+ yuan resume --id <sessionId>
195
+ ```
196
+
197
+ ---
198
+
199
+ ## Design Mode
200
+
201
+ AI-powered real-time UI design collaboration using Playwright:
202
+
203
+ ```bash
204
+ yuan design # Auto-detect dev server
205
+ yuan design --port 3000 # Specify port
206
+ yuan design --auto-vision # Screenshot after every change
207
+ yuan design --viewport mobile # Mobile viewport
208
+ yuan design --dev-command "npm run dev" # Custom dev command
209
+ ```
210
+
211
+ ---
212
+
213
+ ## Auth (YUA Platform)
214
+
215
+ ```bash
216
+ yuan login # Browser-based OAuth
217
+ yuan logout
218
+ yuan whoami # Show current user and plan
219
+ ```
220
+
221
+ ---
222
+
223
+ ## Agent Architecture (v0.6.0)
224
+
225
+ YUAN uses a multi-layer AI engine:
226
+
227
+ | Module | Role |
228
+ |--------|------|
229
+ | **AgentLoop** | Core tool-use loop — sends messages, executes tools, handles approval |
230
+ | **HierarchicalPlanner** | Breaks complex tasks into sub-tasks with dependency ordering |
231
+ | **ExecutionPolicyEngine** | Token/cost budget enforcement per iteration |
232
+ | **ContinuationEngine** | Checkpointing every 3 iterations, recovery on error |
233
+ | **ReflexionEngine** | Per-iteration reflection — injects self-improvement insights |
234
+ | **WorldStateCollector** | Tracks file changes, propagates context updates |
235
+ | **QAPipeline** | Quick + thorough quality checks post-execution |
236
+ | **Governor** | Safety/security scanning before tool execution |
237
+ | **AutoFix** | Automatic lint/type error repair loop |
238
+
239
+ ---
240
+
241
+ ## Packages
242
+
243
+ | Package | npm | Description |
244
+ |---------|-----|-------------|
245
+ | `@yuaone/cli` | [![npm](https://img.shields.io/npm/v/@yuaone/cli)](https://www.npmjs.com/package/@yuaone/cli) | CLI + TUI |
246
+ | `@yuaone/core` | [![npm](https://img.shields.io/npm/v/@yuaone/core)](https://www.npmjs.com/package/@yuaone/core) | Agent runtime |
247
+ | `@yuaone/tools` | [![npm](https://img.shields.io/npm/v/@yuaone/tools)](https://www.npmjs.com/package/@yuaone/tools) | Tool implementations |
248
+
249
+ ---
250
+
251
+ ## License
252
+
253
+ AGPL-3.0 — see [LICENSE](LICENSE).
254
+
255
+ Built by [YUAone](https://yuaone.com).
package/dist/cli.js CHANGED
@@ -199,6 +199,79 @@ program
199
199
  const interactive = new InteractiveSession(renderer, sessionManager, configManager, session);
200
200
  await interactive.start();
201
201
  });
202
+ // ─── yuan benchmark ───
203
+ program
204
+ .command("benchmark")
205
+ .description("Run YUAN agent benchmarks against a task suite")
206
+ .argument("[config]", "Path to benchmark config JSON, or 'sample' to run built-in sample tasks")
207
+ .option("--results-dir <dir>", "Directory to save results", ".yuan/benchmarks")
208
+ .option("--no-save", "Do not save results to disk")
209
+ .option("--no-baseline", "Skip baseline comparison")
210
+ .option("--report", "Print Markdown report to stdout after run")
211
+ .option("--concurrent <n>", "Max concurrent tasks (default 1)", parseInt)
212
+ .action(async (configArg, options) => {
213
+ const { BenchmarkRunner } = await import("@yuaone/core");
214
+ const runner = new BenchmarkRunner({
215
+ resultsDir: options.resultsDir,
216
+ maxConcurrent: options.concurrent ?? 1,
217
+ saveResults: options.save,
218
+ compareBaseline: options.baseline,
219
+ });
220
+ // Load tasks: 'sample' or path to JSON file
221
+ let tasks = [];
222
+ if (!configArg || configArg === "sample") {
223
+ tasks = BenchmarkRunner.getSampleTasks();
224
+ console.log(`\nRunning ${tasks.length} built-in sample tasks...\n`);
225
+ }
226
+ else {
227
+ const { readFile } = await import("node:fs/promises");
228
+ try {
229
+ const raw = await readFile(configArg, "utf-8");
230
+ const parsed = JSON.parse(raw);
231
+ if (Array.isArray(parsed)) {
232
+ tasks = parsed;
233
+ }
234
+ else if (parsed.tasks && Array.isArray(parsed.tasks)) {
235
+ tasks = parsed.tasks;
236
+ }
237
+ else {
238
+ console.error(`Error: config must be a JSON array of tasks or { tasks: [...] }`);
239
+ process.exit(1);
240
+ }
241
+ }
242
+ catch (err) {
243
+ const msg = err instanceof Error ? err.message : String(err);
244
+ console.error(`Error loading benchmark config: ${msg}`);
245
+ process.exit(1);
246
+ }
247
+ console.log(`\nLoaded ${tasks.length} benchmark tasks from ${configArg}\n`);
248
+ }
249
+ // Note: BenchmarkRunner does not call AgentLoop directly (no circular dep).
250
+ // Without an agent result map, tasks will report 'no_execution'.
251
+ // For a full run, integrate AgentLoop externally and pass taskResults map.
252
+ const summary = await runner.runSuite(tasks);
253
+ // Print summary
254
+ console.log(`\nBenchmark Results:`);
255
+ console.log(` Total: ${summary.totalTasks}`);
256
+ console.log(` Passed: ${summary.passed}`);
257
+ console.log(` Failed: ${summary.failed}`);
258
+ console.log(` Rate: ${(summary.successRate * 100).toFixed(1)}%`);
259
+ console.log(` Est Cost: $${summary.totalCostEstimateUSD.toFixed(4)}`);
260
+ if (summary.regressions.length > 0) {
261
+ console.log(`\n Regressions: ${summary.regressions.join(", ")}`);
262
+ }
263
+ if (summary.improvements.length > 0) {
264
+ console.log(` Improvements: ${summary.improvements.join(", ")}`);
265
+ }
266
+ if (options.report) {
267
+ console.log("\n" + runner.generateReport(summary));
268
+ }
269
+ if (options.save) {
270
+ const savedPath = await runner.saveResults(summary);
271
+ console.log(`\nResults saved to: ${savedPath}`);
272
+ }
273
+ process.exit(summary.failed > 0 ? 1 : 0);
274
+ });
202
275
  // ─── yuan design ───
203
276
  program
204
277
  .command("design")
package/dist/cli.js.map CHANGED
@@ -1 +1 @@
1
- {"version":3,"file":"cli.js","sourceRoot":"","sources":["../src/cli.ts"],"names":[],"mappings":";AAEA;;;;;;;;;;;;GAYG;AAEH,OAAO,EAAE,OAAO,EAAE,MAAM,WAAW,CAAC;AACpC,OAAO,EAAE,aAAa,EAAE,MAAM,aAAa,CAAC;AAC5C,OAAO,EAAE,gBAAgB,EAAE,MAAM,eAAe,CAAC;AACjD,OAAO,EAAE,kBAAkB,EAAE,MAAM,kBAAkB,CAAC;AACtD,OAAO,EAAE,cAAc,EAAE,MAAM,cAAc,CAAC;AAC9C,OAAO,EAAE,UAAU,EAAE,MAAM,cAAc,CAAC;AAC1C,OAAO,EAAE,KAAK,EAAE,MAAM,EAAE,OAAO,EAAE,MAAM,WAAW,CAAC;AACnD,OAAO,EAAE,aAAa,EAAE,MAAM,aAAa,CAAC;AAE5C,MAAM,OAAO,GAAG,aAAa,CAAC,MAAM,CAAC,IAAI,CAAC,GAAG,CAAC,CAAC;AAC/C,MAAM,WAAW,GAAY,OAAO,CAAC,iBAAiB,CAAyB,CAAC,OAAO,CAAC;AAExF,MAAM,QAAQ,GAAG,IAAI,gBAAgB,EAAE,CAAC;AAExC,MAAM,OAAO,GAAG,IAAI,OAAO,EAAE,CAAC;AAE9B,OAAO;KACJ,IAAI,CAAC,MAAM,CAAC;KACZ,WAAW,CAAC,qBAAqB,CAAC;KAClC,OAAO,CAAC,WAAW,CAAC,CAAC;AAExB,0CAA0C;AAC1C,OAAO;KACJ,MAAM,CAAC,WAAW,EAAE,sDAAsD,CAAC;KAC3E,MAAM,CAAC,KAAK,EAAE,OAA8B,EAAE,EAAE;IAC/C,MAAM,aAAa,GAAG,IAAI,aAAa,EAAE,CAAC;IAC1C,MAAM,cAAc,GAAG,IAAI,cAAc,EAAE,CAAC;IAE5C,IAAI,CAAC,aAAa,CAAC,YAAY,EAAE,EAAE,CAAC;QAClC,QAAQ,CAAC,MAAM,EAAE,CAAC;QAClB,QAAQ,CAAC,IAAI,CAAC,0CAA0C,CAAC,CAAC;QAC1D,MAAM,aAAa,CAAC,gBAAgB,EAAE,CAAC;QACvC,OAAO,CAAC,GAAG,EAAE,CAAC;IAChB,CAAC;IAED,6CAA6C;IAC7C,IAAI,OAAO,CAAC,OAAO,IAAI,CAAC,OAAO,CAAC,MAAM,CAAC,KAAK,EAAE,CAAC;QAC7C,MAAM,OAAO,GAAG,IAAI,kBAAkB,CACpC,QAAQ,EACR,cAAc,EACd,aAAa,CACd,CAAC;QACF,MAAM,OAAO,CAAC,KAAK,EAAE,CAAC;QACtB,OAAO;IACT,CAAC;IAED,iCAAiC;IACjC,MAAM,EAAE,SAAS,EAAE,GAAG,MAAM,MAAM,CAAC,cAAc,CAAC,CAAC;IACnD,MAAM,EAAE,WAAW,EAAE,GAAG,MAAM,MAAM,CAAC,uBAAuB,CAAC,CAAC;IAC9D,MAAM,MAAM,GAAG,aAAa,CAAC,GAAG,EAAE,CAAC;IAEnC,MAAM,MAAM,GAAG,IAAI,WAAW,CAAC;QAC7B,QAAQ,EAAE,MAAM,CAAC,QAAQ,IAAI,QAAQ;QACrC,MAAM,EAAE,MAAM,CAAC,MAAM;QACrB,OAAO,EAAE,MAAM,CAAC,OAAO;QACvB,KAAK,EAAE,MAAM,CAAC,KAAK;QACnB,OAAO,EAAE,MAAM,CAAC,OAAO;QACvB,OAAO,EAAE,OAAO,CAAC,GAAG,EAAE;KACvB,CAAC,CAAC;IAEH,SAAS,CAAC;QACR,OAAO,EAAE,WAAW;QACpB,KAAK,EAAE,aAAa,CAAC,QAAQ,EAAE;QAC/B,QAAQ,EAAE,MAAM,CAAC,QAAQ,IAAI,QAAQ;QACrC,MAAM;QACN,aAAa;QACb,MAAM,EAAE,GAAG,EAAE;YACX,OAAO,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC;QAClB,CAAC;KACF,CAAC,CAAC;AACL,CAAC,CAAC,CAAC;AAEL,iDAAiD;AACjD,MAAM,aAAa,GAAG,KAAK,EAAE,MAAc,EAAE,OAA2B,EAAiB,EAAE;IACzF,MAAM,QAAQ,GAAG,MAAM,UAAU,CAAC,MAAM,EAAE,OAAO,CAAC,CAAC;IACnD,OAAO,CAAC,IAAI,CAAC,QAAQ,CAAC,CAAC;AACzB,CAAC,CAAC;AAEF,OAAO;KACJ,OAAO,CAAC,MAAM,CAAC;KACf,WAAW,CAAC,4BAA4B,CAAC;KACzC,QAAQ,CAAC,UAAU,EAAE,4BAA4B,CAAC;KAClD,MAAM,CAAC,qBAAqB,EAAE,4BAA4B,CAAC;KAC3D,MAAM,CAAC,aAAa,CAAC,CAAC;AAEzB,OAAO;KACJ,OAAO,CAAC,KAAK,CAAC;KACd,WAAW,CAAC,+CAA+C,CAAC;KAC5D,QAAQ,CAAC,UAAU,EAAE,4BAA4B,CAAC;KAClD,MAAM,CAAC,qBAAqB,EAAE,4BAA4B,CAAC;KAC3D,MAAM,CAAC,aAAa,CAAC,CAAC;AAEzB,sBAAsB;AACtB,MAAM,SAAS,GAAG,OAAO;KACtB,OAAO,CAAC,QAAQ,CAAC;KACjB,WAAW,CAAC,2BAA2B,CAAC,CAAC;AAE5C,SAAS;KACN,MAAM,CAAC,KAAK,IAAI,EAAE;IACjB,MAAM,aAAa,GAAG,IAAI,aAAa,EAAE,CAAC;IAC1C,MAAM,aAAa,CAAC,gBAAgB,EAAE,CAAC;AACzC,CAAC,CAAC,CAAC;AAEL,SAAS;KACN,OAAO,CAAC,SAAS,CAAC;KAClB,WAAW,CAAC,4BAA4B,CAAC;KACzC,QAAQ,CAAC,YAAY,EAAE,6CAA6C,CAAC;KACrE,QAAQ,CAAC,OAAO,EAAE,SAAS,CAAC;KAC5B,MAAM,CAAC,CAAC,QAAgB,EAAE,GAAW,EAAE,EAAE;IACxC,MAAM,cAAc,GAAG,CAAC,QAAQ,EAAE,WAAW,EAAE,KAAK,EAAE,QAAQ,CAAU,CAAC;IACzE,IAAI,CAAC,cAAc,CAAC,QAAQ,CAAC,QAAyC,CAAC,EAAE,CAAC;QACxE,QAAQ,CAAC,KAAK,CAAC,qBAAqB,QAAQ,0CAA0C,CAAC,CAAC;QACxF,OAAO,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC;IAClB,CAAC;IACD,MAAM,aAAa,GAAG,IAAI,aAAa,EAAE,CAAC;IAC1C,aAAa,CAAC,MAAM,CAAC,QAAqD,EAAE,GAAG,CAAC,CAAC;IACjF,QAAQ,CAAC,OAAO,CAAC,qBAAqB,QAAQ,EAAE,CAAC,CAAC;AACpD,CAAC,CAAC,CAAC;AAEL,SAAS;KACN,OAAO,CAAC,MAAM,CAAC;KACf,WAAW,CAAC,4BAA4B,CAAC;KACzC,MAAM,CAAC,GAAG,EAAE;IACX,MAAM,aAAa,GAAG,IAAI,aAAa,EAAE,CAAC;IAC1C,OAAO,CAAC,GAAG,EAAE,CAAC;IACd,OAAO,CAAC,GAAG,CAAC,aAAa,CAAC,IAAI,EAAE,CAAC,CAAC;IAClC,OAAO,CAAC,GAAG,EAAE,CAAC;AAChB,CAAC,CAAC,CAAC;AAEL,SAAS;KACN,OAAO,CAAC,UAAU,CAAC;KACnB,WAAW,CAAC,oCAAoC,CAAC;KACjD,QAAQ,CAAC,QAAQ,EAAE,sBAAsB,CAAC;KAC1C,MAAM,CAAC,CAAC,IAAY,EAAE,EAAE;IACvB,IAAI,IAAI,KAAK,OAAO,IAAI,IAAI,KAAK,OAAO,EAAE,CAAC;QACzC,QAAQ,CAAC,KAAK,CAAC,iBAAiB,IAAI,uBAAuB,CAAC,CAAC;QAC7D,OAAO,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC;IAClB,CAAC;IACD,MAAM,aAAa,GAAG,IAAI,aAAa,EAAE,CAAC;IAC1C,aAAa,CAAC,OAAO,CAAC,IAAI,CAAC,CAAC;IAC5B,QAAQ,CAAC,OAAO,CAAC,eAAe,IAAI,EAAE,CAAC,CAAC;AAC1C,CAAC,CAAC,CAAC;AAEL,SAAS;KACN,OAAO,CAAC,YAAY,CAAC;KACrB,WAAW,CAAC,sBAAsB,CAAC;KACnC,QAAQ,CAAC,OAAO,EAAE,0CAA0C,CAAC;KAC7D,MAAM,CAAC,CAAC,GAAW,EAAE,EAAE;IACtB,MAAM,aAAa,GAAG,IAAI,aAAa,EAAE,CAAC;IAC1C,aAAa,CAAC,YAAY,CAAC,GAAG,CAAC,CAAC;IAChC,QAAQ,CAAC,OAAO,CAAC,qBAAqB,GAAG,EAAE,CAAC,CAAC;AAC/C,CAAC,CAAC,CAAC;AAEL,sBAAsB;AACtB,OAAO;KACJ,OAAO,CAAC,QAAQ,CAAC;KACjB,WAAW,CAAC,+BAA+B,CAAC;KAC5C,MAAM,CAAC,kBAAkB,EAAE,iCAAiC,CAAC;KAC7D,MAAM,CAAC,QAAQ,EAAE,sBAAsB,CAAC;KACxC,MAAM,CAAC,KAAK,EAAE,OAAwC,EAAE,EAAE;IACzD,MAAM,aAAa,GAAG,IAAI,aAAa,EAAE,CAAC;IAC1C,MAAM,cAAc,GAAG,IAAI,cAAc,EAAE,CAAC;IAE5C,YAAY;IACZ,IAAI,OAAO,CAAC,IAAI,EAAE,CAAC;QACjB,MAAM,QAAQ,GAAG,cAAc,CAAC,UAAU,CAAC,EAAE,CAAC,CAAC;QAC/C,IAAI,QAAQ,CAAC,MAAM,KAAK,CAAC,EAAE,CAAC;YAC1B,QAAQ,CAAC,IAAI,CAAC,0BAA0B,CAAC,CAAC;YAC1C,OAAO,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC;QAClB,CAAC;QAED,OAAO,CAAC,GAAG,EAAE,CAAC;QACd,QAAQ,CAAC,IAAI,CAAC,kBAAkB,CAAC,CAAC;QAClC,OAAO,CAAC,GAAG,CAAC,IAAI,GAAG,GAAG,CAAC,MAAM,CAAC,EAAE,CAAC,CAAC,CAAC;QACnC,KAAK,MAAM,CAAC,IAAI,QAAQ,EAAE,CAAC;YACzB,MAAM,UAAU,GAAG;gBACjB,OAAO,EAAE,QAAQ;gBACjB,MAAM,EAAE,QAAQ;gBAChB,SAAS,EAAE,QAAQ;gBACnB,OAAO,EAAE,QAAQ;aAClB,CAAC,CAAC,CAAC,MAAM,CAAC,IAAI,GAAG,CAAC;YACnB,MAAM,IAAI,GAAG,IAAI,IAAI,CAAC,CAAC,CAAC,SAAS,CAAC,CAAC,cAAc,EAAE,CAAC;YACpD,MAAM,GAAG,GAAG,CAAC,CAAC,OAAO,CAAC,MAAM,GAAG,EAAE;gBAC/B,CAAC,CAAC,KAAK,GAAG,CAAC,CAAC,OAAO,CAAC,KAAK,CAAC,CAAC,EAAE,CAAC;gBAC9B,CAAC,CAAC,CAAC,CAAC,OAAO,CAAC;YACd,OAAO,CAAC,GAAG,CACT,KAAK,UAAU,IAAI,CAAC,CAAC,EAAE,CAAC,KAAK,CAAC,CAAC,EAAE,CAAC,CAAC,KAAK,CAAC,CAAC,MAAM,CAAC,MAAM,CAAC,EAAE,CAAC,IAAI,IAAI,KAAK,GAAG,MAAM,CAAC,CAAC,QAAQ,CAAC,MAAM,eAAe,CAAC,CAAC,SAAS,GAAG,CAChI,CAAC;QACJ,CAAC;QACD,OAAO,CAAC,GAAG,EAAE,CAAC;QACd,QAAQ,CAAC,IAAI,CAAC,kEAAkE,CAAC,CAAC;QAClF,OAAO,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC;IAClB,CAAC;IAED,cAAc;IACd,MAAM,OAAO,GAAG,OAAO,CAAC,EAAE;QACxB,CAAC,CAAC,cAAc,CAAC,IAAI,CAAC,OAAO,CAAC,EAAE,CAAC;QACjC,CAAC,CAAC,cAAc,CAAC,QAAQ,EAAE,CAAC;IAE9B,IAAI,CAAC,OAAO,EAAE,CAAC;QACb,QAAQ,CAAC,KAAK,CAAC,wDAAwD,CAAC,CAAC;QACzE,QAAQ,CAAC,IAAI,CAAC,qDAAqD,CAAC,CAAC;QACrE,OAAO,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC;IAClB,CAAC;IAED,MAAM,WAAW,GAAG,OAAO,CAAC,MAAM,KAAK,SAAS;QAC9C,CAAC,CAAC,0BAA0B;QAC5B,CAAC,CAAC,OAAO,CAAC,MAAM,KAAK,QAAQ;YAC3B,CAAC,CAAC,WAAW;YACb,CAAC,CAAC,EAAE,CAAC;IAET,QAAQ,CAAC,IAAI,CAAC,oBAAoB,OAAO,CAAC,EAAE,CAAC,KAAK,CAAC,CAAC,EAAE,CAAC,CAAC,MAAM,WAAW,EAAE,CAAC,CAAC;IAC7E,QAAQ,CAAC,IAAI,CAAC,WAAW,OAAO,CAAC,MAAM,gBAAgB,OAAO,CAAC,QAAQ,CAAC,MAAM,kBAAkB,OAAO,CAAC,SAAS,EAAE,CAAC,CAAC;IACrH,QAAQ,CAAC,IAAI,CAAC,gBAAgB,OAAO,CAAC,UAAU,CAAC,KAAK,GAAG,OAAO,CAAC,UAAU,CAAC,MAAM,SAAS,OAAO,CAAC,UAAU,CAAC,KAAK,UAAU,OAAO,CAAC,UAAU,CAAC,MAAM,GAAG,CAAC,CAAC;IAE3J,0BAA0B;IAC1B,MAAM,cAAc,CAAC,YAAY,CAAC,OAAO,EAAE,SAAS,CAAC,CAAC;IAEtD,MAAM,WAAW,GAAG,IAAI,kBAAkB,CACxC,QAAQ,EACR,cAAc,EACd,aAAa,EACb,OAAO,CACR,CAAC;IACF,MAAM,WAAW,CAAC,KAAK,EAAE,CAAC;AAC5B,CAAC,CAAC,CAAC;AAEL,sBAAsB;AACtB,OAAO;KACJ,OAAO,CAAC,QAAQ,CAAC;KACjB,WAAW,CAAC,+DAA+D,CAAC;KAC5E,MAAM,CAAC,mBAAmB,EAAE,iBAAiB,EAAE,QAAQ,CAAC;KACxD,MAAM,CAAC,eAAe,EAAE,4CAA4C,CAAC;KACrE,MAAM,CAAC,qBAAqB,EAAE,0CAA0C,CAAC;KACzE,MAAM,CAAC,qBAAqB,EAAE,2BAA2B,CAAC;KAC1D,MAAM,CAAC,KAAK,EAAE,OAAO,EAAE,EAAE;IACxB,MAAM,EAAE,aAAa,EAAE,GAAG,MAAM,MAAM,CAAC,aAAa,CAAC,CAAC;IACtD,MAAM,aAAa,CAAC,OAAO,CAAC,CAAC;AAC/B,CAAC,CAAC,CAAC;AAEL,qBAAqB;AACrB,OAAO;KACJ,OAAO,CAAC,OAAO,CAAC;KAChB,WAAW,CAAC,uBAAuB,CAAC;KACpC,MAAM,CAAC,aAAa,EAAE,cAAc,EAAE,6BAA6B,CAAC;KACpE,MAAM,CAAC,KAAK,EAAE,IAAqB,EAAE,EAAE;IACtC,MAAM,KAAK,CAAC,IAAI,CAAC,GAAG,CAAC,CAAC;AACxB,CAAC,CAAC,CAAC;AAEL,sBAAsB;AACtB,OAAO;KACJ,OAAO,CAAC,QAAQ,CAAC;KACjB,WAAW,CAAC,0BAA0B,CAAC;KACvC,MAAM,CAAC,KAAK,IAAI,EAAE;IACjB,MAAM,MAAM,EAAE,CAAC;AACjB,CAAC,CAAC,CAAC;AAEL,sBAAsB;AACtB,OAAO;KACJ,OAAO,CAAC,QAAQ,CAAC;KACjB,WAAW,CAAC,wBAAwB,CAAC;KACrC,MAAM,CAAC,KAAK,IAAI,EAAE;IACjB,MAAM,IAAI,GAAG,MAAM,OAAO,EAAE,CAAC;IAC7B,IAAI,CAAC,IAAI,EAAE,CAAC;QACV,OAAO,CAAC,GAAG,CAAC,gCAAgC,CAAC,CAAC;QAC9C,OAAO;IACT,CAAC;IACD,OAAO,CAAC,GAAG,CAAC,GAAG,IAAI,CAAC,IAAI,CAAC,KAAK,KAAK,IAAI,CAAC,IAAI,CAAC,IAAI,GAAG,CAAC,CAAC;AACxD,CAAC,CAAC,CAAC;AAEL,OAAO,CAAC,KAAK,EAAE,CAAC"}
1
+ {"version":3,"file":"cli.js","sourceRoot":"","sources":["../src/cli.ts"],"names":[],"mappings":";AAEA;;;;;;;;;;;;GAYG;AAEH,OAAO,EAAE,OAAO,EAAE,MAAM,WAAW,CAAC;AACpC,OAAO,EAAE,aAAa,EAAE,MAAM,aAAa,CAAC;AAC5C,OAAO,EAAE,gBAAgB,EAAE,MAAM,eAAe,CAAC;AACjD,OAAO,EAAE,kBAAkB,EAAE,MAAM,kBAAkB,CAAC;AACtD,OAAO,EAAE,cAAc,EAAE,MAAM,cAAc,CAAC;AAC9C,OAAO,EAAE,UAAU,EAAE,MAAM,cAAc,CAAC;AAC1C,OAAO,EAAE,KAAK,EAAE,MAAM,EAAE,OAAO,EAAE,MAAM,WAAW,CAAC;AACnD,OAAO,EAAE,aAAa,EAAE,MAAM,aAAa,CAAC;AAE5C,MAAM,OAAO,GAAG,aAAa,CAAC,MAAM,CAAC,IAAI,CAAC,GAAG,CAAC,CAAC;AAC/C,MAAM,WAAW,GAAY,OAAO,CAAC,iBAAiB,CAAyB,CAAC,OAAO,CAAC;AAExF,MAAM,QAAQ,GAAG,IAAI,gBAAgB,EAAE,CAAC;AAExC,MAAM,OAAO,GAAG,IAAI,OAAO,EAAE,CAAC;AAE9B,OAAO;KACJ,IAAI,CAAC,MAAM,CAAC;KACZ,WAAW,CAAC,qBAAqB,CAAC;KAClC,OAAO,CAAC,WAAW,CAAC,CAAC;AAExB,0CAA0C;AAC1C,OAAO;KACJ,MAAM,CAAC,WAAW,EAAE,sDAAsD,CAAC;KAC3E,MAAM,CAAC,KAAK,EAAE,OAA8B,EAAE,EAAE;IAC/C,MAAM,aAAa,GAAG,IAAI,aAAa,EAAE,CAAC;IAC1C,MAAM,cAAc,GAAG,IAAI,cAAc,EAAE,CAAC;IAE5C,IAAI,CAAC,aAAa,CAAC,YAAY,EAAE,EAAE,CAAC;QAClC,QAAQ,CAAC,MAAM,EAAE,CAAC;QAClB,QAAQ,CAAC,IAAI,CAAC,0CAA0C,CAAC,CAAC;QAC1D,MAAM,aAAa,CAAC,gBAAgB,EAAE,CAAC;QACvC,OAAO,CAAC,GAAG,EAAE,CAAC;IAChB,CAAC;IAED,6CAA6C;IAC7C,IAAI,OAAO,CAAC,OAAO,IAAI,CAAC,OAAO,CAAC,MAAM,CAAC,KAAK,EAAE,CAAC;QAC7C,MAAM,OAAO,GAAG,IAAI,kBAAkB,CACpC,QAAQ,EACR,cAAc,EACd,aAAa,CACd,CAAC;QACF,MAAM,OAAO,CAAC,KAAK,EAAE,CAAC;QACtB,OAAO;IACT,CAAC;IAED,iCAAiC;IACjC,MAAM,EAAE,SAAS,EAAE,GAAG,MAAM,MAAM,CAAC,cAAc,CAAC,CAAC;IACnD,MAAM,EAAE,WAAW,EAAE,GAAG,MAAM,MAAM,CAAC,uBAAuB,CAAC,CAAC;IAC9D,MAAM,MAAM,GAAG,aAAa,CAAC,GAAG,EAAE,CAAC;IAEnC,MAAM,MAAM,GAAG,IAAI,WAAW,CAAC;QAC7B,QAAQ,EAAE,MAAM,CAAC,QAAQ,IAAI,QAAQ;QACrC,MAAM,EAAE,MAAM,CAAC,MAAM;QACrB,OAAO,EAAE,MAAM,CAAC,OAAO;QACvB,KAAK,EAAE,MAAM,CAAC,KAAK;QACnB,OAAO,EAAE,MAAM,CAAC,OAAO;QACvB,OAAO,EAAE,OAAO,CAAC,GAAG,EAAE;KACvB,CAAC,CAAC;IAEH,SAAS,CAAC;QACR,OAAO,EAAE,WAAW;QACpB,KAAK,EAAE,aAAa,CAAC,QAAQ,EAAE;QAC/B,QAAQ,EAAE,MAAM,CAAC,QAAQ,IAAI,QAAQ;QACrC,MAAM;QACN,aAAa;QACb,MAAM,EAAE,GAAG,EAAE;YACX,OAAO,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC;QAClB,CAAC;KACF,CAAC,CAAC;AACL,CAAC,CAAC,CAAC;AAEL,iDAAiD;AACjD,MAAM,aAAa,GAAG,KAAK,EAAE,MAAc,EAAE,OAA2B,EAAiB,EAAE;IACzF,MAAM,QAAQ,GAAG,MAAM,UAAU,CAAC,MAAM,EAAE,OAAO,CAAC,CAAC;IACnD,OAAO,CAAC,IAAI,CAAC,QAAQ,CAAC,CAAC;AACzB,CAAC,CAAC;AAEF,OAAO;KACJ,OAAO,CAAC,MAAM,CAAC;KACf,WAAW,CAAC,4BAA4B,CAAC;KACzC,QAAQ,CAAC,UAAU,EAAE,4BAA4B,CAAC;KAClD,MAAM,CAAC,qBAAqB,EAAE,4BAA4B,CAAC;KAC3D,MAAM,CAAC,aAAa,CAAC,CAAC;AAEzB,OAAO;KACJ,OAAO,CAAC,KAAK,CAAC;KACd,WAAW,CAAC,+CAA+C,CAAC;KAC5D,QAAQ,CAAC,UAAU,EAAE,4BAA4B,CAAC;KAClD,MAAM,CAAC,qBAAqB,EAAE,4BAA4B,CAAC;KAC3D,MAAM,CAAC,aAAa,CAAC,CAAC;AAEzB,sBAAsB;AACtB,MAAM,SAAS,GAAG,OAAO;KACtB,OAAO,CAAC,QAAQ,CAAC;KACjB,WAAW,CAAC,2BAA2B,CAAC,CAAC;AAE5C,SAAS;KACN,MAAM,CAAC,KAAK,IAAI,EAAE;IACjB,MAAM,aAAa,GAAG,IAAI,aAAa,EAAE,CAAC;IAC1C,MAAM,aAAa,CAAC,gBAAgB,EAAE,CAAC;AACzC,CAAC,CAAC,CAAC;AAEL,SAAS;KACN,OAAO,CAAC,SAAS,CAAC;KAClB,WAAW,CAAC,4BAA4B,CAAC;KACzC,QAAQ,CAAC,YAAY,EAAE,6CAA6C,CAAC;KACrE,QAAQ,CAAC,OAAO,EAAE,SAAS,CAAC;KAC5B,MAAM,CAAC,CAAC,QAAgB,EAAE,GAAW,EAAE,EAAE;IACxC,MAAM,cAAc,GAAG,CAAC,QAAQ,EAAE,WAAW,EAAE,KAAK,EAAE,QAAQ,CAAU,CAAC;IACzE,IAAI,CAAC,cAAc,CAAC,QAAQ,CAAC,QAAyC,CAAC,EAAE,CAAC;QACxE,QAAQ,CAAC,KAAK,CAAC,qBAAqB,QAAQ,0CAA0C,CAAC,CAAC;QACxF,OAAO,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC;IAClB,CAAC;IACD,MAAM,aAAa,GAAG,IAAI,aAAa,EAAE,CAAC;IAC1C,aAAa,CAAC,MAAM,CAAC,QAAqD,EAAE,GAAG,CAAC,CAAC;IACjF,QAAQ,CAAC,OAAO,CAAC,qBAAqB,QAAQ,EAAE,CAAC,CAAC;AACpD,CAAC,CAAC,CAAC;AAEL,SAAS;KACN,OAAO,CAAC,MAAM,CAAC;KACf,WAAW,CAAC,4BAA4B,CAAC;KACzC,MAAM,CAAC,GAAG,EAAE;IACX,MAAM,aAAa,GAAG,IAAI,aAAa,EAAE,CAAC;IAC1C,OAAO,CAAC,GAAG,EAAE,CAAC;IACd,OAAO,CAAC,GAAG,CAAC,aAAa,CAAC,IAAI,EAAE,CAAC,CAAC;IAClC,OAAO,CAAC,GAAG,EAAE,CAAC;AAChB,CAAC,CAAC,CAAC;AAEL,SAAS;KACN,OAAO,CAAC,UAAU,CAAC;KACnB,WAAW,CAAC,oCAAoC,CAAC;KACjD,QAAQ,CAAC,QAAQ,EAAE,sBAAsB,CAAC;KAC1C,MAAM,CAAC,CAAC,IAAY,EAAE,EAAE;IACvB,IAAI,IAAI,KAAK,OAAO,IAAI,IAAI,KAAK,OAAO,EAAE,CAAC;QACzC,QAAQ,CAAC,KAAK,CAAC,iBAAiB,IAAI,uBAAuB,CAAC,CAAC;QAC7D,OAAO,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC;IAClB,CAAC;IACD,MAAM,aAAa,GAAG,IAAI,aAAa,EAAE,CAAC;IAC1C,aAAa,CAAC,OAAO,CAAC,IAAI,CAAC,CAAC;IAC5B,QAAQ,CAAC,OAAO,CAAC,eAAe,IAAI,EAAE,CAAC,CAAC;AAC1C,CAAC,CAAC,CAAC;AAEL,SAAS;KACN,OAAO,CAAC,YAAY,CAAC;KACrB,WAAW,CAAC,sBAAsB,CAAC;KACnC,QAAQ,CAAC,OAAO,EAAE,0CAA0C,CAAC;KAC7D,MAAM,CAAC,CAAC,GAAW,EAAE,EAAE;IACtB,MAAM,aAAa,GAAG,IAAI,aAAa,EAAE,CAAC;IAC1C,aAAa,CAAC,YAAY,CAAC,GAAG,CAAC,CAAC;IAChC,QAAQ,CAAC,OAAO,CAAC,qBAAqB,GAAG,EAAE,CAAC,CAAC;AAC/C,CAAC,CAAC,CAAC;AAEL,sBAAsB;AACtB,OAAO;KACJ,OAAO,CAAC,QAAQ,CAAC;KACjB,WAAW,CAAC,+BAA+B,CAAC;KAC5C,MAAM,CAAC,kBAAkB,EAAE,iCAAiC,CAAC;KAC7D,MAAM,CAAC,QAAQ,EAAE,sBAAsB,CAAC;KACxC,MAAM,CAAC,KAAK,EAAE,OAAwC,EAAE,EAAE;IACzD,MAAM,aAAa,GAAG,IAAI,aAAa,EAAE,CAAC;IAC1C,MAAM,cAAc,GAAG,IAAI,cAAc,EAAE,CAAC;IAE5C,YAAY;IACZ,IAAI,OAAO,CAAC,IAAI,EAAE,CAAC;QACjB,MAAM,QAAQ,GAAG,cAAc,CAAC,UAAU,CAAC,EAAE,CAAC,CAAC;QAC/C,IAAI,QAAQ,CAAC,MAAM,KAAK,CAAC,EAAE,CAAC;YAC1B,QAAQ,CAAC,IAAI,CAAC,0BAA0B,CAAC,CAAC;YAC1C,OAAO,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC;QAClB,CAAC;QAED,OAAO,CAAC,GAAG,EAAE,CAAC;QACd,QAAQ,CAAC,IAAI,CAAC,kBAAkB,CAAC,CAAC;QAClC,OAAO,CAAC,GAAG,CAAC,IAAI,GAAG,GAAG,CAAC,MAAM,CAAC,EAAE,CAAC,CAAC,CAAC;QACnC,KAAK,MAAM,CAAC,IAAI,QAAQ,EAAE,CAAC;YACzB,MAAM,UAAU,GAAG;gBACjB,OAAO,EAAE,QAAQ;gBACjB,MAAM,EAAE,QAAQ;gBAChB,SAAS,EAAE,QAAQ;gBACnB,OAAO,EAAE,QAAQ;aAClB,CAAC,CAAC,CAAC,MAAM,CAAC,IAAI,GAAG,CAAC;YACnB,MAAM,IAAI,GAAG,IAAI,IAAI,CAAC,CAAC,CAAC,SAAS,CAAC,CAAC,cAAc,EAAE,CAAC;YACpD,MAAM,GAAG,GAAG,CAAC,CAAC,OAAO,CAAC,MAAM,GAAG,EAAE;gBAC/B,CAAC,CAAC,KAAK,GAAG,CAAC,CAAC,OAAO,CAAC,KAAK,CAAC,CAAC,EAAE,CAAC;gBAC9B,CAAC,CAAC,CAAC,CAAC,OAAO,CAAC;YACd,OAAO,CAAC,GAAG,CACT,KAAK,UAAU,IAAI,CAAC,CAAC,EAAE,CAAC,KAAK,CAAC,CAAC,EAAE,CAAC,CAAC,KAAK,CAAC,CAAC,MAAM,CAAC,MAAM,CAAC,EAAE,CAAC,IAAI,IAAI,KAAK,GAAG,MAAM,CAAC,CAAC,QAAQ,CAAC,MAAM,eAAe,CAAC,CAAC,SAAS,GAAG,CAChI,CAAC;QACJ,CAAC;QACD,OAAO,CAAC,GAAG,EAAE,CAAC;QACd,QAAQ,CAAC,IAAI,CAAC,kEAAkE,CAAC,CAAC;QAClF,OAAO,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC;IAClB,CAAC;IAED,cAAc;IACd,MAAM,OAAO,GAAG,OAAO,CAAC,EAAE;QACxB,CAAC,CAAC,cAAc,CAAC,IAAI,CAAC,OAAO,CAAC,EAAE,CAAC;QACjC,CAAC,CAAC,cAAc,CAAC,QAAQ,EAAE,CAAC;IAE9B,IAAI,CAAC,OAAO,EAAE,CAAC;QACb,QAAQ,CAAC,KAAK,CAAC,wDAAwD,CAAC,CAAC;QACzE,QAAQ,CAAC,IAAI,CAAC,qDAAqD,CAAC,CAAC;QACrE,OAAO,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC;IAClB,CAAC;IAED,MAAM,WAAW,GAAG,OAAO,CAAC,MAAM,KAAK,SAAS;QAC9C,CAAC,CAAC,0BAA0B;QAC5B,CAAC,CAAC,OAAO,CAAC,MAAM,KAAK,QAAQ;YAC3B,CAAC,CAAC,WAAW;YACb,CAAC,CAAC,EAAE,CAAC;IAET,QAAQ,CAAC,IAAI,CAAC,oBAAoB,OAAO,CAAC,EAAE,CAAC,KAAK,CAAC,CAAC,EAAE,CAAC,CAAC,MAAM,WAAW,EAAE,CAAC,CAAC;IAC7E,QAAQ,CAAC,IAAI,CAAC,WAAW,OAAO,CAAC,MAAM,gBAAgB,OAAO,CAAC,QAAQ,CAAC,MAAM,kBAAkB,OAAO,CAAC,SAAS,EAAE,CAAC,CAAC;IACrH,QAAQ,CAAC,IAAI,CAAC,gBAAgB,OAAO,CAAC,UAAU,CAAC,KAAK,GAAG,OAAO,CAAC,UAAU,CAAC,MAAM,SAAS,OAAO,CAAC,UAAU,CAAC,KAAK,UAAU,OAAO,CAAC,UAAU,CAAC,MAAM,GAAG,CAAC,CAAC;IAE3J,0BAA0B;IAC1B,MAAM,cAAc,CAAC,YAAY,CAAC,OAAO,EAAE,SAAS,CAAC,CAAC;IAEtD,MAAM,WAAW,GAAG,IAAI,kBAAkB,CACxC,QAAQ,EACR,cAAc,EACd,aAAa,EACb,OAAO,CACR,CAAC;IACF,MAAM,WAAW,CAAC,KAAK,EAAE,CAAC;AAC5B,CAAC,CAAC,CAAC;AAEL,yBAAyB;AACzB,OAAO;KACJ,OAAO,CAAC,WAAW,CAAC;KACpB,WAAW,CAAC,gDAAgD,CAAC;KAC7D,QAAQ,CAAC,UAAU,EAAE,yEAAyE,CAAC;KAC/F,MAAM,CAAC,qBAAqB,EAAE,2BAA2B,EAAE,kBAAkB,CAAC;KAC9E,MAAM,CAAC,WAAW,EAAE,6BAA6B,CAAC;KAClD,MAAM,CAAC,eAAe,EAAE,0BAA0B,CAAC;KACnD,MAAM,CAAC,UAAU,EAAE,2CAA2C,CAAC;KAC/D,MAAM,CAAC,kBAAkB,EAAE,kCAAkC,EAAE,QAAQ,CAAC;KACxE,MAAM,CAAC,KAAK,EAAE,SAA6B,EAAE,OAM7C,EAAE,EAAE;IACH,MAAM,EAAE,eAAe,EAAE,GAAG,MAAM,MAAM,CAAC,cAAc,CAAC,CAAC;IAEzD,MAAM,MAAM,GAAG,IAAI,eAAe,CAAC;QACjC,UAAU,EAAE,OAAO,CAAC,UAAU;QAC9B,aAAa,EAAE,OAAO,CAAC,UAAU,IAAI,CAAC;QACtC,WAAW,EAAE,OAAO,CAAC,IAAI;QACzB,eAAe,EAAE,OAAO,CAAC,QAAQ;KAClC,CAAC,CAAC;IAEH,4CAA4C;IAC5C,IAAI,KAAK,GAA2C,EAAE,CAAC;IAEvD,IAAI,CAAC,SAAS,IAAI,SAAS,KAAK,QAAQ,EAAE,CAAC;QACzC,KAAK,GAAG,eAAe,CAAC,cAAc,EAAE,CAAC;QACzC,OAAO,CAAC,GAAG,CAAC,aAAa,KAAK,CAAC,MAAM,6BAA6B,CAAC,CAAC;IACtE,CAAC;SAAM,CAAC;QACN,MAAM,EAAE,QAAQ,EAAE,GAAG,MAAM,MAAM,CAAC,kBAAkB,CAAC,CAAC;QACtD,IAAI,CAAC;YACH,MAAM,GAAG,GAAG,MAAM,QAAQ,CAAC,SAAS,EAAE,OAAO,CAAC,CAAC;YAC/C,MAAM,MAAM,GAAG,IAAI,CAAC,KAAK,CAAC,GAAG,CAAC,CAAC;YAC/B,IAAI,KAAK,CAAC,OAAO,CAAC,MAAM,CAAC,EAAE,CAAC;gBAC1B,KAAK,GAAG,MAAM,CAAC;YACjB,CAAC;iBAAM,IAAI,MAAM,CAAC,KAAK,IAAI,KAAK,CAAC,OAAO,CAAC,MAAM,CAAC,KAAK,CAAC,EAAE,CAAC;gBACvD,KAAK,GAAG,MAAM,CAAC,KAAK,CAAC;YACvB,CAAC;iBAAM,CAAC;gBACN,OAAO,CAAC,KAAK,CAAC,iEAAiE,CAAC,CAAC;gBACjF,OAAO,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC;YAClB,CAAC;QACH,CAAC;QAAC,OAAO,GAAG,EAAE,CAAC;YACb,MAAM,GAAG,GAAG,GAAG,YAAY,KAAK,CAAC,CAAC,CAAC,GAAG,CAAC,OAAO,CAAC,CAAC,CAAC,MAAM,CAAC,GAAG,CAAC,CAAC;YAC7D,OAAO,CAAC,KAAK,CAAC,mCAAmC,GAAG,EAAE,CAAC,CAAC;YACxD,OAAO,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC;QAClB,CAAC;QACD,OAAO,CAAC,GAAG,CAAC,YAAY,KAAK,CAAC,MAAM,yBAAyB,SAAS,IAAI,CAAC,CAAC;IAC9E,CAAC;IAED,4EAA4E;IAC5E,iEAAiE;IACjE,2EAA2E;IAC3E,MAAM,OAAO,GAAG,MAAM,MAAM,CAAC,QAAQ,CAAC,KAAK,CAAC,CAAC;IAE7C,gBAAgB;IAChB,OAAO,CAAC,GAAG,CAAC,sBAAsB,CAAC,CAAC;IACpC,OAAO,CAAC,GAAG,CAAC,eAAe,OAAO,CAAC,UAAU,EAAE,CAAC,CAAC;IACjD,OAAO,CAAC,GAAG,CAAC,eAAe,OAAO,CAAC,MAAM,EAAE,CAAC,CAAC;IAC7C,OAAO,CAAC,GAAG,CAAC,eAAe,OAAO,CAAC,MAAM,EAAE,CAAC,CAAC;IAC7C,OAAO,CAAC,GAAG,CAAC,eAAe,CAAC,OAAO,CAAC,WAAW,GAAG,GAAG,CAAC,CAAC,OAAO,CAAC,CAAC,CAAC,GAAG,CAAC,CAAC;IACtE,OAAO,CAAC,GAAG,CAAC,gBAAgB,OAAO,CAAC,oBAAoB,CAAC,OAAO,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC;IAEvE,IAAI,OAAO,CAAC,WAAW,CAAC,MAAM,GAAG,CAAC,EAAE,CAAC;QACnC,OAAO,CAAC,GAAG,CAAC,oBAAoB,OAAO,CAAC,WAAW,CAAC,IAAI,CAAC,IAAI,CAAC,EAAE,CAAC,CAAC;IACpE,CAAC;IACD,IAAI,OAAO,CAAC,YAAY,CAAC,MAAM,GAAG,CAAC,EAAE,CAAC;QACpC,OAAO,CAAC,GAAG,CAAC,mBAAmB,OAAO,CAAC,YAAY,CAAC,IAAI,CAAC,IAAI,CAAC,EAAE,CAAC,CAAC;IACpE,CAAC;IAED,IAAI,OAAO,CAAC,MAAM,EAAE,CAAC;QACnB,OAAO,CAAC,GAAG,CAAC,IAAI,GAAG,MAAM,CAAC,cAAc,CAAC,OAAO,CAAC,CAAC,CAAC;IACrD,CAAC;IAED,IAAI,OAAO,CAAC,IAAI,EAAE,CAAC;QACjB,MAAM,SAAS,GAAG,MAAM,MAAM,CAAC,WAAW,CAAC,OAAO,CAAC,CAAC;QACpD,OAAO,CAAC,GAAG,CAAC,uBAAuB,SAAS,EAAE,CAAC,CAAC;IAClD,CAAC;IAED,OAAO,CAAC,IAAI,CAAC,OAAO,CAAC,MAAM,GAAG,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC;AAC3C,CAAC,CAAC,CAAC;AAEL,sBAAsB;AACtB,OAAO;KACJ,OAAO,CAAC,QAAQ,CAAC;KACjB,WAAW,CAAC,+DAA+D,CAAC;KAC5E,MAAM,CAAC,mBAAmB,EAAE,iBAAiB,EAAE,QAAQ,CAAC;KACxD,MAAM,CAAC,eAAe,EAAE,4CAA4C,CAAC;KACrE,MAAM,CAAC,qBAAqB,EAAE,0CAA0C,CAAC;KACzE,MAAM,CAAC,qBAAqB,EAAE,2BAA2B,CAAC;KAC1D,MAAM,CAAC,KAAK,EAAE,OAAO,EAAE,EAAE;IACxB,MAAM,EAAE,aAAa,EAAE,GAAG,MAAM,MAAM,CAAC,aAAa,CAAC,CAAC;IACtD,MAAM,aAAa,CAAC,OAAO,CAAC,CAAC;AAC/B,CAAC,CAAC,CAAC;AAEL,qBAAqB;AACrB,OAAO;KACJ,OAAO,CAAC,OAAO,CAAC;KAChB,WAAW,CAAC,uBAAuB,CAAC;KACpC,MAAM,CAAC,aAAa,EAAE,cAAc,EAAE,6BAA6B,CAAC;KACpE,MAAM,CAAC,KAAK,EAAE,IAAqB,EAAE,EAAE;IACtC,MAAM,KAAK,CAAC,IAAI,CAAC,GAAG,CAAC,CAAC;AACxB,CAAC,CAAC,CAAC;AAEL,sBAAsB;AACtB,OAAO;KACJ,OAAO,CAAC,QAAQ,CAAC;KACjB,WAAW,CAAC,0BAA0B,CAAC;KACvC,MAAM,CAAC,KAAK,IAAI,EAAE;IACjB,MAAM,MAAM,EAAE,CAAC;AACjB,CAAC,CAAC,CAAC;AAEL,sBAAsB;AACtB,OAAO;KACJ,OAAO,CAAC,QAAQ,CAAC;KACjB,WAAW,CAAC,wBAAwB,CAAC;KACrC,MAAM,CAAC,KAAK,IAAI,EAAE;IACjB,MAAM,IAAI,GAAG,MAAM,OAAO,EAAE,CAAC;IAC7B,IAAI,CAAC,IAAI,EAAE,CAAC;QACV,OAAO,CAAC,GAAG,CAAC,gCAAgC,CAAC,CAAC;QAC9C,OAAO;IACT,CAAC;IACD,OAAO,CAAC,GAAG,CAAC,GAAG,IAAI,CAAC,IAAI,CAAC,KAAK,KAAK,IAAI,CAAC,IAAI,CAAC,IAAI,GAAG,CAAC,CAAC;AACxD,CAAC,CAAC,CAAC;AAEL,OAAO,CAAC,KAAK,EAAE,CAAC"}
@@ -1 +1 @@
1
- {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../src/commands/index.ts"],"names":[],"mappings":"AAAA;;;;;GAKG;AAOH,OAAO,KAAK,EAAE,aAAa,EAAE,MAAM,cAAc,CAAC;AAMlD,gDAAgD;AAChD,MAAM,WAAW,cAAc;IAC7B,4EAA4E;IAC5E,MAAM,EAAE,CAAC,GAAG,EAAE,MAAM,KAAK,IAAI,CAAC;IAC9B,6BAA6B;IAC7B,MAAM,EAAE,aAAa,CAAC;IACtB,6BAA6B;IAC7B,OAAO,EAAE,MAAM,CAAC;IAChB,4BAA4B;IAC5B,QAAQ,EAAE,MAAM,CAAC;IACjB,yBAAyB;IACzB,KAAK,EAAE,MAAM,CAAC;IACd,wBAAwB;IACxB,OAAO,EAAE,MAAM,CAAC;IAChB,4CAA4C;IAC5C,YAAY,EAAE,MAAM,EAAE,CAAC;IACvB,uDAAuD;IACvD,SAAS,EAAE;QACT,MAAM,EAAE,MAAM,CAAC;QACf,YAAY,EAAE,MAAM,CAAC;QACrB,WAAW,EAAE,MAAM,CAAC;QACpB,eAAe,EAAE,MAAM,CAAC;KACzB,CAAC;IACF,mBAAmB;IACnB,WAAW,EAAE;QACX,EAAE,EAAE,MAAM,CAAC;QACX,SAAS,EAAE,MAAM,CAAC;KACnB,CAAC;IACF,0CAA0C;IAC1C,aAAa,CAAC,EAAE,CAAC,KAAK,EAAE,MAAM,KAAK,IAAI,CAAC;IACxC,yCAAyC;IACzC,YAAY,CAAC,EAAE,CAAC,IAAI,EAAE,MAAM,KAAK,IAAI,CAAC;IACtC,uEAAuE;IACvE,aAAa,CAAC,EAAE;QAAE,IAAI,IAAI,MAAM,CAAC;QAAC,GAAG,IAAI,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,CAAA;KAAE,CAAC;IACnE,iDAAiD;IACjD,kBAAkB,EAAE,OAAO,CAAC;IAC5B,sCAAsC;IACtC,SAAS,CAAC,EAAE,MAAM,IAAI,CAAC;IACvB,qCAAqC;IACrC,QAAQ,CAAC,EAAE,MAAM,IAAI,CAAC;IACtB,kCAAkC;IAClC,OAAO,CAAC,EAAE,MAAM,IAAI,CAAC;IACrB,+BAA+B;IAC/B,SAAS,CAAC,EAAE,MAAM,MAAM,CAAC;IACzB,wDAAwD;IACxD,uBAAuB,CAAC,EAAE,MAAM,MAAM,GAAG,IAAI,CAAC;IAC9C,qBAAqB;IACrB,SAAS,CAAC,EAAE,CAAC,IAAI,EAAE,MAAM,KAAK,IAAI,CAAC;CACpC;AAED,oCAAoC;AACpC,MAAM,WAAW,aAAa;IAC5B,gEAAgE;IAChE,MAAM,CAAC,EAAE,MAAM,CAAC;IAChB,kCAAkC;IAClC,IAAI,CAAC,EAAE,OAAO,CAAC;IACf,2CAA2C;IAC3C,KAAK,CAAC,EAAE,OAAO,CAAC;CACjB;AAED,MAAM,MAAM,cAAc,GAAG,CAAC,GAAG,EAAE,cAAc,EAAE,IAAI,EAAE,MAAM,EAAE,KAAK,aAAa,CAAC;AAMpF,uCAAuC;AACvC,MAAM,WAAW,UAAU;IACzB,IAAI,EAAE,MAAM,CAAC;IACb,WAAW,EAAE,MAAM,CAAC;IACpB,OAAO,CAAC,EAAE,MAAM,EAAE,CAAC;IACnB,OAAO,EAAE,cAAc,CAAC;CACzB;AAsjCD,4CAA4C;AAC5C,eAAO,MAAM,YAAY,EAAE,UAAU,EAyBpC,CAAC;AAaF;;;GAGG;AACH,wBAAgB,cAAc,CAAC,GAAG,EAAE,cAAc,EAAE,KAAK,EAAE,MAAM,GAAG,aAAa,GAAG,IAAI,CASvF;AAED;;GAEG;AACH,wBAAgB,cAAc,CAAC,KAAK,EAAE,MAAM,GAAG,OAAO,CAGrD;AAED;;GAEG;AACH,wBAAgB,cAAc,IAAI,UAAU,EAAE,CAE7C"}
1
+ {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../src/commands/index.ts"],"names":[],"mappings":"AAAA;;;;;GAKG;AAOH,OAAO,KAAK,EAAE,aAAa,EAAE,MAAM,cAAc,CAAC;AAMlD,gDAAgD;AAChD,MAAM,WAAW,cAAc;IAC7B,4EAA4E;IAC5E,MAAM,EAAE,CAAC,GAAG,EAAE,MAAM,KAAK,IAAI,CAAC;IAC9B,6BAA6B;IAC7B,MAAM,EAAE,aAAa,CAAC;IACtB,6BAA6B;IAC7B,OAAO,EAAE,MAAM,CAAC;IAChB,4BAA4B;IAC5B,QAAQ,EAAE,MAAM,CAAC;IACjB,yBAAyB;IACzB,KAAK,EAAE,MAAM,CAAC;IACd,wBAAwB;IACxB,OAAO,EAAE,MAAM,CAAC;IAChB,4CAA4C;IAC5C,YAAY,EAAE,MAAM,EAAE,CAAC;IACvB,uDAAuD;IACvD,SAAS,EAAE;QACT,MAAM,EAAE,MAAM,CAAC;QACf,YAAY,EAAE,MAAM,CAAC;QACrB,WAAW,EAAE,MAAM,CAAC;QACpB,eAAe,EAAE,MAAM,CAAC;KACzB,CAAC;IACF,mBAAmB;IACnB,WAAW,EAAE;QACX,EAAE,EAAE,MAAM,CAAC;QACX,SAAS,EAAE,MAAM,CAAC;KACnB,CAAC;IACF,0CAA0C;IAC1C,aAAa,CAAC,EAAE,CAAC,KAAK,EAAE,MAAM,KAAK,IAAI,CAAC;IACxC,yCAAyC;IACzC,YAAY,CAAC,EAAE,CAAC,IAAI,EAAE,MAAM,KAAK,IAAI,CAAC;IACtC,uEAAuE;IACvE,aAAa,CAAC,EAAE;QAAE,IAAI,IAAI,MAAM,CAAC;QAAC,GAAG,IAAI,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,CAAA;KAAE,CAAC;IACnE,iDAAiD;IACjD,kBAAkB,EAAE,OAAO,CAAC;IAC5B,sCAAsC;IACtC,SAAS,CAAC,EAAE,MAAM,IAAI,CAAC;IACvB,qCAAqC;IACrC,QAAQ,CAAC,EAAE,MAAM,IAAI,CAAC;IACtB,kCAAkC;IAClC,OAAO,CAAC,EAAE,MAAM,IAAI,CAAC;IACrB,+BAA+B;IAC/B,SAAS,CAAC,EAAE,MAAM,MAAM,CAAC;IACzB,wDAAwD;IACxD,uBAAuB,CAAC,EAAE,MAAM,MAAM,GAAG,IAAI,CAAC;IAC9C,qBAAqB;IACrB,SAAS,CAAC,EAAE,CAAC,IAAI,EAAE,MAAM,KAAK,IAAI,CAAC;CACpC;AAED,oCAAoC;AACpC,MAAM,WAAW,aAAa;IAC5B,gEAAgE;IAChE,MAAM,CAAC,EAAE,MAAM,CAAC;IAChB,kCAAkC;IAClC,IAAI,CAAC,EAAE,OAAO,CAAC;IACf,2CAA2C;IAC3C,KAAK,CAAC,EAAE,OAAO,CAAC;CACjB;AAED,MAAM,MAAM,cAAc,GAAG,CAAC,GAAG,EAAE,cAAc,EAAE,IAAI,EAAE,MAAM,EAAE,KAAK,aAAa,CAAC;AAMpF,uCAAuC;AACvC,MAAM,WAAW,UAAU;IACzB,IAAI,EAAE,MAAM,CAAC;IACb,WAAW,EAAE,MAAM,CAAC;IACpB,OAAO,CAAC,EAAE,MAAM,EAAE,CAAC;IACnB,OAAO,EAAE,cAAc,CAAC;CACzB;AA6oCD,4CAA4C;AAC5C,eAAO,MAAM,YAAY,EAAE,UAAU,EA2BpC,CAAC;AAaF;;;GAGG;AACH,wBAAgB,cAAc,CAAC,GAAG,EAAE,cAAc,EAAE,KAAK,EAAE,MAAM,GAAG,aAAa,GAAG,IAAI,CASvF;AAED;;GAEG;AACH,wBAAgB,cAAc,CAAC,KAAK,EAAE,MAAM,GAAG,OAAO,CAGrD;AAED;;GAEG;AACH,wBAAgB,cAAc,IAAI,UAAU,EAAE,CAE7C"}
@@ -957,6 +957,74 @@ const skills = (ctx, args) => {
957
957
  }
958
958
  return { output: `Unknown subcommand: ${subCommand}. Use /skills for help.` };
959
959
  };
960
+ /* ──────────────────────────────────────────
961
+ Benchmark
962
+ ────────────────────────────────────────── */
963
+ const benchmark = (ctx, args) => {
964
+ const subCommand = args[0]?.toLowerCase();
965
+ if (!subCommand || subCommand === "sample") {
966
+ return {
967
+ output: [
968
+ "Benchmark Mode",
969
+ "",
970
+ " /benchmark sample — Run built-in sample tasks (no agent execution)",
971
+ " /benchmark report — Show last saved benchmark report",
972
+ "",
973
+ "For a full benchmark run with agent execution, use the CLI:",
974
+ " yuan benchmark [config.json] — Run tasks from a config file",
975
+ " yuan benchmark sample — Run built-in sample tasks",
976
+ " yuan benchmark --report — Print Markdown report",
977
+ "",
978
+ "Results are saved to .yuan/benchmarks/",
979
+ ].join("\n"),
980
+ };
981
+ }
982
+ if (subCommand === "report") {
983
+ // Load and display last benchmark report
984
+ const benchmarkDir = path.join(ctx.workDir, ".yuan", "benchmarks");
985
+ try {
986
+ const files = fs
987
+ .readdirSync(benchmarkDir)
988
+ .filter((f) => f.startsWith("benchmark-") && f.endsWith(".json"))
989
+ .sort()
990
+ .reverse();
991
+ if (files.length === 0) {
992
+ return { output: "No benchmark results found. Run: yuan benchmark sample" };
993
+ }
994
+ const latestPath = path.join(benchmarkDir, files[0]);
995
+ const raw = fs.readFileSync(latestPath, "utf-8");
996
+ const summary = JSON.parse(raw);
997
+ const lines = [
998
+ `Last Benchmark: ${summary.timestamp}`,
999
+ ` Total: ${summary.totalTasks}`,
1000
+ ` Passed: ${summary.passed}`,
1001
+ ` Failed: ${summary.failed}`,
1002
+ ` Rate: ${(summary.successRate * 100).toFixed(1)}%`,
1003
+ ` Avg Tokens/Task: ${Math.round(summary.avgTokensPerTask).toLocaleString()}`,
1004
+ ` Avg Duration: ${(summary.avgDurationMs / 1000).toFixed(1)}s`,
1005
+ ` Est. Cost: $${summary.totalCostEstimateUSD.toFixed(4)}`,
1006
+ ];
1007
+ if (summary.regressions.length > 0) {
1008
+ lines.push(` Regressions: ${summary.regressions.join(", ")}`);
1009
+ }
1010
+ if (summary.improvements.length > 0) {
1011
+ lines.push(` Improvements: ${summary.improvements.join(", ")}`);
1012
+ }
1013
+ lines.push(`\nFull report: ${latestPath}`);
1014
+ return { output: lines.join("\n") };
1015
+ }
1016
+ catch (err) {
1017
+ const msg = err instanceof Error ? err.message : String(err);
1018
+ return { output: `Could not read benchmark results: ${msg}` };
1019
+ }
1020
+ }
1021
+ return {
1022
+ output: [
1023
+ `Unknown subcommand: ${subCommand}`,
1024
+ "Usage: /benchmark [sample|report]",
1025
+ ].join("\n"),
1026
+ };
1027
+ };
960
1028
  /* ──────────────────────────────────────────
961
1029
  Registry
962
1030
  ────────────────────────────────────────── */
@@ -986,6 +1054,8 @@ export const COMMAND_DEFS = [
986
1054
  // Plugin System (P4)
987
1055
  { name: "/plugins", description: "Plugin management (install/remove/search)", handler: plugins },
988
1056
  { name: "/skills", description: "Available skills (tree view)", aliases: ["/skill"], handler: skills },
1057
+ // Benchmark (P5)
1058
+ { name: "/benchmark", description: "Show benchmark info or last report", handler: benchmark },
989
1059
  ];
990
1060
  /** Flat handler map for quick lookup */
991
1061
  const HANDLER_MAP = new Map();