agenttwin 0.3.11 → 0.3.13
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/README.md +1 -1
- package/dist/api.js +42 -2
- package/dist/cli.js +107 -28
- package/dist/dashboard/assets/next/static/{8DWbcYS099IMf1RzFG63k → BbTZs0rKnsmj45peSnlwJ}/_buildManifest.js +1 -1
- package/dist/dashboard/assets/next/static/chunks/1981-2ce2c5edd154524a.js +1 -0
- package/dist/dashboard/assets/next/static/chunks/{4055.1056568a41510e92.js → 2442.9a266da6229b8ae0.js} +1 -1
- package/dist/dashboard/assets/next/static/chunks/2529.07927d0600506985.js +1 -0
- package/dist/dashboard/assets/next/static/chunks/{8975.5be81ec8b09e3b45.js → 3454.d29ee7a49c2a4fba.js} +1 -1
- package/dist/dashboard/assets/next/static/chunks/{7772-425e96278b46f6c9.js → 3916-2698a1a3ecb8649f.js} +1 -1
- package/dist/dashboard/assets/next/static/chunks/4705-a6d249b4a5dcde26.js +1 -0
- package/dist/dashboard/assets/next/static/chunks/4816-45f42396ec2135cc.js +1 -0
- package/dist/dashboard/assets/next/static/chunks/48a1527b.6d52e40c5e62d9d5.js +2 -0
- package/dist/dashboard/assets/next/static/chunks/{6751.613adb085c9a5b06.js → 5490.0d5d8d5ea3577f20.js} +1 -1
- package/dist/dashboard/assets/next/static/chunks/650-3092bf29ff938e12.js +1 -0
- package/dist/dashboard/assets/next/static/chunks/6f3ce29d-af1469ba72f5d3e4.js +1 -0
- package/dist/dashboard/assets/next/static/chunks/{9013.0f2be1cc70029afa.js → 7280.01b3f749332bb075.js} +2 -2
- package/dist/dashboard/assets/next/static/chunks/794.a624e6be9e42a62b.js +1 -0
- package/dist/dashboard/assets/next/static/chunks/app/_not-found/page-471a6c74344187f9.js +1 -0
- package/dist/dashboard/assets/next/static/chunks/app/account/password/page-aaee6711085b485d.js +1 -0
- package/dist/dashboard/assets/next/static/chunks/app/dashboard/layout-09cb13657f62384f.js +1 -0
- package/dist/dashboard/assets/next/static/chunks/app/dashboard/page-945c916b24f48675.js +1 -0
- package/dist/dashboard/assets/next/static/chunks/app/demo/page-3cba0aab460c8677.js +1 -0
- package/dist/dashboard/assets/next/static/chunks/app/docs/[[...slug]]/page-9f7b8dca8b973b15.js +1 -0
- package/dist/dashboard/assets/next/static/chunks/app/enterprise/page-4986698442bddc6b.js +1 -0
- package/dist/dashboard/assets/next/static/chunks/app/layout-09868e53e4f0541f.js +1 -0
- package/dist/dashboard/assets/next/static/chunks/app/login/page-2e29d4b17645c34c.js +1 -0
- package/dist/dashboard/assets/next/static/chunks/app/onboarding/page-af2c4768dc34ec92.js +1 -0
- package/dist/dashboard/assets/next/static/chunks/app/page-507229409812cedd.js +1 -0
- package/dist/dashboard/assets/next/static/chunks/app/pricing/{page-757fd3f59cd253fb.js → page-c27282cd7bfb0fcf.js} +1 -1
- package/dist/dashboard/assets/next/static/chunks/app/signup/page-2e29d4b17645c34c.js +1 -0
- package/dist/dashboard/assets/next/static/chunks/app/sitemap.xml/route-36bcc482b50fcb46.js +1 -0
- package/dist/dashboard/assets/next/static/chunks/app/v2/dashboard/layout-77a57cd622171076.js +1 -0
- package/dist/dashboard/assets/next/static/chunks/app/v2/dashboard/page-df34bcef0394d10d.js +1 -0
- package/dist/dashboard/assets/next/static/chunks/app/v2/layout-d1d715b5b2dae3cd.js +1 -0
- package/dist/dashboard/assets/next/static/chunks/app/v2/login/page-4f60d050bf954194.js +1 -0
- package/dist/dashboard/assets/next/static/chunks/app/v2/onboarding/page-abfe2f36213848d7.js +1 -0
- package/dist/dashboard/assets/next/static/chunks/app/v2/page-df6a34eff716d18e.js +1 -0
- package/dist/dashboard/assets/next/static/chunks/app/v2/signup/page-4f60d050bf954194.js +1 -0
- package/dist/dashboard/assets/next/static/chunks/framework-cb37e134fe056fa5.js +1 -0
- package/dist/dashboard/assets/next/static/chunks/main-app-c83f3671ad6b824a.js +1 -0
- package/dist/dashboard/assets/next/static/chunks/main-b7d6352ee94d0dba.js +1 -0
- package/dist/dashboard/assets/next/static/chunks/pages/_app-9dd167be58cf5cbd.js +1 -0
- package/dist/dashboard/assets/next/static/chunks/pages/_error-5a8b1eb076dd7c95.js +1 -0
- package/dist/dashboard/assets/next/static/chunks/webpack-44457f45df749a89.js +1 -0
- package/dist/dashboard/assets/next/static/css/0856ee8c880d8b92.css +1 -0
- package/dist/dashboard/assets/next/static/css/0cf03e33b963e5cb.css +1 -0
- package/dist/dashboard/assets/next/static/css/11f70fd04660da57.css +1 -0
- package/dist/dashboard/assets/next/static/css/14ef6d1b7f922ef2.css +1 -0
- package/dist/dashboard/assets/next/static/css/27bc5d721d729e4d.css +1 -0
- package/dist/dashboard/assets/next/static/css/{d99eecb7633d1200.css → 3f585d63d4bf0043.css} +1 -1
- package/dist/dashboard/assets/next/static/css/5d8899aaed08d7f2.css +1 -0
- package/dist/dashboard/assets/next/static/css/6b8edde77e493a51.css +1 -0
- package/dist/dashboard/assets/next/static/css/{32d869ddee6d2dc1.css → 766bc384d3febae4.css} +1 -1
- package/dist/dashboard/assets/next/static/css/81a1668ab34a36e8.css +1 -0
- package/dist/dashboard/assets/next/static/css/b15fa8a0e168d625.css +1 -0
- package/dist/dashboard/assets/next/static/css/d5d08788c3435fdf.css +1 -0
- package/dist/dashboard/assets/next/static/css/dd3fb06005e18149.css +1 -0
- package/dist/dashboard/assets/next/static/css/eea0966f05042bde.css +1 -0
- package/dist/dashboard/assets/next/static/css/f14e187b236cb6fb.css +1 -0
- package/dist/dashboard/assets/next/static/css/f57206a163d6b5be.css +1 -0
- package/dist/dashboard/index.html +2 -2
- package/dist/gateway.js +42 -2
- package/package.json +1 -1
- package/dist/dashboard/assets/next/static/chunks/1255-b815b974120825e7.js +0 -1
- package/dist/dashboard/assets/next/static/chunks/1848-a6938ad74a8e409f.js +0 -1
- package/dist/dashboard/assets/next/static/chunks/3050-a8f395e3fe36d7b9.js +0 -1
- package/dist/dashboard/assets/next/static/chunks/4343.023a18f52318dbad.js +0 -1
- package/dist/dashboard/assets/next/static/chunks/4542.0327d0da1c3ea200.js +0 -1
- package/dist/dashboard/assets/next/static/chunks/4bd1b696-f785427dddbba9fb.js +0 -1
- package/dist/dashboard/assets/next/static/chunks/6787-6a8909259d0ac26c.js +0 -1
- package/dist/dashboard/assets/next/static/chunks/app/_not-found/page-43db8aef3fa81958.js +0 -1
- package/dist/dashboard/assets/next/static/chunks/app/account/password/page-c2ce3c796c817ca1.js +0 -1
- package/dist/dashboard/assets/next/static/chunks/app/dashboard/layout-28ee3093f86fc075.js +0 -1
- package/dist/dashboard/assets/next/static/chunks/app/dashboard/page-91a2efe02bd25700.js +0 -1
- package/dist/dashboard/assets/next/static/chunks/app/demo/page-4dc63755e0013e7c.js +0 -1
- package/dist/dashboard/assets/next/static/chunks/app/docs/[[...slug]]/page-db473994608d5c77.js +0 -1
- package/dist/dashboard/assets/next/static/chunks/app/enterprise/page-9a33a4aec43377e0.js +0 -1
- package/dist/dashboard/assets/next/static/chunks/app/layout-dd5d4772c11d4cbb.js +0 -1
- package/dist/dashboard/assets/next/static/chunks/app/login/page-d6d4276397724d29.js +0 -1
- package/dist/dashboard/assets/next/static/chunks/app/onboarding/page-1b066c493c248f29.js +0 -1
- package/dist/dashboard/assets/next/static/chunks/app/page-950c663fd42544c0.js +0 -1
- package/dist/dashboard/assets/next/static/chunks/app/signup/page-d6d4276397724d29.js +0 -1
- package/dist/dashboard/assets/next/static/chunks/app/sitemap.xml/route-83b9d0f0ad5575d4.js +0 -1
- package/dist/dashboard/assets/next/static/chunks/app/v2/dashboard/layout-a5cf565e017886d3.js +0 -1
- package/dist/dashboard/assets/next/static/chunks/app/v2/dashboard/page-eb63255bc8df6433.js +0 -1
- package/dist/dashboard/assets/next/static/chunks/app/v2/layout-abbd9f3b8811f559.js +0 -1
- package/dist/dashboard/assets/next/static/chunks/app/v2/login/page-4f4a342a4c28f9de.js +0 -1
- package/dist/dashboard/assets/next/static/chunks/app/v2/onboarding/page-f04c0b236abaead3.js +0 -1
- package/dist/dashboard/assets/next/static/chunks/app/v2/page-cf8af0afd0589c71.js +0 -1
- package/dist/dashboard/assets/next/static/chunks/app/v2/signup/page-4f4a342a4c28f9de.js +0 -1
- package/dist/dashboard/assets/next/static/chunks/framework-e54b663a2888b5de.js +0 -1
- package/dist/dashboard/assets/next/static/chunks/main-app-1ec13ceef4a34729.js +0 -1
- package/dist/dashboard/assets/next/static/chunks/main-d1fa84e2f669be1c.js +0 -1
- package/dist/dashboard/assets/next/static/chunks/pages/_app-6c8c2371b16a04b8.js +0 -1
- package/dist/dashboard/assets/next/static/chunks/pages/_error-94812ad32cad7365.js +0 -1
- package/dist/dashboard/assets/next/static/chunks/webpack-60f6502c44ed95af.js +0 -1
- package/dist/dashboard/assets/next/static/css/138b575a572b2958.css +0 -1
- package/dist/dashboard/assets/next/static/css/1f0bd0855bbd1a14.css +0 -1
- package/dist/dashboard/assets/next/static/css/311920319a51fc90.css +0 -1
- package/dist/dashboard/assets/next/static/css/3f003235629d65a0.css +0 -1
- package/dist/dashboard/assets/next/static/css/448fc71b62e29403.css +0 -1
- package/dist/dashboard/assets/next/static/css/45513ebc8c6ae800.css +0 -1
- package/dist/dashboard/assets/next/static/css/4fa51ab33fbc7e1b.css +0 -1
- package/dist/dashboard/assets/next/static/css/61ec74d503f353d4.css +0 -1
- package/dist/dashboard/assets/next/static/css/807e07644631d8e2.css +0 -1
- package/dist/dashboard/assets/next/static/css/97d686ac80c4018f.css +0 -1
- package/dist/dashboard/assets/next/static/css/c1117da59daa6ba9.css +0 -1
- package/dist/dashboard/assets/next/static/css/c5ac36ef5726e746.css +0 -1
- package/dist/dashboard/assets/next/static/css/ec9722ff890f136c.css +0 -1
- package/dist/dashboard/assets/next/static/css/f9c2780fff15fd22.css +0 -1
- /package/dist/dashboard/assets/next/static/{8DWbcYS099IMf1RzFG63k → BbTZs0rKnsmj45peSnlwJ}/_ssgManifest.js +0 -0
|
@@ -0,0 +1 @@
|
|
|
1
|
+
.pricing-hero{padding:150px 0 40px;text-align:left}.pricing-hero .eyebrow{font:600 11px var(--mono);letter-spacing:.22em;text-transform:uppercase;color:var(--dim);margin:0 0 14px}.pricing-hero h1{font-size:clamp(40px,5vw,64px);font-weight:500;line-height:1.06;letter-spacing:-.04em;margin:0 0 18px}.pricing-hero p{max-width:640px;color:var(--muted);font-size:17px;line-height:1.65;margin:0}.pricing-plans{display:grid;grid-template-columns:repeat(3,1fr);gap:14px;padding:40px 0 20px}.plan{background:var(--surface);border:1px solid var(--line);border-radius:20px;padding:32px;display:flex;flex-direction:column;min-height:380px;position:relative}.plan.featured{border-color:#337af066;background:linear-gradient(180deg,#10141c,#0d0f13)}.plan .plan-label{position:absolute;top:-12px;left:28px;background:#337af0;color:#fff;font:600 10px var(--mono);letter-spacing:.14em;text-transform:uppercase;padding:5px 11px;border-radius:100px}.plan h2{font-size:22px;font-weight:600;letter-spacing:-.02em;margin:6px 0 4px}.plan .plan-for{color:var(--dim);font-size:13px;margin:0 0 22px}.plan .plan-price{font-size:38px;font-weight:600;letter-spacing:-.04em;margin:0 0 4px;display:flex;align-items:baseline;gap:10px;flex-wrap:wrap}.plan .plan-price span{font:400 13px var(--mono);color:var(--dim);letter-spacing:0}.plan .plan-list{list-style:none;padding:0;margin:22px 0 26px;display:grid;gap:11px}.plan .plan-list li{position:relative;padding-left:26px;font-size:14px;color:var(--muted);line-height:1.5}.plan .plan-list li:before{content:"";position:absolute;left:0;top:3px;width:14px;height:14px;background:url(../../../icons/ui/check.svg) 50%/contain no-repeat;opacity:.75}.plan .button{margin-top:auto;justify-content:center}.pricing-fine{padding:20px 0 110px}.pricing-fine .notice{background:var(--raised);border:1px solid var(--line);border-radius:16px;padding:28px 30px;max-width:860px}.pricing-fine .notice h2{font-size:24px;letter-spacing:-.03em;margin:0 0 10px}.pricing-fine .notice p{color:var(--muted);font-size:14px;line-height:1.7;margin:0;max-width:70ch}@media(max-width:900px){.pricing-plans{grid-template-columns:1fr}.plan{min-height:0}}.access-options{display:grid;grid-template-columns:1fr 1fr;gap:32px;padding:32px 0 50px}.access-options article{border-top:1px solid var(--line);padding-top:28px}.access-options h2{font-size:24px;letter-spacing:-.5px}.access-options p{color:var(--muted);font-size:15px;line-height:1.8;max-width:52ch;margin:18px 0 26px}.pricing-fine .text-link{margin-top:20px}@media(max-width:700px){.access-options{grid-template-columns:1fr}}
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
#environment-view .environment-project-actions{display:flex;align-items:center;justify-content:space-between;gap:20px;padding:20px 0 0;margin-bottom:8px}#environment-view .environment-project-actions[hidden]{display:none}#environment-removal-message{font-size:13px;line-height:1.5;color:var(--muted);margin:0}#environment-delete-project{display:inline-flex;align-items:center;justify-content:center;gap:8px;flex-shrink:0;margin-left:auto;min-height:40px;padding:9px 14px;border:1px solid #ba6269;border-radius:8px;color:#f28b93;background:transparent;font-size:13px}#environment-delete-project:focus-visible{outline:2px solid #f28b93;outline-offset:4px}#environment-delete-project:disabled{opacity:.5;cursor:wait}@media(hover:hover){#environment-delete-project:hover{background:#ba626914}}@media(max-width:600px){#environment-view .environment-project-actions{align-items:flex-end;flex-direction:column}}#settings-view .project-settings-heading{display:flex;align-items:center;justify-content:space-between;gap:24px;margin-bottom:24px}#settings-view .project-settings-heading h2{font-size:18px;margin:0 0 6px}#settings-view .project-settings-heading p{margin:0;color:var(--muted);font-size:13px;line-height:1.6}#settings-view .project-add{display:inline-flex;align-items:center;justify-content:center;min-height:40px;padding:0 16px;border-radius:8px;background:#eeeef2;color:#18181b;text-decoration:none;font-size:13px;font-weight:600;white-space:nowrap}#settings-view .project-settings-row{display:flex;justify-content:space-between;align-items:center;gap:24px;padding:20px 0;border-top:1px solid var(--line)}#settings-view .project-settings-info{display:flex;flex-direction:column;gap:7px;min-width:0}#settings-view .project-settings-info strong{font-size:14px;line-height:1.5;overflow-wrap:anywhere}#settings-view .project-settings-info span{font-size:12px;line-height:1.5;color:var(--muted)}#settings-view .project-settings-actions{display:flex;align-items:center;gap:10px;flex-shrink:0}#settings-view .project-settings-actions button,#settings-view .project-settings-more summary{min-height:40px;font-size:13px;padding:9px 13px;white-space:nowrap}#settings-view .project-settings-more{position:relative;margin:0}#settings-view .project-settings-more summary{cursor:pointer;list-style:none;border:1px solid var(--line);border-radius:8px;color:var(--muted)}#settings-view .project-settings-more summary::-webkit-details-marker{display:none}#settings-view .project-settings-menu{position:absolute;right:0;top:calc(100% + 8px);z-index:20;width:260px;padding:8px;border:1px solid var(--line);border-radius:10px;background:#1b1b22;box-shadow:0 10px 30px #0005}#settings-view .project-settings-menu button{width:100%;text-align:left;color:#ffb4b4;background:transparent;border:0}#settings-view .project-settings-menu p{font-size:12px;line-height:1.5;color:var(--muted);margin:4px 12px 10px}#settings-view .project-settings-empty{border-top:1px solid var(--line);padding:28px 0 8px}#settings-view .project-settings-empty strong{font-size:14px}#project-settings-message,#settings-view .project-settings-empty p{font-size:13px;color:var(--muted);line-height:1.6}#project-settings-message:empty{display:none}#settings-view .project-add:focus-visible,#settings-view .project-settings-more summary:focus-visible{outline:2px solid #a5b4fc;outline-offset:4px}@media(max-width:640px){#settings-view .project-settings-row{align-items:flex-start;flex-direction:column;gap:16px}#settings-view .project-settings-actions{width:100%;justify-content:space-between}#settings-view .project-settings-heading{gap:16px;align-items:flex-start}}
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
:root{--h-bg:#101013;--h-card:#161619;--h-card2:#1b1b1f;--h-line:#26262c;--h-line2:#313138;--h-ink:#ececee;--h-dim:#a3a6b0;--h-mut:#7e828d;--h-blue:#4c6fff;--h-bar:#3f66f5;--h-green:#3fbf7f;--h-red:#e5484d;--h-amber:#f2a33c;--h-orange:#e8833a}html{scrollbar-color:#3a3a42 #101013}body.view-home .brand,body.view-home .sidebar-toggle,body.view-home .workspace-name{display:none}body.view-home .app-layout{grid-template-columns:minmax(0,1fr)}body.view-home .app-nav{display:none}body.view-home main{padding:0;max-width:none}body.view-home footer{display:none}body.view-home .topbar{z-index:30;left:0;right:0;padding:10px 16px;display:flex;align-items:center;gap:8px}body.view-home .account-control{margin-left:0}body.view-home #api-message:not(:empty){position:relative;z-index:5;margin:68px 20px 0;background:#2a2320;border:1px solid #4a3a30;color:#e8d8c8}.visually-hidden{position:absolute;width:1px;height:1px;clip-path:inset(50%);overflow:hidden}body:not(.view-home) .workspace-name{display:none}.home-switcher{gap:2px;border:1px solid #ffffff17;background:#141419a8;border-radius:12px;padding:3px;backdrop-filter:blur(14px)}.home-switcher,.home-switcher button{display:inline-flex;align-items:center}.home-switcher button{gap:7px;border:0;background:transparent;color:#a9adb8;border-radius:9px;padding:6px 12px;min-height:28px;font-size:13px;font-weight:500;white-space:nowrap;transition:background .12s ease,color .12s ease}.home-switcher button.active,.home-switcher button:hover{background:#232330;color:#fff}.home-switcher button img,.home-switcher button svg{width:15px;height:15px;color:#fff;flex:none}.home-switcher button img{filter:brightness(0) invert(1)}.pill-count{min-width:17px;height:17px;padding:0 5px;display:inline-grid;place-items:center;background:#f2a33c;color:#16110a;border-radius:99px;font-size:10.5px;font-weight:600}.home-menu{position:absolute;left:0;top:44px;min-width:210px;background:#1a1a20;border:1px solid #2c2c34;border-radius:12px;box-shadow:0 18px 50px #000a;padding:6px;z-index:40}.home-menu[hidden]{display:none}.home-menu button{display:flex;width:100%;align-items:center;gap:10px;text-align:left;border:0;background:transparent;border-radius:8px;min-height:34px;padding:7px 10px;font-size:13px;color:#c9ccd5}.home-menu button img,.home-menu button svg{width:16px;height:16px;opacity:.8}.home-menu button:hover{background:#26262e;color:#fff}.home-menu button.active{background:#232330;color:#fff}.home-top-actions{margin-left:auto;display:flex;align-items:center;gap:8px}.home-search{display:inline-flex;align-items:center;gap:8px;border:1px solid #ffffff17;background:#141419a8;color:#9296a1;border-radius:10px;padding:6px 10px;min-height:34px;font-size:12.5px;backdrop-filter:blur(14px)}.home-search:hover{color:#d6d8df;border-color:#ffffff2a}.home-search svg{width:14px;height:14px}.home-search kbd{font:11px var(--mono);color:#7f8390;border:1px solid #ffffff14;border-radius:5px;padding:1px 5px;background:#ffffff08}.home-icon-btn{position:relative;display:grid;place-items:center;width:34px;height:34px;min-height:34px;padding:0;border:1px solid #ffffff17;background:#141419a8;color:#b9bcc6;border-radius:10px;backdrop-filter:blur(14px)}.home-icon-btn:hover{background:#1d1d24b8;color:#fff}.home-icon-btn svg{width:16px;height:16px}.bell-badge{position:absolute;top:-4px;right:-4px;min-width:16px;height:16px;padding:0 4px;display:grid;place-items:center;background:var(--h-amber);color:#16110a;border-radius:99px;font-size:10px;font-weight:650}.bell-badge:empty{display:none}.home-bell-wrap{position:relative}.bell-menu{left:auto;right:0;min-width:280px;padding:12px 8px 8px}.bell-menu .menu-label{font-size:11px;color:var(--h-mut);margin:0 8px 8px}.bell-item{display:flex;gap:10px;align-items:flex-start;padding:9px 10px;border-radius:8px;font-size:12.5px;color:#c9ccd5;text-align:left;width:100%;border:0;background:transparent}.bell-item:hover{background:#26262e}.bell-item .dot{width:7px;height:7px;border-radius:50%;background:var(--h-amber);flex:none;margin-top:5px}.bell-item small{display:block;color:var(--h-mut);font-size:11px;margin-top:2px}.home-hero{min-height:clamp(430px,58vh,560px);align-items:flex-end;justify-content:center;overflow:hidden}#home-sky{position:absolute;inset:0;width:100%;height:100%;image-rendering:pixelated}.home-hero:after{inset:auto 0 0 0;height:220px;background:linear-gradient(to bottom,transparent,var(--h-bg))}.hero-content{position:relative;z-index:2;text-align:center;padding:96px 20px 46px;width:min(560px,100%)}.hero-content h1{font-size:clamp(21px,2.6vw,28px);font-weight:550;letter-spacing:-.5px;color:#fff;text-shadow:0 2px 22px #0009;margin-bottom:18px;text-wrap:balance}.home-composer{text-align:left;border:1px solid #ffffff1c;box-shadow:0 24px 70px #000a;overflow:hidden}.composer-tabs{display:flex;align-items:center;gap:2px;padding:9px 10px;border-bottom:1px solid #ffffff10}.composer-tab{border:0;background:transparent;color:#9296a1;font-size:12.5px;font-weight:500;min-height:26px;padding:3px 10px;border-radius:7px}.composer-tab+.composer-tab{border-left:1px solid #ffffff12;border-radius:0 7px 7px 0}.composer-tab:hover{color:#d6d8df}.composer-tab.active{color:#fff}.composer-tab span{color:#7e828d;font-weight:450}.composer-spacer{flex:1}.composer-mini{color:#7f8390;display:grid;place-items:center}.composer-mini svg{width:15px;height:15px}#composer-input{display:block;width:100%;background:transparent;border:0;padding:14px 16px 8px;color:var(--h-ink);font:13.5px/1.6 Inter,-apple-system,BlinkMacSystemFont,Segoe UI,sans-serif;resize:none;outline:none}#composer-input::placeholder{color:#71747f}.composer-row{display:flex;padding:4px 8px 8px;flex-wrap:wrap}.chip,.composer-row{align-items:center;gap:6px}.chip{display:inline-flex;border:1px solid #ffffff14;background:#ffffff0a;color:#c4c7d0;border-radius:9px;padding:4px 9px;min-height:28px;font-size:12px;font-weight:450}.chip svg{width:13px;height:13px;color:#8b8e98}.chip .chevron{width:11px;height:11px;color:#7f8390}.chip:hover{background:#ffffff14;color:#fff}.chip.strong{color:#e8e9ee}.chip.dot{border-style:dashed;cursor:default}.chip.dot:hover{background:#ffffff0a;color:#c4c7d0}.dot-dot{width:6px;height:6px;border-radius:50%;background:var(--h-green)}.composer-flex{flex:1}.composer-send{width:30px;height:30px;min-width:30px;min-height:30px;padding:0;display:grid;place-items:center;border-radius:9px;border:1px solid #ffffff1c;background:#ffffff17;color:#e8e9ee}.composer-send:hover{background:#ffffff26}.composer-send svg{width:14px;height:14px}.composer-note{display:none;margin:0;padding:0 14px 10px;font-size:11.5px;color:#b7a98a;line-height:1.6}.composer-note.show{display:block}.home-body{position:relative;z-index:2;max-width:1180px;width:100%;padding:6px 20px 56px}.home-grid-head{display:flex;justify-content:flex-end;align-items:center;margin:2px 2px 10px}.grid-hint{margin-right:auto;font-size:11px;color:#767a86;letter-spacing:.2px}#home-customize{display:inline-flex;align-items:center;gap:7px;border:0;background:transparent;color:#8b8e98;font-size:12px;min-height:28px;padding:4px 8px}#home-customize:hover{color:#d6d8df}#home-customize svg{width:14px;height:14px}#home-customize[aria-pressed=true]{color:var(--h-blue)}.home-widgets{gap:14px;grid-template-areas:"working receipts" "sandbox receipts" "services failures"}.area-working{grid-area:working}.area-receipts{grid-area:receipts}.area-sandbox{grid-area:sandbox}.area-services{grid-area:services}.area-failures{grid-area:failures}.widget{background:var(--h-card);border:1px solid var(--h-line);border-radius:14px;padding:13px 16px 14px;min-width:0;overflow:hidden}.widget>header{display:flex;align-items:center;gap:8px;margin-bottom:4px}.widget h2{font-size:12.5px;font-weight:500;color:#d3d5db;letter-spacing:-.1px}.w-ico{display:grid;place-items:center;color:#7e828d}.w-ico svg{width:14px;height:14px}.w-count{font-size:11.5px;color:#7e828d}.w-count.warn{color:var(--h-amber)}.w-head-meta{margin-left:auto;font-size:11px;color:#7e828d;display:inline-flex;align-items:center;gap:6px}.w-head-spin{margin-left:auto;color:#9aa0ab;display:grid;place-items:center}.w-head-spin svg{width:13px;height:13px}.spin{animation:spin 1.1s linear infinite;transform-origin:center}@keyframes spin{to{transform:rotate(1turn)}}.w-body{padding-top:6px}.w-empty{font-size:12px;color:var(--h-mut);line-height:1.7;padding:8px 0 4px}.task-row{display:flex;align-items:flex-start;gap:9px;padding:6px 0 2px}.task-spin{color:var(--h-blue);flex:none;margin-top:2px;display:grid;place-items:center}.task-spin svg{width:14px;height:14px}.task-row strong{display:block;font-size:13px;font-weight:500;color:#e8e9ee}.task-stat{color:#8b8e98;flex:none;margin-top:1px;display:grid;place-items:center}.task-stat svg{width:14px;height:14px}.task-row .w-when{margin-left:auto;font-size:11px;color:var(--h-amber);white-space:nowrap;display:inline-flex;gap:5px;align-items:center}.task-row .w-when:before{content:"";width:6px;height:6px;border-radius:50%;background:var(--h-orange)}.task-row .w-when.quiet{color:#8b8e98}.task-row .w-when.quiet:before{display:none}.task-sub{margin:2px 0 0 23px;font:10.5px/1.6 var(--mono);color:#7f8390;overflow-wrap:anywhere}.linklike{border:0;background:transparent;color:#9aa0ab;font:inherit;padding:0;min-height:0;text-decoration:underline;text-underline-offset:3px}.linklike:hover{color:#fff}.group-label{display:flex;align-items:center;gap:6px;font-size:11px;color:#8b8e98;margin:10px 0 2px}.group-label b{font-weight:550}.group-label.warn b{color:var(--h-amber)}.group-label .g-spin{color:#8b8e98;display:grid}.group-label .g-spin svg{width:11px;height:11px}.review-row{display:flex;align-items:center;width:100%;text-align:left;padding:8px 10px;margin:0 -10px;min-height:0;border:0;border-radius:8px;background:transparent;font:inherit;color:inherit;box-shadow:inset 0 -1px 0 #1f1f25;transition:background .12s ease}.review-row:last-child{box-shadow:none}.review-row:hover{background:#1d1d24}.review-row .r-ico{color:#8b8e98;display:grid;flex:none}.review-row .r-ico svg{width:13px;height:13px}.review-row strong{font-size:12.5px;color:#dcdee4;white-space:nowrap;overflow:hidden;text-overflow:ellipsis;flex:1;min-width:0}.review-row:hover strong{color:#fff}.review-row .ref{font:10px/1.4 var(--mono);color:#838792;background:#232329;border-radius:5px;padding:2px 6px;white-space:nowrap}.review-row .r-status{font-size:11px;white-space:nowrap}.review-row .r-status.passed{color:var(--h-green)}.review-row .r-status.error,.review-row .r-status.failed{color:var(--h-red)}.review-row .r-status.incomplete{color:#9296a1}.review-row .r-time{font-size:10.5px;color:#7f8390;white-space:nowrap}.ok-ico{color:var(--h-green)}.warn-ico{color:var(--h-amber)}.bad-ico{color:var(--h-red)}.neutral-ico{color:#7e828d}.fact-grid{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:10px 18px;padding-top:8px}.fact-item{min-width:0}.fact-item span{display:block;font-size:9px;color:#7f8390;letter-spacing:.3px}.fact-item b{display:block;margin-top:2px;font-size:11.5px;font-weight:450;color:#dcdee4;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}.service-row{display:flex;align-items:baseline;gap:9px;padding:8px 0;border-bottom:1px solid #1f1f25;font-size:12.5px}.service-row:last-child{border-bottom:0}.service-row strong{font-weight:450;color:#dcdee4}.service-row .s-kind{flex:1;min-width:0;font-size:10.5px;color:#8b8e98;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.service-row .runner{font:10.5px var(--mono);color:#7f8390;white-space:nowrap}.failure-row{display:flex;align-items:center;gap:9px;padding:9px 0;border-bottom:1px solid #1f1f25;font-size:12.5px}.failure-row:last-child{border-bottom:0}.failure-row .bad-ico{display:grid;flex:none}.failure-row .bad-ico svg{width:13px;height:13px}.failure-row strong{font-weight:450;color:#dcdee4;white-space:nowrap}.failure-row .f-path{font:10.5px var(--mono);color:#7f8390;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.failure-row .f-time{margin-left:auto;font-size:11px;color:#7e828d;white-space:nowrap}.home-loop{position:fixed;right:18px;bottom:18px;z-index:25;display:inline-flex;align-items:center;gap:8px;border:1px solid #ffffff17;background:#1a1a20e0;color:#c9ccd5;border-radius:999px;padding:8px 13px;min-height:36px;font-size:12.5px;backdrop-filter:blur(14px);box-shadow:0 10px 30px #0008}.home-loop:hover{background:#22222ae8;color:#fff}.home-loop svg{width:14px;height:14px;color:#8b8e98}.home-loop .chevron{width:12px;height:12px}.loop-note{position:fixed;right:18px;bottom:62px;z-index:25;max-width:300px;background:#1a1a20;border:1px solid #2c2c34;border-radius:12px;padding:12px 14px;font-size:12px;line-height:1.65;color:#b9bcc6;box-shadow:0 18px 50px #000a}.palette{position:fixed;inset:0;z-index:60;background:#0009;backdrop-filter:blur(3px);display:flex;align-items:flex-start;justify-content:center;padding:16vh 20px 0}.palette[hidden]{display:none}.palette-panel{width:min(560px,100%);background:#1a1a20;border:1px solid #2e2e36;border-radius:14px;box-shadow:0 30px 80px #000c;overflow:hidden}.palette-panel input{width:100%;background:transparent;border:0;border-bottom:1px solid #26262c;color:#ececee;font-size:14px;padding:15px 16px;outline:none}.palette-list{max-height:300px;overflow:auto;padding:6px}.palette-item{display:flex;align-items:center;gap:10px;width:100%;text-align:left;border:0;background:transparent;border-radius:8px;padding:9px 10px;font-size:13px;color:#c9ccd5;min-height:36px}.palette-item.active,.palette-item:hover{background:#26262e;color:#fff}.palette-item small{margin-left:auto;font:10.5px var(--mono);color:#7f8390}.palette-item img,.palette-item svg{width:15px;height:15px;opacity:.8}.palette-empty{padding:16px;font-size:12.5px;color:#7e828d}.home-widgets.compact .widget{padding:10px 13px 11px}.home-widgets.compact .failure-row,.home-widgets.compact .review-row,.home-widgets.compact .service-row{padding:6px 10px}@media(max-width:900px){.home-widgets{grid-template-columns:1fr;grid-template-areas:"working" "receipts" "sandbox" "services" "failures"}.home-hero{min-height:420px}.hero-content{padding-top:84px}}@media(max-width:560px){body.view-home .topbar{padding:8px 10px}.home-search span{display:none}.home-search{padding:6px 8px}.home-search kbd{display:none}.home-body{padding:4px 12px 48px}.fact-grid{grid-template-columns:1fr}.home-switcher{max-width:calc(100vw - 150px);overflow-x:auto;scrollbar-width:none}.home-switcher::-webkit-scrollbar{display:none}.home-switcher button{font-size:12px;padding:5px 9px;gap:6px}}@media(prefers-reduced-motion:reduce){.spin{animation:none}}.widget{transition:border-color .15s ease}.widget:hover{border-color:#2e2e36}.widget .w-count{background:#232329;border-radius:6px;padding:1px 7px;font-size:10.5px}.widget .w-count:empty{display:none}.widget .w-count.warn{color:var(--h-amber)}.fact-item b{font-family:var(--mono);font-size:11px}.home-composer{transition:border-color .15s ease,box-shadow .15s ease}.home-composer:focus-within{border-color:#4c6fff59;box-shadow:0 24px 70px #000a,0 0 0 3px #4c6fff1f}.composer-send{background:var(--h-blue);border-color:var(--h-blue);color:#fff}.composer-send:hover{background:#5d7dff;border-color:#5d7dff}.chip,.composer-tab{transition:background .12s ease,color .12s ease,border-color .12s ease}.hero-content{animation:home-rise .45s ease both}.home-body{animation:home-rise .5s ease both}@keyframes home-rise{0%{opacity:0;transform:translateY(8px)}to{opacity:1;transform:none}}.palette-list{scrollbar-width:thin;scrollbar-color:#2e2e36 transparent}.palette-hint{display:flex;gap:16px;padding:9px 16px;border-top:1px solid #26262c;font-size:10.5px;color:#8b8e98}.palette-hint kbd{font:10px var(--mono);color:#9aa0ab;border:1px solid #ffffff14;border-radius:4px;padding:1px 5px;background:#ffffff08;margin-right:4px}.chat-context{font-size:12px;color:var(--text-muted,#999);padding:0 18px 12px;margin:0}.chat-thread{max-height:420px;overflow:auto;border-top:1px solid rgba(255,255,255,.1);padding:16px 20px;text-align:left}.chat-message{margin:0 0 20px}.chat-message header{font-size:12px;color:#9696a0;margin-bottom:8px}.chat-message p{white-space:pre-wrap;overflow-wrap:anywhere;font-size:14px;line-height:1.65;margin:0;color:#e1e1e6}.chat-message.user{border-left:2px solid #3c5bff;padding-left:12px}.composer-send:disabled{opacity:.4;cursor:wait}.hero-content{width:440px;max-width:100%;min-width:0;padding:82px 20px 24px;transition:width .2s ease}.hero-content.has-conversation{width:760px}.home-hero{min-height:350px}.home-composer{min-width:0;width:100%;max-width:100%}.chat-thread{max-height:280px;padding:14px 18px;overscroll-behavior:contain;min-width:0}.chat-message{margin-bottom:16px;min-width:0}.chat-content{font-size:13px;line-height:1.65;overflow-wrap:anywhere;color:#e1e1e6}.chat-content p{font-size:inherit;white-space:normal;line-height:inherit;margin:0 0 10px}.chat-message.user .chat-content p{white-space:pre-wrap}.chat-content :last-child{margin-bottom:0}.chat-content h1,.chat-content h2,.chat-content h3,.chat-content h4{font-size:14px;text-align:left;margin:12px 0 6px;text-shadow:none}.chat-content ol,.chat-content ul{margin:8px 0;padding-left:22px}.chat-content li{margin:4px 0}.chat-content code{font:12px/1.6 var(--mono);background:#ffffff0a;border-radius:4px;padding:2px 4px;overflow-wrap:anywhere}.chat-content pre{max-width:100%;overflow:auto;background:#0c0c10;border:1px solid var(--h-line);border-radius:8px;padding:12px;margin:10px 0;white-space:pre}.chat-content pre code{padding:0;background:none;white-space:pre}.chat-content table{display:block;max-width:100%;overflow:auto;border-collapse:collapse;margin:10px 0}.chat-content td,.chat-content th{border:1px solid var(--h-line);padding:6px 9px;text-align:left}.chat-content a{color:#8fa4ff;text-decoration:underline}.chat-content blockquote{border-left:2px solid var(--h-line2);margin:10px 0;padding-left:12px;color:var(--h-dim)}.chat-context{font-size:10.5px;padding:0 14px 8px}.home-widgets{grid-template-areas:"project receipts" "working receipts" "sandbox failures" "services failures"}.area-project{grid-area:project}.project-title{display:block;font-weight:500;margin:6px 0 12px}.project-summary{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:8px}.project-summary button{padding:8px;color:var(--h-dim);background:var(--h-card2);border:1px solid var(--h-line);border-radius:8px;font-size:11px}.project-summary b{display:block;color:var(--h-ink);margin-bottom:4px}@media(max-width:900px){.home-widgets{grid-template-columns:1fr;grid-template-areas:"project" "working" "receipts" "sandbox" "services" "failures"}}@media(prefers-reduced-motion:reduce){.hero-content{transition:none}}.home-hero{min-height:300px}.hero-content{padding:72px 20px 20px}body.view-home:has(#api-message:not(:empty)) .hero-content{padding-top:28px}.hero-content h1{font-size:22px;margin-bottom:14px}#home-sky{opacity:.25}.home-composer{background:#161619f5;box-shadow:0 12px 32px #0005}#composer-input{height:62px;min-height:62px;padding-top:10px}.chat-thread{max-height:180px;padding:12px 16px}.chat-disclosure{margin:0;padding:0 14px 10px;color:var(--h-mut);font-size:11px;line-height:1.6}.chat-disclosure summary{cursor:pointer;overflow-wrap:anywhere}.chat-disclosure p{margin:6px 0 0}@media(max-width:560px){.hero-content{padding:72px 12px 16px}.hero-content.has-conversation{width:100%}.chat-thread{max-height:180px}.hero-content h1{font-size:20px}}.home-hero{background:transparent;min-height:260px}.home-hero:after,.home-hero:before{display:none}.home-hero .hero-content{padding-top:42px}.hero-content h1{text-shadow:none;font-size:24px}.home-composer{background:#161619;border-color:#2b2b30;box-shadow:none;backdrop-filter:none;border-radius:12px}.home-widgets .widget{border-radius:10px}.home-toolbar{margin-top:12px}.widget .w-empty{line-height:1.75}.composer-note{color:var(--muted)}body.view-home .topbar{position:sticky;top:0;min-height:64px;background:#111114;border-bottom:1px solid #24242a;padding:10px 20px}body.view-home .brand{display:inline-flex;width:auto;font-size:17px;margin-right:20px;gap:10px}body.view-home .brand img{width:27px;height:27px}body.view-home #api-message:not(:empty){margin:14px 20px 0;padding:8px 0;border:0;border-radius:0;background:transparent;color:var(--muted);max-width:none}body.view-home .hero-content{padding-top:30px}#api-message:not(:empty){border:0;background:transparent;padding:10px 0;border-radius:0;color:var(--muted)}@media(max-width:760px){body.view-home .brand{font-size:0;margin-right:4px;gap:0}body.view-home .brand img{width:25px;height:25px}body.view-home .topbar{padding:10px 12px}.home-switcher{min-width:0;max-width:calc(100vw - 190px);overflow:auto}}.home-hero{isolation:isolate}.home-hero #home-sky{display:block;opacity:.38;pointer-events:none}.home-hero .hero-content{position:relative;z-index:1}.home-composer{background:#161619ed}.home-hero:after{display:block;content:"";position:absolute;inset:0;z-index:0;background:linear-gradient(180deg,#10101300 55%,#101013);pointer-events:none}.home-hero{min-height:400px}.home-hero .hero-content{padding:54px 20px 34px}.home-hero:after{background:linear-gradient(180deg,#10101300 65%,#101013)}.home-composer{background:#13131899;border-color:#ffffff26;border-radius:16px;backdrop-filter:blur(18px);box-shadow:0 20px 55px #0006}.home-widgets .widget{background:#18181de0;border-color:#ffffff15;border-radius:14px;backdrop-filter:blur(16px)}.home-body .home-action{width:100%;margin:0 0 24px;background:#1b1b21b3;backdrop-filter:blur(16px)}.account-connected #stats,.account-connected .run-sidebar{display:none}.account-connected .workspace{grid-template-columns:minmax(0,1fr)}.debug-section{margin-top:20px;border-top:1px solid #303034;padding-top:16px}.debug-section>summary{cursor:pointer;color:#bbb}.home-hero{min-height:220px}.home-overview-title{z-index:1;padding:36px 20px;color:#fff;font-size:28px;letter-spacing:-.5px;text-shadow:0 2px 22px #0009}.home-assistant-bottom{display:flex;justify-content:center;margin-top:32px}.home-assistant-bottom .hero-content{padding:0;width:min(560px,100%)}.home-assistant-bottom .hero-content.has-conversation{width:min(720px,100%)}.home-assistant-bottom .home-composer{background:#18181db3}.home-assistant-bottom .hero-content{max-width:100%}@media(max-width:560px){.home-hero{min-height:180px}.home-overview-title{font-size:24px}.home-assistant-bottom{margin-top:24px}}#home-view{position:relative;isolation:isolate;padding-bottom:90px}.home-hero{position:static;min-height:190px}.home-hero #home-sky{mask-image:linear-gradient(#000,#000b 35%,transparent)}.home-hero:after{display:none}.home-overview-title{font-size:30px;padding:42px 24px}.home-body{max-width:1080px;padding-bottom:24px}.home-body .home-action{background:#18181b80;border-color:#ffffff14;padding:22px 24px;border-radius:16px}.home-widgets{grid-template-areas:none;grid-template-columns:repeat(3,minmax(0,1fr));gap:12px}.home-widgets .widget{grid-area:auto;min-height:140px;padding:18px;background:#17171bc9;border-radius:12px}.home-widgets .widget[hidden]{display:none}.home-widgets .w-empty{font-size:12px;line-height:1.65}.home-widget-controls{display:flex;gap:16px;flex-wrap:wrap;padding:16px;border:1px solid #ffffff18;background:#19191f}.home-widget-controls[hidden]{display:none}.home-widget-controls label{display:flex;align-items:center;gap:7px;font-size:12px}.home-widget-controls input{accent-color:#4c68ff}.home-assistant-bottom{position:fixed;bottom:20px;left:50%;transform:translateX(-50%);z-index:30;max-width:calc(100vw - 32px)}#assistant-dock-toggle{padding:14px 20px;border-radius:40px;background:#202028ee;border:1px solid #ffffff30;color:#eee;box-shadow:0 8px 30px #0006;display:flex;gap:32px;align-items:center;backdrop-filter:blur(20px)}#assistant-dock-panel[hidden],#assistant-dock-toggle[hidden]{display:none}#assistant-dock-panel{width:min(560px,calc(100vw - 32px));max-height:calc(100dvh - 160px);overflow:auto;padding:0}#assistant-dock-panel.has-conversation{width:min(720px,calc(100vw - 32px))}#assistant-dock-close{display:block;margin:0 0 8px auto;background:#202028;color:#ccc;border:1px solid #ffffff25;padding:6px 12px;border-radius:8px;font-size:12px}.home-assistant-bottom .home-composer{background:#19191ff5;box-shadow:0 20px 60px #0008}.failure-row{width:100%;text-align:left;background:none;border:0;color:inherit;cursor:pointer}.failure-row:hover{background:#ffffff08}#account-user-name{margin:8px 0;color:#ddd;font-size:13px}@media(max-width:900px){.home-widgets{grid-template-columns:repeat(2,minmax(0,1fr))}}@media(max-width:600px){body.view-home .topbar{display:flex;flex-wrap:wrap;gap:10px;min-height:106px;padding:10px 12px}body.view-home .brand{font-size:16px;flex:1;margin:0}body.view-home .home-top-actions{margin-left:auto}body.view-home #home-expand,body.view-home #home-search{display:none}body.view-home .home-switcher{order:10;width:100%;max-width:100%;display:flex;overflow:visible;padding:3px;justify-content:space-between}.home-switcher button{flex:1;justify-content:center;padding:8px 3px;gap:3px;font-size:11px;min-height:36px}.home-switcher button img,.home-switcher button svg{display:none}.home-overview-title{font-size:25px;padding:30px 18px}.home-hero{min-height:150px}.home-body .home-action{padding:18px;align-items:flex-start;gap:16px;flex-direction:column}.home-action h2{font-size:18px}.home-widgets{grid-template-columns:1fr}.home-widgets .widget{min-height:0;padding:16px}.home-grid-head{margin-top:20px}.home-assistant-bottom{bottom:12px}#assistant-dock-panel{max-height:calc(100dvh - 150px)}}.home-body{animation:none}.home-assistant-bottom{width:max-content}#assistant-dock-toggle{white-space:nowrap}@media(max-width:600px){body:not(.view-home) .topbar{height:auto;min-height:106px;display:flex;flex-wrap:wrap;padding:10px 12px;gap:10px}body:not(.view-home) .brand{width:auto;flex:1;font-size:16px}body:not(.view-home) .home-switcher{order:10;width:100%;max-width:100%;overflow:visible;justify-content:space-between}body:not(.view-home) #sidebar-toggle,body:not(.view-home) .home-top-actions{display:none}body:not(.view-home) .app-layout{grid-template-columns:minmax(0,1fr)}body:not(.view-home) .app-nav{display:none}.account-menu{right:0;left:auto}}.home-hero #home-sky{height:380px!important;mask-image:linear-gradient(#000,#000 45%,transparent)}body.view-settings .app-layout{grid-template-columns:minmax(0,1fr)}body.view-settings #sidebar-toggle,body.view-settings .app-nav{display:none}body.view-settings main{width:100%;max-width:1040px;margin:0 auto}.assistant-heading{display:flex;justify-content:space-between;align-items:center;padding:16px 16px 8px;gap:16px;font-size:14px}#assistant-project-context{font-size:12px;color:#aaa;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}#assistant-connection-status{margin:0;padding:0 16px 12px;font-size:12px;color:#a8a8b3;line-height:1.6}#assistant-connect{margin:0 16px 14px;background:#4c68ff;border:0;border-radius:8px;padding:9px 12px;color:white;font-size:12px}#assistant-connect[hidden],#composer-input:disabled{display:none}.home-composer:has(#composer-input:disabled) .composer-row{display:none}.assistant-send-hint{font-size:11px;color:#92929f;flex:1;padding-left:8px}.composer-send{width:auto;min-width:64px;padding:6px 12px;font-size:12px}.sidebar-project,.sidebar-workflow{display:block;width:100%;text-align:left;border:0;background:transparent;color:#a9a9b3;padding:10px 14px;border-radius:8px;font-size:12px;overflow-wrap:anywhere}.sidebar-project.active,.sidebar-project:hover,.sidebar-workflow:hover{background:#ffffff0a;color:#eee}.sidebar-project{font-size:13px;font-weight:550}.sidebar-empty{font-size:12px;line-height:1.6;color:#777;padding:0 14px}#sidebar-projects{overflow:auto;flex:1;padding:10px 0}@media(max-width:600px){body:not(.view-home):not(.view-settings) .app-layout{display:block}body:not(.view-home):not(.view-settings) .app-nav{display:block;padding:8px 12px;border-bottom:1px solid #ffffff12;width:100%}body:not(.view-home):not(.view-settings) .app-nav .sidebar-bottom,body:not(.view-home):not(.view-settings) .app-nav .sidebar-primary{display:none}#sidebar-projects{display:flex;overflow:auto;gap:6px;padding:0}#sidebar-projects .sidebar-empty,#sidebar-projects .sidebar-label,#sidebar-projects .sidebar-workflow{display:none}#sidebar-projects .sidebar-project{width:auto;flex:none;padding:8px 12px}}.home-composer .chat-content :is(h1,h2,h3,h4){font-size:14px;line-height:1.5;font-weight:600;text-align:left;margin:12px 0 6px;letter-spacing:normal;text-shadow:none}body.view-home{--h-bg:#17181c}body.view-home,body.view-home main{background:var(--h-bg)}body.view-home .topbar{position:absolute;background:transparent;border:0;backdrop-filter:none;min-height:56px;padding:10px 18px}body.view-home #api-message:not(:empty){position:absolute;top:58px;right:20px;max-width:360px;margin:0;padding:0;font-size:11px;text-align:right;color:#c0c9d4;z-index:3}#home-view{padding-bottom:48px;min-height:calc(100dvh - 20px)}.home-hero{position:relative;display:flex;flex-direction:column;align-items:center;justify-content:flex-end;min-height:390px;overflow:visible;isolation:auto;padding:218px 20px 32px;gap:16px}.home-hero #home-sky{position:absolute;inset:0;height:510px!important;background:url(../media/moonlit-coast.bbe901a1.png) top/100% auto no-repeat;image-rendering:auto;opacity:1;mask-image:linear-gradient(#000,#000 53%,transparent);z-index:-1}.home-overview-title{font-size:22px;line-height:1.25;padding:0;margin:0;font-weight:550;letter-spacing:-.45px;text-shadow:0 2px 18px #0008;text-wrap:balance;text-align:center}.home-assistant-bottom{position:relative;bottom:auto;left:auto;transform:none;margin:0;z-index:3;width:min(480px,100%);max-width:100%;display:block}#assistant-dock-toggle{width:100%;justify-content:space-between;background:#1b1e25c9;border-color:#ffffff1c;border-radius:12px;padding:16px 18px;white-space:normal;font-size:13px;backdrop-filter:blur(18px);box-shadow:0 10px 40px #080a1040}#assistant-dock-panel,#assistant-dock-panel.has-conversation{width:100%;max-height:470px;overflow:auto}.home-assistant-bottom:has(.has-conversation){width:min(680px,100%)}.home-assistant-bottom .home-composer{border-radius:12px;background:#1d2027df;box-shadow:0 16px 40px #0a0c1250}#assistant-dock-close{margin-bottom:6px;background:#1b1e25aa}#assistant-connection-status{font-size:11px;padding-bottom:4px}#composer-input{min-height:64px;font-size:13px}#chat-thread{max-height:240px}.home-body{max-width:800px;padding:0 20px 32px;margin:0 auto}.home-body .home-action{padding:14px 16px;margin:0 0 18px;border-radius:10px;background:#20222780;border-color:#ffffff0c;gap:20px}.home-action h2{font-size:14px;margin:0 0 4px;font-weight:550}.home-action p{font-size:12px;margin:0;color:#a1a4ad}.home-action button{font-size:12px;padding:8px 12px;min-height:32px;flex:none;background:#2d354b;border:1px solid #67759255}.home-grid-head{margin:0 0 10px}.home-widgets{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));align-items:start}.home-widgets .widget{background:#202227a8;border:1px solid #ffffff09;border-radius:9px;padding:14px 15px;backdrop-filter:blur(12px);box-shadow:none}.home-widgets .widget header{gap:7px;margin-bottom:12px}.home-widgets .widget h2{font-size:12px;font-weight:500;color:#d9dce2}.home-widgets .widget .w-empty{font-size:11px;color:#90949f;margin:0}.home-widgets .w-head-meta{font-size:10px;color:#9398a4}.review-row{grid-template-columns:16px minmax(0,1fr) auto;gap:8px;padding:9px 0}.review-row .ref{grid-column:2;font-size:10px}.review-row .r-time{display:none}.review-row strong{font-size:12px;font-weight:450}.review-row .r-status{font-size:10px}.project-title{font-size:14px}.project-summary{gap:6px}.project-summary button{padding:8px 0;text-align:left;font-size:10px}.project-summary b{font-size:20px;font-weight:500}.git-total{display:flex;align-items:baseline;gap:8px}.git-total strong{font-size:26px;font-weight:500;font-variant-numeric:tabular-nums}.git-total span{font-size:10px;color:#9298a3}.git-bars{display:flex;align-items:flex-end;height:52px;gap:4px;margin:12px 0 8px}.git-bars span{flex:1;height:var(--bar);min-height:3px;background:#496da9;border-radius:2px 2px 0 0}.git-bars span:last-child{background:#698fd0}.git-foot{display:flex;justify-content:space-between;gap:8px;font-size:9px;color:#9298a3;margin:0 0 10px}.git-foot code{font-size:10px;color:#bdc5d2}.sync-command{display:block;font-size:11px;color:#bfc6d1;margin-top:10px}.activity-row{display:flex;align-items:flex-start;gap:8px;width:100%;padding:9px 0;border:0;border-bottom:1px solid #ffffff07;background:transparent;color:inherit;text-align:left;cursor:pointer}.activity-row:hover{background:#ffffff04}.activity-dot{width:5px;height:5px;flex:none;margin-top:5px;border-radius:50%;background:#7c99c4}.activity-dot.fault{background:#d7a46a}.activity-dot.write{background:#63a884}.activity-row strong{display:block;font-size:11px;font-weight:500}.activity-row small{display:block;font-size:10px;color:#9096a2;overflow-wrap:anywhere;line-height:1.5;margin-top:4px}.activity-row time{margin-left:auto;white-space:nowrap;font-size:9px;color:#7c8290}.home-widget-controls{font-size:11px;background:#21242bcc;border-radius:9px;padding:12px}.home-icon-btn,.home-top-actions .home-search{background:#11172255;border-color:#c4d2f020}.home-switcher{background:#151b265e;border-color:#d1dbec18}@media(max-width:600px){body.view-home .topbar{position:relative;background:#17181c;min-height:100px}body.view-home #api-message:not(:empty){position:relative;top:auto;right:auto;margin:8px 20px;text-align:left;max-width:none}.home-hero{min-height:310px;padding:162px 20px 24px}.home-hero #home-sky{height:410px!important;background-size:auto 410px;background-position:23% top}.home-overview-title{font-size:21px}.home-body{padding:0 16px 28px}.home-body .home-action{flex-direction:row;padding:12px;gap:12px}.home-action p{display:none}.home-widgets{grid-template-columns:minmax(0,1fr)}#assistant-dock-panel,.home-widgets #widget-git,.home-widgets #widget-project,.home-widgets #widget-receipts,.home-widgets #widget-sandbox,.home-widgets #widget-services,.home-widgets #widget-working{max-height:410px}.home-assistant-bottom{bottom:auto}.home-grid-head{margin-top:0}}.home-hero #home-sky{background-image:radial-gradient(circle,#11172388 .65px,transparent .95px),var(--home-art,url(../media/moonlit-coast.bbe901a1.png));background-size:3px 3px,100% auto;background-position:top;background-repeat:repeat,no-repeat;mask-image:linear-gradient(#000,#000 40%,#0009 61%,transparent 94%)}.assistant-entry{display:flex;align-items:center;gap:8px;padding:5px 7px 5px 4px;border:1px solid #ffffff20;border-radius:32px;background:#1b1e25d9;backdrop-filter:blur(18px);box-shadow:0 10px 40px #080a1040}.assistant-entry #assistant-dock-toggle{flex:1;width:auto;min-width:0;padding:12px 14px;border:0;border-radius:28px;background:transparent;box-shadow:none;backdrop-filter:none}.home-assistant-bottom:has(#assistant-dock-panel:not([hidden])) .assistant-entry{display:none}.home-assistant-bottom .home-composer{border-radius:26px}.voice-button{display:grid;place-items:center;flex:none;width:36px;height:36px;min-height:36px;padding:8px;border-radius:50%;border:1px solid #ffffff14;background:#ffffff08;color:#c9d1df}.voice-button svg{width:18px;height:18px}.voice-button:hover{background:#ffffff14}.voice-button.recording{color:#ffb6b6;background:#662c3c;border-color:#b46777}.voice-button:disabled{opacity:.45}.composer-row .assistant-send-hint{flex:1;min-width:0}.composer-send{border-radius:22px}@media(max-width:600px){.home-hero #home-sky{background-size:3px 3px,auto 410px;background-position:top,23% top}.assistant-entry #assistant-dock-toggle{font-size:12px}.assistant-send-hint{font-size:10px}}.home-widgets>.widget-column{display:flex;flex-direction:column;gap:10px;min-width:0}.home-widgets>.widget-column:not(:has(>.widget:not([hidden]))){display:none}.home-widgets:has(>.widget-column:not(:has(>.widget:not([hidden])))){grid-template-columns:minmax(0,1fr)}@media(max-width:600px){.home-widgets>.widget-column{display:contents}.home-widgets #widget-project{order:0}.home-widgets #widget-receipts{order:1}.home-widgets #widget-git{order:2}.home-widgets #widget-working{order:3}.home-widgets #widget-services{order:4}.home-widgets #widget-sandbox{order:5}.home-widgets #widget-failures{order:6}body:not(.view-home):not(.view-settings) .app-nav{position:static;top:auto;height:auto;min-height:0;max-height:none}#sidebar-projects .sidebar-workflow-group{display:none}}#home-view[data-home-scene=morning]{--home-art:url(../media/bay-morning.1a9f358c.png)}#home-view[data-home-scene=afternoon]{--home-art:url(../media/golden-gate-afternoon.3e7cea58.png)}#home-view[data-home-scene=evening]{--home-art:url(../media/moonlit-coast.bbe901a1.png)}#home-sky:after{content:"";position:absolute;inset:0;background:linear-gradient(180deg,#08112470,transparent 30%,#10141c18 65%,transparent);pointer-events:none}.home-artwork-controls{display:grid;gap:8px;grid-column:1/-1;border-bottom:1px solid #ffffff14;padding-bottom:12px;margin-bottom:8px}.home-artwork-controls label{font-size:12px;color:#d9dce2}.home-artwork-controls select{width:100%;min-width:0;font-size:12px}.home-artwork-controls p{font-size:11px;color:#9ea6b5;margin:0}.home-hero{min-height:290px;padding-top:118px;--home-art-min-height:530px}.home-grid-head #home-customize,.home-grid-head .grid-hint{color:#d3d9e2;text-shadow:0 1px 6px #000b}.home-hero #home-sky{left:0;right:0;width:100%!important;height:var(--home-art-height,530px)!important;background-size:3px 3px,cover;background-position:top,50%;mask-image:linear-gradient(#000,#000 60%,#000b 75%,transparent)}@media(max-width:600px){.home-hero{min-height:250px;padding-top:102px;--home-art-min-height:443px}.home-hero #home-sky{background-size:3px 3px,cover;background-position:top,30%}#home-view[data-home-scene=morning] #home-sky{background-position:top,65%}#home-view[data-home-scene=evening] #home-sky{background-position:top,23%}}.assistant-entry,.home-assistant-bottom .home-composer{background:rgb(25 28 34/92%);border-color:#ffffff29;backdrop-filter:blur(16px)}.home-body .home-action,.home-widgets .widget{background:rgb(25 28 34/90%);border-color:#ffffff20;backdrop-filter:blur(16px)}.home-action p,.home-widgets .widget .w-empty{color:#bec5d0;font-size:13px;line-height:1.65}.home-widgets .widget h2{color:#f0f3f7;font-size:13px}.home-overview-title{position:relative;isolation:isolate;text-shadow:0 2px 8px #000b}.home-overview-title:before{content:"";position:absolute;inset:-14px -28px;z-index:-1;border-radius:50%;background:radial-gradient(ellipse,#11182370,transparent 72%);filter:blur(10px);pointer-events:none}.home-body .home-action button{background:#34425d;color:#f7f9fc;border-color:#8ea4c666}.home-body .home-action button:hover{background:#425578;border-color:#b2c5e08c}.assistant-entry:hover{border-color:#ffffff45}.home-widgets .widget .linklike{color:#e0e8f6;text-decoration-color:#98abc8}.home-widget-controls{display:block;padding:20px;margin-bottom:16px;background:#1d2027;border:1px solid #ffffff24;border-radius:12px;box-shadow:0 12px 32px #080c1826;color:#eef1f6}.home-customize-heading{display:flex;align-items:center;justify-content:space-between;gap:16px;margin-bottom:20px}.home-customize-heading h2{margin:0;font-size:15px;font-weight:550;letter-spacing:-.2px}.home-customize-heading p{margin:5px 0 0;font-size:12px;line-height:1.5;color:#aeb6c3}.home-widget-controls button{min-height:34px;padding:6px 12px;border:1px solid #ffffff24;border-radius:7px;background:#ffffff07;color:#edf0f6;font-size:12px}.home-widget-controls button:hover{background:#ffffff10;border-color:#ffffff3b}.home-widget-controls button:disabled{opacity:.4;cursor:default;background:transparent}.home-widget-controls .home-artwork-controls{display:grid;grid-template-columns:minmax(0,1fr) 180px;align-items:center;gap:16px;margin:0 0 20px;padding:0 0 20px;border-bottom:1px solid #ffffff12}.home-widget-controls .home-artwork-controls label{font-size:13px;font-weight:500;color:#edf0f6}.home-widget-controls .home-artwork-controls p{margin:6px 0 0;font-size:12px;line-height:1.5;color:#aeb6c3}.home-widget-controls .home-artwork-controls select{min-height:38px;padding:8px 12px;border:1px solid #ffffff24;border-radius:7px;background:#15181e;color:#edf0f6;font-size:13px}.home-card-controls{border:0;padding:0;margin:0;min-width:0}.home-card-controls legend{padding:0;margin-bottom:12px;font-size:13px;font-weight:500;color:#edf0f6}.home-card-options{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:8px 12px}.home-widget-controls .home-card-toggle{display:flex;align-items:center;justify-content:space-between;gap:12px;min-height:44px;padding:10px 12px;border:1px solid #ffffff0f;border-radius:7px;background:#ffffff03;font-size:13px;line-height:1.4;color:#cbd2de;cursor:pointer}.home-widget-controls .home-card-toggle:hover{background:#ffffff08;border-color:#ffffff25}.home-widget-controls .home-card-toggle:has(input:checked){color:#f0f3f7}.home-widget-controls .home-card-toggle input{appearance:none;-webkit-appearance:none;position:relative;flex:none;width:30px;height:18px;margin:0;border:1px solid #ffffff30;border-radius:20px;background:#454b58;cursor:pointer}.home-card-toggle input:before{content:"";position:absolute;left:2px;top:2px;width:12px;height:12px;border-radius:50%;background:#b6becb;transition:transform .15s ease}.home-widget-controls .home-card-toggle input:checked{background:#dce4ef;border-color:#dce4ef}.home-card-toggle input:checked:before{background:#252b36;transform:translateX(12px)}.home-widget-controls :is(button,select,input):focus-visible{outline:2px solid #abc9f2;outline-offset:3px}.home-customize-footer{display:flex;align-items:center;justify-content:space-between;gap:12px;margin-top:16px}.home-customize-footer span{font-size:12px;line-height:1.5;color:#aeb6c3}.readiness-list{margin:0;display:grid;gap:9px}.readiness-list>div{display:flex;justify-content:space-between;align-items:baseline;gap:12px;font-size:12px;line-height:1.5;color:#bec5d0}.readiness-list dd{margin:0;color:#eef2f7;font-size:14px;font-weight:500;font-variant-numeric:tabular-nums}.readiness-note{font-size:12px;line-height:1.6;color:#aeb6c3;margin:14px 0 12px}.home-widgets .readiness-link{display:flex;justify-content:space-between;align-items:center;width:100%;padding:9px 0 0;border:0;border-top:1px solid #ffffff14;border-radius:0;background:transparent;text-align:left;font-size:12px;color:#e0e8f6}.home-widgets .readiness-link:hover{color:white}@media(max-width:600px){.home-widgets #widget-readiness{order:7}}@media(max-width:480px){.home-widget-controls{padding:16px}.home-widget-controls .home-artwork-controls{grid-template-columns:minmax(0,1fr);gap:12px}.home-card-options{grid-template-columns:minmax(0,1fr);gap:6px}}@media(prefers-reduced-motion:reduce){.home-card-toggle input:before{transition:none}}.home-widgets{gap:10px}.home-widgets .widget{min-height:0;padding:13px 15px}.home-widgets .widget header{gap:6px;margin-bottom:8px}.home-widgets .widget h2{font-size:12.5px}.home-widgets .widget .w-empty{font-size:12px;line-height:1.6}.home-widgets .widget-column{gap:10px}.home-body .home-action{padding:12px 16px;margin-bottom:14px}.assistant-entry,.home-assistant-bottom .home-composer,.home-body .home-action{background:rgb(24 28 38/55%);border-color:#ffffff24;backdrop-filter:blur(14px)}.home-overview-title{font-size:clamp(20px,2.3vw,25px)}.account-control{position:relative;margin-left:auto;flex:none}.account-menu{right:0;left:auto;top:44px;width:250px;padding:6px;background:#1f2128f2;border:1px solid #ffffff1f;border-radius:12px;box-shadow:0 18px 48px #05070d4d;backdrop-filter:blur(18px);z-index:60}.account-menu .account-menu-head{display:flex;align-items:center;gap:11px;padding:10px 10px 8px;border-bottom:1px solid #ffffff0f;margin-bottom:6px}.account-menu .account-menu-avatar{display:grid;place-items:center;width:34px;height:34px;flex:none;border-radius:50%;background:#33384a;color:#eef1f7;font-size:11px;font-weight:550}.account-menu .account-menu-identity{min-width:0;display:grid;gap:2px}.account-menu .account-menu-identity strong{font-size:13px;font-weight:500;color:#f2f4f8;overflow-wrap:anywhere}.account-menu .account-menu-identity small{font-size:11px;color:#9aa2b1;overflow-wrap:anywhere}.account-menu .account-menu-status{margin:0 10px 8px;padding:0;font-size:11px;color:#8f97a6}.account-menu .account-menu-links{display:grid;padding-bottom:6px;border-bottom:1px solid #ffffff0f}.account-menu .account-menu-actions{display:grid;padding:6px 0;border-bottom:1px solid #ffffff0f}.account-menu a,.account-menu button{display:flex;align-items:center;width:100%;min-height:36px;padding:8px 10px;border:0;border-radius:8px;background:transparent;color:#dfe3ea;font-size:12.5px;text-align:left;text-decoration:none;cursor:pointer}.account-menu a:hover,.account-menu button:hover:not(:disabled){background:#ffffff0d;color:#fff}.account-menu button:disabled{color:#6f7683;cursor:default;background:transparent}.account-menu .account-menu-footer{padding-top:6px}@media(max-width:600px){body.view-home .topbar{position:absolute;background:transparent}.home-hero{min-height:350px;padding-top:202px;--home-art-min-height:543px}}#home-view[data-home-scene=afternoon] .home-hero{padding-top:clamp(210px,25vw,500px)}#home-view[data-home-scene=afternoon] #home-sky{background-size:3px 3px,100% auto;background-position:top,top;background-color:#102438}@media(max-width:600px){#home-view[data-home-scene=afternoon]{--home-art:url(../media/golden-gate-portrait.7941528f.png)}#home-view[data-home-scene=afternoon] .home-hero{min-height:max(440px,calc(90vw + 100px));padding-top:max(340px,90vw);--home-art-min-height:650px}}@media(min-width:601px){#home-view[data-home-scene=afternoon] #home-sky{background-position:top,center 64px;background-color:#102438}#home-view[data-home-scene=afternoon] .home-hero{padding-top:clamp(274px,calc(25vw + 64px),564px)}}@media(min-width:601px) and (max-width:900px){body.view-home .topbar{flex-wrap:wrap;min-height:106px}body.view-home .brand{font-size:17px;flex:1;margin:0}body.view-home .home-top-actions{margin-left:auto}body.view-home .home-switcher{order:10;width:100%;max-width:100%;justify-content:space-between}body.view-home .home-switcher button{flex:1;justify-content:center}body.view-home .workspace-name{display:none}#home-view[data-home-scene=afternoon] #home-sky{background-position:top,center 106px}#home-view[data-home-scene=afternoon] .home-hero{padding-top:clamp(316px,calc(25vw + 106px),564px)}}@media(min-width:601px){body.view-home:has(#home-view[data-home-scene=afternoon]) .topbar{background-image:linear-gradient(#10243855,#10243855),url(../media/golden-gate-afternoon.3e7cea58.png);background-size:100% 100%,200% auto;background-position:top;background-repeat:no-repeat}}#history-view .submitted-jobs[hidden]{display:none}#history-view .stats{margin:20px 0;padding:16px 0}#history-view .workspace{grid-template-columns:260px minmax(0,1fr);align-items:start;overflow:hidden}#history-view .run-sidebar{padding:18px;max-height:80dvh;overflow:auto}#history-view .run-filters{display:grid;gap:12px;margin:14px 0 20px}#history-view .run-filters label{font-size:12px;color:var(--muted);display:grid;gap:6px}#history-view .run-filters select{width:100%;min-width:0;background:var(--surface);color:var(--ink);padding:9px;border:1px solid var(--line);border-radius:8px}#history-view .run-row{width:100%;text-align:left;padding:13px 10px;margin:0 0 8px}#history-view .row-top{display:flex;justify-content:space-between;gap:8px;font-size:11px;color:var(--muted)}#history-view .run-row strong{display:block;font-size:13px;margin-top:8px;overflow-wrap:anywhere}#history-view .run-row .sub{line-height:1.7;margin-bottom:0}#history-view .detail{min-width:0;padding:26px}#history-view .detail-title{align-items:start;gap:14px}#history-view .detail-title h2{font-size:21px;overflow-wrap:anywhere}#history-view .result-banner{margin:20px 0;padding:18px}#history-view .result-banner strong{font-size:16px}#history-view .result-banner p{line-height:1.7;max-width:70ch}#history-view .tabs{overflow-x:auto;gap:22px;white-space:nowrap}#history-view .tabs button{min-height:44px}#history-view .run-context .facts{grid-template-columns:repeat(2,minmax(0,1fr));gap:14px}#history-view .fact dd{overflow-wrap:anywhere;font-variant-numeric:tabular-nums}#history-view .outcome-checks{padding:0;list-style:none;margin:14px 0}#history-view .outcome-check{padding:16px 0;border-bottom:1px solid var(--line)}#history-view .outcome-check>div{display:flex;align-items:start;gap:12px}#history-view .outcome-check strong{font-size:13px;font-weight:500;overflow-wrap:anywhere}#history-view .outcome-check p{font-size:13px;color:var(--muted);margin:8px 0;overflow-wrap:anywhere}#history-view .outcome-check code{color:var(--ink);white-space:pre-wrap}#history-view .agent-handoff{background:var(--soft);border:1px solid var(--line);border-radius:12px}#history-view .agent-handoff details{margin-top:16px}#history-view pre{max-height:420px;overflow:auto;white-space:pre-wrap;overflow-wrap:anywhere}#history-view .timeline{padding-left:0}#history-view .timeline p{overflow-wrap:anywhere;line-height:1.7}#history-view .comparison-warning{line-height:1.7}@media(max-width:900px){#history-view .workspace{grid-template-columns:220px minmax(0,1fr)}#history-view .detail{padding:20px}}@media(max-width:700px){#history-view .workspace{grid-template-columns:1fr}#history-view .run-sidebar{max-height:380px}#history-view .run-filters{grid-template-columns:1fr 1fr}#history-view .detail{padding:18px}#history-view .run-context .facts{grid-template-columns:1fr}#history-view .detail-title{flex-wrap:wrap}#history-view .tabs{gap:18px}}#history-view.has-results .stats{display:grid}#history-view .run-sidebar{display:block}#history-view .section{padding:0;margin:22px 0;min-height:0}#history-view .agent-handoff{padding:20px}#history-view .tab-panel{padding-top:6px}#history-view .section-title{font-size:inherit;letter-spacing:normal}#history-view .facts{margin-top:8px}#history-view .run-test-name{font-size:11px;color:var(--muted);margin:4px 0;overflow-wrap:anywhere}#history-view .workflow-test-history{display:grid;gap:8px;margin:14px 0 22px}#history-view .workflow-test-history button{text-align:left;display:grid;grid-template-columns:1fr auto;gap:4px 14px;background:var(--surface);padding:12px}#history-view .workflow-test-history button>span:first-child{font-size:11px;color:var(--muted)}#history-view .workflow-test-history button strong{font-size:12px;font-weight:500;grid-column:1;overflow-wrap:anywhere}#history-view .workflow-test-history button .status{grid-column:2;grid-row:1/3;align-self:center}#history-view .workflow-test-history small{grid-column:1/-1;color:var(--muted)}#history-view .workflow-test-history button[aria-pressed=true]{border-color:var(--accent)}#history-view .baseline-label{display:grid;gap:8px;margin:18px 0}#history-view .mobile-run-picker{display:none}@media(max-width:700px){#history-view .stats{grid-template-columns:repeat(4,minmax(0,1fr));gap:12px}#history-view .stat{border:0;padding:0}#history-view .stat strong{font-size:23px}#history-view .stat p{font-size:10px}#history-view .run-filters{grid-template-columns:repeat(3,minmax(0,1fr));gap:8px;margin:12px 0}#history-view .run-filters select{font-size:11px;padding:8px 4px}#history-view .mobile-run-picker{display:grid;gap:6px;font-size:12px;color:var(--muted)}#history-view .mobile-run-picker select{width:100%;min-width:0;padding:9px;background:var(--surface)}#history-view #runs{display:none}#history-view .run-sidebar{max-height:none}}#history-view #message{color:var(--muted);line-height:1.7;max-width:75ch}.run-browser-evidence{margin:0 0 24px}.run-browser-evidence img{display:block;width:100%;height:auto;border:1px solid #ffffff20;border-radius:8px}.run-browser-evidence figcaption{font-size:11px;color:#8e9aa8;padding-top:8px}#configure-view .workflow-library{padding:0;border:0;background:transparent}.workflow-state-filters{display:grid;grid-template-columns:repeat(5,minmax(0,1fr));gap:.6rem}.workflow-state-filters button{display:flex;flex-direction:column;align-items:flex-start;gap:.4rem;padding:1rem;text-align:left}.workflow-state-filters b{font-size:1.5rem;font-weight:600}.workflow-state-filters span{color:var(--muted);font-size:.8rem}.workflow-state-filters [aria-pressed=true]{border-color:#7889bd;background:rgba(94,116,170,.14)}.workflow-toolbar{display:flex;align-items:flex-end;flex-wrap:wrap;gap:1rem;margin:1.5rem 0}.workflow-toolbar label{display:grid;gap:.5rem;font-size:.8rem}.workflow-toolbar .workflow-search{flex:1;margin:0}.workflow-toolbar input,.workflow-toolbar select{width:100%;min-height:2.7rem}.workflow-toolbar>span{padding-bottom:.75rem;color:var(--muted);font-size:.8rem}#workflow-candidates{display:grid;gap:.8rem}#configure-view .workflow-card{padding:1.2rem;border:1px solid var(--border);border-radius:12px;background:rgba(255,255,255,.025);display:block}.workflow-card-heading{display:flex;flex-wrap:wrap;justify-content:space-between;gap:.5rem;margin-bottom:.7rem}.workflow-category{font-size:.75rem;color:var(--muted)}.workflow-evidence-status{font-size:.75rem;border-radius:99px;padding:.25rem .6rem;background:rgba(255,255,255,.05)}.workflow-evidence-status.attention{color:#efba8d}.workflow-evidence-status.passed{color:#a3d8b5}.workflow-evidence-status.retest{color:#c5c5ef}.workflow-facts{display:grid;grid-template-columns:1fr 1.5fr;gap:1rem;margin:1rem 0}.workflow-facts dt{color:var(--muted);font-size:.75rem;margin-bottom:.3rem}.workflow-facts dd{margin:0;font-size:.85rem;line-height:1.6}.workflow-card details{font-size:.8rem}.workflow-card details button{margin:.5rem .5rem 0 0}.workflow-card .actions{margin-top:1rem}#candidate-preparation pre{white-space:pre-wrap;overflow-wrap:anywhere;max-height:22rem;overflow:auto}.workflow-empty{padding:2rem;border:1px solid var(--border);border-radius:12px}@media(max-width:600px){.workflow-state-filters{grid-template-columns:repeat(2,minmax(0,1fr))}.workflow-state-filters button:first-child{grid-column:1/-1;flex-direction:row;align-items:center}.workflow-facts{grid-template-columns:1fr}.workflow-toolbar .workflow-search{flex-basis:100%}.workflow-card .actions button{flex:1}}#configure-view .bundle-upload>summary{cursor:pointer;font-weight:500}#configure-view .bundle-upload[open]>summary{margin-bottom:1.5rem}#workflow-workspace:has(#candidate-preparation) .workflow-library{display:none}#configure-view .workflow-test-setup{padding:0;background:transparent;border:0}.test-setup-header{display:flex;justify-content:space-between;align-items:flex-start;gap:1rem;padding:1.5rem 0;border-bottom:1px solid var(--border)}.test-setup-header h2{font-size:1.4rem;margin:.5rem 0;overflow-wrap:anywhere}.test-source{color:var(--muted);font:.75rem/1.7 monospace;overflow-wrap:anywhere}.test-setup-header button{flex-shrink:0}.test-setup-layout{display:grid;grid-template-columns:minmax(0,1fr) minmax(13rem,.55fr);gap:2rem;padding:2rem 0}#test-plan-form{display:block;min-width:0}#test-plan-form h3,.test-preparation-step h3,.test-readiness h3{font-size:1rem;margin:0 0 .75rem}#test-plan-form>label{display:flex;justify-content:space-between;gap:.5rem;font-size:.85rem;margin:1.2rem 0 .5rem}#test-plan-form label span{font-size:.75rem;color:var(--muted)}#test-plan-form :is(input,textarea,select){width:100%;box-sizing:border-box;min-width:0;max-width:100%}#test-plan-form textarea{resize:vertical;line-height:1.6;padding:.8rem}#test-plan-fixtures,#test-plan-input{font-family:monospace;font-size:.8rem}#test-plan-form .actions{margin-top:1.5rem}.test-readiness{align-self:start;padding-left:1.5rem;border-left:1px solid var(--border)}.test-readiness ol{padding-left:1.2rem}.test-readiness li{margin-bottom:1.25rem;font-size:.85rem;line-height:1.6}.test-readiness li span{display:block;color:var(--muted);font-size:.8rem;margin-top:.25rem}.test-readiness ul{list-style:none;padding:0}.test-readiness h4{margin-top:1.5rem;font-size:.85rem}.test-blocker{padding:.9rem;border-left:2px solid #ac9981;background:rgba(172,153,129,.06);font-size:.8rem;line-height:1.6}.test-preparation-step{border-top:1px solid var(--border);padding:1.5rem 0}.test-preparation-step>p{color:var(--muted);max-width:65ch;font-size:.85rem;line-height:1.7}.test-preparation-step .actions{align-items:flex-start}.test-preparation-step details{flex:1;min-width:0}.test-preparation-step pre{font-size:.75rem;padding:1rem;background:rgba(255,255,255,.025)}#prepared-test-summary dl{display:grid;grid-template-columns:8rem minmax(0,1fr);gap:.75rem;font-size:.85rem;padding:1rem 0}#prepared-test-summary dd{margin:0;overflow-wrap:anywhere}#prepared-test-summary dt{color:var(--muted)}.test-file-label{display:block;font-size:.85rem;margin:1rem 0 .5rem}.test-checkbox{display:flex;gap:.6rem;align-items:flex-start;font-size:.85rem;margin:1rem 0}.test-checkbox input{width:1rem;height:1rem;flex-shrink:0}#prepared-test-status,#test-plan-status{font-size:.8rem;color:var(--muted);line-height:1.6;overflow-wrap:anywhere}@media(max-width:760px){.test-setup-layout{grid-template-columns:minmax(0,1fr);gap:1.5rem}.test-readiness{border-left:0;border-top:1px solid var(--border);padding:1.5rem 0 0}.test-setup-header{flex-wrap:wrap}.test-setup-header button{order:-1}}.test-input-details{margin:1rem 0;font-size:.85rem}.test-input-details summary{cursor:pointer;padding:.5rem 0}.test-input-details label{display:flex;justify-content:space-between;margin:1rem 0 .5rem}
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
.scenic-workspace{--ink:#edf0f4;--stage-ink:#edf0f4;--muted:#aeb7c5;--line:#ffffff17;--border:#ffffff17;--window-line:#ffffff17;--soft:#17212ce6;--surface:#17212ce6;--accent:#e5eaf2;--cobalt:#e5eaf2;--selected:#ffffff10;--h-dim:#adb6c4;--h-line:#ffffff17;position:relative;isolation:isolate;background:#111820;color:var(--ink);font-family:AgentTwin Sans,Arial,sans-serif;min-height:100dvh;padding-left:64px}.scenic-workspace>.scenic-backdrop{position:fixed;left:64px;background-position:50%;z-index:-1;opacity:.85}.scenic-workspace>.scenic-backdrop .scenic-shade{background:linear-gradient(180deg,#10172520,#10172550 40%,#10151ee8)}.scenic-workspace .scenic-rail{position:fixed;inset:0 auto 0 0;z-index:35;width:64px;max-width:none;height:100dvh;padding:18px 10px;display:flex;flex-direction:column;flex-wrap:nowrap;gap:9px;border:0;border-right:1px solid #ffffff0b;border-radius:0;background:#0b0d10;overflow:visible;box-shadow:none}.scenic-workspace .scenic-rail-brand{display:grid;place-items:center;width:44px;height:44px;margin-bottom:20px}.scenic-workspace .scenic-rail button{position:relative;width:44px;min-width:44px;height:44px;min-height:44px;flex:none;padding:0;display:flex;align-items:center;justify-content:center;gap:0;font-size:0;border:1px solid transparent;border-radius:9px;background:transparent;color:#9098a7;box-shadow:none}.scenic-workspace .scenic-rail button :is(svg,img){width:19px;height:19px;flex:none;opacity:.8}.scenic-workspace .scenic-rail button img{filter:brightness(0) invert(.75)}.scenic-workspace .scenic-rail button:hover{background:#ffffff0c;color:#fff}.scenic-workspace .scenic-rail button.active{color:#fff;border-color:#ffffff15;background:#ffffff12}.scenic-workspace .scenic-rail button.active img{filter:brightness(0) invert(1);opacity:1}.scenic-workspace .scenic-rail button.active:before{content:"";position:absolute;left:-10px;top:13px;height:18px;width:2px;background:#f2f2f0;border-radius:2px}.scenic-workspace .scenic-rail button:after{content:attr(title);position:absolute;left:52px;top:7px;white-space:nowrap;padding:6px 10px;background:#111722;border:1px solid #ffffff20;border-radius:6px;font-size:11px;color:#fff;opacity:0;pointer-events:none;transform:translateX(-4px);transition:opacity .15s,transform .15s}.scenic-workspace .scenic-rail button:is(:hover,:focus-visible):after{opacity:1;transform:none}.scenic-workspace .scenic-rail-docs{display:grid;place-items:center;width:44px;height:44px;margin-top:auto;color:#929aa8;border-radius:8px}.scenic-workspace .scenic-rail-docs svg{width:20px;height:20px}.scenic-workspace .scenic-rail-docs:hover{color:#fff;background:#ffffff0c}.scenic-workspace .scenic-rail .pill-count{position:absolute;top:3px;right:2px;font-size:8px;padding:1px 3px;min-width:12px;background:#344450}.scenic-workspace .topbar{position:sticky;inset:auto;top:0;height:64px;min-height:64px;display:flex;flex-wrap:nowrap;gap:15px;padding:0 28px;background:#151c2780;border-bottom:1px solid #ffffff12;backdrop-filter:blur(22px);z-index:20}.scenic-workspace .topbar .brand{display:flex;font-size:15px;font-weight:500;min-width:0;width:auto;margin:0;gap:8px;color:#fff;letter-spacing:-.5px}.scenic-workspace .topbar .brand img{display:none}.scenic-workspace .topbar .sidebar-toggle{display:inline-flex;background:transparent;border:0;width:32px;height:32px;min-height:32px;color:#dce2eb;padding:6px}.scenic-workspace .workspace-name{display:flex;gap:10px;font-size:11px;color:#c3c9d3;min-width:0}.scenic-workspace .workspace-name #workspace-label{max-width:150px;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.scenic-workspace .workspace-name #current-view{color:#fff;font-weight:450}.scenic-workspace .workspace-divider{color:#ffffff40}.scenic-workspace .home-top-actions{margin-left:auto;display:flex;gap:8px;align-items:center}.scenic-workspace .home-icon-btn,.scenic-workspace .home-search{background:#10182355;border:1px solid #ffffff13;border-radius:7px;color:#d1d7e1;font-size:11px;min-height:32px;box-shadow:none}.scenic-workspace .home-search{padding:6px 10px}.scenic-workspace .home-search kbd{background:transparent;border:0;color:#929aaa;font-size:9px}.scenic-workspace .account-control{margin-left:0}.scenic-workspace .workspace-avatar{width:30px;height:30px;background:#ffffff14;border:1px solid #ffffff23;color:#fff;font-size:10px;border-radius:8px}.scenic-workspace .app-layout{display:grid;grid-template-columns:190px minmax(0,1fr);margin:0;border:0;border-radius:0;box-shadow:none;background:transparent;min-height:calc(100dvh - 64px)}.scenic-workspace .app-nav{display:flex;position:sticky;top:64px;height:calc(100dvh - 64px);min-height:0;background:#131a25b8;border-right:1px solid #ffffff12;padding:24px 12px;backdrop-filter:blur(22px);overflow:auto}.scenic-workspace .sidebar-create{background:#ffffff0b;border:1px solid #ffffff18;color:#e4e9ef;border-radius:8px;font-size:11px;gap:8px;padding:9px 10px}.scenic-workspace .sidebar-project{font-size:11px;color:#c1c9d7;padding:10px}.scenic-workspace .sidebar-empty{color:#9fa9b9;font-size:11px;padding:10px;line-height:1.7}.scenic-workspace .app-nav .nav-item{font-size:11px;padding:9px 8px;color:#a9b4c5}.scenic-workspace main{background:transparent;max-width:1240px;width:100%;padding:42px 36px 48px;color:var(--ink)}body.sidebar-collapsed .scenic-workspace .app-layout,body.view-home .scenic-workspace .app-layout,body.view-settings .scenic-workspace .app-layout{grid-template-columns:minmax(0,1fr)}body.sidebar-collapsed .scenic-workspace .app-nav,body.view-home .scenic-workspace .app-nav,body.view-settings .scenic-workspace .app-nav{display:none}body.view-home .scenic-workspace main{padding:0 32px 48px;max-width:1100px;background:transparent}body.view-settings .scenic-workspace main{max-width:1040px;padding:42px 36px 48px}body.view-home .scenic-workspace .sidebar-toggle,body.view-settings .scenic-workspace .sidebar-toggle{display:none}.scenic-workspace #api-message:not(:empty){position:relative;top:auto;right:auto;margin:14px 0 0;padding:12px 14px;border:1px solid #ffffff15;border-radius:8px;background:#101822bf;font-size:11px;text-align:left;max-width:none;color:#c3ccd9;line-height:1.6;z-index:1}.scenic-workspace #home-view{min-height:calc(100dvh - 64px);padding-bottom:0}.scenic-workspace .home-hero{min-height:238px;padding:65px 20px 32px;gap:20px;background:transparent}.scenic-workspace #home-sky,.scenic-workspace .home-hero:after{display:none}.scenic-workspace .home-overview-title{font-size:27px;font-weight:500;letter-spacing:-.9px;text-shadow:0 2px 20px #06111d50}.scenic-workspace .home-assistant-bottom{width:min(490px,100%)}.scenic-workspace .assistant-entry{background:#17202dbd;border:1px solid #ffffff24;border-radius:11px;backdrop-filter:blur(22px);box-shadow:inset 0 1px 0 #ffffff0a,0 8px 28px #080e1925}.scenic-workspace .assistant-entry #assistant-dock-toggle{background:transparent;border:0;box-shadow:none;min-height:52px;padding:14px 56px 14px 16px;font-size:12px;backdrop-filter:none}.scenic-workspace .home-body{max-width:910px;padding:0 20px 30px}.scenic-workspace .home-body .home-action{background:#14202cd9;border:1px solid #ffffff1b;box-shadow:inset 0 1px 0 #ffffff08;border-radius:10px;padding:20px 22px;gap:24px;margin-bottom:28px}.scenic-workspace .home-action h2{font-size:14px;letter-spacing:-.2px;font-weight:500}.scenic-workspace .home-action p{font-size:11px;color:#adb8c8;line-height:1.6}.scenic-workspace .home-action button{background:#f0f1ef;color:#171d26;border:1px solid #fff;border-radius:7px;font-size:11px;padding:9px 13px;min-height:36px}.scenic-workspace .home-grid-head{margin-bottom:12px}.scenic-workspace .grid-hint{color:#d2d9e4;font-size:11px}.scenic-workspace #home-customize{color:#d2d9e4;background:transparent;border:0;font-size:11px;min-height:34px}.scenic-workspace .home-widgets,.scenic-workspace .widget-column{gap:12px}.scenic-workspace .home-widgets .widget{padding:19px 20px;min-height:126px;border-radius:10px;border:1px solid #ffffff14;background:#182230bf;backdrop-filter:blur(20px);box-shadow:inset 0 1px 0 #ffffff05}.scenic-workspace .home-widgets .widget h2{font-size:12px;color:#e3e8ef;font-weight:500}.scenic-workspace .home-widgets .widget .w-empty{font-size:11px;color:#acb7c8;line-height:1.75}.scenic-workspace .widget header{margin-bottom:13px}.scenic-workspace :is(.topology-panel,.environment-project,.resource-card,.map-resource-rail,.catalog-drawer,.app-declaration,.setup-card,.run-configuration,.detail,.fault-card,.terminal-panel,.workflow-area,.run-sidebar,.workflow-empty){background:#15202dde;border-color:#ffffff1a;border-radius:11px;box-shadow:inset 0 1px 0 #ffffff06;backdrop-filter:blur(18px)}.scenic-workspace :is(.topology-heading,.configuration-body){background:#172331b8;border-color:var(--line)}.scenic-workspace .topology-canvas{background-color:#101a27c9;background-image:radial-gradient(#ffffff18 .7px,transparent 0)}.scenic-workspace :is(.terminal-command,.prepared-world,.workflow-card){background:#1c2838c4;border-color:#ffffff18;border-radius:8px}.scenic-workspace :is(.heading h1,.workflow-intro h1){font-size:28px;font-weight:500;letter-spacing:-.9px}.scenic-workspace .heading .muted{color:#bac4d1}.scenic-workspace :is(button,.upload){border-radius:7px;font-weight:450}.scenic-workspace #assistant-connect,.scenic-workspace .primary.upload,.scenic-workspace button.primary{background:#f1f2ef;color:#141922;border-color:#f1f2ef}.scenic-workspace #assistant-connect:hover,.scenic-workspace button.primary:hover{background:#fff;color:#141922}.scenic-workspace :is(input,select,textarea){background:#101924d4;border-color:#ffffff26;border-radius:7px;color:#edf0f4}.scenic-workspace :is(a,button,input,select,textarea,summary):focus-visible{outline:2px solid #f0e5cf;outline-offset:3px}.scenic-workspace .home-widget-controls{background:#14202df5;border-color:#ffffff20;border-radius:11px;margin-bottom:14px}.scenic-workspace :is(.account-menu,.home-menu,.palette-box){background:#151e2cf5;border:1px solid #ffffff20;border-radius:11px;box-shadow:0 20px 60px #080d1840;backdrop-filter:blur(24px)}.scenic-workspace #settings-view .settings-section{background:#15202dde;border:1px solid #ffffff1a;border-radius:11px;backdrop-filter:blur(20px);padding:24px 26px}.scenic-workspace #settings-view{max-width:none}.scenic-workspace .settings-runtime{background:#ffffff05}.scenic-workspace .workflow-state-filters button{background:#15202dc9;border-color:#ffffff1a;padding:14px}.scenic-workspace .workflow-state-filters [aria-pressed=true]{background:#ffffff14;border-color:#ffffff40}.scenic-workspace .workflow-state-filters b{font-weight:450;font-size:22px}.scenic-workspace .workflow-card{background:#15202dde!important;border-color:#ffffff1a!important}@media(prefers-reduced-motion:no-preference){.scenic-workspace main>section:not([hidden]){animation:scenic-view-enter .3s ease both}.scenic-workspace a,.scenic-workspace button{transition:background .16s,color .16s,border-color .16s,transform .16s}@keyframes scenic-view-enter{0%{opacity:0;transform:translateY(6px)}to{opacity:1;transform:none}}}body.reduce-motion .scenic-workspace *{animation:none!important;transition:none!important}@media(max-width:1050px){.scenic-workspace .topbar{padding-inline:20px}.scenic-workspace .workspace-name{display:none}.scenic-workspace .app-layout{grid-template-columns:170px minmax(0,1fr)}.scenic-workspace main{padding:32px 24px}.scenic-workspace .home-widgets .widget{padding:16px}.scenic-workspace .home-body{padding-inline:0}}@media(max-width:700px){.scenic-workspace{padding-left:52px}.scenic-workspace>.scenic-backdrop{left:52px;background-position:40%}.scenic-workspace .scenic-rail{width:52px;padding:14px 5px}.scenic-workspace .scenic-rail button,.scenic-workspace .scenic-rail-brand,.scenic-workspace .scenic-rail-docs{width:42px;min-width:42px;height:42px}.scenic-workspace .scenic-rail button.active:before{left:-5px}.scenic-workspace .scenic-rail button:after{left:48px}.scenic-workspace .topbar{height:58px;min-height:58px;padding:0 14px;gap:10px}.scenic-workspace .topbar .brand{font-size:14px;flex:1}.scenic-workspace .home-top-actions{display:flex;gap:5px;margin-left:0}.scenic-workspace #home-expand,.scenic-workspace #home-search{display:none}.scenic-workspace .home-top-actions .home-search{padding:5px 8px;font-size:10px}.scenic-workspace .account-control{flex:none}.scenic-workspace .app-layout{display:block;min-height:calc(100dvh - 58px)}.scenic-workspace .app-nav{position:relative;top:auto;width:100%;height:auto;display:flex;flex-direction:column;padding:12px 16px;border-right:0;border-bottom:1px solid #ffffff15}.scenic-workspace .app-nav .sidebar-bottom,.scenic-workspace .app-nav .sidebar-primary{display:none}.scenic-workspace #sidebar-projects{display:flex;overflow:auto;gap:8px;padding:0}.scenic-workspace #sidebar-projects .sidebar-empty{display:block;padding:0}.scenic-workspace #sidebar-projects .sidebar-project{width:auto;flex:none}.scenic-workspace main,body.view-settings .scenic-workspace main{padding:26px 16px 36px}.scenic-workspace .topbar .sidebar-toggle{display:none}body.view-home .scenic-workspace main{padding:0 16px 32px}.scenic-workspace .home-hero{min-height:222px;padding:42px 0 28px;gap:18px}.scenic-workspace .home-overview-title{font-size:24px;line-height:1.22}.scenic-workspace .home-body{padding:0}.scenic-workspace .home-body .home-action{padding:17px;gap:14px;flex-direction:column;align-items:start;margin-bottom:22px}.scenic-workspace .home-action p{display:block}.scenic-workspace .home-widgets{grid-template-columns:1fr;gap:12px}.scenic-workspace .home-widgets .widget{padding:18px;min-height:118px}.scenic-workspace #api-message:not(:empty){margin-top:12px;font-size:10px}.scenic-workspace .home-assistant-bottom{width:100%}.scenic-workspace .assistant-entry #assistant-dock-toggle{font-size:11px;padding-left:12px}.scenic-workspace #settings-view .settings-section{padding:20px}.scenic-workspace .heading h1{font-size:25px}}@media(prefers-reduced-transparency:reduce){.scenic-workspace :is(.topbar,.widget,.home-action,.app-nav,.settings-section,.detail,.terminal-panel){background:#172331;backdrop-filter:none}}body .scenic-workspace .topbar{position:sticky;left:auto;right:auto;top:0;padding:0 28px;background:#151c2780;backdrop-filter:blur(22px);height:64px;min-height:64px;border-bottom:1px solid #ffffff12}body .scenic-workspace .topbar .brand{display:flex;width:auto;min-width:0;margin:0;font-size:15px;flex:none}.scenic-workspace .terminal-command button{color:#18202a;background:#f0f1ee;border-color:#f0f1ee;border-radius:7px}.scenic-workspace .heading .upload{color:#e6ebf3;background:#15202dd9;border-color:#ffffff25}body .scenic-workspace .heading .muted{color:#d4dbe6}body .scenic-workspace #environment-view:not(.has-discovery){padding-top:24px}@media(max-width:700px){body .scenic-workspace .topbar{padding:0 14px;height:58px;min-height:58px}body .scenic-workspace .topbar .brand{font-size:14px;flex:1}body .scenic-workspace #environment-view:not(.has-discovery){padding-top:0}}.scenic-workspace main:has(#home-view[hidden]){width:calc(100% - 56px);max-width:1180px;margin:28px auto 40px;padding:28px 32px;background:#111c29d9;border:1px solid #ffffff19;border-radius:13px;backdrop-filter:blur(22px);box-shadow:inset 0 1px 0 #ffffff05}.scenic-workspace main:has(#home-view[hidden]) #api-message:not(:empty){margin:0 0 26px;background:#ffffff04}.scenic-workspace main:has(#home-view[hidden]) .heading{margin-bottom:28px}.scenic-workspace main:has(#home-view[hidden]) :is(.workflow-library,.environment-grid){background:transparent}body .scenic-workspace .workflow-state-filters [aria-pressed=true]{background:#ffffff13;border-color:#ffffff42}body .scenic-workspace .topbar .workspace-name{order:2}body .scenic-workspace .topbar .home-top-actions{order:3}body .scenic-workspace .topbar .account-control{order:4}@media(max-width:700px){.scenic-workspace main:has(#home-view[hidden]){width:calc(100% - 24px);margin:12px auto 24px;padding:20px 16px;border-radius:10px}.scenic-workspace main:has(#home-view[hidden]) #api-message:not(:empty){font-size:10px;margin-bottom:20px}.scenic-workspace .account-menu{right:0;max-width:calc(100vw - 80px)}}@media(prefers-reduced-transparency:reduce){.scenic-workspace main:has(#home-view[hidden]){background:#142131;backdrop-filter:none}}body[data-v2-arrival=true] .scenic-workspace{animation:v2-arrival .6s ease both}@keyframes v2-arrival{0%{opacity:0}to{opacity:1}}body.reduce-motion .scenic-workspace[data-v2-arrival=true]{animation:none}
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
@import url("https://fonts.googleapis.com/css2?family=Inter:wght@400;450;500;550;600;650;700&family=IBM+Plex+Mono:wght@400;450;500&display=swap");:root{--page:#0a0c0e;--page-line:rgba(255,255,255,.045);--ink:#eef1f2;--muted:#97a1a5;--hair:rgba(255,255,255,.12);--accent:#c9e2f7;--accent-ink:#0d2233;--app:#f5f6f6;--paper:#fff;--app-ink:#14191b;--app-muted:#6c7679;--app-line:#e3e7e7;--app-line-soft:#eef1f1;--primary:#101416;--green:#1e7a4c;--soft:#e6f2ea;--amber:#8f6712;--amber-soft:#faf1dc;--red:#bb463a;--red-soft:#fbeae6;--mono:"IBM Plex Mono",monospace;--radius:12px;--window-radius:20px}*{box-sizing:border-box}body{margin:0;background-color:var(--page);color:var(--ink);background-image:linear-gradient(var(--page-line) 1px,transparent 1px),linear-gradient(90deg,var(--page-line) 1px,transparent 1px);background-size:56px 56px;font-family:Inter,sans-serif;font-size:15px;-webkit-font-smoothing:antialiased}button,input,select{font:inherit}button{cursor:pointer}button:disabled{cursor:not-allowed;opacity:.4}button:focus-visible,input:focus-visible,select:focus-visible{outline:3px solid #7fb3d5;outline-offset:3px}button{transition:background .16s,color .16s,border-color .16s}p{line-height:1.6;margin:0}a{color:inherit}h1,h2,h3{font-weight:600}.announce{display:flex;align-items:center;justify-content:center;gap:9px;background:#d8e5f0;color:#122430;font-size:12.5px;font-weight:500;padding:9px 20px}.announce .dot{background:#2f7d55}.topnav{justify-content:space-between;gap:24px;padding:18px 40px;border-bottom:1px solid var(--hair)}.brand,.topnav{display:flex;align-items:center}.brand{gap:9px;font-weight:650;font-size:19px;letter-spacing:-.6px;color:#fff}.brandmark{display:block;width:28px;height:28px;flex:none;border-radius:8px}.brand small{font:10px var(--mono);letter-spacing:0;background:rgba(255,255,255,.08);padding:4px 5px;border-radius:4px;margin-left:2px;color:var(--muted)}.navlinks{display:flex;gap:26px;font-size:13.5px;color:#b4bdc0}.navlink{cursor:default}.navlink.active{color:#fff}.nav-right{display:flex;align-items:center;gap:12px}.demo-pill{display:inline-flex;align-items:center;gap:6px;font:11px var(--mono);border:1px solid var(--hair);border-radius:999px;padding:5px 10px;color:#cfd6d8;background:rgba(255,255,255,.03)}.dot{width:6px;height:6px;border-radius:50%;background:#45a56e;display:inline-block}.avatar{display:grid;place-items:center;background:#1b2023;border:1px solid var(--hair);width:30px;height:30px;border-radius:8px;font-size:11px;font-weight:600;color:#e8ecec}.hero{display:flex;align-items:flex-end;justify-content:space-between;gap:32px;padding:52px 40px 26px;max-width:1560px;margin:0 auto}.hero-inner{max-width:760px}.hero h1{font-size:clamp(30px,4vw,46px);line-height:1.06;letter-spacing:-.035em;margin:12px 0 14px;color:#fff}.hero .lead{color:var(--muted);font-size:15.5px;max-width:620px}.eyebrow{font:11px var(--mono);letter-spacing:1.6px;text-transform:uppercase;color:var(--muted)}.hero-side{flex-shrink:0;padding-bottom:6px}.appwindow{display:grid;grid-template-columns:236px minmax(0,1fr);background:var(--app);border:1px solid var(--hair);border-radius:var(--window-radius);margin:0 40px 52px;max-width:1560px;box-shadow:0 40px 90px rgba(0,0,0,.5);color:var(--app-ink)}@media(min-width:1641px){.appwindow{margin-left:auto;margin-right:auto}}.sidebar{background:var(--paper);border-right:1px solid var(--app-line);padding:22px 14px;border-radius:var(--window-radius) 0 0 var(--window-radius);display:flex;flex-direction:column}.workspace{border:1px solid var(--app-line);border-radius:10px;padding:12px;display:flex;gap:10px;align-items:center;font-size:13px}.sidebar .avatar{background:#eef1f1;border-color:var(--app-line);color:var(--app-ink)}.secondary,.subtle{color:var(--app-muted)}.secondary{font-size:11px;margin-top:3px}.sidebar .secondary{margin-top:2px}.nav-label{font:10.5px var(--mono);letter-spacing:1.6px;text-transform:uppercase;color:var(--app-muted);padding:0 10px;margin:26px 0 12px}.navbtn{width:100%;display:flex;align-items:center;gap:11px;background:transparent;border:0;text-align:left;padding:11px 10px;border-radius:9px;color:#5f6a6d;font-size:13.5px;margin-bottom:3px}.navbtn:hover:not(:disabled){background:#f2f5f5}.navbtn.active{background:var(--primary);color:#fff;font-weight:550}.navnum{font:11px var(--mono);width:20px;color:#98a1a3}.navbtn.active .navnum{color:#9fb6c4}.sidebar-bottom{margin-top:auto;padding:26px 10px 6px;font-size:12.5px;line-height:1.7}.sidebar-bottom .demo-pill{border-color:var(--app-line);background:#fafbfb;color:#5c6669}.sidebar-bottom .demo-pill .dot{background:#3f9c6a}.sidebar-bottom .subtle{color:var(--app-muted)}.main{min-width:0;display:flex;flex-direction:column}.topbar{height:62px;border-bottom:1px solid var(--app-line);padding:0 28px;justify-content:space-between;font-size:12.5px;background:transparent}.crumb,.topbar{display:flex;align-items:center}.crumb{gap:12px;color:var(--app-ink)}.topright{display:flex;align-items:center;gap:12px}.topright .demo-pill{border-color:var(--app-line);color:#5c6669;background:#fff}.main-inner{max-width:1260px;width:100%;margin:0 auto;padding:24px 28px 32px;flex:1}.steps{display:grid;grid-template-columns:repeat(5,1fr);padding:6px 0 24px}.step{display:flex;align-items:center;gap:8px;background:transparent;border:0;text-align:left;font-size:12px;color:#8b9598;position:relative;padding:0 10px 0 0}.step:not(:last-child):after{content:"";height:1px;background:var(--app-line);flex:1;margin:0 10px}.step b{font:11px var(--mono);border:1px solid #d7dddd;display:grid;place-items:center;width:22px;height:22px;border-radius:50%;flex-shrink:0;background:#fff}.step.current{color:var(--app-ink);font-weight:600}.step.current b{background:var(--primary);color:#fff;border-color:var(--primary)}.step.done b{background:var(--soft);color:var(--green);border-color:var(--soft)}.grid{display:grid;grid-template-columns:minmax(0,1fr) 296px;gap:18px}.stacked{display:flex;flex-direction:column;gap:18px}.panel{background:var(--paper);border:1px solid var(--app-line);border-radius:var(--radius);overflow:hidden}.panel-head{padding:16px 20px;border-bottom:1px solid var(--app-line);display:flex;justify-content:space-between;align-items:center;gap:12px}.panel-head h2{font-size:13.5px;font-weight:600;margin:0;letter-spacing:-.1px}.panel-head span{font:10.5px var(--mono);color:var(--app-muted)}.panel-body{padding:20px}.side-title{font-size:14.5px;font-weight:600;margin:0 0 8px}.aside-note{font-size:12.5px;color:var(--app-muted);line-height:1.65}.detail-row{display:flex;justify-content:space-between;gap:10px;padding:11px 0;border-bottom:1px solid var(--app-line-soft);font-size:12px}.detail-row:last-child{border:0}.detail-row span:first-child{color:var(--app-muted)}.callout{background:#f2f6f8;padding:12px 13px;border-radius:9px;margin-top:16px;font-size:12px;line-height:1.65;color:#54666e}.callout.amber{color:#8a6a2c}.callout.amber,.notice{background:var(--amber-soft)}.notice{padding:11px 16px;border:1px solid #ecdfbd;border-radius:9px;margin-bottom:18px;font-size:12px;color:#8c743b;display:flex;align-items:center;gap:10px}.full{width:100%;margin-top:18px}.safe-note{font-size:11px;color:var(--app-muted);text-align:center;margin-top:11px}.text-green{color:var(--green)}.text-red{color:var(--red)}.bottom-note{display:flex;justify-content:space-between;margin:20px 0 4px;font:10px var(--mono);color:#8d989a;letter-spacing:.4px}.btn{border:1px solid var(--app-line);background:#fff;color:var(--app-ink);padding:10px 16px;border-radius:10px;font-size:13.5px;font-weight:550;display:inline-flex;justify-content:center;align-items:center;gap:8px;white-space:nowrap}.btn:hover:not(:disabled){background:#f4f6f6}.btn.primary{background:var(--primary);color:#fff;border-color:var(--primary)}.btn.primary:hover:not(:disabled){background:#232a2d}.btn.small{padding:7px 10px;font-size:12px}.label{display:block;font-size:12.5px;margin:18px 0 8px;font-weight:550}.field{width:100%;background:#fff;border:1px solid var(--app-line);border-radius:9px;padding:10px 12px;color:var(--app-ink);font-size:13.5px}.toggle-row{display:flex;align-items:flex-start;gap:10px;padding:14px 0;border-bottom:1px solid var(--app-line-soft);font-size:13.5px}.toggle-row input{accent-color:var(--primary);margin-top:4px}.toggle-row p{font-size:12px;color:var(--app-muted);margin-top:4px}.row-buttons{display:flex;gap:10px;flex-wrap:wrap;margin-top:18px}.muted-link{background:none;border:0;color:var(--app-ink);font-size:12px;padding:0;text-decoration:underline}.badge{display:inline-flex;align-items:center;gap:5px;border-radius:6px;padding:4px 8px;background:var(--soft);color:var(--green);font:11px var(--mono);white-space:nowrap}.badge.amber{background:var(--amber-soft);color:var(--amber)}.badge.gray{background:#eef1f1;color:#6f7a7c}.badge.red{background:var(--red-soft);color:var(--red)}.history{display:flex;justify-content:space-between;align-items:center;padding:13px 0;border-bottom:1px solid var(--app-line-soft);gap:12px;font-size:12px}.avatar{flex-shrink:0}.connection-header{display:flex;gap:15px;align-items:center;margin-bottom:20px}.large-icon{width:48px;height:48px;background:#eef2f3;display:grid;place-items:center;border-radius:12px;color:#33454c;font:17px var(--mono);flex-shrink:0}.connection-header h2{font-size:18px;letter-spacing:-.4px;margin:0 0 5px}.connection-header p{font-size:12.5px;color:var(--app-muted)}.customer-list{display:flex;flex-direction:column;gap:9px;margin:6px 0 4px}.select-card{display:flex;align-items:center;gap:13px;padding:13px 15px;border:1px solid var(--app-line);border-radius:11px;cursor:pointer;background:#fff;transition:border-color .15s,background .15s}.select-card:hover{border-color:#bcc6c7}.select-card.selected{border-color:var(--primary);box-shadow:0 0 0 1px var(--primary) inset;background:#fbfcfc}.select-card .large-icon{width:38px;height:38px;font-size:14px;border-radius:10px}.select-card input{accent-color:var(--primary);position:absolute;opacity:0;pointer-events:none}.select-card .content{flex:1;min-width:0}.card-top{display:flex;align-items:center;justify-content:space-between;gap:10px}.select-card strong{font-size:13.5px;font-weight:600;letter-spacing:-.1px}.select-card p{font-size:12px;color:var(--app-muted);margin-top:3px}.card-workflow{font-family:var(--mono);font-size:11px!important;color:#5b6a6e!important}.selected-detail{margin-top:16px}.map{min-height:340px;background-image:radial-gradient(#dee4e4 1px,transparent 0);background-size:16px 16px;display:flex;flex-direction:column;align-items:center;justify-content:center;padding:28px 20px;position:relative}.map-label{position:absolute;top:15px;left:20px;font:10px var(--mono);letter-spacing:1.2px;color:#8d999b}.rootnode{border:1px solid #c3cccc;background:#fff;border-radius:11px;padding:13px 20px;display:flex;gap:12px;align-items:center;box-shadow:0 6px 16px rgba(16,22,24,.06);position:relative}.rootnode:after{content:none}.node-title{font-size:13.5px;font-weight:600}.node-sub{font:10px var(--mono);color:var(--app-muted);margin-top:4px}.service-icon{width:30px;height:30px;border-radius:8px;display:grid;place-items:center;background:#eef2f2;font:600 12px var(--mono);color:#3f545a;flex-shrink:0}.service-icon img{display:block;width:18px;height:18px;object-fit:contain}.services{display:flex;flex-wrap:wrap;gap:10px;position:relative;width:100%;justify-content:center;padding-top:0;margin-top:22px}.services:before{content:none}.service{position:relative;border:1px solid #d6dcdc;border-radius:10px;padding:12px 10px;background:#fff;flex:1 1 122px;min-width:0;max-width:168px;text-align:left}.service:before{content:none}.service .node-title{font-size:12px;margin-top:9px}.service .node-sub{font-size:9px}.service .badge{margin-top:9px;font-size:9px;padding:3px 6px}.map-footer{padding:12px 20px;border-top:1px solid var(--app-line);display:flex;gap:18px;font-size:11px;color:var(--app-muted)}.key{display:inline-flex;gap:6px;align-items:center}.sq{height:7px;width:7px;background:#5f9c81;border-radius:2px}.sq.amber{background:#d3ab5e}.sq.gray{background:#bcc4c5}.table-scroll{overflow-x:auto}.resource-table{width:100%;border-collapse:collapse;font-size:12.5px}.resource-table th{text-align:left;font:10px var(--mono);text-transform:uppercase;color:var(--app-muted);padding:12px 20px;background:#fafbfb;border-bottom:1px solid var(--app-line);letter-spacing:.7px}.resource-table td{padding:14px 20px;border-bottom:1px solid var(--app-line-soft)}.resource-table tr:last-child td{border:0}.resource-name{display:flex;align-items:center;gap:11px}.resource-name .service-icon{width:26px;height:26px;font-size:10px}.resource-name .service-icon img{width:15px;height:15px}.metric-grid{display:grid;grid-template-columns:repeat(3,1fr);gap:12px;margin-bottom:18px}.metric{background:var(--paper);border:1px solid var(--app-line);border-radius:var(--radius);padding:17px 19px}.metric strong{display:block;font-size:24px;font-weight:600;letter-spacing:-1px;margin-bottom:4px}.metric span{font-size:12px;color:var(--app-muted)}.fault-grid{display:grid;grid-template-columns:1fr 1fr;gap:10px}.fault{border:1px solid var(--app-line);border-radius:11px;padding:15px;background:#fff;display:block;cursor:pointer;transition:border-color .15s,background .15s}.fault:hover{border-color:#bcc6c7}.fault:has(input:checked){background:#fdf8ee;border-color:#cfa860}.fault-head{display:flex;align-items:center;justify-content:space-between;font-size:12.5px;font-weight:600}.fault input{accent-color:#a47828}.fault p{font-size:11.5px;color:var(--app-muted);margin:8px 0}.fault code{font:10px var(--mono);color:#9a824e}.code{background:#12171a;color:#cfe0ec;padding:19px;border-radius:10px;font:11.5px/1.9 var(--mono);white-space:pre-wrap;overflow-wrap:anywhere;margin:14px 0}.code .comment{color:#7d919d}.result-banner{padding:18px 21px;display:flex;align-items:center;gap:14px;background:#edf6f0;border-bottom:1px solid var(--app-line)}.result-banner.failed{background:var(--red-soft)}.result-banner h2{font-size:17px;margin:0 0 4px;letter-spacing:-.3px}.result-banner p{font-size:12.5px;color:var(--app-muted)}.result-icon{height:34px;width:34px;display:grid;place-items:center;border-radius:50%;background:#d8ebdf;color:var(--green);flex-shrink:0}.failed .result-icon{background:#f5dcd3;color:var(--red)}.decision-summary{display:grid;grid-template-columns:1fr 1fr;border-bottom:1px solid var(--app-line)}.decision-summary>div{padding:17px 20px;min-width:0}.decision-summary>div+div{border-left:1px solid var(--app-line)}.decision-summary span{display:block;color:var(--app-muted);font:10px var(--mono);text-transform:uppercase;letter-spacing:.08em;margin-bottom:7px}.decision-summary strong{font-size:12.5px;line-height:1.5;font-weight:600;overflow-wrap:anywhere}.diagnosis-item{border-top:1px solid var(--app-line);padding:18px 0}.diagnosis-item:first-of-type{margin-top:14px}.diagnosis-item:last-child{padding-bottom:0}.diagnosis-item h3{font-size:15px;letter-spacing:-.2px;margin:8px 0}.diagnosis-item p{font-size:12.5px;line-height:1.55;color:var(--app-muted);margin:7px 0}.diagnosis-item p strong{color:var(--app-ink)}.action-steps{display:grid;gap:10px;margin:0 0 19px}.action-steps>div{display:flex;align-items:flex-start;gap:11px;font-size:12.5px;line-height:1.45}.action-steps b{flex:0 0 21px;height:21px;display:grid;place-items:center;border-radius:50%;background:#e4eeeb;color:#25584a;font:11px var(--mono)}.fix-prompt{max-height:270px;overflow:auto;user-select:text}.tabs{display:flex;gap:20px;padding:0 20px;border-bottom:1px solid var(--app-line)}.tab{border:0;border-bottom:2px solid transparent;background:none;padding:13px 0;color:var(--app-muted);font-size:12.5px}.tab.active,.tab:hover{color:var(--app-ink)}.tab.active{border-bottom-color:var(--primary);font-weight:600}.timeline{padding:6px 20px}.event{display:grid;grid-template-columns:50px 12px 1fr auto;gap:12px;padding:15px 0;border-bottom:1px solid var(--app-line-soft);align-items:start}.event:last-child{border:0}.event time{font:11px var(--mono);color:var(--app-muted);padding-top:3px}.event .line-dot{width:7px;height:7px;background:#6d9a89;border-radius:50%;margin-top:5px}.event.error .line-dot{background:#c97a5f}.event strong{font-size:12.5px;font-weight:600}.event p{font-size:11.5px;margin-top:4px}.empty,.event p{color:var(--app-muted)}.empty{text-align:center;padding:50px 24px}.empty h2{color:var(--app-ink);font-size:19px;margin:0 0 8px}.progress{height:3px;background:#e6ecec;overflow:hidden;margin-top:16px;border-radius:2px}.progress div{height:100%;width:40%;background:var(--primary);animation:scan 1.2s ease-in-out infinite}@keyframes scan{0%{transform:translateX(-100%)}to{transform:translateX(350%)}}.sr-only{position:absolute;width:1px;height:1px;padding:0;margin:-1px;overflow:hidden;clip:rect(0,0,0,0);white-space:nowrap;border:0}.mobile-brand{display:none}.toast{position:fixed;bottom:24px;left:50%;transform:translateX(-50%);background:#fff;color:var(--app-ink);border:1px solid var(--app-line);box-shadow:0 18px 40px rgba(0,0,0,.35);padding:12px 20px;border-radius:10px;font-size:13px;z-index:4}@media(max-width:1220px){.grid{grid-template-columns:minmax(0,1fr) 260px}.services{gap:7px}.service{padding:10px 8px}.navlinks{display:none}}@media(max-width:980px){.hero{padding:36px 24px 20px;flex-direction:column;align-items:flex-start;gap:14px}.appwindow{margin:0 16px 36px;grid-template-columns:196px minmax(0,1fr)}.grid{grid-template-columns:1fr}.grid>aside{display:grid;grid-template-columns:1fr 1fr;gap:14px}.grid>aside>.panel{height:100%}.topnav{padding:14px 24px}.main-inner{padding:20px 18px 26px}.step:after{display:none}}@media(max-width:700px){.decision-summary{grid-template-columns:1fr}.decision-summary>div+div{border-left:0;border-top:1px solid var(--app-line)}.decision-summary>div{padding:13px 16px}.appwindow{display:block;margin:0 10px 28px}.sidebar{display:none}.mobile-brand{display:block;font-weight:650}.topbar{padding:0 16px;height:56px}.crumb{display:none}.main-inner{padding:16px 14px 22px}.steps{gap:6px;overflow:auto;padding:8px 0 20px}.step{flex-direction:column;text-align:center;gap:6px;padding:0;font-size:10px}.step b{width:22px;height:22px}.grid>aside{display:flex;flex-direction:column}.hero h1{font-size:28px}.hero{padding:28px 16px 16px}.services{flex-wrap:wrap;gap:10px;margin-top:0;padding-top:22px}.rootnode:after,.service:before,.services:before{display:none}.service{min-width:42%;max-width:none;flex:1}.map{padding:34px 16px 20px}.fault-grid{grid-template-columns:1fr}.metric{padding:14px}.metric strong{font-size:22px}.metric span{font-size:11px}.event{grid-template-columns:40px 7px 1fr;gap:9px}.event>.badge{grid-column:3;justify-self:start}.panel-body,.panel-head{padding:16px}.resource-table td,.resource-table th{padding:12px}.bottom-note{font-size:9px;gap:10px}.announce{font-size:11.5px}}@media(prefers-reduced-motion:reduce){*{animation:none!important;transition:none!important}}.large-icon img,.select-card .large-icon img,.service-icon img{width:60%;height:60%;object-fit:contain}.select-card .large-icon{background:#fff;border:1px solid var(--app-line-soft)}.card-runs{list-style:none;margin:8px 0 0;padding:8px 0 0;border-top:1px solid var(--app-line-soft);display:flex;flex-direction:column;gap:4px}.card-runs li{font:11px/1.45 var(--mono);color:#5b6a6e;padding-left:12px;position:relative}.card-runs li:before{content:"▸";position:absolute;left:0;color:#9aa6a8}.run-list{display:flex;flex-direction:column;gap:8px;margin:8px 0 16px}.run-card{position:relative;display:flex;align-items:flex-start;gap:11px;padding:11px 13px;border:1px solid var(--app-line);border-radius:11px;cursor:pointer;background:#fff;transition:border-color .15s,background .15s}.run-card:hover{border-color:#bcc6c7}.run-card.selected{border-color:var(--primary);box-shadow:0 0 0 1px var(--primary) inset;background:#fbfcfc}.run-card input{position:absolute;opacity:0;pointer-events:none}.run-mark{font:11px var(--mono);color:#9aa6a8;line-height:1.6;flex-shrink:0}.run-card.selected .run-mark{color:var(--primary)}.run-body{flex:1;min-width:0;display:flex;flex-direction:column;gap:5px}.run-body strong{font-size:13px;font-weight:600;letter-spacing:-.1px}.run-body small{font:11px/1.4 var(--mono);color:var(--app-muted);word-break:break-word}.dashboard-link{display:block;padding:12px 40px;background:#1a2c23;color:#e2eee6;font:13px sans-serif;text-align:center}
|
|
@@ -1,4 +1,4 @@
|
|
|
1
|
-
<!DOCTYPE html><!--
|
|
1
|
+
<!DOCTYPE html><!--BbTZs0rKnsmj45peSnlwJ--><html lang="en"><head><meta charSet="utf-8"/><meta name="viewport" content="width=device-width, initial-scale=1"/><link rel="preload" as="image" href="assets/logo/mark-twin-rings.svg"/><link rel="preload" as="image" href="assets/icons/ui/stack-simple.svg"/><link rel="preload" as="image" href="assets/icons/ui/git-branch.svg"/><link rel="preload" as="image" href="assets/icons/ui/clock.svg"/><link rel="preload" as="image" href="assets/icons/ui/plugs-connected.svg"/><link rel="stylesheet" href="assets/next/static/css/81a1668ab34a36e8.css" data-precedence="next"/><link rel="stylesheet" href="assets/next/static/css/5d8899aaed08d7f2.css" data-precedence="next"/><link rel="stylesheet" href="assets/next/static/css/eea0966f05042bde.css" data-precedence="next"/><link rel="stylesheet" href="assets/next/static/css/0cf03e33b963e5cb.css" data-precedence="next"/><link rel="stylesheet" href="assets/next/static/css/11f70fd04660da57.css" data-precedence="next"/><link rel="stylesheet" href="assets/next/static/css/dd3fb06005e18149.css" data-precedence="next"/><link rel="preload" as="script" fetchPriority="low" href="assets/next/static/chunks/webpack-44457f45df749a89.js"/><script src="assets/next/static/chunks/6f3ce29d-af1469ba72f5d3e4.js" async=""></script><script src="assets/next/static/chunks/4816-45f42396ec2135cc.js" async=""></script><script src="assets/next/static/chunks/main-app-c83f3671ad6b824a.js" async=""></script><script src="assets/next/static/chunks/app/layout-09868e53e4f0541f.js" async=""></script><script src="assets/next/static/chunks/3916-2698a1a3ecb8649f.js" async=""></script><script src="assets/next/static/chunks/1981-2ce2c5edd154524a.js" async=""></script><script src="assets/next/static/chunks/app/dashboard/page-945c916b24f48675.js" async=""></script><meta name="theme-color" content="#090909"/><link rel="icon" type="image/svg+xml" href="assets/logo/favicon.svg?v=white-rings"/><link rel="preload" href="assets/fonts/syne-400.ttf" as="font" type="font/ttf" crossorigin="anonymous"/><meta name="agenttwin-api-url" content="https://api.agenttwin.si"/><title>Workspace | AgentTwin</title><meta name="description" content="Discover your project, test workflows and inspect recorded results."/><script>(function(){
|
|
2
2
|
var attribute='bis_skin_checked';
|
|
3
3
|
function clean(node){
|
|
4
4
|
if(node.nodeType!==1)return;
|
|
@@ -13,4 +13,4 @@
|
|
|
13
13
|
}else record.addedNodes.forEach(clean);
|
|
14
14
|
});
|
|
15
15
|
}).observe(document.documentElement,{subtree:true,childList:true,attributes:true,attributeFilter:[attribute]});
|
|
16
|
-
})();</script><script>(function(){try{if(location.pathname.indexOf('/docs')!==0)return;var s=localStorage.getItem('agenttwin:docs-theme');var t=s==='light'||s==='dark'?s:(window.matchMedia('(prefers-color-scheme: light)').matches?'light':'dark');var d=document.documentElement;d.dataset.docsTheme=t;d.style.colorScheme=t;}catch(e){}})();</script><script defer="" data-domain="agenttwin.si" src="https://analytics.hirealpha.chat/js/script.js"></script><script src="assets/next/static/chunks/polyfills-42372ed130431b0a.js" noModule=""></script></head><body><div hidden=""><!--$--><!--/$--></div><a class="skip" href="#main">Skip to content</a><div class="app-frame"><p class="announce-strip"><span class="record-dot"></span>AgentTwin / workflow testing</p><header class="topbar"><a class="brand" href="#home" aria-label="AgentTwin home"><img src="assets/logo/mark-twin-rings.svg" width="23" height="23" alt=""/>AgentTwin</a><button id="sidebar-toggle" class="sidebar-toggle" type="button" aria-label="Toggle sidebar" aria-expanded="true"><svg viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="1.6" aria-hidden="true"><rect x="3" y="4" width="18" height="16" rx="3"></rect><path d="M9 4v16"></path></svg></button><nav class="home-switcher" aria-label="Switch view"><button type="button" data-view="home" class="active" aria-current="page"><svg viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="1.6" aria-hidden="true"><path d="m3 10.5 9-7.5 9 7.5"></path><path d="M5.5 9v10.5h13V9"></path></svg>Home<span class="pill-count" id="home-badge" hidden="">0</span></button><button type="button" data-view="environment"><img src="assets/icons/ui/stack-simple.svg" alt=""/>Environment</button><button type="button" data-view="configure"><img src="assets/icons/ui/git-branch.svg" alt=""/>Workflows</button><button type="button" data-view="history"><img src="assets/icons/ui/clock.svg" alt=""/>Runs</button><button type="button" data-view="settings"><img src="assets/icons/ui/stack-simple.svg" alt=""/>Settings</button></nav><div class="home-top-actions"><a href="/login/" data-auth-link="true" class="home-search">Sign in</a><button type="button" id="home-search" class="home-search" aria-label="Search"><svg viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="1.6" aria-hidden="true"><circle cx="11" cy="11" r="6.5"></circle><path d="m16 16 4.5 4.5"></path></svg><span class="hs-label">Search</span><kbd>⌘K</kbd></button><div class="home-bell-wrap"><button type="button" id="home-bell" class="home-icon-btn" aria-label="Notifications" aria-haspopup="true" aria-expanded="false" aria-controls="home-bell-menu"><svg viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="1.6" aria-hidden="true"><path d="M18 9a6 6 0 1 0-12 0c0 6-2 7-2 7h16s-2-1-2-7"></path><path d="M10 20a2.2 2.2 0 0 0 4 0"></path></svg><span class="bell-badge" id="bell-badge" hidden="">0</span></button><div id="home-bell-menu" class="home-menu bell-menu" hidden=""><p class="menu-label">Notifications</p><div id="bell-items"></div></div></div><button type="button" id="home-expand" class="home-icon-btn" aria-label="Toggle full screen"><svg viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="1.6" aria-hidden="true"><path d="M9 3H3v6M15 3h6v6M9 21H3v-6M15 21h6v-6"></path></svg></button></div><div class="workspace-name"><span id="workspace-label">Workspace</span><span class="workspace-divider">/</span><span id="current-view">Environment</span></div><div class="account-control"><button type="button" id="account-toggle" class="workspace-avatar" aria-label="Open account menu" aria-expanded="false" aria-controls="account-menu">AT</button><div id="account-menu" class="account-menu" hidden=""><div class="account-menu-head"><span class="account-menu-avatar" aria-hidden="true">AT</span><span class="account-menu-identity"><strong id="account-user-name">Your name not set</strong><small id="account-workspace">My workspace</small></span></div><p id="account-menu-status" class="account-menu-status muted">Not connected</p><div class="account-menu-links"><a href="/login/" data-auth-link="true">Sign in</a><a href="/signup/" data-auth-link="true">Create an account</a><a href="/onboarding/">Connect a repository</a></div><div class="account-menu-actions"><button type="button" data-action="settings">Account & settings</button><button type="button" data-action="history">View runs</button></div><div class="account-menu-footer"><button type="button" id="account-disconnect" disabled="">Sign out</button></div></div></div></header><div class="app-layout"><nav class="project-tabs app-nav" aria-label="Project views"><div class="sidebar-primary"><button id="sidebar-discover" class="sidebar-create" type="button"><svg viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="1.6" aria-hidden="true"><path d="M12 5v14M5 12h14"></path></svg>Connect project</button></div><div id="sidebar-projects" aria-label="Your repositories"></div><div class="sidebar-bottom"><a class="nav-item" href="https://agenttwin.si/docs/"><svg class="nav-icon" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="1.6" aria-hidden="true"><path d="M12 5v15M12 5C9 3 5 3 2 4v15c3-1 7-1 10 1M12 5c3-2 7-2 10-1v15c-3-1-7-1-10 1"></path></svg>Documentation<span class="nav-external" aria-hidden="true">↗</span></a></div></nav><main id="main"><p id="api-message" class="coverage" role="status" aria-live="polite"></p><section id="home-view" hidden="" aria-label="Agent home"><div class="home-hero"><div id="home-sky" aria-hidden="true"></div><h1 class="home-overview-title">What should your agent test?</h1><section class="home-assistant-bottom" aria-label="Workflow assistant"><div class="assistant-entry"><button type="button" id="assistant-dock-toggle" aria-expanded="false" aria-controls="assistant-dock-panel"><span class="assistant-entry-label-desktop">Ask about a workflow or test result</span><span class="assistant-entry-label-mobile">Ask AgentTwin</span><span aria-hidden="true">↑</span></button><button type="button" id="assistant-voice-entry" class="voice-button" aria-label="Dictate a message" title="Dictate a message"><svg viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="1.7" aria-hidden="true"><rect x="9" y="3" width="6" height="12" rx="3"></rect><path d="M5 10v2a7 7 0 0 0 14 0v-2M12 19v3M8 22h8"></path></svg></button></div><div class="hero-content" id="assistant-dock-panel" hidden=""><button type="button" id="assistant-dock-close" aria-label="Minimize workflow assistant">Minimize ↓</button><div class="home-composer" role="form" aria-label="Workflow assistant"><div class="assistant-heading"><strong>Ask AgentTwin</strong><span id="assistant-project-context"></span></div><p id="assistant-connection-status" role="status"></p><button type="button" id="assistant-connect">Connect your account</button><label class="visually-hidden" for="composer-input">Ask about your workflow</label><textarea id="composer-input" rows="3" placeholder="What would you like to test?" spellCheck="false"></textarea><div class="composer-row"><span class="assistant-send-hint">Ask about your workflows or run results</span><button type="button" id="composer-voice" class="voice-button" aria-label="Dictate a message" title="Dictate a message"><svg viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="1.7" aria-hidden="true"><rect x="9" y="3" width="6" height="12" rx="3"></rect><path d="M5 10v2a7 7 0 0 0 14 0v-2M12 19v3M8 22h8"></path></svg></button><button type="button" class="composer-send" id="composer-send" aria-label="Send message">Send ↑</button></div><div id="chat-thread" class="chat-thread" aria-label="Workflow conversation" hidden=""></div><p id="composer-note" class="composer-note" role="status"></p></div></div></section></div><div class="home-body"><section id="home-next-step" class="next-step home-action" aria-label="Next step"></section><div class="home-grid-head"><span class="grid-hint">Your workspace</span><button type="button" id="home-customize" aria-expanded="false" aria-controls="home-widget-controls"><svg viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="1.5" aria-hidden="true"><rect x="4" y="4" width="6.5" height="6.5" rx="1.5"></rect><rect x="13.5" y="4" width="6.5" height="6.5" rx="1.5"></rect><rect x="4" y="13.5" width="6.5" height="6.5" rx="1.5"></rect><rect x="13.5" y="13.5" width="6.5" height="6.5" rx="1.5"></rect></svg>Customize</button></div><div id="home-widget-controls" class="home-widget-controls" role="region" aria-label="Customize home" hidden=""></div><div class="home-widgets"><div class="widget-column"><article class="widget area-project" id="widget-project"><header><h2>Project discovery</h2></header><div class="w-body" id="project-body"></div></article><article class="widget area-git" id="widget-git"><header><h2>Git activity</h2><span id="git-meta" class="w-head-meta"></span></header><div class="w-body" id="git-body"></div></article><article class="widget area-working" id="widget-working"><header><span class="w-ico" aria-hidden="true"><svg viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="1.5"><path d="M6 3v12a3 3 0 0 0 3 3h9"></path><path d="M6 3 3 6m3-3 3 3"></path><path d="m15 15 3 3 3-3"></path></svg></span><h2>Working now</h2><span class="w-count" id="working-count"></span><span class="w-head-meta" id="working-meta"></span></header><div class="w-body" id="working-body"></div></article><article class="widget area-sandbox" id="widget-sandbox"><header><span class="w-ico" aria-hidden="true"><svg viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="1.5"><rect x="3" y="5" width="18" height="14" rx="3"></rect><path d="M3 10h18M8 5v5"></path></svg></span><h2>Last execution</h2><span class="w-head-meta" id="sandbox-meta"></span></header><div class="w-body" id="sandbox-body"></div></article></div><div class="widget-column"><article class="widget area-receipts" id="widget-receipts"><header><span class="w-ico" aria-hidden="true"><svg viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="1.5"><path d="M6 3h9l4 4v14H6Z"></path><path d="M15 3v4h4"></path><path d="M9 12h7M9 16h7"></path></svg></span><h2>Test results</h2><span class="w-count warn" id="receipts-count"></span><span class="w-head-spin" id="receipts-spin" hidden=""><svg viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2" class="spin"><path d="M12 3a9 9 0 1 0 9 9" stroke-linecap="round"></path></svg></span></header><div class="w-body" id="receipts-body"></div></article><article class="widget area-services" id="widget-services"><header><span class="w-ico" aria-hidden="true"><svg viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="1.5"><circle cx="12" cy="12" r="9"></circle><circle cx="12" cy="12" r="2.5"></circle><path d="M5.5 5.5 10 10m4 4 4.5 4.5M18.5 5.5 14 10m-4 4-4.5 4.5"></path></svg></span><h2>Observed activities</h2></header><div class="w-body" id="services-body"></div></article><article class="widget area-failures" id="widget-failures"><header><span class="w-ico" aria-hidden="true"><svg viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="1.5"><circle cx="12" cy="12" r="9"></circle><path d="m9 9 6 6M15 9l-6 6"></path></svg></span><h2>Needs attention</h2><span class="w-head-meta" id="failures-meta"></span></header><div class="w-body" id="failures-body"></div></article><article class="widget area-readiness" id="widget-readiness"><header><span class="w-ico" aria-hidden="true"><svg viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="1.5"><path d="M8 4H5v17h14V4h-3"></path><rect x="8" y="2" width="8" height="4" rx="1"></rect><path d="m8 13 3 3 5-6"></path></svg></span><h2>Test readiness</h2></header><div class="w-body" id="readiness-body"></div></article></div></div></div></section><section id="environment-view"><div id="environment-project-actions" class="environment-project-actions" hidden=""><p id="environment-removal-message" role="status" aria-live="polite"></p><button id="environment-delete-project" type="button"><svg width="16" height="16" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="1.5" aria-hidden="true"><path d="M3 6h18M9 6V3h6v3M5 6l1 15h12l1-15M10 10v7M14 10v7"></path></svg>Delete project</button></div><div class="heading"><div><p class="eyebrow">Project / environment</p><h1 id="environment-title">A test world for your agent.</h1><p id="environment-subtitle" class="muted">Discover your project. Test what your agent does before it touches production.</p></div><div class="actions"><label class="upload">Import discovery<input id="inventory-import" type="file" accept="application/json,.json"/></label><button id="configure-run" class="primary" type="button">Review workflows →</button></div></div><div class="discovery-onboarding"><aside class="terminal-panel"><div class="terminal-title"><h2>Connect your project</h2><span>From your terminal</span></div><div class="terminal-content"><div class="terminal-command"><span class="command-prompt" aria-hidden="true">❯</span><code>npx agenttwin init</code><button id="copy-init" type="button" aria-label="Copy discovery command">Copy command <span aria-hidden="true">↗</span></button></div><p class="terminal-comment">Run in your repository · Node.js 22.12+</p><div class="terminal-output" id="terminal-output"></div><details class="discovery-help"><summary>Analyze with a coding agent</summary><p>Init offers OpenCode when installed. To launch it directly, run <code>npx agenttwin init --agent opencode</code>. Other agents can use the generated <code>AGENT-TASK.md</code>.</p></details><details class="discovery-help"><summary>Send findings to this workspace</summary><p>Connect your account in Settings, configure <code>AGENTTWIN_TOKEN</code> in your terminal, then run <code>npx agenttwin sync</code>. This sends discovery metadata. Application files upload separately when you execute a reviewed bundle.</p><button type="button" data-action="settings">Open connection settings →</button></details></div></aside><section class="workflow-area"><div class="section-title"><h2 id="discovery-workflows-title">Discovery</h2><button id="discovery-workflows-link" type="button" data-action="configure">View workflows →</button></div><div id="environment-workflows"></div></section></div><div class="welcome-next"><ol class="welcome-steps"><li><span>01</span><div><strong>Discover</strong><p>Find tools and code paths.</p></div></li><li><span>02</span><div><strong>Review</strong><p>Choose what needs testing.</p></div></li><li><span>03</span><div><strong>Run safely</strong><p>Test through the CLI.</p></div></li></ol><button id="welcome-select-software" type="button">Or select your tools manually <span aria-hidden="true">→</span></button></div><div id="environment-coverage" class="coverage-strip"></div><div class="environment-grid"><section class="discovery-area"><div class="section-title"><h2>Selected resources</h2><div class="actions"><button id="add-app-toggle" type="button">Add custom software</button><button id="select-software" type="button">Select software</button></div></div><p id="inventory-context" class="coverage">No project connected. Import the inventory from your CLI to see its dependencies and workflow candidates.</p><form id="add-app" class="app-declaration" hidden=""><label>App or tool name<input id="app-name" required="" maxLength="80" placeholder="For example, Apple Mail"/></label><label>How the agent uses it<select id="app-interface"><option value="desktop">Desktop interface · no API required</option><option value="browser">Browser interface</option><option value="api">API / connector</option><option value="terminal">Terminal / command line</option></select></label><button type="submit">Add to environment</button></form><section class="topology-panel"><header class="topology-heading"><h3>Environment map</h3><span id="resource-count">0 resources</span><div class="map-controls"><button id="map-zoom-out" type="button" aria-label="Zoom out">−</button><span id="map-zoom-label">100%</span><button id="map-zoom-in" type="button" aria-label="Zoom in">+</button><button id="map-fit" type="button">Reset view</button><button id="map-arrange" type="button">Arrange</button></div></header><div class="map-workspace"><div id="map-canvas" class="topology-canvas" tabindex="0" aria-label="Environment map. Drag empty space to pan; drag cards to move them. Use arrow keys to pan."><p id="topology-label" class="topology-label">Selected resources</p><div id="map-scroll-space" class="map-scroll-space"><div id="map-stage" class="map-stage"><svg id="map-edges" class="map-edges" aria-hidden="true"></svg><div id="environment-project" class="environment-project" data-node="project" tabindex="0" aria-label="Move project card"></div><div id="environment-tools" class="resource-grid"></div></div></div><div id="map-empty" class="map-empty"><img src="assets/icons/ui/plugs-connected.svg" width="26" height="26" alt=""/><h3>No resources selected</h3><p>Run init in your project, then import .agenttwin/inventory.json. You can also declare a resource manually.</p><button id="map-select-tools" type="button">Browse resource catalog</button></div><span class="map-hint">Drag to pan · drag cards to arrange</span></div><aside class="map-resource-rail"><label>Selected resources <span id="map-list-count"></span><input id="map-resource-search" type="search" placeholder="Find a selected tool"/></label><div id="map-resource-list"></div><div id="map-resource-detail"><p>Select a resource to inspect coverage.</p></div></aside></div><div class="map-pagination"><span id="map-page-label"></span><span>Scroll to explore · select a name to locate its card</span></div></section><p id="environment-message" role="status" aria-live="polite"></p><div id="removed-resource" class="removal-notice" role="status" hidden=""><span id="removed-resource-message"></span><button id="undo-remove-resource" type="button">Undo</button></div></section></div><details class="catalog-drawer"><summary>Select software <span>choose what your workflow uses</span></summary><div class="catalog-body"><div id="catalog-slot"><div class="connector-toolbar"><label>Find a connector<input id="connector-search" type="search" placeholder="Search services"/></label><button id="select-connectors" type="button">Select all</button><button id="clear-connectors" type="button">Clear selection</button></div><p id="connector-status" role="status" aria-live="polite"></p><div id="connector-catalog" class="connector-catalog"></div><button id="export-connectors" type="button">Export selection ↓</button></div></div></details><details class="coverage-note"><summary>Runtime coverage</summary><p>Node workflows with custom HTTP collections and bounded Slack operations run through the CLI. PostgreSQL and Redis worlds can use an explicitly selected cloud runner. Other provider adapters and browser/desktop execution require implementation. Native macOS apps need a compatible macOS runtime. Production accounts are not copied.</p></details></section><section id="configure-view" hidden=""><div class="heading"><div><p class="eyebrow">Project / workflows</p><h1 id="workflows-title">Workflows</h1><p id="workflows-subtitle" class="muted">Choose a code path. Define the world it runs in. Check the outcome.</p></div></div><section class="twin-flow" aria-labelledby="twin-flow-title" data-active="false"><header class="twin-flow-heading"><div><p class="twin-flow-eyebrow">Application → world → evidence</p><h2 id="twin-flow-title">Your test world.</h2></div><span class="twin-flow-status" role="status">No world prepared</span></header><div class="twin-flow-scene"><button class="twin-flow-replay" type="button" aria-label="Replay diagram entrance">↻</button><svg class="twin-flow-wires" aria-hidden="true"><defs><filter id="twin-wire-glow"><feGaussianBlur stdDeviation="2"></feGaussianBlur></filter></defs></svg><div class="twin-flow-origin"><span class="twin-flow-glyph">⌘</span><strong>Your repository</strong><span>Local checkout</span></div><article class="twin-flow-hub"><div class="twin-flow-card-label"><span class="twin-flow-glyph">◈</span> Workflow <span class="twin-flow-node-state">Not selected</span></div><h3>Choose the code to test.</h3><p>Load your workflow to build its connected world.</p><div class="twin-flow-hub-footer"><span>Source + services + expected outcomes</span><button type="button">Load workflow<!-- --> <span aria-hidden="true">↗</span></button></div></article><div class="twin-flow-fixtures"><span class="twin-flow-glyph">≡</span><div><strong>Fixtures</strong><small>Define test records</small></div></div><div class="twin-flow-twin-stack"><span class="twin-flow-branch-label">Service twins</span><div class="twin-flow-sheet" aria-hidden="true"></div><div class="twin-flow-services" aria-label="Configured test services"><div class="twin-flow-stack-heading"><strong>Your services appear here</strong><span>Awaiting workflow</span></div><p>Your configured adapters, synthetic records and supported operations.</p><div class="twin-flow-stack-foot">Load a workflow to see its dependencies</div></div></div><article class="twin-flow-result"><span class="twin-flow-branch-label">Outcome checks</span><div class="twin-flow-card-label"><span class="twin-flow-glyph">◎</span> Evidence</div><h3>Define success.</h3><p>Choose the required state changes and forbidden effects.</p><div class="twin-flow-awaiting"><span></span> <!-- -->Awaiting execution</div></article></div><ol class="twin-flow-stages"><li data-state="pending"><span>1</span>Load source</li><li data-state="pending"><span>2</span>Define world</li><li data-state="pending"><span>3</span>Execute</li><li data-state="pending"><span>4</span>Inspect</li></ol><footer><p>Load a prepared workflow to populate this diagram with your application’s actual services.</p><a href="/docs/stack-loop/">How worlds work ↗</a></footer></section><div id="workflow-workspace"></div><details class="workflow-register advanced-workflows"><summary>Advanced: saved configurations and failure scenarios</summary><section id="saved-workflows"><div class="section-title"><h2>Saved configurations</h2><button type="button" id="workflow-refresh">Refresh</button></div><p class="coverage">Manage the starting state, fault conditions and expected outcomes for your workflows.</p><div id="workflow-saved-list"></div><details id="workflow-editor"><summary>Edit configuration</summary><label for="workflow-spec">agenttwin.world.json</label><textarea id="workflow-spec" rows="14" spellCheck="false" placeholder="Paste your world configuration or import a reviewed bundle above."></textarea><fieldset class="fault-controls"><legend>Failure scenario</legend><p class="coverage">Edit a draft, then rebuild and review its bundle before execution. Uploaded bundles keep their verified configuration.</p><label>Condition<select id="workflow-fault-type"><option value="none">Healthy execution — no injected fault</option><option value="timeout-after-write">Timeout after write</option></select></label><label>Target operation<select id="workflow-fault-target"><option value="">Load a configuration first</option></select></label><label>Response delay (milliseconds)<input id="workflow-fault-delay" type="number" min="1" max="10000" value="1200"/></label><button type="button" id="workflow-apply-fault">Apply to draft</button><p class="coverage">Timeout after write commits a write, then delays its response. Test whether retries duplicate actions. Runs report whether the fault actually activated. Other fault types are not implemented.</p></fieldset><div class="actions"><button type="button" id="workflow-save">Save draft</button><button type="button" id="workflow-new">New draft</button><button type="button" id="workflow-export">Download world configuration</button></div></details><p id="workflow-save-status" class="coverage" role="status"></p></section></details><details class="setup-card bundle-upload"><summary>Run a prepared workflow on a cloud machine</summary><div class="section-title"><h2>Optional cloud execution</h2><label class="upload">Upload prepared workflow<input id="bundle-import" type="file" accept="application/json,.json"/></label></div><p class="setup-note">Upload the file prepared by your coding agent. AgentTwin checks the files and configuration before you run.</p><p id="workflow-connection" class="connection-note">Connect your account in Settings before executing. <button type="button" data-action="settings">Open settings →</button></p><div id="bundle-review"><p class="coverage">Select a prepared workflow bundle to review its files and configuration.</p></div><label class="bundle-consent"><input id="bundle-consent" type="checkbox"/>I reviewed these application files, fixture data and operation mappings for upload.</label><button id="submit-hosted-run" class="primary" type="button" disabled="">Run in cloud →</button></details><details class="coverage-note"><summary>Runtime coverage</summary><p>Node workflows with custom HTTP collections and bounded Slack and Stripe operations run through the CLI. Reviewed Chromium browser recipes and background completion checks run locally. PostgreSQL and Redis worlds can use an explicitly selected cloud runner. Other provider adapters and desktop execution require implementation. Native macOS apps need a compatible macOS runtime. Production accounts are not copied.</p></details></section><section id="settings-view" hidden=""><div class="heading"><div><h1>Settings</h1><p class="muted">Your account, projects and dashboard preferences.</p></div></div><form id="api-connect"></form><section class="settings-section"><div class="settings-section-heading"><h2>Sign-in methods</h2><p>Signed up with Google? Create a password to use email sign-in with the same workspace.</p></div><a href="/account/password/">Email and password →</a></section><form id="workspace-preferences" class="settings-preferences"><section class="settings-section"><div class="settings-section-heading"><h2>Account & company</h2><p>Your display details on this browser.</p></div><div class="setting-row"><div><label for="workspace-display-name">Company or workspace</label></div><input id="workspace-display-name" type="text" maxLength="40" required="" autoComplete="organization" value="My workspace"/></div><div class="setting-row"><div><label for="workspace-user-name">Your name</label></div><input id="workspace-user-name" type="text" maxLength="60" autoComplete="name"/></div><div class="settings-connection"><div class="settings-section-heading"><h3>Workspace connection</h3><p>Connect to see your synced projects and test results.</p></div><p id="account-connection-status" class="connection-status" role="status">Not connected</p><details class="settings-credentials"><summary>Connection details</summary><label for="api-url">Server address</label><input form="api-connect" id="api-url" type="url" required="" placeholder="https://your-agenttwin-api.example"/><label for="api-token">Account token</label><div class="token-input"><input form="api-connect" id="api-token" type="password" required="" autoComplete="off" placeholder="at_user_…"/><button id="toggle-token" type="button" aria-label="Show account token" aria-pressed="false">Show</button></div><p class="setup-note">Your token stays in this tab until you reload or disconnect.</p><button form="api-connect" type="submit" class="primary">Connect account</button></details><div class="actions"><button type="button" id="api-sync-settings" disabled="">Refresh projects</button><button type="button" id="api-disconnect" disabled="">Disconnect account</button></div><p id="settings-connection-message" role="status" aria-live="polite"></p><details class="settings-assistant-status"><summary>Assistant availability</summary><p id="settings-chat-status" role="status">Connect your account to check availability.</p></details></div></section><section class="settings-section"><div class="project-settings-heading"><div><h2>Projects</h2><p>Applications connected to this workspace.</p></div><a class="project-add" href="/onboarding/">Add project</a></div><div id="settings-repositories"><p class="muted">No projects connected.</p></div><p id="project-settings-message" role="status" aria-live="polite"></p></section><section class="settings-section"><div class="settings-section-heading"><h2>Testing</h2><p>Start locally. Choose a cloud machine only when a workflow needs one.</p></div><div class="settings-runtime"><span class="settings-default">Default</span><h3>Run in your repository</h3><p>Use <code>npx agenttwin run</code>, then <code>npx agenttwin sync</code> to see results here.</p></div><p class="setup-note">Execution limits, dependencies and cloud requirements belong to each workflow.</p><button type="button" data-goto="configure">Review workflows →</button></section><section class="settings-section"><div class="settings-section-heading"><h2>Preferences</h2><p>Make this dashboard comfortable for you.</p></div><div class="setting-row"><div><label for="dashboard-artwork">Home background</label><p>Automatic follows your local time.</p></div><select id="dashboard-artwork"><option value="auto" selected="">Automatic</option><option value="morning">Morning</option><option value="afternoon">Afternoon</option><option value="evening">Evening</option></select></div><div class="setting-row"><div><label for="auto-refresh">Live updates</label><p>Refresh project and run status while this tab is open.</p></div><input id="auto-refresh" type="checkbox" role="switch" checked=""/></div><div class="setting-row"><div><label for="compact-density">Compact layout</label><p>Fit more workflows and runs on screen.</p></div><input id="compact-density" type="checkbox" role="switch"/></div><div class="setting-row"><div><label for="reduce-motion">Reduce motion</label><p>Use fewer animations and transitions.</p></div><input id="reduce-motion" type="checkbox" role="switch"/></div></section><div class="settings-save"><p id="preferences-message" role="status" aria-live="polite">Changes save to this browser.</p><button type="button" id="reset-preferences">Reset preferences</button><button type="submit" class="primary">Save changes</button></div></form></section><section id="history-view" hidden=""><div class="heading"><div><p class="eyebrow">Project / runs</p><h1 id="runs-title">Runs</h1><p id="runs-subtitle" class="muted">See what was tested, what happened, and what to fix.</p></div><div class="actions"><button id="reload" type="button">Refresh</button><label class="primary upload">Import test results<input id="import" type="file" accept="application/json,.json" multiple=""/></label></div></div><section class="workflow-register submitted-jobs"><div class="section-title"><h2>Execution queue</h2><button id="refresh-api-jobs" type="button" disabled="">Refresh</button></div><div id="api-jobs"><p class="coverage">Connect your account in Settings to load submitted runs.</p></div></section><p id="message" role="status" aria-live="polite"></p><section class="stats" id="stats" aria-label="Run summary"></section><div class="workspace"><aside class="run-sidebar"><div class="list-heading"><h2>Test history</h2><span id="run-count"></span></div><label class="search-label">Filter runs<input id="search" type="search" placeholder="Find a workflow, revision or run"/></label><div class="run-filters"><label>Repository<select id="run-project"><option value="all" selected="">All repositories</option></select></label><label>Outcome<select id="run-status"><option value="all" selected="">All outcomes</option><option value="passed">Passed</option><option value="failed">Failed</option><option value="error">Execution error</option><option value="incomplete">Incomplete</option></select></label><label>Workflow<select id="run-workflow"><option value="all" selected="">All workflows</option></select></label></div><label class="mobile-run-picker">Select test<select id="run-picker"><option value="" selected="">No tests loaded</option></select></label><div id="runs" aria-label="Select a run"><p class="muted">Loading run evidence…</p></div></aside><article id="detail" class="detail" aria-live="polite"><div class="empty"><h2>Loading evidence</h2><p>Fetching recorded test results.</p></div></article></div></section></main><button type="button" class="workspace-tour-launcher"><span aria-hidden="true">✦</span> Take a tour</button></div></div><!--$--><!--/$--><script src="assets/next/static/chunks/webpack-60f6502c44ed95af.js" id="_R_" async=""></script><script>(self.__next_f=self.__next_f||[]).push([0])</script><script>self.__next_f.push([1,"1:\"$Sreact.fragment\"\n2:I[9766,[],\"\"]\n3:I[8924,[],\"\"]\n4:I[2892,[\"7772\",\"static/chunks/7772-425e96278b46f6c9.js\",\"1848\",\"static/chunks/1848-a6938ad74a8e409f.js\",\"5105\",\"static/chunks/app/dashboard/page-91a2efe02bd25700.js\"],\"default\"]\n8:I[7150,[],\"\"]\n:HL[\"assets/next/static/css/3f003235629d65a0.css\",\"style\"]\n:HL[\"assets/next/static/css/45513ebc8c6ae800.css\",\"style\"]\n:HL[\"assets/next/static/css/97d686ac80c4018f.css\",\"style\"]\n:HL[\"assets/next/static/css/138b575a572b2958.css\",\"style\"]\n:HL[\"assets/next/static/css/4fa51ab33fbc7e1b.css\",\"style\"]\n:HL[\"assets/next/static/css/f9c2780fff15fd22.css\",\"style\"]\n"])</script><script>self.__next_f.push([1,"0:{\"P\":null,\"b\":\"8DWbcYS099IMf1RzFG63k\",\"p\":\"\",\"c\":[\"\",\"dashboard\",\"\"],\"i\":false,\"f\":[[[\"\",{\"children\":[\"dashboard\",{\"children\":[\"__PAGE__\",{}]}]},\"$undefined\",\"$undefined\",true],[\"\",[\"$\",\"$1\",\"c\",{\"children\":[[[\"$\",\"link\",\"0\",{\"rel\":\"stylesheet\",\"href\":\"assets/next/static/css/3f003235629d65a0.css\",\"precedence\":\"next\",\"crossOrigin\":\"$undefined\",\"nonce\":\"$undefined\"}]],[\"$\",\"html\",null,{\"lang\":\"en\",\"suppressHydrationWarning\":true,\"children\":[[\"$\",\"head\",null,{\"children\":[[\"$\",\"script\",null,{\"dangerouslySetInnerHTML\":{\"__html\":\"(function(){\\n var attribute='bis_skin_checked';\\n function clean(node){\\n if(node.nodeType!==1)return;\\n if(node.hasAttribute(attribute))node.removeAttribute(attribute);\\n node.querySelectorAll('['+attribute+']').forEach(function(element){element.removeAttribute(attribute);});\\n }\\n clean(document.documentElement);\\n new MutationObserver(function(records){\\n records.forEach(function(record){\\n if(record.type==='attributes'){\\n if(record.target.hasAttribute(attribute))record.target.removeAttribute(attribute);\\n }else record.addedNodes.forEach(clean);\\n });\\n }).observe(document.documentElement,{subtree:true,childList:true,attributes:true,attributeFilter:[attribute]});\\n})();\"}}],[\"$\",\"script\",null,{\"dangerouslySetInnerHTML\":{\"__html\":\"(function(){try{if(location.pathname.indexOf('/docs')!==0)return;var s=localStorage.getItem('agenttwin:docs-theme');var t=s==='light'||s==='dark'?s:(window.matchMedia('(prefers-color-scheme: light)').matches?'light':'dark');var d=document.documentElement;d.dataset.docsTheme=t;d.style.colorScheme=t;}catch(e){}})();\"}}],[\"$\",\"script\",null,{\"defer\":true,\"data-domain\":\"agenttwin.si\",\"src\":\"https://analytics.hirealpha.chat/js/script.js\"}],[\"$\",\"meta\",null,{\"name\":\"theme-color\",\"content\":\"#090909\"}],[\"$\",\"link\",null,{\"rel\":\"icon\",\"type\":\"image/svg+xml\",\"href\":\"assets/logo/favicon.svg?v=white-rings\"}],[\"$\",\"link\",null,{\"rel\":\"preload\",\"href\":\"assets/fonts/syne-400.ttf\",\"as\":\"font\",\"type\":\"font/ttf\",\"crossOrigin\":\"anonymous\"}]]}],[\"$\",\"body\",null,{\"suppressHydrationWarning\":true,\"children\":[\"$\",\"$L2\",null,{\"parallelRouterKey\":\"children\",\"error\":\"$undefined\",\"errorStyles\":\"$undefined\",\"errorScripts\":\"$undefined\",\"template\":[\"$\",\"$L3\",null,{}],\"templateStyles\":\"$undefined\",\"templateScripts\":\"$undefined\",\"notFound\":[[[\"$\",\"title\",null,{\"children\":\"404: This page could not be found.\"}],[\"$\",\"div\",null,{\"style\":{\"fontFamily\":\"system-ui,\\\"Segoe UI\\\",Roboto,Helvetica,Arial,sans-serif,\\\"Apple Color Emoji\\\",\\\"Segoe UI Emoji\\\"\",\"height\":\"100vh\",\"textAlign\":\"center\",\"display\":\"flex\",\"flexDirection\":\"column\",\"alignItems\":\"center\",\"justifyContent\":\"center\"},\"children\":[\"$\",\"div\",null,{\"children\":[[\"$\",\"style\",null,{\"dangerouslySetInnerHTML\":{\"__html\":\"body{color:#000;background:#fff;margin:0}.next-error-h1{border-right:1px solid rgba(0,0,0,.3)}@media (prefers-color-scheme:dark){body{color:#fff;background:#000}.next-error-h1{border-right:1px solid rgba(255,255,255,.3)}}\"}}],[\"$\",\"h1\",null,{\"className\":\"next-error-h1\",\"style\":{\"display\":\"inline-block\",\"margin\":\"0 20px 0 0\",\"padding\":\"0 23px 0 0\",\"fontSize\":24,\"fontWeight\":500,\"verticalAlign\":\"top\",\"lineHeight\":\"49px\"},\"children\":404}],[\"$\",\"div\",null,{\"style\":{\"display\":\"inline-block\"},\"children\":[\"$\",\"h2\",null,{\"style\":{\"fontSize\":14,\"fontWeight\":400,\"lineHeight\":\"49px\",\"margin\":0},\"children\":\"This page could not be found.\"}]}]]}]}]],[]],\"forbidden\":\"$undefined\",\"unauthorized\":\"$undefined\"}]}]]}]]}],{\"children\":[\"dashboard\",[\"$\",\"$1\",\"c\",{\"children\":[[[\"$\",\"link\",\"0\",{\"rel\":\"stylesheet\",\"href\":\"assets/next/static/css/45513ebc8c6ae800.css\",\"precedence\":\"next\",\"crossOrigin\":\"$undefined\",\"nonce\":\"$undefined\"}],[\"$\",\"link\",\"1\",{\"rel\":\"stylesheet\",\"href\":\"assets/next/static/css/97d686ac80c4018f.css\",\"precedence\":\"next\",\"crossOrigin\":\"$undefined\",\"nonce\":\"$undefined\"}],[\"$\",\"link\",\"2\",{\"rel\":\"stylesheet\",\"href\":\"assets/next/static/css/138b575a572b2958.css\",\"precedence\":\"next\",\"crossOrigin\":\"$undefined\",\"nonce\":\"$undefined\"}]],[[\"$\",\"meta\",null,{\"name\":\"agenttwin-api-url\",\"content\":\"https://api.agenttwin.si\"}],[\"$\",\"$L2\",null,{\"parallelRouterKey\":\"children\",\"error\":\"$undefined\",\"errorStyles\":\"$undefined\",\"errorScripts\":\"$undefined\",\"template\":[\"$\",\"$L3\",null,{}],\"templateStyles\":\"$undefined\",\"templateScripts\":\"$undefined\",\"notFound\":\"$undefined\",\"forbidden\":\"$undefined\",\"unauthorized\":\"$undefined\"}]]]}],{\"children\":[\"__PAGE__\",[\"$\",\"$1\",\"c\",{\"children\":[[\"$\",\"$L4\",null,{}],[[\"$\",\"link\",\"0\",{\"rel\":\"stylesheet\",\"href\":\"assets/next/static/css/4fa51ab33fbc7e1b.css\",\"precedence\":\"next\",\"crossOrigin\":\"$undefined\",\"nonce\":\"$undefined\"}],\"$L5\"],\"$L6\"]}],{},null,false]},null,false]},null,false],\"$L7\",false]],\"m\":\"$undefined\",\"G\":[\"$8\",[]],\"s\":false,\"S\":true}\n"])</script><script>self.__next_f.push([1,"9:I[4431,[],\"OutletBoundary\"]\nb:I[5278,[],\"AsyncMetadataOutlet\"]\nd:I[4431,[],\"ViewportBoundary\"]\nf:I[4431,[],\"MetadataBoundary\"]\n10:\"$Sreact.suspense\"\n5:[\"$\",\"link\",\"1\",{\"rel\":\"stylesheet\",\"href\":\"assets/next/static/css/f9c2780fff15fd22.css\",\"precedence\":\"next\",\"crossOrigin\":\"$undefined\",\"nonce\":\"$undefined\"}]\n6:[\"$\",\"$L9\",null,{\"children\":[\"$La\",[\"$\",\"$Lb\",null,{\"promise\":\"$@c\"}]]}]\n7:[\"$\",\"$1\",\"h\",{\"children\":[null,[[\"$\",\"$Ld\",null,{\"children\":\"$Le\"}],null],[\"$\",\"$Lf\",null,{\"children\":[\"$\",\"div\",null,{\"hidden\":true,\"children\":[\"$\",\"$10\",null,{\"fallback\":null,\"children\":\"$L11\"}]}]}]]}]\n"])</script><script>self.__next_f.push([1,"e:[[\"$\",\"meta\",\"0\",{\"charSet\":\"utf-8\"}],[\"$\",\"meta\",\"1\",{\"name\":\"viewport\",\"content\":\"width=device-width, initial-scale=1\"}]]\na:null\n"])</script><script>self.__next_f.push([1,"c:{\"metadata\":[[\"$\",\"title\",\"0\",{\"children\":\"Workspace | AgentTwin\"}],[\"$\",\"meta\",\"1\",{\"name\":\"description\",\"content\":\"Discover your project, test workflows and inspect recorded results.\"}]],\"error\":null,\"digest\":\"$undefined\"}\n"])</script><script>self.__next_f.push([1,"11:\"$c:metadata\"\n"])</script></body></html>
|
|
16
|
+
})();</script><script>(function(){try{if(location.pathname.indexOf('/docs')!==0)return;var s=localStorage.getItem('agenttwin:docs-theme');var t=s==='light'||s==='dark'?s:(window.matchMedia('(prefers-color-scheme: light)').matches?'light':'dark');var d=document.documentElement;d.dataset.docsTheme=t;d.style.colorScheme=t;}catch(e){}})();</script><script defer="" data-domain="agenttwin.si" src="https://analytics.hirealpha.chat/js/script.js"></script><script src="assets/next/static/chunks/polyfills-42372ed130431b0a.js" noModule=""></script></head><body><div hidden=""><!--$--><!--/$--></div><a class="skip" href="#main">Skip to content</a><div class="app-frame"><p class="announce-strip"><span class="record-dot"></span>AgentTwin / workflow testing</p><header class="topbar"><a class="brand" href="#home" aria-label="AgentTwin home"><img src="assets/logo/mark-twin-rings.svg" width="23" height="23" alt=""/>AgentTwin</a><button id="sidebar-toggle" class="sidebar-toggle" type="button" aria-label="Toggle sidebar" aria-expanded="true"><svg viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="1.6" aria-hidden="true"><rect x="3" y="4" width="18" height="16" rx="3"></rect><path d="M9 4v16"></path></svg></button><nav class="home-switcher" aria-label="Switch view"><button type="button" data-view="home" class="active" aria-current="page"><svg viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="1.6" aria-hidden="true"><path d="m3 10.5 9-7.5 9 7.5"></path><path d="M5.5 9v10.5h13V9"></path></svg>Home<span class="pill-count" id="home-badge" hidden="">0</span></button><button type="button" data-view="environment"><img src="assets/icons/ui/stack-simple.svg" alt=""/>Environment</button><button type="button" data-view="configure"><img src="assets/icons/ui/git-branch.svg" alt=""/>Workflows</button><button type="button" data-view="history"><img src="assets/icons/ui/clock.svg" alt=""/>Runs</button><button type="button" data-view="settings"><img src="assets/icons/ui/stack-simple.svg" alt=""/>Settings</button></nav><div class="home-top-actions"><a href="/login/" data-auth-link="true" class="home-search">Sign in</a><button type="button" id="home-search" class="home-search" aria-label="Search"><svg viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="1.6" aria-hidden="true"><circle cx="11" cy="11" r="6.5"></circle><path d="m16 16 4.5 4.5"></path></svg><span class="hs-label">Search</span><kbd>⌘K</kbd></button><div class="home-bell-wrap"><button type="button" id="home-bell" class="home-icon-btn" aria-label="Notifications" aria-haspopup="true" aria-expanded="false" aria-controls="home-bell-menu"><svg viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="1.6" aria-hidden="true"><path d="M18 9a6 6 0 1 0-12 0c0 6-2 7-2 7h16s-2-1-2-7"></path><path d="M10 20a2.2 2.2 0 0 0 4 0"></path></svg><span class="bell-badge" id="bell-badge" hidden="">0</span></button><div id="home-bell-menu" class="home-menu bell-menu" hidden=""><p class="menu-label">Notifications</p><div id="bell-items"></div></div></div><button type="button" id="home-expand" class="home-icon-btn" aria-label="Toggle full screen"><svg viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="1.6" aria-hidden="true"><path d="M9 3H3v6M15 3h6v6M9 21H3v-6M15 21h6v-6"></path></svg></button></div><div class="workspace-name"><span id="workspace-label">Workspace</span><span class="workspace-divider">/</span><span id="current-view">Environment</span></div><div class="account-control"><button type="button" id="account-toggle" class="workspace-avatar" aria-label="Open account menu" aria-expanded="false" aria-controls="account-menu">AT</button><div id="account-menu" class="account-menu" hidden=""><div class="account-menu-head"><span class="account-menu-avatar" aria-hidden="true">AT</span><span class="account-menu-identity"><strong id="account-user-name">Your name not set</strong><small id="account-workspace">My workspace</small></span></div><p id="account-menu-status" class="account-menu-status muted">Not connected</p><div class="account-menu-links"><a href="/login/" data-auth-link="true">Sign in</a><a href="/signup/" data-auth-link="true">Create an account</a><a href="/onboarding/">Connect a repository</a></div><div class="account-menu-actions"><button type="button" data-action="settings">Account & settings</button><button type="button" data-action="history">View runs</button></div><div class="account-menu-footer"><button type="button" id="account-disconnect" disabled="">Sign out</button></div></div></div></header><div class="app-layout"><nav class="project-tabs app-nav" aria-label="Project views"><div class="sidebar-primary"><button id="sidebar-discover" class="sidebar-create" type="button"><svg viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="1.6" aria-hidden="true"><path d="M12 5v14M5 12h14"></path></svg>Connect project</button></div><div id="sidebar-projects" aria-label="Your repositories"></div><div class="sidebar-bottom"><a class="nav-item" href="https://agenttwin.si/docs/"><svg class="nav-icon" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="1.6" aria-hidden="true"><path d="M12 5v15M12 5C9 3 5 3 2 4v15c3-1 7-1 10 1M12 5c3-2 7-2 10-1v15c-3-1-7-1-10 1"></path></svg>Documentation<span class="nav-external" aria-hidden="true">↗</span></a></div></nav><main id="main"><p id="api-message" class="coverage" role="status" aria-live="polite"></p><section id="home-view" hidden="" aria-label="Agent home"><div class="home-hero"><div id="home-sky" aria-hidden="true"></div><h1 class="home-overview-title">What should your agent test?</h1><section class="home-assistant-bottom" aria-label="Workflow assistant"><div class="assistant-entry"><button type="button" id="assistant-dock-toggle" aria-expanded="false" aria-controls="assistant-dock-panel"><span class="assistant-entry-label-desktop">Ask about a workflow or test result</span><span class="assistant-entry-label-mobile">Ask AgentTwin</span><span aria-hidden="true">↑</span></button><button type="button" id="assistant-voice-entry" class="voice-button" aria-label="Dictate a message" title="Dictate a message"><svg viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="1.7" aria-hidden="true"><rect x="9" y="3" width="6" height="12" rx="3"></rect><path d="M5 10v2a7 7 0 0 0 14 0v-2M12 19v3M8 22h8"></path></svg></button></div><div class="hero-content" id="assistant-dock-panel" hidden=""><button type="button" id="assistant-dock-close" aria-label="Minimize workflow assistant">Minimize ↓</button><div class="home-composer" role="form" aria-label="Workflow assistant"><div class="assistant-heading"><strong>Ask AgentTwin</strong><span id="assistant-project-context"></span></div><p id="assistant-connection-status" role="status"></p><button type="button" id="assistant-connect">Connect your account</button><label class="visually-hidden" for="composer-input">Ask about your workflow</label><textarea id="composer-input" rows="3" placeholder="What would you like to test?" spellCheck="false"></textarea><div class="composer-row"><span class="assistant-send-hint">Ask about your workflows or run results</span><button type="button" id="composer-voice" class="voice-button" aria-label="Dictate a message" title="Dictate a message"><svg viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="1.7" aria-hidden="true"><rect x="9" y="3" width="6" height="12" rx="3"></rect><path d="M5 10v2a7 7 0 0 0 14 0v-2M12 19v3M8 22h8"></path></svg></button><button type="button" class="composer-send" id="composer-send" aria-label="Send message">Send ↑</button></div><div id="chat-thread" class="chat-thread" aria-label="Workflow conversation" hidden=""></div><p id="composer-note" class="composer-note" role="status"></p></div></div></section></div><div class="home-body"><section id="home-next-step" class="next-step home-action" aria-label="Next step"></section><div class="home-grid-head"><span class="grid-hint">Your workspace</span><button type="button" id="home-customize" aria-expanded="false" aria-controls="home-widget-controls"><svg viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="1.5" aria-hidden="true"><rect x="4" y="4" width="6.5" height="6.5" rx="1.5"></rect><rect x="13.5" y="4" width="6.5" height="6.5" rx="1.5"></rect><rect x="4" y="13.5" width="6.5" height="6.5" rx="1.5"></rect><rect x="13.5" y="13.5" width="6.5" height="6.5" rx="1.5"></rect></svg>Customize</button></div><div id="home-widget-controls" class="home-widget-controls" role="region" aria-label="Customize home" hidden=""></div><div class="home-widgets"><div class="widget-column"><article class="widget area-project" id="widget-project"><header><h2>Project discovery</h2></header><div class="w-body" id="project-body"></div></article><article class="widget area-git" id="widget-git"><header><h2>Git activity</h2><span id="git-meta" class="w-head-meta"></span></header><div class="w-body" id="git-body"></div></article><article class="widget area-working" id="widget-working"><header><span class="w-ico" aria-hidden="true"><svg viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="1.5"><path d="M6 3v12a3 3 0 0 0 3 3h9"></path><path d="M6 3 3 6m3-3 3 3"></path><path d="m15 15 3 3 3-3"></path></svg></span><h2>Working now</h2><span class="w-count" id="working-count"></span><span class="w-head-meta" id="working-meta"></span></header><div class="w-body" id="working-body"></div></article><article class="widget area-sandbox" id="widget-sandbox"><header><span class="w-ico" aria-hidden="true"><svg viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="1.5"><rect x="3" y="5" width="18" height="14" rx="3"></rect><path d="M3 10h18M8 5v5"></path></svg></span><h2>Last execution</h2><span class="w-head-meta" id="sandbox-meta"></span></header><div class="w-body" id="sandbox-body"></div></article></div><div class="widget-column"><article class="widget area-receipts" id="widget-receipts"><header><span class="w-ico" aria-hidden="true"><svg viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="1.5"><path d="M6 3h9l4 4v14H6Z"></path><path d="M15 3v4h4"></path><path d="M9 12h7M9 16h7"></path></svg></span><h2>Test results</h2><span class="w-count warn" id="receipts-count"></span><span class="w-head-spin" id="receipts-spin" hidden=""><svg viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2" class="spin"><path d="M12 3a9 9 0 1 0 9 9" stroke-linecap="round"></path></svg></span></header><div class="w-body" id="receipts-body"></div></article><article class="widget area-services" id="widget-services"><header><span class="w-ico" aria-hidden="true"><svg viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="1.5"><circle cx="12" cy="12" r="9"></circle><circle cx="12" cy="12" r="2.5"></circle><path d="M5.5 5.5 10 10m4 4 4.5 4.5M18.5 5.5 14 10m-4 4-4.5 4.5"></path></svg></span><h2>Observed activities</h2></header><div class="w-body" id="services-body"></div></article><article class="widget area-failures" id="widget-failures"><header><span class="w-ico" aria-hidden="true"><svg viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="1.5"><circle cx="12" cy="12" r="9"></circle><path d="m9 9 6 6M15 9l-6 6"></path></svg></span><h2>Needs attention</h2><span class="w-head-meta" id="failures-meta"></span></header><div class="w-body" id="failures-body"></div></article><article class="widget area-readiness" id="widget-readiness"><header><span class="w-ico" aria-hidden="true"><svg viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="1.5"><path d="M8 4H5v17h14V4h-3"></path><rect x="8" y="2" width="8" height="4" rx="1"></rect><path d="m8 13 3 3 5-6"></path></svg></span><h2>Test readiness</h2></header><div class="w-body" id="readiness-body"></div></article></div></div></div></section><section id="environment-view"><div id="environment-project-actions" class="environment-project-actions" hidden=""><p id="environment-removal-message" role="status" aria-live="polite"></p><button id="environment-delete-project" type="button"><svg width="16" height="16" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="1.5" aria-hidden="true"><path d="M3 6h18M9 6V3h6v3M5 6l1 15h12l1-15M10 10v7M14 10v7"></path></svg>Delete project</button></div><div class="heading"><div><p class="eyebrow">Project / environment</p><h1 id="environment-title">A test world for your agent.</h1><p id="environment-subtitle" class="muted">Discover your project. Test what your agent does before it touches production.</p></div><div class="actions"><label class="upload">Import discovery<input id="inventory-import" type="file" accept="application/json,.json"/></label><button id="configure-run" class="primary" type="button">Review workflows →</button></div></div><div class="discovery-onboarding"><aside class="terminal-panel"><div class="terminal-title"><h2>Connect your project</h2><span>From your terminal</span></div><div class="terminal-content"><div class="terminal-command"><span class="command-prompt" aria-hidden="true">❯</span><code>npx agenttwin init</code><button id="copy-init" type="button" aria-label="Copy discovery command">Copy command <span aria-hidden="true">↗</span></button></div><p class="terminal-comment">Run in your repository · Node.js 22.12+</p><div class="terminal-output" id="terminal-output"></div><details class="discovery-help"><summary>Analyze with a coding agent</summary><p>Init offers OpenCode when installed. To launch it directly, run <code>npx agenttwin init --agent opencode</code>. Other agents can use the generated <code>AGENT-TASK.md</code>.</p></details><details class="discovery-help"><summary>Send findings to this workspace</summary><p>Connect your account in Settings, configure <code>AGENTTWIN_TOKEN</code> in your terminal, then run <code>npx agenttwin sync</code>. This sends discovery metadata. Application files upload separately when you execute a reviewed bundle.</p><button type="button" data-action="settings">Open connection settings →</button></details></div></aside><section class="workflow-area"><div class="section-title"><h2 id="discovery-workflows-title">Discovery</h2><button id="discovery-workflows-link" type="button" data-action="configure">View workflows →</button></div><div id="environment-workflows"></div></section></div><div class="welcome-next"><ol class="welcome-steps"><li><span>01</span><div><strong>Discover</strong><p>Find tools and code paths.</p></div></li><li><span>02</span><div><strong>Review</strong><p>Choose what needs testing.</p></div></li><li><span>03</span><div><strong>Run safely</strong><p>Test through the CLI.</p></div></li></ol><button id="welcome-select-software" type="button">Or select your tools manually <span aria-hidden="true">→</span></button></div><div id="environment-coverage" class="coverage-strip"></div><div class="environment-grid"><section class="discovery-area"><div class="section-title"><h2>Selected resources</h2><div class="actions"><button id="add-app-toggle" type="button">Add custom software</button><button id="select-software" type="button">Select software</button></div></div><p id="inventory-context" class="coverage">No project connected. Import the inventory from your CLI to see its dependencies and workflow candidates.</p><form id="add-app" class="app-declaration" hidden=""><label>App or tool name<input id="app-name" required="" maxLength="80" placeholder="For example, Apple Mail"/></label><label>How the agent uses it<select id="app-interface"><option value="desktop">Desktop interface · no API required</option><option value="browser">Browser interface</option><option value="api">API / connector</option><option value="terminal">Terminal / command line</option></select></label><button type="submit">Add to environment</button></form><section class="topology-panel"><header class="topology-heading"><h3>Environment map</h3><span id="resource-count">0 resources</span><div class="map-controls"><button id="map-zoom-out" type="button" aria-label="Zoom out">−</button><span id="map-zoom-label">100%</span><button id="map-zoom-in" type="button" aria-label="Zoom in">+</button><button id="map-fit" type="button">Reset view</button><button id="map-arrange" type="button">Arrange</button></div></header><div class="map-workspace"><div id="map-canvas" class="topology-canvas" tabindex="0" aria-label="Environment map. Drag empty space to pan; drag cards to move them. Use arrow keys to pan."><p id="topology-label" class="topology-label">Selected resources</p><div id="map-scroll-space" class="map-scroll-space"><div id="map-stage" class="map-stage"><svg id="map-edges" class="map-edges" aria-hidden="true"></svg><div id="environment-project" class="environment-project" data-node="project" tabindex="0" aria-label="Move project card"></div><div id="environment-tools" class="resource-grid"></div></div></div><div id="map-empty" class="map-empty"><img src="assets/icons/ui/plugs-connected.svg" width="26" height="26" alt=""/><h3>No resources selected</h3><p>Run init in your project, then import .agenttwin/inventory.json. You can also declare a resource manually.</p><button id="map-select-tools" type="button">Browse resource catalog</button></div><span class="map-hint">Drag to pan · drag cards to arrange</span></div><aside class="map-resource-rail"><label>Selected resources <span id="map-list-count"></span><input id="map-resource-search" type="search" placeholder="Find a selected tool"/></label><div id="map-resource-list"></div><div id="map-resource-detail"><p>Select a resource to inspect coverage.</p></div></aside></div><div class="map-pagination"><span id="map-page-label"></span><span>Scroll to explore · select a name to locate its card</span></div></section><p id="environment-message" role="status" aria-live="polite"></p><div id="removed-resource" class="removal-notice" role="status" hidden=""><span id="removed-resource-message"></span><button id="undo-remove-resource" type="button">Undo</button></div></section></div><details class="catalog-drawer"><summary>Select software <span>choose what your workflow uses</span></summary><div class="catalog-body"><div id="catalog-slot"><div class="connector-toolbar"><label>Find a connector<input id="connector-search" type="search" placeholder="Search services"/></label><button id="select-connectors" type="button">Select all</button><button id="clear-connectors" type="button">Clear selection</button></div><p id="connector-status" role="status" aria-live="polite"></p><div id="connector-catalog" class="connector-catalog"></div><button id="export-connectors" type="button">Export selection ↓</button></div></div></details><details class="coverage-note"><summary>Runtime coverage</summary><p>Node workflows with custom HTTP collections and bounded Slack operations run through the CLI. PostgreSQL and Redis worlds can use an explicitly selected cloud runner. Other provider adapters and browser/desktop execution require implementation. Native macOS apps need a compatible macOS runtime. Production accounts are not copied.</p></details></section><section id="configure-view" hidden=""><div class="heading"><div><p class="eyebrow">Project / workflows</p><h1 id="workflows-title">Workflows</h1><p id="workflows-subtitle" class="muted">Choose a code path. Define the world it runs in. Check the outcome.</p></div></div><div id="workflow-workspace"></div></section><section id="settings-view" hidden=""><div class="heading"><div><h1>Settings</h1><p class="muted">Your account, projects and dashboard preferences.</p></div></div><form id="api-connect"></form><section class="settings-section"><div class="settings-section-heading"><h2>Sign-in methods</h2><p>Signed up with Google? Create a password to use email sign-in with the same workspace.</p></div><a href="/account/password/">Email and password →</a></section><form id="workspace-preferences" class="settings-preferences"><section class="settings-section"><div class="settings-section-heading"><h2>Account & company</h2><p>Your display details on this browser.</p></div><div class="setting-row"><div><label for="workspace-display-name">Company or workspace</label></div><input id="workspace-display-name" type="text" maxLength="40" required="" autoComplete="organization" value="My workspace"/></div><div class="setting-row"><div><label for="workspace-user-name">Your name</label></div><input id="workspace-user-name" type="text" maxLength="60" autoComplete="name"/></div><div class="settings-connection"><div class="settings-section-heading"><h3>Workspace connection</h3><p>Connect to see your synced projects and test results.</p></div><p id="account-connection-status" class="connection-status" role="status">Not connected</p><details class="settings-credentials"><summary>Connection details</summary><label for="api-url">Server address</label><input form="api-connect" id="api-url" type="url" required="" placeholder="https://your-agenttwin-api.example"/><label for="api-token">Account token</label><div class="token-input"><input form="api-connect" id="api-token" type="password" required="" autoComplete="off" placeholder="at_user_…"/><button id="toggle-token" type="button" aria-label="Show account token" aria-pressed="false">Show</button></div><p class="setup-note">Your token stays in this tab until you reload or disconnect.</p><button form="api-connect" type="submit" class="primary">Connect account</button></details><div class="actions"><button type="button" id="api-sync-settings" disabled="">Refresh projects</button><button type="button" id="api-disconnect" disabled="">Disconnect account</button></div><p id="settings-connection-message" role="status" aria-live="polite"></p><details class="settings-assistant-status"><summary>Assistant availability</summary><p id="settings-chat-status" role="status">Connect your account to check availability.</p></details></div></section><section class="settings-section"><div class="project-settings-heading"><div><h2>Projects</h2><p>Applications connected to this workspace.</p></div><a class="project-add" href="/onboarding/">Add project</a></div><div id="settings-repositories"><p class="muted">No projects connected.</p></div><p id="project-settings-message" role="status" aria-live="polite"></p></section><section class="settings-section"><div class="settings-section-heading"><h2>Testing</h2><p>Start locally. Choose a cloud machine only when a workflow needs one.</p></div><div class="settings-runtime"><span class="settings-default">Default</span><h3>Run in your repository</h3><p>Use <code>npx agenttwin run</code>, then <code>npx agenttwin sync</code> to see results here.</p></div><p class="setup-note">Execution limits, dependencies and cloud requirements belong to each workflow.</p><button type="button" data-goto="configure">Review workflows →</button></section><section class="settings-section"><div class="settings-section-heading"><h2>Preferences</h2><p>Make this dashboard comfortable for you.</p></div><div class="setting-row"><div><label for="dashboard-artwork">Home background</label><p>Automatic follows your local time.</p></div><select id="dashboard-artwork"><option value="auto" selected="">Automatic</option><option value="morning">Morning</option><option value="afternoon">Afternoon</option><option value="evening">Evening</option></select></div><div class="setting-row"><div><label for="auto-refresh">Live updates</label><p>Refresh project and run status while this tab is open.</p></div><input id="auto-refresh" type="checkbox" role="switch" checked=""/></div><div class="setting-row"><div><label for="compact-density">Compact layout</label><p>Fit more workflows and runs on screen.</p></div><input id="compact-density" type="checkbox" role="switch"/></div><div class="setting-row"><div><label for="reduce-motion">Reduce motion</label><p>Use fewer animations and transitions.</p></div><input id="reduce-motion" type="checkbox" role="switch"/></div></section><div class="settings-save"><p id="preferences-message" role="status" aria-live="polite">Changes save to this browser.</p><button type="button" id="reset-preferences">Reset preferences</button><button type="submit" class="primary">Save changes</button></div></form></section><section id="history-view" hidden=""><div class="heading"><div><p class="eyebrow">Project / runs</p><h1 id="runs-title">Runs</h1><p id="runs-subtitle" class="muted">See what was tested, what happened, and what to fix.</p></div><div class="actions"><button id="reload" type="button">Refresh</button><label class="primary upload">Import test results<input id="import" type="file" accept="application/json,.json" multiple=""/></label></div></div><section class="workflow-register submitted-jobs"><div class="section-title"><h2>Execution queue</h2><button id="refresh-api-jobs" type="button" disabled="">Refresh</button></div><div id="api-jobs"><p class="coverage">Connect your account in Settings to load submitted runs.</p></div></section><p id="message" role="status" aria-live="polite"></p><section class="stats" id="stats" aria-label="Run summary"></section><div class="workspace"><aside class="run-sidebar"><div class="list-heading"><h2>Test history</h2><span id="run-count"></span></div><label class="search-label">Filter runs<input id="search" type="search" placeholder="Find a workflow, revision or run"/></label><div class="run-filters"><label>Repository<select id="run-project"><option value="all" selected="">All repositories</option></select></label><label>Outcome<select id="run-status"><option value="all" selected="">All outcomes</option><option value="passed">Passed</option><option value="failed">Failed</option><option value="error">Execution error</option><option value="incomplete">Incomplete</option></select></label><label>Workflow<select id="run-workflow"><option value="all" selected="">All workflows</option></select></label></div><label class="mobile-run-picker">Select test<select id="run-picker"><option value="" selected="">No tests loaded</option></select></label><div id="runs" aria-label="Select a run"><p class="muted">Loading run evidence…</p></div></aside><article id="detail" class="detail" aria-live="polite"><div class="empty"><h2>Loading evidence</h2><p>Fetching recorded test results.</p></div></article></div></section></main><button type="button" class="workspace-tour-launcher"><span aria-hidden="true">✦</span> Take a tour</button></div></div><!--$--><!--/$--><script src="assets/next/static/chunks/webpack-44457f45df749a89.js" id="_R_" async=""></script><script>(self.__next_f=self.__next_f||[]).push([0])</script><script>self.__next_f.push([1,"1:\"$Sreact.fragment\"\n2:I[4522,[\"7177\",\"static/chunks/app/layout-09868e53e4f0541f.js\"],\"default\"]\n3:I[19,[],\"\"]\n4:I[7023,[],\"\"]\n5:I[9399,[\"3916\",\"static/chunks/3916-2698a1a3ecb8649f.js\",\"1981\",\"static/chunks/1981-2ce2c5edd154524a.js\",\"5105\",\"static/chunks/app/dashboard/page-945c916b24f48675.js\"],\"default\"]\n9:I[3977,[],\"\"]\n:HL[\"assets/next/static/css/81a1668ab34a36e8.css\",\"style\"]\n:HL[\"assets/next/static/css/5d8899aaed08d7f2.css\",\"style\"]\n:HL[\"assets/next/static/css/eea0966f05042bde.css\",\"style\"]\n:HL[\"assets/next/static/css/0cf03e33b963e5cb.css\",\"style\"]\n:HL[\"assets/next/static/css/11f70fd04660da57.css\",\"style\"]\n:HL[\"assets/next/static/css/dd3fb06005e18149.css\",\"style\"]\n"])</script><script>self.__next_f.push([1,"0:{\"P\":null,\"b\":\"BbTZs0rKnsmj45peSnlwJ\",\"p\":\"\",\"c\":[\"\",\"dashboard\",\"\"],\"i\":false,\"f\":[[[\"\",{\"children\":[\"dashboard\",{\"children\":[\"__PAGE__\",{}]}]},\"$undefined\",\"$undefined\",true],[\"\",[\"$\",\"$1\",\"c\",{\"children\":[[[\"$\",\"link\",\"0\",{\"rel\":\"stylesheet\",\"href\":\"assets/next/static/css/81a1668ab34a36e8.css\",\"precedence\":\"next\",\"crossOrigin\":\"$undefined\",\"nonce\":\"$undefined\"}]],[\"$\",\"html\",null,{\"lang\":\"en\",\"suppressHydrationWarning\":true,\"children\":[[\"$\",\"head\",null,{\"children\":[[\"$\",\"script\",null,{\"dangerouslySetInnerHTML\":{\"__html\":\"(function(){\\n var attribute='bis_skin_checked';\\n function clean(node){\\n if(node.nodeType!==1)return;\\n if(node.hasAttribute(attribute))node.removeAttribute(attribute);\\n node.querySelectorAll('['+attribute+']').forEach(function(element){element.removeAttribute(attribute);});\\n }\\n clean(document.documentElement);\\n new MutationObserver(function(records){\\n records.forEach(function(record){\\n if(record.type==='attributes'){\\n if(record.target.hasAttribute(attribute))record.target.removeAttribute(attribute);\\n }else record.addedNodes.forEach(clean);\\n });\\n }).observe(document.documentElement,{subtree:true,childList:true,attributes:true,attributeFilter:[attribute]});\\n})();\"}}],[\"$\",\"script\",null,{\"dangerouslySetInnerHTML\":{\"__html\":\"(function(){try{if(location.pathname.indexOf('/docs')!==0)return;var s=localStorage.getItem('agenttwin:docs-theme');var t=s==='light'||s==='dark'?s:(window.matchMedia('(prefers-color-scheme: light)').matches?'light':'dark');var d=document.documentElement;d.dataset.docsTheme=t;d.style.colorScheme=t;}catch(e){}})();\"}}],[\"$\",\"script\",null,{\"defer\":true,\"data-domain\":\"agenttwin.si\",\"src\":\"https://analytics.hirealpha.chat/js/script.js\"}],[\"$\",\"$L2\",null,{}],[\"$\",\"meta\",null,{\"name\":\"theme-color\",\"content\":\"#090909\"}],[\"$\",\"link\",null,{\"rel\":\"icon\",\"type\":\"image/svg+xml\",\"href\":\"assets/logo/favicon.svg?v=white-rings\"}],[\"$\",\"link\",null,{\"rel\":\"preload\",\"href\":\"assets/fonts/syne-400.ttf\",\"as\":\"font\",\"type\":\"font/ttf\",\"crossOrigin\":\"anonymous\"}]]}],[\"$\",\"body\",null,{\"suppressHydrationWarning\":true,\"children\":[\"$\",\"$L3\",null,{\"parallelRouterKey\":\"children\",\"error\":\"$undefined\",\"errorStyles\":\"$undefined\",\"errorScripts\":\"$undefined\",\"template\":[\"$\",\"$L4\",null,{}],\"templateStyles\":\"$undefined\",\"templateScripts\":\"$undefined\",\"notFound\":[[[\"$\",\"title\",null,{\"children\":\"404: This page could not be found.\"}],[\"$\",\"div\",null,{\"style\":{\"fontFamily\":\"system-ui,\\\"Segoe UI\\\",Roboto,Helvetica,Arial,sans-serif,\\\"Apple Color Emoji\\\",\\\"Segoe UI Emoji\\\"\",\"height\":\"100vh\",\"textAlign\":\"center\",\"display\":\"flex\",\"flexDirection\":\"column\",\"alignItems\":\"center\",\"justifyContent\":\"center\"},\"children\":[\"$\",\"div\",null,{\"children\":[[\"$\",\"style\",null,{\"dangerouslySetInnerHTML\":{\"__html\":\"body{color:#000;background:#fff;margin:0}.next-error-h1{border-right:1px solid rgba(0,0,0,.3)}@media (prefers-color-scheme:dark){body{color:#fff;background:#000}.next-error-h1{border-right:1px solid rgba(255,255,255,.3)}}\"}}],[\"$\",\"h1\",null,{\"className\":\"next-error-h1\",\"style\":{\"display\":\"inline-block\",\"margin\":\"0 20px 0 0\",\"padding\":\"0 23px 0 0\",\"fontSize\":24,\"fontWeight\":500,\"verticalAlign\":\"top\",\"lineHeight\":\"49px\"},\"children\":404}],[\"$\",\"div\",null,{\"style\":{\"display\":\"inline-block\"},\"children\":[\"$\",\"h2\",null,{\"style\":{\"fontSize\":14,\"fontWeight\":400,\"lineHeight\":\"49px\",\"margin\":0},\"children\":\"This page could not be found.\"}]}]]}]}]],[]],\"forbidden\":\"$undefined\",\"unauthorized\":\"$undefined\"}]}]]}]]}],{\"children\":[\"dashboard\",[\"$\",\"$1\",\"c\",{\"children\":[[[\"$\",\"link\",\"0\",{\"rel\":\"stylesheet\",\"href\":\"assets/next/static/css/5d8899aaed08d7f2.css\",\"precedence\":\"next\",\"crossOrigin\":\"$undefined\",\"nonce\":\"$undefined\"}],[\"$\",\"link\",\"1\",{\"rel\":\"stylesheet\",\"href\":\"assets/next/static/css/eea0966f05042bde.css\",\"precedence\":\"next\",\"crossOrigin\":\"$undefined\",\"nonce\":\"$undefined\"}],[\"$\",\"link\",\"2\",{\"rel\":\"stylesheet\",\"href\":\"assets/next/static/css/0cf03e33b963e5cb.css\",\"precedence\":\"next\",\"crossOrigin\":\"$undefined\",\"nonce\":\"$undefined\"}]],[[\"$\",\"meta\",null,{\"name\":\"agenttwin-api-url\",\"content\":\"https://api.agenttwin.si\"}],[\"$\",\"$L3\",null,{\"parallelRouterKey\":\"children\",\"error\":\"$undefined\",\"errorStyles\":\"$undefined\",\"errorScripts\":\"$undefined\",\"template\":[\"$\",\"$L4\",null,{}],\"templateStyles\":\"$undefined\",\"templateScripts\":\"$undefined\",\"notFound\":\"$undefined\",\"forbidden\":\"$undefined\",\"unauthorized\":\"$undefined\"}]]]}],{\"children\":[\"__PAGE__\",[\"$\",\"$1\",\"c\",{\"children\":[[\"$\",\"$L5\",null,{}],[[\"$\",\"link\",\"0\",{\"rel\":\"stylesheet\",\"href\":\"assets/next/static/css/11f70fd04660da57.css\",\"precedence\":\"next\",\"crossOrigin\":\"$undefined\",\"nonce\":\"$undefined\"}],\"$L6\"],\"$L7\"]}],{},null,false]},null,false]},null,false],\"$L8\",false]],\"m\":\"$undefined\",\"G\":[\"$9\",[]],\"s\":false,\"S\":true}\n"])</script><script>self.__next_f.push([1,"a:I[9226,[],\"OutletBoundary\"]\nc:I[4943,[],\"AsyncMetadataOutlet\"]\ne:I[9226,[],\"ViewportBoundary\"]\n10:I[9226,[],\"MetadataBoundary\"]\n11:\"$Sreact.suspense\"\n6:[\"$\",\"link\",\"1\",{\"rel\":\"stylesheet\",\"href\":\"assets/next/static/css/dd3fb06005e18149.css\",\"precedence\":\"next\",\"crossOrigin\":\"$undefined\",\"nonce\":\"$undefined\"}]\n7:[\"$\",\"$La\",null,{\"children\":[\"$Lb\",[\"$\",\"$Lc\",null,{\"promise\":\"$@d\"}]]}]\n8:[\"$\",\"$1\",\"h\",{\"children\":[null,[[\"$\",\"$Le\",null,{\"children\":\"$Lf\"}],null],[\"$\",\"$L10\",null,{\"children\":[\"$\",\"div\",null,{\"hidden\":true,\"children\":[\"$\",\"$11\",null,{\"fallback\":null,\"children\":\"$L12\"}]}]}]]}]\n"])</script><script>self.__next_f.push([1,"f:[[\"$\",\"meta\",\"0\",{\"charSet\":\"utf-8\"}],[\"$\",\"meta\",\"1\",{\"name\":\"viewport\",\"content\":\"width=device-width, initial-scale=1\"}]]\nb:null\n"])</script><script>self.__next_f.push([1,"d:{\"metadata\":[[\"$\",\"title\",\"0\",{\"children\":\"Workspace | AgentTwin\"}],[\"$\",\"meta\",\"1\",{\"name\":\"description\",\"content\":\"Discover your project, test workflows and inspect recorded results.\"}]],\"error\":null,\"digest\":\"$undefined\"}\n"])</script><script>self.__next_f.push([1,"12:\"$d:metadata\"\n"])</script></body></html>
|