conductor-remote 1.106.3 → 1.108.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/README.md CHANGED
@@ -34,8 +34,8 @@ registers the service):
34
34
  curl -fsSL https://raw.githubusercontent.com/hyldmo/conductor-remote/main/install.sh | bash
35
35
  ```
36
36
 
37
- The published package is **dependency-free** no build step and no native addons
38
- on your machine, so `npm i -g` finishes in about a second. `service install`
37
+ The published package needs no local build toolchain or native addons, so installation
38
+ is still a plain `npm i -g`. `service install`
39
39
  prints a phone URL with an embedded token; open it and **Add to Home Screen**.
40
40
  Manage the service with `conductor-remote service status|restart|uninstall`.
41
41
 
@@ -92,6 +92,7 @@ locked-screen/PSTN use. See
92
92
  ├─ writes: Actuator ⟶ Conductor
93
93
  │ ├─ applescript (default): osascript ⟶ focused session
94
94
  │ └─ sidecar (opt-in): unix socket ⟶ exact session
95
+ ├─ workflow: orchestration.db ⟷ coordinator ⟶ tracked UI effects
95
96
  ├─ dev: Run/Stop ⟶ CONDUCTOR_PORT ⟶ tailnet-only HTTPS
96
97
  └─ push: turn ended ⟶ Web Push ⟶ your lock screen
97
98
  ```
@@ -106,6 +107,10 @@ locked-screen/PSTN use. See
106
107
  caches the result for a minute. Cursor/OpenCode say why no plan quota is available.
107
108
  - **Writes are the one fragile nerve** and are isolated behind a swappable
108
109
  `Actuator` (`src/writes.ts`).
110
+ - **Workflow orchestration is relay-owned.** A separate WAL SQLite database
111
+ records frozen roles, jobs, capabilities, UI effects, receipts, and recovery;
112
+ a cross-process lease prevents two compatible relays from driving the shared
113
+ Conductor window at once.
109
114
  - **Notifications ride the durable side.** The relay watches the same SQLite for
110
115
  turns ending and sends a Web Push straight to the phone — no Conductor process
111
116
  involved, and it works with the app closed.
@@ -113,8 +118,8 @@ locked-screen/PSTN use. See
113
118
  ## Stack
114
119
 
115
120
  React 19 · React Router 7 · Vite 7 · Tailwind v4 · `vite-plugin-pwa` · TanStack
116
- Query · Zustand · Biome · lucide. The relay is dependency-free Node 24
117
- (`node:sqlite` + native TS type-stripping).
121
+ Query · Zustand · Biome · lucide. The relay is Node 24 (`node:sqlite` + native TS
122
+ type-stripping), with Drizzle and Zod defining and validating its owned database.
118
123
 
119
124
  ## Requirements
120
125
 
@@ -254,7 +259,9 @@ RELAY_TOKEN=$(openssl rand -hex 16) yarn start
254
259
  CLI protocols with no model request. Cursor Agent and OpenCode keep their own
255
260
  provider cards without pretending local accounting is a subscription limit.
256
261
  - ✅ Live transcript per session (assistant text, tool calls, queued messages),
257
- incremental polling.
262
+ incremental polling. Provider-native subagents reuse the workflow agent-subtab
263
+ strip: the parent keeps one compact spawn row, while each native child opens as
264
+ its own read-only transcript slice instead of duplicating its work inline.
258
265
  - ✅ **Fork a chat** with the selected response only, a concise transcript,
259
266
  reasoning, or the full tool-call transcript. Keep it as a new tab over the same files,
260
267
  or switch on **To new workspace** to carry the current committed, staged,
@@ -291,35 +298,42 @@ RELAY_TOKEN=$(openssl rand -hex 16) yarn start
291
298
  - ✅ **Attach images and files** — tap the paperclip or paste an image into the
292
299
  composer. Files up to 25 MB are stored in Conductor's own attachment layout
293
300
  before the prompt is sent.
294
- - ✅ **Cross-provider delegated roles** — configure picker-backed roles from the
295
- phone, then turn on **Workflow** beside the model picker in New workspace or an
296
- untouched **+ New chat**. The first message starts as the configured planning role
297
- and may call `delegate_task`, which opens a real sibling chat, attaches the parent
298
- transcript, applies the frozen model/effort/fast settings, and returns a Baton when
299
- the child is stably finished. Role chips and a live pipeline remain visible on the
300
- phone. Workflow roles are ordinary chats and never enable or depend on Conductor
301
- Plan mode.
301
+ - ✅ **Deterministic cross-provider Workflow** — configure exact picker-backed
302
+ planning, exploration, and implementation roles, then turn on **Workflow** in
303
+ New workspace or an untouched **+ New chat**. The PWA calls the UI-only
304
+ `POST /api/workflows`; a `202` means the immutable objective, all three frozen
305
+ role snapshots, the prepared target effect, and a dormant bootstrap explorer
306
+ are durable before Conductor is touched. One tracked explorer is guaranteed,
307
+ the planner may request independent extras, every current exploration Baton must
308
+ be delivered before implementation opens, and review stays visible until another
309
+ tracked pass or an explicit completion. The phone shows phase, frozen roles, child
310
+ tabs, exact sanitized failures, and Retry/Adopt/confirmed Replay/Cancel/Complete actions.
311
+ Model, effort, and Fast are frozen for active roots and children. Generic Plan
312
+ remains its ordinary independent control; Workflow adds no Plan-specific policy
313
+ or copy. The planner's no-edit boundary is an instruction plus orchestration gates,
314
+ not an OS sandbox around its filesystem tools.
302
315
  - ✅ **Push notifications** when an agent finishes its turn or hits an error —
303
316
  see below.
304
317
 
305
318
  ## MCP: let your agents drive Conductor
306
319
 
307
- `conductor-remote mcp` is an MCP server on stdio. It gives a coding agent the same
308
- control the phone has, over the same relay.
320
+ `conductor-remote mcp` is an MCP server on stdio. It gives a coding agent
321
+ relay-backed reads and ordinary Conductor controls. Workflow Start, recovery, and
322
+ role editing deliberately remain authenticated phone UI operations.
309
323
 
310
- Two transports, same 26 tools.
324
+ Two transports, same 23 tools.
311
325
 
312
326
  | | |
313
327
  |---|---|
314
328
  | `search_chats` · `read_chat` | full-text search every chat on this Mac, archived included, then read one |
315
329
  | `list_workspaces` · `list_chats` · `workspace_diff` · `list_repos` | what is running, and what it changed |
316
330
  | `plan_usage` | prompt-free Claude/Codex subscription allowances and reset times |
317
- | `create_workspace` | start work in a repo, with an optional first prompt and model/effort/plan/fast choices, or `workflow: true` to use the configured planning root and authorize delegation without Plan mode. Creation uses a deep link; selected settings apply before the prompt |
331
+ | `create_workspace` | start ordinary work in a repo, with an optional first prompt and model/effort/plan/fast choices. Creation uses a deep link; selected settings apply before the prompt |
318
332
  | `dev_server` | inspect, start, forward or stop a workspace's configured Conductor Run task; use this instead of launching a long-lived server from an agent shell |
319
333
  | `send_prompt` · `stop_turn` · `close_chat` | talk to a running agent, cancel its turn, or hide a chat tab |
320
334
  | `split_chat` | move a tangent into a fresh tab, or set `new_workspace` to carry the transcript and current code into a separate worktree |
321
- | `list_roles` · `set_role` | inspect or edit exact-picker delegated roles (model, effort, fast, and preamble; no Plan setting) |
322
- | `delegate_task` · `list_delegations` · `dismiss_delegation` | run a task in a real sibling chat on another provider, observe its persisted queue, or dismiss a failed job |
335
+ | `list_roles` | inspect exact-picker Workflow role definitions and validation issues; role editing remains a phone UI action |
336
+ | `delegate_task` · `list_delegations` | from an already-authorized Workflow root, request a capability-scoped tracked child or observe active/failed jobs; neither tool can start or recover a Workflow |
323
337
  | `list_models` · `set_agent_options` · `set_default_model` | cached model labels (including the starred default), model, effort, plan, fast; starring a default also selects it for the target chat, matching Conductor |
324
338
  | `set_workspace_status` | move a workspace between the sidebar's status groups |
325
339
  | `archive_workspace` | put a finished workspace away (Conductor's ⌘⇧A) — deletes the worktree, keeps the chat |
@@ -330,7 +344,7 @@ Two transports, same 26 tools.
330
344
  **Name it `conductor-remote`, not `conductor`.** Conductor injects an MCP server of its
331
345
  own into every agent it runs, and that one is already called `conductor`. Register this
332
346
  under the same name and inside a Conductor workspace the two collide: Conductor's tools
333
- win, these 26 vanish, and the only trace left is this server's instructions text —
347
+ win, these 23 vanish, and the only trace left is this server's instructions text —
334
348
  so it reads as if the tools should be there.
335
349
 
336
350
  **stdio** — for an agent running on this Mac. The client spawns it as a child process;
@@ -375,14 +389,12 @@ of the time.
375
389
  | `list_workspaces` | what is running right now, with status and model |
376
390
  | `list_chats` | the chat tabs in a workspace |
377
391
  | `list_roles` | picker-backed cross-provider role definitions and validation issues |
378
- | `set_role` | add or change one delegated role without touching Conductor's UI |
379
- | `delegate_task` | enqueue a cross-provider sibling chat and return immediately with its job id |
392
+ | `delegate_task` | enqueue a tracked child only for the caller's existing Workflow id/current phase capability, then return its job id |
380
393
  | `list_delegations` | active and failed delegated jobs |
381
- | `dismiss_delegation` | remove one failed job while retaining both chats and their role chips |
382
394
  | `workspace_diff` | a workspace's diff against its target branch |
383
395
  | `list_repos` | repos a workspace can be created in |
384
396
  | `plan_usage` | Claude/Codex rolling subscription limits, without sending a prompt |
385
- | `create_workspace` | start a new workspace, optionally with a first prompt and agent settings, or as a configured delegated workflow |
397
+ | `create_workspace` | start an ordinary new workspace, optionally with a first prompt and agent settings |
386
398
  | `dev_server` | inspect/start/stop the configured Run task and its tailnet preview (`status` is read-only; start/stop drive the real UI) |
387
399
  | `send_prompt` | send into an existing chat (drives the real UI) |
388
400
  | `stop_turn` | cancel a running answer (drives the real UI) |
@@ -390,15 +402,18 @@ of the time.
390
402
  | `set_workspace_status` | set the sidebar status (drives the real UI) |
391
403
  | `archive_workspace` | archive a workspace (drives the real UI, deletes the worktree) |
392
404
 
393
- Search, transcript, workspace/chat, diff, repo, role, delegation-status, dismiss,
405
+ Search, transcript, workspace/chat, diff, repo, role, delegation-status,
394
406
  dev-server status, keep-awake-status, and log reads touch no Conductor UI. `create_workspace` opens a
395
407
  Conductor deep link, so creation itself needs no Accessibility and steals no focus;
396
408
  requested model, effort, plan, and fast settings are applied later before the first
397
- prompt. Its `workflow` option instead freezes the configured `planning` role, tags the
398
- first chat as that role, and explicitly authorizes that root to use `delegate_task`;
399
- it cannot be combined with explicit agent settings and never touches Plan mode. `delegate_task`
400
- persists and returns immediately, then its background queue opens/configures/sends
401
- through the same serialized UI path as phone writes. It never changes Plan mode.
409
+ prompt. Neither `create_workspace` nor `send_prompt` can start or join a Workflow.
410
+ Workflow Start is deliberately PWA-only: the relay first accepts `POST /api/workflows`,
411
+ then its durable coordinator performs the workspace/root effects. `delegate_task`
412
+ requires the Workflow id, root session, role, and opaque capability delivered for the
413
+ current phase; it persists and returns immediately while the coordinator later
414
+ opens/configures/sends the child. MCP cannot start, retry, adopt, replay, cancel,
415
+ complete, edit roles, or dismiss a managed failure. Generic Plan remains independent
416
+ on the ordinary agent-option routes and is not part of Workflow's frozen tuple.
402
417
  Agents are explicitly told to use `dev_server` instead of starting a long-lived server
403
418
  from their shell. Its start and stop actions go through Conductor's Run controls, which
404
419
  preserves the workspace's allocated ports, run-mode policy and process-group cleanup;
@@ -410,11 +425,13 @@ session either. A request carrying an `Origin` header is refused outright — a
410
425
  client sends none and a browser cannot omit one, which closes the DNS-rebinding hole
411
426
  without the relay having to know its own hostname behind Tailscale's TLS.
412
427
 
413
- **Two agents cannot collide.** Conductor has one window, so every UI write in the
414
- relay is serialized by a single process-local lock which is exactly why these
415
- tools call the relay instead of driving AppleScript themselves. Agents are marked
416
- background priority, so they always yield to whoever is holding the phone, and past
417
- four queued operations a caller is refused with "busy, retry shortly" rather than
428
+ **Two agents—or two compatible relay processes—cannot intentionally overlap UI
429
+ writes.** Conductor has one window, so a priority lock serializes work inside each
430
+ process and a lease in `orchestration.db` serializes cooperating processes. Workflow
431
+ effects persist their dispatch boundary and external PID/start identity before they
432
+ may execute, so a successor reconciles positive evidence instead of blindly repeating
433
+ an abandoned action. Agents remain background priority behind the phone, and past four
434
+ locally queued operations a caller is refused with "busy, retry shortly" rather than
418
435
  joining a line it would only time out waiting in.
419
436
 
420
437
  Worth knowing before you wire it up: `send_prompt` into a chat that is already
@@ -425,16 +442,20 @@ the desktop's own warning. The tool descriptions surface each of those choices.
425
442
 
426
443
  The workflow icon in either workspace header opens **Roles**. Models there are
427
444
  choices previously read from Conductor's real picker; a missing or ambiguous label
428
- stays red and delegation is refused before the relay opens a tab. The shipped
445
+ stays red and Start is refused before the relay opens a tab. The shipped
429
446
  `exploration` placeholder is intentionally invalid when several Spark rows exist,
430
- so choose the exact one once. Accepted jobs keep a frozen copy of the role even if
431
- you edit its definition later. In **New workspace** and the composer of an untouched
432
- **+ New chat**, the **Workflow** pill beside the model picker is the kickoff switch:
433
- while active, the planning role's settings are shown read-only and the generic Plan
434
- control disappears. The first send creates or claims and tags the root before its
435
- prompt is delivered. Its root instruction starts tracked sibling-chat delegation and
436
- explicitly rules out provider-native Task/subagent machinery as well as Conductor Plan
437
- mode. Once a chat has a first message or any delegated role, the kickoff pill is gone.
447
+ so choose the exact one once. Start freezes all three roles for that run; editing a
448
+ definition later affects only the next run. In **New workspace** and the composer of
449
+ an untouched **+ New chat**, the **Workflow** pill is the kickoff switch. Its accepted
450
+ state appears immediately from the top-level Workflow list, including before a new
451
+ workspace is bound. The planning tuple is read-only, while the generic Plan control
452
+ keeps its normal availability and meaning. A delivered root prompt activates the
453
+ already-recorded bootstrap explorer. The planner can request extras only through its
454
+ Workflow-scoped `delegate_task` phase
455
+ capability. Once a chat has a first message or belongs to an active Workflow, the
456
+ kickoff pill is gone. Blocked runs remain visible for phone-owned recovery, and
457
+ reviewing runs remain until **Mark complete**; Cancel stops orchestration without
458
+ deleting worktrees, chats, or turns.
438
459
 
439
460
  ## Notifications
440
461
 
@@ -1,5 +1,5 @@
1
1
  const __vite__mapDeps=(i,m=__vite__mapDeps,d=(m.f||(m.f=["assets/diff-syntax/cpp-DddhVWhK.js","assets/diff-syntax/c-BIGW1oBm.js","assets/diff-syntax/html-pp8916En.js","assets/diff-syntax/javascript-wDzz0qaB.js","assets/diff-syntax/css-CLj8gQPS.js","assets/diff-syntax/php-Csjmro_R.js","assets/diff-syntax/xml-sdJ4AIDG.js","assets/diff-syntax/java-CylS5w8V.js","assets/diff-syntax/sql-CRqJ_cUM.js","assets/diff-syntax/json-Cp-IABpG.js","assets/diff-syntax/ruby-C-9S-GLb.js","assets/diff-syntax/typescript-BPQ3VLAy.js","assets/diff-syntax/jsx-g9-lgVsj.js","assets/diff-syntax/tsx-COt5Ahok.js","assets/diff-syntax/zsh-Yzrsuije.js","assets/diff-syntax/yml-DbVfSbck.js","assets/diff-syntax/scss-D5BDwBP9.js"])))=>i.map(i=>d[i]);
2
- import{w as er,s as Xs,f as Ba,a as Ga,b as za,c as gr,h as ja,_ as D,r as Q,j,p as Wa,d as Va}from"./index-BiWQQKon.js";const mr={}.hasOwnProperty;function qa(e,t){const n=t||{};function i(r,...s){let o=i.invalid;const l=i.handlers;if(r&&mr.call(r,e)){const a=String(r[e]);o=mr.call(l,a)?l[a]:i.unknown}if(o)return o.call(this,r,...s)}return i.handlers=n.handlers||{},i.invalid=n.invalid,i.unknown=n.unknown,i}const Ys="diffs-container";(()=>{try{return!1}catch{return!1}})();const Ka=/(?=^From [a-f0-9]+ .+$)/m,Qs=/(?=^diff --git)/gm,Xa=new RegExp("(?<=\\n)"),Ya=/^(---|\+\+\+)\s+([^\t\r\n]+)/,Qa=/^(---|\+\+\+)\s+[ab]\/([^\t\r\n]+)/,Za=/^diff --git (?:"a\/(.+?)"|a\/(.+?)) (?:"b\/(.+?)"|b\/(.+?))$/,Ja=/^index ([0-9a-f]+)\.\.([0-9a-f]+)(?: (\d+))?$/i,Zs="header-prefix",Js="header-filename-suffix",eo="header-metadata",tr="header-custom",le={dark:"pierre-dark",light:"pierre-light"},el="data-theme-css",tl="data-unsafe-css",nl="data-diffs-scrollbar-measure",to="--diffs-scrollbar-gutter-measured",il=1e5,rl={hunkLineCount:50,lineHeight:20,diffHeaderHeight:44,spacing:8},sl=Object.freeze({fromStart:0,fromEnd:0}),br={startingLine:0,totalLines:1/0,bufferBefore:0,bufferAfter:0},ol={startingLine:0,totalLines:0,bufferBefore:0,bufferAfter:0},gt=new Set;let mt=null;function no(e){gt.add(e),mt??=requestAnimationFrame(io)}function Ci(e){gt.delete(e)&&gt.size===0&&mt!=null&&(cancelAnimationFrame(mt),mt=null)}function io(e){const t=new Set(gt);gt.clear();for(const n of t)try{n(e)}catch(i){console.error(i)}gt.size>0?mt=requestAnimationFrame(io):mt=null}function Si(e,t,n){if(e===t||e==null||t==null)return e===t;const i=new Set(n),r=Object.keys(e),s=new Set(Object.keys(t));for(const o of r)if(s.delete(o),!i.has(o)&&(!(o in t)||e[o]!==t[o]))return!1;for(const o of Array.from(s))if(!i.has(o))return!1;return!0}function nr(e,t){return e==null||t==null||typeof e=="string"||typeof t=="string"?e===t:e.dark===t.dark&&e.light===t.light}function ro(e,t){const n=e?.theme??le,i=t?.theme??le,r=vr(e),s=vr(t);return nr(n,i)&&Si(e,t,["theme","parseDiffOptions"])&&Si(r,s)}function vr(e){if(e!=null&&"parseDiffOptions"in e)return e.parseDiffOptions}function wi(e,t){return e?.start===t?.start&&e?.end===t?.end&&e?.side===t?.side&&e?.endSide===t?.endSide}function Pe(e){let t=e.length;return e.charCodeAt(t-1)===10&&(t--,e.charCodeAt(t-1)===13&&t--),e.slice(0,t)}const al=new TextEncoder,ll=new TextDecoder("utf-8",{ignoreBOM:!0}),dl=/[\uD800-\uDFFF]/,xi=1024;let ft=new Uint8Array(xi);function so(){ft.length!==xi&&(ft=new Uint8Array(xi))}function W(e){if(e.length===0)return e;if(dl.test(e))return JSON.parse(JSON.stringify(e));const t=e.length*3;ft.length<t&&(ft=new Uint8Array(t));const{written:n}=al.encodeInto(e,ft);return ll.decode(ft.subarray(0,n))}function Se(e,t){return e-(t===0?0:1)}function ie(e,t){return Se(e,t)+t}const cl=4096,ul=.5;function hl(e){for(const t of e.hunks){for(let n=0;n<t.hunkContent.length;n++){const i=t.hunkContent[n];if(i.type!=="change")continue;const r=pl(e,i);r!=null&&(t.hunkContent.splice(n,1,...r),n+=r.length-1)}fl(t,e)}}function fl(e,t){const{hunkContent:n}=e;for(let i=1;i<n.length;i++){const r=n[i],s=n[i-1];if(r.type!=="change"||r.additions>0&&r.deletions>0||s.type!=="context")continue;const o=r.additions>0,l=o?t.additionLines:t.deletionLines,a=o?r.additionLineIndex:r.deletionLineIndex,d=o?r.additions:r.deletions,c=l[a]??"";if(c.trim()!=="")continue;let u=!0;for(let v=1;v<d;v++)if(l[a+v]!==c){u=!1;break}if(!u)continue;let h=0;for(;h<s.lines&&t.additionLines[s.additionLineIndex+s.lines-1-h]===c;)h++;if(h===0||i===1&&h===s.lines)continue;r.additionLineIndex-=h,r.deletionLineIndex-=h;const f=r.additionLineIndex+r.additions,p=r.deletionLineIndex+r.deletions,g=n[i+1];g?.type==="context"?(g.lines+=h,g.additionLineIndex=f,g.deletionLineIndex=p):n.splice(i+1,0,{type:"context",lines:h,additionLineIndex:f,deletionLineIndex:p}),s.lines-=h,s.lines===0&&(n.splice(i-1,1),i--)}}function pl(e,t){const{deletions:n,additions:i,deletionLineIndex:r,additionLineIndex:s}=t,o=Math.min(n,i),l=Math.abs(i-n);if(o===0||l===0||o*(l+1)>cl)return null;const a=[];for(let g=0;g<n;g++)a.push(yr(e.deletionLines[r+g]??""));const d=[];for(let g=0;g<i;g++)d.push(yr(e.additionLines[s+g]??""));const c=i>n;let u=0,h=-1;for(let g=0;g<=l;g++){let v=0;for(let m=0;m<o;m++)v+=ml(a[m+(c?0:g)],d[m+(c?g:0)]);g===0?h=v+o*ul:v>h&&(h=v,u=g)}if(u===0)return null;const f=[],p=(g,v,m,b)=>{(g>0||v>0)&&f.push({type:"change",deletions:g,additions:v,deletionLineIndex:m,additionLineIndex:b})};return c?(p(0,u,r,s),p(o,o,r,s+u),p(0,i-o-u,r+o,s+u+o)):(p(u,0,r,s),p(o,o,r+u,s),p(n-o-u,0,r+u+o,s+o)),f}const gl=/\s+/g;function yr(e){return e.replace(gl,"")}function ml(e,t){if(e===t)return 1;const n=Math.max(e.length,t.length),i=Math.min(e.length,t.length);if(i===0)return 0;let r=0;for(;r<i&&e[r]===t[r];)r++;let s=0;for(;s<i-r&&e[e.length-1-s]===t[t.length-1-s];)s++;return(r+s)/n}function bl(e,t,n){try{return vl(e,t,n)}finally{so()}}function vl(e,t,n=!1){const i=_l(e),r=i?wl(e):xl(e);let s;const o=[];for(const l of r){if(i&&!Qs.test(l)){if(s==null)s=W(l);else{if(n)throw Error("parsePatchContent: unknown file blob");console.error("parsePatchContent: unknown file blob:",l)}continue}else if(!i&&!kl(l)){if(s==null)s=W(l);else{if(n)throw Error("parsePatchContent: unknown file blob");console.error("parsePatchContent: unknown file blob:",l)}continue}const a=oo(l,{cacheKey:void 0,isGitDiff:i,throwOnError:n});a!=null&&o.push(a)}return{patchMetadata:s,files:o}}function yl(e,t){try{return oo(e,t)}finally{so()}}function oo(e,{cacheKey:t,isGitDiff:n=Qs.test(e),oldFile:i,newFile:r,throwOnError:s=!1}={}){let o=0;const l=uo(e,"@@ ");let a;const d=i==null||r==null;let c=0,u=0;for(const h of l){const f=ao(h),p=f[0];if(p==null){if(s)throw Error("parsePatchContent: invalid hunk");console.error("parsePatchContent: invalid hunk",h);continue}const g=co(p);let v=0,m=0;if(g==null||a==null){if(a!=null){if(s)throw Error("parsePatchContent: Invalid hunk");console.error("parsePatchContent: Invalid hunk",h);continue}a={name:"",type:"change",hunks:[],splitLineCount:0,unifiedLineCount:0,isPartial:d,additionLines:!d&&i!=null&&r!=null?Cr(r.contents):[],deletionLines:!d&&i!=null&&r!=null?Cr(i.contents):[],cacheKey:xr(t)},a.additionLines.length===1&&r?.contents===""&&(a.additionLines.length=0),a.deletionLines.length===1&&i?.contents===""&&(a.deletionLines.length=0);for(const k of f){if(k.startsWith("diff --git")){const F=k.trim().match(Za),L=F?.[1]??F?.[2],A=F?.[3]??F?.[4];if(L==null||A==null){if(s)throw Error("parsePatchContent: invalid git diff header");console.error("parsePatchContent: invalid git diff header",k);continue}a.name=W(A.trim()),L!==A&&(a.prevName=W(L.trim()));continue}const _=k.startsWith("---")||k.startsWith("+++")?k.match(n?Qa:Ya):null;if(_!=null){const[,F,L]=_;if(F==="---"&&L!=="/dev/null"){const A=W(L.trim());a.prevName=A,a.name=A}else F==="+++"&&L!=="/dev/null"&&(a.name=W(L.trim()))}else if(n){if(k.startsWith("new mode ")&&(a.mode=W(k.slice(8).trim())),k.startsWith("old mode ")&&(a.prevMode=W(k.slice(8).trim())),k.startsWith("new file mode")&&(a.type="new",a.mode=W(k.slice(13).trim())),k.startsWith("deleted file mode")&&(a.type="deleted",a.mode=W(k.slice(17).trim())),k.startsWith("similarity index")&&(k.startsWith("similarity index 100%")?a.type="rename-pure":a.type="rename-changed"),k.startsWith("index ")){const[,F,L,A]=k.trim().match(Ja)??[];F!=null&&(a.prevObjectId=W(F)),L!=null&&(a.newObjectId=W(L)),A!=null&&(a.mode=W(A))}k.startsWith("rename from ")&&(a.prevName=W(k.slice(12).trim())),k.startsWith("rename to ")&&(a.name=W(k.slice(10).trim()))}}continue}let b,y;for(;f.length>0&&(f[f.length-1]===`
2
+ import{w as er,s as Xs,f as Ba,a as Ga,b as za,c as gr,h as ja,_ as D,r as Q,j,p as Wa,d as Va}from"./index-DWbWwEOp.js";const mr={}.hasOwnProperty;function qa(e,t){const n=t||{};function i(r,...s){let o=i.invalid;const l=i.handlers;if(r&&mr.call(r,e)){const a=String(r[e]);o=mr.call(l,a)?l[a]:i.unknown}if(o)return o.call(this,r,...s)}return i.handlers=n.handlers||{},i.invalid=n.invalid,i.unknown=n.unknown,i}const Ys="diffs-container";(()=>{try{return!1}catch{return!1}})();const Ka=/(?=^From [a-f0-9]+ .+$)/m,Qs=/(?=^diff --git)/gm,Xa=new RegExp("(?<=\\n)"),Ya=/^(---|\+\+\+)\s+([^\t\r\n]+)/,Qa=/^(---|\+\+\+)\s+[ab]\/([^\t\r\n]+)/,Za=/^diff --git (?:"a\/(.+?)"|a\/(.+?)) (?:"b\/(.+?)"|b\/(.+?))$/,Ja=/^index ([0-9a-f]+)\.\.([0-9a-f]+)(?: (\d+))?$/i,Zs="header-prefix",Js="header-filename-suffix",eo="header-metadata",tr="header-custom",le={dark:"pierre-dark",light:"pierre-light"},el="data-theme-css",tl="data-unsafe-css",nl="data-diffs-scrollbar-measure",to="--diffs-scrollbar-gutter-measured",il=1e5,rl={hunkLineCount:50,lineHeight:20,diffHeaderHeight:44,spacing:8},sl=Object.freeze({fromStart:0,fromEnd:0}),br={startingLine:0,totalLines:1/0,bufferBefore:0,bufferAfter:0},ol={startingLine:0,totalLines:0,bufferBefore:0,bufferAfter:0},gt=new Set;let mt=null;function no(e){gt.add(e),mt??=requestAnimationFrame(io)}function Ci(e){gt.delete(e)&&gt.size===0&&mt!=null&&(cancelAnimationFrame(mt),mt=null)}function io(e){const t=new Set(gt);gt.clear();for(const n of t)try{n(e)}catch(i){console.error(i)}gt.size>0?mt=requestAnimationFrame(io):mt=null}function Si(e,t,n){if(e===t||e==null||t==null)return e===t;const i=new Set(n),r=Object.keys(e),s=new Set(Object.keys(t));for(const o of r)if(s.delete(o),!i.has(o)&&(!(o in t)||e[o]!==t[o]))return!1;for(const o of Array.from(s))if(!i.has(o))return!1;return!0}function nr(e,t){return e==null||t==null||typeof e=="string"||typeof t=="string"?e===t:e.dark===t.dark&&e.light===t.light}function ro(e,t){const n=e?.theme??le,i=t?.theme??le,r=vr(e),s=vr(t);return nr(n,i)&&Si(e,t,["theme","parseDiffOptions"])&&Si(r,s)}function vr(e){if(e!=null&&"parseDiffOptions"in e)return e.parseDiffOptions}function wi(e,t){return e?.start===t?.start&&e?.end===t?.end&&e?.side===t?.side&&e?.endSide===t?.endSide}function Pe(e){let t=e.length;return e.charCodeAt(t-1)===10&&(t--,e.charCodeAt(t-1)===13&&t--),e.slice(0,t)}const al=new TextEncoder,ll=new TextDecoder("utf-8",{ignoreBOM:!0}),dl=/[\uD800-\uDFFF]/,xi=1024;let ft=new Uint8Array(xi);function so(){ft.length!==xi&&(ft=new Uint8Array(xi))}function W(e){if(e.length===0)return e;if(dl.test(e))return JSON.parse(JSON.stringify(e));const t=e.length*3;ft.length<t&&(ft=new Uint8Array(t));const{written:n}=al.encodeInto(e,ft);return ll.decode(ft.subarray(0,n))}function Se(e,t){return e-(t===0?0:1)}function ie(e,t){return Se(e,t)+t}const cl=4096,ul=.5;function hl(e){for(const t of e.hunks){for(let n=0;n<t.hunkContent.length;n++){const i=t.hunkContent[n];if(i.type!=="change")continue;const r=pl(e,i);r!=null&&(t.hunkContent.splice(n,1,...r),n+=r.length-1)}fl(t,e)}}function fl(e,t){const{hunkContent:n}=e;for(let i=1;i<n.length;i++){const r=n[i],s=n[i-1];if(r.type!=="change"||r.additions>0&&r.deletions>0||s.type!=="context")continue;const o=r.additions>0,l=o?t.additionLines:t.deletionLines,a=o?r.additionLineIndex:r.deletionLineIndex,d=o?r.additions:r.deletions,c=l[a]??"";if(c.trim()!=="")continue;let u=!0;for(let v=1;v<d;v++)if(l[a+v]!==c){u=!1;break}if(!u)continue;let h=0;for(;h<s.lines&&t.additionLines[s.additionLineIndex+s.lines-1-h]===c;)h++;if(h===0||i===1&&h===s.lines)continue;r.additionLineIndex-=h,r.deletionLineIndex-=h;const f=r.additionLineIndex+r.additions,p=r.deletionLineIndex+r.deletions,g=n[i+1];g?.type==="context"?(g.lines+=h,g.additionLineIndex=f,g.deletionLineIndex=p):n.splice(i+1,0,{type:"context",lines:h,additionLineIndex:f,deletionLineIndex:p}),s.lines-=h,s.lines===0&&(n.splice(i-1,1),i--)}}function pl(e,t){const{deletions:n,additions:i,deletionLineIndex:r,additionLineIndex:s}=t,o=Math.min(n,i),l=Math.abs(i-n);if(o===0||l===0||o*(l+1)>cl)return null;const a=[];for(let g=0;g<n;g++)a.push(yr(e.deletionLines[r+g]??""));const d=[];for(let g=0;g<i;g++)d.push(yr(e.additionLines[s+g]??""));const c=i>n;let u=0,h=-1;for(let g=0;g<=l;g++){let v=0;for(let m=0;m<o;m++)v+=ml(a[m+(c?0:g)],d[m+(c?g:0)]);g===0?h=v+o*ul:v>h&&(h=v,u=g)}if(u===0)return null;const f=[],p=(g,v,m,b)=>{(g>0||v>0)&&f.push({type:"change",deletions:g,additions:v,deletionLineIndex:m,additionLineIndex:b})};return c?(p(0,u,r,s),p(o,o,r,s+u),p(0,i-o-u,r+o,s+u+o)):(p(u,0,r,s),p(o,o,r+u,s),p(n-o-u,0,r+u+o,s+o)),f}const gl=/\s+/g;function yr(e){return e.replace(gl,"")}function ml(e,t){if(e===t)return 1;const n=Math.max(e.length,t.length),i=Math.min(e.length,t.length);if(i===0)return 0;let r=0;for(;r<i&&e[r]===t[r];)r++;let s=0;for(;s<i-r&&e[e.length-1-s]===t[t.length-1-s];)s++;return(r+s)/n}function bl(e,t,n){try{return vl(e,t,n)}finally{so()}}function vl(e,t,n=!1){const i=_l(e),r=i?wl(e):xl(e);let s;const o=[];for(const l of r){if(i&&!Qs.test(l)){if(s==null)s=W(l);else{if(n)throw Error("parsePatchContent: unknown file blob");console.error("parsePatchContent: unknown file blob:",l)}continue}else if(!i&&!kl(l)){if(s==null)s=W(l);else{if(n)throw Error("parsePatchContent: unknown file blob");console.error("parsePatchContent: unknown file blob:",l)}continue}const a=oo(l,{cacheKey:void 0,isGitDiff:i,throwOnError:n});a!=null&&o.push(a)}return{patchMetadata:s,files:o}}function yl(e,t){try{return oo(e,t)}finally{so()}}function oo(e,{cacheKey:t,isGitDiff:n=Qs.test(e),oldFile:i,newFile:r,throwOnError:s=!1}={}){let o=0;const l=uo(e,"@@ ");let a;const d=i==null||r==null;let c=0,u=0;for(const h of l){const f=ao(h),p=f[0];if(p==null){if(s)throw Error("parsePatchContent: invalid hunk");console.error("parsePatchContent: invalid hunk",h);continue}const g=co(p);let v=0,m=0;if(g==null||a==null){if(a!=null){if(s)throw Error("parsePatchContent: Invalid hunk");console.error("parsePatchContent: Invalid hunk",h);continue}a={name:"",type:"change",hunks:[],splitLineCount:0,unifiedLineCount:0,isPartial:d,additionLines:!d&&i!=null&&r!=null?Cr(r.contents):[],deletionLines:!d&&i!=null&&r!=null?Cr(i.contents):[],cacheKey:xr(t)},a.additionLines.length===1&&r?.contents===""&&(a.additionLines.length=0),a.deletionLines.length===1&&i?.contents===""&&(a.deletionLines.length=0);for(const k of f){if(k.startsWith("diff --git")){const F=k.trim().match(Za),L=F?.[1]??F?.[2],A=F?.[3]??F?.[4];if(L==null||A==null){if(s)throw Error("parsePatchContent: invalid git diff header");console.error("parsePatchContent: invalid git diff header",k);continue}a.name=W(A.trim()),L!==A&&(a.prevName=W(L.trim()));continue}const _=k.startsWith("---")||k.startsWith("+++")?k.match(n?Qa:Ya):null;if(_!=null){const[,F,L]=_;if(F==="---"&&L!=="/dev/null"){const A=W(L.trim());a.prevName=A,a.name=A}else F==="+++"&&L!=="/dev/null"&&(a.name=W(L.trim()))}else if(n){if(k.startsWith("new mode ")&&(a.mode=W(k.slice(8).trim())),k.startsWith("old mode ")&&(a.prevMode=W(k.slice(8).trim())),k.startsWith("new file mode")&&(a.type="new",a.mode=W(k.slice(13).trim())),k.startsWith("deleted file mode")&&(a.type="deleted",a.mode=W(k.slice(17).trim())),k.startsWith("similarity index")&&(k.startsWith("similarity index 100%")?a.type="rename-pure":a.type="rename-changed"),k.startsWith("index ")){const[,F,L,A]=k.trim().match(Ja)??[];F!=null&&(a.prevObjectId=W(F)),L!=null&&(a.newObjectId=W(L)),A!=null&&(a.mode=W(A))}k.startsWith("rename from ")&&(a.prevName=W(k.slice(12).trim())),k.startsWith("rename to ")&&(a.name=W(k.slice(10).trim()))}}continue}let b,y;for(;f.length>0&&(f[f.length-1]===`
3
3
  `||f[f.length-1]==="\r"||f[f.length-1]===`\r
4
4
  `||f[f.length-1]==="");)f.pop();const{additionStart:S,deletionStart:C}=g;c=d?c:C-1,u=d?u:S-1;const w={collapsedBefore:0,splitLineCount:0,splitLineStart:0,unifiedLineCount:0,unifiedLineStart:0,additionCount:g.additionCount,additionStart:S,additionLines:v,deletionCount:g.deletionCount,deletionStart:C,deletionLines:m,deletionLineIndex:c,additionLineIndex:u,hunkContent:[],hunkContext:xr(g.hunkContext),hunkSpecs:W(p),noEOFCRAdditions:!1,noEOFCRDeletions:!1};let x=0,E=0;for(let k=1;k<f.length;k++){const _=f[k];if(x>=w.additionCount&&E>=w.deletionCount&&!_.startsWith("\\")){if(s&&Ll(_)&&!El(_))throw Error("parsePatchContent: hunk has more lines than expected");break}const F=_[0];if(F!=="+"&&F!=="-"&&F!==" "&&F!=="\\"){if(s)throw Error("parsePatchContent: invalid hunk line");console.error(`parseLineType: Invalid firstChar: "${F}", full line: "${_}"`),console.error("processFile: invalid rawLine:",_);continue}const L=Rl(F);if(L==="addition"){if(s&&x>=w.additionCount)throw Error("parsePatchContent: hunk has too many addition lines");const A=jn(_);(b==null||b.type!=="change")&&(b=Wn("change",c,u),w.hunkContent.push(b)),u++,x++,d&&a.additionLines.push(A),b.additions++,v++,y="addition"}else if(L==="deletion"){if(s&&E>=w.deletionCount)throw Error("parsePatchContent: hunk has too many deletion lines");const A=jn(_);(b==null||b.type!=="change")&&(b=Wn("change",c,u),w.hunkContent.push(b)),c++,E++,d&&a.deletionLines.push(A),b.deletions++,m++,y="deletion"}else if(L==="context"){if(s&&(E>=w.deletionCount||x>=w.additionCount))throw Error("parsePatchContent: hunk has too many context lines");const A=jn(_);(b==null||b.type!=="context")&&(b=Wn("context",c,u),w.hunkContent.push(b)),u++,c++,x++,E++,d&&(a.deletionLines.push(A),a.additionLines.push(A)),b.lines++,y="context"}else if(L==="metadata"&&b!=null){if(b.type==="context"?(w.noEOFCRAdditions=!0,w.noEOFCRDeletions=!0):y==="deletion"?w.noEOFCRDeletions=!0:y==="addition"&&(w.noEOFCRAdditions=!0),d&&(y==="addition"||y==="context")){const A=a.additionLines.length-1;A>=0&&(a.additionLines[A]=Pe(a.additionLines[A]))}if(d&&(y==="deletion"||y==="context")){const A=a.deletionLines.length-1;A>=0&&(a.deletionLines[A]=Pe(a.deletionLines[A]))}}}if(s&&(x!==w.additionCount||E!==w.deletionCount))throw Error("parsePatchContent: hunk line count mismatch");w.additionLines=v,w.deletionLines=m,w.collapsedBefore=Math.max(Se(w.additionStart,w.additionCount)-o,0),a.hunks.push(w),o=ie(w.additionStart,w.additionCount);for(const k of w.hunkContent)k.type==="context"?(w.splitLineCount+=k.lines,w.unifiedLineCount+=k.lines):(w.splitLineCount+=Math.max(k.additions,k.deletions),w.unifiedLineCount+=k.deletions+k.additions);w.splitLineStart=a.splitLineCount+w.collapsedBefore,w.unifiedLineStart=a.unifiedLineCount+w.collapsedBefore,a.splitLineCount+=w.collapsedBefore+w.splitLineCount,a.unifiedLineCount+=w.collapsedBefore+w.unifiedLineCount}if(a!=null){if(s&&d&&!n&&a.hunks.length===0)throw Error("parsePatchContent: unified file has no hunks");if(a.hunks.length>0&&!d&&a.additionLines.length>0&&a.deletionLines.length>0){const h=a.hunks[a.hunks.length-1],f=ie(h.additionStart,h.additionCount),p=a.additionLines.length,g=Math.max(p-f,0);a.splitLineCount+=g,a.unifiedLineCount+=g}return n||(a.prevName!=null&&a.name!==a.prevName?a.hunks.length>0?a.type="rename-changed":a.type="rename-pure":(i==null||i.contents==="")&&r!=null&&r.contents!==""?a.type="new":i!=null&&i.contents!==""&&(r==null||r.contents==="")&&(a.type="deleted")),a.type!=="rename-pure"&&a.type!=="rename-changed"&&(a.prevName=void 0),hl(a),a}}function Cl(e,t,n=!1){const i=[],r=Sl(e)?e.split(Ka):[e];for(const s of r)try{i.push(bl(s,t!=null?`${t}-${i.length}`:void 0,n))}catch(o){if(n)throw o;console.error(o)}return i}function Sl(e){return e.startsWith("From ")||e.includes(`
5
5
  From `)}function Cr(e){const t=ao(e);for(let n=0;n<t.length;n++)t[n]=W(t[n]);return t}function ao(e){if(e.length===0)return[""];const t=[];let n=0;for(;;){const i=e.indexOf(`
@@ -0,0 +1 @@
1
+ @font-face{font-family:Conductor Seti;src:url(data:font/woff;base64,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) format("woff");font-display:block;font-style:normal;font-weight:400}.seti-file-icon{font-family:Conductor Seti,sans-serif;font-size:18px;font-style:normal;font-variant:normal;font-weight:400;line-height:1;text-transform:none;-webkit-font-smoothing:antialiased}@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-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-outline-style:solid;--tw-scale-x:1;--tw-scale-y:1;--tw-scale-z:1}}}@layer theme{:root,:host{--font-sans:ui-sans-serif, system-ui, -apple-system, "SF Pro Text", "Segoe UI", Roboto, sans-serif;--font-mono:ui-monospace, "SF Mono", "JetBrains Mono", "Fira Code", Menlo, monospace;--color-black:#000;--color-white:#fff;--spacing:.25rem;--container-xs:20rem;--container-sm:24rem;--container-md:28rem;--container-xl:36rem;--text-xs:.75rem;--text-xs--line-height:calc(1 / .75);--text-sm:.875rem;--text-sm--line-height:calc(1.25 / .875);--text-base:1rem;--text-base--line-height: 1.5 ;--text-lg:1.125rem;--text-lg--line-height:calc(1.75 / 1.125);--text-xl:1.25rem;--text-xl--line-height:calc(1.75 / 1.25);--font-weight-normal:400;--font-weight-medium:500;--font-weight-semibold:600;--font-weight-bold:700;--tracking-tight:-.025em;--tracking-wide:.025em;--leading-tight:1.25;--leading-snug:1.375;--leading-relaxed:1.625;--radius-sm:.25rem;--radius-md:.375rem;--radius-lg:.5rem;--radius-xl:.75rem;--radius-2xl:1rem;--radius-3xl:1.5rem;--ease-out:cubic-bezier(0, 0, .2, 1);--animate-spin:spin 1s linear infinite;--animate-pulse:pulse 2s cubic-bezier(.4, 0, .6, 1) infinite;--blur-xl:24px;--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);--color-bg:light-dark(#f5f6f8,#0a0b0e);--color-surface:light-dark(#fff,#14161b);--color-surface-2:light-dark(#eceef2,#1b1e26);--color-border:light-dark(#d4d7de,#262a33);--color-border-soft:light-dark(#e2e4e9,#1e222a);--color-text:light-dark(#1c1e24,#e7e9ee);--color-muted:light-dark(#626773,#8b909d);--color-faint:light-dark(#9499a4,#5c616d);--color-accent:light-dark(#6757d9,#8b7dff);--color-accent-soft:light-dark(#ebe9ff,#2a2650);--color-on-solid:light-dark(#fff,#101116);--color-provider-openai:light-dark(#17191f,#fff);--color-voice:light-dark(#14799d,#54c8f1);--color-voice-soft:light-dark(#dcf3fb,#102d38);--color-working:light-dark(#a65f00,#f5a623);--color-idle:light-dark(#167a52,#3ecf8e);--color-done:light-dark(#286bc0,#5b9dff);--color-context-initial:light-dark(#4b505c,#d7dae0);--color-context-chat:light-dark(#a83fa3,#ed7ce2);--color-context-tools:light-dark(#087f73,#35cdb8);--color-cold-cache:light-dark(#90611f,#d6a85f);--color-pr-merged:light-dark(#7b38b5,#ac47ff);--color-pr-draft:light-dark(#6e7075,#a4a3a2);--color-pr-attention:light-dark(#916b00,#facc15);--color-pr-mergeable:light-dark(#167b42,#49de80);--color-add:light-dark(#14784f,#3ecf8e);--color-del:light-dark(#c73c3c,#ff6b6b)}}@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,ui-sans-serif, system-ui, 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;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{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}*{-webkit-tap-highlight-color:transparent}html,body,#root{height:var(--app-height,100dvh)}html,body{overflow:hidden}@media(display-mode:standalone){html,body,#root{height:var(--app-height,100vh)}}html[data-standalone],html[data-standalone] body,html[data-standalone] #root{height:var(--app-height,100vh)}.app-height{height:var(--app-height,100dvh)}@media(display-mode:standalone){.app-height{height:var(--app-height,100vh)}}html[data-standalone] .app-height{height:var(--app-height,100vh)}@media(min-width:48rem){.app-height,html[data-standalone] .app-height{height:auto}}html{color-scheme:light dark;background:var(--color-bg)}html[data-theme=light]{color-scheme:light}html[data-theme=dark]{color-scheme:dark}body{background:var(--color-bg);color:var(--color-text);font-family:var(--font-sans);-webkit-font-smoothing:antialiased;overscroll-behavior:none;margin:0}button{font:inherit;color:inherit;cursor:pointer}::-webkit-scrollbar{width:0;height:0}}@layer components{.card{align-items:center;gap:calc(var(--spacing) * 3);border-radius:var(--radius-2xl);border-style:var(--tw-border-style);border-width:1px;border-color:var(--color-border);background-color:var(--color-surface);padding-inline:calc(var(--spacing) * 4);padding-block:calc(var(--spacing) * 3.5);text-align:left;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));display:flex}.card:active{background-color:var(--color-surface-2);scale:.985}.pill{padding-inline:calc(var(--spacing) * 3.5);padding-block:calc(var(--spacing) * 1.5);font-size:var(--text-sm);line-height:var(--tw-leading,var(--text-sm--line-height));--tw-font-weight:var(--font-weight-medium);font-weight:var(--font-weight-medium);color:var(--color-muted);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));border-radius:3.40282e38px}.pill-active{background-color:var(--color-surface-2);color:var(--color-text)}.ctl{padding-inline:calc(var(--spacing) * 2);padding-block:var(--spacing);--tw-font-weight:var(--font-weight-medium);font-size:13px;font-weight:var(--font-weight-medium);color:var(--color-muted);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));border-radius:3.40282e38px}.ctl-on{background-color:var(--color-surface-2);color:var(--color-text)}.ctl-staged{background-color:var(--color-accent-soft);color:var(--color-accent)}.dot{width:calc(var(--spacing) * 2.5);height:calc(var(--spacing) * 2.5);background-color:var(--color-faint);border-radius:3.40282e38px;flex-shrink:0}.dot-spinner{width:calc(var(--spacing) * 3.5);height:calc(var(--spacing) * 3.5);animation:var(--animate-spin);border-style:var(--tw-border-style);--spin-color:var(--color-working);border-width:2px;border-color:var(--spin-color);border-radius:3.40282e38px;flex-shrink:0}@supports (color:color-mix(in lab,red,red)){.dot-spinner{border-color:color-mix(in srgb,var(--spin-color) 30%,transparent)}}.dot-spinner{border-top-color:var(--spin-color);border-right-color:var(--spin-color)}.dot-error{width:calc(var(--spacing) * 3.5);height:calc(var(--spacing) * 3.5);border-style:var(--tw-border-style);border-width:2px;border-color:var(--color-del);color:var(--color-del);border-radius:3.40282e38px;flex-shrink:0;justify-content:center;align-items:center;display:flex}.dot-idle{background:var(--color-idle)}.dot-done{background:var(--color-done)}.typing-dot{width:calc(var(--spacing) * 1.5);height:calc(var(--spacing) * 1.5);background-color:var(--color-muted);border-radius:3.40282e38px;animation:1.2s ease-in-out infinite typing}.typing-dot:nth-child(2){animation-delay:.15s}.typing-dot:nth-child(3){animation-delay:.3s}.md>:first-child{margin-top:0}.md>:last-child{margin-bottom:0}.md p{margin:.5em 0}.md h1,.md h2,.md h3,.md h4,.md h5,.md h6{margin:.9em 0 .4em;font-weight:600;line-height:1.3}.md h1{font-size:1.6em}.md h2{font-size:1.4em}.md h3{font-size:1.2em}.md h4{font-size:1.1em}.md ul,.md ol{margin:.5em 0;padding-left:1.4em}.md ul{list-style:outside}.md ol{list-style:decimal}.md li{margin:.3em 0}.md li>ul,.md li>ol{margin:.2em 0}.md code{background:light-dark(#eceef2cc,#1b1e26cc);border-radius:.3rem}@supports (color:color-mix(in lab,red,red)){.md code{background:color-mix(in srgb,var(--color-surface-2) 80%,transparent)}}.md code{font-family:var(--font-mono);padding:.1em .35em;font-size:.85em}.md pre{border:1px solid var(--color-border-soft);background:var(--color-bg);border-radius:.6rem;margin:.5em 0;padding:.6em .75em;overflow-x:auto}.md pre code{background:0 0;padding:0;font-size:12px;line-height:1.5}.md a{color:var(--color-accent);text-underline-offset:2px;text-decoration:underline}.md blockquote{border-left:2px solid var(--color-border);color:var(--color-muted);margin:.5em 0;padding-left:.75em}.md hr{border:0;border-top:1px solid var(--color-border-soft);margin:1.25em 0}.md img{border-radius:.6rem;max-width:100%;height:auto;margin:.5em 0;display:block}.md table{border-collapse:collapse;max-width:100%;margin:.5em 0;font-size:.9em;display:block;overflow-x:auto}.md th,.md td{border:1px solid var(--color-border);text-align:left;padding:.3em .6em}.md th{background:var(--color-surface-2);font-weight:600}.md strong{font-weight:600}.md input[type=checkbox]{margin-right:.4em}.hljs-comment,.hljs-quote{color:var(--color-faint);font-style:italic}.hljs-keyword,.hljs-literal,.hljs-type,.hljs-built_in,.hljs-selector-tag,.hljs-doctag,.hljs-meta .hljs-keyword{color:var(--color-accent)}.hljs-string,.hljs-regexp,.hljs-char.escape_,.hljs-addition,.hljs-meta .hljs-string{color:var(--color-add)}.hljs-number,.hljs-symbol,.hljs-bullet,.hljs-link,.hljs-meta,.hljs-template-variable{color:var(--color-working)}.hljs-title,.hljs-title.class_,.hljs-title.function_,.hljs-name,.hljs-section,.hljs-selector-id,.hljs-selector-class{color:var(--color-done)}.hljs-attr,.hljs-attribute,.hljs-property,.hljs-variable,.hljs-params,.hljs-subst,.hljs-template-tag{color:var(--color-text)}.hljs-deletion{color:var(--color-del)}.hljs-emphasis{font-style:italic}.hljs-strong{font-weight:600}}@layer utilities{.pointer-events-auto{pointer-events:auto}.pointer-events-none{pointer-events:none}.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}.sticky{position:sticky}.inset-0{inset:0}.inset-1{inset:var(--spacing)}.inset-x-0{inset-inline:0}.inset-y-0{inset-block:0}.-top-0\.5{top:calc(var(--spacing) * -.5)}.top-0{top:0}.top-0\.5{top:calc(var(--spacing) * .5)}.top-1{top:var(--spacing)}.top-1\.5{top:calc(var(--spacing) * 1.5)}.top-1\/2{top:50%}.top-full{top:100%}.-right-0\.5{right:calc(var(--spacing) * -.5)}.right-0{right:0}.right-1{right:var(--spacing)}.right-1\.5{right:calc(var(--spacing) * 1.5)}.right-2{right:calc(var(--spacing) * 2)}.right-3{right:calc(var(--spacing) * 3)}.-bottom-0\.5{bottom:calc(var(--spacing) * -.5)}.bottom-0{bottom:0}.bottom-full{bottom:100%}.-left-0\.5{left:calc(var(--spacing) * -.5)}.left-0{left:0}.left-0\.5{left:calc(var(--spacing) * .5)}.left-3{left:calc(var(--spacing) * 3)}.z-10{z-index:10}.z-20{z-index:20}.z-30{z-index:30}.z-40{z-index:40}.z-50{z-index:50}.z-\[1\]{z-index:1}.z-\[60\]{z-index:60}.m-0{margin:0}.mx-3{margin-inline:calc(var(--spacing) * 3)}.mx-auto{margin-inline:auto}.my-1\.5{margin-block:calc(var(--spacing) * 1.5)}.my-2{margin-block:calc(var(--spacing) * 2)}.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-3{margin-top:calc(var(--spacing) * 3)}.mt-4{margin-top:calc(var(--spacing) * 4)}.mt-6{margin-top:calc(var(--spacing) * 6)}.mt-7{margin-top:calc(var(--spacing) * 7)}.-mr-0\.5{margin-right:calc(var(--spacing) * -.5)}.-mr-1{margin-right:calc(var(--spacing) * -1)}.-mr-2{margin-right:calc(var(--spacing) * -2)}.mr-1{margin-right:var(--spacing)}.mr-1\.5{margin-right:calc(var(--spacing) * 1.5)}.mr-auto{margin-right:auto}.mb-0\.5{margin-bottom:calc(var(--spacing) * .5)}.mb-1{margin-bottom:var(--spacing)}.mb-1\.5{margin-bottom:calc(var(--spacing) * 1.5)}.mb-2{margin-bottom:calc(var(--spacing) * 2)}.mb-3{margin-bottom:calc(var(--spacing) * 3)}.mb-5{margin-bottom:calc(var(--spacing) * 5)}.-ml-1{margin-left:calc(var(--spacing) * -1)}.ml-1{margin-left:var(--spacing)}.ml-1\.5{margin-left:calc(var(--spacing) * 1.5)}.ml-auto{margin-left:auto}.line-clamp-2{-webkit-line-clamp:2;-webkit-box-orient:vertical;display:-webkit-box;overflow:hidden}.line-clamp-4{-webkit-line-clamp:4;-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-block{display:inline-block}.inline-flex{display:inline-flex}.table{display:table}.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-4{width:calc(var(--spacing) * 4);height:calc(var(--spacing) * 4)}.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-11{width:calc(var(--spacing) * 11);height:calc(var(--spacing) * 11)}.size-12{width:calc(var(--spacing) * 12);height:calc(var(--spacing) * 12)}.size-16{width:calc(var(--spacing) * 16);height:calc(var(--spacing) * 16)}.size-20{width:calc(var(--spacing) * 20);height:calc(var(--spacing) * 20)}.size-60{width:calc(var(--spacing) * 60);height:calc(var(--spacing) * 60)}.size-\[15px\]{width:15px;height:15px}.size-\[18px\]{width:18px;height:18px}.size-\[30px\]{width:30px;height:30px}.size-full{width:100%;height:100%}.h-1\.5{height:calc(var(--spacing) * 1.5)}.h-2\.5{height:calc(var(--spacing) * 2.5)}.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-11{height:calc(var(--spacing) * 11)}.h-12{height:calc(var(--spacing) * 12)}.h-\[15px\]{height:15px}.h-\[30px\]{height:30px}.h-full{height:100%}.max-h-40{max-height:calc(var(--spacing) * 40)}.max-h-48{max-height:calc(var(--spacing) * 48)}.max-h-64{max-height:calc(var(--spacing) * 64)}.max-h-72{max-height:calc(var(--spacing) * 72)}.max-h-\[70\%\]{max-height:70%}.max-h-\[85dvh\]{max-height:85dvh}.max-h-\[calc\(100dvh-4rem\)\]{max-height:calc(100dvh - 4rem)}.max-h-full{max-height:100%}.min-h-0{min-height:0}.min-h-4{min-height:calc(var(--spacing) * 4)}.min-h-8{min-height:calc(var(--spacing) * 8)}.min-h-9{min-height:calc(var(--spacing) * 9)}.min-h-14{min-height:calc(var(--spacing) * 14)}.min-h-48{min-height:calc(var(--spacing) * 48)}.w-0\.5{width:calc(var(--spacing) * .5)}.w-1{width:var(--spacing)}.w-5{width:calc(var(--spacing) * 5)}.w-6{width:calc(var(--spacing) * 6)}.w-9{width:calc(var(--spacing) * 9)}.w-11{width:calc(var(--spacing) * 11)}.w-12{width:calc(var(--spacing) * 12)}.w-60{width:calc(var(--spacing) * 60)}.w-64{width:calc(var(--spacing) * 64)}.w-\[6\.5rem\]{width:6.5rem}.w-\[85\%\]{width:85%}.w-full{width:100%}.max-w-20{max-width:calc(var(--spacing) * 20)}.max-w-28{max-width:calc(var(--spacing) * 28)}.max-w-36{max-width:calc(var(--spacing) * 36)}.max-w-40{max-width:calc(var(--spacing) * 40)}.max-w-56{max-width:calc(var(--spacing) * 56)}.max-w-64{max-width:calc(var(--spacing) * 64)}.max-w-72{max-width:calc(var(--spacing) * 72)}.max-w-80{max-width:calc(var(--spacing) * 80)}.max-w-\[70vw\]{max-width:70vw}.max-w-\[85\%\]{max-width:85%}.max-w-\[85vw\]{max-width:85vw}.max-w-\[88\%\]{max-width:88%}.max-w-\[92\%\]{max-width:92%}.max-w-full{max-width:100%}.max-w-md{max-width:var(--container-md)}.max-w-sm{max-width:var(--container-sm)}.max-w-xl{max-width:var(--container-xl)}.max-w-xs{max-width:var(--container-xs)}.min-w-0{min-width:0}.min-w-5{min-width:calc(var(--spacing) * 5)}.min-w-8{min-width:calc(var(--spacing) * 8)}.min-w-9{min-width:calc(var(--spacing) * 9)}.min-w-10{min-width:calc(var(--spacing) * 10)}.min-w-28{min-width:calc(var(--spacing) * 28)}.min-w-44{min-width:calc(var(--spacing) * 44)}.min-w-52{min-width:calc(var(--spacing) * 52)}.min-w-max{min-width:max-content}.flex-1{flex:1}.shrink-0{flex-shrink:0}.grow{flex-grow:1}.-translate-x-full{--tw-translate-x:-100%;translate:var(--tw-translate-x) var(--tw-translate-y)}.translate-x-0{--tw-translate-x:0;translate:var(--tw-translate-x) var(--tw-translate-y)}.translate-x-5{--tw-translate-x:calc(var(--spacing) * 5);translate:var(--tw-translate-x) var(--tw-translate-y)}.-translate-y-1\/2{--tw-translate-y: -50% ;translate:var(--tw-translate-x) var(--tw-translate-y)}.translate-y-0{--tw-translate-y:0;translate:var(--tw-translate-x) var(--tw-translate-y)}.translate-y-3{--tw-translate-y:calc(var(--spacing) * 3);translate:var(--tw-translate-x) var(--tw-translate-y)}.-rotate-90{rotate:-90deg}.rotate-90{rotate:90deg}.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-pulse{animation:var(--animate-pulse)}.animate-spin{animation:var(--animate-spin)}.cursor-default{cursor:default}.cursor-pointer{cursor:pointer}.resize{resize:both}.resize-none{resize:none}.resize-y{resize:vertical}.scrollbar-thin{scrollbar-width:thin}.list-none{list-style-type:none}.appearance-none{appearance:none}.grid-cols-2{grid-template-columns:repeat(2,minmax(0,1fr))}.grid-cols-\[auto_1fr\]{grid-template-columns:auto 1fr}.grid-cols-\[minmax\(0\,1fr\)_auto_auto\]{grid-template-columns:minmax(0,1fr) auto auto}.flex-col{flex-direction:column}.flex-wrap{flex-wrap:wrap}.place-items-center{place-items:center}.items-baseline{align-items:baseline}.items-center{align-items:center}.items-end{align-items:flex-end}.items-start{align-items:flex-start}.items-stretch{align-items:stretch}.justify-between{justify-content:space-between}.justify-center{justify-content:center}.justify-end{justify-content:flex-end}.justify-start{justify-content:flex-start}.gap-0{gap:0}.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-5{gap:calc(var(--spacing) * 5)}.gap-\[1\.5px\]{gap:1.5px}:where(.space-y-1\.25>:not(:last-child)){--tw-space-y-reverse:0;margin-block-start:calc(calc(var(--spacing) * 1.25) * var(--tw-space-y-reverse));margin-block-end:calc(calc(var(--spacing) * 1.25) * 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-3>:not(:last-child)){--tw-space-y-reverse:0;margin-block-start:calc(calc(var(--spacing) * 3) * var(--tw-space-y-reverse));margin-block-end:calc(calc(var(--spacing) * 3) * 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)))}.gap-x-2{column-gap:calc(var(--spacing) * 2)}.gap-x-3{column-gap:calc(var(--spacing) * 3)}.gap-x-5{column-gap:calc(var(--spacing) * 5)}.gap-y-0\.5{row-gap:calc(var(--spacing) * .5)}.gap-y-1{row-gap:var(--spacing)}.gap-y-2\.5{row-gap:calc(var(--spacing) * 2.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-border-soft>:not(:last-child)){border-color:var(--color-border-soft)}.self-center{align-self:center}.self-start{align-self:flex-start}.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}.overscroll-contain{overscroll-behavior:contain}.rounded{border-radius:.25rem}.rounded-2xl{border-radius:var(--radius-2xl)}.rounded-3xl{border-radius:var(--radius-3xl)}.rounded-\[inherit\]{border-radius:inherit}.rounded-full{border-radius:3.40282e38px}.rounded-lg{border-radius:var(--radius-lg)}.rounded-md{border-radius:var(--radius-md)}.rounded-sm{border-radius:var(--radius-sm)}.rounded-xl{border-radius:var(--radius-xl)}.rounded-t-2xl{border-top-left-radius:var(--radius-2xl);border-top-right-radius:var(--radius-2xl)}.rounded-t-3xl{border-top-left-radius:var(--radius-3xl);border-top-right-radius:var(--radius-3xl)}.rounded-br-md{border-bottom-right-radius:var(--radius-md)}.rounded-bl-md{border-bottom-left-radius:var(--radius-md)}.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-x{border-inline-style:var(--tw-border-style);border-inline-width:1px}.border-t{border-top-style:var(--tw-border-style);border-top-width:1px}.border-r{border-right-style:var(--tw-border-style);border-right-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-accent{border-color:var(--color-accent)}.border-accent\/50{border-color:light-dark(#6757d980,#8b7dff80)}@supports (color:color-mix(in lab,red,red)){.border-accent\/50{border-color:color-mix(in oklab,var(--color-accent) 50%,transparent)}}.border-border{border-color:var(--color-border)}.border-border-soft{border-color:var(--color-border-soft)}.border-cold-cache\/20{border-color:light-dark(#90611f33,#d6a85f33)}@supports (color:color-mix(in lab,red,red)){.border-cold-cache\/20{border-color:color-mix(in oklab,var(--color-cold-cache) 20%,transparent)}}.border-del{border-color:var(--color-del)}.border-del\/30{border-color:light-dark(#c73c3c4d,#ff6b6b4d)}@supports (color:color-mix(in lab,red,red)){.border-del\/30{border-color:color-mix(in oklab,var(--color-del) 30%,transparent)}}.border-del\/40{border-color:light-dark(#c73c3c66,#ff6b6b66)}@supports (color:color-mix(in lab,red,red)){.border-del\/40{border-color:color-mix(in oklab,var(--color-del) 40%,transparent)}}.border-del\/50{border-color:light-dark(#c73c3c80,#ff6b6b80)}@supports (color:color-mix(in lab,red,red)){.border-del\/50{border-color:color-mix(in oklab,var(--color-del) 50%,transparent)}}.border-faint{border-color:var(--color-faint)}.border-pr-merged\/30{border-color:light-dark(#7b38b54d,#ac47ff4d)}@supports (color:color-mix(in lab,red,red)){.border-pr-merged\/30{border-color:color-mix(in oklab,var(--color-pr-merged) 30%,transparent)}}.border-voice\/25{border-color:light-dark(#14799d40,#54c8f140)}@supports (color:color-mix(in lab,red,red)){.border-voice\/25{border-color:color-mix(in oklab,var(--color-voice) 25%,transparent)}}.border-white\/80{border-color:#fffc}@supports (color:color-mix(in lab,red,red)){.border-white\/80{border-color:color-mix(in oklab,var(--color-white) 80%,transparent)}}.border-working\/30{border-color:light-dark(#a65f004d,#f5a6234d)}@supports (color:color-mix(in lab,red,red)){.border-working\/30{border-color:color-mix(in oklab,var(--color-working) 30%,transparent)}}.border-t-accent{border-top-color:var(--color-accent)}.border-t-text{border-top-color:var(--color-text)}.border-l-accent{border-left-color:var(--color-accent)}.bg-accent{background-color:var(--color-accent)}.bg-accent-soft{background-color:var(--color-accent-soft)}.bg-accent-soft\/90{background-color:light-dark(#ebe9ffe6,#2a2650e6)}@supports (color:color-mix(in lab,red,red)){.bg-accent-soft\/90{background-color:color-mix(in oklab,var(--color-accent-soft) 90%,transparent)}}.bg-accent\/10{background-color:light-dark(#6757d91a,#8b7dff1a)}@supports (color:color-mix(in lab,red,red)){.bg-accent\/10{background-color:color-mix(in oklab,var(--color-accent) 10%,transparent)}}.bg-accent\/25{background-color:light-dark(#6757d940,#8b7dff40)}@supports (color:color-mix(in lab,red,red)){.bg-accent\/25{background-color:color-mix(in oklab,var(--color-accent) 25%,transparent)}}.bg-add{background-color:var(--color-add)}.bg-add\/10{background-color:light-dark(#14784f1a,#3ecf8e1a)}@supports (color:color-mix(in lab,red,red)){.bg-add\/10{background-color:color-mix(in oklab,var(--color-add) 10%,transparent)}}.bg-bg{background-color:var(--color-bg)}.bg-bg\/80{background-color:light-dark(#f5f6f8cc,#0a0b0ecc)}@supports (color:color-mix(in lab,red,red)){.bg-bg\/80{background-color:color-mix(in oklab,var(--color-bg) 80%,transparent)}}.bg-bg\/90{background-color:light-dark(#f5f6f8e6,#0a0b0ee6)}@supports (color:color-mix(in lab,red,red)){.bg-bg\/90{background-color:color-mix(in oklab,var(--color-bg) 90%,transparent)}}.bg-black{background-color:var(--color-black)}.bg-black\/15{background-color:#00000026}@supports (color:color-mix(in lab,red,red)){.bg-black\/15{background-color:color-mix(in oklab,var(--color-black) 15%,transparent)}}.bg-black\/50{background-color:#00000080}@supports (color:color-mix(in lab,red,red)){.bg-black\/50{background-color:color-mix(in oklab,var(--color-black) 50%,transparent)}}.bg-black\/60{background-color:#0009}@supports (color:color-mix(in lab,red,red)){.bg-black\/60{background-color:color-mix(in oklab,var(--color-black) 60%,transparent)}}.bg-black\/65{background-color:#000000a6}@supports (color:color-mix(in lab,red,red)){.bg-black\/65{background-color:color-mix(in oklab,var(--color-black) 65%,transparent)}}.bg-black\/75{background-color:#000000bf}@supports (color:color-mix(in lab,red,red)){.bg-black\/75{background-color:color-mix(in oklab,var(--color-black) 75%,transparent)}}.bg-cold-cache\/8{background-color:light-dark(#90611f14,#d6a85f14)}@supports (color:color-mix(in lab,red,red)){.bg-cold-cache\/8{background-color:color-mix(in oklab,var(--color-cold-cache) 8%,transparent)}}.bg-cold-cache\/12{background-color:light-dark(#90611f1f,#d6a85f1f)}@supports (color:color-mix(in lab,red,red)){.bg-cold-cache\/12{background-color:color-mix(in oklab,var(--color-cold-cache) 12%,transparent)}}.bg-context-chat{background-color:var(--color-context-chat)}.bg-context-initial{background-color:var(--color-context-initial)}.bg-context-tools{background-color:var(--color-context-tools)}.bg-current{background-color:currentColor}.bg-del{background-color:var(--color-del)}.bg-del\/5{background-color:light-dark(#c73c3c0d,#ff6b6b0d)}@supports (color:color-mix(in lab,red,red)){.bg-del\/5{background-color:color-mix(in oklab,var(--color-del) 5%,transparent)}}.bg-del\/10{background-color:light-dark(#c73c3c1a,#ff6b6b1a)}@supports (color:color-mix(in lab,red,red)){.bg-del\/10{background-color:color-mix(in oklab,var(--color-del) 10%,transparent)}}.bg-del\/15{background-color:light-dark(#c73c3c26,#ff6b6b26)}@supports (color:color-mix(in lab,red,red)){.bg-del\/15{background-color:color-mix(in oklab,var(--color-del) 15%,transparent)}}.bg-inherit{background-color:inherit}.bg-pr-merged\/10{background-color:light-dark(#7b38b51a,#ac47ff1a)}@supports (color:color-mix(in lab,red,red)){.bg-pr-merged\/10{background-color:color-mix(in oklab,var(--color-pr-merged) 10%,transparent)}}.bg-pr-merged\/15{background-color:light-dark(#7b38b526,#ac47ff26)}@supports (color:color-mix(in lab,red,red)){.bg-pr-merged\/15{background-color:color-mix(in oklab,var(--color-pr-merged) 15%,transparent)}}.bg-surface{background-color:var(--color-surface)}.bg-surface-2{background-color:var(--color-surface-2)}.bg-surface-2\/60{background-color:light-dark(#eceef299,#1b1e2699)}@supports (color:color-mix(in lab,red,red)){.bg-surface-2\/60{background-color:color-mix(in oklab,var(--color-surface-2) 60%,transparent)}}.bg-surface\/40{background-color:light-dark(#fff6,#14161b66)}@supports (color:color-mix(in lab,red,red)){.bg-surface\/40{background-color:color-mix(in oklab,var(--color-surface) 40%,transparent)}}.bg-surface\/60{background-color:light-dark(#fff9,#14161b99)}@supports (color:color-mix(in lab,red,red)){.bg-surface\/60{background-color:color-mix(in oklab,var(--color-surface) 60%,transparent)}}.bg-surface\/70{background-color:light-dark(#ffffffb3,#14161bb3)}@supports (color:color-mix(in lab,red,red)){.bg-surface\/70{background-color:color-mix(in oklab,var(--color-surface) 70%,transparent)}}.bg-surface\/80{background-color:light-dark(#fffc,#14161bcc)}@supports (color:color-mix(in lab,red,red)){.bg-surface\/80{background-color:color-mix(in oklab,var(--color-surface) 80%,transparent)}}.bg-surface\/95{background-color:light-dark(#fffffff2,#14161bf2)}@supports (color:color-mix(in lab,red,red)){.bg-surface\/95{background-color:color-mix(in oklab,var(--color-surface) 95%,transparent)}}.bg-transparent{background-color:#0000}.bg-voice{background-color:var(--color-voice)}.bg-voice-soft{background-color:var(--color-voice-soft)}.bg-voice-soft\/60{background-color:light-dark(#dcf3fb99,#102d3899)}@supports (color:color-mix(in lab,red,red)){.bg-voice-soft\/60{background-color:color-mix(in oklab,var(--color-voice-soft) 60%,transparent)}}.bg-white{background-color:var(--color-white)}.bg-working{background-color:var(--color-working)}.bg-working\/5{background-color:light-dark(#a65f000d,#f5a6230d)}@supports (color:color-mix(in lab,red,red)){.bg-working\/5{background-color:color-mix(in oklab,var(--color-working) 5%,transparent)}}.bg-working\/10{background-color:light-dark(#a65f001a,#f5a6231a)}@supports (color:color-mix(in lab,red,red)){.bg-working\/10{background-color:color-mix(in oklab,var(--color-working) 10%,transparent)}}.stroke-accent{stroke:var(--color-accent)}.stroke-border{stroke:var(--color-border)}.stroke-context-chat{stroke:var(--color-context-chat)}.stroke-context-initial{stroke:var(--color-context-initial)}.stroke-context-tools{stroke:var(--color-context-tools)}.stroke-working{stroke:var(--color-working)}.object-contain{object-fit:contain}.object-cover{object-fit:cover}.p-0{padding:0}.p-0\.5{padding:calc(var(--spacing) * .5)}.p-1{padding:var(--spacing)}.p-1\.5{padding:calc(var(--spacing) * 1.5)}.p-2{padding:calc(var(--spacing) * 2)}.p-2\.5{padding:calc(var(--spacing) * 2.5)}.p-3{padding:calc(var(--spacing) * 3)}.p-3\.5{padding:calc(var(--spacing) * 3.5)}.p-4{padding:calc(var(--spacing) * 4)}.p-5{padding:calc(var(--spacing) * 5)}.p-6{padding:calc(var(--spacing) * 6)}.px-0\.5{padding-inline:calc(var(--spacing) * .5)}.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-3\.5{padding-inline:calc(var(--spacing) * 3.5)}.px-4{padding-inline:calc(var(--spacing) * 4)}.px-5{padding-inline:calc(var(--spacing) * 5)}.px-6{padding-inline:calc(var(--spacing) * 6)}.px-8{padding-inline:calc(var(--spacing) * 8)}.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-5{padding-block:calc(var(--spacing) * 5)}.py-7{padding-block:calc(var(--spacing) * 7)}.py-8{padding-block:calc(var(--spacing) * 8)}.py-10{padding-block:calc(var(--spacing) * 10)}.py-16{padding-block:calc(var(--spacing) * 16)}.py-px{padding-block:1px}.pt-0\.5{padding-top:calc(var(--spacing) * .5)}.pt-1\.5{padding-top:calc(var(--spacing) * 1.5)}.pt-2{padding-top:calc(var(--spacing) * 2)}.pt-2\.5{padding-top:calc(var(--spacing) * 2.5)}.pt-3{padding-top:calc(var(--spacing) * 3)}.pt-4{padding-top:calc(var(--spacing) * 4)}.pr-1{padding-right:var(--spacing)}.pr-2{padding-right:calc(var(--spacing) * 2)}.pr-3\.5{padding-right:calc(var(--spacing) * 3.5)}.pr-7{padding-right:calc(var(--spacing) * 7)}.pr-9{padding-right:calc(var(--spacing) * 9)}.pb-0\.5{padding-bottom:calc(var(--spacing) * .5)}.pb-1{padding-bottom:var(--spacing)}.pb-2{padding-bottom:calc(var(--spacing) * 2)}.pb-2\.5{padding-bottom:calc(var(--spacing) * 2.5)}.pb-3{padding-bottom:calc(var(--spacing) * 3)}.pl-2{padding-left:calc(var(--spacing) * 2)}.pl-2\.5{padding-left:calc(var(--spacing) * 2.5)}.pl-3{padding-left:calc(var(--spacing) * 3)}.pl-3\.5{padding-left:calc(var(--spacing) * 3.5)}.pl-4{padding-left:calc(var(--spacing) * 4)}.pl-8{padding-left:calc(var(--spacing) * 8)}.text-center{text-align:center}.text-left{text-align:left}.text-right{text-align:right}.align-baseline{vertical-align:baseline}.align-middle{vertical-align:middle}.font-mono{font-family:var(--font-mono)}.text-base{font-size:var(--text-base);line-height:var(--tw-leading,var(--text-base--line-height))}.text-lg{font-size:var(--text-lg);line-height:var(--tw-leading,var(--text-lg--line-height))}.text-sm{font-size:var(--text-sm);line-height:var(--tw-leading,var(--text-sm--line-height))}.text-xl{font-size:var(--text-xl);line-height:var(--tw-leading,var(--text-xl--line-height))}.text-xs{font-size:var(--text-xs);line-height:var(--tw-leading,var(--text-xs--line-height))}.text-\[0\.9em\]{font-size:.9em}.text-\[9px\]{font-size:9px}.text-\[10px\]{font-size:10px}.text-\[11\.5px\]{font-size:11.5px}.text-\[11px\]{font-size:11px}.text-\[12\.5px\]{font-size:12.5px}.text-\[12px\]{font-size:12px}.text-\[13\.5px\]{font-size:13.5px}.text-\[13px\]{font-size:13px}.text-\[14px\]{font-size:14px}.text-\[15px\]{font-size:15px}.leading-4{--tw-leading:calc(var(--spacing) * 4);line-height:calc(var(--spacing) * 4)}.leading-6{--tw-leading:calc(var(--spacing) * 6);line-height:calc(var(--spacing) * 6)}.leading-\[1\.5\]{--tw-leading:1.5;line-height:1.5}.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)}.leading-tight{--tw-leading:var(--leading-tight);line-height:var(--leading-tight)}.font-bold{--tw-font-weight:var(--font-weight-bold);font-weight:var(--font-weight-bold)}.font-medium{--tw-font-weight:var(--font-weight-medium);font-weight:var(--font-weight-medium)}.font-normal{--tw-font-weight:var(--font-weight-normal);font-weight:var(--font-weight-normal)}.font-semibold{--tw-font-weight:var(--font-weight-semibold);font-weight:var(--font-weight-semibold)}.tracking-tight{--tw-tracking:var(--tracking-tight);letter-spacing:var(--tracking-tight)}.tracking-wide{--tw-tracking:var(--tracking-wide);letter-spacing:var(--tracking-wide)}.\[overflow-wrap\:anywhere\]{overflow-wrap:anywhere}.break-words{overflow-wrap:break-word}.whitespace-nowrap{white-space:nowrap}.whitespace-pre{white-space:pre}.whitespace-pre-wrap{white-space:pre-wrap}.text-accent{color:var(--color-accent)}.text-add{color:var(--color-add)}.text-bg{color:var(--color-bg)}.text-black{color:var(--color-black)}.text-cold-cache{color:var(--color-cold-cache)}.text-del{color:var(--color-del)}.text-del\/80{color:light-dark(#c73c3ccc,#ff6b6bcc)}@supports (color:color-mix(in lab,red,red)){.text-del\/80{color:color-mix(in oklab,var(--color-del) 80%,transparent)}}.text-faint{color:var(--color-faint)}.text-muted{color:var(--color-muted)}.text-on-solid{color:var(--color-on-solid)}.text-pr-merged{color:var(--color-pr-merged)}.text-text{color:var(--color-text)}.text-voice{color:var(--color-voice)}.text-white{color:var(--color-white)}.text-working{color:var(--color-working)}.capitalize{text-transform:capitalize}.lowercase{text-transform:lowercase}.uppercase{text-transform:uppercase}.italic{font-style:italic}.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-dotted{text-decoration-style:dotted}.underline-offset-2{text-underline-offset:2px}.\[color-scheme\:dark\]{color-scheme:dark}.opacity-0{opacity:0}.opacity-20{opacity:.2}.opacity-40{opacity:.4}.opacity-50{opacity:.5}.opacity-60{opacity:.6}.opacity-100{opacity:1}.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-2xl{--tw-shadow:0 25px 50px -12px var(--tw-shadow-color,#00000040);box-shadow:var(--tw-inset-shadow),var(--tw-inset-ring-shadow),var(--tw-ring-offset-shadow),var(--tw-ring-shadow),var(--tw-shadow)}.shadow-\[0_0_0_100vmax_rgba\(0\,0\,0\,0\.5\)\]{--tw-shadow:0 0 0 100vmax var(--tw-shadow-color,#00000080);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)}.ring-2{--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)}.shadow-black\/40{--tw-shadow-color:#0006}@supports (color:color-mix(in lab,red,red)){.shadow-black\/40{--tw-shadow-color:color-mix(in oklab, color-mix(in oklab, var(--color-black) 40%, transparent) var(--tw-shadow-alpha), transparent)}}.shadow-black\/60{--tw-shadow-color:#0009}@supports (color:color-mix(in lab,red,red)){.shadow-black\/60{--tw-shadow-color:color-mix(in oklab, color-mix(in oklab, var(--color-black) 60%, transparent) var(--tw-shadow-alpha), transparent)}}.ring-surface{--tw-ring-color:var(--color-surface)}.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,)}.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-xl{--tw-backdrop-blur:blur(var(--blur-xl));-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-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}.ease-out{--tw-ease:var(--ease-out);transition-timing-function:var(--ease-out)}.outline-none{--tw-outline-style:none;outline-style:none}.select-none{-webkit-user-select:none;user-select:none}.\[--diffs-font-family\:var\(--font-mono\)\]{--diffs-font-family:var(--font-mono)}.\[--diffs-font-size\:11\.5px\]{--diffs-font-size:11.5px}.\[--diffs-line-height\:17\.25px\]{--diffs-line-height:17.25px}.group-open\/steps\:invisible:is(:where(.group\/steps):is([open],:popover-open,:open) *){visibility:hidden}.group-open\/steps\:rotate-90:is(:where(.group\/steps):is([open],:popover-open,:open) *),.group-open\/think\:rotate-90:is(:where(.group\/think):is([open],:popover-open,:open) *){rotate:90deg}.group-open\/tool\:invisible:is(:where(.group\/tool):is([open],:popover-open,:open) *){visibility:hidden}.group-open\/tool\:rotate-90:is(:where(.group\/tool):is([open],:popover-open,:open) *){rotate:90deg}.peer-focus-visible\:outline-2:is(:where(.peer):focus-visible~*){outline-style:var(--tw-outline-style);outline-width:2px}.peer-focus-visible\:outline-offset-2:is(:where(.peer):focus-visible~*){outline-offset:2px}.peer-focus-visible\:outline-accent:is(:where(.peer):focus-visible~*){outline-color:var(--color-accent)}.placeholder\:font-sans::placeholder{font-family:var(--font-sans)}.placeholder\:text-faint::placeholder{color:var(--color-faint)}@media(hover:hover){.hover\:bg-surface-2:hover{background-color:var(--color-surface-2)}.hover\:text-text:hover{color:var(--color-text)}.hover\:underline:hover{text-decoration-line:underline}}.focus\:border-accent\/50:focus{border-color:light-dark(#6757d980,#8b7dff80)}@supports (color:color-mix(in lab,red,red)){.focus\:border-accent\/50:focus{border-color:color-mix(in oklab,var(--color-accent) 50%,transparent)}}.focus\:border-accent\/60:focus{border-color:light-dark(#6757d999,#8b7dff99)}@supports (color:color-mix(in lab,red,red)){.focus\:border-accent\/60:focus{border-color:color-mix(in oklab,var(--color-accent) 60%,transparent)}}.focus\:border-voice\/60:focus{border-color:light-dark(#14799d99,#54c8f199)}@supports (color:color-mix(in lab,red,red)){.focus\:border-voice\/60:focus{border-color:color-mix(in oklab,var(--color-voice) 60%,transparent)}}.focus\:outline-none:focus{--tw-outline-style:none;outline-style:none}.focus-visible\:outline-2:focus-visible{outline-style:var(--tw-outline-style);outline-width:2px}.focus-visible\:-outline-offset-2:focus-visible{outline-offset:-2px}.focus-visible\:outline-accent:focus-visible{outline-color:var(--color-accent)}.active\:scale-95:active{--tw-scale-x:95%;--tw-scale-y:95%;--tw-scale-z:95%;scale:var(--tw-scale-x) var(--tw-scale-y)}.active\:scale-\[0\.97\]:active{scale:.97}.active\:scale-\[0\.985\]:active{scale:.985}.active\:bg-bg\/70:active{background-color:light-dark(#f5f6f8b3,#0a0b0eb3)}@supports (color:color-mix(in lab,red,red)){.active\:bg-bg\/70:active{background-color:color-mix(in oklab,var(--color-bg) 70%,transparent)}}.active\:bg-black\/70:active{background-color:#000000b3}@supports (color:color-mix(in lab,red,red)){.active\:bg-black\/70:active{background-color:color-mix(in oklab,var(--color-black) 70%,transparent)}}.active\:bg-cold-cache\/20:active{background-color:light-dark(#90611f33,#d6a85f33)}@supports (color:color-mix(in lab,red,red)){.active\:bg-cold-cache\/20:active{background-color:color-mix(in oklab,var(--color-cold-cache) 20%,transparent)}}.active\:bg-surface:active{background-color:var(--color-surface)}.active\:bg-surface-2:active{background-color:var(--color-surface-2)}.active\:text-text:active{color:var(--color-text)}.active\:opacity-75:active{opacity:.75}.active\:opacity-80:active{opacity:.8}.disabled\:pointer-events-none:disabled{pointer-events:none}.disabled\:invisible:disabled{visibility:hidden}.disabled\:cursor-default:disabled{cursor:default}.disabled\:bg-surface-2:disabled{background-color:var(--color-surface-2)}.disabled\:text-faint:disabled{color:var(--color-faint)}.disabled\:text-faint\/40:disabled{color:light-dark(#9499a466,#5c616d66)}@supports (color:color-mix(in lab,red,red)){.disabled\:text-faint\/40:disabled{color:color-mix(in oklab,var(--color-faint) 40%,transparent)}}.disabled\:opacity-25:disabled{opacity:.25}.disabled\:opacity-35:disabled{opacity:.35}.disabled\:opacity-40:disabled{opacity:.4}.disabled\:opacity-50:disabled{opacity:.5}.disabled\:opacity-60:disabled{opacity:.6}.has-\[textarea\:focus\]\:border-accent\/60:has(:is(textarea:focus)){border-color:light-dark(#6757d999,#8b7dff99)}@supports (color:color-mix(in lab,red,red)){.has-\[textarea\:focus\]\:border-accent\/60:has(:is(textarea:focus)){border-color:color-mix(in oklab,var(--color-accent) 60%,transparent)}}@media(prefers-reduced-motion:reduce){.motion-reduce\:transition-none{transition-property:none}}@media not all and (min-width:340px){.max-\[340px\]\:hidden{display:none}}@media(min-width:360px){.min-\[360px\]\:size-9{width:calc(var(--spacing) * 9);height:calc(var(--spacing) * 9)}}@media(min-width:400px){.min-\[400px\]\:block{display:block}}@media(min-width:560px){.min-\[560px\]\:grid-cols-3{grid-template-columns:repeat(3,minmax(0,1fr))}}@media(min-width:48rem){.md\:static{position:static}.md\:inset-0{inset:0}.md\:inset-6{inset:calc(var(--spacing) * 6)}.md\:inset-x-auto{inset-inline:auto}.md\:inset-y-8{inset-block:calc(var(--spacing) * 8)}.md\:top-16{top:calc(var(--spacing) * 16)}.md\:left-1\/2{left:50%}.md\:z-auto{z-index:auto}.md\:m-auto{margin:auto}.md\:mb-6{margin-bottom:calc(var(--spacing) * 6)}.md\:block{display:block}.md\:hidden{display:none}.md\:h-fit{height:fit-content}.md\:max-h-\[70vh\]{max-height:70vh}.md\:w-72{width:calc(var(--spacing) * 72)}.md\:w-\[32rem\]{width:32rem}.md\:w-\[36rem\]{width:36rem}.md\:max-w-\[92vw\]{max-width:92vw}.md\:max-w-none{max-width:none}.md\:shrink-0{flex-shrink:0}.md\:-translate-x-1\/2{--tw-translate-x: -50% ;translate:var(--tw-translate-x) var(--tw-translate-y)}.md\:translate-x-0{--tw-translate-x:0;translate:var(--tw-translate-x) var(--tw-translate-y)}.md\:rounded-2xl{border-radius:var(--radius-2xl)}.md\:rounded-3xl{border-radius:var(--radius-3xl)}.md\:border{border-style:var(--tw-border-style);border-width:1px}.md\:border-border{border-color:var(--color-border)}.md\:border-border-soft{border-color:var(--color-border-soft)}.md\:shadow-2xl{--tw-shadow:0 25px 50px -12px var(--tw-shadow-color,#00000040);box-shadow:var(--tw-inset-shadow),var(--tw-inset-ring-shadow),var(--tw-ring-offset-shadow),var(--tw-ring-shadow),var(--tw-shadow)}.md\:transition-none{transition-property:none}}@media(min-width:64rem){.lg\:flex{display:flex}.lg\:hidden{display:none}.lg\:w-80{width:calc(var(--spacing) * 80)}.lg\:w-\[380px\]{width:380px}.lg\:shrink-0{flex-shrink:0}.lg\:border-l{border-left-style:var(--tw-border-style);border-left-width:1px}.lg\:border-border-soft{border-color:var(--color-border-soft)}}@media(min-width:80rem){.xl\:w-\[460px\]{width:460px}}.\[\&\:\:-webkit-details-marker\]\:hidden::-webkit-details-marker{display:none}}@keyframes typing{0%,60%,to{opacity:.35;transform:none}30%{opacity:1;transform:translateY(-3px)}}@keyframes fade-in{0%{opacity:0;transform:translateY(4px)}to{opacity:1;transform:none}}.fade-in{animation:.18s ease-out fade-in}@media(prefers-reduced-motion:reduce){.fade-in{opacity:1;animation:none}.typing-dot{opacity:.6;animation:none}}.pt-safe{padding-top:max(env(safe-area-inset-top),.5rem)}.pb-safe{padding-bottom:max(env(safe-area-inset-bottom),.5rem)}html[data-keyboard] .pb-safe{padding-bottom:.5rem}@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-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-outline-style{syntax:"*";inherits:false;initial-value:solid}@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 pulse{50%{opacity:.5}}