@jigyasudham/veto 2.5.0 → 2.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.
package/LAUNCH-KIT.md CHANGED
@@ -1,9 +1,15 @@
1
1
  # Veto Launch Kit
2
2
 
3
- Ready-to-paste copy for distribution. Facts current as of v2.1.2 (npm latest + official MCP Registry).
4
- Core hook: **89 agentic tools + a 49-specialist agent council for every major AI CLI, at zero extra
3
+ Ready-to-paste copy for distribution. Facts current as of v2.5.0 (npm latest + official MCP Registry).
4
+ Core hook: **93 agentic tools + a 49-specialist agent council for every major AI CLI, at zero extra
5
5
  token cost on subscription plans.**
6
6
 
7
+ > **New in v2.2–2.5 (lead with these — they're the cleanest expression of the "Veto" name):**
8
+ > a guardrail layer that catches AI mistakes before they ship —
9
+ > `veto_dep_verify` (dependency-hallucination guard: flags packages the AI invented),
10
+ > `veto_decisions` (decision-drift enforcement: stops the AI quietly reversing an agreed choice), and
11
+ > `veto_drift_check` (compounding-error circuit breaker). This is the launch's strongest story.
12
+
7
13
  Canonical links:
8
14
  - npm: https://www.npmjs.com/package/@jigyasudham/veto
9
15
  - GitHub: https://github.com/jigyasudham/veto
@@ -24,7 +30,7 @@ Canonical links:
24
30
  **Entry line (alphabetical by `owner/name` within the section):**
25
31
 
26
32
  ```
27
- - [jigyasudham/veto](https://github.com/jigyasudham/veto) 📇 🏠 🍎 🪟 🐧 - 89 agentic tools and a 49-specialist agent council (Lead Dev, Architect, Security…) for every major AI CLI — Claude Code, Codex, Gemini, Cursor, Windsurf. Self-learning router, cross-platform memory, deterministic agents that optionally upgrade to LLM. Zero extra token cost on subscriptions.
33
+ - [jigyasudham/veto](https://github.com/jigyasudham/veto) 📇 🏠 🍎 🪟 🐧 - 93 agentic tools and a 49-specialist agent council (Lead Dev, Architect, Security…) for every major AI CLI — Claude Code, Codex, Gemini, Cursor, Windsurf. Self-learning router, cross-platform memory, dependency-hallucination + decision-drift guards, deterministic agents that optionally upgrade to LLM. Zero extra token cost on subscriptions.
28
34
  ```
29
35
 
30
36
  **Submit steps:**
@@ -32,9 +38,9 @@ Canonical links:
32
38
  gh repo fork punkpeye/awesome-mcp-servers --clone
33
39
  # add the line under the Coding Agents section, keeping alphabetical order
34
40
  git checkout -b add-veto
35
- git commit -am "Add Veto — 89 MCP tools + 49-agent council for every AI CLI"
41
+ git commit -am "Add Veto — 93 MCP tools + 49-agent council for every AI CLI"
36
42
  git push -u origin add-veto
37
- gh pr create --repo punkpeye/awesome-mcp-servers --title "Add Veto" --body "Adds Veto: an MCP server giving every major AI CLI a 49-specialist agent council + 89 tools, using existing subscriptions (no API keys). MIT, on the official MCP registry as io.github.jigyasudham/veto."
43
+ gh pr create --repo punkpeye/awesome-mcp-servers --title "Add Veto" --body "Adds Veto: an MCP server giving every major AI CLI a 49-specialist agent council + 93 tools, using existing subscriptions (no API keys). MIT, on the official MCP registry as io.github.jigyasudham/veto."
38
44
  ```
39
45
 
40
46
  ---
@@ -43,16 +49,16 @@ gh pr create --repo punkpeye/awesome-mcp-servers --title "Add Veto" --body "Adds
43
49
 
44
50
  **Title (submit the GitHub URL as the link):**
45
51
  ```
46
- Show HN: Veto – 89 MCP tools and a 49-agent council for every AI CLI
52
+ Show HN: Veto – 93 MCP tools and a 49-agent council for every AI CLI
47
53
  ```
48
54
 
49
55
  **First comment (post immediately after submitting):**
50
56
  ```
51
57
  Hi HN — I built Veto, a single MCP server that plugs into whatever AI CLI you already
52
- use (Claude Code, Codex, Gemini, Cursor, Windsurf, Zed, JetBrains) and gives it 89 tools
58
+ use (Claude Code, Codex, Gemini, Cursor, Windsurf, Zed, JetBrains) and gives it 93 tools
53
59
  and a council of 49 specialist agents — code review, security/secrets scanning, a 7-agent
54
- "should we build this" debate, CI gates, SDD agents, and persistent memory that follows you
55
- across CLIs.
60
+ "should we build this" debate, CI gates, SDD agents, guards that catch dependency
61
+ hallucinations and decision drift, and persistent memory that follows you across CLIs.
56
62
 
57
63
  The design decision I'd most like feedback on: the 42 worker agents are *deterministic
58
64
  expert modules by default* (regex/AST secret detection, OWASP/CWE rules, complexity metrics)
@@ -75,7 +81,7 @@ or the cross-CLI memory/handoff. What would you want a tool like this to NOT do?
75
81
  ```
76
82
 
77
83
  > HN tips: post Tue–Thu ~8–10am ET. Don't ask for upvotes. Reply fast and non-defensively;
78
- > the skeptical "isn't 89 tools bloat?" question is your best moment — answer it with the
84
+ > the skeptical "isn't 93 tools bloat?" question is your best moment — answer it with the
79
85
  > deterministic-vs-LLM architecture above.
80
86
 
81
87
  ---
@@ -86,7 +92,7 @@ or the cross-CLI memory/handoff. What would you want a tool like this to NOT do?
86
92
  **Title:** I gave Claude Code a 49-agent council + persistent memory across CLIs — open source, no API keys
87
93
  **Body:**
88
94
  ```
89
- Veto is an MCP server I've been building that adds 89 tools + 49 specialist agents to Claude
95
+ Veto is an MCP server I've been building that adds 93 tools + 49 specialist agents to Claude
90
96
  Code using your existing Claude subscription (no separate API key, no extra token bill on
91
97
  Max/Pro).
92
98
 
@@ -96,6 +102,9 @@ What it actually does day to day:
96
102
  debates a plan before you build it
97
103
  - memory that saves your session and restores it in Gemini CLI or Codex if you switch — the
98
104
  handoff carries full context
105
+ - guards that catch the AI's own mistakes: dependency-hallucination detection (flags packages
106
+ it invented), decision-drift enforcement (stops it reversing a choice you already made), and a
107
+ compounding-error circuit breaker
99
108
  - a self-learning router that re-tunes which model tier handles which task
100
109
 
101
110
  Most worker agents are deterministic (real OWASP/CWE/secret-detection code), and upgrade to
@@ -125,11 +134,11 @@ Repo: https://github.com/jigyasudham/veto — keen on feedback re: wiring it to
125
134
  ```
126
135
 
127
136
  ### r/ChatGPTCoding
128
- **Title:** Open-source MCP server: 89 tools + 49-agent council that works across Codex, Claude, Gemini & Cursor
137
+ **Title:** Open-source MCP server: 93 tools + 49-agent council that works across Codex, Claude, Gemini & Cursor
129
138
  **Body:**
130
139
  ```
131
140
  Veto is an MCP server that gives whatever AI coding CLI you use (Codex, Claude Code, Gemini,
132
- Cursor, Windsurf) a shared layer: 89 tools, a 49-specialist agent council, code review +
141
+ Cursor, Windsurf) a shared layer: 93 tools, a 49-specialist agent council, code review +
133
142
  security scanning, CI gates, and memory that follows you when you switch tools.
134
143
 
135
144
  The agents are deterministic by default and upgrade to LLM reasoning only when your client
@@ -150,7 +159,7 @@ https://github.com/jigyasudham/veto
150
159
 
151
160
  ```
152
161
  1/ I shipped Veto — one MCP server that gives every major AI CLI a council of 49 specialist
153
- agents + 89 tools, using your existing subscription. No API keys. No extra token bill.
162
+ agents + 93 tools, using your existing subscription. No API keys. No extra token bill.
154
163
 
155
164
  Claude Code, Codex, Gemini, Cursor, Windsurf, Zed, JetBrains — same superpowers everywhere.
156
165
  [attach veto.gif]
@@ -166,7 +175,11 @@ actual trade-offs. It's saved me from a few bad calls already.
166
175
  4/ And it remembers. Save a session in Claude Code, restore it in Gemini CLI mid-task — the
167
176
  handoff carries full context. Plus a router that re-tunes itself every 20 outcomes.
168
177
 
169
- 5/ MIT. On npm and the official MCP registry.
178
+ 5/ The newest part lives up to the name: a guardrail layer that vetoes the AI's own mistakes —
179
+ catches packages it hallucinated, blocks it from quietly reversing a decision you already made,
180
+ and trips a circuit breaker on compounding errors.
181
+
182
+ 6/ MIT. On npm and the official MCP registry.
170
183
 
171
184
  One command: npx @jigyasudham/veto init
172
185
 
@@ -189,23 +202,25 @@ self-learning, multi-agent, developer-tools
189
202
 
190
203
  **Short description (<=100 chars — matches server.json):**
191
204
  ```
192
- 89 agentic MCP tools, 49 specialist agents for every major AI CLI. Self-learning, zero API cost.
205
+ 93 agentic MCP tools, 49 specialist agents for every major AI CLI. Self-learning, zero API cost.
193
206
  ```
194
207
 
195
208
  **One-liner:**
196
209
  ```
197
- A council of 49 specialist agents + 89 tools for every AI CLI, using your existing subscription.
210
+ A council of 49 specialist agents + 93 tools for every AI CLI, using your existing subscription.
198
211
  ```
199
212
 
200
213
  **Long description:**
201
214
  ```
202
215
  Veto is a local MCP server that gives every major AI CLI — Claude Code, Codex, Gemini,
203
- Antigravity, Cursor, Windsurf, Zed, JetBrains — a shared layer of 89 agentic tools and 49
216
+ Antigravity, Cursor, Windsurf, Zed, JetBrains — a shared layer of 93 agentic tools and 49
204
217
  specialist agents. 42 worker agents (across dev, security, memory, research, quality, and
205
218
  workflow domains) run as deterministic expert modules by default and optionally upgrade to LLM
206
219
  reasoning via MCP Sampling; a 7-agent Council debates trade-offs before you build. It adds code
207
- review, security and secrets scanning, CI gates, SDD agents, Playwright automation, a
208
- self-learning router that re-tunes its thresholds every 20 outcomes, and persistent memory that
209
- hands off your session across CLIs. On a subscription it costs nothing extra; on API billing,
210
- Sampling calls count and it warns you. MIT licensed.
220
+ review, security and secrets scanning, CI gates, SDD agents, Playwright automation, a guardrail
221
+ layer that catches the AI's own mistakes (dependency-hallucination detection, decision-drift
222
+ enforcement, and a compounding-error circuit breaker), a self-learning router that re-tunes its
223
+ thresholds every 20 outcomes, and persistent memory that hands off your session across CLIs. On
224
+ a subscription it costs nothing extra; on API billing, Sampling calls count and it warns you.
225
+ MIT licensed.
211
226
  ```
package/LICENSE ADDED
@@ -0,0 +1,21 @@
1
+ MIT License
2
+
3
+ Copyright (c) 2026 Jigyasu Dham
4
+
5
+ Permission is hereby granted, free of charge, to any person obtaining a copy
6
+ of this software and associated documentation files (the "Software"), to deal
7
+ in the Software without restriction, including without limitation the rights
8
+ to use, copy, modify, merge, publish, distribute, sublicense, and/or sell
9
+ copies of the Software, and to permit persons to whom the Software is
10
+ furnished to do so, subject to the following conditions:
11
+
12
+ The above copyright notice and this permission notice shall be included in all
13
+ copies or substantial portions of the Software.
14
+
15
+ THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
16
+ IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
17
+ FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE
18
+ AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
19
+ LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,
20
+ OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE
21
+ SOFTWARE.
package/README.md CHANGED
@@ -1,6 +1,6 @@
1
1
  # veto
2
2
 
3
- > **92 agentic tools. 49 specialists. Every major AI CLI. Self-learning. Zero extra cost on subscriptions.**
3
+ > **93 agentic tools. 49 specialists. Every major AI CLI. Self-learning. Zero extra cost on subscriptions.**
4
4
 
5
5
  An MCP server that runs locally on your machine, plugs into Claude Code, Codex CLI, Gemini CLI, Antigravity CLI, Cursor, Windsurf, Zed, and JetBrains using your existing subscriptions — giving every AI a council of specialist agents, local LLM support, SDD agents, playwright automation, persistent cross-platform memory, a self-learning router that re-tunes its tier thresholds automatically every 20 recorded task outcomes (reviews record outcomes for you; configurable via `auto_apply_learning`), CI/CD gates, workspace discovery, and bidirectional IDE communication.
6
6
 
@@ -69,12 +69,12 @@ The 7-agent **Council** is LLM-first — its value is the multi-agent debate —
69
69
  | **Memory** | `veto_memory_store` · `veto_memory_search` · `veto_memory_delete` · `veto_project_map_update` · `veto_project_map_get` · `veto_pattern_store` · `veto_patterns_list` · `veto_memory_export` · `veto_memory_import` |
70
70
  | **Learning** | `veto_record_outcome` · `veto_learning_stats` · `veto_learning_apply` |
71
71
  | **Handoff** | `veto_handoff` · `veto_continue` · `veto_platform_setup` |
72
- | **Observability** | `veto_usage_status` · `veto_audit_log` · `veto_health` · `veto_metrics` |
72
+ | **Observability** | `veto_usage_status` · `veto_audit_log` · `veto_health` · `veto_metrics` · `veto_snapshot` |
73
73
  | **Discover** | `veto_discover` · `veto_summarize` · `veto_git_blame` · `veto_changelog` · `veto_onboard` · `veto_debt_register` |
74
74
  | **DevTools** | `veto_docs_fetch` · `veto_context_status` · `veto_openapi_gen` · `veto_flag_auditor` · `veto_env_setup` · `veto_commit_message` · `veto_pr_description` · `veto_pr_post` · `veto_prompt_optimizer` · `veto_sre_advisor` · `veto_diagram` · `veto_rca` · `veto_doc_gen` · `veto_postmortem` · `veto_release_notes` · `veto_translate` · `veto_merge_conflict` |
75
75
  | **Plugins** | `veto_plugins` |
76
76
 
77
- ## Compact Mode — 92 tools without the context tax
77
+ ## Compact Mode — 93 tools without the context tax
78
78
 
79
79
  92 tool schemas cost a client ~16K context tokens before the user types a word. Compact mode advertises a surface that is **5–6× smaller**: seven core tools (`veto_status`, `veto_session_save`, `veto_session_restore`, `veto_route_task`, `veto_council_debate`, `veto_memory_search`, `veto_record_outcome`) plus two meta-tools — `veto_find_tools` searches the full catalog by keyword and returns matching schemas on demand; `veto_call` invokes any catalog tool by name. Every tool remains directly callable in both modes; compact only changes what is advertised up front.
80
80
 
@@ -209,7 +209,7 @@ veto sessions # List last 20 saved sessions ([auto] badge on
209
209
  veto sessions --clean # Remove auto-saves older than 7 days
210
210
  veto memory [query] # Search knowledge base (blank = all entries)
211
211
  veto patterns [prefix] # List learned agent/routing patterns
212
- veto tools [filter] # List all 92 MCP tools (--json for machine output)
212
+ veto tools [filter] # List all 93 MCP tools (--json for machine output)
213
213
  veto agents [filter] # List all 49 specialists — workers + council (--json)
214
214
  veto routing [status|log|reset] # Inspect the opt-in routing feedback loop
215
215
  veto hook install # Install pre-commit secrets scan hook
@@ -417,6 +417,16 @@ Platform switching is manual — Veto surfaces which platform has budget remaini
417
417
 
418
418
  ## Release Notes
419
419
 
420
+ ### 2.7.0
421
+ - **Statusline shows LIVE session gauges, not a frozen tally.** The old token segment read Veto's own `rate_usage` table, which only Veto's tools increment — so it sat frozen during normal use. `veto statusline print` now reads the JSON Claude Code pipes to a `statusLine` command on stdin and renders three live gauges: `ctx N%` (context-window used), `5h N%` (5-hour rate limit), and `7d N%` (weekly rate limit). Each colors yellow ≥70 / red ≥90 and drops when its value is unavailable (early session / post-`/compact`). It renders e.g. `⬡ veto GREEN · router 94% · ctx 37% · 5h 74% · 7d 8% · mem 15`, degrades to a neutral `⬡ veto`, and stays crash-proof and non-blocking (TTY-guarded, 200 ms timeout). Veto's own per-platform daily accounting remains available via `veto_rate_status` / `veto_snapshot`.
422
+ - **First-run statusline nudge.** Until the statusline is installed, Veto surfaces a one-line offer to the agent via the MCP `instructions` field, so the feature is discoverable instead of hidden behind a command. Consent-preserving (never edits `settings.json` without the user agreeing) and self-resolving (the nudge disappears once installed).
423
+ - **`veto statusline print --capture <file>`.** Diagnostic aid that appends the raw Claude Code payload alongside the rendered line, so the live gauges can be verified against the values the client actually sent. Off by default; best-effort and never blocks the render.
424
+
425
+ ### 2.6.0
426
+ - **`veto statusline` — a compact Veto line under any AI CLI prompt.** `veto statusline install` wires a `statusLine` command into Claude Code's settings.json (backed up; `uninstall` restores it byte-for-byte). The `print` hot path is read-only, fast, and crash-proof — it renders e.g. `⬡ veto GREEN · router 94% · claude 42% · mem 15` and degrades to a neutral `⬡ veto` if the DB is missing or locked. Lives in the CLI so every Veto user gets it in any terminal, not just the VS Code HUD.
427
+ - **`veto_snapshot` — one-call editor/HUD aggregate.** Returns `{ session, council, routerTop, rate, memoryCount, health }` in a single read-only call, so editor integrations (veto-vscode) can stop reading internal tables directly. Tool count is now **93**.
428
+ - **Stable read-contract versioning.** `veto.db` now stamps `PRAGMA user_version` (`VETO_DB_SCHEMA_VERSION`) on every open, so external readers can detect schema drift and degrade gracefully instead of silently blanking.
429
+
420
430
  ### 2.5.0
421
431
  - **`veto_drift_check` — compounding-error circuit breaker.** Scans the recent tool-call trace for consecutive failures, repeated error messages, and single-tool thrashing, then runs the `debugger` agent for a concrete recovery step. See [Compounding-Error Circuit Breaker](#compounding-error-circuit-breaker).
422
432
  - **Council calibration fixes.** Tightened the deterministic council's pattern triggers so they no longer false-fire on generic words (e.g. "server", "transport") or semver strings like `v2.5.0`, and removed stale hardcoded tool counts from agent reasoning.
@@ -438,7 +448,7 @@ Platform switching is manual — Veto surfaces which platform has budget remaini
438
448
 
439
449
  ## Project Structure
440
450
 
441
- Veto is a single MCP server (`src/server.ts`) that registers 92 tools, MCP Resources, and Prompts, then dispatches every tool call through a per-domain **handler registry** — there is no monolithic switch. Each domain owns a `HandlerMap` module under `src/server/handlers/`:
451
+ Veto is a single MCP server (`src/server.ts`) that registers 93 tools, MCP Resources, and Prompts, then dispatches every tool call through a per-domain **handler registry** — there is no monolithic switch. Each domain owns a `HandlerMap` module under `src/server/handlers/`:
442
452
 
443
453
  | Module | Tools | Domain |
444
454
  |---|---|---|
@@ -0,0 +1,54 @@
1
+ export interface StatuslineData {
2
+ verdict: 'GREEN' | 'YELLOW' | 'RED' | null;
3
+ routerPct: number | null;
4
+ contextPct: number | null;
5
+ rate5hPct: number | null;
6
+ rate7dPct: number | null;
7
+ memCount: number | null;
8
+ }
9
+ export declare function readStatuslineData(): StatuslineData;
10
+ export interface ComposeOptions {
11
+ color?: boolean;
12
+ ascii?: boolean;
13
+ }
14
+ export declare function composeStatusline(data: StatuslineData, opts?: ComposeOptions): string;
15
+ export interface ClaudeStatusInput {
16
+ context_window?: {
17
+ used_percentage?: number | null;
18
+ } | null;
19
+ rate_limits?: {
20
+ five_hour?: {
21
+ used_percentage?: number | null;
22
+ } | null;
23
+ seven_day?: {
24
+ used_percentage?: number | null;
25
+ } | null;
26
+ } | null;
27
+ }
28
+ export interface ClaudeLiveData {
29
+ contextPct: number | null;
30
+ rate5hPct: number | null;
31
+ rate7dPct: number | null;
32
+ }
33
+ export declare function parseClaudeInput(raw: string): ClaudeLiveData;
34
+ export declare function parseClaudeContextPct(raw: string): number | null;
35
+ export declare function printStatusline(opts?: ComposeOptions, capturePath?: string): Promise<void>;
36
+ export interface InstallResult {
37
+ ok: boolean;
38
+ message: string;
39
+ changed?: boolean;
40
+ backupPath?: string;
41
+ }
42
+ export declare function installStatusline(client?: string, opts?: {
43
+ force?: boolean;
44
+ dryRun?: boolean;
45
+ }): InstallResult;
46
+ export declare function uninstallStatusline(client?: string): InstallResult;
47
+ export declare function isStatuslineInstalled(client?: string): boolean;
48
+ export declare function statuslineStatusInfo(client?: string): {
49
+ installed: boolean;
50
+ settingsPath: string | null;
51
+ sample: string;
52
+ };
53
+ export declare function statuslineSetupInstruction(client?: string): string | undefined;
54
+ //# sourceMappingURL=statusline.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"statusline.d.ts","sourceRoot":"","sources":["../../src/cli/statusline.ts"],"names":[],"mappings":"AAyBA,MAAM,WAAW,cAAc;IAC7B,OAAO,EAAE,OAAO,GAAG,QAAQ,GAAG,KAAK,GAAG,IAAI,CAAC;IAC3C,SAAS,EAAE,MAAM,GAAG,IAAI,CAAC;IACzB,UAAU,EAAE,MAAM,GAAG,IAAI,CAAC;IAC1B,SAAS,EAAE,MAAM,GAAG,IAAI,CAAC;IACzB,SAAS,EAAE,MAAM,GAAG,IAAI,CAAC;IACzB,QAAQ,EAAE,MAAM,GAAG,IAAI,CAAC;CACzB;AAqBD,wBAAgB,kBAAkB,IAAI,cAAc,CAuBnD;AA4CD,MAAM,WAAW,cAAc;IAC7B,KAAK,CAAC,EAAE,OAAO,CAAC;IAChB,KAAK,CAAC,EAAE,OAAO,CAAC;CACjB;AAUD,wBAAgB,iBAAiB,CAAC,IAAI,EAAE,cAAc,EAAE,IAAI,GAAE,cAAmB,GAAG,MAAM,CAoCzF;AAOD,MAAM,WAAW,iBAAiB;IAChC,cAAc,CAAC,EAAE;QAAE,eAAe,CAAC,EAAE,MAAM,GAAG,IAAI,CAAA;KAAE,GAAG,IAAI,CAAC;IAC5D,WAAW,CAAC,EAAE;QACZ,SAAS,CAAC,EAAE;YAAE,eAAe,CAAC,EAAE,MAAM,GAAG,IAAI,CAAA;SAAE,GAAG,IAAI,CAAC;QACvD,SAAS,CAAC,EAAE;YAAE,eAAe,CAAC,EAAE,MAAM,GAAG,IAAI,CAAA;SAAE,GAAG,IAAI,CAAC;KACxD,GAAG,IAAI,CAAC;CACV;AAED,MAAM,WAAW,cAAc;IAC7B,UAAU,EAAE,MAAM,GAAG,IAAI,CAAC;IAC1B,SAAS,EAAE,MAAM,GAAG,IAAI,CAAC;IACzB,SAAS,EAAE,MAAM,GAAG,IAAI,CAAC;CAC1B;AAUD,wBAAgB,gBAAgB,CAAC,GAAG,EAAE,MAAM,GAAG,cAAc,CAW5D;AAGD,wBAAgB,qBAAqB,CAAC,GAAG,EAAE,MAAM,GAAG,MAAM,GAAG,IAAI,CAEhE;AA+BD,wBAAsB,eAAe,CAAC,IAAI,GAAE,cAAmB,EAAE,WAAW,CAAC,EAAE,MAAM,GAAG,OAAO,CAAC,IAAI,CAAC,CAiCpG;AAkCD,MAAM,WAAW,aAAa;IAC5B,EAAE,EAAE,OAAO,CAAC;IACZ,OAAO,EAAE,MAAM,CAAC;IAChB,OAAO,CAAC,EAAE,OAAO,CAAC;IAClB,UAAU,CAAC,EAAE,MAAM,CAAC;CACrB;AAED,wBAAgB,iBAAiB,CAAC,MAAM,SAAW,EAAE,IAAI,GAAE;IAAE,KAAK,CAAC,EAAE,OAAO,CAAC;IAAC,MAAM,CAAC,EAAE,OAAO,CAAA;CAAO,GAAG,aAAa,CA0DpH;AAED,wBAAgB,mBAAmB,CAAC,MAAM,SAAW,GAAG,aAAa,CA4CpE;AAID,wBAAgB,qBAAqB,CAAC,MAAM,SAAW,GAAG,OAAO,CAShE;AAED,wBAAgB,oBAAoB,CAAC,MAAM,SAAW,GAAG;IAAE,SAAS,EAAE,OAAO,CAAC;IAAC,YAAY,EAAE,MAAM,GAAG,IAAI,CAAC;IAAC,MAAM,EAAE,MAAM,CAAA;CAAE,CAK3H;AAQD,wBAAgB,0BAA0B,CAAC,MAAM,SAAW,GAAG,MAAM,GAAG,SAAS,CAWhF"}