ima2-gen 2.0.15 → 2.0.16

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 (125) hide show
  1. package/README.md +30 -0
  2. package/bin/commands/skill.js +336 -17
  3. package/bin/ima2.js +22 -2
  4. package/bin/lib/doctor-checks.js +6 -4
  5. package/config.js +1 -0
  6. package/docs/CLI.md +25 -3
  7. package/docs/PROMPT_STUDIO.ko.md +29 -0
  8. package/docs/PROMPT_STUDIO.md +31 -0
  9. package/docs/migration/runtime-test-inventory.md +7 -1
  10. package/lib/agentImageVideoGen.js +8 -0
  11. package/lib/agentQueueStore.js +36 -10
  12. package/lib/agentQueueWorker.js +79 -7
  13. package/lib/agentRuntime.js +2 -0
  14. package/lib/assetLifecycle.js +40 -8
  15. package/lib/canvasVersionStore.js +86 -0
  16. package/lib/cardNewsGenerator.js +37 -3
  17. package/lib/cardNewsJobStore.js +10 -0
  18. package/lib/cardNewsManifestStore.js +6 -12
  19. package/lib/cardNewsPath.js +25 -0
  20. package/lib/db.js +2 -0
  21. package/lib/generatePipeline.js +474 -0
  22. package/lib/generationInputValidation.js +32 -0
  23. package/lib/grokImageCore.js +18 -1
  24. package/lib/historyIndex.js +11 -4
  25. package/lib/historyList.js +3 -0
  26. package/lib/imageMetadata.js +3 -0
  27. package/lib/inflight.js +30 -3
  28. package/lib/multimodePipeline.js +462 -0
  29. package/lib/nodeGeneration.js +440 -0
  30. package/lib/nodeValidation.js +23 -0
  31. package/lib/oauthProxy/generators.js +3 -246
  32. package/lib/oauthProxy/multimodeGenerators.js +251 -0
  33. package/lib/routeHelpers.js +9 -2
  34. package/package.json +2 -2
  35. package/routes/agent.js +4 -4
  36. package/routes/canvasVersions.js +21 -1
  37. package/routes/cardNews.js +2 -1
  38. package/routes/edit.js +25 -9
  39. package/routes/events.js +5 -1
  40. package/routes/generate.js +2 -481
  41. package/routes/keys.js +31 -39
  42. package/routes/multimode.js +2 -502
  43. package/routes/nodes.js +3 -448
  44. package/routes/video.js +12 -3
  45. package/routes/videoExtended.js +19 -4
  46. package/server.js +53 -1
  47. package/skills/ima2/SKILL.md +204 -0
  48. package/skills/ima2-front/SKILL.md +611 -0
  49. package/skills/ima2-front/references/a11y-patterns.md +134 -0
  50. package/skills/ima2-front/references/aesthetics.md +327 -0
  51. package/skills/ima2-front/references/anti-slop.md +241 -0
  52. package/skills/ima2-front/references/asset-requirements.md +431 -0
  53. package/skills/ima2-front/references/brand-asset-sourcing.md +122 -0
  54. package/skills/ima2-front/references/color-system.md +132 -0
  55. package/skills/ima2-front/references/consistency-locks.md +20 -0
  56. package/skills/ima2-front/references/crud-ui.md +53 -0
  57. package/skills/ima2-front/references/dropdown-layer.md +110 -0
  58. package/skills/ima2-front/references/i18n-global.md +104 -0
  59. package/skills/ima2-front/references/iterative-design.md +90 -0
  60. package/skills/ima2-front/references/korea-2026.md +174 -0
  61. package/skills/ima2-front/references/layout-discipline.md +161 -0
  62. package/skills/ima2-front/references/liquid-glass.md +181 -0
  63. package/skills/ima2-front/references/logo-sections.md +194 -0
  64. package/skills/ima2-front/references/mobile-ux.md +144 -0
  65. package/skills/ima2-front/references/performance-budget.md +106 -0
  66. package/skills/ima2-front/references/preflight-full.md +58 -0
  67. package/skills/ima2-front/references/product-density.md +53 -0
  68. package/skills/ima2-front/references/prototype-variants.md +54 -0
  69. package/skills/ima2-front/references/reference-capture.md +120 -0
  70. package/skills/ima2-front/references/responsive-viewport.md +139 -0
  71. package/skills/ima2-front/references/seo-baseline.md +123 -0
  72. package/skills/ima2-front/references/soft-3d-asset-gates.md +70 -0
  73. package/skills/ima2-front/references/stacks/astro.md +204 -0
  74. package/skills/ima2-front/references/stacks/mobile-native.md +281 -0
  75. package/skills/ima2-front/references/stacks/nextjs.md +219 -0
  76. package/skills/ima2-front/references/stacks/react.md +264 -0
  77. package/skills/ima2-front/references/stacks/svelte.md +235 -0
  78. package/skills/ima2-front/references/stacks/vanilla.md +226 -0
  79. package/skills/ima2-front/references/theme-switching.md +82 -0
  80. package/skills/ima2-front/references/top-bar.md +126 -0
  81. package/skills/ima2-front/references/typography-wrapping.md +270 -0
  82. package/skills/ima2-front/references/ux-writing-ko.md +62 -0
  83. package/skills/ima2-front/references/visual-verification.md +102 -0
  84. package/skills/ima2-uiux/SKILL.md +477 -0
  85. package/skills/ima2-uiux/references/anti-slop-judgment.md +39 -0
  86. package/skills/ima2-uiux/references/color-system.md +80 -0
  87. package/skills/ima2-uiux/references/design-isms.md +194 -0
  88. package/skills/ima2-uiux/references/design-read-example.md +33 -0
  89. package/skills/ima2-uiux/references/design-system-bootstrap.md +133 -0
  90. package/skills/ima2-uiux/references/favicon-logo.md +355 -0
  91. package/skills/ima2-uiux/references/form-patterns.md +118 -0
  92. package/skills/ima2-uiux/references/intent-discovery-ladder.md +86 -0
  93. package/skills/ima2-uiux/references/korean-design-vocabulary.md +52 -0
  94. package/skills/ima2-uiux/references/layout-macrostructures.md +54 -0
  95. package/skills/ima2-uiux/references/logo-trust-sections.md +96 -0
  96. package/skills/ima2-uiux/references/mobile-native-ux.md +207 -0
  97. package/skills/ima2-uiux/references/product-personalities.md +118 -0
  98. package/skills/ima2-uiux/references/responsive-nav.md +66 -0
  99. package/skills/ima2-uiux/references/typography-line-breaks.md +193 -0
  100. package/skills/ima2-uiux/references/ux-preflight.md +65 -0
  101. package/skills/ima2-uiux/references/ux-states.md +197 -0
  102. package/skills/ima2-uiux/references/visual-hierarchy.md +115 -0
  103. package/ui/dist/.vite/manifest.json +13 -13
  104. package/ui/dist/assets/AgentWorkspace-CtYt4SF5.js +3 -0
  105. package/ui/dist/assets/{CardNewsWorkspace-Cdxn1ohU.js → CardNewsWorkspace-DN5cVqG5.js} +1 -1
  106. package/ui/dist/assets/GenerationRequestLogPanel-DnmUQdKR.js +1 -0
  107. package/ui/dist/assets/{NodeCanvas-C67sLboA.js → NodeCanvas-CxpfIBI0.js} +1 -1
  108. package/ui/dist/assets/PromptBuilderPanel-C2R3ObtR.js +2 -0
  109. package/ui/dist/assets/{PromptImportDialog-DeQXsEEv.js → PromptImportDialog-BIxz_yEx.js} +2 -2
  110. package/ui/dist/assets/PromptImportDiscoverySection-BQTlPMME.js +1 -0
  111. package/ui/dist/assets/PromptImportFolderSection-Ds_Th9O3.js +1 -0
  112. package/ui/dist/assets/{PromptLibraryPanel-Db3xEPM_.js → PromptLibraryPanel-Rs4l45pV.js} +2 -2
  113. package/ui/dist/assets/{SettingsWorkspace-BDk_1W-V.js → SettingsWorkspace-p1AZ6uT9.js} +1 -1
  114. package/ui/dist/assets/index-0-_vgFGs.js +4 -0
  115. package/ui/dist/assets/index-Dm3pFxV4.js +23 -0
  116. package/ui/dist/assets/index-J8yDF3Ch.css +1 -0
  117. package/ui/dist/index.html +2 -2
  118. package/ui/dist/assets/AgentWorkspace-DAg_7zpY.js +0 -3
  119. package/ui/dist/assets/GenerationRequestLogPanel-C_qvEUi2.js +0 -1
  120. package/ui/dist/assets/PromptBuilderPanel-DjvVdAie.js +0 -2
  121. package/ui/dist/assets/PromptImportDiscoverySection-CrwyUKYI.js +0 -1
  122. package/ui/dist/assets/PromptImportFolderSection-CToGMqYE.js +0 -1
  123. package/ui/dist/assets/index-2oG6in1i.css +0 -1
  124. package/ui/dist/assets/index-CoxMOXAU.js +0 -23
  125. package/ui/dist/assets/index-p8egnGHk.js +0 -4
@@ -0,0 +1,3 @@
1
+ import{M as Ke,a as m,j as e,u as j,i as Ge,t as St,o as pe,A as vt,b as T,v as wt,e as _t,w as $e}from"./index-Dm3pFxV4.js";async function D(t,n){const s=await fetch(t,n);if(!s.ok){const a=await s.json().catch(()=>({})),r=a.error,o=typeof r=="string"?r:r?.message??`Request failed: ${s.status}`,i=new Error(o);throw i.status=s.status,i.code=typeof r=="object"?r?.code:a.code,i}return await s.json()}function Nt(t){return t.filename?`/generated/${t.filename}`:typeof t.url=="string"&&t.url?t.url:typeof t.thumb=="string"&&t.thumb?t.thumb:null}function He(t){const n=Nt(t);if(!n)return null;const s=t.filename??t.canvasEditableFilename??"current-image.png";return{id:`current-${s}`,filename:s,url:n,thumbUrl:t.thumb??n,prompt:t.prompt??t.userPrompt??null,revisedPrompt:t.revisedPrompt??null,createdAt:t.createdAt??Date.now()}}async function Pe(t){const n=t?`?selectedSessionId=${encodeURIComponent(t)}`:"";return D(`/api/agent/sessions${n}`)}async function De(t){const n=t.currentImage?He(t.currentImage):null;return D("/api/agent/sessions",{method:"POST",headers:{"Content-Type":"application/json"},body:JSON.stringify({title:t.title,currentImage:n,webSearchEnabled:t.webSearchEnabled??!0})})}async function se(t,n){return D(`/api/agent/sessions/${encodeURIComponent(t)}`,{method:"PATCH",headers:{"Content-Type":"application/json"},body:JSON.stringify(n)})}async function Ct(t){return D(`/api/agent/sessions/${encodeURIComponent(t)}`,{method:"DELETE"})}async function It(t,n,s){return D(`/api/agent/sessions/${encodeURIComponent(t)}/queue`,{method:"POST",headers:{"Content-Type":"application/json"},body:JSON.stringify({prompt:n,options:s})})}async function At(t){return D(`/api/agent/queue/${encodeURIComponent(t)}/cancel`,{method:"POST"})}async function kt(t){return D(`/api/agent/queue/${encodeURIComponent(t)}/retry`,{method:"POST"})}const je=Ke,Et=Ke,Tt={provider:"oauth",model:"gpt-5.4-mini",quality:"medium",size:"1024x1024",format:"png",moderation:"low",reasoningEffort:"none",webSearchEnabled:!0,generationStrategy:"auto",variants:1,maxAutoVariants:je,parallelism:2};function Be(t){return{...Tt,...t??{}}}function Oe(t){const{width:n,height:s}=t;return n>=1280?"desktop-three-pane":s<560&&n<1280?n>=768?"tablet-stacked":"mobile-chat-image-sheet":n>=960&&s>=560?"desktop-rail":n>=768&&s>=700?"tablet-stacked":"mobile-chat-image-sheet"}function Mt(){return typeof window>"u"?1440:window.innerWidth}function ze(){return typeof window>"u"?900:window.innerHeight}function qt(){if(typeof window>"u"||typeof document>"u")return 1440;const t=document.querySelector('.app[data-ui-mode="agent"] .sidebar');if(!t)return window.innerWidth;const n=window.getComputedStyle(t);if(n.display==="none"||n.visibility==="hidden")return window.innerWidth;const s=t.getBoundingClientRect().width;return Math.max(0,window.innerWidth-s)}function Lt(){const[t,n]=m.useState(()=>Oe({width:Mt(),height:ze()}));return m.useEffect(()=>{const s=()=>n(Oe({width:qt(),height:ze()}));return s(),window.addEventListener("resize",s),()=>window.removeEventListener("resize",s)},[]),t}function N({size:t=16,children:n}){return e.jsx("svg",{width:t,height:t,viewBox:"0 0 24 24",fill:"none",stroke:"currentColor",strokeWidth:"2",strokeLinecap:"round",strokeLinejoin:"round","aria-hidden":"true",children:n})}function be(t){return e.jsxs(N,{...t,children:[e.jsx("path",{d:"M12 5v14"}),e.jsx("path",{d:"M5 12h14"})]})}function Ve(t){return e.jsxs(N,{...t,children:[e.jsx("circle",{cx:"11",cy:"11",r:"7"}),e.jsx("path",{d:"M21 21l-4.3-4.3"})]})}function Q(t){return e.jsxs(N,{...t,children:[e.jsx("rect",{x:"3",y:"5",width:"18",height:"14",rx:"2"}),e.jsx("circle",{cx:"8",cy:"10",r:"1.5"}),e.jsx("path",{d:"M21 16l-5-5L5 19"})]})}function ye(t){return e.jsxs(N,{...t,children:[e.jsx("path",{d:"M18 6L6 18"}),e.jsx("path",{d:"M6 6l12 12"})]})}function Rt(t){return e.jsxs(N,{...t,children:[e.jsx("path",{d:"M22 2L11 13"}),e.jsx("path",{d:"M22 2l-7 20-4-9-9-4 20-7z"})]})}function $t(t){return e.jsx(N,{...t,children:e.jsx("path",{d:"M21.4 11.1l-9.2 9.1a6 6 0 0 1-8.5-8.5l9.2-9.2a4 4 0 0 1 5.7 5.7l-9.2 9.2a2 2 0 0 1-2.8-2.8l8.5-8.5"})})}function Pt(t){return e.jsxs(N,{...t,children:[e.jsx("circle",{cx:"12",cy:"12",r:"10"}),e.jsx("path",{d:"M2 12h20"}),e.jsx("path",{d:"M12 2a15.3 15.3 0 0 1 0 20"}),e.jsx("path",{d:"M12 2a15.3 15.3 0 0 0 0 20"})]})}function Se(t){return e.jsxs(N,{...t,children:[e.jsx("path",{d:"M4 6h16"}),e.jsx("path",{d:"M4 12h16"}),e.jsx("path",{d:"M4 18h16"})]})}function Dt(t){return e.jsxs(N,{...t,children:[e.jsx("path",{d:"M19 12H5"}),e.jsx("path",{d:"M12 19l-7-7 7-7"})]})}function Bt(t){return e.jsxs(N,{...t,children:[e.jsx("path",{d:"M8 6h13"}),e.jsx("path",{d:"M8 12h13"}),e.jsx("path",{d:"M8 18h13"}),e.jsx("circle",{cx:"3",cy:"6",r:"1"}),e.jsx("circle",{cx:"3",cy:"12",r:"1"}),e.jsx("circle",{cx:"3",cy:"18",r:"1"})]})}function Ot(t){return e.jsxs(N,{...t,children:[e.jsx("path",{d:"M3 6h18"}),e.jsx("path",{d:"M8 6V4h8v2"}),e.jsx("path",{d:"M19 6l-1 14H6L5 6"})]})}function zt(t){return e.jsxs(N,{...t,children:[e.jsx("path",{d:"M12 20h9"}),e.jsx("path",{d:"M16.5 3.5a2.1 2.1 0 0 1 3 3L7 19l-4 1 1-4 12.5-12.5z"})]})}function Je(t){return e.jsx(N,{...t,children:e.jsx("path",{d:"M6 9l6 6 6-6"})})}function ve(t){return e.jsx(N,{...t,children:e.jsx("path",{d:"M9 6l6 6-6 6"})})}const We=[{name:"question",display:"/question",aliases:["question","ask","q"],descriptionKey:"agent.slashDesc_question"},{name:"variants",display:"/variants <N>",aliases:["variants","variant","v","n"],descriptionKey:"agent.slashDesc_variants",hasValue:!0},{name:"generate",display:"/generate <N>",aliases:["generate","gen","g"],descriptionKey:"agent.slashDesc_generate",hasValue:!0},{name:"parallelism",display:"/parallelism <N>",aliases:["parallelism","parallel","p"],descriptionKey:"agent.slashDesc_parallelism",hasValue:!0},{name:"help",display:"/help",aliases:["help","h"],descriptionKey:"agent.slashDesc_help"}];function Xe(t){const n=t.toLowerCase();return n?We.filter(s=>s.aliases.some(a=>a.startsWith(n))):We}function Wt({listboxId:t,query:n,highlightIndex:s,onSelect:a,onHighlightChange:r}){const{t:o}=j(),i=Xe(n);return i.length===0?null:e.jsx("ul",{id:t,className:"slash-command-menu",role:"listbox","aria-label":o("agent.slashCommands"),children:i.map((c,u)=>e.jsxs("li",{id:`${t}-opt-${u}`,role:"option","aria-selected":u===s,className:`slash-command-menu__item${u===s?" is-highlighted":""}`,onMouseDown:l=>l.preventDefault(),onClick:()=>a(c),onMouseEnter:()=>r(u),children:[e.jsx("span",{className:"slash-command-menu__name",children:c.display}),e.jsx("span",{className:"slash-command-menu__desc",children:o(c.descriptionKey)})]},c.name))})}function Ft(t){return Array.from(t).filter(n=>n.type.startsWith("image/"))}function Qt(t){return Array.from(t.clipboardData?.items??[]).filter(n=>n.kind==="file"&&n.type.startsWith("image/")).map(n=>n.getAsFile()).filter(n=>!!n)}function Ut({webSearchEnabled:t,insertedPrompt:n,onWebSearchChange:s,onAttachFiles:a,onSend:r}){const{t:o}=j(),[i,c]=m.useState(""),[u,l]=m.useState(0),[h,p]=m.useState(!1),g=m.useRef(null),x=m.useRef(null),f=m.useId(),w=i.trim().length>0,C=i.trimStart().match(/^\/([a-z]*)$/i),M=C!==null,ae=M&&!h,B=C?.[1]??"",A=Xe(B),O=ae&&A.length>0,q=A.length>0?Math.min(u,A.length-1):0,z=O?`${f}-opt-${q}`:void 0;m.useEffect(()=>{l(0),p(!1)},[B]),m.useEffect(()=>{M&&p(!1)},[M]),m.useEffect(()=>{n?.text&&c(b=>b.trim()?`${b.trim()}
2
+
3
+ ${n.text}`:n.text)},[n]);const X=()=>{const b=i.trim();b&&(r(b),c(""))},W=b=>{c(`/${b.name} `),g.current?.focus()},re=b=>{const $=Qt(b);$.length!==0&&(b.preventDefault(),a($))};return e.jsxs("div",{className:"agent-composer",children:[O&&e.jsx(Wt,{listboxId:f,query:B,highlightIndex:q,onSelect:W,onHighlightChange:l}),e.jsx("textarea",{ref:g,value:i,"aria-autocomplete":"list","aria-haspopup":"listbox","aria-label":o("agent.composerPlaceholder"),...O?{"aria-controls":f}:{},"aria-activedescendant":z,autoCapitalize:"off",autoCorrect:"off",placeholder:o("agent.composerPlaceholder"),onChange:b=>c(b.target.value),onPaste:re,onKeyDown:b=>{if(b.key==="Enter"&&(b.metaKey||b.ctrlKey)){b.preventDefault(),X();return}if(O)switch(b.key){case"Tab":{b.preventDefault(),W(A[q]);return}case"ArrowDown":{b.preventDefault(),l((q+1)%A.length);return}case"ArrowUp":{b.preventDefault(),l((q-1+A.length)%A.length);return}case"Enter":{b.preventDefault(),W(A[q]);return}case"Escape":{b.preventDefault(),p(!0);return}}}}),e.jsx("input",{ref:x,type:"file",accept:"image/png,image/jpeg,image/webp",multiple:!0,hidden:!0,onChange:b=>{const $=Ft(b.target.files??[]);$.length>0&&a($),b.target.value=""}}),e.jsxs("div",{className:"agent-composer__actions",children:[e.jsx("button",{type:"button",onClick:()=>x.current?.click(),"aria-label":o("agent.attachReference"),title:o("agent.attachReference"),children:e.jsx($t,{size:16})}),e.jsx("button",{type:"button",className:t?"is-active":"","aria-pressed":t,onClick:()=>s(!t),"aria-label":o("agent.webSearch"),title:o("agent.webSearch"),children:e.jsx(Pt,{size:16})}),e.jsxs("button",{type:"button",className:"agent-composer__send",onClick:X,disabled:!w,"aria-label":o("agent.send"),children:[e.jsx(Rt,{size:16}),e.jsx("span",{children:o("agent.send")})]})]})]})}function V({src:t,alt:n,className:s,fallbackClassName:a,iconSize:r=18}){const[o,i]=m.useState(!1);return!t||o?e.jsx("span",{className:a??"agent-image-fallback","aria-label":n,role:"img",children:e.jsx(Q,{size:r})}):Ge(t)?e.jsx("video",{className:s,src:t,preload:"metadata",playsInline:!0,muted:!0,onError:()=>i(!0),"aria-label":n}):e.jsx("img",{className:s,src:t,alt:n,onError:()=>i(!0)})}const J=m.forwardRef(function({image:n,selected:s=!1,compact:a=!1,onSelect:r},o){const{t:i}=j(),c=`${i("agent.mediaSelect")}: ${n.prompt??n.filename}`,u=`${a?"agent-result-thumb agent-result-thumb--compact":"agent-result-thumb"}${s?" is-selected":""}`;return e.jsx("button",{ref:o,type:"button",className:u,"aria-label":c,"aria-current":s?"true":void 0,onClick:()=>r(n.id),title:i("agent.mediaSelect"),children:e.jsx(V,{src:n.thumbUrl??n.url,alt:n.prompt??i("agent.imageAlt"),iconSize:a?14:18})})});function Kt({turn:t,imagesById:n,currentImageId:s,onImageSelect:a}){const{t:r}=j(),o=t.role==="user"?r("agent.user"):t.status==="error"?r("agent.errorRole"):r("agent.assistant"),i=t.imageIds??[],c=t.status==="streaming"?" is-streaming":t.status==="error"?" is-error":"",u=`agent-message agent-message--${t.role}${c}`;return e.jsxs("article",{className:u,"aria-busy":t.status==="streaming"?"true":void 0,children:[e.jsx("div",{className:"agent-message__role",children:o}),e.jsx("p",{children:t.text}),i.length>0?e.jsx("div",{className:"agent-message__images",children:i.map(l=>{const h=n[l];return h?e.jsx(J,{image:h,selected:l===s,compact:!1,onSelect:a},l):null})}):null]})}const Gt=["ima2.get_image_context","ima2.web_search","ima2.generate_image","ima2.generate_video","ima2.get_generation_errors"];function Ht(t){return t.replace(/\s+/g," ").trim()||"tool"}function Vt(t){if(t.toolCalls?.length)return t.toolCalls;const n=Ht(t.text);return Gt.filter(s=>n.includes(s)).map((s,a)=>({id:`${t.id}-fallback-${a}`,name:s,status:t.status==="error"?"error":t.status==="streaming"?"running":"complete",outputSummary:n,imageIds:s==="ima2.generate_image"||s==="ima2.generate_video"?t.imageIds??[]:[],webFindingIds:s==="ima2.web_search"?t.webFindingIds??[]:[]}))}function Ye(t){return!t||t<0?null:t<1e3?`${t}ms`:`${(t/1e3).toFixed(1)}s`}function Jt({call:t,imagesById:n,currentImageId:s,onImageSelect:a}){const{t:r}=j(),o=t.imageIds??[],i=Ye(t.durationMs),[c,u]=m.useState({input:!1,output:!1}),l=(h,p)=>e.jsxs("dd",{className:c[h]?"is-expanded":void 0,children:[e.jsx("span",{children:p}),e.jsx("button",{type:"button",onClick:()=>u(g=>({...g,[h]:!g[h]})),children:r(c[h]?"agent.toolsShowLess":"agent.toolsShowMore")})]});return e.jsxs("div",{className:"agent-tool-call-details",children:[e.jsxs("dl",{children:[e.jsxs("div",{children:[e.jsx("dt",{children:r("agent.toolInput")}),l("input",t.inputSummary??"-")]}),e.jsxs("div",{children:[e.jsx("dt",{children:r("agent.toolOutput")}),l("output",t.errorMessage??t.outputSummary??"-")]}),t.requestId?e.jsxs("div",{children:[e.jsx("dt",{children:r("agent.requestId")}),e.jsx("dd",{children:t.requestId})]}):null,i?e.jsxs("div",{children:[e.jsx("dt",{children:r("agent.duration")}),e.jsx("dd",{children:i})]}):null]}),o.length>0?e.jsx("div",{className:"agent-tool-call-details__artifacts","aria-label":r("agent.toolArtifacts"),children:o.map(h=>{const p=n[h];return p?e.jsx(J,{image:p,selected:h===s,compact:!0,onSelect:a},h):null})}):null]})}function Xt({call:t,imagesById:n,currentImageId:s,onImageSelect:a}){const{t:r}=j(),o=m.useId(),[i,c]=m.useState(!1),u=Ye(t.durationMs);return e.jsxs("li",{className:`agent-tool-call-row agent-tool-call-row--${t.status}`,children:[e.jsxs("button",{type:"button",className:"agent-tool-call-row__toggle","aria-expanded":i,"aria-controls":o,"aria-busy":t.status==="running"?"true":void 0,onClick:()=>c(l=>!l),children:[e.jsx("span",{className:"agent-tool-call-row__status","aria-label":r(`agent.toolStatus.${t.status}`)}),e.jsx("span",{className:"agent-tool-call-row__name",children:t.name}),t.imageIds?.length?e.jsx("span",{className:"agent-tool-call-row__meta",children:r("agent.toolImageCount",{count:t.imageIds.length})}):null,u?e.jsx("span",{className:"agent-tool-call-row__meta",children:u}):null,i?e.jsx(Je,{size:13}):e.jsx(ve,{size:13})]}),e.jsx("div",{id:o,hidden:!i,children:e.jsx(Jt,{call:t,imagesById:n,currentImageId:s,onImageSelect:a})})]})}function Yt(t){const n=[],s=new Set;let a=!1;const r=[];for(const o of t){const i=Vt(o);n.push(...i);for(const c of o.imageIds??[])s.add(c);for(const c of i)for(const u of c.imageIds??[])s.add(u);o.status==="streaming"&&(a=!0);for(const c of i)r.includes(c.name)||r.push(c.name)}return{toolCalls:n,imageIds:[...s],isStreaming:a,label:r.join(" + ")||"tool"}}function Zt({turns:t,imagesById:n,currentImageId:s,onImageSelect:a}){const{t:r}=j(),o=m.useId(),[i,c]=m.useState(!1),{toolCalls:u,imageIds:l,isStreaming:h,label:p}=m.useMemo(()=>Yt(t),[t]),g=r(i?"agent.toolCollapse":"agent.toolExpand");return e.jsxs("article",{className:`agent-message agent-message--tool is-collapsible${h?" is-streaming":""}`,"aria-busy":h?"true":void 0,children:[e.jsx("div",{className:"agent-message__tool-summary",children:e.jsx("button",{type:"button",className:"agent-message__tool-toggle","aria-expanded":i,"aria-controls":o,"aria-label":`${g}: ${p}`,onClick:()=>c(x=>!x),children:e.jsxs("span",{className:"agent-message__tool-summary-line",children:[e.jsx("span",{className:"agent-message__tool-dot","aria-hidden":"true"}),e.jsx("span",{className:"agent-message__role",children:r("agent.toolGroup")}),l.length>0?e.jsx("span",{className:"agent-message__tool-count",children:r("agent.toolImageCount",{count:l.length})}):null,u.length>0?e.jsx("span",{className:"agent-message__tool-count",children:r("agent.toolCallCount",{count:u.length})}):null,i?e.jsx(Je,{size:14}):e.jsx(ve,{size:14})]})})}),e.jsxs("div",{id:o,className:"agent-message__tool-details",hidden:!i,children:[e.jsx("div",{className:"agent-message__tool-label",children:p}),u.length>0?e.jsx("ul",{className:"agent-tool-call-list",children:u.map(x=>e.jsx(Xt,{call:x,imagesById:n,currentImageId:s,onImageSelect:a},x.id))}):null,l.length>0?e.jsx("div",{className:"agent-message__tool-thumbs",children:l.map(x=>{const f=n[x];return f?e.jsx(J,{image:f,selected:x===s,compact:!0,onSelect:a},x):null})}):null]})]})}function en(t){return t.role!=="tool"&&(t.text.trim().length>0||(t.imageIds?.length??0)>0)}function tn({turns:t,imagesById:n,currentImageId:s,onImageSelect:a}){const{t:r}=j(),o=t.filter(p=>p.role==="tool"),i=t.filter(en),c=t.some(p=>p.status==="streaming"),u=t.some(p=>p.status==="error"),l=c?" is-streaming":u?" is-error":"",h=r(u?"agent.errorRole":"agent.assistant");return e.jsxs("article",{className:`agent-message agent-message--assistant-run${l}`,"aria-busy":c?"true":void 0,children:[e.jsxs("div",{className:"agent-run__header",children:[e.jsx("div",{className:"agent-message__role",children:h}),o.length>0?e.jsx("div",{className:"agent-run__header-tool",children:e.jsx(Zt,{turns:o,imagesById:n,currentImageId:s,onImageSelect:a})}):null]}),i.length>0?e.jsx("ol",{className:"agent-run__steps","aria-label":h,children:i.map(p=>{const g=p.imageIds??[],x=p.status==="streaming"?" is-streaming":p.status==="error"?" is-error":"";return e.jsxs("li",{className:`agent-run__step${x}`,children:[e.jsx("span",{className:"agent-run__step-marker","aria-hidden":"true"}),e.jsxs("div",{className:"agent-run__step-body",children:[p.text.trim().length>0?e.jsx("p",{children:p.text}):null,g.length>0?e.jsx("div",{className:"agent-message__images",children:g.map(f=>{const w=n[f];return w?e.jsx(J,{image:w,selected:f===s,compact:!1,onSelect:a},f):null})}):null]})]},p.id)})}):null]})}function nn(t){const n=[];let s=[];const a=()=>{s.length!==0&&(n.push({kind:"run",turns:s,key:s.map(r=>r.id).join("+")}),s=[])};for(const r of t)r.role==="user"?(a(),n.push({kind:"single",turn:r})):s.push(r);return a(),n}function sn({turns:t,imagesById:n,currentImageId:s,onImageSelect:a}){const{t:r}=j(),o=m.useRef(null),i=m.useRef(!0),[c,u]=m.useState(!1),l=m.useMemo(()=>nn(t),[t]),h=m.useCallback(()=>{const g=o.current;g&&(i.current=g.scrollHeight-g.scrollTop-g.clientHeight<=120,i.current&&u(!1))},[]),p=m.useCallback(()=>{const g=o.current;g&&(g.scrollTo({top:g.scrollHeight,behavior:"smooth"}),i.current=!0,u(!1))},[]);return m.useEffect(()=>{const g=o.current;g&&(i.current?g.scrollTop=g.scrollHeight:u(!0))},[t.length]),e.jsxs("div",{ref:o,className:"agent-message-list","aria-live":"polite",onScroll:h,children:[t.length===0?e.jsx("div",{className:"agent-message-list__empty",children:r("agent.emptyChat")}):null,l.map(g=>g.kind==="run"?e.jsx(tn,{turns:g.turns,imagesById:n,currentImageId:s,onImageSelect:a},g.key):e.jsx(Kt,{turn:g.turn,imagesById:n,currentImageId:s,onImageSelect:a},g.turn.id)),c?e.jsx("button",{type:"button",className:"agent-message-list__jump",onClick:p,children:r("agent.emptyJumpLatest")}):null]})}function Ze({settings:t,onChange:n,onOpenModelTab:s}){const{t:a}=j(),[r,o]=m.useState(!1),i=m.useRef(null),c=St(t),u=pe.find(l=>l.value===t.reasoningEffort)??pe[0];return m.useEffect(()=>{if(!r)return;const l=p=>{i.current?.contains(p.target)||o(!1)},h=p=>{p.key==="Escape"&&o(!1)};return window.addEventListener("pointerdown",l),window.addEventListener("keydown",h),()=>{window.removeEventListener("pointerdown",l),window.removeEventListener("keydown",h)}},[r]),e.jsxs("div",{ref:i,className:"image-model-select image-model-select--sidebar agent-model-select",children:[e.jsxs("button",{type:"button",className:"image-model-select__trigger image-model-select__trigger--pill","aria-haspopup":"menu","aria-expanded":r,"aria-label":a("sidebar.quickSettingsAria",{model:c.shortLabel,effort:u.shortLabel}),onClick:()=>o(l=>!l),children:[e.jsxs("span",{className:"image-model-select__trigger-top",children:[e.jsx("span",{className:"image-model-select__trigger-model",children:c.shortLabel}),e.jsx("span",{className:"image-model-select__trigger-chevron","aria-hidden":"true",children:"▾"})]}),e.jsx("span",{className:"image-model-select__trigger-effort",children:u.shortLabel})]}),s?e.jsx("button",{type:"button",className:"agent-model-select__open-tab",onClick:s,"aria-label":a("agent.modelTabView"),title:a("agent.modelTabView"),children:e.jsx(ve,{size:13})}):null,r?e.jsxs("div",{className:"image-model-select__menu agent-model-select__menu",role:"menu","aria-label":a("sidebar.quickSettingsMenu"),children:[e.jsxs("div",{className:"image-model-select__section",role:"group","aria-label":a("agent.model"),children:[e.jsx("div",{className:"image-model-select__section-title",children:a("agent.model")}),vt.map(l=>e.jsxs("button",{type:"button",className:`image-model-select__item${l.value===c.value?" is-active":""}`,role:"menuitemradio","aria-checked":l.value===c.value,onClick:()=>{n({model:l.value,provider:l.provider}),o(!1)},children:[e.jsx("span",{children:l.shortLabel}),e.jsx("small",{children:l.fullLabel})]},l.value))]}),e.jsxs("div",{className:"image-model-select__section",role:"group","aria-label":a("sidebar.reasoningLabel"),children:[e.jsx("div",{className:"image-model-select__section-title",children:a("sidebar.reasoningLabel")}),pe.map(l=>e.jsxs("button",{type:"button",className:`image-model-select__item${l.value===t.reasoningEffort?" is-active":""}`,role:"menuitemradio","aria-checked":l.value===t.reasoningEffort,onClick:()=>{n({reasoningEffort:l.value}),o(!1)},children:[e.jsx("span",{children:l.shortLabel}),e.jsx("small",{children:a(l.fullLabelKey)})]},l.value))]})]}):null]})}function an(t,n){if(!t)return null;const s=Math.max(0,Math.floor((n-t)/1e3));return`${String(Math.floor(s/60)).padStart(2,"0")}:${String(s%60).padStart(2,"0")}`}function rn({progress:t,queueSummary:n,onQueueOpen:s}){const{t:a}=j(),[r,o]=m.useState(Date.now());m.useEffect(()=>{if(!t?.startedAt)return;o(Date.now());const p=window.setInterval(()=>o(Date.now()),1e3);return()=>window.clearInterval(p)},[t?.startedAt]);const i=n?.activeCount??(t?.queuedCount??0)+(t?.runningCount??0),c=n?.failedCount??t?.failedCount??0;if(!t?.active&&!n)return null;const u=t?.status==="queued"?"agent.progressQueued":t?.progressStage==="downloading"?"agent.progressDownloading":t?.status==="running"||t?.progressStage==="requesting"||t?.progressStage==="polling"?"agent.progressGenerating":t?.status==="error"?"agent.progressFailed":"agent.progressPlanning",l=an(t?.startedAt,r),h=t?.jobKind?a("agent.progressJob",{kind:a(`agent.mediaKind.${t.jobKind}`),count:t.variantCount??1}):null;return e.jsxs("div",{className:`agent-run-status agent-run-status--${t?.status??"idle"}`,role:"status","aria-live":"polite",children:[t?.active?e.jsx("span",{className:"agent-run-status__indicator","aria-hidden":"true"}):null,t?.active?e.jsx("span",{className:"agent-run-status__label",children:a(u)}):null,h?e.jsx("span",{className:"agent-run-status__meta",children:h}):null,l?e.jsx("time",{className:"agent-run-status__elapsed",dateTime:`PT${Math.floor((r-(t?.startedAt??r))/1e3)}S`,children:l}):null,t?.status==="error"&&t.lastError?e.jsx("span",{className:"agent-run-status__meta",children:t.lastError}):null,e.jsx("button",{type:"button",className:"agent-run-status__queue",onClick:s,disabled:!s,children:a("agent.queueSummary",{active:i,failed:c})})]})}function ln({status:t,compacted:n=!1}){const{t:s}=j(),a=s(t==="generating"?"agent.statusGenerating":t==="reconnecting"?"agent.statusReconnecting":"agent.statusReady");return e.jsxs("span",{className:`agent-status agent-status--${t}`,"aria-live":t==="ready"?void 0:"polite",children:[t==="generating"?e.jsx("span",{className:"agent-status__dot","aria-hidden":"true"}):null,e.jsx("span",{children:a}),n?e.jsx("em",{children:s("agent.compacted")}):null]})}function on({session:t,turns:n,imagesById:s,currentImageId:a,runtimeStatus:r,runProgress:o,settings:i,insertedPrompt:c,onSettingsChange:u,onOpenModelTab:l,onWebSearchChange:h,onAttachFiles:p,onImageSelect:g,onSend:x}){const{t:f}=j();return e.jsxs("section",{className:"agent-chat","aria-label":f("agent.chat"),children:[e.jsxs("header",{className:"agent-pane-header",children:[e.jsxs("div",{className:"agent-pane-header__title",children:[e.jsx("span",{children:f("agent.chat")}),e.jsx("strong",{children:t?.title??f("agent.newSession")})]}),e.jsxs("div",{className:"agent-pane-header__actions",children:[i&&u?e.jsx(Ze,{settings:i,onChange:u,onOpenModelTab:l}):null,e.jsx(ln,{status:r,compacted:t?.compacted})]})]}),e.jsx(sn,{turns:n,imagesById:s,currentImageId:a,onImageSelect:g}),e.jsx(rn,{progress:o}),e.jsx(Ut,{webSearchEnabled:t?.webSearchEnabled??!1,insertedPrompt:c,onWebSearchChange:h,onAttachFiles:p,onSend:x})]})}const cn=["image","refs","web","memory"];function un({activeTab:t,onChange:n}){const{t:s}=j(),a={image:s("agent.imageTab"),refs:s("agent.refsTab"),web:s("agent.webTab"),memory:s("agent.memoryTab")};return e.jsx("div",{className:"agent-context-tabs",role:"tablist","aria-label":s("agent.contextTabs"),children:cn.map(r=>e.jsx("button",{type:"button",role:"tab","aria-selected":t===r,className:t===r?"active":"",onClick:()=>n(r),children:a[r]},r))})}function dn({activeTab:t,currentImage:n}){const{t:s}=j();return t==="refs"?e.jsx("div",{className:"agent-tab-empty",children:s("agent.noRefs")}):t==="web"?e.jsx("div",{className:"agent-tab-empty",children:s("agent.noWeb")}):t==="memory"?e.jsxs("ul",{className:"agent-memory-list",children:[e.jsx("li",{children:s("agent.memoryItemStyle")}),e.jsx("li",{children:s("agent.memoryItemSubject")})]}):e.jsxs("dl",{className:"agent-image-meta",children:[e.jsxs("div",{children:[e.jsx("dt",{children:s("agent.filename")}),e.jsx("dd",{children:n?.filename??"-"})]}),e.jsxs("div",{children:[e.jsx("dt",{children:s("agent.prompt")}),e.jsx("dd",{children:n?.prompt??n?.revisedPrompt??"-"})]})]})}function gn(t){const n=Math.max(0,Math.round(t));return`${Math.floor(n/60)}:${String(n%60).padStart(2,"0")}`}function mn({image:t}){const{t:n}=j(),[s,a]=m.useState("loading"),[r,o]=m.useState(null),[i,c]=m.useState(0),u=h=>{const p=h.currentTarget.duration;o(Number.isFinite(p)?p:null),a("ready")},l=()=>{a("loading"),o(null),c(h=>h+1)};return e.jsxs("div",{className:"agent-video-preview",children:[s==="loading"?e.jsx("div",{className:"agent-video-preview__skeleton",role:"status",children:n("agent.mediaLoading")}):null,s==="error"?e.jsxs("div",{className:"agent-video-preview__error",role:"alert",children:[e.jsx(Q,{size:34}),e.jsx("span",{children:n("agent.mediaLoadFailed")}),e.jsx("button",{type:"button",onClick:l,children:n("agent.mediaRetry")})]}):e.jsx("video",{src:t.url,controls:!0,playsInline:!0,preload:"metadata","aria-label":t.prompt??n("agent.mediaVideoLabel"),onLoadedMetadata:u,onError:()=>a("error")},i),e.jsxs("div",{className:"agent-video-preview__toolbar",children:[e.jsx("span",{children:r==null?n("agent.mediaDurationUnknown"):n("agent.mediaDuration",{duration:gn(r)})}),e.jsx("a",{href:t.url,download:t.filename,children:n("agent.mediaDownload")})]})]})}function et({currentImage:t,images:n,activeTab:s,onTabChange:a,onImageSelect:r,headerAction:o}){const{t:i}=j(),c=m.useRef({}),u=m.useMemo(()=>n.findIndex(p=>p.id===t?.id),[t?.id,n]);m.useEffect(()=>{t?.id&&c.current[t.id]?.scrollIntoView({block:"nearest",inline:"nearest"})},[t?.id]);const l=m.useCallback(p=>{const g=n[p];g&&r(g.id)},[n,r]),h=m.useCallback(p=>{if(n.length===0)return;const g=u>=0?u:0;let x=null;(p.key==="ArrowLeft"||p.key==="ArrowUp")&&(x=Math.max(0,g-1)),(p.key==="ArrowRight"||p.key==="ArrowDown")&&(x=Math.min(n.length-1,g+1)),p.key==="Home"&&(x=0),p.key==="End"&&(x=n.length-1),!(x===null||x===g)&&(p.preventDefault(),l(x))},[u,n.length,l]);return e.jsxs("section",{className:"agent-image","aria-label":i("agent.imagePane"),children:[e.jsxs("header",{className:"agent-pane-header",children:[e.jsxs("div",{className:"agent-pane-header__title",children:[e.jsx("span",{children:i("agent.imagePane")}),e.jsx("strong",{children:i("agent.currentImage")})]}),o]}),e.jsx("div",{className:"agent-image__preview",tabIndex:n.length>1?0:void 0,onKeyDown:h,"aria-label":n.length>1?i("agent.variants"):void 0,children:t?Ge(t.url)?e.jsx(mn,{image:t},t.id):e.jsx(V,{src:t.url,alt:t.prompt??i("agent.imageAlt"),fallbackClassName:"agent-image__empty",iconSize:34}):e.jsxs("div",{className:"agent-image__empty",children:[e.jsx(Q,{size:34}),e.jsx("span",{children:i("agent.noImage")})]})}),e.jsx("div",{className:"agent-image__variants","aria-label":i("agent.variants"),onKeyDown:h,children:n.map(p=>e.jsx(J,{ref:g=>{c.current[p.id]=g},image:p,selected:p.id===t?.id,onSelect:r},p.id))}),e.jsx(un,{activeTab:s,onChange:a}),e.jsx(dn,{activeTab:s,currentImage:t})]})}const Fe='button, [href], input, textarea, select, [tabindex]:not([tabindex="-1"])';function we(t,n){const s=m.useRef(null),a=m.useRef(null);return m.useEffect(()=>{if(!t)return;a.current=document.activeElement;const r=window.setTimeout(()=>{s.current?.querySelector(Fe)?.focus()},0),o=i=>{if(i.key==="Escape"){i.preventDefault(),n();return}if(i.key!=="Tab")return;const c=Array.from(s.current?.querySelectorAll(Fe)??[]);if(c.length===0)return;const u=c[0],l=c[c.length-1];i.shiftKey&&document.activeElement===u?(i.preventDefault(),l.focus()):!i.shiftKey&&document.activeElement===l&&(i.preventDefault(),u.focus())};return document.addEventListener("keydown",o),()=>{window.clearTimeout(r),document.removeEventListener("keydown",o),a.current?.focus()}},[n,t]),s}function hn({open:t,currentImage:n,images:s,activeTab:a,onTabChange:r,onImageSelect:o,onClose:i}){const{t:c}=j(),u=m.useCallback(()=>i(),[i]),l=we(t,u);return t?e.jsxs("div",{className:"agent-dialog agent-dialog--image",role:"presentation",children:[e.jsx("button",{type:"button",className:"agent-dialog__backdrop",onClick:i,"aria-label":c("agent.closeImage")}),e.jsx("section",{ref:l,className:"agent-image-sheet",role:"dialog","aria-modal":"true","aria-label":c("agent.imagePane"),children:e.jsx(et,{currentImage:n,images:s,activeTab:a,onTabChange:r,onImageSelect:o,headerAction:e.jsx("button",{type:"button",onClick:i,"aria-label":c("agent.closeImage"),children:e.jsx(ye,{size:17})})})})]}):null}function pn(t){return t.status==="queued"?`#${t.position}`:t.status==="succeeded"?String(t.resultImageIds.length):""}function fn(t,n){if(!t)return"-";const s=Math.max(1,Math.round((Date.now()-t)/1e3));if(s<60)return n(s,"second");const a=Math.round(s/60);return a<60?n(a,"minute"):n(Math.round(a/60),"hour")}function xn({item:t,onCancel:n,onRetry:s}){const{t:a}=j(),r=t.status==="queued"||t.status==="running",o=t.status==="failed"||t.status==="canceled",i=t.plan.plannedVariants||t.plan.prompts.length||1,c=t.plan.plannedParallelism||t.options.parallelism,u=pn(t),l=fn(t.createdAt,(h,p)=>a("agent.queueTimeAgo",{value:h,unit:a(`agent.queueTimeUnit.${p}`)}));return e.jsxs("div",{className:`agent-queue-row agent-queue-row--${t.status}`,children:[e.jsxs("div",{className:"agent-queue-row__main",children:[e.jsx("strong",{children:t.prompt}),e.jsx("span",{className:`agent-queue-row__badge agent-queue-row__badge--${t.status}`,children:a(`agent.queueStatus.${t.status}`)}),e.jsx("span",{children:[u,a("agent.queuePlanSummary",{variants:i,parallel:c}),l].filter(Boolean).join(" · ")}),t.plan.reason||t.errorCode||t.errorMessage?e.jsxs("details",{className:"agent-queue-row__details",children:[e.jsx("summary",{children:a("agent.queueDetails")}),t.plan.reason?e.jsx("small",{children:t.plan.reason}):null,t.errorCode?e.jsx("small",{children:t.errorCode}):null,t.errorMessage?e.jsx("small",{children:t.errorMessage}):null]}):null]}),e.jsxs("div",{className:"agent-queue-row__actions",children:[r?e.jsx("button",{type:"button",onClick:()=>n(t.id),children:a("agent.cancelQueue")}):null,o?e.jsx("button",{type:"button",onClick:()=>s(t.id),children:a("agent.retryQueue")}):null]})]})}function tt({items:t,summary:n,onCancel:s,onRetry:a}){const{t:r}=j(),o=r("agent.queueAnnouncement",{running:n?.runningCount??0,queued:n?.queuedCount??0,failed:t.filter(i=>i.status==="failed").length});return e.jsxs("section",{className:"agent-sidebar-section","aria-label":r("agent.queue"),children:[e.jsx("header",{children:e.jsxs("div",{children:[e.jsx("span",{children:r("agent.queue")}),e.jsxs("strong",{children:[n?.runningCount??0," ",r("agent.runningShort")," · ",n?.queuedCount??0," ",r("agent.queuedShort")]})]})}),e.jsxs("div",{className:"agent-queue-list",children:[e.jsx("span",{className:"agent-sr-only","aria-live":"polite","aria-atomic":"true",children:o}),t.length===0?e.jsx("div",{className:"agent-tab-empty",children:r("agent.queueEmpty")}):t.map(i=>e.jsx(xn,{item:i,onCancel:s,onRetry:a},i.id))]})]})}function jn({open:t,items:n,summary:s,onCancel:a,onRetry:r,onClose:o}){const{t:i}=j(),c=m.useCallback(()=>o(),[o]),u=we(t,c);return t?e.jsxs("div",{className:"agent-dialog agent-dialog--queue",role:"presentation",children:[e.jsx("button",{type:"button",className:"agent-dialog__backdrop",onClick:o,"aria-label":i("agent.topbarCloseQueue")}),e.jsxs("section",{ref:u,className:"agent-queue-sheet",role:"dialog","aria-modal":"true","aria-label":i("agent.topbarQueueSheet"),children:[e.jsxs("header",{children:[e.jsx("strong",{children:i("agent.topbarQueueSheet")}),e.jsx("button",{type:"button",onClick:o,"aria-label":i("agent.topbarCloseQueue"),children:e.jsx(ye,{size:17})})]}),e.jsx(tt,{items:n,summary:s,onCancel:a,onRetry:r})]})]}):null}function nt({mode:t,onInsert:n}){const{t:s}=j(),a=T(l=>l.promptLibrary),r=T(l=>l.promptLibraryLoading),o=T(l=>l.loadPromptLibrary),[i,c]=m.useState("");m.useEffect(()=>{o()},[o]);const u=m.useMemo(()=>{const l=i.trim().toLowerCase();return a.prompts.filter(h=>{const p=h.tags.map(g=>g.toLowerCase());return t==="forms"&&!p.includes("agent:form")?!1:l?h.name.toLowerCase().includes(l)||h.text.toLowerCase().includes(l)||p.some(g=>g.includes(l)):!0})},[a.prompts,t,i]);return e.jsxs("section",{className:"agent-sidebar-section","aria-label":s(t==="forms"?"agent.forms":"agent.promptLibrary"),children:[e.jsx("header",{children:e.jsxs("div",{children:[e.jsx("span",{children:s(t==="forms"?"agent.forms":"agent.promptLibrary")}),e.jsx("strong",{children:u.length})]})}),e.jsxs("label",{className:"agent-sidebar-search",children:[e.jsx("span",{children:s("promptLibrary.search")}),e.jsx("input",{value:i,onChange:l=>c(l.target.value),placeholder:s("promptLibrary.search")})]}),e.jsxs("div",{className:"agent-prompt-library-list",children:[r?e.jsx("div",{className:"agent-tab-empty",children:s("common.loading")}):null,!r&&u.length===0?e.jsx("div",{className:"agent-tab-empty",children:s(t==="forms"?"agent.noForms":"promptLibrary.empty")}):null,u.map(l=>e.jsxs("article",{className:"agent-prompt-library-row",children:[e.jsx("strong",{children:l.name||s("promptLibrary.untitled")}),e.jsx("p",{children:l.text}),e.jsx("button",{type:"button",onClick:()=>n(l.text),children:s("agent.insertPrompt")})]},l.id))]})]})}function bn({onInsert:t}){return e.jsx(nt,{mode:"forms",onInsert:t})}function H({label:t,value:n,options:s,onChange:a}){return e.jsxs("div",{className:"agent-settings-grid__field",children:[e.jsx("span",{children:t}),e.jsx("div",{className:"agent-segment-control",role:"group","aria-label":t,children:s.map(r=>e.jsx("button",{type:"button","aria-pressed":r.value===n,onClick:()=>a(r.value),children:r.label},r.value))})]})}function fe({label:t,value:n,max:s,onChange:a}){return e.jsxs("div",{className:"agent-settings-grid__field",children:[e.jsx("span",{children:t}),e.jsxs("div",{className:"agent-stepper",role:"group","aria-label":t,children:[e.jsx("button",{type:"button","aria-label":`${t} -`,disabled:n<=1,onClick:()=>a(Math.max(1,n-1)),children:"-"}),e.jsx("output",{"aria-live":"polite",children:n}),e.jsx("button",{type:"button","aria-label":`${t} +`,disabled:n>=s,onClick:()=>a(Math.min(s,n+1)),children:"+"})]})]})}function yn({settings:t,onChange:n}){const{t:s}=j();return e.jsxs("section",{className:"agent-settings-grid","aria-label":s("agent.quality"),children:[e.jsx(H,{label:s("agent.generationStrategy"),value:t.generationStrategy,options:[{value:"auto",label:s("agent.generationStrategyAuto")},{value:"manual",label:s("agent.generationStrategyManual")}],onChange:a=>n({generationStrategy:a})}),e.jsx(H,{label:s("agent.quality"),value:t.quality,options:[{value:"low",label:"low"},{value:"medium",label:"medium"},{value:"high",label:"high"}],onChange:a=>n({quality:a})}),e.jsx(H,{label:s("agent.size"),value:t.size,options:[{value:"1024x1024",label:"1:1"},{value:"1536x1024",label:"3:2"},{value:"1024x1536",label:"2:3"},{value:"2048x2048",label:"2K"}],onChange:a=>n({size:a})}),e.jsx(H,{label:s("agent.format"),value:t.format,options:[{value:"png",label:"PNG"},{value:"jpeg",label:"JPEG"},{value:"webp",label:"WebP"}],onChange:a=>n({format:a})}),e.jsx(H,{label:s("agent.moderation"),value:t.moderation,options:[{value:"auto",label:"auto"},{value:"low",label:"low"}],onChange:a=>n({moderation:a})}),t.generationStrategy==="manual"?e.jsx(fe,{label:s("agent.variantsCount"),value:t.variants,max:je,onChange:a=>n({variants:a})}):e.jsx(fe,{label:s("agent.maxAutoVariants"),value:t.maxAutoVariants,max:je,onChange:a=>n({maxAutoVariants:a})}),e.jsx(fe,{label:s("agent.parallelism"),value:t.parallelism,max:Et,onChange:a=>n({parallelism:a})})]})}const Sn=["image","library","forms","quality","model","queue"];function vn({activeTab:t,onChange:n}){const{t:s}=j();return e.jsx("div",{className:"agent-sidebar-tabs",role:"tablist","aria-label":s("agent.rightSidebar"),children:Sn.map(a=>e.jsx("button",{type:"button",role:"tab",id:`agent-sidebar-tab-${a}`,"aria-controls":`agent-sidebar-panel-${a}`,className:t===a?"active":"","aria-selected":t===a,onClick:()=>n(a),children:s(`agent.sidebarTabs.${a}`)},a))})}function wn({currentImage:t,images:n,contextTab:s,sidebarTab:a,queueItems:r,runSummary:o,settings:i,onContextTabChange:c,onSidebarTabChange:u,onImageSelect:l,onSettingsChange:h,onInsertPrompt:p,onCancelQueue:g,onRetryQueue:x}){const{t:f}=j(),w=C=>({id:`agent-sidebar-panel-${C}`,role:"tabpanel","aria-labelledby":`agent-sidebar-tab-${C}`});return e.jsxs("aside",{className:"agent-right-sidebar",children:[e.jsx(vn,{activeTab:a,onChange:u}),a==="image"?e.jsx("div",{...w("image"),className:"agent-sidebar-panel",children:e.jsx(et,{currentImage:t,images:n,activeTab:s,onTabChange:c,onImageSelect:l})}):null,a==="library"?e.jsx("div",{...w("library"),className:"agent-sidebar-panel",children:e.jsx(nt,{mode:"library",onInsert:p})}):null,a==="forms"?e.jsx("div",{...w("forms"),className:"agent-sidebar-panel",children:e.jsx(bn,{onInsert:p})}):null,a==="quality"?e.jsxs("section",{...w("quality"),className:"agent-sidebar-panel agent-sidebar-section","aria-label":f("agent.quality"),children:[e.jsx("header",{children:e.jsxs("div",{children:[e.jsx("span",{children:f("agent.quality")}),e.jsx("strong",{children:i.generationStrategy==="auto"?f("agent.generationStrategyAuto"):f("agent.generationStrategyManual")})]})}),e.jsx(yn,{settings:i,onChange:h})]}):null,a==="model"?e.jsxs("section",{...w("model"),className:"agent-sidebar-panel agent-sidebar-section","aria-label":f("agent.modelSettings"),children:[e.jsx("header",{children:e.jsxs("div",{children:[e.jsx("span",{children:f("agent.modelSettings")}),e.jsx("strong",{children:i.model})]})}),e.jsx(Ze,{settings:i,onChange:h})]}):null,a==="queue"?e.jsx("div",{...w("queue"),className:"agent-sidebar-panel",children:e.jsx(tt,{items:r,summary:o,onCancel:g,onRetry:x})}):null]})}function st({summary:t}){const{t:n}=j();if(!t||t.status==="idle")return null;const s=t.status==="running"?n("agent.sessionRunning"):t.status==="queued"?n("agent.sessionQueued",{count:t.queuedCount}):n("agent.sessionError");return e.jsxs("span",{className:`agent-session-spinner agent-session-spinner--${t.status}`,"aria-label":s,title:s,children:[e.jsx("span",{"aria-hidden":"true"}),t.queuedCount>0?e.jsx("em",{children:t.queuedCount}):null]})}function _n(t){const n=Math.max(1,Math.round((Date.now()-t)/6e4));if(n<60)return`${n}m`;const s=Math.round(n/60);return s<24?`${s}h`:`${Math.round(s/24)}d`}function at({sessions:t,selectedId:n,imagesById:s,runSummaryBySession:a={},onSelect:r,onRename:o,onDelete:i}){const{t:c}=j();return e.jsx("div",{className:"agent-session-list",children:t.map(u=>{const l=u.lastImageId?s[u.lastImageId]:null;return e.jsxs("div",{className:`agent-session-row${u.id===n?" is-active":""}`,children:[e.jsxs("button",{type:"button","aria-current":u.id===n?"page":void 0,onClick:()=>r(u.id),children:[e.jsx("span",{className:"agent-session-row__thumb",children:l?e.jsx(V,{src:l.thumbUrl??l.url,alt:"",iconSize:17}):e.jsx(Q,{size:17})}),e.jsxs("span",{className:"agent-session-row__body",children:[e.jsx("strong",{children:u.title}),e.jsxs("span",{children:[c("agent.imageCount",{count:u.imageCount})," · ",_n(u.updatedAt)]})]}),e.jsxs("span",{className:"agent-session-row__badges",children:[e.jsx(st,{summary:a[u.id]}),u.webSearchEnabled?e.jsx("em",{title:c("agent.web"),children:"W"}):null,u.compacted?e.jsx("em",{title:c("agent.compacted"),children:"C"}):null]})]}),e.jsxs("div",{className:"agent-session-row__actions",children:[e.jsx("button",{type:"button",onClick:()=>o(u.id),"aria-label":c("agent.renameSession"),title:c("agent.renameSession"),children:e.jsx(zt,{size:14})}),e.jsx("button",{type:"button",onClick:()=>i(u.id),"aria-label":c("agent.deleteSession"),title:c("agent.deleteSession"),children:e.jsx(Ot,{size:14})})]})]},u.id)})})}function Nn({open:t,sessions:n,selectedId:s,imagesById:a,runSummaryBySession:r,onClose:o,onCreate:i,onSelect:c,onRename:u,onDelete:l}){const{t:h}=j(),[p,g]=m.useState(""),x=m.useCallback(()=>o(),[o]),f=we(t,x),w=m.useMemo(()=>{const C=p.trim().toLowerCase();return C?n.filter(M=>M.title.toLowerCase().includes(C)):n},[p,n]);return t?e.jsxs("div",{className:"agent-dialog agent-dialog--drawer",role:"presentation",children:[e.jsx("button",{type:"button",className:"agent-dialog__backdrop",onClick:o,"aria-label":h("agent.closeSessions")}),e.jsxs("section",{ref:f,className:"agent-session-drawer",role:"dialog","aria-modal":"true","aria-label":h("agent.sessions"),children:[e.jsxs("header",{children:[e.jsx("strong",{children:h("agent.sessions")}),e.jsx("button",{type:"button",onClick:o,"aria-label":h("agent.closeSessions"),children:e.jsx(ye,{size:17})})]}),e.jsxs("button",{type:"button",className:"agent-sessions__create",onClick:i,children:[e.jsx(be,{size:16}),e.jsx("span",{children:h("agent.newSession")})]}),e.jsxs("label",{className:"agent-sessions__search",children:[e.jsx(Ve,{size:15}),e.jsx("input",{value:p,onChange:C=>g(C.target.value),placeholder:h("agent.sessionSearch")})]}),e.jsx(at,{sessions:w,selectedId:s,imagesById:a,runSummaryBySession:r,onSelect:c,onRename:u,onDelete:l})]})]}):null}function rt({preference:t,onChange:n}){const{t:s}=j(),a=t==="expanded"?"rail":"expanded";return e.jsx("button",{type:"button",className:"agent-pane-preference","aria-pressed":t==="expanded","aria-label":s(t==="expanded"?"agent.sessionsUseRail":"agent.sessionsUseExpanded"),title:s(t==="expanded"?"agent.sessionsUseRail":"agent.sessionsUseExpanded"),onClick:()=>n(a),children:e.jsx(Se,{size:15})})}function Cn(t){const{t:n}=j(),[s,a]=m.useState(""),r=m.useMemo(()=>{const o=s.trim().toLowerCase();return o?t.sessions.filter(i=>i.title.toLowerCase().includes(o)):t.sessions},[t.sessions,s]);return e.jsx("aside",{className:"sidebar agent-session-sidebar","aria-label":n("agent.sessions"),children:e.jsxs("div",{className:"sidebar__scroll",children:[e.jsx(wt,{agentSettings:t.settings,onAgentSettingsChange:t.onSettingsChange}),e.jsxs("section",{className:"agent-sessions","aria-label":n("agent.sessions"),children:[e.jsxs("header",{className:"agent-sessions__header",children:[e.jsx("strong",{children:n("agent.sessions")}),e.jsx(rt,{preference:t.panePreference,onChange:t.onPanePreferenceChange})]}),e.jsxs("button",{type:"button",className:"agent-sessions__create",onClick:t.onCreate,children:[e.jsx(be,{size:16}),e.jsx("span",{children:n("agent.newSession")})]}),e.jsxs("label",{className:"agent-sessions__search",children:[e.jsx(Ve,{size:15}),e.jsx("input",{value:s,onChange:o=>a(o.target.value),placeholder:n("agent.sessionSearch")})]}),e.jsx(at,{...t,sessions:r})]})]})})}function In({sessions:t,selectedId:n,imagesById:s,runSummaryBySession:a={},onCreate:r,onSelect:o,onOpenDrawer:i}){const{t:c}=j();return e.jsxs("aside",{className:"agent-rail","aria-label":c("agent.sessions"),children:[e.jsx("button",{type:"button",onClick:i,"aria-label":c("agent.openSessions"),title:c("agent.openSessions"),children:e.jsx(Se,{size:17})}),e.jsx("button",{type:"button",onClick:r,"aria-label":c("agent.newSession"),title:c("agent.newSession"),children:e.jsx(be,{size:17})}),e.jsx("div",{className:"agent-rail__sessions",children:t.map(u=>{const l=u.lastImageId?s[u.lastImageId]:null;return e.jsxs("button",{type:"button",className:u.id===n?"is-active":"",onClick:()=>o(u.id),title:u.title,children:[l?e.jsx(V,{src:l.thumbUrl??l.url,alt:"",iconSize:17}):e.jsx(Q,{size:17}),e.jsx(st,{summary:a[u.id]}),u.compacted?e.jsx("span",{"aria-label":c("agent.compacted")}):null]},u.id)})})]})}function Qe({layoutMode:t,session:n,currentImage:s,activeJobCount:a,onOpenSessions:r,onOpenImage:o,onOpenQueue:i}){const{t:c}=j(),u=T(h=>h.setUIMode),l=t==="mobile-chat-image-sheet";return e.jsxs("header",{className:"agent-topbar",children:[e.jsxs("button",{type:"button",className:"agent-topbar__back",onClick:()=>u("classic"),"aria-label":c("agent.topbarBackToStudio"),title:c("agent.topbarBackToStudio"),children:[e.jsx(Dt,{size:18}),e.jsx("span",{children:c("agent.topbarStudio")})]}),e.jsx("button",{type:"button",className:"agent-topbar__icon",onClick:r,"aria-label":c("agent.openSessions"),title:c("agent.openSessions"),children:e.jsx(Se,{size:18})}),e.jsxs("div",{className:"agent-topbar__title",children:[e.jsx("span",{children:c("agent.title")}),e.jsx("strong",{children:n?.title??c("agent.newSession")})]}),l?e.jsxs("div",{className:"agent-topbar__actions",children:[e.jsxs("button",{type:"button",className:"agent-topbar__queue",onClick:i,"aria-label":c("agent.topbarOpenQueue",{count:a}),title:c("agent.topbarOpenQueue",{count:a}),children:[e.jsx(Bt,{size:17}),e.jsx("span",{children:a})]}),e.jsx("button",{type:"button",className:"agent-topbar__image",onClick:o,"aria-label":c("agent.openImage"),title:c("agent.openImage"),children:s?e.jsx(V,{src:s.thumbUrl??s.url,alt:"",iconSize:18}):e.jsx(Q,{size:18})})]}):null]})}async function An({sessionId:t,files:n,importLocalImageToHistory:s,applyWorkspace:a}){for(const r of n){const o=await s(r),i=o?He(o):null;if(!i)continue;const c=await se(t,{currentImage:i});a(c)}}const _e="agent-local-",kn=`${_e}pending-`;let Ue=0;function Ne(t){return Ue+=1,`${_e}${t}-${Date.now()}-${Ue}`}function it(t){return t.id.startsWith(_e)}function ne(t){return t.id.startsWith(kn)}function En(t,n){return{id:Ne("user"),role:"user",text:t,imageIds:[],webFindingIds:[],status:"complete",createdAt:n}}function Tn(t,n){return{id:Ne("pending"),role:"assistant",text:t,imageIds:[],webFindingIds:[],status:"streaming",createdAt:n}}function Mn(t){return{id:Ne("error"),role:"assistant",text:t,imageIds:[],webFindingIds:[],status:"error",createdAt:Date.now()}}function qn({turns:t,queueItems:n,runSummary:s,localPendingCount:a}){const r=n.filter(c=>c.status==="failed").length,o=Ln(n),i=o?Rn(o):{};if(s?.status==="error"&&s.lastError)return{active:!0,status:"error",labelKey:"runError",queuedCount:s.queuedCount,runningCount:s.runningCount,failedCount:r,lastError:s.lastError};if(s?.status==="queued")return{active:!0,status:"queued",labelKey:"pendingQueued",queuedCount:s.queuedCount,runningCount:s.runningCount,failedCount:r,...i};if(s?.status==="running"){const c=o?.startedAt??o?.createdAt??null,u=t.some(l=>!it(l)&&l.role==="tool"&&(!c||(l.createdAt??0)>=c));return{active:!0,status:u?"running":"planning",labelKey:u?"pendingGenerating":"pendingPlanning",queuedCount:s.queuedCount,runningCount:s.runningCount,failedCount:r,...i}}return a>0?{active:!0,status:"planning",labelKey:"pendingPlanning",queuedCount:s?.queuedCount??0,runningCount:s?.runningCount??0,failedCount:r}:null}function Ln(t){return[...t].filter(n=>n.status==="running"||n.status==="queued").sort((n,s)=>n.status!==s.status?n.status==="running"?-1:1:(n.startedAt??n.createdAt)-(s.startedAt??s.createdAt))[0]??null}function Rn(t){return{startedAt:t.startedAt??null,progressStage:t.progressStage??null,jobKind:t.plan.mode==="video"||t.plan.videoParams?"video":"image",variantCount:t.plan.plannedVariants||t.plan.prompts.length||1}}function xe(){return{sessions:[],turnsBySession:{},imagesById:{},imageIdsBySession:{},selectedSessionId:null,currentImageId:null,allowedTools:["ima2.get_image_context","ima2.web_search","ima2.generate_image","ima2.generate_video","ima2.get_generation_errors"],manifest:null,queueBySession:{},runSummaryBySession:{}}}function $n(t){const n=t.filename.endsWith(".mp4");return{image:t.url,url:t.url,filename:t.filename,thumb:t.thumbUrl??void 0,prompt:t.prompt??void 0,revisedPrompt:t.revisedPrompt??null,createdAt:t.createdAt,mediaType:n?"video":"image",kind:"agent"}}function Pn(t,n,s){return{...t,turnsBySession:{...t.turnsBySession,[n]:[...t.turnsBySession[n]??[],...s]}}}function Dn(t,n,s,a){const r=t.turnsBySession[n]??[];return{...t,turnsBySession:{...t.turnsBySession,[n]:[...r.filter(o=>o.id!==s),Mn(a)]}}}function Bn(t,n,s){const a={...n.turnsBySession};for(const[r,o]of Object.entries(t.turnsBySession)){const i=a[r]??[],c=new Set(i.map(h=>h.id)),u=Math.max(0,...i.map(h=>h.createdAt??0)),l=o.filter(h=>s.has(h.id)||c.has(h.id)?!1:it(h)||h.status==="streaming"?!0:(h.createdAt??0)>=u);l.length>0&&(a[r]=[...i,...l])}return{...n,turnsBySession:a}}function zn(){const{t}=j(),n=Lt(),s=_t(),a=T(d=>d.currentImage),r=T(d=>d.importLocalImageToHistory),o=T(d=>d.addHistoryItem),i=T(d=>d.selectHistory),c=T(d=>d.showToast),u=m.useRef(!1),l=m.useRef(0),h=m.useRef(0),p=m.useRef(null),[g,x]=m.useState(()=>xe()),[f,w]=m.useState(null),[C,M]=m.useState("image"),[ae,B]=m.useState("image"),[A,O]=m.useState(null),[q,z]=m.useState(!1),[X,W]=m.useState(!1),[re,b]=m.useState(!1),[$,L]=m.useState("reconnecting"),[ie,le]=m.useState(null),[oe,lt]=m.useState(()=>typeof window>"u"?"expanded":window.localStorage.getItem($e)==="rail"?"rail":"expanded"),F=m.useCallback(d=>d instanceof Error?d.message:String(d),[]),k=m.useCallback(d=>{c(t("agent.workspaceActionFailed",{reason:F(d)}),!0)},[F,c,t]),U=m.useCallback(d=>{x({...xe(),...d}),w(d.selectedSessionId??null)},[]),Y=m.useCallback((d,y)=>{const S={...xe(),...d};x(v=>Bn(v,S,y)),w(d.selectedSessionId??null)},[]),R=m.useCallback(d=>{l.current+=1,U(d)},[U]),ot=m.useCallback((d,y)=>{l.current+=1,Y(d,y)},[Y]),ct=()=>{h.current+=1,L("generating")},ut=()=>{h.current=Math.max(0,h.current-1),h.current===0&&L("ready")},Z=m.useCallback(async d=>{const y=++l.current;L("reconnecting"),le(null);const S=await Pe(d);if(y!==l.current)return;if(S.sessions.length>0){U(S),L("ready");return}const v=await De({title:t("agent.newSession"),currentImage:a});y===l.current&&(U(v),L("ready"))},[U,a,t]),Ce=m.useCallback(async d=>{const y=++l.current,S=await Pe(d);y===l.current&&(Y(S,new Set),L("ready"))},[Y]);m.useEffect(()=>{u.current||(u.current=!0,Z().catch(d=>{le(F(d)),L("reconnecting")}))},[F,Z]);const K=g.sessions.find(d=>d.id===f)??null,ce=g.currentImageId?g.imagesById[g.currentImageId]??null:null,Ie=f?(g.imageIdsBySession[f]??[]).map(d=>g.imagesById[d]).filter(d=>!!d):[],ue=K?g.turnsBySession[K.id]??[]:[],dt=ue.filter(ne).length,gt=ue.filter(d=>!ne(d)),ee=f?g.queueBySession[f]??[]:[],E=f?g.runSummaryBySession[f]:void 0,mt=ee.filter(d=>d.status==="queued"||d.status==="running").length,ht=qn({turns:ue,queueItems:ee,runSummary:E,localPendingCount:dt}),G=Be(K?.generationSettings),pt=$==="reconnecting"?"reconnecting":h.current>0||E?.status==="queued"||E?.status==="running"?"generating":"ready",ft=n!=="mobile-chat-image-sheet",Ae=s&&n!=="desktop-three-pane",ke=n==="desktop-three-pane"&&oe==="rail",Ee=d=>{lt(d),window.localStorage.setItem($e,d)};m.useEffect(()=>{const d=Object.keys(g.imagesById);if(!p.current){(d.length>0||g.sessions.length>0)&&(p.current=new Set(d));return}const y=p.current,S=d.filter(_=>!y.has(_)).map(_=>g.imagesById[_]).filter(_=>!!_);if(S.length===0)return;for(const _ of d)y.add(_);const v=S.map($n);for(const _ of v)o(_);const P=v.reduce((_,I)=>(I.createdAt??0)>(_.createdAt??0)?I:_);i(P)},[g.imagesById,g.sessions.length,o,i]),m.useEffect(()=>{x(d=>{if(h.current>0)return d;let y=!1;const S={...d.turnsBySession};for(const[v,P]of Object.entries(S)){if(P.filter(ne).length===0)continue;const I=d.runSummaryBySession[v];I?.status==="queued"||I?.status==="running"||(S[v]=P.filter(he=>!ne(he)),y=!0)}return y?{...d,turnsBySession:S}:d})},[g.turnsBySession,g.runSummaryBySession]),m.useEffect(()=>{if(!f)return;const d=E?.status==="queued"||E?.status==="running",y=window.setInterval(()=>{Ce(f).catch(()=>L("reconnecting"))},d?1500:4e3);return()=>window.clearInterval(y)},[Ce,f,E?.queuedCount,E?.runningCount,E?.status]);const de=d=>{z(!1),b(!1),Z(d).catch(k)},ge=()=>{De({title:t("agent.newSession"),currentImage:null}).then(R).catch(k)},Te=d=>{const y=g.sessions.find(v=>v.id===d),S=window.prompt(t("agent.renameSession"),y?.title??"");S?.trim()&&se(d,{title:S.trim()}).then(R).catch(k)},Me=d=>{const y=g.sessions.find(S=>S.id===d);!y||!window.confirm(t("agent.deleteConfirm",{title:y.title}))||Ct(d).then(R).catch(k)},te=d=>{if(!f)return;const y=Be({...G,...d});x(S=>({...S,sessions:S.sessions.map(v=>v.id===f?{...v,generationSettings:y,webSearchEnabled:y.webSearchEnabled}:v)})),se(f,{generationSettings:d}).then(R).catch(k)},xt=d=>{te({webSearchEnabled:d})},me=d=>{if(!f||g.currentImageId===d)return;const y=f;x(S=>({...S,currentImageId:d})),se(y,{currentImageId:d}).then(R).catch(k)},jt=d=>{O({id:Date.now(),text:d})},qe=d=>{At(d).then(R).catch(k)},Le=d=>{kt(d).then(R).catch(k)},bt=d=>{!f||d.length===0||An({sessionId:f,files:d,importLocalImageToHistory:r,applyWorkspace:R}).catch(k)},yt=d=>{if(!f)return;const y=f,S=Date.now(),v=En(d,S),P=Tn(t("agent.pending"),S+1),_=new Set([v.id]);ct(),x(I=>Pn(I,y,[v,P])),It(y,d,G).then(I=>ot(I.workspace,_)).catch(I=>{const Re=F(I);x(he=>Dn(he,y,P.id,Re)),k(I)}).finally(ut)};return ie?e.jsxs("main",{className:`agent-workspace agent-workspace--${n} agent-workspace--boot-error`,"data-layout":n,"aria-label":t("agent.workspace"),children:[Ae?e.jsx(Qe,{layoutMode:n,session:null,currentImage:null,activeJobCount:0,onOpenSessions:()=>{},onOpenImage:()=>{},onOpenQueue:()=>{}}):null,e.jsxs("section",{className:"agent-workspace__boot-error",role:"alert",children:[e.jsx("strong",{children:t("agent.bootFailed")}),e.jsx("span",{title:ie,children:ie}),e.jsx("button",{type:"button",onClick:()=>{Z().catch(d=>le(F(d)))},children:t("agent.bootRetry")})]})]}):e.jsxs("main",{className:`agent-workspace agent-workspace--${n}${ke?" agent-workspace--session-rail":""}`,"data-layout":n,"aria-label":t("agent.workspace"),children:[ke?e.jsxs("div",{className:"agent-session-rail-wrap",children:[e.jsx(rt,{preference:oe,onChange:Ee}),e.jsx(In,{sessions:g.sessions,selectedId:f??"",imagesById:g.imagesById,runSummaryBySession:g.runSummaryBySession,onCreate:ge,onSelect:de,onOpenDrawer:()=>z(!0)})]}):e.jsx(Cn,{sessions:g.sessions,selectedId:f??"",imagesById:g.imagesById,runSummaryBySession:g.runSummaryBySession,settings:G,onCreate:ge,onSelect:de,onRename:Te,onDelete:Me,onSettingsChange:te,panePreference:oe,onPanePreferenceChange:Ee}),Ae?e.jsx(Qe,{layoutMode:n,session:K,currentImage:ce,activeJobCount:mt,onOpenSessions:()=>z(!0),onOpenImage:()=>W(!0),onOpenQueue:()=>b(!0)}):null,e.jsxs("div",{className:"agent-workspace__body",children:[e.jsx(on,{session:K,turns:gt,imagesById:g.imagesById,currentImageId:g.currentImageId,runtimeStatus:pt,runProgress:ht,settings:G,insertedPrompt:A,onSettingsChange:te,onOpenModelTab:()=>B("model"),onWebSearchChange:xt,onAttachFiles:bt,onImageSelect:me,onSend:yt}),ft?e.jsx(wn,{currentImage:ce,images:Ie,contextTab:C,sidebarTab:ae,queueItems:ee,runSummary:E,settings:G,onContextTabChange:M,onSidebarTabChange:B,onImageSelect:me,onSettingsChange:te,onInsertPrompt:jt,onCancelQueue:qe,onRetryQueue:Le}):null]}),e.jsx(Nn,{open:q,sessions:g.sessions,selectedId:f??"",imagesById:g.imagesById,runSummaryBySession:g.runSummaryBySession,onClose:()=>z(!1),onCreate:ge,onSelect:de,onRename:Te,onDelete:Me}),e.jsx(hn,{open:X,currentImage:ce,images:Ie,activeTab:C,onTabChange:M,onImageSelect:me,onClose:()=>W(!1)}),e.jsx(jn,{open:re,items:ee,summary:E,onCancel:qe,onRetry:Le,onClose:()=>b(!1)})]})}export{zn as AgentWorkspace};
@@ -1,2 +1,2 @@
1
- import{u,q as l,j as e,s as v,a as N,e as y}from"./index-CoxMOXAU.js";function f(s){const r=s.slots.filter(c=>c.kind==="text"||c.textKind).length,d=s.slots.filter(c=>c.kind==="image").length;return`${r} text / ${d} image`}function _(){const{t:s}=u(),r=l(t=>t.templates),d=l(t=>t.imageTemplateId),c=l(t=>t.setImageTemplate);return e.jsxs("section",{className:"card-news-panel",children:[e.jsxs("div",{className:"card-news-panel__head",children:[e.jsx("span",{children:s("cardNews.imageTemplate")}),e.jsx("button",{type:"button",disabled:!0,title:s("cardNews.newTemplateLater"),children:"+"})]}),e.jsx("div",{className:"card-news-template-grid",children:r.map(t=>e.jsxs("button",{type:"button",className:`card-news-template${d===t.id?" selected":""}`,onClick:()=>c(t.id),children:[e.jsx("img",{src:t.previewUrl,alt:""}),e.jsxs("span",{className:"card-news-template__body",children:[e.jsx("span",{className:"card-news-template__name",children:t.name}),e.jsx("span",{className:"card-news-template__meta",children:f(t)}),e.jsx("span",{className:"card-news-template__sizes",children:t.recommendedOutputSizes.join(" · ")})]})]},t.id))})]})}function k(){const{t:s}=u(),r=l(t=>t.roleTemplates),d=l(t=>t.roleTemplateId),c=l(t=>t.setRoleTemplate);return e.jsxs("section",{className:"card-news-panel",children:[e.jsx("div",{className:"card-news-panel__head",children:e.jsx("span",{children:s("cardNews.roleTemplate")})}),e.jsx("div",{className:"card-news-role-row",children:r.map(t=>e.jsx("button",{type:"button",className:d===t.id?"selected":"",onClick:()=>c(t.id),children:t.name},t.id))})]})}function C({status:s,locked:r}){const{t:d}=u(),c=r?"locked":s,t=c==="queued"||c==="generating";return e.jsxs("span",{className:`card-news-status-badge card-news-status-badge--${c}`,children:[t?e.jsx("span",{className:"card-news-spinner","aria-hidden":"true"}):null,d(`cardNews.status.${c}`)]})}function T(s,r){const d=`cardNews.roles.${s}`,c=r(d);return c===d?s:c}function F(){const{t:s}=u(),r=l(t=>t.activePlan),d=l(t=>t.selectedCardId),c=l(t=>t.selectCard);return r?e.jsx("div",{className:"card-news-deck","aria-label":"Card deck",onWheel:v,children:r.cards.map(t=>e.jsxs("button",{type:"button",className:`card-news-deck-card${d===t.id?" selected":""}`,onClick:()=>c(t.id),children:[e.jsx("span",{children:String(t.order).padStart(2,"0")}),t.url?e.jsx("img",{src:t.url,alt:"",className:"card-news-deck-card__thumb"}):null,e.jsx("strong",{children:T(t.role,s)}),e.jsx("small",{children:t.headline||t.textFields.find(m=>m.renderMode==="in-image")?.text}),e.jsx(C,{status:t.status,locked:t.locked})]},t.id))}):null}const I=[];function S(){const{t:s}=u(),r=l(t=>t.activePlan?.cards??I),d=l(t=>t.generating),c={total:r.length,done:r.filter(t=>t.status==="generated").length,queued:r.filter(t=>t.status==="queued").length,errors:r.filter(t=>t.status==="error").length,skipped:r.filter(t=>t.locked||t.status==="skipped").length};return c.total?e.jsxs("div",{className:"card-news-batch-bar","aria-live":"polite",children:[e.jsx("span",{children:d?s("cardNews.progress.generating",{done:c.done,total:c.total}):s("cardNews.progress.summary",{done:c.done,total:c.total})}),e.jsx("span",{children:s("cardNews.progress.detail",{queued:c.queued,errors:c.errors,skipped:c.skipped})})]}):null}function $({meta:s}){const{t:r}=u();if(!s)return null;const d=s.mode==="structured-output"?r("cardNews.planner.structured"):s.mode==="json-mode"?r("cardNews.planner.jsonMode"):r("cardNews.planner.fallback");return e.jsxs("span",{className:"card-news-planner-badge",children:[d," · ",s.model,s.repaired?` · ${r("cardNews.planner.repaired")}`:""]})}function M(s){const r=s.textFields.filter(d=>d.renderMode==="in-image"&&d.text).map(d=>`[${d.placement}] ${d.text}`);return[s.headline,...r].filter(Boolean).join(`
1
+ import{u,q as l,j as e,s as v,a as N,e as y}from"./index-Dm3pFxV4.js";function f(s){const r=s.slots.filter(c=>c.kind==="text"||c.textKind).length,d=s.slots.filter(c=>c.kind==="image").length;return`${r} text / ${d} image`}function _(){const{t:s}=u(),r=l(t=>t.templates),d=l(t=>t.imageTemplateId),c=l(t=>t.setImageTemplate);return e.jsxs("section",{className:"card-news-panel",children:[e.jsxs("div",{className:"card-news-panel__head",children:[e.jsx("span",{children:s("cardNews.imageTemplate")}),e.jsx("button",{type:"button",disabled:!0,title:s("cardNews.newTemplateLater"),children:"+"})]}),e.jsx("div",{className:"card-news-template-grid",children:r.map(t=>e.jsxs("button",{type:"button",className:`card-news-template${d===t.id?" selected":""}`,onClick:()=>c(t.id),children:[e.jsx("img",{src:t.previewUrl,alt:""}),e.jsxs("span",{className:"card-news-template__body",children:[e.jsx("span",{className:"card-news-template__name",children:t.name}),e.jsx("span",{className:"card-news-template__meta",children:f(t)}),e.jsx("span",{className:"card-news-template__sizes",children:t.recommendedOutputSizes.join(" · ")})]})]},t.id))})]})}function k(){const{t:s}=u(),r=l(t=>t.roleTemplates),d=l(t=>t.roleTemplateId),c=l(t=>t.setRoleTemplate);return e.jsxs("section",{className:"card-news-panel",children:[e.jsx("div",{className:"card-news-panel__head",children:e.jsx("span",{children:s("cardNews.roleTemplate")})}),e.jsx("div",{className:"card-news-role-row",children:r.map(t=>e.jsx("button",{type:"button",className:d===t.id?"selected":"",onClick:()=>c(t.id),children:t.name},t.id))})]})}function C({status:s,locked:r}){const{t:d}=u(),c=r?"locked":s,t=c==="queued"||c==="generating";return e.jsxs("span",{className:`card-news-status-badge card-news-status-badge--${c}`,children:[t?e.jsx("span",{className:"card-news-spinner","aria-hidden":"true"}):null,d(`cardNews.status.${c}`)]})}function T(s,r){const d=`cardNews.roles.${s}`,c=r(d);return c===d?s:c}function F(){const{t:s}=u(),r=l(t=>t.activePlan),d=l(t=>t.selectedCardId),c=l(t=>t.selectCard);return r?e.jsx("div",{className:"card-news-deck","aria-label":"Card deck",onWheel:v,children:r.cards.map(t=>e.jsxs("button",{type:"button",className:`card-news-deck-card${d===t.id?" selected":""}`,onClick:()=>c(t.id),children:[e.jsx("span",{children:String(t.order).padStart(2,"0")}),t.url?e.jsx("img",{src:t.url,alt:"",className:"card-news-deck-card__thumb"}):null,e.jsx("strong",{children:T(t.role,s)}),e.jsx("small",{children:t.headline||t.textFields.find(m=>m.renderMode==="in-image")?.text}),e.jsx(C,{status:t.status,locked:t.locked})]},t.id))}):null}const I=[];function S(){const{t:s}=u(),r=l(t=>t.activePlan?.cards??I),d=l(t=>t.generating),c={total:r.length,done:r.filter(t=>t.status==="generated").length,queued:r.filter(t=>t.status==="queued").length,errors:r.filter(t=>t.status==="error").length,skipped:r.filter(t=>t.locked||t.status==="skipped").length};return c.total?e.jsxs("div",{className:"card-news-batch-bar","aria-live":"polite",children:[e.jsx("span",{children:d?s("cardNews.progress.generating",{done:c.done,total:c.total}):s("cardNews.progress.summary",{done:c.done,total:c.total})}),e.jsx("span",{children:s("cardNews.progress.detail",{queued:c.queued,errors:c.errors,skipped:c.skipped})})]}):null}function $({meta:s}){const{t:r}=u();if(!s)return null;const d=s.mode==="structured-output"?r("cardNews.planner.structured"):s.mode==="json-mode"?r("cardNews.planner.jsonMode"):r("cardNews.planner.fallback");return e.jsxs("span",{className:"card-news-planner-badge",children:[d," · ",s.model,s.repaired?` · ${r("cardNews.planner.repaired")}`:""]})}function M(s){const r=s.textFields.filter(d=>d.renderMode==="in-image"&&d.text).map(d=>`[${d.placement}] ${d.text}`);return[s.headline,...r].filter(Boolean).join(`
2
2
  `)}function E(s,r){const d=s.slotId?r?.slots.find(c=>c.id===s.slotId):null;return d?{left:`${d.x/20.48}%`,top:`${d.y/20.48}%`,width:`${d.w/20.48}%`,minHeight:`${d.h/20.48}%`}:P(s)}const w={"top-left":{left:"10%",top:"10%",width:"34%"},"top-center":{left:"50%",top:"10%",width:"42%",transform:"translateX(-50%)"},"top-right":{right:"10%",top:"10%",width:"34%"},"center-left":{left:"10%",top:"50%",width:"34%",transform:"translateY(-50%)"},center:{left:"50%",top:"50%",width:"44%",transform:"translate(-50%, -50%)"},"center-right":{right:"10%",top:"50%",width:"34%",transform:"translateY(-50%)"},"bottom-left":{left:"10%",bottom:"10%",width:"34%"},"bottom-center":{left:"50%",bottom:"10%",width:"42%",transform:"translateX(-50%)"},"bottom-right":{right:"10%",bottom:"10%",width:"34%"},free:{left:"50%",top:"50%",width:"44%",transform:"translate(-50%, -50%)"}};function P(s){return w[s.placement]||w.center}function L(){const{t:s}=u(),r=l(a=>a.activePlan),d=l(a=>a.selectedCardId),c=l(a=>a.selectedTextFieldId),t=l(a=>a.templates),m=l(a=>a.plannerMeta),o=l(a=>a.retryCard),p=l(a=>a.selectTextField),i=r?.cards.find(a=>a.id===d)||r?.cards[0],x=r?t.find(a=>a.id===r.imageTemplateId):void 0,n=i?.textFields.filter(a=>a.renderMode==="in-image")||[];return!r||!i?e.jsxs("section",{className:"card-news-empty",children:[e.jsxs("div",{className:"card-news-empty__deck","aria-hidden":"true",children:[e.jsx("div",{className:"card-news-empty__card card-news-empty__card--back"}),e.jsx("div",{className:"card-news-empty__card card-news-empty__card--mid"}),e.jsxs("div",{className:"card-news-empty__card",children:[e.jsx("span",{}),e.jsx("strong",{}),e.jsx("em",{})]})]}),e.jsxs("div",{className:"card-news-empty__copy",children:[e.jsx("span",{children:s("uiMode.cardNews")}),e.jsx("h2",{children:s("cardNews.emptyTitle")}),e.jsx("p",{children:s("cardNews.emptyBody")})]})]}):e.jsxs("section",{className:"card-news-stage",children:[e.jsxs("div",{className:"card-news-stage__header",children:[e.jsxs("div",{children:[e.jsx("h2",{children:r.title}),e.jsx("p",{children:r.generationStrategy}),e.jsx($,{meta:m})]}),e.jsxs("span",{children:[i.order," / ",r.cards.length]})]}),e.jsx(S,{}),e.jsxs("div",{className:"card-news-preview",children:[i.status==="queued"||i.status==="generating"?e.jsx("div",{className:"card-news-preview__loading",children:s("cardNews.progress.cardGenerating")}):i.status==="error"?e.jsxs("div",{className:"card-news-preview__error",children:[e.jsx("span",{children:i.error||s("cardNews.error")}),i.locked?null:e.jsx("button",{type:"button",onClick:()=>{o(i.id)},children:s("cardNews.retryCard")})]}):i.url?e.jsx("img",{src:i.url,alt:i.headline}):e.jsx("div",{className:"card-news-preview__slot"}),n.length?e.jsx("div",{className:"card-news-stage-overlay",children:n.map(a=>e.jsx("button",{type:"button",className:`card-news-stage-overlay__field card-news-stage-overlay__field--${a.placement}${c===a.id?" selected":""}`,style:E(a,x),onClick:()=>p(a.id),"aria-label":s("cardNews.selectTextField",{text:a.text||a.kind}),children:e.jsx("span",{children:a.text||a.kind})},a.id))}):null]}),i.url?e.jsxs("div",{className:"card-news-result-actions",children:[e.jsx("button",{type:"button",onClick:()=>navigator.clipboard?.writeText(i.visualPrompt),children:s("cardNews.actions.copyPrompt")}),e.jsx("button",{type:"button",onClick:()=>navigator.clipboard?.writeText(M(i)),children:s("cardNews.actions.copyCopy")}),e.jsx("a",{href:i.url,target:"_blank",rel:"noreferrer",children:s("cardNews.actions.openImage")}),e.jsx("a",{href:i.url,download:!0,children:s("cardNews.actions.downloadCard")})]}):null]})}function g(s,r){const d=`cardNews.placements.${s}`,c=r(d);return c===d?s:c}function R({placement:s}){const{t:r}=u();return e.jsx("span",{className:"card-news-placement-chip",children:g(s,r)})}const B=["headline","body","caption","cta","badge","number"],D=["top-left","top-center","top-right","center-left","center","center-right","bottom-left","bottom-center","bottom-right","free"],q=["in-image","ui-only"],K=["primary","secondary","supporting"];function h(s,r,d){const c=`cardNews.${s}.${r}`,t=d(c);return t===c?r:t}function A({field:s,locked:r,selected:d=!1,onSelect:c,onChange:t,onRemove:m}){const{t:o}=u(),p=s.text.length,i=typeof s.maxChars=="number"&&p>s.maxChars,x=s.maxChars===null||s.maxChars>80;return e.jsxs("div",{className:`card-news-text-field-card${d?" selected":""}`,onClick:c,children:[e.jsxs("div",{className:"card-news-text-field-card__header",children:[e.jsx("span",{children:h("textKinds",s.kind,o)}),e.jsx(R,{placement:s.placement})]}),e.jsxs("label",{className:"card-news-field",children:[e.jsx("span",{children:o("cardNews.textFieldText")}),x?e.jsx("textarea",{value:s.text,disabled:r,onChange:n=>t({text:n.target.value,source:"user"})}):e.jsx("input",{value:s.text,disabled:r,onChange:n=>t({text:n.target.value,source:"user"})})]}),e.jsxs("div",{className:"card-news-text-field-card__grid",children:[e.jsxs("label",{className:"card-news-field",children:[e.jsx("span",{children:o("cardNews.textKind")}),e.jsx("select",{value:s.kind,disabled:r,onChange:n=>t({kind:n.target.value,source:"user"}),children:B.map(n=>e.jsx("option",{value:n,children:h("textKinds",n,o)},n))})]}),e.jsxs("label",{className:"card-news-field",children:[e.jsx("span",{children:o("cardNews.placement")}),e.jsx("select",{value:s.placement,disabled:r,onChange:n=>t({placement:n.target.value,source:"user"}),children:D.map(n=>e.jsx("option",{value:n,children:g(n,o)},n))})]}),e.jsxs("label",{className:"card-news-field",children:[e.jsx("span",{children:o("cardNews.renderMode")}),e.jsx("select",{value:s.renderMode,disabled:r,onChange:n=>t({renderMode:n.target.value,source:"user"}),children:q.map(n=>e.jsx("option",{value:n,children:h("renderModes",n,o)},n))})]}),e.jsxs("label",{className:"card-news-field",children:[e.jsx("span",{children:o("cardNews.hierarchyLabel")}),e.jsx("select",{value:s.hierarchy,disabled:r,onChange:n=>t({hierarchy:n.target.value,source:"user"}),children:K.map(n=>e.jsx("option",{value:n,children:h("hierarchy",n,o)},n))})]})]}),e.jsxs("div",{className:`card-news-text-field-card__meta${i?" over":""}`,children:[e.jsx("span",{children:s.maxChars===null?p:`${p}/${s.maxChars}`}),i?e.jsx("span",{children:o("cardNews.textTooLong")}):null,m?e.jsx("button",{type:"button",disabled:r,onClick:m,children:o("cardNews.removeTextField")}):null]})]})}function H(){return{id:`tf_${Date.now().toString(36)}`,kind:"body",text:"",renderMode:"in-image",placement:"center",slotId:null,hierarchy:"supporting",maxChars:null,language:null,source:"user"}}function Y(){const{t:s}=u(),r=l(a=>a.activePlan),d=l(a=>a.selectedCardId),c=l(a=>a.selectedTextFieldId),t=l(a=>a.updateCard),m=l(a=>a.updateTextField),o=l(a=>a.addTextField),p=l(a=>a.removeTextField),i=l(a=>a.selectTextField),x=l(a=>a.retryCard),n=r?.cards.find(a=>a.id===d)||r?.cards[0];return n?e.jsxs("aside",{className:"card-news-inspector",children:[e.jsx("div",{className:"section-title",children:s("cardNews.inspector")}),e.jsxs("div",{className:"card-news-inspector-group",children:[e.jsx("span",{className:"card-news-inspector-label",children:s("cardNews.cardTitle")}),e.jsxs("label",{className:"card-news-field",children:[e.jsx("span",{children:s("cardNews.headline")}),e.jsx("input",{value:n.headline,disabled:n.locked,onChange:a=>t(n.id,{headline:a.target.value})})]})]}),e.jsxs("div",{className:"card-news-inspector-group",children:[e.jsxs("div",{className:"card-news-inspector-row",children:[e.jsx("span",{className:"card-news-inspector-label",children:s("cardNews.textFields")}),e.jsx("button",{type:"button",className:"secondary-btn",disabled:n.locked,onClick:()=>o(n.id,H()),children:s("cardNews.addTextField")})]}),n.textFields.length?n.textFields.map(a=>e.jsx(A,{field:a,locked:n.locked,selected:c===a.id,onSelect:()=>i(a.id),onChange:b=>m(n.id,a.id,b),onRemove:()=>p(n.id,a.id)},a.id)):e.jsx("p",{className:"card-news-muted",children:s("cardNews.noTextFields")})]}),e.jsxs("details",{className:"card-news-inspector-group card-news-advanced-prompt",children:[e.jsx("summary",{children:s("cardNews.designPrompt")}),e.jsxs("label",{className:"card-news-field",children:[e.jsx("span",{children:s("cardNews.visualPrompt")}),e.jsx("textarea",{value:n.visualPrompt,disabled:n.locked,onChange:a=>t(n.id,{visualPrompt:a.target.value})})]})]}),n.imageFilename?e.jsxs("div",{className:"card-news-generated-meta",children:[e.jsx("span",{children:s("cardNews.generatedMeta")}),e.jsx("code",{children:n.imageFilename}),e.jsx("span",{children:n.status})]}):null,n.locked?e.jsx("p",{className:"card-news-locked-help",children:s("cardNews.lockedHelp")}):null,e.jsx("button",{type:"button",className:`secondary-btn${n.locked?" active":""}`,onClick:()=>t(n.id,{locked:!n.locked}),children:n.locked?s("cardNews.locked"):s("cardNews.unlocked")}),e.jsx("button",{type:"button",className:"secondary-btn",disabled:n.locked||!["draft","error"].includes(n.status),onClick:()=>{x(n.id)},children:s("cardNews.retryCard")})]}):e.jsxs("aside",{className:"card-news-inspector card-news-inspector-empty",children:[e.jsx("div",{className:"section-title",children:s("cardNews.inspector")}),e.jsxs("div",{className:"card-news-inspector-empty__mock","aria-hidden":"true",children:[e.jsx("span",{}),e.jsx("strong",{}),e.jsx("i",{}),e.jsx("i",{})]}),e.jsx("p",{children:s("cardNews.noCard")})]})}const j="ima2:cardNewsMobileNoticeShown";function z(){const{t:s}=u(),r=y(),[d,c]=N.useState(()=>{if(typeof window>"u")return!0;try{return localStorage.getItem(j)==="1"}catch{return!1}});if(!r||d)return null;const t=()=>{try{localStorage.setItem(j,"1")}catch{}c(!0)};return e.jsxs("div",{className:"card-news-mobile-notice",role:"status",children:[e.jsx("span",{children:s("mobile.cardNewsBanner")}),e.jsx("button",{type:"button",onClick:t,children:s("mobile.dismiss")})]})}function W(){const{t:s}=u(),r=l(c=>c.hydrate),d=l(c=>c.error);return N.useEffect(()=>{r()},[r]),e.jsxs("main",{className:"card-news-workspace","aria-label":s("cardNews.workspace"),children:[e.jsx(z,{}),e.jsxs("div",{className:"card-news-setup",children:[e.jsx(_,{}),e.jsx(k,{})]}),e.jsxs("div",{className:"card-news-main",children:[d?e.jsx("div",{className:"card-news-error",role:"alert",children:d}):null,e.jsx(L,{}),e.jsx(F,{})]}),e.jsx(Y,{})]})}export{W as CardNewsWorkspace};
@@ -0,0 +1 @@
1
+ import{U as y,u as x,b as u,a as n,j as s}from"./index-Dm3pFxV4.js";async function h(){return y("/api/generation-requests")}async function f(t){if(navigator.clipboard?.writeText){await navigator.clipboard.writeText(t);return}const o=document.createElement("textarea");o.value=t,o.style.position="fixed",o.style.opacity="0",document.body.appendChild(o),o.select();try{document.execCommand("copy")}finally{document.body.removeChild(o)}}function j(){const{t}=x(),o=u(e=>e.showToast),d=u(e=>e.activeGenerations),[a,i]=n.useState([]),[p,c]=n.useState(!0),[g,l]=n.useState(!1),r=n.useCallback(async()=>{c(!0),l(!1);try{const e=await h();i(e.items)}catch{i([]),l(!0)}finally{c(!1)}},[]);n.useEffect(()=>{r()},[r,d]);const m=async e=>{try{await f(e.prompt),o(t("generationLog.copied"))}catch{o(t("toast.copyFailed"),!0)}};return p?s.jsx("div",{className:"generation-request-log__empty",children:t("common.loading")}):g?s.jsxs("div",{className:"generation-request-log__empty",role:"alert",children:[s.jsx("span",{children:t("generationLog.loadFailed")}),s.jsx("button",{type:"button",onClick:()=>{r()},children:t("generationLog.retry")})]}):s.jsx("div",{className:"generation-request-log",role:"list",children:a.length===0?s.jsx("div",{className:"generation-request-log__empty",children:t("generationLog.empty")}):a.map(e=>s.jsxs("button",{type:"button",role:"listitem",className:"generation-request-log__item",onClick:()=>{m(e)},title:e.succeeded===0&&e.error?e.error:t("generationLog.copy"),children:[s.jsx("span",{className:"generation-request-log__prompt",children:e.prompt}),s.jsxs("span",{className:`generation-request-log__count${e.succeeded===0?" is-error":" is-success"}`,children:[e.succeeded,"/",e.requested]})]},e.id))})}export{j as GenerationRequestLogPanel};