browsentic 0.5.0 → 0.6.0

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
package/dist/cli.js CHANGED
@@ -2131,7 +2131,7 @@ var require_extension = __commonJS({
2131
2131
  let inQuotes = false;
2132
2132
  let extensionName;
2133
2133
  let paramName;
2134
- let start = -1;
2134
+ let start2 = -1;
2135
2135
  let code = -1;
2136
2136
  let end = -1;
2137
2137
  let i = 0;
@@ -2139,45 +2139,45 @@ var require_extension = __commonJS({
2139
2139
  code = header.charCodeAt(i);
2140
2140
  if (extensionName === void 0) {
2141
2141
  if (end === -1 && tokenChars[code] === 1) {
2142
- if (start === -1) start = i;
2142
+ if (start2 === -1) start2 = i;
2143
2143
  } else if (i !== 0 && (code === 32 || code === 9)) {
2144
- if (end === -1 && start !== -1) end = i;
2144
+ if (end === -1 && start2 !== -1) end = i;
2145
2145
  } else if (code === 59 || code === 44) {
2146
- if (start === -1) {
2146
+ if (start2 === -1) {
2147
2147
  throw new SyntaxError(`Unexpected character at index ${i}`);
2148
2148
  }
2149
2149
  if (end === -1) end = i;
2150
- const name = header.slice(start, end);
2150
+ const name = header.slice(start2, end);
2151
2151
  if (code === 44) {
2152
2152
  push(offers, name, params);
2153
2153
  params = /* @__PURE__ */ Object.create(null);
2154
2154
  } else {
2155
2155
  extensionName = name;
2156
2156
  }
2157
- start = end = -1;
2157
+ start2 = end = -1;
2158
2158
  } else {
2159
2159
  throw new SyntaxError(`Unexpected character at index ${i}`);
2160
2160
  }
2161
2161
  } else if (paramName === void 0) {
2162
2162
  if (end === -1 && tokenChars[code] === 1) {
2163
- if (start === -1) start = i;
2163
+ if (start2 === -1) start2 = i;
2164
2164
  } else if (code === 32 || code === 9) {
2165
- if (end === -1 && start !== -1) end = i;
2165
+ if (end === -1 && start2 !== -1) end = i;
2166
2166
  } else if (code === 59 || code === 44) {
2167
- if (start === -1) {
2167
+ if (start2 === -1) {
2168
2168
  throw new SyntaxError(`Unexpected character at index ${i}`);
2169
2169
  }
2170
2170
  if (end === -1) end = i;
2171
- push(params, header.slice(start, end), true);
2171
+ push(params, header.slice(start2, end), true);
2172
2172
  if (code === 44) {
2173
2173
  push(offers, extensionName, params);
2174
2174
  params = /* @__PURE__ */ Object.create(null);
2175
2175
  extensionName = void 0;
2176
2176
  }
2177
- start = end = -1;
2178
- } else if (code === 61 && start !== -1 && end === -1) {
2179
- paramName = header.slice(start, i);
2180
- start = end = -1;
2177
+ start2 = end = -1;
2178
+ } else if (code === 61 && start2 !== -1 && end === -1) {
2179
+ paramName = header.slice(start2, i);
2180
+ start2 = end = -1;
2181
2181
  } else {
2182
2182
  throw new SyntaxError(`Unexpected character at index ${i}`);
2183
2183
  }
@@ -2186,13 +2186,13 @@ var require_extension = __commonJS({
2186
2186
  if (tokenChars[code] !== 1) {
2187
2187
  throw new SyntaxError(`Unexpected character at index ${i}`);
2188
2188
  }
2189
- if (start === -1) start = i;
2189
+ if (start2 === -1) start2 = i;
2190
2190
  else if (!mustUnescape) mustUnescape = true;
2191
2191
  isEscaping = false;
2192
2192
  } else if (inQuotes) {
2193
2193
  if (tokenChars[code] === 1) {
2194
- if (start === -1) start = i;
2195
- } else if (code === 34 && start !== -1) {
2194
+ if (start2 === -1) start2 = i;
2195
+ } else if (code === 34 && start2 !== -1) {
2196
2196
  inQuotes = false;
2197
2197
  end = i;
2198
2198
  } else if (code === 92) {
@@ -2203,15 +2203,15 @@ var require_extension = __commonJS({
2203
2203
  } else if (code === 34 && header.charCodeAt(i - 1) === 61) {
2204
2204
  inQuotes = true;
2205
2205
  } else if (end === -1 && tokenChars[code] === 1) {
2206
- if (start === -1) start = i;
2207
- } else if (start !== -1 && (code === 32 || code === 9)) {
2206
+ if (start2 === -1) start2 = i;
2207
+ } else if (start2 !== -1 && (code === 32 || code === 9)) {
2208
2208
  if (end === -1) end = i;
2209
2209
  } else if (code === 59 || code === 44) {
2210
- if (start === -1) {
2210
+ if (start2 === -1) {
2211
2211
  throw new SyntaxError(`Unexpected character at index ${i}`);
2212
2212
  }
2213
2213
  if (end === -1) end = i;
2214
- let value = header.slice(start, end);
2214
+ let value = header.slice(start2, end);
2215
2215
  if (mustUnescape) {
2216
2216
  value = value.replace(/\\/g, "");
2217
2217
  mustUnescape = false;
@@ -2223,17 +2223,17 @@ var require_extension = __commonJS({
2223
2223
  extensionName = void 0;
2224
2224
  }
2225
2225
  paramName = void 0;
2226
- start = end = -1;
2226
+ start2 = end = -1;
2227
2227
  } else {
2228
2228
  throw new SyntaxError(`Unexpected character at index ${i}`);
2229
2229
  }
2230
2230
  }
2231
2231
  }
2232
- if (start === -1 || inQuotes || code === 32 || code === 9) {
2232
+ if (start2 === -1 || inQuotes || code === 32 || code === 9) {
2233
2233
  throw new SyntaxError("Unexpected end of input");
2234
2234
  }
2235
2235
  if (end === -1) end = i;
2236
- const token = header.slice(start, end);
2236
+ const token = header.slice(start2, end);
2237
2237
  if (extensionName === void 0) {
2238
2238
  push(offers, token, params);
2239
2239
  } else {
@@ -3268,34 +3268,34 @@ var require_subprotocol = __commonJS({
3268
3268
  var { tokenChars } = require_validation();
3269
3269
  function parse3(header) {
3270
3270
  const protocols = /* @__PURE__ */ new Set();
3271
- let start = -1;
3271
+ let start2 = -1;
3272
3272
  let end = -1;
3273
3273
  let i = 0;
3274
3274
  for (i; i < header.length; i++) {
3275
3275
  const code = header.charCodeAt(i);
3276
3276
  if (end === -1 && tokenChars[code] === 1) {
3277
- if (start === -1) start = i;
3277
+ if (start2 === -1) start2 = i;
3278
3278
  } else if (i !== 0 && (code === 32 || code === 9)) {
3279
- if (end === -1 && start !== -1) end = i;
3279
+ if (end === -1 && start2 !== -1) end = i;
3280
3280
  } else if (code === 44) {
3281
- if (start === -1) {
3281
+ if (start2 === -1) {
3282
3282
  throw new SyntaxError(`Unexpected character at index ${i}`);
3283
3283
  }
3284
3284
  if (end === -1) end = i;
3285
- const protocol2 = header.slice(start, end);
3285
+ const protocol2 = header.slice(start2, end);
3286
3286
  if (protocols.has(protocol2)) {
3287
3287
  throw new SyntaxError(`The "${protocol2}" subprotocol is duplicated`);
3288
3288
  }
3289
3289
  protocols.add(protocol2);
3290
- start = end = -1;
3290
+ start2 = end = -1;
3291
3291
  } else {
3292
3292
  throw new SyntaxError(`Unexpected character at index ${i}`);
3293
3293
  }
3294
3294
  }
3295
- if (start === -1 || end !== -1) {
3295
+ if (start2 === -1 || end !== -1) {
3296
3296
  throw new SyntaxError("Unexpected end of input");
3297
3297
  }
3298
- const protocol = header.slice(start, i);
3298
+ const protocol = header.slice(start2, i);
3299
3299
  if (protocols.has(protocol)) {
3300
3300
  throw new SyntaxError(`The "${protocol}" subprotocol is duplicated`);
3301
3301
  }
@@ -11285,9 +11285,9 @@ function nullish(input2) {
11285
11285
  return input2 === null || input2 === void 0;
11286
11286
  }
11287
11287
  function cleanRegex(source) {
11288
- const start = source.startsWith("^") ? 1 : 0;
11288
+ const start2 = source.startsWith("^") ? 1 : 0;
11289
11289
  const end = source.endsWith("$") ? source.length - 1 : source.length;
11290
- return source.slice(start, end);
11290
+ return source.slice(start2, end);
11291
11291
  }
11292
11292
  function floatSafeRemainder(val, step) {
11293
11293
  const ratio = val / step;
@@ -14773,9 +14773,9 @@ var $ZodTemplateLiteral = /* @__PURE__ */ $constructor("$ZodTemplateLiteral", (i
14773
14773
  const source = part._zod.pattern instanceof RegExp ? part._zod.pattern.source : part._zod.pattern;
14774
14774
  if (!source)
14775
14775
  throw new Error(`Invalid template literal part: ${part._zod.traits}`);
14776
- const start = source.startsWith("^") ? 1 : 0;
14776
+ const start2 = source.startsWith("^") ? 1 : 0;
14777
14777
  const end = source.endsWith("$") ? source.length - 1 : source.length;
14778
- regexParts.push(source.slice(start, end));
14778
+ regexParts.push(source.slice(start2, end));
14779
14779
  } else if (part === null || primitiveTypes.has(typeof part)) {
14780
14780
  regexParts.push(escapeRegex(`${part}`));
14781
14781
  } else {
@@ -27722,14 +27722,14 @@ async function travel(from, to, steps, buttons, onStep) {
27722
27722
  else firePointer(elementAt(at), "pointermove", "mousemove", at, buttons);
27723
27723
  }
27724
27724
  }
27725
- async function approachFrom(start, grip, over) {
27726
- await travel(start, grip, APPROACH_STEPS, 0);
27725
+ async function approachFrom(start2, grip, over) {
27726
+ await travel(start2, grip, APPROACH_STEPS, 0);
27727
27727
  hoverSequence(over ?? document.body, grip);
27728
27728
  }
27729
27729
  async function pointerDrag(source, plan) {
27730
- const { approach: start, grip, drop, steps, holdMs, settleMs } = plan;
27730
+ const { approach: start2, grip, drop, steps, holdMs, settleMs } = plan;
27731
27731
  const held = source ?? elementAt(grip);
27732
- await approachFrom(start, grip, held);
27732
+ await approachFrom(start2, grip, held);
27733
27733
  firePointer(held, "pointerdown", "mousedown", grip, 1);
27734
27734
  await settle(holdMs);
27735
27735
  await travel(grip, drop, steps, 1);
@@ -27739,9 +27739,9 @@ async function pointerDrag(source, plan) {
27739
27739
  return { landedOn: landing ? cssPath(landing) : void 0 };
27740
27740
  }
27741
27741
  async function nativeDrag(source, plan) {
27742
- const { approach: start, grip, drop, steps, holdMs, settleMs } = plan;
27742
+ const { approach: start2, grip, drop, steps, holdMs, settleMs } = plan;
27743
27743
  const dataTransfer = new DataTransfer();
27744
- await approachFrom(start, grip, source);
27744
+ await approachFrom(start2, grip, source);
27745
27745
  firePointer(source, "pointerdown", "mousedown", grip, 1);
27746
27746
  await settle(holdMs);
27747
27747
  const started = fireDrag(source, "dragstart", grip, dataTransfer);
@@ -27836,14 +27836,14 @@ function digestOf(text3) {
27836
27836
  }
27837
27837
  return (hash3 >>> 0).toString(16).padStart(8, "0");
27838
27838
  }
27839
- function groupEnd(text3, start, budget) {
27840
- if (text3.length - start <= budget) return text3.length;
27841
- const window2 = text3.slice(start, start + budget);
27839
+ function groupEnd(text3, start2, budget) {
27840
+ if (text3.length - start2 <= budget) return text3.length;
27841
+ const window2 = text3.slice(start2, start2 + budget);
27842
27842
  for (const { pattern, floor } of BOUNDARIES) {
27843
27843
  const cut = lastBoundary(window2, pattern, Math.floor(budget * floor));
27844
- if (cut > 0) return start + cut;
27844
+ if (cut > 0) return start2 + cut;
27845
27845
  }
27846
- return start + budget;
27846
+ return start2 + budget;
27847
27847
  }
27848
27848
  function writeCursor(offset, delivered) {
27849
27849
  return `${offset}.${digestOf(delivered)}`;
@@ -28967,12 +28967,12 @@ var pressKey = defineAction({
28967
28967
  el.dispatchEvent(new KeyboardEvent("keypress", init));
28968
28968
  }
28969
28969
  if (printable && (el instanceof HTMLInputElement || el instanceof HTMLTextAreaElement)) {
28970
- const start = el.selectionStart ?? el.value.length;
28970
+ const start2 = el.selectionStart ?? el.value.length;
28971
28971
  const end = el.selectionEnd ?? el.value.length;
28972
- const next = el.value.slice(0, start) + key + el.value.slice(end);
28972
+ const next = el.value.slice(0, start2) + key + el.value.slice(end);
28973
28973
  const proto = el instanceof HTMLInputElement ? HTMLInputElement.prototype : HTMLTextAreaElement.prototype;
28974
28974
  Object.getOwnPropertyDescriptor(proto, "value")?.set?.call(el, next);
28975
- const caret = start + key.length;
28975
+ const caret = start2 + key.length;
28976
28976
  try {
28977
28977
  el.setSelectionRange(caret, caret);
28978
28978
  } catch {
@@ -29850,7 +29850,7 @@ var typeText = defineAction({
29850
29850
  }
29851
29851
  if (clear) clearContent(el);
29852
29852
  focusForTyping(el);
29853
- const start = performance.now();
29853
+ const start2 = performance.now();
29854
29854
  const characters = [...text3];
29855
29855
  for (const [index, char] of characters.entries()) {
29856
29856
  const wait = index ? Math.round(delays[index - 1] * (1 + (Math.random() * 2 - 1) * jitter)) : 0;
@@ -29872,7 +29872,7 @@ var typeText = defineAction({
29872
29872
  element: describeElement(el),
29873
29873
  typed: characters.length,
29874
29874
  charDelayMs: base,
29875
- elapsedMs: Math.round(performance.now() - start),
29875
+ elapsedMs: Math.round(performance.now() - start2),
29876
29876
  appended: !clear,
29877
29877
  submitted
29878
29878
  };
@@ -29906,10 +29906,10 @@ function focusForTyping(el) {
29906
29906
  }
29907
29907
  function insertCharacter(el, char) {
29908
29908
  if (el instanceof HTMLInputElement || el instanceof HTMLTextAreaElement) {
29909
- const start = el.selectionStart ?? el.value.length;
29909
+ const start2 = el.selectionStart ?? el.value.length;
29910
29910
  const end = el.selectionEnd ?? el.value.length;
29911
- setNativeValue(el, el.value.slice(0, start) + char + el.value.slice(end));
29912
- const caret = start + char.length;
29911
+ setNativeValue(el, el.value.slice(0, start2) + char + el.value.slice(end));
29912
+ const caret = start2 + char.length;
29913
29913
  try {
29914
29914
  el.setSelectionRange(caret, caret);
29915
29915
  } catch {
@@ -29955,7 +29955,7 @@ var waitForElement = defineAction({
29955
29955
  hidden: !el || !isVisible(el),
29956
29956
  detached: !el
29957
29957
  })[state];
29958
- const start = performance.now();
29958
+ const start2 = performance.now();
29959
29959
  let element = find();
29960
29960
  if (satisfied(element)) {
29961
29961
  return { state, elapsedMs: 0, element: element ? describeElement(element) : void 0 };
@@ -29988,7 +29988,7 @@ var waitForElement = defineAction({
29988
29988
  });
29989
29989
  return {
29990
29990
  state,
29991
- elapsedMs: Math.round(performance.now() - start),
29991
+ elapsedMs: Math.round(performance.now() - start2),
29992
29992
  element: element ? describeElement(element) : void 0
29993
29993
  };
29994
29994
  }
@@ -30291,6 +30291,21 @@ function settingsFor(stored, kind) {
30291
30291
  };
30292
30292
  }
30293
30293
  var text = (value) => typeof value === "string" && value.trim() ? value.trim() : void 0;
30294
+ function writeAgentModel(kind, model) {
30295
+ const stored = readStored();
30296
+ const agents = { ...stored.agents ?? {} };
30297
+ const scoped = { ...agents[kind] ?? {} };
30298
+ const value = text(model);
30299
+ if (value) scoped.model = value;
30300
+ else delete scoped.model;
30301
+ if (Object.keys(scoped).length) agents[kind] = scoped;
30302
+ else delete agents[kind];
30303
+ const next = { ...stored };
30304
+ if (Object.keys(agents).length) next.agents = agents;
30305
+ else delete next.agents;
30306
+ if (kind === "claude") delete next.model;
30307
+ write(next);
30308
+ }
30294
30309
  function write(config2) {
30295
30310
  mkdirSync3(stateDir, { recursive: true, mode: 448 });
30296
30311
  writeFileSync2(configPath, `${JSON.stringify(config2, null, 2)}
@@ -31898,9 +31913,11 @@ import { homedir as homedir7 } from "os";
31898
31913
  import { dirname as dirname6, join as join15, resolve, sep as sep2 } from "path";
31899
31914
  import { fileURLToPath as fileURLToPath5 } from "url";
31900
31915
  var packageRoot = resolve(dirname6(fileURLToPath5(import.meta.url)), "..");
31916
+ var APP_MARKER = ".browsentic-app.json";
31901
31917
  var inNpxCache = (path) => path.split(sep2).includes("_npx");
31902
31918
  function installKind() {
31903
31919
  if (inNpxCache(packageRoot)) return "npx";
31920
+ if (existsSync5(join15(packageRoot, APP_MARKER))) return "app";
31904
31921
  if (existsSync5(join15(packageRoot, "tsup.config.ts"))) return "repo";
31905
31922
  return "global";
31906
31923
  }
@@ -32109,6 +32126,13 @@ async function upgradeCli(current, forward) {
32109
32126
  console.error(`
32110
32127
  ! browsentic ${latest} is published; this is ${current}, from a source checkout.`);
32111
32128
  console.error(` Update it with "git pull && yarn setup".
32129
+ `);
32130
+ return null;
32131
+ }
32132
+ if (kind === "app") {
32133
+ console.error(`
32134
+ ! browsentic ${latest} is published; this is ${current}, installed by Browsentic.app.`);
32135
+ console.error(` Update it from the app, which replaces the command and the extension together.
32112
32136
  `);
32113
32137
  return null;
32114
32138
  }
@@ -34246,8 +34270,8 @@ function purgeNpxCache(entries) {
34246
34270
  // package.json
34247
34271
  var package_default = {
34248
34272
  name: "browsentic",
34249
- version: "0.5.0",
34250
- 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.",
34273
+ version: "0.6.0",
34274
+ description: "A browser extension with an AI side panel that hands your real, logged-in browser to the AI agent you already run. Installs the extension, runs the local daemon, and optionally speaks MCP.",
34251
34275
  type: "module",
34252
34276
  license: "MIT",
34253
34277
  packageManager: "yarn@4.17.1",
@@ -34259,8 +34283,12 @@ var package_default = {
34259
34283
  },
34260
34284
  bugs: "https://github.com/imshaikot/browsentic/issues",
34261
34285
  keywords: [
34262
- "browser-automation",
34286
+ "browser-extension",
34263
34287
  "chrome-extension",
34288
+ "ai-browser-extension",
34289
+ "side-panel",
34290
+ "browser-agent",
34291
+ "browser-automation",
34264
34292
  "ai-agent",
34265
34293
  "agentic-browsing",
34266
34294
  "mcp",
@@ -34313,6 +34341,7 @@ var USAGE = `browsentic ${package_default.version} \u2014 hand your real browser
34313
34341
  browsentic agent show which agent runs the side panel, and which are installed
34314
34342
  browsentic agent <name> switch to claude, codex or antigravity
34315
34343
  browsentic agent fix <name> let Browsentic fix what that agent still needs
34344
+ browsentic agent model <name> [model] pin that agent's model, or omit it for the CLI's default
34316
34345
 
34317
34346
  browsentic skills list the skills the agent can route to, and where they came from
34318
34347
  browsentic approvals list the \u201Calways on this site\u201D approvals you have granted
@@ -34321,9 +34350,12 @@ var USAGE = `browsentic ${package_default.version} \u2014 hand your real browser
34321
34350
  browsentic downloads clear delete all of them
34322
34351
  browsentic tools print the bundled tool manifest (no browser needed)
34323
34352
  browsentic logs print the daemon log
34353
+ browsentic start bring the background daemon up, if it is not already
34324
34354
  browsentic stop stop the background daemon
34325
34355
  browsentic restart stop the daemon and bring up a fresh one
34326
34356
  browsentic token print the control token (for MCP clients, not the browser)
34357
+
34358
+ agent, skills, approvals and downloads take --json, which is what the macOS app reads.
34327
34359
  browsentic --version print the version
34328
34360
 
34329
34361
  Getting started: browsentic setup
@@ -34335,6 +34367,8 @@ For MCP clients
34335
34367
  var invokedAs = basename3(process.argv[1] ?? "").replace(/\.(?:js|cjs|mjs|exe|cmd|ps1)$/i, "");
34336
34368
  var servesBare = invokedAs === "browsentic-mcp" || !!process.env.BROWSENTIC_AGENT_RUN;
34337
34369
  var [command] = process.argv.slice(2);
34370
+ var wantsJson = process.argv.includes("--json");
34371
+ var positional = process.argv.slice(3).filter((arg) => !arg.startsWith("--"));
34338
34372
  switch (command) {
34339
34373
  case void 0:
34340
34374
  if (servesBare) await serve();
@@ -34362,7 +34396,7 @@ switch (command) {
34362
34396
  await revoke(process.argv[3]);
34363
34397
  break;
34364
34398
  case "agent":
34365
- await chooseAgent(process.argv[3], process.argv[4]);
34399
+ await chooseAgent(positional[0], positional[1], positional[2]);
34366
34400
  break;
34367
34401
  case "tools":
34368
34402
  printTools();
@@ -34370,6 +34404,9 @@ switch (command) {
34370
34404
  case "status":
34371
34405
  await showStatus();
34372
34406
  break;
34407
+ case "start":
34408
+ await start();
34409
+ break;
34373
34410
  case "stop":
34374
34411
  await stop();
34375
34412
  break;
@@ -34380,10 +34417,10 @@ switch (command) {
34380
34417
  printSkills();
34381
34418
  break;
34382
34419
  case "approvals":
34383
- manageApprovals(process.argv[3], process.argv[4]);
34420
+ manageApprovals(positional[0], positional[1]);
34384
34421
  break;
34385
34422
  case "downloads":
34386
- manageDownloads(process.argv[3]);
34423
+ manageDownloads(positional[0]);
34387
34424
  break;
34388
34425
  case "logs":
34389
34426
  showLogs();
@@ -34432,6 +34469,16 @@ function printTools() {
34432
34469
  }
34433
34470
  function printSkills() {
34434
34471
  const skills = loadSkills();
34472
+ if (wantsJson) {
34473
+ const config3 = readAgentConfig();
34474
+ const listed = skills.map(({ body: _body, ...skill }) => ({
34475
+ ...skill,
34476
+ path: skill.provenance === "generated" ? join18(uploadedSkillsDir(), skill.name) : void 0
34477
+ }));
34478
+ const own2 = agentSkills(config3).map(({ name, description }) => ({ name, description }));
34479
+ console.log(JSON.stringify({ skills: listed, dirs: skillDirNames(), agent: config3.agent, agentSkills: own2 }, null, 2));
34480
+ return;
34481
+ }
34435
34482
  if (!skills.length) {
34436
34483
  console.log(`No skills found. Looked in:
34437
34484
  ${skillDirNames().join("\n ")}`);
@@ -34502,6 +34549,10 @@ async function stop() {
34502
34549
  if (!stopped.length && !stubborn.length) console.log("No daemon is answering; nothing to stop.");
34503
34550
  if (stubborn.length) process.exitCode = 1;
34504
34551
  }
34552
+ async function start() {
34553
+ const lock = await ensureDaemon();
34554
+ console.log(`Daemon running on 127.0.0.1:${lock.port} (pid ${lock.pid}, v${lock.daemonVersion}).`);
34555
+ }
34505
34556
  async function restart() {
34506
34557
  const { stubborn } = await stopDaemons();
34507
34558
  if (stubborn.length) {
@@ -34672,6 +34723,7 @@ async function uninstall(argv) {
34672
34723
  console.log(" live in extension storage rather than on disk.");
34673
34724
  if (kind === "global") console.log("\n the command itself: npm rm -g browsentic");
34674
34725
  if (kind === "repo") console.log("\n the global link: yarn daemon:unlink");
34726
+ if (kind === "app") console.log("\n the app itself: drag Browsentic.app from Applications to the Trash");
34675
34727
  console.log("\n the entry in your MCP client, e.g. claude mcp remove browsentic");
34676
34728
  if (flag("dry-run")) {
34677
34729
  console.log("\n --dry-run: nothing was removed.\n");
@@ -34727,7 +34779,15 @@ async function showSessions() {
34727
34779
  console.log(` extension v${session.extensionVersion}, paired ${session.pairedAt}, last seen ${session.lastSeenAt}`);
34728
34780
  }
34729
34781
  }
34730
- async function chooseAgent(first, second) {
34782
+ async function chooseAgent(first, second, third) {
34783
+ if (first === "model") {
34784
+ if (!isAgentKind(second)) {
34785
+ console.error(`Name the agent whose model to set. Pick one of: ${AGENT_KINDS.join(", ")}`);
34786
+ process.exit(1);
34787
+ }
34788
+ writeAgentModel(second, third ?? null);
34789
+ first = second = void 0;
34790
+ }
34731
34791
  const grant = first === "fix" || first === "setup";
34732
34792
  const named = grant ? second : first;
34733
34793
  if (named !== void 0 && !isAgentKind(named)) {
@@ -34738,6 +34798,10 @@ async function chooseAgent(first, second) {
34738
34798
  const bridge = await connect();
34739
34799
  const state = await bridge.agent(kind && (grant ? { grant: kind } : { set: kind }));
34740
34800
  await bridge.close();
34801
+ if (wantsJson) {
34802
+ console.log(JSON.stringify({ ...state, catalog: AGENT_LIST }, null, 2));
34803
+ return;
34804
+ }
34741
34805
  for (const runner of state.runners) {
34742
34806
  const agent = AGENTS[runner.kind];
34743
34807
  const mark = runner.kind === state.active ? "\u25CF" : "\u25CB";
@@ -34775,6 +34839,10 @@ function manageDownloads(sub) {
34775
34839
  return;
34776
34840
  }
34777
34841
  const downloads = storedDownloads();
34842
+ if (wantsJson) {
34843
+ console.log(JSON.stringify({ dir: downloadDir(), downloads }, null, 2));
34844
+ return;
34845
+ }
34778
34846
  if (!downloads.length) {
34779
34847
  console.log(`Nothing captured. Files land in ${downloadDir()} when an agent uses page.captureDownload.`);
34780
34848
  return;
@@ -34800,6 +34868,10 @@ function manageApprovals(sub, host) {
34800
34868
  return;
34801
34869
  }
34802
34870
  const grants = listGrants();
34871
+ if (wantsJson) {
34872
+ console.log(JSON.stringify({ grants }, null, 2));
34873
+ return;
34874
+ }
34803
34875
  if (!grants.length) {
34804
34876
  console.log("No standing approvals. Every gated action still asks.");
34805
34877
  return;
@@ -27244,8 +27244,8 @@ X-Browsentic-Reason: ${reason}\r
27244
27244
  // package.json
27245
27245
  var package_default = {
27246
27246
  name: "browsentic",
27247
- version: "0.5.0",
27248
- 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.",
27247
+ version: "0.6.0",
27248
+ description: "A browser extension with an AI side panel that hands your real, logged-in browser to the AI agent you already run. Installs the extension, runs the local daemon, and optionally speaks MCP.",
27249
27249
  type: "module",
27250
27250
  license: "MIT",
27251
27251
  packageManager: "yarn@4.17.1",
@@ -27257,8 +27257,12 @@ var package_default = {
27257
27257
  },
27258
27258
  bugs: "https://github.com/imshaikot/browsentic/issues",
27259
27259
  keywords: [
27260
- "browser-automation",
27260
+ "browser-extension",
27261
27261
  "chrome-extension",
27262
+ "ai-browser-extension",
27263
+ "side-panel",
27264
+ "browser-agent",
27265
+ "browser-automation",
27262
27266
  "ai-agent",
27263
27267
  "agentic-browsing",
27264
27268
  "mcp",
@@ -0,0 +1,2 @@
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:cubic-bezier(.4, 0, 1, 1);--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}.\!visible{visibility:visible!important}.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}.container{width:100%}@media (width>=40rem){.container{max-width:40rem}}@media (width>=48rem){.container{max-width:48rem}}@media (width>=64rem){.container{max-width:64rem}}@media (width>=80rem){.container{max-width:80rem}}@media (width>=96rem){.container{max-width:96rem}}.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{--tw-ease:var(--ease-in);transition-timing-function:var(--ease-in)}.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 +1 @@
1
- import{n as e}from"./rolldown-runtime-Bh1tDfsg.js";import{$ as t,Q as n,T as r,Z as i,_ as a,dt as o,et as s,ft as c,h as l,ht as u,it as d,m as f,ot as p,p as m,pt as h,q as g,r as _,st as v,t as y,v as b,y as x}from"./globals-BlPE2up2.js";var S=o(`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(h(),1),w=e(u(),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=x(),t=_(),[r,o]=(0,w.useState)(!1),u=e?.paired??!1;async function h(){let e=await c.windows.getCurrent();e.id!=null&&(await m(e.id),window.close())}let C=y({active:r&&(e?.connected??!1),onSubmit:e=>{o(!1),t.send(e),h()}}),D=n(e,{running:t.running,listening:r&&C.listening}),O=D.ready;function k(){O&&C.submitNow()}function A(){if(C.supported){if(r&&C.error){C.retry();return}o(e=>!e)}}let j=D.blocker?E[D.blocker]:C.error?C.error:r&&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)(a,{className:`flex-1`}),(0,T.jsx)(i,{tone:D.tone,children:D.label})]}),u&&(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":r?`Stop listening`:`Start listening`,onClick:A,disabled:!O||!C.supported,className:s(`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`,r?`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:[r&&C.listening&&(0,T.jsx)(`span`,{className:`absolute inset-0 animate-ping rounded-full bg-magenta/25`}),r?(0,T.jsx)(v,{className:`size-8`}):(0,T.jsx)(p,{className:`size-8`})]}),(0,T.jsx)(`p`,{className:s(`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)(l,{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)(g,{type:`submit`,size:`sm`,"aria-label":`Send`,disabled:!O||!C.input.trim(),children:(0,T.jsx)(d,{})})]}),(0,T.jsxs)(g,{variant:`outline`,size:`sm`,className:`w-full`,onClick:h,children:[(0,T.jsx)(S,{}),` Open the side panel`]})]}),(0,T.jsxs)(`div`,{className:`space-y-4 p-4`,children:[(0,T.jsx)(f,{}),(0,T.jsx)(b,{})]})]})}r(),C.createRoot(document.getElementById(`root`)).render((0,T.jsx)(w.StrictMode,{children:(0,T.jsx)(D,{})}));
1
+ import{n as e}from"./rolldown-runtime-Bh1tDfsg.js";import{$ as t,Q as n,T as r,Z as i,_ as a,dt as o,et as s,ft as c,h as l,ht as u,it as d,m as f,ot as p,p as m,pt as h,q as g,r as _,st as v,t as y,v as b,y as x}from"./globals-RKxmETMG.js";var S=o(`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(h(),1),w=e(u(),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=x(),t=_(),[r,o]=(0,w.useState)(!1),u=e?.paired??!1;async function h(){let e=await c.windows.getCurrent();e.id!=null&&(await m(e.id),window.close())}let C=y({active:r&&(e?.connected??!1),onSubmit:e=>{o(!1),t.send(e),h()}}),D=n(e,{running:t.running,listening:r&&C.listening}),O=D.ready;function k(){O&&C.submitNow()}function A(){if(C.supported){if(r&&C.error){C.retry();return}o(e=>!e)}}let j=D.blocker?E[D.blocker]:C.error?C.error:r&&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)(a,{className:`flex-1`}),(0,T.jsx)(i,{tone:D.tone,children:D.label})]}),u&&(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":r?`Stop listening`:`Start listening`,onClick:A,disabled:!O||!C.supported,className:s(`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`,r?`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:[r&&C.listening&&(0,T.jsx)(`span`,{className:`absolute inset-0 animate-ping rounded-full bg-magenta/25`}),r?(0,T.jsx)(v,{className:`size-8`}):(0,T.jsx)(p,{className:`size-8`})]}),(0,T.jsx)(`p`,{className:s(`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)(l,{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)(g,{type:`submit`,size:`sm`,"aria-label":`Send`,disabled:!O||!C.input.trim(),children:(0,T.jsx)(d,{})})]}),(0,T.jsxs)(g,{variant:`outline`,size:`sm`,className:`w-full`,onClick:h,children:[(0,T.jsx)(S,{}),` Open the side panel`]})]}),(0,T.jsxs)(`div`,{className:`space-y-4 p-4`,children:[(0,T.jsx)(f,{}),(0,T.jsx)(b,{})]})]})}r(),C.createRoot(document.getElementById(`root`)).render((0,T.jsx)(w.StrictMode,{children:(0,T.jsx)(D,{})}));
@@ -1,4 +1,4 @@
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 ee,Q as te,R as _,S as v,T as y,U as b,V as x,W as S,X as C,Y as w,Z as T,_ as E,a as D,at as O,b as k,c as A,ct as j,d as ne,dt as M,et as N,f as re,ft as P,g as ie,h as F,ht as I,i as ae,it as L,j as oe,k as R,l as se,lt as z,m as ce,mt as le,n as ue,nt as de,o as fe,ot as pe,pt as me,q as B,r as he,rt as ge,s as V,st as _e,t as ve,tt as ye,u as be,ut as H,v as xe,w as Se,x as Ce,y as we,z as Te}from"./globals-BlPE2up2.js";var Ee=M(`arrow-down`,[[`path`,{d:`M12 5v14`,key:`s699le`}],[`path`,{d:`m19 12-7 7-7-7`,key:`1idqje`}]]),U=M(`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`}]]),De=M(`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`}]]),Oe=M(`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`}]]),ke=M(`circle`,[[`circle`,{cx:`12`,cy:`12`,r:`10`,key:`1mglay`}]]),W=M(`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`}]]),Ae=M(`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`}]]),je=M(`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`}]]),Me=M(`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`}]]),Ne=M(`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`}]]),Pe=M(`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`}]]),Fe=M(`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`}]]),Ie=M(`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`}]]),Le=M(`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`}]]),Re=M(`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`}]]),ze=M(`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`}]]),Be=M(`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`}]]),Ve=M(`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`}]]),He=M(`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`}]]),Ue=M(`info`,[[`circle`,{cx:`12`,cy:`12`,r:`10`,key:`1mglay`}],[`path`,{d:`M12 16v-4`,key:`1dtifu`}],[`path`,{d:`M12 8h.01`,key:`e9boi3`}]]),We=M(`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`}]]),Ge=M(`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`}]]),Ke=M(`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`}]]),qe=M(`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`}]]),Je=M(`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`}]]),Ye=M(`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`}]]),Xe=M(`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`}]]),Ze=M(`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`}]]),Qe=M(`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`}]]),$e=M(`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`}]]),et=M(`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`}]]),tt=M(`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`}]]),nt=M(`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`}]]),rt=M(`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`}]]),it=M(`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`}]]),at=M(`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`}]]),ot=M(`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`}]]),st=M(`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`}]]),ct=M(`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`}]]),lt=M(`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`}]]),ut=M(`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`}]]),dt=M(`square`,[[`rect`,{width:`18`,height:`18`,x:`3`,y:`3`,rx:`2`,key:`afitv7`}]]),ft=M(`terminal`,[[`path`,{d:`M12 19h8`,key:`baeox8`}],[`path`,{d:`m4 17 6-6-6-6`,key:`1yngyt`}]]),pt=M(`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`}]]),mt=M(`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`}]]),ht=M(`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`}]]),gt=M(`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`}]]),_t=M(`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`}]]),vt=M(`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`}]]),G=M(`x`,[[`path`,{d:`M18 6 6 18`,key:`1bl5f8`}],[`path`,{d:`m6 6 12 12`,key:`d8bk6v`}]]),yt=M(`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`}]]),K=e(I(),1),bt=e(me(),1),xt=[`general`,`site-exploration`],St=/^[a-z0-9][a-z0-9-]{0,47}$/,Ct=32*1024,wt=/^[a-z0-9]([a-z0-9-]*[a-z0-9])?(\.[a-z0-9]([a-z0-9-]*[a-z0-9])?)+$/,Tt=300,Et=3,Dt=60;function Ot(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 kt(e){return e?e.replace(/^\[|\]$/g,``).split(`,`).map(e=>e.trim().replace(/^['"]|['"]$/g,``)).filter(Boolean):[]}function At(e){return e?.trim()===`site-exploration`?`site-exploration`:`general`}function jt(e){return e.replace(/[\r\n]+/g,` `).replace(/\s+/g,` `).trim()}function Mt(e){try{return new URL(e).hostname.toLowerCase()}catch{return``}}function Nt(e){let t=e.trim().toLowerCase();return t?(t.includes(`://`)?Mt(t):t).replace(/^\/+|\/+$/g,``).split(`/`)[0].split(`:`)[0].replace(/^\.+|\.+$/g,``):``}function Pt(e){return e===`localhost`||e.length<=253&&wt.test(e)}function Ft(e,t){return It(e,t).length>0}function It(e,t){let n=e.toLowerCase();return n?t.filter(e=>n===e||n.endsWith(`.${e}`)).sort((e,t)=>t.length-e.length):[]}function Lt(e,t={}){let n=e.name.trim().toLowerCase();if(!n)return q(`Give the skill a name.`);if(!St.test(n))return q(`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 q(`"${n}" is the name of a built-in skill. Pick another.`);let r=jt(e.description).slice(0,Tt),i=e.category;if(!xt.includes(i))return q(`Unknown category "${String(i)}".`);let a=Bt(e.domains.map(Nt).filter(Boolean));if(i===`site-exploration`){if(!a.length)return q(`A site-exploration skill needs at least one domain, like acme.com.`);if(a.length>20)return q(`At most 20 domains.`);for(let e of a){if(e.includes(`*`))return q(`"${e}" — wildcards are not supported; subdomains match automatically.`);if(!Pt(e))return q(`"${e}" is not a domain. Use something like acme.com.`)}}let o=i===`site-exploration`?[]:Bt(e.triggers.map(e=>jt(e).toLowerCase()).filter(Boolean));if(o.length>30)return q(`At most 30 triggers.`);for(let e of o)if(e.length<Et||e.length>Dt)return q(`Trigger "${e}" must be ${Et}–${Dt} characters.`);let s=Ot(e.body.replace(/\r\n/g,`
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 ee,Q as te,R as _,S as v,T as y,U as b,V as x,W as S,X as C,Y as w,Z as T,_ as E,a as D,at as O,b as k,c as A,ct as j,d as ne,dt as M,et as N,f as re,ft as P,g as ie,h as F,ht as I,i as ae,it as L,j as oe,k as R,l as se,lt as z,m as ce,mt as le,n as ue,nt as de,o as fe,ot as pe,pt as me,q as B,r as he,rt as ge,s as V,st as _e,t as ve,tt as ye,u as be,ut as H,v as xe,w as Se,x as Ce,y as we,z as Te}from"./globals-RKxmETMG.js";var Ee=M(`arrow-down`,[[`path`,{d:`M12 5v14`,key:`s699le`}],[`path`,{d:`m19 12-7 7-7-7`,key:`1idqje`}]]),U=M(`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`}]]),De=M(`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`}]]),Oe=M(`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`}]]),ke=M(`circle`,[[`circle`,{cx:`12`,cy:`12`,r:`10`,key:`1mglay`}]]),W=M(`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`}]]),Ae=M(`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`}]]),je=M(`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`}]]),Me=M(`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`}]]),Ne=M(`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`}]]),Pe=M(`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`}]]),Fe=M(`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`}]]),Ie=M(`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`}]]),Le=M(`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`}]]),Re=M(`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`}]]),ze=M(`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`}]]),Be=M(`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`}]]),Ve=M(`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`}]]),He=M(`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`}]]),Ue=M(`info`,[[`circle`,{cx:`12`,cy:`12`,r:`10`,key:`1mglay`}],[`path`,{d:`M12 16v-4`,key:`1dtifu`}],[`path`,{d:`M12 8h.01`,key:`e9boi3`}]]),We=M(`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`}]]),Ge=M(`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`}]]),Ke=M(`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`}]]),qe=M(`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`}]]),Je=M(`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`}]]),Ye=M(`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`}]]),Xe=M(`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`}]]),Ze=M(`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`}]]),Qe=M(`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`}]]),$e=M(`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`}]]),et=M(`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`}]]),tt=M(`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`}]]),nt=M(`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`}]]),rt=M(`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`}]]),it=M(`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`}]]),at=M(`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`}]]),ot=M(`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`}]]),st=M(`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`}]]),ct=M(`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`}]]),lt=M(`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`}]]),ut=M(`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`}]]),dt=M(`square`,[[`rect`,{width:`18`,height:`18`,x:`3`,y:`3`,rx:`2`,key:`afitv7`}]]),ft=M(`terminal`,[[`path`,{d:`M12 19h8`,key:`baeox8`}],[`path`,{d:`m4 17 6-6-6-6`,key:`1yngyt`}]]),pt=M(`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`}]]),mt=M(`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`}]]),ht=M(`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`}]]),gt=M(`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`}]]),_t=M(`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`}]]),vt=M(`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`}]]),G=M(`x`,[[`path`,{d:`M18 6 6 18`,key:`1bl5f8`}],[`path`,{d:`m6 6 12 12`,key:`d8bk6v`}]]),yt=M(`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`}]]),K=e(I(),1),bt=e(me(),1),xt=[`general`,`site-exploration`],St=/^[a-z0-9][a-z0-9-]{0,47}$/,Ct=32*1024,wt=/^[a-z0-9]([a-z0-9-]*[a-z0-9])?(\.[a-z0-9]([a-z0-9-]*[a-z0-9])?)+$/,Tt=300,Et=3,Dt=60;function Ot(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 kt(e){return e?e.replace(/^\[|\]$/g,``).split(`,`).map(e=>e.trim().replace(/^['"]|['"]$/g,``)).filter(Boolean):[]}function At(e){return e?.trim()===`site-exploration`?`site-exploration`:`general`}function jt(e){return e.replace(/[\r\n]+/g,` `).replace(/\s+/g,` `).trim()}function Mt(e){try{return new URL(e).hostname.toLowerCase()}catch{return``}}function Nt(e){let t=e.trim().toLowerCase();return t?(t.includes(`://`)?Mt(t):t).replace(/^\/+|\/+$/g,``).split(`/`)[0].split(`:`)[0].replace(/^\.+|\.+$/g,``):``}function Pt(e){return e===`localhost`||e.length<=253&&wt.test(e)}function Ft(e,t){return It(e,t).length>0}function It(e,t){let n=e.toLowerCase();return n?t.filter(e=>n===e||n.endsWith(`.${e}`)).sort((e,t)=>t.length-e.length):[]}function Lt(e,t={}){let n=e.name.trim().toLowerCase();if(!n)return q(`Give the skill a name.`);if(!St.test(n))return q(`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 q(`"${n}" is the name of a built-in skill. Pick another.`);let r=jt(e.description).slice(0,Tt),i=e.category;if(!xt.includes(i))return q(`Unknown category "${String(i)}".`);let a=Bt(e.domains.map(Nt).filter(Boolean));if(i===`site-exploration`){if(!a.length)return q(`A site-exploration skill needs at least one domain, like acme.com.`);if(a.length>20)return q(`At most 20 domains.`);for(let e of a){if(e.includes(`*`))return q(`"${e}" — wildcards are not supported; subdomains match automatically.`);if(!Pt(e))return q(`"${e}" is not a domain. Use something like acme.com.`)}}let o=i===`site-exploration`?[]:Bt(e.triggers.map(e=>jt(e).toLowerCase()).filter(Boolean));if(o.length>30)return q(`At most 30 triggers.`);for(let e of o)if(e.length<Et||e.length>Dt)return q(`Trigger "${e}" must be ${Et}–${Dt} characters.`);let s=Ot(e.body.replace(/\r\n/g,`
2
2
  `)).body.trim();return s?Rt(s)>32768?q(`The skill is larger than ${Math.round(Ct/1024)} KB. Trim it down.`):{ok:!0,draft:{name:n,description:r,category:i,domains:a,triggers:o,body:s}}:q(`The skill has no instructions — add some markdown below the front matter.`)}function Rt(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 zt(e,t){let{fields:n,body:r}=Ot(e.replace(/\r\n/g,`
3
3
  `)),i=Nt(t.replace(/\.(md|markdown)$/i,``)).replace(/[^a-z0-9-]+/g,`-`).replace(/^-+|-+$/g,``);return{name:(n.name||i).toLowerCase(),description:n.description??``,category:At(n.category),domains:kt(n.domains).map(Nt).filter(Boolean),triggers:kt(n.triggers).map(e=>e.toLowerCase()),body:r.trim()}}function Bt(e){return[...new Set(e)]}function q(e){return{ok:!1,message:e}}var Vt=48;function Ht(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:Gt(r)||`root`}}function Ut(e,t){return`${e.host}:${e.segment}:${t}`}function Wt(e,t){let n=Ht(t);return!!n&&n.host===e.host&&n.segment===e.segment}function Gt(e){return e.toLowerCase().replace(/[^a-z0-9]+/g,`-`).replace(/^-+|-+$/g,``).slice(0,Vt).replace(/-+$/,``)}var Kt=`/context`,qt=`/remove-tools`,Jt=`Review the tools you saved, and delete any you are done with.`,Yt=e=>e.trim().toLowerCase()===qt,Xt=`See what this conversation carries — messages, files, recordings, tabs.`,J=t(),Zt={tool:0,command:1,site:2,general:3,agent:4,"other-site":5};function Qt(e,t,n,r=[]){let i=Mt(t),a=[{key:`command:context`,group:`command`,name:`context`,description:Xt,command:Kt}];r.length&&a.push({key:`command:remove-tools`,group:`command`,name:`remove-tools`,description:Jt,command:qt});for(let e of r)Wt(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&&Ft(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)=>Zt[e.group]-Zt[t.group]||e.name.localeCompare(t.name))}function $t({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?ye[t].label:`Agent`} skills`,"other-site":`Other sites`};return(0,J.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,J.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,J.jsxs)(`div`,{children:[(o===0||e[o-1].group!==t.group)&&(0,J.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,J.jsxs)(`button`,{type:`button`,role:`option`,"aria-selected":o===n,onMouseEnter:()=>r(o),onMouseDown:e=>{e.preventDefault(),i(t)},className:N(`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,J.jsx)(yt,{className:`mt-0.5 size-3 shrink-0 text-lime`}):t.group===`command`?(0,J.jsx)(ut,{className:`mt-0.5 size-3 shrink-0 text-amber`}):t.group===`agent`?(0,J.jsx)(ct,{className:`mt-0.5 size-3 shrink-0 text-brand`}):t.group===`general`?(0,J.jsx)(U,{className:`mt-0.5 size-3 shrink-0 text-ink-faint`}):(0,J.jsx)(ze,{className:`mt-0.5 size-3 shrink-0 text-ink-faint`}),(0,J.jsxs)(`span`,{className:`min-w-0 flex-1`,children:[(0,J.jsx)(`span`,{className:`block truncate text-xs font-medium text-ink`,children:t.name}),t.description&&(0,J.jsx)(`span`,{className:`block truncate text-[11px] text-ink-dim`,children:t.description})]})]})]},t.key))})}function en({className:e,...t}){return(0,J.jsx)(`textarea`,{"data-slot":`textarea`,className:N(`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 tn(){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 k({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 nn=e=>e.label?.trim()||e.role||e.tag;function rn({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:ee,onStop:te,onToggleVoice:_,onPick:v,onClearFocus:y,onAttachPage:b,onAttachFile:x,onRemoveFile:S}){let C=(0,K.useRef)(null),w=(0,K.useRef)(null),T=e.input.startsWith(`/`)?e.input.slice(1):null,E=T!==null&&n,[D,O]=(0,K.useState)(0),k=(0,K.useMemo)(()=>E?Qt(o,s,T??``,h):[],[E,o,s,T,h]);(0,K.useEffect)(()=>O(0),[T]);let{cancelPending:A}=e;(0,K.useEffect)(()=>{E&&A()},[E,A]);function j(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} `),w.current?.focus()}function ne(e){e.target.closest(`button, textarea`)||w.current?.focus()}return(0,J.jsxs)(J.Fragment,{children:[a&&(0,J.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,J.jsx)(an,{focus:l,picking:u,onClear:y}),c&&(0,J.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,J.jsx)(ct,{className:`size-3.5 shrink-0 text-brand`}),(0,J.jsxs)(`span`,{className:`min-w-0 flex-1 truncate text-ink`,children:[`Skill attached: `,(0,J.jsx)(`span`,{className:`font-medium`,children:c.name})]}),(0,J.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,J.jsx)(G,{className:`size-3`})})]}),d&&(0,J.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,J.jsx)(Ae,{className:`size-3.5 shrink-0 text-ember`}),(0,J.jsxs)(`span`,{className:`min-w-0 flex-1 text-ink-dim`,children:[(0,J.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,J.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,J.jsx)(G,{className:`size-3`})})]}),(0,J.jsx)(sn,{files:i,onRemove:S}),(0,J.jsx)(on,{voice:e,voiceEnabled:t}),(0,J.jsxs)(`div`,{onClick:ne,className:N(`panel-card relative flex flex-col rounded-2xl transition-colors has-[textarea:focus]:border-brand/50`,n&&`cursor-text`),children:[E&&(0,J.jsx)($t,{items:k,agent:o?.agent,highlight:D,onHover:O,onSelect:j}),(0,J.jsx)(en,{ref:w,value:e.input,onChange:t=>e.setInput(t.target.value),onKeyDown:t=>{if(E){if(t.key===`Escape`){t.preventDefault(),e.setInput(``);return}if(k.length>0){if(t.key===`ArrowDown`){t.preventDefault(),O(e=>(e+1)%k.length);return}if(t.key===`ArrowUp`){t.preventDefault(),O(e=>(e-1+k.length)%k.length);return}if(t.key===`Enter`||t.key===`Tab`){t.preventDefault(),j(k[Math.min(D,k.length-1)]);return}}}t.key===`Enter`&&!t.shiftKey&&(t.preventDefault(),ee())},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,J.jsxs)(`div`,{className:`flex items-center gap-0.5 px-1.5 pb-1.5`,children:[(0,J.jsx)(B,{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:v,disabled:!n||u,className:N(l||u?`text-ember`:void 0),children:(0,J.jsx)(it,{className:N(`size-3.5`,u&&`animate-pulse`)})}),(0,J.jsx)(B,{variant:`ghost`,size:`icon-sm`,title:`Add this page’s title, URL and selection to the message`,"aria-label":`Attach page context`,onClick:b,disabled:!n,children:(0,J.jsx)($e,{className:`size-3.5`})}),(0,J.jsx)(B,{variant:`ghost`,size:`icon-sm`,title:`Attach a file for the agent to read`,"aria-label":`Attach a file`,onClick:()=>C.current?.click(),disabled:!n,children:(0,J.jsx)(Le,{className:`size-3.5`})}),(0,J.jsx)(B,{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:N(d?`text-ember`:void 0),children:(0,J.jsx)(Ae,{className:`size-3.5`})}),(0,J.jsxs)(B,{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:_,disabled:!e.supported,className:`relative`,children:[t&&e.listening&&(0,J.jsx)(`span`,{className:`absolute inset-0 animate-ping rounded-full bg-magenta/30`}),t&&!e.error?(0,J.jsx)(pe,{className:`size-3.5`}):(0,J.jsx)(_e,{className:`size-3.5`})]}),r?(0,J.jsx)(B,{size:`icon-sm`,variant:`destructive`,className:`ml-auto`,"aria-label":`Stop the agent`,onClick:te,children:(0,J.jsx)(dt,{className:`size-3 fill-current`})}):(0,J.jsx)(B,{size:`icon-sm`,className:`ml-auto`,"aria-label":`Send message`,onClick:ee,disabled:!e.input.trim()||!n,children:(0,J.jsx)(L,{className:`size-3.5`})})]})]}),(0,J.jsx)(`input`,{ref:C,type:`file`,className:`hidden`,onChange:e=>{let t=e.target.files?.[0];e.target.value=``,t&&x(t)}}),(0,J.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 an({focus:e,picking:t,onClear:n}){return!t&&!e?null:(0,J.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,J.jsx)(it,{className:N(`size-3.5 shrink-0 text-ember`,t&&`animate-pulse`)}),t||!e?(0,J.jsxs)(`span`,{className:`min-w-0 flex-1 truncate text-ink-dim`,children:[`Point at anything on the page — `,(0,J.jsx)(`span`,{className:`text-ink-faint`,children:`Esc cancels`})]}):(0,J.jsxs)(J.Fragment,{children:[e.shot&&(0,J.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,J.jsxs)(`span`,{className:`min-w-0 flex-1 truncate text-ink`,children:[`A-Eye: `,(0,J.jsx)(`span`,{className:`font-medium`,children:nn(e)})]}),(0,J.jsx)(`span`,{className:`shrink-0 font-mono text-[10px] text-ink-faint`,children:e.tag}),(0,J.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,J.jsx)(G,{className:`size-3`})})]})]})}function on({voice:e,voiceEnabled:t}){return t&&e.error?(0,J.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,J.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,J.jsx)(`span`,{className:`relative flex-1 overflow-hidden rounded-full bg-brand/20`,children:(0,J.jsx)(`span`,{className:`block h-1 rounded-full bg-brand`,style:{animation:`browsentic-countdown ${e.autoSendMs}ms linear forwards`}})}),(0,J.jsx)(`span`,{className:`shrink-0`,children:`Sending…`}),(0,J.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,J.jsx)(G,{className:`size-3`}),` Edit`]})]}):t&&e.listening?(0,J.jsxs)(`p`,{className:`mb-2 flex items-center gap-1.5 px-1 text-[11px] text-ink-dim`,children:[(0,J.jsx)(`span`,{className:`glow-dot inline-flex size-1.5 shrink-0 animate-pulse rounded-full bg-magenta text-magenta`}),e.interim?(0,J.jsx)(`span`,{className:`truncate italic`,children:e.interim}):(0,J.jsx)(`span`,{children:`Listening…`})]}):t&&!e.supported?(0,J.jsx)(`p`,{className:`mb-2 px-1 text-[11px] text-ink-faint`,children:`Voice input isn’t available in this browser.`}):null}function sn({files:e,onRemove:t}){return e.length===0?null:(0,J.jsx)(`div`,{className:`mb-2 flex max-h-40 flex-col gap-1.5 overflow-y-auto`,children:e.map(e=>(0,J.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,J.jsx)(Ie,{className:`mt-0.5 size-3.5 shrink-0 text-ink-faint`}),(0,J.jsxs)(`div`,{className:`min-w-0 flex-1`,children:[(0,J.jsxs)(`div`,{className:`flex items-center gap-1.5`,children:[(0,J.jsx)(`span`,{className:`truncate font-medium text-ink`,children:e.name}),(0,J.jsx)(`span`,{className:`shrink-0 font-mono text-[10px] text-ink-faint`,children:cn(e.size)})]}),e.status===`pending`&&(0,J.jsxs)(`span`,{className:`mt-0.5 flex items-center gap-1 text-[11px] text-ink-faint`,children:[(0,J.jsx)(j,{className:`size-3 animate-spin`}),` Analyzing…`]}),e.status===`ready`&&e.summary&&(0,J.jsx)(`p`,{className:`mt-0.5 line-clamp-2 text-[11px] text-ink-dim`,children:e.summary}),e.status===`error`&&(0,J.jsx)(`span`,{className:`mt-0.5 block text-[11px] text-destructive`,children:e.error??`Analysis failed`})]}),(0,J.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,J.jsx)(G,{className:`size-3`})})]},e.id))})}function cn(e){return e<1024?`${e} B`:e<1024*1024?`${Math.round(e/1024)} KB`:`${(e/1024/1024).toFixed(1)} MB`}function ln({onClose:e}){return(0,J.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,J.jsxs)(`div`,{className:`mb-3 flex items-center justify-between gap-2`,children:[(0,J.jsx)(`p`,{className:`text-xs font-medium text-ink`,children:`Connection`}),(0,J.jsx)(B,{variant:`ghost`,size:`icon-sm`,"aria-label":`Close connection settings`,onClick:e,children:(0,J.jsx)(G,{className:`size-3.5`})})]}),(0,J.jsxs)(`div`,{className:`space-y-4`,children:[(0,J.jsx)(ce,{}),(0,J.jsx)(xe,{})]})]})}function un({connected:e,maxBytes:t}){return(0,J.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,J.jsxs)(`div`,{className:N(`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,J.jsx)(Le,{className:`neon-text size-7 text-brand`}):(0,J.jsx)(gt,{className:`size-7 text-ink-faint`}),(0,J.jsx)(`p`,{className:`text-sm font-medium text-ink`,children:e?`Drop to attach`:`Not connected`}),(0,J.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 dn=[`Summarise what this page says`,`Fill this form in with my details`,`Find the unpaid invoices and open the newest`],fn={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 pn({blocker:e,voiceOn:t,onGo:n,onFix:r,onUse:i}){return(0,J.jsxs)(`div`,{className:`dot-grid fade-bottom flex flex-col gap-4 p-4`,children:[(0,J.jsxs)(`div`,{className:`flex items-start gap-2.5`,children:[(0,J.jsx)(ie,{className:`mt-0.5 size-7 shrink-0 text-brand`}),(0,J.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?fn[e]:(0,J.jsxs)(J.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,J.jsx)(`div`,{className:`flex flex-wrap gap-1.5`,children:(0,J.jsx)(mn,{icon:at,label:e===`agent`?`Choose an agent`:`Set up the link`,onClick:r})}):(0,J.jsxs)(J.Fragment,{children:[(0,J.jsx)(`div`,{className:`flex flex-col gap-1.5`,children:dn.map(e=>(0,J.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,J.jsxs)(`div`,{className:`flex flex-wrap gap-1.5`,children:[(0,J.jsx)(mn,{icon:U,label:`Teach it this site`,onClick:()=>n(`skills`)}),(0,J.jsx)(mn,{icon:W,label:`Record a flow`,onClick:()=>n(`recordings`)}),(0,J.jsx)(mn,{icon:rt,label:`Past chats`,onClick:()=>n(`history`)})]})]})]})}function mn({icon:e,label:t,onClick:n}){return(0,J.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,J.jsx)(e,{className:`size-3`}),t]})}function hn({state:e,onStop:t}){let n=_n(e.startedAt),r=Math.max(0,e.timeoutMs-n),i=e.percent==null?null:Math.round(e.percent);return(0,J.jsxs)(`div`,{className:`enters mb-2 rounded-xl border border-magenta/35 bg-magenta/8 p-2.5`,children:[(0,J.jsxs)(`div`,{className:`flex items-center gap-2`,children:[(0,J.jsx)(nt,{className:`size-3.5 shrink-0 animate-pulse text-magenta`}),(0,J.jsxs)(`span`,{className:`min-w-0 flex-1 truncate text-xs font-medium text-ink`,children:[`Watching `,e.label??e.host]}),(0,J.jsxs)(`span`,{className:`shrink-0 font-mono text-[11px] tabular-nums text-ink-faint`,children:[vn(n),i!=null&&` · ${i}%`]}),(0,J.jsxs)(B,{size:`sm`,variant:`ghost`,className:`shrink-0 text-magenta hover:text-magenta`,onClick:t,children:[(0,J.jsx)(dt,{className:`size-3 fill-current`}),` Stop`]})]}),i!=null&&(0,J.jsx)(`div`,{className:`mt-2 h-1 overflow-hidden rounded-full bg-magenta/15`,children:(0,J.jsx)(`div`,{className:`glow-dot h-full rounded-full bg-magenta text-magenta transition-[width] duration-500`,style:{width:`${i}%`}})}),(0,J.jsx)(`p`,{className:`mt-1.5 text-[11px] leading-relaxed text-ink-faint`,children:gn(e,r)})]})}function gn(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 ${vn(t)}.`:`No change for ${vn(e.stalledForMs)}.`}function _n(e){let[t,n]=(0,K.useState)(()=>Date.now());return(0,K.useEffect)(()=>{let e=setInterval(()=>n(Date.now()),1e3);return()=>clearInterval(e)},[]),Math.max(0,t-e)}function vn(e){let t=Math.floor(e/1e3);return`${Math.floor(t/60)}:${String(t%60).padStart(2,`0`)}`}var yn=[{id:`chat`,label:`Chat`,icon:Ye},{id:`history`,label:`History`,icon:rt},{id:`skills`,label:`Skills`,icon:U},{id:`recordings`,label:`Recordings`,icon:W},{id:`settings`,label:`Settings`,icon:st}];function bn({tab:e,counts:t,onSelect:n}){let r=(0,K.useRef)(null),[i,a]=(0,K.useState)(`full`),o=(0,K.useRef)({full:0,active:0});return(0,K.useLayoutEffect)(()=>{let e=r.current;if(!e)return;let t=!0,n=()=>{if(!t)return;let n=e.clientWidth;i!==`icons`&&(o.current[i]=xn(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,yn.map(({id:e})=>t[e]??0).join(`·`)]),(0,J.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:yn.map(({id:r,label:a,icon:o})=>{let s=e===r,c=t[r]??0,l=i===`full`||i===`active`&&s;return(0,J.jsxs)(`button`,{type:`button`,onClick:()=>n(r),title:l?void 0:a,"aria-label":a,"aria-current":s?`page`:void 0,className:N(`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,J.jsx)(o,{className:`size-3.5`}),l&&a,c>0&&(l?(0,J.jsx)(`span`,{className:N(`rounded-full px-1 font-mono text-[9px] tabular-nums`,s?`bg-brand/20`:`bg-surface text-ink-faint`),children:c}):(0,J.jsx)(`span`,{className:N(`absolute top-1 right-1 size-1.5 rounded-full`,s?`bg-brand/70`:`bg-ink-faint/60`)}))]},r)})})}function xn(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 Sn({state:e,onStop:t}){let n=Cn(e.startedAt),r=Math.max(0,h-n);return(0,J.jsxs)(`div`,{className:`enters mb-2 rounded-xl border border-destructive/40 bg-destructive/8 p-2.5`,children:[(0,J.jsxs)(`div`,{className:`flex items-center gap-2`,children:[(0,J.jsx)(`span`,{className:`glow-dot size-2 shrink-0 animate-pulse rounded-full bg-destructive text-destructive`}),(0,J.jsxs)(`span`,{className:`min-w-0 flex-1 truncate text-xs font-medium text-ink`,children:[`Recording `,e.host]}),(0,J.jsxs)(`span`,{className:`shrink-0 font-mono text-[11px] tabular-nums text-ink-faint`,children:[wn(n),` · `,e.events,` `,e.events===1?`step`:`steps`]}),(0,J.jsxs)(B,{size:`sm`,variant:`ghost`,className:`shrink-0 text-destructive hover:text-destructive`,onClick:t,children:[(0,J.jsx)(dt,{className:`size-3 fill-current`}),` Stop`]})]}),(0,J.jsxs)(`p`,{className:`mt-1.5 text-[11px] leading-relaxed text-ink-faint`,children:[e.warning??`Stops automatically in ${wn(r)}.`,!e.captureValues&&` Typed values are not being saved.`]})]})}function Cn(e){let[t,n]=(0,K.useState)(()=>Date.now());return(0,K.useEffect)(()=>{let e=setInterval(()=>n(Date.now()),1e3);return()=>clearInterval(e)},[]),Math.max(0,t-e)}function wn(e){let t=Math.floor(e/1e3);return`${Math.floor(t/60)}:${String(t%60).padStart(2,`0`)}`}var Tn=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 En({className:e,variant:t,asChild:n=!1,...r}){return(0,J.jsx)(n?w:`span`,{"data-slot":`badge`,className:N(Tn({variant:t}),e),...r})}function Dn({recordings:e,busy:t,onReplay:n,onRemove:r}){return e.length===0?(0,J.jsxs)(`div`,{className:`dot-grid fade-bottom rounded-xl border border-line px-3 py-6 text-center`,children:[(0,J.jsx)(W,{className:`mx-auto size-5 text-ink-faint`}),(0,J.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,J.jsxs)(`div`,{className:`flex min-w-0 flex-col gap-1.5`,children:[t&&(0,J.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,J.jsx)(On,{recording:e,busy:t===!0,onReplay:n,onRemove:r},e.id))]})}function On({recording:e,busy:t,onReplay:n,onRemove:r}){let[i,a]=(0,K.useState)(null),o=e.status===`ready`;return(0,J.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,J.jsx)(W,{className:`mt-0.5 size-3.5 shrink-0 text-ink-faint`}),(0,J.jsxs)(`div`,{className:`min-w-0 flex-1`,children:[i===null?(0,J.jsxs)(`div`,{className:`flex items-center gap-1.5`,children:[(0,J.jsx)(`span`,{className:`truncate font-medium text-ink`,children:e.name}),e.capturedValues&&(0,J.jsxs)(En,{variant:`warning`,children:[(0,J.jsx)(We,{}),` values`]})]}):(0,J.jsxs)(`div`,{className:`flex items-center gap-1`,children:[(0,J.jsx)(F,{value:i,autoFocus:!0,onChange:e=>a(e.target.value),onKeyDown:t=>{t.key===`Escape`&&a(null),t.key===`Enter`&&(R(e.id,i),a(null))},"aria-label":`Recording name`,className:`h-7 text-xs`}),(0,J.jsx)(`button`,{type:`button`,onClick:()=>{R(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,J.jsx)(H,{className:`size-3`})})]}),(0,J.jsxs)(`span`,{className:`mt-0.5 flex items-center gap-1 font-mono text-[10px] text-ink-faint`,children:[(0,J.jsx)(ze,{className:`size-2.5 shrink-0`}),(0,J.jsx)(`span`,{className:`truncate`,children:e.host})]}),e.goal&&e.goal!==e.name&&(0,J.jsx)(`p`,{className:`mt-0.5 line-clamp-2 text-[11px] text-ink-dim`,children:e.goal}),(0,J.jsx)(`span`,{className:`mt-0.5 flex items-center gap-1 text-[11px] text-ink-faint`,children:e.status===`analyzing`?(0,J.jsxs)(J.Fragment,{children:[(0,J.jsx)(j,{className:`size-3 animate-spin`}),` Splitting into steps…`]}):e.status===`error`?(0,J.jsx)(`span`,{className:`text-destructive`,children:e.error??`Could not read this recording`}):(0,J.jsxs)(J.Fragment,{children:[e.steps??0,` `,e.steps===1?`step`:`steps`,` · `,Mn(e.durationMs),` ·`,` `,Nn(e.updatedAt)]})}),o&&(0,J.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,J.jsx)(tt,{className:`size-3`}),` Do this again`]})]}),(0,J.jsxs)(`div`,{className:`mt-0.5 flex shrink-0 gap-0.5`,children:[(0,J.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,J.jsx)(et,{className:`size-3`})}),(0,J.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,J.jsx)(G,{className:`size-3`})})]})]})}var kn=6e4,An=60*kn,jn=24*An;function Mn(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 Nn(e){let t=Date.now()-e;return t<kn?`just now`:t<An?`${Math.floor(t/kn)}m ago`:t<jn?`${Math.floor(t/An)}h ago`:t<7*jn?`${Math.floor(t/jn)}d ago`:new Date(e).toLocaleDateString(void 0,{month:`short`,day:`numeric`})}function Pn({tabUrl:e,recordings:t,recording:n,busy:r,onStart:i,onStop:a,onReplay:o,onRemove:s}){let[c,l]=(0,K.useState)(!1),u=Mt(e),d=!r&&!n&&/^https?:/.test(e);return(0,J.jsxs)(`div`,{className:`flex min-w-0 flex-col gap-3 p-3`,children:[(0,J.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,J.jsxs)(B,{variant:`destructive`,onClick:a,children:[(0,J.jsx)(dt,{className:`fill-current`}),` Stop recording`]}):(0,J.jsxs)(B,{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,J.jsx)(ke,{className:`fill-current`}),(0,J.jsxs)(`span`,{className:`truncate`,children:[`Record `,u||`this page`]})]}),!n&&(0,J.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,J.jsx)(`input`,{type:`checkbox`,checked:c,onChange:e=>l(e.target.checked),className:`mt-0.5 size-3 shrink-0 accent-destructive`}),(0,J.jsxs)(`span`,{children:[(0,J.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,J.jsx)(Dn,{recordings:t,busy:r,onReplay:o,onRemove:s})]})}var Fn=e(le(),1);function In({purpose:e,code:t,site:n,onAllow:r,onDeny:i,onClose:a}){return(0,K.useEffect)(()=>{let e=e=>{e.key===`Escape`&&a()};return window.addEventListener(`keydown`,e),()=>window.removeEventListener(`keydown`,e)},[a]),(0,Fn.createPortal)((0,J.jsxs)(`div`,{className:`enters fixed inset-0 z-50 flex flex-col bg-ground/96 backdrop-blur`,children:[(0,J.jsxs)(`div`,{className:`flex items-start gap-2 border-b border-ember/30 bg-ember/8 px-3 py-2.5`,children:[(0,J.jsx)(ot,{className:`mt-0.5 size-3.5 shrink-0 text-ember`}),(0,J.jsxs)(`div`,{className:`min-w-0 flex-1`,children:[(0,J.jsx)(`p`,{className:`text-xs font-medium text-ink`,children:`Code the agent wrote`}),(0,J.jsx)(`p`,{className:`mt-0.5 text-[11px] leading-relaxed text-ink-dim`,children:e})]}),(0,J.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,J.jsx)(G,{className:`size-3.5`})})]}),(0,J.jsx)(`div`,{className:`min-h-0 flex-1 overflow-auto bg-ground/70`,children:(0,J.jsx)(`pre`,{className:`min-w-full p-3 font-mono text-[11px] leading-relaxed whitespace-pre text-ink-dim`,children:(0,J.jsx)(`code`,{children:t})})}),(0,J.jsxs)(`div`,{className:`border-t border-line px-3 py-2.5`,children:[(0,J.jsxs)(`p`,{className:`mb-2 text-[11px] leading-relaxed text-ink-faint`,children:[`This runs in `,n?(0,J.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,J.jsxs)(`div`,{className:`flex gap-1.5`,children:[(0,J.jsxs)(B,{variant:`ghost`,size:`sm`,className:`flex-1`,onClick:i,children:[(0,J.jsx)(G,{className:`size-3`}),` Deny`]}),(0,J.jsxs)(B,{size:`sm`,className:`flex-1`,onClick:r,children:[(0,J.jsx)(H,{className:`size-3`}),` Allow`]})]})]})]}),document.body)}var Ln=[{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 Rn({breakdown:e}){let{messages:t,files:n,recordings:r,filesOmitted:i,recordingsOmitted:a}=e,o=Ln.reduce((e,n)=>e+t[n.key],0),s=o===0&&n.length===0&&r.length===0;return(0,J.jsxs)(`div`,{className:`enters panel-card min-w-0 rounded-2xl px-3 py-2.5`,children:[(0,J.jsxs)(`div`,{className:`flex items-center gap-2`,children:[(0,J.jsx)(Ke,{className:`size-3.5 shrink-0 text-brand`}),(0,J.jsx)(`span`,{className:`flex-1 truncate font-mono text-[10px] tracking-[0.14em] text-ink uppercase`,children:`Session context`}),(0,J.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:Bn(e)})]}),s?(0,J.jsx)(`p`,{className:`mt-2 text-[11px] text-ink-dim`,children:`This conversation is empty — nothing rides along yet.`}):(0,J.jsxs)(J.Fragment,{children:[o>0&&(0,J.jsxs)(J.Fragment,{children:[(0,J.jsx)(`div`,{className:`mt-2.5 flex h-1.5 gap-px overflow-hidden rounded-full`,children:Ln.filter(e=>t[e.key]>0).map(e=>(0,J.jsx)(`span`,{className:e.color,style:{flexGrow:t[e.key]}},e.key))}),(0,J.jsx)(`div`,{className:`mt-1.5 flex flex-wrap gap-x-3 gap-y-0.5`,children:Ln.map(e=>(0,J.jsxs)(`span`,{className:`flex items-center gap-1 text-[10px] text-ink-dim`,children:[(0,J.jsx)(`span`,{className:N(`size-1.5 shrink-0 rounded-full`,e.color)}),(0,J.jsx)(`span`,{className:`font-mono`,children:t[e.key]}),` `,e.label]},e.key))})]}),(0,J.jsxs)(`div`,{className:`mt-2.5 flex flex-col gap-1 border-t border-line pt-2`,children:[(0,J.jsxs)(zn,{icon:ze,children:[e.tabCount===1?`1 tab`:`${e.tabCount} tabs`,e.host&&(0,J.jsxs)(J.Fragment,{children:[` · `,e.host]}),` · turn`,` `,(0,J.jsx)(`span`,{className:`font-mono text-[10px]`,children:e.turns}),` ·`,` `,(0,J.jsx)(`span`,{className:`font-mono text-[10px]`,children:Vn(t.chars)}),` characters`]}),(0,J.jsx)(zn,{icon:Ne,children:e.usage?(0,J.jsxs)(J.Fragment,{children:[`Agent window ≈ `,(0,J.jsx)(`span`,{className:`font-mono text-[10px]`,children:Vn(e.usage.contextTokens)}),` `,`tokens · `,(0,J.jsx)(`span`,{className:`font-mono text-[10px]`,children:Vn(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,J.jsxs)(zn,{icon:Ie,children:[(0,J.jsx)(`span`,{className:`text-ink`,children:e.name}),(0,J.jsxs)(`span`,{className:`font-mono text-[10px] text-ink-faint`,children:[` · `,Hn(e.size)]}),e.status===`pending`&&(0,J.jsx)(`span`,{className:`text-ink-faint`,children:` · analyzing`}),e.status===`error`&&(0,J.jsx)(`span`,{className:`text-destructive`,children:` · analysis failed`})]},t)),i>0&&(0,J.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,J.jsxs)(zn,{icon:W,children:[(0,J.jsx)(`span`,{className:`text-ink`,children:e.name}),e.steps!==void 0&&(0,J.jsxs)(`span`,{className:`font-mono text-[10px] text-ink-faint`,children:[` · `,e.steps,` steps`]})]},t)),a>0&&(0,J.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,J.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 zn({icon:e,children:t}){return(0,J.jsxs)(`div`,{className:`flex min-w-0 items-start gap-1.5 text-[11px] text-ink-dim`,children:[(0,J.jsx)(e,{className:`mt-0.5 size-3 shrink-0 text-ink-faint`}),(0,J.jsx)(`span`,{className:`min-w-0 flex-1 break-words`,children:t})]})}function Bn(e){return e.agent?`${ye[e.agent].label}${e.resumes?` · resumes`:``}`:`no agent yet`}function Vn(e){return e<1e3?String(e):`${(e/1e3).toFixed(+(e<1e4))} k`}function Hn(e){return e<1024?`${e} B`:e<1024*1024?`${Math.round(e/1024)} KB`:`${(e/1024/1024).toFixed(1)} MB`}function Un({text:e,streaming:t,className:n}){let r=(0,K.useRef)(!1);t&&(r.current=!0);let i=(0,K.useMemo)(()=>er(e).map(e=>({block:e,sig:JSON.stringify(e)})),[e]);return(0,J.jsx)(`div`,{"data-stream":t?`live`:r.current?`done`:void 0,className:N(`flex min-w-0 flex-col gap-2`,n),children:i.map(({block:e,sig:t},n)=>(0,J.jsx)(Wn,{block:e,sig:t},n))})}var Wn=(0,K.memo)(({block:e})=>lr(e,`0`),(e,t)=>e.sig===t.sig),Gn=/^ {0,3}(`{3,}|~{3,})[^\n]*$/,Kn=/^ {0,3}(?:`{3,}|~{3,})[ \t]*([^\s`~]*)/,qn=/^ {0,3}(`{3,}|~{3,})[ \t]*$/,Jn=/^ {0,3}(#{1,6})[ \t]+(.*?)[ \t]*#*[ \t]*$/,Yn=/^ {0,3}([-*_])[ \t]*(?:\1[ \t]*){2,}$/,Xn=/^ {0,3}>[ \t]?/,Zn=/^([ \t]*)(?:([-*+])|(\d{1,9})[.)])[ \t]+(.*)$/,Qn=/^ {0,3}\|?[ \t]*:?-+:?[ \t]*(?:\|[ \t]*:?-+:?[ \t]*)+\|?[ \t]*$/,$n=12;function er(e,t=0){let n=e.replace(/\r\n?/g,`
4
4
  `).split(`
@@ -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.5.0","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"]}]}
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.6.0","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-Bv3LKSQA.js"></script>
8
+ <script type="module" crossorigin src="/chunks/popup-DBnq_NvX.js"></script>
9
9
  <link rel="modulepreload" crossorigin href="/chunks/rolldown-runtime-Bh1tDfsg.js">
10
- <link rel="modulepreload" crossorigin href="/chunks/globals-BlPE2up2.js">
11
- <link rel="stylesheet" crossorigin href="/assets/globals-Bj_wgW8U.css">
10
+ <link rel="modulepreload" crossorigin href="/chunks/globals-RKxmETMG.js">
11
+ <link rel="stylesheet" crossorigin href="/assets/globals-gUnqG7C4.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-BfxbkWaC.js"></script>
8
+ <script type="module" crossorigin src="/chunks/sidepanel-CrG8wCdP.js"></script>
9
9
  <link rel="modulepreload" crossorigin href="/chunks/rolldown-runtime-Bh1tDfsg.js">
10
- <link rel="modulepreload" crossorigin href="/chunks/globals-BlPE2up2.js">
11
- <link rel="stylesheet" crossorigin href="/assets/globals-Bj_wgW8U.css">
10
+ <link rel="modulepreload" crossorigin href="/chunks/globals-RKxmETMG.js">
11
+ <link rel="stylesheet" crossorigin href="/assets/globals-gUnqG7C4.css">
12
12
  </head>
13
13
  <body>
14
14
  <div id="root"></div>
package/package.json CHANGED
@@ -1,7 +1,7 @@
1
1
  {
2
2
  "name": "browsentic",
3
- "version": "0.5.0",
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.",
3
+ "version": "0.6.0",
4
+ "description": "A browser extension with an AI side panel that hands your real, logged-in browser to the AI agent you already run. Installs the extension, runs the local daemon, and optionally speaks MCP.",
5
5
  "type": "module",
6
6
  "license": "MIT",
7
7
  "packageManager": "yarn@4.17.1",
@@ -13,8 +13,12 @@
13
13
  },
14
14
  "bugs": "https://github.com/imshaikot/browsentic/issues",
15
15
  "keywords": [
16
- "browser-automation",
16
+ "browser-extension",
17
17
  "chrome-extension",
18
+ "ai-browser-extension",
19
+ "side-panel",
20
+ "browser-agent",
21
+ "browser-automation",
18
22
  "ai-agent",
19
23
  "agentic-browsing",
20
24
  "mcp",
@@ -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:cubic-bezier(.4, 0, 1, 1);--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{--tw-ease:var(--ease-in);transition-timing-function:var(--ease-in)}.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))}}