pisper 0.6.2 → 0.6.3
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/package.json +7 -7
- package/web/.vite/manifest.json +256 -256
- package/web/assets/{AppOverlays-D-yAp1vf.js → AppOverlays-CR5iJcP5.js} +1 -1
- package/web/assets/{AppShortcuts-CtNLVerh.js → AppShortcuts-BachmLQ3.js} +1 -1
- package/web/assets/{AssetsPage-DOzB9Wnk.js → AssetsPage-BltehMID.js} +1 -1
- package/web/assets/{ChannelsPage-DAPrpSTC.js → ChannelsPage-Tuw_qicj.js} +1 -1
- package/web/assets/{ChatAppearancePage-Q8jLnp7A.js → ChatAppearancePage-DME3PgDr.js} +2 -2
- package/web/assets/{ChatDockView-1fxZrR7W.js → ChatDockView-DoGtrBpY.js} +1 -1
- package/web/assets/{ChatHistoryPage-Bpyxsay_.js → ChatHistoryPage-DTXS6i3n.js} +1 -1
- package/web/assets/{ChatPage-CVOjCtOP.js → ChatPage-ibc_7olm.js} +3 -3
- package/web/assets/{ConfigPage-sVAdZytK.js → ConfigPage-CI6one5Y.js} +1 -1
- package/web/assets/{DecisionsPage-zq88dfkB.js → DecisionsPage-DOhLbIaD.js} +1 -1
- package/web/assets/{DesktopWindowControls-DYmSShHE.js → DesktopWindowControls-KmgemDO8.js} +1 -1
- package/web/assets/{FloatingWidgets-CFY30wFr.js → FloatingWidgets-Bs7ec6lW.js} +1 -1
- package/web/assets/{GitDiffViewer-BZV0A9mh.js → GitDiffViewer-xm2LnN9r.js} +1 -1
- package/web/assets/{MarkdownMessage-_VrT_sON.js → MarkdownMessage-H1336cMr.js} +1 -1
- package/web/assets/{McpPage-ROftSC8m.js → McpPage-Ck-7aLuZ.js} +1 -1
- package/web/assets/{MemoryPage-DkBjt-3Y.js → MemoryPage-BEdNJ3ot.js} +1 -1
- package/web/assets/{MobileContextScreen-BEss6aR9.js → MobileContextScreen-Dasny2J9.js} +2 -2
- package/web/assets/{MobileThreePane-DjyMuG9k.js → MobileThreePane-DEKMHPfN.js} +1 -1
- package/web/assets/{PageHeader-DyoCht8Y.js → PageHeader-C_bfu8Ir.js} +1 -1
- package/web/assets/{PluginsPage-DjaIps8G.js → PluginsPage-BPx5ERHL.js} +1 -1
- package/web/assets/{QuickPromptIdeas-B8P77vjW.js → QuickPromptIdeas-Bs-udcSZ.js} +1 -1
- package/web/assets/{SchedulesPage-CsJS8r9L.js → SchedulesPage-W4Mg7frl.js} +1 -1
- package/web/assets/{SessionContextPanel-BYlJfIxm.js → SessionContextPanel-lu9F9AJg.js} +1 -1
- package/web/assets/{SessionFilesPane-DWuwTplj.js → SessionFilesPane-BIRQ_hHi.js} +2 -2
- package/web/assets/{SidebarMoreTools-C2kAUJm0.js → SidebarMoreTools-BDqt5VTG.js} +1 -1
- package/web/assets/{SidebarRecentSessions-CoaY-U88.js → SidebarRecentSessions-1G_huYu9.js} +1 -1
- package/web/assets/{SidebarSettingsButton-BvmP3q5N.js → SidebarSettingsButton-B4_vEBS5.js} +1 -1
- package/web/assets/{SidebarUpdateStatus-DHxZy6-o.js → SidebarUpdateStatus-DD8f4Fxv.js} +1 -1
- package/web/assets/{SkillsPage-CX55drgE.js → SkillsPage-CpRRosmo.js} +1 -1
- package/web/assets/{TerminalPanel-gBBjaBlu.js → TerminalPanel-DVKC4htc.js} +1 -1
- package/web/assets/{ThemeToggleButton-D6NR_guG.js → ThemeToggleButton-CXXbLtcY.js} +1 -1
- package/web/assets/{WebDesktopPet-BKP_jSW2.js → WebDesktopPet-DWFspeZE.js} +1 -1
- package/web/assets/{WorkbenchSidebarToggle-Kxa_tpUy.js → WorkbenchSidebarToggle-AgjfcT29.js} +1 -1
- package/web/assets/{WorkflowsPage-CNVCHm3u.js → WorkflowsPage-bhQlHSzS.js} +1 -1
- package/web/assets/{api-BbC90EzT.js → api-Dzobr-o_.js} +1 -1
- package/web/assets/catalog-D4eaIju4.js +1 -0
- package/web/assets/{chat-api-BWIsQYmQ.js → chat-api-DfnvubiW.js} +1 -1
- package/web/assets/{client-store-CAjI7P8I.js → client-store-DPMvgPNS.js} +1 -1
- package/web/assets/{component-api-CQ_xu0Wa.js → component-api-Nwo2yGZI.js} +1 -1
- package/web/assets/{config-search-BnPZPrUR.js → config-search-CwVhh2uc.js} +1 -1
- package/web/assets/{events-DJwBfKGM.js → events-Bwv6HmwM.js} +1 -1
- package/web/assets/{floating-widgets-store-DGeXH0NK.js → floating-widgets-store-DIy4GSy4.js} +2 -2
- package/web/assets/{http-BrDjjNkv.js → http-DphgzWtw.js} +1 -1
- package/web/assets/{i18n-Bo7twSO7.js → i18n-7QvbQzOQ.js} +1 -1
- package/web/assets/{index-IemAtsU4.js → index-iBrSU61i.js} +2 -2
- package/web/assets/{local-path-reveal-BSjf-Pum.js → local-path-reveal-DWhkyox-.js} +1 -1
- package/web/assets/{mount-app-AtqeFC4t.js → mount-app-n_05p6iW.js} +3 -3
- package/web/assets/{pick-system-directory-Wa63igLM.js → pick-system-directory-R1F5WyaB.js} +1 -1
- package/web/assets/{public-CsBeGSro.js → public-BcTP7F3I.js} +1 -1
- package/web/assets/{public-components-BYWnKxmu.js → public-components-Ck5BYo6M.js} +1 -1
- package/web/assets/{runtime-capabilities-store-BxCUS5xR.js → runtime-capabilities-store-DaWPY5y-.js} +1 -1
- package/web/assets/{session-change-summary-api-x1sTdOgD.js → session-change-summary-api-DFgTzTci.js} +1 -1
- package/web/assets/{session-list-DPpH_zbz.js → session-list-CMaoK_ZX.js} +1 -1
- package/web/assets/{session-streaming-state-OU65zaiO.js → session-streaming-state-llCTupbI.js} +1 -1
- package/web/assets/{shortcuts-B3q7nKdq.js → shortcuts-BO-h6OmP.js} +1 -1
- package/web/assets/{speech-session-BB9aLyRQ.js → speech-session-DKjw0mV_.js} +1 -1
- package/web/assets/{startup-queries-C-Xq7N50.js → startup-queries-CAQZvUIR.js} +1 -1
- package/web/assets/{ui-store-3r51KJe8.js → ui-store-2wpnH8Kf.js} +1 -1
- package/web/assets/{use-i18n-DyzoXal-.js → use-i18n-BSZKFkMb.js} +1 -1
- package/web/assets/{useCustomUiComponents-B3Z-pphj.js → useCustomUiComponents-BH86kuaq.js} +1 -1
- package/web/assets/{web-preview-panel-DNEqdotS.js → web-preview-panel-DVQxVfig.js} +4 -4
- package/web/index.html +1 -1
- package/web/assets/catalog-BPgyo6Yf.js +0 -1
|
@@ -1 +1 @@
|
|
|
1
|
-
import{a as e}from"./rolldown-runtime-B0Z9INg1.js";import{i as t,r as n}from"./vendor-react-DwNgTV1j.js";import{t as r}from"./use-i18n-DyzoXal-.js";import{t as i}from"./AppSelect-D149YYg1.js";import{t as a}from"./bell-BjONAtgH.js";import{t as o}from"./bot-B3TaBp_T.js";import{t as s}from"./circle-check-iEdCm3Pw.js";import{t as c}from"./folder-open-FIShC5Qk.js";import{t as l}from"./message-circle-D-XrK6Ft.js";import{t as u}from"./play-DNDjDNGn.js";import{t as d}from"./plus-fQbSqB1n.js";import{t as f}from"./refresh-cw-TbWxTY4K.js";import{t as p}from"./send-Cj-W03w_.js";import{t as m}from"./trash-2-CNrPOoPR.js";import{t as h}from"./triangle-alert-CE1q54ci.js";import{t as g}from"./x-07u4-129.js";import{t as _}from"./api-BbC90EzT.js";import{t as v}from"./button-CQA36izu.js";import{i as y,r as b,s as x,t as S}from"./dialog-D-ER2p-D.js";import{t as C}from"./field-3bN8nouy.js";import{r as w}from"./format-BRFKAYMT.js";import{i as T,l as E,n as ee,o as D,r as O,s as k,t as A}from"./app-primitives-BBXY6U2S.js";import{n as j}from"./pick-system-directory-Wa63igLM.js";import{t as M}from"./StarOrbit-BAAjh-hY.js";import{t as N}from"./usePagePrimaryAction-CWPC0C_f.js";var P=e(t(),1),F={browser:{name:`通知`,Icon:a},feishu:{name:`飞书`,Icon:o},weixin:{name:`微信`,Icon:l},qq:{name:`QQ`,Icon:l},telegram:{name:`Telegram`,Icon:p}},I={interval:`每隔一段时间`,daily:`每天`,weekly:`每周`,monthly:`每月`},L={minutes:`分钟`,hours:`小时`,days:`天`},R=[...new Set([`Asia/Hong_Kong`,`UTC`,...typeof Intl.supportedValuesOf==`function`?Intl.supportedValuesOf(`timeZone`):[]])],z=[`full-access`];function B(e){return e(`schedules:schedulesPage.fullAccessHelp`)}function te(e,t){return{interval:t(`schedules:schedulesPage.atIntervals`),daily:t(`schedules:schedulesPage.daily`),weekly:t(`schedules:schedulesPage.weekly`),monthly:t(`schedules:schedulesPage.monthly`)}[e]}function ne(e,t){return{minutes:t(`schedules:schedulesPage.minutes`),hours:t(`schedules:schedulesPage.hours`),days:t(`schedules:schedulesPage.days`)}[e]}function V(e,t){return{browser:t(`schedules:schedulesPage.browserNotifications`),feishu:`飞书`,weixin:`微信`,qq:`QQ`,telegram:`Telegram`}[e]}function H(e){let t={};if(!e)return t;for(let n of e.inputs)t[n.name]=n.defaultValue;return t}function U(e,t,n,r,i){if(e===`prompt`)return!!t.trim();if(!n)return!1;let a=i.find(e=>e.id===n);return a?a.inputs.filter(e=>e.required).every(e=>{let t=r[e.name];return t!=null&&String(t).trim()!==``}):!1}function W(e){let{nextRunAt:t,lastRunAt:n,lastStatus:r,...i}=e;return i}function G(e,t=`zh-CN`){if(!e.nextRunAt)return null;try{return new Intl.DateTimeFormat(t,{month:`short`,day:`numeric`,hour:`2-digit`,minute:`2-digit`}).format(new Date(e.nextRunAt))}catch{return null}}var K=n();function q({value:e,onChange:t}){let{t:n}=r();return(0,K.jsxs)(C,{variant:`control`,children:[n(`schedules:schedulesPage.executionMode`),(0,K.jsx)(i,{value:e,onChange:e=>t(e.target.value),children:z.map(e=>(0,K.jsx)(`option`,{value:e,children:n(`schedules:schedulesPage.fullAccess`)},e))}),(0,K.jsx)(`small`,{children:B(n)})]})}function J({targetType:e,prompt:t,workflowId:n,workflowInputs:a,workflows:o,onChange:s}){let{t:c}=r(),l=o.find(e=>e.id===n);return(0,K.jsxs)(`div`,{className:`grid gap-[10px]`,children:[(0,K.jsxs)(C,{variant:`control`,children:[c(`schedules:schedulesPage.executionTarget`),(0,K.jsxs)(i,{value:e,onChange:e=>{let t=e.target.value,r=o[0];s(t===`workflow`?{targetType:t,workflowId:n||r?.id||``,workflowInputs:n?a:H(r)}:{targetType:t})},children:[(0,K.jsx)(`option`,{value:`prompt`,children:`Prompt`}),(0,K.jsx)(`option`,{value:`workflow`,children:c(`schedules:schedulesPage.workflow`)})]})]}),e===`prompt`?(0,K.jsxs)(C,{variant:`control`,children:[`Prompt`,(0,K.jsx)(`textarea`,{value:t,onChange:e=>s({prompt:e.target.value}),placeholder:c(`schedules:schedulesPage.describeTheWorkTheAgentShouldCompleteEachTime`)})]}):(0,K.jsxs)(K.Fragment,{children:[(0,K.jsxs)(C,{variant:`control`,children:[c(`schedules:schedulesPage.workflow`),(0,K.jsxs)(i,{value:n,onChange:e=>{let t=o.find(t=>t.id===e.target.value);s({workflowId:e.target.value,workflowInputs:H(t)})},children:[(0,K.jsx)(`option`,{value:``,children:c(`schedules:schedulesPage.selectPublishedWorkflow`)}),o.map(e=>(0,K.jsxs)(`option`,{value:e.id,children:[e.name,` · v`,e.revision]},e.id))]}),(0,K.jsx)(`small`,{children:l?.description||(o.length?c(`schedules:schedulesPage.workflowUsesItsOwnRuntimeSettings`):c(`schedules:schedulesPage.noPublishedWorkflows`))})]}),l?.inputs.length?(0,K.jsxs)(`div`,{className:`grid gap-[8px]`,children:[(0,K.jsxs)(`div`,{className:`schedule-workflow-inputs-heading [&_strong]:text-[12px] [&_small]:text-[var(--text-muted)] [&_small]:text-[11px] [&_small]:text-right max-[650px]:items-start max-[650px]:flex-col max-[650px]:gap-[2px] max-[650px]:[&_small]:text-left flex [align-items:baseline] justify-between gap-[12px]`,children:[(0,K.jsx)(`strong`,{children:c(`schedules:schedulesPage.workflowInputs`)}),(0,K.jsx)(`small`,{children:c(`schedules:schedulesPage.workflowInputsHelp`)})]}),(0,K.jsx)(`div`,{className:`schedule-workflow-inputs [&_input[type='checkbox']]:w-[16px] [&_input[type='checkbox']]:h-[16px] [&_input[type='checkbox']]:[justify-self:end] max-[650px]:grid-cols-[1fr] grid grid-cols-[repeat(2,minmax(0,1fr))] gap-[8px]`,children:l.inputs.map(e=>(0,K.jsxs)(C,{variant:`control`,className:e.type===`boolean`?`grid grid-cols-[minmax(0,1fr)_auto] items-center`:void 0,children:[e.label,e.required?` *`:``,e.type===`boolean`?(0,K.jsx)(`input`,{type:`checkbox`,checked:!!a[e.name],onChange:t=>s({workflowInputs:{...a,[e.name]:t.target.checked}})}):(0,K.jsx)(`input`,{type:e.type===`number`?`number`:`text`,required:e.required,value:String(a[e.name]??``),onChange:t=>s({workflowInputs:{...a,[e.name]:t.target.value}})}),e.description&&(0,K.jsx)(`small`,{children:e.description})]},e.id))})]}):null]})]})}function Y({value:e,onChange:t}){let{t:n}=r(),[i,a]=(0,P.useState)(``),[o,s]=(0,P.useState)(!1),l=async()=>{a(``),s(!0);try{let n=await j(e);n&&t(n)}catch(e){a(e instanceof Error?e.message:String(e))}finally{s(!1)}};return(0,K.jsxs)(K.Fragment,{children:[(0,K.jsxs)(C,{variant:`control`,children:[n(`schedules:schedulesPage.workingDirectory`),(0,K.jsxs)(`span`,{className:`schedule-workspace-input [&_input]:min-w-0 [&_input]:font-[ui-monospace,_SFMono-Regular,_Consolas,_'Liberation_Mono',_monospace] grid grid-cols-[minmax(0,1fr)_auto] gap-[6px]`,children:[(0,K.jsx)(`input`,{value:e,onChange:e=>t(e.target.value),placeholder:n(`schedules:schedulesPage.enterTheProjectSAbsolutePath`)}),(0,K.jsxs)(v,{type:`button`,variant:`outline`,size:`lg`,className:`bg-surface-subtle`,disabled:o,onClick:()=>void l(),children:[(0,K.jsx)(c,{size:13}),n(`schedules:schedulesPage.browseDirectories`)]})]}),(0,K.jsx)(`small`,{children:n(`schedules:schedulesPage.theScheduledAgentWillRunInThisDirectory`)})]}),i&&(0,K.jsxs)(T,{children:[(0,K.jsx)(h,{size:13}),i]})]})}function re({notificationTargets:e,workflows:t,defaultCwd:n,onClose:i,onCreated:a}){let{t:o}=r(),[s,c]=(0,P.useState)(``),[l,u]=(0,P.useState)(`prompt`),[p,m]=(0,P.useState)(``),[w,E]=(0,P.useState)(``),[D,O]=(0,P.useState)({}),[k,A]=(0,P.useState)(n||``),[j,M]=(0,P.useState)(`full-access`),[N,F]=(0,P.useState)(!1),I=(0,P.useRef)(!1),L=(0,P.useRef)(null),[R]=(0,P.useState)(()=>document.activeElement instanceof HTMLElement?document.activeElement:null),[z,B]=(0,P.useState)(``);return(0,K.jsx)(S,{open:!0,onOpenChange:e=>{!e&&!I.current&&i()},children:(0,K.jsx)(b,{className:`z-[71] block bg-[var(--solid)] p-[18px] sm:max-w-[430px]`,overlayClassName:`z-[70] bg-[var(--modal-overlay)] backdrop-blur-sm`,showCloseButton:!1,onOpenAutoFocus:e=>{e.preventDefault(),L.current?.focus()},onCloseAutoFocus:e=>{e.preventDefault(),R?.focus()},children:(0,K.jsxs)(`form`,{className:`space-y-3`,onSubmit:async n=>{if(n.preventDefault(),!(I.current||!s.trim()||!U(l,p,w,D,t))){I.current=!0,F(!0),B(``);try{let t=Object.entries(e).filter(([,e])=>e.enabled).map(([e])=>e);a(await _(`/api/schedules`,{method:`POST`,body:JSON.stringify({name:s,targetType:l,prompt:p,workflowId:w,workflowInputs:D,cwd:k,enabled:!0,frequency:`daily`,time:`09:00`,timezone:`Asia/Hong_Kong`,executionMode:j,notifications:t,notifyOn:`always`})}))}catch(e){B(e instanceof Error?e.message:String(e))}finally{I.current=!1,F(!1)}}},children:[(0,K.jsxs)(ee,{children:[(0,K.jsxs)(`div`,{children:[(0,K.jsx)(x,{children:o(`schedules:schedulesPage.newScheduledTask`)}),(0,K.jsx)(y,{children:o(`schedules:schedulesPage.youCanContinueSettingTheRunTimeAndNotificationChannelsAfterCreation`)})]}),(0,K.jsx)(v,{type:`button`,variant:`ghost`,size:`icon`,"aria-label":o(`schedules:schedulesPage.closeDialog`),disabled:N,onClick:i,children:(0,K.jsx)(g,{size:17})})]}),(0,K.jsxs)(C,{variant:`control`,children:[o(`schedules:schedulesPage.taskName`),(0,K.jsx)(`input`,{ref:L,value:s,onChange:e=>c(e.target.value),placeholder:o(`schedules:schedulesPage.forExampleDailyCodeReview`)})]}),(0,K.jsx)(J,{targetType:l,prompt:p,workflowId:w,workflowInputs:D,workflows:t,onChange:e=>{e.targetType&&u(e.targetType),e.prompt!==void 0&&m(e.prompt),e.workflowId!==void 0&&E(e.workflowId),e.workflowInputs!==void 0&&O(e.workflowInputs)}}),l===`prompt`&&(0,K.jsxs)(K.Fragment,{children:[(0,K.jsx)(Y,{value:k,onChange:A}),(0,K.jsx)(q,{value:j,onChange:M})]}),z&&(0,K.jsxs)(T,{children:[(0,K.jsx)(h,{size:13}),z]}),(0,K.jsxs)(`div`,{className:`flex justify-end gap-[8px] [margin-top:18px]`,children:[(0,K.jsx)(v,{type:`button`,variant:`outline`,size:`lg`,className:`bg-surface-subtle`,disabled:N,onClick:i,children:o(`schedules:schedulesPage.cancel`)}),(0,K.jsxs)(v,{size:`lg`,disabled:N||!s.trim()||!U(l,p,w,D,t),children:[N?(0,K.jsx)(f,{className:`animate-spin`,size:14}):(0,K.jsx)(d,{size:14}),o(N?`schedules:schedulesPage.creating`:`schedules:schedulesPage.createTask`)]})]})]})})})}function ie({notificationTargets:e,workflows:t,defaultCwd:n,onCreated:a}){let{t:o}=r(),[s,c]=(0,P.useState)(``),[l,u]=(0,P.useState)(`prompt`),[p,m]=(0,P.useState)(``),[g,y]=(0,P.useState)(``),[b,x]=(0,P.useState)({}),[S,w]=(0,P.useState)(n||``),[E,D]=(0,P.useState)(`daily`),[O,k]=(0,P.useState)(`09:00`),[j,M]=(0,P.useState)(`Asia/Hong_Kong`),[N,F]=(0,P.useState)(1),[z,B]=(0,P.useState)(`hours`),[V,H]=(0,P.useState)(`full-access`),[W,G]=(0,P.useState)(!1),[re,ie]=(0,P.useState)(``);return(0,K.jsxs)(A,{children:[(0,K.jsx)(ee,{children:(0,K.jsxs)(`div`,{children:[(0,K.jsx)(`h2`,{children:o(`schedules:schedulesPage.newScheduledTask`)}),(0,K.jsx)(`p`,{children:o(`schedules:schedulesPage.youCanContinueEditingTheRunTimeAndNotificationChannelsAfterCreation`)})]})}),(0,K.jsxs)(C,{variant:`control`,children:[o(`schedules:schedulesPage.taskName`),(0,K.jsx)(`input`,{value:s,onChange:e=>c(e.target.value),placeholder:o(`schedules:schedulesPage.forExampleDailyCodeReview`)})]}),(0,K.jsx)(J,{targetType:l,prompt:p,workflowId:g,workflowInputs:b,workflows:t,onChange:e=>{e.targetType&&u(e.targetType),e.prompt!==void 0&&m(e.prompt),e.workflowId!==void 0&&y(e.workflowId),e.workflowInputs!==void 0&&x(e.workflowInputs)}}),l===`prompt`&&(0,K.jsx)(Y,{value:S,onChange:w}),(0,K.jsxs)(`div`,{className:`form-grid grid gap-[9px] three [.form-grid&]:grid-cols-[repeat(3,minmax(0,1fr))] max-[650px]:[.form-grid&]:grid-cols-[1fr]`,children:[(0,K.jsxs)(C,{variant:`control`,children:[o(`schedules:schedulesPage.frequency`),(0,K.jsx)(i,{value:E,onChange:e=>D(e.target.value),children:Object.keys(I).map(e=>(0,K.jsx)(`option`,{value:e,children:te(e,o)},e))})]}),E===`interval`?(0,K.jsxs)(C,{variant:`control`,children:[o(`schedules:schedulesPage.runInterval`),(0,K.jsxs)(`span`,{className:`schedule-interval-input [&_input]:w-full [&_input]:min-w-0 [&_input]:h-full [&_input]:border-0 [&_input]:[outline:0] [&_input]:bg-transparent [&_input]:p-[0_9px] [&_input]:text-[var(--text)] [&_select]:h-full [&_select]:border-0 [&_select]:[border-left:1px_solid_var(--stroke)] [&_select]:[outline:0] [&_select]:bg-[var(--solid)] [&_select]:p-[0_8px] [&_select]:text-[var(--text-tertiary)] [&_select]:text-[12px] [&_[data-slot='select-trigger']]:w-auto [&_[data-slot='select-trigger']]:min-w-[74px] [&_[data-slot='select-trigger']]:[border-left:1px_solid_var(--stroke)] [&_[data-slot='select-trigger']]:rounded-[0] [&_[data-slot='select-trigger']]:bg-[var(--solid)] [&_[data-slot='select-trigger']]:text-[var(--text-tertiary)] grid h-[31px] grid-cols-[minmax(0,1fr)_auto] overflow-hidden [border:1px_solid_var(--stroke)] rounded-[var(--r-xs)] bg-[var(--surface-subtle)]`,children:[(0,K.jsx)(`input`,{type:`number`,min:`1`,value:N,onChange:e=>F(Number(e.target.value))}),(0,K.jsx)(i,{value:z,onChange:e=>B(e.target.value),children:Object.keys(L).map(e=>(0,K.jsx)(`option`,{value:e,children:ne(e,o)},e))})]})]}):(0,K.jsxs)(C,{variant:`control`,children:[o(`schedules:schedulesPage.time`),(0,K.jsx)(`input`,{type:`time`,value:O,onChange:e=>k(e.target.value)})]}),(0,K.jsxs)(C,{variant:`control`,children:[o(`schedules:schedulesPage.timeZone`),(0,K.jsx)(i,{value:j,onChange:e=>M(e.target.value),children:R.map(e=>(0,K.jsx)(`option`,{value:e,children:e},e))})]}),l===`prompt`&&(0,K.jsx)(q,{value:V,onChange:H})]}),re&&(0,K.jsxs)(T,{children:[(0,K.jsx)(h,{size:13}),re]}),(0,K.jsxs)(`div`,{className:`form-footer [&_>_span]:text-[var(--text-muted)] [&_>_span]:text-[13px] flex items-center justify-between gap-[10px] [margin-top:10px]`,children:[(0,K.jsx)(`span`,{children:o(`schedules:schedulesPage.enabledAutomaticallyAfterCreation`)}),(0,K.jsxs)(v,{size:`lg`,disabled:W||!s.trim()||!U(l,p,g,b,t),onClick:async()=>{G(!0),ie(``);try{let t=Object.entries(e).filter(([,e])=>e.enabled).map(([e])=>e);a(await _(`/api/schedules`,{method:`POST`,body:JSON.stringify({name:s,targetType:l,prompt:p,workflowId:g,workflowInputs:b,cwd:S,enabled:!0,frequency:E,time:O,timezone:j,intervalValue:N,intervalUnit:z,executionMode:V,notifications:t,notifyOn:`always`})}))}catch(e){ie(e instanceof Error?e.message:String(e))}finally{G(!1)}},children:[W?(0,K.jsx)(f,{className:`animate-spin`,size:14}):(0,K.jsx)(d,{size:14}),o(W?`schedules:schedulesPage.creating`:`schedules:schedulesPage.createTask`)]})]})]})}function ae({notify:e,registerPrimaryAction:t,requestConfirm:n,openNotificationSettings:a}){let{t:o,language:c}=r(),[l,d]=(0,P.useState)({tasks:[],runs:[],notificationTargets:{browser:{enabled:!1},feishu:{enabled:!1},weixin:{enabled:!1},qq:{enabled:!1},telegram:{enabled:!1}},workflows:[],defaultCwd:``}),[p,g]=(0,P.useState)(``),[y,b]=(0,P.useState)(null),[x,S]=(0,P.useState)(!0),[j,z]=(0,P.useState)(!1),[B,H]=(0,P.useState)(``),[ae,oe]=(0,P.useState)(!1);N(t,()=>oe(!0));let X=(0,P.useCallback)(async()=>{try{let e=await _(`/api/schedules`);d(e),g(t=>e.tasks.some(e=>e.id===t)?t:e.tasks[0]?.id||``)}catch(e){H(e instanceof Error?e.message:String(e))}finally{S(!1)}},[]);(0,P.useEffect)(()=>{X()},[X]),(0,P.useEffect)(()=>{let e=window.setInterval(X,l.tasks.some(e=>e.lastStatus===`running`)?2e3:1e4);return()=>window.clearInterval(e)},[l.tasks,X]);let Z=l.tasks.find(e=>e.id===p),Q=l.workflows||[];(0,P.useEffect)(()=>{b(e=>Z?e?.id===Z.id?e:W(Z):null)},[Z]);let se=(0,P.useMemo)(()=>l.runs.filter(e=>e.taskId===p).sort((e,t)=>new Date(t.startedAt).getTime()-new Date(e.startedAt).getTime()).slice(0,20),[l.runs,p]),$=e=>b(t=>t&&{...t,...e}),ce=e=>{y&&$({notifications:y.notifications.includes(e)?y.notifications.filter(t=>t!==e):[...y.notifications,e]})};return x?(0,K.jsxs)(O,{children:[(0,K.jsx)(f,{className:`animate-spin`,size:23}),(0,K.jsx)(`h2`,{children:o(`schedules:schedulesPage.loadingScheduledTasks`)})]}):(0,K.jsxs)(K.Fragment,{children:[B&&(0,K.jsxs)(T,{children:[(0,K.jsx)(h,{size:13}),B]}),(0,K.jsxs)(`div`,{className:`split-list-detail grid min-h-[100%] min-w-0 grid-cols-[minmax(0,310px)_minmax(0,1fr)] gap-[12px] overflow-x-hidden max-[900px]:grid-cols-1 max-[650px]:gap-[8px]`,children:[(0,K.jsxs)(A,{className:`selection-list [.config-layout_>_&]:max-h-[calc(100dvh_-_280px)] [.config-layout_>_&]:overflow-y-auto max-[900px]:max-h-[300px] min-h-0 overflow-auto`,children:[(0,K.jsx)(D,{title:o(`schedules:schedulesPage.taskQueue`)}),l.tasks.length?l.tasks.map(e=>(0,K.jsx)(`div`,{className:`schedule-list-item hover:bg-[var(--accent-soft)] [&.active]:bg-[var(--accent-soft)] [&_>_button]:grid [&_>_button]:min-w-0 [&_>_button]:min-h-[68px] [&_>_button]:grid-cols-[minmax(0,1fr)_auto] [&_>_button]:items-center [&_>_button]:gap-[8px] [&_>_button]:border-0 [&_>_button]:bg-transparent [&_>_button]:p-[6px_2px] [&_>_button]:text-left [&_>_button_>_span]:flex [&_>_button_>_span]:min-w-0 [&_>_button_>_span]:flex-col [&_>_button_>_span]:gap-[5px] [&_strong]:overflow-hidden [&_strong]:text-ellipsis [&_strong]:whitespace-nowrap [&_small]:overflow-hidden [&_small]:text-ellipsis [&_small]:whitespace-nowrap [&_strong]:text-[13px] [&_small]:text-[var(--text-muted)] [&_small]:text-[13px] [&_em]:flex [&_em]:items-center [&_em]:gap-[4px] [&_em]:text-[var(--text-muted)] [&_em]:text-[13px] [&_em]:[font-style:normal] grid grid-cols-[minmax(0,1fr)_auto] items-center gap-[5px] [border-top:1px_solid_var(--stroke-soft)] rounded-[var(--r-sm)] [padding:3px_5px] ${p===e.id?`active`:``}`,children:(0,K.jsxs)(`button`,{onClick:()=>g(e.id),children:[(0,K.jsxs)(`span`,{children:[(0,K.jsxs)(`div`,{className:`schedule-item-head [.schedule-list-item_&]:flex [.schedule-list-item_&]:min-w-0 [.schedule-list-item_&]:items-center [.schedule-list-item_&]:gap-[6px] [.schedule-list-item_&_strong]:flex-1 [.schedule-list-item_&_strong]:min-w-0`,children:[(0,K.jsx)(`strong`,{children:e.name}),(0,K.jsx)(E,{tone:e.enabled?`green`:`gray`,children:e.enabled?o(`schedules:schedulesPage.enabled`):o(`schedules:schedulesPage.pause`)})]}),(0,K.jsx)(`small`,{children:e.targetType===`workflow`?Q.find(t=>t.id===e.workflowId)?.name||o(`schedules:schedulesPage.workflowUnavailable`):e.prompt})]}),(0,K.jsx)(`em`,{children:G(e,c)})]})},e.id)):(0,K.jsxs)(`div`,{className:`channel-route-empty [&_strong]:mt-[9px] [&_strong]:text-[var(--text)] [&_strong]:text-[12px] [&_span]:mt-[4px] [&_span]:text-[13px] [&.compact]:min-h-[110px] [.workflow-assets-panel_&]:min-h-[150px] [.workflow-assets-panel_&]:border-0 [.workflow-assets-panel_&]:bg-transparent grid min-h-[185px] place-content-center justify-items-center text-[var(--text-muted)] text-center`,children:[(0,K.jsx)(M,{size:38}),(0,K.jsx)(`strong`,{children:o(`schedules:schedulesPage.theTimelineIsStillUnlit`)}),(0,K.jsx)(`span`,{children:o(`schedules:schedulesPage.createATaskAndLetItSetOutAutomaticallyAtTheAppointedTime`)})]})]}),Z&&y?(0,K.jsxs)(`div`,{className:`detail-stack flex min-w-0 flex-col gap-[12px] [.mcp-layout_>_&]:min-h-0 max-[1150px]:[.memory-layout_>_&]:[grid-column:1/-1] max-[1150px]:[.memory-layout_>_&]:grid max-[1150px]:[.memory-layout_>_&]:grid-cols-[repeat(2,minmax(0,1fr))] max-[1150px]:[.mcp-layout_>_&]:[grid-column:1/-1] max-[1150px]:[.mcp-layout_>_&]:grid max-[1150px]:[.mcp-layout_>_&]:grid-cols-[repeat(2,minmax(0,1fr))] max-[1150px]:[.skills-layout_>_&]:[grid-column:1/-1] max-[1150px]:[.skills-layout_>_&]:grid max-[1150px]:[.skills-layout_>_&]:grid-cols-[repeat(2,minmax(0,1fr))] max-[650px]:[.memory-layout_>_&]:[grid-column:auto] max-[650px]:[.memory-layout_>_&]:grid-cols-[1fr] max-[650px]:[.mcp-layout_>_&]:[grid-column:auto] max-[650px]:[.mcp-layout_>_&]:grid-cols-[1fr] max-[650px]:[.skills-layout_>_&]:[grid-column:auto] max-[650px]:[.skills-layout_>_&]:grid-cols-[1fr]`,children:[(0,K.jsxs)(A,{children:[(0,K.jsxs)(ee,{className:`max-[650px]:flex-wrap max-[650px]:items-start`,children:[(0,K.jsx)(`h2`,{className:`min-w-0 break-words`,children:y.name}),(0,K.jsxs)(`div`,{className:`flex min-w-0 flex-wrap items-center gap-[5px] max-[650px]:w-full`,children:[(0,K.jsx)(k,{value:y.enabled,onChange:e=>$({enabled:e}),ariaLabel:y.name}),(0,K.jsxs)(v,{size:`lg`,disabled:j||Z.lastStatus===`running`,onClick:async()=>{if(Z){z(!0),H(``);try{await _(`/api/schedules/${encodeURIComponent(Z.id)}/run`,{method:`POST`,body:`{}`}),await X(),e(o(`schedules:schedulesPage.scheduledTaskStarted`))}catch(e){H(e instanceof Error?e.message:String(e))}finally{z(!1)}}},children:[Z.lastStatus===`running`?(0,K.jsx)(f,{className:`animate-spin`,size:14}):(0,K.jsx)(u,{size:14}),Z.lastStatus===`running`?o(`schedules:schedulesPage.running`):o(`schedules:schedulesPage.runNow`)]}),(0,K.jsx)(v,{variant:`destructive`,size:`icon`,title:o(`schedules:schedulesPage.deleteTask`),"aria-label":o(`schedules:schedulesPage.deleteTask`),onClick:async()=>{if(Z&&await n({title:o(`schedules:schedulesPage.deleteScheduledTask`),message:o(`schedules:schedulesPage.deleteScheduledTaskNameAndItsRunHistory`,{name:Z.name}),confirmLabel:o(`schedules:schedulesPage.delete`)}))try{await _(`/api/schedules/${encodeURIComponent(Z.id)}`,{method:`DELETE`}),await X(),e(o(`schedules:schedulesPage.scheduledTaskDeleted`))}catch(e){H(e instanceof Error?e.message:String(e))}},children:(0,K.jsx)(m,{size:14})})]})]}),(0,K.jsx)(J,{targetType:y.targetType,prompt:y.prompt,workflowId:y.workflowId,workflowInputs:y.workflowInputs,workflows:Q,onChange:$}),y.targetType===`prompt`&&(0,K.jsx)(Y,{value:y.cwd,onChange:e=>$({cwd:e})}),(0,K.jsxs)(`div`,{className:`form-grid grid gap-[9px] three [.form-grid&]:grid-cols-[repeat(3,minmax(0,1fr))] max-[650px]:[.form-grid&]:grid-cols-[1fr]`,children:[(0,K.jsxs)(C,{variant:`control`,children:[o(`schedules:schedulesPage.frequency`),(0,K.jsx)(i,{value:y.frequency,onChange:e=>$({frequency:e.target.value}),children:Object.keys(I).map(e=>(0,K.jsx)(`option`,{value:e,children:te(e,o)},e))})]}),y.frequency===`interval`?(0,K.jsxs)(C,{variant:`control`,children:[o(`schedules:schedulesPage.runInterval`),(0,K.jsxs)(`span`,{className:`schedule-interval-input [&_input]:w-full [&_input]:min-w-0 [&_input]:h-full [&_input]:border-0 [&_input]:[outline:0] [&_input]:bg-transparent [&_input]:p-[0_9px] [&_input]:text-[var(--text)] [&_select]:h-full [&_select]:border-0 [&_select]:[border-left:1px_solid_var(--stroke)] [&_select]:[outline:0] [&_select]:bg-[var(--solid)] [&_select]:p-[0_8px] [&_select]:text-[var(--text-tertiary)] [&_select]:text-[12px] [&_[data-slot='select-trigger']]:w-auto [&_[data-slot='select-trigger']]:min-w-[74px] [&_[data-slot='select-trigger']]:[border-left:1px_solid_var(--stroke)] [&_[data-slot='select-trigger']]:rounded-[0] [&_[data-slot='select-trigger']]:bg-[var(--solid)] [&_[data-slot='select-trigger']]:text-[var(--text-tertiary)] grid h-[31px] grid-cols-[minmax(0,1fr)_auto] overflow-hidden [border:1px_solid_var(--stroke)] rounded-[var(--r-xs)] bg-[var(--surface-subtle)]`,children:[(0,K.jsx)(`input`,{type:`number`,min:`1`,value:y.intervalValue,onChange:e=>$({intervalValue:Number(e.target.value)})}),(0,K.jsx)(i,{value:y.intervalUnit,onChange:e=>$({intervalUnit:e.target.value}),children:Object.keys(L).map(e=>(0,K.jsx)(`option`,{value:e,children:ne(e,o)},e))})]})]}):(0,K.jsxs)(C,{variant:`control`,children:[o(`schedules:schedulesPage.time`),(0,K.jsx)(`input`,{type:`time`,value:y.time,onChange:e=>$({time:e.target.value})})]}),(0,K.jsxs)(C,{variant:`control`,children:[o(`schedules:schedulesPage.timeZone`),(0,K.jsx)(i,{value:y.timezone,onChange:e=>$({timezone:e.target.value}),children:R.map(e=>(0,K.jsx)(`option`,{value:e,children:e},e))})]}),y.targetType===`prompt`&&(0,K.jsx)(q,{value:y.executionMode,onChange:e=>$({executionMode:e})})]}),(0,K.jsx)(D,{title:o(`schedules:schedulesPage.notifications`)}),(0,K.jsx)(`div`,{className:`notification-grid [&_>_label]:[&.on]:bg-[var(--accent-soft)] [&_>_label]:[&.on]:border-[var(--accent)] [&_>_label]:[&.on]:text-[var(--accent)] grid gap-[6px] grid-cols-[repeat(2,minmax(0,1fr))] max-[650px]:grid-cols-[1fr]`,children:Object.entries(l.notificationTargets).map(([e,t])=>{let{Icon:n}=F[e]||F.browser,r=y.notifications.includes(e);return(0,K.jsxs)(`button`,{className:`notification-chip [&.on]:border-[var(--accent)] [&.on]:bg-[var(--accent-soft)] [&.on]:text-[var(--accent)] flex items-center gap-[7px] [border:1px_solid_var(--stroke)] rounded-[var(--r-sm)] [padding:7px_10px] text-[13px] transition-colors ${r?`on`:``}`,onClick:()=>ce(e),disabled:!t.enabled,children:[(0,K.jsx)(n,{size:14}),V(e,o),!t.enabled&&(0,K.jsx)(`small`,{className:`text-[var(--text-muted)] text-[11px] ml-auto`,children:o(`schedules:schedulesPage.unconfigured`)})]},e)})}),y.notifications.length>0&&(0,K.jsxs)(C,{variant:`control`,children:[o(`schedules:schedulesPage.notifyOn`),(0,K.jsxs)(i,{value:y.notifyOn,onChange:e=>$({notifyOn:e.target.value}),children:[(0,K.jsx)(`option`,{value:`always`,children:o(`schedules:schedulesPage.onCompletionAndFailure`)}),(0,K.jsx)(`option`,{value:`failure`,children:o(`schedules:schedulesPage.onFailureOnly`)})]})]}),(0,K.jsx)(`div`,{className:`[margin-top:10px]`,children:(0,K.jsxs)(v,{size:`lg`,disabled:j||!U(y.targetType,y.prompt,y.workflowId,y.workflowInputs,Q),onClick:async()=>{if(!(!Z||!y)){z(!0),H(``);try{let t=await _(`/api/schedules/${encodeURIComponent(Z.id)}`,{method:`PATCH`,body:JSON.stringify(y)});d(t.state),b(W(t.task)),e(o(`schedules:schedulesPage.scheduledTaskSaved`))}catch(e){H(e instanceof Error?e.message:String(e))}finally{z(!1)}}},children:[j?(0,K.jsx)(f,{className:`animate-spin`,size:14}):null,o(j?`schedules:schedulesPage.saving`:`schedules:schedulesPage.saveTask`)]})})]}),(0,K.jsxs)(A,{children:[(0,K.jsx)(D,{title:o(`schedules:schedulesPage.recentRuns`)}),se.length?se.map(e=>(0,K.jsxs)(`div`,{className:`schedule-run-row [&_>_svg]:text-[var(--text-muted)] [&.completed_>_svg]:text-[var(--success)] [&.failed_>_svg]:text-[var(--danger)] [&.running_>_svg]:text-[var(--star-strong)] [&_>_span]:flex [&_>_span]:min-w-0 [&_>_span]:flex-col [&_>_span]:gap-[4px] [&_strong]:[display:-webkit-box] [&_strong]:overflow-hidden [&_strong]:text-[12px] [&_strong]:leading-[1.4] [&_strong]:[-webkit-box-orient:vertical] [&_strong]:[-webkit-line-clamp:2] [&_small]:text-[var(--text-muted)] [&_small]:text-[13px] [&_a]:text-[var(--text-soft)] [&_a]:text-[13px] [&_a]:[text-decoration:underline] [&_a]:[text-underline-offset:2px] [&_>_em]:text-[var(--text-secondary)] [&_>_em]:text-[12px] [&_>_em]:[font-style:normal] [&_>_em]:whitespace-nowrap grid grid-cols-[auto_minmax(0,1fr)_auto] items-center gap-[9px] [border-top:1px_solid_var(--stroke-soft)] [padding:10px_2px] ${e.status}`,children:[e.status===`running`?(0,K.jsx)(f,{className:`animate-spin`,size:15}):e.status===`completed`?(0,K.jsx)(s,{size:15}):(0,K.jsx)(h,{size:15}),(0,K.jsxs)(`span`,{children:[(0,K.jsx)(`strong`,{children:e.status===`running`?o(`schedules:schedulesPage.running2`):e.status===`completed`?e.summary||o(`schedules:schedulesPage.taskCompleted`):e.status===`interrupted`?o(`schedules:schedulesPage.taskInterrupted`):e.error||o(`schedules:schedulesPage.taskFailed`)}),(0,K.jsxs)(`small`,{children:[w(e.startedAt,c),` ·`,` `,e.trigger===`manual`?o(`schedules:schedulesPage.manualRun`):o(`schedules:schedulesPage.scheduledTrigger`),e.durationMs?` · ${o(`schedules:schedulesPage.countSec`,{count:Math.round(e.durationMs/1e3)})}`:``]})]}),(0,K.jsx)(`em`,{children:new Intl.DateTimeFormat(c,{hour:`2-digit`,minute:`2-digit`}).format(new Date(e.startedAt))})]},e.id)):(0,K.jsxs)(`div`,{className:`channel-route-empty [&_strong]:mt-[9px] [&_strong]:text-[var(--text)] [&_strong]:text-[12px] [&_span]:mt-[4px] [&_span]:text-[13px] [&.compact]:min-h-[110px] [.workflow-assets-panel_&]:min-h-[150px] [.workflow-assets-panel_&]:border-0 [.workflow-assets-panel_&]:bg-transparent grid min-h-[185px] place-content-center justify-items-center text-[var(--text-muted)] text-center compact`,children:[(0,K.jsx)(M,{size:32}),(0,K.jsx)(`strong`,{children:o(`schedules:schedulesPage.noRunHistory`)})]})]})]}):(0,K.jsx)(ie,{notificationTargets:l.notificationTargets,workflows:Q,defaultCwd:l.defaultCwd,onCreated:t=>{d(t.state),g(t.task.id),e(o(`schedules:schedulesPage.scheduledTaskCreated`))}})]}),ae&&(0,K.jsx)(re,{notificationTargets:l.notificationTargets,workflows:Q,defaultCwd:l.defaultCwd,onClose:()=>oe(!1),onCreated:t=>{oe(!1),d(t.state),g(t.task.id),e(o(`schedules:schedulesPage.scheduledTaskCreated`))}})]})}export{ae as SchedulesPage};
|
|
1
|
+
import{a as e}from"./rolldown-runtime-B0Z9INg1.js";import{i as t,r as n}from"./vendor-react-DwNgTV1j.js";import{t as r}from"./use-i18n-BSZKFkMb.js";import{t as i}from"./AppSelect-D149YYg1.js";import{t as a}from"./bell-BjONAtgH.js";import{t as o}from"./bot-B3TaBp_T.js";import{t as s}from"./circle-check-iEdCm3Pw.js";import{t as c}from"./folder-open-FIShC5Qk.js";import{t as l}from"./message-circle-D-XrK6Ft.js";import{t as u}from"./play-DNDjDNGn.js";import{t as d}from"./plus-fQbSqB1n.js";import{t as f}from"./refresh-cw-TbWxTY4K.js";import{t as p}from"./send-Cj-W03w_.js";import{t as m}from"./trash-2-CNrPOoPR.js";import{t as h}from"./triangle-alert-CE1q54ci.js";import{t as g}from"./x-07u4-129.js";import{t as _}from"./api-Dzobr-o_.js";import{t as v}from"./button-CQA36izu.js";import{i as y,r as b,s as x,t as S}from"./dialog-D-ER2p-D.js";import{t as C}from"./field-3bN8nouy.js";import{r as w}from"./format-BRFKAYMT.js";import{i as T,l as E,n as ee,o as D,r as O,s as k,t as A}from"./app-primitives-BBXY6U2S.js";import{n as j}from"./pick-system-directory-R1F5WyaB.js";import{t as M}from"./StarOrbit-BAAjh-hY.js";import{t as N}from"./usePagePrimaryAction-CWPC0C_f.js";var P=e(t(),1),F={browser:{name:`通知`,Icon:a},feishu:{name:`飞书`,Icon:o},weixin:{name:`微信`,Icon:l},qq:{name:`QQ`,Icon:l},telegram:{name:`Telegram`,Icon:p}},I={interval:`每隔一段时间`,daily:`每天`,weekly:`每周`,monthly:`每月`},L={minutes:`分钟`,hours:`小时`,days:`天`},R=[...new Set([`Asia/Hong_Kong`,`UTC`,...typeof Intl.supportedValuesOf==`function`?Intl.supportedValuesOf(`timeZone`):[]])],z=[`full-access`];function B(e){return e(`schedules:schedulesPage.fullAccessHelp`)}function te(e,t){return{interval:t(`schedules:schedulesPage.atIntervals`),daily:t(`schedules:schedulesPage.daily`),weekly:t(`schedules:schedulesPage.weekly`),monthly:t(`schedules:schedulesPage.monthly`)}[e]}function ne(e,t){return{minutes:t(`schedules:schedulesPage.minutes`),hours:t(`schedules:schedulesPage.hours`),days:t(`schedules:schedulesPage.days`)}[e]}function V(e,t){return{browser:t(`schedules:schedulesPage.browserNotifications`),feishu:`飞书`,weixin:`微信`,qq:`QQ`,telegram:`Telegram`}[e]}function H(e){let t={};if(!e)return t;for(let n of e.inputs)t[n.name]=n.defaultValue;return t}function U(e,t,n,r,i){if(e===`prompt`)return!!t.trim();if(!n)return!1;let a=i.find(e=>e.id===n);return a?a.inputs.filter(e=>e.required).every(e=>{let t=r[e.name];return t!=null&&String(t).trim()!==``}):!1}function W(e){let{nextRunAt:t,lastRunAt:n,lastStatus:r,...i}=e;return i}function G(e,t=`zh-CN`){if(!e.nextRunAt)return null;try{return new Intl.DateTimeFormat(t,{month:`short`,day:`numeric`,hour:`2-digit`,minute:`2-digit`}).format(new Date(e.nextRunAt))}catch{return null}}var K=n();function q({value:e,onChange:t}){let{t:n}=r();return(0,K.jsxs)(C,{variant:`control`,children:[n(`schedules:schedulesPage.executionMode`),(0,K.jsx)(i,{value:e,onChange:e=>t(e.target.value),children:z.map(e=>(0,K.jsx)(`option`,{value:e,children:n(`schedules:schedulesPage.fullAccess`)},e))}),(0,K.jsx)(`small`,{children:B(n)})]})}function J({targetType:e,prompt:t,workflowId:n,workflowInputs:a,workflows:o,onChange:s}){let{t:c}=r(),l=o.find(e=>e.id===n);return(0,K.jsxs)(`div`,{className:`grid gap-[10px]`,children:[(0,K.jsxs)(C,{variant:`control`,children:[c(`schedules:schedulesPage.executionTarget`),(0,K.jsxs)(i,{value:e,onChange:e=>{let t=e.target.value,r=o[0];s(t===`workflow`?{targetType:t,workflowId:n||r?.id||``,workflowInputs:n?a:H(r)}:{targetType:t})},children:[(0,K.jsx)(`option`,{value:`prompt`,children:`Prompt`}),(0,K.jsx)(`option`,{value:`workflow`,children:c(`schedules:schedulesPage.workflow`)})]})]}),e===`prompt`?(0,K.jsxs)(C,{variant:`control`,children:[`Prompt`,(0,K.jsx)(`textarea`,{value:t,onChange:e=>s({prompt:e.target.value}),placeholder:c(`schedules:schedulesPage.describeTheWorkTheAgentShouldCompleteEachTime`)})]}):(0,K.jsxs)(K.Fragment,{children:[(0,K.jsxs)(C,{variant:`control`,children:[c(`schedules:schedulesPage.workflow`),(0,K.jsxs)(i,{value:n,onChange:e=>{let t=o.find(t=>t.id===e.target.value);s({workflowId:e.target.value,workflowInputs:H(t)})},children:[(0,K.jsx)(`option`,{value:``,children:c(`schedules:schedulesPage.selectPublishedWorkflow`)}),o.map(e=>(0,K.jsxs)(`option`,{value:e.id,children:[e.name,` · v`,e.revision]},e.id))]}),(0,K.jsx)(`small`,{children:l?.description||(o.length?c(`schedules:schedulesPage.workflowUsesItsOwnRuntimeSettings`):c(`schedules:schedulesPage.noPublishedWorkflows`))})]}),l?.inputs.length?(0,K.jsxs)(`div`,{className:`grid gap-[8px]`,children:[(0,K.jsxs)(`div`,{className:`schedule-workflow-inputs-heading [&_strong]:text-[12px] [&_small]:text-[var(--text-muted)] [&_small]:text-[11px] [&_small]:text-right max-[650px]:items-start max-[650px]:flex-col max-[650px]:gap-[2px] max-[650px]:[&_small]:text-left flex [align-items:baseline] justify-between gap-[12px]`,children:[(0,K.jsx)(`strong`,{children:c(`schedules:schedulesPage.workflowInputs`)}),(0,K.jsx)(`small`,{children:c(`schedules:schedulesPage.workflowInputsHelp`)})]}),(0,K.jsx)(`div`,{className:`schedule-workflow-inputs [&_input[type='checkbox']]:w-[16px] [&_input[type='checkbox']]:h-[16px] [&_input[type='checkbox']]:[justify-self:end] max-[650px]:grid-cols-[1fr] grid grid-cols-[repeat(2,minmax(0,1fr))] gap-[8px]`,children:l.inputs.map(e=>(0,K.jsxs)(C,{variant:`control`,className:e.type===`boolean`?`grid grid-cols-[minmax(0,1fr)_auto] items-center`:void 0,children:[e.label,e.required?` *`:``,e.type===`boolean`?(0,K.jsx)(`input`,{type:`checkbox`,checked:!!a[e.name],onChange:t=>s({workflowInputs:{...a,[e.name]:t.target.checked}})}):(0,K.jsx)(`input`,{type:e.type===`number`?`number`:`text`,required:e.required,value:String(a[e.name]??``),onChange:t=>s({workflowInputs:{...a,[e.name]:t.target.value}})}),e.description&&(0,K.jsx)(`small`,{children:e.description})]},e.id))})]}):null]})]})}function Y({value:e,onChange:t}){let{t:n}=r(),[i,a]=(0,P.useState)(``),[o,s]=(0,P.useState)(!1),l=async()=>{a(``),s(!0);try{let n=await j(e);n&&t(n)}catch(e){a(e instanceof Error?e.message:String(e))}finally{s(!1)}};return(0,K.jsxs)(K.Fragment,{children:[(0,K.jsxs)(C,{variant:`control`,children:[n(`schedules:schedulesPage.workingDirectory`),(0,K.jsxs)(`span`,{className:`schedule-workspace-input [&_input]:min-w-0 [&_input]:font-[ui-monospace,_SFMono-Regular,_Consolas,_'Liberation_Mono',_monospace] grid grid-cols-[minmax(0,1fr)_auto] gap-[6px]`,children:[(0,K.jsx)(`input`,{value:e,onChange:e=>t(e.target.value),placeholder:n(`schedules:schedulesPage.enterTheProjectSAbsolutePath`)}),(0,K.jsxs)(v,{type:`button`,variant:`outline`,size:`lg`,className:`bg-surface-subtle`,disabled:o,onClick:()=>void l(),children:[(0,K.jsx)(c,{size:13}),n(`schedules:schedulesPage.browseDirectories`)]})]}),(0,K.jsx)(`small`,{children:n(`schedules:schedulesPage.theScheduledAgentWillRunInThisDirectory`)})]}),i&&(0,K.jsxs)(T,{children:[(0,K.jsx)(h,{size:13}),i]})]})}function re({notificationTargets:e,workflows:t,defaultCwd:n,onClose:i,onCreated:a}){let{t:o}=r(),[s,c]=(0,P.useState)(``),[l,u]=(0,P.useState)(`prompt`),[p,m]=(0,P.useState)(``),[w,E]=(0,P.useState)(``),[D,O]=(0,P.useState)({}),[k,A]=(0,P.useState)(n||``),[j,M]=(0,P.useState)(`full-access`),[N,F]=(0,P.useState)(!1),I=(0,P.useRef)(!1),L=(0,P.useRef)(null),[R]=(0,P.useState)(()=>document.activeElement instanceof HTMLElement?document.activeElement:null),[z,B]=(0,P.useState)(``);return(0,K.jsx)(S,{open:!0,onOpenChange:e=>{!e&&!I.current&&i()},children:(0,K.jsx)(b,{className:`z-[71] block bg-[var(--solid)] p-[18px] sm:max-w-[430px]`,overlayClassName:`z-[70] bg-[var(--modal-overlay)] backdrop-blur-sm`,showCloseButton:!1,onOpenAutoFocus:e=>{e.preventDefault(),L.current?.focus()},onCloseAutoFocus:e=>{e.preventDefault(),R?.focus()},children:(0,K.jsxs)(`form`,{className:`space-y-3`,onSubmit:async n=>{if(n.preventDefault(),!(I.current||!s.trim()||!U(l,p,w,D,t))){I.current=!0,F(!0),B(``);try{let t=Object.entries(e).filter(([,e])=>e.enabled).map(([e])=>e);a(await _(`/api/schedules`,{method:`POST`,body:JSON.stringify({name:s,targetType:l,prompt:p,workflowId:w,workflowInputs:D,cwd:k,enabled:!0,frequency:`daily`,time:`09:00`,timezone:`Asia/Hong_Kong`,executionMode:j,notifications:t,notifyOn:`always`})}))}catch(e){B(e instanceof Error?e.message:String(e))}finally{I.current=!1,F(!1)}}},children:[(0,K.jsxs)(ee,{children:[(0,K.jsxs)(`div`,{children:[(0,K.jsx)(x,{children:o(`schedules:schedulesPage.newScheduledTask`)}),(0,K.jsx)(y,{children:o(`schedules:schedulesPage.youCanContinueSettingTheRunTimeAndNotificationChannelsAfterCreation`)})]}),(0,K.jsx)(v,{type:`button`,variant:`ghost`,size:`icon`,"aria-label":o(`schedules:schedulesPage.closeDialog`),disabled:N,onClick:i,children:(0,K.jsx)(g,{size:17})})]}),(0,K.jsxs)(C,{variant:`control`,children:[o(`schedules:schedulesPage.taskName`),(0,K.jsx)(`input`,{ref:L,value:s,onChange:e=>c(e.target.value),placeholder:o(`schedules:schedulesPage.forExampleDailyCodeReview`)})]}),(0,K.jsx)(J,{targetType:l,prompt:p,workflowId:w,workflowInputs:D,workflows:t,onChange:e=>{e.targetType&&u(e.targetType),e.prompt!==void 0&&m(e.prompt),e.workflowId!==void 0&&E(e.workflowId),e.workflowInputs!==void 0&&O(e.workflowInputs)}}),l===`prompt`&&(0,K.jsxs)(K.Fragment,{children:[(0,K.jsx)(Y,{value:k,onChange:A}),(0,K.jsx)(q,{value:j,onChange:M})]}),z&&(0,K.jsxs)(T,{children:[(0,K.jsx)(h,{size:13}),z]}),(0,K.jsxs)(`div`,{className:`flex justify-end gap-[8px] [margin-top:18px]`,children:[(0,K.jsx)(v,{type:`button`,variant:`outline`,size:`lg`,className:`bg-surface-subtle`,disabled:N,onClick:i,children:o(`schedules:schedulesPage.cancel`)}),(0,K.jsxs)(v,{size:`lg`,disabled:N||!s.trim()||!U(l,p,w,D,t),children:[N?(0,K.jsx)(f,{className:`animate-spin`,size:14}):(0,K.jsx)(d,{size:14}),o(N?`schedules:schedulesPage.creating`:`schedules:schedulesPage.createTask`)]})]})]})})})}function ie({notificationTargets:e,workflows:t,defaultCwd:n,onCreated:a}){let{t:o}=r(),[s,c]=(0,P.useState)(``),[l,u]=(0,P.useState)(`prompt`),[p,m]=(0,P.useState)(``),[g,y]=(0,P.useState)(``),[b,x]=(0,P.useState)({}),[S,w]=(0,P.useState)(n||``),[E,D]=(0,P.useState)(`daily`),[O,k]=(0,P.useState)(`09:00`),[j,M]=(0,P.useState)(`Asia/Hong_Kong`),[N,F]=(0,P.useState)(1),[z,B]=(0,P.useState)(`hours`),[V,H]=(0,P.useState)(`full-access`),[W,G]=(0,P.useState)(!1),[re,ie]=(0,P.useState)(``);return(0,K.jsxs)(A,{children:[(0,K.jsx)(ee,{children:(0,K.jsxs)(`div`,{children:[(0,K.jsx)(`h2`,{children:o(`schedules:schedulesPage.newScheduledTask`)}),(0,K.jsx)(`p`,{children:o(`schedules:schedulesPage.youCanContinueEditingTheRunTimeAndNotificationChannelsAfterCreation`)})]})}),(0,K.jsxs)(C,{variant:`control`,children:[o(`schedules:schedulesPage.taskName`),(0,K.jsx)(`input`,{value:s,onChange:e=>c(e.target.value),placeholder:o(`schedules:schedulesPage.forExampleDailyCodeReview`)})]}),(0,K.jsx)(J,{targetType:l,prompt:p,workflowId:g,workflowInputs:b,workflows:t,onChange:e=>{e.targetType&&u(e.targetType),e.prompt!==void 0&&m(e.prompt),e.workflowId!==void 0&&y(e.workflowId),e.workflowInputs!==void 0&&x(e.workflowInputs)}}),l===`prompt`&&(0,K.jsx)(Y,{value:S,onChange:w}),(0,K.jsxs)(`div`,{className:`form-grid grid gap-[9px] three [.form-grid&]:grid-cols-[repeat(3,minmax(0,1fr))] max-[650px]:[.form-grid&]:grid-cols-[1fr]`,children:[(0,K.jsxs)(C,{variant:`control`,children:[o(`schedules:schedulesPage.frequency`),(0,K.jsx)(i,{value:E,onChange:e=>D(e.target.value),children:Object.keys(I).map(e=>(0,K.jsx)(`option`,{value:e,children:te(e,o)},e))})]}),E===`interval`?(0,K.jsxs)(C,{variant:`control`,children:[o(`schedules:schedulesPage.runInterval`),(0,K.jsxs)(`span`,{className:`schedule-interval-input [&_input]:w-full [&_input]:min-w-0 [&_input]:h-full [&_input]:border-0 [&_input]:[outline:0] [&_input]:bg-transparent [&_input]:p-[0_9px] [&_input]:text-[var(--text)] [&_select]:h-full [&_select]:border-0 [&_select]:[border-left:1px_solid_var(--stroke)] [&_select]:[outline:0] [&_select]:bg-[var(--solid)] [&_select]:p-[0_8px] [&_select]:text-[var(--text-tertiary)] [&_select]:text-[12px] [&_[data-slot='select-trigger']]:w-auto [&_[data-slot='select-trigger']]:min-w-[74px] [&_[data-slot='select-trigger']]:[border-left:1px_solid_var(--stroke)] [&_[data-slot='select-trigger']]:rounded-[0] [&_[data-slot='select-trigger']]:bg-[var(--solid)] [&_[data-slot='select-trigger']]:text-[var(--text-tertiary)] grid h-[31px] grid-cols-[minmax(0,1fr)_auto] overflow-hidden [border:1px_solid_var(--stroke)] rounded-[var(--r-xs)] bg-[var(--surface-subtle)]`,children:[(0,K.jsx)(`input`,{type:`number`,min:`1`,value:N,onChange:e=>F(Number(e.target.value))}),(0,K.jsx)(i,{value:z,onChange:e=>B(e.target.value),children:Object.keys(L).map(e=>(0,K.jsx)(`option`,{value:e,children:ne(e,o)},e))})]})]}):(0,K.jsxs)(C,{variant:`control`,children:[o(`schedules:schedulesPage.time`),(0,K.jsx)(`input`,{type:`time`,value:O,onChange:e=>k(e.target.value)})]}),(0,K.jsxs)(C,{variant:`control`,children:[o(`schedules:schedulesPage.timeZone`),(0,K.jsx)(i,{value:j,onChange:e=>M(e.target.value),children:R.map(e=>(0,K.jsx)(`option`,{value:e,children:e},e))})]}),l===`prompt`&&(0,K.jsx)(q,{value:V,onChange:H})]}),re&&(0,K.jsxs)(T,{children:[(0,K.jsx)(h,{size:13}),re]}),(0,K.jsxs)(`div`,{className:`form-footer [&_>_span]:text-[var(--text-muted)] [&_>_span]:text-[13px] flex items-center justify-between gap-[10px] [margin-top:10px]`,children:[(0,K.jsx)(`span`,{children:o(`schedules:schedulesPage.enabledAutomaticallyAfterCreation`)}),(0,K.jsxs)(v,{size:`lg`,disabled:W||!s.trim()||!U(l,p,g,b,t),onClick:async()=>{G(!0),ie(``);try{let t=Object.entries(e).filter(([,e])=>e.enabled).map(([e])=>e);a(await _(`/api/schedules`,{method:`POST`,body:JSON.stringify({name:s,targetType:l,prompt:p,workflowId:g,workflowInputs:b,cwd:S,enabled:!0,frequency:E,time:O,timezone:j,intervalValue:N,intervalUnit:z,executionMode:V,notifications:t,notifyOn:`always`})}))}catch(e){ie(e instanceof Error?e.message:String(e))}finally{G(!1)}},children:[W?(0,K.jsx)(f,{className:`animate-spin`,size:14}):(0,K.jsx)(d,{size:14}),o(W?`schedules:schedulesPage.creating`:`schedules:schedulesPage.createTask`)]})]})]})}function ae({notify:e,registerPrimaryAction:t,requestConfirm:n,openNotificationSettings:a}){let{t:o,language:c}=r(),[l,d]=(0,P.useState)({tasks:[],runs:[],notificationTargets:{browser:{enabled:!1},feishu:{enabled:!1},weixin:{enabled:!1},qq:{enabled:!1},telegram:{enabled:!1}},workflows:[],defaultCwd:``}),[p,g]=(0,P.useState)(``),[y,b]=(0,P.useState)(null),[x,S]=(0,P.useState)(!0),[j,z]=(0,P.useState)(!1),[B,H]=(0,P.useState)(``),[ae,oe]=(0,P.useState)(!1);N(t,()=>oe(!0));let X=(0,P.useCallback)(async()=>{try{let e=await _(`/api/schedules`);d(e),g(t=>e.tasks.some(e=>e.id===t)?t:e.tasks[0]?.id||``)}catch(e){H(e instanceof Error?e.message:String(e))}finally{S(!1)}},[]);(0,P.useEffect)(()=>{X()},[X]),(0,P.useEffect)(()=>{let e=window.setInterval(X,l.tasks.some(e=>e.lastStatus===`running`)?2e3:1e4);return()=>window.clearInterval(e)},[l.tasks,X]);let Z=l.tasks.find(e=>e.id===p),Q=l.workflows||[];(0,P.useEffect)(()=>{b(e=>Z?e?.id===Z.id?e:W(Z):null)},[Z]);let se=(0,P.useMemo)(()=>l.runs.filter(e=>e.taskId===p).sort((e,t)=>new Date(t.startedAt).getTime()-new Date(e.startedAt).getTime()).slice(0,20),[l.runs,p]),$=e=>b(t=>t&&{...t,...e}),ce=e=>{y&&$({notifications:y.notifications.includes(e)?y.notifications.filter(t=>t!==e):[...y.notifications,e]})};return x?(0,K.jsxs)(O,{children:[(0,K.jsx)(f,{className:`animate-spin`,size:23}),(0,K.jsx)(`h2`,{children:o(`schedules:schedulesPage.loadingScheduledTasks`)})]}):(0,K.jsxs)(K.Fragment,{children:[B&&(0,K.jsxs)(T,{children:[(0,K.jsx)(h,{size:13}),B]}),(0,K.jsxs)(`div`,{className:`split-list-detail grid min-h-[100%] min-w-0 grid-cols-[minmax(0,310px)_minmax(0,1fr)] gap-[12px] overflow-x-hidden max-[900px]:grid-cols-1 max-[650px]:gap-[8px]`,children:[(0,K.jsxs)(A,{className:`selection-list [.config-layout_>_&]:max-h-[calc(100dvh_-_280px)] [.config-layout_>_&]:overflow-y-auto max-[900px]:max-h-[300px] min-h-0 overflow-auto`,children:[(0,K.jsx)(D,{title:o(`schedules:schedulesPage.taskQueue`)}),l.tasks.length?l.tasks.map(e=>(0,K.jsx)(`div`,{className:`schedule-list-item hover:bg-[var(--accent-soft)] [&.active]:bg-[var(--accent-soft)] [&_>_button]:grid [&_>_button]:min-w-0 [&_>_button]:min-h-[68px] [&_>_button]:grid-cols-[minmax(0,1fr)_auto] [&_>_button]:items-center [&_>_button]:gap-[8px] [&_>_button]:border-0 [&_>_button]:bg-transparent [&_>_button]:p-[6px_2px] [&_>_button]:text-left [&_>_button_>_span]:flex [&_>_button_>_span]:min-w-0 [&_>_button_>_span]:flex-col [&_>_button_>_span]:gap-[5px] [&_strong]:overflow-hidden [&_strong]:text-ellipsis [&_strong]:whitespace-nowrap [&_small]:overflow-hidden [&_small]:text-ellipsis [&_small]:whitespace-nowrap [&_strong]:text-[13px] [&_small]:text-[var(--text-muted)] [&_small]:text-[13px] [&_em]:flex [&_em]:items-center [&_em]:gap-[4px] [&_em]:text-[var(--text-muted)] [&_em]:text-[13px] [&_em]:[font-style:normal] grid grid-cols-[minmax(0,1fr)_auto] items-center gap-[5px] [border-top:1px_solid_var(--stroke-soft)] rounded-[var(--r-sm)] [padding:3px_5px] ${p===e.id?`active`:``}`,children:(0,K.jsxs)(`button`,{onClick:()=>g(e.id),children:[(0,K.jsxs)(`span`,{children:[(0,K.jsxs)(`div`,{className:`schedule-item-head [.schedule-list-item_&]:flex [.schedule-list-item_&]:min-w-0 [.schedule-list-item_&]:items-center [.schedule-list-item_&]:gap-[6px] [.schedule-list-item_&_strong]:flex-1 [.schedule-list-item_&_strong]:min-w-0`,children:[(0,K.jsx)(`strong`,{children:e.name}),(0,K.jsx)(E,{tone:e.enabled?`green`:`gray`,children:e.enabled?o(`schedules:schedulesPage.enabled`):o(`schedules:schedulesPage.pause`)})]}),(0,K.jsx)(`small`,{children:e.targetType===`workflow`?Q.find(t=>t.id===e.workflowId)?.name||o(`schedules:schedulesPage.workflowUnavailable`):e.prompt})]}),(0,K.jsx)(`em`,{children:G(e,c)})]})},e.id)):(0,K.jsxs)(`div`,{className:`channel-route-empty [&_strong]:mt-[9px] [&_strong]:text-[var(--text)] [&_strong]:text-[12px] [&_span]:mt-[4px] [&_span]:text-[13px] [&.compact]:min-h-[110px] [.workflow-assets-panel_&]:min-h-[150px] [.workflow-assets-panel_&]:border-0 [.workflow-assets-panel_&]:bg-transparent grid min-h-[185px] place-content-center justify-items-center text-[var(--text-muted)] text-center`,children:[(0,K.jsx)(M,{size:38}),(0,K.jsx)(`strong`,{children:o(`schedules:schedulesPage.theTimelineIsStillUnlit`)}),(0,K.jsx)(`span`,{children:o(`schedules:schedulesPage.createATaskAndLetItSetOutAutomaticallyAtTheAppointedTime`)})]})]}),Z&&y?(0,K.jsxs)(`div`,{className:`detail-stack flex min-w-0 flex-col gap-[12px] [.mcp-layout_>_&]:min-h-0 max-[1150px]:[.memory-layout_>_&]:[grid-column:1/-1] max-[1150px]:[.memory-layout_>_&]:grid max-[1150px]:[.memory-layout_>_&]:grid-cols-[repeat(2,minmax(0,1fr))] max-[1150px]:[.mcp-layout_>_&]:[grid-column:1/-1] max-[1150px]:[.mcp-layout_>_&]:grid max-[1150px]:[.mcp-layout_>_&]:grid-cols-[repeat(2,minmax(0,1fr))] max-[1150px]:[.skills-layout_>_&]:[grid-column:1/-1] max-[1150px]:[.skills-layout_>_&]:grid max-[1150px]:[.skills-layout_>_&]:grid-cols-[repeat(2,minmax(0,1fr))] max-[650px]:[.memory-layout_>_&]:[grid-column:auto] max-[650px]:[.memory-layout_>_&]:grid-cols-[1fr] max-[650px]:[.mcp-layout_>_&]:[grid-column:auto] max-[650px]:[.mcp-layout_>_&]:grid-cols-[1fr] max-[650px]:[.skills-layout_>_&]:[grid-column:auto] max-[650px]:[.skills-layout_>_&]:grid-cols-[1fr]`,children:[(0,K.jsxs)(A,{children:[(0,K.jsxs)(ee,{className:`max-[650px]:flex-wrap max-[650px]:items-start`,children:[(0,K.jsx)(`h2`,{className:`min-w-0 break-words`,children:y.name}),(0,K.jsxs)(`div`,{className:`flex min-w-0 flex-wrap items-center gap-[5px] max-[650px]:w-full`,children:[(0,K.jsx)(k,{value:y.enabled,onChange:e=>$({enabled:e}),ariaLabel:y.name}),(0,K.jsxs)(v,{size:`lg`,disabled:j||Z.lastStatus===`running`,onClick:async()=>{if(Z){z(!0),H(``);try{await _(`/api/schedules/${encodeURIComponent(Z.id)}/run`,{method:`POST`,body:`{}`}),await X(),e(o(`schedules:schedulesPage.scheduledTaskStarted`))}catch(e){H(e instanceof Error?e.message:String(e))}finally{z(!1)}}},children:[Z.lastStatus===`running`?(0,K.jsx)(f,{className:`animate-spin`,size:14}):(0,K.jsx)(u,{size:14}),Z.lastStatus===`running`?o(`schedules:schedulesPage.running`):o(`schedules:schedulesPage.runNow`)]}),(0,K.jsx)(v,{variant:`destructive`,size:`icon`,title:o(`schedules:schedulesPage.deleteTask`),"aria-label":o(`schedules:schedulesPage.deleteTask`),onClick:async()=>{if(Z&&await n({title:o(`schedules:schedulesPage.deleteScheduledTask`),message:o(`schedules:schedulesPage.deleteScheduledTaskNameAndItsRunHistory`,{name:Z.name}),confirmLabel:o(`schedules:schedulesPage.delete`)}))try{await _(`/api/schedules/${encodeURIComponent(Z.id)}`,{method:`DELETE`}),await X(),e(o(`schedules:schedulesPage.scheduledTaskDeleted`))}catch(e){H(e instanceof Error?e.message:String(e))}},children:(0,K.jsx)(m,{size:14})})]})]}),(0,K.jsx)(J,{targetType:y.targetType,prompt:y.prompt,workflowId:y.workflowId,workflowInputs:y.workflowInputs,workflows:Q,onChange:$}),y.targetType===`prompt`&&(0,K.jsx)(Y,{value:y.cwd,onChange:e=>$({cwd:e})}),(0,K.jsxs)(`div`,{className:`form-grid grid gap-[9px] three [.form-grid&]:grid-cols-[repeat(3,minmax(0,1fr))] max-[650px]:[.form-grid&]:grid-cols-[1fr]`,children:[(0,K.jsxs)(C,{variant:`control`,children:[o(`schedules:schedulesPage.frequency`),(0,K.jsx)(i,{value:y.frequency,onChange:e=>$({frequency:e.target.value}),children:Object.keys(I).map(e=>(0,K.jsx)(`option`,{value:e,children:te(e,o)},e))})]}),y.frequency===`interval`?(0,K.jsxs)(C,{variant:`control`,children:[o(`schedules:schedulesPage.runInterval`),(0,K.jsxs)(`span`,{className:`schedule-interval-input [&_input]:w-full [&_input]:min-w-0 [&_input]:h-full [&_input]:border-0 [&_input]:[outline:0] [&_input]:bg-transparent [&_input]:p-[0_9px] [&_input]:text-[var(--text)] [&_select]:h-full [&_select]:border-0 [&_select]:[border-left:1px_solid_var(--stroke)] [&_select]:[outline:0] [&_select]:bg-[var(--solid)] [&_select]:p-[0_8px] [&_select]:text-[var(--text-tertiary)] [&_select]:text-[12px] [&_[data-slot='select-trigger']]:w-auto [&_[data-slot='select-trigger']]:min-w-[74px] [&_[data-slot='select-trigger']]:[border-left:1px_solid_var(--stroke)] [&_[data-slot='select-trigger']]:rounded-[0] [&_[data-slot='select-trigger']]:bg-[var(--solid)] [&_[data-slot='select-trigger']]:text-[var(--text-tertiary)] grid h-[31px] grid-cols-[minmax(0,1fr)_auto] overflow-hidden [border:1px_solid_var(--stroke)] rounded-[var(--r-xs)] bg-[var(--surface-subtle)]`,children:[(0,K.jsx)(`input`,{type:`number`,min:`1`,value:y.intervalValue,onChange:e=>$({intervalValue:Number(e.target.value)})}),(0,K.jsx)(i,{value:y.intervalUnit,onChange:e=>$({intervalUnit:e.target.value}),children:Object.keys(L).map(e=>(0,K.jsx)(`option`,{value:e,children:ne(e,o)},e))})]})]}):(0,K.jsxs)(C,{variant:`control`,children:[o(`schedules:schedulesPage.time`),(0,K.jsx)(`input`,{type:`time`,value:y.time,onChange:e=>$({time:e.target.value})})]}),(0,K.jsxs)(C,{variant:`control`,children:[o(`schedules:schedulesPage.timeZone`),(0,K.jsx)(i,{value:y.timezone,onChange:e=>$({timezone:e.target.value}),children:R.map(e=>(0,K.jsx)(`option`,{value:e,children:e},e))})]}),y.targetType===`prompt`&&(0,K.jsx)(q,{value:y.executionMode,onChange:e=>$({executionMode:e})})]}),(0,K.jsx)(D,{title:o(`schedules:schedulesPage.notifications`)}),(0,K.jsx)(`div`,{className:`notification-grid [&_>_label]:[&.on]:bg-[var(--accent-soft)] [&_>_label]:[&.on]:border-[var(--accent)] [&_>_label]:[&.on]:text-[var(--accent)] grid gap-[6px] grid-cols-[repeat(2,minmax(0,1fr))] max-[650px]:grid-cols-[1fr]`,children:Object.entries(l.notificationTargets).map(([e,t])=>{let{Icon:n}=F[e]||F.browser,r=y.notifications.includes(e);return(0,K.jsxs)(`button`,{className:`notification-chip [&.on]:border-[var(--accent)] [&.on]:bg-[var(--accent-soft)] [&.on]:text-[var(--accent)] flex items-center gap-[7px] [border:1px_solid_var(--stroke)] rounded-[var(--r-sm)] [padding:7px_10px] text-[13px] transition-colors ${r?`on`:``}`,onClick:()=>ce(e),disabled:!t.enabled,children:[(0,K.jsx)(n,{size:14}),V(e,o),!t.enabled&&(0,K.jsx)(`small`,{className:`text-[var(--text-muted)] text-[11px] ml-auto`,children:o(`schedules:schedulesPage.unconfigured`)})]},e)})}),y.notifications.length>0&&(0,K.jsxs)(C,{variant:`control`,children:[o(`schedules:schedulesPage.notifyOn`),(0,K.jsxs)(i,{value:y.notifyOn,onChange:e=>$({notifyOn:e.target.value}),children:[(0,K.jsx)(`option`,{value:`always`,children:o(`schedules:schedulesPage.onCompletionAndFailure`)}),(0,K.jsx)(`option`,{value:`failure`,children:o(`schedules:schedulesPage.onFailureOnly`)})]})]}),(0,K.jsx)(`div`,{className:`[margin-top:10px]`,children:(0,K.jsxs)(v,{size:`lg`,disabled:j||!U(y.targetType,y.prompt,y.workflowId,y.workflowInputs,Q),onClick:async()=>{if(!(!Z||!y)){z(!0),H(``);try{let t=await _(`/api/schedules/${encodeURIComponent(Z.id)}`,{method:`PATCH`,body:JSON.stringify(y)});d(t.state),b(W(t.task)),e(o(`schedules:schedulesPage.scheduledTaskSaved`))}catch(e){H(e instanceof Error?e.message:String(e))}finally{z(!1)}}},children:[j?(0,K.jsx)(f,{className:`animate-spin`,size:14}):null,o(j?`schedules:schedulesPage.saving`:`schedules:schedulesPage.saveTask`)]})})]}),(0,K.jsxs)(A,{children:[(0,K.jsx)(D,{title:o(`schedules:schedulesPage.recentRuns`)}),se.length?se.map(e=>(0,K.jsxs)(`div`,{className:`schedule-run-row [&_>_svg]:text-[var(--text-muted)] [&.completed_>_svg]:text-[var(--success)] [&.failed_>_svg]:text-[var(--danger)] [&.running_>_svg]:text-[var(--star-strong)] [&_>_span]:flex [&_>_span]:min-w-0 [&_>_span]:flex-col [&_>_span]:gap-[4px] [&_strong]:[display:-webkit-box] [&_strong]:overflow-hidden [&_strong]:text-[12px] [&_strong]:leading-[1.4] [&_strong]:[-webkit-box-orient:vertical] [&_strong]:[-webkit-line-clamp:2] [&_small]:text-[var(--text-muted)] [&_small]:text-[13px] [&_a]:text-[var(--text-soft)] [&_a]:text-[13px] [&_a]:[text-decoration:underline] [&_a]:[text-underline-offset:2px] [&_>_em]:text-[var(--text-secondary)] [&_>_em]:text-[12px] [&_>_em]:[font-style:normal] [&_>_em]:whitespace-nowrap grid grid-cols-[auto_minmax(0,1fr)_auto] items-center gap-[9px] [border-top:1px_solid_var(--stroke-soft)] [padding:10px_2px] ${e.status}`,children:[e.status===`running`?(0,K.jsx)(f,{className:`animate-spin`,size:15}):e.status===`completed`?(0,K.jsx)(s,{size:15}):(0,K.jsx)(h,{size:15}),(0,K.jsxs)(`span`,{children:[(0,K.jsx)(`strong`,{children:e.status===`running`?o(`schedules:schedulesPage.running2`):e.status===`completed`?e.summary||o(`schedules:schedulesPage.taskCompleted`):e.status===`interrupted`?o(`schedules:schedulesPage.taskInterrupted`):e.error||o(`schedules:schedulesPage.taskFailed`)}),(0,K.jsxs)(`small`,{children:[w(e.startedAt,c),` ·`,` `,e.trigger===`manual`?o(`schedules:schedulesPage.manualRun`):o(`schedules:schedulesPage.scheduledTrigger`),e.durationMs?` · ${o(`schedules:schedulesPage.countSec`,{count:Math.round(e.durationMs/1e3)})}`:``]})]}),(0,K.jsx)(`em`,{children:new Intl.DateTimeFormat(c,{hour:`2-digit`,minute:`2-digit`}).format(new Date(e.startedAt))})]},e.id)):(0,K.jsxs)(`div`,{className:`channel-route-empty [&_strong]:mt-[9px] [&_strong]:text-[var(--text)] [&_strong]:text-[12px] [&_span]:mt-[4px] [&_span]:text-[13px] [&.compact]:min-h-[110px] [.workflow-assets-panel_&]:min-h-[150px] [.workflow-assets-panel_&]:border-0 [.workflow-assets-panel_&]:bg-transparent grid min-h-[185px] place-content-center justify-items-center text-[var(--text-muted)] text-center compact`,children:[(0,K.jsx)(M,{size:32}),(0,K.jsx)(`strong`,{children:o(`schedules:schedulesPage.noRunHistory`)})]})]})]}):(0,K.jsx)(ie,{notificationTargets:l.notificationTargets,workflows:Q,defaultCwd:l.defaultCwd,onCreated:t=>{d(t.state),g(t.task.id),e(o(`schedules:schedulesPage.scheduledTaskCreated`))}})]}),ae&&(0,K.jsx)(re,{notificationTargets:l.notificationTargets,workflows:Q,defaultCwd:l.defaultCwd,onClose:()=>oe(!1),onCreated:t=>{oe(!1),d(t.state),g(t.task.id),e(o(`schedules:schedulesPage.scheduledTaskCreated`))}})]})}export{ae as SchedulesPage};
|
|
@@ -1 +1 @@
|
|
|
1
|
-
import{a as e}from"./rolldown-runtime-B0Z9INg1.js";import{i as t,r as n}from"./vendor-react-DwNgTV1j.js";import{t as r}from"./use-i18n-DyzoXal-.js";import{o as i}from"./vendor-state-GkUciC5H.js";import{a,n as o,r as s,t as c}from"./dropdown-menu-DmL4pJTo.js";import{a as l}from"./popover-BBuzaBfd.js";import{t as u}from"./createLucideIcon-Cd-3GVxJ.js";import{t as d}from"./earth-Ddy13fHh.js";import{t as f}from"./external-link-CEQqPcqc.js";import{E as p,d as m,f as h,i as g,n as _,r as v,t as y}from"./session-streaming-state-OU65zaiO.js";import{t as b}from"./loader-circle-BOwQzHB-.js";import{t as x}from"./message-square-SKjZyY3v.js";import{t as S}from"./web-preview-CQbpHjt1.js";import{t as C}from"./plus-fQbSqB1n.js";import{t as w}from"./square-bHHVTT3G.js";import{t as T}from"./x-07u4-129.js";import{t as E}from"./button-CQA36izu.js";import{t as D}from"./SessionFilesPane-DWuwTplj.js";import{r as O,s as k}from"./shortcuts-B3q7nKdq.js";import{a as A,i as j,n as M,t as N}from"./sheet--Om3LZxh.js";import{n as P,t as F}from"./web-preview-BPNd1LUd.js";import{r as I}from"./side-chat-context-Dr2QLUJA.js";var L=u(`files`,[[`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`}]]),R=e(t(),1);function z(e=`files`){return{pages:[{id:`page-1`,kind:e,draft:``,url:``}],activeId:`page-1`,nextId:2}}function B(e,t){if(t.type===`add`){let n=e.pages.find(e=>e.kind===`side-chat`);if(t.kind===`side-chat`&&n)return{...e,activeId:n.id};if(e.pages.length>=12)return e;let r={id:`page-${e.nextId}`,kind:t.kind,draft:``,url:``};return{pages:[...e.pages,r],activeId:r.id,nextId:e.nextId+1}}let n=e.pages.findIndex(e=>e.id===t.id);if(n<0)return e;if(t.type===`select`)return{...e,activeId:t.id};if(t.type===`close`){let r=e.pages.filter(e=>e.id!==t.id);return r.length?{...e,pages:r,activeId:e.activeId===t.id?r[Math.min(n,r.length-1)].id:e.activeId}:z()}return{...e,pages:e.pages.map(e=>e.id===t.id?t.type===`kind`?{...e,kind:t.kind}:{...e,...t.draft===void 0?{}:{draft:t.draft},...t.url===void 0?{}:{url:t.url}}:e)}}var V=i(e=>({sessions:{},update:(t,n,r)=>e(e=>{let i=Object.prototype.hasOwnProperty.call(e.sessions,t)?e.sessions[t]:z(n),a=Object.entries(e.sessions).filter(([e])=>e!==t).slice(-31);return{sessions:Object.fromEntries([...a,[t,B(i,r)]])}})})),H=n();function U({parentId:e,active:t}){let{t:n}=r(),{entry:i,runtime:a,load:o,setDraft:s}=I(e),c=i.session?.id??``,u=(0,R.useMemo)(()=>e=>a.subscribeSessionState(c,e),[a,c]),d=(0,R.useMemo)(()=>()=>a.getSessionState(c),[a,c]),f=(0,R.useSyncExternalStore)(u,d),[p,m]=(0,R.useState)(!1),[S,C]=(0,R.useState)(!1),[T,D]=(0,R.useState)(``),A=(0,R.useRef)(!1),j=(0,R.useRef)(!1),M=(0,R.useRef)(i.draft);M.current=i.draft;let N=(0,R.useRef)(null),P=k(e=>e.bindings),F=y(f,i.session);(0,R.useEffect)(()=>{t&&o(e)},[t,o,e]);let L=async t=>{t.preventDefault();let n=M.current.trim();if(!(!n||A.current||F||i.expired)){A.current=!0,m(!0),D(``);try{let t=await o(e,!i.session);if(!t?.session)return;let r=t.session.id;if(a.getSessionState(r).streaming)return;M.current.trim()===n&&s(e,``),m(!1),await a.send(r,n),await o(e)}catch(e){D(g(e))}finally{A.current=!1,m(!1)}}},z=(0,R.useCallback)(async()=>{if(!(!c||a.getSessionState(c).streaming)){D(``);try{await a.retry(c),await o(e)}catch(e){D(g(e))}}},[o,e,a,c]),B=async()=>{if(!(!c||S)){C(!0);try{D(``),await a.abort(c)}catch(e){D(g(e))}finally{C(!1)}}},V=(0,H.jsxs)(`div`,{className:`grid h-full min-h-36 place-content-center justify-items-center gap-3 px-3 text-center text-sm text-muted-foreground`,children:[(0,H.jsx)(x,{size:22,"aria-hidden":`true`}),(0,H.jsx)(`p`,{className:`max-w-64 leading-relaxed`,children:i.expired?n(`chat:sideChat.expired`):n(`chat:sideChat.empty`)}),i.expired&&(0,H.jsxs)(E,{variant:`outline`,size:`sm`,disabled:i.loading,onClick:async()=>{(await o(e,!0))?.session&&N.current?.focus()},children:[i.loading&&(0,H.jsx)(b,{className:`size-4 animate-spin`}),n(`chat:sideChat.restart`)]})]}),U=T||i.error||f.error;return(0,H.jsxs)(`section`,{"data-side-chat-parent":e,"aria-label":n(`chat:sideChat.title`),className:`flex h-full min-h-0 min-w-0 flex-1 flex-col [container-type:inline-size]`,children:[(0,H.jsx)(`p`,{className:`shrink-0 border-b border-border/50 px-3 py-2 text-xs leading-relaxed text-muted-foreground`,children:n(`chat:sideChat.retention`)}),c?(0,H.jsx)(v,{sessionId:c,messages:f.messages,transcriptLoadState:f.loaded?`ready`:f.error?`error`:`loading`,emptyState:V,messageStart:f.messageStart,hasOlder:f.hasOlder,loadingOlder:f.loadingOlder,olderError:f.olderError,activityFeed:f.activityFeed,tools:f.tools,thinkingText:f.thinkingText,currentActivity:f.currentActivity,compaction:f.compaction,streaming:F,runStartedAt:f.runStartedAt,lastActivityAt:f.lastActivityAt,runFinishedAt:f.runFinishedAt,runStopped:f.runStopped,runNotice:f.runNotice,error:f.error,cwd:i.session?.cwd,onLoadOlder:()=>a.loadOlderMessages(c),onRetryLastTurn:z}):(0,H.jsx)(`div`,{className:`min-h-0 flex-1 overflow-auto`,children:V}),(0,H.jsxs)(`form`,{className:`flex shrink-0 flex-col gap-2 border-t border-border/50 p-3`,onSubmit:L,children:[U&&(0,H.jsx)(h,{error:U,onRetry:i.error||!f.loaded?async()=>{await o(e)}:z}),(0,H.jsx)(_,{approvals:f.approvals,onResolve:async(e,t)=>{try{await a.approve(c,e,t)}catch{}}}),(0,H.jsxs)(`div`,{className:`flex min-w-0 items-end gap-2 rounded-xl border border-border/70 bg-muted/40 p-2 focus-within:border-ring/50`,children:[(0,H.jsx)(`textarea`,{ref:N,rows:2,value:i.draft,"aria-label":n(`chat:sideChat.message`),placeholder:n(`chat:sideChat.placeholder`),className:`max-h-40 min-h-14 min-w-0 flex-1 resize-y border-0 bg-transparent px-1 py-1 text-sm leading-relaxed text-foreground outline-none placeholder:text-muted-foreground`,onChange:t=>s(e,t.target.value),onCompositionStart:()=>{j.current=!0},onCompositionEnd:()=>{j.current=!1},onKeyDown:e=>{!j.current&&!e.nativeEvent.isComposing&&e.nativeEvent.keyCode!==229&&O(e.nativeEvent,P.sendMessage)&&(e.preventDefault(),e.currentTarget.form?.requestSubmit())}}),(0,H.jsx)(E,{type:F?`button`:`submit`,size:`icon`,className:`size-9 shrink-0 rounded-full`,"aria-label":n(F?`chat:sideChat.stop`:`chat:sideChat.send`),disabled:F?S:p||i.loading||i.expired||!i.draft.trim(),onClick:F?()=>void B():void 0,children:p||S?(0,H.jsx)(b,{className:`size-4 animate-spin`}):F?(0,H.jsx)(w,{size:13,fill:`currentColor`}):(0,H.jsx)(l,{size:17})})]})]})]})}function W({page:e,onChange:t}){let{t:n}=r(),{draft:i,url:a}=e,[o,s]=(0,R.useState)(!1);return(0,H.jsxs)(`section`,{className:`flex min-h-0 flex-1 flex-col gap-2 p-3`,"aria-label":n(`common:webPreview.title`),children:[(0,H.jsxs)(`form`,{className:`flex gap-2`,onSubmit:e=>{e.preventDefault();let n=S(i,window.location.href);s(!n),n&&t({url:n})},children:[(0,H.jsx)(`input`,{"aria-label":n(`common:webPreview.url`),className:`min-w-0 flex-1 rounded-md border border-[var(--stroke)] bg-[var(--solid)] px-2 text-[length:var(--app-font-size)]`,value:i,onChange:e=>t({draft:e.target.value}),placeholder:n(`common:webPreview.urlPlaceholder`),maxLength:2048}),(0,H.jsx)(E,{type:`submit`,variant:`outline`,size:`sm`,children:n(`chat:sessionContext.openUrl`)})]}),o&&(0,H.jsx)(`p`,{role:`alert`,className:`text-[length:var(--app-small-size)] text-[var(--text-secondary)]`,children:n(`chat:sessionContext.invalidUrl`)}),a?(0,H.jsx)(F,{className:`min-h-0 flex-1 overflow-hidden rounded-md`,defaultUrl:a,children:(0,H.jsx)(P,{src:a,title:n(`common:webPreview.title`)})},a):(0,H.jsxs)(`div`,{className:`grid min-h-0 flex-1 place-content-center justify-items-center gap-2 rounded-md border border-dashed border-[var(--stroke-soft)] text-center text-[length:var(--app-font-size)] text-[var(--text-muted)]`,children:[(0,H.jsx)(d,{size:24,"aria-hidden":`true`}),(0,H.jsx)(`p`,{children:n(`chat:sessionContext.browserEmpty`)})]}),a&&(0,H.jsxs)(E,{type:`button`,variant:`ghost`,size:`sm`,className:`self-start`,onClick:()=>window.open(a,`_blank`,`noopener,noreferrer`),children:[(0,H.jsx)(f,{size:14}),n(`common:webPreview.openExternal`)]}),(0,H.jsx)(`p`,{className:`text-[length:var(--app-small-size)] text-[var(--text-muted)]`,children:n(`common:webPreview.embedNotice`)})]})}function G({panelId:e,compact:t,embedded:n=!1,sessionId:i,tab:l,plan:u,streaming:f,plansAvailable:h,requestConfirm:g,onTabChange:_,onClose:v}){let{t:y}=r(),b=[{id:`files`,icon:L,label:y(`chat:focusSession.fileChanges`)},...h?[{id:`plan`,icon:p,label:y(`chat:sessionContext.plan`)}]:[],{id:`browser`,icon:d,label:y(`common:webPreview.title`)},{id:`side-chat`,icon:x,label:y(`chat:sideChat.title`)}],S=(0,R.useMemo)(()=>z(l),[l]),w=V(e=>Object.prototype.hasOwnProperty.call(e.sessions,i)?e.sessions[i]:void 0)??S,E=(0,R.useRef)(null),O=w.pages.find(e=>e.id===w.activeId)??w.pages[0],k=e=>b.find(t=>t.id===e.kind)??b[0],P=t=>requestAnimationFrame(()=>document.getElementById(`${e}-${t}-tab`)?.focus()),F=e=>{let t=B(w,e);V.getState().update(i,l,e);let n=t.pages.find(e=>e.id===t.activeId);n&&_(n.kind),(e.type===`add`||e.type===`select`||e.type===`close`)&&P(t.activeId),e.type===`close`&&w.pages.length===1&&v()},I=y(`chat:sessionContext.addPage`),G=y(`chat:sessionContext.pageLimit`),K=(0,H.jsxs)(c,{children:[(0,H.jsx)(a,{asChild:!0,children:(0,H.jsx)(`button`,{type:`button`,className:`grid size-7 shrink-0 place-items-center rounded-md text-muted-foreground hover:bg-muted disabled:opacity-40`,disabled:w.pages.length>=12,"aria-label":I,title:w.pages.length>=12?G:I,children:(0,H.jsx)(C,{size:15})})}),(0,H.jsx)(o,{align:`end`,className:`min-w-40`,children:b.map(({id:e,icon:t,label:n})=>(0,H.jsxs)(s,{onSelect:()=>F({type:`add`,kind:e}),children:[(0,H.jsx)(t,{size:14}),n]},e))})]}),q=(0,H.jsxs)(`div`,{"data-session-context-panel":!0,className:`flex h-full min-h-0 min-w-0 flex-col bg-background text-foreground`,children:[(0,H.jsxs)(`header`,{"data-window-drag-region":!0,className:`auxiliary-page-header flex h-12 shrink-0 items-center gap-0.5 border-b border-border/60 px-1.5`,children:[(0,H.jsx)(`div`,{ref:E,className:`flex min-w-0 flex-1 items-center overflow-x-auto`,role:`tablist`,"aria-label":y(`chat:sessionContext.title`),onKeyDown:e=>{if(!(e.target instanceof HTMLElement)||e.target.getAttribute(`role`)!==`tab`)return;if(e.key===`Delete`){e.preventDefault(),F({type:`close`,id:O.id});return}if(![`ArrowLeft`,`ArrowRight`,`Home`,`End`].includes(e.key))return;e.preventDefault();let t=w.pages.findIndex(e=>e.id===O.id),n=e.key===`Home`?0:e.key===`End`?w.pages.length-1:(t+(e.key===`ArrowRight`?1:-1)+w.pages.length)%w.pages.length;F({type:`select`,id:w.pages[n].id})},children:w.pages.map(t=>{let{icon:n,label:r}=k(t);return(0,H.jsxs)(`div`,{className:`group flex max-w-40 min-w-20 shrink-0 items-center rounded-md ${t.id===O.id?`bg-muted`:`text-muted-foreground`}`,children:[(0,H.jsxs)(`button`,{id:`${e}-${t.id}-tab`,type:`button`,role:`tab`,"aria-selected":t.id===O.id,"aria-controls":`${e}-${t.id}-content`,tabIndex:t.id===O.id?0:-1,className:`flex h-8 min-w-0 flex-1 items-center gap-1.5 px-2 text-xs`,onClick:()=>F({type:`select`,id:t.id}),children:[(0,H.jsx)(n,{size:13,className:`shrink-0`}),(0,H.jsx)(`span`,{className:`truncate`,children:r})]}),(0,H.jsx)(`button`,{type:`button`,className:`mr-0.5 grid size-5 shrink-0 place-items-center rounded hover:bg-foreground/10`,"aria-label":`${y(`chat:sessionContext.closePage`)} · ${r}`,onClick:()=>F({type:`close`,id:t.id}),children:(0,H.jsx)(T,{size:11})})]},t.id)})}),K]}),w.pages.map(t=>{let n=k(t),r=O.id===t.id;return(0,H.jsx)(`div`,{id:`${e}-${t.id}-content`,role:`tabpanel`,"aria-labelledby":`${e}-${t.id}-tab`,className:r?`flex min-h-0 flex-1 flex-col`:`hidden`,hidden:!r,children:n.id===`side-chat`?(0,H.jsx)(U,{parentId:i,active:r}):n.id===`browser`?(0,H.jsx)(W,{page:t,onChange:e=>F({type:`browser`,id:t.id,...e})}):r&&(n.id===`files`?(0,H.jsx)(D,{sessionId:i,streaming:f,requestConfirm:g}):(0,H.jsx)(`div`,{className:`min-h-0 flex-1 overflow-y-auto p-3`,children:u?.items?.length?(0,H.jsx)(m,{plan:u}):(0,H.jsx)(`p`,{className:`text-sm text-muted-foreground`,children:y(`chat:sessionContext.planEmpty`)})}))},t.id)})]});return t?(0,H.jsx)(N,{open:!0,onOpenChange:e=>!e&&v(),children:(0,H.jsxs)(M,{id:e,side:`right`,showCloseButton:!1,className:`gap-0 overflow-hidden p-0`,style:{top:`var(--pisper-safe-area-top)`,right:`var(--pisper-safe-area-right)`,bottom:`var(--pisper-safe-area-bottom)`,height:`auto`,width:`min(calc(100vw - var(--pisper-safe-area-left) - var(--pisper-safe-area-right)), 420px)`,maxWidth:`none`},children:[(0,H.jsx)(j,{className:`sr-only`,children:(0,H.jsx)(A,{children:y(`chat:sessionContext.title`)})}),q]})}):(0,H.jsx)(`aside`,{id:e,tabIndex:n?-1:void 0,className:`h-full min-h-0 w-full overflow-hidden border-l border-border/60`,"aria-label":y(`chat:sessionContext.title`),children:q})}export{G as SessionContextPanel};
|
|
1
|
+
import{a as e}from"./rolldown-runtime-B0Z9INg1.js";import{i as t,r as n}from"./vendor-react-DwNgTV1j.js";import{t as r}from"./use-i18n-BSZKFkMb.js";import{o as i}from"./vendor-state-GkUciC5H.js";import{a,n as o,r as s,t as c}from"./dropdown-menu-DmL4pJTo.js";import{a as l}from"./popover-BBuzaBfd.js";import{t as u}from"./createLucideIcon-Cd-3GVxJ.js";import{t as d}from"./earth-Ddy13fHh.js";import{t as f}from"./external-link-CEQqPcqc.js";import{E as p,d as m,f as h,i as g,n as _,r as v,t as y}from"./session-streaming-state-llCTupbI.js";import{t as b}from"./loader-circle-BOwQzHB-.js";import{t as x}from"./message-square-SKjZyY3v.js";import{t as S}from"./web-preview-CQbpHjt1.js";import{t as C}from"./plus-fQbSqB1n.js";import{t as w}from"./square-bHHVTT3G.js";import{t as T}from"./x-07u4-129.js";import{t as E}from"./button-CQA36izu.js";import{t as D}from"./SessionFilesPane-BIRQ_hHi.js";import{r as O,s as k}from"./shortcuts-BO-h6OmP.js";import{a as A,i as j,n as M,t as N}from"./sheet--Om3LZxh.js";import{n as P,t as F}from"./web-preview-BPNd1LUd.js";import{r as I}from"./side-chat-context-Dr2QLUJA.js";var L=u(`files`,[[`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`}]]),R=e(t(),1);function z(e=`files`){return{pages:[{id:`page-1`,kind:e,draft:``,url:``}],activeId:`page-1`,nextId:2}}function B(e,t){if(t.type===`add`){let n=e.pages.find(e=>e.kind===`side-chat`);if(t.kind===`side-chat`&&n)return{...e,activeId:n.id};if(e.pages.length>=12)return e;let r={id:`page-${e.nextId}`,kind:t.kind,draft:``,url:``};return{pages:[...e.pages,r],activeId:r.id,nextId:e.nextId+1}}let n=e.pages.findIndex(e=>e.id===t.id);if(n<0)return e;if(t.type===`select`)return{...e,activeId:t.id};if(t.type===`close`){let r=e.pages.filter(e=>e.id!==t.id);return r.length?{...e,pages:r,activeId:e.activeId===t.id?r[Math.min(n,r.length-1)].id:e.activeId}:z()}return{...e,pages:e.pages.map(e=>e.id===t.id?t.type===`kind`?{...e,kind:t.kind}:{...e,...t.draft===void 0?{}:{draft:t.draft},...t.url===void 0?{}:{url:t.url}}:e)}}var V=i(e=>({sessions:{},update:(t,n,r)=>e(e=>{let i=Object.prototype.hasOwnProperty.call(e.sessions,t)?e.sessions[t]:z(n),a=Object.entries(e.sessions).filter(([e])=>e!==t).slice(-31);return{sessions:Object.fromEntries([...a,[t,B(i,r)]])}})})),H=n();function U({parentId:e,active:t}){let{t:n}=r(),{entry:i,runtime:a,load:o,setDraft:s}=I(e),c=i.session?.id??``,u=(0,R.useMemo)(()=>e=>a.subscribeSessionState(c,e),[a,c]),d=(0,R.useMemo)(()=>()=>a.getSessionState(c),[a,c]),f=(0,R.useSyncExternalStore)(u,d),[p,m]=(0,R.useState)(!1),[S,C]=(0,R.useState)(!1),[T,D]=(0,R.useState)(``),A=(0,R.useRef)(!1),j=(0,R.useRef)(!1),M=(0,R.useRef)(i.draft);M.current=i.draft;let N=(0,R.useRef)(null),P=k(e=>e.bindings),F=y(f,i.session);(0,R.useEffect)(()=>{t&&o(e)},[t,o,e]);let L=async t=>{t.preventDefault();let n=M.current.trim();if(!(!n||A.current||F||i.expired)){A.current=!0,m(!0),D(``);try{let t=await o(e,!i.session);if(!t?.session)return;let r=t.session.id;if(a.getSessionState(r).streaming)return;M.current.trim()===n&&s(e,``),m(!1),await a.send(r,n),await o(e)}catch(e){D(g(e))}finally{A.current=!1,m(!1)}}},z=(0,R.useCallback)(async()=>{if(!(!c||a.getSessionState(c).streaming)){D(``);try{await a.retry(c),await o(e)}catch(e){D(g(e))}}},[o,e,a,c]),B=async()=>{if(!(!c||S)){C(!0);try{D(``),await a.abort(c)}catch(e){D(g(e))}finally{C(!1)}}},V=(0,H.jsxs)(`div`,{className:`grid h-full min-h-36 place-content-center justify-items-center gap-3 px-3 text-center text-sm text-muted-foreground`,children:[(0,H.jsx)(x,{size:22,"aria-hidden":`true`}),(0,H.jsx)(`p`,{className:`max-w-64 leading-relaxed`,children:i.expired?n(`chat:sideChat.expired`):n(`chat:sideChat.empty`)}),i.expired&&(0,H.jsxs)(E,{variant:`outline`,size:`sm`,disabled:i.loading,onClick:async()=>{(await o(e,!0))?.session&&N.current?.focus()},children:[i.loading&&(0,H.jsx)(b,{className:`size-4 animate-spin`}),n(`chat:sideChat.restart`)]})]}),U=T||i.error||f.error;return(0,H.jsxs)(`section`,{"data-side-chat-parent":e,"aria-label":n(`chat:sideChat.title`),className:`flex h-full min-h-0 min-w-0 flex-1 flex-col [container-type:inline-size]`,children:[(0,H.jsx)(`p`,{className:`shrink-0 border-b border-border/50 px-3 py-2 text-xs leading-relaxed text-muted-foreground`,children:n(`chat:sideChat.retention`)}),c?(0,H.jsx)(v,{sessionId:c,messages:f.messages,transcriptLoadState:f.loaded?`ready`:f.error?`error`:`loading`,emptyState:V,messageStart:f.messageStart,hasOlder:f.hasOlder,loadingOlder:f.loadingOlder,olderError:f.olderError,activityFeed:f.activityFeed,tools:f.tools,thinkingText:f.thinkingText,currentActivity:f.currentActivity,compaction:f.compaction,streaming:F,runStartedAt:f.runStartedAt,lastActivityAt:f.lastActivityAt,runFinishedAt:f.runFinishedAt,runStopped:f.runStopped,runNotice:f.runNotice,error:f.error,cwd:i.session?.cwd,onLoadOlder:()=>a.loadOlderMessages(c),onRetryLastTurn:z}):(0,H.jsx)(`div`,{className:`min-h-0 flex-1 overflow-auto`,children:V}),(0,H.jsxs)(`form`,{className:`flex shrink-0 flex-col gap-2 border-t border-border/50 p-3`,onSubmit:L,children:[U&&(0,H.jsx)(h,{error:U,onRetry:i.error||!f.loaded?async()=>{await o(e)}:z}),(0,H.jsx)(_,{approvals:f.approvals,onResolve:async(e,t)=>{try{await a.approve(c,e,t)}catch{}}}),(0,H.jsxs)(`div`,{className:`flex min-w-0 items-end gap-2 rounded-xl border border-border/70 bg-muted/40 p-2 focus-within:border-ring/50`,children:[(0,H.jsx)(`textarea`,{ref:N,rows:2,value:i.draft,"aria-label":n(`chat:sideChat.message`),placeholder:n(`chat:sideChat.placeholder`),className:`max-h-40 min-h-14 min-w-0 flex-1 resize-y border-0 bg-transparent px-1 py-1 text-sm leading-relaxed text-foreground outline-none placeholder:text-muted-foreground`,onChange:t=>s(e,t.target.value),onCompositionStart:()=>{j.current=!0},onCompositionEnd:()=>{j.current=!1},onKeyDown:e=>{!j.current&&!e.nativeEvent.isComposing&&e.nativeEvent.keyCode!==229&&O(e.nativeEvent,P.sendMessage)&&(e.preventDefault(),e.currentTarget.form?.requestSubmit())}}),(0,H.jsx)(E,{type:F?`button`:`submit`,size:`icon`,className:`size-9 shrink-0 rounded-full`,"aria-label":n(F?`chat:sideChat.stop`:`chat:sideChat.send`),disabled:F?S:p||i.loading||i.expired||!i.draft.trim(),onClick:F?()=>void B():void 0,children:p||S?(0,H.jsx)(b,{className:`size-4 animate-spin`}):F?(0,H.jsx)(w,{size:13,fill:`currentColor`}):(0,H.jsx)(l,{size:17})})]})]})]})}function W({page:e,onChange:t}){let{t:n}=r(),{draft:i,url:a}=e,[o,s]=(0,R.useState)(!1);return(0,H.jsxs)(`section`,{className:`flex min-h-0 flex-1 flex-col gap-2 p-3`,"aria-label":n(`common:webPreview.title`),children:[(0,H.jsxs)(`form`,{className:`flex gap-2`,onSubmit:e=>{e.preventDefault();let n=S(i,window.location.href);s(!n),n&&t({url:n})},children:[(0,H.jsx)(`input`,{"aria-label":n(`common:webPreview.url`),className:`min-w-0 flex-1 rounded-md border border-[var(--stroke)] bg-[var(--solid)] px-2 text-[length:var(--app-font-size)]`,value:i,onChange:e=>t({draft:e.target.value}),placeholder:n(`common:webPreview.urlPlaceholder`),maxLength:2048}),(0,H.jsx)(E,{type:`submit`,variant:`outline`,size:`sm`,children:n(`chat:sessionContext.openUrl`)})]}),o&&(0,H.jsx)(`p`,{role:`alert`,className:`text-[length:var(--app-small-size)] text-[var(--text-secondary)]`,children:n(`chat:sessionContext.invalidUrl`)}),a?(0,H.jsx)(F,{className:`min-h-0 flex-1 overflow-hidden rounded-md`,defaultUrl:a,children:(0,H.jsx)(P,{src:a,title:n(`common:webPreview.title`)})},a):(0,H.jsxs)(`div`,{className:`grid min-h-0 flex-1 place-content-center justify-items-center gap-2 rounded-md border border-dashed border-[var(--stroke-soft)] text-center text-[length:var(--app-font-size)] text-[var(--text-muted)]`,children:[(0,H.jsx)(d,{size:24,"aria-hidden":`true`}),(0,H.jsx)(`p`,{children:n(`chat:sessionContext.browserEmpty`)})]}),a&&(0,H.jsxs)(E,{type:`button`,variant:`ghost`,size:`sm`,className:`self-start`,onClick:()=>window.open(a,`_blank`,`noopener,noreferrer`),children:[(0,H.jsx)(f,{size:14}),n(`common:webPreview.openExternal`)]}),(0,H.jsx)(`p`,{className:`text-[length:var(--app-small-size)] text-[var(--text-muted)]`,children:n(`common:webPreview.embedNotice`)})]})}function G({panelId:e,compact:t,embedded:n=!1,sessionId:i,tab:l,plan:u,streaming:f,plansAvailable:h,requestConfirm:g,onTabChange:_,onClose:v}){let{t:y}=r(),b=[{id:`files`,icon:L,label:y(`chat:focusSession.fileChanges`)},...h?[{id:`plan`,icon:p,label:y(`chat:sessionContext.plan`)}]:[],{id:`browser`,icon:d,label:y(`common:webPreview.title`)},{id:`side-chat`,icon:x,label:y(`chat:sideChat.title`)}],S=(0,R.useMemo)(()=>z(l),[l]),w=V(e=>Object.prototype.hasOwnProperty.call(e.sessions,i)?e.sessions[i]:void 0)??S,E=(0,R.useRef)(null),O=w.pages.find(e=>e.id===w.activeId)??w.pages[0],k=e=>b.find(t=>t.id===e.kind)??b[0],P=t=>requestAnimationFrame(()=>document.getElementById(`${e}-${t}-tab`)?.focus()),F=e=>{let t=B(w,e);V.getState().update(i,l,e);let n=t.pages.find(e=>e.id===t.activeId);n&&_(n.kind),(e.type===`add`||e.type===`select`||e.type===`close`)&&P(t.activeId),e.type===`close`&&w.pages.length===1&&v()},I=y(`chat:sessionContext.addPage`),G=y(`chat:sessionContext.pageLimit`),K=(0,H.jsxs)(c,{children:[(0,H.jsx)(a,{asChild:!0,children:(0,H.jsx)(`button`,{type:`button`,className:`grid size-7 shrink-0 place-items-center rounded-md text-muted-foreground hover:bg-muted disabled:opacity-40`,disabled:w.pages.length>=12,"aria-label":I,title:w.pages.length>=12?G:I,children:(0,H.jsx)(C,{size:15})})}),(0,H.jsx)(o,{align:`end`,className:`min-w-40`,children:b.map(({id:e,icon:t,label:n})=>(0,H.jsxs)(s,{onSelect:()=>F({type:`add`,kind:e}),children:[(0,H.jsx)(t,{size:14}),n]},e))})]}),q=(0,H.jsxs)(`div`,{"data-session-context-panel":!0,className:`flex h-full min-h-0 min-w-0 flex-col bg-background text-foreground`,children:[(0,H.jsxs)(`header`,{"data-window-drag-region":!0,className:`auxiliary-page-header flex h-12 shrink-0 items-center gap-0.5 border-b border-border/60 px-1.5`,children:[(0,H.jsx)(`div`,{ref:E,className:`flex min-w-0 flex-1 items-center overflow-x-auto`,role:`tablist`,"aria-label":y(`chat:sessionContext.title`),onKeyDown:e=>{if(!(e.target instanceof HTMLElement)||e.target.getAttribute(`role`)!==`tab`)return;if(e.key===`Delete`){e.preventDefault(),F({type:`close`,id:O.id});return}if(![`ArrowLeft`,`ArrowRight`,`Home`,`End`].includes(e.key))return;e.preventDefault();let t=w.pages.findIndex(e=>e.id===O.id),n=e.key===`Home`?0:e.key===`End`?w.pages.length-1:(t+(e.key===`ArrowRight`?1:-1)+w.pages.length)%w.pages.length;F({type:`select`,id:w.pages[n].id})},children:w.pages.map(t=>{let{icon:n,label:r}=k(t);return(0,H.jsxs)(`div`,{className:`group flex max-w-40 min-w-20 shrink-0 items-center rounded-md ${t.id===O.id?`bg-muted`:`text-muted-foreground`}`,children:[(0,H.jsxs)(`button`,{id:`${e}-${t.id}-tab`,type:`button`,role:`tab`,"aria-selected":t.id===O.id,"aria-controls":`${e}-${t.id}-content`,tabIndex:t.id===O.id?0:-1,className:`flex h-8 min-w-0 flex-1 items-center gap-1.5 px-2 text-xs`,onClick:()=>F({type:`select`,id:t.id}),children:[(0,H.jsx)(n,{size:13,className:`shrink-0`}),(0,H.jsx)(`span`,{className:`truncate`,children:r})]}),(0,H.jsx)(`button`,{type:`button`,className:`mr-0.5 grid size-5 shrink-0 place-items-center rounded hover:bg-foreground/10`,"aria-label":`${y(`chat:sessionContext.closePage`)} · ${r}`,onClick:()=>F({type:`close`,id:t.id}),children:(0,H.jsx)(T,{size:11})})]},t.id)})}),K]}),w.pages.map(t=>{let n=k(t),r=O.id===t.id;return(0,H.jsx)(`div`,{id:`${e}-${t.id}-content`,role:`tabpanel`,"aria-labelledby":`${e}-${t.id}-tab`,className:r?`flex min-h-0 flex-1 flex-col`:`hidden`,hidden:!r,children:n.id===`side-chat`?(0,H.jsx)(U,{parentId:i,active:r}):n.id===`browser`?(0,H.jsx)(W,{page:t,onChange:e=>F({type:`browser`,id:t.id,...e})}):r&&(n.id===`files`?(0,H.jsx)(D,{sessionId:i,streaming:f,requestConfirm:g}):(0,H.jsx)(`div`,{className:`min-h-0 flex-1 overflow-y-auto p-3`,children:u?.items?.length?(0,H.jsx)(m,{plan:u}):(0,H.jsx)(`p`,{className:`text-sm text-muted-foreground`,children:y(`chat:sessionContext.planEmpty`)})}))},t.id)})]});return t?(0,H.jsx)(N,{open:!0,onOpenChange:e=>!e&&v(),children:(0,H.jsxs)(M,{id:e,side:`right`,showCloseButton:!1,className:`gap-0 overflow-hidden p-0`,style:{top:`var(--pisper-safe-area-top)`,right:`var(--pisper-safe-area-right)`,bottom:`var(--pisper-safe-area-bottom)`,height:`auto`,width:`min(calc(100vw - var(--pisper-safe-area-left) - var(--pisper-safe-area-right)), 420px)`,maxWidth:`none`},children:[(0,H.jsx)(j,{className:`sr-only`,children:(0,H.jsx)(A,{children:y(`chat:sessionContext.title`)})}),q]})}):(0,H.jsx)(`aside`,{id:e,tabIndex:n?-1:void 0,className:`h-full min-h-0 w-full overflow-hidden border-l border-border/60`,"aria-label":y(`chat:sessionContext.title`),children:q})}export{G as SessionContextPanel};
|
|
@@ -1,2 +1,2 @@
|
|
|
1
|
-
const __vite__mapDeps=(i,m=__vite__mapDeps,d=(m.f||(m.f=["assets/GitDiffViewer-
|
|
2
|
-
import{a as e}from"./rolldown-runtime-B0Z9INg1.js";import{p as t}from"./vendor-router-CZg2bCPV.js";import{i as n,r}from"./vendor-react-DwNgTV1j.js";import{t as i}from"./use-i18n-
|
|
1
|
+
const __vite__mapDeps=(i,m=__vite__mapDeps,d=(m.f||(m.f=["assets/GitDiffViewer-xm2LnN9r.js","assets/rolldown-runtime-B0Z9INg1.js","assets/vendor-react-DwNgTV1j.js","assets/use-i18n-BSZKFkMb.js","assets/i18n-7QvbQzOQ.js","assets/vendor-router-CZg2bCPV.js","assets/index-iBrSU61i.js","assets/index-CdASiNlI.css","assets/storage-BpAqa-YY.js","assets/vendor-state-GkUciC5H.js","assets/file-diff-GxOMJkLj.js","assets/createLucideIcon-Cd-3GVxJ.js","assets/x-07u4-129.js","assets/button-CQA36izu.js","assets/vendor-ui-DvrYggeS.js","assets/dist-Cfh4kzCK.js","assets/utils-C8uzG5AZ.js"])))=>i.map(i=>d[i]);
|
|
2
|
+
import{a as e}from"./rolldown-runtime-B0Z9INg1.js";import{p as t}from"./vendor-router-CZg2bCPV.js";import{i as n,r}from"./vendor-react-DwNgTV1j.js";import{t as i}from"./use-i18n-BSZKFkMb.js";import{t as a}from"./check-2vYc6QaP.js";import{t as o}from"./file-diff-GxOMJkLj.js";import{t as s}from"./refresh-cw-TbWxTY4K.js";import{t as c}from"./undo-2-CJE_nRTk.js";import{t as l}from"./button-CQA36izu.js";import{t as u}from"./chat-api-DfnvubiW.js";import{n as d}from"./session-change-summary-api-DFgTzTci.js";var f=e(n(),1),p=r(),m=(0,f.lazy)(()=>t(()=>import(`./GitDiffViewer-xm2LnN9r.js`).then(e=>e.n).then(e=>({default:e.GitDiffDialog})),__vite__mapDeps([0,1,2,3,4,5,6,7,8,9,10,11,12,13,14,15,16]))),h=100;function g(e){return e instanceof Error?e.message:String(e)}function _({sessionId:e,streaming:t,requestConfirm:n}){let{t:r}=i(),[_,v]=(0,f.useState)(0),[y,b]=(0,f.useState)(null),[x,S]=(0,f.useState)(!0),[C,w]=(0,f.useState)(``),[T,E]=(0,f.useState)(``),[D,O]=(0,f.useState)(``),[k,A]=(0,f.useState)(null),[j,M]=(0,f.useState)(null),[N,P]=(0,f.useState)(null),F=(0,f.useRef)(!1),I=(0,f.useRef)(0),L=(0,f.useRef)(0),R=(0,f.useRef)(!0),z=(0,f.useRef)(!1),B=(0,f.useRef)(t);(0,f.useLayoutEffect)(()=>{B.current=t},[t]),(0,f.useLayoutEffect)(()=>(F.current=!0,()=>{F.current=!1,I.current+=1,L.current+=1}),[]),(0,f.useEffect)(()=>{let t=++I.current;return L.current+=1,M(null),P(null),R.current=!0,S(!0),w(``),u.getSessionFileChanges(e).then(e=>{F.current&&t===I.current&&b(e)},e=>{F.current&&t===I.current&&w(g(e))}).finally(()=>{F.current&&t===I.current&&(R.current=!1,S(!1))}),()=>{I.current+=1}},[_,e,t]);let V=async t=>{if(z.current||R.current)return;let n=++L.current;P(t),E(``);try{let i=await u.getSessionFileChangeDiff(e,t);if(!F.current||n!==L.current)return;if(!i.diff?.trim()){E(r(`chat:focusSession.fileChangesNoSnapshot`));return}M({diff:i.diff,truncated:!!i.diffTruncated})}catch(e){F.current&&n===L.current&&E(g(e))}finally{F.current&&n===L.current&&P(null)}},H=async t=>{if(!F.current||z.current||R.current||B.current||!y||C||!y.files.filter(e=>t.kind===`approve`?e.pending&&!e.approved&&!e.reverted:e.canRevert&&!e.reverted).some(e=>t.path===void 0||e.path===t.path))return;z.current=!0,A(t),E(``),O(``);let i=++I.current;L.current+=1,M(null),P(null);let a=!1;try{if(t.kind===`revert`&&!await n({title:t.path?r(`chat:focusSession.fileChangesRevertFile`):r(`chat:focusSession.fileChangesRevertAll`),message:t.path?r(`chat:focusSession.fileChangesRevertFileDescription`,{path:t.path}):r(`chat:focusSession.fileChangesRevertAllDescription`),confirmLabel:r(`chat:focusSession.fileChangesConfirmRevert`),tone:`danger`})||!F.current||B.current||R.current||i!==I.current)return;a=!0;let o=t.kind===`approve`?await u.approveSessionFileChanges(e,t.path):await u.revertSessionFileChanges(e,t.path);if(d(e),!F.current||i!==I.current)return;b(o),t.kind===`approve`?O(t.path?r(`chat:focusSession.fileChangesApproved`):r(`chat:focusSession.fileChangesApproveDone`)):o.reverted?t.path===void 0&&o.files.some(e=>e.pending)?O(r(`chat:focusSession.fileChangesRevertPartial`,{count:o.reverted})):O(r(`chat:focusSession.fileChangesRevertDone`)):O(r(`chat:focusSession.fileChangesRevertUnavailable`))}catch(e){F.current&&i===I.current&&E(g(e))}finally{z.current=!1,F.current&&(A(null),a&&(R.current=!0,S(!0),v(e=>e+1)))}},U=x||t||!!k||!!C||!y,W=y?.summary.pending||0,G=y?.files.filter(e=>e.canRevert&&!e.reverted).length||0,K=T||C;return(0,p.jsxs)(`section`,{className:`flex min-h-0 flex-1 flex-col gap-3 p-3`,"aria-label":r(`chat:focusSession.fileChanges`),"aria-busy":x||!!k,children:[(0,p.jsxs)(`div`,{className:`flex flex-none flex-wrap items-center justify-between gap-2`,children:[(0,p.jsxs)(`div`,{className:`min-w-0`,children:[(0,p.jsx)(`p`,{className:`text-[length:var(--app-font-size)] font-medium`,children:r(`chat:focusSession.fileChanges`)}),y&&(0,p.jsxs)(`p`,{className:`text-[length:var(--app-small-size)] text-[var(--text-muted)]`,children:[r(`chat:focusSession.fileChangesCount`,{count:y.summary.files}),` · `,`+`,y.summary.added,` −`,y.summary.removed,W>0&&` · ${r(`chat:focusSession.fileChangesPending`,{count:W})}`]})]}),(0,p.jsxs)(`div`,{className:`ml-auto flex flex-wrap items-center justify-end gap-1.5`,children:[(0,p.jsxs)(l,{type:`button`,variant:`outline`,size:`sm`,className:`min-h-11 sm:min-h-9`,disabled:U||W===0,title:t?r(`chat:focusSession.gitWaitForRunToFinish`):void 0,onClick:()=>void H({kind:`approve`}),children:[k?.kind===`approve`&&!k.path?(0,p.jsx)(s,{className:`animate-spin`,size:14}):(0,p.jsx)(a,{size:14}),r(`chat:focusSession.fileChangesApproveAll`)]}),(0,p.jsxs)(l,{type:`button`,variant:`outline`,size:`sm`,className:`min-h-11 sm:min-h-9`,disabled:U||G===0,title:r(t?`chat:focusSession.gitWaitForRunToFinish`:`chat:focusSession.fileChangesRevertAllDescription`),onClick:()=>void H({kind:`revert`}),children:[k?.kind===`revert`&&!k.path?(0,p.jsx)(s,{className:`animate-spin`,size:14}):(0,p.jsx)(c,{size:14}),r(`chat:focusSession.fileChangesRevertAll`)]}),(0,p.jsx)(l,{type:`button`,variant:`ghost`,size:`icon`,className:`size-11 sm:size-9`,"aria-label":r(`chat:focusSession.gitRefresh`),title:r(`chat:focusSession.gitRefresh`),disabled:x||!!k,onClick:()=>{R.current=!0,S(!0),E(``),v(e=>e+1)},children:(0,p.jsx)(s,{className:x?`animate-spin`:``,size:16})})]})]}),K&&(0,p.jsx)(`p`,{role:`alert`,className:`text-[length:var(--app-small-size)] text-[var(--text-secondary)]`,children:K}),D&&!K&&(0,p.jsx)(`p`,{role:`status`,className:`text-[length:var(--app-small-size)] text-[var(--text-secondary)]`,children:D}),x&&!y?(0,p.jsx)(`p`,{role:`status`,className:`text-[length:var(--app-font-size)] text-[var(--text-muted)]`,children:r(`chat:focusSession.gitLoading`)}):y?.files.length?(0,p.jsxs)(`ul`,{className:`min-h-0 flex-1 space-y-1 overflow-y-auto`,"aria-label":r(`chat:focusSession.fileChanges`),children:[y.files.slice(0,h).map(e=>(0,p.jsxs)(`li`,{className:`flex min-w-0 items-center gap-1 rounded-md bg-[var(--surface-subtle)] px-2 py-1`,children:[(0,p.jsxs)(`button`,{type:`button`,className:`flex min-h-11 min-w-0 flex-1 items-center gap-2 rounded-md text-left text-[length:var(--app-small-size)] outline-none focus-visible:ring-2 focus-visible:ring-[var(--brand-blue)] disabled:opacity-60`,title:e.path,disabled:x||!!k,"aria-busy":N===e.path,onClick:()=>void V(e.path),children:[N===e.path?(0,p.jsx)(s,{size:14,className:`flex-none animate-spin`}):(0,p.jsx)(o,{size:14,className:`flex-none text-[var(--star-strong)]`}),(0,p.jsxs)(`span`,{className:`min-w-0 flex-1`,children:[(0,p.jsx)(`span`,{className:`block truncate`,children:e.path}),(0,p.jsxs)(`span`,{className:`block text-[var(--text-muted)]`,children:[`+`,e.added,` −`,e.removed,e.reverted?` · ${r(`chat:focusSession.fileChangesReverted`)}`:e.approved?` · ${r(`chat:focusSession.fileChangesApproved`)}`:``]})]})]}),(0,p.jsx)(l,{type:`button`,variant:`ghost`,size:`icon`,className:`size-11 sm:size-9`,title:r(`chat:focusSession.fileChangesApproveFile`),"aria-label":`${r(`chat:focusSession.fileChangesApproveFile`)} ${e.path}`,disabled:U||!e.pending||e.approved||e.reverted,onClick:()=>void H({kind:`approve`,path:e.path}),children:(0,p.jsx)(a,{size:14})}),(0,p.jsx)(l,{type:`button`,variant:`ghost`,size:`icon`,className:`size-11 sm:size-9`,title:r(`chat:focusSession.fileChangesRevertFile`),"aria-label":`${r(`chat:focusSession.fileChangesRevertFile`)} ${e.path}`,disabled:U||e.reverted||!e.canRevert,onClick:()=>void H({kind:`revert`,path:e.path}),children:(0,p.jsx)(c,{size:14})})]},e.path)),y.files.length>h&&(0,p.jsx)(`li`,{className:`px-2 py-1 text-[length:var(--app-small-size)] text-[var(--text-muted)]`,children:r(`chat:focusSession.gitMoreFiles`,{count:y.files.length-h})})]}):!K&&(0,p.jsx)(`p`,{className:`text-[length:var(--app-font-size)] text-[var(--text-muted)]`,children:r(`chat:focusSession.fileChangesEmpty`)}),j&&(0,p.jsx)(f.Suspense,{fallback:null,children:(0,p.jsx)(m,{diff:j.diff,truncated:j.truncated,onClose:()=>M(null)})})]})}export{_ as t};
|
|
@@ -1 +1 @@
|
|
|
1
|
-
import{r as e}from"./vendor-react-DwNgTV1j.js";import{t}from"./use-i18n-
|
|
1
|
+
import{r as e}from"./vendor-react-DwNgTV1j.js";import{t}from"./use-i18n-BSZKFkMb.js";import{a as n,n as r,r as i,t as a}from"./dropdown-menu-DmL4pJTo.js";import{t as o}from"./ellipsis-CfGKfbq6.js";import{t as s}from"./button-CQA36izu.js";var c=e();function l({items:e,buttonClassName:l,compact:u=!1,onNavigate:d}){let{t:f}=t();return(0,c.jsxs)(a,{children:[(0,c.jsx)(n,{asChild:!0,children:(0,c.jsxs)(s,{variant:`ghost`,className:l,title:u?f(`navigation:workbench.moreTools`):void 0,children:[(0,c.jsx)(o,{size:16}),(0,c.jsx)(`span`,{className:u?`sr-only`:void 0,children:f(`navigation:workbench.moreTools`)})]})}),(0,c.jsx)(r,{side:`right`,align:`start`,className:`w-48`,children:e.map(([e,t,n])=>(0,c.jsxs)(i,{onSelect:()=>d(e),children:[(0,c.jsx)(n,{size:16}),t]},e))})]})}export{l as default};
|
|
@@ -1 +1 @@
|
|
|
1
|
-
import{a as e}from"./rolldown-runtime-B0Z9INg1.js";import{t}from"./index-IemAtsU4.js";import{i as n,r}from"./vendor-react-DwNgTV1j.js";import{t as i}from"./use-i18n-DyzoXal-.js";import{a,i as o,o as s}from"./vendor-state-GkUciC5H.js";import{t as c}from"./storage-BpAqa-YY.js";import{c as l,i as u,o as d,s as f}from"./dist-B_a0oV4U.js";import{a as p,c as m,i as ee,l as te,n as ne,r as re,s as h,t as g,u as _}from"./dist-swnK7PHk.js";import{t as v}from"./utils-C8uzG5AZ.js";import{t as y}from"./createLucideIcon-Cd-3GVxJ.js";import{n as ie,t as ae}from"./pin-off-DRR1KEvN.js";import{n as oe,t as se}from"./pin-Dc2zE4cS.js";import{t as ce}from"./chevron-right-C3t2Rckj.js";import{t as le}from"./circle-alert-DCChabnT.js";import{t as ue}from"./loader-circle-BOwQzHB-.js";import{t as de}from"./message-square-SKjZyY3v.js";import{t as fe}from"./pencil-U08v_vV9.js";import{t as pe}from"./plus-fQbSqB1n.js";import{t as me}from"./rotate-ccw-C0v8V77_.js";import{t as he}from"./search-D0mqDaf_.js";import{t as ge}from"./trash-2-CNrPOoPR.js";import{t as _e}from"./api-BbC90EzT.js";import{t as b}from"./button-CQA36izu.js";import{r as ve,t as ye}from"./useQuery-DdcpUQhO.js";import{a as be,t as x}from"./startup-queries-C-Xq7N50.js";import{i as xe,r as Se}from"./format-BRFKAYMT.js";import{a as Ce}from"./sidebar-CfWEKOIK.js";import{_ as we,a as Te,m as Ee,o as De,p as Oe,s as ke,t as Ae}from"./events-DJwBfKGM.js";import{a as je,c as Me,l as Ne}from"./session-list-DPpH_zbz.js";import{n as Pe}from"./pick-system-directory-Wa63igLM.js";var S=e(n(),1),C=r(),Fe=Object.defineProperty,w=(e,t)=>Fe(e,`name`,{value:t,configurable:!0}),T=`ContextMenu`,[E,Ie]=f(T,[_]),D=_(),[Le,O]=E(T),k=w(e=>{let{__scopeContextMenu:t,children:n,onOpenChange:r,open:i,dir:a,modal:o=!0}=e,s=S.useRef(!1),[c,l]=u({prop:i,defaultProp:!1,onChange:r,caller:T}),d=D(t);return(0,C.jsx)(Le,{scope:t,open:c,onOpenChange:l,modal:o,hasInteractedRef:s,children:(0,C.jsx)(p,{...d,dir:a,open:c,onOpenChange:l,modal:o,children:n})})},`ContextMenu`),A=`ContextMenuTrigger`,j=S.forwardRef(w(function(e,t){let{__scopeContextMenu:n,disabled:r=!1,...i}=e,a=O(A,n),o=D(n),[s,c]=S.useState({x:0,y:0}),u=S.useMemo(()=>({current:{getBoundingClientRect:w(()=>DOMRect.fromRect({width:0,height:0,...s}),`getBoundingClientRect`)}}),[s]),f=S.useRef(0),p=S.useCallback(()=>window.clearTimeout(f.current),[]),m=w(e=>{a.hasInteractedRef.current=!0,c({x:e.clientX,y:e.clientY}),a.onOpenChange(!0)},`handleOpen`);return S.useEffect(()=>p,[p]),S.useEffect(()=>void(r&&p()),[r,p]),(0,C.jsxs)(C.Fragment,{children:[(0,C.jsx)(g,{...o,virtualRef:u}),(0,C.jsx)(l.span,{"data-state":a.open?`open`:`closed`,"data-disabled":r?``:void 0,...i,ref:t,style:{WebkitTouchCallout:`none`,...e.style},onContextMenu:r?e.onContextMenu:d(e.onContextMenu,e=>{p(),m(e),e.preventDefault()}),onPointerDown:r?e.onPointerDown:d(e.onPointerDown,z(e=>{p(),a.open&&a.onOpenChange(!1),f.current=window.setTimeout(()=>m(e),700)})),onPointerMove:r?e.onPointerMove:d(e.onPointerMove,z(p)),onPointerCancel:r?e.onPointerCancel:d(e.onPointerCancel,z(p)),onPointerUp:r?e.onPointerUp:d(e.onPointerUp,z(p))})]})},`ContextMenuTrigger`)),M=w(e=>{let{__scopeContextMenu:t,...n}=e,r=D(t);return(0,C.jsx)(ee,{...r,...n})},`ContextMenuPortal`),N=`ContextMenuContent`,P=S.forwardRef(w(function(e,t){let{__scopeContextMenu:n,...r}=e,i=O(N,n),a=D(n),o=S.useRef(!1);return(0,C.jsx)(ne,{...a,...r,ref:t,side:`right`,sideOffset:2,align:`start`,onCloseAutoFocus:t=>{e.onCloseAutoFocus?.(t),!t.defaultPrevented&&o.current&&t.preventDefault(),o.current=!1},onInteractOutside:t=>{e.onInteractOutside?.(t),!t.defaultPrevented&&!i.modal&&(o.current=!0)},style:{...e.style,"--radix-context-menu-content-transform-origin":`var(--radix-popper-transform-origin)`,"--radix-context-menu-content-available-width":`var(--radix-popper-available-width)`,"--radix-context-menu-content-available-height":`var(--radix-popper-available-height)`,"--radix-context-menu-trigger-width":`var(--radix-popper-anchor-width)`,"--radix-context-menu-trigger-height":`var(--radix-popper-anchor-height)`}})},`ContextMenuContent`)),Re=S.forwardRef(w(function(e,t){let{__scopeContextMenu:n,...r}=e,i=D(n);return(0,C.jsx)(re,{...i,...r,ref:t})},`ContextMenuItem`)),F=`ContextMenuSub`,I=w(e=>{let{__scopeContextMenu:t,children:n,onOpenChange:r,open:i,defaultOpen:a}=e,o=D(t),[s,c]=u({prop:i,defaultProp:a??!1,onChange:r,caller:F});return(0,C.jsx)(h,{...o,open:s,onOpenChange:c,children:n})},`ContextMenuSub`),L=S.forwardRef(w(function(e,t){let{__scopeContextMenu:n,...r}=e,i=D(n);return(0,C.jsx)(te,{...i,...r,ref:t})},`ContextMenuSubTrigger`)),R=S.forwardRef(w(function(e,t){let{__scopeContextMenu:n,...r}=e,i=D(n);return(0,C.jsx)(m,{...i,...r,ref:t,style:{...e.style,"--radix-context-menu-content-transform-origin":`var(--radix-popper-transform-origin)`,"--radix-context-menu-content-available-width":`var(--radix-popper-available-width)`,"--radix-context-menu-content-available-height":`var(--radix-popper-available-height)`,"--radix-context-menu-trigger-width":`var(--radix-popper-anchor-width)`,"--radix-context-menu-trigger-height":`var(--radix-popper-anchor-height)`}})},`ContextMenuSubContent`));function z(e){return t=>t.pointerType===`mouse`?void 0:e(t)}w(z,`whenTouchOrPen`);var B=k,ze=j,V=M,H=P,U=Re,Be=I,W=L,Ve=R,He=y(`chevrons-down-up`,[[`path`,{d:`m7 20 5-5 5 5`,key:`13a0gw`}],[`path`,{d:`m7 4 5 5 5-5`,key:`1kwcof`}]]),Ue=y(`chevrons-up-down`,[[`path`,{d:`m7 15 5 5 5-5`,key:`1hf1tw`}],[`path`,{d:`m7 9 5-5 5 5`,key:`sgt6xg`}]]),We=y(`folder-closed`,[[`path`,{d:`M20 20a2 2 0 0 0 2-2V8a2 2 0 0 0-2-2h-7.9a2 2 0 0 1-1.69-.9L9.6 3.9A2 2 0 0 0 7.93 3H4a2 2 0 0 0-2 2v13a2 2 0 0 0 2 2Z`,key:`1kt360`}],[`path`,{d:`M2 10h20`,key:`1ir3d8`}]]),Ge=y(`folder-plus`,[[`path`,{d:`M12 10v6`,key:`1bos4e`}],[`path`,{d:`M9 13h6`,key:`1uhe8q`}],[`path`,{d:`M20 20a2 2 0 0 0 2-2V8a2 2 0 0 0-2-2h-7.9a2 2 0 0 1-1.69-.9L9.6 3.9A2 2 0 0 0 7.93 3H4a2 2 0 0 0-2 2v13a2 2 0 0 0 2 2Z`,key:`1kt360`}]]);function G(e=``){let t=e.trim().replace(/\\/g,`/`),n=/^\/+$/u.test(t)?`/`:t.replace(/\/+$/,``);return/^[A-Za-z]:(?:\/|$)/.test(n)?n.toLowerCase():n}function K(e){return G(e.cwd)||`\0`}function Ke(e){let t=new Map;for(let n of e){let e=K(n),r=t.get(e)||{key:e,cwd:n.cwd||``,sessions:[]};r.sessions.push(n),t.set(e,r)}return[...t.values()]}function qe(e,t){let n=new Set(e.map(e=>e.key));return[...e,...q(t).filter(e=>e!==`\0`&&!n.has(e)).map(e=>({key:e,cwd:e,sessions:[]}))]}function Je(e,t,n=``){let r=new Set(e.slice(0,t).map(e=>e.id));return Ke(e).map(e=>({...e,sessions:e.sessions.filter((e,t)=>t===0||r.has(e.id)||e.id===n)}))}function q(e){return Array.isArray(e)?[...new Set(e.filter(e=>typeof e==`string`).map(G))].filter(e=>e===`\0`||e.length>0&&!e.includes(`\0`)):[]}function Ye(e,t){return q([...e,...t])}function Xe(e,t){let n=new Map(t.map((e,t)=>[e,t]));return[...e].sort((e,r)=>(n.get(e.key)??t.length)-(n.get(r.key)??t.length))}function Ze(e,t){return e.filter(e=>K(e)===t)}function Qe(e,t,n,r){return!e||!n.has(e)&&(!r||t.some(t=>t.id===e))?null:t[0]?.id||``}async function $e(e,t){let n=[];for(let r of e)try{await t(r),n.push(r)}catch(e){return{deletedIds:n,failedId:r,error:e}}return{deletedIds:n,failedId:null,error:null}}function et(e){let t=G(e);return t&&t!==`\0`&&!t.includes(`\0`)?t:null}function J(e){let t=Object.create(null);if(!e||typeof e!=`object`||Array.isArray(e))return t;for(let[n,r]of Object.entries(e)){let e=et(n);if(!e||typeof r!=`string`)continue;let i=r.trim();i&&Array.from(i).length<=120&&(t[e]=i)}return t}var Y=o(()=>t),X=s()(a((e,t)=>({order:[],names:J(void 0),collapsed:[],rememberWorkspaces:n=>{let r=t().order,i=Ye(r,n);i.length===r.length&&i.every((e,t)=>e===r[t])||e({order:i})},forgetWorkspace:n=>{let r=t(),i=J(r.names);delete i[n],e({order:r.order.filter(e=>e!==n),names:i,collapsed:r.collapsed.filter(e=>e!==n)})},setWorkspacesCollapsed:(n,r)=>{let i=t().collapsed,a=new Set(q(n)),o=r?q([...i,...a]):i.filter(e=>!a.has(e));o.length===i.length&&o.every((e,t)=>e===i[t])||e({collapsed:o})},setWorkspaceName:(n,r)=>{let i=typeof n==`string`?et(n):null;if(!i||typeof r!=`string`)throw TypeError(`Invalid workspace name`);let a=r.trim();if(Array.from(a).length>120)throw RangeError(`Workspace name is too long`);let o=t().names;if((o[i]||``)===a)return;if(!Y)throw Error(`Workspace preferences storage is unavailable`);let s=J(o);a?s[i]=a:delete s[i];try{e({names:s})}catch(t){try{e({names:o})}catch{}throw t}}}),{name:`pisper-workspace-order`,storage:Y,version:1,partialize:({order:e,names:t,collapsed:n})=>({order:e,names:t,collapsed:n}),merge:(e,t)=>({...t,order:q(e&&typeof e==`object`&&`order`in e?e.order:void 0),names:J(e&&typeof e==`object`&&`names`in e?e.names:void 0),collapsed:q(e&&typeof e==`object`&&`collapsed`in e?e.collapsed:void 0)})}));function tt({...e}){return(0,C.jsx)(B,{"data-slot":`context-menu`,...e})}function nt({className:e,...t}){return(0,C.jsx)(ze,{"data-slot":`context-menu-trigger`,className:v(`select-none`,e),...t})}function rt({...e}){return(0,C.jsx)(Be,{"data-slot":`context-menu-sub`,...e})}function it({className:e,...t}){return(0,C.jsx)(V,{children:(0,C.jsx)(H,{"data-slot":`context-menu-content`,className:v(`z-[200] max-h-(--radix-context-menu-content-available-height) min-w-36 origin-(--radix-context-menu-content-transform-origin) overflow-x-hidden overflow-y-auto rounded-lg bg-popover p-1 text-popover-foreground shadow-md ring-1 ring-foreground/10 duration-100 data-[side=bottom]:slide-in-from-top-2 data-[side=left]:slide-in-from-right-2 data-[side=right]:slide-in-from-left-2 data-[side=top]:slide-in-from-bottom-2 data-open:animate-in data-open:fade-in-0 data-open:zoom-in-95 data-closed:animate-out data-closed:fade-out-0 data-closed:zoom-out-95`,e),...t})})}function Z({className:e,inset:t,variant:n=`default`,...r}){return(0,C.jsx)(U,{"data-slot":`context-menu-item`,"data-inset":t,"data-variant":n,className:v(`group/context-menu-item relative flex cursor-default items-center gap-1.5 rounded-md px-1.5 py-1 text-sm outline-hidden select-none focus:bg-accent focus:text-accent-foreground data-inset:pl-7 data-[variant=destructive]:text-destructive data-[variant=destructive]:focus:bg-destructive/10 data-[variant=destructive]:focus:text-destructive dark:data-[variant=destructive]:focus:bg-destructive/20 data-disabled:pointer-events-none data-disabled:opacity-50 [&_svg]:pointer-events-none [&_svg]:shrink-0 [&_svg:not([class*='size-'])]:size-4 focus:*:[svg]:text-accent-foreground data-[variant=destructive]:*:[svg]:text-destructive`,e),...r})}function at({className:e,inset:t,children:n,...r}){return(0,C.jsxs)(W,{"data-slot":`context-menu-sub-trigger`,"data-inset":t,className:v(`flex cursor-default items-center gap-1.5 rounded-md px-1.5 py-1 text-sm outline-hidden select-none focus:bg-accent focus:text-accent-foreground data-inset:pl-7 data-open:bg-accent data-open:text-accent-foreground [&_svg]:pointer-events-none [&_svg]:shrink-0 [&_svg:not([class*='size-'])]:size-4`,e),...r,children:[n,(0,C.jsx)(ce,{className:`ml-auto`})]})}function ot({className:e,...t}){return(0,C.jsx)(Ve,{"data-slot":`context-menu-sub-content`,className:v(`z-[200] min-w-32 origin-(--radix-context-menu-content-transform-origin) overflow-hidden rounded-lg border bg-popover p-1 text-popover-foreground shadow-lg duration-100 data-[side=bottom]:slide-in-from-top-2 data-[side=left]:slide-in-from-right-2 data-[side=right]:slide-in-from-left-2 data-[side=top]:slide-in-from-bottom-2 data-open:animate-in data-open:fade-in-0 data-open:zoom-in-95 data-closed:animate-out data-closed:fade-out-0 data-closed:zoom-out-95`,e),...t})}var st=24;function ct({label:e,onClick:t,children:n}){return(0,C.jsx)(b,{type:`button`,variant:`ghost`,className:`opacity-0 group-hover/workspace:opacity-100 group-focus-within/workspace:opacity-100 focus-visible:opacity-100 pointer-coarse:opacity-100 !size-7 !min-h-7 !shrink-0 !p-0 !text-[var(--text-muted)] hover:!bg-[var(--surface-hover)] hover:!text-[var(--text)] max-[650px]:!size-11 max-[650px]:!min-h-11`,title:e,"aria-label":e,onClick:t,children:n})}function Q({navigate:e,requestText:n,requestConfirm:r,notify:a}){let{t:o,language:s}=i(),l=ve(),{isMobile:u,setOpenMobile:d}=Ce(),[f,p]=(0,S.useState)(!0),[m,ee]=(0,S.useState)(``),[te,ne]=(0,S.useState)(!1),re=X(e=>e.collapsed),h=(0,S.useMemo)(()=>new Set(re),[re]),g=X(e=>e.setWorkspacesCollapsed),_=X(e=>e.order),v=X(e=>e.rememberWorkspaces),y=X(e=>e.names),Fe=X(e=>e.setWorkspaceName),w=X(e=>e.forgetWorkspace),[T,E]=(0,S.useState)(()=>t.getItem(c.activeSession)||``),[Ie,D]=(0,S.useState)(``),[Le,O]=(0,S.useState)(``),[k,A]=(0,S.useState)(!1),j=(0,S.useRef)(!1),M=(0,S.useRef)(0),[N,P]=(0,S.useState)(``);(0,S.useEffect)(()=>()=>{M.current+=1},[]);let{data:Re}=ye({...be(`sessions`),refetchInterval:2e3});(0,S.useEffect)(()=>we(window,({deletedIds:e})=>{let t=new Set(e);l.setQueryData([`sessions`],e=>e&&{...e,sessions:e.sessions.filter(e=>!t.has(e.id))})}),[l]);let F=(0,S.useMemo)(()=>je(Re?.sessions||[]),[Re]),I=(0,S.useMemo)(()=>{let e=m.trim().toLocaleLowerCase(s);return e?F.filter(t=>`${t.name||``} ${t.cwd||``} ${y[K(t)]||``}`.toLocaleLowerCase(s).includes(e)):F.filter(e=>!e.archived)},[s,m,F,y]),L=(0,S.useMemo)(()=>Ke(F),[F]);(0,S.useEffect)(()=>{v(L.map(e=>e.key))},[L,v]);let R=(0,S.useMemo)(()=>Xe(qe(L,_),_),[L,_]),z=(0,S.useMemo)(()=>{let e=Je(I,st,T),t=m.trim().toLocaleLowerCase(s);return Xe(qe(e,R.filter(e=>!t||`${e.cwd} ${y[e.key]||xe(e.cwd,s)}`.toLocaleLowerCase(s).includes(t)).map(e=>e.key)),_)},[I,_,T,R,m,s,y]),B=R.length>0&&R.every(e=>h.has(e.key)),ze=(0,S.useMemo)(()=>new Map(L.map(e=>[e.key,e.sessions.length])),[L]),V=R.find(e=>e.key===Ie)||null,H=F.find(e=>e.id===Le)||null,U=e=>e.cwd?y[e.key]||xe(e.cwd,s):o(`navigation:appSidebar.noWorkspace`);(0,S.useEffect)(()=>{let e=()=>{x(`sessions`,!0).catch(()=>{})},n=()=>{document.visibilityState===`visible`&&e()},r=e=>{let n=e.detail;E(n?.id||t.getItem(c.activeSession)||``)};return document.addEventListener(`visibilitychange`,n),window.addEventListener(Te,r),window.addEventListener(Ae,r),()=>{document.removeEventListener(`visibilitychange`,n),window.removeEventListener(Te,r),window.removeEventListener(Ae,r)}},[]);let Be=t=>{E(t),Ee(t),e(`chat`),u&&d(!1)},W=t=>{if(!Oe(t))return;let n=K({id:``,cwd:t});v([n]),ee(``),p(!0),g([n],!1),e(`chat`),u&&d(!1)},Ve=async()=>{if(j.current)return;j.current=!0;let e=M.current;A(!0);try{let t=await Pe();e===M.current&&t&&W(t)}catch(t){e===M.current&&a(t instanceof Error?t.message:String(t),`error`)}finally{j.current=!1,e===M.current&&A(!1)}},G=async(e,n=F)=>{let r=await $e(e.map(e=>e.id),e=>_e(`/api/sessions/${encodeURIComponent(e)}`,{method:`DELETE`}));ke(r.deletedIds.length?{deletedIds:r.deletedIds}:void 0);let i=null;try{i=(await x(`sessions`,!0)).sessions}catch{}let a=new Set(r.deletedIds),o=i??n.filter(e=>!a.has(e.id)),s=Qe(t.getItem(c.activeSession)||T,o,a,i!==null);return s!==null&&(E(s),s?Ee(s):(t.removeItem(c.activeSession),De(``))),{...r,sessions:o,verified:i!==null}},q=async e=>{if(N)return;let t=e.cwd?`${U(e)} · ${e.cwd}`:U(e);P(e.key);try{let n=(await x(`sessions`,!0)).sessions,i=Ze(n,e.key);if(!await r({title:o(`navigation:appSidebar.deleteProject`),message:o(`navigation:appSidebar.deleteProjectConfirm`,{project:t,count:i.length}),confirmLabel:o(`navigation:appSidebar.deleteProjectAction`)}))return;let s=await G(i,n);if(!s.verified){a(o(`navigation:appSidebar.projectDeleteUnverified`,{project:t,deleted:s.deletedIds.length}),`error`);return}let c=Ze(s.sessions,e.key).length;if(s.failedId!==null||c){a(o(`navigation:appSidebar.projectDeletePartial`,{project:t,deleted:s.deletedIds.length,remaining:c}),`error`);return}w(e.key),a(o(`navigation:appSidebar.projectDeleted`,{project:t}))}catch(e){a(e instanceof Me?o(`chat:chatHistoryPage.sessionUpdateFailed`):e instanceof Error?e.message:String(e),`error`)}finally{P(``)}},Ye=async e=>{if(N)return;let t=e.name||o(`navigation:appSidebar.untitledChat`);if(await r({title:o(`chat:chatHistoryPage.deleteChat`),message:o(`chat:chatHistoryPage.deleteChatNameThisAlsoRemovesLocalChatHistory`,{name:t}),confirmLabel:o(`chat:chatHistoryPage.delete`)})){P(e.id);try{let t=await G([e]);if(t.failedId!==null)throw t.error??Error(o(`navigation:appSidebar.chatDeleteFailed`));a(o(`chat:chatHistoryPage.chatDeleted`))}catch(e){a(e instanceof Error?e.message:String(e),`error`)}finally{P(``)}}},et=async e=>{let t=await n({title:o(`chat:chatHistoryPage.renameChat`),inputLabel:o(`chat:chatHistoryPage.chatTitle`),value:e.name,confirmLabel:o(`chat:chatHistoryPage.save`)});if(t!==null&&t!==e.name)try{let n=await _e(`/api/sessions/${encodeURIComponent(e.id)}`,{method:`PATCH`,body:JSON.stringify({name:t})});ke({id:e.id,name:n.name}),x(`sessions`,!0).catch(()=>{}),a(o(`chat:chatHistoryPage.chatTitleUpdated`))}catch(e){a(e instanceof Error?e.message:String(e),`error`)}},J=(e,t)=>{try{Fe(e.cwd,t),a(o(`navigation:appSidebar.projectNameUpdated`))}catch{a(o(`navigation:appSidebar.projectNameSaveFailed`),`error`)}},Y=async e=>{if(!e.cwd)return;let t=U(e),r=await n({title:o(`navigation:appSidebar.renameProject`),message:o(`navigation:appSidebar.renameProjectDescription`),inputLabel:o(`navigation:appSidebar.projectName`),value:t,maxLength:120,confirmLabel:o(`chat:chatHistoryPage.save`)});r===null||!r.trim()||r.trim()===t||J(e,r.trim())},Q=async(e,t,n)=>{if(!N)try{let r=await Ne(e.id,t);l.setQueryData([`sessions`],e=>e&&{...e,sessions:e.sessions.map(e=>e.id===r.id?{...e,...r}:e)}),a(n)}catch(e){a(e instanceof Error?e.message:String(e),`error`)}},lt=e=>{g([e],!h.has(e))},ut=(e=``,t=``)=>{D(e),O(t)},$=(e,t=``,n=``)=>{e.pointerType!==`mouse`&&ut(t,n)},dt=t=>{e(t),u&&d(!1)};return(0,C.jsxs)(`section`,{className:`flex min-h-0 flex-1 flex-col px-2 pt-3`,"aria-label":o(`navigation:appSidebar.recentChats`),children:[(0,C.jsxs)(`div`,{className:`mb-1 flex h-8 shrink-0 items-center gap-1 px-1.5`,children:[(0,C.jsxs)(`button`,{className:`mr-auto flex min-w-0 items-center gap-1 rounded-md px-1 py-1 text-xs text-muted-foreground hover:text-foreground`,"aria-controls":`sidebar-recent-sessions`,"aria-expanded":f,onClick:()=>p(e=>!e),children:[(0,C.jsx)(`span`,{children:o(`navigation:workbench.projects`)}),(0,C.jsx)(ce,{className:f?`rotate-90`:``,size:12})]}),(0,C.jsx)(b,{variant:`ghost`,size:`icon-sm`,className:`size-6 text-muted-foreground`,title:o(B?`navigation:appSidebar.expandAllProjects`:`navigation:appSidebar.collapseAllProjects`),"aria-label":o(B?`navigation:appSidebar.expandAllProjects`:`navigation:appSidebar.collapseAllProjects`),"aria-controls":`sidebar-recent-sessions`,"aria-expanded":!B,disabled:!R.length,onClick:()=>{p(!0),g(R.map(e=>e.key),!B)},children:B?(0,C.jsx)(Ue,{size:14}):(0,C.jsx)(He,{size:14})}),(0,C.jsx)(b,{variant:`ghost`,size:`icon-sm`,className:`size-6 text-muted-foreground`,title:o(`navigation:workbench.filterSessions`),"aria-label":o(`navigation:workbench.filterSessions`),"aria-expanded":te,onClick:()=>ne(e=>!e),children:(0,C.jsx)(he,{size:13})}),(0,C.jsx)(b,{variant:`ghost`,size:`icon-sm`,className:`size-6 text-muted-foreground`,title:o(`navigation:appSidebar.newProject`),"aria-label":o(`navigation:appSidebar.newProject`),"aria-haspopup":`dialog`,"aria-expanded":k,disabled:k,onClick:()=>void Ve(),children:(0,C.jsx)(Ge,{size:14})}),(0,C.jsx)(`button`,{className:`rounded-md px-1 py-1 text-[11px] text-muted-foreground hover:text-foreground`,"aria-label":o(`navigation:appSidebar.viewAllCountChats`,{count:F.length}),onClick:()=>dt(`chatHistory`),children:o(`navigation:appSidebar.viewAll`)})]}),(te||m)&&(0,C.jsxs)(`label`,{className:`mx-2 mb-2 flex h-8 shrink-0 items-center gap-2 rounded-lg border border-border px-2 text-muted-foreground focus-within:ring-1 focus-within:ring-ring`,children:[(0,C.jsx)(he,{size:13,"aria-hidden":`true`}),(0,C.jsx)(`input`,{className:`min-w-0 flex-1 border-0 bg-transparent text-xs outline-none`,value:m,onChange:e=>ee(e.target.value),placeholder:o(`navigation:appSidebar.searchChats`),"aria-label":o(`navigation:appSidebar.searchChats`)})]}),f&&(0,C.jsxs)(tt,{onOpenChange:e=>{e||(D(``),O(``))},children:[(0,C.jsx)(nt,{asChild:!0,children:(0,C.jsxs)(`div`,{className:`flex flex-1 min-h-0 flex-col gap-[2px] [padding-bottom:2px] overflow-y-auto [animation:page-in_var(--d1)_var(--ease-out)]`,id:`sidebar-recent-sessions`,onPointerDownCapture:e=>$(e),onContextMenuCapture:()=>ut(),children:[z.map(e=>{let t=h.has(e.key),n=U(e);return(0,C.jsxs)(`div`,{className:`nav-workspace-group [.nav-workspace-group_+_&]:mt-[3px]`,children:[(0,C.jsxs)(`div`,{className:`group/workspace flex min-w-0 items-center gap-[2px]`,onContextMenu:()=>D(e.key),onPointerDown:t=>$(t,e.key),children:[(0,C.jsxs)(`button`,{className:`flex h-8 min-w-0 flex-1 items-center gap-1.5 rounded-lg px-2 text-left text-sm text-foreground hover:bg-sidebar-accent [&_span]:min-w-0 [&_span]:flex-1 [&_span]:truncate [&_small]:hidden [&_.is-open]:rotate-90`,"aria-expanded":!t,onClick:()=>lt(e.key),title:e.cwd||n,children:[(0,C.jsx)(ce,{className:t?``:`is-open`,size:13}),(0,C.jsx)(We,{size:13}),(0,C.jsx)(`span`,{children:n}),(0,C.jsx)(`small`,{children:ze.get(e.key)||e.sessions.length})]}),e.cwd&&(0,C.jsxs)(C.Fragment,{children:[(0,C.jsx)(ct,{label:o(`navigation:appSidebar.renameProjectNamed`,{project:n}),onClick:()=>void Y(e),children:(0,C.jsx)(fe,{size:14,"aria-hidden":`true`})}),(0,C.jsx)(ct,{label:o(`navigation:appSidebar.newChatInWorkspace`,{workspace:e.cwd}),onClick:()=>W(e.cwd),children:(0,C.jsx)(pe,{size:14})})]})]}),!t&&e.sessions.map(e=>(0,C.jsxs)(`button`,{className:`flex h-8 w-full items-center gap-1 rounded-lg pl-8 pr-2.5 text-left text-sm text-foreground hover:bg-sidebar-accent ${e.id===T?`active-session bg-sidebar-accent font-medium`:`font-normal`}`,"aria-current":e.id===T?`page`:void 0,title:`${e.name||o(`navigation:appSidebar.untitledChat`)} · ${Se(e.modified,s)}`,onClick:()=>Be(e.id),onContextMenu:()=>O(e.id),onPointerDown:t=>$(t,``,e.id),children:[e.streaming&&(0,C.jsx)(ue,{className:`mr-1 size-3.5 shrink-0 animate-spin text-foreground`,"aria-label":o(`navigation:appSidebar.running`)}),e.pinned&&(0,C.jsx)(se,{className:`mr-1 size-3 shrink-0`,"aria-label":o(`navigation:appSidebar.pinned`)}),e.needsAttention&&(0,C.jsx)(le,{className:`mr-1 size-3 shrink-0`,"aria-label":o(`navigation:appSidebar.needsAttention`)}),e.unread&&(0,C.jsx)(`span`,{className:`mr-1 size-1.5 shrink-0 rounded-full bg-[var(--brand-blue)]`,"aria-label":o(`navigation:appSidebar.unread`)}),(0,C.jsx)(`span`,{className:`min-w-0 flex-1 select-none truncate`,children:e.name||o(`navigation:appSidebar.untitledChat`)}),(0,C.jsx)(`time`,{className:`shrink-0 text-xs text-muted-foreground/70`,dateTime:e.modified,children:Se(e.modified,s)}),e.archived&&(0,C.jsx)(`span`,{className:`ml-auto text-[11px] font-normal text-muted-foreground`,children:o(`navigation:appSidebar.archived`)})]},e.id)),!t&&!e.sessions.length&&(0,C.jsx)(`p`,{className:`m-0 px-8 py-1 text-xs text-muted-foreground`,children:ze.get(e.key)?o(`navigation:appSidebar.noActiveChats`):o(`navigation:appSidebar.projectEmpty`)})]},e.key)}),!z.length&&(0,C.jsx)(`span`,{className:`[padding:8px] text-[var(--text-muted)] text-xs font-normal`,children:m.trim()?o(`navigation:appSidebar.noMatchingChats`):F.length?o(`navigation:appSidebar.noActiveChats`):o(`navigation:appSidebar.noChatHistoryYet`)})]})}),(0,C.jsx)(it,{className:`w-[220px]`,children:H?(0,C.jsxs)(C.Fragment,{children:[(0,C.jsxs)(Z,{onSelect:()=>Be(H.id),children:[(0,C.jsx)(de,{size:13}),o(`navigation:appSidebar.openSession`)]}),(0,C.jsxs)(Z,{onSelect:()=>void et(H),children:[(0,C.jsx)(fe,{size:13}),o(`chat:chatHistoryPage.renameChat`)]}),(0,C.jsxs)(Z,{onSelect:()=>void Q(H,{pinned:!H.pinned},H.pinned?o(`navigation:appSidebar.unpinned`):o(`navigation:appSidebar.pinned`)),children:[H.pinned?(0,C.jsx)(ae,{size:13}):(0,C.jsx)(se,{size:13}),H.pinned?o(`navigation:appSidebar.unpin`):o(`navigation:appSidebar.pin`)]}),(0,C.jsxs)(Z,{onSelect:()=>void Q(H,{archived:!H.archived},H.archived?o(`navigation:appSidebar.restored`):o(`navigation:appSidebar.movedToArchive`)),children:[H.archived?(0,C.jsx)(ie,{size:13}):(0,C.jsx)(oe,{size:13}),H.archived?o(`navigation:appSidebar.restore`):o(`navigation:appSidebar.archive`)]}),H.unread&&(0,C.jsx)(Z,{onSelect:()=>void Q(H,{read:!0},o(`navigation:appSidebar.markedRead`)),children:o(`navigation:appSidebar.markRead`)}),(0,C.jsxs)(Z,{variant:`destructive`,disabled:!!N,onSelect:()=>void Ye(H),children:[(0,C.jsx)(ge,{size:13}),o(`chat:chatHistoryPage.delete`)]})]}):V?(0,C.jsxs)(C.Fragment,{children:[V.cwd&&(0,C.jsxs)(C.Fragment,{children:[(0,C.jsxs)(Z,{onSelect:()=>W(V.cwd),children:[(0,C.jsx)(pe,{size:13}),o(`navigation:appSidebar.newChat`)]}),(0,C.jsxs)(Z,{onSelect:()=>void Y(V),children:[(0,C.jsx)(fe,{size:13}),o(`navigation:appSidebar.renameProject`)]}),y[V.key]&&(0,C.jsxs)(Z,{onSelect:()=>J(V,``),children:[(0,C.jsx)(me,{size:13}),o(`navigation:appSidebar.resetProjectName`)]})]}),(0,C.jsxs)(Z,{variant:`destructive`,disabled:!!N,onSelect:()=>void q(V),children:[(0,C.jsx)(ge,{size:13}),o(`navigation:appSidebar.deleteProject`)]})]}):(0,C.jsxs)(C.Fragment,{children:[(0,C.jsxs)(Z,{disabled:k,onSelect:()=>void Ve(),children:[(0,C.jsx)(Ge,{size:13}),o(`navigation:appSidebar.newProject`)]}),(0,C.jsxs)(rt,{children:[(0,C.jsxs)(at,{disabled:!R.length||!!N,children:[(0,C.jsx)(ge,{size:13}),o(`navigation:appSidebar.deleteProject`)]}),(0,C.jsx)(ot,{className:`max-h-[70vh] max-w-[280px] overflow-y-auto`,children:R.map(e=>(0,C.jsx)(Z,{onSelect:()=>void q(e),children:(0,C.jsx)(`span`,{className:`truncate`,title:e.cwd||U(e),children:U(e)})},e.key))})]})]})})]})]})}export{Q as SidebarRecentSessions};
|
|
1
|
+
import{a as e}from"./rolldown-runtime-B0Z9INg1.js";import{t}from"./index-iBrSU61i.js";import{i as n,r}from"./vendor-react-DwNgTV1j.js";import{t as i}from"./use-i18n-BSZKFkMb.js";import{a,i as o,o as s}from"./vendor-state-GkUciC5H.js";import{t as c}from"./storage-BpAqa-YY.js";import{c as l,i as u,o as d,s as f}from"./dist-B_a0oV4U.js";import{a as p,c as m,i as ee,l as te,n as ne,r as re,s as h,t as g,u as _}from"./dist-swnK7PHk.js";import{t as v}from"./utils-C8uzG5AZ.js";import{t as y}from"./createLucideIcon-Cd-3GVxJ.js";import{n as ie,t as ae}from"./pin-off-DRR1KEvN.js";import{n as oe,t as se}from"./pin-Dc2zE4cS.js";import{t as ce}from"./chevron-right-C3t2Rckj.js";import{t as le}from"./circle-alert-DCChabnT.js";import{t as ue}from"./loader-circle-BOwQzHB-.js";import{t as de}from"./message-square-SKjZyY3v.js";import{t as fe}from"./pencil-U08v_vV9.js";import{t as pe}from"./plus-fQbSqB1n.js";import{t as me}from"./rotate-ccw-C0v8V77_.js";import{t as he}from"./search-D0mqDaf_.js";import{t as ge}from"./trash-2-CNrPOoPR.js";import{t as _e}from"./api-Dzobr-o_.js";import{t as b}from"./button-CQA36izu.js";import{r as ve,t as ye}from"./useQuery-DdcpUQhO.js";import{a as be,t as x}from"./startup-queries-CAQZvUIR.js";import{i as xe,r as Se}from"./format-BRFKAYMT.js";import{a as Ce}from"./sidebar-CfWEKOIK.js";import{_ as we,a as Te,m as Ee,o as De,p as Oe,s as ke,t as Ae}from"./events-Bwv6HmwM.js";import{a as je,c as Me,l as Ne}from"./session-list-CMaoK_ZX.js";import{n as Pe}from"./pick-system-directory-R1F5WyaB.js";var S=e(n(),1),C=r(),Fe=Object.defineProperty,w=(e,t)=>Fe(e,`name`,{value:t,configurable:!0}),T=`ContextMenu`,[E,Ie]=f(T,[_]),D=_(),[Le,O]=E(T),k=w(e=>{let{__scopeContextMenu:t,children:n,onOpenChange:r,open:i,dir:a,modal:o=!0}=e,s=S.useRef(!1),[c,l]=u({prop:i,defaultProp:!1,onChange:r,caller:T}),d=D(t);return(0,C.jsx)(Le,{scope:t,open:c,onOpenChange:l,modal:o,hasInteractedRef:s,children:(0,C.jsx)(p,{...d,dir:a,open:c,onOpenChange:l,modal:o,children:n})})},`ContextMenu`),A=`ContextMenuTrigger`,j=S.forwardRef(w(function(e,t){let{__scopeContextMenu:n,disabled:r=!1,...i}=e,a=O(A,n),o=D(n),[s,c]=S.useState({x:0,y:0}),u=S.useMemo(()=>({current:{getBoundingClientRect:w(()=>DOMRect.fromRect({width:0,height:0,...s}),`getBoundingClientRect`)}}),[s]),f=S.useRef(0),p=S.useCallback(()=>window.clearTimeout(f.current),[]),m=w(e=>{a.hasInteractedRef.current=!0,c({x:e.clientX,y:e.clientY}),a.onOpenChange(!0)},`handleOpen`);return S.useEffect(()=>p,[p]),S.useEffect(()=>void(r&&p()),[r,p]),(0,C.jsxs)(C.Fragment,{children:[(0,C.jsx)(g,{...o,virtualRef:u}),(0,C.jsx)(l.span,{"data-state":a.open?`open`:`closed`,"data-disabled":r?``:void 0,...i,ref:t,style:{WebkitTouchCallout:`none`,...e.style},onContextMenu:r?e.onContextMenu:d(e.onContextMenu,e=>{p(),m(e),e.preventDefault()}),onPointerDown:r?e.onPointerDown:d(e.onPointerDown,z(e=>{p(),a.open&&a.onOpenChange(!1),f.current=window.setTimeout(()=>m(e),700)})),onPointerMove:r?e.onPointerMove:d(e.onPointerMove,z(p)),onPointerCancel:r?e.onPointerCancel:d(e.onPointerCancel,z(p)),onPointerUp:r?e.onPointerUp:d(e.onPointerUp,z(p))})]})},`ContextMenuTrigger`)),M=w(e=>{let{__scopeContextMenu:t,...n}=e,r=D(t);return(0,C.jsx)(ee,{...r,...n})},`ContextMenuPortal`),N=`ContextMenuContent`,P=S.forwardRef(w(function(e,t){let{__scopeContextMenu:n,...r}=e,i=O(N,n),a=D(n),o=S.useRef(!1);return(0,C.jsx)(ne,{...a,...r,ref:t,side:`right`,sideOffset:2,align:`start`,onCloseAutoFocus:t=>{e.onCloseAutoFocus?.(t),!t.defaultPrevented&&o.current&&t.preventDefault(),o.current=!1},onInteractOutside:t=>{e.onInteractOutside?.(t),!t.defaultPrevented&&!i.modal&&(o.current=!0)},style:{...e.style,"--radix-context-menu-content-transform-origin":`var(--radix-popper-transform-origin)`,"--radix-context-menu-content-available-width":`var(--radix-popper-available-width)`,"--radix-context-menu-content-available-height":`var(--radix-popper-available-height)`,"--radix-context-menu-trigger-width":`var(--radix-popper-anchor-width)`,"--radix-context-menu-trigger-height":`var(--radix-popper-anchor-height)`}})},`ContextMenuContent`)),Re=S.forwardRef(w(function(e,t){let{__scopeContextMenu:n,...r}=e,i=D(n);return(0,C.jsx)(re,{...i,...r,ref:t})},`ContextMenuItem`)),F=`ContextMenuSub`,I=w(e=>{let{__scopeContextMenu:t,children:n,onOpenChange:r,open:i,defaultOpen:a}=e,o=D(t),[s,c]=u({prop:i,defaultProp:a??!1,onChange:r,caller:F});return(0,C.jsx)(h,{...o,open:s,onOpenChange:c,children:n})},`ContextMenuSub`),L=S.forwardRef(w(function(e,t){let{__scopeContextMenu:n,...r}=e,i=D(n);return(0,C.jsx)(te,{...i,...r,ref:t})},`ContextMenuSubTrigger`)),R=S.forwardRef(w(function(e,t){let{__scopeContextMenu:n,...r}=e,i=D(n);return(0,C.jsx)(m,{...i,...r,ref:t,style:{...e.style,"--radix-context-menu-content-transform-origin":`var(--radix-popper-transform-origin)`,"--radix-context-menu-content-available-width":`var(--radix-popper-available-width)`,"--radix-context-menu-content-available-height":`var(--radix-popper-available-height)`,"--radix-context-menu-trigger-width":`var(--radix-popper-anchor-width)`,"--radix-context-menu-trigger-height":`var(--radix-popper-anchor-height)`}})},`ContextMenuSubContent`));function z(e){return t=>t.pointerType===`mouse`?void 0:e(t)}w(z,`whenTouchOrPen`);var B=k,ze=j,V=M,H=P,U=Re,Be=I,W=L,Ve=R,He=y(`chevrons-down-up`,[[`path`,{d:`m7 20 5-5 5 5`,key:`13a0gw`}],[`path`,{d:`m7 4 5 5 5-5`,key:`1kwcof`}]]),Ue=y(`chevrons-up-down`,[[`path`,{d:`m7 15 5 5 5-5`,key:`1hf1tw`}],[`path`,{d:`m7 9 5-5 5 5`,key:`sgt6xg`}]]),We=y(`folder-closed`,[[`path`,{d:`M20 20a2 2 0 0 0 2-2V8a2 2 0 0 0-2-2h-7.9a2 2 0 0 1-1.69-.9L9.6 3.9A2 2 0 0 0 7.93 3H4a2 2 0 0 0-2 2v13a2 2 0 0 0 2 2Z`,key:`1kt360`}],[`path`,{d:`M2 10h20`,key:`1ir3d8`}]]),Ge=y(`folder-plus`,[[`path`,{d:`M12 10v6`,key:`1bos4e`}],[`path`,{d:`M9 13h6`,key:`1uhe8q`}],[`path`,{d:`M20 20a2 2 0 0 0 2-2V8a2 2 0 0 0-2-2h-7.9a2 2 0 0 1-1.69-.9L9.6 3.9A2 2 0 0 0 7.93 3H4a2 2 0 0 0-2 2v13a2 2 0 0 0 2 2Z`,key:`1kt360`}]]);function G(e=``){let t=e.trim().replace(/\\/g,`/`),n=/^\/+$/u.test(t)?`/`:t.replace(/\/+$/,``);return/^[A-Za-z]:(?:\/|$)/.test(n)?n.toLowerCase():n}function K(e){return G(e.cwd)||`\0`}function Ke(e){let t=new Map;for(let n of e){let e=K(n),r=t.get(e)||{key:e,cwd:n.cwd||``,sessions:[]};r.sessions.push(n),t.set(e,r)}return[...t.values()]}function qe(e,t){let n=new Set(e.map(e=>e.key));return[...e,...q(t).filter(e=>e!==`\0`&&!n.has(e)).map(e=>({key:e,cwd:e,sessions:[]}))]}function Je(e,t,n=``){let r=new Set(e.slice(0,t).map(e=>e.id));return Ke(e).map(e=>({...e,sessions:e.sessions.filter((e,t)=>t===0||r.has(e.id)||e.id===n)}))}function q(e){return Array.isArray(e)?[...new Set(e.filter(e=>typeof e==`string`).map(G))].filter(e=>e===`\0`||e.length>0&&!e.includes(`\0`)):[]}function Ye(e,t){return q([...e,...t])}function Xe(e,t){let n=new Map(t.map((e,t)=>[e,t]));return[...e].sort((e,r)=>(n.get(e.key)??t.length)-(n.get(r.key)??t.length))}function Ze(e,t){return e.filter(e=>K(e)===t)}function Qe(e,t,n,r){return!e||!n.has(e)&&(!r||t.some(t=>t.id===e))?null:t[0]?.id||``}async function $e(e,t){let n=[];for(let r of e)try{await t(r),n.push(r)}catch(e){return{deletedIds:n,failedId:r,error:e}}return{deletedIds:n,failedId:null,error:null}}function et(e){let t=G(e);return t&&t!==`\0`&&!t.includes(`\0`)?t:null}function J(e){let t=Object.create(null);if(!e||typeof e!=`object`||Array.isArray(e))return t;for(let[n,r]of Object.entries(e)){let e=et(n);if(!e||typeof r!=`string`)continue;let i=r.trim();i&&Array.from(i).length<=120&&(t[e]=i)}return t}var Y=o(()=>t),X=s()(a((e,t)=>({order:[],names:J(void 0),collapsed:[],rememberWorkspaces:n=>{let r=t().order,i=Ye(r,n);i.length===r.length&&i.every((e,t)=>e===r[t])||e({order:i})},forgetWorkspace:n=>{let r=t(),i=J(r.names);delete i[n],e({order:r.order.filter(e=>e!==n),names:i,collapsed:r.collapsed.filter(e=>e!==n)})},setWorkspacesCollapsed:(n,r)=>{let i=t().collapsed,a=new Set(q(n)),o=r?q([...i,...a]):i.filter(e=>!a.has(e));o.length===i.length&&o.every((e,t)=>e===i[t])||e({collapsed:o})},setWorkspaceName:(n,r)=>{let i=typeof n==`string`?et(n):null;if(!i||typeof r!=`string`)throw TypeError(`Invalid workspace name`);let a=r.trim();if(Array.from(a).length>120)throw RangeError(`Workspace name is too long`);let o=t().names;if((o[i]||``)===a)return;if(!Y)throw Error(`Workspace preferences storage is unavailable`);let s=J(o);a?s[i]=a:delete s[i];try{e({names:s})}catch(t){try{e({names:o})}catch{}throw t}}}),{name:`pisper-workspace-order`,storage:Y,version:1,partialize:({order:e,names:t,collapsed:n})=>({order:e,names:t,collapsed:n}),merge:(e,t)=>({...t,order:q(e&&typeof e==`object`&&`order`in e?e.order:void 0),names:J(e&&typeof e==`object`&&`names`in e?e.names:void 0),collapsed:q(e&&typeof e==`object`&&`collapsed`in e?e.collapsed:void 0)})}));function tt({...e}){return(0,C.jsx)(B,{"data-slot":`context-menu`,...e})}function nt({className:e,...t}){return(0,C.jsx)(ze,{"data-slot":`context-menu-trigger`,className:v(`select-none`,e),...t})}function rt({...e}){return(0,C.jsx)(Be,{"data-slot":`context-menu-sub`,...e})}function it({className:e,...t}){return(0,C.jsx)(V,{children:(0,C.jsx)(H,{"data-slot":`context-menu-content`,className:v(`z-[200] max-h-(--radix-context-menu-content-available-height) min-w-36 origin-(--radix-context-menu-content-transform-origin) overflow-x-hidden overflow-y-auto rounded-lg bg-popover p-1 text-popover-foreground shadow-md ring-1 ring-foreground/10 duration-100 data-[side=bottom]:slide-in-from-top-2 data-[side=left]:slide-in-from-right-2 data-[side=right]:slide-in-from-left-2 data-[side=top]:slide-in-from-bottom-2 data-open:animate-in data-open:fade-in-0 data-open:zoom-in-95 data-closed:animate-out data-closed:fade-out-0 data-closed:zoom-out-95`,e),...t})})}function Z({className:e,inset:t,variant:n=`default`,...r}){return(0,C.jsx)(U,{"data-slot":`context-menu-item`,"data-inset":t,"data-variant":n,className:v(`group/context-menu-item relative flex cursor-default items-center gap-1.5 rounded-md px-1.5 py-1 text-sm outline-hidden select-none focus:bg-accent focus:text-accent-foreground data-inset:pl-7 data-[variant=destructive]:text-destructive data-[variant=destructive]:focus:bg-destructive/10 data-[variant=destructive]:focus:text-destructive dark:data-[variant=destructive]:focus:bg-destructive/20 data-disabled:pointer-events-none data-disabled:opacity-50 [&_svg]:pointer-events-none [&_svg]:shrink-0 [&_svg:not([class*='size-'])]:size-4 focus:*:[svg]:text-accent-foreground data-[variant=destructive]:*:[svg]:text-destructive`,e),...r})}function at({className:e,inset:t,children:n,...r}){return(0,C.jsxs)(W,{"data-slot":`context-menu-sub-trigger`,"data-inset":t,className:v(`flex cursor-default items-center gap-1.5 rounded-md px-1.5 py-1 text-sm outline-hidden select-none focus:bg-accent focus:text-accent-foreground data-inset:pl-7 data-open:bg-accent data-open:text-accent-foreground [&_svg]:pointer-events-none [&_svg]:shrink-0 [&_svg:not([class*='size-'])]:size-4`,e),...r,children:[n,(0,C.jsx)(ce,{className:`ml-auto`})]})}function ot({className:e,...t}){return(0,C.jsx)(Ve,{"data-slot":`context-menu-sub-content`,className:v(`z-[200] min-w-32 origin-(--radix-context-menu-content-transform-origin) overflow-hidden rounded-lg border bg-popover p-1 text-popover-foreground shadow-lg duration-100 data-[side=bottom]:slide-in-from-top-2 data-[side=left]:slide-in-from-right-2 data-[side=right]:slide-in-from-left-2 data-[side=top]:slide-in-from-bottom-2 data-open:animate-in data-open:fade-in-0 data-open:zoom-in-95 data-closed:animate-out data-closed:fade-out-0 data-closed:zoom-out-95`,e),...t})}var st=24;function ct({label:e,onClick:t,children:n}){return(0,C.jsx)(b,{type:`button`,variant:`ghost`,className:`opacity-0 group-hover/workspace:opacity-100 group-focus-within/workspace:opacity-100 focus-visible:opacity-100 pointer-coarse:opacity-100 !size-7 !min-h-7 !shrink-0 !p-0 !text-[var(--text-muted)] hover:!bg-[var(--surface-hover)] hover:!text-[var(--text)] max-[650px]:!size-11 max-[650px]:!min-h-11`,title:e,"aria-label":e,onClick:t,children:n})}function Q({navigate:e,requestText:n,requestConfirm:r,notify:a}){let{t:o,language:s}=i(),l=ve(),{isMobile:u,setOpenMobile:d}=Ce(),[f,p]=(0,S.useState)(!0),[m,ee]=(0,S.useState)(``),[te,ne]=(0,S.useState)(!1),re=X(e=>e.collapsed),h=(0,S.useMemo)(()=>new Set(re),[re]),g=X(e=>e.setWorkspacesCollapsed),_=X(e=>e.order),v=X(e=>e.rememberWorkspaces),y=X(e=>e.names),Fe=X(e=>e.setWorkspaceName),w=X(e=>e.forgetWorkspace),[T,E]=(0,S.useState)(()=>t.getItem(c.activeSession)||``),[Ie,D]=(0,S.useState)(``),[Le,O]=(0,S.useState)(``),[k,A]=(0,S.useState)(!1),j=(0,S.useRef)(!1),M=(0,S.useRef)(0),[N,P]=(0,S.useState)(``);(0,S.useEffect)(()=>()=>{M.current+=1},[]);let{data:Re}=ye({...be(`sessions`),refetchInterval:2e3});(0,S.useEffect)(()=>we(window,({deletedIds:e})=>{let t=new Set(e);l.setQueryData([`sessions`],e=>e&&{...e,sessions:e.sessions.filter(e=>!t.has(e.id))})}),[l]);let F=(0,S.useMemo)(()=>je(Re?.sessions||[]),[Re]),I=(0,S.useMemo)(()=>{let e=m.trim().toLocaleLowerCase(s);return e?F.filter(t=>`${t.name||``} ${t.cwd||``} ${y[K(t)]||``}`.toLocaleLowerCase(s).includes(e)):F.filter(e=>!e.archived)},[s,m,F,y]),L=(0,S.useMemo)(()=>Ke(F),[F]);(0,S.useEffect)(()=>{v(L.map(e=>e.key))},[L,v]);let R=(0,S.useMemo)(()=>Xe(qe(L,_),_),[L,_]),z=(0,S.useMemo)(()=>{let e=Je(I,st,T),t=m.trim().toLocaleLowerCase(s);return Xe(qe(e,R.filter(e=>!t||`${e.cwd} ${y[e.key]||xe(e.cwd,s)}`.toLocaleLowerCase(s).includes(t)).map(e=>e.key)),_)},[I,_,T,R,m,s,y]),B=R.length>0&&R.every(e=>h.has(e.key)),ze=(0,S.useMemo)(()=>new Map(L.map(e=>[e.key,e.sessions.length])),[L]),V=R.find(e=>e.key===Ie)||null,H=F.find(e=>e.id===Le)||null,U=e=>e.cwd?y[e.key]||xe(e.cwd,s):o(`navigation:appSidebar.noWorkspace`);(0,S.useEffect)(()=>{let e=()=>{x(`sessions`,!0).catch(()=>{})},n=()=>{document.visibilityState===`visible`&&e()},r=e=>{let n=e.detail;E(n?.id||t.getItem(c.activeSession)||``)};return document.addEventListener(`visibilitychange`,n),window.addEventListener(Te,r),window.addEventListener(Ae,r),()=>{document.removeEventListener(`visibilitychange`,n),window.removeEventListener(Te,r),window.removeEventListener(Ae,r)}},[]);let Be=t=>{E(t),Ee(t),e(`chat`),u&&d(!1)},W=t=>{if(!Oe(t))return;let n=K({id:``,cwd:t});v([n]),ee(``),p(!0),g([n],!1),e(`chat`),u&&d(!1)},Ve=async()=>{if(j.current)return;j.current=!0;let e=M.current;A(!0);try{let t=await Pe();e===M.current&&t&&W(t)}catch(t){e===M.current&&a(t instanceof Error?t.message:String(t),`error`)}finally{j.current=!1,e===M.current&&A(!1)}},G=async(e,n=F)=>{let r=await $e(e.map(e=>e.id),e=>_e(`/api/sessions/${encodeURIComponent(e)}`,{method:`DELETE`}));ke(r.deletedIds.length?{deletedIds:r.deletedIds}:void 0);let i=null;try{i=(await x(`sessions`,!0)).sessions}catch{}let a=new Set(r.deletedIds),o=i??n.filter(e=>!a.has(e.id)),s=Qe(t.getItem(c.activeSession)||T,o,a,i!==null);return s!==null&&(E(s),s?Ee(s):(t.removeItem(c.activeSession),De(``))),{...r,sessions:o,verified:i!==null}},q=async e=>{if(N)return;let t=e.cwd?`${U(e)} · ${e.cwd}`:U(e);P(e.key);try{let n=(await x(`sessions`,!0)).sessions,i=Ze(n,e.key);if(!await r({title:o(`navigation:appSidebar.deleteProject`),message:o(`navigation:appSidebar.deleteProjectConfirm`,{project:t,count:i.length}),confirmLabel:o(`navigation:appSidebar.deleteProjectAction`)}))return;let s=await G(i,n);if(!s.verified){a(o(`navigation:appSidebar.projectDeleteUnverified`,{project:t,deleted:s.deletedIds.length}),`error`);return}let c=Ze(s.sessions,e.key).length;if(s.failedId!==null||c){a(o(`navigation:appSidebar.projectDeletePartial`,{project:t,deleted:s.deletedIds.length,remaining:c}),`error`);return}w(e.key),a(o(`navigation:appSidebar.projectDeleted`,{project:t}))}catch(e){a(e instanceof Me?o(`chat:chatHistoryPage.sessionUpdateFailed`):e instanceof Error?e.message:String(e),`error`)}finally{P(``)}},Ye=async e=>{if(N)return;let t=e.name||o(`navigation:appSidebar.untitledChat`);if(await r({title:o(`chat:chatHistoryPage.deleteChat`),message:o(`chat:chatHistoryPage.deleteChatNameThisAlsoRemovesLocalChatHistory`,{name:t}),confirmLabel:o(`chat:chatHistoryPage.delete`)})){P(e.id);try{let t=await G([e]);if(t.failedId!==null)throw t.error??Error(o(`navigation:appSidebar.chatDeleteFailed`));a(o(`chat:chatHistoryPage.chatDeleted`))}catch(e){a(e instanceof Error?e.message:String(e),`error`)}finally{P(``)}}},et=async e=>{let t=await n({title:o(`chat:chatHistoryPage.renameChat`),inputLabel:o(`chat:chatHistoryPage.chatTitle`),value:e.name,confirmLabel:o(`chat:chatHistoryPage.save`)});if(t!==null&&t!==e.name)try{let n=await _e(`/api/sessions/${encodeURIComponent(e.id)}`,{method:`PATCH`,body:JSON.stringify({name:t})});ke({id:e.id,name:n.name}),x(`sessions`,!0).catch(()=>{}),a(o(`chat:chatHistoryPage.chatTitleUpdated`))}catch(e){a(e instanceof Error?e.message:String(e),`error`)}},J=(e,t)=>{try{Fe(e.cwd,t),a(o(`navigation:appSidebar.projectNameUpdated`))}catch{a(o(`navigation:appSidebar.projectNameSaveFailed`),`error`)}},Y=async e=>{if(!e.cwd)return;let t=U(e),r=await n({title:o(`navigation:appSidebar.renameProject`),message:o(`navigation:appSidebar.renameProjectDescription`),inputLabel:o(`navigation:appSidebar.projectName`),value:t,maxLength:120,confirmLabel:o(`chat:chatHistoryPage.save`)});r===null||!r.trim()||r.trim()===t||J(e,r.trim())},Q=async(e,t,n)=>{if(!N)try{let r=await Ne(e.id,t);l.setQueryData([`sessions`],e=>e&&{...e,sessions:e.sessions.map(e=>e.id===r.id?{...e,...r}:e)}),a(n)}catch(e){a(e instanceof Error?e.message:String(e),`error`)}},lt=e=>{g([e],!h.has(e))},ut=(e=``,t=``)=>{D(e),O(t)},$=(e,t=``,n=``)=>{e.pointerType!==`mouse`&&ut(t,n)},dt=t=>{e(t),u&&d(!1)};return(0,C.jsxs)(`section`,{className:`flex min-h-0 flex-1 flex-col px-2 pt-3`,"aria-label":o(`navigation:appSidebar.recentChats`),children:[(0,C.jsxs)(`div`,{className:`mb-1 flex h-8 shrink-0 items-center gap-1 px-1.5`,children:[(0,C.jsxs)(`button`,{className:`mr-auto flex min-w-0 items-center gap-1 rounded-md px-1 py-1 text-xs text-muted-foreground hover:text-foreground`,"aria-controls":`sidebar-recent-sessions`,"aria-expanded":f,onClick:()=>p(e=>!e),children:[(0,C.jsx)(`span`,{children:o(`navigation:workbench.projects`)}),(0,C.jsx)(ce,{className:f?`rotate-90`:``,size:12})]}),(0,C.jsx)(b,{variant:`ghost`,size:`icon-sm`,className:`size-6 text-muted-foreground`,title:o(B?`navigation:appSidebar.expandAllProjects`:`navigation:appSidebar.collapseAllProjects`),"aria-label":o(B?`navigation:appSidebar.expandAllProjects`:`navigation:appSidebar.collapseAllProjects`),"aria-controls":`sidebar-recent-sessions`,"aria-expanded":!B,disabled:!R.length,onClick:()=>{p(!0),g(R.map(e=>e.key),!B)},children:B?(0,C.jsx)(Ue,{size:14}):(0,C.jsx)(He,{size:14})}),(0,C.jsx)(b,{variant:`ghost`,size:`icon-sm`,className:`size-6 text-muted-foreground`,title:o(`navigation:workbench.filterSessions`),"aria-label":o(`navigation:workbench.filterSessions`),"aria-expanded":te,onClick:()=>ne(e=>!e),children:(0,C.jsx)(he,{size:13})}),(0,C.jsx)(b,{variant:`ghost`,size:`icon-sm`,className:`size-6 text-muted-foreground`,title:o(`navigation:appSidebar.newProject`),"aria-label":o(`navigation:appSidebar.newProject`),"aria-haspopup":`dialog`,"aria-expanded":k,disabled:k,onClick:()=>void Ve(),children:(0,C.jsx)(Ge,{size:14})}),(0,C.jsx)(`button`,{className:`rounded-md px-1 py-1 text-[11px] text-muted-foreground hover:text-foreground`,"aria-label":o(`navigation:appSidebar.viewAllCountChats`,{count:F.length}),onClick:()=>dt(`chatHistory`),children:o(`navigation:appSidebar.viewAll`)})]}),(te||m)&&(0,C.jsxs)(`label`,{className:`mx-2 mb-2 flex h-8 shrink-0 items-center gap-2 rounded-lg border border-border px-2 text-muted-foreground focus-within:ring-1 focus-within:ring-ring`,children:[(0,C.jsx)(he,{size:13,"aria-hidden":`true`}),(0,C.jsx)(`input`,{className:`min-w-0 flex-1 border-0 bg-transparent text-xs outline-none`,value:m,onChange:e=>ee(e.target.value),placeholder:o(`navigation:appSidebar.searchChats`),"aria-label":o(`navigation:appSidebar.searchChats`)})]}),f&&(0,C.jsxs)(tt,{onOpenChange:e=>{e||(D(``),O(``))},children:[(0,C.jsx)(nt,{asChild:!0,children:(0,C.jsxs)(`div`,{className:`flex flex-1 min-h-0 flex-col gap-[2px] [padding-bottom:2px] overflow-y-auto [animation:page-in_var(--d1)_var(--ease-out)]`,id:`sidebar-recent-sessions`,onPointerDownCapture:e=>$(e),onContextMenuCapture:()=>ut(),children:[z.map(e=>{let t=h.has(e.key),n=U(e);return(0,C.jsxs)(`div`,{className:`nav-workspace-group [.nav-workspace-group_+_&]:mt-[3px]`,children:[(0,C.jsxs)(`div`,{className:`group/workspace flex min-w-0 items-center gap-[2px]`,onContextMenu:()=>D(e.key),onPointerDown:t=>$(t,e.key),children:[(0,C.jsxs)(`button`,{className:`flex h-8 min-w-0 flex-1 items-center gap-1.5 rounded-lg px-2 text-left text-sm text-foreground hover:bg-sidebar-accent [&_span]:min-w-0 [&_span]:flex-1 [&_span]:truncate [&_small]:hidden [&_.is-open]:rotate-90`,"aria-expanded":!t,onClick:()=>lt(e.key),title:e.cwd||n,children:[(0,C.jsx)(ce,{className:t?``:`is-open`,size:13}),(0,C.jsx)(We,{size:13}),(0,C.jsx)(`span`,{children:n}),(0,C.jsx)(`small`,{children:ze.get(e.key)||e.sessions.length})]}),e.cwd&&(0,C.jsxs)(C.Fragment,{children:[(0,C.jsx)(ct,{label:o(`navigation:appSidebar.renameProjectNamed`,{project:n}),onClick:()=>void Y(e),children:(0,C.jsx)(fe,{size:14,"aria-hidden":`true`})}),(0,C.jsx)(ct,{label:o(`navigation:appSidebar.newChatInWorkspace`,{workspace:e.cwd}),onClick:()=>W(e.cwd),children:(0,C.jsx)(pe,{size:14})})]})]}),!t&&e.sessions.map(e=>(0,C.jsxs)(`button`,{className:`flex h-8 w-full items-center gap-1 rounded-lg pl-8 pr-2.5 text-left text-sm text-foreground hover:bg-sidebar-accent ${e.id===T?`active-session bg-sidebar-accent font-medium`:`font-normal`}`,"aria-current":e.id===T?`page`:void 0,title:`${e.name||o(`navigation:appSidebar.untitledChat`)} · ${Se(e.modified,s)}`,onClick:()=>Be(e.id),onContextMenu:()=>O(e.id),onPointerDown:t=>$(t,``,e.id),children:[e.streaming&&(0,C.jsx)(ue,{className:`mr-1 size-3.5 shrink-0 animate-spin text-foreground`,"aria-label":o(`navigation:appSidebar.running`)}),e.pinned&&(0,C.jsx)(se,{className:`mr-1 size-3 shrink-0`,"aria-label":o(`navigation:appSidebar.pinned`)}),e.needsAttention&&(0,C.jsx)(le,{className:`mr-1 size-3 shrink-0`,"aria-label":o(`navigation:appSidebar.needsAttention`)}),e.unread&&(0,C.jsx)(`span`,{className:`mr-1 size-1.5 shrink-0 rounded-full bg-[var(--brand-blue)]`,"aria-label":o(`navigation:appSidebar.unread`)}),(0,C.jsx)(`span`,{className:`min-w-0 flex-1 select-none truncate`,children:e.name||o(`navigation:appSidebar.untitledChat`)}),(0,C.jsx)(`time`,{className:`shrink-0 text-xs text-muted-foreground/70`,dateTime:e.modified,children:Se(e.modified,s)}),e.archived&&(0,C.jsx)(`span`,{className:`ml-auto text-[11px] font-normal text-muted-foreground`,children:o(`navigation:appSidebar.archived`)})]},e.id)),!t&&!e.sessions.length&&(0,C.jsx)(`p`,{className:`m-0 px-8 py-1 text-xs text-muted-foreground`,children:ze.get(e.key)?o(`navigation:appSidebar.noActiveChats`):o(`navigation:appSidebar.projectEmpty`)})]},e.key)}),!z.length&&(0,C.jsx)(`span`,{className:`[padding:8px] text-[var(--text-muted)] text-xs font-normal`,children:m.trim()?o(`navigation:appSidebar.noMatchingChats`):F.length?o(`navigation:appSidebar.noActiveChats`):o(`navigation:appSidebar.noChatHistoryYet`)})]})}),(0,C.jsx)(it,{className:`w-[220px]`,children:H?(0,C.jsxs)(C.Fragment,{children:[(0,C.jsxs)(Z,{onSelect:()=>Be(H.id),children:[(0,C.jsx)(de,{size:13}),o(`navigation:appSidebar.openSession`)]}),(0,C.jsxs)(Z,{onSelect:()=>void et(H),children:[(0,C.jsx)(fe,{size:13}),o(`chat:chatHistoryPage.renameChat`)]}),(0,C.jsxs)(Z,{onSelect:()=>void Q(H,{pinned:!H.pinned},H.pinned?o(`navigation:appSidebar.unpinned`):o(`navigation:appSidebar.pinned`)),children:[H.pinned?(0,C.jsx)(ae,{size:13}):(0,C.jsx)(se,{size:13}),H.pinned?o(`navigation:appSidebar.unpin`):o(`navigation:appSidebar.pin`)]}),(0,C.jsxs)(Z,{onSelect:()=>void Q(H,{archived:!H.archived},H.archived?o(`navigation:appSidebar.restored`):o(`navigation:appSidebar.movedToArchive`)),children:[H.archived?(0,C.jsx)(ie,{size:13}):(0,C.jsx)(oe,{size:13}),H.archived?o(`navigation:appSidebar.restore`):o(`navigation:appSidebar.archive`)]}),H.unread&&(0,C.jsx)(Z,{onSelect:()=>void Q(H,{read:!0},o(`navigation:appSidebar.markedRead`)),children:o(`navigation:appSidebar.markRead`)}),(0,C.jsxs)(Z,{variant:`destructive`,disabled:!!N,onSelect:()=>void Ye(H),children:[(0,C.jsx)(ge,{size:13}),o(`chat:chatHistoryPage.delete`)]})]}):V?(0,C.jsxs)(C.Fragment,{children:[V.cwd&&(0,C.jsxs)(C.Fragment,{children:[(0,C.jsxs)(Z,{onSelect:()=>W(V.cwd),children:[(0,C.jsx)(pe,{size:13}),o(`navigation:appSidebar.newChat`)]}),(0,C.jsxs)(Z,{onSelect:()=>void Y(V),children:[(0,C.jsx)(fe,{size:13}),o(`navigation:appSidebar.renameProject`)]}),y[V.key]&&(0,C.jsxs)(Z,{onSelect:()=>J(V,``),children:[(0,C.jsx)(me,{size:13}),o(`navigation:appSidebar.resetProjectName`)]})]}),(0,C.jsxs)(Z,{variant:`destructive`,disabled:!!N,onSelect:()=>void q(V),children:[(0,C.jsx)(ge,{size:13}),o(`navigation:appSidebar.deleteProject`)]})]}):(0,C.jsxs)(C.Fragment,{children:[(0,C.jsxs)(Z,{disabled:k,onSelect:()=>void Ve(),children:[(0,C.jsx)(Ge,{size:13}),o(`navigation:appSidebar.newProject`)]}),(0,C.jsxs)(rt,{children:[(0,C.jsxs)(at,{disabled:!R.length||!!N,children:[(0,C.jsx)(ge,{size:13}),o(`navigation:appSidebar.deleteProject`)]}),(0,C.jsx)(ot,{className:`max-h-[70vh] max-w-[280px] overflow-y-auto`,children:R.map(e=>(0,C.jsx)(Z,{onSelect:()=>void q(e),children:(0,C.jsx)(`span`,{className:`truncate`,title:e.cwd||U(e),children:U(e)})},e.key))})]})]})})]})]})}export{Q as SidebarRecentSessions};
|
|
@@ -1 +1 @@
|
|
|
1
|
-
import{r as e}from"./vendor-react-DwNgTV1j.js";import{t}from"./use-i18n-
|
|
1
|
+
import{r as e}from"./vendor-react-DwNgTV1j.js";import{t}from"./use-i18n-BSZKFkMb.js";import{t as n}from"./utils-C8uzG5AZ.js";import{t as r}from"./settings-QX0oWnVK.js";import{t as i}from"./button-CQA36izu.js";var a=e();function o({onOpen:e,active:o=!1,compact:s=!1}){let{t:c}=t();return(0,a.jsxs)(i,{variant:`ghost`,onClick:e,"aria-current":o?`true`:void 0,title:s?c(`navigation:navigation.settings`):void 0,className:n(`h-11 w-full justify-start gap-2.5 rounded-lg px-2.5 text-sm font-normal text-foreground transition-colors hover:bg-sidebar-accent`,o&&`bg-sidebar-accent`,s&&`justify-center px-0`),children:[(0,a.jsx)(r,{className:`size-4`,"aria-hidden":`true`}),(0,a.jsx)(`span`,{className:s?`sr-only`:void 0,children:c(`navigation:navigation.settings`)})]})}export{o as SidebarSettingsButton};
|
|
@@ -1 +1 @@
|
|
|
1
|
-
import{r as e}from"./vendor-react-DwNgTV1j.js";import{t}from"./use-i18n-
|
|
1
|
+
import{r as e}from"./vendor-react-DwNgTV1j.js";import{t}from"./use-i18n-BSZKFkMb.js";import{t as n}from"./download-BCfIiuaL.js";import{t as r}from"./external-link-CEQqPcqc.js";import{t as i}from"./refresh-cw-TbWxTY4K.js";import{t as a}from"./rocket-BgLSjoHY.js";var o=e();function s({update:e,collapsed:s,onOpen:c}){let{t:l}=t(),u=e?.status||{state:`idle`},d=!!(e?.info?.desktop||e?.info?.mobile);if(![`available`,`downloading`,`downloaded`].includes(u.state))return null;let f=u.state===`downloading`,p=u.state===`downloaded`,m=l(p?`navigation:appSidebar.readyToRestart`:f?`navigation:appSidebar.downloading`:d?`navigation:appSidebar.updateAvailable`:`navigation:appSidebar.sourceUpdatesAvailable`),h=f?`${Math.round(u.percent||0)}%`:d&&u.availableVersion?`v${u.availableVersion}`:u.behindBy?l(`navigation:appSidebar.countCommitsBehindBranch`,{branch:u.branch||`main`,count:u.behindBy}):u.availableCommit?u.availableCommit.slice(0,7):l(`navigation:appSidebar.viewUpdateDetails`),g=p?a:f?i:d?n:r;return(0,o.jsxs)(`button`,{type:`button`,className:`flex min-h-11 w-full items-center rounded-[var(--r-sm)] border border-[var(--stroke)] bg-[var(--accent-soft)] text-[var(--text)] transition-colors hover:bg-sidebar-accent ${s?`justify-center px-0`:`gap-2.5 px-3 text-left`}`,title:`${m} · ${h}`,"aria-label":`${m} · ${h}`,onClick:c,children:[(0,o.jsx)(g,{className:f?`animate-spin shrink-0`:`shrink-0`,size:16}),!s&&(0,o.jsxs)(`span`,{className:`min-w-0`,children:[(0,o.jsx)(`strong`,{className:`block truncate text-[12px]`,children:m}),(0,o.jsx)(`small`,{className:`mt-0.5 block truncate text-[11px] text-[var(--text-muted)]`,children:h})]})]})}export{s as default};
|
|
@@ -1 +1 @@
|
|
|
1
|
-
import{a as e}from"./rolldown-runtime-B0Z9INg1.js";import{i as t,r as n}from"./vendor-react-DwNgTV1j.js";import{t as r}from"./use-i18n-DyzoXal-.js";import{t as i}from"./createLucideIcon-Cd-3GVxJ.js";import{t as a}from"./file-code-corner-BnE1ljT0.js";import{t as o}from"./image-BY_c3FYU.js";import{t as s}from"./refresh-cw-TbWxTY4K.js";import{t as c}from"./save-CHBB52P8.js";import{t as l}from"./sparkles-S_eeuqn9.js";import{t as u}from"./trash-2-CNrPOoPR.js";import{t as d}from"./wrench-6pg6_bqI.js";import{t as f}from"./api-BbC90EzT.js";import{t as p}from"./button-CQA36izu.js";import{c as m,i as h,l as g,n as _,o as v,r as y,s as b,t as x}from"./app-primitives-BBXY6U2S.js";import{t as S}from"./usePagePrimaryAction-CWPC0C_f.js";var C=i(`package`,[[`path`,{d:`M11 21.73a2 2 0 0 0 2 0l7-4A2 2 0 0 0 21 16V8a2 2 0 0 0-1-1.73l-7-4a2 2 0 0 0-2 0l-7 4A2 2 0 0 0 3 8v8a2 2 0 0 0 1 1.73z`,key:`1a0edw`}],[`path`,{d:`M12 22V12`,key:`d0xqtd`}],[`polyline`,{points:`3.29 7 12 12 20.71 7`,key:`ousv84`}],[`path`,{d:`m7.5 4.27 9 5.15`,key:`1c824w`}]]),w=e(t(),1),T=n(),E=[`all`,`global`,`project`,`design`,`code`,`docs`,`privileged`];function D(e,t=``){return t?`${e}${e.includes(`?`)?`&`:`?`}sessionId=${encodeURIComponent(t)}`:e}function O(e,t){return t(e===`global`?`skills:skillsPage.global`:e===`project`?`skills:skillsPage.project`:e===`design`?`skills:skillsPage.design`:e===`code`?`skills:skillsPage.code`:e===`docs`?`skills:skillsPage.documents`:e===`privileged`?`skills:skillsPage.highPrivilege`:`skills:skillsPage.all`)}function k(e){let t=`${e?.name||``} ${e?.description||``}`.toLowerCase();return/image|visual|design|figma|svg|图片|视觉|设计/.test(t)?o:/doc|pdf|文档|说明/.test(t)?a:/install|package|market|安装|包/.test(t)?C:/code|test|plugin|skill|代码|测试|插件|技能/.test(t)?d:l}function A(e,t){if(t===`all`)return!0;if(t===`global`)return e.sourceInfo?.scope!==`project`;if(t===`project`)return e.sourceInfo?.scope===`project`;let n=`${e.name} ${e.description} ${(e.allowedTools||[]).join(` `)}`.toLowerCase();return t===`design`?/image|visual|design|figma|svg|图片|视觉|设计/.test(n):t===`code`?/code|test|plugin|代码|测试|插件/.test(n):t===`docs`?/doc|pdf|文档|说明/.test(n):t!==`privileged`||(e.allowedTools||[]).some(e=>[`bash`,`write`,`edit`].includes(e))}function j({notify:e,query:t=``,activeSessionId:n=``,registerPrimaryAction:i,requestText:a,requestConfirm:o}){let{t:l}=r(),[d,j]=(0,w.useState)(null),[M,N]=(0,w.useState)(``),[P,F]=(0,w.useState)(`all`),[I,L]=(0,w.useState)(!1),[R,z]=(0,w.useState)(!0),[B,V]=(0,w.useState)(``),H=(0,w.useCallback)(async()=>{z(!0),V(``);try{let e=await f(D(`/api/skills`,n));return j(e),N(t=>e.skills.some(e=>e.id===t)?t:e.skills[0]?.id||``),e}catch(e){return V(e instanceof Error?e.message:String(e)),null}finally{z(!1)}},[n]);(0,w.useEffect)(()=>{H()},[H]);let U=(0,w.useCallback)(async()=>{let t=await a?.({title:l(`skills:skillsPage.importGlobalSkill`),message:l(`skills:skillsPage.globalSkillSourceHelp`),inputLabel:l(`skills:skillsPage.skillSource`),placeholder:`E:\\path\\to\\skill, npm:@scope/package, or https://github.com/...`,maxLength:2e3,confirmLabel:l(`skills:skillsPage.continue`)});if(t?.trim()&&await o?.({title:l(`skills:skillsPage.importGlobalSkill`),message:l(`skills:skillsPage.skillsProvideInstructionsToTheAgentAndMayIncludeExecutableScriptsConfirmThatYouTrustTheSource`),confirmLabel:l(`skills:skillsPage.import`),tone:`danger`})!==!1){L(!0),V(``);try{let r=await f(D(`/api/skills/install`,n),{method:`POST`,body:JSON.stringify({source:t})});j(r),N(r.installed?.[0]?.id||r.skills[0]?.id||``),e(l(`skills:skillsPage.skillInstalledAndLoadedIntoTheAgentRuntime`),`success`)}catch(t){let n=t instanceof Error?t.message:String(t);V(n),e(n,`error`)}finally{L(!1)}}},[n,e,o,a,l]);S(i,U);let W=B&&(0,T.jsxs)(h,{className:`items-center justify-between`,children:[(0,T.jsx)(`span`,{children:B}),(0,T.jsxs)(p,{variant:`outline`,disabled:R||I,onClick:()=>void H(),children:[(0,T.jsx)(s,{size:14}),l(`skills:skillsPage.retry`)]})]});if(R&&!d)return(0,T.jsx)(`div`,{className:`skills-page flex min-h-[100%] flex-col gap-[12px]`,children:(0,T.jsxs)(y,{children:[(0,T.jsx)(s,{className:`animate-spin`,size:23}),(0,T.jsx)(`h2`,{children:l(`skills:skillsPage.loadingSkills`)}),(0,T.jsx)(`p`,{children:l(`skills:skillsPage.scanningSkillDirectoriesAndConfiguredPackages`)})]})});if(!d)return(0,T.jsxs)(y,{children:[(0,T.jsx)(`h2`,{children:l(`skills:skillsPage.loadFailed`)}),W]});let G=d?.skills||[],K=G.filter(e=>A(e,P)&&`${e.name} ${e.description}`.toLowerCase().includes(t.toLowerCase())),q=G.filter(e=>e.sourceInfo?.scope!==`project`),J=G.filter(e=>e.sourceInfo?.scope===`project`),Y=K.filter(e=>e.sourceInfo?.scope!==`project`),ee=K.filter(e=>e.sourceInfo?.scope===`project`),X=G.find(e=>e.id===M)||K[0]||G[0]||null,Z=(d?.packages||[]).map(e=>({source:e.source,description:e.scope===`project`?l(`skills:skillsPage.projectScopedConfiguration`):l(`skills:skillsPage.userScopedConfiguration`),status:e.installed?l(`skills:skillsPage.locallyReady`):l(`skills:skillsPage.notMaterialized`),tone:e.installed?`green`:`gray`})).filter(e=>`${e.source} ${e.description}`.toLowerCase().includes(t.toLowerCase())),Q=async(e,t)=>{if(e){L(!0),V(``);try{let r=await f(D(`/api/skills/${encodeURIComponent(e.id)}`,n),{method:`PATCH`,body:JSON.stringify(t)});j(e=>{if(!e)return e;let t=e.skills.map(e=>e.id===r.id?r:e);return{...e,skills:t,counts:{...e.counts,enabled:t.filter(e=>e.enabled).length,modelInvocable:t.filter(e=>e.enabled&&e.modelInvocationEnabled).length}}})}catch(e){V(e instanceof Error?e.message:String(e))}finally{L(!1)}}},te=async()=>{L(!0),V(``);try{j(await f(D(`/api/skills/reload`,n),{method:`POST`,body:`{}`})),e(l(`skills:skillsPage.skillSettingsSavedAndReloaded`),`success`)}catch(e){V(e instanceof Error?e.message:String(e))}finally{L(!1)}},ne=async()=>{if(X?.removable&&await o?.({title:l(`skills:skillsPage.uninstallSkill`),message:l(`skills:skillsPage.thisRemovesTheSkillDirectoryInstalledByPisperItDoesNotUninstallTheOriginalNpmOrGitPackage`),confirmLabel:l(`skills:skillsPage.uninstall`),tone:`danger`})!==!1){L(!0),V(``);try{await f(D(`/api/skills/${encodeURIComponent(X.id)}`,n),{method:`DELETE`});let t=await H();N(t?.skills[0]?.id||``),e(l(`skills:skillsPage.skillUninstalled`),`success`)}catch(t){let n=t instanceof Error?t.message:String(t);V(n),e(n,`error`)}finally{L(!1)}}},$=(e,t,n,r,i=``)=>(0,T.jsxs)(`section`,{className:`skill-scope [.skill-scope_+_&]:[border-top:1px_solid_var(--stroke)] [.skill-scope_+_&]:pt-[14px]`,children:[(0,T.jsxs)(`div`,{className:`skill-scope-head [&_>_div]:min-w-0 [&_small]:block [&_small]:overflow-hidden [&_small]:text-[var(--text-muted)] [&_small]:font-[ui-monospace,_SFMono-Regular,_Consolas,_'Liberation_Mono',_monospace] [&_small]:text-[11px] [&_small]:text-ellipsis [&_small]:whitespace-nowrap [&_>_span]:min-w-[24px] [&_>_span]:text-[var(--text-secondary)] [&_>_span]:text-[12px] [&_>_span]:font-[600] [&_>_span]:text-right flex min-w-0 items-start justify-between gap-[10px]`,children:[(0,T.jsxs)(`div`,{children:[(0,T.jsx)(v,{title:e}),i&&(0,T.jsx)(`small`,{title:i,children:i})]}),(0,T.jsx)(`span`,{children:t.length})]}),t.length?t.map(e=>{let t=k(e);return(0,T.jsxs)(`div`,{className:`skill-row grid w-full grid-cols-[auto_minmax(0,1fr)_auto] items-center gap-[9px] border-0 [border-top:1px_solid_var(--stroke-soft)] bg-transparent p-[10px_8px] text-left hover:rounded-[var(--r-sm)] hover:bg-[var(--accent-soft)] [&.selected]:rounded-[var(--r-sm)] [&.selected]:bg-[var(--accent-soft)] [&_>_span:nth-child(2)]:flex [&_>_span:nth-child(2)]:flex-col [&_>_span:nth-child(2)]:gap-[3px] [&_strong]:text-[13px] [&_small]:text-[var(--text-muted)] [&_small]:text-[13px] grid-cols-[minmax(0,1fr)_auto] [padding-block:4px] ${X?.id===e.id?`selected`:``}`,children:[(0,T.jsxs)(`button`,{className:`skill-row-main [&_>_span:nth-child(2)]:flex [&_>_span:nth-child(2)]:min-w-0 [&_>_span:nth-child(2)]:flex-col [&_>_span:nth-child(2)]:gap-[3px] grid min-w-0 grid-cols-[auto_minmax(0,1fr)] items-center gap-[9px] border-0 bg-transparent [padding:6px_4px] text-left`,onClick:()=>N(e.id),children:[(0,T.jsx)(`span`,{className:`list-icon [.chat-resource-list_&]:grid [.chat-resource-list_&]:w-[28px] [.chat-resource-list_&]:h-[28px] [.chat-resource-list_&]:place-items-center [.chat-resource-list_&]:rounded-[var(--r-sm)] [.chat-resource-list_&]:bg-[var(--surface-subtle)] [.chat-resource-list_&]:text-[var(--star-strong)] [.session-workflow-summary_&]:grid [.session-workflow-summary_&]:w-[28px] [.session-workflow-summary_&]:h-[28px] [.session-workflow-summary_&]:place-items-center [.session-workflow-summary_&]:rounded-[var(--r-sm)] [.session-workflow-summary_&]:bg-[var(--surface-subtle)] [.session-workflow-summary_&]:text-[var(--star-strong)] grid w-[27px] h-[27px] place-items-center rounded-[var(--r-sm)] bg-[var(--accent-soft)] text-[var(--star-strong)] [.workflow-template-gallery_&]:grid [.workflow-template-gallery_&]:w-[32px] [.workflow-template-gallery_&]:h-[32px] [.workflow-template-gallery_&]:place-items-center [.workflow-template-gallery_&]:rounded-[var(--r-sm)] [.workflow-template-gallery_&]:bg-[var(--surface-subtle)] [.workflow-template-gallery_&]:text-[var(--star-strong)]`,children:(0,T.jsx)(t,{size:15})}),(0,T.jsxs)(`span`,{children:[(0,T.jsx)(`strong`,{children:e.name}),(0,T.jsx)(`small`,{className:`line-clamp-2`,title:e.description,children:e.description})]})]}),(0,T.jsx)(b,{value:e.enabled,disabled:I||R,ariaLabel:l(`skills:skillsPage.toggleSkillName`,{name:e.name}),onChange:t=>void Q(e,{enabled:t})})]},e.id)}):(0,T.jsx)(`p`,{className:`muted-copy m-[8px_0_14px] text-[var(--text-secondary)] text-[12px] leading-[1.55] skills-empty-copy !m-[8px_2px_4px]`,children:n.length?l(`skills:skillsPage.noSkillsMatchTheCurrentFilter`):r})]});return(0,T.jsxs)(`div`,{className:`skills-page flex min-h-[100%] flex-col gap-[12px]`,children:[W,(0,T.jsx)(m,{options:E.map(e=>O(e,l)),value:O(P,l),onChange:e=>F(E.find(t=>O(t,l)===e)||`all`)}),(0,T.jsxs)(`div`,{className:`skills-layout max-[1150px]:grid-cols-[repeat(2,minmax(0,1fr))] max-[650px]:grid-cols-[1fr] grid min-h-0 flex-1 grid-cols-[minmax(240px,.85fr)_minmax(290px,1.05fr)_minmax(280px,1fr)] gap-[12px]`,children:[(0,T.jsxs)(x,{className:`flex flex-col gap-[16px]`,children:[P!==`project`&&$(l(`skills:skillsPage.globalSkills`),Y,q,l(`skills:skillsPage.noGlobalSkills`),d?.locations?.global||`~/.pisper/agent/skills`),P!==`global`&&$(l(`skills:skillsPage.projectSkills`),ee,J,l(`skills:skillsPage.noProjectSkills`),d?.locations?.project||(d?.cwd?`${d.cwd.replace(/[\\/]$/,``)}/.pisper/skills`:``))]}),(0,T.jsxs)(x,{children:[(0,T.jsxs)(_,{children:[(0,T.jsx)(v,{title:l(`skills:skillsPage.configuredSkillPackages`)}),(0,T.jsx)(`span`,{className:`text-[var(--text-secondary)] text-[12px] font-[600]`,children:l(`skills:skillsPage.countSkillPackages`,{count:Z.length})})]}),Z.length?Z.map(e=>(0,T.jsxs)(`div`,{className:`market-row [&_>_span:nth-child(2)]:flex [&_>_span:nth-child(2)]:flex-col [&_>_span:nth-child(2)]:gap-[3px] [&_strong]:text-[13px] [&_small]:text-[var(--text-muted)] [&_small]:text-[13px] [&_strong]:overflow-hidden [&_strong]:text-ellipsis [&_strong]:whitespace-nowrap grid min-h-[48px] grid-cols-[auto_minmax(0,1fr)_auto] items-center gap-[8px] [border-top:1px_solid_var(--stroke-soft)] [padding:6px_2px]`,children:[(0,T.jsx)(`span`,{className:`list-icon [.chat-resource-list_&]:grid [.chat-resource-list_&]:w-[28px] [.chat-resource-list_&]:h-[28px] [.chat-resource-list_&]:place-items-center [.chat-resource-list_&]:rounded-[var(--r-sm)] [.chat-resource-list_&]:bg-[var(--surface-subtle)] [.chat-resource-list_&]:text-[var(--star-strong)] [.session-workflow-summary_&]:grid [.session-workflow-summary_&]:w-[28px] [.session-workflow-summary_&]:h-[28px] [.session-workflow-summary_&]:place-items-center [.session-workflow-summary_&]:rounded-[var(--r-sm)] [.session-workflow-summary_&]:bg-[var(--surface-subtle)] [.session-workflow-summary_&]:text-[var(--star-strong)] grid w-[27px] h-[27px] place-items-center rounded-[var(--r-sm)] bg-[var(--accent-soft)] text-[var(--star-strong)] [.workflow-template-gallery_&]:grid [.workflow-template-gallery_&]:w-[32px] [.workflow-template-gallery_&]:h-[32px] [.workflow-template-gallery_&]:place-items-center [.workflow-template-gallery_&]:rounded-[var(--r-sm)] [.workflow-template-gallery_&]:bg-[var(--surface-subtle)] [.workflow-template-gallery_&]:text-[var(--star-strong)]`,children:(0,T.jsx)(C,{size:15})}),(0,T.jsxs)(`span`,{children:[(0,T.jsx)(`strong`,{title:e.source,children:e.source}),(0,T.jsx)(`small`,{children:e.description})]}),(0,T.jsx)(g,{tone:e.tone,children:e.status})]},e.source)):(0,T.jsx)(`p`,{className:`muted-copy m-[8px_0_14px] text-[var(--text-secondary)] text-[12px] leading-[1.55] skills-empty-copy !m-[8px_2px_4px]`,children:l(`skills:skillsPage.noSkillPackagesAreConfiguredYetAfterYouInstallASkillItsSourceWillAppearHere`)})]}),(0,T.jsxs)(`div`,{className:`detail-stack flex min-w-0 flex-col gap-[12px] [.mcp-layout_>_&]:min-h-0 max-[1150px]:[.memory-layout_>_&]:[grid-column:1/-1] max-[1150px]:[.memory-layout_>_&]:grid max-[1150px]:[.memory-layout_>_&]:grid-cols-[repeat(2,minmax(0,1fr))] max-[1150px]:[.mcp-layout_>_&]:[grid-column:1/-1] max-[1150px]:[.mcp-layout_>_&]:grid max-[1150px]:[.mcp-layout_>_&]:grid-cols-[repeat(2,minmax(0,1fr))] max-[1150px]:[.skills-layout_>_&]:[grid-column:1/-1] max-[1150px]:[.skills-layout_>_&]:grid max-[1150px]:[.skills-layout_>_&]:grid-cols-[repeat(2,minmax(0,1fr))] max-[650px]:[.memory-layout_>_&]:[grid-column:auto] max-[650px]:[.memory-layout_>_&]:grid-cols-[1fr] max-[650px]:[.mcp-layout_>_&]:[grid-column:auto] max-[650px]:[.mcp-layout_>_&]:grid-cols-[1fr] max-[650px]:[.skills-layout_>_&]:[grid-column:auto] max-[650px]:[.skills-layout_>_&]:grid-cols-[1fr]`,children:[(0,T.jsxs)(x,{children:[(0,T.jsx)(v,{title:l(`skills:skillsPage.selectedSkill`)}),(0,T.jsx)(`h2`,{children:X?.name||l(`skills:skillsPage.noSkillAvailable`)}),(0,T.jsx)(`p`,{className:`muted-copy m-[8px_0_14px] text-[var(--text-secondary)] text-[12px] leading-[1.55]`,children:X?.description||l(`skills:skillsPage.addGlobalOrProjectSkill`)}),[[l(`skills:skillsPage.triggerMode`),X?.modelInvocationEnabled?l(`skills:skillsPage.automaticManual`):l(`skills:skillsPage.manualOnly`)],[l(`skills:skillsPage.permissions`),X?.allowedTools?.length?X.allowedTools.join(`, `):l(`skills:skillsPage.usesChatToolPermissions`)],[l(`skills:skillsPage.scope`),X?.sourceInfo?.scope===`project`?l(`skills:skillsPage.project`):l(`skills:skillsPage.global`)],[l(`skills:skillsPage.version`),X?.version||`latest`],[l(`skills:skillsPage.source`),X?.source||`—`]].map(e=>(0,T.jsxs)(`div`,{className:`key-value [&:first-of-type]:mt-[7px] [&_span]:text-[var(--text-muted)] [&_button]:flex [&_button]:items-center [&_button]:gap-[4px] [&_button]:border-0 [&_button]:bg-transparent [&_button]:text-[var(--text-soft)] [&_button]:text-[12px] [&_strong]:min-w-0 [&_strong]:overflow-hidden [&_strong]:text-[13px] [&_strong]:text-ellipsis [&_strong]:whitespace-nowrap flex min-h-[31px] items-center justify-between gap-[10px] [border-top:1px_solid_var(--stroke-soft)] text-[13px]`,children:[(0,T.jsx)(`span`,{children:e[0]}),(0,T.jsx)(`strong`,{children:e[1]})]},e[0])),(0,T.jsxs)(p,{variant:X?.removable?`destructive`:`default`,size:`lg`,className:`w-full`,disabled:I||R,onClick:X?.removable?ne:te,children:[X?.removable?(0,T.jsx)(u,{size:14}):(0,T.jsx)(c,{size:14}),X?.removable?l(`skills:skillsPage.uninstallSkill`):l(`skills:skillsPage.saveSettings`)]})]}),(0,T.jsxs)(x,{children:[(0,T.jsx)(v,{title:l(`skills:skillsPage.triggerConditions`)}),[[l(`skills:skillsPage.allowAutomaticModelInvocation`),!!X?.modelInvocationEnabled,!1,e=>void Q(X,{modelInvocationEnabled:e})],[l(`skills:skillsPage.supportManualSkillCommand`),!!X?.command,!0],[l(`skills:skillsPage.projectScopedSkill`),X?.sourceInfo?.scope===`project`,!0],[l(`skills:skillsPage.declaresRequiredTools`),!!X?.allowedTools?.length,!0]].map(([e,t,n,r])=>(0,T.jsxs)(`label`,{className:`check-row [&_input]:[accent-color:var(--star-strong)] flex items-center gap-[7px] [border-top:1px_solid_var(--stroke-soft)] [padding:8px_2px] text-[12px]`,children:[(0,T.jsx)(`input`,{type:`checkbox`,checked:t,disabled:!X||I||R||n,onChange:e=>r?.(e.target.checked)}),(0,T.jsx)(`span`,{children:e})]},e))]})]})]})]})}export{j as SkillsPage};
|
|
1
|
+
import{a as e}from"./rolldown-runtime-B0Z9INg1.js";import{i as t,r as n}from"./vendor-react-DwNgTV1j.js";import{t as r}from"./use-i18n-BSZKFkMb.js";import{t as i}from"./createLucideIcon-Cd-3GVxJ.js";import{t as a}from"./file-code-corner-BnE1ljT0.js";import{t as o}from"./image-BY_c3FYU.js";import{t as s}from"./refresh-cw-TbWxTY4K.js";import{t as c}from"./save-CHBB52P8.js";import{t as l}from"./sparkles-S_eeuqn9.js";import{t as u}from"./trash-2-CNrPOoPR.js";import{t as d}from"./wrench-6pg6_bqI.js";import{t as f}from"./api-Dzobr-o_.js";import{t as p}from"./button-CQA36izu.js";import{c as m,i as h,l as g,n as _,o as v,r as y,s as b,t as x}from"./app-primitives-BBXY6U2S.js";import{t as S}from"./usePagePrimaryAction-CWPC0C_f.js";var C=i(`package`,[[`path`,{d:`M11 21.73a2 2 0 0 0 2 0l7-4A2 2 0 0 0 21 16V8a2 2 0 0 0-1-1.73l-7-4a2 2 0 0 0-2 0l-7 4A2 2 0 0 0 3 8v8a2 2 0 0 0 1 1.73z`,key:`1a0edw`}],[`path`,{d:`M12 22V12`,key:`d0xqtd`}],[`polyline`,{points:`3.29 7 12 12 20.71 7`,key:`ousv84`}],[`path`,{d:`m7.5 4.27 9 5.15`,key:`1c824w`}]]),w=e(t(),1),T=n(),E=[`all`,`global`,`project`,`design`,`code`,`docs`,`privileged`];function D(e,t=``){return t?`${e}${e.includes(`?`)?`&`:`?`}sessionId=${encodeURIComponent(t)}`:e}function O(e,t){return t(e===`global`?`skills:skillsPage.global`:e===`project`?`skills:skillsPage.project`:e===`design`?`skills:skillsPage.design`:e===`code`?`skills:skillsPage.code`:e===`docs`?`skills:skillsPage.documents`:e===`privileged`?`skills:skillsPage.highPrivilege`:`skills:skillsPage.all`)}function k(e){let t=`${e?.name||``} ${e?.description||``}`.toLowerCase();return/image|visual|design|figma|svg|图片|视觉|设计/.test(t)?o:/doc|pdf|文档|说明/.test(t)?a:/install|package|market|安装|包/.test(t)?C:/code|test|plugin|skill|代码|测试|插件|技能/.test(t)?d:l}function A(e,t){if(t===`all`)return!0;if(t===`global`)return e.sourceInfo?.scope!==`project`;if(t===`project`)return e.sourceInfo?.scope===`project`;let n=`${e.name} ${e.description} ${(e.allowedTools||[]).join(` `)}`.toLowerCase();return t===`design`?/image|visual|design|figma|svg|图片|视觉|设计/.test(n):t===`code`?/code|test|plugin|代码|测试|插件/.test(n):t===`docs`?/doc|pdf|文档|说明/.test(n):t!==`privileged`||(e.allowedTools||[]).some(e=>[`bash`,`write`,`edit`].includes(e))}function j({notify:e,query:t=``,activeSessionId:n=``,registerPrimaryAction:i,requestText:a,requestConfirm:o}){let{t:l}=r(),[d,j]=(0,w.useState)(null),[M,N]=(0,w.useState)(``),[P,F]=(0,w.useState)(`all`),[I,L]=(0,w.useState)(!1),[R,z]=(0,w.useState)(!0),[B,V]=(0,w.useState)(``),H=(0,w.useCallback)(async()=>{z(!0),V(``);try{let e=await f(D(`/api/skills`,n));return j(e),N(t=>e.skills.some(e=>e.id===t)?t:e.skills[0]?.id||``),e}catch(e){return V(e instanceof Error?e.message:String(e)),null}finally{z(!1)}},[n]);(0,w.useEffect)(()=>{H()},[H]);let U=(0,w.useCallback)(async()=>{let t=await a?.({title:l(`skills:skillsPage.importGlobalSkill`),message:l(`skills:skillsPage.globalSkillSourceHelp`),inputLabel:l(`skills:skillsPage.skillSource`),placeholder:`E:\\path\\to\\skill, npm:@scope/package, or https://github.com/...`,maxLength:2e3,confirmLabel:l(`skills:skillsPage.continue`)});if(t?.trim()&&await o?.({title:l(`skills:skillsPage.importGlobalSkill`),message:l(`skills:skillsPage.skillsProvideInstructionsToTheAgentAndMayIncludeExecutableScriptsConfirmThatYouTrustTheSource`),confirmLabel:l(`skills:skillsPage.import`),tone:`danger`})!==!1){L(!0),V(``);try{let r=await f(D(`/api/skills/install`,n),{method:`POST`,body:JSON.stringify({source:t})});j(r),N(r.installed?.[0]?.id||r.skills[0]?.id||``),e(l(`skills:skillsPage.skillInstalledAndLoadedIntoTheAgentRuntime`),`success`)}catch(t){let n=t instanceof Error?t.message:String(t);V(n),e(n,`error`)}finally{L(!1)}}},[n,e,o,a,l]);S(i,U);let W=B&&(0,T.jsxs)(h,{className:`items-center justify-between`,children:[(0,T.jsx)(`span`,{children:B}),(0,T.jsxs)(p,{variant:`outline`,disabled:R||I,onClick:()=>void H(),children:[(0,T.jsx)(s,{size:14}),l(`skills:skillsPage.retry`)]})]});if(R&&!d)return(0,T.jsx)(`div`,{className:`skills-page flex min-h-[100%] flex-col gap-[12px]`,children:(0,T.jsxs)(y,{children:[(0,T.jsx)(s,{className:`animate-spin`,size:23}),(0,T.jsx)(`h2`,{children:l(`skills:skillsPage.loadingSkills`)}),(0,T.jsx)(`p`,{children:l(`skills:skillsPage.scanningSkillDirectoriesAndConfiguredPackages`)})]})});if(!d)return(0,T.jsxs)(y,{children:[(0,T.jsx)(`h2`,{children:l(`skills:skillsPage.loadFailed`)}),W]});let G=d?.skills||[],K=G.filter(e=>A(e,P)&&`${e.name} ${e.description}`.toLowerCase().includes(t.toLowerCase())),q=G.filter(e=>e.sourceInfo?.scope!==`project`),J=G.filter(e=>e.sourceInfo?.scope===`project`),Y=K.filter(e=>e.sourceInfo?.scope!==`project`),ee=K.filter(e=>e.sourceInfo?.scope===`project`),X=G.find(e=>e.id===M)||K[0]||G[0]||null,Z=(d?.packages||[]).map(e=>({source:e.source,description:e.scope===`project`?l(`skills:skillsPage.projectScopedConfiguration`):l(`skills:skillsPage.userScopedConfiguration`),status:e.installed?l(`skills:skillsPage.locallyReady`):l(`skills:skillsPage.notMaterialized`),tone:e.installed?`green`:`gray`})).filter(e=>`${e.source} ${e.description}`.toLowerCase().includes(t.toLowerCase())),Q=async(e,t)=>{if(e){L(!0),V(``);try{let r=await f(D(`/api/skills/${encodeURIComponent(e.id)}`,n),{method:`PATCH`,body:JSON.stringify(t)});j(e=>{if(!e)return e;let t=e.skills.map(e=>e.id===r.id?r:e);return{...e,skills:t,counts:{...e.counts,enabled:t.filter(e=>e.enabled).length,modelInvocable:t.filter(e=>e.enabled&&e.modelInvocationEnabled).length}}})}catch(e){V(e instanceof Error?e.message:String(e))}finally{L(!1)}}},te=async()=>{L(!0),V(``);try{j(await f(D(`/api/skills/reload`,n),{method:`POST`,body:`{}`})),e(l(`skills:skillsPage.skillSettingsSavedAndReloaded`),`success`)}catch(e){V(e instanceof Error?e.message:String(e))}finally{L(!1)}},ne=async()=>{if(X?.removable&&await o?.({title:l(`skills:skillsPage.uninstallSkill`),message:l(`skills:skillsPage.thisRemovesTheSkillDirectoryInstalledByPisperItDoesNotUninstallTheOriginalNpmOrGitPackage`),confirmLabel:l(`skills:skillsPage.uninstall`),tone:`danger`})!==!1){L(!0),V(``);try{await f(D(`/api/skills/${encodeURIComponent(X.id)}`,n),{method:`DELETE`});let t=await H();N(t?.skills[0]?.id||``),e(l(`skills:skillsPage.skillUninstalled`),`success`)}catch(t){let n=t instanceof Error?t.message:String(t);V(n),e(n,`error`)}finally{L(!1)}}},$=(e,t,n,r,i=``)=>(0,T.jsxs)(`section`,{className:`skill-scope [.skill-scope_+_&]:[border-top:1px_solid_var(--stroke)] [.skill-scope_+_&]:pt-[14px]`,children:[(0,T.jsxs)(`div`,{className:`skill-scope-head [&_>_div]:min-w-0 [&_small]:block [&_small]:overflow-hidden [&_small]:text-[var(--text-muted)] [&_small]:font-[ui-monospace,_SFMono-Regular,_Consolas,_'Liberation_Mono',_monospace] [&_small]:text-[11px] [&_small]:text-ellipsis [&_small]:whitespace-nowrap [&_>_span]:min-w-[24px] [&_>_span]:text-[var(--text-secondary)] [&_>_span]:text-[12px] [&_>_span]:font-[600] [&_>_span]:text-right flex min-w-0 items-start justify-between gap-[10px]`,children:[(0,T.jsxs)(`div`,{children:[(0,T.jsx)(v,{title:e}),i&&(0,T.jsx)(`small`,{title:i,children:i})]}),(0,T.jsx)(`span`,{children:t.length})]}),t.length?t.map(e=>{let t=k(e);return(0,T.jsxs)(`div`,{className:`skill-row grid w-full grid-cols-[auto_minmax(0,1fr)_auto] items-center gap-[9px] border-0 [border-top:1px_solid_var(--stroke-soft)] bg-transparent p-[10px_8px] text-left hover:rounded-[var(--r-sm)] hover:bg-[var(--accent-soft)] [&.selected]:rounded-[var(--r-sm)] [&.selected]:bg-[var(--accent-soft)] [&_>_span:nth-child(2)]:flex [&_>_span:nth-child(2)]:flex-col [&_>_span:nth-child(2)]:gap-[3px] [&_strong]:text-[13px] [&_small]:text-[var(--text-muted)] [&_small]:text-[13px] grid-cols-[minmax(0,1fr)_auto] [padding-block:4px] ${X?.id===e.id?`selected`:``}`,children:[(0,T.jsxs)(`button`,{className:`skill-row-main [&_>_span:nth-child(2)]:flex [&_>_span:nth-child(2)]:min-w-0 [&_>_span:nth-child(2)]:flex-col [&_>_span:nth-child(2)]:gap-[3px] grid min-w-0 grid-cols-[auto_minmax(0,1fr)] items-center gap-[9px] border-0 bg-transparent [padding:6px_4px] text-left`,onClick:()=>N(e.id),children:[(0,T.jsx)(`span`,{className:`list-icon [.chat-resource-list_&]:grid [.chat-resource-list_&]:w-[28px] [.chat-resource-list_&]:h-[28px] [.chat-resource-list_&]:place-items-center [.chat-resource-list_&]:rounded-[var(--r-sm)] [.chat-resource-list_&]:bg-[var(--surface-subtle)] [.chat-resource-list_&]:text-[var(--star-strong)] [.session-workflow-summary_&]:grid [.session-workflow-summary_&]:w-[28px] [.session-workflow-summary_&]:h-[28px] [.session-workflow-summary_&]:place-items-center [.session-workflow-summary_&]:rounded-[var(--r-sm)] [.session-workflow-summary_&]:bg-[var(--surface-subtle)] [.session-workflow-summary_&]:text-[var(--star-strong)] grid w-[27px] h-[27px] place-items-center rounded-[var(--r-sm)] bg-[var(--accent-soft)] text-[var(--star-strong)] [.workflow-template-gallery_&]:grid [.workflow-template-gallery_&]:w-[32px] [.workflow-template-gallery_&]:h-[32px] [.workflow-template-gallery_&]:place-items-center [.workflow-template-gallery_&]:rounded-[var(--r-sm)] [.workflow-template-gallery_&]:bg-[var(--surface-subtle)] [.workflow-template-gallery_&]:text-[var(--star-strong)]`,children:(0,T.jsx)(t,{size:15})}),(0,T.jsxs)(`span`,{children:[(0,T.jsx)(`strong`,{children:e.name}),(0,T.jsx)(`small`,{className:`line-clamp-2`,title:e.description,children:e.description})]})]}),(0,T.jsx)(b,{value:e.enabled,disabled:I||R,ariaLabel:l(`skills:skillsPage.toggleSkillName`,{name:e.name}),onChange:t=>void Q(e,{enabled:t})})]},e.id)}):(0,T.jsx)(`p`,{className:`muted-copy m-[8px_0_14px] text-[var(--text-secondary)] text-[12px] leading-[1.55] skills-empty-copy !m-[8px_2px_4px]`,children:n.length?l(`skills:skillsPage.noSkillsMatchTheCurrentFilter`):r})]});return(0,T.jsxs)(`div`,{className:`skills-page flex min-h-[100%] flex-col gap-[12px]`,children:[W,(0,T.jsx)(m,{options:E.map(e=>O(e,l)),value:O(P,l),onChange:e=>F(E.find(t=>O(t,l)===e)||`all`)}),(0,T.jsxs)(`div`,{className:`skills-layout max-[1150px]:grid-cols-[repeat(2,minmax(0,1fr))] max-[650px]:grid-cols-[1fr] grid min-h-0 flex-1 grid-cols-[minmax(240px,.85fr)_minmax(290px,1.05fr)_minmax(280px,1fr)] gap-[12px]`,children:[(0,T.jsxs)(x,{className:`flex flex-col gap-[16px]`,children:[P!==`project`&&$(l(`skills:skillsPage.globalSkills`),Y,q,l(`skills:skillsPage.noGlobalSkills`),d?.locations?.global||`~/.pisper/agent/skills`),P!==`global`&&$(l(`skills:skillsPage.projectSkills`),ee,J,l(`skills:skillsPage.noProjectSkills`),d?.locations?.project||(d?.cwd?`${d.cwd.replace(/[\\/]$/,``)}/.pisper/skills`:``))]}),(0,T.jsxs)(x,{children:[(0,T.jsxs)(_,{children:[(0,T.jsx)(v,{title:l(`skills:skillsPage.configuredSkillPackages`)}),(0,T.jsx)(`span`,{className:`text-[var(--text-secondary)] text-[12px] font-[600]`,children:l(`skills:skillsPage.countSkillPackages`,{count:Z.length})})]}),Z.length?Z.map(e=>(0,T.jsxs)(`div`,{className:`market-row [&_>_span:nth-child(2)]:flex [&_>_span:nth-child(2)]:flex-col [&_>_span:nth-child(2)]:gap-[3px] [&_strong]:text-[13px] [&_small]:text-[var(--text-muted)] [&_small]:text-[13px] [&_strong]:overflow-hidden [&_strong]:text-ellipsis [&_strong]:whitespace-nowrap grid min-h-[48px] grid-cols-[auto_minmax(0,1fr)_auto] items-center gap-[8px] [border-top:1px_solid_var(--stroke-soft)] [padding:6px_2px]`,children:[(0,T.jsx)(`span`,{className:`list-icon [.chat-resource-list_&]:grid [.chat-resource-list_&]:w-[28px] [.chat-resource-list_&]:h-[28px] [.chat-resource-list_&]:place-items-center [.chat-resource-list_&]:rounded-[var(--r-sm)] [.chat-resource-list_&]:bg-[var(--surface-subtle)] [.chat-resource-list_&]:text-[var(--star-strong)] [.session-workflow-summary_&]:grid [.session-workflow-summary_&]:w-[28px] [.session-workflow-summary_&]:h-[28px] [.session-workflow-summary_&]:place-items-center [.session-workflow-summary_&]:rounded-[var(--r-sm)] [.session-workflow-summary_&]:bg-[var(--surface-subtle)] [.session-workflow-summary_&]:text-[var(--star-strong)] grid w-[27px] h-[27px] place-items-center rounded-[var(--r-sm)] bg-[var(--accent-soft)] text-[var(--star-strong)] [.workflow-template-gallery_&]:grid [.workflow-template-gallery_&]:w-[32px] [.workflow-template-gallery_&]:h-[32px] [.workflow-template-gallery_&]:place-items-center [.workflow-template-gallery_&]:rounded-[var(--r-sm)] [.workflow-template-gallery_&]:bg-[var(--surface-subtle)] [.workflow-template-gallery_&]:text-[var(--star-strong)]`,children:(0,T.jsx)(C,{size:15})}),(0,T.jsxs)(`span`,{children:[(0,T.jsx)(`strong`,{title:e.source,children:e.source}),(0,T.jsx)(`small`,{children:e.description})]}),(0,T.jsx)(g,{tone:e.tone,children:e.status})]},e.source)):(0,T.jsx)(`p`,{className:`muted-copy m-[8px_0_14px] text-[var(--text-secondary)] text-[12px] leading-[1.55] skills-empty-copy !m-[8px_2px_4px]`,children:l(`skills:skillsPage.noSkillPackagesAreConfiguredYetAfterYouInstallASkillItsSourceWillAppearHere`)})]}),(0,T.jsxs)(`div`,{className:`detail-stack flex min-w-0 flex-col gap-[12px] [.mcp-layout_>_&]:min-h-0 max-[1150px]:[.memory-layout_>_&]:[grid-column:1/-1] max-[1150px]:[.memory-layout_>_&]:grid max-[1150px]:[.memory-layout_>_&]:grid-cols-[repeat(2,minmax(0,1fr))] max-[1150px]:[.mcp-layout_>_&]:[grid-column:1/-1] max-[1150px]:[.mcp-layout_>_&]:grid max-[1150px]:[.mcp-layout_>_&]:grid-cols-[repeat(2,minmax(0,1fr))] max-[1150px]:[.skills-layout_>_&]:[grid-column:1/-1] max-[1150px]:[.skills-layout_>_&]:grid max-[1150px]:[.skills-layout_>_&]:grid-cols-[repeat(2,minmax(0,1fr))] max-[650px]:[.memory-layout_>_&]:[grid-column:auto] max-[650px]:[.memory-layout_>_&]:grid-cols-[1fr] max-[650px]:[.mcp-layout_>_&]:[grid-column:auto] max-[650px]:[.mcp-layout_>_&]:grid-cols-[1fr] max-[650px]:[.skills-layout_>_&]:[grid-column:auto] max-[650px]:[.skills-layout_>_&]:grid-cols-[1fr]`,children:[(0,T.jsxs)(x,{children:[(0,T.jsx)(v,{title:l(`skills:skillsPage.selectedSkill`)}),(0,T.jsx)(`h2`,{children:X?.name||l(`skills:skillsPage.noSkillAvailable`)}),(0,T.jsx)(`p`,{className:`muted-copy m-[8px_0_14px] text-[var(--text-secondary)] text-[12px] leading-[1.55]`,children:X?.description||l(`skills:skillsPage.addGlobalOrProjectSkill`)}),[[l(`skills:skillsPage.triggerMode`),X?.modelInvocationEnabled?l(`skills:skillsPage.automaticManual`):l(`skills:skillsPage.manualOnly`)],[l(`skills:skillsPage.permissions`),X?.allowedTools?.length?X.allowedTools.join(`, `):l(`skills:skillsPage.usesChatToolPermissions`)],[l(`skills:skillsPage.scope`),X?.sourceInfo?.scope===`project`?l(`skills:skillsPage.project`):l(`skills:skillsPage.global`)],[l(`skills:skillsPage.version`),X?.version||`latest`],[l(`skills:skillsPage.source`),X?.source||`—`]].map(e=>(0,T.jsxs)(`div`,{className:`key-value [&:first-of-type]:mt-[7px] [&_span]:text-[var(--text-muted)] [&_button]:flex [&_button]:items-center [&_button]:gap-[4px] [&_button]:border-0 [&_button]:bg-transparent [&_button]:text-[var(--text-soft)] [&_button]:text-[12px] [&_strong]:min-w-0 [&_strong]:overflow-hidden [&_strong]:text-[13px] [&_strong]:text-ellipsis [&_strong]:whitespace-nowrap flex min-h-[31px] items-center justify-between gap-[10px] [border-top:1px_solid_var(--stroke-soft)] text-[13px]`,children:[(0,T.jsx)(`span`,{children:e[0]}),(0,T.jsx)(`strong`,{children:e[1]})]},e[0])),(0,T.jsxs)(p,{variant:X?.removable?`destructive`:`default`,size:`lg`,className:`w-full`,disabled:I||R,onClick:X?.removable?ne:te,children:[X?.removable?(0,T.jsx)(u,{size:14}):(0,T.jsx)(c,{size:14}),X?.removable?l(`skills:skillsPage.uninstallSkill`):l(`skills:skillsPage.saveSettings`)]})]}),(0,T.jsxs)(x,{children:[(0,T.jsx)(v,{title:l(`skills:skillsPage.triggerConditions`)}),[[l(`skills:skillsPage.allowAutomaticModelInvocation`),!!X?.modelInvocationEnabled,!1,e=>void Q(X,{modelInvocationEnabled:e})],[l(`skills:skillsPage.supportManualSkillCommand`),!!X?.command,!0],[l(`skills:skillsPage.projectScopedSkill`),X?.sourceInfo?.scope===`project`,!0],[l(`skills:skillsPage.declaresRequiredTools`),!!X?.allowedTools?.length,!0]].map(([e,t,n,r])=>(0,T.jsxs)(`label`,{className:`check-row [&_input]:[accent-color:var(--star-strong)] flex items-center gap-[7px] [border-top:1px_solid_var(--stroke-soft)] [padding:8px_2px] text-[12px]`,children:[(0,T.jsx)(`input`,{type:`checkbox`,checked:t,disabled:!X||I||R||n,onChange:e=>r?.(e.target.checked)}),(0,T.jsx)(`span`,{children:e})]},e))]})]})]})]})}export{j as SkillsPage};
|
|
@@ -1,4 +1,4 @@
|
|
|
1
|
-
import{a as e}from"./rolldown-runtime-B0Z9INg1.js";import{i as t,r as n}from"./vendor-react-DwNgTV1j.js";import{t as r}from"./createLucideIcon-Cd-3GVxJ.js";import{t as i}from"./chevron-down-CxtxIjiP.js";import{t as a}from"./minus-BuutOHSj.js";import{t as o}from"./plus-fQbSqB1n.js";import{t as s}from"./square-terminal-BVG6cUT1.js";import{t as c}from"./x-07u4-129.js";import{t as l}from"./api-BbC90EzT.js";import{t as u}from"./button-CQA36izu.js";import{r as d}from"./events-DJwBfKGM.js";var f=r(`maximize-2`,[[`path`,{d:`M15 3h6v6`,key:`1q9fwt`}],[`path`,{d:`m21 3-7 7`,key:`1l2asr`}],[`path`,{d:`m3 21 7-7`,key:`tjx5ai`}],[`path`,{d:`M9 21H3v-6`,key:`wtvkvv`}]]),p=e(t(),1),m=2,h=1,ee=class{activate(e){this._terminal=e}dispose(){}fit(){let e=this.proposeDimensions();if(!e||!this._terminal||isNaN(e.cols)||isNaN(e.rows))return;let t=this._terminal._core;(this._terminal.rows!==e.rows||this._terminal.cols!==e.cols)&&(t._renderService.clear(),this._terminal.resize(e.cols,e.rows))}proposeDimensions(){if(!this._terminal||!this._terminal.element||!this._terminal.element.parentElement)return;let e=this._terminal._core._renderService.dimensions;if(e.css.cell.width===0||e.css.cell.height===0)return;let t=this._terminal.options.scrollback===0?0:this._terminal.options.overviewRuler?.width||14,n=window.getComputedStyle(this._terminal.element.parentElement),r=parseInt(n.getPropertyValue(`height`)),i=Math.max(0,parseInt(n.getPropertyValue(`width`))),a=window.getComputedStyle(this._terminal.element),o={top:parseInt(a.getPropertyValue(`padding-top`)),bottom:parseInt(a.getPropertyValue(`padding-bottom`)),right:parseInt(a.getPropertyValue(`padding-right`)),left:parseInt(a.getPropertyValue(`padding-left`))},s=o.top+o.bottom,c=o.right+o.left,l=r-s,u=i-c-t;return{cols:Math.max(m,Math.floor(u/e.css.cell.width)),rows:Math.max(h,Math.floor(l/e.css.cell.height))}}},g=class{constructor(e,t,n,r={}){this._terminal=e,this._regex=t,this._handler=n,this._options=r}provideLinks(e,t){let n=_.computeLink(e,this._regex,this._terminal,this._handler);t(this._addCallbacks(n))}_addCallbacks(e){return e.map(e=>(e.leave=this._options.leave,e.hover=(t,n)=>{if(this._options.hover){let{range:r}=e;this._options.hover(t,n,r)}},e))}};function te(e){try{let t=new URL(e),n=t.password&&t.username?`${t.protocol}//${t.username}:${t.password}@${t.host}`:t.username?`${t.protocol}//${t.username}@${t.host}`:`${t.protocol}//${t.host}`;return e.toLocaleLowerCase().startsWith(n.toLocaleLowerCase())}catch{return!1}}var _=class e{static computeLink(t,n,r,i){let a=new RegExp(n.source,(n.flags||``)+`g`),[o,s]=e._getWindowedLineStrings(t-1,r),c=o.join(``),l,u=[];for(;l=a.exec(c);){let t=l[0];if(!te(t))continue;let[n,a]=e._mapStrIdx(r,s,0,l.index),[o,c]=e._mapStrIdx(r,n,a,t.length);if(n===-1||a===-1||o===-1||c===-1)continue;let d={start:{x:a+1,y:n+1},end:{x:c,y:o+1}};u.push({range:d,text:t,activate:i})}return u}static _getWindowedLineStrings(e,t){let n,r=e,i=e,a=0,o=``,s=[];if(n=t.buffer.active.getLine(e)){let e=n.translateToString(!0);if(n.isWrapped&&e[0]!==` `){for(a=0;(n=t.buffer.active.getLine(--r))&&a<2048&&(o=n.translateToString(!0),a+=o.length,s.push(o),!(!n.isWrapped||o.indexOf(` `)!==-1)););s.reverse()}for(s.push(e),a=0;(n=t.buffer.active.getLine(++i))&&n.isWrapped&&a<2048&&(o=n.translateToString(!0),a+=o.length,s.push(o),o.indexOf(` `)===-1););}return[s,r]}static _mapStrIdx(e,t,n,r){let i=e.buffer.active,a=i.getNullCell(),o=n;for(;r;){let e=i.getLine(t);if(!e)return[-1,-1];for(let n=o;n<e.length;++n){e.getCell(n,a);let o=a.getChars();if(a.getWidth()&&(r-=o.length||1,n===e.length-1&&o===``)){let e=i.getLine(t+1);e&&e.isWrapped&&(e.getCell(0,a),a.getWidth()===2&&(r+=1))}if(r<0)return[t,n]}t++,o=0}return[t,o]}},ne=/(https?|HTTPS?):[/]{2}[^\s"'!*(){}|\\\^<>`]*[^\s"':,.!?{}|\\\^~\[\]`()<>]/;function re(e,t){let n=window.open();if(n){try{n.opener=null}catch{}n.location.href=t}else console.warn(`Opening link blocked as opener could not be cleared`)}var ie=class{constructor(e=re,t={}){this._handler=e,this._options=t}activate(e){this._terminal=e;let t=this._options,n=t.urlRegex||ne;this._linkProvider=this._terminal.registerLinkProvider(new g(this._terminal,n,this._handler,t))}dispose(){this._linkProvider?.dispose()}},ae=Object.defineProperty,oe=Object.getOwnPropertyDescriptor,se=(e,t)=>{for(var n in t)ae(e,n,{get:t[n],enumerable:!0})},v=(e,t,n,r)=>{for(var i=r>1?void 0:r?oe(t,n):t,a=e.length-1,o;a>=0;a--)(o=e[a])&&(i=(r?o(t,n,i):o(i))||i);return r&&i&&ae(t,n,i),i},y=(e,t)=>(n,r)=>t(n,r,e),ce=`Terminal input`,b={get:()=>ce,set:e=>ce=e},le=`Too much output to announce, navigate to rows manually to read`,ue={get:()=>le,set:e=>le=e};function de(e){return e.replace(/\r?\n/g,`\r`)}function x(e,t){return t?`\x1B[200~`+e+`\x1B[201~`:e}function fe(e,t){e.clipboardData&&e.clipboardData.setData(`text/plain`,t.selectionText),e.preventDefault()}function pe(e,t,n,r){e.stopPropagation(),e.clipboardData&&me(e.clipboardData.getData(`text/plain`),t,n,r)}function me(e,t,n,r){e=de(e),e=x(e,n.decPrivateModes.bracketedPasteMode&&r.rawOptions.ignoreBracketedPasteMode!==!0),n.triggerDataEvent(e,!0),t.value=``}function he(e,t,n){let r=n.getBoundingClientRect(),i=e.clientX-r.left-10,a=e.clientY-r.top-10;t.style.width=`20px`,t.style.height=`20px`,t.style.left=`${i}px`,t.style.top=`${a}px`,t.style.zIndex=`1000`,t.focus()}function ge(e,t,n,r,i){he(e,t,n),i&&r.rightClickSelect(e),t.value=r.selectionText,t.select()}function S(e){return e>65535?(e-=65536,String.fromCharCode((e>>10)+55296)+String.fromCharCode(e%1024+56320)):String.fromCharCode(e)}function _e(e,t=0,n=e.length){let r=``;for(let i=t;i<n;++i){let t=e[i];t>65535?(t-=65536,r+=String.fromCharCode((t>>10)+55296)+String.fromCharCode(t%1024+56320)):r+=String.fromCharCode(t)}return r}var ve=class{constructor(){this._interim=0}clear(){this._interim=0}decode(e,t){let n=e.length;if(!n)return 0;let r=0,i=0;if(this._interim){let n=e.charCodeAt(i++);56320<=n&&n<=57343?t[r++]=(this._interim-55296)*1024+n-56320+65536:(t[r++]=this._interim,t[r++]=n),this._interim=0}for(let a=i;a<n;++a){let i=e.charCodeAt(a);if(55296<=i&&i<=56319){if(++a>=n)return this._interim=i,r;let o=e.charCodeAt(a);56320<=o&&o<=57343?t[r++]=(i-55296)*1024+o-56320+65536:(t[r++]=i,t[r++]=o);continue}i!==65279&&(t[r++]=i)}return r}},ye=class{constructor(){this.interim=new Uint8Array(3)}clear(){this.interim.fill(0)}decode(e,t){let n=e.length;if(!n)return 0;let r=0,i,a,o,s,c=0,l=0;if(this.interim[0]){let i=!1,a=this.interim[0];a&=(a&224)==192?31:(a&240)==224?15:7;let o=0,s;for(;(s=this.interim[++o]&63)&&o<4;)a<<=6,a|=s;let c=(this.interim[0]&224)==192?2:(this.interim[0]&240)==224?3:4,u=c-o;for(;l<u;){if(l>=n)return 0;if(s=e[l++],(s&192)!=128){l--,i=!0;break}this.interim[o++]=s,a<<=6,a|=s&63}i||(c===2?a<128?l--:t[r++]=a:c===3?a<2048||a>=55296&&a<=57343||a===65279||(t[r++]=a):a<65536||a>1114111||(t[r++]=a)),this.interim.fill(0)}let u=n-4,d=l;for(;d<n;){for(;d<u&&!((i=e[d])&128)&&!((a=e[d+1])&128)&&!((o=e[d+2])&128)&&!((s=e[d+3])&128);)t[r++]=i,t[r++]=a,t[r++]=o,t[r++]=s,d+=4;if(i=e[d++],i<128)t[r++]=i;else if((i&224)==192){if(d>=n)return this.interim[0]=i,r;if(a=e[d++],(a&192)!=128){d--;continue}if(c=(i&31)<<6|a&63,c<128){d--;continue}t[r++]=c}else if((i&240)==224){if(d>=n)return this.interim[0]=i,r;if(a=e[d++],(a&192)!=128){d--;continue}if(d>=n)return this.interim[0]=i,this.interim[1]=a,r;if(o=e[d++],(o&192)!=128){d--;continue}if(c=(i&15)<<12|(a&63)<<6|o&63,c<2048||c>=55296&&c<=57343||c===65279)continue;t[r++]=c}else if((i&248)==240){if(d>=n)return this.interim[0]=i,r;if(a=e[d++],(a&192)!=128){d--;continue}if(d>=n)return this.interim[0]=i,this.interim[1]=a,r;if(o=e[d++],(o&192)!=128){d--;continue}if(d>=n)return this.interim[0]=i,this.interim[1]=a,this.interim[2]=o,r;if(s=e[d++],(s&192)!=128){d--;continue}if(c=(i&7)<<18|(a&63)<<12|(o&63)<<6|s&63,c<65536||c>1114111)continue;t[r++]=c}}return r}},C=``,be=` `,xe=class e{constructor(){this.fg=0,this.bg=0,this.extended=new w}static toColorRGB(e){return[e>>>16&255,e>>>8&255,e&255]}static fromColorRGB(e){return(e[0]&255)<<16|(e[1]&255)<<8|e[2]&255}clone(){let t=new e;return t.fg=this.fg,t.bg=this.bg,t.extended=this.extended.clone(),t}isInverse(){return this.fg&67108864}isBold(){return this.fg&134217728}isUnderline(){return this.hasExtendedAttrs()&&this.extended.underlineStyle!==0?1:this.fg&268435456}isBlink(){return this.fg&536870912}isInvisible(){return this.fg&1073741824}isItalic(){return this.bg&67108864}isDim(){return this.bg&134217728}isStrikethrough(){return this.fg&2147483648}isProtected(){return this.bg&536870912}isOverline(){return this.bg&1073741824}getFgColorMode(){return this.fg&50331648}getBgColorMode(){return this.bg&50331648}isFgRGB(){return(this.fg&50331648)==50331648}isBgRGB(){return(this.bg&50331648)==50331648}isFgPalette(){return(this.fg&50331648)==16777216||(this.fg&50331648)==33554432}isBgPalette(){return(this.bg&50331648)==16777216||(this.bg&50331648)==33554432}isFgDefault(){return!(this.fg&50331648)}isBgDefault(){return!(this.bg&50331648)}isAttributeDefault(){return this.fg===0&&this.bg===0}getFgColor(){switch(this.fg&50331648){case 16777216:case 33554432:return this.fg&255;case 50331648:return this.fg&16777215;default:return-1}}getBgColor(){switch(this.bg&50331648){case 16777216:case 33554432:return this.bg&255;case 50331648:return this.bg&16777215;default:return-1}}hasExtendedAttrs(){return this.bg&268435456}updateExtended(){this.extended.isEmpty()?this.bg&=-268435457:this.bg|=268435456}getUnderlineColor(){if(this.bg&268435456&&~this.extended.underlineColor)switch(this.extended.underlineColor&50331648){case 16777216:case 33554432:return this.extended.underlineColor&255;case 50331648:return this.extended.underlineColor&16777215;default:return this.getFgColor()}return this.getFgColor()}getUnderlineColorMode(){return this.bg&268435456&&~this.extended.underlineColor?this.extended.underlineColor&50331648:this.getFgColorMode()}isUnderlineColorRGB(){return this.bg&268435456&&~this.extended.underlineColor?(this.extended.underlineColor&50331648)==50331648:this.isFgRGB()}isUnderlineColorPalette(){return this.bg&268435456&&~this.extended.underlineColor?(this.extended.underlineColor&50331648)==16777216||(this.extended.underlineColor&50331648)==33554432:this.isFgPalette()}isUnderlineColorDefault(){return this.bg&268435456&&~this.extended.underlineColor?!(this.extended.underlineColor&50331648):this.isFgDefault()}getUnderlineStyle(){return this.fg&268435456?this.bg&268435456?this.extended.underlineStyle:1:0}getUnderlineVariantOffset(){return this.extended.underlineVariantOffset}},w=class e{constructor(e=0,t=0){this._ext=0,this._urlId=0,this._ext=e,this._urlId=t}get ext(){return this._urlId?this._ext&-469762049|this.underlineStyle<<26:this._ext}set ext(e){this._ext=e}get underlineStyle(){return this._urlId?5:(this._ext&469762048)>>26}set underlineStyle(e){this._ext&=-469762049,this._ext|=e<<26&469762048}get underlineColor(){return this._ext&67108863}set underlineColor(e){this._ext&=-67108864,this._ext|=e&67108863}get urlId(){return this._urlId}set urlId(e){this._urlId=e}get underlineVariantOffset(){let e=(this._ext&3758096384)>>29;return e<0?e^4294967288:e}set underlineVariantOffset(e){this._ext&=536870911,this._ext|=e<<29&3758096384}clone(){return new e(this._ext,this._urlId)}isEmpty(){return this.underlineStyle===0&&this._urlId===0}},T=class e extends xe{constructor(){super(...arguments),this.content=0,this.fg=0,this.bg=0,this.extended=new w,this.combinedData=``}static fromCharData(t){let n=new e;return n.setFromCharData(t),n}isCombined(){return this.content&2097152}getWidth(){return this.content>>22}getChars(){return this.content&2097152?this.combinedData:this.content&2097151?S(this.content&2097151):``}getCode(){return this.isCombined()?this.combinedData.charCodeAt(this.combinedData.length-1):this.content&2097151}setFromCharData(e){this.fg=e[0],this.bg=0;let t=!1;if(e[1].length>2)t=!0;else if(e[1].length===2){let n=e[1].charCodeAt(0);if(55296<=n&&n<=56319){let r=e[1].charCodeAt(1);56320<=r&&r<=57343?this.content=(n-55296)*1024+r-56320+65536|e[2]<<22:t=!0}else t=!0}else this.content=e[1].charCodeAt(0)|e[2]<<22;t&&(this.combinedData=e[1],this.content=2097152|e[2]<<22)}getAsCharData(){return[this.fg,this.getChars(),this.getWidth(),this.getCode()]}},Se=`di$target`,E=`di$dependencies`,Ce=new Map;function we(e){return e[E]||[]}function D(e){if(Ce.has(e))return Ce.get(e);let t=function(e,n,r){if(arguments.length!==3)throw Error(`@IServiceName-decorator can only be used to decorate a parameter`);Te(t,e,r)};return t._id=e,Ce.set(e,t),t}function Te(e,t,n){t[Se]===t?t[E].push({id:e,index:n}):(t[E]=[{id:e,index:n}],t[Se]=t)}var O=D(`BufferService`),Ee=D(`CoreMouseService`),De=D(`CoreService`),Oe=D(`CharsetService`),ke=D(`InstantiationService`),Ae=D(`LogService`),k=D(`OptionsService`),je=D(`OscLinkService`),Me=D(`UnicodeService`),Ne=D(`DecorationService`),Pe=class{constructor(e,t,n){this._bufferService=e,this._optionsService=t,this._oscLinkService=n}provideLinks(e,t){let n=this._bufferService.buffer.lines.get(e-1);if(!n){t(void 0);return}let r=[],i=this._optionsService.rawOptions.linkHandler,a=new T,o=n.getTrimmedLength(),s=-1,c=-1,l=!1;for(let t=0;t<o;t++)if(!(c===-1&&!n.hasContent(t))){if(n.loadCell(t,a),a.hasExtendedAttrs()&&a.extended.urlId){if(c===-1){c=t,s=a.extended.urlId;continue}l=a.extended.urlId!==s}else c!==-1&&(l=!0);if(l||c!==-1&&t===o-1){let n=this._oscLinkService.getLinkData(s)?.uri;if(n){let a={start:{x:c+1,y:e},end:{x:t+ +(!l&&t===o-1),y:e}},s=!1;if(!i?.allowNonHttpProtocols)try{let e=new URL(n);[`http:`,`https:`].includes(e.protocol)||(s=!0)}catch{s=!0}s||r.push({text:n,range:a,activate:(e,t)=>i?i.activate(e,t,a):Fe(e,t),hover:(e,t)=>i?.hover?.(e,t,a),leave:(e,t)=>i?.leave?.(e,t,a)})}l=!1,a.hasExtendedAttrs()&&a.extended.urlId?(c=t,s=a.extended.urlId):(c=-1,s=-1)}}t(r)}};Pe=v([y(0,O),y(1,k),y(2,je)],Pe);function Fe(e,t){if(confirm(`Do you want to navigate to ${t}?
|
|
1
|
+
import{a as e}from"./rolldown-runtime-B0Z9INg1.js";import{i as t,r as n}from"./vendor-react-DwNgTV1j.js";import{t as r}from"./createLucideIcon-Cd-3GVxJ.js";import{t as i}from"./chevron-down-CxtxIjiP.js";import{t as a}from"./minus-BuutOHSj.js";import{t as o}from"./plus-fQbSqB1n.js";import{t as s}from"./square-terminal-BVG6cUT1.js";import{t as c}from"./x-07u4-129.js";import{t as l}from"./api-Dzobr-o_.js";import{t as u}from"./button-CQA36izu.js";import{r as d}from"./events-Bwv6HmwM.js";var f=r(`maximize-2`,[[`path`,{d:`M15 3h6v6`,key:`1q9fwt`}],[`path`,{d:`m21 3-7 7`,key:`1l2asr`}],[`path`,{d:`m3 21 7-7`,key:`tjx5ai`}],[`path`,{d:`M9 21H3v-6`,key:`wtvkvv`}]]),p=e(t(),1),m=2,h=1,ee=class{activate(e){this._terminal=e}dispose(){}fit(){let e=this.proposeDimensions();if(!e||!this._terminal||isNaN(e.cols)||isNaN(e.rows))return;let t=this._terminal._core;(this._terminal.rows!==e.rows||this._terminal.cols!==e.cols)&&(t._renderService.clear(),this._terminal.resize(e.cols,e.rows))}proposeDimensions(){if(!this._terminal||!this._terminal.element||!this._terminal.element.parentElement)return;let e=this._terminal._core._renderService.dimensions;if(e.css.cell.width===0||e.css.cell.height===0)return;let t=this._terminal.options.scrollback===0?0:this._terminal.options.overviewRuler?.width||14,n=window.getComputedStyle(this._terminal.element.parentElement),r=parseInt(n.getPropertyValue(`height`)),i=Math.max(0,parseInt(n.getPropertyValue(`width`))),a=window.getComputedStyle(this._terminal.element),o={top:parseInt(a.getPropertyValue(`padding-top`)),bottom:parseInt(a.getPropertyValue(`padding-bottom`)),right:parseInt(a.getPropertyValue(`padding-right`)),left:parseInt(a.getPropertyValue(`padding-left`))},s=o.top+o.bottom,c=o.right+o.left,l=r-s,u=i-c-t;return{cols:Math.max(m,Math.floor(u/e.css.cell.width)),rows:Math.max(h,Math.floor(l/e.css.cell.height))}}},g=class{constructor(e,t,n,r={}){this._terminal=e,this._regex=t,this._handler=n,this._options=r}provideLinks(e,t){let n=_.computeLink(e,this._regex,this._terminal,this._handler);t(this._addCallbacks(n))}_addCallbacks(e){return e.map(e=>(e.leave=this._options.leave,e.hover=(t,n)=>{if(this._options.hover){let{range:r}=e;this._options.hover(t,n,r)}},e))}};function te(e){try{let t=new URL(e),n=t.password&&t.username?`${t.protocol}//${t.username}:${t.password}@${t.host}`:t.username?`${t.protocol}//${t.username}@${t.host}`:`${t.protocol}//${t.host}`;return e.toLocaleLowerCase().startsWith(n.toLocaleLowerCase())}catch{return!1}}var _=class e{static computeLink(t,n,r,i){let a=new RegExp(n.source,(n.flags||``)+`g`),[o,s]=e._getWindowedLineStrings(t-1,r),c=o.join(``),l,u=[];for(;l=a.exec(c);){let t=l[0];if(!te(t))continue;let[n,a]=e._mapStrIdx(r,s,0,l.index),[o,c]=e._mapStrIdx(r,n,a,t.length);if(n===-1||a===-1||o===-1||c===-1)continue;let d={start:{x:a+1,y:n+1},end:{x:c,y:o+1}};u.push({range:d,text:t,activate:i})}return u}static _getWindowedLineStrings(e,t){let n,r=e,i=e,a=0,o=``,s=[];if(n=t.buffer.active.getLine(e)){let e=n.translateToString(!0);if(n.isWrapped&&e[0]!==` `){for(a=0;(n=t.buffer.active.getLine(--r))&&a<2048&&(o=n.translateToString(!0),a+=o.length,s.push(o),!(!n.isWrapped||o.indexOf(` `)!==-1)););s.reverse()}for(s.push(e),a=0;(n=t.buffer.active.getLine(++i))&&n.isWrapped&&a<2048&&(o=n.translateToString(!0),a+=o.length,s.push(o),o.indexOf(` `)===-1););}return[s,r]}static _mapStrIdx(e,t,n,r){let i=e.buffer.active,a=i.getNullCell(),o=n;for(;r;){let e=i.getLine(t);if(!e)return[-1,-1];for(let n=o;n<e.length;++n){e.getCell(n,a);let o=a.getChars();if(a.getWidth()&&(r-=o.length||1,n===e.length-1&&o===``)){let e=i.getLine(t+1);e&&e.isWrapped&&(e.getCell(0,a),a.getWidth()===2&&(r+=1))}if(r<0)return[t,n]}t++,o=0}return[t,o]}},ne=/(https?|HTTPS?):[/]{2}[^\s"'!*(){}|\\\^<>`]*[^\s"':,.!?{}|\\\^~\[\]`()<>]/;function re(e,t){let n=window.open();if(n){try{n.opener=null}catch{}n.location.href=t}else console.warn(`Opening link blocked as opener could not be cleared`)}var ie=class{constructor(e=re,t={}){this._handler=e,this._options=t}activate(e){this._terminal=e;let t=this._options,n=t.urlRegex||ne;this._linkProvider=this._terminal.registerLinkProvider(new g(this._terminal,n,this._handler,t))}dispose(){this._linkProvider?.dispose()}},ae=Object.defineProperty,oe=Object.getOwnPropertyDescriptor,se=(e,t)=>{for(var n in t)ae(e,n,{get:t[n],enumerable:!0})},v=(e,t,n,r)=>{for(var i=r>1?void 0:r?oe(t,n):t,a=e.length-1,o;a>=0;a--)(o=e[a])&&(i=(r?o(t,n,i):o(i))||i);return r&&i&&ae(t,n,i),i},y=(e,t)=>(n,r)=>t(n,r,e),ce=`Terminal input`,b={get:()=>ce,set:e=>ce=e},le=`Too much output to announce, navigate to rows manually to read`,ue={get:()=>le,set:e=>le=e};function de(e){return e.replace(/\r?\n/g,`\r`)}function x(e,t){return t?`\x1B[200~`+e+`\x1B[201~`:e}function fe(e,t){e.clipboardData&&e.clipboardData.setData(`text/plain`,t.selectionText),e.preventDefault()}function pe(e,t,n,r){e.stopPropagation(),e.clipboardData&&me(e.clipboardData.getData(`text/plain`),t,n,r)}function me(e,t,n,r){e=de(e),e=x(e,n.decPrivateModes.bracketedPasteMode&&r.rawOptions.ignoreBracketedPasteMode!==!0),n.triggerDataEvent(e,!0),t.value=``}function he(e,t,n){let r=n.getBoundingClientRect(),i=e.clientX-r.left-10,a=e.clientY-r.top-10;t.style.width=`20px`,t.style.height=`20px`,t.style.left=`${i}px`,t.style.top=`${a}px`,t.style.zIndex=`1000`,t.focus()}function ge(e,t,n,r,i){he(e,t,n),i&&r.rightClickSelect(e),t.value=r.selectionText,t.select()}function S(e){return e>65535?(e-=65536,String.fromCharCode((e>>10)+55296)+String.fromCharCode(e%1024+56320)):String.fromCharCode(e)}function _e(e,t=0,n=e.length){let r=``;for(let i=t;i<n;++i){let t=e[i];t>65535?(t-=65536,r+=String.fromCharCode((t>>10)+55296)+String.fromCharCode(t%1024+56320)):r+=String.fromCharCode(t)}return r}var ve=class{constructor(){this._interim=0}clear(){this._interim=0}decode(e,t){let n=e.length;if(!n)return 0;let r=0,i=0;if(this._interim){let n=e.charCodeAt(i++);56320<=n&&n<=57343?t[r++]=(this._interim-55296)*1024+n-56320+65536:(t[r++]=this._interim,t[r++]=n),this._interim=0}for(let a=i;a<n;++a){let i=e.charCodeAt(a);if(55296<=i&&i<=56319){if(++a>=n)return this._interim=i,r;let o=e.charCodeAt(a);56320<=o&&o<=57343?t[r++]=(i-55296)*1024+o-56320+65536:(t[r++]=i,t[r++]=o);continue}i!==65279&&(t[r++]=i)}return r}},ye=class{constructor(){this.interim=new Uint8Array(3)}clear(){this.interim.fill(0)}decode(e,t){let n=e.length;if(!n)return 0;let r=0,i,a,o,s,c=0,l=0;if(this.interim[0]){let i=!1,a=this.interim[0];a&=(a&224)==192?31:(a&240)==224?15:7;let o=0,s;for(;(s=this.interim[++o]&63)&&o<4;)a<<=6,a|=s;let c=(this.interim[0]&224)==192?2:(this.interim[0]&240)==224?3:4,u=c-o;for(;l<u;){if(l>=n)return 0;if(s=e[l++],(s&192)!=128){l--,i=!0;break}this.interim[o++]=s,a<<=6,a|=s&63}i||(c===2?a<128?l--:t[r++]=a:c===3?a<2048||a>=55296&&a<=57343||a===65279||(t[r++]=a):a<65536||a>1114111||(t[r++]=a)),this.interim.fill(0)}let u=n-4,d=l;for(;d<n;){for(;d<u&&!((i=e[d])&128)&&!((a=e[d+1])&128)&&!((o=e[d+2])&128)&&!((s=e[d+3])&128);)t[r++]=i,t[r++]=a,t[r++]=o,t[r++]=s,d+=4;if(i=e[d++],i<128)t[r++]=i;else if((i&224)==192){if(d>=n)return this.interim[0]=i,r;if(a=e[d++],(a&192)!=128){d--;continue}if(c=(i&31)<<6|a&63,c<128){d--;continue}t[r++]=c}else if((i&240)==224){if(d>=n)return this.interim[0]=i,r;if(a=e[d++],(a&192)!=128){d--;continue}if(d>=n)return this.interim[0]=i,this.interim[1]=a,r;if(o=e[d++],(o&192)!=128){d--;continue}if(c=(i&15)<<12|(a&63)<<6|o&63,c<2048||c>=55296&&c<=57343||c===65279)continue;t[r++]=c}else if((i&248)==240){if(d>=n)return this.interim[0]=i,r;if(a=e[d++],(a&192)!=128){d--;continue}if(d>=n)return this.interim[0]=i,this.interim[1]=a,r;if(o=e[d++],(o&192)!=128){d--;continue}if(d>=n)return this.interim[0]=i,this.interim[1]=a,this.interim[2]=o,r;if(s=e[d++],(s&192)!=128){d--;continue}if(c=(i&7)<<18|(a&63)<<12|(o&63)<<6|s&63,c<65536||c>1114111)continue;t[r++]=c}}return r}},C=``,be=` `,xe=class e{constructor(){this.fg=0,this.bg=0,this.extended=new w}static toColorRGB(e){return[e>>>16&255,e>>>8&255,e&255]}static fromColorRGB(e){return(e[0]&255)<<16|(e[1]&255)<<8|e[2]&255}clone(){let t=new e;return t.fg=this.fg,t.bg=this.bg,t.extended=this.extended.clone(),t}isInverse(){return this.fg&67108864}isBold(){return this.fg&134217728}isUnderline(){return this.hasExtendedAttrs()&&this.extended.underlineStyle!==0?1:this.fg&268435456}isBlink(){return this.fg&536870912}isInvisible(){return this.fg&1073741824}isItalic(){return this.bg&67108864}isDim(){return this.bg&134217728}isStrikethrough(){return this.fg&2147483648}isProtected(){return this.bg&536870912}isOverline(){return this.bg&1073741824}getFgColorMode(){return this.fg&50331648}getBgColorMode(){return this.bg&50331648}isFgRGB(){return(this.fg&50331648)==50331648}isBgRGB(){return(this.bg&50331648)==50331648}isFgPalette(){return(this.fg&50331648)==16777216||(this.fg&50331648)==33554432}isBgPalette(){return(this.bg&50331648)==16777216||(this.bg&50331648)==33554432}isFgDefault(){return!(this.fg&50331648)}isBgDefault(){return!(this.bg&50331648)}isAttributeDefault(){return this.fg===0&&this.bg===0}getFgColor(){switch(this.fg&50331648){case 16777216:case 33554432:return this.fg&255;case 50331648:return this.fg&16777215;default:return-1}}getBgColor(){switch(this.bg&50331648){case 16777216:case 33554432:return this.bg&255;case 50331648:return this.bg&16777215;default:return-1}}hasExtendedAttrs(){return this.bg&268435456}updateExtended(){this.extended.isEmpty()?this.bg&=-268435457:this.bg|=268435456}getUnderlineColor(){if(this.bg&268435456&&~this.extended.underlineColor)switch(this.extended.underlineColor&50331648){case 16777216:case 33554432:return this.extended.underlineColor&255;case 50331648:return this.extended.underlineColor&16777215;default:return this.getFgColor()}return this.getFgColor()}getUnderlineColorMode(){return this.bg&268435456&&~this.extended.underlineColor?this.extended.underlineColor&50331648:this.getFgColorMode()}isUnderlineColorRGB(){return this.bg&268435456&&~this.extended.underlineColor?(this.extended.underlineColor&50331648)==50331648:this.isFgRGB()}isUnderlineColorPalette(){return this.bg&268435456&&~this.extended.underlineColor?(this.extended.underlineColor&50331648)==16777216||(this.extended.underlineColor&50331648)==33554432:this.isFgPalette()}isUnderlineColorDefault(){return this.bg&268435456&&~this.extended.underlineColor?!(this.extended.underlineColor&50331648):this.isFgDefault()}getUnderlineStyle(){return this.fg&268435456?this.bg&268435456?this.extended.underlineStyle:1:0}getUnderlineVariantOffset(){return this.extended.underlineVariantOffset}},w=class e{constructor(e=0,t=0){this._ext=0,this._urlId=0,this._ext=e,this._urlId=t}get ext(){return this._urlId?this._ext&-469762049|this.underlineStyle<<26:this._ext}set ext(e){this._ext=e}get underlineStyle(){return this._urlId?5:(this._ext&469762048)>>26}set underlineStyle(e){this._ext&=-469762049,this._ext|=e<<26&469762048}get underlineColor(){return this._ext&67108863}set underlineColor(e){this._ext&=-67108864,this._ext|=e&67108863}get urlId(){return this._urlId}set urlId(e){this._urlId=e}get underlineVariantOffset(){let e=(this._ext&3758096384)>>29;return e<0?e^4294967288:e}set underlineVariantOffset(e){this._ext&=536870911,this._ext|=e<<29&3758096384}clone(){return new e(this._ext,this._urlId)}isEmpty(){return this.underlineStyle===0&&this._urlId===0}},T=class e extends xe{constructor(){super(...arguments),this.content=0,this.fg=0,this.bg=0,this.extended=new w,this.combinedData=``}static fromCharData(t){let n=new e;return n.setFromCharData(t),n}isCombined(){return this.content&2097152}getWidth(){return this.content>>22}getChars(){return this.content&2097152?this.combinedData:this.content&2097151?S(this.content&2097151):``}getCode(){return this.isCombined()?this.combinedData.charCodeAt(this.combinedData.length-1):this.content&2097151}setFromCharData(e){this.fg=e[0],this.bg=0;let t=!1;if(e[1].length>2)t=!0;else if(e[1].length===2){let n=e[1].charCodeAt(0);if(55296<=n&&n<=56319){let r=e[1].charCodeAt(1);56320<=r&&r<=57343?this.content=(n-55296)*1024+r-56320+65536|e[2]<<22:t=!0}else t=!0}else this.content=e[1].charCodeAt(0)|e[2]<<22;t&&(this.combinedData=e[1],this.content=2097152|e[2]<<22)}getAsCharData(){return[this.fg,this.getChars(),this.getWidth(),this.getCode()]}},Se=`di$target`,E=`di$dependencies`,Ce=new Map;function we(e){return e[E]||[]}function D(e){if(Ce.has(e))return Ce.get(e);let t=function(e,n,r){if(arguments.length!==3)throw Error(`@IServiceName-decorator can only be used to decorate a parameter`);Te(t,e,r)};return t._id=e,Ce.set(e,t),t}function Te(e,t,n){t[Se]===t?t[E].push({id:e,index:n}):(t[E]=[{id:e,index:n}],t[Se]=t)}var O=D(`BufferService`),Ee=D(`CoreMouseService`),De=D(`CoreService`),Oe=D(`CharsetService`),ke=D(`InstantiationService`),Ae=D(`LogService`),k=D(`OptionsService`),je=D(`OscLinkService`),Me=D(`UnicodeService`),Ne=D(`DecorationService`),Pe=class{constructor(e,t,n){this._bufferService=e,this._optionsService=t,this._oscLinkService=n}provideLinks(e,t){let n=this._bufferService.buffer.lines.get(e-1);if(!n){t(void 0);return}let r=[],i=this._optionsService.rawOptions.linkHandler,a=new T,o=n.getTrimmedLength(),s=-1,c=-1,l=!1;for(let t=0;t<o;t++)if(!(c===-1&&!n.hasContent(t))){if(n.loadCell(t,a),a.hasExtendedAttrs()&&a.extended.urlId){if(c===-1){c=t,s=a.extended.urlId;continue}l=a.extended.urlId!==s}else c!==-1&&(l=!0);if(l||c!==-1&&t===o-1){let n=this._oscLinkService.getLinkData(s)?.uri;if(n){let a={start:{x:c+1,y:e},end:{x:t+ +(!l&&t===o-1),y:e}},s=!1;if(!i?.allowNonHttpProtocols)try{let e=new URL(n);[`http:`,`https:`].includes(e.protocol)||(s=!0)}catch{s=!0}s||r.push({text:n,range:a,activate:(e,t)=>i?i.activate(e,t,a):Fe(e,t),hover:(e,t)=>i?.hover?.(e,t,a),leave:(e,t)=>i?.leave?.(e,t,a)})}l=!1,a.hasExtendedAttrs()&&a.extended.urlId?(c=t,s=a.extended.urlId):(c=-1,s=-1)}}t(r)}};Pe=v([y(0,O),y(1,k),y(2,je)],Pe);function Fe(e,t){if(confirm(`Do you want to navigate to ${t}?
|
|
2
2
|
|
|
3
3
|
WARNING: This link could potentially be dangerous`)){let e=window.open();if(e){try{e.opener=null}catch{}e.location.href=t}else console.warn(`Opening link blocked as opener could not be cleared`)}}var Ie=D(`CharSizeService`),Le=D(`CoreBrowserService`),Re=D(`MouseService`),ze=D(`RenderService`),Be=D(`SelectionService`),Ve=D(`CharacterJoinerService`),He=D(`ThemeService`),Ue=D(`LinkProviderService`),We=new class{constructor(){this.listeners=[],this.unexpectedErrorHandler=function(e){setTimeout(()=>{throw e.stack?Xe.isErrorNoTelemetry(e)?new Xe(e.message+`
|
|
4
4
|
|
|
@@ -1 +1 @@
|
|
|
1
|
-
import{r as e}from"./vendor-react-DwNgTV1j.js";import{t}from"./use-i18n-
|
|
1
|
+
import{r as e}from"./vendor-react-DwNgTV1j.js";import{t}from"./use-i18n-BSZKFkMb.js";import{t as n}from"./utils-C8uzG5AZ.js";import{t as r}from"./createLucideIcon-Cd-3GVxJ.js";import{n as i,r as a,t as o}from"./sun-DBWBo3We.js";import{t as s}from"./button-CQA36izu.js";import{n as c}from"./ui-store-2wpnH8Kf.js";var l=r(`clock`,[[`circle`,{cx:`12`,cy:`12`,r:`10`,key:`1mglay`}],[`path`,{d:`M12 6v6l4 2`,key:`mmk7yg`}]]),u=e(),d={system:a,scheduled:l,dark:i,light:o};function f({theme:e,onCycle:r,compact:i=!1,className:a}){let{t:o}=t(),l={system:o(`navigation:pageHeader.system`),scheduled:o(`navigation:pageHeader.scheduled`),dark:o(`navigation:pageHeader.dark`),light:o(`navigation:pageHeader.light`)},f=d[e],p={theme:l[e],next:l[c(e)]};return(0,u.jsx)(s,{variant:i?`ghost`:`outline`,size:`icon`,className:n(`[-webkit-app-region:no-drag]`,i&&`size-8 rounded-lg text-muted-foreground hover:bg-muted hover:text-foreground`,a),"data-testid":`theme-toggle`,title:o(`navigation:pageHeader.themeThemeClickToSwitch`,p),"aria-label":o(`navigation:pageHeader.themeThemeClickToSwitchThemes`,p),onClick:r,children:(0,u.jsx)(f,{className:`size-4`,"aria-hidden":`true`})})}export{f as t};
|