@xopcai/xopc 0.0.77 → 0.0.78
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/dist/browser-ext/manifest.json +1 -1
- package/dist/extensions/telegram/xopc.extension.json +1 -1
- package/dist/gateway/static/root/assets/{agents-DN3vr8pb.js → agents-Bh_9-1KB.js} +2 -2
- package/dist/gateway/static/root/assets/{agents-DN3vr8pb.js.map → agents-Bh_9-1KB.js.map} +1 -1
- package/dist/gateway/static/root/assets/{apps-page-BUn41aPi.js → apps-page-CB5anZpc.js} +2 -2
- package/dist/gateway/static/root/assets/{apps-page-BUn41aPi.js.map → apps-page-CB5anZpc.js.map} +1 -1
- package/dist/gateway/static/root/assets/{channels-settings-CYMmWDtP.js → channels-settings-Bt1sprhC.js} +2 -2
- package/dist/gateway/static/root/assets/{channels-settings-CYMmWDtP.js.map → channels-settings-Bt1sprhC.js.map} +1 -1
- package/dist/gateway/static/root/assets/{channels-status-swr-sJj4ueTp.js → channels-status-swr-Crgak3fg.js} +2 -2
- package/dist/gateway/static/root/assets/{channels-status-swr-sJj4ueTp.js.map → channels-status-swr-Crgak3fg.js.map} +1 -1
- package/dist/gateway/static/root/assets/{cron-api-CLxnaHdq.js → cron-api-CzJGvQQ7.js} +2 -2
- package/dist/gateway/static/root/assets/{cron-api-CLxnaHdq.js.map → cron-api-CzJGvQQ7.js.map} +1 -1
- package/dist/gateway/static/root/assets/{cron-page-BAQ8xSnJ.js → cron-page-BoNRJNVV.js} +2 -2
- package/dist/gateway/static/root/assets/{cron-page-BAQ8xSnJ.js.map → cron-page-BoNRJNVV.js.map} +1 -1
- package/dist/gateway/static/root/assets/{dist-BfJYxiK5.js → dist-a-eaOUvs.js} +2 -2
- package/dist/gateway/static/root/assets/{dist-BfJYxiK5.js.map → dist-a-eaOUvs.js.map} +1 -1
- package/dist/gateway/static/root/assets/{extension-debug-page-bgvVs-Sy.js → extension-debug-page-D-O1XjAa.js} +2 -2
- package/dist/gateway/static/root/assets/{extension-debug-page-bgvVs-Sy.js.map → extension-debug-page-D-O1XjAa.js.map} +1 -1
- package/dist/gateway/static/root/assets/{extension-page-SG4TVv-u.js → extension-page-B2VpqBTH.js} +2 -2
- package/dist/gateway/static/root/assets/{extension-page-SG4TVv-u.js.map → extension-page-B2VpqBTH.js.map} +1 -1
- package/dist/gateway/static/root/assets/{extension-settings-page-CJZRTsjF.js → extension-settings-page-CmBcQfeO.js} +2 -2
- package/dist/gateway/static/root/assets/{extension-settings-page-CJZRTsjF.js.map → extension-settings-page-CmBcQfeO.js.map} +1 -1
- package/dist/gateway/static/root/assets/{fetch-K_0JRCXU.js → fetch-EGO9T3MN.js} +3 -3
- package/dist/gateway/static/root/assets/{fetch-K_0JRCXU.js.map → fetch-EGO9T3MN.js.map} +1 -1
- package/dist/gateway/static/root/assets/{field-primitives-Z76hyBYS.js → field-primitives-Bh7G1y4D.js} +2 -2
- package/dist/gateway/static/root/assets/{field-primitives-Z76hyBYS.js.map → field-primitives-Bh7G1y4D.js.map} +1 -1
- package/dist/gateway/static/root/assets/{heartbeat-config-api-BqfDabSI.js → heartbeat-config-api-DxpIEZNs.js} +2 -2
- package/dist/gateway/static/root/assets/{heartbeat-config-api-BqfDabSI.js.map → heartbeat-config-api-DxpIEZNs.js.map} +1 -1
- package/dist/gateway/static/root/assets/{index-ChiUhJAs.js → index-Dxy9ZCtC.js} +5 -5
- package/dist/gateway/static/root/assets/{index-ChiUhJAs.js.map → index-Dxy9ZCtC.js.map} +1 -1
- package/dist/gateway/static/root/assets/{logs-page-DrIMhDE2.js → logs-page-Dw58E2GE.js} +2 -2
- package/dist/gateway/static/root/assets/{logs-page-DrIMhDE2.js.map → logs-page-Dw58E2GE.js.map} +1 -1
- package/dist/gateway/static/root/assets/{sessions-page-B-RGO3N0.js → sessions-page-CPkhCy57.js} +2 -2
- package/dist/gateway/static/root/assets/{sessions-page-B-RGO3N0.js.map → sessions-page-CPkhCy57.js.map} +1 -1
- package/dist/gateway/static/root/assets/{settings-form-section-Csvl1iL6.js → settings-form-section-DLZDVMEf.js} +2 -2
- package/dist/gateway/static/root/assets/{settings-form-section-Csvl1iL6.js.map → settings-form-section-DLZDVMEf.js.map} +1 -1
- package/dist/gateway/static/root/assets/settings-page-CVPCa0PE.js +4 -0
- package/dist/gateway/static/root/assets/settings-page-CVPCa0PE.js.map +1 -0
- package/dist/gateway/static/root/assets/{skills-page-dHwx2vh0.js → skills-page-DueZ9Qfg.js} +2 -2
- package/dist/gateway/static/root/assets/{skills-page-dHwx2vh0.js.map → skills-page-DueZ9Qfg.js.map} +1 -1
- package/dist/gateway/static/root/assets/{theme-store-Bl5A2Fd_.js → theme-store-CWPq9gW1.js} +2 -2
- package/dist/gateway/static/root/assets/{theme-store-Bl5A2Fd_.js.map → theme-store-CWPq9gW1.js.map} +1 -1
- package/dist/gateway/static/root/assets/{utils-COYrNFF7.js → utils-Cnix55r9.js} +2 -2
- package/dist/gateway/static/root/assets/{utils-COYrNFF7.js.map → utils-Cnix55r9.js.map} +1 -1
- package/dist/gateway/static/root/assets/{voice-api-key-field-5WZZaxH3.js → voice-api-key-field-BR3Ut06g.js} +2 -2
- package/dist/gateway/static/root/assets/{voice-api-key-field-5WZZaxH3.js.map → voice-api-key-field-BR3Ut06g.js.map} +1 -1
- package/dist/gateway/static/root/index.html +3 -3
- package/dist/package.js +1 -1
- package/dist/src/browser/providers/browser-ext-install.js +23 -4
- package/dist/src/browser/providers/browser-ext-install.js.map +1 -1
- package/dist/src/cli/commands/tunnel.js +4 -5
- package/dist/src/cli/commands/tunnel.js.map +1 -1
- package/dist/src/config/index.js +2 -2
- package/dist/src/config/rules.js +0 -5
- package/dist/src/config/rules.js.map +1 -1
- package/dist/src/config/schema.d.ts +0 -27
- package/dist/src/config/schema.js +4 -18
- package/dist/src/config/schema.js.map +1 -1
- package/dist/src/gateway/auth-rate-limit.d.ts +2 -0
- package/dist/src/gateway/auth-rate-limit.js +9 -3
- package/dist/src/gateway/auth-rate-limit.js.map +1 -1
- package/dist/src/gateway/hono/app.js +19 -13
- package/dist/src/gateway/hono/app.js.map +1 -1
- package/dist/src/gateway/hono/lib/config-payload.d.ts +3 -1
- package/dist/src/gateway/hono/lib/config-payload.js +1 -2
- package/dist/src/gateway/hono/lib/config-payload.js.map +1 -1
- package/dist/src/gateway/hono/routes/tunnel.js +32 -30
- package/dist/src/gateway/hono/routes/tunnel.js.map +1 -1
- package/dist/src/gateway/host.d.ts +24 -0
- package/dist/src/gateway/host.js +33 -1
- package/dist/src/gateway/host.js.map +1 -1
- package/dist/src/gateway/index.d.ts +1 -1
- package/dist/src/gateway/index.js +2 -2
- package/dist/src/gateway/runtime-config.js +1 -8
- package/dist/src/gateway/runtime-config.js.map +1 -1
- package/dist/src/gateway/security/audit.js +4 -4
- package/dist/src/gateway/security/audit.js.map +1 -1
- package/dist/src/gateway/server.js +2 -3
- package/dist/src/gateway/server.js.map +1 -1
- package/dist/src/gateway/service/types.d.ts +2 -0
- package/dist/src/gateway/service.d.ts +2 -0
- package/dist/src/gateway/service.js +7 -2
- package/dist/src/gateway/service.js.map +1 -1
- package/dist/src/tunnel/frp-subdomain-host.d.ts +2 -0
- package/dist/src/tunnel/frp-subdomain-host.js +15 -0
- package/dist/src/tunnel/frp-subdomain-host.js.map +1 -0
- package/dist/src/tunnel/gateway-lifecycle.d.ts +0 -4
- package/dist/src/tunnel/gateway-lifecycle.js +9 -11
- package/dist/src/tunnel/gateway-lifecycle.js.map +1 -1
- package/dist/src/tunnel/index.d.ts +2 -4
- package/dist/src/tunnel/index.js +2 -4
- package/dist/src/tunnel/pair-url.js +7 -1
- package/dist/src/tunnel/pair-url.js.map +1 -1
- package/dist/src/tunnel/pairing.d.ts +13 -0
- package/dist/src/tunnel/pairing.js +48 -1
- package/dist/src/tunnel/pairing.js.map +1 -1
- package/dist/src/tunnel/tunnel-config.js +2 -16
- package/dist/src/tunnel/tunnel-config.js.map +1 -1
- package/dist/src/tunnel/tunnel-service.d.ts +1 -10
- package/dist/src/tunnel/tunnel-service.js +7 -60
- package/dist/src/tunnel/tunnel-service.js.map +1 -1
- package/dist/src/tunnel/tunnel-types.d.ts +3 -18
- package/dist/src/tunnel/well-known.d.ts +5 -0
- package/dist/src/tunnel/well-known.js +2 -1
- package/dist/src/tunnel/well-known.js.map +1 -1
- package/package.json +2 -2
- package/dist/gateway/static/root/assets/settings-page-nxAc0ta1.js +0 -4
- package/dist/gateway/static/root/assets/settings-page-nxAc0ta1.js.map +0 -1
- package/dist/src/tunnel/acme-cert-store.d.ts +0 -34
- package/dist/src/tunnel/acme-cert-store.js +0 -184
- package/dist/src/tunnel/acme-cert-store.js.map +0 -1
- package/dist/src/tunnel/acme-client.d.ts +0 -50
- package/dist/src/tunnel/acme-client.js +0 -473
- package/dist/src/tunnel/acme-client.js.map +0 -1
- package/dist/src/tunnel/acme-crypto.d.ts +0 -25
- package/dist/src/tunnel/acme-crypto.js +0 -58
- package/dist/src/tunnel/acme-crypto.js.map +0 -1
- package/dist/src/tunnel/acme-csr.d.ts +0 -5
- package/dist/src/tunnel/acme-csr.js +0 -48
- package/dist/src/tunnel/acme-csr.js.map +0 -1
- package/dist/src/tunnel/tls-server.d.ts +0 -14
- package/dist/src/tunnel/tls-server.js +0 -126
- package/dist/src/tunnel/tls-server.js.map +0 -1
- package/dist/src/tunnel/tunnel-e2e-config.d.ts +0 -11
- package/dist/src/tunnel/tunnel-e2e-config.js +0 -29
- package/dist/src/tunnel/tunnel-e2e-config.js.map +0 -1
|
@@ -1,2 +1,2 @@
|
|
|
1
|
-
import{i as e,t}from"./fetch-
|
|
2
|
-
//# sourceMappingURL=cron-api-
|
|
1
|
+
import{i as e,t}from"./fetch-EGO9T3MN.js";import{A as n}from"./index-Dxy9ZCtC.js";function r(e){let t=e.payload;return t.kind===`systemEvent`?t.text??``:t.message??``}function i(e){if(!e||typeof e!=`object`)return``;let t=e.agents?.defaults?.model;if(t==null)return``;if(typeof t==`string`)return t.trim();if(typeof t==`object`&&t&&`primary`in t){let e=t.primary;return typeof e==`string`?e.trim():``}return``}async function a(e,n){let r=await t(e,n),i=await r.json().catch(()=>({}));if(!r.ok){let e=typeof i.error==`string`?i.error:`HTTP ${r.status}`;throw Error(e)}return i}async function o(){return(await a(e(`/api/cron`))).jobs||[]}async function s(n){let r=await t(e(`/api/cron/${encodeURIComponent(n)}`));if(r.status===404)return null;let i=await r.json().catch(()=>({}));if(!r.ok)throw Error(typeof i.error==`string`?i.error:`HTTP ${r.status}`);return i.job??null}async function c(t,n){return a(e(`/api/cron`),{method:`POST`,body:JSON.stringify({schedule:t,...n})})}async function l(t,n){return(await a(e(`/api/cron/${encodeURIComponent(t)}`),{method:`PATCH`,body:JSON.stringify(n)})).updated}async function u(t){return(await a(e(`/api/cron/${encodeURIComponent(t)}`),{method:`DELETE`})).removed}async function d(t,n){return(await a(e(`/api/cron/${encodeURIComponent(t)}/toggle`),{method:`POST`,body:JSON.stringify({enabled:n})})).toggled}async function f(t){await a(e(`/api/cron/${encodeURIComponent(t)}/run`),{method:`POST`})}async function p(t,n=10){return(await a(e(`/api/cron/${encodeURIComponent(t)}/history?limit=${n}`))).history||[]}async function m(t=40){return(await a(e(`/api/cron/runs/history?limit=${t}`))).runs||[]}async function h(){return(await a(e(`/api/channels/status`))).payload?.channels||[]}async function g(){return(await n()).map(e=>({id:e.id,name:e.name,provider:e.provider}))}async function _(){let t=(await a(e(`/api/config`))).payload?.config;return{model:i(t)}}async function v(t){return(await a(e(`/api/sessions/chat-ids${t?`?channel=${encodeURIComponent(t)}`:``}`))).payload?.chatIds||[]}export{_ as a,g as c,u as d,f,h as i,v as l,l as m,r as n,p as o,d as p,m as r,s,c as t,o as u};
|
|
2
|
+
//# sourceMappingURL=cron-api-CzJGvQQ7.js.map
|
package/dist/gateway/static/root/assets/{cron-api-CLxnaHdq.js.map → cron-api-CzJGvQQ7.js.map}
RENAMED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"cron-api-CLxnaHdq.js","names":["apiFetch","apiUrl","fetchConfiguredModelsCached","CronDelivery","mode","channel","to","bestEffort","CronPayload","kind","text","message","model","timeoutSeconds","CronJob","id","name","schedule","enabled","timezone","maxRetries","timeout","next_run","created_at","updated_at","sessionTarget","agentId","workingDirectory","payload","delivery","AddJobOptions","cronJobBodyText","job","Pick","p","ModelInfo","provider","ConfigInfo","agentDefaultModelFromGatewayConfig","c","raw","agents","defaults","undefined","trim","primary","ChannelStatus","connected","SessionChatId","chatId","lastActive","accountId","peerKind","peerId","CronJobExecution","jobId","status","startedAt","endedAt","duration","error","output","retryCount","summary","sessionKey","sessionId","sessionType","CronRunHistoryRow","jobName","CronJobUpdate","fetchJsonCron","input","RequestInfo","URL","init","RequestInit","Promise","T","res","data","json","catch","ok","msg","Error","listJobs","result","jobs","getJob","encodeURIComponent","addJob","options","method","body","JSON","stringify","updateJob","updates","updated","removeJob","removed","toggleJob","toggled","runJob","getHistory","limit","history","getAllRunsHistory","runs","getChannels","channels","getModels","models","map","m","getConfig","config","getSessionChatIds","query","chatIds"],"sources":["../../../../../web/src/features/cron/cron-api.ts"],"sourcesContent":["import { apiFetch } from '@/lib/fetch';\nimport { apiUrl } from '@/lib/url';\nimport { fetchConfiguredModelsCached } from '@/features/chat/api/registry-api';\n\nexport interface CronDelivery {\n mode: 'none' | 'announce' | 'direct';\n channel?: string;\n to?: string;\n bestEffort?: boolean;\n}\n\nexport interface CronPayload {\n kind: 'systemEvent' | 'agentTurn';\n text?: string;\n message?: string;\n model?: string;\n timeoutSeconds?: number;\n}\n\nexport interface CronJob {\n id: string;\n name?: string;\n schedule: string;\n enabled: boolean;\n timezone?: string;\n maxRetries: number;\n timeout: number;\n next_run?: string;\n created_at: string;\n updated_at: string;\n sessionTarget?: 'main' | 'isolated';\n /** Isolated jobs: agent profile for session key; omit uses the default agent. */\n agentId?: string;\n /** Isolated jobs: absolute workspace on gateway host; omit uses the agent default workspace. */\n workingDirectory?: string;\n payload: CronPayload;\n delivery?: CronDelivery;\n model?: string;\n}\n\nexport interface AddJobOptions {\n name?: string;\n timezone?: string;\n sessionTarget?: 'main' | 'isolated';\n agentId?: string;\n workingDirectory?: string;\n model?: string;\n delivery?: CronDelivery;\n payload: CronPayload;\n}\n\nexport function cronJobBodyText(job: Pick<CronJob, 'payload'>): string {\n const p = job.payload;\n if (p.kind === 'systemEvent') return p.text ?? '';\n return p.message ?? '';\n}\n\nexport interface ModelInfo {\n id: string;\n name: string;\n provider: string;\n}\n\nexport interface ConfigInfo {\n model?: string;\n}\n\nfunction agentDefaultModelFromGatewayConfig(c: unknown): string {\n if (!c || typeof c !== 'object') return '';\n const raw = (c as { agents?: { defaults?: { model?: unknown } } }).agents?.defaults?.model;\n if (raw === undefined || raw === null) return '';\n if (typeof raw === 'string') return raw.trim();\n if (typeof raw === 'object' && raw !== null && 'primary' in raw) {\n const p = (raw as { primary?: unknown }).primary;\n return typeof p === 'string' ? p.trim() : '';\n }\n return '';\n}\n\nexport interface ChannelStatus {\n name: string;\n enabled: boolean;\n connected: boolean;\n}\n\nexport interface SessionChatId {\n channel: string;\n chatId: string;\n lastActive: string;\n accountId?: string;\n peerKind?: string;\n peerId?: string;\n}\n\nexport interface CronJobExecution {\n id: string;\n jobId: string;\n status: 'running' | 'success' | 'failed' | 'cancelled';\n startedAt: string;\n endedAt?: string;\n duration?: number;\n error?: string;\n output?: string;\n retryCount: number;\n summary?: string;\n sessionKey?: string;\n sessionId?: string;\n sessionType?: string;\n model?: string;\n}\n\nexport interface CronRunHistoryRow extends CronJobExecution {\n jobName?: string;\n}\n\nexport interface CronJobUpdate {\n name?: string;\n schedule?: string;\n enabled?: boolean;\n timezone?: string;\n maxRetries?: number;\n timeout?: number;\n sessionTarget?: 'main' | 'isolated';\n agentId?: string | null;\n workingDirectory?: string | null;\n model?: string;\n delivery?: CronDelivery;\n payload?: CronPayload;\n}\n\nasync function fetchJsonCron<T>(input: RequestInfo | URL, init?: RequestInit): Promise<T> {\n const res = await apiFetch(input, init);\n const data = (await res.json().catch(() => ({}))) as { error?: string };\n if (!res.ok) {\n const msg = typeof data.error === 'string' ? data.error : `HTTP ${res.status}`;\n throw new Error(msg);\n }\n return data as T;\n}\n\nexport async function listJobs(): Promise<CronJob[]> {\n const result = await fetchJsonCron<{ jobs: CronJob[] }>(apiUrl('/api/cron'));\n return result.jobs || [];\n}\n\nexport async function getJob(id: string): Promise<CronJob | null> {\n const res = await apiFetch(apiUrl(`/api/cron/${encodeURIComponent(id)}`));\n if (res.status === 404) return null;\n const data = (await res.json().catch(() => ({}))) as { error?: string; job?: CronJob };\n if (!res.ok) {\n throw new Error(typeof data.error === 'string' ? data.error : `HTTP ${res.status}`);\n }\n return data.job ?? null;\n}\n\nexport async function addJob(schedule: string, options: AddJobOptions): Promise<{ id: string; schedule: string }> {\n return fetchJsonCron(apiUrl('/api/cron'), {\n method: 'POST',\n body: JSON.stringify({ schedule, ...options }),\n });\n}\n\nexport async function updateJob(id: string, updates: CronJobUpdate): Promise<boolean> {\n const result = await fetchJsonCron<{ updated: boolean }>(apiUrl(`/api/cron/${encodeURIComponent(id)}`), {\n method: 'PATCH',\n body: JSON.stringify(updates),\n });\n return result.updated;\n}\n\nexport async function removeJob(id: string): Promise<boolean> {\n const result = await fetchJsonCron<{ removed: boolean }>(apiUrl(`/api/cron/${encodeURIComponent(id)}`), {\n method: 'DELETE',\n });\n return result.removed;\n}\n\nexport async function toggleJob(id: string, enabled: boolean): Promise<boolean> {\n const result = await fetchJsonCron<{ toggled: boolean }>(\n apiUrl(`/api/cron/${encodeURIComponent(id)}/toggle`),\n { method: 'POST', body: JSON.stringify({ enabled }) },\n );\n return result.toggled;\n}\n\nexport async function runJob(id: string): Promise<void> {\n await fetchJsonCron(apiUrl(`/api/cron/${encodeURIComponent(id)}/run`), { method: 'POST' });\n}\n\nexport async function getHistory(id: string, limit = 10): Promise<CronJobExecution[]> {\n const result = await fetchJsonCron<{ history: CronJobExecution[] }>(\n apiUrl(`/api/cron/${encodeURIComponent(id)}/history?limit=${limit}`),\n );\n return result.history || [];\n}\n\nexport async function getAllRunsHistory(limit = 40): Promise<CronRunHistoryRow[]> {\n const result = await fetchJsonCron<{ runs: CronRunHistoryRow[] }>(\n apiUrl(`/api/cron/runs/history?limit=${limit}`),\n );\n return result.runs || [];\n}\n\nexport async function getChannels(): Promise<ChannelStatus[]> {\n const result = await fetchJsonCron<{ ok: boolean; payload: { channels: ChannelStatus[] } }>(\n apiUrl('/api/channels/status'),\n );\n return result.payload?.channels || [];\n}\n\nexport async function getModels(): Promise<ModelInfo[]> {\n const models = await fetchConfiguredModelsCached();\n // Map ConfiguredModel to ModelInfo (id / name / provider)\n return models.map((m) => ({\n id: m.id,\n name: m.name,\n provider: m.provider,\n }));\n}\n\nexport async function getConfig(): Promise<ConfigInfo> {\n const result = await fetchJsonCron<{ ok?: boolean; payload?: { config?: unknown } }>(apiUrl('/api/config'));\n const c = result.payload?.config;\n return { model: agentDefaultModelFromGatewayConfig(c) };\n}\n\nexport async function getSessionChatIds(channel?: string): Promise<SessionChatId[]> {\n const query = channel ? `?channel=${encodeURIComponent(channel)}` : '';\n const result = await fetchJsonCron<{ ok: boolean; payload: { chatIds: SessionChatId[] } }>(\n apiUrl(`/api/sessions/chat-ids${query}`),\n );\n return result.payload?.chatIds || [];\n}\n"],"mappings":"kFAmDA,SAAgB+B,EAAgBC,EAAuC,CACrE,IAAME,EAAIF,EAAIJ,QAEd,OADIM,EAAEzB,OAAS,cAAsByB,EAAExB,MAAQ,GACxCwB,EAAEvB,SAAW,EACtB,CAYA,SAAS2B,EAAmCC,EAAoB,CAC9D,GAAI,CAACA,GAAK,OAAOA,GAAM,SAAU,MAAO,GACxC,IAAMC,EAAOD,EAAsDE,QAAQC,UAAU9B,MACrF,GAAI4B,GAA6B,KAAM,MAAO,GAC9C,GAAI,OAAOA,GAAQ,SAAU,OAAOA,EAAII,KAAK,EAC7C,GAAI,OAAOJ,GAAQ,UAAYA,GAAgB,YAAaA,EAAK,CAC/D,IAAMN,EAAKM,EAA8BK,QACzC,OAAO,OAAOX,GAAM,SAAWA,EAAEU,KAAK,EAAI,EAC5C,CACA,MAAO,EACT,CAqDA,eAAe0B,EAAiBC,EAA0BG,EAAgC,CACxF,IAAMI,EAAM,MAAM9E,EAASuE,EAAOG,CAAI,EAChCK,EAAQ,MAAMD,EAAIE,KAAK,EAAEC,WAAa,CAAC,EAAE,EAC/C,GAAI,CAACH,EAAII,GAAI,CACX,IAAMC,EAAM,OAAOJ,EAAKnB,OAAU,SAAWmB,EAAKnB,MAAQ,QAAQkB,EAAItB,SACtE,MAAU4B,MAAMD,CAAG,CACrB,CACA,OAAOJ,CACT,CAEA,eAAsBM,GAA+B,CAEnD,OAAOC,MADchB,EAAmCrE,EAAO,WAAW,CAAC,GAC7DsF,MAAQ,CAAA,CACxB,CAEA,eAAsBC,EAAOzE,EAAqC,CAChE,IAAM+D,EAAM,MAAM9E,EAASC,EAAO,aAAawF,mBAAmB1E,CAAE,GAAG,CAAC,EACxE,GAAI+D,EAAItB,SAAW,IAAK,OAAO,KAC/B,IAAMuB,EAAQ,MAAMD,EAAIE,KAAK,EAAEC,WAAa,CAAC,EAAE,EAC/C,GAAI,CAACH,EAAII,GACP,MAAUE,MAAM,OAAOL,EAAKnB,OAAU,SAAWmB,EAAKnB,MAAQ,QAAQkB,EAAItB,QAAQ,EAEpF,OAAOuB,EAAK/C,KAAO,IACrB,CAEA,eAAsB0D,EAAOzE,EAAkB0E,EAAmE,CAChH,OAAOrB,EAAcrE,EAAO,WAAW,EAAG,CACxC2F,OAAQ,OACRC,KAAMC,KAAKC,UAAU,CAAE9E,WAAU,GAAG0E,CAAQ,CAAC,CAC/C,CAAC,CACH,CAEA,eAAsBK,EAAUjF,EAAYkF,EAA0C,CAKpF,OAAOX,MAJchB,EAAoCrE,EAAO,aAAawF,mBAAmB1E,CAAE,GAAG,EAAG,CACtG6E,OAAQ,QACRC,KAAMC,KAAKC,UAAUE,CAAO,CAC9B,CAAC,GACaC,OAChB,CAEA,eAAsBC,EAAUpF,EAA8B,CAI5D,OAAOuE,MAHchB,EAAoCrE,EAAO,aAAawF,mBAAmB1E,CAAE,GAAG,EAAG,CACtG6E,OAAQ,QACV,CAAC,GACaQ,OAChB,CAEA,eAAsBC,EAAUtF,EAAYG,EAAoC,CAK9E,OAAOoE,MAJchB,EACnBrE,EAAO,aAAawF,mBAAmB1E,CAAE,EAAC,QAAS,EACnD,CAAE6E,OAAQ,OAAQC,KAAMC,KAAKC,UAAU,CAAE7E,SAAQ,CAAC,CAAE,CACtD,GACcoF,OAChB,CAEA,eAAsBC,EAAOxF,EAA2B,CACtD,MAAMuD,EAAcrE,EAAO,aAAawF,mBAAmB1E,CAAE,EAAC,KAAM,EAAG,CAAE6E,OAAQ,MAAO,CAAC,CAC3F,CAEA,eAAsBY,EAAWzF,EAAY0F,EAAQ,GAAiC,CAIpF,OAAOnB,MAHchB,EACnBrE,EAAO,aAAawF,mBAAmB1E,CAAE,EAAC,iBAAkB0F,GAAO,CACrE,GACcC,SAAW,CAAA,CAC3B,CAEA,eAAsBC,EAAkBF,EAAQ,GAAkC,CAIhF,OAAOnB,MAHchB,EACnBrE,EAAO,gCAAgCwG,GAAO,CAChD,GACcG,MAAQ,CAAA,CACxB,CAEA,eAAsBC,GAAwC,CAI5D,OAAOvB,MAHchB,EACnBrE,EAAO,sBAAsB,CAC/B,GACc2B,SAASkF,UAAY,CAAA,CACrC,CAEA,eAAsBC,GAAkC,CAGtD,OAAOC,MAFc9G,EAA4B,GAEnC+G,IAAKC,IAAO,CACxBnG,GAAImG,EAAEnG,GACNC,KAAMkG,EAAElG,KACRoB,SAAU8E,EAAE9E,QACd,EAAE,CACJ,CAEA,eAAsB+E,GAAiC,CAErD,IAAM5E,GAAI+C,MADWhB,EAAgErE,EAAO,aAAa,CAAC,GACzF2B,SAASwF,OAC1B,MAAO,CAAExG,MAAO0B,EAAmCC,CAAC,CAAE,CACxD,CAEA,eAAsB8E,EAAkBhH,EAA4C,CAKlF,OAAOiF,MAHchB,EACnBrE,EAAO,yBAFKI,EAAU,YAAYoF,mBAAmBpF,CAAO,IAAM,IAE3B,CACzC,GACcuB,SAAS2F,SAAW,CAAA,CACpC"}
|
|
1
|
+
{"version":3,"file":"cron-api-CzJGvQQ7.js","names":["apiFetch","apiUrl","fetchConfiguredModelsCached","CronDelivery","mode","channel","to","bestEffort","CronPayload","kind","text","message","model","timeoutSeconds","CronJob","id","name","schedule","enabled","timezone","maxRetries","timeout","next_run","created_at","updated_at","sessionTarget","agentId","workingDirectory","payload","delivery","AddJobOptions","cronJobBodyText","job","Pick","p","ModelInfo","provider","ConfigInfo","agentDefaultModelFromGatewayConfig","c","raw","agents","defaults","undefined","trim","primary","ChannelStatus","connected","SessionChatId","chatId","lastActive","accountId","peerKind","peerId","CronJobExecution","jobId","status","startedAt","endedAt","duration","error","output","retryCount","summary","sessionKey","sessionId","sessionType","CronRunHistoryRow","jobName","CronJobUpdate","fetchJsonCron","input","RequestInfo","URL","init","RequestInit","Promise","T","res","data","json","catch","ok","msg","Error","listJobs","result","jobs","getJob","encodeURIComponent","addJob","options","method","body","JSON","stringify","updateJob","updates","updated","removeJob","removed","toggleJob","toggled","runJob","getHistory","limit","history","getAllRunsHistory","runs","getChannels","channels","getModels","models","map","m","getConfig","config","getSessionChatIds","query","chatIds"],"sources":["../../../../../web/src/features/cron/cron-api.ts"],"sourcesContent":["import { apiFetch } from '@/lib/fetch';\nimport { apiUrl } from '@/lib/url';\nimport { fetchConfiguredModelsCached } from '@/features/chat/api/registry-api';\n\nexport interface CronDelivery {\n mode: 'none' | 'announce' | 'direct';\n channel?: string;\n to?: string;\n bestEffort?: boolean;\n}\n\nexport interface CronPayload {\n kind: 'systemEvent' | 'agentTurn';\n text?: string;\n message?: string;\n model?: string;\n timeoutSeconds?: number;\n}\n\nexport interface CronJob {\n id: string;\n name?: string;\n schedule: string;\n enabled: boolean;\n timezone?: string;\n maxRetries: number;\n timeout: number;\n next_run?: string;\n created_at: string;\n updated_at: string;\n sessionTarget?: 'main' | 'isolated';\n /** Isolated jobs: agent profile for session key; omit uses the default agent. */\n agentId?: string;\n /** Isolated jobs: absolute workspace on gateway host; omit uses the agent default workspace. */\n workingDirectory?: string;\n payload: CronPayload;\n delivery?: CronDelivery;\n model?: string;\n}\n\nexport interface AddJobOptions {\n name?: string;\n timezone?: string;\n sessionTarget?: 'main' | 'isolated';\n agentId?: string;\n workingDirectory?: string;\n model?: string;\n delivery?: CronDelivery;\n payload: CronPayload;\n}\n\nexport function cronJobBodyText(job: Pick<CronJob, 'payload'>): string {\n const p = job.payload;\n if (p.kind === 'systemEvent') return p.text ?? '';\n return p.message ?? '';\n}\n\nexport interface ModelInfo {\n id: string;\n name: string;\n provider: string;\n}\n\nexport interface ConfigInfo {\n model?: string;\n}\n\nfunction agentDefaultModelFromGatewayConfig(c: unknown): string {\n if (!c || typeof c !== 'object') return '';\n const raw = (c as { agents?: { defaults?: { model?: unknown } } }).agents?.defaults?.model;\n if (raw === undefined || raw === null) return '';\n if (typeof raw === 'string') return raw.trim();\n if (typeof raw === 'object' && raw !== null && 'primary' in raw) {\n const p = (raw as { primary?: unknown }).primary;\n return typeof p === 'string' ? p.trim() : '';\n }\n return '';\n}\n\nexport interface ChannelStatus {\n name: string;\n enabled: boolean;\n connected: boolean;\n}\n\nexport interface SessionChatId {\n channel: string;\n chatId: string;\n lastActive: string;\n accountId?: string;\n peerKind?: string;\n peerId?: string;\n}\n\nexport interface CronJobExecution {\n id: string;\n jobId: string;\n status: 'running' | 'success' | 'failed' | 'cancelled';\n startedAt: string;\n endedAt?: string;\n duration?: number;\n error?: string;\n output?: string;\n retryCount: number;\n summary?: string;\n sessionKey?: string;\n sessionId?: string;\n sessionType?: string;\n model?: string;\n}\n\nexport interface CronRunHistoryRow extends CronJobExecution {\n jobName?: string;\n}\n\nexport interface CronJobUpdate {\n name?: string;\n schedule?: string;\n enabled?: boolean;\n timezone?: string;\n maxRetries?: number;\n timeout?: number;\n sessionTarget?: 'main' | 'isolated';\n agentId?: string | null;\n workingDirectory?: string | null;\n model?: string;\n delivery?: CronDelivery;\n payload?: CronPayload;\n}\n\nasync function fetchJsonCron<T>(input: RequestInfo | URL, init?: RequestInit): Promise<T> {\n const res = await apiFetch(input, init);\n const data = (await res.json().catch(() => ({}))) as { error?: string };\n if (!res.ok) {\n const msg = typeof data.error === 'string' ? data.error : `HTTP ${res.status}`;\n throw new Error(msg);\n }\n return data as T;\n}\n\nexport async function listJobs(): Promise<CronJob[]> {\n const result = await fetchJsonCron<{ jobs: CronJob[] }>(apiUrl('/api/cron'));\n return result.jobs || [];\n}\n\nexport async function getJob(id: string): Promise<CronJob | null> {\n const res = await apiFetch(apiUrl(`/api/cron/${encodeURIComponent(id)}`));\n if (res.status === 404) return null;\n const data = (await res.json().catch(() => ({}))) as { error?: string; job?: CronJob };\n if (!res.ok) {\n throw new Error(typeof data.error === 'string' ? data.error : `HTTP ${res.status}`);\n }\n return data.job ?? null;\n}\n\nexport async function addJob(schedule: string, options: AddJobOptions): Promise<{ id: string; schedule: string }> {\n return fetchJsonCron(apiUrl('/api/cron'), {\n method: 'POST',\n body: JSON.stringify({ schedule, ...options }),\n });\n}\n\nexport async function updateJob(id: string, updates: CronJobUpdate): Promise<boolean> {\n const result = await fetchJsonCron<{ updated: boolean }>(apiUrl(`/api/cron/${encodeURIComponent(id)}`), {\n method: 'PATCH',\n body: JSON.stringify(updates),\n });\n return result.updated;\n}\n\nexport async function removeJob(id: string): Promise<boolean> {\n const result = await fetchJsonCron<{ removed: boolean }>(apiUrl(`/api/cron/${encodeURIComponent(id)}`), {\n method: 'DELETE',\n });\n return result.removed;\n}\n\nexport async function toggleJob(id: string, enabled: boolean): Promise<boolean> {\n const result = await fetchJsonCron<{ toggled: boolean }>(\n apiUrl(`/api/cron/${encodeURIComponent(id)}/toggle`),\n { method: 'POST', body: JSON.stringify({ enabled }) },\n );\n return result.toggled;\n}\n\nexport async function runJob(id: string): Promise<void> {\n await fetchJsonCron(apiUrl(`/api/cron/${encodeURIComponent(id)}/run`), { method: 'POST' });\n}\n\nexport async function getHistory(id: string, limit = 10): Promise<CronJobExecution[]> {\n const result = await fetchJsonCron<{ history: CronJobExecution[] }>(\n apiUrl(`/api/cron/${encodeURIComponent(id)}/history?limit=${limit}`),\n );\n return result.history || [];\n}\n\nexport async function getAllRunsHistory(limit = 40): Promise<CronRunHistoryRow[]> {\n const result = await fetchJsonCron<{ runs: CronRunHistoryRow[] }>(\n apiUrl(`/api/cron/runs/history?limit=${limit}`),\n );\n return result.runs || [];\n}\n\nexport async function getChannels(): Promise<ChannelStatus[]> {\n const result = await fetchJsonCron<{ ok: boolean; payload: { channels: ChannelStatus[] } }>(\n apiUrl('/api/channels/status'),\n );\n return result.payload?.channels || [];\n}\n\nexport async function getModels(): Promise<ModelInfo[]> {\n const models = await fetchConfiguredModelsCached();\n // Map ConfiguredModel to ModelInfo (id / name / provider)\n return models.map((m) => ({\n id: m.id,\n name: m.name,\n provider: m.provider,\n }));\n}\n\nexport async function getConfig(): Promise<ConfigInfo> {\n const result = await fetchJsonCron<{ ok?: boolean; payload?: { config?: unknown } }>(apiUrl('/api/config'));\n const c = result.payload?.config;\n return { model: agentDefaultModelFromGatewayConfig(c) };\n}\n\nexport async function getSessionChatIds(channel?: string): Promise<SessionChatId[]> {\n const query = channel ? `?channel=${encodeURIComponent(channel)}` : '';\n const result = await fetchJsonCron<{ ok: boolean; payload: { chatIds: SessionChatId[] } }>(\n apiUrl(`/api/sessions/chat-ids${query}`),\n );\n return result.payload?.chatIds || [];\n}\n"],"mappings":"kFAmDA,SAAgB+B,EAAgBC,EAAuC,CACrE,IAAME,EAAIF,EAAIJ,QAEd,OADIM,EAAEzB,OAAS,cAAsByB,EAAExB,MAAQ,GACxCwB,EAAEvB,SAAW,EACtB,CAYA,SAAS2B,EAAmCC,EAAoB,CAC9D,GAAI,CAACA,GAAK,OAAOA,GAAM,SAAU,MAAO,GACxC,IAAMC,EAAOD,EAAsDE,QAAQC,UAAU9B,MACrF,GAAI4B,GAA6B,KAAM,MAAO,GAC9C,GAAI,OAAOA,GAAQ,SAAU,OAAOA,EAAII,KAAK,EAC7C,GAAI,OAAOJ,GAAQ,UAAYA,GAAgB,YAAaA,EAAK,CAC/D,IAAMN,EAAKM,EAA8BK,QACzC,OAAO,OAAOX,GAAM,SAAWA,EAAEU,KAAK,EAAI,EAC5C,CACA,MAAO,EACT,CAqDA,eAAe0B,EAAiBC,EAA0BG,EAAgC,CACxF,IAAMI,EAAM,MAAM9E,EAASuE,EAAOG,CAAI,EAChCK,EAAQ,MAAMD,EAAIE,KAAK,EAAEC,WAAa,CAAC,EAAE,EAC/C,GAAI,CAACH,EAAII,GAAI,CACX,IAAMC,EAAM,OAAOJ,EAAKnB,OAAU,SAAWmB,EAAKnB,MAAQ,QAAQkB,EAAItB,SACtE,MAAU4B,MAAMD,CAAG,CACrB,CACA,OAAOJ,CACT,CAEA,eAAsBM,GAA+B,CAEnD,OAAOC,MADchB,EAAmCrE,EAAO,WAAW,CAAC,GAC7DsF,MAAQ,CAAA,CACxB,CAEA,eAAsBC,EAAOzE,EAAqC,CAChE,IAAM+D,EAAM,MAAM9E,EAASC,EAAO,aAAawF,mBAAmB1E,CAAE,GAAG,CAAC,EACxE,GAAI+D,EAAItB,SAAW,IAAK,OAAO,KAC/B,IAAMuB,EAAQ,MAAMD,EAAIE,KAAK,EAAEC,WAAa,CAAC,EAAE,EAC/C,GAAI,CAACH,EAAII,GACP,MAAUE,MAAM,OAAOL,EAAKnB,OAAU,SAAWmB,EAAKnB,MAAQ,QAAQkB,EAAItB,QAAQ,EAEpF,OAAOuB,EAAK/C,KAAO,IACrB,CAEA,eAAsB0D,EAAOzE,EAAkB0E,EAAmE,CAChH,OAAOrB,EAAcrE,EAAO,WAAW,EAAG,CACxC2F,OAAQ,OACRC,KAAMC,KAAKC,UAAU,CAAE9E,WAAU,GAAG0E,CAAQ,CAAC,CAC/C,CAAC,CACH,CAEA,eAAsBK,EAAUjF,EAAYkF,EAA0C,CAKpF,OAAOX,MAJchB,EAAoCrE,EAAO,aAAawF,mBAAmB1E,CAAE,GAAG,EAAG,CACtG6E,OAAQ,QACRC,KAAMC,KAAKC,UAAUE,CAAO,CAC9B,CAAC,GACaC,OAChB,CAEA,eAAsBC,EAAUpF,EAA8B,CAI5D,OAAOuE,MAHchB,EAAoCrE,EAAO,aAAawF,mBAAmB1E,CAAE,GAAG,EAAG,CACtG6E,OAAQ,QACV,CAAC,GACaQ,OAChB,CAEA,eAAsBC,EAAUtF,EAAYG,EAAoC,CAK9E,OAAOoE,MAJchB,EACnBrE,EAAO,aAAawF,mBAAmB1E,CAAE,EAAC,QAAS,EACnD,CAAE6E,OAAQ,OAAQC,KAAMC,KAAKC,UAAU,CAAE7E,SAAQ,CAAC,CAAE,CACtD,GACcoF,OAChB,CAEA,eAAsBC,EAAOxF,EAA2B,CACtD,MAAMuD,EAAcrE,EAAO,aAAawF,mBAAmB1E,CAAE,EAAC,KAAM,EAAG,CAAE6E,OAAQ,MAAO,CAAC,CAC3F,CAEA,eAAsBY,EAAWzF,EAAY0F,EAAQ,GAAiC,CAIpF,OAAOnB,MAHchB,EACnBrE,EAAO,aAAawF,mBAAmB1E,CAAE,EAAC,iBAAkB0F,GAAO,CACrE,GACcC,SAAW,CAAA,CAC3B,CAEA,eAAsBC,EAAkBF,EAAQ,GAAkC,CAIhF,OAAOnB,MAHchB,EACnBrE,EAAO,gCAAgCwG,GAAO,CAChD,GACcG,MAAQ,CAAA,CACxB,CAEA,eAAsBC,GAAwC,CAI5D,OAAOvB,MAHchB,EACnBrE,EAAO,sBAAsB,CAC/B,GACc2B,SAASkF,UAAY,CAAA,CACrC,CAEA,eAAsBC,GAAkC,CAGtD,OAAOC,MAFc9G,EAA4B,GAEnC+G,IAAKC,IAAO,CACxBnG,GAAImG,EAAEnG,GACNC,KAAMkG,EAAElG,KACRoB,SAAU8E,EAAE9E,QACd,EAAE,CACJ,CAEA,eAAsB+E,GAAiC,CAErD,IAAM5E,GAAI+C,MADWhB,EAAgErE,EAAO,aAAa,CAAC,GACzF2B,SAASwF,OAC1B,MAAO,CAAExG,MAAO0B,EAAmCC,CAAC,CAAE,CACxD,CAEA,eAAsB8E,EAAkBhH,EAA4C,CAKlF,OAAOiF,MAHchB,EACnBrE,EAAO,yBAFKI,EAAU,YAAYoF,mBAAmBpF,CAAO,IAAM,IAE3B,CACzC,GACcuB,SAAS2F,SAAW,CAAA,CACpC"}
|
|
@@ -1,2 +1,2 @@
|
|
|
1
|
-
import{i as e}from"./rolldown-runtime-aKtaBQYM.js";import{a as t,n,t as r}from"./vendor-react-BOUWij0V.js";import{c as i,d as a,l as o}from"./fetch-K_0JRCXU.js";import{D as s,P as c,a as l,i as u,n as d,o as f,s as p,t as m}from"./dist-C57OMHW8.js";import{n as h,t as g}from"./button-KafIU8dx.js";import{i as _}from"./theme-store-Bl5A2Fd_.js";import{Ft as v,Gr as y,Kn as b,Mi as x,N as S,Or as C,Pt as w,Rn as T,Tr as E,Vn as D,Wn as O,Yr as k,an as A,c as j,dn as M,fn as N,jn as P,l as F,lr as I,o as L,on as R,pi as z,r as B,s as V,ti as H,ui as U,xi as W,yn as G,zn as K}from"./index-ChiUhJAs.js";import{a as q,c as J,d as Y,i as X,l as ee,n as te,o as ne,s as re,t as ie,u as ae}from"./cron-dreaming-jobs-DueM3rBz.js";import{a as oe,c as se,d as ce,f as le,i as ue,l as de,m as fe,n as pe,o as me,p as he,r as ge,s as _e,t as ve,u as ye}from"./cron-api-CLxnaHdq.js";import{s as be,t as xe}from"./heartbeat-config-api-BqfDabSI.js";import{a as Se,i as Ce,n as we,r as Te,t as Ee}from"./dist-BfJYxiK5.js";var Z=e(t(),1),Q=n(),$=r();function De(e){let t=(0,Q.c)(25),{open:n,onOpenChange:r,action:i,c:a,onDismiss:o,onConfirm:s}=e,c;t[0]===Symbol.for(`react.memo_cache_sentinel`)?(c=(0,$.jsx)(u,{className:`xopc-dialog-overlay fixed inset-0 z-[70] bg-scrim`}),t[0]=c):c=t[0];let m=i===`delete`?a.delete:a.runNow,h;t[1]===m?h=t[2]:(h=(0,$.jsx)(p,{className:`text-base font-semibold text-fg`,children:m}),t[1]=m,t[2]=h);let _=i===`delete`?a.confirmDelete:a.confirmRun,v;t[3]===_?v=t[4]:(v=(0,$.jsx)(`p`,{className:`mt-2 text-sm text-fg-muted`,children:_}),t[3]=_,t[4]=v);let y;t[5]!==a.cancel||t[6]!==o?(y=(0,$.jsx)(g,{type:`button`,variant:`secondary`,onClick:o,children:a.cancel}),t[5]=a.cancel,t[6]=o,t[7]=y):y=t[7];let b=i===`delete`?`bg-red-600 hover:bg-red-700`:void 0,x;t[8]===s?x=t[9]:(x=()=>void s(),t[8]=s,t[9]=x);let S=i===`delete`?a.delete:a.runNow,C;t[10]!==b||t[11]!==x||t[12]!==S?(C=(0,$.jsx)(g,{type:`button`,variant:`primary`,className:b,onClick:x,children:S}),t[10]=b,t[11]=x,t[12]=S,t[13]=C):C=t[13];let w;t[14]!==C||t[15]!==y?(w=(0,$.jsxs)(`div`,{className:`mt-4 flex justify-end gap-2`,children:[y,C]}),t[14]=C,t[15]=y,t[16]=w):w=t[16];let T;t[17]!==w||t[18]!==h||t[19]!==v?(T=(0,$.jsxs)(l,{children:[c,(0,$.jsx)(`div`,{className:`fixed inset-0 z-[70] flex items-center justify-center p-4 pointer-events-none`,children:(0,$.jsxs)(d,{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:[h,v,w]})})]}),t[17]=w,t[18]=h,t[19]=v,t[20]=T):T=t[20];let E;return t[21]!==r||t[22]!==n||t[23]!==T?(E=(0,$.jsx)(f,{open:n,onOpenChange:r,children:T}),t[21]=r,t[22]=n,t[23]=T,t[24]=E):E=t[24],E}var Oe=`*/5 * * * *`;function ke(e){let t=new Date(e);return t.setHours(0,0,0,0),t}function Ae(e){let t=ke(e),n=t.getDay(),r=n===0?-6:1-n;return t.setDate(t.getDate()+r),t}function je(e){return new Date(e.getFullYear(),e.getMonth(),1,0,0,0,0)}function Me(e){let t=e?.trim();t&&window.dispatchEvent(new CustomEvent(`navigate-to-chat`,{detail:{sessionKey:t},bubbles:!0}))}function Ne(e){return h(`w-full rounded-md border border-edge bg-surface-base px-3 py-2 text-sm text-fg placeholder:text-fg-disabled`,T,e&&`cursor-not-allowed opacity-60`)}function Pe(){return h(D,K)}var Fe=h(D,`w-full text-xs sm:w-auto sm:min-w-[11rem] sm:max-w-[17rem] sm:shrink-0`),Ie=h(D,`w-auto min-w-[9rem] max-w-[14rem] shrink-0 text-xs`);function Le(e){let t=(0,Q.c)(55),{open:n,onDismiss:r,detailJob:i,detailLoading:a,detailHistory:o,c:s,chatWorkingDirNotSet:c,statusLabels:_}=e,v;t[0]===r?v=t[1]:(v=e=>{e||r()},t[0]=r,t[1]=v);let x;t[2]===Symbol.for(`react.memo_cache_sentinel`)?(x=(0,$.jsx)(u,{className:`xopc-dialog-overlay fixed inset-0 z-[60] bg-scrim`}),t[2]=x):x=t[2];let S;t[3]===Symbol.for(`react.memo_cache_sentinel`)?(S=h(`xopc-drawer-right fixed right-0 top-0 z-[60] flex size-full max-w-lg flex-col border-l border-edge bg-surface-panel shadow-popover outline-none`,`dark:border-edge`),t[3]=S):S=t[3];let C;t[4]!==i?.id||t[5]!==i?.name?(C=i?.name?.trim()||i?.id||`—`,t[4]=i?.id,t[5]=i?.name,t[6]=C):C=t[6];let T;t[7]===C?T=t[8]:(T=(0,$.jsx)(p,{className:`min-w-0 truncate text-base font-semibold text-fg`,children:C}),t[7]=C,t[8]=T);let E;t[9]===Symbol.for(`react.memo_cache_sentinel`)?(E=(0,$.jsx)(b,{className:`size-5`,strokeWidth:1.75}),t[9]=E):E=t[9];let D;t[10]===s.close?D=t[11]:(D=(0,$.jsx)(m,{asChild:!0,children:(0,$.jsx)(g,{type:`button`,variant:`ghost`,className:`size-9 shrink-0 p-0`,"aria-label":s.close,children:E})}),t[10]=s.close,t[11]=D);let O;t[12]!==T||t[13]!==D?(O=(0,$.jsxs)(`div`,{className:`flex shrink-0 items-center justify-between gap-2 border-b border-edge px-4 py-3`,children:[T,D]}),t[12]=T,t[13]=D,t[14]=O):O=t[14];let k;t[15]!==s.agentProfile||t[16]!==s.agentProfileDefault||t[17]!==s.channelLocal||t[18]!==s.colChat||t[19]!==s.colDetail||t[20]!==s.colDuration||t[21]!==s.colStarted||t[22]!==s.deliveryLocalOnly||t[23]!==s.deliveryTarget||t[24]!==s.deliveryTargetLocalChannel||t[25]!==s.detailRunHistory||t[26]!==s.disabled||t[27]!==s.enabled||t[28]!==s.messageLabel||t[29]!==s.mode||t[30]!==s.modeAgentOption||t[31]!==s.modeDirectOption||t[32]!==s.nextRun||t[33]!==s.noRunsYet||t[34]!==s.openChat||t[35]!==s.openChatTitle||t[36]!==s.scheduleLabel||t[37]!==s.status||t[38]!==s.timeLabels||t[39]!==s.workingDirectoryLabel||t[40]!==c||t[41]!==o||t[42]!==i||t[43]!==a||t[44]!==_?(k=a?(0,$.jsx)(`div`,{className:`flex justify-center py-16`,children:(0,$.jsx)(y,{className:`size-8 animate-spin text-accent`,strokeWidth:1.75})}):i?(0,$.jsxs)($.Fragment,{children:[(0,$.jsxs)(`dl`,{className:`space-y-3 text-sm`,children:[(0,$.jsxs)(`div`,{children:[(0,$.jsx)(`dt`,{className:`text-xs font-medium text-fg-muted`,children:s.scheduleLabel}),(0,$.jsx)(`dd`,{className:`mt-1 font-mono text-fg`,children:(0,$.jsx)(`code`,{children:i.schedule})})]}),(0,$.jsxs)(`div`,{children:[(0,$.jsx)(`dt`,{className:`text-xs font-medium text-fg-muted`,children:s.messageLabel}),(0,$.jsx)(`dd`,{className:`mt-1 min-w-0 break-words text-fg`,children:(0,$.jsx)(w,{content:pe(i),compact:!0,className:`text-sm`})})]}),(0,$.jsxs)(`div`,{children:[(0,$.jsx)(`dt`,{className:`text-xs font-medium text-fg-muted`,children:s.mode}),(0,$.jsx)(`dd`,{className:`mt-1 text-fg`,children:i.sessionTarget===`isolated`?s.modeAgentOption:s.modeDirectOption})]}),i.sessionTarget===`isolated`?(0,$.jsxs)(`div`,{children:[(0,$.jsx)(`dt`,{className:`text-xs font-medium text-fg-muted`,children:s.agentProfile}),(0,$.jsx)(`dd`,{className:`mt-1 font-mono text-sm text-fg`,children:i.agentId?.trim()?i.agentId.trim():s.agentProfileDefault})]}):null,i.sessionTarget===`isolated`?(0,$.jsxs)(`div`,{children:[(0,$.jsx)(`dt`,{className:`text-xs font-medium text-fg-muted`,children:s.workingDirectoryLabel}),(0,$.jsx)(`dd`,{className:`mt-1 break-all font-mono text-xs text-fg`,children:i.workingDirectory?.trim()?i.workingDirectory.trim():c})]}):null,i.delivery?.channel===`local`||i.sessionTarget===`isolated`&&!i.delivery?.to?(0,$.jsxs)(`div`,{children:[(0,$.jsx)(`dt`,{className:`text-xs font-medium text-fg-muted`,children:s.deliveryTarget}),(0,$.jsx)(`dd`,{className:`mt-1 text-fg`,children:i.delivery?.channel===`local`?s.deliveryTargetLocalChannel:s.deliveryLocalOnly})]}):i.delivery?.to?(0,$.jsxs)(`div`,{children:[(0,$.jsx)(`dt`,{className:`text-xs font-medium text-fg-muted`,children:s.deliveryTarget}),(0,$.jsxs)(`dd`,{className:`mt-1 break-words text-fg`,children:[(0,$.jsx)(`code`,{className:`text-xs`,children:i.delivery?.channel??``}),` → `,q(i,s.channelLocal)]})]}):null,(0,$.jsxs)(`div`,{children:[(0,$.jsx)(`dt`,{className:`text-xs font-medium text-fg-muted`,children:s.status}),(0,$.jsx)(`dd`,{className:`mt-1 text-fg`,children:i.enabled?s.enabled:s.disabled})]}),(0,$.jsxs)(`div`,{children:[(0,$.jsx)(`dt`,{className:`text-xs font-medium text-fg-muted`,children:s.nextRun}),(0,$.jsx)(`dd`,{className:`mt-1 text-fg`,children:i.next_run?re(i.next_run,s.timeLabels):`—`})]})]}),(0,$.jsx)(`h3`,{className:`mt-6 text-sm font-semibold text-fg`,children:s.detailRunHistory}),o.length===0?(0,$.jsx)(`p`,{className:`mt-2 text-sm text-fg-muted`,children:s.noRunsYet}):(0,$.jsx)(`div`,{className:`mt-2 overflow-x-auto`,children:(0,$.jsxs)(`table`,{className:`w-full border-collapse text-left text-xs`,children:[(0,$.jsx)(`thead`,{children:(0,$.jsxs)(`tr`,{className:`border-b border-edge text-fg-muted`,children:[(0,$.jsx)(`th`,{className:`py-1.5 pr-2 font-medium`,children:s.colStarted}),(0,$.jsx)(`th`,{className:`py-1.5 pr-2 font-medium`,children:s.status}),(0,$.jsx)(`th`,{className:`py-1.5 pr-2 font-medium`,children:s.colDuration}),(0,$.jsx)(`th`,{className:`py-1.5 pr-2 font-medium`,children:s.colDetail}),(0,$.jsx)(`th`,{className:`py-1.5 font-medium`,children:s.colChat})]})}),(0,$.jsx)(`tbody`,{children:o.map(e=>(0,$.jsxs)(`tr`,{className:`border-b border-edge/60`,children:[(0,$.jsx)(`td`,{className:`whitespace-nowrap py-1.5 pr-2 text-fg`,children:(0,$.jsx)(`time`,{dateTime:e.startedAt,children:ae(e.startedAt)})}),(0,$.jsx)(`td`,{className:`py-1.5 pr-2`,children:(0,$.jsx)(`span`,{className:h(`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:X(e.status,_)})}),(0,$.jsx)(`td`,{className:`py-1.5 pr-2 text-fg-muted`,children:ne(e.duration)}),(0,$.jsx)(`td`,{className:`max-w-[8rem] truncate py-1.5 pr-2 text-fg-muted`,title:e.summary||e.error||``,children:Y(e.summary||e.error,120)}),(0,$.jsx)(`td`,{className:`whitespace-nowrap py-1.5`,children:e.sessionKey?.trim()?(0,$.jsx)(`button`,{type:`button`,className:`text-xs font-medium text-accent hover:underline`,title:s.openChatTitle,"aria-label":s.openChatTitle,onClick:()=>Me(e.sessionKey),children:s.openChat}):(0,$.jsx)(`span`,{className:`text-fg-disabled`,children:`—`})})]},e.id))})]})})]}):null,t[15]=s.agentProfile,t[16]=s.agentProfileDefault,t[17]=s.channelLocal,t[18]=s.colChat,t[19]=s.colDetail,t[20]=s.colDuration,t[21]=s.colStarted,t[22]=s.deliveryLocalOnly,t[23]=s.deliveryTarget,t[24]=s.deliveryTargetLocalChannel,t[25]=s.detailRunHistory,t[26]=s.disabled,t[27]=s.enabled,t[28]=s.messageLabel,t[29]=s.mode,t[30]=s.modeAgentOption,t[31]=s.modeDirectOption,t[32]=s.nextRun,t[33]=s.noRunsYet,t[34]=s.openChat,t[35]=s.openChatTitle,t[36]=s.scheduleLabel,t[37]=s.status,t[38]=s.timeLabels,t[39]=s.workingDirectoryLabel,t[40]=c,t[41]=o,t[42]=i,t[43]=a,t[44]=_,t[45]=k):k=t[45];let A;t[46]===k?A=t[47]:(A=(0,$.jsx)(`div`,{className:`min-h-0 flex-1 overflow-y-auto px-4 py-3`,children:k}),t[46]=k,t[47]=A);let j;t[48]!==A||t[49]!==O?(j=(0,$.jsxs)(l,{children:[x,(0,$.jsxs)(d,{className:S,"aria-describedby":void 0,children:[O,A]})]}),t[48]=A,t[49]=O,t[50]=j):j=t[50];let M;return t[51]!==n||t[52]!==v||t[53]!==j?(M=(0,$.jsx)(f,{open:n,onOpenChange:v,children:j}),t[51]=n,t[52]=v,t[53]=j,t[54]=M):M=t[54],M}function Re(e){let t=(0,Q.c)(31),{value:n,onChange:r,disabled:i,wd:a,placeholder:o,title:s,maxWidthClass:c,clearLabel:l,onClear:u}=e,d;t[0]!==r||t[1]!==n?(d={initialPath:n,onPicked:r},t[0]=r,t[1]=n,t[2]=d):d=t[2];let f=V(d),p;t[3]===n?p=t[4]:(p=n.trim(),t[3]=n,t[4]=p);let m=p,h=s??(m?`${m}\n${a.chooseFolder}`:`${o??a.notSet}\n${a.selectWorkingDirectory}`),g=i||f.picking,_=o??a.notSet,v;t[5]!==c||t[6]!==f.pick||t[7]!==h||t[8]!==g||t[9]!==_||t[10]!==n?(v=(0,$.jsx)(j,{value:n,onPick:f.pick,disabled:g,placeholder:_,title:h,maxWidthClass:c}),t[5]=c,t[6]=f.pick,t[7]=h,t[8]=g,t[9]=_,t[10]=n,t[11]=v):v=t[11];let y;t[12]!==l||t[13]!==i||t[14]!==u||t[15]!==f.picking||t[16]!==m?(y=l&&m&&u?(0,$.jsx)(`button`,{type:`button`,disabled:i||f.picking,className:`text-xs font-medium text-accent hover:underline disabled:opacity-50`,onClick:u,children:l}):null,t[12]=l,t[13]=i,t[14]=u,t[15]=f.picking,t[16]=m,t[17]=y):y=t[17];let b;t[18]!==v||t[19]!==y?(b=(0,$.jsxs)(`div`,{className:`flex flex-wrap items-center gap-2`,children:[v,y]}),t[18]=v,t[19]=y,t[20]=b):b=t[20];let x;t[21]!==f.confirmPick||t[22]!==f.hasNativePicker||t[23]!==f.modalOpen||t[24]!==f.setModalOpen||t[25]!==m||t[26]!==a?(x=f.hasNativePicker?null:(0,$.jsx)(B,{open:f.modalOpen,onOpenChange:f.setModalOpen,initialAbsolutePath:m||void 0,onConfirm:f.confirmPick,wd:a}),t[21]=f.confirmPick,t[22]=f.hasNativePicker,t[23]=f.modalOpen,t[24]=f.setModalOpen,t[25]=m,t[26]=a,t[27]=x):x=t[27];let S;return t[28]!==b||t[29]!==x?(S=(0,$.jsxs)($.Fragment,{children:[b,x]}),t[28]=b,t[29]=x,t[30]=S):S=t[30],S}function ze(e){let t=(0,Q.c)(164),{open:n,onRequestClose:r,c:i,chatM:a,agentsMessages:o,isDark:s,channels:c,sessionChatIds:_,cronAgentSelectOptions:y,defaultModelResolver:x,formMode:C,formJobId:T,formName:D,onFormNameChange:O,formSchedule:k,onFormScheduleChange:A,formSubmitting:j,formSessionTarget:M,onFormSessionTargetChange:N,formAgentLocalOnly:P,onFormAgentLocalOnlyChange:L,formModel:R,onFormModelUserChange:z,formAgentId:B,onFormAgentIdChange:V,formWorkingDirectory:H,onFormWorkingDirectoryChange:W,formChannel:G,onFormChannelChange:K,formChatId:q,onFormChatIdChange:Y,formMessage:X,onFormMessageChange:ee,formMessageMdMode:te,onSetMessageMdMode:ne,messageEditorNonce:re,needsDeliveryChat:ie,showChannelPicker:ae,canSubmit:oe,onSubmit:se,onRefreshRecipients:ce}=e,le;t[0]===r?le=t[1]:(le=e=>!e&&r(),t[0]=r,t[1]=le);let ue;t[2]===Symbol.for(`react.memo_cache_sentinel`)?(ue=(0,$.jsx)(u,{className:`xopc-dialog-overlay fixed inset-0 z-[60] bg-scrim`}),t[2]=ue):ue=t[2];let de=C===`edit`?i.editJob:i.addJob,fe;t[3]===de?fe=t[4]:(fe=(0,$.jsx)(p,{className:`text-base font-semibold text-fg`,children:de}),t[3]=de,t[4]=fe);let pe;t[5]===Symbol.for(`react.memo_cache_sentinel`)?(pe=(0,$.jsx)(b,{className:`size-5`,strokeWidth:1.75}),t[5]=pe):pe=t[5];let me;t[6]===i.close?me=t[7]:(me=(0,$.jsx)(m,{asChild:!0,children:(0,$.jsx)(g,{type:`button`,variant:`ghost`,className:`size-9 shrink-0 p-0`,"aria-label":i.close,children:pe})}),t[6]=i.close,t[7]=me);let he;t[8]!==fe||t[9]!==me?(he=(0,$.jsxs)(`div`,{className:`flex shrink-0 items-center justify-between gap-2 border-b border-edge px-4 py-3`,children:[fe,me]}),t[8]=fe,t[9]=me,t[10]=he):he=t[10];let ge;t[11]===i.name?ge=t[12]:(ge=(0,$.jsx)(`span`,{className:`text-xs font-medium text-fg-muted`,children:i.name}),t[11]=i.name,t[12]=ge);let _e;t[13]===Symbol.for(`react.memo_cache_sentinel`)?(_e=Ne(),t[13]=_e):_e=t[13];let ve;t[14]===O?ve=t[15]:(ve=e=>O(e.target.value),t[14]=O,t[15]=ve);let ye;t[16]!==i.namePlaceholder||t[17]!==D||t[18]!==ve?(ye=(0,$.jsx)(`input`,{type:`text`,className:_e,value:D,onChange:ve,placeholder:i.namePlaceholder}),t[16]=i.namePlaceholder,t[17]=D,t[18]=ve,t[19]=ye):ye=t[19];let xe;t[20]!==ye||t[21]!==ge?(xe=(0,$.jsxs)(`label`,{className:`flex flex-col gap-1`,children:[ge,ye]}),t[20]=ye,t[21]=ge,t[22]=xe):xe=t[22];let Se;t[23]!==i.schedulePicker||t[24]!==k||t[25]!==j||t[26]!==A?(Se=(0,$.jsx)(be,{value:k,onChange:A,disabled:j,labels:i.schedulePicker}),t[23]=i.schedulePicker,t[24]=k,t[25]=j,t[26]=A,t[27]=Se):Se=t[27];let Ce;t[28]===i.mode?Ce=t[29]:(Ce=(0,$.jsx)(`span`,{className:`text-xs font-medium text-fg-muted`,children:i.mode}),t[28]=i.mode,t[29]=Ce);let we;t[30]===Symbol.for(`react.memo_cache_sentinel`)?(we=Pe(),t[30]=we):we=t[30];let Te;t[31]!==x||t[32]!==R||t[33]!==N?(Te=e=>{let t=e.target.value;N(t,x,R.trim())},t[31]=x,t[32]=R,t[33]=N,t[34]=Te):Te=t[34];let Ee;t[35]===i.modeDirectOption?Ee=t[36]:(Ee=(0,$.jsx)(`option`,{value:`main`,children:i.modeDirectOption}),t[35]=i.modeDirectOption,t[36]=Ee);let Z;t[37]===i.modeAgentOption?Z=t[38]:(Z=(0,$.jsx)(`option`,{value:`isolated`,children:i.modeAgentOption}),t[37]=i.modeAgentOption,t[38]=Z);let De;t[39]!==M||t[40]!==Te||t[41]!==Ee||t[42]!==Z?(De=(0,$.jsxs)(`select`,{className:we,value:M,onChange:Te,children:[Ee,Z]}),t[39]=M,t[40]=Te,t[41]=Ee,t[42]=Z,t[43]=De):De=t[43];let Oe=M===`main`?i.modeDirect:i.modeAgent,ke;t[44]===Oe?ke=t[45]:(ke=(0,$.jsx)(`p`,{className:`text-xs text-fg-muted`,children:Oe}),t[44]=Oe,t[45]=ke);let Ae;t[46]!==Ce||t[47]!==De||t[48]!==ke?(Ae=(0,$.jsxs)(`label`,{className:`flex flex-col gap-1`,children:[Ce,De,ke]}),t[46]=Ce,t[47]=De,t[48]=ke,t[49]=Ae):Ae=t[49];let je;t[50]!==o||t[51]!==i.agentLocalOnly||t[52]!==i.agentLocalOnlyHint||t[53]!==i.agentProfile||t[54]!==i.agentProfileDefault||t[55]!==i.agentProfileHint||t[56]!==i.model||t[57]!==i.workingDirectoryHint||t[58]!==i.workingDirectoryLabel||t[59]!==i.workingDirectoryReset||t[60]!==a||t[61]!==y||t[62]!==B||t[63]!==P||t[64]!==R||t[65]!==M||t[66]!==j||t[67]!==H||t[68]!==V||t[69]!==L||t[70]!==z||t[71]!==W?(je=M===`isolated`?(0,$.jsxs)($.Fragment,{children:[(0,$.jsxs)(`div`,{className:`flex flex-col gap-1`,children:[(0,$.jsx)(`span`,{className:`text-xs font-medium text-fg-muted`,children:i.model}),(0,$.jsx)(F,{value:R,placeholder:a.modelPlaceholder,searchPlaceholder:a.modelSearchPlaceholder,noMatches:a.modelNoMatches,className:`w-full max-w-none min-w-0`,popoverContentClassName:`z-[70]`,onChange:z})]}),(0,$.jsxs)(`label`,{className:`flex flex-col gap-1`,children:[(0,$.jsx)(`span`,{className:`text-xs font-medium text-fg-muted`,children:i.agentProfile}),(0,$.jsxs)(`select`,{className:Pe(),value:B,disabled:j,onChange:e=>V(e.target.value),children:[(0,$.jsx)(`option`,{value:``,children:i.agentProfileDefault}),y.map(e=>(0,$.jsx)(`option`,{value:e.id,children:`${e.id} — ${S(e,o)}`},e.id))]}),(0,$.jsx)(`p`,{className:`text-xs text-fg-muted`,children:i.agentProfileHint})]}),(0,$.jsxs)(`div`,{className:`flex flex-col gap-1`,children:[(0,$.jsx)(`span`,{className:`text-xs font-medium text-fg-muted`,children:i.workingDirectoryLabel}),(0,$.jsx)(Re,{value:H,onChange:W,disabled:j,wd:a.workingDirectory,placeholder:a.workingDirectory.notSet,maxWidthClass:`max-w-[min(16rem,48vw)]`,clearLabel:i.workingDirectoryReset,onClear:()=>W(``)}),(0,$.jsx)(`p`,{className:`text-xs text-fg-muted`,children:i.workingDirectoryHint})]}),(0,$.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,$.jsx)(`input`,{type:`checkbox`,className:h(`ui-checkbox`,`mt-0.5`),checked:P,onChange:e=>L(e.target.checked),"aria-label":i.agentLocalOnly}),(0,$.jsxs)(`span`,{children:[(0,$.jsx)(`span`,{className:`text-sm font-medium text-fg`,children:i.agentLocalOnly}),(0,$.jsx)(`p`,{className:`mt-1 text-xs text-fg-muted`,children:i.agentLocalOnlyHint})]})]})]}):null,t[50]=o,t[51]=i.agentLocalOnly,t[52]=i.agentLocalOnlyHint,t[53]=i.agentProfile,t[54]=i.agentProfileDefault,t[55]=i.agentProfileHint,t[56]=i.model,t[57]=i.workingDirectoryHint,t[58]=i.workingDirectoryLabel,t[59]=i.workingDirectoryReset,t[60]=a,t[61]=y,t[62]=B,t[63]=P,t[64]=R,t[65]=M,t[66]=j,t[67]=H,t[68]=V,t[69]=L,t[70]=z,t[71]=W,t[72]=je):je=t[72];let Me;t[73]!==i.channel||t[74]!==i.channelLocal||t[75]!==i.enterManuallyOrSelect||t[76]!==i.lastActiveLabels||t[77]!==i.noRecentChats||t[78]!==i.noRecentChatsOption||t[79]!==i.recipient||t[80]!==i.recipientPlaceholder||t[81]!==i.refreshList||t[82]!==i.refreshRecipientHint||t[83]!==i.selectRecipient||t[84]!==c||t[85]!==G||t[86]!==q||t[87]!==ie||t[88]!==K||t[89]!==Y||t[90]!==ce||t[91]!==_||t[92]!==ae?(Me=ae?(0,$.jsxs)($.Fragment,{children:[(0,$.jsxs)(`label`,{className:`flex flex-col gap-1`,children:[(0,$.jsx)(`span`,{className:`text-xs font-medium text-fg-muted`,children:i.channel}),(0,$.jsxs)(`select`,{className:Pe(),value:G,onChange:e=>{let t=e.target.value;K(t)},children:[(0,$.jsx)(`option`,{value:`local`,children:i.channelLocal}),c.map(Be)]})]}),ie?(0,$.jsxs)(`div`,{className:`flex flex-col gap-1`,children:[(0,$.jsxs)(`div`,{className:`flex items-center justify-between gap-2`,children:[(0,$.jsx)(`span`,{className:`text-xs font-medium text-fg-muted`,children:i.recipient}),(0,$.jsxs)(g,{type:`button`,variant:`ghost`,className:`h-7 gap-1 px-2 text-xs`,title:i.refreshRecipientHint,onClick:()=>void ce(),children:[(0,$.jsx)(E,{className:`size-3.5`,strokeWidth:1.75}),i.refreshList]})]}),(0,$.jsxs)(`div`,{className:`flex flex-col gap-2 sm:flex-row sm:items-stretch sm:gap-2`,children:[(0,$.jsx)(`input`,{type:`text`,className:h(Ne(),`min-w-0 w-full sm:flex-1`),value:q,onChange:e=>Y(e.target.value),placeholder:i.recipientPlaceholder}),(0,$.jsxs)(`select`,{className:Fe,value:q,onChange:e=>{let t=e.target.value;t&&Y(t)},children:[(0,$.jsx)(`option`,{value:``,children:i.selectRecipient}),_.length>0?_.map(e=>(0,$.jsx)(`option`,{value:e.chatId,children:J(e,i.lastActiveLabels)},`${e.channel}-${e.chatId}`)):(0,$.jsx)(`option`,{value:``,disabled:!0,children:i.noRecentChatsOption})]})]}),(0,$.jsx)(`p`,{className:`text-xs text-fg-muted`,children:_.length>0?i.enterManuallyOrSelect:i.noRecentChats})]}):null]}):null,t[73]=i.channel,t[74]=i.channelLocal,t[75]=i.enterManuallyOrSelect,t[76]=i.lastActiveLabels,t[77]=i.noRecentChats,t[78]=i.noRecentChatsOption,t[79]=i.recipient,t[80]=i.recipientPlaceholder,t[81]=i.refreshList,t[82]=i.refreshRecipientHint,t[83]=i.selectRecipient,t[84]=c,t[85]=G,t[86]=q,t[87]=ie,t[88]=K,t[89]=Y,t[90]=ce,t[91]=_,t[92]=ae,t[93]=Me):Me=t[93];let Ie;t[94]===i.message?Ie=t[95]:(Ie=(0,$.jsx)(`span`,{className:`text-xs font-medium text-fg-muted`,children:i.message}),t[94]=i.message,t[95]=Ie);let Le=te===`edit`?`bg-accent-soft text-accent-fg`:`text-fg-muted hover:bg-surface-hover`,ze;t[96]===Le?ze=t[97]:(ze=h(`inline-flex items-center gap-1.5 rounded-md px-2.5 py-1.5 text-xs font-medium`,Le),t[96]=Le,t[97]=ze);let He;t[98]===ne?He=t[99]:(He=()=>ne(`edit`),t[98]=ne,t[99]=He);let Ue;t[100]===Symbol.for(`react.memo_cache_sentinel`)?(Ue=(0,$.jsx)(I,{className:`size-3.5 shrink-0`,strokeWidth:1.75,"aria-hidden":!0}),t[100]=Ue):Ue=t[100];let We;t[101]!==i.messageEdit||t[102]!==ze||t[103]!==He?(We=(0,$.jsxs)(`button`,{type:`button`,className:ze,onClick:He,children:[Ue,i.messageEdit]}),t[101]=i.messageEdit,t[102]=ze,t[103]=He,t[104]=We):We=t[104];let Ge=te===`preview`?`bg-accent-soft text-accent-fg`:`text-fg-muted hover:bg-surface-hover`,Ke;t[105]===Ge?Ke=t[106]:(Ke=h(`inline-flex items-center gap-1.5 rounded-md px-2.5 py-1.5 text-xs font-medium`,Ge),t[105]=Ge,t[106]=Ke);let qe;t[107]===ne?qe=t[108]:(qe=()=>ne(`preview`),t[107]=ne,t[108]=qe);let Je;t[109]===Symbol.for(`react.memo_cache_sentinel`)?(Je=(0,$.jsx)(U,{className:`size-3.5 shrink-0`,strokeWidth:1.75,"aria-hidden":!0}),t[109]=Je):Je=t[109];let Ye;t[110]!==i.messagePreview||t[111]!==Ke||t[112]!==qe?(Ye=(0,$.jsxs)(`button`,{type:`button`,className:Ke,onClick:qe,children:[Je,i.messagePreview]}),t[110]=i.messagePreview,t[111]=Ke,t[112]=qe,t[113]=Ye):Ye=t[113];let Xe;t[114]!==We||t[115]!==Ye?(Xe=(0,$.jsxs)(`div`,{className:`inline-flex rounded-lg border border-edge bg-surface-base p-0.5 dark:border-edge`,children:[We,Ye]}),t[114]=We,t[115]=Ye,t[116]=Xe):Xe=t[116];let Ze;t[117]!==Ie||t[118]!==Xe?(Ze=(0,$.jsxs)(`div`,{className:`flex flex-wrap items-center justify-between gap-2`,children:[Ie,Xe]}),t[117]=Ie,t[118]=Xe,t[119]=Ze):Ze=t[119];let Qe=j&&`pointer-events-none opacity-60`,$e;t[120]===Qe?$e=t[121]:($e=h(`overflow-hidden rounded-md border border-edge bg-surface-base dark:border-edge`,Qe),t[120]=Qe,t[121]=$e);let et;t[122]!==i.messagePlaceholder||t[123]!==T||t[124]!==X||t[125]!==te||t[126]!==s||t[127]!==re||t[128]!==ee?(et=te===`edit`?(0,$.jsx)(v,{initialContent:X,onChange:ee,isDark:s,className:`h-[min(18rem,40vh)] min-h-[12rem]`},`cron-msg-${T??`new`}-${re}`):(0,$.jsx)(`div`,{className:`h-[min(18rem,40vh)] min-h-[12rem] max-h-[min(24rem,50vh)] overflow-y-auto px-3 py-2`,children:X.trim()?(0,$.jsx)(w,{content:X,compact:!0,className:`text-sm`}):(0,$.jsx)(`p`,{className:`text-sm text-fg-muted`,children:i.messagePlaceholder})}),t[122]=i.messagePlaceholder,t[123]=T,t[124]=X,t[125]=te,t[126]=s,t[127]=re,t[128]=ee,t[129]=et):et=t[129];let tt;t[130]!==$e||t[131]!==et?(tt=(0,$.jsx)(`div`,{className:$e,children:et}),t[130]=$e,t[131]=et,t[132]=tt):tt=t[132];let nt;t[133]===i.messageMarkdownHint?nt=t[134]:(nt=(0,$.jsx)(`p`,{className:`text-xs text-fg-muted`,children:i.messageMarkdownHint}),t[133]=i.messageMarkdownHint,t[134]=nt);let rt;t[135]!==Ze||t[136]!==tt||t[137]!==nt?(rt=(0,$.jsxs)(`div`,{className:`flex flex-col gap-1`,children:[Ze,tt,nt]}),t[135]=Ze,t[136]=tt,t[137]=nt,t[138]=rt):rt=t[138];let it;t[139]!==xe||t[140]!==Se||t[141]!==Ae||t[142]!==je||t[143]!==Me||t[144]!==rt?(it=(0,$.jsx)(`div`,{className:`min-h-0 flex-1 overflow-y-auto px-4 py-3`,children:(0,$.jsxs)(`div`,{className:`flex flex-col gap-3`,children:[xe,Se,Ae,je,Me,rt]})}),t[139]=xe,t[140]=Se,t[141]=Ae,t[142]=je,t[143]=Me,t[144]=rt,t[145]=it):it=t[145];let at;t[146]!==i.cancel||t[147]!==r?(at=(0,$.jsx)(g,{type:`button`,variant:`secondary`,onClick:r,children:i.cancel}),t[146]=i.cancel,t[147]=r,t[148]=at):at=t[148];let ot=j||!oe,st=j?i.loading:C===`edit`?i.save:i.create,ct;t[149]!==se||t[150]!==ot||t[151]!==st?(ct=(0,$.jsx)(g,{type:`button`,variant:`primary`,disabled:ot,onClick:se,children:st}),t[149]=se,t[150]=ot,t[151]=st,t[152]=ct):ct=t[152];let lt;t[153]!==at||t[154]!==ct?(lt=(0,$.jsxs)(`div`,{className:`flex shrink-0 justify-end gap-2 border-t border-edge px-4 py-3`,children:[at,ct]}),t[153]=at,t[154]=ct,t[155]=lt):lt=t[155];let ut;t[156]!==it||t[157]!==lt||t[158]!==he?(ut=(0,$.jsxs)(l,{children:[ue,(0,$.jsx)(`div`,{className:`fixed inset-0 z-[60] flex items-center justify-center p-4 pointer-events-none`,children:(0,$.jsxs)(d,{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:Ve,children:[he,it,lt]})})]}),t[156]=it,t[157]=lt,t[158]=he,t[159]=ut):ut=t[159];let dt;return t[160]!==n||t[161]!==le||t[162]!==ut?(dt=(0,$.jsx)($.Fragment,{children:(0,$.jsx)(f,{open:n,onOpenChange:le,children:ut})}),t[160]=n,t[161]=le,t[162]=ut,t[163]=dt):dt=t[163],dt}function Be(e){return(0,$.jsxs)(`option`,{value:e.name,disabled:!e.enabled,children:[e.name,` `,e.enabled?``:`(disabled)`]},e.name)}function Ve(e){return e.preventDefault()}function He(e){let t=(0,Q.c)(66),{c:n,mainTab:r,onMainTabChange:i,jobSort:a,onJobSortChange:o,historyRange:s,onHistoryRangeChange:c,historyJobFilter:l,onHistoryJobFilterChange:u,historyStatusFilter:d,onHistoryStatusFilterChange:f,jobs:p}=e,m=n.title,g=r===`myTasks`,_=r===`myTasks`?`text-fg`:`text-fg-muted hover:text-fg`,v;t[0]===_?v=t[1]:(v=h(`rounded-md px-3 py-2 text-sm font-medium transition-colors`,_),t[0]=_,t[1]=v);let y;t[2]===i?y=t[3]:(y=()=>i(`myTasks`),t[2]=i,t[3]=y);let b;t[4]!==n.tabMyTasks||t[5]!==g||t[6]!==v||t[7]!==y?(b=(0,$.jsx)(`button`,{type:`button`,role:`tab`,"aria-selected":g,className:v,onClick:y,children:n.tabMyTasks}),t[4]=n.tabMyTasks,t[5]=g,t[6]=v,t[7]=y,t[8]=b):b=t[8];let x=r===`systemTasks`,S=r===`systemTasks`?`text-fg`:`text-fg-muted hover:text-fg`,C;t[9]===S?C=t[10]:(C=h(`rounded-md px-3 py-2 text-sm font-medium transition-colors`,S),t[9]=S,t[10]=C);let w;t[11]===i?w=t[12]:(w=()=>i(`systemTasks`),t[11]=i,t[12]=w);let T;t[13]!==n.tabSystemTasks||t[14]!==w||t[15]!==x||t[16]!==C?(T=(0,$.jsx)(`button`,{type:`button`,role:`tab`,"aria-selected":x,className:C,onClick:w,children:n.tabSystemTasks}),t[13]=n.tabSystemTasks,t[14]=w,t[15]=x,t[16]=C,t[17]=T):T=t[17];let E=r===`history`,D=r===`history`?`text-fg`:`text-fg-muted hover:text-fg`,O;t[18]===D?O=t[19]:(O=h(`rounded-md px-3 py-2 text-sm font-medium transition-colors`,D),t[18]=D,t[19]=O);let k;t[20]===i?k=t[21]:(k=()=>i(`history`),t[20]=i,t[21]=k);let A;t[22]!==n.tabRunHistory||t[23]!==E||t[24]!==O||t[25]!==k?(A=(0,$.jsx)(`button`,{type:`button`,role:`tab`,"aria-selected":E,className:O,onClick:k,children:n.tabRunHistory}),t[22]=n.tabRunHistory,t[23]=E,t[24]=O,t[25]=k,t[26]=A):A=t[26];let j;t[27]!==n.title||t[28]!==T||t[29]!==A||t[30]!==b?(j=(0,$.jsxs)(`div`,{className:`flex gap-1`,role:`tablist`,"aria-label":m,children:[b,T,A]}),t[27]=n.title,t[28]=T,t[29]=A,t[30]=b,t[31]=j):j=t[31];let P=r===`history`?`flex-nowrap overflow-x-auto pb-0.5 sm:justify-end`:`flex-wrap sm:justify-end`,F;t[32]===P?F=t[33]:(F=h(`flex min-w-0 items-center gap-2`,P),t[32]=P,t[33]=F);let I;t[34]!==n.sortCreatedAsc||t[35]!==n.sortCreatedDesc||t[36]!==a||t[37]!==r||t[38]!==o?(I=r===`myTasks`||r===`systemTasks`?(0,$.jsxs)(`select`,{className:Ie,value:a,onChange:e=>o(e.target.value),"aria-label":n.sortCreatedDesc,children:[(0,$.jsx)(`option`,{value:`created_desc`,children:n.sortCreatedDesc}),(0,$.jsx)(`option`,{value:`created_asc`,children:n.sortCreatedAsc})]}):null,t[34]=n.sortCreatedAsc,t[35]=n.sortCreatedDesc,t[36]=a,t[37]=r,t[38]=o,t[39]=I):I=t[39];let L;t[40]!==n.execStatusCancelled||t[41]!==n.execStatusFailed||t[42]!==n.execStatusRunning||t[43]!==n.execStatusSuccess||t[44]!==n.filterAllStatuses||t[45]!==n.filterAllTasks||t[46]!==n.historyRangeDay||t[47]!==n.historyRangeMonth||t[48]!==n.historyRangeWeek||t[49]!==n.runHistoryTitle||t[50]!==l||t[51]!==s||t[52]!==d||t[53]!==p||t[54]!==r||t[55]!==u||t[56]!==c||t[57]!==f?(L=r===`history`?(0,$.jsxs)($.Fragment,{children:[(0,$.jsx)(`div`,{className:h(N,`shrink-0`),role:`group`,"aria-label":n.runHistoryTitle,children:[`day`,`week`,`month`].map(e=>(0,$.jsx)(`button`,{type:`button`,className:h(M,`px-2.5 py-1`,s===e&&`bg-surface-panel shadow-sm dark:bg-surface-panel dark:shadow-sm dark:ring-1 dark:ring-edge-strong/40`,s===e&&`text-fg`),onClick:()=>c(e),children:e===`day`?n.historyRangeDay:e===`week`?n.historyRangeWeek:n.historyRangeMonth},e))}),(0,$.jsxs)(`select`,{className:Ie,value:l,onChange:e=>u(e.target.value),"aria-label":n.filterAllTasks,children:[(0,$.jsx)(`option`,{value:``,children:n.filterAllTasks}),p.map(Ue)]}),(0,$.jsxs)(`select`,{className:Ie,value:d,onChange:e=>f(e.target.value),"aria-label":n.filterAllStatuses,children:[(0,$.jsx)(`option`,{value:``,children:n.filterAllStatuses}),(0,$.jsx)(`option`,{value:`success`,children:n.execStatusSuccess}),(0,$.jsx)(`option`,{value:`failed`,children:n.execStatusFailed}),(0,$.jsx)(`option`,{value:`cancelled`,children:n.execStatusCancelled}),(0,$.jsx)(`option`,{value:`running`,children:n.execStatusRunning})]})]}):null,t[40]=n.execStatusCancelled,t[41]=n.execStatusFailed,t[42]=n.execStatusRunning,t[43]=n.execStatusSuccess,t[44]=n.filterAllStatuses,t[45]=n.filterAllTasks,t[46]=n.historyRangeDay,t[47]=n.historyRangeMonth,t[48]=n.historyRangeWeek,t[49]=n.runHistoryTitle,t[50]=l,t[51]=s,t[52]=d,t[53]=p,t[54]=r,t[55]=u,t[56]=c,t[57]=f,t[58]=L):L=t[58];let R;t[59]!==F||t[60]!==I||t[61]!==L?(R=(0,$.jsxs)(`div`,{className:F,children:[I,L]}),t[59]=F,t[60]=I,t[61]=L,t[62]=R):R=t[62];let z;return t[63]!==j||t[64]!==R?(z=(0,$.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:[j,R]}),t[63]=j,t[64]=R,t[65]=z):z=t[65],z}function Ue(e){return(0,$.jsx)(`option`,{value:e.id,children:e.name||e.id},e.id)}function We(e){let t=(0,Q.c)(23),{c:n,loading:r,runHistoryLoading:i,onRefresh:a,onOpenTemplatePicker:o,onAddJob:s}=e,c=r||i,l=n.refresh,u=n.refresh,d;t[0]===a?d=t[1]:(d=()=>void a(),t[0]=a,t[1]=d);let f=c&&`animate-spin`,p;t[2]===f?p=t[3]:(p=h(`size-4`,f),t[2]=f,t[3]=p);let m;t[4]===p?m=t[5]:(m=(0,$.jsx)(E,{className:p,strokeWidth:1.75}),t[4]=p,t[5]=m);let _;t[6]!==c||t[7]!==n.refresh||t[8]!==d||t[9]!==m?(_=(0,$.jsx)(g,{type:`button`,variant:`ghost`,className:`size-9 shrink-0 p-0`,disabled:c,title:l,"aria-label":u,onClick:d,children:m}),t[6]=c,t[7]=n.refresh,t[8]=d,t[9]=m,t[10]=_):_=t[10];let v;t[11]===Symbol.for(`react.memo_cache_sentinel`)?(v=(0,$.jsx)(k,{className:`size-4`,strokeWidth:1.75}),t[11]=v):v=t[11];let y;t[12]!==n.fromTemplate||t[13]!==o?(y=(0,$.jsxs)(g,{type:`button`,variant:`secondary`,className:`gap-2`,onClick:o,children:[v,n.fromTemplate]}),t[12]=n.fromTemplate,t[13]=o,t[14]=y):y=t[14];let b;t[15]===Symbol.for(`react.memo_cache_sentinel`)?(b=(0,$.jsx)(C,{className:`size-4`,strokeWidth:1.75}),t[15]=b):b=t[15];let x;t[16]!==n.addJob||t[17]!==s?(x=(0,$.jsxs)(g,{type:`button`,variant:`primary`,className:`gap-2`,onClick:s,children:[b,n.addJob]}),t[16]=n.addJob,t[17]=s,t[18]=x):x=t[18];let S;return t[19]!==x||t[20]!==_||t[21]!==y?(S=(0,$.jsxs)(`div`,{className:`flex min-w-0 flex-1 flex-wrap items-center justify-end gap-2`,children:[_,y,x]}),t[19]=x,t[20]=_,t[21]=y,t[22]=S):S=t[22],S}function Ge(e){let t=(0,Q.c)(43),{c:n,runHistoryLoading:r,runHistory:i,filteredRunHistory:a,jobs:o,onRefreshHistory:s,onOpenJobDetail:c,statusLabels:l}=e,u;t[0]===n.tabRunHistory?u=t[1]:(u=(0,$.jsx)(`h2`,{id:`cron-history-panel`,className:`sr-only`,children:n.tabRunHistory}),t[0]=n.tabRunHistory,t[1]=u);let d;t[2]===n.runHistoryHint?d=t[3]:(d=(0,$.jsx)(`p`,{className:`text-xs text-fg-muted`,children:n.runHistoryHint}),t[2]=n.runHistoryHint,t[3]=d);let f;t[4]!==u||t[5]!==d?(f=(0,$.jsxs)(`div`,{children:[u,d]}),t[4]=u,t[5]=d,t[6]=f):f=t[6];let p=n.refresh,m=n.refresh,_;t[7]===s?_=t[8]:(_=()=>void s(),t[7]=s,t[8]=_);let v=r&&`animate-spin`,b;t[9]===v?b=t[10]:(b=h(`size-4`,v),t[9]=v,t[10]=b);let x;t[11]===b?x=t[12]:(x=(0,$.jsx)(E,{className:b,strokeWidth:1.75}),t[11]=b,t[12]=x);let S;t[13]!==n.refresh||t[14]!==r||t[15]!==_||t[16]!==x?(S=(0,$.jsx)(g,{type:`button`,variant:`ghost`,className:`size-9 shrink-0 p-0`,disabled:r,title:p,"aria-label":m,onClick:_,children:x}),t[13]=n.refresh,t[14]=r,t[15]=_,t[16]=x,t[17]=S):S=t[17];let C;t[18]!==S||t[19]!==f?(C=(0,$.jsxs)(`div`,{className:`flex items-start justify-between gap-2`,children:[f,S]}),t[18]=S,t[19]=f,t[20]=C):C=t[20];let w;t[21]!==n.colChat||t[22]!==n.colDetail||t[23]!==n.colDuration||t[24]!==n.colJob||t[25]!==n.colStarted||t[26]!==n.emptyHistoryHint||t[27]!==n.emptyHistoryTitle||t[28]!==n.noRunsYet||t[29]!==n.openChat||t[30]!==n.openChatTitle||t[31]!==n.runHistoryHint||t[32]!==n.status||t[33]!==a||t[34]!==o||t[35]!==c||t[36]!==i||t[37]!==r||t[38]!==l?(w=r&&i.length===0?(0,$.jsx)(`div`,{className:`flex justify-center py-16`,children:(0,$.jsx)(y,{className:`size-8 animate-spin text-accent`,strokeWidth:1.75})}):a.length===0?(0,$.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,$.jsx)(W,{className:`mb-4 size-14 text-fg-disabled`,strokeWidth:1.1,"aria-hidden":!0}),(0,$.jsx)(`h3`,{className:`text-base font-semibold text-fg`,children:i.length===0?n.emptyHistoryTitle:n.noRunsYet}),(0,$.jsx)(`p`,{className:`mt-2 max-w-sm text-sm text-fg-muted`,children:i.length===0?n.emptyHistoryHint:n.runHistoryHint})]}):(0,$.jsx)(`div`,{className:`overflow-x-auto rounded-xl border border-edge-subtle bg-surface-base dark:border-edge-subtle`,children:(0,$.jsxs)(`table`,{className:`w-full min-w-[700px] border-collapse text-left text-sm`,children:[(0,$.jsx)(`thead`,{children:(0,$.jsxs)(`tr`,{className:`border-b border-edge text-xs font-medium text-fg-muted`,children:[(0,$.jsx)(`th`,{className:`px-3 py-2.5 font-medium`,children:n.colStarted}),(0,$.jsx)(`th`,{className:`px-3 py-2.5 font-medium`,children:n.colJob}),(0,$.jsx)(`th`,{className:`px-3 py-2.5 font-medium`,children:n.status}),(0,$.jsx)(`th`,{className:`px-3 py-2.5 font-medium`,children:n.colDuration}),(0,$.jsx)(`th`,{className:`px-3 py-2.5 font-medium`,children:n.colDetail}),(0,$.jsx)(`th`,{className:`px-3 py-2.5 font-medium`,children:n.colChat})]})}),(0,$.jsx)(`tbody`,{children:a.map(e=>(0,$.jsxs)(`tr`,{className:`border-b border-edge/60 last:border-0`,children:[(0,$.jsx)(`td`,{className:`whitespace-nowrap px-3 py-2.5 text-fg`,children:(0,$.jsx)(`time`,{dateTime:e.startedAt,children:ae(e.startedAt)})}),(0,$.jsx)(`td`,{className:`max-w-[10rem] truncate px-3 py-2.5`,children:o.some(t=>t.id===e.jobId)?(0,$.jsx)(`button`,{type:`button`,className:`text-left text-accent hover:underline`,onClick:()=>{let t=o.find(t=>t.id===e.jobId);t&&c(t)},children:e.jobName||e.jobId}):(0,$.jsx)(`span`,{className:`text-fg-muted`,children:e.jobName||e.jobId})}),(0,$.jsx)(`td`,{className:`px-3 py-2.5`,children:(0,$.jsx)(`span`,{className:h(`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:X(e.status,l)})}),(0,$.jsx)(`td`,{className:`whitespace-nowrap px-3 py-2.5 text-fg-muted`,children:ne(e.duration)}),(0,$.jsx)(`td`,{className:`max-w-xs truncate px-3 py-2.5 text-fg-muted`,title:e.summary||e.error||``,children:Y(e.summary||e.error,96)}),(0,$.jsx)(`td`,{className:`whitespace-nowrap px-3 py-2.5`,children:e.sessionKey?.trim()?(0,$.jsx)(`button`,{type:`button`,className:`text-xs font-medium text-accent hover:underline`,title:n.openChatTitle,"aria-label":n.openChatTitle,onClick:()=>Me(e.sessionKey),children:n.openChat}):(0,$.jsx)(`span`,{className:`text-fg-disabled`,children:`—`})})]},e.id))})]})}),t[21]=n.colChat,t[22]=n.colDetail,t[23]=n.colDuration,t[24]=n.colJob,t[25]=n.colStarted,t[26]=n.emptyHistoryHint,t[27]=n.emptyHistoryTitle,t[28]=n.noRunsYet,t[29]=n.openChat,t[30]=n.openChatTitle,t[31]=n.runHistoryHint,t[32]=n.status,t[33]=a,t[34]=o,t[35]=c,t[36]=i,t[37]=r,t[38]=l,t[39]=w):w=t[39];let T;return t[40]!==C||t[41]!==w?(T=(0,$.jsxs)(`section`,{"aria-labelledby":`cron-history-panel`,className:`flex flex-col gap-3`,children:[C,w]}),t[40]=C,t[41]=w,t[42]=T):T=t[42],T}function Ke(e){let t=(0,Q.c)(77),{job:n,c:r,localeTag:i,scheduleBadgeLabels:a,absorbCardClickJobIdRef:o,scheduleAbsorbNextMenuCardClick:s,onOpenDetail:c,onToggle:l,onEdit:u,onRunNow:d,onDelete:f}=e,p;t[0]===Symbol.for(`react.memo_cache_sentinel`)?(p=h(`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`),t[0]=p):p=t[0];let m,_;t[1]!==o||t[2]!==n||t[3]!==c?(m=()=>{if(o.current===n.id){o.current=null;return}c(n)},_=e=>{if(e.key===`Enter`||e.key===` `){if(e.preventDefault(),o.current===n.id){o.current=null;return}c(n)}},t[1]=o,t[2]=n,t[3]=c,t[4]=m,t[5]=_):(m=t[4],_=t[5]);let v=n.enabled,y=n.enabled?`justify-end bg-accent`:`justify-start bg-surface-hover`,b;t[6]===y?b=t[7]:(b=h(`inline-flex h-6 w-10 shrink-0 items-center rounded-full border border-edge p-0.5 transition-colors`,y),t[6]=y,t[7]=b);let x;t[8]!==n||t[9]!==l?(x=e=>{e.stopPropagation(),l(n,!n.enabled)},t[8]=n,t[9]=l,t[10]=x):x=t[10];let S;t[11]===Symbol.for(`react.memo_cache_sentinel`)?(S=(0,$.jsx)(`span`,{className:`size-4 rounded-full bg-surface-panel shadow-surface ring-1 ring-edge/40 dark:ring-edge/55`}),t[11]=S):S=t[11];let C;t[12]!==n.enabled||t[13]!==b||t[14]!==x?(C=(0,$.jsx)(`button`,{type:`button`,role:`switch`,"aria-checked":v,className:b,onClick:x,children:S}),t[12]=n.enabled,t[13]=b,t[14]=x,t[15]=C):C=t[15];let T;t[16]===Symbol.for(`react.memo_cache_sentinel`)?(T=(0,$.jsx)(z,{className:`size-4`,strokeWidth:1.75}),t[16]=T):T=t[16];let E;t[17]===r.jobCardMenuAria?E=t[18]:(E=(0,$.jsx)(Se,{asChild:!0,children:(0,$.jsx)(g,{type:`button`,variant:`ghost`,className:`size-8 shrink-0 p-0`,"aria-label":r.jobCardMenuAria,onClick:Je,children:T})}),t[17]=r.jobCardMenuAria,t[18]=E);let D;t[19]!==n||t[20]!==u||t[21]!==s?(D=()=>{s(n.id),u(n)},t[19]=n,t[20]=u,t[21]=s,t[22]=D):D=t[22];let O;t[23]!==r.edit||t[24]!==D?(O=(0,$.jsx)(we,{className:`cursor-pointer select-none rounded-lg px-2 py-1.5 text-sm text-fg outline-none data-highlighted:bg-surface-hover`,onSelect:D,children:r.edit}),t[23]=r.edit,t[24]=D,t[25]=O):O=t[25];let k;t[26]!==n||t[27]!==d||t[28]!==s?(k=()=>{s(n.id),d(n)},t[26]=n,t[27]=d,t[28]=s,t[29]=k):k=t[29];let A;t[30]!==r.runNow||t[31]!==k?(A=(0,$.jsx)(we,{className:`cursor-pointer select-none rounded-lg px-2 py-1.5 text-sm text-fg outline-none data-highlighted:bg-surface-hover`,onSelect:k,children:r.runNow}),t[30]=r.runNow,t[31]=k,t[32]=A):A=t[32];let j;t[33]!==n||t[34]!==f||t[35]!==s?(j=()=>{s(n.id),f(n)},t[33]=n,t[34]=f,t[35]=s,t[36]=j):j=t[36];let M;t[37]!==r.delete||t[38]!==j?(M=(0,$.jsx)(we,{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:j,children:r.delete}),t[37]=r.delete,t[38]=j,t[39]=M):M=t[39];let N;t[40]!==O||t[41]!==A||t[42]!==M?(N=(0,$.jsx)(Te,{children:(0,$.jsxs)(Ee,{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:qe,children:[O,A,M]})}),t[40]=O,t[41]=A,t[42]=M,t[43]=N):N=t[43];let P;t[44]!==E||t[45]!==N?(P=(0,$.jsxs)(Ce,{children:[E,N]}),t[44]=E,t[45]=N,t[46]=P):P=t[46];let F;t[47]!==P||t[48]!==C?(F=(0,$.jsxs)(`div`,{className:`flex items-start justify-between gap-2 px-4 pt-3`,children:[C,P]}),t[47]=P,t[48]=C,t[49]=F):F=t[49];let I=n.name||n.id,L;t[50]===I?L=t[51]:(L=(0,$.jsx)(`h3`,{className:`line-clamp-2 font-semibold text-fg`,children:I}),t[50]=I,t[51]=L);let R;t[52]===n?R=t[53]:(R=pe(n),t[52]=n,t[53]=R);let B;t[54]===n?B=t[55]:(B=pe(n),t[54]=n,t[55]=B);let V;t[56]===B?V=t[57]:(V=(0,$.jsx)(w,{content:B,compact:!0}),t[56]=B,t[57]=V);let H;t[58]!==R||t[59]!==V?(H=(0,$.jsx)(`div`,{className:`max-h-[4.5rem] overflow-hidden text-sm text-fg-muted [&_.markdown-body]:text-sm [&_.markdown-body]:leading-snug`,title:R,children:V}),t[58]=R,t[59]=V,t[60]=H):H=t[60];let U;t[61]!==L||t[62]!==H?(U=(0,$.jsxs)(`div`,{className:`flex flex-1 flex-col gap-2 px-4 pb-3 pt-2`,children:[L,H]}),t[61]=L,t[62]=H,t[63]=U):U=t[63];let G;t[64]===Symbol.for(`react.memo_cache_sentinel`)?(G=(0,$.jsx)(W,{className:`size-3.5 shrink-0`,strokeWidth:1.75,"aria-hidden":!0}),t[64]=G):G=t[64];let K;t[65]!==n||t[66]!==i||t[67]!==a?(K=ee(n,i,a),t[65]=n,t[66]=i,t[67]=a,t[68]=K):K=t[68];let q;t[69]===K?q=t[70]:(q=(0,$.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:[G,(0,$.jsx)(`span`,{className:`min-w-0 truncate`,children:K})]}),t[69]=K,t[70]=q);let J;return t[71]!==m||t[72]!==F||t[73]!==U||t[74]!==_||t[75]!==q?(J=(0,$.jsxs)(`article`,{role:`button`,tabIndex:0,className:p,onClick:m,onKeyDown:_,children:[F,U,q]}),t[71]=m,t[72]=F,t[73]=U,t[74]=_,t[75]=q,t[76]=J):J=t[76],J}function qe(e){return e.preventDefault()}function Je(e){return e.stopPropagation()}function Ye(e){let t=(0,Q.c)(134),{c:n,language:r,localeTag:i,scheduleBadgeLabels:o,loading:c,sortedSystemJobs:l,heartbeat:u,keepAwake:d,wakeSupported:f,onWakeUnsupportedClick:p,onKeepAwakeToggle:m,absorbCardClickJobIdRef:_,scheduleAbsorbNextMenuCardClick:v,onOpenDetail:b,onToggle:S,onEdit:C,onRunNow:w,onDelete:T}=e,E,D,O,k,A,j,M,N,P,F,I,L;if(t[0]!==n.disabled||t[1]!==n.enabled||t[2]!==n.keepAwake||t[3]!==n.systemHeartbeatEvery||t[4]!==n.systemHeartbeatHint||t[5]!==n.systemHeartbeatInterval||t[6]!==n.systemHeartbeatSettingsLink||t[7]!==n.systemHeartbeatStatus||t[8]!==n.systemHeartbeatTitle||t[9]!==n.systemTasksIntro||t[10]!==n.tabSystemTasks||t[11]!==n.wakeBanner||t[12]!==n.wakeLockUnavailable||t[13]!==u.enabled||t[14]!==u.intervalMs||t[15]!==d||t[16]!==r||t[17]!==i||t[18]!==m||t[19]!==p||t[20]!==f){let e=te(u.intervalMs,i,a(r).heartbeatSettings.intervalPresets);I=`cron-system-tasks-panel`,L=`flex flex-col gap-4`,t[33]===n.tabSystemTasks?D=t[34]:(D=(0,$.jsx)(`h2`,{id:`cron-system-tasks-panel`,className:`sr-only`,children:n.tabSystemTasks}),t[33]=n.tabSystemTasks,t[34]=D),t[35]===n.systemTasksIntro?O=t[36]:(O=(0,$.jsx)(`p`,{className:`text-sm text-fg-muted`,children:n.systemTasksIntro}),t[35]=n.systemTasksIntro,t[36]=O);let o;t[37]===Symbol.for(`react.memo_cache_sentinel`)?(o=(0,$.jsx)(H,{className:`mt-0.5 size-4 shrink-0 text-accent`,strokeWidth:1.75,"aria-hidden":!0}),t[37]=o):o=t[37];let c;t[38]===n.wakeBanner?c=t[39]:(c=(0,$.jsxs)(`div`,{className:`flex gap-3 text-sm text-fg`,children:[o,(0,$.jsx)(`p`,{className:`text-pretty text-fg-muted`,children:n.wakeBanner})]}),t[38]=n.wakeBanner,t[39]=c);let l;t[40]===n.keepAwake?l=t[41]:(l=(0,$.jsx)(`span`,{className:`text-sm text-fg`,children:n.keepAwake}),t[40]=n.keepAwake,t[41]=l);let _=!f,v=f?void 0:n.wakeLockUnavailable,y=d?`justify-end bg-accent`:`justify-start bg-surface-hover`,b=!f&&`cursor-not-allowed opacity-50`,S;t[42]!==y||t[43]!==b?(S=h(`inline-flex h-6 w-10 shrink-0 items-center rounded-full border border-edge p-0.5 transition-colors`,y,b),t[42]=y,t[43]=b,t[44]=S):S=t[44];let C;t[45]!==m||t[46]!==p||t[47]!==f?(C=()=>{f?m():p()},t[45]=m,t[46]=p,t[47]=f,t[48]=C):C=t[48];let w;t[49]===Symbol.for(`react.memo_cache_sentinel`)?(w=(0,$.jsx)(`span`,{className:`size-4 rounded-full bg-surface-panel shadow-surface ring-1 ring-edge/40 dark:ring-edge/55`}),t[49]=w):w=t[49];let T;t[50]!==d||t[51]!==_||t[52]!==v||t[53]!==S||t[54]!==C?(T=(0,$.jsx)(`button`,{type:`button`,role:`switch`,"aria-checked":d,disabled:_,title:v,className:S,onClick:C,children:w}),t[50]=d,t[51]=_,t[52]=v,t[53]=S,t[54]=C,t[55]=T):T=t[55];let R;t[56]!==l||t[57]!==T?(R=(0,$.jsxs)(`div`,{className:`flex shrink-0 items-center gap-2 sm:pl-4`,children:[l,T]}),t[56]=l,t[57]=T,t[58]=R):R=t[58],t[59]!==c||t[60]!==R?(k=(0,$.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:[c,R]}),t[59]=c,t[60]=R,t[61]=k):k=t[61],P=`rounded-xl border border-edge bg-surface-base p-4 dark:bg-surface-hover/20`;let z;t[62]===n.systemHeartbeatTitle?z=t[63]:(z=(0,$.jsx)(`h3`,{className:`text-sm font-semibold text-fg`,children:n.systemHeartbeatTitle}),t[62]=n.systemHeartbeatTitle,t[63]=z);let B;t[64]===n.systemHeartbeatHint?B=t[65]:(B=(0,$.jsx)(`p`,{className:`mt-1 text-xs text-fg-muted`,children:n.systemHeartbeatHint}),t[64]=n.systemHeartbeatHint,t[65]=B);let V;t[66]!==z||t[67]!==B?(V=(0,$.jsxs)(`div`,{children:[z,B]}),t[66]=z,t[67]=B,t[68]=V):V=t[68];let U;t[69]===Symbol.for(`react.memo_cache_sentinel`)?(U=(0,$.jsx)(x,{className:`size-3.5 opacity-70`,"aria-hidden":!0}),t[69]=U):U=t[69];let W;t[70]===n.systemHeartbeatSettingsLink?W=t[71]:(W=(0,$.jsx)(g,{type:`button`,variant:`ghost`,className:`shrink-0 gap-1 self-start px-2 py-1.5 text-xs`,asChild:!0,children:(0,$.jsxs)(s,{to:`/settings/heartbeat`,children:[n.systemHeartbeatSettingsLink,U]})}),t[70]=n.systemHeartbeatSettingsLink,t[71]=W),t[72]!==V||t[73]!==W?(F=(0,$.jsxs)(`div`,{className:`flex flex-col gap-1 sm:flex-row sm:items-start sm:justify-between`,children:[V,W]}),t[72]=V,t[73]=W,t[74]=F):F=t[74],M=`mt-3 grid gap-2 text-sm sm:grid-cols-2`;let G;t[75]===n.systemHeartbeatStatus?G=t[76]:(G=(0,$.jsx)(`dt`,{className:`text-xs font-medium text-fg-muted`,children:n.systemHeartbeatStatus}),t[75]=n.systemHeartbeatStatus,t[76]=G);let K=u.enabled?n.enabled:n.disabled,q;t[77]===K?q=t[78]:(q=(0,$.jsx)(`dd`,{className:`text-fg`,children:K}),t[77]=K,t[78]=q),t[79]!==G||t[80]!==q?(N=(0,$.jsxs)(`div`,{children:[G,q]}),t[79]=G,t[80]=q,t[81]=N):N=t[81],t[82]===n.systemHeartbeatInterval?j=t[83]:(j=(0,$.jsx)(`dt`,{className:`text-xs font-medium text-fg-muted`,children:n.systemHeartbeatInterval}),t[82]=n.systemHeartbeatInterval,t[83]=j),E=`text-fg`;let J;t[84]===Symbol.for(`react.memo_cache_sentinel`)?(J=/\{\{value\}\}/g,t[84]=J):J=t[84],A=n.systemHeartbeatEvery.replace(J,e),t[0]=n.disabled,t[1]=n.enabled,t[2]=n.keepAwake,t[3]=n.systemHeartbeatEvery,t[4]=n.systemHeartbeatHint,t[5]=n.systemHeartbeatInterval,t[6]=n.systemHeartbeatSettingsLink,t[7]=n.systemHeartbeatStatus,t[8]=n.systemHeartbeatTitle,t[9]=n.systemTasksIntro,t[10]=n.tabSystemTasks,t[11]=n.wakeBanner,t[12]=n.wakeLockUnavailable,t[13]=u.enabled,t[14]=u.intervalMs,t[15]=d,t[16]=r,t[17]=i,t[18]=m,t[19]=p,t[20]=f,t[21]=E,t[22]=D,t[23]=O,t[24]=k,t[25]=A,t[26]=j,t[27]=M,t[28]=N,t[29]=P,t[30]=F,t[31]=I,t[32]=L}else E=t[21],D=t[22],O=t[23],k=t[24],A=t[25],j=t[26],M=t[27],N=t[28],P=t[29],F=t[30],I=t[31],L=t[32];let R;t[85]!==E||t[86]!==A?(R=(0,$.jsx)(`dd`,{className:E,children:A}),t[85]=E,t[86]=A,t[87]=R):R=t[87];let z;t[88]!==R||t[89]!==j?(z=(0,$.jsxs)(`div`,{children:[j,R]}),t[88]=R,t[89]=j,t[90]=z):z=t[90];let B;t[91]!==z||t[92]!==M||t[93]!==N?(B=(0,$.jsxs)(`dl`,{className:M,children:[N,z]}),t[91]=z,t[92]=M,t[93]=N,t[94]=B):B=t[94];let V;t[95]!==B||t[96]!==P||t[97]!==F?(V=(0,$.jsxs)(`div`,{className:P,children:[F,B]}),t[95]=B,t[96]=P,t[97]=F,t[98]=V):V=t[98];let U;t[99]===n.systemDreamingTitle?U=t[100]:(U=(0,$.jsx)(`h3`,{className:`text-sm font-semibold text-fg`,children:n.systemDreamingTitle}),t[99]=n.systemDreamingTitle,t[100]=U);let W;t[101]===Symbol.for(`react.memo_cache_sentinel`)?(W=(0,$.jsx)(x,{className:`size-3.5 opacity-70`,"aria-hidden":!0}),t[101]=W):W=t[101];let G;t[102]===n.systemDreamingSettingsLink?G=t[103]:(G=(0,$.jsx)(g,{type:`button`,variant:`ghost`,className:`shrink-0 gap-1 self-start px-2 py-1.5 text-xs`,asChild:!0,children:(0,$.jsxs)(s,{to:`/settings/dreams`,children:[n.systemDreamingSettingsLink,W]})}),t[102]=n.systemDreamingSettingsLink,t[103]=G);let K;t[104]!==U||t[105]!==G?(K=(0,$.jsxs)(`div`,{className:`mb-2 flex flex-col gap-1 sm:flex-row sm:items-center sm:justify-between`,children:[U,G]}),t[104]=U,t[105]=G,t[106]=K):K=t[106];let q;t[107]===n.systemDreamingHint?q=t[108]:(q=(0,$.jsx)(`p`,{className:`mb-3 text-xs text-fg-muted`,children:n.systemDreamingHint}),t[107]=n.systemDreamingHint,t[108]=q);let J;t[109]!==_||t[110]!==n||t[111]!==c||t[112]!==i||t[113]!==T||t[114]!==C||t[115]!==b||t[116]!==w||t[117]!==S||t[118]!==v||t[119]!==o||t[120]!==l?(J=c&&l.length===0?(0,$.jsx)(`div`,{className:`flex justify-center py-12`,"aria-busy":`true`,children:(0,$.jsx)(y,{className:`size-8 animate-spin text-accent`,strokeWidth:1.75})}):l.length===0?(0,$.jsx)(`p`,{className:`rounded-lg border border-edge-subtle bg-surface-hover/30 px-3 py-4 text-sm text-fg-muted dark:border-edge-subtle`,children:n.systemDreamingEmpty}):(0,$.jsx)(`div`,{className:`grid gap-4 sm:grid-cols-2`,children:l.map(e=>(0,$.jsx)(Ke,{job:e,c:n,localeTag:i,scheduleBadgeLabels:o,absorbCardClickJobIdRef:_,scheduleAbsorbNextMenuCardClick:v,onOpenDetail:b,onToggle:S,onEdit:C,onRunNow:w,onDelete:T},e.id))}),t[109]=_,t[110]=n,t[111]=c,t[112]=i,t[113]=T,t[114]=C,t[115]=b,t[116]=w,t[117]=S,t[118]=v,t[119]=o,t[120]=l,t[121]=J):J=t[121];let Y;t[122]!==K||t[123]!==q||t[124]!==J?(Y=(0,$.jsxs)(`div`,{children:[K,q,J]}),t[122]=K,t[123]=q,t[124]=J,t[125]=Y):Y=t[125];let X;return t[126]!==D||t[127]!==O||t[128]!==k||t[129]!==V||t[130]!==Y||t[131]!==I||t[132]!==L?(X=(0,$.jsxs)(`section`,{"aria-labelledby":I,className:L,children:[D,O,k,V,Y]}),t[126]=D,t[127]=O,t[128]=k,t[129]=V,t[130]=Y,t[131]=I,t[132]=L,t[133]=X):X=t[133],X}function Xe(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 Ze=[`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 $e(e){return Qe.find(t=>t.templateId===e)}function et(e){let t=(0,Q.c)(21),{cron:n,localeTag:r,scheduleBadgeLabels:i,categoryFilter:a,onCategoryFilterChange:o,onSelectTemplate:s}=e,c;if(t[0]!==a||t[1]!==n||t[2]!==r||t[3]!==o||t[4]!==s||t[5]!==i){let e=a===`all`?[...Qe]:Qe.filter(e=>e.category===a),l=n.fromTemplate,u=a===`all`?`secondary`:`ghost`,d;t[7]===o?d=t[8]:(d=()=>o(`all`),t[7]=o,t[8]=d);let f;t[9]!==n.templateFilterAll||t[10]!==u||t[11]!==d?(f=(0,$.jsx)(g,{type:`button`,variant:u,className:`h-8 rounded-full px-3 py-1.5 text-xs`,onClick:d,children:n.templateFilterAll}),t[9]=n.templateFilterAll,t[10]=u,t[11]=d,t[12]=f):f=t[12];let p;t[13]!==a||t[14]!==n.templateCategories||t[15]!==o?(p=Ze.map(e=>(0,$.jsx)(g,{type:`button`,variant:a===e?`secondary`:`ghost`,className:`h-8 rounded-full px-3 py-1.5 text-xs`,onClick:()=>o(e),children:n.templateCategories[e]},e)),t[13]=a,t[14]=n.templateCategories,t[15]=o,t[16]=p):p=t[16];let m;t[17]!==n.fromTemplate||t[18]!==f||t[19]!==p?(m=(0,$.jsxs)(`div`,{className:`flex flex-wrap gap-2`,role:`group`,"aria-label":l,children:[f,p]}),t[17]=n.fromTemplate,t[18]=f,t[19]=p,t[20]=m):m=t[20],c=(0,$.jsxs)(`div`,{className:`flex w-full flex-col gap-4`,children:[m,e.length===0?(0,$.jsx)(`p`,{className:`text-center text-sm text-fg-muted`,children:n.templatesEmptyHint}):(0,$.jsx)(`div`,{className:`grid grid-cols-1 gap-3 sm:grid-cols-2 lg:grid-cols-3`,children:e.map(e=>{let t=Xe(n,e.templateId);if(!t)return null;let a=ee({schedule:e.defaultSchedule,timezone:void 0,next_run:void 0},r,i);return(0,$.jsxs)(`button`,{type:`button`,className:h(`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":`${n.templateCategories[e.category]} — ${t.title}`,children:[(0,$.jsx)(`span`,{className:`font-semibold text-fg`,children:t.title}),(0,$.jsx)(`span`,{className:`line-clamp-2 text-sm text-fg-muted`,children:t.description}),(0,$.jsx)(`span`,{className:`mt-1 flex items-center gap-1 text-xs text-fg-muted`,children:(0,$.jsx)(`span`,{className:`tabular-nums`,children:a})})]},e.templateId)})})]}),t[0]=a,t[1]=n,t[2]=r,t[3]=o,t[4]=s,t[5]=i,t[6]=c}else c=t[6];return c}function tt(e){let t=(0,Q.c)(49),{c:n,localeTag:r,scheduleBadgeLabels:i,loading:a,jobsCount:o,sortedJobs:s,templateCategoryFilter:c,onTemplateCategoryFilterChange:l,onSelectTemplate:u,keepAwake:d,wakeSupported:f,onWakeUnsupportedClick:p,onKeepAwakeToggle:m,absorbCardClickJobIdRef:_,scheduleAbsorbNextMenuCardClick:v,onOpenDetail:b,onToggle:x,onEdit:S,onAddJob:C,onRunNow:w,onDelete:T}=e,E;t[0]===n.tabMyTasks?E=t[1]:(E=(0,$.jsx)(`h2`,{id:`cron-tasks-panel`,className:`sr-only`,children:n.tabMyTasks}),t[0]=n.tabMyTasks,t[1]=E);let D;t[2]===Symbol.for(`react.memo_cache_sentinel`)?(D=(0,$.jsx)(H,{className:`mt-0.5 size-4 shrink-0 text-accent`,strokeWidth:1.75,"aria-hidden":!0}),t[2]=D):D=t[2];let O;t[3]===n.wakeBanner?O=t[4]:(O=(0,$.jsxs)(`div`,{className:`flex gap-3 text-sm text-fg`,children:[D,(0,$.jsx)(`p`,{className:`text-pretty text-fg-muted`,children:n.wakeBanner})]}),t[3]=n.wakeBanner,t[4]=O);let k;t[5]===n.keepAwake?k=t[6]:(k=(0,$.jsx)(`span`,{className:`text-sm text-fg`,children:n.keepAwake}),t[5]=n.keepAwake,t[6]=k);let A=!f,j=f?void 0:n.wakeLockUnavailable,M=d?`justify-end bg-accent`:`justify-start bg-surface-hover`,N=!f&&`cursor-not-allowed opacity-50`,P;t[7]!==M||t[8]!==N?(P=h(`inline-flex h-6 w-10 shrink-0 items-center rounded-full border border-edge p-0.5 transition-colors`,M,N),t[7]=M,t[8]=N,t[9]=P):P=t[9];let F;t[10]!==m||t[11]!==p||t[12]!==f?(F=()=>{f?m():p()},t[10]=m,t[11]=p,t[12]=f,t[13]=F):F=t[13];let I;t[14]===Symbol.for(`react.memo_cache_sentinel`)?(I=(0,$.jsx)(`span`,{className:`size-4 rounded-full bg-surface-panel shadow-surface ring-1 ring-edge/40 dark:ring-edge/55`}),t[14]=I):I=t[14];let L;t[15]!==d||t[16]!==F||t[17]!==A||t[18]!==j||t[19]!==P?(L=(0,$.jsx)(`button`,{type:`button`,role:`switch`,"aria-checked":d,disabled:A,title:j,className:P,onClick:F,children:I}),t[15]=d,t[16]=F,t[17]=A,t[18]=j,t[19]=P,t[20]=L):L=t[20];let R;t[21]!==L||t[22]!==k?(R=(0,$.jsxs)(`div`,{className:`flex shrink-0 items-center gap-2 sm:pl-4`,children:[k,L]}),t[21]=L,t[22]=k,t[23]=R):R=t[23];let z;t[24]!==R||t[25]!==O?(z=(0,$.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:[O,R]}),t[24]=R,t[25]=O,t[26]=z):z=t[26];let B;t[27]!==_||t[28]!==n||t[29]!==o||t[30]!==a||t[31]!==r||t[32]!==C||t[33]!==T||t[34]!==S||t[35]!==b||t[36]!==w||t[37]!==u||t[38]!==l||t[39]!==x||t[40]!==v||t[41]!==i||t[42]!==s||t[43]!==c?(B=a&&o===0?(0,$.jsx)(`div`,{className:`flex justify-center py-16`,"aria-busy":`true`,children:(0,$.jsx)(y,{className:`size-8 animate-spin text-accent`,strokeWidth:1.75})}):o===0?(0,$.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,$.jsx)(`div`,{className:`w-full max-w-6xl`,children:(0,$.jsx)(et,{cron:n,localeTag:r,scheduleBadgeLabels:i,categoryFilter:c,onCategoryFilterChange:l,onSelectTemplate:u})}),(0,$.jsx)(`div`,{className:`flex justify-center`,children:(0,$.jsx)(g,{type:`button`,variant:`primary`,onClick:C,children:n.emptyStateCta})})]}):(0,$.jsx)(`div`,{className:`grid gap-4 sm:grid-cols-2`,children:s.map(e=>(0,$.jsx)(Ke,{job:e,c:n,localeTag:r,scheduleBadgeLabels:i,absorbCardClickJobIdRef:_,scheduleAbsorbNextMenuCardClick:v,onOpenDetail:e=>void b(e),onToggle:(e,t)=>void x(e,t),onEdit:S,onRunNow:w,onDelete:T},e.id))}),t[27]=_,t[28]=n,t[29]=o,t[30]=a,t[31]=r,t[32]=C,t[33]=T,t[34]=S,t[35]=b,t[36]=w,t[37]=u,t[38]=l,t[39]=x,t[40]=v,t[41]=i,t[42]=s,t[43]=c,t[44]=B):B=t[44];let V;return t[45]!==E||t[46]!==z||t[47]!==B?(V=(0,$.jsxs)(`section`,{"aria-labelledby":`cron-tasks-panel`,className:`flex flex-col gap-4`,children:[E,z,B]}),t[45]=E,t[46]=z,t[47]=B,t[48]=V):V=t[48],V}function nt(e){let t=(0,Q.c)(23),{open:n,onOpenChange:r,c:i,localeTag:a,scheduleBadgeLabels:o,categoryFilter:s,onCategoryFilterChange:c,onSelectTemplate:h}=e,_;t[0]===Symbol.for(`react.memo_cache_sentinel`)?(_=(0,$.jsx)(u,{className:`xopc-dialog-overlay fixed inset-0 z-[62] bg-scrim`}),t[0]=_):_=t[0];let v;t[1]===i.fromTemplate?v=t[2]:(v=(0,$.jsx)(p,{className:`sr-only`,children:i.fromTemplate}),t[1]=i.fromTemplate,t[2]=v);let y;t[3]===Symbol.for(`react.memo_cache_sentinel`)?(y=(0,$.jsx)(b,{className:`size-5`,strokeWidth:1.75}),t[3]=y):y=t[3];let x;t[4]===i.close?x=t[5]:(x=(0,$.jsx)(m,{asChild:!0,children:(0,$.jsx)(g,{type:`button`,variant:`ghost`,className:`size-9 shrink-0 p-0`,"aria-label":i.close,children:y})}),t[4]=i.close,t[5]=x);let S;t[6]!==v||t[7]!==x?(S=(0,$.jsxs)(`div`,{className:`flex shrink-0 items-center justify-end border-b border-edge px-4 py-3`,children:[v,x]}),t[6]=v,t[7]=x,t[8]=S):S=t[8];let C;t[9]!==i||t[10]!==s||t[11]!==a||t[12]!==c||t[13]!==h||t[14]!==o?(C=(0,$.jsx)(`div`,{className:`min-h-0 flex-1 overflow-y-auto p-4`,children:(0,$.jsx)(et,{cron:i,localeTag:a,scheduleBadgeLabels:o,categoryFilter:s,onCategoryFilterChange:c,onSelectTemplate:h})}),t[9]=i,t[10]=s,t[11]=a,t[12]=c,t[13]=h,t[14]=o,t[15]=C):C=t[15];let w;t[16]!==S||t[17]!==C?(w=(0,$.jsxs)(l,{children:[_,(0,$.jsx)(`div`,{className:`fixed inset-0 z-[62] flex items-center justify-center p-4 pointer-events-none`,children:(0,$.jsxs)(d,{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:rt,children:[S,C]})})]}),t[16]=S,t[17]=C,t[18]=w):w=t[18];let T;return t[19]!==r||t[20]!==n||t[21]!==w?(T=(0,$.jsx)(f,{open:n,onOpenChange:r,children:w}),t[19]=r,t[20]=n,t[21]=w,t[22]=T):T=t[22],T}function rt(e){return e.preventDefault()}function it(){return{formOpen:!1,formMode:`add`,formJobId:null,formName:``,formSchedule:Oe,formChannel:`local`,formChatId:``,formMessage:``,formMessageMdMode:`edit`,messageEditorNonce:0,formSessionTarget:`main`,formAgentId:``,formAgentLocalOnly:!1,formWorkingDirectory:``,formModel:``,formSubmitting:!1}}function at(e,t){switch(t.type){case`patch`:return{...e,...t.patch};case`replace`:return t.state;case`setMessageMdMode`:return{...e,formMessageMdMode:t.mode,messageEditorNonce:t.mode===`edit`?e.messageEditorNonce+1:e.messageEditorNonce}}}function ot(e,t){let n=it();if(n.formOpen=!0,n.formMode=e?`edit`:`add`,n.formJobId=e?.id??null,!e)return n.formModel=t(),n;n.formName=e.name||``,n.formSchedule=e.schedule&&String(e.schedule).trim()||`*/5 * * * *`;let r=pe(e);n.formMessage=r??``,n.formSessionTarget=e.sessionTarget||`main`,n.formAgentId=(e.sessionTarget||`main`)===`isolated`&&e.agentId?.trim()?e.agentId.trim().toLowerCase():``,n.formWorkingDirectory=(e.sessionTarget||`main`)===`isolated`&&e.workingDirectory?.trim()?e.workingDirectory.trim():``;let i=e.payload?.kind===`agentTurn`&&e.payload.model?.trim()?e.payload.model.trim():``;n.formModel=e.model?.trim()||i||t();let a=e.delivery?.channel===`local`,o=(e.sessionTarget||`main`)===`isolated`&&!a&&(!e.delivery?.to||e.delivery.mode===`none`);if(n.formAgentLocalOnly=o,a)n.formChannel=`local`,n.formChatId=``;else if(e.delivery&&e.delivery.mode!==`none`&&e.delivery.to)n.formChannel=e.delivery.channel||`telegram`,n.formChatId=e.delivery.to||``;else if(o)n.formChannel=`telegram`,n.formChatId=``;else{let e=r.split(`:`);e.length>=3&&[`telegram`,`cli`,`gateway`,`local`].includes(e[0])?(n.formChannel=e[0],n.formChatId=e[1],n.formMessage=e.slice(2).join(`:`)):(n.formChannel=`telegram`,n.formChatId=``)}return n.formMessageMdMode=`edit`,n.messageEditorNonce=1,n}function st(e){let{m:t,defaultModelForForm:n,channels:r,chatAgents:i}=e,[a,o]=(0,Z.useReducer)(at,void 0,it),s=(0,Z.useRef)(!1),c=(0,Z.useMemo)(()=>new Set([`local`,...r.map(e=>e.name)]),[r]);if(a.formOpen&&a.formMode===`add`&&!c.has(a.formChannel)&&o({type:`patch`,patch:{formChannel:`local`}}),a.formOpen&&a.formMode===`add`&&!s.current){let e=n();e&&e!==a.formModel&&o({type:`patch`,patch:{formModel:e}})}let l=G(()=>de(a.formChannel),[a.formChannel],{enabled:a.formOpen&&a.formChannel!==`local`,initial:[],errorData:[]}),u=a.formChannel===`local`?[]:l.data,d=(0,Z.useMemo)(()=>{let e=new Set(i.map(e=>e.id)),t=[...i],n=a.formAgentId.trim().toLowerCase();return n&&!e.has(n)&&t.push({id:n}),t},[i,a.formAgentId]),f=a.formChannel!==`local`&&(a.formSessionTarget===`main`||a.formSessionTarget===`isolated`&&!a.formAgentLocalOnly),p=a.formSessionTarget===`main`||a.formSessionTarget===`isolated`&&!a.formAgentLocalOnly,m=!!a.formName.trim()&&!!a.formSchedule.trim()&&!!a.formMessage.trim()&&(!f||!!a.formChatId.trim()),h=(0,Z.useCallback)(e=>{s.current=!1,o({type:`replace`,state:ot(e,n)})},[n]),g=(0,Z.useCallback)(e=>{o({type:`setMessageMdMode`,mode:e})},[]),_=(0,Z.useCallback)(e=>{let r=$e(e),i=r?Xe(t.cron,e):void 0;return!r||!i?!1:(s.current=!1,o({type:`replace`,state:{...it(),formOpen:!0,formMode:`add`,formName:i.title,formSchedule:r.defaultSchedule,formMessage:i.prompt,formSessionTarget:r.defaultSessionTarget,formModel:n(),messageEditorNonce:1}}),!0)},[n,t.cron]),v=(0,Z.useCallback)(()=>{s.current=!1,o({type:`replace`,state:it()})},[]),y=(0,Z.useCallback)((e,t,n)=>{let r={formSessionTarget:e};e===`main`?(r.formAgentLocalOnly=!1,r.formAgentId=``,r.formWorkingDirectory=``):e===`isolated`&&!n&&(r.formModel=t()),o({type:`patch`,patch:r})},[]),b=(0,Z.useCallback)(e=>{o({type:`patch`,patch:{formChannel:e,formChatId:``,...e===`local`?{formAgentLocalOnly:!1}:{}}})},[]),x=(0,Z.useCallback)(e=>{s.current=!0,o({type:`patch`,patch:{formModel:e}})},[]),S=(0,Z.useCallback)(()=>{de(a.formChannel).then(l.setData)},[a.formChannel,l.setData]),C=(0,Z.useCallback)(e=>{o({type:`patch`,patch:e})},[]);return{formOpen:a.formOpen,formMode:a.formMode,formJobId:a.formJobId,formName:a.formName,formSchedule:a.formSchedule,formChannel:a.formChannel,formChatId:a.formChatId,formMessage:a.formMessage,formMessageMdMode:a.formMessageMdMode,messageEditorNonce:a.messageEditorNonce,formSessionTarget:a.formSessionTarget,formAgentId:a.formAgentId,formAgentLocalOnly:a.formAgentLocalOnly,formWorkingDirectory:a.formWorkingDirectory,formModel:a.formModel,formSubmitting:a.formSubmitting,sessionChatIds:u,setFormName:e=>C({formName:e}),setFormSchedule:e=>C({formSchedule:e}),setFormChatId:e=>C({formChatId:e}),setFormMessage:e=>C({formMessage:e}),setFormAgentId:e=>C({formAgentId:e}),setFormAgentLocalOnly:e=>C({formAgentLocalOnly:e}),setFormWorkingDirectory:e=>C({formWorkingDirectory:e}),setFormSubmitting:e=>C({formSubmitting:e}),canSubmit:m,needsDeliveryChat:f,showChannelPicker:p,cronAgentSelectOptions:d,openForm:h,closeForm:v,applyCronTemplate:_,setMessageMdMode:g,handleFormSessionTargetChange:y,handleFormChannelChange:b,handleFormModelUserChange:x,refreshRecipientsList:S}}function ct(e){let{onUnavailable:t}=e,[n,r]=(0,Z.useState)(!1),i=(0,Z.useRef)(null),a=(0,Z.useRef)(`none`),o=(0,Z.useRef)(n),s=typeof navigator<`u`&&`wakeLock`in navigator,c=s||O(),l=(0,Z.useCallback)(async()=>{if(a.current===`electron`){try{await window.electronAPI?.cron?.setDisplaySleepPrevented?.(!1)}catch{}a.current=`none`;return}try{await i.current?.release()}catch{}i.current=null,a.current=`none`},[]),u=(0,Z.useCallback)(async()=>{let e=typeof window<`u`?window.electronAPI?.cron?.setDisplaySleepPrevented:void 0;if(e)try{await e(!0),a.current=`electron`;return}catch{t(),r(!1);return}if(s)try{let e=await navigator.wakeLock.request(`screen`);i.current=e,a.current=`navigator`,e.addEventListener(`release`,()=>{i.current=null,a.current=`none`})}catch{t(),r(!1)}},[t,s]);return o.current=n,(0,Z.useEffect)(()=>{if(!n){l();return}u();let e=()=>{document.visibilityState===`visible`&&o.current&&u()};return document.addEventListener(`visibilitychange`,e),()=>{document.removeEventListener(`visibilitychange`,e),l()}},[n,u,l]),{keepAwake:n,setKeepAwake:r,featureAvailable:c}}function lt(e){let{hasToken:t,failMessages:n,isHistoryTab:r}=e,[i,a]=(0,Z.useState)([]),[o,s]=(0,Z.useState)([]),[c,l]=(0,Z.useState)([]),[u,d]=(0,Z.useState)(``),[f,p]=(0,Z.useState)([]),[m,h]=(0,Z.useState)(null),[g,_]=(0,Z.useState)([]),[v,y]=(0,Z.useState)(!1),[b,x]=(0,Z.useState)(!1),[S,C]=(0,Z.useState)(null),w=(0,Z.useCallback)(async()=>{x(!0),C(null);try{a(await ye())}catch(e){C(e instanceof Error?e.message:n.failedToLoadJobs)}finally{x(!1)}},[n.failedToLoadJobs]),T=(0,Z.useCallback)(async()=>{try{let[e,t,n,r,i]=await Promise.all([ue(),se(),oe(),R(),A().catch(()=>null)]);s(e),l(t),d(n.model||``),h(r.payload?.config??null),i&&p(i.items)}catch{}},[]),E=(0,Z.useCallback)(async()=>{y(!0);try{_(await ge(400))}catch{}finally{y(!1)}},[]);return(0,Z.useEffect)(()=>{t&&(w(),T())},[t,w,T]),(0,Z.useEffect)(()=>{if(!t)return;let e=()=>{R().then(e=>{h(e.payload?.config??null)})};return window.addEventListener(`config-reload`,e),()=>window.removeEventListener(`config-reload`,e)},[t]),(0,Z.useEffect)(()=>{!t||!r||E()},[t,r,E]),{jobs:i,channels:o,availableModels:c,defaultModel:u,chatAgents:f,gatewayConfigRaw:m,runHistory:g,runHistoryLoading:v,loading:b,error:S,setError:C,userCronJobs:(0,Z.useMemo)(()=>i.filter(e=>!ie(e)),[i]),systemCronJobs:(0,Z.useMemo)(()=>i.filter(e=>ie(e)),[i]),heartbeatFromConfig:(0,Z.useMemo)(()=>xe(m),[m]),loadJobs:w,loadAux:T,loadRunHistoryOnly:E,refreshAll:(0,Z.useCallback)(()=>{w(),T(),E()},[w,T,E])}}function ut(e,t){let n=[...e];return n.sort((e,n)=>{let r=new Date(e.created_at).getTime(),i=new Date(n.created_at).getTime();return t===`created_desc`?i-r:r-i}),n}function dt(e,t,n,r){let i=new Date,a=t===`day`?ke(i):t===`week`?Ae(i):je(i);return e.filter(e=>!(new Date(e.startedAt)<a||n&&e.jobId!==n||r&&e.status!==r))}var ft={mainTab:`myTasks`,jobSort:`created_desc`,historyRange:`day`,historyJobFilter:``,historyStatusFilter:``,detailOpen:!1,detailJob:null,detailHistory:[],detailLoading:!1,confirmOpen:!1,templatePickerOpen:!1,templateCategoryFilter:`all`};function pt(){let e=o(e=>e.language),t=a(e),n=t.cron,r=t.chat,s=!!i(e=>e.token),l=_(e=>e.resolved)===`dark`,u=e===`zh`?`zh-CN`:`en-US`,[d,f]=(0,Z.useReducer)(L,ft),{mainTab:p,jobSort:m,historyRange:h,historyJobFilter:g,historyStatusFilter:v,detailOpen:y,detailJob:b,detailHistory:x,detailLoading:S,confirmOpen:C,templatePickerOpen:w,templateCategoryFilter:T}=d,E=lt({hasToken:s,failMessages:{failedToLoadJobs:n.failedToLoadJobs},isHistoryTab:p===`history`}),{setError:D}=E,O=ct({onUnavailable:()=>D(n.wakeLockUnavailable)}),k=(0,Z.useCallback)(()=>E.defaultModel||(E.availableModels.length>0?E.availableModels[0].id:``),[E.defaultModel,E.availableModels]),A=st({m:t,defaultModelForForm:k,channels:E.channels,chatAgents:E.chatAgents}),j=(0,Z.useRef)(null),M=(0,Z.useRef)(null),N=(0,Z.useCallback)((e,t)=>{j.current=e,M.current=t,f({type:`patch`,patch:{confirmOpen:!0}})},[]),P=(0,Z.useCallback)(()=>{f({type:`patch`,patch:{confirmOpen:!1}}),M.current=null,j.current=null},[]),F=(0,Z.useRef)(null),I=(0,Z.useCallback)(e=>{F.current=e,window.setTimeout(()=>{F.current===e&&(F.current=null)},400)},[]),R=(0,Z.useCallback)(e=>{A.applyCronTemplate(e)&&f({type:`patch`,patch:{templatePickerOpen:!1}})},[A]),z=async()=>{if(!A.formName.trim()){D(n.nameRequired);return}if(!A.formSchedule.trim()||!A.formMessage.trim()){D(n.scheduleRequired);return}if(A.needsDeliveryChat&&!A.formChatId.trim()){D(n.chatIdRequired);return}A.setFormSubmitting(!0),D(null);try{let e=A.formMessage.trim(),t;t=A.formSessionTarget===`isolated`&&A.formAgentLocalOnly?{mode:`none`}:A.formChannel===`local`?{mode:`direct`,channel:`local`}:{mode:`direct`,channel:A.formChannel,to:A.formChatId.trim()};let n=A.formSessionTarget===`isolated`?{kind:`agentTurn`,message:e,...A.formModel.trim()?{model:A.formModel.trim()}:{}}:{kind:`systemEvent`,text:e},r=A.formModel.trim(),i=A.formAgentId.trim().toLowerCase(),a=A.formSessionTarget===`main`?null:i||null,o=A.formWorkingDirectory.trim(),s={name:A.formName.trim(),schedule:A.formSchedule.trim(),sessionTarget:A.formSessionTarget,model:A.formSessionTarget===`isolated`&&r?r:void 0,delivery:t,payload:n,...A.formMode===`edit`?{agentId:a,workingDirectory:A.formSessionTarget===`isolated`&&o||null}:{...A.formSessionTarget===`isolated`&&i?{agentId:i}:{},...A.formSessionTarget===`isolated`&&o?{workingDirectory:o}:{}}};if(A.formMode===`edit`&&A.formJobId)await fe(A.formJobId,s);else{let{schedule:e,agentId:t,workingDirectory:n,...r}=s;await ve(e,{...r,...t==null?{}:{agentId:t},...n?{workingDirectory:n}:{}})}A.closeForm(),await E.loadJobs(),await E.loadAux()}catch(e){D(e instanceof Error?e.message:A.formMode===`edit`?n.failedToUpdateJob:n.failedToCreateJob)}finally{A.setFormSubmitting(!1)}},B=async e=>{f({type:`patch`,patch:{detailOpen:!0,detailJob:e,detailLoading:!0,detailHistory:[]}});try{let t=await _e(e.id);t&&f({type:`patch`,patch:{detailJob:t,detailHistory:await me(e.id,20)}})}catch{}finally{f({type:`patch`,patch:{detailLoading:!1}})}},V=(0,Z.useCallback)(()=>{f({type:`patch`,patch:{detailOpen:!1,detailJob:null}})},[]),H=(0,Z.useCallback)(()=>{f({type:`patch`,patch:{templateCategoryFilter:`all`,templatePickerOpen:!0}})},[]),U=async(e,t)=>{try{await he(e.id,t),await Promise.all([E.loadJobs(),E.loadAux()])}catch(e){D(e instanceof Error?e.message:n.failedToToggleJob)}},W=async()=>{let e=M.current,t=j.current;if(!(!e||!t)){P();try{t===`run`?await le(e):(await ce(e),b?.id===e&&f({type:`patch`,patch:{detailOpen:!1,detailJob:null}})),await Promise.all([E.loadJobs(),E.loadAux(),E.loadRunHistoryOnly()])}catch(e){D(e instanceof Error?e.message:n.actionFailed)}}};(0,Z.useEffect)(()=>{let e=e=>{e.key===`Escape`&&(A.formOpen?A.closeForm():y&&f({type:`patch`,patch:{detailOpen:!1,detailJob:null}}))};return document.addEventListener(`keydown`,e),()=>document.removeEventListener(`keydown`,e)},[A,y]);let G=(0,Z.useMemo)(()=>({running:n.execStatusRunning,success:n.execStatusSuccess,failed:n.execStatusFailed,cancelled:n.execStatusCancelled}),[n.execStatusCancelled,n.execStatusFailed,n.execStatusRunning,n.execStatusSuccess]),K=(0,Z.useMemo)(()=>ut(E.userCronJobs,m),[E.userCronJobs,m]),q=(0,Z.useMemo)(()=>ut(E.systemCronJobs,m),[E.systemCronJobs,m]),J=(0,Z.useMemo)(()=>dt(E.runHistory,h,g,v),[E.runHistory,h,g,v]),Y=n.scheduleBadge,{pathname:X}=c(),ee=X.startsWith(`/settings/`);return s?(0,$.jsxs)($.Fragment,{children:[(0,$.jsx)(mt,{hasToken:s,c:n,loading:E.loading,runHistoryLoading:E.runHistoryLoading,onRefresh:E.refreshAll,onOpenTemplatePicker:H,onAddJob:()=>A.openForm()}),(0,$.jsxs)(`div`,{className:`flex min-h-0 min-w-0 flex-1 flex-col bg-surface-panel`,children:[(0,$.jsxs)(`div`,{className:`mx-auto flex w-full max-w-app-main flex-col gap-6 px-4 py-6 sm:px-8`,children:[E.error?(0,$.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:E.error}):null,(0,$.jsx)(`header`,{className:`flex flex-col gap-4`,children:(0,$.jsxs)(`div`,{className:`min-w-0`,children:[(0,$.jsx)(`h1`,{className:`text-xl font-semibold tracking-tight text-fg`,children:n.title}),(0,$.jsx)(`p`,{className:`mt-1 max-w-2xl text-sm text-fg-muted`,children:n.subtitle})]})}),ee?(0,$.jsx)(`div`,{className:`flex flex-wrap items-center justify-end gap-2 border-b border-edge-subtle pb-3 dark:border-edge-subtle`,children:(0,$.jsx)(We,{c:n,loading:E.loading,runHistoryLoading:E.runHistoryLoading,onRefresh:E.refreshAll,onOpenTemplatePicker:H,onAddJob:()=>A.openForm()})}):null,(0,$.jsx)(He,{c:n,mainTab:p,onMainTabChange:e=>f({type:`patch`,patch:{mainTab:e}}),jobSort:m,onJobSortChange:e=>f({type:`patch`,patch:{jobSort:e}}),historyRange:h,onHistoryRangeChange:e=>f({type:`patch`,patch:{historyRange:e}}),historyJobFilter:g,onHistoryJobFilterChange:e=>f({type:`patch`,patch:{historyJobFilter:e}}),historyStatusFilter:v,onHistoryStatusFilterChange:e=>f({type:`patch`,patch:{historyStatusFilter:e}}),jobs:E.jobs}),p===`myTasks`?(0,$.jsx)(tt,{c:n,localeTag:u,scheduleBadgeLabels:Y,loading:E.loading,jobsCount:E.userCronJobs.length,sortedJobs:K,templateCategoryFilter:T,onTemplateCategoryFilterChange:e=>f({type:`patch`,patch:{templateCategoryFilter:e}}),onSelectTemplate:R,keepAwake:O.keepAwake,wakeSupported:O.featureAvailable,onWakeUnsupportedClick:()=>D(n.wakeLockUnavailable),onKeepAwakeToggle:()=>O.setKeepAwake(e=>!e),absorbCardClickJobIdRef:F,scheduleAbsorbNextMenuCardClick:I,onOpenDetail:e=>void B(e),onToggle:(e,t)=>void U(e,t),onEdit:e=>A.openForm(e),onAddJob:()=>A.openForm(),onRunNow:e=>N(`run`,e.id),onDelete:e=>N(`delete`,e.id)}):p===`systemTasks`?(0,$.jsx)(Ye,{c:n,language:e,localeTag:u,scheduleBadgeLabels:Y,loading:E.loading,sortedSystemJobs:q,heartbeat:E.heartbeatFromConfig,keepAwake:O.keepAwake,wakeSupported:O.featureAvailable,onWakeUnsupportedClick:()=>D(n.wakeLockUnavailable),onKeepAwakeToggle:()=>O.setKeepAwake(e=>!e),absorbCardClickJobIdRef:F,scheduleAbsorbNextMenuCardClick:I,onOpenDetail:e=>void B(e),onToggle:(e,t)=>void U(e,t),onEdit:e=>A.openForm(e),onRunNow:e=>N(`run`,e.id),onDelete:e=>N(`delete`,e.id)}):(0,$.jsx)(Ge,{c:n,runHistoryLoading:E.runHistoryLoading,runHistory:E.runHistory,filteredRunHistory:J,jobs:E.jobs,onRefreshHistory:()=>void E.loadRunHistoryOnly(),onOpenJobDetail:e=>void B(e),statusLabels:G})]}),(0,$.jsx)(ze,{open:A.formOpen,onRequestClose:A.closeForm,c:n,chatM:r,agentsMessages:t.agentsSettings,isDark:l,channels:E.channels,sessionChatIds:A.sessionChatIds,cronAgentSelectOptions:A.cronAgentSelectOptions,defaultModelResolver:k,formMode:A.formMode,formJobId:A.formJobId,formName:A.formName,onFormNameChange:A.setFormName,formSchedule:A.formSchedule,onFormScheduleChange:A.setFormSchedule,formSubmitting:A.formSubmitting,formSessionTarget:A.formSessionTarget,onFormSessionTargetChange:A.handleFormSessionTargetChange,formAgentLocalOnly:A.formAgentLocalOnly,onFormAgentLocalOnlyChange:A.setFormAgentLocalOnly,formModel:A.formModel,onFormModelUserChange:A.handleFormModelUserChange,formAgentId:A.formAgentId,onFormAgentIdChange:A.setFormAgentId,formWorkingDirectory:A.formWorkingDirectory,onFormWorkingDirectoryChange:A.setFormWorkingDirectory,formChannel:A.formChannel,onFormChannelChange:A.handleFormChannelChange,formChatId:A.formChatId,onFormChatIdChange:A.setFormChatId,formMessage:A.formMessage,onFormMessageChange:A.setFormMessage,formMessageMdMode:A.formMessageMdMode,onSetMessageMdMode:A.setMessageMdMode,messageEditorNonce:A.messageEditorNonce,needsDeliveryChat:A.needsDeliveryChat,showChannelPicker:A.showChannelPicker,canSubmit:A.canSubmit,onSubmit:()=>void z(),onRefreshRecipients:A.refreshRecipientsList}),(0,$.jsx)(nt,{open:w,onOpenChange:e=>{f({type:`patch`,patch:{templatePickerOpen:e,...e?{templateCategoryFilter:`all`}:{}}})},c:n,localeTag:u,scheduleBadgeLabels:Y,categoryFilter:T,onCategoryFilterChange:e=>f({type:`patch`,patch:{templateCategoryFilter:e}}),onSelectTemplate:R}),(0,$.jsx)(Le,{open:y,onDismiss:V,detailJob:b,detailLoading:S,detailHistory:x,c:n,chatWorkingDirNotSet:r.workingDirectory.notSet,statusLabels:G}),(0,$.jsx)(De,{open:C,onOpenChange:e=>f({type:`patch`,patch:{confirmOpen:e}}),action:j.current,c:n,onDismiss:P,onConfirm:W})]})]}):(0,$.jsxs)($.Fragment,{children:[(0,$.jsx)(mt,{hasToken:s,c:n,loading:E.loading,runHistoryLoading:E.runHistoryLoading,onRefresh:E.refreshAll,onOpenTemplatePicker:H,onAddJob:()=>A.openForm()}),(0,$.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})]})}function mt(e){let t=(0,Q.c)(16),{hasToken:n,c:r,loading:i,runHistoryLoading:a,onRefresh:o,onOpenTemplatePicker:s,onAddJob:l}=e,{pathname:u}=c(),d;t[0]===u?d=t[1]:(d=u.startsWith(`/settings/`),t[0]=u,t[1]=d);let f=d,p=P(gt),m=P(ht),h;t[2]!==r||t[3]!==i||t[4]!==l||t[5]!==s||t[6]!==o||t[7]!==a?(h=(0,$.jsx)(We,{c:r,loading:i,runHistoryLoading:a,onRefresh:o,onOpenTemplatePicker:s,onAddJob:l}),t[2]=r,t[3]=i,t[4]=l,t[5]=s,t[6]=o,t[7]=a,t[8]=h):h=t[8];let g=h,_,v;return t[9]!==m||t[10]!==g||t[11]!==n||t[12]!==f||t[13]!==p?(_=()=>!n||f?(m(),()=>m()):(p({startExtra:null,main:null,end:g}),()=>m()),v=[m,g,n,f,p],t[9]=m,t[10]=g,t[11]=n,t[12]=f,t[13]=p,t[14]=_,t[15]=v):(_=t[14],v=t[15]),(0,Z.useLayoutEffect)(_,v),null}function ht(e){return e.clearPageHeader}function gt(e){return e.setPageHeader}export{pt as CronPage};
|
|
2
|
-
//# sourceMappingURL=cron-page-
|
|
1
|
+
import{i as e}from"./rolldown-runtime-aKtaBQYM.js";import{a as t,n,t as r}from"./vendor-react-BOUWij0V.js";import{c as i,d as a,l as o}from"./fetch-EGO9T3MN.js";import{D as s,P as c,a as l,i as u,n as d,o as f,s as p,t as m}from"./dist-C57OMHW8.js";import{n as h,t as g}from"./button-KafIU8dx.js";import{i as _}from"./theme-store-CWPq9gW1.js";import{Ft as v,Gr as y,Kn as b,Mi as x,N as S,Or as C,Pt as w,Rn as T,Tr as E,Vn as D,Wn as O,Yr as k,an as A,c as j,dn as M,fn as N,jn as P,l as F,lr as I,o as L,on as R,pi as z,r as B,s as V,ti as H,ui as U,xi as W,yn as G,zn as K}from"./index-Dxy9ZCtC.js";import{a as q,c as J,d as Y,i as X,l as ee,n as te,o as ne,s as re,t as ie,u as ae}from"./cron-dreaming-jobs-DueM3rBz.js";import{a as oe,c as se,d as ce,f as le,i as ue,l as de,m as fe,n as pe,o as me,p as he,r as ge,s as _e,t as ve,u as ye}from"./cron-api-CzJGvQQ7.js";import{s as be,t as xe}from"./heartbeat-config-api-DxpIEZNs.js";import{a as Se,i as Ce,n as we,r as Te,t as Ee}from"./dist-a-eaOUvs.js";var Z=e(t(),1),Q=n(),$=r();function De(e){let t=(0,Q.c)(25),{open:n,onOpenChange:r,action:i,c:a,onDismiss:o,onConfirm:s}=e,c;t[0]===Symbol.for(`react.memo_cache_sentinel`)?(c=(0,$.jsx)(u,{className:`xopc-dialog-overlay fixed inset-0 z-[70] bg-scrim`}),t[0]=c):c=t[0];let m=i===`delete`?a.delete:a.runNow,h;t[1]===m?h=t[2]:(h=(0,$.jsx)(p,{className:`text-base font-semibold text-fg`,children:m}),t[1]=m,t[2]=h);let _=i===`delete`?a.confirmDelete:a.confirmRun,v;t[3]===_?v=t[4]:(v=(0,$.jsx)(`p`,{className:`mt-2 text-sm text-fg-muted`,children:_}),t[3]=_,t[4]=v);let y;t[5]!==a.cancel||t[6]!==o?(y=(0,$.jsx)(g,{type:`button`,variant:`secondary`,onClick:o,children:a.cancel}),t[5]=a.cancel,t[6]=o,t[7]=y):y=t[7];let b=i===`delete`?`bg-red-600 hover:bg-red-700`:void 0,x;t[8]===s?x=t[9]:(x=()=>void s(),t[8]=s,t[9]=x);let S=i===`delete`?a.delete:a.runNow,C;t[10]!==b||t[11]!==x||t[12]!==S?(C=(0,$.jsx)(g,{type:`button`,variant:`primary`,className:b,onClick:x,children:S}),t[10]=b,t[11]=x,t[12]=S,t[13]=C):C=t[13];let w;t[14]!==C||t[15]!==y?(w=(0,$.jsxs)(`div`,{className:`mt-4 flex justify-end gap-2`,children:[y,C]}),t[14]=C,t[15]=y,t[16]=w):w=t[16];let T;t[17]!==w||t[18]!==h||t[19]!==v?(T=(0,$.jsxs)(l,{children:[c,(0,$.jsx)(`div`,{className:`fixed inset-0 z-[70] flex items-center justify-center p-4 pointer-events-none`,children:(0,$.jsxs)(d,{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:[h,v,w]})})]}),t[17]=w,t[18]=h,t[19]=v,t[20]=T):T=t[20];let E;return t[21]!==r||t[22]!==n||t[23]!==T?(E=(0,$.jsx)(f,{open:n,onOpenChange:r,children:T}),t[21]=r,t[22]=n,t[23]=T,t[24]=E):E=t[24],E}var Oe=`*/5 * * * *`;function ke(e){let t=new Date(e);return t.setHours(0,0,0,0),t}function Ae(e){let t=ke(e),n=t.getDay(),r=n===0?-6:1-n;return t.setDate(t.getDate()+r),t}function je(e){return new Date(e.getFullYear(),e.getMonth(),1,0,0,0,0)}function Me(e){let t=e?.trim();t&&window.dispatchEvent(new CustomEvent(`navigate-to-chat`,{detail:{sessionKey:t},bubbles:!0}))}function Ne(e){return h(`w-full rounded-md border border-edge bg-surface-base px-3 py-2 text-sm text-fg placeholder:text-fg-disabled`,T,e&&`cursor-not-allowed opacity-60`)}function Pe(){return h(D,K)}var Fe=h(D,`w-full text-xs sm:w-auto sm:min-w-[11rem] sm:max-w-[17rem] sm:shrink-0`),Ie=h(D,`w-auto min-w-[9rem] max-w-[14rem] shrink-0 text-xs`);function Le(e){let t=(0,Q.c)(55),{open:n,onDismiss:r,detailJob:i,detailLoading:a,detailHistory:o,c:s,chatWorkingDirNotSet:c,statusLabels:_}=e,v;t[0]===r?v=t[1]:(v=e=>{e||r()},t[0]=r,t[1]=v);let x;t[2]===Symbol.for(`react.memo_cache_sentinel`)?(x=(0,$.jsx)(u,{className:`xopc-dialog-overlay fixed inset-0 z-[60] bg-scrim`}),t[2]=x):x=t[2];let S;t[3]===Symbol.for(`react.memo_cache_sentinel`)?(S=h(`xopc-drawer-right fixed right-0 top-0 z-[60] flex size-full max-w-lg flex-col border-l border-edge bg-surface-panel shadow-popover outline-none`,`dark:border-edge`),t[3]=S):S=t[3];let C;t[4]!==i?.id||t[5]!==i?.name?(C=i?.name?.trim()||i?.id||`—`,t[4]=i?.id,t[5]=i?.name,t[6]=C):C=t[6];let T;t[7]===C?T=t[8]:(T=(0,$.jsx)(p,{className:`min-w-0 truncate text-base font-semibold text-fg`,children:C}),t[7]=C,t[8]=T);let E;t[9]===Symbol.for(`react.memo_cache_sentinel`)?(E=(0,$.jsx)(b,{className:`size-5`,strokeWidth:1.75}),t[9]=E):E=t[9];let D;t[10]===s.close?D=t[11]:(D=(0,$.jsx)(m,{asChild:!0,children:(0,$.jsx)(g,{type:`button`,variant:`ghost`,className:`size-9 shrink-0 p-0`,"aria-label":s.close,children:E})}),t[10]=s.close,t[11]=D);let O;t[12]!==T||t[13]!==D?(O=(0,$.jsxs)(`div`,{className:`flex shrink-0 items-center justify-between gap-2 border-b border-edge px-4 py-3`,children:[T,D]}),t[12]=T,t[13]=D,t[14]=O):O=t[14];let k;t[15]!==s.agentProfile||t[16]!==s.agentProfileDefault||t[17]!==s.channelLocal||t[18]!==s.colChat||t[19]!==s.colDetail||t[20]!==s.colDuration||t[21]!==s.colStarted||t[22]!==s.deliveryLocalOnly||t[23]!==s.deliveryTarget||t[24]!==s.deliveryTargetLocalChannel||t[25]!==s.detailRunHistory||t[26]!==s.disabled||t[27]!==s.enabled||t[28]!==s.messageLabel||t[29]!==s.mode||t[30]!==s.modeAgentOption||t[31]!==s.modeDirectOption||t[32]!==s.nextRun||t[33]!==s.noRunsYet||t[34]!==s.openChat||t[35]!==s.openChatTitle||t[36]!==s.scheduleLabel||t[37]!==s.status||t[38]!==s.timeLabels||t[39]!==s.workingDirectoryLabel||t[40]!==c||t[41]!==o||t[42]!==i||t[43]!==a||t[44]!==_?(k=a?(0,$.jsx)(`div`,{className:`flex justify-center py-16`,children:(0,$.jsx)(y,{className:`size-8 animate-spin text-accent`,strokeWidth:1.75})}):i?(0,$.jsxs)($.Fragment,{children:[(0,$.jsxs)(`dl`,{className:`space-y-3 text-sm`,children:[(0,$.jsxs)(`div`,{children:[(0,$.jsx)(`dt`,{className:`text-xs font-medium text-fg-muted`,children:s.scheduleLabel}),(0,$.jsx)(`dd`,{className:`mt-1 font-mono text-fg`,children:(0,$.jsx)(`code`,{children:i.schedule})})]}),(0,$.jsxs)(`div`,{children:[(0,$.jsx)(`dt`,{className:`text-xs font-medium text-fg-muted`,children:s.messageLabel}),(0,$.jsx)(`dd`,{className:`mt-1 min-w-0 break-words text-fg`,children:(0,$.jsx)(w,{content:pe(i),compact:!0,className:`text-sm`})})]}),(0,$.jsxs)(`div`,{children:[(0,$.jsx)(`dt`,{className:`text-xs font-medium text-fg-muted`,children:s.mode}),(0,$.jsx)(`dd`,{className:`mt-1 text-fg`,children:i.sessionTarget===`isolated`?s.modeAgentOption:s.modeDirectOption})]}),i.sessionTarget===`isolated`?(0,$.jsxs)(`div`,{children:[(0,$.jsx)(`dt`,{className:`text-xs font-medium text-fg-muted`,children:s.agentProfile}),(0,$.jsx)(`dd`,{className:`mt-1 font-mono text-sm text-fg`,children:i.agentId?.trim()?i.agentId.trim():s.agentProfileDefault})]}):null,i.sessionTarget===`isolated`?(0,$.jsxs)(`div`,{children:[(0,$.jsx)(`dt`,{className:`text-xs font-medium text-fg-muted`,children:s.workingDirectoryLabel}),(0,$.jsx)(`dd`,{className:`mt-1 break-all font-mono text-xs text-fg`,children:i.workingDirectory?.trim()?i.workingDirectory.trim():c})]}):null,i.delivery?.channel===`local`||i.sessionTarget===`isolated`&&!i.delivery?.to?(0,$.jsxs)(`div`,{children:[(0,$.jsx)(`dt`,{className:`text-xs font-medium text-fg-muted`,children:s.deliveryTarget}),(0,$.jsx)(`dd`,{className:`mt-1 text-fg`,children:i.delivery?.channel===`local`?s.deliveryTargetLocalChannel:s.deliveryLocalOnly})]}):i.delivery?.to?(0,$.jsxs)(`div`,{children:[(0,$.jsx)(`dt`,{className:`text-xs font-medium text-fg-muted`,children:s.deliveryTarget}),(0,$.jsxs)(`dd`,{className:`mt-1 break-words text-fg`,children:[(0,$.jsx)(`code`,{className:`text-xs`,children:i.delivery?.channel??``}),` → `,q(i,s.channelLocal)]})]}):null,(0,$.jsxs)(`div`,{children:[(0,$.jsx)(`dt`,{className:`text-xs font-medium text-fg-muted`,children:s.status}),(0,$.jsx)(`dd`,{className:`mt-1 text-fg`,children:i.enabled?s.enabled:s.disabled})]}),(0,$.jsxs)(`div`,{children:[(0,$.jsx)(`dt`,{className:`text-xs font-medium text-fg-muted`,children:s.nextRun}),(0,$.jsx)(`dd`,{className:`mt-1 text-fg`,children:i.next_run?re(i.next_run,s.timeLabels):`—`})]})]}),(0,$.jsx)(`h3`,{className:`mt-6 text-sm font-semibold text-fg`,children:s.detailRunHistory}),o.length===0?(0,$.jsx)(`p`,{className:`mt-2 text-sm text-fg-muted`,children:s.noRunsYet}):(0,$.jsx)(`div`,{className:`mt-2 overflow-x-auto`,children:(0,$.jsxs)(`table`,{className:`w-full border-collapse text-left text-xs`,children:[(0,$.jsx)(`thead`,{children:(0,$.jsxs)(`tr`,{className:`border-b border-edge text-fg-muted`,children:[(0,$.jsx)(`th`,{className:`py-1.5 pr-2 font-medium`,children:s.colStarted}),(0,$.jsx)(`th`,{className:`py-1.5 pr-2 font-medium`,children:s.status}),(0,$.jsx)(`th`,{className:`py-1.5 pr-2 font-medium`,children:s.colDuration}),(0,$.jsx)(`th`,{className:`py-1.5 pr-2 font-medium`,children:s.colDetail}),(0,$.jsx)(`th`,{className:`py-1.5 font-medium`,children:s.colChat})]})}),(0,$.jsx)(`tbody`,{children:o.map(e=>(0,$.jsxs)(`tr`,{className:`border-b border-edge/60`,children:[(0,$.jsx)(`td`,{className:`whitespace-nowrap py-1.5 pr-2 text-fg`,children:(0,$.jsx)(`time`,{dateTime:e.startedAt,children:ae(e.startedAt)})}),(0,$.jsx)(`td`,{className:`py-1.5 pr-2`,children:(0,$.jsx)(`span`,{className:h(`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:X(e.status,_)})}),(0,$.jsx)(`td`,{className:`py-1.5 pr-2 text-fg-muted`,children:ne(e.duration)}),(0,$.jsx)(`td`,{className:`max-w-[8rem] truncate py-1.5 pr-2 text-fg-muted`,title:e.summary||e.error||``,children:Y(e.summary||e.error,120)}),(0,$.jsx)(`td`,{className:`whitespace-nowrap py-1.5`,children:e.sessionKey?.trim()?(0,$.jsx)(`button`,{type:`button`,className:`text-xs font-medium text-accent hover:underline`,title:s.openChatTitle,"aria-label":s.openChatTitle,onClick:()=>Me(e.sessionKey),children:s.openChat}):(0,$.jsx)(`span`,{className:`text-fg-disabled`,children:`—`})})]},e.id))})]})})]}):null,t[15]=s.agentProfile,t[16]=s.agentProfileDefault,t[17]=s.channelLocal,t[18]=s.colChat,t[19]=s.colDetail,t[20]=s.colDuration,t[21]=s.colStarted,t[22]=s.deliveryLocalOnly,t[23]=s.deliveryTarget,t[24]=s.deliveryTargetLocalChannel,t[25]=s.detailRunHistory,t[26]=s.disabled,t[27]=s.enabled,t[28]=s.messageLabel,t[29]=s.mode,t[30]=s.modeAgentOption,t[31]=s.modeDirectOption,t[32]=s.nextRun,t[33]=s.noRunsYet,t[34]=s.openChat,t[35]=s.openChatTitle,t[36]=s.scheduleLabel,t[37]=s.status,t[38]=s.timeLabels,t[39]=s.workingDirectoryLabel,t[40]=c,t[41]=o,t[42]=i,t[43]=a,t[44]=_,t[45]=k):k=t[45];let A;t[46]===k?A=t[47]:(A=(0,$.jsx)(`div`,{className:`min-h-0 flex-1 overflow-y-auto px-4 py-3`,children:k}),t[46]=k,t[47]=A);let j;t[48]!==A||t[49]!==O?(j=(0,$.jsxs)(l,{children:[x,(0,$.jsxs)(d,{className:S,"aria-describedby":void 0,children:[O,A]})]}),t[48]=A,t[49]=O,t[50]=j):j=t[50];let M;return t[51]!==n||t[52]!==v||t[53]!==j?(M=(0,$.jsx)(f,{open:n,onOpenChange:v,children:j}),t[51]=n,t[52]=v,t[53]=j,t[54]=M):M=t[54],M}function Re(e){let t=(0,Q.c)(31),{value:n,onChange:r,disabled:i,wd:a,placeholder:o,title:s,maxWidthClass:c,clearLabel:l,onClear:u}=e,d;t[0]!==r||t[1]!==n?(d={initialPath:n,onPicked:r},t[0]=r,t[1]=n,t[2]=d):d=t[2];let f=V(d),p;t[3]===n?p=t[4]:(p=n.trim(),t[3]=n,t[4]=p);let m=p,h=s??(m?`${m}\n${a.chooseFolder}`:`${o??a.notSet}\n${a.selectWorkingDirectory}`),g=i||f.picking,_=o??a.notSet,v;t[5]!==c||t[6]!==f.pick||t[7]!==h||t[8]!==g||t[9]!==_||t[10]!==n?(v=(0,$.jsx)(j,{value:n,onPick:f.pick,disabled:g,placeholder:_,title:h,maxWidthClass:c}),t[5]=c,t[6]=f.pick,t[7]=h,t[8]=g,t[9]=_,t[10]=n,t[11]=v):v=t[11];let y;t[12]!==l||t[13]!==i||t[14]!==u||t[15]!==f.picking||t[16]!==m?(y=l&&m&&u?(0,$.jsx)(`button`,{type:`button`,disabled:i||f.picking,className:`text-xs font-medium text-accent hover:underline disabled:opacity-50`,onClick:u,children:l}):null,t[12]=l,t[13]=i,t[14]=u,t[15]=f.picking,t[16]=m,t[17]=y):y=t[17];let b;t[18]!==v||t[19]!==y?(b=(0,$.jsxs)(`div`,{className:`flex flex-wrap items-center gap-2`,children:[v,y]}),t[18]=v,t[19]=y,t[20]=b):b=t[20];let x;t[21]!==f.confirmPick||t[22]!==f.hasNativePicker||t[23]!==f.modalOpen||t[24]!==f.setModalOpen||t[25]!==m||t[26]!==a?(x=f.hasNativePicker?null:(0,$.jsx)(B,{open:f.modalOpen,onOpenChange:f.setModalOpen,initialAbsolutePath:m||void 0,onConfirm:f.confirmPick,wd:a}),t[21]=f.confirmPick,t[22]=f.hasNativePicker,t[23]=f.modalOpen,t[24]=f.setModalOpen,t[25]=m,t[26]=a,t[27]=x):x=t[27];let S;return t[28]!==b||t[29]!==x?(S=(0,$.jsxs)($.Fragment,{children:[b,x]}),t[28]=b,t[29]=x,t[30]=S):S=t[30],S}function ze(e){let t=(0,Q.c)(164),{open:n,onRequestClose:r,c:i,chatM:a,agentsMessages:o,isDark:s,channels:c,sessionChatIds:_,cronAgentSelectOptions:y,defaultModelResolver:x,formMode:C,formJobId:T,formName:D,onFormNameChange:O,formSchedule:k,onFormScheduleChange:A,formSubmitting:j,formSessionTarget:M,onFormSessionTargetChange:N,formAgentLocalOnly:P,onFormAgentLocalOnlyChange:L,formModel:R,onFormModelUserChange:z,formAgentId:B,onFormAgentIdChange:V,formWorkingDirectory:H,onFormWorkingDirectoryChange:W,formChannel:G,onFormChannelChange:K,formChatId:q,onFormChatIdChange:Y,formMessage:X,onFormMessageChange:ee,formMessageMdMode:te,onSetMessageMdMode:ne,messageEditorNonce:re,needsDeliveryChat:ie,showChannelPicker:ae,canSubmit:oe,onSubmit:se,onRefreshRecipients:ce}=e,le;t[0]===r?le=t[1]:(le=e=>!e&&r(),t[0]=r,t[1]=le);let ue;t[2]===Symbol.for(`react.memo_cache_sentinel`)?(ue=(0,$.jsx)(u,{className:`xopc-dialog-overlay fixed inset-0 z-[60] bg-scrim`}),t[2]=ue):ue=t[2];let de=C===`edit`?i.editJob:i.addJob,fe;t[3]===de?fe=t[4]:(fe=(0,$.jsx)(p,{className:`text-base font-semibold text-fg`,children:de}),t[3]=de,t[4]=fe);let pe;t[5]===Symbol.for(`react.memo_cache_sentinel`)?(pe=(0,$.jsx)(b,{className:`size-5`,strokeWidth:1.75}),t[5]=pe):pe=t[5];let me;t[6]===i.close?me=t[7]:(me=(0,$.jsx)(m,{asChild:!0,children:(0,$.jsx)(g,{type:`button`,variant:`ghost`,className:`size-9 shrink-0 p-0`,"aria-label":i.close,children:pe})}),t[6]=i.close,t[7]=me);let he;t[8]!==fe||t[9]!==me?(he=(0,$.jsxs)(`div`,{className:`flex shrink-0 items-center justify-between gap-2 border-b border-edge px-4 py-3`,children:[fe,me]}),t[8]=fe,t[9]=me,t[10]=he):he=t[10];let ge;t[11]===i.name?ge=t[12]:(ge=(0,$.jsx)(`span`,{className:`text-xs font-medium text-fg-muted`,children:i.name}),t[11]=i.name,t[12]=ge);let _e;t[13]===Symbol.for(`react.memo_cache_sentinel`)?(_e=Ne(),t[13]=_e):_e=t[13];let ve;t[14]===O?ve=t[15]:(ve=e=>O(e.target.value),t[14]=O,t[15]=ve);let ye;t[16]!==i.namePlaceholder||t[17]!==D||t[18]!==ve?(ye=(0,$.jsx)(`input`,{type:`text`,className:_e,value:D,onChange:ve,placeholder:i.namePlaceholder}),t[16]=i.namePlaceholder,t[17]=D,t[18]=ve,t[19]=ye):ye=t[19];let xe;t[20]!==ye||t[21]!==ge?(xe=(0,$.jsxs)(`label`,{className:`flex flex-col gap-1`,children:[ge,ye]}),t[20]=ye,t[21]=ge,t[22]=xe):xe=t[22];let Se;t[23]!==i.schedulePicker||t[24]!==k||t[25]!==j||t[26]!==A?(Se=(0,$.jsx)(be,{value:k,onChange:A,disabled:j,labels:i.schedulePicker}),t[23]=i.schedulePicker,t[24]=k,t[25]=j,t[26]=A,t[27]=Se):Se=t[27];let Ce;t[28]===i.mode?Ce=t[29]:(Ce=(0,$.jsx)(`span`,{className:`text-xs font-medium text-fg-muted`,children:i.mode}),t[28]=i.mode,t[29]=Ce);let we;t[30]===Symbol.for(`react.memo_cache_sentinel`)?(we=Pe(),t[30]=we):we=t[30];let Te;t[31]!==x||t[32]!==R||t[33]!==N?(Te=e=>{let t=e.target.value;N(t,x,R.trim())},t[31]=x,t[32]=R,t[33]=N,t[34]=Te):Te=t[34];let Ee;t[35]===i.modeDirectOption?Ee=t[36]:(Ee=(0,$.jsx)(`option`,{value:`main`,children:i.modeDirectOption}),t[35]=i.modeDirectOption,t[36]=Ee);let Z;t[37]===i.modeAgentOption?Z=t[38]:(Z=(0,$.jsx)(`option`,{value:`isolated`,children:i.modeAgentOption}),t[37]=i.modeAgentOption,t[38]=Z);let De;t[39]!==M||t[40]!==Te||t[41]!==Ee||t[42]!==Z?(De=(0,$.jsxs)(`select`,{className:we,value:M,onChange:Te,children:[Ee,Z]}),t[39]=M,t[40]=Te,t[41]=Ee,t[42]=Z,t[43]=De):De=t[43];let Oe=M===`main`?i.modeDirect:i.modeAgent,ke;t[44]===Oe?ke=t[45]:(ke=(0,$.jsx)(`p`,{className:`text-xs text-fg-muted`,children:Oe}),t[44]=Oe,t[45]=ke);let Ae;t[46]!==Ce||t[47]!==De||t[48]!==ke?(Ae=(0,$.jsxs)(`label`,{className:`flex flex-col gap-1`,children:[Ce,De,ke]}),t[46]=Ce,t[47]=De,t[48]=ke,t[49]=Ae):Ae=t[49];let je;t[50]!==o||t[51]!==i.agentLocalOnly||t[52]!==i.agentLocalOnlyHint||t[53]!==i.agentProfile||t[54]!==i.agentProfileDefault||t[55]!==i.agentProfileHint||t[56]!==i.model||t[57]!==i.workingDirectoryHint||t[58]!==i.workingDirectoryLabel||t[59]!==i.workingDirectoryReset||t[60]!==a||t[61]!==y||t[62]!==B||t[63]!==P||t[64]!==R||t[65]!==M||t[66]!==j||t[67]!==H||t[68]!==V||t[69]!==L||t[70]!==z||t[71]!==W?(je=M===`isolated`?(0,$.jsxs)($.Fragment,{children:[(0,$.jsxs)(`div`,{className:`flex flex-col gap-1`,children:[(0,$.jsx)(`span`,{className:`text-xs font-medium text-fg-muted`,children:i.model}),(0,$.jsx)(F,{value:R,placeholder:a.modelPlaceholder,searchPlaceholder:a.modelSearchPlaceholder,noMatches:a.modelNoMatches,className:`w-full max-w-none min-w-0`,popoverContentClassName:`z-[70]`,onChange:z})]}),(0,$.jsxs)(`label`,{className:`flex flex-col gap-1`,children:[(0,$.jsx)(`span`,{className:`text-xs font-medium text-fg-muted`,children:i.agentProfile}),(0,$.jsxs)(`select`,{className:Pe(),value:B,disabled:j,onChange:e=>V(e.target.value),children:[(0,$.jsx)(`option`,{value:``,children:i.agentProfileDefault}),y.map(e=>(0,$.jsx)(`option`,{value:e.id,children:`${e.id} — ${S(e,o)}`},e.id))]}),(0,$.jsx)(`p`,{className:`text-xs text-fg-muted`,children:i.agentProfileHint})]}),(0,$.jsxs)(`div`,{className:`flex flex-col gap-1`,children:[(0,$.jsx)(`span`,{className:`text-xs font-medium text-fg-muted`,children:i.workingDirectoryLabel}),(0,$.jsx)(Re,{value:H,onChange:W,disabled:j,wd:a.workingDirectory,placeholder:a.workingDirectory.notSet,maxWidthClass:`max-w-[min(16rem,48vw)]`,clearLabel:i.workingDirectoryReset,onClear:()=>W(``)}),(0,$.jsx)(`p`,{className:`text-xs text-fg-muted`,children:i.workingDirectoryHint})]}),(0,$.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,$.jsx)(`input`,{type:`checkbox`,className:h(`ui-checkbox`,`mt-0.5`),checked:P,onChange:e=>L(e.target.checked),"aria-label":i.agentLocalOnly}),(0,$.jsxs)(`span`,{children:[(0,$.jsx)(`span`,{className:`text-sm font-medium text-fg`,children:i.agentLocalOnly}),(0,$.jsx)(`p`,{className:`mt-1 text-xs text-fg-muted`,children:i.agentLocalOnlyHint})]})]})]}):null,t[50]=o,t[51]=i.agentLocalOnly,t[52]=i.agentLocalOnlyHint,t[53]=i.agentProfile,t[54]=i.agentProfileDefault,t[55]=i.agentProfileHint,t[56]=i.model,t[57]=i.workingDirectoryHint,t[58]=i.workingDirectoryLabel,t[59]=i.workingDirectoryReset,t[60]=a,t[61]=y,t[62]=B,t[63]=P,t[64]=R,t[65]=M,t[66]=j,t[67]=H,t[68]=V,t[69]=L,t[70]=z,t[71]=W,t[72]=je):je=t[72];let Me;t[73]!==i.channel||t[74]!==i.channelLocal||t[75]!==i.enterManuallyOrSelect||t[76]!==i.lastActiveLabels||t[77]!==i.noRecentChats||t[78]!==i.noRecentChatsOption||t[79]!==i.recipient||t[80]!==i.recipientPlaceholder||t[81]!==i.refreshList||t[82]!==i.refreshRecipientHint||t[83]!==i.selectRecipient||t[84]!==c||t[85]!==G||t[86]!==q||t[87]!==ie||t[88]!==K||t[89]!==Y||t[90]!==ce||t[91]!==_||t[92]!==ae?(Me=ae?(0,$.jsxs)($.Fragment,{children:[(0,$.jsxs)(`label`,{className:`flex flex-col gap-1`,children:[(0,$.jsx)(`span`,{className:`text-xs font-medium text-fg-muted`,children:i.channel}),(0,$.jsxs)(`select`,{className:Pe(),value:G,onChange:e=>{let t=e.target.value;K(t)},children:[(0,$.jsx)(`option`,{value:`local`,children:i.channelLocal}),c.map(Be)]})]}),ie?(0,$.jsxs)(`div`,{className:`flex flex-col gap-1`,children:[(0,$.jsxs)(`div`,{className:`flex items-center justify-between gap-2`,children:[(0,$.jsx)(`span`,{className:`text-xs font-medium text-fg-muted`,children:i.recipient}),(0,$.jsxs)(g,{type:`button`,variant:`ghost`,className:`h-7 gap-1 px-2 text-xs`,title:i.refreshRecipientHint,onClick:()=>void ce(),children:[(0,$.jsx)(E,{className:`size-3.5`,strokeWidth:1.75}),i.refreshList]})]}),(0,$.jsxs)(`div`,{className:`flex flex-col gap-2 sm:flex-row sm:items-stretch sm:gap-2`,children:[(0,$.jsx)(`input`,{type:`text`,className:h(Ne(),`min-w-0 w-full sm:flex-1`),value:q,onChange:e=>Y(e.target.value),placeholder:i.recipientPlaceholder}),(0,$.jsxs)(`select`,{className:Fe,value:q,onChange:e=>{let t=e.target.value;t&&Y(t)},children:[(0,$.jsx)(`option`,{value:``,children:i.selectRecipient}),_.length>0?_.map(e=>(0,$.jsx)(`option`,{value:e.chatId,children:J(e,i.lastActiveLabels)},`${e.channel}-${e.chatId}`)):(0,$.jsx)(`option`,{value:``,disabled:!0,children:i.noRecentChatsOption})]})]}),(0,$.jsx)(`p`,{className:`text-xs text-fg-muted`,children:_.length>0?i.enterManuallyOrSelect:i.noRecentChats})]}):null]}):null,t[73]=i.channel,t[74]=i.channelLocal,t[75]=i.enterManuallyOrSelect,t[76]=i.lastActiveLabels,t[77]=i.noRecentChats,t[78]=i.noRecentChatsOption,t[79]=i.recipient,t[80]=i.recipientPlaceholder,t[81]=i.refreshList,t[82]=i.refreshRecipientHint,t[83]=i.selectRecipient,t[84]=c,t[85]=G,t[86]=q,t[87]=ie,t[88]=K,t[89]=Y,t[90]=ce,t[91]=_,t[92]=ae,t[93]=Me):Me=t[93];let Ie;t[94]===i.message?Ie=t[95]:(Ie=(0,$.jsx)(`span`,{className:`text-xs font-medium text-fg-muted`,children:i.message}),t[94]=i.message,t[95]=Ie);let Le=te===`edit`?`bg-accent-soft text-accent-fg`:`text-fg-muted hover:bg-surface-hover`,ze;t[96]===Le?ze=t[97]:(ze=h(`inline-flex items-center gap-1.5 rounded-md px-2.5 py-1.5 text-xs font-medium`,Le),t[96]=Le,t[97]=ze);let He;t[98]===ne?He=t[99]:(He=()=>ne(`edit`),t[98]=ne,t[99]=He);let Ue;t[100]===Symbol.for(`react.memo_cache_sentinel`)?(Ue=(0,$.jsx)(I,{className:`size-3.5 shrink-0`,strokeWidth:1.75,"aria-hidden":!0}),t[100]=Ue):Ue=t[100];let We;t[101]!==i.messageEdit||t[102]!==ze||t[103]!==He?(We=(0,$.jsxs)(`button`,{type:`button`,className:ze,onClick:He,children:[Ue,i.messageEdit]}),t[101]=i.messageEdit,t[102]=ze,t[103]=He,t[104]=We):We=t[104];let Ge=te===`preview`?`bg-accent-soft text-accent-fg`:`text-fg-muted hover:bg-surface-hover`,Ke;t[105]===Ge?Ke=t[106]:(Ke=h(`inline-flex items-center gap-1.5 rounded-md px-2.5 py-1.5 text-xs font-medium`,Ge),t[105]=Ge,t[106]=Ke);let qe;t[107]===ne?qe=t[108]:(qe=()=>ne(`preview`),t[107]=ne,t[108]=qe);let Je;t[109]===Symbol.for(`react.memo_cache_sentinel`)?(Je=(0,$.jsx)(U,{className:`size-3.5 shrink-0`,strokeWidth:1.75,"aria-hidden":!0}),t[109]=Je):Je=t[109];let Ye;t[110]!==i.messagePreview||t[111]!==Ke||t[112]!==qe?(Ye=(0,$.jsxs)(`button`,{type:`button`,className:Ke,onClick:qe,children:[Je,i.messagePreview]}),t[110]=i.messagePreview,t[111]=Ke,t[112]=qe,t[113]=Ye):Ye=t[113];let Xe;t[114]!==We||t[115]!==Ye?(Xe=(0,$.jsxs)(`div`,{className:`inline-flex rounded-lg border border-edge bg-surface-base p-0.5 dark:border-edge`,children:[We,Ye]}),t[114]=We,t[115]=Ye,t[116]=Xe):Xe=t[116];let Ze;t[117]!==Ie||t[118]!==Xe?(Ze=(0,$.jsxs)(`div`,{className:`flex flex-wrap items-center justify-between gap-2`,children:[Ie,Xe]}),t[117]=Ie,t[118]=Xe,t[119]=Ze):Ze=t[119];let Qe=j&&`pointer-events-none opacity-60`,$e;t[120]===Qe?$e=t[121]:($e=h(`overflow-hidden rounded-md border border-edge bg-surface-base dark:border-edge`,Qe),t[120]=Qe,t[121]=$e);let et;t[122]!==i.messagePlaceholder||t[123]!==T||t[124]!==X||t[125]!==te||t[126]!==s||t[127]!==re||t[128]!==ee?(et=te===`edit`?(0,$.jsx)(v,{initialContent:X,onChange:ee,isDark:s,className:`h-[min(18rem,40vh)] min-h-[12rem]`},`cron-msg-${T??`new`}-${re}`):(0,$.jsx)(`div`,{className:`h-[min(18rem,40vh)] min-h-[12rem] max-h-[min(24rem,50vh)] overflow-y-auto px-3 py-2`,children:X.trim()?(0,$.jsx)(w,{content:X,compact:!0,className:`text-sm`}):(0,$.jsx)(`p`,{className:`text-sm text-fg-muted`,children:i.messagePlaceholder})}),t[122]=i.messagePlaceholder,t[123]=T,t[124]=X,t[125]=te,t[126]=s,t[127]=re,t[128]=ee,t[129]=et):et=t[129];let tt;t[130]!==$e||t[131]!==et?(tt=(0,$.jsx)(`div`,{className:$e,children:et}),t[130]=$e,t[131]=et,t[132]=tt):tt=t[132];let nt;t[133]===i.messageMarkdownHint?nt=t[134]:(nt=(0,$.jsx)(`p`,{className:`text-xs text-fg-muted`,children:i.messageMarkdownHint}),t[133]=i.messageMarkdownHint,t[134]=nt);let rt;t[135]!==Ze||t[136]!==tt||t[137]!==nt?(rt=(0,$.jsxs)(`div`,{className:`flex flex-col gap-1`,children:[Ze,tt,nt]}),t[135]=Ze,t[136]=tt,t[137]=nt,t[138]=rt):rt=t[138];let it;t[139]!==xe||t[140]!==Se||t[141]!==Ae||t[142]!==je||t[143]!==Me||t[144]!==rt?(it=(0,$.jsx)(`div`,{className:`min-h-0 flex-1 overflow-y-auto px-4 py-3`,children:(0,$.jsxs)(`div`,{className:`flex flex-col gap-3`,children:[xe,Se,Ae,je,Me,rt]})}),t[139]=xe,t[140]=Se,t[141]=Ae,t[142]=je,t[143]=Me,t[144]=rt,t[145]=it):it=t[145];let at;t[146]!==i.cancel||t[147]!==r?(at=(0,$.jsx)(g,{type:`button`,variant:`secondary`,onClick:r,children:i.cancel}),t[146]=i.cancel,t[147]=r,t[148]=at):at=t[148];let ot=j||!oe,st=j?i.loading:C===`edit`?i.save:i.create,ct;t[149]!==se||t[150]!==ot||t[151]!==st?(ct=(0,$.jsx)(g,{type:`button`,variant:`primary`,disabled:ot,onClick:se,children:st}),t[149]=se,t[150]=ot,t[151]=st,t[152]=ct):ct=t[152];let lt;t[153]!==at||t[154]!==ct?(lt=(0,$.jsxs)(`div`,{className:`flex shrink-0 justify-end gap-2 border-t border-edge px-4 py-3`,children:[at,ct]}),t[153]=at,t[154]=ct,t[155]=lt):lt=t[155];let ut;t[156]!==it||t[157]!==lt||t[158]!==he?(ut=(0,$.jsxs)(l,{children:[ue,(0,$.jsx)(`div`,{className:`fixed inset-0 z-[60] flex items-center justify-center p-4 pointer-events-none`,children:(0,$.jsxs)(d,{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:Ve,children:[he,it,lt]})})]}),t[156]=it,t[157]=lt,t[158]=he,t[159]=ut):ut=t[159];let dt;return t[160]!==n||t[161]!==le||t[162]!==ut?(dt=(0,$.jsx)($.Fragment,{children:(0,$.jsx)(f,{open:n,onOpenChange:le,children:ut})}),t[160]=n,t[161]=le,t[162]=ut,t[163]=dt):dt=t[163],dt}function Be(e){return(0,$.jsxs)(`option`,{value:e.name,disabled:!e.enabled,children:[e.name,` `,e.enabled?``:`(disabled)`]},e.name)}function Ve(e){return e.preventDefault()}function He(e){let t=(0,Q.c)(66),{c:n,mainTab:r,onMainTabChange:i,jobSort:a,onJobSortChange:o,historyRange:s,onHistoryRangeChange:c,historyJobFilter:l,onHistoryJobFilterChange:u,historyStatusFilter:d,onHistoryStatusFilterChange:f,jobs:p}=e,m=n.title,g=r===`myTasks`,_=r===`myTasks`?`text-fg`:`text-fg-muted hover:text-fg`,v;t[0]===_?v=t[1]:(v=h(`rounded-md px-3 py-2 text-sm font-medium transition-colors`,_),t[0]=_,t[1]=v);let y;t[2]===i?y=t[3]:(y=()=>i(`myTasks`),t[2]=i,t[3]=y);let b;t[4]!==n.tabMyTasks||t[5]!==g||t[6]!==v||t[7]!==y?(b=(0,$.jsx)(`button`,{type:`button`,role:`tab`,"aria-selected":g,className:v,onClick:y,children:n.tabMyTasks}),t[4]=n.tabMyTasks,t[5]=g,t[6]=v,t[7]=y,t[8]=b):b=t[8];let x=r===`systemTasks`,S=r===`systemTasks`?`text-fg`:`text-fg-muted hover:text-fg`,C;t[9]===S?C=t[10]:(C=h(`rounded-md px-3 py-2 text-sm font-medium transition-colors`,S),t[9]=S,t[10]=C);let w;t[11]===i?w=t[12]:(w=()=>i(`systemTasks`),t[11]=i,t[12]=w);let T;t[13]!==n.tabSystemTasks||t[14]!==w||t[15]!==x||t[16]!==C?(T=(0,$.jsx)(`button`,{type:`button`,role:`tab`,"aria-selected":x,className:C,onClick:w,children:n.tabSystemTasks}),t[13]=n.tabSystemTasks,t[14]=w,t[15]=x,t[16]=C,t[17]=T):T=t[17];let E=r===`history`,D=r===`history`?`text-fg`:`text-fg-muted hover:text-fg`,O;t[18]===D?O=t[19]:(O=h(`rounded-md px-3 py-2 text-sm font-medium transition-colors`,D),t[18]=D,t[19]=O);let k;t[20]===i?k=t[21]:(k=()=>i(`history`),t[20]=i,t[21]=k);let A;t[22]!==n.tabRunHistory||t[23]!==E||t[24]!==O||t[25]!==k?(A=(0,$.jsx)(`button`,{type:`button`,role:`tab`,"aria-selected":E,className:O,onClick:k,children:n.tabRunHistory}),t[22]=n.tabRunHistory,t[23]=E,t[24]=O,t[25]=k,t[26]=A):A=t[26];let j;t[27]!==n.title||t[28]!==T||t[29]!==A||t[30]!==b?(j=(0,$.jsxs)(`div`,{className:`flex gap-1`,role:`tablist`,"aria-label":m,children:[b,T,A]}),t[27]=n.title,t[28]=T,t[29]=A,t[30]=b,t[31]=j):j=t[31];let P=r===`history`?`flex-nowrap overflow-x-auto pb-0.5 sm:justify-end`:`flex-wrap sm:justify-end`,F;t[32]===P?F=t[33]:(F=h(`flex min-w-0 items-center gap-2`,P),t[32]=P,t[33]=F);let I;t[34]!==n.sortCreatedAsc||t[35]!==n.sortCreatedDesc||t[36]!==a||t[37]!==r||t[38]!==o?(I=r===`myTasks`||r===`systemTasks`?(0,$.jsxs)(`select`,{className:Ie,value:a,onChange:e=>o(e.target.value),"aria-label":n.sortCreatedDesc,children:[(0,$.jsx)(`option`,{value:`created_desc`,children:n.sortCreatedDesc}),(0,$.jsx)(`option`,{value:`created_asc`,children:n.sortCreatedAsc})]}):null,t[34]=n.sortCreatedAsc,t[35]=n.sortCreatedDesc,t[36]=a,t[37]=r,t[38]=o,t[39]=I):I=t[39];let L;t[40]!==n.execStatusCancelled||t[41]!==n.execStatusFailed||t[42]!==n.execStatusRunning||t[43]!==n.execStatusSuccess||t[44]!==n.filterAllStatuses||t[45]!==n.filterAllTasks||t[46]!==n.historyRangeDay||t[47]!==n.historyRangeMonth||t[48]!==n.historyRangeWeek||t[49]!==n.runHistoryTitle||t[50]!==l||t[51]!==s||t[52]!==d||t[53]!==p||t[54]!==r||t[55]!==u||t[56]!==c||t[57]!==f?(L=r===`history`?(0,$.jsxs)($.Fragment,{children:[(0,$.jsx)(`div`,{className:h(N,`shrink-0`),role:`group`,"aria-label":n.runHistoryTitle,children:[`day`,`week`,`month`].map(e=>(0,$.jsx)(`button`,{type:`button`,className:h(M,`px-2.5 py-1`,s===e&&`bg-surface-panel shadow-sm dark:bg-surface-panel dark:shadow-sm dark:ring-1 dark:ring-edge-strong/40`,s===e&&`text-fg`),onClick:()=>c(e),children:e===`day`?n.historyRangeDay:e===`week`?n.historyRangeWeek:n.historyRangeMonth},e))}),(0,$.jsxs)(`select`,{className:Ie,value:l,onChange:e=>u(e.target.value),"aria-label":n.filterAllTasks,children:[(0,$.jsx)(`option`,{value:``,children:n.filterAllTasks}),p.map(Ue)]}),(0,$.jsxs)(`select`,{className:Ie,value:d,onChange:e=>f(e.target.value),"aria-label":n.filterAllStatuses,children:[(0,$.jsx)(`option`,{value:``,children:n.filterAllStatuses}),(0,$.jsx)(`option`,{value:`success`,children:n.execStatusSuccess}),(0,$.jsx)(`option`,{value:`failed`,children:n.execStatusFailed}),(0,$.jsx)(`option`,{value:`cancelled`,children:n.execStatusCancelled}),(0,$.jsx)(`option`,{value:`running`,children:n.execStatusRunning})]})]}):null,t[40]=n.execStatusCancelled,t[41]=n.execStatusFailed,t[42]=n.execStatusRunning,t[43]=n.execStatusSuccess,t[44]=n.filterAllStatuses,t[45]=n.filterAllTasks,t[46]=n.historyRangeDay,t[47]=n.historyRangeMonth,t[48]=n.historyRangeWeek,t[49]=n.runHistoryTitle,t[50]=l,t[51]=s,t[52]=d,t[53]=p,t[54]=r,t[55]=u,t[56]=c,t[57]=f,t[58]=L):L=t[58];let R;t[59]!==F||t[60]!==I||t[61]!==L?(R=(0,$.jsxs)(`div`,{className:F,children:[I,L]}),t[59]=F,t[60]=I,t[61]=L,t[62]=R):R=t[62];let z;return t[63]!==j||t[64]!==R?(z=(0,$.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:[j,R]}),t[63]=j,t[64]=R,t[65]=z):z=t[65],z}function Ue(e){return(0,$.jsx)(`option`,{value:e.id,children:e.name||e.id},e.id)}function We(e){let t=(0,Q.c)(23),{c:n,loading:r,runHistoryLoading:i,onRefresh:a,onOpenTemplatePicker:o,onAddJob:s}=e,c=r||i,l=n.refresh,u=n.refresh,d;t[0]===a?d=t[1]:(d=()=>void a(),t[0]=a,t[1]=d);let f=c&&`animate-spin`,p;t[2]===f?p=t[3]:(p=h(`size-4`,f),t[2]=f,t[3]=p);let m;t[4]===p?m=t[5]:(m=(0,$.jsx)(E,{className:p,strokeWidth:1.75}),t[4]=p,t[5]=m);let _;t[6]!==c||t[7]!==n.refresh||t[8]!==d||t[9]!==m?(_=(0,$.jsx)(g,{type:`button`,variant:`ghost`,className:`size-9 shrink-0 p-0`,disabled:c,title:l,"aria-label":u,onClick:d,children:m}),t[6]=c,t[7]=n.refresh,t[8]=d,t[9]=m,t[10]=_):_=t[10];let v;t[11]===Symbol.for(`react.memo_cache_sentinel`)?(v=(0,$.jsx)(k,{className:`size-4`,strokeWidth:1.75}),t[11]=v):v=t[11];let y;t[12]!==n.fromTemplate||t[13]!==o?(y=(0,$.jsxs)(g,{type:`button`,variant:`secondary`,className:`gap-2`,onClick:o,children:[v,n.fromTemplate]}),t[12]=n.fromTemplate,t[13]=o,t[14]=y):y=t[14];let b;t[15]===Symbol.for(`react.memo_cache_sentinel`)?(b=(0,$.jsx)(C,{className:`size-4`,strokeWidth:1.75}),t[15]=b):b=t[15];let x;t[16]!==n.addJob||t[17]!==s?(x=(0,$.jsxs)(g,{type:`button`,variant:`primary`,className:`gap-2`,onClick:s,children:[b,n.addJob]}),t[16]=n.addJob,t[17]=s,t[18]=x):x=t[18];let S;return t[19]!==x||t[20]!==_||t[21]!==y?(S=(0,$.jsxs)(`div`,{className:`flex min-w-0 flex-1 flex-wrap items-center justify-end gap-2`,children:[_,y,x]}),t[19]=x,t[20]=_,t[21]=y,t[22]=S):S=t[22],S}function Ge(e){let t=(0,Q.c)(43),{c:n,runHistoryLoading:r,runHistory:i,filteredRunHistory:a,jobs:o,onRefreshHistory:s,onOpenJobDetail:c,statusLabels:l}=e,u;t[0]===n.tabRunHistory?u=t[1]:(u=(0,$.jsx)(`h2`,{id:`cron-history-panel`,className:`sr-only`,children:n.tabRunHistory}),t[0]=n.tabRunHistory,t[1]=u);let d;t[2]===n.runHistoryHint?d=t[3]:(d=(0,$.jsx)(`p`,{className:`text-xs text-fg-muted`,children:n.runHistoryHint}),t[2]=n.runHistoryHint,t[3]=d);let f;t[4]!==u||t[5]!==d?(f=(0,$.jsxs)(`div`,{children:[u,d]}),t[4]=u,t[5]=d,t[6]=f):f=t[6];let p=n.refresh,m=n.refresh,_;t[7]===s?_=t[8]:(_=()=>void s(),t[7]=s,t[8]=_);let v=r&&`animate-spin`,b;t[9]===v?b=t[10]:(b=h(`size-4`,v),t[9]=v,t[10]=b);let x;t[11]===b?x=t[12]:(x=(0,$.jsx)(E,{className:b,strokeWidth:1.75}),t[11]=b,t[12]=x);let S;t[13]!==n.refresh||t[14]!==r||t[15]!==_||t[16]!==x?(S=(0,$.jsx)(g,{type:`button`,variant:`ghost`,className:`size-9 shrink-0 p-0`,disabled:r,title:p,"aria-label":m,onClick:_,children:x}),t[13]=n.refresh,t[14]=r,t[15]=_,t[16]=x,t[17]=S):S=t[17];let C;t[18]!==S||t[19]!==f?(C=(0,$.jsxs)(`div`,{className:`flex items-start justify-between gap-2`,children:[f,S]}),t[18]=S,t[19]=f,t[20]=C):C=t[20];let w;t[21]!==n.colChat||t[22]!==n.colDetail||t[23]!==n.colDuration||t[24]!==n.colJob||t[25]!==n.colStarted||t[26]!==n.emptyHistoryHint||t[27]!==n.emptyHistoryTitle||t[28]!==n.noRunsYet||t[29]!==n.openChat||t[30]!==n.openChatTitle||t[31]!==n.runHistoryHint||t[32]!==n.status||t[33]!==a||t[34]!==o||t[35]!==c||t[36]!==i||t[37]!==r||t[38]!==l?(w=r&&i.length===0?(0,$.jsx)(`div`,{className:`flex justify-center py-16`,children:(0,$.jsx)(y,{className:`size-8 animate-spin text-accent`,strokeWidth:1.75})}):a.length===0?(0,$.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,$.jsx)(W,{className:`mb-4 size-14 text-fg-disabled`,strokeWidth:1.1,"aria-hidden":!0}),(0,$.jsx)(`h3`,{className:`text-base font-semibold text-fg`,children:i.length===0?n.emptyHistoryTitle:n.noRunsYet}),(0,$.jsx)(`p`,{className:`mt-2 max-w-sm text-sm text-fg-muted`,children:i.length===0?n.emptyHistoryHint:n.runHistoryHint})]}):(0,$.jsx)(`div`,{className:`overflow-x-auto rounded-xl border border-edge-subtle bg-surface-base dark:border-edge-subtle`,children:(0,$.jsxs)(`table`,{className:`w-full min-w-[700px] border-collapse text-left text-sm`,children:[(0,$.jsx)(`thead`,{children:(0,$.jsxs)(`tr`,{className:`border-b border-edge text-xs font-medium text-fg-muted`,children:[(0,$.jsx)(`th`,{className:`px-3 py-2.5 font-medium`,children:n.colStarted}),(0,$.jsx)(`th`,{className:`px-3 py-2.5 font-medium`,children:n.colJob}),(0,$.jsx)(`th`,{className:`px-3 py-2.5 font-medium`,children:n.status}),(0,$.jsx)(`th`,{className:`px-3 py-2.5 font-medium`,children:n.colDuration}),(0,$.jsx)(`th`,{className:`px-3 py-2.5 font-medium`,children:n.colDetail}),(0,$.jsx)(`th`,{className:`px-3 py-2.5 font-medium`,children:n.colChat})]})}),(0,$.jsx)(`tbody`,{children:a.map(e=>(0,$.jsxs)(`tr`,{className:`border-b border-edge/60 last:border-0`,children:[(0,$.jsx)(`td`,{className:`whitespace-nowrap px-3 py-2.5 text-fg`,children:(0,$.jsx)(`time`,{dateTime:e.startedAt,children:ae(e.startedAt)})}),(0,$.jsx)(`td`,{className:`max-w-[10rem] truncate px-3 py-2.5`,children:o.some(t=>t.id===e.jobId)?(0,$.jsx)(`button`,{type:`button`,className:`text-left text-accent hover:underline`,onClick:()=>{let t=o.find(t=>t.id===e.jobId);t&&c(t)},children:e.jobName||e.jobId}):(0,$.jsx)(`span`,{className:`text-fg-muted`,children:e.jobName||e.jobId})}),(0,$.jsx)(`td`,{className:`px-3 py-2.5`,children:(0,$.jsx)(`span`,{className:h(`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:X(e.status,l)})}),(0,$.jsx)(`td`,{className:`whitespace-nowrap px-3 py-2.5 text-fg-muted`,children:ne(e.duration)}),(0,$.jsx)(`td`,{className:`max-w-xs truncate px-3 py-2.5 text-fg-muted`,title:e.summary||e.error||``,children:Y(e.summary||e.error,96)}),(0,$.jsx)(`td`,{className:`whitespace-nowrap px-3 py-2.5`,children:e.sessionKey?.trim()?(0,$.jsx)(`button`,{type:`button`,className:`text-xs font-medium text-accent hover:underline`,title:n.openChatTitle,"aria-label":n.openChatTitle,onClick:()=>Me(e.sessionKey),children:n.openChat}):(0,$.jsx)(`span`,{className:`text-fg-disabled`,children:`—`})})]},e.id))})]})}),t[21]=n.colChat,t[22]=n.colDetail,t[23]=n.colDuration,t[24]=n.colJob,t[25]=n.colStarted,t[26]=n.emptyHistoryHint,t[27]=n.emptyHistoryTitle,t[28]=n.noRunsYet,t[29]=n.openChat,t[30]=n.openChatTitle,t[31]=n.runHistoryHint,t[32]=n.status,t[33]=a,t[34]=o,t[35]=c,t[36]=i,t[37]=r,t[38]=l,t[39]=w):w=t[39];let T;return t[40]!==C||t[41]!==w?(T=(0,$.jsxs)(`section`,{"aria-labelledby":`cron-history-panel`,className:`flex flex-col gap-3`,children:[C,w]}),t[40]=C,t[41]=w,t[42]=T):T=t[42],T}function Ke(e){let t=(0,Q.c)(77),{job:n,c:r,localeTag:i,scheduleBadgeLabels:a,absorbCardClickJobIdRef:o,scheduleAbsorbNextMenuCardClick:s,onOpenDetail:c,onToggle:l,onEdit:u,onRunNow:d,onDelete:f}=e,p;t[0]===Symbol.for(`react.memo_cache_sentinel`)?(p=h(`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`),t[0]=p):p=t[0];let m,_;t[1]!==o||t[2]!==n||t[3]!==c?(m=()=>{if(o.current===n.id){o.current=null;return}c(n)},_=e=>{if(e.key===`Enter`||e.key===` `){if(e.preventDefault(),o.current===n.id){o.current=null;return}c(n)}},t[1]=o,t[2]=n,t[3]=c,t[4]=m,t[5]=_):(m=t[4],_=t[5]);let v=n.enabled,y=n.enabled?`justify-end bg-accent`:`justify-start bg-surface-hover`,b;t[6]===y?b=t[7]:(b=h(`inline-flex h-6 w-10 shrink-0 items-center rounded-full border border-edge p-0.5 transition-colors`,y),t[6]=y,t[7]=b);let x;t[8]!==n||t[9]!==l?(x=e=>{e.stopPropagation(),l(n,!n.enabled)},t[8]=n,t[9]=l,t[10]=x):x=t[10];let S;t[11]===Symbol.for(`react.memo_cache_sentinel`)?(S=(0,$.jsx)(`span`,{className:`size-4 rounded-full bg-surface-panel shadow-surface ring-1 ring-edge/40 dark:ring-edge/55`}),t[11]=S):S=t[11];let C;t[12]!==n.enabled||t[13]!==b||t[14]!==x?(C=(0,$.jsx)(`button`,{type:`button`,role:`switch`,"aria-checked":v,className:b,onClick:x,children:S}),t[12]=n.enabled,t[13]=b,t[14]=x,t[15]=C):C=t[15];let T;t[16]===Symbol.for(`react.memo_cache_sentinel`)?(T=(0,$.jsx)(z,{className:`size-4`,strokeWidth:1.75}),t[16]=T):T=t[16];let E;t[17]===r.jobCardMenuAria?E=t[18]:(E=(0,$.jsx)(Se,{asChild:!0,children:(0,$.jsx)(g,{type:`button`,variant:`ghost`,className:`size-8 shrink-0 p-0`,"aria-label":r.jobCardMenuAria,onClick:Je,children:T})}),t[17]=r.jobCardMenuAria,t[18]=E);let D;t[19]!==n||t[20]!==u||t[21]!==s?(D=()=>{s(n.id),u(n)},t[19]=n,t[20]=u,t[21]=s,t[22]=D):D=t[22];let O;t[23]!==r.edit||t[24]!==D?(O=(0,$.jsx)(we,{className:`cursor-pointer select-none rounded-lg px-2 py-1.5 text-sm text-fg outline-none data-highlighted:bg-surface-hover`,onSelect:D,children:r.edit}),t[23]=r.edit,t[24]=D,t[25]=O):O=t[25];let k;t[26]!==n||t[27]!==d||t[28]!==s?(k=()=>{s(n.id),d(n)},t[26]=n,t[27]=d,t[28]=s,t[29]=k):k=t[29];let A;t[30]!==r.runNow||t[31]!==k?(A=(0,$.jsx)(we,{className:`cursor-pointer select-none rounded-lg px-2 py-1.5 text-sm text-fg outline-none data-highlighted:bg-surface-hover`,onSelect:k,children:r.runNow}),t[30]=r.runNow,t[31]=k,t[32]=A):A=t[32];let j;t[33]!==n||t[34]!==f||t[35]!==s?(j=()=>{s(n.id),f(n)},t[33]=n,t[34]=f,t[35]=s,t[36]=j):j=t[36];let M;t[37]!==r.delete||t[38]!==j?(M=(0,$.jsx)(we,{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:j,children:r.delete}),t[37]=r.delete,t[38]=j,t[39]=M):M=t[39];let N;t[40]!==O||t[41]!==A||t[42]!==M?(N=(0,$.jsx)(Te,{children:(0,$.jsxs)(Ee,{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:qe,children:[O,A,M]})}),t[40]=O,t[41]=A,t[42]=M,t[43]=N):N=t[43];let P;t[44]!==E||t[45]!==N?(P=(0,$.jsxs)(Ce,{children:[E,N]}),t[44]=E,t[45]=N,t[46]=P):P=t[46];let F;t[47]!==P||t[48]!==C?(F=(0,$.jsxs)(`div`,{className:`flex items-start justify-between gap-2 px-4 pt-3`,children:[C,P]}),t[47]=P,t[48]=C,t[49]=F):F=t[49];let I=n.name||n.id,L;t[50]===I?L=t[51]:(L=(0,$.jsx)(`h3`,{className:`line-clamp-2 font-semibold text-fg`,children:I}),t[50]=I,t[51]=L);let R;t[52]===n?R=t[53]:(R=pe(n),t[52]=n,t[53]=R);let B;t[54]===n?B=t[55]:(B=pe(n),t[54]=n,t[55]=B);let V;t[56]===B?V=t[57]:(V=(0,$.jsx)(w,{content:B,compact:!0}),t[56]=B,t[57]=V);let H;t[58]!==R||t[59]!==V?(H=(0,$.jsx)(`div`,{className:`max-h-[4.5rem] overflow-hidden text-sm text-fg-muted [&_.markdown-body]:text-sm [&_.markdown-body]:leading-snug`,title:R,children:V}),t[58]=R,t[59]=V,t[60]=H):H=t[60];let U;t[61]!==L||t[62]!==H?(U=(0,$.jsxs)(`div`,{className:`flex flex-1 flex-col gap-2 px-4 pb-3 pt-2`,children:[L,H]}),t[61]=L,t[62]=H,t[63]=U):U=t[63];let G;t[64]===Symbol.for(`react.memo_cache_sentinel`)?(G=(0,$.jsx)(W,{className:`size-3.5 shrink-0`,strokeWidth:1.75,"aria-hidden":!0}),t[64]=G):G=t[64];let K;t[65]!==n||t[66]!==i||t[67]!==a?(K=ee(n,i,a),t[65]=n,t[66]=i,t[67]=a,t[68]=K):K=t[68];let q;t[69]===K?q=t[70]:(q=(0,$.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:[G,(0,$.jsx)(`span`,{className:`min-w-0 truncate`,children:K})]}),t[69]=K,t[70]=q);let J;return t[71]!==m||t[72]!==F||t[73]!==U||t[74]!==_||t[75]!==q?(J=(0,$.jsxs)(`article`,{role:`button`,tabIndex:0,className:p,onClick:m,onKeyDown:_,children:[F,U,q]}),t[71]=m,t[72]=F,t[73]=U,t[74]=_,t[75]=q,t[76]=J):J=t[76],J}function qe(e){return e.preventDefault()}function Je(e){return e.stopPropagation()}function Ye(e){let t=(0,Q.c)(134),{c:n,language:r,localeTag:i,scheduleBadgeLabels:o,loading:c,sortedSystemJobs:l,heartbeat:u,keepAwake:d,wakeSupported:f,onWakeUnsupportedClick:p,onKeepAwakeToggle:m,absorbCardClickJobIdRef:_,scheduleAbsorbNextMenuCardClick:v,onOpenDetail:b,onToggle:S,onEdit:C,onRunNow:w,onDelete:T}=e,E,D,O,k,A,j,M,N,P,F,I,L;if(t[0]!==n.disabled||t[1]!==n.enabled||t[2]!==n.keepAwake||t[3]!==n.systemHeartbeatEvery||t[4]!==n.systemHeartbeatHint||t[5]!==n.systemHeartbeatInterval||t[6]!==n.systemHeartbeatSettingsLink||t[7]!==n.systemHeartbeatStatus||t[8]!==n.systemHeartbeatTitle||t[9]!==n.systemTasksIntro||t[10]!==n.tabSystemTasks||t[11]!==n.wakeBanner||t[12]!==n.wakeLockUnavailable||t[13]!==u.enabled||t[14]!==u.intervalMs||t[15]!==d||t[16]!==r||t[17]!==i||t[18]!==m||t[19]!==p||t[20]!==f){let e=te(u.intervalMs,i,a(r).heartbeatSettings.intervalPresets);I=`cron-system-tasks-panel`,L=`flex flex-col gap-4`,t[33]===n.tabSystemTasks?D=t[34]:(D=(0,$.jsx)(`h2`,{id:`cron-system-tasks-panel`,className:`sr-only`,children:n.tabSystemTasks}),t[33]=n.tabSystemTasks,t[34]=D),t[35]===n.systemTasksIntro?O=t[36]:(O=(0,$.jsx)(`p`,{className:`text-sm text-fg-muted`,children:n.systemTasksIntro}),t[35]=n.systemTasksIntro,t[36]=O);let o;t[37]===Symbol.for(`react.memo_cache_sentinel`)?(o=(0,$.jsx)(H,{className:`mt-0.5 size-4 shrink-0 text-accent`,strokeWidth:1.75,"aria-hidden":!0}),t[37]=o):o=t[37];let c;t[38]===n.wakeBanner?c=t[39]:(c=(0,$.jsxs)(`div`,{className:`flex gap-3 text-sm text-fg`,children:[o,(0,$.jsx)(`p`,{className:`text-pretty text-fg-muted`,children:n.wakeBanner})]}),t[38]=n.wakeBanner,t[39]=c);let l;t[40]===n.keepAwake?l=t[41]:(l=(0,$.jsx)(`span`,{className:`text-sm text-fg`,children:n.keepAwake}),t[40]=n.keepAwake,t[41]=l);let _=!f,v=f?void 0:n.wakeLockUnavailable,y=d?`justify-end bg-accent`:`justify-start bg-surface-hover`,b=!f&&`cursor-not-allowed opacity-50`,S;t[42]!==y||t[43]!==b?(S=h(`inline-flex h-6 w-10 shrink-0 items-center rounded-full border border-edge p-0.5 transition-colors`,y,b),t[42]=y,t[43]=b,t[44]=S):S=t[44];let C;t[45]!==m||t[46]!==p||t[47]!==f?(C=()=>{f?m():p()},t[45]=m,t[46]=p,t[47]=f,t[48]=C):C=t[48];let w;t[49]===Symbol.for(`react.memo_cache_sentinel`)?(w=(0,$.jsx)(`span`,{className:`size-4 rounded-full bg-surface-panel shadow-surface ring-1 ring-edge/40 dark:ring-edge/55`}),t[49]=w):w=t[49];let T;t[50]!==d||t[51]!==_||t[52]!==v||t[53]!==S||t[54]!==C?(T=(0,$.jsx)(`button`,{type:`button`,role:`switch`,"aria-checked":d,disabled:_,title:v,className:S,onClick:C,children:w}),t[50]=d,t[51]=_,t[52]=v,t[53]=S,t[54]=C,t[55]=T):T=t[55];let R;t[56]!==l||t[57]!==T?(R=(0,$.jsxs)(`div`,{className:`flex shrink-0 items-center gap-2 sm:pl-4`,children:[l,T]}),t[56]=l,t[57]=T,t[58]=R):R=t[58],t[59]!==c||t[60]!==R?(k=(0,$.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:[c,R]}),t[59]=c,t[60]=R,t[61]=k):k=t[61],P=`rounded-xl border border-edge bg-surface-base p-4 dark:bg-surface-hover/20`;let z;t[62]===n.systemHeartbeatTitle?z=t[63]:(z=(0,$.jsx)(`h3`,{className:`text-sm font-semibold text-fg`,children:n.systemHeartbeatTitle}),t[62]=n.systemHeartbeatTitle,t[63]=z);let B;t[64]===n.systemHeartbeatHint?B=t[65]:(B=(0,$.jsx)(`p`,{className:`mt-1 text-xs text-fg-muted`,children:n.systemHeartbeatHint}),t[64]=n.systemHeartbeatHint,t[65]=B);let V;t[66]!==z||t[67]!==B?(V=(0,$.jsxs)(`div`,{children:[z,B]}),t[66]=z,t[67]=B,t[68]=V):V=t[68];let U;t[69]===Symbol.for(`react.memo_cache_sentinel`)?(U=(0,$.jsx)(x,{className:`size-3.5 opacity-70`,"aria-hidden":!0}),t[69]=U):U=t[69];let W;t[70]===n.systemHeartbeatSettingsLink?W=t[71]:(W=(0,$.jsx)(g,{type:`button`,variant:`ghost`,className:`shrink-0 gap-1 self-start px-2 py-1.5 text-xs`,asChild:!0,children:(0,$.jsxs)(s,{to:`/settings/heartbeat`,children:[n.systemHeartbeatSettingsLink,U]})}),t[70]=n.systemHeartbeatSettingsLink,t[71]=W),t[72]!==V||t[73]!==W?(F=(0,$.jsxs)(`div`,{className:`flex flex-col gap-1 sm:flex-row sm:items-start sm:justify-between`,children:[V,W]}),t[72]=V,t[73]=W,t[74]=F):F=t[74],M=`mt-3 grid gap-2 text-sm sm:grid-cols-2`;let G;t[75]===n.systemHeartbeatStatus?G=t[76]:(G=(0,$.jsx)(`dt`,{className:`text-xs font-medium text-fg-muted`,children:n.systemHeartbeatStatus}),t[75]=n.systemHeartbeatStatus,t[76]=G);let K=u.enabled?n.enabled:n.disabled,q;t[77]===K?q=t[78]:(q=(0,$.jsx)(`dd`,{className:`text-fg`,children:K}),t[77]=K,t[78]=q),t[79]!==G||t[80]!==q?(N=(0,$.jsxs)(`div`,{children:[G,q]}),t[79]=G,t[80]=q,t[81]=N):N=t[81],t[82]===n.systemHeartbeatInterval?j=t[83]:(j=(0,$.jsx)(`dt`,{className:`text-xs font-medium text-fg-muted`,children:n.systemHeartbeatInterval}),t[82]=n.systemHeartbeatInterval,t[83]=j),E=`text-fg`;let J;t[84]===Symbol.for(`react.memo_cache_sentinel`)?(J=/\{\{value\}\}/g,t[84]=J):J=t[84],A=n.systemHeartbeatEvery.replace(J,e),t[0]=n.disabled,t[1]=n.enabled,t[2]=n.keepAwake,t[3]=n.systemHeartbeatEvery,t[4]=n.systemHeartbeatHint,t[5]=n.systemHeartbeatInterval,t[6]=n.systemHeartbeatSettingsLink,t[7]=n.systemHeartbeatStatus,t[8]=n.systemHeartbeatTitle,t[9]=n.systemTasksIntro,t[10]=n.tabSystemTasks,t[11]=n.wakeBanner,t[12]=n.wakeLockUnavailable,t[13]=u.enabled,t[14]=u.intervalMs,t[15]=d,t[16]=r,t[17]=i,t[18]=m,t[19]=p,t[20]=f,t[21]=E,t[22]=D,t[23]=O,t[24]=k,t[25]=A,t[26]=j,t[27]=M,t[28]=N,t[29]=P,t[30]=F,t[31]=I,t[32]=L}else E=t[21],D=t[22],O=t[23],k=t[24],A=t[25],j=t[26],M=t[27],N=t[28],P=t[29],F=t[30],I=t[31],L=t[32];let R;t[85]!==E||t[86]!==A?(R=(0,$.jsx)(`dd`,{className:E,children:A}),t[85]=E,t[86]=A,t[87]=R):R=t[87];let z;t[88]!==R||t[89]!==j?(z=(0,$.jsxs)(`div`,{children:[j,R]}),t[88]=R,t[89]=j,t[90]=z):z=t[90];let B;t[91]!==z||t[92]!==M||t[93]!==N?(B=(0,$.jsxs)(`dl`,{className:M,children:[N,z]}),t[91]=z,t[92]=M,t[93]=N,t[94]=B):B=t[94];let V;t[95]!==B||t[96]!==P||t[97]!==F?(V=(0,$.jsxs)(`div`,{className:P,children:[F,B]}),t[95]=B,t[96]=P,t[97]=F,t[98]=V):V=t[98];let U;t[99]===n.systemDreamingTitle?U=t[100]:(U=(0,$.jsx)(`h3`,{className:`text-sm font-semibold text-fg`,children:n.systemDreamingTitle}),t[99]=n.systemDreamingTitle,t[100]=U);let W;t[101]===Symbol.for(`react.memo_cache_sentinel`)?(W=(0,$.jsx)(x,{className:`size-3.5 opacity-70`,"aria-hidden":!0}),t[101]=W):W=t[101];let G;t[102]===n.systemDreamingSettingsLink?G=t[103]:(G=(0,$.jsx)(g,{type:`button`,variant:`ghost`,className:`shrink-0 gap-1 self-start px-2 py-1.5 text-xs`,asChild:!0,children:(0,$.jsxs)(s,{to:`/settings/dreams`,children:[n.systemDreamingSettingsLink,W]})}),t[102]=n.systemDreamingSettingsLink,t[103]=G);let K;t[104]!==U||t[105]!==G?(K=(0,$.jsxs)(`div`,{className:`mb-2 flex flex-col gap-1 sm:flex-row sm:items-center sm:justify-between`,children:[U,G]}),t[104]=U,t[105]=G,t[106]=K):K=t[106];let q;t[107]===n.systemDreamingHint?q=t[108]:(q=(0,$.jsx)(`p`,{className:`mb-3 text-xs text-fg-muted`,children:n.systemDreamingHint}),t[107]=n.systemDreamingHint,t[108]=q);let J;t[109]!==_||t[110]!==n||t[111]!==c||t[112]!==i||t[113]!==T||t[114]!==C||t[115]!==b||t[116]!==w||t[117]!==S||t[118]!==v||t[119]!==o||t[120]!==l?(J=c&&l.length===0?(0,$.jsx)(`div`,{className:`flex justify-center py-12`,"aria-busy":`true`,children:(0,$.jsx)(y,{className:`size-8 animate-spin text-accent`,strokeWidth:1.75})}):l.length===0?(0,$.jsx)(`p`,{className:`rounded-lg border border-edge-subtle bg-surface-hover/30 px-3 py-4 text-sm text-fg-muted dark:border-edge-subtle`,children:n.systemDreamingEmpty}):(0,$.jsx)(`div`,{className:`grid gap-4 sm:grid-cols-2`,children:l.map(e=>(0,$.jsx)(Ke,{job:e,c:n,localeTag:i,scheduleBadgeLabels:o,absorbCardClickJobIdRef:_,scheduleAbsorbNextMenuCardClick:v,onOpenDetail:b,onToggle:S,onEdit:C,onRunNow:w,onDelete:T},e.id))}),t[109]=_,t[110]=n,t[111]=c,t[112]=i,t[113]=T,t[114]=C,t[115]=b,t[116]=w,t[117]=S,t[118]=v,t[119]=o,t[120]=l,t[121]=J):J=t[121];let Y;t[122]!==K||t[123]!==q||t[124]!==J?(Y=(0,$.jsxs)(`div`,{children:[K,q,J]}),t[122]=K,t[123]=q,t[124]=J,t[125]=Y):Y=t[125];let X;return t[126]!==D||t[127]!==O||t[128]!==k||t[129]!==V||t[130]!==Y||t[131]!==I||t[132]!==L?(X=(0,$.jsxs)(`section`,{"aria-labelledby":I,className:L,children:[D,O,k,V,Y]}),t[126]=D,t[127]=O,t[128]=k,t[129]=V,t[130]=Y,t[131]=I,t[132]=L,t[133]=X):X=t[133],X}function Xe(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 Ze=[`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 $e(e){return Qe.find(t=>t.templateId===e)}function et(e){let t=(0,Q.c)(21),{cron:n,localeTag:r,scheduleBadgeLabels:i,categoryFilter:a,onCategoryFilterChange:o,onSelectTemplate:s}=e,c;if(t[0]!==a||t[1]!==n||t[2]!==r||t[3]!==o||t[4]!==s||t[5]!==i){let e=a===`all`?[...Qe]:Qe.filter(e=>e.category===a),l=n.fromTemplate,u=a===`all`?`secondary`:`ghost`,d;t[7]===o?d=t[8]:(d=()=>o(`all`),t[7]=o,t[8]=d);let f;t[9]!==n.templateFilterAll||t[10]!==u||t[11]!==d?(f=(0,$.jsx)(g,{type:`button`,variant:u,className:`h-8 rounded-full px-3 py-1.5 text-xs`,onClick:d,children:n.templateFilterAll}),t[9]=n.templateFilterAll,t[10]=u,t[11]=d,t[12]=f):f=t[12];let p;t[13]!==a||t[14]!==n.templateCategories||t[15]!==o?(p=Ze.map(e=>(0,$.jsx)(g,{type:`button`,variant:a===e?`secondary`:`ghost`,className:`h-8 rounded-full px-3 py-1.5 text-xs`,onClick:()=>o(e),children:n.templateCategories[e]},e)),t[13]=a,t[14]=n.templateCategories,t[15]=o,t[16]=p):p=t[16];let m;t[17]!==n.fromTemplate||t[18]!==f||t[19]!==p?(m=(0,$.jsxs)(`div`,{className:`flex flex-wrap gap-2`,role:`group`,"aria-label":l,children:[f,p]}),t[17]=n.fromTemplate,t[18]=f,t[19]=p,t[20]=m):m=t[20],c=(0,$.jsxs)(`div`,{className:`flex w-full flex-col gap-4`,children:[m,e.length===0?(0,$.jsx)(`p`,{className:`text-center text-sm text-fg-muted`,children:n.templatesEmptyHint}):(0,$.jsx)(`div`,{className:`grid grid-cols-1 gap-3 sm:grid-cols-2 lg:grid-cols-3`,children:e.map(e=>{let t=Xe(n,e.templateId);if(!t)return null;let a=ee({schedule:e.defaultSchedule,timezone:void 0,next_run:void 0},r,i);return(0,$.jsxs)(`button`,{type:`button`,className:h(`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":`${n.templateCategories[e.category]} — ${t.title}`,children:[(0,$.jsx)(`span`,{className:`font-semibold text-fg`,children:t.title}),(0,$.jsx)(`span`,{className:`line-clamp-2 text-sm text-fg-muted`,children:t.description}),(0,$.jsx)(`span`,{className:`mt-1 flex items-center gap-1 text-xs text-fg-muted`,children:(0,$.jsx)(`span`,{className:`tabular-nums`,children:a})})]},e.templateId)})})]}),t[0]=a,t[1]=n,t[2]=r,t[3]=o,t[4]=s,t[5]=i,t[6]=c}else c=t[6];return c}function tt(e){let t=(0,Q.c)(49),{c:n,localeTag:r,scheduleBadgeLabels:i,loading:a,jobsCount:o,sortedJobs:s,templateCategoryFilter:c,onTemplateCategoryFilterChange:l,onSelectTemplate:u,keepAwake:d,wakeSupported:f,onWakeUnsupportedClick:p,onKeepAwakeToggle:m,absorbCardClickJobIdRef:_,scheduleAbsorbNextMenuCardClick:v,onOpenDetail:b,onToggle:x,onEdit:S,onAddJob:C,onRunNow:w,onDelete:T}=e,E;t[0]===n.tabMyTasks?E=t[1]:(E=(0,$.jsx)(`h2`,{id:`cron-tasks-panel`,className:`sr-only`,children:n.tabMyTasks}),t[0]=n.tabMyTasks,t[1]=E);let D;t[2]===Symbol.for(`react.memo_cache_sentinel`)?(D=(0,$.jsx)(H,{className:`mt-0.5 size-4 shrink-0 text-accent`,strokeWidth:1.75,"aria-hidden":!0}),t[2]=D):D=t[2];let O;t[3]===n.wakeBanner?O=t[4]:(O=(0,$.jsxs)(`div`,{className:`flex gap-3 text-sm text-fg`,children:[D,(0,$.jsx)(`p`,{className:`text-pretty text-fg-muted`,children:n.wakeBanner})]}),t[3]=n.wakeBanner,t[4]=O);let k;t[5]===n.keepAwake?k=t[6]:(k=(0,$.jsx)(`span`,{className:`text-sm text-fg`,children:n.keepAwake}),t[5]=n.keepAwake,t[6]=k);let A=!f,j=f?void 0:n.wakeLockUnavailable,M=d?`justify-end bg-accent`:`justify-start bg-surface-hover`,N=!f&&`cursor-not-allowed opacity-50`,P;t[7]!==M||t[8]!==N?(P=h(`inline-flex h-6 w-10 shrink-0 items-center rounded-full border border-edge p-0.5 transition-colors`,M,N),t[7]=M,t[8]=N,t[9]=P):P=t[9];let F;t[10]!==m||t[11]!==p||t[12]!==f?(F=()=>{f?m():p()},t[10]=m,t[11]=p,t[12]=f,t[13]=F):F=t[13];let I;t[14]===Symbol.for(`react.memo_cache_sentinel`)?(I=(0,$.jsx)(`span`,{className:`size-4 rounded-full bg-surface-panel shadow-surface ring-1 ring-edge/40 dark:ring-edge/55`}),t[14]=I):I=t[14];let L;t[15]!==d||t[16]!==F||t[17]!==A||t[18]!==j||t[19]!==P?(L=(0,$.jsx)(`button`,{type:`button`,role:`switch`,"aria-checked":d,disabled:A,title:j,className:P,onClick:F,children:I}),t[15]=d,t[16]=F,t[17]=A,t[18]=j,t[19]=P,t[20]=L):L=t[20];let R;t[21]!==L||t[22]!==k?(R=(0,$.jsxs)(`div`,{className:`flex shrink-0 items-center gap-2 sm:pl-4`,children:[k,L]}),t[21]=L,t[22]=k,t[23]=R):R=t[23];let z;t[24]!==R||t[25]!==O?(z=(0,$.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:[O,R]}),t[24]=R,t[25]=O,t[26]=z):z=t[26];let B;t[27]!==_||t[28]!==n||t[29]!==o||t[30]!==a||t[31]!==r||t[32]!==C||t[33]!==T||t[34]!==S||t[35]!==b||t[36]!==w||t[37]!==u||t[38]!==l||t[39]!==x||t[40]!==v||t[41]!==i||t[42]!==s||t[43]!==c?(B=a&&o===0?(0,$.jsx)(`div`,{className:`flex justify-center py-16`,"aria-busy":`true`,children:(0,$.jsx)(y,{className:`size-8 animate-spin text-accent`,strokeWidth:1.75})}):o===0?(0,$.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,$.jsx)(`div`,{className:`w-full max-w-6xl`,children:(0,$.jsx)(et,{cron:n,localeTag:r,scheduleBadgeLabels:i,categoryFilter:c,onCategoryFilterChange:l,onSelectTemplate:u})}),(0,$.jsx)(`div`,{className:`flex justify-center`,children:(0,$.jsx)(g,{type:`button`,variant:`primary`,onClick:C,children:n.emptyStateCta})})]}):(0,$.jsx)(`div`,{className:`grid gap-4 sm:grid-cols-2`,children:s.map(e=>(0,$.jsx)(Ke,{job:e,c:n,localeTag:r,scheduleBadgeLabels:i,absorbCardClickJobIdRef:_,scheduleAbsorbNextMenuCardClick:v,onOpenDetail:e=>void b(e),onToggle:(e,t)=>void x(e,t),onEdit:S,onRunNow:w,onDelete:T},e.id))}),t[27]=_,t[28]=n,t[29]=o,t[30]=a,t[31]=r,t[32]=C,t[33]=T,t[34]=S,t[35]=b,t[36]=w,t[37]=u,t[38]=l,t[39]=x,t[40]=v,t[41]=i,t[42]=s,t[43]=c,t[44]=B):B=t[44];let V;return t[45]!==E||t[46]!==z||t[47]!==B?(V=(0,$.jsxs)(`section`,{"aria-labelledby":`cron-tasks-panel`,className:`flex flex-col gap-4`,children:[E,z,B]}),t[45]=E,t[46]=z,t[47]=B,t[48]=V):V=t[48],V}function nt(e){let t=(0,Q.c)(23),{open:n,onOpenChange:r,c:i,localeTag:a,scheduleBadgeLabels:o,categoryFilter:s,onCategoryFilterChange:c,onSelectTemplate:h}=e,_;t[0]===Symbol.for(`react.memo_cache_sentinel`)?(_=(0,$.jsx)(u,{className:`xopc-dialog-overlay fixed inset-0 z-[62] bg-scrim`}),t[0]=_):_=t[0];let v;t[1]===i.fromTemplate?v=t[2]:(v=(0,$.jsx)(p,{className:`sr-only`,children:i.fromTemplate}),t[1]=i.fromTemplate,t[2]=v);let y;t[3]===Symbol.for(`react.memo_cache_sentinel`)?(y=(0,$.jsx)(b,{className:`size-5`,strokeWidth:1.75}),t[3]=y):y=t[3];let x;t[4]===i.close?x=t[5]:(x=(0,$.jsx)(m,{asChild:!0,children:(0,$.jsx)(g,{type:`button`,variant:`ghost`,className:`size-9 shrink-0 p-0`,"aria-label":i.close,children:y})}),t[4]=i.close,t[5]=x);let S;t[6]!==v||t[7]!==x?(S=(0,$.jsxs)(`div`,{className:`flex shrink-0 items-center justify-end border-b border-edge px-4 py-3`,children:[v,x]}),t[6]=v,t[7]=x,t[8]=S):S=t[8];let C;t[9]!==i||t[10]!==s||t[11]!==a||t[12]!==c||t[13]!==h||t[14]!==o?(C=(0,$.jsx)(`div`,{className:`min-h-0 flex-1 overflow-y-auto p-4`,children:(0,$.jsx)(et,{cron:i,localeTag:a,scheduleBadgeLabels:o,categoryFilter:s,onCategoryFilterChange:c,onSelectTemplate:h})}),t[9]=i,t[10]=s,t[11]=a,t[12]=c,t[13]=h,t[14]=o,t[15]=C):C=t[15];let w;t[16]!==S||t[17]!==C?(w=(0,$.jsxs)(l,{children:[_,(0,$.jsx)(`div`,{className:`fixed inset-0 z-[62] flex items-center justify-center p-4 pointer-events-none`,children:(0,$.jsxs)(d,{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:rt,children:[S,C]})})]}),t[16]=S,t[17]=C,t[18]=w):w=t[18];let T;return t[19]!==r||t[20]!==n||t[21]!==w?(T=(0,$.jsx)(f,{open:n,onOpenChange:r,children:w}),t[19]=r,t[20]=n,t[21]=w,t[22]=T):T=t[22],T}function rt(e){return e.preventDefault()}function it(){return{formOpen:!1,formMode:`add`,formJobId:null,formName:``,formSchedule:Oe,formChannel:`local`,formChatId:``,formMessage:``,formMessageMdMode:`edit`,messageEditorNonce:0,formSessionTarget:`main`,formAgentId:``,formAgentLocalOnly:!1,formWorkingDirectory:``,formModel:``,formSubmitting:!1}}function at(e,t){switch(t.type){case`patch`:return{...e,...t.patch};case`replace`:return t.state;case`setMessageMdMode`:return{...e,formMessageMdMode:t.mode,messageEditorNonce:t.mode===`edit`?e.messageEditorNonce+1:e.messageEditorNonce}}}function ot(e,t){let n=it();if(n.formOpen=!0,n.formMode=e?`edit`:`add`,n.formJobId=e?.id??null,!e)return n.formModel=t(),n;n.formName=e.name||``,n.formSchedule=e.schedule&&String(e.schedule).trim()||`*/5 * * * *`;let r=pe(e);n.formMessage=r??``,n.formSessionTarget=e.sessionTarget||`main`,n.formAgentId=(e.sessionTarget||`main`)===`isolated`&&e.agentId?.trim()?e.agentId.trim().toLowerCase():``,n.formWorkingDirectory=(e.sessionTarget||`main`)===`isolated`&&e.workingDirectory?.trim()?e.workingDirectory.trim():``;let i=e.payload?.kind===`agentTurn`&&e.payload.model?.trim()?e.payload.model.trim():``;n.formModel=e.model?.trim()||i||t();let a=e.delivery?.channel===`local`,o=(e.sessionTarget||`main`)===`isolated`&&!a&&(!e.delivery?.to||e.delivery.mode===`none`);if(n.formAgentLocalOnly=o,a)n.formChannel=`local`,n.formChatId=``;else if(e.delivery&&e.delivery.mode!==`none`&&e.delivery.to)n.formChannel=e.delivery.channel||`telegram`,n.formChatId=e.delivery.to||``;else if(o)n.formChannel=`telegram`,n.formChatId=``;else{let e=r.split(`:`);e.length>=3&&[`telegram`,`cli`,`gateway`,`local`].includes(e[0])?(n.formChannel=e[0],n.formChatId=e[1],n.formMessage=e.slice(2).join(`:`)):(n.formChannel=`telegram`,n.formChatId=``)}return n.formMessageMdMode=`edit`,n.messageEditorNonce=1,n}function st(e){let{m:t,defaultModelForForm:n,channels:r,chatAgents:i}=e,[a,o]=(0,Z.useReducer)(at,void 0,it),s=(0,Z.useRef)(!1),c=(0,Z.useMemo)(()=>new Set([`local`,...r.map(e=>e.name)]),[r]);if(a.formOpen&&a.formMode===`add`&&!c.has(a.formChannel)&&o({type:`patch`,patch:{formChannel:`local`}}),a.formOpen&&a.formMode===`add`&&!s.current){let e=n();e&&e!==a.formModel&&o({type:`patch`,patch:{formModel:e}})}let l=G(()=>de(a.formChannel),[a.formChannel],{enabled:a.formOpen&&a.formChannel!==`local`,initial:[],errorData:[]}),u=a.formChannel===`local`?[]:l.data,d=(0,Z.useMemo)(()=>{let e=new Set(i.map(e=>e.id)),t=[...i],n=a.formAgentId.trim().toLowerCase();return n&&!e.has(n)&&t.push({id:n}),t},[i,a.formAgentId]),f=a.formChannel!==`local`&&(a.formSessionTarget===`main`||a.formSessionTarget===`isolated`&&!a.formAgentLocalOnly),p=a.formSessionTarget===`main`||a.formSessionTarget===`isolated`&&!a.formAgentLocalOnly,m=!!a.formName.trim()&&!!a.formSchedule.trim()&&!!a.formMessage.trim()&&(!f||!!a.formChatId.trim()),h=(0,Z.useCallback)(e=>{s.current=!1,o({type:`replace`,state:ot(e,n)})},[n]),g=(0,Z.useCallback)(e=>{o({type:`setMessageMdMode`,mode:e})},[]),_=(0,Z.useCallback)(e=>{let r=$e(e),i=r?Xe(t.cron,e):void 0;return!r||!i?!1:(s.current=!1,o({type:`replace`,state:{...it(),formOpen:!0,formMode:`add`,formName:i.title,formSchedule:r.defaultSchedule,formMessage:i.prompt,formSessionTarget:r.defaultSessionTarget,formModel:n(),messageEditorNonce:1}}),!0)},[n,t.cron]),v=(0,Z.useCallback)(()=>{s.current=!1,o({type:`replace`,state:it()})},[]),y=(0,Z.useCallback)((e,t,n)=>{let r={formSessionTarget:e};e===`main`?(r.formAgentLocalOnly=!1,r.formAgentId=``,r.formWorkingDirectory=``):e===`isolated`&&!n&&(r.formModel=t()),o({type:`patch`,patch:r})},[]),b=(0,Z.useCallback)(e=>{o({type:`patch`,patch:{formChannel:e,formChatId:``,...e===`local`?{formAgentLocalOnly:!1}:{}}})},[]),x=(0,Z.useCallback)(e=>{s.current=!0,o({type:`patch`,patch:{formModel:e}})},[]),S=(0,Z.useCallback)(()=>{de(a.formChannel).then(l.setData)},[a.formChannel,l.setData]),C=(0,Z.useCallback)(e=>{o({type:`patch`,patch:e})},[]);return{formOpen:a.formOpen,formMode:a.formMode,formJobId:a.formJobId,formName:a.formName,formSchedule:a.formSchedule,formChannel:a.formChannel,formChatId:a.formChatId,formMessage:a.formMessage,formMessageMdMode:a.formMessageMdMode,messageEditorNonce:a.messageEditorNonce,formSessionTarget:a.formSessionTarget,formAgentId:a.formAgentId,formAgentLocalOnly:a.formAgentLocalOnly,formWorkingDirectory:a.formWorkingDirectory,formModel:a.formModel,formSubmitting:a.formSubmitting,sessionChatIds:u,setFormName:e=>C({formName:e}),setFormSchedule:e=>C({formSchedule:e}),setFormChatId:e=>C({formChatId:e}),setFormMessage:e=>C({formMessage:e}),setFormAgentId:e=>C({formAgentId:e}),setFormAgentLocalOnly:e=>C({formAgentLocalOnly:e}),setFormWorkingDirectory:e=>C({formWorkingDirectory:e}),setFormSubmitting:e=>C({formSubmitting:e}),canSubmit:m,needsDeliveryChat:f,showChannelPicker:p,cronAgentSelectOptions:d,openForm:h,closeForm:v,applyCronTemplate:_,setMessageMdMode:g,handleFormSessionTargetChange:y,handleFormChannelChange:b,handleFormModelUserChange:x,refreshRecipientsList:S}}function ct(e){let{onUnavailable:t}=e,[n,r]=(0,Z.useState)(!1),i=(0,Z.useRef)(null),a=(0,Z.useRef)(`none`),o=(0,Z.useRef)(n),s=typeof navigator<`u`&&`wakeLock`in navigator,c=s||O(),l=(0,Z.useCallback)(async()=>{if(a.current===`electron`){try{await window.electronAPI?.cron?.setDisplaySleepPrevented?.(!1)}catch{}a.current=`none`;return}try{await i.current?.release()}catch{}i.current=null,a.current=`none`},[]),u=(0,Z.useCallback)(async()=>{let e=typeof window<`u`?window.electronAPI?.cron?.setDisplaySleepPrevented:void 0;if(e)try{await e(!0),a.current=`electron`;return}catch{t(),r(!1);return}if(s)try{let e=await navigator.wakeLock.request(`screen`);i.current=e,a.current=`navigator`,e.addEventListener(`release`,()=>{i.current=null,a.current=`none`})}catch{t(),r(!1)}},[t,s]);return o.current=n,(0,Z.useEffect)(()=>{if(!n){l();return}u();let e=()=>{document.visibilityState===`visible`&&o.current&&u()};return document.addEventListener(`visibilitychange`,e),()=>{document.removeEventListener(`visibilitychange`,e),l()}},[n,u,l]),{keepAwake:n,setKeepAwake:r,featureAvailable:c}}function lt(e){let{hasToken:t,failMessages:n,isHistoryTab:r}=e,[i,a]=(0,Z.useState)([]),[o,s]=(0,Z.useState)([]),[c,l]=(0,Z.useState)([]),[u,d]=(0,Z.useState)(``),[f,p]=(0,Z.useState)([]),[m,h]=(0,Z.useState)(null),[g,_]=(0,Z.useState)([]),[v,y]=(0,Z.useState)(!1),[b,x]=(0,Z.useState)(!1),[S,C]=(0,Z.useState)(null),w=(0,Z.useCallback)(async()=>{x(!0),C(null);try{a(await ye())}catch(e){C(e instanceof Error?e.message:n.failedToLoadJobs)}finally{x(!1)}},[n.failedToLoadJobs]),T=(0,Z.useCallback)(async()=>{try{let[e,t,n,r,i]=await Promise.all([ue(),se(),oe(),R(),A().catch(()=>null)]);s(e),l(t),d(n.model||``),h(r.payload?.config??null),i&&p(i.items)}catch{}},[]),E=(0,Z.useCallback)(async()=>{y(!0);try{_(await ge(400))}catch{}finally{y(!1)}},[]);return(0,Z.useEffect)(()=>{t&&(w(),T())},[t,w,T]),(0,Z.useEffect)(()=>{if(!t)return;let e=()=>{R().then(e=>{h(e.payload?.config??null)})};return window.addEventListener(`config-reload`,e),()=>window.removeEventListener(`config-reload`,e)},[t]),(0,Z.useEffect)(()=>{!t||!r||E()},[t,r,E]),{jobs:i,channels:o,availableModels:c,defaultModel:u,chatAgents:f,gatewayConfigRaw:m,runHistory:g,runHistoryLoading:v,loading:b,error:S,setError:C,userCronJobs:(0,Z.useMemo)(()=>i.filter(e=>!ie(e)),[i]),systemCronJobs:(0,Z.useMemo)(()=>i.filter(e=>ie(e)),[i]),heartbeatFromConfig:(0,Z.useMemo)(()=>xe(m),[m]),loadJobs:w,loadAux:T,loadRunHistoryOnly:E,refreshAll:(0,Z.useCallback)(()=>{w(),T(),E()},[w,T,E])}}function ut(e,t){let n=[...e];return n.sort((e,n)=>{let r=new Date(e.created_at).getTime(),i=new Date(n.created_at).getTime();return t===`created_desc`?i-r:r-i}),n}function dt(e,t,n,r){let i=new Date,a=t===`day`?ke(i):t===`week`?Ae(i):je(i);return e.filter(e=>!(new Date(e.startedAt)<a||n&&e.jobId!==n||r&&e.status!==r))}var ft={mainTab:`myTasks`,jobSort:`created_desc`,historyRange:`day`,historyJobFilter:``,historyStatusFilter:``,detailOpen:!1,detailJob:null,detailHistory:[],detailLoading:!1,confirmOpen:!1,templatePickerOpen:!1,templateCategoryFilter:`all`};function pt(){let e=o(e=>e.language),t=a(e),n=t.cron,r=t.chat,s=!!i(e=>e.token),l=_(e=>e.resolved)===`dark`,u=e===`zh`?`zh-CN`:`en-US`,[d,f]=(0,Z.useReducer)(L,ft),{mainTab:p,jobSort:m,historyRange:h,historyJobFilter:g,historyStatusFilter:v,detailOpen:y,detailJob:b,detailHistory:x,detailLoading:S,confirmOpen:C,templatePickerOpen:w,templateCategoryFilter:T}=d,E=lt({hasToken:s,failMessages:{failedToLoadJobs:n.failedToLoadJobs},isHistoryTab:p===`history`}),{setError:D}=E,O=ct({onUnavailable:()=>D(n.wakeLockUnavailable)}),k=(0,Z.useCallback)(()=>E.defaultModel||(E.availableModels.length>0?E.availableModels[0].id:``),[E.defaultModel,E.availableModels]),A=st({m:t,defaultModelForForm:k,channels:E.channels,chatAgents:E.chatAgents}),j=(0,Z.useRef)(null),M=(0,Z.useRef)(null),N=(0,Z.useCallback)((e,t)=>{j.current=e,M.current=t,f({type:`patch`,patch:{confirmOpen:!0}})},[]),P=(0,Z.useCallback)(()=>{f({type:`patch`,patch:{confirmOpen:!1}}),M.current=null,j.current=null},[]),F=(0,Z.useRef)(null),I=(0,Z.useCallback)(e=>{F.current=e,window.setTimeout(()=>{F.current===e&&(F.current=null)},400)},[]),R=(0,Z.useCallback)(e=>{A.applyCronTemplate(e)&&f({type:`patch`,patch:{templatePickerOpen:!1}})},[A]),z=async()=>{if(!A.formName.trim()){D(n.nameRequired);return}if(!A.formSchedule.trim()||!A.formMessage.trim()){D(n.scheduleRequired);return}if(A.needsDeliveryChat&&!A.formChatId.trim()){D(n.chatIdRequired);return}A.setFormSubmitting(!0),D(null);try{let e=A.formMessage.trim(),t;t=A.formSessionTarget===`isolated`&&A.formAgentLocalOnly?{mode:`none`}:A.formChannel===`local`?{mode:`direct`,channel:`local`}:{mode:`direct`,channel:A.formChannel,to:A.formChatId.trim()};let n=A.formSessionTarget===`isolated`?{kind:`agentTurn`,message:e,...A.formModel.trim()?{model:A.formModel.trim()}:{}}:{kind:`systemEvent`,text:e},r=A.formModel.trim(),i=A.formAgentId.trim().toLowerCase(),a=A.formSessionTarget===`main`?null:i||null,o=A.formWorkingDirectory.trim(),s={name:A.formName.trim(),schedule:A.formSchedule.trim(),sessionTarget:A.formSessionTarget,model:A.formSessionTarget===`isolated`&&r?r:void 0,delivery:t,payload:n,...A.formMode===`edit`?{agentId:a,workingDirectory:A.formSessionTarget===`isolated`&&o||null}:{...A.formSessionTarget===`isolated`&&i?{agentId:i}:{},...A.formSessionTarget===`isolated`&&o?{workingDirectory:o}:{}}};if(A.formMode===`edit`&&A.formJobId)await fe(A.formJobId,s);else{let{schedule:e,agentId:t,workingDirectory:n,...r}=s;await ve(e,{...r,...t==null?{}:{agentId:t},...n?{workingDirectory:n}:{}})}A.closeForm(),await E.loadJobs(),await E.loadAux()}catch(e){D(e instanceof Error?e.message:A.formMode===`edit`?n.failedToUpdateJob:n.failedToCreateJob)}finally{A.setFormSubmitting(!1)}},B=async e=>{f({type:`patch`,patch:{detailOpen:!0,detailJob:e,detailLoading:!0,detailHistory:[]}});try{let t=await _e(e.id);t&&f({type:`patch`,patch:{detailJob:t,detailHistory:await me(e.id,20)}})}catch{}finally{f({type:`patch`,patch:{detailLoading:!1}})}},V=(0,Z.useCallback)(()=>{f({type:`patch`,patch:{detailOpen:!1,detailJob:null}})},[]),H=(0,Z.useCallback)(()=>{f({type:`patch`,patch:{templateCategoryFilter:`all`,templatePickerOpen:!0}})},[]),U=async(e,t)=>{try{await he(e.id,t),await Promise.all([E.loadJobs(),E.loadAux()])}catch(e){D(e instanceof Error?e.message:n.failedToToggleJob)}},W=async()=>{let e=M.current,t=j.current;if(!(!e||!t)){P();try{t===`run`?await le(e):(await ce(e),b?.id===e&&f({type:`patch`,patch:{detailOpen:!1,detailJob:null}})),await Promise.all([E.loadJobs(),E.loadAux(),E.loadRunHistoryOnly()])}catch(e){D(e instanceof Error?e.message:n.actionFailed)}}};(0,Z.useEffect)(()=>{let e=e=>{e.key===`Escape`&&(A.formOpen?A.closeForm():y&&f({type:`patch`,patch:{detailOpen:!1,detailJob:null}}))};return document.addEventListener(`keydown`,e),()=>document.removeEventListener(`keydown`,e)},[A,y]);let G=(0,Z.useMemo)(()=>({running:n.execStatusRunning,success:n.execStatusSuccess,failed:n.execStatusFailed,cancelled:n.execStatusCancelled}),[n.execStatusCancelled,n.execStatusFailed,n.execStatusRunning,n.execStatusSuccess]),K=(0,Z.useMemo)(()=>ut(E.userCronJobs,m),[E.userCronJobs,m]),q=(0,Z.useMemo)(()=>ut(E.systemCronJobs,m),[E.systemCronJobs,m]),J=(0,Z.useMemo)(()=>dt(E.runHistory,h,g,v),[E.runHistory,h,g,v]),Y=n.scheduleBadge,{pathname:X}=c(),ee=X.startsWith(`/settings/`);return s?(0,$.jsxs)($.Fragment,{children:[(0,$.jsx)(mt,{hasToken:s,c:n,loading:E.loading,runHistoryLoading:E.runHistoryLoading,onRefresh:E.refreshAll,onOpenTemplatePicker:H,onAddJob:()=>A.openForm()}),(0,$.jsxs)(`div`,{className:`flex min-h-0 min-w-0 flex-1 flex-col bg-surface-panel`,children:[(0,$.jsxs)(`div`,{className:`mx-auto flex w-full max-w-app-main flex-col gap-6 px-4 py-6 sm:px-8`,children:[E.error?(0,$.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:E.error}):null,(0,$.jsx)(`header`,{className:`flex flex-col gap-4`,children:(0,$.jsxs)(`div`,{className:`min-w-0`,children:[(0,$.jsx)(`h1`,{className:`text-xl font-semibold tracking-tight text-fg`,children:n.title}),(0,$.jsx)(`p`,{className:`mt-1 max-w-2xl text-sm text-fg-muted`,children:n.subtitle})]})}),ee?(0,$.jsx)(`div`,{className:`flex flex-wrap items-center justify-end gap-2 border-b border-edge-subtle pb-3 dark:border-edge-subtle`,children:(0,$.jsx)(We,{c:n,loading:E.loading,runHistoryLoading:E.runHistoryLoading,onRefresh:E.refreshAll,onOpenTemplatePicker:H,onAddJob:()=>A.openForm()})}):null,(0,$.jsx)(He,{c:n,mainTab:p,onMainTabChange:e=>f({type:`patch`,patch:{mainTab:e}}),jobSort:m,onJobSortChange:e=>f({type:`patch`,patch:{jobSort:e}}),historyRange:h,onHistoryRangeChange:e=>f({type:`patch`,patch:{historyRange:e}}),historyJobFilter:g,onHistoryJobFilterChange:e=>f({type:`patch`,patch:{historyJobFilter:e}}),historyStatusFilter:v,onHistoryStatusFilterChange:e=>f({type:`patch`,patch:{historyStatusFilter:e}}),jobs:E.jobs}),p===`myTasks`?(0,$.jsx)(tt,{c:n,localeTag:u,scheduleBadgeLabels:Y,loading:E.loading,jobsCount:E.userCronJobs.length,sortedJobs:K,templateCategoryFilter:T,onTemplateCategoryFilterChange:e=>f({type:`patch`,patch:{templateCategoryFilter:e}}),onSelectTemplate:R,keepAwake:O.keepAwake,wakeSupported:O.featureAvailable,onWakeUnsupportedClick:()=>D(n.wakeLockUnavailable),onKeepAwakeToggle:()=>O.setKeepAwake(e=>!e),absorbCardClickJobIdRef:F,scheduleAbsorbNextMenuCardClick:I,onOpenDetail:e=>void B(e),onToggle:(e,t)=>void U(e,t),onEdit:e=>A.openForm(e),onAddJob:()=>A.openForm(),onRunNow:e=>N(`run`,e.id),onDelete:e=>N(`delete`,e.id)}):p===`systemTasks`?(0,$.jsx)(Ye,{c:n,language:e,localeTag:u,scheduleBadgeLabels:Y,loading:E.loading,sortedSystemJobs:q,heartbeat:E.heartbeatFromConfig,keepAwake:O.keepAwake,wakeSupported:O.featureAvailable,onWakeUnsupportedClick:()=>D(n.wakeLockUnavailable),onKeepAwakeToggle:()=>O.setKeepAwake(e=>!e),absorbCardClickJobIdRef:F,scheduleAbsorbNextMenuCardClick:I,onOpenDetail:e=>void B(e),onToggle:(e,t)=>void U(e,t),onEdit:e=>A.openForm(e),onRunNow:e=>N(`run`,e.id),onDelete:e=>N(`delete`,e.id)}):(0,$.jsx)(Ge,{c:n,runHistoryLoading:E.runHistoryLoading,runHistory:E.runHistory,filteredRunHistory:J,jobs:E.jobs,onRefreshHistory:()=>void E.loadRunHistoryOnly(),onOpenJobDetail:e=>void B(e),statusLabels:G})]}),(0,$.jsx)(ze,{open:A.formOpen,onRequestClose:A.closeForm,c:n,chatM:r,agentsMessages:t.agentsSettings,isDark:l,channels:E.channels,sessionChatIds:A.sessionChatIds,cronAgentSelectOptions:A.cronAgentSelectOptions,defaultModelResolver:k,formMode:A.formMode,formJobId:A.formJobId,formName:A.formName,onFormNameChange:A.setFormName,formSchedule:A.formSchedule,onFormScheduleChange:A.setFormSchedule,formSubmitting:A.formSubmitting,formSessionTarget:A.formSessionTarget,onFormSessionTargetChange:A.handleFormSessionTargetChange,formAgentLocalOnly:A.formAgentLocalOnly,onFormAgentLocalOnlyChange:A.setFormAgentLocalOnly,formModel:A.formModel,onFormModelUserChange:A.handleFormModelUserChange,formAgentId:A.formAgentId,onFormAgentIdChange:A.setFormAgentId,formWorkingDirectory:A.formWorkingDirectory,onFormWorkingDirectoryChange:A.setFormWorkingDirectory,formChannel:A.formChannel,onFormChannelChange:A.handleFormChannelChange,formChatId:A.formChatId,onFormChatIdChange:A.setFormChatId,formMessage:A.formMessage,onFormMessageChange:A.setFormMessage,formMessageMdMode:A.formMessageMdMode,onSetMessageMdMode:A.setMessageMdMode,messageEditorNonce:A.messageEditorNonce,needsDeliveryChat:A.needsDeliveryChat,showChannelPicker:A.showChannelPicker,canSubmit:A.canSubmit,onSubmit:()=>void z(),onRefreshRecipients:A.refreshRecipientsList}),(0,$.jsx)(nt,{open:w,onOpenChange:e=>{f({type:`patch`,patch:{templatePickerOpen:e,...e?{templateCategoryFilter:`all`}:{}}})},c:n,localeTag:u,scheduleBadgeLabels:Y,categoryFilter:T,onCategoryFilterChange:e=>f({type:`patch`,patch:{templateCategoryFilter:e}}),onSelectTemplate:R}),(0,$.jsx)(Le,{open:y,onDismiss:V,detailJob:b,detailLoading:S,detailHistory:x,c:n,chatWorkingDirNotSet:r.workingDirectory.notSet,statusLabels:G}),(0,$.jsx)(De,{open:C,onOpenChange:e=>f({type:`patch`,patch:{confirmOpen:e}}),action:j.current,c:n,onDismiss:P,onConfirm:W})]})]}):(0,$.jsxs)($.Fragment,{children:[(0,$.jsx)(mt,{hasToken:s,c:n,loading:E.loading,runHistoryLoading:E.runHistoryLoading,onRefresh:E.refreshAll,onOpenTemplatePicker:H,onAddJob:()=>A.openForm()}),(0,$.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})]})}function mt(e){let t=(0,Q.c)(16),{hasToken:n,c:r,loading:i,runHistoryLoading:a,onRefresh:o,onOpenTemplatePicker:s,onAddJob:l}=e,{pathname:u}=c(),d;t[0]===u?d=t[1]:(d=u.startsWith(`/settings/`),t[0]=u,t[1]=d);let f=d,p=P(gt),m=P(ht),h;t[2]!==r||t[3]!==i||t[4]!==l||t[5]!==s||t[6]!==o||t[7]!==a?(h=(0,$.jsx)(We,{c:r,loading:i,runHistoryLoading:a,onRefresh:o,onOpenTemplatePicker:s,onAddJob:l}),t[2]=r,t[3]=i,t[4]=l,t[5]=s,t[6]=o,t[7]=a,t[8]=h):h=t[8];let g=h,_,v;return t[9]!==m||t[10]!==g||t[11]!==n||t[12]!==f||t[13]!==p?(_=()=>!n||f?(m(),()=>m()):(p({startExtra:null,main:null,end:g}),()=>m()),v=[m,g,n,f,p],t[9]=m,t[10]=g,t[11]=n,t[12]=f,t[13]=p,t[14]=_,t[15]=v):(_=t[14],v=t[15]),(0,Z.useLayoutEffect)(_,v),null}function ht(e){return e.clearPageHeader}function gt(e){return e.setPageHeader}export{pt as CronPage};
|
|
2
|
+
//# sourceMappingURL=cron-page-BoNRJNVV.js.map
|