@kenkaiiii/ggcoder 4.3.40 → 4.3.41

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.
@@ -476,317 +476,118 @@ Report that /update is now available with dependency updates, security audits, a
476
476
  {
477
477
  name: "eyes",
478
478
  aliases: [],
479
- description: "Build project-specific perception probes (screenshots, logs, APIs, etc.) and document them in CLAUDE.md",
480
- prompt: `# Eyes: Give the Agent Project-Specific Perception
481
-
482
- Build the set of "eyes" this project needs — scripts the agent can run to observe UI, logs, APIs, processes, state, builds, etc. — then document them in CLAUDE.md so any future agent (even with no context) can use them. Re-run this command later to add missing eyes or update existing ones.
483
-
484
- ## Execution Discipline (read before starting)
485
-
486
- This command is long because it has to cover any project type. To stay reliable, obey these rules:
487
-
488
- 1. **Minimum viable set.** Build the SMALLEST useful subset of probes first — typically 3–8, never more than 10 in a single run. Mark the rest as \`deferred\` in the manifest. The user re-runs \`/eyes\` to expand coverage. Prefer 4 probes that all pass Phase 4 over 15 probes half-built.
489
- 2. **Budget.** 3–8 probes per run is the target. If the mapper picks more, trim to the highest-value ones for THIS project and defer the rest. Capabilities marked "opt-in" (\`load\`, \`chaos\`, \`remote\`, \`apm\`) are deferred unless the user already configured them or explicitly asks.
490
- 3. **Checkpoint after every phase.** At the end of each phase, write progress into \`.gg/eyes/manifest.json\` (add a \`phase_completed\` field: \`"research" | "design" | "build" | "verify" | "document"\`). On re-run, read this and resume from the next phase. Never redo completed phases unless the user passes \`refresh\` or the project materially changed.
491
- 4. **Phase gates.** Do not start Phase N+1 until Phase N is complete AND its checkpoint is written. Do not announce completion until Phase 5 is written AND Phase 4 Pass B has succeeded.
492
- 5. **Phase 4 Pass B is non-negotiable.** If probes build but the contextless-agent verification is skipped, the command has FAILED — regardless of how many probes work. Report failure and stop; do not paper over it.
493
- 6. **Fail loud, recover small.** If a probe fails to build after one retry, mark it \`failed\` in the manifest with the error, continue with the rest, and report failures at the end. Do not silently drop probes. Do not let one failure abort the whole run.
494
- 7. **Defer, don't fake.** If a capability requires scaffolding that's too invasive (e.g. adding a debug endpoint inside a game engine) and the user hasn't opted in, mark it deferred with a one-line note. Never stub a probe that doesn't actually work.
495
-
496
- ## Hard Rules (Headless Contract)
497
-
498
- These are non-negotiable. The user must never see pop-ups, browser windows, or images opened on their screen. Everything happens in the background.
499
-
500
- - **Never** call \`open\`, \`xdg-open\`, \`start\`, \`code\`, Finder/Explorer reveals, or any command that launches a GUI window.
501
- - **Never** pass \`--headed\`, \`--no-headless\`, \`--gui\`, or equivalent flags. Browsers, emulators, simulators, and engine editors must run headless / in batch mode.
502
- - All artifacts (screenshots, recordings, DB dumps, log snapshots, HAR files, traces) go to \`.gg/eyes/out/\` which MUST be gitignored.
503
- - Every probe script must have a timeout and exit non-zero on failure with a clear stderr message.
504
- - Long-running processes (dev servers, tailers, capture sinks) are started in the background; their PIDs/ports go in \`.gg/eyes/state.json\`; they are stopped via \`.gg/eyes/down.sh\`.
505
- - Never prompt the user. If a dep is missing, install it silently. If the dev server isn't up, start it.
506
- - **Redaction**: before writing any artifact that may contain secrets (logs, HAR files, env dumps, screenshots of auth'd UIs), run it through a redaction pass (\`.gg/eyes/redact.sh\`) that strips JWTs, API keys, bearer tokens, and values of env vars matching \`*_KEY|*_SECRET|*_TOKEN|*_PASSWORD\`.
507
- - **Remote / production eyes**: OFF by default. Only enabled if the user explicitly opts in via \`.gg/eyes/remote.json\` (gitignored). Remote probes must be read-only and refuse to run destructive operations.
508
-
509
- ## Capability Vocabulary
510
-
511
- Think in capabilities, not project types. Map the project to the subset it actually needs. Not every capability applies to every project — pick the relevant ones. Capabilities split into three tiers:
512
-
513
- ### Core (observe)
514
-
515
- - \`visual\` — screenshot a UI (web page, mobile screen, desktop window, game frame)
516
- - \`runtime_logs\` — read recent stdout/stderr or log files from the running app
517
- - \`http\` — hit HTTP endpoints and read responses (REST, GraphQL, health checks)
518
- - \`state\` — inspect persistent state (DB rows, KV stores, files written by the app)
519
- - \`process\` — check what's running, on what port, PID, uptime
520
- - \`build\` — compile/typecheck and surface errors
521
- - \`test\` — run a single test or subset and read output
522
- - \`cli_io\` — invoke the CLI being built with args and capture stdout/stderr/exit
523
- - \`native_ui\` — capture mobile/desktop native windows (simulator screencap, window capture)
524
- - \`dom\` — DOM / accessibility tree snapshot of a headless browser page (often more useful than a screenshot for assertions)
525
- - \`browser_console\` — browser-side console logs and uncaught errors via CDP
526
- - \`network\` — network traffic (HAR export via CDP, or mitmproxy for non-browser traffic)
527
- - \`storage\` — cookies, localStorage, sessionStorage, IndexedDB dumps
528
- - \`sockets\` — open ports / listening sockets (\`lsof -i\`, \`ss\`)
529
- - \`fs_watch\` — filesystem changes during a probe run (fswatch / inotify)
530
- - \`env\` — env var diff, runtime versions, doctor report
531
- - \`perf\` — performance metrics (Lighthouse for web, xctrace / simpleperf for mobile, FPS / frame-time for games, process sampling for servers, bundle size for frontends)
532
- - \`metrics\` — scrape a metrics endpoint (Prometheus, /metrics)
533
- - \`trace\` — pull a distributed trace by ID (OTEL collector)
534
- - \`responsive\` — capture a viewport matrix (mobile / tablet / desktop) in one call
535
- - \`a11y\` — accessibility audit (axe-core on a page, or platform a11y tree)
536
- - \`headers\` — HTTP security-header audit (CSP, HSTS, X-Frame-Options, etc.)
537
-
538
- ### Act (drive to a state)
539
-
540
- These convert the agent from a passive camera into an actor. Without them, ~60% of real debugging still needs the user.
541
-
542
- - \`act_web\` — drive a web UI: click, type, scroll, wait, nav. Playwright script accepts a sequence and returns post-state (screenshot + DOM).
543
- - \`act_mobile\` — drive a mobile app via Appium / XCUITest / UIAutomator: tap, swipe, input.
544
- - \`act_desktop\` — drive a desktop window via nut-js / AXUIElement / UIAutomation / AT-SPI.
545
- - \`act_cli\` — pty-based expect scripts for interactive CLIs (prompts, TUIs). Also captures ANSI frames so Ink/bubbletea/textual output can be snapshotted.
546
- - \`act_game\` — input simulation (keyboard / gamepad) into a running game, optionally recording + replaying deterministic seeds.
547
- - \`auth\` — establish and reuse a logged-in session (Playwright \`storageState.json\`, API token capture) so protected flows are reachable without re-logging in.
548
- - \`deeplink\` — jump directly to a screen by URL / URI scheme (mobile and web).
549
-
550
- ### Capture (external side-effects)
551
-
552
- Local sinks that intercept what the app sends outward, so the agent can verify side-effects without real external services.
553
-
554
- - \`capture_email\` — local SMTP sink (Mailpit / MailHog) + \`.gg/eyes/mail.sh\` to list/read captured messages.
555
- - \`capture_webhook\` — local webhook receiver that logs incoming POSTs + a probe to list them.
556
- - \`capture_push\` — local push-notification sink (ntfy or APNS/FCM mock) + reader.
557
- - \`capture_sms\` — SMS mock / sink if the project sends SMS.
558
- - \`capture_stripe\` — \`stripe listen\` in the background capturing webhook events + reader.
559
- - \`capture_events\` — analytics / tracking event sink (intercepts calls to Segment, PostHog, GA, etc.).
560
- - \`capture_queue\` — peek messages in a queue without consuming (Kafka / Redis / RabbitMQ / SQS / BullMQ / Sidekiq / Celery).
561
- - \`capture_ws\` — open a WebSocket / SSE, record frames, send test messages.
562
- - \`capture_grpc\` — \`grpcurl\` with reflection, record responses.
563
- - \`capture_errors\` — local Sentry-compatible error sink.
564
- - \`capture_audio\` — record audio produced by the app via a virtual sink (ffmpeg + pulseaudio / BlackHole on macOS / WASAPI loopback on Windows). Saves \`.wav\` for playback-by-tooling or waveform inspection.
565
- - \`capture_video\` — record a window or headless-browser video stream via ffmpeg (\`x11grab\` / \`avfoundation\` / \`gdigrab\`) or Playwright's built-in video recording. Saves \`.mp4\`.
566
-
567
- ### Diff & Time (compare, replay)
568
-
569
- - \`diff_visual\` — screenshot vs baseline under \`.gg/eyes/baselines/\` using pixelmatch / odiff; returns similarity score + diff PNG.
570
- - \`diff_api\` — API response vs recorded baseline (golden files).
571
- - \`diff_branch\` — visual diff between two git refs (checkout A, screenshot; checkout B, screenshot; diff). Use a git worktree so the working tree is undisturbed.
572
- - \`record\` — rolling background recorder: tails logs + periodic screenshots + network events to a ring buffer under \`.gg/eyes/recordings/\`. \`replay.sh <timestamp>\` scrubs back.
573
- - \`introspect\` — language-runtime / engine hooks: Node inspector, Python REPL eval, Jupyter \`nbconvert --execute\`, DataFrame head/describe, matplotlib intercept, game-engine RCON-style debug endpoint for entity/state queries.
574
- - \`remote\` — opt-in prod/staging read-only eyes (k8s / fly / vercel / cloudflare / railway log + exec). Must refuse destructive ops. Gated behind \`.gg/eyes/remote.json\`.
575
- - \`security\` — runtime secret-leak scan of artifacts, dependency audit, HTTP header audit.
576
- - \`container\` — \`docker ps\` / \`docker logs\` / \`docker exec\` / \`compose\` wrappers for dockerized stacks.
577
- - \`concurrency\` — multi-session harness: parallel isolated contexts (Playwright contexts, multiple CLI processes) with an action coordinator, for "user A acts, user B observes" tests.
578
-
579
- ### Stress & Environment
580
-
581
- - \`load\` — load / stress testing via k6 / vegeta / wrk / hey. Produces latency percentiles + throughput report. Opt-in (destructive against the target) — off unless the project has a clear perf target or the user enables it.
582
- - \`chaos\` — failure injection: Toxiproxy for network fault (latency, drops, bandwidth), chaos-mesh for k8s, process kill / pause helpers for local procs. Opt-in and scoped (never touches remote unless remote profile explicitly allows).
583
- - \`browser_matrix\` — extension of \`visual\` / \`act_web\`: run the same script across Chromium + Firefox + WebKit and return per-browser results. Use Playwright's multi-browser support; enable only if cross-browser matters for this project.
584
- - \`devices\` — auto-detect physically connected real devices (\`adb devices\`, \`xcrun devicectl list devices\`, \`ideviceinfo\`, USB-serial via \`system_profiler\` / \`lsusb\`). Wires \`native_ui\` / \`act_mobile\` / \`runtime_logs\` to target the physical device when present, falls back to simulator otherwise.
585
- - \`apm\` — read-only pulls from APM providers (Datadog, New Relic, Honeycomb, Grafana Cloud, Sentry) when creds are configured in \`.gg/eyes/remote.json\`. Only under \`remote\`.
586
-
587
- ## Project-Type Recipes (reference, not exhaustive)
588
-
589
- Use this as a starting point in the Capability Mapper. Add or drop based on what the project actually has.
590
-
591
- - **Web app (Next.js / Vite / SvelteKit / Remix / Astro)**: visual, dom, browser_console, network, storage, auth, responsive, a11y, http, runtime_logs, build, test, act_web, diff_visual, capture_email, capture_webhook, perf (Lighthouse). Add \`browser_matrix\` if cross-browser matters; add \`capture_video\` for flow recordings.
592
- - **Backend service / API**: http, runtime_logs, state (DB), process, sockets, build, test, metrics, trace, capture_ws, capture_grpc, capture_queue, capture_email, capture_webhook, capture_stripe, container. Add \`load\` if there's a perf target; \`chaos\` for resilience work.
593
- - **CLI tool**: cli_io, act_cli (pty + ANSI snapshot), runtime_logs, build, test, fs_watch, env.
594
- - **Mobile app (iOS)**: native_ui (\`xcrun simctl io booted screenshot\`), runtime_logs (\`xcrun simctl spawn booted log stream\`), act_mobile (XCUITest / Appium), build (xcodebuild), test, deeplink, perf (xctrace), devices (auto-target physical iPhone if connected).
595
- - **Mobile app (Android)**: native_ui (\`adb shell screencap\`), runtime_logs (\`adb logcat\`), act_mobile (UIAutomator / Appium), build (gradle), test, deeplink, perf (simpleperf), devices.
596
- - **Media app (audio / video / streaming)**: capture_audio, capture_video, perf, runtime_logs — plus whatever platform recipe applies (web / mobile / desktop).
597
- - **Desktop app (Electron / Tauri)**: visual (headless window capture or WebDriver), runtime_logs, build, test, act_desktop, introspect (devtools / Tauri IPC), fs_watch.
598
- - **Game (Unity / Unreal / Godot / custom engine)**: visual (engine batch-mode screenshot or off-screen render), runtime_logs, build (batch-mode build), introspect (REQUIRES a small in-engine debug endpoint the agent can query for entity state — scaffold it if missing), act_game (input injection + deterministic seeding + input recording/replay), perf (FPS / frame-time).
599
- - **Browser extension**: visual + dom + browser_console via Playwright persistent context with \`--load-extension\`; act_web to drive target sites; introspect for background/service-worker state.
600
- - **Python / data / ML**: introspect (nb-run, df-head, plot-capture intercepting \`plt.show\`), http (if FastAPI / Flask), state, build (typecheck via mypy), test, env (gpu status, python/cuda versions), perf.
601
- - **Chrome/Firefox extension**: like web app + extension-specific loading.
602
- - **Library / SDK**: build, test, cli_io (if it has a CLI demo), introspect (REPL eval).
603
-
604
- Also consider adding across ANY project type when warranted: \`load\` (if perf-critical), \`chaos\` (if resilience-critical), \`capture_audio\` / \`capture_video\` (if the app produces media), \`devices\` (if real hardware matters), \`apm\` (if prod observability is configured).
605
-
606
- ## Probe Naming Convention
607
-
608
- Probe IDs use \`<verb>\` or \`<verb>-<object>\` lowercase-kebab: \`screenshot\`, \`logs\`, \`api\`, \`dom\`, \`act-web\`, \`diff-visual\`, \`capture-email\`, \`record\`. Scripts are \`.gg/eyes/<id>.sh\`. Self-tests are \`.gg/eyes/<id>.test.sh\`.
609
-
610
- ## Phase 1: Research (Parallel Sub-Agents)
611
-
612
- Use the subagent tool to spawn these agents IN PARALLEL (multiple calls in a single response). Each must return structured findings.
613
-
614
- **Agent 1 — Project Classifier**: Read manifests (package.json, Cargo.toml, go.mod, pyproject.toml, Podfile, Info.plist, tauri.conf.json, docker-compose.yml, Makefile, etc.). Return: project kind(s) (web app / CLI / mobile / desktop / backend service / library / game / extension), languages, frameworks, runtimes.
615
-
616
- **Agent 2 — Runtime Surveyor**: Find existing dev scripts, ports, log paths, DB locations, test runners, build outputs, env files. Report exact commands already defined.
617
-
618
- **Agent 3 — Existing-Eyes Auditor**: Read current \`.gg/eyes/\` (if any), \`.gg/eyes/manifest.json\`, existing \`CLAUDE.md\`, and \`.gitignore\`. Report what's already installed so this run is a diff, not a rewrite. Never overwrite user-modified probe scripts without good reason.
619
-
620
- **Agent 4 — Capability Mapper**: Given the above, pick the 3–8 HIGHEST-VALUE probes to build NOW, and list everything else as deferred. The minimum viable set should unlock the most common perception tasks for this project type (for a web app that's usually \`visual\` + \`dom\` + \`runtime_logs\` + \`http\` + \`act_web\`; for a backend: \`http\` + \`runtime_logs\` + \`state\` + \`capture_email\` or \`capture_webhook\`; for a CLI: \`cli_io\` + \`act_cli\` + \`runtime_logs\`). Opt-in capabilities (\`load\`, \`chaos\`, \`remote\`, \`apm\`) are ALWAYS deferred unless explicitly requested. For each chosen capability, pick the best concrete implementation for this stack (e.g. \`visual\` web → Playwright headless; \`visual\` Tauri → WebDriver or tauri-driver; \`visual\` iOS → \`xcrun simctl io booted screenshot\`; \`native_ui\` Android → \`adb shell screencap\`; \`capture_email\` → Mailpit on a free port; \`act_web\` → Playwright with reusable \`storageState.json\`; \`introspect\` game → defer unless the engine already exposes a debug endpoint).
621
-
622
- Wait for all agents. Synthesize into a single plan listing \`build_now\` (3–8 probes) and \`deferred\` (everything else with a one-line reason).
623
-
624
- **Checkpoint: write \`phase_completed: "research"\` to \`.gg/eyes/manifest.json\` before proceeding.**
479
+ description: "Set up or expand project-specific perception probes (screenshots, logs, APIs, capture sinks) and document them in CLAUDE.md",
480
+ prompt: `# Eyes: Set Up or Expand Project Perception
625
481
 
626
- ## Phase 2: Design
482
+ Build the perception probes this project needs and document them in CLAUDE.md so any future agent can use them. The \`ggcoder eyes\` CLI does the mechanical work (detect, install, verify); your job is **judgment** (which capabilities matter for THIS project) and **prose** (the project-specific triggers in CLAUDE.md). Re-run this command anytime to add or fix probes.
627
483
 
628
- Write \`.gg/eyes/manifest.json\` with the probe list. Schema:
484
+ ## Steps
629
485
 
630
- \`\`\`json
631
- {
632
- "version": 1,
633
- "phase_completed": "design",
634
- "project": { "kind": "...", "stack": "..." },
635
- "probes": [
636
- {
637
- "id": "screenshot",
638
- "capability": "visual",
639
- "status": "pending",
640
- "script": ".gg/eyes/screenshot.sh",
641
- "impl": "playwright-headless",
642
- "deps": ["playwright"],
643
- "timeout_ms": 15000,
644
- "usage": "<url-or-path> [viewport]",
645
- "output": ".gg/eyes/out/screenshot-<timestamp>.png"
646
- }
647
- ],
648
- "deferred": [
649
- { "capability": "load", "reason": "opt-in; no perf target set" },
650
- { "capability": "capture_audio", "reason": "project does not produce audio" }
651
- ],
652
- "lifecycle": { "up": ".gg/eyes/up.sh", "down": ".gg/eyes/down.sh" }
653
- }
654
- \`\`\`
655
-
656
- Probe \`status\` transitions: \`pending\` → \`built\` (after Phase 3) → \`verified\` (after Phase 4 Pass A) → \`failed\` with an \`error\` field if anything goes wrong at any point. Update the manifest after each probe changes state.
657
-
658
- If a manifest already exists, diff against it: keep \`verified\` probes as-is, rebuild \`failed\` ones, add missing ones, remove probes whose capability no longer applies (but never delete a user-edited script without asking). If \`phase_completed\` already indicates a later phase, resume from the next phase rather than restarting.
659
-
660
- Also ensure \`.gitignore\` contains: \`.gg/eyes/out/\`, \`.gg/eyes/state.json\`, \`.gg/eyes/recordings/\`, \`.gg/eyes/remote.json\`, \`.gg/eyes/auth/\`.
661
-
662
- **Checkpoint: manifest is now written with \`phase_completed: "design"\`. Proceed to Phase 3.**
663
-
664
- ## Phase 3: Build (Parallel Sub-Agents)
665
-
666
- For each probe that is new or changed, spawn a sub-agent via the subagent tool. Launch them IN PARALLEL (all in one response). Each sub-agent's task:
667
-
668
- 1. Create \`.gg/eyes/<id>.sh\` (or \`.mjs\`/\`.py\` only if shell is unreasonable). Make it executable. It must:
669
- - Be fully headless (re-read the Hard Rules above)
670
- - Have a timeout
671
- - Exit non-zero with a clear stderr message on failure
672
- - Write artifacts only under \`.gg/eyes/out/\`
673
- - Print the artifact path (or result) to stdout so the agent can consume it
674
- - Self-recover where possible (start dev server if down, install missing dep, pick a free port)
675
- 2. Install any required dependencies silently (locally to the project where possible; \`npx --yes\`, \`pnpm add -D --silent\`, \`pip install --quiet --user\`, etc.). For Playwright: also run the headless browser install (\`npx --yes playwright install chromium\`).
676
- 3. Write \`.gg/eyes/<id>.test.sh\` — a self-test that proves the probe works end-to-end headlessly. It must produce a real artifact or real output, not a mock.
677
- 4. Append a short usage block to \`.gg/eyes/README.md\`.
678
- 5. Report success or failure back. On success, main agent updates that probe's \`status\` to \`built\`. On failure, main agent retries ONCE; if it still fails, sets \`status: "failed"\` with a one-line \`error\` and moves on — does NOT abort the whole run.
679
-
680
- Also create (once, shared):
681
- - \`.gg/eyes/up.sh\` — start the dev stack + any required capture sinks (Mailpit, webhook receiver, stripe listen) in the background, record PIDs/ports to \`.gg/eyes/state.json\`, idempotent.
682
- - \`.gg/eyes/down.sh\` — stop everything started by \`up.sh\`.
683
- - \`.gg/eyes/redact.sh\` — stdin-in / stdout-out redactor that strips tokens, API keys, bearer headers, and values of \`*_KEY|*_SECRET|*_TOKEN|*_PASSWORD\` env vars. All probes that produce text artifacts pipe through this before writing.
684
- - \`.gg/eyes/doctor.sh\` — prints OS/arch, runtime versions, installed probe deps, port availability, sink status. One blob for troubleshooting.
685
- - \`.gg/eyes/out/\`, \`.gg/eyes/baselines/\`, \`.gg/eyes/recordings/\`, \`.gg/eyes/auth/\` directories (create as needed).
686
-
687
- **Checkpoint: after all parallel sub-agents report, update \`phase_completed: "build"\` in the manifest with each probe's final status. Proceed to Phase 4.**
688
-
689
- ## Phase 4: Verify
690
-
691
- Two verification passes. Both must pass before Phase 5.
692
-
693
- **Pass A — Self-tests**: Run every \`.gg/eyes/<id>.test.sh\` for probes with \`status: "built"\`. On pass, set \`status: "verified"\`. On failure, retry ONCE; if it still fails, set \`status: "failed"\` with the error, and continue with remaining probes. It is fine to finish Phase 4 with some probes failed — they are recorded and the user can re-run \`/eyes\` to retry them. It is NOT fine to skip Pass B.
486
+ 1. \`ggcoder eyes list\` — see what's already installed/verified. **Resume**, don't restart. Skip verified probes; re-run failed ones.
487
+ 2. \`ggcoder eyes detect\` — emits JSON of \`{capability: {candidates, primary}}\` for this project.
488
+ 3. **Pick 3–8 capabilities to install this run.** Heuristics:
489
+ - Universal: \`http\` for any API/backend, \`runtime_logs\` for anything with a server.
490
+ - UI: \`visual\` for multi-stack projects (e.g. React Native), install all primary candidates with distinct names: \`install visual --impl playwright --as visual-web\`, \`install visual --impl adb --as visual-android\`, \`install visual --impl simctl --as visual-ios\`.
491
+ - Backend with email/webhooks: \`capture_email\`, \`capture_webhook\`.
492
+ - **Always defer** opt-ins: \`load\`, \`chaos\`, \`remote\`, \`apm\` — unless the user explicitly asked.
493
+ 4. For each pick: \`ggcoder eyes install <cap> [--impl <name>] [--as <name>]\`. On failure: retry once, then mark and continue — don't abort the whole run.
494
+ 5. \`ggcoder eyes verify\` — runs every installed probe's self-test. Some failures (\`adb\` no device, \`simctl\` no booted simulator) are expected; they get recorded.
495
+ 6. **Write/update the \`## Eyes\` section in CLAUDE.md** (create CLAUDE.md if missing; do NOT clobber other sections). Use the template below. The triggers are the load-bearing piece — make them project-specific and actionable.
496
+ 7. **Report**: list verified ✓ / failed ✗ / deferred. End with the restart notice.
694
497
 
695
- **Pass B — Contextless agent test**: Spawn ONE sub-agent via the subagent tool whose entire context is the updated CLAUDE.md \`## Eyes\` section only (paste it into the task). Give it a concrete task that exercises at least one *act* or *capture* probe if those were built, not just pure observation. Examples:
696
- - web app: "Log in as the test user, navigate to Settings, capture the page, and report the value in the Email field."
697
- - backend: "Trigger the password-reset endpoint for test@example.com, then read the captured email and report the reset link."
698
- - CLI (interactive): "Run the init command, answer the prompts with defaults, and report the final confirmation line."
699
- - mobile: "Deep-link to the profile screen and report the displayed username."
700
- - game: "Spawn the player at (0,0), step forward three frames, and report the player's position."
701
- - library / pure observation: fall back to a simple probe ("capture the home page and report the primary heading").
702
-
703
- If the sub-agent can complete the task without asking clarifying questions, the docs work. If it gets stuck or guesses, fix the \`## Eyes\` section in CLAUDE.md and retry (up to 2 retries). This is the real test — not "does the script run" but "can a contextless agent use it from the docs alone."
704
-
705
- **Pass B is MANDATORY.** If you skip it, this command has failed. Do not claim completion without it. If Pass B cannot be run (e.g. no verified probes at all), report that the command failed and stop.
706
-
707
- **Pass C — Autonomy test (MANDATORY when triggers were written)**: Spawn a second contextless sub-agent with only the \`## Eyes\` section. Give it a task that IMPLIES perception but does NOT demand it — a task that looks like normal coding work. Examples:
708
- - web app: "Add a disabled state to the login button when the form is invalid." (Should trigger the visual probe per the "after editing UI components" rule without being asked.)
709
- - backend: "Add a new field \`phone\` to the user registration endpoint." (Should trigger the http/api probe per the "after adding/modifying a route" rule.)
710
- - CLI: "Add a \`--verbose\` flag to the main command." (Should trigger the cli probe per the "after changing CLI args" rule.)
711
- - mobile: "Change the profile screen header color to blue." (Should trigger a screenshot per the UI-edit rule.)
712
-
713
- A pass means the sub-agent reached for the right probe on its own initiative, unprompted. A fail means it edited code and reported done without verifying, OR asked the user to verify. If Pass C fails, the "When to use" rules are too weak — rewrite them more actionably and retry (up to 2 retries). If the probe set is pure-observation (no UI/runtime changes apply) and no autonomy trigger makes sense, skip Pass C and note why.
714
-
715
- **Checkpoint: update \`phase_completed: "verify"\` with Pass A, Pass B, and Pass C results. Proceed to Phase 5.**
716
-
717
- ## Phase 5: Document
718
-
719
- Insert or update a single \`## Eyes\` section in the project's CLAUDE.md (create CLAUDE.md if it doesn't exist, but do not clobber other sections). Keep it terse — the scripts are self-documenting; CLAUDE.md is the index.
720
-
721
- The section MUST include four subsections, in order: intro → probe table → **when to use automatically** → **when NOT to use** → lifecycle.
722
-
723
- Template:
498
+ ## CLAUDE.md \`## Eyes\` template
724
499
 
725
500
  \`\`\`markdown
726
501
  ## Eyes
727
502
 
728
- Perception probes live in \`.gg/eyes/\`. All headless. Artifacts go to \`.gg/eyes/out/\` (gitignored). Never open GUIs or prompt the user. Invoke probes yourself rather than asking the user that's the whole point.
503
+ Perception probes live in \`.gg/eyes/\`. All headless. Artifacts \`.gg/eyes/out/\` (gitignored). Invoke probes yourself; don't ask the user to verify what you can verify.
729
504
 
730
505
  ### Available probes
731
506
 
732
507
  | Need | Run | Then |
733
508
  |---|---|---|
734
- | <one-line need> | \`.gg/eyes/<id>.sh <args>\` | <how to consume output> |
509
+ | <one-line need> | \`.gg/eyes/<id>.sh <args>\` | <how to consume the output> |
735
510
  | ... | ... | ... |
736
511
 
737
512
  ### When to use these eyes (automatically, without being asked)
738
513
 
739
- Reach for probes ON YOUR OWN INITIATIVE when any of these apply — do not ask the user to verify something you can verify yourself:
514
+ Reach for probes ON YOUR OWN INITIATIVE when any of these apply:
740
515
 
741
- - <project-specific trigger 1: e.g. "After editing any file under \`src/ui/\` or \`src/components/\`, screenshot the affected page and visually verify the change landed.">
742
- - <trigger 2: e.g. "After adding or modifying an HTTP route, hit it with \`.gg/eyes/api.sh\` and confirm the response shape.">
743
- - <trigger 3: e.g. "After changing CLI argument parsing, run \`.gg/eyes/cli.sh --help\` and confirm the new flag appears.">
744
- - <trigger 4: e.g. "Before claiming a UI bug is fixed, screenshot the before/after and diff.">
745
- - <trigger 5: e.g. "After any change that touches email sending, trigger the flow and check \`.gg/eyes/mail.sh\` for the captured message.">
746
- - If a probe fails or returns unexpected results, investigate the artifact/output directly before assuming the probe itself is broken.
516
+ - <project-specific trigger 1, e.g. "After editing any \`.tsx\` file under \`src/components/\`, screenshot the affected page with \`.gg/eyes/visual.sh http://localhost:3000/<path>\`.">
517
+ - <trigger 2, e.g. "After adding/modifying a route under \`src/routes/\`, hit it with \`.gg/eyes/http.sh\` and confirm the response shape.">
518
+ - <trigger 3>
747
519
 
748
- ### When NOT to use these eyes
520
+ If a probe fails or returns unexpected results, investigate the artifact directly before assuming the probe itself is broken.
749
521
 
750
- Do not run probes for:
522
+ ### When NOT to use
751
523
 
752
- - Docs-only changes (README, markdown, comments).
753
- - Config-only changes that don't affect runtime behavior.
754
- - Refactors that preserve behavior and are already covered by tests.
755
- - Style/formatting-only changes.
756
- - When a probe was already run this turn on the same artifact — reuse the output, don't re-run.
757
- - When the dev server / simulator / sink isn't up AND the task doesn't require runtime verification — don't spin up infra just to be thorough.
524
+ - Docs-only changes, comments, formatting.
525
+ - Refactors covered by tests.
526
+ - Dev server / simulator / sink isn't up AND the task doesn't require runtime verification.
527
+ - Same probe already ran this turn on the same artifact — reuse the output.
758
528
 
759
- ### Lifecycle
529
+ ### When to escalate a capability gap (the self-improvement loop)
760
530
 
761
- Start/stop dev stack + capture sinks: \`.gg/eyes/up.sh\` / \`.gg/eyes/down.sh\` (idempotent, background).
762
- Refresh/expand this setup when the project changes: \`/eyes\`.
763
- \`\`\`
531
+ If you're about to **guess**, **skip verification**, or **hand-wave** about something a better probe would show you — STOP and surface the tradeoff inline. Phrasing like:
764
532
 
765
- For each probe: one row, one line need, exact invocation, one-line consumption hint (e.g. "read the printed PNG path", "parse JSON stdout", "grep stderr for ERROR"). Only include probes with \`status: "verified"\`. Do not document failed or deferred probes in the table — a short line below the lifecycle can list them if present ("Deferred: load, chaos. Failed: capture_audio (BlackHole not installed). Run \`/eyes\` again to retry.").
533
+ > "I tried screenshotting but the failure is a JS error I can only see in the browser console and there's no \`browser_console\` probe. Two paths: (a) ~3 min to add it, then I can diagnose properly. (b) Workaround: I'd guess from the DOM state. Your call?"
766
534
 
767
- **The "when to use" and "when NOT to use" triggers are project-specific and mandatory.** Generate them based on the actual project layout and probes built. Rules of thumb:
768
- - Tie triggers to file paths, file types, or task descriptions the future agent will recognize ("after editing \`src/routes/**\`…", "after modifying a \`.tsx\` component…", "before claiming an API change is done…").
769
- - Every verified probe should have at least one trigger that names it, OR be explicitly listed in "When NOT to use" if it's expensive/opt-in (e.g. \`load\`, \`diff_branch\`).
770
- - Match the trigger density to the project: a web app with many UI components warrants a strong visual trigger; a pure backend library does not.
771
- - Triggers should be ACTIONABLE ("screenshot the page") not VAGUE ("verify UI looks right").
535
+ Wait for the user's choice. **Don't escalate more than once per request** if the user picked the workaround, don't re-ask in the same turn.
772
536
 
773
- **Checkpoint: update \`phase_completed: "document"\`. Proceed to Phase 6.**
537
+ For minor friction (worked around it but wished it were better), don't interrupt — log it for later review:
538
+ - \`ggcoder eyes log rough "<reason>" [--probe <name>]\` — minor friction, you handled it
539
+ - \`ggcoder eyes log wish "<gap>"\` — capability you wished existed
540
+ - \`ggcoder eyes log blocked "<reason>"\` — call this AFTER the user approves an inline-escalation fix, for the audit trail
541
+
542
+ These accumulate quietly. The user reviews them periodically. Open signals will appear in your context on future turns until they're acked.
543
+ \`\`\`
774
544
 
775
- ## Phase 6: Report
545
+ ## Trigger writing rules
776
546
 
777
- Summarize in the chat:
778
- - Project kind detected
779
- - Probes built and verified (list with )
780
- - Probes failed (list with one-line error) user can re-run \`/eyes\` to retry
781
- - Capabilities deferred (one-line reason each) — user can re-run \`/eyes\` to expand coverage
782
- - Contextless-agent verification result (Pass B) — explicitly state whether it passed
783
- - One-line example the user can try next (e.g. "Try: ask me to screenshot the home page.")
547
+ The "When to use" triggers are project-specific and the load-bearing piece — without them the agent has probes but no instinct to use them. Rules:
548
+ - For each verified probe, write at least one trigger that names a real **file pattern** or **task type** the agent will recognize ("after editing \`*.tsx\` under \`src/ui/\`", not "after UI changes").
549
+ - Be **actionable** ("screenshot the page", "hit the endpoint") not **vague** ("verify it works").
550
+ - Match density to the project: a UI-heavy app warrants strong visual triggers; a pure backend library does not.
784
551
 
785
- **IMPORTANT if CLAUDE.md was created or modified**, end the report with a clear notice:
552
+ ## Restart notice
786
553
 
787
- > ⚠️ CLAUDE.md was updated with the new \`## Eyes\` section. ggcoder loads CLAUDE.md at startup, so **exit and restart ggcoder** (\`/quit\` then run \`ggcoder\` again) before asking me to use these probes. Without a restart, I won't see the new instructions in my context.
554
+ End your report with:
788
555
 
789
- Make this notice the last thing in the report so the user doesn't miss it.`,
556
+ > CLAUDE.md was updated. ggcoder loads CLAUDE.md at startup, so **exit and restart ggcoder** (\`/quit\` then \`ggcoder\` again) before asking me to use these probes. Without a restart, I won't see the new instructions in my context.`,
557
+ },
558
+ {
559
+ name: "eyes-improve",
560
+ aliases: [],
561
+ description: "Triage accumulated eyes signals and apply probe improvements the user approves",
562
+ prompt: `# Eyes Improve: Triage Accumulated Signals
563
+
564
+ Read the open signals in \`.gg/eyes/journal.jsonl\`, group related ones, propose concrete fixes, and apply what the user approves. This isn't unbounded refactoring — it's incremental probe improvement driven by real use.
565
+
566
+ ## Steps
567
+
568
+ 1. \`ggcoder eyes log list --status open\` — if zero entries, say "nothing to triage" and stop.
569
+ 2. **Group** signals by likely fix:
570
+ - Multiple \`rough\` entries naming the same probe / same frustration → one patch to that probe.
571
+ - \`wish\` entries naming a capability not installed → one \`ggcoder eyes install <cap>\` proposal.
572
+ - \`blocked\` entries are historical (user already resolved inline) → ack them, no new work.
573
+ 3. **Cap at 5 proposals this run.** If more would apply, mention them and stop — they'll resurface next run.
574
+ 4. For each group, propose ONE concrete change:
575
+ - **Probe tweak**: read \`.gg/eyes/<name>.sh\`, show a diff, explain what it fixes.
576
+ - **New probe**: \`ggcoder eyes install <cap>\` with a one-line justification.
577
+ - **New/updated trigger**: bullet added under \`## Eyes → When to use\` in CLAUDE.md.
578
+ 5. Present all proposals as a numbered list with diffs inline. Ask: **"Accept which? Reply with numbers (e.g. '1, 3') or 'none'."**
579
+ 6. On user reply:
580
+ - For accepted: apply the change. Then \`ggcoder eyes log ack <id>\` for every journal entry the proposal covers.
581
+ - For unmentioned / rejected: \`ggcoder eyes log defer <id>\` so they stop appearing in context every turn. The user can resurrect deferred entries later.
582
+ 7. **Report**: applied changes (one line each), entries acked, entries deferred.
583
+
584
+ ## Rules
585
+
586
+ - **No fishing.** Only act on entries already in the journal. Don't scan the repo for hypothetical gaps.
587
+ - **No scope creep.** "Add a \`--wait-for-selector\` flag to the visual probe" is in scope. "Rewrite the probe in TypeScript" is not.
588
+ - **Preserve user edits.** If \`.gg/eyes/<name>.sh\` has diverged from the shipped impl (user hand-edited), point this out and ask before overwriting.
589
+ - **Be honest about tradeoffs.** If a proposed fix might break existing invocations, say so in the proposal.
590
+ - **Decline when appropriate.** If open signals are all vague or low-value, say so and defer them — don't manufacture fixes.`,
790
591
  },
791
592
  {
792
593
  name: "simplify",
@@ -1 +1 @@
1
- {"version":3,"file":"prompt-commands.js","sourceRoot":"","sources":["../../src/core/prompt-commands.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"prompt-commands.js","sourceRoot":"","sources":["../../src/core/prompt-commands.ts"],"names":[],"mappings":"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"}
@@ -1 +1 @@
1
- {"version":3,"file":"system-prompt.d.ts","sourceRoot":"","sources":["../src/system-prompt.ts"],"names":[],"mappings":"AAEA,OAAO,EAAyB,KAAK,KAAK,EAAE,MAAM,kBAAkB,CAAC;AAKrE;;;;;;GAMG;AACH,wBAAsB,iBAAiB,CACrC,GAAG,EAAE,MAAM,EACX,MAAM,CAAC,EAAE,KAAK,EAAE,EAChB,QAAQ,CAAC,EAAE,OAAO,EAClB,gBAAgB,CAAC,EAAE,MAAM,EACzB,SAAS,CAAC,EAAE,SAAS,MAAM,EAAE,GAC5B,OAAO,CAAC,MAAM,CAAC,CAkJjB"}
1
+ {"version":3,"file":"system-prompt.d.ts","sourceRoot":"","sources":["../src/system-prompt.ts"],"names":[],"mappings":"AAGA,OAAO,EAAyB,KAAK,KAAK,EAAE,MAAM,kBAAkB,CAAC;AAKrE;;;;;;GAMG;AACH,wBAAsB,iBAAiB,CACrC,GAAG,EAAE,MAAM,EACX,MAAM,CAAC,EAAE,KAAK,EAAE,EAChB,QAAQ,CAAC,EAAE,OAAO,EAClB,gBAAgB,CAAC,EAAE,MAAM,EACzB,SAAS,CAAC,EAAE,SAAS,MAAM,EAAE,GAC5B,OAAO,CAAC,MAAM,CAAC,CAuKjB"}
@@ -1,5 +1,6 @@
1
1
  import fs from "node:fs/promises";
2
2
  import path from "node:path";
3
+ import { isEyesActive, readJournal } from "@kenkaiiii/ggcoder-eyes";
3
4
  import { formatSkillsForPrompt } from "./core/skills.js";
4
5
  import { TOOL_PROMPT_HINTS, DEFAULT_TOOL_NAMES } from "./tools/prompt-hints.js";
5
6
  const CONTEXT_FILES = ["AGENTS.md", "CLAUDE.md", ".cursorrules", "CONVENTIONS.md"];
@@ -117,6 +118,24 @@ export async function buildSystemPrompt(cwd, skills, planMode, approvedPlanPath,
117
118
  if (contextParts.length > 0) {
118
119
  sections.push(`## Project Context\n\n${contextParts.join("\n\n")}`);
119
120
  }
121
+ // 7. Eyes — open improvement signals from past probe use (gated on .gg/eyes/manifest.json)
122
+ if (isEyesActive(cwd)) {
123
+ const open = readJournal({ status: "open", order: "desc", limit: 10 }, cwd);
124
+ if (open.length > 0) {
125
+ const lines = open.map((e) => {
126
+ const probeTag = e.probe ? ` [${e.probe}]` : "";
127
+ const date = e.ts.slice(0, 10);
128
+ return `- ${date} · *${e.kind}*${probeTag}: ${e.reason}`;
129
+ });
130
+ sections.push(`## Eyes — Open Improvement Signals\n\n` +
131
+ `These are unresolved signals from past use of this project's perception probes ` +
132
+ `(\`.gg/eyes/\`). Consider whether any bear on the current work. If a missing or ` +
133
+ `inadequate capability would force you to **guess, skip verification, or hand-wave**, ` +
134
+ `surface the tradeoff in conversation rather than working around it silently — give the ` +
135
+ `user the choice to fix the probe first.\n\n` +
136
+ lines.join("\n"));
137
+ }
138
+ }
120
139
  // 9. Skills
121
140
  if (skills && skills.length > 0) {
122
141
  const skillsSection = formatSkillsForPrompt(skills);
@@ -1 +1 @@
1
- {"version":3,"file":"system-prompt.js","sourceRoot":"","sources":["../src/system-prompt.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"system-prompt.js","sourceRoot":"","sources":["../src/system-prompt.ts"],"names":[],"mappings":"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"}
@@ -1 +1 @@
1
- {"version":3,"file":"App.d.ts","sourceRoot":"","sources":["../../src/ui/App.tsx"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"App.d.ts","sourceRoot":"","sources":["../../src/ui/App.tsx"],"names":[],"mappings":"AAmBA,OAAO,KAAK,EAAE,OAAO,EAAE,QAAQ,EAAE,aAAa,EAA6B,MAAM,kBAAkB,CAAC;AAEpG,OAAO,KAAK,EAAE,SAAS,EAAE,MAAM,qBAAqB,CAAC;AAIrD,OAAO,KAAK,EAAE,SAAS,EAAE,MAAM,2BAA2B,CAAC;AAK3D,OAAO,EAAiB,KAAK,YAAY,EAAE,MAAM,+BAA+B,CAAC;AAiBjF,OAAO,KAAK,EAAE,cAAc,EAAE,MAAM,4BAA4B,CAAC;AAqBjE,OAAO,KAAK,EAAE,KAAK,EAAE,MAAM,mBAAmB,CAAC;AAQ/C,OAAO,KAAK,EAAE,gBAAgB,EAAE,MAAM,sBAAsB,CAAC;AAE7D,OAAO,KAAK,EAAE,WAAW,EAAE,MAAM,yBAAyB,CAAC;AAwD3D,UAAU,QAAQ;IAChB,IAAI,EAAE,MAAM,CAAC;IACb,IAAI,EAAE,MAAM,CAAC;IACb,UAAU,CAAC,EAAE,MAAM,CAAC;IACpB,SAAS,CAAC,EAAE,SAAS,CAAC;IACtB,EAAE,EAAE,MAAM,CAAC;CACZ;AAED,UAAU,QAAQ;IAChB,IAAI,EAAE,MAAM,CAAC;IACb,KAAK,EAAE,MAAM,CAAC;IACd,EAAE,EAAE,MAAM,CAAC;CACZ;AAED,UAAU,aAAa;IACrB,IAAI,EAAE,WAAW,CAAC;IAClB,IAAI,EAAE,MAAM,CAAC;IACb,QAAQ,CAAC,EAAE,MAAM,CAAC;IAClB,UAAU,CAAC,EAAE,MAAM,CAAC;IACpB,QAAQ,CAAC,EAAE,OAAO,CAAC;IACnB,EAAE,EAAE,MAAM,CAAC;CACZ;AAED,UAAU,aAAa;IACrB,IAAI,EAAE,YAAY,CAAC;IACnB,UAAU,EAAE,MAAM,CAAC;IACnB,IAAI,EAAE,MAAM,CAAC;IACb,IAAI,EAAE,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,CAAC;IAC9B,EAAE,EAAE,MAAM,CAAC;IACX,0DAA0D;IAC1D,cAAc,CAAC,EAAE,MAAM,CAAC;CACzB;AAED,UAAU,YAAY;IACpB,IAAI,EAAE,WAAW,CAAC;IAClB,IAAI,EAAE,MAAM,CAAC;IACb,IAAI,EAAE,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,CAAC;IAC9B,MAAM,EAAE,MAAM,CAAC;IACf,OAAO,EAAE,OAAO,CAAC;IACjB,UAAU,EAAE,MAAM,CAAC;IACnB,OAAO,CAAC,EAAE,OAAO,CAAC;IAClB,EAAE,EAAE,MAAM,CAAC;CACZ;AAED,UAAU,SAAS;IACjB,IAAI,EAAE,OAAO,CAAC;IACd,OAAO,EAAE,MAAM,CAAC;IAChB,EAAE,EAAE,MAAM,CAAC;CACZ;AAED,UAAU,QAAQ;IAChB,IAAI,EAAE,MAAM,CAAC;IACb,IAAI,EAAE,MAAM,CAAC;IACb,EAAE,EAAE,MAAM,CAAC;CACZ;AAED,UAAU,UAAU;IAClB,IAAI,EAAE,QAAQ,CAAC;IACf,IAAI,EAAE,MAAM,CAAC;IACb,UAAU,CAAC,EAAE,MAAM,CAAC;IACpB,EAAE,EAAE,MAAM,CAAC;CACZ;AAED,UAAU,cAAc;IACtB,IAAI,EAAE,YAAY,CAAC;IACnB,EAAE,EAAE,MAAM,CAAC;CACZ;AAED,UAAU,aAAa;IACrB,IAAI,EAAE,WAAW,CAAC;IAClB,aAAa,EAAE,MAAM,CAAC;IACtB,QAAQ,EAAE,MAAM,CAAC;IACjB,YAAY,EAAE,MAAM,CAAC;IACrB,WAAW,EAAE,MAAM,CAAC;IACpB,EAAE,EAAE,MAAM,CAAC;CACZ;AAED,UAAU,YAAY;IACpB,IAAI,EAAE,UAAU,CAAC;IACjB,UAAU,EAAE,MAAM,CAAC;IACnB,SAAS,EAAE,MAAM,EAAE,CAAC;IACpB,IAAI,EAAE,MAAM,CAAC;IACb,EAAE,EAAE,MAAM,CAAC;CACZ;AAED,UAAU,UAAU;IAClB,IAAI,EAAE,QAAQ,CAAC;IACf,EAAE,EAAE,MAAM,CAAC;CACZ;AAED,UAAU,iBAAiB;IACzB,IAAI,EAAE,gBAAgB,CAAC;IACvB,MAAM,EAAE,YAAY,EAAE,CAAC;IACvB,OAAO,CAAC,EAAE,OAAO,CAAC;IAClB,EAAE,EAAE,MAAM,CAAC;CACZ;AAED,UAAU,mBAAmB;IAC3B,IAAI,EAAE,mBAAmB,CAAC;IAC1B,gBAAgB,EAAE,MAAM,CAAC;IACzB,IAAI,EAAE,MAAM,CAAC;IACb,KAAK,EAAE,OAAO,CAAC;IACf,SAAS,EAAE,MAAM,CAAC;IAClB,EAAE,EAAE,MAAM,CAAC;CACZ;AAED,UAAU,kBAAkB;IAC1B,IAAI,EAAE,kBAAkB,CAAC;IACzB,IAAI,EAAE,MAAM,CAAC;IACb,KAAK,EAAE,OAAO,CAAC;IACf,UAAU,EAAE,MAAM,CAAC;IACnB,IAAI,EAAE,OAAO,CAAC;IACd,UAAU,EAAE,MAAM,CAAC;IACnB,EAAE,EAAE,MAAM,CAAC;CACZ;AAED,UAAU,kBAAkB;IAC1B,IAAI,EAAE,iBAAiB,CAAC;IACxB,IAAI,EAAE,MAAM,CAAC;IACb,MAAM,EAAE,OAAO,CAAC;IAChB,EAAE,EAAE,MAAM,CAAC;CACZ;AAED,UAAU,aAAa;IACrB,IAAI,EAAE,WAAW,CAAC;IAClB,EAAE,EAAE,MAAM,CAAC;CACZ;AAKD,UAAU,aAAa;IACrB,UAAU,EAAE,MAAM,CAAC;IACnB,IAAI,EAAE,MAAM,CAAC;IACb,IAAI,EAAE,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,CAAC;IAC9B,MAAM,EAAE,SAAS,GAAG,MAAM,CAAC;IAC3B,MAAM,CAAC,EAAE,MAAM,CAAC;IAChB,OAAO,CAAC,EAAE,OAAO,CAAC;CACnB;AAED,MAAM,WAAW,aAAa;IAC5B,IAAI,EAAE,YAAY,CAAC;IACnB,KAAK,EAAE,aAAa,EAAE,CAAC;IACvB,EAAE,EAAE,MAAM,CAAC;CACZ;AAED,MAAM,MAAM,aAAa,GACrB,QAAQ,GACR,QAAQ,GACR,aAAa,GACb,aAAa,GACb,YAAY,GACZ,mBAAmB,GACnB,kBAAkB,GAClB,SAAS,GACT,QAAQ,GACR,UAAU,GACV,cAAc,GACd,aAAa,GACb,YAAY,GACZ,UAAU,GACV,iBAAiB,GACjB,aAAa,GACb,kBAAkB,GAClB,aAAa,CAAC;AA6LlB,MAAM,WAAW,QAAQ;IACvB,QAAQ,EAAE,QAAQ,CAAC;IACnB,KAAK,EAAE,MAAM,CAAC;IACd,KAAK,EAAE,SAAS,EAAE,CAAC;IACnB,SAAS,CAAC,EAAE,OAAO,CAAC;IACpB,QAAQ,EAAE,OAAO,EAAE,CAAC;IACpB,SAAS,EAAE,MAAM,CAAC;IAClB,QAAQ,CAAC,EAAE,aAAa,CAAC;IACzB,MAAM,CAAC,EAAE,MAAM,CAAC;IAChB,OAAO,CAAC,EAAE,MAAM,CAAC;IACjB,SAAS,CAAC,EAAE,MAAM,CAAC;IACnB,GAAG,EAAE,MAAM,CAAC;IACZ,OAAO,EAAE,MAAM,CAAC;IAChB,YAAY,CAAC,EAAE,OAAO,CAAC;IACvB,cAAc,CAAC,EAAE,OAAO,CAAC;IACzB,cAAc,CAAC,EAAE,CAAC,KAAK,EAAE,MAAM,KAAK,OAAO,CAAC,MAAM,GAAG,IAAI,CAAC,CAAC;IAC3D,iBAAiB,CAAC,EAAE,QAAQ,EAAE,CAAC;IAC/B,qBAAqB,CAAC,EAAE,MAAM,CAC5B,MAAM,EACN;QAAE,WAAW,EAAE,MAAM,CAAC;QAAC,SAAS,CAAC,EAAE,MAAM,CAAC;QAAC,OAAO,CAAC,EAAE,MAAM,CAAA;KAAE,CAC9D,CAAC;IACF,cAAc,CAAC,EAAE,aAAa,EAAE,CAAC;IACjC,WAAW,CAAC,EAAE,MAAM,CAAC;IACrB,WAAW,CAAC,EAAE,MAAM,CAAC;IACrB,cAAc,CAAC,EAAE,cAAc,CAAC;IAChC,YAAY,CAAC,EAAE,MAAM,CAAC;IACtB,UAAU,CAAC,EAAE,gBAAgB,CAAC;IAC9B,WAAW,CAAC,EAAE,WAAW,CAAC;IAC1B,WAAW,CAAC,EAAE;QAAE,OAAO,EAAE,OAAO,CAAA;KAAE,CAAC;IACnC,cAAc,CAAC,EAAE;QAAE,OAAO,EAAE,CAAC,MAAM,CAAC,EAAE,MAAM,KAAK,IAAI,CAAA;KAAE,CAAC;IACxD,aAAa,CAAC,EAAE;QAAE,OAAO,EAAE,CAAC,QAAQ,EAAE,MAAM,KAAK,OAAO,CAAC,MAAM,CAAC,CAAA;KAAE,CAAC;IACnE,MAAM,CAAC,EAAE,KAAK,EAAE,CAAC;CAClB;AAID,wBAAgB,GAAG,CAAC,KAAK,EAAE,QAAQ,2CAugElC"}