conductor-remote 1.114.0 → 1.116.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
@@ -254,6 +254,8 @@ RELAY_TOKEN=$(openssl rand -hex 16) yarn start
254
254
  context percentage or the segmented composer donut beside Attachments for estimated
255
255
  initial/chat/thinking/tool-call composition and the approximate payload size of each
256
256
  full-history fork format.
257
+ - ✅ **Closed tabs** beside New chat — search closed conversations in this workspace
258
+ and restore the original tab with its history intact.
257
259
  - ✅ **Models** panel — change Claude Code and Codex defaults for new chats, written
258
260
  to `~/.conductor/settings.toml`, and see rolling plan usage from their structured
259
261
  CLI protocols with no model request. Cursor Agent and OpenCode keep their own
@@ -296,8 +298,10 @@ RELAY_TOKEN=$(openssl rand -hex 16) yarn start
296
298
  targeting, no focus needed. Speaks a private, versioned IPC (see FINDINGS ▸
297
299
  Writes), so it's the more fragile of the two.
298
300
  - ✅ **Attach images and files** — tap the paperclip or paste an image into the
299
- composer. Files up to 25 MB are stored in Conductor's own attachment layout
300
- before the prompt is sent.
301
+ composer. Text pastes over 2,000 characters become a removable `pasted-text.txt`
302
+ attachment in chats and New workspace; shorter or offline pastes stay in the
303
+ editor. Files up to 25 MB are stored in Conductor's own attachment layout before
304
+ the prompt is sent.
301
305
  - ✅ **Deterministic cross-provider Workflow** — configure exact picker-backed
302
306
  planning, exploration, and implementation roles, then turn on **Workflow** in
303
307
  New workspace or an untouched **+ New chat**. The PWA calls the UI-only
@@ -333,8 +337,8 @@ Two transports, same tools.
333
337
  | `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 |
334
338
  | `send_prompt` · `stop_turn` · `close_chat` | talk to a running agent, cancel its turn, or hide a chat tab |
335
339
  | `split_chat` | move a tangent into a fresh tab, or set `new_workspace` to carry the transcript and current code into a separate worktree |
336
- | `list_roles` | inspect exact-picker Workflow role definitions and validation issues; role editing remains a phone UI action |
337
- | `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 |
340
+ | `list_roles` | inspect configured roles and validation issues for lightweight delegation or future Workflows; role editing remains a phone UI action |
341
+ | `delegate_task` · `list_delegations` | spawn a lightweight tracked child from an ordinary chat, or a capability-scoped child from a Workflow root; observe active/failed jobs |
338
342
  | `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 |
339
343
  | `set_workspace_status` | move a workspace between the sidebar's status groups |
340
344
  | `archive_workspace` | put a finished workspace away (Conductor's ⌘⇧A) — deletes the worktree, keeps the chat |
@@ -393,7 +397,7 @@ of the time.
393
397
  | `list_workspaces` | what is running right now, with status and model |
394
398
  | `list_chats` | the chat tabs in a workspace |
395
399
  | `list_roles` | picker-backed cross-provider role definitions and validation issues |
396
- | `delegate_task` | enqueue a tracked child only for the caller's existing Workflow id/current phase capability, then return its job id |
400
+ | `delegate_task` | enqueue a tracked sibling subtab from an ordinary chat with `session_id`, `role`, and `prompt`; active Workflows require their root's id/current phase capability |
397
401
  | `list_delegations` | active and failed delegated jobs |
398
402
  | `workspace_diff` | a workspace's diff against its target branch |
399
403
  | `list_repos` | repos a workspace can be created in |
@@ -412,9 +416,9 @@ Conductor deep link, so creation itself needs no Accessibility and steals no foc
412
416
  requested model, effort, plan, and fast settings are applied later before the first
413
417
  prompt. Neither `create_workspace` nor `send_prompt` can start or join a Workflow.
414
418
  Workflow Start is deliberately PWA-only: the relay first accepts `POST /api/workflows`,
415
- then its durable coordinator performs the workspace/root effects. `delegate_task`
416
- requires the Workflow id, root session, role, and opaque capability delivered for the
417
- current phase; it persists and returns immediately while the coordinator later
419
+ then its durable coordinator performs the workspace/root effects. For an active Workflow,
420
+ `delegate_task` requires the Workflow id, root session, role, and opaque capability delivered
421
+ for the current phase; it persists and returns immediately while the coordinator later
418
422
  opens/configures/sends the child. MCP cannot start, retry, adopt, replay, cancel,
419
423
  complete, edit roles, or dismiss a managed failure. Generic Plan remains independent
420
424
  on the ordinary agent-option routes and is not part of Workflow's frozen tuple.
@@ -423,6 +427,29 @@ from their shell. Its start and stop actions go through Conductor's Run controls
423
427
  preserves the workspace's allocated ports, run-mode policy and process-group cleanup;
424
428
  the MCP tool cannot forbid shell commands, but removes the reason to use one here.
425
429
 
430
+ **Lightweight codebase agents need no Workflow.** In an ordinary chat, call `list_roles`,
431
+ then `delegate_task` with `session_id`, a configured `role`, and a focused `prompt`.
432
+ Choose a role whose instructions fit the task, usually `exploration` for investigation.
433
+ Its model, effort, Fast mode, and preamble come from the role configuration. Repeat the call
434
+ for independent questions: children run concurrently after their serialized UI setup,
435
+ each appears under its parent in **Delegated agents**, and each returns its result.
436
+ The parent keeps its own model and role. A completed child stays under the correct
437
+ parent even after its successful job is removed. No planning or implementation phase
438
+ is scheduled, and a Baton's suggested next role is only advice.
439
+
440
+ Ordinary calls can set `return_mode` (`queue` behind the current turn by default;
441
+ use `steer` to receive the result during the current turn), `through`
442
+ (a `read_chat` cursor), and `include_thinking` (false by default). These options are
443
+ refused on Workflow calls, where the coordinator owns the handoff and return path.
444
+ Both active Workflow roots and their children are refused by ordinary-chat intake;
445
+ only the root can delegate through its current phase capability. Each accepted ad hoc
446
+ job freezes the configured role, which must use a different provider than its parent.
447
+
448
+ Skills such as gstack can use the same routing through a user instruction override.
449
+ See [Conductor agent routing](docs/conductor-agent-routing.md) for a prompt block that
450
+ preserves skill steps and routes helper work through tracked chats without changing
451
+ gstack source.
452
+
426
453
  The HTTP transport is deliberately minimal: the server never initiates a message, so
427
454
  there is no SSE stream and `GET /mcp` answers 405, which the spec allows. It keeps no
428
455
  session either. A request carrying an `Origin` header is refused outright — a real MCP
@@ -441,14 +468,15 @@ joining a line it would only time out waiting in.
441
468
  Worth knowing before you wire it up: `send_prompt` into a chat that is already
442
469
  working **steers that agent** rather than starting a new turn, and `stop_turn`
443
470
  destroys work in flight. `close_chat` keeps the transcript and is reversible with
444
- Conductor's ⌘⇧T; a working chat is refused until `close_running` explicitly confirms
445
- the desktop's own warning. The tool descriptions surface each of those choices.
471
+ the phone's **Closed tabs** view or Conductor's ⌘⇧T; a working chat is refused until
472
+ `close_running` explicitly confirms the desktop's own warning. The tool descriptions
473
+ surface each of those choices.
446
474
 
447
475
  The workflow icon in either workspace header opens **Roles**. Models there are
448
476
  choices previously read from Conductor's real picker; a missing or ambiguous label
449
477
  stays red and Start is refused before the relay opens a tab. The shipped
450
- `exploration` placeholder is intentionally invalid when several Spark rows exist,
451
- so choose the exact one once. Start freezes all three roles for that run; editing a
478
+ role placeholders stay invalid until an exact model is selected for each role.
479
+ Start freezes all three roles for that run; editing a
452
480
  definition later affects only the next run. The root receives those frozen model labels
453
481
  and responsibilities in its first prompt; it does not need to call `list_roles`, whose
454
482
  output describes mutable defaults for later runs. In the sidebar, a Workflow workspace
@@ -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-6mx-rmpo.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-QJR7tn2I.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
+ @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-space-x-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-lg:32rem;--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)}.isolate{isolation:isolate}.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}.m-auto{margin:auto}.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-4{margin-bottom:calc(var(--spacing) * 4)}.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-2{margin-left:calc(var(--spacing) * 2)}.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-\[17px\]{width:17px;height:17px}.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-\[85\%\]{max-height:85%}.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-11{min-height:calc(var(--spacing) * 11)}.min-h-14{min-height:calc(var(--spacing) * 14)}.min-h-40{min-height:calc(var(--spacing) * 40)}.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-\[calc\(100\%-1\.5rem\)\]{width:calc(100% - 1.5rem)}.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-lg{max-width:var(--container-lg)}.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-4{column-gap:calc(var(--spacing) * 4)}.gap-x-5{column-gap:calc(var(--spacing) * 5)}:where(.-space-x-1>:not(:last-child)){--tw-space-x-reverse:0;margin-inline-start:calc(calc(var(--spacing) * -1) * var(--tw-space-x-reverse));margin-inline-end:calc(calc(var(--spacing) * -1) * calc(1 - var(--tw-space-x-reverse)))}.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)}.gap-y-3{row-gap:calc(var(--spacing) * 3)}: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-context-tools\/40{background-color:light-dark(#087f7366,#35cdb866)}@supports (color:color-mix(in lab,red,red)){.bg-context-tools\/40{background-color:color-mix(in oklab,var(--color-context-tools) 40%,transparent)}}.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\/50{background-color:light-dark(#eceef280,#1b1e2680)}@supports (color:color-mix(in lab,red,red)){.bg-surface-2\/50{background-color:color-mix(in oklab,var(--color-surface-2) 50%,transparent)}}.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-4{padding-block:calc(var(--spacing) * 4)}.py-5{padding-block:calc(var(--spacing) * 5)}.py-6{padding-block:calc(var(--spacing) * 6)}.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)}.font-sans{font-family:var(--font-sans)}.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}.break-all{word-break:break-all}.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,.ring-1{--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-border{--tw-ring-color:var(--color-border)}.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\:rotate-180:is(:where(.group):is([open],:popover-open,:open) *){rotate:180deg}.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)}.backdrop\:bg-black\/60::backdrop{background-color:#0009}@supports (color:color-mix(in lab,red,red)){.backdrop\:bg-black\/60::backdrop{background-color:color-mix(in oklab,var(--color-black) 60%,transparent)}}.first\:border-t-0:first-child{border-top-style:var(--tw-border-style);border-top-width:0}.open\:flex:is([open],:popover-open,:open){display:flex}@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\:bg-surface-2:focus-visible{background-color:var(--color-surface-2)}.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)}.focus-visible\:outline-none:focus-visible{--tw-outline-style:none;outline-style:none}.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-70:active{opacity:.7}.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-30:disabled{opacity:.3}.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\:flex{display:flex}.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-space-x-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}}