@xopcai/xopc 0.0.27 → 0.0.28

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 (150) hide show
  1. package/dist/extensions/telegram/xopc.extension.json +1 -1
  2. package/dist/extensions/weixin/src/adapters/onboard-cli.d.ts +7 -0
  3. package/dist/extensions/weixin/src/adapters/onboard-cli.js +61 -0
  4. package/dist/extensions/weixin/src/adapters/onboard-cli.js.map +1 -0
  5. package/dist/extensions/weixin/src/cli/qr-login.d.ts +5 -0
  6. package/dist/extensions/weixin/src/cli/qr-login.js +1 -1
  7. package/dist/extensions/weixin/src/cli/qr-login.js.map +1 -1
  8. package/dist/extensions/weixin/src/index.js +1 -1
  9. package/dist/extensions/weixin/src/plugin.d.ts +1 -0
  10. package/dist/extensions/weixin/src/plugin.js +2 -0
  11. package/dist/extensions/weixin/src/plugin.js.map +1 -1
  12. package/dist/gateway/static/root/assets/{agents-w8_jzuiX.js → agents-DplaQYS2.js} +2 -2
  13. package/dist/gateway/static/root/assets/{agents-w8_jzuiX.js.map → agents-DplaQYS2.js.map} +1 -1
  14. package/dist/gateway/static/root/assets/{apps-page-CBBh_Ww8.js → apps-page-Co95hLOJ.js} +2 -2
  15. package/dist/gateway/static/root/assets/{apps-page-CBBh_Ww8.js.map → apps-page-Co95hLOJ.js.map} +1 -1
  16. package/dist/gateway/static/root/assets/{channels-settings-DUKRPC7C.js → channels-settings-CkfSST0k.js} +2 -2
  17. package/dist/gateway/static/root/assets/{channels-settings-DUKRPC7C.js.map → channels-settings-CkfSST0k.js.map} +1 -1
  18. package/dist/gateway/static/root/assets/{cron-page-S18t1yG-.js → cron-page-D9q6KqL8.js} +2 -2
  19. package/dist/gateway/static/root/assets/{cron-page-S18t1yG-.js.map → cron-page-D9q6KqL8.js.map} +1 -1
  20. package/dist/gateway/static/root/assets/{cron-utils-08gdQfl9.js → cron-utils-BmzF4m1y.js} +2 -2
  21. package/dist/gateway/static/root/assets/{cron-utils-08gdQfl9.js.map → cron-utils-BmzF4m1y.js.map} +1 -1
  22. package/dist/gateway/static/root/assets/{dist-C1MrygQH.js → dist-Dn-ufXyc.js} +2 -2
  23. package/dist/gateway/static/root/assets/{dist-C1MrygQH.js.map → dist-Dn-ufXyc.js.map} +1 -1
  24. package/dist/gateway/static/root/assets/{extension-debug-page-DN3HKUGS.js → extension-debug-page-BZ8xQ74_.js} +2 -2
  25. package/dist/gateway/static/root/assets/{extension-debug-page-DN3HKUGS.js.map → extension-debug-page-BZ8xQ74_.js.map} +1 -1
  26. package/dist/gateway/static/root/assets/{extension-page-CoFDHZtZ.js → extension-page-BlNgKxwW.js} +2 -2
  27. package/dist/gateway/static/root/assets/{extension-page-CoFDHZtZ.js.map → extension-page-BlNgKxwW.js.map} +1 -1
  28. package/dist/gateway/static/root/assets/{extension-settings-page-BcPCu_Go.js → extension-settings-page-CWTdW_oY.js} +2 -2
  29. package/dist/gateway/static/root/assets/{extension-settings-page-BcPCu_Go.js.map → extension-settings-page-CWTdW_oY.js.map} +1 -1
  30. package/dist/gateway/static/root/assets/{index-PfkB8N37.js → index-lV8FGWlt.js} +4 -4
  31. package/dist/gateway/static/root/assets/{index-PfkB8N37.js.map → index-lV8FGWlt.js.map} +1 -1
  32. package/dist/gateway/static/root/assets/logs-page-DG31RpvG.js +2 -0
  33. package/dist/gateway/static/root/assets/logs-page-DG31RpvG.js.map +1 -0
  34. package/dist/gateway/static/root/assets/sessions-page-CdmjxDEM.js +2 -0
  35. package/dist/gateway/static/root/assets/{sessions-page-2uOYwEwd.js.map → sessions-page-CdmjxDEM.js.map} +1 -1
  36. package/dist/gateway/static/root/assets/{settings-page-fQWswCuq.js → settings-page-DU2XLf5s.js} +2 -2
  37. package/dist/gateway/static/root/assets/{settings-page-fQWswCuq.js.map → settings-page-DU2XLf5s.js.map} +1 -1
  38. package/dist/gateway/static/root/assets/{skills-page-BmBDCEbY.js → skills-page-lb7vYtlP.js} +2 -2
  39. package/dist/gateway/static/root/assets/{skills-page-BmBDCEbY.js.map → skills-page-lb7vYtlP.js.map} +1 -1
  40. package/dist/gateway/static/root/index.html +1 -1
  41. package/dist/package.js +1 -1
  42. package/dist/src/channels/index.js +2 -2
  43. package/dist/src/channels/manager.js +2 -2
  44. package/dist/src/channels/weixin/index.js +1 -1
  45. package/dist/src/cli/agent-chat-log-level-preset.d.ts +7 -0
  46. package/dist/src/cli/agent-chat-log-level-preset.js +22 -0
  47. package/dist/src/cli/agent-chat-log-level-preset.js.map +1 -0
  48. package/dist/src/cli/commands/agent/interactive.js +4 -2
  49. package/dist/src/cli/commands/agent/interactive.js.map +1 -1
  50. package/dist/src/cli/commands/agent/stream-renderer.d.ts +14 -0
  51. package/dist/src/cli/commands/agent/stream-renderer.js +99 -0
  52. package/dist/src/cli/commands/agent/stream-renderer.js.map +1 -0
  53. package/dist/src/cli/commands/agent.js +2 -2
  54. package/dist/src/cli/commands/agent.js.map +1 -1
  55. package/dist/src/cli/commands/onboard.js +77 -93
  56. package/dist/src/cli/commands/onboard.js.map +1 -1
  57. package/dist/src/cli/commands/tui.d.ts +1 -0
  58. package/dist/src/cli/commands/tui.js +40 -0
  59. package/dist/src/cli/commands/tui.js.map +1 -0
  60. package/dist/src/cli/index.d.ts +2 -0
  61. package/dist/src/cli/index.js +3 -0
  62. package/dist/src/cli/index.js.map +1 -1
  63. package/dist/src/config/schema.d.ts +6 -0
  64. package/dist/src/config/schema.js +6 -1
  65. package/dist/src/config/schema.js.map +1 -1
  66. package/dist/src/gateway/auth.d.ts +17 -3
  67. package/dist/src/gateway/auth.js +35 -16
  68. package/dist/src/gateway/auth.js.map +1 -1
  69. package/dist/src/gateway/hono/app.js +30 -1
  70. package/dist/src/gateway/hono/app.js.map +1 -1
  71. package/dist/src/gateway/hono/lib/config-payload.d.ts +1 -1
  72. package/dist/src/gateway/hono/middleware/auth.js +4 -3
  73. package/dist/src/gateway/hono/middleware/auth.js.map +1 -1
  74. package/dist/src/gateway/hono/middleware/scopes.d.ts +15 -0
  75. package/dist/src/gateway/hono/middleware/scopes.js +41 -0
  76. package/dist/src/gateway/hono/middleware/scopes.js.map +1 -0
  77. package/dist/src/gateway/security/audit.d.ts +18 -0
  78. package/dist/src/gateway/security/audit.js +68 -0
  79. package/dist/src/gateway/security/audit.js.map +1 -0
  80. package/dist/src/gateway/security/csp.d.ts +19 -0
  81. package/dist/src/gateway/security/csp.js +52 -0
  82. package/dist/src/gateway/security/csp.js.map +1 -0
  83. package/dist/src/gateway/security/dangerous-tools.d.ts +20 -0
  84. package/dist/src/gateway/security/dangerous-tools.js +46 -0
  85. package/dist/src/gateway/security/dangerous-tools.js.map +1 -0
  86. package/dist/src/gateway/security/flood-guard.d.ts +28 -0
  87. package/dist/src/gateway/security/flood-guard.js +42 -0
  88. package/dist/src/gateway/security/flood-guard.js.map +1 -0
  89. package/dist/src/gateway/security/index.d.ts +9 -0
  90. package/dist/src/gateway/security/index.js +10 -0
  91. package/dist/src/gateway/security/known-weak-secrets.d.ts +10 -0
  92. package/dist/src/gateway/security/known-weak-secrets.js +36 -0
  93. package/dist/src/gateway/security/known-weak-secrets.js.map +1 -0
  94. package/dist/src/gateway/security/operator-scopes.d.ts +37 -0
  95. package/dist/src/gateway/security/operator-scopes.js +137 -0
  96. package/dist/src/gateway/security/operator-scopes.js.map +1 -0
  97. package/dist/src/gateway/security/origin-check.d.ts +21 -0
  98. package/dist/src/gateway/security/origin-check.js +56 -0
  99. package/dist/src/gateway/security/origin-check.js.map +1 -0
  100. package/dist/src/gateway/security/preauth-connection-budget.d.ts +17 -0
  101. package/dist/src/gateway/security/preauth-connection-budget.js +49 -0
  102. package/dist/src/gateway/security/preauth-connection-budget.js.map +1 -0
  103. package/dist/src/gateway/security/secret-equal.d.ts +8 -0
  104. package/dist/src/gateway/security/secret-equal.js +30 -0
  105. package/dist/src/gateway/security/secret-equal.js.map +1 -0
  106. package/dist/src/gateway/service.d.ts +1 -1
  107. package/dist/src/gateway/service.js +11 -2
  108. package/dist/src/gateway/service.js.map +1 -1
  109. package/dist/src/tui/backends/embedded-backend.d.ts +42 -0
  110. package/dist/src/tui/backends/embedded-backend.js +160 -0
  111. package/dist/src/tui/backends/embedded-backend.js.map +1 -0
  112. package/dist/src/tui/backends/gateway-sse-backend.d.ts +49 -0
  113. package/dist/src/tui/backends/gateway-sse-backend.js +226 -0
  114. package/dist/src/tui/backends/gateway-sse-backend.js.map +1 -0
  115. package/dist/src/tui/components/assistant-message.d.ts +6 -0
  116. package/dist/src/tui/components/assistant-message.js +19 -0
  117. package/dist/src/tui/components/assistant-message.js.map +1 -0
  118. package/dist/src/tui/components/chat-log.d.ts +19 -0
  119. package/dist/src/tui/components/chat-log.js +99 -0
  120. package/dist/src/tui/components/chat-log.js.map +1 -0
  121. package/dist/src/tui/components/custom-editor.d.ts +13 -0
  122. package/dist/src/tui/components/custom-editor.js +44 -0
  123. package/dist/src/tui/components/custom-editor.js.map +1 -0
  124. package/dist/src/tui/components/tool-execution.d.ts +16 -0
  125. package/dist/src/tui/components/tool-execution.js +76 -0
  126. package/dist/src/tui/components/tool-execution.js.map +1 -0
  127. package/dist/src/tui/components/user-message.d.ts +6 -0
  128. package/dist/src/tui/components/user-message.js +22 -0
  129. package/dist/src/tui/components/user-message.js.map +1 -0
  130. package/dist/src/tui/sse-consumer.d.ts +15 -0
  131. package/dist/src/tui/sse-consumer.js +75 -0
  132. package/dist/src/tui/sse-consumer.js.map +1 -0
  133. package/dist/src/tui/stream-assembler.d.ts +22 -0
  134. package/dist/src/tui/stream-assembler.js +63 -0
  135. package/dist/src/tui/stream-assembler.js.map +1 -0
  136. package/dist/src/tui/theme.d.ts +71 -0
  137. package/dist/src/tui/theme.js +151 -0
  138. package/dist/src/tui/theme.js.map +1 -0
  139. package/dist/src/tui/tui-backend.d.ts +84 -0
  140. package/dist/src/tui/tui-backend.js +1 -0
  141. package/dist/src/tui/tui-types.d.ts +85 -0
  142. package/dist/src/tui/tui-types.js +21 -0
  143. package/dist/src/tui/tui-types.js.map +1 -0
  144. package/dist/src/tui/tui.d.ts +3 -0
  145. package/dist/src/tui/tui.js +526 -0
  146. package/dist/src/tui/tui.js.map +1 -0
  147. package/package.json +9 -3
  148. package/dist/gateway/static/root/assets/logs-page-DoWe1GWy.js +0 -2
  149. package/dist/gateway/static/root/assets/logs-page-DoWe1GWy.js.map +0 -1
  150. package/dist/gateway/static/root/assets/sessions-page-2uOYwEwd.js +0 -2
@@ -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{t as r}from"./cn-BMCV0OMB.js";import{$t as i,Cn as a,Dr as o,H as s,Jt as c,Ln as ee,Pn as l,Qt as te,U as u,W as ne,Xr as re,Zn as d,_r as f,an as p,at as ie,cn as m,dt as h,f as ae,fn as g,ft as _,g as oe,h as se,it as ce,lt as v,nn as y,ot as b,pr as x,qt as le,rn as ue,sn as de,sr as fe,st as pe,tr as me,u as he,ut as ge,xr as _e}from"./index-PfkB8N37.js";import{C as ve,S as ye,_ as be,a as xe,b as Se,c as Ce,d as we,f as Te,g as Ee,h as De,i as Oe,l as ke,m as Ae,n as je,o as Me,p as Ne,r as Pe,s as Fe,t as Ie,u as Le,v as Re,x as ze,y as Be}from"./cron-utils-08gdQfl9.js";import{a as Ve,i as He,n as Ue,r as We,t as Ge}from"./dist-C1MrygQH.js";var S=e(t(),1);function Ke(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 C=[`daily`,`monitoring`,`reports`,`automation`],qe=[{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 Je(e){return qe.find(t=>t.templateId===e)}var w=n();function Ye(e){let{cron:t,localeTag:n,scheduleBadgeLabels:i,categoryFilter:a,onCategoryFilterChange:o,onSelectTemplate:s}=e,c=a===`all`?[...qe]:qe.filter(e=>e.category===a);return(0,w.jsxs)(`div`,{className:`flex w-full flex-col gap-4`,children:[(0,w.jsxs)(`div`,{className:`flex flex-wrap gap-2`,role:`group`,"aria-label":t.fromTemplate,children:[(0,w.jsx)(m,{type:`button`,variant:a===`all`?`secondary`:`ghost`,className:`h-8 rounded-full px-3 py-1.5 text-xs`,onClick:()=>o(`all`),children:t.templateFilterAll}),C.map(e=>(0,w.jsx)(m,{type:`button`,variant:a===e?`secondary`:`ghost`,className:`h-8 rounded-full px-3 py-1.5 text-xs`,onClick:()=>o(e),children:t.templateCategories[e]},e))]}),c.length===0?(0,w.jsx)(`p`,{className:`text-center text-sm text-fg-muted`,children:t.templatesEmptyHint}):(0,w.jsx)(`div`,{className:`grid gap-3 sm:grid-cols-2`,children:c.map(e=>{let a=Ke(t,e.templateId);if(!a)return null;let o=Me({schedule:e.defaultSchedule,timezone:void 0,next_run:void 0},n,i);return(0,w.jsxs)(`button`,{type:`button`,className:r(`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:()=>s(e.templateId),"aria-label":`${t.templateCategories[e.category]} — ${a.title}`,children:[(0,w.jsx)(`span`,{className:`font-semibold text-fg`,children:a.title}),(0,w.jsx)(`span`,{className:`line-clamp-2 text-sm text-fg-muted`,children:a.description}),(0,w.jsx)(`span`,{className:`mt-1 flex items-center gap-1 text-xs text-fg-muted`,children:(0,w.jsx)(`span`,{className:`tabular-nums`,children:o})})]},e.templateId)})})]})}var T=ke(),E=r(p,`min-w-0 shrink text-xs sm:min-w-[7rem] sm:max-w-[11rem]`),D=r(`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`,y,`dark:bg-surface-panel`),Xe=r(`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`,y),O=r(`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`,y),Ze=r(`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`,y);function Qe(){let e=new Date;return`${e.getFullYear()}-${String(e.getMonth()+1).padStart(2,`0`)}-${String(e.getDate()).padStart(2,`0`)}`}function k(e){return Array.isArray(e)?e.filter(e=>typeof e==`number`).sort((e,t)=>e-t):[]}function $e(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 et(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 A(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 tt(e){let t=e.trim(),n={mode:`custom`,intervalKind:`minutes`,onceDate:Qe(),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=T.CronExpressionParser.parse(t).fields,r=k(e.minute.values),i=k(e.hour.values),a=k(e.dayOfMonth.values),o=k(e.month.values),s=k(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=$e(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=$e(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],ee=`${e}-${String(s).padStart(2,`0`)}-${String(c).padStart(2,`0`)}`;return{...n,mode:`no_repeat`,minute:r[0],hour:i[0],onceDate:ee,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:A(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 nt(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)} * * ${et(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 rt({value:e,onChange:t,labels:n,disabled:i}){let a=(0,S.useMemo)(()=>tt(e),[e]),[o,s]=(0,S.useState)(a.mode),[c,ee]=(0,S.useState)(a.intervalKind),[l,te]=(0,S.useState)(a.onceDate),[u,ne]=(0,S.useState)(a.intervalMinutes),[re,d]=(0,S.useState)(a.intervalHours),[f,p]=(0,S.useState)(a.minute),[ie,m]=(0,S.useState)(a.hour),[h,ae]=(0,S.useState)(a.weekDays),[g,_]=(0,S.useState)(a.dayOfMonth),[oe,se]=(0,S.useState)(a.rawCron),[ce,v]=(0,S.useState)(null),[y,b]=(0,S.useState)(null);(0,S.useEffect)(()=>{let t=tt(e);s(t.mode),ee(t.intervalKind),te(t.onceDate),ne(t.intervalMinutes),d(t.intervalHours),p(t.minute),m(t.hour),ae(t.weekDays),_(t.dayOfMonth),se(t.rawCron),v(null),b(null)},[e]);let x=(0,S.useCallback)(e=>{t(nt({mode:o,intervalKind:c,onceDate:l,intervalMinutes:u,intervalHours:re,minute:f,hour:ie,weekDays:h,dayOfMonth:g,rawCron:oe,...e}))},[o,c,l,u,re,f,ie,h,g,oe,t]),le=`${String(ie).padStart(2,`0`)}:${String(f).padStart(2,`0`)}`,ue=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)||x({minute:r,hour:n})},de=(0,w.jsxs)(`div`,{className:`flex min-w-0 flex-nowrap items-center gap-2 overflow-x-auto pb-0.5`,children:[(0,w.jsxs)(`select`,{className:E,disabled:i,value:o,onChange:e=>{let t=e.target.value;s(t),x({mode:t})},"aria-label":n.scheduleTimeLabel,children:[(0,w.jsx)(`option`,{value:`no_repeat`,children:n.modeNoRepeat}),(0,w.jsx)(`option`,{value:`interval`,children:n.modeInterval}),(0,w.jsx)(`option`,{value:`hourly`,children:n.modeHourly}),(0,w.jsx)(`option`,{value:`daily`,children:n.modeDaily}),(0,w.jsx)(`option`,{value:`weekly`,children:n.modeWeekly}),(0,w.jsx)(`option`,{value:`monthly`,children:n.modeMonthly}),(0,w.jsx)(`option`,{value:`custom`,children:n.modeCustom})]}),o===`no_repeat`&&(0,w.jsxs)(w.Fragment,{children:[(0,w.jsx)(`input`,{type:`date`,disabled:i,className:Xe,value:l,onChange:e=>{let t=e.target.value;te(t),x({onceDate:t})},"aria-label":n.modeNoRepeat}),(0,w.jsx)(`input`,{type:`time`,step:60,disabled:i,className:D,value:le,onChange:ue,"aria-label":n.scheduleTimeLabel})]}),o===`interval`&&(0,w.jsxs)(w.Fragment,{children:[(0,w.jsxs)(`select`,{className:r(E,`w-auto min-w-[5rem]`),disabled:i,value:c,onChange:e=>{let t=e.target.value;ee(t),v(null),b(null),x({intervalKind:t})},"aria-label":n.modeInterval,children:[(0,w.jsx)(`option`,{value:`minutes`,children:n.intervalKindMinutes}),(0,w.jsx)(`option`,{value:`hours`,children:n.intervalKindHours})]}),c===`minutes`?(0,w.jsxs)(w.Fragment,{children:[(0,w.jsx)(`input`,{type:`number`,min:1,max:59,disabled:i,className:O,value:ce??String(u),onChange:e=>{let t=e.target.value;v(t);let n=parseInt(t,10);Number.isFinite(n)&&n>=1&&n<=59&&(ne(n),x({intervalMinutes:n}))},onBlur:()=>{if(ce===null)return;let e=parseInt(ce,10),t=!Number.isFinite(e)||e<1?5:Math.min(59,Math.max(1,Math.round(e)));ne(t),x({intervalMinutes:t}),v(null)},"aria-label":n.intervalMinutes}),(0,w.jsx)(`span`,{className:`shrink-0 text-sm text-fg-muted`,children:n.minuteUnit})]}):(0,w.jsxs)(w.Fragment,{children:[(0,w.jsx)(`input`,{type:`number`,min:1,max:23,disabled:i,className:O,value:y??String(re),onChange:e=>{let t=e.target.value;b(t);let n=parseInt(t,10);Number.isFinite(n)&&n>=1&&n<=23&&(d(n),x({intervalHours:n}))},onBlur:()=>{if(y===null)return;let e=parseInt(y,10),t=!Number.isFinite(e)||e<1?2:Math.min(23,Math.max(1,Math.round(e)));d(t),x({intervalHours:t}),b(null)},"aria-label":n.intervalHours}),(0,w.jsx)(`span`,{className:`shrink-0 text-sm text-fg-muted`,children:n.hourUnit}),(0,w.jsx)(`select`,{className:r(E,`w-auto min-w-[4rem]`),disabled:i,value:f,onChange:e=>{let t=parseInt(e.target.value,10);p(t),x({minute:t})},"aria-label":n.minuteAtHour,children:Array.from({length:60},(e,t)=>(0,w.jsx)(`option`,{value:t,children:String(t).padStart(2,`0`)},t))}),(0,w.jsx)(`span`,{className:`shrink-0 text-sm text-fg-muted`,children:n.minuteUnit})]})]}),o===`daily`&&(0,w.jsx)(`input`,{type:`time`,step:60,disabled:i,className:D,value:le,onChange:ue,"aria-label":n.scheduleTimeLabel}),o===`weekly`&&(0,w.jsx)(`input`,{type:`time`,step:60,disabled:i,className:D,value:le,onChange:ue,"aria-label":n.scheduleTimeLabel}),o===`monthly`&&(0,w.jsxs)(w.Fragment,{children:[(0,w.jsx)(`select`,{className:r(E,`w-auto min-w-[4.5rem]`),disabled:i,value:g,onChange:e=>{let t=parseInt(e.target.value,10);_(t),x({dayOfMonth:t})},"aria-label":n.dayOfMonth,children:Array.from({length:31},(e,t)=>t+1).map(e=>(0,w.jsx)(`option`,{value:e,children:e},e))}),(0,w.jsx)(`input`,{type:`time`,step:60,disabled:i,className:D,value:le,onChange:ue,"aria-label":n.scheduleTimeLabel})]}),o===`hourly`&&(0,w.jsxs)(w.Fragment,{children:[(0,w.jsx)(`select`,{className:r(E,`w-auto min-w-[4rem]`),disabled:i,value:f,onChange:e=>{let t=parseInt(e.target.value,10);p(t),x({minute:t})},"aria-label":n.minuteAtHour,children:Array.from({length:60},(e,t)=>(0,w.jsx)(`option`,{value:t,children:String(t).padStart(2,`0`)},t))}),(0,w.jsx)(`span`,{className:`shrink-0 text-sm text-fg-muted`,children:n.minuteUnit})]})]}),fe=o===`weekly`?(0,w.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=h[t];return(0,w.jsx)(`button`,{type:`button`,disabled:i,className:r(`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=[...h];e[t]=!e[t],ae(e),x({weekDays:e})},children:e},e)})}):null,pe=o===`custom`?(0,w.jsxs)(`div`,{className:`pt-1`,children:[(0,w.jsx)(`textarea`,{disabled:i,className:Ze,rows:2,spellCheck:!1,value:oe,placeholder:`*/5 * * * *`,onChange:e=>{let n=e.target.value;se(n),t(n.trim()||`*/5 * * * *`)},"aria-label":n.modeCustom}),(0,w.jsx)(`p`,{className:`mt-1 text-xs text-fg-muted`,children:n.customCronHint})]}):null;return(0,w.jsxs)(`div`,{className:`flex flex-col gap-2`,children:[(0,w.jsx)(`span`,{className:`text-xs font-medium text-fg-muted`,children:n.scheduleTimeLabel}),de,fe,pe]})}var it=400;function at(e){let t=new Date(e);return t.setHours(0,0,0,0),t}function ot(e){let t=at(e),n=t.getDay(),r=n===0?-6:1-n;return t.setDate(t.getDate()+r),t}function st(e){return new Date(e.getFullYear(),e.getMonth(),1,0,0,0,0)}var ct=`*/5 * * * *`,lt=`xopc.recentWorkspaceDirs.v1`,j=10;function ut(e){let t=e?.trim();t&&window.dispatchEvent(new CustomEvent(`navigate-to-chat`,{detail:{sessionKey:t},bubbles:!0}))}function dt(e){let t=e.trim();if(t)try{let e=localStorage.getItem(lt),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,j);localStorage.setItem(lt,JSON.stringify(r))}catch{}}function ft(e){return r(`w-full rounded-md border border-edge bg-surface-base px-3 py-2 text-sm text-fg placeholder:text-fg-disabled`,y,e&&`cursor-not-allowed opacity-60`)}function pt(){return r(p,ue)}var mt=r(p,`w-full text-xs sm:w-auto sm:min-w-[11rem] sm:max-w-[17rem] sm:shrink-0`),ht=r(p,`w-auto min-w-[9rem] max-w-[14rem] shrink-0 text-xs`);function gt(){let e=i(e=>e.language),t=de(e),n=t.cron,p=t.chat,y=!!c(e=>e.token),ue=te(e=>e.resolved)===`dark`,ke=e===`zh`?`zh-CN`:`en-US`,[C,qe]=(0,S.useState)([]),[T,E]=(0,S.useState)(`tasks`),[D,Xe]=(0,S.useState)(`created_desc`),[O,Ze]=(0,S.useState)(`day`),[Qe,k]=(0,S.useState)(``),[$e,et]=(0,S.useState)(``),[A,tt]=(0,S.useState)(!1),nt=(0,S.useRef)(null),lt=(0,S.useRef)(A),j=typeof navigator<`u`&&`wakeLock`in navigator,[gt,_t]=(0,S.useState)([]),[vt,yt]=(0,S.useState)([]),[bt,xt]=(0,S.useState)(``),[St,Ct]=(0,S.useState)([]),[wt,Tt]=(0,S.useState)([]),[Et,Dt]=(0,S.useState)(!1),[Ot,M]=(0,S.useState)(null),[kt,At]=(0,S.useState)([]),[N,jt]=(0,S.useState)(!1),[P,Mt]=(0,S.useState)(!1),[F,Nt]=(0,S.useState)(`add`),[Pt,Ft]=(0,S.useState)(null),[It,Lt]=(0,S.useState)(``),[Rt,zt]=(0,S.useState)(ct),[I,L]=(0,S.useState)(`local`),[Bt,R]=(0,S.useState)(``),[z,B]=(0,S.useState)(``),[Vt,Ht]=(0,S.useState)(`edit`),[Ut,Wt]=(0,S.useState)(0),[V,Gt]=(0,S.useState)(`main`),[Kt,H]=(0,S.useState)(``),[qt,U]=(0,S.useState)(!1),[W,G]=(0,S.useState)(``),[Jt,Yt]=(0,S.useState)(!1),[Xt,K]=(0,S.useState)(``),[q,Zt]=(0,S.useState)(!1),Qt=(0,S.useRef)(!1),[$t,en]=(0,S.useState)(!1),[J,tn]=(0,S.useState)(null),[nn,rn]=(0,S.useState)([]),[an,on]=(0,S.useState)(!1),[sn,cn]=(0,S.useState)(!1),[Y,ln]=(0,S.useState)(null),[un,dn]=(0,S.useState)(null),[fn,pn]=(0,S.useState)(!1),[mn,hn]=(0,S.useState)(`all`),X=(0,S.useRef)(null),gn=(0,S.useCallback)(e=>{X.current=e,window.setTimeout(()=>{X.current===e&&(X.current=null)},400)},[]),Z=(0,S.useCallback)(()=>bt||(vt.length>0?vt[0].id:``),[bt,vt]),_n=typeof window<`u`&&!!window.electronAPI?.file?.openDirectory,vn=(0,S.useCallback)(async()=>{let e=typeof window<`u`?window.electronAPI?.file?.openDirectory:void 0;return e?e():null},[]),yn=(0,S.useCallback)(async e=>{let t=e.trim();t&&(dt(t),G(t))},[]),bn=(0,S.useMemo)(()=>{let e=new Set(wt.map(e=>e.id)),t=[...wt],n=Kt.trim().toLowerCase();return n&&!e.has(n)&&t.push({id:n}),t},[wt,Kt]),xn=I!==`local`&&(V===`main`||V===`isolated`&&!qt),Sn=V===`main`||V===`isolated`&&!qt,Cn=!!It.trim()&&!!Rt.trim()&&!!z.trim()&&(!xn||!!Bt.trim()),wn=(0,S.useCallback)(async()=>{jt(!0);try{At(await Te(it))}catch{}finally{jt(!1)}},[]),Q=(0,S.useCallback)(async()=>{Dt(!0),M(null);try{qe(await Be())}catch(e){M(e instanceof Error?e.message:n.failedToLoadJobs)}finally{Dt(!1)}},[n.failedToLoadJobs]),$=(0,S.useCallback)(async()=>{try{let[e,t,n,r]=await Promise.all([Ne(),be(),Ae(),he().catch(()=>null)]);_t(e),yt(t),xt(n.model||``),r&&Tt(r.items)}catch{}},[]);(0,S.useEffect)(()=>{y&&(Q(),$())},[y,Q,$]),(0,S.useEffect)(()=>{!y||T!==`history`||wn()},[y,T,wn]);let Tn=(0,S.useCallback)(async()=>{try{await nt.current?.release()}catch{}nt.current=null},[]),En=(0,S.useCallback)(async()=>{if(j)try{let e=await navigator.wakeLock.request(`screen`);nt.current=e,e.addEventListener(`release`,()=>{nt.current=null})}catch{M(n.wakeLockUnavailable),tt(!1)}},[n.wakeLockUnavailable,j]);lt.current=A,(0,S.useEffect)(()=>{if(!A){Tn();return}En();let e=()=>{document.visibilityState===`visible`&&lt.current&&En()};return document.addEventListener(`visibilitychange`,e),()=>{document.removeEventListener(`visibilitychange`,e),Tn()}},[A,En,Tn]),(0,S.useEffect)(()=>{if(!P||F!==`add`||Qt.current)return;let e=Z();e&&K(e)},[P,F,Z]),(0,S.useEffect)(()=>{!P||F!==`add`||new Set([`local`,...gt.map(e=>e.name)]).has(I)||L(`local`)},[gt,I,F,P]),(0,S.useEffect)(()=>{if(I===`local`){Ct([]);return}let e=!1;return Re(I).then(t=>{e||Ct(t)}),()=>{e=!0}},[I,P]);let Dn=(0,S.useCallback)(e=>{if(Qt.current=!1,Mt(!0),Nt(e?`edit`:`add`),Ft(e?.id??null),e){Lt(e.name||``),zt(e.schedule&&String(e.schedule).trim()||ct);let t=we(e);B(t??``),Gt(e.sessionTarget||`main`),H((e.sessionTarget||`main`)===`isolated`&&e.agentId?.trim()?e.agentId.trim().toLowerCase():``),G((e.sessionTarget||`main`)===`isolated`&&e.workingDirectory?.trim()?e.workingDirectory.trim():``);let n=e.payload?.kind===`agentTurn`&&e.payload.model?.trim()?e.payload.model.trim():``;K(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(U(i),r)L(`local`),R(``);else if(e.delivery&&e.delivery.mode!==`none`&&e.delivery.to)L(e.delivery.channel||`telegram`),R(e.delivery.to||``);else if(i)L(`telegram`),R(``);else{let e=t.split(`:`);e.length>=3&&[`telegram`,`cli`,`gateway`,`local`].includes(e[0])?(L(e[0]),R(e[1]),B(e.slice(2).join(`:`))):(L(`telegram`),R(``))}}else Lt(``),zt(ct),L(`local`),R(``),B(``),Gt(`main`),H(``),G(``),U(!1),K(Z());Ht(`edit`),Wt(e=>e+1)},[Z]),On=(0,S.useCallback)(e=>{Ht(e),e===`edit`&&Wt(e=>e+1)},[]),kn=(0,S.useCallback)(e=>{let n=Je(e),r=n?Ke(t.cron,e):void 0;!n||!r||(Qt.current=!1,Nt(`add`),Ft(null),Lt(r.title),zt(n.defaultSchedule),B(r.prompt),Gt(n.defaultSessionTarget),L(`local`),R(``),U(!1),H(``),G(``),K(Z()),Ht(`edit`),Wt(e=>e+1),pn(!1),Mt(!0))},[Z,t.cron]),An=(0,S.useCallback)(()=>{Mt(!1),Nt(`add`),Ft(null),Lt(``),zt(ct),L(`local`),R(``),B(``),Gt(`main`),H(``),G(``),Yt(!1),U(!1),K(``),Ht(`edit`),Qt.current=!1},[]),jn=async()=>{if(!It.trim()){M(n.nameRequired);return}if(!Rt.trim()||!z.trim()){M(n.scheduleRequired);return}if(xn&&!Bt.trim()){M(n.chatIdRequired);return}Zt(!0),M(null);try{let e=z.trim(),t;t=V===`isolated`&&qt?{mode:`none`}:I===`local`?{mode:`direct`,channel:`local`}:{mode:`direct`,channel:I,to:Bt.trim()};let n=V===`isolated`?{kind:`agentTurn`,message:e,...Xt.trim()?{model:Xt.trim()}:{}}:{kind:`systemEvent`,text:e},r=Xt.trim(),i=Kt.trim().toLowerCase(),a=V===`main`?null:i||null,o=W.trim(),s={name:It.trim(),schedule:Rt.trim(),sessionTarget:V,model:V===`isolated`&&r?r:void 0,delivery:t,payload:n,...F===`edit`?{agentId:a,workingDirectory:V===`isolated`&&o||null}:{...V===`isolated`&&i?{agentId:i}:{},...V===`isolated`&&o?{workingDirectory:o}:{}}};if(F===`edit`&&Pt)await ve(Pt,s);else{let{schedule:e,agentId:t,workingDirectory:n,...r}=s;await Le(e,{...r,...t==null?{}:{agentId:t},...n?{workingDirectory:n}:{}})}An(),await Q(),await $()}catch(e){M(e instanceof Error?e.message:F===`edit`?n.failedToUpdateJob:n.failedToCreateJob)}finally{Zt(!1)}},Mn=async e=>{en(!0),tn(e),on(!0),rn([]);try{let t=await Ee(e.id);t&&(tn(t),rn(await De(e.id,20)))}catch{}finally{on(!1)}},Nn=async(e,t)=>{try{await ye(e.id,t),await Q(),await $()}catch(e){M(e instanceof Error?e.message:n.failedToToggleJob)}},Pn=async()=>{if(!un||!Y)return;let e=un,t=Y;cn(!1),dn(null),ln(null);try{t===`run`?await ze(e):(await Se(e),J?.id===e&&(en(!1),tn(null))),await Q(),await $(),await wn()}catch(e){M(e instanceof Error?e.message:n.actionFailed)}};(0,S.useEffect)(()=>{let e=e=>{e.key===`Escape`&&(P?An():$t&&(en(!1),tn(null)))};return document.addEventListener(`keydown`,e),()=>document.removeEventListener(`keydown`,e)},[P,$t,An]);let Fn={running:n.execStatusRunning,success:n.execStatusSuccess,failed:n.execStatusFailed,cancelled:n.execStatusCancelled},In=(0,S.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 D===`created_desc`?r-n:n-r}),e},[C,D]),Ln=(0,S.useMemo)(()=>{let e=new Date,t=O===`day`?at(e):O===`week`?ot(e):st(e);return kt.filter(e=>!(new Date(e.startedAt)<t||Qe&&e.jobId!==Qe||$e&&e.status!==$e))},[kt,O,Qe,$e]),Rn=n.scheduleBadge,zn=(0,S.useCallback)(()=>{Q(),$(),wn()},[Q,$,wn]),Bn=le(e=>e.setPageHeader),Vn=le(e=>e.clearPageHeader),{pathname:Hn}=re(),Un=Hn.startsWith(`/settings/`),Wn=(0,S.useMemo)(()=>(0,w.jsxs)(`div`,{className:`flex min-w-0 flex-1 flex-wrap items-center justify-end gap-2`,children:[(0,w.jsx)(m,{type:`button`,variant:`ghost`,className:`h-9 w-9 shrink-0 p-0`,disabled:Et||N,title:n.refresh,"aria-label":n.refresh,onClick:()=>void zn(),children:(0,w.jsx)(l,{className:r(`size-4`,(Et||N)&&`animate-spin`),strokeWidth:1.75})}),(0,w.jsxs)(m,{type:`button`,variant:`secondary`,className:`gap-2`,onClick:()=>{hn(`all`),pn(!0)},children:[(0,w.jsx)(me,{className:`size-4`,strokeWidth:1.75}),n.fromTemplate]}),(0,w.jsxs)(m,{type:`button`,variant:`primary`,className:`gap-2`,onClick:()=>Dn(),children:[(0,w.jsx)(ee,{className:`size-4`,strokeWidth:1.75}),n.addJob]})]}),[n.addJob,n.fromTemplate,n.refresh,Et,Dn,zn,N]);return(0,S.useLayoutEffect)(()=>!y||Un?(Vn(),()=>Vn()):(Bn({startExtra:null,main:null,end:Wn}),()=>Vn()),[Vn,Wn,y,Un,Bn]),y?(0,w.jsxs)(`div`,{className:`flex min-h-0 flex-1 flex-col overflow-y-auto bg-surface-panel`,children:[(0,w.jsxs)(`div`,{className:`mx-auto flex w-full max-w-app-main flex-col gap-6 px-4 py-6 sm:px-8`,children:[Ot?(0,w.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:Ot}):null,(0,w.jsx)(`header`,{className:`flex flex-col gap-4`,children:(0,w.jsxs)(`div`,{className:`min-w-0`,children:[(0,w.jsx)(`h1`,{className:`text-xl font-semibold tracking-tight text-fg`,children:n.title}),(0,w.jsx)(`p`,{className:`mt-1 max-w-2xl text-sm text-fg-muted`,children:n.subtitle})]})}),Un?(0,w.jsx)(`div`,{className:`flex flex-wrap items-center justify-end gap-2 border-b border-edge-subtle pb-3 dark:border-edge-subtle`,children:Wn}):null,(0,w.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,w.jsxs)(`div`,{className:`flex gap-1`,role:`tablist`,"aria-label":n.title,children:[(0,w.jsx)(`button`,{type:`button`,role:`tab`,"aria-selected":T===`tasks`,className:r(`rounded-md px-3 py-2 text-sm font-medium transition-colors`,T===`tasks`?`text-fg`:`text-fg-muted hover:text-fg`),onClick:()=>E(`tasks`),children:n.tabMyTasks}),(0,w.jsx)(`button`,{type:`button`,role:`tab`,"aria-selected":T===`history`,className:r(`rounded-md px-3 py-2 text-sm font-medium transition-colors`,T===`history`?`text-fg`:`text-fg-muted hover:text-fg`),onClick:()=>E(`history`),children:n.tabRunHistory})]}),(0,w.jsx)(`div`,{className:r(`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,w.jsxs)(`select`,{className:ht,value:D,onChange:e=>Xe(e.target.value),"aria-label":n.sortCreatedDesc,children:[(0,w.jsx)(`option`,{value:`created_desc`,children:n.sortCreatedDesc}),(0,w.jsx)(`option`,{value:`created_asc`,children:n.sortCreatedAsc})]}):(0,w.jsxs)(w.Fragment,{children:[(0,w.jsx)(`div`,{className:r(ie,`shrink-0`),role:`group`,"aria-label":n.runHistoryTitle,children:[`day`,`week`,`month`].map(e=>(0,w.jsx)(`button`,{type:`button`,className:r(ce,`px-2.5 py-1`,O===e&&`bg-surface-panel shadow-sm dark:bg-surface-panel dark:shadow-sm dark:ring-1 dark:ring-edge-strong/40`,O===e&&`text-fg`),onClick:()=>Ze(e),children:e===`day`?n.historyRangeDay:e===`week`?n.historyRangeWeek:n.historyRangeMonth},e))}),(0,w.jsxs)(`select`,{className:ht,value:Qe,onChange:e=>k(e.target.value),"aria-label":n.filterAllTasks,children:[(0,w.jsx)(`option`,{value:``,children:n.filterAllTasks}),C.map(e=>(0,w.jsx)(`option`,{value:e.id,children:e.name||e.id},e.id))]}),(0,w.jsxs)(`select`,{className:ht,value:$e,onChange:e=>et(e.target.value),"aria-label":n.filterAllStatuses,children:[(0,w.jsx)(`option`,{value:``,children:n.filterAllStatuses}),(0,w.jsx)(`option`,{value:`success`,children:n.execStatusSuccess}),(0,w.jsx)(`option`,{value:`failed`,children:n.execStatusFailed}),(0,w.jsx)(`option`,{value:`cancelled`,children:n.execStatusCancelled}),(0,w.jsx)(`option`,{value:`running`,children:n.execStatusRunning})]})]})})]}),T===`tasks`?(0,w.jsxs)(`section`,{"aria-labelledby":`cron-tasks-panel`,className:`flex flex-col gap-4`,children:[(0,w.jsx)(`h2`,{id:`cron-tasks-panel`,className:`sr-only`,children:n.tabMyTasks}),(0,w.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,w.jsxs)(`div`,{className:`flex gap-3 text-sm text-fg`,children:[(0,w.jsx)(fe,{className:`mt-0.5 size-4 shrink-0 text-accent`,strokeWidth:1.75,"aria-hidden":!0}),(0,w.jsx)(`p`,{className:`text-pretty text-fg-muted`,children:n.wakeBanner})]}),(0,w.jsxs)(`div`,{className:`flex shrink-0 items-center gap-2 sm:pl-4`,children:[(0,w.jsx)(`span`,{className:`text-sm text-fg`,children:n.keepAwake}),(0,w.jsx)(`button`,{type:`button`,role:`switch`,"aria-checked":A,disabled:!j,title:j?void 0:n.wakeLockUnavailable,className:r(`inline-flex h-6 w-10 shrink-0 items-center rounded-full border border-edge p-0.5 transition-colors`,A?`justify-end bg-accent`:`justify-start bg-surface-hover`,!j&&`cursor-not-allowed opacity-50`),onClick:()=>{j?tt(e=>!e):M(n.wakeLockUnavailable)},children:(0,w.jsx)(`span`,{className:`size-4 rounded-full bg-surface-panel shadow-surface ring-1 ring-edge/40 dark:ring-edge/55`})})]})]}),Et&&C.length===0?(0,w.jsx)(`div`,{className:`flex justify-center py-16`,"aria-busy":`true`,children:(0,w.jsx)(d,{className:`size-8 animate-spin text-accent`,strokeWidth:1.75})}):C.length===0?(0,w.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,w.jsx)(`div`,{className:`w-full max-w-3xl`,children:(0,w.jsx)(Ye,{cron:n,localeTag:ke,scheduleBadgeLabels:Rn,categoryFilter:mn,onCategoryFilterChange:hn,onSelectTemplate:kn})}),(0,w.jsx)(`div`,{className:`flex justify-center`,children:(0,w.jsx)(m,{type:`button`,variant:`primary`,onClick:()=>Dn(),children:n.emptyStateCta})})]}):(0,w.jsx)(`div`,{className:`grid gap-4 sm:grid-cols-2`,children:In.map(e=>(0,w.jsxs)(`article`,{role:`button`,tabIndex:0,className:r(`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(X.current===e.id){X.current=null;return}Mn(e)},onKeyDown:t=>{if(t.key===`Enter`||t.key===` `){if(t.preventDefault(),X.current===e.id){X.current=null;return}Mn(e)}},children:[(0,w.jsxs)(`div`,{className:`flex items-start justify-between gap-2 px-4 pt-3`,children:[(0,w.jsx)(`button`,{type:`button`,role:`switch`,"aria-checked":e.enabled,className:r(`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(),Nn(e,!e.enabled)},children:(0,w.jsx)(`span`,{className:`size-4 rounded-full bg-surface-panel shadow-surface ring-1 ring-edge/40 dark:ring-edge/55`})}),(0,w.jsxs)(He,{children:[(0,w.jsx)(Ve,{asChild:!0,children:(0,w.jsx)(m,{type:`button`,variant:`ghost`,className:`h-8 w-8 shrink-0 p-0`,"aria-label":n.jobCardMenuAria,onClick:e=>e.stopPropagation(),children:(0,w.jsx)(_e,{className:`size-4`,strokeWidth:1.75})})}),(0,w.jsx)(We,{children:(0,w.jsxs)(Ge,{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,w.jsx)(Ue,{className:`cursor-pointer select-none rounded-lg px-2 py-1.5 text-sm text-fg outline-none data-highlighted:bg-surface-hover`,onSelect:()=>{gn(e.id),Dn(e)},children:n.edit}),(0,w.jsx)(Ue,{className:`cursor-pointer select-none rounded-lg px-2 py-1.5 text-sm text-fg outline-none data-highlighted:bg-surface-hover`,onSelect:()=>{gn(e.id),ln(`run`),dn(e.id),cn(!0)},children:n.runNow}),(0,w.jsx)(Ue,{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:()=>{gn(e.id),ln(`delete`),dn(e.id),cn(!0)},children:n.delete})]})})]})]}),(0,w.jsxs)(`div`,{className:`flex flex-1 flex-col gap-2 px-4 pb-3 pt-2`,children:[(0,w.jsx)(`h3`,{className:`line-clamp-2 font-semibold text-fg`,children:e.name||e.id}),(0,w.jsx)(`div`,{className:`max-h-[4.5rem] overflow-hidden text-sm text-fg-muted [&_.markdown-body]:text-sm [&_.markdown-body]:leading-snug`,title:we(e),children:(0,w.jsx)(u,{content:we(e),compact:!0})})]}),(0,w.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,w.jsx)(o,{className:`size-3.5 shrink-0`,strokeWidth:1.75,"aria-hidden":!0}),(0,w.jsx)(`span`,{className:`min-w-0 truncate`,children:Me(e,ke,Rn)})]})]},e.id))})]}):(0,w.jsxs)(`section`,{"aria-labelledby":`cron-history-panel`,className:`flex flex-col gap-3`,children:[(0,w.jsxs)(`div`,{className:`flex items-start justify-between gap-2`,children:[(0,w.jsxs)(`div`,{children:[(0,w.jsx)(`h2`,{id:`cron-history-panel`,className:`sr-only`,children:n.tabRunHistory}),(0,w.jsx)(`p`,{className:`text-xs text-fg-muted`,children:n.runHistoryHint})]}),(0,w.jsx)(m,{type:`button`,variant:`ghost`,className:`h-9 w-9 shrink-0 p-0`,disabled:N,title:n.refresh,"aria-label":n.refresh,onClick:()=>void wn(),children:(0,w.jsx)(l,{className:r(`size-4`,N&&`animate-spin`),strokeWidth:1.75})})]}),N&&kt.length===0?(0,w.jsx)(`div`,{className:`flex justify-center py-16`,children:(0,w.jsx)(d,{className:`size-8 animate-spin text-accent`,strokeWidth:1.75})}):Ln.length===0?(0,w.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,w.jsx)(o,{className:`mb-4 size-14 text-fg-disabled`,strokeWidth:1.1,"aria-hidden":!0}),(0,w.jsx)(`h3`,{className:`text-base font-semibold text-fg`,children:kt.length===0?n.emptyHistoryTitle:n.noRunsYet}),(0,w.jsx)(`p`,{className:`mt-2 max-w-sm text-sm text-fg-muted`,children:kt.length===0?n.emptyHistoryHint:n.runHistoryHint})]}):(0,w.jsx)(`div`,{className:`overflow-x-auto rounded-xl border border-edge-subtle bg-surface-base dark:border-edge-subtle`,children:(0,w.jsxs)(`table`,{className:`w-full min-w-[700px] border-collapse text-left text-sm`,children:[(0,w.jsx)(`thead`,{children:(0,w.jsxs)(`tr`,{className:`border-b border-edge text-xs font-medium text-fg-muted`,children:[(0,w.jsx)(`th`,{className:`px-3 py-2.5 font-medium`,children:n.colStarted}),(0,w.jsx)(`th`,{className:`px-3 py-2.5 font-medium`,children:n.colJob}),(0,w.jsx)(`th`,{className:`px-3 py-2.5 font-medium`,children:n.status}),(0,w.jsx)(`th`,{className:`px-3 py-2.5 font-medium`,children:n.colDuration}),(0,w.jsx)(`th`,{className:`px-3 py-2.5 font-medium`,children:n.colDetail}),(0,w.jsx)(`th`,{className:`px-3 py-2.5 font-medium`,children:n.colChat})]})}),(0,w.jsx)(`tbody`,{children:Ln.map(e=>(0,w.jsxs)(`tr`,{className:`border-b border-edge/60 last:border-0`,children:[(0,w.jsx)(`td`,{className:`whitespace-nowrap px-3 py-2.5 text-fg`,children:(0,w.jsx)(`time`,{dateTime:e.startedAt,children:Fe(e.startedAt)})}),(0,w.jsx)(`td`,{className:`max-w-[10rem] truncate px-3 py-2.5`,children:C.some(t=>t.id===e.jobId)?(0,w.jsx)(`button`,{type:`button`,className:`text-left text-accent hover:underline`,onClick:()=>{let t=C.find(t=>t.id===e.jobId);t&&Mn(t)},children:e.jobName||e.jobId}):(0,w.jsx)(`span`,{className:`text-fg-muted`,children:e.jobName||e.jobId})}),(0,w.jsx)(`td`,{className:`px-3 py-2.5`,children:(0,w.jsx)(`span`,{className:r(`inline-flex rounded-md px-2 py-0.5 text-xs 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`,e.status===`running`&&`bg-accent/15 text-accent`,e.status===`cancelled`&&`bg-surface-hover text-fg-muted`),children:Ie(e.status,Fn)})}),(0,w.jsx)(`td`,{className:`whitespace-nowrap px-3 py-2.5 text-fg-muted`,children:Pe(e.duration)}),(0,w.jsx)(`td`,{className:`max-w-xs truncate px-3 py-2.5 text-fg-muted`,title:e.summary||e.error||``,children:Ce(e.summary||e.error,96)}),(0,w.jsx)(`td`,{className:`whitespace-nowrap px-3 py-2.5`,children:e.sessionKey?.trim()?(0,w.jsx)(`button`,{type:`button`,className:`text-xs font-medium text-accent hover:underline`,title:n.openChatTitle,"aria-label":n.openChatTitle,onClick:()=>ut(e.sessionKey),children:n.openChat}):(0,w.jsx)(`span`,{className:`text-fg-disabled`,children:`—`})})]},e.id))})]})})]})]}),(0,w.jsx)(h,{open:P,onOpenChange:e=>!e&&An(),children:(0,w.jsxs)(ge,{children:[(0,w.jsx)(v,{className:`xopc-dialog-overlay fixed inset-0 z-[60] bg-scrim`}),(0,w.jsx)(`div`,{className:`fixed inset-0 z-[60] flex items-center justify-center p-4 pointer-events-none`,children:(0,w.jsxs)(pe,{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,w.jsxs)(`div`,{className:`flex shrink-0 items-center justify-between gap-2 border-b border-edge px-4 py-3`,children:[(0,w.jsx)(_,{className:`text-base font-semibold text-fg`,children:F===`edit`?n.editJob:n.addJob}),(0,w.jsx)(b,{asChild:!0,children:(0,w.jsx)(m,{type:`button`,variant:`ghost`,className:`h-9 w-9 shrink-0 p-0`,"aria-label":n.close,children:(0,w.jsx)(g,{className:`size-5`,strokeWidth:1.75})})})]}),(0,w.jsx)(`div`,{className:`min-h-0 flex-1 overflow-y-auto px-4 py-3`,children:(0,w.jsxs)(`div`,{className:`flex flex-col gap-3`,children:[(0,w.jsxs)(`label`,{className:`flex flex-col gap-1`,children:[(0,w.jsx)(`span`,{className:`text-xs font-medium text-fg-muted`,children:n.name}),(0,w.jsx)(`input`,{type:`text`,className:ft(),value:It,onChange:e=>Lt(e.target.value),placeholder:n.namePlaceholder})]}),(0,w.jsx)(rt,{value:Rt,onChange:zt,disabled:q,labels:n.schedulePicker}),(0,w.jsxs)(`label`,{className:`flex flex-col gap-1`,children:[(0,w.jsx)(`span`,{className:`text-xs font-medium text-fg-muted`,children:n.mode}),(0,w.jsxs)(`select`,{className:pt(),value:V,onChange:e=>{let t=e.target.value;Gt(t),t===`main`?(U(!1),H(``),G(``)):t===`isolated`&&!Xt.trim()&&K(Z())},children:[(0,w.jsx)(`option`,{value:`main`,children:n.modeDirectOption}),(0,w.jsx)(`option`,{value:`isolated`,children:n.modeAgentOption})]}),(0,w.jsx)(`p`,{className:`text-xs text-fg-muted`,children:V===`main`?n.modeDirect:n.modeAgent})]}),V===`isolated`?(0,w.jsxs)(w.Fragment,{children:[(0,w.jsxs)(`div`,{className:`flex flex-col gap-1`,children:[(0,w.jsx)(`span`,{className:`text-xs font-medium text-fg-muted`,children:n.model}),(0,w.jsx)(ae,{value:Xt,placeholder:p.modelPlaceholder,searchPlaceholder:p.modelSearchPlaceholder,noMatches:p.modelNoMatches,className:`w-full max-w-none min-w-0`,popoverContentClassName:`z-[70]`,onChange:e=>{Qt.current=!0,K(e)}})]}),(0,w.jsxs)(`label`,{className:`flex flex-col gap-1`,children:[(0,w.jsx)(`span`,{className:`text-xs font-medium text-fg-muted`,children:n.agentProfile}),(0,w.jsxs)(`select`,{className:pt(),value:Kt,disabled:q,onChange:e=>H(e.target.value),children:[(0,w.jsx)(`option`,{value:``,children:n.agentProfileDefault}),bn.map(e=>(0,w.jsx)(`option`,{value:e.id,children:e.name?`${e.id} — ${e.name}`:e.id},e.id))]}),(0,w.jsx)(`p`,{className:`text-xs text-fg-muted`,children:n.agentProfileHint})]}),(0,w.jsxs)(`div`,{className:`flex flex-col gap-1`,children:[(0,w.jsx)(`span`,{className:`text-xs font-medium text-fg-muted`,children:n.workingDirectoryLabel}),(0,w.jsxs)(`div`,{className:`flex flex-wrap items-center gap-2`,children:[(0,w.jsxs)(`button`,{type:`button`,disabled:q,className:r(`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`,s.transition,s.focusRingPanel,`cursor-pointer hover:bg-surface-hover/70 dark:hover:bg-surface-hover/50`,q&&`cursor-not-allowed opacity-60`),title:W.trim()?`${W.trim()}\n${p.workingDirectory.chooseFolder}`:`${n.workingDirectoryHint}\n${p.workingDirectory.selectWorkingDirectory}`,onClick:e=>{e.stopPropagation(),!q&&(_n?(async()=>{let e=await vn();e&&yn(e)})():Yt(!0))},children:[(0,w.jsx)(x,{className:`size-3.5 shrink-0 text-fg-muted`,"aria-hidden":!0}),(0,w.jsx)(`span`,{className:`min-w-0 truncate text-left font-medium text-fg`,children:W.trim()?se(W.trim()):p.workingDirectory.notSet})]}),W.trim()?(0,w.jsx)(`button`,{type:`button`,disabled:q,className:`text-xs font-medium text-accent hover:underline disabled:opacity-50`,onClick:()=>G(``),children:n.workingDirectoryReset}):null]}),(0,w.jsx)(`p`,{className:`text-xs text-fg-muted`,children:n.workingDirectoryHint})]}),(0,w.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,w.jsx)(`input`,{type:`checkbox`,className:r(`ui-checkbox`,`mt-0.5`),checked:qt,onChange:e=>U(e.target.checked)}),(0,w.jsxs)(`span`,{children:[(0,w.jsx)(`span`,{className:`text-sm font-medium text-fg`,children:n.agentLocalOnly}),(0,w.jsx)(`p`,{className:`mt-1 text-xs text-fg-muted`,children:n.agentLocalOnlyHint})]})]})]}):null,Sn?(0,w.jsxs)(w.Fragment,{children:[(0,w.jsxs)(`label`,{className:`flex flex-col gap-1`,children:[(0,w.jsx)(`span`,{className:`text-xs font-medium text-fg-muted`,children:n.channel}),(0,w.jsxs)(`select`,{className:pt(),value:I,onChange:e=>{let t=e.target.value;L(t),t===`local`&&U(!1),R(``)},children:[(0,w.jsx)(`option`,{value:`local`,children:n.channelLocal}),gt.map(e=>(0,w.jsxs)(`option`,{value:e.name,disabled:!e.enabled,children:[e.name,` `,e.enabled?``:`(disabled)`]},e.name))]})]}),xn?(0,w.jsxs)(`div`,{className:`flex flex-col gap-1`,children:[(0,w.jsxs)(`div`,{className:`flex items-center justify-between gap-2`,children:[(0,w.jsx)(`span`,{className:`text-xs font-medium text-fg-muted`,children:n.recipient}),(0,w.jsxs)(m,{type:`button`,variant:`ghost`,className:`h-7 gap-1 px-2 text-xs`,title:n.refreshRecipientHint,onClick:()=>void Re(I).then(Ct),children:[(0,w.jsx)(l,{className:`size-3.5`,strokeWidth:1.75}),n.refreshList]})]}),(0,w.jsxs)(`div`,{className:`flex flex-col gap-2 sm:flex-row sm:items-stretch sm:gap-2`,children:[(0,w.jsx)(`input`,{type:`text`,className:r(ft(),`min-w-0 w-full sm:flex-1`),value:Bt,onChange:e=>R(e.target.value),placeholder:n.recipientPlaceholder}),(0,w.jsxs)(`select`,{className:mt,value:Bt,onChange:e=>{let t=e.target.value;t&&R(t)},children:[(0,w.jsx)(`option`,{value:``,children:n.selectRecipient}),St.length>0?St.map(e=>(0,w.jsx)(`option`,{value:e.chatId,children:xe(e,n.lastActiveLabels)},`${e.channel}-${e.chatId}`)):(0,w.jsx)(`option`,{value:``,disabled:!0,children:n.noRecentChatsOption})]})]}),(0,w.jsx)(`p`,{className:`text-xs text-fg-muted`,children:St.length>0?n.enterManuallyOrSelect:n.noRecentChats})]}):null]}):null,(0,w.jsxs)(`div`,{className:`flex flex-col gap-1`,children:[(0,w.jsxs)(`div`,{className:`flex flex-wrap items-center justify-between gap-2`,children:[(0,w.jsx)(`span`,{className:`text-xs font-medium text-fg-muted`,children:n.message}),(0,w.jsxs)(`div`,{className:`inline-flex rounded-lg border border-edge bg-surface-base p-0.5 dark:border-edge`,children:[(0,w.jsxs)(`button`,{type:`button`,className:r(`inline-flex items-center gap-1.5 rounded-md px-2.5 py-1.5 text-xs font-medium`,Vt===`edit`?`bg-accent-soft text-accent-fg`:`text-fg-muted hover:bg-surface-hover`),onClick:()=>On(`edit`),children:[(0,w.jsx)(a,{className:`size-3.5 shrink-0`,strokeWidth:1.75,"aria-hidden":!0}),n.messageEdit]}),(0,w.jsxs)(`button`,{type:`button`,className:r(`inline-flex items-center gap-1.5 rounded-md px-2.5 py-1.5 text-xs font-medium`,Vt===`preview`?`bg-accent-soft text-accent-fg`:`text-fg-muted hover:bg-surface-hover`),onClick:()=>On(`preview`),children:[(0,w.jsx)(f,{className:`size-3.5 shrink-0`,strokeWidth:1.75,"aria-hidden":!0}),n.messagePreview]})]})]}),(0,w.jsx)(`div`,{className:r(`overflow-hidden rounded-md border border-edge bg-surface-base dark:border-edge`,q&&`pointer-events-none opacity-60`),children:Vt===`edit`?(0,w.jsx)(ne,{initialContent:z,onChange:B,isDark:ue,className:`h-[min(18rem,40vh)] min-h-[12rem]`},`cron-msg-${Pt??`new`}-${Ut}`):(0,w.jsx)(`div`,{className:`h-[min(18rem,40vh)] min-h-[12rem] max-h-[min(24rem,50vh)] overflow-y-auto px-3 py-2`,children:z.trim()?(0,w.jsx)(u,{content:z,compact:!0,className:`text-sm`}):(0,w.jsx)(`p`,{className:`text-sm text-fg-muted`,children:n.messagePlaceholder})})}),(0,w.jsx)(`p`,{className:`text-xs text-fg-muted`,children:n.messageMarkdownHint})]})]})}),(0,w.jsxs)(`div`,{className:`flex shrink-0 justify-end gap-2 border-t border-edge px-4 py-3`,children:[(0,w.jsx)(m,{type:`button`,variant:`secondary`,onClick:An,children:n.cancel}),(0,w.jsx)(m,{type:`button`,variant:`primary`,disabled:q||!Cn,onClick:()=>void jn(),children:q?n.loading:F===`edit`?n.save:n.create})]})]})})]})}),_n?null:(0,w.jsx)(oe,{open:Jt,onOpenChange:Yt,initialAbsolutePath:W.trim()||void 0,onConfirm:async e=>{await yn(e),Yt(!1)},wd:p.workingDirectory}),(0,w.jsx)(h,{open:fn,onOpenChange:e=>{pn(e),e&&hn(`all`)},children:(0,w.jsxs)(ge,{children:[(0,w.jsx)(v,{className:`xopc-dialog-overlay fixed inset-0 z-[62] bg-scrim`}),(0,w.jsx)(`div`,{className:`fixed inset-0 z-[62] flex items-center justify-center p-4 pointer-events-none`,children:(0,w.jsxs)(pe,{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,w.jsxs)(`div`,{className:`flex shrink-0 items-center justify-end border-b border-edge px-4 py-3`,children:[(0,w.jsx)(_,{className:`sr-only`,children:n.fromTemplate}),(0,w.jsx)(b,{asChild:!0,children:(0,w.jsx)(m,{type:`button`,variant:`ghost`,className:`h-9 w-9 shrink-0 p-0`,"aria-label":n.close,children:(0,w.jsx)(g,{className:`size-5`,strokeWidth:1.75})})})]}),(0,w.jsx)(`div`,{className:`min-h-0 flex-1 overflow-y-auto px-4 py-4`,children:(0,w.jsx)(Ye,{cron:n,localeTag:ke,scheduleBadgeLabels:Rn,categoryFilter:mn,onCategoryFilterChange:hn,onSelectTemplate:kn})})]})})]})}),(0,w.jsx)(h,{open:$t,onOpenChange:e=>{e||(en(!1),tn(null))},children:(0,w.jsxs)(ge,{children:[(0,w.jsx)(v,{className:`xopc-dialog-overlay fixed inset-0 z-[60] bg-scrim`}),(0,w.jsxs)(pe,{className:r(`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,w.jsxs)(`div`,{className:`flex shrink-0 items-center justify-between gap-2 border-b border-edge px-4 py-3`,children:[(0,w.jsx)(_,{className:`min-w-0 truncate text-base font-semibold text-fg`,children:J?.name?.trim()||J?.id||`—`}),(0,w.jsx)(b,{asChild:!0,children:(0,w.jsx)(m,{type:`button`,variant:`ghost`,className:`h-9 w-9 shrink-0 p-0`,"aria-label":n.close,children:(0,w.jsx)(g,{className:`size-5`,strokeWidth:1.75})})})]}),(0,w.jsx)(`div`,{className:`min-h-0 flex-1 overflow-y-auto px-4 py-3`,children:an?(0,w.jsx)(`div`,{className:`flex justify-center py-16`,children:(0,w.jsx)(d,{className:`size-8 animate-spin text-accent`,strokeWidth:1.75})}):J?(0,w.jsxs)(w.Fragment,{children:[(0,w.jsxs)(`dl`,{className:`space-y-3 text-sm`,children:[(0,w.jsxs)(`div`,{children:[(0,w.jsx)(`dt`,{className:`text-xs font-medium text-fg-muted`,children:n.scheduleLabel}),(0,w.jsx)(`dd`,{className:`mt-1 font-mono text-fg`,children:(0,w.jsx)(`code`,{children:J.schedule})})]}),(0,w.jsxs)(`div`,{children:[(0,w.jsx)(`dt`,{className:`text-xs font-medium text-fg-muted`,children:n.messageLabel}),(0,w.jsx)(`dd`,{className:`mt-1 min-w-0 break-words text-fg`,children:(0,w.jsx)(u,{content:we(J),compact:!0,className:`text-sm`})})]}),(0,w.jsxs)(`div`,{children:[(0,w.jsx)(`dt`,{className:`text-xs font-medium text-fg-muted`,children:n.mode}),(0,w.jsx)(`dd`,{className:`mt-1 text-fg`,children:J.sessionTarget===`isolated`?n.modeAgentOption:n.modeDirectOption})]}),J.sessionTarget===`isolated`?(0,w.jsxs)(`div`,{children:[(0,w.jsx)(`dt`,{className:`text-xs font-medium text-fg-muted`,children:n.agentProfile}),(0,w.jsx)(`dd`,{className:`mt-1 font-mono text-sm text-fg`,children:J.agentId?.trim()?J.agentId.trim():n.agentProfileDefault})]}):null,J.sessionTarget===`isolated`?(0,w.jsxs)(`div`,{children:[(0,w.jsx)(`dt`,{className:`text-xs font-medium text-fg-muted`,children:n.workingDirectoryLabel}),(0,w.jsx)(`dd`,{className:`mt-1 break-all font-mono text-xs text-fg`,children:J.workingDirectory?.trim()?J.workingDirectory.trim():p.workingDirectory.notSet})]}):null,J.delivery?.channel===`local`||J.sessionTarget===`isolated`&&!J.delivery?.to?(0,w.jsxs)(`div`,{children:[(0,w.jsx)(`dt`,{className:`text-xs font-medium text-fg-muted`,children:n.deliveryTarget}),(0,w.jsx)(`dd`,{className:`mt-1 text-fg`,children:J.delivery?.channel===`local`?n.deliveryTargetLocalChannel:n.deliveryLocalOnly})]}):J.delivery?.to?(0,w.jsxs)(`div`,{children:[(0,w.jsx)(`dt`,{className:`text-xs font-medium text-fg-muted`,children:n.deliveryTarget}),(0,w.jsxs)(`dd`,{className:`mt-1 break-words text-fg`,children:[(0,w.jsx)(`code`,{className:`text-xs`,children:J.delivery?.channel??``}),` → `,je(J,n.channelLocal)]})]}):null,(0,w.jsxs)(`div`,{children:[(0,w.jsx)(`dt`,{className:`text-xs font-medium text-fg-muted`,children:n.status}),(0,w.jsx)(`dd`,{className:`mt-1 text-fg`,children:J.enabled?n.enabled:n.disabled})]}),(0,w.jsxs)(`div`,{children:[(0,w.jsx)(`dt`,{className:`text-xs font-medium text-fg-muted`,children:n.nextRun}),(0,w.jsx)(`dd`,{className:`mt-1 text-fg`,children:J.next_run?Oe(J.next_run,n.timeLabels):`—`})]})]}),(0,w.jsx)(`h3`,{className:`mt-6 text-sm font-semibold text-fg`,children:n.detailRunHistory}),nn.length===0?(0,w.jsx)(`p`,{className:`mt-2 text-sm text-fg-muted`,children:n.noRunsYet}):(0,w.jsx)(`div`,{className:`mt-2 overflow-x-auto`,children:(0,w.jsxs)(`table`,{className:`w-full border-collapse text-left text-xs`,children:[(0,w.jsx)(`thead`,{children:(0,w.jsxs)(`tr`,{className:`border-b border-edge text-fg-muted`,children:[(0,w.jsx)(`th`,{className:`py-1.5 pr-2 font-medium`,children:n.colStarted}),(0,w.jsx)(`th`,{className:`py-1.5 pr-2 font-medium`,children:n.status}),(0,w.jsx)(`th`,{className:`py-1.5 pr-2 font-medium`,children:n.colDuration}),(0,w.jsx)(`th`,{className:`py-1.5 pr-2 font-medium`,children:n.colDetail}),(0,w.jsx)(`th`,{className:`py-1.5 font-medium`,children:n.colChat})]})}),(0,w.jsx)(`tbody`,{children:nn.map(e=>(0,w.jsxs)(`tr`,{className:`border-b border-edge/60`,children:[(0,w.jsx)(`td`,{className:`whitespace-nowrap py-1.5 pr-2 text-fg`,children:(0,w.jsx)(`time`,{dateTime:e.startedAt,children:Fe(e.startedAt)})}),(0,w.jsx)(`td`,{className:`py-1.5 pr-2`,children:(0,w.jsx)(`span`,{className:r(`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:Ie(e.status,Fn)})}),(0,w.jsx)(`td`,{className:`py-1.5 pr-2 text-fg-muted`,children:Pe(e.duration)}),(0,w.jsx)(`td`,{className:`max-w-[8rem] truncate py-1.5 pr-2 text-fg-muted`,title:e.summary||e.error||``,children:Ce(e.summary||e.error,120)}),(0,w.jsx)(`td`,{className:`whitespace-nowrap py-1.5`,children:e.sessionKey?.trim()?(0,w.jsx)(`button`,{type:`button`,className:`text-xs font-medium text-accent hover:underline`,title:n.openChatTitle,"aria-label":n.openChatTitle,onClick:()=>ut(e.sessionKey),children:n.openChat}):(0,w.jsx)(`span`,{className:`text-fg-disabled`,children:`—`})})]},e.id))})]})})]}):null})]})]})}),(0,w.jsx)(h,{open:sn,onOpenChange:cn,children:(0,w.jsxs)(ge,{children:[(0,w.jsx)(v,{className:`xopc-dialog-overlay fixed inset-0 z-[70] bg-scrim`}),(0,w.jsx)(`div`,{className:`fixed inset-0 z-[70] flex items-center justify-center p-4 pointer-events-none`,children:(0,w.jsxs)(pe,{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,w.jsx)(_,{className:`text-base font-semibold text-fg`,children:Y===`delete`?n.delete:n.runNow}),(0,w.jsx)(`p`,{className:`mt-2 text-sm text-fg-muted`,children:Y===`delete`?n.confirmDelete:n.confirmRun}),(0,w.jsxs)(`div`,{className:`mt-4 flex justify-end gap-2`,children:[(0,w.jsx)(m,{type:`button`,variant:`secondary`,onClick:()=>{cn(!1),dn(null),ln(null)},children:n.cancel}),(0,w.jsx)(m,{type:`button`,variant:`primary`,className:Y===`delete`?`bg-red-600 hover:bg-red-700`:void 0,onClick:()=>void Pn(),children:Y===`delete`?n.delete:n.runNow})]})]})})]})})]}):(0,w.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{gt as CronPage};
2
- //# sourceMappingURL=cron-page-S18t1yG-.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{t as r}from"./cn-BMCV0OMB.js";import{$t as i,Cn as a,Dr as o,H as s,Jt as c,Ln as ee,Pn as l,Qt as te,U as u,W as ne,Xr as re,Zn as d,_r as f,an as p,at as ie,cn as m,dt as h,f as ae,fn as g,ft as _,g as oe,h as se,it as ce,lt as v,nn as y,ot as b,pr as x,qt as le,rn as ue,sn as de,sr as fe,st as pe,tr as me,u as he,ut as ge,xr as _e}from"./index-lV8FGWlt.js";import{C as ve,S as ye,_ as be,a as xe,b as Se,c as Ce,d as we,f as Te,g as Ee,h as De,i as Oe,l as ke,m as Ae,n as je,o as Me,p as Ne,r as Pe,s as Fe,t as Ie,u as Le,v as Re,x as ze,y as Be}from"./cron-utils-BmzF4m1y.js";import{a as Ve,i as He,n as Ue,r as We,t as Ge}from"./dist-Dn-ufXyc.js";var S=e(t(),1);function Ke(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 C=[`daily`,`monitoring`,`reports`,`automation`],qe=[{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 Je(e){return qe.find(t=>t.templateId===e)}var w=n();function Ye(e){let{cron:t,localeTag:n,scheduleBadgeLabels:i,categoryFilter:a,onCategoryFilterChange:o,onSelectTemplate:s}=e,c=a===`all`?[...qe]:qe.filter(e=>e.category===a);return(0,w.jsxs)(`div`,{className:`flex w-full flex-col gap-4`,children:[(0,w.jsxs)(`div`,{className:`flex flex-wrap gap-2`,role:`group`,"aria-label":t.fromTemplate,children:[(0,w.jsx)(m,{type:`button`,variant:a===`all`?`secondary`:`ghost`,className:`h-8 rounded-full px-3 py-1.5 text-xs`,onClick:()=>o(`all`),children:t.templateFilterAll}),C.map(e=>(0,w.jsx)(m,{type:`button`,variant:a===e?`secondary`:`ghost`,className:`h-8 rounded-full px-3 py-1.5 text-xs`,onClick:()=>o(e),children:t.templateCategories[e]},e))]}),c.length===0?(0,w.jsx)(`p`,{className:`text-center text-sm text-fg-muted`,children:t.templatesEmptyHint}):(0,w.jsx)(`div`,{className:`grid gap-3 sm:grid-cols-2`,children:c.map(e=>{let a=Ke(t,e.templateId);if(!a)return null;let o=Me({schedule:e.defaultSchedule,timezone:void 0,next_run:void 0},n,i);return(0,w.jsxs)(`button`,{type:`button`,className:r(`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:()=>s(e.templateId),"aria-label":`${t.templateCategories[e.category]} — ${a.title}`,children:[(0,w.jsx)(`span`,{className:`font-semibold text-fg`,children:a.title}),(0,w.jsx)(`span`,{className:`line-clamp-2 text-sm text-fg-muted`,children:a.description}),(0,w.jsx)(`span`,{className:`mt-1 flex items-center gap-1 text-xs text-fg-muted`,children:(0,w.jsx)(`span`,{className:`tabular-nums`,children:o})})]},e.templateId)})})]})}var T=ke(),E=r(p,`min-w-0 shrink text-xs sm:min-w-[7rem] sm:max-w-[11rem]`),D=r(`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`,y,`dark:bg-surface-panel`),Xe=r(`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`,y),O=r(`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`,y),Ze=r(`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`,y);function Qe(){let e=new Date;return`${e.getFullYear()}-${String(e.getMonth()+1).padStart(2,`0`)}-${String(e.getDate()).padStart(2,`0`)}`}function k(e){return Array.isArray(e)?e.filter(e=>typeof e==`number`).sort((e,t)=>e-t):[]}function $e(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 et(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 A(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 tt(e){let t=e.trim(),n={mode:`custom`,intervalKind:`minutes`,onceDate:Qe(),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=T.CronExpressionParser.parse(t).fields,r=k(e.minute.values),i=k(e.hour.values),a=k(e.dayOfMonth.values),o=k(e.month.values),s=k(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=$e(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=$e(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],ee=`${e}-${String(s).padStart(2,`0`)}-${String(c).padStart(2,`0`)}`;return{...n,mode:`no_repeat`,minute:r[0],hour:i[0],onceDate:ee,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:A(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 nt(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)} * * ${et(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 rt({value:e,onChange:t,labels:n,disabled:i}){let a=(0,S.useMemo)(()=>tt(e),[e]),[o,s]=(0,S.useState)(a.mode),[c,ee]=(0,S.useState)(a.intervalKind),[l,te]=(0,S.useState)(a.onceDate),[u,ne]=(0,S.useState)(a.intervalMinutes),[re,d]=(0,S.useState)(a.intervalHours),[f,p]=(0,S.useState)(a.minute),[ie,m]=(0,S.useState)(a.hour),[h,ae]=(0,S.useState)(a.weekDays),[g,_]=(0,S.useState)(a.dayOfMonth),[oe,se]=(0,S.useState)(a.rawCron),[ce,v]=(0,S.useState)(null),[y,b]=(0,S.useState)(null);(0,S.useEffect)(()=>{let t=tt(e);s(t.mode),ee(t.intervalKind),te(t.onceDate),ne(t.intervalMinutes),d(t.intervalHours),p(t.minute),m(t.hour),ae(t.weekDays),_(t.dayOfMonth),se(t.rawCron),v(null),b(null)},[e]);let x=(0,S.useCallback)(e=>{t(nt({mode:o,intervalKind:c,onceDate:l,intervalMinutes:u,intervalHours:re,minute:f,hour:ie,weekDays:h,dayOfMonth:g,rawCron:oe,...e}))},[o,c,l,u,re,f,ie,h,g,oe,t]),le=`${String(ie).padStart(2,`0`)}:${String(f).padStart(2,`0`)}`,ue=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)||x({minute:r,hour:n})},de=(0,w.jsxs)(`div`,{className:`flex min-w-0 flex-nowrap items-center gap-2 overflow-x-auto pb-0.5`,children:[(0,w.jsxs)(`select`,{className:E,disabled:i,value:o,onChange:e=>{let t=e.target.value;s(t),x({mode:t})},"aria-label":n.scheduleTimeLabel,children:[(0,w.jsx)(`option`,{value:`no_repeat`,children:n.modeNoRepeat}),(0,w.jsx)(`option`,{value:`interval`,children:n.modeInterval}),(0,w.jsx)(`option`,{value:`hourly`,children:n.modeHourly}),(0,w.jsx)(`option`,{value:`daily`,children:n.modeDaily}),(0,w.jsx)(`option`,{value:`weekly`,children:n.modeWeekly}),(0,w.jsx)(`option`,{value:`monthly`,children:n.modeMonthly}),(0,w.jsx)(`option`,{value:`custom`,children:n.modeCustom})]}),o===`no_repeat`&&(0,w.jsxs)(w.Fragment,{children:[(0,w.jsx)(`input`,{type:`date`,disabled:i,className:Xe,value:l,onChange:e=>{let t=e.target.value;te(t),x({onceDate:t})},"aria-label":n.modeNoRepeat}),(0,w.jsx)(`input`,{type:`time`,step:60,disabled:i,className:D,value:le,onChange:ue,"aria-label":n.scheduleTimeLabel})]}),o===`interval`&&(0,w.jsxs)(w.Fragment,{children:[(0,w.jsxs)(`select`,{className:r(E,`w-auto min-w-[5rem]`),disabled:i,value:c,onChange:e=>{let t=e.target.value;ee(t),v(null),b(null),x({intervalKind:t})},"aria-label":n.modeInterval,children:[(0,w.jsx)(`option`,{value:`minutes`,children:n.intervalKindMinutes}),(0,w.jsx)(`option`,{value:`hours`,children:n.intervalKindHours})]}),c===`minutes`?(0,w.jsxs)(w.Fragment,{children:[(0,w.jsx)(`input`,{type:`number`,min:1,max:59,disabled:i,className:O,value:ce??String(u),onChange:e=>{let t=e.target.value;v(t);let n=parseInt(t,10);Number.isFinite(n)&&n>=1&&n<=59&&(ne(n),x({intervalMinutes:n}))},onBlur:()=>{if(ce===null)return;let e=parseInt(ce,10),t=!Number.isFinite(e)||e<1?5:Math.min(59,Math.max(1,Math.round(e)));ne(t),x({intervalMinutes:t}),v(null)},"aria-label":n.intervalMinutes}),(0,w.jsx)(`span`,{className:`shrink-0 text-sm text-fg-muted`,children:n.minuteUnit})]}):(0,w.jsxs)(w.Fragment,{children:[(0,w.jsx)(`input`,{type:`number`,min:1,max:23,disabled:i,className:O,value:y??String(re),onChange:e=>{let t=e.target.value;b(t);let n=parseInt(t,10);Number.isFinite(n)&&n>=1&&n<=23&&(d(n),x({intervalHours:n}))},onBlur:()=>{if(y===null)return;let e=parseInt(y,10),t=!Number.isFinite(e)||e<1?2:Math.min(23,Math.max(1,Math.round(e)));d(t),x({intervalHours:t}),b(null)},"aria-label":n.intervalHours}),(0,w.jsx)(`span`,{className:`shrink-0 text-sm text-fg-muted`,children:n.hourUnit}),(0,w.jsx)(`select`,{className:r(E,`w-auto min-w-[4rem]`),disabled:i,value:f,onChange:e=>{let t=parseInt(e.target.value,10);p(t),x({minute:t})},"aria-label":n.minuteAtHour,children:Array.from({length:60},(e,t)=>(0,w.jsx)(`option`,{value:t,children:String(t).padStart(2,`0`)},t))}),(0,w.jsx)(`span`,{className:`shrink-0 text-sm text-fg-muted`,children:n.minuteUnit})]})]}),o===`daily`&&(0,w.jsx)(`input`,{type:`time`,step:60,disabled:i,className:D,value:le,onChange:ue,"aria-label":n.scheduleTimeLabel}),o===`weekly`&&(0,w.jsx)(`input`,{type:`time`,step:60,disabled:i,className:D,value:le,onChange:ue,"aria-label":n.scheduleTimeLabel}),o===`monthly`&&(0,w.jsxs)(w.Fragment,{children:[(0,w.jsx)(`select`,{className:r(E,`w-auto min-w-[4.5rem]`),disabled:i,value:g,onChange:e=>{let t=parseInt(e.target.value,10);_(t),x({dayOfMonth:t})},"aria-label":n.dayOfMonth,children:Array.from({length:31},(e,t)=>t+1).map(e=>(0,w.jsx)(`option`,{value:e,children:e},e))}),(0,w.jsx)(`input`,{type:`time`,step:60,disabled:i,className:D,value:le,onChange:ue,"aria-label":n.scheduleTimeLabel})]}),o===`hourly`&&(0,w.jsxs)(w.Fragment,{children:[(0,w.jsx)(`select`,{className:r(E,`w-auto min-w-[4rem]`),disabled:i,value:f,onChange:e=>{let t=parseInt(e.target.value,10);p(t),x({minute:t})},"aria-label":n.minuteAtHour,children:Array.from({length:60},(e,t)=>(0,w.jsx)(`option`,{value:t,children:String(t).padStart(2,`0`)},t))}),(0,w.jsx)(`span`,{className:`shrink-0 text-sm text-fg-muted`,children:n.minuteUnit})]})]}),fe=o===`weekly`?(0,w.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=h[t];return(0,w.jsx)(`button`,{type:`button`,disabled:i,className:r(`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=[...h];e[t]=!e[t],ae(e),x({weekDays:e})},children:e},e)})}):null,pe=o===`custom`?(0,w.jsxs)(`div`,{className:`pt-1`,children:[(0,w.jsx)(`textarea`,{disabled:i,className:Ze,rows:2,spellCheck:!1,value:oe,placeholder:`*/5 * * * *`,onChange:e=>{let n=e.target.value;se(n),t(n.trim()||`*/5 * * * *`)},"aria-label":n.modeCustom}),(0,w.jsx)(`p`,{className:`mt-1 text-xs text-fg-muted`,children:n.customCronHint})]}):null;return(0,w.jsxs)(`div`,{className:`flex flex-col gap-2`,children:[(0,w.jsx)(`span`,{className:`text-xs font-medium text-fg-muted`,children:n.scheduleTimeLabel}),de,fe,pe]})}var it=400;function at(e){let t=new Date(e);return t.setHours(0,0,0,0),t}function ot(e){let t=at(e),n=t.getDay(),r=n===0?-6:1-n;return t.setDate(t.getDate()+r),t}function st(e){return new Date(e.getFullYear(),e.getMonth(),1,0,0,0,0)}var ct=`*/5 * * * *`,lt=`xopc.recentWorkspaceDirs.v1`,j=10;function ut(e){let t=e?.trim();t&&window.dispatchEvent(new CustomEvent(`navigate-to-chat`,{detail:{sessionKey:t},bubbles:!0}))}function dt(e){let t=e.trim();if(t)try{let e=localStorage.getItem(lt),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,j);localStorage.setItem(lt,JSON.stringify(r))}catch{}}function ft(e){return r(`w-full rounded-md border border-edge bg-surface-base px-3 py-2 text-sm text-fg placeholder:text-fg-disabled`,y,e&&`cursor-not-allowed opacity-60`)}function pt(){return r(p,ue)}var mt=r(p,`w-full text-xs sm:w-auto sm:min-w-[11rem] sm:max-w-[17rem] sm:shrink-0`),ht=r(p,`w-auto min-w-[9rem] max-w-[14rem] shrink-0 text-xs`);function gt(){let e=i(e=>e.language),t=de(e),n=t.cron,p=t.chat,y=!!c(e=>e.token),ue=te(e=>e.resolved)===`dark`,ke=e===`zh`?`zh-CN`:`en-US`,[C,qe]=(0,S.useState)([]),[T,E]=(0,S.useState)(`tasks`),[D,Xe]=(0,S.useState)(`created_desc`),[O,Ze]=(0,S.useState)(`day`),[Qe,k]=(0,S.useState)(``),[$e,et]=(0,S.useState)(``),[A,tt]=(0,S.useState)(!1),nt=(0,S.useRef)(null),lt=(0,S.useRef)(A),j=typeof navigator<`u`&&`wakeLock`in navigator,[gt,_t]=(0,S.useState)([]),[vt,yt]=(0,S.useState)([]),[bt,xt]=(0,S.useState)(``),[St,Ct]=(0,S.useState)([]),[wt,Tt]=(0,S.useState)([]),[Et,Dt]=(0,S.useState)(!1),[Ot,M]=(0,S.useState)(null),[kt,At]=(0,S.useState)([]),[N,jt]=(0,S.useState)(!1),[P,Mt]=(0,S.useState)(!1),[F,Nt]=(0,S.useState)(`add`),[Pt,Ft]=(0,S.useState)(null),[It,Lt]=(0,S.useState)(``),[Rt,zt]=(0,S.useState)(ct),[I,L]=(0,S.useState)(`local`),[Bt,R]=(0,S.useState)(``),[z,B]=(0,S.useState)(``),[Vt,Ht]=(0,S.useState)(`edit`),[Ut,Wt]=(0,S.useState)(0),[V,Gt]=(0,S.useState)(`main`),[Kt,H]=(0,S.useState)(``),[qt,U]=(0,S.useState)(!1),[W,G]=(0,S.useState)(``),[Jt,Yt]=(0,S.useState)(!1),[Xt,K]=(0,S.useState)(``),[q,Zt]=(0,S.useState)(!1),Qt=(0,S.useRef)(!1),[$t,en]=(0,S.useState)(!1),[J,tn]=(0,S.useState)(null),[nn,rn]=(0,S.useState)([]),[an,on]=(0,S.useState)(!1),[sn,cn]=(0,S.useState)(!1),[Y,ln]=(0,S.useState)(null),[un,dn]=(0,S.useState)(null),[fn,pn]=(0,S.useState)(!1),[mn,hn]=(0,S.useState)(`all`),X=(0,S.useRef)(null),gn=(0,S.useCallback)(e=>{X.current=e,window.setTimeout(()=>{X.current===e&&(X.current=null)},400)},[]),Z=(0,S.useCallback)(()=>bt||(vt.length>0?vt[0].id:``),[bt,vt]),_n=typeof window<`u`&&!!window.electronAPI?.file?.openDirectory,vn=(0,S.useCallback)(async()=>{let e=typeof window<`u`?window.electronAPI?.file?.openDirectory:void 0;return e?e():null},[]),yn=(0,S.useCallback)(async e=>{let t=e.trim();t&&(dt(t),G(t))},[]),bn=(0,S.useMemo)(()=>{let e=new Set(wt.map(e=>e.id)),t=[...wt],n=Kt.trim().toLowerCase();return n&&!e.has(n)&&t.push({id:n}),t},[wt,Kt]),xn=I!==`local`&&(V===`main`||V===`isolated`&&!qt),Sn=V===`main`||V===`isolated`&&!qt,Cn=!!It.trim()&&!!Rt.trim()&&!!z.trim()&&(!xn||!!Bt.trim()),wn=(0,S.useCallback)(async()=>{jt(!0);try{At(await Te(it))}catch{}finally{jt(!1)}},[]),Q=(0,S.useCallback)(async()=>{Dt(!0),M(null);try{qe(await Be())}catch(e){M(e instanceof Error?e.message:n.failedToLoadJobs)}finally{Dt(!1)}},[n.failedToLoadJobs]),$=(0,S.useCallback)(async()=>{try{let[e,t,n,r]=await Promise.all([Ne(),be(),Ae(),he().catch(()=>null)]);_t(e),yt(t),xt(n.model||``),r&&Tt(r.items)}catch{}},[]);(0,S.useEffect)(()=>{y&&(Q(),$())},[y,Q,$]),(0,S.useEffect)(()=>{!y||T!==`history`||wn()},[y,T,wn]);let Tn=(0,S.useCallback)(async()=>{try{await nt.current?.release()}catch{}nt.current=null},[]),En=(0,S.useCallback)(async()=>{if(j)try{let e=await navigator.wakeLock.request(`screen`);nt.current=e,e.addEventListener(`release`,()=>{nt.current=null})}catch{M(n.wakeLockUnavailable),tt(!1)}},[n.wakeLockUnavailable,j]);lt.current=A,(0,S.useEffect)(()=>{if(!A){Tn();return}En();let e=()=>{document.visibilityState===`visible`&&lt.current&&En()};return document.addEventListener(`visibilitychange`,e),()=>{document.removeEventListener(`visibilitychange`,e),Tn()}},[A,En,Tn]),(0,S.useEffect)(()=>{if(!P||F!==`add`||Qt.current)return;let e=Z();e&&K(e)},[P,F,Z]),(0,S.useEffect)(()=>{!P||F!==`add`||new Set([`local`,...gt.map(e=>e.name)]).has(I)||L(`local`)},[gt,I,F,P]),(0,S.useEffect)(()=>{if(I===`local`){Ct([]);return}let e=!1;return Re(I).then(t=>{e||Ct(t)}),()=>{e=!0}},[I,P]);let Dn=(0,S.useCallback)(e=>{if(Qt.current=!1,Mt(!0),Nt(e?`edit`:`add`),Ft(e?.id??null),e){Lt(e.name||``),zt(e.schedule&&String(e.schedule).trim()||ct);let t=we(e);B(t??``),Gt(e.sessionTarget||`main`),H((e.sessionTarget||`main`)===`isolated`&&e.agentId?.trim()?e.agentId.trim().toLowerCase():``),G((e.sessionTarget||`main`)===`isolated`&&e.workingDirectory?.trim()?e.workingDirectory.trim():``);let n=e.payload?.kind===`agentTurn`&&e.payload.model?.trim()?e.payload.model.trim():``;K(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(U(i),r)L(`local`),R(``);else if(e.delivery&&e.delivery.mode!==`none`&&e.delivery.to)L(e.delivery.channel||`telegram`),R(e.delivery.to||``);else if(i)L(`telegram`),R(``);else{let e=t.split(`:`);e.length>=3&&[`telegram`,`cli`,`gateway`,`local`].includes(e[0])?(L(e[0]),R(e[1]),B(e.slice(2).join(`:`))):(L(`telegram`),R(``))}}else Lt(``),zt(ct),L(`local`),R(``),B(``),Gt(`main`),H(``),G(``),U(!1),K(Z());Ht(`edit`),Wt(e=>e+1)},[Z]),On=(0,S.useCallback)(e=>{Ht(e),e===`edit`&&Wt(e=>e+1)},[]),kn=(0,S.useCallback)(e=>{let n=Je(e),r=n?Ke(t.cron,e):void 0;!n||!r||(Qt.current=!1,Nt(`add`),Ft(null),Lt(r.title),zt(n.defaultSchedule),B(r.prompt),Gt(n.defaultSessionTarget),L(`local`),R(``),U(!1),H(``),G(``),K(Z()),Ht(`edit`),Wt(e=>e+1),pn(!1),Mt(!0))},[Z,t.cron]),An=(0,S.useCallback)(()=>{Mt(!1),Nt(`add`),Ft(null),Lt(``),zt(ct),L(`local`),R(``),B(``),Gt(`main`),H(``),G(``),Yt(!1),U(!1),K(``),Ht(`edit`),Qt.current=!1},[]),jn=async()=>{if(!It.trim()){M(n.nameRequired);return}if(!Rt.trim()||!z.trim()){M(n.scheduleRequired);return}if(xn&&!Bt.trim()){M(n.chatIdRequired);return}Zt(!0),M(null);try{let e=z.trim(),t;t=V===`isolated`&&qt?{mode:`none`}:I===`local`?{mode:`direct`,channel:`local`}:{mode:`direct`,channel:I,to:Bt.trim()};let n=V===`isolated`?{kind:`agentTurn`,message:e,...Xt.trim()?{model:Xt.trim()}:{}}:{kind:`systemEvent`,text:e},r=Xt.trim(),i=Kt.trim().toLowerCase(),a=V===`main`?null:i||null,o=W.trim(),s={name:It.trim(),schedule:Rt.trim(),sessionTarget:V,model:V===`isolated`&&r?r:void 0,delivery:t,payload:n,...F===`edit`?{agentId:a,workingDirectory:V===`isolated`&&o||null}:{...V===`isolated`&&i?{agentId:i}:{},...V===`isolated`&&o?{workingDirectory:o}:{}}};if(F===`edit`&&Pt)await ve(Pt,s);else{let{schedule:e,agentId:t,workingDirectory:n,...r}=s;await Le(e,{...r,...t==null?{}:{agentId:t},...n?{workingDirectory:n}:{}})}An(),await Q(),await $()}catch(e){M(e instanceof Error?e.message:F===`edit`?n.failedToUpdateJob:n.failedToCreateJob)}finally{Zt(!1)}},Mn=async e=>{en(!0),tn(e),on(!0),rn([]);try{let t=await Ee(e.id);t&&(tn(t),rn(await De(e.id,20)))}catch{}finally{on(!1)}},Nn=async(e,t)=>{try{await ye(e.id,t),await Q(),await $()}catch(e){M(e instanceof Error?e.message:n.failedToToggleJob)}},Pn=async()=>{if(!un||!Y)return;let e=un,t=Y;cn(!1),dn(null),ln(null);try{t===`run`?await ze(e):(await Se(e),J?.id===e&&(en(!1),tn(null))),await Q(),await $(),await wn()}catch(e){M(e instanceof Error?e.message:n.actionFailed)}};(0,S.useEffect)(()=>{let e=e=>{e.key===`Escape`&&(P?An():$t&&(en(!1),tn(null)))};return document.addEventListener(`keydown`,e),()=>document.removeEventListener(`keydown`,e)},[P,$t,An]);let Fn={running:n.execStatusRunning,success:n.execStatusSuccess,failed:n.execStatusFailed,cancelled:n.execStatusCancelled},In=(0,S.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 D===`created_desc`?r-n:n-r}),e},[C,D]),Ln=(0,S.useMemo)(()=>{let e=new Date,t=O===`day`?at(e):O===`week`?ot(e):st(e);return kt.filter(e=>!(new Date(e.startedAt)<t||Qe&&e.jobId!==Qe||$e&&e.status!==$e))},[kt,O,Qe,$e]),Rn=n.scheduleBadge,zn=(0,S.useCallback)(()=>{Q(),$(),wn()},[Q,$,wn]),Bn=le(e=>e.setPageHeader),Vn=le(e=>e.clearPageHeader),{pathname:Hn}=re(),Un=Hn.startsWith(`/settings/`),Wn=(0,S.useMemo)(()=>(0,w.jsxs)(`div`,{className:`flex min-w-0 flex-1 flex-wrap items-center justify-end gap-2`,children:[(0,w.jsx)(m,{type:`button`,variant:`ghost`,className:`h-9 w-9 shrink-0 p-0`,disabled:Et||N,title:n.refresh,"aria-label":n.refresh,onClick:()=>void zn(),children:(0,w.jsx)(l,{className:r(`size-4`,(Et||N)&&`animate-spin`),strokeWidth:1.75})}),(0,w.jsxs)(m,{type:`button`,variant:`secondary`,className:`gap-2`,onClick:()=>{hn(`all`),pn(!0)},children:[(0,w.jsx)(me,{className:`size-4`,strokeWidth:1.75}),n.fromTemplate]}),(0,w.jsxs)(m,{type:`button`,variant:`primary`,className:`gap-2`,onClick:()=>Dn(),children:[(0,w.jsx)(ee,{className:`size-4`,strokeWidth:1.75}),n.addJob]})]}),[n.addJob,n.fromTemplate,n.refresh,Et,Dn,zn,N]);return(0,S.useLayoutEffect)(()=>!y||Un?(Vn(),()=>Vn()):(Bn({startExtra:null,main:null,end:Wn}),()=>Vn()),[Vn,Wn,y,Un,Bn]),y?(0,w.jsxs)(`div`,{className:`flex min-h-0 flex-1 flex-col overflow-y-auto bg-surface-panel`,children:[(0,w.jsxs)(`div`,{className:`mx-auto flex w-full max-w-app-main flex-col gap-6 px-4 py-6 sm:px-8`,children:[Ot?(0,w.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:Ot}):null,(0,w.jsx)(`header`,{className:`flex flex-col gap-4`,children:(0,w.jsxs)(`div`,{className:`min-w-0`,children:[(0,w.jsx)(`h1`,{className:`text-xl font-semibold tracking-tight text-fg`,children:n.title}),(0,w.jsx)(`p`,{className:`mt-1 max-w-2xl text-sm text-fg-muted`,children:n.subtitle})]})}),Un?(0,w.jsx)(`div`,{className:`flex flex-wrap items-center justify-end gap-2 border-b border-edge-subtle pb-3 dark:border-edge-subtle`,children:Wn}):null,(0,w.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,w.jsxs)(`div`,{className:`flex gap-1`,role:`tablist`,"aria-label":n.title,children:[(0,w.jsx)(`button`,{type:`button`,role:`tab`,"aria-selected":T===`tasks`,className:r(`rounded-md px-3 py-2 text-sm font-medium transition-colors`,T===`tasks`?`text-fg`:`text-fg-muted hover:text-fg`),onClick:()=>E(`tasks`),children:n.tabMyTasks}),(0,w.jsx)(`button`,{type:`button`,role:`tab`,"aria-selected":T===`history`,className:r(`rounded-md px-3 py-2 text-sm font-medium transition-colors`,T===`history`?`text-fg`:`text-fg-muted hover:text-fg`),onClick:()=>E(`history`),children:n.tabRunHistory})]}),(0,w.jsx)(`div`,{className:r(`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,w.jsxs)(`select`,{className:ht,value:D,onChange:e=>Xe(e.target.value),"aria-label":n.sortCreatedDesc,children:[(0,w.jsx)(`option`,{value:`created_desc`,children:n.sortCreatedDesc}),(0,w.jsx)(`option`,{value:`created_asc`,children:n.sortCreatedAsc})]}):(0,w.jsxs)(w.Fragment,{children:[(0,w.jsx)(`div`,{className:r(ie,`shrink-0`),role:`group`,"aria-label":n.runHistoryTitle,children:[`day`,`week`,`month`].map(e=>(0,w.jsx)(`button`,{type:`button`,className:r(ce,`px-2.5 py-1`,O===e&&`bg-surface-panel shadow-sm dark:bg-surface-panel dark:shadow-sm dark:ring-1 dark:ring-edge-strong/40`,O===e&&`text-fg`),onClick:()=>Ze(e),children:e===`day`?n.historyRangeDay:e===`week`?n.historyRangeWeek:n.historyRangeMonth},e))}),(0,w.jsxs)(`select`,{className:ht,value:Qe,onChange:e=>k(e.target.value),"aria-label":n.filterAllTasks,children:[(0,w.jsx)(`option`,{value:``,children:n.filterAllTasks}),C.map(e=>(0,w.jsx)(`option`,{value:e.id,children:e.name||e.id},e.id))]}),(0,w.jsxs)(`select`,{className:ht,value:$e,onChange:e=>et(e.target.value),"aria-label":n.filterAllStatuses,children:[(0,w.jsx)(`option`,{value:``,children:n.filterAllStatuses}),(0,w.jsx)(`option`,{value:`success`,children:n.execStatusSuccess}),(0,w.jsx)(`option`,{value:`failed`,children:n.execStatusFailed}),(0,w.jsx)(`option`,{value:`cancelled`,children:n.execStatusCancelled}),(0,w.jsx)(`option`,{value:`running`,children:n.execStatusRunning})]})]})})]}),T===`tasks`?(0,w.jsxs)(`section`,{"aria-labelledby":`cron-tasks-panel`,className:`flex flex-col gap-4`,children:[(0,w.jsx)(`h2`,{id:`cron-tasks-panel`,className:`sr-only`,children:n.tabMyTasks}),(0,w.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,w.jsxs)(`div`,{className:`flex gap-3 text-sm text-fg`,children:[(0,w.jsx)(fe,{className:`mt-0.5 size-4 shrink-0 text-accent`,strokeWidth:1.75,"aria-hidden":!0}),(0,w.jsx)(`p`,{className:`text-pretty text-fg-muted`,children:n.wakeBanner})]}),(0,w.jsxs)(`div`,{className:`flex shrink-0 items-center gap-2 sm:pl-4`,children:[(0,w.jsx)(`span`,{className:`text-sm text-fg`,children:n.keepAwake}),(0,w.jsx)(`button`,{type:`button`,role:`switch`,"aria-checked":A,disabled:!j,title:j?void 0:n.wakeLockUnavailable,className:r(`inline-flex h-6 w-10 shrink-0 items-center rounded-full border border-edge p-0.5 transition-colors`,A?`justify-end bg-accent`:`justify-start bg-surface-hover`,!j&&`cursor-not-allowed opacity-50`),onClick:()=>{j?tt(e=>!e):M(n.wakeLockUnavailable)},children:(0,w.jsx)(`span`,{className:`size-4 rounded-full bg-surface-panel shadow-surface ring-1 ring-edge/40 dark:ring-edge/55`})})]})]}),Et&&C.length===0?(0,w.jsx)(`div`,{className:`flex justify-center py-16`,"aria-busy":`true`,children:(0,w.jsx)(d,{className:`size-8 animate-spin text-accent`,strokeWidth:1.75})}):C.length===0?(0,w.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,w.jsx)(`div`,{className:`w-full max-w-3xl`,children:(0,w.jsx)(Ye,{cron:n,localeTag:ke,scheduleBadgeLabels:Rn,categoryFilter:mn,onCategoryFilterChange:hn,onSelectTemplate:kn})}),(0,w.jsx)(`div`,{className:`flex justify-center`,children:(0,w.jsx)(m,{type:`button`,variant:`primary`,onClick:()=>Dn(),children:n.emptyStateCta})})]}):(0,w.jsx)(`div`,{className:`grid gap-4 sm:grid-cols-2`,children:In.map(e=>(0,w.jsxs)(`article`,{role:`button`,tabIndex:0,className:r(`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(X.current===e.id){X.current=null;return}Mn(e)},onKeyDown:t=>{if(t.key===`Enter`||t.key===` `){if(t.preventDefault(),X.current===e.id){X.current=null;return}Mn(e)}},children:[(0,w.jsxs)(`div`,{className:`flex items-start justify-between gap-2 px-4 pt-3`,children:[(0,w.jsx)(`button`,{type:`button`,role:`switch`,"aria-checked":e.enabled,className:r(`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(),Nn(e,!e.enabled)},children:(0,w.jsx)(`span`,{className:`size-4 rounded-full bg-surface-panel shadow-surface ring-1 ring-edge/40 dark:ring-edge/55`})}),(0,w.jsxs)(He,{children:[(0,w.jsx)(Ve,{asChild:!0,children:(0,w.jsx)(m,{type:`button`,variant:`ghost`,className:`h-8 w-8 shrink-0 p-0`,"aria-label":n.jobCardMenuAria,onClick:e=>e.stopPropagation(),children:(0,w.jsx)(_e,{className:`size-4`,strokeWidth:1.75})})}),(0,w.jsx)(We,{children:(0,w.jsxs)(Ge,{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,w.jsx)(Ue,{className:`cursor-pointer select-none rounded-lg px-2 py-1.5 text-sm text-fg outline-none data-highlighted:bg-surface-hover`,onSelect:()=>{gn(e.id),Dn(e)},children:n.edit}),(0,w.jsx)(Ue,{className:`cursor-pointer select-none rounded-lg px-2 py-1.5 text-sm text-fg outline-none data-highlighted:bg-surface-hover`,onSelect:()=>{gn(e.id),ln(`run`),dn(e.id),cn(!0)},children:n.runNow}),(0,w.jsx)(Ue,{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:()=>{gn(e.id),ln(`delete`),dn(e.id),cn(!0)},children:n.delete})]})})]})]}),(0,w.jsxs)(`div`,{className:`flex flex-1 flex-col gap-2 px-4 pb-3 pt-2`,children:[(0,w.jsx)(`h3`,{className:`line-clamp-2 font-semibold text-fg`,children:e.name||e.id}),(0,w.jsx)(`div`,{className:`max-h-[4.5rem] overflow-hidden text-sm text-fg-muted [&_.markdown-body]:text-sm [&_.markdown-body]:leading-snug`,title:we(e),children:(0,w.jsx)(u,{content:we(e),compact:!0})})]}),(0,w.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,w.jsx)(o,{className:`size-3.5 shrink-0`,strokeWidth:1.75,"aria-hidden":!0}),(0,w.jsx)(`span`,{className:`min-w-0 truncate`,children:Me(e,ke,Rn)})]})]},e.id))})]}):(0,w.jsxs)(`section`,{"aria-labelledby":`cron-history-panel`,className:`flex flex-col gap-3`,children:[(0,w.jsxs)(`div`,{className:`flex items-start justify-between gap-2`,children:[(0,w.jsxs)(`div`,{children:[(0,w.jsx)(`h2`,{id:`cron-history-panel`,className:`sr-only`,children:n.tabRunHistory}),(0,w.jsx)(`p`,{className:`text-xs text-fg-muted`,children:n.runHistoryHint})]}),(0,w.jsx)(m,{type:`button`,variant:`ghost`,className:`h-9 w-9 shrink-0 p-0`,disabled:N,title:n.refresh,"aria-label":n.refresh,onClick:()=>void wn(),children:(0,w.jsx)(l,{className:r(`size-4`,N&&`animate-spin`),strokeWidth:1.75})})]}),N&&kt.length===0?(0,w.jsx)(`div`,{className:`flex justify-center py-16`,children:(0,w.jsx)(d,{className:`size-8 animate-spin text-accent`,strokeWidth:1.75})}):Ln.length===0?(0,w.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,w.jsx)(o,{className:`mb-4 size-14 text-fg-disabled`,strokeWidth:1.1,"aria-hidden":!0}),(0,w.jsx)(`h3`,{className:`text-base font-semibold text-fg`,children:kt.length===0?n.emptyHistoryTitle:n.noRunsYet}),(0,w.jsx)(`p`,{className:`mt-2 max-w-sm text-sm text-fg-muted`,children:kt.length===0?n.emptyHistoryHint:n.runHistoryHint})]}):(0,w.jsx)(`div`,{className:`overflow-x-auto rounded-xl border border-edge-subtle bg-surface-base dark:border-edge-subtle`,children:(0,w.jsxs)(`table`,{className:`w-full min-w-[700px] border-collapse text-left text-sm`,children:[(0,w.jsx)(`thead`,{children:(0,w.jsxs)(`tr`,{className:`border-b border-edge text-xs font-medium text-fg-muted`,children:[(0,w.jsx)(`th`,{className:`px-3 py-2.5 font-medium`,children:n.colStarted}),(0,w.jsx)(`th`,{className:`px-3 py-2.5 font-medium`,children:n.colJob}),(0,w.jsx)(`th`,{className:`px-3 py-2.5 font-medium`,children:n.status}),(0,w.jsx)(`th`,{className:`px-3 py-2.5 font-medium`,children:n.colDuration}),(0,w.jsx)(`th`,{className:`px-3 py-2.5 font-medium`,children:n.colDetail}),(0,w.jsx)(`th`,{className:`px-3 py-2.5 font-medium`,children:n.colChat})]})}),(0,w.jsx)(`tbody`,{children:Ln.map(e=>(0,w.jsxs)(`tr`,{className:`border-b border-edge/60 last:border-0`,children:[(0,w.jsx)(`td`,{className:`whitespace-nowrap px-3 py-2.5 text-fg`,children:(0,w.jsx)(`time`,{dateTime:e.startedAt,children:Fe(e.startedAt)})}),(0,w.jsx)(`td`,{className:`max-w-[10rem] truncate px-3 py-2.5`,children:C.some(t=>t.id===e.jobId)?(0,w.jsx)(`button`,{type:`button`,className:`text-left text-accent hover:underline`,onClick:()=>{let t=C.find(t=>t.id===e.jobId);t&&Mn(t)},children:e.jobName||e.jobId}):(0,w.jsx)(`span`,{className:`text-fg-muted`,children:e.jobName||e.jobId})}),(0,w.jsx)(`td`,{className:`px-3 py-2.5`,children:(0,w.jsx)(`span`,{className:r(`inline-flex rounded-md px-2 py-0.5 text-xs 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`,e.status===`running`&&`bg-accent/15 text-accent`,e.status===`cancelled`&&`bg-surface-hover text-fg-muted`),children:Ie(e.status,Fn)})}),(0,w.jsx)(`td`,{className:`whitespace-nowrap px-3 py-2.5 text-fg-muted`,children:Pe(e.duration)}),(0,w.jsx)(`td`,{className:`max-w-xs truncate px-3 py-2.5 text-fg-muted`,title:e.summary||e.error||``,children:Ce(e.summary||e.error,96)}),(0,w.jsx)(`td`,{className:`whitespace-nowrap px-3 py-2.5`,children:e.sessionKey?.trim()?(0,w.jsx)(`button`,{type:`button`,className:`text-xs font-medium text-accent hover:underline`,title:n.openChatTitle,"aria-label":n.openChatTitle,onClick:()=>ut(e.sessionKey),children:n.openChat}):(0,w.jsx)(`span`,{className:`text-fg-disabled`,children:`—`})})]},e.id))})]})})]})]}),(0,w.jsx)(h,{open:P,onOpenChange:e=>!e&&An(),children:(0,w.jsxs)(ge,{children:[(0,w.jsx)(v,{className:`xopc-dialog-overlay fixed inset-0 z-[60] bg-scrim`}),(0,w.jsx)(`div`,{className:`fixed inset-0 z-[60] flex items-center justify-center p-4 pointer-events-none`,children:(0,w.jsxs)(pe,{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,w.jsxs)(`div`,{className:`flex shrink-0 items-center justify-between gap-2 border-b border-edge px-4 py-3`,children:[(0,w.jsx)(_,{className:`text-base font-semibold text-fg`,children:F===`edit`?n.editJob:n.addJob}),(0,w.jsx)(b,{asChild:!0,children:(0,w.jsx)(m,{type:`button`,variant:`ghost`,className:`h-9 w-9 shrink-0 p-0`,"aria-label":n.close,children:(0,w.jsx)(g,{className:`size-5`,strokeWidth:1.75})})})]}),(0,w.jsx)(`div`,{className:`min-h-0 flex-1 overflow-y-auto px-4 py-3`,children:(0,w.jsxs)(`div`,{className:`flex flex-col gap-3`,children:[(0,w.jsxs)(`label`,{className:`flex flex-col gap-1`,children:[(0,w.jsx)(`span`,{className:`text-xs font-medium text-fg-muted`,children:n.name}),(0,w.jsx)(`input`,{type:`text`,className:ft(),value:It,onChange:e=>Lt(e.target.value),placeholder:n.namePlaceholder})]}),(0,w.jsx)(rt,{value:Rt,onChange:zt,disabled:q,labels:n.schedulePicker}),(0,w.jsxs)(`label`,{className:`flex flex-col gap-1`,children:[(0,w.jsx)(`span`,{className:`text-xs font-medium text-fg-muted`,children:n.mode}),(0,w.jsxs)(`select`,{className:pt(),value:V,onChange:e=>{let t=e.target.value;Gt(t),t===`main`?(U(!1),H(``),G(``)):t===`isolated`&&!Xt.trim()&&K(Z())},children:[(0,w.jsx)(`option`,{value:`main`,children:n.modeDirectOption}),(0,w.jsx)(`option`,{value:`isolated`,children:n.modeAgentOption})]}),(0,w.jsx)(`p`,{className:`text-xs text-fg-muted`,children:V===`main`?n.modeDirect:n.modeAgent})]}),V===`isolated`?(0,w.jsxs)(w.Fragment,{children:[(0,w.jsxs)(`div`,{className:`flex flex-col gap-1`,children:[(0,w.jsx)(`span`,{className:`text-xs font-medium text-fg-muted`,children:n.model}),(0,w.jsx)(ae,{value:Xt,placeholder:p.modelPlaceholder,searchPlaceholder:p.modelSearchPlaceholder,noMatches:p.modelNoMatches,className:`w-full max-w-none min-w-0`,popoverContentClassName:`z-[70]`,onChange:e=>{Qt.current=!0,K(e)}})]}),(0,w.jsxs)(`label`,{className:`flex flex-col gap-1`,children:[(0,w.jsx)(`span`,{className:`text-xs font-medium text-fg-muted`,children:n.agentProfile}),(0,w.jsxs)(`select`,{className:pt(),value:Kt,disabled:q,onChange:e=>H(e.target.value),children:[(0,w.jsx)(`option`,{value:``,children:n.agentProfileDefault}),bn.map(e=>(0,w.jsx)(`option`,{value:e.id,children:e.name?`${e.id} — ${e.name}`:e.id},e.id))]}),(0,w.jsx)(`p`,{className:`text-xs text-fg-muted`,children:n.agentProfileHint})]}),(0,w.jsxs)(`div`,{className:`flex flex-col gap-1`,children:[(0,w.jsx)(`span`,{className:`text-xs font-medium text-fg-muted`,children:n.workingDirectoryLabel}),(0,w.jsxs)(`div`,{className:`flex flex-wrap items-center gap-2`,children:[(0,w.jsxs)(`button`,{type:`button`,disabled:q,className:r(`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`,s.transition,s.focusRingPanel,`cursor-pointer hover:bg-surface-hover/70 dark:hover:bg-surface-hover/50`,q&&`cursor-not-allowed opacity-60`),title:W.trim()?`${W.trim()}\n${p.workingDirectory.chooseFolder}`:`${n.workingDirectoryHint}\n${p.workingDirectory.selectWorkingDirectory}`,onClick:e=>{e.stopPropagation(),!q&&(_n?(async()=>{let e=await vn();e&&yn(e)})():Yt(!0))},children:[(0,w.jsx)(x,{className:`size-3.5 shrink-0 text-fg-muted`,"aria-hidden":!0}),(0,w.jsx)(`span`,{className:`min-w-0 truncate text-left font-medium text-fg`,children:W.trim()?se(W.trim()):p.workingDirectory.notSet})]}),W.trim()?(0,w.jsx)(`button`,{type:`button`,disabled:q,className:`text-xs font-medium text-accent hover:underline disabled:opacity-50`,onClick:()=>G(``),children:n.workingDirectoryReset}):null]}),(0,w.jsx)(`p`,{className:`text-xs text-fg-muted`,children:n.workingDirectoryHint})]}),(0,w.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,w.jsx)(`input`,{type:`checkbox`,className:r(`ui-checkbox`,`mt-0.5`),checked:qt,onChange:e=>U(e.target.checked)}),(0,w.jsxs)(`span`,{children:[(0,w.jsx)(`span`,{className:`text-sm font-medium text-fg`,children:n.agentLocalOnly}),(0,w.jsx)(`p`,{className:`mt-1 text-xs text-fg-muted`,children:n.agentLocalOnlyHint})]})]})]}):null,Sn?(0,w.jsxs)(w.Fragment,{children:[(0,w.jsxs)(`label`,{className:`flex flex-col gap-1`,children:[(0,w.jsx)(`span`,{className:`text-xs font-medium text-fg-muted`,children:n.channel}),(0,w.jsxs)(`select`,{className:pt(),value:I,onChange:e=>{let t=e.target.value;L(t),t===`local`&&U(!1),R(``)},children:[(0,w.jsx)(`option`,{value:`local`,children:n.channelLocal}),gt.map(e=>(0,w.jsxs)(`option`,{value:e.name,disabled:!e.enabled,children:[e.name,` `,e.enabled?``:`(disabled)`]},e.name))]})]}),xn?(0,w.jsxs)(`div`,{className:`flex flex-col gap-1`,children:[(0,w.jsxs)(`div`,{className:`flex items-center justify-between gap-2`,children:[(0,w.jsx)(`span`,{className:`text-xs font-medium text-fg-muted`,children:n.recipient}),(0,w.jsxs)(m,{type:`button`,variant:`ghost`,className:`h-7 gap-1 px-2 text-xs`,title:n.refreshRecipientHint,onClick:()=>void Re(I).then(Ct),children:[(0,w.jsx)(l,{className:`size-3.5`,strokeWidth:1.75}),n.refreshList]})]}),(0,w.jsxs)(`div`,{className:`flex flex-col gap-2 sm:flex-row sm:items-stretch sm:gap-2`,children:[(0,w.jsx)(`input`,{type:`text`,className:r(ft(),`min-w-0 w-full sm:flex-1`),value:Bt,onChange:e=>R(e.target.value),placeholder:n.recipientPlaceholder}),(0,w.jsxs)(`select`,{className:mt,value:Bt,onChange:e=>{let t=e.target.value;t&&R(t)},children:[(0,w.jsx)(`option`,{value:``,children:n.selectRecipient}),St.length>0?St.map(e=>(0,w.jsx)(`option`,{value:e.chatId,children:xe(e,n.lastActiveLabels)},`${e.channel}-${e.chatId}`)):(0,w.jsx)(`option`,{value:``,disabled:!0,children:n.noRecentChatsOption})]})]}),(0,w.jsx)(`p`,{className:`text-xs text-fg-muted`,children:St.length>0?n.enterManuallyOrSelect:n.noRecentChats})]}):null]}):null,(0,w.jsxs)(`div`,{className:`flex flex-col gap-1`,children:[(0,w.jsxs)(`div`,{className:`flex flex-wrap items-center justify-between gap-2`,children:[(0,w.jsx)(`span`,{className:`text-xs font-medium text-fg-muted`,children:n.message}),(0,w.jsxs)(`div`,{className:`inline-flex rounded-lg border border-edge bg-surface-base p-0.5 dark:border-edge`,children:[(0,w.jsxs)(`button`,{type:`button`,className:r(`inline-flex items-center gap-1.5 rounded-md px-2.5 py-1.5 text-xs font-medium`,Vt===`edit`?`bg-accent-soft text-accent-fg`:`text-fg-muted hover:bg-surface-hover`),onClick:()=>On(`edit`),children:[(0,w.jsx)(a,{className:`size-3.5 shrink-0`,strokeWidth:1.75,"aria-hidden":!0}),n.messageEdit]}),(0,w.jsxs)(`button`,{type:`button`,className:r(`inline-flex items-center gap-1.5 rounded-md px-2.5 py-1.5 text-xs font-medium`,Vt===`preview`?`bg-accent-soft text-accent-fg`:`text-fg-muted hover:bg-surface-hover`),onClick:()=>On(`preview`),children:[(0,w.jsx)(f,{className:`size-3.5 shrink-0`,strokeWidth:1.75,"aria-hidden":!0}),n.messagePreview]})]})]}),(0,w.jsx)(`div`,{className:r(`overflow-hidden rounded-md border border-edge bg-surface-base dark:border-edge`,q&&`pointer-events-none opacity-60`),children:Vt===`edit`?(0,w.jsx)(ne,{initialContent:z,onChange:B,isDark:ue,className:`h-[min(18rem,40vh)] min-h-[12rem]`},`cron-msg-${Pt??`new`}-${Ut}`):(0,w.jsx)(`div`,{className:`h-[min(18rem,40vh)] min-h-[12rem] max-h-[min(24rem,50vh)] overflow-y-auto px-3 py-2`,children:z.trim()?(0,w.jsx)(u,{content:z,compact:!0,className:`text-sm`}):(0,w.jsx)(`p`,{className:`text-sm text-fg-muted`,children:n.messagePlaceholder})})}),(0,w.jsx)(`p`,{className:`text-xs text-fg-muted`,children:n.messageMarkdownHint})]})]})}),(0,w.jsxs)(`div`,{className:`flex shrink-0 justify-end gap-2 border-t border-edge px-4 py-3`,children:[(0,w.jsx)(m,{type:`button`,variant:`secondary`,onClick:An,children:n.cancel}),(0,w.jsx)(m,{type:`button`,variant:`primary`,disabled:q||!Cn,onClick:()=>void jn(),children:q?n.loading:F===`edit`?n.save:n.create})]})]})})]})}),_n?null:(0,w.jsx)(oe,{open:Jt,onOpenChange:Yt,initialAbsolutePath:W.trim()||void 0,onConfirm:async e=>{await yn(e),Yt(!1)},wd:p.workingDirectory}),(0,w.jsx)(h,{open:fn,onOpenChange:e=>{pn(e),e&&hn(`all`)},children:(0,w.jsxs)(ge,{children:[(0,w.jsx)(v,{className:`xopc-dialog-overlay fixed inset-0 z-[62] bg-scrim`}),(0,w.jsx)(`div`,{className:`fixed inset-0 z-[62] flex items-center justify-center p-4 pointer-events-none`,children:(0,w.jsxs)(pe,{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,w.jsxs)(`div`,{className:`flex shrink-0 items-center justify-end border-b border-edge px-4 py-3`,children:[(0,w.jsx)(_,{className:`sr-only`,children:n.fromTemplate}),(0,w.jsx)(b,{asChild:!0,children:(0,w.jsx)(m,{type:`button`,variant:`ghost`,className:`h-9 w-9 shrink-0 p-0`,"aria-label":n.close,children:(0,w.jsx)(g,{className:`size-5`,strokeWidth:1.75})})})]}),(0,w.jsx)(`div`,{className:`min-h-0 flex-1 overflow-y-auto px-4 py-4`,children:(0,w.jsx)(Ye,{cron:n,localeTag:ke,scheduleBadgeLabels:Rn,categoryFilter:mn,onCategoryFilterChange:hn,onSelectTemplate:kn})})]})})]})}),(0,w.jsx)(h,{open:$t,onOpenChange:e=>{e||(en(!1),tn(null))},children:(0,w.jsxs)(ge,{children:[(0,w.jsx)(v,{className:`xopc-dialog-overlay fixed inset-0 z-[60] bg-scrim`}),(0,w.jsxs)(pe,{className:r(`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,w.jsxs)(`div`,{className:`flex shrink-0 items-center justify-between gap-2 border-b border-edge px-4 py-3`,children:[(0,w.jsx)(_,{className:`min-w-0 truncate text-base font-semibold text-fg`,children:J?.name?.trim()||J?.id||`—`}),(0,w.jsx)(b,{asChild:!0,children:(0,w.jsx)(m,{type:`button`,variant:`ghost`,className:`h-9 w-9 shrink-0 p-0`,"aria-label":n.close,children:(0,w.jsx)(g,{className:`size-5`,strokeWidth:1.75})})})]}),(0,w.jsx)(`div`,{className:`min-h-0 flex-1 overflow-y-auto px-4 py-3`,children:an?(0,w.jsx)(`div`,{className:`flex justify-center py-16`,children:(0,w.jsx)(d,{className:`size-8 animate-spin text-accent`,strokeWidth:1.75})}):J?(0,w.jsxs)(w.Fragment,{children:[(0,w.jsxs)(`dl`,{className:`space-y-3 text-sm`,children:[(0,w.jsxs)(`div`,{children:[(0,w.jsx)(`dt`,{className:`text-xs font-medium text-fg-muted`,children:n.scheduleLabel}),(0,w.jsx)(`dd`,{className:`mt-1 font-mono text-fg`,children:(0,w.jsx)(`code`,{children:J.schedule})})]}),(0,w.jsxs)(`div`,{children:[(0,w.jsx)(`dt`,{className:`text-xs font-medium text-fg-muted`,children:n.messageLabel}),(0,w.jsx)(`dd`,{className:`mt-1 min-w-0 break-words text-fg`,children:(0,w.jsx)(u,{content:we(J),compact:!0,className:`text-sm`})})]}),(0,w.jsxs)(`div`,{children:[(0,w.jsx)(`dt`,{className:`text-xs font-medium text-fg-muted`,children:n.mode}),(0,w.jsx)(`dd`,{className:`mt-1 text-fg`,children:J.sessionTarget===`isolated`?n.modeAgentOption:n.modeDirectOption})]}),J.sessionTarget===`isolated`?(0,w.jsxs)(`div`,{children:[(0,w.jsx)(`dt`,{className:`text-xs font-medium text-fg-muted`,children:n.agentProfile}),(0,w.jsx)(`dd`,{className:`mt-1 font-mono text-sm text-fg`,children:J.agentId?.trim()?J.agentId.trim():n.agentProfileDefault})]}):null,J.sessionTarget===`isolated`?(0,w.jsxs)(`div`,{children:[(0,w.jsx)(`dt`,{className:`text-xs font-medium text-fg-muted`,children:n.workingDirectoryLabel}),(0,w.jsx)(`dd`,{className:`mt-1 break-all font-mono text-xs text-fg`,children:J.workingDirectory?.trim()?J.workingDirectory.trim():p.workingDirectory.notSet})]}):null,J.delivery?.channel===`local`||J.sessionTarget===`isolated`&&!J.delivery?.to?(0,w.jsxs)(`div`,{children:[(0,w.jsx)(`dt`,{className:`text-xs font-medium text-fg-muted`,children:n.deliveryTarget}),(0,w.jsx)(`dd`,{className:`mt-1 text-fg`,children:J.delivery?.channel===`local`?n.deliveryTargetLocalChannel:n.deliveryLocalOnly})]}):J.delivery?.to?(0,w.jsxs)(`div`,{children:[(0,w.jsx)(`dt`,{className:`text-xs font-medium text-fg-muted`,children:n.deliveryTarget}),(0,w.jsxs)(`dd`,{className:`mt-1 break-words text-fg`,children:[(0,w.jsx)(`code`,{className:`text-xs`,children:J.delivery?.channel??``}),` → `,je(J,n.channelLocal)]})]}):null,(0,w.jsxs)(`div`,{children:[(0,w.jsx)(`dt`,{className:`text-xs font-medium text-fg-muted`,children:n.status}),(0,w.jsx)(`dd`,{className:`mt-1 text-fg`,children:J.enabled?n.enabled:n.disabled})]}),(0,w.jsxs)(`div`,{children:[(0,w.jsx)(`dt`,{className:`text-xs font-medium text-fg-muted`,children:n.nextRun}),(0,w.jsx)(`dd`,{className:`mt-1 text-fg`,children:J.next_run?Oe(J.next_run,n.timeLabels):`—`})]})]}),(0,w.jsx)(`h3`,{className:`mt-6 text-sm font-semibold text-fg`,children:n.detailRunHistory}),nn.length===0?(0,w.jsx)(`p`,{className:`mt-2 text-sm text-fg-muted`,children:n.noRunsYet}):(0,w.jsx)(`div`,{className:`mt-2 overflow-x-auto`,children:(0,w.jsxs)(`table`,{className:`w-full border-collapse text-left text-xs`,children:[(0,w.jsx)(`thead`,{children:(0,w.jsxs)(`tr`,{className:`border-b border-edge text-fg-muted`,children:[(0,w.jsx)(`th`,{className:`py-1.5 pr-2 font-medium`,children:n.colStarted}),(0,w.jsx)(`th`,{className:`py-1.5 pr-2 font-medium`,children:n.status}),(0,w.jsx)(`th`,{className:`py-1.5 pr-2 font-medium`,children:n.colDuration}),(0,w.jsx)(`th`,{className:`py-1.5 pr-2 font-medium`,children:n.colDetail}),(0,w.jsx)(`th`,{className:`py-1.5 font-medium`,children:n.colChat})]})}),(0,w.jsx)(`tbody`,{children:nn.map(e=>(0,w.jsxs)(`tr`,{className:`border-b border-edge/60`,children:[(0,w.jsx)(`td`,{className:`whitespace-nowrap py-1.5 pr-2 text-fg`,children:(0,w.jsx)(`time`,{dateTime:e.startedAt,children:Fe(e.startedAt)})}),(0,w.jsx)(`td`,{className:`py-1.5 pr-2`,children:(0,w.jsx)(`span`,{className:r(`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:Ie(e.status,Fn)})}),(0,w.jsx)(`td`,{className:`py-1.5 pr-2 text-fg-muted`,children:Pe(e.duration)}),(0,w.jsx)(`td`,{className:`max-w-[8rem] truncate py-1.5 pr-2 text-fg-muted`,title:e.summary||e.error||``,children:Ce(e.summary||e.error,120)}),(0,w.jsx)(`td`,{className:`whitespace-nowrap py-1.5`,children:e.sessionKey?.trim()?(0,w.jsx)(`button`,{type:`button`,className:`text-xs font-medium text-accent hover:underline`,title:n.openChatTitle,"aria-label":n.openChatTitle,onClick:()=>ut(e.sessionKey),children:n.openChat}):(0,w.jsx)(`span`,{className:`text-fg-disabled`,children:`—`})})]},e.id))})]})})]}):null})]})]})}),(0,w.jsx)(h,{open:sn,onOpenChange:cn,children:(0,w.jsxs)(ge,{children:[(0,w.jsx)(v,{className:`xopc-dialog-overlay fixed inset-0 z-[70] bg-scrim`}),(0,w.jsx)(`div`,{className:`fixed inset-0 z-[70] flex items-center justify-center p-4 pointer-events-none`,children:(0,w.jsxs)(pe,{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,w.jsx)(_,{className:`text-base font-semibold text-fg`,children:Y===`delete`?n.delete:n.runNow}),(0,w.jsx)(`p`,{className:`mt-2 text-sm text-fg-muted`,children:Y===`delete`?n.confirmDelete:n.confirmRun}),(0,w.jsxs)(`div`,{className:`mt-4 flex justify-end gap-2`,children:[(0,w.jsx)(m,{type:`button`,variant:`secondary`,onClick:()=>{cn(!1),dn(null),ln(null)},children:n.cancel}),(0,w.jsx)(m,{type:`button`,variant:`primary`,className:Y===`delete`?`bg-red-600 hover:bg-red-700`:void 0,onClick:()=>void Pn(),children:Y===`delete`?n.delete:n.runNow})]})]})})]})})]}):(0,w.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{gt as CronPage};
2
+ //# sourceMappingURL=cron-page-D9q6KqL8.js.map