browsentic 0.4.13 → 0.4.15
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/dist/cli.js +432 -92
- package/dist/daemon-main.js +3 -3
- package/extension/chrome-mv3/assets/globals-Bj_wgW8U.css +2 -0
- package/extension/chrome-mv3/background.js +2 -2
- package/extension/chrome-mv3/chunks/{globals-B4qbR8F8.js → globals-NNs2RHRZ.js} +1 -1
- package/extension/chrome-mv3/chunks/popup-eocjPmx2.js +1 -0
- package/extension/chrome-mv3/chunks/sidepanel-CgfZof6T.js +11 -0
- package/extension/chrome-mv3/content-scripts/content.js +101 -19
- package/extension/chrome-mv3/manifest.json +1 -1
- package/extension/chrome-mv3/popup.html +3 -3
- package/extension/chrome-mv3/sidepanel.html +3 -3
- package/package.json +1 -1
- package/extension/chrome-mv3/assets/globals-DEu7-bvL.css +0 -2
- package/extension/chrome-mv3/chunks/popup-CBHYDoU5.js +0 -1
- package/extension/chrome-mv3/chunks/sidepanel-CdI2mAPj.js +0 -11
|
@@ -1 +1 @@
|
|
|
1
|
-
{"manifest_version":3,"name":"Browsentic","description":"Reimagine browsing as agentic — driven by the AI agent you already run, in your own logged-in browser.","version":"0.4.
|
|
1
|
+
{"manifest_version":3,"name":"Browsentic","description":"Reimagine browsing as agentic — driven by the AI agent you already run, in your own logged-in browser.","version":"0.4.15","icons":{"16":"icon/16.png","32":"icon/32.png","48":"icon/48.png","96":"icon/96.png","128":"icon/128.png"},"permissions":["storage","unlimitedStorage","activeTab","sidePanel","contextMenus","alarms","scripting","notifications","debugger","downloads","audioCapture"],"host_permissions":["<all_urls>"],"background":{"service_worker":"background.js"},"action":{"default_title":"Browsentic","default_popup":"popup.html"},"side_panel":{"default_path":"sidepanel.html"},"content_scripts":[{"matches":["*://*/*"],"js":["content-scripts/content.js"]}]}
|
|
@@ -5,10 +5,10 @@
|
|
|
5
5
|
<meta name="color-scheme" content="dark">
|
|
6
6
|
<meta name="viewport" content="width=device-width, initial-scale=1.0">
|
|
7
7
|
<title>Browsentic</title>
|
|
8
|
-
<script type="module" crossorigin src="/chunks/popup-
|
|
8
|
+
<script type="module" crossorigin src="/chunks/popup-eocjPmx2.js"></script>
|
|
9
9
|
<link rel="modulepreload" crossorigin href="/chunks/rolldown-runtime-Bh1tDfsg.js">
|
|
10
|
-
<link rel="modulepreload" crossorigin href="/chunks/globals-
|
|
11
|
-
<link rel="stylesheet" crossorigin href="/assets/globals-
|
|
10
|
+
<link rel="modulepreload" crossorigin href="/chunks/globals-NNs2RHRZ.js">
|
|
11
|
+
<link rel="stylesheet" crossorigin href="/assets/globals-Bj_wgW8U.css">
|
|
12
12
|
</head>
|
|
13
13
|
<body>
|
|
14
14
|
<div id="root"></div>
|
|
@@ -5,10 +5,10 @@
|
|
|
5
5
|
<meta name="color-scheme" content="dark">
|
|
6
6
|
<meta name="viewport" content="width=device-width, initial-scale=1.0">
|
|
7
7
|
<title>Browsentic Chat</title>
|
|
8
|
-
<script type="module" crossorigin src="/chunks/sidepanel-
|
|
8
|
+
<script type="module" crossorigin src="/chunks/sidepanel-CgfZof6T.js"></script>
|
|
9
9
|
<link rel="modulepreload" crossorigin href="/chunks/rolldown-runtime-Bh1tDfsg.js">
|
|
10
|
-
<link rel="modulepreload" crossorigin href="/chunks/globals-
|
|
11
|
-
<link rel="stylesheet" crossorigin href="/assets/globals-
|
|
10
|
+
<link rel="modulepreload" crossorigin href="/chunks/globals-NNs2RHRZ.js">
|
|
11
|
+
<link rel="stylesheet" crossorigin href="/assets/globals-Bj_wgW8U.css">
|
|
12
12
|
</head>
|
|
13
13
|
<body>
|
|
14
14
|
<div id="root"></div>
|
package/package.json
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "browsentic",
|
|
3
|
-
"version": "0.4.
|
|
3
|
+
"version": "0.4.15",
|
|
4
4
|
"description": "Hand your real, logged-in browser to the AI agent you already run. Installs the browser extension, runs the local daemon, and speaks MCP.",
|
|
5
5
|
"type": "module",
|
|
6
6
|
"license": "MIT",
|
|
@@ -1,2 +0,0 @@
|
|
|
1
|
-
/*! tailwindcss v4.3.3 | MIT License | https://tailwindcss.com */
|
|
2
|
-
@layer properties{@supports (((-webkit-hyphens:none)) and (not (margin-trim:inline))) or ((-moz-orient:inline) and (not (color:rgb(from red r g b)))){*,:before,:after,::backdrop{--tw-translate-x:0;--tw-translate-y:0;--tw-translate-z:0;--tw-rotate-x:initial;--tw-rotate-y:initial;--tw-rotate-z:initial;--tw-skew-x:initial;--tw-skew-y:initial;--tw-space-y-reverse:0;--tw-divide-y-reverse:0;--tw-border-style:solid;--tw-leading:initial;--tw-font-weight:initial;--tw-tracking:initial;--tw-ordinal:initial;--tw-slashed-zero:initial;--tw-numeric-figure:initial;--tw-numeric-spacing:initial;--tw-numeric-fraction:initial;--tw-shadow:0 0 #0000;--tw-shadow-color:initial;--tw-shadow-alpha:100%;--tw-inset-shadow:0 0 #0000;--tw-inset-shadow-color:initial;--tw-inset-shadow-alpha:100%;--tw-ring-color:initial;--tw-ring-shadow:0 0 #0000;--tw-inset-ring-color:initial;--tw-inset-ring-shadow:0 0 #0000;--tw-ring-inset:initial;--tw-ring-offset-width:0px;--tw-ring-offset-color:#fff;--tw-ring-offset-shadow:0 0 #0000;--tw-outline-style:solid;--tw-blur:initial;--tw-brightness:initial;--tw-contrast:initial;--tw-grayscale:initial;--tw-hue-rotate:initial;--tw-invert:initial;--tw-opacity:initial;--tw-saturate:initial;--tw-sepia:initial;--tw-drop-shadow:initial;--tw-drop-shadow-color:initial;--tw-drop-shadow-alpha:100%;--tw-drop-shadow-size:initial;--tw-backdrop-blur:initial;--tw-backdrop-brightness:initial;--tw-backdrop-contrast:initial;--tw-backdrop-grayscale:initial;--tw-backdrop-hue-rotate:initial;--tw-backdrop-invert:initial;--tw-backdrop-opacity:initial;--tw-backdrop-saturate:initial;--tw-backdrop-sepia:initial;--tw-duration:initial;--tw-ease:initial;--tw-scale-x:1;--tw-scale-y:1;--tw-scale-z:1;--tw-animation-delay:0s;--tw-animation-direction:normal;--tw-animation-duration:initial;--tw-animation-fill-mode:none;--tw-animation-iteration-count:1;--tw-enter-blur:0;--tw-enter-opacity:1;--tw-enter-rotate:0;--tw-enter-scale:1;--tw-enter-translate-x:0;--tw-enter-translate-y:0;--tw-exit-blur:0;--tw-exit-opacity:1;--tw-exit-rotate:0;--tw-exit-scale:1;--tw-exit-translate-x:0;--tw-exit-translate-y:0}}}@layer theme{:root,:host{--font-sans:"Inter", ui-sans-serif, system-ui, -apple-system, "Segoe UI", sans-serif;--font-mono:"JetBrains Mono", "Fira Code", ui-monospace, "SF Mono", "Cascadia Code", Menlo, Consolas, monospace;--color-black:#000;--spacing:.25rem;--text-xs:.75rem;--text-xs--line-height:calc(1 / .75);--text-sm:.875rem;--text-sm--line-height:calc(1.25 / .875);--font-weight-medium:500;--font-weight-semibold:600;--tracking-tight:-.025em;--tracking-wider:.05em;--tracking-widest:.1em;--leading-snug:1.375;--leading-relaxed:1.625;--radius-2xl:1rem;--ease-in-out:cubic-bezier(.4, 0, .2, 1);--animate-spin:spin 1s linear infinite;--animate-ping:ping 1s cubic-bezier(0, 0, .2, 1) infinite;--animate-pulse:pulse 2s cubic-bezier(.4, 0, .6, 1) infinite;--default-transition-duration:.15s;--default-transition-timing-function:cubic-bezier(.4, 0, .2, 1);--default-font-family:var(--font-sans);--default-mono-font-family:var(--font-mono);--font-display:"Inter Tight", "Inter", ui-sans-serif, system-ui, -apple-system, sans-serif;--ease-out-expo:cubic-bezier(.16, 1, .3, 1)}}@layer base{*,:after,:before,::backdrop{box-sizing:border-box;border:0 solid;margin:0;padding:0}::file-selector-button{box-sizing:border-box;border:0 solid;margin:0;padding:0}html,:host{-webkit-text-size-adjust:100%;tab-size:4;line-height:1.5;font-family:var(--default-font-family,-apple-system, BlinkMacSystemFont, "Segoe UI", Roboto, "Helvetica Neue", "Noto Sans", Arial, sans-serif, "Apple Color Emoji", "Segoe UI Emoji", "Segoe UI Symbol", "Noto Color Emoji");font-feature-settings:var(--default-font-feature-settings,normal);font-variation-settings:var(--default-font-variation-settings,normal);-webkit-tap-highlight-color:transparent}hr{height:0;color:inherit;border-top-width:1px}abbr:where([title]){-webkit-text-decoration:underline dotted;text-decoration:underline dotted}h1,h2,h3,h4,h5,h6{font-size:inherit;font-weight:inherit}a{color:inherit;-webkit-text-decoration:inherit;-webkit-text-decoration:inherit;-webkit-text-decoration:inherit;-webkit-text-decoration:inherit;text-decoration:inherit}b,strong{font-weight:bolder}code,kbd,samp,pre{font-family:var(--default-mono-font-family,ui-monospace, SFMono-Regular, Menlo, Monaco, Consolas, "Liberation Mono", "Courier New", monospace);font-feature-settings:var(--default-mono-font-feature-settings,normal);font-variation-settings:var(--default-mono-font-variation-settings,normal);font-size:1em}small{font-size:80%}sub,sup{vertical-align:baseline;font-size:75%;line-height:0;position:relative}sub{bottom:-.25em}sup{top:-.5em}table{text-indent:0;border-color:inherit;border-collapse:collapse}:-moz-focusring:where(:not(iframe)){outline:auto}progress{vertical-align:baseline}summary{display:list-item}ol,ul,menu{list-style:none}img,svg,video,canvas,audio,iframe,embed,object{vertical-align:middle;display:block}img,video{max-width:100%;height:auto}button,input,select,optgroup,textarea{font:inherit;font-feature-settings:inherit;font-variation-settings:inherit;letter-spacing:inherit;color:inherit;opacity:1;background-color:#0000;border-radius:0}::file-selector-button{font:inherit;font-feature-settings:inherit;font-variation-settings:inherit;letter-spacing:inherit;color:inherit;opacity:1;background-color:#0000;border-radius:0}:where(select:is([multiple],[size])) optgroup{font-weight:bolder}:where(select:is([multiple],[size])) optgroup option{padding-inline-start:20px}::file-selector-button{margin-inline-end:4px}::placeholder{opacity:1}@supports (not ((-webkit-appearance:-apple-pay-button))) or (contain-intrinsic-size:1px){::placeholder{color:currentColor}@supports (color:color-mix(in lab, red, red)){::placeholder{color:color-mix(in oklab, currentcolor 50%, transparent)}}}textarea{resize:vertical}::-webkit-search-decoration{-webkit-appearance:none}::-webkit-date-and-time-value{min-height:1lh;text-align:inherit}::-webkit-datetime-edit{display:inline-flex}::-webkit-datetime-edit-fields-wrapper{padding:0}::-webkit-datetime-edit{padding-block:0}::-webkit-datetime-edit-year-field{padding-block:0}::-webkit-datetime-edit-month-field{padding-block:0}::-webkit-datetime-edit-day-field{padding-block:0}::-webkit-datetime-edit-hour-field{padding-block:0}::-webkit-datetime-edit-minute-field{padding-block:0}::-webkit-datetime-edit-second-field{padding-block:0}::-webkit-datetime-edit-millisecond-field{padding-block:0}::-webkit-datetime-edit-meridiem-field{padding-block:0}::-webkit-calendar-picker-indicator{line-height:1}:-moz-ui-invalid{box-shadow:none}button,input:where([type=button],[type=reset],[type=submit]){appearance:button}::file-selector-button{appearance:button}::-webkit-inner-spin-button{height:auto}::-webkit-outer-spin-button{height:auto}[hidden]:where(:not([hidden=until-found])){display:none!important}*{border-color:var(--border);outline-color:var(--ring)}@supports (color:color-mix(in lab, red, red)){*{outline-color:color-mix(in oklab, var(--ring) 50%, transparent)}}html{background-color:var(--background)}body{background-color:var(--background);font-family:var(--font-sans);color:var(--foreground);-webkit-font-smoothing:antialiased;-moz-osx-font-smoothing:grayscale;font-feature-settings:"cv02", "cv03", "cv04", "ss01";text-rendering:optimizelegibility}h1,h2,h3{font-family:var(--font-display);letter-spacing:-.024em}body:after{content:"";z-index:100;pointer-events:none;opacity:var(--grain);background-image:url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' width='160' height='160'%3E%3Cfilter id='n'%3E%3CfeTurbulence type='fractalNoise' baseFrequency='0.85' numOctaves='3'/%3E%3C/filter%3E%3Crect width='160' height='160' filter='url(%23n)'/%3E%3C/svg%3E");position:fixed;inset:0}::selection{background:var(--brand)}@supports (color:color-mix(in lab, red, red)){::selection{background:color-mix(in oklch, var(--brand) 32%, transparent)}}::selection{color:var(--ink)}::-webkit-scrollbar{width:8px;height:8px}::-webkit-scrollbar-track{background:0 0}::-webkit-scrollbar-thumb{background:var(--surface-2);border-radius:999px}::-webkit-scrollbar-thumb:hover{background:var(--brand)}@supports (color:color-mix(in lab, red, red)){::-webkit-scrollbar-thumb:hover{background:color-mix(in oklch, var(--brand) 40%, var(--surface-2))}}}@layer components{[data-stream] .tok{animation:browsentic-token .42s var(--ease-out-expo) both}[data-stream=live]>:last-child:after{content:"";vertical-align:-.12em;background:var(--brand);width:.42em;height:.95em;box-shadow:0 0 10px var(--brand);border-radius:1px;margin-left:.14em;display:inline-block}@supports (color:color-mix(in lab, red, red)){[data-stream=live]>:last-child:after{box-shadow:0 0 10px color-mix(in oklch, var(--brand) var(--glow), transparent)}}[data-stream=live]>:last-child:after{animation:1.05s step-end infinite browsentic-caret}.enters{animation:browsentic-enter .34s var(--ease-out-expo) both}.think-dot{animation:1.2s ease-in-out infinite browsentic-think}.think-dot:nth-child(2){animation-delay:.16s}.think-dot:nth-child(3){animation-delay:.32s}.sweep:after{content:"";background:linear-gradient(90deg, transparent, var(--brand), transparent);width:30%;height:1px;animation:browsentic-sweep 1.8s var(--ease-out-expo) infinite;position:absolute;inset-block-start:0;inset-inline-start:0}}@layer utilities{.pointer-events-none{pointer-events:none}.collapse{visibility:collapse}.invisible{visibility:hidden}.visible{visibility:visible}.sr-only{clip-path:inset(50%);white-space:nowrap;border-width:0;width:1px;height:1px;margin:-1px;padding:0;position:absolute;overflow:hidden}.absolute{position:absolute}.fixed{position:fixed}.relative{position:relative}.static{position:static}.inset-0{inset:0}.inset-x-0{inset-inline:0}.top-1{top:var(--spacing)}.right-1{right:var(--spacing)}.right-1\.5{right:calc(var(--spacing) * 1.5)}.bottom-3{bottom:calc(var(--spacing) * 3)}.bottom-full{bottom:100%}.left-1\/2{left:50%}.z-20{z-index:20}.z-50{z-index:50}.mx-auto{margin-inline:auto}.mt-0\.5{margin-top:calc(var(--spacing) * .5)}.mt-1{margin-top:var(--spacing)}.mt-1\.5{margin-top:calc(var(--spacing) * 1.5)}.mt-2{margin-top:calc(var(--spacing) * 2)}.mt-2\.5{margin-top:calc(var(--spacing) * 2.5)}.mt-px{margin-top:1px}.mb-2{margin-bottom:calc(var(--spacing) * 2)}.mb-3{margin-bottom:calc(var(--spacing) * 3)}.ml-auto{margin-left:auto}.line-clamp-2{-webkit-line-clamp:2;-webkit-box-orient:vertical;display:-webkit-box;overflow:hidden}.line-clamp-3{-webkit-line-clamp:3;-webkit-box-orient:vertical;display:-webkit-box;overflow:hidden}.block{display:block}.contents{display:contents}.flex{display:flex}.grid{display:grid}.hidden{display:none}.inline{display:inline}.inline-flex{display:inline-flex}.table{display:table}.field-sizing-content{field-sizing:content}.size-1\.5{width:calc(var(--spacing) * 1.5);height:calc(var(--spacing) * 1.5)}.size-2{width:calc(var(--spacing) * 2);height:calc(var(--spacing) * 2)}.size-2\.5{width:calc(var(--spacing) * 2.5);height:calc(var(--spacing) * 2.5)}.size-3{width:calc(var(--spacing) * 3);height:calc(var(--spacing) * 3)}.size-3\.5{width:calc(var(--spacing) * 3.5);height:calc(var(--spacing) * 3.5)}.size-5{width:calc(var(--spacing) * 5);height:calc(var(--spacing) * 5)}.size-6{width:calc(var(--spacing) * 6);height:calc(var(--spacing) * 6)}.size-7{width:calc(var(--spacing) * 7);height:calc(var(--spacing) * 7)}.size-8{width:calc(var(--spacing) * 8);height:calc(var(--spacing) * 8)}.size-9{width:calc(var(--spacing) * 9);height:calc(var(--spacing) * 9)}.size-20{width:calc(var(--spacing) * 20);height:calc(var(--spacing) * 20)}.size-full{width:100%;height:100%}.h-1{height:var(--spacing)}.h-1\.5{height:calc(var(--spacing) * 1.5)}.h-2\.5{height:calc(var(--spacing) * 2.5)}.h-3{height:calc(var(--spacing) * 3)}.h-4{height:calc(var(--spacing) * 4)}.h-6{height:calc(var(--spacing) * 6)}.h-7{height:calc(var(--spacing) * 7)}.h-8{height:calc(var(--spacing) * 8)}.h-9{height:calc(var(--spacing) * 9)}.h-10{height:calc(var(--spacing) * 10)}.h-auto{height:auto}.h-full{height:100%}.h-screen{height:100vh}.max-h-7{max-height:calc(var(--spacing) * 7)}.max-h-40{max-height:calc(var(--spacing) * 40)}.max-h-48{max-height:calc(var(--spacing) * 48)}.max-h-56{max-height:calc(var(--spacing) * 56)}.max-h-64{max-height:calc(var(--spacing) * 64)}.max-h-\[45\%\]{max-height:45%}.max-h-\[60\%\]{max-height:60%}.max-h-\[var\(--radix-select-content-available-height\)\]{max-height:var(--radix-select-content-available-height)}.min-h-0{min-height:0}.min-h-8{min-height:calc(var(--spacing) * 8)}.min-h-14{min-height:calc(var(--spacing) * 14)}.min-h-16{min-height:calc(var(--spacing) * 16)}.w-2\.5{width:calc(var(--spacing) * 2.5)}.w-6\/12{width:50%}.w-7{width:calc(var(--spacing) * 7)}.w-9\/12{width:75%}.w-\[22rem\]{width:22rem}.w-fit{width:fit-content}.w-full{width:100%}.max-w-14{max-width:calc(var(--spacing) * 14)}.max-w-\[88\%\]{max-width:88%}.max-w-full{max-width:100%}.min-w-0{min-width:0}.min-w-\[8rem\]{min-width:8rem}.min-w-\[var\(--radix-select-trigger-width\)\]{min-width:var(--radix-select-trigger-width)}.min-w-full{min-width:100%}.flex-1{flex:1}.shrink-0{flex-shrink:0}.border-collapse{border-collapse:collapse}.-translate-x-1\/2{--tw-translate-x:calc(calc(1 / 2 * 100%) * -1);translate:var(--tw-translate-x) var(--tw-translate-y)}.translate-x-0\.5{--tw-translate-x:calc(var(--spacing) * .5);translate:var(--tw-translate-x) var(--tw-translate-y)}.translate-x-3\.5{--tw-translate-x:calc(var(--spacing) * 3.5);translate:var(--tw-translate-x) var(--tw-translate-y)}.rotate-180{rotate:180deg}.transform{transform:var(--tw-rotate-x,) var(--tw-rotate-y,) var(--tw-rotate-z,) var(--tw-skew-x,) var(--tw-skew-y,)}.animate-ping{animation:var(--animate-ping)}.animate-pulse{animation:var(--animate-pulse)}.animate-spin{animation:var(--animate-spin)}.cursor-default{cursor:default}.cursor-not-allowed{cursor:not-allowed}.cursor-pointer{cursor:pointer}.cursor-text{cursor:text}.touch-none{touch-action:none}.resize{resize:both}.resize-none{resize:none}.\[scrollbar-width\:none\]{scrollbar-width:none}.list-decimal{list-style-type:decimal}.list-disc{list-style-type:disc}.grid-cols-2{grid-template-columns:repeat(2,minmax(0,1fr))}.flex-col{flex-direction:column}.flex-wrap{flex-wrap:wrap}.items-baseline{align-items:baseline}.items-center{align-items:center}.items-end{align-items:flex-end}.items-start{align-items:flex-start}.justify-between{justify-content:space-between}.justify-center{justify-content:center}.gap-0\.5{gap:calc(var(--spacing) * .5)}.gap-1{gap:var(--spacing)}.gap-1\.5{gap:calc(var(--spacing) * 1.5)}.gap-2{gap:calc(var(--spacing) * 2)}.gap-2\.5{gap:calc(var(--spacing) * 2.5)}.gap-3{gap:calc(var(--spacing) * 3)}.gap-4{gap:calc(var(--spacing) * 4)}.gap-px{gap:1px}:where(.space-y-1>:not(:last-child)){--tw-space-y-reverse:0;margin-block-start:calc(var(--spacing) * var(--tw-space-y-reverse));margin-block-end:calc(var(--spacing) * calc(1 - var(--tw-space-y-reverse)))}:where(.space-y-1\.5>:not(:last-child)){--tw-space-y-reverse:0;margin-block-start:calc(calc(var(--spacing) * 1.5) * var(--tw-space-y-reverse));margin-block-end:calc(calc(var(--spacing) * 1.5) * calc(1 - var(--tw-space-y-reverse)))}:where(.space-y-2>:not(:last-child)){--tw-space-y-reverse:0;margin-block-start:calc(calc(var(--spacing) * 2) * var(--tw-space-y-reverse));margin-block-end:calc(calc(var(--spacing) * 2) * calc(1 - var(--tw-space-y-reverse)))}:where(.space-y-4>:not(:last-child)){--tw-space-y-reverse:0;margin-block-start:calc(calc(var(--spacing) * 4) * var(--tw-space-y-reverse));margin-block-end:calc(calc(var(--spacing) * 4) * calc(1 - var(--tw-space-y-reverse)))}:where(.space-y-5>:not(:last-child)){--tw-space-y-reverse:0;margin-block-start:calc(calc(var(--spacing) * 5) * var(--tw-space-y-reverse));margin-block-end:calc(calc(var(--spacing) * 5) * calc(1 - var(--tw-space-y-reverse)))}:where(.space-y-6>:not(:last-child)){--tw-space-y-reverse:0;margin-block-start:calc(calc(var(--spacing) * 6) * var(--tw-space-y-reverse));margin-block-end:calc(calc(var(--spacing) * 6) * calc(1 - var(--tw-space-y-reverse)))}.gap-x-2{column-gap:calc(var(--spacing) * 2)}.gap-x-3{column-gap:calc(var(--spacing) * 3)}.gap-y-0\.5{row-gap:calc(var(--spacing) * .5)}:where(.divide-y>:not(:last-child)){--tw-divide-y-reverse:0;border-bottom-style:var(--tw-border-style);border-top-style:var(--tw-border-style);border-top-width:calc(1px * var(--tw-divide-y-reverse));border-bottom-width:calc(1px * calc(1 - var(--tw-divide-y-reverse)))}:where(.divide-line>:not(:last-child)){border-color:var(--line)}.truncate{text-overflow:ellipsis;white-space:nowrap;overflow:hidden}.overflow-auto{overflow:auto}.overflow-hidden{overflow:hidden}.overflow-x-auto{overflow-x:auto}.overflow-x-hidden{overflow-x:hidden}.overflow-y-auto{overflow-y:auto}.rounded{border-radius:.25rem}.rounded-2xl{border-radius:var(--radius-2xl)}.rounded-\[inherit\]{border-radius:inherit}.rounded-full{border-radius:2147483647px}.rounded-lg{border-radius:var(--radius)}.rounded-md{border-radius:calc(var(--radius) - 2px)}.rounded-none{border-radius:0}.rounded-xl{border-radius:calc(var(--radius) + 4px)}.rounded-tl-md{border-top-left-radius:calc(var(--radius) - 2px)}.rounded-br-md{border-bottom-right-radius:calc(var(--radius) - 2px)}.border{border-style:var(--tw-border-style);border-width:1px}.border-0{border-style:var(--tw-border-style);border-width:0}.border-2{border-style:var(--tw-border-style);border-width:2px}.border-y{border-block-style:var(--tw-border-style);border-block-width:1px}.border-t{border-top-style:var(--tw-border-style);border-top-width:1px}.border-b{border-bottom-style:var(--tw-border-style);border-bottom-width:1px}.border-l{border-left-style:var(--tw-border-style);border-left-width:1px}.border-l-2{border-left-style:var(--tw-border-style);border-left-width:2px}.border-dashed{--tw-border-style:dashed;border-style:dashed}.border-amber\/25{border-color:var(--amber)}@supports (color:color-mix(in lab, red, red)){.border-amber\/25{border-color:color-mix(in oklab, var(--amber) 25%, transparent)}}.border-amber\/40{border-color:var(--amber)}@supports (color:color-mix(in lab, red, red)){.border-amber\/40{border-color:color-mix(in oklab, var(--amber) 40%, transparent)}}.border-border{border-color:var(--border)}.border-brand\/25{border-color:var(--brand)}@supports (color:color-mix(in lab, red, red)){.border-brand\/25{border-color:color-mix(in oklab, var(--brand) 25%, transparent)}}.border-brand\/30{border-color:var(--brand)}@supports (color:color-mix(in lab, red, red)){.border-brand\/30{border-color:color-mix(in oklab, var(--brand) 30%, transparent)}}.border-brand\/35{border-color:var(--brand)}@supports (color:color-mix(in lab, red, red)){.border-brand\/35{border-color:color-mix(in oklab, var(--brand) 35%, transparent)}}.border-brand\/40{border-color:var(--brand)}@supports (color:color-mix(in lab, red, red)){.border-brand\/40{border-color:color-mix(in oklab, var(--brand) 40%, transparent)}}.border-brand\/45{border-color:var(--brand)}@supports (color:color-mix(in lab, red, red)){.border-brand\/45{border-color:color-mix(in oklab, var(--brand) 45%, transparent)}}.border-brand\/50{border-color:var(--brand)}@supports (color:color-mix(in lab, red, red)){.border-brand\/50{border-color:color-mix(in oklab, var(--brand) 50%, transparent)}}.border-brand\/55{border-color:var(--brand)}@supports (color:color-mix(in lab, red, red)){.border-brand\/55{border-color:color-mix(in oklab, var(--brand) 55%, transparent)}}.border-brand\/60{border-color:var(--brand)}@supports (color:color-mix(in lab, red, red)){.border-brand\/60{border-color:color-mix(in oklab, var(--brand) 60%, transparent)}}.border-destructive\/35{border-color:var(--destructive)}@supports (color:color-mix(in lab, red, red)){.border-destructive\/35{border-color:color-mix(in oklab, var(--destructive) 35%, transparent)}}.border-destructive\/40{border-color:var(--destructive)}@supports (color:color-mix(in lab, red, red)){.border-destructive\/40{border-color:color-mix(in oklab, var(--destructive) 40%, transparent)}}.border-ember\/30{border-color:var(--ember)}@supports (color:color-mix(in lab, red, red)){.border-ember\/30{border-color:color-mix(in oklab, var(--ember) 30%, transparent)}}.border-ember\/40{border-color:var(--ember)}@supports (color:color-mix(in lab, red, red)){.border-ember\/40{border-color:color-mix(in oklab, var(--ember) 40%, transparent)}}.border-ember\/45{border-color:var(--ember)}@supports (color:color-mix(in lab, red, red)){.border-ember\/45{border-color:color-mix(in oklab, var(--ember) 45%, transparent)}}.border-lime\/30{border-color:var(--lime)}@supports (color:color-mix(in lab, red, red)){.border-lime\/30{border-color:color-mix(in oklab, var(--lime) 30%, transparent)}}.border-line{border-color:var(--line)}.border-line-strong{border-color:var(--line-strong)}.border-magenta\/35{border-color:var(--magenta)}@supports (color:color-mix(in lab, red, red)){.border-magenta\/35{border-color:color-mix(in oklab, var(--magenta) 35%, transparent)}}.border-magenta\/60{border-color:var(--magenta)}@supports (color:color-mix(in lab, red, red)){.border-magenta\/60{border-color:color-mix(in oklab, var(--magenta) 60%, transparent)}}.border-t-transparent{border-top-color:#0000}.border-l-transparent{border-left-color:#0000}.bg-amber,.bg-amber\/8{background-color:var(--amber)}@supports (color:color-mix(in lab, red, red)){.bg-amber\/8{background-color:color-mix(in oklab, var(--amber) 8%, transparent)}}.bg-amber\/10{background-color:var(--amber)}@supports (color:color-mix(in lab, red, red)){.bg-amber\/10{background-color:color-mix(in oklab, var(--amber) 10%, transparent)}}.bg-amber\/12{background-color:var(--amber)}@supports (color:color-mix(in lab, red, red)){.bg-amber\/12{background-color:color-mix(in oklab, var(--amber) 12%, transparent)}}.bg-amber\/15{background-color:var(--amber)}@supports (color:color-mix(in lab, red, red)){.bg-amber\/15{background-color:color-mix(in oklab, var(--amber) 15%, transparent)}}.bg-background{background-color:var(--background)}.bg-brand,.bg-brand\/5{background-color:var(--brand)}@supports (color:color-mix(in lab, red, red)){.bg-brand\/5{background-color:color-mix(in oklab, var(--brand) 5%, transparent)}}.bg-brand\/8{background-color:var(--brand)}@supports (color:color-mix(in lab, red, red)){.bg-brand\/8{background-color:color-mix(in oklab, var(--brand) 8%, transparent)}}.bg-brand\/10{background-color:var(--brand)}@supports (color:color-mix(in lab, red, red)){.bg-brand\/10{background-color:color-mix(in oklab, var(--brand) 10%, transparent)}}.bg-brand\/12{background-color:var(--brand)}@supports (color:color-mix(in lab, red, red)){.bg-brand\/12{background-color:color-mix(in oklab, var(--brand) 12%, transparent)}}.bg-brand\/20{background-color:var(--brand)}@supports (color:color-mix(in lab, red, red)){.bg-brand\/20{background-color:color-mix(in oklab, var(--brand) 20%, transparent)}}.bg-brand\/70{background-color:var(--brand)}@supports (color:color-mix(in lab, red, red)){.bg-brand\/70{background-color:color-mix(in oklab, var(--brand) 70%, transparent)}}.bg-destructive,.bg-destructive\/8{background-color:var(--destructive)}@supports (color:color-mix(in lab, red, red)){.bg-destructive\/8{background-color:color-mix(in oklab, var(--destructive) 8%, transparent)}}.bg-destructive\/10{background-color:var(--destructive)}@supports (color:color-mix(in lab, red, red)){.bg-destructive\/10{background-color:color-mix(in oklab, var(--destructive) 10%, transparent)}}.bg-destructive\/12{background-color:var(--destructive)}@supports (color:color-mix(in lab, red, red)){.bg-destructive\/12{background-color:color-mix(in oklab, var(--destructive) 12%, transparent)}}.bg-ember,.bg-ember\/8{background-color:var(--ember)}@supports (color:color-mix(in lab, red, red)){.bg-ember\/8{background-color:color-mix(in oklab, var(--ember) 8%, transparent)}}.bg-ember\/10{background-color:var(--ember)}@supports (color:color-mix(in lab, red, red)){.bg-ember\/10{background-color:color-mix(in oklab, var(--ember) 10%, transparent)}}.bg-ember\/12{background-color:var(--ember)}@supports (color:color-mix(in lab, red, red)){.bg-ember\/12{background-color:color-mix(in oklab, var(--ember) 12%, transparent)}}.bg-ground{background-color:var(--ground)}.bg-ground-2\/70{background-color:var(--ground-2)}@supports (color:color-mix(in lab, red, red)){.bg-ground-2\/70{background-color:color-mix(in oklab, var(--ground-2) 70%, transparent)}}.bg-ground-2\/80{background-color:var(--ground-2)}@supports (color:color-mix(in lab, red, red)){.bg-ground-2\/80{background-color:color-mix(in oklab, var(--ground-2) 80%, transparent)}}.bg-ground\/40{background-color:var(--ground)}@supports (color:color-mix(in lab, red, red)){.bg-ground\/40{background-color:color-mix(in oklab, var(--ground) 40%, transparent)}}.bg-ground\/60{background-color:var(--ground)}@supports (color:color-mix(in lab, red, red)){.bg-ground\/60{background-color:color-mix(in oklab, var(--ground) 60%, transparent)}}.bg-ground\/70{background-color:var(--ground)}@supports (color:color-mix(in lab, red, red)){.bg-ground\/70{background-color:color-mix(in oklab, var(--ground) 70%, transparent)}}.bg-ground\/85{background-color:var(--ground)}@supports (color:color-mix(in lab, red, red)){.bg-ground\/85{background-color:color-mix(in oklab, var(--ground) 85%, transparent)}}.bg-ground\/96{background-color:var(--ground)}@supports (color:color-mix(in lab, red, red)){.bg-ground\/96{background-color:color-mix(in oklab, var(--ground) 96%, transparent)}}.bg-ink{background-color:var(--ink)}.bg-ink-faint,.bg-ink-faint\/50{background-color:var(--ink-faint)}@supports (color:color-mix(in lab, red, red)){.bg-ink-faint\/50{background-color:color-mix(in oklab, var(--ink-faint) 50%, transparent)}}.bg-ink-faint\/60{background-color:var(--ink-faint)}@supports (color:color-mix(in lab, red, red)){.bg-ink-faint\/60{background-color:color-mix(in oklab, var(--ink-faint) 60%, transparent)}}.bg-ink\/30{background-color:var(--ink)}@supports (color:color-mix(in lab, red, red)){.bg-ink\/30{background-color:color-mix(in oklab, var(--ink) 30%, transparent)}}.bg-ink\/75{background-color:var(--ink)}@supports (color:color-mix(in lab, red, red)){.bg-ink\/75{background-color:color-mix(in oklab, var(--ink) 75%, transparent)}}.bg-lime,.bg-lime\/8{background-color:var(--lime)}@supports (color:color-mix(in lab, red, red)){.bg-lime\/8{background-color:color-mix(in oklab, var(--lime) 8%, transparent)}}.bg-magenta,.bg-magenta\/8{background-color:var(--magenta)}@supports (color:color-mix(in lab, red, red)){.bg-magenta\/8{background-color:color-mix(in oklab, var(--magenta) 8%, transparent)}}.bg-magenta\/15{background-color:var(--magenta)}@supports (color:color-mix(in lab, red, red)){.bg-magenta\/15{background-color:color-mix(in oklab, var(--magenta) 15%, transparent)}}.bg-magenta\/25{background-color:var(--magenta)}@supports (color:color-mix(in lab, red, red)){.bg-magenta\/25{background-color:color-mix(in oklab, var(--magenta) 25%, transparent)}}.bg-magenta\/30{background-color:var(--magenta)}@supports (color:color-mix(in lab, red, red)){.bg-magenta\/30{background-color:color-mix(in oklab, var(--magenta) 30%, transparent)}}.bg-surface{background-color:var(--surface)}.bg-surface-2{background-color:var(--surface-2)}.bg-surface\/20{background-color:var(--surface)}@supports (color:color-mix(in lab, red, red)){.bg-surface\/20{background-color:color-mix(in oklab, var(--surface) 20%, transparent)}}.bg-surface\/30{background-color:var(--surface)}@supports (color:color-mix(in lab, red, red)){.bg-surface\/30{background-color:color-mix(in oklab, var(--surface) 30%, transparent)}}.bg-surface\/40{background-color:var(--surface)}@supports (color:color-mix(in lab, red, red)){.bg-surface\/40{background-color:color-mix(in oklab, var(--surface) 40%, transparent)}}.bg-surface\/60{background-color:var(--surface)}@supports (color:color-mix(in lab, red, red)){.bg-surface\/60{background-color:color-mix(in oklab, var(--surface) 60%, transparent)}}.bg-surface\/70{background-color:var(--surface)}@supports (color:color-mix(in lab, red, red)){.bg-surface\/70{background-color:color-mix(in oklab, var(--surface) 70%, transparent)}}.bg-transparent{background-color:#0000}.dot-grid{background-image:radial-gradient(circle at 1px 1px, var(--wash) 1px, transparent 0)}@supports (color:color-mix(in lab, red, red)){.dot-grid{background-image:radial-gradient(circle at 1px 1px, color-mix(in oklch, var(--wash) 9%, transparent) 1px, transparent 0)}}.dot-grid{background-size:22px 22px}.fade-bottom{-webkit-mask-image:linear-gradient(#000 78%,#0000 100%);mask-image:linear-gradient(#000 78%,#0000 100%)}.fill-current{fill:currentColor}.object-cover{object-fit:cover}.p-0\.5{padding:calc(var(--spacing) * .5)}.p-1{padding:var(--spacing)}.p-2{padding:calc(var(--spacing) * 2)}.p-2\.5{padding:calc(var(--spacing) * 2.5)}.p-3{padding:calc(var(--spacing) * 3)}.p-4{padding:calc(var(--spacing) * 4)}.p-px{padding:1px}.px-1{padding-inline:var(--spacing)}.px-1\.5{padding-inline:calc(var(--spacing) * 1.5)}.px-2{padding-inline:calc(var(--spacing) * 2)}.px-2\.5{padding-inline:calc(var(--spacing) * 2.5)}.px-3{padding-inline:calc(var(--spacing) * 3)}.px-4{padding-inline:calc(var(--spacing) * 4)}.px-6{padding-inline:calc(var(--spacing) * 6)}.py-0{padding-block:0}.py-0\.5{padding-block:calc(var(--spacing) * .5)}.py-1{padding-block:var(--spacing)}.py-1\.5{padding-block:calc(var(--spacing) * 1.5)}.py-2{padding-block:calc(var(--spacing) * 2)}.py-2\.5{padding-block:calc(var(--spacing) * 2.5)}.py-3{padding-block:calc(var(--spacing) * 3)}.py-4{padding-block:calc(var(--spacing) * 4)}.py-6{padding-block:calc(var(--spacing) * 6)}.py-8{padding-block:calc(var(--spacing) * 8)}.py-px{padding-block:1px}.pt-1{padding-top:var(--spacing)}.pt-2{padding-top:calc(var(--spacing) * 2)}.pt-2\.5{padding-top:calc(var(--spacing) * 2.5)}.pr-6{padding-right:calc(var(--spacing) * 6)}.pb-0{padding-bottom:0}.pb-1{padding-bottom:var(--spacing)}.pb-1\.5{padding-bottom:calc(var(--spacing) * 1.5)}.pb-2{padding-bottom:calc(var(--spacing) * 2)}.pb-6{padding-bottom:calc(var(--spacing) * 6)}.pl-2{padding-left:calc(var(--spacing) * 2)}.pl-2\.5{padding-left:calc(var(--spacing) * 2.5)}.pl-5{padding-left:calc(var(--spacing) * 5)}.pl-\[18px\]{padding-left:18px}.text-center{text-align:center}.text-left{text-align:left}.text-right{text-align:right}.align-top{vertical-align:top}.font-display{font-family:var(--font-display)}.font-mono{font-family:var(--font-mono)}.text-sm{font-size:var(--text-sm);line-height:var(--tw-leading,var(--text-sm--line-height))}.text-xs{font-size:var(--text-xs);line-height:var(--tw-leading,var(--text-xs--line-height))}.text-\[0\.85em\]{font-size:.85em}.text-\[0\.95rem\]{font-size:.95rem}.text-\[0\.9375rem\]{font-size:.9375rem}.text-\[8px\]{font-size:8px}.text-\[9px\]{font-size:9px}.text-\[10px\]{font-size:10px}.text-\[11px\]{font-size:11px}.leading-none{--tw-leading:1;line-height:1}.leading-relaxed{--tw-leading:var(--leading-relaxed);line-height:var(--leading-relaxed)}.leading-snug{--tw-leading:var(--leading-snug);line-height:var(--leading-snug)}.font-medium{--tw-font-weight:var(--font-weight-medium);font-weight:var(--font-weight-medium)}.font-semibold{--tw-font-weight:var(--font-weight-semibold);font-weight:var(--font-weight-semibold)}.tracking-\[0\.1em\]{--tw-tracking:.1em;letter-spacing:.1em}.tracking-\[0\.08em\]{--tw-tracking:.08em;letter-spacing:.08em}.tracking-\[0\.12em\]{--tw-tracking:.12em;letter-spacing:.12em}.tracking-\[0\.14em\]{--tw-tracking:.14em;letter-spacing:.14em}.tracking-tight{--tw-tracking:var(--tracking-tight);letter-spacing:var(--tracking-tight)}.tracking-wider{--tw-tracking:var(--tracking-wider);letter-spacing:var(--tracking-wider)}.tracking-widest{--tw-tracking:var(--tracking-widest);letter-spacing:var(--tracking-widest)}.break-words{overflow-wrap:break-word}.wrap-anywhere{overflow-wrap:anywhere}.break-all{word-break:break-all}.whitespace-nowrap{white-space:nowrap}.whitespace-pre{white-space:pre}.whitespace-pre-wrap{white-space:pre-wrap}.text-amber{color:var(--amber)}.text-brand{color:var(--brand)}.text-destructive{color:var(--destructive)}.text-ember{color:var(--ember)}.text-ground{color:var(--ground)}.text-ink{color:var(--ink)}.text-ink-dim{color:var(--ink-dim)}.text-ink-faint{color:var(--ink-faint)}.text-lime,.text-lime\/80{color:var(--lime)}@supports (color:color-mix(in lab, red, red)){.text-lime\/80{color:color-mix(in oklab, var(--lime) 80%, transparent)}}.text-magenta{color:var(--magenta)}.lowercase{text-transform:lowercase}.uppercase{text-transform:uppercase}.italic{font-style:italic}.ordinal{--tw-ordinal:ordinal;font-variant-numeric:var(--tw-ordinal,) var(--tw-slashed-zero,) var(--tw-numeric-figure,) var(--tw-numeric-spacing,) var(--tw-numeric-fraction,)}.tabular-nums{--tw-numeric-spacing:tabular-nums;font-variant-numeric:var(--tw-ordinal,) var(--tw-slashed-zero,) var(--tw-numeric-figure,) var(--tw-numeric-spacing,) var(--tw-numeric-fraction,)}.underline{text-decoration-line:underline}.decoration-1{text-decoration-thickness:1px}.underline-offset-2{text-underline-offset:2px}.underline-offset-4{text-underline-offset:4px}.accent-brand{accent-color:var(--brand)}.accent-destructive{accent-color:var(--destructive)}.opacity-40{opacity:.4}.opacity-50{opacity:.5}.opacity-60{opacity:.6}.opacity-70{opacity:.7}.shadow{--tw-shadow:0 1px 3px 0 var(--tw-shadow-color,#0000001a), 0 1px 2px -1px var(--tw-shadow-color,#0000001a);box-shadow:var(--tw-inset-shadow), var(--tw-inset-ring-shadow), var(--tw-ring-offset-shadow), var(--tw-ring-shadow), var(--tw-shadow)}.shadow-lg{--tw-shadow:0 10px 15px -3px var(--tw-shadow-color,#0000001a), 0 4px 6px -4px var(--tw-shadow-color,#0000001a);box-shadow:var(--tw-inset-shadow), var(--tw-inset-ring-shadow), var(--tw-ring-offset-shadow), var(--tw-ring-shadow), var(--tw-shadow)}.shadow-sm{--tw-shadow:0 1px 3px 0 var(--tw-shadow-color,#0000001a), 0 1px 2px -1px var(--tw-shadow-color,#0000001a);box-shadow:var(--tw-inset-shadow), var(--tw-inset-ring-shadow), var(--tw-ring-offset-shadow), var(--tw-ring-shadow), var(--tw-shadow)}.shadow-xl{--tw-shadow:0 20px 25px -5px var(--tw-shadow-color,#0000001a), 0 8px 10px -6px var(--tw-shadow-color,#0000001a);box-shadow:var(--tw-inset-shadow), var(--tw-inset-ring-shadow), var(--tw-ring-offset-shadow), var(--tw-ring-shadow), var(--tw-shadow)}.ring{--tw-ring-shadow:var(--tw-ring-inset,) 0 0 0 calc(1px + var(--tw-ring-offset-width)) var(--tw-ring-color,currentcolor);box-shadow:var(--tw-inset-shadow), var(--tw-inset-ring-shadow), var(--tw-ring-offset-shadow), var(--tw-ring-shadow), var(--tw-shadow)}.glow-brand{box-shadow:0 6px 26px -10px var(--brand)}@supports (color:color-mix(in lab, red, red)){.glow-brand{box-shadow:0 6px 26px -10px color-mix(in oklch, var(--brand) var(--glow), transparent)}}.glow-destructive{box-shadow:0 6px 26px -10px var(--destructive)}@supports (color:color-mix(in lab, red, red)){.glow-destructive{box-shadow:0 6px 26px -10px color-mix(in oklch, var(--destructive) var(--glow), transparent)}}.glow-dot{box-shadow:0 0 8px 1px}@supports (color:color-mix(in lab, red, red)){.glow-dot{box-shadow:0 0 8px 1px color-mix(in oklch, currentColor var(--glow), transparent)}}.shadow-black\/50{--tw-shadow-color:#00000080}@supports (color:color-mix(in lab, red, red)){.shadow-black\/50{--tw-shadow-color:color-mix(in oklab, color-mix(in oklab, var(--color-black) 50%, transparent) var(--tw-shadow-alpha), transparent)}}.outline{outline-style:var(--tw-outline-style);outline-width:1px}.blur{--tw-blur:blur(8px);filter:var(--tw-blur,) var(--tw-brightness,) var(--tw-contrast,) var(--tw-grayscale,) var(--tw-hue-rotate,) var(--tw-invert,) var(--tw-saturate,) var(--tw-sepia,) var(--tw-drop-shadow,)}.invert{--tw-invert:invert(100%);filter:var(--tw-blur,) var(--tw-brightness,) var(--tw-contrast,) var(--tw-grayscale,) var(--tw-hue-rotate,) var(--tw-invert,) var(--tw-saturate,) var(--tw-sepia,) var(--tw-drop-shadow,)}.filter{filter:var(--tw-blur,) var(--tw-brightness,) var(--tw-contrast,) var(--tw-grayscale,) var(--tw-hue-rotate,) var(--tw-invert,) var(--tw-saturate,) var(--tw-sepia,) var(--tw-drop-shadow,)}.backdrop-blur{--tw-backdrop-blur:blur(8px);-webkit-backdrop-filter:var(--tw-backdrop-blur,) var(--tw-backdrop-brightness,) var(--tw-backdrop-contrast,) var(--tw-backdrop-grayscale,) var(--tw-backdrop-hue-rotate,) var(--tw-backdrop-invert,) var(--tw-backdrop-opacity,) var(--tw-backdrop-saturate,) var(--tw-backdrop-sepia,);backdrop-filter:var(--tw-backdrop-blur,) var(--tw-backdrop-brightness,) var(--tw-backdrop-contrast,) var(--tw-backdrop-grayscale,) var(--tw-backdrop-hue-rotate,) var(--tw-backdrop-invert,) var(--tw-backdrop-opacity,) var(--tw-backdrop-saturate,) var(--tw-backdrop-sepia,)}.backdrop-blur-\[2px\]{--tw-backdrop-blur:blur(2px);-webkit-backdrop-filter:var(--tw-backdrop-blur,) var(--tw-backdrop-brightness,) var(--tw-backdrop-contrast,) var(--tw-backdrop-grayscale,) var(--tw-backdrop-hue-rotate,) var(--tw-backdrop-invert,) var(--tw-backdrop-opacity,) var(--tw-backdrop-saturate,) var(--tw-backdrop-sepia,);backdrop-filter:var(--tw-backdrop-blur,) var(--tw-backdrop-brightness,) var(--tw-backdrop-contrast,) var(--tw-backdrop-grayscale,) var(--tw-backdrop-hue-rotate,) var(--tw-backdrop-invert,) var(--tw-backdrop-opacity,) var(--tw-backdrop-saturate,) var(--tw-backdrop-sepia,)}.transition{transition-property:color,background-color,border-color,outline-color,text-decoration-color,fill,stroke,--tw-gradient-from,--tw-gradient-via,--tw-gradient-to,opacity,box-shadow,transform,translate,scale,rotate,filter,-webkit-backdrop-filter,backdrop-filter,display,content-visibility,overlay,pointer-events;transition-timing-function:var(--tw-ease,var(--default-transition-timing-function));transition-duration:var(--tw-duration,var(--default-transition-duration))}.transition-\[width\]{transition-property:width;transition-timing-function:var(--tw-ease,var(--default-transition-timing-function));transition-duration:var(--tw-duration,var(--default-transition-duration))}.transition-all{transition-property:all;transition-timing-function:var(--tw-ease,var(--default-transition-timing-function));transition-duration:var(--tw-duration,var(--default-transition-duration))}.transition-colors{transition-property:color,background-color,border-color,outline-color,text-decoration-color,fill,stroke,--tw-gradient-from,--tw-gradient-via,--tw-gradient-to;transition-timing-function:var(--tw-ease,var(--default-transition-timing-function));transition-duration:var(--tw-duration,var(--default-transition-duration))}.transition-opacity{transition-property:opacity;transition-timing-function:var(--tw-ease,var(--default-transition-timing-function));transition-duration:var(--tw-duration,var(--default-transition-duration))}.transition-transform{transition-property:transform,translate,scale,rotate;transition-timing-function:var(--tw-ease,var(--default-transition-timing-function));transition-duration:var(--tw-duration,var(--default-transition-duration))}.duration-200{--tw-duration:.2s;transition-duration:.2s}.duration-500{--tw-duration:.5s;transition-duration:.5s}.ease-in-out{--tw-ease:var(--ease-in-out);transition-timing-function:var(--ease-in-out)}.outline-none{--tw-outline-style:none;outline-style:none}.panel-card{background:linear-gradient(180deg, var(--wash), var(--wash))}@supports (color:color-mix(in lab, red, red)){.panel-card{background:linear-gradient(180deg, color-mix(in oklch, var(--wash) 4.5%, transparent), color-mix(in oklch, var(--wash) 1.5%, transparent))}}.panel-card{border:1px solid var(--line)}.select-none{-webkit-user-select:none;user-select:none}.blur-in{--tw-enter-blur:20px}.neon-text{text-shadow:0 0 12px}@supports (color:color-mix(in lab, red, red)){.neon-text{text-shadow:0 0 12px color-mix(in oklch, currentColor var(--neon), transparent)}}.running{animation-play-state:running}@media (hover:hover){.group-hover\:opacity-85:is(:where(.group):hover *){opacity:.85}}.selection\:bg-brand\/30 ::selection{background-color:var(--brand)}@supports (color:color-mix(in lab, red, red)){.selection\:bg-brand\/30 ::selection{background-color:color-mix(in oklab, var(--brand) 30%, transparent)}}.selection\:bg-brand\/30::selection{background-color:var(--brand)}@supports (color:color-mix(in lab, red, red)){.selection\:bg-brand\/30::selection{background-color:color-mix(in oklab, var(--brand) 30%, transparent)}}.selection\:text-ink ::selection{color:var(--ink)}.selection\:text-ink::selection{color:var(--ink)}.placeholder\:text-ink-faint::placeholder{color:var(--ink-faint)}@media (hover:hover){.hover\:border-brand\/40:hover{border-color:var(--brand)}@supports (color:color-mix(in lab, red, red)){.hover\:border-brand\/40:hover{border-color:color-mix(in oklab, var(--brand) 40%, transparent)}}.hover\:border-brand\/45:hover{border-color:var(--brand)}@supports (color:color-mix(in lab, red, red)){.hover\:border-brand\/45:hover{border-color:color-mix(in oklab, var(--brand) 45%, transparent)}}.hover\:border-brand\/50:hover{border-color:var(--brand)}@supports (color:color-mix(in lab, red, red)){.hover\:border-brand\/50:hover{border-color:color-mix(in oklab, var(--brand) 50%, transparent)}}.hover\:border-line-strong:hover{border-color:var(--line-strong)}.hover\:bg-brand\/12:hover{background-color:var(--brand)}@supports (color:color-mix(in lab, red, red)){.hover\:bg-brand\/12:hover{background-color:color-mix(in oklab, var(--brand) 12%, transparent)}}.hover\:bg-brand\/15:hover{background-color:var(--brand)}@supports (color:color-mix(in lab, red, red)){.hover\:bg-brand\/15:hover{background-color:color-mix(in oklab, var(--brand) 15%, transparent)}}.hover\:bg-brand\/20:hover{background-color:var(--brand)}@supports (color:color-mix(in lab, red, red)){.hover\:bg-brand\/20:hover{background-color:color-mix(in oklab, var(--brand) 20%, transparent)}}.hover\:bg-brand\/40:hover{background-color:var(--brand)}@supports (color:color-mix(in lab, red, red)){.hover\:bg-brand\/40:hover{background-color:color-mix(in oklab, var(--brand) 40%, transparent)}}.hover\:bg-brand\/90:hover{background-color:var(--brand)}@supports (color:color-mix(in lab, red, red)){.hover\:bg-brand\/90:hover{background-color:color-mix(in oklab, var(--brand) 90%, transparent)}}.hover\:bg-destructive\/90:hover{background-color:var(--destructive)}@supports (color:color-mix(in lab, red, red)){.hover\:bg-destructive\/90:hover{background-color:color-mix(in oklab, var(--destructive) 90%, transparent)}}.hover\:bg-ember\/10:hover{background-color:var(--ember)}@supports (color:color-mix(in lab, red, red)){.hover\:bg-ember\/10:hover{background-color:color-mix(in oklab, var(--ember) 10%, transparent)}}.hover\:bg-ground\/40:hover{background-color:var(--ground)}@supports (color:color-mix(in lab, red, red)){.hover\:bg-ground\/40:hover{background-color:color-mix(in oklab, var(--ground) 40%, transparent)}}.hover\:bg-surface:hover{background-color:var(--surface)}.hover\:bg-surface-2:hover{background-color:var(--surface-2)}.hover\:bg-surface\/60:hover{background-color:var(--surface)}@supports (color:color-mix(in lab, red, red)){.hover\:bg-surface\/60:hover{background-color:color-mix(in oklab, var(--surface) 60%, transparent)}}.hover\:bg-surface\/70:hover{background-color:var(--surface)}@supports (color:color-mix(in lab, red, red)){.hover\:bg-surface\/70:hover{background-color:color-mix(in oklab, var(--surface) 70%, transparent)}}.hover\:text-brand:hover{color:var(--brand)}.hover\:text-destructive:hover{color:var(--destructive)}.hover\:text-ember:hover{color:var(--ember)}.hover\:text-ink:hover{color:var(--ink)}.hover\:text-ink-dim:hover{color:var(--ink-dim)}.hover\:text-magenta:hover{color:var(--magenta)}.hover\:underline:hover{text-decoration-line:underline}.hover\:opacity-80:hover{opacity:.8}}.focus\:bg-brand\/15:focus{background-color:var(--brand)}@supports (color:color-mix(in lab, red, red)){.focus\:bg-brand\/15:focus{background-color:color-mix(in oklab, var(--brand) 15%, transparent)}}.focus\:text-brand:focus{color:var(--brand)}.focus-visible\:border-0:focus-visible{border-style:var(--tw-border-style);border-width:0}.focus-visible\:border-brand\/55:focus-visible{border-color:var(--brand)}@supports (color:color-mix(in lab, red, red)){.focus-visible\:border-brand\/55:focus-visible{border-color:color-mix(in oklab, var(--brand) 55%, transparent)}}.focus-visible\:bg-ground\/80:focus-visible{background-color:var(--ground)}@supports (color:color-mix(in lab, red, red)){.focus-visible\:bg-ground\/80:focus-visible{background-color:color-mix(in oklab, var(--ground) 80%, transparent)}}.focus-visible\:ring-2:focus-visible{--tw-ring-shadow:var(--tw-ring-inset,) 0 0 0 calc(2px + var(--tw-ring-offset-width)) var(--tw-ring-color,currentcolor);box-shadow:var(--tw-inset-shadow), var(--tw-inset-ring-shadow), var(--tw-ring-offset-shadow), var(--tw-ring-shadow), var(--tw-shadow)}.focus-visible\:ring-brand\/50:focus-visible{--tw-ring-color:var(--brand)}@supports (color:color-mix(in lab, red, red)){.focus-visible\:ring-brand\/50:focus-visible{--tw-ring-color:color-mix(in oklab, var(--brand) 50%, transparent)}}.focus-visible\:ring-ring\/60:focus-visible{--tw-ring-color:var(--ring)}@supports (color:color-mix(in lab, red, red)){.focus-visible\:ring-ring\/60:focus-visible{--tw-ring-color:color-mix(in oklab, var(--ring) 60%, transparent)}}.focus-visible\:ring-offset-2:focus-visible{--tw-ring-offset-width:2px;--tw-ring-offset-shadow:var(--tw-ring-inset,) 0 0 0 var(--tw-ring-offset-width) var(--tw-ring-offset-color)}.focus-visible\:ring-offset-ground:focus-visible{--tw-ring-offset-color:var(--ground)}.focus-visible\:outline-none:focus-visible{--tw-outline-style:none;outline-style:none}@media (hover:hover){.enabled\:hover\:scale-105:enabled:hover{--tw-scale-x:105%;--tw-scale-y:105%;--tw-scale-z:105%;scale:var(--tw-scale-x) var(--tw-scale-y)}.enabled\:hover\:border-line-strong:enabled:hover{border-color:var(--line-strong)}.enabled\:hover\:bg-brand\/20:enabled:hover{background-color:var(--brand)}@supports (color:color-mix(in lab, red, red)){.enabled\:hover\:bg-brand\/20:enabled:hover{background-color:color-mix(in oklab, var(--brand) 20%, transparent)}}.enabled\:hover\:text-ink:enabled:hover{color:var(--ink)}}.disabled\:pointer-events-none:disabled{pointer-events:none}.disabled\:cursor-not-allowed:disabled{cursor:not-allowed}.disabled\:opacity-40:disabled{opacity:.4}.disabled\:opacity-45:disabled{opacity:.45}.disabled\:opacity-50:disabled{opacity:.5}.has-\[textarea\:focus\]\:border-brand\/50:has(:is(textarea:focus)){border-color:var(--brand)}@supports (color:color-mix(in lab, red, red)){.has-\[textarea\:focus\]\:border-brand\/50:has(:is(textarea:focus)){border-color:color-mix(in oklab, var(--brand) 50%, transparent)}}.has-\[\>svg\]\:px-2\.5:has(>svg){padding-inline:calc(var(--spacing) * 2.5)}.has-\[\>svg\]\:px-3\.5:has(>svg){padding-inline:calc(var(--spacing) * 3.5)}.has-\[\>svg\]\:px-5:has(>svg){padding-inline:calc(var(--spacing) * 5)}.aria-invalid\:border-destructive[aria-invalid=true],.aria-invalid\:border-destructive\/60[aria-invalid=true]{border-color:var(--destructive)}@supports (color:color-mix(in lab, red, red)){.aria-invalid\:border-destructive\/60[aria-invalid=true]{border-color:color-mix(in oklab, var(--destructive) 60%, transparent)}}.data-\[disabled\]\:pointer-events-none[data-disabled]{pointer-events:none}.data-\[disabled\]\:opacity-50[data-disabled]{opacity:.5}.data-\[side\=bottom\]\:slide-in-from-top-1[data-side=bottom]{--tw-enter-translate-y:calc(1*var(--spacing)*-1)}.data-\[side\=top\]\:slide-in-from-bottom-1[data-side=top]{--tw-enter-translate-y:calc(1*var(--spacing))}.data-\[state\=closed\]\:animate-out[data-state=closed]{animation:exit var(--tw-animation-duration,var(--tw-duration,.15s))var(--tw-ease,ease)var(--tw-animation-delay,0s)var(--tw-animation-iteration-count,1)var(--tw-animation-direction,normal)var(--tw-animation-fill-mode,none)}.data-\[state\=closed\]\:fade-out-0[data-state=closed]{--tw-exit-opacity:0}.data-\[state\=closed\]\:zoom-out-95[data-state=closed]{--tw-exit-scale:.95}.data-\[state\=open\]\:animate-in[data-state=open]{animation:enter var(--tw-animation-duration,var(--tw-duration,.15s))var(--tw-ease,ease)var(--tw-animation-delay,0s)var(--tw-animation-iteration-count,1)var(--tw-animation-direction,normal)var(--tw-animation-fill-mode,none)}.data-\[state\=open\]\:fade-in-0[data-state=open]{--tw-enter-opacity:0}.data-\[state\=open\]\:zoom-in-95[data-state=open]{--tw-enter-scale:.95}@media not all and (width>=19rem){.max-\[19rem\]\:hidden{display:none}}.\[\&_svg\]\:pointer-events-none svg{pointer-events:none}.\[\&_svg\]\:shrink-0 svg{flex-shrink:0}.\[\&_svg\:not\(\[class\*\=\'size-\'\]\)\]\:size-4 svg:not([class*=size-]){width:calc(var(--spacing) * 4);height:calc(var(--spacing) * 4)}.\[\&\:\:-webkit-scrollbar\]\:hidden::-webkit-scrollbar{display:none}.\[\&\>div\]\:block\!>div{display:block!important}.\[\&\>span\]\:min-w-0>span{min-width:0}.\[\&\>span\]\:truncate>span{text-overflow:ellipsis;white-space:nowrap;overflow:hidden}.\[\&\>svg\]\:pointer-events-none>svg{pointer-events:none}.\[\&\>svg\]\:size-2\.5>svg{width:calc(var(--spacing) * 2.5);height:calc(var(--spacing) * 2.5)}}@property --tw-animation-delay{syntax:"*";inherits:false;initial-value:0s}@property --tw-animation-direction{syntax:"*";inherits:false;initial-value:normal}@property --tw-animation-duration{syntax:"*";inherits:false}@property --tw-animation-fill-mode{syntax:"*";inherits:false;initial-value:none}@property --tw-animation-iteration-count{syntax:"*";inherits:false;initial-value:1}@property --tw-enter-blur{syntax:"*";inherits:false;initial-value:0}@property --tw-enter-opacity{syntax:"*";inherits:false;initial-value:1}@property --tw-enter-rotate{syntax:"*";inherits:false;initial-value:0}@property --tw-enter-scale{syntax:"*";inherits:false;initial-value:1}@property --tw-enter-translate-x{syntax:"*";inherits:false;initial-value:0}@property --tw-enter-translate-y{syntax:"*";inherits:false;initial-value:0}@property --tw-exit-blur{syntax:"*";inherits:false;initial-value:0}@property --tw-exit-opacity{syntax:"*";inherits:false;initial-value:1}@property --tw-exit-rotate{syntax:"*";inherits:false;initial-value:0}@property --tw-exit-scale{syntax:"*";inherits:false;initial-value:1}@property --tw-exit-translate-x{syntax:"*";inherits:false;initial-value:0}@property --tw-exit-translate-y{syntax:"*";inherits:false;initial-value:0}:root{--radius:.75rem}[data-theme=ember]{--lightningcss-light: ;--lightningcss-dark:initial;color-scheme:dark;--ground:oklch(15.2% .016 52);--ground-2:oklch(18.3% .018 50);--surface:oklch(21.3% .019 48);--surface-2:oklch(25.3% .021 46);--ink:oklch(95.8% .012 70);--ink-dim:oklch(73.5% .018 60);--ink-faint:oklch(57.5% .02 55);--line:oklch(98% .01 60/.1);--line-strong:oklch(98% .01 60/.18);--brand:oklch(83% .13 195);--brand-deep:oklch(62% .12 200);--ember:oklch(73.5% .168 42);--magenta:oklch(70% .21 335);--lime:oklch(84% .18 150);--amber:oklch(84% .15 85);--danger:oklch(64.5% .205 25);--wash:oklch(98% .01 60);--grain:.03;--neon:55%;--glow:72%}[data-theme=midnight]{--lightningcss-light: ;--lightningcss-dark:initial;color-scheme:dark;--ground:oklch(15.8% .024 264);--ground-2:oklch(19.2% .028 264);--surface:oklch(22.8% .032 264);--surface-2:oklch(27.2% .036 264);--ink:oklch(95.8% .012 268);--ink-dim:oklch(74.2% .022 266);--ink-faint:oklch(58.5% .026 265);--line:oklch(97% .02 268/.11);--line-strong:oklch(97% .02 268/.19);--brand:oklch(79% .15 288);--brand-deep:oklch(60% .16 288);--ember:oklch(75% .16 22);--magenta:oklch(72% .2 330);--lime:oklch(85% .17 165);--amber:oklch(86% .14 82);--danger:oklch(66% .21 20);--wash:oklch(97% .02 268);--grain:.03;--neon:55%;--glow:72%}[data-theme=phosphor]{--lightningcss-light: ;--lightningcss-dark:initial;color-scheme:dark;--ground:oklch(14.2% .022 152);--ground-2:oklch(17.6% .026 152);--surface:oklch(20.8% .03 150);--surface-2:oklch(25% .034 150);--ink:oklch(94.5% .06 150);--ink-dim:oklch(75.5% .075 150);--ink-faint:oklch(60% .062 150);--line:oklch(90% .12 150/.14);--line-strong:oklch(90% .12 150/.24);--brand:oklch(86% .2 152);--brand-deep:oklch(66% .17 152);--ember:oklch(79% .16 48);--magenta:oklch(74% .2 338);--lime:oklch(90% .2 122);--amber:oklch(87% .16 92);--danger:oklch(66% .2 28);--wash:oklch(92% .1 150);--grain:.045;--neon:68%;--glow:85%}[data-theme=daylight]{--lightningcss-light:initial;--lightningcss-dark: ;color-scheme:light;--ground:oklch(98.8% .004 88);--ground-2:oklch(96.8% .006 84);--surface:oklch(94.5% .008 80);--surface-2:oklch(90% .011 78);--ink:oklch(26.5% .018 58);--ink-dim:oklch(45.5% .02 56);--ink-faint:oklch(55.6% .02 55);--line:oklch(30% .02 58/.13);--line-strong:oklch(30% .02 58/.24);--brand:oklch(51.4% .12 214);--brand-deep:oklch(42% .11 218);--ember:oklch(55.2% .17 40);--magenta:oklch(53% .2 335);--lime:oklch(52% .14 148);--amber:oklch(56.2% .13 68);--danger:oklch(54% .2 26);--wash:oklch(32% .02 58);--grain:0;--neon:0%;--glow:26%}:root{--background:var(--ground);--foreground:var(--ink);--card:var(--ground-2);--card-foreground:var(--ink);--popover:var(--surface);--popover-foreground:var(--ink);--primary:var(--brand);--primary-foreground:var(--ground);--secondary:var(--surface);--secondary-foreground:var(--ink);--muted:var(--ground-2);--muted-foreground:var(--ink-dim);--accent:var(--surface-2);--accent-foreground:var(--ink);--destructive:var(--danger);--border:var(--line);--input:var(--line-strong);--ring:var(--brand)}@keyframes browsentic-countdown{0%{width:100%}to{width:0%}}@keyframes browsentic-token{0%{opacity:0;filter:blur(4px);transform:translateY(2px)}to{opacity:1;filter:blur();transform:none}}@keyframes browsentic-enter{0%{opacity:0;transform:translateY(6px)}to{opacity:1;transform:none}}@keyframes browsentic-caret{0%,45%{opacity:1}55%,to{opacity:0}}@keyframes browsentic-think{0%,70%,to{opacity:.25;transform:translateY(0)}35%{opacity:1;transform:translateY(-2px)}}@keyframes browsentic-sweep{0%{transform:translate(-100%)}to{transform:translate(320%)}}@media (prefers-reduced-motion:reduce){*,:before,:after{transition-duration:.01ms!important;animation-duration:.01ms!important;animation-iteration-count:1!important}}@property --tw-translate-x{syntax:"*";inherits:false;initial-value:0}@property --tw-translate-y{syntax:"*";inherits:false;initial-value:0}@property --tw-translate-z{syntax:"*";inherits:false;initial-value:0}@property --tw-rotate-x{syntax:"*";inherits:false}@property --tw-rotate-y{syntax:"*";inherits:false}@property --tw-rotate-z{syntax:"*";inherits:false}@property --tw-skew-x{syntax:"*";inherits:false}@property --tw-skew-y{syntax:"*";inherits:false}@property --tw-space-y-reverse{syntax:"*";inherits:false;initial-value:0}@property --tw-divide-y-reverse{syntax:"*";inherits:false;initial-value:0}@property --tw-border-style{syntax:"*";inherits:false;initial-value:solid}@property --tw-leading{syntax:"*";inherits:false}@property --tw-font-weight{syntax:"*";inherits:false}@property --tw-tracking{syntax:"*";inherits:false}@property --tw-ordinal{syntax:"*";inherits:false}@property --tw-slashed-zero{syntax:"*";inherits:false}@property --tw-numeric-figure{syntax:"*";inherits:false}@property --tw-numeric-spacing{syntax:"*";inherits:false}@property --tw-numeric-fraction{syntax:"*";inherits:false}@property --tw-shadow{syntax:"*";inherits:false;initial-value:0 0 #0000}@property --tw-shadow-color{syntax:"*";inherits:false}@property --tw-shadow-alpha{syntax:"<percentage>";inherits:false;initial-value:100%}@property --tw-inset-shadow{syntax:"*";inherits:false;initial-value:0 0 #0000}@property --tw-inset-shadow-color{syntax:"*";inherits:false}@property --tw-inset-shadow-alpha{syntax:"<percentage>";inherits:false;initial-value:100%}@property --tw-ring-color{syntax:"*";inherits:false}@property --tw-ring-shadow{syntax:"*";inherits:false;initial-value:0 0 #0000}@property --tw-inset-ring-color{syntax:"*";inherits:false}@property --tw-inset-ring-shadow{syntax:"*";inherits:false;initial-value:0 0 #0000}@property --tw-ring-inset{syntax:"*";inherits:false}@property --tw-ring-offset-width{syntax:"<length>";inherits:false;initial-value:0}@property --tw-ring-offset-color{syntax:"*";inherits:false;initial-value:#fff}@property --tw-ring-offset-shadow{syntax:"*";inherits:false;initial-value:0 0 #0000}@property --tw-outline-style{syntax:"*";inherits:false;initial-value:solid}@property --tw-blur{syntax:"*";inherits:false}@property --tw-brightness{syntax:"*";inherits:false}@property --tw-contrast{syntax:"*";inherits:false}@property --tw-grayscale{syntax:"*";inherits:false}@property --tw-hue-rotate{syntax:"*";inherits:false}@property --tw-invert{syntax:"*";inherits:false}@property --tw-opacity{syntax:"*";inherits:false}@property --tw-saturate{syntax:"*";inherits:false}@property --tw-sepia{syntax:"*";inherits:false}@property --tw-drop-shadow{syntax:"*";inherits:false}@property --tw-drop-shadow-color{syntax:"*";inherits:false}@property --tw-drop-shadow-alpha{syntax:"<percentage>";inherits:false;initial-value:100%}@property --tw-drop-shadow-size{syntax:"*";inherits:false}@property --tw-backdrop-blur{syntax:"*";inherits:false}@property --tw-backdrop-brightness{syntax:"*";inherits:false}@property --tw-backdrop-contrast{syntax:"*";inherits:false}@property --tw-backdrop-grayscale{syntax:"*";inherits:false}@property --tw-backdrop-hue-rotate{syntax:"*";inherits:false}@property --tw-backdrop-invert{syntax:"*";inherits:false}@property --tw-backdrop-opacity{syntax:"*";inherits:false}@property --tw-backdrop-saturate{syntax:"*";inherits:false}@property --tw-backdrop-sepia{syntax:"*";inherits:false}@property --tw-duration{syntax:"*";inherits:false}@property --tw-ease{syntax:"*";inherits:false}@property --tw-scale-x{syntax:"*";inherits:false;initial-value:1}@property --tw-scale-y{syntax:"*";inherits:false;initial-value:1}@property --tw-scale-z{syntax:"*";inherits:false;initial-value:1}@keyframes spin{to{transform:rotate(360deg)}}@keyframes ping{75%,to{opacity:0;transform:scale(2)}}@keyframes pulse{50%{opacity:.5}}@keyframes enter{0%{opacity:var(--tw-enter-opacity,1);transform:translate3d(var(--tw-enter-translate-x,0),var(--tw-enter-translate-y,0),0)scale3d(var(--tw-enter-scale,1),var(--tw-enter-scale,1),var(--tw-enter-scale,1))rotate(var(--tw-enter-rotate,0));filter:blur(var(--tw-enter-blur,0))}}@keyframes exit{to{opacity:var(--tw-exit-opacity,1);transform:translate3d(var(--tw-exit-translate-x,0),var(--tw-exit-translate-y,0),0)scale3d(var(--tw-exit-scale,1),var(--tw-exit-scale,1),var(--tw-exit-scale,1))rotate(var(--tw-exit-rotate,0));filter:blur(var(--tw-exit-blur,0))}}
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
import{n as e}from"./rolldown-runtime-Bh1tDfsg.js";import{$ as t,C as n,Q as r,S as i,Z as a,b as o,c as s,dt as c,et as l,ft as u,ht as d,it as f,ot as p,pt as m,q as h,r as g,st as _,t as v,v as y,w as b,y as x}from"./globals-B4qbR8F8.js";var S=c(`panel-right-open`,[[`rect`,{width:`18`,height:`18`,x:`3`,y:`3`,rx:`2`,key:`afitv7`}],[`path`,{d:`M15 3v18`,key:`14nvp0`}],[`path`,{d:`m10 15-3-3 3-3`,key:`1pgupc`}]]),C=e(m(),1),w=e(d(),1),T=t(),E={unpaired:`Pair this browser to start`,offline:`The daemon isn’t answering — start browsentic`,agent:`That agent cannot run — pick another below`};function D(){let e=b(),t=g(),[s,c]=(0,w.useState)(!1),d=e?.paired??!1;async function m(){let e=await u.windows.getCurrent();e.id!=null&&(await y(e.id),window.close())}let C=v({active:s&&(e?.connected??!1),onSubmit:e=>{c(!1),t.send(e),m()}}),D=r(e,{running:t.running,listening:s&&C.listening}),O=D.ready;function k(){O&&C.submitNow()}function A(){if(C.supported){if(s&&C.error){C.retry();return}c(e=>!e)}}let j=D.blocker?E[D.blocker]:C.error?C.error:s&&C.listening?C.interim||`Listening… speak, then pause`:t.running?`Working — open the side panel to watch`:C.supported?`Tap to talk, or type below`:`Type your instruction below`;return(0,T.jsxs)(`div`,{className:`flex w-[22rem] flex-col`,children:[(0,T.jsxs)(`header`,{className:`flex items-center gap-2 px-4 py-3`,children:[(0,T.jsx)(i,{className:`flex-1`}),(0,T.jsx)(a,{tone:D.tone,children:D.label})]}),d&&(0,T.jsxs)(`main`,{className:`dot-grid flex flex-col items-center gap-4 border-y border-line px-4 py-6`,children:[(0,T.jsxs)(`button`,{type:`button`,"aria-label":s?`Stop listening`:`Start listening`,onClick:A,disabled:!O||!C.supported,className:l(`relative flex size-20 items-center justify-center rounded-full border transition-all outline-none`,`focus-visible:ring-2 focus-visible:ring-ring/60 focus-visible:ring-offset-2 focus-visible:ring-offset-ground`,(!O||!C.supported)&&`opacity-40`,s?`border-magenta/60 bg-magenta/15 text-magenta`:`glow-brand border-brand/50 bg-brand/10 text-brand enabled:hover:scale-105 enabled:hover:bg-brand/20`),children:[s&&C.listening&&(0,T.jsx)(`span`,{className:`absolute inset-0 animate-ping rounded-full bg-magenta/25`}),s?(0,T.jsx)(_,{className:`size-8`}):(0,T.jsx)(p,{className:`size-8`})]}),(0,T.jsx)(`p`,{className:l(`min-h-8 text-center text-xs leading-relaxed`,C.error||!D.ready?`text-amber`:`text-ink-dim`),children:j}),(0,T.jsxs)(`form`,{className:`flex w-full gap-1.5`,onSubmit:e=>{e.preventDefault(),k()},children:[(0,T.jsx)(o,{value:C.input,onChange:e=>C.setInput(e.target.value),placeholder:`What should I do?`,"aria-label":`Instruction for Browsentic`,className:`h-8 text-xs`,disabled:!O}),(0,T.jsx)(h,{type:`submit`,size:`sm`,"aria-label":`Send`,disabled:!O||!C.input.trim(),children:(0,T.jsx)(f,{})})]}),(0,T.jsxs)(h,{variant:`outline`,size:`sm`,className:`w-full`,onClick:m,children:[(0,T.jsx)(S,{}),` Open the side panel`]})]}),(0,T.jsxs)(`div`,{className:`space-y-4 p-4`,children:[(0,T.jsx)(x,{}),(0,T.jsx)(n,{})]})]})}s(),C.createRoot(document.getElementById(`root`)).render((0,T.jsx)(w.StrictMode,{children:(0,T.jsx)(D,{})}));
|
|
@@ -1,11 +0,0 @@
|
|
|
1
|
-
import{n as e}from"./rolldown-runtime-Bh1tDfsg.js";import{$ as t,A as n,B as r,C as i,D as a,E as o,F as s,G as c,H as l,I as u,J as d,K as f,L as p,M as m,N as h,O as g,P as _,Q as ee,R as v,S as te,T as y,U as ne,V as b,W as x,X as S,Y as C,Z as w,_ as T,a as E,at as D,b as O,c as k,ct as A,d as re,dt as j,et as M,f as N,ft as P,g as ie,h as ae,ht as F,i as oe,it as I,j as se,k as ce,l as le,lt as L,m as ue,mt as de,n as fe,nt as pe,o as me,ot as he,p as ge,pt as _e,q as R,r as ve,rt as ye,s as be,st as xe,t as Se,tt as Ce,u as we,ut as z,w as Te,x as Ee,y as De,z as Oe}from"./globals-B4qbR8F8.js";var ke=j(`arrow-down`,[[`path`,{d:`M12 5v14`,key:`s699le`}],[`path`,{d:`m19 12-7 7-7-7`,key:`1idqje`}]]),B=j(`book-open`,[[`path`,{d:`M12 5v16`,key:`1f6ucr`}],[`path`,{d:`M20.001 19A2 2 0 0022 17V5a2 2 0 00-1.999-2L16 3.002A5 5 0 0012 5a5 5 0 00-4-2H4a2 2 0 00-2 2v12a2 2 0 001.999 2H8a5 5 0 014 2 5 5 0 014-2z`,key:`1fyvmf`}]]),Ae=j(`braces`,[[`path`,{d:`M8 3H7a2 2 0 0 0-2 2v5a2 2 0 0 1-2 2 2 2 0 0 1 2 2v5c0 1.1.9 2 2 2h1`,key:`ezmyqa`}],[`path`,{d:`M16 21h1a2 2 0 0 0 2-2v-5c0-1.1.9-2 2-2a2 2 0 0 1-2-2V5a2 2 0 0 0-2-2h-1`,key:`e1hn23`}]]),je=j(`camera`,[[`path`,{d:`M13.997 4a2 2 0 0 1 1.76 1.05l.486.9A2 2 0 0 0 18.003 7H20a2 2 0 0 1 2 2v9a2 2 0 0 1-2 2H4a2 2 0 0 1-2-2V9a2 2 0 0 1 2-2h1.997a2 2 0 0 0 1.759-1.048l.489-.904A2 2 0 0 1 10.004 4z`,key:`18u6gg`}],[`circle`,{cx:`12`,cy:`13`,r:`3`,key:`1vg3eu`}]]),Me=j(`circle`,[[`circle`,{cx:`12`,cy:`12`,r:`10`,key:`1mglay`}]]),V=j(`clapperboard`,[[`path`,{d:`m12.296 3.464 3.02 3.956`,key:`qash78`}],[`path`,{d:`M20.2 6 3 11l-.9-2.4c-.3-1.1.3-2.2 1.3-2.5l13.5-4c1.1-.3 2.2.3 2.5 1.3z`,key:`1h7j8b`}],[`path`,{d:`M3 11h18v8a2 2 0 0 1-2 2H5a2 2 0 0 1-2-2z`,key:`4lm6w1`}],[`path`,{d:`m6.18 5.276 3.1 3.899`,key:`zjj9t3`}]]),Ne=j(`code-xml`,[[`path`,{d:`m18 16 4-4-4-4`,key:`1inbqp`}],[`path`,{d:`m6 8-4 4 4 4`,key:`15zrgr`}],[`path`,{d:`m14.5 4-5 16`,key:`e7oirm`}]]),Pe=j(`compass`,[[`circle`,{cx:`12`,cy:`12`,r:`10`,key:`1mglay`}],[`path`,{d:`m16.24 7.76-1.804 5.411a2 2 0 0 1-1.265 1.265L7.76 16.24l1.804-5.411a2 2 0 0 1 1.265-1.265z`,key:`9ktpf1`}]]),Fe=j(`corner-down-left`,[[`path`,{d:`M20 4v7a4 4 0 0 1-4 4H4`,key:`6o5b7l`}],[`path`,{d:`m9 10-5 5 5 5`,key:`1kshq7`}]]),Ie=j(`cpu`,[[`path`,{d:`M12 20v2`,key:`1lh1kg`}],[`path`,{d:`M12 2v2`,key:`tus03m`}],[`path`,{d:`M17 20v2`,key:`1rnc9c`}],[`path`,{d:`M17 2v2`,key:`11trls`}],[`path`,{d:`M2 12h2`,key:`1t8f8n`}],[`path`,{d:`M2 17h2`,key:`7oei6x`}],[`path`,{d:`M2 7h2`,key:`asdhe0`}],[`path`,{d:`M20 12h2`,key:`1q8mjw`}],[`path`,{d:`M20 17h2`,key:`1fpfkl`}],[`path`,{d:`M20 7h2`,key:`1o8tra`}],[`path`,{d:`M7 20v2`,key:`4gnj0m`}],[`path`,{d:`M7 2v2`,key:`1i4yhu`}],[`rect`,{x:`4`,y:`4`,width:`16`,height:`16`,rx:`2`,key:`1vbyd7`}],[`rect`,{x:`8`,y:`8`,width:`8`,height:`8`,rx:`1`,key:`z9xiuo`}]]),Le=j(`external-link`,[[`path`,{d:`M15 3h6v6`,key:`1q9fwt`}],[`path`,{d:`M10 14 21 3`,key:`gplh6r`}],[`path`,{d:`M18 13v6a2 2 0 0 1-2 2H5a2 2 0 0 1-2-2V8a2 2 0 0 1 2-2h6`,key:`a6xqqp`}]]),Re=j(`eye`,[[`path`,{d:`M2.062 12.348a1 1 0 0 1 0-.696 10.75 10.75 0 0 1 19.876 0 1 1 0 0 1 0 .696 10.75 10.75 0 0 1-19.876 0`,key:`1nclc0`}],[`circle`,{cx:`12`,cy:`12`,r:`3`,key:`1v7zrd`}]]),ze=j(`file-text`,[[`path`,{d:`M6 22a2 2 0 0 1-2-2V4a2 2 0 0 1 2-2h8a2.4 2.4 0 0 1 1.704.706l3.588 3.588A2.4 2.4 0 0 1 20 8v12a2 2 0 0 1-2 2z`,key:`1oefj6`}],[`path`,{d:`M14 2v5a1 1 0 0 0 1 1h5`,key:`wfsgrz`}],[`path`,{d:`M10 9H8`,key:`b1mrlr`}],[`path`,{d:`M16 13H8`,key:`t4e002`}],[`path`,{d:`M16 17H8`,key:`z1uh3a`}]]),Be=j(`file-up`,[[`path`,{d:`M6 22a2 2 0 0 1-2-2V4a2 2 0 0 1 2-2h8a2.4 2.4 0 0 1 1.704.706l3.588 3.588A2.4 2.4 0 0 1 20 8v12a2 2 0 0 1-2 2z`,key:`1oefj6`}],[`path`,{d:`M14 2v5a1 1 0 0 0 1 1h5`,key:`wfsgrz`}],[`path`,{d:`M12 12v6`,key:`3ahymv`}],[`path`,{d:`m15 15-3-3-3 3`,key:`15xj92`}]]),Ve=j(`folder-open`,[[`path`,{d:`m6 14 1.5-2.9A2 2 0 0 1 9.24 10H20a2 2 0 0 1 1.94 2.5l-1.54 6a2 2 0 0 1-1.95 1.5H4a2 2 0 0 1-2-2V5a2 2 0 0 1 2-2h3.9a2 2 0 0 1 1.69.9l.81 1.2a2 2 0 0 0 1.67.9H18a2 2 0 0 1 2 2v2`,key:`usdka0`}]]),H=j(`globe`,[[`circle`,{cx:`12`,cy:`12`,r:`10`,key:`1mglay`}],[`path`,{d:`M12 2a14.5 14.5 0 0 0 0 20 14.5 14.5 0 0 0 0-20`,key:`13o1zl`}],[`path`,{d:`M2 12h20`,key:`9i4pu4`}]]),He=j(`highlighter`,[[`path`,{d:`m9 11-6 6v3h9l3-3`,key:`1a3l36`}],[`path`,{d:`m22 12-4.6 4.6a2 2 0 0 1-2.8 0l-5.2-5.2a2 2 0 0 1 0-2.8L14 4`,key:`14a9rk`}]]),Ue=j(`hourglass`,[[`path`,{d:`M5 22h14`,key:`ehvnwv`}],[`path`,{d:`M5 2h14`,key:`pdyrp9`}],[`path`,{d:`M17 22v-4.172a2 2 0 0 0-.586-1.414L12 12l-4.414 4.414A2 2 0 0 0 7 17.828V22`,key:`1d314k`}],[`path`,{d:`M7 2v4.172a2 2 0 0 0 .586 1.414L12 12l4.414-4.414A2 2 0 0 0 17 6.172V2`,key:`1vvvr6`}]]),We=j(`images`,[[`path`,{d:`m22 11-1.296-1.296a2.4 2.4 0 0 0-3.408 0L11 16`,key:`9kzy35`}],[`path`,{d:`M4 8a2 2 0 0 0-2 2v10a2 2 0 0 0 2 2h10a2 2 0 0 0 2-2`,key:`1t0f0t`}],[`circle`,{cx:`13`,cy:`7`,r:`1`,fill:`currentColor`,key:`1obus6`}],[`rect`,{x:`8`,y:`2`,width:`14`,height:`14`,rx:`2`,key:`1gvhby`}]]),Ge=j(`info`,[[`circle`,{cx:`12`,cy:`12`,r:`10`,key:`1mglay`}],[`path`,{d:`M12 16v-4`,key:`1dtifu`}],[`path`,{d:`M12 8h.01`,key:`e9boi3`}]]),Ke=j(`key-round`,[[`path`,{d:`M2.586 17.414A2 2 0 0 0 2 18.828V21a1 1 0 0 0 1 1h3a1 1 0 0 0 1-1v-1a1 1 0 0 1 1-1h1a1 1 0 0 0 1-1v-1a1 1 0 0 1 1-1h.172a2 2 0 0 0 1.414-.586l.814-.814a6.5 6.5 0 1 0-4-4z`,key:`1s6t7t`}],[`circle`,{cx:`16.5`,cy:`7.5`,r:`.5`,fill:`currentColor`,key:`w0ekpg`}]]),qe=j(`keyboard`,[[`path`,{d:`M10 8h.01`,key:`1r9ogq`}],[`path`,{d:`M12 12h.01`,key:`1mp3jc`}],[`path`,{d:`M14 8h.01`,key:`1primd`}],[`path`,{d:`M16 12h.01`,key:`1l6xoz`}],[`path`,{d:`M18 8h.01`,key:`emo2bl`}],[`path`,{d:`M6 8h.01`,key:`x9i8wu`}],[`path`,{d:`M7 16h10`,key:`wp8him`}],[`path`,{d:`M8 12h.01`,key:`czm47f`}],[`rect`,{width:`20`,height:`16`,x:`2`,y:`4`,rx:`2`,key:`18n3k1`}]]),Je=j(`layers`,[[`path`,{d:`M12.83 2.18a2 2 0 0 0-1.66 0L2.6 6.08a1 1 0 0 0 0 1.83l8.58 3.91a2 2 0 0 0 1.66 0l8.58-3.9a1 1 0 0 0 0-1.83z`,key:`zw3jo`}],[`path`,{d:`M2 12a1 1 0 0 0 .58.91l8.6 3.91a2 2 0 0 0 1.65 0l8.58-3.9A1 1 0 0 0 22 12`,key:`1wduqc`}],[`path`,{d:`M2 17a1 1 0 0 0 .58.91l8.6 3.91a2 2 0 0 0 1.65 0l8.58-3.9A1 1 0 0 0 22 17`,key:`kqbvx6`}]]),Ye=j(`list-checks`,[[`path`,{d:`M13 5h8`,key:`a7qcls`}],[`path`,{d:`M13 12h8`,key:`h98zly`}],[`path`,{d:`M13 19h8`,key:`c3s6r1`}],[`path`,{d:`m3 17 2 2 4-4`,key:`1jhpwq`}],[`path`,{d:`m3 7 2 2 4-4`,key:`1obspn`}]]),Xe=j(`lock`,[[`rect`,{width:`18`,height:`11`,x:`3`,y:`11`,rx:`2`,ry:`2`,key:`1w4ew1`}],[`path`,{d:`M7 11V7a5 5 0 0 1 10 0v4`,key:`fwvmzm`}]]),Ze=j(`messages-square`,[[`path`,{d:`M16 10a2 2 0 0 1-2 2H6.828a2 2 0 0 0-1.414.586l-2.202 2.202A.71.71 0 0 1 2 14.286V4a2 2 0 0 1 2-2h10a2 2 0 0 1 2 2z`,key:`1n2ejm`}],[`path`,{d:`M20 9a2 2 0 0 1 2 2v10.286a.71.71 0 0 1-1.212.502l-2.202-2.202A2 2 0 0 0 17.172 19H10a2 2 0 0 1-2-2v-1`,key:`1qfcsi`}]]),Qe=j(`mouse-pointer-click`,[[`path`,{d:`M14 4.1 12 6`,key:`ita8i4`}],[`path`,{d:`m5.1 8-2.9-.8`,key:`1go3kf`}],[`path`,{d:`m6 12-1.9 2`,key:`mnht97`}],[`path`,{d:`M7.2 2.2 8 5.1`,key:`1cfko1`}],[`path`,{d:`M9.037 9.69a.498.498 0 0 1 .653-.653l11 4.5a.5.5 0 0 1-.074.949l-4.349 1.041a1 1 0 0 0-.74.739l-1.04 4.35a.5.5 0 0 1-.95.074z`,key:`s0h3yz`}]]),$e=j(`move-vertical`,[[`path`,{d:`M12 2v20`,key:`t6zp3m`}],[`path`,{d:`m8 18 4 4 4-4`,key:`bh5tu3`}],[`path`,{d:`m8 6 4-4 4 4`,key:`ybng9g`}]]),et=j(`panel-right-close`,[[`rect`,{width:`18`,height:`18`,x:`3`,y:`3`,rx:`2`,key:`afitv7`}],[`path`,{d:`M15 3v18`,key:`14nvp0`}],[`path`,{d:`m8 9 3 3-3 3`,key:`12hl5m`}]]),tt=j(`paperclip`,[[`path`,{d:`m16 6-8.414 8.586a2 2 0 0 0 2.829 2.829l8.414-8.586a4 4 0 1 0-5.657-5.657l-8.379 8.551a6 6 0 1 0 8.485 8.485l8.379-8.551`,key:`1miecu`}]]),nt=j(`pencil`,[[`path`,{d:`M21.174 6.812a1 1 0 0 0-3.986-3.987L3.842 16.174a2 2 0 0 0-.5.83l-1.321 4.352a.5.5 0 0 0 .623.622l4.353-1.32a2 2 0 0 0 .83-.497z`,key:`1a8usu`}],[`path`,{d:`m15 5 4 4`,key:`1mk7zo`}]]),rt=j(`play`,[[`path`,{d:`M5 5a2 2 0 0 1 3.008-1.728l11.997 6.998a2 2 0 0 1 .003 3.458l-12 7A2 2 0 0 1 5 19z`,key:`10ikf1`}]]),U=j(`radar`,[[`path`,{d:`M19.07 4.93A10 10 0 0 0 6.99 3.34`,key:`z3du51`}],[`path`,{d:`M4 6h.01`,key:`oypzma`}],[`path`,{d:`M2.29 9.62A10 10 0 1 0 21.31 8.35`,key:`qzzz0`}],[`path`,{d:`M16.24 7.76A6 6 0 1 0 8.23 16.67`,key:`1yjesh`}],[`path`,{d:`M12 18h.01`,key:`mhygvu`}],[`path`,{d:`M17.99 11.66A6 6 0 0 1 15.77 16.67`,key:`1u2y91`}],[`circle`,{cx:`12`,cy:`12`,r:`2`,key:`1c9p78`}],[`path`,{d:`m13.41 10.59 5.66-5.66`,key:`mhq4k0`}]]),it=j(`rotate-ccw-clock`,[[`path`,{d:`M3 12a9 9 0 1 0 9-9 9.75 9.75 0 0 0-6.74 2.74L3 8`,key:`1357e3`}],[`path`,{d:`M3 3v5h5`,key:`1xhq8a`}],[`path`,{d:`M12 7v5l4 2`,key:`1fdv2h`}]]),at=j(`scan-eye`,[[`path`,{d:`M3 7V5a2 2 0 0 1 2-2h2`,key:`aa7l1z`}],[`path`,{d:`M17 3h2a2 2 0 0 1 2 2v2`,key:`4qcy5o`}],[`path`,{d:`M21 17v2a2 2 0 0 1-2 2h-2`,key:`6vwrx8`}],[`path`,{d:`M7 21H5a2 2 0 0 1-2-2v-2`,key:`ioqczr`}],[`circle`,{cx:`12`,cy:`12`,r:`1`,key:`41hilf`}],[`path`,{d:`M18.944 12.33a1 1 0 0 0 0-.66 7.5 7.5 0 0 0-13.888 0 1 1 0 0 0 0 .66 7.5 7.5 0 0 0 13.888 0`,key:`11ak4c`}]]),ot=j(`settings-2`,[[`path`,{d:`M14 17H5`,key:`gfn3mx`}],[`path`,{d:`M19 7h-9`,key:`6i9tg`}],[`circle`,{cx:`17`,cy:`17`,r:`3`,key:`18b49y`}],[`circle`,{cx:`7`,cy:`7`,r:`3`,key:`dfmy0x`}]]),st=j(`shield-alert`,[[`path`,{d:`M20 13c0 5-3.5 7.5-7.66 8.95a1 1 0 0 1-.67-.01C7.5 20.5 4 18 4 13V6a1 1 0 0 1 1-1c2 0 4.5-1.2 6.24-2.72a1.17 1.17 0 0 1 1.52 0C14.51 3.81 17 5 19 5a1 1 0 0 1 1 1z`,key:`oel41y`}],[`path`,{d:`M12 8v4`,key:`1got3b`}],[`path`,{d:`M12 16h.01`,key:`1drbdi`}]]),ct=j(`sliders-horizontal`,[[`path`,{d:`M10 5H3`,key:`1qgfaw`}],[`path`,{d:`M12 19H3`,key:`yhmn1j`}],[`path`,{d:`M14 3v4`,key:`1sua03`}],[`path`,{d:`M16 17v4`,key:`1q0r14`}],[`path`,{d:`M21 12h-9`,key:`1o4lsq`}],[`path`,{d:`M21 19h-5`,key:`1rlt1p`}],[`path`,{d:`M21 5h-7`,key:`1oszz2`}],[`path`,{d:`M8 10v4`,key:`tgpxqk`}],[`path`,{d:`M8 12H3`,key:`a7s4jb`}]]),lt=j(`sparkles`,[[`path`,{d:`M11.017 2.814a1 1 0 0 1 1.966 0l1.051 5.558a2 2 0 0 0 1.594 1.594l5.558 1.051a1 1 0 0 1 0 1.966l-5.558 1.051a2 2 0 0 0-1.594 1.594l-1.051 5.558a1 1 0 0 1-1.966 0l-1.051-5.558a2 2 0 0 0-1.594-1.594l-5.558-1.051a1 1 0 0 1 0-1.966l5.558-1.051a2 2 0 0 0 1.594-1.594z`,key:`1s2grr`}],[`path`,{d:`M20 2v4`,key:`1rf3ol`}],[`path`,{d:`M22 4h-4`,key:`gwowj6`}],[`circle`,{cx:`4`,cy:`20`,r:`2`,key:`6kqj1y`}]]),ut=j(`square-pen`,[[`path`,{d:`M12 3H5a2 2 0 0 0-2 2v14a2 2 0 0 0 2 2h14a2 2 0 0 0 2-2v-7`,key:`1m0v6g`}],[`path`,{d:`M18.375 2.625a1 1 0 0 1 3 3l-9.013 9.014a2 2 0 0 1-.853.505l-2.873.84a.5.5 0 0 1-.62-.62l.84-2.873a2 2 0 0 1 .506-.852z`,key:`ohrbg2`}]]),dt=j(`square-slash`,[[`rect`,{width:`18`,height:`18`,x:`3`,y:`3`,rx:`2`,key:`afitv7`}],[`line`,{x1:`9`,x2:`15`,y1:`15`,y2:`9`,key:`1dfufj`}]]),ft=j(`square`,[[`rect`,{width:`18`,height:`18`,x:`3`,y:`3`,rx:`2`,key:`afitv7`}]]),pt=j(`terminal`,[[`path`,{d:`M12 19h8`,key:`baeox8`}],[`path`,{d:`m4 17 6-6-6-6`,key:`1yngyt`}]]),mt=j(`text-cursor-input`,[[`path`,{d:`M12 20h-1a2 2 0 0 1-2-2 2 2 0 0 1-2 2H6`,key:`1528k5`}],[`path`,{d:`M13 8h7a2 2 0 0 1 2 2v4a2 2 0 0 1-2 2h-7`,key:`13ksps`}],[`path`,{d:`M5 16H4a2 2 0 0 1-2-2v-4a2 2 0 0 1 2-2h1`,key:`1n9rhb`}],[`path`,{d:`M6 4h1a2 2 0 0 1 2 2 2 2 0 0 1 2-2h1`,key:`1mj8rg`}],[`path`,{d:`M9 6v12`,key:`velyjx`}]]),ht=j(`trash-2`,[[`path`,{d:`M10 11v6`,key:`nco0om`}],[`path`,{d:`M14 11v6`,key:`outv1u`}],[`path`,{d:`M19 6v14a2 2 0 0 1-2 2H7a2 2 0 0 1-2-2V6`,key:`miytrc`}],[`path`,{d:`M3 6h18`,key:`d0wm0j`}],[`path`,{d:`M8 6V4a2 2 0 0 1 2-2h4a2 2 0 0 1 2 2v2`,key:`e791ji`}]]),gt=j(`type`,[[`path`,{d:`M12 4v16`,key:`1654pz`}],[`path`,{d:`M4 7V5a1 1 0 0 1 1-1h14a1 1 0 0 1 1 1v2`,key:`e0r10z`}],[`path`,{d:`M9 20h6`,key:`s66wpe`}]]),_t=j(`unplug`,[[`path`,{d:`m19 5 3-3`,key:`yk6iyv`}],[`path`,{d:`m2 22 3-3`,key:`19mgm9`}],[`path`,{d:`M6.3 20.3a2.4 2.4 0 0 0 3.4 0L12 18l-6-6-2.3 2.3a2.4 2.4 0 0 0 0 3.4Z`,key:`goz73y`}],[`path`,{d:`M7.5 13.5 10 11`,key:`7xgeeb`}],[`path`,{d:`M10.5 16.5 13 14`,key:`10btkg`}],[`path`,{d:`m12 6 6 6 2.3-2.3a2.4 2.4 0 0 0 0-3.4l-2.6-2.6a2.4 2.4 0 0 0-3.4 0Z`,key:`1snsnr`}]]),vt=j(`upload`,[[`path`,{d:`M12 3v12`,key:`1x0j5s`}],[`path`,{d:`m17 8-5-5-5 5`,key:`7q97r8`}],[`path`,{d:`M21 15v4a2 2 0 0 1-2 2H5a2 2 0 0 1-2-2v-4`,key:`ih7n3h`}]]),yt=j(`wrench`,[[`path`,{d:`M14.7 6.3a1 1 0 0 0 0 1.4l1.6 1.6a1 1 0 0 0 1.4 0l3.106-3.105c.32-.322.863-.22.983.218a6 6 0 0 1-8.259 7.057l-7.91 7.91a1 1 0 0 1-2.999-3l7.91-7.91a6 6 0 0 1 7.057-8.259c.438.12.54.662.219.984z`,key:`1ngwbx`}]]),W=j(`x`,[[`path`,{d:`M18 6 6 18`,key:`1bl5f8`}],[`path`,{d:`m6 6 12 12`,key:`d8bk6v`}]]),bt=j(`zap`,[[`path`,{d:`M15.914 4a1.5 1.5 0 00-2.474-1.561l-9 9A1.5 1.5 0 005.5 14h4.002a.5.5 0 01.471.666L8.086 20a1.5 1.5 0 002.475 1.56l9-9A1.5 1.5 0 0018.5 10h-3.997a.5.5 0 01-.472-.667z`,key:`1v7up4`}]]),G=e(F(),1),xt=e(_e(),1),St=[`general`,`site-exploration`],Ct=/^[a-z0-9][a-z0-9-]{0,47}$/,wt=32*1024,Tt=/^[a-z0-9]([a-z0-9-]*[a-z0-9])?(\.[a-z0-9]([a-z0-9-]*[a-z0-9])?)+$/,Et=300,Dt=3,Ot=60;function kt(e){let t=/^---[ \t]*\r?\n([\s\S]*?)\r?\n---[ \t]*\r?\n?/.exec(e);if(!t)return{fields:{},body:e};let n={};for(let e of t[1].split(/\r?\n/)){let t=e.indexOf(`:`);t>0&&(n[e.slice(0,t).trim()]=e.slice(t+1).trim())}return{fields:n,body:e.slice(t[0].length)}}function At(e){return e?e.replace(/^\[|\]$/g,``).split(`,`).map(e=>e.trim().replace(/^['"]|['"]$/g,``)).filter(Boolean):[]}function jt(e){return e?.trim()===`site-exploration`?`site-exploration`:`general`}function Mt(e){return e.replace(/[\r\n]+/g,` `).replace(/\s+/g,` `).trim()}function Nt(e){try{return new URL(e).hostname.toLowerCase()}catch{return``}}function Pt(e){let t=e.trim().toLowerCase();return t?(t.includes(`://`)?Nt(t):t).replace(/^\/+|\/+$/g,``).split(`/`)[0].split(`:`)[0].replace(/^\.+|\.+$/g,``):``}function Ft(e){return e===`localhost`||e.length<=253&&Tt.test(e)}function It(e,t){return Lt(e,t).length>0}function Lt(e,t){let n=e.toLowerCase();return n?t.filter(e=>n===e||n.endsWith(`.${e}`)).sort((e,t)=>t.length-e.length):[]}function Rt(e,t={}){let n=e.name.trim().toLowerCase();if(!n)return K(`Give the skill a name.`);if(!Ct.test(n))return K(`Names use lowercase letters, digits and hyphens only, starting with a letter or digit (max 48).`);if(t.reservedNames?.some(e=>e.toLowerCase()===n))return K(`"${n}" is the name of a built-in skill. Pick another.`);let r=Mt(e.description).slice(0,Et),i=e.category;if(!St.includes(i))return K(`Unknown category "${String(i)}".`);let a=Vt(e.domains.map(Pt).filter(Boolean));if(i===`site-exploration`){if(!a.length)return K(`A site-exploration skill needs at least one domain, like acme.com.`);if(a.length>20)return K(`At most 20 domains.`);for(let e of a){if(e.includes(`*`))return K(`"${e}" — wildcards are not supported; subdomains match automatically.`);if(!Ft(e))return K(`"${e}" is not a domain. Use something like acme.com.`)}}let o=i===`site-exploration`?[]:Vt(e.triggers.map(e=>Mt(e).toLowerCase()).filter(Boolean));if(o.length>30)return K(`At most 30 triggers.`);for(let e of o)if(e.length<Dt||e.length>Ot)return K(`Trigger "${e}" must be ${Dt}–${Ot} characters.`);let s=kt(e.body.replace(/\r\n/g,`
|
|
2
|
-
`)).body.trim();return s?zt(s)>32768?K(`The skill is larger than ${Math.round(wt/1024)} KB. Trim it down.`):{ok:!0,draft:{name:n,description:r,category:i,domains:a,triggers:o,body:s}}:K(`The skill has no instructions — add some markdown below the front matter.`)}function zt(e){let t=0;for(let n=0;n<e.length;n++){let r=e.charCodeAt(n);r<128?t+=1:r<2048?t+=2:r>=55296&&r<=56319?(t+=4,n++):t+=3}return t}function Bt(e,t){let{fields:n,body:r}=kt(e.replace(/\r\n/g,`
|
|
3
|
-
`)),i=Pt(t.replace(/\.(md|markdown)$/i,``)).replace(/[^a-z0-9-]+/g,`-`).replace(/^-+|-+$/g,``);return{name:(n.name||i).toLowerCase(),description:n.description??``,category:jt(n.category),domains:At(n.domains).map(Pt).filter(Boolean),triggers:At(n.triggers).map(e=>e.toLowerCase()),body:r.trim()}}function Vt(e){return[...new Set(e)]}function K(e){return{ok:!1,message:e}}var Ht=48;function Ut(e){let t;try{t=new URL(e)}catch{return null}if(t.protocol!==`http:`&&t.protocol!==`https:`)return null;let n=t.hostname.toLowerCase().replace(/^www\./,``);if(!n)return null;let[r=``]=t.pathname.split(`/`).filter(Boolean);return{host:n,segment:Kt(r)||`root`}}function Wt(e,t){return`${e.host}:${e.segment}:${t}`}function Gt(e,t){let n=Ut(t);return!!n&&n.host===e.host&&n.segment===e.segment}function Kt(e){return e.toLowerCase().replace(/[^a-z0-9]+/g,`-`).replace(/^-+|-+$/g,``).slice(0,Ht).replace(/-+$/,``)}var qt=`/context`,Jt=`/remove-tools`,Yt=`Review the tools you saved, and delete any you are done with.`,Xt=e=>e.trim().toLowerCase()===Jt,Zt=`See what this conversation carries — messages, files, recordings, tabs.`,q=t(),Qt={tool:0,command:1,site:2,general:3,agent:4,"other-site":5};function $t(e,t,n,r=[]){let i=Nt(t),a=[{key:`command:context`,group:`command`,name:`context`,description:Zt,command:qt}];r.length&&a.push({key:`command:remove-tools`,group:`command`,name:`remove-tools`,description:Yt,command:Jt});for(let e of r)Gt(e.scope,t)&&a.push({key:`tool:${e.id}`,group:`tool`,name:e.name,description:e.description,savedToolId:e.id});for(let t of e?.skills??[]){let e=t.category===`site-exploration`?i&&It(i,t.domains)?`site`:`other-site`:`general`;a.push({key:`${e}:${t.name}`,group:e,name:t.name,description:t.description})}for(let t of e?.agentSkills??[])a.push({key:`agent:${t.id}`,group:`agent`,name:t.name,description:t.description,agentSkillId:t.id});let o=n.trim().toLowerCase();return(o?a.filter(e=>e.name.toLowerCase().includes(o)||e.description.toLowerCase().includes(o)):a).sort((e,t)=>Qt[e.group]-Qt[t.group]||e.name.localeCompare(t.name))}function en({items:e,agent:t,highlight:n,onHover:r,onSelect:i}){let a={tool:`Your tools`,command:`Commands`,site:`On this site`,general:`Browsentic skills`,agent:`${t?Ce[t].label:`Agent`} skills`,"other-site":`Other sites`};return(0,q.jsx)(`div`,{role:`listbox`,"aria-label":`Skills and commands`,className:`enters absolute inset-x-0 bottom-full z-20 mb-2 max-h-64 overflow-y-auto rounded-xl border border-line bg-surface shadow-lg`,children:e.length===0?(0,q.jsx)(`p`,{className:`px-3 py-2.5 text-[11px] text-ink-faint`,children:`Nothing matches — keep typing, or press Escape.`}):e.map((t,o)=>(0,q.jsxs)(`div`,{children:[(o===0||e[o-1].group!==t.group)&&(0,q.jsx)(`p`,{className:`px-3 pt-2 pb-1 font-mono text-[10px] tracking-[0.14em] text-ink-faint uppercase`,children:a[t.group]}),(0,q.jsxs)(`button`,{type:`button`,role:`option`,"aria-selected":o===n,onMouseEnter:()=>r(o),onMouseDown:e=>{e.preventDefault(),i(t)},className:M(`flex w-full items-start gap-2 px-3 py-1.5 text-left transition-colors`,o===n?`bg-brand/12`:`hover:bg-ground/40`),children:[t.group===`tool`?(0,q.jsx)(bt,{className:`mt-0.5 size-3 shrink-0 text-lime`}):t.group===`command`?(0,q.jsx)(dt,{className:`mt-0.5 size-3 shrink-0 text-amber`}):t.group===`agent`?(0,q.jsx)(lt,{className:`mt-0.5 size-3 shrink-0 text-brand`}):t.group===`general`?(0,q.jsx)(B,{className:`mt-0.5 size-3 shrink-0 text-ink-faint`}):(0,q.jsx)(H,{className:`mt-0.5 size-3 shrink-0 text-ink-faint`}),(0,q.jsxs)(`span`,{className:`min-w-0 flex-1`,children:[(0,q.jsx)(`span`,{className:`block truncate text-xs font-medium text-ink`,children:t.name}),t.description&&(0,q.jsx)(`span`,{className:`block truncate text-[11px] text-ink-dim`,children:t.description})]})]})]},t.key))})}function tn({className:e,...t}){return(0,q.jsx)(`textarea`,{"data-slot":`textarea`,className:M(`field-sizing-content flex min-h-16 w-full rounded-lg border border-line-strong bg-ground/60 px-3 py-2 text-sm text-ink outline-none transition-colors`,`placeholder:text-ink-faint selection:bg-brand/30 selection:text-ink`,`focus-visible:border-brand/55`,`disabled:cursor-not-allowed disabled:opacity-45`,e),...t})}async function nn(){let[e]=await P.tabs.query({active:!0,currentWindow:!0});if(e?.id==null)return{error:`No active tab to point at`};let t=await y({id:e.id,windowId:e.windowId});if(!t.ok)return t.error.code===`PICK_CANCELLED`?{cancelled:!0}:{error:t.error.message};let{element:n,content:r,truncated:i,url:a,title:o,shot:s}=t.data;return{focus:{tag:n.tag,role:n.role,selector:n.selector,label:n.text,content:r,truncated:i,url:a,title:o,shot:s?.dataUrl}}}var rn=e=>e.label?.trim()||e.role||e.tag;function an({voice:e,voiceEnabled:t,connected:n,running:r,files:i,attachError:a,catalog:o,tabUrl:s,attachedSkill:c,focus:l,picking:u,liveTools:d,onToggleLiveTools:f,onAttachSkill:p,onCommand:m,tools:h,onRunTool:g,onSend:_,onStop:ee,onToggleVoice:v,onPick:te,onClearFocus:y,onAttachPage:ne,onAttachFile:b,onRemoveFile:x}){let S=(0,G.useRef)(null),C=(0,G.useRef)(null),w=e.input.startsWith(`/`)?e.input.slice(1):null,T=w!==null&&n,[E,D]=(0,G.useState)(0),O=(0,G.useMemo)(()=>T?$t(o,s,w??``,h):[],[T,o,s,w,h]);(0,G.useEffect)(()=>D(0),[w]);let{cancelPending:k}=e;(0,G.useEffect)(()=>{T&&k()},[T,k]);function A(t){t.savedToolId?(e.setInput(``),g(t.savedToolId)):t.command?(e.setInput(``),m(t.command)):t.agentSkillId?(p({id:t.agentSkillId,name:t.name}),e.setInput(``)):e.setInput(`@${t.name} `),C.current?.focus()}function re(e){e.target.closest(`button, textarea`)||C.current?.focus()}return(0,q.jsxs)(q.Fragment,{children:[a&&(0,q.jsx)(`p`,{className:`mb-2 rounded-lg border border-amber/40 bg-amber/10 px-2.5 py-1.5 text-[11px] text-amber`,children:a}),(0,q.jsx)(on,{focus:l,picking:u,onClear:y}),c&&(0,q.jsxs)(`div`,{className:`mb-2 flex items-center gap-2 rounded-xl border border-brand/35 bg-brand/8 px-2.5 py-1.5 text-xs`,children:[(0,q.jsx)(lt,{className:`size-3.5 shrink-0 text-brand`}),(0,q.jsxs)(`span`,{className:`min-w-0 flex-1 truncate text-ink`,children:[`Skill attached: `,(0,q.jsx)(`span`,{className:`font-medium`,children:c.name})]}),(0,q.jsx)(`button`,{type:`button`,onClick:()=>p(null),"aria-label":`Detach ${c.name}`,className:`shrink-0 rounded-full p-1 text-ink-faint transition-colors hover:bg-surface hover:text-ink`,children:(0,q.jsx)(W,{className:`size-3`})})]}),d&&(0,q.jsxs)(`div`,{className:`enters mb-2 flex items-center gap-2 rounded-xl border border-ember/40 bg-ember/8 px-2.5 py-1.5 text-xs`,children:[(0,q.jsx)(Ne,{className:`size-3.5 shrink-0 text-ember`}),(0,q.jsxs)(`span`,{className:`min-w-0 flex-1 text-ink-dim`,children:[(0,q.jsx)(`span`,{className:`font-medium text-ink`,children:`Live tool on`}),` — the agent may write a script for this page. You approve the code first.`]}),(0,q.jsx)(`button`,{type:`button`,onClick:f,"aria-label":`Turn live tools off`,className:`shrink-0 rounded-full p-1 text-ink-faint transition-colors hover:bg-surface hover:text-ink`,children:(0,q.jsx)(W,{className:`size-3`})})]}),(0,q.jsx)(cn,{files:i,onRemove:x}),(0,q.jsx)(sn,{voice:e,voiceEnabled:t}),(0,q.jsxs)(`div`,{onClick:re,className:M(`panel-card relative flex flex-col rounded-2xl transition-colors has-[textarea:focus]:border-brand/50`,n&&`cursor-text`),children:[T&&(0,q.jsx)(en,{items:O,agent:o?.agent,highlight:E,onHover:D,onSelect:A}),(0,q.jsx)(tn,{ref:C,value:e.input,onChange:t=>e.setInput(t.target.value),onKeyDown:t=>{if(T){if(t.key===`Escape`){t.preventDefault(),e.setInput(``);return}if(O.length>0){if(t.key===`ArrowDown`){t.preventDefault(),D(e=>(e+1)%O.length);return}if(t.key===`ArrowUp`){t.preventDefault(),D(e=>(e-1+O.length)%O.length);return}if(t.key===`Enter`||t.key===`Tab`){t.preventDefault(),A(O[Math.min(E,O.length-1)]);return}}}t.key===`Enter`&&!t.shiftKey&&(t.preventDefault(),_())},placeholder:n?`Tell me what to do on this page…`:`Pair the browser to get started`,disabled:!n,rows:2,className:`max-h-48 min-h-14 resize-none rounded-none border-0 bg-transparent px-3 pt-2.5 pb-0 focus-visible:border-0`}),(0,q.jsxs)(`div`,{className:`flex items-center gap-0.5 px-1.5 pb-1.5`,children:[(0,q.jsx)(R,{variant:l||u?`subtle`:`ghost`,size:`icon-sm`,title:`A-Eye — point at an element on the page and send it with your next message`,"aria-label":`Point at an element with A-Eye`,onClick:te,disabled:!n||u,className:M(l||u?`text-ember`:void 0),children:(0,q.jsx)(at,{className:M(`size-3.5`,u&&`animate-pulse`)})}),(0,q.jsx)(R,{variant:`ghost`,size:`icon-sm`,title:`Add this page’s title, URL and selection to the message`,"aria-label":`Attach page context`,onClick:ne,disabled:!n,children:(0,q.jsx)(tt,{className:`size-3.5`})}),(0,q.jsx)(R,{variant:`ghost`,size:`icon-sm`,title:`Attach a file for the agent to read`,"aria-label":`Attach a file`,onClick:()=>S.current?.click(),disabled:!n,children:(0,q.jsx)(Be,{className:`size-3.5`})}),(0,q.jsx)(R,{variant:d?`subtle`:`ghost`,size:`icon-sm`,role:`switch`,"aria-checked":d,"aria-label":d?`Turn live tools off`:`Turn live tools on`,title:d?`Live tool is on — the agent may write a small script for this page and ask you to approve it. Turn it off to keep to the built-in tools.`:`Live tool — let the agent write a small script for repetitive work or for something no tool covers. You review and approve the code before it runs.`,onClick:f,disabled:!n,className:M(d?`text-ember`:void 0),children:(0,q.jsx)(Ne,{className:`size-3.5`})}),(0,q.jsxs)(R,{variant:t&&!e.error?`subtle`:`ghost`,size:`icon-sm`,"aria-label":t?`Turn voice off`:`Turn voice on`,title:e.supported?`Speak instead of typing`:`Voice input is not available in this browser`,onClick:v,disabled:!e.supported,className:`relative`,children:[t&&e.listening&&(0,q.jsx)(`span`,{className:`absolute inset-0 animate-ping rounded-full bg-magenta/30`}),t&&!e.error?(0,q.jsx)(he,{className:`size-3.5`}):(0,q.jsx)(xe,{className:`size-3.5`})]}),r?(0,q.jsx)(R,{size:`icon-sm`,variant:`destructive`,className:`ml-auto`,"aria-label":`Stop the agent`,onClick:ee,children:(0,q.jsx)(ft,{className:`size-3 fill-current`})}):(0,q.jsx)(R,{size:`icon-sm`,className:`ml-auto`,"aria-label":`Send message`,onClick:_,disabled:!e.input.trim()||!n,children:(0,q.jsx)(I,{className:`size-3.5`})})]})]}),(0,q.jsx)(`input`,{ref:S,type:`file`,className:`hidden`,onChange:e=>{let t=e.target.files?.[0];e.target.value=``,t&&b(t)}}),(0,q.jsx)(`p`,{className:`mt-2 text-center font-mono text-[10px] text-ink-faint`,children:t&&e.supported?`Speak and pause to send · Enter sends now`:`Enter to send · Shift + Enter for a new line · / for skills and commands`})]})}function on({focus:e,picking:t,onClear:n}){return!t&&!e?null:(0,q.jsxs)(`div`,{className:`enters mb-2 flex items-center gap-2 rounded-xl border border-ember/40 bg-ember/8 px-2.5 py-1.5 text-xs`,children:[(0,q.jsx)(at,{className:M(`size-3.5 shrink-0 text-ember`,t&&`animate-pulse`)}),t||!e?(0,q.jsxs)(`span`,{className:`min-w-0 flex-1 truncate text-ink-dim`,children:[`Point at anything on the page — `,(0,q.jsx)(`span`,{className:`text-ink-faint`,children:`Esc cancels`})]}):(0,q.jsxs)(q.Fragment,{children:[e.shot&&(0,q.jsx)(`img`,{src:e.shot,alt:`The element you picked`,className:`max-h-7 max-w-14 shrink-0 rounded border border-ember/40 object-cover`}),(0,q.jsxs)(`span`,{className:`min-w-0 flex-1 truncate text-ink`,children:[`A-Eye: `,(0,q.jsx)(`span`,{className:`font-medium`,children:rn(e)})]}),(0,q.jsx)(`span`,{className:`shrink-0 font-mono text-[10px] text-ink-faint`,children:e.tag}),(0,q.jsx)(`button`,{type:`button`,onClick:n,"aria-label":`Drop the A-Eye selection`,className:`shrink-0 rounded-full p-1 text-ink-faint transition-colors hover:bg-surface hover:text-ink`,children:(0,q.jsx)(W,{className:`size-3`})})]})]})}function sn({voice:e,voiceEnabled:t}){return t&&e.error?(0,q.jsx)(`p`,{className:`mb-2 rounded-lg border border-amber/40 bg-amber/10 px-2.5 py-1.5 text-[11px] text-amber`,children:e.error}):e.pendingSend?(0,q.jsxs)(`div`,{className:`mb-2 flex items-center gap-2 rounded-lg bg-brand/10 px-2.5 py-1.5 text-[11px] text-brand`,children:[(0,q.jsx)(`span`,{className:`relative flex-1 overflow-hidden rounded-full bg-brand/20`,children:(0,q.jsx)(`span`,{className:`block h-1 rounded-full bg-brand`,style:{animation:`browsentic-countdown ${e.autoSendMs}ms linear forwards`}})}),(0,q.jsx)(`span`,{className:`shrink-0`,children:`Sending…`}),(0,q.jsxs)(`button`,{type:`button`,onClick:e.cancelPending,className:`flex shrink-0 items-center gap-0.5 rounded-full px-1.5 py-0.5 transition-colors hover:bg-brand/15`,"aria-label":`Cancel sending`,children:[(0,q.jsx)(W,{className:`size-3`}),` Edit`]})]}):t&&e.listening?(0,q.jsxs)(`p`,{className:`mb-2 flex items-center gap-1.5 px-1 text-[11px] text-ink-dim`,children:[(0,q.jsx)(`span`,{className:`glow-dot inline-flex size-1.5 shrink-0 animate-pulse rounded-full bg-magenta text-magenta`}),e.interim?(0,q.jsx)(`span`,{className:`truncate italic`,children:e.interim}):(0,q.jsx)(`span`,{children:`Listening…`})]}):t&&!e.supported?(0,q.jsx)(`p`,{className:`mb-2 px-1 text-[11px] text-ink-faint`,children:`Voice input isn’t available in this browser.`}):null}function cn({files:e,onRemove:t}){return e.length===0?null:(0,q.jsx)(`div`,{className:`mb-2 flex max-h-40 flex-col gap-1.5 overflow-y-auto`,children:e.map(e=>(0,q.jsxs)(`div`,{className:`flex items-start gap-2 rounded-xl border border-line bg-ground/40 px-2.5 py-1.5 text-xs`,children:[(0,q.jsx)(ze,{className:`mt-0.5 size-3.5 shrink-0 text-ink-faint`}),(0,q.jsxs)(`div`,{className:`min-w-0 flex-1`,children:[(0,q.jsxs)(`div`,{className:`flex items-center gap-1.5`,children:[(0,q.jsx)(`span`,{className:`truncate font-medium text-ink`,children:e.name}),(0,q.jsx)(`span`,{className:`shrink-0 font-mono text-[10px] text-ink-faint`,children:ln(e.size)})]}),e.status===`pending`&&(0,q.jsxs)(`span`,{className:`mt-0.5 flex items-center gap-1 text-[11px] text-ink-faint`,children:[(0,q.jsx)(A,{className:`size-3 animate-spin`}),` Analyzing…`]}),e.status===`ready`&&e.summary&&(0,q.jsx)(`p`,{className:`mt-0.5 line-clamp-2 text-[11px] text-ink-dim`,children:e.summary}),e.status===`error`&&(0,q.jsx)(`span`,{className:`mt-0.5 block text-[11px] text-destructive`,children:e.error??`Analysis failed`})]}),(0,q.jsx)(`button`,{type:`button`,onClick:()=>t(e.id),"aria-label":`Remove ${e.name}`,className:`mt-0.5 shrink-0 rounded-full p-1 text-ink-faint transition-colors hover:bg-surface hover:text-ink`,children:(0,q.jsx)(W,{className:`size-3`})})]},e.id))})}function ln(e){return e<1024?`${e} B`:e<1024*1024?`${Math.round(e/1024)} KB`:`${(e/1024/1024).toFixed(1)} MB`}function un({onClose:e}){return(0,q.jsxs)(`div`,{className:`enters max-h-[60%] shrink-0 overflow-y-auto border-b border-line bg-ground-2/80 px-3 py-3 backdrop-blur`,children:[(0,q.jsxs)(`div`,{className:`mb-3 flex items-center justify-between gap-2`,children:[(0,q.jsx)(`p`,{className:`text-xs font-medium text-ink`,children:`Connection`}),(0,q.jsx)(R,{variant:`ghost`,size:`icon-sm`,"aria-label":`Close connection settings`,onClick:e,children:(0,q.jsx)(W,{className:`size-3.5`})})]}),(0,q.jsxs)(`div`,{className:`space-y-4`,children:[(0,q.jsx)(De,{}),(0,q.jsx)(i,{})]})]})}function dn({connected:e,maxBytes:t}){return(0,q.jsx)(`div`,{className:`enters pointer-events-none absolute inset-0 z-50 flex items-center justify-center bg-ground/85 p-4 backdrop-blur-[2px]`,children:(0,q.jsxs)(`div`,{className:M(`flex w-full flex-col items-center gap-2 rounded-2xl border-2 border-dashed px-4 py-8 text-center`,e?`border-brand/55 bg-brand/8`:`border-line-strong bg-surface/40`),children:[e?(0,q.jsx)(Be,{className:`neon-text size-7 text-brand`}):(0,q.jsx)(_t,{className:`size-7 text-ink-faint`}),(0,q.jsx)(`p`,{className:`text-sm font-medium text-ink`,children:e?`Drop to attach`:`Not connected`}),(0,q.jsx)(`p`,{className:`text-[11px] leading-relaxed text-ink-dim`,children:e?`Release anywhere in the panel and I’ll read it with your next message — up to ${t/1024/1024} MB each.`:`Pair the browser before attaching a file.`})]})})}var fn=[`Summarise what this page says`,`Fill this form in with my details`,`Find the unpaid invoices and open the newest`],pn={unpaired:`This browser isn’t paired yet, so nothing can drive it. Pairing takes one command and one code.`,offline:`Paired, but the daemon isn’t answering. Start browsentic and this reconnects on its own.`,agent:`The chosen agent can’t run on this machine. Pick another one, or let Browsentic fix it.`};function mn({blocker:e,voiceOn:t,onGo:n,onFix:r,onUse:i}){return(0,q.jsxs)(`div`,{className:`dot-grid fade-bottom flex flex-col gap-4 p-4`,children:[(0,q.jsxs)(`div`,{className:`flex items-start gap-2.5`,children:[(0,q.jsx)(Ee,{className:`mt-0.5 size-7 shrink-0 text-brand`}),(0,q.jsx)(`div`,{className:`panel-card min-w-0 rounded-2xl rounded-tl-md px-3 py-2.5 text-sm leading-relaxed text-ink`,children:e?pn[e]:(0,q.jsxs)(q.Fragment,{children:[t?`Just talk`:`Tell me`,` what to do on this page — read it, fill something in, click through a flow — and every action shows up here as I take it.`]})})]}),e?(0,q.jsx)(`div`,{className:`flex flex-wrap gap-1.5`,children:(0,q.jsx)(hn,{icon:ot,label:e===`agent`?`Choose an agent`:`Set up the link`,onClick:r})}):(0,q.jsxs)(q.Fragment,{children:[(0,q.jsx)(`div`,{className:`flex flex-col gap-1.5`,children:fn.map(e=>(0,q.jsx)(`button`,{type:`button`,onClick:()=>i(e),className:`rounded-xl border border-line bg-ground/40 px-3 py-2 text-left text-xs text-ink-dim transition-colors hover:border-brand/40 hover:bg-surface/60 hover:text-ink`,children:e},e))}),(0,q.jsxs)(`div`,{className:`flex flex-wrap gap-1.5`,children:[(0,q.jsx)(hn,{icon:B,label:`Teach it this site`,onClick:()=>n(`skills`)}),(0,q.jsx)(hn,{icon:V,label:`Record a flow`,onClick:()=>n(`recordings`)}),(0,q.jsx)(hn,{icon:it,label:`Past chats`,onClick:()=>n(`history`)})]})]})]})}function hn({icon:e,label:t,onClick:n}){return(0,q.jsxs)(`button`,{type:`button`,onClick:n,className:`inline-flex items-center gap-1.5 rounded-full border border-line bg-ground-2/70 px-2.5 py-1 text-[11px] text-ink-dim transition-colors hover:border-brand/40 hover:text-ink`,children:[(0,q.jsx)(e,{className:`size-3`}),t]})}function gn({state:e,onStop:t}){let n=vn(e.startedAt),r=Math.max(0,e.timeoutMs-n),i=e.percent==null?null:Math.round(e.percent);return(0,q.jsxs)(`div`,{className:`enters mb-2 rounded-xl border border-magenta/35 bg-magenta/8 p-2.5`,children:[(0,q.jsxs)(`div`,{className:`flex items-center gap-2`,children:[(0,q.jsx)(U,{className:`size-3.5 shrink-0 animate-pulse text-magenta`}),(0,q.jsxs)(`span`,{className:`min-w-0 flex-1 truncate text-xs font-medium text-ink`,children:[`Watching `,e.label??e.host]}),(0,q.jsxs)(`span`,{className:`shrink-0 font-mono text-[11px] tabular-nums text-ink-faint`,children:[yn(n),i!=null&&` · ${i}%`]}),(0,q.jsxs)(R,{size:`sm`,variant:`ghost`,className:`shrink-0 text-magenta hover:text-magenta`,onClick:t,children:[(0,q.jsx)(ft,{className:`size-3 fill-current`}),` Stop`]})]}),i!=null&&(0,q.jsx)(`div`,{className:`mt-2 h-1 overflow-hidden rounded-full bg-magenta/15`,children:(0,q.jsx)(`div`,{className:`glow-dot h-full rounded-full bg-magenta text-magenta transition-[width] duration-500`,style:{width:`${i}%`}})}),(0,q.jsx)(`p`,{className:`mt-1.5 text-[11px] leading-relaxed text-ink-faint`,children:_n(e,r)})]})}function _n(e,t){return e.stalledForMs==null?e.percent!=null&&e.etaMs!=null?`${Math.round(e.percent)}% · ${p(e.etaMs)} left`:e.logs.at(-1)?.text??`Stops automatically in ${yn(t)}.`:`No change for ${yn(e.stalledForMs)}.`}function vn(e){let[t,n]=(0,G.useState)(()=>Date.now());return(0,G.useEffect)(()=>{let e=setInterval(()=>n(Date.now()),1e3);return()=>clearInterval(e)},[]),Math.max(0,t-e)}function yn(e){let t=Math.floor(e/1e3);return`${Math.floor(t/60)}:${String(t%60).padStart(2,`0`)}`}var bn=[{id:`chat`,label:`Chat`,icon:Ze},{id:`history`,label:`History`,icon:it},{id:`skills`,label:`Skills`,icon:B},{id:`recordings`,label:`Recordings`,icon:V},{id:`settings`,label:`Settings`,icon:ct}];function xn({tab:e,counts:t,onSelect:n}){let r=(0,G.useRef)(null),[i,a]=(0,G.useState)(`full`),o=(0,G.useRef)({full:0,active:0});return(0,G.useLayoutEffect)(()=>{let e=r.current;if(!e)return;let t=!0,n=()=>{if(!t)return;let n=e.clientWidth;i!==`icons`&&(o.current[i]=Sn(e));let{full:r,active:s}=o.current;a(r>0&&n>=r?`full`:i===`full`||n>=s?`active`:`icons`)};n();let s=new ResizeObserver(n);return s.observe(e),document.fonts.ready.then(n),()=>{t=!1,s.disconnect()}},[i,e,bn.map(({id:e})=>t[e]??0).join(`·`)]),(0,q.jsx)(`nav`,{ref:r,"aria-label":`Panel sections`,className:`flex shrink-0 items-center gap-0.5 overflow-x-auto border-b border-line px-2 pb-2 [scrollbar-width:none] [&::-webkit-scrollbar]:hidden`,children:bn.map(({id:r,label:a,icon:o})=>{let s=e===r,c=t[r]??0,l=i===`full`||i===`active`&&s;return(0,q.jsxs)(`button`,{type:`button`,onClick:()=>n(r),title:l?void 0:a,"aria-label":a,"aria-current":s?`page`:void 0,className:M(`relative inline-flex shrink-0 items-center gap-1.5 rounded-full px-2.5 py-1.5 text-[11px] font-medium transition-colors`,s?`bg-brand/12 text-brand`:`text-ink-faint hover:bg-surface/60 hover:text-ink-dim`),children:[(0,q.jsx)(o,{className:`size-3.5`}),l&&a,c>0&&(l?(0,q.jsx)(`span`,{className:M(`rounded-full px-1 font-mono text-[9px] tabular-nums`,s?`bg-brand/20`:`bg-surface text-ink-faint`),children:c}):(0,q.jsx)(`span`,{className:M(`absolute top-1 right-1 size-1.5 rounded-full`,s?`bg-brand/70`:`bg-ink-faint/60`)}))]},r)})})}function Sn(e){let t=getComputedStyle(e),n=parseFloat(t.columnGap)||0,r=parseFloat(t.paddingLeft)+parseFloat(t.paddingRight),i=Array.from(e.children);return i.reduce((e,t)=>e+t.getBoundingClientRect().width,0)+n*Math.max(0,i.length-1)+r}function Cn({state:e,onStop:t}){let n=wn(e.startedAt),r=Math.max(0,h-n);return(0,q.jsxs)(`div`,{className:`enters mb-2 rounded-xl border border-destructive/40 bg-destructive/8 p-2.5`,children:[(0,q.jsxs)(`div`,{className:`flex items-center gap-2`,children:[(0,q.jsx)(`span`,{className:`glow-dot size-2 shrink-0 animate-pulse rounded-full bg-destructive text-destructive`}),(0,q.jsxs)(`span`,{className:`min-w-0 flex-1 truncate text-xs font-medium text-ink`,children:[`Recording `,e.host]}),(0,q.jsxs)(`span`,{className:`shrink-0 font-mono text-[11px] tabular-nums text-ink-faint`,children:[Tn(n),` · `,e.events,` `,e.events===1?`step`:`steps`]}),(0,q.jsxs)(R,{size:`sm`,variant:`ghost`,className:`shrink-0 text-destructive hover:text-destructive`,onClick:t,children:[(0,q.jsx)(ft,{className:`size-3 fill-current`}),` Stop`]})]}),(0,q.jsxs)(`p`,{className:`mt-1.5 text-[11px] leading-relaxed text-ink-faint`,children:[e.warning??`Stops automatically in ${Tn(r)}.`,!e.captureValues&&` Typed values are not being saved.`]})]})}function wn(e){let[t,n]=(0,G.useState)(()=>Date.now());return(0,G.useEffect)(()=>{let e=setInterval(()=>n(Date.now()),1e3);return()=>clearInterval(e)},[]),Math.max(0,t-e)}function Tn(e){let t=Math.floor(e/1e3);return`${Math.floor(t/60)}:${String(t%60).padStart(2,`0`)}`}var En=d(`inline-flex w-fit shrink-0 items-center justify-center gap-1 overflow-hidden rounded-full border px-2 py-0.5 font-mono text-[10px] tracking-[0.08em] whitespace-nowrap uppercase [&>svg]:pointer-events-none [&>svg]:size-2.5`,{variants:{variant:{default:`border-brand/35 bg-brand/12 text-brand`,secondary:`border-line-strong bg-surface/70 text-ink-dim`,destructive:`border-destructive/40 bg-destructive/12 text-destructive`,warning:`border-amber/40 bg-amber/12 text-amber`,outline:`border-line text-ink-faint`}},defaultVariants:{variant:`default`}});function Dn({className:e,variant:t,asChild:n=!1,...r}){return(0,q.jsx)(n?C:`span`,{"data-slot":`badge`,className:M(En({variant:t}),e),...r})}function On({recordings:e,busy:t,onReplay:n,onRemove:r}){return e.length===0?(0,q.jsxs)(`div`,{className:`dot-grid fade-bottom rounded-xl border border-line px-3 py-6 text-center`,children:[(0,q.jsx)(V,{className:`mx-auto size-5 text-ink-faint`}),(0,q.jsx)(`p`,{className:`mt-2 text-[11px] leading-relaxed text-ink-faint`,children:`No recordings yet. Press Record above and walk through the flow you want repeated.`})]}):(0,q.jsxs)(`div`,{className:`flex min-w-0 flex-col gap-1.5`,children:[t&&(0,q.jsx)(`p`,{className:`px-1 pb-1 text-[11px] text-ink-faint`,children:`Waiting on the current run — stop it to replay a recording.`}),e.map(e=>(0,q.jsx)(kn,{recording:e,busy:t===!0,onReplay:n,onRemove:r},e.id))]})}function kn({recording:e,busy:t,onReplay:n,onRemove:r}){let[i,a]=(0,G.useState)(null),o=e.status===`ready`;return(0,q.jsxs)(`div`,{className:`flex items-start gap-2 rounded-xl border border-line bg-ground/40 px-2.5 py-2 text-xs`,children:[(0,q.jsx)(V,{className:`mt-0.5 size-3.5 shrink-0 text-ink-faint`}),(0,q.jsxs)(`div`,{className:`min-w-0 flex-1`,children:[i===null?(0,q.jsxs)(`div`,{className:`flex items-center gap-1.5`,children:[(0,q.jsx)(`span`,{className:`truncate font-medium text-ink`,children:e.name}),e.capturedValues&&(0,q.jsxs)(Dn,{variant:`warning`,children:[(0,q.jsx)(Ke,{}),` values`]})]}):(0,q.jsxs)(`div`,{className:`flex items-center gap-1`,children:[(0,q.jsx)(O,{value:i,autoFocus:!0,onChange:e=>a(e.target.value),onKeyDown:t=>{t.key===`Escape`&&a(null),t.key===`Enter`&&(ce(e.id,i),a(null))},"aria-label":`Recording name`,className:`h-7 text-xs`}),(0,q.jsx)(`button`,{type:`button`,onClick:()=>{ce(e.id,i),a(null)},"aria-label":`Save name`,className:`shrink-0 rounded-full p-1 text-ink-faint transition-colors hover:bg-surface hover:text-ink`,children:(0,q.jsx)(z,{className:`size-3`})})]}),(0,q.jsxs)(`span`,{className:`mt-0.5 flex items-center gap-1 font-mono text-[10px] text-ink-faint`,children:[(0,q.jsx)(H,{className:`size-2.5 shrink-0`}),(0,q.jsx)(`span`,{className:`truncate`,children:e.host})]}),e.goal&&e.goal!==e.name&&(0,q.jsx)(`p`,{className:`mt-0.5 line-clamp-2 text-[11px] text-ink-dim`,children:e.goal}),(0,q.jsx)(`span`,{className:`mt-0.5 flex items-center gap-1 text-[11px] text-ink-faint`,children:e.status===`analyzing`?(0,q.jsxs)(q.Fragment,{children:[(0,q.jsx)(A,{className:`size-3 animate-spin`}),` Splitting into steps…`]}):e.status===`error`?(0,q.jsx)(`span`,{className:`text-destructive`,children:e.error??`Could not read this recording`}):(0,q.jsxs)(q.Fragment,{children:[e.steps??0,` `,e.steps===1?`step`:`steps`,` · `,Nn(e.durationMs),` ·`,` `,Pn(e.updatedAt)]})}),o&&(0,q.jsxs)(`button`,{type:`button`,onClick:()=>n(e),disabled:t,className:`mt-1.5 inline-flex items-center gap-1 rounded-full bg-brand/12 px-2 py-0.5 text-[11px] text-brand transition-colors hover:bg-brand/20 disabled:opacity-50`,children:[(0,q.jsx)(rt,{className:`size-3`}),` Do this again`]})]}),(0,q.jsxs)(`div`,{className:`mt-0.5 flex shrink-0 gap-0.5`,children:[(0,q.jsx)(`button`,{type:`button`,onClick:()=>a(e.name),"aria-label":`Rename ${e.name}`,className:`rounded-full p-1 text-ink-faint transition-colors hover:bg-surface hover:text-ink`,children:(0,q.jsx)(nt,{className:`size-3`})}),(0,q.jsx)(`button`,{type:`button`,onClick:()=>r(e.id),"aria-label":`Delete ${e.name}`,className:`rounded-full p-1 text-ink-faint transition-colors hover:bg-surface hover:text-ink`,children:(0,q.jsx)(W,{className:`size-3`})})]})]})}var An=6e4,jn=60*An,Mn=24*jn;function Nn(e){let t=Math.round(e/1e3);return t<60?`${t}s`:`${Math.floor(t/60)}m ${String(t%60).padStart(2,`0`)}s`}function Pn(e){let t=Date.now()-e;return t<An?`just now`:t<jn?`${Math.floor(t/An)}m ago`:t<Mn?`${Math.floor(t/jn)}h ago`:t<7*Mn?`${Math.floor(t/Mn)}d ago`:new Date(e).toLocaleDateString(void 0,{month:`short`,day:`numeric`})}function Fn({tabUrl:e,recordings:t,recording:n,busy:r,onStart:i,onStop:a,onReplay:o,onRemove:s}){let[c,l]=(0,G.useState)(!1),u=Nt(e),d=!r&&!n&&/^https?:/.test(e);return(0,q.jsxs)(`div`,{className:`flex min-w-0 flex-col gap-3 p-3`,children:[(0,q.jsx)(`p`,{className:`text-[11px] leading-relaxed text-ink-dim`,children:`Capture what you do on a site — the clicks, the fields you fill, the pages you move through — and the agent can repeat it later. A recording runs for at most 15 minutes.`}),n?(0,q.jsxs)(R,{variant:`destructive`,onClick:a,children:[(0,q.jsx)(ft,{className:`fill-current`}),` Stop recording`]}):(0,q.jsxs)(R,{variant:`destructive`,onClick:()=>i(c),disabled:!d,title:d?`Record what you do on ${u}`:`Open an http(s) page, with nothing else running`,children:[(0,q.jsx)(Me,{className:`fill-current`}),(0,q.jsxs)(`span`,{className:`truncate`,children:[`Record `,u||`this page`]})]}),!n&&(0,q.jsxs)(`label`,{className:`flex cursor-pointer items-start gap-2 rounded-xl border border-line bg-ground/40 px-2.5 py-2 text-[11px] leading-relaxed text-ink-dim`,children:[(0,q.jsx)(`input`,{type:`checkbox`,checked:c,onChange:e=>l(e.target.checked),className:`mt-0.5 size-3 shrink-0 accent-destructive`}),(0,q.jsxs)(`span`,{children:[(0,q.jsx)(`span`,{className:`font-medium text-ink`,children:`Save what I type.`}),` Off by default — every field becomes a placeholder the agent asks you to fill. Passwords and card numbers are never saved either way.`]})]}),(0,q.jsx)(On,{recordings:t,busy:r,onReplay:o,onRemove:s})]})}var In=e(de(),1);function Ln({purpose:e,code:t,site:n,onAllow:r,onDeny:i,onClose:a}){return(0,G.useEffect)(()=>{let e=e=>{e.key===`Escape`&&a()};return window.addEventListener(`keydown`,e),()=>window.removeEventListener(`keydown`,e)},[a]),(0,In.createPortal)((0,q.jsxs)(`div`,{className:`enters fixed inset-0 z-50 flex flex-col bg-ground/96 backdrop-blur`,children:[(0,q.jsxs)(`div`,{className:`flex items-start gap-2 border-b border-ember/30 bg-ember/8 px-3 py-2.5`,children:[(0,q.jsx)(st,{className:`mt-0.5 size-3.5 shrink-0 text-ember`}),(0,q.jsxs)(`div`,{className:`min-w-0 flex-1`,children:[(0,q.jsx)(`p`,{className:`text-xs font-medium text-ink`,children:`Code the agent wrote`}),(0,q.jsx)(`p`,{className:`mt-0.5 text-[11px] leading-relaxed text-ink-dim`,children:e})]}),(0,q.jsx)(`button`,{type:`button`,onClick:a,title:`Close without deciding`,className:`mt-0.5 shrink-0 rounded p-0.5 text-ink-faint transition-colors hover:text-ink`,children:(0,q.jsx)(W,{className:`size-3.5`})})]}),(0,q.jsx)(`div`,{className:`min-h-0 flex-1 overflow-auto bg-ground/70`,children:(0,q.jsx)(`pre`,{className:`min-w-full p-3 font-mono text-[11px] leading-relaxed whitespace-pre text-ink-dim`,children:(0,q.jsx)(`code`,{children:t})})}),(0,q.jsxs)(`div`,{className:`border-t border-line px-3 py-2.5`,children:[(0,q.jsxs)(`p`,{className:`mb-2 text-[11px] leading-relaxed text-ink-faint`,children:[`This runs in `,n?(0,q.jsx)(`span`,{className:`font-mono text-ink`,children:n}):`the page`,` with your logged-in session, and can do anything you could do there. Later calls reuse these functions without asking again.`]}),(0,q.jsxs)(`div`,{className:`flex gap-1.5`,children:[(0,q.jsxs)(R,{variant:`ghost`,size:`sm`,className:`flex-1`,onClick:i,children:[(0,q.jsx)(W,{className:`size-3`}),` Deny`]}),(0,q.jsxs)(R,{size:`sm`,className:`flex-1`,onClick:r,children:[(0,q.jsx)(z,{className:`size-3`}),` Allow`]})]})]})]}),document.body)}var Rn=[{key:`user`,label:`you`,color:`bg-brand`},{key:`assistant`,label:`replies`,color:`bg-magenta`},{key:`tools`,label:`tools`,color:`bg-amber`},{key:`notices`,label:`notices`,color:`bg-ink-faint`}];function zn({breakdown:e}){let{messages:t,files:n,recordings:r,filesOmitted:i,recordingsOmitted:a}=e,o=Rn.reduce((e,n)=>e+t[n.key],0),s=o===0&&n.length===0&&r.length===0;return(0,q.jsxs)(`div`,{className:`enters panel-card min-w-0 rounded-2xl px-3 py-2.5`,children:[(0,q.jsxs)(`div`,{className:`flex items-center gap-2`,children:[(0,q.jsx)(Je,{className:`size-3.5 shrink-0 text-brand`}),(0,q.jsx)(`span`,{className:`flex-1 truncate font-mono text-[10px] tracking-[0.14em] text-ink uppercase`,children:`Session context`}),(0,q.jsx)(`span`,{className:`shrink-0 rounded-full bg-ground/60 px-2 py-0.5 font-mono text-[9px] tracking-[0.1em] text-ink-faint uppercase`,children:Vn(e)})]}),s?(0,q.jsx)(`p`,{className:`mt-2 text-[11px] text-ink-dim`,children:`This conversation is empty — nothing rides along yet.`}):(0,q.jsxs)(q.Fragment,{children:[o>0&&(0,q.jsxs)(q.Fragment,{children:[(0,q.jsx)(`div`,{className:`mt-2.5 flex h-1.5 gap-px overflow-hidden rounded-full`,children:Rn.filter(e=>t[e.key]>0).map(e=>(0,q.jsx)(`span`,{className:e.color,style:{flexGrow:t[e.key]}},e.key))}),(0,q.jsx)(`div`,{className:`mt-1.5 flex flex-wrap gap-x-3 gap-y-0.5`,children:Rn.map(e=>(0,q.jsxs)(`span`,{className:`flex items-center gap-1 text-[10px] text-ink-dim`,children:[(0,q.jsx)(`span`,{className:M(`size-1.5 shrink-0 rounded-full`,e.color)}),(0,q.jsx)(`span`,{className:`font-mono`,children:t[e.key]}),` `,e.label]},e.key))})]}),(0,q.jsxs)(`div`,{className:`mt-2.5 flex flex-col gap-1 border-t border-line pt-2`,children:[(0,q.jsxs)(Bn,{icon:H,children:[e.tabCount===1?`1 tab`:`${e.tabCount} tabs`,e.host&&(0,q.jsxs)(q.Fragment,{children:[` · `,e.host]}),` · turn`,` `,(0,q.jsx)(`span`,{className:`font-mono text-[10px]`,children:e.turns}),` ·`,` `,(0,q.jsx)(`span`,{className:`font-mono text-[10px]`,children:Hn(t.chars)}),` characters`]}),(0,q.jsx)(Bn,{icon:Ie,children:e.usage?(0,q.jsxs)(q.Fragment,{children:[`Agent window ≈ `,(0,q.jsx)(`span`,{className:`font-mono text-[10px]`,children:Hn(e.usage.contextTokens)}),` `,`tokens · `,(0,q.jsx)(`span`,{className:`font-mono text-[10px]`,children:Hn(e.usage.outputTokens)}),` `,`generated last run`]}):e.agent===`antigravity`?`Antigravity does not report token counts.`:`Token counts appear after the agent’s first reply.`}),n.map((e,t)=>(0,q.jsxs)(Bn,{icon:ze,children:[(0,q.jsx)(`span`,{className:`text-ink`,children:e.name}),(0,q.jsxs)(`span`,{className:`font-mono text-[10px] text-ink-faint`,children:[` · `,Un(e.size)]}),e.status===`pending`&&(0,q.jsx)(`span`,{className:`text-ink-faint`,children:` · analyzing`}),e.status===`error`&&(0,q.jsx)(`span`,{className:`text-destructive`,children:` · analysis failed`})]},t)),i>0&&(0,q.jsxs)(`p`,{className:`pl-[18px] text-[10px] text-ink-faint`,children:[i,` more `,i===1?`file stays`:`files stay`,` behind — only the first`,` `,n.length,` ride along.`]}),r.map((e,t)=>(0,q.jsxs)(Bn,{icon:V,children:[(0,q.jsx)(`span`,{className:`text-ink`,children:e.name}),e.steps!==void 0&&(0,q.jsxs)(`span`,{className:`font-mono text-[10px] text-ink-faint`,children:[` · `,e.steps,` steps`]})]},t)),a>0&&(0,q.jsxs)(`p`,{className:`pl-[18px] text-[10px] text-ink-faint`,children:[a,` more `,a===1?`recording stays`:`recordings stay`,` behind — only the first `,r.length,` ride along.`]})]})]}),(0,q.jsx)(`p`,{className:`mt-2 text-[10px] leading-relaxed text-ink-faint`,children:`Held in this browser — files and ready recordings ride along with your next message.`})]})}function Bn({icon:e,children:t}){return(0,q.jsxs)(`div`,{className:`flex min-w-0 items-start gap-1.5 text-[11px] text-ink-dim`,children:[(0,q.jsx)(e,{className:`mt-0.5 size-3 shrink-0 text-ink-faint`}),(0,q.jsx)(`span`,{className:`min-w-0 flex-1 break-words`,children:t})]})}function Vn(e){return e.agent?`${Ce[e.agent].label}${e.resumes?` · resumes`:``}`:`no agent yet`}function Hn(e){return e<1e3?String(e):`${(e/1e3).toFixed(+(e<1e4))} k`}function Un(e){return e<1024?`${e} B`:e<1024*1024?`${Math.round(e/1024)} KB`:`${(e/1024/1024).toFixed(1)} MB`}function Wn({text:e,streaming:t,className:n}){let r=(0,G.useRef)(!1);t&&(r.current=!0);let i=(0,G.useMemo)(()=>tr(e).map(e=>({block:e,sig:JSON.stringify(e)})),[e]);return(0,q.jsx)(`div`,{"data-stream":t?`live`:r.current?`done`:void 0,className:M(`flex min-w-0 flex-col gap-2`,n),children:i.map(({block:e,sig:t},n)=>(0,q.jsx)(Gn,{block:e,sig:t},n))})}var Gn=(0,G.memo)(({block:e})=>ur(e,`0`),(e,t)=>e.sig===t.sig),Kn=/^ {0,3}(`{3,}|~{3,})[^\n]*$/,qn=/^ {0,3}(?:`{3,}|~{3,})[ \t]*([^\s`~]*)/,Jn=/^ {0,3}(`{3,}|~{3,})[ \t]*$/,Yn=/^ {0,3}(#{1,6})[ \t]+(.*?)[ \t]*#*[ \t]*$/,Xn=/^ {0,3}([-*_])[ \t]*(?:\1[ \t]*){2,}$/,Zn=/^ {0,3}>[ \t]?/,Qn=/^([ \t]*)(?:([-*+])|(\d{1,9})[.)])[ \t]+(.*)$/,$n=/^ {0,3}\|?[ \t]*:?-+:?[ \t]*(?:\|[ \t]*:?-+:?[ \t]*)+\|?[ \t]*$/,er=12;function tr(e,t=0){let n=e.replace(/\r\n?/g,`
|
|
4
|
-
`).split(`
|
|
5
|
-
`);if(t>=er){let e=n.filter(e=>e.trim()).join(`
|
|
6
|
-
`);return e?[{kind:`paragraph`,text:e}]:[]}let r=[];for(let e=0;e<n.length;){let i=n[e];if(!i.trim()){e++;continue}if(Kn.test(i)){let t=/^ {0,3}(`{3,}|~{3,})/.exec(i)[1],a=[];for(e++;e<n.length;){let r=Jn.exec(n[e]);if(r&&r[1][0]===t[0]&&r[1].length>=t.length){e++;break}a.push(n[e]),e++}r.push({kind:`code`,lang:qn.exec(i)?.[1]||void 0,text:a.join(`
|
|
7
|
-
`)});continue}let a=Yn.exec(i);if(a){r.push({kind:`heading`,level:a[1].length,text:a[2]}),e++;continue}if(Xn.test(i)){r.push({kind:`rule`}),e++;continue}if(Zn.test(i)){let i=[];for(;e<n.length&&(Zn.test(n[e])||i.length>0&&n[e].trim());)i.push(n[e].replace(Zn,``)),e++;r.push({kind:`quote`,blocks:tr(i.join(`
|
|
8
|
-
`),t+1)});continue}let o=Qn.exec(i);if(o){let[i,a]=rr(n,e,o,t);r.push(i),e=a;continue}if(ir(n,e)){let[t,i]=ar(n,e);r.push(t),e=i;continue}let s=[];for(;e<n.length&&n[e].trim()&&!nr(n,e);)s.push(n[e].trim()),e++;r.push({kind:`paragraph`,text:s.join(`
|
|
9
|
-
`)})}return r}function nr(e,t){let n=e[t];return Kn.test(n)||Yn.test(n)||Xn.test(n)||Zn.test(n)||Qn.test(n)||ir(e,t)}function rr(e,t,n,r){let i=sr(n[1]),a=n[3]!==void 0,o=[],s=t;for(;s<e.length;){let t=Qn.exec(e[s]);if(!t||t[3]!==void 0!==a)break;let n=sr(t[1]);if(n<i||n>i+1)break;let r=[t[4]];for(s++;s<e.length;){let t=e[s];if(!t.trim()){let t=e[s+1]??``;if(!t.trim()||sr(t)<=i)break;r.push(``),s++;continue}if(sr(t)<=i)break;r.push(cr(t,i+2)),s++}o.push(r)}return[{kind:`list`,ordered:a,start:a?Number.parseInt(n[3],10):1,items:o.map(e=>tr(e.join(`
|
|
10
|
-
`),r+1))},s]}function ir(e,t){return e[t].includes(`|`)&&t+1<e.length&&$n.test(e[t+1])}function ar(e,t){let n=or(e[t]),r=or(e[t+1]).map(e=>e.startsWith(`:`)&&e.endsWith(`:`)?`center`:e.endsWith(`:`)?`right`:`left`),i=[],a=t+2;for(;a<e.length&&e[a].trim()&&e[a].includes(`|`)&&!nr(e,a);)i.push(or(e[a])),a++;return[{kind:`table`,head:n,align:r,rows:i},a]}function or(e){let t=[],n=``;for(let r=0;r<e.length;r++){if(e[r]===`\\`&&e[r+1]===`|`){n+=`|`,r++;continue}if(e[r]===`|`){t.push(n),n=``;continue}n+=e[r]}return t.push(n),t[0].trim()||t.shift(),t.length&&!t[t.length-1]?.trim()&&t.pop(),t.map(e=>e.trim())}function sr(e){let t=/^[ \t]*/.exec(e)[0];return t.length+(t.match(/\t/g)?.length??0)}var cr=(e,t)=>e.replace(/^[ \t]+/,e=>e.replace(/\t/g,` `).slice(t)),lr=`rounded bg-surface px-1 py-px font-mono text-[0.85em] text-ink`;function ur(e,t){switch(e.kind){case`heading`:return(0,q.jsx)(`h${Math.min(e.level+1,6)}`,{className:M(`wrap-anywhere font-semibold`,e.level<=2&&`text-[0.95rem]`),children:J(e.text)},t);case`paragraph`:return(0,q.jsx)(`p`,{className:`wrap-anywhere`,children:J(e.text)},t);case`code`:return(0,q.jsx)(`pre`,{className:`max-w-full overflow-x-auto rounded-lg border border-line bg-ground/70 p-2 text-xs whitespace-pre`,children:(0,q.jsx)(`code`,{className:`font-mono`,children:e.text})},t);case`list`:{let n=e.items.map((e,t)=>(0,q.jsx)(`li`,{className:`wrap-anywhere`,children:fr(e)},t));return e.ordered?(0,q.jsx)(`ol`,{start:e.start,className:`list-decimal space-y-1 pl-5`,children:n},t):(0,q.jsx)(`ul`,{className:`list-disc space-y-1 pl-5`,children:n},t)}case`quote`:return(0,q.jsx)(`blockquote`,{className:`flex flex-col gap-2 border-l-2 border-brand/40 pl-2.5 text-ink-dim`,children:e.blocks.map((e,t)=>ur(e,String(t)))},t);case`table`:return(0,q.jsx)(`div`,{className:`max-w-full overflow-x-auto`,children:(0,q.jsxs)(`table`,{className:`w-full border-collapse text-left text-xs`,children:[(0,q.jsx)(`thead`,{children:(0,q.jsx)(`tr`,{children:e.head.map((t,n)=>(0,q.jsx)(`th`,{className:M(`border-b border-line-strong px-1.5 py-1 font-semibold`,dr[e.align[n]??`left`]),children:J(t)},n))})}),(0,q.jsx)(`tbody`,{children:e.rows.map((t,n)=>(0,q.jsx)(`tr`,{children:t.map((t,n)=>(0,q.jsx)(`td`,{className:M(`border-b border-line px-1.5 py-1 align-top`,dr[e.align[n]??`left`]),children:J(t)},n))},n))})]})},t);case`rule`:return(0,q.jsx)(`hr`,{className:`border-line`},t)}}var dr={left:`text-left`,center:`text-center`,right:`text-right`};function fr(e){return e.length===1&&e[0].kind===`paragraph`?J(e[0].text):(0,q.jsx)(`div`,{className:`flex flex-col gap-1.5`,children:e.map((e,t)=>ur(e,String(t)))})}var pr=4,mr="`*_~[!<h",hr=/[\\`*_~[\]()#+\-.!>|]/,gr=512,_r=2048,vr=3080,yr=[{re:/(`+)([^`]+?)\1(?!`)/y,node:(e,t)=>(0,q.jsx)(`code`,{className:lr,children:e[2]},t)},{re:/\*\*(?!\s)([^\n]+?)\*\*/y,node:(e,t,n,r)=>(0,q.jsx)(`strong`,{children:J(e[1],n+1,r)},t)},{re:/__(?!\s)([^\n]+?)__/y,node:(e,t,n,r)=>(0,q.jsx)(`strong`,{children:J(e[1],n+1,r)},t)},{re:/~~(?!\s)([^\n]+?)~~/y,node:(e,t,n,r)=>(0,q.jsx)(`del`,{children:J(e[1],n+1,r)},t)},{re:/\*(?!\s)([^*\n]+?)\*/y,node:(e,t,n,r)=>(0,q.jsx)(`em`,{children:J(e[1],n+1,r)},t)},{re:/(?<![\w\\])_(?!\s)([^_\n]+?)_(?!\w)/y,node:(e,t,n,r)=>(0,q.jsx)(`em`,{children:J(e[1],n+1,r)},t)},{re:RegExp(`!\\[([^\\]\\n]{0,${gr}})\\]\\([ \\t]*([^)\\s]{0,${_r}})[^)\\n]{0,${gr}}\\)`,`y`),linking:!0,node:(e,t,n)=>xr(e[2],e[1]||e[2],t,n)},{re:RegExp(`\\[([^\\]\\n]{0,${gr}})\\]\\([ \\t]*([^)\\s]{0,${_r}})[^)\\n]{0,${gr}}\\)`,`y`),linking:!0,node:(e,t,n)=>xr(e[2],e[1],t,n)},{re:/<(https?:\/\/[^>\s]+)>/y,linking:!0,node:(e,t,n)=>xr(e[1],e[1],t,n)},{re:/https?:\/\/[^\s<>"'`]*[^\s<>"'`.,;:!?)\]}]/y,linking:!0,node:(e,t,n)=>xr(e[0],e[0],t,n)}],br=/(?<=\s)(?=\S)/;function J(e,t=0,n=!1){let r=[],i=``,a=0,o=0,s=()=>{i&&i.split(br).forEach((e,t)=>{r.push((0,q.jsx)(`span`,{className:`tok`,children:e},`t${a}.${t}`))}),i=``,a=o+1},c=e.indexOf(`)`);for(;o<e.length;){let a=e[o];if(a===`\\`&&o+1<e.length&&hr.test(e[o+1])){i+=e[o+1],o+=2;continue}if(a===`
|
|
11
|
-
`){s(),r.push((0,q.jsx)(`br`,{},`br${o}`)),o++;continue}if((a===`[`||a===`!`)&&(c!==-1&&c<o&&(c=e.indexOf(`)`,o)),c===-1||c-o>vr)){i+=a,o++;continue}let l=!1;if(t<pr&&mr.includes(a))for(let i of yr){if(n&&i.linking)continue;i.re.lastIndex=o;let a=i.re.exec(e),c=i.re.lastIndex;if(!(!a||c<=o)){s(),r.push(i.node(a,`n${o}`,t,n)),o=c,l=!0;break}}l||(i+=a,o++)}return s(),r}function xr(e,t,n,r){let i=Sr(e),a=J(t,r+1,!0);return i?(0,q.jsx)(`a`,{href:i,target:`_blank`,rel:`noreferrer noopener`,className:`underline decoration-1 underline-offset-2 hover:opacity-80`,children:a},n):(0,q.jsx)(`span`,{children:a},n)}function Sr(e){let t=e.trim();return/^(https?:\/\/|mailto:)/i.test(t)?t:null}function Cr({items:e,running:t,onDecide:n}){let r=e.at(-1),i=t&&r?.kind===`assistant`,a=t&&!i;return(0,q.jsxs)(`div`,{className:`flex min-w-0 flex-col gap-2.5 p-3`,children:[e.map((t,r)=>t.kind===`tool`?(0,q.jsx)(Dr,{item:t,onDecide:n},t.id):t.kind===`notice`?(0,q.jsx)(Ar,{item:t},t.id):t.kind===`context`?(0,q.jsx)(zn,{breakdown:t.breakdown},t.id):t.kind===`user`?(0,q.jsx)(wr,{text:t.text,focus:t.focus},t.id):(0,q.jsx)(Tr,{text:t.text,streaming:i&&r===e.length-1},t.id)),a&&(0,q.jsx)(Er,{})]})}function wr({text:e,focus:t}){return(0,q.jsxs)(`div`,{className:`enters flex min-w-0 flex-col items-end gap-1`,children:[(0,q.jsx)(`div`,{className:`min-w-0 max-w-[88%] rounded-2xl rounded-br-md border border-brand/30 bg-brand/10 px-3 py-2 text-sm whitespace-pre-wrap wrap-anywhere text-ink`,children:e}),t&&(0,q.jsxs)(`span`,{className:`flex min-w-0 max-w-[88%] items-center gap-1 rounded-full bg-ember/12 px-2 py-0.5 text-[10px] text-ember`,children:[(0,q.jsx)(at,{className:`size-2.5 shrink-0`}),(0,q.jsx)(`span`,{className:`truncate`,children:t})]})]})}function Tr({text:e,streaming:t}){return(0,q.jsx)(`div`,{className:`enters min-w-0`,children:(0,q.jsx)(Wn,{text:e,streaming:t,className:`panel-card rounded-2xl rounded-tl-md px-3 py-2.5 text-sm leading-relaxed text-ink`})})}function Er(){return(0,q.jsxs)(`div`,{className:`flex items-center gap-2 px-1`,children:[(0,q.jsx)(`span`,{className:`flex items-center gap-1`,children:[0,1,2].map(e=>(0,q.jsx)(`span`,{className:`think-dot size-1.5 rounded-full bg-brand`},e))}),(0,q.jsx)(`span`,{className:`font-mono text-[10px] tracking-[0.14em] text-ink-faint uppercase`,children:`Working`})]})}function Dr({item:e,onDecide:t}){let n=e.action.replace(/^page\./,``),r=jr[n]??yt,i=e.ok===void 0&&!e.awaiting,a=e.action===s.name?Or(e.input):null,[c,l]=(0,G.useState)(!1);return(0,G.useEffect)(()=>{e.awaiting||l(!1)},[e.awaiting]),(0,q.jsxs)(`div`,{className:`enters flex min-w-0 flex-col gap-1.5`,children:[(0,q.jsxs)(`div`,{className:M(`relative flex min-w-0 items-start gap-2 overflow-hidden rounded-lg border px-2 py-1.5 transition-colors`,e.awaiting?`border-ember/45 bg-ember/10`:e.ok===!1?`border-destructive/40 bg-destructive/8`:`border-line bg-ground/40`,i&&`sweep`),children:[(0,q.jsx)(r,{className:M(`mt-0.5 size-3 shrink-0`,e.awaiting?`text-ember`:e.ok===!1?`text-destructive`:e.source===`local`?`text-amber`:e.source===`external`?`text-magenta`:`text-brand`)}),(0,q.jsxs)(`div`,{className:`min-w-0 flex-1`,children:[(0,q.jsxs)(`div`,{className:`flex min-w-0 items-center gap-1.5`,children:[(0,q.jsx)(`span`,{className:`truncate font-mono text-[10px] text-ink`,children:n}),e.source===`local`&&(0,q.jsx)(kr,{tone:`amber`,icon:bt,label:`local`}),e.source===`external`&&(0,q.jsx)(kr,{tone:`magenta`,icon:pt,label:`mcp`})]}),e.summary&&(0,q.jsx)(`p`,{className:M(`mt-0.5 truncate text-[10px]`,e.ok===!1?`text-destructive`:`text-ink-faint`),children:e.summary})]}),e.ok===!0&&(0,q.jsx)(z,{className:`mt-0.5 size-3 shrink-0 text-lime/80`}),e.ok===!1&&(0,q.jsx)(W,{className:`mt-0.5 size-3 shrink-0 text-destructive`})]}),e.preview&&(0,q.jsx)(`button`,{type:`button`,onClick:()=>void o(e.preview),title:`Open the ${e.preview.full?`full-size`:`captured`} screenshot in a new tab`,className:`group max-w-[88%] overflow-hidden rounded-xl border border-line bg-ground/60 transition-colors hover:border-brand/50`,children:(0,q.jsx)(`img`,{src:e.preview.thumbnail,alt:`Screenshot, ${e.preview.width}×${e.preview.height}`,width:e.preview.width,height:e.preview.height,className:`block h-auto w-full transition-opacity group-hover:opacity-85`})}),e.awaiting&&(0,q.jsxs)(`div`,{className:`flex flex-wrap items-center gap-1.5 rounded-lg border border-ember/45 bg-ember/10 px-2.5 py-2`,children:[(0,q.jsx)(`p`,{className:`flex-1 text-xs text-ink`,children:a?`Allow this code to run?`:`Allow this action?`}),a&&(0,q.jsx)(R,{size:`sm`,variant:`ghost`,onClick:()=>l(!0),title:`Read the code before deciding`,children:`Review`}),(0,q.jsx)(R,{size:`sm`,variant:`ghost`,onClick:()=>t(e.id,!1),children:`Deny`}),e.site&&!a&&(0,q.jsxs)(R,{size:`sm`,variant:`ghost`,onClick:()=>t(e.id,!0,!0),title:`Stop asking for ${n} on ${e.site}. Undo with “browsentic approvals clear”.`,children:[`Always on `,e.site]}),(0,q.jsx)(R,{size:`sm`,onClick:()=>t(e.id,!0),children:`Allow`})]}),c&&a&&(0,q.jsx)(Ln,{purpose:a.purpose,code:a.code,site:e.site,onAllow:()=>t(e.id,!0),onDeny:()=>t(e.id,!1),onClose:()=>l(!1)})]})}function Or(e){let t=e;return typeof t?.code!=`string`||!t.code?null:{purpose:typeof t.purpose==`string`?t.purpose:`No purpose given.`,code:t.code}}function kr({tone:e,icon:t,label:n}){return(0,q.jsxs)(`span`,{className:M(`inline-flex shrink-0 items-center gap-0.5 rounded-full px-1.5 py-px font-mono text-[8px] tracking-[0.1em] uppercase`,e===`amber`?`bg-amber/15 text-amber`:`bg-magenta/15 text-magenta`),children:[(0,q.jsx)(t,{className:`size-2`}),n]})}function Ar({item:e}){let t=e.tone===`error`;return(0,q.jsxs)(`div`,{className:M(`enters flex items-start gap-2 rounded-lg px-2.5 py-1.5 text-[11px] leading-relaxed`,t?`border border-destructive/35 bg-destructive/8 text-destructive`:`text-ink-faint`),children:[t?(0,q.jsx)(pe,{className:`mt-px size-3 shrink-0`}):(0,q.jsx)(Ge,{className:`mt-px size-3 shrink-0`}),(0,q.jsx)(`span`,{className:`min-w-0 break-words`,children:e.text})]})}var jr={getPageInfo:Re,extractText:Re,pickElement:at,"browsentic.focusShot":at,findProgress:Re,clickElement:Qe,trustedClick:Qe,hoverElement:Qe,fillInput:gt,typeText:gt,focusInput:mt,selectText:mt,pressKey:qe,submitForm:Fe,selectOption:Ye,navigate:Pe,openTab:Le,switchTab:Le,closeTab:W,screenshot:je,scrollTo:$e,highlightElement:He,waitForElement:Ue,attachFile:tt,listFiles:tt,startMonitor:U,stopMonitor:U,monitorStatus:U,awaitMonitor:U,listRecordings:V,readRecording:V,injectCode:Ne,runCode:Ae};function Mr({offer:e,onKeep:t,onDismiss:n}){let[r,i]=(0,G.useState)(e.suggestedSlug);(0,G.useEffect)(()=>i(e.suggestedSlug),[e.suggestedSlug]);let a=Kt(r)||e.suggestedSlug,o=e.segment===`root`?e.host:`${e.host}/${e.segment}`;return(0,q.jsxs)(`div`,{className:`enters mb-2 rounded-xl border border-lime/30 bg-lime/8 px-3 py-2.5`,children:[(0,q.jsxs)(`div`,{className:`flex items-start gap-2`,children:[(0,q.jsx)(bt,{className:`mt-0.5 size-3.5 shrink-0 text-lime`}),(0,q.jsxs)(`div`,{className:`min-w-0 flex-1`,children:[(0,q.jsxs)(`p`,{className:`text-xs font-medium text-ink`,children:[`Keep this as a tool for `,o,`?`]}),(0,q.jsx)(`p`,{className:`mt-0.5 text-[11px] leading-relaxed text-ink-dim`,children:e.purpose})]})]}),(0,q.jsxs)(`label`,{className:`mt-2.5 block`,children:[(0,q.jsx)(`span`,{className:`sr-only`,children:`Tool name`}),(0,q.jsxs)(`span`,{className:`flex items-center rounded-lg border border-line bg-ground/60 px-2 py-1 font-mono text-[10px]`,children:[(0,q.jsxs)(`span`,{className:`shrink-0 text-ink-faint`,children:[e.host,`:`,e.segment,`:`]}),(0,q.jsx)(`input`,{value:r,onChange:e=>i(e.target.value),spellCheck:!1,"aria-label":`Tool name`,className:`min-w-0 flex-1 bg-transparent text-ink outline-none`})]})]}),(0,q.jsxs)(`p`,{className:`mt-1 font-mono text-[10px] text-ink-faint`,children:[`runs with /`,Wt({host:e.host,segment:e.segment},a)]}),(0,q.jsxs)(`div`,{className:`mt-2.5 flex gap-1.5`,children:[(0,q.jsxs)(R,{variant:`ghost`,size:`sm`,className:`flex-1`,onClick:n,children:[(0,q.jsx)(W,{className:`size-3`}),` No`]}),(0,q.jsxs)(R,{size:`sm`,className:`flex-1`,onClick:()=>t(a),children:[(0,q.jsx)(z,{className:`size-3`}),` Yes, keep it`]})]})]})}function Nr({tools:e,onForget:t,onClose:n}){return(0,G.useEffect)(()=>{let e=e=>{e.key===`Escape`&&n()};return window.addEventListener(`keydown`,e),()=>window.removeEventListener(`keydown`,e)},[n]),(0,In.createPortal)((0,q.jsxs)(`div`,{className:`enters fixed inset-0 z-50 flex flex-col bg-ground/96 backdrop-blur`,children:[(0,q.jsxs)(`div`,{className:`flex items-start gap-2 border-b border-line px-3 py-2.5`,children:[(0,q.jsx)(bt,{className:`mt-0.5 size-3.5 shrink-0 text-lime`}),(0,q.jsxs)(`div`,{className:`min-w-0 flex-1`,children:[(0,q.jsx)(`p`,{className:`text-xs font-medium text-ink`,children:`Your tools`}),(0,q.jsx)(`p`,{className:`mt-0.5 text-[11px] leading-relaxed text-ink-dim`,children:`Removing one deletes its code from the browser and its note from the daemon.`})]}),(0,q.jsx)(`button`,{type:`button`,onClick:n,title:`Close`,className:`mt-0.5 shrink-0 rounded p-0.5 text-ink-faint transition-colors hover:text-ink`,children:(0,q.jsx)(W,{className:`size-3.5`})})]}),(0,q.jsx)(`div`,{className:`min-h-0 flex-1 overflow-auto`,children:e.length===0?(0,q.jsx)(`p`,{className:`px-3 py-4 text-[11px] leading-relaxed text-ink-faint`,children:`Nothing saved yet. Turn the Live tool switch on, ask for something the ordinary tools cannot do, and you will be offered the result to keep.`}):(0,q.jsx)(`ul`,{className:`divide-y divide-line`,children:e.map(e=>(0,q.jsxs)(`li`,{className:`flex items-start gap-2 px-3 py-2.5`,children:[(0,q.jsxs)(`div`,{className:`min-w-0 flex-1`,children:[(0,q.jsx)(`p`,{className:`truncate font-mono text-[11px] text-ink`,children:e.name}),(0,q.jsx)(`p`,{className:`mt-0.5 text-[11px] leading-relaxed text-ink-dim`,children:e.description})]}),(0,q.jsx)(`button`,{type:`button`,onClick:()=>t(e.id),title:`Remove ${e.name}`,"aria-label":`Remove ${e.name}`,className:`mt-0.5 shrink-0 rounded p-1 text-ink-faint transition-colors hover:bg-ember/10 hover:text-ember`,children:(0,q.jsx)(ht,{className:`size-3.5`})})]},e.id))})})]}),document.body)}function Pr({sessions:e,currentId:t,busy:n,onOpen:r,onRemove:i}){return e.length===0?(0,q.jsx)(`div`,{className:`p-3`,children:(0,q.jsxs)(`div`,{className:`dot-grid fade-bottom rounded-xl border border-line px-3 py-6 text-center`,children:[(0,q.jsx)(Ze,{className:`mx-auto size-5 text-ink-faint`}),(0,q.jsx)(`p`,{className:`mt-2 text-[11px] leading-relaxed text-ink-faint`,children:`Every conversation lands here on its own. Start one in Chat, and “New chat” in the header closes it out.`})]})}):(0,q.jsxs)(`div`,{className:`flex min-w-0 flex-col gap-1.5 p-3`,children:[n&&(0,q.jsx)(`p`,{className:`px-1 pb-1 text-[11px] text-ink-faint`,children:`Waiting on the current run — stop it to reopen another conversation.`}),e.map(e=>(0,q.jsx)(Fr,{session:e,current:e.id===t,busy:n===!0,onOpen:r,onRemove:i},e.id))]})}function Fr({session:e,current:t,busy:n,onOpen:r,onRemove:i}){let a=e.title??(e.host?`Conversation on ${e.host}`:`Untitled conversation`);return(0,q.jsxs)(`div`,{className:M(`flex items-start gap-2 rounded-xl border px-2.5 py-2 text-xs transition-colors`,t?`border-brand/35 bg-brand/8`:`border-line bg-ground/40 hover:border-line-strong`),children:[(0,q.jsxs)(`button`,{type:`button`,onClick:()=>r(e.id),disabled:n,className:`flex min-w-0 flex-1 items-start gap-2 text-left disabled:opacity-50`,title:e.url,children:[(0,q.jsx)(Ze,{className:M(`mt-0.5 size-3.5 shrink-0`,t?`text-brand`:`text-ink-faint`)}),(0,q.jsxs)(`span`,{className:`min-w-0 flex-1`,children:[(0,q.jsxs)(`span`,{className:`flex items-center gap-1.5`,children:[(0,q.jsx)(`span`,{className:`truncate font-medium text-ink`,children:a}),t&&(0,q.jsx)(Dn,{children:`open`})]}),e.host&&(0,q.jsxs)(`span`,{className:`mt-0.5 flex items-center gap-1 font-mono text-[10px] text-ink-faint`,children:[(0,q.jsx)(H,{className:`size-2.5 shrink-0`}),(0,q.jsx)(`span`,{className:`truncate`,children:e.host})]}),(0,q.jsx)(`span`,{className:`mt-0.5 flex items-center gap-1 text-[11px] text-ink-faint`,children:ae(e)&&!e.title?(0,q.jsxs)(q.Fragment,{children:[(0,q.jsx)(A,{className:`size-3 animate-spin`}),` Naming…`]}):(0,q.jsxs)(q.Fragment,{children:[e.turns,` `,e.turns===1?`message`:`messages`,` · `,zr(e.updatedAt)]})})]})]}),(0,q.jsx)(`button`,{type:`button`,onClick:()=>i(e.id),"aria-label":`Delete ${a}`,className:`mt-0.5 shrink-0 rounded-full p-1 text-ink-faint transition-colors hover:bg-surface hover:text-ink`,children:(0,q.jsx)(W,{className:`size-3`})})]})}var Ir=6e4,Lr=60*Ir,Rr=24*Lr;function zr(e){let t=Date.now()-e;return t<Ir?`just now`:t<Lr?`${Math.floor(t/Ir)}m ago`:t<Rr?`${Math.floor(t/Lr)}h ago`:t<7*Rr?`${Math.floor(t/Rr)}d ago`:new Date(e).toLocaleDateString(void 0,{month:`short`,day:`numeric`})}function Br({sessions:e,activeSessionId:t,onFocus:n,onEnd:r}){let[i,a]=(0,G.useState)(!0);if(!e.length)return null;let o=e.filter(e=>e.runId).length;return(0,q.jsxs)(`div`,{className:`enters shrink-0 border-b border-line px-3 py-2`,children:[(0,q.jsxs)(`button`,{type:`button`,onClick:()=>a(e=>!e),"aria-expanded":i,className:`flex w-full items-center gap-1.5 font-mono text-[10px] tracking-[0.12em] text-ink-faint uppercase transition-colors hover:text-ink`,children:[(0,q.jsx)(Je,{className:`size-3 shrink-0`}),(0,q.jsxs)(`span`,{className:`flex-1 text-left`,children:[`Sessions · `,e.length,o>0&&(0,q.jsxs)(`span`,{className:`text-brand`,children:[` · `,o,` running`]})]}),(0,q.jsx)(L,{className:M(`size-3 shrink-0 transition-transform`,i&&`rotate-180`)})]}),i&&(0,q.jsx)(`div`,{className:`mt-1.5 flex flex-col gap-1`,children:e.map(e=>(0,q.jsx)(Vr,{session:e,current:e.sessionId===t,onFocus:n,onEnd:r},e.sessionId))})]})}function Vr({session:e,current:t,onFocus:n,onEnd:r}){let i=e.tabIds.length-1;return(0,q.jsxs)(`div`,{className:M(`flex items-center gap-2 rounded-lg border px-2 py-1.5 text-xs transition-colors`,t?`border-brand/35 bg-brand/8`:`border-line bg-ground/40 hover:border-line-strong`),children:[(0,q.jsxs)(`button`,{type:`button`,onClick:()=>n(e.sessionId),className:`flex min-w-0 flex-1 items-center gap-2 text-left`,title:e.url,children:[(0,q.jsx)(`span`,{className:M(`size-1.5 shrink-0 rounded-full`,e.runId?`glow-dot animate-pulse bg-brand text-brand`:`bg-ink-faint`)}),(0,q.jsxs)(`span`,{className:`min-w-0 flex-1`,children:[(0,q.jsx)(`span`,{className:`block truncate text-ink`,children:e.title}),(0,q.jsxs)(`span`,{className:`block font-mono text-[10px] text-ink-faint`,children:[e.turns,` `,e.turns===1?`message`:`messages`,i>0&&` · +${i} tab${i===1?``:`s`}`,e.host&&` · ${e.host}`]})]})]}),(0,q.jsx)(`button`,{type:`button`,onClick:()=>r(e.sessionId),"aria-label":`End the session on ${e.title}`,title:`End this session`,className:`shrink-0 rounded-full p-1 text-ink-faint transition-colors hover:bg-surface hover:text-ink`,children:(0,q.jsx)(W,{className:`size-3`})})]})}var Hr=[`bg-brand`,`bg-ember`,`bg-lime`,`bg-amber`];function Ur({theme:e,onSelect:t}){return(0,q.jsxs)(`section`,{className:`space-y-2`,children:[(0,q.jsx)(`h3`,{className:`font-mono text-[10px] tracking-[0.14em] text-ink-faint uppercase`,children:`Appearance`}),(0,q.jsx)(`p`,{className:`text-[11px] leading-relaxed text-ink-faint`,children:`One click repaints the panel and the popup. Each tile is drawn in the theme it offers, so what you see is what you get.`}),(0,q.jsx)(`div`,{className:`grid grid-cols-2 gap-1.5`,children:E.map(({id:n,name:r,note:i})=>{let a=n===e;return(0,q.jsxs)(`button`,{type:`button`,"data-theme":n,onClick:()=>t(n),"aria-pressed":a,className:M(`rounded-lg border bg-ground p-2 text-left transition-colors`,a?`border-brand/60`:`border-line hover:border-line-strong`),children:[(0,q.jsxs)(`div`,{className:`flex items-start gap-1.5`,children:[(0,q.jsxs)(`div`,{className:`min-w-0 flex-1 space-y-1 rounded-md bg-surface px-1.5 py-1.5`,children:[(0,q.jsx)(`div`,{className:`h-1 w-9/12 rounded-full bg-ink/75`}),(0,q.jsx)(`div`,{className:`h-1 w-6/12 rounded-full bg-ink/30`}),(0,q.jsx)(`div`,{className:`flex gap-1 pt-1`,children:Hr.map(e=>(0,q.jsx)(`span`,{className:M(`size-2 rounded-full`,e)},e))})]}),(0,q.jsx)(`span`,{className:M(`mt-0.5 flex size-3.5 shrink-0 items-center justify-center rounded-full`,a?`bg-brand text-ground`:`border border-line-strong`),children:a&&(0,q.jsx)(z,{className:`size-2.5`,strokeWidth:3})})]}),(0,q.jsx)(`p`,{className:`mt-1.5 text-[11px] font-medium text-ink`,children:r}),(0,q.jsx)(`p`,{className:`text-[10px] leading-snug text-ink-faint`,children:i})]},n)})})]})}function Wr({checked:e,disabled:t,label:n,onChange:r,className:i}){return(0,q.jsx)(`button`,{type:`button`,role:`switch`,"data-slot":`switch`,"aria-checked":e,"aria-label":n,disabled:t,onClick:()=>r(!e),className:M(`relative inline-flex h-4 w-7 shrink-0 items-center rounded-full border transition-colors`,`focus-visible:ring-2 focus-visible:ring-brand/50 focus-visible:outline-none`,e?`border-brand/50 bg-brand/70`:`border-line-strong bg-surface`,t&&`cursor-not-allowed opacity-40`,i),children:(0,q.jsx)(`span`,{"data-slot":`switch-thumb`,className:M(`pointer-events-none size-2.5 rounded-full bg-ink shadow-sm transition-transform`,e?`translate-x-3.5`:`translate-x-0.5`)})})}function Gr(){let[e,t]=(0,G.useState)(()=>be(document.documentElement.dataset.theme));return(0,G.useEffect)(()=>{let e=!0;P.storage.local.get(me).then(n=>e&&t(be(n[`browsentic/theme`])));let n=e=>{`browsentic/theme`in e&&t(be(e[me].newValue))};return P.storage.local.onChanged.addListener(n),()=>{e=!1,P.storage.local.onChanged.removeListener(n)}},[]),[e,(0,G.useCallback)(e=>{t(e),le(e)},[])]}var Kr=`fence`,qr=`unattended`,Jr={allow:`Allow`,confirm:`Ask`,deny:`Block`},Yr=[`allow`,`confirm`,`deny`];function Xr(){let[e,t]=Gr();return(0,q.jsxs)(`div`,{className:`space-y-6 px-3 pb-6`,children:[(0,q.jsx)(Ur,{theme:e,onSelect:t}),(0,q.jsx)(Zr,{})]})}function Zr(){let e=Te(),t=e?.connected??!1,[n,r]=(0,G.useState)(null),[i,a]=(0,G.useState)(null),[o,s]=(0,G.useState)(null),c=(0,G.useCallback)(async(e,t)=>{a(t),s(null);let n=await P.runtime.sendMessage({channel:v,...e}).catch(()=>null);a(null),n?.ok?r(n.data):s(n?.error.message??`The daemon did not answer.`)},[]);(0,G.useEffect)(()=>{t&&c({op:`guardrails`},`load`)},[t,c]);let l=(e,t)=>void c({op:`setGuardrail`,setting:e,value:t},e);return e?.paired?t?n?(0,q.jsxs)(`div`,{className:`space-y-5`,children:[(0,q.jsxs)(`header`,{className:`space-y-1.5`,children:[(0,q.jsxs)(`div`,{className:`flex items-center justify-between gap-2`,children:[(0,q.jsx)(`h2`,{className:`font-mono text-[10px] tracking-[0.14em] text-ink-faint uppercase`,children:`Guardrails`}),(0,q.jsxs)(`button`,{type:`button`,onClick:()=>void c({op:`guardrails`},`load`),disabled:i!==null,className:`flex items-center gap-1 font-mono text-[10px] tracking-[0.14em] text-ink-faint uppercase transition-colors hover:text-brand disabled:opacity-40`,children:[(0,q.jsx)(D,{className:M(`size-3`,i===`load`&&`animate-spin`)}),` Reload`]})]}),(0,q.jsxs)(`p`,{className:`text-[11px] leading-relaxed text-ink-faint`,children:[`A row left off uses the default Browsentic ships. Turning one on writes an override to`,` `,(0,q.jsx)(`span`,{className:`font-mono text-[10px] text-ink-dim`,children:n.configPath}),` and nothing else. A run takes its policy when it starts, so a change here applies to the next one.`]})]}),o&&(0,q.jsx)(`p`,{className:`text-[11px] text-destructive`,children:o}),(0,q.jsx)(`section`,{className:`space-y-1.5`,children:n.rules.map(e=>(0,q.jsx)(Qr,{rule:e,busy:i===e.id,onWrite:l},e.id))}),(0,q.jsxs)(`section`,{className:`space-y-1.5`,children:[(0,q.jsx)(`h3`,{className:`font-mono text-[10px] tracking-[0.14em] text-ink-faint uppercase`,children:`Everything else`}),(0,q.jsx)($r,{title:`Fence page text`,note:`Wraps every page result in a marker telling the model it is reading data, never instructions.`,state:n.fence.overridden?n.fence.enabled?`On`:`Off`:`On (default)`,on:n.fence.overridden,busy:i===Kr,onToggle:e=>l(Kr,e?n.fence.enabled:null),children:n.fence.overridden&&(0,q.jsx)(ei,{options:[{value:!0,label:`Fence`},{value:!1,label:`Do not fence`}],value:n.fence.enabled,onSelect:e=>l(`fence`,e)})}),(0,q.jsx)($r,{title:`Callers with nobody to ask`,note:`An MCP client outside the side panel cannot answer a prompt. This is what its “Ask” decisions become.`,state:n.unattended.overridden?Jr[n.unattended.effect]:`Block (default)`,on:n.unattended.overridden,busy:i===qr,onToggle:e=>l(qr,e?n.unattended.effect:null),children:n.unattended.overridden&&(0,q.jsx)(ei,{options:[{value:`deny`,label:`Block`},{value:`allow`,label:`Allow`}],value:n.unattended.effect,onSelect:e=>l(`unattended`,e)})}),(0,q.jsxs)(`div`,{className:`rounded-md border border-line bg-surface/30 px-2.5 py-2`,children:[(0,q.jsxs)(`div`,{className:`flex items-center gap-1.5`,children:[(0,q.jsx)(ye,{className:`size-3 text-brand`}),(0,q.jsx)(`span`,{className:`text-[11px] font-medium text-ink`,children:`Credential sealing`}),(0,q.jsx)(`span`,{className:`ml-auto font-mono text-[9px] tracking-[0.1em] text-brand uppercase`,children:`Always on`})]}),(0,q.jsx)(`p`,{className:`mt-1 text-[11px] leading-relaxed text-ink-faint`,children:`Passwords, keys, tokens and cookies are replaced by a placeholder before a result leaves the browser. There is no switch: it is what keeps a plaintext credential off the socket in the first place.`})]}),n.hosts.length>0&&(0,q.jsxs)(`div`,{className:`rounded-md border border-line bg-surface/30 px-2.5 py-2`,children:[(0,q.jsx)(`span`,{className:`text-[11px] font-medium text-ink`,children:`Standing host allowlist`}),(0,q.jsx)(`p`,{className:`mt-1 font-mono text-[10px] leading-relaxed break-all text-ink-dim`,children:n.hosts.join(` · `)}),(0,q.jsx)(`p`,{className:`mt-1 text-[11px] text-ink-faint`,children:`Added to every run’s scope. Edited in config.json.`})]})]})]}):(0,q.jsx)(ti,{children:o??`Reading the policy…`}):(0,q.jsx)(ti,{children:`The daemon is offline. Settings live in its config file, so they load when it reconnects.`}):(0,q.jsx)(ti,{children:`Pair a browser to see what this agent is allowed to do.`})}function Qr({rule:e,busy:t,onWrite:n}){if(e.locked)return(0,q.jsxs)(`div`,{className:`rounded-md border border-line bg-surface/20 px-2.5 py-2`,children:[(0,q.jsxs)(`div`,{className:`flex items-center gap-1.5`,children:[(0,q.jsx)(`span`,{className:`text-[11px] font-medium text-ink-dim`,children:e.title}),(0,q.jsxs)(`span`,{className:`ml-auto flex items-center gap-1 font-mono text-[9px] tracking-[0.1em] text-ink-faint uppercase`,children:[(0,q.jsx)(Xe,{className:`size-2.5`}),Jr[e.fallback]]})]}),(0,q.jsx)(`p`,{className:`mt-1 text-[11px] leading-relaxed text-ink-faint`,children:e.reason})]});let r=e.override??e.fallback;return(0,q.jsx)($r,{title:e.title,note:e.reason,state:e.override?Jr[e.override]:`${Jr[e.fallback]} (default)`,on:e.override!==void 0,busy:t,onToggle:t=>n(e.id,t?r:null),children:e.override!==void 0&&(0,q.jsx)(ei,{options:Yr.map(e=>({value:e,label:Jr[e]})),value:e.override,onSelect:t=>n(e.id,t)})})}function $r({title:e,note:t,state:n,on:r,busy:i,onToggle:a,children:o}){return(0,q.jsxs)(`div`,{className:M(`rounded-md border px-2.5 py-2 transition-colors`,r?`border-brand/30 bg-brand/5`:`border-line bg-surface/20`),children:[(0,q.jsxs)(`div`,{className:`flex items-center gap-2`,children:[(0,q.jsx)(`span`,{className:`text-[11px] font-medium text-ink`,children:e}),(0,q.jsxs)(`span`,{className:`ml-auto flex items-center gap-1.5`,children:[(0,q.jsx)(`span`,{className:`font-mono text-[9px] tracking-[0.1em] text-ink-faint uppercase`,children:n}),i?(0,q.jsx)(A,{className:`size-3 animate-spin text-ink-faint`}):(0,q.jsx)(Wr,{checked:r,label:`Override ${e}`,onChange:a})]})]}),(0,q.jsx)(`p`,{className:`mt-1 text-[11px] leading-relaxed text-ink-faint`,children:t}),o]})}function ei({options:e,value:t,onSelect:n}){return(0,q.jsx)(`div`,{className:`mt-2 flex gap-1`,children:e.map(e=>(0,q.jsx)(`button`,{type:`button`,onClick:()=>n(e.value),"aria-pressed":e.value===t,className:M(`flex-1 rounded px-2 py-1 text-[10px] font-medium transition-colors`,e.value===t?`bg-brand/20 text-brand`:`bg-surface text-ink-faint hover:text-ink-dim`),children:e.label},String(e.value)))})}function ti({children:e}){return(0,q.jsx)(`p`,{className:`px-1 py-6 text-center text-[11px] leading-relaxed text-ink-faint`,children:e})}function ni({draft:e,onActivate:t,onDiscard:n}){let[r,i]=(0,G.useState)(!1),a=r?e.host:e.domain;return(0,q.jsxs)(`div`,{className:`enters mb-2 overflow-hidden rounded-xl border border-amber/40 bg-amber/8`,children:[(0,q.jsxs)(`div`,{className:`flex items-start gap-2 border-b border-amber/25 px-2.5 py-2`,children:[(0,q.jsxs)(`div`,{className:`min-w-0 flex-1`,children:[(0,q.jsxs)(`p`,{className:`truncate text-xs font-medium text-ink`,children:[`Mapped `,e.host]}),(0,q.jsxs)(`p`,{className:`mt-0.5 flex flex-wrap items-center gap-x-2 gap-y-0.5 font-mono text-[10px] text-ink-faint`,children:[(0,q.jsxs)(`span`,{children:[e.pages,` pages`]}),(0,q.jsxs)(`span`,{className:`inline-flex items-center gap-0.5`,children:[(0,q.jsx)(We,{className:`size-2.5`}),` `,e.screenshots]}),(0,q.jsx)(`span`,{children:new Date(e.generatedAt).toLocaleString()})]})]}),(0,q.jsx)(Dn,{variant:`warning`,children:`not active yet`})]}),(0,q.jsxs)(`div`,{className:`px-2.5 py-2`,children:[(0,q.jsxs)(`p`,{className:`mb-2 text-[11px] leading-relaxed text-ink-dim`,children:[`This was written from pages the agent read. Once you activate it, it joins the instructions for every future request on `,(0,q.jsx)(`span`,{className:`font-mono text-ink`,children:a}),`. Read it first.`]}),e.warnings.length>0&&(0,q.jsx)(`div`,{className:`mb-2 space-y-1 rounded-lg bg-amber/12 px-2 py-1.5`,children:e.warnings.map(e=>(0,q.jsxs)(`p`,{className:`flex gap-1.5 text-[11px] leading-snug text-amber`,children:[(0,q.jsx)(pe,{className:`mt-0.5 size-3 shrink-0`}),(0,q.jsx)(`span`,{children:e})]},e))}),(0,q.jsx)(`div`,{className:`max-h-56 overflow-x-hidden overflow-y-auto rounded-lg border border-line bg-ground/70`,children:(0,q.jsx)(`pre`,{className:`px-2 py-1.5 font-mono text-[10px] leading-relaxed break-words whitespace-pre-wrap text-ink-dim`,children:e.markdown})}),(0,q.jsxs)(`p`,{className:`mt-1.5 flex items-start gap-1 font-mono text-[10px] break-all text-ink-faint`,children:[(0,q.jsx)(Ve,{className:`mt-0.5 size-2.5 shrink-0`}),e.directory]}),e.screenshots>0&&(0,q.jsx)(`p`,{className:`mt-0.5 text-[10px] text-ink-faint`,children:`Screenshots may show pages you were signed in to. They stay on this machine.`}),(0,q.jsxs)(`label`,{className:`mt-2 flex items-center gap-1.5 text-[11px] text-ink-dim`,children:[(0,q.jsx)(`input`,{type:`checkbox`,checked:r,onChange:e=>i(e.target.checked),className:`size-3 accent-brand`}),`Only on `,(0,q.jsx)(`span`,{className:`font-mono text-ink`,children:e.host}),`, not its subdomains`]}),(0,q.jsxs)(`div`,{className:`mt-2.5 flex gap-1.5`,children:[(0,q.jsxs)(R,{variant:`ghost`,size:`sm`,className:`flex-1`,onClick:n,children:[(0,q.jsx)(ht,{className:`size-3`}),` Discard`]}),(0,q.jsxs)(R,{size:`sm`,className:`flex-1`,onClick:()=>t(r),children:[(0,q.jsx)(z,{className:`size-3`}),` Activate`]})]})]})]})}function ri(){let[e,t]=(0,G.useState)([]);return(0,G.useEffect)(()=>{let e=!0;P.storage.local.get(N).then(n=>{let r=n[N];e&&Array.isArray(r)&&t(r)});let n=e=>{if(`browsentic:skills`in e){let n=e[N].newValue;t(Array.isArray(n)?n:[])}};return P.storage.local.onChanged.addListener(n),()=>{e=!1,P.storage.local.onChanged.removeListener(n)}},[]),e}function ii({tabUrl:e,connected:t,onMapSite:n,mapping:r}){let i=ri(),a=(0,G.useRef)(null),[o,s]=(0,G.useState)(null),[c,l]=(0,G.useState)(``),[u,d]=(0,G.useState)(null),f=Nt(e),p=t&&!r&&/^https?:/.test(e),m=i.some(e=>e.origin===`generated`&&It(f,e.domains));async function h(){let e=a.current,t=e?.files?.[0];if(e&&(e.value=``),!t)return;let n=Bt(await t.text(),t.name);s(n),l(n.domains.join(`, `)),d(null)}async function g(){if(!o)return;let e=c.split(`,`).map(Pt).filter(Boolean),t=Rt({...o,domains:e});if(!t.ok){d(t.message);return}let n=t.draft,r=crypto.randomUUID();await ge({id:r,name:n.name,description:n.description,category:n.category,domains:n.domains,status:`pending`,addedAt:Date.now()},{id:r,body:n.body,triggers:n.triggers}),await P.runtime.sendMessage({channel:v,op:`saveSkill`,skillId:r}),s(null),d(null)}return(0,q.jsxs)(`div`,{className:`flex min-w-0 flex-col gap-3 p-3`,children:[(0,q.jsx)(`p`,{className:`text-[11px] leading-relaxed text-ink-dim`,children:`Notes about a site — where things are, how its lists load — that join the agent’s instructions only while you are on that site. Let the agent write them for you, or upload your own markdown.`}),!o&&(0,q.jsxs)(`div`,{className:`grid grid-cols-2 gap-1.5`,children:[(0,q.jsxs)(R,{size:`sm`,onClick:n,disabled:!p,title:p?`Map ${f}`:`Open an http(s) page, with no run in progress`,children:[r?(0,q.jsx)(A,{className:`animate-spin`}):(0,q.jsx)(Pe,{}),(0,q.jsxs)(`span`,{className:`truncate`,children:[m?`Re-map`:`Map`,` this site`]})]}),(0,q.jsxs)(R,{variant:`outline`,size:`sm`,onClick:()=>a.current?.click(),children:[(0,q.jsx)(vt,{}),` Upload notes`]})]}),o?(0,q.jsx)(ai,{draft:o,domainText:c,error:u,connected:t,onChange:e=>{s({...o,...e}),d(null)},onDomainText:e=>{l(e),d(null)},onCancel:()=>{s(null),d(null)},onSave:()=>void g()}):(0,q.jsx)(oi,{skills:i,host:f}),(0,q.jsx)(`input`,{ref:a,type:`file`,accept:`.md,.markdown,text/markdown`,className:`hidden`,onChange:()=>void h()})]})}function ai({draft:e,domainText:t,error:n,connected:r,onChange:i,onDomainText:a,onCancel:o,onSave:s}){let c=e.category===`site-exploration`;return(0,q.jsxs)(`div`,{className:`panel-card flex flex-col gap-2 rounded-xl p-2.5`,children:[(0,q.jsx)(`p`,{className:`font-mono text-[10px] tracking-[0.14em] text-ink-faint uppercase`,children:`New skill`}),(0,q.jsx)(O,{value:e.name,onChange:e=>i({name:e.target.value.toLowerCase()}),placeholder:`skill-name`,"aria-label":`Skill name`,className:`h-8 font-mono text-xs`}),(0,q.jsx)(O,{value:e.description,onChange:e=>i({description:e.target.value}),placeholder:`What is this for?`,"aria-label":`Skill description`,className:`h-8 text-xs`}),(0,q.jsxs)(`div`,{className:`flex gap-1.5`,children:[(0,q.jsx)(R,{variant:c?`outline`:`default`,size:`sm`,className:`flex-1`,onClick:()=>i({category:`general`}),children:`General`}),(0,q.jsxs)(R,{variant:c?`default`:`outline`,size:`sm`,className:`flex-1`,onClick:()=>i({category:`site-exploration`}),children:[(0,q.jsx)(H,{}),` Site notes`]})]}),c&&(0,q.jsx)(O,{value:t,onChange:e=>a(e.target.value),placeholder:`acme.com, admin.acme.com`,"aria-label":`Domains this skill applies to`,className:`h-8 font-mono text-xs`}),(0,q.jsx)(`p`,{className:`line-clamp-3 rounded-lg border border-line bg-ground/70 px-2 py-1.5 text-[11px] leading-relaxed text-ink-faint`,children:e.body||`This file has no instructions in it.`}),n&&(0,q.jsx)(`p`,{className:`rounded-lg border border-amber/40 bg-amber/10 px-2 py-1.5 text-[11px] text-amber`,children:n}),(0,q.jsxs)(`div`,{className:`flex gap-1.5`,children:[(0,q.jsx)(R,{variant:`ghost`,size:`sm`,className:`flex-1`,onClick:o,children:`Cancel`}),(0,q.jsxs)(R,{size:`sm`,className:`flex-1`,onClick:s,disabled:!r,children:[(0,q.jsx)(z,{}),` Save skill`]})]}),!r&&(0,q.jsx)(`p`,{className:`text-center text-[10px] text-ink-faint`,children:`Pair the browser to save skills.`})]})}function oi({skills:e,host:t}){return e.length===0?(0,q.jsxs)(`div`,{className:`dot-grid fade-bottom rounded-xl border border-line px-3 py-6 text-center`,children:[(0,q.jsx)(B,{className:`mx-auto size-5 text-ink-faint`}),(0,q.jsx)(`p`,{className:`mt-2 text-[11px] leading-relaxed text-ink-faint`,children:`No skills yet. Mapping a site writes one for you; uploading a markdown file adds your own.`})]}):(0,q.jsx)(`div`,{className:`flex min-w-0 flex-col gap-1.5`,children:e.map(e=>(0,q.jsx)(si,{skill:e,host:t},e.id))})}function si({skill:e,host:t}){let n=e.category===`site-exploration`&&It(t,e.domains),r=e.origin===`generated`,i=r?Pe:B;return(0,q.jsxs)(`div`,{className:M(`flex items-start gap-2 rounded-xl border px-2.5 py-2 text-xs`,n?`border-brand/35 bg-brand/8`:`border-line bg-ground/40`),children:[(0,q.jsx)(i,{className:M(`mt-0.5 size-3.5 shrink-0`,n?`text-brand`:`text-ink-faint`)}),(0,q.jsxs)(`div`,{className:`min-w-0 flex-1`,children:[(0,q.jsxs)(`div`,{className:`flex items-center gap-1.5`,children:[(0,q.jsx)(`span`,{className:`truncate font-medium text-ink`,children:e.name}),r&&(0,q.jsx)(Dn,{variant:`outline`,children:`mapped`}),n&&(0,q.jsx)(Dn,{children:`on this site`})]}),e.domains.length>0&&(0,q.jsx)(`p`,{className:`mt-0.5 truncate font-mono text-[10px] text-ink-faint`,children:e.domains.join(`, `)}),e.description&&(0,q.jsx)(`p`,{className:`mt-0.5 line-clamp-2 text-[11px] text-ink-dim`,children:e.description}),e.status===`pending`&&(0,q.jsxs)(`span`,{className:`mt-0.5 flex items-center gap-1 text-[11px] text-ink-faint`,children:[(0,q.jsx)(A,{className:`size-3 animate-spin`}),` Saving…`]}),e.status===`error`&&(0,q.jsx)(`span`,{className:`mt-0.5 block text-[11px] text-destructive`,children:e.error??`Could not save`})]}),(0,q.jsx)(`button`,{type:`button`,onClick:()=>void P.runtime.sendMessage({channel:v,op:`removeSkill`,skillId:e.id}),"aria-label":`Remove ${e.name}`,className:`mt-0.5 shrink-0 rounded-full p-1 text-ink-faint transition-colors hover:bg-surface hover:text-ink`,children:(0,q.jsx)(W,{className:`size-3`})})]})}var ci=Object.defineProperty,Y=(e,t)=>ci(e,`name`,{value:t,configurable:!0});function li(e,t){return G.useReducer((e,n)=>t[e][n]??e,e)}Y(li,`useStateMachine`);var ui=`ScrollArea`,[di,fi]=x(ui),[pi,X]=di(ui),mi=G.forwardRef(Y(function(e,t){let{__scopeScrollArea:n,type:r=`hover`,dir:i,scrollHideDelay:a=600,...o}=e,[s,c]=G.useState(null),[u,d]=G.useState(null),[f,p]=G.useState(null),[m,h]=G.useState(null),[g,_]=G.useState(null),[ee,v]=G.useState(0),[te,y]=G.useState(0),[b,x]=G.useState(!1),[C,w]=G.useState(!1),T=S(t,c),E=ne(i);return(0,q.jsx)(pi,{scope:n,type:r,dir:E,scrollHideDelay:a,scrollArea:s,viewport:u,onViewportChange:d,content:f,onContentChange:p,scrollbarX:m,onScrollbarXChange:h,scrollbarXEnabled:b,onScrollbarXEnabledChange:x,scrollbarY:g,onScrollbarYChange:_,scrollbarYEnabled:C,onScrollbarYEnabledChange:w,onCornerWidthChange:v,onCornerHeightChange:y,children:(0,q.jsx)(l.div,{dir:E,...o,ref:T,style:{position:`relative`,"--radix-scroll-area-corner-width":ee+`px`,"--radix-scroll-area-corner-height":te+`px`,...e.style}})})},`ScrollArea`)),hi=`ScrollAreaViewport`,gi=G.forwardRef(Y(function(e,t){let{__scopeScrollArea:n,children:r,nonce:i,...a}=e,o=X(hi,n),s=S(t,G.useRef(null),o.onViewportChange);return(0,q.jsxs)(q.Fragment,{children:[(0,q.jsx)(_i,{nonce:i}),(0,q.jsx)(l.div,{"data-radix-scroll-area-viewport":``,...a,ref:s,style:{overflowX:o.scrollbarXEnabled?`scroll`:`hidden`,overflowY:o.scrollbarYEnabled?`scroll`:`hidden`,...e.style},children:(0,q.jsx)(`div`,{ref:o.onContentChange,style:{minWidth:`100%`,display:`table`},children:r})})]})},`ScrollAreaViewport`)),_i=G.memo(Y(function({nonce:e}){return(0,q.jsx)(`style`,{dangerouslySetInnerHTML:{__html:`[data-radix-scroll-area-viewport]{scrollbar-width:none;-ms-overflow-style:none;-webkit-overflow-scrolling:touch;}[data-radix-scroll-area-viewport]::-webkit-scrollbar{display:none}`},nonce:e})},`ScrollAreaViewportStyle`),(e,t)=>e.nonce===t.nonce),Z=`ScrollAreaScrollbar`,vi=G.forwardRef(Y(function(e,t){let{forceMount:n,...r}=e,i=X(Z,e.__scopeScrollArea),{onScrollbarXEnabledChange:a,onScrollbarYEnabledChange:o}=i,s=e.orientation===`horizontal`;return G.useEffect(()=>(s?a(!0):o(!0),()=>{s?a(!1):o(!1)}),[s,a,o]),i.type===`hover`?(0,q.jsx)(yi,{...r,ref:t,forceMount:n}):i.type===`scroll`?(0,q.jsx)(bi,{...r,ref:t,forceMount:n}):i.type===`auto`?(0,q.jsx)(xi,{...r,ref:t,forceMount:n}):i.type===`always`?(0,q.jsx)(Si,{...r,ref:t,"data-state":`visible`}):null},`ScrollAreaScrollbar`)),yi=G.forwardRef(Y(function(e,t){let{forceMount:n,...r}=e,i=X(Z,e.__scopeScrollArea),[a,o]=G.useState(!1);return G.useEffect(()=>{let e=i.scrollArea,t=0;if(e){let n=Y(()=>{window.clearTimeout(t),o(!0)},`handlePointerEnter`),r=Y(()=>{t=window.setTimeout(()=>o(!1),i.scrollHideDelay)},`handlePointerLeave`);return e.addEventListener(`pointerenter`,n),e.addEventListener(`pointerleave`,r),()=>{window.clearTimeout(t),e.removeEventListener(`pointerenter`,n),e.removeEventListener(`pointerleave`,r)}}},[i.scrollArea,i.scrollHideDelay]),(0,q.jsx)(Oe,{present:n||a,children:(0,q.jsx)(xi,{"data-state":a?`visible`:`hidden`,...r,ref:t})})},`ScrollAreaScrollbarHover`)),bi=G.forwardRef(Y(function(e,t){let{forceMount:n,...r}=e,i=X(Z,e.__scopeScrollArea),a=e.orientation===`horizontal`,o=Vi(()=>l(`SCROLL_END`),100),[s,l]=li(`hidden`,{hidden:{SCROLL:`scrolling`},scrolling:{SCROLL_END:`idle`,POINTER_ENTER:`interacting`},interacting:{SCROLL:`interacting`,POINTER_LEAVE:`idle`},idle:{HIDE:`hidden`,SCROLL:`scrolling`,POINTER_ENTER:`interacting`}});return G.useEffect(()=>{if(s===`idle`){let e=window.setTimeout(()=>l(`HIDE`),i.scrollHideDelay);return()=>window.clearTimeout(e)}},[s,i.scrollHideDelay,l]),G.useEffect(()=>{let e=i.viewport,t=a?`scrollLeft`:`scrollTop`;if(e){let n=e[t],r=Y(()=>{let r=e[t];n!==r&&(l(`SCROLL`),o()),n=r},`handleScroll`);return e.addEventListener(`scroll`,r),()=>e.removeEventListener(`scroll`,r)}},[i.viewport,a,l,o]),(0,q.jsx)(Oe,{present:n||s!==`hidden`,children:(0,q.jsx)(Si,{"data-state":s===`hidden`?`hidden`:`visible`,...r,ref:t,onPointerEnter:c(e.onPointerEnter,()=>l(`POINTER_ENTER`)),onPointerLeave:c(e.onPointerLeave,()=>l(`POINTER_LEAVE`))})})},`ScrollAreaScrollbarScroll`)),xi=G.forwardRef(Y(function(e,t){let n=X(Z,e.__scopeScrollArea),{forceMount:r,...i}=e,[a,o]=G.useState(!1),s=e.orientation===`horizontal`,c=Vi(()=>{if(n.viewport){let e=n.viewport.offsetWidth<n.viewport.scrollWidth,t=n.viewport.offsetHeight<n.viewport.scrollHeight;o(s?e:t)}},10);return $(n.viewport,c),$(n.content,c),(0,q.jsx)(Oe,{present:r||a,children:(0,q.jsx)(Si,{"data-state":a?`visible`:`hidden`,...i,ref:t})})},`ScrollAreaScrollbarAuto`)),Si=G.forwardRef(Y(function(e,t){let{orientation:n=`vertical`,...r}=e,i=X(Z,e.__scopeScrollArea),a=G.useRef(null),o=G.useRef(0),[s,c]=G.useState({content:0,viewport:0,scrollbar:{size:0,paddingStart:0,paddingEnd:0}}),l=Fi(s.viewport,s.content),u={...r,sizes:s,onSizesChange:c,hasThumb:l>0&&l<1,onThumbChange:Y(e=>a.current=e,`onThumbChange`),onThumbPointerUp:Y(()=>o.current=0,`onThumbPointerUp`),onThumbPointerDown:Y(e=>o.current=e,`onThumbPointerDown`)};function d(e,t){return Ii(e,o.current,s,t)}return Y(d,`getScrollPosition`),n===`horizontal`?(0,q.jsx)(Ci,{...u,ref:t,onThumbPositionChange:()=>{if(i.viewport&&a.current){let e=i.viewport.scrollLeft,t=Li(e,s,i.dir);a.current.style.transform=`translate3d(${t}px, 0, 0)`}},onWheelScroll:e=>{i.viewport&&(i.viewport.scrollLeft=e)},onDragScroll:e=>{i.viewport&&(i.viewport.scrollLeft=d(e,i.dir))}}):n===`vertical`?(0,q.jsx)(wi,{...u,ref:t,onThumbPositionChange:()=>{if(i.viewport&&a.current){let e=i.viewport.scrollTop,t=Li(e,s);a.current.style.transform=`translate3d(0, ${t}px, 0)`}},onWheelScroll:e=>{i.viewport&&(i.viewport.scrollTop=e)},onDragScroll:e=>{i.viewport&&(i.viewport.scrollTop=d(e))}}):null},`ScrollAreaScrollbarVisible`)),Ci=G.forwardRef(Y(function(e,t){let{sizes:n,onSizesChange:r,...i}=e,a=X(Z,e.__scopeScrollArea),[o,s]=G.useState(),c=G.useRef(null),l=S(t,c,a.onScrollbarXChange);return G.useEffect(()=>{c.current&&s(getComputedStyle(c.current))},[c]),(0,q.jsx)(Di,{"data-orientation":`horizontal`,...i,ref:l,sizes:n,style:{bottom:0,left:a.dir===`rtl`?`var(--radix-scroll-area-corner-width)`:0,right:a.dir===`ltr`?`var(--radix-scroll-area-corner-width)`:0,"--radix-scroll-area-thumb-width":Q(n)+`px`,...e.style},onThumbPointerDown:t=>e.onThumbPointerDown(t.x),onDragScroll:t=>e.onDragScroll(t.x),onWheelScroll:(t,n)=>{if(a.viewport){let r=a.viewport.scrollLeft+t.deltaX;e.onWheelScroll(r),zi(r,n)&&t.preventDefault()}},onResize:()=>{c.current&&a.viewport&&o&&r({content:a.viewport.scrollWidth,viewport:a.viewport.offsetWidth,scrollbar:{size:c.current.clientWidth,paddingStart:Pi(o.paddingLeft),paddingEnd:Pi(o.paddingRight)}})}})},`ScrollAreaScrollbarX`)),wi=G.forwardRef(Y(function(e,t){let{sizes:n,onSizesChange:r,...i}=e,a=X(Z,e.__scopeScrollArea),[o,s]=G.useState(),c=G.useRef(null),l=S(t,c,a.onScrollbarYChange);return G.useEffect(()=>{c.current&&s(getComputedStyle(c.current))},[c]),(0,q.jsx)(Di,{"data-orientation":`vertical`,...i,ref:l,sizes:n,style:{top:0,right:a.dir===`ltr`?0:void 0,left:a.dir===`rtl`?0:void 0,bottom:`var(--radix-scroll-area-corner-height)`,"--radix-scroll-area-thumb-height":Q(n)+`px`,...e.style},onThumbPointerDown:t=>e.onThumbPointerDown(t.y),onDragScroll:t=>e.onDragScroll(t.y),onWheelScroll:(t,n)=>{if(a.viewport){let r=a.viewport.scrollTop+t.deltaY;e.onWheelScroll(r),zi(r,n)&&t.preventDefault()}},onResize:()=>{c.current&&a.viewport&&o&&r({content:a.viewport.scrollHeight,viewport:a.viewport.offsetHeight,scrollbar:{size:c.current.clientHeight,paddingStart:Pi(o.paddingTop),paddingEnd:Pi(o.paddingBottom)}})}})},`ScrollAreaScrollbarY`)),[Ti,Ei]=di(Z),Di=G.forwardRef(Y(function(e,t){let{__scopeScrollArea:n,sizes:r,hasThumb:i,onThumbChange:a,onThumbPointerUp:o,onThumbPointerDown:s,onThumbPositionChange:u,onDragScroll:d,onWheelScroll:f,onResize:p,...m}=e,h=X(Z,n),[g,_]=G.useState(null),ee=S(t,_),v=G.useRef(null),te=G.useRef(``),y=h.viewport,ne=r.content-r.viewport,x=b(f),C=b(u),w=Vi(p,10);function T(e){if(v.current){let t=e.clientX-v.current.left,n=e.clientY-v.current.top;d({x:t,y:n})}}return Y(T,`handleDragScroll`),G.useEffect(()=>{let e=Y(e=>{let t=e.target;g?.contains(t)&&x(e,ne)},`handleWheel`);return document.addEventListener(`wheel`,e,{passive:!1}),()=>document.removeEventListener(`wheel`,e,{passive:!1})},[y,g,ne,x]),G.useEffect(C,[r,C]),$(g,w),$(h.content,w),(0,q.jsx)(Ti,{scope:n,scrollbar:g,hasThumb:i,onThumbChange:b(a),onThumbPointerUp:b(o),onThumbPositionChange:C,onThumbPointerDown:b(s),children:(0,q.jsx)(l.div,{...m,ref:ee,style:{position:`absolute`,...m.style},onPointerDown:c(e.onPointerDown,e=>{e.button===0&&(e.target.setPointerCapture(e.pointerId),v.current=g.getBoundingClientRect(),te.current=document.body.style.webkitUserSelect,document.body.style.webkitUserSelect=`none`,h.viewport&&(h.viewport.style.scrollBehavior=`auto`),T(e))}),onPointerMove:c(e.onPointerMove,T),onPointerUp:c(e.onPointerUp,e=>{let t=e.target;t.hasPointerCapture(e.pointerId)&&t.releasePointerCapture(e.pointerId),document.body.style.webkitUserSelect=te.current,h.viewport&&(h.viewport.style.scrollBehavior=``),v.current=null})})})},`ScrollAreaScrollbarImpl`)),Oi=`ScrollAreaThumb`,ki=G.forwardRef(Y(function(e,t){let{forceMount:n,...r}=e,i=Ei(Oi,e.__scopeScrollArea);return(0,q.jsx)(Oe,{present:n||i.hasThumb,children:(0,q.jsx)(Ai,{ref:t,...r})})},`ScrollAreaThumb`)),Ai=G.forwardRef(Y(function(e,t){let{__scopeScrollArea:n,style:r,...i}=e,a=X(Oi,n),o=Ei(Oi,n),{onThumbPositionChange:s}=o,u=S(t,o.onThumbChange),d=G.useRef(void 0),f=Vi(()=>{d.current&&=(d.current(),void 0)},100);return G.useEffect(()=>{let e=a.viewport;if(e){let t=Y(()=>{if(f(),!d.current){let t=Bi(e,s);d.current=t,s()}},`handleScroll`);return s(),e.addEventListener(`scroll`,t),()=>e.removeEventListener(`scroll`,t)}},[a.viewport,f,s]),(0,q.jsx)(l.div,{"data-state":o.hasThumb?`visible`:`hidden`,...i,ref:u,style:{width:`var(--radix-scroll-area-thumb-width)`,height:`var(--radix-scroll-area-thumb-height)`,...r},onPointerDownCapture:c(e.onPointerDownCapture,e=>{let t=e.target.getBoundingClientRect(),n=e.clientX-t.left,r=e.clientY-t.top;o.onThumbPointerDown({x:n,y:r})}),onPointerUp:c(e.onPointerUp,o.onThumbPointerUp)})},`ScrollAreaThumbImpl`)),ji=`ScrollAreaCorner`,Mi=G.forwardRef(Y(function(e,t){let n=X(ji,e.__scopeScrollArea),r=!!(n.scrollbarX&&n.scrollbarY);return n.type!==`scroll`&&r?(0,q.jsx)(Ni,{...e,ref:t}):null},`ScrollAreaCorner`)),Ni=G.forwardRef(Y(function(e,t){let{__scopeScrollArea:n,...r}=e,i=X(ji,n),[a,o]=G.useState(0),[s,c]=G.useState(0),u=!!(a&&s),{onCornerWidthChange:d,onCornerHeightChange:f}=i;return $(i.scrollbarX,()=>{let e=i.scrollbarX?.offsetHeight||0;i.onCornerHeightChange(e),c(e)}),$(i.scrollbarY,()=>{let e=i.scrollbarY?.offsetWidth||0;i.onCornerWidthChange(e),o(e)}),G.useEffect(()=>()=>{d(0),f(0)},[d,f]),u?(0,q.jsx)(l.div,{...r,ref:t,style:{width:a,height:s,position:`absolute`,right:i.dir===`ltr`?0:void 0,left:i.dir===`rtl`?0:void 0,bottom:0,...e.style}}):null},`ScrollAreaCornerImpl`));function Pi(e){return e?parseInt(e,10):0}Y(Pi,`toInt`);function Fi(e,t){let n=e/t;return isNaN(n)?0:n}Y(Fi,`getThumbRatio`);function Q(e){let t=Fi(e.viewport,e.content),n=e.scrollbar.paddingStart+e.scrollbar.paddingEnd,r=(e.scrollbar.size-n)*t;return Math.max(r,18)}Y(Q,`getThumbSize`);function Ii(e,t,n,r=`ltr`){let i=Q(n),a=i/2,o=t||a,s=i-o,c=n.scrollbar.paddingStart+o,l=n.scrollbar.size-n.scrollbar.paddingEnd-s,u=n.content-n.viewport,d=r===`ltr`?[0,u]:[u*-1,0];return Ri([c,l],d)(e)}Y(Ii,`getScrollPositionFromPointer`);function Li(e,t,n=`ltr`){let r=Q(t),i=t.scrollbar.paddingStart+t.scrollbar.paddingEnd,a=t.scrollbar.size-i,o=t.content-t.viewport,s=a-r,c=f(e,n===`ltr`?[0,o]:[o*-1,0]);return Ri([0,o],[0,s])(c)}Y(Li,`getThumbOffsetFromScroll`);function Ri(e,t){return n=>{if(e[0]===e[1]||t[0]===t[1])return t[0];let r=(t[1]-t[0])/(e[1]-e[0]);return t[0]+r*(n-e[0])}}Y(Ri,`linearScale`);function zi(e,t){return e>0&&e<t}Y(zi,`isScrollingWithinScrollbarBounds`);var Bi=Y((e,t=()=>{})=>{let n={left:e.scrollLeft,top:e.scrollTop},r=0;return Y((function i(){let a={left:e.scrollLeft,top:e.scrollTop},o=n.left!==a.left,s=n.top!==a.top;(o||s)&&t(),n=a,r=window.requestAnimationFrame(i)}),`loop`)(),()=>window.cancelAnimationFrame(r)},`addUnlinkedScrollListener`);function Vi(e,t){let n=b(e),r=G.useRef(0);return G.useEffect(()=>()=>window.clearTimeout(r.current),[]),G.useCallback(()=>{window.clearTimeout(r.current),r.current=window.setTimeout(n,t)},[n,t])}Y(Vi,`useDebounceCallback`);function $(e,t){let n=b(t);r(()=>{let t=0;if(e){let r=new ResizeObserver(()=>{cancelAnimationFrame(t),t=window.requestAnimationFrame(n)});return r.observe(e),()=>{window.cancelAnimationFrame(t),r.unobserve(e)}}},[e,n])}Y($,`useResizeObserver`);var Hi=mi,Ui=gi,Wi=Mi;function Gi({className:e,children:t,viewportRef:n,...r}){return(0,q.jsxs)(Hi,{"data-slot":`scroll-area`,className:M(`relative`,e),...r,children:[(0,q.jsx)(Ui,{ref:n,"data-slot":`scroll-area-viewport`,className:`size-full rounded-[inherit] outline-none [&>div]:block!`,children:t}),(0,q.jsx)(Ki,{}),(0,q.jsx)(Wi,{})]})}function Ki({className:e,orientation:t=`vertical`,...n}){return(0,q.jsx)(vi,{"data-slot":`scroll-area-scrollbar`,orientation:t,className:M(`flex touch-none p-px transition-colors select-none`,t===`vertical`&&`h-full w-2.5 border-l border-l-transparent`,t===`horizontal`&&`h-2.5 flex-col border-t border-t-transparent`,e),...n,children:(0,q.jsx)(ki,{"data-slot":`scroll-area-thumb`,className:`relative flex-1 rounded-full bg-surface-2 transition-colors hover:bg-brand/40`})})}function qi(){return oe().url}var Ji=e=>e.dataTransfer?.types.includes(`Files`)??!1;function Yi({active:e,onDrop:t}){let[n,r]=(0,G.useState)(!1),i=(0,G.useRef)(0),a=(0,G.useRef)({active:e,onDrop:t});return(0,G.useEffect)(()=>{a.current={active:e,onDrop:t}}),(0,G.useEffect)(()=>{let e=()=>{i.current=0,r(!1)},t=e=>{Ji(e)&&(i.current+=1,r(!0))},n=e=>{Ji(e)&&(e.preventDefault(),e.dataTransfer&&(e.dataTransfer.dropEffect=a.current.active?`copy`:`none`))},o=t=>{Ji(t)&&(--i.current,i.current<=0&&e())},s=t=>{if(!Ji(t))return;t.preventDefault(),e();let n=Array.from(t.dataTransfer?.files??[]);a.current.active&&n.length>0&&a.current.onDrop(n)};return window.addEventListener(`dragenter`,t),window.addEventListener(`dragover`,n),window.addEventListener(`dragleave`,o),window.addEventListener(`drop`,s),window.addEventListener(`dragend`,e),()=>{window.removeEventListener(`dragenter`,t),window.removeEventListener(`dragover`,n),window.removeEventListener(`dragleave`,o),window.removeEventListener(`drop`,s),window.removeEventListener(`dragend`,e)}},[]),n}function Xi(){return Qi(we,!1,e=>typeof e==`boolean`)}function Zi(){return Qi(re,`chat`,e=>typeof e==`string`)}function Qi(e,t,n){let[r,i]=(0,G.useState)(t);return(0,G.useEffect)(()=>{let t=!0;P.storage.local.get(e).then(r=>{t&&n(r[e])&&i(r[e])});let r=t=>{let r=t[e];r&&n(r.newValue)&&i(r.newValue)};return P.storage.local.onChanged.addListener(r),()=>{t=!1,P.storage.local.onChanged.removeListener(r)}},[e]),[r,(0,G.useCallback)(t=>{i(t),P.storage.local.set({[e]:t})},[e])]}function $i(){let[e,t]=(0,G.useState)([]);return(0,G.useEffect)(()=>{let e=!0;P.storage.local.get(n).then(r=>{let i=r[n];e&&Array.isArray(i)&&t(i)});let r=e=>{if(`browsentic:files`in e){let r=e[n].newValue;t(Array.isArray(r)?r:[])}};return P.storage.local.onChanged.addListener(r),()=>{e=!1,P.storage.local.onChanged.removeListener(r)}},[]),e}function ea(){let[e,t]=(0,G.useState)([]);return(0,G.useEffect)(()=>{let e=!0;P.storage.local.get(a).then(n=>{let r=n[a];e&&Array.isArray(r)&&t(r)});let n=e=>{if(`browsentic:recordings`in e){let n=e[a].newValue;t(Array.isArray(n)?n:[])}};return P.storage.local.onChanged.addListener(n),()=>{e=!1,P.storage.local.onChanged.removeListener(n)}},[]),e}function ta(){let[e,t]=(0,G.useState)([]);return(0,G.useEffect)(()=>{let e=!0;P.storage.local.get(ue).then(n=>{let r=n[ue];e&&Array.isArray(r)&&t(r)});let n=e=>{if(`browsentic:sessions`in e){let n=e[ue].newValue;t(Array.isArray(n)?n:[])}};return P.storage.local.onChanged.addListener(n),()=>{e=!1,P.storage.local.onChanged.removeListener(n)}},[]),e}var na=10*1024*1024,ra=56;function ia(){let e=Te(),t=ve(),[n,r]=fe(),i=$i(),a=ta(),o=ea(),s=ri(),c=qi(),[l,d]=(0,G.useState)(null),[f,p]=(0,G.useState)(null),[h,y]=(0,G.useState)(null),[ne,b]=(0,G.useState)(!1),[x,S]=(0,G.useState)(!1),[C,E]=(0,G.useState)(!1),[D,O]=Zi(),[k,A]=(0,G.useState)(!1),[,re]=Xi(),j=(0,G.useRef)(null),M=(0,G.useRef)(null),[N,ae]=(0,G.useState)(!0),F=e?.connected??!1,oe=Yi({active:F,onDrop:e=>{L(`chat`),ye(e)}}),I=Se({active:n&&F&&!t.running,onSubmit:e=>{t.send(e,{agentSkillId:f?.id,focus:h??void 0,liveTools:C}),p(null),y(null)}}),ce=ee(e,{running:t.running,listening:I.listening});(0,G.useEffect)(()=>{!F||e?.skillCatalog||P.runtime.sendMessage({channel:v,op:`listSkills`})},[F,e?.skillCatalog]),(0,G.useEffect)(()=>{P.runtime.sendMessage({channel:v,op:`panelOpened`}),P.windows.getCurrent().then(e=>{M.current=e.id??null})},[]),(0,G.useEffect)(()=>{let e=j.current;if(!e)return;let t=()=>{let t=e.scrollHeight-e.scrollTop-e.clientHeight;ae(t<ra)};return e.addEventListener(`scroll`,t,{passive:!0}),()=>e.removeEventListener(`scroll`,t)},[]),(0,G.useEffect)(()=>{if(!N||D!==`chat`)return;let e=j.current;e&&(e.scrollTop=e.scrollHeight)},[t.items,t.running,N,D]);function le(){let e=j.current;e&&e.scrollTo({top:e.scrollHeight,behavior:`smooth`}),ae(!0)}function L(e){A(!1),e!==D&&(O(e),ae(e===`chat`),j.current&&(j.current.scrollTop=0))}function ue(){A(!1),re(!0),T(M.current)}function de(){t.running||!F||(L(`chat`),I.submitNow())}function pe(e){L(`chat`),t.restore(e)}function me(e){L(`chat`),t.send(`Replay my recording “${e.name}” (id ${e.id}).`)}function he(){L(`chat`),t.mapSite()}async function ge(){if(x)return;d(null),S(!0);let e=await nn();S(!1),`focus`in e?y(e.focus):`error`in e&&d(`A-Eye couldn’t read that element: ${e.error}`)}async function _e(){let e=await _(u,{});if(!e.ok){I.setInput(`${I.input}\n[couldn’t read this page: ${e.error.message}]\n`);return}let{document:t,selection:n}=e.data,r=n?`\nSelection: “${n}”`:``;I.setInput(`${I.input?`${I.input}\n\n`:``}[Page: ${t.title} — ${t.url}${r}]\n`)}async function ye(e){let t=e.filter(e=>e.size>na),n=`${na/1024/1024} MB`;d(t.length===0?null:t.length===1?`“${t[0].name}” is larger than ${n}.`:`${t.length} of those files are larger than ${n}.`);for(let t of e)t.size<=na&&await be(t)}async function be(e){let t=crypto.randomUUID(),n=await aa(e);await se({id:t,name:e.name,mime:e.type||`application/octet-stream`,size:e.size,status:`pending`,addedAt:Date.now()},n),await P.runtime.sendMessage({channel:v,op:`analyzeFile`,fileId:t})}function xe(){if(!n){r(!0);return}if(I.error){I.retry();return}r(!1)}let Ce=t.sessions.filter(e=>e.runId).length,we=Ce>0&&D!==`chat`,z=we||!!t.recording||t.monitors.length>0||!!t.draft,Ee={history:a.length,skills:s.length,recordings:o.length};return(0,q.jsxs)(`div`,{className:`relative flex h-screen flex-col`,children:[(0,q.jsxs)(`header`,{className:`flex shrink-0 items-center gap-2 px-3 py-2.5`,children:[(0,q.jsx)(te,{className:`flex-1`}),(0,q.jsx)(w,{tone:ce.tone,expanded:k,onClick:()=>A(e=>!e),children:ce.label}),(0,q.jsx)(R,{variant:`ghost`,size:`icon-sm`,title:`New chat`,"aria-label":`Start a new conversation`,onClick:()=>{L(`chat`),t.clear()},children:(0,q.jsx)(ut,{className:`size-3.5`})}),(0,q.jsx)(R,{variant:`ghost`,size:`icon-sm`,title:`Minimize to a rail on the page`,"aria-label":`Minimize to a rail on the page`,onClick:ue,children:(0,q.jsx)(et,{className:`size-3.5`})})]}),k&&(0,q.jsx)(un,{onClose:()=>A(!1)}),(0,q.jsx)(xn,{tab:D,counts:Ee,onSelect:L}),(0,q.jsx)(Br,{sessions:t.sessions,activeSessionId:t.sessionId,onFocus:e=>{L(`chat`),t.focusSession(e)},onEnd:t.endSession}),z&&(0,q.jsxs)(`div`,{className:`max-h-[45%] shrink-0 overflow-y-auto px-3 pt-2`,children:[we&&(0,q.jsxs)(`button`,{type:`button`,onClick:()=>L(`chat`),className:`enters mb-2 flex w-full items-center gap-2 rounded-xl border border-brand/35 bg-brand/8 px-2.5 py-2 text-left transition-colors hover:bg-brand/12`,children:[(0,q.jsx)(`span`,{className:`glow-dot size-1.5 shrink-0 animate-pulse rounded-full bg-brand text-brand`}),(0,q.jsx)(`span`,{className:`flex-1 text-xs text-ink`,children:Ce===1?`A run is in progress`:`${Ce} runs are in progress`}),(0,q.jsx)(`span`,{className:`shrink-0 font-mono text-[10px] tracking-[0.12em] text-brand uppercase`,children:`Watch`})]}),t.recording&&(0,q.jsx)(Cn,{state:t.recording,onStop:t.stopRecording}),t.monitors.map(e=>(0,q.jsx)(gn,{state:e,onStop:()=>t.stopMonitor(e.monitorId)},e.monitorId)),t.draft&&(0,q.jsx)(ni,{draft:t.draft,onActivate:t.activateMap,onDiscard:t.discardMap})]}),(0,q.jsxs)(`div`,{className:`relative min-h-0 flex-1`,children:[(0,q.jsxs)(Gi,{viewportRef:j,className:`h-full`,children:[D===`chat`?t.items.length===0?(0,q.jsx)(mn,{blocker:ce.blocker,voiceOn:n&&I.supported,onGo:L,onFix:()=>A(!0),onUse:I.setInput}):(0,q.jsx)(Cr,{items:t.items,running:t.running,onDecide:t.decide}):D===`history`?(0,q.jsx)(Pr,{sessions:a,currentId:t.sessionId??void 0,busy:t.running,onOpen:pe,onRemove:e=>void ie(e)}):D===`skills`?(0,q.jsx)(ii,{tabUrl:c,connected:F,onMapSite:he,mapping:t.running}):D===`settings`?(0,q.jsx)(Xr,{}):(0,q.jsx)(Fn,{tabUrl:c,recordings:o,recording:t.recording,busy:t.running,onStart:t.startRecording,onStop:t.stopRecording,onReplay:me,onRemove:e=>void g(e)}),(0,q.jsx)(`div`,{className:`h-3`})]}),D===`chat`&&!N&&t.items.length>0&&(0,q.jsxs)(R,{size:`sm`,variant:`outline`,className:`enters absolute bottom-3 left-1/2 -translate-x-1/2 backdrop-blur`,onClick:le,children:[(0,q.jsx)(ke,{className:`size-3`}),` Latest`]})]}),ne&&(0,q.jsx)(Nr,{tools:t.tools,onForget:t.forgetTool,onClose:()=>b(!1)}),D===`chat`&&(0,q.jsxs)(`footer`,{className:`shrink-0 border-t border-line p-3`,children:[t.toolOffer&&(0,q.jsx)(Mr,{offer:t.toolOffer,onKeep:t.keepTool,onDismiss:t.dismissTool}),(0,q.jsx)(an,{voice:I,voiceEnabled:n,connected:F,running:t.running,files:i,attachError:l,catalog:e?.skillCatalog,tabUrl:c,attachedSkill:f,focus:h,picking:x,liveTools:C,onToggleLiveTools:()=>E(e=>!e),onAttachSkill:p,onCommand:e=>{if(Xt(e)){b(!0);return}L(`chat`),t.send(e)},tools:t.tools,onRunTool:e=>{L(`chat`),t.runTool(e)},onSend:de,onStop:t.cancel,onToggleVoice:xe,onPick:()=>void ge(),onClearFocus:()=>y(null),onAttachPage:()=>void _e(),onAttachFile:e=>void ye([e]),onRemoveFile:e=>void m(e)})]}),oe&&(0,q.jsx)(dn,{connected:F,maxBytes:na})]})}function aa(e){return new Promise((t,n)=>{let r=new FileReader;r.onload=()=>{let e=r.result;t(typeof e==`string`?e.slice(e.indexOf(`,`)+1):``)},r.onerror=()=>n(r.error??Error(`Could not read the file`)),r.readAsDataURL(e)})}k(),xt.createRoot(document.getElementById(`root`)).render((0,q.jsx)(G.StrictMode,{children:(0,q.jsx)(ia,{})}));
|