chamba 0.7.0 → 0.9.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/LICENSE +53 -14
- package/README.md +34 -8
- package/dist/commands/advanced.js +7 -278
- package/dist/commands/dev.js +11 -612
- package/dist/commands/doctor.js +1 -29
- package/dist/commands/menu.js +1 -80
- package/dist/commands/onboard.js +6 -230
- package/dist/commands/settings.js +15 -349
- package/dist/lib/agent-commands.js +2 -0
- package/dist/lib/agent-context.js +6 -210
- package/dist/lib/browser.js +1 -40
- package/dist/lib/chamba-yaml.js +10 -191
- package/dist/lib/constants.js +1 -125
- package/dist/lib/dockerfile-builder.js +41 -261
- package/dist/lib/env.js +2 -78
- package/dist/lib/git-env.js +1 -21
- package/dist/lib/global-config.js +4 -66
- package/dist/lib/pnpm-store.js +1 -19
- package/dist/lib/ports.js +1 -210
- package/dist/lib/safe-rm.js +1 -36
- package/dist/lib/sessions.js +2 -34
- package/dist/lib/shadows.js +1 -176
- package/dist/lib/skills.js +2 -0
- package/dist/lib/templates.js +1 -0
- package/dist/lib/webterm.js +1 -305
- package/dist/lib/workspace-identity.js +4 -260
- package/package.json +4 -4
- package/templates/Dockerfile +15 -22
- package/templates/claude-statusline.sh +5 -7
- package/templates/context/baseline.md +4 -2
- package/templates/context/web-pane-craft.md +1 -1
- package/templates/pane-apps/client/assets/api-BBDf_rzz.js +12 -0
- package/templates/pane-apps/client/assets/api-DNLbSBpK.css +1 -0
- package/templates/pane-apps/client/assets/bee-B7t97l5B.webp +0 -0
- package/templates/pane-apps/client/assets/buzz-CUUsbnXH.mp3 +0 -0
- package/templates/pane-apps/client/assets/c-BNa-DeUl.json +3552 -0
- package/templates/pane-apps/client/assets/cpp-B-T4NRoH.json +20239 -0
- package/templates/pane-apps/client/assets/csharp-BbxHChhA.json +6010 -0
- package/templates/pane-apps/client/assets/css-CWCxuwmz.json +1860 -0
- package/templates/pane-apps/client/assets/diff-B-2N89g8.json +154 -0
- package/templates/pane-apps/client/assets/docker-DWTvYW26.json +103 -0
- package/templates/pane-apps/client/assets/files-BkmyervY.js +1 -0
- package/templates/pane-apps/client/assets/go-B2hyYeNg.json +3156 -0
- package/templates/pane-apps/client/assets/graphql-Z6Id2aNO.json +1292 -0
- package/templates/pane-apps/client/assets/home-3SeGzySM.css +1 -0
- package/templates/pane-apps/client/assets/home-Cu9xOd2i.js +1 -0
- package/templates/pane-apps/client/assets/html-BtzvlIfu.json +2627 -0
- package/templates/pane-apps/client/assets/ini-Bn3Twap1.json +108 -0
- package/templates/pane-apps/client/assets/java-C7t2dwLO.json +1885 -0
- package/templates/pane-apps/client/assets/javascript-DuC2v0C0.json +5996 -0
- package/templates/pane-apps/client/assets/json-CwdkWeV5.json +206 -0
- package/templates/pane-apps/client/assets/jsonc-MYWDbTU3.json +206 -0
- package/templates/pane-apps/client/assets/jsx-Cn8EZuIC.json +5996 -0
- package/templates/pane-apps/client/assets/kotlin-CFNOz1gw.json +580 -0
- package/templates/pane-apps/client/assets/make-BVnlFCcl.json +629 -0
- package/templates/pane-apps/client/assets/markdown-B4Xk2WM_.json +3263 -0
- package/templates/pane-apps/client/assets/php-CAQzQmmI.json +4188 -0
- package/templates/pane-apps/client/assets/pop-D5ZANBC3.mp3 +0 -0
- package/templates/pane-apps/client/assets/python-CYQee8m4.json +4174 -0
- package/templates/pane-apps/client/assets/reviews-DMrGB-kG.js +153 -0
- package/templates/pane-apps/client/assets/reviews-nK_yRav9.css +1 -0
- package/templates/pane-apps/client/assets/ruby-D7R58tus.json +3114 -0
- package/templates/pane-apps/client/assets/rust-BFBbFiei.json +1103 -0
- package/templates/pane-apps/client/assets/scss-TQRhBkPG.json +1874 -0
- package/templates/pane-apps/client/assets/shellscript-DieAkC4W.json +2375 -0
- package/templates/pane-apps/client/assets/specs-Cabb15F0.js +13 -0
- package/templates/pane-apps/client/assets/sql-Bxd030LV.json +634 -0
- package/templates/pane-apps/client/assets/toml-ChrKGzsV.json +430 -0
- package/templates/pane-apps/client/assets/tsx-D2e90MFw.json +5996 -0
- package/templates/pane-apps/client/assets/typescript-DonXQ_n1.json +5747 -0
- package/templates/pane-apps/client/assets/useNow-BHFKFraS.js +1 -0
- package/templates/pane-apps/client/assets/xml-B17r2RXF.json +382 -0
- package/templates/pane-apps/client/assets/yaml-CKn4h1zy.json +627 -0
- package/templates/pane-apps/client/home/index.html +16 -0
- package/templates/pane-apps/client/reviews/index.html +17 -0
- package/templates/pane-apps/client/specs/index.html +4 -2
- package/templates/pane-apps/server/home.mjs +12 -0
- package/templates/pane-apps/server/reviews.mjs +21 -0
- package/templates/pane-apps/server/specs.mjs +5 -1588
- package/templates/skills/chamba-statusline/SKILL.md +7 -19
- package/templates/skills/dx-review/SKILL.md +136 -0
- package/templates/skills/dx-review/references/acts.md +233 -0
- package/templates/skills/dx-spec/SKILL.md +230 -30
- package/templates/skills/dx-spec/references/principles-template.md +2 -0
- package/templates/skills/dx-spec/references/review-guide.md +6 -52
- package/templates/skills/dx-spec/references/spec-guide.md +25 -5
- package/templates/skills/dx-spec/references/stages.md +149 -60
- package/templates/skills/dx-spec-execute/SKILL.md +217 -38
- package/templates/startup.mjs +22 -16
- package/templates/tool-helper.sh +168 -0
- package/templates/webterm/README.md +82 -27
- package/templates/webterm/color.js +61 -0
- package/templates/webterm/config.js +55 -4
- package/templates/webterm/context/claude.md +0 -1
- package/templates/webterm/public/app/alerts.js +95 -14
- package/templates/webterm/public/app/anchored.js +81 -0
- package/templates/webterm/public/app/composer.js +37 -3
- package/templates/webterm/public/app/connection.js +23 -0
- package/templates/webterm/public/app/dom.js +3 -0
- package/templates/webterm/public/app/frames.js +52 -18
- package/templates/webterm/public/app/home-host.js +16 -0
- package/templates/webterm/public/app/main.js +24 -8
- package/templates/webterm/public/app/new-session.js +13 -41
- package/templates/webterm/public/app/palette.js +58 -0
- package/templates/webterm/public/app/pane-shape.js +169 -0
- package/templates/webterm/public/app/pane-shell.js +240 -135
- package/templates/webterm/public/app/pane.js +39 -24
- package/templates/webterm/public/app/reviews-host.js +19 -0
- package/templates/webterm/public/app/specs-host.js +12 -218
- package/templates/webterm/public/app/state.js +5 -0
- package/templates/webterm/public/app/tabs.js +6 -2
- package/templates/webterm/public/app/theme.js +75 -27
- package/templates/webterm/public/app/tool-host.js +318 -0
- package/templates/webterm/public/app/workspace-color.js +192 -0
- package/templates/webterm/public/index.html +22 -4
- package/templates/webterm/public/styles.css +195 -21
- package/templates/webterm/server.js +198 -150
- package/templates/webterm/tool-document.js +3 -2
- package/templates/webterm/tools/commands.js +61 -0
- package/templates/webterm/tools/home.js +58 -0
- package/templates/webterm/tools/index.js +26 -0
- package/templates/webterm/tools/mount.js +337 -0
- package/templates/webterm/tools/paths.js +34 -0
- package/templates/webterm/tools/reviews.js +137 -0
- package/templates/webterm/tools/specs.js +154 -0
- package/templates/webterm/typed-line.js +70 -7
- package/templates/context/context-usage.md +0 -1
- package/templates/context-usage.sh +0 -266
- package/templates/pane-apps/client/assets/specs-B1970L17.css +0 -1
- package/templates/pane-apps/client/assets/specs-cEee_SPn.js +0 -23
- package/templates/skills/dx-spec-config/SKILL.md +0 -313
- package/templates/skills/dx-spec-config/references/principles-template.md +0 -12
- package/templates/specs.sh +0 -106
- package/templates/webterm/specs.js +0 -358
|
@@ -0,0 +1 @@
|
|
|
1
|
+
:root{--rv-accent-bg:#58a6ff1f;--rv-ok-bg:#3fb9501f;--rv-warn-bg:#d2992224;--rv-issue:#f85149;--rv-reply:#a371f7;--rv-add-bg:#12291b;--rv-add:#7ee787;--rv-del-bg:#2b1719;--rv-del:#ffa198;--rv-btn-text:#0d1117;--rv-shadow:#00000073}[data-theme=light]{--rv-accent-bg:#0969da1a;--rv-ok-bg:#1a7f371a;--rv-warn-bg:#9a67001f;--rv-issue:#cf222e;--rv-reply:#8250df;--rv-add-bg:#dafbe1;--rv-add:#116329;--rv-del-bg:#ffebe9;--rv-del:#82071e;--rv-btn-text:#fff;--rv-shadow:#1f23282e}.workspace.is-review .stage.has-bar .theme-toggle{background:0 0;top:8px;right:10px}.rv-mono{font-family:ui-monospace,Menlo,monospace;font-size:12px}.nav-list button.rv-row{padding:6px 14px 7px;display:block}.nav-list button.rv-row:hover{color:inherit;background:var(--sunken)}.rv-row:disabled{cursor:default;opacity:.6}.rv-row-top{align-items:flex-start;gap:6px;display:flex}.rv-row-name{overflow-wrap:anywhere;flex:1;min-width:0;font-weight:600}.rv-row-chip{border:1px solid var(--border);color:var(--muted);border-radius:9px;flex:none;margin-top:2px;padding:0 6px;font-size:10.5px;line-height:15px}.rv-row-chip.is-merged{border-color:var(--accent);color:var(--accent)}.rv-bar{background:var(--border);border-radius:2px;height:3px;margin-top:5px;overflow:hidden}.rv-bar i{background:var(--ok);height:100%;display:block}.rv-row-state{color:var(--muted);margin-top:4px;font-size:11px}.rv-row-note{color:var(--muted);margin-top:2px;font-size:11px;font-style:italic}.rv-row-ended{color:var(--muted);margin-top:2px;font-size:11.5px}.rv-dot{background:var(--accent);vertical-align:middle;border-radius:50%;width:7px;height:7px;margin-right:5px;display:inline-block}@media (prefers-reduced-motion:no-preference){.rv-dot{animation:1.6s infinite rv-pulse}}@keyframes rv-pulse{0%,to{opacity:1}50%{opacity:.3}}.nav-list button.rv-gi{color:var(--fg);border-left:0;padding:6px 14px;font-size:12.5px}.rv-gdots{flex:none;gap:4px;display:inline-flex}.rv-gdot{background:var(--accent);border-radius:50%;width:7px;height:7px;display:inline-block}.rv-gdot.is-issue{background:var(--rv-issue)}.rv-gdot.is-attention{background:var(--warn)}.rv-gdot.is-reply{background:var(--rv-reply)}.rv-gright{line-height:var(--nav-line);color:var(--muted);white-space:nowrap;flex:none;align-items:center;gap:6px;margin-left:auto;font-size:11px;display:inline-flex}.rv-gcheck{font-size:12px}.rv-ring{width:14px;height:14px;display:block}.rv-ring circle{fill:none;stroke-width:2px}.rv-ring-bg{stroke:var(--border)}.rv-ring-fg{stroke:var(--ok);stroke-linecap:round;transform-origin:50%;transform:rotate(-90deg)}.rv-gsep{border-top:1px solid var(--border);margin-top:6px;padding-top:6px}.rv-gsep .rv-gname{color:var(--muted)}.rv-gi:hover{background:var(--sunken)}.nav-list button.rv-gi[aria-current=true]{background:var(--sel);box-shadow:inset 3px 0 0 var(--accent)}.rv-gi.is-done,.rv-gi.is-empty{color:var(--muted)}.rv-gi.is-done .rv-gright{color:var(--ok)}.rv-gwait{min-height:calc(var(--nav-line) * 1em);align-items:center;padding:6px 14px;display:flex}.rv-plus{color:var(--rv-add)}.rv-minus{color:var(--rv-del)}.rv-gnote{position:relative}.rv-info{all:unset;box-sizing:border-box;width:14px;height:14px;color:var(--muted);vertical-align:-2px;cursor:default;justify-content:center;align-items:center;display:inline-flex}.rv-info:hover,.rv-info:focus{color:var(--fg)}.rv-infotip{width:220px;box-shadow:0 6px 18px var(--rv-shadow)}.rv-screen{flex-direction:column;height:100%;min-height:0;display:flex}.rv-head{border-bottom:1px solid var(--border);background:var(--panel);align-items:center;gap:10px;padding:8px 40px 8px 12px;display:flex}.rv-head h2{white-space:nowrap;margin:0;font-size:14px;font-weight:600}.rv-head-what{color:var(--muted);white-space:nowrap;text-overflow:ellipsis;overflow:hidden}.rv-grow{flex:1}.rv-chip{white-space:nowrap;border:1px solid #0000;border-radius:10px;padding:0 7px;font-size:11px;line-height:18px;display:inline-block}.rv-chip.is-you{background:var(--rv-warn-bg);color:var(--warn);border-color:var(--warn)}.rv-chip.is-ready{background:var(--rv-ok-bg);color:var(--ok);border-color:var(--ok)}.rv-chip.is-ended{background:var(--ok);color:var(--rv-btn-text)}.rv-agentbar{border-bottom:1px solid var(--border);background:var(--rv-accent-bg);align-items:center;gap:12px;padding:8px 12px;display:flex}.rv-agentbar b{color:var(--accent);white-space:nowrap}.rv-say{flex:1;min-width:0}.rv-asked{color:var(--muted)}.rv-say .rv-late{color:var(--warn)}.rv-status{border-top:1px solid var(--border);background:var(--panel);color:var(--muted);white-space:nowrap;align-items:center;gap:12px;padding:6px 12px;font-size:12px;display:flex}.rv-loops{align-items:center;gap:4px;display:inline-flex}.rv-loops svg{width:14px;height:14px;display:block}.rv-prog{background:var(--border);border-radius:3px;width:150px;height:6px;overflow:hidden}.rv-prog i{background:var(--ok);height:100%;display:block}.rv-fact{color:var(--fg);align-items:center;gap:5px;display:inline-flex}.rv-fact i{background:var(--muted);border-radius:50%;width:6px;height:6px;display:inline-block}.rv-fact.is-issue i{background:var(--rv-issue)}.rv-fact.is-attention i,.rv-fact.is-you i,.rv-fact.is-changed i{background:var(--warn)}.rv-fact.is-reply i{background:var(--rv-reply)}.rv-log-toggle{all:unset;color:var(--muted);cursor:pointer;font:inherit;align-items:center;gap:5px;font-size:12px;display:inline-flex}.rv-log{border-top:1px solid var(--border);background:var(--bg);max-height:40%;color:var(--muted);padding:6px 12px 6px 30px;font-size:12px;line-height:1.7;overflow:auto}.rv-log b{color:var(--fg);font-weight:500}.rv-ghead{z-index:5;border-bottom:1px solid var(--border);background:var(--bg);margin:0 -12px 4px;padding:10px 12px 0;position:sticky;top:0}.rv-ghead.is-under{top:var(--rv-bar)}.rv-gtitle{align-items:center;gap:10px;display:flex}.rv-gacts{flex:none;gap:8px;display:inline-flex}.rv-ghead h3{margin:0;font-size:15px;font-weight:600}.rv-gnarr{max-width:820px;color:var(--muted);margin:6px 0 10px}.rv-gfacts{color:var(--muted);margin:0 0 8px;padding-left:18px;font-size:12px}.rv-gshared{color:var(--muted);margin:0 0 8px;font-size:12px}.rv-gstrip{background:var(--border);height:3px;margin:8px -12px 0;overflow:hidden}.rv-gstrip i{background:var(--ok);height:100%;display:block}.rv-gfold{height:calc(var(--rv-fold,0px) * (1 - var(--rv-collapse,0)));opacity:calc(1 - var(--rv-collapse,0));overflow:hidden}.rv-gfold-in{display:flow-root}.rv-gfold-in>:last-child{margin-bottom:0}.rv-ghead.is-compact{box-shadow:0 6px 12px -6px var(--rv-shadow)}.rv-ghead.is-skel{padding-bottom:10px;position:static}.rv-gtalk{flex-direction:column;gap:8px;display:flex}.rv-navrow{flex-wrap:wrap;gap:6px;padding-bottom:8px;display:flex}.rv-ghead .rv-navrow{padding-top:8px}.rv-nav{all:unset;box-sizing:border-box;border:1px solid var(--border);background:var(--panel);color:var(--fg);cursor:pointer;font:inherit;white-space:nowrap;border-radius:12px;align-items:center;gap:6px;padding:2px 9px 2px 6px;font-size:12px;display:inline-flex}.rv-nav:hover{border-color:var(--accent)}.rv-navn{background:var(--muted);min-width:16px;color:var(--rv-btn-text);text-align:center;border-radius:8px;padding:0 5px;font-size:11px;font-weight:600}.rv-nav.is-issue .rv-navn{background:var(--rv-issue)}.rv-nav.is-attention .rv-navn{background:var(--warn)}.rv-nav.is-reply .rv-navn{background:var(--rv-reply)}.rv-nav.is-morph{background:var(--rv-accent-bg);color:var(--muted);border-color:#0000}.rv-nav.is-morph b{color:var(--fg);font-weight:600}.rv-navdot{background:var(--accent);border-radius:50%;width:8px;height:8px;display:inline-block}.rv-nav.is-issue .rv-navdot{background:var(--rv-issue)}.rv-nav.is-attention .rv-navdot{background:var(--warn)}.rv-nav.is-reply .rv-navdot{background:var(--rv-reply)}.rv-nav.is-done{color:var(--muted);cursor:default;border-style:dashed}.rv-nav.is-done .rv-navn{color:var(--ok);background:0 0;font-size:12px}.rv-allbar{z-index:7;height:var(--rv-bar);border-bottom:1px solid var(--border);background:var(--bg);align-items:center;gap:10px;margin:0 -12px;padding:0 12px;display:flex;position:sticky;top:0}.rv-allbar h3{margin:0;font-size:13px;font-weight:600}.rv-allbar .rv-navrow{padding:0}.is-landed{animation:1.2s ease-out rv-landed}@keyframes rv-landed{0%{background:var(--rv-accent-bg)}to{background:0 0}}.rv-body{flex:1;min-height:0;display:flex;position:relative}.rv-feed{--rv-bar:44px;overflow-anchor:none;flex:1;min-width:0;overflow:auto}.rv-totop{z-index:5;border:1px solid var(--border);background:var(--panel);width:34px;height:34px;box-shadow:0 6px 18px var(--rv-shadow);color:var(--fg);cursor:pointer;font:inherit;border-radius:50%;font-size:16px;position:absolute;bottom:60px;right:52px}.rv-fgrid{padding:10px 4px 10px 12px;position:relative}.rv-fmain{flex-direction:column;gap:10px;min-width:0;padding-right:12px;display:flex}.rv-gcard{border:1px solid var(--border);background:var(--panel);border-radius:8px;padding:10px 12px}.rv-gcard-top{align-items:center;gap:8px;display:flex}.rv-gcard h3{margin:0;font-size:13px;font-weight:600}.rv-facts{color:var(--muted);font-size:12px}.rv-gcard p{margin:6px 0}.rv-gcard ul{color:var(--muted);margin:6px 0 0;padding-left:18px;font-size:12px}.rv-gcard-acts{gap:8px;margin-top:6px;display:flex}.rv-section{flex-direction:column;gap:10px;display:flex}.rv-fmain.is-all .rv-section+.rv-section{margin-top:8px}.rv-hunk{border:1px solid var(--border);background:var(--panel);border-radius:8px;min-width:0;position:relative}.rv-fh{border-bottom:1px solid var(--border);color:var(--muted);align-items:center;gap:8px;padding:6px 10px;font-size:12px;display:flex}.rv-fh.is-note,.rv-folded.is-note{padding-left:24px}.rv-nt-head.is-note{padding-left:14px}.rv-fh .rv-path{color:var(--fg);text-overflow:ellipsis;white-space:nowrap;min-width:0;overflow:hidden}.rv-fh .rv-path i{color:var(--muted);font-style:normal}.rv-also{border:1px solid var(--border);white-space:nowrap;border-radius:9px;padding:0 6px;font-size:11px}.rv-changed{border:1px solid var(--warn);background:var(--rv-warn-bg);color:var(--warn);white-space:nowrap;border-radius:9px;padding:0 6px;font-size:10.5px;line-height:15px}.rv-diff{margin:0;padding:4px 0 6px;overflow-x:auto}.rv-hd{color:var(--muted);background:var(--rv-accent-bg);padding:2px 10px 4px;font-family:ui-monospace,Menlo,monospace;font-size:12px}.rv-l{white-space:pre;grid-template-columns:34px 34px 1fr;font-family:ui-monospace,Menlo,monospace;font-size:12px;line-height:20px;display:grid}.rv-l .rv-ln{all:unset;box-sizing:border-box;color:var(--muted);text-align:right;font:inherit;padding-right:8px;font-size:11px;display:block}.rv-l button.rv-ln{cursor:pointer}.rv-l button.rv-ln:hover{color:var(--fg);background:var(--sunken)}.rv-l.is-picked{box-shadow:inset 0 0 0 1px var(--accent)}.rv-l,.rv-fh,.rv-folded,.rv-nt-head{position:relative}.rv-hdot{background:var(--accent);border:0;border-radius:50%;width:6px;height:6px;margin:-3px 0 0;padding:0;position:absolute;top:50%;left:10px}button.rv-hdot{cursor:pointer}.rv-fh.is-note .rv-hdot,.rv-nt-head .rv-hdot{background:var(--accent)}.rv-nt-head .rv-hdot{left:0}.rv-fh.is-note.is-attention .rv-hdot{background:var(--warn)}.rv-fh.is-note.is-issue .rv-hdot{background:var(--rv-issue)}.rv-folded.is-note:before{content:"";background:var(--accent);border-radius:50%;width:6px;height:6px;margin-top:-3px;position:absolute;top:50%;left:10px}.rv-folded.is-note.is-attention:before{background:var(--warn)}.rv-folded.is-note.is-issue:before{background:var(--rv-issue)}.rv-nl{background:var(--accent);border:0;width:3px;padding:0;position:absolute;top:0;bottom:0}button.rv-nl{cursor:pointer}button.rv-nl:hover{width:5px}.rv-nl.is-lane0{left:2px}.rv-nl.is-lane1{left:7px}.rv-nl.is-attention{background:var(--warn)}.rv-nl.is-issue{background:var(--rv-issue)}.rv-nl.is-first{border-radius:2px 2px 0 0;top:3px}.rv-nl.is-last{border-radius:0 0 2px 2px;bottom:3px}.rv-nl.is-first.is-last{border-radius:2px}.rv-l span:last-child{padding-left:10px}.rv-l.is-add{background:var(--rv-add-bg);color:var(--rv-add)}.rv-l.is-del{background:var(--rv-del-bg);color:var(--rv-del)}.rv-expand{background:var(--sunken);gap:10px;padding:2px 10px;font-size:11.5px;display:flex}.rv-trouble{color:var(--warn);margin:0;padding:4px 10px 6px;font-size:12px}.rv-folded{border:1px solid var(--border);background:var(--panel);min-width:0;color:var(--muted);border-radius:8px;align-items:center;gap:8px;padding:6px 10px;font-size:12px;display:flex}.rv-fnotes{color:var(--accent);font-size:11.5px}.rv-folded .rv-mono{text-overflow:ellipsis;white-space:nowrap;overflow:hidden}.rv-ok{color:var(--ok)}.rv-link{all:unset;color:var(--accent);cursor:pointer;font:inherit;font-size:12px}.rv-fh .rv-link{white-space:nowrap;border:1px solid var(--border);border-radius:999px;flex:none;padding:1px 8px;font-size:11.5px}.rv-fh .rv-link:hover{border-color:var(--accent)}.rv-fh .rv-link:disabled{opacity:.5;cursor:default}.rv-state{font-size:11.5px}.rv-state.is-seen{color:var(--ok)}button.rv-state{all:unset;white-space:nowrap;cursor:pointer;font:inherit;color:var(--ok);border:1px solid #0000;border-radius:999px;flex:none;padding:1px 8px;font-size:11.5px}button.rv-state .rv-state-off{display:none}button.rv-state:hover,button.rv-state:focus-visible{border-color:var(--border);color:var(--fg)}button.rv-state:hover .rv-state-on,button.rv-state:focus-visible .rv-state-on{display:none}button.rv-state:hover .rv-state-off,button.rv-state:focus-visible .rv-state-off{display:inline}.rv-fab{background:var(--accent);width:30px;height:30px;color:var(--rv-btn-text);cursor:pointer;box-shadow:0 3px 10px var(--rv-shadow);opacity:0;border:0;border-radius:50%;justify-content:center;align-items:center;font-size:18px;font-weight:600;transition:opacity .12s;display:flex;position:absolute;bottom:10px;right:10px}.rv-hunk:hover .rv-fab,.rv-hunk:focus-within .rv-fab{opacity:1}.rv-fabmenu{background:var(--panel);border:1px solid var(--border);box-shadow:0 10px 24px var(--rv-shadow);z-index:3;border-radius:8px;min-width:170px;padding:4px;position:absolute;bottom:10px;right:46px;overflow:hidden}.rv-fabmenu button{all:unset;box-sizing:border-box;text-align:left;cursor:pointer;width:100%;font:inherit;border-radius:3px;padding:5px 9px;font-size:12.5px;display:block}.rv-fabmenu button.rv-seen{color:var(--ok);font-weight:600}.rv-fabmenu button:hover:not(:disabled){background:var(--sunken)}.rv-fabmenu button:disabled{opacity:.5;cursor:default}.rv-fabmenu hr{border:0;border-top:1px solid var(--border);margin:3px 0}.rv-nt{border:1px solid var(--border);background:var(--panel);border-radius:8px}.rv-nt>summary{color:var(--muted);cursor:pointer;padding:6px 10px;font-size:12px}.rv-nt-names{margin-left:8px;font-family:ui-monospace,Menlo,monospace;font-size:11.5px}.rv-nt-row{border-top:1px solid var(--border);padding:6px 10px}.rv-nt-head{align-items:center;gap:8px;min-width:0;font-size:12px;display:flex}.rv-nt-images{gap:12px;padding:8px 0 2px;display:flex}.rv-nt-images figure{color:var(--muted);margin:0;font-size:11px}.rv-nt-images img{border:1px solid var(--border);background:var(--sunken);border-radius:4px;max-width:220px;max-height:160px;display:block}.rv-waiting{min-height:70px}.rv-skel{background:var(--border);opacity:.7;border-radius:3px;height:12px;margin:8px 0}.rv-skel.is-narrow{width:40%}.rv-skel.is-wide{width:80%}.rv-skel.is-half{width:60%}.rv-gwait .rv-skel{width:70%;margin:0}.rv-inote{border-left:3px solid var(--accent);background:var(--sunken);color:var(--fg);white-space:normal;border-radius:0 6px 6px 0;margin:4px 10px 6px 2px;padding:6px 10px 7px;font-family:system-ui,-apple-system,Segoe UI,Roboto,sans-serif;font-size:12.5px;line-height:1.5}.rv-hunk>.rv-inote{margin:8px 10px 4px 2px}.rv-inote-top{align-items:baseline;gap:8px;display:flex}.rv-inote .rv-note-kind{color:var(--accent);letter-spacing:.04em;text-transform:uppercase;font-size:10.5px;font-weight:700}.rv-inote .rv-note-ln{color:var(--muted);font-family:ui-monospace,Menlo,monospace;font-size:11px}.rv-inote .rv-note-txt{margin:2px 0 6px}.rv-inote .rv-note-acts{gap:6px;display:flex}.rv-inote .rv-note-dismissed{color:var(--muted);margin-right:6px;font-size:11.5px}.rv-inote-box{margin:0 10px 8px 2px}.rv-inote .rv-note-locked{color:var(--muted);font-size:11.5px}.rv-inote.is-attention{border-left-color:var(--warn)}.rv-inote.is-attention .rv-note-kind{color:var(--warn)}.rv-inote.is-issue{border-left-color:var(--rv-issue)}.rv-inote.is-issue .rv-note-kind{color:var(--rv-issue)}.rv-inote.is-dismissed{display:none}.rv-inote.is-dismissed.is-back{display:block}.rv-note-act{border:1px solid var(--border);background:var(--panel);color:var(--fg);cursor:pointer;font:inherit;border-radius:5px;padding:2px 8px;font-size:11.5px}.rv-note-act:hover{border-color:var(--accent)}.rv-note-act.is-fix{border-color:var(--accent);color:var(--accent)}.rv-form{max-width:640px;margin:28px auto;padding:0 20px;overflow:auto}.rv-form h2{margin:0 0 4px;font-size:18px;font-weight:600}.rv-form h3{margin:22px 0 4px;font-size:15px;font-weight:600}.rv-form-row{justify-content:space-between;align-items:baseline;gap:10px;display:flex}.rv-form-row h3{margin-bottom:4px}.rv-opt.is-waiting{color:var(--muted);cursor:default;border-style:dashed;align-items:center;gap:10px;padding:12px 14px;display:flex}.rv-lead{color:var(--muted);margin:0 0 14px}.rv-opt{border:1px solid var(--border);background:var(--panel);cursor:pointer;border-radius:6px;grid-template-columns:16px minmax(0,1fr);gap:6px 8px;margin-bottom:6px;padding:8px 10px;display:grid;position:relative}.rv-opt.is-chosen{border-color:var(--accent);background:var(--rv-accent-bg)}.rv-opt.is-refused{border-color:var(--border);cursor:default}.rv-radio-input{opacity:0;width:0;height:0;margin:0;position:absolute}.rv-radio{border:1px solid var(--muted);border-radius:50%;width:12px;height:12px;margin-top:3px}.rv-opt.is-chosen .rv-radio{border:4px solid var(--accent)}.rv-opt-title{justify-content:space-between;gap:8px;min-width:0;display:flex}.rv-opt-title b{overflow-wrap:anywhere;min-width:0;font-weight:600}.rv-count{color:var(--muted);white-space:nowrap}.rv-opt-detail{min-width:0;color:var(--muted);overflow-wrap:anywhere;grid-column:2;font-size:12px}.rv-opt-detail input,.rv-opt-detail select{font:inherit;color:var(--fg);background:var(--sunken);border:1px solid var(--border);border-radius:5px;padding:1px 5px;font-size:12px}.rv-commits{min-width:0;color:var(--muted);grid-column:2;margin:0;padding:0;font-size:12px;list-style:none}.rv-commits li{white-space:nowrap;text-overflow:ellipsis;overflow:hidden}.rv-check{grid-column:2;align-items:center;gap:6px;font-size:12px;display:flex}.rv-form-foot{align-items:center;gap:10px;margin-top:12px;display:flex}.rv-form-foot label{color:var(--muted);font-size:12px}.rv-form-foot input{font:inherit;color:var(--fg);background:var(--sunken);border:1px solid var(--border);border-radius:5px;flex:1;padding:3px 7px}.rv-form-note{color:var(--muted);margin-top:8px;font-size:12px}.rv-form-acts{border-top:1px solid var(--border);justify-content:flex-end;gap:10px;margin-top:18px;padding-top:14px;display:flex}.rv-refused{border:1px solid var(--warn);background:var(--rv-warn-bg);color:var(--fg);border-radius:6px;margin-top:10px;padding:6px 10px;font-size:12px}.rv-btn{border:1px solid var(--border);background:var(--panel);color:var(--fg);cursor:pointer;font:inherit;white-space:nowrap;border-radius:6px;padding:4px 10px}.rv-btn.is-primary{background:var(--accent);border-color:var(--accent);color:var(--rv-btn-text);font-weight:600}.rv-btn.is-outline{border-color:var(--accent);color:var(--accent);background:0 0}.rv-btn.is-small{padding:2px 8px;font-size:12px}.rv-btn:disabled{opacity:.5;cursor:default}.rv-icon{all:unset;color:var(--muted);cursor:pointer;align-items:center;padding:0 2px;display:inline-flex}.rv-icon svg{stroke:currentColor;fill:none;stroke-width:1.5px;stroke-linecap:round;stroke-linejoin:round;width:14px;height:14px}.rv-thread{border-top:1px solid var(--border);padding:8px 10px;font-size:12.5px}.rv-msg{margin-bottom:6px}.rv-who{color:var(--muted);font-size:11px;display:block}.rv-who.is-agent{color:var(--accent)}.rv-new{border:1px solid var(--accent);color:var(--accent);vertical-align:middle;border-radius:8px;margin-left:6px;padding:0 5px;font-size:10px;line-height:14px;display:inline-block}.rv-msg.is-unread .rv-msg-body{border-left:2px solid var(--accent);padding-left:6px}.rv-msg-body.is-tool{color:var(--muted);font-style:italic}.rv-tf{color:var(--muted);justify-content:space-between;align-items:center;gap:8px;font-size:12px;display:flex}.rv-tag{border:1px solid var(--warn);color:var(--warn);border-radius:9px;margin-right:auto;padding:0 6px;font-size:10.5px;line-height:15px}.rv-compose{border-top:1px solid var(--border);padding:8px 10px}.rv-inote-box .rv-compose{border:1px solid var(--border);border-radius:6px}.rv-compose-head{align-items:baseline;gap:8px;margin:0 0 4px;display:flex}.rv-compose textarea,.rv-rdialog textarea,.rv-aclose textarea{box-sizing:border-box;border:1px solid var(--border);background:var(--sunken);width:100%;color:var(--fg);font:inherit;resize:vertical;border-radius:6px;padding:6px 8px;font-size:12.5px}.rv-compose-acts{gap:8px;margin:6px 0 0;display:flex}.rv-editing{z-index:7;border:1px solid var(--border);background:var(--panel);width:360px;box-shadow:0 10px 24px var(--rv-shadow);border-radius:10px;position:absolute;bottom:18px;right:18px}.rv-send{z-index:6;border:1px solid var(--border);background:var(--panel);box-shadow:0 10px 24px var(--rv-shadow);border-radius:17px;font-size:12px;position:absolute;bottom:18px;right:40px}.rv-send.is-open{border-radius:10px;width:360px}.rv-sendpill{all:unset;box-sizing:border-box;width:100%;color:var(--fg);cursor:pointer;font:inherit;white-space:nowrap;align-items:center;gap:8px;padding:7px 14px;font-weight:600;display:flex}.rv-n{background:var(--accent);color:var(--rv-btn-text);border-radius:999px;padding:0 6px;font-size:11px;line-height:16px}.rv-send-head{border-bottom:1px solid var(--border);margin:0;padding:8px 12px;font-size:13px;font-weight:600}.rv-si{border-bottom:1px solid var(--border);grid-template-columns:1fr auto;gap:1px 8px;padding:7px 12px;display:grid}.rv-si b,.rv-si .rv-f,.rv-si .rv-q{grid-column:1;min-width:0}.rv-si b{font-size:11.5px}.rv-si .rv-f{color:var(--muted);font-family:ui-monospace,Menlo,monospace;font-size:11px}.rv-si .rv-q:before{content:"“"}.rv-si .rv-q:after{content:"”"}.rv-si-ctl{grid-area:1/2/4;align-self:start;gap:4px;display:flex}.rv-si-ctl button{all:unset;width:20px;height:20px;color:var(--muted);cursor:pointer;font:inherit;border-radius:4px;justify-content:center;align-items:center;font-size:12px;display:inline-flex}.rv-si-ctl button:hover{background:var(--sunken);color:var(--fg)}.rv-send-foot{margin:0;padding:10px 12px}.rv-send-foot .rv-btn{width:100%;padding:6px 10px}.rv-send-foot small{color:var(--muted);text-align:center;margin-top:6px;font-size:11px;display:block}.rv-banner{border-bottom:1px solid var(--border);background:var(--rv-warn-bg);align-items:center;gap:10px;padding:7px 12px;font-size:13px;display:flex}.rv-banner b{color:var(--warn);white-space:nowrap}.rv-banner.is-merged{background:var(--rv-accent-bg)}.rv-banner.is-merged b{color:var(--accent)}.rv-hunk.is-dim,.rv-gcard.is-dim{opacity:.72}.rv-adialog{width:620px;max-width:100%}.rv-adialog-head{justify-content:space-between;align-items:center;gap:12px;font-size:14px;display:flex}.rv-adialog-x{font-size:18px;line-height:1}.rv-adialog .dialog-body{flex-direction:column;gap:14px;display:flex}.rv-asign{grid-template-columns:1fr 1fr;gap:14px;display:grid}.rv-adialog-acts{align-items:center}.rv-adialog-acts .rv-btn{width:auto}.rv-left{border:1px solid var(--warn);background:var(--rv-warn-bg);border-radius:8px;margin:0;padding:10px 14px}.rv-left.is-clean{border-color:var(--ok);background:var(--rv-ok-bg);font-size:13px}.rv-left h3{color:var(--warn);align-items:center;gap:8px;margin:0 0 6px;font-size:13px;font-weight:600;display:flex}.rv-left ul{margin:0;padding:0;list-style:none}.rv-left li{align-items:center;gap:8px;padding:3px 0;font-size:13px;display:flex}.rv-left li b{text-align:right;font-variant-numeric:tabular-nums;min-width:34px}.rv-left li .rv-link{white-space:nowrap;margin-left:auto;font-size:12px}.rv-left-ack{border-top:1px solid var(--warn);align-items:flex-start;gap:9px;margin-top:10px;padding-top:10px;font-size:13px;display:flex}.rv-left-ack input{margin-top:3px}.rv-left-mark{border:1px solid var(--warn);background:var(--rv-warn-bg);width:16px;height:16px;color:var(--warn);cursor:default;border-radius:50%;flex:none;justify-content:center;align-items:center;font-size:11px;font-weight:700;line-height:1;display:inline-flex;position:relative}.rv-left-mark.is-plain{border-color:var(--muted);width:14px;height:14px;color:var(--muted);vertical-align:-3px;background:0 0;margin-left:6px;font-size:10px}.rv-left h3 .rv-left-mark{cursor:default}.rv-tip{width:280px;box-shadow:0 10px 30px var(--rv-shadow);border-radius:8px;padding:10px 12px}.rv-tip b{color:var(--warn);margin-bottom:4px;display:block}.rv-tip.is-plain b{color:var(--fg)}.rv-tip ul{margin:0;padding-left:16px}.rv-tip li{margin:2px 0}.rv-tip small{color:var(--muted);margin-top:6px;display:block}.rv-abadge{background:var(--rv-warn-bg);min-width:16px;color:var(--warn);text-align:center;border-radius:9px;margin-left:6px;padding:0 5px;font-size:11px;line-height:16px;display:inline-block}.rv-abadge.is-warn{border-radius:50%;width:16px;padding:0;font-weight:700}.rv-ameta{grid-template-columns:1fr 1fr;gap:8px 18px;min-width:0;display:grid}.rv-ameta>div{border-bottom:1px dashed var(--border);justify-content:space-between;gap:12px;padding-bottom:3px;display:flex}.rv-ameta .rv-k{color:var(--muted);font-size:12px}.rv-ameta .rv-v{text-align:right;overflow-wrap:anywhere;font-size:13px}.rv-ameta .rv-v.rv-mono{font-size:12px}.rv-aact{flex-direction:column;gap:16px;min-width:0;margin:0;display:flex}.rv-field{flex-direction:column;gap:6px;margin:0;display:flex}.rv-field label,.rv-field .rv-label{color:var(--muted);font-size:12px}.rv-field label small,.rv-field .rv-label small{margin-left:4px;font-size:10.5px}.rv-field input{border:1px solid var(--border);background:var(--deep);width:100%;color:var(--fg);font:inherit;border-radius:6px;padding:5px 8px}.rv-sig{border:1px solid var(--border);background:var(--deep);border-radius:6px;min-height:80px;display:block;position:relative}.rv-sig canvas{touch-action:none;cursor:crosshair;width:100%;height:80px;display:block}.rv-sig .rv-link{font-size:10.5px;position:absolute;bottom:3px;right:6px}.rv-btn.is-ok{border-color:var(--ok);background:var(--rv-ok-bg);color:var(--fg);font-weight:600}.rv-btn.is-warn{border-color:var(--warn);background:var(--rv-warn-bg);color:var(--fg);font-weight:600}.rv-btn.is-quiet{border:1px dashed var(--border);color:var(--muted);background:0 0;font-weight:400}.rv-btn.is-quiet:hover,.rv-btn.is-quiet:focus-visible{background:var(--panel);color:var(--fg);border-style:solid}.rv-rdialog{max-width:560px}.rv-rdialog .dialog-body p{margin:0 0 12px;font-size:13px;line-height:1.5}.rv-rgoes{margin:0 0 14px;font-size:13px}.rv-rgoes h4{color:var(--muted);letter-spacing:.05em;text-transform:uppercase;margin:0 0 4px;font-size:11px;font-weight:600}.rv-rgoes ul{margin:0 0 12px;padding-left:18px;line-height:1.55}.rv-rgoes ul:last-child{margin-bottom:0}.rv-rdialog label{color:var(--muted);margin-bottom:6px;font-size:12px;display:block}.rv-rdialog textarea{min-height:84px}.rv-rdialog .dialog-acts{justify-content:flex-end;gap:8px;display:flex}.rv-aclose{flex-direction:column;align-items:center;gap:4px;display:flex}.rv-aclose textarea{background:var(--deep)}.rv-aclose-acts{gap:8px;display:flex}.rv-adialog-acts .rv-aclose{align-items:flex-start}.rv-ended{border-bottom:1px solid var(--border);background:var(--panel);color:var(--muted);white-space:nowrap;align-items:center;gap:16px;padding:6px 12px;font-size:12px;display:flex}.rv-ended b{color:var(--fg);font-weight:600}.rv-ended-how,.rv-ended .rv-left-mark,.rv-ended .rv-btn{flex:none}.rv-ended img{object-fit:contain;flex:none;width:96px;height:26px;display:block}.rv-ended-fact,.rv-ended .rv-reason{text-overflow:ellipsis;min-width:0;overflow:hidden}
|