@michengai/dsh-automation 1.0.5 → 1.0.7

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/lib/client.js CHANGED
@@ -1,6 +1,6 @@
1
1
  window.__ModuleLoader__.load({ id: "@michengai/dsh-automation", factory: (require) => {
2
2
  var module = { exports: {} }; var exports = module.exports;
3
- "use strict";var gr=Object.create;var We=Object.defineProperty;var yr=Object.getOwnPropertyDescriptor;var br=Object.getOwnPropertyNames;var wr=Object.getPrototypeOf,vr=Object.prototype.hasOwnProperty;var kr=(e,t)=>{for(var n in t)We(e,n,{get:t[n],enumerable:!0})},nn=(e,t,n,o)=>{if(t&&typeof t=="object"||typeof t=="function")for(let r of br(t))!vr.call(e,r)&&r!==n&&We(e,r,{get:()=>t[r],enumerable:!(o=yr(t,r))||o.enumerable});return e};var Fe=(e,t,n)=>(n=e!=null?gr(wr(e)):{},nn(t||!e||!e.__esModule?We(n,"default",{value:e,enumerable:!0}):n,e)),Sr=e=>nn(We({},"__esModule",{value:!0}),e);var $s={};kr($s,{apply:()=>js,inject:()=>Hs,name:()=>Ls});module.exports=Sr($s);var re=require("react");var q=require("react");function on(e,t){return t(`run.trigger.${e}`)}var J=class extends Error{constructor(n){super(n);this.key=n}},xr=/^[a-z0-9]+(?:-[a-z0-9]+)*$/;function je(e){return`/${xr.test(e.name)?e.name:e.id}`}function Tr(e,t,n){let o=t.startsWith("/")?t:`/${t}`,r=o.replace(/[.*+?^${}()|[\]\\]/g,"\\$&");if(new RegExp(`(^|\\s)${r}(?=\\s|$)`).test(e))return{text:e,caret:Math.min(Math.max(n,0),e.length)};let i=Math.min(Math.max(n,0),e.length),s=e.slice(0,i),l=e.slice(i),a=`${s.length>0&&!/\s$/.test(s)?" ":""}${o} `;return{text:s+a+l,caret:s.length+a.length}}function wt(e,t){let n=Math.min(Math.max(t,0),e.length),o=/(?:^|\s)\/([^\s/]*)$/.exec(e.slice(0,n));if(o===null)return;let r=o[1]??"";return{start:n-r.length-1,query:r}}function rn(e,t){let n=t.trim().toLowerCase();return n===""?[...e]:e.filter(o=>o.id.toLowerCase().includes(n)||o.name.toLowerCase().includes(n))}function sn(e,t,n){let o=wt(e,t),r=n.startsWith("/")?n:`/${n}`;return o===void 0?Tr(e,r,t):{text:`${e.slice(0,o.start)}${r} ${e.slice(t)}`,caret:o.start+r.length+1}}function an(e,t){let n=new Set(t.map(s=>je(s).slice(1))),o=[],r=/(^|\s)(\/[a-z0-9]+(?:-[a-z0-9]+)*)(?=\s|$)/gi,i=0;for(let s of e.matchAll(r)){let l=s[1]??"",d=s[2]??"",a=(s.index??0)+l.length;n.has(d.slice(1))&&(a>i&&o.push({kind:"text",text:e.slice(i,a)}),o.push({kind:"skill",text:d}),i=a+d.length)}return(i<e.length||o.length===0)&&o.push({kind:"text",text:e.slice(i)}),o}function dn(e=new Date){let t=new Date(e.getTime()+36e5);t.setMinutes(0,0,0);let n=t.getTimezoneOffset()*6e4;return new Date(t.getTime()-n).toISOString().slice(0,16)}function vt(e=new Date,t=[],n,o=""){return{name:"",prompt:"",scheduleKind:"daily",onceAt:dn(e),everyMinutes:"60",maxConcurrentRuns:"1",intervalAnchor:"",time:"09:00",weekdays:[1,2,3,4,5],hourlyMinute:"00",monthDay:"1",customDays:"2",timeZone:Intl.DateTimeFormat().resolvedOptions().timeZone||"Asia/Shanghai",permission:o,workspaceId:t[0]?.id??"",modelKey:n==null?"default":`${n.provider}::${n.model}`,reasoningEffort:n?.reasoning?.defaultEffort??"none",skills:[]}}function ln(e,t,n,o=new Date,r={}){let i=Number(e.maxConcurrentRuns);if(!Number.isSafeInteger(i)||i<1)throw new J("form.error.maxConcurrentRuns");let s=e.name.trim(),l=e.prompt.trim();if(s==="")throw new J("form.error.name");if(l==="")throw new J("form.error.prompt");let d=t.find(p=>p.id===e.workspaceId);if(d===void 0)throw new J("form.error.workspace");let a;switch(e.scheduleKind){case"once":{let p=new Date(e.onceAt);if(!Number.isFinite(p.getTime())||r.allowPastOnce!==!0&&p.getTime()<=o.getTime())throw new J("form.error.once");a={kind:"once",at:p.toISOString(),timeZone:e.timeZone};break}case"interval":{let p=Number(e.everyMinutes);if(!Number.isInteger(p)||p<1||p>43200)throw new J("form.error.interval");a={kind:"interval",everyMinutes:p,anchor:e.intervalAnchor.trim()||o.toISOString(),timeZone:e.timeZone};break}case"daily":a={kind:"daily",time:e.time,timeZone:e.timeZone};break;case"weekly":if(e.weekdays.length===0)throw new J("form.error.weekdays");a={kind:"weekly",time:e.time,weekdays:[...e.weekdays].sort((p,T)=>p-T),timeZone:e.timeZone};break;case"hourly":{let p=Number(e.hourlyMinute);if(!Number.isInteger(p)||p<0||p>59)throw new J("form.error.interval");a={kind:"hourly",minute:p,timeZone:e.timeZone};break}case"monthly":{let p=Number(e.monthDay);if(!Number.isInteger(p)||p<1||p>31)throw new J("form.error.interval");a={kind:"monthly",day:p,time:e.time,timeZone:e.timeZone};break}case"custom":{let p=Number(e.customDays);if(!Number.isInteger(p)||p<1)throw new J("form.error.interval");a={kind:"custom",everyDays:p,time:e.time,timeZone:e.timeZone};break}}let f=n.find(p=>`${p.provider}::${p.model}`===e.modelKey);return{name:s,prompt:l,schedule:a,timeZone:e.timeZone,permission:e.permission,maxConcurrentRuns:i,workspaceId:d.id,cwd:d.path,...f===void 0?{provider:null,model:null}:{provider:f.provider,model:f.model},reasoningEffort:e.reasoningEffort==="none"?null:e.reasoningEffort}}function cn(e,t,n){let o=Date.parse(e);if(!Number.isFinite(o))return e;let r=Math.round((o-t.getTime())/6e4),i=Math.abs(r);if(i<1)return n("time.now");let s=r>0;if(i<60)return n(s?"time.inMinute":"time.minuteAgo",{count:i});let l=Math.round(i/60);if(l<24)return n(s?"time.inHour":"time.hourAgo",{count:l});let d=Math.round(l/24);return n(s?"time.inDay":"time.dayAgo",{count:d})}function qe(e,t){switch(e.kind){case"once":return t("schedule.onceAt",{time:new Date(e.at).toLocaleString()});case"interval":return t("schedule.everyMinutes",{count:e.everyMinutes});case"daily":return t("schedule.dailyAt",{time:e.time});case"weekly":{let n=e.weekdays.map(o=>t(`day.${o}`)).join("\u3001");return t("schedule.weeklyAt",{days:n,time:e.time})}case"hourly":return t("schedule.hourlyAt",{minute:String(e.minute).padStart(2,"0")});case"monthly":return t("schedule.monthlyAt",{day:e.day,time:e.time});case"custom":return t("schedule.customAt",{count:e.everyDays,time:e.time})}}function $e(e,t,n){let o=Date.parse(e)-t.getTime();if(!Number.isFinite(o)||o<=0)return n("time.now");let r=Math.max(1,Math.ceil(o/6e4));if(r<60)return n("time.withinMinute",{count:r});let i=Math.ceil(r/60);return i<24?n("time.withinHour",{count:i}):n("time.withinDay",{count:Math.ceil(i/24)})}function un(e,t){if(e===void 0||t===void 0)return;let n=(Date.parse(t)-Date.parse(e))/1e3;if(!(!Number.isFinite(n)||n<0))return`${n.toFixed(1)}s`}function pn(e){let t=new Date(e);return Number.isNaN(t.getTime())?e:t.toLocaleTimeString([],{hour:"2-digit",minute:"2-digit",hour12:!1})}var mn=["succeeded","failed","interrupted","running","queued","skipped","cancelled"];function Be(e){let t=Date.parse(e);return Number.isFinite(t)?t:0}function Ke(e,t,n){let o=n==="asc"?1:-1;return e.slice().sort((r,i)=>{if(t==="planned"){let l=r.nextRunAt,d=i.nextRunAt;if(l===void 0||d===void 0)return l===void 0&&d===void 0?r.name.localeCompare(i.name)||r.id.localeCompare(i.id):l===void 0?1:-1;let a=Be(l)-Be(d);return a!==0?a*o:r.name.localeCompare(i.name)||r.id.localeCompare(i.id)}let s=Be(r.createdAt)-Be(i.createdAt);return s!==0?s*o:r.id.localeCompare(i.id)})}var Ve="dsh-automation.sort-default.settings",Ue="dsh-automation.sort-default.overview";function be(e,t){if(e!==void 0)try{let n=e.getItem(t);if(n===null)return;let o=JSON.parse(n);return o.key!=="created"&&o.key!=="planned"||o.direction!=="asc"&&o.direction!=="desc"?void 0:{key:o.key,direction:o.direction}}catch{return}}function fn(e,t,n,o){e.setItem(t,JSON.stringify({key:n,direction:o}))}function hn(e,t,n,o){let r=new Map;for(let i of e){let s=new Date(i.finishedAt??i.startedAt??i.scheduledFor);if(Number.isNaN(s.getTime()))continue;let l;if(t==="month")l=`${s.getFullYear()}-${String(s.getMonth()+1).padStart(2,"0")}`;else if(t==="week"){let a=Ar(s);l=ze(a)}else l=ze(s);let d=r.get(l)??[];d.push(i),r.set(l,d)}return[...r.entries()].map(([i,s])=>({key:i,label:s[0]===void 0?i:t==="month"?o("history.month",{month:i.replace("-","/")}):t==="week"?o("history.week",{date:i.slice(5).replace("-","/")}):i===ze(n)?o("history.today"):i===ze(new Date(n.getTime()-864e5))?o("history.yesterday"):o("history.date",{date:i.slice(5).replace("-","/")}),items:s}))}function ze(e){return`${e.getFullYear()}-${String(e.getMonth()+1).padStart(2,"0")}-${String(e.getDate()).padStart(2,"0")}`}function Ar(e){let t=new Date(e),n=t.getDay(),o=n===0?6:n-1;return t.setHours(0,0,0,0),t.setDate(t.getDate()-o),t}function gn(e,t=[],n,o=e.permission){let r=vt(new Date,t,n,o),i=e.schedule,s=e.provider&&e.model?`${e.provider}::${e.model}`:"default",l={...r,name:e.name,prompt:e.prompt,permission:e.permission,maxConcurrentRuns:String(e.maxConcurrentRuns??1),workspaceId:e.workspaceId??r.workspaceId,modelKey:s,reasoningEffort:e.reasoningEffort??"none",timeZone:e.timeZone||i.timeZone||r.timeZone};switch(i.kind){case"once":return{...l,scheduleKind:"once",onceAt:Er(i.at)};case"interval":return{...l,scheduleKind:"interval",everyMinutes:String(i.everyMinutes),intervalAnchor:i.anchor??""};case"hourly":return{...l,scheduleKind:"hourly",hourlyMinute:String(i.minute).padStart(2,"0")};case"daily":return{...l,scheduleKind:"daily",time:i.time};case"weekly":return{...l,scheduleKind:"weekly",time:i.time,weekdays:[...i.weekdays]};case"monthly":return{...l,scheduleKind:"monthly",time:i.time,monthDay:String(i.day)};case"custom":return{...l,scheduleKind:"custom",time:i.time,customDays:String(i.everyDays)}}}function Er(e){let t=new Date(e);if(Number.isNaN(t.getTime()))return dn();let n=t.getTimezoneOffset()*6e4;return new Date(t.getTime()-n).toISOString().slice(0,16)}var Oe=class extends Error{code="workspace/picker-unavailable";constructor(){super("workspace picker unavailable"),this.name="WorkspacePickerUnavailableError"}};function Se(e,t){if(!(e===null||typeof e!="object"&&typeof e!="function"))try{return Reflect.get(e,t)}catch{return}}function Ge(e,t){if(e===null||typeof e!="object")return;let n;try{n=Reflect.get(e,"reflect")}catch{n=void 0}let o=Se(n,"get");if(typeof o=="function")try{let i=o.call(n,t);if(i!==void 0)return i}catch{}let r=Se(e,"get");if(typeof r=="function")try{let i=r.call(e,t);if(i!==void 0)return i}catch{return}if(typeof o!="function")try{return Se(e,t)}catch{return}}function bn(e){if(typeof e=="string"&&e.trim()!=="")return e;if(e===null||typeof e!="object"||Reflect.get(e,"canceled")===!0)return;let t=Reflect.get(e,"path");if(typeof t=="string"&&t.trim()!=="")return t;let n=Reflect.get(e,"filePaths"),o=Array.isArray(n)?n[0]:void 0;return typeof o=="string"&&o.trim()!==""?o:void 0}async function yn(e){let t=Se(e,"pickDirectory");if(typeof t=="function")return{picked:bn(await t.call(e))}}async function kt(e,t){let n=Ge(e,"workspaces"),o=Se(n,"create");if(typeof o!="function")return!1;try{return await o.call(n,{path:t}),!0}catch{return!1}}async function St(e){let t;try{t=Reflect.get(globalThis,"__DSH_DIRECTORY_PICKER__")}catch{t=void 0}let n=Se(t,"pick");if(typeof n=="function")return bn(await n.call(t));for(let o of["uiWorkspace","dialog","workspaces"]){let r=await yn(Ge(e,o));if(r!==void 0)return r.picked}try{let o=await yn(Se(e,"workspaces"));if(o!==void 0)return o.picked}catch{}throw new Oe}var Rr={year:"numeric",month:"2-digit",day:"2-digit",hour:"2-digit",minute:"2-digit",hourCycle:"h23"},wn=new Map;function Ir(e){let t=wn.get(e);if(t!==void 0)return t;let n=new Intl.DateTimeFormat("en-CA",{...Rr,timeZone:e});return wn.set(e,n),n}function vn(e,t){let n=new Date(e);if(Number.isNaN(n.getTime()))return e;if(t===void 0){let o=`${n.getFullYear()}-${String(n.getMonth()+1).padStart(2,"0")}-${String(n.getDate()).padStart(2,"0")}`,r=`${String(n.getHours()).padStart(2,"0")}:${String(n.getMinutes()).padStart(2,"0")}`;return`${o} ${r}`}try{let o=Ir(t).formatToParts(n),r=f=>o.find(p=>p.type===f)?.value,[i,s,l,d,a]=["year","month","day","hour","minute"].map(f=>r(f));return[i,s,l,d,a].some(f=>f===void 0)?e:`${i}-${s}-${l} ${d}:${a}`}catch{return e}}var Ae="dsh-automation-session-",xt="dsh-automation-task:",Ze="dsh-native-sidebar.tab";function Tt(e,t){let n=new Map,o=new Map;for(let s of e)n.set(s.id,s.name),s.timeZone!==void 0&&o.set(s.id,s.timeZone);for(let s of t){let l=(s.automationName||"").trim();l!==""&&l!==s.automationId&&!n.has(s.automationId)&&n.set(s.automationId,l)}let r=[],i=new Set;for(let s of e)i.has(s.id)||(r.push(s.id),i.add(s.id));for(let s of t)s.sessionId===void 0||s.sessionId===""||i.has(s.automationId)||(r.push(s.automationId),i.add(s.automationId));return r.map(s=>{let l=n.get(s)??s;return{id:s,name:l,sessions:t.filter(d=>d.automationId===s&&d.sessionId!==void 0&&d.sessionId!=="").slice().sort((d,a)=>Date.parse(a.startedAt??a.scheduledFor)-Date.parse(d.startedAt??d.scheduledFor)).map(d=>({id:d.sessionId,running:d.status==="running"||d.status==="queued",label:vn(d.startedAt??d.scheduledFor,o.get(s))+" - "+l}))}}).filter(s=>s.sessions.length>0)}function Ye(e){return e==="active"?"pause":"resume"}function Rn(e){return e.map(t=>({id:t.id,name:t.name,status:t.status,...t.nextRunAt===void 0?{}:{nextRunAt:t.nextRunAt}}))}function At(e,t,n){if(e===void 0||e==="")return!1;let o=t.has(e);return n==="only"?o:n==="show"?!0:!o}function In(e,t){return e==null||e===""||!e.startsWith(Ae)?!1:!(t??[]).some(n=>n.sessionId===e)}function Me(e){let t=new Set;for(let n of e??[]){let o=n.sessionId;typeof o=="string"&&o!==""&&t.add(o)}return t}function Nr(e){return e==="channels"||e==="schedule"||e==="tasks"?e:"tasks"}var kn="dsh-automation.sidebar-tab",Cr="dsh-im-connect.sidebar-tab";function Nn(e){if(e===void 0)return"tasks";let t;try{t=e.getItem(Ze)??e.getItem(kn)??e.getItem(Cr)}catch{return"tasks"}let n=Nr(t);try{e.setItem(Ze,n),e.removeItem(kn)}catch{}return n}function Cn(e){return/^(新会话|新建任务|New chat|New session)(?:\s+(?:Ctrl|Alt|Shift|Meta)(?:\+[^\s+]+)*)?$/i.test(e.trim())}function On(e,t){let n=e??"",o=t??"";return o!==""&&n!==o}function Mn(e){let t=["tasks"];for(let n of e.extraTabIds)n===""||n==="tasks"||n==="schedule"||t.includes(n)||t.push(n);return e.channelsReady&&!t.includes("channels")&&t.push("channels"),t.push("schedule"),t}function Pn(e){return e.extraTabIds.includes(e.tab)?e.tab:e.tab==="channels"&&e.channelsReady?"channels":"tasks"}function Dn(e,t,n={}){return e==null||e===""?void 0:(t!==void 0?t.has(e):e.startsWith(Ae))?n.followSchedule===!1?void 0:"schedule":e.startsWith("im:")?n.followChannels===!1?void 0:"channels":"tasks"}function Or(e){return/dsh-codex-ui|michengai-codex-ui|michengai\.codexUi|codex-ui/i.test(String(e??""))}function Mr(e){let t=e;return String(t?.options?.locale??t?.options?.id??t?.options?.name??t?.options?.registrant??t?.component?.displayName??t?.component?.name??t?.id??t?.name??"")}function _n(e){return(e??[]).some(t=>Or(Mr(t)))}var Sn=new WeakMap,xn=new WeakMap,Tn=new WeakMap;function Pr(e,t){if(e===null||typeof e!="object"||!(t in e))return;let n=Reflect.get(e,t);return n!==null&&typeof n=="object"?n:void 0}function Ln(e){return e.size===0?"":[...e].sort().join("\0")}function Hn(e,t){let n=e??{ids:[],byId:{}},o=Ln(t);if(typeof n=="object"&&n!==null){let d=Sn.get(n);if(d!==void 0&&d.key===o)return d.result}let r=(n.ids??[]).filter(d=>t.has(String(d))),i=Object.fromEntries(r.map(d=>[d,n.byId?.[d]]).filter(d=>d[1]!==void 0)),s=Pr(n,"projectionsBySession"),l={...n,ids:r,byId:i,...s===void 0?{}:{projectionsBySession:Object.fromEntries(r.filter(d=>s[d]!==void 0).map(d=>[d,s[d]]))}};return typeof n=="object"&&n!==null&&Sn.set(n,{key:o,result:l}),l}function Et(e){return`${xt}${e}`}function Ee(e){if(e===void 0||!e.startsWith(xt))return;let t=e.slice(xt.length);return t===""?void 0:t}function Wn(e,t){let n=e??{items:[],archivedSessionIds:[]},o=t.map(s=>`${s.id}\0${s.name}\0${s.createdAt}\0${s.sessionIds.join(",")}`).join("\0\0");if(typeof n=="object"&&n!==null){let s=xn.get(n);if(s!==void 0&&s.key===o)return s.result}let r=t.map(s=>{let l=Et(s.id);return{workspaceId:l,id:l,title:s.name,path:"",sessionIds:[...s.sessionIds],createdAt:s.createdAt,updatedAt:s.createdAt}}),i={...n,items:r};return typeof n=="object"&&n!==null&&xn.set(n,{key:o,result:i}),i}function Rt(e,t,n){let o=e??{items:[],archivedSessionIds:[]},r=`${Ln(t)}\0${n}`;if(typeof o=="object"&&o!==null){let d=Tn.get(o);if(d!==void 0&&d.key===r)return d.result}let i=new Set(o.archivedSessionIds??[]),s=(o.items??[]).map(d=>{let a=(d.sessionIds??[]).filter(f=>{let p=String(f);return t.has(p)&&At(p,i,n)});return a.length===(d.sessionIds??[]).length?d:{...d,sessionIds:a}}),l={...o,items:s};return typeof o=="object"&&o!==null&&Tn.set(o,{key:r,result:l}),l}function Fn(e){let t=e?.byId??{};for(let[n,o]of Object.entries(t))if((o?.retainedBy?.mainView??0)>0){let r=o.id?.trim();return r!==void 0&&r!==""?r:n}return null}function Dr(e){if(e===null||typeof e!="object")return;let t=e.openSession;if(typeof t=="function")return{openSession:n=>{t.call(e,n)}}}function Bn(e){let t=Dr(Ge(e,"uiWorkspace"));return{...t===void 0?{}:{uiWorkspace:t}}}function zn(e){return typeof e.uiWorkspace?.openSession=="function"}function jn(e,t){if(typeof e.uiWorkspace?.openSession=="function"){e.uiWorkspace.openSession(t);return}throw new Error("no client session opener")}function An(e,t,n){if(e==="")return!1;let o=e.startsWith(Ae)||e.startsWith("im:")?[t,n]:[n,t];for(let r of o)if(typeof r=="function")try{return r(e),!0}catch{}return!1}async function qn(e){let t=e.id.trim();return t===""?!1:(await e.adopt?.(t).catch(()=>{}),!(e.listed?.(t)===!0)&&e.refresh!==void 0&&await e.refresh().catch(()=>{}),An(t,e.openRuntime,e.openHost)?!0:(e.refresh!==void 0&&await e.refresh().catch(()=>{}),An(t,e.openRuntime,e.openHost)))}function $n(e){return e==null||typeof e!="function"&&typeof e!="object"?{}:e}function En(e){let t=$n(e);return t.__dshAutomationWrapped===!0||t.__dshNativeTabWrapped===!0&&t.__dshNativeTabOwner==="automation"}function Kn(e){let t=new Set,n=e;for(;n!=null&&!t.has(n);){t.add(n);let o=$n(n),r=o.__dshNativeTabOriginal??o.__dshAutomationOriginal??o.__imConnectOriginal;if(r!==void 0&&r!==n){n=r;continue}return o.__dshNativeTabWrapped===!0||o.__dshAutomationWrapped===!0||o.__imConnectWrapped===!0?void 0:n}}function _r(e){let t=e,n=String(t?.options?.id??""),o=String(t?.component?.displayName??t?.component?.name??"");return n==="dsh-automation-native-switcher"||n==="dsh-automation-wrap-bump"||o==="DshNativeTabWorkspaceShell"&&En(t?.component)||o==="AutomationNativeWorkspaceShell"||o==="AutomationWrapBump"||En(t?.component)}function Vn(e){for(let t of e)if(t?.component!==void 0&&!_r(t))return t}var It=require("react/jsx-runtime");function Un(e){return(0,It.jsx)("svg",{viewBox:"0 0 16 16",width:16,height:16,"aria-hidden":"true",focusable:"false",...e,children:(0,It.jsx)("path",{fill:"currentColor",d:"M8 0a8 8 0 0 0-2.53 15.59c.4.074.547-.173.547-.385 0-.19-.007-.693-.01-1.36-2.226.484-2.695-1.073-2.695-1.073-.364-.924-.89-1.17-.89-1.17-.726-.496.055-.486.055-.486.803.056 1.225.824 1.225.824.714 1.223 1.872.87 2.328.665.072-.517.28-.87.508-1.07-1.777-.202-3.645-.888-3.645-3.956 0-.874.31-1.588.823-2.148-.083-.202-.357-1.017.078-2.12 0 0 .672-.215 2.2.82A7.65 7.65 0 0 1 8 4.8c.68.003 1.365.092 2.004.27 1.527-1.035 2.197-.82 2.197-.82.437 1.103.162 1.918.08 2.12.513.56.822 1.274.822 2.148 0 3.076-1.872 3.752-3.654 3.95.288.248.544.735.544 1.482 0 1.07-.01 1.932-.01 2.195 0 .214.144.463.55.384A8.001 8.001 0 0 0 8 0Z"})})}var Lr=Fe(require("@deepseek-ai/dsh-client-ui-primitives"),1);function V(e,...t){for(let n of t){let o=e[n];if(typeof o=="function")return o}throw new Error(`Missing host icon export: ${t.join(", ")}`)}var Z=Lr,Gn=V(Z,"IconEllipsisOutlineRegular"),Nt=V(Z,"IconSearchOutlineRegular"),Zn=V(Z,"IconProjectAddOutlineRegular"),Ct=V(Z,"IconCloseFillRegular"),Yn=V(Z,"IconSlidersTwoOutlineRegular"),Xn=V(Z,"IconFolderCloseRegular"),Jn=V(Z,"IconWorkspaceTreeOutlineRegular"),Xe=V(Z,"IconFlatListOutlineRegular"),ue=V(Z,"IconClockOutlineRegular"),Je=V(Z,"IconPlusOutlineRegular"),Qn=V(Z,"IconRefreshOutlineRegular"),eo=V(Z,"IconInfoOutlineRegular"),to=V(Z,"IconNewChatOutlineRegular"),no=V(Z,"IconEditOutlineRegular"),Qe=V(Z,"IconChevronDownOutlineRegular"),oo=V(Z,"IconSettingsOutlineRegular"),ro=V(Z,"IconListPenOutlineRegular"),so=V(Z,"IconCheckOutlineRegular"),io=V(Z,"IconQueueOutlineRegular");var X=require("@deepseek-ai/dsh-client-ui-primitives");var Ot=Fe(require("react"),1),ao=require("@deepseek-ai/dsh-client-ui-primitives"),Mt={width:22,minWidth:22,height:22,padding:0,display:"inline-flex",alignItems:"center",justifyContent:"center",borderRadius:"var(--dsw-radius-sm, 8px)"},lo=Ot.default.forwardRef(function(t,n){let{className:o,rows:r,...i}=t;return Ot.default.createElement("textarea",{...i,ref:n,className:["dsh-st-textarea",o].filter(Boolean).join(" "),rows:r||4})}),Re=ao.Input;function et(e,t){let n=e.target;if(!(n instanceof Element)||n.getAttribute("aria-hidden")!=="true")return;let o=n.parentElement?.querySelector('[role="dialog"]');!(o instanceof HTMLElement)||!o.classList.contains(t)||e.stopPropagation()}var te=Fe(require("react"),1),tt=require("@deepseek-ai/dsh-client-ui-primitives");function Pt(e){return{id:e.value,label:e.label,...e.disabled!==void 0?{disabled:e.disabled}:{},...e.danger!==void 0?{danger:e.danger}:{}}}function oe(e){let[t,n]=te.useState(!1),o=te.useRef(null),r=e.options??[];te.useEffect(()=>{if(!t)return;let a=o.current?.getBoundingClientRect().width??0;return a>0&&document.documentElement.style.setProperty("--dsh-st-menu-width",`${Math.round(a)}px`),()=>{document.documentElement.style.removeProperty("--dsh-st-menu-width")}},[t]),te.useEffect(()=>{if(!t||typeof window>"u")return;let a=f=>{f.key==="Escape"&&(f.stopPropagation(),n(!1))};return window.addEventListener("keydown",a,!0),()=>{window.removeEventListener("keydown",a,!0)}},[t]);let i=te.useMemo(()=>e.groups!==void 0&&e.groups.length>0?e.groups.flatMap(a=>[{type:"label",id:`label-${a.id}`,text:a.label},...a.options.map(Pt)]):r.map(Pt),[r,e.groups]),s=e.footer?.map(Pt),l=r.find(a=>a.value===e.value)??e.groups?.flatMap(a=>[...a.options]).find(a=>a.value===e.value),d=l?l.label:e.placeholder??e.label??"";return te.createElement("div",{ref:o,className:["dsh-st-menu-select-wrap",e.compact===!0?"is-compact":"",e.className].filter(Boolean).join(" ")},te.createElement(tt.Menu,{open:t,onClose:()=>{n(!1)},onSelect:a=>{if(e.footer?.some(f=>f.value===a)===!0){e.onFooter?.(a),n(!1);return}e.onChange(a),n(!1)},selectedId:e.value,align:"start",portal:!0,dense:!0,listClassName:["dsh-st-form-menu",e.listClassName].filter(Boolean).join(" "),...s!==void 0?{footer:s}:{},anchor:te.createElement(tt.Button,{variant:"outline",...e.compact===!0?{size:"sm"}:{},role:"combobox","aria-label":e.label??(typeof d=="string"?d:l?.text)??e.placeholder??"","aria-expanded":t,disabled:e.disabled,className:["dsh-st-menu-select-trigger",t?"is-open":""].filter(Boolean).join(" "),onClick:()=>{e.disabled||n(a=>!a)}},te.createElement("span",{className:"dsh-st-menu-select-label"},d),te.createElement(Qe,{className:"dsh-st-menu-select-arrow",size:12})),items:i}))}var ne=require("react");var Hr=new Map([["read-only",["permission.readOnly","Read Only"]],["workspace-write",["permission.workspaceWrite","Workspace Write"]],["danger-full-access",["permission.fullAccess","Full access"]]]);function co(e,t){let n=Hr.get(e.value);return n!==void 0&&(e.name===e.value||e.name===n[1])?t(n[0]):e.name||e.value}function uo(e,t){return e!==t&&t==="danger-full-access"}var de=require("@deepseek-ai/dsh-client-ui-primitives");var y=require("react/jsx-runtime");function Wr(e,t,n,o){if(e==="deepseek-account"){let r=n("provider.account");return r&&r!=="provider.account"?r:o("form.providerAccount")}return t}function Fr(e,t){return(e==="deepseek-account"?0:e==="deepseek-official"?1:2)-(t==="deepseek-account"?0:t==="deepseek-official"?1:2)}function Br(e){return(e.provider==="deepseek-account"||e.provider==="deepseek-official")&&e.model==="deepseek-flash"?(0,y.jsxs)("span",{style:{display:"inline-flex",alignItems:"center",gap:6},children:[(0,y.jsx)("span",{children:e.label}),(0,y.jsx)(de.Tag,{tone:"info",children:"1017"})]}):e.label}var zr=[1,2,3,4,5,6,7],jr=["once","interval","hourly","daily","weekly","monthly","custom"],qr=Array.from({length:24},(e,t)=>String(t).padStart(2,"0")),fo=Array.from({length:60},(e,t)=>String(t).padStart(2,"0"));function ho({t:e,permissionT:t,modelT:n,busy:o,workspaces:r,models:i,modelFailures:s,defaultModel:l,skills:d,permissions:a,defaultPermission:f,draft:p,editing:T,onClose:w,onSubmit:h,onAddWorkspace:v}){let[u,k]=(0,ne.useState)(()=>({...vt(new Date,r,l,f),...p})),[g,A]=(0,ne.useState)(),[R,D]=(0,ne.useState)(),[I,H]=(0,ne.useState)(!1),[B,U]=(0,ne.useState)(!1),[ie,z]=(0,ne.useState)(0),[L,C]=(0,ne.useState)(0),[j,G]=(0,ne.useState)(),Y=(0,ne.useRef)(null),Q=(0,ne.useRef)(0);(0,ne.useEffect)(()=>{let c=x=>{if(x.key==="Escape"&&document.querySelector('[role="menu"]')===null){if(x.preventDefault(),x.stopPropagation(),x.stopImmediatePropagation(),R!==void 0){H(!1),D(void 0);return}w()}},m=x=>{et(x,"dsh-st-create-dialog")};return window.addEventListener("keydown",c,!0),document.addEventListener("click",m,!0),()=>{window.removeEventListener("keydown",c,!0),document.removeEventListener("click",m,!0)}},[R,w]);let O=c=>{k(m=>({...m,...c})),A(void 0)},le=r.some(c=>c.id===u.workspaceId),E=async()=>{if(!(v===void 0||B)){U(!0),A(void 0),document.activeElement instanceof HTMLElement&&document.activeElement.blur();try{let c=await v();c!==void 0&&O({workspaceId:c})}catch(c){c instanceof Oe?A(e("form.workspaceUnavailable")):c instanceof Error&&c.message!==""?A(c.message):A(e("form.addWorkspaceFailed"))}finally{U(!1)}}},K=c=>{if(uo(u.permission,c)){H(!1),D(c);return}O({permission:c})},_=async c=>{c?.preventDefault();try{await h(u)}catch(m){if(m instanceof J){A(e(m.key));return}A(m instanceof Error?m.message:e("error.action"))}},ae=u.onceAt.slice(0,10),ve=u.onceAt.slice(11,16)||"09:00",ge=$r(new Date),pe=i.find(c=>`${c.provider}::${c.model}`===u.modelKey)?.reasoning,se=wt(u.prompt,ie),ee=se===void 0||j===se.query?[]:rn(d,se.query),S=Math.min(L,Math.max(ee.length-1,0)),F=c=>{Q.current=c,z(c)};(0,ne.useEffect)(()=>{let c=document.querySelector('.dsh-st-skill-menu [aria-selected="true"]');c instanceof HTMLElement&&c.scrollIntoView({block:"nearest"})},[S,se?.query]);let $=c=>{let m=sn(u.prompt,Q.current,je(c));O({prompt:m.text}),G(void 0),queueMicrotask(()=>{let x=Y.current;x!=null&&(x.focus(),x.setSelectionRange(m.caret,m.caret),F(m.caret))})};return(0,y.jsxs)(y.Fragment,{children:[(0,y.jsx)(de.Modal,{open:!0,className:"dsh-st-create-dialog",contentClassName:"dsh-st-create-content",title:e(T===!0?"modal.edit":"modal.title"),closeLabel:e("form.cancel"),onClose:w,footer:(0,y.jsxs)(y.Fragment,{children:[(0,y.jsx)(de.Button,{variant:"outline",className:"dsh-st-modal-action",disabled:o,onClick:w,children:e("form.cancel")}),(0,y.jsx)(de.Button,{variant:"primary",className:"dsh-st-modal-action",type:"submit",form:"dsh-st-create-form",disabled:o||B||!le,children:e("modal.save")})]}),children:(0,y.jsxs)("form",{id:"dsh-st-create-form",className:"dsh-st-form",onSubmit:c=>{_(c)},children:[(0,y.jsx)("p",{children:e("form.subtitle")}),(0,y.jsxs)("label",{className:"dsh-st-field",children:[e("form.name"),(0,y.jsx)(Re,{value:u.name,placeholder:e("form.namePlaceholder"),onChange:c=>O({name:c.target.value})})]}),(0,y.jsxs)("div",{className:"dsh-st-plan-row",children:[(0,y.jsxs)("div",{className:"dsh-st-field",children:[e("form.planTime"),(0,y.jsxs)("div",{className:"dsh-st-inline",children:[(0,y.jsx)(oe,{value:u.scheduleKind,options:jr.map(c=>({value:c,label:e(`form.${c}`)})),onChange:c=>O({scheduleKind:c})}),u.scheduleKind==="once"&&(0,y.jsx)(Re,{type:"date",min:ge,value:ae,onChange:c=>O({onceAt:mo(`${c.target.value}T${ve}`)})}),(u.scheduleKind==="once"||u.scheduleKind==="daily"||u.scheduleKind==="weekly"||u.scheduleKind==="monthly")&&(0,y.jsx)(po,{value:u.scheduleKind==="once"?ve:u.time,onChange:c=>{u.scheduleKind==="once"?O({onceAt:mo(`${ae}T${c}`)}):O({time:c})}}),u.scheduleKind==="interval"&&(0,y.jsxs)(y.Fragment,{children:[(0,y.jsx)("span",{className:"dsh-st-suffix",children:e("form.every")}),(0,y.jsxs)("span",{className:"dsh-st-amount",children:[(0,y.jsx)(Re,{type:"number",min:1,value:u.everyMinutes,onChange:c=>O({everyMinutes:c.target.value})}),(0,y.jsx)("span",{className:"dsh-st-suffix",children:e("form.minutes")})]})]}),u.scheduleKind==="hourly"&&(0,y.jsxs)(y.Fragment,{children:[(0,y.jsx)(oe,{value:u.hourlyMinute,options:fo.map(c=>({value:c,label:c})),onChange:c=>O({hourlyMinute:c})}),(0,y.jsx)("span",{className:"dsh-st-suffix",children:e("form.minutesShort")})]}),u.scheduleKind==="monthly"&&(0,y.jsx)(oe,{value:u.monthDay,options:Array.from({length:31},(c,m)=>{let x=String(m+1);return{value:x,label:e("form.monthDay",{day:x})}}),onChange:c=>O({monthDay:c})}),u.scheduleKind==="custom"&&(0,y.jsxs)(y.Fragment,{children:[(0,y.jsx)("span",{className:"dsh-st-suffix",children:e("form.every")}),(0,y.jsxs)("span",{className:"dsh-st-amount",children:[(0,y.jsx)(Re,{type:"number",min:1,value:u.customDays,onChange:c=>O({customDays:c.target.value})}),(0,y.jsx)("span",{className:"dsh-st-suffix",children:e("form.daysShort")})]}),(0,y.jsx)("span",{className:"dsh-st-suffix",children:e("form.atTime")}),(0,y.jsx)(po,{value:u.time,onChange:c=>O({time:c})})]})]}),u.scheduleKind==="interval"&&(0,y.jsx)("span",{className:"dsh-st-plan-hint",children:e("form.intervalHint")}),u.scheduleKind==="custom"&&(0,y.jsx)("span",{className:"dsh-st-plan-hint",children:e("form.customHint")})]}),(0,y.jsxs)("label",{className:"dsh-st-field dsh-st-concurrency",title:e("form.maxConcurrentRunsHint"),children:[e("form.maxConcurrentRuns"),(0,y.jsx)(Re,{type:"number",min:1,step:1,value:u.maxConcurrentRuns,onChange:c=>O({maxConcurrentRuns:c.target.value})})]})]}),u.scheduleKind==="weekly"&&(0,y.jsx)("div",{className:"dsh-st-weekdays",children:zr.map(c=>(0,y.jsx)(de.Checkbox,{checked:u.weekdays.includes(c),label:e(`day.${c}`),onChange:m=>O({weekdays:m?[...u.weekdays,c]:u.weekdays.filter(x=>x!==c)})},c))}),(0,y.jsxs)("div",{className:"dsh-st-settings",children:[(0,y.jsxs)("label",{className:"dsh-st-picker-field",children:[(0,y.jsx)("span",{children:e("form.fieldWorkspace")}),r.length===0?(0,y.jsxs)("div",{className:"dsh-st-workspace-empty",children:[(0,y.jsx)(de.Button,{variant:"primary",icon:(0,y.jsx)(Je,{size:14}),disabled:B,onClick:()=>{E()},children:e("form.addWorkspace")}),(0,y.jsx)("span",{className:"dsh-st-workspace-note",children:e("form.workspaceRequired")})]}):(0,y.jsx)(oe,{value:u.workspaceId,label:e("form.fieldWorkspace"),placeholder:e("form.workspace"),options:r.map(c=>({value:c.id,label:c.title})),footer:[{value:"add-workspace",label:e("form.addWorkspace"),disabled:B}],onFooter:()=>{E()},onChange:c=>O({workspaceId:c})})]}),(0,y.jsxs)("label",{className:"dsh-st-picker-field",children:[(0,y.jsx)("span",{children:e("form.fieldModel")}),(0,y.jsx)(oe,{value:u.modelKey,label:e("form.fieldModel"),groups:Array.from(i.reduce((c,m)=>{let x=Wr(m.provider,m.providerLabel,n,e),ce=c.get(m.provider)??{label:x,options:[]};return ce.options.push({value:`${m.provider}::${m.model}`,label:Br(m),text:m.label}),c.set(m.provider,ce),c},new Map)).sort(([c],[m])=>Fr(c,m)).map(([c,m])=>({id:c,label:m.label,options:m.options})),onChange:c=>{let m=i.find(x=>`${x.provider}::${x.model}`===c);O({modelKey:c,reasoningEffort:m?.reasoning?.defaultEffort??"none"})}})]}),(0,y.jsxs)("label",{className:"dsh-st-picker-field",children:[(0,y.jsx)("span",{children:e("form.fieldEffort")}),(0,y.jsx)(oe,{disabled:pe===void 0,value:pe===void 0?"":u.reasoningEffort,label:e("form.fieldEffort"),placeholder:n("effort.providerDefault"),options:pe===void 0?[]:[...pe.defaultEffort===void 0?[{value:"none",label:n("effort.providerDefault")}]:[],...pe.efforts.map(c=>({value:c.id,label:c.name}))],onChange:c=>O({reasoningEffort:c})})]}),(0,y.jsxs)("label",{className:"dsh-st-picker-field",children:[(0,y.jsx)("span",{children:e("form.fieldPermission")}),(0,y.jsx)(oe,{value:u.permission,options:a.map(c=>({value:c.value,label:co(c,e)})),onChange:c=>K(c)})]})]}),(0,y.jsxs)("div",{className:"dsh-st-field",children:[(0,y.jsxs)("span",{className:"dsh-st-prompt-label",children:[e("form.prompt"),(0,y.jsx)("em",{children:e("form.slashHint")})]}),(0,y.jsxs)("div",{className:"dsh-st-prompt-anchor",children:[se!==void 0&&j!==se.query&&(0,y.jsx)("div",{className:"dsh-st-skill-menu",role:"listbox",children:ee.length===0?(0,y.jsx)("p",{children:e("form.slashEmpty")}):ee.map((c,m)=>(0,y.jsxs)("button",{type:"button",role:"option","aria-selected":m===S,onMouseDown:x=>x.preventDefault(),onClick:()=>$(c),children:[(0,y.jsx)("span",{children:c.name}),(0,y.jsx)("code",{children:je(c)})]},c.id))}),(0,y.jsxs)("div",{className:"dsh-st-prompt-card",children:[(0,y.jsx)("div",{className:"dsh-st-prompt-backdrop","aria-hidden":"true",children:an(u.prompt,d).map((c,m)=>c.kind==="skill"?(0,y.jsx)("span",{className:"dsh-st-skill-token",children:c.text},m):(0,y.jsx)("span",{children:c.text},m))}),(0,y.jsx)(lo,{ref:Y,spellCheck:!1,className:"dsh-st-prompt-input",value:u.prompt,placeholder:e("form.promptPlaceholder"),rows:4,onChange:c=>{F(c.target.selectionStart),O({prompt:c.target.value}),G(void 0)},onSelect:c=>F(c.currentTarget.selectionStart),onScroll:c=>{let m=c.currentTarget.closest(".dsh-st-prompt-card")?.querySelector(".dsh-st-prompt-backdrop");m instanceof HTMLElement&&(m.scrollTop=c.currentTarget.scrollTop)},onKeyDown:c=>{if(se!==void 0){if(c.key==="Escape"){c.preventDefault(),G(se.query);return}if(ee.length!==0){if(c.key==="ArrowDown")c.preventDefault(),C(m=>(Math.min(m,ee.length-1)+1)%ee.length);else if(c.key==="ArrowUp")c.preventDefault(),C(m=>(Math.min(m,ee.length-1)+ee.length-1)%ee.length);else if(c.key==="Enter"||c.key==="Tab"){c.preventDefault();let m=ee[S];m!==void 0&&$(m)}}}}})]})]})]}),s.map(c=>(0,y.jsx)("p",{className:"dsh-st-error",children:n("warning.groupLoad",{name:c.providerLabel,message:c.message})},c.provider)),g!==void 0&&(0,y.jsx)("p",{className:"dsh-st-error",children:g})]})}),(0,y.jsx)(de.RiskConfirmation,{open:R!==void 0,title:t("confirm.title"),description:t("confirm.description"),acknowledgeLabel:t("confirm.acknowledge"),cancelLabel:t("confirm.cancel"),closeLabel:t("confirm.cancel"),confirmLabel:t("confirm.enable"),acknowledged:I,onAcknowledgedChange:H,onCancel:()=>{H(!1),D(void 0)},onConfirm:()=>{!I||R===void 0||(O({permission:R}),H(!1),D(void 0))}})]})}function po({value:e,onChange:t}){let[n,o]=e.split(":");return(0,y.jsxs)("span",{className:"dsh-st-time",children:[(0,y.jsx)(oe,{value:n,options:qr.map(r=>({value:r,label:r})),onChange:r=>t(`${r}:${o}`)}),(0,y.jsx)("span",{className:"dsh-st-time-sep",children:":"}),(0,y.jsx)(oe,{value:o,options:fo.map(r=>({value:r,label:r})),onChange:r=>t(`${n}:${r}`)})]})}function $r(e){let t=e.getTimezoneOffset()*6e4;return new Date(e.getTime()-t).toISOString().slice(0,10)}function mo(e){let t=new Date(e),n=new Date;if(!Number.isFinite(t.getTime())||t.getTime()>n.getTime())return e;let o=new Date(n.getTime()+6e4);o.setSeconds(0,0);let r=o.getTimezoneOffset()*6e4;return new Date(o.getTime()-r).toISOString().slice(0,16)}var go=require("react"),Pe=require("@deepseek-ai/dsh-client-ui-primitives");var we=require("react/jsx-runtime");function yo({target:e,t,busy:n,onCancel:o,onConfirm:r}){return(0,go.useEffect)(()=>{if(e===void 0)return;let i=l=>{l.key==="Escape"&&(l.preventDefault(),l.stopPropagation(),l.stopImmediatePropagation(),o())},s=l=>{et(l,"dsh-st-delete-dialog")};return window.addEventListener("keydown",i,!0),document.addEventListener("click",s,!0),()=>{window.removeEventListener("keydown",i,!0),document.removeEventListener("click",s,!0)}},[o,e]),(0,we.jsx)(Pe.Modal,{open:e!==void 0,className:"dsh-st-delete-dialog",title:t("card.confirmDelete"),...e===void 0?{}:{description:`${e.name} ${t("card.confirmDeleteHint")}`},closeLabel:t("card.cancel"),onClose:o,footer:(0,we.jsxs)(we.Fragment,{children:[(0,we.jsx)(Pe.Button,{variant:"outline",className:"dsh-st-modal-action",disabled:n,onClick:o,children:t("card.cancel")}),(0,we.jsx)(Pe.Button,{variant:"outline",className:"dsh-st-modal-action dsh-st-btn-danger",disabled:n,onClick:r,children:t("card.confirm")})]})})}var De=null,Dt=new Set;function bo(e){De=e;for(let t of[...Dt])t(De)}function _t(){let e=De;return De=null,e}function wo(){return De}function vo(e){return Dt.add(e),()=>{Dt.delete(e)}}function ko(e){let t=document.querySelector("[data-composer-seat] textarea");return t instanceof HTMLTextAreaElement?(Object.getOwnPropertyDescriptor(HTMLTextAreaElement.prototype,"value")?.set?.call(t,e),t.dispatchEvent(new InputEvent("input",{bubbles:!0})),t.focus(),!0):!1}function _e(e){if(typeof e!="object"||e===null||!("ok"in e))throw new Error("\u81EA\u52A8\u5316\u4E3B\u673A\u8FD4\u56DE\u4E86\u65E0\u6548\u54CD\u5E94\u3002");let t=e;if(t.ok===!0&&"value"in t)return t.value;if(t.ok===!1&&"error"in t){let n=t.error;throw new Error(n?.message??"\u81EA\u52A8\u5316\u8BF7\u6C42\u5931\u8D25\u3002")}throw new Error("\u81EA\u52A8\u5316\u4E3B\u673A\u8FD4\u56DE\u4E86\u65E0\u6548\u54CD\u5E94\u3002")}var Le="/dsh-automation",xo=15e3,Kr=2e3,To=[1,2,4],So=To.length+1,Vr=5*60*1e3,Ur=24*60*60*1e3;function Gr(e){return(e??[]).some(t=>t.status==="running"||t.status==="queued")?Kr:xo}function Lt(e,t){return t>0?Gr(e):xo}function Ht(e){let t=e instanceof Error?e.message:String(e);return/failed to fetch|networkerror|load failed|network request failed/i.test(t)}function Zr(e,t){let n=Date.parse(t),r=(Number.isFinite(n)?n:Date.now())-Ur;return[...new Set(e.filter(i=>{if(i.status==="queued"||i.status==="running")return!0;let s=Date.parse(i.finishedAt??i.startedAt??i.scheduledFor);return Number.isFinite(s)&&s>=r}).map(i=>i.sessionId).filter(i=>i!==void 0&&i!==""))].sort()}function Ao(e,t,n={}){let o=!1,r=0,i=e.source.getSnapshot().phase==="loading",s,l,d=0,a=0,f=0,p,T,w=!1,h=g=>{l=g,d=0,a=r,f=0,p=void 0},v=g=>{let A=e.source.getSnapshot().snapshot,R=g?.list?.getSnapshot();if(A===void 0||R===void 0||g?.refresh===void 0)return;let D=new Set([...R.ids??[],...Object.keys(R.byId??{})]);return Zr(A.runs,A.serverNow).filter(I=>!D.has(I)).join("\0")},u=()=>{if(o)return;let g=t();g!==s&&(s=g,h());let A=v(g);if(A===void 0)return;if(A===""){h();return}if(A!==l&&h(A),d>=So){if((n.now??Date.now)()<f)return;h(A)}if(r<a)return;if(T!==void 0){w=!0;return}let R=d;d+=1;let D=To[R];a=D===void 0?Number.POSITIVE_INFINITY:r+D,d>=So&&(f=(n.now??Date.now)()+Vr),T=Promise.resolve().then(async()=>{await g.refresh()}).catch(I=>{!o&&p!==A&&(p=A,console.warn("[dsh-automation] \u5237\u65B0 Host \u4F1A\u8BDD\u5217\u8868\u5931\u8D25",I))}).finally(()=>{T=void 0,!(o||!w)&&(w=!1,u())})},k=e.source.subscribe(()=>{e.source.getSnapshot().phase==="loading"?i=!0:i&&(i=!1,r+=1),u()},{background:!0});return u(),()=>{o=!0,w=!1,k()}}function Eo(e){let t={phase:"idle"},n,o,r=()=>{},i=new Set,s=new Set,l=()=>{if(o!==void 0&&clearInterval(o),i.size===0){o=void 0;return}o=setInterval(()=>{p().catch(()=>{})},Lt(t.snapshot?.runs,s.size))},d=()=>{if(r(),s.size===0)return;let h=()=>{p().catch(()=>{})},v=()=>{document.visibilityState==="visible"&&h()};typeof window<"u"&&window.addEventListener("focus",h),typeof document<"u"&&document.addEventListener("visibilitychange",v),r=()=>{typeof window<"u"&&window.removeEventListener("focus",h),typeof document<"u"&&document.removeEventListener("visibilitychange",v),r=()=>{}}},a=h=>{let v=Lt(t.snapshot?.runs,s.size);t=h,i.size>0&&v!==Lt(t.snapshot?.runs,s.size)&&l();for(let u of[...i])u()},f={getSnapshot:()=>t,subscribe:(h,v={})=>{let u=i.size>0,k=s.size>0;return i.add(h),v.background!==!0&&s.add(h),(!u||v.background!==!0&&!k)&&queueMicrotask(()=>{i.size>0&&p().catch(()=>{})}),l(),s.size>0&&!k&&d(),()=>{i.delete(h),s.delete(h),i.size===0&&o!==void 0?(clearInterval(o),o=void 0):i.size>0&&l(),s.size===0&&r()}}},p=async()=>{if(n!==void 0)return n;let h=t.snapshot;return a(h===void 0?{phase:"loading"}:{phase:"loading",snapshot:h,...t.refreshedAt===void 0?{}:{refreshedAt:t.refreshedAt}}),n=(async()=>{try{let v=await e.call(Le,"snapshot",{sessionId:"settings"}),u=_e(v);a({phase:"ready",snapshot:u,refreshedAt:Date.now()})}catch(v){let u=v instanceof Error?v.message:String(v);throw a(h===void 0?{phase:"error",error:u}:{phase:"error",snapshot:h,error:u,...t.refreshedAt===void 0?{}:{refreshedAt:t.refreshedAt}}),v}finally{n=void 0}})(),n},T=async(h,v)=>{try{return await e.call(Le,h,v)}catch(u){if(!Ht(u))throw u;return await e.call(Le,h,v)}},w=async(h,v,u)=>{_e(await T(h,v));let k=()=>{u!==void 0&&t.snapshot!==void 0&&a({phase:"ready",snapshot:u(t.snapshot),refreshedAt:Date.now()})},g=n;k(),g!==void 0&&(await g.catch(()=>{}),k());try{await p()}catch{}};return{source:f,refresh:p,async createAutomation(h){await w("create",{sessionId:"settings",input:h})},async mutateAutomation(h,v){await w("mutate",{sessionId:"settings",automationId:h,mutation:v},v==="delete"?k=>({...k,automations:k.automations.filter(g=>g.id!==h)}):k=>({...k,automations:k.automations.map(g=>g.id===h?{...g,status:v==="pause"?"paused":"active"}:g)}))},async updateAutomation(h,v){await w("update",{sessionId:"settings",automationId:h,input:v})},async runNow(h){await w("run-now",{sessionId:"settings",automationId:h})},async markRunRead(h){await w("mark-read",{sessionId:"settings",runId:h})},async registerWorkspace(h){let v=_e(await e.call(Le,"register-workspace",{path:h}));return await p(),v},async adoptSession(h){_e(await e.call(Le,"adopt-session",{sessionId:h}))},async forgetSession(h){await w("forget-session",{sessionId:h},v=>({...v,runs:v.runs.map(u=>{if(u.sessionId!==h)return u;let{sessionId:k,...g}=u;return g})}))},async forgetAutomationSessions(h){await w("forget-automation-sessions",{automationId:h},v=>({...v,runs:v.runs.map(u=>{if(u.automationId!==h)return u;let{sessionId:k,...g}=u;return g})}))}}}var Wt=require("react"),Ie=require("@deepseek-ai/dsh-client-ui-primitives");var me=require("react/jsx-runtime"),Yr=[["created","desc"],["created","asc"],["planned","asc"],["planned","desc"]];function nt({t:e,storage:t,storageKey:n,sortKey:o,sortDirection:r,onSelect:i,iconOnly:s=!1,className:l}){let[d,a]=(0,Wt.useState)(!1),[f,p]=(0,Wt.useState)(()=>be(t,n)),T=e(o==="planned"?`sort.planned.${r}`:`sort.created.${r}`),w=f?.key===o&&f.direction===r,h=()=>{t===void 0||w||(fn(t,n,o,r),p({key:o,direction:r}))},v=[...Yr.map(([k,g])=>({id:`${k}-${g}`,label:e(k==="planned"?`sort.planned.${g}`:`sort.created.${g}`)})),...t===void 0?[]:[{type:"separator",id:"sort-default-sep"},{id:"save-default",label:e(w?"sort.default.saved":"sort.default.save")}]],u=s?(0,me.jsx)(Ie.Tooltip,{label:T,side:"bottom",delayMs:500,disabled:d,portal:!0,children:(0,me.jsx)("button",{type:"button",className:d?"dsh-st-n-head-btn is-on":"dsh-st-n-head-btn","aria-label":T,"aria-expanded":d,onClick:()=>a(k=>!k),children:(0,me.jsx)(Yn,{size:16})})}):(0,me.jsxs)(Ie.Button,{variant:"outline",size:"sm",role:"combobox","aria-label":T,"aria-expanded":d,className:["dsh-st-menu-select-trigger",d?"is-open":""].filter(Boolean).join(" "),onClick:()=>a(k=>!k),children:[(0,me.jsx)("span",{className:"dsh-st-menu-select-label",children:T}),(0,me.jsx)(Qe,{className:"dsh-st-menu-select-arrow",size:12})]});return(0,me.jsx)("div",{className:["dsh-st-menu-select-wrap",l].filter(Boolean).join(" "),style:{display:"inline-flex",verticalAlign:"middle"},children:(0,me.jsx)(Ie.Menu,{open:d,onClose:()=>a(!1),selectedId:`${o}-${r}`,align:s?"end":"start",portal:!0,dense:!0,anchor:u,items:v,onSelect:k=>{if(k==="save-default"){h(),a(!1);return}let[g,A]=k.split("-");i(g,A),a(!1)}})})}var ot="dsh-automation:open-task-settings",Ft="dsh-automation:pending-task-settings";function Bt(e){if(typeof e!="object"||e===null)return;let t=e;if(!(typeof t.name!="string"||t.name.trim()===""||!Array.isArray(t.sessionIds)||t.sessionIds.some(n=>typeof n!="string"))&&!(t.automationId!==void 0&&(typeof t.automationId!="string"||t.automationId.trim()==="")))return{...typeof t.automationId=="string"?{automationId:t.automationId}:{},name:t.name,sessionIds:[...t.sessionIds]}}function Xr(e,t){try{e?.setItem(Ft,JSON.stringify(t))}catch{}}function zt(e){typeof window>"u"||(Xr(window.sessionStorage,e),window.dispatchEvent(new CustomEvent(ot,{detail:e})))}function Ro(e){if(e!==void 0)try{let t=e.getItem(Ft);return t===null?void 0:Bt(JSON.parse(t))}catch{return}}function rt(e){try{e?.removeItem(Ft)}catch{}}function Io(e,t,n){if(e.automationId!==void 0){let l=t.find(d=>d.id===e.automationId);if(l!==void 0)return l}let o=new Set(e.sessionIds),r=n.find(l=>l.sessionId!==void 0&&o.has(l.sessionId))?.automationId,i=t.find(l=>l.id===r);if(i!==void 0)return i;let s=t.filter(l=>l.name===e.name);return s.length===1?s[0]:void 0}var st="dsh-automation:create-task",jt="dsh-automation:pending-create-task";function qt(){if(!(typeof window>"u")){try{window.sessionStorage.setItem(jt,"1")}catch{}window.dispatchEvent(new Event(st))}}function No(e){if(e===void 0)return!1;try{return e.getItem(jt)==="1"}catch{return!1}}function it(e){try{e?.removeItem(jt)}catch{}}var b=require("react/jsx-runtime"),at=typeof window>"u"?void 0:window.localStorage,Co=typeof window>"u"?void 0:window.sessionStorage,Oo=typeof window>"u"?void 0:window.sessionStorage,Jr=[{name:"\u6BCF\u65E5\u56DE\u5F52\u68C0\u67E5",scheduleKind:"daily",time:"09:00",weekdays:[1,2,3,4,5]},{name:"\u6BCF\u5468\u4F9D\u8D56\u5DE1\u68C0",scheduleKind:"weekly",time:"10:00",weekdays:[1]},{name:"\u5DE5\u4F5C\u65E5\u65E9\u62A5",scheduleKind:"weekly",time:"08:00",weekdays:[1,2,3,4,5]}];function Mo({t:e,permissionT:t,modelT:n,runtime:o,closeSettings:r,addWorkspace:i}){let s=(0,q.useSyncExternalStore)(o.source.subscribe,o.source.getSnapshot,o.source.getSnapshot),[l,d]=(0,q.useState)("mine"),[a,f]=(0,q.useState)(""),[p,T]=(0,q.useState)(!1),[w,h]=(0,q.useState)(),[v,u]=(0,q.useState)(),[k,g]=(0,q.useState)(),[A,R]=(0,q.useState)(!1),[D,I]=(0,q.useState)(),[H,B]=(0,q.useState)("day"),[U,ie]=(0,q.useState)("all"),[z,L]=(0,q.useState)("all"),[C,j]=(0,q.useState)(()=>be(at,Ve)?.key??"created"),[G,Y]=(0,q.useState)(()=>be(at,Ve)?.direction??"desc"),[Q,O]=(0,q.useState)(()=>Ro(Co)),[le,E]=(0,q.useState)(()=>No(Oo)),K=(0,q.useMemo)(()=>new Date(s.snapshot?.serverNow??Date.now()),[s.snapshot?.serverNow,s.refreshedAt]),_=s.snapshot,ae=_?.workspaces??[],ve=_?.models??[],ge=_?.permissions??[],ke=_?.defaultPermission??"",pe=Ke((_?.automations??[]).filter(m=>a.trim()===""||`${m.name} ${m.prompt}`.toLowerCase().includes(a.trim().toLowerCase())),C,G),se=(_?.runs??[]).filter(m=>!(U!=="all"&&m.automationId!==U||z!=="all"&&m.status!==z)),ee=hn(se,H,K,e),S=async m=>{R(!0),I(void 0);try{await m()}catch(x){I(x instanceof J?e(x.key):Ht(x)?e("error.offline"):x instanceof Error?x.message:e("error.action"))}finally{R(!1)}},F=()=>{T(!1),g(void 0),h(void 0)},$=m=>{ke===""||ge.length===0||(h(void 0),g(m),T(!0))},c=m=>{h(m.id),g(gn(m,ae,_?.defaultModel??null,_?.defaultPermission??m.permission)),T(!0)};return(0,q.useEffect)(()=>{if(typeof window>"u")return;let m=ce=>{let ye=Bt(ce.detail);ye!==void 0&&O(ye)},x=()=>{E(!0)};return window.addEventListener(ot,m),window.addEventListener(st,x),()=>{window.removeEventListener(ot,m),window.removeEventListener(st,x)}},[]),(0,q.useEffect)(()=>{!le||_===void 0||(it(Oo),E(!1),d("mine"),f(""),$())},[le,_,e]),(0,q.useEffect)(()=>{if(Q===void 0||_===void 0)return;let m=Io(Q,_.automations,_.runs);if(rt(Co),O(void 0),d("mine"),f(""),m===void 0){I(e("error.taskMissing"));return}c(m)},[_,Q,e]),(0,b.jsxs)("div",{className:"dsh-st-shell",children:[(0,b.jsxs)("header",{className:"dsh-st-top",children:[(0,b.jsxs)("div",{className:"dsh-st-heading",children:[(0,b.jsxs)("div",{className:"dsh-st-heading-row",children:[(0,b.jsx)("h1",{children:e("tab")}),(0,b.jsxs)("div",{className:"dsh-st-heading-links",children:[(0,b.jsx)(X.Button,{variant:"outline",size:"sm","aria-label":e("header.githubProject"),icon:(0,b.jsx)(Un,{}),onClick:()=>{window.open("https://github.com/MichengAI/dsh-automation","_blank","noreferrer")},children:e("header.githubProject")}),(0,b.jsx)(X.Button,{variant:"outline",size:"sm","aria-label":e("header.githubFeedback"),icon:(0,b.jsx)(no,{size:16}),onClick:()=>{window.open("https://github.com/MichengAI/dsh-automation/issues","_blank","noreferrer")},children:e("header.githubFeedback")})]})]}),(0,b.jsx)("p",{children:e("header.lead")})]}),(0,b.jsxs)("div",{className:"dsh-st-toolbar",children:[(0,b.jsx)(X.Input,{className:"dsh-st-search",value:a,placeholder:e("search.placeholder"),onChange:m=>f(m.target.value)}),(0,b.jsx)(X.Button,{variant:"outline",icon:(0,b.jsx)(to,{size:18}),onClick:()=>{bo(e("chat.prompt")),r?.()},children:e("action.chatCreate")}),(0,b.jsx)(X.Button,{variant:"primary",icon:(0,b.jsx)(Je,{size:18}),disabled:ke===""||ge.length===0,onClick:()=>$(),children:e("action.create")}),(0,b.jsx)(X.Button,{className:"dsh-st-row-icon",variant:"outline",size:"sm",icon:(0,b.jsx)(Qn,{size:16}),"aria-label":e("section.refresh"),style:Mt,onClick:()=>{o.refresh()}})]})]}),(0,b.jsx)("div",{className:"dsh-st-banner",role:"note",children:(0,b.jsxs)("span",{children:[(0,b.jsx)(eo,{size:18}),e("banner.wake")]})}),(0,b.jsxs)("section",{className:"dsh-st-examples",children:[(0,b.jsx)("div",{className:"dsh-st-examples-head",children:(0,b.jsx)("h2",{children:e("examples.title")})}),(0,b.jsx)("div",{className:"dsh-st-example-row",children:Jr.map((m,x)=>(0,b.jsxs)("button",{type:"button",className:"dsh-st-example",disabled:ke===""||ge.length===0,onClick:()=>$({name:e(`examples.${x+1}.title`),prompt:e(`examples.${x+1}.body`),scheduleKind:m.scheduleKind,time:m.time,weekdays:m.weekdays}),children:[(0,b.jsx)("strong",{children:e(`examples.${x+1}.title`)}),(0,b.jsx)("p",{children:e(`examples.${x+1}.body`)}),(0,b.jsxs)("span",{className:"dsh-st-chip",children:[(0,b.jsx)(ue,{size:14}),e(`examples.${x+1}.chip`)]})]},m.name))})]}),D!==void 0&&(0,b.jsx)("p",{className:"dsh-st-error",children:D}),(s.phase==="idle"||s.phase==="loading"&&_===void 0)&&(0,b.jsx)("p",{className:"dsh-st-muted",children:e("loading")}),s.phase==="error"&&_===void 0&&(0,b.jsxs)("div",{className:"dsh-st-empty",children:[(0,b.jsx)("h3",{children:e("error.title")}),(0,b.jsx)("p",{children:s.error}),(0,b.jsx)(X.Button,{variant:"primary",onClick:()=>{o.refresh()},children:e("error.retry")})]}),(0,b.jsxs)("div",{className:"dsh-st-tabs",children:[(0,b.jsx)(X.SegmentedTabs,{className:"dsh-st-settings-tabs",label:e("tab"),value:l,items:[{value:"mine",id:"dsh-st-tab-mine",panelId:"dsh-st-panel-mine",label:(0,b.jsxs)("span",{className:"dsh-st-tab-label",children:[(0,b.jsx)(ue,{size:14}),(0,b.jsx)("span",{children:e("tabs.mine")})]})},{value:"runs",id:"dsh-st-tab-runs",panelId:"dsh-st-panel-runs",label:(0,b.jsxs)("span",{className:"dsh-st-tab-label",children:[(0,b.jsx)(Xe,{size:14}),(0,b.jsx)("span",{children:e("tabs.runs")})]})}],onChange:d}),l==="mine"&&(0,b.jsx)("div",{className:"dsh-st-sort-wrap",children:(0,b.jsx)(nt,{t:e,...at===void 0?{}:{storage:at},storageKey:Ve,sortKey:C,sortDirection:G,onSelect:(m,x)=>{j(m),Y(x)}})}),l==="runs"&&(0,b.jsxs)("div",{className:"dsh-st-filters",children:[(0,b.jsx)(oe,{compact:!0,className:"dsh-st-filter-range",value:H,options:["day","week","month"].map(m=>({value:m,label:e(`history.range.${m}`)})),onChange:m=>B(m)}),(0,b.jsx)(oe,{compact:!0,className:"dsh-st-filter-task",value:U,options:[{value:"all",label:e("history.allTasks")},...(_?.automations??[]).map(m=>({value:m.id,label:m.name}))],onChange:ie}),(0,b.jsx)(oe,{compact:!0,className:"dsh-st-filter-status",value:z,options:[{value:"all",label:e("history.allStatus")},...mn.map(m=>({value:m,label:e(`status.${m}`)}))],onChange:m=>L(m)})]})]}),l==="mine"&&(pe.length===0?(0,b.jsxs)("div",{id:"dsh-st-panel-mine",role:"tabpanel","aria-labelledby":"dsh-st-tab-mine",className:"dsh-st-empty",children:[(0,b.jsx)("h3",{children:e("empty.title")}),(0,b.jsx)("p",{children:e("empty.body")})]}):(0,b.jsx)("div",{id:"dsh-st-panel-mine",role:"tabpanel","aria-labelledby":"dsh-st-tab-mine",className:"dsh-st-grid",children:pe.map(m=>(0,b.jsx)(Qr,{item:m,t:e,now:K,busy:A,onEdit:()=>c(m),onToggle:()=>{S(()=>o.mutateAutomation(m.id,Ye(m.status)))},onRun:()=>{S(()=>o.runNow(m.id))},onDelete:()=>u(m)},m.id))})),l==="runs"&&(ee.length===0?(0,b.jsx)("div",{id:"dsh-st-panel-runs",role:"tabpanel","aria-labelledby":"dsh-st-tab-runs",className:"dsh-st-empty",children:e("runs.empty")}):(0,b.jsx)("div",{id:"dsh-st-panel-runs",role:"tabpanel","aria-labelledby":"dsh-st-tab-runs",className:"dsh-st-timeline",children:ee.map(m=>(0,b.jsxs)("section",{className:"dsh-st-group",children:[(0,b.jsx)("h3",{children:m.label}),m.items.map(x=>(0,b.jsx)(es,{run:x,t:e},x.id))]},m.key))})),p&&(0,b.jsx)(ho,{t:e,permissionT:t,modelT:n,busy:A,workspaces:ae,models:ve,modelFailures:_?.modelFailures??[],defaultModel:_?.defaultModel??null,skills:_?.skills??[],permissions:ge,defaultPermission:ke,editing:w!==void 0,...k===void 0?{}:{draft:k},onClose:F,...i===void 0?{}:{onAddWorkspace:i},onSubmit:async m=>{let x=ln(m,ae,ve,new Date,{allowPastOnce:w!==void 0});await S(async()=>{w===void 0?await o.createAutomation(x):await o.updateAutomation(w,x),F()})}},w??"create"),(0,b.jsx)(yo,{target:v,t:e,busy:A,onCancel:()=>u(void 0),onConfirm:()=>{let m=v;m!==void 0&&S(async()=>{await o.mutateAutomation(m.id,"delete"),u(void 0)})}})]})}function Qr({item:e,t,now:n,busy:o,onEdit:r,onToggle:i,onRun:s,onDelete:l}){let[d,a]=(0,q.useState)(!1);return(0,b.jsxs)("article",{className:"dsh-st-card",onClick:r,children:[(0,b.jsxs)("div",{className:"dsh-st-card-head",children:[(0,b.jsx)("span",{onClick:f=>f.stopPropagation(),children:(0,b.jsx)(X.Switch,{checked:e.status==="active",disabled:o,label:e.status==="active"?t("card.pause"):t("card.resume"),onChange:()=>i()})}),(0,b.jsx)("span",{onClick:f=>f.stopPropagation(),children:(0,b.jsx)(X.Menu,{open:d,onClose:()=>a(!1),align:"end",portal:!0,dense:!0,anchor:(0,b.jsx)(X.Tooltip,{label:t("card.more"),side:"bottom",delayMs:500,portal:!0,children:(0,b.jsx)("button",{type:"button",className:"dsh-st-row-icon","aria-label":t("card.more"),style:{...Mt,display:"inline-flex",alignItems:"center",justifyContent:"center",padding:0,border:"1px solid var(--dsw-alias-border-l2, rgba(255,255,255,.15))",borderRadius:"var(--dsw-radius-sm, 6px)",background:"transparent",color:"var(--dsw-alias-label-secondary)",cursor:"pointer"},onClick:()=>a(f=>!f),children:(0,b.jsx)(Gn,{size:16})})}),items:[{id:"run",label:t("menu.run"),disabled:o},{id:"edit",label:t("menu.edit"),disabled:o},{id:"delete",label:t("menu.delete"),danger:!0,disabled:o}],onSelect:f=>{a(!1),f==="run"&&s(),f==="edit"&&r(),f==="delete"&&l()}})})]}),(0,b.jsx)("h3",{children:e.name}),(0,b.jsx)("p",{children:e.prompt}),(0,b.jsxs)("div",{className:"dsh-st-card-foot",children:[(0,b.jsxs)("span",{className:"dsh-st-chip",children:[(0,b.jsx)(ue,{size:14}),qe(e.schedule,t)]}),(0,b.jsx)("span",{children:e.nextRunAt===void 0?t("stats.noneScheduled"):t("history.nextApprox",{when:$e(e.nextRunAt,n,t)})})]})]})}function es({run:e,t}){let n=un(e.startedAt,e.finishedAt);return(0,b.jsxs)("article",{className:`dsh-st-run is-${e.status}`,children:[(0,b.jsx)("strong",{children:e.automationName}),(0,b.jsxs)("p",{children:[(0,b.jsx)("span",{children:pn(e.startedAt??e.scheduledFor)}),n!==void 0&&(0,b.jsx)("span",{children:n}),(0,b.jsx)("span",{children:on(e.trigger,t)})]})]})}var Ne="dsh-automation",Po={tab:"Scheduled tasks","sidebar.tab":"Scheduled","sidebar.tabs":"Workspace views","sidebar.tasksTab":"Tasks","sidebar.views":"Scheduled views","sidebar.viewOverview":"Task overview","sidebar.runsTab":"Records","sidebar.overviewTab":"Tasks","records.groupReadOnly":"Scheduled task groups cannot be renamed or deleted here.","records.groupByTask":"By task","records.sectionTasks":"Tasks","sidebar.treeUnavailable":"The official task tree is unavailable in this Host.","sidebar.workspaces":"Workspaces","sidebar.search":"Search","sidebar.clearSearch":"Clear search","header.lead":"Plan automatic tasks, or trigger them by hand. Describe the recurring work in any chat to create it quickly.","header.githubProject":"GitHub","header.githubFeedback":"Issues","examples.title":"Recommended examples","examples.1.title":"Daily regression check","examples.1.body":"Create a scheduled task that runs every day and inspects new test failures.","examples.1.chip":"Every day 09:00","examples.2.title":"Weekly dependency review","examples.2.body":"Create a scheduled task that runs every Monday and reports outdated or risky dependencies.","examples.2.chip":"Monday 10:00","examples.3.title":"Weekday morning briefing","examples.3.body":"Create a scheduled task that runs on weekdays and summarizes overnight changes.","examples.3.chip":"Weekdays 08:00","chat.prompt":"I want to create a scheduled task that runs every [interval] and does [the actual task]","menu.run":"Run task","menu.edit":"Edit task","menu.delete":"Delete task","session.taskSettings":"Task settings","history.range.day":"By day","history.range.week":"By week","history.range.month":"By month","history.allTasks":"All tasks","history.allStatus":"All statuses","history.today":"Today","history.yesterday":"Yesterday","history.date":"{date}","history.week":"Week of {date}","history.month":"{month}","history.nextApprox":"Next run in about {when}","time.withinMinute":"about {count} minutes","time.withinHour":"about {count} hours","time.withinDay":"about {count} days","search.placeholder":"Search scheduled tasks...","action.chatCreate":"Create in chat","action.create":"New scheduled task","banner.wake":"Scheduled tasks run only while this computer stays awake.","tabs.mine":"Tasks","tabs.runs":"Run history","sort.created.asc":"Created time ascending","sort.created.desc":"Created time descending","sort.planned.asc":"Planned time ascending","sort.planned.desc":"Planned time descending","sort.default.save":"Set as default","sort.default.saved":"Default","form.workspace":"Workspace","form.fieldWorkspace":"Workspace","form.fieldModel":"Model","form.providerAccount":"DeepSeek account","form.fieldEffort":"Reasoning","form.fieldPermission":"Permission","form.slashHint":"Type / to insert a skill","form.slashEmpty":"No matching skills","form.addWorkspace":"Add workspace","form.workspaceRequired":"Add a registered workspace before saving.","form.workspaceUnavailable":"This Host cannot create workspaces.","form.addWorkspaceFailed":"Could not add the workspace.","form.workspacePath":"Folder path","form.workspacePathPlaceholder":"D:\\work\\project","form.model":"Model","form.modelSelect":"Select model","form.effort":"Reasoning","form.effort.none":"Default","form.effort.low":"Low","form.effort.medium":"Medium","form.effort.high":"High","form.error.workspace":"Select a workspace.","modal.title":"New scheduled task","modal.edit":"Edit scheduled task","modal.save":"Save","stats.next":"Next run","stats.noneScheduled":"None scheduled","section.refresh":"Refresh","empty.title":"Let recurring coding work run itself","empty.body":"Save a self-contained task, a schedule, and a permission boundary. Every run starts in a new Session.","runs.empty":"No runs yet. Run one now, or wait for the next scheduled occurrence.","overview.empty":"No scheduled tasks yet. Create one in Settings.","form.title":"Create automation","form.subtitle":"Write a complete, standalone task. Scheduled runs do not inherit this conversation.","form.name":"Name","form.namePlaceholder":"Daily regression triage","form.prompt":"Task prompt","form.promptPlaceholder":"Inspect new test failures, locate the regression, and propose a verified minimal fix\u2026","form.schedule":"Schedule","form.planTime":"Schedule","form.hourly":"Hourly","form.monthly":"Monthly","form.custom":"Every few days","form.intervalHint":"Runs every this many minutes, starting now.","form.customHint":"Runs every this many days at the selected time.","form.atTime":"at","form.minutesShort":"min","form.daysShort":"days","form.monthDay":"Day {day} of month","form.skills":"Skills","form.skillsEmpty":"No skills available","schedule.hourlyAt":"Every hour at :{minute}","schedule.monthlyAt":"Monthly on day {day} \xB7 {time}","schedule.customAt":"Every {count} days \xB7 {time}","form.once":"Does not repeat","form.interval":"Interval","form.daily":"Daily","form.weekly":"Weekly","form.runAt":"Run at","form.every":"Every","form.minutes":"minutes","form.time":"Time","form.days":"Weekdays","form.timeZone":"Time zone","form.maxConcurrentRuns":"Concurrency","form.maxConcurrentRunsHint":"Queued and running executions share this limit. Defaults to 1; when full, scheduled triggers are skipped and manual runs are rejected.","form.error.maxConcurrentRuns":"Enter a positive whole number for concurrent runs.","form.permission":"Permission boundary","permission.readOnly":"Read Only","permission.workspaceWrite":"Workspace Write","permission.fullAccess":"Full access","form.cancel":"Cancel","form.submit":"Create automation","form.submitting":"Creating\u2026","form.error.name":"Enter a name.","form.error.prompt":"Enter a complete, standalone task prompt.","form.error.once":"Choose a valid future date and time.","form.error.interval":"The interval must be between 1 and 43,200 minutes.","form.error.weekdays":"Select at least one weekday.","day.1":"Mon","day.2":"Tue","day.3":"Wed","day.4":"Thu","day.5":"Fri","day.6":"Sat","day.7":"Sun","status.active":"Active","status.paused":"Paused","status.queued":"Queued","status.running":"Running","status.succeeded":"Succeeded","status.failed":"Failed","status.skipped":"Skipped","status.cancelled":"Cancelled","status.interrupted":"Interrupted","schedule.onceAt":"Once \xB7 {time}","schedule.everyMinutes":"Every {count} minutes","schedule.dailyAt":"Daily \xB7 {time}","schedule.weeklyAt":"{days} \xB7 {time}","card.pause":"Pause","card.resume":"Resume","card.more":"More actions","card.confirmDelete":"Delete this automation?","card.confirmDeleteHint":"Run history is kept for audit.","card.confirm":"Delete","card.cancel":"Cancel","run.trigger.schedule":"Scheduled","run.trigger.manual":"Manual",loading:"Loading automations\u2026","error.title":"Automations could not be loaded","error.retry":"Try again","error.action":"The action failed. Please try again.","error.taskMissing":"This scheduled task no longer exists.","error.offline":"Could not reach the local automation service. Check that DSH is still running and try again.","time.minutes":"{count}m","time.hours":"{count}h","time.days":"{count}d","time.months":"{count}mo","time.years":"{count}y","time.ago":"{text} ago","time.now":"now","time.minuteAgo":"{count}m ago","time.hourAgo":"{count}h ago","time.dayAgo":"{count}d ago","time.inMinute":"in {count}m","time.inHour":"in {count}h","time.inDay":"in {count}d"},Do={tab:"\u5B9A\u65F6\u4EFB\u52A1","sidebar.tab":"\u5B9A\u65F6","sidebar.tabs":"\u5DE5\u4F5C\u533A\u5206\u7C7B","sidebar.tasksTab":"\u4EFB\u52A1","sidebar.views":"\u5B9A\u65F6\u9875\u89C6\u56FE","sidebar.viewOverview":"\u4EFB\u52A1\u603B\u89C8","sidebar.runsTab":"\u8BB0\u5F55","sidebar.overviewTab":"\u4EFB\u52A1","records.groupReadOnly":"\u5B9A\u65F6\u4EFB\u52A1\u5206\u7EC4\u4E0D\u80FD\u5728\u8FD9\u91CC\u91CD\u547D\u540D\u6216\u5220\u9664\u3002","records.groupByTask":"\u6309\u4EFB\u52A1","records.sectionTasks":"\u4EFB\u52A1","sidebar.treeUnavailable":"\u5F53\u524D\u5BBF\u4E3B\u672A\u63D0\u4F9B\u5B98\u65B9\u4EFB\u52A1\u6811\u3002","sidebar.workspaces":"\u5DE5\u4F5C\u533A","sidebar.search":"\u641C\u7D22","sidebar.clearSearch":"\u6E05\u9664\u641C\u7D22","header.lead":"\u6309\u8BA1\u5212\u81EA\u52A8\u6267\u884C\u4EFB\u52A1\uFF0C\u4E5F\u53EF\u968F\u65F6\u624B\u52A8\u89E6\u53D1\u3002\u5728\u4EFB\u610F\u5BF9\u8BDD\u4E2D\u63CF\u8FF0\u4F60\u60F3\u5B9A\u671F\u505A\u7684\u4E8B\uFF0C\u5373\u53EF\u5FEB\u901F\u521B\u5EFA","header.githubProject":"GitHub","header.githubFeedback":"\u95EE\u9898\u53CD\u9988","examples.title":"\u63A8\u8350\u6848\u4F8B","examples.1.title":"\u6BCF\u65E5\u56DE\u5F52\u68C0\u67E5","examples.1.body":"\u6211\u8981\u521B\u5EFA\u4E00\u4E2A\u5B9A\u65F6\u4EFB\u52A1\uFF0C\u6BCF\u3010\u5929\u3011\u6267\u884C\u3010\u68C0\u67E5\u65B0\u589E\u6D4B\u8BD5\u5931\u8D25\u5E76\u7ED9\u51FA\u6700\u5C0F\u4FEE\u590D\u3011\u3002","examples.1.chip":"\u6BCF\u5929 09:00","examples.2.title":"\u6BCF\u5468\u4F9D\u8D56\u5DE1\u68C0","examples.2.body":"\u6211\u8981\u521B\u5EFA\u4E00\u4E2A\u5B9A\u65F6\u4EFB\u52A1\uFF0C\u6BCF\u3010\u5468\u4E00\u3011\u6267\u884C\u3010\u68C0\u67E5\u8FC7\u671F\u6216\u6709\u98CE\u9669\u7684\u4F9D\u8D56\u5E76\u7ED9\u51FA\u5904\u7406\u5EFA\u8BAE\u3011\u3002","examples.2.chip":"\u6BCF\u5468\u4E00 10:00","examples.3.title":"\u5DE5\u4F5C\u65E5\u65E9\u62A5","examples.3.body":"\u6211\u8981\u521B\u5EFA\u4E00\u4E2A\u5B9A\u65F6\u4EFB\u52A1\uFF0C\u6BCF\u3010\u5DE5\u4F5C\u65E5\u3011\u6267\u884C\u3010\u6C47\u603B\u6628\u591C\u4ED3\u5E93\u53D8\u66F4\u5E76\u7ED9\u51FA\u4ECA\u65E5\u5173\u6CE8\u70B9\u3011\u3002","examples.3.chip":"\u5DE5\u4F5C\u65E5 08:00","chat.prompt":"\u6211\u8981\u521B\u5EFA\u4E00\u4E2A\u5B9A\u65F6\u4EFB\u52A1\uFF0C\u6BCF\u3010\u65F6\u95F4\u95F4\u9694\u3011\u6267\u884C\u3010\u5177\u4F53\u4EFB\u52A1\u3011","menu.run":"\u6267\u884C\u4EFB\u52A1","menu.edit":"\u7F16\u8F91\u4EFB\u52A1","menu.delete":"\u5220\u9664\u4EFB\u52A1","session.taskSettings":"\u4EFB\u52A1\u8BBE\u7F6E","history.range.day":"\u6309\u5929","history.range.week":"\u6309\u5468","history.range.month":"\u6309\u6708","history.allTasks":"\u5168\u90E8\u4EFB\u52A1","history.allStatus":"\u5168\u90E8\u72B6\u6001","history.today":"\u4ECA\u5929","history.yesterday":"\u6628\u5929","history.date":"{date}","history.week":"{date} \u5F53\u5468","history.month":"{month}","history.nextApprox":"\u4E0B\u6B21\u6267\u884C \u5927\u7EA6 {when}","time.withinMinute":"{count} \u5206\u949F\u5185","time.withinHour":"{count} \u5C0F\u65F6\u5185","time.withinDay":"{count} \u5929\u5185","search.placeholder":"\u641C\u7D22\u5B9A\u65F6\u4EFB\u52A1...","action.chatCreate":"\u901A\u8FC7\u5BF9\u8BDD\u521B\u5EFA","action.create":"\u65B0\u5EFA\u5B9A\u65F6\u4EFB\u52A1","banner.wake":"\u5B9A\u65F6\u4EFB\u52A1\u4EC5\u5728\u7535\u8111\u4FDD\u6301\u5524\u9192\u65F6\u8FD0\u884C","tabs.mine":"\u5B9A\u65F6\u4EFB\u52A1","tabs.runs":"\u6267\u884C\u8BB0\u5F55","sort.created.asc":"\u6309\u521B\u5EFA\u65F6\u95F4\u5347\u5E8F","sort.created.desc":"\u6309\u521B\u5EFA\u65F6\u95F4\u5012\u5E8F","sort.planned.asc":"\u6309\u8BA1\u5212\u65F6\u95F4\u5347\u5E8F","sort.planned.desc":"\u6309\u8BA1\u5212\u65F6\u95F4\u5012\u5E8F","sort.default.save":"\u8BBE\u4E3A\u9ED8\u8BA4","sort.default.saved":"\u9ED8\u8BA4","form.workspace":"\u5DE5\u4F5C\u76EE\u5F55","form.fieldWorkspace":"\u5DE5\u4F5C\u533A","form.fieldModel":"\u6A21\u578B","form.providerAccount":"DeepSeek \u8D26\u53F7","form.fieldEffort":"\u63A8\u7406\u7B49\u7EA7","form.fieldPermission":"\u6743\u9650","form.slashHint":"\u8F93\u5165 / \u53EC\u56DE\u6280\u80FD","form.slashEmpty":"\u6CA1\u6709\u5339\u914D\u7684\u6280\u80FD","form.addWorkspace":"\u6DFB\u52A0\u5DE5\u4F5C\u533A","form.workspaceRequired":"\u8BF7\u5148\u6DFB\u52A0\u5DF2\u767B\u8BB0\u7684\u5DE5\u4F5C\u533A\uFF0C\u5426\u5219\u65E0\u6CD5\u4FDD\u5B58\u3002","form.workspaceUnavailable":"\u5F53\u524D\u5BBF\u4E3B\u4E0D\u80FD\u65B0\u5EFA\u5DE5\u4F5C\u533A\u3002","form.addWorkspaceFailed":"\u6DFB\u52A0\u5DE5\u4F5C\u533A\u5931\u8D25\u3002","form.workspacePath":"\u76EE\u5F55\u8DEF\u5F84","form.workspacePathPlaceholder":"D:\\work\\project","form.model":"\u6A21\u578B","form.modelSelect":"\u9009\u62E9\u6A21\u578B","form.effort":"\u63A8\u7406\u7B49\u7EA7","form.effort.none":"\u9ED8\u8BA4","form.effort.low":"Low","form.effort.medium":"Medium","form.effort.high":"High","form.error.workspace":"\u8BF7\u9009\u62E9\u5DE5\u4F5C\u533A\u3002","modal.title":"\u65B0\u5EFA\u5B9A\u65F6\u4EFB\u52A1","modal.edit":"\u7F16\u8F91\u5B9A\u65F6\u4EFB\u52A1","modal.save":"\u4FDD\u5B58","stats.next":"\u4E0B\u6B21\u8FD0\u884C","stats.noneScheduled":"\u6682\u65E0\u8BA1\u5212","section.refresh":"\u5237\u65B0","empty.title":"\u8BA9\u91CD\u590D\u7684\u7F16\u7801\u5DE5\u4F5C\u81EA\u52A8\u8FD0\u884C","empty.body":"\u8BBE\u7F6E\u4E00\u4E2A\u76EE\u6807\u660E\u786E\u7684\u4EFB\u52A1\u3001\u8FD0\u884C\u65F6\u95F4\u548C\u6743\u9650\u8FB9\u754C\u3002\u6BCF\u6B21\u8FD0\u884C\u90FD\u4ECE\u5168\u65B0 Session \u5F00\u59CB\u3002","runs.empty":"\u8FD8\u6CA1\u6709\u8FD0\u884C\u8BB0\u5F55\u3002\u4F60\u53EF\u4EE5\u7ACB\u5373\u8FD0\u884C\u4E00\u6B21\uFF0C\u6216\u7B49\u5F85\u8BA1\u5212\u89E6\u53D1\u3002","overview.empty":"\u6682\u65E0\u5B9A\u65F6\u4EFB\u52A1\uFF0C\u53EF\u5230\u8BBE\u7F6E\u9875\u521B\u5EFA\u3002","form.title":"\u521B\u5EFA\u81EA\u52A8\u5316","form.subtitle":"\u8BF7\u5199\u5B8C\u6574\u3001\u72EC\u7ACB\u7684\u4EFB\u52A1\u8BF4\u660E\uFF1A\u5B9A\u65F6\u8FD0\u884C\u4E0D\u4F1A\u7EE7\u627F\u5F53\u524D\u5BF9\u8BDD\u3002","form.name":"\u540D\u79F0","form.namePlaceholder":"\u6BCF\u65E5\u56DE\u5F52\u6D4B\u8BD5\u5206\u8BCA","form.prompt":"\u4EFB\u52A1\u6307\u4EE4","form.promptPlaceholder":"\u68C0\u67E5\u65B0\u589E\u6D4B\u8BD5\u5931\u8D25\uFF0C\u5B9A\u4F4D\u56DE\u5F52\u539F\u56E0\uFF0C\u5E76\u7ED9\u51FA\u7ECF\u8FC7\u9A8C\u8BC1\u7684\u6700\u5C0F\u4FEE\u590D\u65B9\u6848\u2026\u2026","form.schedule":"\u8FD0\u884C\u8BA1\u5212","form.planTime":"\u8BA1\u5212\u65F6\u95F4","form.hourly":"\u6BCF\u5C0F\u65F6","form.monthly":"\u6BCF\u6708","form.custom":"\u6BCF\u9694\u51E0\u5929","form.intervalHint":"\u4ECE\u73B0\u5728\u8D77\uFF0C\u6BCF\u9694\u8FD9\u4E48\u591A\u5206\u949F\u8FD0\u884C\u4E00\u6B21\u3002","form.customHint":"\u6BCF\u9694\u8FD9\u4E48\u591A\u5929\uFF0C\u5728\u6240\u9009\u65F6\u95F4\u8FD0\u884C\u4E00\u6B21\u3002","form.atTime":"\u4E8E","form.minutesShort":"\u5206","form.daysShort":"\u5929","form.monthDay":"\u6BCF\u6708\u7B2C {day} \u5929","form.skills":"\u6280\u80FD","form.skillsEmpty":"\u6682\u65E0\u53EF\u7528\u6280\u80FD","schedule.hourlyAt":"\u6BCF\u5C0F\u65F6 :{minute}","schedule.monthlyAt":"\u6BCF\u6708 {day} \u65E5 \xB7 {time}","schedule.customAt":"\u6BCF {count} \u5929 \xB7 {time}","form.once":"\u4E0D\u91CD\u590D","form.interval":"\u95F4\u9694","form.daily":"\u6BCF\u5929","form.weekly":"\u6BCF\u5468","form.runAt":"\u8FD0\u884C\u65F6\u95F4","form.every":"\u6BCF\u9694","form.minutes":"\u5206\u949F","form.time":"\u65F6\u95F4","form.days":"\u661F\u671F","form.timeZone":"\u65F6\u533A","form.maxConcurrentRuns":"\u5E76\u53D1\u6570\u91CF","form.maxConcurrentRunsHint":"\u540C\u4E00\u4EFB\u52A1\u7684\u6392\u961F\u53CA\u8FD0\u884C\u6B21\u6570\u5171\u7528\u6B64\u4E0A\u9650\uFF0C\u9ED8\u8BA4 1\uFF1B\u6EE1\u989D\u65F6\u8DF3\u8FC7\u5F53\u6B21\u5B9A\u65F6\u89E6\u53D1\uFF0C\u624B\u52A8\u8FD0\u884C\u5C06\u88AB\u62D2\u7EDD\u3002","form.error.maxConcurrentRuns":"\u5E76\u53D1\u6570\u91CF\u5FC5\u987B\u4E3A\u5927\u4E8E\u7B49\u4E8E 1 \u7684\u6574\u6570\u3002","form.permission":"\u6743\u9650\u8FB9\u754C","permission.readOnly":"\u53EA\u8BFB","permission.workspaceWrite":"\u5DE5\u4F5C\u533A\u5199\u5165","permission.fullAccess":"\u5B8C\u5168\u8BBF\u95EE","form.cancel":"\u53D6\u6D88","form.submit":"\u521B\u5EFA\u81EA\u52A8\u5316","form.submitting":"\u521B\u5EFA\u4E2D\u2026","form.error.name":"\u8BF7\u8F93\u5165\u540D\u79F0\u3002","form.error.prompt":"\u8BF7\u8F93\u5165\u5B8C\u6574\u3001\u72EC\u7ACB\u7684\u4EFB\u52A1\u6307\u4EE4\u3002","form.error.once":"\u8BF7\u9009\u62E9\u6709\u6548\u7684\u672A\u6765\u65E5\u671F\u548C\u65F6\u95F4\u3002","form.error.interval":"\u8FD0\u884C\u95F4\u9694\u5FC5\u987B\u5728 1 \u5230 43,200 \u5206\u949F\u4E4B\u95F4\u3002","form.error.weekdays":"\u8BF7\u81F3\u5C11\u9009\u62E9\u4E00\u5929\u3002","day.1":"\u5468\u4E00","day.2":"\u5468\u4E8C","day.3":"\u5468\u4E09","day.4":"\u5468\u56DB","day.5":"\u5468\u4E94","day.6":"\u5468\u516D","day.7":"\u5468\u65E5","status.active":"\u5DF2\u542F\u7528","status.paused":"\u5DF2\u6682\u505C","status.queued":"\u6392\u961F\u4E2D","status.running":"\u8FD0\u884C\u4E2D","status.succeeded":"\u5DF2\u5B8C\u6210","status.failed":"\u5931\u8D25","status.skipped":"\u5DF2\u8DF3\u8FC7","status.cancelled":"\u5DF2\u53D6\u6D88","status.interrupted":"\u5DF2\u4E2D\u65AD","schedule.onceAt":"\u5355\u6B21 \xB7 {time}","schedule.everyMinutes":"\u6BCF {count} \u5206\u949F","schedule.dailyAt":"\u6BCF\u5929 \xB7 {time}","schedule.weeklyAt":"{days} \xB7 {time}","card.pause":"\u6682\u505C","card.resume":"\u6062\u590D","card.more":"\u66F4\u591A\u64CD\u4F5C","card.confirmDelete":"\u786E\u8BA4\u5220\u9664\u8FD9\u4E2A\u81EA\u52A8\u5316\uFF1F","card.confirmDeleteHint":"\u8FD0\u884C\u5386\u53F2\u4F1A\u4FDD\u7559\u7528\u4E8E\u5BA1\u8BA1\u3002","card.confirm":"\u786E\u8BA4\u5220\u9664","card.cancel":"\u53D6\u6D88","run.trigger.schedule":"\u5B9A\u65F6\u89E6\u53D1","run.trigger.manual":"\u624B\u52A8\u89E6\u53D1",loading:"\u6B63\u5728\u52A0\u8F7D\u81EA\u52A8\u5316\u2026","error.title":"\u65E0\u6CD5\u52A0\u8F7D\u81EA\u52A8\u5316","error.retry":"\u91CD\u8BD5","error.action":"\u64CD\u4F5C\u5931\u8D25\uFF0C\u8BF7\u91CD\u8BD5\u3002","error.taskMissing":"\u8BE5\u5B9A\u65F6\u4EFB\u52A1\u5DF2\u4E0D\u5B58\u5728\u3002","error.offline":"\u65E0\u6CD5\u8FDE\u63A5\u672C\u673A\u81EA\u52A8\u5316\u670D\u52A1\uFF0C\u8BF7\u786E\u8BA4 DSH \u4ECD\u5728\u8FD0\u884C\u540E\u91CD\u8BD5\u3002","time.minutes":"{count}\u5206\u949F","time.hours":"{count}\u5C0F\u65F6","time.days":"{count}\u5929","time.months":"{count}\u4E2A\u6708","time.years":"{count}\u5E74","time.ago":"{text}\u524D","time.now":"\u521A\u521A","time.minuteAgo":"{count} \u5206\u949F\u524D","time.hourAgo":"{count} \u5C0F\u65F6\u524D","time.dayAgo":"{count} \u5929\u524D","time.inMinute":"{count} \u5206\u949F\u540E","time.inHour":"{count} \u5C0F\u65F6\u540E","time.inDay":"{count} \u5929\u540E"};var Lo="__dshNativeTabs";function Ho(e,t,n){let o=t?.sessionOpeners?.slice().sort((r,i)=>(r.order??0)-(i.order??0)).find(r=>r!==null&&typeof r?.matchSession=="function"&&r.matchSession(e));if(o===void 0){n?.(e);return}try{o.open(e,n)}catch{n?.(e)}}var _o=new WeakMap;function Wo(e,t){if(e===null||typeof e!="object")return e;let n=t?.sessionFilters??[];if(n.length===0)return e;let o=typeof t?.getRevision=="function"?t.getRevision():null,r=t===void 0?void 0:_o.get(t);if(o!==null&&t!==void 0&&r===void 0&&(r=new WeakMap,_o.set(t,r)),o!==null){let d=r?.get(e);if(d!==void 0&&d.revision===o)return d.result}let i=(e.ids??[]).filter(d=>n.every(a=>a(String(d))));if(i.length===(e.ids??[]).length)return o!==null&&r?.set(e,{revision:o,result:e}),e;let s={};for(let d of i){let a=e.byId?.[d];a!==void 0&&(s[d]=a)}let l={...e,ids:i,byId:s};return o!==null&&r?.set(e,{revision:o,result:l}),l}function Fo(e){let t=new Map,n=[],o=[],r=new Set,i=[],s=0,l=()=>{i=[...t.values()].sort((a,f)=>(a.order??0)-(f.order??0))},d=()=>{s+=1;for(let a of r)a()};return{version:1,officialTree:e,sessionFilters:n,sessionOpeners:o,getTabs(){return i},getRevision(){return s},subscribe(a){return r.add(a),()=>{r.delete(a)}},insert(a){if(a.id==="")return()=>{};let f=t.get(a.id);return t.set(a.id,a),f!==a&&(l(),d()),()=>{t.get(a.id)===a&&(t.delete(a.id),l(),d())}},addSessionFilter(a){return n.push(a),d(),()=>{let f=n.indexOf(a);f>=0&&n.splice(f,1),d()}},addSessionOpener(a){return o.push(a),d(),()=>{let f=o.indexOf(a);f>=0&&o.splice(f,1),d()}}}}function Bo(e){if(e==null||typeof e!="object"&&typeof e!="function")return;let t=e[Lo];if(t==null||typeof t!="object")return;let n=t;return n.version===1&&typeof n.getTabs=="function"&&typeof n.subscribe=="function"&&typeof n.insert=="function"?t:void 0}function $t(e,t){try{e[Lo]=t}catch{}return t}function zo(e){if(!(e==null||typeof e!="object"&&typeof e!="function"))return Bo("component"in e?e.component:e)}function jo(e){if(e==null)return!1;let t=e;return t.__dshNativeTabHost===!0||t.__dshNativeTabWrapped===!0||t.__imConnectWrapped===!0?!0:Bo(e)!==void 0}var N=require("react"),tr=require("@deepseek-ai/dsh-client-ui-primitives");var fe=require("react");var xe=require("@deepseek-ai/dsh-client-ui-primitives");var M=require("react/jsx-runtime"),lt="dsh-st-rail-panel",dt=typeof window>"u"?void 0:window.localStorage;function qo({t:e,view:t,onChange:n}){return(0,M.jsx)(xe.SegmentedTabs,{className:"dsh-st-rail-views",label:e("sidebar.views"),value:t,items:[{value:"runs",id:"dsh-st-rail-view-runs",panelId:lt,label:(0,M.jsxs)("span",{style:{display:"inline-flex",alignItems:"center",justifyContent:"center",gap:5},children:[(0,M.jsx)(Xe,{size:14}),(0,M.jsx)("span",{children:e("sidebar.runsTab")})]})},{value:"overview",id:"dsh-st-rail-view-overview",panelId:lt,label:(0,M.jsxs)("span",{style:{display:"inline-flex",alignItems:"center",justifyContent:"center",gap:5},children:[(0,M.jsx)(Jn,{size:14}),(0,M.jsx)("span",{children:e("sidebar.overviewTab")})]})}],onChange:n})}function ct({t:e,automations:t,serverNow:n,openTaskSettings:o,openCreateTask:r,onToggleAutomation:i}){let[s,l]=(0,fe.useState)(()=>be(dt,Ue)?.key??"planned"),[d,a]=(0,fe.useState)(()=>be(dt,Ue)?.direction??"asc"),[f,p]=(0,fe.useState)(()=>new Set),[T,w]=(0,fe.useState)(""),[h,v]=(0,fe.useState)(!1),u=(0,fe.useMemo)(()=>new Date(n??Date.now()),[n]),k=(0,fe.useMemo)(()=>{let I=Ke(t,s,d);return Rn(I)},[t,d,s]),g=T.trim().toLowerCase(),A=g===""?k:k.filter(I=>I.name.toLowerCase().includes(g)),R=(0,fe.useMemo)(()=>new Map(t.map(I=>[I.id,qe(I.schedule,e)])),[t,e]),D=(I,H)=>{i===void 0||f.has(I)||(p(B=>new Set(B).add(I)),Promise.resolve(i(I,H)).catch(B=>{console.warn("[dsh-automation] \u5207\u6362\u4EFB\u52A1\u72B6\u6001\u5931\u8D25",B)}).finally(()=>{p(B=>{let U=new Set(B);return U.delete(I),U})}))};return(0,M.jsxs)("div",{className:"dsh-st-overview",children:[(0,M.jsxs)("div",{className:"dsh-st-overview-head",children:[(0,M.jsxs)("div",{className:"dsh-st-overview-title",children:[(0,M.jsx)("strong",{children:e("sidebar.viewOverview")}),(0,M.jsx)("span",{"aria-label":`${A.length}`,children:A.length})]}),(0,M.jsxs)("div",{className:"dsh-st-overview-actions",children:[(0,M.jsx)(xe.Tooltip,{label:e(h?"sidebar.clearSearch":"sidebar.search"),side:"bottom",delayMs:500,children:(0,M.jsx)("button",{type:"button",className:h?"dsh-st-n-head-btn is-on":"dsh-st-n-head-btn","aria-label":e(h?"sidebar.clearSearch":"sidebar.search"),"aria-expanded":h,onClick:()=>{h&&w(""),v(I=>!I)},children:h?(0,M.jsx)(Ct,{size:12}):(0,M.jsx)(Nt,{size:14})})}),(0,M.jsx)(nt,{t:e,iconOnly:!0,className:"dsh-st-overview-sort",...dt===void 0?{}:{storage:dt},storageKey:Ue,sortKey:s,sortDirection:d,onSelect:(I,H)=>{l(I),a(H)}}),r===void 0?null:(0,M.jsx)(xe.Tooltip,{label:e("action.create"),side:"bottom",delayMs:500,children:(0,M.jsx)("button",{type:"button",className:"dsh-st-n-head-btn","aria-label":e("action.create"),onClick:r,children:(0,M.jsx)(Zn,{size:16})})})]})]}),h?(0,M.jsxs)("div",{className:"dsh-st-overview-search",children:[(0,M.jsx)(Nt,{size:11}),(0,M.jsx)("input",{autoFocus:!0,value:T,"aria-label":e("search.placeholder"),placeholder:e("search.placeholder"),onChange:I=>w(I.target.value)}),T===""?null:(0,M.jsx)("button",{type:"button","aria-label":e("sidebar.clearSearch"),onClick:()=>w(""),children:(0,M.jsx)(Ct,{size:12})})]}):null,A.length===0?(0,M.jsx)("div",{className:"dsh-st-rail-empty",children:e("overview.empty")}):A.map(I=>(0,M.jsx)(ts,{t:e,row:I,now:u,scheduleSummary:R.get(I.id)??"",toggleDisabled:i===void 0||f.has(I.id),onToggleAutomation:D,...o===void 0?{}:{openTaskSettings:o}},I.id))]})}function ts({t:e,row:t,now:n,scheduleSummary:o,openTaskSettings:r,toggleDisabled:i,onToggleAutomation:s}){let l=t.status!=="active",d=t.nextRunAt===void 0?e("stats.noneScheduled"):$e(t.nextRunAt,n,e),a=t.nextRunAt===void 0?e("stats.noneScheduled"):cn(t.nextRunAt,n,e),f=`${e("stats.next")}: ${d}`,p=e(l?"card.resume":"card.pause");return(0,M.jsxs)("div",{className:`dsh-st-overview-row${l?" is-paused":""}`,children:[(0,M.jsxs)("button",{type:"button",className:"dsh-st-overview-open",disabled:r===void 0,onClick:()=>{r?.({automationId:t.id,name:t.name,sessionIds:[]})},children:[(0,M.jsxs)("span",{className:"dsh-st-overview-copy",children:[(0,M.jsx)("span",{className:"dsh-st-overview-name",children:t.name}),o!==""&&(0,M.jsxs)("span",{className:"dsh-st-overview-schedule",children:[(0,M.jsx)(ue,{size:14}),(0,M.jsx)("span",{children:o})]})]}),(0,M.jsx)("span",{className:"dsh-st-overview-next",title:f,"aria-label":f,children:(0,M.jsx)("strong",{children:a})})]}),(0,M.jsx)("span",{className:"dsh-st-overview-toggle",title:p,children:(0,M.jsx)(xe.Switch,{checked:!l,disabled:i,label:p,onChange:()=>{s?.(t.id,Ye(t.status))}})})]})}function Kt(e){return Object.fromEntries(Object.entries(e).map(([t,n])=>[t,[...n]]))}function ns(){let e={groupBy:"task",orderBy:"updated",groupExpansion:{},sessionOrderByAccount:{},archivedFilter:"default"},t=new Set,n=r=>{e=r;for(let i of t)i()};return{getSnapshot:()=>e,subscribe(r){return t.add(r),()=>t.delete(r)},actions:{setGroupBy(r){r!==e.groupBy&&n({...e,groupBy:r})},setOrderBy(r,i){r!==e.orderBy&&n({...e,orderBy:r,sessionOrderByAccount:r==="manual"?Kt(i):{}})},setGroupExpanded(r,i){e.groupExpansion[r]!==i&&n({...e,groupExpansion:{...e.groupExpansion,[r]:i}})},retainAccountKeys(r){let i=new Set(r),s=Object.fromEntries(Object.entries(e.groupExpansion).filter(([d])=>i.has(d))),l=Object.fromEntries(Object.entries(e.sessionOrderByAccount).filter(([d])=>i.has(d)));Object.keys(s).length===Object.keys(e.groupExpansion).length&&Object.keys(l).length===Object.keys(e.sessionOrderByAccount).length||n({...e,groupExpansion:s,sessionOrderByAccount:l})},setSessionOrder(r,i,s){let l=e.orderBy==="manual"?{...e.sessionOrderByAccount,[r]:[...i]}:{...Kt(s),[r]:[...i]};n({...e,orderBy:"manual",sessionOrderByAccount:l})},syncSessionOrders(r){e.orderBy==="manual"&&n({...e,sessionOrderByAccount:{...e.sessionOrderByAccount,...Kt(r)}})},pinSessionOrder(r,i,s){let l=new Set(i),d=Object.fromEntries(Object.entries(s.members).map(([a,f])=>{let p=e.sessionOrderByAccount[a]??f,T=l.has(a)?[r,...p.filter(w=>w!==r)]:[...p];return[a,T]}));n({...e,sessionOrderByAccount:d})},setArchivedFilter(r){r!==e.archivedFilter&&n({...e,archivedFilter:r})},ensureExpanded(r){let i=!1,s={...e.groupExpansion};for(let l of r)l===""||s[l]!==void 0||(s[l]=!0,i=!0);i&&n({...e,groupExpansion:s})}}}}var $o;function Ko(){return $o??=ns(),$o}var Vo=require("react"),Uo=require("react-dom"),Go=require("react-dom/client");function Ce(e,t=14){let n=document.createElement("div"),o=(0,Go.createRoot)(n);(0,Uo.flushSync)(()=>{o.render((0,Vo.createElement)(e,{size:t}))});let r=n.innerHTML;return o.unmount(),r}var Vt="data-dsh-automation-task-settings",os='[data-row-key^="workspace:"]',Gt='[role="menu"]',He='button[role="menuitem"]',rs,ss,is;function as(){return rs??=Ce(oo)}function ds(){return ss??=Ce(ro)}function ls(){return is??=Ce(so)}function Zo(e,t,n){for(let o of e.querySelectorAll(He))o!==t&&(!o.hasAttribute("data-dsham-archive-workspace")&&!/^(重命名|Rename|删除工作区|Delete workspace)$/i.test((o.textContent??"").trim())||(n.has(o)||n.set(o,{display:o.style.display,ariaHidden:o.getAttribute("aria-hidden")}),o.style.display="none",o.setAttribute("aria-hidden","true")))}function Yo(e){if(typeof document>"u"||typeof MutationObserver>"u")return()=>{};let t,n=0,o,r=new Map,i=p=>{let T=p.target instanceof Element?p.target:void 0;if(T===void 0)return;let w=T.closest(os);if(w!==null){t=(w.getAttribute("data-row-key")??"").slice(10),n=performance.now();return}T.closest(Gt)===null&&(t=void 0)},s=()=>{document.dispatchEvent(new KeyboardEvent("keydown",{key:"Escape",bubbles:!0,cancelable:!0}))},l=(p,T)=>{let w=p.querySelector(`[${Vt}="true"]`);if(w!==null){Zo(p,w,r);return}let h=[...p.querySelectorAll(He)],[v]=h;if(v===void 0)return;let u=h.map(H=>H.textContent??"").join(" ");if(!/(删除工作区|Delete workspace)/i.test(u))return;let g=(h.find(H=>/^(重命名|Rename)$/i.test((H.textContent??"").trim()))??h.find(H=>!H.disabled&&!/(danger|删除|Delete)/i.test(H.textContent??""))??v).parentElement;if(g===null||g===p||g.parentElement===null)return;let A=g.cloneNode(!0),R=A.querySelector(He);if(R===null)return;A.removeAttribute("data-dsham-archive-workspace"),R.removeAttribute("data-dsham-archive-workspace"),R.removeAttribute("aria-disabled"),R.removeAttribute("disabled"),R.disabled=!1,R.style.display="",R.removeAttribute("aria-hidden"),R.style.opacity="",R.style.cursor="",R.setAttribute(Vt,"true"),R.classList.remove("danger");let D=typeof e.label=="function"?e.label():e.label,I=R.querySelectorAll("span");I[0]!==void 0&&(I[0].innerHTML=as()),I[1]!==void 0?I[1].textContent=D:R.textContent=D,R.addEventListener("click",H=>{H.preventDefault(),H.stopPropagation(),s();let B={automationId:T.id,name:T.name,sessionIds:[...T.sessionIds]};window.setTimeout(()=>{try{e.openTaskSettings(B)}catch(U){console.warn("[dsh-automation] open task settings from workspace menu failed",U)}},0)}),g.parentElement?.insertBefore(A,g),Zo(p,R,r)},d=()=>{if(o=void 0,t===void 0||performance.now()-n>2e3)return;let p=e.resolveTask(t);if(p!==void 0)for(let T of document.querySelectorAll(Gt))l(T,p)},a=()=>{o===void 0&&(o=window.requestAnimationFrame(d))};document.addEventListener("pointerdown",i,!0),document.addEventListener("click",i,!0);let f=new MutationObserver(a);return f.observe(document.body,{childList:!0,subtree:!0}),()=>{o!==void 0&&window.cancelAnimationFrame(o),f.disconnect(),document.removeEventListener("pointerdown",i,!0),document.removeEventListener("click",i,!0);for(let p of document.querySelectorAll(`[${Vt}="true"]`))p.parentElement?.remove();for(let[p,T]of r)p.style.display=T.display,T.ariaHidden===null?p.removeAttribute("aria-hidden"):p.setAttribute("aria-hidden",T.ariaHidden)}}var Ut="data-dsh-automation-group-task";function Xo(e){if(typeof document>"u"||typeof MutationObserver>"u")return()=>{};let t,n=()=>{document.dispatchEvent(new KeyboardEvent("keydown",{key:"Escape",bubbles:!0,cancelable:!0}))},o=l=>{let d=l.textContent??"";if(e.groupLabel===""||e.workspaceLabel===""||!d.includes(e.groupLabel)||!d.includes(e.workspaceLabel)||l.querySelector(`[${Ut}="true"]`)!==null)return;let a=[...l.querySelectorAll(He)],[f]=a;if(f===void 0)return;let p=f.parentElement;if(p===null||p===l||p.parentElement===null)return;let T=p.cloneNode(!0),w=T.querySelector(He);if(w===null)return;w.setAttribute(Ut,"true"),w.removeAttribute("aria-disabled"),w.removeAttribute("disabled"),w.disabled=!1,w.classList.remove("danger");for(let v of w.querySelectorAll(":scope > svg"))v.remove();let h=w.querySelectorAll("span");if(h[0]!==void 0&&(h[0].innerHTML=ds()),h[1]!==void 0?h[1].textContent=e.label:w.textContent=e.label,e.checked){let v=document.createElement("span");v.innerHTML=ls();let u=v.firstElementChild;u!==null&&(u instanceof SVGElement&&(u.style.marginLeft="auto"),w.append(u))}w.addEventListener("click",v=>{v.preventDefault(),v.stopPropagation(),n(),window.setTimeout(e.onSelect,0)}),p.parentElement?.insertBefore(T,p)},r=()=>{t=void 0;for(let l of document.querySelectorAll(Gt))o(l)},i=()=>{t===void 0&&(t=window.requestAnimationFrame(r))},s=new MutationObserver(i);return s.observe(document.body,{childList:!0,subtree:!0}),()=>{t!==void 0&&window.cancelAnimationFrame(t),s.disconnect();for(let l of document.querySelectorAll(`[${Ut}="true"]`))l.parentElement?.remove()}}var W=require("react/jsx-runtime"),Jo=[],Qo=e=>()=>{},ut="dsh-st-shell-panel",cs={ids:[],byId:{}},us={items:[],archivedSessionIds:[]},er=[],ps=[];function ms(e){return e(!1)}function he(e,t){let n=e?.[t];return typeof n=="function"?n:void 0}var fs=()=>{},pt=class extends N.Component{state={failed:!1};static getDerivedStateFromError(){return{failed:!0}}componentDidCatch(t){console.warn("[dsh-automation] official workspace tree crashed",t)}render(){return this.state.failed?this.props.fallback:this.props.children}};function Zt({t:e}){return(0,W.jsx)("div",{className:"dsh-st-rail-empty",children:e("sidebar.treeUnavailable")})}function Yt({t:e,runtime:t,officialTree:n,hostProps:o,openSession:r,openTaskSettings:i,openCreateTask:s,useSessions:l,useWorkspaces:d,wide:a}){let f=n,[p,T]=(0,N.useState)("runs"),w=(0,N.useSyncExternalStore)(t.source.subscribe,t.source.getSnapshot,t.source.getSnapshot),h=(0,N.useMemo)(()=>Me(w.snapshot?.runs),[w.snapshot]),v=d===void 0?er:d(S=>S.archivedSessionIds??er),u=Ko(),k=S=>{let F=(0,N.useSyncExternalStore)(u.subscribe,u.getSnapshot,u.getSnapshot);return S(F)},g=k(S=>S.groupBy),A=k(S=>S.archivedFilter),R=(0,N.useMemo)(()=>{let S=w.snapshot;if(S===void 0)return[];let F=new Set(v),$=new Map;for(let x of S.automations)typeof x.createdAt=="string"&&x.createdAt!==""&&$.set(x.id,x.createdAt);let c=new Map;for(let x of S.runs){if(x.sessionId===void 0||x.sessionId===""||$.has(x.automationId))continue;let ce=x.startedAt??x.scheduledFor;if(Number.isNaN(Date.parse(ce)))continue;let ye=c.get(x.automationId);(ye===void 0||Date.parse(ce)<Date.parse(ye))&&c.set(x.automationId,ce)}let m=[];for(let x of Tt(S.automations,S.runs)){let ce=x.sessions.filter(bt=>At(bt.id,F,A)).map(bt=>bt.id),ye=$.get(x.id)??c.get(x.id);ye===void 0||ce.length===0||m.push({id:x.id,name:x.name,sessionIds:ce,createdAt:ye})}return m},[A,v,w.snapshot]),D=(0,N.useCallback)((S,F)=>l===void 0?S(cs):l($=>S(Hn($,h)),F),[l,h]),I=d===void 0?void 0:d(S=>S),H=(0,N.useMemo)(()=>Rt(I,h,A),[A,h,I]),B=(0,N.useCallback)((S,F)=>d===void 0?S(us):d($=>S(g==="task"?Wn($,R):Rt($,h,A)),F),[A,g,R,h,d]),U={...o??{},...a===void 0?{}:{wide:a}},ie=he(o,"useShortcuts"),z=(0,N.useCallback)((S,F)=>ie===void 0?S(ps):ie($=>S(($??[]).filter(c=>c.id!=="workspace.add")),F),[ie]),L=he(o,"t")??(S=>S),C=(0,N.useCallback)((S,F)=>S==="section.workspaces"&&g==="task"?e("records.sectionTasks"):S==="workspace.add"||S==="menu.addWorkspace"?e("action.create"):L(S,F),[g,L,e]),j=r??he(o,"open"),G=he(o,"searchSessions"),Y=he(o,"startSession"),Q=he(o,"renameWorkspace"),O=he(o,"deleteWorkspace"),le=he(o,"insertWorkspaceBefore"),E=(0,N.useCallback)(S=>{let F=Ee(S),$=t.source.getSnapshot().snapshot;if(F===void 0||$===void 0)return;let c=Tt($.automations,$.runs).find(m=>m.id===F);return c===void 0?void 0:{id:c.id,name:c.name,sessionIds:c.sessions.map(m=>m.id)}},[t]);(0,N.useEffect)(()=>{if(!(p!=="runs"||g!=="task"||i===void 0))return Yo({label:()=>e("session.taskSettings"),resolveTask:E,openTaskSettings:i})},[g,i,E,e,p]);let K=(0,N.useCallback)(async(S,F)=>{if(G===void 0)return{items:[],hasMore:!1};let $=await G(S,F);return{items:$.items.filter(c=>c.id!==void 0&&h.has(c.id)),hasMore:$.hasMore}},[G,h]),_=(0,N.useCallback)((S,F)=>{g!=="task"||Ee(S)!==void 0||Y?.(S,F)},[g,Y]),ae=(0,N.useCallback)(async(S,F)=>{if(g!=="task"||Ee(S)!==void 0)throw new Error(e("records.groupReadOnly"));await Q?.(S,F)},[g,Q,e]),ve=(0,N.useCallback)(async S=>{if(g!=="task"||Ee(S)!==void 0)throw new Error(e("records.groupReadOnly"));await O?.(S)},[g,O,e]),ge=(0,N.useCallback)(async(S,F)=>{g!=="task"||Ee(S)!==void 0||await le?.(S,F)},[g,le]),ke=(0,N.useCallback)(S=>S(!0),[]),pe={...U,useStore:k,actions:u.actions,t:C,...j===void 0?{}:{open:j},...l===void 0?{}:{useSessions:D},...d===void 0?{}:{useWorkspaces:B},...ie===void 0?{}:{useShortcuts:z},useDirectoryFlow:s===void 0?ms:ke,requestAddWorkspace:s??fs,startSession:_,renameWorkspace:ae,deleteWorkspace:ve,insertWorkspaceBefore:ge,...G===void 0?{}:{searchSessions:K}},se=(0,N.useMemo)(()=>g==="task"?R.map(S=>Et(S.id)):g==="flat"?[]:(H.items??[]).map(S=>String(S.workspaceId??S.id??"")).filter(S=>S!==""),[g,H.items,R]);(0,N.useEffect)(()=>{u.actions.ensureExpanded(se)},[se,u]),(0,N.useEffect)(()=>Xo({label:e("records.groupByTask"),groupLabel:C("groupBy.label"),workspaceLabel:C("groupBy.workspace"),checked:g==="task",onSelect:()=>u.actions.setGroupBy("task")}),[g,u,C,e]);let ee=f===void 0?(0,W.jsx)(Zt,{t:e}):(0,W.jsx)("div",{className:"dsh-st-schedule-tree","data-mode":g,children:(0,W.jsx)(pt,{fallback:(0,W.jsx)(Zt,{t:e}),children:(0,N.createElement)(f,pe)})});return(0,W.jsxs)("div",{className:"dsh-st-n",children:[(0,W.jsx)("div",{className:"dsh-st-n-views-wrap",children:(0,W.jsx)(qo,{t:e,view:p,onChange:T})}),(0,W.jsx)("div",{id:lt,role:"tabpanel",className:"dsh-st-n-view-body",children:p==="overview"?w.snapshot===void 0?(0,W.jsx)("div",{className:"dsh-st-n-empty",children:w.phase==="loading"?e("loading"):e("overview.empty")}):(0,W.jsx)(ct,{t:e,automations:w.snapshot.automations,onToggleAutomation:(S,F)=>t.mutateAutomation(S,F),...i===void 0?{}:{openTaskSettings:i},...s===void 0?{}:{openCreateTask:s},...w.snapshot.serverNow===void 0?{}:{serverNow:w.snapshot.serverNow}}):ee})]})}function nr({t:e,runtime:t,officialTree:n,hostProps:o,openSession:r,openTaskSettings:i,openCreateTask:s,useSessions:l,useWorkspaces:d,tabRegistry:a,wide:f}){let p=n,[T,w]=(0,N.useState)(()=>typeof window>"u"?"tasks":Nn(window.localStorage)),h=(0,N.useSyncExternalStore)(a?.subscribe??Qo,()=>a?.getTabs()??Jo,()=>Jo),v=(0,N.useSyncExternalStore)(a?.subscribe??Qo,()=>typeof a?.getRevision=="function"?a.getRevision():0,()=>0),u=h.some(E=>E.id==="channels"),k=l?.(E=>Fn(E)),g=(0,N.useSyncExternalStore)(t.source.subscribe,t.source.getSnapshot,t.source.getSnapshot),A=(0,N.useMemo)(()=>Me(g.snapshot?.runs),[g.snapshot]),R=(0,N.useRef)(null);(0,N.useEffect)(()=>{if(!In(k,g.snapshot?.runs)){R.current=null;return}R.current!==k&&(R.current=k??null,t.refresh().catch(()=>{}))},[g.snapshot?.runs,k,t]),(0,N.useEffect)(()=>{try{window.localStorage.setItem(Ze,T)}catch{}},[T]),(0,N.useEffect)(()=>{let E=K=>{let _=K.target instanceof Element?K.target.closest("button"):null;if(_===null||_.closest("[data-row-key]")!==null)return;let ae=(_.getAttribute("aria-label")??_.textContent??"").trim();Cn(ae)&&w("tasks")};return document.addEventListener("click",E,!0),()=>document.removeEventListener("click",E,!0)},[]);let D=(0,N.useRef)(k),I=(0,N.useRef)(!1);(0,N.useEffect)(()=>{let E=Dn(k??void 0,A,{followSchedule:!1,followChannels:!1});if(!I.current){D.current=k,I.current=k!=null;return}let K=D.current;if(D.current=k,!On(K,k))return;E==="tasks"&&w("tasks");let _=h.find(ae=>k!=null&&ae.matchSession?.(String(k))===!0);_!==void 0&&_.id!=="schedule"&&_.id!=="channels"&&w(_.id)},[k,h,A]);let H={...o??{},...f===void 0?{}:{wide:f}},B=he(o,"open"),U=(0,N.useCallback)(E=>{if(a!==void 0&&Array.isArray(a.sessionOpeners)&&a.sessionOpeners.length>0){Ho(E,a,B);return}if(A.has(E)&&r!==void 0){r(E);return}B?.(E)},[r,B,A,a,v]),ie=(0,N.useCallback)((E,K)=>l===void 0?E({ids:[],byId:{}}):l(_=>E(Wo(_,a)),K),[l,a,v]),z={...H,open:U,...l===void 0?{}:{useSessions:ie}},L=E=>p===void 0?(0,W.jsx)(Zt,{t:e}):(0,W.jsx)(pt,{fallback:(0,N.createElement)(p,H),children:(0,N.createElement)(p,E)}),C=(0,N.useMemo)(()=>h.filter(E=>E.id!=="schedule"),[h]),j=Pn({tab:T,channelsReady:u,extraTabIds:Mn({extraTabIds:C.map(E=>E.id),channelsReady:u})}),G=h.find(E=>E.id==="schedule"),Y=G===void 0?(0,W.jsx)(Yt,{t:e,runtime:t,...p===void 0?{}:{officialTree:p},...o===void 0?{}:{hostProps:o},...r===void 0?{}:{openSession:r},...i===void 0?{}:{openTaskSettings:i},...s===void 0?{}:{openCreateTask:s},...l===void 0?{}:{useSessions:l},...d===void 0?{}:{useWorkspaces:d},...f===void 0?{}:{wide:f}}):G.render({...o??{},openSession:r,open:r,useSessions:l,wide:!0}),Q=(0,N.useMemo)(()=>{let E=[{value:"tasks",id:"dsh-st-tab-tasks",panelId:ut,label:(0,W.jsxs)("span",{style:{display:"inline-flex",alignItems:"center",gap:5},children:[(0,W.jsx)(Xn,{size:14}),(0,W.jsx)("span",{children:e("sidebar.tasksTab")})]})}];for(let K of C){if(K.id==="tasks")continue;let _=K.id==="channels"?(0,W.jsxs)("span",{style:{display:"inline-flex",alignItems:"center",gap:5},children:[(0,W.jsx)(io,{size:14}),(0,W.jsx)("span",{children:K.label})]}):K.label;E.push({value:K.id,id:"dsh-st-tab-"+K.id,panelId:ut,label:_})}return E.push({value:"schedule",id:"dsh-st-tab-schedule",panelId:ut,label:(0,W.jsxs)("span",{style:{display:"inline-flex",alignItems:"center",gap:5},children:[(0,W.jsx)(ue,{size:14}),(0,W.jsx)("span",{children:e("sidebar.tab")})]})}),E},[u,C,e]);if(f===!1)return(0,W.jsx)(W.Fragment,{children:L(z)});let O=j==="schedule"||j==="tasks"?void 0:C.find(E=>E.id===j),le=O!==void 0||j==="schedule"||j==="channels"?"dsh-st-shell-body":"dsh-st-official-tree";return(0,W.jsxs)("div",{className:"dsh-st-shell-rail",children:[(0,W.jsx)("div",{className:"dsh-st-shell-tabs-wrap",style:{"--dsh-st-tab-count":String(Q.length)},children:(0,W.jsx)(tr.SegmentedTabs,{className:"dsh-st-shell-segmented-tabs",label:e("sidebar.tabs"),value:j,onChange:E=>w(E),items:Q})}),(0,W.jsx)("div",{id:ut,role:"tabpanel",className:le,children:j==="schedule"?Y:O!==void 0?O.render({...o??{},openSession:U,open:U,useSessions:l,wide:!0}):L(z)})]})}var or="dsh-automation-styles",mt="@michengai/dsh-automation",rr=`
3
+ "use strict";var Pr=Object.create;var qe=Object.defineProperty;var _r=Object.getOwnPropertyDescriptor;var Dr=Object.getOwnPropertyNames;var Lr=Object.getPrototypeOf,Hr=Object.prototype.hasOwnProperty;var Wr=(e,t)=>{for(var n in t)qe(e,n,{get:t[n],enumerable:!0})},yn=(e,t,n,o)=>{if(t&&typeof t=="object"||typeof t=="function")for(let r of Dr(t))!Hr.call(e,r)&&r!==n&&qe(e,r,{get:()=>t[r],enumerable:!(o=_r(t,r))||o.enumerable});return e};var ze=(e,t,n)=>(n=e!=null?Pr(Lr(e)):{},yn(t||!e||!e.__esModule?qe(n,"default",{value:e,enumerable:!0}):n,e)),Ur=e=>yn(qe({},"__esModule",{value:!0}),e);var ma={};Wr(ma,{apply:()=>ua,inject:()=>aa,name:()=>sa,resolveApiUrl:()=>Pe,setupSidebarEntry:()=>Nt});module.exports=Ur(ma);var ae=require("react");var V=require("react");function bn(e,t){return t(`run.trigger.${e}`)}var oe=class extends Error{constructor(n){super(n);this.key=n}},Fr=/^[a-z0-9]+(?:-[a-z0-9]+)*$/;function Ve(e){return`/${Fr.test(e.name)?e.name:e.id}`}function Br(e,t,n){let o=t.startsWith("/")?t:`/${t}`,r=o.replace(/[.*+?^${}()|[\]\\]/g,"\\$&");if(new RegExp(`(^|\\s)${r}(?=\\s|$)`).test(e))return{text:e,caret:Math.min(Math.max(n,0),e.length)};let a=Math.min(Math.max(n,0),e.length),s=e.slice(0,a),l=e.slice(a),i=`${s.length>0&&!/\s$/.test(s)?" ":""}${o} `;return{text:s+i+l,caret:s.length+i.length}}function Ct(e,t){let n=Math.min(Math.max(t,0),e.length),o=/(?:^|\s)\/([^\s/]*)$/.exec(e.slice(0,n));if(o===null)return;let r=o[1]??"";return{start:n-r.length-1,query:r}}function wn(e,t){let n=t.trim().toLowerCase();return n===""?[...e]:e.filter(o=>o.id.toLowerCase().includes(n)||o.name.toLowerCase().includes(n))}function vn(e,t,n){let o=Ct(e,t),r=n.startsWith("/")?n:`/${n}`;return o===void 0?Br(e,r,t):{text:`${e.slice(0,o.start)}${r} ${e.slice(t)}`,caret:o.start+r.length+1}}function Sn(e,t){let n=new Set(t.map(s=>Ve(s).slice(1))),o=[],r=/(^|\s)(\/[a-z0-9]+(?:-[a-z0-9]+)*)(?=\s|$)/gi,a=0;for(let s of e.matchAll(r)){let l=s[1]??"",d=s[2]??"",i=(s.index??0)+l.length;n.has(d.slice(1))&&(i>a&&o.push({kind:"text",text:e.slice(a,i)}),o.push({kind:"skill",text:d}),a=i+d.length)}return(a<e.length||o.length===0)&&o.push({kind:"text",text:e.slice(a)}),o}function kn(e=new Date){let t=new Date(e.getTime()+36e5);t.setMinutes(0,0,0);let n=t.getTimezoneOffset()*6e4;return new Date(t.getTime()-n).toISOString().slice(0,16)}function Mt(e=new Date,t=[],n,o=""){return{name:"",prompt:"",scheduleKind:"daily",onceAt:kn(e),everyMinutes:"60",maxConcurrentRuns:"1",intervalAnchor:"",time:"09:00",weekdays:[1,2,3,4,5],hourlyMinute:"00",monthDay:"1",customDays:"2",timeZone:Intl.DateTimeFormat().resolvedOptions().timeZone||"Asia/Shanghai",permission:o,workspaceId:t[0]?.id??"",modelKey:n==null?"default":`${n.provider}::${n.model}`,reasoningEffort:n?.reasoning?.defaultEffort??"none",skills:[]}}function xn(e,t,n,o=new Date,r={}){let a=Number(e.maxConcurrentRuns);if(!Number.isSafeInteger(a)||a<1)throw new oe("form.error.maxConcurrentRuns");let s=e.name.trim(),l=e.prompt.trim();if(s==="")throw new oe("form.error.name");if(l==="")throw new oe("form.error.prompt");let d=t.find(u=>u.id===e.workspaceId);if(d===void 0)throw new oe("form.error.workspace");let i;switch(e.scheduleKind){case"once":{let u=new Date(e.onceAt);if(!Number.isFinite(u.getTime())||r.allowPastOnce!==!0&&u.getTime()<=o.getTime())throw new oe("form.error.once");i={kind:"once",at:u.toISOString(),timeZone:e.timeZone};break}case"interval":{let u=Number(e.everyMinutes);if(!Number.isInteger(u)||u<1||u>43200)throw new oe("form.error.interval");i={kind:"interval",everyMinutes:u,anchor:e.intervalAnchor.trim()||o.toISOString(),timeZone:e.timeZone};break}case"daily":i={kind:"daily",time:e.time,timeZone:e.timeZone};break;case"weekly":if(e.weekdays.length===0)throw new oe("form.error.weekdays");i={kind:"weekly",time:e.time,weekdays:[...e.weekdays].sort((u,w)=>u-w),timeZone:e.timeZone};break;case"hourly":{let u=Number(e.hourlyMinute);if(!Number.isInteger(u)||u<0||u>59)throw new oe("form.error.interval");i={kind:"hourly",minute:u,timeZone:e.timeZone};break}case"monthly":{let u=Number(e.monthDay);if(!Number.isInteger(u)||u<1||u>31)throw new oe("form.error.interval");i={kind:"monthly",day:u,time:e.time,timeZone:e.timeZone};break}case"custom":{let u=Number(e.customDays);if(!Number.isInteger(u)||u<1)throw new oe("form.error.interval");i={kind:"custom",everyDays:u,time:e.time,timeZone:e.timeZone};break}}let p=n.find(u=>`${u.provider}::${u.model}`===e.modelKey);return{name:s,prompt:l,schedule:i,timeZone:e.timeZone,permission:e.permission,maxConcurrentRuns:a,workspaceId:d.id,cwd:d.path,...p===void 0?{provider:null,model:null}:{provider:p.provider,model:p.model},reasoningEffort:e.reasoningEffort==="none"?null:e.reasoningEffort}}function Tn(e,t,n){let o=Date.parse(e);if(!Number.isFinite(o))return e;let r=Math.round((o-t.getTime())/6e4),a=Math.abs(r);if(a<1)return n("time.now");let s=r>0;if(a<60)return n(s?"time.inMinute":"time.minuteAgo",{count:a});let l=Math.round(a/60);if(l<24)return n(s?"time.inHour":"time.hourAgo",{count:l});let d=Math.round(l/24);return n(s?"time.inDay":"time.dayAgo",{count:d})}function Ge(e,t){switch(e.kind){case"once":return t("schedule.onceAt",{time:new Date(e.at).toLocaleString()});case"interval":return t("schedule.everyMinutes",{count:e.everyMinutes});case"daily":return t("schedule.dailyAt",{time:e.time});case"weekly":{let n=e.weekdays.map(o=>t(`day.${o}`)).join("\u3001");return t("schedule.weeklyAt",{days:n,time:e.time})}case"hourly":return t("schedule.hourlyAt",{minute:String(e.minute).padStart(2,"0")});case"monthly":return t("schedule.monthlyAt",{day:e.day,time:e.time});case"custom":return t("schedule.customAt",{count:e.everyDays,time:e.time})}}function Ye(e,t,n){let o=Date.parse(e)-t.getTime();if(!Number.isFinite(o)||o<=0)return n("time.now");let r=Math.max(1,Math.ceil(o/6e4));if(r<60)return n("time.withinMinute",{count:r});let a=Math.ceil(r/60);return a<24?n("time.withinHour",{count:a}):n("time.withinDay",{count:Math.ceil(a/24)})}function En(e,t){if(e===void 0||t===void 0)return;let n=(Date.parse(t)-Date.parse(e))/1e3;if(!(!Number.isFinite(n)||n<0))return`${n.toFixed(1)}s`}function An(e){let t=new Date(e);return Number.isNaN(t.getTime())?e:t.toLocaleTimeString([],{hour:"2-digit",minute:"2-digit",hour12:!1})}var Rn=["succeeded","failed","interrupted","running","queued","skipped","cancelled"];function $e(e){let t=Date.parse(e);return Number.isFinite(t)?t:0}function Ze(e,t,n){let o=n==="asc"?1:-1;return e.slice().sort((r,a)=>{if(t==="planned"){let l=r.nextRunAt,d=a.nextRunAt;if(l===void 0||d===void 0)return l===void 0&&d===void 0?r.name.localeCompare(a.name)||r.id.localeCompare(a.id):l===void 0?1:-1;let i=$e(l)-$e(d);return i!==0?i*o:r.name.localeCompare(a.name)||r.id.localeCompare(a.id)}let s=$e(r.createdAt)-$e(a.createdAt);return s!==0?s*o:r.id.localeCompare(a.id)})}var Xe="dsh-automation.sort-default.settings",Je="dsh-automation.sort-default.overview";function Se(e,t){if(e!==void 0)try{let n=e.getItem(t);if(n===null)return;let o=JSON.parse(n);return o.key!=="created"&&o.key!=="planned"||o.direction!=="asc"&&o.direction!=="desc"?void 0:{key:o.key,direction:o.direction}}catch{return}}function In(e,t,n,o){e.setItem(t,JSON.stringify({key:n,direction:o}))}function Nn(e,t,n,o){let r=new Map;for(let a of e){let s=new Date(a.finishedAt??a.startedAt??a.scheduledFor);if(Number.isNaN(s.getTime()))continue;let l;if(t==="month")l=`${s.getFullYear()}-${String(s.getMonth()+1).padStart(2,"0")}`;else if(t==="week"){let i=jr(s);l=Ke(i)}else l=Ke(s);let d=r.get(l)??[];d.push(a),r.set(l,d)}return[...r.entries()].map(([a,s])=>({key:a,label:s[0]===void 0?a:t==="month"?o("history.month",{month:a.replace("-","/")}):t==="week"?o("history.week",{date:a.slice(5).replace("-","/")}):a===Ke(n)?o("history.today"):a===Ke(new Date(n.getTime()-864e5))?o("history.yesterday"):o("history.date",{date:a.slice(5).replace("-","/")}),items:s}))}function Ke(e){return`${e.getFullYear()}-${String(e.getMonth()+1).padStart(2,"0")}-${String(e.getDate()).padStart(2,"0")}`}function jr(e){let t=new Date(e),n=t.getDay(),o=n===0?6:n-1;return t.setHours(0,0,0,0),t.setDate(t.getDate()-o),t}function On(e,t=[],n,o=e.permission){let r=Mt(new Date,t,n,o),a=e.schedule,s=e.provider&&e.model?`${e.provider}::${e.model}`:"default",l={...r,name:e.name,prompt:e.prompt,permission:e.permission,maxConcurrentRuns:String(e.maxConcurrentRuns??1),workspaceId:e.workspaceId??r.workspaceId,modelKey:s,reasoningEffort:e.reasoningEffort??"none",timeZone:e.timeZone||a.timeZone||r.timeZone};switch(a.kind){case"once":return{...l,scheduleKind:"once",onceAt:qr(a.at)};case"interval":return{...l,scheduleKind:"interval",everyMinutes:String(a.everyMinutes),intervalAnchor:a.anchor??""};case"hourly":return{...l,scheduleKind:"hourly",hourlyMinute:String(a.minute).padStart(2,"0")};case"daily":return{...l,scheduleKind:"daily",time:a.time};case"weekly":return{...l,scheduleKind:"weekly",time:a.time,weekdays:[...a.weekdays]};case"monthly":return{...l,scheduleKind:"monthly",time:a.time,monthDay:String(a.day)};case"custom":return{...l,scheduleKind:"custom",time:a.time,customDays:String(a.everyDays)}}}function qr(e){let t=new Date(e);if(Number.isNaN(t.getTime()))return kn();let n=t.getTimezoneOffset()*6e4;return new Date(t.getTime()-n).toISOString().slice(0,16)}var De=class extends Error{code="workspace/picker-unavailable";constructor(){super("workspace picker unavailable"),this.name="WorkspacePickerUnavailableError"}};function xe(e,t){if(!(e===null||typeof e!="object"&&typeof e!="function"))try{return Reflect.get(e,t)}catch{return}}function Qe(e,t){if(e===null||typeof e!="object")return;let n;try{n=Reflect.get(e,"reflect")}catch{n=void 0}let o=xe(n,"get");if(typeof o=="function")try{let a=o.call(n,t);if(a!==void 0)return a}catch{}let r=xe(e,"get");if(typeof r=="function")try{let a=r.call(e,t);if(a!==void 0)return a}catch{return}if(typeof o!="function")try{return xe(e,t)}catch{return}}function Mn(e){if(typeof e=="string"&&e.trim()!=="")return e;if(e===null||typeof e!="object"||Reflect.get(e,"canceled")===!0)return;let t=Reflect.get(e,"path");if(typeof t=="string"&&t.trim()!=="")return t;let n=Reflect.get(e,"filePaths"),o=Array.isArray(n)?n[0]:void 0;return typeof o=="string"&&o.trim()!==""?o:void 0}async function Cn(e){let t=xe(e,"pickDirectory");if(typeof t=="function")return{picked:Mn(await t.call(e))}}async function et(e,t){let n=Qe(e,"workspaces"),o=xe(n,"create");if(typeof o!="function")return!1;try{return await o.call(n,{path:t}),!0}catch{return!1}}async function tt(e){let t;try{t=Reflect.get(globalThis,"__DSH_DIRECTORY_PICKER__")}catch{t=void 0}let n=xe(t,"pick");if(typeof n=="function")return Mn(await n.call(t));for(let o of["uiWorkspace","dialog","workspaces"]){let r=await Cn(Qe(e,o));if(r!==void 0)return r.picked}try{let o=await Cn(xe(e,"workspaces"));if(o!==void 0)return o.picked}catch{}throw new De}var zr={year:"numeric",month:"2-digit",day:"2-digit",hour:"2-digit",minute:"2-digit",hourCycle:"h23"},Pn=new Map;function $r(e){let t=Pn.get(e);if(t!==void 0)return t;let n=new Intl.DateTimeFormat("en-CA",{...zr,timeZone:e});return Pn.set(e,n),n}function _n(e,t){let n=new Date(e);if(Number.isNaN(n.getTime()))return e;if(t===void 0){let o=`${n.getFullYear()}-${String(n.getMonth()+1).padStart(2,"0")}-${String(n.getDate()).padStart(2,"0")}`,r=`${String(n.getHours()).padStart(2,"0")}:${String(n.getMinutes()).padStart(2,"0")}`;return`${o} ${r}`}try{let o=$r(t).formatToParts(n),r=p=>o.find(u=>u.type===p)?.value,[a,s,l,d,i]=["year","month","day","hour","minute"].map(p=>r(p));return[a,s,l,d,i].some(p=>p===void 0)?e:`${a}-${s}-${l} ${d}:${i}`}catch{return e}}var Ie="dsh-automation-session-",Pt="dsh-automation-task:",nt="dsh-native-sidebar.tab";function _t(e,t){let n=new Map,o=new Map;for(let s of e)n.set(s.id,s.name),s.timeZone!==void 0&&o.set(s.id,s.timeZone);for(let s of t){let l=(s.automationName||"").trim();l!==""&&l!==s.automationId&&!n.has(s.automationId)&&n.set(s.automationId,l)}let r=[],a=new Set;for(let s of e)a.has(s.id)||(r.push(s.id),a.add(s.id));for(let s of t)s.sessionId===void 0||s.sessionId===""||a.has(s.automationId)||(r.push(s.automationId),a.add(s.automationId));return r.map(s=>{let l=n.get(s)??s;return{id:s,name:l,sessions:t.filter(d=>d.automationId===s&&d.sessionId!==void 0&&d.sessionId!=="").slice().sort((d,i)=>Date.parse(i.startedAt??i.scheduledFor)-Date.parse(d.startedAt??d.scheduledFor)).map(d=>({id:d.sessionId,running:d.status==="running"||d.status==="queued",label:_n(d.startedAt??d.scheduledFor,o.get(s))+" - "+l}))}}).filter(s=>s.sessions.length>0)}function ot(e){return e==="active"?"pause":"resume"}function Bn(e){return e.map(t=>({id:t.id,name:t.name,status:t.status,...t.nextRunAt===void 0?{}:{nextRunAt:t.nextRunAt}}))}function Dt(e,t,n){if(e===void 0||e==="")return!1;let o=t.has(e);return n==="only"?o:n==="show"?!0:!o}function jn(e,t){return e==null||e===""||!e.startsWith(Ie)?!1:!(t??[]).some(n=>n.sessionId===e)}function Le(e){let t=new Set;for(let n of e??[]){let o=n.sessionId;typeof o=="string"&&o!==""&&t.add(o)}return t}function Kr(e){return e==="channels"||e==="schedule"||e==="tasks"?e:"tasks"}var Dn="dsh-automation.sidebar-tab",Vr="dsh-im-connect.sidebar-tab";function qn(e){if(e===void 0)return"tasks";let t;try{t=e.getItem(nt)??e.getItem(Dn)??e.getItem(Vr)}catch{return"tasks"}let n=Kr(t);try{e.setItem(nt,n),e.removeItem(Dn)}catch{}return n}function zn(e){return/^(新会话|新建任务|New chat|New session)(?:\s+(?:Ctrl|Alt|Shift|Meta)(?:\+[^\s+]+)*)?$/i.test(e.trim())}function $n(e,t){let n=e??"",o=t??"";return o!==""&&n!==o}function Kn(e){let t=["tasks"];for(let n of e.extraTabIds)n===""||n==="tasks"||n==="schedule"||t.includes(n)||t.push(n);return e.channelsReady&&!t.includes("channels")&&t.push("channels"),t.push("schedule"),t}function Vn(e){return e.extraTabIds.includes(e.tab)?e.tab:e.tab==="channels"&&e.channelsReady?"channels":"tasks"}function Gn(e,t,n={}){return e==null||e===""?void 0:(t!==void 0?t.has(e):e.startsWith(Ie))?n.followSchedule===!1?void 0:"schedule":e.startsWith("im:")?n.followChannels===!1?void 0:"channels":"tasks"}function Gr(e){return/dsh-codex-ui|michengai-codex-ui|michengai\.codexUi|codex-ui/i.test(String(e??""))}function Yr(e){let t=e;return String(t?.options?.locale??t?.options?.id??t?.options?.name??t?.options?.registrant??t?.component?.displayName??t?.component?.name??t?.id??t?.name??"")}function Yn(e){return(e??[]).some(t=>Gr(Yr(t)))}var Ln=new WeakMap,Hn=new WeakMap,Wn=new WeakMap;function Zr(e,t){if(e===null||typeof e!="object"||!(t in e))return;let n=Reflect.get(e,t);return n!==null&&typeof n=="object"?n:void 0}function Zn(e){return e.size===0?"":[...e].sort().join("\0")}function Xn(e,t){let n=e??{ids:[],byId:{}},o=Zn(t);if(typeof n=="object"&&n!==null){let d=Ln.get(n);if(d!==void 0&&d.key===o)return d.result}let r=(n.ids??[]).filter(d=>t.has(String(d))),a=Object.fromEntries(r.map(d=>[d,n.byId?.[d]]).filter(d=>d[1]!==void 0)),s=Zr(n,"projectionsBySession"),l={...n,ids:r,byId:a,...s===void 0?{}:{projectionsBySession:Object.fromEntries(r.filter(d=>s[d]!==void 0).map(d=>[d,s[d]]))}};return typeof n=="object"&&n!==null&&Ln.set(n,{key:o,result:l}),l}function Lt(e){return`${Pt}${e}`}function Ne(e){if(e===void 0||!e.startsWith(Pt))return;let t=e.slice(Pt.length);return t===""?void 0:t}function Jn(e,t){let n=e??{items:[],archivedSessionIds:[]},o=t.map(s=>`${s.id}\0${s.name}\0${s.createdAt}\0${s.sessionIds.join(",")}`).join("\0\0");if(typeof n=="object"&&n!==null){let s=Hn.get(n);if(s!==void 0&&s.key===o)return s.result}let r=t.map(s=>{let l=Lt(s.id);return{workspaceId:l,id:l,title:s.name,path:"",sessionIds:[...s.sessionIds],createdAt:s.createdAt,updatedAt:s.createdAt}}),a={...n,items:r};return typeof n=="object"&&n!==null&&Hn.set(n,{key:o,result:a}),a}function Ht(e,t,n){let o=e??{items:[],archivedSessionIds:[]},r=`${Zn(t)}\0${n}`;if(typeof o=="object"&&o!==null){let d=Wn.get(o);if(d!==void 0&&d.key===r)return d.result}let a=new Set(o.archivedSessionIds??[]),s=(o.items??[]).map(d=>{let i=(d.sessionIds??[]).filter(p=>{let u=String(p);return t.has(u)&&Dt(u,a,n)});return i.length===(d.sessionIds??[]).length?d:{...d,sessionIds:i}}),l={...o,items:s};return typeof o=="object"&&o!==null&&Wn.set(o,{key:r,result:l}),l}function Qn(e){let t=e?.byId??{};for(let[n,o]of Object.entries(t))if((o?.retainedBy?.mainView??0)>0){let r=o.id?.trim();return r!==void 0&&r!==""?r:n}return null}function Xr(e){if(e===null||typeof e!="object")return;let t=e.openSession;if(typeof t=="function")return{openSession:n=>{t.call(e,n)}}}function eo(e){let t=Xr(Qe(e,"uiWorkspace"));return{...t===void 0?{}:{uiWorkspace:t}}}function to(e){return typeof e.uiWorkspace?.openSession=="function"}function no(e,t){if(typeof e.uiWorkspace?.openSession=="function"){e.uiWorkspace.openSession(t);return}throw new Error("no client session opener")}function Un(e,t,n){if(e==="")return!1;let o=e.startsWith(Ie)||e.startsWith("im:")?[t,n]:[n,t];for(let r of o)if(typeof r=="function")try{return r(e),!0}catch{}return!1}async function oo(e){let t=e.id.trim();return t===""?!1:(await e.adopt?.(t).catch(()=>{}),!(e.listed?.(t)===!0)&&e.refresh!==void 0&&await e.refresh().catch(()=>{}),Un(t,e.openRuntime,e.openHost)?!0:(e.refresh!==void 0&&await e.refresh().catch(()=>{}),Un(t,e.openRuntime,e.openHost)))}function ro(e){return e==null||typeof e!="function"&&typeof e!="object"?{}:e}function Fn(e){let t=ro(e);return t.__dshAutomationWrapped===!0||t.__dshNativeTabWrapped===!0&&t.__dshNativeTabOwner==="automation"}function so(e){let t=new Set,n=e;for(;n!=null&&!t.has(n);){t.add(n);let o=ro(n),r=o.__dshNativeTabOriginal??o.__dshAutomationOriginal??o.__imConnectOriginal;if(r!==void 0&&r!==n){n=r;continue}return o.__dshNativeTabWrapped===!0||o.__dshAutomationWrapped===!0||o.__imConnectWrapped===!0?void 0:n}}function Jr(e){let t=e,n=String(t?.options?.id??""),o=String(t?.component?.displayName??t?.component?.name??"");return n==="dsh-automation-native-switcher"||n==="dsh-automation-wrap-bump"||o==="DshNativeTabWorkspaceShell"&&Fn(t?.component)||o==="AutomationNativeWorkspaceShell"||o==="AutomationWrapBump"||Fn(t?.component)}function ao(e){for(let t of e)if(t?.component!==void 0&&!Jr(t))return t}var Wt=require("react/jsx-runtime");function io(e){return(0,Wt.jsx)("svg",{viewBox:"0 0 16 16",width:16,height:16,"aria-hidden":"true",focusable:"false",...e,children:(0,Wt.jsx)("path",{fill:"currentColor",d:"M8 0a8 8 0 0 0-2.53 15.59c.4.074.547-.173.547-.385 0-.19-.007-.693-.01-1.36-2.226.484-2.695-1.073-2.695-1.073-.364-.924-.89-1.17-.89-1.17-.726-.496.055-.486.055-.486.803.056 1.225.824 1.225.824.714 1.223 1.872.87 2.328.665.072-.517.28-.87.508-1.07-1.777-.202-3.645-.888-3.645-3.956 0-.874.31-1.588.823-2.148-.083-.202-.357-1.017.078-2.12 0 0 .672-.215 2.2.82A7.65 7.65 0 0 1 8 4.8c.68.003 1.365.092 2.004.27 1.527-1.035 2.197-.82 2.197-.82.437 1.103.162 1.918.08 2.12.513.56.822 1.274.822 2.148 0 3.076-1.872 3.752-3.654 3.95.288.248.544.735.544 1.482 0 1.07-.01 1.932-.01 2.195 0 .214.144.463.55.384A8.001 8.001 0 0 0 8 0Z"})})}var Qr=ze(require("@deepseek-ai/dsh-client-ui-primitives"),1);function J(e,...t){for(let n of t){let o=e[n];if(typeof o=="function")return o}throw new Error(`Missing host icon export: ${t.join(", ")}`)}var ee=Qr,lo=J(ee,"IconEllipsisOutlineRegular"),Ut=J(ee,"IconSearchOutlineRegular"),co=J(ee,"IconProjectAddOutlineRegular"),Ft=J(ee,"IconCloseFillRegular"),uo=J(ee,"IconSlidersTwoOutlineRegular"),po=J(ee,"IconFolderCloseRegular"),mo=J(ee,"IconWorkspaceTreeOutlineRegular"),rt=J(ee,"IconFlatListOutlineRegular"),ce=J(ee,"IconClockOutlineRegular"),st=J(ee,"IconPlusOutlineRegular"),fo=J(ee,"IconRefreshOutlineRegular"),ho=J(ee,"IconInfoOutlineRegular"),go=J(ee,"IconNewChatOutlineRegular"),yo=J(ee,"IconEditOutlineRegular"),at=J(ee,"IconChevronDownOutlineRegular"),bo=J(ee,"IconSettingsOutlineRegular"),wo=J(ee,"IconListPenOutlineRegular"),vo=J(ee,"IconCheckOutlineRegular"),So=J(ee,"IconQueueOutlineRegular");var te=require("@deepseek-ai/dsh-client-ui-primitives");var Bt=ze(require("react"),1),ko=require("@deepseek-ai/dsh-client-ui-primitives"),jt={width:22,minWidth:22,height:22,padding:0,display:"inline-flex",alignItems:"center",justifyContent:"center",borderRadius:"var(--dsw-radius-sm, 8px)"},xo=Bt.default.forwardRef(function(t,n){let{className:o,rows:r,...a}=t;return Bt.default.createElement("textarea",{...a,ref:n,className:["dsh-st-textarea",o].filter(Boolean).join(" "),rows:r||4})}),Oe=ko.Input;function it(e,t){let n=e.target;if(!(n instanceof Element)||n.getAttribute("aria-hidden")!=="true")return;let o=n.parentElement?.querySelector('[role="dialog"]');!(o instanceof HTMLElement)||!o.classList.contains(t)||e.stopPropagation()}var re=ze(require("react"),1),dt=require("@deepseek-ai/dsh-client-ui-primitives");function qt(e){return{id:e.value,label:e.label,...e.disabled!==void 0?{disabled:e.disabled}:{},...e.danger!==void 0?{danger:e.danger}:{}}}function ie(e){let[t,n]=re.useState(!1),o=re.useRef(null),r=e.options??[];re.useEffect(()=>{if(!t)return;let i=o.current?.getBoundingClientRect().width??0;return i>0&&document.documentElement.style.setProperty("--dsh-st-menu-width",`${Math.round(i)}px`),()=>{document.documentElement.style.removeProperty("--dsh-st-menu-width")}},[t]),re.useEffect(()=>{if(!t||typeof window>"u")return;let i=p=>{p.key==="Escape"&&(p.stopPropagation(),n(!1))};return window.addEventListener("keydown",i,!0),()=>{window.removeEventListener("keydown",i,!0)}},[t]);let a=re.useMemo(()=>e.groups!==void 0&&e.groups.length>0?e.groups.flatMap(i=>[{type:"label",id:`label-${i.id}`,text:i.label},...i.options.map(qt)]):r.map(qt),[r,e.groups]),s=e.footer?.map(qt),l=r.find(i=>i.value===e.value)??e.groups?.flatMap(i=>[...i.options]).find(i=>i.value===e.value),d=l?l.label:e.placeholder??e.label??"";return re.createElement("div",{ref:o,className:["dsh-st-menu-select-wrap",e.compact===!0?"is-compact":"",e.className].filter(Boolean).join(" ")},re.createElement(dt.Menu,{open:t,onClose:()=>{n(!1)},onSelect:i=>{if(e.footer?.some(p=>p.value===i)===!0){e.onFooter?.(i),n(!1);return}e.onChange(i),n(!1)},selectedId:e.value,align:"start",portal:!0,dense:!0,listClassName:["dsh-st-form-menu",e.listClassName].filter(Boolean).join(" "),...s!==void 0?{footer:s}:{},anchor:re.createElement(dt.Button,{variant:"outline",...e.compact===!0?{size:"sm"}:{},role:"combobox","aria-label":e.label??(typeof d=="string"?d:l?.text)??e.placeholder??"","aria-expanded":t,disabled:e.disabled,className:["dsh-st-menu-select-trigger",t?"is-open":""].filter(Boolean).join(" "),onClick:()=>{e.disabled||n(i=>!i)}},re.createElement("span",{className:"dsh-st-menu-select-label"},d),re.createElement(at,{className:"dsh-st-menu-select-arrow",size:12})),items:a}))}var se=require("react");var es=new Map([["read-only",["permission.readOnly","Read Only"]],["workspace-write",["permission.workspaceWrite","Workspace Write"]],["danger-full-access",["permission.fullAccess","Full access"]]]);function To(e,t){let n=es.get(e.value);return n!==void 0&&(e.name===e.value||e.name===n[1])?t(n[0]):e.name||e.value}function Eo(e,t){return e!==t&&t==="danger-full-access"}var pe=require("@deepseek-ai/dsh-client-ui-primitives");var v=require("react/jsx-runtime");function ts(e,t,n,o){if(e==="deepseek-account"){let r=n("provider.account");return r&&r!=="provider.account"?r:o("form.providerAccount")}return t}function ns(e,t){return(e==="deepseek-account"?0:e==="deepseek-official"?1:2)-(t==="deepseek-account"?0:t==="deepseek-official"?1:2)}function os(e){return(e.provider==="deepseek-account"||e.provider==="deepseek-official")&&e.model==="deepseek-flash"?(0,v.jsxs)("span",{style:{display:"inline-flex",alignItems:"center",gap:6},children:[(0,v.jsx)("span",{children:e.label}),(0,v.jsx)(pe.Tag,{tone:"info",children:"1017"})]}):e.label}var rs=[1,2,3,4,5,6,7],ss=["once","interval","hourly","daily","weekly","monthly","custom"],as=Array.from({length:24},(e,t)=>String(t).padStart(2,"0")),Io=Array.from({length:60},(e,t)=>String(t).padStart(2,"0"));function No({t:e,permissionT:t,modelT:n,busy:o,workspaces:r,models:a,modelFailures:s,defaultModel:l,skills:d,permissions:i,defaultPermission:p,draft:u,editing:w,onClose:y,onSubmit:h,onAddWorkspace:b}){let[f,k]=(0,se.useState)(()=>({...Mt(new Date,r,l,p),...u})),[g,T]=(0,se.useState)(),[A,D]=(0,se.useState)(),[R,W]=(0,se.useState)(!1),[K,z]=(0,se.useState)(!1),[x,F]=(0,se.useState)(0),[ne,q]=(0,se.useState)(0),[H,O]=(0,se.useState)(),X=(0,se.useRef)(null),G=(0,se.useRef)(0);(0,se.useEffect)(()=>{let c=I=>{if(I.key==="Escape"&&document.querySelector('[role="menu"]')===null){if(I.preventDefault(),I.stopPropagation(),I.stopImmediatePropagation(),A!==void 0){W(!1),D(void 0);return}y()}},m=I=>{it(I,"dsh-st-create-dialog")};return window.addEventListener("keydown",c,!0),document.addEventListener("click",m,!0),()=>{window.removeEventListener("keydown",c,!0),document.removeEventListener("click",m,!0)}},[A,y]);let M=c=>{k(m=>({...m,...c})),T(void 0)},de=r.some(c=>c.id===f.workspaceId),Y=async()=>{if(!(b===void 0||K)){z(!0),T(void 0),document.activeElement instanceof HTMLElement&&document.activeElement.blur();try{let c=await b();c!==void 0&&M({workspaceId:c})}catch(c){c instanceof De?T(e("form.workspaceUnavailable")):c instanceof Error&&c.message!==""?T(c.message):T(e("form.addWorkspaceFailed"))}finally{z(!1)}}},ue=c=>{if(Eo(f.permission,c)){W(!1),D(c);return}M({permission:c})},L=async c=>{c?.preventDefault();try{await h(f)}catch(m){if(m instanceof oe){T(e(m.key));return}T(m instanceof Error?m.message:e("error.action"))}},le=f.onceAt.slice(0,10),me=f.onceAt.slice(11,16)||"09:00",ye=is(new Date),$=a.find(c=>`${c.provider}::${c.model}`===f.modelKey)?.reasoning,j=Ct(f.prompt,x),Q=j===void 0||H===j.query?[]:wn(d,j.query),fe=Math.min(ne,Math.max(Q.length-1,0)),ve=c=>{G.current=c,F(c)};(0,se.useEffect)(()=>{let c=document.querySelector('.dsh-st-skill-menu [aria-selected="true"]');c instanceof HTMLElement&&c.scrollIntoView({block:"nearest"})},[fe,j?.query]);let E=c=>{let m=vn(f.prompt,G.current,Ve(c));M({prompt:m.text}),O(void 0),queueMicrotask(()=>{let I=X.current;I!=null&&(I.focus(),I.setSelectionRange(m.caret,m.caret),ve(m.caret))})};return(0,v.jsxs)(v.Fragment,{children:[(0,v.jsx)(pe.Modal,{open:!0,className:"dsh-st-create-dialog",contentClassName:"dsh-st-create-content",title:e(w===!0?"modal.edit":"modal.title"),closeLabel:e("form.cancel"),onClose:y,footer:(0,v.jsxs)(v.Fragment,{children:[(0,v.jsx)(pe.Button,{variant:"outline",className:"dsh-st-modal-action",disabled:o,onClick:y,children:e("form.cancel")}),(0,v.jsx)(pe.Button,{variant:"primary",className:"dsh-st-modal-action",type:"submit",form:"dsh-st-create-form",disabled:o||K||!de,children:e("modal.save")})]}),children:(0,v.jsxs)("form",{id:"dsh-st-create-form",className:"dsh-st-form",onSubmit:c=>{L(c)},children:[(0,v.jsx)("p",{children:e("form.subtitle")}),(0,v.jsxs)("label",{className:"dsh-st-field",children:[e("form.name"),(0,v.jsx)(Oe,{value:f.name,placeholder:e("form.namePlaceholder"),onChange:c=>M({name:c.target.value})})]}),(0,v.jsxs)("div",{className:"dsh-st-plan-row",children:[(0,v.jsxs)("div",{className:"dsh-st-field",children:[e("form.planTime"),(0,v.jsxs)("div",{className:"dsh-st-inline",children:[(0,v.jsx)(ie,{value:f.scheduleKind,options:ss.map(c=>({value:c,label:e(`form.${c}`)})),onChange:c=>M({scheduleKind:c})}),f.scheduleKind==="once"&&(0,v.jsx)(Oe,{type:"date",min:ye,value:le,onChange:c=>M({onceAt:Ro(`${c.target.value}T${me}`)})}),(f.scheduleKind==="once"||f.scheduleKind==="daily"||f.scheduleKind==="weekly"||f.scheduleKind==="monthly")&&(0,v.jsx)(Ao,{value:f.scheduleKind==="once"?me:f.time,onChange:c=>{f.scheduleKind==="once"?M({onceAt:Ro(`${le}T${c}`)}):M({time:c})}}),f.scheduleKind==="interval"&&(0,v.jsxs)(v.Fragment,{children:[(0,v.jsx)("span",{className:"dsh-st-suffix",children:e("form.every")}),(0,v.jsxs)("span",{className:"dsh-st-amount",children:[(0,v.jsx)(Oe,{type:"number",min:1,value:f.everyMinutes,onChange:c=>M({everyMinutes:c.target.value})}),(0,v.jsx)("span",{className:"dsh-st-suffix",children:e("form.minutes")})]})]}),f.scheduleKind==="hourly"&&(0,v.jsxs)(v.Fragment,{children:[(0,v.jsx)(ie,{value:f.hourlyMinute,options:Io.map(c=>({value:c,label:c})),onChange:c=>M({hourlyMinute:c})}),(0,v.jsx)("span",{className:"dsh-st-suffix",children:e("form.minutesShort")})]}),f.scheduleKind==="monthly"&&(0,v.jsx)(ie,{value:f.monthDay,options:Array.from({length:31},(c,m)=>{let I=String(m+1);return{value:I,label:e("form.monthDay",{day:I})}}),onChange:c=>M({monthDay:c})}),f.scheduleKind==="custom"&&(0,v.jsxs)(v.Fragment,{children:[(0,v.jsx)("span",{className:"dsh-st-suffix",children:e("form.every")}),(0,v.jsxs)("span",{className:"dsh-st-amount",children:[(0,v.jsx)(Oe,{type:"number",min:1,value:f.customDays,onChange:c=>M({customDays:c.target.value})}),(0,v.jsx)("span",{className:"dsh-st-suffix",children:e("form.daysShort")})]}),(0,v.jsx)("span",{className:"dsh-st-suffix",children:e("form.atTime")}),(0,v.jsx)(Ao,{value:f.time,onChange:c=>M({time:c})})]})]}),f.scheduleKind==="interval"&&(0,v.jsx)("span",{className:"dsh-st-plan-hint",children:e("form.intervalHint")}),f.scheduleKind==="custom"&&(0,v.jsx)("span",{className:"dsh-st-plan-hint",children:e("form.customHint")})]}),(0,v.jsxs)("label",{className:"dsh-st-field dsh-st-concurrency",title:e("form.maxConcurrentRunsHint"),children:[e("form.maxConcurrentRuns"),(0,v.jsx)(Oe,{type:"number",min:1,step:1,value:f.maxConcurrentRuns,onChange:c=>M({maxConcurrentRuns:c.target.value})})]})]}),f.scheduleKind==="weekly"&&(0,v.jsx)("div",{className:"dsh-st-weekdays",children:rs.map(c=>(0,v.jsx)(pe.Checkbox,{checked:f.weekdays.includes(c),label:e(`day.${c}`),onChange:m=>M({weekdays:m?[...f.weekdays,c]:f.weekdays.filter(I=>I!==c)})},c))}),(0,v.jsxs)("div",{className:"dsh-st-settings",children:[(0,v.jsxs)("label",{className:"dsh-st-picker-field",children:[(0,v.jsx)("span",{children:e("form.fieldWorkspace")}),r.length===0?(0,v.jsxs)("div",{className:"dsh-st-workspace-empty",children:[(0,v.jsx)(pe.Button,{variant:"primary",icon:(0,v.jsx)(st,{size:14}),disabled:K,onClick:()=>{Y()},children:e("form.addWorkspace")}),(0,v.jsx)("span",{className:"dsh-st-workspace-note",children:e("form.workspaceRequired")})]}):(0,v.jsx)(ie,{value:f.workspaceId,label:e("form.fieldWorkspace"),placeholder:e("form.workspace"),options:r.map(c=>({value:c.id,label:c.title})),footer:[{value:"add-workspace",label:e("form.addWorkspace"),disabled:K}],onFooter:()=>{Y()},onChange:c=>M({workspaceId:c})})]}),(0,v.jsxs)("label",{className:"dsh-st-picker-field",children:[(0,v.jsx)("span",{children:e("form.fieldModel")}),(0,v.jsx)(ie,{value:f.modelKey,label:e("form.fieldModel"),groups:Array.from(a.reduce((c,m)=>{let I=ts(m.provider,m.providerLabel,n,e),he=c.get(m.provider)??{label:I,options:[]};return he.options.push({value:`${m.provider}::${m.model}`,label:os(m),text:m.label}),c.set(m.provider,he),c},new Map)).sort(([c],[m])=>ns(c,m)).map(([c,m])=>({id:c,label:m.label,options:m.options})),onChange:c=>{let m=a.find(I=>`${I.provider}::${I.model}`===c);M({modelKey:c,reasoningEffort:m?.reasoning?.defaultEffort??"none"})}})]}),(0,v.jsxs)("label",{className:"dsh-st-picker-field",children:[(0,v.jsx)("span",{children:e("form.fieldEffort")}),(0,v.jsx)(ie,{disabled:$===void 0,value:$===void 0?"":f.reasoningEffort,label:e("form.fieldEffort"),placeholder:n("effort.providerDefault"),options:$===void 0?[]:[...$.defaultEffort===void 0?[{value:"none",label:n("effort.providerDefault")}]:[],...$.efforts.map(c=>({value:c.id,label:c.name}))],onChange:c=>M({reasoningEffort:c})})]}),(0,v.jsxs)("label",{className:"dsh-st-picker-field",children:[(0,v.jsx)("span",{children:e("form.fieldPermission")}),(0,v.jsx)(ie,{value:f.permission,options:i.map(c=>({value:c.value,label:To(c,e)})),onChange:c=>ue(c)})]})]}),(0,v.jsxs)("div",{className:"dsh-st-field",children:[(0,v.jsxs)("span",{className:"dsh-st-prompt-label",children:[e("form.prompt"),(0,v.jsx)("em",{children:e("form.slashHint")})]}),(0,v.jsxs)("div",{className:"dsh-st-prompt-anchor",children:[j!==void 0&&H!==j.query&&(0,v.jsx)("div",{className:"dsh-st-skill-menu",role:"listbox",children:Q.length===0?(0,v.jsx)("p",{children:e("form.slashEmpty")}):Q.map((c,m)=>(0,v.jsxs)("button",{type:"button",role:"option","aria-selected":m===fe,onMouseDown:I=>I.preventDefault(),onClick:()=>E(c),children:[(0,v.jsx)("span",{children:c.name}),(0,v.jsx)("code",{children:Ve(c)})]},c.id))}),(0,v.jsxs)("div",{className:"dsh-st-prompt-card",children:[(0,v.jsx)("div",{className:"dsh-st-prompt-backdrop","aria-hidden":"true",children:Sn(f.prompt,d).map((c,m)=>c.kind==="skill"?(0,v.jsx)("span",{className:"dsh-st-skill-token",children:c.text},m):(0,v.jsx)("span",{children:c.text},m))}),(0,v.jsx)(xo,{ref:X,spellCheck:!1,className:"dsh-st-prompt-input",value:f.prompt,placeholder:e("form.promptPlaceholder"),rows:4,onChange:c=>{ve(c.target.selectionStart),M({prompt:c.target.value}),O(void 0)},onSelect:c=>ve(c.currentTarget.selectionStart),onScroll:c=>{let m=c.currentTarget.closest(".dsh-st-prompt-card")?.querySelector(".dsh-st-prompt-backdrop");m instanceof HTMLElement&&(m.scrollTop=c.currentTarget.scrollTop)},onKeyDown:c=>{if(j!==void 0){if(c.key==="Escape"){c.preventDefault(),O(j.query);return}if(Q.length!==0){if(c.key==="ArrowDown")c.preventDefault(),q(m=>(Math.min(m,Q.length-1)+1)%Q.length);else if(c.key==="ArrowUp")c.preventDefault(),q(m=>(Math.min(m,Q.length-1)+Q.length-1)%Q.length);else if(c.key==="Enter"||c.key==="Tab"){c.preventDefault();let m=Q[fe];m!==void 0&&E(m)}}}}})]})]})]}),s.map(c=>(0,v.jsx)("p",{className:"dsh-st-error",children:n("warning.groupLoad",{name:c.providerLabel,message:c.message})},c.provider)),g!==void 0&&(0,v.jsx)("p",{className:"dsh-st-error",children:g})]})}),(0,v.jsx)(pe.RiskConfirmation,{open:A!==void 0,title:t("confirm.title"),description:t("confirm.description"),acknowledgeLabel:t("confirm.acknowledge"),cancelLabel:t("confirm.cancel"),closeLabel:t("confirm.cancel"),confirmLabel:t("confirm.enable"),acknowledged:R,onAcknowledgedChange:W,onCancel:()=>{W(!1),D(void 0)},onConfirm:()=>{!R||A===void 0||(M({permission:A}),W(!1),D(void 0))}})]})}function Ao({value:e,onChange:t}){let[n,o]=e.split(":");return(0,v.jsxs)("span",{className:"dsh-st-time",children:[(0,v.jsx)(ie,{value:n,options:as.map(r=>({value:r,label:r})),onChange:r=>t(`${r}:${o}`)}),(0,v.jsx)("span",{className:"dsh-st-time-sep",children:":"}),(0,v.jsx)(ie,{value:o,options:Io.map(r=>({value:r,label:r})),onChange:r=>t(`${n}:${r}`)})]})}function is(e){let t=e.getTimezoneOffset()*6e4;return new Date(e.getTime()-t).toISOString().slice(0,10)}function Ro(e){let t=new Date(e),n=new Date;if(!Number.isFinite(t.getTime())||t.getTime()>n.getTime())return e;let o=new Date(n.getTime()+6e4);o.setSeconds(0,0);let r=o.getTimezoneOffset()*6e4;return new Date(o.getTime()-r).toISOString().slice(0,16)}var Oo=require("react"),He=require("@deepseek-ai/dsh-client-ui-primitives");var ke=require("react/jsx-runtime");function Co({target:e,t,busy:n,onCancel:o,onConfirm:r}){return(0,Oo.useEffect)(()=>{if(e===void 0)return;let a=l=>{l.key==="Escape"&&(l.preventDefault(),l.stopPropagation(),l.stopImmediatePropagation(),o())},s=l=>{it(l,"dsh-st-delete-dialog")};return window.addEventListener("keydown",a,!0),document.addEventListener("click",s,!0),()=>{window.removeEventListener("keydown",a,!0),document.removeEventListener("click",s,!0)}},[o,e]),(0,ke.jsx)(He.Modal,{open:e!==void 0,className:"dsh-st-delete-dialog",title:t("card.confirmDelete"),...e===void 0?{}:{description:`${e.name} ${t("card.confirmDeleteHint")}`},closeLabel:t("card.cancel"),onClose:o,footer:(0,ke.jsxs)(ke.Fragment,{children:[(0,ke.jsx)(He.Button,{variant:"outline",className:"dsh-st-modal-action",disabled:n,onClick:o,children:t("card.cancel")}),(0,ke.jsx)(He.Button,{variant:"outline",className:"dsh-st-modal-action dsh-st-btn-danger",disabled:n,onClick:r,children:t("card.confirm")})]})})}var We=null,zt=new Set;function Mo(e){We=e;for(let t of[...zt])t(We)}function $t(){let e=We;return We=null,e}function Po(){return We}function _o(e){return zt.add(e),()=>{zt.delete(e)}}function Do(e){let t=document.querySelector("[data-composer-seat] textarea");return t instanceof HTMLTextAreaElement?(Object.getOwnPropertyDescriptor(HTMLTextAreaElement.prototype,"value")?.set?.call(t,e),t.dispatchEvent(new InputEvent("input",{bubbles:!0})),t.focus(),!0):!1}function Ue(e){if(typeof e!="object"||e===null||!("ok"in e))throw new Error("\u81EA\u52A8\u5316\u4E3B\u673A\u8FD4\u56DE\u4E86\u65E0\u6548\u54CD\u5E94\u3002");let t=e;if(t.ok===!0&&"value"in t)return t.value;if(t.ok===!1&&"error"in t){let n=t.error;throw new Error(n?.message??"\u81EA\u52A8\u5316\u8BF7\u6C42\u5931\u8D25\u3002")}throw new Error("\u81EA\u52A8\u5316\u4E3B\u673A\u8FD4\u56DE\u4E86\u65E0\u6548\u54CD\u5E94\u3002")}var Fe="/dsh-automation",Ho=15e3,ds=2e3,Wo=[1,2,4],Lo=Wo.length+1,ls=5*60*1e3,cs=24*60*60*1e3;function us(e){return(e??[]).some(t=>t.status==="running"||t.status==="queued")?ds:Ho}function Kt(e,t){return t>0?us(e):Ho}function Vt(e){let t=e instanceof Error?e.message:String(e);return/failed to fetch|networkerror|load failed|network request failed/i.test(t)}function ps(e,t){let n=Date.parse(t),r=(Number.isFinite(n)?n:Date.now())-cs;return[...new Set(e.filter(a=>{if(a.status==="queued"||a.status==="running")return!0;let s=Date.parse(a.finishedAt??a.startedAt??a.scheduledFor);return Number.isFinite(s)&&s>=r}).map(a=>a.sessionId).filter(a=>a!==void 0&&a!==""))].sort()}function Uo(e,t,n={}){let o=!1,r=0,a=e.source.getSnapshot().phase==="loading",s,l,d=0,i=0,p=0,u,w,y=!1,h=g=>{l=g,d=0,i=r,p=0,u=void 0},b=g=>{let T=e.source.getSnapshot().snapshot,A=g?.list?.getSnapshot();if(T===void 0||A===void 0||g?.refresh===void 0)return;let D=new Set([...A.ids??[],...Object.keys(A.byId??{})]);return ps(T.runs,T.serverNow).filter(R=>!D.has(R)).join("\0")},f=()=>{if(o)return;let g=t();g!==s&&(s=g,h());let T=b(g);if(T===void 0)return;if(T===""){h();return}if(T!==l&&h(T),d>=Lo){if((n.now??Date.now)()<p)return;h(T)}if(r<i)return;if(w!==void 0){y=!0;return}let A=d;d+=1;let D=Wo[A];i=D===void 0?Number.POSITIVE_INFINITY:r+D,d>=Lo&&(p=(n.now??Date.now)()+ls),w=Promise.resolve().then(async()=>{await g.refresh()}).catch(R=>{!o&&u!==T&&(u=T,console.warn("[dsh-automation] \u5237\u65B0 Host \u4F1A\u8BDD\u5217\u8868\u5931\u8D25",R))}).finally(()=>{w=void 0,!(o||!y)&&(y=!1,f())})},k=e.source.subscribe(()=>{e.source.getSnapshot().phase==="loading"?a=!0:a&&(a=!1,r+=1),f()},{background:!0});return f(),()=>{o=!0,y=!1,k()}}function Fo(e){let t={phase:"idle"},n,o,r=()=>{},a=new Set,s=new Set,l=()=>{if(o!==void 0&&clearInterval(o),a.size===0){o=void 0;return}o=setInterval(()=>{u().catch(()=>{})},Kt(t.snapshot?.runs,s.size))},d=()=>{if(r(),s.size===0)return;let h=()=>{u().catch(()=>{})},b=()=>{document.visibilityState==="visible"&&h()};typeof window<"u"&&window.addEventListener("focus",h),typeof document<"u"&&document.addEventListener("visibilitychange",b),r=()=>{typeof window<"u"&&window.removeEventListener("focus",h),typeof document<"u"&&document.removeEventListener("visibilitychange",b),r=()=>{}}},i=h=>{let b=Kt(t.snapshot?.runs,s.size);t=h,a.size>0&&b!==Kt(t.snapshot?.runs,s.size)&&l();for(let f of[...a])f()},p={getSnapshot:()=>t,subscribe:(h,b={})=>{let f=a.size>0,k=s.size>0;return a.add(h),b.background!==!0&&s.add(h),(!f||b.background!==!0&&!k)&&queueMicrotask(()=>{a.size>0&&u().catch(()=>{})}),l(),s.size>0&&!k&&d(),()=>{a.delete(h),s.delete(h),a.size===0&&o!==void 0?(clearInterval(o),o=void 0):a.size>0&&l(),s.size===0&&r()}}},u=async()=>{if(n!==void 0)return n;let h=t.snapshot;return i(h===void 0?{phase:"loading"}:{phase:"loading",snapshot:h,...t.refreshedAt===void 0?{}:{refreshedAt:t.refreshedAt}}),n=(async()=>{try{let b=await e.call(Fe,"snapshot",{sessionId:"settings"}),f=Ue(b);i({phase:"ready",snapshot:f,refreshedAt:Date.now()})}catch(b){let f=b instanceof Error?b.message:String(b);throw i(h===void 0?{phase:"error",error:f}:{phase:"error",snapshot:h,error:f,...t.refreshedAt===void 0?{}:{refreshedAt:t.refreshedAt}}),b}finally{n=void 0}})(),n},w=async(h,b)=>{try{return await e.call(Fe,h,b)}catch(f){if(!Vt(f))throw f;return await e.call(Fe,h,b)}},y=async(h,b,f)=>{Ue(await w(h,b));let k=()=>{f!==void 0&&t.snapshot!==void 0&&i({phase:"ready",snapshot:f(t.snapshot),refreshedAt:Date.now()})},g=n;k(),g!==void 0&&(await g.catch(()=>{}),k());try{await u()}catch{}};return{source:p,refresh:u,async createAutomation(h){await y("create",{sessionId:"settings",input:h})},async mutateAutomation(h,b){await y("mutate",{sessionId:"settings",automationId:h,mutation:b},b==="delete"?k=>({...k,automations:k.automations.filter(g=>g.id!==h)}):k=>({...k,automations:k.automations.map(g=>g.id===h?{...g,status:b==="pause"?"paused":"active"}:g)}))},async updateAutomation(h,b){await y("update",{sessionId:"settings",automationId:h,input:b})},async runNow(h){await y("run-now",{sessionId:"settings",automationId:h})},async markRunRead(h){await y("mark-read",{sessionId:"settings",runId:h})},async registerWorkspace(h){let b=Ue(await e.call(Fe,"register-workspace",{path:h}));return await u(),b},async adoptSession(h){Ue(await e.call(Fe,"adopt-session",{sessionId:h}))},async forgetSession(h){await y("forget-session",{sessionId:h},b=>({...b,runs:b.runs.map(f=>{if(f.sessionId!==h)return f;let{sessionId:k,...g}=f;return g})}))},async forgetAutomationSessions(h){await y("forget-automation-sessions",{automationId:h},b=>({...b,runs:b.runs.map(f=>{if(f.automationId!==h)return f;let{sessionId:k,...g}=f;return g})}))}}}var Gt=require("react"),Ce=require("@deepseek-ai/dsh-client-ui-primitives");var be=require("react/jsx-runtime"),ms=[["created","desc"],["created","asc"],["planned","asc"],["planned","desc"]];function lt({t:e,storage:t,storageKey:n,sortKey:o,sortDirection:r,onSelect:a,iconOnly:s=!1,className:l}){let[d,i]=(0,Gt.useState)(!1),[p,u]=(0,Gt.useState)(()=>Se(t,n)),w=e(o==="planned"?`sort.planned.${r}`:`sort.created.${r}`),y=p?.key===o&&p.direction===r,h=()=>{t===void 0||y||(In(t,n,o,r),u({key:o,direction:r}))},b=[...ms.map(([k,g])=>({id:`${k}-${g}`,label:e(k==="planned"?`sort.planned.${g}`:`sort.created.${g}`)})),...t===void 0?[]:[{type:"separator",id:"sort-default-sep"},{id:"save-default",label:e(y?"sort.default.saved":"sort.default.save")}]],f=s?(0,be.jsx)(Ce.Tooltip,{label:w,side:"bottom",delayMs:500,disabled:d,portal:!0,children:(0,be.jsx)("button",{type:"button",className:d?"dsh-st-n-head-btn is-on":"dsh-st-n-head-btn","aria-label":w,"aria-expanded":d,onClick:()=>i(k=>!k),children:(0,be.jsx)(uo,{size:16})})}):(0,be.jsxs)(Ce.Button,{variant:"outline",size:"sm",role:"combobox","aria-label":w,"aria-expanded":d,className:["dsh-st-menu-select-trigger",d?"is-open":""].filter(Boolean).join(" "),onClick:()=>i(k=>!k),children:[(0,be.jsx)("span",{className:"dsh-st-menu-select-label",children:w}),(0,be.jsx)(at,{className:"dsh-st-menu-select-arrow",size:12})]});return(0,be.jsx)("div",{className:["dsh-st-menu-select-wrap",l].filter(Boolean).join(" "),style:{display:"inline-flex",verticalAlign:"middle"},children:(0,be.jsx)(Ce.Menu,{open:d,onClose:()=>i(!1),selectedId:`${o}-${r}`,align:s?"end":"start",portal:!0,dense:!0,anchor:f,items:b,onSelect:k=>{if(k==="save-default"){h(),i(!1);return}let[g,T]=k.split("-");a(g,T),i(!1)}})})}var ct="dsh-automation:open-task-settings",Yt="dsh-automation:pending-task-settings";function Zt(e){if(typeof e!="object"||e===null)return;let t=e;if(!(typeof t.name!="string"||t.name.trim()===""||!Array.isArray(t.sessionIds)||t.sessionIds.some(n=>typeof n!="string"))&&!(t.automationId!==void 0&&(typeof t.automationId!="string"||t.automationId.trim()==="")))return{...typeof t.automationId=="string"?{automationId:t.automationId}:{},name:t.name,sessionIds:[...t.sessionIds]}}function fs(e,t){try{e?.setItem(Yt,JSON.stringify(t))}catch{}}function Xt(e){typeof window>"u"||(fs(window.sessionStorage,e),window.dispatchEvent(new CustomEvent(ct,{detail:e})))}function Bo(e){if(e!==void 0)try{let t=e.getItem(Yt);return t===null?void 0:Zt(JSON.parse(t))}catch{return}}function ut(e){try{e?.removeItem(Yt)}catch{}}function jo(e,t,n){if(e.automationId!==void 0){let l=t.find(d=>d.id===e.automationId);if(l!==void 0)return l}let o=new Set(e.sessionIds),r=n.find(l=>l.sessionId!==void 0&&o.has(l.sessionId))?.automationId,a=t.find(l=>l.id===r);if(a!==void 0)return a;let s=t.filter(l=>l.name===e.name);return s.length===1?s[0]:void 0}var pt="dsh-automation:create-task",Jt="dsh-automation:pending-create-task";function Qt(){if(!(typeof window>"u")){try{window.sessionStorage.setItem(Jt,"1")}catch{}window.dispatchEvent(new Event(pt))}}function qo(e){if(e===void 0)return!1;try{return e.getItem(Jt)==="1"}catch{return!1}}function mt(e){try{e?.removeItem(Jt)}catch{}}var S=require("react/jsx-runtime"),ft=typeof window>"u"?void 0:window.localStorage,zo=typeof window>"u"?void 0:window.sessionStorage,$o=typeof window>"u"?void 0:window.sessionStorage,hs=[{name:"\u6BCF\u65E5\u56DE\u5F52\u68C0\u67E5",scheduleKind:"daily",time:"09:00",weekdays:[1,2,3,4,5]},{name:"\u6BCF\u5468\u4F9D\u8D56\u5DE1\u68C0",scheduleKind:"weekly",time:"10:00",weekdays:[1]},{name:"\u5DE5\u4F5C\u65E5\u65E9\u62A5",scheduleKind:"weekly",time:"08:00",weekdays:[1,2,3,4,5]}];function en({t:e,permissionT:t,modelT:n,runtime:o,closeSettings:r,addWorkspace:a}){let s=(0,V.useSyncExternalStore)(o.source.subscribe,o.source.getSnapshot,o.source.getSnapshot),[l,d]=(0,V.useState)("mine"),[i,p]=(0,V.useState)(""),[u,w]=(0,V.useState)(!1),[y,h]=(0,V.useState)(),[b,f]=(0,V.useState)(),[k,g]=(0,V.useState)(),[T,A]=(0,V.useState)(!1),[D,R]=(0,V.useState)(),[W,K]=(0,V.useState)("day"),[z,x]=(0,V.useState)("all"),[F,ne]=(0,V.useState)("all"),[q,H]=(0,V.useState)(()=>Se(ft,Xe)?.key??"created"),[O,X]=(0,V.useState)(()=>Se(ft,Xe)?.direction??"desc"),[G,M]=(0,V.useState)(()=>Bo(zo)),[de,Y]=(0,V.useState)(()=>qo($o)),ue=(0,V.useMemo)(()=>new Date(s.snapshot?.serverNow??Date.now()),[s.snapshot?.serverNow,s.refreshedAt]),L=s.snapshot,le=L?.workspaces??[],me=L?.models??[],ye=L?.permissions??[],C=L?.defaultPermission??"",$=Ze((L?.automations??[]).filter(m=>i.trim()===""||`${m.name} ${m.prompt}`.toLowerCase().includes(i.trim().toLowerCase())),q,O),j=(L?.runs??[]).filter(m=>!(z!=="all"&&m.automationId!==z||F!=="all"&&m.status!==F)),Q=Nn(j,W,ue,e),fe=async m=>{A(!0),R(void 0);try{await m()}catch(I){R(I instanceof oe?e(I.key):Vt(I)?e("error.offline"):I instanceof Error?I.message:e("error.action"))}finally{A(!1)}},ve=()=>{w(!1),g(void 0),h(void 0)},E=m=>{C===""||ye.length===0||(h(void 0),g(m),w(!0))},c=m=>{h(m.id),g(On(m,le,L?.defaultModel??null,L?.defaultPermission??m.permission)),w(!0)};return(0,V.useEffect)(()=>{if(typeof window>"u")return;let m=he=>{let Z=Zt(he.detail);Z!==void 0&&M(Z)},I=()=>{Y(!0)};return window.addEventListener(ct,m),window.addEventListener(pt,I),()=>{window.removeEventListener(ct,m),window.removeEventListener(pt,I)}},[]),(0,V.useEffect)(()=>{!de||L===void 0||(mt($o),Y(!1),d("mine"),p(""),E())},[de,L,e]),(0,V.useEffect)(()=>{if(G===void 0||L===void 0)return;let m=jo(G,L.automations,L.runs);if(ut(zo),M(void 0),d("mine"),p(""),m===void 0){R(e("error.taskMissing"));return}c(m)},[L,G,e]),(0,S.jsxs)("div",{className:"dsh-st-shell",children:[(0,S.jsxs)("header",{className:"dsh-st-top",children:[(0,S.jsxs)("div",{className:"dsh-st-heading",children:[(0,S.jsxs)("div",{className:"dsh-st-heading-row",children:[(0,S.jsx)("h1",{children:e("tab")}),(0,S.jsxs)("div",{className:"dsh-st-heading-links",children:[(0,S.jsx)(te.Button,{variant:"outline",size:"sm","aria-label":e("header.githubProject"),icon:(0,S.jsx)(io,{}),onClick:()=>{window.open("https://github.com/MichengAI/dsh-automation","_blank","noreferrer")},children:e("header.githubProject")}),(0,S.jsx)(te.Button,{variant:"outline",size:"sm","aria-label":e("header.githubFeedback"),icon:(0,S.jsx)(yo,{size:16}),onClick:()=>{window.open("https://github.com/MichengAI/dsh-automation/issues","_blank","noreferrer")},children:e("header.githubFeedback")})]})]}),(0,S.jsx)("p",{children:e("header.lead")})]}),(0,S.jsxs)("div",{className:"dsh-st-toolbar",children:[(0,S.jsx)(te.Input,{className:"dsh-st-search",value:i,placeholder:e("search.placeholder"),onChange:m=>p(m.target.value)}),(0,S.jsx)(te.Button,{variant:"outline",icon:(0,S.jsx)(go,{size:18}),onClick:()=>{Mo(e("chat.prompt")),r?.()},children:e("action.chatCreate")}),(0,S.jsx)(te.Button,{variant:"primary",icon:(0,S.jsx)(st,{size:18}),disabled:C===""||ye.length===0,onClick:()=>E(),children:e("action.create")}),(0,S.jsx)(te.Button,{className:"dsh-st-row-icon",variant:"outline",size:"sm",icon:(0,S.jsx)(fo,{size:16}),"aria-label":e("section.refresh"),style:jt,onClick:()=>{o.refresh()}})]})]}),(0,S.jsx)("div",{className:"dsh-st-banner",role:"note",children:(0,S.jsxs)("span",{children:[(0,S.jsx)(ho,{size:18}),e("banner.wake")]})}),(0,S.jsxs)("section",{className:"dsh-st-examples",children:[(0,S.jsx)("div",{className:"dsh-st-examples-head",children:(0,S.jsx)("h2",{children:e("examples.title")})}),(0,S.jsx)("div",{className:"dsh-st-example-row",children:hs.map((m,I)=>(0,S.jsxs)("button",{type:"button",className:"dsh-st-example",disabled:C===""||ye.length===0,onClick:()=>E({name:e(`examples.${I+1}.title`),prompt:e(`examples.${I+1}.body`),scheduleKind:m.scheduleKind,time:m.time,weekdays:m.weekdays}),children:[(0,S.jsx)("strong",{children:e(`examples.${I+1}.title`)}),(0,S.jsx)("p",{children:e(`examples.${I+1}.body`)}),(0,S.jsxs)("span",{className:"dsh-st-chip",children:[(0,S.jsx)(ce,{size:14}),e(`examples.${I+1}.chip`)]})]},m.name))})]}),D!==void 0&&(0,S.jsx)("p",{className:"dsh-st-error",children:D}),(s.phase==="idle"||s.phase==="loading"&&L===void 0)&&(0,S.jsx)("p",{className:"dsh-st-muted",children:e("loading")}),s.phase==="error"&&L===void 0&&(0,S.jsxs)("div",{className:"dsh-st-empty",children:[(0,S.jsx)("h3",{children:e("error.title")}),(0,S.jsx)("p",{children:s.error}),(0,S.jsx)(te.Button,{variant:"primary",onClick:()=>{o.refresh()},children:e("error.retry")})]}),(0,S.jsxs)("div",{className:"dsh-st-tabs",children:[(0,S.jsx)(te.SegmentedTabs,{className:"dsh-st-settings-tabs",label:e("tab"),value:l,items:[{value:"mine",id:"dsh-st-tab-mine",panelId:"dsh-st-panel-mine",label:(0,S.jsxs)("span",{className:"dsh-st-tab-label",children:[(0,S.jsx)(ce,{size:14}),(0,S.jsx)("span",{children:e("tabs.mine")})]})},{value:"runs",id:"dsh-st-tab-runs",panelId:"dsh-st-panel-runs",label:(0,S.jsxs)("span",{className:"dsh-st-tab-label",children:[(0,S.jsx)(rt,{size:14}),(0,S.jsx)("span",{children:e("tabs.runs")})]})}],onChange:d}),l==="mine"&&(0,S.jsx)("div",{className:"dsh-st-sort-wrap",children:(0,S.jsx)(lt,{t:e,...ft===void 0?{}:{storage:ft},storageKey:Xe,sortKey:q,sortDirection:O,onSelect:(m,I)=>{H(m),X(I)}})}),l==="runs"&&(0,S.jsxs)("div",{className:"dsh-st-filters",children:[(0,S.jsx)(ie,{compact:!0,className:"dsh-st-filter-range",value:W,options:["day","week","month"].map(m=>({value:m,label:e(`history.range.${m}`)})),onChange:m=>K(m)}),(0,S.jsx)(ie,{compact:!0,className:"dsh-st-filter-task",value:z,options:[{value:"all",label:e("history.allTasks")},...(L?.automations??[]).map(m=>({value:m.id,label:m.name}))],onChange:x}),(0,S.jsx)(ie,{compact:!0,className:"dsh-st-filter-status",value:F,options:[{value:"all",label:e("history.allStatus")},...Rn.map(m=>({value:m,label:e(`status.${m}`)}))],onChange:m=>ne(m)})]})]}),l==="mine"&&($.length===0?(0,S.jsxs)("div",{id:"dsh-st-panel-mine",role:"tabpanel","aria-labelledby":"dsh-st-tab-mine",className:"dsh-st-empty",children:[(0,S.jsx)("h3",{children:e("empty.title")}),(0,S.jsx)("p",{children:e("empty.body")})]}):(0,S.jsx)("div",{id:"dsh-st-panel-mine",role:"tabpanel","aria-labelledby":"dsh-st-tab-mine",className:"dsh-st-grid",children:$.map(m=>(0,S.jsx)(gs,{item:m,t:e,now:ue,busy:T,onEdit:()=>c(m),onToggle:()=>{fe(()=>o.mutateAutomation(m.id,ot(m.status)))},onRun:()=>{fe(()=>o.runNow(m.id))},onDelete:()=>f(m)},m.id))})),l==="runs"&&(Q.length===0?(0,S.jsx)("div",{id:"dsh-st-panel-runs",role:"tabpanel","aria-labelledby":"dsh-st-tab-runs",className:"dsh-st-empty",children:e("runs.empty")}):(0,S.jsx)("div",{id:"dsh-st-panel-runs",role:"tabpanel","aria-labelledby":"dsh-st-tab-runs",className:"dsh-st-timeline",children:Q.map(m=>(0,S.jsxs)("section",{className:"dsh-st-group",children:[(0,S.jsx)("h3",{children:m.label}),m.items.map(I=>(0,S.jsx)(ys,{run:I,t:e},I.id))]},m.key))})),u&&(0,S.jsx)(No,{t:e,permissionT:t,modelT:n,busy:T,workspaces:le,models:me,modelFailures:L?.modelFailures??[],defaultModel:L?.defaultModel??null,skills:L?.skills??[],permissions:ye,defaultPermission:C,editing:y!==void 0,...k===void 0?{}:{draft:k},onClose:ve,...a===void 0?{}:{onAddWorkspace:a},onSubmit:async m=>{let I=xn(m,le,me,new Date,{allowPastOnce:y!==void 0});await fe(async()=>{y===void 0?await o.createAutomation(I):await o.updateAutomation(y,I),ve()})}},y??"create"),(0,S.jsx)(Co,{target:b,t:e,busy:T,onCancel:()=>f(void 0),onConfirm:()=>{let m=b;m!==void 0&&fe(async()=>{await o.mutateAutomation(m.id,"delete"),f(void 0)})}})]})}function gs({item:e,t,now:n,busy:o,onEdit:r,onToggle:a,onRun:s,onDelete:l}){let[d,i]=(0,V.useState)(!1);return(0,S.jsxs)("article",{className:"dsh-st-card",onClick:r,children:[(0,S.jsxs)("div",{className:"dsh-st-card-head",children:[(0,S.jsx)("span",{onClick:p=>p.stopPropagation(),children:(0,S.jsx)(te.Switch,{checked:e.status==="active",disabled:o,label:e.status==="active"?t("card.pause"):t("card.resume"),onChange:()=>a()})}),(0,S.jsx)("span",{onClick:p=>p.stopPropagation(),children:(0,S.jsx)(te.Menu,{open:d,onClose:()=>i(!1),align:"end",portal:!0,dense:!0,anchor:(0,S.jsx)(te.Tooltip,{label:t("card.more"),side:"bottom",delayMs:500,portal:!0,children:(0,S.jsx)("button",{type:"button",className:"dsh-st-row-icon","aria-label":t("card.more"),style:{...jt,display:"inline-flex",alignItems:"center",justifyContent:"center",padding:0,border:"1px solid var(--dsw-alias-border-l2, rgba(255,255,255,.15))",borderRadius:"var(--dsw-radius-sm, 6px)",background:"transparent",color:"var(--dsw-alias-label-secondary)",cursor:"pointer"},onClick:()=>i(p=>!p),children:(0,S.jsx)(lo,{size:16})})}),items:[{id:"run",label:t("menu.run"),disabled:o},{id:"edit",label:t("menu.edit"),disabled:o},{id:"delete",label:t("menu.delete"),danger:!0,disabled:o}],onSelect:p=>{i(!1),p==="run"&&s(),p==="edit"&&r(),p==="delete"&&l()}})})]}),(0,S.jsx)("h3",{children:e.name}),(0,S.jsx)("p",{children:e.prompt}),(0,S.jsxs)("div",{className:"dsh-st-card-foot",children:[(0,S.jsxs)("span",{className:"dsh-st-chip",children:[(0,S.jsx)(ce,{size:14}),Ge(e.schedule,t)]}),(0,S.jsx)("span",{children:e.nextRunAt===void 0?t("stats.noneScheduled"):t("history.nextApprox",{when:Ye(e.nextRunAt,n,t)})})]})]})}function ys({run:e,t}){let n=En(e.startedAt,e.finishedAt);return(0,S.jsxs)("article",{className:`dsh-st-run is-${e.status}`,children:[(0,S.jsx)("strong",{children:e.automationName}),(0,S.jsxs)("p",{children:[(0,S.jsx)("span",{children:An(e.startedAt??e.scheduledFor)}),n!==void 0&&(0,S.jsx)("span",{children:n}),(0,S.jsx)("span",{children:bn(e.trigger,t)})]})]})}var Te="dsh-automation",Ko={tab:"Scheduled tasks","sidebar.tab":"Scheduled","sidebar.tabs":"Workspace views","sidebar.tasksTab":"Tasks","sidebar.views":"Scheduled views","sidebar.viewOverview":"Task overview","sidebar.runsTab":"Records","sidebar.overviewTab":"Tasks","records.groupReadOnly":"Scheduled task groups cannot be renamed or deleted here.","records.groupByTask":"By task","records.sectionTasks":"Tasks","sidebar.treeUnavailable":"The official task tree is unavailable in this Host.","sidebar.workspaces":"Workspaces","sidebar.search":"Search","sidebar.clearSearch":"Clear search","sidebar.entry.title":"Sidebar entry","sidebar.entry.desc":"Show dedicated scheduled tasks entry in the primary sidebar","sidebar.entry.toggle":"Toggle sidebar entry","update.entry.title":"Online update","update.entry.desc":"Check for updates and notify when new versions are available","update.entry.toggle":"Toggle online update","officialSchedule.entry.title":"Hide official automation entry","officialSchedule.entry.desc":"Hide built-in 'Automation tasks' sidebar entry to avoid conflict. Restores automatically when disabled or uninstalled.","officialSchedule.entry.toggle":"Toggle hide official automation entry","error.update.disabled":"locked by host configuration","header.lead":"Plan automatic tasks, or trigger them by hand. Describe the recurring work in any chat to create it quickly.","header.githubProject":"GitHub","header.githubFeedback":"Issues","examples.title":"Recommended examples","examples.1.title":"Daily regression check","examples.1.body":"Create a scheduled task that runs every day and inspects new test failures.","examples.1.chip":"Every day 09:00","examples.2.title":"Weekly dependency review","examples.2.body":"Create a scheduled task that runs every Monday and reports outdated or risky dependencies.","examples.2.chip":"Monday 10:00","examples.3.title":"Weekday morning briefing","examples.3.body":"Create a scheduled task that runs on weekdays and summarizes overnight changes.","examples.3.chip":"Weekdays 08:00","chat.prompt":"I want to create a scheduled task that runs every [interval] and does [the actual task]","menu.run":"Run task","menu.edit":"Edit task","menu.delete":"Delete task","session.taskSettings":"Task settings","history.range.day":"By day","history.range.week":"By week","history.range.month":"By month","history.allTasks":"All tasks","history.allStatus":"All statuses","history.today":"Today","history.yesterday":"Yesterday","history.date":"{date}","history.week":"Week of {date}","history.month":"{month}","history.nextApprox":"Next run in about {when}","time.withinMinute":"about {count} minutes","time.withinHour":"about {count} hours","time.withinDay":"about {count} days","search.placeholder":"Search scheduled tasks...","action.chatCreate":"Create in chat","action.create":"New scheduled task","banner.wake":"Scheduled tasks run only while this computer stays awake.","tabs.mine":"Tasks","tabs.runs":"Run history","sort.created.asc":"Created time ascending","sort.created.desc":"Created time descending","sort.planned.asc":"Planned time ascending","sort.planned.desc":"Planned time descending","sort.default.save":"Set as default","sort.default.saved":"Default","form.workspace":"Workspace","form.fieldWorkspace":"Workspace","form.fieldModel":"Model","form.providerAccount":"DeepSeek account","form.fieldEffort":"Reasoning","form.fieldPermission":"Permission","form.slashHint":"Type / to insert a skill","form.slashEmpty":"No matching skills","form.addWorkspace":"Add workspace","form.workspaceRequired":"Add a registered workspace before saving.","form.workspaceUnavailable":"This Host cannot create workspaces.","form.addWorkspaceFailed":"Could not add the workspace.","form.workspacePath":"Folder path","form.workspacePathPlaceholder":"D:\\work\\project","form.model":"Model","form.modelSelect":"Select model","form.effort":"Reasoning","form.effort.none":"Default","form.effort.low":"Low","form.effort.medium":"Medium","form.effort.high":"High","form.error.workspace":"Select a workspace.","modal.title":"New scheduled task","modal.edit":"Edit scheduled task","modal.save":"Save","stats.next":"Next run","stats.noneScheduled":"None scheduled","section.refresh":"Refresh","empty.title":"Let recurring coding work run itself","empty.body":"Save a self-contained task, a schedule, and a permission boundary. Every run starts in a new Session.","runs.empty":"No runs yet. Run one now, or wait for the next scheduled occurrence.","overview.empty":"No scheduled tasks yet. Create one in Settings.","form.title":"Create automation","form.subtitle":"Write a complete, standalone task. Scheduled runs do not inherit this conversation.","form.name":"Name","form.namePlaceholder":"Daily regression triage","form.prompt":"Task prompt","form.promptPlaceholder":"Inspect new test failures, locate the regression, and propose a verified minimal fix\u2026","form.schedule":"Schedule","form.planTime":"Schedule","form.hourly":"Hourly","form.monthly":"Monthly","form.custom":"Every few days","form.intervalHint":"Runs every this many minutes, starting now.","form.customHint":"Runs every this many days at the selected time.","form.atTime":"at","form.minutesShort":"min","form.daysShort":"days","form.monthDay":"Day {day} of month","form.skills":"Skills","form.skillsEmpty":"No skills available","schedule.hourlyAt":"Every hour at :{minute}","schedule.monthlyAt":"Monthly on day {day} \xB7 {time}","schedule.customAt":"Every {count} days \xB7 {time}","form.once":"Does not repeat","form.interval":"Interval","form.daily":"Daily","form.weekly":"Weekly","form.runAt":"Run at","form.every":"Every","form.minutes":"minutes","form.time":"Time","form.days":"Weekdays","form.timeZone":"Time zone","form.maxConcurrentRuns":"Concurrency","form.maxConcurrentRunsHint":"Queued and running executions share this limit. Defaults to 1; when full, scheduled triggers are skipped and manual runs are rejected.","form.error.maxConcurrentRuns":"Enter a positive whole number for concurrent runs.","form.permission":"Permission boundary","permission.readOnly":"Read Only","permission.workspaceWrite":"Workspace Write","permission.fullAccess":"Full access","form.cancel":"Cancel","form.submit":"Create automation","form.submitting":"Creating\u2026","form.error.name":"Enter a name.","form.error.prompt":"Enter a complete, standalone task prompt.","form.error.once":"Choose a valid future date and time.","form.error.interval":"The interval must be between 1 and 43,200 minutes.","form.error.weekdays":"Select at least one weekday.","day.1":"Mon","day.2":"Tue","day.3":"Wed","day.4":"Thu","day.5":"Fri","day.6":"Sat","day.7":"Sun","status.active":"Active","status.paused":"Paused","status.queued":"Queued","status.running":"Running","status.succeeded":"Succeeded","status.failed":"Failed","status.skipped":"Skipped","status.cancelled":"Cancelled","status.interrupted":"Interrupted","schedule.onceAt":"Once \xB7 {time}","schedule.everyMinutes":"Every {count} minutes","schedule.dailyAt":"Daily \xB7 {time}","schedule.weeklyAt":"{days} \xB7 {time}","card.pause":"Pause","card.resume":"Resume","card.more":"More actions","card.confirmDelete":"Delete this automation?","card.confirmDeleteHint":"Run history is kept for audit.","card.confirm":"Delete","card.cancel":"Cancel","run.trigger.schedule":"Scheduled","run.trigger.manual":"Manual",loading:"Loading automations\u2026","error.title":"Automations could not be loaded","error.retry":"Try again","error.action":"The action failed. Please try again.","error.taskMissing":"This scheduled task no longer exists.","error.offline":"Could not reach the local automation service. Check that DSH is still running and try again.","time.minutes":"{count}m","time.hours":"{count}h","time.days":"{count}d","time.months":"{count}mo","time.years":"{count}y","time.ago":"{text} ago","time.now":"now","time.minuteAgo":"{count}m ago","time.hourAgo":"{count}h ago","time.dayAgo":"{count}d ago","time.inMinute":"in {count}m","time.inHour":"in {count}h","time.inDay":"in {count}d"},Vo={tab:"\u5B9A\u65F6\u4EFB\u52A1","sidebar.tab":"\u5B9A\u65F6","sidebar.tabs":"\u5DE5\u4F5C\u533A\u5206\u7C7B","sidebar.tasksTab":"\u4EFB\u52A1","sidebar.views":"\u5B9A\u65F6\u9875\u89C6\u56FE","sidebar.viewOverview":"\u4EFB\u52A1\u603B\u89C8","sidebar.runsTab":"\u8BB0\u5F55","sidebar.overviewTab":"\u4EFB\u52A1","records.groupReadOnly":"\u5B9A\u65F6\u4EFB\u52A1\u5206\u7EC4\u4E0D\u80FD\u5728\u8FD9\u91CC\u91CD\u547D\u540D\u6216\u5220\u9664\u3002","records.groupByTask":"\u6309\u4EFB\u52A1","records.sectionTasks":"\u4EFB\u52A1","sidebar.treeUnavailable":"\u5F53\u524D\u5BBF\u4E3B\u672A\u63D0\u4F9B\u5B98\u65B9\u4EFB\u52A1\u6811\u3002","sidebar.workspaces":"\u5DE5\u4F5C\u533A","sidebar.search":"\u641C\u7D22","sidebar.clearSearch":"\u6E05\u7A7A\u641C\u7D22","sidebar.entry.title":"\u4FA7\u8FB9\u680F\u5165\u53E3","sidebar.entry.desc":"\u5728\u5DE6\u4FA7\u4E3B\u6D3B\u52A8\u680F\u5E38\u9A7B\u5B9A\u65F6\u4EFB\u52A1\u5FEB\u6377\u5165\u53E3","sidebar.entry.toggle":"\u5207\u6362\u4FA7\u8FB9\u680F\u5165\u53E3","update.entry.title":"\u5728\u7EBF\u66F4\u65B0","update.entry.desc":"\u5B9A\u671F\u68C0\u67E5\u65B0\u7248\u672C\u5E76\u5728\u6709\u66F4\u65B0\u65F6\u63D0\u793A","update.entry.toggle":"\u5207\u6362\u5728\u7EBF\u66F4\u65B0","officialSchedule.entry.title":"\u5C4F\u853D\u5B98\u65B9\u81EA\u52A8\u5316\u5165\u53E3","officialSchedule.entry.desc":"\u9690\u85CF\u5BBF\u4E3B\u81EA\u5E26\u7684\u300C\u81EA\u52A8\u5316\u4EFB\u52A1\u300D\u4FA7\u680F\u5165\u53E3\uFF0C\u907F\u514D\u4E0E\u672C\u63D2\u4EF6\u51B2\u7A81\u3002\u5378\u8F7D\u672C\u63D2\u4EF6\u6216\u5173\u95ED\u6B64\u9879\u540E\u81EA\u52A8\u6062\u590D\u3002","officialSchedule.entry.toggle":"\u5207\u6362\u5C4F\u853D\u5B98\u65B9\u81EA\u52A8\u5316\u5165\u53E3","error.update.disabled":"\u5DF2\u88AB\u5BBF\u4E3B\u914D\u7F6E\u9501\u5B9A\u7981\u7528","header.lead":"\u6309\u8BA1\u5212\u81EA\u52A8\u6267\u884C\u4EFB\u52A1\uFF0C\u4E5F\u53EF\u968F\u65F6\u624B\u52A8\u89E6\u53D1\u3002\u5728\u4EFB\u610F\u5BF9\u8BDD\u4E2D\u63CF\u8FF0\u4F60\u60F3\u5B9A\u671F\u505A\u7684\u4E8B\uFF0C\u5373\u53EF\u5FEB\u901F\u521B\u5EFA","header.githubProject":"GitHub","header.githubFeedback":"\u95EE\u9898\u53CD\u9988","examples.title":"\u63A8\u8350\u6848\u4F8B","examples.1.title":"\u6BCF\u65E5\u56DE\u5F52\u68C0\u67E5","examples.1.body":"\u6211\u8981\u521B\u5EFA\u4E00\u4E2A\u5B9A\u65F6\u4EFB\u52A1\uFF0C\u6BCF\u3010\u5929\u3011\u6267\u884C\u3010\u68C0\u67E5\u65B0\u589E\u6D4B\u8BD5\u5931\u8D25\u5E76\u7ED9\u51FA\u6700\u5C0F\u4FEE\u590D\u3011\u3002","examples.1.chip":"\u6BCF\u5929 09:00","examples.2.title":"\u6BCF\u5468\u4F9D\u8D56\u5DE1\u68C0","examples.2.body":"\u6211\u8981\u521B\u5EFA\u4E00\u4E2A\u5B9A\u65F6\u4EFB\u52A1\uFF0C\u6BCF\u3010\u5468\u4E00\u3011\u6267\u884C\u3010\u68C0\u67E5\u8FC7\u671F\u6216\u6709\u98CE\u9669\u7684\u4F9D\u8D56\u5E76\u7ED9\u51FA\u5904\u7406\u5EFA\u8BAE\u3011\u3002","examples.2.chip":"\u6BCF\u5468\u4E00 10:00","examples.3.title":"\u5DE5\u4F5C\u65E5\u65E9\u62A5","examples.3.body":"\u6211\u8981\u521B\u5EFA\u4E00\u4E2A\u5B9A\u65F6\u4EFB\u52A1\uFF0C\u6BCF\u3010\u5DE5\u4F5C\u65E5\u3011\u6267\u884C\u3010\u6C47\u603B\u6628\u591C\u4ED3\u5E93\u53D8\u66F4\u5E76\u7ED9\u51FA\u4ECA\u65E5\u5173\u6CE8\u70B9\u3011\u3002","examples.3.chip":"\u5DE5\u4F5C\u65E5 08:00","chat.prompt":"\u6211\u8981\u521B\u5EFA\u4E00\u4E2A\u5B9A\u65F6\u4EFB\u52A1\uFF0C\u6BCF\u3010\u65F6\u95F4\u95F4\u9694\u3011\u6267\u884C\u3010\u5177\u4F53\u4EFB\u52A1\u3011","menu.run":"\u6267\u884C\u4EFB\u52A1","menu.edit":"\u7F16\u8F91\u4EFB\u52A1","menu.delete":"\u5220\u9664\u4EFB\u52A1","session.taskSettings":"\u4EFB\u52A1\u8BBE\u7F6E","history.range.day":"\u6309\u5929","history.range.week":"\u6309\u5468","history.range.month":"\u6309\u6708","history.allTasks":"\u5168\u90E8\u4EFB\u52A1","history.allStatus":"\u5168\u90E8\u72B6\u6001","history.today":"\u4ECA\u5929","history.yesterday":"\u6628\u5929","history.date":"{date}","history.week":"{date} \u5F53\u5468","history.month":"{month}","history.nextApprox":"\u4E0B\u6B21\u6267\u884C \u5927\u7EA6 {when}","time.withinMinute":"{count} \u5206\u949F\u5185","time.withinHour":"{count} \u5C0F\u65F6\u5185","time.withinDay":"{count} \u5929\u5185","search.placeholder":"\u641C\u7D22\u5B9A\u65F6\u4EFB\u52A1...","action.chatCreate":"\u901A\u8FC7\u5BF9\u8BDD\u521B\u5EFA","action.create":"\u65B0\u5EFA\u5B9A\u65F6\u4EFB\u52A1","banner.wake":"\u5B9A\u65F6\u4EFB\u52A1\u4EC5\u5728\u7535\u8111\u4FDD\u6301\u5524\u9192\u65F6\u8FD0\u884C","tabs.mine":"\u5B9A\u65F6\u4EFB\u52A1","tabs.runs":"\u6267\u884C\u8BB0\u5F55","sort.created.asc":"\u6309\u521B\u5EFA\u65F6\u95F4\u5347\u5E8F","sort.created.desc":"\u6309\u521B\u5EFA\u65F6\u95F4\u5012\u5E8F","sort.planned.asc":"\u6309\u8BA1\u5212\u65F6\u95F4\u5347\u5E8F","sort.planned.desc":"\u6309\u8BA1\u5212\u65F6\u95F4\u5012\u5E8F","sort.default.save":"\u8BBE\u4E3A\u9ED8\u8BA4","sort.default.saved":"\u9ED8\u8BA4","form.workspace":"\u5DE5\u4F5C\u76EE\u5F55","form.fieldWorkspace":"\u5DE5\u4F5C\u533A","form.fieldModel":"\u6A21\u578B","form.providerAccount":"DeepSeek \u8D26\u53F7","form.fieldEffort":"\u63A8\u7406\u7B49\u7EA7","form.fieldPermission":"\u6743\u9650","form.slashHint":"\u8F93\u5165 / \u53EC\u56DE\u6280\u80FD","form.slashEmpty":"\u6CA1\u6709\u5339\u914D\u7684\u6280\u80FD","form.addWorkspace":"\u6DFB\u52A0\u5DE5\u4F5C\u533A","form.workspaceRequired":"\u8BF7\u5148\u6DFB\u52A0\u5DF2\u767B\u8BB0\u7684\u5DE5\u4F5C\u533A\uFF0C\u5426\u5219\u65E0\u6CD5\u4FDD\u5B58\u3002","form.workspaceUnavailable":"\u5F53\u524D\u5BBF\u4E3B\u4E0D\u80FD\u65B0\u5EFA\u5DE5\u4F5C\u533A\u3002","form.addWorkspaceFailed":"\u6DFB\u52A0\u5DE5\u4F5C\u533A\u5931\u8D25\u3002","form.workspacePath":"\u76EE\u5F55\u8DEF\u5F84","form.workspacePathPlaceholder":"D:\\work\\project","form.model":"\u6A21\u578B","form.modelSelect":"\u9009\u62E9\u6A21\u578B","form.effort":"\u63A8\u7406\u7B49\u7EA7","form.effort.none":"\u9ED8\u8BA4","form.effort.low":"Low","form.effort.medium":"Medium","form.effort.high":"High","form.error.workspace":"\u8BF7\u9009\u62E9\u5DE5\u4F5C\u533A\u3002","modal.title":"\u65B0\u5EFA\u5B9A\u65F6\u4EFB\u52A1","modal.edit":"\u7F16\u8F91\u5B9A\u65F6\u4EFB\u52A1","modal.save":"\u4FDD\u5B58","stats.next":"\u4E0B\u6B21\u8FD0\u884C","stats.noneScheduled":"\u6682\u65E0\u8BA1\u5212","section.refresh":"\u5237\u65B0","empty.title":"\u8BA9\u91CD\u590D\u7684\u7F16\u7801\u5DE5\u4F5C\u81EA\u52A8\u8FD0\u884C","empty.body":"\u8BBE\u7F6E\u4E00\u4E2A\u76EE\u6807\u660E\u786E\u7684\u4EFB\u52A1\u3001\u8FD0\u884C\u65F6\u95F4\u548C\u6743\u9650\u8FB9\u754C\u3002\u6BCF\u6B21\u8FD0\u884C\u90FD\u4ECE\u5168\u65B0 Session \u5F00\u59CB\u3002","runs.empty":"\u8FD8\u6CA1\u6709\u8FD0\u884C\u8BB0\u5F55\u3002\u4F60\u53EF\u4EE5\u7ACB\u5373\u8FD0\u884C\u4E00\u6B21\uFF0C\u6216\u7B49\u5F85\u8BA1\u5212\u89E6\u53D1\u3002","overview.empty":"\u6682\u65E0\u5B9A\u65F6\u4EFB\u52A1\uFF0C\u53EF\u5230\u8BBE\u7F6E\u9875\u521B\u5EFA\u3002","form.title":"\u521B\u5EFA\u81EA\u52A8\u5316","form.subtitle":"\u8BF7\u5199\u5B8C\u6574\u3001\u72EC\u7ACB\u7684\u4EFB\u52A1\u8BF4\u660E\uFF1A\u5B9A\u65F6\u8FD0\u884C\u4E0D\u4F1A\u7EE7\u627F\u5F53\u524D\u5BF9\u8BDD\u3002","form.name":"\u540D\u79F0","form.namePlaceholder":"\u6BCF\u65E5\u56DE\u5F52\u6D4B\u8BD5\u5206\u8BCA","form.prompt":"\u4EFB\u52A1\u6307\u4EE4","form.promptPlaceholder":"\u68C0\u67E5\u65B0\u589E\u6D4B\u8BD5\u5931\u8D25\uFF0C\u5B9A\u4F4D\u56DE\u5F52\u539F\u56E0\uFF0C\u5E76\u7ED9\u51FA\u7ECF\u8FC7\u9A8C\u8BC1\u7684\u6700\u5C0F\u4FEE\u590D\u65B9\u6848\u2026\u2026","form.schedule":"\u8FD0\u884C\u8BA1\u5212","form.planTime":"\u8BA1\u5212\u65F6\u95F4","form.hourly":"\u6BCF\u5C0F\u65F6","form.monthly":"\u6BCF\u6708","form.custom":"\u6BCF\u9694\u51E0\u5929","form.intervalHint":"\u4ECE\u73B0\u5728\u8D77\uFF0C\u6BCF\u9694\u8FD9\u4E48\u591A\u5206\u949F\u8FD0\u884C\u4E00\u6B21\u3002","form.customHint":"\u6BCF\u9694\u8FD9\u4E48\u591A\u5929\uFF0C\u5728\u6240\u9009\u65F6\u95F4\u8FD0\u884C\u4E00\u6B21\u3002","form.atTime":"\u4E8E","form.minutesShort":"\u5206","form.daysShort":"\u5929","form.monthDay":"\u6BCF\u6708\u7B2C {day} \u5929","form.skills":"\u6280\u80FD","form.skillsEmpty":"\u6682\u65E0\u53EF\u7528\u6280\u80FD","schedule.hourlyAt":"\u6BCF\u5C0F\u65F6 :{minute}","schedule.monthlyAt":"\u6BCF\u6708 {day} \u65E5 \xB7 {time}","schedule.customAt":"\u6BCF {count} \u5929 \xB7 {time}","form.once":"\u4E0D\u91CD\u590D","form.interval":"\u95F4\u9694","form.daily":"\u6BCF\u5929","form.weekly":"\u6BCF\u5468","form.runAt":"\u8FD0\u884C\u65F6\u95F4","form.every":"\u6BCF\u9694","form.minutes":"\u5206\u949F","form.time":"\u65F6\u95F4","form.days":"\u661F\u671F","form.timeZone":"\u65F6\u533A","form.maxConcurrentRuns":"\u5E76\u53D1\u6570\u91CF","form.maxConcurrentRunsHint":"\u540C\u4E00\u4EFB\u52A1\u7684\u6392\u961F\u53CA\u8FD0\u884C\u6B21\u6570\u5171\u7528\u6B64\u4E0A\u9650\uFF0C\u9ED8\u8BA4 1\uFF1B\u6EE1\u989D\u65F6\u8DF3\u8FC7\u5F53\u6B21\u5B9A\u65F6\u89E6\u53D1\uFF0C\u624B\u52A8\u8FD0\u884C\u5C06\u88AB\u62D2\u7EDD\u3002","form.error.maxConcurrentRuns":"\u5E76\u53D1\u6570\u91CF\u5FC5\u987B\u4E3A\u5927\u4E8E\u7B49\u4E8E 1 \u7684\u6574\u6570\u3002","form.permission":"\u6743\u9650\u8FB9\u754C","permission.readOnly":"\u53EA\u8BFB","permission.workspaceWrite":"\u5DE5\u4F5C\u533A\u5199\u5165","permission.fullAccess":"\u5B8C\u5168\u8BBF\u95EE","form.cancel":"\u53D6\u6D88","form.submit":"\u521B\u5EFA\u81EA\u52A8\u5316","form.submitting":"\u521B\u5EFA\u4E2D\u2026","form.error.name":"\u8BF7\u8F93\u5165\u540D\u79F0\u3002","form.error.prompt":"\u8BF7\u8F93\u5165\u5B8C\u6574\u3001\u72EC\u7ACB\u7684\u4EFB\u52A1\u6307\u4EE4\u3002","form.error.once":"\u8BF7\u9009\u62E9\u6709\u6548\u7684\u672A\u6765\u65E5\u671F\u548C\u65F6\u95F4\u3002","form.error.interval":"\u8FD0\u884C\u95F4\u9694\u5FC5\u987B\u5728 1 \u5230 43,200 \u5206\u949F\u4E4B\u95F4\u3002","form.error.weekdays":"\u8BF7\u81F3\u5C11\u9009\u62E9\u4E00\u5929\u3002","day.1":"\u5468\u4E00","day.2":"\u5468\u4E8C","day.3":"\u5468\u4E09","day.4":"\u5468\u56DB","day.5":"\u5468\u4E94","day.6":"\u5468\u516D","day.7":"\u5468\u65E5","status.active":"\u5DF2\u542F\u7528","status.paused":"\u5DF2\u6682\u505C","status.queued":"\u6392\u961F\u4E2D","status.running":"\u8FD0\u884C\u4E2D","status.succeeded":"\u5DF2\u5B8C\u6210","status.failed":"\u5931\u8D25","status.skipped":"\u5DF2\u8DF3\u8FC7","status.cancelled":"\u5DF2\u53D6\u6D88","status.interrupted":"\u5DF2\u4E2D\u65AD","schedule.onceAt":"\u5355\u6B21 \xB7 {time}","schedule.everyMinutes":"\u6BCF {count} \u5206\u949F","schedule.dailyAt":"\u6BCF\u5929 \xB7 {time}","schedule.weeklyAt":"{days} \xB7 {time}","card.pause":"\u6682\u505C","card.resume":"\u6062\u590D","card.more":"\u66F4\u591A\u64CD\u4F5C","card.confirmDelete":"\u786E\u8BA4\u5220\u9664\u8FD9\u4E2A\u81EA\u52A8\u5316\uFF1F","card.confirmDeleteHint":"\u8FD0\u884C\u5386\u53F2\u4F1A\u4FDD\u7559\u7528\u4E8E\u5BA1\u8BA1\u3002","card.confirm":"\u786E\u8BA4\u5220\u9664","card.cancel":"\u53D6\u6D88","run.trigger.schedule":"\u5B9A\u65F6\u89E6\u53D1","run.trigger.manual":"\u624B\u52A8\u89E6\u53D1",loading:"\u6B63\u5728\u52A0\u8F7D\u81EA\u52A8\u5316\u2026","error.title":"\u65E0\u6CD5\u52A0\u8F7D\u81EA\u52A8\u5316","error.retry":"\u91CD\u8BD5","error.action":"\u64CD\u4F5C\u5931\u8D25\uFF0C\u8BF7\u91CD\u8BD5\u3002","error.taskMissing":"\u8BE5\u5B9A\u65F6\u4EFB\u52A1\u5DF2\u4E0D\u5B58\u5728\u3002","error.offline":"\u65E0\u6CD5\u8FDE\u63A5\u672C\u673A\u81EA\u52A8\u5316\u670D\u52A1\uFF0C\u8BF7\u786E\u8BA4 DSH \u4ECD\u5728\u8FD0\u884C\u540E\u91CD\u8BD5\u3002","time.minutes":"{count}\u5206\u949F","time.hours":"{count}\u5C0F\u65F6","time.days":"{count}\u5929","time.months":"{count}\u4E2A\u6708","time.years":"{count}\u5E74","time.ago":"{text}\u524D","time.now":"\u521A\u521A","time.minuteAgo":"{count} \u5206\u949F\u524D","time.hourAgo":"{count} \u5C0F\u65F6\u524D","time.dayAgo":"{count} \u5929\u524D","time.inMinute":"{count} \u5206\u949F\u540E","time.inHour":"{count} \u5C0F\u65F6\u540E","time.inDay":"{count} \u5929\u540E"};var Yo="__dshNativeTabs";function Zo(e,t,n){let o=t?.sessionOpeners?.slice().sort((r,a)=>(r.order??0)-(a.order??0)).find(r=>r!==null&&typeof r?.matchSession=="function"&&r.matchSession(e));if(o===void 0){n?.(e);return}try{o.open(e,n)}catch{n?.(e)}}var Go=new WeakMap;function Xo(e,t){if(e===null||typeof e!="object")return e;let n=t?.sessionFilters??[];if(n.length===0)return e;let o=typeof t?.getRevision=="function"?t.getRevision():null,r=t===void 0?void 0:Go.get(t);if(o!==null&&t!==void 0&&r===void 0&&(r=new WeakMap,Go.set(t,r)),o!==null){let d=r?.get(e);if(d!==void 0&&d.revision===o)return d.result}let a=(e.ids??[]).filter(d=>n.every(i=>i(String(d))));if(a.length===(e.ids??[]).length)return o!==null&&r?.set(e,{revision:o,result:e}),e;let s={};for(let d of a){let i=e.byId?.[d];i!==void 0&&(s[d]=i)}let l={...e,ids:a,byId:s};return o!==null&&r?.set(e,{revision:o,result:l}),l}function Jo(e){let t=new Map,n=[],o=[],r=new Set,a=[],s=0,l=()=>{a=[...t.values()].sort((i,p)=>(i.order??0)-(p.order??0))},d=()=>{s+=1;for(let i of r)i()};return{version:1,officialTree:e,sessionFilters:n,sessionOpeners:o,getTabs(){return a},getRevision(){return s},subscribe(i){return r.add(i),()=>{r.delete(i)}},insert(i){if(i.id==="")return()=>{};let p=t.get(i.id);return t.set(i.id,i),p!==i&&(l(),d()),()=>{t.get(i.id)===i&&(t.delete(i.id),l(),d())}},addSessionFilter(i){return n.push(i),d(),()=>{let p=n.indexOf(i);p>=0&&n.splice(p,1),d()}},addSessionOpener(i){return o.push(i),d(),()=>{let p=o.indexOf(i);p>=0&&o.splice(p,1),d()}}}}function Qo(e){if(e==null||typeof e!="object"&&typeof e!="function")return;let t=e[Yo];if(t==null||typeof t!="object")return;let n=t;return n.version===1&&typeof n.getTabs=="function"&&typeof n.subscribe=="function"&&typeof n.insert=="function"?t:void 0}function tn(e,t){try{e[Yo]=t}catch{}return t}function er(e){if(!(e==null||typeof e!="object"&&typeof e!="function"))return Qo("component"in e?e.component:e)}function tr(e){if(e==null)return!1;let t=e;return t.__dshNativeTabHost===!0||t.__dshNativeTabWrapped===!0||t.__imConnectWrapped===!0?!0:Qo(e)!==void 0}var N=require("react"),hr=require("@deepseek-ai/dsh-client-ui-primitives");var we=require("react");var Ee=require("@deepseek-ai/dsh-client-ui-primitives");var P=require("react/jsx-runtime"),gt="dsh-st-rail-panel",ht=typeof window>"u"?void 0:window.localStorage;function nr({t:e,view:t,onChange:n}){return(0,P.jsx)(Ee.SegmentedTabs,{className:"dsh-st-rail-views",label:e("sidebar.views"),value:t,items:[{value:"runs",id:"dsh-st-rail-view-runs",panelId:gt,label:(0,P.jsxs)("span",{style:{display:"inline-flex",alignItems:"center",justifyContent:"center",gap:5},children:[(0,P.jsx)(rt,{size:14}),(0,P.jsx)("span",{children:e("sidebar.runsTab")})]})},{value:"overview",id:"dsh-st-rail-view-overview",panelId:gt,label:(0,P.jsxs)("span",{style:{display:"inline-flex",alignItems:"center",justifyContent:"center",gap:5},children:[(0,P.jsx)(mo,{size:14}),(0,P.jsx)("span",{children:e("sidebar.overviewTab")})]})}],onChange:n})}function yt({t:e,automations:t,serverNow:n,openTaskSettings:o,openCreateTask:r,onToggleAutomation:a}){let[s,l]=(0,we.useState)(()=>Se(ht,Je)?.key??"planned"),[d,i]=(0,we.useState)(()=>Se(ht,Je)?.direction??"asc"),[p,u]=(0,we.useState)(()=>new Set),[w,y]=(0,we.useState)(""),[h,b]=(0,we.useState)(!1),f=(0,we.useMemo)(()=>new Date(n??Date.now()),[n]),k=(0,we.useMemo)(()=>{let R=Ze(t,s,d);return Bn(R)},[t,d,s]),g=w.trim().toLowerCase(),T=g===""?k:k.filter(R=>R.name.toLowerCase().includes(g)),A=(0,we.useMemo)(()=>new Map(t.map(R=>[R.id,Ge(R.schedule,e)])),[t,e]),D=(R,W)=>{a===void 0||p.has(R)||(u(K=>new Set(K).add(R)),Promise.resolve(a(R,W)).catch(K=>{console.warn("[dsh-automation] \u5207\u6362\u4EFB\u52A1\u72B6\u6001\u5931\u8D25",K)}).finally(()=>{u(K=>{let z=new Set(K);return z.delete(R),z})}))};return(0,P.jsxs)("div",{className:"dsh-st-overview",children:[(0,P.jsxs)("div",{className:"dsh-st-overview-head",children:[(0,P.jsxs)("div",{className:"dsh-st-overview-title",children:[(0,P.jsx)("strong",{children:e("sidebar.viewOverview")}),(0,P.jsx)("span",{"aria-label":`${T.length}`,children:T.length})]}),(0,P.jsxs)("div",{className:"dsh-st-overview-actions",children:[(0,P.jsx)(Ee.Tooltip,{label:e(h?"sidebar.clearSearch":"sidebar.search"),side:"bottom",delayMs:500,children:(0,P.jsx)("button",{type:"button",className:h?"dsh-st-n-head-btn is-on":"dsh-st-n-head-btn","aria-label":e(h?"sidebar.clearSearch":"sidebar.search"),"aria-expanded":h,onClick:()=>{h&&y(""),b(R=>!R)},children:h?(0,P.jsx)(Ft,{size:12}):(0,P.jsx)(Ut,{size:14})})}),(0,P.jsx)(lt,{t:e,iconOnly:!0,className:"dsh-st-overview-sort",...ht===void 0?{}:{storage:ht},storageKey:Je,sortKey:s,sortDirection:d,onSelect:(R,W)=>{l(R),i(W)}}),r===void 0?null:(0,P.jsx)(Ee.Tooltip,{label:e("action.create"),side:"bottom",delayMs:500,children:(0,P.jsx)("button",{type:"button",className:"dsh-st-n-head-btn","aria-label":e("action.create"),onClick:r,children:(0,P.jsx)(co,{size:16})})})]})]}),h?(0,P.jsxs)("div",{className:"dsh-st-overview-search",children:[(0,P.jsx)(Ut,{size:11}),(0,P.jsx)("input",{autoFocus:!0,value:w,"aria-label":e("search.placeholder"),placeholder:e("search.placeholder"),onChange:R=>y(R.target.value)}),w===""?null:(0,P.jsx)("button",{type:"button","aria-label":e("sidebar.clearSearch"),onClick:()=>y(""),children:(0,P.jsx)(Ft,{size:12})})]}):null,T.length===0?(0,P.jsx)("div",{className:"dsh-st-rail-empty",children:e("overview.empty")}):T.map(R=>(0,P.jsx)(bs,{t:e,row:R,now:f,scheduleSummary:A.get(R.id)??"",toggleDisabled:a===void 0||p.has(R.id),onToggleAutomation:D,...o===void 0?{}:{openTaskSettings:o}},R.id))]})}function bs({t:e,row:t,now:n,scheduleSummary:o,openTaskSettings:r,toggleDisabled:a,onToggleAutomation:s}){let l=t.status!=="active",d=t.nextRunAt===void 0?e("stats.noneScheduled"):Ye(t.nextRunAt,n,e),i=t.nextRunAt===void 0?e("stats.noneScheduled"):Tn(t.nextRunAt,n,e),p=`${e("stats.next")}: ${d}`,u=e(l?"card.resume":"card.pause");return(0,P.jsxs)("div",{className:`dsh-st-overview-row${l?" is-paused":""}`,children:[(0,P.jsxs)("button",{type:"button",className:"dsh-st-overview-open",disabled:r===void 0,onClick:()=>{r?.({automationId:t.id,name:t.name,sessionIds:[]})},children:[(0,P.jsxs)("span",{className:"dsh-st-overview-copy",children:[(0,P.jsx)("span",{className:"dsh-st-overview-name",children:t.name}),o!==""&&(0,P.jsxs)("span",{className:"dsh-st-overview-schedule",children:[(0,P.jsx)(ce,{size:14}),(0,P.jsx)("span",{children:o})]})]}),(0,P.jsx)("span",{className:"dsh-st-overview-next",title:p,"aria-label":p,children:(0,P.jsx)("strong",{children:i})})]}),(0,P.jsx)("span",{className:"dsh-st-overview-toggle",title:u,children:(0,P.jsx)(Ee.Switch,{checked:!l,disabled:a,label:u,onChange:()=>{s?.(t.id,ot(t.status))}})})]})}function nn(e){return Object.fromEntries(Object.entries(e).map(([t,n])=>[t,[...n]]))}function ws(){let e={groupBy:"task",orderBy:"updated",groupExpansion:{},sessionOrderByAccount:{},archivedFilter:"default"},t=new Set,n=r=>{e=r;for(let a of t)a()};return{getSnapshot:()=>e,subscribe(r){return t.add(r),()=>t.delete(r)},actions:{setGroupBy(r){r!==e.groupBy&&n({...e,groupBy:r})},setOrderBy(r,a){r!==e.orderBy&&n({...e,orderBy:r,sessionOrderByAccount:r==="manual"?nn(a):{}})},setGroupExpanded(r,a){e.groupExpansion[r]!==a&&n({...e,groupExpansion:{...e.groupExpansion,[r]:a}})},retainAccountKeys(r){let a=new Set(r),s=Object.fromEntries(Object.entries(e.groupExpansion).filter(([d])=>a.has(d))),l=Object.fromEntries(Object.entries(e.sessionOrderByAccount).filter(([d])=>a.has(d)));Object.keys(s).length===Object.keys(e.groupExpansion).length&&Object.keys(l).length===Object.keys(e.sessionOrderByAccount).length||n({...e,groupExpansion:s,sessionOrderByAccount:l})},setSessionOrder(r,a,s){let l=e.orderBy==="manual"?{...e.sessionOrderByAccount,[r]:[...a]}:{...nn(s),[r]:[...a]};n({...e,orderBy:"manual",sessionOrderByAccount:l})},syncSessionOrders(r){e.orderBy==="manual"&&n({...e,sessionOrderByAccount:{...e.sessionOrderByAccount,...nn(r)}})},pinSessionOrder(r,a,s){let l=new Set(a),d=Object.fromEntries(Object.entries(s.members).map(([i,p])=>{let u=e.sessionOrderByAccount[i]??p,w=l.has(i)?[r,...u.filter(y=>y!==r)]:[...u];return[i,w]}));n({...e,sessionOrderByAccount:d})},setArchivedFilter(r){r!==e.archivedFilter&&n({...e,archivedFilter:r})},ensureExpanded(r){let a=!1,s={...e.groupExpansion};for(let l of r)l===""||s[l]!==void 0||(s[l]=!0,a=!0);a&&n({...e,groupExpansion:s})}}}}var or;function rr(){return or??=ws(),or}var sr=require("react"),ar=require("react-dom"),ir=require("react-dom/client");function Me(e,t=14){let n=document.createElement("div"),o=(0,ir.createRoot)(n);(0,ar.flushSync)(()=>{o.render((0,sr.createElement)(e,{size:t}))});let r=n.innerHTML;return o.unmount(),r}var on="data-dsh-automation-task-settings",vs='[data-row-key^="workspace:"]',sn='[role="menu"]',Be='button[role="menuitem"]',Ss,ks,xs;function Ts(){return Ss??=Me(bo)}function Es(){return ks??=Me(wo)}function As(){return xs??=Me(vo)}function dr(e,t,n){for(let o of e.querySelectorAll(Be))o!==t&&(!o.hasAttribute("data-dsham-archive-workspace")&&!/^(重命名|Rename|删除工作区|Delete workspace)$/i.test((o.textContent??"").trim())||(n.has(o)||n.set(o,{display:o.style.display,ariaHidden:o.getAttribute("aria-hidden")}),o.style.display="none",o.setAttribute("aria-hidden","true")))}function lr(e){if(typeof document>"u"||typeof MutationObserver>"u")return()=>{};let t,n=0,o,r=new Map,a=u=>{let w=u.target instanceof Element?u.target:void 0;if(w===void 0)return;let y=w.closest(vs);if(y!==null){t=(y.getAttribute("data-row-key")??"").slice(10),n=performance.now();return}w.closest(sn)===null&&(t=void 0)},s=()=>{document.dispatchEvent(new KeyboardEvent("keydown",{key:"Escape",bubbles:!0,cancelable:!0}))},l=(u,w)=>{let y=u.querySelector(`[${on}="true"]`);if(y!==null){dr(u,y,r);return}let h=[...u.querySelectorAll(Be)],[b]=h;if(b===void 0)return;let f=h.map(W=>W.textContent??"").join(" ");if(!/(删除工作区|Delete workspace)/i.test(f))return;let g=(h.find(W=>/^(重命名|Rename)$/i.test((W.textContent??"").trim()))??h.find(W=>!W.disabled&&!/(danger|删除|Delete)/i.test(W.textContent??""))??b).parentElement;if(g===null||g===u||g.parentElement===null)return;let T=g.cloneNode(!0),A=T.querySelector(Be);if(A===null)return;T.removeAttribute("data-dsham-archive-workspace"),A.removeAttribute("data-dsham-archive-workspace"),A.removeAttribute("aria-disabled"),A.removeAttribute("disabled"),A.disabled=!1,A.style.display="",A.removeAttribute("aria-hidden"),A.style.opacity="",A.style.cursor="",A.setAttribute(on,"true"),A.classList.remove("danger");let D=typeof e.label=="function"?e.label():e.label,R=A.querySelectorAll("span");R[0]!==void 0&&(R[0].innerHTML=Ts()),R[1]!==void 0?R[1].textContent=D:A.textContent=D,A.addEventListener("click",W=>{W.preventDefault(),W.stopPropagation(),s();let K={automationId:w.id,name:w.name,sessionIds:[...w.sessionIds]};window.setTimeout(()=>{try{e.openTaskSettings(K)}catch(z){console.warn("[dsh-automation] open task settings from workspace menu failed",z)}},0)}),g.parentElement?.insertBefore(T,g),dr(u,A,r)},d=()=>{if(o=void 0,t===void 0||performance.now()-n>2e3)return;let u=e.resolveTask(t);if(u!==void 0)for(let w of document.querySelectorAll(sn))l(w,u)},i=()=>{o===void 0&&(o=window.requestAnimationFrame(d))};document.addEventListener("pointerdown",a,!0),document.addEventListener("click",a,!0);let p=new MutationObserver(i);return p.observe(document.body,{childList:!0,subtree:!0}),()=>{o!==void 0&&window.cancelAnimationFrame(o),p.disconnect(),document.removeEventListener("pointerdown",a,!0),document.removeEventListener("click",a,!0);for(let u of document.querySelectorAll(`[${on}="true"]`))u.parentElement?.remove();for(let[u,w]of r)u.style.display=w.display,w.ariaHidden===null?u.removeAttribute("aria-hidden"):u.setAttribute("aria-hidden",w.ariaHidden)}}var rn="data-dsh-automation-group-task";function cr(e){if(typeof document>"u"||typeof MutationObserver>"u")return()=>{};let t,n=()=>{document.dispatchEvent(new KeyboardEvent("keydown",{key:"Escape",bubbles:!0,cancelable:!0}))},o=l=>{let d=l.textContent??"";if(e.groupLabel===""||e.workspaceLabel===""||!d.includes(e.groupLabel)||!d.includes(e.workspaceLabel)||l.querySelector(`[${rn}="true"]`)!==null)return;let i=[...l.querySelectorAll(Be)],[p]=i;if(p===void 0)return;let u=p.parentElement;if(u===null||u===l||u.parentElement===null)return;let w=u.cloneNode(!0),y=w.querySelector(Be);if(y===null)return;y.setAttribute(rn,"true"),y.removeAttribute("aria-disabled"),y.removeAttribute("disabled"),y.disabled=!1,y.classList.remove("danger");for(let b of y.querySelectorAll(":scope > svg"))b.remove();let h=y.querySelectorAll("span");if(h[0]!==void 0&&(h[0].innerHTML=Es()),h[1]!==void 0?h[1].textContent=e.label:y.textContent=e.label,e.checked){let b=document.createElement("span");b.innerHTML=As();let f=b.firstElementChild;f!==null&&(f instanceof SVGElement&&(f.style.marginLeft="auto"),y.append(f))}y.addEventListener("click",b=>{b.preventDefault(),b.stopPropagation(),n(),window.setTimeout(e.onSelect,0)}),u.parentElement?.insertBefore(w,u)},r=()=>{t=void 0;for(let l of document.querySelectorAll(sn))o(l)},a=()=>{t===void 0&&(t=window.requestAnimationFrame(r))},s=new MutationObserver(a);return s.observe(document.body,{childList:!0,subtree:!0}),()=>{t!==void 0&&window.cancelAnimationFrame(t),s.disconnect();for(let l of document.querySelectorAll(`[${rn}="true"]`))l.parentElement?.remove()}}var B=require("react/jsx-runtime"),ur=[],pr=e=>()=>{},bt="dsh-st-shell-panel",Rs={ids:[],byId:{}},Is={items:[],archivedSessionIds:[]},mr=[],Ns=[],gr={searchRequest:0,addRequested:!1,directoryBusy:!1,renameTarget:null};function Os(e){return e(!1)}function ge(e,t){let n=e?.[t];return typeof n=="function"?n:void 0}var an=()=>{},wt=class extends N.Component{state={failed:!1};static getDerivedStateFromError(){return{failed:!0}}componentDidCatch(t){console.warn("[dsh-automation] official workspace tree crashed",t)}render(){return this.state.failed?this.props.fallback:this.props.children}};function dn({t:e}){return(0,B.jsx)("div",{className:"dsh-st-rail-empty",children:e("sidebar.treeUnavailable")})}var fr="dsh-automation.schedule-view";function ln({t:e,runtime:t,officialTree:n,hostProps:o,openSession:r,openTaskSettings:a,openCreateTask:s,useSessions:l,useWorkspaces:d,wide:i}){let p=n,[u,w]=(0,N.useState)(()=>{if(typeof window>"u")return"runs";try{return window.localStorage.getItem(fr)==="overview"?"overview":"runs"}catch{return"runs"}});(0,N.useEffect)(()=>{try{window.localStorage.setItem(fr,u)}catch{}},[u]);let y=(0,N.useSyncExternalStore)(t.source.subscribe,t.source.getSnapshot,t.source.getSnapshot),h=(0,N.useMemo)(()=>Le(y.snapshot?.runs),[y.snapshot]),b=d===void 0?mr:d(E=>E.archivedSessionIds??mr),f=rr(),k=E=>{let c=(0,N.useSyncExternalStore)(f.subscribe,f.getSnapshot,f.getSnapshot);return E(c)},g=k(E=>E.groupBy),T=k(E=>E.archivedFilter),A=(0,N.useMemo)(()=>{let E=y.snapshot;if(E===void 0)return[];let c=new Set(b),m=new Map;for(let Z of E.automations)typeof Z.createdAt=="string"&&Z.createdAt!==""&&m.set(Z.id,Z.createdAt);let I=new Map;for(let Z of E.runs){if(Z.sessionId===void 0||Z.sessionId===""||m.has(Z.automationId))continue;let Re=Z.startedAt??Z.scheduledFor;if(Number.isNaN(Date.parse(Re)))continue;let _e=I.get(Z.automationId);(_e===void 0||Date.parse(Re)<Date.parse(_e))&&I.set(Z.automationId,Re)}let he=[];for(let Z of _t(E.automations,E.runs)){let Re=Z.sessions.filter(Ot=>Dt(Ot.id,c,T)).map(Ot=>Ot.id),_e=m.get(Z.id)??I.get(Z.id);_e===void 0||Re.length===0||he.push({id:Z.id,name:Z.name,sessionIds:Re,createdAt:_e})}return he},[T,b,y.snapshot]),D=(0,N.useCallback)((E,c)=>l===void 0?E(Rs):l(m=>E(Xn(m,h)),c),[l,h]),R=d===void 0?void 0:d(E=>E),W=(0,N.useMemo)(()=>Ht(R,h,T),[T,h,R]),K=(0,N.useCallback)((E,c)=>d===void 0?E(Is):d(m=>E(g==="task"?Jn(m,A):Ht(m,h,T)),c),[T,g,A,h,d]),z={...o??{},...i===void 0?{}:{wide:i}},x=ge(o,"useShortcuts"),F=ge(o,"useWorkspaceShortcuts"),ne=(0,N.useCallback)((E,c)=>F===void 0?E(gr):F(m=>E({...m??{},searchRequest:0}),c),[F]),q=(0,N.useCallback)((E,c)=>x===void 0?E(Ns):x(m=>E((m??[]).filter(I=>I.id!=="workspace.add")),c),[x]),H=ge(o,"t")??(E=>E),O=(0,N.useCallback)((E,c)=>E==="section.workspaces"&&g==="task"?e("records.sectionTasks"):E==="workspace.add"||E==="menu.addWorkspace"?e("action.create"):H(E,c),[g,H,e]),X=r??ge(o,"open"),G=ge(o,"searchSessions"),M=ge(o,"startSession"),de=ge(o,"renameWorkspace"),Y=ge(o,"deleteWorkspace"),ue=ge(o,"insertWorkspaceBefore"),L=(0,N.useCallback)(E=>{let c=Ne(E),m=t.source.getSnapshot().snapshot;if(c===void 0||m===void 0)return;let I=_t(m.automations,m.runs).find(he=>he.id===c);return I===void 0?void 0:{id:I.id,name:I.name,sessionIds:I.sessions.map(he=>he.id)}},[t]);(0,N.useEffect)(()=>{if(!(u!=="runs"||g!=="task"||a===void 0))return lr({label:()=>e("session.taskSettings"),resolveTask:L,openTaskSettings:a})},[g,a,L,e,u]);let le=(0,N.useCallback)(async(E,c)=>{if(G===void 0)return{items:[],hasMore:!1};let m=await G(E,c);return{items:m.items.filter(I=>I.id!==void 0&&h.has(I.id)),hasMore:m.hasMore}},[G,h]),me=(0,N.useCallback)((E,c)=>{g!=="task"||Ne(E)!==void 0||M?.(E,c)},[g,M]),ye=(0,N.useCallback)(async(E,c)=>{if(g!=="task"||Ne(E)!==void 0)throw new Error(e("records.groupReadOnly"));await de?.(E,c)},[g,de,e]),C=(0,N.useCallback)(async E=>{if(g!=="task"||Ne(E)!==void 0)throw new Error(e("records.groupReadOnly"));await Y?.(E)},[g,Y,e]),$=(0,N.useCallback)(async(E,c)=>{g!=="task"||Ne(E)!==void 0||await ue?.(E,c)},[g,ue]),j=(0,N.useCallback)(E=>E(!0),[]),Q={...z,expandSidebar:an,...F===void 0?{}:{useWorkspaceShortcuts:ne},useStore:k,actions:f.actions,t:O,...X===void 0?{}:{open:X},...l===void 0?{}:{useSessions:D},...d===void 0?{}:{useWorkspaces:K},...x===void 0?{}:{useShortcuts:q},useDirectoryFlow:s===void 0?Os:j,requestAddWorkspace:s??an,startSession:me,renameWorkspace:ye,deleteWorkspace:C,insertWorkspaceBefore:$,...G===void 0?{}:{searchSessions:le}},fe=(0,N.useMemo)(()=>g==="task"?A.map(E=>Lt(E.id)):g==="flat"?[]:(W.items??[]).map(E=>String(E.workspaceId??E.id??"")).filter(E=>E!==""),[g,W.items,A]);(0,N.useEffect)(()=>{f.actions.ensureExpanded(fe)},[fe,f]),(0,N.useEffect)(()=>cr({label:e("records.groupByTask"),groupLabel:O("groupBy.label"),workspaceLabel:O("groupBy.workspace"),checked:g==="task",onSelect:()=>f.actions.setGroupBy("task")}),[g,f,O,e]);let ve=p===void 0?(0,B.jsx)(dn,{t:e}):(0,B.jsx)("div",{className:"dsh-st-schedule-tree","data-mode":g,children:(0,B.jsx)(wt,{fallback:(0,B.jsx)(dn,{t:e}),children:(0,N.createElement)(p,Q)})});return(0,B.jsxs)("div",{className:"dsh-st-n",children:[(0,B.jsx)("div",{className:"dsh-st-n-views-wrap",children:(0,B.jsx)(nr,{t:e,view:u,onChange:w})}),(0,B.jsx)("div",{id:gt,role:"tabpanel",className:"dsh-st-n-view-body",children:u==="overview"?y.snapshot===void 0?(0,B.jsx)("div",{className:"dsh-st-n-empty",children:y.phase==="loading"?e("loading"):e("overview.empty")}):(0,B.jsx)(yt,{t:e,automations:y.snapshot.automations,onToggleAutomation:(E,c)=>t.mutateAutomation(E,c),...a===void 0?{}:{openTaskSettings:a},...s===void 0?{}:{openCreateTask:s},...y.snapshot.serverNow===void 0?{}:{serverNow:y.snapshot.serverNow}}):ve})]})}function yr({t:e,runtime:t,officialTree:n,hostProps:o,openSession:r,openTaskSettings:a,openCreateTask:s,useSessions:l,useWorkspaces:d,tabRegistry:i,wide:p}){let u=n,[w,y]=(0,N.useState)(()=>typeof window>"u"?"tasks":qn(window.localStorage)),h=(0,N.useSyncExternalStore)(i?.subscribe??pr,()=>i?.getTabs()??ur,()=>ur),b=(0,N.useSyncExternalStore)(i?.subscribe??pr,()=>typeof i?.getRevision=="function"?i.getRevision():0,()=>0),f=h.some(C=>C.id==="channels"),k=l?.(C=>Qn(C)),g=(0,N.useSyncExternalStore)(t.source.subscribe,t.source.getSnapshot,t.source.getSnapshot),T=(0,N.useMemo)(()=>Le(g.snapshot?.runs),[g.snapshot]),A=(0,N.useRef)(null);(0,N.useEffect)(()=>{if(!jn(k,g.snapshot?.runs)){A.current=null;return}A.current!==k&&(A.current=k??null,t.refresh().catch(()=>{}))},[g.snapshot?.runs,k,t]),(0,N.useEffect)(()=>{try{window.localStorage.setItem(nt,w)}catch{}},[w]),(0,N.useEffect)(()=>{let C=$=>{let j=$.target instanceof Element?$.target.closest("button"):null;if(j===null||j.closest("[data-row-key]")!==null)return;let Q=(j.getAttribute("aria-label")??j.textContent??"").trim();zn(Q)&&y("tasks")};return document.addEventListener("click",C,!0),()=>document.removeEventListener("click",C,!0)},[]);let D=(0,N.useRef)(k),R=(0,N.useRef)(!1);(0,N.useEffect)(()=>{let C=Gn(k??void 0,T,{followSchedule:!1,followChannels:!1});if(!R.current){D.current=k,R.current=k!=null;return}let $=D.current;if(D.current=k,!$n($,k))return;C==="tasks"&&y("tasks");let j=h.find(Q=>k!=null&&Q.matchSession?.(String(k))===!0);j!==void 0&&j.id!=="schedule"&&j.id!=="channels"&&y(j.id)},[k,h,T]);let W={...o??{},...p===void 0?{}:{wide:p}},K=ge(o,"open"),z=ge(o,"useWorkspaceShortcuts"),x=(0,N.useCallback)((C,$)=>z===void 0?C(gr):z(j=>C({...j??{},searchRequest:0}),$),[z]),F=(0,N.useMemo)(()=>({...o??{},expandSidebar:an,...z===void 0?{}:{useWorkspaceShortcuts:x}}),[o,z,x]),ne={...F??{},...p===void 0?{}:{wide:p}},q=(0,N.useCallback)(C=>{if(i!==void 0&&Array.isArray(i.sessionOpeners)&&i.sessionOpeners.length>0){Zo(C,i,K);return}if(T.has(C)&&r!==void 0){r(C);return}K?.(C)},[r,K,T,i,b]),H=(0,N.useCallback)((C,$)=>l===void 0?C({ids:[],byId:{}}):l(j=>C(Xo(j,i)),$),[l,i,b]),O={...ne,open:q,...l===void 0?{}:{useSessions:H}},X=C=>u===void 0?(0,B.jsx)(dn,{t:e}):(0,B.jsx)(wt,{fallback:(0,N.createElement)(u,ne),children:(0,N.createElement)(u,C)}),G=(0,N.useMemo)(()=>h.filter(C=>C.id!=="schedule"),[h]),M=Vn({tab:w,channelsReady:f,extraTabIds:Kn({extraTabIds:G.map(C=>C.id),channelsReady:f})}),de=h.find(C=>C.id==="schedule"),Y=de===void 0?(0,B.jsx)(ln,{t:e,runtime:t,...u===void 0?{}:{officialTree:u},...F===void 0?{}:{hostProps:F},...r===void 0?{}:{openSession:r},...a===void 0?{}:{openTaskSettings:a},...s===void 0?{}:{openCreateTask:s},...l===void 0?{}:{useSessions:l},...d===void 0?{}:{useWorkspaces:d},...p===void 0?{}:{wide:p}}):de.render({...F??{},openSession:r,open:r,useSessions:l,wide:!0}),ue=e("sidebar.tasksTab"),L=e("sidebar.tab"),le=(0,N.useMemo)(()=>{let C=[{value:"tasks",id:"dsh-st-tab-tasks",panelId:bt,label:(0,B.jsxs)("span",{style:{display:"inline-flex",alignItems:"center",gap:5},children:[(0,B.jsx)(po,{size:14}),(0,B.jsx)("span",{children:ue})]})}];for(let $ of G){if($.id==="tasks")continue;let j=$.id==="channels"?(0,B.jsxs)("span",{style:{display:"inline-flex",alignItems:"center",gap:5},children:[(0,B.jsx)(So,{size:14}),(0,B.jsx)("span",{children:$.label})]}):$.label;C.push({value:$.id,id:"dsh-st-tab-"+$.id,panelId:bt,label:j})}return C.push({value:"schedule",id:"dsh-st-tab-schedule",panelId:bt,label:(0,B.jsxs)("span",{style:{display:"inline-flex",alignItems:"center",gap:5},children:[(0,B.jsx)(ce,{size:14}),(0,B.jsx)("span",{children:L})]})}),C},[f,G,L,ue]);if(p===!1)return(0,B.jsx)(B.Fragment,{children:X(O)});let me=M==="schedule"||M==="tasks"?void 0:G.find(C=>C.id===M),ye=me!==void 0||M==="schedule"||M==="channels"?"dsh-st-shell-body":"dsh-st-official-tree";return(0,B.jsxs)("div",{className:"dsh-st-shell-rail",children:[(0,B.jsx)("div",{className:"dsh-st-shell-tabs-wrap",style:{"--dsh-st-tab-count":String(le.length)},children:(0,B.jsx)(hr.SegmentedTabs,{className:"dsh-st-shell-segmented-tabs",label:e("sidebar.tabs"),value:M,onChange:C=>y(C),items:le})}),(0,B.jsx)("div",{id:bt,role:"tabpanel",className:ye,children:M==="schedule"?Y:me!==void 0?me.render({...o??{},openSession:q,open:q,useSessions:l,wide:!0}):X(O)})]})}var br="dsh-automation-styles",vt="@michengai/dsh-automation",wr=`
4
4
  /* \u8BBE\u7F6E\u5BFC\u822A\u56FE\u6807\uFF1A\u9690\u85CF\u5BBF\u4E3B svg\uFF0C\u6539\u7528\u72EC\u7ACB\u5BBF\u4E3B\u56FE\u6807\u5143\u7D20\uFF0C\u907F\u514D\u6539\u5199\u5BBF\u4E3B\u56FE\u6807\u5185\u5BB9\u3002 */
5
5
  [data-dsh-schedule-nav="1"]>svg{display:none!important}
6
6
  .dsh-st-nav-icon-schedule{display:inline-flex;align-items:center;justify-content:center;flex:none;width:16px;height:16px}
@@ -169,7 +169,13 @@ var module = { exports: {} }; var exports = module.exports;
169
169
  .dsh-st-create-dialog{width:min(720px,100%) !important;max-height:100%}
170
170
  .dsh-st-create-content{flex:1;min-height:0;overflow:hidden}
171
171
  .dsh-st-create-content>div:last-child{flex:1;min-height:0;overflow-y:auto;overscroll-behavior:contain;scrollbar-gutter:stable}
172
- `;function ir(){let e=document.getElementById(or);if(e instanceof HTMLStyleElement)return e.textContent=rr,e.setAttribute("data-plugin",mt),()=>{};let t=document.createElement("style");return t.id=or,t.textContent=rr,t.setAttribute("data-plugin",mt),document.head.append(t),()=>{t.remove()}}var sr="michengai-plugin-update-ui";function ar(e){let t=document.getElementById(sr);if(t instanceof HTMLStyleElement){t.getAttribute("data-plugin")===null&&t.setAttribute("data-plugin",mt);return}let n=document.createElement("style");n.id=sr,n.textContent=e,n.setAttribute("data-plugin",mt),(document.head??document.documentElement).append(n)}function lr(e){return(e.textContent??"").replace(/\s+/g," ").trim()}function dr(e,t){for(let n of t){let o=n.trim();if(o==="")continue;let r=e.find(i=>lr(i)===o);if(r!==void 0)return r}}function hs(e){return e.find(n=>{let o=`${n.textContent??""} ${n.getAttribute("aria-label")??""}`.trim();return/(^|\s)(设置|settings)(\s|$)/i.test(o)})??(e.length===1?e[0]:void 0)}var ft,cr="[data-dcu-settings-trigger]",gs="[data-dcu-settings-page]",ys="dcu-settings-open-section";function bs(e){let t=document.querySelector(cr);if(t===null)return!1;let n=new CustomEvent(ys,{detail:{labels:[...e]},cancelable:!0});return!t.dispatchEvent(n)}function ws(){return[...document.querySelectorAll('[role="menu"] button')].find(e=>{let t=lr(e);return t.startsWith("\u8BBE\u7F6E")||/^Settings(\s|$)/i.test(t)})}function vs(){return[...document.querySelectorAll('button[aria-haspopup="menu"]')].find(e=>{let t=`${e.getAttribute("aria-label")??""} ${e.textContent??""}`;return/账号|账户|account|user/i.test(t)})}function ks(e){let t=[...document.querySelectorAll('[role="dialog"] nav button'),...document.querySelectorAll(`${gs} nav button`)],n=dr(t,e);return n!==void 0?n:dr([...document.querySelectorAll("nav button")],e)}function Ss(){document.dispatchEvent(new KeyboardEvent("keydown",{key:",",code:"Comma",ctrlKey:!0,altKey:!0,bubbles:!0,cancelable:!0}))}function Xt(e,t,n){if(typeof document>"u"||typeof window>"u"){n?.();return}if(bs(e)){t?.();return}ft?.();let o,r=!1,i=!1,s=!1,l=!1,d=!1,a=!1,f=()=>{r||(r=!0,h.disconnect(),window.clearTimeout(v),o!==void 0&&window.cancelAnimationFrame(o),ft===f&&(ft=void 0))},p=()=>{let u=ks(e);return u===void 0?!1:(f(),u.click(),t?.(),!0)},T=()=>{let u=ws();if(u!==void 0){if(i)return;i=!0,u.click();return}let k=document.querySelector(cr);if(k!==null){if(s)return;s=!0,k.click();return}let g=[...document.querySelectorAll('button[aria-haspopup="dialog"]')].filter(D=>/设置|settings/i.test(`${D.textContent??""} ${D.getAttribute("aria-label")??""}`)),A=hs(g);if(A!==void 0){if(l)return;l=!0,A.click();return}let R=vs();if(R!==void 0){if(d)return;d=!0,R.click();return}a||(a=!0,Ss())},w=()=>{r||o!==void 0||(o=window.requestAnimationFrame(()=>{o=void 0,!p()&&T()}))},h=new MutationObserver(()=>{w()}),v=window.setTimeout(()=>{p()||(f(),n?.())},3e3);h.observe(document.body,{childList:!0,subtree:!0}),ft=f,p()||T(),w()}var ht="dsh-st-nav-icon-schedule",gt="data-dsh-schedule-nav",Jt='[role="dialog"] nav button';function xs(e){return new Set(e().map(t=>t.trim()).filter(t=>t!==""))}function Ts(e,t,n){let o=(e.textContent??"").replace(/\s+/g," ").trim();if(!xs(t).has(o)||e.querySelector(":scope > svg")===null||e.getAttribute(gt)==="1"&&e.querySelector(`.${ht}`)!==null)return!1;if(e.setAttribute(gt,"1"),e.querySelector(`.${ht}`)===null){let r=document.createElement("span");r.className=ht,r.setAttribute("aria-hidden","true"),n!==void 0&&(r.innerHTML=n()),e.prepend(r)}return!0}function As(e){let t=e.hasAttribute(gt),n=e.querySelector(`.${ht}`);return!t&&n===null?!1:(e.removeAttribute(gt),n?.remove(),!0)}function ur(e,t){let n=new Set,o=s=>{Ts(s,e,t)&&n.add(s)},r=s=>{if(s instanceof HTMLButtonElement){s.matches(Jt)&&o(s);return}for(let l of s.querySelectorAll?.(Jt)??[])o(l)};r(document);let i=new MutationObserver(s=>{for(let l of s){let a=(l.target instanceof Element?l.target:l.target.parentElement)?.closest(Jt);a instanceof HTMLButtonElement&&o(a);for(let f of l.addedNodes)f instanceof Element&&r(f)}});return i.observe(document.documentElement,{childList:!0,characterData:!0,subtree:!0}),()=>{i.disconnect();for(let s of n)As(s);n.clear()}}var P=Fe(require("react"),1),Qt=require("react-dom/client"),Te=require("@deepseek-ai/dsh-client-ui-primitives");function pr(e,t,n){return`dsh plugin${e.trim()===""?"":` --profile ${e.trim()}`} add ${t}@${n} --registry=https://registry.npmjs.org/`}function mr(e,t){return e.key!=="Escape"?!1:(e.preventDefault(),e.stopPropagation(),e.stopImmediatePropagation(),t(),!0)}var Es="x-michengai-plugin-update",Rs=`
172
+ .dsh-st-main-panel{box-sizing:border-box;height:100%;min-height:0;overflow-y:auto;display:flex;flex-direction:column;align-items:center;padding:28px clamp(24px,4vw,48px) 48px}
173
+ .dsh-st-main-panel>*{width:100%;max-width:960px}
174
+ .dsh-st-bundle-row{display:flex;align-items:center;justify-content:space-between;gap:16px;padding:12px 0;border-bottom:0.5px solid var(--dsw-alias-border-l2)}
175
+ .dsh-st-bundle-label-box{display:flex;flex-direction:column;gap:2px;min-width:0;flex:1;text-align:left}
176
+ .dsh-st-bundle-title{font-size:13px;font-weight:500;line-height:20px;color:var(--dsw-alias-label-primary)}
177
+ .dsh-st-bundle-desc{font-size:12px;line-height:18px;color:var(--dsw-alias-label-secondary)}
178
+ `;function Sr(){let e=document.getElementById(br);if(e instanceof HTMLStyleElement)return e.textContent=wr,e.setAttribute("data-plugin",vt),()=>{};let t=document.createElement("style");return t.id=br,t.textContent=wr,t.setAttribute("data-plugin",vt),document.head.append(t),()=>{t.remove()}}var vr="michengai-plugin-update-ui";function kr(e){let t=document.getElementById(vr);if(t instanceof HTMLStyleElement){t.getAttribute("data-plugin")===null&&t.setAttribute("data-plugin",vt);return}let n=document.createElement("style");n.id=vr,n.textContent=e,n.setAttribute("data-plugin",vt),(document.head??document.documentElement).append(n)}function Tr(e){return(e.textContent??"").replace(/\s+/g," ").trim()}function xr(e,t){for(let n of t){let o=n.trim();if(o==="")continue;let r=e.find(a=>Tr(a)===o);if(r!==void 0)return r}}function Cs(e){return e.find(n=>{let o=`${n.textContent??""} ${n.getAttribute("aria-label")??""}`.trim();return/(^|\s)(设置|settings)(\s|$)/i.test(o)})??(e.length===1?e[0]:void 0)}var St,Er="[data-dcu-settings-trigger]",Ms="[data-dcu-settings-page]",Ps="dcu-settings-open-section";function _s(e){let t=document.querySelector(Er);if(t===null)return!1;let n=new CustomEvent(Ps,{detail:{labels:[...e]},cancelable:!0});return!t.dispatchEvent(n)}function Ds(){return[...document.querySelectorAll('[role="menu"] button')].find(e=>{let t=Tr(e);return t.startsWith("\u8BBE\u7F6E")||/^Settings(\s|$)/i.test(t)})}function Ls(){return[...document.querySelectorAll('button[aria-haspopup="menu"]')].find(e=>{let t=`${e.getAttribute("aria-label")??""} ${e.textContent??""}`;return/账号|账户|account|user/i.test(t)})}function Hs(e){let t=[...document.querySelectorAll('[role="dialog"] nav button'),...document.querySelectorAll(`${Ms} nav button`)],n=xr(t,e);return n!==void 0?n:xr([...document.querySelectorAll("nav button")],e)}function Ws(){document.dispatchEvent(new KeyboardEvent("keydown",{key:",",code:"Comma",ctrlKey:!0,altKey:!0,bubbles:!0,cancelable:!0}))}function cn(e,t,n){if(typeof document>"u"||typeof window>"u"){n?.();return}if(_s(e)){t?.();return}St?.();let o,r=!1,a=!1,s=!1,l=!1,d=!1,i=!1,p=()=>{r||(r=!0,h.disconnect(),window.clearTimeout(b),o!==void 0&&window.cancelAnimationFrame(o),St===p&&(St=void 0))},u=()=>{let f=Hs(e);return f===void 0?!1:(p(),f.click(),t?.(),!0)},w=()=>{let f=Ds();if(f!==void 0){if(a)return;a=!0,f.click();return}let k=document.querySelector(Er);if(k!==null){if(s)return;s=!0,k.click();return}let g=[...document.querySelectorAll('button[aria-haspopup="dialog"]')].filter(D=>/设置|settings/i.test(`${D.textContent??""} ${D.getAttribute("aria-label")??""}`)),T=Cs(g);if(T!==void 0){if(l)return;l=!0,T.click();return}let A=Ls();if(A!==void 0){if(d)return;d=!0,A.click();return}i||(i=!0,Ws())},y=()=>{r||o!==void 0||(o=window.requestAnimationFrame(()=>{o=void 0,!u()&&w()}))},h=new MutationObserver(()=>{y()}),b=window.setTimeout(()=>{u()||(p(),n?.())},3e3);h.observe(document.body,{childList:!0,subtree:!0}),St=p,u()||w(),y()}var kt="dsh-st-nav-icon-schedule",xt="data-dsh-schedule-nav",un='[role="dialog"] nav button';function Us(e){return new Set(e().map(t=>t.trim()).filter(t=>t!==""))}function Fs(e,t,n){let o=(e.textContent??"").replace(/\s+/g," ").trim();if(!Us(t).has(o)||e.querySelector(":scope > svg")===null||e.getAttribute(xt)==="1"&&e.querySelector(`.${kt}`)!==null)return!1;if(e.setAttribute(xt,"1"),e.querySelector(`.${kt}`)===null){let r=document.createElement("span");r.className=kt,r.setAttribute("aria-hidden","true"),n!==void 0&&(r.innerHTML=n()),e.prepend(r)}return!0}function Bs(e){let t=e.hasAttribute(xt),n=e.querySelector(`.${kt}`);return!t&&n===null?!1:(e.removeAttribute(xt),n?.remove(),!0)}function Ar(e,t){let n=new Set,o=s=>{Fs(s,e,t)&&n.add(s)},r=s=>{if(s instanceof HTMLButtonElement){s.matches(un)&&o(s);return}for(let l of s.querySelectorAll?.(un)??[])o(l)};r(document);let a=new MutationObserver(s=>{for(let l of s){let i=(l.target instanceof Element?l.target:l.target.parentElement)?.closest(un);i instanceof HTMLButtonElement&&o(i);for(let p of l.addedNodes)p instanceof Element&&r(p)}});return a.observe(document.documentElement,{childList:!0,characterData:!0,subtree:!0}),()=>{a.disconnect();for(let s of n)Bs(s);n.clear()}}var _=ze(require("react"),1),pn=require("react-dom/client"),Ae=require("@deepseek-ai/dsh-client-ui-primitives");function Rr(e,t,n){return`dsh plugin${e.trim()===""?"":` --profile ${e.trim()}`} add ${t}@${n} --registry=https://registry.npmjs.org/`}function Ir(e,t){return e.key!=="Escape"?!1:(e.preventDefault(),e.stopPropagation(),e.stopImmediatePropagation(),t(),!0)}function js(){let e=globalThis.document;if(typeof e>"u"||e===null)return;let t=e.baseURI;if(!(typeof t!="string"||t===""))try{let n=new URL(t);return n.pathname.endsWith("/")||(n.pathname+="/"),n.href}catch{return}}function Pe(e){if(typeof e!="string"||e.charAt(0)!=="/"||e.charAt(1)==="/")return e;let t=js();if(t===void 0)return e;try{return new URL(e.slice(1),t).href}catch{return e}}var Tt="dsh-automation-update-toggle",qs="x-michengai-plugin-update",zs=`
173
179
  .mpi-version{margin-left:8px;color:var(--dsw-alias-label-tertiary,#a0a0a0);font-family:inherit;font-size:12px;font-weight:500;line-height:18px;letter-spacing:0;white-space:nowrap;vertical-align:baseline}.mpi-check-host{display:inline-flex;align-items:center}.mpi-icon{display:inline-flex;flex:0 0 auto;width:16px;height:16px;align-items:center;justify-content:center;pointer-events:none}.mpi-icon svg{display:block;width:16px;height:16px}
174
180
  .dsh-st-modal-action{min-width:72px}
175
181
  .mpi-intro{margin:0 0 16px;color:var(--dsw-alias-label-secondary,#b9b9b9);font-size:13px;line-height:20px}.mpi-meta{display:grid;grid-template-columns:max-content minmax(0,1fr);gap:8px 18px;margin:0 0 16px;font-size:12px;line-height:18px}.mpi-meta dt{color:var(--dsw-alias-label-secondary,#b9b9b9)}.mpi-meta dd{margin:0}.mpi-mono{font-family:ui-monospace,SFMono-Regular,Consolas,monospace}.mpi-latest{display:flex;align-items:baseline;flex-wrap:wrap;gap:4px 10px}.mpi-status{font-size:13px;font-weight:600;line-height:18px}.mpi-status[data-kind=error]{color:var(--dsw-alias-state-error-primary,#ef7272)}.mpi-status[data-kind=success]{color:var(--dsw-alias-state-success-primary,#51b976)}.mpi-status[data-kind=update]{color:#e8b15a !important}.mpi-manual{border-top:0.5px solid var(--dsw-alias-border-l2,#494949);padding-top:16px}.mpi-manual h3{margin:0 0 6px;font-size:14px;line-height:20px}.mpi-manual p{margin:0 0 10px;color:var(--dsw-alias-label-secondary,#b9b9b9);font-size:12px;line-height:18px}.mpi-command{display:flex;align-items:flex-start;gap:8px;border:0.5px solid var(--dsw-alias-border-l2,#494949);border-radius:var(--dsw-radius-lg,16px);padding:10px;background:var(--dsw-alias-bg-layer-1,var(--dsw-alias-interactive-bg-hover,transparent))}.mpi-command code{min-width:0;flex:1;overflow:visible;font-family:ui-monospace,SFMono-Regular,Consolas,monospace;font-size:12px;line-height:18px;white-space:pre-wrap;overflow-wrap:anywhere}
@@ -178,6 +184,11 @@ var module = { exports: {} }; var exports = module.exports;
178
184
  @keyframes dsh-st-progress-slide{0%{transform:translateX(-100%)}100%{transform:translateX(300%)}}
179
185
  @media (prefers-reduced-motion:reduce){.dsh-st-update-progress-bar{animation:none;width:100%;opacity:.6}}
180
186
  @media(max-width:560px){.mpi-meta{grid-template-columns:1fr;gap:2px}.mpi-meta dd{margin-bottom:6px}}
181
- `,Is={check:"\u68C0\u67E5\u66F4\u65B0",update:"\u66F4\u65B0",close:"\u5173\u95ED",recheck:"\u91CD\u65B0\u68C0\u67E5",auto:"\u81EA\u52A8\u66F4\u65B0",updating:"\u6B63\u5728\u66F4\u65B0\u2026",copy:"\u590D\u5236\u547D\u4EE4",copied:"\u5DF2\u590D\u5236",copyFailed:"\u590D\u5236\u5931\u8D25",checking:"\u6B63\u5728\u68C0\u67E5\u66F4\u65B0\u2026",latest:"\u5DF2\u662F\u6700\u65B0\u7248\u672C",found:"\u53D1\u73B0\u65B0\u7248\u672C",failed:"\u68C0\u67E5\u66F4\u65B0\u5931\u8D25\uFF0C\u8BF7\u7A0D\u540E\u91CD\u8BD5\u3002",current:"\u8FD0\u884C\u7248\u672C",latestLabel:"\u6700\u65B0\u7248\u672C",profile:"\u76EE\u6807 profile",unknown:"\u672A\u77E5",manual:"\u624B\u5DE5\u66F4\u65B0",manualHint:"\u81EA\u52A8\u66F4\u65B0\u5931\u8D25\u65F6\uFF0C\u53EF\u5728\u5F53\u524D DSH \u7EC8\u7AEF\u6267\u884C\u4EE5\u4E0B\u547D\u4EE4\uFF0C\u5B8C\u6210\u540E\u91CD\u542F DSH Web\u3002",manualHintDesktop:"\u81EA\u52A8\u66F4\u65B0\u5931\u8D25\u65F6\uFF0C\u8BF7\u5148\u5B8C\u5168\u9000\u51FA DSH Desktop\uFF0C\u518D\u7528 Desktop \u81EA\u5E26\u7684 dsh \u6267\u884C\u4EE5\u4E0B\u547D\u4EE4\u3002\u666E\u901A dsh \u4F1A\u62D2\u7EDD desktop profile\u3002",intro:"\u4EC5\u68C0\u67E5\u5E76\u66F4\u65B0\u5F53\u524D\u63D2\u4EF6\uFF0C\u4E0D\u4F1A\u8054\u52A8\u5B89\u88C5\u5176\u4ED6\u63D2\u4EF6\u3002",restart:"\u66F4\u65B0\u5B8C\u6210\uFF0C\u8BF7\u91CD\u542F DSH Web\u3002",restartDesktop:"\u66F4\u65B0\u5B8C\u6210\uFF0C\u8BF7\u5B8C\u5168\u9000\u51FA\u5E76\u91CD\u65B0\u6253\u5F00 DSH Desktop\u3002",restarting:"\u66F4\u65B0\u5B8C\u6210\uFF0C\u6B63\u5728\u91CD\u542F DSH Desktop\u2026",unavailable:"\u5F53\u524D\u73AF\u5883\u4E0D\u652F\u6301\u81EA\u52A8\u66F4\u65B0\uFF0C\u8BF7\u4F7F\u7528\u624B\u5DE5\u66F4\u65B0\u547D\u4EE4\u3002"},Ns={check:"Check for updates",update:"Update",close:"Close",recheck:"Check again",auto:"Update automatically",updating:"Updating\u2026",copy:"Copy command",copied:"Copied",copyFailed:"Copy failed",checking:"Checking for updates\u2026",latest:"You are up to date",found:"New version available",failed:"Could not check for updates. Try again later.",current:"Running version",latestLabel:"Latest version",profile:"Target profile",unknown:"Unknown",manual:"Manual update",manualHint:"If automatic update fails, run this command in the current DSH terminal, then restart DSH Web.",manualHintDesktop:"If automatic update fails, fully quit DSH Desktop, then run this command with Desktop's own dsh. A regular dsh rejects the desktop profile.",intro:"Only this plugin is checked and updated. Other plugins are not changed.",restart:"Update complete. Restart DSH Web.",restartDesktop:"Update complete. Fully quit and reopen DSH Desktop.",restarting:"Update complete. Restarting DSH Desktop\u2026",unavailable:"Automatic update is unavailable. Use the manual command."};function yt(e){return e.toLowerCase().startsWith("en")?Ns:Is}function Cs(e,t,n,o){let r=yt(e),s=t?.profileName==="desktop"?{...r,manualHint:r.manualHintDesktop,restart:r.restartDesktop}:r,l=n!=="idle",d=s.checking,a="";return n==="checking"?d=s.checking:n==="updating"?d=s.updating:o.type==="error"?(d=o.message||s.failed,a="error"):o.type==="restart"?(d=s.restart,a="success"):o.type==="restarting"?(d=s.restarting,a="success"):t===void 0?d=s.checking:t.latestCheckFailed?(d=s.failed,a="error"):!t.canAutoUpdate&&t.updateAvailable?(d=s.unavailable,a="update"):t.updateAvailable?(d=`${s.found}: v${t.latestVersion??s.unknown}`,a="update"):(d=s.latest,a="success"),{copy:s,busy:l,message:d,kind:a,loading:n==="updating",updateLabel:n==="updating"?s.updating:s.auto,disabled:l||t?.canAutoUpdate!==!0||t.updateAvailable!==!0,currentVersion:t===void 0?s.unknown:`v${t.currentVersion}`,latestVersion:t?.latestVersion===void 0?s.unknown:`v${t.latestVersion}`,profileName:t?.profileName??s.unknown,profileRaw:t?.profileName??"",latestRaw:t?.latestVersion??"latest"}}function Os(e,t,n){let o="idle",r=t,i={type:"status"},s=new Set,l=()=>{for(let a of s)a()},d=a=>{r=a,n?.(a)};return{subscribe(a){return s.add(a),()=>{s.delete(a)}},view(a){return Cs(a,r,o,i)},async check(){if(o==="idle"){o="checking",i={type:"status"},l();try{d(await e("GET")),i={type:"status"}}catch(a){i={type:"error",message:a instanceof Error?a.message:""}}finally{o="idle",l()}}},async update(){if(o==="idle"){o="updating",i={type:"status"},l();try{let a=await e("POST");d(a),i={type:a.autoReload===!0?"restarting":"restart"}}catch(a){i={type:"error",message:a instanceof Error?a.message:""}}finally{o="idle",l()}}}}}function Ms(){ar(Rs)}function Ps(e){if(e===null||typeof e!="object")return!1;let t=e;return typeof t.packageName=="string"&&typeof t.currentVersion=="string"&&typeof t.updateAvailable=="boolean"&&typeof t.profileName=="string"&&typeof t.canAutoUpdate=="boolean"&&typeof t.latestCheckFailed=="boolean"&&(t.latestVersion===void 0||typeof t.latestVersion=="string")}async function fr(e,t,n){let o=n===void 0?{}:{signal:n},r=await fetch(e,t==="GET"?{cache:"no-store",...o}:{method:"POST",headers:{"content-type":"application/json",[Es]:"1"},body:"{}",...o}),i=await r.json();if(!r.ok||!Ps(i))throw new Error(i!==null&&typeof i=="object"&&"error"in i&&typeof i.error=="string"?i.error:yt(document.documentElement.lang).failed);return i}function Ds(e){let t=P.default.useRef(null);return P.default.useLayoutEffect(()=>{t.current?.replaceChildren(e.node)},[e.node]),P.default.createElement("span",{ref:t,className:"mpi-icon","aria-hidden":!0})}function _s(e){let t=P.default.useRef(null),[,n]=P.default.useState(0),[o,r]=P.default.useState("idle");P.default.useEffect(()=>e.flow.subscribe(()=>n(f=>f+1)),[e.flow]),P.default.useEffect(()=>{let f=document.documentElement,p=new MutationObserver(()=>n(T=>T+1));return p.observe(f,{attributes:!0,attributeFilter:["lang"]}),()=>p.disconnect()},[]),P.default.useEffect(()=>{e.flow.check()},[e.flow]),P.default.useEffect(()=>{let f=p=>{mr(p,e.onClose)};return document.addEventListener("keydown",f,!0),()=>document.removeEventListener("keydown",f,!0)},[e.onClose]);let i=document.documentElement.lang,s=e.flow.view(i),l=i.toLowerCase().startsWith("en")?e.enName:e.zhName,d=pr(s.profileRaw,e.packageName,s.latestRaw),a=o==="copied"?s.copy.copied:o==="failed"?s.copy.copyFailed:s.copy.copy;return P.default.createElement(Te.Modal,{open:!0,className:"dsh-st-update-dialog",title:`${l} ${s.copy.update}`,closeLabel:s.copy.close,onClose:e.onClose,footer:P.default.createElement(P.default.Fragment,null,P.default.createElement(Te.Button,{variant:"outline",className:"dsh-st-modal-action",disabled:s.busy,onClick:()=>{e.flow.check()}},s.copy.recheck),P.default.createElement(Te.Button,{variant:"primary",className:"dsh-st-modal-action",disabled:s.disabled,onClick:()=>{e.flow.update()}},s.updateLabel))},P.default.createElement("div",{ref:t},P.default.createElement("p",{className:"mpi-intro"},s.copy.intro),P.default.createElement("dl",{className:"mpi-meta"},P.default.createElement("dt",null,s.copy.current),P.default.createElement("dd",null,P.default.createElement("span",{className:"mpi-mono"},s.currentVersion)),P.default.createElement("dt",null,s.copy.latestLabel),P.default.createElement("dd",{className:"mpi-latest"},P.default.createElement("span",{className:"mpi-mono"},s.latestVersion),P.default.createElement("span",{className:"mpi-status",role:"status","data-kind":s.kind,...s.kind==="update"?{style:{color:"#e8b15a"}}:{}},s.message)),P.default.createElement("dt",null,s.copy.profile),P.default.createElement("dd",null,P.default.createElement("span",{className:"mpi-mono"},s.profileName))),s.busy?P.default.createElement("div",{className:"dsh-st-update-progress",role:"progressbar","aria-busy":"true"},P.default.createElement("div",{className:"dsh-st-update-progress-bar"})):null,P.default.createElement("section",{className:"mpi-manual"},P.default.createElement("h3",null,s.copy.manual),P.default.createElement("p",null,s.copy.manualHint),P.default.createElement("div",{className:"mpi-command"},P.default.createElement("code",null,d),P.default.createElement(Te.Button,{variant:"outline",size:"sm",disabled:s.busy,onClick:()=>{let f=navigator.clipboard?.writeText(d);if(f===void 0){r("failed");return}f.then(()=>{r("copied"),window.setTimeout(()=>r("idle"),1400)}).catch(()=>r("failed"))}},a)))))}function hr(e){if(typeof document>"u"||document.body===null)return()=>{};Ms();let t=new AbortController,n,o,r,i,s,l,d,a=()=>{r?.unmount(),r=void 0,o=void 0,i=void 0},f=()=>{if(r===void 0)return;i===void 0&&(i=e.createIcon("refresh"));let u=i;r.render(P.default.createElement(Te.Button,{variant:"outline",size:"sm",onClick:T,icon:P.default.createElement(Ds,{node:u})},P.default.createElement("span",{"data-mpi-label":""},yt(document.documentElement.lang).check)))},p=()=>{l?.unmount(),l=void 0,s?.remove(),s=void 0};function T(){p();let u=document.createElement("div");u.className="mpi-dialog-root",document.body.append(u),s=u;let k=(0,Qt.createRoot)(u);l=k,k.render(P.default.createElement(_s,{flow:Os(g=>fr(e.endpoint,g,t.signal),n,g=>{n=g,w()}),packageName:e.packageName,zhName:e.zhName,enName:e.enName,onClose:p}))}let w=()=>{let u=document.querySelector(e.titleRowSelector);if(u===null)return;let k=u.querySelector("h1,h2");if(k!==null&&n!==void 0){let D=k.querySelector(`.mpi-version[data-package="${e.packageName}"]`);D===null&&(D=document.createElement("span"),D.className="mpi-version",D.dataset.package=e.packageName,k.append(D));let I=`v${n.currentVersion}`;D.textContent!==I&&(D.textContent=I)}o!==void 0&&!o.isConnected&&a();let g=u.querySelector(e.linksSelector);if(g===null)return;let A=g.querySelector(`[data-mpi-check="${e.packageName}"]`);if(A!==null){let D=A.querySelector("[data-mpi-label]");(D===null||D.textContent!==yt(document.documentElement.lang).check)&&f();return}let R=document.createElement("span");R.dataset.mpiCheck=e.packageName,R.className="mpi-check-host",g.append(R),o=R,r=(0,Qt.createRoot)(R),f()},h=async()=>(n=await fr(e.endpoint,"GET",t.signal),w(),n),v=new MutationObserver(()=>{d===void 0&&(d=window.requestAnimationFrame(()=>{d=void 0,w()}))});return v.observe(document.documentElement,{childList:!0,subtree:!0,attributes:!0,attributeFilter:["lang"]}),w(),h().catch(()=>{}),()=>{t.abort(),v.disconnect(),p(),a(),d!==void 0&&window.cancelAnimationFrame(d),document.querySelectorAll(`[data-mpi-check="${e.packageName}"],.mpi-version[data-package="${e.packageName}"]`).forEach(u=>u.remove())}}var Ls="dsh-automation-client",Hs=["slots","locale","connection","sessions"],Ws={refresh:["M13.5 5.5V2.5m0 0h-3m3 0-2.1 2.1A5.5 5.5 0 1 0 13.2 12"],download:["M8 2v8m0 0 3-3m-3 3-3-3M3 13v2h10v-2"],copy:["M5 5h8v8H5z","M3 3h8"],close:["m4 4 8 8M12 4 4 12"]};function Fs(e){let t=document.createElement("span"),n=document.createElementNS("http://www.w3.org/2000/svg","svg");n.setAttribute("viewBox","0 0 16 16"),n.setAttribute("width","16"),n.setAttribute("height","16"),n.setAttribute("fill","none"),n.setAttribute("stroke","currentColor"),n.setAttribute("stroke-width","1.5"),n.setAttribute("stroke-linecap","round"),n.setAttribute("stroke-linejoin","round"),n.setAttribute("aria-hidden","true");for(let o of Ws[e]){let r=document.createElementNS("http://www.w3.org/2000/svg","path");r.setAttribute("d",o),n.append(r)}return t.append(n),t}function Bs(e){return typeof e=="function"}function zs(e){return typeof e=="function"}function js(e){e.effect(()=>ir(),"dsh-automation: styles"),e.effect(()=>e.locale.register(Ne,{zh:Do,en:Po}),"dsh-automation: locale"),e.effect(()=>hr({endpoint:"/api/michengai/dsh-automation/update",packageName:"@michengai/dsh-automation",titleRowSelector:".dsh-st-heading-row",linksSelector:".dsh-st-heading-links",zhName:"\u5B9A\u65F6\u4EFB\u52A1",enName:"Scheduled tasks",createIcon:Fs}),"dsh-automation: plugin update ui");let t=e.locale.bind(Ne),n=e.locale.bind("permission.access"),o=e.locale.bind("model"),r=Eo(e.connection.rpc),i=async()=>{let d=await St(e);return d===void 0?void 0:(await kt(e,d),(await r.registerWorkspace(d)).id)},s=d=>{zt(d),Xt([t("tab"),"Scheduled tasks","\u5B9A\u65F6\u4EFB\u52A1"],()=>{zt(d)},()=>{rt(window.sessionStorage)})},l=()=>{qt(),Xt([t("tab"),"Scheduled tasks","\u5B9A\u65F6\u4EFB\u52A1"],()=>{qt()},()=>{it(window.sessionStorage)})};e.effect(()=>Ao(r,()=>e.sessions),"dsh-automation: session sync"),e.effect(()=>ur(()=>[t("tab"),"Scheduled tasks","\u5B9A\u65F6\u4EFB\u52A1"],()=>Ce(ue,16)),"dsh-automation: settings icon"),e.slots.inject("sidebar.session.row.leading",()=>e.slots.register({name:"sidebar.session.row.leading",id:"dsh-automation-session-clock",order:20},function(a){let f=(0,re.useSyncExternalStore)(r.source.subscribe,()=>r.source.getSnapshot().snapshot?.runs,()=>{}),p=(0,re.useMemo)(()=>Me(f),[f]);return a.sessionId===void 0||!p.has(a.sessionId)?null:(0,re.createElement)("span",{className:"dsh-st-session-clock","aria-hidden":"true"},(0,re.createElement)(ue,{size:16}))})),e.slots.inject("settings.section",()=>e.slots.register({name:"settings.section",id:"scheduled-tasks",order:35,locale:Ne,label:()=>t("tab"),icon:"schedule",inject:()=>({createWorkspace:d=>kt(e,d.path),pickDirectory:()=>St(e),permissionT:n,modelT:o})},function(a){return(0,re.createElement)(Mo,{t,permissionT:n,modelT:o,runtime:r,...a.close===void 0?{}:{closeSettings:a.close},addWorkspace:i})})),e.slots.inject("sidebar.schedule",()=>e.slots.register({name:"sidebar.schedule",id:"dsh-automation-schedule-overview",order:10,locale:Ne,inject:()=>({openTaskSettings:s,openCreateTask:l})},function(a){let f=(0,re.useSyncExternalStore)(r.source.subscribe,r.source.getSnapshot,r.source.getSnapshot);return(0,re.createElement)(ct,{t,automations:f.snapshot?.automations??[],...f.snapshot?.serverNow===void 0?{}:{serverNow:f.snapshot.serverNow},openTaskSettings:a.openTaskSettings??s,openCreateTask:a.openCreateTask??l,onToggleAutomation:(p,T)=>r.mutateAutomation(p,T)})})),e.slots.inject("sidebar.workspaces",()=>{let d,a,f,p,T,w=()=>{},h=()=>{},v=!1,u,k=()=>{queueMicrotask(()=>window.dispatchEvent(new Event("dsh-native-sidebar-change")))},g=()=>{u!==void 0&&(window.clearInterval(u),u=void 0)},A=()=>{if(g(),w(),w=()=>{},h(),h=()=>{},T=void 0,d!==void 0){a!==void 0&&d.component===f&&(d.component=a);let z=d;z.__dshNativeTabs===p&&delete z.__dshNativeTabs,k()}d=void 0,a=void 0,f=void 0,p=void 0},R=z=>!Array.isArray(z.sessionOpeners)||typeof z.addSessionOpener!="function"?()=>{}:z.sessionOpeners.some(L=>L.id==="automation")?()=>{}:z.addSessionOpener({id:"automation",order:10,matchSession:L=>L.startsWith(Ae)?!0:r.source.getSnapshot().snapshot?.runs?.some(j=>j.sessionId===L)===!0,open:(L,C)=>{en(e,r,C)(L)}}),D=z=>{let L=zo(z);return L===void 0?!1:(T!==L&&(w(),w=()=>{},h(),h=()=>{},T=L),Array.isArray(L.sessionOpeners)&&!L.sessionOpeners.some(C=>C.id==="automation")&&(h=R(L)),L.getTabs().some(C=>C.id==="schedule")||(w=L.insert({id:"schedule",label:t("sidebar.tab"),order:30,matchSession:C=>C.startsWith(Ae),render:C=>{let j=typeof C.openSession=="function"?C.openSession:typeof C.open=="function"?C.open:void 0,G=en(e,r,j),Y=typeof L.officialTree=="function"?L.officialTree:void 0;return(0,re.createElement)(Yt,{t,runtime:r,...Y===void 0?{}:{officialTree:Y},hostProps:C,openSession:G,...s===void 0?{}:{openTaskSettings:s},...l===void 0?{}:{openCreateTask:l},...Bs(C.useSessions)?{useSessions:C.useSessions}:{},...zs(C.useWorkspaces)?{useWorkspaces:C.useWorkspaces}:{},...typeof C.wide=="boolean"?{wide:C.wide}:{}})}})),!0)},I=()=>{let z=tn(e,"sidebar.workspaces");for(let L of z){let C=L;if(D(L)||D(C.component))return!0}return w(),w=()=>{},h(),h=()=>{},T=void 0,!1},H=()=>{if(I()){g();return}if(u!==void 0)return;let z=0;u=window.setInterval(()=>{z+=1,(I()||z>=20)&&g()},250)},B=()=>{if(!v){v=!0;try{let Q=function(E){let K=en(e,r,E.openSession??E.open);return(0,re.createElement)(nr,{t,runtime:r,hostProps:E,openSession:K,openTaskSettings:s,openCreateTask:l,tabRegistry:Y,...E.wide===void 0?{}:{wide:E.wide},...E.useSessions===void 0?{}:{useSessions:E.useSessions},...E.useWorkspaces===void 0?{}:{useWorkspaces:E.useWorkspaces},officialTree:le})};var z=Q;if(_n(tn(e,"sidebar"))){A();return}let L=tn(e,"sidebar.workspaces"),C=L.find(E=>E?.component!==void 0);if(d!==void 0&&(C!==d||C.component!==f)&&A(),C===d&&C?.component===f&&f!==void 0){H();return}if(C===void 0){A();return}if(C.component!==f&&jo(C.component)){H();return}let j=Vn(L);if(j?.component===void 0)return;let G=Kn(j.component);if(G===void 0)return;a=G;let Y=Fo(a);p=Y,$t(j,Y);let O=Q;O.displayName="DshNativeTabWorkspaceShell",O.__dshNativeTabHost=!0,O.__dshNativeTabWrapped=!0,O.__dshNativeTabOriginal=a,O.__dshNativeTabOwner="automation",O.__dshAutomationWrapped=!0,O.__dshAutomationOriginal=a;let le=a;$t(O,Y),j.component=O,f=O,d=j,H(),k()}catch(L){console.warn("[dsh-automation] \u5305\u88F9\u5B98\u65B9\u4EFB\u52A1\u6811\u5931\u8D25",L)}finally{v=!1}}};B();let U=typeof e.slots.subscribe=="function"?e.slots.subscribe("sidebar.workspaces",B):()=>{},ie=e.slots.subscribe?.("sidebar",B)??(()=>{});return window.addEventListener("dsh-native-sidebar-change",B),H(),()=>{U(),ie(),window.removeEventListener("dsh-native-sidebar-change",B),A()}}),e.slots.inject("conversation.input.left",()=>e.slots.register({name:"conversation.input.left",id:"dsh-automation-prefill",order:80,locale:Ne},qs))}function en(e,t,n){let o;return r=>{let i=o??=Bn(e);qn({id:r,adopt:s=>t.adoptSession(s),listed:s=>{let l=e.sessions?.list?.getSnapshot();return(l?.ids??[]).includes(s)||l?.byId?.[s]!==void 0},...e.sessions?.refresh===void 0?{}:{refresh:()=>e.sessions.refresh()},...zn(i)?{openRuntime:s=>{jn(i,s)}}:{},...n===void 0?{}:{openHost:n}})}}function qs(e){return(0,re.useEffect)(()=>{let t=n=>{if(!(n===null||n==="")){if(e.inputActions!==void 0){e.inputActions.setDraft(n),_t();return}ko(n)&&_t()}};return t(wo()),vo(t)},[e.inputActions]),null}function tn(e,t){try{return(e.slots.entriesOfSlot??e.slots.entries)?.call(e.slots,t)??[]}catch{return[]}}
187
+ `,$s={check:"\u68C0\u67E5\u66F4\u65B0",update:"\u66F4\u65B0",close:"\u5173\u95ED",recheck:"\u91CD\u65B0\u68C0\u67E5",auto:"\u81EA\u52A8\u66F4\u65B0",updating:"\u6B63\u5728\u66F4\u65B0\u2026",copy:"\u590D\u5236\u547D\u4EE4",copied:"\u5DF2\u590D\u5236",copyFailed:"\u590D\u5236\u5931\u8D25",checking:"\u6B63\u5728\u68C0\u67E5\u66F4\u65B0\u2026",latest:"\u5DF2\u662F\u6700\u65B0\u7248\u672C",found:"\u53D1\u73B0\u65B0\u7248\u672C",failed:"\u68C0\u67E5\u66F4\u65B0\u5931\u8D25\uFF0C\u8BF7\u7A0D\u540E\u91CD\u8BD5\u3002",current:"\u8FD0\u884C\u7248\u672C",latestLabel:"\u6700\u65B0\u7248\u672C",profile:"\u76EE\u6807 profile",unknown:"\u672A\u77E5",manual:"\u624B\u5DE5\u66F4\u65B0",manualHint:"\u81EA\u52A8\u66F4\u65B0\u5931\u8D25\u65F6\uFF0C\u53EF\u5728\u5F53\u524D DSH \u7EC8\u7AEF\u6267\u884C\u4EE5\u4E0B\u547D\u4EE4\uFF0C\u5B8C\u6210\u540E\u91CD\u542F DSH Web\u3002",manualHintDesktop:"\u81EA\u52A8\u66F4\u65B0\u5931\u8D25\u65F6\uFF0C\u8BF7\u5148\u5B8C\u5168\u9000\u51FA DSH Desktop\uFF0C\u518D\u7528 Desktop \u81EA\u5E26\u7684 dsh \u6267\u884C\u4EE5\u4E0B\u547D\u4EE4\u3002\u666E\u901A dsh \u4F1A\u62D2\u7EDD desktop profile\u3002",intro:"\u4EC5\u68C0\u67E5\u5E76\u66F4\u65B0\u5F53\u524D\u63D2\u4EF6\uFF0C\u4E0D\u4F1A\u8054\u52A8\u5B89\u88C5\u5176\u4ED6\u63D2\u4EF6\u3002",restart:"\u66F4\u65B0\u5B8C\u6210\uFF0C\u8BF7\u91CD\u542F DSH Web\u3002",restartDesktop:"\u66F4\u65B0\u5B8C\u6210\uFF0C\u8BF7\u5B8C\u5168\u9000\u51FA\u5E76\u91CD\u65B0\u6253\u5F00 DSH Desktop\u3002",restarting:"\u66F4\u65B0\u5B8C\u6210\uFF0C\u6B63\u5728\u91CD\u542F DSH Desktop\u2026",unavailable:"\u5F53\u524D\u73AF\u5883\u4E0D\u652F\u6301\u81EA\u52A8\u66F4\u65B0\uFF0C\u8BF7\u4F7F\u7528\u624B\u5DE5\u66F4\u65B0\u547D\u4EE4\u3002"},Ks={check:"Check for updates",update:"Update",close:"Close",recheck:"Check again",auto:"Update automatically",updating:"Updating\u2026",copy:"Copy command",copied:"Copied",copyFailed:"Copy failed",checking:"Checking for updates\u2026",latest:"You are up to date",found:"New version available",failed:"Could not check for updates. Try again later.",current:"Running version",latestLabel:"Latest version",profile:"Target profile",unknown:"Unknown",manual:"Manual update",manualHint:"If automatic update fails, run this command in the current DSH terminal, then restart DSH Web.",manualHintDesktop:"If automatic update fails, fully quit DSH Desktop, then run this command with Desktop's own dsh. A regular dsh rejects the desktop profile.",intro:"Only this plugin is checked and updated. Other plugins are not changed.",restart:"Update complete. Restart DSH Web.",restartDesktop:"Update complete. Fully quit and reopen DSH Desktop.",restarting:"Update complete. Restarting DSH Desktop\u2026",unavailable:"Automatic update is unavailable. Use the manual command."};function Et(e){return e.toLowerCase().startsWith("en")?Ks:$s}function Vs(e,t,n,o){let r=Et(e),s=t?.profileName==="desktop"?{...r,manualHint:r.manualHintDesktop,restart:r.restartDesktop}:r,l=n!=="idle",d=s.checking,i="";return n==="checking"?d=s.checking:n==="updating"?d=s.updating:o.type==="error"?(d=o.message||s.failed,i="error"):o.type==="restart"?(d=s.restart,i="success"):o.type==="restarting"?(d=s.restarting,i="success"):t===void 0?d=s.checking:t.latestCheckFailed?(d=s.failed,i="error"):!t.canAutoUpdate&&t.updateAvailable?(d=s.unavailable,i="update"):t.updateAvailable?(d=`${s.found}: v${t.latestVersion??s.unknown}`,i="update"):(d=s.latest,i="success"),{copy:s,busy:l,message:d,kind:i,loading:n==="updating",updateLabel:n==="updating"?s.updating:s.auto,disabled:l||t?.canAutoUpdate!==!0||t.updateAvailable!==!0,currentVersion:t===void 0?s.unknown:`v${t.currentVersion}`,latestVersion:t?.latestVersion===void 0?s.unknown:`v${t.latestVersion}`,profileName:t?.profileName??s.unknown,profileRaw:t?.profileName??"",latestRaw:t?.latestVersion??"latest"}}function Gs(e,t,n){let o="idle",r=t,a={type:"status"},s=new Set,l=()=>{for(let i of s)i()},d=i=>{r=i,n?.(i)};return{subscribe(i){return s.add(i),()=>{s.delete(i)}},view(i){return Vs(i,r,o,a)},async check(){if(o==="idle"){o="checking",a={type:"status"},l();try{d(await e("GET")),a={type:"status"}}catch(i){a={type:"error",message:i instanceof Error?i.message:""}}finally{o="idle",l()}}},async update(){if(o==="idle"){o="updating",a={type:"status"},l();try{let i=await e("POST");d(i),a={type:i.autoReload===!0?"restarting":"restart"}}catch(i){a={type:"error",message:i instanceof Error?i.message:""}}finally{o="idle",l()}}}}}function Ys(){kr(zs)}function Zs(e){if(e===null||typeof e!="object")return!1;let t=e;return typeof t.packageName=="string"&&typeof t.currentVersion=="string"&&typeof t.updateAvailable=="boolean"&&typeof t.profileName=="string"&&typeof t.canAutoUpdate=="boolean"&&typeof t.latestCheckFailed=="boolean"&&(t.latestVersion===void 0||typeof t.latestVersion=="string")}async function Nr(e,t,n){let o=n===void 0?{}:{signal:n},r=await fetch(Pe(e),t==="GET"?{cache:"no-store",...o}:{method:"POST",headers:{"content-type":"application/json",[qs]:"1"},body:"{}",...o}),a=await r.json();if(!r.ok||!Zs(a))throw new Error(a!==null&&typeof a=="object"&&"error"in a&&typeof a.error=="string"?a.error:Et(document.documentElement.lang).failed);return a}function Xs(e){let t=_.default.useRef(null);return _.default.useLayoutEffect(()=>{t.current?.replaceChildren(e.node)},[e.node]),_.default.createElement("span",{ref:t,className:"mpi-icon","aria-hidden":!0})}function Js(e){let t=_.default.useRef(null),[,n]=_.default.useState(0),[o,r]=_.default.useState("idle");_.default.useEffect(()=>e.flow.subscribe(()=>n(p=>p+1)),[e.flow]),_.default.useEffect(()=>{let p=document.documentElement,u=new MutationObserver(()=>n(w=>w+1));return u.observe(p,{attributes:!0,attributeFilter:["lang"]}),()=>u.disconnect()},[]),_.default.useEffect(()=>{e.flow.check()},[e.flow]),_.default.useEffect(()=>{let p=u=>{Ir(u,e.onClose)};return document.addEventListener("keydown",p,!0),()=>document.removeEventListener("keydown",p,!0)},[e.onClose]);let a=document.documentElement.lang,s=e.flow.view(a),l=a.toLowerCase().startsWith("en")?e.enName:e.zhName,d=Rr(s.profileRaw,e.packageName,s.latestRaw),i=o==="copied"?s.copy.copied:o==="failed"?s.copy.copyFailed:s.copy.copy;return _.default.createElement(Ae.Modal,{open:!0,className:"dsh-st-update-dialog",title:`${l} ${s.copy.update}`,closeLabel:s.copy.close,onClose:e.onClose,footer:_.default.createElement(_.default.Fragment,null,_.default.createElement(Ae.Button,{variant:"outline",className:"dsh-st-modal-action",disabled:s.busy,onClick:()=>{e.flow.check()}},s.copy.recheck),_.default.createElement(Ae.Button,{variant:"primary",className:"dsh-st-modal-action",disabled:s.disabled,onClick:()=>{e.flow.update()}},s.updateLabel))},_.default.createElement("div",{ref:t},_.default.createElement("p",{className:"mpi-intro"},s.copy.intro),_.default.createElement("dl",{className:"mpi-meta"},_.default.createElement("dt",null,s.copy.current),_.default.createElement("dd",null,_.default.createElement("span",{className:"mpi-mono"},s.currentVersion)),_.default.createElement("dt",null,s.copy.latestLabel),_.default.createElement("dd",{className:"mpi-latest"},_.default.createElement("span",{className:"mpi-mono"},s.latestVersion),_.default.createElement("span",{className:"mpi-status",role:"status","data-kind":s.kind,...s.kind==="update"?{style:{color:"#e8b15a"}}:{}},s.message)),_.default.createElement("dt",null,s.copy.profile),_.default.createElement("dd",null,_.default.createElement("span",{className:"mpi-mono"},s.profileName))),s.busy?_.default.createElement("div",{className:"dsh-st-update-progress",role:"progressbar","aria-busy":"true"},_.default.createElement("div",{className:"dsh-st-update-progress-bar"})):null,_.default.createElement("section",{className:"mpi-manual"},_.default.createElement("h3",null,s.copy.manual),_.default.createElement("p",null,s.copy.manualHint),_.default.createElement("div",{className:"mpi-command"},_.default.createElement("code",null,d),_.default.createElement(Ae.Button,{variant:"outline",size:"sm",disabled:s.busy,onClick:()=>{let p=navigator.clipboard?.writeText(d);if(p===void 0){r("failed");return}p.then(()=>{r("copied"),window.setTimeout(()=>r("idle"),1400)}).catch(()=>r("failed"))}},i)))))}function Or(e){if(typeof document>"u"||document.body===null)return()=>{};Ys();let t=new AbortController,n,o,r,a,s,l,d,i=()=>{r?.unmount(),r=void 0,o=void 0,a=void 0},p=()=>{if(r===void 0)return;a===void 0&&(a=e.createIcon("refresh"));let k=a;r.render(_.default.createElement(Ae.Button,{variant:"outline",size:"sm",onClick:w,icon:_.default.createElement(Xs,{node:k})},_.default.createElement("span",{"data-mpi-label":""},Et(document.documentElement.lang).check)))},u=()=>{l?.unmount(),l=void 0,s?.remove(),s=void 0};function w(){u();let k=document.createElement("div");k.className="mpi-dialog-root",document.body.append(k),s=k;let g=(0,pn.createRoot)(k);l=g,g.render(_.default.createElement(Js,{flow:Gs(T=>Nr(e.endpoint,T,t.signal),n,T=>{n=T,y()}),packageName:e.packageName,zhName:e.zhName,enName:e.enName,onClose:u}))}let y=()=>{let k=document.querySelector(e.titleRowSelector);if(k===null)return;let g=k.querySelector("h1,h2"),T=k.querySelector(e.linksSelector);if(e.isEnabled&&!e.isEnabled()){if(s!==void 0&&u(),T!==null){let R=T.querySelector(`[data-mpi-check="${e.packageName}"]`);R!==null&&(i(),R.remove())}if(g!==null){let R=g.querySelector(`.mpi-version[data-package="${e.packageName}"]`);R!==null&&R.remove()}return}if(g!==null&&n!==void 0){let R=g.querySelector(`.mpi-version[data-package="${e.packageName}"]`);R===null&&(R=document.createElement("span"),R.className="mpi-version",R.dataset.package=e.packageName,g.append(R));let W=`v${n.currentVersion}`;R.textContent!==W&&(R.textContent=W)}if(o!==void 0&&!o.isConnected&&i(),T===null)return;let A=T.querySelector(`[data-mpi-check="${e.packageName}"]`);if(A!==null){let R=A.querySelector("[data-mpi-label]");(R===null||R.textContent!==Et(document.documentElement.lang).check)&&p();return}let D=document.createElement("span");D.dataset.mpiCheck=e.packageName,D.className="mpi-check-host",T.append(D),o=D,r=(0,pn.createRoot)(D),p()},h=async()=>{if(e.isEnabled&&!e.isEnabled()){y();return}try{return n=await Nr(e.endpoint,"GET",t.signal),y(),n}catch{y();return}},b=new MutationObserver(()=>{d===void 0&&(d=window.requestAnimationFrame(()=>{d=void 0,y()}))});b.observe(document.documentElement,{childList:!0,subtree:!0,attributes:!0,attributeFilter:["lang"]});let f=()=>{y(),(!e.isEnabled||e.isEnabled())&&h().catch(()=>{})};return typeof window<"u"&&window.addEventListener(Tt,f),y(),h().catch(()=>{}),()=>{typeof window<"u"&&window.removeEventListener(Tt,f),t.abort(),b.disconnect(),u(),i(),d!==void 0&&window.cancelAnimationFrame(d),document.querySelectorAll(`[data-mpi-check="${e.packageName}"],.mpi-version[data-package="${e.packageName}"]`).forEach(k=>k.remove())}}var U=require("react"),At=require("@deepseek-ai/dsh-client-ui-primitives");var fn="@michengai/dsh-automation",mn="dsh-automation",Qs=4,Cr="dsh-automation-hide-official-schedule",Rt="dsh-automation.hide-official-schedule",It="dsh-automation.sidebar-entry",ea=`
188
+ nav button[aria-label="\u81EA\u52A8\u5316\u4EFB\u52A1"],
189
+ nav button[aria-label="Automation tasks"] {
190
+ display: none !important;
191
+ }
192
+ `;function Mr(){if(typeof localStorage>"u")return!0;try{if(localStorage.getItem(It)==="false")return!1}catch{}return!0}function ta(){if(typeof localStorage>"u")return!0;try{let e=localStorage.getItem(Rt);if(e==="true")return!0;if(e==="false")return!1}catch{}return Mr()}function je(e){if(typeof document>"u")return;let t=`style[data-plugin="${fn}"][data-plugin-css="${Cr}"]`,n=document.querySelector(t);if(e){if(!n){let o=document.createElement("style");o.dataset.plugin=fn,o.dataset.pluginCss=Cr,o.textContent=ea;let r=document.head??document.documentElement;r&&r.appendChild(o)}}else n&&n.remove()}function na(e){let t=e.size!==void 0&&typeof e.size=="number"?e.size:16;return(0,U.createElement)(ce,{size:t})}function oa(e){let{t,enabled:n,disabled:o=!1,onToggle:r,onlineUpdateEnabled:a=!0,onlineUpdateDisabled:s=!1,onlineUpdateLocked:l=!1,onToggleOnlineUpdate:d,hideOfficialScheduleEnabled:i=!0,hideOfficialScheduleDisabled:p=!1,onToggleHideOfficialSchedule:u}=e,w=[(0,U.createElement)("div",{key:"sidebar-entry",className:"dsh-st-bundle-row"},(0,U.createElement)("div",{className:"dsh-st-bundle-label-box"},(0,U.createElement)("span",{className:"dsh-st-bundle-title"},t("sidebar.entry.title")),(0,U.createElement)("span",{className:"dsh-st-bundle-desc"},t("sidebar.entry.desc"))),(0,U.createElement)(At.Switch,{checked:n,onChange:r,label:t("sidebar.entry.toggle"),disabled:o}))];if(typeof d=="function"){let y=l?`${t("update.entry.desc")} (${t("error.update.disabled")})`:t("update.entry.desc");w.push((0,U.createElement)("div",{key:"online-update",className:"dsh-st-bundle-row"},(0,U.createElement)("div",{className:"dsh-st-bundle-label-box"},(0,U.createElement)("span",{className:"dsh-st-bundle-title"},t("update.entry.title")),(0,U.createElement)("span",{className:"dsh-st-bundle-desc"},y)),(0,U.createElement)(At.Switch,{checked:a,onChange:d,label:t("update.entry.toggle"),disabled:s||l})))}return typeof u=="function"&&w.push((0,U.createElement)("div",{key:"official-schedule",className:"dsh-st-bundle-row"},(0,U.createElement)("div",{className:"dsh-st-bundle-label-box"},(0,U.createElement)("span",{className:"dsh-st-bundle-title"},t("officialSchedule.entry.title")),(0,U.createElement)("span",{className:"dsh-st-bundle-desc"},t("officialSchedule.entry.desc"))),(0,U.createElement)(At.Switch,{checked:i,onChange:u,label:t("officialSchedule.entry.toggle"),disabled:p}))),(0,U.createElement)(U.Fragment,null,w)}function ra(e){let[t,n]=(0,U.useState)(e.getEnabled),[o,r]=(0,U.useState)(e.getOnlineUpdateEnabled?e.getOnlineUpdateEnabled:()=>!0),[a,s]=(0,U.useState)(e.getOnlineUpdateLocked?e.getOnlineUpdateLocked:()=>!1),[l,d]=(0,U.useState)(e.getHideOfficialScheduleEnabled?e.getHideOfficialScheduleEnabled:()=>!0),[i,p]=(0,U.useState)(!1),[u,w]=(0,U.useState)(!1),[y,h]=(0,U.useState)(!1);(0,U.useEffect)(()=>{n(e.getEnabled()),e.getOnlineUpdateEnabled&&r(e.getOnlineUpdateEnabled()),e.getOnlineUpdateLocked&&s(e.getOnlineUpdateLocked()),e.getHideOfficialScheduleEnabled&&d(e.getHideOfficialScheduleEnabled());let A=e.subscribe(()=>{n(e.getEnabled()),e.getOnlineUpdateEnabled&&r(e.getOnlineUpdateEnabled()),e.getOnlineUpdateLocked&&s(e.getOnlineUpdateLocked()),e.getHideOfficialScheduleEnabled&&d(e.getHideOfficialScheduleEnabled())});return()=>{A()}},[e]);let b=A=>{p(!0),n(A),e.setSidebar(A).catch(()=>{n(e.getEnabled())}).finally(()=>{p(!1)})},f=e.setOnlineUpdate,k=f?A=>{a||(w(!0),r(A),f(A).catch(()=>{e.getOnlineUpdateEnabled&&r(e.getOnlineUpdateEnabled())}).finally(()=>{w(!1)}))}:void 0,g=e.setHideOfficialSchedule,T=g?A=>{h(!0),d(A),g(A).catch(()=>{e.getHideOfficialScheduleEnabled&&d(e.getHideOfficialScheduleEnabled())}).finally(()=>{h(!1)})}:void 0;return(0,U.createElement)(oa,{t:e.t,enabled:t,disabled:i,onToggle:b,onlineUpdateEnabled:o,onlineUpdateDisabled:u,onlineUpdateLocked:a,...k!==void 0?{onToggleOnlineUpdate:k}:{},hideOfficialScheduleEnabled:l,hideOfficialScheduleDisabled:y,...T!==void 0?{onToggleHideOfficialSchedule:T}:{}})}function Nt(e,t){if(!e.locale)return{isEnabled:()=>!1,isSupported:()=>!1,setEnabled:async()=>!1,isOnlineUpdateEnabled:()=>!0,isOnlineUpdateLocked:()=>!1,setOnlineUpdate:async()=>!1,isHideOfficialScheduleEnabled:()=>!0,setHideOfficialSchedule:async()=>!1,destroy:()=>{}};let{callApi:n,renderPanel:o,ns:r}=t,a=Mr(),s=!1,l=null,d=null,i=0,p,u=new Set,w=()=>{for(let x of u)try{x()}catch{}},y=()=>{if(s&&a){if(!l){let x=e.slots.register({name:"main",key:mn,locale:r,inject:()=>{let F=typeof t.injectProps=="function"?t.injectProps():t.injectProps;return Object.assign({t:e.locale?.bind?e.locale.bind(r):void 0},F)}},F=>(0,U.createElement)("div",{className:"dsh-st-main-panel"},o(F)));l=typeof x=="function"?x:()=>{}}if(!d){let x=e.slots.register({name:"sidebar.panellist",id:mn,order:Qs,label:()=>e.locale?.bind?e.locale.bind(r)("tab"):"\u5B9A\u65F6\u4EFB\u52A1",locale:r},F=>(0,U.createElement)(na,F));d=typeof x=="function"?x:()=>{}}}else{if(p?.panelInfo&&typeof p.selectPanel=="function")try{p.panelInfo.getSnapshot().activePanelId===mn&&p.selectPanel(null)}catch{}if(d){try{d()}catch{}d=null}if(l){try{l()}catch{}l=null}}},h=async x=>{let F=++i;a=x;try{localStorage.setItem(It,String(x))}catch{}y(),w();try{return await n("/sidebar-entry",{method:"POST",headers:{"content-type":"application/json"},body:JSON.stringify({enabled:x})}),x}catch(ne){if(F===i){a=!x;try{localStorage.setItem(It,String(!x))}catch{}y(),w()}throw ne}},b=!0,f=!1,k=0,g=ta(),T=0;je(g);let A=x=>{if(x&&p?.panelInfo&&typeof p.selectPanel=="function")try{p.panelInfo.getSnapshot().activePanelId==="schedules"&&p.selectPanel(null)}catch{}},D=async x=>{let F=++T;g=x;try{localStorage.setItem(Rt,String(x))}catch{}je(x),A(x),w();try{return await n("/official-schedule",{method:"POST",headers:{"content-type":"application/json"},body:JSON.stringify({enabled:x})}),x}catch(ne){if(F===T){g=!x;try{localStorage.setItem(Rt,String(!x))}catch{}je(!x),w()}throw ne}},R=async x=>{if(f)return b;let F=++k;if(b=x,w(),typeof t.onOnlineUpdateChange=="function")try{t.onOnlineUpdateChange(x)}catch{}try{if(await n("/online-update",{method:"POST",headers:{"content-type":"application/json"},body:JSON.stringify({enabled:x})}),typeof t.onOnlineUpdateChange=="function")try{t.onOnlineUpdateChange(x)}catch{}return x}catch(ne){if(F===k&&(b=!x,w(),typeof t.onOnlineUpdateChange=="function"))try{t.onOnlineUpdateChange(!x)}catch{}throw ne}},W=i;n("/sidebar-entry").then(x=>{if(i===W&&x&&typeof x.enabled=="boolean"){a=x.enabled;try{localStorage.setItem(It,String(x.enabled))}catch{}y(),w()}}).catch(()=>{});let K=k;n("/online-update").then(x=>{if(k===K&&x&&(typeof x.enabled=="boolean"&&(b=x.enabled),typeof x.locked=="boolean"&&(f=x.locked),w(),typeof t.onOnlineUpdateChange=="function"))try{t.onOnlineUpdateChange(b)}catch{}}).catch(()=>{});let z=T;return n("/official-schedule").then(x=>{if(T===z&&x&&typeof x.enabled=="boolean"){g=x.enabled;try{localStorage.setItem(Rt,String(x.enabled))}catch{}je(g),A(g),w()}}).catch(()=>{}),typeof e.inject=="function"&&e.inject(["layout"],x=>{p=x.layout,A(g)}),e.slots.inject("sidebar.panellist",()=>{s=!0,y()}),e.slots.inject("plugins.bundle.config",()=>e.slots.register({name:"plugins.bundle.config",key:fn,locale:r},x=>x&&x.view==="summary"?null:(0,U.createElement)(ra,{t:e.locale.bind(r),getEnabled:()=>a,setSidebar:h,getOnlineUpdateEnabled:()=>b,getOnlineUpdateLocked:()=>f,setOnlineUpdate:R,getHideOfficialScheduleEnabled:()=>g,setHideOfficialSchedule:D,subscribe:F=>(u.add(F),()=>{u.delete(F)})}))),{isEnabled:()=>a,isSupported:()=>s,setEnabled:h,isOnlineUpdateEnabled:()=>b,isOnlineUpdateLocked:()=>f,setOnlineUpdate:R,isHideOfficialScheduleEnabled:()=>g,setHideOfficialSchedule:D,destroy:()=>{if(u.clear(),je(!1),d){try{d()}catch{}d=null}if(l){try{l()}catch{}l=null}}}}var sa="dsh-automation-client",aa=["slots","locale","connection","sessions"],ia={refresh:["M13.5 5.5V2.5m0 0h-3m3 0-2.1 2.1A5.5 5.5 0 1 0 13.2 12"],download:["M8 2v8m0 0 3-3m-3 3-3-3M3 13v2h10v-2"],copy:["M5 5h8v8H5z","M3 3h8"],close:["m4 4 8 8M12 4 4 12"]};function da(e){let t=document.createElement("span"),n=document.createElementNS("http://www.w3.org/2000/svg","svg");n.setAttribute("viewBox","0 0 16 16"),n.setAttribute("width","16"),n.setAttribute("height","16"),n.setAttribute("fill","none"),n.setAttribute("stroke","currentColor"),n.setAttribute("stroke-width","1.5"),n.setAttribute("stroke-linecap","round"),n.setAttribute("stroke-linejoin","round"),n.setAttribute("aria-hidden","true");for(let o of ia[e]){let r=document.createElementNS("http://www.w3.org/2000/svg","path");r.setAttribute("d",o),n.append(r)}return t.append(n),t}function la(e){return typeof e=="function"}function ca(e){return typeof e=="function"}function ua(e){e.effect(()=>Sr(),"dsh-automation: styles"),e.effect(()=>e.locale.register(Te,{zh:Vo,en:Ko}),"dsh-automation: locale");let t=e.locale.bind(Te),n=e.locale.bind("permission.access"),o=e.locale.bind("model"),r=Fo(e.connection.rpc),a=async()=>{let p=await tt(e);return p===void 0?void 0:(await et(e,p),(await r.registerWorkspace(p)).id)},l=Nt(e,{callApi:async(p,u)=>{let w=Pe(`/api/michengai/dsh-automation${p}`),y=Object.assign({"x-michengai-client":"1"},u?.headers),h=await fetch(w,{...u,headers:y}),b=await h.json();if(!h.ok)throw new Error(b?.error??"request failed");return b},renderPanel:p=>(0,ae.createElement)(en,{t,permissionT:p.permissionT??n,modelT:p.modelT??o,runtime:r,addWorkspace:a,...p.close===void 0?{}:{closeSettings:p.close}}),ns:Te,injectProps:()=>({createWorkspace:p=>et(e,p.path),pickDirectory:()=>tt(e),permissionT:n,modelT:o}),onOnlineUpdateChange:()=>{typeof window<"u"&&window.dispatchEvent(new CustomEvent(Tt))}});e.effect(()=>()=>l.destroy(),"dsh-automation: sidebar entry"),e.effect(()=>Or({endpoint:"/api/michengai/dsh-automation/update",packageName:"@michengai/dsh-automation",titleRowSelector:".dsh-st-heading-row",linksSelector:".dsh-st-heading-links",zhName:"\u5B9A\u65F6\u4EFB\u52A1",enName:"Scheduled tasks",createIcon:da,isEnabled:()=>l.isOnlineUpdateEnabled()}),"dsh-automation: plugin update ui");let d=p=>{Xt(p),cn([t("tab"),"Scheduled tasks","\u5B9A\u65F6\u4EFB\u52A1"],()=>{Xt(p)},()=>{ut(window.sessionStorage)})},i=()=>{Qt(),cn([t("tab"),"Scheduled tasks","\u5B9A\u65F6\u4EFB\u52A1"],()=>{Qt()},()=>{mt(window.sessionStorage)})};e.effect(()=>Uo(r,()=>e.sessions),"dsh-automation: session sync"),e.effect(()=>Ar(()=>[t("tab"),"Scheduled tasks","\u5B9A\u65F6\u4EFB\u52A1"],()=>Me(ce,16)),"dsh-automation: settings icon"),e.slots.inject("sidebar.session.row.leading",()=>e.slots.register({name:"sidebar.session.row.leading",id:"dsh-automation-session-clock",order:20},function(u){let w=(0,ae.useSyncExternalStore)(r.source.subscribe,()=>r.source.getSnapshot().snapshot?.runs,()=>{}),y=(0,ae.useMemo)(()=>Le(w),[w]);return u.sessionId===void 0||!y.has(u.sessionId)?null:(0,ae.createElement)("span",{className:"dsh-st-session-clock","aria-hidden":"true"},(0,ae.createElement)(ce,{size:16}))})),e.slots.inject("settings.section",()=>e.slots.register({name:"settings.section",id:"scheduled-tasks",order:35,locale:Te,label:()=>t("tab"),icon:"schedule",inject:()=>({createWorkspace:p=>et(e,p.path),pickDirectory:()=>tt(e),permissionT:n,modelT:o})},function(u){return(0,ae.createElement)(en,{t,permissionT:n,modelT:o,runtime:r,...u.close===void 0?{}:{closeSettings:u.close},addWorkspace:a})})),e.slots.inject("sidebar.schedule",()=>e.slots.register({name:"sidebar.schedule",id:"dsh-automation-schedule-overview",order:10,locale:Te,inject:()=>({openTaskSettings:d,openCreateTask:i})},function(u){let w=(0,ae.useSyncExternalStore)(r.source.subscribe,r.source.getSnapshot,r.source.getSnapshot);return(0,ae.createElement)(yt,{t,automations:w.snapshot?.automations??[],...w.snapshot?.serverNow===void 0?{}:{serverNow:w.snapshot.serverNow},openTaskSettings:u.openTaskSettings??d,openCreateTask:u.openCreateTask??i,onToggleAutomation:(y,h)=>r.mutateAutomation(y,h)})})),e.slots.inject("sidebar.workspaces",()=>{let p,u,w,y,h,b=()=>{},f=()=>{},k=!1,g,T=()=>{queueMicrotask(()=>window.dispatchEvent(new Event("dsh-native-sidebar-change")))},A=()=>{g!==void 0&&(window.clearInterval(g),g=void 0)},D=()=>{if(A(),b(),b=()=>{},f(),f=()=>{},h=void 0,p!==void 0){u!==void 0&&p.component===w&&(p.component=u);let q=p;q.__dshNativeTabs===y&&delete q.__dshNativeTabs,T()}p=void 0,u=void 0,w=void 0,y=void 0},R=q=>!Array.isArray(q.sessionOpeners)||typeof q.addSessionOpener!="function"?()=>{}:q.sessionOpeners.some(H=>H.id==="automation")?()=>{}:q.addSessionOpener({id:"automation",order:10,matchSession:H=>H.startsWith(Ie)?!0:r.source.getSnapshot().snapshot?.runs?.some(X=>X.sessionId===H)===!0,open:(H,O)=>{hn(e,r,O)(H)}}),W=q=>{let H=er(q);return H===void 0?!1:(h!==H&&(b(),b=()=>{},f(),f=()=>{},h=H),Array.isArray(H.sessionOpeners)&&!H.sessionOpeners.some(O=>O.id==="automation")&&(f=R(H)),H.getTabs().some(O=>O.id==="schedule")||(b=H.insert({id:"schedule",label:t("sidebar.tab"),order:30,matchSession:O=>O.startsWith(Ie),render:O=>{let X=typeof O.openSession=="function"?O.openSession:typeof O.open=="function"?O.open:void 0,G=hn(e,r,X),M=typeof H.officialTree=="function"?H.officialTree:void 0;return(0,ae.createElement)(ln,{t,runtime:r,...M===void 0?{}:{officialTree:M},hostProps:O,openSession:G,...d===void 0?{}:{openTaskSettings:d},...i===void 0?{}:{openCreateTask:i},...la(O.useSessions)?{useSessions:O.useSessions}:{},...ca(O.useWorkspaces)?{useWorkspaces:O.useWorkspaces}:{},...typeof O.wide=="boolean"?{wide:O.wide}:{}})}})),!0)},K=()=>{let q=gn(e,"sidebar.workspaces");for(let H of q){let O=H;if(W(H)||W(O.component))return!0}return b(),b=()=>{},f(),f=()=>{},h=void 0,!1},z=()=>{if(K()){A();return}if(g!==void 0)return;let q=0;g=window.setInterval(()=>{q+=1,(K()||q>=20)&&A()},250)},x=()=>{if(!k){k=!0;try{let de=function(L){let le=hn(e,r,L.openSession??L.open);return(0,ae.createElement)(yr,{t,runtime:r,hostProps:L,openSession:le,openTaskSettings:d,openCreateTask:i,tabRegistry:M,...L.wide===void 0?{}:{wide:L.wide},...L.useSessions===void 0?{}:{useSessions:L.useSessions},...L.useWorkspaces===void 0?{}:{useWorkspaces:L.useWorkspaces},officialTree:ue})};var q=de;if(Yn(gn(e,"sidebar"))){D();return}let H=gn(e,"sidebar.workspaces"),O=H.find(L=>L?.component!==void 0);if(p!==void 0&&(O!==p||O.component!==w)&&D(),O===p&&O?.component===w&&w!==void 0){z();return}if(O===void 0){D();return}if(O.component!==w&&tr(O.component)){z();return}let X=ao(H);if(X?.component===void 0)return;let G=so(X.component);if(G===void 0)return;u=G;let M=Jo(u);y=M,tn(X,M);let Y=de;Y.displayName="DshNativeTabWorkspaceShell",Y.__dshNativeTabHost=!0,Y.__dshNativeTabWrapped=!0,Y.__dshNativeTabOriginal=u,Y.__dshNativeTabOwner="automation",Y.__dshAutomationWrapped=!0,Y.__dshAutomationOriginal=u;let ue=u;tn(Y,M),X.component=Y,w=Y,p=X,z(),T()}catch(H){console.warn("[dsh-automation] \u5305\u88F9\u5B98\u65B9\u4EFB\u52A1\u6811\u5931\u8D25",H)}finally{k=!1}}};x();let F=typeof e.slots.subscribe=="function"?e.slots.subscribe("sidebar.workspaces",x):()=>{},ne=e.slots.subscribe?.("sidebar",x)??(()=>{});return window.addEventListener("dsh-native-sidebar-change",x),z(),()=>{F(),ne(),window.removeEventListener("dsh-native-sidebar-change",x),D()}}),e.slots.inject("conversation.input.left",()=>e.slots.register({name:"conversation.input.left",id:"dsh-automation-prefill",order:80,locale:Te},pa))}function hn(e,t,n){let o;return r=>{let a=o??=eo(e);oo({id:r,adopt:s=>t.adoptSession(s),listed:s=>{let l=e.sessions?.list?.getSnapshot();return(l?.ids??[]).includes(s)||l?.byId?.[s]!==void 0},...e.sessions?.refresh===void 0?{}:{refresh:()=>e.sessions.refresh()},...to(a)?{openRuntime:s=>{no(a,s)}}:{},...n===void 0?{}:{openHost:n}})}}function pa(e){return(0,ae.useEffect)(()=>{let t=n=>{if(!(n===null||n==="")){if(e.inputActions!==void 0){e.inputActions.setDraft(n),$t();return}Do(n)&&$t()}};return t(Po()),_o(t)},[e.inputActions]),null}function gn(e,t){try{return(e.slots.entriesOfSlot??e.slots.entries)?.call(e.slots,t)??[]}catch{return[]}}
182
193
  return module.exports; } });
183
194
  //# sourceMappingURL=client.js.map