@xopcai/xopc 0.0.132 → 0.0.133

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (106) hide show
  1. package/dist/browser-ext/manifest.json +1 -1
  2. package/dist/extensions/telegram/xopc.extension.json +1 -1
  3. package/dist/gateway/static/root/assets/{agent-avatar-dicebear-CnZIdUyv.js → agent-avatar-dicebear-Ab81VpCx.js} +1 -1
  4. package/dist/gateway/static/root/assets/{agents-C-rdLOrb.js → agents-HCGFJG8I.js} +1 -1
  5. package/dist/gateway/static/root/assets/{app-management-settings-panel-BcvaXb7T.js → app-management-settings-panel-DMI_sbnc.js} +1 -1
  6. package/dist/gateway/static/root/assets/{appearance-settings-CuxzNz-I.js → appearance-settings-oQiCWQIQ.js} +1 -1
  7. package/dist/gateway/static/root/assets/{apps-page-_VJm0o44.js → apps-page-CRYuPIdb.js} +1 -1
  8. package/dist/gateway/static/root/assets/{archive-plugin-CcXXh0X9.js → archive-plugin-BaKuWJws.js} +1 -1
  9. package/dist/gateway/static/root/assets/{attachment-load-BYhYBw17.js → attachment-load-DYCFtbAA.js} +1 -1
  10. package/dist/gateway/static/root/assets/{automation-suggestion-card-ByjDtlOw.js → automation-suggestion-card-C6ZIz_B1.js} +1 -1
  11. package/dist/gateway/static/root/assets/{automations-page-DUFct5t3.js → automations-page-DjbtV2VP.js} +1 -1
  12. package/dist/gateway/static/root/assets/{binary-plugins-B1A5KhWX.js → binary-plugins-Bdg1hfhV.js} +1 -1
  13. package/dist/gateway/static/root/assets/{block-editor-DWpXiVTf.js → block-editor-CEgvbzpG.js} +1 -1
  14. package/dist/gateway/static/root/assets/{browser-settings-page-Cff75b5Z.js → browser-settings-page-KcwlS_iE.js} +1 -1
  15. package/dist/gateway/static/root/assets/{capability-presets-api-DFWL6PJ0.js → capability-presets-api-CC3vmrm5.js} +1 -1
  16. package/dist/gateway/static/root/assets/{capability-presets-settings-panel-CBT89nI-.js → capability-presets-settings-panel-Di4uiKbv.js} +1 -1
  17. package/dist/gateway/static/root/assets/{channels-settings-DHBjZ2fa.js → channels-settings-DMa0BEWf.js} +1 -1
  18. package/dist/gateway/static/root/assets/{connectors-page-B4CGNErH.js → connectors-page-DIZKYaMj.js} +1 -1
  19. package/dist/gateway/static/root/assets/{desktop-pet-CDD29oYv.js → desktop-pet-CNnlqbkx.js} +1 -1
  20. package/dist/gateway/static/root/assets/{desktop-pet-settings-CEkfvSnb.js → desktop-pet-settings-ukJCc0LA.js} +1 -1
  21. package/dist/gateway/static/root/assets/{directory-picker-path-field-JbVQ2_md.js → directory-picker-path-field-8hoieEyt.js} +1 -1
  22. package/dist/gateway/static/root/assets/{dreaming-settings-C-fzh8SN.js → dreaming-settings-BOrBSNLL.js} +1 -1
  23. package/dist/gateway/static/root/assets/{extension-debug-page-B4jZ0Yim.js → extension-debug-page-D6Jc0hYZ.js} +1 -1
  24. package/dist/gateway/static/root/assets/{extension-page-Bi0GmOZ2.js → extension-page-CJMhBASX.js} +1 -1
  25. package/dist/gateway/static/root/assets/{extension-settings-page-BJpxz8Dq.js → extension-settings-page-Dt-FWyMN.js} +1 -1
  26. package/dist/gateway/static/root/assets/{gateway-config-api-Ci1tJtJ4.js → gateway-config-api-CyYi-a3k.js} +1 -1
  27. package/dist/gateway/static/root/assets/{gateway-settings-C-YBJHLX.js → gateway-settings-yJvCmOBC.js} +1 -1
  28. package/dist/gateway/static/root/assets/{goal-create-dialog-DhfNsglx.js → goal-create-dialog-B3PLFUAl.js} +1 -1
  29. package/dist/gateway/static/root/assets/{goal-detail-page-9WeYgD-u.js → goal-detail-page-BQXW29kk.js} +1 -1
  30. package/dist/gateway/static/root/assets/{goals-config-api-DRJGqa_W.js → goals-config-api-FU_bdYvR.js} +1 -1
  31. package/dist/gateway/static/root/assets/{goals-page-DXEQqzEX.js → goals-page-BmppU6mC.js} +1 -1
  32. package/dist/gateway/static/root/assets/{goals-settings-5pFGRkD6.js → goals-settings-BsXWV6CN.js} +1 -1
  33. package/dist/gateway/static/root/assets/{heartbeat-settings-CGX78-fM.js → heartbeat-settings-BqwSCZLD.js} +1 -1
  34. package/dist/gateway/static/root/assets/index-DXUkWmeK.css +1 -0
  35. package/dist/gateway/static/root/assets/{index-BjGnv8uJ.js → index-DqFBdoK-.js} +31 -31
  36. package/dist/gateway/static/root/assets/{keyboard-shortcuts-settings-D23eHsli.js → keyboard-shortcuts-settings-D8J0hkTt.js} +1 -1
  37. package/dist/gateway/static/root/assets/{logs-page-jMLLOxWk.js → logs-page-Cr5ptDtc.js} +1 -1
  38. package/dist/gateway/static/root/assets/{markdown-split-Dn7rJV-v.js → markdown-split-w-hIAZ9S.js} +1 -1
  39. package/dist/gateway/static/root/assets/{media-plugins-DOnTRGyE.js → media-plugins-DjFnDy3R.js} +1 -1
  40. package/dist/gateway/static/root/assets/{models-hub-panel-Br6l-Di9.js → models-hub-panel-DEsMnITi.js} +1 -1
  41. package/dist/gateway/static/root/assets/{notes-page-BiXfX1he.js → notes-page-D7bHXaeR.js} +1 -1
  42. package/dist/gateway/static/root/assets/{notes-workbench-DjaTvXj3.js → notes-workbench-DiuG4Ov7.js} +2 -2
  43. package/dist/gateway/static/root/assets/{page-tabs-CYEVap7D.js → page-tabs-smjfSAwc.js} +1 -1
  44. package/dist/gateway/static/root/assets/{preview-open-alternatives-Dk7Cjd6E.js → preview-open-alternatives-v02THugE.js} +1 -1
  45. package/dist/gateway/static/root/assets/{project-detail-page-B6UccBNl.js → project-detail-page-Us3zDRE6.js} +1 -1
  46. package/dist/gateway/static/root/assets/{projects-page-B56s8p-Q.js → projects-page-BcvW8R0Z.js} +1 -1
  47. package/dist/gateway/static/root/assets/{remote-access-hub-D3ekwIaB.js → remote-access-hub-Bun2k0V-.js} +1 -1
  48. package/dist/gateway/static/root/assets/{save-bar-controls-D7FzAPOc.js → save-bar-controls-CD7LPbLU.js} +1 -1
  49. package/dist/gateway/static/root/assets/{schedule-field-BZP1-U9M.js → schedule-field-Cf3p_M0z.js} +1 -1
  50. package/dist/gateway/static/root/assets/{schema-form-1NNFTrvK.js → schema-form-D8XdvcNH.js} +1 -1
  51. package/dist/gateway/static/root/assets/{sessions-page-08vT4R9X.js → sessions-page-Bh44TVld.js} +1 -1
  52. package/dist/gateway/static/root/assets/settings-advanced-gate-BhyLZ0IW.js +1 -0
  53. package/dist/gateway/static/root/assets/{settings-collapsible-section-CX5IUGk1.js → settings-collapsible-section-BVpPSgMs.js} +1 -1
  54. package/dist/gateway/static/root/assets/{settings-form-section-a71ujXN4.js → settings-form-section-GAwBG9Vp.js} +1 -1
  55. package/dist/gateway/static/root/assets/{settings-loading-skeleton-D4mq628A.js → settings-loading-skeleton-CGxa3aCb.js} +1 -1
  56. package/dist/gateway/static/root/assets/{settings-page-DSQWZsZt.js → settings-page-bZKl6uRR.js} +1 -1
  57. package/dist/gateway/static/root/assets/{settings-page-layout-BG-k3_CF.js → settings-page-layout-DfbMLJgN.js} +1 -1
  58. package/dist/gateway/static/root/assets/{setup-status-panel-CFBgxLKm.js → setup-status-panel-DBIruh16.js} +1 -1
  59. package/dist/gateway/static/root/assets/{share-preview-page-Cz4X3Vcf.js → share-preview-page-BglBMvA0.js} +1 -1
  60. package/dist/gateway/static/root/assets/{shares-settings-BHjEkA9t.js → shares-settings-C0fR-Oto.js} +1 -1
  61. package/dist/gateway/static/root/assets/skill-reload-api-BG-FEo9B.js +1 -0
  62. package/dist/gateway/static/root/assets/{skills-page-C0KVNC0o.js → skills-page-CwwZOoCH.js} +1 -1
  63. package/dist/gateway/static/root/assets/{system-settings-panel-Bo9mLewC.js → system-settings-panel-CTT0BkbS.js} +1 -1
  64. package/dist/gateway/static/root/assets/{typed-models-lib-Bp6wXydR.js → typed-models-lib-Fa9PjI0-.js} +1 -1
  65. package/dist/gateway/static/root/assets/{user-profile-settings-panel-NcG1KFUf.js → user-profile-settings-panel-pCK-aMqu.js} +1 -1
  66. package/dist/gateway/static/root/assets/{utils-BNtcPshb.js → utils-aleluS3U.js} +1 -1
  67. package/dist/gateway/static/root/assets/{voice-api-key-field-ByppRAVD.js → voice-api-key-field-Fh4mqUIK.js} +1 -1
  68. package/dist/gateway/static/root/assets/{work-item-detail-page-5wdg0Xmy.js → work-item-detail-page-C0_3nId3.js} +1 -1
  69. package/dist/gateway/static/root/assets/{workflow-run-setup-panel-eKBZIV-N.js → workflow-run-setup-panel-r969H1r2.js} +1 -1
  70. package/dist/gateway/static/root/assets/{workflow-start-dialog-B6qfU5GE.js → workflow-start-dialog-C1GbcWN0.js} +1 -1
  71. package/dist/gateway/static/root/assets/{workflows-page-BtLILZtw.js → workflows-page-DsPM3HEI.js} +1 -1
  72. package/dist/gateway/static/root/index.html +2 -2
  73. package/dist/package.js +1 -1
  74. package/dist/src/agent/image/tool-model-config.js +5 -5
  75. package/dist/src/agent/image/tool-model-config.js.map +1 -1
  76. package/dist/src/agent/transcript/thinking-types.js +2 -0
  77. package/dist/src/agent/transcript/thinking-types.js.map +1 -1
  78. package/dist/src/auth/oauth/google-oauth/google-gemini-cli.d.ts +1 -1
  79. package/dist/src/auth/oauth/google-oauth/google-gemini-cli.js.map +1 -1
  80. package/dist/src/chat-commands/builtins/model.js +3 -3
  81. package/dist/src/chat-commands/builtins/model.js.map +1 -1
  82. package/dist/src/cli/commands/models.js +9 -0
  83. package/dist/src/cli/commands/models.js.map +1 -1
  84. package/dist/src/config/agent-profile.js +1 -1
  85. package/dist/src/gateway/agents-admin.js +1 -1
  86. package/dist/src/gateway/hono/routes/status.js +2 -2
  87. package/dist/src/gateway/hono/routes/status.js.map +1 -1
  88. package/dist/src/gateway/hono/routes/voice.js +1 -1
  89. package/dist/src/gateway/hono/routes/voice.js.map +1 -1
  90. package/dist/src/providers/domestic-presets.d.ts +5 -15
  91. package/dist/src/providers/domestic-presets.js +31 -49
  92. package/dist/src/providers/domestic-presets.js.map +1 -1
  93. package/dist/src/providers/index.js +19 -5
  94. package/dist/src/providers/index.js.map +1 -1
  95. package/dist/src/providers/model-registry.js.map +1 -1
  96. package/dist/src/providers/model-supplements.d.ts +6 -0
  97. package/dist/src/providers/model-supplements.js +22 -0
  98. package/dist/src/providers/model-supplements.js.map +1 -0
  99. package/dist/src/providers/presentation.js +25 -26
  100. package/dist/src/providers/presentation.js.map +1 -1
  101. package/dist/src/voice/tts/summarize.js +1 -1
  102. package/dist/src/voice/tts/summarize.js.map +1 -1
  103. package/package.json +5 -5
  104. package/dist/gateway/static/root/assets/index-W4ogAiHt.css +0 -1
  105. package/dist/gateway/static/root/assets/settings-advanced-gate-IsaFJ6ZC.js +0 -1
  106. package/dist/gateway/static/root/assets/skill-reload-api-CfHG_ekm.js +0 -1
@@ -1 +1 @@
1
- import{i as e}from"./rolldown-runtime-aKtaBQYM.js";import{a as t,n,t as r}from"./vendor-react-BOUWij0V.js";import{t as i}from"./cn-BQ_8x0bT.js";import{a,n as o,o as s}from"./fetch-6HXXdO77.js";import{o as c}from"./vendor-swr-BIWyz7Rc.js";import{$a as l,Co as u,Dc as d,Gt as f,Us as p,Wt as m,ds as h,ln as g,ma as _,pa as v,po as y,tl as b,to as x,wo as ee,xl as te}from"./index-BjGnv8uJ.js";var S=`/api/image/providers`;async function C(){return(await o(s(`/api/image/providers`)))?.payload?.providers??[]}var w=e(t(),1),ne=n();function T(){return{apiKey:``,region:``,baseUrl:``,imageBaseUrl:``}}function re(e){return e?.apiKey?`••••••••••••`:``}function E(e,t){let n=(()=>{if(!e||typeof e!=`object`||!(`providersConfig`in e))return;let t=e.providersConfig;if(!(!t||typeof t!=`object`||Array.isArray(t)))return t})(),r={};for(let e of t){let t=n?.[e];r[e]={apiKey:re(t),region:t?.region??``,baseUrl:t?.baseUrl??``,imageBaseUrl:t?.imageBaseUrl??``}}return r}function D(e,t,n){let r=e[n].trim();if(r!==t[n].trim())return r||null}function O(e,t){let n=e.trim(),r=t.trim();if(n!==r&&!(g(n)&&g(r)))return n||(r?null:void 0)}function ie(e,t,n){let r={};for(let i of e){let e=t[i]??T(),a=n[i]??T();if(JSON.stringify(e)===JSON.stringify(a))continue;let o={},s=O(e.apiKey,a.apiKey);s!==void 0&&(o.apiKey=s);let c=D(e,a,`region`);c!==void 0&&(o.region=c);let l=D(e,a,`baseUrl`);l!==void 0&&(o.baseUrl=l);let u=D(e,a,`imageBaseUrl`);u!==void 0&&(o.imageBaseUrl=u),Object.keys(o).length>0&&(r[i]=o)}return r}async function k(e){let t=await o(s(`/api/image/providers/${encodeURIComponent(e)}/reveal-api-key`),{method:`POST`,headers:{"Content-Type":`application/json`},body:`{}`});if(!t.ok||!t.payload)throw Error(t.error?.message??`Reveal failed`);return t.payload}async function ae(e){Object.keys(e).length!==0&&(await o(s(`/api/config`),{method:`PATCH`,body:JSON.stringify({providersConfig:e})}),await v())}var A=r();function oe(e){let t=(0,ne.c)(18),{providerId:n,value:r,onChange:i,labels:a,apiKeyLinks:o,apiKeyLinkLabels:s}=e,c;t[0]===n?c=t[1]:(c=()=>k(n).then(j),t[0]=n,t[1]=c);let l=c,u=`img-cred-key-${n}`,p;t[2]!==a.apiKeyLabel||t[3]!==u?(p=(0,A.jsx)(`label`,{className:`text-xs font-medium text-fg-muted`,htmlFor:u,children:a.apiKeyLabel}),t[2]=a.apiKeyLabel,t[3]=u,t[4]=p):p=t[4];let m;t[5]!==s||t[6]!==o?(m=o.length>0?(0,A.jsx)(`div`,{className:`flex flex-col gap-1`,children:o.map(e=>(0,A.jsxs)(`a`,{href:e.href,target:`_blank`,rel:`noopener noreferrer`,className:`inline-flex w-fit items-center gap-1 text-xs font-medium text-accent-fg hover:underline focus-visible:outline-none focus-visible:ring-2 focus-visible:ring-accent`,children:[f(e.kind,s),(0,A.jsx)(d,{className:`size-3`,"aria-hidden":!0})]},`${e.kind}-${e.href}`))}):null,t[5]=s,t[6]=o,t[7]=m):m=t[7];let h=`img-cred-key-${n}`,g;t[8]!==a||t[9]!==i||t[10]!==l||t[11]!==h||t[12]!==r?(g=(0,A.jsx)(y,{id:h,value:r,onChange:i,placeholder:a.optionalPlaceholder,labels:a,reveal:l,loadFailedLabel:a.loadFailed,maskedHelp:a.maskedHelp,notInConfigFile:a.notInConfigFile}),t[8]=a,t[9]=i,t[10]=l,t[11]=h,t[12]=r,t[13]=g):g=t[13];let _;return t[14]!==p||t[15]!==m||t[16]!==g?(_=(0,A.jsxs)(`div`,{className:`flex min-w-0 flex-col gap-1 sm:col-span-2`,children:[p,m,g]}),t[14]=p,t[15]=m,t[16]=g,t[17]=_):_=t[17],_}function j(e){return e.apiKey??null}function M(){return i(`w-full rounded-lg border border-edge bg-surface-panel px-3 py-2 text-sm text-fg`,`placeholder:text-fg-subtle`,u)}function se(){return i(M(),`appearance-none bg-[length:1rem] bg-[right_0.5rem_center] bg-no-repeat pr-9`)}var N=`__custom__`;function ce(e,t){if(!e.region.trim()&&!e.imageBaseUrl.trim())return``;let n=e.region.trim().toLowerCase();return t.some(e=>e.value===n)?n:N}function le(e,t){let n=e.baseUrl.trim().replace(/\/+$/,``);if(!n)return``;let r=t.map(e=>e.value.replace(/\/+$/,``)).indexOf(n);return r>=0?t[r].value:N}function ue(e,t,n){return t===`beijing`?e.dashscopeRegion_beijing:t===`singapore`?e.dashscopeRegion_singapore:t===`us`?e.dashscopeRegion_us:n}function de(e,t){return t===`minimax`?e.minimaxClusterLabel:t===`fal`?e.falQueueBaseLabel:e.baseUrlLabel}function fe(e,t){return t===`minimax`?e.minimaxClusterHint:t===`fal`?e.falQueueBaseHint:null}function pe(e,t){return JSON.stringify(e)!==JSON.stringify(t)}function me(e,t){return t===1?e.modelCountOne:e.modelCountMany.replace(`{count}`,String(t))}function P(e){let t=(0,ne.c)(76),{summaries:n,credDraft:r,credBaseline:a,credDirty:o,credSaving:s,credError:c,credSavedFlash:u,credNoopFlash:f,updateCredRow:g,onDiscardCredentials:_,onSaveCredentials:v,extensionIds:y,showExtensionLinks:S,showImageModelsLink:C,hideActions:re,language:E,apiKeyLinkLabels:D,messages:O}=e,ie=re===void 0?!1:re,k;t[0]===n?k=t[1]:(k=n.some(ye),t[0]=n,t[1]=k);let ae=k,j;t[2]===n?j=t[3]:(j=n.some(ve),t[2]=n,t[3]=j);let P=j,[F,be]=(0,w.useState)(_e),[I,L]=(0,w.useState)(ge),R;if(t[4]!==a||t[5]!==r||t[6]!==n){R=new Set;for(let e of n)pe(r[e.id]??T(),a[e.id]??T())&&R.add(e.id);t[4]=a,t[5]=r,t[6]=n,t[7]=R}else R=t[7];let z=R,B;t[8]!==z||t[9]!==I||t[10]!==F?(B=e=>I.has(e)?!1:F.has(e)?!0:z.has(e),t[8]=z,t[9]=I,t[10]=F,t[11]=B):B=t[11];let V=B,H;t[12]===V?H=t[13]:(H=e=>{if(V(e)){L(t=>new Set(t).add(e)),be(t=>{let n=new Set(t);return n.delete(e),n});return}L(t=>{let n=new Set(t);return n.delete(e),n}),be(t=>new Set(t).add(e))},t[12]=V,t[13]=H);let U=H;if(n.length===0)return null;let W;t[14]===O.credentialsIntro?W=t[15]:(W=(0,A.jsx)(`p`,{children:O.credentialsIntro}),t[14]=O.credentialsIntro,t[15]=W);let G;t[16]!==ae||t[17]!==O.regionHint?(G=ae?(0,A.jsx)(`p`,{className:`text-fg-subtle`,children:O.regionHint}):null,t[16]=ae,t[17]=O.regionHint,t[18]=G):G=t[18];let K;t[19]!==P||t[20]!==O.endpointPresetsHint?(K=P?(0,A.jsx)(`p`,{className:`text-fg-subtle`,children:O.endpointPresetsHint}):null,t[19]=P,t[20]=O.endpointPresetsHint,t[21]=K):K=t[21];let q;t[22]!==C||t[23]!==O.imageModelsLinkTitle||t[24]!==O.openImageModelsPage?(q=C?(0,A.jsx)(`p`,{children:(0,A.jsx)(te,{to:`/settings/credentials?tab=image-models`,className:`font-medium text-accent hover:underline`,title:O.imageModelsLinkTitle,children:O.openImageModelsPage})}):null,t[22]=C,t[23]=O.imageModelsLinkTitle,t[24]=O.openImageModelsPage,t[25]=q):q=t[25];let J;t[26]!==W||t[27]!==G||t[28]!==K||t[29]!==q?(J=(0,A.jsxs)(`div`,{className:`flex flex-col gap-1 text-xs leading-relaxed text-fg-muted`,children:[W,G,K,q]}),t[26]=W,t[27]=G,t[28]=K,t[29]=q,t[30]=J):J=t[30];let Y;t[31]===c?Y=t[32]:(Y=c?(0,A.jsx)(`div`,{className:`rounded-lg border border-red-500/30 bg-red-500/10 px-3 py-2 text-sm text-red-700 dark:text-red-300`,children:c}):null,t[31]=c,t[32]=Y);let X;t[33]!==o||t[34]!==f||t[35]!==u||t[36]!==s||t[37]!==ie||t[38]!==_||t[39]!==v||t[40]!==O.credentialsNothingToSave||t[41]!==O.credentialsSaved||t[42]!==O.discardCredentials||t[43]!==O.saveCredentials||t[44]!==O.savingCredentials?(X=ie?null:(0,A.jsxs)(`div`,{className:`flex flex-wrap items-center justify-end gap-2`,children:[u?(0,A.jsx)(`span`,{className:`text-sm text-fg-muted`,children:O.credentialsSaved}):null,f?(0,A.jsx)(`span`,{className:`text-sm text-fg-muted`,children:O.credentialsNothingToSave}):null,(0,A.jsx)(ee,{type:`button`,variant:`secondary`,onClick:_,disabled:!o||s,children:O.discardCredentials}),(0,A.jsx)(ee,{type:`button`,variant:`primary`,onClick:v,disabled:!o||s,children:s?(0,A.jsxs)(A.Fragment,{children:[(0,A.jsx)(p,{className:`size-3.5 animate-spin`}),(0,A.jsx)(`span`,{className:`ml-1.5`,children:O.savingCredentials})]}):(0,A.jsxs)(A.Fragment,{children:[(0,A.jsx)(h,{className:`size-3.5`}),(0,A.jsx)(`span`,{className:`ml-1.5`,children:O.saveCredentials})]})})]}),t[33]=o,t[34]=f,t[35]=u,t[36]=s,t[37]=ie,t[38]=_,t[39]=v,t[40]=O.credentialsNothingToSave,t[41]=O.credentialsSaved,t[42]=O.discardCredentials,t[43]=O.saveCredentials,t[44]=O.savingCredentials,t[45]=X):X=t[45];let Z;if(t[46]!==D||t[47]!==a||t[48]!==r||t[49]!==y||t[50]!==V||t[51]!==E||t[52]!==S||t[53]!==n||t[54]!==O||t[55]!==U||t[56]!==g){let e;t[58]!==D||t[59]!==a||t[60]!==r||t[61]!==y||t[62]!==V||t[63]!==E||t[64]!==S||t[65]!==O||t[66]!==U||t[67]!==g?(e=e=>{let t=r[e.id]??T(),n=e.ui,o=S&&y.has(e.id)?`/settings/ext/${encodeURIComponent(e.id)}`:null,s=pe(t,a[e.id]??T()),c=V(e.id),u=e.label??e.id,f=me(O,e.models.length);return(0,A.jsxs)(`section`,{className:i(`overflow-hidden rounded-xl bg-surface-panel/80 shadow-surface transition-colors`,s&&`ring-1 ring-accent/50`),children:[(0,A.jsxs)(`button`,{type:`button`,className:`flex w-full items-start justify-between gap-3 px-4 py-3 text-left hover:bg-surface-hover/70`,"aria-expanded":c,"aria-controls":`img-provider-credentials-${e.id}`,onClick:()=>U(e.id),children:[(0,A.jsxs)(`div`,{className:`flex min-w-0 flex-1 flex-col gap-2`,children:[(0,A.jsxs)(`div`,{className:`flex min-w-0 flex-wrap items-center gap-2`,children:[(0,A.jsx)(`span`,{className:`truncate text-sm font-semibold text-fg`,children:u}),(0,A.jsx)(`span`,{className:`rounded-full bg-surface-subtle px-2 py-0.5 text-[11px] font-medium text-fg-muted`,children:e.id}),s?(0,A.jsx)(`span`,{className:`rounded-full bg-accent-soft px-2 py-0.5 text-[11px] font-medium text-accent-fg`,children:O.unsavedChanges}):null,e.configured?(0,A.jsx)(`span`,{className:`rounded-full bg-accent-soft px-2 py-0.5 text-[11px] font-medium text-accent-fg`,children:O.configured}):(0,A.jsx)(`span`,{className:`rounded-full border border-amber-500/40 bg-amber-500/10 px-2 py-0.5 text-[11px] font-medium text-amber-700 dark:text-amber-300`,children:O.missingKey})]}),(0,A.jsxs)(`div`,{className:`flex min-w-0 flex-wrap items-center gap-x-3 gap-y-1 text-xs text-fg-subtle`,children:[(0,A.jsx)(`span`,{children:f}),e.defaultModel?(0,A.jsxs)(`span`,{className:`min-w-0 truncate`,children:[(0,A.jsxs)(`span`,{className:`text-fg-muted`,children:[O.defaultModel,`:`]}),` `,e.id,`/`,e.defaultModel]}):null]})]}),(0,A.jsx)(b,{className:i(`mt-0.5 size-4 shrink-0 text-fg-subtle transition-transform`,c?`rotate-180`:`rotate-0`),"aria-hidden":`true`}),(0,A.jsx)(`span`,{className:`sr-only`,children:c?O.collapseProvider:O.expandProvider})]}),c?(0,A.jsxs)(`div`,{id:`img-provider-credentials-${e.id}`,className:`bg-surface-base/45 px-4 py-4`,children:[o?(0,A.jsxs)(te,{to:o,className:`mb-3 inline-flex items-center gap-1 text-xs font-medium text-accent hover:underline`,title:O.extensionSettingsLinkTitle,children:[(0,A.jsx)(d,{className:`size-3`}),O.openExtensionSettings]}):null,e.models.length>0?(0,A.jsxs)(`p`,{className:`mb-3 text-xs leading-relaxed text-fg-subtle`,children:[(0,A.jsxs)(`span`,{className:`text-fg-muted`,children:[O.modelsLabel,`:`]}),` `,e.models.map(t=>`${e.id}/${t}`).join(`, `)]}):null,(0,A.jsxs)(`div`,{className:`grid gap-3 sm:grid-cols-2`,children:[(0,A.jsx)(oe,{providerId:e.id,value:t.apiKey,onChange:t=>g(e.id,{apiKey:t}),apiKeyLinks:m(e.id,E),apiKeyLinkLabels:D,labels:{apiKeyLabel:O.apiKeyLabel,optionalPlaceholder:O.optionalPlaceholder,maskedHelp:O.apiKeyMaskedHelp,copy:O.apiKeyCopy,copied:O.apiKeyCopied,show:O.apiKeyShow,hide:O.apiKeyHide,notInConfigFile:O.apiKeyNotInConfigFile,loadFailed:O.apiKeyRevealFailed}}),n?.regions?.length?(0,A.jsxs)(`div`,{className:`flex min-w-0 flex-col gap-1 sm:col-span-2`,children:[(0,A.jsx)(`label`,{className:`text-xs font-medium text-fg-muted`,htmlFor:`img-cred-region-preset-${e.id}`,children:O.regionLabel}),(0,A.jsxs)(l,{id:`img-cred-region-preset-${e.id}`,className:se(),value:ce(t,n.regions),onChange:t=>{let r=t.target.value;if(r===``){g(e.id,{region:``,imageBaseUrl:``});return}if(r===N){g(e.id,{region:``,imageBaseUrl:``});return}let i=n.regions.find(e=>e.value===r);i&&g(e.id,{region:i.value,imageBaseUrl:i.imageBaseUrl})},children:[(0,A.jsx)(x,{value:``,children:O.regionPresetDefault}),n.regions.map(e=>(0,A.jsx)(x,{value:e.value,children:ue(O,e.value,e.label)},e.value)),(0,A.jsx)(x,{value:N,children:O.regionPresetCustom})]}),ce(t,n.regions)===N?(0,A.jsxs)(`div`,{className:`mt-2 grid gap-2 sm:grid-cols-2`,children:[(0,A.jsx)(`input`,{type:`text`,className:M(),value:t.region,placeholder:`region`,onChange:t=>g(e.id,{region:t.target.value})}),(0,A.jsx)(`input`,{type:`url`,className:M(),value:t.imageBaseUrl,placeholder:O.imageBaseUrlLabel,onChange:t=>g(e.id,{imageBaseUrl:t.target.value})})]}):null]}):null,n?.baseUrlPresets?.length?(0,A.jsxs)(`div`,{className:`flex min-w-0 flex-col gap-1 sm:col-span-2`,children:[(0,A.jsx)(`label`,{className:`text-xs font-medium text-fg-muted`,htmlFor:`img-cred-base-preset-${e.id}`,children:de(O,n.baseUrlPresetKind)}),fe(O,n.baseUrlPresetKind)?(0,A.jsx)(`p`,{className:`text-[11px] text-fg-subtle`,children:fe(O,n.baseUrlPresetKind)}):null,(0,A.jsxs)(l,{id:`img-cred-base-preset-${e.id}`,className:se(),value:le(t,n.baseUrlPresets),onChange:t=>{let n=t.target.value;if(n===``){g(e.id,{baseUrl:``});return}if(n===N){g(e.id,{baseUrl:``});return}g(e.id,{baseUrl:n.replace(/\/+$/,``)})},children:[(0,A.jsx)(x,{value:``,children:O.baseUrlPresetDefault}),n.baseUrlPresets.map(he),(0,A.jsx)(x,{value:N,children:O.baseUrlPresetCustom})]}),le(t,n.baseUrlPresets)===N?(0,A.jsx)(`input`,{type:`url`,className:i(M(),`mt-2`),value:t.baseUrl,placeholder:`https://…`,onChange:t=>g(e.id,{baseUrl:t.target.value})}):null]}):null,n?.regions?.length&&ce(t,n.regions)!==N?(0,A.jsxs)(`div`,{className:`flex min-w-0 flex-col gap-1 sm:col-span-2`,children:[(0,A.jsx)(`label`,{className:`text-xs font-medium text-fg-muted`,htmlFor:`img-cred-imgbase-ro-${e.id}`,children:O.imageBaseUrlLabel}),(0,A.jsx)(`input`,{id:`img-cred-imgbase-ro-${e.id}`,type:`url`,readOnly:!0,className:i(M(),`cursor-not-allowed opacity-90`),value:t.imageBaseUrl,title:O.imageBaseUrlPresetHint}),(0,A.jsx)(`p`,{className:`text-[11px] text-fg-subtle`,children:O.imageBaseUrlPresetHint})]}):null]})]}):null]},e.id)},t[58]=D,t[59]=a,t[60]=r,t[61]=y,t[62]=V,t[63]=E,t[64]=S,t[65]=O,t[66]=U,t[67]=g,t[68]=e):e=t[68],Z=n.map(e),t[46]=D,t[47]=a,t[48]=r,t[49]=y,t[50]=V,t[51]=E,t[52]=S,t[53]=n,t[54]=O,t[55]=U,t[56]=g,t[57]=Z}else Z=t[57];let Q;t[69]===Z?Q=t[70]:(Q=(0,A.jsx)(`div`,{className:`flex flex-col gap-4`,children:Z}),t[69]=Z,t[70]=Q);let $;return t[71]!==J||t[72]!==Y||t[73]!==X||t[74]!==Q?($=(0,A.jsxs)(`div`,{className:`flex flex-col gap-4`,children:[J,Y,X,Q]}),t[71]=J,t[72]=Y,t[73]=X,t[74]=Q,t[75]=$):$=t[75],$}function he(e){return(0,A.jsx)(x,{value:e.value,children:e.label},e.value)}function ge(){return new Set}function _e(){return new Set}function ve(e){return(e.ui?.baseUrlPresets?.length??0)>0}function ye(e){return(e.ui?.regions?.length??0)>0}function F(e){let t=_(a(e=>!!e.token)),n=t.data,r=(0,w.useMemo)(()=>e.map(e=>e.id),[e]),i=(0,w.useRef)(!1),[o,l]=(0,w.useState)(null),[u,d]=(0,w.useState)(!1),[f,p]=(0,w.useState)(null),[m,h]=(0,w.useState)(!1),[g,v]=(0,w.useState)(!1),y=(0,w.useMemo)(()=>E(n?.payload?.config,r),[n?.payload?.config,r]),b=o??y,x=y;return{gwSwr:t,credDraft:b,credBaseline:x,credDirty:(0,w.useMemo)(()=>JSON.stringify(b)!==JSON.stringify(x),[b,x]),credSaving:u,credError:f,credSavedFlash:m,credNoopFlash:g,updateCredRow:(0,w.useCallback)((e,t)=>{i.current=!0,l(n=>{let r=n??y,i=r[e]??T();return{...r,[e]:{...i,...t}}})},[y]),onDiscardCredentials:(0,w.useCallback)(()=>{i.current=!1,l(null),p(null),h(!1),v(!1)},[]),saveCredentials:(0,w.useCallback)(async e=>{let n=ie(r,b,x);if(Object.keys(n).length===0){v(!0),window.setTimeout(()=>v(!1),2200);return}d(!0),p(null),h(!1);try{await ae(n),await t.mutate?.(),c(s(S)),i.current=!1,l(null),h(!0),window.setTimeout(()=>h(!1),2e3)}catch(t){p(t instanceof Error?t.message:e)}finally{d(!1)}},[r,b,x,t])}}function be(){return{enabled:!1,provider:`alibaba`,alibaba:{model:`paraformer-v2`},openai:{model:`whisper-1`},fallback:{enabled:!0,order:[`alibaba`,`openai`]}}}function I(){return{enabled:!1,provider:`edge`,trigger:`always`,maxTextLength:512,timeoutMs:6e4,alibaba:{model:`qwen-tts`,voice:`Cherry`},openai:{model:`tts-1`,voice:`alloy`},edge:{voice:`en-US-MichelleNeural`},minimax:{model:`speech-2.8-hd`,voice:`male-qn-qingse`},"tts-local-cli":{command:``,outputFormat:`wav`}}}function L(e){return typeof e==`object`&&!!e&&!Array.isArray(e)}function R(e){return typeof e==`string`&&e.trim().length>0?e.trim():`alibaba`}function z(e,t,n){let r=L(e.providers)?e.providers:void 0,i=r&&L(r[t])?r[t]:void 0;return{...n,...i??{}}}function B(e){let t=be();if(!L(e))return t;let n=R(e.provider),r=z(e,`alibaba`,t.alibaba??{}),i=z(e,`openai`,t.openai??{}),a=t.fallback??{enabled:!0,order:[`alibaba`,`openai`]};if(L(e.fallback)){let t=Array.isArray(e.fallback.order)?e.fallback.order.filter(e=>typeof e==`string`&&e.trim().length>0):a.order;a={enabled:typeof e.fallback.enabled==`boolean`?e.fallback.enabled:a.enabled,order:t.length?t:a.order}}let o=L(e.providers)?Object.fromEntries(Object.entries(e.providers).map(([e,t])=>[e,L(t)?{...t}:{}])):void 0;return{enabled:!!e.enabled,provider:n,alibaba:r,openai:i,...o?{providers:o}:{},fallback:a}}function V(e){return typeof e==`string`&&e.trim().length>0?e.trim():`edge`}function H(e){let t=I();if(!L(e))return t;let n=V(e.provider),r=e.trigger===`off`||e.trigger===`always`||e.trigger===`inbound`||e.trigger===`tagged`?e.trigger:`always`,i=t[`tts-local-cli`]??{},a=L(e.providers)?Object.fromEntries(Object.entries(e.providers).map(([e,t])=>[e,L(t)?{...t}:{}])):void 0;return{enabled:!!e.enabled,provider:n,trigger:r,maxTextLength:typeof e.maxTextLength==`number`&&Number.isFinite(e.maxTextLength)?e.maxTextLength:t.maxTextLength,timeoutMs:typeof e.timeoutMs==`number`&&Number.isFinite(e.timeoutMs)?e.timeoutMs:t.timeoutMs,...a?{providers:a}:{},alibaba:z(e,`alibaba`,t.alibaba??{}),openai:z(e,`openai`,t.openai??{}),edge:z(e,`edge`,t.edge??{}),minimax:z(e,`minimax`,t.minimax??{}),"tts-local-cli":z(e,`tts-local-cli`,i)}}function U(e){let{alibaba:t,openai:n,providers:r,...i}=e,a={...r??{}};return t&&(a.alibaba={...a.alibaba??{},...t}),n&&(a.openai={...a.openai??{},...n}),{...i,...Object.keys(a).length>0?{providers:a}:{}}}function W(e){let{alibaba:t,openai:n,edge:r,minimax:i,"tts-local-cli":a,providers:o,...s}=e,c={...o??{}};return t&&(c.alibaba={...c.alibaba??{},...t}),n&&(c.openai={...c.openai??{},...n}),r&&(c.edge={...c.edge??{},...r}),i&&(c.minimax={...c.minimax??{},...i}),a&&(c[`tts-local-cli`]={...c[`tts-local-cli`]??{},...a}),{...s,...Object.keys(c).length>0?{providers:c}:{}}}function G(e){let t=L(e)?e:{};return{stt:B(t.stt),tts:H(t.tts)}}async function K(){return G((await o(s(`/api/config`))).payload?.config??{})}async function q(e){await o(s(`/api/config`),{method:`PATCH`,body:JSON.stringify({stt:U(e.stt),tts:W(e.tts)})}),v()}async function J(){let e=await o(s(`/api/voice/models`));if(!e.payload?.models)throw Error(`Missing voice models payload`);return e.payload.models}async function Y(){let e=await o(s(`/api/voice/providers`));if(!e.payload?.providers)throw Error(`Missing voice providers payload`);return e.payload}async function X(){let e=await o(s(`/api/voice/stt-providers`));if(!e.payload?.providers)throw Error(`Missing STT providers payload`);return e.payload}async function Z(e){let t=await o(s(`/api/voice/tts-test`),{method:`POST`,body:JSON.stringify(e)});if(t.ok===!1){let e=typeof t.error==`string`?t.error:t.error?.message;throw Error(e||`TTS test failed`)}if(!t.payload||typeof t.payload.audio!=`string`||!t.payload.audio.trim())throw Error(`TTS test returned no audio. Check the selected voice engine and try again.`);return t.payload}async function Q(e){let t=await o(s(`/api/voice/reveal-api-key`),{method:`POST`,body:JSON.stringify(e)});if(!t.payload)throw Error(`Missing reveal payload`);return t.payload}function $(e){let t=(0,ne.c)(15),{kind:n,providerId:r,fieldId:a,value:o,onChange:s,labels:c,placeholder:l,className:u}=e,d=l===void 0?`sk-...`:l,f;t[0]!==n||t[1]!==r?(f=()=>Q({kind:n,provider:r}).then(xe),t[0]=n,t[1]=r,t[2]=f):f=t[2];let p=f,m;t[3]===u?m=t[4]:(m=i(`flex min-w-0 flex-col gap-1.5`,u),t[3]=u,t[4]=m);let h;t[5]!==a||t[6]!==c||t[7]!==s||t[8]!==d||t[9]!==p||t[10]!==o?(h=(0,A.jsx)(y,{id:a,value:o,onChange:s,placeholder:d,labels:c,reveal:p,loadFailedLabel:c.loadFailed,maskedHelp:c.maskedHelp,notInConfigFile:c.notInConfigFile,inputClassName:`text-xs`}),t[5]=a,t[6]=c,t[7]=s,t[8]=d,t[9]=p,t[10]=o,t[11]=h):h=t[11];let g;return t[12]!==m||t[13]!==h?(g=(0,A.jsx)(`div`,{className:m,children:h}),t[12]=m,t[13]=h,t[14]=g):g=t[14],g}function xe(e){return e.apiKey??null}export{X as a,Z as c,C as d,S as f,K as i,F as l,J as n,G as o,Y as r,q as s,$ as t,P as u};
1
+ import{i as e}from"./rolldown-runtime-aKtaBQYM.js";import{a as t,n,t as r}from"./vendor-react-BOUWij0V.js";import{t as i}from"./cn-BQ_8x0bT.js";import{a,n as o,o as s}from"./fetch-6HXXdO77.js";import{o as c}from"./vendor-swr-BIWyz7Rc.js";import{$a as l,Co as u,Dc as d,Gt as f,Us as p,Wt as m,ds as h,ln as g,ma as _,pa as v,po as y,tl as b,to as x,wo as ee,xl as te}from"./index-DqFBdoK-.js";var S=`/api/image/providers`;async function C(){return(await o(s(`/api/image/providers`)))?.payload?.providers??[]}var w=e(t(),1),ne=n();function T(){return{apiKey:``,region:``,baseUrl:``,imageBaseUrl:``}}function re(e){return e?.apiKey?`••••••••••••`:``}function E(e,t){let n=(()=>{if(!e||typeof e!=`object`||!(`providersConfig`in e))return;let t=e.providersConfig;if(!(!t||typeof t!=`object`||Array.isArray(t)))return t})(),r={};for(let e of t){let t=n?.[e];r[e]={apiKey:re(t),region:t?.region??``,baseUrl:t?.baseUrl??``,imageBaseUrl:t?.imageBaseUrl??``}}return r}function D(e,t,n){let r=e[n].trim();if(r!==t[n].trim())return r||null}function O(e,t){let n=e.trim(),r=t.trim();if(n!==r&&!(g(n)&&g(r)))return n||(r?null:void 0)}function ie(e,t,n){let r={};for(let i of e){let e=t[i]??T(),a=n[i]??T();if(JSON.stringify(e)===JSON.stringify(a))continue;let o={},s=O(e.apiKey,a.apiKey);s!==void 0&&(o.apiKey=s);let c=D(e,a,`region`);c!==void 0&&(o.region=c);let l=D(e,a,`baseUrl`);l!==void 0&&(o.baseUrl=l);let u=D(e,a,`imageBaseUrl`);u!==void 0&&(o.imageBaseUrl=u),Object.keys(o).length>0&&(r[i]=o)}return r}async function k(e){let t=await o(s(`/api/image/providers/${encodeURIComponent(e)}/reveal-api-key`),{method:`POST`,headers:{"Content-Type":`application/json`},body:`{}`});if(!t.ok||!t.payload)throw Error(t.error?.message??`Reveal failed`);return t.payload}async function ae(e){Object.keys(e).length!==0&&(await o(s(`/api/config`),{method:`PATCH`,body:JSON.stringify({providersConfig:e})}),await v())}var A=r();function oe(e){let t=(0,ne.c)(18),{providerId:n,value:r,onChange:i,labels:a,apiKeyLinks:o,apiKeyLinkLabels:s}=e,c;t[0]===n?c=t[1]:(c=()=>k(n).then(j),t[0]=n,t[1]=c);let l=c,u=`img-cred-key-${n}`,p;t[2]!==a.apiKeyLabel||t[3]!==u?(p=(0,A.jsx)(`label`,{className:`text-xs font-medium text-fg-muted`,htmlFor:u,children:a.apiKeyLabel}),t[2]=a.apiKeyLabel,t[3]=u,t[4]=p):p=t[4];let m;t[5]!==s||t[6]!==o?(m=o.length>0?(0,A.jsx)(`div`,{className:`flex flex-col gap-1`,children:o.map(e=>(0,A.jsxs)(`a`,{href:e.href,target:`_blank`,rel:`noopener noreferrer`,className:`inline-flex w-fit items-center gap-1 text-xs font-medium text-accent-fg hover:underline focus-visible:outline-none focus-visible:ring-2 focus-visible:ring-accent`,children:[f(e.kind,s),(0,A.jsx)(d,{className:`size-3`,"aria-hidden":!0})]},`${e.kind}-${e.href}`))}):null,t[5]=s,t[6]=o,t[7]=m):m=t[7];let h=`img-cred-key-${n}`,g;t[8]!==a||t[9]!==i||t[10]!==l||t[11]!==h||t[12]!==r?(g=(0,A.jsx)(y,{id:h,value:r,onChange:i,placeholder:a.optionalPlaceholder,labels:a,reveal:l,loadFailedLabel:a.loadFailed,maskedHelp:a.maskedHelp,notInConfigFile:a.notInConfigFile}),t[8]=a,t[9]=i,t[10]=l,t[11]=h,t[12]=r,t[13]=g):g=t[13];let _;return t[14]!==p||t[15]!==m||t[16]!==g?(_=(0,A.jsxs)(`div`,{className:`flex min-w-0 flex-col gap-1 sm:col-span-2`,children:[p,m,g]}),t[14]=p,t[15]=m,t[16]=g,t[17]=_):_=t[17],_}function j(e){return e.apiKey??null}function M(){return i(`w-full rounded-lg border border-edge bg-surface-panel px-3 py-2 text-sm text-fg`,`placeholder:text-fg-subtle`,u)}function se(){return i(M(),`appearance-none bg-[length:1rem] bg-[right_0.5rem_center] bg-no-repeat pr-9`)}var N=`__custom__`;function ce(e,t){if(!e.region.trim()&&!e.imageBaseUrl.trim())return``;let n=e.region.trim().toLowerCase();return t.some(e=>e.value===n)?n:N}function le(e,t){let n=e.baseUrl.trim().replace(/\/+$/,``);if(!n)return``;let r=t.map(e=>e.value.replace(/\/+$/,``)).indexOf(n);return r>=0?t[r].value:N}function ue(e,t,n){return t===`beijing`?e.dashscopeRegion_beijing:t===`singapore`?e.dashscopeRegion_singapore:t===`us`?e.dashscopeRegion_us:n}function de(e,t){return t===`minimax`?e.minimaxClusterLabel:t===`fal`?e.falQueueBaseLabel:e.baseUrlLabel}function fe(e,t){return t===`minimax`?e.minimaxClusterHint:t===`fal`?e.falQueueBaseHint:null}function pe(e,t){return JSON.stringify(e)!==JSON.stringify(t)}function me(e,t){return t===1?e.modelCountOne:e.modelCountMany.replace(`{count}`,String(t))}function P(e){let t=(0,ne.c)(76),{summaries:n,credDraft:r,credBaseline:a,credDirty:o,credSaving:s,credError:c,credSavedFlash:u,credNoopFlash:f,updateCredRow:g,onDiscardCredentials:_,onSaveCredentials:v,extensionIds:y,showExtensionLinks:S,showImageModelsLink:C,hideActions:re,language:E,apiKeyLinkLabels:D,messages:O}=e,ie=re===void 0?!1:re,k;t[0]===n?k=t[1]:(k=n.some(ye),t[0]=n,t[1]=k);let ae=k,j;t[2]===n?j=t[3]:(j=n.some(ve),t[2]=n,t[3]=j);let P=j,[F,be]=(0,w.useState)(_e),[I,L]=(0,w.useState)(ge),R;if(t[4]!==a||t[5]!==r||t[6]!==n){R=new Set;for(let e of n)pe(r[e.id]??T(),a[e.id]??T())&&R.add(e.id);t[4]=a,t[5]=r,t[6]=n,t[7]=R}else R=t[7];let z=R,B;t[8]!==z||t[9]!==I||t[10]!==F?(B=e=>I.has(e)?!1:F.has(e)?!0:z.has(e),t[8]=z,t[9]=I,t[10]=F,t[11]=B):B=t[11];let V=B,H;t[12]===V?H=t[13]:(H=e=>{if(V(e)){L(t=>new Set(t).add(e)),be(t=>{let n=new Set(t);return n.delete(e),n});return}L(t=>{let n=new Set(t);return n.delete(e),n}),be(t=>new Set(t).add(e))},t[12]=V,t[13]=H);let U=H;if(n.length===0)return null;let W;t[14]===O.credentialsIntro?W=t[15]:(W=(0,A.jsx)(`p`,{children:O.credentialsIntro}),t[14]=O.credentialsIntro,t[15]=W);let G;t[16]!==ae||t[17]!==O.regionHint?(G=ae?(0,A.jsx)(`p`,{className:`text-fg-subtle`,children:O.regionHint}):null,t[16]=ae,t[17]=O.regionHint,t[18]=G):G=t[18];let K;t[19]!==P||t[20]!==O.endpointPresetsHint?(K=P?(0,A.jsx)(`p`,{className:`text-fg-subtle`,children:O.endpointPresetsHint}):null,t[19]=P,t[20]=O.endpointPresetsHint,t[21]=K):K=t[21];let q;t[22]!==C||t[23]!==O.imageModelsLinkTitle||t[24]!==O.openImageModelsPage?(q=C?(0,A.jsx)(`p`,{children:(0,A.jsx)(te,{to:`/settings/credentials?tab=image-models`,className:`font-medium text-accent hover:underline`,title:O.imageModelsLinkTitle,children:O.openImageModelsPage})}):null,t[22]=C,t[23]=O.imageModelsLinkTitle,t[24]=O.openImageModelsPage,t[25]=q):q=t[25];let J;t[26]!==W||t[27]!==G||t[28]!==K||t[29]!==q?(J=(0,A.jsxs)(`div`,{className:`flex flex-col gap-1 text-xs leading-relaxed text-fg-muted`,children:[W,G,K,q]}),t[26]=W,t[27]=G,t[28]=K,t[29]=q,t[30]=J):J=t[30];let Y;t[31]===c?Y=t[32]:(Y=c?(0,A.jsx)(`div`,{className:`rounded-lg border border-red-500/30 bg-red-500/10 px-3 py-2 text-sm text-red-700 dark:text-red-300`,children:c}):null,t[31]=c,t[32]=Y);let X;t[33]!==o||t[34]!==f||t[35]!==u||t[36]!==s||t[37]!==ie||t[38]!==_||t[39]!==v||t[40]!==O.credentialsNothingToSave||t[41]!==O.credentialsSaved||t[42]!==O.discardCredentials||t[43]!==O.saveCredentials||t[44]!==O.savingCredentials?(X=ie?null:(0,A.jsxs)(`div`,{className:`flex flex-wrap items-center justify-end gap-2`,children:[u?(0,A.jsx)(`span`,{className:`text-sm text-fg-muted`,children:O.credentialsSaved}):null,f?(0,A.jsx)(`span`,{className:`text-sm text-fg-muted`,children:O.credentialsNothingToSave}):null,(0,A.jsx)(ee,{type:`button`,variant:`secondary`,onClick:_,disabled:!o||s,children:O.discardCredentials}),(0,A.jsx)(ee,{type:`button`,variant:`primary`,onClick:v,disabled:!o||s,children:s?(0,A.jsxs)(A.Fragment,{children:[(0,A.jsx)(p,{className:`size-3.5 animate-spin`}),(0,A.jsx)(`span`,{className:`ml-1.5`,children:O.savingCredentials})]}):(0,A.jsxs)(A.Fragment,{children:[(0,A.jsx)(h,{className:`size-3.5`}),(0,A.jsx)(`span`,{className:`ml-1.5`,children:O.saveCredentials})]})})]}),t[33]=o,t[34]=f,t[35]=u,t[36]=s,t[37]=ie,t[38]=_,t[39]=v,t[40]=O.credentialsNothingToSave,t[41]=O.credentialsSaved,t[42]=O.discardCredentials,t[43]=O.saveCredentials,t[44]=O.savingCredentials,t[45]=X):X=t[45];let Z;if(t[46]!==D||t[47]!==a||t[48]!==r||t[49]!==y||t[50]!==V||t[51]!==E||t[52]!==S||t[53]!==n||t[54]!==O||t[55]!==U||t[56]!==g){let e;t[58]!==D||t[59]!==a||t[60]!==r||t[61]!==y||t[62]!==V||t[63]!==E||t[64]!==S||t[65]!==O||t[66]!==U||t[67]!==g?(e=e=>{let t=r[e.id]??T(),n=e.ui,o=S&&y.has(e.id)?`/settings/ext/${encodeURIComponent(e.id)}`:null,s=pe(t,a[e.id]??T()),c=V(e.id),u=e.label??e.id,f=me(O,e.models.length);return(0,A.jsxs)(`section`,{className:i(`overflow-hidden rounded-xl bg-surface-panel/80 shadow-surface transition-colors`,s&&`ring-1 ring-accent/50`),children:[(0,A.jsxs)(`button`,{type:`button`,className:`flex w-full items-start justify-between gap-3 px-4 py-3 text-left hover:bg-surface-hover/70`,"aria-expanded":c,"aria-controls":`img-provider-credentials-${e.id}`,onClick:()=>U(e.id),children:[(0,A.jsxs)(`div`,{className:`flex min-w-0 flex-1 flex-col gap-2`,children:[(0,A.jsxs)(`div`,{className:`flex min-w-0 flex-wrap items-center gap-2`,children:[(0,A.jsx)(`span`,{className:`truncate text-sm font-semibold text-fg`,children:u}),(0,A.jsx)(`span`,{className:`rounded-full bg-surface-subtle px-2 py-0.5 text-[11px] font-medium text-fg-muted`,children:e.id}),s?(0,A.jsx)(`span`,{className:`rounded-full bg-accent-soft px-2 py-0.5 text-[11px] font-medium text-accent-fg`,children:O.unsavedChanges}):null,e.configured?(0,A.jsx)(`span`,{className:`rounded-full bg-accent-soft px-2 py-0.5 text-[11px] font-medium text-accent-fg`,children:O.configured}):(0,A.jsx)(`span`,{className:`rounded-full border border-amber-500/40 bg-amber-500/10 px-2 py-0.5 text-[11px] font-medium text-amber-700 dark:text-amber-300`,children:O.missingKey})]}),(0,A.jsxs)(`div`,{className:`flex min-w-0 flex-wrap items-center gap-x-3 gap-y-1 text-xs text-fg-subtle`,children:[(0,A.jsx)(`span`,{children:f}),e.defaultModel?(0,A.jsxs)(`span`,{className:`min-w-0 truncate`,children:[(0,A.jsxs)(`span`,{className:`text-fg-muted`,children:[O.defaultModel,`:`]}),` `,e.id,`/`,e.defaultModel]}):null]})]}),(0,A.jsx)(b,{className:i(`mt-0.5 size-4 shrink-0 text-fg-subtle transition-transform`,c?`rotate-180`:`rotate-0`),"aria-hidden":`true`}),(0,A.jsx)(`span`,{className:`sr-only`,children:c?O.collapseProvider:O.expandProvider})]}),c?(0,A.jsxs)(`div`,{id:`img-provider-credentials-${e.id}`,className:`bg-surface-base/45 px-4 py-4`,children:[o?(0,A.jsxs)(te,{to:o,className:`mb-3 inline-flex items-center gap-1 text-xs font-medium text-accent hover:underline`,title:O.extensionSettingsLinkTitle,children:[(0,A.jsx)(d,{className:`size-3`}),O.openExtensionSettings]}):null,e.models.length>0?(0,A.jsxs)(`p`,{className:`mb-3 text-xs leading-relaxed text-fg-subtle`,children:[(0,A.jsxs)(`span`,{className:`text-fg-muted`,children:[O.modelsLabel,`:`]}),` `,e.models.map(t=>`${e.id}/${t}`).join(`, `)]}):null,(0,A.jsxs)(`div`,{className:`grid gap-3 sm:grid-cols-2`,children:[(0,A.jsx)(oe,{providerId:e.id,value:t.apiKey,onChange:t=>g(e.id,{apiKey:t}),apiKeyLinks:m(e.id,E),apiKeyLinkLabels:D,labels:{apiKeyLabel:O.apiKeyLabel,optionalPlaceholder:O.optionalPlaceholder,maskedHelp:O.apiKeyMaskedHelp,copy:O.apiKeyCopy,copied:O.apiKeyCopied,show:O.apiKeyShow,hide:O.apiKeyHide,notInConfigFile:O.apiKeyNotInConfigFile,loadFailed:O.apiKeyRevealFailed}}),n?.regions?.length?(0,A.jsxs)(`div`,{className:`flex min-w-0 flex-col gap-1 sm:col-span-2`,children:[(0,A.jsx)(`label`,{className:`text-xs font-medium text-fg-muted`,htmlFor:`img-cred-region-preset-${e.id}`,children:O.regionLabel}),(0,A.jsxs)(l,{id:`img-cred-region-preset-${e.id}`,className:se(),value:ce(t,n.regions),onChange:t=>{let r=t.target.value;if(r===``){g(e.id,{region:``,imageBaseUrl:``});return}if(r===N){g(e.id,{region:``,imageBaseUrl:``});return}let i=n.regions.find(e=>e.value===r);i&&g(e.id,{region:i.value,imageBaseUrl:i.imageBaseUrl})},children:[(0,A.jsx)(x,{value:``,children:O.regionPresetDefault}),n.regions.map(e=>(0,A.jsx)(x,{value:e.value,children:ue(O,e.value,e.label)},e.value)),(0,A.jsx)(x,{value:N,children:O.regionPresetCustom})]}),ce(t,n.regions)===N?(0,A.jsxs)(`div`,{className:`mt-2 grid gap-2 sm:grid-cols-2`,children:[(0,A.jsx)(`input`,{type:`text`,className:M(),value:t.region,placeholder:`region`,onChange:t=>g(e.id,{region:t.target.value})}),(0,A.jsx)(`input`,{type:`url`,className:M(),value:t.imageBaseUrl,placeholder:O.imageBaseUrlLabel,onChange:t=>g(e.id,{imageBaseUrl:t.target.value})})]}):null]}):null,n?.baseUrlPresets?.length?(0,A.jsxs)(`div`,{className:`flex min-w-0 flex-col gap-1 sm:col-span-2`,children:[(0,A.jsx)(`label`,{className:`text-xs font-medium text-fg-muted`,htmlFor:`img-cred-base-preset-${e.id}`,children:de(O,n.baseUrlPresetKind)}),fe(O,n.baseUrlPresetKind)?(0,A.jsx)(`p`,{className:`text-[11px] text-fg-subtle`,children:fe(O,n.baseUrlPresetKind)}):null,(0,A.jsxs)(l,{id:`img-cred-base-preset-${e.id}`,className:se(),value:le(t,n.baseUrlPresets),onChange:t=>{let n=t.target.value;if(n===``){g(e.id,{baseUrl:``});return}if(n===N){g(e.id,{baseUrl:``});return}g(e.id,{baseUrl:n.replace(/\/+$/,``)})},children:[(0,A.jsx)(x,{value:``,children:O.baseUrlPresetDefault}),n.baseUrlPresets.map(he),(0,A.jsx)(x,{value:N,children:O.baseUrlPresetCustom})]}),le(t,n.baseUrlPresets)===N?(0,A.jsx)(`input`,{type:`url`,className:i(M(),`mt-2`),value:t.baseUrl,placeholder:`https://…`,onChange:t=>g(e.id,{baseUrl:t.target.value})}):null]}):null,n?.regions?.length&&ce(t,n.regions)!==N?(0,A.jsxs)(`div`,{className:`flex min-w-0 flex-col gap-1 sm:col-span-2`,children:[(0,A.jsx)(`label`,{className:`text-xs font-medium text-fg-muted`,htmlFor:`img-cred-imgbase-ro-${e.id}`,children:O.imageBaseUrlLabel}),(0,A.jsx)(`input`,{id:`img-cred-imgbase-ro-${e.id}`,type:`url`,readOnly:!0,className:i(M(),`cursor-not-allowed opacity-90`),value:t.imageBaseUrl,title:O.imageBaseUrlPresetHint}),(0,A.jsx)(`p`,{className:`text-[11px] text-fg-subtle`,children:O.imageBaseUrlPresetHint})]}):null]})]}):null]},e.id)},t[58]=D,t[59]=a,t[60]=r,t[61]=y,t[62]=V,t[63]=E,t[64]=S,t[65]=O,t[66]=U,t[67]=g,t[68]=e):e=t[68],Z=n.map(e),t[46]=D,t[47]=a,t[48]=r,t[49]=y,t[50]=V,t[51]=E,t[52]=S,t[53]=n,t[54]=O,t[55]=U,t[56]=g,t[57]=Z}else Z=t[57];let Q;t[69]===Z?Q=t[70]:(Q=(0,A.jsx)(`div`,{className:`flex flex-col gap-4`,children:Z}),t[69]=Z,t[70]=Q);let $;return t[71]!==J||t[72]!==Y||t[73]!==X||t[74]!==Q?($=(0,A.jsxs)(`div`,{className:`flex flex-col gap-4`,children:[J,Y,X,Q]}),t[71]=J,t[72]=Y,t[73]=X,t[74]=Q,t[75]=$):$=t[75],$}function he(e){return(0,A.jsx)(x,{value:e.value,children:e.label},e.value)}function ge(){return new Set}function _e(){return new Set}function ve(e){return(e.ui?.baseUrlPresets?.length??0)>0}function ye(e){return(e.ui?.regions?.length??0)>0}function F(e){let t=_(a(e=>!!e.token)),n=t.data,r=(0,w.useMemo)(()=>e.map(e=>e.id),[e]),i=(0,w.useRef)(!1),[o,l]=(0,w.useState)(null),[u,d]=(0,w.useState)(!1),[f,p]=(0,w.useState)(null),[m,h]=(0,w.useState)(!1),[g,v]=(0,w.useState)(!1),y=(0,w.useMemo)(()=>E(n?.payload?.config,r),[n?.payload?.config,r]),b=o??y,x=y;return{gwSwr:t,credDraft:b,credBaseline:x,credDirty:(0,w.useMemo)(()=>JSON.stringify(b)!==JSON.stringify(x),[b,x]),credSaving:u,credError:f,credSavedFlash:m,credNoopFlash:g,updateCredRow:(0,w.useCallback)((e,t)=>{i.current=!0,l(n=>{let r=n??y,i=r[e]??T();return{...r,[e]:{...i,...t}}})},[y]),onDiscardCredentials:(0,w.useCallback)(()=>{i.current=!1,l(null),p(null),h(!1),v(!1)},[]),saveCredentials:(0,w.useCallback)(async e=>{let n=ie(r,b,x);if(Object.keys(n).length===0){v(!0),window.setTimeout(()=>v(!1),2200);return}d(!0),p(null),h(!1);try{await ae(n),await t.mutate?.(),c(s(S)),i.current=!1,l(null),h(!0),window.setTimeout(()=>h(!1),2e3)}catch(t){p(t instanceof Error?t.message:e)}finally{d(!1)}},[r,b,x,t])}}function be(){return{enabled:!1,provider:`alibaba`,alibaba:{model:`paraformer-v2`},openai:{model:`whisper-1`},fallback:{enabled:!0,order:[`alibaba`,`openai`]}}}function I(){return{enabled:!1,provider:`edge`,trigger:`always`,maxTextLength:512,timeoutMs:6e4,alibaba:{model:`qwen-tts`,voice:`Cherry`},openai:{model:`tts-1`,voice:`alloy`},edge:{voice:`en-US-MichelleNeural`},minimax:{model:`speech-2.8-hd`,voice:`male-qn-qingse`},"tts-local-cli":{command:``,outputFormat:`wav`}}}function L(e){return typeof e==`object`&&!!e&&!Array.isArray(e)}function R(e){return typeof e==`string`&&e.trim().length>0?e.trim():`alibaba`}function z(e,t,n){let r=L(e.providers)?e.providers:void 0,i=r&&L(r[t])?r[t]:void 0;return{...n,...i??{}}}function B(e){let t=be();if(!L(e))return t;let n=R(e.provider),r=z(e,`alibaba`,t.alibaba??{}),i=z(e,`openai`,t.openai??{}),a=t.fallback??{enabled:!0,order:[`alibaba`,`openai`]};if(L(e.fallback)){let t=Array.isArray(e.fallback.order)?e.fallback.order.filter(e=>typeof e==`string`&&e.trim().length>0):a.order;a={enabled:typeof e.fallback.enabled==`boolean`?e.fallback.enabled:a.enabled,order:t.length?t:a.order}}let o=L(e.providers)?Object.fromEntries(Object.entries(e.providers).map(([e,t])=>[e,L(t)?{...t}:{}])):void 0;return{enabled:!!e.enabled,provider:n,alibaba:r,openai:i,...o?{providers:o}:{},fallback:a}}function V(e){return typeof e==`string`&&e.trim().length>0?e.trim():`edge`}function H(e){let t=I();if(!L(e))return t;let n=V(e.provider),r=e.trigger===`off`||e.trigger===`always`||e.trigger===`inbound`||e.trigger===`tagged`?e.trigger:`always`,i=t[`tts-local-cli`]??{},a=L(e.providers)?Object.fromEntries(Object.entries(e.providers).map(([e,t])=>[e,L(t)?{...t}:{}])):void 0;return{enabled:!!e.enabled,provider:n,trigger:r,maxTextLength:typeof e.maxTextLength==`number`&&Number.isFinite(e.maxTextLength)?e.maxTextLength:t.maxTextLength,timeoutMs:typeof e.timeoutMs==`number`&&Number.isFinite(e.timeoutMs)?e.timeoutMs:t.timeoutMs,...a?{providers:a}:{},alibaba:z(e,`alibaba`,t.alibaba??{}),openai:z(e,`openai`,t.openai??{}),edge:z(e,`edge`,t.edge??{}),minimax:z(e,`minimax`,t.minimax??{}),"tts-local-cli":z(e,`tts-local-cli`,i)}}function U(e){let{alibaba:t,openai:n,providers:r,...i}=e,a={...r??{}};return t&&(a.alibaba={...a.alibaba??{},...t}),n&&(a.openai={...a.openai??{},...n}),{...i,...Object.keys(a).length>0?{providers:a}:{}}}function W(e){let{alibaba:t,openai:n,edge:r,minimax:i,"tts-local-cli":a,providers:o,...s}=e,c={...o??{}};return t&&(c.alibaba={...c.alibaba??{},...t}),n&&(c.openai={...c.openai??{},...n}),r&&(c.edge={...c.edge??{},...r}),i&&(c.minimax={...c.minimax??{},...i}),a&&(c[`tts-local-cli`]={...c[`tts-local-cli`]??{},...a}),{...s,...Object.keys(c).length>0?{providers:c}:{}}}function G(e){let t=L(e)?e:{};return{stt:B(t.stt),tts:H(t.tts)}}async function K(){return G((await o(s(`/api/config`))).payload?.config??{})}async function q(e){await o(s(`/api/config`),{method:`PATCH`,body:JSON.stringify({stt:U(e.stt),tts:W(e.tts)})}),v()}async function J(){let e=await o(s(`/api/voice/models`));if(!e.payload?.models)throw Error(`Missing voice models payload`);return e.payload.models}async function Y(){let e=await o(s(`/api/voice/providers`));if(!e.payload?.providers)throw Error(`Missing voice providers payload`);return e.payload}async function X(){let e=await o(s(`/api/voice/stt-providers`));if(!e.payload?.providers)throw Error(`Missing STT providers payload`);return e.payload}async function Z(e){let t=await o(s(`/api/voice/tts-test`),{method:`POST`,body:JSON.stringify(e)});if(t.ok===!1){let e=typeof t.error==`string`?t.error:t.error?.message;throw Error(e||`TTS test failed`)}if(!t.payload||typeof t.payload.audio!=`string`||!t.payload.audio.trim())throw Error(`TTS test returned no audio. Check the selected voice engine and try again.`);return t.payload}async function Q(e){let t=await o(s(`/api/voice/reveal-api-key`),{method:`POST`,body:JSON.stringify(e)});if(!t.payload)throw Error(`Missing reveal payload`);return t.payload}function $(e){let t=(0,ne.c)(15),{kind:n,providerId:r,fieldId:a,value:o,onChange:s,labels:c,placeholder:l,className:u}=e,d=l===void 0?`sk-...`:l,f;t[0]!==n||t[1]!==r?(f=()=>Q({kind:n,provider:r}).then(xe),t[0]=n,t[1]=r,t[2]=f):f=t[2];let p=f,m;t[3]===u?m=t[4]:(m=i(`flex min-w-0 flex-col gap-1.5`,u),t[3]=u,t[4]=m);let h;t[5]!==a||t[6]!==c||t[7]!==s||t[8]!==d||t[9]!==p||t[10]!==o?(h=(0,A.jsx)(y,{id:a,value:o,onChange:s,placeholder:d,labels:c,reveal:p,loadFailedLabel:c.loadFailed,maskedHelp:c.maskedHelp,notInConfigFile:c.notInConfigFile,inputClassName:`text-xs`}),t[5]=a,t[6]=c,t[7]=s,t[8]=d,t[9]=p,t[10]=o,t[11]=h):h=t[11];let g;return t[12]!==m||t[13]!==h?(g=(0,A.jsx)(`div`,{className:m,children:h}),t[12]=m,t[13]=h,t[14]=g):g=t[14],g}function xe(e){return e.apiKey??null}export{X as a,Z as c,C as d,S as f,K as i,F as l,J as n,G as o,Y as r,q as s,$ as t,P as u};
@@ -1 +1 @@
1
- import{i as e}from"./rolldown-runtime-aKtaBQYM.js";import{a as t,n,t as r}from"./vendor-react-BOUWij0V.js";import{t as i}from"./cn-BQ_8x0bT.js";import{t as a}from"./messages-DR9ODkb8.js";import{n as o}from"./locale-store-Ba72bFmP.js";import{Ac as s,Cc as c,Dc as l,Ga as u,Ki as d,Tl as f,Uo as p,Xc as m,a as ee,bs as h,c as g,d as _,f as te,hl as v,i as ne,il as y,ks as b,l as x,ms as S,o as C,wl as re,wo as w,xl as T,zo as E,zs as D}from"./index-BjGnv8uJ.js";var O=n(),k=e(t(),1),A=r();function j(e){return e===`done`||e===`in_review`?`bg-emerald-500/10 text-emerald-700 dark:text-emerald-300`:e===`blocked`||e===`needs_input`?`bg-red-500/10 text-red-700 dark:text-red-300`:e===`in_progress`?`bg-accent-soft text-accent-fg`:e===`backlog`||e===`todo`?`bg-amber-500/10 text-amber-700 dark:text-amber-300`:`bg-surface-muted text-fg-subtle`}function M(e){return e?new Intl.DateTimeFormat(void 0,{dateStyle:`medium`,timeStyle:`short`}).format(new Date(e)):``}function ie(e){return!Number.isFinite(e)||e<=0?`0 B`:e<1024?`${e} B`:e<1024*1024?`${(e/1024).toFixed(+(e<10*1024))} KB`:`${(e/(1024*1024)).toFixed(+(e<10*1024*1024))} MB`}function ae(e){return e.kind===`chat`?`/chat/${encodeURIComponent(e.targetId)}`:e.kind===`goal`?`/goals/${encodeURIComponent(e.targetId)}`:e.kind===`workflow_run`?`/workflows?run=${encodeURIComponent(e.targetId)}`:e.kind===`automation`?`/automations?automationId=${encodeURIComponent(e.targetId)}`:e.kind===`note`?`/notes/${encodeURIComponent(e.targetId)}`:`#`}function N(e){let t=(0,O.c)(7),{label:n,value:r}=e,i;t[0]===n?i=t[1]:(i=(0,A.jsx)(`dt`,{className:`text-xs font-medium text-fg-subtle`,children:n}),t[0]=n,t[1]=i);let a=r||`-`,o;t[2]===a?o=t[3]:(o=(0,A.jsx)(`dd`,{className:`min-w-0 break-words text-sm text-fg`,children:a}),t[2]=a,t[3]=o);let s;return t[4]!==i||t[5]!==o?(s=(0,A.jsxs)(`div`,{className:`grid gap-1`,children:[i,o]}),t[4]=i,t[5]=o,t[6]=s):s=t[6],s}function P(e){let t=(0,O.c)(9),{events:n,t:r}=e;if(!n.length){let e;return t[0]===r.detail.noActivity?e=t[1]:(e=(0,A.jsx)(`div`,{className:`rounded-lg bg-surface-panel px-4 py-8 text-center text-sm text-fg-muted shadow-surface`,children:r.detail.noActivity}),t[0]=r.detail.noActivity,t[1]=e),e}let i;if(t[2]!==n||t[3]!==r){let e;t[5]===r?e=t[6]:(e=e=>(0,A.jsx)(`article`,{className:`rounded-lg bg-surface-panel px-4 py-3 shadow-surface`,children:(0,A.jsxs)(`div`,{className:`flex items-center justify-between gap-3`,children:[(0,A.jsx)(`h3`,{className:`text-sm font-medium text-fg`,children:r.eventTypes[e.type]??e.type}),(0,A.jsx)(`time`,{className:`shrink-0 text-xs text-fg-subtle`,children:M(e.createdAt)})]})},e.id),t[5]=r,t[6]=e),i=n.map(e),t[2]=n,t[3]=r,t[4]=i}else i=t[4];let a;return t[7]===i?a=t[8]:(a=(0,A.jsx)(`div`,{className:`grid gap-3`,children:i}),t[7]=i,t[8]=a),a}function F(){let{workItemId:e=``}=f(),t=re(),n=a(o(e=>e.language)).projectDetailPage.workItems,[r,O]=(0,k.useState)(null),[F,I]=(0,k.useState)(null),[L,R]=(0,k.useState)([]),[z,B]=(0,k.useState)(!0),[V,H]=(0,k.useState)(!1),[U,W]=(0,k.useState)(null),G=(0,k.useRef)(null),K=u(e=>e.setPageHeader),q=u(e=>e.clearPageHeader),J=(0,k.useMemo)(()=>r?`/projects/${encodeURIComponent(r.projectId)}/work-items`:`/projects`,[r]),Y=(0,k.useCallback)(async()=>{if(e){B(!0),W(null);try{let[t,n]=await Promise.all([g(e),x(e).catch(()=>({events:[]}))]);O(t.item),R(n.events),I(await d(t.item.projectId).catch(()=>null))}catch(e){W(e instanceof Error?e.message:String(e))}finally{B(!1)}}},[e]);(0,k.useEffect)(()=>{Y()},[Y]);let X=(0,k.useCallback)(async()=>{if(r){H(!0),W(null);try{let e=await _(r.id);O(e.item),t(`/chat/${encodeURIComponent(e.session.key)}`)}catch(e){W(e instanceof Error?e.message:String(e))}finally{H(!1)}}},[r,t]),Z=(0,k.useCallback)(async()=>{if(r){H(!0),W(null);try{let e=await ne(r.id);O(e.item),t(`/goals/${encodeURIComponent(e.goal.id)}`)}catch(e){W(e instanceof Error?e.message:String(e))}finally{H(!1)}}},[r,t]),Q=(0,k.useCallback)(async e=>{R((await x(e).catch(()=>({events:[]}))).events)},[]),oe=(0,k.useCallback)(async e=>{if(!(!r||!e.length)){H(!0),W(null);try{let t=await te(r.id,e);O(t.item),await Q(t.item.id)}catch(e){W(e instanceof Error?e.message:String(e))}finally{H(!1)}}},[r,Q]),se=(0,k.useCallback)(async e=>{if(r){H(!0),W(null);try{let t=await ee(r.id,e.id);O(t.item),await Q(t.item.id)}catch(e){W(e instanceof Error?e.message:String(e))}finally{H(!1)}}},[r,Q]),ce=(0,k.useCallback)(async e=>{if(r){W(null);try{await C(r.id,e)}catch(e){W(e instanceof Error?e.message:String(e))}}},[r]),$=(0,k.useMemo)(()=>(0,A.jsxs)(A.Fragment,{children:[(0,A.jsxs)(w,{type:`button`,variant:`ghost`,className:`h-8 rounded-lg px-2.5 text-xs`,onClick:()=>void Y(),children:[(0,A.jsx)(S,{className:`size-3.5`,"aria-hidden":!0}),(0,A.jsx)(`span`,{className:`hidden sm:inline`,children:n.refreshShort})]}),r?(0,A.jsxs)(A.Fragment,{children:[(0,A.jsxs)(w,{type:`button`,variant:`secondary`,className:`h-8 rounded-lg px-2.5 text-xs`,disabled:V,onClick:X,children:[(0,A.jsx)(D,{className:`size-3.5`,"aria-hidden":!0}),(0,A.jsx)(`span`,{className:`hidden md:inline`,children:n.detail.startChat})]}),(0,A.jsxs)(w,{type:`button`,variant:`secondary`,className:`h-8 rounded-lg px-2.5 text-xs`,disabled:V,onClick:Z,children:[(0,A.jsx)(p,{className:`size-3.5`,"aria-hidden":!0}),(0,A.jsx)(`span`,{className:`hidden md:inline`,children:n.detail.createGoal})]})]}):null]}),[V,Z,X,r,Y,n.detail.createGoal,n.detail.startChat,n.refreshShort]);return(0,k.useLayoutEffect)(()=>(K({startExtra:(0,A.jsx)(T,{to:J,className:`inline-flex size-9 items-center justify-center rounded-lg text-fg-muted hover:bg-surface-hover hover:text-fg`,"aria-label":F?.name?n.detail.backToProject.replace(`{{name}}`,F.name):n.detail.backToProjects,children:(0,A.jsx)(v,{className:`size-4`,"aria-hidden":!0})}),main:(0,A.jsxs)(`div`,{className:`min-w-0`,children:[(0,A.jsxs)(`div`,{className:`flex min-w-0 items-center gap-2`,children:[(0,A.jsx)(y,{className:`size-3.5 shrink-0 text-accent-fg`,"aria-hidden":!0}),(0,A.jsx)(`h1`,{className:`truncate text-base font-semibold tracking-tight text-fg`,children:r?.title??(z?n.detail.loading:n.detail.notFound)})]}),r?(0,A.jsxs)(`p`,{className:`truncate text-xs text-fg-muted`,children:[n.statuses[r.status],` · `,n.priorities[r.priority],` · `,F?.name||r.projectId,` · `,n.updated,`: `,M(r.updatedAt)]}):null]}),end:$}),()=>q()),[q,$,r,z,F?.name,J,K,n,F]),z?(0,A.jsxs)(`main`,{className:`mx-auto flex w-full max-w-[var(--max-width-app-main)] flex-1 flex-col px-3 py-6 sm:px-5 xl:px-6`,"aria-busy":!0,children:[(0,A.jsx)(`div`,{className:`h-8 w-40 animate-pulse rounded-md bg-surface-hover`}),(0,A.jsx)(`div`,{className:`mt-5 h-44 animate-pulse rounded-xl bg-surface-hover`})]}):U||!r?(0,A.jsxs)(`main`,{className:`mx-auto flex w-full max-w-[var(--max-width-app-main)] flex-1 flex-col px-3 py-6 sm:px-5 xl:px-6`,children:[(0,A.jsxs)(T,{to:`/projects`,className:`inline-flex items-center gap-1 text-sm font-medium text-accent hover:text-accent-fg`,children:[(0,A.jsx)(v,{className:`size-4`,"aria-hidden":!0}),n.detail.backToProjects]}),(0,A.jsx)(`div`,{className:`mt-5 rounded-lg border border-danger/30 bg-danger-soft px-4 py-3 text-sm text-danger`,children:U||n.detail.notFound})]}):(0,A.jsxs)(`main`,{className:`mx-auto flex w-full max-w-[var(--max-width-app-main)] flex-1 flex-col px-3 py-5 sm:px-5 xl:px-6`,children:[(0,A.jsxs)(`section`,{className:`rounded-lg bg-surface-panel px-4 py-4 shadow-surface sm:px-5`,children:[(0,A.jsxs)(`div`,{className:`flex min-w-0 flex-wrap items-start justify-between gap-3`,children:[(0,A.jsxs)(`div`,{className:`min-w-0`,children:[(0,A.jsxs)(`div`,{className:`flex min-w-0 items-center gap-2`,children:[(0,A.jsx)(y,{className:`size-4 shrink-0 text-accent-fg`,"aria-hidden":!0}),(0,A.jsx)(`h1`,{className:`min-w-0 break-words text-lg font-semibold leading-7 text-fg`,children:r.title})]}),(0,A.jsxs)(`div`,{className:`mt-2 flex flex-wrap items-center gap-2 text-xs`,children:[(0,A.jsx)(`span`,{className:i(`rounded-full px-2 py-0.5 font-medium`,j(r.status)),children:n.statuses[r.status]}),(0,A.jsx)(`span`,{className:`rounded-full bg-surface-muted px-2 py-0.5 text-fg-muted`,children:n.priorities[r.priority]}),r.archivedAt?(0,A.jsx)(`span`,{className:`rounded-full bg-surface-muted px-2 py-0.5 text-fg-muted`,children:n.detail.archived}):null]})]}),(0,A.jsxs)(`div`,{className:`flex shrink-0 flex-wrap items-center gap-2`,children:[(0,A.jsxs)(w,{type:`button`,variant:`secondary`,className:`h-8 rounded-lg px-2.5 text-xs`,disabled:V,onClick:X,children:[(0,A.jsx)(D,{className:`size-3.5`,"aria-hidden":!0}),n.detail.startChat]}),(0,A.jsxs)(w,{type:`button`,variant:`secondary`,className:`h-8 rounded-lg px-2.5 text-xs`,disabled:V,onClick:Z,children:[(0,A.jsx)(p,{className:`size-3.5`,"aria-hidden":!0}),n.detail.createGoal]})]})]}),(0,A.jsxs)(`dl`,{className:`mt-5 grid gap-4 border-t border-edge pt-4 sm:grid-cols-2`,children:[(0,A.jsx)(N,{label:n.create.descriptionLabel,value:r.description||n.detail.noDescription}),(0,A.jsx)(N,{label:n.nextAction,value:r.nextAction||n.noNextAction}),(0,A.jsx)(N,{label:n.blockedReason,value:r.blockedReason||n.detail.noBlockedReason}),(0,A.jsx)(N,{label:n.updated,value:M(r.updatedAt)})]})]}),(0,A.jsxs)(`div`,{className:`mt-4 grid min-h-0 gap-4 lg:grid-cols-[minmax(0,1fr)_18rem]`,children:[(0,A.jsxs)(`section`,{className:`min-w-0`,children:[(0,A.jsxs)(`div`,{className:`mb-2 flex items-center gap-2`,children:[(0,A.jsx)(c,{className:`size-4 text-fg-muted`,"aria-hidden":!0}),(0,A.jsx)(`h2`,{className:`text-sm font-semibold text-fg`,children:n.detail.activity})]}),(0,A.jsx)(P,{events:L,t:n})]}),(0,A.jsxs)(`aside`,{className:`grid content-start gap-4`,children:[(0,A.jsxs)(`section`,{className:`rounded-lg bg-surface-panel px-4 py-3 shadow-surface`,children:[(0,A.jsxs)(`div`,{className:`flex items-center justify-between gap-3`,children:[(0,A.jsxs)(`h2`,{className:`inline-flex min-w-0 items-center gap-2 text-sm font-semibold text-fg`,children:[(0,A.jsx)(b,{className:`size-4 shrink-0 text-fg-muted`,"aria-hidden":!0}),(0,A.jsx)(`span`,{className:`truncate`,children:n.attachments.title})]}),(0,A.jsxs)(w,{type:`button`,variant:`secondary`,className:`h-8 rounded-lg px-2.5 text-xs`,disabled:V,onClick:()=>G.current?.click(),children:[(0,A.jsx)(h,{className:`size-3.5`,"aria-hidden":!0}),n.attachments.add]}),(0,A.jsx)(`input`,{ref:G,type:`file`,multiple:!0,className:`hidden`,onChange:e=>{oe(Array.from(e.target.files??[])),e.currentTarget.value=``}})]}),(0,A.jsx)(`div`,{className:`mt-3 grid gap-2`,children:r.attachments?.length?r.attachments.map(e=>(0,A.jsxs)(`div`,{className:`flex min-w-0 items-center gap-2 rounded-md border border-edge bg-surface-base px-2 py-2 text-sm`,children:[(0,A.jsx)(c,{className:`size-4 shrink-0 text-fg-muted`,"aria-hidden":!0}),(0,A.jsxs)(`div`,{className:`min-w-0 flex-1`,children:[(0,A.jsx)(`div`,{className:`truncate font-medium text-fg`,children:e.fileName}),(0,A.jsxs)(`div`,{className:`truncate text-xs text-fg-subtle`,children:[e.mimeType,` · `,ie(e.size)]})]}),(0,A.jsx)(`button`,{type:`button`,className:`inline-flex size-7 shrink-0 items-center justify-center rounded-md text-fg-muted hover:bg-surface-hover hover:text-fg`,title:n.attachments.download,"aria-label":n.attachments.download,disabled:V,onClick:()=>void ce(e),children:(0,A.jsx)(s,{className:`size-3.5`,"aria-hidden":!0})}),(0,A.jsx)(`button`,{type:`button`,className:`inline-flex size-7 shrink-0 items-center justify-center rounded-md text-fg-muted hover:bg-surface-hover hover:text-danger`,title:n.attachments.remove,"aria-label":n.attachments.remove,disabled:V,onClick:()=>void se(e),children:(0,A.jsx)(E,{className:`size-3.5`,"aria-hidden":!0})})]},e.id)):(0,A.jsx)(`p`,{className:`text-sm text-fg-muted`,children:n.attachments.empty})})]}),(0,A.jsxs)(`section`,{className:`rounded-lg bg-surface-panel px-4 py-3 shadow-surface`,children:[(0,A.jsx)(`h2`,{className:`text-sm font-semibold text-fg`,children:n.detail.links}),(0,A.jsx)(`div`,{className:`mt-3 grid gap-1 text-sm`,children:r.links?.length?r.links.map(e=>(0,A.jsxs)(T,{to:ae(e),className:`flex min-w-0 items-center justify-between gap-3 rounded-md px-2 py-1.5 hover:bg-surface-hover`,children:[(0,A.jsx)(`span`,{className:`min-w-0 truncate text-fg`,children:e.title||e.targetId}),(0,A.jsxs)(`span`,{className:`inline-flex shrink-0 items-center gap-1 text-xs text-fg-muted`,children:[n.linkKinds[e.kind],(0,A.jsx)(l,{className:`size-3.5`,"aria-hidden":!0})]})]},e.id)):(0,A.jsx)(`p`,{className:`text-sm text-fg-muted`,children:n.detail.noLinks})})]}),(0,A.jsxs)(`section`,{className:`rounded-lg bg-surface-panel px-4 py-3 shadow-surface`,children:[(0,A.jsx)(`h2`,{className:`text-sm font-semibold text-fg`,children:n.detail.project}),(0,A.jsxs)(T,{to:J,className:`mt-2 inline-flex min-w-0 items-center gap-2 text-sm font-medium text-accent hover:text-accent-fg`,children:[(0,A.jsx)(m,{className:`size-4 shrink-0`,"aria-hidden":!0}),(0,A.jsx)(`span`,{className:`min-w-0 truncate`,children:F?.name||r.projectId})]})]})]})]})]})}export{F as WorkItemDetailPage};
1
+ import{i as e}from"./rolldown-runtime-aKtaBQYM.js";import{a as t,n,t as r}from"./vendor-react-BOUWij0V.js";import{t as i}from"./cn-BQ_8x0bT.js";import{t as a}from"./messages-DR9ODkb8.js";import{n as o}from"./locale-store-Ba72bFmP.js";import{Ac as s,Cc as c,Dc as l,Ga as u,Ki as d,Tl as f,Uo as p,Xc as m,a as ee,bs as h,c as g,d as _,f as te,hl as v,i as ne,il as y,ks as b,l as x,ms as S,o as C,wl as re,wo as w,xl as T,zo as E,zs as D}from"./index-DqFBdoK-.js";var O=n(),k=e(t(),1),A=r();function j(e){return e===`done`||e===`in_review`?`bg-emerald-500/10 text-emerald-700 dark:text-emerald-300`:e===`blocked`||e===`needs_input`?`bg-red-500/10 text-red-700 dark:text-red-300`:e===`in_progress`?`bg-accent-soft text-accent-fg`:e===`backlog`||e===`todo`?`bg-amber-500/10 text-amber-700 dark:text-amber-300`:`bg-surface-muted text-fg-subtle`}function M(e){return e?new Intl.DateTimeFormat(void 0,{dateStyle:`medium`,timeStyle:`short`}).format(new Date(e)):``}function ie(e){return!Number.isFinite(e)||e<=0?`0 B`:e<1024?`${e} B`:e<1024*1024?`${(e/1024).toFixed(+(e<10*1024))} KB`:`${(e/(1024*1024)).toFixed(+(e<10*1024*1024))} MB`}function ae(e){return e.kind===`chat`?`/chat/${encodeURIComponent(e.targetId)}`:e.kind===`goal`?`/goals/${encodeURIComponent(e.targetId)}`:e.kind===`workflow_run`?`/workflows?run=${encodeURIComponent(e.targetId)}`:e.kind===`automation`?`/automations?automationId=${encodeURIComponent(e.targetId)}`:e.kind===`note`?`/notes/${encodeURIComponent(e.targetId)}`:`#`}function N(e){let t=(0,O.c)(7),{label:n,value:r}=e,i;t[0]===n?i=t[1]:(i=(0,A.jsx)(`dt`,{className:`text-xs font-medium text-fg-subtle`,children:n}),t[0]=n,t[1]=i);let a=r||`-`,o;t[2]===a?o=t[3]:(o=(0,A.jsx)(`dd`,{className:`min-w-0 break-words text-sm text-fg`,children:a}),t[2]=a,t[3]=o);let s;return t[4]!==i||t[5]!==o?(s=(0,A.jsxs)(`div`,{className:`grid gap-1`,children:[i,o]}),t[4]=i,t[5]=o,t[6]=s):s=t[6],s}function P(e){let t=(0,O.c)(9),{events:n,t:r}=e;if(!n.length){let e;return t[0]===r.detail.noActivity?e=t[1]:(e=(0,A.jsx)(`div`,{className:`rounded-lg bg-surface-panel px-4 py-8 text-center text-sm text-fg-muted shadow-surface`,children:r.detail.noActivity}),t[0]=r.detail.noActivity,t[1]=e),e}let i;if(t[2]!==n||t[3]!==r){let e;t[5]===r?e=t[6]:(e=e=>(0,A.jsx)(`article`,{className:`rounded-lg bg-surface-panel px-4 py-3 shadow-surface`,children:(0,A.jsxs)(`div`,{className:`flex items-center justify-between gap-3`,children:[(0,A.jsx)(`h3`,{className:`text-sm font-medium text-fg`,children:r.eventTypes[e.type]??e.type}),(0,A.jsx)(`time`,{className:`shrink-0 text-xs text-fg-subtle`,children:M(e.createdAt)})]})},e.id),t[5]=r,t[6]=e),i=n.map(e),t[2]=n,t[3]=r,t[4]=i}else i=t[4];let a;return t[7]===i?a=t[8]:(a=(0,A.jsx)(`div`,{className:`grid gap-3`,children:i}),t[7]=i,t[8]=a),a}function F(){let{workItemId:e=``}=f(),t=re(),n=a(o(e=>e.language)).projectDetailPage.workItems,[r,O]=(0,k.useState)(null),[F,I]=(0,k.useState)(null),[L,R]=(0,k.useState)([]),[z,B]=(0,k.useState)(!0),[V,H]=(0,k.useState)(!1),[U,W]=(0,k.useState)(null),G=(0,k.useRef)(null),K=u(e=>e.setPageHeader),q=u(e=>e.clearPageHeader),J=(0,k.useMemo)(()=>r?`/projects/${encodeURIComponent(r.projectId)}/work-items`:`/projects`,[r]),Y=(0,k.useCallback)(async()=>{if(e){B(!0),W(null);try{let[t,n]=await Promise.all([g(e),x(e).catch(()=>({events:[]}))]);O(t.item),R(n.events),I(await d(t.item.projectId).catch(()=>null))}catch(e){W(e instanceof Error?e.message:String(e))}finally{B(!1)}}},[e]);(0,k.useEffect)(()=>{Y()},[Y]);let X=(0,k.useCallback)(async()=>{if(r){H(!0),W(null);try{let e=await _(r.id);O(e.item),t(`/chat/${encodeURIComponent(e.session.key)}`)}catch(e){W(e instanceof Error?e.message:String(e))}finally{H(!1)}}},[r,t]),Z=(0,k.useCallback)(async()=>{if(r){H(!0),W(null);try{let e=await ne(r.id);O(e.item),t(`/goals/${encodeURIComponent(e.goal.id)}`)}catch(e){W(e instanceof Error?e.message:String(e))}finally{H(!1)}}},[r,t]),Q=(0,k.useCallback)(async e=>{R((await x(e).catch(()=>({events:[]}))).events)},[]),oe=(0,k.useCallback)(async e=>{if(!(!r||!e.length)){H(!0),W(null);try{let t=await te(r.id,e);O(t.item),await Q(t.item.id)}catch(e){W(e instanceof Error?e.message:String(e))}finally{H(!1)}}},[r,Q]),se=(0,k.useCallback)(async e=>{if(r){H(!0),W(null);try{let t=await ee(r.id,e.id);O(t.item),await Q(t.item.id)}catch(e){W(e instanceof Error?e.message:String(e))}finally{H(!1)}}},[r,Q]),ce=(0,k.useCallback)(async e=>{if(r){W(null);try{await C(r.id,e)}catch(e){W(e instanceof Error?e.message:String(e))}}},[r]),$=(0,k.useMemo)(()=>(0,A.jsxs)(A.Fragment,{children:[(0,A.jsxs)(w,{type:`button`,variant:`ghost`,className:`h-8 rounded-lg px-2.5 text-xs`,onClick:()=>void Y(),children:[(0,A.jsx)(S,{className:`size-3.5`,"aria-hidden":!0}),(0,A.jsx)(`span`,{className:`hidden sm:inline`,children:n.refreshShort})]}),r?(0,A.jsxs)(A.Fragment,{children:[(0,A.jsxs)(w,{type:`button`,variant:`secondary`,className:`h-8 rounded-lg px-2.5 text-xs`,disabled:V,onClick:X,children:[(0,A.jsx)(D,{className:`size-3.5`,"aria-hidden":!0}),(0,A.jsx)(`span`,{className:`hidden md:inline`,children:n.detail.startChat})]}),(0,A.jsxs)(w,{type:`button`,variant:`secondary`,className:`h-8 rounded-lg px-2.5 text-xs`,disabled:V,onClick:Z,children:[(0,A.jsx)(p,{className:`size-3.5`,"aria-hidden":!0}),(0,A.jsx)(`span`,{className:`hidden md:inline`,children:n.detail.createGoal})]})]}):null]}),[V,Z,X,r,Y,n.detail.createGoal,n.detail.startChat,n.refreshShort]);return(0,k.useLayoutEffect)(()=>(K({startExtra:(0,A.jsx)(T,{to:J,className:`inline-flex size-9 items-center justify-center rounded-lg text-fg-muted hover:bg-surface-hover hover:text-fg`,"aria-label":F?.name?n.detail.backToProject.replace(`{{name}}`,F.name):n.detail.backToProjects,children:(0,A.jsx)(v,{className:`size-4`,"aria-hidden":!0})}),main:(0,A.jsxs)(`div`,{className:`min-w-0`,children:[(0,A.jsxs)(`div`,{className:`flex min-w-0 items-center gap-2`,children:[(0,A.jsx)(y,{className:`size-3.5 shrink-0 text-accent-fg`,"aria-hidden":!0}),(0,A.jsx)(`h1`,{className:`truncate text-base font-semibold tracking-tight text-fg`,children:r?.title??(z?n.detail.loading:n.detail.notFound)})]}),r?(0,A.jsxs)(`p`,{className:`truncate text-xs text-fg-muted`,children:[n.statuses[r.status],` · `,n.priorities[r.priority],` · `,F?.name||r.projectId,` · `,n.updated,`: `,M(r.updatedAt)]}):null]}),end:$}),()=>q()),[q,$,r,z,F?.name,J,K,n,F]),z?(0,A.jsxs)(`main`,{className:`mx-auto flex w-full max-w-[var(--max-width-app-main)] flex-1 flex-col px-3 py-6 sm:px-5 xl:px-6`,"aria-busy":!0,children:[(0,A.jsx)(`div`,{className:`h-8 w-40 animate-pulse rounded-md bg-surface-hover`}),(0,A.jsx)(`div`,{className:`mt-5 h-44 animate-pulse rounded-xl bg-surface-hover`})]}):U||!r?(0,A.jsxs)(`main`,{className:`mx-auto flex w-full max-w-[var(--max-width-app-main)] flex-1 flex-col px-3 py-6 sm:px-5 xl:px-6`,children:[(0,A.jsxs)(T,{to:`/projects`,className:`inline-flex items-center gap-1 text-sm font-medium text-accent hover:text-accent-fg`,children:[(0,A.jsx)(v,{className:`size-4`,"aria-hidden":!0}),n.detail.backToProjects]}),(0,A.jsx)(`div`,{className:`mt-5 rounded-lg border border-danger/30 bg-danger-soft px-4 py-3 text-sm text-danger`,children:U||n.detail.notFound})]}):(0,A.jsxs)(`main`,{className:`mx-auto flex w-full max-w-[var(--max-width-app-main)] flex-1 flex-col px-3 py-5 sm:px-5 xl:px-6`,children:[(0,A.jsxs)(`section`,{className:`rounded-lg bg-surface-panel px-4 py-4 shadow-surface sm:px-5`,children:[(0,A.jsxs)(`div`,{className:`flex min-w-0 flex-wrap items-start justify-between gap-3`,children:[(0,A.jsxs)(`div`,{className:`min-w-0`,children:[(0,A.jsxs)(`div`,{className:`flex min-w-0 items-center gap-2`,children:[(0,A.jsx)(y,{className:`size-4 shrink-0 text-accent-fg`,"aria-hidden":!0}),(0,A.jsx)(`h1`,{className:`min-w-0 break-words text-lg font-semibold leading-7 text-fg`,children:r.title})]}),(0,A.jsxs)(`div`,{className:`mt-2 flex flex-wrap items-center gap-2 text-xs`,children:[(0,A.jsx)(`span`,{className:i(`rounded-full px-2 py-0.5 font-medium`,j(r.status)),children:n.statuses[r.status]}),(0,A.jsx)(`span`,{className:`rounded-full bg-surface-muted px-2 py-0.5 text-fg-muted`,children:n.priorities[r.priority]}),r.archivedAt?(0,A.jsx)(`span`,{className:`rounded-full bg-surface-muted px-2 py-0.5 text-fg-muted`,children:n.detail.archived}):null]})]}),(0,A.jsxs)(`div`,{className:`flex shrink-0 flex-wrap items-center gap-2`,children:[(0,A.jsxs)(w,{type:`button`,variant:`secondary`,className:`h-8 rounded-lg px-2.5 text-xs`,disabled:V,onClick:X,children:[(0,A.jsx)(D,{className:`size-3.5`,"aria-hidden":!0}),n.detail.startChat]}),(0,A.jsxs)(w,{type:`button`,variant:`secondary`,className:`h-8 rounded-lg px-2.5 text-xs`,disabled:V,onClick:Z,children:[(0,A.jsx)(p,{className:`size-3.5`,"aria-hidden":!0}),n.detail.createGoal]})]})]}),(0,A.jsxs)(`dl`,{className:`mt-5 grid gap-4 border-t border-edge pt-4 sm:grid-cols-2`,children:[(0,A.jsx)(N,{label:n.create.descriptionLabel,value:r.description||n.detail.noDescription}),(0,A.jsx)(N,{label:n.nextAction,value:r.nextAction||n.noNextAction}),(0,A.jsx)(N,{label:n.blockedReason,value:r.blockedReason||n.detail.noBlockedReason}),(0,A.jsx)(N,{label:n.updated,value:M(r.updatedAt)})]})]}),(0,A.jsxs)(`div`,{className:`mt-4 grid min-h-0 gap-4 lg:grid-cols-[minmax(0,1fr)_18rem]`,children:[(0,A.jsxs)(`section`,{className:`min-w-0`,children:[(0,A.jsxs)(`div`,{className:`mb-2 flex items-center gap-2`,children:[(0,A.jsx)(c,{className:`size-4 text-fg-muted`,"aria-hidden":!0}),(0,A.jsx)(`h2`,{className:`text-sm font-semibold text-fg`,children:n.detail.activity})]}),(0,A.jsx)(P,{events:L,t:n})]}),(0,A.jsxs)(`aside`,{className:`grid content-start gap-4`,children:[(0,A.jsxs)(`section`,{className:`rounded-lg bg-surface-panel px-4 py-3 shadow-surface`,children:[(0,A.jsxs)(`div`,{className:`flex items-center justify-between gap-3`,children:[(0,A.jsxs)(`h2`,{className:`inline-flex min-w-0 items-center gap-2 text-sm font-semibold text-fg`,children:[(0,A.jsx)(b,{className:`size-4 shrink-0 text-fg-muted`,"aria-hidden":!0}),(0,A.jsx)(`span`,{className:`truncate`,children:n.attachments.title})]}),(0,A.jsxs)(w,{type:`button`,variant:`secondary`,className:`h-8 rounded-lg px-2.5 text-xs`,disabled:V,onClick:()=>G.current?.click(),children:[(0,A.jsx)(h,{className:`size-3.5`,"aria-hidden":!0}),n.attachments.add]}),(0,A.jsx)(`input`,{ref:G,type:`file`,multiple:!0,className:`hidden`,onChange:e=>{oe(Array.from(e.target.files??[])),e.currentTarget.value=``}})]}),(0,A.jsx)(`div`,{className:`mt-3 grid gap-2`,children:r.attachments?.length?r.attachments.map(e=>(0,A.jsxs)(`div`,{className:`flex min-w-0 items-center gap-2 rounded-md border border-edge bg-surface-base px-2 py-2 text-sm`,children:[(0,A.jsx)(c,{className:`size-4 shrink-0 text-fg-muted`,"aria-hidden":!0}),(0,A.jsxs)(`div`,{className:`min-w-0 flex-1`,children:[(0,A.jsx)(`div`,{className:`truncate font-medium text-fg`,children:e.fileName}),(0,A.jsxs)(`div`,{className:`truncate text-xs text-fg-subtle`,children:[e.mimeType,` · `,ie(e.size)]})]}),(0,A.jsx)(`button`,{type:`button`,className:`inline-flex size-7 shrink-0 items-center justify-center rounded-md text-fg-muted hover:bg-surface-hover hover:text-fg`,title:n.attachments.download,"aria-label":n.attachments.download,disabled:V,onClick:()=>void ce(e),children:(0,A.jsx)(s,{className:`size-3.5`,"aria-hidden":!0})}),(0,A.jsx)(`button`,{type:`button`,className:`inline-flex size-7 shrink-0 items-center justify-center rounded-md text-fg-muted hover:bg-surface-hover hover:text-danger`,title:n.attachments.remove,"aria-label":n.attachments.remove,disabled:V,onClick:()=>void se(e),children:(0,A.jsx)(E,{className:`size-3.5`,"aria-hidden":!0})})]},e.id)):(0,A.jsx)(`p`,{className:`text-sm text-fg-muted`,children:n.attachments.empty})})]}),(0,A.jsxs)(`section`,{className:`rounded-lg bg-surface-panel px-4 py-3 shadow-surface`,children:[(0,A.jsx)(`h2`,{className:`text-sm font-semibold text-fg`,children:n.detail.links}),(0,A.jsx)(`div`,{className:`mt-3 grid gap-1 text-sm`,children:r.links?.length?r.links.map(e=>(0,A.jsxs)(T,{to:ae(e),className:`flex min-w-0 items-center justify-between gap-3 rounded-md px-2 py-1.5 hover:bg-surface-hover`,children:[(0,A.jsx)(`span`,{className:`min-w-0 truncate text-fg`,children:e.title||e.targetId}),(0,A.jsxs)(`span`,{className:`inline-flex shrink-0 items-center gap-1 text-xs text-fg-muted`,children:[n.linkKinds[e.kind],(0,A.jsx)(l,{className:`size-3.5`,"aria-hidden":!0})]})]},e.id)):(0,A.jsx)(`p`,{className:`text-sm text-fg-muted`,children:n.detail.noLinks})})]}),(0,A.jsxs)(`section`,{className:`rounded-lg bg-surface-panel px-4 py-3 shadow-surface`,children:[(0,A.jsx)(`h2`,{className:`text-sm font-semibold text-fg`,children:n.detail.project}),(0,A.jsxs)(T,{to:J,className:`mt-2 inline-flex min-w-0 items-center gap-2 text-sm font-medium text-accent hover:text-accent-fg`,children:[(0,A.jsx)(m,{className:`size-4 shrink-0`,"aria-hidden":!0}),(0,A.jsx)(`span`,{className:`min-w-0 truncate`,children:F?.name||r.projectId})]})]})]})]})]})}export{F as WorkItemDetailPage};
@@ -1,3 +1,3 @@
1
- import{i as e}from"./rolldown-runtime-aKtaBQYM.js";import{a as t,n,t as r}from"./vendor-react-BOUWij0V.js";import{t as i}from"./cn-BQ_8x0bT.js";import{t as a}from"./messages-DR9ODkb8.js";import{o,t as s}from"./fetch-6HXXdO77.js";import{$a as c,Do as l,Ec as u,Ha as d,No as f,Qo as p,Ra as m,T as h,Ua as g,Uo as _,V as v,Va as y,Wa as b,X as x,Xo as S,Z as C,ai as w,es as T,j as E,ms as D,tc as O,tl as ee,to as k,wo as A,za as j}from"./index-BjGnv8uJ.js";var M=e(t(),1),N=n();function P(e){if(!e.trim())return null;try{return JSON.parse(e)}catch{return null}}function F(e){return typeof e.message==`string`&&e.message.trim()?e.message:typeof e.error==`string`&&e.error.trim()?e.error:e.error&&typeof e.error==`object`&&typeof e.error.message==`string`?e.error.message:`AI suggestion failed`}function I(e,t={}){let n=P(e.split(`
1
+ import{i as e}from"./rolldown-runtime-aKtaBQYM.js";import{a as t,n,t as r}from"./vendor-react-BOUWij0V.js";import{t as i}from"./cn-BQ_8x0bT.js";import{t as a}from"./messages-DR9ODkb8.js";import{o,t as s}from"./fetch-6HXXdO77.js";import{$a as c,Do as l,Ec as u,Ha as d,No as f,Qo as p,Ra as m,T as h,Ua as g,Uo as _,V as v,Va as y,Wa as b,X as x,Xo as S,Z as C,ai as w,es as T,j as E,ms as D,tc as O,tl as ee,to as k,wo as A,za as j}from"./index-DqFBdoK-.js";var M=e(t(),1),N=n();function P(e){if(!e.trim())return null;try{return JSON.parse(e)}catch{return null}}function F(e){return typeof e.message==`string`&&e.message.trim()?e.message:typeof e.error==`string`&&e.error.trim()?e.error:e.error&&typeof e.error==`object`&&typeof e.error.message==`string`?e.error.message:`AI suggestion failed`}function I(e,t={}){let n=P(e.split(`
2
2
  `).filter(e=>e.startsWith(`data:`)).map(e=>e.slice(5).trimStart()).join(`
3
3
  `));if(!n)return null;if(n.type===`text_delta`&&typeof n.delta==`string`)return t.onDelta?.(n.delta),null;if(n.type===`thinking_delta`&&typeof n.delta==`string`)return t.onThinkingDelta?.(n.delta),null;if(n.type===`done`&&typeof n.text==`string`)return n.text;if(n.type===`error`)throw Error(F(n));return null}async function L(e,t={}){let n=await s(o(`/api/ai/text-assist`),{method:`POST`,headers:{Accept:`text/event-stream`},body:JSON.stringify(e)});if(!n.ok){let e=await n.json().catch(()=>({})),t=typeof e.error==`string`?e.error:e.error?.message;throw Error(t||`AI suggestion failed (${n.status})`)}if(!n.body){let e=await n.json().catch(()=>null);if(e?.text)return e;throw Error(`AI suggestion stream is empty`)}let r=n.body.getReader(),i=new TextDecoder,a=``,c=``,l=``;for(;;){let{done:e,value:n}=await r.read();if(n){a+=i.decode(n,{stream:!e});let r=a.split(/\r?\n\r?\n/);a=r.pop()??``;for(let e of r){let n=I(e,{onDelta:e=>{c+=e,t.onDelta?.(e)},onThinkingDelta:e=>{l+=e,t.onThinkingDelta?.(e)}});n!==null&&(c=n)}}if(e)break}if(a.trim()){let e=I(a,{onDelta:e=>{c+=e,t.onDelta?.(e)},onThinkingDelta:e=>{l+=e,t.onThinkingDelta?.(e)}});e!==null&&(c=e)}let u=c.trim();if(!u)throw Error(`AI returned an empty suggestion`);return{text:u,thinking:l.trim()||void 0}}function te(){let[e,t]=(0,M.useState)(``),[n,r]=(0,M.useState)(``),[i,a]=(0,M.useState)(!1),[o,s]=(0,M.useState)(null);return{suggestion:e,thinking:n,loading:i,error:o,generate:(0,M.useCallback)(async e=>{a(!0),s(null),t(``),r(``);try{let n=await L(e,{onDelta:e=>{t(t=>t+e)},onThinkingDelta:e=>{r(t=>t+e)}});return t(n.text),r(n.thinking??``),n.text}catch(e){return s(e instanceof Error?e.message:`AI suggestion failed`),null}finally{a(!1)}},[]),reset:(0,M.useCallback)(()=>{t(``),r(``),s(null),a(!1)},[])}}var R=r(),ne=5;function re(e){return e.startsWith(`zh`)?{title:`AI 优化文案`,buttonTitle:`优化文案`,current:`当前内容`,suggestion:`AI 建议`,editedSuggestion:`审核并编辑建议`,thinking:`模型思考`,thinkingLoading:`思考中`,edit:`编辑`,preview:`预览`,loading:`正在生成建议...`,empty:`暂无内容`,generate:`生成建议`,regenerate:`重新生成`,applyCurrent:`应用当前内容`,replace:`替换`,append:`追加`,cancel:`取消`,close:`关闭`}:{title:`AI text assist`,buttonTitle:`Improve text`,current:`Current`,suggestion:`Suggestion`,editedSuggestion:`Review and edit suggestion`,thinking:`Model thinking`,thinkingLoading:`Thinking`,edit:`Edit`,preview:`Preview`,loading:`Generating suggestion...`,empty:`No content`,generate:`Generate suggestion`,regenerate:`Regenerate`,applyCurrent:`Apply current`,replace:`Replace`,append:`Append`,cancel:`Cancel`,close:`Close`}}function z(e){let t=(0,N.c)(232),{value:n,onApply:r,fieldId:a,fieldLabel:o,scenario:s,format:c,intent:f,locale:h,context:_,disabled:v,className:x,showLabel:C}=e,T=s===void 0?`generic.text`:s,E=c===void 0?`plain`:c,O=f===void 0?`improve`:f,k=C===void 0?!0:C,[P,F]=(0,M.useState)(!1),[I,L]=(0,M.useState)(n),[z,B]=(0,M.useState)(`preview`),[V,H]=(0,M.useState)(``),[U,W]=(0,M.useState)(`edit`),[G,oe]=(0,M.useState)(!0),se=(0,M.useRef)(null),K=(0,M.useRef)(!0),{suggestion:q,thinking:J,loading:Y,error:X,generate:ce,reset:le}=te(),ue;t[0]===h?ue=t[1]:(ue=re(h),t[0]=h,t[1]=ue);let Z=ue,de;t[2]!==Y||t[3]!==J?(de=Y&&J.trim().length>0,t[2]=Y,t[3]=J,t[4]=de):de=t[4];let Q=de,fe,pe;t[5]!==P||t[6]!==n?(fe=()=>{P||L(n)},pe=[P,n],t[5]=P,t[6]=n,t[7]=fe,t[8]=pe):(fe=t[7],pe=t[8]),(0,M.useEffect)(fe,pe);let me,he;t[9]===q?(me=t[10],he=t[11]):(he=()=>{H(q)},me=[q],t[9]=q,t[10]=me,t[11]=he),(0,M.useEffect)(he,me);let ge,_e;t[12]===J?(ge=t[13],_e=t[14]):(ge=()=>{J.trim()&&oe(!0)},_e=[J],t[12]=J,t[13]=ge,t[14]=_e),(0,M.useEffect)(ge,_e);let ve;t[15]!==Q||t[16]!==G?(ve=()=>{let e=se.current;!e||!Q||!G||K.current&&(e.scrollTop=e.scrollHeight)},t[15]=Q,t[16]=G,t[17]=ve):ve=t[17];let ye;t[18]!==Q||t[19]!==J||t[20]!==G?(ye=[Q,J,G],t[18]=Q,t[19]=J,t[20]=G,t[21]=ye):ye=t[21],(0,M.useLayoutEffect)(ve,ye);let be;t[22]===Symbol.for(`react.memo_cache_sentinel`)?(be=()=>{let e=se.current;e&&(K.current=e.scrollHeight-e.scrollTop-e.clientHeight<=ne)},t[22]=be):be=t[22];let xe=be,Se;t[23]!==_||t[24]!==a||t[25]!==o||t[26]!==E||t[27]!==ce||t[28]!==O||t[29]!==h||t[30]!==T?(Se=async e=>{W(`edit`),oe(!0),K.current=!0,await ce({intent:O,scenario:T,input:e,locale:h,field:{id:a,label:o,format:E},context:_})},t[23]=_,t[24]=a,t[25]=o,t[26]=E,t[27]=ce,t[28]=O,t[29]=h,t[30]=T,t[31]=Se):Se=t[31];let Ce=Se,we;t[32]!==le||t[33]!==n?(we=()=>{L(n),B(`preview`),H(``),W(`edit`),oe(!0),le(),F(!0)},t[32]=le,t[33]=n,t[34]=we):we=t[34];let Te=we,Ee;t[35]!==I||t[36]!==Ce?(Ee=async()=>{await Ce(I)},t[35]=I,t[36]=Ce,t[37]=Ee):Ee=t[37];let De=Ee,Oe;t[38]!==le||t[39]!==n?(Oe=()=>{F(!1),L(n),B(`preview`),H(``),W(`edit`),oe(!0),le()},t[38]=le,t[39]=n,t[40]=Oe):Oe=t[40];let $=Oe,ke;t[41]!==$||t[42]!==I||t[43]!==r?(ke=()=>{r(I),$()},t[41]=$,t[42]=I,t[43]=r,t[44]=ke):ke=t[44];let Ae=ke,je;t[45]!==$||t[46]!==V||t[47]!==r?(je=()=>{V.trim()&&(r(V),$())},t[45]=$,t[46]=V,t[47]=r,t[48]=je):je=t[48];let Me=je,Ne;t[49]!==$||t[50]!==I||t[51]!==V||t[52]!==r?(Ne=()=>{if(!V.trim())return;let e=I.trimEnd();r(e?`${e}\n\n${V}`:V),$()},t[49]=$,t[50]=I,t[51]=V,t[52]=r,t[53]=Ne):Ne=t[53];let Pe=Ne,Fe;t[54]!==V||t[55]!==X||t[56]!==Y?(Fe=!Y&&!X&&V.trim().length>0,t[54]=V,t[55]=X,t[56]=Y,t[57]=Fe):Fe=t[57];let Ie=Fe,Le=I!==n,Re;t[58]!==V||t[59]!==X||t[60]!==J?(Re=V.trim().length>0||J.trim().length>0||!!X,t[58]=V,t[59]=X,t[60]=J,t[61]=Re):Re=t[61];let ze=Re,Be=!k&&`size-7 p-0`,Ve;t[62]!==x||t[63]!==Be?(Ve=i(`h-7 gap-1 px-2 text-xs`,Be,x),t[62]=x,t[63]=Be,t[64]=Ve):Ve=t[64];let He=v||Y,Ue;t[65]===Symbol.for(`react.memo_cache_sentinel`)?(Ue=(0,R.jsx)(p,{className:`size-3.5`,strokeWidth:1.75,"aria-hidden":!0}),t[65]=Ue):Ue=t[65];let We=k?Z.buttonTitle:null,Ge;t[66]!==Z.buttonTitle||t[67]!==Te||t[68]!==Ve||t[69]!==He||t[70]!==We?(Ge=(0,R.jsxs)(A,{type:`button`,variant:`ghost`,className:Ve,title:Z.buttonTitle,"aria-label":Z.buttonTitle,disabled:He,onClick:Te,children:[Ue,We]}),t[66]=Z.buttonTitle,t[67]=Te,t[68]=Ve,t[69]=He,t[70]=We,t[71]=Ge):Ge=t[71];let Ke;t[72]===$?Ke=t[73]:(Ke=e=>e?F(!0):$(),t[72]=$,t[73]=Ke);let qe;t[74]===Symbol.for(`react.memo_cache_sentinel`)?(qe=(0,R.jsx)(y,{className:`xopc-dialog-overlay fixed inset-0 z-[80] bg-scrim`}),t[74]=qe):qe=t[74];let Je;t[75]===Z.title?Je=t[76]:(Je=(0,R.jsx)(b,{className:`text-base font-semibold text-fg`,children:Z.title}),t[75]=Z.title,t[76]=Je);let Ye;t[77]===Symbol.for(`react.memo_cache_sentinel`)?(Ye=(0,R.jsx)(l,{className:`size-5`,strokeWidth:1.75}),t[77]=Ye):Ye=t[77];let Xe;t[78]===Z.close?Xe=t[79]:(Xe=(0,R.jsx)(m,{asChild:!0,children:(0,R.jsx)(A,{type:`button`,variant:`ghost`,className:`size-9 shrink-0 p-0`,"aria-label":Z.close,children:Ye})}),t[78]=Z.close,t[79]=Xe);let Ze;t[80]!==Je||t[81]!==Xe?(Ze=(0,R.jsxs)(`div`,{className:`flex shrink-0 items-center justify-between gap-2 border-b border-edge px-4 py-3`,children:[Je,Xe]}),t[80]=Je,t[81]=Xe,t[82]=Ze):Ze=t[82];let Qe;t[83]===Z.current?Qe=t[84]:(Qe=(0,R.jsx)(`div`,{className:`min-w-0 text-xs font-medium text-fg-muted`,children:Z.current}),t[83]=Z.current,t[84]=Qe);let $e=z===`edit`?`bg-surface-panel text-fg shadow-surface`:`text-fg-muted hover:bg-surface-hover`,et;t[85]===$e?et=t[86]:(et=i(`inline-flex h-7 items-center gap-1.5 rounded-md px-2 text-xs font-medium`,$e),t[85]=$e,t[86]=et);let tt,nt;t[87]===Symbol.for(`react.memo_cache_sentinel`)?(tt=()=>B(`edit`),nt=(0,R.jsx)(S,{className:`size-3.5 shrink-0`,strokeWidth:1.75,"aria-hidden":!0}),t[87]=tt,t[88]=nt):(tt=t[87],nt=t[88]);let rt;t[89]!==Z.edit||t[90]!==et?(rt=(0,R.jsxs)(`button`,{type:`button`,className:et,onClick:tt,children:[nt,Z.edit]}),t[89]=Z.edit,t[90]=et,t[91]=rt):rt=t[91];let it=z===`preview`?`bg-surface-panel text-fg shadow-surface`:`text-fg-muted hover:bg-surface-hover`,at;t[92]===it?at=t[93]:(at=i(`inline-flex h-7 items-center gap-1.5 rounded-md px-2 text-xs font-medium`,it),t[92]=it,t[93]=at);let ot,st;t[94]===Symbol.for(`react.memo_cache_sentinel`)?(ot=()=>B(`preview`),st=(0,R.jsx)(u,{className:`size-3.5 shrink-0`,strokeWidth:1.75,"aria-hidden":!0}),t[94]=ot,t[95]=st):(ot=t[94],st=t[95]);let ct;t[96]!==Z.preview||t[97]!==at?(ct=(0,R.jsxs)(`button`,{type:`button`,className:at,onClick:ot,children:[st,Z.preview]}),t[96]=Z.preview,t[97]=at,t[98]=ct):ct=t[98];let lt;t[99]!==rt||t[100]!==ct?(lt=(0,R.jsxs)(`div`,{className:`flex shrink-0 items-center gap-1 rounded-lg border border-edge bg-surface-muted p-0.5`,children:[rt,ct]}),t[99]=rt,t[100]=ct,t[101]=lt):lt=t[101];let ut;t[102]!==Qe||t[103]!==lt?(ut=(0,R.jsxs)(`div`,{className:`mb-2 flex items-center justify-between gap-2`,children:[Qe,lt]}),t[102]=Qe,t[103]=lt,t[104]=ut):ut=t[104];let dt;t[105]!==I||t[106]!==z||t[107]!==E||t[108]!==Z.current||t[109]!==Z.empty?(dt=z===`preview`?(0,R.jsx)(`div`,{className:`min-h-0 flex-1 overflow-auto rounded-lg border border-edge bg-surface-base p-3 text-sm leading-6 text-fg`,children:E===`markdown`?(0,R.jsx)(w,{content:I||Z.empty,compact:!0,className:`text-sm`}):(0,R.jsx)(`pre`,{className:`whitespace-pre-wrap text-sm leading-6 text-fg`,children:I||Z.empty})}):(0,R.jsx)(`textarea`,{className:`min-h-0 flex-1 resize-none overflow-auto rounded-lg border border-edge bg-surface-base p-3 text-sm leading-6 text-fg outline-none focus:border-accent focus:ring-2 focus:ring-accent/25`,value:I,onChange:e=>L(e.currentTarget.value),placeholder:Z.empty,"aria-label":Z.current}),t[105]=I,t[106]=z,t[107]=E,t[108]=Z.current,t[109]=Z.empty,t[110]=dt):dt=t[110];let ft;t[111]!==ut||t[112]!==dt?(ft=(0,R.jsxs)(`div`,{className:`flex min-h-0 flex-col overflow-hidden`,children:[ut,dt]}),t[111]=ut,t[112]=dt,t[113]=ft):ft=t[113];let pt;t[114]===Z.editedSuggestion?pt=t[115]:(pt=(0,R.jsx)(`span`,{children:Z.editedSuggestion}),t[114]=Z.editedSuggestion,t[115]=pt);let mt;t[116]!==Z.loading||t[117]!==Y?(mt=Y?(0,R.jsx)(`span`,{className:`ml-2 font-normal`,children:Z.loading}):null,t[116]=Z.loading,t[117]=Y,t[118]=mt):mt=t[118];let ht;t[119]!==pt||t[120]!==mt?(ht=(0,R.jsxs)(`div`,{className:`min-w-0 text-xs font-medium text-fg-muted`,children:[pt,mt]}),t[119]=pt,t[120]=mt,t[121]=ht):ht=t[121];let gt=U===`edit`?`bg-surface-panel text-fg shadow-surface`:`text-fg-muted hover:bg-surface-hover`,_t;t[122]===gt?_t=t[123]:(_t=i(`inline-flex h-7 items-center gap-1.5 rounded-md px-2 text-xs font-medium`,gt),t[122]=gt,t[123]=_t);let vt,yt;t[124]===Symbol.for(`react.memo_cache_sentinel`)?(vt=()=>W(`edit`),yt=(0,R.jsx)(S,{className:`size-3.5 shrink-0`,strokeWidth:1.75,"aria-hidden":!0}),t[124]=vt,t[125]=yt):(vt=t[124],yt=t[125]);let bt;t[126]!==Z.edit||t[127]!==_t?(bt=(0,R.jsxs)(`button`,{type:`button`,className:_t,onClick:vt,children:[yt,Z.edit]}),t[126]=Z.edit,t[127]=_t,t[128]=bt):bt=t[128];let xt=U===`preview`?`bg-surface-panel text-fg shadow-surface`:`text-fg-muted hover:bg-surface-hover`,St;t[129]===xt?St=t[130]:(St=i(`inline-flex h-7 items-center gap-1.5 rounded-md px-2 text-xs font-medium`,xt),t[129]=xt,t[130]=St);let Ct,wt;t[131]===Symbol.for(`react.memo_cache_sentinel`)?(Ct=()=>W(`preview`),wt=(0,R.jsx)(u,{className:`size-3.5 shrink-0`,strokeWidth:1.75,"aria-hidden":!0}),t[131]=Ct,t[132]=wt):(Ct=t[131],wt=t[132]);let Tt;t[133]!==Z.preview||t[134]!==St?(Tt=(0,R.jsxs)(`button`,{type:`button`,className:St,onClick:Ct,children:[wt,Z.preview]}),t[133]=Z.preview,t[134]=St,t[135]=Tt):Tt=t[135];let Et;t[136]!==bt||t[137]!==Tt?(Et=(0,R.jsxs)(`div`,{className:`flex shrink-0 items-center gap-1 rounded-lg border border-edge bg-surface-muted p-0.5`,children:[bt,Tt]}),t[136]=bt,t[137]=Tt,t[138]=Et):Et=t[138];let Dt;t[139]!==ht||t[140]!==Et?(Dt=(0,R.jsxs)(`div`,{className:`mb-2 flex items-center justify-between gap-2`,children:[ht,Et]}),t[139]=ht,t[140]=Et,t[141]=Dt):Dt=t[141];let Ot=Q?`opacity-100`:`pointer-events-none opacity-0`,kt;t[142]===Ot?kt=t[143]:(kt=i(`absolute inset-0 min-h-0 transition-opacity duration-200 ease-out motion-reduce:transition-none`,Ot),t[142]=Ot,t[143]=kt);let At=!Q,jt;t[144]===Symbol.for(`react.memo_cache_sentinel`)?(jt=()=>oe(ie),t[144]=jt):jt=t[144];let Mt;t[145]!==Z.thinkingLoading||t[146]!==Y?(Mt=Y?(0,R.jsxs)(`span`,{className:`ml-1 font-normal`,children:[`· `,Z.thinkingLoading]}):null,t[145]=Z.thinkingLoading,t[146]=Y,t[147]=Mt):Mt=t[147];let Nt;t[148]!==Z.thinking||t[149]!==Mt?(Nt=(0,R.jsxs)(`span`,{className:`min-w-0 truncate`,children:[Z.thinking,Mt]}),t[148]=Z.thinking,t[149]=Mt,t[150]=Nt):Nt=t[150];let Pt=G&&`rotate-180`,Ft;t[151]===Pt?Ft=t[152]:(Ft=i(`size-3.5 shrink-0 transition-transform`,Pt),t[151]=Pt,t[152]=Ft);let It;t[153]===Ft?It=t[154]:(It=(0,R.jsx)(ee,{className:Ft,strokeWidth:1.75,"aria-hidden":!0}),t[153]=Ft,t[154]=It);let Lt;t[155]!==Nt||t[156]!==It?(Lt=(0,R.jsxs)(`button`,{type:`button`,className:`flex shrink-0 items-center justify-between gap-2 px-2.5 py-2 text-left text-xs font-medium text-fg-muted hover:text-fg`,onClick:jt,children:[Nt,It]}),t[155]=Nt,t[156]=It,t[157]=Lt):Lt=t[157];let Rt;t[158]!==J||t[159]!==G?(Rt=G?(0,R.jsx)(`pre`,{ref:se,className:`min-h-0 flex-1 overflow-auto border-t border-edge px-2.5 py-2 whitespace-pre-wrap text-xs leading-5 text-fg-muted`,onScroll:xe,children:J}):null,t[158]=J,t[159]=G,t[160]=Rt):Rt=t[160];let zt;t[161]!==Lt||t[162]!==Rt?(zt=(0,R.jsxs)(`div`,{className:`flex h-full min-h-0 flex-col rounded-lg border border-edge bg-surface-muted/70`,children:[Lt,Rt]}),t[161]=Lt,t[162]=Rt,t[163]=zt):zt=t[163];let Bt;t[164]!==kt||t[165]!==At||t[166]!==zt?(Bt=(0,R.jsx)(`div`,{className:kt,"aria-hidden":At,children:zt}),t[164]=kt,t[165]=At,t[166]=zt,t[167]=Bt):Bt=t[167];let Vt=Q?`pointer-events-none opacity-0`:`opacity-100`,Ht;t[168]===Vt?Ht=t[169]:(Ht=i(`absolute inset-0 min-h-0 transition-opacity duration-200 ease-out motion-reduce:transition-none`,Vt),t[168]=Vt,t[169]=Ht);let Ut;t[170]!==V||t[171]!==X||t[172]!==E||t[173]!==Z.empty||t[174]!==Z.loading||t[175]!==Z.suggestion||t[176]!==Y||t[177]!==U?(Ut=X?(0,R.jsx)(`pre`,{className:`h-full min-h-0 overflow-auto whitespace-pre-wrap rounded-lg border border-edge bg-surface-base p-3 text-sm leading-6 text-fg-muted`,children:X}):U===`preview`?(0,R.jsx)(`div`,{className:`h-full min-h-0 overflow-auto rounded-lg border border-edge bg-surface-base p-3 text-sm leading-6 text-fg`,children:Y&&!V.trim()?(0,R.jsx)(`p`,{className:`text-sm text-fg-muted`,children:Z.loading}):E===`markdown`?(0,R.jsx)(w,{content:V||Z.empty,compact:!0,className:`text-sm`}):(0,R.jsx)(`pre`,{className:`whitespace-pre-wrap text-sm leading-6 text-fg`,children:V||Z.empty})}):(0,R.jsx)(`textarea`,{className:`h-full min-h-0 w-full resize-none overflow-auto rounded-lg border border-edge bg-surface-base p-3 text-sm leading-6 text-fg outline-none focus:border-accent focus:ring-2 focus:ring-accent/25 disabled:text-fg-muted`,value:V,onChange:e=>H(e.currentTarget.value),disabled:Y,placeholder:Y?Z.loading:Z.empty,"aria-label":Z.suggestion}),t[170]=V,t[171]=X,t[172]=E,t[173]=Z.empty,t[174]=Z.loading,t[175]=Z.suggestion,t[176]=Y,t[177]=U,t[178]=Ut):Ut=t[178];let Wt;t[179]!==Ht||t[180]!==Ut?(Wt=(0,R.jsx)(`div`,{className:Ht,children:Ut}),t[179]=Ht,t[180]=Ut,t[181]=Wt):Wt=t[181];let Gt;t[182]!==Bt||t[183]!==Wt?(Gt=(0,R.jsxs)(`div`,{className:`relative min-h-0 flex-1 overflow-hidden`,children:[Bt,Wt]}),t[182]=Bt,t[183]=Wt,t[184]=Gt):Gt=t[184];let Kt;t[185]!==Dt||t[186]!==Gt?(Kt=(0,R.jsxs)(`div`,{className:`flex min-h-0 flex-col overflow-hidden`,children:[Dt,Gt]}),t[185]=Dt,t[186]=Gt,t[187]=Kt):Kt=t[187];let qt;t[188]!==ft||t[189]!==Kt?(qt=(0,R.jsxs)(`div`,{className:`grid min-h-0 flex-1 grid-cols-1 gap-3 overflow-hidden p-4 md:grid-cols-2`,children:[ft,Kt]}),t[188]=ft,t[189]=Kt,t[190]=qt):qt=t[190];let Jt;t[191]!==$||t[192]!==Z.cancel?(Jt=(0,R.jsx)(A,{type:`button`,variant:`secondary`,onClick:$,children:Z.cancel}),t[191]=$,t[192]=Z.cancel,t[193]=Jt):Jt=t[193];let Yt=!Le,Xt;t[194]!==Ae||t[195]!==Z.applyCurrent||t[196]!==Yt?(Xt=(0,R.jsx)(A,{type:`button`,variant:`secondary`,disabled:Yt,onClick:Ae,children:Z.applyCurrent}),t[194]=Ae,t[195]=Z.applyCurrent,t[196]=Yt,t[197]=Xt):Xt=t[197];let Zt;t[198]===De?Zt=t[199]:(Zt=()=>void De(),t[198]=De,t[199]=Zt);let Qt;t[200]===ze?Qt=t[201]:(Qt=ze?(0,R.jsx)(D,{className:`size-4`,strokeWidth:1.75,"aria-hidden":!0}):(0,R.jsx)(p,{className:`size-4`,strokeWidth:1.75,"aria-hidden":!0}),t[200]=ze,t[201]=Qt);let $t=ze?Z.regenerate:Z.generate,en;t[202]!==Y||t[203]!==Zt||t[204]!==Qt||t[205]!==$t?(en=(0,R.jsxs)(A,{type:`button`,variant:`secondary`,disabled:Y,onClick:Zt,children:[Qt,$t]}),t[202]=Y,t[203]=Zt,t[204]=Qt,t[205]=$t,t[206]=en):en=t[206];let tn=!Ie,nn;t[207]!==Pe||t[208]!==Z.append||t[209]!==tn?(nn=(0,R.jsx)(A,{type:`button`,variant:`secondary`,disabled:tn,onClick:Pe,children:Z.append}),t[207]=Pe,t[208]=Z.append,t[209]=tn,t[210]=nn):nn=t[210];let rn=!Ie,an;t[211]!==Me||t[212]!==Z.replace||t[213]!==rn?(an=(0,R.jsx)(A,{type:`button`,variant:`primary`,disabled:rn,onClick:Me,children:Z.replace}),t[211]=Me,t[212]=Z.replace,t[213]=rn,t[214]=an):an=t[214];let on;t[215]!==Jt||t[216]!==Xt||t[217]!==en||t[218]!==nn||t[219]!==an?(on=(0,R.jsxs)(`div`,{className:`flex shrink-0 justify-end gap-2 border-t border-edge px-4 py-3`,children:[Jt,Xt,en,nn,an]}),t[215]=Jt,t[216]=Xt,t[217]=en,t[218]=nn,t[219]=an,t[220]=on):on=t[220];let sn;t[221]!==Ze||t[222]!==qt||t[223]!==on?(sn=(0,R.jsxs)(d,{children:[qe,(0,R.jsx)(`div`,{className:`fixed inset-0 z-[80] flex items-center justify-center p-4 pointer-events-none`,children:(0,R.jsxs)(j,{className:`xopc-dialog-content-pane pointer-events-auto flex h-[min(78vh,38rem)] w-full max-w-4xl flex-col overflow-hidden rounded-2xl border border-edge bg-surface-panel shadow-popover outline-none`,onOpenAutoFocus:ae,children:[Ze,qt,on]})})]}),t[221]=Ze,t[222]=qt,t[223]=on,t[224]=sn):sn=t[224];let cn;t[225]!==P||t[226]!==Ke||t[227]!==sn?(cn=(0,R.jsx)(g,{open:P,onOpenChange:Ke,children:sn}),t[225]=P,t[226]=Ke,t[227]=sn,t[228]=cn):cn=t[228];let ln;return t[229]!==cn||t[230]!==Ge?(ln=(0,R.jsxs)(R.Fragment,{children:[Ge,cn]}),t[229]=cn,t[230]=Ge,t[231]=ln):ln=t[231],ln}function ie(e){return!e}function ae(e){return e.preventDefault()}function B(e,t){return e[t]??t}function V(e){let t=(0,N.c)(12),{examples:n,labels:r,onSelect:i}=e;if(n.length===0)return null;let a;t[0]===r.examplePrompts?a=t[1]:(a=(0,R.jsx)(`div`,{className:`text-xs font-medium text-fg-muted`,children:r.examplePrompts}),t[0]=r.examplePrompts,t[1]=a);let o;if(t[2]!==n||t[3]!==i){let e;t[5]===i?e=t[6]:(e=e=>(0,R.jsx)(`button`,{type:`button`,onClick:()=>i(e),className:`rounded-lg border border-edge bg-surface-base/50 px-3 py-2 text-left text-xs text-fg-muted hover:bg-surface-hover`,children:e.text},`${e.field}:${e.text}`),t[5]=i,t[6]=e),o=n.map(e),t[2]=n,t[3]=i,t[4]=o}else o=t[4];let s;t[7]===o?s=t[8]:(s=(0,R.jsx)(`div`,{className:`mt-2 flex flex-col gap-1.5`,children:o}),t[7]=o,t[8]=s);let c;return t[9]!==a||t[10]!==s?(c=(0,R.jsxs)(`div`,{children:[a,s]}),t[9]=a,t[10]=s,t[11]=c):c=t[11],c}function H(e){let t=(0,N.c)(34),{workflowName:n,language:r,argValues:o,onArgValuesChange:s,goal:c,onGoalChange:l,examplePrompts:u,showGoal:d,inputClassName:f,aiAssist:p}=e,m;t[0]===u?m=t[1]:(m=u===void 0?[]:u,t[0]=u,t[1]=m);let h=m,g=d===void 0?!0:d,_,y,b,S,C,w,T;if(t[2]!==p||t[3]!==o||t[4]!==h||t[5]!==c||t[6]!==f||t[7]!==r||t[8]!==s||t[9]!==l||t[10]!==g||t[11]!==n){b=a(r).workflows;let e=v[n]??[];y=e.length>0;let u=i(`mt-1.5 w-full rounded-xl border border-edge bg-surface-base px-3 py-2 text-sm text-fg outline-none placeholder:text-fg-subtle focus:border-accent focus:ring-2 focus:ring-accent/20`,f),d;t[19]!==o||t[20]!==s||t[21]!==l?(d=e=>{x(e,l,e=>{s(e(o))})},t[19]=o,t[20]=s,t[21]=l,t[22]=d):d=t[22],_=d,S=`flex flex-col gap-3`,C=e.map(e=>{let t=B(b.args,e.labelKey),a=B(b.args,e.placeholderKey),c=o[e.key]??``;return(0,R.jsxs)(`div`,{className:`flex flex-col gap-1`,children:[(0,R.jsxs)(`span`,{className:`flex items-center justify-between gap-2`,children:[(0,R.jsxs)(`span`,{className:`text-xs font-medium text-fg-muted`,children:[t,e.required?` *`:``]}),e.multiline&&p?(0,R.jsx)(z,{value:c,onApply:t=>s({...o,[e.key]:t}),fieldId:`workflow.arg.${e.key}`,fieldLabel:t,scenario:p.argScenario??`workflow.arg`,locale:r,context:{...p.context,workflowName:n,workflowArgs:o,fieldKey:e.key},disabled:p.disabled,showLabel:!1}):null]}),e.multiline?(0,R.jsx)(`textarea`,{value:c,onChange:t=>s({...o,[e.key]:t.target.value}),placeholder:a,className:i(u,`min-h-20 resize-y`)}):(0,R.jsx)(`input`,{value:c,onChange:t=>s({...o,[e.key]:t.target.value}),placeholder:a,className:u})]},e.key)}),w=y&&h.length>0?(0,R.jsx)(V,{examples:h,labels:b,onSelect:_}):null,T=g?(0,R.jsxs)(`div`,{className:`flex flex-col gap-1`,children:[(0,R.jsxs)(`span`,{className:`flex items-center justify-between gap-2`,children:[(0,R.jsx)(`span`,{className:`text-xs font-medium text-fg-muted`,children:b.goalLabel}),p?(0,R.jsx)(z,{value:c,onApply:l,fieldId:`workflow.goal`,fieldLabel:b.goalLabel,scenario:p.goalScenario??`cron.workflowGoal`,locale:r,context:{...p.context,workflowName:n,workflowArgs:o},disabled:p.disabled,showLabel:!1}):null]}),(0,R.jsx)(`textarea`,{value:c,onChange:e=>l(e.target.value),placeholder:b.goalPlaceholder,className:i(u,`min-h-20 resize-y`)})]}):null,t[2]=p,t[3]=o,t[4]=h,t[5]=c,t[6]=f,t[7]=r,t[8]=s,t[9]=l,t[10]=g,t[11]=n,t[12]=_,t[13]=y,t[14]=b,t[15]=S,t[16]=C,t[17]=w,t[18]=T}else _=t[12],y=t[13],b=t[14],S=t[15],C=t[16],w=t[17],T=t[18];let E;t[23]!==_||t[24]!==h||t[25]!==y||t[26]!==b?(E=!y&&h.length>0?(0,R.jsx)(V,{examples:h,labels:b,onSelect:_}):null,t[23]=_,t[24]=h,t[25]=y,t[26]=b,t[27]=E):E=t[27];let D;return t[28]!==S||t[29]!==C||t[30]!==w||t[31]!==T||t[32]!==E?(D=(0,R.jsxs)(`div`,{className:S,children:[C,w,T,E]}),t[28]=S,t[29]=C,t[30]=w,t[31]=T,t[32]=E,t[33]=D):D=t[33],D}var U=`mt-1.5 w-full rounded-xl border border-edge bg-surface-base px-3 py-2 text-sm text-fg outline-none placeholder:text-fg-subtle focus:border-accent focus:ring-2 focus:ring-accent/20`;function W(e){return!!(e&&e.type===`object`&&e.properties&&!Array.isArray(e.properties))}function G({schema:e,value:t,onChange:n,labels:r,aiAssist:a,onValidChange:o}){let s=(0,M.useMemo)(()=>K(e),[e]),[c,l]=(0,M.useState)(!1),[u,d]=(0,M.useState)(()=>JSON.stringify(t,null,2)),[f,p]=(0,M.useState)(null);if(s.length===0)return null;let m=(e,r)=>{let i={...t,[e]:r};(r===``||r===void 0)&&delete i[e],n(i),c&&d(JSON.stringify(i,null,2))},h=e=>{d(e);try{let t=e.trim()?JSON.parse(e):{};if(!t||typeof t!=`object`||Array.isArray(t)){p(r.rawJsonInvalid),o?.(!1);return}p(null),n(t),o?.(!0,t)}catch{p(r.rawJsonInvalid),o?.(!1)}};return(0,R.jsxs)(`section`,{className:`rounded-2xl bg-surface-panel/70 p-4 shadow-surface`,children:[(0,R.jsxs)(`div`,{className:`flex items-center justify-between gap-3`,children:[(0,R.jsx)(`h3`,{className:`text-sm font-semibold text-fg`,children:r.inputSchemaHeading}),(0,R.jsx)(`button`,{type:`button`,className:`text-xs font-medium text-accent-fg hover:underline`,onClick:()=>{let e=!c;l(e),e&&(d(JSON.stringify(t,null,2)),p(null),o?.(!0))},children:r.rawJson})]}),c?(0,R.jsxs)(`div`,{className:`mt-3`,children:[(0,R.jsx)(`textarea`,{value:u,onChange:e=>h(e.target.value),spellCheck:!1,className:i(U,`min-h-40 font-mono text-xs leading-5`)}),f?(0,R.jsx)(`p`,{className:`mt-1 text-xs text-red-600 dark:text-red-300`,children:f}):null]}):(0,R.jsx)(`div`,{className:`mt-3 grid gap-3`,children:s.map(e=>(0,R.jsx)(oe,{field:e,value:t[e.key],labels:r,aiAssist:a,allValues:t,onChange:t=>m(e.key,t)},e.key))})]})}function oe(e){let t=(0,N.c)(30),{field:n,value:r,labels:a,aiAssist:o,allValues:s,onChange:l}=e,u=n.schema.title||n.key,d=typeof n.schema.description==`string`?n.schema.description:void 0,f=Array.isArray(n.schema.type)?n.schema.type[0]:n.schema.type,p;t[0]===n.schema.enum?p=t[1]:(p=Array.isArray(n.schema.enum)?n.schema.enum:[],t[0]=n.schema.enum,t[1]=p);let m=p,h=!!o&&!m.length&&(f===`string`||!f),g=String(u),_=n.required?` *`:``,v;t[2]!==g||t[3]!==_?(v=(0,R.jsxs)(`span`,{className:`text-xs font-medium text-fg`,children:[g,_]}),t[2]=g,t[3]=_,t[4]=v):v=t[4];let y;t[5]!==o||t[6]!==s||t[7]!==n.key||t[8]!==n.schema||t[9]!==l||t[10]!==h||t[11]!==u||t[12]!==r?(y=h&&o?(0,R.jsx)(z,{value:typeof r==`string`?r:r==null?``:String(r),onApply:l,fieldId:`workflow.schema.${n.key}`,fieldLabel:String(u),scenario:o.scenario??`workflow.arg`,locale:o.locale,context:{...o.context,fieldKey:n.key,fieldSchema:n.schema,inputValues:s},disabled:o.disabled,showLabel:!1}):null,t[5]=o,t[6]=s,t[7]=n.key,t[8]=n.schema,t[9]=l,t[10]=h,t[11]=u,t[12]=r,t[13]=y):y=t[13];let b;t[14]!==v||t[15]!==y?(b=(0,R.jsxs)(`span`,{className:`flex items-center justify-between gap-2`,children:[v,y]}),t[14]=v,t[15]=y,t[16]=b):b=t[16];let x;t[17]===d?x=t[18]:(x=d?(0,R.jsx)(`p`,{className:`mt-0.5 text-xs leading-5 text-fg-subtle`,children:d}):null,t[17]=d,t[18]=x);let S;t[19]!==d||t[20]!==m||t[21]!==a||t[22]!==l||t[23]!==f||t[24]!==r?(S=m.length>0?(0,R.jsxs)(c,{value:r==null?``:String(r),onChange:e=>l(e.target.value),className:U,children:[(0,R.jsx)(k,{value:``}),m.map(se)]}):f===`boolean`?(0,R.jsxs)(c,{value:typeof r==`boolean`?String(r):``,onChange:e=>l(e.target.value===``?void 0:e.target.value===`true`),className:U,children:[(0,R.jsx)(k,{value:``}),(0,R.jsx)(k,{value:`true`,children:a.booleanTrue}),(0,R.jsx)(k,{value:`false`,children:a.booleanFalse})]}):f===`number`||f===`integer`?(0,R.jsx)(`input`,{type:`number`,value:typeof r==`number`||typeof r==`string`?String(r):``,onChange:e=>l(e.target.value===``?void 0:Number(e.target.value)),className:U}):(0,R.jsx)(`textarea`,{value:typeof r==`string`?r:r==null?``:String(r),onChange:e=>l(e.target.value),className:i(U,d&&d.length>80?`min-h-20 resize-y`:`min-h-10 resize-y`)}),t[19]=d,t[20]=m,t[21]=a,t[22]=l,t[23]=f,t[24]=r,t[25]=S):S=t[25];let C;return t[26]!==b||t[27]!==x||t[28]!==S?(C=(0,R.jsxs)(`div`,{className:`block`,children:[b,x,S]}),t[26]=b,t[27]=x,t[28]=S,t[29]=C):C=t[29],C}function se(e){return(0,R.jsx)(k,{value:String(e),children:String(e)},String(e))}function K(e){let t=e.properties??{},n=new Set(e.required??[]);return Object.entries(t).map(([e,t])=>({key:e,schema:t,required:n.has(e)}))}function q(e,t){return!W(e)||!e?!0:K(e).every(e=>{if(!e.required)return!0;let n=t[e.key];return n==null?!1:typeof n==`string`?n.trim().length>0:!0})}function J(e){let t=(0,N.c)(12),{examples:n,labels:r,onSelect:i}=e;if(n.length===0)return null;let a;t[0]===r.examplePrompts?a=t[1]:(a=(0,R.jsx)(`div`,{className:`text-xs font-medium text-fg-muted`,children:r.examplePrompts}),t[0]=r.examplePrompts,t[1]=a);let o;if(t[2]!==n||t[3]!==i){let e;t[5]===i?e=t[6]:(e=e=>(0,R.jsx)(`button`,{type:`button`,onClick:()=>i(e),className:`rounded-lg border border-edge bg-surface-base/50 px-3 py-2 text-left text-xs text-fg-muted hover:bg-surface-hover`,children:e.text},`${e.field}:${e.text}`),t[5]=i,t[6]=e),o=n.map(e),t[2]=n,t[3]=i,t[4]=o}else o=t[4];let s;t[7]===o?s=t[8]:(s=(0,R.jsx)(`div`,{className:`mt-2 flex flex-col gap-1.5`,children:o}),t[7]=o,t[8]=s);let c;return t[9]!==a||t[10]!==s?(c=(0,R.jsxs)(`div`,{children:[a,s]}),t[9]=a,t[10]=s,t[11]=c):c=t[11],c}function Y(e,t){if(e)return W(e.inputSchema)?Object.keys(t.schemaInput).length>0?t.schemaInput:void 0:h(t.argValues)}function X(e,t,n){let r=a(t).workflows;if(!e)return r.noInputSummary;let i=C(e,t);if(W(e.inputSchema)&&Object.keys(n.schemaInput).length>0)return Object.entries(n.schemaInput).map(([e,t])=>`${e}: ${String(t)}`).join(` · `);let o=Object.values(n.argValues).map(e=>e.trim()).filter(Boolean),s=n.goal.trim()||i.description;return s&&o.unshift(s),o.length>0?o.join(` · `):r.noInputSummary}function ce(e,t,n=!0){return e?n?W(e.inputSchema)?q(e.inputSchema,t.schemaInput)?{valid:!0}:{valid:!1,reason:`schema-required`}:{valid:(v[e.name]??[]).every(e=>!e.required||!!t.argValues[e.key]?.trim())}:{valid:!1,reason:`raw-json`}:{valid:!1}}function le(e){let t=(0,N.c)(114),{definition:n,language:r,value:o,onChange:s,aiAssist:c,inputClassName:l,onValidityChange:u}=e,d;t[0]===r?d=t[1]:(d=a(r),t[0]=r,t[1]=d);let f=d.workflows,p;t[2]!==n||t[3]!==r?(p=C(n,r),t[2]=n,t[3]=r,t[4]=p):p=t[4];let m=p,[h,g]=(0,M.useState)(!0),_;t[5]===m.examplePrompts?_=t[6]:(_=m.examplePrompts??[],t[5]=m.examplePrompts,t[6]=_);let v=_,y;t[7]===n.inputSchema?y=t[8]:(y=W(n.inputSchema),t[7]=n.inputSchema,t[8]=y);let b=y,x,S,w,T,E,D,O,ee,k,A;if(t[9]!==c||t[10]!==n||t[11]!==v||t[12]!==b||t[13]!==l||t[14]!==f||t[15]!==r||t[16]!==m.description||t[17]!==s||t[18]!==u||t[19]!==h||t[20]!==o){E=Symbol.for(`react.early_return_sentinel`);bb0:{let e=i(`mt-1.5 w-full rounded-xl border border-edge bg-surface-base px-3 py-2 text-sm text-fg outline-none placeholder:text-fg-subtle focus:border-accent focus:ring-2 focus:ring-accent/20`,l),a;t[31]!==n||t[32]!==s||t[33]!==u||t[34]!==h?(a=(e,t)=>{let r=t===void 0?h:t;s(e),u?.(ce(n,e,r))},t[31]=n,t[32]=s,t[33]=u,t[34]=h,t[35]=a):a=t[35];let d=a,p;t[36]!==d||t[37]!==o?(p=e=>d({...o,goal:e}),t[36]=d,t[37]=o,t[38]=p):p=t[38];let _=p,y;t[39]!==d||t[40]!==o?(y=e=>d({...o,schemaInput:e}),t[39]=d,t[40]=o,t[41]=y):y=t[41];let C=y,j;t[42]!==d||t[43]!==o?(j=e=>d({...o,argValues:e}),t[42]=d,t[43]=o,t[44]=j):j=t[44];let M=j,N;if(t[45]!==_||t[46]!==C||t[47]!==o.schemaInput?(N=e=>{if(e.field===`goal`){_(e.text);return}C({...o.schemaInput,[e.field]:e.text})},t[45]=_,t[46]=C,t[47]=o.schemaInput,t[48]=N):N=t[48],x=N,!b){let e;t[49]!==c||t[50]!==n.id||t[51]!==n.name||t[52]!==n.title||t[53]!==m.description?(e=c?{disabled:c.disabled,argScenario:c.inputScenario??`workflow.arg`,goalScenario:c.goalScenario??`workflow.goal`,context:{...c.context,workflowId:n.id,workflowName:n.name,workflowTitle:n.title,workflowDescription:m.description}}:void 0,t[49]=c,t[50]=n.id,t[51]=n.name,t[52]=n.title,t[53]=m.description,t[54]=e):e=t[54];let i;t[55]!==n.name||t[56]!==v||t[57]!==l||t[58]!==r||t[59]!==M||t[60]!==_||t[61]!==e||t[62]!==o.argValues||t[63]!==o.goal?(i=(0,R.jsx)(H,{workflowName:n.name,language:r,argValues:o.argValues,onArgValuesChange:M,goal:o.goal,onGoalChange:_,examplePrompts:v,inputClassName:l,aiAssist:e}),t[55]=n.name,t[56]=v,t[57]=l,t[58]=r,t[59]=M,t[60]=_,t[61]=e,t[62]=o.argValues,t[63]=o.goal,t[64]=i):i=t[64],E=i;break bb0}w=`flex flex-col gap-3`,t[65]!==c||t[66]!==n||t[67]!==f.booleanFalse||t[68]!==f.booleanTrue||t[69]!==f.inputSchemaHeading||t[70]!==f.rawJson||t[71]!==f.rawJsonInvalid||t[72]!==r||t[73]!==m.description||t[74]!==u||t[75]!==C||t[76]!==o?(T=n.inputSchema?(0,R.jsx)(G,{schema:n.inputSchema,value:o.schemaInput,onChange:C,onValidChange:(e,t)=>{g(e),u?.(ce(n,t?{...o,schemaInput:t}:o,e))},aiAssist:c?{locale:r,disabled:c.disabled,scenario:c.inputScenario??`workflow.arg`,context:{...c.context,workflowId:n.id,workflowName:n.name,workflowTitle:n.title,workflowDescription:m.description}}:void 0,labels:{inputSchemaHeading:f.inputSchemaHeading,rawJson:f.rawJson,rawJsonInvalid:f.rawJsonInvalid,booleanTrue:f.booleanTrue,booleanFalse:f.booleanFalse}}):null,t[65]=c,t[66]=n,t[67]=f.booleanFalse,t[68]=f.booleanTrue,t[69]=f.inputSchemaHeading,t[70]=f.rawJson,t[71]=f.rawJsonInvalid,t[72]=r,t[73]=m.description,t[74]=u,t[75]=C,t[76]=o,t[77]=T):T=t[77],A=`flex flex-col gap-1`;let P;t[78]===f.goalLabel?P=t[79]:(P=(0,R.jsx)(`span`,{className:`text-xs font-medium text-fg-muted`,children:f.goalLabel}),t[78]=f.goalLabel,t[79]=P);let F;t[80]!==c||t[81]!==n.id||t[82]!==n.name||t[83]!==n.title||t[84]!==f.goalLabel||t[85]!==r||t[86]!==m.description||t[87]!==_||t[88]!==o.goal||t[89]!==o.schemaInput?(F=c?(0,R.jsx)(z,{value:o.goal,onApply:_,fieldId:`workflow.goal`,fieldLabel:f.goalLabel,scenario:c.goalScenario??`workflow.goal`,locale:r,context:{...c.context,workflowId:n.id,workflowName:n.name,workflowTitle:n.title,workflowDescription:m.description,workflowInput:o.schemaInput},disabled:c.disabled,showLabel:!1}):null,t[80]=c,t[81]=n.id,t[82]=n.name,t[83]=n.title,t[84]=f.goalLabel,t[85]=r,t[86]=m.description,t[87]=_,t[88]=o.goal,t[89]=o.schemaInput,t[90]=F):F=t[90],t[91]!==P||t[92]!==F?(S=(0,R.jsxs)(`span`,{className:`flex items-center justify-between gap-2`,children:[P,F]}),t[91]=P,t[92]=F,t[93]=S):S=t[93],D=o.goal,t[94]===_?O=t[95]:(O=e=>_(e.target.value),t[94]=_,t[95]=O),ee=f.goalPlaceholder,k=i(e,`min-h-20 resize-y`)}t[9]=c,t[10]=n,t[11]=v,t[12]=b,t[13]=l,t[14]=f,t[15]=r,t[16]=m.description,t[17]=s,t[18]=u,t[19]=h,t[20]=o,t[21]=x,t[22]=S,t[23]=w,t[24]=T,t[25]=E,t[26]=D,t[27]=O,t[28]=ee,t[29]=k,t[30]=A}else x=t[21],S=t[22],w=t[23],T=t[24],E=t[25],D=t[26],O=t[27],ee=t[28],k=t[29],A=t[30];if(E!==Symbol.for(`react.early_return_sentinel`))return E;let j;t[96]!==D||t[97]!==O||t[98]!==ee||t[99]!==k?(j=(0,R.jsx)(`textarea`,{value:D,onChange:O,placeholder:ee,className:k}),t[96]=D,t[97]=O,t[98]=ee,t[99]=k,t[100]=j):j=t[100];let P;t[101]!==S||t[102]!==j||t[103]!==A?(P=(0,R.jsxs)(`div`,{className:A,children:[S,j]}),t[101]=S,t[102]=j,t[103]=A,t[104]=P):P=t[104];let F;t[105]!==x||t[106]!==v||t[107]!==f?(F=(0,R.jsx)(J,{examples:v,labels:f,onSelect:x}),t[105]=x,t[106]=v,t[107]=f,t[108]=F):F=t[108];let I;return t[109]!==w||t[110]!==T||t[111]!==P||t[112]!==F?(I=(0,R.jsxs)(`div`,{className:w,children:[T,P,F]}),t[109]=w,t[110]=T,t[111]=P,t[112]=F,t[113]=I):I=t[113],I}function ue(e,t){let n=e.metadata.estimatedAgents;return n?n.min===n.max?E(t.agentScaleExact,{count:n.min}):E(t.agentScaleRange,{min:n.min,max:n.max}):E(t.agentScaleExact,{count:e.defaults.maxSubagents})}function Z(e){let t=(0,N.c)(41),{definition:n,language:r,value:o,onChange:s,mode:c,badgeLabel:l,aiAssist:u,inputClassName:d,showTimeout:p,defaultAdvancedOpen:m,onValidityChange:h}=e,g=p===void 0?!1:p,v=m===void 0?!1:m,y=a(r).workflows,[b,x]=(0,M.useState)(v),S;t[0]!==n||t[1]!==r?(S=C(n,r),t[0]=n,t[1]=r,t[2]=S):S=t[2];let w=S,D;t[3]!==n.defaults||t[4]!==o.concurrency?(D=o.concurrency.trim()?Number(o.concurrency):n.defaults.concurrency,t[3]=n.defaults,t[4]=o.concurrency,t[5]=D):D=t[5];let k=D,A;t[6]!==n.defaults||t[7]!==o.maxSubagents?(A=o.maxSubagents.trim()?Number(o.maxSubagents):n.defaults.maxSubagents,t[6]=n.defaults,t[7]=o.maxSubagents,t[8]=A):A=t[8];let j=A,P;t[9]!==n||t[10]!==r||t[11]!==o?(P=X(n,r,o),t[9]=n,t[10]=r,t[11]=o,t[12]=P):P=t[12];let F=P,I=l??y.readyToStart,L;t[13]!==s||t[14]!==o?(L=e=>s({...o,...e}),t[13]=s,t[14]=o,t[15]=L):L=t[15];let te=L,ne=c===`automation`&&`rounded-xl bg-surface-panel/70 p-3 shadow-surface`,re;t[16]===ne?re=t[17]:(re=i(`space-y-4`,ne),t[16]=ne,t[17]=re);let z=F||w.description,ie;t[18]===z?ie=t[19]:(ie=(0,R.jsx)(`p`,{className:`mt-1 line-clamp-2 text-xs leading-5 text-fg-muted`,children:z}),t[18]=z,t[19]=ie);let ae;t[20]===Symbol.for(`react.memo_cache_sentinel`)?(ae=(0,R.jsx)(O,{className:`size-3.5 shrink-0 text-fg-subtle`,"aria-hidden":!0}),t[20]=ae):ae=t[20];let B;t[21]===Symbol.for(`react.memo_cache_sentinel`)?(B=(0,R.jsx)(f,{className:`size-3.5 shrink-0 text-fg-subtle`,"aria-hidden":!0}),t[21]=B):B=t[21];let V;t[22]===Symbol.for(`react.memo_cache_sentinel`)?(V=(0,R.jsx)(T,{className:`size-3.5 shrink-0 text-fg-subtle`,"aria-hidden":!0}),t[22]=V):V=t[22];let H;t[23]!==s||t[24]!==o?(H=e=>s({...o,...e}),t[23]=s,t[24]=o,t[25]=H):H=t[25];let U;t[26]===h?U=t[27]:(U=e=>{h?.(e)},t[26]=h,t[27]=U);let W;t[28]!==u||t[29]!==n||t[30]!==d||t[31]!==r||t[32]!==H||t[33]!==U||t[34]!==o?(W=(0,R.jsx)(le,{definition:n,language:r,value:o,onChange:H,onValidityChange:U,aiAssist:u,inputClassName:d}),t[28]=u,t[29]=n,t[30]=d,t[31]=r,t[32]=H,t[33]=U,t[34]=o,t[35]=W):W=t[35];let G;t[36]===Symbol.for(`react.memo_cache_sentinel`)?(G=()=>x(de),t[36]=G):G=t[36];let oe=y.advancedSettings,se=b&&`rotate-180`,K;t[37]===se?K=t[38]:(K=i(`size-4 transition-transform`,se),t[37]=se,t[38]=K);let q;return t[39]===K?q=t[40]:(q=(0,R.jsx)(ee,{className:K}),t[39]=K,t[40]=q),(0,R.jsxs)(`div`,{className:re,children:[(0,R.jsxs)(`section`,{className:`rounded-2xl bg-surface-panel p-4 shadow-surface`,children:[(0,R.jsxs)(`div`,{className:`flex items-center justify-between gap-3`,children:[(0,R.jsxs)(`div`,{className:`min-w-0`,children:[(0,R.jsx)(`h3`,{className:`truncate text-sm font-semibold text-fg`,children:y.runPlanPreview}),ie]}),(0,R.jsx)(`span`,{className:`shrink-0 rounded-full bg-accent-soft px-2 py-1 text-[11px] font-medium text-accent-fg`,children:I})]}),(0,R.jsxs)(`div`,{className:`mt-4 grid gap-2 text-xs text-fg-muted sm:grid-cols-3`,children:[(0,R.jsxs)(`div`,{className:`flex items-center gap-2 rounded-xl bg-surface-panel px-2.5 py-2`,children:[ae,(0,R.jsx)(`span`,{children:E(y.phaseCount,{count:n.phases.length})})]}),(0,R.jsxs)(`div`,{className:`flex items-center gap-2 rounded-xl bg-surface-panel px-2.5 py-2`,children:[B,(0,R.jsx)(`span`,{children:ue(n,y)})]}),(0,R.jsxs)(`div`,{className:`flex items-center gap-2 rounded-xl bg-surface-panel px-2.5 py-2`,children:[V,(0,R.jsx)(`span`,{children:E(y.runLimitsSummary,{concurrency:k,max:j})})]})]}),n.phases.length>0?(0,R.jsxs)(`div`,{className:`mt-4`,children:[(0,R.jsxs)(`div`,{className:`flex items-center gap-2 text-[11px] font-medium uppercase tracking-wide text-fg-subtle`,children:[(0,R.jsx)(_,{className:`size-3.5`,"aria-hidden":!0}),y.startPlanPhases]}),(0,R.jsx)(`div`,{className:`mt-2 flex flex-wrap items-center gap-1.5`,children:n.phases.map(Q)})]}):null]}),W,(0,R.jsxs)(`div`,{className:`rounded-xl border border-edge`,children:[(0,R.jsxs)(`button`,{type:`button`,className:`flex w-full items-center justify-between px-3 py-2.5 text-left text-sm text-fg`,onClick:G,children:[oe,q]}),b?(0,R.jsxs)(`div`,{className:`grid gap-3 border-t border-edge px-3 pb-3 pt-3 sm:grid-cols-2`,children:[(0,R.jsx)(`input`,{value:o.concurrency,onChange:e=>te({concurrency:e.target.value}),placeholder:E(y.concurrencyPlaceholder,{default:n.defaults.concurrency}),inputMode:`numeric`,className:`rounded-xl border border-edge bg-surface-base px-3 py-2 text-sm text-fg outline-none placeholder:text-fg-subtle focus:border-accent focus:ring-2 focus:ring-accent/20`}),(0,R.jsx)(`input`,{value:o.maxSubagents,onChange:e=>te({maxSubagents:e.target.value}),placeholder:E(y.maxSubagentsPlaceholder,{default:n.defaults.maxSubagents}),inputMode:`numeric`,className:`rounded-xl border border-edge bg-surface-base px-3 py-2 text-sm text-fg outline-none placeholder:text-fg-subtle focus:border-accent focus:ring-2 focus:ring-accent/20`}),g?(0,R.jsx)(`input`,{value:o.timeoutSeconds??``,onChange:e=>te({timeoutSeconds:e.target.value}),placeholder:E(y.timeoutSecondsPlaceholder,{default:n.defaults.timeoutSec}),inputMode:`numeric`,className:`rounded-xl border border-edge bg-surface-base px-3 py-2 text-sm text-fg outline-none placeholder:text-fg-subtle focus:border-accent focus:ring-2 focus:ring-accent/20`}):null]}):null]})]})}function de(e){return!e}function Q(e,t){return(0,R.jsxs)(`div`,{className:`flex items-center gap-1.5`,children:[t>0?(0,R.jsx)(`span`,{className:`text-fg-subtle`,children:`→`}):null,(0,R.jsx)(`span`,{className:`rounded-lg border border-edge-subtle bg-surface-panel px-2 py-1 text-[11px] text-fg-muted`,children:e.title})]},e.id)}export{z as i,Y as n,ce as r,Z as t};
@@ -1 +1 @@
1
- import{i as e}from"./rolldown-runtime-aKtaBQYM.js";import{a as t,n,t as r}from"./vendor-react-BOUWij0V.js";import{t as i}from"./messages-DR9ODkb8.js";import{Ba as a,Ha as o,Ua as s,Va as c,Wa as l,Z as u,wo as d,za as f}from"./index-BjGnv8uJ.js";import{n as p,t as m}from"./workflow-run-setup-panel-eKBZIV-N.js";var h=n(),g=e(t(),1),_=r();function v(e){let t=(0,h.c)(58),{open:n,definition:r,language:v,starting:y,onClose:b,onStart:x}=e,S;t[0]===v?S=t[1]:(S=i(v),t[0]=v,t[1]=S);let C=S.workflows,w;t[2]===Symbol.for(`react.memo_cache_sentinel`)?(w={goal:``,argValues:{},schemaInput:{},concurrency:``,maxSubagents:``},t[2]=w):w=t[2];let[T,E]=(0,g.useState)(w),D;t[3]!==r||t[4]!==v?(D=r?u(r,v):null,t[3]=r,t[4]=v,t[5]=D):D=t[5];let O=D,k;t[6]!==r||t[7]!==n?(k=()=>{!n||!r||E({goal:``,argValues:{},schemaInput:{},concurrency:``,maxSubagents:``})},t[6]=r,t[7]=n,t[8]=k):k=t[8];let A=r?.id,j;if(t[9]!==n||t[10]!==A?(j=[n,A],t[9]=n,t[10]=A,t[11]=j):j=t[11],(0,g.useEffect)(k,j),!r||!O)return null;let M;t[12]!==r||t[13]!==T||t[14]!==O.description||t[15]!==x?(M=()=>{let e=p(r,T);x({goal:T.goal.trim()||O.description,input:e,concurrency:T.concurrency.trim()?Number(T.concurrency):void 0,maxSubagents:T.maxSubagents.trim()?Number(T.maxSubagents):void 0})},t[12]=r,t[13]=T,t[14]=O.description,t[15]=x,t[16]=M):M=t[16];let N=M,P;t[17]===b?P=t[18]:(P=e=>!e&&b(),t[17]=b,t[18]=P);let F;t[19]===Symbol.for(`react.memo_cache_sentinel`)?(F=(0,_.jsx)(c,{className:`xopc-dialog-overlay fixed inset-0 z-65 bg-scrim backdrop-blur-[1px]`}),t[19]=F):F=t[19];let I;t[20]!==r.title||t[21]!==C.startTitle?(I=(0,_.jsxs)(l,{className:`text-base font-semibold text-fg`,children:[C.startTitle,` · `,r.title]}),t[20]=r.title,t[21]=C.startTitle,t[22]=I):I=t[22];let L;t[23]===O.description?L=t[24]:(L=(0,_.jsx)(a,{className:`mt-1 text-sm text-fg-muted`,children:O.description}),t[23]=O.description,t[24]=L);let R;t[25]!==I||t[26]!==L?(R=(0,_.jsxs)(`div`,{className:`border-b border-edge px-5 py-4`,children:[I,L]}),t[25]=I,t[26]=L,t[27]=R):R=t[27];let z;t[28]!==r.id||t[29]!==r.name||t[30]!==r.title||t[31]!==O.description?(z={context:{surface:`workflow-start`,workflowId:r.id,workflowName:r.name,workflowTitle:r.title,workflowDescription:O.description}},t[28]=r.id,t[29]=r.name,t[30]=r.title,t[31]=O.description,t[32]=z):z=t[32];let B;t[33]!==r||t[34]!==T||t[35]!==C.readyToStart||t[36]!==v||t[37]!==z?(B=(0,_.jsx)(`div`,{className:`min-h-0 flex-1 space-y-4 overflow-auto px-5 py-4`,children:(0,_.jsx)(m,{definition:r,language:v,value:T,onChange:E,mode:`manual`,badgeLabel:C.readyToStart,aiAssist:z})}),t[33]=r,t[34]=T,t[35]=C.readyToStart,t[36]=v,t[37]=z,t[38]=B):B=t[38];let V;t[39]!==C.cancelDialog||t[40]!==b||t[41]!==y?(V=(0,_.jsx)(d,{variant:`secondary`,onClick:b,disabled:y,children:C.cancelDialog}),t[39]=C.cancelDialog,t[40]=b,t[41]=y,t[42]=V):V=t[42];let H=y?C.starting:C.start,U;t[43]!==y||t[44]!==N||t[45]!==H?(U=(0,_.jsx)(d,{variant:`primary`,onClick:N,disabled:y,children:H}),t[43]=y,t[44]=N,t[45]=H,t[46]=U):U=t[46];let W;t[47]!==V||t[48]!==U?(W=(0,_.jsxs)(`div`,{className:`flex justify-end gap-2 border-t border-edge px-5 py-4`,children:[V,U]}),t[47]=V,t[48]=U,t[49]=W):W=t[49];let G;t[50]!==R||t[51]!==B||t[52]!==W?(G=(0,_.jsxs)(o,{children:[F,(0,_.jsxs)(f,{className:`fixed left-1/2 top-1/2 z-66 flex max-h-[min(85vh,40rem)] w-[min(100%-2rem,32rem)] -translate-x-1/2 -translate-y-1/2 flex-col overflow-hidden rounded-2xl border border-edge bg-surface-panel shadow-popover outline-none`,children:[R,B,W]})]}),t[50]=R,t[51]=B,t[52]=W,t[53]=G):G=t[53];let K;return t[54]!==n||t[55]!==G||t[56]!==P?(K=(0,_.jsx)(s,{open:n,onOpenChange:P,children:G}),t[54]=n,t[55]=G,t[56]=P,t[57]=K):K=t[57],K}export{v as t};
1
+ import{i as e}from"./rolldown-runtime-aKtaBQYM.js";import{a as t,n,t as r}from"./vendor-react-BOUWij0V.js";import{t as i}from"./messages-DR9ODkb8.js";import{Ba as a,Ha as o,Ua as s,Va as c,Wa as l,Z as u,wo as d,za as f}from"./index-DqFBdoK-.js";import{n as p,t as m}from"./workflow-run-setup-panel-r969H1r2.js";var h=n(),g=e(t(),1),_=r();function v(e){let t=(0,h.c)(58),{open:n,definition:r,language:v,starting:y,onClose:b,onStart:x}=e,S;t[0]===v?S=t[1]:(S=i(v),t[0]=v,t[1]=S);let C=S.workflows,w;t[2]===Symbol.for(`react.memo_cache_sentinel`)?(w={goal:``,argValues:{},schemaInput:{},concurrency:``,maxSubagents:``},t[2]=w):w=t[2];let[T,E]=(0,g.useState)(w),D;t[3]!==r||t[4]!==v?(D=r?u(r,v):null,t[3]=r,t[4]=v,t[5]=D):D=t[5];let O=D,k;t[6]!==r||t[7]!==n?(k=()=>{!n||!r||E({goal:``,argValues:{},schemaInput:{},concurrency:``,maxSubagents:``})},t[6]=r,t[7]=n,t[8]=k):k=t[8];let A=r?.id,j;if(t[9]!==n||t[10]!==A?(j=[n,A],t[9]=n,t[10]=A,t[11]=j):j=t[11],(0,g.useEffect)(k,j),!r||!O)return null;let M;t[12]!==r||t[13]!==T||t[14]!==O.description||t[15]!==x?(M=()=>{let e=p(r,T);x({goal:T.goal.trim()||O.description,input:e,concurrency:T.concurrency.trim()?Number(T.concurrency):void 0,maxSubagents:T.maxSubagents.trim()?Number(T.maxSubagents):void 0})},t[12]=r,t[13]=T,t[14]=O.description,t[15]=x,t[16]=M):M=t[16];let N=M,P;t[17]===b?P=t[18]:(P=e=>!e&&b(),t[17]=b,t[18]=P);let F;t[19]===Symbol.for(`react.memo_cache_sentinel`)?(F=(0,_.jsx)(c,{className:`xopc-dialog-overlay fixed inset-0 z-65 bg-scrim backdrop-blur-[1px]`}),t[19]=F):F=t[19];let I;t[20]!==r.title||t[21]!==C.startTitle?(I=(0,_.jsxs)(l,{className:`text-base font-semibold text-fg`,children:[C.startTitle,` · `,r.title]}),t[20]=r.title,t[21]=C.startTitle,t[22]=I):I=t[22];let L;t[23]===O.description?L=t[24]:(L=(0,_.jsx)(a,{className:`mt-1 text-sm text-fg-muted`,children:O.description}),t[23]=O.description,t[24]=L);let R;t[25]!==I||t[26]!==L?(R=(0,_.jsxs)(`div`,{className:`border-b border-edge px-5 py-4`,children:[I,L]}),t[25]=I,t[26]=L,t[27]=R):R=t[27];let z;t[28]!==r.id||t[29]!==r.name||t[30]!==r.title||t[31]!==O.description?(z={context:{surface:`workflow-start`,workflowId:r.id,workflowName:r.name,workflowTitle:r.title,workflowDescription:O.description}},t[28]=r.id,t[29]=r.name,t[30]=r.title,t[31]=O.description,t[32]=z):z=t[32];let B;t[33]!==r||t[34]!==T||t[35]!==C.readyToStart||t[36]!==v||t[37]!==z?(B=(0,_.jsx)(`div`,{className:`min-h-0 flex-1 space-y-4 overflow-auto px-5 py-4`,children:(0,_.jsx)(m,{definition:r,language:v,value:T,onChange:E,mode:`manual`,badgeLabel:C.readyToStart,aiAssist:z})}),t[33]=r,t[34]=T,t[35]=C.readyToStart,t[36]=v,t[37]=z,t[38]=B):B=t[38];let V;t[39]!==C.cancelDialog||t[40]!==b||t[41]!==y?(V=(0,_.jsx)(d,{variant:`secondary`,onClick:b,disabled:y,children:C.cancelDialog}),t[39]=C.cancelDialog,t[40]=b,t[41]=y,t[42]=V):V=t[42];let H=y?C.starting:C.start,U;t[43]!==y||t[44]!==N||t[45]!==H?(U=(0,_.jsx)(d,{variant:`primary`,onClick:N,disabled:y,children:H}),t[43]=y,t[44]=N,t[45]=H,t[46]=U):U=t[46];let W;t[47]!==V||t[48]!==U?(W=(0,_.jsxs)(`div`,{className:`flex justify-end gap-2 border-t border-edge px-5 py-4`,children:[V,U]}),t[47]=V,t[48]=U,t[49]=W):W=t[49];let G;t[50]!==R||t[51]!==B||t[52]!==W?(G=(0,_.jsxs)(o,{children:[F,(0,_.jsxs)(f,{className:`fixed left-1/2 top-1/2 z-66 flex max-h-[min(85vh,40rem)] w-[min(100%-2rem,32rem)] -translate-x-1/2 -translate-y-1/2 flex-col overflow-hidden rounded-2xl border border-edge bg-surface-panel shadow-popover outline-none`,children:[R,B,W]})]}),t[50]=R,t[51]=B,t[52]=W,t[53]=G):G=t[53];let K;return t[54]!==n||t[55]!==G||t[56]!==P?(K=(0,_.jsx)(s,{open:n,onOpenChange:P,children:G}),t[54]=n,t[55]=G,t[56]=P,t[57]=K):K=t[57],K}export{v as t};
@@ -1,4 +1,4 @@
1
- import{i as e}from"./rolldown-runtime-aKtaBQYM.js";import{a as t,n,t as r}from"./vendor-react-BOUWij0V.js";import{t as i}from"./cn-BQ_8x0bT.js";import{t as a}from"./messages-DR9ODkb8.js";import{a as o}from"./fetch-6HXXdO77.js";import{n as s}from"./locale-store-Ba72bFmP.js";import{i as c}from"./vendor-swr-BIWyz7Rc.js";import{$ as l,$a as u,$s as d,A as f,Ac as p,B as m,Ba as h,D as g,Do as _,E as v,Ec as y,El as b,Es as x,F as S,G as C,Ga as w,H as T,Ha as E,I as D,J as O,K as k,Kc as A,Lc as j,M,N,Nc as P,No as ee,O as F,Oc as I,P as L,Pc as R,Q as z,Qo as B,R as V,Ra as te,Ro as H,Rs as ne,Ss as U,U as W,Ua as G,Va as K,W as re,Wa as q,Xc as J,Y as ie,Z as ae,_i as oe,_t as se,b as ce,bs as le,bt as ue,cs as de,ct as fe,dt as pe,er as me,et as he,ft as ge,gt as _e,h as ve,ha as ye,hc as be,ht as xe,j as Se,k as Y,lt as Ce,m as we,mo as Te,mt as Ee,nl as De,ns as Oe,nt as ke,ol as Ae,ps as je,q as Me,qn as Ne,qs as Pe,st as Fe,tc as Ie,tl as Le,to as Re,tt as ze,ut as Be,vo as Ve,vt as He,w as Ue,wl as We,wo as X,xt as Ge,z as Ke,za as qe}from"./index-BjGnv8uJ.js";import{t as Je}from"./page-tabs-CYEVap7D.js";import{t as Ye}from"./automation-suggestion-card-ByjDtlOw.js";import{t as Xe}from"./workflow-start-dialog-B6qfU5GE.js";var Z=e(t(),1),Q=n(),Ze=[`queued`,`running`,`succeeded`,`attention`],Qe=new Set([`failed`,`timeout`,`cancelled`]);function $e(e){return e.metadata?.sessionKey?.trim()||null}function et(e,t){return e.length<=t?e:`${e.slice(0,t-1)}…`}function tt(e,t){if(!e||typeof e!=`object`)return null;let n=e;for(let e of t){let t=n[e];if(typeof t==`string`&&t.trim())return t.trim()}return null}function nt(e,t=90){let n=e.metadata?.input?.goal?.trim()||(typeof e.metadata?.input?.payload==`string`?e.metadata.input.payload.trim():null)||tt(e.metadata?.input?.payload,[`query`,`goal`,`prompt`,`input`,`message`])||tt(e.metadata?.input?.variables,[`query`,`goal`,`prompt`,`input`,`message`]);return n?et(n,t):null}function rt(e,t=90){return nt(e,t)??et(e.title?.trim()||e.definitionId,t)}function it(e,t=44){return et(e.title?.trim()||e.definitionId,t)}function at(e,t){let n=t.trim().toLowerCase();return n?[nt(e,500),e.title,e.definitionId,e.id].filter(Boolean).join(` `).toLowerCase().includes(n):!0}function ot(e,t){let n=t.workflowFilterId.trim();return e.filter(e=>n&&e.definitionId!==n||!L(e,t.triggerFilter??`all`)?!1:at(e,t.searchQuery))}function st(e){return e.completedAtMs??e.createdAtMs}function ct(e,t){return e.status===`queued`?`queued`:e.status===`running`?`running`:e.status===`succeeded`?`succeeded`:Qe.has(e.status)?`attention`:null}function lt(e,t){let n=[...t];return e===`queued`?n.sort((e,t)=>e.createdAtMs-t.createdAtMs):e===`running`?n.sort((e,t)=>(t.startedAtMs??t.createdAtMs)-(e.startedAtMs??e.createdAtMs)):n.sort((e,t)=>st(t)-st(e))}function ut(e,t){let n={queued:[],running:[],succeeded:[],attention:[]};for(let r of e){let e=ct(r,t);e&&n[e].push(r)}return Ze.map(e=>{if(e===`succeeded`){let t=lt(`succeeded`,n.succeeded);return{id:e,runs:t,totalInWindow:t.length}}return{id:e,runs:lt(e,n[e])}})}var dt=new Map;function ft(e){let t=dt.get(e);return t||(t=new Intl.RelativeTimeFormat(e,{numeric:`auto`}),dt.set(e,t)),t}function pt(e,t,n){let r=Math.round((t-e)/1e3),i=ft(n);if(r<60)return i.format(-r,`second`);let a=Math.round(r/60);if(a<60)return i.format(-a,`minute`);let o=Math.round(a/60);if(o<48)return i.format(-o,`hour`);let s=Math.round(o/24);return i.format(-s,`day`)}function mt(e){return e.status===`queued`||e.status===`running`}function ht(e){return e.status===`failed`||e.status===`timeout`||e.status===`cancelled`}var $=r(),gt=(0,Z.memo)(function(e){let t=(0,Q.c)(76),{run:n,language:r,localeTag:o,nowMs:s,selected:c,onOpen:l,onOpenChat:u,onCancel:d,onRetry:f}=e,p=a(r).workflows,[m,h]=(0,Z.useState)(!1),g;t[0]===n?g=t[1]:(g=$e(n),t[0]=n,t[1]=g);let _=!g,v;t[2]===n?v=t[3]:(v=mt(n),t[2]=n,t[3]=v);let y=v,b=n.status===`running`||n.status===`queued`,x;t[4]!==n.metrics.agentCount||t[5]!==n.metrics.doneAgentCount?(x=n.metrics.agentCount>0?Math.round(n.metrics.doneAgentCount/n.metrics.agentCount*100):0,t[4]=n.metrics.agentCount,t[5]=n.metrics.doneAgentCount,t[6]=x):x=t[6];let C=x,w=n.metrics.errorAgentCount>0,T=n.startedAtMs??n.createdAtMs,E=F(y?s-T:n.metrics.durationMs),D=Se(p.taskArtifacts,{count:n.metrics.artifactCount}),O;t[7]===n?O=t[8]:(O=rt(n),t[7]=n,t[8]=O);let k=O,A;t[9]===n?A=t[10]:(A=it(n),t[9]=n,t[10]=A);let j=A,M;t[11]!==l||t[12]!==n?(M=()=>{l(n)},t[11]=l,t[12]=n,t[13]=M):M=t[13];let N=M,P;t[14]!==_||t[15]!==u||t[16]!==n?(P=()=>{_||u(n)},t[14]=_,t[15]=u,t[16]=n,t[17]=P):P=t[17];let ee=P,L=c&&`ring-1 ring-accent/30`,R;t[18]===L?R=t[19]:(R=i(`group relative min-h-24 overflow-hidden rounded-lg bg-surface-panel px-3 py-3 shadow-surface transition-colors`,L,`hover:bg-surface-hover`),t[18]=L,t[19]=R);let z;t[20]===Symbol.for(`react.memo_cache_sentinel`)?(z=i(`w-full text-left`,Ve.focusRingPanel),t[20]=z):z=t[20];let B;t[21]===k?B=t[22]:(B=(0,$.jsx)(`div`,{className:`line-clamp-2 text-sm font-medium leading-5 text-fg`,children:k}),t[21]=k,t[22]=B);let V;t[23]===j?V=t[24]:(V=(0,$.jsx)(`div`,{className:`mt-1 truncate text-[11px] font-medium text-fg-muted`,children:j}),t[23]=j,t[24]=V);let te;t[25]!==B||t[26]!==V?(te=(0,$.jsxs)(`div`,{className:`min-w-0`,children:[B,V]}),t[25]=B,t[26]=V,t[27]=te):te=t[27];let ne;t[28]===n.status?ne=t[29]:(ne=i(`shrink-0 rounded-full px-2 py-0.5 text-[10px] font-semibold shadow-sm`,S(n.status)),t[28]=n.status,t[29]=ne);let U;t[30]!==o||t[31]!==s||t[32]!==T?(U=pt(T,s,o),t[30]=o,t[31]=s,t[32]=T,t[33]=U):U=t[33];let W;t[34]===U?W=t[35]:(W=(0,$.jsx)(`span`,{children:U}),t[34]=U,t[35]=W);let G=E===`—`?null:(0,$.jsxs)($.Fragment,{children:[(0,$.jsx)(`span`,{"aria-hidden":!0,children:`·`}),(0,$.jsx)(`span`,{children:Se(p.taskElapsed,{duration:E})})]}),K;t[36]!==W||t[37]!==G?(K=(0,$.jsxs)(`div`,{className:`mt-2 flex flex-wrap items-center gap-1.5 text-[11px] text-fg-subtle`,children:[W,G]}),t[36]=W,t[37]=G,t[38]=K):K=t[38];let re=n.metrics.artifactCount>0?(0,$.jsx)(`span`,{className:`rounded-full bg-surface-hover px-2 py-0.5 font-medium text-fg-muted`,children:D}):null,q=c?(0,$.jsx)(`span`,{className:`font-medium text-accent-fg`,children:p.taskOpenDetails}):null,J;t[39]!==re||t[40]!==q?(J=(0,$.jsxs)(`div`,{className:`mt-3 flex flex-wrap items-center gap-2 text-[11px] text-fg-subtle`,children:[re,q]}),t[39]=re,t[40]=q,t[41]=J):J=t[41];let ie=_&&`cursor-not-allowed text-fg-disabled hover:bg-transparent`,ae;t[42]===ie?ae=t[43]:(ae=i(`rounded-md px-2 py-1 text-xs font-medium`,`text-accent-fg hover:bg-accent-soft`,Ve.focusRingPanel,ie),t[42]=ie,t[43]=ae);let oe;t[44]!==_||t[45]!==ee||t[46]!==p.continueInChat||t[47]!==ae?(oe=(0,$.jsx)(`button`,{type:`button`,className:ae,disabled:_,onClick:ee,children:p.continueInChat}),t[44]=_,t[45]=ee,t[46]=p.continueInChat,t[47]=ae,t[48]=oe):oe=t[48];let se;t[49]===Symbol.for(`react.memo_cache_sentinel`)?(se=i(`rounded-md px-2 py-1 text-xs font-medium text-fg-muted hover:bg-surface-hover hover:text-fg`,Ve.focusRingPanel),t[49]=se):se=t[49];let ce;t[50]!==N||t[51]!==p.taskOpenDetails?(ce=(0,$.jsx)(`button`,{type:`button`,className:se,onClick:N,children:p.taskOpenDetails}),t[50]=N,t[51]=p.taskOpenDetails,t[52]=ce):ce=t[52];let le;t[53]!==oe||t[54]!==ce?(le=(0,$.jsxs)(`div`,{className:`mt-3 flex flex-wrap items-center gap-2 border-t border-edge-subtle pt-2`,children:[oe,ce]}),t[53]=oe,t[54]=ce,t[55]=le):le=t[55];let ue;t[56]===h?ue=t[57]:(ue=()=>h(vt),t[56]=h,t[57]=ue);let de;t[58]===Symbol.for(`react.memo_cache_sentinel`)?(de=(0,$.jsx)(I,{className:`size-4`,"aria-hidden":!0}),t[58]=de):de=t[58];let fe;t[59]!==p.taskActionsAria||t[60]!==m||t[61]!==ue?(fe=(0,$.jsx)(X,{variant:`ghost`,className:`size-7 p-0 opacity-0 group-hover:opacity-100 group-focus-within:opacity-100`,"aria-label":p.taskActionsAria,"aria-expanded":m,onClick:ue,children:de}),t[59]=p.taskActionsAria,t[60]=m,t[61]=ue,t[62]=fe):fe=t[62];let pe;t[63]!==y||t[64]!==p.cancel||t[65]!==p.rerun||t[66]!==p.taskCloseMenu||t[67]!==m||t[68]!==d||t[69]!==f||t[70]!==n||t[71]!==h?(pe=m?(0,$.jsxs)($.Fragment,{children:[(0,$.jsx)(`button`,{type:`button`,className:`fixed inset-0 z-10 cursor-default`,"aria-label":p.taskCloseMenu,onClick:()=>h(!1)}),(0,$.jsxs)(`div`,{className:`absolute right-0 z-20 mt-1 min-w-36 rounded-lg border border-edge bg-surface-panel py-1 shadow-surface`,children:[y?(0,$.jsx)(_t,{label:p.cancel,tone:`danger`,onClick:()=>{h(!1),d(n.id)}}):null,ht(n)?(0,$.jsx)(_t,{label:p.rerun,onClick:()=>{h(!1),f(n.id)}}):null]})]}):null,t[63]=y,t[64]=p.cancel,t[65]=p.rerun,t[66]=p.taskCloseMenu,t[67]=m,t[68]=d,t[69]=f,t[70]=n,t[71]=h,t[72]=pe):pe=t[72];let me;return t[73]!==fe||t[74]!==pe?(me=(0,$.jsxs)(`div`,{className:`absolute right-2 top-2`,children:[fe,pe]}),t[73]=fe,t[74]=pe,t[75]=me):me=t[75],(0,$.jsxs)(`div`,{className:R,children:[(0,$.jsxs)(`button`,{type:`button`,onClick:N,"aria-label":`${p.taskOpenDetails}: ${k}`,"aria-current":c?`true`:void 0,className:z,children:[(0,$.jsxs)(`div`,{className:`pr-7`,children:[(0,$.jsxs)(`div`,{className:`flex min-w-0 items-start justify-between gap-2`,children:[te,(0,$.jsx)(`span`,{className:ne,children:p.status[n.status]??n.status})]}),K]}),b?(0,$.jsxs)(`div`,{className:`mt-2.5`,children:[(0,$.jsxs)(`div`,{className:`flex items-center justify-between gap-2 text-[11px] text-fg-muted`,children:[(0,$.jsx)(`span`,{children:Se(p.agentProgress,{done:n.metrics.doneAgentCount,total:n.metrics.agentCount})}),(0,$.jsxs)(`span`,{children:[C,`%`]})]}),(0,$.jsx)(`div`,{className:`mt-1.5 h-1.5 overflow-hidden rounded-full bg-surface-hover`,children:(0,$.jsx)(`div`,{className:`h-full rounded-full bg-accent transition-all`,style:{width:`${C}%`}})})]}):null,J,w?(0,$.jsxs)(`div`,{className:`mt-2 flex items-center gap-1 text-[11px] text-amber-700 dark:text-amber-300`,children:[(0,$.jsx)(H,{className:`size-3 shrink-0`,"aria-hidden":!0}),Se(p.runRowErrorSummary,{count:n.metrics.errorAgentCount})]}):null]}),le,me]})});function _t(e){let t=(0,Q.c)(8),{label:n,disabled:r,tone:a,onClick:o}=e,s=r?`cursor-not-allowed text-fg-subtle`:`text-fg hover:bg-surface-hover`,c=a===`danger`&&!r&&`text-red-600 dark:text-red-300`,l;t[0]!==s||t[1]!==c?(l=i(`block w-full px-3 py-1.5 text-left text-xs`,s,c),t[0]=s,t[1]=c,t[2]=l):l=t[2];let u;return t[3]!==r||t[4]!==n||t[5]!==o||t[6]!==l?(u=(0,$.jsx)(`button`,{type:`button`,disabled:r,onClick:o,className:l,children:n}),t[3]=r,t[4]=n,t[5]=o,t[6]=l,t[7]=u):u=t[7],u}function vt(e){return!e}function yt(e,t){return t.boardColumns[e]}var bt=(0,Z.memo)(function(e){let t=(0,Q.c)(17),{column:n,language:r,localeTag:o,nowMs:s,selectedRunId:c,loading:l,onOpenRun:u,onOpenRunChat:d,onCancelRun:f,onRetryRun:p}=e,m=a(r).workflows,[h,g]=(0,Z.useState)(!1),_=n.id===`succeeded`,v=_?5:n.runs.length,y;t[0]!==v||t[1]!==n.runs||t[2]!==h||t[3]!==_?(y=_&&!h?n.runs.slice(0,v):n.runs,t[0]=v,t[1]=n.runs,t[2]=h,t[3]=_,t[4]=y):y=t[4];let b=y,x=_&&n.runs.length>5&&!h,S=_&&h,C;t[5]===Symbol.for(`react.memo_cache_sentinel`)?(C=i(`flex max-h-full w-72 min-w-72 max-w-72 shrink-0 flex-col overflow-y-auto rounded-lg bg-surface-base shadow-surface`),t[5]=C):C=t[5];let w;t[6]===n.runs.length?w=t[7]:(w=(0,$.jsx)(`span`,{className:`shrink-0 text-xs text-fg-subtle`,children:n.runs.length}),t[6]=n.runs.length,t[7]=w);let T;t[8]===Symbol.for(`react.memo_cache_sentinel`)?(T=(0,$.jsx)(I,{className:`size-4 shrink-0 text-fg-subtle`,"aria-hidden":!0}),t[8]=T):T=t[8];let E=l&&b.length===0?(0,$.jsx)(xt,{}):b.length===0?(0,$.jsx)(`div`,{className:`rounded-lg bg-surface-panel/70 px-3 py-6 text-center text-xs text-fg-subtle`,children:m.boardColumnEmpty}):b.map(e=>(0,$.jsx)(gt,{run:e,language:r,localeTag:o,nowMs:s,selected:e.id===c,onOpen:u,onOpenChat:d,onCancel:f,onRetry:p},e.id)),D=x?(0,$.jsx)(X,{variant:`ghost`,className:`h-8 w-full text-xs`,onClick:()=>g(!0),children:Se(m.boardExpandSucceeded,{count:Math.min(n.runs.length,n.totalInWindow??n.runs.length)})}):null,O;t[9]!==S||t[10]!==m||t[11]!==g?(O=S?(0,$.jsx)(X,{variant:`ghost`,className:`h-8 w-full text-xs`,onClick:()=>g(!1),children:m.boardCollapseSucceeded}):null,t[9]=S,t[10]=m,t[11]=g,t[12]=O):O=t[12];let k;return t[13]!==E||t[14]!==D||t[15]!==O?(k=(0,$.jsxs)(`div`,{className:`mx-2 mt-3 grid min-h-0 min-w-0 content-start gap-2 pb-2 pr-1 [scrollbar-gutter:stable]`,children:[E,D,O]}),t[13]=E,t[14]=D,t[15]=O,t[16]=k):k=t[16],(0,$.jsxs)(`section`,{className:C,"aria-label":yt(n.id,m),children:[(0,$.jsxs)(`header`,{className:`flex shrink-0 items-center justify-between gap-2 px-3 py-3`,children:[(0,$.jsxs)(`div`,{className:`flex min-w-0 items-baseline gap-2`,children:[(0,$.jsx)(`h2`,{className:`truncate text-sm font-semibold text-fg`,children:yt(n.id,m)}),w]}),T]}),k]})});function xt(){let e=(0,Q.c)(1),t;return e[0]===Symbol.for(`react.memo_cache_sentinel`)?(t=(0,$.jsxs)(`article`,{className:`min-h-24 rounded-lg bg-surface-panel px-3 py-3 shadow-surface`,"aria-hidden":`true`,children:[(0,$.jsxs)(`div`,{className:`flex items-start justify-between gap-2`,children:[(0,$.jsxs)(`div`,{className:`min-w-0 flex-1`,children:[(0,$.jsx)(ye,{className:`h-4 w-4/5`}),(0,$.jsx)(ye,{className:`mt-2 h-3 w-24`})]}),(0,$.jsx)(ye,{className:`h-5 w-14 rounded-full`})]}),(0,$.jsx)(ye,{className:`mt-3 h-3 w-2/3`}),(0,$.jsx)(ye,{className:`mt-4 h-5 w-20 rounded-full`})]}),e[0]=t):t=e[0],t}function St(e){return e instanceof Element?!!e.closest(`a,button,input,select,textarea,[contenteditable="true"],[draggable="true"],[data-board-pan-skip="true"]`):!0}var Ct=(0,Z.memo)(function(e){let t=(0,Q.c)(54),{runs:n,language:r,localeTag:i,labels:a,searchQuery:o,workflowFilterId:s,triggerFilter:c,selectedRunId:l,loading:u,onOpenRun:d,onOpenRunChat:f,onCancelRun:p,onRetryRun:m,onStart:h}=e,g;t[0]===n?g=t[1]:(g=n.some(wt),t[0]=n,t[1]=g);let _=g,v=(0,Z.useRef)(null),y=(0,Z.useRef)(null),[b,x]=(0,Z.useState)(Tt),[S,C]=(0,Z.useState)(!1),w,T;t[2]===_?(w=t[3],T=t[4]):(w=()=>{if(!_)return;let e=window.setInterval(()=>x(Date.now()),1e3);return()=>window.clearInterval(e)},T=[_],t[2]=_,t[3]=w,t[4]=T),(0,Z.useEffect)(w,T);let E;t[5]!==b||t[6]!==n||t[7]!==o||t[8]!==c||t[9]!==s?(E=ut(ot(n,{searchQuery:o,workflowFilterId:s,triggerFilter:c}),b),t[5]=b,t[6]=n,t[7]=o,t[8]=c,t[9]=s,t[10]=E):E=t[10];let D=E,O=D.reduce(Et,0),k;t[11]===Symbol.for(`react.memo_cache_sentinel`)?(k=e=>{let t=y.current;!t||t.pointerId!==e.pointerId||(y.current=null,C(!1),e.currentTarget.hasPointerCapture?.(e.pointerId)&&e.currentTarget.releasePointerCapture(e.pointerId))},t[11]=k):k=t[11];let A=k,j;t[12]===Symbol.for(`react.memo_cache_sentinel`)?(j=e=>{if(e.button!==0||St(e.target))return;let t=v.current;t&&(y.current={pointerId:e.pointerId,startX:e.clientX,scrollLeft:t.scrollLeft,active:!1},e.currentTarget.setPointerCapture(e.pointerId))},t[12]=j):j=t[12];let M=j,N;t[13]===Symbol.for(`react.memo_cache_sentinel`)?(N=e=>{let t=y.current,n=v.current;if(!t||!n||t.pointerId!==e.pointerId)return;let r=e.clientX-t.startX;!t.active&&Math.abs(r)<5||(t.active||(t.active=!0,C(!0)),e.preventDefault(),n.scrollLeft=t.scrollLeft-r)},t[13]=N):N=t[13];let P=N;if(!u&&O===0){let e;t[14]===a.boardEmptyTitle?e=t[15]:(e=(0,$.jsx)(`p`,{className:`text-sm font-medium text-fg`,children:a.boardEmptyTitle}),t[14]=a.boardEmptyTitle,t[15]=e);let n;t[16]===a.boardEmptyHint?n=t[17]:(n=(0,$.jsx)(`p`,{className:`mx-auto mt-2 max-w-md text-sm leading-6 text-fg-muted`,children:a.boardEmptyHint}),t[16]=a.boardEmptyHint,t[17]=n);let r;t[18]!==a.boardStart||t[19]!==h?(r=(0,$.jsx)(`div`,{className:`mt-4 flex justify-center`,children:(0,$.jsx)(X,{variant:`primary`,onClick:h,children:a.boardStart})}),t[18]=a.boardStart,t[19]=h,t[20]=r):r=t[20];let i;return t[21]!==r||t[22]!==e||t[23]!==n?(i=(0,$.jsxs)(`div`,{className:`flex h-full min-h-0 flex-col items-center justify-center rounded-2xl border border-dashed border-edge bg-surface-panel/40 px-6 py-12 text-center`,children:[e,n,r]}),t[21]=r,t[22]=e,t[23]=n,t[24]=i):i=t[24],i}let ee=S?`cursor-grabbing select-none`:`cursor-grab`,F;t[25]===ee?F=t[26]:(F=[`min-h-0 h-full min-w-0 overflow-x-auto rounded-lg px-2 py-2`,ee],t[25]=ee,t[26]=F);let I=F.join(` `),L;t[27]===Symbol.for(`react.memo_cache_sentinel`)?(L=e=>{y.current?.pointerId===e.pointerId&&(y.current=null,C(!1))},t[27]=L):L=t[27];let R;if(t[28]!==D||t[29]!==r||t[30]!==u||t[31]!==i||t[32]!==b||t[33]!==p||t[34]!==d||t[35]!==f||t[36]!==m||t[37]!==l){let e;t[39]!==r||t[40]!==u||t[41]!==i||t[42]!==b||t[43]!==p||t[44]!==d||t[45]!==f||t[46]!==m||t[47]!==l?(e=e=>(0,$.jsx)(bt,{column:e,language:r,localeTag:i,nowMs:b,selectedRunId:l,loading:u,onOpenRun:d,onOpenRunChat:f,onCancelRun:p,onRetryRun:m},e.id),t[39]=r,t[40]=u,t[41]=i,t[42]=b,t[43]=p,t[44]=d,t[45]=f,t[46]=m,t[47]=l,t[48]=e):e=t[48],R=D.map(e),t[28]=D,t[29]=r,t[30]=u,t[31]=i,t[32]=b,t[33]=p,t[34]=d,t[35]=f,t[36]=m,t[37]=l,t[38]=R}else R=t[38];let z;t[49]===R?z=t[50]:(z=(0,$.jsx)(`div`,{className:`flex min-h-full min-w-max items-start gap-3 pr-4`,children:R}),t[49]=R,t[50]=z);let B;return t[51]!==I||t[52]!==z?(B=(0,$.jsx)(`div`,{ref:v,className:I,onPointerDown:M,onPointerMove:P,onPointerUp:A,onPointerCancel:A,onLostPointerCapture:L,children:z}),t[51]=I,t[52]=z,t[53]=B):B=t[53],B});function wt(e){return e.status===`queued`||e.status===`running`}function Tt(){return Date.now()}function Et(e,t){return e+t.runs.length}var Dt=`export const meta = {
1
+ import{i as e}from"./rolldown-runtime-aKtaBQYM.js";import{a as t,n,t as r}from"./vendor-react-BOUWij0V.js";import{t as i}from"./cn-BQ_8x0bT.js";import{t as a}from"./messages-DR9ODkb8.js";import{a as o}from"./fetch-6HXXdO77.js";import{n as s}from"./locale-store-Ba72bFmP.js";import{i as c}from"./vendor-swr-BIWyz7Rc.js";import{$ as l,$a as u,$s as d,A as f,Ac as p,B as m,Ba as h,D as g,Do as _,E as v,Ec as y,El as b,Es as x,F as S,G as C,Ga as w,H as T,Ha as E,I as D,J as O,K as k,Kc as A,Lc as j,M,N,Nc as P,No as ee,O as F,Oc as I,P as L,Pc as R,Q as z,Qo as B,R as V,Ra as te,Ro as H,Rs as ne,Ss as U,U as W,Ua as G,Va as K,W as re,Wa as q,Xc as J,Y as ie,Z as ae,_i as oe,_t as se,b as ce,bs as le,bt as ue,cs as de,ct as fe,dt as pe,er as me,et as he,ft as ge,gt as _e,h as ve,ha as ye,hc as be,ht as xe,j as Se,k as Y,lt as Ce,m as we,mo as Te,mt as Ee,nl as De,ns as Oe,nt as ke,ol as Ae,ps as je,q as Me,qn as Ne,qs as Pe,st as Fe,tc as Ie,tl as Le,to as Re,tt as ze,ut as Be,vo as Ve,vt as He,w as Ue,wl as We,wo as X,xt as Ge,z as Ke,za as qe}from"./index-DqFBdoK-.js";import{t as Je}from"./page-tabs-smjfSAwc.js";import{t as Ye}from"./automation-suggestion-card-C6ZIz_B1.js";import{t as Xe}from"./workflow-start-dialog-C1GbcWN0.js";var Z=e(t(),1),Q=n(),Ze=[`queued`,`running`,`succeeded`,`attention`],Qe=new Set([`failed`,`timeout`,`cancelled`]);function $e(e){return e.metadata?.sessionKey?.trim()||null}function et(e,t){return e.length<=t?e:`${e.slice(0,t-1)}…`}function tt(e,t){if(!e||typeof e!=`object`)return null;let n=e;for(let e of t){let t=n[e];if(typeof t==`string`&&t.trim())return t.trim()}return null}function nt(e,t=90){let n=e.metadata?.input?.goal?.trim()||(typeof e.metadata?.input?.payload==`string`?e.metadata.input.payload.trim():null)||tt(e.metadata?.input?.payload,[`query`,`goal`,`prompt`,`input`,`message`])||tt(e.metadata?.input?.variables,[`query`,`goal`,`prompt`,`input`,`message`]);return n?et(n,t):null}function rt(e,t=90){return nt(e,t)??et(e.title?.trim()||e.definitionId,t)}function it(e,t=44){return et(e.title?.trim()||e.definitionId,t)}function at(e,t){let n=t.trim().toLowerCase();return n?[nt(e,500),e.title,e.definitionId,e.id].filter(Boolean).join(` `).toLowerCase().includes(n):!0}function ot(e,t){let n=t.workflowFilterId.trim();return e.filter(e=>n&&e.definitionId!==n||!L(e,t.triggerFilter??`all`)?!1:at(e,t.searchQuery))}function st(e){return e.completedAtMs??e.createdAtMs}function ct(e,t){return e.status===`queued`?`queued`:e.status===`running`?`running`:e.status===`succeeded`?`succeeded`:Qe.has(e.status)?`attention`:null}function lt(e,t){let n=[...t];return e===`queued`?n.sort((e,t)=>e.createdAtMs-t.createdAtMs):e===`running`?n.sort((e,t)=>(t.startedAtMs??t.createdAtMs)-(e.startedAtMs??e.createdAtMs)):n.sort((e,t)=>st(t)-st(e))}function ut(e,t){let n={queued:[],running:[],succeeded:[],attention:[]};for(let r of e){let e=ct(r,t);e&&n[e].push(r)}return Ze.map(e=>{if(e===`succeeded`){let t=lt(`succeeded`,n.succeeded);return{id:e,runs:t,totalInWindow:t.length}}return{id:e,runs:lt(e,n[e])}})}var dt=new Map;function ft(e){let t=dt.get(e);return t||(t=new Intl.RelativeTimeFormat(e,{numeric:`auto`}),dt.set(e,t)),t}function pt(e,t,n){let r=Math.round((t-e)/1e3),i=ft(n);if(r<60)return i.format(-r,`second`);let a=Math.round(r/60);if(a<60)return i.format(-a,`minute`);let o=Math.round(a/60);if(o<48)return i.format(-o,`hour`);let s=Math.round(o/24);return i.format(-s,`day`)}function mt(e){return e.status===`queued`||e.status===`running`}function ht(e){return e.status===`failed`||e.status===`timeout`||e.status===`cancelled`}var $=r(),gt=(0,Z.memo)(function(e){let t=(0,Q.c)(76),{run:n,language:r,localeTag:o,nowMs:s,selected:c,onOpen:l,onOpenChat:u,onCancel:d,onRetry:f}=e,p=a(r).workflows,[m,h]=(0,Z.useState)(!1),g;t[0]===n?g=t[1]:(g=$e(n),t[0]=n,t[1]=g);let _=!g,v;t[2]===n?v=t[3]:(v=mt(n),t[2]=n,t[3]=v);let y=v,b=n.status===`running`||n.status===`queued`,x;t[4]!==n.metrics.agentCount||t[5]!==n.metrics.doneAgentCount?(x=n.metrics.agentCount>0?Math.round(n.metrics.doneAgentCount/n.metrics.agentCount*100):0,t[4]=n.metrics.agentCount,t[5]=n.metrics.doneAgentCount,t[6]=x):x=t[6];let C=x,w=n.metrics.errorAgentCount>0,T=n.startedAtMs??n.createdAtMs,E=F(y?s-T:n.metrics.durationMs),D=Se(p.taskArtifacts,{count:n.metrics.artifactCount}),O;t[7]===n?O=t[8]:(O=rt(n),t[7]=n,t[8]=O);let k=O,A;t[9]===n?A=t[10]:(A=it(n),t[9]=n,t[10]=A);let j=A,M;t[11]!==l||t[12]!==n?(M=()=>{l(n)},t[11]=l,t[12]=n,t[13]=M):M=t[13];let N=M,P;t[14]!==_||t[15]!==u||t[16]!==n?(P=()=>{_||u(n)},t[14]=_,t[15]=u,t[16]=n,t[17]=P):P=t[17];let ee=P,L=c&&`ring-1 ring-accent/30`,R;t[18]===L?R=t[19]:(R=i(`group relative min-h-24 overflow-hidden rounded-lg bg-surface-panel px-3 py-3 shadow-surface transition-colors`,L,`hover:bg-surface-hover`),t[18]=L,t[19]=R);let z;t[20]===Symbol.for(`react.memo_cache_sentinel`)?(z=i(`w-full text-left`,Ve.focusRingPanel),t[20]=z):z=t[20];let B;t[21]===k?B=t[22]:(B=(0,$.jsx)(`div`,{className:`line-clamp-2 text-sm font-medium leading-5 text-fg`,children:k}),t[21]=k,t[22]=B);let V;t[23]===j?V=t[24]:(V=(0,$.jsx)(`div`,{className:`mt-1 truncate text-[11px] font-medium text-fg-muted`,children:j}),t[23]=j,t[24]=V);let te;t[25]!==B||t[26]!==V?(te=(0,$.jsxs)(`div`,{className:`min-w-0`,children:[B,V]}),t[25]=B,t[26]=V,t[27]=te):te=t[27];let ne;t[28]===n.status?ne=t[29]:(ne=i(`shrink-0 rounded-full px-2 py-0.5 text-[10px] font-semibold shadow-sm`,S(n.status)),t[28]=n.status,t[29]=ne);let U;t[30]!==o||t[31]!==s||t[32]!==T?(U=pt(T,s,o),t[30]=o,t[31]=s,t[32]=T,t[33]=U):U=t[33];let W;t[34]===U?W=t[35]:(W=(0,$.jsx)(`span`,{children:U}),t[34]=U,t[35]=W);let G=E===`—`?null:(0,$.jsxs)($.Fragment,{children:[(0,$.jsx)(`span`,{"aria-hidden":!0,children:`·`}),(0,$.jsx)(`span`,{children:Se(p.taskElapsed,{duration:E})})]}),K;t[36]!==W||t[37]!==G?(K=(0,$.jsxs)(`div`,{className:`mt-2 flex flex-wrap items-center gap-1.5 text-[11px] text-fg-subtle`,children:[W,G]}),t[36]=W,t[37]=G,t[38]=K):K=t[38];let re=n.metrics.artifactCount>0?(0,$.jsx)(`span`,{className:`rounded-full bg-surface-hover px-2 py-0.5 font-medium text-fg-muted`,children:D}):null,q=c?(0,$.jsx)(`span`,{className:`font-medium text-accent-fg`,children:p.taskOpenDetails}):null,J;t[39]!==re||t[40]!==q?(J=(0,$.jsxs)(`div`,{className:`mt-3 flex flex-wrap items-center gap-2 text-[11px] text-fg-subtle`,children:[re,q]}),t[39]=re,t[40]=q,t[41]=J):J=t[41];let ie=_&&`cursor-not-allowed text-fg-disabled hover:bg-transparent`,ae;t[42]===ie?ae=t[43]:(ae=i(`rounded-md px-2 py-1 text-xs font-medium`,`text-accent-fg hover:bg-accent-soft`,Ve.focusRingPanel,ie),t[42]=ie,t[43]=ae);let oe;t[44]!==_||t[45]!==ee||t[46]!==p.continueInChat||t[47]!==ae?(oe=(0,$.jsx)(`button`,{type:`button`,className:ae,disabled:_,onClick:ee,children:p.continueInChat}),t[44]=_,t[45]=ee,t[46]=p.continueInChat,t[47]=ae,t[48]=oe):oe=t[48];let se;t[49]===Symbol.for(`react.memo_cache_sentinel`)?(se=i(`rounded-md px-2 py-1 text-xs font-medium text-fg-muted hover:bg-surface-hover hover:text-fg`,Ve.focusRingPanel),t[49]=se):se=t[49];let ce;t[50]!==N||t[51]!==p.taskOpenDetails?(ce=(0,$.jsx)(`button`,{type:`button`,className:se,onClick:N,children:p.taskOpenDetails}),t[50]=N,t[51]=p.taskOpenDetails,t[52]=ce):ce=t[52];let le;t[53]!==oe||t[54]!==ce?(le=(0,$.jsxs)(`div`,{className:`mt-3 flex flex-wrap items-center gap-2 border-t border-edge-subtle pt-2`,children:[oe,ce]}),t[53]=oe,t[54]=ce,t[55]=le):le=t[55];let ue;t[56]===h?ue=t[57]:(ue=()=>h(vt),t[56]=h,t[57]=ue);let de;t[58]===Symbol.for(`react.memo_cache_sentinel`)?(de=(0,$.jsx)(I,{className:`size-4`,"aria-hidden":!0}),t[58]=de):de=t[58];let fe;t[59]!==p.taskActionsAria||t[60]!==m||t[61]!==ue?(fe=(0,$.jsx)(X,{variant:`ghost`,className:`size-7 p-0 opacity-0 group-hover:opacity-100 group-focus-within:opacity-100`,"aria-label":p.taskActionsAria,"aria-expanded":m,onClick:ue,children:de}),t[59]=p.taskActionsAria,t[60]=m,t[61]=ue,t[62]=fe):fe=t[62];let pe;t[63]!==y||t[64]!==p.cancel||t[65]!==p.rerun||t[66]!==p.taskCloseMenu||t[67]!==m||t[68]!==d||t[69]!==f||t[70]!==n||t[71]!==h?(pe=m?(0,$.jsxs)($.Fragment,{children:[(0,$.jsx)(`button`,{type:`button`,className:`fixed inset-0 z-10 cursor-default`,"aria-label":p.taskCloseMenu,onClick:()=>h(!1)}),(0,$.jsxs)(`div`,{className:`absolute right-0 z-20 mt-1 min-w-36 rounded-lg border border-edge bg-surface-panel py-1 shadow-surface`,children:[y?(0,$.jsx)(_t,{label:p.cancel,tone:`danger`,onClick:()=>{h(!1),d(n.id)}}):null,ht(n)?(0,$.jsx)(_t,{label:p.rerun,onClick:()=>{h(!1),f(n.id)}}):null]})]}):null,t[63]=y,t[64]=p.cancel,t[65]=p.rerun,t[66]=p.taskCloseMenu,t[67]=m,t[68]=d,t[69]=f,t[70]=n,t[71]=h,t[72]=pe):pe=t[72];let me;return t[73]!==fe||t[74]!==pe?(me=(0,$.jsxs)(`div`,{className:`absolute right-2 top-2`,children:[fe,pe]}),t[73]=fe,t[74]=pe,t[75]=me):me=t[75],(0,$.jsxs)(`div`,{className:R,children:[(0,$.jsxs)(`button`,{type:`button`,onClick:N,"aria-label":`${p.taskOpenDetails}: ${k}`,"aria-current":c?`true`:void 0,className:z,children:[(0,$.jsxs)(`div`,{className:`pr-7`,children:[(0,$.jsxs)(`div`,{className:`flex min-w-0 items-start justify-between gap-2`,children:[te,(0,$.jsx)(`span`,{className:ne,children:p.status[n.status]??n.status})]}),K]}),b?(0,$.jsxs)(`div`,{className:`mt-2.5`,children:[(0,$.jsxs)(`div`,{className:`flex items-center justify-between gap-2 text-[11px] text-fg-muted`,children:[(0,$.jsx)(`span`,{children:Se(p.agentProgress,{done:n.metrics.doneAgentCount,total:n.metrics.agentCount})}),(0,$.jsxs)(`span`,{children:[C,`%`]})]}),(0,$.jsx)(`div`,{className:`mt-1.5 h-1.5 overflow-hidden rounded-full bg-surface-hover`,children:(0,$.jsx)(`div`,{className:`h-full rounded-full bg-accent transition-all`,style:{width:`${C}%`}})})]}):null,J,w?(0,$.jsxs)(`div`,{className:`mt-2 flex items-center gap-1 text-[11px] text-amber-700 dark:text-amber-300`,children:[(0,$.jsx)(H,{className:`size-3 shrink-0`,"aria-hidden":!0}),Se(p.runRowErrorSummary,{count:n.metrics.errorAgentCount})]}):null]}),le,me]})});function _t(e){let t=(0,Q.c)(8),{label:n,disabled:r,tone:a,onClick:o}=e,s=r?`cursor-not-allowed text-fg-subtle`:`text-fg hover:bg-surface-hover`,c=a===`danger`&&!r&&`text-red-600 dark:text-red-300`,l;t[0]!==s||t[1]!==c?(l=i(`block w-full px-3 py-1.5 text-left text-xs`,s,c),t[0]=s,t[1]=c,t[2]=l):l=t[2];let u;return t[3]!==r||t[4]!==n||t[5]!==o||t[6]!==l?(u=(0,$.jsx)(`button`,{type:`button`,disabled:r,onClick:o,className:l,children:n}),t[3]=r,t[4]=n,t[5]=o,t[6]=l,t[7]=u):u=t[7],u}function vt(e){return!e}function yt(e,t){return t.boardColumns[e]}var bt=(0,Z.memo)(function(e){let t=(0,Q.c)(17),{column:n,language:r,localeTag:o,nowMs:s,selectedRunId:c,loading:l,onOpenRun:u,onOpenRunChat:d,onCancelRun:f,onRetryRun:p}=e,m=a(r).workflows,[h,g]=(0,Z.useState)(!1),_=n.id===`succeeded`,v=_?5:n.runs.length,y;t[0]!==v||t[1]!==n.runs||t[2]!==h||t[3]!==_?(y=_&&!h?n.runs.slice(0,v):n.runs,t[0]=v,t[1]=n.runs,t[2]=h,t[3]=_,t[4]=y):y=t[4];let b=y,x=_&&n.runs.length>5&&!h,S=_&&h,C;t[5]===Symbol.for(`react.memo_cache_sentinel`)?(C=i(`flex max-h-full w-72 min-w-72 max-w-72 shrink-0 flex-col overflow-y-auto rounded-lg bg-surface-base shadow-surface`),t[5]=C):C=t[5];let w;t[6]===n.runs.length?w=t[7]:(w=(0,$.jsx)(`span`,{className:`shrink-0 text-xs text-fg-subtle`,children:n.runs.length}),t[6]=n.runs.length,t[7]=w);let T;t[8]===Symbol.for(`react.memo_cache_sentinel`)?(T=(0,$.jsx)(I,{className:`size-4 shrink-0 text-fg-subtle`,"aria-hidden":!0}),t[8]=T):T=t[8];let E=l&&b.length===0?(0,$.jsx)(xt,{}):b.length===0?(0,$.jsx)(`div`,{className:`rounded-lg bg-surface-panel/70 px-3 py-6 text-center text-xs text-fg-subtle`,children:m.boardColumnEmpty}):b.map(e=>(0,$.jsx)(gt,{run:e,language:r,localeTag:o,nowMs:s,selected:e.id===c,onOpen:u,onOpenChat:d,onCancel:f,onRetry:p},e.id)),D=x?(0,$.jsx)(X,{variant:`ghost`,className:`h-8 w-full text-xs`,onClick:()=>g(!0),children:Se(m.boardExpandSucceeded,{count:Math.min(n.runs.length,n.totalInWindow??n.runs.length)})}):null,O;t[9]!==S||t[10]!==m||t[11]!==g?(O=S?(0,$.jsx)(X,{variant:`ghost`,className:`h-8 w-full text-xs`,onClick:()=>g(!1),children:m.boardCollapseSucceeded}):null,t[9]=S,t[10]=m,t[11]=g,t[12]=O):O=t[12];let k;return t[13]!==E||t[14]!==D||t[15]!==O?(k=(0,$.jsxs)(`div`,{className:`mx-2 mt-3 grid min-h-0 min-w-0 content-start gap-2 pb-2 pr-1 [scrollbar-gutter:stable]`,children:[E,D,O]}),t[13]=E,t[14]=D,t[15]=O,t[16]=k):k=t[16],(0,$.jsxs)(`section`,{className:C,"aria-label":yt(n.id,m),children:[(0,$.jsxs)(`header`,{className:`flex shrink-0 items-center justify-between gap-2 px-3 py-3`,children:[(0,$.jsxs)(`div`,{className:`flex min-w-0 items-baseline gap-2`,children:[(0,$.jsx)(`h2`,{className:`truncate text-sm font-semibold text-fg`,children:yt(n.id,m)}),w]}),T]}),k]})});function xt(){let e=(0,Q.c)(1),t;return e[0]===Symbol.for(`react.memo_cache_sentinel`)?(t=(0,$.jsxs)(`article`,{className:`min-h-24 rounded-lg bg-surface-panel px-3 py-3 shadow-surface`,"aria-hidden":`true`,children:[(0,$.jsxs)(`div`,{className:`flex items-start justify-between gap-2`,children:[(0,$.jsxs)(`div`,{className:`min-w-0 flex-1`,children:[(0,$.jsx)(ye,{className:`h-4 w-4/5`}),(0,$.jsx)(ye,{className:`mt-2 h-3 w-24`})]}),(0,$.jsx)(ye,{className:`h-5 w-14 rounded-full`})]}),(0,$.jsx)(ye,{className:`mt-3 h-3 w-2/3`}),(0,$.jsx)(ye,{className:`mt-4 h-5 w-20 rounded-full`})]}),e[0]=t):t=e[0],t}function St(e){return e instanceof Element?!!e.closest(`a,button,input,select,textarea,[contenteditable="true"],[draggable="true"],[data-board-pan-skip="true"]`):!0}var Ct=(0,Z.memo)(function(e){let t=(0,Q.c)(54),{runs:n,language:r,localeTag:i,labels:a,searchQuery:o,workflowFilterId:s,triggerFilter:c,selectedRunId:l,loading:u,onOpenRun:d,onOpenRunChat:f,onCancelRun:p,onRetryRun:m,onStart:h}=e,g;t[0]===n?g=t[1]:(g=n.some(wt),t[0]=n,t[1]=g);let _=g,v=(0,Z.useRef)(null),y=(0,Z.useRef)(null),[b,x]=(0,Z.useState)(Tt),[S,C]=(0,Z.useState)(!1),w,T;t[2]===_?(w=t[3],T=t[4]):(w=()=>{if(!_)return;let e=window.setInterval(()=>x(Date.now()),1e3);return()=>window.clearInterval(e)},T=[_],t[2]=_,t[3]=w,t[4]=T),(0,Z.useEffect)(w,T);let E;t[5]!==b||t[6]!==n||t[7]!==o||t[8]!==c||t[9]!==s?(E=ut(ot(n,{searchQuery:o,workflowFilterId:s,triggerFilter:c}),b),t[5]=b,t[6]=n,t[7]=o,t[8]=c,t[9]=s,t[10]=E):E=t[10];let D=E,O=D.reduce(Et,0),k;t[11]===Symbol.for(`react.memo_cache_sentinel`)?(k=e=>{let t=y.current;!t||t.pointerId!==e.pointerId||(y.current=null,C(!1),e.currentTarget.hasPointerCapture?.(e.pointerId)&&e.currentTarget.releasePointerCapture(e.pointerId))},t[11]=k):k=t[11];let A=k,j;t[12]===Symbol.for(`react.memo_cache_sentinel`)?(j=e=>{if(e.button!==0||St(e.target))return;let t=v.current;t&&(y.current={pointerId:e.pointerId,startX:e.clientX,scrollLeft:t.scrollLeft,active:!1},e.currentTarget.setPointerCapture(e.pointerId))},t[12]=j):j=t[12];let M=j,N;t[13]===Symbol.for(`react.memo_cache_sentinel`)?(N=e=>{let t=y.current,n=v.current;if(!t||!n||t.pointerId!==e.pointerId)return;let r=e.clientX-t.startX;!t.active&&Math.abs(r)<5||(t.active||(t.active=!0,C(!0)),e.preventDefault(),n.scrollLeft=t.scrollLeft-r)},t[13]=N):N=t[13];let P=N;if(!u&&O===0){let e;t[14]===a.boardEmptyTitle?e=t[15]:(e=(0,$.jsx)(`p`,{className:`text-sm font-medium text-fg`,children:a.boardEmptyTitle}),t[14]=a.boardEmptyTitle,t[15]=e);let n;t[16]===a.boardEmptyHint?n=t[17]:(n=(0,$.jsx)(`p`,{className:`mx-auto mt-2 max-w-md text-sm leading-6 text-fg-muted`,children:a.boardEmptyHint}),t[16]=a.boardEmptyHint,t[17]=n);let r;t[18]!==a.boardStart||t[19]!==h?(r=(0,$.jsx)(`div`,{className:`mt-4 flex justify-center`,children:(0,$.jsx)(X,{variant:`primary`,onClick:h,children:a.boardStart})}),t[18]=a.boardStart,t[19]=h,t[20]=r):r=t[20];let i;return t[21]!==r||t[22]!==e||t[23]!==n?(i=(0,$.jsxs)(`div`,{className:`flex h-full min-h-0 flex-col items-center justify-center rounded-2xl border border-dashed border-edge bg-surface-panel/40 px-6 py-12 text-center`,children:[e,n,r]}),t[21]=r,t[22]=e,t[23]=n,t[24]=i):i=t[24],i}let ee=S?`cursor-grabbing select-none`:`cursor-grab`,F;t[25]===ee?F=t[26]:(F=[`min-h-0 h-full min-w-0 overflow-x-auto rounded-lg px-2 py-2`,ee],t[25]=ee,t[26]=F);let I=F.join(` `),L;t[27]===Symbol.for(`react.memo_cache_sentinel`)?(L=e=>{y.current?.pointerId===e.pointerId&&(y.current=null,C(!1))},t[27]=L):L=t[27];let R;if(t[28]!==D||t[29]!==r||t[30]!==u||t[31]!==i||t[32]!==b||t[33]!==p||t[34]!==d||t[35]!==f||t[36]!==m||t[37]!==l){let e;t[39]!==r||t[40]!==u||t[41]!==i||t[42]!==b||t[43]!==p||t[44]!==d||t[45]!==f||t[46]!==m||t[47]!==l?(e=e=>(0,$.jsx)(bt,{column:e,language:r,localeTag:i,nowMs:b,selectedRunId:l,loading:u,onOpenRun:d,onOpenRunChat:f,onCancelRun:p,onRetryRun:m},e.id),t[39]=r,t[40]=u,t[41]=i,t[42]=b,t[43]=p,t[44]=d,t[45]=f,t[46]=m,t[47]=l,t[48]=e):e=t[48],R=D.map(e),t[28]=D,t[29]=r,t[30]=u,t[31]=i,t[32]=b,t[33]=p,t[34]=d,t[35]=f,t[36]=m,t[37]=l,t[38]=R}else R=t[38];let z;t[49]===R?z=t[50]:(z=(0,$.jsx)(`div`,{className:`flex min-h-full min-w-max items-start gap-3 pr-4`,children:R}),t[49]=R,t[50]=z);let B;return t[51]!==I||t[52]!==z?(B=(0,$.jsx)(`div`,{ref:v,className:I,onPointerDown:M,onPointerMove:P,onPointerUp:A,onPointerCancel:A,onLostPointerCapture:L,children:z}),t[51]=I,t[52]=z,t[53]=B):B=t[53],B});function wt(e){return e.status===`queued`||e.status===`running`}function Tt(){return Date.now()}function Et(e,t){return e+t.runs.length}var Dt=`export const meta = {
2
2
  name: 'my_workflow',
3
3
  description: 'Describe what this workflow does.',
4
4
  whenToUse: 'When the user asks for ...',
@@ -11,7 +11,7 @@
11
11
  <link rel="apple-touch-icon" sizes="180x180" href="/apple-touch-icon.png?v=20260713-1" />
12
12
  <link rel="manifest" href="/site.webmanifest?v=20260713-1" />
13
13
  <title>xopc</title>
14
- <script type="module" crossorigin src="/assets/index-BjGnv8uJ.js"></script>
14
+ <script type="module" crossorigin src="/assets/index-DqFBdoK-.js"></script>
15
15
  <link rel="modulepreload" crossorigin href="/assets/rolldown-runtime-aKtaBQYM.js">
16
16
  <link rel="modulepreload" crossorigin href="/assets/preload-helper-zJ_50EbN.js">
17
17
  <link rel="modulepreload" crossorigin href="/assets/vendor-react-BOUWij0V.js">
@@ -28,7 +28,7 @@
28
28
  <link rel="modulepreload" crossorigin href="/assets/gateway-startup-retry-BE1M9fH_.js">
29
29
  <link rel="modulepreload" crossorigin href="/assets/toast-z0toXu32.js">
30
30
  <link rel="modulepreload" crossorigin href="/assets/theme-store-Bt6vAkSB.js">
31
- <link rel="stylesheet" crossorigin href="/assets/index-W4ogAiHt.css">
31
+ <link rel="stylesheet" crossorigin href="/assets/index-DXUkWmeK.css">
32
32
  </head>
33
33
  <body>
34
34
  <div id="root"></div>
package/dist/package.js CHANGED
@@ -1,5 +1,5 @@
1
1
  //#region package.json
2
- var version = "0.0.132";
2
+ var version = "0.0.133";
3
3
  //#endregion
4
4
  export { version };
5
5
 
@@ -58,15 +58,15 @@ function resolveImageModelConfigForTool(params) {
58
58
  const primaryCandidates = [];
59
59
  const vision = firstVisionModelRef(primary.provider);
60
60
  if (vision) primaryCandidates.push(vision);
61
- if (primary.provider === "openai") primaryCandidates.push("openai/gpt-4o-mini");
62
- if (primary.provider === "anthropic") primaryCandidates.push("anthropic/claude-sonnet-4-5");
63
- if (primary.provider === "google") primaryCandidates.push("google/gemini-2.0-flash");
61
+ if (primary.provider === "openai") primaryCandidates.push("openai/gpt-5.6-luna");
62
+ if (primary.provider === "anthropic") primaryCandidates.push("anthropic/claude-sonnet-5");
63
+ if (primary.provider === "google") primaryCandidates.push("google/gemini-3.5-flash");
64
64
  return buildToolModelConfigFromCandidates({
65
65
  explicit,
66
66
  candidates: [
67
67
  ...primaryCandidates,
68
- firstVisionModelRef("openai") ?? "openai/gpt-4o-mini",
69
- firstVisionModelRef("anthropic") ?? "anthropic/claude-sonnet-4-5"
68
+ firstVisionModelRef("openai") ?? "openai/gpt-5.6-luna",
69
+ firstVisionModelRef("anthropic") ?? "anthropic/claude-sonnet-5"
70
70
  ]
71
71
  });
72
72
  }
@@ -1 +1 @@
1
- {"version":3,"file":"tool-model-config.js","names":[],"sources":["../../../../src/agent/image/tool-model-config.ts"],"sourcesContent":["import type { AgentModelConfig, Config } from '../../config/schema.js';\nimport {\n getAgentDefaultImageModelConfig,\n getAgentDefaultModelRef,\n parseModelRef,\n} from '../../config/schema.js';\nimport {\n resolveAgentModelFallbackValues,\n resolveAgentModelPrimaryValue,\n} from '../../config/model-input.js';\nimport { getDefaultModelSync, getModelsByProvider, isProviderConfiguredSync } from '../../providers/index.js';\n\nexport type ToolModelConfig = {\n primary?: string;\n fallbacks?: string[];\n timeoutMs?: number;\n autoProviderFallback?: boolean;\n};\n\nexport function hasToolModelConfig(model: ToolModelConfig | undefined): boolean {\n return Boolean(\n model?.primary?.trim() || (model?.fallbacks ?? []).some((entry) => entry.trim().length > 0),\n );\n}\n\nexport function resolveDefaultModelRef(cfg?: Config): { provider: string; model: string } {\n const ref = cfg ? getAgentDefaultModelRef(cfg) : undefined;\n if (ref) {\n const p = parseModelRef(ref);\n if (p) {\n return p;\n }\n }\n const fallback = getDefaultModelSync(cfg);\n const p2 = parseModelRef(fallback);\n if (p2) {\n return p2;\n }\n return { provider: 'deepseek', model: 'deepseek-v4-flash' };\n}\n\nexport function coerceToolModelConfig(model?: AgentModelConfig): ToolModelConfig {\n const primary = resolveAgentModelPrimaryValue(model);\n const fallbacks = resolveAgentModelFallbackValues(model);\n return {\n ...(primary?.trim() ? { primary: primary.trim() } : {}),\n ...(fallbacks.length > 0 ? { fallbacks } : {}),\n };\n}\n\nexport function buildToolModelConfigFromCandidates(params: {\n explicit: ToolModelConfig;\n candidates: Array<string | null | undefined>;\n}): ToolModelConfig | null {\n if (hasToolModelConfig(params.explicit)) {\n return params.explicit;\n }\n\n const deduped: string[] = [];\n for (const candidate of params.candidates) {\n const trimmed = candidate?.trim();\n if (!trimmed || !trimmed.includes('/')) {\n continue;\n }\n const provider = trimmed.slice(0, trimmed.indexOf('/')).trim();\n if (!provider || !isProviderConfiguredSync(provider)) {\n continue;\n }\n if (!deduped.includes(trimmed)) {\n deduped.push(trimmed);\n }\n }\n\n if (deduped.length === 0) {\n return null;\n }\n\n return {\n primary: deduped[0],\n ...(deduped.length > 1 ? { fallbacks: deduped.slice(1) } : {}),\n };\n}\n\nfunction firstVisionModelRef(provider: string): string | undefined {\n const m = getModelsByProvider(provider).find((x) => x.input?.includes('image'));\n return m ? `${provider}/${m.id}` : undefined;\n}\n\n/**\n * Effective image understanding model inferred from configured providers.\n */\nexport function resolveImageModelConfigForTool(params: { cfg?: Config }): ToolModelConfig | null {\n const explicit = coerceToolModelConfig(\n params.cfg ? getAgentDefaultImageModelConfig(params.cfg) : undefined,\n );\n if (hasToolModelConfig(explicit)) {\n return explicit;\n }\n\n const primary = resolveDefaultModelRef(params.cfg);\n const primaryCandidates: string[] = [];\n const vision = firstVisionModelRef(primary.provider);\n if (vision) {\n primaryCandidates.push(vision);\n }\n if (primary.provider === 'openai') {\n primaryCandidates.push('openai/gpt-4o-mini');\n }\n if (primary.provider === 'anthropic') {\n primaryCandidates.push('anthropic/claude-sonnet-4-5');\n }\n if (primary.provider === 'google') {\n primaryCandidates.push('google/gemini-2.0-flash');\n }\n\n return buildToolModelConfigFromCandidates({\n explicit,\n candidates: [\n ...primaryCandidates,\n firstVisionModelRef('openai') ?? 'openai/gpt-4o-mini',\n firstVisionModelRef('anthropic') ?? 'anthropic/claude-sonnet-4-5',\n ],\n });\n}\n"],"mappings":";;;;aAKgC;gBAK8E;AAS9G,SAAgB,mBAAmB,OAA6C;AAC9E,QAAO,QACL,OAAO,SAAS,MAAM,KAAK,OAAO,aAAa,EAAE,EAAE,MAAM,UAAU,MAAM,MAAM,CAAC,SAAS,EAAE,CAC5F;;AAGH,SAAgB,uBAAuB,KAAmD;CACxF,MAAM,MAAM,MAAM,wBAAwB,IAAI,GAAG,KAAA;AACjD,KAAI,KAAK;EACP,MAAM,IAAI,cAAc,IAAI;AAC5B,MAAI,EACF,QAAO;;CAIX,MAAM,KAAK,cADM,oBAAoB,IACJ,CAAC;AAClC,KAAI,GACF,QAAO;AAET,QAAO;EAAE,UAAU;EAAY,OAAO;EAAqB;;AAG7D,SAAgB,sBAAsB,OAA2C;CAC/E,MAAM,UAAU,8BAA8B,MAAM;CACpD,MAAM,YAAY,gCAAgC,MAAM;AACxD,QAAO;EACL,GAAI,SAAS,MAAM,GAAG,EAAE,SAAS,QAAQ,MAAM,EAAE,GAAG,EAAE;EACtD,GAAI,UAAU,SAAS,IAAI,EAAE,WAAW,GAAG,EAAE;EAC9C;;AAGH,SAAgB,mCAAmC,QAGxB;AACzB,KAAI,mBAAmB,OAAO,SAAS,CACrC,QAAO,OAAO;CAGhB,MAAM,UAAoB,EAAE;AAC5B,MAAK,MAAM,aAAa,OAAO,YAAY;EACzC,MAAM,UAAU,WAAW,MAAM;AACjC,MAAI,CAAC,WAAW,CAAC,QAAQ,SAAS,IAAI,CACpC;EAEF,MAAM,WAAW,QAAQ,MAAM,GAAG,QAAQ,QAAQ,IAAI,CAAC,CAAC,MAAM;AAC9D,MAAI,CAAC,YAAY,CAAC,yBAAyB,SAAS,CAClD;AAEF,MAAI,CAAC,QAAQ,SAAS,QAAQ,CAC5B,SAAQ,KAAK,QAAQ;;AAIzB,KAAI,QAAQ,WAAW,EACrB,QAAO;AAGT,QAAO;EACL,SAAS,QAAQ;EACjB,GAAI,QAAQ,SAAS,IAAI,EAAE,WAAW,QAAQ,MAAM,EAAE,EAAE,GAAG,EAAE;EAC9D;;AAGH,SAAS,oBAAoB,UAAsC;CACjE,MAAM,IAAI,oBAAoB,SAAS,CAAC,MAAM,MAAM,EAAE,OAAO,SAAS,QAAQ,CAAC;AAC/E,QAAO,IAAI,GAAG,SAAS,GAAG,EAAE,OAAO,KAAA;;;;;AAMrC,SAAgB,+BAA+B,QAAkD;CAC/F,MAAM,WAAW,sBACf,OAAO,MAAM,gCAAgC,OAAO,IAAI,GAAG,KAAA,EAC5D;AACD,KAAI,mBAAmB,SAAS,CAC9B,QAAO;CAGT,MAAM,UAAU,uBAAuB,OAAO,IAAI;CAClD,MAAM,oBAA8B,EAAE;CACtC,MAAM,SAAS,oBAAoB,QAAQ,SAAS;AACpD,KAAI,OACF,mBAAkB,KAAK,OAAO;AAEhC,KAAI,QAAQ,aAAa,SACvB,mBAAkB,KAAK,qBAAqB;AAE9C,KAAI,QAAQ,aAAa,YACvB,mBAAkB,KAAK,8BAA8B;AAEvD,KAAI,QAAQ,aAAa,SACvB,mBAAkB,KAAK,0BAA0B;AAGnD,QAAO,mCAAmC;EACxC;EACA,YAAY;GACV,GAAG;GACH,oBAAoB,SAAS,IAAI;GACjC,oBAAoB,YAAY,IAAI;GACrC;EACF,CAAC"}
1
+ {"version":3,"file":"tool-model-config.js","names":[],"sources":["../../../../src/agent/image/tool-model-config.ts"],"sourcesContent":["import type { AgentModelConfig, Config } from '../../config/schema.js';\nimport {\n getAgentDefaultImageModelConfig,\n getAgentDefaultModelRef,\n parseModelRef,\n} from '../../config/schema.js';\nimport {\n resolveAgentModelFallbackValues,\n resolveAgentModelPrimaryValue,\n} from '../../config/model-input.js';\nimport { getDefaultModelSync, getModelsByProvider, isProviderConfiguredSync } from '../../providers/index.js';\n\nexport type ToolModelConfig = {\n primary?: string;\n fallbacks?: string[];\n timeoutMs?: number;\n autoProviderFallback?: boolean;\n};\n\nexport function hasToolModelConfig(model: ToolModelConfig | undefined): boolean {\n return Boolean(\n model?.primary?.trim() || (model?.fallbacks ?? []).some((entry) => entry.trim().length > 0),\n );\n}\n\nexport function resolveDefaultModelRef(cfg?: Config): { provider: string; model: string } {\n const ref = cfg ? getAgentDefaultModelRef(cfg) : undefined;\n if (ref) {\n const p = parseModelRef(ref);\n if (p) {\n return p;\n }\n }\n const fallback = getDefaultModelSync(cfg);\n const p2 = parseModelRef(fallback);\n if (p2) {\n return p2;\n }\n return { provider: 'deepseek', model: 'deepseek-v4-flash' };\n}\n\nexport function coerceToolModelConfig(model?: AgentModelConfig): ToolModelConfig {\n const primary = resolveAgentModelPrimaryValue(model);\n const fallbacks = resolveAgentModelFallbackValues(model);\n return {\n ...(primary?.trim() ? { primary: primary.trim() } : {}),\n ...(fallbacks.length > 0 ? { fallbacks } : {}),\n };\n}\n\nexport function buildToolModelConfigFromCandidates(params: {\n explicit: ToolModelConfig;\n candidates: Array<string | null | undefined>;\n}): ToolModelConfig | null {\n if (hasToolModelConfig(params.explicit)) {\n return params.explicit;\n }\n\n const deduped: string[] = [];\n for (const candidate of params.candidates) {\n const trimmed = candidate?.trim();\n if (!trimmed || !trimmed.includes('/')) {\n continue;\n }\n const provider = trimmed.slice(0, trimmed.indexOf('/')).trim();\n if (!provider || !isProviderConfiguredSync(provider)) {\n continue;\n }\n if (!deduped.includes(trimmed)) {\n deduped.push(trimmed);\n }\n }\n\n if (deduped.length === 0) {\n return null;\n }\n\n return {\n primary: deduped[0],\n ...(deduped.length > 1 ? { fallbacks: deduped.slice(1) } : {}),\n };\n}\n\nfunction firstVisionModelRef(provider: string): string | undefined {\n const m = getModelsByProvider(provider).find((x) => x.input?.includes('image'));\n return m ? `${provider}/${m.id}` : undefined;\n}\n\n/**\n * Effective image understanding model inferred from configured providers.\n */\nexport function resolveImageModelConfigForTool(params: { cfg?: Config }): ToolModelConfig | null {\n const explicit = coerceToolModelConfig(\n params.cfg ? getAgentDefaultImageModelConfig(params.cfg) : undefined,\n );\n if (hasToolModelConfig(explicit)) {\n return explicit;\n }\n\n const primary = resolveDefaultModelRef(params.cfg);\n const primaryCandidates: string[] = [];\n const vision = firstVisionModelRef(primary.provider);\n if (vision) {\n primaryCandidates.push(vision);\n }\n if (primary.provider === 'openai') {\n primaryCandidates.push('openai/gpt-5.6-luna');\n }\n if (primary.provider === 'anthropic') {\n primaryCandidates.push('anthropic/claude-sonnet-5');\n }\n if (primary.provider === 'google') {\n primaryCandidates.push('google/gemini-3.5-flash');\n }\n\n return buildToolModelConfigFromCandidates({\n explicit,\n candidates: [\n ...primaryCandidates,\n firstVisionModelRef('openai') ?? 'openai/gpt-5.6-luna',\n firstVisionModelRef('anthropic') ?? 'anthropic/claude-sonnet-5',\n ],\n });\n}\n"],"mappings":";;;;aAKgC;gBAK8E;AAS9G,SAAgB,mBAAmB,OAA6C;AAC9E,QAAO,QACL,OAAO,SAAS,MAAM,KAAK,OAAO,aAAa,EAAE,EAAE,MAAM,UAAU,MAAM,MAAM,CAAC,SAAS,EAAE,CAC5F;;AAGH,SAAgB,uBAAuB,KAAmD;CACxF,MAAM,MAAM,MAAM,wBAAwB,IAAI,GAAG,KAAA;AACjD,KAAI,KAAK;EACP,MAAM,IAAI,cAAc,IAAI;AAC5B,MAAI,EACF,QAAO;;CAIX,MAAM,KAAK,cADM,oBAAoB,IACJ,CAAC;AAClC,KAAI,GACF,QAAO;AAET,QAAO;EAAE,UAAU;EAAY,OAAO;EAAqB;;AAG7D,SAAgB,sBAAsB,OAA2C;CAC/E,MAAM,UAAU,8BAA8B,MAAM;CACpD,MAAM,YAAY,gCAAgC,MAAM;AACxD,QAAO;EACL,GAAI,SAAS,MAAM,GAAG,EAAE,SAAS,QAAQ,MAAM,EAAE,GAAG,EAAE;EACtD,GAAI,UAAU,SAAS,IAAI,EAAE,WAAW,GAAG,EAAE;EAC9C;;AAGH,SAAgB,mCAAmC,QAGxB;AACzB,KAAI,mBAAmB,OAAO,SAAS,CACrC,QAAO,OAAO;CAGhB,MAAM,UAAoB,EAAE;AAC5B,MAAK,MAAM,aAAa,OAAO,YAAY;EACzC,MAAM,UAAU,WAAW,MAAM;AACjC,MAAI,CAAC,WAAW,CAAC,QAAQ,SAAS,IAAI,CACpC;EAEF,MAAM,WAAW,QAAQ,MAAM,GAAG,QAAQ,QAAQ,IAAI,CAAC,CAAC,MAAM;AAC9D,MAAI,CAAC,YAAY,CAAC,yBAAyB,SAAS,CAClD;AAEF,MAAI,CAAC,QAAQ,SAAS,QAAQ,CAC5B,SAAQ,KAAK,QAAQ;;AAIzB,KAAI,QAAQ,WAAW,EACrB,QAAO;AAGT,QAAO;EACL,SAAS,QAAQ;EACjB,GAAI,QAAQ,SAAS,IAAI,EAAE,WAAW,QAAQ,MAAM,EAAE,EAAE,GAAG,EAAE;EAC9D;;AAGH,SAAS,oBAAoB,UAAsC;CACjE,MAAM,IAAI,oBAAoB,SAAS,CAAC,MAAM,MAAM,EAAE,OAAO,SAAS,QAAQ,CAAC;AAC/E,QAAO,IAAI,GAAG,SAAS,GAAG,EAAE,OAAO,KAAA;;;;;AAMrC,SAAgB,+BAA+B,QAAkD;CAC/F,MAAM,WAAW,sBACf,OAAO,MAAM,gCAAgC,OAAO,IAAI,GAAG,KAAA,EAC5D;AACD,KAAI,mBAAmB,SAAS,CAC9B,QAAO;CAGT,MAAM,UAAU,uBAAuB,OAAO,IAAI;CAClD,MAAM,oBAA8B,EAAE;CACtC,MAAM,SAAS,oBAAoB,QAAQ,SAAS;AACpD,KAAI,OACF,mBAAkB,KAAK,OAAO;AAEhC,KAAI,QAAQ,aAAa,SACvB,mBAAkB,KAAK,sBAAsB;AAE/C,KAAI,QAAQ,aAAa,YACvB,mBAAkB,KAAK,4BAA4B;AAErD,KAAI,QAAQ,aAAa,SACvB,mBAAkB,KAAK,0BAA0B;AAGnD,QAAO,mCAAmC;EACxC;EACA,YAAY;GACV,GAAG;GACH,oBAAoB,SAAS,IAAI;GACjC,oBAAoB,YAAY,IAAI;GACrC;EACF,CAAC"}
@@ -145,6 +145,8 @@ function listThinkingLevels(provider, model) {
145
145
  ];
146
146
  const normalizedModel = model?.trim().toLowerCase();
147
147
  if (normalizedModel && [
148
+ "gpt-5.6",
149
+ "gpt-5.5",
148
150
  "gpt-5.4",
149
151
  "gpt-5.4-pro",
150
152
  "gpt-5.2"
@@ -1 +1 @@
1
- {"version":3,"file":"thinking-types.js","names":[],"sources":["../../../../src/agent/transcript/thinking-types.ts"],"sourcesContent":["/**\n * Thinking Types\n *\n * Defines types for thinking ability management across the application.\n * Thinking-level labels for transcript hygiene.\n */\n\n// ============================================\n// Thinking Levels\n// ============================================\n\n/**\n * Thinking level for models that support extended thinking.\n * - off: No thinking\n * - minimal: Minimal thinking effort\n * - low: Low thinking effort\n * - medium: Medium thinking effort\n * - high: High thinking effort\n * - xhigh: Extra high thinking (for supported models only)\n * - adaptive: Automatically adjust based on task complexity\n */\nexport type ThinkLevel = 'off' | 'minimal' | 'low' | 'medium' | 'high' | 'xhigh' | 'adaptive';\n\n/**\n * Reasoning visibility level.\n * Controls whether the model's reasoning/thinking is shown to the user.\n * - off: Hide reasoning\n * - on: Show reasoning after completion\n * - stream: Stream reasoning in real-time\n */\nexport type ReasoningLevel = 'off' | 'on' | 'stream';\n\n/**\n * Verbose level for agent output.\n * - off: Minimal output\n * - on: Normal verbose output\n * - full: Full verbose output with all details\n */\nexport type VerboseLevel = 'off' | 'on' | 'full';\n\n/**\n * Elevated mode for bash execution permissions.\n * - off: No elevated permissions\n * - ask: Ask for confirmation before elevated commands\n * - full: Allow all elevated commands without confirmation\n */\nexport type ElevatedMode = 'off' | 'ask' | 'full';\n\n// ============================================\n// Session-Level Configuration\n// ============================================\n\n/**\n * Session-level configuration for agent behavior.\n * These settings can be overridden per-session.\n */\nexport interface SessionAgentConfig {\n /** Thinking level for this session */\n thinkingLevel?: ThinkLevel;\n /** Reasoning visibility for this session */\n reasoningLevel?: ReasoningLevel;\n /** Verbose level for this session */\n verboseLevel?: VerboseLevel;\n /** Elevated mode for this session */\n elevatedMode?: ElevatedMode;\n /** Model override for this session */\n modelOverride?: string;\n /** Provider override for this session */\n providerOverride?: string;\n /** Per-session markdown workspace root override (immutable once set) */\n workingDirectoryOverride?: string;\n}\n\n// ============================================\n// Helper Functions\n// ============================================\n\n/**\n * Normalize a raw string to ThinkLevel.\n * Handles various aliases and formats.\n */\nexport function normalizeThinkLevel(raw?: string | null): ThinkLevel | undefined {\n if (!raw) {\n return undefined;\n }\n const key = raw.trim().toLowerCase();\n const collapsed = key.replace(/[\\s_-]+/g, '');\n\n if (collapsed === 'adaptive' || collapsed === 'auto') {\n return 'adaptive';\n }\n if (collapsed === 'xhigh' || collapsed === 'extrahigh') {\n return 'xhigh';\n }\n if (['off', 'disable', 'disabled'].includes(key)) {\n return 'off';\n }\n if (['on', 'enable', 'enabled'].includes(key)) {\n return 'low';\n }\n if (['min', 'minimal'].includes(key)) {\n return 'minimal';\n }\n if (['low', 'thinkhard', 'think-hard', 'think_hard'].includes(key)) {\n return 'low';\n }\n if (['mid', 'med', 'medium', 'thinkharder', 'think-harder', 'harder'].includes(key)) {\n return 'medium';\n }\n if (['high', 'ultra', 'ultrathink', 'think-hard', 'thinkhardest', 'highest', 'max'].includes(key)) {\n return 'high';\n }\n if (['think'].includes(key)) {\n return 'minimal';\n }\n return undefined;\n}\n\n/**\n * Normalize a raw string to ReasoningLevel.\n */\nexport function normalizeReasoningLevel(raw?: string | null): ReasoningLevel | undefined {\n if (!raw) {\n return undefined;\n }\n const key = raw.toLowerCase();\n if (['off', 'false', 'no', '0', 'hide', 'hidden', 'disable', 'disabled'].includes(key)) {\n return 'off';\n }\n if (['on', 'true', 'yes', '1', 'show', 'visible', 'enable', 'enabled'].includes(key)) {\n return 'on';\n }\n if (['stream', 'streaming', 'draft', 'live'].includes(key)) {\n return 'stream';\n }\n return undefined;\n}\n\n/**\n * Normalize a raw string to VerboseLevel.\n */\nexport function normalizeVerboseLevel(raw?: string | null): VerboseLevel | undefined {\n if (!raw) {\n return undefined;\n }\n const key = raw.toLowerCase();\n if (['off', 'false', 'no', '0'].includes(key)) {\n return 'off';\n }\n if (['full', 'all', 'everything'].includes(key)) {\n return 'full';\n }\n if (['on', 'true', 'yes', '1', 'enable', 'enabled'].includes(key)) {\n return 'on';\n }\n return undefined;\n}\n\n/**\n * Normalize a raw string to ElevatedMode.\n */\nexport function normalizeElevatedMode(raw?: string | null): ElevatedMode | undefined {\n if (!raw) {\n return undefined;\n }\n const key = raw.toLowerCase();\n if (['off', 'false', 'no', '0'].includes(key)) {\n return 'off';\n }\n if (['full', 'auto', 'auto-approve', 'autoapprove'].includes(key)) {\n return 'full';\n }\n if (['ask', 'prompt', 'approval', 'approve'].includes(key)) {\n return 'ask';\n }\n return undefined;\n}\n\n/**\n * Get available thinking levels for a provider/model.\n * Returns ['off', 'on'] for binary providers like z.ai.\n */\nexport function listThinkingLevels(provider?: string | null, model?: string | null): (ThinkLevel | 'on')[] {\n // Binary thinking providers (like z.ai)\n const normalizedProvider = provider?.trim().toLowerCase();\n if (normalizedProvider === 'z.ai' || normalizedProvider === 'zai') {\n return ['off', 'on'];\n }\n\n const levels: (ThinkLevel | 'on')[] = ['off', 'minimal', 'low', 'medium', 'high'];\n\n // xhigh is only supported for specific models\n const normalizedModel = model?.trim().toLowerCase();\n if (normalizedModel && ['gpt-5.4', 'gpt-5.4-pro', 'gpt-5.2'].some((m) => normalizedModel.includes(m))) {\n levels.push('xhigh');\n }\n\n levels.push('adaptive');\n return levels;\n}\n\n/**\n * Format thinking levels as a comma-separated string for display.\n */\nexport function formatThinkingLevels(provider?: string | null, model?: string | null): string {\n return listThinkingLevels(provider, model).join(', ');\n}\n\n/**\n * Convert ThinkLevel to a numeric value for comparison.\n * Higher value = more thinking.\n */\nexport function thinkLevelToNumber(level: ThinkLevel): number {\n const map: Record<ThinkLevel, number> = {\n off: 0,\n minimal: 1,\n low: 2,\n medium: 3,\n high: 4,\n xhigh: 5,\n adaptive: 3, // adaptive defaults to medium\n };\n return map[level];\n}\n"],"mappings":";;;;;AAiFA,SAAgB,oBAAoB,KAA6C;AAC/E,KAAI,CAAC,IACH;CAEF,MAAM,MAAM,IAAI,MAAM,CAAC,aAAa;CACpC,MAAM,YAAY,IAAI,QAAQ,YAAY,GAAG;AAE7C,KAAI,cAAc,cAAc,cAAc,OAC5C,QAAO;AAET,KAAI,cAAc,WAAW,cAAc,YACzC,QAAO;AAET,KAAI;EAAC;EAAO;EAAW;EAAW,CAAC,SAAS,IAAI,CAC9C,QAAO;AAET,KAAI;EAAC;EAAM;EAAU;EAAU,CAAC,SAAS,IAAI,CAC3C,QAAO;AAET,KAAI,CAAC,OAAO,UAAU,CAAC,SAAS,IAAI,CAClC,QAAO;AAET,KAAI;EAAC;EAAO;EAAa;EAAc;EAAa,CAAC,SAAS,IAAI,CAChE,QAAO;AAET,KAAI;EAAC;EAAO;EAAO;EAAU;EAAe;EAAgB;EAAS,CAAC,SAAS,IAAI,CACjF,QAAO;AAET,KAAI;EAAC;EAAQ;EAAS;EAAc;EAAc;EAAgB;EAAW;EAAM,CAAC,SAAS,IAAI,CAC/F,QAAO;AAET,KAAI,CAAC,QAAQ,CAAC,SAAS,IAAI,CACzB,QAAO;;;;;AAQX,SAAgB,wBAAwB,KAAiD;AACvF,KAAI,CAAC,IACH;CAEF,MAAM,MAAM,IAAI,aAAa;AAC7B,KAAI;EAAC;EAAO;EAAS;EAAM;EAAK;EAAQ;EAAU;EAAW;EAAW,CAAC,SAAS,IAAI,CACpF,QAAO;AAET,KAAI;EAAC;EAAM;EAAQ;EAAO;EAAK;EAAQ;EAAW;EAAU;EAAU,CAAC,SAAS,IAAI,CAClF,QAAO;AAET,KAAI;EAAC;EAAU;EAAa;EAAS;EAAO,CAAC,SAAS,IAAI,CACxD,QAAO;;;;;AAQX,SAAgB,sBAAsB,KAA+C;AACnF,KAAI,CAAC,IACH;CAEF,MAAM,MAAM,IAAI,aAAa;AAC7B,KAAI;EAAC;EAAO;EAAS;EAAM;EAAI,CAAC,SAAS,IAAI,CAC3C,QAAO;AAET,KAAI;EAAC;EAAQ;EAAO;EAAa,CAAC,SAAS,IAAI,CAC7C,QAAO;AAET,KAAI;EAAC;EAAM;EAAQ;EAAO;EAAK;EAAU;EAAU,CAAC,SAAS,IAAI,CAC/D,QAAO;;;;;AAQX,SAAgB,sBAAsB,KAA+C;AACnF,KAAI,CAAC,IACH;CAEF,MAAM,MAAM,IAAI,aAAa;AAC7B,KAAI;EAAC;EAAO;EAAS;EAAM;EAAI,CAAC,SAAS,IAAI,CAC3C,QAAO;AAET,KAAI;EAAC;EAAQ;EAAQ;EAAgB;EAAc,CAAC,SAAS,IAAI,CAC/D,QAAO;AAET,KAAI;EAAC;EAAO;EAAU;EAAY;EAAU,CAAC,SAAS,IAAI,CACxD,QAAO;;;;;;AASX,SAAgB,mBAAmB,UAA0B,OAA8C;CAEzG,MAAM,qBAAqB,UAAU,MAAM,CAAC,aAAa;AACzD,KAAI,uBAAuB,UAAU,uBAAuB,MAC1D,QAAO,CAAC,OAAO,KAAK;CAGtB,MAAM,SAAgC;EAAC;EAAO;EAAW;EAAO;EAAU;EAAO;CAGjF,MAAM,kBAAkB,OAAO,MAAM,CAAC,aAAa;AACnD,KAAI,mBAAmB;EAAC;EAAW;EAAe;EAAU,CAAC,MAAM,MAAM,gBAAgB,SAAS,EAAE,CAAC,CACnG,QAAO,KAAK,QAAQ;AAGtB,QAAO,KAAK,WAAW;AACvB,QAAO;;;;;AAMT,SAAgB,qBAAqB,UAA0B,OAA+B;AAC5F,QAAO,mBAAmB,UAAU,MAAM,CAAC,KAAK,KAAK;;;;;;AAOvD,SAAgB,mBAAmB,OAA2B;AAU5D,QAAO;EARL,KAAK;EACL,SAAS;EACT,KAAK;EACL,QAAQ;EACR,MAAM;EACN,OAAO;EACP,UAAU;EAEF,CAAC"}
1
+ {"version":3,"file":"thinking-types.js","names":[],"sources":["../../../../src/agent/transcript/thinking-types.ts"],"sourcesContent":["/**\n * Thinking Types\n *\n * Defines types for thinking ability management across the application.\n * Thinking-level labels for transcript hygiene.\n */\n\n// ============================================\n// Thinking Levels\n// ============================================\n\n/**\n * Thinking level for models that support extended thinking.\n * - off: No thinking\n * - minimal: Minimal thinking effort\n * - low: Low thinking effort\n * - medium: Medium thinking effort\n * - high: High thinking effort\n * - xhigh: Extra high thinking (for supported models only)\n * - adaptive: Automatically adjust based on task complexity\n */\nexport type ThinkLevel = 'off' | 'minimal' | 'low' | 'medium' | 'high' | 'xhigh' | 'adaptive';\n\n/**\n * Reasoning visibility level.\n * Controls whether the model's reasoning/thinking is shown to the user.\n * - off: Hide reasoning\n * - on: Show reasoning after completion\n * - stream: Stream reasoning in real-time\n */\nexport type ReasoningLevel = 'off' | 'on' | 'stream';\n\n/**\n * Verbose level for agent output.\n * - off: Minimal output\n * - on: Normal verbose output\n * - full: Full verbose output with all details\n */\nexport type VerboseLevel = 'off' | 'on' | 'full';\n\n/**\n * Elevated mode for bash execution permissions.\n * - off: No elevated permissions\n * - ask: Ask for confirmation before elevated commands\n * - full: Allow all elevated commands without confirmation\n */\nexport type ElevatedMode = 'off' | 'ask' | 'full';\n\n// ============================================\n// Session-Level Configuration\n// ============================================\n\n/**\n * Session-level configuration for agent behavior.\n * These settings can be overridden per-session.\n */\nexport interface SessionAgentConfig {\n /** Thinking level for this session */\n thinkingLevel?: ThinkLevel;\n /** Reasoning visibility for this session */\n reasoningLevel?: ReasoningLevel;\n /** Verbose level for this session */\n verboseLevel?: VerboseLevel;\n /** Elevated mode for this session */\n elevatedMode?: ElevatedMode;\n /** Model override for this session */\n modelOverride?: string;\n /** Provider override for this session */\n providerOverride?: string;\n /** Per-session markdown workspace root override (immutable once set) */\n workingDirectoryOverride?: string;\n}\n\n// ============================================\n// Helper Functions\n// ============================================\n\n/**\n * Normalize a raw string to ThinkLevel.\n * Handles various aliases and formats.\n */\nexport function normalizeThinkLevel(raw?: string | null): ThinkLevel | undefined {\n if (!raw) {\n return undefined;\n }\n const key = raw.trim().toLowerCase();\n const collapsed = key.replace(/[\\s_-]+/g, '');\n\n if (collapsed === 'adaptive' || collapsed === 'auto') {\n return 'adaptive';\n }\n if (collapsed === 'xhigh' || collapsed === 'extrahigh') {\n return 'xhigh';\n }\n if (['off', 'disable', 'disabled'].includes(key)) {\n return 'off';\n }\n if (['on', 'enable', 'enabled'].includes(key)) {\n return 'low';\n }\n if (['min', 'minimal'].includes(key)) {\n return 'minimal';\n }\n if (['low', 'thinkhard', 'think-hard', 'think_hard'].includes(key)) {\n return 'low';\n }\n if (['mid', 'med', 'medium', 'thinkharder', 'think-harder', 'harder'].includes(key)) {\n return 'medium';\n }\n if (['high', 'ultra', 'ultrathink', 'think-hard', 'thinkhardest', 'highest', 'max'].includes(key)) {\n return 'high';\n }\n if (['think'].includes(key)) {\n return 'minimal';\n }\n return undefined;\n}\n\n/**\n * Normalize a raw string to ReasoningLevel.\n */\nexport function normalizeReasoningLevel(raw?: string | null): ReasoningLevel | undefined {\n if (!raw) {\n return undefined;\n }\n const key = raw.toLowerCase();\n if (['off', 'false', 'no', '0', 'hide', 'hidden', 'disable', 'disabled'].includes(key)) {\n return 'off';\n }\n if (['on', 'true', 'yes', '1', 'show', 'visible', 'enable', 'enabled'].includes(key)) {\n return 'on';\n }\n if (['stream', 'streaming', 'draft', 'live'].includes(key)) {\n return 'stream';\n }\n return undefined;\n}\n\n/**\n * Normalize a raw string to VerboseLevel.\n */\nexport function normalizeVerboseLevel(raw?: string | null): VerboseLevel | undefined {\n if (!raw) {\n return undefined;\n }\n const key = raw.toLowerCase();\n if (['off', 'false', 'no', '0'].includes(key)) {\n return 'off';\n }\n if (['full', 'all', 'everything'].includes(key)) {\n return 'full';\n }\n if (['on', 'true', 'yes', '1', 'enable', 'enabled'].includes(key)) {\n return 'on';\n }\n return undefined;\n}\n\n/**\n * Normalize a raw string to ElevatedMode.\n */\nexport function normalizeElevatedMode(raw?: string | null): ElevatedMode | undefined {\n if (!raw) {\n return undefined;\n }\n const key = raw.toLowerCase();\n if (['off', 'false', 'no', '0'].includes(key)) {\n return 'off';\n }\n if (['full', 'auto', 'auto-approve', 'autoapprove'].includes(key)) {\n return 'full';\n }\n if (['ask', 'prompt', 'approval', 'approve'].includes(key)) {\n return 'ask';\n }\n return undefined;\n}\n\n/**\n * Get available thinking levels for a provider/model.\n * Returns ['off', 'on'] for binary providers like z.ai.\n */\nexport function listThinkingLevels(provider?: string | null, model?: string | null): (ThinkLevel | 'on')[] {\n // Binary thinking providers (like z.ai)\n const normalizedProvider = provider?.trim().toLowerCase();\n if (normalizedProvider === 'z.ai' || normalizedProvider === 'zai') {\n return ['off', 'on'];\n }\n\n const levels: (ThinkLevel | 'on')[] = ['off', 'minimal', 'low', 'medium', 'high'];\n\n // xhigh is only supported for specific models\n const normalizedModel = model?.trim().toLowerCase();\n if (normalizedModel && ['gpt-5.6', 'gpt-5.5', 'gpt-5.4', 'gpt-5.4-pro', 'gpt-5.2'].some((m) => normalizedModel.includes(m))) {\n levels.push('xhigh');\n }\n\n levels.push('adaptive');\n return levels;\n}\n\n/**\n * Format thinking levels as a comma-separated string for display.\n */\nexport function formatThinkingLevels(provider?: string | null, model?: string | null): string {\n return listThinkingLevels(provider, model).join(', ');\n}\n\n/**\n * Convert ThinkLevel to a numeric value for comparison.\n * Higher value = more thinking.\n */\nexport function thinkLevelToNumber(level: ThinkLevel): number {\n const map: Record<ThinkLevel, number> = {\n off: 0,\n minimal: 1,\n low: 2,\n medium: 3,\n high: 4,\n xhigh: 5,\n adaptive: 3, // adaptive defaults to medium\n };\n return map[level];\n}\n"],"mappings":";;;;;AAiFA,SAAgB,oBAAoB,KAA6C;AAC/E,KAAI,CAAC,IACH;CAEF,MAAM,MAAM,IAAI,MAAM,CAAC,aAAa;CACpC,MAAM,YAAY,IAAI,QAAQ,YAAY,GAAG;AAE7C,KAAI,cAAc,cAAc,cAAc,OAC5C,QAAO;AAET,KAAI,cAAc,WAAW,cAAc,YACzC,QAAO;AAET,KAAI;EAAC;EAAO;EAAW;EAAW,CAAC,SAAS,IAAI,CAC9C,QAAO;AAET,KAAI;EAAC;EAAM;EAAU;EAAU,CAAC,SAAS,IAAI,CAC3C,QAAO;AAET,KAAI,CAAC,OAAO,UAAU,CAAC,SAAS,IAAI,CAClC,QAAO;AAET,KAAI;EAAC;EAAO;EAAa;EAAc;EAAa,CAAC,SAAS,IAAI,CAChE,QAAO;AAET,KAAI;EAAC;EAAO;EAAO;EAAU;EAAe;EAAgB;EAAS,CAAC,SAAS,IAAI,CACjF,QAAO;AAET,KAAI;EAAC;EAAQ;EAAS;EAAc;EAAc;EAAgB;EAAW;EAAM,CAAC,SAAS,IAAI,CAC/F,QAAO;AAET,KAAI,CAAC,QAAQ,CAAC,SAAS,IAAI,CACzB,QAAO;;;;;AAQX,SAAgB,wBAAwB,KAAiD;AACvF,KAAI,CAAC,IACH;CAEF,MAAM,MAAM,IAAI,aAAa;AAC7B,KAAI;EAAC;EAAO;EAAS;EAAM;EAAK;EAAQ;EAAU;EAAW;EAAW,CAAC,SAAS,IAAI,CACpF,QAAO;AAET,KAAI;EAAC;EAAM;EAAQ;EAAO;EAAK;EAAQ;EAAW;EAAU;EAAU,CAAC,SAAS,IAAI,CAClF,QAAO;AAET,KAAI;EAAC;EAAU;EAAa;EAAS;EAAO,CAAC,SAAS,IAAI,CACxD,QAAO;;;;;AAQX,SAAgB,sBAAsB,KAA+C;AACnF,KAAI,CAAC,IACH;CAEF,MAAM,MAAM,IAAI,aAAa;AAC7B,KAAI;EAAC;EAAO;EAAS;EAAM;EAAI,CAAC,SAAS,IAAI,CAC3C,QAAO;AAET,KAAI;EAAC;EAAQ;EAAO;EAAa,CAAC,SAAS,IAAI,CAC7C,QAAO;AAET,KAAI;EAAC;EAAM;EAAQ;EAAO;EAAK;EAAU;EAAU,CAAC,SAAS,IAAI,CAC/D,QAAO;;;;;AAQX,SAAgB,sBAAsB,KAA+C;AACnF,KAAI,CAAC,IACH;CAEF,MAAM,MAAM,IAAI,aAAa;AAC7B,KAAI;EAAC;EAAO;EAAS;EAAM;EAAI,CAAC,SAAS,IAAI,CAC3C,QAAO;AAET,KAAI;EAAC;EAAQ;EAAQ;EAAgB;EAAc,CAAC,SAAS,IAAI,CAC/D,QAAO;AAET,KAAI;EAAC;EAAO;EAAU;EAAY;EAAU,CAAC,SAAS,IAAI,CACxD,QAAO;;;;;;AASX,SAAgB,mBAAmB,UAA0B,OAA8C;CAEzG,MAAM,qBAAqB,UAAU,MAAM,CAAC,aAAa;AACzD,KAAI,uBAAuB,UAAU,uBAAuB,MAC1D,QAAO,CAAC,OAAO,KAAK;CAGtB,MAAM,SAAgC;EAAC;EAAO;EAAW;EAAO;EAAU;EAAO;CAGjF,MAAM,kBAAkB,OAAO,MAAM,CAAC,aAAa;AACnD,KAAI,mBAAmB;EAAC;EAAW;EAAW;EAAW;EAAe;EAAU,CAAC,MAAM,MAAM,gBAAgB,SAAS,EAAE,CAAC,CACzH,QAAO,KAAK,QAAQ;AAGtB,QAAO,KAAK,WAAW;AACvB,QAAO;;;;;AAMT,SAAgB,qBAAqB,UAA0B,OAA+B;AAC5F,QAAO,mBAAmB,UAAU,MAAM,CAAC,KAAK,KAAK;;;;;;AAOvD,SAAgB,mBAAmB,OAA2B;AAU5D,QAAO;EARL,KAAK;EACL,SAAS;EACT,KAAK;EACL,QAAQ;EACR,MAAM;EACN,OAAO;EACP,UAAU;EAEF,CAAC"}
@@ -1,6 +1,6 @@
1
1
  /**
2
2
  * Gemini CLI OAuth flow (Google Cloud Code Assist)
3
- * Standard Gemini models only (gemini-2.0-flash, gemini-2.5-*)
3
+ * Standard Gemini models through Google Cloud Code Assist.
4
4
  *
5
5
  * NOTE: This module uses Node.js http.createServer for the OAuth callback.
6
6
  * It is only intended for CLI use, not browser environments.