blade-code 0.11.2 → 0.11.4
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/dist/blade.js +2 -2
- package/dist/{chunk-g0xtk1yy.js → chunk-1g7c3f82.js} +1 -1
- package/dist/chunk-1hknjamx.js +1 -0
- package/dist/{chunk-tx9tb485.js → chunk-3gbteqvh.js} +1 -1
- package/dist/{chunk-q6sr4979.js → chunk-3v9epq9s.js} +1 -1
- package/dist/{chunk-pjeks4cz.js → chunk-4077g2fm.js} +1 -1
- package/dist/{chunk-re8p2y22.js → chunk-49jbxty9.js} +1 -1
- package/dist/{chunk-xnys4bgs.js → chunk-5ce8ydjq.js} +1 -1
- package/dist/{chunk-ebvzp8tn.js → chunk-5kmxe14c.js} +1 -1
- package/dist/{chunk-s7x4x6xw.js → chunk-6m81sxfz.js} +1 -1
- package/dist/chunk-6p0hkf4f.js +1 -0
- package/dist/{chunk-yeandcre.js → chunk-77n1drhv.js} +1 -1
- package/dist/{chunk-vemyfx92.js → chunk-7m07qp5c.js} +1 -1
- package/dist/{chunk-6v23hdt8.js → chunk-870szc6v.js} +1 -1
- package/dist/{chunk-v0eanse2.js → chunk-8d8wsqam.js} +1 -1
- package/dist/{chunk-t3pkk95s.js → chunk-a1vvg4yf.js} +1 -1
- package/dist/{chunk-px45q235.js → chunk-asgmmaec.js} +2 -2
- package/dist/{chunk-n30najxq.js → chunk-b5cz00mt.js} +1 -1
- package/dist/{chunk-0kxya4ye.js → chunk-bw3920qg.js} +1 -1
- package/dist/chunk-c33wff11.js +2 -0
- package/dist/chunk-d7frbjn7.js +1 -0
- package/dist/{chunk-jbpasjg9.js → chunk-e0ft3vwg.js} +1 -1
- package/dist/{chunk-8q6zsznc.js → chunk-e4q0rcmz.js} +1 -1
- package/dist/chunk-eb10zapp.js +1 -0
- package/dist/{chunk-a95jmx2j.js → chunk-ed2hdrwe.js} +1 -1
- package/dist/{chunk-g2295k8s.js → chunk-eexs73bz.js} +1 -1
- package/dist/{chunk-k2rgg45h.js → chunk-egqep8py.js} +2 -2
- package/dist/chunk-g2kqz1mm.js +1 -0
- package/dist/{chunk-sdapqhj0.js → chunk-gmpsfkgg.js} +1 -1
- package/dist/chunk-gwf872nm.js +1 -0
- package/dist/{chunk-p36k2e96.js → chunk-hb680ebj.js} +1 -1
- package/dist/{chunk-7rz5dt79.js → chunk-hbkpavbp.js} +2 -2
- package/dist/chunk-hfbw50pk.js +357 -0
- package/dist/{chunk-enmn892r.js → chunk-hfwn38rm.js} +1 -1
- package/dist/{chunk-qhcd0ww0.js → chunk-js7fre4w.js} +1 -1
- package/dist/chunk-kj20ad32.js +1 -0
- package/dist/chunk-m61cx42n.js +1 -0
- package/dist/{chunk-g7pjgspy.js → chunk-myznexy5.js} +1 -1
- package/dist/chunk-n62b30d1.js +164 -0
- package/dist/{chunk-wnzr9h84.js → chunk-nad5spvc.js} +1 -1
- package/dist/{chunk-04qhtx2w.js → chunk-nfdtrn3t.js} +1 -1
- package/dist/{chunk-zf72e5w8.js → chunk-p4j7gxjk.js} +1 -1
- package/dist/{chunk-3ee357pw.js → chunk-phch3t6v.js} +78 -78
- package/dist/{chunk-kaj8jaj5.js → chunk-q534f3j5.js} +1 -1
- package/dist/{chunk-2fdghgmf.js → chunk-qzsmbk13.js} +2 -2
- package/dist/chunk-r8rvkas8.js +1 -0
- package/dist/{chunk-h4b4fn3t.js → chunk-r9egmztq.js} +1 -1
- package/dist/{chunk-xrgeakpy.js → chunk-rswfbvay.js} +1 -1
- package/dist/{chunk-qa86anwd.js → chunk-rwm2e0r4.js} +1 -1
- package/dist/{chunk-wan9q99y.js → chunk-s14zayxp.js} +1 -1
- package/dist/{chunk-4e4qtpca.js → chunk-saz6mwpq.js} +1 -1
- package/dist/{chunk-a3dz41pd.js → chunk-ty3gwnwq.js} +1 -1
- package/dist/{chunk-290p3r7a.js → chunk-v5t3kcac.js} +1 -1
- package/dist/{chunk-qyfbeg5h.js → chunk-vmhcc7f9.js} +1 -1
- package/dist/{chunk-er6zghgg.js → chunk-vsmnzhhz.js} +1 -1
- package/dist/{chunk-f9qrjd2f.js → chunk-vv6r417h.js} +1 -1
- package/dist/{chunk-zwe1a7xe.js → chunk-w8dxjbm8.js} +1 -1
- package/dist/{chunk-6x5f6she.js → chunk-whxkwaz1.js} +1 -1
- package/dist/{chunk-5s2x98rx.js → chunk-xhwdac1j.js} +1 -1
- package/dist/chunk-ydtsh19k.js +1 -0
- package/dist/{chunk-0wxnrjes.js → chunk-yjdyzb5z.js} +1 -1
- package/dist/web/assets/ChatView-CvuKp3Yl.js +17 -0
- package/dist/web/assets/{CodeBlockHighlighter-OvLyFs9U.js → CodeBlockHighlighter-CYiAdOLs.js} +1 -1
- package/dist/web/assets/FilePreview-DGolvoH6.js +8 -0
- package/dist/web/assets/KanbanBoard-DdwrLpvb.js +1 -0
- package/dist/web/assets/{MarkdownRenderer-BTxnqChi.js → MarkdownRenderer-fJny7W8J.js} +3 -3
- package/dist/web/assets/{ScrollArea-BdOqyQ3g.js → ScrollArea-CSCl8r35.js} +1 -1
- package/dist/web/assets/{SessionHistorySurface-DaKE2oKU.js → SessionHistorySurface-dttyHhtN.js} +1 -1
- package/dist/web/assets/SettingsModal-Bn9m-F-v.js +5 -0
- package/dist/web/assets/Sidebar-JYvLuHTi.js +1 -0
- package/dist/web/assets/{TaskSwitcher-DKelLFZm.js → TaskSwitcher-InE9ArQH.js} +1 -1
- package/dist/web/assets/{TerminalPanel-D5Rieq62.js → TerminalPanel-BLRAlQoa.js} +1 -1
- package/dist/web/assets/{archive-CsFSEMp9.js → archive-D3alcPOa.js} +1 -1
- package/dist/web/assets/{arrow-left-gaino9Tb.js → arrow-left-CNfcSdE2.js} +1 -1
- package/dist/web/assets/{calendar-clock-DfHUrEw9.js → calendar-clock-BoRTfsxW.js} +1 -1
- package/dist/web/assets/chevron-right-B8JH5N50.js +1 -0
- package/dist/web/assets/{clock-3-dWIDc9IF.js → clock-3-BGymk4sE.js} +1 -1
- package/dist/web/assets/{copy-BPfhyh47.js → copy-CLG3LQ2v.js} +1 -1
- package/dist/web/assets/{dist-RGayDvc-.js → dist-BtGkS2rG.js} +1 -1
- package/dist/web/assets/{download-BR2L5Wme.js → download-DxK6pukC.js} +1 -1
- package/dist/web/assets/{folder-8dmZJ2a6.js → folder-B0xRimYH.js} +1 -1
- package/dist/web/assets/index-BJdxoBtv.css +1 -0
- package/dist/web/assets/{index-DSa8Dzp7.js → index-DkwePtIh.js} +4 -4
- package/dist/web/assets/{pause-DLZIDFMB.js → pause-CKNq9DgJ.js} +1 -1
- package/dist/web/assets/{pencil-DkC0bPYD.js → pencil-CMjIwtk5.js} +1 -1
- package/dist/web/assets/{play-BVeNn6fv.js → play-BOz9Sqzf.js} +1 -1
- package/dist/web/assets/plus-BJIEQjD7.js +1 -0
- package/dist/web/assets/preload-helper-HI3NtP3B.js +1 -0
- package/dist/web/assets/{session-events-BuMTbIwu.js → session-events-B-hnDC4L.js} +3 -3
- package/dist/web/assets/{settings-msYyNDKx.js → settings-CP6ArjQ7.js} +1 -1
- package/dist/web/assets/team-BHlihaeV.js +1 -0
- package/dist/web/assets/{teamService-Bus5RDi1.js → teamService-DDfifLYm.js} +1 -1
- package/dist/web/assets/{terminal-Cp5WYo8w.js → terminal-BYHhWXe-.js} +1 -1
- package/dist/web/assets/tooltip-DJBQZhJD.js +1 -0
- package/dist/web/assets/triangle-alert-BCJaJaVj.js +1 -0
- package/dist/web/assets/{vendor-radix-L0yJCKJX.js → vendor-radix-BCAvgfOW.js} +1 -1
- package/dist/web/assets/{vendor-react-CHEIQMI-.js → vendor-react-DQwAdeyS.js} +1 -1
- package/dist/web/index.html +5 -5
- package/package.json +2 -2
- package/dist/chunk-21qsfewd.js +0 -1
- package/dist/chunk-3d4wgfkr.js +0 -1
- package/dist/chunk-634ymwg5.js +0 -1
- package/dist/chunk-65v1vjvg.js +0 -1
- package/dist/chunk-7p8r4q6f.js +0 -1
- package/dist/chunk-d4xsrx3z.js +0 -357
- package/dist/chunk-eg0s155w.js +0 -1
- package/dist/chunk-fb2x1026.js +0 -171
- package/dist/chunk-gff7a5q0.js +0 -1
- package/dist/chunk-gymecxcc.js +0 -1
- package/dist/chunk-p665f6pn.js +0 -1
- package/dist/chunk-sqsfztrv.js +0 -1
- package/dist/chunk-yjcp8jk1.js +0 -2
- package/dist/web/assets/ChatView-DysPZPwF.js +0 -17
- package/dist/web/assets/FilePreview-CkSPwPdW.js +0 -8
- package/dist/web/assets/KanbanBoard-DH1wApt6.js +0 -1
- package/dist/web/assets/SettingsModal-CWlSSO_E.js +0 -5
- package/dist/web/assets/Sidebar-Dirk-XAQ.js +0 -1
- package/dist/web/assets/chevron-right-Bvu2j6hB.js +0 -1
- package/dist/web/assets/index-B7RyuO2x.css +0 -1
- package/dist/web/assets/message-square-plus-BgC981WF.js +0 -1
- package/dist/web/assets/plus-kzdwas-3.js +0 -1
- package/dist/web/assets/preload-helper-DvgLbiBV.js +0 -1
- package/dist/web/assets/team-D3XOVbxL.js +0 -1
- package/dist/web/assets/triangle-alert-cGqHxFsZ.js +0 -1
|
@@ -1,2 +1,2 @@
|
|
|
1
|
-
import{ih as F,ph as a}from"./chunk-kkzznz4w.js";import{wj as A,xj as o,zj as s}from"./chunk-m2x6pb4f.js";import{Ej as J1,Ij as $,Jj as Z,Kj as W,Lj as K}from"./chunk-4e4qtpca.js";import{fk as $1}from"./chunk-a95jmx2j.js";var w=[{min:0,max:59},{min:0,max:23},{min:1,max:31},{min:1,max:12},{min:0,max:7}],K1={Sun:0,Mon:1,Tue:2,Wed:3,Thu:4,Fri:5,Sat:6},u=new Map;function I(J,B,j){let Y=new Set;for(let H of J.split(",")){let[k,G]=H.split("/"),V=G?Number.parseInt(G,10):1;if(!Number.isInteger(V)||V<1)throw Error(`Invalid cron step in "${J}"`);let X=B,Q=j;if(k!=="*"&&k!=="")if(k.includes("-")){let[b,B1]=k.split("-");X=Number.parseInt(b,10),Q=Number.parseInt(B1,10)}else X=Number.parseInt(k,10),Q=X;if(!Number.isInteger(X)||!Number.isInteger(Q)||X<B||Q>j||X>Q)throw Error(`Invalid cron range "${k}" in field "${J}"`);for(let b=X;b<=Q;b+=V)Y.add(b)}return Y}function d(J){let B=J.trim().split(/\s+/);if(B.length!==5)throw Error(`Cron expression must have 5 fields (min hour dom mon dow), got ${B.length}`);let[j,Y,H,k,G]=B,V=I(G,w[4].min,w[4].max),X=new Set([...V].map((Q)=>Q===7?0:Q));return{minutes:I(j,w[0].min,w[0].max),hours:I(Y,w[1].min,w[1].max),daysOfMonth:I(H,w[2].min,w[2].max),months:I(k,w[3].min,w[3].max),daysOfWeek:X,domRestricted:H.trim()!=="*",dowRestricted:G.trim()!=="*"}}function Y1(J,B){if(!B)return{minute:J.getMinutes(),hour:J.getHours(),dayOfMonth:J.getDate(),month:J.getMonth()+1,dayOfWeek:J.getDay()};let j=u.get(B);if(!j)j=new Intl.DateTimeFormat("en-US",{timeZone:B,month:"numeric",day:"numeric",hour:"numeric",minute:"numeric",weekday:"short",hourCycle:"h23"}),u.set(B,j);let Y=Object.fromEntries(j.formatToParts(J).filter((H)=>H.type!=="literal").map((H)=>[H.type,H.value]));return{minute:Number(Y.minute),hour:Number(Y.hour),dayOfMonth:Number(Y.day),month:Number(Y.month),dayOfWeek:K1[Y.weekday]??-1}}function j1(J,B,j){let Y=Y1(B,j);if(!J.minutes.has(Y.minute))return!1;if(!J.hours.has(Y.hour))return!1;if(!J.months.has(Y.month))return!1;let H=J.daysOfMonth.has(Y.dayOfMonth),k=J.daysOfWeek.has(Y.dayOfWeek);if(J.domRestricted&&J.dowRestricted)return H||k;if(J.domRestricted)return H;if(J.dowRestricted)return k;return!0}function H1(J,B,j){let Y=d(J),H=new Date(B.getTime());H.setSeconds(0,0),H.setMinutes(H.getMinutes()+1);let k=new Date(B.getTime());k.setFullYear(k.getFullYear()+4);while(H.getTime()<=k.getTime()){if(j1(Y,H,j))return new Date(H.getTime());H.setMinutes(H.getMinutes()+1)}return null}var m={s:1000,m:60000,h:3600000,d:86400000};function e1(J){let j=J.trim().toLowerCase().match(/^(\d+)\s*([smhd]?)$/);if(!j)return null;let Y=Number.parseInt(j[1],10);if(!Number.isInteger(Y)||Y<=0)return null;let H=j[2]||"m";return Y*m[H]}function k1(J){for(let B of["d","h","m","s"]){let j=m[B];if(J%j===0)return`${J/j}${B}`}return`${Math.round(J/1000)}s`}function C(J,B,j){switch(J.kind){case"cron":{if(!J.cron)return null;try{return H1(J.cron,B,J.timezone)}catch{return null}}case"interval":{if(!J.intervalMs||J.intervalMs<=0)return null;let H=new Date((j??B).getTime()+J.intervalMs);return H.getTime()<=B.getTime()?new Date(B.getTime()+1000):H}case"once":{if(!J.runAt)return null;let Y=new Date(J.runAt);if(Number.isNaN(Y.getTime()))return null;return Y.getTime()>B.getTime()?Y:null}default:return null}}function L(J){switch(J.kind){case"cron":if(!J.cron)return"cron trigger requires a cron expression";try{if(d(J.cron),J.timezone)new Intl.DateTimeFormat("en-US",{timeZone:J.timezone}).format();return null}catch(B){return B instanceof Error?B.message:"invalid cron expression"}case"interval":if(!J.intervalMs||J.intervalMs<60000)return"interval trigger requires intervalMs >= 60000 (1 minute)";return null;case"once":{if(!J.runAt)return"once trigger requires runAt timestamp";let B=new Date(J.runAt);if(Number.isNaN(B.getTime()))return"once trigger runAt is not a valid date";return null}default:return"unknown trigger kind"}}function $0(J){switch(J.kind){case"cron":return`cron: ${J.cron??"?"}`;case"interval":return`every ${J.intervalMs?k1(J.intervalMs):"?"}`;case"once":return`once at ${J.runAt??"?"}`;default:return"unknown"}}import{mkdir as a1,readFile as t1}from"node:fs/promises";import Z1 from"node:path";import{nanoid as r1}from"nanoid";import y1 from"write-file-atomic";var q=160,Q1=240,h=$.String({pattern:"^[a-f0-9]{64}$"}),X1=Z($.Object({id:$.String({minLength:1,maxLength:128}),position:$.Integer({minimum:0,maximum:q-1}),queuedAt:$.String({minLength:20,maxLength:32}),kind:K(["user","internal"]),state:K(["pending","locked"]),delivery:K(["current_turn","next_turn","recovery"]),mutable:$.Boolean(),preview:$.Optional($.String({maxLength:Q1})),previewTruncated:$.Boolean(),attachmentCount:$.Integer({minimum:0,maximum:20})},{additionalProperties:!1})),g=Z($.Object({version:h,pending:$.Integer({minimum:0,maximum:q}),mutable:$.Integer({minimum:0,maximum:q}),locked:$.Integer({minimum:0,maximum:q}),internal:$.Integer({minimum:0,maximum:q}),items:$.Array(X1,{maxItems:q})},{additionalProperties:!1})),W1=$.Union([$.Object({type:$.Literal("remove"),messageId:$.String({minLength:1,maxLength:128})},{additionalProperties:!1}),$.Object({type:$.Literal("move"),messageId:$.String({minLength:1,maxLength:128}),toPosition:$.Integer({minimum:0,maximum:q-1})},{additionalProperties:!1})]),B0=Z($.Object({expectedVersion:h,operation:W1},{additionalProperties:!1})),K0=Z($.Object({snapshot:g},{additionalProperties:!1})),b1=K(["revision_conflict","already_claimed","immutable_origin","immutable_boundary","not_found","runtime_unavailable","invalid_mutation","storage_unavailable"]),Y0=Z($.Object({error:$.Object({code:b1,message:$.String({minLength:1,maxLength:256})},{additionalProperties:!1}),snapshot:g},{additionalProperties:!1}));var G1=K(["preferences","conventions","lessons","debugging"]),V1=$.Object({outcome:K(["nothing_to_store","disabled","failed"]),entries:$.Literal(0),topics:$.Tuple([])},{additionalProperties:!1}),w1=$.Object({outcome:$.Literal("written"),entries:$.Integer({minimum:1,maximum:20}),topics:$.Array(G1,{minItems:1,maxItems:4,uniqueItems:!0})},{additionalProperties:!1}),k0=Z($.Union([w1,V1]));var c=128,D1=128,z1=8,q1=1e6,v1=8640000000000000,D=$.Integer({minimum:0,maximum:q1}),M=$.Integer({minimum:0,maximum:v1}),x1=$.String({minLength:1,maxLength:c,pattern:"^[^\x00-\x1F]+$"}),P1=K(["starting","thinking","responding","executing_tools","compacting","continuing"]),f1=$.Refine($.Object({name:x1,kind:$.Optional(K(["readonly","write","execute"])),startedAt:M,progress:$.Optional(D),total:$.Optional(D)},{additionalProperties:!1}),(J)=>J.progress===void 0&&J.total===void 0||J.progress!==void 0&&J.total!==void 0&&J.progress<=J.total,()=>"progress and total must be present together with progress <= total"),O1=$.Refine($.Object({phase:P1,startedAt:M,updatedAt:M,turn:D,maxTurns:$.Union([D,$.Null()]),outputStarted:$.Boolean(),toolCallsStarted:D,toolCallsCompleted:D,activeTools:$.Array(f1,{maxItems:z1}),activeToolOverflow:D},{additionalProperties:!1}),(J)=>J.startedAt<=J.updatedAt&&J.toolCallsCompleted<=J.toolCallsStarted&&J.activeTools.length+J.activeToolOverflow<=J.toolCallsStarted-J.toolCallsCompleted,()=>"turn activity snapshot counters and timestamps are inconsistent"),W0=Z($.Object({version:$.Literal(1),generation:$.String({minLength:1,maxLength:D1,pattern:"^[^\x00-\x1F]+$"}),revision:D,snapshot:$.Union([O1,$.Null()])},{additionalProperties:!1}));function b0(J){let B=[...J].filter((j)=>{let Y=j.codePointAt(0)??0;return Y>31&&Y!==127}).join("").trim().slice(0,c);if(!B)throw Error("Turn activity tool name is empty");return B}var n=16384;function V0(J){let B=/^\s*\/btw(?:\s+([\s\S]*))?\s*$/iu.exec(J);if(!B)return;return{question:(B[1]??"").trim()}}var v=Z(K(["default","autoEdit","yolo","plan"]));var R=Z(K(["user","assistant","system","tool"])),I1=Z($.Union([$.Object({type:$.Literal("text"),text:$.String()}),$.Object({type:$.Literal("image_url"),image_url:$.Object({url:$.String()})})])),t=$.Union([$.String(),$.Array(I1)]),P0=Z($.Object({id:$.String(),role:R,content:t,timestamp:$.Number(),metadata:$.Optional($.Record($.String(),$.Unknown())),thinkingContent:$.Optional($.String()),tool_call_id:$.Optional($.String()),name:$.Optional($.String()),tool_calls:$.Optional($.Unknown())})),N1=Z(K(["queued","running","completed","failed","cancelled","interrupted"])),N=Z(K(["local","worktree"])),E=Z(K(["high","medium","low"])),_=Z(K(["feature","bug","maintenance","research"])),U1=Z(K(["applied","discarded","conflicted"])),F1=Z($.Object({status:U1,updatedAt:$.String(),sourceCommit:$.Optional($.String()),changedFiles:$.Optional($.Integer({minimum:0})),message:$.Optional($.String())})),C1=Z($.Object({changedFiles:$.Integer({minimum:0}),additions:$.Integer({minimum:0}),deletions:$.Integer({minimum:0}),commits:$.Integer({minimum:0})})),L1=Z($.Object({path:$.String({minLength:1}),patch:$.String({maxLength:2097152}),additions:$.Integer({minimum:0}),deletions:$.Integer({minimum:0}),binary:$.Boolean(),truncated:$.Boolean()})),f0=Z($.Object({sessionId:$.String(),projectPath:$.String(),baseCommit:$.String(),files:$.Array(L1,{maxItems:100}),truncated:$.Boolean()})),M1=$.Union([$.String(),$.Number(),$.Boolean(),$.Array($.String())]),A1=Z($.Object({name:$.String(),type:K(["string","number","integer","boolean","select","multi-select"]),title:$.String(),description:$.Optional($.String()),required:$.Boolean(),defaultValue:$.Optional(M1),options:$.Optional($.Array($.Object({value:$.String(),label:$.String()}))),format:$.Optional(K(["date","uri","email","date-time"])),minimum:$.Optional($.Number()),maximum:$.Optional($.Number()),minLength:$.Optional($.Number()),maxLength:$.Optional($.Number()),minItems:$.Optional($.Number()),maxItems:$.Optional($.Number())})),O0=Z($.Object({serverName:$.String(),mode:K(["form","url"]),message:$.String(),fields:$.Optional($.Array(A1)),requestedSchema:$.Optional($.Record($.String(),$.Unknown())),url:$.Optional($.String()),domain:$.Optional($.String()),elicitationId:$.Optional($.String())})),R1=Z($.Object({type:K(["permission","question","elicitation"]),requestId:$.String()})),E1=Z($.Object({code:K(["authentication","permission","rate_limit","timeout","network","model_unavailable","context_limit","unsupported_input","workspace_unavailable","capacity","runtime"]),message:$.String({minLength:1,maxLength:500}),retryable:$.Boolean(),resource:$.Optional(K(["pending_count","pending_bytes","resident_runtimes"]))})),x=Z(K(["auto","off","minimal","low","medium","high","xhigh","max"])),P=Z(K(["auto","standard","fast","flex"])),f=Z(K(["auto","low","medium","high"])),z=Z($.Union([K(["auto","pragmatic","friendly","explanatory"]),$.String({minLength:7,maxLength:300,pattern:"^(?:(?:user|project):[a-z0-9][a-z0-9._-]{0,63}(?::[a-z0-9][a-z0-9._-]{0,63}){0,3}|plugin:[a-z0-9][a-z0-9._-]{0,63}:[a-z0-9][a-z0-9._-]{0,63}(?::[a-z0-9][a-z0-9._-]{0,63}){0,3})$"})])),U=Z($.Object({sessionId:$.String(),projectPath:$.String(),title:$.Optional($.String()),gitBranch:$.Optional($.String()),rootId:$.String(),parentId:$.Optional($.String()),relationType:$.Optional(K(["subagent","fork"])),resumedFrom:$.Optional($.String()),rootAgentId:$.Optional($.String()),resumeDepth:$.Optional($.Integer({minimum:0})),taskStatus:W(N1,"completed"),taskStatusReason:$.Optional($.String()),taskFailure:$.Optional(E1),taskStartedAt:$.Optional($.String()),taskCompletedAt:$.Optional($.String()),taskPromptSummary:$.Optional($.String()),taskPriority:$.Optional(E),taskKind:$.Optional(_),taskDueAt:$.Optional($.String()),taskModelId:$.Optional($.String()),selectedModelId:$.Optional($.String()),permissionMode:$.Optional(v),reasoningEffort:$.Optional(x),serviceTier:$.Optional(P),responseVerbosity:$.Optional(f),communicationStyle:$.Optional(z),communicationStyleDigest:$.Optional($.String({pattern:"^[a-f0-9]{64}$"})),projectInstructionsDigest:$.Optional($.String({pattern:"^[a-f0-9]{64}$"})),taskRetryAvailable:$.Optional($.Boolean()),taskRetriedFrom:$.Optional($.Object({sessionId:$.String(),projectPath:$.String()})),taskDelivery:$.Optional(F1),taskIsolation:$.Optional(N),taskSourceProjectPath:$.Optional($.String()),taskWorktreePath:$.Optional($.String()),taskWorktreeBranch:$.Optional($.String()),taskBaseCommit:$.Optional($.String()),taskDiffStat:$.Optional(C1),taskQueuePosition:$.Optional($.Integer({minimum:1})),taskQueueDepth:$.Optional($.Integer({minimum:0})),taskConcurrencyLimit:$.Optional($.Integer({minimum:1})),archivedAt:$.Optional($.String()),archivedBySessionId:$.Optional($.String()),pendingInteraction:$.Optional(R1),messageCount:$.Number(),firstMessageTime:$.String(),lastMessageTime:$.String(),hasErrors:$.Boolean()})),I0=Z($.Object({sessions:$.Array(U),nextCursor:$.Optional($.String())})),N0=Z($.Object({session:U,archivedSessionIds:$.Array($.String())})),U0=Z($.Object({session:U,restoredSessionIds:$.Array($.String())})),_1=$.Object({rootTurnId:$.Optional($.String({minLength:1,maxLength:F})),currentTurnId:$.String({minLength:1,maxLength:F}),parentTurnId:$.Optional($.String({minLength:1,maxLength:F}))},{additionalProperties:!1}),F0=Z($.Object({version:$.Union([$.Literal(1),$.Literal(2)]),sessionId:$.String(),goalId:$.String(),objective:$.String(),status:K(["active","verifying","paused","blocked","usage_limited","budget_limited","complete"]),tokenBudget:$.Optional($.Number()),tokensUsed:$.Number(),timeUsedSeconds:$.Number(),continuationCount:$.Number(),statusReason:$.Optional($.String()),completionVerification:$.Optional($.Object({attempt:$.Integer({minimum:1}),status:K(["pending","pass","fail","partial"]),requestedAt:$.String(),completedAt:$.Optional($.String()),verifierSessionId:$.Optional($.String()),summary:$.Optional($.String()),evidenceSha256:$.Optional($.String({pattern:"^[a-f0-9]{64}$"}))})),prematureStop:$.Optional($.Object({pattern:$.Unsafe({type:"string"}),consecutiveCount:$.Integer({minimum:1}),detectedAt:$.String()})),executionHostFailure:$.Optional($.Object({category:K(a),consecutiveCount:$.Integer({minimum:1,maximum:3}),detectedAt:$.String()},{additionalProperties:!1})),turnLineage:$.Optional(_1),verificationStall:$.Optional($.Unsafe({type:"object"})),executionFrontier:$.Optional($.Object({taskListId:$.String({minLength:1,maxLength:256}),total:$.Integer({minimum:0}),completed:$.Integer({minimum:0}),inProgress:$.Integer({minimum:0}),pending:$.Integer({minimum:0}),blocked:$.Integer({minimum:0}),nextTask:$.Optional($.Object({id:$.String({minLength:1}),subject:$.String({minLength:1,maxLength:512}),priority:K(["high","medium","low"])})),digestSha256:$.String({pattern:"^[a-f0-9]{64}$"}),observedAt:$.String()})),frontierStall:$.Optional($.Object({category:K(["waiting_dependency","same_task_no_effect","repeated_deferral"]),consecutiveCount:$.Integer({minimum:1,maximum:3}),digestSha256:$.String({pattern:"^[a-f0-9]{64}$"}),detectedAt:$.String()})),createdAt:$.String(),updatedAt:$.String()})),r=Z($.Object({id:$.Optional($.String({minLength:1})),role:R,content:t,metadata:$.Optional($.Unknown()),reasoningContent:$.Optional($.String()),thinkingContent:$.Optional($.String()),tool_call_id:$.Optional($.String()),name:$.Optional($.String()),tool_calls:$.Optional($.Unknown())})),C0=Z($.Object({session:U,messages:$.Array(r)})),y=Z(K(["conversation","code","both"])),S1=Z($.Object({messageId:$.String(),preview:$.String(),createdAt:$.String(),fileCount:$.Integer({minimum:0})})),L0=Z($.Object({targetMessageId:$.String({minLength:1}),mode:W(y,"conversation")})),M0=Z($.Object({checkpoint:S1,mode:y,removedTurns:$.Integer({minimum:1}),restoredFiles:$.Array($.String()),messages:$.Array(r)})),l1=K(["running","completed","failed","cancelled"]),i=Z($.Object({id:$.String(),subagentType:$.String(),description:$.String(),status:l1,background:$.Boolean(),rootAgentId:$.String(),resumedFrom:$.Optional($.String()),resumeDepth:$.Integer({minimum:0}),createdAt:$.Number(),lastActiveAt:$.Number(),completedAt:$.Optional($.Number()),restartRecovery:$.Optional($.Object({outcome:K(["completed","interrupted","failed"]),recoveredAt:$.Number()})),result:$.Optional($.Object({success:$.Boolean(),message:$.String(),error:$.Optional($.String()),verificationCommands:$.Optional($.Array($.String())),verificationVerdict:$.Optional(K(["pass","fail","partial"])),modifiedFiles:$.Optional($.Array($.String()))})),stats:$.Optional($.Object({tokens:$.Optional($.Number()),toolCalls:$.Optional($.Number()),duration:$.Optional($.Number())}))})),A0=Z($.Object({prompt:$.String({minLength:1,maxLength:32000,pattern:"\\S"})})),R0=Z($.Object({source:i,session:i})),E0=Z($.Object({sessionId:$.String(),projectPath:$.String()})),_0=Z($.Object({path:$.String(),name:$.String(),gitBranch:$.Optional($.String()),available:$.Boolean(),isCurrent:$.Boolean(),boundAt:$.String()})),S0=Z($.Union([$.Object({cancelled:$.Literal(!0)}),$.Object({cancelled:$.Literal(!1),path:$.String({minLength:1})})])),l0=Z($.Object({type:$.String(),seq:$.Optional($.Number()),properties:$.Record($.String(),$.Unknown())})),T=$.Object({type:K(["file","image","url"]),path:$.Optional($.String()),url:$.Optional($.String()),content:$.Optional($.String({maxLength:o})),mimeType:$.Optional($.String()),name:$.Optional($.String())}),u1=20,d1=12288,m1=4096,h1=$.Object({id:$.String({minLength:1,maxLength:200}),text:$.String({minLength:1,maxLength:d1}),sourceMessageId:$.String({minLength:1,maxLength:500}),sourceRole:K(["user","assistant"]),comment:$.Optional($.String({maxLength:m1}))}),p=$.Record($.String(),$.Unknown()),u0=Z($.Object({prompt:$.String({minLength:1,maxLength:32000,pattern:"\\S"}),title:$.Optional($.String({minLength:1,maxLength:200})),taskPriority:W(E,"medium"),taskKind:W(_,"feature"),taskDueAt:$.Optional($.String({minLength:1,maxLength:64})),projectPath:$.Optional($.String()),modelId:$.Optional($.String({minLength:1,maxLength:500})),reasoningEffort:$.Optional(x),serviceTier:$.Optional(P),responseVerbosity:$.Optional(f),communicationStyle:$.Optional(z),isolation:W(N,"worktree"),permissionMode:W(v,"default"),attachments:$.Optional($.Array(T,{maxItems:A})),outputSchema:$.Optional(p)})),d0=Z($.Object({title:$.Optional($.String({minLength:1,maxLength:200})),taskPriority:$.Optional(E),taskKind:$.Optional(_),taskDueAt:$.Optional($.Union([$.String({minLength:1,maxLength:64}),$.Null()]))})),m0=Z($.Object({session:U,runId:$.String(),messageId:$.String(),status:K(["queued","running"]),queuePosition:$.Optional($.Integer({minimum:1})),queueDepth:$.Optional($.Integer({minimum:0})),maxConcurrentTasks:$.Optional($.Integer({minimum:1}))})),h0=Z($.Object({action:K(["apply","discard"])})),S=Z($.Object({kind:K(["cron","interval","once"]),cron:$.Optional($.String({minLength:1,maxLength:120})),intervalMs:$.Optional($.Integer({minimum:60000})),runAt:$.Optional($.String({minLength:1,maxLength:40})),timezone:$.Optional($.String({minLength:1,maxLength:80}))})),g1=Z($.Object({modelId:$.Optional($.String({minLength:1,maxLength:500})),reasoningEffort:$.Optional(x),serviceTier:$.Optional(P),responseVerbosity:$.Optional(f),communicationStyle:$.Optional(z),isolation:W(N,"worktree"),permissionMode:W(v,"default")})),l=Z($.Object({id:$.String(),title:$.Optional($.String({minLength:1,maxLength:200})),prompt:$.String({minLength:1,maxLength:32000,pattern:"\\S"}),projectPath:$.String({minLength:1}),trigger:S,dispatch:g1,enabled:$.Boolean(),createdAt:$.String(),updatedAt:$.String(),nextRunAt:$.Union([$.String(),$.Null()]),expiresAt:$.Union([$.String(),$.Null()]),lastRunAt:$.Optional($.String()),lastRunSessionId:$.Optional($.String()),lastStatus:$.Optional(K(["queued","running","completed","failed","cancelled","interrupted","error"])),lastError:$.Optional($.String()),runCount:$.Integer({minimum:0})})),g0=Z($.Object({title:$.Optional($.String({minLength:1,maxLength:200})),prompt:$.String({minLength:1,maxLength:32000,pattern:"\\S"}),projectPath:$.String({minLength:1}),trigger:S,modelId:$.Optional($.String({minLength:1,maxLength:500})),reasoningEffort:$.Optional(x),serviceTier:$.Optional(P),responseVerbosity:$.Optional(f),communicationStyle:$.Optional(z),isolation:W(N,"worktree"),permissionMode:W(v,"default"),enabled:W($.Boolean(),!0)})),c0=Z($.Object({title:$.Optional($.String({minLength:1,maxLength:200})),prompt:$.Optional($.String({minLength:1,maxLength:32000,pattern:"\\S"})),trigger:$.Optional(S),modelId:$.Optional($.String({minLength:1,maxLength:500})),reasoningEffort:$.Optional(x),serviceTier:$.Optional(P),responseVerbosity:$.Optional(f),communicationStyle:$.Optional(z),isolation:$.Optional(N),permissionMode:$.Optional(v),enabled:$.Optional($.Boolean())})),n0=Z($.Object({schedules:$.Array(l)})),i0=Z($.Object({content:$.String({maxLength:s}),projectPath:$.Optional($.String()),modelId:$.Optional($.String({minLength:1,maxLength:500})),reasoningEffort:$.Optional(x),serviceTier:$.Optional(P),responseVerbosity:$.Optional(f),communicationStyle:$.Optional(z),permissionMode:$.Optional(v),attachments:$.Optional($.Array(T,{maxItems:A})),annotations:$.Optional($.Array(h1,{maxItems:u1})),outputSchema:$.Optional(p)})),c1=K(["completed","failed","aborted","timed_out","spawn_error"]),n1=Z($.Object({version:$.Literal(1),command:$.String(),status:c1,exitCode:$.Union([$.Integer(),$.Null()]),durationMs:$.Number({minimum:0}),stdout:$.String(),stderr:$.String(),stdoutOmittedBytes:$.Integer({minimum:0}),stderrOmittedBytes:$.Integer({minimum:0}),binaryOutput:$.Boolean(),truncated:$.Boolean()})),o0=Z($.Object({command:$.String({minLength:1,maxLength:32768,pattern:"^(?![\\s\\S]*\\u0000)(?=[\\s\\S]*\\S)[\\s\\S]*$"}),projectPath:$.Optional($.String())})),s0=Z($.Object({executionId:$.String(),messageId:$.String(),record:n1,auxiliary:$.Boolean(),delivery:$.Optional(K(["current_turn","next_turn"])),queued:$.Optional($.Integer({minimum:0}))})),a0=Z($.Object({question:$.String({minLength:1,maxLength:n,pattern:"^(?![\\s\\S]*\\x00)(?=[\\s\\S]*\\S)[\\s\\S]*$"}),projectPath:$.Optional($.String())})),t0=Z($.Object({response:$.String({minLength:1}),durationMs:$.Number({minimum:0}),modelId:$.Optional($.String()),usage:$.Optional($.Object({promptTokens:$.Number({minimum:0}),completionTokens:$.Number({minimum:0}),totalTokens:$.Number({minimum:0}),reasoningTokens:$.Optional($.Number({minimum:0})),cacheCreationInputTokens:$.Optional($.Number({minimum:0})),cacheReadInputTokens:$.Optional($.Number({minimum:0})),costUsd:$.Optional($.Number({minimum:0}))}))})),r0=Z($.Object({projectPath:$.String(),kind:K(["uncommitted","base","commit"]),ref:$.Optional($.String({maxLength:200})),instructions:$.Optional($.String({maxLength:4000})),modelId:$.Optional($.String({minLength:1,maxLength:200}))})),y0=Z($.Object({reviewId:$.String(),status:$.Literal("running")})),T0=Z($.Object({messageId:$.String(),role:R,content:$.String(),timestamp:$.String()})),p0=Z($.Object({approved:$.Boolean(),remember:$.Optional($.Boolean()),scope:$.Optional(K(["once","session","project"])),targetMode:$.Optional(v),feedback:$.Optional($.String()),answers:$.Optional($.Record($.String(),$.Union([$.String(),$.Array($.String())]))),elicitation:$.Optional($.Object({action:K(["accept","decline","cancel"]),content:$.Optional($.Record($.String(),$.Union([$.String({maxLength:4000}),$.Number(),$.Boolean(),$.Array($.String({maxLength:1000}),{maxItems:100})]),{maxProperties:32}))}))})),i1=Z($.Object({id:z,name:$.String({minLength:1,maxLength:80}),description:$.String({minLength:1,maxLength:256}),source:K(["built-in","user","project","plugin"]),contentSha256:$.Optional($.String({pattern:"^[a-f0-9]{64}$"}))})),e0=Z($.Object({id:$.String(),displayName:$.Optional($.String()),provider:$.String(),model:$.String(),contextWindow:$.Optional($.Number()),maxTokens:$.Optional($.Number()),reasoning:$.Optional($.Boolean()),supportedReasoningEfforts:$.Optional($.Array(K(["off","minimal","low","medium","high","xhigh","max"]))),supportedServiceTiers:$.Optional($.Array(K(["standard","fast","flex"]))),supportedResponseVerbosities:$.Optional($.Array(K(["low","medium","high"]))),communicationStyles:$.Optional($.Array(i1,{maxItems:36})),input:$.Optional($.Array(K(["text","image"]))),overrides:$.Optional($.Object({baseUrl:$.Optional($.String()),temperature:$.Optional($.Number()),maxOutputTokens:$.Optional($.Number()),timeout:$.Optional($.Number()),streamIdleTimeout:$.Optional($.Number({minimum:1000}))}))})),$2=Z(K(["vs-dark","vs-light","hc-black"])),o1=Z(K(["light","dark","system"])),s1=Z($.Object({language:$.String(),codeTheme:$.String(),uiTheme:o1,autoSaveSessions:$.Boolean(),notifyBuild:$.Boolean(),notifyErrors:$.Boolean(),notifySounds:$.Boolean(),privacyTelemetry:$.Boolean(),privacyCrash:$.Boolean(),agentTeamsEnabled:$.Boolean(),communicationStyle:$.Optional(z)})),J2=Z($.Partial(s1));var e=J1("Service"),T1=1;function p1(){return Z1.join($1(),"schedules.json")}class O{filePath;static instance;static getInstance(){if(!O.instance)O.instance=new O;return O.instance}writeChain=Promise.resolve();constructor(J=p1()){this.filePath=J}async readFile(){try{let J=await t1(this.filePath,"utf-8"),B=JSON.parse(J);if(!B||!Array.isArray(B.schedules))return[];let j=[],Y=0;for(let H of B.schedules){let k=l.safeParse(H);if(k.success)j.push(k.data);else Y+=1}if(Y>0)e.warn(`[ScheduleStore] Ignored ${Y} invalid persisted schedule(s)`);return j}catch(J){let B=J;if(B.code!=="ENOENT")e.warn("[ScheduleStore] Failed to read schedules; treating as empty:",B);return[]}}async writeFile(J){await a1(Z1.dirname(this.filePath),{recursive:!0,mode:493});let B={version:T1,schedules:J};await y1(this.filePath,JSON.stringify(B,null,2),{mode:384})}serializeWrite(J){let B=this.writeChain.then(J,J);return this.writeChain=B.then(()=>{return},()=>{return}),B}async list(){return this.readFile()}async get(J){return(await this.readFile()).find((j)=>j.id===J)}async create(J){return this.serializeWrite(async()=>{let B=J.trigger.kind==="cron"&&!J.trigger.timezone?{...J.trigger,timezone:Intl.DateTimeFormat().resolvedOptions().timeZone}:J.trigger,j=L(B);if(j)throw Error(j);let Y=new Date;if(B.kind==="once"&&new Date(B.runAt).getTime()<=Y.getTime())throw Error("once trigger runAt must be in the future");let H=Y.toISOString(),k=C(B,Y),G={id:r1(10),title:J.title,prompt:J.prompt,projectPath:J.projectPath,trigger:B,dispatch:{modelId:J.modelId,reasoningEffort:J.reasoningEffort,serviceTier:J.serviceTier,responseVerbosity:J.responseVerbosity,communicationStyle:J.communicationStyle,isolation:J.isolation??"worktree",permissionMode:J.permissionMode??"default"},enabled:J.enabled??!0,createdAt:H,updatedAt:H,nextRunAt:k?k.toISOString():null,expiresAt:null,runCount:0},V=await this.readFile();return V.push(G),await this.writeFile(V),G})}async update(J,B){return this.serializeWrite(async()=>{let j=await this.readFile(),Y=j.findIndex((Q)=>Q.id===J);if(Y===-1)return;let H=j[Y];if(B.trigger){let Q=B.trigger.kind==="cron"&&!B.trigger.timezone?{...B.trigger,timezone:Intl.DateTimeFormat().resolvedOptions().timeZone}:B.trigger,b=L(Q);if(b)throw Error(b);if(Q.kind==="once"&&new Date(Q.runAt).getTime()<=Date.now())throw Error("once trigger runAt must be in the future");B={...B,trigger:Q}}let k={...H,...B,dispatch:B.dispatch?{...H.dispatch,...B.dispatch}:H.dispatch,updatedAt:new Date().toISOString()},G=!H.enabled,V=k.enabled,X=B.trigger!==void 0;if((X||G&&V)&&B.nextRunAt===void 0){let Q=new Date,b=C(k.trigger,Q);if(k.nextRunAt=b?b.toISOString():null,X)k.expiresAt=null}return j[Y]=k,await this.writeFile(j),k})}async remove(J){return this.serializeWrite(async()=>{let B=await this.readFile(),j=B.filter((Y)=>Y.id!==J);if(j.length===B.length)return!1;return await this.writeFile(j),!0})}async setEnabled(J,B){return this.update(J,{enabled:B})}}var v2=O.getInstance();
|
|
1
|
+
import{ih as F,ph as a}from"./chunk-kkzznz4w.js";import{wj as A,xj as o,zj as s}from"./chunk-m2x6pb4f.js";import{Ej as J1,Ij as $,Jj as Z,Kj as W,Lj as K}from"./chunk-saz6mwpq.js";import{dk as $1}from"./chunk-ed2hdrwe.js";var w=[{min:0,max:59},{min:0,max:23},{min:1,max:31},{min:1,max:12},{min:0,max:7}],K1={Sun:0,Mon:1,Tue:2,Wed:3,Thu:4,Fri:5,Sat:6},u=new Map;function I(J,B,j){let Y=new Set;for(let H of J.split(",")){let[k,G]=H.split("/"),V=G?Number.parseInt(G,10):1;if(!Number.isInteger(V)||V<1)throw Error(`Invalid cron step in "${J}"`);let X=B,Q=j;if(k!=="*"&&k!=="")if(k.includes("-")){let[b,B1]=k.split("-");X=Number.parseInt(b,10),Q=Number.parseInt(B1,10)}else X=Number.parseInt(k,10),Q=X;if(!Number.isInteger(X)||!Number.isInteger(Q)||X<B||Q>j||X>Q)throw Error(`Invalid cron range "${k}" in field "${J}"`);for(let b=X;b<=Q;b+=V)Y.add(b)}return Y}function d(J){let B=J.trim().split(/\s+/);if(B.length!==5)throw Error(`Cron expression must have 5 fields (min hour dom mon dow), got ${B.length}`);let[j,Y,H,k,G]=B,V=I(G,w[4].min,w[4].max),X=new Set([...V].map((Q)=>Q===7?0:Q));return{minutes:I(j,w[0].min,w[0].max),hours:I(Y,w[1].min,w[1].max),daysOfMonth:I(H,w[2].min,w[2].max),months:I(k,w[3].min,w[3].max),daysOfWeek:X,domRestricted:H.trim()!=="*",dowRestricted:G.trim()!=="*"}}function Y1(J,B){if(!B)return{minute:J.getMinutes(),hour:J.getHours(),dayOfMonth:J.getDate(),month:J.getMonth()+1,dayOfWeek:J.getDay()};let j=u.get(B);if(!j)j=new Intl.DateTimeFormat("en-US",{timeZone:B,month:"numeric",day:"numeric",hour:"numeric",minute:"numeric",weekday:"short",hourCycle:"h23"}),u.set(B,j);let Y=Object.fromEntries(j.formatToParts(J).filter((H)=>H.type!=="literal").map((H)=>[H.type,H.value]));return{minute:Number(Y.minute),hour:Number(Y.hour),dayOfMonth:Number(Y.day),month:Number(Y.month),dayOfWeek:K1[Y.weekday]??-1}}function j1(J,B,j){let Y=Y1(B,j);if(!J.minutes.has(Y.minute))return!1;if(!J.hours.has(Y.hour))return!1;if(!J.months.has(Y.month))return!1;let H=J.daysOfMonth.has(Y.dayOfMonth),k=J.daysOfWeek.has(Y.dayOfWeek);if(J.domRestricted&&J.dowRestricted)return H||k;if(J.domRestricted)return H;if(J.dowRestricted)return k;return!0}function H1(J,B,j){let Y=d(J),H=new Date(B.getTime());H.setSeconds(0,0),H.setMinutes(H.getMinutes()+1);let k=new Date(B.getTime());k.setFullYear(k.getFullYear()+4);while(H.getTime()<=k.getTime()){if(j1(Y,H,j))return new Date(H.getTime());H.setMinutes(H.getMinutes()+1)}return null}var m={s:1000,m:60000,h:3600000,d:86400000};function e1(J){let j=J.trim().toLowerCase().match(/^(\d+)\s*([smhd]?)$/);if(!j)return null;let Y=Number.parseInt(j[1],10);if(!Number.isInteger(Y)||Y<=0)return null;let H=j[2]||"m";return Y*m[H]}function k1(J){for(let B of["d","h","m","s"]){let j=m[B];if(J%j===0)return`${J/j}${B}`}return`${Math.round(J/1000)}s`}function C(J,B,j){switch(J.kind){case"cron":{if(!J.cron)return null;try{return H1(J.cron,B,J.timezone)}catch{return null}}case"interval":{if(!J.intervalMs||J.intervalMs<=0)return null;let H=new Date((j??B).getTime()+J.intervalMs);return H.getTime()<=B.getTime()?new Date(B.getTime()+1000):H}case"once":{if(!J.runAt)return null;let Y=new Date(J.runAt);if(Number.isNaN(Y.getTime()))return null;return Y.getTime()>B.getTime()?Y:null}default:return null}}function L(J){switch(J.kind){case"cron":if(!J.cron)return"cron trigger requires a cron expression";try{if(d(J.cron),J.timezone)new Intl.DateTimeFormat("en-US",{timeZone:J.timezone}).format();return null}catch(B){return B instanceof Error?B.message:"invalid cron expression"}case"interval":if(!J.intervalMs||J.intervalMs<60000)return"interval trigger requires intervalMs >= 60000 (1 minute)";return null;case"once":{if(!J.runAt)return"once trigger requires runAt timestamp";let B=new Date(J.runAt);if(Number.isNaN(B.getTime()))return"once trigger runAt is not a valid date";return null}default:return"unknown trigger kind"}}function $0(J){switch(J.kind){case"cron":return`cron: ${J.cron??"?"}`;case"interval":return`every ${J.intervalMs?k1(J.intervalMs):"?"}`;case"once":return`once at ${J.runAt??"?"}`;default:return"unknown"}}import{mkdir as a1,readFile as t1}from"node:fs/promises";import Z1 from"node:path";import{nanoid as r1}from"nanoid";import y1 from"write-file-atomic";var q=160,Q1=240,h=$.String({pattern:"^[a-f0-9]{64}$"}),X1=Z($.Object({id:$.String({minLength:1,maxLength:128}),position:$.Integer({minimum:0,maximum:q-1}),queuedAt:$.String({minLength:20,maxLength:32}),kind:K(["user","internal"]),state:K(["pending","locked"]),delivery:K(["current_turn","next_turn","recovery"]),mutable:$.Boolean(),preview:$.Optional($.String({maxLength:Q1})),previewTruncated:$.Boolean(),attachmentCount:$.Integer({minimum:0,maximum:20})},{additionalProperties:!1})),g=Z($.Object({version:h,pending:$.Integer({minimum:0,maximum:q}),mutable:$.Integer({minimum:0,maximum:q}),locked:$.Integer({minimum:0,maximum:q}),internal:$.Integer({minimum:0,maximum:q}),items:$.Array(X1,{maxItems:q})},{additionalProperties:!1})),W1=$.Union([$.Object({type:$.Literal("remove"),messageId:$.String({minLength:1,maxLength:128})},{additionalProperties:!1}),$.Object({type:$.Literal("move"),messageId:$.String({minLength:1,maxLength:128}),toPosition:$.Integer({minimum:0,maximum:q-1})},{additionalProperties:!1})]),B0=Z($.Object({expectedVersion:h,operation:W1},{additionalProperties:!1})),K0=Z($.Object({snapshot:g},{additionalProperties:!1})),b1=K(["revision_conflict","already_claimed","immutable_origin","immutable_boundary","not_found","runtime_unavailable","invalid_mutation","storage_unavailable"]),Y0=Z($.Object({error:$.Object({code:b1,message:$.String({minLength:1,maxLength:256})},{additionalProperties:!1}),snapshot:g},{additionalProperties:!1}));var G1=K(["preferences","conventions","lessons","debugging"]),V1=$.Object({outcome:K(["nothing_to_store","disabled","failed"]),entries:$.Literal(0),topics:$.Tuple([])},{additionalProperties:!1}),w1=$.Object({outcome:$.Literal("written"),entries:$.Integer({minimum:1,maximum:20}),topics:$.Array(G1,{minItems:1,maxItems:4,uniqueItems:!0})},{additionalProperties:!1}),k0=Z($.Union([w1,V1]));var c=128,D1=128,z1=8,q1=1e6,v1=8640000000000000,D=$.Integer({minimum:0,maximum:q1}),M=$.Integer({minimum:0,maximum:v1}),x1=$.String({minLength:1,maxLength:c,pattern:"^[^\x00-\x1F]+$"}),P1=K(["starting","thinking","responding","executing_tools","compacting","continuing"]),f1=$.Refine($.Object({name:x1,kind:$.Optional(K(["readonly","write","execute"])),startedAt:M,progress:$.Optional(D),total:$.Optional(D)},{additionalProperties:!1}),(J)=>J.progress===void 0&&J.total===void 0||J.progress!==void 0&&J.total!==void 0&&J.progress<=J.total,()=>"progress and total must be present together with progress <= total"),O1=$.Refine($.Object({phase:P1,startedAt:M,updatedAt:M,turn:D,maxTurns:$.Union([D,$.Null()]),outputStarted:$.Boolean(),toolCallsStarted:D,toolCallsCompleted:D,activeTools:$.Array(f1,{maxItems:z1}),activeToolOverflow:D},{additionalProperties:!1}),(J)=>J.startedAt<=J.updatedAt&&J.toolCallsCompleted<=J.toolCallsStarted&&J.activeTools.length+J.activeToolOverflow<=J.toolCallsStarted-J.toolCallsCompleted,()=>"turn activity snapshot counters and timestamps are inconsistent"),W0=Z($.Object({version:$.Literal(1),generation:$.String({minLength:1,maxLength:D1,pattern:"^[^\x00-\x1F]+$"}),revision:D,snapshot:$.Union([O1,$.Null()])},{additionalProperties:!1}));function b0(J){let B=[...J].filter((j)=>{let Y=j.codePointAt(0)??0;return Y>31&&Y!==127}).join("").trim().slice(0,c);if(!B)throw Error("Turn activity tool name is empty");return B}var n=16384;function V0(J){let B=/^\s*\/btw(?:\s+([\s\S]*))?\s*$/iu.exec(J);if(!B)return;return{question:(B[1]??"").trim()}}var v=Z(K(["default","autoEdit","yolo","plan"]));var R=Z(K(["user","assistant","system","tool"])),I1=Z($.Union([$.Object({type:$.Literal("text"),text:$.String()}),$.Object({type:$.Literal("image_url"),image_url:$.Object({url:$.String()})})])),t=$.Union([$.String(),$.Array(I1)]),P0=Z($.Object({id:$.String(),role:R,content:t,timestamp:$.Number(),metadata:$.Optional($.Record($.String(),$.Unknown())),thinkingContent:$.Optional($.String()),tool_call_id:$.Optional($.String()),name:$.Optional($.String()),tool_calls:$.Optional($.Unknown())})),N1=Z(K(["queued","running","completed","failed","cancelled","interrupted"])),N=Z(K(["local","worktree"])),E=Z(K(["high","medium","low"])),_=Z(K(["feature","bug","maintenance","research"])),U1=Z(K(["applied","discarded","conflicted"])),F1=Z($.Object({status:U1,updatedAt:$.String(),sourceCommit:$.Optional($.String()),changedFiles:$.Optional($.Integer({minimum:0})),message:$.Optional($.String())})),C1=Z($.Object({changedFiles:$.Integer({minimum:0}),additions:$.Integer({minimum:0}),deletions:$.Integer({minimum:0}),commits:$.Integer({minimum:0})})),L1=Z($.Object({path:$.String({minLength:1}),patch:$.String({maxLength:2097152}),additions:$.Integer({minimum:0}),deletions:$.Integer({minimum:0}),binary:$.Boolean(),truncated:$.Boolean()})),f0=Z($.Object({sessionId:$.String(),projectPath:$.String(),baseCommit:$.String(),files:$.Array(L1,{maxItems:100}),truncated:$.Boolean()})),M1=$.Union([$.String(),$.Number(),$.Boolean(),$.Array($.String())]),A1=Z($.Object({name:$.String(),type:K(["string","number","integer","boolean","select","multi-select"]),title:$.String(),description:$.Optional($.String()),required:$.Boolean(),defaultValue:$.Optional(M1),options:$.Optional($.Array($.Object({value:$.String(),label:$.String()}))),format:$.Optional(K(["date","uri","email","date-time"])),minimum:$.Optional($.Number()),maximum:$.Optional($.Number()),minLength:$.Optional($.Number()),maxLength:$.Optional($.Number()),minItems:$.Optional($.Number()),maxItems:$.Optional($.Number())})),O0=Z($.Object({serverName:$.String(),mode:K(["form","url"]),message:$.String(),fields:$.Optional($.Array(A1)),requestedSchema:$.Optional($.Record($.String(),$.Unknown())),url:$.Optional($.String()),domain:$.Optional($.String()),elicitationId:$.Optional($.String())})),R1=Z($.Object({type:K(["permission","question","elicitation"]),requestId:$.String()})),E1=Z($.Object({code:K(["authentication","permission","rate_limit","timeout","network","model_unavailable","context_limit","unsupported_input","workspace_unavailable","capacity","runtime"]),message:$.String({minLength:1,maxLength:500}),retryable:$.Boolean(),resource:$.Optional(K(["pending_count","pending_bytes","resident_runtimes"]))})),x=Z(K(["auto","off","minimal","low","medium","high","xhigh","max"])),P=Z(K(["auto","standard","fast","flex"])),f=Z(K(["auto","low","medium","high"])),z=Z($.Union([K(["auto","pragmatic","friendly","explanatory"]),$.String({minLength:7,maxLength:300,pattern:"^(?:(?:user|project):[a-z0-9][a-z0-9._-]{0,63}(?::[a-z0-9][a-z0-9._-]{0,63}){0,3}|plugin:[a-z0-9][a-z0-9._-]{0,63}:[a-z0-9][a-z0-9._-]{0,63}(?::[a-z0-9][a-z0-9._-]{0,63}){0,3})$"})])),U=Z($.Object({sessionId:$.String(),projectPath:$.String(),title:$.Optional($.String()),gitBranch:$.Optional($.String()),rootId:$.String(),parentId:$.Optional($.String()),relationType:$.Optional(K(["subagent","fork"])),resumedFrom:$.Optional($.String()),rootAgentId:$.Optional($.String()),resumeDepth:$.Optional($.Integer({minimum:0})),taskStatus:W(N1,"completed"),taskStatusReason:$.Optional($.String()),taskFailure:$.Optional(E1),taskStartedAt:$.Optional($.String()),taskCompletedAt:$.Optional($.String()),taskPromptSummary:$.Optional($.String()),taskPriority:$.Optional(E),taskKind:$.Optional(_),taskDueAt:$.Optional($.String()),taskModelId:$.Optional($.String()),selectedModelId:$.Optional($.String()),permissionMode:$.Optional(v),reasoningEffort:$.Optional(x),serviceTier:$.Optional(P),responseVerbosity:$.Optional(f),communicationStyle:$.Optional(z),communicationStyleDigest:$.Optional($.String({pattern:"^[a-f0-9]{64}$"})),projectInstructionsDigest:$.Optional($.String({pattern:"^[a-f0-9]{64}$"})),taskRetryAvailable:$.Optional($.Boolean()),taskRetriedFrom:$.Optional($.Object({sessionId:$.String(),projectPath:$.String()})),taskDelivery:$.Optional(F1),taskIsolation:$.Optional(N),taskSourceProjectPath:$.Optional($.String()),taskWorktreePath:$.Optional($.String()),taskWorktreeBranch:$.Optional($.String()),taskBaseCommit:$.Optional($.String()),taskDiffStat:$.Optional(C1),taskQueuePosition:$.Optional($.Integer({minimum:1})),taskQueueDepth:$.Optional($.Integer({minimum:0})),taskConcurrencyLimit:$.Optional($.Integer({minimum:1})),archivedAt:$.Optional($.String()),archivedBySessionId:$.Optional($.String()),pendingInteraction:$.Optional(R1),messageCount:$.Number(),firstMessageTime:$.String(),lastMessageTime:$.String(),hasErrors:$.Boolean()})),I0=Z($.Object({sessions:$.Array(U),nextCursor:$.Optional($.String())})),N0=Z($.Object({session:U,archivedSessionIds:$.Array($.String())})),U0=Z($.Object({session:U,restoredSessionIds:$.Array($.String())})),_1=$.Object({rootTurnId:$.Optional($.String({minLength:1,maxLength:F})),currentTurnId:$.String({minLength:1,maxLength:F}),parentTurnId:$.Optional($.String({minLength:1,maxLength:F}))},{additionalProperties:!1}),F0=Z($.Object({version:$.Union([$.Literal(1),$.Literal(2)]),sessionId:$.String(),goalId:$.String(),objective:$.String(),status:K(["active","verifying","paused","blocked","usage_limited","budget_limited","complete"]),tokenBudget:$.Optional($.Number()),tokensUsed:$.Number(),timeUsedSeconds:$.Number(),continuationCount:$.Number(),statusReason:$.Optional($.String()),completionVerification:$.Optional($.Object({attempt:$.Integer({minimum:1}),status:K(["pending","pass","fail","partial"]),requestedAt:$.String(),completedAt:$.Optional($.String()),verifierSessionId:$.Optional($.String()),summary:$.Optional($.String()),evidenceSha256:$.Optional($.String({pattern:"^[a-f0-9]{64}$"}))})),prematureStop:$.Optional($.Object({pattern:$.Unsafe({type:"string"}),consecutiveCount:$.Integer({minimum:1}),detectedAt:$.String()})),executionHostFailure:$.Optional($.Object({category:K(a),consecutiveCount:$.Integer({minimum:1,maximum:3}),detectedAt:$.String()},{additionalProperties:!1})),turnLineage:$.Optional(_1),verificationStall:$.Optional($.Unsafe({type:"object"})),executionFrontier:$.Optional($.Object({taskListId:$.String({minLength:1,maxLength:256}),total:$.Integer({minimum:0}),completed:$.Integer({minimum:0}),inProgress:$.Integer({minimum:0}),pending:$.Integer({minimum:0}),blocked:$.Integer({minimum:0}),nextTask:$.Optional($.Object({id:$.String({minLength:1}),subject:$.String({minLength:1,maxLength:512}),priority:K(["high","medium","low"])})),digestSha256:$.String({pattern:"^[a-f0-9]{64}$"}),observedAt:$.String()})),frontierStall:$.Optional($.Object({category:K(["waiting_dependency","same_task_no_effect","repeated_deferral"]),consecutiveCount:$.Integer({minimum:1,maximum:3}),digestSha256:$.String({pattern:"^[a-f0-9]{64}$"}),detectedAt:$.String()})),createdAt:$.String(),updatedAt:$.String()})),r=Z($.Object({id:$.Optional($.String({minLength:1})),timestamp:$.Optional($.Number({minimum:0})),role:R,content:t,metadata:$.Optional($.Unknown()),reasoningContent:$.Optional($.String()),thinkingContent:$.Optional($.String()),tool_call_id:$.Optional($.String()),name:$.Optional($.String()),tool_calls:$.Optional($.Unknown())})),C0=Z($.Object({session:U,messages:$.Array(r)})),y=Z(K(["conversation","code","both"])),S1=Z($.Object({messageId:$.String(),preview:$.String(),createdAt:$.String(),fileCount:$.Integer({minimum:0})})),L0=Z($.Object({targetMessageId:$.String({minLength:1}),mode:W(y,"conversation")})),M0=Z($.Object({checkpoint:S1,mode:y,removedTurns:$.Integer({minimum:1}),restoredFiles:$.Array($.String()),messages:$.Array(r)})),l1=K(["running","completed","failed","cancelled"]),i=Z($.Object({id:$.String(),subagentType:$.String(),description:$.String(),status:l1,background:$.Boolean(),rootAgentId:$.String(),resumedFrom:$.Optional($.String()),resumeDepth:$.Integer({minimum:0}),createdAt:$.Number(),lastActiveAt:$.Number(),completedAt:$.Optional($.Number()),restartRecovery:$.Optional($.Object({outcome:K(["completed","interrupted","failed"]),recoveredAt:$.Number()})),result:$.Optional($.Object({success:$.Boolean(),message:$.String(),error:$.Optional($.String()),verificationCommands:$.Optional($.Array($.String())),verificationVerdict:$.Optional(K(["pass","fail","partial"])),modifiedFiles:$.Optional($.Array($.String()))})),stats:$.Optional($.Object({tokens:$.Optional($.Number()),toolCalls:$.Optional($.Number()),duration:$.Optional($.Number())}))})),A0=Z($.Object({prompt:$.String({minLength:1,maxLength:32000,pattern:"\\S"})})),R0=Z($.Object({source:i,session:i})),E0=Z($.Object({sessionId:$.String(),projectPath:$.String()})),_0=Z($.Object({path:$.String(),name:$.String(),gitBranch:$.Optional($.String()),available:$.Boolean(),isCurrent:$.Boolean(),boundAt:$.String()})),S0=Z($.Union([$.Object({cancelled:$.Literal(!0)}),$.Object({cancelled:$.Literal(!1),path:$.String({minLength:1})})])),l0=Z($.Object({type:$.String(),seq:$.Optional($.Number()),properties:$.Record($.String(),$.Unknown())})),T=$.Object({type:K(["file","image","url"]),path:$.Optional($.String()),url:$.Optional($.String()),content:$.Optional($.String({maxLength:o})),mimeType:$.Optional($.String()),name:$.Optional($.String())}),u1=20,d1=12288,m1=4096,h1=$.Object({id:$.String({minLength:1,maxLength:200}),text:$.String({minLength:1,maxLength:d1}),sourceMessageId:$.String({minLength:1,maxLength:500}),sourceRole:K(["user","assistant"]),comment:$.Optional($.String({maxLength:m1}))}),p=$.Record($.String(),$.Unknown()),u0=Z($.Object({prompt:$.String({minLength:1,maxLength:32000,pattern:"\\S"}),title:$.Optional($.String({minLength:1,maxLength:200})),taskPriority:W(E,"medium"),taskKind:W(_,"feature"),taskDueAt:$.Optional($.String({minLength:1,maxLength:64})),projectPath:$.Optional($.String()),modelId:$.Optional($.String({minLength:1,maxLength:500})),reasoningEffort:$.Optional(x),serviceTier:$.Optional(P),responseVerbosity:$.Optional(f),communicationStyle:$.Optional(z),isolation:W(N,"worktree"),permissionMode:W(v,"default"),attachments:$.Optional($.Array(T,{maxItems:A})),outputSchema:$.Optional(p)})),d0=Z($.Object({title:$.Optional($.String({minLength:1,maxLength:200})),taskPriority:$.Optional(E),taskKind:$.Optional(_),taskDueAt:$.Optional($.Union([$.String({minLength:1,maxLength:64}),$.Null()]))})),m0=Z($.Object({session:U,runId:$.String(),messageId:$.String(),status:K(["queued","running"]),queuePosition:$.Optional($.Integer({minimum:1})),queueDepth:$.Optional($.Integer({minimum:0})),maxConcurrentTasks:$.Optional($.Integer({minimum:1}))})),h0=Z($.Object({action:K(["apply","discard"])})),S=Z($.Object({kind:K(["cron","interval","once"]),cron:$.Optional($.String({minLength:1,maxLength:120})),intervalMs:$.Optional($.Integer({minimum:60000})),runAt:$.Optional($.String({minLength:1,maxLength:40})),timezone:$.Optional($.String({minLength:1,maxLength:80}))})),g1=Z($.Object({modelId:$.Optional($.String({minLength:1,maxLength:500})),reasoningEffort:$.Optional(x),serviceTier:$.Optional(P),responseVerbosity:$.Optional(f),communicationStyle:$.Optional(z),isolation:W(N,"worktree"),permissionMode:W(v,"default")})),l=Z($.Object({id:$.String(),title:$.Optional($.String({minLength:1,maxLength:200})),prompt:$.String({minLength:1,maxLength:32000,pattern:"\\S"}),projectPath:$.String({minLength:1}),trigger:S,dispatch:g1,enabled:$.Boolean(),createdAt:$.String(),updatedAt:$.String(),nextRunAt:$.Union([$.String(),$.Null()]),expiresAt:$.Union([$.String(),$.Null()]),lastRunAt:$.Optional($.String()),lastRunSessionId:$.Optional($.String()),lastStatus:$.Optional(K(["queued","running","completed","failed","cancelled","interrupted","error"])),lastError:$.Optional($.String()),runCount:$.Integer({minimum:0})})),g0=Z($.Object({title:$.Optional($.String({minLength:1,maxLength:200})),prompt:$.String({minLength:1,maxLength:32000,pattern:"\\S"}),projectPath:$.String({minLength:1}),trigger:S,modelId:$.Optional($.String({minLength:1,maxLength:500})),reasoningEffort:$.Optional(x),serviceTier:$.Optional(P),responseVerbosity:$.Optional(f),communicationStyle:$.Optional(z),isolation:W(N,"worktree"),permissionMode:W(v,"default"),enabled:W($.Boolean(),!0)})),c0=Z($.Object({title:$.Optional($.String({minLength:1,maxLength:200})),prompt:$.Optional($.String({minLength:1,maxLength:32000,pattern:"\\S"})),trigger:$.Optional(S),modelId:$.Optional($.String({minLength:1,maxLength:500})),reasoningEffort:$.Optional(x),serviceTier:$.Optional(P),responseVerbosity:$.Optional(f),communicationStyle:$.Optional(z),isolation:$.Optional(N),permissionMode:$.Optional(v),enabled:$.Optional($.Boolean())})),n0=Z($.Object({schedules:$.Array(l)})),i0=Z($.Object({content:$.String({maxLength:s}),projectPath:$.Optional($.String()),modelId:$.Optional($.String({minLength:1,maxLength:500})),reasoningEffort:$.Optional(x),serviceTier:$.Optional(P),responseVerbosity:$.Optional(f),communicationStyle:$.Optional(z),permissionMode:$.Optional(v),attachments:$.Optional($.Array(T,{maxItems:A})),annotations:$.Optional($.Array(h1,{maxItems:u1})),outputSchema:$.Optional(p)})),c1=K(["completed","failed","aborted","timed_out","spawn_error"]),n1=Z($.Object({version:$.Literal(1),command:$.String(),status:c1,exitCode:$.Union([$.Integer(),$.Null()]),durationMs:$.Number({minimum:0}),stdout:$.String(),stderr:$.String(),stdoutOmittedBytes:$.Integer({minimum:0}),stderrOmittedBytes:$.Integer({minimum:0}),binaryOutput:$.Boolean(),truncated:$.Boolean()})),o0=Z($.Object({command:$.String({minLength:1,maxLength:32768,pattern:"^(?![\\s\\S]*\\u0000)(?=[\\s\\S]*\\S)[\\s\\S]*$"}),projectPath:$.Optional($.String())})),s0=Z($.Object({executionId:$.String(),messageId:$.String(),record:n1,auxiliary:$.Boolean(),delivery:$.Optional(K(["current_turn","next_turn"])),queued:$.Optional($.Integer({minimum:0}))})),a0=Z($.Object({question:$.String({minLength:1,maxLength:n,pattern:"^(?![\\s\\S]*\\x00)(?=[\\s\\S]*\\S)[\\s\\S]*$"}),projectPath:$.Optional($.String())})),t0=Z($.Object({response:$.String({minLength:1}),durationMs:$.Number({minimum:0}),modelId:$.Optional($.String()),usage:$.Optional($.Object({promptTokens:$.Number({minimum:0}),completionTokens:$.Number({minimum:0}),totalTokens:$.Number({minimum:0}),reasoningTokens:$.Optional($.Number({minimum:0})),cacheCreationInputTokens:$.Optional($.Number({minimum:0})),cacheReadInputTokens:$.Optional($.Number({minimum:0})),costUsd:$.Optional($.Number({minimum:0}))}))})),r0=Z($.Object({projectPath:$.String(),kind:K(["uncommitted","base","commit"]),ref:$.Optional($.String({maxLength:200})),instructions:$.Optional($.String({maxLength:4000})),modelId:$.Optional($.String({minLength:1,maxLength:200}))})),y0=Z($.Object({reviewId:$.String(),status:$.Literal("running")})),T0=Z($.Object({messageId:$.String(),role:R,content:$.String(),timestamp:$.String()})),p0=Z($.Object({approved:$.Boolean(),remember:$.Optional($.Boolean()),scope:$.Optional(K(["once","session","project"])),targetMode:$.Optional(v),feedback:$.Optional($.String()),answers:$.Optional($.Record($.String(),$.Union([$.String(),$.Array($.String())]))),elicitation:$.Optional($.Object({action:K(["accept","decline","cancel"]),content:$.Optional($.Record($.String(),$.Union([$.String({maxLength:4000}),$.Number(),$.Boolean(),$.Array($.String({maxLength:1000}),{maxItems:100})]),{maxProperties:32}))}))})),i1=Z($.Object({id:z,name:$.String({minLength:1,maxLength:80}),description:$.String({minLength:1,maxLength:256}),source:K(["built-in","user","project","plugin"]),contentSha256:$.Optional($.String({pattern:"^[a-f0-9]{64}$"}))})),e0=Z($.Object({id:$.String(),displayName:$.Optional($.String()),provider:$.String(),model:$.String(),contextWindow:$.Optional($.Number()),maxTokens:$.Optional($.Number()),reasoning:$.Optional($.Boolean()),supportedReasoningEfforts:$.Optional($.Array(K(["off","minimal","low","medium","high","xhigh","max"]))),supportedServiceTiers:$.Optional($.Array(K(["standard","fast","flex"]))),supportedResponseVerbosities:$.Optional($.Array(K(["low","medium","high"]))),communicationStyles:$.Optional($.Array(i1,{maxItems:36})),input:$.Optional($.Array(K(["text","image"]))),overrides:$.Optional($.Object({baseUrl:$.Optional($.String()),temperature:$.Optional($.Number()),maxOutputTokens:$.Optional($.Number()),timeout:$.Optional($.Number()),streamIdleTimeout:$.Optional($.Number({minimum:1000}))}))})),$2=Z(K(["vs-dark","vs-light","hc-black"])),o1=Z(K(["light","dark","system"])),s1=Z($.Object({language:$.String(),codeTheme:$.String(),uiTheme:o1,autoSaveSessions:$.Boolean(),notifyBuild:$.Boolean(),notifyErrors:$.Boolean(),notifySounds:$.Boolean(),privacyTelemetry:$.Boolean(),privacyCrash:$.Boolean(),agentTeamsEnabled:$.Boolean(),communicationStyle:$.Optional(z)})),J2=Z($.Partial(s1));var e=J1("Service"),T1=1;function p1(){return Z1.join($1(),"schedules.json")}class O{filePath;static instance;static getInstance(){if(!O.instance)O.instance=new O;return O.instance}writeChain=Promise.resolve();constructor(J=p1()){this.filePath=J}async readFile(){try{let J=await t1(this.filePath,"utf-8"),B=JSON.parse(J);if(!B||!Array.isArray(B.schedules))return[];let j=[],Y=0;for(let H of B.schedules){let k=l.safeParse(H);if(k.success)j.push(k.data);else Y+=1}if(Y>0)e.warn(`[ScheduleStore] Ignored ${Y} invalid persisted schedule(s)`);return j}catch(J){let B=J;if(B.code!=="ENOENT")e.warn("[ScheduleStore] Failed to read schedules; treating as empty:",B);return[]}}async writeFile(J){await a1(Z1.dirname(this.filePath),{recursive:!0,mode:493});let B={version:T1,schedules:J};await y1(this.filePath,JSON.stringify(B,null,2),{mode:384})}serializeWrite(J){let B=this.writeChain.then(J,J);return this.writeChain=B.then(()=>{return},()=>{return}),B}async list(){return this.readFile()}async get(J){return(await this.readFile()).find((j)=>j.id===J)}async create(J){return this.serializeWrite(async()=>{let B=J.trigger.kind==="cron"&&!J.trigger.timezone?{...J.trigger,timezone:Intl.DateTimeFormat().resolvedOptions().timeZone}:J.trigger,j=L(B);if(j)throw Error(j);let Y=new Date;if(B.kind==="once"&&new Date(B.runAt).getTime()<=Y.getTime())throw Error("once trigger runAt must be in the future");let H=Y.toISOString(),k=C(B,Y),G={id:r1(10),title:J.title,prompt:J.prompt,projectPath:J.projectPath,trigger:B,dispatch:{modelId:J.modelId,reasoningEffort:J.reasoningEffort,serviceTier:J.serviceTier,responseVerbosity:J.responseVerbosity,communicationStyle:J.communicationStyle,isolation:J.isolation??"worktree",permissionMode:J.permissionMode??"default"},enabled:J.enabled??!0,createdAt:H,updatedAt:H,nextRunAt:k?k.toISOString():null,expiresAt:null,runCount:0},V=await this.readFile();return V.push(G),await this.writeFile(V),G})}async update(J,B){return this.serializeWrite(async()=>{let j=await this.readFile(),Y=j.findIndex((Q)=>Q.id===J);if(Y===-1)return;let H=j[Y];if(B.trigger){let Q=B.trigger.kind==="cron"&&!B.trigger.timezone?{...B.trigger,timezone:Intl.DateTimeFormat().resolvedOptions().timeZone}:B.trigger,b=L(Q);if(b)throw Error(b);if(Q.kind==="once"&&new Date(Q.runAt).getTime()<=Date.now())throw Error("once trigger runAt must be in the future");B={...B,trigger:Q}}let k={...H,...B,dispatch:B.dispatch?{...H.dispatch,...B.dispatch}:H.dispatch,updatedAt:new Date().toISOString()},G=!H.enabled,V=k.enabled,X=B.trigger!==void 0;if((X||G&&V)&&B.nextRunAt===void 0){let Q=new Date,b=C(k.trigger,Q);if(k.nextRunAt=b?b.toISOString():null,X)k.expiresAt=null}return j[Y]=k,await this.writeFile(j),k})}async remove(J){return this.serializeWrite(async()=>{let B=await this.readFile(),j=B.filter((Y)=>Y.id!==J);if(j.length===B.length)return!1;return await this.writeFile(j),!0})}async setEnabled(J,B){return this.update(J,{enabled:B})}}var v2=O.getInstance();
|
|
2
2
|
export{n as Wa,V0 as Xa,q as Ya,Q1 as Za,h as _a,g as $a,W1 as ab,z1 as bb,W0 as cb,b0 as db,k0 as eb,e1 as fb,C as gb,L as hb,$0 as ib,f0 as jb,U as kb,L0 as lb,A0 as mb,u0 as nb,d0 as ob,m0 as pb,h0 as qb,l as rb,g0 as sb,c0 as tb,n0 as ub,i0 as vb,o0 as wb,a0 as xb,r0 as yb,O as zb,v2 as Ab};
|
|
@@ -1,3 +1,3 @@
|
|
|
1
|
-
import{Sj as N,Vj as M}from"./chunk-0eajnhrj.js";import{
|
|
1
|
+
import{Sj as N,Vj as M}from"./chunk-0eajnhrj.js";import{dk as H}from"./chunk-ed2hdrwe.js";import{createModels as _,createProvider as Y,envApiKeyAuth as x,getSupportedThinkingLevels as E}from"@earendil-works/pi-ai";import{anthropicMessagesApi as F}from"@earendil-works/pi-ai/api/anthropic-messages.lazy";import{openAICompletionsApi as U}from"@earendil-works/pi-ai/api/openai-completions.lazy";import{builtinProviders as P}from"@earendil-works/pi-ai/providers/all";var K=/^[a-z][a-z0-9._-]{0,63}$/,z=/^[A-Z_][A-Z0-9_]*$/,s=new Set(["openai-completions","anthropic-messages"]);function B(u){return typeof u==="string"&&s.has(u)}function X(u,$){let h=`modelProviders.${u}`,b=[];if(!K.test(u))b.push(`${h}: id must match ${K.source}`);if(!$.name?.trim())b.push(`${h}: name must not be empty`);if(!B($.wireApi))b.push(`${h}: wireApi must be openai-completions or anthropic-messages`);try{let w=new URL($.baseUrl);if(!["http:","https:"].includes(w.protocol))b.push(`${h}: baseUrl must be an absolute HTTP(S) URL`)}catch{b.push(`${h}: baseUrl must be an absolute HTTP(S) URL`)}if($.apiKeyEnv!==void 0&&!z.test($.apiKeyEnv))b.push(`${h}: apiKeyEnv must be a valid environment variable name`);if("apiKey"in $)b.push(`${h}: API keys must be stored separately in auth.json`);return b}function J(u,$){let h=$.trim().replace(/\/+$/,"");if(u==="anthropic-messages"&&/\/v1$/i.test(h))return h.slice(0,-3);return h}import{promises as Z}from"node:fs";import j from"node:path";import{Mutex as R}from"async-mutex";import T from"write-file-atomic";class Q{filePath;mutex=new R;constructor(u=j.join(H(),"auth.json")){this.filePath=u}async read(u){return(await this.readAll())[u]}async list(){let u=await this.readAll();return Object.entries(u).map(([$,h])=>({providerId:$,type:h.type}))}async modify(u,$){return this.mutex.runExclusive(async()=>{let h=await this.readAll(),b=h[u],w=await $(b);if(w===void 0)return b;return h[u]=w,await this.writeAll(h),w})}async delete(u){await this.mutex.runExclusive(async()=>{let $=await this.readAll();if(!(u in $))return;delete $[u],await this.writeAll($)})}async readAll(){try{let u=await Z.readFile(this.filePath,"utf8"),$=JSON.parse(u);return $&&typeof $==="object"&&!Array.isArray($)?$:{}}catch(u){if(u.code==="ENOENT")return{};throw u}}async writeAll(u){let $=j.dirname(this.filePath);await Z.mkdir($,{recursive:!0,mode:448}),await Z.chmod($,448),await T(this.filePath,`${JSON.stringify(u,null,2)}
|
|
2
2
|
`,{mode:384}),await Z.chmod(this.filePath,384)}}var q="openai-compatible",G="anthropic-compatible",D="https://api.openai.com/v1",V="https://api.anthropic.com",A=128000,C=32768,t={input:0,output:0,cacheRead:0,cacheWrite:0},f=["openai","anthropic","deepseek","google","moonshotai","moonshotai-cn","zai","zai-coding-cn"];class L{credentials;models;compatibleModels=new Map;anthropicCompatibleModels=new Map;customProviderConfigs=new Map;customProviderModels=new Map;reservedProviderIds=new Set;constructor(u=new Q){this.credentials=u,this.models=_({credentials:u});for(let $ of P())this.models.setProvider($);this.installOpenAICompatibleProvider(),this.installAnthropicCompatibleProvider();for(let $ of this.models.getProviders())this.reservedProviderIds.add($.id)}async listProviders(){return Promise.all(this.models.getProviders().map(async(u)=>{let $=u.getModels(),h=this.customProviderConfigs.get(u.id),b=this.getFactoryWireApi(u.id);return{id:u.id,name:u.name,modelCount:$.length,defaultBaseUrl:u.baseUrl??$[0]?.baseUrl,supportsApiKey:Boolean(u.auth.apiKey),supportsOAuth:Boolean(u.auth.oauth),configured:b?!1:Boolean(await this.models.checkAuth(u.id)),custom:Boolean(h),factoryWireApi:b,wireApi:h?.wireApi,apiKeyEnv:h?.apiKeyEnv}}))}listModels(u){return this.models.getModels(u).map(($)=>this.toCatalogEntry($))}getModel(u,$){let h=this.models.getModel(u,$);if(!h&&u===q)this.registerOpenAICompatibleModel($),h=this.models.getModel(u,$);if(!h&&u===G)this.registerAnthropicCompatibleModel($),h=this.models.getModel(u,$);if(!h&&this.customProviderConfigs.has(u))this.registerCustomProviderModel(u,$),h=this.models.getModel(u,$);if(!h)throw Error(`Unknown pi-ai model: ${u}/${$}`);return h}resolveConfig(u){let $=this.getModel(u.provider,u.model),h=u.overrides;return{...$,...h?.baseUrl?{baseUrl:J($.api,h.baseUrl)}:{},...h?.maxOutputTokens?{maxTokens:h.maxOutputTokens}:{}}}async setApiKey(u,$){this.requireProvider(u),await this.credentials.modify(u,async()=>({type:"api_key",key:$}))}async clearCredential(u){this.requireProvider(u),await this.credentials.delete(u)}async isConfigured(u){return this.requireProvider(u),Boolean(await this.models.checkAuth(u))}isReservedProviderId(u){return this.reservedProviderIds.has(u)}configureModelProviders(u,$){for(let h of this.customProviderConfigs.keys())this.models.deleteProvider(h);this.customProviderConfigs.clear(),this.customProviderModels.clear();for(let[h,b]of Object.entries(u)){let w=$.filter((k)=>k.provider===h).map((k)=>k.model);this.registerModelProvider(h,b,w)}}registerModelProvider(u,$,h=[]){if(this.isReservedProviderId(u))throw Error(`modelProviders.${u}: built-in provider ids cannot be overridden`);let b=X(u,$);if(b.length>0)throw Error(b.join("; "));let w={...$,name:$.name.trim(),baseUrl:J($.wireApi,$.baseUrl),...$.apiKeyEnv?{apiKeyEnv:$.apiKeyEnv.trim()}:{}};this.customProviderConfigs.set(u,w);let k=new Map;for(let y of new Set(h)){let W=y.trim();if(!W)continue;k.set(W,this.createCompatibleModel(u,W,w.wireApi,w.baseUrl))}this.customProviderModels.set(u,k),this.installCustomProvider(u)}requireProvider(u){if(!this.models.getProvider(u))throw Error(`Unknown pi-ai provider: ${u}`)}registerOpenAICompatibleModel(u){let $=u.trim();if(!$)throw Error("OpenAI-compatible model ID must not be empty");if(this.compatibleModels.has($))return;let h=this.createCompatibleModel(q,$,"openai-completions",D);this.compatibleModels.set($,h),this.installOpenAICompatibleProvider()}registerAnthropicCompatibleModel(u){let $=u.trim();if(!$)throw Error("Anthropic-compatible model ID must not be empty");if(this.anthropicCompatibleModels.has($))return;let h=this.createCompatibleModel(G,$,"anthropic-messages",V);this.anthropicCompatibleModels.set($,h),this.installAnthropicCompatibleProvider()}registerCustomProviderModel(u,$){let h=$.trim();if(!h)throw Error("Custom provider model ID must not be empty");let b=this.customProviderConfigs.get(u),w=this.customProviderModels.get(u);if(!b||!w||w.has(h))return;w.set(h,this.createCompatibleModel(u,h,b.wireApi,b.baseUrl)),this.installCustomProvider(u)}createCompatibleModel(u,$,h,b){let w=this.models.getModels().filter((y)=>y.provider!==u&&!this.customProviderConfigs.has(y.provider)&&y.id===$),k=f.flatMap((y)=>w.filter((W)=>W.provider===y))[0]??w[0];return{id:$,name:k?.name??$,api:h,provider:u,baseUrl:b,reasoning:k?.reasoning??!1,input:k?[...k.input]:["text"],cost:{...t},contextWindow:k?.contextWindow??A,maxTokens:k?.maxTokens??C,...k?.thinkingLevelMap?{thinkingLevelMap:{...k.thinkingLevelMap}}:{}}}installOpenAICompatibleProvider(){this.models.setProvider(Y({id:q,name:"Custom OpenAI Endpoint",baseUrl:D,auth:{apiKey:x("OpenAI-compatible API key",["OPENAI_COMPATIBLE_API_KEY","BLADE_API_KEY"])},models:[...this.compatibleModels.values()],api:U()}))}installAnthropicCompatibleProvider(){this.models.setProvider(Y({id:G,name:"Custom Anthropic Endpoint",baseUrl:V,auth:{apiKey:x("Anthropic-compatible API key",["ANTHROPIC_API_KEY","BLADE_API_KEY"])},models:[...this.anthropicCompatibleModels.values()],api:F()}))}installCustomProvider(u){let $=this.customProviderConfigs.get(u),h=this.customProviderModels.get(u);if(!$||!h)return;let b=$.apiKeyEnv?[$.apiKeyEnv]:[];this.models.setProvider(Y({id:u,name:$.name,baseUrl:$.baseUrl,auth:{apiKey:x(`${$.name} API key`,b)},models:[...h.values()],api:$.wireApi==="anthropic-messages"?F():U()}))}getFactoryWireApi(u){if(u===q)return"openai-completions";if(u===G)return"anthropic-messages";return}toCatalogEntry(u){return{id:u.id,name:u.name,provider:u.provider,api:u.api,baseUrl:u.baseUrl,reasoning:u.reasoning,supportedReasoningEfforts:E(u),supportedServiceTiers:M(u),supportedResponseVerbosities:N(u),input:[...u.input],contextWindow:u.contextWindow,maxTokens:u.maxTokens,cost:{...u.cost}}}}var S;function hu(){return S??=new L,S}
|
|
3
3
|
export{K as Mj,X as Nj,J as Oj,L as Pj,hu as Qj};
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
import{Xj as a,Yj as b,Zj as c,_j as d}from"./chunk-c33wff11.js";import"./chunk-gmpsfkgg.js";export{a as getVersion,b as getPackageName,c as getDescription,d as getCopyright};
|
|
@@ -1,2 +1,2 @@
|
|
|
1
|
-
import{xh as Q}from"./chunk-7ajvrtb3.js";import{Gj as F,Ij as k,Lj as G}from"./chunk-
|
|
1
|
+
import{xh as Q}from"./chunk-7ajvrtb3.js";import{Gj as F,Ij as k,Lj as G}from"./chunk-saz6mwpq.js";var V=k.String({minLength:1,maxLength:128,pattern:"^[A-Za-z0-9][A-Za-z0-9_-]*$"}),K=k.Array(k.String({minLength:1,maxLength:200,pattern:".*\\S.*"}),{maxItems:128}),W=k.Object({description:k.String({minLength:1,maxLength:4096,pattern:".*\\S.*"}),prompt:k.String({minLength:1,maxLength:1e5,pattern:".*\\S.*"}),tools:k.Optional(K),disallowedTools:k.Optional(K),model:k.Optional(k.String({minLength:1,maxLength:200,pattern:".*\\S.*"})),permissionMode:k.Optional(G(["default","acceptEdits","dontAsk","bypassPermissions","plan","ignore"])),maxTurns:k.Optional(k.Integer({minimum:1})),isolation:k.Optional(G(["none","worktree"]))},{additionalProperties:!1});function Z(R){let w;try{w=JSON.parse(R)}catch{throw Error("Invalid JSON provided to --agents")}if(w===null||Array.isArray(w)||typeof w!=="object")throw Error("--agents must be a JSON object");let H=Object.entries(w);if(H.length>64)throw Error("--agents supports at most 64 definitions");return H.map(([z,U])=>{if(!F(V,z).success)throw Error(`Invalid --agents name "${z}": use letters, numbers, hyphens, or underscores`);let I=F(W,U);if(!I.success)throw Error(`Invalid --agents definition for "${z}"`);let q=I.data;return{name:z,description:q.description.trim(),systemPrompt:q.prompt.trim(),tools:q.tools?[...new Set(q.tools.map((B)=>B.trim()))]:void 0,disallowedTools:q.disallowedTools?[...new Set(q.disallowedTools.map((B)=>B.trim()))]:void 0,model:q.model?.trim(),permissionMode:q.permissionMode===void 0?void 0:Q(q.permissionMode),maxTurns:q.maxTurns,isolation:q.isolation,source:"flag"}})}
|
|
2
2
|
export{Z as Cf};
|
|
@@ -0,0 +1,17 @@
|
|
|
1
|
+
const __vite__mapDeps=(i,m=__vite__mapDeps,d=(m.f||(m.f=["assets/MarkdownRenderer-fJny7W8J.js","assets/rolldown-runtime-hePW80VL.js","assets/session-events-B-hnDC4L.js","assets/vendor-radix-BCAvgfOW.js","assets/preload-helper-HI3NtP3B.js","assets/copy-CLG3LQ2v.js","assets/index-DkwePtIh.js","assets/vendor-react-DQwAdeyS.js","assets/index-BJdxoBtv.css"])))=>i.map(i=>d[i]);
|
|
2
|
+
import{r as e}from"./rolldown-runtime-hePW80VL.js";import{O as t,_ as n,a as r,c as i,d as a,dt as o,g as s,i as c,s as l,u,v as d,y as f}from"./session-events-B-hnDC4L.js";import{C as p,T as m}from"./vendor-radix-BCAvgfOW.js";import{c as h,l as g,r as _,s as v,t as y}from"./preload-helper-HI3NtP3B.js";import{n as b,r as x,t as S}from"./triangle-alert-BCJaJaVj.js";import{a as C,c as w,i as T,n as E,o as D,r as O,s as k,t as A}from"./tooltip-DJBQZhJD.js";import{t as j}from"./chevron-right-B8JH5N50.js";import{t as M}from"./clock-3-BGymk4sE.js";import{t as N}from"./copy-CLG3LQ2v.js";import{t as P}from"./pause-CKNq9DgJ.js";import{t as ee}from"./pencil-CMjIwtk5.js";import{t as F}from"./play-BOz9Sqzf.js";import{t as I}from"./plus-BJIEQjD7.js";import{A as te,B as ne,D as re,E as ie,I as L,J as ae,K as oe,L as R,O as se,P as z,Q as B,R as ce,T as V,U as H,V as le,W as U,Z as ue,_ as de,_t as fe,at as pe,bt as me,c as he,ct as W,gt as ge,it as _e,j as G,l as ve,lt as ye,mt as be,nt as xe,ot as Se,q as K,rt as Ce,s as we,st as Te,tt as Ee,ut as De,vt as q,y as J,yt as Oe,z as ke}from"./index-DkwePtIh.js";import{t as Ae}from"./ScrollArea-CSCl8r35.js";import{t as Y}from"./team-BHlihaeV.js";import{t as je}from"./teamService-DDfifLYm.js";var Me={name:`circle-question-mark`,size:24,node:[[`circle`,{cx:`12`,cy:`12`,r:`10`,key:`1mglay`}],[`path`,{d:`M9.09 9a3 3 0 0 1 5.83 1c0 2-3 3-3 3`,key:`1u773s`}],[`path`,{d:`M12 17h.01`,key:`p32p05`}]],aliases:[`help-circle`,`circle-help`]};Me.node;var Ne=g(Me),Pe={name:`corner-down-left`,size:24,node:[[`path`,{d:`M20 4v7a4 4 0 0 1-4 4H4`,key:`6o5b7l`}],[`path`,{d:`m9 10-5 5 5 5`,key:`1kshq7`}]]};Pe.node;var Fe=g(Pe),Ie={name:`files`,size:24,node:[[`path`,{d:`M15 2h-4a2 2 0 0 0-2 2v11a2 2 0 0 0 2 2h8a2 2 0 0 0 2-2V8`,key:`14sh0y`}],[`path`,{d:`M16.706 2.706A2.4 2.4 0 0 0 15 2v5a1 1 0 0 0 1 1h5a2.4 2.4 0 0 0-.706-1.706z`,key:`1970lx`}],[`path`,{d:`M5 7a2 2 0 0 0-2 2v11a2 2 0 0 0 2 2h8a2 2 0 0 0 1.732-1`,key:`l4dndm`}]]};Ie.node;var Le=g(Ie),Re={name:`gauge`,size:24,node:[[`path`,{d:`m12 14 4-4`,key:`9kzdfg`}],[`path`,{d:`M3.34 19a10 10 0 1 1 17.32 0`,key:`19p75a`}]]};Re.node;var ze=g(Re),Be={name:`list-ordered`,size:24,node:[[`path`,{d:`M11 5h10`,key:`1cz7ny`}],[`path`,{d:`M11 12h10`,key:`1438ji`}],[`path`,{d:`M11 19h10`,key:`11t30w`}],[`path`,{d:`M4 4h1v5`,key:`10yrso`}],[`path`,{d:`M4 9h2`,key:`r1h2o0`}],[`path`,{d:`M6.5 20H3.4c0-1 2.6-1.925 2.6-3.5a1.5 1.5 0 0 0-2.6-1.02`,key:`xtkcd5`}]]};Be.node;var Ve=g(Be),He={name:`lock-keyhole`,size:24,node:[[`circle`,{cx:`12`,cy:`16`,r:`1`,key:`1au0dj`}],[`rect`,{x:`3`,y:`10`,width:`18`,height:`12`,rx:`2`,key:`6s8ecr`}],[`path`,{d:`M7 10V7a5 5 0 0 1 10 0v3`,key:`1pqi11`}]]};He.node;var Ue=g(He),We={name:`message-circle-question-mark`,size:24,node:[[`path`,{d:`M2.992 16.342a2 2 0 0 1 .094 1.167l-1.065 3.29a1 1 0 0 0 1.236 1.168l3.413-.998a2 2 0 0 1 1.099.092 10 10 0 1 0-4.777-4.719`,key:`1sd12s`}],[`path`,{d:`M9.09 9a3 3 0 0 1 5.83 1c0 2-3 3-3 3`,key:`1u773s`}],[`path`,{d:`M12 17h.01`,key:`p32p05`}]],aliases:[`message-circle-question`]};We.node;var Ge=g(We),Ke={name:`target`,size:24,node:[[`circle`,{cx:`12`,cy:`12`,r:`10`,key:`1mglay`}],[`circle`,{cx:`12`,cy:`12`,r:`6`,key:`1vlfrh`}],[`circle`,{cx:`12`,cy:`12`,r:`2`,key:`1c9p78`}]]};Ke.node;var qe=g(Ke),Je={name:`timer`,size:24,node:[[`line`,{x1:`10`,x2:`14`,y1:`2`,y2:`2`,key:`14vaq8`}],[`line`,{x1:`12`,x2:`15`,y1:`14`,y2:`11`,key:`17fdiu`}],[`circle`,{cx:`12`,cy:`14`,r:`8`,key:`1e1u0o`}]]};Je.node;var Ye=g(Je),Xe={name:`users`,size:24,node:[[`path`,{d:`M16 21v-2a4 4 0 0 0-4-4H6a4 4 0 0 0-4 4v2`,key:`1yyitq`}],[`path`,{d:`M16 3.128a4 4 0 0 1 0 7.744`,key:`16gr8j`}],[`path`,{d:`M22 21v-2a4 4 0 0 0-3-3.87`,key:`kshegd`}],[`circle`,{cx:`9`,cy:`7`,r:`4`,key:`nufk8`}]]};Xe.node;var Ze=g(Xe),X=e(o(),1),Z=p();function Qe(e){return e.split(`/`).filter(Boolean).at(-1)||e}function $e(){let e=h(),t=J(e=>e.sessions),n=J(e=>e.currentSessionRef),r=J(e=>e.historySurfaceSelection),i=J(e=>e.taskDeliveryActions),o=J(e=>e.deliverTask),s=c(e=>e.openFilePreview),[l,d]=(0,X.useState)(!1),f=t.find(e=>se({sessionId:e.sessionId,projectPath:e.projectPath},n));if(u(r)||!f?.taskIsolation)return null;let p=f.taskDiffStat,m=f.taskIsolation===`worktree`,g=te(f),_=i[G(g)],v=f.taskDelivery,y=v?.status===`conflicted`,b=!!(p&&(p.changedFiles>0||p.commits>0)),x=![`queued`,`running`].includes(f.taskStatus),C=v?.status===`applied`||v?.status===`discarded`,w=m&&b&&x&&!C,T=p?p.additions+p.deletions:0,E=T>0&&p?p.additions/T*100:0,D=e=>{a(J.getState())||o(g,e).catch(()=>void 0)};return(0,Z.jsxs)(Z.Fragment,{children:[(0,Z.jsxs)(`div`,{className:`flex min-h-10 flex-wrap items-center gap-x-3 gap-y-1.5 border-b border-[hsl(var(--deck-hairline))] bg-[hsl(var(--deck-canvas-veil))]/60 px-3 py-1.5 font-mono text-[10.5px] text-[hsl(var(--deck-ink-muted))] backdrop-blur-sm sm:px-5`,children:[(0,Z.jsxs)(`div`,{className:`flex min-w-0 flex-1 items-center gap-3`,children:[(0,Z.jsxs)(`span`,{className:`inline-flex min-w-0 items-center gap-1.5`,children:[(0,Z.jsx)(ye,{className:`h-3 w-3 shrink-0 text-[hsl(var(--deck-ink-faint))]`}),(0,Z.jsx)(`span`,{className:`truncate text-[hsl(var(--deck-ink))]`,children:Qe(f.taskSourceProjectPath||f.projectPath)})]}),(0,Z.jsx)(`span`,{className:`text-[hsl(var(--deck-ink-faint))]/60`,children:`/`}),(0,Z.jsxs)(`span`,{className:`inline-flex min-w-0 items-center gap-1.5`,children:[m?(0,Z.jsx)(pe,{className:`h-3 w-3 shrink-0 text-[hsl(var(--deck-accent))]`}):(0,Z.jsx)(ye,{className:`h-3 w-3 shrink-0`}),(0,Z.jsx)(`span`,{className:m?`text-[hsl(var(--deck-accent))]`:void 0,children:e(m?`artifact.env.isolated`:`artifact.env.local`)})]}),f.taskWorktreeBranch&&(0,Z.jsxs)(Z.Fragment,{children:[(0,Z.jsx)(`span`,{className:`text-[hsl(var(--deck-ink-faint))]/60`,children:`/`}),(0,Z.jsxs)(`span`,{className:`inline-flex min-w-0 items-center gap-1.5 truncate`,title:f.taskWorktreeBranch,children:[(0,Z.jsx)(De,{className:`h-3 w-3 shrink-0 text-[hsl(var(--deck-ink-faint))]`}),(0,Z.jsx)(`span`,{className:`truncate`,children:f.taskWorktreeBranch})]})]})]}),p&&(0,Z.jsxs)(`div`,{className:`ml-auto flex max-w-full items-center gap-2`,children:[(0,Z.jsxs)(`span`,{className:`inline-flex items-center gap-1 text-[hsl(var(--deck-ink-muted))]`,children:[(0,Z.jsx)(Le,{className:`h-3 w-3 text-[hsl(var(--deck-ink-faint))]`}),(0,Z.jsx)(`span`,{className:`tabular-nums`,children:p.changedFiles})]}),T>0&&(0,Z.jsxs)(`span`,{className:`relative hidden h-1.5 w-14 overflow-hidden rounded-sm border border-[hsl(var(--deck-border))] bg-[hsl(var(--deck-surface))] sm:inline-flex`,"aria-hidden":`true`,children:[(0,Z.jsx)(`span`,{className:`h-full bg-[hsl(var(--deck-accent))]`,style:{width:`${E}%`}}),(0,Z.jsx)(`span`,{className:`h-full bg-red-500/80`,style:{width:`${100-E}%`}})]}),(0,Z.jsxs)(`span`,{className:`tabular-nums text-[hsl(var(--deck-accent))]`,children:[`+`,p.additions]}),(0,Z.jsxs)(`span`,{className:`tabular-nums text-red-600 dark:text-red-400`,children:[`-`,p.deletions]}),p.commits>0&&(0,Z.jsx)(`span`,{className:`hidden tabular-nums text-[hsl(var(--deck-ink-faint))] sm:inline`,children:e(`artifact.commits`,{count:p.commits})}),b&&v?.status!==`discarded`&&(0,Z.jsx)(`button`,{type:`button`,onClick:()=>{a(J.getState())||s({tab:`diff`})},className:`inline-flex items-center gap-1 rounded-md border border-[hsl(var(--deck-border))] bg-[hsl(var(--deck-surface))] px-2 py-1 text-[hsl(var(--deck-ink))] transition hover:border-[hsl(var(--deck-accent)/0.55)] hover:text-[hsl(var(--deck-accent))]`,children:e(`artifact.review`)}),w&&(0,Z.jsxs)(Z.Fragment,{children:[(0,Z.jsxs)(`button`,{type:`button`,disabled:!!_,onClick:()=>D(`apply`),className:`inline-flex items-center gap-1 rounded-md bg-[hsl(var(--deck-accent))] px-2 py-1 font-semibold text-white transition hover:brightness-95 disabled:cursor-wait disabled:opacity-65`,children:[_===`apply`?(0,Z.jsx)(W,{className:`h-3 w-3 animate-spin`}):(0,Z.jsx)(B,{className:`h-3 w-3`}),e(_===`apply`?`artifact.applying`:y?`artifact.retryApply`:`artifact.apply`)]}),(0,Z.jsx)(`button`,{type:`button`,disabled:!!_,onClick:()=>d(!0),className:`inline-flex items-center gap-1 rounded-md px-1.5 py-1 text-[hsl(var(--deck-ink-faint))] transition hover:bg-red-500/10 hover:text-red-600 disabled:cursor-wait disabled:opacity-50 dark:hover:text-red-400`,"aria-label":e(`artifact.discard`),title:e(`artifact.discard`),children:_===`discard`?(0,Z.jsx)(W,{className:`h-3 w-3 animate-spin`}):(0,Z.jsx)(K,{className:`h-3 w-3`})})]}),v?.status===`applied`&&(0,Z.jsxs)(`span`,{className:`inline-flex items-center gap-1 rounded-md bg-emerald-500/10 px-2 py-1 font-semibold text-emerald-700 dark:text-emerald-300`,children:[(0,Z.jsx)(Oe,{className:`h-3 w-3`}),e(`artifact.applied`)]}),v?.status===`discarded`&&(0,Z.jsxs)(`span`,{className:`inline-flex items-center gap-1 rounded-md bg-[hsl(var(--deck-surface-2))] px-2 py-1 text-[hsl(var(--deck-ink-faint))]`,children:[(0,Z.jsx)(K,{className:`h-3 w-3`}),e(`artifact.discarded`)]})]}),v?.status===`conflicted`&&(0,Z.jsxs)(`div`,{className:`flex w-full items-start gap-1.5 border-t border-amber-500/20 pt-1.5 text-amber-700 dark:text-amber-300`,role:`alert`,children:[(0,Z.jsx)(S,{className:`mt-0.5 h-3 w-3 shrink-0`}),(0,Z.jsxs)(`span`,{className:`min-w-0 flex-1 space-y-0.5`,children:[(0,Z.jsx)(`span`,{className:`block`,children:v.message||e(`artifact.conflict`)}),(0,Z.jsx)(`span`,{className:`block text-[hsl(var(--deck-ink-faint))]`,children:e(`artifact.conflictHint`)})]})]})]}),(0,Z.jsx)(L,{open:l,onOpenChange:d,children:(0,Z.jsxs)(R,{className:`w-[calc(100%_-_2rem)] max-w-md border-[hsl(var(--deck-border))] bg-[hsl(var(--deck-surface))] text-[hsl(var(--deck-ink))]`,children:[(0,Z.jsxs)(ne,{children:[(0,Z.jsx)(le,{children:e(`artifact.discardDialog.title`)}),(0,Z.jsx)(ce,{className:`text-[hsl(var(--deck-ink-muted))]`,children:e(`artifact.discardDialog.description`,{project:Qe(f.taskSourceProjectPath||f.projectPath),count:p?.changedFiles??0})})]}),(0,Z.jsx)(`div`,{className:`rounded-lg border border-red-500/20 bg-red-500/5 px-3 py-2 text-xs leading-relaxed text-red-700 dark:text-red-300`,children:e(`artifact.discardDialog.warning`)}),(0,Z.jsxs)(ke,{className:`gap-2 sm:space-x-0`,children:[(0,Z.jsx)(`button`,{type:`button`,onClick:()=>d(!1),className:`rounded-md border border-[hsl(var(--deck-border))] px-3 py-2 text-sm hover:bg-[hsl(var(--deck-surface-2))]`,children:e(`artifact.discardDialog.cancel`)}),(0,Z.jsxs)(`button`,{type:`button`,onClick:()=>{d(!1),D(`discard`)},className:`inline-flex items-center justify-center gap-1.5 rounded-md bg-red-600 px-3 py-2 text-sm font-semibold text-white hover:bg-red-700`,children:[(0,Z.jsx)(K,{className:`h-3.5 w-3.5`}),e(`artifact.discardDialog.confirm`)]})]})]})})]})}var et=1600,tt=new WeakMap;function nt(e,t,n){let r=e.findIndex(e=>e.id===t);return r<0?null:Math.max(n,e.length-r)}function rt(e,t){return e?[...e.querySelectorAll(`[data-chat-message-id]`)].find(e=>e.dataset.chatMessageId===t)??null:null}function it(e,t){let n=rt(e,t);if(!n)return!1;n.scrollIntoView({behavior:`smooth`,block:`center`});let r=tt.get(n);r&&clearTimeout(r),n.dataset.chatMessageHighlighted=`true`;let i=setTimeout(()=>{delete n.dataset.chatMessageHighlighted,tt.delete(n)},et);return tt.set(n,i),!0}function at(e){return!!(e.metadata?.codeReview||e.metadata?.structuredOutput)}function ot(e){let t=e.agentContent;return!(e.role!==`assistant`||!t||at(e)||t.tasks.length!==0||n(t).length!==0||t.confirmation||t.question||t.elicitation)}function st(e,t){return t.map((t,n)=>({...t,id:`${e}:${n}:${t.id}`}))}function ct(e){return!ot(e)||!e.agentContent?e:{...e,displaySourceMessageIds:[e.id],agentContent:{...e.agentContent,timeline:st(e.id,s(e.agentContent))}}}function lt(e,t){let n=e.map(e=>({...e})),r=new Map(n.map((e,t)=>[e.toolCallId,t]));for(let e of t){let t=r.get(e.toolCallId);t===void 0?(r.set(e.toolCallId,n.length),n.push({...e})):n[t]={...n[t],...e}}return n}function ut(e,t){return[e,t].filter(Boolean).join(`
|
|
3
|
+
|
|
4
|
+
`)}function dt(e,t){let n=e.agentContent,r=t.agentContent,i=new Set(n.toolCalls.map(e=>e.toolCallId)),a=s(r).flatMap(e=>{if(e.type!==`tool_group`)return[e];let t=e.toolCallIds.filter(e=>!i.has(e)&&(i.add(e),!0));return t.length>0?[{...e,toolCallIds:t}]:[]});return{...e,...e.metadata||t.metadata?{metadata:{...e.metadata,...t.metadata}}:{},displaySourceMessageIds:[...e.displaySourceMessageIds??[e.id],...t.displaySourceMessageIds??[t.id]],agentContent:{...n,timeline:[...s(n),...a],textBefore:ut(n.textBefore,r.textBefore),toolCalls:lt(n.toolCalls,r.toolCalls),textAfter:ut(n.textAfter,r.textAfter),thinkingContent:ut(n.thinkingContent,r.thinkingContent),tasks:[],subagent:null,subagents:[],confirmation:null,question:null,elicitation:null}}}function ft(e){let t=[];for(let n of e){let e=ct(n),r=t[t.length-1];r&&ot(r)&&ot(e)?t[t.length-1]=dt(r,e):t.push(e)}return t}var pt=new Set([`completed`,`stale`,`failed`,`aborted`,`interrupted`]),mt={completed:`chat.review.status.completed`,stale:`chat.review.status.stale`,failed:`chat.review.status.failed`,aborted:`chat.review.status.aborted`,interrupted:`chat.review.status.interrupted`},ht={completed:`bg-emerald-500/10 text-emerald-700 dark:text-emerald-300 border-emerald-500/20`,stale:`bg-amber-500/10 text-amber-700 dark:text-amber-300 border-amber-500/20`,failed:`bg-red-500/10 text-red-700 dark:text-red-300 border-red-500/20`,aborted:`bg-zinc-500/10 text-zinc-700 dark:text-zinc-300 border-zinc-500/20`,interrupted:`bg-amber-500/10 text-amber-700 dark:text-amber-300 border-amber-500/20`};function gt(e){return e&&typeof e==`object`&&!Array.isArray(e)?e:void 0}function _t(e){let t=gt(e),n=gt(t?.codeLocation),r=t?.priority,i=t?.confidenceScore,a=n?.lineStart,o=n?.lineEnd;if(typeof t?.title==`string`&&typeof t.body==`string`&&(r===0||r===1||r===2||r===3)&&typeof i==`number`&&Number.isFinite(i)&&typeof n?.path==`string`&&Number.isInteger(a)&&Number.isInteger(o))return{title:t.title,body:t.body,priority:r,confidenceScore:i,codeLocation:{path:n.path,lineStart:a,lineEnd:o}}}function vt(e){let t=gt(e),n=gt(t?.target);if(t?.phase!==`completed`||typeof t.status!=`string`||!pt.has(t.status)||typeof n?.label!=`string`||n.kind!==`uncommitted`&&n.kind!==`base`&&n.kind!==`commit`||typeof t.overallExplanation!=`string`||!Array.isArray(t.findings))return;let r=t.findings.map(_t);if(!r.some(e=>e===void 0))return{status:t.status,target:{kind:n.kind,label:n.label,...typeof n.reference==`string`?{reference:n.reference}:{}},overallExplanation:t.overallExplanation,findings:r,...typeof t.error==`string`?{error:t.error}:{}}}function yt(e){let{path:t,lineStart:n,lineEnd:r}=e.codeLocation;return n===r?`${t}:L${n}`:`${t}:L${n}-${r}`}function bt({report:e}){let t=h(),n=e.target.kind===`uncommitted`?t(`chat.review.target.uncommitted`):e.target.kind===`base`?t(`chat.review.target.base`,{ref:e.target.reference??e.target.label}):t(`chat.review.target.commit`,{ref:e.target.reference??e.target.label});return(0,Z.jsxs)(`section`,{"data-code-review-report":!0,className:`overflow-hidden rounded-xl border border-[hsl(var(--deck-border))] bg-[hsl(var(--deck-surface))]`,children:[(0,Z.jsxs)(`header`,{className:`flex flex-wrap items-center justify-between gap-3 border-b border-[hsl(var(--deck-hairline))] bg-[hsl(var(--deck-surface-2))]/60 px-4 py-3`,children:[(0,Z.jsxs)(`div`,{children:[(0,Z.jsx)(`h3`,{className:`text-[13px] font-semibold text-[hsl(var(--deck-ink))]`,children:t(`chat.review.title`)}),(0,Z.jsxs)(`p`,{className:`mt-0.5 font-mono text-[10.5px] text-[hsl(var(--deck-ink-faint))]`,children:[t(`chat.review.target`),`: `,n]})]}),(0,Z.jsxs)(`span`,{className:H(`rounded-full border px-2.5 py-1 font-mono text-[10.5px] font-medium`,ht[e.status]),children:[t(`chat.review.status`),`: `,t(mt[e.status])]})]}),(0,Z.jsxs)(`div`,{className:`space-y-4 px-4 py-3.5`,children:[(0,Z.jsx)(`p`,{className:`whitespace-pre-wrap text-[13px] leading-6 text-[hsl(var(--deck-ink-muted))]`,children:e.overallExplanation}),(0,Z.jsxs)(`div`,{children:[(0,Z.jsxs)(`div`,{className:`mb-2 flex items-center justify-between`,children:[(0,Z.jsx)(`h4`,{className:`deck-eyebrow text-[hsl(var(--deck-ink-faint))]`,children:t(`chat.review.findings`)}),(0,Z.jsx)(`span`,{className:`font-mono text-[10px] text-[hsl(var(--deck-ink-faint))]`,children:e.findings.length})]}),e.findings.length===0?(0,Z.jsx)(`div`,{className:`rounded-lg bg-[hsl(var(--deck-surface-2))] px-3 py-2.5 text-[12px] text-[hsl(var(--deck-ink-muted))]`,children:t(`chat.review.noFindings`)}):(0,Z.jsx)(`ol`,{className:`space-y-2`,children:e.findings.map((e,n)=>(0,Z.jsxs)(`li`,{className:`rounded-lg border border-[hsl(var(--deck-hairline))] bg-[hsl(var(--deck-canvas-veil))] px-3 py-2.5`,children:[(0,Z.jsxs)(`div`,{className:`flex flex-wrap items-start justify-between gap-2`,children:[(0,Z.jsx)(`h5`,{className:`text-[12.5px] font-medium leading-5 text-[hsl(var(--deck-ink))]`,children:e.title}),(0,Z.jsx)(`span`,{className:`shrink-0 font-mono text-[10px] text-[hsl(var(--deck-ink-faint))]`,children:t(`chat.review.confidence`,{value:e.confidenceScore.toFixed(2)})})]}),(0,Z.jsx)(`code`,{className:`mt-1 block text-[10.5px] text-[hsl(var(--deck-accent))]`,children:yt(e)}),(0,Z.jsx)(`p`,{className:`mt-1.5 whitespace-pre-wrap text-[12px] leading-5 text-[hsl(var(--deck-ink-muted))]`,children:e.body})]},`${e.codeLocation.path}:${e.codeLocation.lineStart}:${n}`))})]}),e.error&&(0,Z.jsxs)(`div`,{className:`rounded-lg border border-red-500/20 bg-red-500/5 px-3 py-2 text-[11px] text-red-700 dark:text-red-300`,children:[(0,Z.jsxs)(`span`,{className:`font-medium`,children:[t(`chat.review.error`),`:`]}),` `,e.error]})]})]})}function xt({elicitation:e,messageId:t}){let n=h(),r=J(e=>e.currentSessionRef),i=J(e=>e.setElicitation),[o,s]=(0,X.useState)(()=>Ct(e.details.fields??[])),[c,l]=(0,X.useState)(()=>wt(e.details.fields??[])),[u,d]=(0,X.useState)(!1),[f,p]=(0,X.useState)(),m=e.details.fields??[],g=(0,X.useMemo)(()=>m.every(e=>{if(!e.required)return!0;if(Dt(e))return!!(c[e.name]?.trim()||e.defaultValue!==void 0);let t=o[e.name]??e.defaultValue;return Array.isArray(t)?t.length>0:t!==void 0}),[m,c,o]);if(e.status!==`pending`)return(0,Z.jsx)(`div`,{className:`rounded-lg border border-[hsl(var(--deck-border))] bg-[hsl(var(--deck-surface-2))] px-3 py-2 font-mono text-[12px] text-[hsl(var(--deck-ink-muted))]`,children:n(e.status===`cancelled`?`interaction.elicitation.cancelled`:`interaction.elicitation.responded`)});let _=async(o,s)=>{if(!a(J.getState())&&r&&!u){d(!0),p(void 0);try{await z.respondToElicitation(r,e.toolCallId,{action:o,...s?{content:s}:{}}),i(t,{...e,status:`responded`})}catch(e){p(e instanceof Error?e.message:n(`interaction.elicitation.failed`))}finally{d(!1)}}},v=async()=>{try{await _(`accept`,Tt(m,o,c))}catch(e){p(e instanceof Error?e.message:String(e))}};return(0,Z.jsxs)(`div`,{"data-pending-interaction":`elicitation`,tabIndex:-1,role:`alert`,className:`space-y-4 rounded-lg border border-amber-300/70 bg-amber-50/70 p-4 outline-none focus-visible:ring-2 focus-visible:ring-amber-500 dark:border-amber-800/70 dark:bg-amber-950/25`,children:[(0,Z.jsxs)(`div`,{className:`flex items-start gap-2`,children:[(0,Z.jsx)(ue,{className:`mt-0.5 h-4 w-4 shrink-0 text-amber-600 dark:text-amber-400`}),(0,Z.jsxs)(`div`,{className:`min-w-0 space-y-1`,children:[(0,Z.jsxs)(`div`,{className:`font-mono text-[12px] font-semibold text-[hsl(var(--deck-ink))]`,children:[n(`interaction.elicitation.title`),` · `,e.details.serverName]}),(0,Z.jsx)(`div`,{className:`font-mono text-[12px] text-[hsl(var(--deck-ink-muted))]`,children:e.details.message}),(0,Z.jsx)(`div`,{className:`font-mono text-[11px] text-amber-700 dark:text-amber-300`,children:n(`interaction.elicitation.warning`)})]})]}),e.details.mode===`url`?(0,Z.jsxs)(`div`,{className:`space-y-3`,children:[(0,Z.jsxs)(`div`,{className:`rounded-md border border-[hsl(var(--deck-border))] bg-[hsl(var(--deck-surface-2))] p-3 font-mono text-[11px]`,children:[(0,Z.jsx)(`div`,{className:`text-[hsl(var(--deck-ink-muted))]`,children:e.details.domain}),(0,Z.jsx)(`div`,{className:`mt-1 break-all text-[hsl(var(--deck-ink))]`,children:e.details.url})]}),(0,Z.jsxs)(`div`,{className:`flex flex-wrap gap-2`,children:[(0,Z.jsx)(Q,{onClick:()=>{if(a(J.getState()))return;let t=e.details.url;if(!t){p(`MCP URL is unavailable`);return}if(!window.open(t,`_blank`,`noopener,noreferrer`)){p(`The browser blocked the external window`);return}_(`accept`)},disabled:u,primary:!0,label:n(`interaction.elicitation.open`),icon:(0,Z.jsx)(b,{className:`h-3.5 w-3.5`})}),(0,Z.jsx)(Q,{onClick:()=>void _(`decline`),disabled:u,label:n(`interaction.elicitation.decline`)}),(0,Z.jsx)(Q,{onClick:()=>void _(`cancel`),disabled:u,label:n(`interaction.elicitation.cancel`)})]})]}):(0,Z.jsxs)(`div`,{className:`space-y-4`,children:[m.map(e=>(0,Z.jsx)(St,{field:e,value:o[e.name],rawValue:c[e.name]??``,onValueChange:t=>s(n=>({...n,[e.name]:t})),onRawChange:t=>l(n=>({...n,[e.name]:t}))},e.name)),(0,Z.jsxs)(`div`,{className:`flex flex-wrap gap-2`,children:[(0,Z.jsx)(Q,{onClick:()=>void v(),disabled:u||!g,primary:!0,label:n(`interaction.elicitation.submit`),icon:u?(0,Z.jsx)(W,{className:`h-3.5 w-3.5 animate-spin`}):null}),(0,Z.jsx)(Q,{onClick:()=>void _(`decline`),disabled:u,label:n(`interaction.elicitation.decline`)}),(0,Z.jsx)(Q,{onClick:()=>void _(`cancel`),disabled:u,label:n(`interaction.elicitation.cancel`)})]})]}),f&&(0,Z.jsx)(`div`,{className:`rounded-md border border-red-300/70 bg-red-50 px-2.5 py-2 font-mono text-[11px] text-red-700 dark:border-red-900/70 dark:bg-red-950/35 dark:text-red-300`,children:f})]})}function St({field:e,value:t,rawValue:n,onValueChange:r,onRawChange:i}){return(0,Z.jsxs)(`div`,{className:`space-y-2`,children:[(0,Z.jsxs)(`label`,{htmlFor:`mcp-elicitation-${e.name}`,className:`block font-mono text-[12px] font-medium text-[hsl(var(--deck-ink))]`,children:[e.title,e.required?` *`:``]}),e.description&&(0,Z.jsx)(`div`,{className:`font-mono text-[11px] text-[hsl(var(--deck-ink-faint))]`,children:e.description}),e.type===`select`||e.type===`multi-select`||e.type===`boolean`?(0,Z.jsx)(`div`,{id:`mcp-elicitation-${e.name}`,className:`flex flex-wrap gap-2`,children:Et(e).map(n=>{let i=Array.isArray(t)?t.includes(n.value):t===n.typedValue;return(0,Z.jsx)(`button`,{type:`button`,"aria-pressed":i,onClick:()=>{if(e.type===`multi-select`){let e=Array.isArray(t)?t:[];r(e.includes(n.value)?e.filter(e=>e!==n.value):[...e,n.value])}else r(n.typedValue)},className:H(`rounded-md border px-3 py-2 font-mono text-[12px] transition-colors`,i?`border-emerald-500 bg-emerald-50 text-emerald-800 dark:bg-emerald-950/40 dark:text-emerald-200`:`border-[hsl(var(--deck-border))] bg-[hsl(var(--deck-surface-2))] text-[hsl(var(--deck-ink-muted))] hover:text-[hsl(var(--deck-ink))]`),children:n.label},n.value)})}):(0,Z.jsx)(`input`,{id:`mcp-elicitation-${e.name}`,type:Ot(e),value:n,onChange:e=>i(e.target.value),min:e.minimum,max:e.maximum,minLength:e.minLength,maxLength:e.maxLength,required:e.required,placeholder:e.defaultValue===void 0?e.required?`Required`:`Optional`:String(e.defaultValue),className:`w-full rounded-md border border-[hsl(var(--deck-border))] bg-[hsl(var(--deck-surface-2))] px-3 py-2 font-mono text-[12px] text-[hsl(var(--deck-ink))] outline-none transition-colors focus:border-amber-500 focus:ring-1 focus:ring-amber-500`})]})}function Q({onClick:e,disabled:t,primary:n=!1,label:r,icon:i}){return(0,Z.jsxs)(`button`,{type:`button`,onClick:e,disabled:t,className:H(`inline-flex min-h-8 items-center gap-1.5 rounded-md px-3 py-1.5 font-mono text-[12px] transition-colors disabled:cursor-wait disabled:opacity-50`,n?`bg-amber-600 text-white hover:bg-amber-700`:`border border-[hsl(var(--deck-border))] bg-[hsl(var(--deck-surface-2))] text-[hsl(var(--deck-ink-muted))] hover:text-[hsl(var(--deck-ink))]`),children:[i,r]})}function Ct(e){return Object.fromEntries(e.filter(e=>!Dt(e)&&e.defaultValue!==void 0).map(e=>[e.name,Array.isArray(e.defaultValue)?[...e.defaultValue]:e.defaultValue]))}function wt(e){return Object.fromEntries(e.filter(e=>Dt(e)&&e.defaultValue!==void 0).map(e=>[e.name,String(e.defaultValue)]))}function Tt(e,t,n){let r={};for(let i of e){if(Dt(i)){let e=n[i.name]?.trim()??``;if(!e){if(i.defaultValue!==void 0)r[i.name]=i.defaultValue;else if(i.required)throw Error(`${i.title} is required`);continue}if(i.type===`number`||i.type===`integer`){let t=Number(e);if(!Number.isFinite(t))throw Error(`${i.title} must be a finite number`);if(i.type===`integer`&&!Number.isSafeInteger(t))throw Error(`${i.title} must be a safe integer`);r[i.name]=t}else r[i.name]=e;continue}let e=t[i.name]??i.defaultValue;if(e===void 0){if(i.required)throw Error(`${i.title} is required`);continue}if(Array.isArray(e)){if(i.minItems!==void 0&&e.length<i.minItems)throw Error(`${i.title} requires at least ${i.minItems} choices`);if(i.maxItems!==void 0&&e.length>i.maxItems)throw Error(`${i.title} allows at most ${i.maxItems} choices`)}r[i.name]=e}return r}function Et(e){return e.type===`boolean`?[{value:`true`,label:`Yes`,typedValue:!0},{value:`false`,label:`No`,typedValue:!1}]:(e.options??[]).map(e=>({...e,typedValue:e.value}))}function Dt(e){return e.type===`string`||e.type===`number`||e.type===`integer`}function Ot(e){return e.type===`number`||e.type===`integer`?`number`:e.format===`email`?`email`:e.format===`uri`?`url`:e.format===`date`?`date`:e.format===`date-time`?`datetime-local`:`text`}function kt(e){if(!e||typeof e!=`object`||Array.isArray(e))return;let t=e;if(t.output&&typeof t.output==`object`&&!Array.isArray(t.output))return{output:t.output,...typeof t.schemaDigest==`string`?{schemaDigest:t.schemaDigest}:{}}}function At({report:e}){let t=h(),[n,r]=(0,X.useState)(!1),i=JSON.stringify(e.output,null,2);return(0,Z.jsxs)(`section`,{"data-structured-output":!0,className:`overflow-hidden rounded-lg border border-[hsl(var(--deck-border))] bg-[hsl(var(--deck-surface))]`,children:[(0,Z.jsxs)(`header`,{className:`flex min-h-9 items-center justify-between gap-3 border-b border-[hsl(var(--deck-border))] bg-[hsl(var(--deck-surface-2))] px-3`,children:[(0,Z.jsxs)(`div`,{className:`flex min-w-0 items-center gap-2`,children:[(0,Z.jsx)(me,{className:`h-3.5 w-3.5 shrink-0 text-[hsl(var(--deck-accent))]`}),(0,Z.jsx)(`span`,{className:`font-mono text-[11px] font-semibold text-[hsl(var(--deck-ink))]`,children:t(`chat.structuredOutput.title`)}),e.schemaDigest&&(0,Z.jsxs)(`span`,{title:e.schemaDigest,className:`truncate font-mono text-[9px] text-[hsl(var(--deck-ink-faint))]`,children:[`sha256:`,e.schemaDigest.slice(0,10)]})]}),(0,Z.jsx)(`button`,{type:`button`,onClick:async()=>{try{await navigator.clipboard.writeText(i),r(!0),window.setTimeout(()=>r(!1),1400)}catch{}},"aria-label":t(`chat.structuredOutput.copy`),title:t(`chat.structuredOutput.copy`),className:`flex h-6 w-6 shrink-0 items-center justify-center rounded text-[hsl(var(--deck-ink-faint))] hover:bg-[hsl(var(--deck-surface))] hover:text-[hsl(var(--deck-ink))] focus-visible:outline-none focus-visible:ring-1 focus-visible:ring-[hsl(var(--deck-accent))]`,children:n?(0,Z.jsx)(Oe,{className:`h-3.5 w-3.5 text-[hsl(var(--deck-accent))]`}):(0,Z.jsx)(N,{className:`h-3.5 w-3.5`})})]}),(0,Z.jsx)(`pre`,{className:`max-h-[440px] overflow-auto whitespace-pre p-3 font-mono text-[11px] leading-5 text-[hsl(var(--deck-ink))]`,children:i})]})}var jt=(0,X.createContext)(null);function Mt(e,t){let n=(0,X.useContext)(jt),[r,i]=(0,X.useState)(()=>n?.get(t)?.has(e)??!1);return{expanded:r,toggle:()=>{let a=!r;if(n){let r=n.get(t)??new Set;a?r.add(e):r.delete(e),r.size>0?n.set(t,r):n.delete(t)}i(a)}}}var Nt=(0,X.lazy)(()=>y(()=>import(`./MarkdownRenderer-fJny7W8J.js`).then(e=>({default:e.MarkdownRenderer})),__vite__mapDeps([0,1,2,3,4,5,6,7,8])));function Pt({text:e,label:t}){let[n,r]=(0,X.useState)(!1);return e.trim()?(0,Z.jsx)(`button`,{type:`button`,"aria-label":t,title:t,onClick:async()=>{try{await navigator.clipboard.writeText(e),r(!0),window.setTimeout(()=>r(!1),1400)}catch{}},className:`flex h-6 w-6 items-center justify-center rounded-md text-[hsl(var(--deck-ink-faint))] transition-colors hover:bg-[hsl(var(--deck-surface))] hover:text-[hsl(var(--deck-ink))] focus-visible:outline-none focus-visible:ring-1 focus-visible:ring-[hsl(var(--deck-accent))]`,children:n?(0,Z.jsx)(Oe,{className:`h-3.5 w-3.5 text-[hsl(var(--deck-accent))]`}):(0,Z.jsx)(N,{className:`h-3.5 w-3.5`})}):null}function Ft(){return(0,Z.jsx)(`div`,{className:`flex h-8 w-8 shrink-0 select-none items-center justify-center rounded-lg border border-[hsl(var(--deck-border))] bg-[hsl(var(--deck-surface))] shadow-[0_1px_0_hsl(var(--deck-hairline))]`,children:(0,Z.jsx)(we,{size:20,pulse:!1})})}function It(){return(0,Z.jsx)(`div`,{className:`flex h-8 w-8 shrink-0 select-none items-center justify-center rounded-full border border-[hsl(var(--deck-border))] bg-[hsl(var(--deck-canvas-veil))]`,children:(0,Z.jsx)(`span`,{className:`font-mono text-[11px] font-medium text-[hsl(var(--deck-ink))]`,children:`U`})})}function Lt(e){let t=e;return t=t.replace(/<system-reminder>[\s\S]*?<\/system-reminder>/g,``),t=t.replace(/<file path="[^"]*">[\s\S]*?<\/file>/g,``),t=t.replace(/<attached_files>[\s\S]*?<\/attached_files>/g,``),t=t.trim(),t}function Rt(e){if(typeof e==`string`)return{text:Lt(e),images:[]};let t=e.filter(e=>e.type===`text`).map(e=>e.text).join(`
|
|
5
|
+
`),n=e.filter(e=>e.type===`image_url`).map(e=>e.image_url.url);return{text:Lt(t),images:n}}function zt(e){return typeof e==`string`?e:e.filter(e=>e.type===`text`).map(e=>e.text).join(`
|
|
6
|
+
`)}function Bt(e){let t=e.agentContent;return t?d(t):zt(e.content)}function Vt({content:e,syntaxHighlight:t=!0}){return(0,Z.jsx)(X.Suspense,{fallback:(0,Z.jsx)(`pre`,{className:`text-[14px] text-[hsl(var(--deck-ink))] font-mono whitespace-pre-wrap`,children:e}),children:(0,Z.jsx)(Nt,{content:e,syntaxHighlight:t})})}function Ht({status:e}){return e?(0,Z.jsx)(`span`,{className:H(`text-[11px] px-2 py-0.5 rounded-full font-mono`,{running:`bg-[#FEF3C7] text-[#92400E] dark:bg-[#F59E0B]/20 dark:text-[#FBBF24]`,success:`bg-[#DCFCE7] text-[#15803D] dark:bg-[#22C55E]/20 dark:text-[#22C55E]`,error:`bg-[#FEE2E2] text-[#b91c1c] dark:bg-[#EF4444]/20 dark:text-[#fca5a5]`,pending:`bg-[#E5E7EB] text-[#6B7280] dark:bg-[#27272a] dark:text-[#a1a1aa]`,info:`bg-[#DBEAFE] text-[#1D4ED8] dark:bg-[#3B82F6]/20 dark:text-[#60A5FA]`}[e]),children:{running:`Running`,success:`Success`,error:`Error`,pending:`Pending`,info:`Info`}[e]}):null}function Ut(e){if(!e)return``;if(typeof e==`string`)try{return JSON.stringify(JSON.parse(e),null,2)}catch{return e}return JSON.stringify(e,null,2)}var Wt=500;function Gt(e,t){if(e.length<=t)return e;let n=Math.max(0,t);return n>0&&/[\uD800-\uDBFF]/.test(e.charAt(n-1))&&--n,e.slice(0,n)}function Kt(e,t){if(e.length<=t)return e;let n=Math.max(0,e.length-t);return/[\uDC00-\uDFFF]/.test(e.charAt(n))&&(n+=1),e.slice(n)}function qt(e,t){if(e.length<=t)return e;if(t<=0)return``;let n=t-27;if(n<=0)return Kt(e,t);let r=Math.floor(n/3);return`${Gt(e,r)}
|
|
7
|
+
... (display clipped) ...
|
|
8
|
+
${Kt(e,n-r)}`}function Jt(e){let t=e.split(`
|
|
9
|
+
`),n=t.at(-1),r=n?.startsWith(`Output truncated`)?n:void 0,i=r?t.slice(0,-1).join(`
|
|
10
|
+
`):e,a=r?`\n${r}`:``,o=Math.max(0,Wt-a.length),s=i.indexOf(`
|
|
11
|
+
stderr:
|
|
12
|
+
`),c;if(s>=0&&i.includes(`
|
|
13
|
+
stdout:
|
|
14
|
+
`)){let e=i.slice(0,s),t=i.slice(s+1),n=Math.max(0,o-1),r=Math.floor(n/2);c=`${qt(e,r)}\n${qt(t,n-r)}`}else c=qt(i,o);return{body:Gt(c,o),...r?{notice:r}:{},truncated:!!r||e.length>Wt}}function Yt({tool:e}){let{expanded:t,toggle:n}=Mt(`detail`,e.toolCallId),r=Ut(e.arguments),i=e.output?Jt(e.output):void 0;return(0,Z.jsxs)(`div`,{"data-tool-name":e.toolName,"data-tool-status":e.status,"data-tool-truncated":i?.truncated?`true`:`false`,className:`bg-white dark:bg-[#18181b] border border-[hsl(var(--deck-border))] rounded-lg overflow-hidden`,children:[(0,Z.jsxs)(`button`,{type:`button`,"aria-expanded":t,"data-tool-call-id":e.toolCallId,onClick:n,className:`w-full flex items-center justify-between px-3 py-2 bg-[hsl(var(--deck-surface-2))] hover:bg-[hsl(var(--deck-surface))] transition-colors`,children:[(0,Z.jsxs)(`div`,{className:`flex gap-2 items-center min-w-0`,children:[t?(0,Z.jsx)(q,{className:`h-4 w-4 text-[hsl(var(--deck-ink-faint))] shrink-0`}):(0,Z.jsx)(j,{className:`h-4 w-4 text-[hsl(var(--deck-ink-faint))] shrink-0`}),(0,Z.jsx)(`span`,{className:`text-[12px] text-[hsl(var(--deck-ink))] font-mono shrink-0`,children:e.toolName}),e.summary&&(0,Z.jsx)(`span`,{className:`text-[11px] text-[hsl(var(--deck-ink-muted))] font-mono truncate`,children:e.summary})]}),(0,Z.jsx)(Ht,{status:e.status})]}),e.status===`running`&&e.progressMessage&&(0,Z.jsxs)(`div`,{className:`border-t border-[hsl(var(--deck-border))] px-3 py-2 space-y-1.5`,children:[(0,Z.jsxs)(`div`,{className:`flex items-center justify-between gap-3 font-mono text-[10px] text-[hsl(var(--deck-ink-muted))]`,children:[(0,Z.jsx)(`span`,{className:`truncate`,children:e.progressMessage}),e.progressTotal!==void 0&&e.progress!==void 0&&(0,Z.jsxs)(`span`,{className:`shrink-0`,children:[Math.max(0,Math.min(100,Math.round(e.progress/e.progressTotal*100))),`%`]})]}),e.progressTotal!==void 0&&e.progress!==void 0&&(0,Z.jsx)(`div`,{role:`progressbar`,"aria-label":`${e.toolName} progress`,"aria-valuemin":0,"aria-valuemax":e.progressTotal,"aria-valuenow":Math.min(e.progress,e.progressTotal),className:`h-1 overflow-hidden rounded-full bg-[hsl(var(--deck-border))]`,children:(0,Z.jsx)(`div`,{className:`h-full rounded-full bg-amber-500 transition-[width] duration-150`,style:{width:`${Math.max(0,Math.min(100,e.progress/e.progressTotal*100))}%`}})})]}),t&&(0,Z.jsxs)(`div`,{className:`px-3 py-2 space-y-2 border-t border-[hsl(var(--deck-border))]`,children:[r&&(0,Z.jsxs)(`div`,{className:`space-y-1`,children:[(0,Z.jsx)(`div`,{className:`text-[11px] text-[hsl(var(--deck-ink-muted))] font-mono`,children:`Arguments`}),(0,Z.jsx)(`pre`,{className:`text-[11px] text-[hsl(var(--deck-ink))] bg-[hsl(var(--deck-surface-2))] border border-[hsl(var(--deck-border))] rounded-md p-2 overflow-x-auto whitespace-pre-wrap font-mono max-h-[120px] overflow-y-auto`,children:r})]}),i&&(0,Z.jsxs)(`div`,{className:`space-y-1`,children:[(0,Z.jsx)(`div`,{className:`text-[11px] text-[hsl(var(--deck-ink-muted))] font-mono`,children:`Output`}),(0,Z.jsxs)(`pre`,{"data-tool-output":!0,className:`text-[11px] text-[hsl(var(--deck-ink))] bg-[hsl(var(--deck-surface-2))] border border-[hsl(var(--deck-border))] rounded-md p-2 overflow-x-auto whitespace-pre-wrap font-mono max-h-[120px] overflow-y-auto`,children:[i.body,i.notice&&(0,Z.jsxs)(Z.Fragment,{children:[`
|
|
15
|
+
`,(0,Z.jsx)(`span`,{"data-tool-truncation-notice":!0,children:i.notice})]})]})]})]})]})}function Xt({toolCalls:e}){return e.length===0?null:(0,Z.jsx)(`div`,{className:`space-y-2`,children:e.map(e=>(0,Z.jsx)(Yt,{tool:e},e.toolCallId))})}function Zt({toolCalls:e,toolCallIds:t}){let n=h(),{expanded:r,toggle:i}=Mt(`group`,t[0]),a=(0,X.useMemo)(()=>new Map(e.map(e=>[e.toolCallId,e])),[e]),o=t.flatMap(e=>{let t=a.get(e);return t?[t]:[]});if(o.length===0)return null;let s=o.filter(e=>e.status===`running`).length,c=o.filter(e=>e.status===`error`).length,l=[...o].reverse().find(e=>e.status===`running`&&!!e.progressMessage),u=s>0?n(o.length===1?`chat.timeline.tools.runningOne`:`chat.timeline.tools.running`,{count:o.length}):c>0?n(o.length===1?`chat.timeline.tools.completedOneWithError`:`chat.timeline.tools.completedWithErrors`,{count:o.length,errors:c}):n(o.length===1?`chat.timeline.tools.completedOne`:`chat.timeline.tools.completed`,{count:o.length});return(0,Z.jsxs)(`div`,{"data-agent-tool-group":!0,className:`py-0.5`,children:[(0,Z.jsxs)(`button`,{type:`button`,"aria-expanded":r,onClick:i,className:`group flex min-h-7 w-full items-center gap-1.5 rounded-md px-1.5 text-left font-mono text-[11.5px] text-[hsl(var(--deck-ink-faint))] transition-colors hover:bg-[hsl(var(--deck-surface))]/65 hover:text-[hsl(var(--deck-ink-muted))] focus-visible:outline-none focus-visible:ring-1 focus-visible:ring-[hsl(var(--deck-accent))]`,children:[r?(0,Z.jsx)(q,{className:`h-3.5 w-3.5 shrink-0`}):(0,Z.jsx)(j,{className:`h-3.5 w-3.5 shrink-0`}),s>0&&(0,Z.jsx)(W,{className:`h-3 w-3 shrink-0 animate-spin text-[hsl(var(--deck-accent))]`}),(0,Z.jsx)(`span`,{children:u}),l?.progressMessage&&(0,Z.jsxs)(`span`,{className:`min-w-0 truncate text-[10.5px] text-[hsl(var(--deck-ink-muted))]`,children:[l.progressMessage,l.progress!==void 0&&l.progressTotal!==void 0&&` · ${Math.max(0,Math.min(100,Math.round(l.progress/l.progressTotal*100)))}%`]})]}),l?.progress!==void 0&&l.progressTotal!==void 0&&(0,Z.jsx)(`div`,{role:`progressbar`,"aria-label":`${l.toolName} progress`,"aria-valuemin":0,"aria-valuemax":l.progressTotal,"aria-valuenow":Math.min(l.progress,l.progressTotal),className:`mx-1.5 h-0.5 overflow-hidden rounded-full bg-[hsl(var(--deck-border))]`,children:(0,Z.jsx)(`div`,{className:`h-full rounded-full bg-amber-500 transition-[width] duration-150`,style:{width:`${Math.max(0,Math.min(100,l.progress/l.progressTotal*100))}%`}})}),r&&(0,Z.jsx)(`div`,{"data-agent-tool-group-details":!0,className:`pl-1 mt-2 space-y-2`,children:(0,Z.jsx)(Xt,{toolCalls:o})})]})}function Qt({content:e}){let t=h(),[n,r]=(0,X.useState)(!1);return e?(0,Z.jsxs)(`div`,{"data-agent-thinking":!0,className:`py-0.5`,children:[(0,Z.jsxs)(`button`,{type:`button`,"aria-expanded":n,onClick:()=>r(e=>!e),className:`flex min-h-7 w-full items-center gap-1.5 rounded-md px-1.5 text-left font-mono text-[11.5px] text-[hsl(var(--deck-ink-faint))] transition-colors hover:bg-[hsl(var(--deck-surface))]/65 hover:text-[hsl(var(--deck-ink-muted))] focus-visible:outline-none focus-visible:ring-1 focus-visible:ring-[hsl(var(--deck-accent))]`,children:[n?(0,Z.jsx)(q,{className:`h-4 w-4 text-[hsl(var(--deck-ink-faint))]`}):(0,Z.jsx)(j,{className:`h-4 w-4 text-[hsl(var(--deck-ink-faint))]`}),(0,Z.jsx)(`span`,{children:t(`chat.timeline.thinking`)})]}),n&&(0,Z.jsx)(`div`,{className:`ml-1 mt-1 border-l border-[hsl(var(--deck-border))] py-1 pl-3`,children:(0,Z.jsx)(`pre`,{className:`whitespace-pre-wrap font-mono text-[11px] leading-5 text-[hsl(var(--deck-ink-muted))]`,children:e})})]}):null}function $t({tasks:e}){if(e.length===0)return null;let t=e.filter(e=>e.status===`completed`).length,n=t===e.length;return(0,Z.jsx)(`div`,{className:`bg-[hsl(var(--deck-surface-2))] border border-[hsl(var(--deck-border))] rounded-lg px-3 py-2`,children:(0,Z.jsx)(`div`,{className:`flex gap-2 items-center`,children:(0,Z.jsx)(`span`,{className:`text-[12px] text-[hsl(var(--deck-ink-muted))] font-mono`,children:n?`✓ All tasks done`:`Tasks: ${t}/${e.length}`})})})}function en({toolCalls:e}){let t=c(e=>e.openFilePreview),n=J(e=>u(e.historySurfaceSelection)),r=(0,X.useMemo)(()=>{let t=new Map,n=[`Write`,`SearchReplace`,`Edit`,`ApplyPatch`];for(let r of e){if(r.status!==`success`)continue;let e=r.metadata;if(r.toolName===`ApplyPatch`&&Array.isArray(e?.changes)){for(let n of e.changes)n&&typeof n==`object`&&`path`in n&&typeof n.path==`string`&&t.set(n.path,{path:n.path,toolName:r.toolName});continue}let i=e?.file_path;i&&n.includes(r.toolName)&&t.set(i,{path:i,toolName:r.toolName})}return Array.from(t.values())},[e]);if(n||r.length===0)return null;let i=e=>{a(J.getState())||t({tab:`diff`,targetPath:e})};return(0,Z.jsxs)(`div`,{className:`bg-[hsl(var(--deck-surface-2))] border border-[hsl(var(--deck-border))] rounded-lg px-3 py-2`,children:[(0,Z.jsxs)(`div`,{className:`text-[11px] text-[hsl(var(--deck-ink-muted))] font-mono mb-1.5`,children:[`Changed files (`,r.length,`)`]}),(0,Z.jsx)(`div`,{className:`flex flex-wrap gap-1.5`,children:r.map(({path:e})=>{let t=e.split(`/`).pop()||e;return(0,Z.jsxs)(`button`,{onClick:()=>i(e),className:`flex items-center gap-1 px-2 py-1 text-[11px] font-mono bg-[#E5E7EB] dark:bg-[#27272a] text-[hsl(var(--deck-ink))] rounded hover:bg-[#D1D5DB] dark:hover:bg-[#3f3f46] transition-colors`,title:e,children:[(0,Z.jsx)(be,{className:`w-3 h-3`}),t]},e)})})]})}function tn({subagent:e}){let t=h(),[n,i]=(0,X.useState)(null),[o,s]=(0,X.useState)(!1),[c,l]=(0,X.useState)(null),[d,f]=(0,X.useState)(!1),[p,m]=(0,X.useState)(``),[g,_]=(0,X.useState)(!1),[v,y]=(0,X.useState)(null),[b,x]=(0,X.useState)(null),[S,C]=(0,X.useState)(null),w=J(e=>e.currentSessionRef),T=J(e=>e.isStreaming),E=J(e=>e.isTemporarySession),D=J(e=>u(e.historySurfaceSelection));if(!e)return null;let O=e.status===`running`,k=n===null?O:n,A=e.toolCalls||c||[],j=e.output||e.thinking||A.length>0||e.sessionId,M=b&&b.status!==`running`?b:S,N=M?.id??e.sessionId,P=M?.restartRecovery?.outcome===`failed`,ee=!O&&!T&&!E&&!D&&!P&&b?.status!==`running`&&!!(N&&w);(0,X.useEffect)(()=>{if(D||!k||O||!e.sessionId||!w?.projectPath||c!==null||e.toolCalls&&e.toolCalls.length>0)return;let t=!0;return s(!0),z.getMessages({sessionId:e.sessionId,projectPath:w.projectPath}).then(e=>{if(!t)return;let n=r(e),i=new Map;for(let e of n)if(e.agentContent?.toolCalls?.length)for(let t of e.agentContent.toolCalls)i.has(t.toolCallId)||i.set(t.toolCallId,t);l(Array.from(i.values()))}).finally(()=>{t&&s(!1)}),()=>{t=!1}},[k,D,O,e.sessionId,e.toolCalls,c,w?.projectPath]),(0,X.useEffect)(()=>{if(D||!e.sessionId||!w)return;let t=!0,n=e.rootAgentId??e.sessionId,r=e.resumeDepth??0;return z.listSubagents(w).then(i=>{if(!t)return;C(i.find(t=>t.id===e.sessionId)??null);let a=i.filter(t=>t.id!==e.sessionId&&t.rootAgentId===n&&t.resumeDepth>r).sort((e,t)=>t.resumeDepth-e.resumeDepth||t.lastActiveAt-e.lastActiveAt)[0];a&&x(a)}).catch(()=>void 0),()=>{t=!1}},[w?.sessionId,w?.projectPath,D,e.sessionId,e.rootAgentId,e.resumeDepth]),(0,X.useEffect)(()=>{if(D||!b||b.status!==`running`||!w)return;let e=!0,t=async()=>{try{let t=(await z.listSubagents(w)).find(e=>e.id===b.id);e&&t&&x(t)}catch{}},n=window.setInterval(()=>{t()},1e3);return()=>{e=!1,window.clearInterval(n)}},[w,D,b?.id,b?.status]);let F=async()=>{if(!a(J.getState())&&w&&N&&p.trim()&&!g){_(!0),y(null);try{let e=await z.resumeSubagent(w,N,p.trim());x(e.session),m(``),f(!1),i(!0)}catch(e){y(e instanceof Error?e.message:t(`chat.subagent.resumeFailed`))}finally{_(!1)}}};return(0,Z.jsxs)(`div`,{"data-subagent-id":e.id,"data-subagent-session-id":e.sessionId,className:`bg-[hsl(var(--deck-surface-2))] border border-[hsl(var(--deck-border))] rounded-lg px-3 py-2`,children:[(0,Z.jsxs)(`button`,{type:`button`,onClick:()=>i(!k),className:`flex gap-2 justify-between items-center w-full transition-opacity cursor-pointer hover:opacity-80`,children:[(0,Z.jsxs)(`div`,{className:`flex gap-2 items-center`,children:[O&&(0,Z.jsx)(W,{className:`h-3 w-3 animate-spin text-[hsl(var(--deck-ink-muted))]`}),(0,Z.jsxs)(`span`,{className:`text-[12px] text-[hsl(var(--deck-ink-muted))] font-mono`,children:[e.type,`: `,e.description]}),(0,Z.jsx)(Ht,{status:e.status===`completed`?`success`:e.status===`failed`?`error`:`running`}),e.type===`verification`&&e.verificationVerdict&&(0,Z.jsx)(`span`,{"data-verification-verdict":e.verificationVerdict,className:H(`rounded px-1.5 py-0.5 text-[10px] font-semibold uppercase tracking-wide`,e.verificationVerdict===`pass`?`bg-emerald-500/10 text-emerald-600 dark:text-emerald-400`:e.verificationVerdict===`fail`?`bg-red-500/10 text-red-600 dark:text-red-400`:`bg-amber-500/10 text-amber-600 dark:text-amber-400`),children:e.verificationVerdict}),e.resumedFrom&&(0,Z.jsx)(`span`,{className:`rounded bg-[#EDE9FE] px-1.5 py-0.5 text-[10px] font-mono text-[#6D28D9] dark:bg-[#2E1065] dark:text-[#C4B5FD]`,title:t(`chat.subagent.resumedFromTitle`,{id:e.resumedFrom}),children:t(`chat.subagent.resumedDepth`,{depth:e.resumeDepth??1})})]}),j&&(0,Z.jsx)(q,{className:H(`h-3.5 w-3.5 text-[hsl(var(--deck-ink-muted))] transition-transform`,k&&`rotate-180`)})]}),!k&&!O&&e.output&&(0,Z.jsx)(`div`,{"data-subagent-output-summary":!0,className:`mt-2 max-h-10 overflow-hidden whitespace-pre-wrap break-words font-mono text-[11px] text-[hsl(var(--deck-ink))]`,children:e.output}),k&&(0,Z.jsxs)(`div`,{className:`mt-2 space-y-2`,children:[(e.output||e.thinking)&&(0,Z.jsxs)(Z.Fragment,{children:[e.output&&(0,Z.jsx)(`pre`,{className:`text-[11px] text-[hsl(var(--deck-ink))] bg-[hsl(var(--deck-surface-2))] border border-[hsl(var(--deck-border))] rounded-md p-2 overflow-x-auto whitespace-pre-wrap font-mono max-h-[160px] overflow-y-auto`,children:e.output}),e.thinking&&(0,Z.jsx)(`pre`,{className:`text-[11px] text-[hsl(var(--deck-ink-muted))] bg-[hsl(var(--deck-surface-2))] border border-[hsl(var(--deck-border))] rounded-md p-2 overflow-x-auto whitespace-pre-wrap font-mono max-h-[120px] overflow-y-auto`,children:e.thinking})]}),o&&(0,Z.jsxs)(`div`,{className:`flex items-center gap-2 text-[11px] text-[hsl(var(--deck-ink-muted))] font-mono`,children:[(0,Z.jsx)(W,{className:`w-3 h-3 animate-spin`}),t(`chat.subagent.loadingLogs`)]}),!o&&A.length>0&&(0,Z.jsx)(jt.Provider,{value:null,children:(0,Z.jsx)(Xt,{toolCalls:A})}),b&&(0,Z.jsxs)(`div`,{className:`rounded-md border border-[#DDD6FE] bg-[#F5F3FF] p-2 text-[11px] font-mono text-[#5B21B6] dark:border-[#4C1D95] dark:bg-[#1E1B4B] dark:text-[#C4B5FD]`,children:[(0,Z.jsx)(`div`,{children:t(`chat.subagent.resumedAs`,{id:b.id,status:b.status,depth:b.resumeDepth??1})}),(b.result?.message||b.result?.error)&&(0,Z.jsx)(`div`,{className:`mt-1 whitespace-pre-wrap text-[hsl(var(--deck-ink))]`,children:b.result.message||b.result.error})]}),P&&M?.result?.error&&(0,Z.jsx)(`div`,{role:`alert`,className:`text-[11px] text-red-600`,children:M.result.error}),ee&&(0,Z.jsxs)(`div`,{className:`space-y-2`,children:[d?(0,Z.jsxs)(`div`,{className:`space-y-2 rounded-md border border-[#E5E7EB] bg-white p-2 dark:border-[#27272a] dark:bg-[#111113]`,children:[(0,Z.jsx)(`textarea`,{"aria-label":t(`chat.subagent.followUpAria`),value:p,onChange:e=>m(e.target.value),placeholder:t(`chat.subagent.followUpPlaceholder`),rows:3,className:`w-full resize-y rounded border border-[#D1D5DB] bg-white p-2 text-[11px] text-[#111827] outline-none focus:border-[#8B5CF6] dark:border-[#3f3f46] dark:bg-[#18181b] dark:text-[#f4f4f5]`}),(0,Z.jsxs)(`div`,{className:`flex gap-2 justify-end`,children:[(0,Z.jsx)(`button`,{type:`button`,onClick:()=>{f(!1),y(null)},className:`rounded px-2 py-1 text-[11px] text-[#6B7280] hover:bg-[#F3F4F6] dark:hover:bg-[#27272a]`,children:t(`chat.subagent.cancel`)}),(0,Z.jsxs)(`button`,{type:`button`,onClick:()=>void F(),disabled:!p.trim()||g,className:`flex items-center gap-1 rounded bg-[#7C3AED] px-2 py-1 text-[11px] font-medium text-white disabled:opacity-50`,children:[g&&(0,Z.jsx)(W,{className:`w-3 h-3 animate-spin`}),t(`chat.subagent.resumeAgent`)]})]})]}):(0,Z.jsxs)(`button`,{type:`button`,"aria-label":t(`chat.subagent.resumeAria`),onClick:()=>f(!0),className:`flex items-center gap-1.5 rounded-md border border-[#D1D5DB] px-2 py-1 text-[11px] font-medium text-[#374151] transition-colors hover:bg-[#F3F4F6] dark:border-[#3f3f46] dark:text-[#d4d4d8] dark:hover:bg-[#27272a]`,children:[(0,Z.jsx)(Ee,{className:`w-3 h-3`}),t(`chat.subagent.resume`)]}),v&&(0,Z.jsx)(`div`,{role:`alert`,className:`text-[11px] text-red-600`,children:v})]})]})]})}function nn({confirmation:e,messageId:t}){let n=h(),[r,i]=(0,X.useState)(!1),[o,s]=(0,X.useState)(null),c=J(e=>e.currentSessionRef),l=J(e=>e.setConfirmation);if(!e)return null;let u=async(o,u)=>{if(!a(J.getState())&&c&&!r){i(!0),s(null);try{await z.respondPermission(c,e.toolCallId,{approved:o,scope:u}),l(t,{...e,status:o?`approved`:`denied`})}catch(e){s(e instanceof Error?e.message:n(`interaction.permission.failed`))}finally{i(!1)}}};return e.status===`pending`?(0,Z.jsxs)(`div`,{"data-pending-interaction":`permission`,tabIndex:-1,role:`alert`,className:`p-4 space-y-3 rounded-lg border outline-none border-amber-300/70 bg-amber-50/70 focus-visible:ring-2 focus-visible:ring-amber-500 dark:border-amber-800/70 dark:bg-amber-950/25`,children:[(0,Z.jsx)(`div`,{className:`text-[13px] text-[hsl(var(--deck-ink))] font-mono`,children:n(`interaction.permission.title`,{tool:e.toolName})}),(0,Z.jsx)(`div`,{className:`text-[12px] text-[hsl(var(--deck-ink-muted))] font-mono`,children:e.description}),e.diff&&(0,Z.jsx)(`pre`,{className:`text-[11px] text-[hsl(var(--deck-ink))] bg-[hsl(var(--deck-surface-2))] border border-[hsl(var(--deck-border))] rounded-md p-2 overflow-x-auto whitespace-pre-wrap font-mono max-h-[200px] overflow-y-auto`,children:e.diff}),o&&(0,Z.jsx)(`div`,{role:`alert`,className:`rounded-md border border-red-300/70 bg-red-50 px-2.5 py-2 font-mono text-[11px] text-red-700 dark:border-red-900/70 dark:bg-red-950/35 dark:text-red-300`,children:o}),(0,Z.jsxs)(`div`,{className:`flex flex-wrap gap-2`,children:[(0,Z.jsx)(`button`,{type:`button`,onClick:()=>void u(!0,`once`),disabled:r,className:`min-h-8 px-3 py-1.5 text-[12px] font-mono bg-[#22C55E] text-white rounded-md hover:bg-[#16A34A] disabled:cursor-wait disabled:opacity-50`,children:r?(0,Z.jsx)(W,{className:`h-3.5 w-3.5 animate-spin`}):n(`interaction.permission.once`)}),e.allowRemember!==!1&&(0,Z.jsxs)(Z.Fragment,{children:[(0,Z.jsx)(`button`,{type:`button`,onClick:()=>void u(!0,`session`),disabled:r,className:`min-h-8 px-3 py-1.5 text-[12px] font-mono bg-[#3B82F6] text-white rounded-md hover:bg-[#2563EB] disabled:cursor-wait disabled:opacity-50`,children:n(`interaction.permission.session`)}),(0,Z.jsx)(`button`,{type:`button`,onClick:()=>void u(!0,`project`),disabled:r,className:`min-h-8 px-3 py-1.5 text-[12px] font-mono bg-[#6366F1] text-white rounded-md hover:bg-[#4F46E5] disabled:cursor-wait disabled:opacity-50`,children:n(`interaction.permission.project`)})]}),(0,Z.jsx)(`button`,{type:`button`,onClick:()=>void u(!1),disabled:r,className:`min-h-8 px-3 py-1.5 text-[12px] font-mono bg-[#EF4444] text-white rounded-md hover:bg-[#DC2626] disabled:cursor-wait disabled:opacity-50`,children:n(`interaction.permission.deny`)})]})]}):null}function rn({question:e,messageId:t}){let n=h(),[r,i]=(0,X.useState)({}),[o,s]=(0,X.useState)({}),[c,l]=(0,X.useState)(!1),[u,d]=(0,X.useState)(null),f=J(e=>e.currentSessionRef),p=J(e=>e.setQuestion),m=(0,X.useMemo)(()=>e?e.questions.reduce((e,t)=>{let n=o[t.header]?.trim(),i=r[t.header];if(t.multiSelect){let r=Array.isArray(i)?[...i]:[];return n&&r.push(n),r.length>0&&(e[t.header]=r),e}let a=n||(typeof i==`string`?i:``);return a&&(e[t.header]=a),e},{}):{},[r,o,e]),g=e?.questions.every(e=>e.header in m)??!1;if(!e)return null;let _=async()=>{if(!a(J.getState())&&f&&!c&&g){l(!0),d(null);try{await z.respondToQuestion(f,e.toolCallId,m),p(t,{...e,status:`answered`,answers:m})}catch(e){d(e instanceof Error?e.message:n(`interaction.question.failed`))}finally{l(!1)}}};return e.status===`pending`?(0,Z.jsxs)(`div`,{"data-pending-interaction":`question`,tabIndex:-1,role:`alert`,className:`p-4 space-y-4 rounded-lg border outline-none border-amber-300/70 bg-amber-50/70 focus-visible:ring-2 focus-visible:ring-amber-500 dark:border-amber-800/70 dark:bg-amber-950/25`,children:[e.questions.map((e,t)=>(0,Z.jsxs)(`div`,{className:`space-y-2`,children:[(0,Z.jsx)(`div`,{className:`text-[13px] text-[hsl(var(--deck-ink))] font-mono`,children:e.question}),(0,Z.jsxs)(`div`,{className:`space-y-1`,children:[e.options.map((t,n)=>(0,Z.jsxs)(`button`,{type:`button`,onClick:()=>{if(e.multiSelect){let n=r[e.header]||[],a=n.includes(t.label)?n.filter(e=>e!==t.label):[...n,t.label];i({...r,[e.header]:a})}else i({...r,[e.header]:t.label}),s({...o,[e.header]:``})},className:H(`w-full text-left px-3 py-2 rounded-md border text-[12px] font-mono transition-colors`,`border-[hsl(var(--deck-border))]`,(e.multiSelect?(r[e.header]||[]).includes(t.label):r[e.header]===t.label)?`bg-[#DCFCE7] text-[#166534] dark:bg-[#22C55E]/20 dark:text-[#E5E5E5]`:`bg-[hsl(var(--deck-surface-2))] text-[hsl(var(--deck-ink-muted))]`),children:[(0,Z.jsx)(`div`,{children:t.label}),(0,Z.jsx)(`div`,{className:`text-[11px] text-[hsl(var(--deck-ink-faint))] mt-1`,children:t.description})]},n)),(0,Z.jsx)(`input`,{"aria-label":`${e.header} other response`,value:o[e.header]??``,onChange:t=>s({...o,[e.header]:t.target.value}),placeholder:n(`interaction.question.other`),className:`w-full rounded-md border border-[#E5E7EB] bg-white px-3 py-2 text-[12px] text-[#111827] outline-none focus:border-[#22C55E] dark:border-[#27272a] dark:bg-[#111113] dark:text-[#E5E5E5]`})]})]},t)),u&&(0,Z.jsx)(`div`,{role:`alert`,className:`rounded-md border border-red-300/70 bg-red-50 px-2.5 py-2 font-mono text-[11px] text-red-700 dark:border-red-900/70 dark:bg-red-950/35 dark:text-red-300`,children:u}),(0,Z.jsxs)(`button`,{type:`button`,onClick:()=>void _(),disabled:c||!g,className:`inline-flex min-h-8 items-center gap-1.5 px-3 py-1.5 text-[12px] font-mono bg-[#22C55E] text-white rounded-md hover:bg-[#16A34A] disabled:cursor-wait disabled:opacity-50`,children:[c&&(0,Z.jsx)(W,{className:`h-3.5 w-3.5 animate-spin`}),n(`interaction.question.submit`)]})]}):(0,Z.jsx)(`div`,{className:`bg-[hsl(var(--deck-surface-2))] border border-[hsl(var(--deck-border))] rounded-lg px-3 py-2`,children:(0,Z.jsx)(`div`,{className:`text-[12px] text-[hsl(var(--deck-ink-muted))] font-mono`,children:n(`interaction.question.answered`)})})}function an({message:e}){let t=e.agentContent,r=J(t=>t.isStreaming&&!!(t.currentAssistantMessageId&&(e.displaySourceMessageIds?.includes(t.currentAssistantMessageId)??t.currentAssistantMessageId===e.id)));if(!t){let t=zt(e.content);return t?(0,Z.jsx)(Vt,{content:t}):null}let{toolCalls:i,tasks:a,confirmation:o,question:c,elicitation:l}=t,u=n(t),d=f(s(t));if(!(d.length>0||a.length>0||u.length>0||o||c||l)&&r)return(0,Z.jsxs)(`div`,{className:`flex items-center gap-2 text-[hsl(var(--deck-ink-muted))]`,children:[(0,Z.jsx)(W,{className:`w-4 h-4 animate-spin`}),(0,Z.jsx)(`span`,{className:`text-[12px] font-mono`,children:`Thinking...`})]});let p=i.length>0&&i.every(e=>e.status===`success`||e.status===`error`)&&!r,m=!r;return(0,Z.jsxs)(`div`,{className:`space-y-3`,children:[d.map(e=>e.type===`thinking`?(0,Z.jsx)(`div`,{"data-agent-timeline-block":`thinking`,children:(0,Z.jsx)(Qt,{content:e.content})},e.id):e.type===`text`?(0,Z.jsx)(`div`,{"data-agent-timeline-block":`text`,children:(0,Z.jsx)(Vt,{content:e.content,syntaxHighlight:m})},e.id):(0,Z.jsx)(`div`,{"data-agent-timeline-block":`tool_group`,children:(0,Z.jsx)(Zt,{toolCalls:i,toolCallIds:e.toolCallIds})},e.id)),a.length>0&&(0,Z.jsx)($t,{tasks:a}),u.map(e=>(0,Z.jsx)(tn,{subagent:e},e.id)),o&&(0,Z.jsx)(nn,{confirmation:o,messageId:e.id}),c&&(0,Z.jsx)(rn,{question:c,messageId:e.id}),l&&(0,Z.jsx)(xt,{elicitation:l,messageId:e.id}),p&&(0,Z.jsx)(en,{toolCalls:i})]})}function on({message:e,showAvatar:t=!0,onNavigateToMessage:n}){let r=h(),i=e.role===`user`,a=e.role===`system`;if(e.metadata?.conversationRecap===!0)return(0,Z.jsx)(`div`,{"data-chat-message-id":e.id,"data-chat-role":`assistant`,"data-conversation-recap":!0,className:`w-full px-4 py-2 sm:pl-16`,children:(0,Z.jsxs)(`p`,{className:`break-words text-sm leading-relaxed text-[hsl(var(--deck-ink-muted))]`,children:[(0,Z.jsx)(`span`,{className:`font-medium`,children:`↶ recap: `}),(0,Z.jsx)(`span`,{className:`italic`,children:zt(e.content)})]})});if(a){let t=zt(e.content);return(0,Z.jsx)(`div`,{"data-chat-message-id":e.id,"data-chat-role":`system`,className:`flex justify-center p-2 w-full`,children:(0,Z.jsx)(`div`,{className:`text-xs text-[hsl(var(--deck-ink-muted))] bg-[#F3F4F6] dark:bg-[#18181b] px-3 py-1 rounded-full font-mono`,children:t})})}if(i){let t=e.metadata?.userShellCommand&&typeof e.metadata.userShellCommand==`object`?e.metadata.userShellCommand:e.metadata?.userShellExecution&&typeof e.metadata.userShellExecution==`object`?e.metadata.userShellExecution:void 0;if(t){let n=typeof t.command==`string`?t.command:``,r=t.status===`running`?`running`:t.status===`completed`?`success`:`error`,i=typeof t.output==`string`?t.output:[typeof t.stdout==`string`?t.stdout:``,typeof t.stderr==`string`&&t.stderr?`stderr:\n${t.stderr}`:``].filter(Boolean).join(`
|
|
16
|
+
`);return(0,Z.jsx)(`div`,{"data-chat-message-id":e.id,"data-chat-role":`user`,"data-user-shell-command":!0,className:`flex justify-end p-4 w-full`,children:(0,Z.jsxs)(`div`,{className:`w-full max-w-[85%] overflow-hidden rounded-lg border border-[hsl(var(--deck-border))] bg-[hsl(var(--deck-surface))]`,children:[(0,Z.jsxs)(`div`,{className:`flex items-center justify-between gap-3 border-b border-[hsl(var(--deck-border))] bg-[hsl(var(--deck-surface-2))] px-3 py-2`,children:[(0,Z.jsxs)(`div`,{className:`min-w-0 truncate font-mono text-[12px] text-[hsl(var(--deck-ink))]`,children:[(0,Z.jsx)(`span`,{className:`mr-2 text-amber-600 dark:text-amber-400`,children:`$`}),n]}),(0,Z.jsx)(Ht,{status:r})]}),(0,Z.jsx)(`pre`,{className:`max-h-64 overflow-auto whitespace-pre-wrap px-3 py-2 font-mono text-[11px] text-[hsl(var(--deck-ink-muted))]`,children:i||`(no output)`}),typeof t.exitCode==`number`&&(0,Z.jsxs)(`div`,{className:`border-t border-[hsl(var(--deck-border))] px-3 py-1.5 font-mono text-[10px] text-[hsl(var(--deck-ink-faint))]`,children:[`exit `,t.exitCode,typeof t.durationMs==`number`?` · ${(t.durationMs/1e3).toFixed(3)}s`:``,t.truncated===!0?` · truncated`:``]})]})})}let{text:i,images:a}=Rt(e.content),o=ie(e.metadata);return(0,Z.jsxs)(`div`,{"data-chat-message-id":e.id,"data-chat-role":`user`,className:`flex gap-2 justify-end items-start p-4 w-full group`,children:[(0,Z.jsx)(`div`,{className:`flex mt-1 opacity-0 transition-opacity shrink-0 group-hover:opacity-100 group-focus-within:opacity-100`,children:(0,Z.jsx)(Pt,{text:i,label:`Copy message`})}),(0,Z.jsxs)(`div`,{className:`bg-[hsl(var(--deck-surface-2))] rounded-lg px-4 py-3 max-w-[85%]`,children:[o.length>0&&(0,Z.jsxs)(`details`,{"data-user-message-annotations":!0,className:`mb-2`,children:[(0,Z.jsxs)(`summary`,{className:`inline-flex min-h-7 cursor-pointer list-none items-center gap-1.5 rounded-md border border-[hsl(var(--deck-border-strong))] bg-[hsl(var(--deck-surface))] px-2.5 font-mono text-[10.5px] text-[hsl(var(--deck-ink-muted))] focus-visible:outline-none focus-visible:ring-1 focus-visible:ring-[hsl(var(--deck-accent))]`,children:[(0,Z.jsx)(Se,{"aria-hidden":!0,className:`h-3.5 w-3.5`}),r(o.length===1?`chat.input.annotation.one`:`chat.input.annotation.many`,{count:o.length})]}),(0,Z.jsx)(`div`,{className:`mt-2 space-y-2`,children:o.map((e,t)=>(0,Z.jsxs)(`div`,{className:`border-l-2 border-[hsl(var(--deck-accent)/0.45)] pl-2`,children:[(0,Z.jsx)(`div`,{className:`font-mono text-[9.5px] uppercase text-[hsl(var(--deck-ink-faint))]`,children:r(`chat.input.annotation.item`,{index:t+1})}),(0,Z.jsx)(`blockquote`,{className:`mt-0.5 whitespace-pre-wrap text-[11px] leading-4 text-[hsl(var(--deck-ink-muted))]`,children:e.text}),e.comment&&(0,Z.jsx)(`p`,{className:`mt-1 text-[11px] leading-4 text-[hsl(var(--deck-ink))]`,children:e.comment}),n&&(0,Z.jsxs)(`button`,{type:`button`,onClick:()=>n(e.sourceMessageId),className:`mt-1.5 inline-flex min-h-7 items-center gap-1.5 rounded-md px-2 text-[10.5px] font-medium text-[hsl(var(--deck-accent))] transition-colors hover:bg-[hsl(var(--deck-accent-soft))] focus-visible:outline-none focus-visible:ring-1 focus-visible:ring-[hsl(var(--deck-accent))]`,children:[(0,Z.jsx)(Te,{"aria-hidden":!0,className:`h-3.5 w-3.5`}),r(`chat.input.annotation.jump`)]})]},e.id))})]}),i&&(0,Z.jsx)(`p`,{className:`text-[14px] text-[hsl(var(--deck-ink))] font-mono leading-relaxed whitespace-pre-wrap`,children:i}),a.length>0&&(0,Z.jsx)(`div`,{className:H(`grid gap-2`,a.length===1?`grid-cols-1 mt-0`:`grid-cols-2 mt-3`),children:a.map((e,t)=>(0,Z.jsx)(`img`,{src:e,alt:`attachment-${t+1}`,className:`object-cover w-full max-h-64 rounded-md`},`${e}-${t}`))})]}),(0,Z.jsx)(It,{})]})}let o=Bt(e),s=vt(e.metadata?.codeReview),c=kt(e.metadata?.structuredOutput);return(0,Z.jsxs)(`div`,{"data-chat-message-id":e.id,"data-chat-role":`assistant`,className:H(`flex gap-4 justify-start w-full group`,t?`p-4`:`px-4 pt-0 pb-3`),children:[t?(0,Z.jsx)(Ft,{}):(0,Z.jsx)(`div`,{className:`w-8 shrink-0`}),(0,Z.jsxs)(`div`,{className:`overflow-hidden flex-1 min-w-0`,children:[s?(0,Z.jsx)(bt,{report:s}):c?(0,Z.jsx)(At,{report:c}):(0,Z.jsx)(an,{message:e}),!c&&o.trim()&&(0,Z.jsx)(`div`,{className:`mt-1.5 flex opacity-0 transition-opacity group-hover:opacity-100 group-focus-within:opacity-100`,children:(0,Z.jsx)(Pt,{text:o,label:`Copy response`})})]})]})}var sn=(0,X.memo)(on),cn=e(m(),1),ln=8,un=10;function dn(e){return e instanceof HTMLElement&&!!e.closest(`input, textarea, select, [contenteditable="true"], [role="textbox"]`)}function fn(){let e=window.visualViewport;return{left:e?.offsetLeft??0,top:e?.offsetTop??0,width:e?.width??window.innerWidth,height:e?.height??window.innerHeight}}function pn(e,t,n){let r=fn(),i=r.left+ln,a=r.left+r.width-t-ln,o=e.left+e.width/2-t/2,s=Math.max(i,Math.min(Math.max(i,a),o)),c=e.bottom+un,l=e.top-n-un,u=r.top+r.height-n-ln;return{left:s,top:c<=u?c:Math.max(r.top+ln,Math.min(u,l))}}function mn({rootRef:e,draftKey:n,canAskSideConversation:r,onOpenSideConversation:i}){let a=h(),o=(0,X.useRef)(null),s=(0,X.useRef)(null),c=(0,X.useRef)(!1),l=(0,X.useRef)(`actions`),[u,d]=(0,X.useState)(null),[f,p]=(0,X.useState)(`actions`),[m,g]=(0,X.useState)(``),[_,v]=(0,X.useState)(null),y=(0,X.useCallback)(e=>{c.current=!1,l.current=e,p(e),g(``)},[]),b=(0,X.useCallback)(()=>{c.current=!1,l.current=`actions`,p(`actions`),g(``),d(null),v(null),window.getSelection()?.removeAllRanges()},[]),x=(0,X.useCallback)(e=>{if(!u||u.tooLarge)return;let t=globalThis.crypto?.randomUUID?.()??`selection-${Date.now()}-${Math.random().toString(36).slice(2,8)}`,r=e?.trim();ve(n,{id:t,text:u.text,sourceMessageId:u.messageId,sourceRole:u.role,...r?{comment:r}:{}})&&b()},[b,n,u]),S=(0,X.useCallback)(()=>{u&&!u.tooLarge&&r&&i(u.text)&&b()},[r,b,i,u]),w=(0,X.useCallback)(()=>{if(l.current!==`actions`)return;let t=e.current;if(!t)return;let n=V(t,window.getSelection());d(n),v(null)},[e]);if((0,X.useEffect)(()=>{let e=0,t=()=>{window.cancelAnimationFrame(e),e=window.requestAnimationFrame(w)},n=e=>{o.current?.contains(e.target)||u&&(c.current=!1,l.current=`actions`,p(`actions`),g(``),d(null))},r=e=>{o.current?.contains(e.target)||b()},i=e=>{if(!(!u||c.current||e.isComposing||e.keyCode===229)){if(e.key===`Escape`){e.preventDefault(),b();return}if(!(l.current!==`actions`||dn(e.target))){if((e.metaKey||e.ctrlKey)&&e.key.toLowerCase()===`j`){e.preventDefault(),y(`comment`);return}e.key===`Enter`&&(e.preventDefault(),x())}}};return document.addEventListener(`selectionchange`,t),document.addEventListener(`pointerup`,t),document.addEventListener(`pointerdown`,n),document.addEventListener(`keydown`,i),document.addEventListener(`scroll`,r,!0),window.addEventListener(`resize`,b),window.visualViewport?.addEventListener(`resize`,b),()=>{window.cancelAnimationFrame(e),document.removeEventListener(`selectionchange`,t),document.removeEventListener(`pointerup`,t),document.removeEventListener(`pointerdown`,n),document.removeEventListener(`keydown`,i),document.removeEventListener(`scroll`,r,!0),window.removeEventListener(`resize`,b),window.visualViewport?.removeEventListener(`resize`,b)}},[x,w,b,u,y]),(0,X.useLayoutEffect)(()=>{if(!u||!o.current)return;let e=o.current.getBoundingClientRect();v(pn(u.rect,e.width,e.height))},[f,u]),(0,X.useEffect)(()=>{f!==`actions`&&requestAnimationFrame(()=>s.current?.focus())},[f]),!u||typeof document>`u`)return null;let T=typeof navigator<`u`&&/Mac|iPhone|iPad|iPod/u.test(navigator.userAgent)?`⌘ J`:`Ctrl J`,E=u.tooLarge?a(`chat.selection.tooLarge`):r?void 0:a(`chat.selection.sideUnavailable`),D={left:_?.left??0,top:_?.top??0,visibility:_?`visible`:`hidden`};return(0,cn.createPortal)((0,Z.jsx)(`div`,{ref:o,"data-chat-selection-overlay":!0,style:D,className:`fixed z-50 max-w-[calc(100vw-1rem)]`,onPointerDown:e=>e.stopPropagation(),onPointerUp:e=>e.stopPropagation(),children:f===`actions`?(0,Z.jsxs)(`div`,{role:`toolbar`,"aria-label":a(`chat.selection.toolbar`),className:`grid min-w-[250px] overflow-hidden rounded-lg border border-[hsl(var(--deck-border-strong))] bg-[hsl(var(--deck-surface))]/98 text-[hsl(var(--deck-ink))] shadow-xl backdrop-blur-md divide-y divide-[hsl(var(--deck-border))] sm:flex sm:min-w-0 sm:divide-x sm:divide-y-0`,onPointerDown:e=>e.preventDefault(),children:[(0,Z.jsxs)(`button`,{type:`button`,"aria-keyshortcuts":`Meta+J Control+J`,disabled:u.tooLarge,onClick:()=>y(`comment`),className:`flex min-h-11 items-center gap-2 whitespace-nowrap px-3 text-left text-[12px] transition-colors hover:bg-[hsl(var(--deck-surface-2))] focus-visible:outline-none focus-visible:ring-2 focus-visible:ring-inset focus-visible:ring-[hsl(var(--deck-accent))] disabled:cursor-not-allowed disabled:opacity-45`,children:[(0,Z.jsx)(Se,{"aria-hidden":!0,className:`h-4 w-4 shrink-0`}),(0,Z.jsx)(`span`,{children:a(`chat.selection.comment`)}),(0,Z.jsx)(`kbd`,{className:`ml-auto font-mono text-[10px] text-[hsl(var(--deck-ink-faint))]`,children:T})]}),(0,Z.jsxs)(`button`,{type:`button`,"aria-keyshortcuts":`Enter`,disabled:u.tooLarge,onClick:()=>x(),className:`flex min-h-11 items-center gap-2 whitespace-nowrap px-3 text-left text-[12px] transition-colors hover:bg-[hsl(var(--deck-surface-2))] focus-visible:outline-none focus-visible:ring-2 focus-visible:ring-inset focus-visible:ring-[hsl(var(--deck-accent))] disabled:cursor-not-allowed disabled:opacity-45`,children:[(0,Z.jsx)(C,{"aria-hidden":!0,className:`h-4 w-4 shrink-0`}),(0,Z.jsx)(`span`,{children:a(`chat.selection.add`)}),(0,Z.jsx)(`kbd`,{className:`ml-auto font-mono text-[11px] text-[hsl(var(--deck-ink-faint))]`,children:`↵`})]}),(0,Z.jsxs)(`button`,{type:`button`,disabled:!!E,title:E,onClick:S,className:`flex min-h-11 items-center gap-2 whitespace-nowrap px-3 text-left text-[12px] transition-colors hover:bg-[hsl(var(--deck-surface-2))] focus-visible:outline-none focus-visible:ring-2 focus-visible:ring-inset focus-visible:ring-[hsl(var(--deck-accent))] disabled:cursor-not-allowed disabled:opacity-45`,children:[(0,Z.jsx)(Ge,{"aria-hidden":!0,className:`h-4 w-4 shrink-0`}),(0,Z.jsx)(`span`,{children:a(`chat.selection.askSide`)})]})]}):(0,Z.jsxs)(`form`,{role:`dialog`,"aria-label":a(`chat.selection.commentDialog`),className:`w-[min(360px,calc(100vw-1rem))] rounded-lg border border-[hsl(var(--deck-border-strong))] bg-[hsl(var(--deck-surface))] p-2 shadow-xl`,onSubmit:e=>{e.preventDefault(),x(m)},children:[(0,Z.jsx)(`div`,{className:`mb-2 line-clamp-2 border-l-2 border-[hsl(var(--deck-accent)/0.55)] pl-2 font-mono text-[10.5px] leading-4 text-[hsl(var(--deck-ink-muted))]`,children:u.text}),(0,Z.jsx)(`textarea`,{ref:s,name:`selected-conversation-comment`,maxLength:t,rows:3,value:m,onChange:e=>g(e.target.value),onCompositionStart:()=>{c.current=!0},onCompositionEnd:()=>{c.current=!1},onBlur:()=>{c.current=!1},onKeyDown:e=>{if(!(c.current||e.nativeEvent.isComposing||e.keyCode===229)){if((e.metaKey||e.ctrlKey)&&e.key.toLocaleLowerCase()===`a`){e.preventDefault(),e.stopPropagation(),e.currentTarget.select();return}if(e.key===`Escape`){e.preventDefault(),b();return}e.key!==`Enter`||e.shiftKey||(e.preventDefault(),x(m))}},"aria-label":a(`chat.selection.commentInput`),placeholder:a(`chat.selection.commentPlaceholder`),className:`block max-h-32 min-h-[72px] w-full resize-none rounded-md border border-[hsl(var(--deck-border))] bg-[hsl(var(--deck-canvas))] px-2.5 py-2 text-[12px] leading-5 text-[hsl(var(--deck-ink))] placeholder:text-[hsl(var(--deck-ink-faint))] focus-visible:outline-none focus-visible:ring-1 focus-visible:ring-[hsl(var(--deck-accent))]`}),(0,Z.jsxs)(`div`,{className:`mt-2 flex items-center justify-end gap-2`,children:[(0,Z.jsx)(`button`,{type:`button`,onClick:b,className:`h-8 rounded-md px-2.5 text-[11px] text-[hsl(var(--deck-ink-muted))] transition-colors hover:bg-[hsl(var(--deck-surface-2))] hover:text-[hsl(var(--deck-ink))] focus-visible:outline-none focus-visible:ring-1 focus-visible:ring-[hsl(var(--deck-accent))]`,children:a(`chat.selection.cancel`)}),(0,Z.jsxs)(`button`,{type:`submit`,className:`inline-flex h-8 items-center gap-1.5 rounded-md bg-[hsl(var(--deck-accent))] px-3 text-[11px] font-medium text-white transition-opacity hover:opacity-90 focus-visible:outline-none focus-visible:ring-2 focus-visible:ring-[hsl(var(--deck-accent))] focus-visible:ring-offset-2 disabled:cursor-not-allowed disabled:opacity-45`,children:[a(`chat.selection.add`),(0,Z.jsx)(Fe,{"aria-hidden":!0,className:`h-3 w-3`})]})]})]})}),document.body)}function hn(e,t,n){return Math.max(0,e+(n-t))}function gn(e,t,n){return Math.min(t,Math.max(0,e)+Math.max(0,n))}function _n(e,t,n,r){let i=new Map(e.filter(e=>!!e.id).map(e=>[e.id,e])),a=new Set(n);for(let e of t){if(!e.id)continue;let t=i.get(e.id);t!==e&&(!t||!r||r(t)!==r(e))&&a.add(e.id)}return a}function vn(e,t){return e?e.querySelector(`[data-chat-message-id="${CSS.escape(t)}"]`):null}function yn({turns:e,viewportRef:t,containerRef:n,onRevealTurn:r}){let i=h(),[a,o]=(0,X.useState)(null),[s,c]=(0,X.useState)(!1),l=(0,X.useRef)(null),u=(0,X.useCallback)(()=>{let r=t.current,i=n.current;if(!r||!i||e.length===0)return;let a=r.getBoundingClientRect().top,s=e[0]?.id??null;for(let t of e){let e=vn(i,t.id);if(e){if(e.getBoundingClientRect().top-a<=24)s=t.id;else break}}o(s)},[e,t,n]);(0,X.useEffect)(()=>{let e=t.current;if(!e)return;let n=()=>{l.current===null&&(l.current=window.requestAnimationFrame(()=>{l.current=null,u()}))};return u(),e.addEventListener(`scroll`,n,{passive:!0}),()=>{e.removeEventListener(`scroll`,n),l.current!==null&&(window.cancelAnimationFrame(l.current),l.current=null)}},[u,t]);let d=(0,X.useCallback)(e=>{let t=()=>{let t=vn(n.current,e.id);t&&(t.scrollIntoView({behavior:`smooth`,block:`start`}),o(e.id))};r(e.index)?t():window.requestAnimationFrame(()=>window.requestAnimationFrame(t))},[n,r]);return e.length<2?null:(0,Z.jsx)(`nav`,{"aria-label":i(`chat.turns.aria`),className:`absolute right-1 top-1/2 z-20 hidden -translate-y-1/2 sm:block`,onMouseEnter:()=>c(!0),onMouseLeave:()=>c(!1),onFocusCapture:()=>c(!0),onBlurCapture:e=>{e.currentTarget.contains(e.relatedTarget)||c(!1)},children:(0,Z.jsxs)(`div`,{className:`relative flex items-center justify-end`,children:[(0,Z.jsx)(`ul`,{className:H(`flex flex-col items-center gap-2 py-2 transition-opacity`,s?`opacity-0`:`opacity-100`),"aria-hidden":s,children:e.map(e=>(0,Z.jsx)(`li`,{children:(0,Z.jsx)(`span`,{className:H(`block rounded-full transition-all`,e.id===a?`h-2 w-2 bg-[hsl(var(--deck-accent))]`:`h-1.5 w-1.5 bg-[hsl(var(--deck-ink-faint))]/40`)})},e.id))}),(0,Z.jsx)(`div`,{className:H(`absolute right-0 max-h-[min(70vh,520px)] w-[280px] overflow-y-auto rounded-lg border border-[hsl(var(--deck-border))] bg-[hsl(var(--deck-surface))]/95 p-1 shadow-xl backdrop-blur transition-all`,s?`pointer-events-auto translate-x-0 opacity-100`:`pointer-events-none translate-x-2 opacity-0`),children:e.map((e,t)=>(0,Z.jsxs)(`button`,{type:`button`,onClick:()=>d(e),className:H(`flex w-full items-start gap-2 rounded-md px-2 py-1.5 text-left transition-colors`,e.id===a?`bg-[hsl(var(--deck-hairline))]/70 text-[hsl(var(--deck-ink))]`:`text-[hsl(var(--deck-ink-muted))] hover:bg-[hsl(var(--deck-hairline))]/50 hover:text-[hsl(var(--deck-ink))]`),children:[(0,Z.jsx)(`span`,{className:H(`mt-1 h-1.5 w-1.5 shrink-0 rounded-full`,e.id===a?`bg-[hsl(var(--deck-accent))]`:`bg-[hsl(var(--deck-ink-faint))]/40`)}),(0,Z.jsxs)(`span`,{className:`min-w-0 flex-1`,children:[(0,Z.jsx)(`span`,{className:`block font-mono text-[9.5px] uppercase tracking-[0.12em] text-[hsl(var(--deck-ink-faint))]`,children:i(`chat.turns.label`,{n:t+1})}),(0,Z.jsx)(`span`,{className:`line-clamp-2 text-[12px] leading-4`,children:e.preview})]})]},e.id))})]})})}var bn=80;function xn(e){return typeof e==`string`?e:Array.isArray(e)?e.filter(e=>e.type===`text`).map(e=>e.text).join(` `):``}function Sn(e){let t=xn(e).replace(/\s+/g,` `).trim();return t?t.length>bn?`${t.slice(0,79)}…`:t:``}function Cn(e){let t=[];for(let n=0;n<e.length;n+=1){let r=e[n];if(r.role!==`user`||!r.id)continue;let i=Sn(r.content);i&&t.push({id:r.id,index:n,preview:i})}return t}var wn=120,Tn=80,En=96;function Dn(e){return e?.querySelector(`[data-radix-scroll-area-viewport]`)??null}function On(e){return JSON.stringify([e.role,e.content,e.metadata,e.agentContent])}function kn({messages:e,isLoading:t,selectionDraftKey:n,canAskSideConversation:r=!1,onOpenSideConversation:i,navigationRequest:a}){let o=h(),s=(0,X.useMemo)(()=>ft(e),[e]),c=(0,X.useRef)(new Map);(0,X.useEffect)(()=>{if(t)return;let n=new Set(e.flatMap(e=>e.agentContent?.toolCalls.map(e=>e.toolCallId)??[]));for(let e of c.current.keys())n.has(e)||c.current.delete(e)},[e,t]);let l=(0,X.useRef)(null),u=(0,X.useRef)(null),d=(0,X.useRef)(!0),f=(0,X.useRef)(!1),p=(0,X.useRef)(s),m=(0,X.useRef)(s),g=(0,X.useRef)(new Set),_=(0,X.useRef)(s.length),v=(0,X.useRef)(null),y=(0,X.useRef)(null),b=(0,X.useRef)(null),[x,S]=(0,X.useState)(wn),[C,T]=(0,X.useState)(!1),[E,D]=(0,X.useState)(0),O=s.length>0;p.current=s,(0,X.useEffect)(()=>{let e=Dn(l.current);if(!e||f.current&&!d.current)return;let t=window.requestAnimationFrame(()=>{e.scrollTop=e.scrollHeight,f.current=!0,d.current=!0,g.current=new Set,D(0),T(!1)});return()=>window.cancelAnimationFrame(t)},[s]),(0,X.useEffect)(()=>{let e=Dn(l.current);if(!e)return;u.current=e;let t=()=>{if(!f.current)return;let t=e.scrollHeight-e.scrollTop-e.clientHeight<=En,n=d.current;d.current=t,T(!t),t?(g.current=new Set,D(0)):n&&(m.current=p.current,g.current=new Set,D(0))};return t(),e.addEventListener(`scroll`,t,{passive:!0}),()=>e.removeEventListener(`scroll`,t)},[O,t]),(0,X.useEffect)(()=>{let e=m.current;if(m.current=s,d.current){g.current.size>0&&(g.current=new Set,D(0));return}let t=_n(e,s,g.current,On);g.current=t,D(t.size)},[s]),(0,X.useEffect)(()=>{let e=_.current;_.current=s.length,S(t=>t>=e&&s.length>e?s.length:Math.min(Math.max(t,wn),s.length||wn))},[s.length]);let k=Math.max(s.length-x,0),A=k,j=(0,X.useMemo)(()=>s.slice(A),[s,A]),M=(0,X.useMemo)(()=>Cn(s),[s]),N=(0,X.useCallback)(e=>{let t=nt(s,e,x);if(t!==null){if(t>x){y.current=e,S(t);return}it(l.current,e)}},[s,x]);if((0,X.useLayoutEffect)(()=>{let e=v.current;if(!e)return;let t=Dn(l.current);if(v.current=null,t){if(e.element?.isConnected){let n=e.element.getBoundingClientRect().top-e.viewportTop;t.scrollTop+=n;return}t.scrollTop=hn(e.scrollTop,e.scrollHeight,t.scrollHeight)}},[x]),(0,X.useLayoutEffect)(()=>{let e=y.current;e&&(y.current=null,window.requestAnimationFrame(()=>{it(l.current,e)}))},[x]),(0,X.useEffect)(()=>{a&&b.current!==a.requestId&&(b.current=a.requestId,N(a.messageId))},[N,a]),t)return(0,Z.jsx)(`div`,{role:`status`,"aria-live":`polite`,"aria-busy":`true`,className:`flex overflow-hidden flex-1 justify-center items-center px-5 py-8 min-h-0`,children:(0,Z.jsxs)(`div`,{className:`w-full max-w-[560px]`,children:[(0,Z.jsxs)(`div`,{className:`flex flex-col items-center text-center`,children:[(0,Z.jsxs)(`div`,{className:`relative`,children:[(0,Z.jsx)(`div`,{className:`absolute inset-0 animate-pulse rounded-full bg-[hsl(var(--deck-accent-soft))] blur-xl`}),(0,Z.jsx)(we,{size:42,className:`relative`})]}),(0,Z.jsxs)(`div`,{className:`mt-4 inline-flex items-center gap-1.5 font-mono text-[10px] uppercase tracking-[0.16em] text-[hsl(var(--deck-accent))]`,children:[(0,Z.jsx)(xe,{className:`w-3 h-3`}),o(`chat.list.loading.eyebrow`)]}),(0,Z.jsx)(`h2`,{className:`mt-2 text-[15px] font-medium text-[hsl(var(--deck-ink))]`,children:o(`chat.list.loading.title`)}),(0,Z.jsx)(`p`,{className:`mt-1 max-w-sm text-[11.5px] leading-5 text-[hsl(var(--deck-ink-faint))]`,children:o(`chat.list.loading.hint`)})]}),(0,Z.jsx)(`div`,{"aria-hidden":`true`,className:`mt-7 space-y-4 rounded-xl border border-[hsl(var(--deck-hairline))] bg-[hsl(var(--deck-surface))]/45 px-4 py-5`,children:[72,88,64].map((e,t)=>(0,Z.jsxs)(`div`,{className:H(`flex gap-3`,t%2==1&&`flex-row-reverse`),children:[(0,Z.jsx)(`span`,{className:`h-7 w-7 shrink-0 animate-pulse rounded-md bg-[hsl(var(--deck-surface-2))]`}),(0,Z.jsx)(`span`,{className:`h-10 animate-pulse rounded-lg bg-[hsl(var(--deck-surface-2))]`,style:{width:`${e}%`,animationDelay:`${t*120}ms`}})]},e))})]})});if(s.length===0&&!t)return(0,Z.jsx)(`div`,{className:`flex flex-1 justify-center items-center`,children:(0,Z.jsxs)(`div`,{className:`flex flex-col gap-4 items-center text-center`,children:[(0,Z.jsx)(we,{size:44}),(0,Z.jsxs)(`div`,{children:[(0,Z.jsx)(`div`,{className:`deck-eyebrow text-[hsl(var(--deck-accent))]`,children:o(`chat.list.empty.eyebrow`)}),(0,Z.jsx)(`div`,{className:`mt-2 text-[15px] font-medium text-[hsl(var(--deck-ink))]`,children:o(`chat.list.empty.title`)}),(0,Z.jsx)(`div`,{className:`mt-1 max-w-xs text-[12px] text-[hsl(var(--deck-ink-muted))]`,children:o(`chat.list.empty.hint`)})]})]})});let P=()=>{let e=Dn(l.current);e&&(e.scrollTop=e.scrollHeight,d.current=!0,f.current=!0,g.current=new Set,D(0),T(!1))},ee=()=>{let e=Dn(l.current);if(e){let t=l.current?.querySelector(`[data-chat-message-id]`)??null;v.current={element:t,viewportTop:t?.getBoundingClientRect().top??0,scrollHeight:e.scrollHeight,scrollTop:e.scrollTop}}S(e=>gn(e,s.length,Tn))},F=e=>e>=A||(S(s.length),!1),I=E===1?o(`chat.list.unreadMessage`):o(`chat.list.unreadMessages`,{count:E});return(0,Z.jsxs)(`div`,{ref:l,className:`relative flex-1 min-h-0`,children:[(0,Z.jsx)(Ae,{className:`h-full`,children:(0,Z.jsxs)(`div`,{className:`flex flex-col px-4 pb-4 w-full md:px-6`,children:[k>0&&(0,Z.jsx)(`div`,{className:`flex justify-center py-3`,children:(0,Z.jsx)(`button`,{type:`button`,onClick:ee,"aria-label":o(`chat.list.showEarlierWithRemaining`,{count:Math.min(k,Tn),remaining:k}),className:`rounded-md border border-[hsl(var(--deck-border))] bg-[hsl(var(--deck-surface))] px-3 py-1.5 font-mono text-[12px] text-[hsl(var(--deck-ink-muted))] transition-colors hover:border-[hsl(var(--deck-border-strong))] hover:text-[hsl(var(--deck-ink))]`,children:o(`chat.list.showEarlier`,{count:Math.min(k,Tn)})})}),j.map((e,t)=>{let n=A+t,r=n>0?s[n-1]:null,i=!r||r.role!==e.role||r.role===`user`;return(0,Z.jsx)(jt.Provider,{value:c.current,children:(0,Z.jsx)(sn,{message:e,showAvatar:i,onNavigateToMessage:N})},e.id||`msg-${n}`)})]})}),(0,Z.jsx)(yn,{turns:M,viewportRef:u,containerRef:l,onRevealTurn:F}),n&&i&&(0,Z.jsx)(mn,{rootRef:l,draftKey:n,canAskSideConversation:r,onOpenSideConversation:i}),C&&(0,Z.jsxs)(`button`,{type:`button`,onClick:P,"aria-live":`polite`,"aria-label":E>0?I:o(`chat.list.jumpLatest`),className:`absolute bottom-4 left-1/2 z-10 inline-flex -translate-x-1/2 items-center gap-1.5 rounded-full border border-[hsl(var(--deck-border-strong))] bg-[hsl(var(--deck-surface))]/95 px-3 py-1.5 font-mono text-[11px] text-[hsl(var(--deck-ink-muted))] shadow-lg backdrop-blur transition-colors hover:text-[hsl(var(--deck-ink))] focus-visible:outline-none focus-visible:ring-1 focus-visible:ring-[hsl(var(--deck-accent))]`,children:[(0,Z.jsx)(w,{className:`h-3.5 w-3.5 text-[hsl(var(--deck-accent))]`}),E>0?I:o(`chat.list.jumpLatest`)]})]})}var An=(0,X.memo)(kn);function jn({queue:e,mutation:t,onMutate:n,onRefresh:r}){let i=h(),[a,o]=(0,X.useState)(!1),s=(0,X.useRef)(null),c=(0,X.useRef)(null),l=(0,X.useRef)(null);(0,X.useLayoutEffect)(()=>{if(t.pending||!s.current)return;let e=s.current;s.current=null,(Array.from(c.current?.querySelectorAll(`[data-follow-up-focus-id]`)??[]).find(t=>t.dataset.followUpFocusId===e)??c.current?.querySelector(`button`))?.focus()},[t.pending,e?.version]);let u=(0,X.useCallback)(async e=>{s.current=e.messageId,await n(e)},[n]),d=(0,X.useCallback)((e,t)=>{u({type:`move`,messageId:e,toPosition:t})},[u]);return!e||e.pending===0&&!t.errorMessage?null:(0,Z.jsxs)(`section`,{ref:c,"data-blade-follow-up-queue":!0,className:`mx-4 mb-2 overflow-hidden rounded-lg border border-amber-300/70 bg-amber-50/70 shadow-sm dark:border-amber-900/60 dark:bg-amber-950/25 md:mx-6`,"aria-label":i(`chat.followUpQueue.title`),children:[(0,Z.jsxs)(`button`,{type:`button`,"aria-label":i(a?`chat.followUpQueue.hide`:`chat.followUpQueue.show`),"aria-expanded":a,onClick:()=>o(e=>!e),className:`flex min-h-10 w-full items-center gap-2 px-3 text-left font-mono text-[11px] text-amber-950 transition-colors hover:bg-amber-100/70 focus-visible:outline-none focus-visible:ring-2 focus-visible:ring-inset focus-visible:ring-amber-500 dark:text-amber-100 dark:hover:bg-amber-900/35`,children:[(0,Z.jsx)(Ve,{className:`h-3.5 w-3.5 shrink-0`,"aria-hidden":!0}),(0,Z.jsx)(`span`,{className:`font-semibold`,children:i(`chat.followUpQueue.count`,{count:e.pending})}),e.locked>0&&(0,Z.jsx)(`span`,{className:`text-amber-700/80 dark:text-amber-300/75`,children:i(`chat.followUpQueue.lockedCount`,{count:e.locked})}),(0,Z.jsx)(j,{className:`ml-auto h-3.5 w-3.5 transition-transform ${a?`rotate-90`:``}`,"aria-hidden":!0})]}),a&&(0,Z.jsxs)(`div`,{className:`border-t border-amber-300/60 px-2 py-2 dark:border-amber-900/50`,children:[t.errorMessage&&(0,Z.jsxs)(`div`,{role:`alert`,className:`mb-2 flex items-center gap-2 rounded-md border border-red-200 bg-red-50 px-2.5 py-2 text-[11px] text-red-700 dark:border-red-900/60 dark:bg-red-950/35 dark:text-red-300`,children:[(0,Z.jsx)(`span`,{className:`min-w-0 flex-1`,children:t.errorCode===`revision_conflict`?i(`chat.followUpQueue.stale`):t.errorMessage}),r&&(0,Z.jsx)(`button`,{type:`button`,"aria-label":i(`chat.followUpQueue.refresh`),onClick:()=>void r(),className:`rounded p-1 hover:bg-red-100 focus-visible:outline-none focus-visible:ring-1 focus-visible:ring-red-500 dark:hover:bg-red-900/60`,children:(0,Z.jsx)(Ce,{className:`h-3.5 w-3.5`,"aria-hidden":!0})})]}),(0,Z.jsx)(`ol`,{className:`space-y-1.5`,children:e.items.map((n,r)=>{let a=e.items[r-1],o=e.items[r+1],s=n.mutable&&a?.mutable===!0,c=n.mutable&&o?.mutable===!0,f=t.pending;return(0,Z.jsxs)(`li`,{"data-follow-up-id":n.id,"data-follow-up-state":n.state,"data-follow-up-focus-id":n.id,tabIndex:-1,draggable:n.mutable&&!t.pending,onDragStart:()=>{l.current=n.mutable?n.id:null},onDragOver:t=>{let r=l.current;e.items.find(e=>e.id===r)?.mutable&&n.mutable&&t.preventDefault()},onDrop:t=>{t.preventDefault();let r=l.current;l.current=null;let i=e.items.find(e=>e.id===r);if(!i?.mutable||!n.mutable||i.id===n.id)return;let a=Math.min(i.position,n.position),o=Math.max(i.position,n.position);e.items.slice(a,o+1).some(e=>!e.mutable)||d(i.id,n.position)},onDragEnd:()=>{l.current=null},className:`flex min-w-0 items-center gap-2 rounded-md border border-amber-200/70 bg-white/75 px-2.5 py-2 dark:border-amber-900/50 dark:bg-zinc-950/45`,children:[(0,Z.jsx)(`span`,{className:`w-5 shrink-0 text-center font-mono text-[10px] text-amber-700 dark:text-amber-400`,children:r+1}),(0,Z.jsxs)(`div`,{className:`min-w-0 flex-1`,children:[(0,Z.jsx)(`div`,{className:`truncate text-xs text-[hsl(var(--deck-ink))]`,children:n.kind===`internal`?i(`chat.followUpQueue.internal`):n.preview||i(`chat.followUpQueue.attachmentOnly`)}),(0,Z.jsxs)(`div`,{className:`mt-0.5 flex items-center gap-2 font-mono text-[9px] uppercase tracking-[0.08em] text-[hsl(var(--deck-ink-faint))]`,children:[(0,Z.jsx)(`span`,{children:i(`chat.followUpQueue.delivery.${n.delivery}`)}),!n.mutable&&(0,Z.jsxs)(`span`,{className:`inline-flex items-center gap-1`,children:[(0,Z.jsx)(Ue,{className:`h-2.5 w-2.5`,"aria-hidden":!0}),i(`chat.followUpQueue.locked`)]}),n.attachmentCount>0&&(0,Z.jsxs)(`span`,{className:`inline-flex items-center gap-1`,children:[(0,Z.jsx)(_e,{className:`h-2.5 w-2.5`,"aria-hidden":!0}),n.attachmentCount]})]})]}),f&&t.messageId===n.id?(0,Z.jsx)(W,{className:`h-3.5 w-3.5 shrink-0 animate-spin text-amber-600`}):(0,Z.jsxs)(`div`,{className:`flex shrink-0 items-center gap-0.5`,children:[(0,Z.jsx)(`button`,{type:`button`,"aria-label":i(`chat.followUpQueue.moveUp`,{id:n.id}),disabled:f||!s,onClick:()=>d(n.id,r-1),className:`rounded p-1 text-amber-800 transition-colors hover:bg-amber-100 focus-visible:outline-none focus-visible:ring-1 focus-visible:ring-amber-500 disabled:opacity-30 dark:text-amber-300 dark:hover:bg-amber-900/50`,children:(0,Z.jsx)(k,{className:`h-3.5 w-3.5`,"aria-hidden":!0})}),(0,Z.jsx)(`button`,{type:`button`,"aria-label":i(`chat.followUpQueue.moveDown`,{id:n.id}),disabled:f||!c,onClick:()=>d(n.id,r+1),className:`rounded p-1 text-amber-800 transition-colors hover:bg-amber-100 focus-visible:outline-none focus-visible:ring-1 focus-visible:ring-amber-500 disabled:opacity-30 dark:text-amber-300 dark:hover:bg-amber-900/50`,children:(0,Z.jsx)(w,{className:`h-3.5 w-3.5`,"aria-hidden":!0})}),(0,Z.jsx)(`button`,{type:`button`,"aria-label":i(`chat.followUpQueue.remove`,{id:n.id}),disabled:f||!n.mutable,onClick:()=>void u({type:`remove`,messageId:n.id}),className:`rounded p-1 text-red-600 transition-colors hover:bg-red-100 focus-visible:outline-none focus-visible:ring-1 focus-visible:ring-red-500 disabled:opacity-30 dark:text-red-400 dark:hover:bg-red-950/60`,children:(0,Z.jsx)(K,{className:`h-3.5 w-3.5`,"aria-hidden":!0})})]})]},n.id)})})]})]})}var Mn={active:{labelKey:`goal.status.active`,dot:`bg-[hsl(var(--deck-accent))] shadow-[0_0_6px_hsl(var(--deck-accent-glow)/0.5)]`,accent:`text-[hsl(var(--deck-accent))]`},verifying:{labelKey:`goal.status.active`,dot:`animate-pulse bg-sky-400`,accent:`text-sky-600 dark:text-sky-300`},paused:{labelKey:`goal.status.paused`,dot:`bg-amber-400`,accent:`text-amber-600 dark:text-amber-300`},blocked:{labelKey:`goal.status.blocked`,dot:`bg-rose-500`,accent:`text-rose-600 dark:text-rose-300`},usage_limited:{labelKey:`goal.status.usageLimited`,dot:`bg-orange-500`,accent:`text-orange-600 dark:text-orange-300`},budget_limited:{labelKey:`goal.status.budgetLimited`,dot:`bg-orange-500`,accent:`text-orange-600 dark:text-orange-300`},complete:{labelKey:`goal.status.complete`,dot:`bg-emerald-500`,accent:`text-emerald-600 dark:text-emerald-300`}};function Nn(e){return e>=1e6?`${(e/1e6).toFixed(1)}M`:e>=1e3?`${(e/1e3).toFixed(1)}K`:String(e)}function Pn(e){if(e<60)return`${e}s`;let t=Math.floor(e/60),n=e%60;return n===0?`${t}m`:`${t}m ${n}s`}function Fn(){let e=h(),{locale:t}=v(),n=J(e=>e.goal),r=J(e=>e.pauseGoal),i=J(e=>e.resumeGoal),o=J(e=>e.editGoal),s=J(e=>e.clearGoal),c=J(e=>u(e.historySurfaceSelection)),[l,d]=(0,X.useState)(!1),[f,p]=(0,X.useState)(!1),[m,g]=(0,X.useState)(``),[_,y]=(0,X.useState)(null),[b,x]=(0,X.useState)(!1);if((0,X.useEffect)(()=>{d(!1),p(!1),g(n?.objective??``),x(!1)},[n?.goalId]),c||!n)return null;let S=Mn[n.status],C=[`active`,`verifying`,`paused`,`blocked`].includes(n.status),w=n.status===`active`||n.status===`verifying`,T=n.status===`paused`||n.status===`blocked`,E=_!==null,k=async(e,t)=>{if(!a(J.getState())){y(e);try{await t()}finally{y(null)}}},A=()=>{g(n.objective),p(!0),d(!0)},j=async e=>{e.preventDefault();let t=m.trim();if(!t||t===n.objective){p(!1);return}await k(`edit`,()=>o(t)),p(!1)},M=async()=>{await k(`delete`,s),x(!1)};return(0,Z.jsxs)(Z.Fragment,{children:[(0,Z.jsx)(O,{delayDuration:250,children:(0,Z.jsxs)(`section`,{"aria-label":e(`goal.aria.section`),className:`mx-3 mb-1 shrink-0`,"data-blade-goal-status":n.status,"data-blade-goal-recovery":n.prematureStop?.consecutiveCount,"data-blade-goal-recovery-pattern":n.prematureStop?.pattern,"data-blade-goal-verification-stall":n.verificationStall?.consecutiveCount,"data-blade-goal-frontier-task-list":n.executionFrontier?.taskListId,"data-blade-goal-frontier-total":n.executionFrontier?.total,"data-blade-goal-frontier-completed":n.executionFrontier?.completed,"data-blade-goal-frontier-in-progress":n.executionFrontier?.inProgress,"data-blade-goal-frontier-pending":n.executionFrontier?.pending,"data-blade-goal-frontier-blocked":n.executionFrontier?.blocked,"data-blade-goal-frontier-next-task":n.executionFrontier?.nextTask?.id,"data-blade-goal-frontier-digest":n.executionFrontier?.digestSha256.slice(0,16),"data-blade-goal-frontier-stall":n.frontierStall?.category,"data-blade-goal-frontier-stall-count":n.frontierStall?.consecutiveCount,"data-blade-goal-execution-host-failure":n.executionHostFailure?.category,"data-blade-goal-execution-host-failure-count":n.executionHostFailure?.consecutiveCount,"data-blade-goal-root-turn":n.turnLineage?.rootTurnId,"data-blade-goal-current-turn":n.turnLineage?.currentTurnId,"data-blade-goal-parent-turn":n.turnLineage?.parentTurnId,children:[(0,Z.jsxs)(`div`,{className:H(`flex h-9 items-center gap-2 rounded-lg border px-3 transition-colors`,`border-[hsl(var(--deck-border))]/60 bg-[hsl(var(--deck-surface))]/80 backdrop-blur-sm`,l&&`rounded-b-none border-b-0`),children:[n.status===`complete`?(0,Z.jsx)(ge,{className:`h-3.5 w-3.5 shrink-0 text-emerald-500`}):(0,Z.jsx)(qe,{className:H(`h-3.5 w-3.5 shrink-0`,S.accent)}),(0,Z.jsx)(`span`,{className:H(`h-1.5 w-1.5 shrink-0 rounded-full`,S.dot)}),(0,Z.jsx)(`span`,{className:H(`shrink-0 text-[10px] font-medium leading-none`,S.accent),children:n.status===`verifying`?t===`zh`?`验证中`:`Verifying`:e(S.labelKey)}),(0,Z.jsx)(`span`,{className:`h-3 w-px shrink-0 bg-[hsl(var(--deck-hairline))]`}),(0,Z.jsx)(`button`,{type:`button`,"aria-label":e(l?`goal.action.collapse`:`goal.action.expand`),className:`min-w-0 flex-1 truncate text-left text-[12px] leading-5 text-[hsl(var(--deck-ink))]/85 outline-none transition-colors hover:text-[hsl(var(--deck-ink))]`,onClick:()=>d(e=>!e),"aria-expanded":l,title:n.objective,children:n.objective}),n.tokensUsed>0&&(0,Z.jsxs)(`span`,{className:`hidden shrink-0 text-[10px] tabular-nums text-[hsl(var(--deck-ink-muted))] sm:inline`,children:[Nn(n.tokensUsed),n.tokenBudget!==void 0&&`/${Nn(n.tokenBudget)}`]}),(0,Z.jsxs)(`div`,{className:`flex shrink-0 items-center`,children:[w&&(0,Z.jsx)(In,{label:e(`goal.action.pause`),disabled:E,onClick:()=>void k(`pause`,r),children:_===`pause`?(0,Z.jsx)(W,{className:`animate-spin`}):(0,Z.jsx)(P,{})}),T&&(0,Z.jsx)(In,{label:e(`goal.action.resume`),disabled:E,onClick:()=>void k(`resume`,i),children:_===`resume`?(0,Z.jsx)(W,{className:`animate-spin`}):(0,Z.jsx)(F,{})}),(0,Z.jsx)(In,{label:e(C?`goal.action.edit`:`goal.action.expand`),disabled:!C&&!l,onClick:C?A:()=>d(e=>!e),children:C?(0,Z.jsx)(ee,{}):(0,Z.jsx)(D,{})}),(0,Z.jsx)(In,{label:e(`goal.action.delete`),disabled:E,destructive:!0,onClick:()=>x(!0),children:(0,Z.jsx)(K,{})})]})]}),l&&(0,Z.jsx)(`div`,{className:`rounded-b-lg border border-t-0 border-[hsl(var(--deck-border))]/60 bg-[hsl(var(--deck-surface))]/80 px-4 py-3 backdrop-blur-sm`,children:f?(0,Z.jsxs)(`form`,{onSubmit:j,children:[(0,Z.jsx)(`textarea`,{id:`goal-objective`,value:m,onChange:e=>g(e.target.value),onKeyDown:e=>{e.key===`Escape`&&p(!1)},rows:3,autoFocus:!0,className:`w-full resize-none rounded-md border border-[hsl(var(--deck-border))] bg-[hsl(var(--deck-canvas))] px-3 py-2 text-[12px] leading-5 text-[hsl(var(--deck-ink))] outline-none transition-shadow focus:border-[hsl(var(--deck-accent))] focus:ring-1 focus:ring-[hsl(var(--deck-accent-glow))]`}),(0,Z.jsxs)(`div`,{className:`mt-2 flex items-center justify-end gap-2`,children:[(0,Z.jsxs)(`button`,{type:`button`,onClick:()=>p(!1),className:`inline-flex h-7 items-center gap-1 rounded-md px-2.5 text-[11px] text-[hsl(var(--deck-ink-muted))] transition-colors hover:bg-[hsl(var(--deck-hairline))]/60`,children:[(0,Z.jsx)(U,{className:`h-3 w-3`}),e(`goal.action.cancel`)]}),(0,Z.jsxs)(`button`,{type:`submit`,disabled:!m.trim()||_===`edit`,className:`inline-flex h-7 items-center gap-1 rounded-md bg-[hsl(var(--deck-accent))] px-2.5 text-[11px] font-medium text-white transition-colors hover:bg-[hsl(var(--deck-accent))]/90 disabled:cursor-not-allowed disabled:opacity-50`,children:[_===`edit`?(0,Z.jsx)(W,{className:`h-3 w-3 animate-spin`}):(0,Z.jsx)(Oe,{className:`h-3 w-3`}),e(`goal.action.save`)]})]})]}):(0,Z.jsxs)(Z.Fragment,{children:[(0,Z.jsx)(`p`,{className:`whitespace-pre-wrap text-[12px] leading-5 text-[hsl(var(--deck-ink))]/90`,children:n.objective}),(0,Z.jsxs)(`div`,{className:`mt-2 flex flex-wrap items-center gap-x-4 gap-y-1.5 text-[10px] text-[hsl(var(--deck-ink-muted))]`,children:[(0,Z.jsxs)(`span`,{className:`inline-flex items-center gap-1`,children:[(0,Z.jsx)(ze,{className:`h-3 w-3`}),Nn(n.tokensUsed),n.tokenBudget!==void 0&&` / ${Nn(n.tokenBudget)}`,` `,e(`goal.metrics.tokens`)]}),(0,Z.jsxs)(`span`,{className:`inline-flex items-center gap-1`,children:[(0,Z.jsx)(Ye,{className:`h-3 w-3`}),Pn(n.timeUsedSeconds)]}),(0,Z.jsxs)(`span`,{className:`inline-flex items-center gap-1`,children:[(0,Z.jsx)(Ee,{className:`h-3 w-3`}),n.continuationCount===1?e(`goal.metrics.continuationOne`,{n:n.continuationCount}):e(`goal.metrics.continuationMany`,{n:n.continuationCount})]})]}),n.turnLineage&&(0,Z.jsxs)(`div`,{className:`mt-2 grid grid-cols-[auto_1fr] gap-x-3 gap-y-1 rounded-md border border-[hsl(var(--deck-border))]/50 bg-[hsl(var(--deck-canvas))]/45 px-2.5 py-2 font-mono text-[10px] text-[hsl(var(--deck-ink-muted))]`,children:[(0,Z.jsx)(`span`,{children:e(`goal.lineage.origin`)}),(0,Z.jsx)(`span`,{className:`truncate`,children:n.turnLineage.rootTurnId??`?`}),(0,Z.jsx)(`span`,{children:e(`goal.lineage.current`)}),(0,Z.jsx)(`span`,{className:`truncate`,children:n.turnLineage.currentTurnId}),(0,Z.jsx)(`span`,{children:e(`goal.lineage.parent`)}),(0,Z.jsx)(`span`,{className:`truncate`,children:n.turnLineage.parentTurnId??`?`})]}),n.prematureStop&&(0,Z.jsxs)(`div`,{className:`mt-2 inline-flex items-center gap-1.5 font-mono text-[10px] text-amber-700 dark:text-amber-300`,children:[(0,Z.jsx)(Ee,{className:`h-3 w-3`}),t===`zh`?`恢复提示`:`Recovery nudge`,` `,n.prematureStop.consecutiveCount,` ·`,` `,n.prematureStop.pattern.replaceAll(`_`,` `)]}),n.executionHostFailure&&(0,Z.jsxs)(`div`,{className:`mt-2 rounded-md border border-amber-200/50 bg-amber-50/60 px-2.5 py-2 text-[11px] text-amber-900 dark:border-amber-400/15 dark:bg-amber-400/[0.05] dark:text-amber-100`,children:[(0,Z.jsx)(`p`,{className:`font-medium`,children:e(`goal.executionHostFailure.title`)}),(0,Z.jsxs)(`p`,{className:`mt-1 font-mono opacity-80`,children:[e(`goal.executionHostFailure.category.${n.executionHostFailure.category}`),` `,`· `,n.executionHostFailure.consecutiveCount,`/3`]})]}),n.completionVerification&&(0,Z.jsxs)(`div`,{"data-goal-verification":n.completionVerification.status,className:`mt-2 rounded-md border border-sky-200/50 bg-sky-50/60 px-2.5 py-2 text-[11px] text-sky-900 dark:border-sky-400/15 dark:bg-sky-400/[0.05] dark:text-sky-100`,children:[(0,Z.jsxs)(`p`,{className:`font-mono font-medium`,children:[`#`,n.completionVerification.attempt,` ·`,` `,n.completionVerification.status.toUpperCase(),` ·`,` `,n.completionVerification.verifierSessionId?.slice(0,12)??`-`,n.verificationStall?t===`zh`?` · 重复 ${n.verificationStall.consecutiveCount}/3`:` · repeat ${n.verificationStall.consecutiveCount}/3`:``]}),n.completionVerification.summary&&(0,Z.jsx)(`p`,{className:`mt-1 line-clamp-3 whitespace-pre-wrap opacity-80`,children:n.completionVerification.summary}),n.completionVerification.evidenceSha256&&(0,Z.jsxs)(`p`,{className:`mt-1 font-mono text-[10px] opacity-60`,children:[`sha256:`,n.completionVerification.evidenceSha256.slice(0,12)]})]}),n.statusReason&&(0,Z.jsx)(`div`,{className:`mt-2 rounded-md border border-amber-200/50 bg-amber-50/60 px-2.5 py-1.5 text-[11px] text-amber-800 dark:border-amber-400/15 dark:bg-amber-400/[0.05] dark:text-amber-200`,children:n.statusReason})]})})]})}),(0,Z.jsx)(L,{open:b,onOpenChange:x,children:(0,Z.jsxs)(R,{className:`max-w-[400px] border-[hsl(var(--deck-border))] bg-[hsl(var(--deck-surface))]`,children:[(0,Z.jsx)(le,{children:e(`goal.dialog.title`)}),(0,Z.jsx)(ce,{children:e(`goal.dialog.description`)}),(0,Z.jsxs)(ke,{className:`mt-2`,children:[(0,Z.jsx)(`button`,{type:`button`,onClick:()=>x(!1),className:`inline-flex h-8 items-center justify-center rounded-md border border-[hsl(var(--deck-border))] px-3 text-[12px] text-[hsl(var(--deck-ink))] hover:bg-[hsl(var(--deck-hairline))]/60`,children:e(`goal.action.cancel`)}),(0,Z.jsxs)(`button`,{type:`button`,disabled:_===`delete`,onClick:()=>void M(),className:`inline-flex gap-1.5 justify-center items-center px-3 h-8 text-[12px] font-medium text-white bg-rose-600 rounded-md hover:bg-rose-500 disabled:opacity-50`,children:[_===`delete`&&(0,Z.jsx)(W,{className:`w-3.5 h-3.5 animate-spin`}),e(`goal.action.delete`)]})]})]})})]})}function In({label:e,children:t,disabled:n,destructive:r,onClick:i}){return(0,Z.jsxs)(A,{children:[(0,Z.jsx)(T,{asChild:!0,children:(0,Z.jsx)(`button`,{type:`button`,"aria-label":e,disabled:n,onClick:i,className:H(`flex h-6 w-6 items-center justify-center rounded-md text-[hsl(var(--deck-ink-muted))] outline-none transition-colors focus-visible:ring-1 focus-visible:ring-[hsl(var(--deck-accent-glow))]/50 disabled:cursor-not-allowed disabled:opacity-35 [&_svg]:h-3.5 [&_svg]:w-3.5`,r?`hover:bg-rose-500/10 hover:text-rose-500`:`hover:bg-[hsl(var(--deck-hairline))]/60 hover:text-[hsl(var(--deck-ink))]`),children:t})}),(0,Z.jsx)(E,{side:`top`,className:`text-[10px]`,children:e})]})}function Ln(){let e=h(),t=J(e=>e.currentSessionRef),n=J(e=>e.sessions),r=J(e=>e.messages),i=J(e=>u(e.historySurfaceSelection)),a=(0,X.useMemo)(()=>{let e=t?re(n,t)?.pendingInteraction:void 0;if(e)return e.type;for(let e=r.length-1;e>=0;--e){let t=r[e]?.agentContent;if(t?.confirmation?.status===`pending`)return`permission`;if(t?.question?.status===`pending`)return`question`;if(t?.elicitation?.status===`pending`)return`elicitation`}return null},[t,r,n]);if(i||!a)return null;let o=()=>{let e=document.querySelector(`[data-pending-interaction="${a}"]`);e?.scrollIntoView({block:`center`,behavior:`smooth`}),window.setTimeout(()=>e?.focus(),250)},s=a===`question`,c=a===`elicitation`;return(0,Z.jsxs)(`div`,{role:`alert`,className:`mx-3 mb-2 flex flex-wrap items-center gap-2 rounded-lg border border-amber-300/80 bg-amber-50/95 px-3 py-2 font-mono text-amber-950 shadow-sm backdrop-blur dark:border-amber-800/80 dark:bg-amber-950/90 dark:text-amber-100 sm:mx-5`,children:[(0,Z.jsx)(fe,{className:`h-4 w-4 shrink-0 text-amber-600 dark:text-amber-400`}),(0,Z.jsxs)(`div`,{className:`min-w-[180px] flex-1`,children:[(0,Z.jsx)(`div`,{className:`text-[11.5px] font-semibold`,children:e(s?`interaction.bar.questionTitle`:c?`interaction.bar.elicitationTitle`:`interaction.bar.permissionTitle`)}),(0,Z.jsx)(`div`,{className:`mt-0.5 text-[10px] leading-4 text-amber-800 dark:text-amber-300`,children:e(s?`interaction.bar.questionHint`:c?`interaction.bar.elicitationHint`:`interaction.bar.permissionHint`)})]}),(0,Z.jsxs)(`button`,{type:`button`,onClick:o,className:`inline-flex min-h-8 shrink-0 items-center gap-1.5 rounded-md border border-amber-400/80 bg-white/80 px-2.5 text-[10.5px] font-medium transition-colors hover:bg-white focus-visible:outline-none focus-visible:ring-2 focus-visible:ring-amber-500 dark:border-amber-700 dark:bg-amber-950/70 dark:hover:bg-amber-900`,children:[(0,Z.jsx)(w,{className:`h-3 w-3`}),e(`interaction.bar.review`)]})]})}function Rn(e){return Math.max(0,Math.ceil((e??0)/1e3))}function zn(e,t=Date.now()){let n=e.snapshot?.nextActionAt;return n===void 0?void 0:Rn(n-t)}function Bn(e,t=Date.now()){let n=e?.snapshot;if(!n)return null;let r=zn(e,t)??0,i=n.retry,a=n.admission,o=n.stall,s=n.fallback,c={seconds:r,attempt:i?.attempt??0,maxRetries:i?.maxRetries??0,budgetSeconds:Rn(i?.recoveryRemainingMs),position:a?.queuePosition??0,depth:a?Math.max(a.queueDepth,a.queuePosition):0,scope:a?.scope??``,waitSeconds:Rn(a?.waitMs),stallSeconds:Rn(o?.durationMs),timeoutSeconds:Rn(o?.timeoutMs),from:s?.from.model??``,to:s?.to.model??``,candidate:s?.candidate??0,candidateCount:s?.candidateCount??0};switch(n.activity){case`admission_wait`:return{titleKey:`chat.providerRecovery.admission`,detailKey:`chat.providerRecovery.admissionDetail`,compactKey:`chat.providerRecovery.admissionCompact`,params:c};case`retry_wait`:return{titleKey:n.reason===`rate_limit`?`chat.providerRecovery.rateLimit`:`chat.providerRecovery.retryWait`,detailKey:`chat.providerRecovery.retryDetail`,compactKey:`chat.providerRecovery.retryCompact`,params:c};case`retry_attempt`:return{titleKey:`chat.providerRecovery.retryAttempt`,detailKey:`chat.providerRecovery.retryDetail`,compactKey:`chat.providerRecovery.retryCompact`,params:c};case`circuit_open`:return{titleKey:n.reason===`rate_limit`?`chat.providerRecovery.rateLimitCircuit`:`chat.providerRecovery.circuit`,detailKey:`chat.providerRecovery.circuitDetail`,compactKey:n.reason===`rate_limit`?`chat.providerRecovery.rateLimitCircuitCompact`:`chat.providerRecovery.circuitCompact`,params:c};case`circuit_probe`:return{titleKey:`chat.providerRecovery.probe`,detailKey:`chat.providerRecovery.probeDetail`,compactKey:`chat.providerRecovery.probeCompact`,params:c};case`stream_stall`:return{titleKey:o?.outputStarted?`chat.providerRecovery.stallAfterOutput`:`chat.providerRecovery.stall`,detailKey:`chat.providerRecovery.stallDetail`,compactKey:`chat.providerRecovery.stallCompact`,params:c};case`fallback`:return{titleKey:`chat.providerRecovery.fallback`,detailKey:`chat.providerRecovery.fallbackDetail`,compactKey:`chat.providerRecovery.fallbackCompact`,params:c}}}function Vn({recovery:e,stopping:t,onStop:n}){let r=h(),[i,a]=(0,X.useState)(Date.now()),o=e?.snapshot?.nextActionAt;(0,X.useEffect)(()=>{if(o===void 0)return;a(Date.now());let e=window.setInterval(()=>a(Date.now()),1e3);return()=>window.clearInterval(e)},[o]);let s=Bn(e,i);return s?(0,Z.jsxs)(`section`,{role:`status`,"aria-live":`polite`,"data-provider-recovery-banner":!0,className:`mx-4 mb-2 flex min-h-12 items-center gap-3 rounded-lg border border-amber-300/70 bg-amber-50/80 px-3 py-2 text-amber-950 shadow-sm dark:border-amber-800/60 dark:bg-amber-950/35 dark:text-amber-100 md:mx-6`,children:[(0,Z.jsx)(W,{className:`h-4 w-4 shrink-0 animate-spin`,"aria-hidden":!0}),(0,Z.jsxs)(`div`,{className:`min-w-0 flex-1`,children:[(0,Z.jsx)(`div`,{className:`text-xs font-semibold`,children:r(s.titleKey,s.params)}),(0,Z.jsx)(`div`,{className:`mt-0.5 truncate font-mono text-[10px] opacity-80`,children:r(s.detailKey,s.params)})]}),(0,Z.jsxs)(`button`,{type:`button`,"data-provider-recovery-stop":!0,onClick:n,disabled:t,className:`inline-flex min-h-8 shrink-0 items-center gap-1.5 rounded-md border border-amber-400/70 bg-white/70 px-2.5 text-xs font-medium transition-colors hover:bg-white focus-visible:outline-none focus-visible:ring-2 focus-visible:ring-amber-500 disabled:cursor-wait disabled:opacity-60 dark:border-amber-700 dark:bg-amber-950/50 dark:hover:bg-amber-900/50`,children:[t?(0,Z.jsx)(W,{className:`h-3.5 w-3.5 animate-spin`,"aria-hidden":!0}):(0,Z.jsx)(ae,{className:`h-3 w-3 fill-current`,"aria-hidden":!0}),r(t?`chat.input.action.stopping`:`chat.providerRecovery.stop`)]})]}):null}var Hn=(0,X.lazy)(()=>y(()=>import(`./MarkdownRenderer-fJny7W8J.js`).then(e=>({default:e.MarkdownRenderer})),__vite__mapDeps([0,1,2,3,4,5,6,7,8])));function Un(e){return e<1e3?`${e}ms`:`${(e/1e3).toFixed(1)}s`}function Wn(e,t){return e?[{id:`legacy-user`,role:`user`,content:e},...t?[{id:`legacy-assistant`,role:`assistant`,content:t}]:[]]:[]}function Gn(e){return e?JSON.stringify([e.sessionRef.projectPath,e.sessionRef.sessionId,e.requestId]):null}function Kn(){let e=h(),t=J(e=>e.sideConversation),n=J(e=>e.askSideConversation),r=J(e=>e.openSideConversation),i=J(e=>e.dismissSideConversation),a=Gn(t),[o,s]=(0,X.useState)({owner:a,text:``}),c=o.owner===a?o.text:``;o.owner!==a&&s({owner:a,text:``});let l=e=>s({owner:a,text:e}),u=(0,X.useRef)(null),d=(0,X.useRef)(!1),f=(0,X.useRef)(null),p=(0,X.useMemo)(()=>t?.messages??Wn(t?.question??``,t?.response),[t?.messages,t?.question,t?.response]);if((0,X.useEffect)(()=>{if(d.current=!1,!t||t.status===`loading`)return;let e=document.activeElement;if(t.status!==`idle`&&e instanceof HTMLElement&&e!==u.current&&e.matches(`input, textarea, select, [contenteditable="true"]`))return;let n=requestAnimationFrame(()=>{document.activeElement===e&&u.current?.focus()});return()=>cancelAnimationFrame(n)},[t?.sessionRef,t?.selectedText,t?.status]),(0,X.useEffect)(()=>{f.current?.scrollIntoView?.({block:`nearest`})},[p.length,t?.status]),!t)return null;let m=()=>{let e=c.trim();if(!e||t.status===`loading`)return;l(``);let r=n(e),i=Gn(J.getState().sideConversation);r.then(t=>{!t&&i!==null&&Gn(J.getState().sideConversation)===i&&s({owner:i,text:e})})};return(0,Z.jsxs)(`aside`,{"aria-label":e(`chat.side.title`),"data-blade-side-conversation":!0,"data-status":t.status,className:`absolute inset-0 z-30 flex min-h-0 flex-col bg-[hsl(var(--deck-canvas))] md:relative md:inset-auto md:w-[min(420px,42vw)] md:shrink-0 md:border-l md:border-[hsl(var(--deck-hairline))]`,children:[(0,Z.jsxs)(`header`,{className:`flex h-12 shrink-0 items-center gap-2 border-b border-[hsl(var(--deck-hairline))] px-3`,children:[(0,Z.jsx)(Ge,{"aria-hidden":!0,className:`h-4 w-4 shrink-0 text-[hsl(var(--deck-accent))]`}),(0,Z.jsx)(`h2`,{className:`min-w-0 flex-1 truncate text-[13px] font-medium text-[hsl(var(--deck-ink))]`,children:e(`chat.side.title`)}),t.durationMs!==void 0&&(0,Z.jsxs)(`span`,{className:`inline-flex items-center gap-1 font-mono text-[9.5px] text-[hsl(var(--deck-ink-faint))]`,children:[(0,Z.jsx)(M,{"aria-hidden":!0,className:`h-3 w-3`}),Un(t.durationMs)]}),(0,Z.jsx)(`button`,{type:`button`,onClick:()=>{l(``),r()},"aria-label":e(`chat.side.new`),title:e(`chat.side.new`),className:`flex h-8 w-8 shrink-0 items-center justify-center rounded-md text-[hsl(var(--deck-ink-faint))] transition-colors hover:bg-[hsl(var(--deck-surface-2))] hover:text-[hsl(var(--deck-ink))] focus-visible:outline-none focus-visible:ring-1 focus-visible:ring-[hsl(var(--deck-accent))]`,children:(0,Z.jsx)(I,{"aria-hidden":!0,className:`h-4 w-4`})}),(0,Z.jsx)(`button`,{type:`button`,onClick:i,"aria-label":e(`chat.side.dismiss`),title:e(`chat.side.dismiss`),className:`flex h-8 w-8 shrink-0 items-center justify-center rounded-md text-[hsl(var(--deck-ink-faint))] transition-colors hover:bg-[hsl(var(--deck-surface-2))] hover:text-[hsl(var(--deck-ink))] focus-visible:outline-none focus-visible:ring-1 focus-visible:ring-[hsl(var(--deck-accent))]`,children:(0,Z.jsx)(U,{"aria-hidden":!0,className:`h-4 w-4`})})]}),(0,Z.jsxs)(`div`,{"aria-live":`polite`,"aria-busy":t.status===`loading`,className:`min-h-0 flex-1 space-y-4 overflow-y-auto px-4 py-4`,children:[t.selectedText&&(0,Z.jsxs)(`details`,{className:`group`,children:[(0,Z.jsxs)(`summary`,{className:`inline-flex min-h-8 cursor-pointer list-none items-center gap-1.5 rounded-md border border-[hsl(var(--deck-border-strong))] bg-[hsl(var(--deck-surface))] px-2.5 font-mono text-[10.5px] text-[hsl(var(--deck-ink-muted))] focus-visible:outline-none focus-visible:ring-1 focus-visible:ring-[hsl(var(--deck-accent))]`,children:[(0,Z.jsx)(Ge,{"aria-hidden":!0,className:`h-3.5 w-3.5`}),e(`chat.side.selectedText`)]}),(0,Z.jsx)(`blockquote`,{className:`mt-2 whitespace-pre-wrap border-l-2 border-[hsl(var(--deck-accent)/0.45)] pl-3 font-mono text-[11px] leading-5 text-[hsl(var(--deck-ink-muted))]`,children:t.selectedText})]}),p.map(e=>e.role===`user`?(0,Z.jsx)(`div`,{className:`flex justify-end`,children:(0,Z.jsx)(`div`,{className:`max-w-[88%] rounded-lg bg-[hsl(var(--deck-surface-2))] px-3 py-2 text-[12px] leading-5 text-[hsl(var(--deck-ink))]`,children:e.content})},e.id):(0,Z.jsx)(`div`,{className:`min-w-0`,children:(0,Z.jsx)(X.Suspense,{fallback:(0,Z.jsx)(`div`,{className:`whitespace-pre-wrap break-words text-[12px] leading-5 text-[hsl(var(--deck-ink))]`,children:e.content}),children:(0,Z.jsx)(Hn,{content:e.content,className:`text-[12px] leading-5 [&_h1]:text-[14px] [&_h2]:text-[13px] [&_h3]:text-[12px]`})})},e.id)),t.status===`loading`&&(0,Z.jsxs)(`div`,{role:`status`,className:`flex min-h-9 items-center gap-2 text-[11px] text-[hsl(var(--deck-ink-muted))]`,children:[(0,Z.jsx)(W,{"aria-hidden":!0,className:`h-3.5 w-3.5 animate-spin text-[hsl(var(--deck-accent))]`}),e(`chat.side.loading`)]}),t.status===`error`&&(0,Z.jsxs)(`div`,{role:`alert`,className:`flex min-h-9 items-start gap-2 text-[11px] leading-5 text-red-700 dark:text-red-300`,children:[(0,Z.jsx)(fe,{"aria-hidden":!0,className:`mt-0.5 h-3.5 w-3.5 shrink-0`}),(0,Z.jsx)(`span`,{className:`break-words`,children:t.error??e(`chat.side.failed`)})]}),(0,Z.jsx)(`div`,{ref:f})]}),(0,Z.jsx)(`div`,{className:`shrink-0 border-t border-[hsl(var(--deck-hairline))] p-3`,children:(0,Z.jsxs)(`div`,{className:`rounded-lg border border-[hsl(var(--deck-border))] bg-[hsl(var(--deck-surface))] focus-within:border-[hsl(var(--deck-border-strong))] focus-within:ring-1 focus-within:ring-[hsl(var(--deck-border-strong))]`,children:[(0,Z.jsx)(`textarea`,{ref:u,name:`side-conversation-composer`,value:c,onChange:e=>l(e.target.value),onCompositionStart:()=>{d.current=!0},onCompositionEnd:()=>{d.current=!1},onBlur:()=>{d.current=!1},onKeyDown:e=>{if(!(d.current||e.nativeEvent.isComposing||e.keyCode===229)){if((e.metaKey||e.ctrlKey)&&e.key.toLocaleLowerCase()===`a`){e.preventDefault(),e.stopPropagation(),e.currentTarget.select();return}if(e.key===`Escape`){e.preventDefault(),i();return}e.key===`Enter`&&!e.shiftKey&&(e.preventDefault(),m())}},rows:3,disabled:t.status===`loading`,"aria-label":e(`chat.side.input`),placeholder:e(`chat.side.placeholder`),className:`block max-h-40 min-h-[88px] w-full resize-none bg-transparent px-3 py-2.5 text-[13px] leading-5 text-[hsl(var(--deck-ink))] placeholder:text-[hsl(var(--deck-ink-faint))] focus:outline-none disabled:cursor-wait disabled:opacity-60`}),(0,Z.jsx)(`div`,{className:`flex items-center justify-end px-2 pb-2`,children:(0,Z.jsx)(`button`,{type:`button`,onClick:m,disabled:!c.trim()||t.status===`loading`,"aria-label":e(`chat.side.send`),title:e(`chat.side.send`),className:`flex h-8 w-8 items-center justify-center rounded-md bg-[hsl(var(--deck-ink))] text-[hsl(var(--deck-canvas))] transition-opacity hover:opacity-90 focus-visible:outline-none focus-visible:ring-2 focus-visible:ring-[hsl(var(--deck-accent))] focus-visible:ring-offset-2 disabled:cursor-not-allowed disabled:opacity-35`,children:(0,Z.jsx)(B,{"aria-hidden":!0,className:`h-3.5 w-3.5`})})})]})})]})}function qn(e){return Number.isFinite(e)?Math.max(0,e):0}function Jn(e){let t=qn(e.totalInputTokens),n=qn(e.cacheReadTokens),r=qn(e.cacheWriteTokens),i=Math.min(n,t),a=Math.min(r,Math.max(0,t-i));return{totalInputTokens:t,cacheReadTokens:i,cacheWriteTokens:a,uncachedInputTokens:Math.max(0,t-i-a),...t>0&&(n>0||r>0)?{hitRate:i/t}:{}}}function Yn(e){return e===void 0||!Number.isFinite(e)?`—`:`${Math.round(Math.max(0,Math.min(1,e))*100)}%`}var Xn={running:`status.phase.running`,compacting:`status.phase.compacting`,recovering_context:`status.phase.recoveringContext`,switching_model:`status.phase.switchingModel`,waiting_permission:`status.phase.waitingPermission`,error:`status.phase.error`,idle:``},Zn={model_changed:`status.cacheBreak.model`,system_prompt_changed:`status.cacheBreak.system`,tools_changed:`status.cacheBreak.tools`,request_policy_changed:`status.cacheBreak.policy`,ttl_expired:`status.cacheBreak.ttl`,server_side:`status.cacheBreak.server`},$=e=>e>=1e6?`${(e/1e6).toFixed(1)}M`:e>=1e3?`${(e/1e3).toFixed(1)}K`:e.toString(),Qn=e=>{let t=Math.max(0,Math.ceil(e/1e3)),n=Math.floor(t/60),r=t%60;return n>0?`${n}m ${r}s`:`${r}s`};function $n(){let e=h(),t=J(e=>e.tokenUsage),n=J(e=>e.isStreaming),r=J(e=>e.agentPhase),i=J(e=>e.providerRecovery),a=J(e=>e.turnActivity),o=J(e=>e.pendingResume),s=J(e=>e.actionStationarity),c=J(e=>e.turnRecovery),l=Xn[r]??``,u=Bn(i),d=o?.delayMs===void 0?``:` · retry in ${Qn(o.delayMs)}`,f=c?.state===`requires_attention`?e(`status.recovery.review`):``,p=c?.state===`requires_attention`?e(c.reason===`interrupted_tool_call`?`status.recovery.interruptedTool`:`status.recovery.successfulTool`):``,m=f||(s?`${e(s.phase===`halted`?`status.phase.actionStationarityStopped`:`status.phase.actionStationarityRecovering`)} · ${s.toolName} · ${s.runLength}/${s.haltThreshold}`:u?e(u.compactKey,u.params):o?`Recovery attempt ${o.attempt}/${o.maxAttempts}${d}`:l?e(l):``),g=t.maxContextTokens>0?Math.round(t.totalTokens/t.maxContextTokens*100):0,_=Jn(t),v=Yn(_.hitRate),y=Math.min(g,100),b=g>95?`danger`:g>80?`warn`:`safe`;return(0,Z.jsxs)(`div`,{"data-chat-status-bar":!0,className:`flex items-center gap-2 border-t border-[hsl(var(--deck-hairline))] bg-[hsl(var(--deck-canvas-veil))]/70 px-3 py-2 font-mono text-[11px] text-[hsl(var(--deck-ink-muted))] backdrop-blur-sm sm:gap-4 sm:px-5`,children:[(0,Z.jsxs)(`div`,{className:`flex items-center gap-2 sm:gap-3`,children:[(0,Z.jsx)(`span`,{className:`deck-eyebrow text-[hsl(var(--deck-ink-faint))]`,children:e(`status.context`)}),(0,Z.jsxs)(`span`,{className:`flex gap-1 items-baseline tabular-nums`,children:[(0,Z.jsx)(`span`,{className:H(`text-[12px] font-medium`,b===`safe`&&`text-[hsl(var(--deck-ink))]`,b===`warn`&&`text-amber-600 dark:text-amber-400`,b===`danger`&&`text-red-600 dark:text-red-400`),children:$(t.totalTokens)}),(0,Z.jsxs)(`span`,{className:`text-[hsl(var(--deck-ink-faint))]`,children:[`/ `,$(t.maxContextTokens)]})]}),t.isDefaultMaxTokens&&(0,Z.jsx)(O,{children:(0,Z.jsxs)(A,{children:[(0,Z.jsx)(T,{asChild:!0,children:(0,Z.jsx)(Ne,{className:`h-3 w-3 cursor-help text-[hsl(var(--deck-ink-faint))]`})}),(0,Z.jsx)(E,{side:`top`,className:`max-w-[220px]`,children:(0,Z.jsx)(`p`,{className:`text-xs`,children:e(`status.tokenLimitTooltip`)})})]})}),(0,Z.jsxs)(`div`,{className:`relative hidden h-2 w-32 overflow-hidden rounded-sm border border-[hsl(var(--deck-border))] bg-[hsl(var(--deck-surface))] sm:block`,"aria-hidden":`true`,children:[(0,Z.jsx)(`div`,{className:H(`absolute inset-y-0 left-0 transition-[width] duration-300`,b===`safe`&&`bg-[hsl(var(--deck-accent))]`,b===`warn`&&`bg-amber-500`,b===`danger`&&`bg-red-500`),style:{width:`${y}%`}}),(0,Z.jsx)(`div`,{className:`flex absolute inset-0 pointer-events-none`,children:[25,50,75].map(e=>(0,Z.jsx)(`span`,{className:`absolute inset-y-0 w-px bg-[hsl(var(--deck-canvas-veil))]/60`,style:{left:`${e}%`}},e))})]}),(0,Z.jsxs)(`span`,{className:H(`w-10 text-right tabular-nums text-[hsl(var(--deck-ink-faint))]`,b===`warn`&&`text-amber-600 dark:text-amber-400`,b===`danger`&&`text-red-600 dark:text-red-400`),children:[g,`%`]})]}),(0,Z.jsx)(O,{children:(0,Z.jsxs)(A,{children:[(0,Z.jsx)(T,{asChild:!0,children:(0,Z.jsxs)(`div`,{className:`flex shrink-0 cursor-help items-baseline gap-2 border-l border-[hsl(var(--deck-hairline))] pl-2 sm:pl-4`,"data-testid":`prompt-cache-hit-rate`,"aria-label":`${e(`status.cache`)} ${v}`,children:[(0,Z.jsx)(`span`,{className:`deck-eyebrow text-[hsl(var(--deck-ink-faint))]`,children:e(`status.cache`)}),(0,Z.jsx)(`span`,{className:H(`tabular-nums`,_.hitRate===void 0?`text-[hsl(var(--deck-ink-faint))]`:`font-medium text-[hsl(var(--deck-accent))]`),children:v})]})}),(0,Z.jsx)(E,{side:`top`,className:`max-w-[280px]`,children:_.hitRate===void 0?(0,Z.jsx)(`p`,{className:`text-xs`,children:e(`status.cacheUnavailable`)}):(0,Z.jsxs)(`div`,{className:`space-y-1 text-xs`,children:[(0,Z.jsx)(`p`,{children:e(`status.cacheTooltip`)}),(0,Z.jsx)(`p`,{className:`font-mono tabular-nums`,children:e(`status.cacheDetails`,{read:$(_.cacheReadTokens),write:$(_.cacheWriteTokens),uncached:$(_.uncachedInputTokens)})}),t.cacheBreak&&(0,Z.jsx)(`p`,{className:`text-[hsl(var(--deck-accent))]`,children:e(`status.cacheBreak`,{reason:e(Zn[t.cacheBreak.reason]??`status.cacheBreak.server`),previous:$(t.cacheBreak.previousCacheReadTokens),current:$(t.cacheBreak.cacheReadTokens)})})]})})]})}),(0,Z.jsx)(`div`,{className:`flex-1`}),(f||o||n&&m&&(!a?.snapshot||s))&&(0,Z.jsxs)(`div`,{className:`flex min-w-0 items-center gap-2`,children:[(0,Z.jsx)(`span`,{className:H(`shrink-0`,f?`h-2 w-2 rounded-sm bg-amber-500`:`deck-pulse-dot`)}),(0,Z.jsxs)(`span`,{className:H(`truncate`,f?`text-amber-600 dark:text-amber-400`:`text-[hsl(var(--deck-accent))]`),children:[m,p?(0,Z.jsxs)(`span`,{className:`hidden sm:inline`,children:[` · `,p]}):null]})]})]})}function er(){let{locale:e}=v(),t=_(e=>e.agentTeamsEnabled),n=J(e=>e.teams),r=J(e=>e.currentSessionRef),i=J(e=>u(e.historySurfaceSelection)),o=J(e=>e.loadTeams),[s,c]=(0,X.useState)({}),[l,d]=(0,X.useState)({}),[f,p]=(0,X.useState)({}),[m,h]=(0,X.useState)(null),[g,y]=(0,X.useState)(null),[b,x]=(0,X.useState)(null);if((0,X.useEffect)(()=>{i||o(r??void 0)},[t,r,i,o]),i||!t||!r||n.length===0)return null;let S=async t=>{if(a(J.getState()))return;let n=f[t]?.trim();if(n&&!m){h(t),x(null);try{await je.sendMessage(r,t,l[t]??`*`,n),p(e=>({...e,[t]:``})),await o(r)}catch(t){x(t instanceof Error?t.message:Y(e,`actionFailed`))}finally{h(null)}}},C=async t=>{if(!a(J.getState())&&!g){y(t),x(null);try{await je.delete(r,t),await o(r)}catch(t){x(t instanceof Error?t.message:Y(e,`actionFailed`))}finally{y(null)}}};return(0,Z.jsxs)(`section`,{"aria-label":Y(e,`title`),"data-blade-team-panel":!0,className:`shrink-0 border-y border-emerald-300/50 bg-emerald-50/55 dark:border-emerald-800/55 dark:bg-emerald-950/20`,children:[b&&(0,Z.jsx)(`div`,{role:`alert`,className:`border-b border-red-200 bg-red-50 px-4 py-2 font-mono text-[10px] text-red-700 dark:border-red-900 dark:bg-red-950/30 dark:text-red-300 md:px-6`,children:b}),n.filter(e=>e.status!==`deleted`).map(t=>{let n=s[t.name]??t.status===`running`,r=t.tasks.filter(e=>e.status===`completed`).length;return(0,Z.jsxs)(`div`,{className:`border-b border-emerald-200/40 last:border-0 dark:border-emerald-900/40`,children:[(0,Z.jsxs)(`div`,{className:`flex min-h-11 items-center gap-2 px-4 py-2 md:px-6`,children:[(0,Z.jsx)(`button`,{type:`button`,onClick:()=>c(e=>({...e,[t.name]:!n})),"aria-label":n?Y(e,`collapse`):Y(e,`expand`),className:`flex h-7 w-7 items-center justify-center rounded-md text-emerald-700 hover:bg-emerald-100 dark:text-emerald-300 dark:hover:bg-emerald-900/50`,children:n?(0,Z.jsx)(q,{className:`h-4 w-4`}):(0,Z.jsx)(j,{className:`h-4 w-4`})}),(0,Z.jsx)(Ze,{className:`h-4 w-4 shrink-0 text-emerald-700 dark:text-emerald-300`}),(0,Z.jsxs)(`div`,{className:`min-w-0 flex-1`,children:[(0,Z.jsxs)(`div`,{className:`flex flex-wrap items-baseline gap-2`,children:[(0,Z.jsx)(`h2`,{className:`truncate font-mono text-[11px] font-semibold uppercase text-emerald-800 dark:text-emerald-200`,children:t.name}),(0,Z.jsxs)(`span`,{className:`font-mono text-[9.5px] text-[hsl(var(--deck-ink-faint))]`,children:[t.status,` · `,t.members.length-1,` `,Y(e,`members`),` · `,r,`/`,t.tasks.length,` `,Y(e,`tasks`)]})]}),t.description&&(0,Z.jsx)(`p`,{className:`truncate font-mono text-[10px] text-[hsl(var(--deck-ink-muted))]`,children:t.description})]}),(0,Z.jsx)(`button`,{type:`button`,onClick:()=>void C(t.name),disabled:g===t.name,"aria-label":Y(e,`delete`),title:Y(e,`delete`),className:`flex h-7 w-7 items-center justify-center rounded-md text-[hsl(var(--deck-ink-faint))] hover:bg-red-50 hover:text-red-600 disabled:opacity-40 dark:hover:bg-red-950/40`,children:(0,Z.jsx)(K,{className:`h-3.5 w-3.5`})})]}),n&&(0,Z.jsxs)(`div`,{className:`max-h-[min(40vh,360px)] overflow-y-auto border-t border-emerald-200/40 px-4 py-3 md:px-6 dark:border-emerald-900/40`,children:[(0,Z.jsxs)(`div`,{className:`grid gap-x-6 gap-y-2 lg:grid-cols-2`,children:[(0,Z.jsxs)(`div`,{children:[(0,Z.jsx)(`h3`,{className:`mb-1 font-mono text-[9.5px] font-semibold uppercase text-[hsl(var(--deck-ink-faint))]`,children:Y(e,`members`)}),t.members.map(t=>(0,Z.jsxs)(`div`,{className:`flex min-h-7 items-center gap-2 border-b border-[hsl(var(--deck-hairline)/0.55)] py-1 last:border-0`,children:[(0,Z.jsx)(`span`,{"aria-label":t.status,className:`h-1.5 w-1.5 shrink-0 rounded-full ${t.status===`running`?`bg-emerald-500`:t.status===`completed`||t.status===`leader`?`bg-sky-500`:t.status===`failed`?`bg-red-500`:`bg-zinc-400`}`}),(0,Z.jsx)(`span`,{className:`min-w-0 flex-1 truncate font-mono text-[10.5px] text-[hsl(var(--deck-ink))]`,children:t.name}),(0,Z.jsx)(`span`,{className:`font-mono text-[9px] text-[hsl(var(--deck-ink-faint))]`,children:t.subagentType}),t.worktreePath&&(0,Z.jsx)(De,{className:`h-3 w-3 text-[hsl(var(--deck-ink-faint))]`,"aria-label":Y(e,`worktree`)})]},t.id))]}),(0,Z.jsxs)(`div`,{children:[(0,Z.jsx)(`h3`,{className:`mb-1 font-mono text-[9.5px] font-semibold uppercase text-[hsl(var(--deck-ink-faint))]`,children:Y(e,`tasks`)}),t.tasks.length===0?(0,Z.jsx)(`p`,{className:`font-mono text-[10px] text-[hsl(var(--deck-ink-faint))]`,children:Y(e,`noTasks`)}):t.tasks.map(e=>(0,Z.jsxs)(`div`,{className:`flex min-h-7 items-center gap-2 border-b border-[hsl(var(--deck-hairline)/0.55)] py-1 last:border-0`,children:[(0,Z.jsxs)(`span`,{className:`w-5 shrink-0 font-mono text-[9px] text-[hsl(var(--deck-ink-faint))]`,children:[`#`,e.id]}),(0,Z.jsx)(`span`,{className:`min-w-0 flex-1 truncate font-mono text-[10.5px] text-[hsl(var(--deck-ink))]`,children:e.subject}),(0,Z.jsx)(`span`,{className:`font-mono text-[9px] text-[hsl(var(--deck-ink-faint))]`,children:e.status})]},e.id))]})]}),t.peerMessagingEnabled&&(0,Z.jsxs)(`div`,{className:`mt-3 flex items-center gap-2 border-t border-emerald-200/40 pt-3 dark:border-emerald-900/40`,children:[(0,Z.jsxs)(`select`,{"aria-label":Y(e,`recipient`),value:l[t.name]??`*`,onChange:e=>d(n=>({...n,[t.name]:e.target.value})),className:`h-8 max-w-32 rounded-md border border-[hsl(var(--deck-hairline))] bg-[hsl(var(--deck-surface))] px-2 font-mono text-[10px]`,children:[(0,Z.jsx)(`option`,{value:`*`,children:Y(e,`broadcast`)}),t.members.filter(e=>e.status!==`leader`).map(e=>(0,Z.jsx)(`option`,{value:e.name,children:e.name},e.id))]}),(0,Z.jsx)(`input`,{value:f[t.name]??``,onChange:e=>p(n=>({...n,[t.name]:e.target.value})),onKeyDown:e=>{e.key===`Enter`&&S(t.name)},placeholder:Y(e,`messagePlaceholder`),className:`h-8 min-w-0 flex-1 rounded-md border border-[hsl(var(--deck-hairline))] bg-[hsl(var(--deck-surface))] px-2 font-mono text-[10.5px] outline-none focus:border-emerald-500`}),(0,Z.jsx)(`button`,{type:`button`,onClick:()=>void S(t.name),disabled:!f[t.name]?.trim()||m===t.name,"aria-label":Y(e,`send`),title:Y(e,`send`),className:`flex h-8 w-8 shrink-0 items-center justify-center rounded-md bg-emerald-700 text-white hover:bg-emerald-800 disabled:opacity-40 dark:bg-emerald-600`,children:(0,Z.jsx)(B,{className:`h-3.5 w-3.5`})})]})]})]},t.name)})]})}var tr={starting:`chat.turnActivity.starting`,thinking:`chat.turnActivity.thinking`,responding:`chat.turnActivity.responding`,executing_tools:`chat.turnActivity.executingTools`,compacting:`chat.turnActivity.compacting`,continuing:`chat.turnActivity.continuing`};function nr(e){let t=Math.max(0,Math.floor(e/1e3));if(t<60)return`${t}s`;let n=Math.floor(t/60),r=t%60;return n<60?`${n}m ${r}s`:`${Math.floor(n/60)}h ${n%60}m ${r}s`}function rr(e,t=Date.now()){let n=e?.snapshot;if(!n)return null;let r=n.activeTools.length+n.activeToolOverflow,i=n.activeTools.slice(0,2).map(e=>e.progress!==void 0&&e.total!==void 0?`${e.name} ${e.progress}/${e.total}`:e.name),a=Math.max(0,n.activeTools.length-i.length+n.activeToolOverflow);return{phaseKey:tr[n.phase],phaseParams:{count:r},tools:i,hiddenTools:a,completedTools:n.toolCallsCompleted,startedTools:n.toolCallsStarted,turn:n.turn,maxTurns:n.maxTurns,elapsed:nr(t-n.startedAt)}}function ir({activity:e,memory:t=null}){let n=h(),[r,i]=(0,X.useState)(Date.now()),a=e?.snapshot?.startedAt;(0,X.useEffect)(()=>{if(a===void 0)return;i(Date.now());let e=window.setInterval(()=>i(Date.now()),1e3);return()=>window.clearInterval(e)},[a]);let o=rr(e,r);if(!o)return t?.outcome===`written`?(0,Z.jsxs)(`section`,{role:`status`,"aria-live":`polite`,"data-memory-consolidation-notice":!0,className:`mx-4 mb-2 flex min-h-10 items-center gap-3 rounded-lg border border-[hsl(var(--deck-border))] bg-[hsl(var(--deck-surface))]/80 px-3 py-2 text-[hsl(var(--deck-ink))] shadow-sm md:mx-6`,children:[(0,Z.jsx)(x,{className:`h-4 w-4 shrink-0 text-[hsl(var(--deck-accent))]`,"aria-hidden":!0}),(0,Z.jsx)(`span`,{className:`text-xs font-semibold`,children:n(`chat.memoryConsolidation.saved`,{count:t.entries})})]}):null;let s=[t?.outcome===`written`?n(`chat.memoryConsolidation.saved`,{count:t.entries}):void 0,...o.tools,o.hiddenTools>0?`+${o.hiddenTools}`:void 0,o.startedTools>0?n(`chat.turnActivity.toolCount`,{completed:o.completedTools,started:o.startedTools}):void 0,o.turn>0?o.maxTurns===null?n(`chat.turnActivity.turn`,{turn:o.turn}):n(`chat.turnActivity.turnBounded`,{turn:o.turn,maxTurns:o.maxTurns}):void 0].filter(e=>e!==void 0);return(0,Z.jsxs)(`section`,{role:`status`,"aria-live":`polite`,"data-turn-activity-strip":!0,className:`mx-4 mb-2 flex min-h-10 items-center gap-3 rounded-lg border border-[hsl(var(--deck-border))] bg-[hsl(var(--deck-surface))]/80 px-3 py-2 text-[hsl(var(--deck-ink))] shadow-sm md:mx-6`,children:[(0,Z.jsx)(x,{className:`h-4 w-4 shrink-0 text-[hsl(var(--deck-accent))] motion-safe:animate-pulse`,"aria-hidden":!0}),(0,Z.jsxs)(`div`,{className:`min-w-0 flex-1`,children:[(0,Z.jsx)(`div`,{className:`text-xs font-semibold`,children:n(o.phaseKey,o.phaseParams)}),s.length>0&&(0,Z.jsx)(`div`,{className:`mt-0.5 truncate font-mono text-[10px] text-[hsl(var(--deck-ink-muted))]`,children:s.join(` · `)})]}),(0,Z.jsx)(`span`,{className:`shrink-0 font-mono text-[10px] tabular-nums text-[hsl(var(--deck-ink-muted))]`,children:o.elapsed})]})}function ar(e){let t=[...e].reverse().find(e=>e.role===`user`);return t?typeof t.content==`string`?{content:t.content,attachments:[]}:{content:t.content.filter(e=>e.type===`text`).map(e=>e.text).join(`
|
|
17
|
+
`),attachments:t.content.filter(e=>e.type===`image_url`).map((e,n)=>{let r=e.image_url.url.match(/^data:([^;,]+)[;,]/)?.[1]??`application/octet-stream`;return{id:`recovery-${t.id}-${n}`,name:`attachment-${n+1}`,mimeType:r,dataUrl:e.image_url.url}})}:null}function or({messages:e,isLoading:t,isStreaming:n,isStopping:r,errorMessage:i}){let a=h(),[o,s]=(0,X.useState)(!1),c=a(i?`status.phase.error`:r?`chat.input.action.stopping`:n?`status.phase.running`:`preview.files.status.ready`);return(0,Z.jsxs)(`details`,{"data-preview-status-disclosure":!0,open:o,onToggle:e=>s(e.currentTarget.open),className:`group hidden`,children:[(0,Z.jsxs)(`summary`,{className:`flex h-9 cursor-pointer list-none items-center gap-2 px-3 font-mono text-[11px] text-[hsl(var(--deck-ink-muted))] focus-visible:outline-none focus-visible:ring-2 focus-visible:ring-inset focus-visible:ring-[hsl(var(--deck-accent))]`,children:[n&&(0,Z.jsx)(`span`,{className:`deck-pulse-dot`}),(0,Z.jsx)(`span`,{className:`min-w-0 flex-1 truncate`,children:c}),(0,Z.jsx)(j,{className:`h-3.5 w-3.5 shrink-0 transition-transform group-open:rotate-90`})]}),o&&(0,Z.jsxs)(`div`,{"data-preview-activity-details":!0,className:`flex h-[min(44vh,420px)] min-h-0 flex-col border-t border-[hsl(var(--deck-hairline))]`,children:[i&&(0,Z.jsx)(`div`,{role:`alert`,className:`border-b border-red-200/60 bg-red-50/80 px-3 py-2 font-mono text-[11px] text-red-700 dark:border-red-900/50 dark:bg-red-950/30 dark:text-red-300`,children:i}),(0,Z.jsx)(An,{messages:e,isLoading:t}),(0,Z.jsx)($n,{})]})]})}function sr(){let e=h(),t=J(e=>e.messages),n=J(e=>e.currentSessionRef),r=J(e=>e.isStreaming),o=J(e=>e.isStopping),s=J(e=>e.providerRecovery),u=J(e=>e.turnActivity),d=J(e=>e.memoryConsolidation),f=J(e=>e.actionStationarity),p=J(e=>e.sessionEventConnectionState),m=J(e=>e.pendingSteeringCount),g=J(e=>e.pendingInputDelivery),_=J(e=>e.recoveredSteeringCount),v=J(e=>e.followUpQueue),y=J(e=>e.followUpQueueMutation),b=J(e=>e.mutateFollowUpQueue),x=J(e=>e.refreshFollowUpQueue),S=J(e=>!!e.historySurfaceSelection),C=J(e=>e.isLoading),w=J(e=>e.error),T=J(e=>e.errorContext),E=J(e=>e.sessions),D=J(e=>e.sendMessage),O=J(e=>e.openSideConversation),k=J(e=>e.abortSession),A=J(e=>e.retryTask),j=J(e=>e.retryingTaskKeys),M=c(e=>e.openSettings),N=J(e=>e.reconnectSessionEvents),P=J(e=>e.clearError),[F,I]=(0,X.useState)(null),[te,ne]=(0,X.useState)(null),re=n?E.find(e=>e.sessionId===n.sessionId&&e.projectPath===n.projectPath):void 0,ie=!!w&&(T?.kind===`navigation`||!T?.sessionRef||se(T.sessionRef,n)),L=T?.failureCode??re?.taskFailure?.code,ae=(T?.kind===`execution`||T?.failureCode)&&L?e(i(L)):w===`queue_full`?e(`chat.error.queueFull`):w===`turn_unavailable`||w===`turn_active`?e(`chat.error.turnChanged`):w,R=p===`connecting`||p===`reconnecting`,z=r&&p!==`connected`,B=n?`session:${G(n)}`:`session:temporary`,ce=(0,X.useMemo)(()=>ar(t),[t]),V=n?G(n):`temporary-session`,H=!(!n||!re?.taskRetryAvailable||L&&!l(L))&&(T?.kind===`execution`||T?.kind===`task_action`),le=T?.kind===`execution`&&(L===`authentication`||L===`permission`||L===`model_unavailable`),U=n?j.includes(G(n)):!1;(0,X.useEffect)(()=>{I(null),ne(null)},[V]);let ue=(0,X.useCallback)(e=>{ne(t=>({messageId:e,requestId:(t?.requestId??0)+1,sessionKey:V}))},[V]),pe=async e=>!a(J.getState())&&D({content:e.content,modelId:e.modelId,reasoningEffort:e.reasoningEffort,serviceTier:e.serviceTier,responseVerbosity:e.responseVerbosity,communicationStyle:e.communicationStyle,...e.annotations?{annotations:e.annotations}:{},...e.outputSchema?{outputSchema:e.outputSchema}:{},attachments:e.attachments.map(e=>({type:`image`,content:e.dataUrl,mimeType:e.mimeType,name:e.name}))}),me=()=>{if(!a(J.getState()))return k()},ge=async()=>{if(!a(J.getState())){if(le){P(),M(`models`);return}if(H&&n){P(),await A(n).catch(()=>void 0);return}if(T?.kind===`execution`&&ce){I({...ce,revision:Date.now()}),P();return}P(),requestAnimationFrame(()=>de())}},_e=H?e(U?`chat.error.action.retryingTask`:`chat.error.action.retryTask`):le?e(`chat.error.action.checkModels`):T?.kind===`execution`&&ce?e(`chat.error.action.editResend`):T?.kind===`submission`?e(`chat.error.action.returnDraft`):null;return(0,Z.jsxs)(`div`,{"data-chat-view":!0,className:`relative flex h-full min-h-0 overflow-hidden bg-[hsl(var(--deck-canvas))]`,children:[(0,Z.jsxs)(`div`,{className:`flex min-w-0 flex-1 flex-col`,children:[(0,Z.jsxs)(`div`,{"data-chat-history":!0,className:`contents`,children:[ie&&(0,Z.jsxs)(`div`,{role:`alert`,"data-blade-session-error":!0,className:`flex min-h-11 flex-wrap items-center gap-2 border-b border-red-200/60 bg-red-50/80 px-4 py-2 font-mono text-[11px] text-red-700 dark:border-red-900/50 dark:bg-red-950/30 dark:text-red-300 sm:px-5`,children:[(0,Z.jsx)(fe,{className:`h-3.5 w-3.5 shrink-0`}),(0,Z.jsxs)(`span`,{className:`min-w-0 flex-1 break-words`,children:[(0,Z.jsx)(`span`,{className:`font-semibold`,children:e(T?.kind===`submission`?`chat.error.title.submission`:T?.kind===`execution`?`chat.error.title.execution`:T?.kind===`navigation`?`chat.error.title.navigation`:`chat.error.title.generic`)}),` `,ae]}),_e&&(0,Z.jsxs)(`button`,{type:`button`,onClick:()=>void ge(),disabled:U,className:`inline-flex min-h-7 shrink-0 items-center gap-1.5 rounded-md border border-red-300/70 bg-white/65 px-2.5 font-medium transition-colors hover:bg-white focus-visible:outline-none focus-visible:ring-1 focus-visible:ring-red-500 disabled:cursor-wait disabled:opacity-60 dark:border-red-800 dark:bg-red-950/45 dark:hover:bg-red-900/60`,children:[H?U?(0,Z.jsx)(W,{className:`h-3 w-3 animate-spin`}):(0,Z.jsx)(Ee,{className:`h-3 w-3`}):(0,Z.jsx)(ee,{className:`h-3 w-3`}),_e]}),(0,Z.jsx)(`button`,{type:`button`,onClick:P,"aria-label":e(`chat.error.dismiss`),className:`p-1 text-red-500 rounded transition-colors hover:bg-red-100/60 hover:text-red-700 dark:hover:bg-red-950/60 dark:hover:text-red-100`,children:`✕`})]}),(R||p===`offline`)&&(0,Z.jsxs)(`div`,{role:p===`offline`?`alert`:`status`,"aria-live":`polite`,className:`flex min-h-10 flex-wrap items-center gap-2 border-b border-amber-300/60 bg-amber-50/80 px-4 py-2 font-mono text-[11px] text-amber-900 dark:border-amber-800/60 dark:bg-amber-950/35 dark:text-amber-200 sm:px-5`,children:[R?(0,Z.jsx)(W,{className:`h-3.5 w-3.5 shrink-0 animate-spin`}):(0,Z.jsx)(oe,{className:`h-3.5 w-3.5 shrink-0`}),(0,Z.jsx)(`span`,{className:`min-w-0 flex-1`,children:e(R?`chat.connection.reconnecting`:`chat.connection.offline`)}),p===`offline`&&(0,Z.jsxs)(`button`,{type:`button`,onClick:()=>{a(J.getState())||N().catch(()=>void 0)},className:`inline-flex min-h-7 items-center gap-1.5 rounded-md border border-amber-400/70 bg-white/60 px-2.5 font-medium transition-colors hover:bg-white focus-visible:outline-none focus-visible:ring-2 focus-visible:ring-amber-500 dark:border-amber-700 dark:bg-amber-950/50 dark:hover:bg-amber-900/50`,children:[(0,Z.jsx)(Ce,{className:`h-3 w-3`}),e(`chat.connection.retry`)]})]}),(0,Z.jsx)($e,{}),(0,Z.jsx)(An,{messages:t,isLoading:C,selectionDraftKey:S?void 0:B,canAskSideConversation:!(!n||S),onOpenSideConversation:O,navigationRequest:te?.sessionKey===V?te:null},n?G(n):`temporary-session`),(0,Z.jsx)(er,{})]}),(0,Z.jsxs)(`div`,{"data-chat-composer-dock":!0,className:`contents`,children:[(0,Z.jsx)(or,{messages:t,isLoading:C,isStreaming:r,isStopping:o,errorMessage:ie?ae:null},V),(0,Z.jsx)(Ln,{}),(0,Z.jsx)(Fn,{}),(0,Z.jsx)(jn,{queue:S?null:v,mutation:y,onMutate:b,onRefresh:x}),(0,Z.jsx)(Vn,{recovery:S?null:s,stopping:o,onStop:me}),(0,Z.jsx)(ir,{activity:S||s?.snapshot||f||re?.pendingInteraction?null:u,memory:S?null:d}),(0,Z.jsx)(he,{draftKey:B,draft:F?.content,draftAttachments:F?.attachments,draftRevision:F?.revision,onSend:pe,onAbort:me,disabled:C||z,isStreaming:r,isStopping:o,pendingSteeringCount:m,pendingInputDelivery:g,recoveredSteeringCount:_,workspacePath:n?.projectPath,onNavigateToMessage:ue},B),(0,Z.jsx)(`div`,{"data-chat-primary-status":!0,className:`contents`,children:(0,Z.jsx)($n,{})})]})]}),(0,Z.jsx)(Kn,{})]})}export{sr as ChatView};
|