@xopcai/xopc 0.0.52 → 0.0.54
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/dist/extensions/telegram/xopc.extension.json +1 -1
- package/dist/gateway/static/root/assets/{agents-CLNe-mJX.js → agents-Cccit5xQ.js} +2 -2
- package/dist/gateway/static/root/assets/{agents-CLNe-mJX.js.map → agents-Cccit5xQ.js.map} +1 -1
- package/dist/gateway/static/root/assets/{apps-page-c5XF02ek.js → apps-page-JMpsr3yK.js} +2 -2
- package/dist/gateway/static/root/assets/{apps-page-c5XF02ek.js.map → apps-page-JMpsr3yK.js.map} +1 -1
- package/dist/gateway/static/root/assets/{channels-settings-BTgdsBM4.js → channels-settings-jJX9xOyE.js} +2 -2
- package/dist/gateway/static/root/assets/{channels-settings-BTgdsBM4.js.map → channels-settings-jJX9xOyE.js.map} +1 -1
- package/dist/gateway/static/root/assets/{cron-dreaming-jobs-CiQJHx3s.js → cron-dreaming-jobs-DousYqF2.js} +2 -2
- package/dist/gateway/static/root/assets/{cron-dreaming-jobs-CiQJHx3s.js.map → cron-dreaming-jobs-DousYqF2.js.map} +1 -1
- package/dist/gateway/static/root/assets/{cron-page-DJOj7JWb.js → cron-page-CdYb690n.js} +2 -2
- package/dist/gateway/static/root/assets/{cron-page-DJOj7JWb.js.map → cron-page-CdYb690n.js.map} +1 -1
- package/dist/gateway/static/root/assets/{dist-BY3E71wk.js → dist-D8QibYZR.js} +2 -2
- package/dist/gateway/static/root/assets/{dist-BY3E71wk.js.map → dist-D8QibYZR.js.map} +1 -1
- package/dist/gateway/static/root/assets/{extension-debug-page-DzkYBiW-.js → extension-debug-page-DJ-puhUh.js} +2 -2
- package/dist/gateway/static/root/assets/{extension-debug-page-DzkYBiW-.js.map → extension-debug-page-DJ-puhUh.js.map} +1 -1
- package/dist/gateway/static/root/assets/{extension-page-yF0LIy5D.js → extension-page-DgDGH7uc.js} +2 -2
- package/dist/gateway/static/root/assets/{extension-page-yF0LIy5D.js.map → extension-page-DgDGH7uc.js.map} +1 -1
- package/dist/gateway/static/root/assets/{extension-settings-page-CS_Y4y3w.js → extension-settings-page-BnQ2f4Fq.js} +2 -2
- package/dist/gateway/static/root/assets/{extension-settings-page-CS_Y4y3w.js.map → extension-settings-page-BnQ2f4Fq.js.map} +1 -1
- package/dist/gateway/static/root/assets/{heartbeat-config-api-DD2LdM_Q.js → heartbeat-config-api-B9hxMalj.js} +2 -2
- package/dist/gateway/static/root/assets/{heartbeat-config-api-DD2LdM_Q.js.map → heartbeat-config-api-B9hxMalj.js.map} +1 -1
- package/dist/gateway/static/root/assets/{index-V5ZnG6RE.js → index-8IFT6i7x.js} +4 -4
- package/dist/gateway/static/root/assets/{index-V5ZnG6RE.js.map → index-8IFT6i7x.js.map} +1 -1
- package/dist/gateway/static/root/assets/{logs-page-D79WclZL.js → logs-page-DNHn8mTk.js} +2 -2
- package/dist/gateway/static/root/assets/{logs-page-D79WclZL.js.map → logs-page-DNHn8mTk.js.map} +1 -1
- package/dist/gateway/static/root/assets/{sessions-page-R_QJy3OK.js → sessions-page-D3kE1tob.js} +2 -2
- package/dist/gateway/static/root/assets/{sessions-page-R_QJy3OK.js.map → sessions-page-D3kE1tob.js.map} +1 -1
- package/dist/gateway/static/root/assets/{settings-page-CGaj_9Qb.js → settings-page-B4tuVOtd.js} +2 -2
- package/dist/gateway/static/root/assets/{settings-page-CGaj_9Qb.js.map → settings-page-B4tuVOtd.js.map} +1 -1
- package/dist/gateway/static/root/assets/{skills-page-UzbTgnVY.js → skills-page-Dgd20nUt.js} +2 -2
- package/dist/gateway/static/root/assets/{skills-page-UzbTgnVY.js.map → skills-page-Dgd20nUt.js.map} +1 -1
- package/dist/gateway/static/root/assets/{use-image-provider-credentials-DAx__u3a.js → use-image-provider-credentials-CqMkyIiU.js} +2 -2
- package/dist/gateway/static/root/assets/{use-image-provider-credentials-DAx__u3a.js.map → use-image-provider-credentials-CqMkyIiU.js.map} +1 -1
- package/dist/gateway/static/root/index.html +1 -1
- package/dist/package.js +1 -1
- package/dist/src/browser/providers/extension.js +37 -3
- package/dist/src/browser/providers/extension.js.map +1 -1
- package/dist/src/gateway/security/csp.d.ts +1 -0
- package/dist/src/gateway/security/csp.js +2 -0
- package/dist/src/gateway/security/csp.js.map +1 -1
- package/dist/src/gateway/service.js +13 -4
- package/dist/src/gateway/service.js.map +1 -1
- package/package.json +1 -1
|
@@ -1,2 +1,2 @@
|
|
|
1
|
-
import{i as e}from"./rolldown-runtime-DWdDZTNf.js";import{i as t,t as n}from"./vendor-react-DbimaAId.js";import{An as r,Ar as i,At as a,Br as o,Dt as s,Ei as c,En as l,Et as u,Fn as d,In as f,Mt as p,Nt as m,Oi as h,On as g,Ot as _,Pr as v,Rn as y,Sn as b,Tn as x,Tt as S,X as C,Xr as w,Y as T,Z as E,Zn as ee,_n as te,a as D,bt as O,ei as k,fr as A,gn as ne,i as re,jn as j,jt as ie,mi as ae,mr as oe,oi as M,qr as se,r as ce,w as le,xn as ue,yt as de}from"./index-V5ZnG6RE.js";import{C as N,S as fe,_ as pe,a as me,b as he,c as ge,d as _e,f as P,g as ve,h as ye,i as be,l as xe,m as Se,n as Ce,o as we,p as Te,r as Ee,s as De,t as Oe,u as ke,v as F,w as Ae,x as je,y as Me}from"./cron-dreaming-jobs-CiQJHx3s.js";import{a as Ne,i as I,n as Pe,r as L,t as Fe}from"./dist-BY3E71wk.js";import{t as Ie}from"./heartbeat-config-api-DD2LdM_Q.js";var R=e(t(),1),z=n();function Le({open:e,onOpenChange:t,action:n,c:r,onDismiss:i,onConfirm:o}){return(0,z.jsx)(p,{open:e,onOpenChange:t,children:(0,z.jsxs)(ie,{children:[(0,z.jsx)(a,{className:`xopc-dialog-overlay fixed inset-0 z-[70] bg-scrim`}),(0,z.jsx)(`div`,{className:`fixed inset-0 z-[70] flex items-center justify-center p-4 pointer-events-none`,children:(0,z.jsxs)(_,{className:`xopc-dialog-content-pane pointer-events-auto relative w-full max-w-md rounded-xl border border-edge bg-surface-panel p-4 shadow-popover dark:border-edge`,children:[(0,z.jsx)(m,{className:`text-base font-semibold text-fg`,children:n===`delete`?r.delete:r.runNow}),(0,z.jsx)(`p`,{className:`mt-2 text-sm text-fg-muted`,children:n===`delete`?r.confirmDelete:r.confirmRun}),(0,z.jsxs)(`div`,{className:`mt-4 flex justify-end gap-2`,children:[(0,z.jsx)(j,{type:`button`,variant:`secondary`,onClick:i,children:r.cancel}),(0,z.jsx)(j,{type:`button`,variant:`primary`,className:n===`delete`?`bg-red-600 hover:bg-red-700`:void 0,onClick:()=>void o(),children:n===`delete`?r.delete:r.runNow})]})]})})]})})}var Re=`*/5 * * * *`,ze=`xopc.recentWorkspaceDirs.v1`;function Be(e){let t=new Date(e);return t.setHours(0,0,0,0),t}function Ve(e){let t=Be(e),n=t.getDay(),r=n===0?-6:1-n;return t.setDate(t.getDate()+r),t}function He(e){return new Date(e.getFullYear(),e.getMonth(),1,0,0,0,0)}function Ue(e){let t=e?.trim();t&&window.dispatchEvent(new CustomEvent(`navigate-to-chat`,{detail:{sessionKey:t},bubbles:!0}))}function We(e){let t=e.trim();if(t)try{let e=localStorage.getItem(ze),n=e?JSON.parse(e):[],r=[t,...(Array.isArray(n)?n.filter(e=>typeof e==`string`&&e.trim().length>0):[]).filter(e=>e!==t)].slice(0,10);localStorage.setItem(ze,JSON.stringify(r))}catch{}}function Ge(e){return f(`w-full rounded-md border border-edge bg-surface-base px-3 py-2 text-sm text-fg placeholder:text-fg-disabled`,x,e&&`cursor-not-allowed opacity-60`)}function B(){return f(g,l)}var Ke=f(g,`w-full text-xs sm:w-auto sm:min-w-[11rem] sm:max-w-[17rem] sm:shrink-0`),V=f(g,`w-auto min-w-[9rem] max-w-[14rem] shrink-0 text-xs`);function qe({open:e,onDismiss:t,detailJob:n,detailLoading:r,detailHistory:o,c,chatWorkingDirNotSet:l,statusLabels:u}){return(0,z.jsx)(p,{open:e,onOpenChange:e=>{e||t()},children:(0,z.jsxs)(ie,{children:[(0,z.jsx)(a,{className:`xopc-dialog-overlay fixed inset-0 z-[60] bg-scrim`}),(0,z.jsxs)(_,{className:f(`xopc-drawer-right fixed right-0 top-0 z-[60] flex h-full w-full max-w-lg flex-col border-l border-edge bg-surface-panel shadow-popover outline-none`,`dark:border-edge`),"aria-describedby":void 0,children:[(0,z.jsxs)(`div`,{className:`flex shrink-0 items-center justify-between gap-2 border-b border-edge px-4 py-3`,children:[(0,z.jsx)(m,{className:`min-w-0 truncate text-base font-semibold text-fg`,children:n?.name?.trim()||n?.id||`—`}),(0,z.jsx)(s,{asChild:!0,children:(0,z.jsx)(j,{type:`button`,variant:`ghost`,className:`h-9 w-9 shrink-0 p-0`,"aria-label":c.close,children:(0,z.jsx)(y,{className:`size-5`,strokeWidth:1.75})})})]}),(0,z.jsx)(`div`,{className:`min-h-0 flex-1 overflow-y-auto px-4 py-3`,children:r?(0,z.jsx)(`div`,{className:`flex justify-center py-16`,children:(0,z.jsx)(i,{className:`size-8 animate-spin text-accent`,strokeWidth:1.75})}):n?(0,z.jsxs)(z.Fragment,{children:[(0,z.jsxs)(`dl`,{className:`space-y-3 text-sm`,children:[(0,z.jsxs)(`div`,{children:[(0,z.jsx)(`dt`,{className:`text-xs font-medium text-fg-muted`,children:c.scheduleLabel}),(0,z.jsx)(`dd`,{className:`mt-1 font-mono text-fg`,children:(0,z.jsx)(`code`,{children:n.schedule})})]}),(0,z.jsxs)(`div`,{children:[(0,z.jsx)(`dt`,{className:`text-xs font-medium text-fg-muted`,children:c.messageLabel}),(0,z.jsx)(`dd`,{className:`mt-1 min-w-0 break-words text-fg`,children:(0,z.jsx)(C,{content:Ee(n),compact:!0,className:`text-sm`})})]}),(0,z.jsxs)(`div`,{children:[(0,z.jsx)(`dt`,{className:`text-xs font-medium text-fg-muted`,children:c.mode}),(0,z.jsx)(`dd`,{className:`mt-1 text-fg`,children:n.sessionTarget===`isolated`?c.modeAgentOption:c.modeDirectOption})]}),n.sessionTarget===`isolated`?(0,z.jsxs)(`div`,{children:[(0,z.jsx)(`dt`,{className:`text-xs font-medium text-fg-muted`,children:c.agentProfile}),(0,z.jsx)(`dd`,{className:`mt-1 font-mono text-sm text-fg`,children:n.agentId?.trim()?n.agentId.trim():c.agentProfileDefault})]}):null,n.sessionTarget===`isolated`?(0,z.jsxs)(`div`,{children:[(0,z.jsx)(`dt`,{className:`text-xs font-medium text-fg-muted`,children:c.workingDirectoryLabel}),(0,z.jsx)(`dd`,{className:`mt-1 break-all font-mono text-xs text-fg`,children:n.workingDirectory?.trim()?n.workingDirectory.trim():l})]}):null,n.delivery?.channel===`local`||n.sessionTarget===`isolated`&&!n.delivery?.to?(0,z.jsxs)(`div`,{children:[(0,z.jsx)(`dt`,{className:`text-xs font-medium text-fg-muted`,children:c.deliveryTarget}),(0,z.jsx)(`dd`,{className:`mt-1 text-fg`,children:n.delivery?.channel===`local`?c.deliveryTargetLocalChannel:c.deliveryLocalOnly})]}):n.delivery?.to?(0,z.jsxs)(`div`,{children:[(0,z.jsx)(`dt`,{className:`text-xs font-medium text-fg-muted`,children:c.deliveryTarget}),(0,z.jsxs)(`dd`,{className:`mt-1 break-words text-fg`,children:[(0,z.jsx)(`code`,{className:`text-xs`,children:n.delivery?.channel??``}),` → `,pe(n,c.channelLocal)]})]}):null,(0,z.jsxs)(`div`,{children:[(0,z.jsx)(`dt`,{className:`text-xs font-medium text-fg-muted`,children:c.status}),(0,z.jsx)(`dd`,{className:`mt-1 text-fg`,children:n.enabled?c.enabled:c.disabled})]}),(0,z.jsxs)(`div`,{children:[(0,z.jsx)(`dt`,{className:`text-xs font-medium text-fg-muted`,children:c.nextRun}),(0,z.jsx)(`dd`,{className:`mt-1 text-fg`,children:n.next_run?Me(n.next_run,c.timeLabels):`—`})]})]}),(0,z.jsx)(`h3`,{className:`mt-6 text-sm font-semibold text-fg`,children:c.detailRunHistory}),o.length===0?(0,z.jsx)(`p`,{className:`mt-2 text-sm text-fg-muted`,children:c.noRunsYet}):(0,z.jsx)(`div`,{className:`mt-2 overflow-x-auto`,children:(0,z.jsxs)(`table`,{className:`w-full border-collapse text-left text-xs`,children:[(0,z.jsx)(`thead`,{children:(0,z.jsxs)(`tr`,{className:`border-b border-edge text-fg-muted`,children:[(0,z.jsx)(`th`,{className:`py-1.5 pr-2 font-medium`,children:c.colStarted}),(0,z.jsx)(`th`,{className:`py-1.5 pr-2 font-medium`,children:c.status}),(0,z.jsx)(`th`,{className:`py-1.5 pr-2 font-medium`,children:c.colDuration}),(0,z.jsx)(`th`,{className:`py-1.5 pr-2 font-medium`,children:c.colDetail}),(0,z.jsx)(`th`,{className:`py-1.5 font-medium`,children:c.colChat})]})}),(0,z.jsx)(`tbody`,{children:o.map(e=>(0,z.jsxs)(`tr`,{className:`border-b border-edge/60`,children:[(0,z.jsx)(`td`,{className:`whitespace-nowrap py-1.5 pr-2 text-fg`,children:(0,z.jsx)(`time`,{dateTime:e.startedAt,children:fe(e.startedAt)})}),(0,z.jsx)(`td`,{className:`py-1.5 pr-2`,children:(0,z.jsx)(`span`,{className:f(`inline-flex rounded px-1.5 py-0.5 font-medium`,e.status===`success`&&`bg-emerald-500/15 text-emerald-800 dark:text-emerald-300`,e.status===`failed`&&`bg-red-500/15 text-red-800 dark:text-red-300`),children:ve(e.status,u)})}),(0,z.jsx)(`td`,{className:`py-1.5 pr-2 text-fg-muted`,children:F(e.duration)}),(0,z.jsx)(`td`,{className:`max-w-[8rem] truncate py-1.5 pr-2 text-fg-muted`,title:e.summary||e.error||``,children:N(e.summary||e.error,120)}),(0,z.jsx)(`td`,{className:`whitespace-nowrap py-1.5`,children:e.sessionKey?.trim()?(0,z.jsx)(`button`,{type:`button`,className:`text-xs font-medium text-accent hover:underline`,title:c.openChatTitle,"aria-label":c.openChatTitle,onClick:()=>Ue(e.sessionKey),children:c.openChat}):(0,z.jsx)(`span`,{className:`text-fg-disabled`,children:`—`})})]},e.id))})]})})]}):null})]})]})})}var H=Ae(),U=f(g,`min-w-0 shrink text-xs sm:min-w-[7rem] sm:max-w-[11rem]`),W=f(`h-9 min-w-[6.5rem] shrink-0 rounded-lg border border-edge-subtle bg-surface-panel px-2 py-1.5 text-sm text-fg`,x,`dark:bg-surface-panel`),G=f(`h-9 min-w-[9.5rem] shrink-0 rounded-lg border border-edge-subtle bg-surface-panel px-2 py-1.5 text-sm text-fg`,x),Je=f(`h-9 w-14 shrink-0 rounded-lg border border-edge-subtle bg-surface-panel px-2 py-1.5 text-center text-sm tabular-nums text-fg`,x),K=f(`min-h-[2.5rem] w-full rounded-lg border border-edge-subtle bg-surface-base px-3 py-2 font-mono text-xs text-fg`,x);function Ye(){let e=new Date;return`${e.getFullYear()}-${String(e.getMonth()+1).padStart(2,`0`)}-${String(e.getDate()).padStart(2,`0`)}`}function q(e){return Array.isArray(e)?e.filter(e=>typeof e==`number`).sort((e,t)=>e-t):[]}function Xe(e){if(e.length<2)return null;let t=e[1]-e[0];if(t<=0)return null;for(let n=2;n<e.length;n++)if(e[n]-e[n-1]!==t)return null;return t}function Ze(e){let t=[];for(let n=0;n<7;n++)e[n]&&t.push(n===6?0:n+1);return t.length===0?`1`:t.sort((e,t)=>e-t).join(`,`)}function J(e){let t=[!1,!1,!1,!1,!1,!1,!1];for(let n of e){let e=n===0||n===7?6:n-1;e>=0&&e<=6&&(t[e]=!0)}return t}function Y(e){let t=e.trim(),n={mode:`custom`,intervalKind:`minutes`,onceDate:Ye(),intervalMinutes:5,intervalHours:2,minute:0,hour:9,weekDays:[!0,!0,!0,!0,!0,!1,!1],dayOfMonth:1,rawCron:t};if(!t)return{...n,mode:`interval`,rawCron:`*/5 * * * *`};try{let e=H.CronExpressionParser.parse(t).fields,r=q(e.minute.values),i=q(e.hour.values),a=q(e.dayOfMonth.values),o=q(e.month.values),s=q(e.dayOfWeek.values);if(r.length===60&&e.hour.isWildcard&&e.dayOfMonth.isWildcard&&e.month.isWildcard&&e.dayOfWeek.isWildcard)return{...n,mode:`interval`,intervalKind:`minutes`,intervalMinutes:1,rawCron:t};if(!e.minute.isWildcard&&e.hour.isWildcard&&e.dayOfMonth.isWildcard&&e.month.isWildcard&&e.dayOfWeek.isWildcard&&r.length>1){let e=Xe(r);if(e!=null&&e>0)return{...n,mode:`interval`,intervalKind:`minutes`,intervalMinutes:e,rawCron:t}}if(!e.minute.isWildcard&&r.length===1&&!e.hour.isWildcard&&i.length>1&&e.dayOfMonth.isWildcard&&e.month.isWildcard&&e.dayOfWeek.isWildcard){let e=Xe(i);if(e!=null&&e>0)return{...n,mode:`interval`,intervalKind:`hours`,intervalHours:e,minute:r[0],rawCron:t}}if(!e.minute.isWildcard&&r.length===1&&e.hour.isWildcard&&e.dayOfMonth.isWildcard&&e.month.isWildcard&&e.dayOfWeek.isWildcard&&i.length===24)return{...n,mode:`hourly`,minute:r[0],rawCron:t};if(r.length===1&&i.length===1&&a.length===1&&o.length===1&&!e.dayOfMonth.isWildcard&&!e.month.isWildcard&&e.dayOfWeek.isWildcard){let e=new Date().getFullYear(),s=o[0],c=a[0],l=`${e}-${String(s).padStart(2,`0`)}-${String(c).padStart(2,`0`)}`;return{...n,mode:`no_repeat`,minute:r[0],hour:i[0],onceDate:l,rawCron:t}}if(r.length===1&&i.length===1&&e.dayOfMonth.isWildcard&&e.month.isWildcard&&e.dayOfWeek.isWildcard)return{...n,mode:`daily`,minute:r[0],hour:i[0],rawCron:t};if(r.length===1&&i.length===1&&e.dayOfMonth.isWildcard&&e.month.isWildcard&&!e.dayOfWeek.isWildcard&&s.length>0)return{...n,mode:`weekly`,minute:r[0],hour:i[0],weekDays:J(s),rawCron:t};if(r.length===1&&i.length===1&&!e.dayOfMonth.isWildcard&&a.length===1&&e.month.isWildcard&&e.dayOfWeek.isWildcard)return{...n,mode:`monthly`,minute:r[0],hour:i[0],dayOfMonth:a[0],rawCron:t}}catch{}return n}function Qe(e){let t=(e,t,n)=>Math.min(n,Math.max(t,e));switch(e.mode){case`custom`:return e.rawCron.trim()||`*/5 * * * *`;case`no_repeat`:{let n=e.onceDate.split(`-`);if(n.length===3){let r=t(parseInt(n[2],10),1,31),i=t(parseInt(n[1],10),1,12);return`${t(e.minute,0,59)} ${t(e.hour,0,23)} ${r} ${i} *`}return`0 9 1 1 *`}case`interval`:if(e.intervalKind===`hours`){let n=t(Math.round(e.intervalHours)||1,1,23);return`${t(e.minute,0,59)} */${n} * * *`}return`*/${t(Math.round(e.intervalMinutes)||5,1,59)} * * * *`;case`hourly`:return`${t(e.minute,0,59)} * * * *`;case`daily`:return`${t(e.minute,0,59)} ${t(e.hour,0,23)} * * *`;case`weekly`:return`${t(e.minute,0,59)} ${t(e.hour,0,23)} * * ${Ze(e.weekDays)}`;case`monthly`:return`${t(e.minute,0,59)} ${t(e.hour,0,23)} ${t(Math.round(e.dayOfMonth)||1,1,31)} * *`;default:return`*/5 * * * *`}}function X({value:e,onChange:t,labels:n,disabled:r}){let i=(0,R.useMemo)(()=>Y(e),[e]),[a,o]=(0,R.useState)(i.mode),[s,c]=(0,R.useState)(i.intervalKind),[l,u]=(0,R.useState)(i.onceDate),[d,p]=(0,R.useState)(i.intervalMinutes),[m,h]=(0,R.useState)(i.intervalHours),[g,_]=(0,R.useState)(i.minute),[v,y]=(0,R.useState)(i.hour),[b,x]=(0,R.useState)(i.weekDays),[S,C]=(0,R.useState)(i.dayOfMonth),[w,T]=(0,R.useState)(i.rawCron),[E,ee]=(0,R.useState)(null),[te,D]=(0,R.useState)(null);(0,R.useEffect)(()=>{let t=Y(e);o(t.mode),c(t.intervalKind),u(t.onceDate),p(t.intervalMinutes),h(t.intervalHours),_(t.minute),y(t.hour),x(t.weekDays),C(t.dayOfMonth),T(t.rawCron),ee(null),D(null)},[e]);let O=(0,R.useCallback)(e=>{t(Qe({mode:a,intervalKind:s,onceDate:l,intervalMinutes:d,intervalHours:m,minute:g,hour:v,weekDays:b,dayOfMonth:S,rawCron:w,...e}))},[a,s,l,d,m,g,v,b,S,w,t]),k=`${String(v).padStart(2,`0`)}:${String(g).padStart(2,`0`)}`,A=e=>{let t=e.target.value;if(!t)return;let[n,r]=t.split(`:`).map(e=>parseInt(e,10));Number.isNaN(n)||Number.isNaN(r)||O({minute:r,hour:n})},ne=(0,z.jsxs)(`div`,{className:`flex min-w-0 flex-nowrap items-center gap-2 overflow-x-auto pb-0.5`,children:[(0,z.jsxs)(`select`,{className:U,disabled:r,value:a,onChange:e=>{let t=e.target.value;o(t),O({mode:t})},"aria-label":n.scheduleTimeLabel,children:[(0,z.jsx)(`option`,{value:`no_repeat`,children:n.modeNoRepeat}),(0,z.jsx)(`option`,{value:`interval`,children:n.modeInterval}),(0,z.jsx)(`option`,{value:`hourly`,children:n.modeHourly}),(0,z.jsx)(`option`,{value:`daily`,children:n.modeDaily}),(0,z.jsx)(`option`,{value:`weekly`,children:n.modeWeekly}),(0,z.jsx)(`option`,{value:`monthly`,children:n.modeMonthly}),(0,z.jsx)(`option`,{value:`custom`,children:n.modeCustom})]}),a===`no_repeat`&&(0,z.jsxs)(z.Fragment,{children:[(0,z.jsx)(`input`,{type:`date`,disabled:r,className:G,value:l,onChange:e=>{let t=e.target.value;u(t),O({onceDate:t})},"aria-label":n.modeNoRepeat}),(0,z.jsx)(`input`,{type:`time`,step:60,disabled:r,className:W,value:k,onChange:A,"aria-label":n.scheduleTimeLabel})]}),a===`interval`&&(0,z.jsxs)(z.Fragment,{children:[(0,z.jsxs)(`select`,{className:f(U,`w-auto min-w-[5rem]`),disabled:r,value:s,onChange:e=>{let t=e.target.value;c(t),ee(null),D(null),O({intervalKind:t})},"aria-label":n.modeInterval,children:[(0,z.jsx)(`option`,{value:`minutes`,children:n.intervalKindMinutes}),(0,z.jsx)(`option`,{value:`hours`,children:n.intervalKindHours})]}),s===`minutes`?(0,z.jsxs)(z.Fragment,{children:[(0,z.jsx)(`input`,{type:`number`,min:1,max:59,disabled:r,className:Je,value:E??String(d),onChange:e=>{let t=e.target.value;ee(t);let n=parseInt(t,10);Number.isFinite(n)&&n>=1&&n<=59&&(p(n),O({intervalMinutes:n}))},onBlur:()=>{if(E===null)return;let e=parseInt(E,10),t=!Number.isFinite(e)||e<1?5:Math.min(59,Math.max(1,Math.round(e)));p(t),O({intervalMinutes:t}),ee(null)},"aria-label":n.intervalMinutes}),(0,z.jsx)(`span`,{className:`shrink-0 text-sm text-fg-muted`,children:n.minuteUnit})]}):(0,z.jsxs)(z.Fragment,{children:[(0,z.jsx)(`input`,{type:`number`,min:1,max:23,disabled:r,className:Je,value:te??String(m),onChange:e=>{let t=e.target.value;D(t);let n=parseInt(t,10);Number.isFinite(n)&&n>=1&&n<=23&&(h(n),O({intervalHours:n}))},onBlur:()=>{if(te===null)return;let e=parseInt(te,10),t=!Number.isFinite(e)||e<1?2:Math.min(23,Math.max(1,Math.round(e)));h(t),O({intervalHours:t}),D(null)},"aria-label":n.intervalHours}),(0,z.jsx)(`span`,{className:`shrink-0 text-sm text-fg-muted`,children:n.hourUnit}),(0,z.jsx)(`select`,{className:f(U,`w-auto min-w-[4rem]`),disabled:r,value:g,onChange:e=>{let t=parseInt(e.target.value,10);_(t),O({minute:t})},"aria-label":n.minuteAtHour,children:Array.from({length:60},(e,t)=>(0,z.jsx)(`option`,{value:t,children:String(t).padStart(2,`0`)},t))}),(0,z.jsx)(`span`,{className:`shrink-0 text-sm text-fg-muted`,children:n.minuteUnit})]})]}),a===`daily`&&(0,z.jsx)(`input`,{type:`time`,step:60,disabled:r,className:W,value:k,onChange:A,"aria-label":n.scheduleTimeLabel}),a===`weekly`&&(0,z.jsx)(`input`,{type:`time`,step:60,disabled:r,className:W,value:k,onChange:A,"aria-label":n.scheduleTimeLabel}),a===`monthly`&&(0,z.jsxs)(z.Fragment,{children:[(0,z.jsx)(`select`,{className:f(U,`w-auto min-w-[4.5rem]`),disabled:r,value:S,onChange:e=>{let t=parseInt(e.target.value,10);C(t),O({dayOfMonth:t})},"aria-label":n.dayOfMonth,children:Array.from({length:31},(e,t)=>t+1).map(e=>(0,z.jsx)(`option`,{value:e,children:e},e))}),(0,z.jsx)(`input`,{type:`time`,step:60,disabled:r,className:W,value:k,onChange:A,"aria-label":n.scheduleTimeLabel})]}),a===`hourly`&&(0,z.jsxs)(z.Fragment,{children:[(0,z.jsx)(`select`,{className:f(U,`w-auto min-w-[4rem]`),disabled:r,value:g,onChange:e=>{let t=parseInt(e.target.value,10);_(t),O({minute:t})},"aria-label":n.minuteAtHour,children:Array.from({length:60},(e,t)=>(0,z.jsx)(`option`,{value:t,children:String(t).padStart(2,`0`)},t))}),(0,z.jsx)(`span`,{className:`shrink-0 text-sm text-fg-muted`,children:n.minuteUnit})]})]}),re=a===`weekly`?(0,z.jsx)(`div`,{className:`flex flex-wrap gap-1.5 pt-1`,role:`group`,"aria-label":n.modeWeekly,children:n.weekdays.map((e,t)=>{let n=b[t];return(0,z.jsx)(`button`,{type:`button`,disabled:r,className:f(`flex size-9 select-none items-center justify-center rounded-full border text-xs font-medium transition-colors`,n?`border-fg bg-fg text-surface-panel`:`border-edge-subtle bg-surface-panel text-fg hover:border-edge`),"aria-pressed":n,onClick:()=>{let e=[...b];e[t]=!e[t],x(e),O({weekDays:e})},children:e},e)})}):null,j=a===`custom`?(0,z.jsxs)(`div`,{className:`pt-1`,children:[(0,z.jsx)(`textarea`,{disabled:r,className:K,rows:2,spellCheck:!1,value:w,placeholder:`*/5 * * * *`,onChange:e=>{let n=e.target.value;T(n),t(n.trim()||`*/5 * * * *`)},"aria-label":n.modeCustom}),(0,z.jsx)(`p`,{className:`mt-1 text-xs text-fg-muted`,children:n.customCronHint})]}):null;return(0,z.jsxs)(`div`,{className:`flex flex-col gap-2`,children:[(0,z.jsx)(`span`,{className:`text-xs font-medium text-fg-muted`,children:n.scheduleTimeLabel}),ne,re,j]})}function $e(e){let{open:t,onRequestClose:n,c:r,chatM:i,agentsMessages:o,isDark:c,channels:l,sessionChatIds:u,cronAgentSelectOptions:d,hasElectronFolderPicker:h,openNativeFolderPicker:g,applyWorkingDirectory:v,wdModalOpen:b,onWdModalOpenChange:x,defaultModelResolver:S,formMode:te,formJobId:O,formName:k,onFormNameChange:ne,formSchedule:ae,onFormScheduleChange:oe,formSubmitting:M,formSessionTarget:ue,onFormSessionTargetChange:de,formAgentLocalOnly:N,onFormAgentLocalOnlyChange:fe,formModel:pe,onFormModelUserChange:me,formAgentId:ge,onFormAgentIdChange:_e,formWorkingDirectory:P,onFormWorkingDirectoryChange:ve,formChannel:ye,onFormChannelChange:be,formChatId:xe,onFormChatIdChange:Se,formMessage:Ce,onFormMessageChange:we,formMessageMdMode:Te,onSetMessageMdMode:Ee,messageEditorNonce:De,needsDeliveryChat:Oe,showChannelPicker:ke,canSubmit:F,onSubmit:Ae,onRefreshRecipients:je}=e;return(0,z.jsxs)(z.Fragment,{children:[(0,z.jsx)(p,{open:t,onOpenChange:e=>!e&&n(),children:(0,z.jsxs)(ie,{children:[(0,z.jsx)(a,{className:`xopc-dialog-overlay fixed inset-0 z-[60] bg-scrim`}),(0,z.jsx)(`div`,{className:`fixed inset-0 z-[60] flex items-center justify-center p-4 pointer-events-none`,children:(0,z.jsxs)(_,{className:`xopc-dialog-content-pane pointer-events-auto relative flex max-h-[min(90vh,800px)] w-full max-w-md flex-col rounded-xl border border-edge bg-surface-panel shadow-popover outline-none sm:max-w-lg lg:max-w-xl dark:border-edge`,onOpenAutoFocus:e=>e.preventDefault(),children:[(0,z.jsxs)(`div`,{className:`flex shrink-0 items-center justify-between gap-2 border-b border-edge px-4 py-3`,children:[(0,z.jsx)(m,{className:`text-base font-semibold text-fg`,children:te===`edit`?r.editJob:r.addJob}),(0,z.jsx)(s,{asChild:!0,children:(0,z.jsx)(j,{type:`button`,variant:`ghost`,className:`h-9 w-9 shrink-0 p-0`,"aria-label":r.close,children:(0,z.jsx)(y,{className:`size-5`,strokeWidth:1.75})})})]}),(0,z.jsx)(`div`,{className:`min-h-0 flex-1 overflow-y-auto px-4 py-3`,children:(0,z.jsxs)(`div`,{className:`flex flex-col gap-3`,children:[(0,z.jsxs)(`label`,{className:`flex flex-col gap-1`,children:[(0,z.jsx)(`span`,{className:`text-xs font-medium text-fg-muted`,children:r.name}),(0,z.jsx)(`input`,{type:`text`,className:Ge(),value:k,onChange:e=>ne(e.target.value),placeholder:r.namePlaceholder})]}),(0,z.jsx)(X,{value:ae,onChange:oe,disabled:M,labels:r.schedulePicker}),(0,z.jsxs)(`label`,{className:`flex flex-col gap-1`,children:[(0,z.jsx)(`span`,{className:`text-xs font-medium text-fg-muted`,children:r.mode}),(0,z.jsxs)(`select`,{className:B(),value:ue,onChange:e=>{let t=e.target.value;de(t,S,pe.trim())},children:[(0,z.jsx)(`option`,{value:`main`,children:r.modeDirectOption}),(0,z.jsx)(`option`,{value:`isolated`,children:r.modeAgentOption})]}),(0,z.jsx)(`p`,{className:`text-xs text-fg-muted`,children:ue===`main`?r.modeDirect:r.modeAgent})]}),ue===`isolated`?(0,z.jsxs)(z.Fragment,{children:[(0,z.jsxs)(`div`,{className:`flex flex-col gap-1`,children:[(0,z.jsx)(`span`,{className:`text-xs font-medium text-fg-muted`,children:r.model}),(0,z.jsx)(D,{value:pe,placeholder:i.modelPlaceholder,searchPlaceholder:i.modelSearchPlaceholder,noMatches:i.modelNoMatches,className:`w-full max-w-none min-w-0`,popoverContentClassName:`z-[70]`,onChange:me})]}),(0,z.jsxs)(`label`,{className:`flex flex-col gap-1`,children:[(0,z.jsx)(`span`,{className:`text-xs font-medium text-fg-muted`,children:r.agentProfile}),(0,z.jsxs)(`select`,{className:B(),value:ge,disabled:M,onChange:e=>_e(e.target.value),children:[(0,z.jsx)(`option`,{value:``,children:r.agentProfileDefault}),d.map(e=>(0,z.jsx)(`option`,{value:e.id,children:`${e.id} — ${le(e,o)}`},e.id))]}),(0,z.jsx)(`p`,{className:`text-xs text-fg-muted`,children:r.agentProfileHint})]}),(0,z.jsxs)(`div`,{className:`flex flex-col gap-1`,children:[(0,z.jsx)(`span`,{className:`text-xs font-medium text-fg-muted`,children:r.workingDirectoryLabel}),(0,z.jsxs)(`div`,{className:`flex flex-wrap items-center gap-2`,children:[(0,z.jsxs)(`button`,{type:`button`,disabled:M,className:f(`inline-flex min-h-8 max-w-[min(16rem,48vw)] min-w-0 shrink-0 items-center gap-1 rounded-lg px-2 py-1 text-xs`,`border border-edge-subtle/80 bg-surface-hover/40 dark:border-edge-subtle`,T.transition,T.focusRingPanel,`cursor-pointer hover:bg-surface-hover/70 dark:hover:bg-surface-hover/50`,M&&`cursor-not-allowed opacity-60`),title:P.trim()?`${P.trim()}\n${i.workingDirectory.chooseFolder}`:`${r.workingDirectoryHint}\n${i.workingDirectory.selectWorkingDirectory}`,onClick:e=>{e.stopPropagation(),!M&&(h?(async()=>{let e=await g();e&&v(e)})():x(!0))},children:[(0,z.jsx)(se,{className:`size-3.5 shrink-0 text-fg-muted`,"aria-hidden":!0}),(0,z.jsx)(`span`,{className:`min-w-0 truncate text-left font-medium text-fg`,children:P.trim()?ce(P.trim()):i.workingDirectory.notSet})]}),P.trim()?(0,z.jsx)(`button`,{type:`button`,disabled:M,className:`text-xs font-medium text-accent hover:underline disabled:opacity-50`,onClick:()=>ve(``),children:r.workingDirectoryReset}):null]}),(0,z.jsx)(`p`,{className:`text-xs text-fg-muted`,children:r.workingDirectoryHint})]}),(0,z.jsxs)(`label`,{className:`flex cursor-pointer items-start gap-2 rounded-md bg-surface-hover/45 px-3 py-2 dark:bg-surface-hover/30`,children:[(0,z.jsx)(`input`,{type:`checkbox`,className:f(`ui-checkbox`,`mt-0.5`),checked:N,onChange:e=>fe(e.target.checked)}),(0,z.jsxs)(`span`,{children:[(0,z.jsx)(`span`,{className:`text-sm font-medium text-fg`,children:r.agentLocalOnly}),(0,z.jsx)(`p`,{className:`mt-1 text-xs text-fg-muted`,children:r.agentLocalOnlyHint})]})]})]}):null,ke?(0,z.jsxs)(z.Fragment,{children:[(0,z.jsxs)(`label`,{className:`flex flex-col gap-1`,children:[(0,z.jsx)(`span`,{className:`text-xs font-medium text-fg-muted`,children:r.channel}),(0,z.jsxs)(`select`,{className:B(),value:ye,onChange:e=>{let t=e.target.value;be(t)},children:[(0,z.jsx)(`option`,{value:`local`,children:r.channelLocal}),l.map(e=>(0,z.jsxs)(`option`,{value:e.name,disabled:!e.enabled,children:[e.name,` `,e.enabled?``:`(disabled)`]},e.name))]})]}),Oe?(0,z.jsxs)(`div`,{className:`flex flex-col gap-1`,children:[(0,z.jsxs)(`div`,{className:`flex items-center justify-between gap-2`,children:[(0,z.jsx)(`span`,{className:`text-xs font-medium text-fg-muted`,children:r.recipient}),(0,z.jsxs)(j,{type:`button`,variant:`ghost`,className:`h-7 gap-1 px-2 text-xs`,title:r.refreshRecipientHint,onClick:()=>void je(),children:[(0,z.jsx)(A,{className:`size-3.5`,strokeWidth:1.75}),r.refreshList]})]}),(0,z.jsxs)(`div`,{className:`flex flex-col gap-2 sm:flex-row sm:items-stretch sm:gap-2`,children:[(0,z.jsx)(`input`,{type:`text`,className:f(Ge(),`min-w-0 w-full sm:flex-1`),value:xe,onChange:e=>Se(e.target.value),placeholder:r.recipientPlaceholder}),(0,z.jsxs)(`select`,{className:Ke,value:xe,onChange:e=>{let t=e.target.value;t&&Se(t)},children:[(0,z.jsx)(`option`,{value:``,children:r.selectRecipient}),u.length>0?u.map(e=>(0,z.jsx)(`option`,{value:e.chatId,children:he(e,r.lastActiveLabels)},`${e.channel}-${e.chatId}`)):(0,z.jsx)(`option`,{value:``,disabled:!0,children:r.noRecentChatsOption})]})]}),(0,z.jsx)(`p`,{className:`text-xs text-fg-muted`,children:u.length>0?r.enterManuallyOrSelect:r.noRecentChats})]}):null]}):null,(0,z.jsxs)(`div`,{className:`flex flex-col gap-1`,children:[(0,z.jsxs)(`div`,{className:`flex flex-wrap items-center justify-between gap-2`,children:[(0,z.jsx)(`span`,{className:`text-xs font-medium text-fg-muted`,children:r.message}),(0,z.jsxs)(`div`,{className:`inline-flex rounded-lg border border-edge bg-surface-base p-0.5 dark:border-edge`,children:[(0,z.jsxs)(`button`,{type:`button`,className:f(`inline-flex items-center gap-1.5 rounded-md px-2.5 py-1.5 text-xs font-medium`,Te===`edit`?`bg-accent-soft text-accent-fg`:`text-fg-muted hover:bg-surface-hover`),onClick:()=>Ee(`edit`),children:[(0,z.jsx)(ee,{className:`size-3.5 shrink-0`,strokeWidth:1.75,"aria-hidden":!0}),r.messageEdit]}),(0,z.jsxs)(`button`,{type:`button`,className:f(`inline-flex items-center gap-1.5 rounded-md px-2.5 py-1.5 text-xs font-medium`,Te===`preview`?`bg-accent-soft text-accent-fg`:`text-fg-muted hover:bg-surface-hover`),onClick:()=>Ee(`preview`),children:[(0,z.jsx)(w,{className:`size-3.5 shrink-0`,strokeWidth:1.75,"aria-hidden":!0}),r.messagePreview]})]})]}),(0,z.jsx)(`div`,{className:f(`overflow-hidden rounded-md border border-edge bg-surface-base dark:border-edge`,M&&`pointer-events-none opacity-60`),children:Te===`edit`?(0,z.jsx)(E,{initialContent:Ce,onChange:we,isDark:c,className:`h-[min(18rem,40vh)] min-h-[12rem]`},`cron-msg-${O??`new`}-${De}`):(0,z.jsx)(`div`,{className:`h-[min(18rem,40vh)] min-h-[12rem] max-h-[min(24rem,50vh)] overflow-y-auto px-3 py-2`,children:Ce.trim()?(0,z.jsx)(C,{content:Ce,compact:!0,className:`text-sm`}):(0,z.jsx)(`p`,{className:`text-sm text-fg-muted`,children:r.messagePlaceholder})})}),(0,z.jsx)(`p`,{className:`text-xs text-fg-muted`,children:r.messageMarkdownHint})]})]})}),(0,z.jsxs)(`div`,{className:`flex shrink-0 justify-end gap-2 border-t border-edge px-4 py-3`,children:[(0,z.jsx)(j,{type:`button`,variant:`secondary`,onClick:n,children:r.cancel}),(0,z.jsx)(j,{type:`button`,variant:`primary`,disabled:M||!F,onClick:Ae,children:M?r.loading:te===`edit`?r.save:r.create})]})]})})]})}),h?null:(0,z.jsx)(re,{open:b,onOpenChange:x,initialAbsolutePath:P.trim()||void 0,onConfirm:async e=>{await v(e),x(!1)},wd:i.workingDirectory})]})}function et({c:e,mainTab:t,onMainTabChange:n,jobSort:r,onJobSortChange:i,historyRange:a,onHistoryRangeChange:o,historyJobFilter:s,onHistoryJobFilterChange:c,historyStatusFilter:l,onHistoryStatusFilterChange:d,jobs:p}){return(0,z.jsxs)(`div`,{className:`flex flex-col gap-3 border-b border-edge-subtle pb-3 sm:flex-row sm:items-center sm:justify-between dark:border-edge-subtle`,children:[(0,z.jsxs)(`div`,{className:`flex gap-1`,role:`tablist`,"aria-label":e.title,children:[(0,z.jsx)(`button`,{type:`button`,role:`tab`,"aria-selected":t===`myTasks`,className:f(`rounded-md px-3 py-2 text-sm font-medium transition-colors`,t===`myTasks`?`text-fg`:`text-fg-muted hover:text-fg`),onClick:()=>n(`myTasks`),children:e.tabMyTasks}),(0,z.jsx)(`button`,{type:`button`,role:`tab`,"aria-selected":t===`systemTasks`,className:f(`rounded-md px-3 py-2 text-sm font-medium transition-colors`,t===`systemTasks`?`text-fg`:`text-fg-muted hover:text-fg`),onClick:()=>n(`systemTasks`),children:e.tabSystemTasks}),(0,z.jsx)(`button`,{type:`button`,role:`tab`,"aria-selected":t===`history`,className:f(`rounded-md px-3 py-2 text-sm font-medium transition-colors`,t===`history`?`text-fg`:`text-fg-muted hover:text-fg`),onClick:()=>n(`history`),children:e.tabRunHistory})]}),(0,z.jsxs)(`div`,{className:f(`flex min-w-0 items-center gap-2`,t===`history`?`flex-nowrap overflow-x-auto pb-0.5 sm:justify-end`:`flex-wrap sm:justify-end`),children:[t===`myTasks`||t===`systemTasks`?(0,z.jsxs)(`select`,{className:V,value:r,onChange:e=>i(e.target.value),"aria-label":e.sortCreatedDesc,children:[(0,z.jsx)(`option`,{value:`created_desc`,children:e.sortCreatedDesc}),(0,z.jsx)(`option`,{value:`created_asc`,children:e.sortCreatedAsc})]}):null,t===`history`?(0,z.jsxs)(z.Fragment,{children:[(0,z.jsx)(`div`,{className:f(u,`shrink-0`),role:`group`,"aria-label":e.runHistoryTitle,children:[`day`,`week`,`month`].map(t=>(0,z.jsx)(`button`,{type:`button`,className:f(S,`px-2.5 py-1`,a===t&&`bg-surface-panel shadow-sm dark:bg-surface-panel dark:shadow-sm dark:ring-1 dark:ring-edge-strong/40`,a===t&&`text-fg`),onClick:()=>o(t),children:t===`day`?e.historyRangeDay:t===`week`?e.historyRangeWeek:e.historyRangeMonth},t))}),(0,z.jsxs)(`select`,{className:V,value:s,onChange:e=>c(e.target.value),"aria-label":e.filterAllTasks,children:[(0,z.jsx)(`option`,{value:``,children:e.filterAllTasks}),p.map(e=>(0,z.jsx)(`option`,{value:e.id,children:e.name||e.id},e.id))]}),(0,z.jsxs)(`select`,{className:V,value:l,onChange:e=>d(e.target.value),"aria-label":e.filterAllStatuses,children:[(0,z.jsx)(`option`,{value:``,children:e.filterAllStatuses}),(0,z.jsx)(`option`,{value:`success`,children:e.execStatusSuccess}),(0,z.jsx)(`option`,{value:`failed`,children:e.execStatusFailed}),(0,z.jsx)(`option`,{value:`cancelled`,children:e.execStatusCancelled}),(0,z.jsx)(`option`,{value:`running`,children:e.execStatusRunning})]})]}):null]})]})}function tt({c:e,loading:t,runHistoryLoading:n,onRefresh:r,onOpenTemplatePicker:i,onAddJob:a}){let o=t||n;return(0,z.jsxs)(`div`,{className:`flex min-w-0 flex-1 flex-wrap items-center justify-end gap-2`,children:[(0,z.jsx)(j,{type:`button`,variant:`ghost`,className:`h-9 w-9 shrink-0 p-0`,disabled:o,title:e.refresh,"aria-label":e.refresh,onClick:()=>void r(),children:(0,z.jsx)(A,{className:f(`size-4`,o&&`animate-spin`),strokeWidth:1.75})}),(0,z.jsxs)(j,{type:`button`,variant:`secondary`,className:`gap-2`,onClick:i,children:[(0,z.jsx)(v,{className:`size-4`,strokeWidth:1.75}),e.fromTemplate]}),(0,z.jsxs)(j,{type:`button`,variant:`primary`,className:`gap-2`,onClick:a,children:[(0,z.jsx)(oe,{className:`size-4`,strokeWidth:1.75}),e.addJob]})]})}function nt({c:e,runHistoryLoading:t,runHistory:n,filteredRunHistory:r,jobs:a,onRefreshHistory:o,onOpenJobDetail:s,statusLabels:c}){return(0,z.jsxs)(`section`,{"aria-labelledby":`cron-history-panel`,className:`flex flex-col gap-3`,children:[(0,z.jsxs)(`div`,{className:`flex items-start justify-between gap-2`,children:[(0,z.jsxs)(`div`,{children:[(0,z.jsx)(`h2`,{id:`cron-history-panel`,className:`sr-only`,children:e.tabRunHistory}),(0,z.jsx)(`p`,{className:`text-xs text-fg-muted`,children:e.runHistoryHint})]}),(0,z.jsx)(j,{type:`button`,variant:`ghost`,className:`h-9 w-9 shrink-0 p-0`,disabled:t,title:e.refresh,"aria-label":e.refresh,onClick:()=>void o(),children:(0,z.jsx)(A,{className:f(`size-4`,t&&`animate-spin`),strokeWidth:1.75})})]}),t&&n.length===0?(0,z.jsx)(`div`,{className:`flex justify-center py-16`,children:(0,z.jsx)(i,{className:`size-8 animate-spin text-accent`,strokeWidth:1.75})}):r.length===0?(0,z.jsxs)(`div`,{className:`flex flex-col items-center rounded-2xl border border-dashed border-edge-subtle px-6 py-16 text-center dark:border-edge-subtle`,children:[(0,z.jsx)(M,{className:`mb-4 size-14 text-fg-disabled`,strokeWidth:1.1,"aria-hidden":!0}),(0,z.jsx)(`h3`,{className:`text-base font-semibold text-fg`,children:n.length===0?e.emptyHistoryTitle:e.noRunsYet}),(0,z.jsx)(`p`,{className:`mt-2 max-w-sm text-sm text-fg-muted`,children:n.length===0?e.emptyHistoryHint:e.runHistoryHint})]}):(0,z.jsx)(`div`,{className:`overflow-x-auto rounded-xl border border-edge-subtle bg-surface-base dark:border-edge-subtle`,children:(0,z.jsxs)(`table`,{className:`w-full min-w-[700px] border-collapse text-left text-sm`,children:[(0,z.jsx)(`thead`,{children:(0,z.jsxs)(`tr`,{className:`border-b border-edge text-xs font-medium text-fg-muted`,children:[(0,z.jsx)(`th`,{className:`px-3 py-2.5 font-medium`,children:e.colStarted}),(0,z.jsx)(`th`,{className:`px-3 py-2.5 font-medium`,children:e.colJob}),(0,z.jsx)(`th`,{className:`px-3 py-2.5 font-medium`,children:e.status}),(0,z.jsx)(`th`,{className:`px-3 py-2.5 font-medium`,children:e.colDuration}),(0,z.jsx)(`th`,{className:`px-3 py-2.5 font-medium`,children:e.colDetail}),(0,z.jsx)(`th`,{className:`px-3 py-2.5 font-medium`,children:e.colChat})]})}),(0,z.jsx)(`tbody`,{children:r.map(t=>(0,z.jsxs)(`tr`,{className:`border-b border-edge/60 last:border-0`,children:[(0,z.jsx)(`td`,{className:`whitespace-nowrap px-3 py-2.5 text-fg`,children:(0,z.jsx)(`time`,{dateTime:t.startedAt,children:fe(t.startedAt)})}),(0,z.jsx)(`td`,{className:`max-w-[10rem] truncate px-3 py-2.5`,children:a.some(e=>e.id===t.jobId)?(0,z.jsx)(`button`,{type:`button`,className:`text-left text-accent hover:underline`,onClick:()=>{let e=a.find(e=>e.id===t.jobId);e&&s(e)},children:t.jobName||t.jobId}):(0,z.jsx)(`span`,{className:`text-fg-muted`,children:t.jobName||t.jobId})}),(0,z.jsx)(`td`,{className:`px-3 py-2.5`,children:(0,z.jsx)(`span`,{className:f(`inline-flex rounded-md px-2 py-0.5 text-xs font-medium`,t.status===`success`&&`bg-emerald-500/15 text-emerald-800 dark:text-emerald-300`,t.status===`failed`&&`bg-red-500/15 text-red-800 dark:text-red-300`,t.status===`running`&&`bg-accent/15 text-accent`,t.status===`cancelled`&&`bg-surface-hover text-fg-muted`),children:ve(t.status,c)})}),(0,z.jsx)(`td`,{className:`whitespace-nowrap px-3 py-2.5 text-fg-muted`,children:F(t.duration)}),(0,z.jsx)(`td`,{className:`max-w-xs truncate px-3 py-2.5 text-fg-muted`,title:t.summary||t.error||``,children:N(t.summary||t.error,96)}),(0,z.jsx)(`td`,{className:`whitespace-nowrap px-3 py-2.5`,children:t.sessionKey?.trim()?(0,z.jsx)(`button`,{type:`button`,className:`text-xs font-medium text-accent hover:underline`,title:e.openChatTitle,"aria-label":e.openChatTitle,onClick:()=>Ue(t.sessionKey),children:e.openChat}):(0,z.jsx)(`span`,{className:`text-fg-disabled`,children:`—`})})]},t.id))})]})})]})}function rt({job:e,c:t,localeTag:n,scheduleBadgeLabels:r,absorbCardClickJobIdRef:i,scheduleAbsorbNextMenuCardClick:a,onOpenDetail:o,onToggle:s,onEdit:c,onRunNow:l,onDelete:u}){return(0,z.jsxs)(`article`,{role:`button`,tabIndex:0,className:f(`flex cursor-pointer flex-col rounded-xl border border-edge-subtle bg-surface-base text-left transition-colors duration-150 ease-out dark:border-edge-subtle`,`hover:bg-surface-hover`,`focus-visible:outline-none focus-visible:ring-2 focus-visible:ring-accent focus-visible:ring-offset-2 focus-visible:ring-offset-surface-panel`),onClick:()=>{if(i.current===e.id){i.current=null;return}o(e)},onKeyDown:t=>{if(t.key===`Enter`||t.key===` `){if(t.preventDefault(),i.current===e.id){i.current=null;return}o(e)}},children:[(0,z.jsxs)(`div`,{className:`flex items-start justify-between gap-2 px-4 pt-3`,children:[(0,z.jsx)(`button`,{type:`button`,role:`switch`,"aria-checked":e.enabled,className:f(`inline-flex h-6 w-10 shrink-0 items-center rounded-full border border-edge p-0.5 transition-colors`,e.enabled?`justify-end bg-accent`:`justify-start bg-surface-hover`),onClick:t=>{t.stopPropagation(),s(e,!e.enabled)},children:(0,z.jsx)(`span`,{className:`size-4 rounded-full bg-surface-panel shadow-surface ring-1 ring-edge/40 dark:ring-edge/55`})}),(0,z.jsxs)(I,{children:[(0,z.jsx)(Ne,{asChild:!0,children:(0,z.jsx)(j,{type:`button`,variant:`ghost`,className:`h-8 w-8 shrink-0 p-0`,"aria-label":t.jobCardMenuAria,onClick:e=>e.stopPropagation(),children:(0,z.jsx)(k,{className:`size-4`,strokeWidth:1.75})})}),(0,z.jsx)(L,{children:(0,z.jsxs)(Fe,{className:`z-50 min-w-[10rem] rounded-xl border border-edge-subtle bg-surface-panel p-1 shadow-elevated dark:border-edge-subtle`,sideOffset:4,align:`end`,onCloseAutoFocus:e=>e.preventDefault(),children:[(0,z.jsx)(Pe,{className:`cursor-pointer select-none rounded-lg px-2 py-1.5 text-sm text-fg outline-none data-highlighted:bg-surface-hover`,onSelect:()=>{a(e.id),c(e)},children:t.edit}),(0,z.jsx)(Pe,{className:`cursor-pointer select-none rounded-lg px-2 py-1.5 text-sm text-fg outline-none data-highlighted:bg-surface-hover`,onSelect:()=>{a(e.id),l(e)},children:t.runNow}),(0,z.jsx)(Pe,{className:`cursor-pointer select-none rounded-lg px-2 py-1.5 text-sm text-red-600 outline-none data-highlighted:bg-red-500/10 dark:text-red-400`,onSelect:()=>{a(e.id),u(e)},children:t.delete})]})})]})]}),(0,z.jsxs)(`div`,{className:`flex flex-1 flex-col gap-2 px-4 pb-3 pt-2`,children:[(0,z.jsx)(`h3`,{className:`line-clamp-2 font-semibold text-fg`,children:e.name||e.id}),(0,z.jsx)(`div`,{className:`max-h-[4.5rem] overflow-hidden text-sm text-fg-muted [&_.markdown-body]:text-sm [&_.markdown-body]:leading-snug`,title:Ee(e),children:(0,z.jsx)(C,{content:Ee(e),compact:!0})})]}),(0,z.jsxs)(`div`,{className:`flex items-center gap-1.5 border-t border-edge-subtle/90 px-4 py-2.5 text-xs text-fg-muted dark:border-edge-subtle`,children:[(0,z.jsx)(M,{className:`size-3.5 shrink-0`,strokeWidth:1.75,"aria-hidden":!0}),(0,z.jsx)(`span`,{className:`min-w-0 truncate`,children:je(e,n,r)})]})]})}function Z(e,t){let n=Math.max(1,Math.round(e/1e3));if(n<120)return t===`zh`?`${n} 秒`:`${n} seconds`;let r=Math.round(n/60);if(r<120)return t===`zh`?`${r} 分钟`:`${r} minutes`;let i=Math.round(r/60);return t===`zh`?`${i} 小时`:`${i} hours`}function it({c:e,language:t,localeTag:n,scheduleBadgeLabels:r,loading:a,sortedSystemJobs:s,heartbeat:l,keepAwake:u,wakeSupported:d,onWakeUnsupportedClick:p,onKeepAwakeToggle:m,absorbCardClickJobIdRef:h,scheduleAbsorbNextMenuCardClick:g,onOpenDetail:_,onToggle:v,onEdit:y,onRunNow:b,onDelete:x}){let S=Z(l.intervalMs,t);return(0,z.jsxs)(`section`,{"aria-labelledby":`cron-system-tasks-panel`,className:`flex flex-col gap-4`,children:[(0,z.jsx)(`h2`,{id:`cron-system-tasks-panel`,className:`sr-only`,children:e.tabSystemTasks}),(0,z.jsx)(`p`,{className:`text-sm text-fg-muted`,children:e.systemTasksIntro}),(0,z.jsxs)(`div`,{className:`flex flex-col gap-3 rounded-xl border border-accent/25 bg-accent/5 px-4 py-3 dark:border-accent/30 dark:bg-accent/10 sm:flex-row sm:items-center sm:justify-between`,children:[(0,z.jsxs)(`div`,{className:`flex gap-3 text-sm text-fg`,children:[(0,z.jsx)(o,{className:`mt-0.5 size-4 shrink-0 text-accent`,strokeWidth:1.75,"aria-hidden":!0}),(0,z.jsx)(`p`,{className:`text-pretty text-fg-muted`,children:e.wakeBanner})]}),(0,z.jsxs)(`div`,{className:`flex shrink-0 items-center gap-2 sm:pl-4`,children:[(0,z.jsx)(`span`,{className:`text-sm text-fg`,children:e.keepAwake}),(0,z.jsx)(`button`,{type:`button`,role:`switch`,"aria-checked":u,disabled:!d,title:d?void 0:e.wakeLockUnavailable,className:f(`inline-flex h-6 w-10 shrink-0 items-center rounded-full border border-edge p-0.5 transition-colors`,u?`justify-end bg-accent`:`justify-start bg-surface-hover`,!d&&`cursor-not-allowed opacity-50`),onClick:()=>{d?m():p()},children:(0,z.jsx)(`span`,{className:`size-4 rounded-full bg-surface-panel shadow-surface ring-1 ring-edge/40 dark:ring-edge/55`})})]})]}),(0,z.jsxs)(`div`,{className:`rounded-xl border border-edge bg-surface-base p-4 dark:bg-surface-hover/20`,children:[(0,z.jsxs)(`div`,{className:`flex flex-col gap-1 sm:flex-row sm:items-start sm:justify-between`,children:[(0,z.jsxs)(`div`,{children:[(0,z.jsx)(`h3`,{className:`text-sm font-semibold text-fg`,children:e.systemHeartbeatTitle}),(0,z.jsx)(`p`,{className:`mt-1 text-xs text-fg-muted`,children:e.systemHeartbeatHint})]}),(0,z.jsx)(j,{type:`button`,variant:`ghost`,className:`shrink-0 gap-1 self-start px-2 py-1.5 text-xs`,asChild:!0,children:(0,z.jsxs)(c,{to:`/settings/heartbeat`,children:[e.systemHeartbeatSettingsLink,(0,z.jsx)(ae,{className:`size-3.5 opacity-70`,"aria-hidden":!0})]})})]}),(0,z.jsxs)(`dl`,{className:`mt-3 grid gap-2 text-sm sm:grid-cols-2`,children:[(0,z.jsxs)(`div`,{children:[(0,z.jsx)(`dt`,{className:`text-xs font-medium text-fg-muted`,children:e.systemHeartbeatStatus}),(0,z.jsx)(`dd`,{className:`text-fg`,children:l.enabled?e.enabled:e.disabled})]}),(0,z.jsxs)(`div`,{children:[(0,z.jsx)(`dt`,{className:`text-xs font-medium text-fg-muted`,children:e.systemHeartbeatInterval}),(0,z.jsx)(`dd`,{className:`text-fg`,children:e.systemHeartbeatEvery.replace(/\{\{value\}\}/g,S)})]})]})]}),(0,z.jsxs)(`div`,{children:[(0,z.jsxs)(`div`,{className:`mb-2 flex flex-col gap-1 sm:flex-row sm:items-center sm:justify-between`,children:[(0,z.jsx)(`h3`,{className:`text-sm font-semibold text-fg`,children:e.systemDreamingTitle}),(0,z.jsx)(j,{type:`button`,variant:`ghost`,className:`shrink-0 gap-1 self-start px-2 py-1.5 text-xs`,asChild:!0,children:(0,z.jsxs)(c,{to:`/settings/dreams`,children:[e.systemDreamingSettingsLink,(0,z.jsx)(ae,{className:`size-3.5 opacity-70`,"aria-hidden":!0})]})})]}),(0,z.jsx)(`p`,{className:`mb-3 text-xs text-fg-muted`,children:e.systemDreamingHint}),a&&s.length===0?(0,z.jsx)(`div`,{className:`flex justify-center py-12`,"aria-busy":`true`,children:(0,z.jsx)(i,{className:`size-8 animate-spin text-accent`,strokeWidth:1.75})}):s.length===0?(0,z.jsx)(`p`,{className:`rounded-lg border border-edge-subtle bg-surface-hover/30 px-3 py-4 text-sm text-fg-muted dark:border-edge-subtle`,children:e.systemDreamingEmpty}):(0,z.jsx)(`div`,{className:`grid gap-4 sm:grid-cols-2`,children:s.map(t=>(0,z.jsx)(rt,{job:t,c:e,localeTag:n,scheduleBadgeLabels:r,absorbCardClickJobIdRef:h,scheduleAbsorbNextMenuCardClick:g,onOpenDetail:_,onToggle:v,onEdit:y,onRunNow:b,onDelete:x},t.id))})]})]})}function at(e,t){let n=e.templates;if(!n||typeof n!=`object`)return;let r=n[t];if(!r||typeof r!=`object`)return;let i=r.title?.trim(),a=r.prompt?.trim();if(!(!i||!a))return{title:i,description:(r.description??``).trim(),prompt:a}}var ot=[`daily`,`monitoring`,`reports`,`automation`],Q=[{templateId:`morning_briefing`,category:`daily`,defaultSchedule:`0 7 * * 1-5`,defaultSessionTarget:`isolated`},{templateId:`standup_prep`,category:`daily`,defaultSchedule:`0 8 * * 1-5`,defaultSessionTarget:`isolated`},{templateId:`end_of_day_wrap_up`,category:`daily`,defaultSchedule:`0 18 * * 1-5`,defaultSessionTarget:`isolated`},{templateId:`inbox_triage`,category:`daily`,defaultSchedule:`30 8 * * 1-5`,defaultSessionTarget:`isolated`},{templateId:`competitor_watch`,category:`monitoring`,defaultSchedule:`0 9 * * 1`,defaultSessionTarget:`isolated`},{templateId:`trending_topics_monitor`,category:`monitoring`,defaultSchedule:`0 10 * * 1-5`,defaultSessionTarget:`isolated`},{templateId:`tech_radar_stack`,category:`monitoring`,defaultSchedule:`0 11 * * 3`,defaultSessionTarget:`isolated`},{templateId:`dependency_check_audit`,category:`monitoring`,defaultSchedule:`0 9 * * 0`,defaultSessionTarget:`isolated`},{templateId:`weekly_review`,category:`reports`,defaultSchedule:`0 17 * * 5`,defaultSessionTarget:`isolated`},{templateId:`code_quality_report`,category:`reports`,defaultSchedule:`0 14 * * 1`,defaultSessionTarget:`isolated`},{templateId:`git_activity_summary`,category:`reports`,defaultSchedule:`0 9 * * 1`,defaultSessionTarget:`isolated`},{templateId:`user_feedback_digest`,category:`reports`,defaultSchedule:`0 16 * * 5`,defaultSessionTarget:`isolated`},{templateId:`stale_todo_or_issue_sweep`,category:`automation`,defaultSchedule:`0 10 * * 2`,defaultSessionTarget:`isolated`},{templateId:`release_notes_or_changelog_draft`,category:`automation`,defaultSchedule:`0 10 * * 4`,defaultSessionTarget:`isolated`},{templateId:`workspace_cleanup_suggestions`,category:`automation`,defaultSchedule:`30 18 * * 5`,defaultSessionTarget:`isolated`},{templateId:`smoke_or_ci_health_reminder`,category:`automation`,defaultSchedule:`0 8 * * 1`,defaultSessionTarget:`isolated`}];function st(e){return Q.find(t=>t.templateId===e)}function ct(e){let{cron:t,localeTag:n,scheduleBadgeLabels:r,categoryFilter:i,onCategoryFilterChange:a,onSelectTemplate:o}=e,s=i===`all`?[...Q]:Q.filter(e=>e.category===i);return(0,z.jsxs)(`div`,{className:`flex w-full flex-col gap-4`,children:[(0,z.jsxs)(`div`,{className:`flex flex-wrap gap-2`,role:`group`,"aria-label":t.fromTemplate,children:[(0,z.jsx)(j,{type:`button`,variant:i===`all`?`secondary`:`ghost`,className:`h-8 rounded-full px-3 py-1.5 text-xs`,onClick:()=>a(`all`),children:t.templateFilterAll}),ot.map(e=>(0,z.jsx)(j,{type:`button`,variant:i===e?`secondary`:`ghost`,className:`h-8 rounded-full px-3 py-1.5 text-xs`,onClick:()=>a(e),children:t.templateCategories[e]},e))]}),s.length===0?(0,z.jsx)(`p`,{className:`text-center text-sm text-fg-muted`,children:t.templatesEmptyHint}):(0,z.jsx)(`div`,{className:`grid gap-3 sm:grid-cols-2`,children:s.map(e=>{let i=at(t,e.templateId);if(!i)return null;let a=je({schedule:e.defaultSchedule,timezone:void 0,next_run:void 0},n,r);return(0,z.jsxs)(`button`,{type:`button`,className:f(`flex flex-col gap-1.5 rounded-xl border border-edge-subtle bg-surface-base p-4 text-left transition-colors`,`hover:border-accent/40 hover:bg-surface-hover`,`focus-visible:outline-none focus-visible:ring-2 focus-visible:ring-accent focus-visible:ring-offset-2 focus-visible:ring-offset-surface-panel`),onClick:()=>o(e.templateId),"aria-label":`${t.templateCategories[e.category]} — ${i.title}`,children:[(0,z.jsx)(`span`,{className:`font-semibold text-fg`,children:i.title}),(0,z.jsx)(`span`,{className:`line-clamp-2 text-sm text-fg-muted`,children:i.description}),(0,z.jsx)(`span`,{className:`mt-1 flex items-center gap-1 text-xs text-fg-muted`,children:(0,z.jsx)(`span`,{className:`tabular-nums`,children:a})})]},e.templateId)})})]})}function lt({c:e,localeTag:t,scheduleBadgeLabels:n,loading:r,jobsCount:a,sortedJobs:s,templateCategoryFilter:c,onTemplateCategoryFilterChange:l,onSelectTemplate:u,keepAwake:d,wakeSupported:p,onWakeUnsupportedClick:m,onKeepAwakeToggle:h,absorbCardClickJobIdRef:g,scheduleAbsorbNextMenuCardClick:_,onOpenDetail:v,onToggle:y,onEdit:b,onAddJob:x,onRunNow:S,onDelete:C}){return(0,z.jsxs)(`section`,{"aria-labelledby":`cron-tasks-panel`,className:`flex flex-col gap-4`,children:[(0,z.jsx)(`h2`,{id:`cron-tasks-panel`,className:`sr-only`,children:e.tabMyTasks}),(0,z.jsxs)(`div`,{className:`flex flex-col gap-3 rounded-xl border border-accent/25 bg-accent/5 px-4 py-3 dark:border-accent/30 dark:bg-accent/10 sm:flex-row sm:items-center sm:justify-between`,children:[(0,z.jsxs)(`div`,{className:`flex gap-3 text-sm text-fg`,children:[(0,z.jsx)(o,{className:`mt-0.5 size-4 shrink-0 text-accent`,strokeWidth:1.75,"aria-hidden":!0}),(0,z.jsx)(`p`,{className:`text-pretty text-fg-muted`,children:e.wakeBanner})]}),(0,z.jsxs)(`div`,{className:`flex shrink-0 items-center gap-2 sm:pl-4`,children:[(0,z.jsx)(`span`,{className:`text-sm text-fg`,children:e.keepAwake}),(0,z.jsx)(`button`,{type:`button`,role:`switch`,"aria-checked":d,disabled:!p,title:p?void 0:e.wakeLockUnavailable,className:f(`inline-flex h-6 w-10 shrink-0 items-center rounded-full border border-edge p-0.5 transition-colors`,d?`justify-end bg-accent`:`justify-start bg-surface-hover`,!p&&`cursor-not-allowed opacity-50`),onClick:()=>{p?h():m()},children:(0,z.jsx)(`span`,{className:`size-4 rounded-full bg-surface-panel shadow-surface ring-1 ring-edge/40 dark:ring-edge/55`})})]})]}),r&&a===0?(0,z.jsx)(`div`,{className:`flex justify-center py-16`,"aria-busy":`true`,children:(0,z.jsx)(i,{className:`size-8 animate-spin text-accent`,strokeWidth:1.75})}):a===0?(0,z.jsxs)(`div`,{className:`flex flex-col gap-6 rounded-2xl bg-surface-base px-4 py-8 dark:bg-surface-hover/25 sm:px-6 sm:py-10`,children:[(0,z.jsx)(`div`,{className:`w-full max-w-3xl`,children:(0,z.jsx)(ct,{cron:e,localeTag:t,scheduleBadgeLabels:n,categoryFilter:c,onCategoryFilterChange:l,onSelectTemplate:u})}),(0,z.jsx)(`div`,{className:`flex justify-center`,children:(0,z.jsx)(j,{type:`button`,variant:`primary`,onClick:x,children:e.emptyStateCta})})]}):(0,z.jsx)(`div`,{className:`grid gap-4 sm:grid-cols-2`,children:s.map(r=>(0,z.jsx)(rt,{job:r,c:e,localeTag:t,scheduleBadgeLabels:n,absorbCardClickJobIdRef:g,scheduleAbsorbNextMenuCardClick:_,onOpenDetail:e=>void v(e),onToggle:(e,t)=>void y(e,t),onEdit:b,onRunNow:S,onDelete:C},r.id))})]})}function ut({open:e,onOpenChange:t,c:n,localeTag:r,scheduleBadgeLabels:i,categoryFilter:o,onCategoryFilterChange:c,onSelectTemplate:l}){return(0,z.jsx)(p,{open:e,onOpenChange:t,children:(0,z.jsxs)(ie,{children:[(0,z.jsx)(a,{className:`xopc-dialog-overlay fixed inset-0 z-[62] bg-scrim`}),(0,z.jsx)(`div`,{className:`fixed inset-0 z-[62] flex items-center justify-center p-4 pointer-events-none`,children:(0,z.jsxs)(_,{className:`xopc-dialog-content-pane pointer-events-auto relative flex max-h-[min(90vh,840px)] w-full max-w-lg flex-col rounded-xl border border-edge bg-surface-panel shadow-popover outline-none sm:max-w-2xl dark:border-edge`,onOpenAutoFocus:e=>e.preventDefault(),children:[(0,z.jsxs)(`div`,{className:`flex shrink-0 items-center justify-end border-b border-edge px-4 py-3`,children:[(0,z.jsx)(m,{className:`sr-only`,children:n.fromTemplate}),(0,z.jsx)(s,{asChild:!0,children:(0,z.jsx)(j,{type:`button`,variant:`ghost`,className:`h-9 w-9 shrink-0 p-0`,"aria-label":n.close,children:(0,z.jsx)(y,{className:`size-5`,strokeWidth:1.75})})})]}),(0,z.jsx)(`div`,{className:`min-h-0 flex-1 overflow-y-auto px-4 py-4`,children:(0,z.jsx)(ct,{cron:n,localeTag:r,scheduleBadgeLabels:i,categoryFilter:o,onCategoryFilterChange:c,onSelectTemplate:l})})]})})]})})}function dt(){let e=b(e=>e.language),t=r(e),n=t.cron,i=t.chat,a=!!te(e=>e.token),o=ue(e=>e.resolved)===`dark`,s=e===`zh`?`zh-CN`:`en-US`,[c,l]=(0,R.useState)([]),[u,f]=(0,R.useState)(`myTasks`),[p,m]=(0,R.useState)(`created_desc`),[g,_]=(0,R.useState)(`day`),[v,y]=(0,R.useState)(``),[x,S]=(0,R.useState)(``),[C,w]=(0,R.useState)(!1),T=(0,R.useRef)(null),E=(0,R.useRef)(`none`),ee=(0,R.useRef)(C),D=typeof navigator<`u`&&`wakeLock`in navigator,k=D||d(),[A,re]=(0,R.useState)([]),[j,ie]=(0,R.useState)([]),[ae,oe]=(0,R.useState)(``),[M,se]=(0,R.useState)([]),[ce,le]=(0,R.useState)([]),[N,fe]=(0,R.useState)(!1),[pe,he]=(0,R.useState)(null),[ve,F]=(0,R.useState)(null),[Ae,je]=(0,R.useState)([]),[Me,Ne]=(0,R.useState)(!1),[I,Pe]=(0,R.useState)(!1),[L,Fe]=(0,R.useState)(`add`),[ze,Ue]=(0,R.useState)(null),[Ge,B]=(0,R.useState)(``),[Ke,V]=(0,R.useState)(Re),[H,U]=(0,R.useState)(`local`),[W,G]=(0,R.useState)(``),[Je,K]=(0,R.useState)(``),[Ye,q]=(0,R.useState)(`edit`),[Xe,Ze]=(0,R.useState)(0),[J,Y]=(0,R.useState)(`main`),[Qe,X]=(0,R.useState)(``),[rt,Z]=(0,R.useState)(!1),[ot,Q]=(0,R.useState)(``),[ct,dt]=(0,R.useState)(!1),[ft,pt]=(0,R.useState)(``),[mt,ht]=(0,R.useState)(!1),gt=(0,R.useRef)(!1),[_t,vt]=(0,R.useState)(!1),[yt,bt]=(0,R.useState)(null),[xt,St]=(0,R.useState)([]),[Ct,wt]=(0,R.useState)(!1),[Tt,Et]=(0,R.useState)(!1),[Dt,Ot]=(0,R.useState)(null),[kt,At]=(0,R.useState)(null),[jt,Mt]=(0,R.useState)(!1),[Nt,Pt]=(0,R.useState)(`all`),Ft=(0,R.useRef)(null),It=(0,R.useCallback)(e=>{Ft.current=e,window.setTimeout(()=>{Ft.current===e&&(Ft.current=null)},400)},[]),$=(0,R.useCallback)(()=>ae||(j.length>0?j[0].id:``),[ae,j]),Lt=typeof window<`u`&&!!window.electronAPI?.file?.openDirectory,Rt=(0,R.useCallback)(async()=>{let e=typeof window<`u`?window.electronAPI?.file?.openDirectory:void 0;return e?e():null},[]),zt=(0,R.useCallback)(async e=>{let t=e.trim();t&&(We(t),Q(t))},[]),Bt=(0,R.useMemo)(()=>{let e=new Set(ce.map(e=>e.id)),t=[...ce],n=Qe.trim().toLowerCase();return n&&!e.has(n)&&t.push({id:n}),t},[ce,Qe]),Vt=H!==`local`&&(J===`main`||J===`isolated`&&!rt),Ht=J===`main`||J===`isolated`&&!rt,Ut=!!Ge.trim()&&!!Ke.trim()&&!!Je.trim()&&(!Vt||!!W.trim()),Wt=(0,R.useCallback)(async()=>{Ne(!0);try{je(await be(400))}catch{}finally{Ne(!1)}},[]),Gt=(0,R.useCallback)(async()=>{fe(!0),F(null);try{l(await _e())}catch(e){F(e instanceof Error?e.message:n.failedToLoadJobs)}finally{fe(!1)}},[n.failedToLoadJobs]),Kt=(0,R.useCallback)(async()=>{try{let[e,t,n,r,i]=await Promise.all([me(),xe(),we(),O(),de().catch(()=>null)]);re(e),ie(t),oe(n.model||``),he(r.payload?.config??null),i&&le(i.items)}catch{}},[]);(0,R.useEffect)(()=>{a&&(Gt(),Kt())},[a,Gt,Kt]),(0,R.useEffect)(()=>{if(!a)return;let e=()=>{O().then(e=>{he(e.payload?.config??null)})};return window.addEventListener(`config-reload`,e),()=>window.removeEventListener(`config-reload`,e)},[a]),(0,R.useEffect)(()=>{!a||u!==`history`||Wt()},[a,u,Wt]);let qt=(0,R.useCallback)(async()=>{if(E.current===`electron`){try{await window.electronAPI?.cron?.setDisplaySleepPrevented?.(!1)}catch{}E.current=`none`;return}try{await T.current?.release()}catch{}T.current=null,E.current=`none`},[]),Jt=(0,R.useCallback)(async()=>{let e=typeof window<`u`?window.electronAPI?.cron?.setDisplaySleepPrevented:void 0;if(e)try{await e(!0),E.current=`electron`;return}catch{F(n.wakeLockUnavailable),w(!1);return}if(D)try{let e=await navigator.wakeLock.request(`screen`);T.current=e,E.current=`navigator`,e.addEventListener(`release`,()=>{T.current=null,E.current=`none`})}catch{F(n.wakeLockUnavailable),w(!1)}},[n.wakeLockUnavailable,D]);ee.current=C,(0,R.useEffect)(()=>{if(!C){qt();return}Jt();let e=()=>{document.visibilityState===`visible`&&ee.current&&Jt()};return document.addEventListener(`visibilitychange`,e),()=>{document.removeEventListener(`visibilitychange`,e),qt()}},[C,Jt,qt]),(0,R.useEffect)(()=>{if(!I||L!==`add`||gt.current)return;let e=$();e&&pt(e)},[I,L,$]),(0,R.useEffect)(()=>{!I||L!==`add`||new Set([`local`,...A.map(e=>e.name)]).has(H)||U(`local`)},[A,H,L,I]),(0,R.useEffect)(()=>{if(H===`local`){se([]);return}let e=!1;return ke(H).then(t=>{e||se(t)}),()=>{e=!0}},[H,I]);let Yt=(0,R.useCallback)(e=>{if(gt.current=!1,Pe(!0),Fe(e?`edit`:`add`),Ue(e?.id??null),e){B(e.name||``),V(e.schedule&&String(e.schedule).trim()||`*/5 * * * *`);let t=Ee(e);K(t??``),Y(e.sessionTarget||`main`),X((e.sessionTarget||`main`)===`isolated`&&e.agentId?.trim()?e.agentId.trim().toLowerCase():``),Q((e.sessionTarget||`main`)===`isolated`&&e.workingDirectory?.trim()?e.workingDirectory.trim():``);let n=e.payload?.kind===`agentTurn`&&e.payload.model?.trim()?e.payload.model.trim():``;pt(e.model?.trim()||n||$());let r=e.delivery?.channel===`local`,i=(e.sessionTarget||`main`)===`isolated`&&!r&&(!e.delivery?.to||e.delivery.mode===`none`);if(Z(i),r)U(`local`),G(``);else if(e.delivery&&e.delivery.mode!==`none`&&e.delivery.to)U(e.delivery.channel||`telegram`),G(e.delivery.to||``);else if(i)U(`telegram`),G(``);else{let e=t.split(`:`);e.length>=3&&[`telegram`,`cli`,`gateway`,`local`].includes(e[0])?(U(e[0]),G(e[1]),K(e.slice(2).join(`:`))):(U(`telegram`),G(``))}}else B(``),V(Re),U(`local`),G(``),K(``),Y(`main`),X(``),Q(``),Z(!1),pt($());q(`edit`),Ze(e=>e+1)},[$]),Xt=(0,R.useCallback)(e=>{q(e),e===`edit`&&Ze(e=>e+1)},[]),Zt=(0,R.useCallback)(e=>{let n=st(e),r=n?at(t.cron,e):void 0;!n||!r||(gt.current=!1,Fe(`add`),Ue(null),B(r.title),V(n.defaultSchedule),K(r.prompt),Y(n.defaultSessionTarget),U(`local`),G(``),Z(!1),X(``),Q(``),pt($()),q(`edit`),Ze(e=>e+1),Mt(!1),Pe(!0))},[$,t.cron]),Qt=(0,R.useCallback)(()=>{Pe(!1),Fe(`add`),Ue(null),B(``),V(Re),U(`local`),G(``),K(``),Y(`main`),X(``),Q(``),dt(!1),Z(!1),pt(``),q(`edit`),gt.current=!1},[]),$t=async()=>{if(!Ge.trim()){F(n.nameRequired);return}if(!Ke.trim()||!Je.trim()){F(n.scheduleRequired);return}if(Vt&&!W.trim()){F(n.chatIdRequired);return}ht(!0),F(null);try{let e=Je.trim(),t;t=J===`isolated`&&rt?{mode:`none`}:H===`local`?{mode:`direct`,channel:`local`}:{mode:`direct`,channel:H,to:W.trim()};let n=J===`isolated`?{kind:`agentTurn`,message:e,...ft.trim()?{model:ft.trim()}:{}}:{kind:`systemEvent`,text:e},r=ft.trim(),i=Qe.trim().toLowerCase(),a=J===`main`?null:i||null,o=ot.trim(),s={name:Ge.trim(),schedule:Ke.trim(),sessionTarget:J,model:J===`isolated`&&r?r:void 0,delivery:t,payload:n,...L===`edit`?{agentId:a,workingDirectory:J===`isolated`&&o||null}:{...J===`isolated`&&i?{agentId:i}:{},...J===`isolated`&&o?{workingDirectory:o}:{}}};if(L===`edit`&&ze)await ye(ze,s);else{let{schedule:e,agentId:t,workingDirectory:n,...r}=s;await Ce(e,{...r,...t==null?{}:{agentId:t},...n?{workingDirectory:n}:{}})}Qt(),await Gt(),await Kt()}catch(e){F(e instanceof Error?e.message:L===`edit`?n.failedToUpdateJob:n.failedToCreateJob)}finally{ht(!1)}},en=async e=>{vt(!0),bt(e),wt(!0),St([]);try{let t=await ge(e.id);t&&(bt(t),St(await De(e.id,20)))}catch{}finally{wt(!1)}},tn=async(e,t)=>{try{await Se(e.id,t),await Gt(),await Kt()}catch(e){F(e instanceof Error?e.message:n.failedToToggleJob)}},nn=async()=>{if(!kt||!Dt)return;let e=kt,t=Dt;Et(!1),At(null),Ot(null);try{t===`run`?await Te(e):(await P(e),yt?.id===e&&(vt(!1),bt(null))),await Gt(),await Kt(),await Wt()}catch(e){F(e instanceof Error?e.message:n.actionFailed)}};(0,R.useEffect)(()=>{let e=e=>{e.key===`Escape`&&(I?Qt():_t&&(vt(!1),bt(null)))};return document.addEventListener(`keydown`,e),()=>document.removeEventListener(`keydown`,e)},[I,_t,Qt]);let rn=(0,R.useMemo)(()=>({running:n.execStatusRunning,success:n.execStatusSuccess,failed:n.execStatusFailed,cancelled:n.execStatusCancelled}),[n.execStatusCancelled,n.execStatusFailed,n.execStatusRunning,n.execStatusSuccess]),an=(0,R.useMemo)(()=>c.filter(e=>!Oe(e)),[c]),on=(0,R.useMemo)(()=>c.filter(e=>Oe(e)),[c]),sn=(0,R.useCallback)(e=>{let t=[...e];return t.sort((e,t)=>{let n=new Date(e.created_at).getTime(),r=new Date(t.created_at).getTime();return p===`created_desc`?r-n:n-r}),t},[p]),cn=(0,R.useMemo)(()=>sn(an),[sn,an]),ln=(0,R.useMemo)(()=>sn(on),[sn,on]),un=(0,R.useMemo)(()=>Ie(pe),[pe]),dn=(0,R.useMemo)(()=>{let e=new Date,t=g===`day`?Be(e):g===`week`?Ve(e):He(e);return Ae.filter(e=>!(new Date(e.startedAt)<t||v&&e.jobId!==v||x&&e.status!==x))},[Ae,g,v,x]),fn=n.scheduleBadge,pn=(0,R.useCallback)(()=>{Gt(),Kt(),Wt()},[Gt,Kt,Wt]),mn=ne(e=>e.setPageHeader),hn=ne(e=>e.clearPageHeader),{pathname:gn}=h(),_n=gn.startsWith(`/settings/`),vn=(0,R.useCallback)((e,t,n)=>{Y(e),e===`main`?(Z(!1),X(``),Q(``)):e===`isolated`&&!n&&pt(t())},[]),yn=(0,R.useCallback)(()=>{ke(H).then(se)},[H]),bn=(0,R.useMemo)(()=>(0,z.jsx)(tt,{c:n,loading:N,runHistoryLoading:Me,onRefresh:pn,onOpenTemplatePicker:()=>{Pt(`all`),Mt(!0)},onAddJob:()=>Yt()}),[n,N,Yt,pn,Me]);return(0,R.useLayoutEffect)(()=>!a||_n?(hn(),()=>hn()):(mn({startExtra:null,main:null,end:bn}),()=>hn()),[hn,bn,a,_n,mn]),a?(0,z.jsxs)(`div`,{className:`flex min-h-0 flex-1 flex-col overflow-y-auto bg-surface-panel`,children:[(0,z.jsxs)(`div`,{className:`mx-auto flex w-full max-w-app-main flex-col gap-6 px-4 py-6 sm:px-8`,children:[ve?(0,z.jsx)(`div`,{className:`rounded-xl border border-red-200 bg-red-50 px-3 py-2 text-sm text-red-800 dark:border-red-900/50 dark:bg-red-950/40 dark:text-red-200`,role:`alert`,children:ve}):null,(0,z.jsx)(`header`,{className:`flex flex-col gap-4`,children:(0,z.jsxs)(`div`,{className:`min-w-0`,children:[(0,z.jsx)(`h1`,{className:`text-xl font-semibold tracking-tight text-fg`,children:n.title}),(0,z.jsx)(`p`,{className:`mt-1 max-w-2xl text-sm text-fg-muted`,children:n.subtitle})]})}),_n?(0,z.jsx)(`div`,{className:`flex flex-wrap items-center justify-end gap-2 border-b border-edge-subtle pb-3 dark:border-edge-subtle`,children:bn}):null,(0,z.jsx)(et,{c:n,mainTab:u,onMainTabChange:f,jobSort:p,onJobSortChange:m,historyRange:g,onHistoryRangeChange:_,historyJobFilter:v,onHistoryJobFilterChange:y,historyStatusFilter:x,onHistoryStatusFilterChange:S,jobs:c}),u===`myTasks`?(0,z.jsx)(lt,{c:n,localeTag:s,scheduleBadgeLabels:fn,loading:N,jobsCount:an.length,sortedJobs:cn,templateCategoryFilter:Nt,onTemplateCategoryFilterChange:Pt,onSelectTemplate:Zt,keepAwake:C,wakeSupported:k,onWakeUnsupportedClick:()=>F(n.wakeLockUnavailable),onKeepAwakeToggle:()=>w(e=>!e),absorbCardClickJobIdRef:Ft,scheduleAbsorbNextMenuCardClick:It,onOpenDetail:e=>void en(e),onToggle:(e,t)=>void tn(e,t),onEdit:e=>Yt(e),onAddJob:()=>Yt(),onRunNow:e=>{Ot(`run`),At(e.id),Et(!0)},onDelete:e=>{Ot(`delete`),At(e.id),Et(!0)}}):u===`systemTasks`?(0,z.jsx)(it,{c:n,language:e,localeTag:s,scheduleBadgeLabels:fn,loading:N,sortedSystemJobs:ln,heartbeat:un,keepAwake:C,wakeSupported:k,onWakeUnsupportedClick:()=>F(n.wakeLockUnavailable),onKeepAwakeToggle:()=>w(e=>!e),absorbCardClickJobIdRef:Ft,scheduleAbsorbNextMenuCardClick:It,onOpenDetail:e=>void en(e),onToggle:(e,t)=>void tn(e,t),onEdit:e=>Yt(e),onRunNow:e=>{Ot(`run`),At(e.id),Et(!0)},onDelete:e=>{Ot(`delete`),At(e.id),Et(!0)}}):(0,z.jsx)(nt,{c:n,runHistoryLoading:Me,runHistory:Ae,filteredRunHistory:dn,jobs:c,onRefreshHistory:()=>void Wt(),onOpenJobDetail:e=>void en(e),statusLabels:rn})]}),(0,z.jsx)($e,{open:I,onRequestClose:Qt,c:n,chatM:i,agentsMessages:t.agentsSettings,isDark:o,channels:A,sessionChatIds:M,cronAgentSelectOptions:Bt,hasElectronFolderPicker:Lt,openNativeFolderPicker:Rt,applyWorkingDirectory:zt,wdModalOpen:ct,onWdModalOpenChange:dt,defaultModelResolver:$,formMode:L,formJobId:ze,formName:Ge,onFormNameChange:B,formSchedule:Ke,onFormScheduleChange:V,formSubmitting:mt,formSessionTarget:J,onFormSessionTargetChange:vn,formAgentLocalOnly:rt,onFormAgentLocalOnlyChange:Z,formModel:ft,onFormModelUserChange:e=>{gt.current=!0,pt(e)},formAgentId:Qe,onFormAgentIdChange:X,formWorkingDirectory:ot,onFormWorkingDirectoryChange:Q,formChannel:H,onFormChannelChange:e=>{U(e),e===`local`&&Z(!1),G(``)},formChatId:W,onFormChatIdChange:G,formMessage:Je,onFormMessageChange:K,formMessageMdMode:Ye,onSetMessageMdMode:Xt,messageEditorNonce:Xe,needsDeliveryChat:Vt,showChannelPicker:Ht,canSubmit:Ut,onSubmit:()=>void $t(),onRefreshRecipients:yn}),(0,z.jsx)(ut,{open:jt,onOpenChange:e=>{Mt(e),e&&Pt(`all`)},c:n,localeTag:s,scheduleBadgeLabels:fn,categoryFilter:Nt,onCategoryFilterChange:Pt,onSelectTemplate:Zt}),(0,z.jsx)(qe,{open:_t,onDismiss:()=>{vt(!1),bt(null)},detailJob:yt,detailLoading:Ct,detailHistory:xt,c:n,chatWorkingDirNotSet:i.workingDirectory.notSet,statusLabels:rn}),(0,z.jsx)(Le,{open:Tt,onOpenChange:Et,action:Dt,c:n,onDismiss:()=>{Et(!1),At(null),Ot(null)},onConfirm:nn})]}):(0,z.jsx)(`div`,{className:`mx-auto w-full max-w-app-main px-4 py-16 text-center text-sm text-fg-muted sm:px-8`,children:n.needToken})}export{dt as CronPage};
|
|
2
|
-
//# sourceMappingURL=cron-page-
|
|
1
|
+
import{i as e}from"./rolldown-runtime-DWdDZTNf.js";import{i as t,t as n}from"./vendor-react-DbimaAId.js";import{An as r,Ar as i,At as a,Br as o,Dt as s,Ei as c,En as l,Et as u,Fn as d,In as f,Mt as p,Nt as m,Oi as h,On as g,Ot as _,Pr as v,Rn as y,Sn as b,Tn as x,Tt as S,X as C,Xr as w,Y as T,Z as E,Zn as ee,_n as te,a as D,bt as O,ei as k,fr as A,gn as ne,i as re,jn as j,jt as ie,mi as ae,mr as oe,oi as M,qr as se,r as ce,w as le,xn as ue,yt as de}from"./index-8IFT6i7x.js";import{C as N,S as fe,_ as pe,a as me,b as he,c as ge,d as _e,f as P,g as ve,h as ye,i as be,l as xe,m as Se,n as Ce,o as we,p as Te,r as Ee,s as De,t as Oe,u as ke,v as F,w as Ae,x as je,y as Me}from"./cron-dreaming-jobs-DousYqF2.js";import{a as Ne,i as I,n as Pe,r as L,t as Fe}from"./dist-D8QibYZR.js";import{t as Ie}from"./heartbeat-config-api-B9hxMalj.js";var R=e(t(),1),z=n();function Le({open:e,onOpenChange:t,action:n,c:r,onDismiss:i,onConfirm:o}){return(0,z.jsx)(p,{open:e,onOpenChange:t,children:(0,z.jsxs)(ie,{children:[(0,z.jsx)(a,{className:`xopc-dialog-overlay fixed inset-0 z-[70] bg-scrim`}),(0,z.jsx)(`div`,{className:`fixed inset-0 z-[70] flex items-center justify-center p-4 pointer-events-none`,children:(0,z.jsxs)(_,{className:`xopc-dialog-content-pane pointer-events-auto relative w-full max-w-md rounded-xl border border-edge bg-surface-panel p-4 shadow-popover dark:border-edge`,children:[(0,z.jsx)(m,{className:`text-base font-semibold text-fg`,children:n===`delete`?r.delete:r.runNow}),(0,z.jsx)(`p`,{className:`mt-2 text-sm text-fg-muted`,children:n===`delete`?r.confirmDelete:r.confirmRun}),(0,z.jsxs)(`div`,{className:`mt-4 flex justify-end gap-2`,children:[(0,z.jsx)(j,{type:`button`,variant:`secondary`,onClick:i,children:r.cancel}),(0,z.jsx)(j,{type:`button`,variant:`primary`,className:n===`delete`?`bg-red-600 hover:bg-red-700`:void 0,onClick:()=>void o(),children:n===`delete`?r.delete:r.runNow})]})]})})]})})}var Re=`*/5 * * * *`,ze=`xopc.recentWorkspaceDirs.v1`;function Be(e){let t=new Date(e);return t.setHours(0,0,0,0),t}function Ve(e){let t=Be(e),n=t.getDay(),r=n===0?-6:1-n;return t.setDate(t.getDate()+r),t}function He(e){return new Date(e.getFullYear(),e.getMonth(),1,0,0,0,0)}function Ue(e){let t=e?.trim();t&&window.dispatchEvent(new CustomEvent(`navigate-to-chat`,{detail:{sessionKey:t},bubbles:!0}))}function We(e){let t=e.trim();if(t)try{let e=localStorage.getItem(ze),n=e?JSON.parse(e):[],r=[t,...(Array.isArray(n)?n.filter(e=>typeof e==`string`&&e.trim().length>0):[]).filter(e=>e!==t)].slice(0,10);localStorage.setItem(ze,JSON.stringify(r))}catch{}}function Ge(e){return f(`w-full rounded-md border border-edge bg-surface-base px-3 py-2 text-sm text-fg placeholder:text-fg-disabled`,x,e&&`cursor-not-allowed opacity-60`)}function B(){return f(g,l)}var Ke=f(g,`w-full text-xs sm:w-auto sm:min-w-[11rem] sm:max-w-[17rem] sm:shrink-0`),V=f(g,`w-auto min-w-[9rem] max-w-[14rem] shrink-0 text-xs`);function qe({open:e,onDismiss:t,detailJob:n,detailLoading:r,detailHistory:o,c,chatWorkingDirNotSet:l,statusLabels:u}){return(0,z.jsx)(p,{open:e,onOpenChange:e=>{e||t()},children:(0,z.jsxs)(ie,{children:[(0,z.jsx)(a,{className:`xopc-dialog-overlay fixed inset-0 z-[60] bg-scrim`}),(0,z.jsxs)(_,{className:f(`xopc-drawer-right fixed right-0 top-0 z-[60] flex h-full w-full max-w-lg flex-col border-l border-edge bg-surface-panel shadow-popover outline-none`,`dark:border-edge`),"aria-describedby":void 0,children:[(0,z.jsxs)(`div`,{className:`flex shrink-0 items-center justify-between gap-2 border-b border-edge px-4 py-3`,children:[(0,z.jsx)(m,{className:`min-w-0 truncate text-base font-semibold text-fg`,children:n?.name?.trim()||n?.id||`—`}),(0,z.jsx)(s,{asChild:!0,children:(0,z.jsx)(j,{type:`button`,variant:`ghost`,className:`h-9 w-9 shrink-0 p-0`,"aria-label":c.close,children:(0,z.jsx)(y,{className:`size-5`,strokeWidth:1.75})})})]}),(0,z.jsx)(`div`,{className:`min-h-0 flex-1 overflow-y-auto px-4 py-3`,children:r?(0,z.jsx)(`div`,{className:`flex justify-center py-16`,children:(0,z.jsx)(i,{className:`size-8 animate-spin text-accent`,strokeWidth:1.75})}):n?(0,z.jsxs)(z.Fragment,{children:[(0,z.jsxs)(`dl`,{className:`space-y-3 text-sm`,children:[(0,z.jsxs)(`div`,{children:[(0,z.jsx)(`dt`,{className:`text-xs font-medium text-fg-muted`,children:c.scheduleLabel}),(0,z.jsx)(`dd`,{className:`mt-1 font-mono text-fg`,children:(0,z.jsx)(`code`,{children:n.schedule})})]}),(0,z.jsxs)(`div`,{children:[(0,z.jsx)(`dt`,{className:`text-xs font-medium text-fg-muted`,children:c.messageLabel}),(0,z.jsx)(`dd`,{className:`mt-1 min-w-0 break-words text-fg`,children:(0,z.jsx)(C,{content:Ee(n),compact:!0,className:`text-sm`})})]}),(0,z.jsxs)(`div`,{children:[(0,z.jsx)(`dt`,{className:`text-xs font-medium text-fg-muted`,children:c.mode}),(0,z.jsx)(`dd`,{className:`mt-1 text-fg`,children:n.sessionTarget===`isolated`?c.modeAgentOption:c.modeDirectOption})]}),n.sessionTarget===`isolated`?(0,z.jsxs)(`div`,{children:[(0,z.jsx)(`dt`,{className:`text-xs font-medium text-fg-muted`,children:c.agentProfile}),(0,z.jsx)(`dd`,{className:`mt-1 font-mono text-sm text-fg`,children:n.agentId?.trim()?n.agentId.trim():c.agentProfileDefault})]}):null,n.sessionTarget===`isolated`?(0,z.jsxs)(`div`,{children:[(0,z.jsx)(`dt`,{className:`text-xs font-medium text-fg-muted`,children:c.workingDirectoryLabel}),(0,z.jsx)(`dd`,{className:`mt-1 break-all font-mono text-xs text-fg`,children:n.workingDirectory?.trim()?n.workingDirectory.trim():l})]}):null,n.delivery?.channel===`local`||n.sessionTarget===`isolated`&&!n.delivery?.to?(0,z.jsxs)(`div`,{children:[(0,z.jsx)(`dt`,{className:`text-xs font-medium text-fg-muted`,children:c.deliveryTarget}),(0,z.jsx)(`dd`,{className:`mt-1 text-fg`,children:n.delivery?.channel===`local`?c.deliveryTargetLocalChannel:c.deliveryLocalOnly})]}):n.delivery?.to?(0,z.jsxs)(`div`,{children:[(0,z.jsx)(`dt`,{className:`text-xs font-medium text-fg-muted`,children:c.deliveryTarget}),(0,z.jsxs)(`dd`,{className:`mt-1 break-words text-fg`,children:[(0,z.jsx)(`code`,{className:`text-xs`,children:n.delivery?.channel??``}),` → `,pe(n,c.channelLocal)]})]}):null,(0,z.jsxs)(`div`,{children:[(0,z.jsx)(`dt`,{className:`text-xs font-medium text-fg-muted`,children:c.status}),(0,z.jsx)(`dd`,{className:`mt-1 text-fg`,children:n.enabled?c.enabled:c.disabled})]}),(0,z.jsxs)(`div`,{children:[(0,z.jsx)(`dt`,{className:`text-xs font-medium text-fg-muted`,children:c.nextRun}),(0,z.jsx)(`dd`,{className:`mt-1 text-fg`,children:n.next_run?Me(n.next_run,c.timeLabels):`—`})]})]}),(0,z.jsx)(`h3`,{className:`mt-6 text-sm font-semibold text-fg`,children:c.detailRunHistory}),o.length===0?(0,z.jsx)(`p`,{className:`mt-2 text-sm text-fg-muted`,children:c.noRunsYet}):(0,z.jsx)(`div`,{className:`mt-2 overflow-x-auto`,children:(0,z.jsxs)(`table`,{className:`w-full border-collapse text-left text-xs`,children:[(0,z.jsx)(`thead`,{children:(0,z.jsxs)(`tr`,{className:`border-b border-edge text-fg-muted`,children:[(0,z.jsx)(`th`,{className:`py-1.5 pr-2 font-medium`,children:c.colStarted}),(0,z.jsx)(`th`,{className:`py-1.5 pr-2 font-medium`,children:c.status}),(0,z.jsx)(`th`,{className:`py-1.5 pr-2 font-medium`,children:c.colDuration}),(0,z.jsx)(`th`,{className:`py-1.5 pr-2 font-medium`,children:c.colDetail}),(0,z.jsx)(`th`,{className:`py-1.5 font-medium`,children:c.colChat})]})}),(0,z.jsx)(`tbody`,{children:o.map(e=>(0,z.jsxs)(`tr`,{className:`border-b border-edge/60`,children:[(0,z.jsx)(`td`,{className:`whitespace-nowrap py-1.5 pr-2 text-fg`,children:(0,z.jsx)(`time`,{dateTime:e.startedAt,children:fe(e.startedAt)})}),(0,z.jsx)(`td`,{className:`py-1.5 pr-2`,children:(0,z.jsx)(`span`,{className:f(`inline-flex rounded px-1.5 py-0.5 font-medium`,e.status===`success`&&`bg-emerald-500/15 text-emerald-800 dark:text-emerald-300`,e.status===`failed`&&`bg-red-500/15 text-red-800 dark:text-red-300`),children:ve(e.status,u)})}),(0,z.jsx)(`td`,{className:`py-1.5 pr-2 text-fg-muted`,children:F(e.duration)}),(0,z.jsx)(`td`,{className:`max-w-[8rem] truncate py-1.5 pr-2 text-fg-muted`,title:e.summary||e.error||``,children:N(e.summary||e.error,120)}),(0,z.jsx)(`td`,{className:`whitespace-nowrap py-1.5`,children:e.sessionKey?.trim()?(0,z.jsx)(`button`,{type:`button`,className:`text-xs font-medium text-accent hover:underline`,title:c.openChatTitle,"aria-label":c.openChatTitle,onClick:()=>Ue(e.sessionKey),children:c.openChat}):(0,z.jsx)(`span`,{className:`text-fg-disabled`,children:`—`})})]},e.id))})]})})]}):null})]})]})})}var H=Ae(),U=f(g,`min-w-0 shrink text-xs sm:min-w-[7rem] sm:max-w-[11rem]`),W=f(`h-9 min-w-[6.5rem] shrink-0 rounded-lg border border-edge-subtle bg-surface-panel px-2 py-1.5 text-sm text-fg`,x,`dark:bg-surface-panel`),G=f(`h-9 min-w-[9.5rem] shrink-0 rounded-lg border border-edge-subtle bg-surface-panel px-2 py-1.5 text-sm text-fg`,x),Je=f(`h-9 w-14 shrink-0 rounded-lg border border-edge-subtle bg-surface-panel px-2 py-1.5 text-center text-sm tabular-nums text-fg`,x),K=f(`min-h-[2.5rem] w-full rounded-lg border border-edge-subtle bg-surface-base px-3 py-2 font-mono text-xs text-fg`,x);function Ye(){let e=new Date;return`${e.getFullYear()}-${String(e.getMonth()+1).padStart(2,`0`)}-${String(e.getDate()).padStart(2,`0`)}`}function q(e){return Array.isArray(e)?e.filter(e=>typeof e==`number`).sort((e,t)=>e-t):[]}function Xe(e){if(e.length<2)return null;let t=e[1]-e[0];if(t<=0)return null;for(let n=2;n<e.length;n++)if(e[n]-e[n-1]!==t)return null;return t}function Ze(e){let t=[];for(let n=0;n<7;n++)e[n]&&t.push(n===6?0:n+1);return t.length===0?`1`:t.sort((e,t)=>e-t).join(`,`)}function J(e){let t=[!1,!1,!1,!1,!1,!1,!1];for(let n of e){let e=n===0||n===7?6:n-1;e>=0&&e<=6&&(t[e]=!0)}return t}function Y(e){let t=e.trim(),n={mode:`custom`,intervalKind:`minutes`,onceDate:Ye(),intervalMinutes:5,intervalHours:2,minute:0,hour:9,weekDays:[!0,!0,!0,!0,!0,!1,!1],dayOfMonth:1,rawCron:t};if(!t)return{...n,mode:`interval`,rawCron:`*/5 * * * *`};try{let e=H.CronExpressionParser.parse(t).fields,r=q(e.minute.values),i=q(e.hour.values),a=q(e.dayOfMonth.values),o=q(e.month.values),s=q(e.dayOfWeek.values);if(r.length===60&&e.hour.isWildcard&&e.dayOfMonth.isWildcard&&e.month.isWildcard&&e.dayOfWeek.isWildcard)return{...n,mode:`interval`,intervalKind:`minutes`,intervalMinutes:1,rawCron:t};if(!e.minute.isWildcard&&e.hour.isWildcard&&e.dayOfMonth.isWildcard&&e.month.isWildcard&&e.dayOfWeek.isWildcard&&r.length>1){let e=Xe(r);if(e!=null&&e>0)return{...n,mode:`interval`,intervalKind:`minutes`,intervalMinutes:e,rawCron:t}}if(!e.minute.isWildcard&&r.length===1&&!e.hour.isWildcard&&i.length>1&&e.dayOfMonth.isWildcard&&e.month.isWildcard&&e.dayOfWeek.isWildcard){let e=Xe(i);if(e!=null&&e>0)return{...n,mode:`interval`,intervalKind:`hours`,intervalHours:e,minute:r[0],rawCron:t}}if(!e.minute.isWildcard&&r.length===1&&e.hour.isWildcard&&e.dayOfMonth.isWildcard&&e.month.isWildcard&&e.dayOfWeek.isWildcard&&i.length===24)return{...n,mode:`hourly`,minute:r[0],rawCron:t};if(r.length===1&&i.length===1&&a.length===1&&o.length===1&&!e.dayOfMonth.isWildcard&&!e.month.isWildcard&&e.dayOfWeek.isWildcard){let e=new Date().getFullYear(),s=o[0],c=a[0],l=`${e}-${String(s).padStart(2,`0`)}-${String(c).padStart(2,`0`)}`;return{...n,mode:`no_repeat`,minute:r[0],hour:i[0],onceDate:l,rawCron:t}}if(r.length===1&&i.length===1&&e.dayOfMonth.isWildcard&&e.month.isWildcard&&e.dayOfWeek.isWildcard)return{...n,mode:`daily`,minute:r[0],hour:i[0],rawCron:t};if(r.length===1&&i.length===1&&e.dayOfMonth.isWildcard&&e.month.isWildcard&&!e.dayOfWeek.isWildcard&&s.length>0)return{...n,mode:`weekly`,minute:r[0],hour:i[0],weekDays:J(s),rawCron:t};if(r.length===1&&i.length===1&&!e.dayOfMonth.isWildcard&&a.length===1&&e.month.isWildcard&&e.dayOfWeek.isWildcard)return{...n,mode:`monthly`,minute:r[0],hour:i[0],dayOfMonth:a[0],rawCron:t}}catch{}return n}function Qe(e){let t=(e,t,n)=>Math.min(n,Math.max(t,e));switch(e.mode){case`custom`:return e.rawCron.trim()||`*/5 * * * *`;case`no_repeat`:{let n=e.onceDate.split(`-`);if(n.length===3){let r=t(parseInt(n[2],10),1,31),i=t(parseInt(n[1],10),1,12);return`${t(e.minute,0,59)} ${t(e.hour,0,23)} ${r} ${i} *`}return`0 9 1 1 *`}case`interval`:if(e.intervalKind===`hours`){let n=t(Math.round(e.intervalHours)||1,1,23);return`${t(e.minute,0,59)} */${n} * * *`}return`*/${t(Math.round(e.intervalMinutes)||5,1,59)} * * * *`;case`hourly`:return`${t(e.minute,0,59)} * * * *`;case`daily`:return`${t(e.minute,0,59)} ${t(e.hour,0,23)} * * *`;case`weekly`:return`${t(e.minute,0,59)} ${t(e.hour,0,23)} * * ${Ze(e.weekDays)}`;case`monthly`:return`${t(e.minute,0,59)} ${t(e.hour,0,23)} ${t(Math.round(e.dayOfMonth)||1,1,31)} * *`;default:return`*/5 * * * *`}}function X({value:e,onChange:t,labels:n,disabled:r}){let i=(0,R.useMemo)(()=>Y(e),[e]),[a,o]=(0,R.useState)(i.mode),[s,c]=(0,R.useState)(i.intervalKind),[l,u]=(0,R.useState)(i.onceDate),[d,p]=(0,R.useState)(i.intervalMinutes),[m,h]=(0,R.useState)(i.intervalHours),[g,_]=(0,R.useState)(i.minute),[v,y]=(0,R.useState)(i.hour),[b,x]=(0,R.useState)(i.weekDays),[S,C]=(0,R.useState)(i.dayOfMonth),[w,T]=(0,R.useState)(i.rawCron),[E,ee]=(0,R.useState)(null),[te,D]=(0,R.useState)(null);(0,R.useEffect)(()=>{let t=Y(e);o(t.mode),c(t.intervalKind),u(t.onceDate),p(t.intervalMinutes),h(t.intervalHours),_(t.minute),y(t.hour),x(t.weekDays),C(t.dayOfMonth),T(t.rawCron),ee(null),D(null)},[e]);let O=(0,R.useCallback)(e=>{t(Qe({mode:a,intervalKind:s,onceDate:l,intervalMinutes:d,intervalHours:m,minute:g,hour:v,weekDays:b,dayOfMonth:S,rawCron:w,...e}))},[a,s,l,d,m,g,v,b,S,w,t]),k=`${String(v).padStart(2,`0`)}:${String(g).padStart(2,`0`)}`,A=e=>{let t=e.target.value;if(!t)return;let[n,r]=t.split(`:`).map(e=>parseInt(e,10));Number.isNaN(n)||Number.isNaN(r)||O({minute:r,hour:n})},ne=(0,z.jsxs)(`div`,{className:`flex min-w-0 flex-nowrap items-center gap-2 overflow-x-auto pb-0.5`,children:[(0,z.jsxs)(`select`,{className:U,disabled:r,value:a,onChange:e=>{let t=e.target.value;o(t),O({mode:t})},"aria-label":n.scheduleTimeLabel,children:[(0,z.jsx)(`option`,{value:`no_repeat`,children:n.modeNoRepeat}),(0,z.jsx)(`option`,{value:`interval`,children:n.modeInterval}),(0,z.jsx)(`option`,{value:`hourly`,children:n.modeHourly}),(0,z.jsx)(`option`,{value:`daily`,children:n.modeDaily}),(0,z.jsx)(`option`,{value:`weekly`,children:n.modeWeekly}),(0,z.jsx)(`option`,{value:`monthly`,children:n.modeMonthly}),(0,z.jsx)(`option`,{value:`custom`,children:n.modeCustom})]}),a===`no_repeat`&&(0,z.jsxs)(z.Fragment,{children:[(0,z.jsx)(`input`,{type:`date`,disabled:r,className:G,value:l,onChange:e=>{let t=e.target.value;u(t),O({onceDate:t})},"aria-label":n.modeNoRepeat}),(0,z.jsx)(`input`,{type:`time`,step:60,disabled:r,className:W,value:k,onChange:A,"aria-label":n.scheduleTimeLabel})]}),a===`interval`&&(0,z.jsxs)(z.Fragment,{children:[(0,z.jsxs)(`select`,{className:f(U,`w-auto min-w-[5rem]`),disabled:r,value:s,onChange:e=>{let t=e.target.value;c(t),ee(null),D(null),O({intervalKind:t})},"aria-label":n.modeInterval,children:[(0,z.jsx)(`option`,{value:`minutes`,children:n.intervalKindMinutes}),(0,z.jsx)(`option`,{value:`hours`,children:n.intervalKindHours})]}),s===`minutes`?(0,z.jsxs)(z.Fragment,{children:[(0,z.jsx)(`input`,{type:`number`,min:1,max:59,disabled:r,className:Je,value:E??String(d),onChange:e=>{let t=e.target.value;ee(t);let n=parseInt(t,10);Number.isFinite(n)&&n>=1&&n<=59&&(p(n),O({intervalMinutes:n}))},onBlur:()=>{if(E===null)return;let e=parseInt(E,10),t=!Number.isFinite(e)||e<1?5:Math.min(59,Math.max(1,Math.round(e)));p(t),O({intervalMinutes:t}),ee(null)},"aria-label":n.intervalMinutes}),(0,z.jsx)(`span`,{className:`shrink-0 text-sm text-fg-muted`,children:n.minuteUnit})]}):(0,z.jsxs)(z.Fragment,{children:[(0,z.jsx)(`input`,{type:`number`,min:1,max:23,disabled:r,className:Je,value:te??String(m),onChange:e=>{let t=e.target.value;D(t);let n=parseInt(t,10);Number.isFinite(n)&&n>=1&&n<=23&&(h(n),O({intervalHours:n}))},onBlur:()=>{if(te===null)return;let e=parseInt(te,10),t=!Number.isFinite(e)||e<1?2:Math.min(23,Math.max(1,Math.round(e)));h(t),O({intervalHours:t}),D(null)},"aria-label":n.intervalHours}),(0,z.jsx)(`span`,{className:`shrink-0 text-sm text-fg-muted`,children:n.hourUnit}),(0,z.jsx)(`select`,{className:f(U,`w-auto min-w-[4rem]`),disabled:r,value:g,onChange:e=>{let t=parseInt(e.target.value,10);_(t),O({minute:t})},"aria-label":n.minuteAtHour,children:Array.from({length:60},(e,t)=>(0,z.jsx)(`option`,{value:t,children:String(t).padStart(2,`0`)},t))}),(0,z.jsx)(`span`,{className:`shrink-0 text-sm text-fg-muted`,children:n.minuteUnit})]})]}),a===`daily`&&(0,z.jsx)(`input`,{type:`time`,step:60,disabled:r,className:W,value:k,onChange:A,"aria-label":n.scheduleTimeLabel}),a===`weekly`&&(0,z.jsx)(`input`,{type:`time`,step:60,disabled:r,className:W,value:k,onChange:A,"aria-label":n.scheduleTimeLabel}),a===`monthly`&&(0,z.jsxs)(z.Fragment,{children:[(0,z.jsx)(`select`,{className:f(U,`w-auto min-w-[4.5rem]`),disabled:r,value:S,onChange:e=>{let t=parseInt(e.target.value,10);C(t),O({dayOfMonth:t})},"aria-label":n.dayOfMonth,children:Array.from({length:31},(e,t)=>t+1).map(e=>(0,z.jsx)(`option`,{value:e,children:e},e))}),(0,z.jsx)(`input`,{type:`time`,step:60,disabled:r,className:W,value:k,onChange:A,"aria-label":n.scheduleTimeLabel})]}),a===`hourly`&&(0,z.jsxs)(z.Fragment,{children:[(0,z.jsx)(`select`,{className:f(U,`w-auto min-w-[4rem]`),disabled:r,value:g,onChange:e=>{let t=parseInt(e.target.value,10);_(t),O({minute:t})},"aria-label":n.minuteAtHour,children:Array.from({length:60},(e,t)=>(0,z.jsx)(`option`,{value:t,children:String(t).padStart(2,`0`)},t))}),(0,z.jsx)(`span`,{className:`shrink-0 text-sm text-fg-muted`,children:n.minuteUnit})]})]}),re=a===`weekly`?(0,z.jsx)(`div`,{className:`flex flex-wrap gap-1.5 pt-1`,role:`group`,"aria-label":n.modeWeekly,children:n.weekdays.map((e,t)=>{let n=b[t];return(0,z.jsx)(`button`,{type:`button`,disabled:r,className:f(`flex size-9 select-none items-center justify-center rounded-full border text-xs font-medium transition-colors`,n?`border-fg bg-fg text-surface-panel`:`border-edge-subtle bg-surface-panel text-fg hover:border-edge`),"aria-pressed":n,onClick:()=>{let e=[...b];e[t]=!e[t],x(e),O({weekDays:e})},children:e},e)})}):null,j=a===`custom`?(0,z.jsxs)(`div`,{className:`pt-1`,children:[(0,z.jsx)(`textarea`,{disabled:r,className:K,rows:2,spellCheck:!1,value:w,placeholder:`*/5 * * * *`,onChange:e=>{let n=e.target.value;T(n),t(n.trim()||`*/5 * * * *`)},"aria-label":n.modeCustom}),(0,z.jsx)(`p`,{className:`mt-1 text-xs text-fg-muted`,children:n.customCronHint})]}):null;return(0,z.jsxs)(`div`,{className:`flex flex-col gap-2`,children:[(0,z.jsx)(`span`,{className:`text-xs font-medium text-fg-muted`,children:n.scheduleTimeLabel}),ne,re,j]})}function $e(e){let{open:t,onRequestClose:n,c:r,chatM:i,agentsMessages:o,isDark:c,channels:l,sessionChatIds:u,cronAgentSelectOptions:d,hasElectronFolderPicker:h,openNativeFolderPicker:g,applyWorkingDirectory:v,wdModalOpen:b,onWdModalOpenChange:x,defaultModelResolver:S,formMode:te,formJobId:O,formName:k,onFormNameChange:ne,formSchedule:ae,onFormScheduleChange:oe,formSubmitting:M,formSessionTarget:ue,onFormSessionTargetChange:de,formAgentLocalOnly:N,onFormAgentLocalOnlyChange:fe,formModel:pe,onFormModelUserChange:me,formAgentId:ge,onFormAgentIdChange:_e,formWorkingDirectory:P,onFormWorkingDirectoryChange:ve,formChannel:ye,onFormChannelChange:be,formChatId:xe,onFormChatIdChange:Se,formMessage:Ce,onFormMessageChange:we,formMessageMdMode:Te,onSetMessageMdMode:Ee,messageEditorNonce:De,needsDeliveryChat:Oe,showChannelPicker:ke,canSubmit:F,onSubmit:Ae,onRefreshRecipients:je}=e;return(0,z.jsxs)(z.Fragment,{children:[(0,z.jsx)(p,{open:t,onOpenChange:e=>!e&&n(),children:(0,z.jsxs)(ie,{children:[(0,z.jsx)(a,{className:`xopc-dialog-overlay fixed inset-0 z-[60] bg-scrim`}),(0,z.jsx)(`div`,{className:`fixed inset-0 z-[60] flex items-center justify-center p-4 pointer-events-none`,children:(0,z.jsxs)(_,{className:`xopc-dialog-content-pane pointer-events-auto relative flex max-h-[min(90vh,800px)] w-full max-w-md flex-col rounded-xl border border-edge bg-surface-panel shadow-popover outline-none sm:max-w-lg lg:max-w-xl dark:border-edge`,onOpenAutoFocus:e=>e.preventDefault(),children:[(0,z.jsxs)(`div`,{className:`flex shrink-0 items-center justify-between gap-2 border-b border-edge px-4 py-3`,children:[(0,z.jsx)(m,{className:`text-base font-semibold text-fg`,children:te===`edit`?r.editJob:r.addJob}),(0,z.jsx)(s,{asChild:!0,children:(0,z.jsx)(j,{type:`button`,variant:`ghost`,className:`h-9 w-9 shrink-0 p-0`,"aria-label":r.close,children:(0,z.jsx)(y,{className:`size-5`,strokeWidth:1.75})})})]}),(0,z.jsx)(`div`,{className:`min-h-0 flex-1 overflow-y-auto px-4 py-3`,children:(0,z.jsxs)(`div`,{className:`flex flex-col gap-3`,children:[(0,z.jsxs)(`label`,{className:`flex flex-col gap-1`,children:[(0,z.jsx)(`span`,{className:`text-xs font-medium text-fg-muted`,children:r.name}),(0,z.jsx)(`input`,{type:`text`,className:Ge(),value:k,onChange:e=>ne(e.target.value),placeholder:r.namePlaceholder})]}),(0,z.jsx)(X,{value:ae,onChange:oe,disabled:M,labels:r.schedulePicker}),(0,z.jsxs)(`label`,{className:`flex flex-col gap-1`,children:[(0,z.jsx)(`span`,{className:`text-xs font-medium text-fg-muted`,children:r.mode}),(0,z.jsxs)(`select`,{className:B(),value:ue,onChange:e=>{let t=e.target.value;de(t,S,pe.trim())},children:[(0,z.jsx)(`option`,{value:`main`,children:r.modeDirectOption}),(0,z.jsx)(`option`,{value:`isolated`,children:r.modeAgentOption})]}),(0,z.jsx)(`p`,{className:`text-xs text-fg-muted`,children:ue===`main`?r.modeDirect:r.modeAgent})]}),ue===`isolated`?(0,z.jsxs)(z.Fragment,{children:[(0,z.jsxs)(`div`,{className:`flex flex-col gap-1`,children:[(0,z.jsx)(`span`,{className:`text-xs font-medium text-fg-muted`,children:r.model}),(0,z.jsx)(D,{value:pe,placeholder:i.modelPlaceholder,searchPlaceholder:i.modelSearchPlaceholder,noMatches:i.modelNoMatches,className:`w-full max-w-none min-w-0`,popoverContentClassName:`z-[70]`,onChange:me})]}),(0,z.jsxs)(`label`,{className:`flex flex-col gap-1`,children:[(0,z.jsx)(`span`,{className:`text-xs font-medium text-fg-muted`,children:r.agentProfile}),(0,z.jsxs)(`select`,{className:B(),value:ge,disabled:M,onChange:e=>_e(e.target.value),children:[(0,z.jsx)(`option`,{value:``,children:r.agentProfileDefault}),d.map(e=>(0,z.jsx)(`option`,{value:e.id,children:`${e.id} — ${le(e,o)}`},e.id))]}),(0,z.jsx)(`p`,{className:`text-xs text-fg-muted`,children:r.agentProfileHint})]}),(0,z.jsxs)(`div`,{className:`flex flex-col gap-1`,children:[(0,z.jsx)(`span`,{className:`text-xs font-medium text-fg-muted`,children:r.workingDirectoryLabel}),(0,z.jsxs)(`div`,{className:`flex flex-wrap items-center gap-2`,children:[(0,z.jsxs)(`button`,{type:`button`,disabled:M,className:f(`inline-flex min-h-8 max-w-[min(16rem,48vw)] min-w-0 shrink-0 items-center gap-1 rounded-lg px-2 py-1 text-xs`,`border border-edge-subtle/80 bg-surface-hover/40 dark:border-edge-subtle`,T.transition,T.focusRingPanel,`cursor-pointer hover:bg-surface-hover/70 dark:hover:bg-surface-hover/50`,M&&`cursor-not-allowed opacity-60`),title:P.trim()?`${P.trim()}\n${i.workingDirectory.chooseFolder}`:`${r.workingDirectoryHint}\n${i.workingDirectory.selectWorkingDirectory}`,onClick:e=>{e.stopPropagation(),!M&&(h?(async()=>{let e=await g();e&&v(e)})():x(!0))},children:[(0,z.jsx)(se,{className:`size-3.5 shrink-0 text-fg-muted`,"aria-hidden":!0}),(0,z.jsx)(`span`,{className:`min-w-0 truncate text-left font-medium text-fg`,children:P.trim()?ce(P.trim()):i.workingDirectory.notSet})]}),P.trim()?(0,z.jsx)(`button`,{type:`button`,disabled:M,className:`text-xs font-medium text-accent hover:underline disabled:opacity-50`,onClick:()=>ve(``),children:r.workingDirectoryReset}):null]}),(0,z.jsx)(`p`,{className:`text-xs text-fg-muted`,children:r.workingDirectoryHint})]}),(0,z.jsxs)(`label`,{className:`flex cursor-pointer items-start gap-2 rounded-md bg-surface-hover/45 px-3 py-2 dark:bg-surface-hover/30`,children:[(0,z.jsx)(`input`,{type:`checkbox`,className:f(`ui-checkbox`,`mt-0.5`),checked:N,onChange:e=>fe(e.target.checked)}),(0,z.jsxs)(`span`,{children:[(0,z.jsx)(`span`,{className:`text-sm font-medium text-fg`,children:r.agentLocalOnly}),(0,z.jsx)(`p`,{className:`mt-1 text-xs text-fg-muted`,children:r.agentLocalOnlyHint})]})]})]}):null,ke?(0,z.jsxs)(z.Fragment,{children:[(0,z.jsxs)(`label`,{className:`flex flex-col gap-1`,children:[(0,z.jsx)(`span`,{className:`text-xs font-medium text-fg-muted`,children:r.channel}),(0,z.jsxs)(`select`,{className:B(),value:ye,onChange:e=>{let t=e.target.value;be(t)},children:[(0,z.jsx)(`option`,{value:`local`,children:r.channelLocal}),l.map(e=>(0,z.jsxs)(`option`,{value:e.name,disabled:!e.enabled,children:[e.name,` `,e.enabled?``:`(disabled)`]},e.name))]})]}),Oe?(0,z.jsxs)(`div`,{className:`flex flex-col gap-1`,children:[(0,z.jsxs)(`div`,{className:`flex items-center justify-between gap-2`,children:[(0,z.jsx)(`span`,{className:`text-xs font-medium text-fg-muted`,children:r.recipient}),(0,z.jsxs)(j,{type:`button`,variant:`ghost`,className:`h-7 gap-1 px-2 text-xs`,title:r.refreshRecipientHint,onClick:()=>void je(),children:[(0,z.jsx)(A,{className:`size-3.5`,strokeWidth:1.75}),r.refreshList]})]}),(0,z.jsxs)(`div`,{className:`flex flex-col gap-2 sm:flex-row sm:items-stretch sm:gap-2`,children:[(0,z.jsx)(`input`,{type:`text`,className:f(Ge(),`min-w-0 w-full sm:flex-1`),value:xe,onChange:e=>Se(e.target.value),placeholder:r.recipientPlaceholder}),(0,z.jsxs)(`select`,{className:Ke,value:xe,onChange:e=>{let t=e.target.value;t&&Se(t)},children:[(0,z.jsx)(`option`,{value:``,children:r.selectRecipient}),u.length>0?u.map(e=>(0,z.jsx)(`option`,{value:e.chatId,children:he(e,r.lastActiveLabels)},`${e.channel}-${e.chatId}`)):(0,z.jsx)(`option`,{value:``,disabled:!0,children:r.noRecentChatsOption})]})]}),(0,z.jsx)(`p`,{className:`text-xs text-fg-muted`,children:u.length>0?r.enterManuallyOrSelect:r.noRecentChats})]}):null]}):null,(0,z.jsxs)(`div`,{className:`flex flex-col gap-1`,children:[(0,z.jsxs)(`div`,{className:`flex flex-wrap items-center justify-between gap-2`,children:[(0,z.jsx)(`span`,{className:`text-xs font-medium text-fg-muted`,children:r.message}),(0,z.jsxs)(`div`,{className:`inline-flex rounded-lg border border-edge bg-surface-base p-0.5 dark:border-edge`,children:[(0,z.jsxs)(`button`,{type:`button`,className:f(`inline-flex items-center gap-1.5 rounded-md px-2.5 py-1.5 text-xs font-medium`,Te===`edit`?`bg-accent-soft text-accent-fg`:`text-fg-muted hover:bg-surface-hover`),onClick:()=>Ee(`edit`),children:[(0,z.jsx)(ee,{className:`size-3.5 shrink-0`,strokeWidth:1.75,"aria-hidden":!0}),r.messageEdit]}),(0,z.jsxs)(`button`,{type:`button`,className:f(`inline-flex items-center gap-1.5 rounded-md px-2.5 py-1.5 text-xs font-medium`,Te===`preview`?`bg-accent-soft text-accent-fg`:`text-fg-muted hover:bg-surface-hover`),onClick:()=>Ee(`preview`),children:[(0,z.jsx)(w,{className:`size-3.5 shrink-0`,strokeWidth:1.75,"aria-hidden":!0}),r.messagePreview]})]})]}),(0,z.jsx)(`div`,{className:f(`overflow-hidden rounded-md border border-edge bg-surface-base dark:border-edge`,M&&`pointer-events-none opacity-60`),children:Te===`edit`?(0,z.jsx)(E,{initialContent:Ce,onChange:we,isDark:c,className:`h-[min(18rem,40vh)] min-h-[12rem]`},`cron-msg-${O??`new`}-${De}`):(0,z.jsx)(`div`,{className:`h-[min(18rem,40vh)] min-h-[12rem] max-h-[min(24rem,50vh)] overflow-y-auto px-3 py-2`,children:Ce.trim()?(0,z.jsx)(C,{content:Ce,compact:!0,className:`text-sm`}):(0,z.jsx)(`p`,{className:`text-sm text-fg-muted`,children:r.messagePlaceholder})})}),(0,z.jsx)(`p`,{className:`text-xs text-fg-muted`,children:r.messageMarkdownHint})]})]})}),(0,z.jsxs)(`div`,{className:`flex shrink-0 justify-end gap-2 border-t border-edge px-4 py-3`,children:[(0,z.jsx)(j,{type:`button`,variant:`secondary`,onClick:n,children:r.cancel}),(0,z.jsx)(j,{type:`button`,variant:`primary`,disabled:M||!F,onClick:Ae,children:M?r.loading:te===`edit`?r.save:r.create})]})]})})]})}),h?null:(0,z.jsx)(re,{open:b,onOpenChange:x,initialAbsolutePath:P.trim()||void 0,onConfirm:async e=>{await v(e),x(!1)},wd:i.workingDirectory})]})}function et({c:e,mainTab:t,onMainTabChange:n,jobSort:r,onJobSortChange:i,historyRange:a,onHistoryRangeChange:o,historyJobFilter:s,onHistoryJobFilterChange:c,historyStatusFilter:l,onHistoryStatusFilterChange:d,jobs:p}){return(0,z.jsxs)(`div`,{className:`flex flex-col gap-3 border-b border-edge-subtle pb-3 sm:flex-row sm:items-center sm:justify-between dark:border-edge-subtle`,children:[(0,z.jsxs)(`div`,{className:`flex gap-1`,role:`tablist`,"aria-label":e.title,children:[(0,z.jsx)(`button`,{type:`button`,role:`tab`,"aria-selected":t===`myTasks`,className:f(`rounded-md px-3 py-2 text-sm font-medium transition-colors`,t===`myTasks`?`text-fg`:`text-fg-muted hover:text-fg`),onClick:()=>n(`myTasks`),children:e.tabMyTasks}),(0,z.jsx)(`button`,{type:`button`,role:`tab`,"aria-selected":t===`systemTasks`,className:f(`rounded-md px-3 py-2 text-sm font-medium transition-colors`,t===`systemTasks`?`text-fg`:`text-fg-muted hover:text-fg`),onClick:()=>n(`systemTasks`),children:e.tabSystemTasks}),(0,z.jsx)(`button`,{type:`button`,role:`tab`,"aria-selected":t===`history`,className:f(`rounded-md px-3 py-2 text-sm font-medium transition-colors`,t===`history`?`text-fg`:`text-fg-muted hover:text-fg`),onClick:()=>n(`history`),children:e.tabRunHistory})]}),(0,z.jsxs)(`div`,{className:f(`flex min-w-0 items-center gap-2`,t===`history`?`flex-nowrap overflow-x-auto pb-0.5 sm:justify-end`:`flex-wrap sm:justify-end`),children:[t===`myTasks`||t===`systemTasks`?(0,z.jsxs)(`select`,{className:V,value:r,onChange:e=>i(e.target.value),"aria-label":e.sortCreatedDesc,children:[(0,z.jsx)(`option`,{value:`created_desc`,children:e.sortCreatedDesc}),(0,z.jsx)(`option`,{value:`created_asc`,children:e.sortCreatedAsc})]}):null,t===`history`?(0,z.jsxs)(z.Fragment,{children:[(0,z.jsx)(`div`,{className:f(u,`shrink-0`),role:`group`,"aria-label":e.runHistoryTitle,children:[`day`,`week`,`month`].map(t=>(0,z.jsx)(`button`,{type:`button`,className:f(S,`px-2.5 py-1`,a===t&&`bg-surface-panel shadow-sm dark:bg-surface-panel dark:shadow-sm dark:ring-1 dark:ring-edge-strong/40`,a===t&&`text-fg`),onClick:()=>o(t),children:t===`day`?e.historyRangeDay:t===`week`?e.historyRangeWeek:e.historyRangeMonth},t))}),(0,z.jsxs)(`select`,{className:V,value:s,onChange:e=>c(e.target.value),"aria-label":e.filterAllTasks,children:[(0,z.jsx)(`option`,{value:``,children:e.filterAllTasks}),p.map(e=>(0,z.jsx)(`option`,{value:e.id,children:e.name||e.id},e.id))]}),(0,z.jsxs)(`select`,{className:V,value:l,onChange:e=>d(e.target.value),"aria-label":e.filterAllStatuses,children:[(0,z.jsx)(`option`,{value:``,children:e.filterAllStatuses}),(0,z.jsx)(`option`,{value:`success`,children:e.execStatusSuccess}),(0,z.jsx)(`option`,{value:`failed`,children:e.execStatusFailed}),(0,z.jsx)(`option`,{value:`cancelled`,children:e.execStatusCancelled}),(0,z.jsx)(`option`,{value:`running`,children:e.execStatusRunning})]})]}):null]})]})}function tt({c:e,loading:t,runHistoryLoading:n,onRefresh:r,onOpenTemplatePicker:i,onAddJob:a}){let o=t||n;return(0,z.jsxs)(`div`,{className:`flex min-w-0 flex-1 flex-wrap items-center justify-end gap-2`,children:[(0,z.jsx)(j,{type:`button`,variant:`ghost`,className:`h-9 w-9 shrink-0 p-0`,disabled:o,title:e.refresh,"aria-label":e.refresh,onClick:()=>void r(),children:(0,z.jsx)(A,{className:f(`size-4`,o&&`animate-spin`),strokeWidth:1.75})}),(0,z.jsxs)(j,{type:`button`,variant:`secondary`,className:`gap-2`,onClick:i,children:[(0,z.jsx)(v,{className:`size-4`,strokeWidth:1.75}),e.fromTemplate]}),(0,z.jsxs)(j,{type:`button`,variant:`primary`,className:`gap-2`,onClick:a,children:[(0,z.jsx)(oe,{className:`size-4`,strokeWidth:1.75}),e.addJob]})]})}function nt({c:e,runHistoryLoading:t,runHistory:n,filteredRunHistory:r,jobs:a,onRefreshHistory:o,onOpenJobDetail:s,statusLabels:c}){return(0,z.jsxs)(`section`,{"aria-labelledby":`cron-history-panel`,className:`flex flex-col gap-3`,children:[(0,z.jsxs)(`div`,{className:`flex items-start justify-between gap-2`,children:[(0,z.jsxs)(`div`,{children:[(0,z.jsx)(`h2`,{id:`cron-history-panel`,className:`sr-only`,children:e.tabRunHistory}),(0,z.jsx)(`p`,{className:`text-xs text-fg-muted`,children:e.runHistoryHint})]}),(0,z.jsx)(j,{type:`button`,variant:`ghost`,className:`h-9 w-9 shrink-0 p-0`,disabled:t,title:e.refresh,"aria-label":e.refresh,onClick:()=>void o(),children:(0,z.jsx)(A,{className:f(`size-4`,t&&`animate-spin`),strokeWidth:1.75})})]}),t&&n.length===0?(0,z.jsx)(`div`,{className:`flex justify-center py-16`,children:(0,z.jsx)(i,{className:`size-8 animate-spin text-accent`,strokeWidth:1.75})}):r.length===0?(0,z.jsxs)(`div`,{className:`flex flex-col items-center rounded-2xl border border-dashed border-edge-subtle px-6 py-16 text-center dark:border-edge-subtle`,children:[(0,z.jsx)(M,{className:`mb-4 size-14 text-fg-disabled`,strokeWidth:1.1,"aria-hidden":!0}),(0,z.jsx)(`h3`,{className:`text-base font-semibold text-fg`,children:n.length===0?e.emptyHistoryTitle:e.noRunsYet}),(0,z.jsx)(`p`,{className:`mt-2 max-w-sm text-sm text-fg-muted`,children:n.length===0?e.emptyHistoryHint:e.runHistoryHint})]}):(0,z.jsx)(`div`,{className:`overflow-x-auto rounded-xl border border-edge-subtle bg-surface-base dark:border-edge-subtle`,children:(0,z.jsxs)(`table`,{className:`w-full min-w-[700px] border-collapse text-left text-sm`,children:[(0,z.jsx)(`thead`,{children:(0,z.jsxs)(`tr`,{className:`border-b border-edge text-xs font-medium text-fg-muted`,children:[(0,z.jsx)(`th`,{className:`px-3 py-2.5 font-medium`,children:e.colStarted}),(0,z.jsx)(`th`,{className:`px-3 py-2.5 font-medium`,children:e.colJob}),(0,z.jsx)(`th`,{className:`px-3 py-2.5 font-medium`,children:e.status}),(0,z.jsx)(`th`,{className:`px-3 py-2.5 font-medium`,children:e.colDuration}),(0,z.jsx)(`th`,{className:`px-3 py-2.5 font-medium`,children:e.colDetail}),(0,z.jsx)(`th`,{className:`px-3 py-2.5 font-medium`,children:e.colChat})]})}),(0,z.jsx)(`tbody`,{children:r.map(t=>(0,z.jsxs)(`tr`,{className:`border-b border-edge/60 last:border-0`,children:[(0,z.jsx)(`td`,{className:`whitespace-nowrap px-3 py-2.5 text-fg`,children:(0,z.jsx)(`time`,{dateTime:t.startedAt,children:fe(t.startedAt)})}),(0,z.jsx)(`td`,{className:`max-w-[10rem] truncate px-3 py-2.5`,children:a.some(e=>e.id===t.jobId)?(0,z.jsx)(`button`,{type:`button`,className:`text-left text-accent hover:underline`,onClick:()=>{let e=a.find(e=>e.id===t.jobId);e&&s(e)},children:t.jobName||t.jobId}):(0,z.jsx)(`span`,{className:`text-fg-muted`,children:t.jobName||t.jobId})}),(0,z.jsx)(`td`,{className:`px-3 py-2.5`,children:(0,z.jsx)(`span`,{className:f(`inline-flex rounded-md px-2 py-0.5 text-xs font-medium`,t.status===`success`&&`bg-emerald-500/15 text-emerald-800 dark:text-emerald-300`,t.status===`failed`&&`bg-red-500/15 text-red-800 dark:text-red-300`,t.status===`running`&&`bg-accent/15 text-accent`,t.status===`cancelled`&&`bg-surface-hover text-fg-muted`),children:ve(t.status,c)})}),(0,z.jsx)(`td`,{className:`whitespace-nowrap px-3 py-2.5 text-fg-muted`,children:F(t.duration)}),(0,z.jsx)(`td`,{className:`max-w-xs truncate px-3 py-2.5 text-fg-muted`,title:t.summary||t.error||``,children:N(t.summary||t.error,96)}),(0,z.jsx)(`td`,{className:`whitespace-nowrap px-3 py-2.5`,children:t.sessionKey?.trim()?(0,z.jsx)(`button`,{type:`button`,className:`text-xs font-medium text-accent hover:underline`,title:e.openChatTitle,"aria-label":e.openChatTitle,onClick:()=>Ue(t.sessionKey),children:e.openChat}):(0,z.jsx)(`span`,{className:`text-fg-disabled`,children:`—`})})]},t.id))})]})})]})}function rt({job:e,c:t,localeTag:n,scheduleBadgeLabels:r,absorbCardClickJobIdRef:i,scheduleAbsorbNextMenuCardClick:a,onOpenDetail:o,onToggle:s,onEdit:c,onRunNow:l,onDelete:u}){return(0,z.jsxs)(`article`,{role:`button`,tabIndex:0,className:f(`flex cursor-pointer flex-col rounded-xl border border-edge-subtle bg-surface-base text-left transition-colors duration-150 ease-out dark:border-edge-subtle`,`hover:bg-surface-hover`,`focus-visible:outline-none focus-visible:ring-2 focus-visible:ring-accent focus-visible:ring-offset-2 focus-visible:ring-offset-surface-panel`),onClick:()=>{if(i.current===e.id){i.current=null;return}o(e)},onKeyDown:t=>{if(t.key===`Enter`||t.key===` `){if(t.preventDefault(),i.current===e.id){i.current=null;return}o(e)}},children:[(0,z.jsxs)(`div`,{className:`flex items-start justify-between gap-2 px-4 pt-3`,children:[(0,z.jsx)(`button`,{type:`button`,role:`switch`,"aria-checked":e.enabled,className:f(`inline-flex h-6 w-10 shrink-0 items-center rounded-full border border-edge p-0.5 transition-colors`,e.enabled?`justify-end bg-accent`:`justify-start bg-surface-hover`),onClick:t=>{t.stopPropagation(),s(e,!e.enabled)},children:(0,z.jsx)(`span`,{className:`size-4 rounded-full bg-surface-panel shadow-surface ring-1 ring-edge/40 dark:ring-edge/55`})}),(0,z.jsxs)(I,{children:[(0,z.jsx)(Ne,{asChild:!0,children:(0,z.jsx)(j,{type:`button`,variant:`ghost`,className:`h-8 w-8 shrink-0 p-0`,"aria-label":t.jobCardMenuAria,onClick:e=>e.stopPropagation(),children:(0,z.jsx)(k,{className:`size-4`,strokeWidth:1.75})})}),(0,z.jsx)(L,{children:(0,z.jsxs)(Fe,{className:`z-50 min-w-[10rem] rounded-xl border border-edge-subtle bg-surface-panel p-1 shadow-elevated dark:border-edge-subtle`,sideOffset:4,align:`end`,onCloseAutoFocus:e=>e.preventDefault(),children:[(0,z.jsx)(Pe,{className:`cursor-pointer select-none rounded-lg px-2 py-1.5 text-sm text-fg outline-none data-highlighted:bg-surface-hover`,onSelect:()=>{a(e.id),c(e)},children:t.edit}),(0,z.jsx)(Pe,{className:`cursor-pointer select-none rounded-lg px-2 py-1.5 text-sm text-fg outline-none data-highlighted:bg-surface-hover`,onSelect:()=>{a(e.id),l(e)},children:t.runNow}),(0,z.jsx)(Pe,{className:`cursor-pointer select-none rounded-lg px-2 py-1.5 text-sm text-red-600 outline-none data-highlighted:bg-red-500/10 dark:text-red-400`,onSelect:()=>{a(e.id),u(e)},children:t.delete})]})})]})]}),(0,z.jsxs)(`div`,{className:`flex flex-1 flex-col gap-2 px-4 pb-3 pt-2`,children:[(0,z.jsx)(`h3`,{className:`line-clamp-2 font-semibold text-fg`,children:e.name||e.id}),(0,z.jsx)(`div`,{className:`max-h-[4.5rem] overflow-hidden text-sm text-fg-muted [&_.markdown-body]:text-sm [&_.markdown-body]:leading-snug`,title:Ee(e),children:(0,z.jsx)(C,{content:Ee(e),compact:!0})})]}),(0,z.jsxs)(`div`,{className:`flex items-center gap-1.5 border-t border-edge-subtle/90 px-4 py-2.5 text-xs text-fg-muted dark:border-edge-subtle`,children:[(0,z.jsx)(M,{className:`size-3.5 shrink-0`,strokeWidth:1.75,"aria-hidden":!0}),(0,z.jsx)(`span`,{className:`min-w-0 truncate`,children:je(e,n,r)})]})]})}function Z(e,t){let n=Math.max(1,Math.round(e/1e3));if(n<120)return t===`zh`?`${n} 秒`:`${n} seconds`;let r=Math.round(n/60);if(r<120)return t===`zh`?`${r} 分钟`:`${r} minutes`;let i=Math.round(r/60);return t===`zh`?`${i} 小时`:`${i} hours`}function it({c:e,language:t,localeTag:n,scheduleBadgeLabels:r,loading:a,sortedSystemJobs:s,heartbeat:l,keepAwake:u,wakeSupported:d,onWakeUnsupportedClick:p,onKeepAwakeToggle:m,absorbCardClickJobIdRef:h,scheduleAbsorbNextMenuCardClick:g,onOpenDetail:_,onToggle:v,onEdit:y,onRunNow:b,onDelete:x}){let S=Z(l.intervalMs,t);return(0,z.jsxs)(`section`,{"aria-labelledby":`cron-system-tasks-panel`,className:`flex flex-col gap-4`,children:[(0,z.jsx)(`h2`,{id:`cron-system-tasks-panel`,className:`sr-only`,children:e.tabSystemTasks}),(0,z.jsx)(`p`,{className:`text-sm text-fg-muted`,children:e.systemTasksIntro}),(0,z.jsxs)(`div`,{className:`flex flex-col gap-3 rounded-xl border border-accent/25 bg-accent/5 px-4 py-3 dark:border-accent/30 dark:bg-accent/10 sm:flex-row sm:items-center sm:justify-between`,children:[(0,z.jsxs)(`div`,{className:`flex gap-3 text-sm text-fg`,children:[(0,z.jsx)(o,{className:`mt-0.5 size-4 shrink-0 text-accent`,strokeWidth:1.75,"aria-hidden":!0}),(0,z.jsx)(`p`,{className:`text-pretty text-fg-muted`,children:e.wakeBanner})]}),(0,z.jsxs)(`div`,{className:`flex shrink-0 items-center gap-2 sm:pl-4`,children:[(0,z.jsx)(`span`,{className:`text-sm text-fg`,children:e.keepAwake}),(0,z.jsx)(`button`,{type:`button`,role:`switch`,"aria-checked":u,disabled:!d,title:d?void 0:e.wakeLockUnavailable,className:f(`inline-flex h-6 w-10 shrink-0 items-center rounded-full border border-edge p-0.5 transition-colors`,u?`justify-end bg-accent`:`justify-start bg-surface-hover`,!d&&`cursor-not-allowed opacity-50`),onClick:()=>{d?m():p()},children:(0,z.jsx)(`span`,{className:`size-4 rounded-full bg-surface-panel shadow-surface ring-1 ring-edge/40 dark:ring-edge/55`})})]})]}),(0,z.jsxs)(`div`,{className:`rounded-xl border border-edge bg-surface-base p-4 dark:bg-surface-hover/20`,children:[(0,z.jsxs)(`div`,{className:`flex flex-col gap-1 sm:flex-row sm:items-start sm:justify-between`,children:[(0,z.jsxs)(`div`,{children:[(0,z.jsx)(`h3`,{className:`text-sm font-semibold text-fg`,children:e.systemHeartbeatTitle}),(0,z.jsx)(`p`,{className:`mt-1 text-xs text-fg-muted`,children:e.systemHeartbeatHint})]}),(0,z.jsx)(j,{type:`button`,variant:`ghost`,className:`shrink-0 gap-1 self-start px-2 py-1.5 text-xs`,asChild:!0,children:(0,z.jsxs)(c,{to:`/settings/heartbeat`,children:[e.systemHeartbeatSettingsLink,(0,z.jsx)(ae,{className:`size-3.5 opacity-70`,"aria-hidden":!0})]})})]}),(0,z.jsxs)(`dl`,{className:`mt-3 grid gap-2 text-sm sm:grid-cols-2`,children:[(0,z.jsxs)(`div`,{children:[(0,z.jsx)(`dt`,{className:`text-xs font-medium text-fg-muted`,children:e.systemHeartbeatStatus}),(0,z.jsx)(`dd`,{className:`text-fg`,children:l.enabled?e.enabled:e.disabled})]}),(0,z.jsxs)(`div`,{children:[(0,z.jsx)(`dt`,{className:`text-xs font-medium text-fg-muted`,children:e.systemHeartbeatInterval}),(0,z.jsx)(`dd`,{className:`text-fg`,children:e.systemHeartbeatEvery.replace(/\{\{value\}\}/g,S)})]})]})]}),(0,z.jsxs)(`div`,{children:[(0,z.jsxs)(`div`,{className:`mb-2 flex flex-col gap-1 sm:flex-row sm:items-center sm:justify-between`,children:[(0,z.jsx)(`h3`,{className:`text-sm font-semibold text-fg`,children:e.systemDreamingTitle}),(0,z.jsx)(j,{type:`button`,variant:`ghost`,className:`shrink-0 gap-1 self-start px-2 py-1.5 text-xs`,asChild:!0,children:(0,z.jsxs)(c,{to:`/settings/dreams`,children:[e.systemDreamingSettingsLink,(0,z.jsx)(ae,{className:`size-3.5 opacity-70`,"aria-hidden":!0})]})})]}),(0,z.jsx)(`p`,{className:`mb-3 text-xs text-fg-muted`,children:e.systemDreamingHint}),a&&s.length===0?(0,z.jsx)(`div`,{className:`flex justify-center py-12`,"aria-busy":`true`,children:(0,z.jsx)(i,{className:`size-8 animate-spin text-accent`,strokeWidth:1.75})}):s.length===0?(0,z.jsx)(`p`,{className:`rounded-lg border border-edge-subtle bg-surface-hover/30 px-3 py-4 text-sm text-fg-muted dark:border-edge-subtle`,children:e.systemDreamingEmpty}):(0,z.jsx)(`div`,{className:`grid gap-4 sm:grid-cols-2`,children:s.map(t=>(0,z.jsx)(rt,{job:t,c:e,localeTag:n,scheduleBadgeLabels:r,absorbCardClickJobIdRef:h,scheduleAbsorbNextMenuCardClick:g,onOpenDetail:_,onToggle:v,onEdit:y,onRunNow:b,onDelete:x},t.id))})]})]})}function at(e,t){let n=e.templates;if(!n||typeof n!=`object`)return;let r=n[t];if(!r||typeof r!=`object`)return;let i=r.title?.trim(),a=r.prompt?.trim();if(!(!i||!a))return{title:i,description:(r.description??``).trim(),prompt:a}}var ot=[`daily`,`monitoring`,`reports`,`automation`],Q=[{templateId:`morning_briefing`,category:`daily`,defaultSchedule:`0 7 * * 1-5`,defaultSessionTarget:`isolated`},{templateId:`standup_prep`,category:`daily`,defaultSchedule:`0 8 * * 1-5`,defaultSessionTarget:`isolated`},{templateId:`end_of_day_wrap_up`,category:`daily`,defaultSchedule:`0 18 * * 1-5`,defaultSessionTarget:`isolated`},{templateId:`inbox_triage`,category:`daily`,defaultSchedule:`30 8 * * 1-5`,defaultSessionTarget:`isolated`},{templateId:`competitor_watch`,category:`monitoring`,defaultSchedule:`0 9 * * 1`,defaultSessionTarget:`isolated`},{templateId:`trending_topics_monitor`,category:`monitoring`,defaultSchedule:`0 10 * * 1-5`,defaultSessionTarget:`isolated`},{templateId:`tech_radar_stack`,category:`monitoring`,defaultSchedule:`0 11 * * 3`,defaultSessionTarget:`isolated`},{templateId:`dependency_check_audit`,category:`monitoring`,defaultSchedule:`0 9 * * 0`,defaultSessionTarget:`isolated`},{templateId:`weekly_review`,category:`reports`,defaultSchedule:`0 17 * * 5`,defaultSessionTarget:`isolated`},{templateId:`code_quality_report`,category:`reports`,defaultSchedule:`0 14 * * 1`,defaultSessionTarget:`isolated`},{templateId:`git_activity_summary`,category:`reports`,defaultSchedule:`0 9 * * 1`,defaultSessionTarget:`isolated`},{templateId:`user_feedback_digest`,category:`reports`,defaultSchedule:`0 16 * * 5`,defaultSessionTarget:`isolated`},{templateId:`stale_todo_or_issue_sweep`,category:`automation`,defaultSchedule:`0 10 * * 2`,defaultSessionTarget:`isolated`},{templateId:`release_notes_or_changelog_draft`,category:`automation`,defaultSchedule:`0 10 * * 4`,defaultSessionTarget:`isolated`},{templateId:`workspace_cleanup_suggestions`,category:`automation`,defaultSchedule:`30 18 * * 5`,defaultSessionTarget:`isolated`},{templateId:`smoke_or_ci_health_reminder`,category:`automation`,defaultSchedule:`0 8 * * 1`,defaultSessionTarget:`isolated`}];function st(e){return Q.find(t=>t.templateId===e)}function ct(e){let{cron:t,localeTag:n,scheduleBadgeLabels:r,categoryFilter:i,onCategoryFilterChange:a,onSelectTemplate:o}=e,s=i===`all`?[...Q]:Q.filter(e=>e.category===i);return(0,z.jsxs)(`div`,{className:`flex w-full flex-col gap-4`,children:[(0,z.jsxs)(`div`,{className:`flex flex-wrap gap-2`,role:`group`,"aria-label":t.fromTemplate,children:[(0,z.jsx)(j,{type:`button`,variant:i===`all`?`secondary`:`ghost`,className:`h-8 rounded-full px-3 py-1.5 text-xs`,onClick:()=>a(`all`),children:t.templateFilterAll}),ot.map(e=>(0,z.jsx)(j,{type:`button`,variant:i===e?`secondary`:`ghost`,className:`h-8 rounded-full px-3 py-1.5 text-xs`,onClick:()=>a(e),children:t.templateCategories[e]},e))]}),s.length===0?(0,z.jsx)(`p`,{className:`text-center text-sm text-fg-muted`,children:t.templatesEmptyHint}):(0,z.jsx)(`div`,{className:`grid gap-3 sm:grid-cols-2`,children:s.map(e=>{let i=at(t,e.templateId);if(!i)return null;let a=je({schedule:e.defaultSchedule,timezone:void 0,next_run:void 0},n,r);return(0,z.jsxs)(`button`,{type:`button`,className:f(`flex flex-col gap-1.5 rounded-xl border border-edge-subtle bg-surface-base p-4 text-left transition-colors`,`hover:border-accent/40 hover:bg-surface-hover`,`focus-visible:outline-none focus-visible:ring-2 focus-visible:ring-accent focus-visible:ring-offset-2 focus-visible:ring-offset-surface-panel`),onClick:()=>o(e.templateId),"aria-label":`${t.templateCategories[e.category]} — ${i.title}`,children:[(0,z.jsx)(`span`,{className:`font-semibold text-fg`,children:i.title}),(0,z.jsx)(`span`,{className:`line-clamp-2 text-sm text-fg-muted`,children:i.description}),(0,z.jsx)(`span`,{className:`mt-1 flex items-center gap-1 text-xs text-fg-muted`,children:(0,z.jsx)(`span`,{className:`tabular-nums`,children:a})})]},e.templateId)})})]})}function lt({c:e,localeTag:t,scheduleBadgeLabels:n,loading:r,jobsCount:a,sortedJobs:s,templateCategoryFilter:c,onTemplateCategoryFilterChange:l,onSelectTemplate:u,keepAwake:d,wakeSupported:p,onWakeUnsupportedClick:m,onKeepAwakeToggle:h,absorbCardClickJobIdRef:g,scheduleAbsorbNextMenuCardClick:_,onOpenDetail:v,onToggle:y,onEdit:b,onAddJob:x,onRunNow:S,onDelete:C}){return(0,z.jsxs)(`section`,{"aria-labelledby":`cron-tasks-panel`,className:`flex flex-col gap-4`,children:[(0,z.jsx)(`h2`,{id:`cron-tasks-panel`,className:`sr-only`,children:e.tabMyTasks}),(0,z.jsxs)(`div`,{className:`flex flex-col gap-3 rounded-xl border border-accent/25 bg-accent/5 px-4 py-3 dark:border-accent/30 dark:bg-accent/10 sm:flex-row sm:items-center sm:justify-between`,children:[(0,z.jsxs)(`div`,{className:`flex gap-3 text-sm text-fg`,children:[(0,z.jsx)(o,{className:`mt-0.5 size-4 shrink-0 text-accent`,strokeWidth:1.75,"aria-hidden":!0}),(0,z.jsx)(`p`,{className:`text-pretty text-fg-muted`,children:e.wakeBanner})]}),(0,z.jsxs)(`div`,{className:`flex shrink-0 items-center gap-2 sm:pl-4`,children:[(0,z.jsx)(`span`,{className:`text-sm text-fg`,children:e.keepAwake}),(0,z.jsx)(`button`,{type:`button`,role:`switch`,"aria-checked":d,disabled:!p,title:p?void 0:e.wakeLockUnavailable,className:f(`inline-flex h-6 w-10 shrink-0 items-center rounded-full border border-edge p-0.5 transition-colors`,d?`justify-end bg-accent`:`justify-start bg-surface-hover`,!p&&`cursor-not-allowed opacity-50`),onClick:()=>{p?h():m()},children:(0,z.jsx)(`span`,{className:`size-4 rounded-full bg-surface-panel shadow-surface ring-1 ring-edge/40 dark:ring-edge/55`})})]})]}),r&&a===0?(0,z.jsx)(`div`,{className:`flex justify-center py-16`,"aria-busy":`true`,children:(0,z.jsx)(i,{className:`size-8 animate-spin text-accent`,strokeWidth:1.75})}):a===0?(0,z.jsxs)(`div`,{className:`flex flex-col gap-6 rounded-2xl bg-surface-base px-4 py-8 dark:bg-surface-hover/25 sm:px-6 sm:py-10`,children:[(0,z.jsx)(`div`,{className:`w-full max-w-3xl`,children:(0,z.jsx)(ct,{cron:e,localeTag:t,scheduleBadgeLabels:n,categoryFilter:c,onCategoryFilterChange:l,onSelectTemplate:u})}),(0,z.jsx)(`div`,{className:`flex justify-center`,children:(0,z.jsx)(j,{type:`button`,variant:`primary`,onClick:x,children:e.emptyStateCta})})]}):(0,z.jsx)(`div`,{className:`grid gap-4 sm:grid-cols-2`,children:s.map(r=>(0,z.jsx)(rt,{job:r,c:e,localeTag:t,scheduleBadgeLabels:n,absorbCardClickJobIdRef:g,scheduleAbsorbNextMenuCardClick:_,onOpenDetail:e=>void v(e),onToggle:(e,t)=>void y(e,t),onEdit:b,onRunNow:S,onDelete:C},r.id))})]})}function ut({open:e,onOpenChange:t,c:n,localeTag:r,scheduleBadgeLabels:i,categoryFilter:o,onCategoryFilterChange:c,onSelectTemplate:l}){return(0,z.jsx)(p,{open:e,onOpenChange:t,children:(0,z.jsxs)(ie,{children:[(0,z.jsx)(a,{className:`xopc-dialog-overlay fixed inset-0 z-[62] bg-scrim`}),(0,z.jsx)(`div`,{className:`fixed inset-0 z-[62] flex items-center justify-center p-4 pointer-events-none`,children:(0,z.jsxs)(_,{className:`xopc-dialog-content-pane pointer-events-auto relative flex max-h-[min(90vh,840px)] w-full max-w-lg flex-col rounded-xl border border-edge bg-surface-panel shadow-popover outline-none sm:max-w-2xl dark:border-edge`,onOpenAutoFocus:e=>e.preventDefault(),children:[(0,z.jsxs)(`div`,{className:`flex shrink-0 items-center justify-end border-b border-edge px-4 py-3`,children:[(0,z.jsx)(m,{className:`sr-only`,children:n.fromTemplate}),(0,z.jsx)(s,{asChild:!0,children:(0,z.jsx)(j,{type:`button`,variant:`ghost`,className:`h-9 w-9 shrink-0 p-0`,"aria-label":n.close,children:(0,z.jsx)(y,{className:`size-5`,strokeWidth:1.75})})})]}),(0,z.jsx)(`div`,{className:`min-h-0 flex-1 overflow-y-auto px-4 py-4`,children:(0,z.jsx)(ct,{cron:n,localeTag:r,scheduleBadgeLabels:i,categoryFilter:o,onCategoryFilterChange:c,onSelectTemplate:l})})]})})]})})}function dt(){let e=b(e=>e.language),t=r(e),n=t.cron,i=t.chat,a=!!te(e=>e.token),o=ue(e=>e.resolved)===`dark`,s=e===`zh`?`zh-CN`:`en-US`,[c,l]=(0,R.useState)([]),[u,f]=(0,R.useState)(`myTasks`),[p,m]=(0,R.useState)(`created_desc`),[g,_]=(0,R.useState)(`day`),[v,y]=(0,R.useState)(``),[x,S]=(0,R.useState)(``),[C,w]=(0,R.useState)(!1),T=(0,R.useRef)(null),E=(0,R.useRef)(`none`),ee=(0,R.useRef)(C),D=typeof navigator<`u`&&`wakeLock`in navigator,k=D||d(),[A,re]=(0,R.useState)([]),[j,ie]=(0,R.useState)([]),[ae,oe]=(0,R.useState)(``),[M,se]=(0,R.useState)([]),[ce,le]=(0,R.useState)([]),[N,fe]=(0,R.useState)(!1),[pe,he]=(0,R.useState)(null),[ve,F]=(0,R.useState)(null),[Ae,je]=(0,R.useState)([]),[Me,Ne]=(0,R.useState)(!1),[I,Pe]=(0,R.useState)(!1),[L,Fe]=(0,R.useState)(`add`),[ze,Ue]=(0,R.useState)(null),[Ge,B]=(0,R.useState)(``),[Ke,V]=(0,R.useState)(Re),[H,U]=(0,R.useState)(`local`),[W,G]=(0,R.useState)(``),[Je,K]=(0,R.useState)(``),[Ye,q]=(0,R.useState)(`edit`),[Xe,Ze]=(0,R.useState)(0),[J,Y]=(0,R.useState)(`main`),[Qe,X]=(0,R.useState)(``),[rt,Z]=(0,R.useState)(!1),[ot,Q]=(0,R.useState)(``),[ct,dt]=(0,R.useState)(!1),[ft,pt]=(0,R.useState)(``),[mt,ht]=(0,R.useState)(!1),gt=(0,R.useRef)(!1),[_t,vt]=(0,R.useState)(!1),[yt,bt]=(0,R.useState)(null),[xt,St]=(0,R.useState)([]),[Ct,wt]=(0,R.useState)(!1),[Tt,Et]=(0,R.useState)(!1),[Dt,Ot]=(0,R.useState)(null),[kt,At]=(0,R.useState)(null),[jt,Mt]=(0,R.useState)(!1),[Nt,Pt]=(0,R.useState)(`all`),Ft=(0,R.useRef)(null),It=(0,R.useCallback)(e=>{Ft.current=e,window.setTimeout(()=>{Ft.current===e&&(Ft.current=null)},400)},[]),$=(0,R.useCallback)(()=>ae||(j.length>0?j[0].id:``),[ae,j]),Lt=typeof window<`u`&&!!window.electronAPI?.file?.openDirectory,Rt=(0,R.useCallback)(async()=>{let e=typeof window<`u`?window.electronAPI?.file?.openDirectory:void 0;return e?e():null},[]),zt=(0,R.useCallback)(async e=>{let t=e.trim();t&&(We(t),Q(t))},[]),Bt=(0,R.useMemo)(()=>{let e=new Set(ce.map(e=>e.id)),t=[...ce],n=Qe.trim().toLowerCase();return n&&!e.has(n)&&t.push({id:n}),t},[ce,Qe]),Vt=H!==`local`&&(J===`main`||J===`isolated`&&!rt),Ht=J===`main`||J===`isolated`&&!rt,Ut=!!Ge.trim()&&!!Ke.trim()&&!!Je.trim()&&(!Vt||!!W.trim()),Wt=(0,R.useCallback)(async()=>{Ne(!0);try{je(await be(400))}catch{}finally{Ne(!1)}},[]),Gt=(0,R.useCallback)(async()=>{fe(!0),F(null);try{l(await _e())}catch(e){F(e instanceof Error?e.message:n.failedToLoadJobs)}finally{fe(!1)}},[n.failedToLoadJobs]),Kt=(0,R.useCallback)(async()=>{try{let[e,t,n,r,i]=await Promise.all([me(),xe(),we(),O(),de().catch(()=>null)]);re(e),ie(t),oe(n.model||``),he(r.payload?.config??null),i&&le(i.items)}catch{}},[]);(0,R.useEffect)(()=>{a&&(Gt(),Kt())},[a,Gt,Kt]),(0,R.useEffect)(()=>{if(!a)return;let e=()=>{O().then(e=>{he(e.payload?.config??null)})};return window.addEventListener(`config-reload`,e),()=>window.removeEventListener(`config-reload`,e)},[a]),(0,R.useEffect)(()=>{!a||u!==`history`||Wt()},[a,u,Wt]);let qt=(0,R.useCallback)(async()=>{if(E.current===`electron`){try{await window.electronAPI?.cron?.setDisplaySleepPrevented?.(!1)}catch{}E.current=`none`;return}try{await T.current?.release()}catch{}T.current=null,E.current=`none`},[]),Jt=(0,R.useCallback)(async()=>{let e=typeof window<`u`?window.electronAPI?.cron?.setDisplaySleepPrevented:void 0;if(e)try{await e(!0),E.current=`electron`;return}catch{F(n.wakeLockUnavailable),w(!1);return}if(D)try{let e=await navigator.wakeLock.request(`screen`);T.current=e,E.current=`navigator`,e.addEventListener(`release`,()=>{T.current=null,E.current=`none`})}catch{F(n.wakeLockUnavailable),w(!1)}},[n.wakeLockUnavailable,D]);ee.current=C,(0,R.useEffect)(()=>{if(!C){qt();return}Jt();let e=()=>{document.visibilityState===`visible`&&ee.current&&Jt()};return document.addEventListener(`visibilitychange`,e),()=>{document.removeEventListener(`visibilitychange`,e),qt()}},[C,Jt,qt]),(0,R.useEffect)(()=>{if(!I||L!==`add`||gt.current)return;let e=$();e&&pt(e)},[I,L,$]),(0,R.useEffect)(()=>{!I||L!==`add`||new Set([`local`,...A.map(e=>e.name)]).has(H)||U(`local`)},[A,H,L,I]),(0,R.useEffect)(()=>{if(H===`local`){se([]);return}let e=!1;return ke(H).then(t=>{e||se(t)}),()=>{e=!0}},[H,I]);let Yt=(0,R.useCallback)(e=>{if(gt.current=!1,Pe(!0),Fe(e?`edit`:`add`),Ue(e?.id??null),e){B(e.name||``),V(e.schedule&&String(e.schedule).trim()||`*/5 * * * *`);let t=Ee(e);K(t??``),Y(e.sessionTarget||`main`),X((e.sessionTarget||`main`)===`isolated`&&e.agentId?.trim()?e.agentId.trim().toLowerCase():``),Q((e.sessionTarget||`main`)===`isolated`&&e.workingDirectory?.trim()?e.workingDirectory.trim():``);let n=e.payload?.kind===`agentTurn`&&e.payload.model?.trim()?e.payload.model.trim():``;pt(e.model?.trim()||n||$());let r=e.delivery?.channel===`local`,i=(e.sessionTarget||`main`)===`isolated`&&!r&&(!e.delivery?.to||e.delivery.mode===`none`);if(Z(i),r)U(`local`),G(``);else if(e.delivery&&e.delivery.mode!==`none`&&e.delivery.to)U(e.delivery.channel||`telegram`),G(e.delivery.to||``);else if(i)U(`telegram`),G(``);else{let e=t.split(`:`);e.length>=3&&[`telegram`,`cli`,`gateway`,`local`].includes(e[0])?(U(e[0]),G(e[1]),K(e.slice(2).join(`:`))):(U(`telegram`),G(``))}}else B(``),V(Re),U(`local`),G(``),K(``),Y(`main`),X(``),Q(``),Z(!1),pt($());q(`edit`),Ze(e=>e+1)},[$]),Xt=(0,R.useCallback)(e=>{q(e),e===`edit`&&Ze(e=>e+1)},[]),Zt=(0,R.useCallback)(e=>{let n=st(e),r=n?at(t.cron,e):void 0;!n||!r||(gt.current=!1,Fe(`add`),Ue(null),B(r.title),V(n.defaultSchedule),K(r.prompt),Y(n.defaultSessionTarget),U(`local`),G(``),Z(!1),X(``),Q(``),pt($()),q(`edit`),Ze(e=>e+1),Mt(!1),Pe(!0))},[$,t.cron]),Qt=(0,R.useCallback)(()=>{Pe(!1),Fe(`add`),Ue(null),B(``),V(Re),U(`local`),G(``),K(``),Y(`main`),X(``),Q(``),dt(!1),Z(!1),pt(``),q(`edit`),gt.current=!1},[]),$t=async()=>{if(!Ge.trim()){F(n.nameRequired);return}if(!Ke.trim()||!Je.trim()){F(n.scheduleRequired);return}if(Vt&&!W.trim()){F(n.chatIdRequired);return}ht(!0),F(null);try{let e=Je.trim(),t;t=J===`isolated`&&rt?{mode:`none`}:H===`local`?{mode:`direct`,channel:`local`}:{mode:`direct`,channel:H,to:W.trim()};let n=J===`isolated`?{kind:`agentTurn`,message:e,...ft.trim()?{model:ft.trim()}:{}}:{kind:`systemEvent`,text:e},r=ft.trim(),i=Qe.trim().toLowerCase(),a=J===`main`?null:i||null,o=ot.trim(),s={name:Ge.trim(),schedule:Ke.trim(),sessionTarget:J,model:J===`isolated`&&r?r:void 0,delivery:t,payload:n,...L===`edit`?{agentId:a,workingDirectory:J===`isolated`&&o||null}:{...J===`isolated`&&i?{agentId:i}:{},...J===`isolated`&&o?{workingDirectory:o}:{}}};if(L===`edit`&&ze)await ye(ze,s);else{let{schedule:e,agentId:t,workingDirectory:n,...r}=s;await Ce(e,{...r,...t==null?{}:{agentId:t},...n?{workingDirectory:n}:{}})}Qt(),await Gt(),await Kt()}catch(e){F(e instanceof Error?e.message:L===`edit`?n.failedToUpdateJob:n.failedToCreateJob)}finally{ht(!1)}},en=async e=>{vt(!0),bt(e),wt(!0),St([]);try{let t=await ge(e.id);t&&(bt(t),St(await De(e.id,20)))}catch{}finally{wt(!1)}},tn=async(e,t)=>{try{await Se(e.id,t),await Gt(),await Kt()}catch(e){F(e instanceof Error?e.message:n.failedToToggleJob)}},nn=async()=>{if(!kt||!Dt)return;let e=kt,t=Dt;Et(!1),At(null),Ot(null);try{t===`run`?await Te(e):(await P(e),yt?.id===e&&(vt(!1),bt(null))),await Gt(),await Kt(),await Wt()}catch(e){F(e instanceof Error?e.message:n.actionFailed)}};(0,R.useEffect)(()=>{let e=e=>{e.key===`Escape`&&(I?Qt():_t&&(vt(!1),bt(null)))};return document.addEventListener(`keydown`,e),()=>document.removeEventListener(`keydown`,e)},[I,_t,Qt]);let rn=(0,R.useMemo)(()=>({running:n.execStatusRunning,success:n.execStatusSuccess,failed:n.execStatusFailed,cancelled:n.execStatusCancelled}),[n.execStatusCancelled,n.execStatusFailed,n.execStatusRunning,n.execStatusSuccess]),an=(0,R.useMemo)(()=>c.filter(e=>!Oe(e)),[c]),on=(0,R.useMemo)(()=>c.filter(e=>Oe(e)),[c]),sn=(0,R.useCallback)(e=>{let t=[...e];return t.sort((e,t)=>{let n=new Date(e.created_at).getTime(),r=new Date(t.created_at).getTime();return p===`created_desc`?r-n:n-r}),t},[p]),cn=(0,R.useMemo)(()=>sn(an),[sn,an]),ln=(0,R.useMemo)(()=>sn(on),[sn,on]),un=(0,R.useMemo)(()=>Ie(pe),[pe]),dn=(0,R.useMemo)(()=>{let e=new Date,t=g===`day`?Be(e):g===`week`?Ve(e):He(e);return Ae.filter(e=>!(new Date(e.startedAt)<t||v&&e.jobId!==v||x&&e.status!==x))},[Ae,g,v,x]),fn=n.scheduleBadge,pn=(0,R.useCallback)(()=>{Gt(),Kt(),Wt()},[Gt,Kt,Wt]),mn=ne(e=>e.setPageHeader),hn=ne(e=>e.clearPageHeader),{pathname:gn}=h(),_n=gn.startsWith(`/settings/`),vn=(0,R.useCallback)((e,t,n)=>{Y(e),e===`main`?(Z(!1),X(``),Q(``)):e===`isolated`&&!n&&pt(t())},[]),yn=(0,R.useCallback)(()=>{ke(H).then(se)},[H]),bn=(0,R.useMemo)(()=>(0,z.jsx)(tt,{c:n,loading:N,runHistoryLoading:Me,onRefresh:pn,onOpenTemplatePicker:()=>{Pt(`all`),Mt(!0)},onAddJob:()=>Yt()}),[n,N,Yt,pn,Me]);return(0,R.useLayoutEffect)(()=>!a||_n?(hn(),()=>hn()):(mn({startExtra:null,main:null,end:bn}),()=>hn()),[hn,bn,a,_n,mn]),a?(0,z.jsxs)(`div`,{className:`flex min-h-0 flex-1 flex-col overflow-y-auto bg-surface-panel`,children:[(0,z.jsxs)(`div`,{className:`mx-auto flex w-full max-w-app-main flex-col gap-6 px-4 py-6 sm:px-8`,children:[ve?(0,z.jsx)(`div`,{className:`rounded-xl border border-red-200 bg-red-50 px-3 py-2 text-sm text-red-800 dark:border-red-900/50 dark:bg-red-950/40 dark:text-red-200`,role:`alert`,children:ve}):null,(0,z.jsx)(`header`,{className:`flex flex-col gap-4`,children:(0,z.jsxs)(`div`,{className:`min-w-0`,children:[(0,z.jsx)(`h1`,{className:`text-xl font-semibold tracking-tight text-fg`,children:n.title}),(0,z.jsx)(`p`,{className:`mt-1 max-w-2xl text-sm text-fg-muted`,children:n.subtitle})]})}),_n?(0,z.jsx)(`div`,{className:`flex flex-wrap items-center justify-end gap-2 border-b border-edge-subtle pb-3 dark:border-edge-subtle`,children:bn}):null,(0,z.jsx)(et,{c:n,mainTab:u,onMainTabChange:f,jobSort:p,onJobSortChange:m,historyRange:g,onHistoryRangeChange:_,historyJobFilter:v,onHistoryJobFilterChange:y,historyStatusFilter:x,onHistoryStatusFilterChange:S,jobs:c}),u===`myTasks`?(0,z.jsx)(lt,{c:n,localeTag:s,scheduleBadgeLabels:fn,loading:N,jobsCount:an.length,sortedJobs:cn,templateCategoryFilter:Nt,onTemplateCategoryFilterChange:Pt,onSelectTemplate:Zt,keepAwake:C,wakeSupported:k,onWakeUnsupportedClick:()=>F(n.wakeLockUnavailable),onKeepAwakeToggle:()=>w(e=>!e),absorbCardClickJobIdRef:Ft,scheduleAbsorbNextMenuCardClick:It,onOpenDetail:e=>void en(e),onToggle:(e,t)=>void tn(e,t),onEdit:e=>Yt(e),onAddJob:()=>Yt(),onRunNow:e=>{Ot(`run`),At(e.id),Et(!0)},onDelete:e=>{Ot(`delete`),At(e.id),Et(!0)}}):u===`systemTasks`?(0,z.jsx)(it,{c:n,language:e,localeTag:s,scheduleBadgeLabels:fn,loading:N,sortedSystemJobs:ln,heartbeat:un,keepAwake:C,wakeSupported:k,onWakeUnsupportedClick:()=>F(n.wakeLockUnavailable),onKeepAwakeToggle:()=>w(e=>!e),absorbCardClickJobIdRef:Ft,scheduleAbsorbNextMenuCardClick:It,onOpenDetail:e=>void en(e),onToggle:(e,t)=>void tn(e,t),onEdit:e=>Yt(e),onRunNow:e=>{Ot(`run`),At(e.id),Et(!0)},onDelete:e=>{Ot(`delete`),At(e.id),Et(!0)}}):(0,z.jsx)(nt,{c:n,runHistoryLoading:Me,runHistory:Ae,filteredRunHistory:dn,jobs:c,onRefreshHistory:()=>void Wt(),onOpenJobDetail:e=>void en(e),statusLabels:rn})]}),(0,z.jsx)($e,{open:I,onRequestClose:Qt,c:n,chatM:i,agentsMessages:t.agentsSettings,isDark:o,channels:A,sessionChatIds:M,cronAgentSelectOptions:Bt,hasElectronFolderPicker:Lt,openNativeFolderPicker:Rt,applyWorkingDirectory:zt,wdModalOpen:ct,onWdModalOpenChange:dt,defaultModelResolver:$,formMode:L,formJobId:ze,formName:Ge,onFormNameChange:B,formSchedule:Ke,onFormScheduleChange:V,formSubmitting:mt,formSessionTarget:J,onFormSessionTargetChange:vn,formAgentLocalOnly:rt,onFormAgentLocalOnlyChange:Z,formModel:ft,onFormModelUserChange:e=>{gt.current=!0,pt(e)},formAgentId:Qe,onFormAgentIdChange:X,formWorkingDirectory:ot,onFormWorkingDirectoryChange:Q,formChannel:H,onFormChannelChange:e=>{U(e),e===`local`&&Z(!1),G(``)},formChatId:W,onFormChatIdChange:G,formMessage:Je,onFormMessageChange:K,formMessageMdMode:Ye,onSetMessageMdMode:Xt,messageEditorNonce:Xe,needsDeliveryChat:Vt,showChannelPicker:Ht,canSubmit:Ut,onSubmit:()=>void $t(),onRefreshRecipients:yn}),(0,z.jsx)(ut,{open:jt,onOpenChange:e=>{Mt(e),e&&Pt(`all`)},c:n,localeTag:s,scheduleBadgeLabels:fn,categoryFilter:Nt,onCategoryFilterChange:Pt,onSelectTemplate:Zt}),(0,z.jsx)(qe,{open:_t,onDismiss:()=>{vt(!1),bt(null)},detailJob:yt,detailLoading:Ct,detailHistory:xt,c:n,chatWorkingDirNotSet:i.workingDirectory.notSet,statusLabels:rn}),(0,z.jsx)(Le,{open:Tt,onOpenChange:Et,action:Dt,c:n,onDismiss:()=>{Et(!1),At(null),Ot(null)},onConfirm:nn})]}):(0,z.jsx)(`div`,{className:`mx-auto w-full max-w-app-main px-4 py-16 text-center text-sm text-fg-muted sm:px-8`,children:n.needToken})}export{dt as CronPage};
|
|
2
|
+
//# sourceMappingURL=cron-page-CdYb690n.js.map
|