conductor-remote 1.107.0 → 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 +65 -44
- package/dist/assets/{PierrePatch-CfKXuj7p.js → PierrePatch-DF-STc4J.js} +1 -1
- package/dist/assets/index-DM7eCDXg.css +1 -0
- package/dist/assets/index-DWbWwEOp.js +59 -0
- package/dist/index.html +2 -2
- package/dist/sw.js +1 -1
- package/dist-node/src/logbuf.js +4 -3
- package/dist-node/src/mcp-tools.js +48 -138
- package/dist-node/src/model-cache.js +22 -7
- package/dist-node/src/orchestration-db.js +2150 -0
- package/dist-node/src/orchestration-schema.generated.js +306 -0
- package/dist-node/src/orchestration-schema.js +417 -0
- package/dist-node/src/preview-urls.js +1 -1
- package/dist-node/src/reads.js +135 -6
- package/dist-node/src/relay-processes.js +230 -0
- package/dist-node/src/roles.js +64 -12
- package/dist-node/src/routes.js +14 -1
- package/dist-node/src/search-worker.js +3 -1
- package/dist-node/src/server.js +1050 -211
- package/dist-node/src/shared.js +79 -2
- package/dist-node/src/transcript.js +20 -10
- package/dist-node/src/ui-lease-watchdog.js +94 -0
- package/dist-node/src/workflow-coordinator.js +2119 -0
- package/dist-node/src/workflow-effect-runner.js +336 -0
- package/dist-node/src/workflow-http.js +141 -0
- package/dist-node/src/workflow-machine.js +112 -0
- package/dist-node/src/workflow.js +111 -22
- package/dist-node/src/writes.js +157 -12
- package/package.json +9 -2
- package/dist/assets/index-BHV0KmAq.js +0 -58
- package/dist/assets/index-DwXH_w7X.css +0 -1
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
|
|
38
|
-
|
|
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
|
|
117
|
-
|
|
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
|
-
- ✅ **
|
|
295
|
-
|
|
296
|
-
untouched **+ New chat**. The
|
|
297
|
-
|
|
298
|
-
|
|
299
|
-
|
|
300
|
-
|
|
301
|
-
|
|
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
|
|
308
|
-
|
|
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
|
|
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
|
|
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`
|
|
322
|
-
| `delegate_task` · `list_delegations`
|
|
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
|
|
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
|
-
| `
|
|
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
|
|
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,
|
|
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.
|
|
398
|
-
|
|
399
|
-
|
|
400
|
-
|
|
401
|
-
|
|
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
|
|
414
|
-
|
|
415
|
-
|
|
416
|
-
|
|
417
|
-
|
|
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
|
|
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.
|
|
431
|
-
|
|
432
|
-
**+ New chat**, the **Workflow** pill
|
|
433
|
-
|
|
434
|
-
|
|
435
|
-
|
|
436
|
-
|
|
437
|
-
|
|
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-
|
|
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)&>.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,d09GRgABAAAAACisAAsAAAAAOywAAQAAAAAAAAAAAAAAAAAAAAAAAAAAAABHU1VCAAAogAAAACkAAAAquPq49E9TLzIAACb8AAAAPgAAAFY2JERRY21hcAAAJzwAAADaAAABLAgDCF5nbHlmAAABCAAAJO0AADZcwWb5u2hlYWQAACaIAAAANgAAADYtQ9YeaGhlYQAAJuAAAAAcAAAAJAe8BOhobXR4AAAmwAAAAB4AAADc1hoAAGxvY2EAACYYAAAAcAAAAHBj+nD6bWF4cAAAJfgAAAAfAAAAIAIQChBuYW1lAAAoGAAAAFYAAAB6BJAcpXBvc3QAAChwAAAAEAAAACAADQAAeJyVewuwJFd5Xp9z+pzT7+7pnu6evnfuvPpOz33fvfO8+7pXe6WVdrXSwqIVK0CIrC0sDJYtzCsIrS0jYkCFgiqyVQbswiYllyljS8HBhUoKcUgpIcaFC2K7HOTIODgWthPFdrANTu2Q7/TMFRgLVzJ7Z/p1uvs8/v/7v+8/ZzVdw4dt0j/V6tqe9mrtHk0jnW1SbNO80xsNx8dJfzQZJ2kSV6oyl92qFOW/Tq8YTvbIZDwZ94rJuJ+iSBr307hXPbw6HPfKqyNVTD0hkVXpka3ypqJX7BGcbJKEXNUNcUefsfcE3HUeEA+boWQOY2RD12vVhu65JufEIttmdMlxZGwWfk2n5OJI9x1L13WSm95JwYT0o6jOLrX0SshlIHTH47pX1T2bcqIJ/cIqJf4nHVe/IonFzOkNFc7+MjKP7vY7Brd0l+OdB+f++Y9UbMs6sra7n1Ai7jgvucldSRnZ3r980RWGwfhi6+QR19nbMLlVMWvF4qSGrS7jwlhCV5b96dG/0ja0G7XzmhYNVfMH/SSVvQIdm3ekR+Nq2iB99EOKvkRHF7N/3Vzmk3w0KL8DWX7jvPzm1UkP55/r7m3mk+1z2WkjsKyql4TJQtis9PpR7F23hBesb6+3fMdwEvL5plO4xbZY2XK7ThPflb5Y7btdWWmJJvnbE6/dq/rd7LxwKZOWlU+aZ5pRZFnh+XY1CryWX/Obvca5c51+59y52YYW1/dhHqqF9En6l1qKA4/knWJYti/ewr6oJoP+eEKf7NzQe9v73ve23pl251R+6sYb8dMh9Ur0vq+9LwxfX0te+egrkxoeVPZXjYXao9rH8Dx00bCA3Y1gXNuwFZ90RoXa6aluLMouRJ/hNPqtyHuqhEeapJrD7Dwiy+vqVGlb1SSuiliqAg2yT/pxonZSlBPKXhsElojTqvqDVJVQLx0OxmpnomxzPCn/SYE3j0srFnRq+LDO3BSszitmLnRbMl/XTcZNx20ETqhTwe0VmzLqo8C+JbnPpKR6wKXv4DJ3LOm+5EOYpR4ig3QxeKmHCEswR589BAfM/uvNS3HU2Sh/yee/xx0uE5lQd1iCm/Z3vVdwnUccd+K9TqP+j7y2fAhKWobw/t5DOrKsPCNSn1XeXTh6WCn8HvrEETqFT+xq12GU/798Is7jQTwYDUb5ZPTtA8KKk5v5bukKFdOuukkUwxWCFbiCe3pppbu9sb3W9lzpJmS80e/j76nR8eOjE1Q/fsfJalAo02dMmHY+hulXQ9MOX9auhr7X9mtec+Ph0cbu7gbb2xsdHIzmdkr/kP4XbVFrogXfy00nudwnuSQH2fk7/AuXs0vZbfief3V04bXl3hX/UkCCKwfnT92Lz6nzB1euXPnMy16mmTPcYDZ6S2q25msR/Eu9KweGVNoVjsdP5q95qe2ztD9d+fmff/al/ph19XfoxltWV1dHh9+VlZX5uNTZohZqS1oXrVKOlncw4nG1SdDLRA1Sk+RF3ibK10YVwhbv+35j0a55v+LcbsTPfvOu6e/YVSOR11PTnP45ufT8W21Bfoj23vX9pmNcEr9RcRrxs3eR35O2vJ5MW2+1KzHpTn/q0Cp05uHN12ivUnHncMxPEiDKzPMGZWRZIlXl8zCMTgqPVr4uevmLpVFikEzG6tIsPPVKyJhdgElRcs32sb6TONLlutWJhtcUN//gLbATM3M3ji15k7+1edBw3/YztL+w1nZr1t6No1vOnTxzjc0zJ67826eClifFiRtHt94yupEOmG5TU1Ddv5sbug/XoIlu40iacE6TUuMebsM7q5wxbjOH23fHBmfS+NDdOESkoPUmszm1rDfiPDe0WQwu6H9+cew10o7bI4zqCNsKvuRB8rPTO//kT9Qv6U+/QL4wfnLy5GT6xERzyrt/gP7BS1jOy9Gvb8DTBqXblN/eS2y76lvkCuTQeWkCfOz0djqwgjKsJ+lghoOzeA8Y5v2kKhTuy3GalLCo0FYU5Jn98nNG/Zyb75EC3/0sSMLIW5AmQGj9b971do7ekbXe+u5Dp44N+yuJuWL56J2ATRct3018/4N2XHfSpsMdGdrDN9Bn96w9d+/986/6jIS+5QcyavRi3yIkcitpwxu3cp02F4dbRyoG001hOrUPe6nrpt5pQohu2ImNwC1kfujTX2AvQ1+toJeSeWuT0og8MjOvWbvRK6w0sl6D0CU8rQmYsF1dFI0jxS29Yb4ReFG4UtzeBdSfWQ1SJp8IRvTxxaVKazlsNbpr54frScgcf3nz7DUXbzx/5k1+vnFkWjOJ04yC9qE/nIQ/cIxiRdkAi9oR740madyN08moRz8+/ehHP0ouPzL99DPPPDP99AMPPMDc6fPT50n2x/c8d++9zz396Llzj17Q5hZVob+ldeBdZ7Sb8LQc/hOX4wSzKuPeQLVVGZnykd5om0qO0B0NIhX51HmcHg0VGQSilcagsKaXS/rIXQ7TiUkd73IkbO8u9gbPdswPOK4jiahvrE8/Ejft90cPORVuLP5W3TUBtCz4QGRFIrvy5yfELvlEXVrc45Qw0xTSbn3thbYt1C5MYHTnnY9sNMmt00832mYQBAIFLelY3X5qe5wFjzz88IyFsCpb0G4DPpbtoWk/VmOn4roCDA+hvr9Hip5CArQ1TuMG4joOpWK4o7HaGZUjvE/GaHIJMDIvQxL+esWzBGHW+FlCdznc1UZsdGwzqSemAZ9nfQpLKFJOmxUhRox5C67VjTi3K269/j+Xlr5m6gas3eFR3f1lKk3ygmkIAMTPEXpU53AFyvmDQhgLi2GwuGDh6KE+4m4YxbwVBjFlIybwTMaKQOdGFQ99oV7/U5NJgqLRgv/L3HC0uLThv2C3wu8zraftaBe0y9pbtHdr3yQGuPWI3EBeRb6P/CD5UXIfeT95mHxYIa1q9R5BR0kFmb1q0h8Pixwm31fnxJzvpMNCEbr+eJT2cTpW11BG3a1C9GQI7jQqVO+lyoIQOxR+JCn+YoUPo2JfIXlfDYyMAeGIIMM9lsQs75UCYF/1cm+o+B46HrxPAf54hBsV14NSQB0ThTjKUifjBkEQiMHp0mqSIjBUpQoGHVQoV9YZz8XJzIUhYWb1RKRQxFCKqK88ebilhhlNUaexmauRtKNYY6p4ZCwSNAeX0gTypdcZ4TcdDbcQFnFjNZmgitBGhUdlSVrgJWVDZ6A4GXaqA9wyA8h+Ivu4hoejUzqqSeirBBWYVDvDASRRB41H/1QFPbGQc73qrcdRTNPYOmX7ti0N+4froS8NdyXtSXNxiTmeg787HZdTJsDHHE4N6nmuiLlLKNUFeJ7juhY1mATh1E3KOtw0KMCPWoKSOvCXE+5y8otCF4xTuyI7Fkw7cqRpeoq8CsQwy3aZvl3TeW3h/MUjTcOKitCNIZEo9wMELY4AKCiFC+hWg/PA1D2oOFcIXedb+2ePMxbBdfQ/C0SUsDjfghDj+fv9pUVTFrXliiH98IQrgDh4hEstz/F84IlrG6Cr3NNdwm1dVdkAP60T4XDCqMlR/wXVLb7dEYx8eNYXJspxFGV3Q9ZRHjjCoUJuo8C/1AlkJH1iobZQrZhStqrRomS7puuGLnN2PLcXNrieJtmW3AP9jRzHbMJfGWOhxXWmw89E6ApCpdR11hGmReH3XLqodF9wQzLhOpCJlFhALp06ISOoJ6HTRcY5dz1bX9rxYicLz0SOjjIWgHC/OV53dCYzJ4sdzqvGoicWoEDdbgtX1yZnCp3RQFev5IIxM4ztTrCYjnJdIYuJJrlCQUfGF0EmOKPUY3IxqrY826+ipffwzXqcUN4Ie653ByPcwOAL1wD7h8kQHptCCMDoxYDOKmt6BpfoaMfFAbqL+hanugTBeUfZU9AP0IjUKjsookRi2PVdRh3D0m109QH6g9lCp1RSwDIvkXmD3aQdaLdot2t3zXIKvULFkz3QMrhoT+UGipJglIoNcq0MOZ0StJUGACwBvRF+ehN4c8k5hvDFqN+ERoiUI8YV5ehxziZ5NR6xMqb1IqUlemBNDLWUiPOJt9BPTP0hGFN3uMweopKl/Zob64cXU0N/CKO2POxi68Y7nhNMWxjYT6OEyz5tMsg1L2WfYq/5NEs9hz8fZQ3vA+Qe8nNU/5hwdzZdVzcvgO4tdLsLjrwAXuO66zs+rkpndvUVfH5VvEIKx43jnQVTCkEOEP2mn4FulDppLkY1/jFyAlWh0898jKfVxelbougVjB3ylBfof9CE5iLaTWKZxj0uR5PeKP27px966Gny9ac++MGnaPT4hStXLjzOHr945crFx+csYIn+lWaAJUaIDxpROK8wvaskRbvSkz1J2pVBpU0/nLbb2+329N+Q56a75JP3nH7wLWCa150g95PfbuHCduuXp1fIA/H0V++/8MjD5BPTx0n9kGkcYWtaS+trZ7VXKA0PmOsV62U0FUvkOygk4BfgThQODhW5VxCrxPgEGI7RHWE/huJA9F4nUHm9w9qyTb7Zvv1oe6n/6psuJcJan7zi6Fb/R19+KoJh6tPPnTl54vQNJ/fP3vDOfJmePbHHTKmjJ7PLWdO0ovrTd6aN1kajRYOzN+yc8kxz9+wPNKP+pRMXWlVuXTz1GqNudKQ5/XI3v/fhe/MuveHESbW9DNYCWc1I5lgPR1l2tbXewt9hDuQJcDXVp6IMPJ6KjaVunTSIimKVAX0Co8nd470wrx9d3WztR0fbGzs/Qn5VN1In9lZPBlIP4t6FrH7sGHnlfJz/mv66FkAnK9ZeVWEWDyxVzKika6pLeipDgrAqVRRVOZcylzErjVPkzluX2wf+sm1GWd2r/HxYW6w1GvX8rpuvHW1EIrTjZHEpcFb628XqjUutrEqfeOHmvMX5daYfrvUtacRF6izf1N+PTjO4QtyxzSAa9/rNHLh/aI9TJrWJ9kbYY0kTi2FZq+NglzPh8GJETmbbRFHIpLyu4v0w73ZwrKL5OhmpZvWGJQGYlM3DI1VDFTctczjlYwZ/1lIASHcHGeS+Cj6B12h4gdqjUeJmb5AjGoCKvTFzkojph1dZFRjc30UsIIYLK/Dt2MyjqCKPbB3PMuH4iFyhVeCEEVS7dug6PpRfdvyOTjffFttmbkadO0ZZ3zWaRrcaGLISFRYCQ3Ckxo5vHSmvx7Z/yOE54+gjrjT9xKRtk1bIV0lIgqvPkXD6gvrSzldnm+nvk5XpV6ZT2pndSz/Dbtfeq/1H7Xcx/vCivKRpiZLjil/1OqWhzVSKAsdOb6TU10ys4PqM/5QUzqMotKcoVMl6VD/O1DGe1S8Nqqd4VnlZqeU9fcbJ4KgFHj1z12g4y8SgMEgWBk4NzYxTl1xmNC6JsnpWTzbKmsqSVTVpMgDX9giIT7OEgElBz+hnx9usUn1VI9PrruWc2lyq1sIkNswlK7MrCRNmLD2uL0bbNWrSyHJ5uIcAxyUIBkIlUeyDI+qZOtVtboH7ELhuFLmW8KrEIuh50wILSCxFhAT1BMiBrlMzay38kAtTRty0UuZxwDq1icQtCn6hzjnX9ZVG7RgDqzl+GlFVJOIcYn298e9UkCT0wK4iauf0tsEp1l3MzcbSlqnXVzZX+yAbYXxdXtRRH9dCZEEtpZdWXO7u8IhXvWp88ShesF5fvGuYVQ2RyYW7FoNTAQJxd9w+eX0bAZVlbiz00MLLQOlMx/CFKQwuMFy2bvBIZwY13fTa6TMO6IjnVdENKrMndFdyMBBuWYKZFtiLab3sxoHH0LT+mQt9ZnD/hP84070jXxJVLkz9Y/UAJO3SPPM6oN+AcgCQEwSEgRpcWsqnfHiSDJVU8nDABtNzZynfObsyvP4sEZuNxS6tTf8ryc84Vu/kkjBfMTpLyFkul1qMrtfPzP1gk23i2TWVwep2ZohfkuqqR6KZrhgWA0WYVZapKsjnz145e+PeqZvP3Jsvn73Sax/Zuu7I9pX2Nt3K21s7T5+98lM/lheUnD25/8iVs+SLRw7KAh1cO7U1x2TmAZMdHEjEtHQwwS8C3P6dD9xz0z0P3Pkp5mZTh4zvvXf6m+Tr2TNzHJ9CRaqcS2UgJMFtsFaVh6TvfcdrPjX95g87k3ofgLjN0ulvvvbXSUBOmEXYyrz2nOvQ5/FOX1uE+hpo16oYqyZLRN6GAKqgbaRMjoPQAMx632sfoOmTKlhQH3JqWNDLijBMf1/9IuYaDrGMWhz/g52P/zp2iG08qTYuc3HPTeU9/3qhO33ENjYNm956j4WtQy6+eX68ZsstWd62aTpzvvYm+l5NohUpRqsHTC+zrO0Rz1XKdTRIy99EtmfH5RHP48GV332MvPXqV1ZWLz7227defAwsq1hZ3Vi59e+mn1xdpe/9u43Vq1985zsfe2zjC/173onPYxsXDhliFfHjDu312lu192gfwhsV3EBJKnE1Jwpl7kXNQM3SS2UKME5KwfViWrDU7IAZqLwSlIBSZSjuQPeVaJd3ytNdnENkKXXkHu0Nc0VR+JF8oMrE6SzbGPUHuUJVgF55e5n/ehbUeKFjJhtU7waAnxDuqMewJFu3gAhMB2qlWwCpzkEni4S0GNeFZAFbbjda2BCdQDr1HTCVpFlbqlQySzgVkIqIJ/o5K3z74rIQzGbAjQqvTz9DyOKC6ULFGbobPwLkMQFbTCkciDVSdx2JtziRTs8V9rrN1pc6q9UYhCc0AzdbCjs5Wxsg0EGZWI5IbK5ATxF920qYSnirVL2+srpUswF5ofO803cju3YitIBy3EaMBHy9FmAUCWAHdRbJjfUsUgkcKATIPOcwyq3RL2s/pX1c+7XZrE2ptWcDdZhBU9SlmA1oyQjn2bS5nFejJMobVVSZTceUCbbhtoKK/mg8C3PwEJXNpZ2SBXgE1B+vwPPXiVIECDKFSvjiRDUtkxm5Og19MRqX+UxP5Tgg6VUaYqLoJBT8YEwe4gtJBEWHbrdEQJW+5Cn6WVagMg2oWig94jaP6bxXqTnZ/tbIxanNphfIUiIiwAjbOLmc4yz2x+t7q2cylXCkFPDKgjrV1dhRCTrRp3iHtIxKZ8N2dahw2WhBXHr+TwqKYUb0QVSD0DD1EDrNpBCK5P6W6QoG0SihGgMmdWEspxBfXOWwmWUjTjnZ5nVnrltyhKwY9tryYmuIIOnAEKARaWT6lmHwrSPXGw4XUH4250ubr7J8iH+hE0tHeBwvgt45FeO87XAZGZ7IWr4jYtiHERVNjL7J1dngbgxmiMDEEIcU4TbYW7hhoirmPIr0WBXaxFLapDfisUvao/Yf/fFXyf3TH6enp79Gbib3vevBf/GNi39QuWV+R8iu0exyJoWLYhKB5ESJmLAtBFMmqmqWDgylu0fo705/W9r0bhKw/8T41p/xSjXiV4W4j4cWJNRdFZ/0b6OWIFclldPXwTHIV00bvTq9x0zMp0yT3sVbc5VCmKFtgrO+XvsRlQ/tiFJndEoaNJ4M+idL1dJR0w+HRgozVSmmwwxZD9YDqooCJSrFSWnlS4hpOJ7NUihbLA1dUfTxPIOW9sfka/vtnlnfiHzhB+ufQv+TN0lebwYnhguhjcFYbif3e9XAt2zvzXuzooCbWVH6xu9VlOq99q5VNLO91SMGg6QXciU3XWa5wrVN272nvcyesvwg9Kj/33vto+Z3F3V0y+Nl0Te3vl1U88oe22aBdkZ7k/ZPtQe1n9P+lfaM9mXtj7Svaf9L+9/aN7RvoRercVI9bHMJuFt0UrZ/NmPQHw9mmcb5FMGcApS6oKF44nzGptdXmK5uGc40jWK65TQuiGSpe3rjyahXOjmOumoyaJCk4xfv6OJdKnqU757lADlUxgx6ZDljjEfxQ348KRPg5ZtmVVMMdpvMFzeAnwCvsBPlqOR4UrZOJl1EkO5EonB5tqBPiEaaLlaXU5XC9+tHlogoIBOrNAkWgw6c3yRSrtezLEzh5P16q5kuQh3Q+sCOkiRysrD1KW770jWbDmN+S7dH9QwA7wFuTc+x4PMi+unIrO82kyTIfHI/zJvQyHGytreQVYp4+vF+HewRdMRN4oUW3JwKcpRJauqJl9X8BRk0zfPTzxGcBi41a1BCqRG2BFv+Z26WVvtg0kSQ6lpkGtyQ0pKZ4JF77ozIhAzephsVI6oQ2t3Vp3+JH/lVnHdFjTzI+MmTK5TbVs2XmWNzxyz2Tjuuk8U7ceSaDjuddBfgHoFdpVIvgtjkvWbfqrrSzAy3vdx2DZc5jFC3X9cdurRjMXTIgmvbXlYNdElIrZ84ZypppRdUbPlovc9Yvylc36ysBX5odrmkJCtiq2KYUT3K/BYnJm1W6nEAnwjMmkgK0/qKsOtuWk1DKTyzKrNCnK6EFenvJAsBEJhJbgrHsskIKkLW3G9p2NrRpvTqlZE8cWBVv+/AdJcGbtctfHLIFul0ps4hohLEEni9Skcp8V+mAGRHBb68FEi9UumOS1l7+I9u3A/sPoEhtlXu0KwcVDoPdoC3kCNLPanwlbEoTBvr6zsj4YKd+mME7gzfR993vSmVHLGI1PXOIuA4IAZzR86Ss9Naa2zVW65e4jB8d8Q2yGvJL5DfIX9KvgkbsWmVLtECNQfd2aMq7xKnVeCWjBWvApoNGkzRKYhNWipInFOrIsCx4nrpwWLmk6laRpEIn3YQg9F4uChgUMQNKlSzcykGStQXvTITIKoKHdSuSk9sk8P9TjmrBE1Zpop81V2jYtQbdnCIagCFe7lHC8UEccdJAn8dFfkwB8XrKLzGfXlvtpgIWJv3iiEKqHVHg/FoonTpFt2jk8EQaI2XgkZCA6uZhXHaV3QvHwHD0Q6U7o8gQYYK7we4Ua39GMxSVv19ugclOyiRZdwv263yWEk1Kbsu6aukYxLzGR2dzT8AMkoKVJLHY0ThzGjYP05GM4soqz6buVYUU/VCCTpl6khNSw23iEp+leEE/asyZ4OxmrWbz3Kr+ydjVGTYxXtkyYBzFcrAkPGWFBxWVViJdPRkMo9cHUEOJ3O6h9ormp1RxGieZ6O/yBDjy+QZE3VLQQYl6oxODZBQloGqOCYsUII4ZcxBQR5KAutSFIPoTNcDkB9CLZhxwSiIhFTalYMJgZAqsqxYM7aK1BIC6kJ1h9k0MBPoWbzQ5JYUpgRrVn8JqMaLFWqCTKn0NFH1YSZeSBMl3C2BgpxniUoD1VVS2xS6Gak0vsredtAKCkePmI7HS4FKoyDokOJXil3rgqF1YHSUumq6JDBVzXCO4aTwbJBigrbrIuJy+tgLkdnwfNPy0TVg1rZ6maFHqAPenuiRWqnmcyCgdNytAxY5POB15kQ7PUEuv9ZigQDLDp3dXTVV8JSAYzvSpVbmxIA1OwFci6Bg0w+ZAHpJM5cSk9CDyzg640j0L0H/nWdPz6Y+yEOz2ZDps4ba2D9tVWzLdL8o1UWL/rcI3abLeV+opqtGgteiTSCU2LUQKFyBBoMT2hAGCCAO46rlKm/CdFuCCxOqCCVjieLFAuBqKLJM6paOccChDv6l0wyA7JpqLYSeJUw0lEmg+zESqvfKkfh2bb5rHHQMQ2ljTADxYA4C7yoHh6KwA9GqhkBVQUd1WGQC/XFT/TstApVQrUvUDI2qD0nA6VmGSqGhDGqG21SZhbJWtI/Ly8wK1aIEH4QcoGtJv8LUoMJmfbaK6K1aWW0GLDJ8e83DSzGQIizk9DlmpCK0EDFWCNsDHDuwMLnKrNKoGZB6NdBN8/kQ/ck5dVHHoNml9JF1tAHazvRZOULO9K/U1rYW8WNjOD8sbSuwP64u+fY8z/rHLNX+iXa3yjODw5SqSaFHCUkzGqPmXUv1OxdXJbH69goGxW1LhlOu31BqafZPETI6AxSVeBjNz84eQgdhdxL69mgZRFNEdStyzKRiUGUn+lojM2Pp+KtnLp/ek02xvOBUJ8X59YWaUKIH/dbaWW8uHzGM5cbmxVu3M9NFAM6c42Cyjru9gu5+71qjwmng57GNLvu8nXZWN5bXuS71cK1tVaXhQEnhQdZiI/ODjWR5bb9Tg5EgGBbXtGqh1GsuK+cf27bhV44t5jG8brTQdrNo2c2sfjl3uGCoCUZ2IW1UUs9jRiuMgsPs/fuZq31E9eqMHb44c9ws56LQMyWKL5HkkNOrJCnkgdKPZRorLRcTAngV+VeaYPwdUX58uJapBPU5FSgXNI3LNOlOg6i7DnXxFtmmapnCUAkQMRMS5N/7nm44lrQUtCgvNKXp+XalZnuctjxYrRM5zdixwZZM2Zdgm9DoFUOA6kjTBBExAU4ytONI6Xp8gLtuy/NsVEA6NvSQMG2rUom5IKZQDyDwfd2yuOUbhro7xxsBc89wkwrTNQNXGH5gWb6H+2xDWjq618zAVEEKpU646yS6erVfDwwf+MoNXJeZOpVJGxWQwl0MHGlBvMjAjVOoSNMwhBVZxA4cQyFNxQIFNi3hKNoWmNwwgES2aKmH5Dac+XAG4veYry1pb1er8dRa4gbGUPmHoiiqR8HQy5RSqgQATtJZ6qh0nDJFUQ666vVD6p+Ua0AVA6BFb3bXbCnE/C412mrUyyUD5KYHlm97+ULk2ZXM4q3ag+oo9J3KQnn0RHSyZVnvr8TStMvdXV23EEEolT+JvdDmadXHqOqmHR5tCtt8MPh7RUPxEkXpL9xSY73uwv5+tjNa6lduK4+u2Vs4Uh5dXEwNxi9ZraIIFhPs5kAeYZqOJV6JPekbAEzXUsKm8BdSQf5fCksRFYfrdBfYkuaWa5MGahaq4xG1/mEwaVfa5K5PbOS9izdvLaRnmwfkzdMP0vc0z6YLm+curuRbd04/eJih3WRrmlqDMixGc+NPZog1Sx1hOyqdBteV5zSYmk0gM4dTgm6oEkTlspEyazT30upsvkNxsDpRnPLbOKeY1lY5xoN58TQBXxvMpGO5tng2n8F6Q7LBWMAcRHQnUnCewJecZuD03SLJnKZeR9Q06n4uoZMKcJ3TBcRGIEBa9BDeeO2ODHjCVKgqQPA5iYsw9CJApTy4YbjGzMJ8zR6sOXThpmkT+LZ27JojnHv1KpQHXhkwkdkRpw+riBRxW5iG60BG8ogbvpGZVsdk60nLWcWthTSEqHtNgyeol8P6GSO8d2xtTURWbAUhYqZw+mf8hj/eYnUHMo1t71qJbwFKyDois2I4BoKoCHig91/D1MICi7pczUAswATsLBR1YWV6wEXdBWWf51EusLd/x0pFKLRJZVLpxukoSkc98t4vfenP//Dq3h9mX/oSfeH+b2n3qy/R3veN+75x9Sv3/e19h7a0TH9NM7R9lYmp4N+oHafDF/GynAFUGZa8tLPDlYhqknO+OngyKE2vPxmTr73p/BtJ8+sGOIVRNU4VndXuu1a6Z0yreqIVGYGzcPKaKCz2Dla39XOJ2ah00KXvmH6W7B09+pwdGFwwg0X1pfXtej1vH/Gqll9LQk8IboSTnVrPqbe6o1aIkBQd1t1nnhZpDTWvMVtJNVvNPIvOrDLYJ0cQksdD8vWb3l30KLlp/+D8TT/RLSi5ef/U4+wqY790G3325lPXnj/3Y8uF2t7448sF+dz0sY+zN+9S/TBGfYmtqtmTEomqCTBIrVH7jm00LpRUwomC/szfCOJL/TouSZUY+jq2Lerp+ueAudcDd4BnbGWHyG8B7APoxztxziWS/6yaZSIf5CZRRx/lxryNH2FOuRJRI1Eue3nbJjmY6G0fvXju3EVy+bOf/QlyLf59g1Tf/e7pE+TlV79It+f2oeZgTK2mtbTl2drlvFwMxgbpRP3JXKVWcuznvdmK6cGztP/lla3e0aKuPsV2u85dq/2bu9tr1ra59nLLK5h79Qu0n/Z66fRzP4TP0/cu7HWefnp7+9Hr5zOnv0E/A2yqa0rhKg4k8y0KiViUC5dVogeKEhYlVV16amEW2b77da9+I6x549Kx3VOMuBes6OwxEej0dTff/uH2dpO2t9v0aXps8uTrD3749jSpT3+pf/TAhjw/v3/L9Wm7Vau12/OR+j/0L7S3wR5mqFiukuupma0RNip4zFMAe6R3GE4G5Y9KjqvxLJGpDGMwIjojGCUZm/E8xRrKqVXZmfEVOl8iP+mPyTuMUixRCUh3I4tVuGOkVJdGFCTQPJUyKwSVY/qyuc257lmQLQICCuV0vTaBBiB6XNdBVXUjXzRCy4fAQbRfvXQClB+kwraME63QDXXuM+PrEGXC0VOgghWCHPitnRS8rZM1arFLBY+XDEs6pqQ2b6lMhsWJtKuuwTkR7p2XmGsIHvbrOaCM2iHoJAIdd6THjf0AUlExHcLxBrTkMNLfxurwtyW1jkjl/cchOiTtz0O4WkIy++9ENDGgQHaB2t11FRBk6HLfoMWJHUqLg3XyEIXFWtdSGsr+669bu/TTC6t6O1sq9MZsHSW7g239vfXTPW1d29YG2kQ7DqS6VrtBO6e9TLtFu1TmRLXu4RRfezblRwaVPPqOtdYv9WX/yLXK/JsWig121CgrUqIm0vMOCE26M+mjsez8FATZkOR/IDxMv1mt8pPf9Rnt/YPPe6jiZ/XREieqw5P4IE7OUT8kkU/9iIRPgW/folbgXv0V6MEfnb6HvD5WS2bVN62qLdkpd9L5aXI6nj5Z/UC4nDELH5Yth16FkMq6m/qE+Kn7fwGQwldZAAAAeJxjYGRgYDDnYmE4zwACTEDMBYQMDP/BfAYAIhgCKwAAAAAAAKgBGQFAAjIClALEAv4DPQPCA+EEfgTFBOsFXAXgCCkI0gjuCSAJmwnGChoKpwrFC/0MKwxlDH8Mnw0BDToOGg8gDzkPcxAMEZYR6hTOFXoWWxcUFzYYFxg6GJgYzBkKGScZYhmhGlAahBsuAAEAAAABAAABrP+fXw889QALA+gAAAAA5SlI1QAAAADlKUjVAAAAAAPTA48AAAAIAAIAAAAAAAB4nGNgYGBgfkEYs2wgTh2t9OPEn7CbDRIDANomMMEAAHicY2BkYGB+wQAELBtAJPNlBkYGVGAOAD6EAq94nGNgZH7POIGBlYGB6SfTHgYGhh4IzfiAwZCRCSjKwMrMgBUEpLmmMDg8YH2wkvkFkBsFJoEaQQQAU8QM5QAAeJylzzFLwmEUxeGr5pRjQwV5CAka2nJpiXBqKKghiEBwyklwyEkaCpcGQyiHDKIhUZcgXFrECCJwbWhw+QWhRB+gRbDXl/838MI5Z3vgmlnYzCIuc65DfmdC825TtmVRCxMlxiJxEqywyhpJNthkm132OeCQIzJkyZGnQJFTzilxwRU33NGgNR6bOWOWBZZYDoz1wNhhLzDSHHvjxBtn3qg445b6xNBIf/rVj4Ya6Ftf6utTH+rpXW961Yu66uhZbT3pUS01VdeD7lVTVde6VNl/NuX9A1rebyEAAHicTYkxCoAwEAQnJgZtLK19gehHUlikTyESEIWo//cwFmGLndkFLA6NMi2KBn6u6MQy62I3Bdf0ksz22y9WbiKL9MbDTiDhxZJ8kZODgZmR6QUr0AlOAAB4nGNgZoAALgasAAABYwAOeJxjYGRgYOBiUGPQYGBycfMJYeDLSSzJY5BgYAGKM/z/zwAHAG2XBV0AAAA=) 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}}
|