@caddis/cli 0.4.76 → 0.4.78
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/bundles/antigravity-plugin/guard_agy.py +131 -1
- package/bundles/antigravity-plugin/plugin.json +1 -1
- package/bundles/antigravity-plugin/scripts/caddis_temp_prune.py +1 -0
- package/bundles/manifest.json +2 -2
- package/dist/claude-deepseek.js +29 -1
- package/dist/claude-glm.js +29 -1
- package/dist/claude-oss.js +29 -1
- package/dist/cli.js +3051 -372
- package/dist/ui/assets/favicon-DtHQyAC1.svg +8 -0
- package/dist/ui/assets/favicon-dot-DHAVYP15.svg +9 -0
- package/dist/ui/assets/index-AaPwxAoF.js +220 -0
- package/dist/ui/assets/index-DWiypj6N.css +1 -0
- package/dist/ui/assets/mark-small-CwCIyjyC.svg +8 -0
- package/dist/ui/assets/wordmark-CD0s2ofS.svg +99 -0
- package/dist/ui/fonts/OFL-Atkinson.txt +93 -0
- package/dist/ui/fonts/OFL-MapleMono.txt +93 -0
- package/dist/ui/fonts/atkinson-400.849ae6f0.woff2 +0 -0
- package/dist/ui/fonts/atkinson-700.3a9cc18a.woff2 +0 -0
- package/dist/ui/fonts/maple-mono-400.071799fd.woff2 +0 -0
- package/dist/ui/fonts/maple-mono-700.1e17b237.woff2 +0 -0
- package/dist/ui/index.html +14 -0
- package/package.json +13 -3
|
@@ -0,0 +1 @@
|
|
|
1
|
+
@font-face{font-family:Atkinson Hyperlegible Next;font-style:normal;font-weight:400;font-display:swap;src:url(/fonts/atkinson-400.849ae6f0.woff2) format("woff2")}@font-face{font-family:Atkinson Hyperlegible Next;font-style:normal;font-weight:700;font-display:swap;src:url(/fonts/atkinson-700.3a9cc18a.woff2) format("woff2")}@font-face{font-family:Maple Mono;font-style:normal;font-weight:400;font-display:swap;src:url(/fonts/maple-mono-400.071799fd.woff2) format("woff2")}@font-face{font-family:Maple Mono;font-style:normal;font-weight:700;font-display:swap;src:url(/fonts/maple-mono-700.1e17b237.woff2) format("woff2")}:root{--caddis-blue: #0d42fc;--caddis-cyan: #00cad5;--caddis-green: #91d202;--caddis-amber: #fdad01;--caddis-orange: #fc4e23;--caddis-violet: #8730fb;--caddis-bg-dark: #282a36;--caddis-bg-light: #f8f8f2}@media(prefers-reduced-motion:no-preference){.caddis-mark-build path{opacity:0;transform-box:fill-box;transform-origin:center;animation:caddis-piece-in .64s cubic-bezier(.2,.7,.2,1) forwards}.caddis-mark-build .p-blue{--from: -60px, -60px;animation-delay:0ms}.caddis-mark-build .p-purple{--from: -60px, 60px;animation-delay:90ms}.caddis-mark-build .p-cyan{--from: 60px, -60px;animation-delay:.18s}.caddis-mark-build .p-amber{--from: -40px, 60px;animation-delay:.27s}.caddis-mark-build .p-green{--from: 0px, 70px;animation-delay:.36s}.caddis-mark-build .p-orange{--from: 60px, 40px;animation-delay:.45s}}@keyframes caddis-piece-in{0%{opacity:0;transform:translate(var(--from, 0, 0)) scale(.85)}to{opacity:1;transform:none}}:root,[data-theme=dark]{color-scheme:dark;--bg-canvas: #191a23;--bg-lane: #21222c;--bg-card: #282a36;--bg-elevated: #343746;--border-dim: #363949;--border-bright: #4b4f65;--text-main: #f8f8f2;--text-sub: #c0c4d6;--text-dim: #9ca3c4;--purple: #bd93f9;--pink: #ff79c6;--green: #50fa7b;--yellow: #f1fa8c;--red: #ff5555;--cyan: #8be9fd;--orange: #ffb86c;--tone-yellow-bg: rgba(241, 250, 140, .08);--tone-yellow-bd: rgba(241, 250, 140, .42);--tone-red-bg: rgba(255, 85, 85, .09);--tone-red-bd: rgba(255, 85, 85, .45);--tone-pink-bg: rgba(255, 121, 198, .11);--tone-pink-bd: rgba(255, 121, 198, .45);--tone-cyan-bg: rgba(139, 233, 253, .09);--tone-cyan-bd: rgba(139, 233, 253, .36);--tone-green-bg: rgba(80, 250, 123, .09);--tone-green-bd: rgba(80, 250, 123, .36);--tone-purple-bg: rgba(189, 147, 249, .12);--tone-purple-bd: rgba(189, 147, 249, .42);--focus-ring: #bd93f9;--sidebar-w: 232px}[data-theme=light]{color-scheme:light;--bg-canvas: #f2f3f8;--bg-lane: #f9f9fc;--bg-card: #ffffff;--bg-elevated: #ebedf5;--border-dim: #dcdde8;--border-bright: #bfc2d4;--text-main: #1b1c26;--text-sub: #424659;--text-dim: #60667f;--purple: #6837e8;--pink: #cf2384;--green: #128038;--yellow: #8f6100;--red: #d12121;--cyan: #096b7d;--orange: #b85000;--tone-yellow-bg: rgba(217, 155, 8, .11);--tone-yellow-bd: rgba(168, 112, 0, .42);--tone-red-bg: rgba(209, 33, 33, .07);--tone-red-bd: rgba(209, 33, 33, .38);--tone-pink-bg: rgba(207, 35, 132, .08);--tone-pink-bd: rgba(207, 35, 132, .38);--tone-cyan-bg: rgba(9, 107, 125, .08);--tone-cyan-bd: rgba(9, 107, 125, .32);--tone-green-bg: rgba(18, 128, 56, .08);--tone-green-bd: rgba(18, 128, 56, .32);--tone-purple-bg: rgba(104, 55, 232, .09);--tone-purple-bd: rgba(104, 55, 232, .35);--focus-ring: #6837e8}*,*:before,*:after{box-sizing:border-box;margin:0;padding:0}html,body{min-height:100%;width:100%;max-width:100%;background:var(--bg-canvas);color:var(--text-main);font-family:Atkinson Hyperlegible Next,-apple-system,BlinkMacSystemFont,Segoe UI,sans-serif;font-size:15px;line-height:1.5;-webkit-font-smoothing:antialiased;overflow-x:hidden}.mono,code{font-family:Maple Mono,ui-monospace,SFMono-Regular,Consolas,monospace;font-feature-settings:"zero" on;font-size:.92em}code.cmd{background:var(--bg-elevated);padding:1px 6px;border-radius:4px;color:var(--yellow);overflow-wrap:anywhere}button,a{font-family:inherit}button:focus-visible,a:focus-visible,[tabindex]:focus-visible{outline:2px solid var(--focus-ring);outline-offset:2px}@keyframes work-pulse{0%,to{opacity:1}50%{opacity:.35}}@media(prefers-reduced-motion:reduce){*,*:before,*:after{animation-duration:.01ms!important;animation-iteration-count:1!important;transition-duration:.01ms!important;scroll-behavior:auto!important}}.pulse-dot{width:8px;height:8px;border-radius:50%;background:var(--cyan);display:inline-block;animation:work-pulse 2.2s ease-in-out infinite;flex-shrink:0}.app-shell{display:flex;min-height:100vh;width:100%;max-width:100%}.mobile-topbar{display:none;position:sticky;top:0;z-index:45;background:var(--bg-card);border-bottom:1px solid var(--border-dim);padding:10px 14px;align-items:center;justify-content:space-between;gap:10px}.menu-btn{display:inline-flex;align-items:center;gap:8px;background:var(--bg-elevated);border:1px solid var(--border-bright);color:var(--text-main);padding:6px 10px;border-radius:7px;font-size:14px;font-weight:600;cursor:pointer}.drawer-backdrop{display:none;position:fixed;top:0;right:0;bottom:0;left:0;background:#0000008c;z-index:49}.drawer-backdrop.open{display:block}.sidebar{width:var(--sidebar-w);background:var(--bg-card);border-right:1px solid var(--border-dim);position:fixed;top:0;bottom:0;left:0;z-index:50;display:flex;flex-direction:column;justify-content:space-between;transition:transform .2s ease;overflow-x:hidden;overflow-y:auto}.sidebar-top{padding:16px 12px;display:flex;flex-direction:column;gap:18px}.brand-row{display:flex;align-items:center;padding:0 6px}.brand-logo{display:flex;align-items:center;gap:10px;font-weight:700;font-size:16px;color:var(--text-main);min-width:0}.brand-mark{width:36px;height:36px;flex-shrink:0}.brand-stack{display:flex;flex-direction:column;gap:4px;min-width:0}.brand-wordmark{width:100px;height:20px}.brand-sub{font-size:12px;font-weight:400;letter-spacing:.08em;text-transform:uppercase;color:var(--text-dim)}.nav-list{display:flex;flex-direction:column;gap:4px;list-style:none}.nav-section-label{font-size:13px;font-weight:600;color:var(--text-dim);padding:0 10px;margin-bottom:-10px}.nav-empty{padding:6px 10px;color:var(--text-dim);font-size:14px}.nav-link{display:flex;align-items:center;justify-content:space-between;gap:10px;padding:9px 10px;border-radius:8px;color:var(--text-sub);text-decoration:none;font-weight:500;font-size:15px;transition:background .12s ease,color .12s ease;min-width:0}.nav-link:hover{background:var(--bg-elevated);color:var(--text-main)}.nav-link.active{background:var(--tone-purple-bg);color:var(--purple);font-weight:700}.nav-link-left{display:flex;align-items:center;gap:10px;min-width:0}.nav-text{white-space:nowrap;overflow:hidden;text-overflow:ellipsis}.soon{font-size:11.5px;color:var(--text-dim);border:1px solid var(--border-dim);border-radius:99px;padding:0 7px}.inbox-badge{display:inline-flex;align-items:center;justify-content:center;padding:1px 8px;border-radius:99px;font-size:12px;font-weight:700;background:linear-gradient(135deg,var(--yellow),var(--red));color:#191a23;flex-shrink:0}.repo-dot{width:9px;height:9px;margin:0 4.5px;border-radius:50%;flex-shrink:0}.repo-dot.attention{background:var(--yellow);box-shadow:0 0 0 2px var(--tone-yellow-bg)}.repo-dot.blocked{background:var(--red);box-shadow:0 0 0 2px var(--tone-red-bg)}.repo-dot.ok{background:var(--green)}.repo-dot.idle{background:var(--text-dim)}.sidebar-footer{padding:14px 12px;border-top:1px solid var(--border-dim);display:flex;flex-direction:column;gap:12px;background:var(--bg-lane)}.footer-meta{font-size:13px;color:var(--text-sub);display:flex;flex-direction:column;gap:8px}.updated-line{display:flex;align-items:center;gap:7px;color:var(--text-dim);font-size:12.5px;line-height:1.35}.spend-box{display:flex;flex-direction:column;gap:5px}.spend-row{display:flex;align-items:center;justify-content:space-between;gap:6px;font-size:13px}.meter-track{width:100%;height:6px;background:var(--bg-elevated);border-radius:99px;overflow:hidden}.meter-fill{height:100%;background:var(--purple);border-radius:99px}.meter-fill.hot{background:var(--orange)}.versions{color:var(--text-dim);font-size:11.5px;overflow-wrap:anywhere}.theme-switch{display:flex;gap:4px;background:var(--bg-elevated);border-radius:8px;padding:3px}.theme-btn{flex:1;display:inline-flex;align-items:center;justify-content:center;gap:5px;background:transparent;border:0;border-radius:6px;color:var(--text-sub);padding:5px 4px;font-size:12.5px;cursor:pointer}.theme-btn.active{background:var(--bg-card);color:var(--purple);font-weight:700}.main-area{flex:1;margin-left:var(--sidebar-w);min-width:0;width:100%}.page-wrap{max-width:1420px;margin:0 auto;padding:28px 28px 48px;display:flex;flex-direction:column;gap:28px;min-width:0}.page-header{display:flex;align-items:baseline;justify-content:space-between;gap:12px;flex-wrap:wrap}.page-title{font-size:22px;font-weight:700;color:var(--text-main);display:flex;align-items:center;gap:10px}.page-subtitle{font-size:14px;color:var(--text-sub)}.notice{display:flex;flex-direction:column;gap:8px;background:var(--bg-card);border:1px solid var(--border-dim);border-radius:10px;padding:18px 20px;max-width:560px}.banners{display:flex;flex-direction:column;gap:8px}.banner{display:flex;align-items:flex-start;gap:10px;border-radius:8px;padding:10px 14px;font-size:14px;border:1px solid var(--tone-yellow-bd);background:var(--tone-yellow-bg)}.banner svg{flex-shrink:0;margin-top:2px}.banner.warn svg{color:var(--yellow)}.banner.bad{border-color:var(--tone-red-bd);background:var(--tone-red-bg)}.banner.bad svg{color:var(--red)}.kpi-strip{display:grid;grid-template-columns:repeat(5,minmax(0,1fr));gap:14px}.kpi-tile{background:var(--bg-card);border:1px solid var(--border-dim);border-radius:10px;padding:13px 16px;display:flex;flex-direction:column;justify-content:space-between;gap:6px;text-decoration:none;color:var(--text-main);transition:border-color .15s ease;min-width:0}.kpi-tile:hover{border-color:var(--purple)}.kpi-tile.urgent{border-color:var(--tone-yellow-bd);background:var(--tone-yellow-bg)}.kpi-tile.danger{border-color:var(--tone-red-bd);background:var(--tone-red-bg)}.kpi-label{font-size:13.5px;color:var(--text-sub);font-weight:600;display:flex;align-items:center;gap:7px;min-width:0}.kpi-val{font-size:19px;font-weight:700;display:flex;align-items:baseline;gap:6px;flex-wrap:wrap}.kpi-sub{font-size:13px;font-weight:600}@media(max-width:1100px){.kpi-strip{grid-template-columns:repeat(3,minmax(0,1fr))}}@media(max-width:720px){.mobile-topbar{display:flex}.app-shell{flex-direction:column}.sidebar{width:250px;transform:translate(-100%);visibility:hidden}.sidebar.drawer-open{transform:translate(0);visibility:visible}.main-area{margin-left:0}.page-wrap{padding:16px 12px 36px;gap:20px}.kpi-strip{grid-template-columns:repeat(2,minmax(0,1fr));gap:10px}}:root,[data-theme=dark]{--mk-accent: #00cad5;--mk-sel: #343746;--mk-bad: #ff7a7a;--mk-good: #91d202;--mk-warn: #fdad01;--mk-warn-bg: rgba(253, 173, 1, .1);--mk-warn-line: rgba(253, 173, 1, .45);--chip-waiting-bg: rgba(0, 202, 213, .16);--chip-waiting-fg: #5fe6ee;--chip-gate-bg: rgba(135, 48, 251, .22);--chip-gate-fg: #c9a7ff;--chip-bad-bg: rgba(255, 122, 122, .16);--chip-bad-fg: #ff9b9b;--chip-coord-bg: rgba(253, 173, 1, .16);--chip-coord-fg: #fdad01;--chip-done-bg: rgba(145, 210, 2, .16);--chip-done-fg: #a8e23a}[data-theme=light]{--mk-accent: #0d42fc;--mk-sel: #e8eefe;--mk-bad: #c0262d;--mk-good: #3d6b00;--mk-warn: #8a5a00;--mk-warn-bg: rgba(253, 173, 1, .14);--mk-warn-line: rgba(154, 101, 0, .45);--chip-waiting-bg: #dff7f8;--chip-waiting-fg: #006b72;--chip-gate-bg: #efe5ff;--chip-gate-fg: #5b1bb5;--chip-bad-bg: #fde4e4;--chip-bad-fg: #a11d24;--chip-coord-bg: #fff1cf;--chip-coord-fg: #7a5000;--chip-done-bg: #e9f6d2;--chip-done-fg: #3d6b00}.btn{display:inline-flex;align-items:center;gap:8px;min-height:40px;padding:0 14px;border-radius:8px;border:1px solid var(--border-bright);background:transparent;color:var(--text-main);font-size:14px;font-weight:600;cursor:pointer}.btn:hover:not(:disabled){background:var(--bg-elevated)}.btn:disabled{opacity:.55;cursor:not-allowed}.kpi-tile .kpi-num{font-size:30px;font-weight:700;line-height:1.1}.kpi-num.accent{color:var(--mk-accent)}.kpi-num.bad{color:var(--mk-bad)}.tone-good{color:var(--mk-good)}.tone-warn{color:var(--mk-warn)}.tone-bad{color:var(--mk-bad)}.tone-muted{color:var(--text-dim)}.kpi-tile.deploy .kpi-val{font-size:15px}.mailbox{display:flex;flex-wrap:wrap;gap:16px;align-items:flex-start}.mailbox-folders{flex:1 1 180px;display:flex;flex-direction:column;gap:2px;padding:8px;border-radius:12px;background:var(--bg-lane);border:1px solid var(--border-dim)}.folder-btn,.item-btn{display:flex;align-items:center;gap:10px;width:100%;min-height:44px;padding:0 10px;border:0;border-radius:8px;text-align:left;background:transparent;color:var(--text-main);font-size:15px;cursor:pointer}.folder-btn span:first-of-type{flex-grow:1}.folder-btn.sel,.item-btn.sel{background:var(--mk-sel)}.folder-btn:hover,.item-btn:hover{background:var(--bg-elevated)}.mailbox-list{flex:2 1 280px;min-width:0;display:flex;flex-direction:column;gap:4px;padding:8px;border-radius:12px;background:var(--bg-lane);border:1px solid var(--border-dim)}.item-btn{align-items:flex-start;padding:10px;min-height:56px}.unread-dot{width:9px;height:9px;margin-top:6px;border-radius:50%;flex-shrink:0;background:transparent}.unread-dot.on{background:var(--mk-accent)}.item-main{display:flex;flex-direction:column;gap:3px;min-width:0}.item-meta{display:flex;flex-wrap:wrap;align-items:center;gap:8px;font-size:13px;color:var(--text-dim)}.item-title{font-weight:600;overflow-wrap:anywhere}.chip{padding:1px 8px;border-radius:99px;font-size:12px;font-weight:700}.chip-waiting{background:var(--chip-waiting-bg);color:var(--chip-waiting-fg)}.chip-owner-gate{background:var(--chip-gate-bg);color:var(--chip-gate-fg)}.chip-blocked,.chip-blocked-merge{background:var(--chip-bad-bg);color:var(--chip-bad-fg)}.chip-coordinator,.chip-hub{background:var(--chip-coord-bg);color:var(--chip-coord-fg)}.chip-resolved{background:var(--chip-done-bg);color:var(--chip-done-fg)}.list-empty{padding:24px 12px;text-align:center;color:var(--text-sub)}.mailbox-detail{flex:3 1 320px;min-width:0;display:flex;flex-direction:column;gap:14px;padding:18px;border-radius:12px;background:var(--bg-lane);border:1px solid var(--border-dim)}.mailbox-detail h2{font-size:20px;line-height:1.3;overflow-wrap:anywhere}.detail-block{display:flex;flex-direction:column;gap:4px}.detail-label{font-size:12px;letter-spacing:.08em;text-transform:uppercase;color:var(--text-dim)}.detail-actions{display:flex;flex-wrap:wrap;gap:10px}.back-btn{display:none}.notify-row{display:flex;flex-wrap:wrap;align-items:center;gap:10px;font-size:14px;color:var(--text-sub)}@media(max-width:720px){.mailbox{flex-direction:column;align-items:stretch}.mailbox.show-detail .mailbox-folders,.mailbox.show-detail .mailbox-list{display:none}.mailbox:not(.show-detail) .mailbox-detail{display:none}.mailbox-folders{flex-direction:row;flex-wrap:wrap}.folder-btn{width:auto;flex:1 1 140px}.back-btn{display:inline-flex;align-self:flex-start}}.lanes{display:flex;flex-direction:column;gap:14px}.lane{border-radius:12px;background:var(--bg-lane);border:1px solid var(--border-dim)}.lane.down .lane-body .card.grey{opacity:.55}.lane-head{display:flex;align-items:center;gap:10px;width:100%;min-height:48px;padding:0 14px;border:0;background:transparent;color:var(--text-main);font-size:15px;text-align:left;cursor:pointer;border-radius:12px}.lane-head .chev{margin-left:auto;flex-shrink:0;color:var(--text-dim)}.lane-name{font-weight:700;font-family:Maple Mono,ui-monospace,monospace;font-size:14px}.lane-summary{color:var(--text-dim);font-size:13.5px;min-width:0;overflow-wrap:anywhere}.lane-body{padding:0 14px 14px;display:flex;flex-direction:column;gap:12px}.lane-note{padding:10px 12px;border-radius:8px;background:var(--bg-elevated);border:1px solid var(--border-dim);font-size:14px}.lane.down .lane-note{background:var(--mk-warn-bg);border-color:var(--mk-warn-line)}.lane-cols{display:grid;grid-template-columns:repeat(5,minmax(0,1fr));gap:12px}.lane-col{display:flex;flex-direction:column;gap:8px;min-width:0}.col-title{font-size:12.5px;letter-spacing:.04em;text-transform:uppercase;color:var(--text-dim);font-weight:700}.card{display:flex;flex-direction:column;gap:2px;padding:9px 11px;border-radius:8px;background:var(--bg-card);border:1px solid var(--border-dim);overflow-wrap:anywhere}.card-title{font-weight:600;font-size:14px}.card-sub{font-size:13px}.col-empty{font-size:13px;color:var(--text-dim)}@media(max-width:1100px){.lane-cols{grid-template-columns:repeat(2,minmax(0,1fr))}}@media(max-width:720px){.lane-cols{grid-template-columns:minmax(0,1fr)}.lane-head{flex-wrap:wrap;padding:10px 14px}}.first-run{border:1px dashed var(--border, var(--mk-line, #6272a4));border-radius:10px;padding:16px;margin:0 0 16px;display:grid;gap:8px;justify-items:start}.first-run h2{margin:0;font-size:1.1rem}.first-run p{margin:0;display:flex;gap:8px;align-items:center;flex-wrap:wrap}.first-run-reason{color:var(--text-dim);font-size:.85rem}.chip-stale{background:transparent;border:1px dashed currentColor;color:var(--text-dim)}.kpi-strip.stale .kpi-num,.kpi-strip.stale .kpi-val,.lanes.stale .lane-body{opacity:.55}.gh-fail{overflow-wrap:anywhere}.quota-low{color:var(--mk-warn, var(--text));font-size:.85rem;overflow-wrap:anywhere}
|
|
@@ -0,0 +1,8 @@
|
|
|
1
|
+
<svg xmlns="http://www.w3.org/2000/svg" viewBox="97 80 1100 1100" role="img" aria-label="Caddis">
|
|
2
|
+
<path fill="#0D42FC" d="M640 98C705 150 720 215 680 275C640 340 590 375 540 420C480 470 410 520 395 605C385 700 355 790 270 855C310 780 315 700 305 640C300 540 340 460 480 340L545 285C600 235 645 180 640 98Z"/>
|
|
3
|
+
<path fill="#8730FB" d="M210 1025C200 950 225 890 270 855C330 810 400 750 445 670L525 720C440 830 330 930 250 985C235 998 222 1012 210 1025Z M875 622C960 690 1030 780 1028 850C1025 910 990 950 960 975L905 950C935 900 935 850 900 790C875 755 840 720 800 672C830 650 850 635 875 622Z"/>
|
|
4
|
+
<path fill="#00CAD5" d="M1025 182C1050 250 1030 320 985 360C940 395 880 390 820 405C750 420 690 460 668 500L592 452C650 360 760 310 880 290C950 275 990 235 1025 182Z"/>
|
|
5
|
+
<path fill="#FDAD01" d="M440 508C455 560 490 585 560 630C660 690 740 750 805 868C850 910 900 950 960 975C1000 990 1050 990 1085 982C1080 1030 1020 1075 950 1075C880 1075 820 1020 735 945C710 910 700 880 680 870C630 790 560 730 500 690C440 655 410 625 396 605C395 570 410 535 440 508Z"/>
|
|
6
|
+
<path fill="#91D202" d="M545 285C535 340 540 390 580 435C620 475 700 510 775 583C820 630 840 700 835 760C825 830 780 900 700 945C620 995 530 1020 470 1075C445 1100 435 1130 436 1163C400 1100 410 1040 470 985C520 945 600 920 680 870C730 830 755 790 745 730C740 690 700 640 640 600C560 550 480 505 457 400C455 370 470 345 480 345C500 325 525 305 545 285Z"/>
|
|
7
|
+
<path fill="#FC4E23" d="M1035 390C1055 440 1040 500 990 550C940 595 880 610 800 670C760 700 730 730 715 760L648 697C700 630 760 590 830 545C920 495 990 460 1035 390Z"/>
|
|
8
|
+
</svg>
|
|
@@ -0,0 +1,99 @@
|
|
|
1
|
+
<svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 140 28" shape-rendering="crispEdges" role="img" aria-label="CADDIS">
|
|
2
|
+
<rect x="4" y="0" width="4" height="4" fill="#0D42FC"/>
|
|
3
|
+
<rect x="8" y="0" width="4" height="4" fill="#0D42FC"/>
|
|
4
|
+
<rect x="12" y="0" width="4" height="4" fill="#0D42FC"/>
|
|
5
|
+
<rect x="0" y="4" width="4" height="4" fill="#0D42FC"/>
|
|
6
|
+
<rect x="16" y="4" width="4" height="4" fill="#0D42FC"/>
|
|
7
|
+
<rect x="0" y="8" width="4" height="4" fill="#0D42FC"/>
|
|
8
|
+
<rect x="0" y="12" width="4" height="4" fill="#0D42FC"/>
|
|
9
|
+
<rect x="0" y="16" width="4" height="4" fill="#0D42FC"/>
|
|
10
|
+
<rect x="0" y="20" width="4" height="4" fill="#0D42FC"/>
|
|
11
|
+
<rect x="16" y="20" width="4" height="4" fill="#0D42FC"/>
|
|
12
|
+
<rect x="4" y="24" width="4" height="4" fill="#0D42FC"/>
|
|
13
|
+
<rect x="8" y="24" width="4" height="4" fill="#0D42FC"/>
|
|
14
|
+
<rect x="12" y="24" width="4" height="4" fill="#0D42FC"/>
|
|
15
|
+
<rect x="28" y="0" width="4" height="4" fill="#00CAD5"/>
|
|
16
|
+
<rect x="32" y="0" width="4" height="4" fill="#00CAD5"/>
|
|
17
|
+
<rect x="36" y="0" width="4" height="4" fill="#00CAD5"/>
|
|
18
|
+
<rect x="24" y="4" width="4" height="4" fill="#00CAD5"/>
|
|
19
|
+
<rect x="40" y="4" width="4" height="4" fill="#00CAD5"/>
|
|
20
|
+
<rect x="24" y="8" width="4" height="4" fill="#00CAD5"/>
|
|
21
|
+
<rect x="40" y="8" width="4" height="4" fill="#00CAD5"/>
|
|
22
|
+
<rect x="24" y="12" width="4" height="4" fill="#00CAD5"/>
|
|
23
|
+
<rect x="28" y="12" width="4" height="4" fill="#00CAD5"/>
|
|
24
|
+
<rect x="32" y="12" width="4" height="4" fill="#00CAD5"/>
|
|
25
|
+
<rect x="36" y="12" width="4" height="4" fill="#00CAD5"/>
|
|
26
|
+
<rect x="40" y="12" width="4" height="4" fill="#00CAD5"/>
|
|
27
|
+
<rect x="24" y="16" width="4" height="4" fill="#00CAD5"/>
|
|
28
|
+
<rect x="40" y="16" width="4" height="4" fill="#00CAD5"/>
|
|
29
|
+
<rect x="24" y="20" width="4" height="4" fill="#00CAD5"/>
|
|
30
|
+
<rect x="40" y="20" width="4" height="4" fill="#00CAD5"/>
|
|
31
|
+
<rect x="24" y="24" width="4" height="4" fill="#00CAD5"/>
|
|
32
|
+
<rect x="40" y="24" width="4" height="4" fill="#00CAD5"/>
|
|
33
|
+
<rect x="48" y="0" width="4" height="4" fill="#91D202"/>
|
|
34
|
+
<rect x="52" y="0" width="4" height="4" fill="#91D202"/>
|
|
35
|
+
<rect x="56" y="0" width="4" height="4" fill="#91D202"/>
|
|
36
|
+
<rect x="60" y="0" width="4" height="4" fill="#91D202"/>
|
|
37
|
+
<rect x="48" y="4" width="4" height="4" fill="#91D202"/>
|
|
38
|
+
<rect x="64" y="4" width="4" height="4" fill="#91D202"/>
|
|
39
|
+
<rect x="48" y="8" width="4" height="4" fill="#91D202"/>
|
|
40
|
+
<rect x="64" y="8" width="4" height="4" fill="#91D202"/>
|
|
41
|
+
<rect x="48" y="12" width="4" height="4" fill="#91D202"/>
|
|
42
|
+
<rect x="64" y="12" width="4" height="4" fill="#91D202"/>
|
|
43
|
+
<rect x="48" y="16" width="4" height="4" fill="#91D202"/>
|
|
44
|
+
<rect x="64" y="16" width="4" height="4" fill="#91D202"/>
|
|
45
|
+
<rect x="48" y="20" width="4" height="4" fill="#91D202"/>
|
|
46
|
+
<rect x="64" y="20" width="4" height="4" fill="#91D202"/>
|
|
47
|
+
<rect x="48" y="24" width="4" height="4" fill="#91D202"/>
|
|
48
|
+
<rect x="52" y="24" width="4" height="4" fill="#91D202"/>
|
|
49
|
+
<rect x="56" y="24" width="4" height="4" fill="#91D202"/>
|
|
50
|
+
<rect x="60" y="24" width="4" height="4" fill="#91D202"/>
|
|
51
|
+
<rect x="72" y="0" width="4" height="4" fill="#FDAD01"/>
|
|
52
|
+
<rect x="76" y="0" width="4" height="4" fill="#FDAD01"/>
|
|
53
|
+
<rect x="80" y="0" width="4" height="4" fill="#FDAD01"/>
|
|
54
|
+
<rect x="84" y="0" width="4" height="4" fill="#FDAD01"/>
|
|
55
|
+
<rect x="72" y="4" width="4" height="4" fill="#FDAD01"/>
|
|
56
|
+
<rect x="88" y="4" width="4" height="4" fill="#FDAD01"/>
|
|
57
|
+
<rect x="72" y="8" width="4" height="4" fill="#FDAD01"/>
|
|
58
|
+
<rect x="88" y="8" width="4" height="4" fill="#FDAD01"/>
|
|
59
|
+
<rect x="72" y="12" width="4" height="4" fill="#FDAD01"/>
|
|
60
|
+
<rect x="88" y="12" width="4" height="4" fill="#FDAD01"/>
|
|
61
|
+
<rect x="72" y="16" width="4" height="4" fill="#FDAD01"/>
|
|
62
|
+
<rect x="88" y="16" width="4" height="4" fill="#FDAD01"/>
|
|
63
|
+
<rect x="72" y="20" width="4" height="4" fill="#FDAD01"/>
|
|
64
|
+
<rect x="88" y="20" width="4" height="4" fill="#FDAD01"/>
|
|
65
|
+
<rect x="72" y="24" width="4" height="4" fill="#FDAD01"/>
|
|
66
|
+
<rect x="76" y="24" width="4" height="4" fill="#FDAD01"/>
|
|
67
|
+
<rect x="80" y="24" width="4" height="4" fill="#FDAD01"/>
|
|
68
|
+
<rect x="84" y="24" width="4" height="4" fill="#FDAD01"/>
|
|
69
|
+
<rect x="96" y="0" width="4" height="4" fill="#FC4E23"/>
|
|
70
|
+
<rect x="100" y="0" width="4" height="4" fill="#FC4E23"/>
|
|
71
|
+
<rect x="104" y="0" width="4" height="4" fill="#FC4E23"/>
|
|
72
|
+
<rect x="108" y="0" width="4" height="4" fill="#FC4E23"/>
|
|
73
|
+
<rect x="112" y="0" width="4" height="4" fill="#FC4E23"/>
|
|
74
|
+
<rect x="104" y="4" width="4" height="4" fill="#FC4E23"/>
|
|
75
|
+
<rect x="104" y="8" width="4" height="4" fill="#FC4E23"/>
|
|
76
|
+
<rect x="104" y="12" width="4" height="4" fill="#FC4E23"/>
|
|
77
|
+
<rect x="104" y="16" width="4" height="4" fill="#FC4E23"/>
|
|
78
|
+
<rect x="104" y="20" width="4" height="4" fill="#FC4E23"/>
|
|
79
|
+
<rect x="96" y="24" width="4" height="4" fill="#FC4E23"/>
|
|
80
|
+
<rect x="100" y="24" width="4" height="4" fill="#FC4E23"/>
|
|
81
|
+
<rect x="104" y="24" width="4" height="4" fill="#FC4E23"/>
|
|
82
|
+
<rect x="108" y="24" width="4" height="4" fill="#FC4E23"/>
|
|
83
|
+
<rect x="112" y="24" width="4" height="4" fill="#FC4E23"/>
|
|
84
|
+
<rect x="124" y="0" width="4" height="4" fill="#8730FB"/>
|
|
85
|
+
<rect x="128" y="0" width="4" height="4" fill="#8730FB"/>
|
|
86
|
+
<rect x="132" y="0" width="4" height="4" fill="#8730FB"/>
|
|
87
|
+
<rect x="136" y="0" width="4" height="4" fill="#8730FB"/>
|
|
88
|
+
<rect x="120" y="4" width="4" height="4" fill="#8730FB"/>
|
|
89
|
+
<rect x="120" y="8" width="4" height="4" fill="#8730FB"/>
|
|
90
|
+
<rect x="124" y="12" width="4" height="4" fill="#8730FB"/>
|
|
91
|
+
<rect x="128" y="12" width="4" height="4" fill="#8730FB"/>
|
|
92
|
+
<rect x="132" y="12" width="4" height="4" fill="#8730FB"/>
|
|
93
|
+
<rect x="136" y="16" width="4" height="4" fill="#8730FB"/>
|
|
94
|
+
<rect x="136" y="20" width="4" height="4" fill="#8730FB"/>
|
|
95
|
+
<rect x="120" y="24" width="4" height="4" fill="#8730FB"/>
|
|
96
|
+
<rect x="124" y="24" width="4" height="4" fill="#8730FB"/>
|
|
97
|
+
<rect x="128" y="24" width="4" height="4" fill="#8730FB"/>
|
|
98
|
+
<rect x="132" y="24" width="4" height="4" fill="#8730FB"/>
|
|
99
|
+
</svg>
|
|
@@ -0,0 +1,93 @@
|
|
|
1
|
+
Copyright 2020-2024 The Atkinson Hyperlegible Next Project Authors (https://github.com/googlefonts/atkinson-hyperlegible-next)
|
|
2
|
+
|
|
3
|
+
This Font Software is licensed under the SIL Open Font License, Version 1.1.
|
|
4
|
+
This license is copied below, and is also available with a FAQ at:
|
|
5
|
+
https://openfontlicense.org
|
|
6
|
+
|
|
7
|
+
|
|
8
|
+
-----------------------------------------------------------
|
|
9
|
+
SIL OPEN FONT LICENSE Version 1.1 - 26 February 2007
|
|
10
|
+
-----------------------------------------------------------
|
|
11
|
+
|
|
12
|
+
PREAMBLE
|
|
13
|
+
The goals of the Open Font License (OFL) are to stimulate worldwide
|
|
14
|
+
development of collaborative font projects, to support the font creation
|
|
15
|
+
efforts of academic and linguistic communities, and to provide a free and
|
|
16
|
+
open framework in which fonts may be shared and improved in partnership
|
|
17
|
+
with others.
|
|
18
|
+
|
|
19
|
+
The OFL allows the licensed fonts to be used, studied, modified and
|
|
20
|
+
redistributed freely as long as they are not sold by themselves. The
|
|
21
|
+
fonts, including any derivative works, can be bundled, embedded,
|
|
22
|
+
redistributed and/or sold with any software provided that any reserved
|
|
23
|
+
names are not used by derivative works. The fonts and derivatives,
|
|
24
|
+
however, cannot be released under any other type of license. The
|
|
25
|
+
requirement for fonts to remain under this license does not apply
|
|
26
|
+
to any document created using the fonts or their derivatives.
|
|
27
|
+
|
|
28
|
+
DEFINITIONS
|
|
29
|
+
"Font Software" refers to the set of files released by the Copyright
|
|
30
|
+
Holder(s) under this license and clearly marked as such. This may
|
|
31
|
+
include source files, build scripts and documentation.
|
|
32
|
+
|
|
33
|
+
"Reserved Font Name" refers to any names specified as such after the
|
|
34
|
+
copyright statement(s).
|
|
35
|
+
|
|
36
|
+
"Original Version" refers to the collection of Font Software components as
|
|
37
|
+
distributed by the Copyright Holder(s).
|
|
38
|
+
|
|
39
|
+
"Modified Version" refers to any derivative made by adding to, deleting,
|
|
40
|
+
or substituting -- in part or in whole -- any of the components of the
|
|
41
|
+
Original Version, by changing formats or by porting the Font Software to a
|
|
42
|
+
new environment.
|
|
43
|
+
|
|
44
|
+
"Author" refers to any designer, engineer, programmer, technical
|
|
45
|
+
writer or other person who contributed to the Font Software.
|
|
46
|
+
|
|
47
|
+
PERMISSION & CONDITIONS
|
|
48
|
+
Permission is hereby granted, free of charge, to any person obtaining
|
|
49
|
+
a copy of the Font Software, to use, study, copy, merge, embed, modify,
|
|
50
|
+
redistribute, and sell modified and unmodified copies of the Font
|
|
51
|
+
Software, subject to the following conditions:
|
|
52
|
+
|
|
53
|
+
1) Neither the Font Software nor any of its individual components,
|
|
54
|
+
in Original or Modified Versions, may be sold by itself.
|
|
55
|
+
|
|
56
|
+
2) Original or Modified Versions of the Font Software may be bundled,
|
|
57
|
+
redistributed and/or sold with any software, provided that each copy
|
|
58
|
+
contains the above copyright notice and this license. These can be
|
|
59
|
+
included either as stand-alone text files, human-readable headers or
|
|
60
|
+
in the appropriate machine-readable metadata fields within text or
|
|
61
|
+
binary files as long as those fields can be easily viewed by the user.
|
|
62
|
+
|
|
63
|
+
3) No Modified Version of the Font Software may use the Reserved Font
|
|
64
|
+
Name(s) unless explicit written permission is granted by the corresponding
|
|
65
|
+
Copyright Holder. This restriction only applies to the primary font name as
|
|
66
|
+
presented to the users.
|
|
67
|
+
|
|
68
|
+
4) The name(s) of the Copyright Holder(s) or the Author(s) of the Font
|
|
69
|
+
Software shall not be used to promote, endorse or advertise any
|
|
70
|
+
Modified Version, except to acknowledge the contribution(s) of the
|
|
71
|
+
Copyright Holder(s) and the Author(s) or with their explicit written
|
|
72
|
+
permission.
|
|
73
|
+
|
|
74
|
+
5) The Font Software, modified or unmodified, in part or in whole,
|
|
75
|
+
must be distributed entirely under this license, and must not be
|
|
76
|
+
distributed under any other license. The requirement for fonts to
|
|
77
|
+
remain under this license does not apply to any document created
|
|
78
|
+
using the Font Software.
|
|
79
|
+
|
|
80
|
+
TERMINATION
|
|
81
|
+
This license becomes null and void if any of the above conditions are
|
|
82
|
+
not met.
|
|
83
|
+
|
|
84
|
+
DISCLAIMER
|
|
85
|
+
THE FONT SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND,
|
|
86
|
+
EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO ANY WARRANTIES OF
|
|
87
|
+
MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT
|
|
88
|
+
OF COPYRIGHT, PATENT, TRADEMARK, OR OTHER RIGHT. IN NO EVENT SHALL THE
|
|
89
|
+
COPYRIGHT HOLDER BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY,
|
|
90
|
+
INCLUDING ANY GENERAL, SPECIAL, INDIRECT, INCIDENTAL, OR CONSEQUENTIAL
|
|
91
|
+
DAMAGES, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING
|
|
92
|
+
FROM, OUT OF THE USE OR INABILITY TO USE THE FONT SOFTWARE OR FROM
|
|
93
|
+
OTHER DEALINGS IN THE FONT SOFTWARE.
|
|
@@ -0,0 +1,93 @@
|
|
|
1
|
+
Copyright 2022 The Maple Mono Project Authors (https://github.com/subframe7536/maple-font)
|
|
2
|
+
|
|
3
|
+
This Font Software is licensed under the SIL Open Font License, Version 1.1.
|
|
4
|
+
This license is copied below, and is also available with a FAQ at:
|
|
5
|
+
https://openfontlicense.org
|
|
6
|
+
|
|
7
|
+
|
|
8
|
+
-----------------------------------------------------------
|
|
9
|
+
SIL OPEN FONT LICENSE Version 1.1 - 26 February 2007
|
|
10
|
+
-----------------------------------------------------------
|
|
11
|
+
|
|
12
|
+
PREAMBLE
|
|
13
|
+
The goals of the Open Font License (OFL) are to stimulate worldwide
|
|
14
|
+
development of collaborative font projects, to support the font creation
|
|
15
|
+
efforts of academic and linguistic communities, and to provide a free and
|
|
16
|
+
open framework in which fonts may be shared and improved in partnership
|
|
17
|
+
with others.
|
|
18
|
+
|
|
19
|
+
The OFL allows the licensed fonts to be used, studied, modified and
|
|
20
|
+
redistributed freely as long as they are not sold by themselves. The
|
|
21
|
+
fonts, including any derivative works, can be bundled, embedded,
|
|
22
|
+
redistributed and/or sold with any software provided that any reserved
|
|
23
|
+
names are not used by derivative works. The fonts and derivatives,
|
|
24
|
+
however, cannot be released under any other type of license. The
|
|
25
|
+
requirement for fonts to remain under this license does not apply
|
|
26
|
+
to any document created using the fonts or their derivatives.
|
|
27
|
+
|
|
28
|
+
DEFINITIONS
|
|
29
|
+
"Font Software" refers to the set of files released by the Copyright
|
|
30
|
+
Holder(s) under this license and clearly marked as such. This may
|
|
31
|
+
include source files, build scripts and documentation.
|
|
32
|
+
|
|
33
|
+
"Reserved Font Name" refers to any names specified as such after the
|
|
34
|
+
copyright statement(s).
|
|
35
|
+
|
|
36
|
+
"Original Version" refers to the collection of Font Software components as
|
|
37
|
+
distributed by the Copyright Holder(s).
|
|
38
|
+
|
|
39
|
+
"Modified Version" refers to any derivative made by adding to, deleting,
|
|
40
|
+
or substituting -- in part or in whole -- any of the components of the
|
|
41
|
+
Original Version, by changing formats or by porting the Font Software to a
|
|
42
|
+
new environment.
|
|
43
|
+
|
|
44
|
+
"Author" refers to any designer, engineer, programmer, technical
|
|
45
|
+
writer or other person who contributed to the Font Software.
|
|
46
|
+
|
|
47
|
+
PERMISSION & CONDITIONS
|
|
48
|
+
Permission is hereby granted, free of charge, to any person obtaining
|
|
49
|
+
a copy of the Font Software, to use, study, copy, merge, embed, modify,
|
|
50
|
+
redistribute, and sell modified and unmodified copies of the Font
|
|
51
|
+
Software, subject to the following conditions:
|
|
52
|
+
|
|
53
|
+
1) Neither the Font Software nor any of its individual components,
|
|
54
|
+
in Original or Modified Versions, may be sold by itself.
|
|
55
|
+
|
|
56
|
+
2) Original or Modified Versions of the Font Software may be bundled,
|
|
57
|
+
redistributed and/or sold with any software, provided that each copy
|
|
58
|
+
contains the above copyright notice and this license. These can be
|
|
59
|
+
included either as stand-alone text files, human-readable headers or
|
|
60
|
+
in the appropriate machine-readable metadata fields within text or
|
|
61
|
+
binary files as long as those fields can be easily viewed by the user.
|
|
62
|
+
|
|
63
|
+
3) No Modified Version of the Font Software may use the Reserved Font
|
|
64
|
+
Name(s) unless explicit written permission is granted by the corresponding
|
|
65
|
+
Copyright Holder. This restriction only applies to the primary font name as
|
|
66
|
+
presented to the users.
|
|
67
|
+
|
|
68
|
+
4) The name(s) of the Copyright Holder(s) or the Author(s) of the Font
|
|
69
|
+
Software shall not be used to promote, endorse or advertise any
|
|
70
|
+
Modified Version, except to acknowledge the contribution(s) of the
|
|
71
|
+
Copyright Holder(s) and the Author(s) or with their explicit written
|
|
72
|
+
permission.
|
|
73
|
+
|
|
74
|
+
5) The Font Software, modified or unmodified, in part or in whole,
|
|
75
|
+
must be distributed entirely under this license, and must not be
|
|
76
|
+
distributed under any other license. The requirement for fonts to
|
|
77
|
+
remain under this license does not apply to any document created
|
|
78
|
+
using the Font Software.
|
|
79
|
+
|
|
80
|
+
TERMINATION
|
|
81
|
+
This license becomes null and void if any of the above conditions are
|
|
82
|
+
not met.
|
|
83
|
+
|
|
84
|
+
DISCLAIMER
|
|
85
|
+
THE FONT SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND,
|
|
86
|
+
EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO ANY WARRANTIES OF
|
|
87
|
+
MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT
|
|
88
|
+
OF COPYRIGHT, PATENT, TRADEMARK, OR OTHER RIGHT. IN NO EVENT SHALL THE
|
|
89
|
+
COPYRIGHT HOLDER BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY,
|
|
90
|
+
INCLUDING ANY GENERAL, SPECIAL, INDIRECT, INCIDENTAL, OR CONSEQUENTIAL
|
|
91
|
+
DAMAGES, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING
|
|
92
|
+
FROM, OUT OF THE USE OR INABILITY TO USE THE FONT SOFTWARE OR FROM
|
|
93
|
+
OTHER DEALINGS IN THE FONT SOFTWARE.
|
|
Binary file
|
|
Binary file
|
|
Binary file
|
|
Binary file
|
|
@@ -0,0 +1,14 @@
|
|
|
1
|
+
<!doctype html>
|
|
2
|
+
<html lang="en" data-theme="dark">
|
|
3
|
+
<head>
|
|
4
|
+
<meta charset="utf-8" />
|
|
5
|
+
<meta name="viewport" content="width=device-width, initial-scale=1" />
|
|
6
|
+
<title>caddis hub</title>
|
|
7
|
+
<link rel="icon" type="image/svg+xml" href="/assets/favicon-DtHQyAC1.svg" />
|
|
8
|
+
<script type="module" crossorigin src="/assets/index-AaPwxAoF.js"></script>
|
|
9
|
+
<link rel="stylesheet" crossorigin href="/assets/index-DWiypj6N.css">
|
|
10
|
+
</head>
|
|
11
|
+
<body>
|
|
12
|
+
<div id="root"></div>
|
|
13
|
+
</body>
|
|
14
|
+
</html>
|
package/package.json
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "@caddis/cli",
|
|
3
|
-
"version": "0.4.
|
|
3
|
+
"version": "0.4.78",
|
|
4
4
|
"description": "Install, update and diagnose the caddis dev harness across every coding agent you use (Claude Code, agy/Antigravity, and more).",
|
|
5
5
|
"keywords": [
|
|
6
6
|
"caddis",
|
|
@@ -45,11 +45,13 @@
|
|
|
45
45
|
},
|
|
46
46
|
"scripts": {
|
|
47
47
|
"bundles": "node scripts/copy-bundles.mjs",
|
|
48
|
-
"build": "npm run bundles && tsup",
|
|
48
|
+
"build": "npm run bundles && tsup && npm run build:ui",
|
|
49
|
+
"build:ui": "node scripts/build-ui-fonts.mjs && vite build --config ui/vite.config.ts",
|
|
49
50
|
"dev": "tsup --watch",
|
|
50
51
|
"test": "vitest run",
|
|
51
52
|
"test:watch": "vitest",
|
|
52
|
-
"typecheck": "tsc --noEmit",
|
|
53
|
+
"typecheck": "tsc --noEmit && tsc --noEmit -p ui",
|
|
54
|
+
"e2e": "playwright test",
|
|
53
55
|
"prepack": "npm run build"
|
|
54
56
|
},
|
|
55
57
|
"dependencies": {
|
|
@@ -61,10 +63,18 @@
|
|
|
61
63
|
"which": "^5.0.0"
|
|
62
64
|
},
|
|
63
65
|
"devDependencies": {
|
|
66
|
+
"@playwright/test": "^1.64.1",
|
|
64
67
|
"@types/node": "^22.10.0",
|
|
68
|
+
"@types/react": "^18.3.31",
|
|
69
|
+
"@types/react-dom": "^18.3.7",
|
|
65
70
|
"@types/which": "^3.0.4",
|
|
71
|
+
"@vitejs/plugin-react": "^4.7.0",
|
|
72
|
+
"lucide-react": "^1.61.0",
|
|
73
|
+
"react": "^18.3.1",
|
|
74
|
+
"react-dom": "^18.3.1",
|
|
66
75
|
"tsup": "^8.5.0",
|
|
67
76
|
"typescript": "^5.7.0",
|
|
77
|
+
"vite": "^6.4.5",
|
|
68
78
|
"vitest": "^3.0.0"
|
|
69
79
|
}
|
|
70
80
|
}
|