@xopcai/xopc 0.0.42 → 0.0.43

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.
Files changed (155) hide show
  1. package/dist/extensions/dingtalk/src/plugin.js +1 -1
  2. package/dist/extensions/feishu/src/outbound/media-load.js +1 -1
  3. package/dist/extensions/telegram/src/plugin.js +1 -1
  4. package/dist/extensions/telegram/src/routing-integration.js +2 -2
  5. package/dist/extensions/telegram/xopc.extension.json +1 -1
  6. package/dist/extensions/weixin/src/api/api.js +2 -2
  7. package/dist/extensions/weixin/src/auth/accounts.js +1 -1
  8. package/dist/extensions/weixin/src/cdn/upload.js +1 -1
  9. package/dist/extensions/weixin/src/media/data-url.js +1 -1
  10. package/dist/extensions/weixin/src/messaging/debug-mode.js +1 -1
  11. package/dist/extensions/weixin/src/messaging/inbound.js +1 -1
  12. package/dist/extensions/weixin/src/messaging/process-message.js +1 -1
  13. package/dist/extensions/weixin/src/plugin.js +1 -1
  14. package/dist/extensions/weixin/src/storage/sync-buf.js +1 -1
  15. package/dist/gateway/static/root/assets/{agents-DMW4-fH-.js → agents-BDhkkT2o.js} +2 -2
  16. package/dist/gateway/static/root/assets/{agents-DMW4-fH-.js.map → agents-BDhkkT2o.js.map} +1 -1
  17. package/dist/gateway/static/root/assets/{apps-page-DOHsxEjt.js → apps-page-Bco3oZzd.js} +2 -2
  18. package/dist/gateway/static/root/assets/{apps-page-DOHsxEjt.js.map → apps-page-Bco3oZzd.js.map} +1 -1
  19. package/dist/gateway/static/root/assets/{channels-settings-JVq31iIN.js → channels-settings-CpTZxCKG.js} +2 -2
  20. package/dist/gateway/static/root/assets/{channels-settings-JVq31iIN.js.map → channels-settings-CpTZxCKG.js.map} +1 -1
  21. package/dist/gateway/static/root/assets/{cron-api-BqeNAeYQ.js → cron-api-YLqLzMDN.js} +2 -2
  22. package/dist/gateway/static/root/assets/{cron-api-BqeNAeYQ.js.map → cron-api-YLqLzMDN.js.map} +1 -1
  23. package/dist/gateway/static/root/assets/{cron-page-ryZsTAOn.js → cron-page-aiDeJtJ-.js} +2 -2
  24. package/dist/gateway/static/root/assets/{cron-page-ryZsTAOn.js.map → cron-page-aiDeJtJ-.js.map} +1 -1
  25. package/dist/gateway/static/root/assets/{dist-zlgGKakL.js → dist-4ClCuR-G.js} +2 -2
  26. package/dist/gateway/static/root/assets/{dist-zlgGKakL.js.map → dist-4ClCuR-G.js.map} +1 -1
  27. package/dist/gateway/static/root/assets/{extension-debug-page-BAHhJLEv.js → extension-debug-page-yNO3rwBQ.js} +2 -2
  28. package/dist/gateway/static/root/assets/{extension-debug-page-BAHhJLEv.js.map → extension-debug-page-yNO3rwBQ.js.map} +1 -1
  29. package/dist/gateway/static/root/assets/{extension-page-9UNKgelu.js → extension-page-D0vOu9eC.js} +2 -2
  30. package/dist/gateway/static/root/assets/{extension-page-9UNKgelu.js.map → extension-page-D0vOu9eC.js.map} +1 -1
  31. package/dist/gateway/static/root/assets/{extension-settings-page-Mjv8LQCe.js → extension-settings-page-DqaNWoo7.js} +2 -2
  32. package/dist/gateway/static/root/assets/{extension-settings-page-Mjv8LQCe.js.map → extension-settings-page-DqaNWoo7.js.map} +1 -1
  33. package/dist/gateway/static/root/assets/{index-DLfAjBJz.js → index-KxjI2fjF.js} +4 -4
  34. package/dist/gateway/static/root/assets/{index-DLfAjBJz.js.map → index-KxjI2fjF.js.map} +1 -1
  35. package/dist/gateway/static/root/assets/{logs-page-XNnEW2Be.js → logs-page-DSdKuyeD.js} +2 -2
  36. package/dist/gateway/static/root/assets/{logs-page-XNnEW2Be.js.map → logs-page-DSdKuyeD.js.map} +1 -1
  37. package/dist/gateway/static/root/assets/{sessions-page-pgcikS9L.js → sessions-page-Bfb-hZJb.js} +2 -2
  38. package/dist/gateway/static/root/assets/{sessions-page-pgcikS9L.js.map → sessions-page-Bfb-hZJb.js.map} +1 -1
  39. package/dist/gateway/static/root/assets/{settings-page-CrXaEe86.js → settings-page-B7NZPSpO.js} +2 -2
  40. package/dist/gateway/static/root/assets/{settings-page-CrXaEe86.js.map → settings-page-B7NZPSpO.js.map} +1 -1
  41. package/dist/gateway/static/root/assets/{skills-page-Cq1gHbJ0.js → skills-page-D-AJTEVx.js} +2 -2
  42. package/dist/gateway/static/root/assets/{skills-page-Cq1gHbJ0.js.map → skills-page-D-AJTEVx.js.map} +1 -1
  43. package/dist/gateway/static/root/assets/{use-image-provider-credentials-BZcegAHq.js → use-image-provider-credentials-Cu5zeVdn.js} +2 -2
  44. package/dist/gateway/static/root/assets/{use-image-provider-credentials-BZcegAHq.js.map → use-image-provider-credentials-Cu5zeVdn.js.map} +1 -1
  45. package/dist/gateway/static/root/index.html +1 -1
  46. package/dist/package.js +1 -1
  47. package/dist/src/agent/agent-manager.js +6 -6
  48. package/dist/src/agent/context/workspace-seed.js +2 -2
  49. package/dist/src/agent/goals/post-turn.js +1 -1
  50. package/dist/src/agent/image/load-image-media.js +1 -1
  51. package/dist/src/agent/ipc/bus.js +1 -1
  52. package/dist/src/agent/ipc/inbox.js +2 -2
  53. package/dist/src/agent/ipc/socket.js +1 -1
  54. package/dist/src/agent/memory/builtin-memory-store.js +1 -1
  55. package/dist/src/agent/memory/dreaming/deep-promotion.js +1 -1
  56. package/dist/src/agent/memory/dreaming/events.js +1 -1
  57. package/dist/src/agent/memory/dreaming/last-run.js +1 -1
  58. package/dist/src/agent/memory/dreaming/light-sweep.js +1 -1
  59. package/dist/src/agent/memory/dreaming/preview.js +1 -1
  60. package/dist/src/agent/memory/dreaming/rem-patterns.js +1 -1
  61. package/dist/src/agent/memory/dreaming/short-term-store.js +1 -1
  62. package/dist/src/agent/memory/dreaming/utils.js +1 -1
  63. package/dist/src/agent/memory/plugin-discovery.js +1 -1
  64. package/dist/src/agent/models/manager.js +1 -1
  65. package/dist/src/agent/prompt/service-prompt-builder.js +2 -2
  66. package/dist/src/agent/service.js +5 -5
  67. package/dist/src/agent/skills/config.js +1 -1
  68. package/dist/src/agent/skills/hub-hash.js +2 -2
  69. package/dist/src/agent/skills/hub-lock.js +1 -1
  70. package/dist/src/agent/skills/hub-pull.js +1 -1
  71. package/dist/src/agent/skills/index.js +1 -1
  72. package/dist/src/agent/skills/managed-store.js +1 -1
  73. package/dist/src/agent/skills/scanner.js +1 -1
  74. package/dist/src/agent/skills/skill-manage-ops.js +1 -1
  75. package/dist/src/agent/skills/skill-manager.js +1 -1
  76. package/dist/src/agent/tools/dreaming-tool.js +1 -1
  77. package/dist/src/agent/tools/factory.js +1 -1
  78. package/dist/src/agent/tools/image-generate-tool.js +1 -1
  79. package/dist/src/agent/tools/send-media.js +1 -1
  80. package/dist/src/agent/tools/skill-manage-tool.js +1 -1
  81. package/dist/src/agent/tools/write.js +1 -1
  82. package/dist/src/auth/credentials.js +3 -3
  83. package/dist/src/auth/profiles/store.js +1 -1
  84. package/dist/src/auth/sync-provider-auth.js +1 -1
  85. package/dist/src/channels/attachments/inbound-persist.js +1 -1
  86. package/dist/src/channels/attachments/outbound-tts-persist.js +1 -1
  87. package/dist/src/channels/outbound/persist-store.js +1 -1
  88. package/dist/src/channels/pairing/allow-from-file.js +1 -1
  89. package/dist/src/channels/pairing/pairing-store.js +2 -2
  90. package/dist/src/chat-commands/builtins/config.js +2 -2
  91. package/dist/src/chat-commands/context.js +1 -1
  92. package/dist/src/cli/commands/agent.js +1 -1
  93. package/dist/src/cli/commands/agents.js +1 -1
  94. package/dist/src/cli/commands/config.js +1 -1
  95. package/dist/src/cli/commands/doctor/checks/config-health.js +1 -1
  96. package/dist/src/cli/commands/doctor/checks/provider-auth.js +1 -1
  97. package/dist/src/cli/commands/doctor/checks/session-integrity.js +1 -1
  98. package/dist/src/cli/commands/doctor/checks/state-integrity.js +1 -1
  99. package/dist/src/cli/commands/doctor/checks/workspace-status.js +1 -1
  100. package/dist/src/cli/commands/extension-dev.js +1 -1
  101. package/dist/src/cli/commands/extension-dev.js.map +1 -1
  102. package/dist/src/cli/commands/extension-marketplace.js +1 -1
  103. package/dist/src/cli/commands/extension-pack.js +1 -1
  104. package/dist/src/cli/commands/image.js +1 -1
  105. package/dist/src/cli/commands/init.js +4 -4
  106. package/dist/src/cli/utils/init-workspace.js +2 -2
  107. package/dist/src/config/index.js +2 -2
  108. package/dist/src/config/loader.js +2 -2
  109. package/dist/src/config/models-json.js +2 -2
  110. package/dist/src/config/profile.js +2 -2
  111. package/dist/src/cron/executor.js +2 -2
  112. package/dist/src/cron/persistence.js +1 -1
  113. package/dist/src/cron/run-log-store.js +1 -1
  114. package/dist/src/daemon/launchd.js +2 -2
  115. package/dist/src/daemon/systemd.js +2 -2
  116. package/dist/src/extensions/health.js +1 -1
  117. package/dist/src/extensions/loader.js +1 -1
  118. package/dist/src/extensions/lockfile.js +2 -2
  119. package/dist/src/gateway/agents-admin.js +2 -2
  120. package/dist/src/gateway/hono/lib/extension-store.js +1 -1
  121. package/dist/src/gateway/hono/lib/static-ui.js +1 -1
  122. package/dist/src/gateway/hono/oauth.js +1 -1
  123. package/dist/src/gateway/hono/routes/auth-registry-extensions.js +1 -1
  124. package/dist/src/gateway/hono/routes/config.js +1 -1
  125. package/dist/src/gateway/hono/routes/dreaming.js +1 -1
  126. package/dist/src/gateway/hono/routes/host-fs.js +1 -1
  127. package/dist/src/gateway/hono/routes/models.js +1 -1
  128. package/dist/src/gateway/hono/routes/workspace.js +3 -3
  129. package/dist/src/gateway/hono/sse.js +2 -2
  130. package/dist/src/gateway/lock.js +2 -2
  131. package/dist/src/gateway/service/run-gateway-agent.js +2 -2
  132. package/dist/src/gateway/service.js +5 -5
  133. package/dist/src/gateway/workspace-fs-file-list.js +1 -1
  134. package/dist/src/gateway/workspace-heartbeat-path.js +1 -1
  135. package/dist/src/infra/update-check.js +1 -1
  136. package/dist/src/infra/update-lock.js +3 -3
  137. package/dist/src/infra/update-runner.js +1 -1
  138. package/dist/src/infra/update-startup.js +2 -2
  139. package/dist/src/infra/write-file-atomic.js +2 -2
  140. package/dist/src/providers/auth-runtime/auth-profile-store.js +1 -1
  141. package/dist/src/providers/index.js +2 -2
  142. package/dist/src/providers/model-registry.js +1 -1
  143. package/dist/src/session/config-store.js +2 -2
  144. package/dist/src/session/search-index-cache.js +1 -1
  145. package/dist/src/session/search-index.js +1 -1
  146. package/dist/src/session/session-title.js +1 -1
  147. package/dist/src/session/store.js +5 -5
  148. package/dist/src/tui/backends/embedded-backend.js +1 -1
  149. package/dist/src/tui/tui.js +1 -1
  150. package/dist/src/utils/logger/audit.js +1 -1
  151. package/dist/src/utils/logger/log-store.js +1 -1
  152. package/dist/src/utils/logger/rotation.js +1 -1
  153. package/dist/src/voice/tts/audio.js +1 -1
  154. package/dist/src/voice/tts/providers/edge-speech.js +1 -1
  155. 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,At as i,Dr as a,Dt as o,En as s,Et as c,Fn as l,Ln as u,Lr as d,Mt as f,On as p,Sn as m,Ti as ee,Tn as h,Tt as g,Wr as _,X as te,Y as v,Yn as ne,Z as y,Zr as b,_n as re,f as x,fr as S,gn as C,jn as w,jr as T,jt as E,kt as D,m as O,p as ie,qr as ae,ri as oe,ur as se,w as ce,wt as le,xn as ue,yt as de}from"./index-DLfAjBJz.js";import{C as fe,S as k,_ as A,a as pe,b as j,c as me,d as he,f as ge,g as _e,h as ve,i as M,l as ye,m as be,n as xe,o as Se,p as Ce,r as we,s as Te,t as Ee,u as De,v as Oe,x as ke,y as N}from"./cron-api-BqeNAeYQ.js";import{a as Ae,i as P,n as F,r as je,t as Me}from"./dist-zlgGKakL.js";var I=e(t(),1),L=n();function Ne({open:e,onOpenChange:t,action:n,c:r,onDismiss:a,onConfirm:s}){return(0,L.jsx)(E,{open:e,onOpenChange:t,children:(0,L.jsxs)(i,{children:[(0,L.jsx)(D,{className:`xopc-dialog-overlay fixed inset-0 z-[70] bg-scrim`}),(0,L.jsx)(`div`,{className:`fixed inset-0 z-[70] flex items-center justify-center p-4 pointer-events-none`,children:(0,L.jsxs)(o,{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,L.jsx)(f,{className:`text-base font-semibold text-fg`,children:n===`delete`?r.delete:r.runNow}),(0,L.jsx)(`p`,{className:`mt-2 text-sm text-fg-muted`,children:n===`delete`?r.confirmDelete:r.confirmRun}),(0,L.jsxs)(`div`,{className:`mt-4 flex justify-end gap-2`,children:[(0,L.jsx)(w,{type:`button`,variant:`secondary`,onClick:a,children:r.cancel}),(0,L.jsx)(w,{type:`button`,variant:`primary`,className:n===`delete`?`bg-red-600 hover:bg-red-700`:void 0,onClick:()=>void s(),children:n===`delete`?r.delete:r.runNow})]})]})})]})})}var Pe=`*/5 * * * *`,Fe=`xopc.recentWorkspaceDirs.v1`;function Ie(e){let t=new Date(e);return t.setHours(0,0,0,0),t}function Le(e){let t=Ie(e),n=t.getDay(),r=n===0?-6:1-n;return t.setDate(t.getDate()+r),t}function Re(e){return new Date(e.getFullYear(),e.getMonth(),1,0,0,0,0)}function R(e){let t=e?.trim();t&&window.dispatchEvent(new CustomEvent(`navigate-to-chat`,{detail:{sessionKey:t},bubbles:!0}))}function ze(e){let t=e.trim();if(t)try{let e=localStorage.getItem(Fe),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(Fe,JSON.stringify(r))}catch{}}function Be(e){return l(`w-full rounded-md border border-edge bg-surface-base px-3 py-2 text-sm text-fg placeholder:text-fg-disabled`,h,e&&`cursor-not-allowed opacity-60`)}function z(){return l(p,s)}var B=l(p,`w-full text-xs sm:w-auto sm:min-w-[11rem] sm:max-w-[17rem] sm:shrink-0`),V=l(p,`w-auto min-w-[9rem] max-w-[14rem] shrink-0 text-xs`);function Ve({open:e,onDismiss:t,detailJob:n,detailLoading:r,detailHistory:s,c:d,chatWorkingDirNotSet:p,statusLabels:m}){return(0,L.jsx)(E,{open:e,onOpenChange:e=>{e||t()},children:(0,L.jsxs)(i,{children:[(0,L.jsx)(D,{className:`xopc-dialog-overlay fixed inset-0 z-[60] bg-scrim`}),(0,L.jsxs)(o,{className:l(`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,L.jsxs)(`div`,{className:`flex shrink-0 items-center justify-between gap-2 border-b border-edge px-4 py-3`,children:[(0,L.jsx)(f,{className:`min-w-0 truncate text-base font-semibold text-fg`,children:n?.name?.trim()||n?.id||`—`}),(0,L.jsx)(c,{asChild:!0,children:(0,L.jsx)(w,{type:`button`,variant:`ghost`,className:`h-9 w-9 shrink-0 p-0`,"aria-label":d.close,children:(0,L.jsx)(u,{className:`size-5`,strokeWidth:1.75})})})]}),(0,L.jsx)(`div`,{className:`min-h-0 flex-1 overflow-y-auto px-4 py-3`,children:r?(0,L.jsx)(`div`,{className:`flex justify-center py-16`,children:(0,L.jsx)(a,{className:`size-8 animate-spin text-accent`,strokeWidth:1.75})}):n?(0,L.jsxs)(L.Fragment,{children:[(0,L.jsxs)(`dl`,{className:`space-y-3 text-sm`,children:[(0,L.jsxs)(`div`,{children:[(0,L.jsx)(`dt`,{className:`text-xs font-medium text-fg-muted`,children:d.scheduleLabel}),(0,L.jsx)(`dd`,{className:`mt-1 font-mono text-fg`,children:(0,L.jsx)(`code`,{children:n.schedule})})]}),(0,L.jsxs)(`div`,{children:[(0,L.jsx)(`dt`,{className:`text-xs font-medium text-fg-muted`,children:d.messageLabel}),(0,L.jsx)(`dd`,{className:`mt-1 min-w-0 break-words text-fg`,children:(0,L.jsx)(te,{content:xe(n),compact:!0,className:`text-sm`})})]}),(0,L.jsxs)(`div`,{children:[(0,L.jsx)(`dt`,{className:`text-xs font-medium text-fg-muted`,children:d.mode}),(0,L.jsx)(`dd`,{className:`mt-1 text-fg`,children:n.sessionTarget===`isolated`?d.modeAgentOption:d.modeDirectOption})]}),n.sessionTarget===`isolated`?(0,L.jsxs)(`div`,{children:[(0,L.jsx)(`dt`,{className:`text-xs font-medium text-fg-muted`,children:d.agentProfile}),(0,L.jsx)(`dd`,{className:`mt-1 font-mono text-sm text-fg`,children:n.agentId?.trim()?n.agentId.trim():d.agentProfileDefault})]}):null,n.sessionTarget===`isolated`?(0,L.jsxs)(`div`,{children:[(0,L.jsx)(`dt`,{className:`text-xs font-medium text-fg-muted`,children:d.workingDirectoryLabel}),(0,L.jsx)(`dd`,{className:`mt-1 break-all font-mono text-xs text-fg`,children:n.workingDirectory?.trim()?n.workingDirectory.trim():p})]}):null,n.delivery?.channel===`local`||n.sessionTarget===`isolated`&&!n.delivery?.to?(0,L.jsxs)(`div`,{children:[(0,L.jsx)(`dt`,{className:`text-xs font-medium text-fg-muted`,children:d.deliveryTarget}),(0,L.jsx)(`dd`,{className:`mt-1 text-fg`,children:n.delivery?.channel===`local`?d.deliveryTargetLocalChannel:d.deliveryLocalOnly})]}):n.delivery?.to?(0,L.jsxs)(`div`,{children:[(0,L.jsx)(`dt`,{className:`text-xs font-medium text-fg-muted`,children:d.deliveryTarget}),(0,L.jsxs)(`dd`,{className:`mt-1 break-words text-fg`,children:[(0,L.jsx)(`code`,{className:`text-xs`,children:n.delivery?.channel??``}),` → `,_e(n,d.channelLocal)]})]}):null,(0,L.jsxs)(`div`,{children:[(0,L.jsx)(`dt`,{className:`text-xs font-medium text-fg-muted`,children:d.status}),(0,L.jsx)(`dd`,{className:`mt-1 text-fg`,children:n.enabled?d.enabled:d.disabled})]}),(0,L.jsxs)(`div`,{children:[(0,L.jsx)(`dt`,{className:`text-xs font-medium text-fg-muted`,children:d.nextRun}),(0,L.jsx)(`dd`,{className:`mt-1 text-fg`,children:n.next_run?Oe(n.next_run,d.timeLabels):`—`})]})]}),(0,L.jsx)(`h3`,{className:`mt-6 text-sm font-semibold text-fg`,children:d.detailRunHistory}),s.length===0?(0,L.jsx)(`p`,{className:`mt-2 text-sm text-fg-muted`,children:d.noRunsYet}):(0,L.jsx)(`div`,{className:`mt-2 overflow-x-auto`,children:(0,L.jsxs)(`table`,{className:`w-full border-collapse text-left text-xs`,children:[(0,L.jsx)(`thead`,{children:(0,L.jsxs)(`tr`,{className:`border-b border-edge text-fg-muted`,children:[(0,L.jsx)(`th`,{className:`py-1.5 pr-2 font-medium`,children:d.colStarted}),(0,L.jsx)(`th`,{className:`py-1.5 pr-2 font-medium`,children:d.status}),(0,L.jsx)(`th`,{className:`py-1.5 pr-2 font-medium`,children:d.colDuration}),(0,L.jsx)(`th`,{className:`py-1.5 pr-2 font-medium`,children:d.colDetail}),(0,L.jsx)(`th`,{className:`py-1.5 font-medium`,children:d.colChat})]})}),(0,L.jsx)(`tbody`,{children:s.map(e=>(0,L.jsxs)(`tr`,{className:`border-b border-edge/60`,children:[(0,L.jsx)(`td`,{className:`whitespace-nowrap py-1.5 pr-2 text-fg`,children:(0,L.jsx)(`time`,{dateTime:e.startedAt,children:ke(e.startedAt)})}),(0,L.jsx)(`td`,{className:`py-1.5 pr-2`,children:(0,L.jsx)(`span`,{className:l(`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,m)})}),(0,L.jsx)(`td`,{className:`py-1.5 pr-2 text-fg-muted`,children:A(e.duration)}),(0,L.jsx)(`td`,{className:`max-w-[8rem] truncate py-1.5 pr-2 text-fg-muted`,title:e.summary||e.error||``,children:k(e.summary||e.error,120)}),(0,L.jsx)(`td`,{className:`whitespace-nowrap py-1.5`,children:e.sessionKey?.trim()?(0,L.jsx)(`button`,{type:`button`,className:`text-xs font-medium text-accent hover:underline`,title:d.openChatTitle,"aria-label":d.openChatTitle,onClick:()=>R(e.sessionKey),children:d.openChat}):(0,L.jsx)(`span`,{className:`text-fg-disabled`,children:`—`})})]},e.id))})]})})]}):null})]})]})})}var He=fe(),H=l(p,`min-w-0 shrink text-xs sm:min-w-[7rem] sm:max-w-[11rem]`),U=l(`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`,h,`dark:bg-surface-panel`),W=l(`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`,h),Ue=l(`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`,h),We=l(`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`,h);function Ge(){let e=new Date;return`${e.getFullYear()}-${String(e.getMonth()+1).padStart(2,`0`)}-${String(e.getDate()).padStart(2,`0`)}`}function G(e){return Array.isArray(e)?e.filter(e=>typeof e==`number`).sort((e,t)=>e-t):[]}function K(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 Ke(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 qe(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 q(e){let t=e.trim(),n={mode:`custom`,intervalKind:`minutes`,onceDate:Ge(),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=He.CronExpressionParser.parse(t).fields,r=G(e.minute.values),i=G(e.hour.values),a=G(e.dayOfMonth.values),o=G(e.month.values),s=G(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=K(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=K(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:qe(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 Je(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)} * * ${Ke(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 J({value:e,onChange:t,labels:n,disabled:r}){let i=(0,I.useMemo)(()=>q(e),[e]),[a,o]=(0,I.useState)(i.mode),[s,c]=(0,I.useState)(i.intervalKind),[u,d]=(0,I.useState)(i.onceDate),[f,p]=(0,I.useState)(i.intervalMinutes),[m,ee]=(0,I.useState)(i.intervalHours),[h,g]=(0,I.useState)(i.minute),[_,te]=(0,I.useState)(i.hour),[v,ne]=(0,I.useState)(i.weekDays),[y,b]=(0,I.useState)(i.dayOfMonth),[re,x]=(0,I.useState)(i.rawCron),[S,C]=(0,I.useState)(null),[w,T]=(0,I.useState)(null);(0,I.useEffect)(()=>{let t=q(e);o(t.mode),c(t.intervalKind),d(t.onceDate),p(t.intervalMinutes),ee(t.intervalHours),g(t.minute),te(t.hour),ne(t.weekDays),b(t.dayOfMonth),x(t.rawCron),C(null),T(null)},[e]);let E=(0,I.useCallback)(e=>{t(Je({mode:a,intervalKind:s,onceDate:u,intervalMinutes:f,intervalHours:m,minute:h,hour:_,weekDays:v,dayOfMonth:y,rawCron:re,...e}))},[a,s,u,f,m,h,_,v,y,re,t]),D=`${String(_).padStart(2,`0`)}:${String(h).padStart(2,`0`)}`,O=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)||E({minute:r,hour:n})},ie=(0,L.jsxs)(`div`,{className:`flex min-w-0 flex-nowrap items-center gap-2 overflow-x-auto pb-0.5`,children:[(0,L.jsxs)(`select`,{className:H,disabled:r,value:a,onChange:e=>{let t=e.target.value;o(t),E({mode:t})},"aria-label":n.scheduleTimeLabel,children:[(0,L.jsx)(`option`,{value:`no_repeat`,children:n.modeNoRepeat}),(0,L.jsx)(`option`,{value:`interval`,children:n.modeInterval}),(0,L.jsx)(`option`,{value:`hourly`,children:n.modeHourly}),(0,L.jsx)(`option`,{value:`daily`,children:n.modeDaily}),(0,L.jsx)(`option`,{value:`weekly`,children:n.modeWeekly}),(0,L.jsx)(`option`,{value:`monthly`,children:n.modeMonthly}),(0,L.jsx)(`option`,{value:`custom`,children:n.modeCustom})]}),a===`no_repeat`&&(0,L.jsxs)(L.Fragment,{children:[(0,L.jsx)(`input`,{type:`date`,disabled:r,className:W,value:u,onChange:e=>{let t=e.target.value;d(t),E({onceDate:t})},"aria-label":n.modeNoRepeat}),(0,L.jsx)(`input`,{type:`time`,step:60,disabled:r,className:U,value:D,onChange:O,"aria-label":n.scheduleTimeLabel})]}),a===`interval`&&(0,L.jsxs)(L.Fragment,{children:[(0,L.jsxs)(`select`,{className:l(H,`w-auto min-w-[5rem]`),disabled:r,value:s,onChange:e=>{let t=e.target.value;c(t),C(null),T(null),E({intervalKind:t})},"aria-label":n.modeInterval,children:[(0,L.jsx)(`option`,{value:`minutes`,children:n.intervalKindMinutes}),(0,L.jsx)(`option`,{value:`hours`,children:n.intervalKindHours})]}),s===`minutes`?(0,L.jsxs)(L.Fragment,{children:[(0,L.jsx)(`input`,{type:`number`,min:1,max:59,disabled:r,className:Ue,value:S??String(f),onChange:e=>{let t=e.target.value;C(t);let n=parseInt(t,10);Number.isFinite(n)&&n>=1&&n<=59&&(p(n),E({intervalMinutes:n}))},onBlur:()=>{if(S===null)return;let e=parseInt(S,10),t=!Number.isFinite(e)||e<1?5:Math.min(59,Math.max(1,Math.round(e)));p(t),E({intervalMinutes:t}),C(null)},"aria-label":n.intervalMinutes}),(0,L.jsx)(`span`,{className:`shrink-0 text-sm text-fg-muted`,children:n.minuteUnit})]}):(0,L.jsxs)(L.Fragment,{children:[(0,L.jsx)(`input`,{type:`number`,min:1,max:23,disabled:r,className:Ue,value:w??String(m),onChange:e=>{let t=e.target.value;T(t);let n=parseInt(t,10);Number.isFinite(n)&&n>=1&&n<=23&&(ee(n),E({intervalHours:n}))},onBlur:()=>{if(w===null)return;let e=parseInt(w,10),t=!Number.isFinite(e)||e<1?2:Math.min(23,Math.max(1,Math.round(e)));ee(t),E({intervalHours:t}),T(null)},"aria-label":n.intervalHours}),(0,L.jsx)(`span`,{className:`shrink-0 text-sm text-fg-muted`,children:n.hourUnit}),(0,L.jsx)(`select`,{className:l(H,`w-auto min-w-[4rem]`),disabled:r,value:h,onChange:e=>{let t=parseInt(e.target.value,10);g(t),E({minute:t})},"aria-label":n.minuteAtHour,children:Array.from({length:60},(e,t)=>(0,L.jsx)(`option`,{value:t,children:String(t).padStart(2,`0`)},t))}),(0,L.jsx)(`span`,{className:`shrink-0 text-sm text-fg-muted`,children:n.minuteUnit})]})]}),a===`daily`&&(0,L.jsx)(`input`,{type:`time`,step:60,disabled:r,className:U,value:D,onChange:O,"aria-label":n.scheduleTimeLabel}),a===`weekly`&&(0,L.jsx)(`input`,{type:`time`,step:60,disabled:r,className:U,value:D,onChange:O,"aria-label":n.scheduleTimeLabel}),a===`monthly`&&(0,L.jsxs)(L.Fragment,{children:[(0,L.jsx)(`select`,{className:l(H,`w-auto min-w-[4.5rem]`),disabled:r,value:y,onChange:e=>{let t=parseInt(e.target.value,10);b(t),E({dayOfMonth:t})},"aria-label":n.dayOfMonth,children:Array.from({length:31},(e,t)=>t+1).map(e=>(0,L.jsx)(`option`,{value:e,children:e},e))}),(0,L.jsx)(`input`,{type:`time`,step:60,disabled:r,className:U,value:D,onChange:O,"aria-label":n.scheduleTimeLabel})]}),a===`hourly`&&(0,L.jsxs)(L.Fragment,{children:[(0,L.jsx)(`select`,{className:l(H,`w-auto min-w-[4rem]`),disabled:r,value:h,onChange:e=>{let t=parseInt(e.target.value,10);g(t),E({minute:t})},"aria-label":n.minuteAtHour,children:Array.from({length:60},(e,t)=>(0,L.jsx)(`option`,{value:t,children:String(t).padStart(2,`0`)},t))}),(0,L.jsx)(`span`,{className:`shrink-0 text-sm text-fg-muted`,children:n.minuteUnit})]})]}),ae=a===`weekly`?(0,L.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=v[t];return(0,L.jsx)(`button`,{type:`button`,disabled:r,className:l(`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=[...v];e[t]=!e[t],ne(e),E({weekDays:e})},children:e},e)})}):null,oe=a===`custom`?(0,L.jsxs)(`div`,{className:`pt-1`,children:[(0,L.jsx)(`textarea`,{disabled:r,className:We,rows:2,spellCheck:!1,value:re,placeholder:`*/5 * * * *`,onChange:e=>{let n=e.target.value;x(n),t(n.trim()||`*/5 * * * *`)},"aria-label":n.modeCustom}),(0,L.jsx)(`p`,{className:`mt-1 text-xs text-fg-muted`,children:n.customCronHint})]}):null;return(0,L.jsxs)(`div`,{className:`flex flex-col gap-2`,children:[(0,L.jsx)(`span`,{className:`text-xs font-medium text-fg-muted`,children:n.scheduleTimeLabel}),ie,ae,oe]})}function Ye(e){let{open:t,onRequestClose:n,c:r,chatM:a,agentsMessages:s,isDark:d,channels:p,sessionChatIds:m,cronAgentSelectOptions:ee,hasElectronFolderPicker:h,openNativeFolderPicker:g,applyWorkingDirectory:b,wdModalOpen:re,onWdModalOpenChange:S,defaultModelResolver:C,formMode:T,formJobId:oe,formName:le,onFormNameChange:ue,formSchedule:de,onFormScheduleChange:fe,formSubmitting:k,formSessionTarget:A,onFormSessionTargetChange:pe,formAgentLocalOnly:j,onFormAgentLocalOnlyChange:me,formModel:he,onFormModelUserChange:ge,formAgentId:_e,onFormAgentIdChange:ve,formWorkingDirectory:M,onFormWorkingDirectoryChange:ye,formChannel:be,onFormChannelChange:xe,formChatId:Se,onFormChatIdChange:Ce,formMessage:we,onFormMessageChange:Te,formMessageMdMode:Ee,onSetMessageMdMode:De,messageEditorNonce:Oe,needsDeliveryChat:ke,showChannelPicker:Ae,canSubmit:P,onSubmit:F,onRefreshRecipients:je}=e;return(0,L.jsxs)(L.Fragment,{children:[(0,L.jsx)(E,{open:t,onOpenChange:e=>!e&&n(),children:(0,L.jsxs)(i,{children:[(0,L.jsx)(D,{className:`xopc-dialog-overlay fixed inset-0 z-[60] bg-scrim`}),(0,L.jsx)(`div`,{className:`fixed inset-0 z-[60] flex items-center justify-center p-4 pointer-events-none`,children:(0,L.jsxs)(o,{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,L.jsxs)(`div`,{className:`flex shrink-0 items-center justify-between gap-2 border-b border-edge px-4 py-3`,children:[(0,L.jsx)(f,{className:`text-base font-semibold text-fg`,children:T===`edit`?r.editJob:r.addJob}),(0,L.jsx)(c,{asChild:!0,children:(0,L.jsx)(w,{type:`button`,variant:`ghost`,className:`h-9 w-9 shrink-0 p-0`,"aria-label":r.close,children:(0,L.jsx)(u,{className:`size-5`,strokeWidth:1.75})})})]}),(0,L.jsx)(`div`,{className:`min-h-0 flex-1 overflow-y-auto px-4 py-3`,children:(0,L.jsxs)(`div`,{className:`flex flex-col gap-3`,children:[(0,L.jsxs)(`label`,{className:`flex flex-col gap-1`,children:[(0,L.jsx)(`span`,{className:`text-xs font-medium text-fg-muted`,children:r.name}),(0,L.jsx)(`input`,{type:`text`,className:Be(),value:le,onChange:e=>ue(e.target.value),placeholder:r.namePlaceholder})]}),(0,L.jsx)(J,{value:de,onChange:fe,disabled:k,labels:r.schedulePicker}),(0,L.jsxs)(`label`,{className:`flex flex-col gap-1`,children:[(0,L.jsx)(`span`,{className:`text-xs font-medium text-fg-muted`,children:r.mode}),(0,L.jsxs)(`select`,{className:z(),value:A,onChange:e=>{let t=e.target.value;pe(t,C,he.trim())},children:[(0,L.jsx)(`option`,{value:`main`,children:r.modeDirectOption}),(0,L.jsx)(`option`,{value:`isolated`,children:r.modeAgentOption})]}),(0,L.jsx)(`p`,{className:`text-xs text-fg-muted`,children:A===`main`?r.modeDirect:r.modeAgent})]}),A===`isolated`?(0,L.jsxs)(L.Fragment,{children:[(0,L.jsxs)(`div`,{className:`flex flex-col gap-1`,children:[(0,L.jsx)(`span`,{className:`text-xs font-medium text-fg-muted`,children:r.model}),(0,L.jsx)(O,{value:he,placeholder:a.modelPlaceholder,searchPlaceholder:a.modelSearchPlaceholder,noMatches:a.modelNoMatches,className:`w-full max-w-none min-w-0`,popoverContentClassName:`z-[70]`,onChange:ge})]}),(0,L.jsxs)(`label`,{className:`flex flex-col gap-1`,children:[(0,L.jsx)(`span`,{className:`text-xs font-medium text-fg-muted`,children:r.agentProfile}),(0,L.jsxs)(`select`,{className:z(),value:_e,disabled:k,onChange:e=>ve(e.target.value),children:[(0,L.jsx)(`option`,{value:``,children:r.agentProfileDefault}),ee.map(e=>(0,L.jsx)(`option`,{value:e.id,children:`${e.id} — ${ce(e,s)}`},e.id))]}),(0,L.jsx)(`p`,{className:`text-xs text-fg-muted`,children:r.agentProfileHint})]}),(0,L.jsxs)(`div`,{className:`flex flex-col gap-1`,children:[(0,L.jsx)(`span`,{className:`text-xs font-medium text-fg-muted`,children:r.workingDirectoryLabel}),(0,L.jsxs)(`div`,{className:`flex flex-wrap items-center gap-2`,children:[(0,L.jsxs)(`button`,{type:`button`,disabled:k,className:l(`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`,v.transition,v.focusRingPanel,`cursor-pointer hover:bg-surface-hover/70 dark:hover:bg-surface-hover/50`,k&&`cursor-not-allowed opacity-60`),title:M.trim()?`${M.trim()}\n${a.workingDirectory.chooseFolder}`:`${r.workingDirectoryHint}\n${a.workingDirectory.selectWorkingDirectory}`,onClick:e=>{e.stopPropagation(),!k&&(h?(async()=>{let e=await g();e&&b(e)})():S(!0))},children:[(0,L.jsx)(_,{className:`size-3.5 shrink-0 text-fg-muted`,"aria-hidden":!0}),(0,L.jsx)(`span`,{className:`min-w-0 truncate text-left font-medium text-fg`,children:M.trim()?x(M.trim()):a.workingDirectory.notSet})]}),M.trim()?(0,L.jsx)(`button`,{type:`button`,disabled:k,className:`text-xs font-medium text-accent hover:underline disabled:opacity-50`,onClick:()=>ye(``),children:r.workingDirectoryReset}):null]}),(0,L.jsx)(`p`,{className:`text-xs text-fg-muted`,children:r.workingDirectoryHint})]}),(0,L.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,L.jsx)(`input`,{type:`checkbox`,className:l(`ui-checkbox`,`mt-0.5`),checked:j,onChange:e=>me(e.target.checked)}),(0,L.jsxs)(`span`,{children:[(0,L.jsx)(`span`,{className:`text-sm font-medium text-fg`,children:r.agentLocalOnly}),(0,L.jsx)(`p`,{className:`mt-1 text-xs text-fg-muted`,children:r.agentLocalOnlyHint})]})]})]}):null,Ae?(0,L.jsxs)(L.Fragment,{children:[(0,L.jsxs)(`label`,{className:`flex flex-col gap-1`,children:[(0,L.jsx)(`span`,{className:`text-xs font-medium text-fg-muted`,children:r.channel}),(0,L.jsxs)(`select`,{className:z(),value:be,onChange:e=>{let t=e.target.value;xe(t)},children:[(0,L.jsx)(`option`,{value:`local`,children:r.channelLocal}),p.map(e=>(0,L.jsxs)(`option`,{value:e.name,disabled:!e.enabled,children:[e.name,` `,e.enabled?``:`(disabled)`]},e.name))]})]}),ke?(0,L.jsxs)(`div`,{className:`flex flex-col gap-1`,children:[(0,L.jsxs)(`div`,{className:`flex items-center justify-between gap-2`,children:[(0,L.jsx)(`span`,{className:`text-xs font-medium text-fg-muted`,children:r.recipient}),(0,L.jsxs)(w,{type:`button`,variant:`ghost`,className:`h-7 gap-1 px-2 text-xs`,title:r.refreshRecipientHint,onClick:()=>void je(),children:[(0,L.jsx)(se,{className:`size-3.5`,strokeWidth:1.75}),r.refreshList]})]}),(0,L.jsxs)(`div`,{className:`flex flex-col gap-2 sm:flex-row sm:items-stretch sm:gap-2`,children:[(0,L.jsx)(`input`,{type:`text`,className:l(Be(),`min-w-0 w-full sm:flex-1`),value:Se,onChange:e=>Ce(e.target.value),placeholder:r.recipientPlaceholder}),(0,L.jsxs)(`select`,{className:B,value:Se,onChange:e=>{let t=e.target.value;t&&Ce(t)},children:[(0,L.jsx)(`option`,{value:``,children:r.selectRecipient}),m.length>0?m.map(e=>(0,L.jsx)(`option`,{value:e.chatId,children:N(e,r.lastActiveLabels)},`${e.channel}-${e.chatId}`)):(0,L.jsx)(`option`,{value:``,disabled:!0,children:r.noRecentChatsOption})]})]}),(0,L.jsx)(`p`,{className:`text-xs text-fg-muted`,children:m.length>0?r.enterManuallyOrSelect:r.noRecentChats})]}):null]}):null,(0,L.jsxs)(`div`,{className:`flex flex-col gap-1`,children:[(0,L.jsxs)(`div`,{className:`flex flex-wrap items-center justify-between gap-2`,children:[(0,L.jsx)(`span`,{className:`text-xs font-medium text-fg-muted`,children:r.message}),(0,L.jsxs)(`div`,{className:`inline-flex rounded-lg border border-edge bg-surface-base p-0.5 dark:border-edge`,children:[(0,L.jsxs)(`button`,{type:`button`,className:l(`inline-flex items-center gap-1.5 rounded-md px-2.5 py-1.5 text-xs font-medium`,Ee===`edit`?`bg-accent-soft text-accent-fg`:`text-fg-muted hover:bg-surface-hover`),onClick:()=>De(`edit`),children:[(0,L.jsx)(ne,{className:`size-3.5 shrink-0`,strokeWidth:1.75,"aria-hidden":!0}),r.messageEdit]}),(0,L.jsxs)(`button`,{type:`button`,className:l(`inline-flex items-center gap-1.5 rounded-md px-2.5 py-1.5 text-xs font-medium`,Ee===`preview`?`bg-accent-soft text-accent-fg`:`text-fg-muted hover:bg-surface-hover`),onClick:()=>De(`preview`),children:[(0,L.jsx)(ae,{className:`size-3.5 shrink-0`,strokeWidth:1.75,"aria-hidden":!0}),r.messagePreview]})]})]}),(0,L.jsx)(`div`,{className:l(`overflow-hidden rounded-md border border-edge bg-surface-base dark:border-edge`,k&&`pointer-events-none opacity-60`),children:Ee===`edit`?(0,L.jsx)(y,{initialContent:we,onChange:Te,isDark:d,className:`h-[min(18rem,40vh)] min-h-[12rem]`},`cron-msg-${oe??`new`}-${Oe}`):(0,L.jsx)(`div`,{className:`h-[min(18rem,40vh)] min-h-[12rem] max-h-[min(24rem,50vh)] overflow-y-auto px-3 py-2`,children:we.trim()?(0,L.jsx)(te,{content:we,compact:!0,className:`text-sm`}):(0,L.jsx)(`p`,{className:`text-sm text-fg-muted`,children:r.messagePlaceholder})})}),(0,L.jsx)(`p`,{className:`text-xs text-fg-muted`,children:r.messageMarkdownHint})]})]})}),(0,L.jsxs)(`div`,{className:`flex shrink-0 justify-end gap-2 border-t border-edge px-4 py-3`,children:[(0,L.jsx)(w,{type:`button`,variant:`secondary`,onClick:n,children:r.cancel}),(0,L.jsx)(w,{type:`button`,variant:`primary`,disabled:k||!P,onClick:F,children:k?r.loading:T===`edit`?r.save:r.create})]})]})})]})}),h?null:(0,L.jsx)(ie,{open:re,onOpenChange:S,initialAbsolutePath:M.trim()||void 0,onConfirm:async e=>{await b(e),S(!1)},wd:a.workingDirectory})]})}function Xe({c:e,mainTab:t,onMainTabChange:n,jobSort:r,onJobSortChange:i,historyRange:a,onHistoryRangeChange:o,historyJobFilter:s,onHistoryJobFilterChange:c,historyStatusFilter:u,onHistoryStatusFilterChange:d,jobs:f}){return(0,L.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,L.jsxs)(`div`,{className:`flex gap-1`,role:`tablist`,"aria-label":e.title,children:[(0,L.jsx)(`button`,{type:`button`,role:`tab`,"aria-selected":t===`tasks`,className:l(`rounded-md px-3 py-2 text-sm font-medium transition-colors`,t===`tasks`?`text-fg`:`text-fg-muted hover:text-fg`),onClick:()=>n(`tasks`),children:e.tabMyTasks}),(0,L.jsx)(`button`,{type:`button`,role:`tab`,"aria-selected":t===`history`,className:l(`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,L.jsx)(`div`,{className:l(`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===`tasks`?(0,L.jsxs)(`select`,{className:V,value:r,onChange:e=>i(e.target.value),"aria-label":e.sortCreatedDesc,children:[(0,L.jsx)(`option`,{value:`created_desc`,children:e.sortCreatedDesc}),(0,L.jsx)(`option`,{value:`created_asc`,children:e.sortCreatedAsc})]}):(0,L.jsxs)(L.Fragment,{children:[(0,L.jsx)(`div`,{className:l(g,`shrink-0`),role:`group`,"aria-label":e.runHistoryTitle,children:[`day`,`week`,`month`].map(t=>(0,L.jsx)(`button`,{type:`button`,className:l(le,`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,L.jsxs)(`select`,{className:V,value:s,onChange:e=>c(e.target.value),"aria-label":e.filterAllTasks,children:[(0,L.jsx)(`option`,{value:``,children:e.filterAllTasks}),f.map(e=>(0,L.jsx)(`option`,{value:e.id,children:e.name||e.id},e.id))]}),(0,L.jsxs)(`select`,{className:V,value:u,onChange:e=>d(e.target.value),"aria-label":e.filterAllStatuses,children:[(0,L.jsx)(`option`,{value:``,children:e.filterAllStatuses}),(0,L.jsx)(`option`,{value:`success`,children:e.execStatusSuccess}),(0,L.jsx)(`option`,{value:`failed`,children:e.execStatusFailed}),(0,L.jsx)(`option`,{value:`cancelled`,children:e.execStatusCancelled}),(0,L.jsx)(`option`,{value:`running`,children:e.execStatusRunning})]})]})})]})}function Ze({c:e,loading:t,runHistoryLoading:n,onRefresh:r,onOpenTemplatePicker:i,onAddJob:a}){let o=t||n;return(0,L.jsxs)(`div`,{className:`flex min-w-0 flex-1 flex-wrap items-center justify-end gap-2`,children:[(0,L.jsx)(w,{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,L.jsx)(se,{className:l(`size-4`,o&&`animate-spin`),strokeWidth:1.75})}),(0,L.jsxs)(w,{type:`button`,variant:`secondary`,className:`gap-2`,onClick:i,children:[(0,L.jsx)(T,{className:`size-4`,strokeWidth:1.75}),e.fromTemplate]}),(0,L.jsxs)(w,{type:`button`,variant:`primary`,className:`gap-2`,onClick:a,children:[(0,L.jsx)(S,{className:`size-4`,strokeWidth:1.75}),e.addJob]})]})}function Qe({c:e,runHistoryLoading:t,runHistory:n,filteredRunHistory:r,jobs:i,onRefreshHistory:o,onOpenJobDetail:s,statusLabels:c}){return(0,L.jsxs)(`section`,{"aria-labelledby":`cron-history-panel`,className:`flex flex-col gap-3`,children:[(0,L.jsxs)(`div`,{className:`flex items-start justify-between gap-2`,children:[(0,L.jsxs)(`div`,{children:[(0,L.jsx)(`h2`,{id:`cron-history-panel`,className:`sr-only`,children:e.tabRunHistory}),(0,L.jsx)(`p`,{className:`text-xs text-fg-muted`,children:e.runHistoryHint})]}),(0,L.jsx)(w,{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,L.jsx)(se,{className:l(`size-4`,t&&`animate-spin`),strokeWidth:1.75})})]}),t&&n.length===0?(0,L.jsx)(`div`,{className:`flex justify-center py-16`,children:(0,L.jsx)(a,{className:`size-8 animate-spin text-accent`,strokeWidth:1.75})}):r.length===0?(0,L.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,L.jsx)(oe,{className:`mb-4 size-14 text-fg-disabled`,strokeWidth:1.1,"aria-hidden":!0}),(0,L.jsx)(`h3`,{className:`text-base font-semibold text-fg`,children:n.length===0?e.emptyHistoryTitle:e.noRunsYet}),(0,L.jsx)(`p`,{className:`mt-2 max-w-sm text-sm text-fg-muted`,children:n.length===0?e.emptyHistoryHint:e.runHistoryHint})]}):(0,L.jsx)(`div`,{className:`overflow-x-auto rounded-xl border border-edge-subtle bg-surface-base dark:border-edge-subtle`,children:(0,L.jsxs)(`table`,{className:`w-full min-w-[700px] border-collapse text-left text-sm`,children:[(0,L.jsx)(`thead`,{children:(0,L.jsxs)(`tr`,{className:`border-b border-edge text-xs font-medium text-fg-muted`,children:[(0,L.jsx)(`th`,{className:`px-3 py-2.5 font-medium`,children:e.colStarted}),(0,L.jsx)(`th`,{className:`px-3 py-2.5 font-medium`,children:e.colJob}),(0,L.jsx)(`th`,{className:`px-3 py-2.5 font-medium`,children:e.status}),(0,L.jsx)(`th`,{className:`px-3 py-2.5 font-medium`,children:e.colDuration}),(0,L.jsx)(`th`,{className:`px-3 py-2.5 font-medium`,children:e.colDetail}),(0,L.jsx)(`th`,{className:`px-3 py-2.5 font-medium`,children:e.colChat})]})}),(0,L.jsx)(`tbody`,{children:r.map(t=>(0,L.jsxs)(`tr`,{className:`border-b border-edge/60 last:border-0`,children:[(0,L.jsx)(`td`,{className:`whitespace-nowrap px-3 py-2.5 text-fg`,children:(0,L.jsx)(`time`,{dateTime:t.startedAt,children:ke(t.startedAt)})}),(0,L.jsx)(`td`,{className:`max-w-[10rem] truncate px-3 py-2.5`,children:i.some(e=>e.id===t.jobId)?(0,L.jsx)(`button`,{type:`button`,className:`text-left text-accent hover:underline`,onClick:()=>{let e=i.find(e=>e.id===t.jobId);e&&s(e)},children:t.jobName||t.jobId}):(0,L.jsx)(`span`,{className:`text-fg-muted`,children:t.jobName||t.jobId})}),(0,L.jsx)(`td`,{className:`px-3 py-2.5`,children:(0,L.jsx)(`span`,{className:l(`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,L.jsx)(`td`,{className:`whitespace-nowrap px-3 py-2.5 text-fg-muted`,children:A(t.duration)}),(0,L.jsx)(`td`,{className:`max-w-xs truncate px-3 py-2.5 text-fg-muted`,title:t.summary||t.error||``,children:k(t.summary||t.error,96)}),(0,L.jsx)(`td`,{className:`whitespace-nowrap px-3 py-2.5`,children:t.sessionKey?.trim()?(0,L.jsx)(`button`,{type:`button`,className:`text-xs font-medium text-accent hover:underline`,title:e.openChatTitle,"aria-label":e.openChatTitle,onClick:()=>R(t.sessionKey),children:e.openChat}):(0,L.jsx)(`span`,{className:`text-fg-disabled`,children:`—`})})]},t.id))})]})})]})}function $e({job:e,c:t,localeTag:n,scheduleBadgeLabels:r,absorbCardClickJobIdRef:i,scheduleAbsorbNextMenuCardClick:a,onOpenDetail:o,onToggle:s,onEdit:c,onRunNow:u,onDelete:d}){return(0,L.jsxs)(`article`,{role:`button`,tabIndex:0,className:l(`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,L.jsxs)(`div`,{className:`flex items-start justify-between gap-2 px-4 pt-3`,children:[(0,L.jsx)(`button`,{type:`button`,role:`switch`,"aria-checked":e.enabled,className:l(`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,L.jsx)(`span`,{className:`size-4 rounded-full bg-surface-panel shadow-surface ring-1 ring-edge/40 dark:ring-edge/55`})}),(0,L.jsxs)(P,{children:[(0,L.jsx)(Ae,{asChild:!0,children:(0,L.jsx)(w,{type:`button`,variant:`ghost`,className:`h-8 w-8 shrink-0 p-0`,"aria-label":t.jobCardMenuAria,onClick:e=>e.stopPropagation(),children:(0,L.jsx)(b,{className:`size-4`,strokeWidth:1.75})})}),(0,L.jsx)(je,{children:(0,L.jsxs)(Me,{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,L.jsx)(F,{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,L.jsx)(F,{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),u(e)},children:t.runNow}),(0,L.jsx)(F,{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),d(e)},children:t.delete})]})})]})]}),(0,L.jsxs)(`div`,{className:`flex flex-1 flex-col gap-2 px-4 pb-3 pt-2`,children:[(0,L.jsx)(`h3`,{className:`line-clamp-2 font-semibold text-fg`,children:e.name||e.id}),(0,L.jsx)(`div`,{className:`max-h-[4.5rem] overflow-hidden text-sm text-fg-muted [&_.markdown-body]:text-sm [&_.markdown-body]:leading-snug`,title:xe(e),children:(0,L.jsx)(te,{content:xe(e),compact:!0})})]}),(0,L.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,L.jsx)(oe,{className:`size-3.5 shrink-0`,strokeWidth:1.75,"aria-hidden":!0}),(0,L.jsx)(`span`,{className:`min-w-0 truncate`,children:j(e,n,r)})]})]})}function et(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 Y=[`daily`,`monitoring`,`reports`,`automation`],tt=[{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 nt(e){return tt.find(t=>t.templateId===e)}function rt(e){let{cron:t,localeTag:n,scheduleBadgeLabels:r,categoryFilter:i,onCategoryFilterChange:a,onSelectTemplate:o}=e,s=i===`all`?[...tt]:tt.filter(e=>e.category===i);return(0,L.jsxs)(`div`,{className:`flex w-full flex-col gap-4`,children:[(0,L.jsxs)(`div`,{className:`flex flex-wrap gap-2`,role:`group`,"aria-label":t.fromTemplate,children:[(0,L.jsx)(w,{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}),Y.map(e=>(0,L.jsx)(w,{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,L.jsx)(`p`,{className:`text-center text-sm text-fg-muted`,children:t.templatesEmptyHint}):(0,L.jsx)(`div`,{className:`grid gap-3 sm:grid-cols-2`,children:s.map(e=>{let i=et(t,e.templateId);if(!i)return null;let a=j({schedule:e.defaultSchedule,timezone:void 0,next_run:void 0},n,r);return(0,L.jsxs)(`button`,{type:`button`,className:l(`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,L.jsx)(`span`,{className:`font-semibold text-fg`,children:i.title}),(0,L.jsx)(`span`,{className:`line-clamp-2 text-sm text-fg-muted`,children:i.description}),(0,L.jsx)(`span`,{className:`mt-1 flex items-center gap-1 text-xs text-fg-muted`,children:(0,L.jsx)(`span`,{className:`tabular-nums`,children:a})})]},e.templateId)})})]})}function it({c:e,localeTag:t,scheduleBadgeLabels:n,loading:r,jobsCount:i,sortedJobs:o,templateCategoryFilter:s,onTemplateCategoryFilterChange:c,onSelectTemplate:u,keepAwake:f,wakeSupported:p,onWakeUnsupportedClick:m,onKeepAwakeToggle:ee,absorbCardClickJobIdRef:h,scheduleAbsorbNextMenuCardClick:g,onOpenDetail:_,onToggle:te,onEdit:v,onAddJob:ne,onRunNow:y,onDelete:b}){return(0,L.jsxs)(`section`,{"aria-labelledby":`cron-tasks-panel`,className:`flex flex-col gap-4`,children:[(0,L.jsx)(`h2`,{id:`cron-tasks-panel`,className:`sr-only`,children:e.tabMyTasks}),(0,L.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,L.jsxs)(`div`,{className:`flex gap-3 text-sm text-fg`,children:[(0,L.jsx)(d,{className:`mt-0.5 size-4 shrink-0 text-accent`,strokeWidth:1.75,"aria-hidden":!0}),(0,L.jsx)(`p`,{className:`text-pretty text-fg-muted`,children:e.wakeBanner})]}),(0,L.jsxs)(`div`,{className:`flex shrink-0 items-center gap-2 sm:pl-4`,children:[(0,L.jsx)(`span`,{className:`text-sm text-fg`,children:e.keepAwake}),(0,L.jsx)(`button`,{type:`button`,role:`switch`,"aria-checked":f,disabled:!p,title:p?void 0:e.wakeLockUnavailable,className:l(`inline-flex h-6 w-10 shrink-0 items-center rounded-full border border-edge p-0.5 transition-colors`,f?`justify-end bg-accent`:`justify-start bg-surface-hover`,!p&&`cursor-not-allowed opacity-50`),onClick:()=>{p?ee():m()},children:(0,L.jsx)(`span`,{className:`size-4 rounded-full bg-surface-panel shadow-surface ring-1 ring-edge/40 dark:ring-edge/55`})})]})]}),r&&i===0?(0,L.jsx)(`div`,{className:`flex justify-center py-16`,"aria-busy":`true`,children:(0,L.jsx)(a,{className:`size-8 animate-spin text-accent`,strokeWidth:1.75})}):i===0?(0,L.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,L.jsx)(`div`,{className:`w-full max-w-3xl`,children:(0,L.jsx)(rt,{cron:e,localeTag:t,scheduleBadgeLabels:n,categoryFilter:s,onCategoryFilterChange:c,onSelectTemplate:u})}),(0,L.jsx)(`div`,{className:`flex justify-center`,children:(0,L.jsx)(w,{type:`button`,variant:`primary`,onClick:ne,children:e.emptyStateCta})})]}):(0,L.jsx)(`div`,{className:`grid gap-4 sm:grid-cols-2`,children:o.map(r=>(0,L.jsx)($e,{job:r,c:e,localeTag:t,scheduleBadgeLabels:n,absorbCardClickJobIdRef:h,scheduleAbsorbNextMenuCardClick:g,onOpenDetail:e=>void _(e),onToggle:(e,t)=>void te(e,t),onEdit:v,onRunNow:y,onDelete:b},r.id))})]})}function at({open:e,onOpenChange:t,c:n,localeTag:r,scheduleBadgeLabels:a,categoryFilter:s,onCategoryFilterChange:l,onSelectTemplate:d}){return(0,L.jsx)(E,{open:e,onOpenChange:t,children:(0,L.jsxs)(i,{children:[(0,L.jsx)(D,{className:`xopc-dialog-overlay fixed inset-0 z-[62] bg-scrim`}),(0,L.jsx)(`div`,{className:`fixed inset-0 z-[62] flex items-center justify-center p-4 pointer-events-none`,children:(0,L.jsxs)(o,{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,L.jsxs)(`div`,{className:`flex shrink-0 items-center justify-end border-b border-edge px-4 py-3`,children:[(0,L.jsx)(f,{className:`sr-only`,children:n.fromTemplate}),(0,L.jsx)(c,{asChild:!0,children:(0,L.jsx)(w,{type:`button`,variant:`ghost`,className:`h-9 w-9 shrink-0 p-0`,"aria-label":n.close,children:(0,L.jsx)(u,{className:`size-5`,strokeWidth:1.75})})})]}),(0,L.jsx)(`div`,{className:`min-h-0 flex-1 overflow-y-auto px-4 py-4`,children:(0,L.jsx)(rt,{cron:n,localeTag:r,scheduleBadgeLabels:a,categoryFilter:s,onCategoryFilterChange:l,onSelectTemplate:d})})]})})]})})}function ot(){let e=m(e=>e.language),t=r(e),n=t.cron,i=t.chat,a=!!re(e=>e.token),o=ue(e=>e.resolved)===`dark`,s=e===`zh`?`zh-CN`:`en-US`,[c,l]=(0,I.useState)([]),[u,d]=(0,I.useState)(`tasks`),[f,p]=(0,I.useState)(`created_desc`),[h,g]=(0,I.useState)(`day`),[_,te]=(0,I.useState)(``),[v,ne]=(0,I.useState)(``),[y,b]=(0,I.useState)(!1),x=(0,I.useRef)(null),S=(0,I.useRef)(y),w=typeof navigator<`u`&&`wakeLock`in navigator,[T,E]=(0,I.useState)([]),[D,O]=(0,I.useState)([]),[ie,ae]=(0,I.useState)(``),[oe,se]=(0,I.useState)([]),[ce,le]=(0,I.useState)([]),[fe,k]=(0,I.useState)(!1),[A,j]=(0,I.useState)(null),[_e,ve]=(0,I.useState)([]),[Oe,ke]=(0,I.useState)(!1),[N,Ae]=(0,I.useState)(!1),[P,F]=(0,I.useState)(`add`),[je,Me]=(0,I.useState)(null),[Fe,R]=(0,I.useState)(``),[Be,z]=(0,I.useState)(Pe),[B,V]=(0,I.useState)(`local`),[He,H]=(0,I.useState)(``),[U,W]=(0,I.useState)(``),[Ue,We]=(0,I.useState)(`edit`),[Ge,G]=(0,I.useState)(0),[K,Ke]=(0,I.useState)(`main`),[qe,q]=(0,I.useState)(``),[Je,J]=(0,I.useState)(!1),[$e,Y]=(0,I.useState)(``),[tt,rt]=(0,I.useState)(!1),[ot,X]=(0,I.useState)(``),[st,ct]=(0,I.useState)(!1),lt=(0,I.useRef)(!1),[ut,dt]=(0,I.useState)(!1),[ft,pt]=(0,I.useState)(null),[mt,ht]=(0,I.useState)([]),[gt,_t]=(0,I.useState)(!1),[vt,yt]=(0,I.useState)(!1),[bt,xt]=(0,I.useState)(null),[St,Ct]=(0,I.useState)(null),[wt,Tt]=(0,I.useState)(!1),[Et,Dt]=(0,I.useState)(`all`),Ot=(0,I.useRef)(null),kt=(0,I.useCallback)(e=>{Ot.current=e,window.setTimeout(()=>{Ot.current===e&&(Ot.current=null)},400)},[]),Z=(0,I.useCallback)(()=>ie||(D.length>0?D[0].id:``),[ie,D]),At=typeof window<`u`&&!!window.electronAPI?.file?.openDirectory,jt=(0,I.useCallback)(async()=>{let e=typeof window<`u`?window.electronAPI?.file?.openDirectory:void 0;return e?e():null},[]),Mt=(0,I.useCallback)(async e=>{let t=e.trim();t&&(ze(t),Y(t))},[]),Nt=(0,I.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]),Pt=B!==`local`&&(K===`main`||K===`isolated`&&!Je),Ft=K===`main`||K===`isolated`&&!Je,It=!!Fe.trim()&&!!Be.trim()&&!!U.trim()&&(!Pt||!!He.trim()),Lt=(0,I.useCallback)(async()=>{ke(!0);try{ve(await we(400))}catch{}finally{ke(!1)}},[]),Q=(0,I.useCallback)(async()=>{k(!0),j(null);try{l(await De())}catch(e){j(e instanceof Error?e.message:n.failedToLoadJobs)}finally{k(!1)}},[n.failedToLoadJobs]),$=(0,I.useCallback)(async()=>{try{let[e,t,n,r]=await Promise.all([M(),me(),pe(),de().catch(()=>null)]);E(e),O(t),ae(n.model||``),r&&le(r.items)}catch{}},[]);(0,I.useEffect)(()=>{a&&(Q(),$())},[a,Q,$]),(0,I.useEffect)(()=>{!a||u!==`history`||Lt()},[a,u,Lt]);let Rt=(0,I.useCallback)(async()=>{try{await x.current?.release()}catch{}x.current=null},[]),zt=(0,I.useCallback)(async()=>{if(w)try{let e=await navigator.wakeLock.request(`screen`);x.current=e,e.addEventListener(`release`,()=>{x.current=null})}catch{j(n.wakeLockUnavailable),b(!1)}},[n.wakeLockUnavailable,w]);S.current=y,(0,I.useEffect)(()=>{if(!y){Rt();return}zt();let e=()=>{document.visibilityState===`visible`&&S.current&&zt()};return document.addEventListener(`visibilitychange`,e),()=>{document.removeEventListener(`visibilitychange`,e),Rt()}},[y,zt,Rt]),(0,I.useEffect)(()=>{if(!N||P!==`add`||lt.current)return;let e=Z();e&&X(e)},[N,P,Z]),(0,I.useEffect)(()=>{!N||P!==`add`||new Set([`local`,...T.map(e=>e.name)]).has(B)||V(`local`)},[T,B,P,N]),(0,I.useEffect)(()=>{if(B===`local`){se([]);return}let e=!1;return ye(B).then(t=>{e||se(t)}),()=>{e=!0}},[B,N]);let Bt=(0,I.useCallback)(e=>{if(lt.current=!1,Ae(!0),F(e?`edit`:`add`),Me(e?.id??null),e){R(e.name||``),z(e.schedule&&String(e.schedule).trim()||`*/5 * * * *`);let t=xe(e);W(t??``),Ke(e.sessionTarget||`main`),q((e.sessionTarget||`main`)===`isolated`&&e.agentId?.trim()?e.agentId.trim().toLowerCase():``),Y((e.sessionTarget||`main`)===`isolated`&&e.workingDirectory?.trim()?e.workingDirectory.trim():``);let n=e.payload?.kind===`agentTurn`&&e.payload.model?.trim()?e.payload.model.trim():``;X(e.model?.trim()||n||Z());let r=e.delivery?.channel===`local`,i=(e.sessionTarget||`main`)===`isolated`&&!r&&(!e.delivery?.to||e.delivery.mode===`none`);if(J(i),r)V(`local`),H(``);else if(e.delivery&&e.delivery.mode!==`none`&&e.delivery.to)V(e.delivery.channel||`telegram`),H(e.delivery.to||``);else if(i)V(`telegram`),H(``);else{let e=t.split(`:`);e.length>=3&&[`telegram`,`cli`,`gateway`,`local`].includes(e[0])?(V(e[0]),H(e[1]),W(e.slice(2).join(`:`))):(V(`telegram`),H(``))}}else R(``),z(Pe),V(`local`),H(``),W(``),Ke(`main`),q(``),Y(``),J(!1),X(Z());We(`edit`),G(e=>e+1)},[Z]),Vt=(0,I.useCallback)(e=>{We(e),e===`edit`&&G(e=>e+1)},[]),Ht=(0,I.useCallback)(e=>{let n=nt(e),r=n?et(t.cron,e):void 0;!n||!r||(lt.current=!1,F(`add`),Me(null),R(r.title),z(n.defaultSchedule),W(r.prompt),Ke(n.defaultSessionTarget),V(`local`),H(``),J(!1),q(``),Y(``),X(Z()),We(`edit`),G(e=>e+1),Tt(!1),Ae(!0))},[Z,t.cron]),Ut=(0,I.useCallback)(()=>{Ae(!1),F(`add`),Me(null),R(``),z(Pe),V(`local`),H(``),W(``),Ke(`main`),q(``),Y(``),rt(!1),J(!1),X(``),We(`edit`),lt.current=!1},[]),Wt=async()=>{if(!Fe.trim()){j(n.nameRequired);return}if(!Be.trim()||!U.trim()){j(n.scheduleRequired);return}if(Pt&&!He.trim()){j(n.chatIdRequired);return}ct(!0),j(null);try{let e=U.trim(),t;t=K===`isolated`&&Je?{mode:`none`}:B===`local`?{mode:`direct`,channel:`local`}:{mode:`direct`,channel:B,to:He.trim()};let n=K===`isolated`?{kind:`agentTurn`,message:e,...ot.trim()?{model:ot.trim()}:{}}:{kind:`systemEvent`,text:e},r=ot.trim(),i=qe.trim().toLowerCase(),a=K===`main`?null:i||null,o=$e.trim(),s={name:Fe.trim(),schedule:Be.trim(),sessionTarget:K,model:K===`isolated`&&r?r:void 0,delivery:t,payload:n,...P===`edit`?{agentId:a,workingDirectory:K===`isolated`&&o||null}:{...K===`isolated`&&i?{agentId:i}:{},...K===`isolated`&&o?{workingDirectory:o}:{}}};if(P===`edit`&&je)await be(je,s);else{let{schedule:e,agentId:t,workingDirectory:n,...r}=s;await Ee(e,{...r,...t==null?{}:{agentId:t},...n?{workingDirectory:n}:{}})}Ut(),await Q(),await $()}catch(e){j(e instanceof Error?e.message:P===`edit`?n.failedToUpdateJob:n.failedToCreateJob)}finally{ct(!1)}},Gt=async e=>{dt(!0),pt(e),_t(!0),ht([]);try{let t=await Te(e.id);t&&(pt(t),ht(await Se(e.id,20)))}catch{}finally{_t(!1)}},Kt=async(e,t)=>{try{await Ce(e.id,t),await Q(),await $()}catch(e){j(e instanceof Error?e.message:n.failedToToggleJob)}},qt=async()=>{if(!St||!bt)return;let e=St,t=bt;yt(!1),Ct(null),xt(null);try{t===`run`?await ge(e):(await he(e),ft?.id===e&&(dt(!1),pt(null))),await Q(),await $(),await Lt()}catch(e){j(e instanceof Error?e.message:n.actionFailed)}};(0,I.useEffect)(()=>{let e=e=>{e.key===`Escape`&&(N?Ut():ut&&(dt(!1),pt(null)))};return document.addEventListener(`keydown`,e),()=>document.removeEventListener(`keydown`,e)},[N,ut,Ut]);let Jt=(0,I.useMemo)(()=>({running:n.execStatusRunning,success:n.execStatusSuccess,failed:n.execStatusFailed,cancelled:n.execStatusCancelled}),[n.execStatusCancelled,n.execStatusFailed,n.execStatusRunning,n.execStatusSuccess]),Yt=(0,I.useMemo)(()=>{let e=[...c];return e.sort((e,t)=>{let n=new Date(e.created_at).getTime(),r=new Date(t.created_at).getTime();return f===`created_desc`?r-n:n-r}),e},[c,f]),Xt=(0,I.useMemo)(()=>{let e=new Date,t=h===`day`?Ie(e):h===`week`?Le(e):Re(e);return _e.filter(e=>!(new Date(e.startedAt)<t||_&&e.jobId!==_||v&&e.status!==v))},[_e,h,_,v]),Zt=n.scheduleBadge,Qt=(0,I.useCallback)(()=>{Q(),$(),Lt()},[Q,$,Lt]),$t=C(e=>e.setPageHeader),en=C(e=>e.clearPageHeader),{pathname:tn}=ee(),nn=tn.startsWith(`/settings/`),rn=(0,I.useCallback)((e,t,n)=>{Ke(e),e===`main`?(J(!1),q(``),Y(``)):e===`isolated`&&!n&&X(t())},[]),an=(0,I.useCallback)(()=>{ye(B).then(se)},[B]),on=(0,I.useMemo)(()=>(0,L.jsx)(Ze,{c:n,loading:fe,runHistoryLoading:Oe,onRefresh:Qt,onOpenTemplatePicker:()=>{Dt(`all`),Tt(!0)},onAddJob:()=>Bt()}),[n,fe,Bt,Qt,Oe]);return(0,I.useLayoutEffect)(()=>!a||nn?(en(),()=>en()):($t({startExtra:null,main:null,end:on}),()=>en()),[en,on,a,nn,$t]),a?(0,L.jsxs)(`div`,{className:`flex min-h-0 flex-1 flex-col overflow-y-auto bg-surface-panel`,children:[(0,L.jsxs)(`div`,{className:`mx-auto flex w-full max-w-app-main flex-col gap-6 px-4 py-6 sm:px-8`,children:[A?(0,L.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:A}):null,(0,L.jsx)(`header`,{className:`flex flex-col gap-4`,children:(0,L.jsxs)(`div`,{className:`min-w-0`,children:[(0,L.jsx)(`h1`,{className:`text-xl font-semibold tracking-tight text-fg`,children:n.title}),(0,L.jsx)(`p`,{className:`mt-1 max-w-2xl text-sm text-fg-muted`,children:n.subtitle})]})}),nn?(0,L.jsx)(`div`,{className:`flex flex-wrap items-center justify-end gap-2 border-b border-edge-subtle pb-3 dark:border-edge-subtle`,children:on}):null,(0,L.jsx)(Xe,{c:n,mainTab:u,onMainTabChange:d,jobSort:f,onJobSortChange:p,historyRange:h,onHistoryRangeChange:g,historyJobFilter:_,onHistoryJobFilterChange:te,historyStatusFilter:v,onHistoryStatusFilterChange:ne,jobs:c}),u===`tasks`?(0,L.jsx)(it,{c:n,localeTag:s,scheduleBadgeLabels:Zt,loading:fe,jobsCount:c.length,sortedJobs:Yt,templateCategoryFilter:Et,onTemplateCategoryFilterChange:Dt,onSelectTemplate:Ht,keepAwake:y,wakeSupported:w,onWakeUnsupportedClick:()=>j(n.wakeLockUnavailable),onKeepAwakeToggle:()=>b(e=>!e),absorbCardClickJobIdRef:Ot,scheduleAbsorbNextMenuCardClick:kt,onOpenDetail:e=>void Gt(e),onToggle:(e,t)=>void Kt(e,t),onEdit:e=>Bt(e),onAddJob:()=>Bt(),onRunNow:e=>{xt(`run`),Ct(e.id),yt(!0)},onDelete:e=>{xt(`delete`),Ct(e.id),yt(!0)}}):(0,L.jsx)(Qe,{c:n,runHistoryLoading:Oe,runHistory:_e,filteredRunHistory:Xt,jobs:c,onRefreshHistory:()=>void Lt(),onOpenJobDetail:e=>void Gt(e),statusLabels:Jt})]}),(0,L.jsx)(Ye,{open:N,onRequestClose:Ut,c:n,chatM:i,agentsMessages:t.agentsSettings,isDark:o,channels:T,sessionChatIds:oe,cronAgentSelectOptions:Nt,hasElectronFolderPicker:At,openNativeFolderPicker:jt,applyWorkingDirectory:Mt,wdModalOpen:tt,onWdModalOpenChange:rt,defaultModelResolver:Z,formMode:P,formJobId:je,formName:Fe,onFormNameChange:R,formSchedule:Be,onFormScheduleChange:z,formSubmitting:st,formSessionTarget:K,onFormSessionTargetChange:rn,formAgentLocalOnly:Je,onFormAgentLocalOnlyChange:J,formModel:ot,onFormModelUserChange:e=>{lt.current=!0,X(e)},formAgentId:qe,onFormAgentIdChange:q,formWorkingDirectory:$e,onFormWorkingDirectoryChange:Y,formChannel:B,onFormChannelChange:e=>{V(e),e===`local`&&J(!1),H(``)},formChatId:He,onFormChatIdChange:H,formMessage:U,onFormMessageChange:W,formMessageMdMode:Ue,onSetMessageMdMode:Vt,messageEditorNonce:Ge,needsDeliveryChat:Pt,showChannelPicker:Ft,canSubmit:It,onSubmit:()=>void Wt(),onRefreshRecipients:an}),(0,L.jsx)(at,{open:wt,onOpenChange:e=>{Tt(e),e&&Dt(`all`)},c:n,localeTag:s,scheduleBadgeLabels:Zt,categoryFilter:Et,onCategoryFilterChange:Dt,onSelectTemplate:Ht}),(0,L.jsx)(Ve,{open:ut,onDismiss:()=>{dt(!1),pt(null)},detailJob:ft,detailLoading:gt,detailHistory:mt,c:n,chatWorkingDirNotSet:i.workingDirectory.notSet,statusLabels:Jt}),(0,L.jsx)(Ne,{open:vt,onOpenChange:yt,action:bt,c:n,onDismiss:()=>{yt(!1),Ct(null),xt(null)},onConfirm:qt})]}):(0,L.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{ot as CronPage};
2
- //# sourceMappingURL=cron-page-ryZsTAOn.js.map
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,At as i,Dr as a,Dt as o,En as s,Et as c,Fn as l,Ln as u,Lr as d,Mt as f,On as p,Sn as m,Ti as ee,Tn as h,Tt as g,Wr as _,X as te,Y as v,Yn as ne,Z as y,Zr as b,_n as re,f as x,fr as S,gn as C,jn as w,jr as T,jt as E,kt as D,m as O,p as ie,qr as ae,ri as oe,ur as se,w as ce,wt as le,xn as ue,yt as de}from"./index-KxjI2fjF.js";import{C as fe,S as k,_ as A,a as pe,b as j,c as me,d as he,f as ge,g as _e,h as ve,i as M,l as ye,m as be,n as xe,o as Se,p as Ce,r as we,s as Te,t as Ee,u as De,v as Oe,x as ke,y as N}from"./cron-api-YLqLzMDN.js";import{a as Ae,i as P,n as F,r as je,t as Me}from"./dist-4ClCuR-G.js";var I=e(t(),1),L=n();function Ne({open:e,onOpenChange:t,action:n,c:r,onDismiss:a,onConfirm:s}){return(0,L.jsx)(E,{open:e,onOpenChange:t,children:(0,L.jsxs)(i,{children:[(0,L.jsx)(D,{className:`xopc-dialog-overlay fixed inset-0 z-[70] bg-scrim`}),(0,L.jsx)(`div`,{className:`fixed inset-0 z-[70] flex items-center justify-center p-4 pointer-events-none`,children:(0,L.jsxs)(o,{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,L.jsx)(f,{className:`text-base font-semibold text-fg`,children:n===`delete`?r.delete:r.runNow}),(0,L.jsx)(`p`,{className:`mt-2 text-sm text-fg-muted`,children:n===`delete`?r.confirmDelete:r.confirmRun}),(0,L.jsxs)(`div`,{className:`mt-4 flex justify-end gap-2`,children:[(0,L.jsx)(w,{type:`button`,variant:`secondary`,onClick:a,children:r.cancel}),(0,L.jsx)(w,{type:`button`,variant:`primary`,className:n===`delete`?`bg-red-600 hover:bg-red-700`:void 0,onClick:()=>void s(),children:n===`delete`?r.delete:r.runNow})]})]})})]})})}var Pe=`*/5 * * * *`,Fe=`xopc.recentWorkspaceDirs.v1`;function Ie(e){let t=new Date(e);return t.setHours(0,0,0,0),t}function Le(e){let t=Ie(e),n=t.getDay(),r=n===0?-6:1-n;return t.setDate(t.getDate()+r),t}function Re(e){return new Date(e.getFullYear(),e.getMonth(),1,0,0,0,0)}function R(e){let t=e?.trim();t&&window.dispatchEvent(new CustomEvent(`navigate-to-chat`,{detail:{sessionKey:t},bubbles:!0}))}function ze(e){let t=e.trim();if(t)try{let e=localStorage.getItem(Fe),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(Fe,JSON.stringify(r))}catch{}}function Be(e){return l(`w-full rounded-md border border-edge bg-surface-base px-3 py-2 text-sm text-fg placeholder:text-fg-disabled`,h,e&&`cursor-not-allowed opacity-60`)}function z(){return l(p,s)}var B=l(p,`w-full text-xs sm:w-auto sm:min-w-[11rem] sm:max-w-[17rem] sm:shrink-0`),V=l(p,`w-auto min-w-[9rem] max-w-[14rem] shrink-0 text-xs`);function Ve({open:e,onDismiss:t,detailJob:n,detailLoading:r,detailHistory:s,c:d,chatWorkingDirNotSet:p,statusLabels:m}){return(0,L.jsx)(E,{open:e,onOpenChange:e=>{e||t()},children:(0,L.jsxs)(i,{children:[(0,L.jsx)(D,{className:`xopc-dialog-overlay fixed inset-0 z-[60] bg-scrim`}),(0,L.jsxs)(o,{className:l(`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,L.jsxs)(`div`,{className:`flex shrink-0 items-center justify-between gap-2 border-b border-edge px-4 py-3`,children:[(0,L.jsx)(f,{className:`min-w-0 truncate text-base font-semibold text-fg`,children:n?.name?.trim()||n?.id||`—`}),(0,L.jsx)(c,{asChild:!0,children:(0,L.jsx)(w,{type:`button`,variant:`ghost`,className:`h-9 w-9 shrink-0 p-0`,"aria-label":d.close,children:(0,L.jsx)(u,{className:`size-5`,strokeWidth:1.75})})})]}),(0,L.jsx)(`div`,{className:`min-h-0 flex-1 overflow-y-auto px-4 py-3`,children:r?(0,L.jsx)(`div`,{className:`flex justify-center py-16`,children:(0,L.jsx)(a,{className:`size-8 animate-spin text-accent`,strokeWidth:1.75})}):n?(0,L.jsxs)(L.Fragment,{children:[(0,L.jsxs)(`dl`,{className:`space-y-3 text-sm`,children:[(0,L.jsxs)(`div`,{children:[(0,L.jsx)(`dt`,{className:`text-xs font-medium text-fg-muted`,children:d.scheduleLabel}),(0,L.jsx)(`dd`,{className:`mt-1 font-mono text-fg`,children:(0,L.jsx)(`code`,{children:n.schedule})})]}),(0,L.jsxs)(`div`,{children:[(0,L.jsx)(`dt`,{className:`text-xs font-medium text-fg-muted`,children:d.messageLabel}),(0,L.jsx)(`dd`,{className:`mt-1 min-w-0 break-words text-fg`,children:(0,L.jsx)(te,{content:xe(n),compact:!0,className:`text-sm`})})]}),(0,L.jsxs)(`div`,{children:[(0,L.jsx)(`dt`,{className:`text-xs font-medium text-fg-muted`,children:d.mode}),(0,L.jsx)(`dd`,{className:`mt-1 text-fg`,children:n.sessionTarget===`isolated`?d.modeAgentOption:d.modeDirectOption})]}),n.sessionTarget===`isolated`?(0,L.jsxs)(`div`,{children:[(0,L.jsx)(`dt`,{className:`text-xs font-medium text-fg-muted`,children:d.agentProfile}),(0,L.jsx)(`dd`,{className:`mt-1 font-mono text-sm text-fg`,children:n.agentId?.trim()?n.agentId.trim():d.agentProfileDefault})]}):null,n.sessionTarget===`isolated`?(0,L.jsxs)(`div`,{children:[(0,L.jsx)(`dt`,{className:`text-xs font-medium text-fg-muted`,children:d.workingDirectoryLabel}),(0,L.jsx)(`dd`,{className:`mt-1 break-all font-mono text-xs text-fg`,children:n.workingDirectory?.trim()?n.workingDirectory.trim():p})]}):null,n.delivery?.channel===`local`||n.sessionTarget===`isolated`&&!n.delivery?.to?(0,L.jsxs)(`div`,{children:[(0,L.jsx)(`dt`,{className:`text-xs font-medium text-fg-muted`,children:d.deliveryTarget}),(0,L.jsx)(`dd`,{className:`mt-1 text-fg`,children:n.delivery?.channel===`local`?d.deliveryTargetLocalChannel:d.deliveryLocalOnly})]}):n.delivery?.to?(0,L.jsxs)(`div`,{children:[(0,L.jsx)(`dt`,{className:`text-xs font-medium text-fg-muted`,children:d.deliveryTarget}),(0,L.jsxs)(`dd`,{className:`mt-1 break-words text-fg`,children:[(0,L.jsx)(`code`,{className:`text-xs`,children:n.delivery?.channel??``}),` → `,_e(n,d.channelLocal)]})]}):null,(0,L.jsxs)(`div`,{children:[(0,L.jsx)(`dt`,{className:`text-xs font-medium text-fg-muted`,children:d.status}),(0,L.jsx)(`dd`,{className:`mt-1 text-fg`,children:n.enabled?d.enabled:d.disabled})]}),(0,L.jsxs)(`div`,{children:[(0,L.jsx)(`dt`,{className:`text-xs font-medium text-fg-muted`,children:d.nextRun}),(0,L.jsx)(`dd`,{className:`mt-1 text-fg`,children:n.next_run?Oe(n.next_run,d.timeLabels):`—`})]})]}),(0,L.jsx)(`h3`,{className:`mt-6 text-sm font-semibold text-fg`,children:d.detailRunHistory}),s.length===0?(0,L.jsx)(`p`,{className:`mt-2 text-sm text-fg-muted`,children:d.noRunsYet}):(0,L.jsx)(`div`,{className:`mt-2 overflow-x-auto`,children:(0,L.jsxs)(`table`,{className:`w-full border-collapse text-left text-xs`,children:[(0,L.jsx)(`thead`,{children:(0,L.jsxs)(`tr`,{className:`border-b border-edge text-fg-muted`,children:[(0,L.jsx)(`th`,{className:`py-1.5 pr-2 font-medium`,children:d.colStarted}),(0,L.jsx)(`th`,{className:`py-1.5 pr-2 font-medium`,children:d.status}),(0,L.jsx)(`th`,{className:`py-1.5 pr-2 font-medium`,children:d.colDuration}),(0,L.jsx)(`th`,{className:`py-1.5 pr-2 font-medium`,children:d.colDetail}),(0,L.jsx)(`th`,{className:`py-1.5 font-medium`,children:d.colChat})]})}),(0,L.jsx)(`tbody`,{children:s.map(e=>(0,L.jsxs)(`tr`,{className:`border-b border-edge/60`,children:[(0,L.jsx)(`td`,{className:`whitespace-nowrap py-1.5 pr-2 text-fg`,children:(0,L.jsx)(`time`,{dateTime:e.startedAt,children:ke(e.startedAt)})}),(0,L.jsx)(`td`,{className:`py-1.5 pr-2`,children:(0,L.jsx)(`span`,{className:l(`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,m)})}),(0,L.jsx)(`td`,{className:`py-1.5 pr-2 text-fg-muted`,children:A(e.duration)}),(0,L.jsx)(`td`,{className:`max-w-[8rem] truncate py-1.5 pr-2 text-fg-muted`,title:e.summary||e.error||``,children:k(e.summary||e.error,120)}),(0,L.jsx)(`td`,{className:`whitespace-nowrap py-1.5`,children:e.sessionKey?.trim()?(0,L.jsx)(`button`,{type:`button`,className:`text-xs font-medium text-accent hover:underline`,title:d.openChatTitle,"aria-label":d.openChatTitle,onClick:()=>R(e.sessionKey),children:d.openChat}):(0,L.jsx)(`span`,{className:`text-fg-disabled`,children:`—`})})]},e.id))})]})})]}):null})]})]})})}var He=fe(),H=l(p,`min-w-0 shrink text-xs sm:min-w-[7rem] sm:max-w-[11rem]`),U=l(`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`,h,`dark:bg-surface-panel`),W=l(`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`,h),Ue=l(`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`,h),We=l(`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`,h);function Ge(){let e=new Date;return`${e.getFullYear()}-${String(e.getMonth()+1).padStart(2,`0`)}-${String(e.getDate()).padStart(2,`0`)}`}function G(e){return Array.isArray(e)?e.filter(e=>typeof e==`number`).sort((e,t)=>e-t):[]}function K(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 Ke(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 qe(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 q(e){let t=e.trim(),n={mode:`custom`,intervalKind:`minutes`,onceDate:Ge(),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=He.CronExpressionParser.parse(t).fields,r=G(e.minute.values),i=G(e.hour.values),a=G(e.dayOfMonth.values),o=G(e.month.values),s=G(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=K(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=K(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:qe(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 Je(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)} * * ${Ke(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 J({value:e,onChange:t,labels:n,disabled:r}){let i=(0,I.useMemo)(()=>q(e),[e]),[a,o]=(0,I.useState)(i.mode),[s,c]=(0,I.useState)(i.intervalKind),[u,d]=(0,I.useState)(i.onceDate),[f,p]=(0,I.useState)(i.intervalMinutes),[m,ee]=(0,I.useState)(i.intervalHours),[h,g]=(0,I.useState)(i.minute),[_,te]=(0,I.useState)(i.hour),[v,ne]=(0,I.useState)(i.weekDays),[y,b]=(0,I.useState)(i.dayOfMonth),[re,x]=(0,I.useState)(i.rawCron),[S,C]=(0,I.useState)(null),[w,T]=(0,I.useState)(null);(0,I.useEffect)(()=>{let t=q(e);o(t.mode),c(t.intervalKind),d(t.onceDate),p(t.intervalMinutes),ee(t.intervalHours),g(t.minute),te(t.hour),ne(t.weekDays),b(t.dayOfMonth),x(t.rawCron),C(null),T(null)},[e]);let E=(0,I.useCallback)(e=>{t(Je({mode:a,intervalKind:s,onceDate:u,intervalMinutes:f,intervalHours:m,minute:h,hour:_,weekDays:v,dayOfMonth:y,rawCron:re,...e}))},[a,s,u,f,m,h,_,v,y,re,t]),D=`${String(_).padStart(2,`0`)}:${String(h).padStart(2,`0`)}`,O=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)||E({minute:r,hour:n})},ie=(0,L.jsxs)(`div`,{className:`flex min-w-0 flex-nowrap items-center gap-2 overflow-x-auto pb-0.5`,children:[(0,L.jsxs)(`select`,{className:H,disabled:r,value:a,onChange:e=>{let t=e.target.value;o(t),E({mode:t})},"aria-label":n.scheduleTimeLabel,children:[(0,L.jsx)(`option`,{value:`no_repeat`,children:n.modeNoRepeat}),(0,L.jsx)(`option`,{value:`interval`,children:n.modeInterval}),(0,L.jsx)(`option`,{value:`hourly`,children:n.modeHourly}),(0,L.jsx)(`option`,{value:`daily`,children:n.modeDaily}),(0,L.jsx)(`option`,{value:`weekly`,children:n.modeWeekly}),(0,L.jsx)(`option`,{value:`monthly`,children:n.modeMonthly}),(0,L.jsx)(`option`,{value:`custom`,children:n.modeCustom})]}),a===`no_repeat`&&(0,L.jsxs)(L.Fragment,{children:[(0,L.jsx)(`input`,{type:`date`,disabled:r,className:W,value:u,onChange:e=>{let t=e.target.value;d(t),E({onceDate:t})},"aria-label":n.modeNoRepeat}),(0,L.jsx)(`input`,{type:`time`,step:60,disabled:r,className:U,value:D,onChange:O,"aria-label":n.scheduleTimeLabel})]}),a===`interval`&&(0,L.jsxs)(L.Fragment,{children:[(0,L.jsxs)(`select`,{className:l(H,`w-auto min-w-[5rem]`),disabled:r,value:s,onChange:e=>{let t=e.target.value;c(t),C(null),T(null),E({intervalKind:t})},"aria-label":n.modeInterval,children:[(0,L.jsx)(`option`,{value:`minutes`,children:n.intervalKindMinutes}),(0,L.jsx)(`option`,{value:`hours`,children:n.intervalKindHours})]}),s===`minutes`?(0,L.jsxs)(L.Fragment,{children:[(0,L.jsx)(`input`,{type:`number`,min:1,max:59,disabled:r,className:Ue,value:S??String(f),onChange:e=>{let t=e.target.value;C(t);let n=parseInt(t,10);Number.isFinite(n)&&n>=1&&n<=59&&(p(n),E({intervalMinutes:n}))},onBlur:()=>{if(S===null)return;let e=parseInt(S,10),t=!Number.isFinite(e)||e<1?5:Math.min(59,Math.max(1,Math.round(e)));p(t),E({intervalMinutes:t}),C(null)},"aria-label":n.intervalMinutes}),(0,L.jsx)(`span`,{className:`shrink-0 text-sm text-fg-muted`,children:n.minuteUnit})]}):(0,L.jsxs)(L.Fragment,{children:[(0,L.jsx)(`input`,{type:`number`,min:1,max:23,disabled:r,className:Ue,value:w??String(m),onChange:e=>{let t=e.target.value;T(t);let n=parseInt(t,10);Number.isFinite(n)&&n>=1&&n<=23&&(ee(n),E({intervalHours:n}))},onBlur:()=>{if(w===null)return;let e=parseInt(w,10),t=!Number.isFinite(e)||e<1?2:Math.min(23,Math.max(1,Math.round(e)));ee(t),E({intervalHours:t}),T(null)},"aria-label":n.intervalHours}),(0,L.jsx)(`span`,{className:`shrink-0 text-sm text-fg-muted`,children:n.hourUnit}),(0,L.jsx)(`select`,{className:l(H,`w-auto min-w-[4rem]`),disabled:r,value:h,onChange:e=>{let t=parseInt(e.target.value,10);g(t),E({minute:t})},"aria-label":n.minuteAtHour,children:Array.from({length:60},(e,t)=>(0,L.jsx)(`option`,{value:t,children:String(t).padStart(2,`0`)},t))}),(0,L.jsx)(`span`,{className:`shrink-0 text-sm text-fg-muted`,children:n.minuteUnit})]})]}),a===`daily`&&(0,L.jsx)(`input`,{type:`time`,step:60,disabled:r,className:U,value:D,onChange:O,"aria-label":n.scheduleTimeLabel}),a===`weekly`&&(0,L.jsx)(`input`,{type:`time`,step:60,disabled:r,className:U,value:D,onChange:O,"aria-label":n.scheduleTimeLabel}),a===`monthly`&&(0,L.jsxs)(L.Fragment,{children:[(0,L.jsx)(`select`,{className:l(H,`w-auto min-w-[4.5rem]`),disabled:r,value:y,onChange:e=>{let t=parseInt(e.target.value,10);b(t),E({dayOfMonth:t})},"aria-label":n.dayOfMonth,children:Array.from({length:31},(e,t)=>t+1).map(e=>(0,L.jsx)(`option`,{value:e,children:e},e))}),(0,L.jsx)(`input`,{type:`time`,step:60,disabled:r,className:U,value:D,onChange:O,"aria-label":n.scheduleTimeLabel})]}),a===`hourly`&&(0,L.jsxs)(L.Fragment,{children:[(0,L.jsx)(`select`,{className:l(H,`w-auto min-w-[4rem]`),disabled:r,value:h,onChange:e=>{let t=parseInt(e.target.value,10);g(t),E({minute:t})},"aria-label":n.minuteAtHour,children:Array.from({length:60},(e,t)=>(0,L.jsx)(`option`,{value:t,children:String(t).padStart(2,`0`)},t))}),(0,L.jsx)(`span`,{className:`shrink-0 text-sm text-fg-muted`,children:n.minuteUnit})]})]}),ae=a===`weekly`?(0,L.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=v[t];return(0,L.jsx)(`button`,{type:`button`,disabled:r,className:l(`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=[...v];e[t]=!e[t],ne(e),E({weekDays:e})},children:e},e)})}):null,oe=a===`custom`?(0,L.jsxs)(`div`,{className:`pt-1`,children:[(0,L.jsx)(`textarea`,{disabled:r,className:We,rows:2,spellCheck:!1,value:re,placeholder:`*/5 * * * *`,onChange:e=>{let n=e.target.value;x(n),t(n.trim()||`*/5 * * * *`)},"aria-label":n.modeCustom}),(0,L.jsx)(`p`,{className:`mt-1 text-xs text-fg-muted`,children:n.customCronHint})]}):null;return(0,L.jsxs)(`div`,{className:`flex flex-col gap-2`,children:[(0,L.jsx)(`span`,{className:`text-xs font-medium text-fg-muted`,children:n.scheduleTimeLabel}),ie,ae,oe]})}function Ye(e){let{open:t,onRequestClose:n,c:r,chatM:a,agentsMessages:s,isDark:d,channels:p,sessionChatIds:m,cronAgentSelectOptions:ee,hasElectronFolderPicker:h,openNativeFolderPicker:g,applyWorkingDirectory:b,wdModalOpen:re,onWdModalOpenChange:S,defaultModelResolver:C,formMode:T,formJobId:oe,formName:le,onFormNameChange:ue,formSchedule:de,onFormScheduleChange:fe,formSubmitting:k,formSessionTarget:A,onFormSessionTargetChange:pe,formAgentLocalOnly:j,onFormAgentLocalOnlyChange:me,formModel:he,onFormModelUserChange:ge,formAgentId:_e,onFormAgentIdChange:ve,formWorkingDirectory:M,onFormWorkingDirectoryChange:ye,formChannel:be,onFormChannelChange:xe,formChatId:Se,onFormChatIdChange:Ce,formMessage:we,onFormMessageChange:Te,formMessageMdMode:Ee,onSetMessageMdMode:De,messageEditorNonce:Oe,needsDeliveryChat:ke,showChannelPicker:Ae,canSubmit:P,onSubmit:F,onRefreshRecipients:je}=e;return(0,L.jsxs)(L.Fragment,{children:[(0,L.jsx)(E,{open:t,onOpenChange:e=>!e&&n(),children:(0,L.jsxs)(i,{children:[(0,L.jsx)(D,{className:`xopc-dialog-overlay fixed inset-0 z-[60] bg-scrim`}),(0,L.jsx)(`div`,{className:`fixed inset-0 z-[60] flex items-center justify-center p-4 pointer-events-none`,children:(0,L.jsxs)(o,{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,L.jsxs)(`div`,{className:`flex shrink-0 items-center justify-between gap-2 border-b border-edge px-4 py-3`,children:[(0,L.jsx)(f,{className:`text-base font-semibold text-fg`,children:T===`edit`?r.editJob:r.addJob}),(0,L.jsx)(c,{asChild:!0,children:(0,L.jsx)(w,{type:`button`,variant:`ghost`,className:`h-9 w-9 shrink-0 p-0`,"aria-label":r.close,children:(0,L.jsx)(u,{className:`size-5`,strokeWidth:1.75})})})]}),(0,L.jsx)(`div`,{className:`min-h-0 flex-1 overflow-y-auto px-4 py-3`,children:(0,L.jsxs)(`div`,{className:`flex flex-col gap-3`,children:[(0,L.jsxs)(`label`,{className:`flex flex-col gap-1`,children:[(0,L.jsx)(`span`,{className:`text-xs font-medium text-fg-muted`,children:r.name}),(0,L.jsx)(`input`,{type:`text`,className:Be(),value:le,onChange:e=>ue(e.target.value),placeholder:r.namePlaceholder})]}),(0,L.jsx)(J,{value:de,onChange:fe,disabled:k,labels:r.schedulePicker}),(0,L.jsxs)(`label`,{className:`flex flex-col gap-1`,children:[(0,L.jsx)(`span`,{className:`text-xs font-medium text-fg-muted`,children:r.mode}),(0,L.jsxs)(`select`,{className:z(),value:A,onChange:e=>{let t=e.target.value;pe(t,C,he.trim())},children:[(0,L.jsx)(`option`,{value:`main`,children:r.modeDirectOption}),(0,L.jsx)(`option`,{value:`isolated`,children:r.modeAgentOption})]}),(0,L.jsx)(`p`,{className:`text-xs text-fg-muted`,children:A===`main`?r.modeDirect:r.modeAgent})]}),A===`isolated`?(0,L.jsxs)(L.Fragment,{children:[(0,L.jsxs)(`div`,{className:`flex flex-col gap-1`,children:[(0,L.jsx)(`span`,{className:`text-xs font-medium text-fg-muted`,children:r.model}),(0,L.jsx)(O,{value:he,placeholder:a.modelPlaceholder,searchPlaceholder:a.modelSearchPlaceholder,noMatches:a.modelNoMatches,className:`w-full max-w-none min-w-0`,popoverContentClassName:`z-[70]`,onChange:ge})]}),(0,L.jsxs)(`label`,{className:`flex flex-col gap-1`,children:[(0,L.jsx)(`span`,{className:`text-xs font-medium text-fg-muted`,children:r.agentProfile}),(0,L.jsxs)(`select`,{className:z(),value:_e,disabled:k,onChange:e=>ve(e.target.value),children:[(0,L.jsx)(`option`,{value:``,children:r.agentProfileDefault}),ee.map(e=>(0,L.jsx)(`option`,{value:e.id,children:`${e.id} — ${ce(e,s)}`},e.id))]}),(0,L.jsx)(`p`,{className:`text-xs text-fg-muted`,children:r.agentProfileHint})]}),(0,L.jsxs)(`div`,{className:`flex flex-col gap-1`,children:[(0,L.jsx)(`span`,{className:`text-xs font-medium text-fg-muted`,children:r.workingDirectoryLabel}),(0,L.jsxs)(`div`,{className:`flex flex-wrap items-center gap-2`,children:[(0,L.jsxs)(`button`,{type:`button`,disabled:k,className:l(`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`,v.transition,v.focusRingPanel,`cursor-pointer hover:bg-surface-hover/70 dark:hover:bg-surface-hover/50`,k&&`cursor-not-allowed opacity-60`),title:M.trim()?`${M.trim()}\n${a.workingDirectory.chooseFolder}`:`${r.workingDirectoryHint}\n${a.workingDirectory.selectWorkingDirectory}`,onClick:e=>{e.stopPropagation(),!k&&(h?(async()=>{let e=await g();e&&b(e)})():S(!0))},children:[(0,L.jsx)(_,{className:`size-3.5 shrink-0 text-fg-muted`,"aria-hidden":!0}),(0,L.jsx)(`span`,{className:`min-w-0 truncate text-left font-medium text-fg`,children:M.trim()?x(M.trim()):a.workingDirectory.notSet})]}),M.trim()?(0,L.jsx)(`button`,{type:`button`,disabled:k,className:`text-xs font-medium text-accent hover:underline disabled:opacity-50`,onClick:()=>ye(``),children:r.workingDirectoryReset}):null]}),(0,L.jsx)(`p`,{className:`text-xs text-fg-muted`,children:r.workingDirectoryHint})]}),(0,L.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,L.jsx)(`input`,{type:`checkbox`,className:l(`ui-checkbox`,`mt-0.5`),checked:j,onChange:e=>me(e.target.checked)}),(0,L.jsxs)(`span`,{children:[(0,L.jsx)(`span`,{className:`text-sm font-medium text-fg`,children:r.agentLocalOnly}),(0,L.jsx)(`p`,{className:`mt-1 text-xs text-fg-muted`,children:r.agentLocalOnlyHint})]})]})]}):null,Ae?(0,L.jsxs)(L.Fragment,{children:[(0,L.jsxs)(`label`,{className:`flex flex-col gap-1`,children:[(0,L.jsx)(`span`,{className:`text-xs font-medium text-fg-muted`,children:r.channel}),(0,L.jsxs)(`select`,{className:z(),value:be,onChange:e=>{let t=e.target.value;xe(t)},children:[(0,L.jsx)(`option`,{value:`local`,children:r.channelLocal}),p.map(e=>(0,L.jsxs)(`option`,{value:e.name,disabled:!e.enabled,children:[e.name,` `,e.enabled?``:`(disabled)`]},e.name))]})]}),ke?(0,L.jsxs)(`div`,{className:`flex flex-col gap-1`,children:[(0,L.jsxs)(`div`,{className:`flex items-center justify-between gap-2`,children:[(0,L.jsx)(`span`,{className:`text-xs font-medium text-fg-muted`,children:r.recipient}),(0,L.jsxs)(w,{type:`button`,variant:`ghost`,className:`h-7 gap-1 px-2 text-xs`,title:r.refreshRecipientHint,onClick:()=>void je(),children:[(0,L.jsx)(se,{className:`size-3.5`,strokeWidth:1.75}),r.refreshList]})]}),(0,L.jsxs)(`div`,{className:`flex flex-col gap-2 sm:flex-row sm:items-stretch sm:gap-2`,children:[(0,L.jsx)(`input`,{type:`text`,className:l(Be(),`min-w-0 w-full sm:flex-1`),value:Se,onChange:e=>Ce(e.target.value),placeholder:r.recipientPlaceholder}),(0,L.jsxs)(`select`,{className:B,value:Se,onChange:e=>{let t=e.target.value;t&&Ce(t)},children:[(0,L.jsx)(`option`,{value:``,children:r.selectRecipient}),m.length>0?m.map(e=>(0,L.jsx)(`option`,{value:e.chatId,children:N(e,r.lastActiveLabels)},`${e.channel}-${e.chatId}`)):(0,L.jsx)(`option`,{value:``,disabled:!0,children:r.noRecentChatsOption})]})]}),(0,L.jsx)(`p`,{className:`text-xs text-fg-muted`,children:m.length>0?r.enterManuallyOrSelect:r.noRecentChats})]}):null]}):null,(0,L.jsxs)(`div`,{className:`flex flex-col gap-1`,children:[(0,L.jsxs)(`div`,{className:`flex flex-wrap items-center justify-between gap-2`,children:[(0,L.jsx)(`span`,{className:`text-xs font-medium text-fg-muted`,children:r.message}),(0,L.jsxs)(`div`,{className:`inline-flex rounded-lg border border-edge bg-surface-base p-0.5 dark:border-edge`,children:[(0,L.jsxs)(`button`,{type:`button`,className:l(`inline-flex items-center gap-1.5 rounded-md px-2.5 py-1.5 text-xs font-medium`,Ee===`edit`?`bg-accent-soft text-accent-fg`:`text-fg-muted hover:bg-surface-hover`),onClick:()=>De(`edit`),children:[(0,L.jsx)(ne,{className:`size-3.5 shrink-0`,strokeWidth:1.75,"aria-hidden":!0}),r.messageEdit]}),(0,L.jsxs)(`button`,{type:`button`,className:l(`inline-flex items-center gap-1.5 rounded-md px-2.5 py-1.5 text-xs font-medium`,Ee===`preview`?`bg-accent-soft text-accent-fg`:`text-fg-muted hover:bg-surface-hover`),onClick:()=>De(`preview`),children:[(0,L.jsx)(ae,{className:`size-3.5 shrink-0`,strokeWidth:1.75,"aria-hidden":!0}),r.messagePreview]})]})]}),(0,L.jsx)(`div`,{className:l(`overflow-hidden rounded-md border border-edge bg-surface-base dark:border-edge`,k&&`pointer-events-none opacity-60`),children:Ee===`edit`?(0,L.jsx)(y,{initialContent:we,onChange:Te,isDark:d,className:`h-[min(18rem,40vh)] min-h-[12rem]`},`cron-msg-${oe??`new`}-${Oe}`):(0,L.jsx)(`div`,{className:`h-[min(18rem,40vh)] min-h-[12rem] max-h-[min(24rem,50vh)] overflow-y-auto px-3 py-2`,children:we.trim()?(0,L.jsx)(te,{content:we,compact:!0,className:`text-sm`}):(0,L.jsx)(`p`,{className:`text-sm text-fg-muted`,children:r.messagePlaceholder})})}),(0,L.jsx)(`p`,{className:`text-xs text-fg-muted`,children:r.messageMarkdownHint})]})]})}),(0,L.jsxs)(`div`,{className:`flex shrink-0 justify-end gap-2 border-t border-edge px-4 py-3`,children:[(0,L.jsx)(w,{type:`button`,variant:`secondary`,onClick:n,children:r.cancel}),(0,L.jsx)(w,{type:`button`,variant:`primary`,disabled:k||!P,onClick:F,children:k?r.loading:T===`edit`?r.save:r.create})]})]})})]})}),h?null:(0,L.jsx)(ie,{open:re,onOpenChange:S,initialAbsolutePath:M.trim()||void 0,onConfirm:async e=>{await b(e),S(!1)},wd:a.workingDirectory})]})}function Xe({c:e,mainTab:t,onMainTabChange:n,jobSort:r,onJobSortChange:i,historyRange:a,onHistoryRangeChange:o,historyJobFilter:s,onHistoryJobFilterChange:c,historyStatusFilter:u,onHistoryStatusFilterChange:d,jobs:f}){return(0,L.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,L.jsxs)(`div`,{className:`flex gap-1`,role:`tablist`,"aria-label":e.title,children:[(0,L.jsx)(`button`,{type:`button`,role:`tab`,"aria-selected":t===`tasks`,className:l(`rounded-md px-3 py-2 text-sm font-medium transition-colors`,t===`tasks`?`text-fg`:`text-fg-muted hover:text-fg`),onClick:()=>n(`tasks`),children:e.tabMyTasks}),(0,L.jsx)(`button`,{type:`button`,role:`tab`,"aria-selected":t===`history`,className:l(`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,L.jsx)(`div`,{className:l(`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===`tasks`?(0,L.jsxs)(`select`,{className:V,value:r,onChange:e=>i(e.target.value),"aria-label":e.sortCreatedDesc,children:[(0,L.jsx)(`option`,{value:`created_desc`,children:e.sortCreatedDesc}),(0,L.jsx)(`option`,{value:`created_asc`,children:e.sortCreatedAsc})]}):(0,L.jsxs)(L.Fragment,{children:[(0,L.jsx)(`div`,{className:l(g,`shrink-0`),role:`group`,"aria-label":e.runHistoryTitle,children:[`day`,`week`,`month`].map(t=>(0,L.jsx)(`button`,{type:`button`,className:l(le,`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,L.jsxs)(`select`,{className:V,value:s,onChange:e=>c(e.target.value),"aria-label":e.filterAllTasks,children:[(0,L.jsx)(`option`,{value:``,children:e.filterAllTasks}),f.map(e=>(0,L.jsx)(`option`,{value:e.id,children:e.name||e.id},e.id))]}),(0,L.jsxs)(`select`,{className:V,value:u,onChange:e=>d(e.target.value),"aria-label":e.filterAllStatuses,children:[(0,L.jsx)(`option`,{value:``,children:e.filterAllStatuses}),(0,L.jsx)(`option`,{value:`success`,children:e.execStatusSuccess}),(0,L.jsx)(`option`,{value:`failed`,children:e.execStatusFailed}),(0,L.jsx)(`option`,{value:`cancelled`,children:e.execStatusCancelled}),(0,L.jsx)(`option`,{value:`running`,children:e.execStatusRunning})]})]})})]})}function Ze({c:e,loading:t,runHistoryLoading:n,onRefresh:r,onOpenTemplatePicker:i,onAddJob:a}){let o=t||n;return(0,L.jsxs)(`div`,{className:`flex min-w-0 flex-1 flex-wrap items-center justify-end gap-2`,children:[(0,L.jsx)(w,{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,L.jsx)(se,{className:l(`size-4`,o&&`animate-spin`),strokeWidth:1.75})}),(0,L.jsxs)(w,{type:`button`,variant:`secondary`,className:`gap-2`,onClick:i,children:[(0,L.jsx)(T,{className:`size-4`,strokeWidth:1.75}),e.fromTemplate]}),(0,L.jsxs)(w,{type:`button`,variant:`primary`,className:`gap-2`,onClick:a,children:[(0,L.jsx)(S,{className:`size-4`,strokeWidth:1.75}),e.addJob]})]})}function Qe({c:e,runHistoryLoading:t,runHistory:n,filteredRunHistory:r,jobs:i,onRefreshHistory:o,onOpenJobDetail:s,statusLabels:c}){return(0,L.jsxs)(`section`,{"aria-labelledby":`cron-history-panel`,className:`flex flex-col gap-3`,children:[(0,L.jsxs)(`div`,{className:`flex items-start justify-between gap-2`,children:[(0,L.jsxs)(`div`,{children:[(0,L.jsx)(`h2`,{id:`cron-history-panel`,className:`sr-only`,children:e.tabRunHistory}),(0,L.jsx)(`p`,{className:`text-xs text-fg-muted`,children:e.runHistoryHint})]}),(0,L.jsx)(w,{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,L.jsx)(se,{className:l(`size-4`,t&&`animate-spin`),strokeWidth:1.75})})]}),t&&n.length===0?(0,L.jsx)(`div`,{className:`flex justify-center py-16`,children:(0,L.jsx)(a,{className:`size-8 animate-spin text-accent`,strokeWidth:1.75})}):r.length===0?(0,L.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,L.jsx)(oe,{className:`mb-4 size-14 text-fg-disabled`,strokeWidth:1.1,"aria-hidden":!0}),(0,L.jsx)(`h3`,{className:`text-base font-semibold text-fg`,children:n.length===0?e.emptyHistoryTitle:e.noRunsYet}),(0,L.jsx)(`p`,{className:`mt-2 max-w-sm text-sm text-fg-muted`,children:n.length===0?e.emptyHistoryHint:e.runHistoryHint})]}):(0,L.jsx)(`div`,{className:`overflow-x-auto rounded-xl border border-edge-subtle bg-surface-base dark:border-edge-subtle`,children:(0,L.jsxs)(`table`,{className:`w-full min-w-[700px] border-collapse text-left text-sm`,children:[(0,L.jsx)(`thead`,{children:(0,L.jsxs)(`tr`,{className:`border-b border-edge text-xs font-medium text-fg-muted`,children:[(0,L.jsx)(`th`,{className:`px-3 py-2.5 font-medium`,children:e.colStarted}),(0,L.jsx)(`th`,{className:`px-3 py-2.5 font-medium`,children:e.colJob}),(0,L.jsx)(`th`,{className:`px-3 py-2.5 font-medium`,children:e.status}),(0,L.jsx)(`th`,{className:`px-3 py-2.5 font-medium`,children:e.colDuration}),(0,L.jsx)(`th`,{className:`px-3 py-2.5 font-medium`,children:e.colDetail}),(0,L.jsx)(`th`,{className:`px-3 py-2.5 font-medium`,children:e.colChat})]})}),(0,L.jsx)(`tbody`,{children:r.map(t=>(0,L.jsxs)(`tr`,{className:`border-b border-edge/60 last:border-0`,children:[(0,L.jsx)(`td`,{className:`whitespace-nowrap px-3 py-2.5 text-fg`,children:(0,L.jsx)(`time`,{dateTime:t.startedAt,children:ke(t.startedAt)})}),(0,L.jsx)(`td`,{className:`max-w-[10rem] truncate px-3 py-2.5`,children:i.some(e=>e.id===t.jobId)?(0,L.jsx)(`button`,{type:`button`,className:`text-left text-accent hover:underline`,onClick:()=>{let e=i.find(e=>e.id===t.jobId);e&&s(e)},children:t.jobName||t.jobId}):(0,L.jsx)(`span`,{className:`text-fg-muted`,children:t.jobName||t.jobId})}),(0,L.jsx)(`td`,{className:`px-3 py-2.5`,children:(0,L.jsx)(`span`,{className:l(`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,L.jsx)(`td`,{className:`whitespace-nowrap px-3 py-2.5 text-fg-muted`,children:A(t.duration)}),(0,L.jsx)(`td`,{className:`max-w-xs truncate px-3 py-2.5 text-fg-muted`,title:t.summary||t.error||``,children:k(t.summary||t.error,96)}),(0,L.jsx)(`td`,{className:`whitespace-nowrap px-3 py-2.5`,children:t.sessionKey?.trim()?(0,L.jsx)(`button`,{type:`button`,className:`text-xs font-medium text-accent hover:underline`,title:e.openChatTitle,"aria-label":e.openChatTitle,onClick:()=>R(t.sessionKey),children:e.openChat}):(0,L.jsx)(`span`,{className:`text-fg-disabled`,children:`—`})})]},t.id))})]})})]})}function $e({job:e,c:t,localeTag:n,scheduleBadgeLabels:r,absorbCardClickJobIdRef:i,scheduleAbsorbNextMenuCardClick:a,onOpenDetail:o,onToggle:s,onEdit:c,onRunNow:u,onDelete:d}){return(0,L.jsxs)(`article`,{role:`button`,tabIndex:0,className:l(`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,L.jsxs)(`div`,{className:`flex items-start justify-between gap-2 px-4 pt-3`,children:[(0,L.jsx)(`button`,{type:`button`,role:`switch`,"aria-checked":e.enabled,className:l(`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,L.jsx)(`span`,{className:`size-4 rounded-full bg-surface-panel shadow-surface ring-1 ring-edge/40 dark:ring-edge/55`})}),(0,L.jsxs)(P,{children:[(0,L.jsx)(Ae,{asChild:!0,children:(0,L.jsx)(w,{type:`button`,variant:`ghost`,className:`h-8 w-8 shrink-0 p-0`,"aria-label":t.jobCardMenuAria,onClick:e=>e.stopPropagation(),children:(0,L.jsx)(b,{className:`size-4`,strokeWidth:1.75})})}),(0,L.jsx)(je,{children:(0,L.jsxs)(Me,{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,L.jsx)(F,{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,L.jsx)(F,{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),u(e)},children:t.runNow}),(0,L.jsx)(F,{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),d(e)},children:t.delete})]})})]})]}),(0,L.jsxs)(`div`,{className:`flex flex-1 flex-col gap-2 px-4 pb-3 pt-2`,children:[(0,L.jsx)(`h3`,{className:`line-clamp-2 font-semibold text-fg`,children:e.name||e.id}),(0,L.jsx)(`div`,{className:`max-h-[4.5rem] overflow-hidden text-sm text-fg-muted [&_.markdown-body]:text-sm [&_.markdown-body]:leading-snug`,title:xe(e),children:(0,L.jsx)(te,{content:xe(e),compact:!0})})]}),(0,L.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,L.jsx)(oe,{className:`size-3.5 shrink-0`,strokeWidth:1.75,"aria-hidden":!0}),(0,L.jsx)(`span`,{className:`min-w-0 truncate`,children:j(e,n,r)})]})]})}function et(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 Y=[`daily`,`monitoring`,`reports`,`automation`],tt=[{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 nt(e){return tt.find(t=>t.templateId===e)}function rt(e){let{cron:t,localeTag:n,scheduleBadgeLabels:r,categoryFilter:i,onCategoryFilterChange:a,onSelectTemplate:o}=e,s=i===`all`?[...tt]:tt.filter(e=>e.category===i);return(0,L.jsxs)(`div`,{className:`flex w-full flex-col gap-4`,children:[(0,L.jsxs)(`div`,{className:`flex flex-wrap gap-2`,role:`group`,"aria-label":t.fromTemplate,children:[(0,L.jsx)(w,{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}),Y.map(e=>(0,L.jsx)(w,{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,L.jsx)(`p`,{className:`text-center text-sm text-fg-muted`,children:t.templatesEmptyHint}):(0,L.jsx)(`div`,{className:`grid gap-3 sm:grid-cols-2`,children:s.map(e=>{let i=et(t,e.templateId);if(!i)return null;let a=j({schedule:e.defaultSchedule,timezone:void 0,next_run:void 0},n,r);return(0,L.jsxs)(`button`,{type:`button`,className:l(`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,L.jsx)(`span`,{className:`font-semibold text-fg`,children:i.title}),(0,L.jsx)(`span`,{className:`line-clamp-2 text-sm text-fg-muted`,children:i.description}),(0,L.jsx)(`span`,{className:`mt-1 flex items-center gap-1 text-xs text-fg-muted`,children:(0,L.jsx)(`span`,{className:`tabular-nums`,children:a})})]},e.templateId)})})]})}function it({c:e,localeTag:t,scheduleBadgeLabels:n,loading:r,jobsCount:i,sortedJobs:o,templateCategoryFilter:s,onTemplateCategoryFilterChange:c,onSelectTemplate:u,keepAwake:f,wakeSupported:p,onWakeUnsupportedClick:m,onKeepAwakeToggle:ee,absorbCardClickJobIdRef:h,scheduleAbsorbNextMenuCardClick:g,onOpenDetail:_,onToggle:te,onEdit:v,onAddJob:ne,onRunNow:y,onDelete:b}){return(0,L.jsxs)(`section`,{"aria-labelledby":`cron-tasks-panel`,className:`flex flex-col gap-4`,children:[(0,L.jsx)(`h2`,{id:`cron-tasks-panel`,className:`sr-only`,children:e.tabMyTasks}),(0,L.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,L.jsxs)(`div`,{className:`flex gap-3 text-sm text-fg`,children:[(0,L.jsx)(d,{className:`mt-0.5 size-4 shrink-0 text-accent`,strokeWidth:1.75,"aria-hidden":!0}),(0,L.jsx)(`p`,{className:`text-pretty text-fg-muted`,children:e.wakeBanner})]}),(0,L.jsxs)(`div`,{className:`flex shrink-0 items-center gap-2 sm:pl-4`,children:[(0,L.jsx)(`span`,{className:`text-sm text-fg`,children:e.keepAwake}),(0,L.jsx)(`button`,{type:`button`,role:`switch`,"aria-checked":f,disabled:!p,title:p?void 0:e.wakeLockUnavailable,className:l(`inline-flex h-6 w-10 shrink-0 items-center rounded-full border border-edge p-0.5 transition-colors`,f?`justify-end bg-accent`:`justify-start bg-surface-hover`,!p&&`cursor-not-allowed opacity-50`),onClick:()=>{p?ee():m()},children:(0,L.jsx)(`span`,{className:`size-4 rounded-full bg-surface-panel shadow-surface ring-1 ring-edge/40 dark:ring-edge/55`})})]})]}),r&&i===0?(0,L.jsx)(`div`,{className:`flex justify-center py-16`,"aria-busy":`true`,children:(0,L.jsx)(a,{className:`size-8 animate-spin text-accent`,strokeWidth:1.75})}):i===0?(0,L.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,L.jsx)(`div`,{className:`w-full max-w-3xl`,children:(0,L.jsx)(rt,{cron:e,localeTag:t,scheduleBadgeLabels:n,categoryFilter:s,onCategoryFilterChange:c,onSelectTemplate:u})}),(0,L.jsx)(`div`,{className:`flex justify-center`,children:(0,L.jsx)(w,{type:`button`,variant:`primary`,onClick:ne,children:e.emptyStateCta})})]}):(0,L.jsx)(`div`,{className:`grid gap-4 sm:grid-cols-2`,children:o.map(r=>(0,L.jsx)($e,{job:r,c:e,localeTag:t,scheduleBadgeLabels:n,absorbCardClickJobIdRef:h,scheduleAbsorbNextMenuCardClick:g,onOpenDetail:e=>void _(e),onToggle:(e,t)=>void te(e,t),onEdit:v,onRunNow:y,onDelete:b},r.id))})]})}function at({open:e,onOpenChange:t,c:n,localeTag:r,scheduleBadgeLabels:a,categoryFilter:s,onCategoryFilterChange:l,onSelectTemplate:d}){return(0,L.jsx)(E,{open:e,onOpenChange:t,children:(0,L.jsxs)(i,{children:[(0,L.jsx)(D,{className:`xopc-dialog-overlay fixed inset-0 z-[62] bg-scrim`}),(0,L.jsx)(`div`,{className:`fixed inset-0 z-[62] flex items-center justify-center p-4 pointer-events-none`,children:(0,L.jsxs)(o,{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,L.jsxs)(`div`,{className:`flex shrink-0 items-center justify-end border-b border-edge px-4 py-3`,children:[(0,L.jsx)(f,{className:`sr-only`,children:n.fromTemplate}),(0,L.jsx)(c,{asChild:!0,children:(0,L.jsx)(w,{type:`button`,variant:`ghost`,className:`h-9 w-9 shrink-0 p-0`,"aria-label":n.close,children:(0,L.jsx)(u,{className:`size-5`,strokeWidth:1.75})})})]}),(0,L.jsx)(`div`,{className:`min-h-0 flex-1 overflow-y-auto px-4 py-4`,children:(0,L.jsx)(rt,{cron:n,localeTag:r,scheduleBadgeLabels:a,categoryFilter:s,onCategoryFilterChange:l,onSelectTemplate:d})})]})})]})})}function ot(){let e=m(e=>e.language),t=r(e),n=t.cron,i=t.chat,a=!!re(e=>e.token),o=ue(e=>e.resolved)===`dark`,s=e===`zh`?`zh-CN`:`en-US`,[c,l]=(0,I.useState)([]),[u,d]=(0,I.useState)(`tasks`),[f,p]=(0,I.useState)(`created_desc`),[h,g]=(0,I.useState)(`day`),[_,te]=(0,I.useState)(``),[v,ne]=(0,I.useState)(``),[y,b]=(0,I.useState)(!1),x=(0,I.useRef)(null),S=(0,I.useRef)(y),w=typeof navigator<`u`&&`wakeLock`in navigator,[T,E]=(0,I.useState)([]),[D,O]=(0,I.useState)([]),[ie,ae]=(0,I.useState)(``),[oe,se]=(0,I.useState)([]),[ce,le]=(0,I.useState)([]),[fe,k]=(0,I.useState)(!1),[A,j]=(0,I.useState)(null),[_e,ve]=(0,I.useState)([]),[Oe,ke]=(0,I.useState)(!1),[N,Ae]=(0,I.useState)(!1),[P,F]=(0,I.useState)(`add`),[je,Me]=(0,I.useState)(null),[Fe,R]=(0,I.useState)(``),[Be,z]=(0,I.useState)(Pe),[B,V]=(0,I.useState)(`local`),[He,H]=(0,I.useState)(``),[U,W]=(0,I.useState)(``),[Ue,We]=(0,I.useState)(`edit`),[Ge,G]=(0,I.useState)(0),[K,Ke]=(0,I.useState)(`main`),[qe,q]=(0,I.useState)(``),[Je,J]=(0,I.useState)(!1),[$e,Y]=(0,I.useState)(``),[tt,rt]=(0,I.useState)(!1),[ot,X]=(0,I.useState)(``),[st,ct]=(0,I.useState)(!1),lt=(0,I.useRef)(!1),[ut,dt]=(0,I.useState)(!1),[ft,pt]=(0,I.useState)(null),[mt,ht]=(0,I.useState)([]),[gt,_t]=(0,I.useState)(!1),[vt,yt]=(0,I.useState)(!1),[bt,xt]=(0,I.useState)(null),[St,Ct]=(0,I.useState)(null),[wt,Tt]=(0,I.useState)(!1),[Et,Dt]=(0,I.useState)(`all`),Ot=(0,I.useRef)(null),kt=(0,I.useCallback)(e=>{Ot.current=e,window.setTimeout(()=>{Ot.current===e&&(Ot.current=null)},400)},[]),Z=(0,I.useCallback)(()=>ie||(D.length>0?D[0].id:``),[ie,D]),At=typeof window<`u`&&!!window.electronAPI?.file?.openDirectory,jt=(0,I.useCallback)(async()=>{let e=typeof window<`u`?window.electronAPI?.file?.openDirectory:void 0;return e?e():null},[]),Mt=(0,I.useCallback)(async e=>{let t=e.trim();t&&(ze(t),Y(t))},[]),Nt=(0,I.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]),Pt=B!==`local`&&(K===`main`||K===`isolated`&&!Je),Ft=K===`main`||K===`isolated`&&!Je,It=!!Fe.trim()&&!!Be.trim()&&!!U.trim()&&(!Pt||!!He.trim()),Lt=(0,I.useCallback)(async()=>{ke(!0);try{ve(await we(400))}catch{}finally{ke(!1)}},[]),Q=(0,I.useCallback)(async()=>{k(!0),j(null);try{l(await De())}catch(e){j(e instanceof Error?e.message:n.failedToLoadJobs)}finally{k(!1)}},[n.failedToLoadJobs]),$=(0,I.useCallback)(async()=>{try{let[e,t,n,r]=await Promise.all([M(),me(),pe(),de().catch(()=>null)]);E(e),O(t),ae(n.model||``),r&&le(r.items)}catch{}},[]);(0,I.useEffect)(()=>{a&&(Q(),$())},[a,Q,$]),(0,I.useEffect)(()=>{!a||u!==`history`||Lt()},[a,u,Lt]);let Rt=(0,I.useCallback)(async()=>{try{await x.current?.release()}catch{}x.current=null},[]),zt=(0,I.useCallback)(async()=>{if(w)try{let e=await navigator.wakeLock.request(`screen`);x.current=e,e.addEventListener(`release`,()=>{x.current=null})}catch{j(n.wakeLockUnavailable),b(!1)}},[n.wakeLockUnavailable,w]);S.current=y,(0,I.useEffect)(()=>{if(!y){Rt();return}zt();let e=()=>{document.visibilityState===`visible`&&S.current&&zt()};return document.addEventListener(`visibilitychange`,e),()=>{document.removeEventListener(`visibilitychange`,e),Rt()}},[y,zt,Rt]),(0,I.useEffect)(()=>{if(!N||P!==`add`||lt.current)return;let e=Z();e&&X(e)},[N,P,Z]),(0,I.useEffect)(()=>{!N||P!==`add`||new Set([`local`,...T.map(e=>e.name)]).has(B)||V(`local`)},[T,B,P,N]),(0,I.useEffect)(()=>{if(B===`local`){se([]);return}let e=!1;return ye(B).then(t=>{e||se(t)}),()=>{e=!0}},[B,N]);let Bt=(0,I.useCallback)(e=>{if(lt.current=!1,Ae(!0),F(e?`edit`:`add`),Me(e?.id??null),e){R(e.name||``),z(e.schedule&&String(e.schedule).trim()||`*/5 * * * *`);let t=xe(e);W(t??``),Ke(e.sessionTarget||`main`),q((e.sessionTarget||`main`)===`isolated`&&e.agentId?.trim()?e.agentId.trim().toLowerCase():``),Y((e.sessionTarget||`main`)===`isolated`&&e.workingDirectory?.trim()?e.workingDirectory.trim():``);let n=e.payload?.kind===`agentTurn`&&e.payload.model?.trim()?e.payload.model.trim():``;X(e.model?.trim()||n||Z());let r=e.delivery?.channel===`local`,i=(e.sessionTarget||`main`)===`isolated`&&!r&&(!e.delivery?.to||e.delivery.mode===`none`);if(J(i),r)V(`local`),H(``);else if(e.delivery&&e.delivery.mode!==`none`&&e.delivery.to)V(e.delivery.channel||`telegram`),H(e.delivery.to||``);else if(i)V(`telegram`),H(``);else{let e=t.split(`:`);e.length>=3&&[`telegram`,`cli`,`gateway`,`local`].includes(e[0])?(V(e[0]),H(e[1]),W(e.slice(2).join(`:`))):(V(`telegram`),H(``))}}else R(``),z(Pe),V(`local`),H(``),W(``),Ke(`main`),q(``),Y(``),J(!1),X(Z());We(`edit`),G(e=>e+1)},[Z]),Vt=(0,I.useCallback)(e=>{We(e),e===`edit`&&G(e=>e+1)},[]),Ht=(0,I.useCallback)(e=>{let n=nt(e),r=n?et(t.cron,e):void 0;!n||!r||(lt.current=!1,F(`add`),Me(null),R(r.title),z(n.defaultSchedule),W(r.prompt),Ke(n.defaultSessionTarget),V(`local`),H(``),J(!1),q(``),Y(``),X(Z()),We(`edit`),G(e=>e+1),Tt(!1),Ae(!0))},[Z,t.cron]),Ut=(0,I.useCallback)(()=>{Ae(!1),F(`add`),Me(null),R(``),z(Pe),V(`local`),H(``),W(``),Ke(`main`),q(``),Y(``),rt(!1),J(!1),X(``),We(`edit`),lt.current=!1},[]),Wt=async()=>{if(!Fe.trim()){j(n.nameRequired);return}if(!Be.trim()||!U.trim()){j(n.scheduleRequired);return}if(Pt&&!He.trim()){j(n.chatIdRequired);return}ct(!0),j(null);try{let e=U.trim(),t;t=K===`isolated`&&Je?{mode:`none`}:B===`local`?{mode:`direct`,channel:`local`}:{mode:`direct`,channel:B,to:He.trim()};let n=K===`isolated`?{kind:`agentTurn`,message:e,...ot.trim()?{model:ot.trim()}:{}}:{kind:`systemEvent`,text:e},r=ot.trim(),i=qe.trim().toLowerCase(),a=K===`main`?null:i||null,o=$e.trim(),s={name:Fe.trim(),schedule:Be.trim(),sessionTarget:K,model:K===`isolated`&&r?r:void 0,delivery:t,payload:n,...P===`edit`?{agentId:a,workingDirectory:K===`isolated`&&o||null}:{...K===`isolated`&&i?{agentId:i}:{},...K===`isolated`&&o?{workingDirectory:o}:{}}};if(P===`edit`&&je)await be(je,s);else{let{schedule:e,agentId:t,workingDirectory:n,...r}=s;await Ee(e,{...r,...t==null?{}:{agentId:t},...n?{workingDirectory:n}:{}})}Ut(),await Q(),await $()}catch(e){j(e instanceof Error?e.message:P===`edit`?n.failedToUpdateJob:n.failedToCreateJob)}finally{ct(!1)}},Gt=async e=>{dt(!0),pt(e),_t(!0),ht([]);try{let t=await Te(e.id);t&&(pt(t),ht(await Se(e.id,20)))}catch{}finally{_t(!1)}},Kt=async(e,t)=>{try{await Ce(e.id,t),await Q(),await $()}catch(e){j(e instanceof Error?e.message:n.failedToToggleJob)}},qt=async()=>{if(!St||!bt)return;let e=St,t=bt;yt(!1),Ct(null),xt(null);try{t===`run`?await ge(e):(await he(e),ft?.id===e&&(dt(!1),pt(null))),await Q(),await $(),await Lt()}catch(e){j(e instanceof Error?e.message:n.actionFailed)}};(0,I.useEffect)(()=>{let e=e=>{e.key===`Escape`&&(N?Ut():ut&&(dt(!1),pt(null)))};return document.addEventListener(`keydown`,e),()=>document.removeEventListener(`keydown`,e)},[N,ut,Ut]);let Jt=(0,I.useMemo)(()=>({running:n.execStatusRunning,success:n.execStatusSuccess,failed:n.execStatusFailed,cancelled:n.execStatusCancelled}),[n.execStatusCancelled,n.execStatusFailed,n.execStatusRunning,n.execStatusSuccess]),Yt=(0,I.useMemo)(()=>{let e=[...c];return e.sort((e,t)=>{let n=new Date(e.created_at).getTime(),r=new Date(t.created_at).getTime();return f===`created_desc`?r-n:n-r}),e},[c,f]),Xt=(0,I.useMemo)(()=>{let e=new Date,t=h===`day`?Ie(e):h===`week`?Le(e):Re(e);return _e.filter(e=>!(new Date(e.startedAt)<t||_&&e.jobId!==_||v&&e.status!==v))},[_e,h,_,v]),Zt=n.scheduleBadge,Qt=(0,I.useCallback)(()=>{Q(),$(),Lt()},[Q,$,Lt]),$t=C(e=>e.setPageHeader),en=C(e=>e.clearPageHeader),{pathname:tn}=ee(),nn=tn.startsWith(`/settings/`),rn=(0,I.useCallback)((e,t,n)=>{Ke(e),e===`main`?(J(!1),q(``),Y(``)):e===`isolated`&&!n&&X(t())},[]),an=(0,I.useCallback)(()=>{ye(B).then(se)},[B]),on=(0,I.useMemo)(()=>(0,L.jsx)(Ze,{c:n,loading:fe,runHistoryLoading:Oe,onRefresh:Qt,onOpenTemplatePicker:()=>{Dt(`all`),Tt(!0)},onAddJob:()=>Bt()}),[n,fe,Bt,Qt,Oe]);return(0,I.useLayoutEffect)(()=>!a||nn?(en(),()=>en()):($t({startExtra:null,main:null,end:on}),()=>en()),[en,on,a,nn,$t]),a?(0,L.jsxs)(`div`,{className:`flex min-h-0 flex-1 flex-col overflow-y-auto bg-surface-panel`,children:[(0,L.jsxs)(`div`,{className:`mx-auto flex w-full max-w-app-main flex-col gap-6 px-4 py-6 sm:px-8`,children:[A?(0,L.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:A}):null,(0,L.jsx)(`header`,{className:`flex flex-col gap-4`,children:(0,L.jsxs)(`div`,{className:`min-w-0`,children:[(0,L.jsx)(`h1`,{className:`text-xl font-semibold tracking-tight text-fg`,children:n.title}),(0,L.jsx)(`p`,{className:`mt-1 max-w-2xl text-sm text-fg-muted`,children:n.subtitle})]})}),nn?(0,L.jsx)(`div`,{className:`flex flex-wrap items-center justify-end gap-2 border-b border-edge-subtle pb-3 dark:border-edge-subtle`,children:on}):null,(0,L.jsx)(Xe,{c:n,mainTab:u,onMainTabChange:d,jobSort:f,onJobSortChange:p,historyRange:h,onHistoryRangeChange:g,historyJobFilter:_,onHistoryJobFilterChange:te,historyStatusFilter:v,onHistoryStatusFilterChange:ne,jobs:c}),u===`tasks`?(0,L.jsx)(it,{c:n,localeTag:s,scheduleBadgeLabels:Zt,loading:fe,jobsCount:c.length,sortedJobs:Yt,templateCategoryFilter:Et,onTemplateCategoryFilterChange:Dt,onSelectTemplate:Ht,keepAwake:y,wakeSupported:w,onWakeUnsupportedClick:()=>j(n.wakeLockUnavailable),onKeepAwakeToggle:()=>b(e=>!e),absorbCardClickJobIdRef:Ot,scheduleAbsorbNextMenuCardClick:kt,onOpenDetail:e=>void Gt(e),onToggle:(e,t)=>void Kt(e,t),onEdit:e=>Bt(e),onAddJob:()=>Bt(),onRunNow:e=>{xt(`run`),Ct(e.id),yt(!0)},onDelete:e=>{xt(`delete`),Ct(e.id),yt(!0)}}):(0,L.jsx)(Qe,{c:n,runHistoryLoading:Oe,runHistory:_e,filteredRunHistory:Xt,jobs:c,onRefreshHistory:()=>void Lt(),onOpenJobDetail:e=>void Gt(e),statusLabels:Jt})]}),(0,L.jsx)(Ye,{open:N,onRequestClose:Ut,c:n,chatM:i,agentsMessages:t.agentsSettings,isDark:o,channels:T,sessionChatIds:oe,cronAgentSelectOptions:Nt,hasElectronFolderPicker:At,openNativeFolderPicker:jt,applyWorkingDirectory:Mt,wdModalOpen:tt,onWdModalOpenChange:rt,defaultModelResolver:Z,formMode:P,formJobId:je,formName:Fe,onFormNameChange:R,formSchedule:Be,onFormScheduleChange:z,formSubmitting:st,formSessionTarget:K,onFormSessionTargetChange:rn,formAgentLocalOnly:Je,onFormAgentLocalOnlyChange:J,formModel:ot,onFormModelUserChange:e=>{lt.current=!0,X(e)},formAgentId:qe,onFormAgentIdChange:q,formWorkingDirectory:$e,onFormWorkingDirectoryChange:Y,formChannel:B,onFormChannelChange:e=>{V(e),e===`local`&&J(!1),H(``)},formChatId:He,onFormChatIdChange:H,formMessage:U,onFormMessageChange:W,formMessageMdMode:Ue,onSetMessageMdMode:Vt,messageEditorNonce:Ge,needsDeliveryChat:Pt,showChannelPicker:Ft,canSubmit:It,onSubmit:()=>void Wt(),onRefreshRecipients:an}),(0,L.jsx)(at,{open:wt,onOpenChange:e=>{Tt(e),e&&Dt(`all`)},c:n,localeTag:s,scheduleBadgeLabels:Zt,categoryFilter:Et,onCategoryFilterChange:Dt,onSelectTemplate:Ht}),(0,L.jsx)(Ve,{open:ut,onDismiss:()=>{dt(!1),pt(null)},detailJob:ft,detailLoading:gt,detailHistory:mt,c:n,chatWorkingDirNotSet:i.workingDirectory.notSet,statusLabels:Jt}),(0,L.jsx)(Ne,{open:vt,onOpenChange:yt,action:bt,c:n,onDismiss:()=>{yt(!1),Ct(null),xt(null)},onConfirm:qt})]}):(0,L.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{ot as CronPage};
2
+ //# sourceMappingURL=cron-page-aiDeJtJ-.js.map