openpond 0.0.30 → 0.0.32
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/dist/chunks/{app-layer-FIGCNZJX.js → app-layer-CUQQUVJS.js} +20 -3
- package/dist/chunks/{apps-4RMNCKXS.js → apps-TAYMUCWX.js} +3 -3
- package/dist/chunks/{chunk-57P2GCW5.js → chunk-3UOLQG6N.js} +1 -1
- package/dist/chunks/{chunk-MFS3SYUH.js → chunk-3ZJIEA5F.js} +1 -1
- package/dist/chunks/{chunk-4S3XGFGL.js → chunk-4HQURM3N.js} +1 -1
- package/dist/chunks/{chunk-BNVHGSI7.js → chunk-4M4WAORL.js} +874 -798
- package/dist/chunks/{chunk-DANRS43D.js → chunk-5RHZKQRK.js} +14 -76
- package/dist/chunks/{chunk-BNPFMGZD.js → chunk-D264OHTR.js} +4 -5
- package/dist/chunks/{chunk-BBEVMP6O.js → chunk-DCNAXREU.js} +179 -160
- package/dist/chunks/chunk-E5RVRUJB.js +1222 -0
- package/dist/chunks/{chunk-RJXX6TJA.js → chunk-EONKWOLU.js} +2 -2
- package/dist/chunks/{chunk-VQX33YAG.js → chunk-FQW3AQVJ.js} +689 -121
- package/dist/chunks/{chunk-GGKA4HLQ.js → chunk-GYZYZGKS.js} +238 -69
- package/dist/chunks/{chunk-KMSMK7PI.js → chunk-OXQG773T.js} +33 -33
- package/dist/chunks/{chunk-BX4XSB2J.js → chunk-PJXJ2HRT.js} +1816 -1113
- package/dist/chunks/chunk-Q5MZCRJA.js +70 -0
- package/dist/chunks/{chunk-OV3KAFWB.js → chunk-W2DJR3FA.js} +1 -1
- package/dist/chunks/{chunk-KEDXE4BA.js → chunk-XADW35CL.js} +3 -3
- package/dist/chunks/{chunk-IUTUUNAX.js → chunk-Y4F4XD5V.js} +1 -1
- package/dist/chunks/{cli-2L4NB7HD.js → cli-WW5BVN5Z.js} +4 -3
- package/dist/chunks/{cli-5RL7B2Z3.js → cli-ZOCP7X5M.js} +6 -6
- package/dist/chunks/{core-commands-AZJZGTZS.js → core-commands-SYGK7K57.js} +4 -4
- package/dist/chunks/{extend-6IWYZI37.js → extend-Q5HZ7TMA.js} +11 -11
- package/dist/chunks/fileFromPath-DHCRY3BD.js +2151 -0
- package/dist/chunks/{harness-SSNXDSKM.js → harness-ZPBPQVAS.js} +3 -3
- package/dist/chunks/{help-MUJJMI3Q.js → help-3V3TRQNX.js} +1 -1
- package/dist/chunks/{opchat-RW4CFAQB.js → opchat-OUPMEFE5.js} +5 -5
- package/dist/chunks/{organizations-V7DTNLSI.js → organizations-5CSLBDAW.js} +4 -4
- package/dist/chunks/{profile-WDBKJ7YW.js → profile-OQYSXHOG.js} +206 -166
- package/dist/chunks/{project-agent-3TZ3BPYN.js → project-agent-TBTWOUJF.js} +6 -7
- package/dist/chunks/{sandbox-command-HOYHF4NC.js → sandbox-command-HCHPY7KW.js} +4 -4
- package/dist/chunks/{sandbox-template-IYGB4CZU.js → sandbox-template-PNTOZ6W3.js} +5 -6
- package/dist/chunks/{src-CBPRIWG5.js → src-C6MXLDYQ.js} +22 -6
- package/dist/chunks/{src-ZRQKSQTD.js → src-GZT4UX6I.js} +80887 -52945
- package/dist/chunks/{teams-bot-UWGCFL6C.js → teams-bot-CQ76XI6T.js} +3 -3
- package/dist/chunks/workspaces-DHVVOTVR.js +93 -0
- package/dist/cli.js +10 -10
- package/dist/config.d.ts +0 -2
- package/dist/index.js +273 -69
- package/dist/profile/local-profile-types.d.ts +8 -2
- package/dist/profile/local-profile.d.ts +3 -1
- package/dist/sandbox/types/org-project-agent.d.ts +1 -2
- package/dist/web/assets/{AppsView-Bu-Nc3Ew.js → AppsView-CF2g-7FH.js} +1 -1
- package/dist/web/assets/{BrowserSidebar-CCguQ-DR.js → BrowserSidebar-lUsLUl20.js} +1 -1
- package/dist/web/assets/CloudWorkView-BnfGW4OV.js +1 -0
- package/dist/web/assets/{CommandMenu-CnodJFHD.js → CommandMenu-BsS4Bgb6.js} +1 -1
- package/dist/web/assets/{CommunityView-CIbjNUZr.js → CommunityView-C8qVOwlp.js} +1 -1
- package/dist/web/assets/ComposerCreateImproveStrip-C_LIpfSq.js +1 -0
- package/dist/web/assets/GetStartedView-Du533wOh.js +1 -0
- package/dist/web/assets/LabsRoute-CgKtVYTP.css +1 -0
- package/dist/web/assets/LabsRoute-yk8lNMQc.js +3 -0
- package/dist/web/assets/{NewProjectDialog-CaKiCoVS.js → NewProjectDialog-DH7wA1z9.js} +1 -1
- package/dist/web/assets/ProfileSettingsSection-CqnfjiCl.css +1 -0
- package/dist/web/assets/ProfileSettingsSection-D7JvMZdW.js +1 -0
- package/dist/web/assets/SettingsView-C9TgCaWG.js +63 -0
- package/dist/web/assets/TeamChatView-D_CE7br9.js +3 -0
- package/dist/web/assets/{TerminalOverlay-C1iP4OS1.js → TerminalOverlay-CC-VDSlp.js} +1 -1
- package/dist/web/assets/TrainingCreationPanel-NFCoaBUI.js +1 -0
- package/dist/web/assets/TrainingDraftPanel-BWEmVFjM.js +1 -0
- package/dist/web/assets/WorkspaceDiffPanel-SlLlGZM1.js +14 -0
- package/dist/web/assets/{WorkspaceEnvironmentMenu-B8JJbwIz.js → WorkspaceEnvironmentMenu-BAoMBTVD.js} +1 -1
- package/dist/web/assets/{WorkspaceGitDialogs-B4sp9BGn.js → WorkspaceGitDialogs-CVIFrzyl.js} +1 -1
- package/dist/web/assets/{WorkspaceMonacoEditor-BBqimG5X.js → WorkspaceMonacoEditor-0trp0-TI.js} +3 -3
- package/dist/web/assets/{boxes-DAaDUabq.js → boxes-CFihgX2z.js} +1 -1
- package/dist/web/assets/create-pipeline-request-AJWLMTyw.js +4 -0
- package/dist/web/assets/{cssMode-CBF1mieJ.js → cssMode-HvqfCFyP.js} +1 -1
- package/dist/web/assets/{git-commit-horizontal-CAickXpN.js → git-commit-horizontal-C5mUmACv.js} +1 -1
- package/dist/web/assets/{htmlMode-2u8OHtWO.js → htmlMode-C8btgUt-.js} +1 -1
- package/dist/web/assets/index-8H-GDlM5.css +1 -0
- package/dist/web/assets/index-D7Vr3zcV.js +192 -0
- package/dist/web/assets/index-DUqAiF57.js +1 -0
- package/dist/web/assets/{info-CQNTh78o.js → info-D0xuy5IB.js} +1 -1
- package/dist/web/assets/{jsonMode-C4CWXViX.js → jsonMode-5zVz9G0X.js} +1 -1
- package/dist/web/assets/{lspLanguageFeatures-CBs_BOlB.js → lspLanguageFeatures-DxlSSL7c.js} +1 -1
- package/dist/web/assets/{monaco.contribution-lOXpG2xQ.js → monaco.contribution-B1pWWwqT.js} +2 -2
- package/dist/web/assets/{monaco.contribution-sd3cFkcN.js → monaco.contribution-BKpVvKK9.js} +2 -2
- package/dist/web/assets/{monaco.contribution-C1LUxAKf.js → monaco.contribution-BXdXsSWI.js} +2 -2
- package/dist/web/assets/{monaco.contribution-Cpf6dWsh.js → monaco.contribution-CIjjzpUR.js} +2 -2
- package/dist/web/assets/{monitor-DsIswrMV.js → monitor-B4-9Shtp.js} +1 -1
- package/dist/web/assets/{play-CeRw21NV.js → play-BJdhBqQE.js} +1 -1
- package/dist/web/assets/{python-CXYq3BUl.js → python-CEK8J4w_.js} +1 -1
- package/dist/web/assets/{refresh-cw-N5b_6AP5.js → refresh-cw-DE0u_nmZ.js} +1 -1
- package/dist/web/assets/{reply-BSKjZrJg.js → reply-2MfLJ93n.js} +1 -1
- package/dist/web/assets/{save-D0oHH1a3.js → save-CBIVKaf8.js} +1 -1
- package/dist/web/assets/{toggleHighContrast-DRjlcwes.js → toggleHighContrast-CC73mtvA.js} +1 -1
- package/dist/web/assets/training-BY8siNUK.css +1 -0
- package/dist/web/assets/training-model-data-BXUCzS0p.js +1 -0
- package/dist/web/assets/{tsMode-x-1A7ZcB.js → tsMode-Bhn9wr_1.js} +1 -1
- package/dist/web/assets/{wifi-off-Dt52ofzh.js → wifi-off-BKTqnqj0.js} +1 -1
- package/dist/web/assets/{workers-Ciff6Dzi.js → workers-C_adgrEg.js} +1 -1
- package/dist/web/assets/{yaml-CB67Kxnz.js → yaml-DDRAcADU.js} +1 -1
- package/dist/web/index.html +2 -2
- package/package.json +1 -1
- package/dist/chunks/chunk-OG75GMVO.js +0 -1
- package/dist/web/assets/CloudWorkView-Dr3xqLE5.js +0 -1
- package/dist/web/assets/GetStartedView-C8nyH_PT.js +0 -1
- package/dist/web/assets/LabsExtensions-GtJzxDnK.js +0 -1
- package/dist/web/assets/LabsProfile-DG7rWYur.js +0 -1
- package/dist/web/assets/LabsRoute-D6MDHBzq.js +0 -2
- package/dist/web/assets/LabsRoute-TEt9j1vB.css +0 -1
- package/dist/web/assets/LabsSignals-BfsDN86w.js +0 -1
- package/dist/web/assets/LabsSignals-D6iA6Ryl.css +0 -1
- package/dist/web/assets/ProfileSettingsSection-DTQS2DVL.css +0 -1
- package/dist/web/assets/ProfileSettingsSection-DxEzoF3K.js +0 -1
- package/dist/web/assets/ProfileView-CEscW7Ru.js +0 -1
- package/dist/web/assets/SettingsView-JIRR_FO4.js +0 -63
- package/dist/web/assets/TeamChatView-B5M1ThhJ.js +0 -3
- package/dist/web/assets/TrainingSettingsSection-BDYvI2te.js +0 -1
- package/dist/web/assets/TrainingView-CoCFK6W3.js +0 -5
- package/dist/web/assets/WorkspaceDiffPanel-CMxKQeo7.js +0 -14
- package/dist/web/assets/index-BdY6A-YN.css +0 -1
- package/dist/web/assets/index-CU2qhUYV.js +0 -195
- package/dist/web/assets/index-Dz2B3-4C.js +0 -1
- package/dist/web/assets/settings-lists-BEg6LMcy.css +0 -1
- package/dist/web/assets/training-model-data-BPrc68VG.js +0 -1
|
@@ -0,0 +1,3 @@
|
|
|
1
|
+
import{j as t,bs as H,X as R,r as o,bt as le,bu as K,a as re,T as de,M as X,V as T,m as ce,aQ as k,bv as E,u as me,bw as ue,bx as ge,by as he,k as fe,bz as xe,bA as ve}from"./index-D7Vr3zcV.js";/* empty css */import{R as N}from"./refresh-cw-DE0u_nmZ.js";import{R as L}from"./reply-2MfLJ93n.js";import{r as ye}from"./index-DUqAiF57.js";function be(e,l){const s=new Set(Array.from(e.matchAll(/(?:^|\s)@([a-zA-Z0-9_-]+)/g),n=>(n[1]??"").toLowerCase()));return l.filter(n=>{const d=n.handle?.toLowerCase(),r=n.name.toLowerCase().replace(/[^a-z0-9_-]+/g,"-");return d&&s.has(d)||s.has(r)}).map(n=>n.userId)}function Ce(e){return t.jsxs("div",{className:"team-chat-composer-reply",role:"status",children:[t.jsx(L,{size:15,"aria-hidden":"true"}),t.jsxs("button",{type:"button",className:"team-chat-composer-reply-target","aria-label":`Jump to message from ${e.authorLabel}`,onClick:e.onJump,children:[t.jsxs("strong",{children:["Replying to ",e.authorLabel]}),t.jsx("span",{children:H(e.target)})]}),t.jsx("button",{type:"button",className:"team-chat-icon-button","aria-label":"Cancel reply","data-tooltip":"Cancel reply",onClick:e.onCancel,children:t.jsx(R,{size:14})})]})}function je(e){return t.jsxs("button",{type:"button",className:"team-chat-message-reply-quote","aria-label":`Jump to replied message from ${e.authorLabel}`,onClick:e.onJump,children:[t.jsx("strong",{children:e.authorLabel}),t.jsx("span",{children:H(e.target)})]})}function we(e){const l=o.useRef(null);if(o.useEffect(()=>{if(!e.menu)return;l.current?.focus();const n=()=>e.onClose(),d=r=>{r.key==="Escape"&&n()};return window.addEventListener("click",n),window.addEventListener("blur",n),window.addEventListener("keydown",d),window.addEventListener("scroll",n,!0),()=>{window.removeEventListener("click",n),window.removeEventListener("blur",n),window.removeEventListener("keydown",d),window.removeEventListener("scroll",n,!0)}},[e.menu,e.onClose]),!e.menu||typeof document>"u")return null;const s=t.jsx("div",{className:"team-chat-message-context-menu",role:"menu","aria-label":"Message actions",style:{left:e.menu.x,top:e.menu.y},onClick:n=>n.stopPropagation(),children:t.jsxs("button",{ref:l,type:"button",role:"menuitem",onClick:()=>{e.onReply(e.menu.message),e.onClose()},children:[t.jsx(L,{size:14}),"Reply"]})});return ye.createPortal(s,document.body)}function Te(e){const d=e.clientX||e.fallbackX,r=e.clientY||e.fallbackY;return{x:Math.max(8,Math.min(d,e.viewportWidth-150-8)),y:Math.max(8,Math.min(r,e.viewportHeight-42-8))}}function Y(e){return`team-chat-message-${encodeURIComponent(e)}`}function Me(e){const[l,s]=o.useState(!1),[n,d]=o.useState(e.message.body),r=e.message.refs.find(a=>a.refType==="hosted_ai_thread"),m=e.message.refs.find(a=>a.refType==="agent_run"),v=typeof r?.preview.status=="string"?r.preview.status:null,h=typeof e.message.metadata.deliveryStatus=="string"?e.message.metadata.deliveryStatus:null,y=typeof e.message.metadata.uploadProgress=="string"?e.message.metadata.uploadProgress:null,c=!e.message.deletedAt&&!h,g=le(e.message,e.messagesById),C=g?K(g,e.membersById):null;return t.jsxs("article",{id:Y(e.message.id),className:`team-chat-message${e.own?" own":""}`,tabIndex:-1,onContextMenu:a=>{if(!c)return;a.preventDefault();const b=a.currentTarget.getBoundingClientRect();e.onOpenReplyMenu(e.message,{clientX:a.clientX,clientY:a.clientY,fallbackX:b.right-12,fallbackY:b.top+24})},children:[t.jsx(Pe,{member:e.author}),t.jsxs("div",{className:"team-chat-message-content",children:[t.jsxs("header",{children:[t.jsx("strong",{children:e.author?.name??"Team member"}),t.jsx("time",{children:Ie(e.message.createdAt)}),e.message.editedAt?t.jsx("span",{children:"edited"}):null,h==="sending"?t.jsx("span",{children:"sending"}):null,h==="sending"&&y?t.jsxs("span",{children:["uploaded ",y]}):null,h==="failed"?t.jsx("span",{className:"failed",children:"not sent"}):null,h==="failed"?t.jsxs("div",{className:"team-chat-message-actions visible",children:[t.jsx("button",{type:"button","data-tooltip":"Retry message","aria-label":"Retry message",onClick:()=>{e.onRetry(e.message)},children:t.jsx(N,{size:13})}),t.jsx("button",{type:"button","data-tooltip":"Remove failed message","aria-label":"Remove failed message",onClick:()=>e.onDismissFailed(e.message),children:t.jsx(R,{size:13})})]}):c||e.own&&!e.message.deletedAt?t.jsxs("div",{className:"team-chat-message-actions",children:[c?t.jsx("button",{type:"button","data-tooltip":"Reply","aria-label":"Reply to message",onClick:()=>e.onReply(e.message),children:t.jsx(L,{size:13})}):null,e.own&&!r?t.jsx("button",{type:"button","data-tooltip":"Edit message","aria-label":"Edit message",onClick:()=>s(!0),children:t.jsx(re,{size:13})}):null,e.own?t.jsx("button",{type:"button","data-tooltip":"Delete message","aria-label":"Delete message",onClick:()=>{e.onDelete(e.message)},children:t.jsx(de,{size:13})}):null]}):null]}),g&&C?t.jsx(je,{authorLabel:C,target:g,onJump:()=>e.onJumpToMessage(g.id)}):null,l?t.jsxs("form",{className:"team-chat-message-edit",onSubmit:a=>{a.preventDefault(),e.onEdit(e.message,n).then(b=>{b&&s(!1)})},children:[t.jsx("textarea",{autoFocus:!0,value:n,onChange:a=>d(a.currentTarget.value),onKeyDown:a=>{a.key==="Escape"&&(a.preventDefault(),s(!1),d(e.message.body))}}),t.jsxs("div",{children:[t.jsx("button",{type:"button",onClick:()=>s(!1),children:"Cancel"}),t.jsx("button",{type:"submit",disabled:!n.trim(),children:"Save"})]})]}):t.jsx("div",{className:e.message.deletedAt?"deleted":"",children:e.message.deletedAt?"Message deleted":e.message.body}),!e.message.deletedAt&&e.message.attachments.length>0?t.jsx(Re,{message:e.message,connection:e.connection}):null,r?t.jsxs("button",{type:"button",className:"team-chat-thread-link",onClick:()=>{e.onOpenAiThread(r.refId)},children:[t.jsx(X,{size:14}),t.jsx("span",{children:"Thread"}),v&&v!=="completed"?t.jsx("small",{children:J(v)}):null,t.jsx("span",{"aria-hidden":"true",children:"›"})]}):null,m?t.jsxs("button",{type:"button",className:"team-chat-thread-link",onClick:()=>{e.onOpenAgentConversation(m.refId)},children:[t.jsx(T,{size:14}),t.jsx("span",{children:"Agent run"}),t.jsx("small",{children:J(String(m.preview.status??"queued"))}),t.jsx("span",{"aria-hidden":"true",children:"›"})]}):null]})]})}function Re(e){const l=new Map(Array.isArray(e.message.metadata.localAttachmentPreviews)?e.message.metadata.localAttachmentPreviews.flatMap(s=>{if(!s||typeof s!="object")return[];const n=s;return typeof n.id=="string"&&typeof n.url=="string"?[[n.id,n.url]]:[]}):[]);return t.jsx("div",{className:"team-chat-message-images",children:e.message.attachments.map(s=>t.jsx(Ae,{attachmentId:s.id,alt:s.name,teamId:e.message.teamId,connection:e.connection,localUrl:l.get(s.clientAttachmentId)??null},s.id))})}function Ae(e){const[l,s]=o.useState(e.localUrl),[n,d]=o.useState(!1),r=o.useRef(0);async function m(){if(!e.connection||e.localUrl){e.localUrl||d(!0);return}d(!1);try{const v=await ce.teamChatAttachmentDownload(e.connection,e.teamId,e.attachmentId);s(v.url)}catch{s(null),d(!0)}}return o.useEffect(()=>{s(e.localUrl),d(!1),r.current=0,e.localUrl||m()},[e.attachmentId,e.connection,e.localUrl,e.teamId]),l?t.jsx("a",{href:l,target:"_blank",rel:"noreferrer","aria-label":`Open ${e.alt}`,children:t.jsx("img",{src:l,alt:e.alt,loading:"lazy",onError:()=>{if(!e.localUrl&&r.current<1){r.current+=1,m();return}s(null),d(!0)}})}):n?t.jsx("button",{type:"button",className:"team-chat-message-image-retry","aria-label":`Retry ${e.alt}`,"data-tooltip":"Retry image",onClick:()=>{r.current=0,e.localUrl?(d(!1),s(e.localUrl)):m()},children:t.jsx(N,{size:18})}):t.jsx("div",{className:"team-chat-message-image-loading",role:"status","aria-label":`Loading ${e.alt}`})}function J(e){return e==="pending"?"Starting":e==="running"?"Responding":e==="failed"?"Failed":e==="interrupted"?"Interrupted":e==="cancelled"?"Cancelled":e}function Pe({member:e}){if(e?.image)return t.jsx("img",{className:"team-chat-avatar",src:e.image,alt:""});const l=(e?.name??"T").split(/\s+/).slice(0,2).map(s=>s[0]?.toUpperCase()??"").join("");return t.jsx("span",{className:"team-chat-avatar fallback",children:l})}function Ie(e){const l=new Date(e);return Number.isFinite(l.getTime())?l.toLocaleTimeString([],{hour:"numeric",minute:"2-digit"}):""}const U={value:"none",label:"No project",detail:"Team conversation",options:[],busy:!1},z={value:"local",label:"Local",detail:"Local execution",options:[],action:{value:"local",label:"Local",detail:"Local execution",disabled:!1},busy:!1},G=new Set(["codex","openai","xai","openrouter","deepseek","zai","moonshot","together","groq","fireworks","custom-openai-compatible"]);function Se(e,l){return!l||e===l?e:e?`${l}
|
|
2
|
+
|
|
3
|
+
${e}`:l}function ze(e){const[l,s]=o.useState(""),[n,d]=o.useState(!1),[r,m]=o.useState(null),[v,h]=o.useState(null),[y,c]=o.useState(0),g=o.useRef(null),C=o.useRef(!0),a=o.useRef(e.detail?.thread.id??null);a.current=e.detail?.thread.id??null;const{confirmAction:b,confirmDialog:V,resolveConfirmDialog:Q}=me(),A=o.useMemo(()=>new Map(e.members.map(i=>[i.userId,i])),[e.members]),D=o.useMemo(()=>new Map((e.detail?.messages??[]).map(i=>[i.id,i])),[e.detail?.messages]),Z=e.detail?.thread.id??null,O=r?.threadId===Z?D.get(r.message.id)??r.message:null,M=O?.deletedAt?null:O,j=M?ue(M):null,q=j?K(j,A):null,p=e.detail?ge(e.detail.thread,e.currentUserId):"Team",P=G.has(e.provider)?e.provider:"codex",$=P===e.provider?e.model:"gpt-5.6-sol",ee=o.useMemo(()=>he({hostedActions:e.agents,profile:e.profile,teamId:e.teamId}),[e.agents,e.profile,e.teamId]),te=e.detail?.messages.at(-1)?.sequence??0;o.useEffect(()=>{if(!C.current)return;const i=g.current;i&&(i.scrollTop=i.scrollHeight)},[te,e.detail?.thread.id]);const B=o.useCallback(i=>{i.deletedAt||i.id.startsWith("pending:")||typeof i.metadata.deliveryStatus=="string"||(m({threadId:i.threadId,message:i}),d(!1),h(null),c(f=>f+1))},[]),ne=o.useCallback(()=>h(null),[]),ae=o.useCallback((i,f)=>{const x=Te({...f,viewportWidth:window.innerWidth,viewportHeight:window.innerHeight});h({message:i,...x})},[]),F=o.useCallback(i=>{const f=document.getElementById(Y(i));f&&(f.scrollIntoView({behavior:"smooth",block:"center"}),f.focus({preventScroll:!0}))},[]);async function se(i=[],f=null){if(i.some(u=>u.kind!=="image"||!["image/png","image/jpeg","image/webp","image/gif"].includes(u.mediaType)))return e.showToast("Team chat supports PNG, JPEG, WebP, and GIF images.","error"),!1;let x=f;if(M&&x)return e.showToast("Remove the agent action before replying to a message.","error"),!1;if(xe(x)){const u=ve(x);if(!u)throw new Error("The selected profile agent is missing its profile id.");if(!await b({title:`Publish ${x.label??x.name??"agent"} to Team?`,body:`This will upload the committed agent source to ${e.teamName??"this Team"}, create its hosted runtime, and then send your message.`,confirmLabel:"Publish and send",tone:"default"}))return!1;x=await e.onPublishProfileAgent(u)}const I=x?.approvalPolicy?.risk;let W=null;if(x?.approvalPolicy?.required&&I&&I!=="read"){const u=I==="destructive";if(!await b({title:u?"Approve destructive action?":"Approve external write?",body:`${x.label??x.name??"This agent action"} will use the workspace connection to ${u?"perform a destructive operation":"write external data"}. Approve this run only?`,confirmLabel:u?"Approve destructive action":"Approve write",tone:u?"danger":"default"}))return!1;W=crypto.randomUUID()}const S=l,oe=e.detail?.thread.id??null,w=M,_=()=>{a.current===oe&&(s(u=>Se(u,S)),w&&m(u=>u??{threadId:w.threadId,message:w}))};s(""),w&&m(null);try{const u=await e.onSendMessage({body:S,useModel:n,providerId:P,modelId:$,mentionUserIds:be(S,e.members),attachments:i,replyToMessage:w,selectedActionKey:x?.id??null,approvalId:W});return u?n&&d(!1):_(),u}catch(u){throw _(),u}}return t.jsxs("section",{className:"team-chat-view",children:[t.jsxs("div",{className:"team-chat-main conversation-surface-main",children:[e.error?t.jsxs("div",{className:"team-chat-error",role:"alert",children:[t.jsx("span",{children:e.error}),t.jsxs("button",{type:"button",onClick:()=>{e.onRetryLoad()},children:[t.jsx(N,{size:14}),"Retry"]})]}):null,t.jsxs("div",{className:"team-chat-messages conversation-message-scroll",role:"log","aria-live":"polite","aria-relevant":"additions text","aria-busy":e.loading,"aria-label":p,tabIndex:0,ref:g,onScroll:i=>{const f=i.currentTarget;C.current=f.scrollHeight-f.scrollTop-f.clientHeight<72},children:[e.detail?.hasMoreBefore?t.jsx("button",{type:"button",className:"team-chat-load-older",disabled:e.loading,onClick:()=>{e.onLoadMoreMessages()},children:e.loading?"Loading...":"Load older messages"}):null,e.loading&&!e.detail?t.jsx("div",{className:"team-chat-empty",children:"Loading messages..."}):e.detail?.messages.length?e.detail.messages.map(i=>t.jsx(Me,{message:i,author:i.authorUserId?A.get(i.authorUserId)??null:null,own:i.authorUserId===e.currentUserId,onOpenAiThread:e.onOpenAiThread,onOpenAgentConversation:e.onOpenAgentConversation,onEdit:e.onEditMessage,onDelete:e.onDeleteMessage,onRetry:e.onRetryMessage,onDismissFailed:e.onDismissFailedMessage,membersById:A,messagesById:D,onReply:B,onOpenReplyMenu:ae,onJumpToMessage:F,connection:e.connection},i.id)):t.jsx("div",{className:"team-chat-empty",children:"No messages yet"})]}),t.jsxs("div",{className:"team-chat-composer-shell conversation-composer-shell",children:[j&&q?t.jsx(Ce,{authorLabel:q,target:j,onCancel:()=>m(null),onJump:()=>F(j.id)}):null,t.jsx(E,{mode:"dock",surface:"team",teamUseModel:n,teamUseModelLocked:!!j,teamMentionMembers:e.members.filter(i=>i.userId!==e.currentUserId),actionCatalog:ee,onTeamUseModelChange:d,prompt:l,contextWindowStatus:e.contextWindowStatus,busy:e.busy,running:!1,focusRequestId:y,submissionScopeKey:`team:${e.detail?.thread.id??"none"}`,showProjectFooter:!1,connection:e.connection,providerSettings:e.providerSettings,provider:P,model:$,projectTarget:U,workspaceTarget:z,codexPermissionMode:e.codexPermissionMode,codexReasoningEffort:e.codexReasoningEffort,openPondCommandAccessMode:e.openPondCommandAccessMode,onProviderChange:e.onProviderChange,onProviderSetupOpen:e.onOpenProviderSettings,onProjectTargetChange:()=>{},onWorkspaceTargetChange:()=>{},onModelChange:e.onModelChange,onCodexPermissionModeChange:e.onCodexPermissionModeChange,onCodexReasoningEffortChange:e.onCodexReasoningEffortChange,onOpenPondCommandAccessModeChange:e.onOpenPondCommandAccessModeChange,onPromptChange:s,showToast:e.showToast,onSubmit:async(i,f)=>se(i??[],f??null),onStop:()=>!1})]})]}),t.jsx(we,{menu:v,onClose:ne,onReply:B}),t.jsx(fe,{state:V,onResolve:Q})]})}function De(e){const[l,s]=o.useState(""),n=e.agentConversation,d=o.useRef(null),r=o.useRef(null),m=o.useRef(null),v=n.messages.at(-1)?.sequence??0,h=["pending","queued","running"].includes(n.run.status);o.useEffect(()=>{const c=d.current;c&&(c.scrollTop=c.scrollHeight)},[v,n.run.status]),o.useEffect(()=>{r.current?.focus();const c=g=>{g.key==="Escape"&&(g.preventDefault(),e.onCloseAgentConversation())};return window.addEventListener("keydown",c),()=>window.removeEventListener("keydown",c)},[e.onCloseAgentConversation]);async function y(){const c=m.current??crypto.randomUUID();m.current=c;const g=await e.onSendAgentTurn({body:l,clientRequestId:c});return g&&(m.current=null,s("")),g}return t.jsxs("aside",{className:"workspace-diff-panel team-ai-thread-panel","aria-label":`${n.agent.name} run`,children:[e.onResizeStart?t.jsx("div",{className:"workspace-diff-resize-handle",role:"separator","aria-orientation":"vertical","aria-label":"Resize agent run panel",onPointerDown:e.onResizeStart}):null,t.jsxs("header",{children:[t.jsxs("div",{children:[t.jsx(T,{size:15}),t.jsx("strong",{children:n.agent.name}),t.jsx("span",{children:n.run.status})]}),t.jsx("button",{ref:r,type:"button",className:"team-chat-icon-button","aria-label":"Close agent run",onClick:e.onCloseAgentConversation,children:t.jsx(R,{size:16})})]}),t.jsxs("div",{className:"team-ai-thread-messages",ref:d,role:"log","aria-live":"polite","aria-relevant":"additions text",tabIndex:0,children:[n.messages.map(c=>t.jsxs("article",{className:`team-ai-message ${c.role}`,children:[t.jsxs("div",{className:"team-ai-message-author",children:[c.role==="assistant"?t.jsx(T,{size:14}):null,t.jsx("strong",{children:c.role==="user"?"Team member":n.agent.name})]}),t.jsx(k,{connection:e.connection,content:c.body})]},c.id)),n.messages.length===0?t.jsx("div",{className:"team-chat-empty",children:"The agent run is starting."}):null]}),t.jsx("div",{className:"team-ai-thread-composer",children:t.jsx(E,{mode:"dock",surface:"team",teamUseModel:!1,teamUseModelLocked:!0,prompt:l,contextWindowStatus:e.contextWindowStatus,busy:e.busy||h,running:h,submissionScopeKey:`team-agent:${n.conversationId}`,showProjectFooter:!1,connection:e.connection,providerSettings:e.providerSettings,provider:e.provider,model:e.model,projectTarget:U,workspaceTarget:z,codexPermissionMode:e.codexPermissionMode,codexReasoningEffort:e.codexReasoningEffort,openPondCommandAccessMode:e.openPondCommandAccessMode,onProviderChange:e.onProviderChange,onProviderSetupOpen:e.onOpenProviderSettings,onProjectTargetChange:()=>{},onWorkspaceTargetChange:()=>{},onModelChange:e.onModelChange,onCodexPermissionModeChange:e.onCodexPermissionModeChange,onCodexReasoningEffortChange:e.onCodexReasoningEffortChange,onOpenPondCommandAccessModeChange:e.onOpenPondCommandAccessModeChange,onPromptChange:c=>{m.current=null,s(c)},showToast:e.showToast,onSubmit:y,onStop:()=>!1})})]})}function Oe(e){const[l,s]=o.useState(""),n=e.aiThread,d=new Map(e.members.map(a=>[a.userId,a])),r=n.turns.at(-1)??null,m=o.useRef(null),v=n.messages.at(-1)?.sequence??0,h=o.useRef(null),y=G.has(e.provider)?e.provider:"codex",c=y===e.provider?e.model:"gpt-5.6-sol",g=!!(n.activeTurn&&(n.activeTurn.status==="pending"||n.activeTurn.status==="running"));o.useEffect(()=>{const a=m.current;a&&(a.scrollTop=a.scrollHeight)},[v,n.activeTurn?.partialBody]),o.useEffect(()=>{h.current?.focus();const a=b=>{b.key==="Escape"&&(b.preventDefault(),e.onCloseAiThread())};return window.addEventListener("keydown",a),()=>window.removeEventListener("keydown",a)},[e.onCloseAiThread]);async function C(){const a=await e.onSendAiTurn({body:l,providerId:y,modelId:c});return a&&s(""),a}return t.jsxs("aside",{className:"workspace-diff-panel team-ai-thread-panel","aria-label":"AI thread",children:[e.onResizeStart?t.jsx("div",{className:"workspace-diff-resize-handle",role:"separator","aria-label":"Resize AI thread panel","aria-orientation":"vertical",onPointerDown:e.onResizeStart}):null,t.jsxs("header",{children:[t.jsxs("div",{children:[t.jsx(X,{size:15}),t.jsx("strong",{children:"AI thread"}),t.jsxs("span",{children:[n.messages.length," messages"]})]}),t.jsx("button",{ref:h,type:"button",className:"team-chat-icon-button","data-tooltip":"Close thread","aria-label":"Close thread",onClick:e.onCloseAiThread,children:t.jsx(R,{size:16})})]}),t.jsxs("div",{className:"team-ai-thread-messages",ref:m,role:"log","aria-live":"polite","aria-relevant":"additions text",tabIndex:0,children:[n.messages.map(a=>t.jsxs("article",{className:`team-ai-message ${a.role}`,children:[t.jsxs("div",{className:"team-ai-message-author",children:[a.role==="assistant"?t.jsx(T,{size:14}):null,t.jsx("strong",{children:a.role==="assistant"?"Model":a.createdByUserId?d.get(a.createdByUserId)?.name??"Team member":"Team member"})]}),t.jsx(k,{connection:e.connection,content:a.body})]},a.id)),n.activeTurn?.partialBody?t.jsxs("article",{className:"team-ai-message assistant streaming",children:[t.jsxs("div",{className:"team-ai-message-author",children:[t.jsx(T,{size:14}),t.jsx("strong",{children:"Model"}),t.jsx("span",{children:n.activeTurn.status})]}),t.jsx(k,{connection:e.connection,content:n.activeTurn.partialBody})]}):n.activeTurn?t.jsx("div",{className:"team-ai-running",children:n.activeTurn.status==="pending"?"Starting model...":"Model is responding..."}):r&&["failed","interrupted","cancelled"].includes(r.status)?t.jsx("div",{className:`team-ai-turn-state ${r.status}`,children:r.status==="failed"?"Model response failed":r.status==="interrupted"?"Model response was interrupted":"Model response was cancelled"}):null]}),t.jsx("div",{className:"team-ai-thread-composer",children:t.jsx(E,{mode:"dock",surface:"team",teamUseModel:!0,teamUseModelLocked:!0,prompt:l,contextWindowStatus:e.contextWindowStatus,busy:g,running:g,submissionScopeKey:`team-ai:${n.conversationId}`,showProjectFooter:!1,connection:e.connection,providerSettings:e.providerSettings,provider:y,model:c,projectTarget:U,workspaceTarget:z,codexPermissionMode:e.codexPermissionMode,codexReasoningEffort:e.codexReasoningEffort,openPondCommandAccessMode:e.openPondCommandAccessMode,onProviderChange:e.onProviderChange,onProviderSetupOpen:e.onOpenProviderSettings,onProjectTargetChange:()=>{},onWorkspaceTargetChange:()=>{},onModelChange:e.onModelChange,onCodexPermissionModeChange:e.onCodexPermissionModeChange,onCodexReasoningEffortChange:e.onCodexReasoningEffortChange,onOpenPondCommandAccessModeChange:e.onOpenPondCommandAccessModeChange,onPromptChange:s,showToast:e.showToast,onSubmit:C,onStop:e.onStopAiTurn})})]})}export{De as TeamAgentConversationPanel,Oe as TeamAiThreadPanel,ze as TeamChatView,Se as restoreFailedTeamChatPrompt};
|
|
@@ -1,4 +1,4 @@
|
|
|
1
|
-
import{r as I,j as X,av as hs,aw as Jr,ax as cs,ay as Zr,az as Qr,aA as en,X as tn,h as ds,au as sn}from"./index-CU2qhUYV.js";var rn=2,nn=1,on=class{activate(e){this._terminal=e}dispose(){}fit(){let e=this.proposeDimensions();if(!e||!this._terminal||isNaN(e.cols)||isNaN(e.rows))return;let t=this._terminal._core;(this._terminal.rows!==e.rows||this._terminal.cols!==e.cols)&&(t._renderService.clear(),this._terminal.resize(e.cols,e.rows))}proposeDimensions(){if(!this._terminal||!this._terminal.element||!this._terminal.element.parentElement)return;let e=this._terminal._core._renderService.dimensions;if(e.css.cell.width===0||e.css.cell.height===0)return;let t=this._terminal.options.scrollback===0?0:this._terminal.options.overviewRuler?.width||14,i=window.getComputedStyle(this._terminal.element.parentElement),s=parseInt(i.getPropertyValue("height")),r=Math.max(0,parseInt(i.getPropertyValue("width"))),n=window.getComputedStyle(this._terminal.element),o={top:parseInt(n.getPropertyValue("padding-top")),bottom:parseInt(n.getPropertyValue("padding-bottom")),right:parseInt(n.getPropertyValue("padding-right")),left:parseInt(n.getPropertyValue("padding-left"))},l=o.top+o.bottom,h=o.right+o.left,a=s-l,d=r-h-t;return{cols:Math.max(rn,Math.floor(d/e.css.cell.width)),rows:Math.max(nn,Math.floor(a/e.css.cell.height))}}};var ar=Object.defineProperty,an=Object.getOwnPropertyDescriptor,ln=(e,t)=>{for(var i in t)ar(e,i,{get:t[i],enumerable:!0})},Z=(e,t,i,s)=>{for(var r=s>1?void 0:s?an(t,i):t,n=e.length-1,o;n>=0;n--)(o=e[n])&&(r=(s?o(t,i,r):o(r))||r);return s&&r&&ar(t,i,r),r},k=(e,t)=>(i,s)=>t(i,s,e),us="Terminal input",pi={get:()=>us,set:e=>us=e},_s="Too much output to announce, navigate to rows manually to read",gi={get:()=>_s,set:e=>_s=e};function hn(e){return e.replace(/\r?\n/g,"\r")}function cn(e,t){return t?"\x1B[200~"+e+"\x1B[201~":e}function dn(e,t){e.clipboardData&&e.clipboardData.setData("text/plain",t.selectionText),e.preventDefault()}function un(e,t,i,s){if(e.stopPropagation(),e.clipboardData){let r=e.clipboardData.getData("text/plain");lr(r,t,i,s)}}function lr(e,t,i,s){e=hn(e),e=cn(e,i.decPrivateModes.bracketedPasteMode&&s.rawOptions.ignoreBracketedPasteMode!==!0),i.triggerDataEvent(e,!0),t.value=""}function hr(e,t,i){let s=i.getBoundingClientRect(),r=e.clientX-s.left-10,n=e.clientY-s.top-10;t.style.width="20px",t.style.height="20px",t.style.left=`${r}px`,t.style.top=`${n}px`,t.style.zIndex="1000",t.focus()}function fs(e,t,i,s,r){hr(e,t,i),r&&s.rightClickSelect(e),t.value=s.selectionText,t.select()}function Xe(e){return e>65535?(e-=65536,String.fromCharCode((e>>10)+55296)+String.fromCharCode(e%1024+56320)):String.fromCharCode(e)}function Zt(e,t=0,i=e.length){let s="";for(let r=t;r<i;++r){let n=e[r];n>65535?(n-=65536,s+=String.fromCharCode((n>>10)+55296)+String.fromCharCode(n%1024+56320)):s+=String.fromCharCode(n)}return s}var _n=class{constructor(){this._interim=0}clear(){this._interim=0}decode(e,t){let i=e.length;if(!i)return 0;let s=0,r=0;if(this._interim){let n=e.charCodeAt(r++);56320<=n&&n<=57343?t[s++]=(this._interim-55296)*1024+n-56320+65536:(t[s++]=this._interim,t[s++]=n),this._interim=0}for(let n=r;n<i;++n){let o=e.charCodeAt(n);if(55296<=o&&o<=56319){if(++n>=i)return this._interim=o,s;let l=e.charCodeAt(n);56320<=l&&l<=57343?t[s++]=(o-55296)*1024+l-56320+65536:(t[s++]=o,t[s++]=l);continue}o!==65279&&(t[s++]=o)}return s}},fn=class{constructor(){this.interim=new Uint8Array(3)}clear(){this.interim.fill(0)}decode(e,t){let i=e.length;if(!i)return 0;let s=0,r,n,o,l,h=0,a=0;if(this.interim[0]){let u=!1,f=this.interim[0];f&=(f&224)===192?31:(f&240)===224?15:7;let _=0,g;for(;(g=this.interim[++_]&63)&&_<4;)f<<=6,f|=g;let y=(this.interim[0]&224)===192?2:(this.interim[0]&240)===224?3:4,R=y-_;for(;a<R;){if(a>=i)return 0;if(g=e[a++],(g&192)!==128){a--,u=!0;break}else this.interim[_++]=g,f<<=6,f|=g&63}u||(y===2?f<128?a--:t[s++]=f:y===3?f<2048||f>=55296&&f<=57343||f===65279||(t[s++]=f):f<65536||f>1114111||(t[s++]=f)),this.interim.fill(0)}let d=i-4,c=a;for(;c<i;){for(;c<d&&!((r=e[c])&128)&&!((n=e[c+1])&128)&&!((o=e[c+2])&128)&&!((l=e[c+3])&128);)t[s++]=r,t[s++]=n,t[s++]=o,t[s++]=l,c+=4;if(r=e[c++],r<128)t[s++]=r;else if((r&224)===192){if(c>=i)return this.interim[0]=r,s;if(n=e[c++],(n&192)!==128){c--;continue}if(h=(r&31)<<6|n&63,h<128){c--;continue}t[s++]=h}else if((r&240)===224){if(c>=i)return this.interim[0]=r,s;if(n=e[c++],(n&192)!==128){c--;continue}if(c>=i)return this.interim[0]=r,this.interim[1]=n,s;if(o=e[c++],(o&192)!==128){c--;continue}if(h=(r&15)<<12|(n&63)<<6|o&63,h<2048||h>=55296&&h<=57343||h===65279)continue;t[s++]=h}else if((r&248)===240){if(c>=i)return this.interim[0]=r,s;if(n=e[c++],(n&192)!==128){c--;continue}if(c>=i)return this.interim[0]=r,this.interim[1]=n,s;if(o=e[c++],(o&192)!==128){c--;continue}if(c>=i)return this.interim[0]=r,this.interim[1]=n,this.interim[2]=o,s;if(l=e[c++],(l&192)!==128){c--;continue}if(h=(r&7)<<18|(n&63)<<12|(o&63)<<6|l&63,h<65536||h>1114111)continue;t[s++]=h}}return s}},cr="",Ge=" ",Mt=class dr{constructor(){this.fg=0,this.bg=0,this.extended=new Vt}static toColorRGB(t){return[t>>>16&255,t>>>8&255,t&255]}static fromColorRGB(t){return(t[0]&255)<<16|(t[1]&255)<<8|t[2]&255}clone(){let t=new dr;return t.fg=this.fg,t.bg=this.bg,t.extended=this.extended.clone(),t}isInverse(){return this.fg&67108864}isBold(){return this.fg&134217728}isUnderline(){return this.hasExtendedAttrs()&&this.extended.underlineStyle!==0?1:this.fg&268435456}isBlink(){return this.fg&536870912}isInvisible(){return this.fg&1073741824}isItalic(){return this.bg&67108864}isDim(){return this.bg&134217728}isStrikethrough(){return this.fg&2147483648}isProtected(){return this.bg&536870912}isOverline(){return this.bg&1073741824}getFgColorMode(){return this.fg&50331648}getBgColorMode(){return this.bg&50331648}isFgRGB(){return(this.fg&50331648)===50331648}isBgRGB(){return(this.bg&50331648)===50331648}isFgPalette(){return(this.fg&50331648)===16777216||(this.fg&50331648)===33554432}isBgPalette(){return(this.bg&50331648)===16777216||(this.bg&50331648)===33554432}isFgDefault(){return(this.fg&50331648)===0}isBgDefault(){return(this.bg&50331648)===0}isAttributeDefault(){return this.fg===0&&this.bg===0}getFgColor(){switch(this.fg&50331648){case 16777216:case 33554432:return this.fg&255;case 50331648:return this.fg&16777215;default:return-1}}getBgColor(){switch(this.bg&50331648){case 16777216:case 33554432:return this.bg&255;case 50331648:return this.bg&16777215;default:return-1}}hasExtendedAttrs(){return this.bg&268435456}updateExtended(){this.extended.isEmpty()?this.bg&=-268435457:this.bg|=268435456}getUnderlineColor(){if(this.bg&268435456&&~this.extended.underlineColor)switch(this.extended.underlineColor&50331648){case 16777216:case 33554432:return this.extended.underlineColor&255;case 50331648:return this.extended.underlineColor&16777215;default:return this.getFgColor()}return this.getFgColor()}getUnderlineColorMode(){return this.bg&268435456&&~this.extended.underlineColor?this.extended.underlineColor&50331648:this.getFgColorMode()}isUnderlineColorRGB(){return this.bg&268435456&&~this.extended.underlineColor?(this.extended.underlineColor&50331648)===50331648:this.isFgRGB()}isUnderlineColorPalette(){return this.bg&268435456&&~this.extended.underlineColor?(this.extended.underlineColor&50331648)===16777216||(this.extended.underlineColor&50331648)===33554432:this.isFgPalette()}isUnderlineColorDefault(){return this.bg&268435456&&~this.extended.underlineColor?(this.extended.underlineColor&50331648)===0:this.isFgDefault()}getUnderlineStyle(){return this.fg&268435456?this.bg&268435456?this.extended.underlineStyle:1:0}getUnderlineVariantOffset(){return this.extended.underlineVariantOffset}},Vt=class ur{constructor(t=0,i=0){this._ext=0,this._urlId=0,this._ext=t,this._urlId=i}get ext(){return this._urlId?this._ext&-469762049|this.underlineStyle<<26:this._ext}set ext(t){this._ext=t}get underlineStyle(){return this._urlId?5:(this._ext&469762048)>>26}set underlineStyle(t){this._ext&=-469762049,this._ext|=t<<26&469762048}get underlineColor(){return this._ext&67108863}set underlineColor(t){this._ext&=-67108864,this._ext|=t&67108863}get urlId(){return this._urlId}set urlId(t){this._urlId=t}get underlineVariantOffset(){let t=(this._ext&3758096384)>>29;return t<0?t^4294967288:t}set underlineVariantOffset(t){this._ext&=536870911,this._ext|=t<<29&3758096384}clone(){return new ur(this._ext,this._urlId)}isEmpty(){return this.underlineStyle===0&&this._urlId===0}},Le=class _r extends Mt{constructor(){super(...arguments),this.content=0,this.fg=0,this.bg=0,this.extended=new Vt,this.combinedData=""}static fromCharData(t){let i=new _r;return i.setFromCharData(t),i}isCombined(){return this.content&2097152}getWidth(){return this.content>>22}getChars(){return this.content&2097152?this.combinedData:this.content&2097151?Xe(this.content&2097151):""}getCode(){return this.isCombined()?this.combinedData.charCodeAt(this.combinedData.length-1):this.content&2097151}setFromCharData(t){this.fg=t[0],this.bg=0;let i=!1;if(t[1].length>2)i=!0;else if(t[1].length===2){let s=t[1].charCodeAt(0);if(55296<=s&&s<=56319){let r=t[1].charCodeAt(1);56320<=r&&r<=57343?this.content=(s-55296)*1024+r-56320+65536|t[2]<<22:i=!0}else i=!0}else this.content=t[1].charCodeAt(0)|t[2]<<22;i&&(this.combinedData=t[1],this.content=2097152|t[2]<<22)}getAsCharData(){return[this.fg,this.getChars(),this.getWidth(),this.getCode()]}},ps="di$target",vi="di$dependencies",ii=new Map;function pn(e){return e[vi]||[]}function ce(e){if(ii.has(e))return ii.get(e);let t=function(i,s,r){if(arguments.length!==3)throw new Error("@IServiceName-decorator can only be used to decorate a parameter");gn(t,i,r)};return t._id=e,ii.set(e,t),t}function gn(e,t,i){t[ps]===t?t[vi].push({id:e,index:i}):(t[vi]=[{id:e,index:i}],t[ps]=t)}var me=ce("BufferService"),fr=ce("CoreMouseService"),ot=ce("CoreService"),vn=ce("CharsetService"),Zi=ce("InstantiationService"),pr=ce("LogService"),Se=ce("OptionsService"),gr=ce("OscLinkService"),mn=ce("UnicodeService"),Lt=ce("DecorationService"),mi=class{constructor(e,t,i){this._bufferService=e,this._optionsService=t,this._oscLinkService=i}provideLinks(e,t){let i=this._bufferService.buffer.lines.get(e-1);if(!i){t(void 0);return}let s=[],r=this._optionsService.rawOptions.linkHandler,n=new Le,o=i.getTrimmedLength(),l=-1,h=-1,a=!1;for(let d=0;d<o;d++)if(!(h===-1&&!i.hasContent(d))){if(i.loadCell(d,n),n.hasExtendedAttrs()&&n.extended.urlId)if(h===-1){h=d,l=n.extended.urlId;continue}else a=n.extended.urlId!==l;else h!==-1&&(a=!0);if(a||h!==-1&&d===o-1){let c=this._oscLinkService.getLinkData(l)?.uri;if(c){let u={start:{x:h+1,y:e},end:{x:d+(!a&&d===o-1?1:0),y:e}},f=!1;if(!r?.allowNonHttpProtocols)try{let _=new URL(c);["http:","https:"].includes(_.protocol)||(f=!0)}catch{f=!0}f||s.push({text:c,range:u,activate:(_,g)=>r?r.activate(_,g,u):Sn(_,g),hover:(_,g)=>r?.hover?.(_,g,u),leave:(_,g)=>r?.leave?.(_,g,u)})}a=!1,n.hasExtendedAttrs()&&n.extended.urlId?(h=d,l=n.extended.urlId):(h=-1,l=-1)}}t(s)}};mi=Z([k(0,me),k(1,Se),k(2,gr)],mi);function Sn(e,t){if(confirm(`Do you want to navigate to ${t}?
|
|
1
|
+
import{r as I,j as X,az as hs,aA as Jr,aB as cs,aC as Zr,aD as Qr,aE as en,X as tn,h as ds,av as sn}from"./index-D7Vr3zcV.js";var rn=2,nn=1,on=class{activate(e){this._terminal=e}dispose(){}fit(){let e=this.proposeDimensions();if(!e||!this._terminal||isNaN(e.cols)||isNaN(e.rows))return;let t=this._terminal._core;(this._terminal.rows!==e.rows||this._terminal.cols!==e.cols)&&(t._renderService.clear(),this._terminal.resize(e.cols,e.rows))}proposeDimensions(){if(!this._terminal||!this._terminal.element||!this._terminal.element.parentElement)return;let e=this._terminal._core._renderService.dimensions;if(e.css.cell.width===0||e.css.cell.height===0)return;let t=this._terminal.options.scrollback===0?0:this._terminal.options.overviewRuler?.width||14,i=window.getComputedStyle(this._terminal.element.parentElement),s=parseInt(i.getPropertyValue("height")),r=Math.max(0,parseInt(i.getPropertyValue("width"))),n=window.getComputedStyle(this._terminal.element),o={top:parseInt(n.getPropertyValue("padding-top")),bottom:parseInt(n.getPropertyValue("padding-bottom")),right:parseInt(n.getPropertyValue("padding-right")),left:parseInt(n.getPropertyValue("padding-left"))},l=o.top+o.bottom,h=o.right+o.left,a=s-l,d=r-h-t;return{cols:Math.max(rn,Math.floor(d/e.css.cell.width)),rows:Math.max(nn,Math.floor(a/e.css.cell.height))}}};var ar=Object.defineProperty,an=Object.getOwnPropertyDescriptor,ln=(e,t)=>{for(var i in t)ar(e,i,{get:t[i],enumerable:!0})},Z=(e,t,i,s)=>{for(var r=s>1?void 0:s?an(t,i):t,n=e.length-1,o;n>=0;n--)(o=e[n])&&(r=(s?o(t,i,r):o(r))||r);return s&&r&&ar(t,i,r),r},k=(e,t)=>(i,s)=>t(i,s,e),us="Terminal input",pi={get:()=>us,set:e=>us=e},_s="Too much output to announce, navigate to rows manually to read",gi={get:()=>_s,set:e=>_s=e};function hn(e){return e.replace(/\r?\n/g,"\r")}function cn(e,t){return t?"\x1B[200~"+e+"\x1B[201~":e}function dn(e,t){e.clipboardData&&e.clipboardData.setData("text/plain",t.selectionText),e.preventDefault()}function un(e,t,i,s){if(e.stopPropagation(),e.clipboardData){let r=e.clipboardData.getData("text/plain");lr(r,t,i,s)}}function lr(e,t,i,s){e=hn(e),e=cn(e,i.decPrivateModes.bracketedPasteMode&&s.rawOptions.ignoreBracketedPasteMode!==!0),i.triggerDataEvent(e,!0),t.value=""}function hr(e,t,i){let s=i.getBoundingClientRect(),r=e.clientX-s.left-10,n=e.clientY-s.top-10;t.style.width="20px",t.style.height="20px",t.style.left=`${r}px`,t.style.top=`${n}px`,t.style.zIndex="1000",t.focus()}function fs(e,t,i,s,r){hr(e,t,i),r&&s.rightClickSelect(e),t.value=s.selectionText,t.select()}function Xe(e){return e>65535?(e-=65536,String.fromCharCode((e>>10)+55296)+String.fromCharCode(e%1024+56320)):String.fromCharCode(e)}function Zt(e,t=0,i=e.length){let s="";for(let r=t;r<i;++r){let n=e[r];n>65535?(n-=65536,s+=String.fromCharCode((n>>10)+55296)+String.fromCharCode(n%1024+56320)):s+=String.fromCharCode(n)}return s}var _n=class{constructor(){this._interim=0}clear(){this._interim=0}decode(e,t){let i=e.length;if(!i)return 0;let s=0,r=0;if(this._interim){let n=e.charCodeAt(r++);56320<=n&&n<=57343?t[s++]=(this._interim-55296)*1024+n-56320+65536:(t[s++]=this._interim,t[s++]=n),this._interim=0}for(let n=r;n<i;++n){let o=e.charCodeAt(n);if(55296<=o&&o<=56319){if(++n>=i)return this._interim=o,s;let l=e.charCodeAt(n);56320<=l&&l<=57343?t[s++]=(o-55296)*1024+l-56320+65536:(t[s++]=o,t[s++]=l);continue}o!==65279&&(t[s++]=o)}return s}},fn=class{constructor(){this.interim=new Uint8Array(3)}clear(){this.interim.fill(0)}decode(e,t){let i=e.length;if(!i)return 0;let s=0,r,n,o,l,h=0,a=0;if(this.interim[0]){let u=!1,f=this.interim[0];f&=(f&224)===192?31:(f&240)===224?15:7;let _=0,g;for(;(g=this.interim[++_]&63)&&_<4;)f<<=6,f|=g;let y=(this.interim[0]&224)===192?2:(this.interim[0]&240)===224?3:4,R=y-_;for(;a<R;){if(a>=i)return 0;if(g=e[a++],(g&192)!==128){a--,u=!0;break}else this.interim[_++]=g,f<<=6,f|=g&63}u||(y===2?f<128?a--:t[s++]=f:y===3?f<2048||f>=55296&&f<=57343||f===65279||(t[s++]=f):f<65536||f>1114111||(t[s++]=f)),this.interim.fill(0)}let d=i-4,c=a;for(;c<i;){for(;c<d&&!((r=e[c])&128)&&!((n=e[c+1])&128)&&!((o=e[c+2])&128)&&!((l=e[c+3])&128);)t[s++]=r,t[s++]=n,t[s++]=o,t[s++]=l,c+=4;if(r=e[c++],r<128)t[s++]=r;else if((r&224)===192){if(c>=i)return this.interim[0]=r,s;if(n=e[c++],(n&192)!==128){c--;continue}if(h=(r&31)<<6|n&63,h<128){c--;continue}t[s++]=h}else if((r&240)===224){if(c>=i)return this.interim[0]=r,s;if(n=e[c++],(n&192)!==128){c--;continue}if(c>=i)return this.interim[0]=r,this.interim[1]=n,s;if(o=e[c++],(o&192)!==128){c--;continue}if(h=(r&15)<<12|(n&63)<<6|o&63,h<2048||h>=55296&&h<=57343||h===65279)continue;t[s++]=h}else if((r&248)===240){if(c>=i)return this.interim[0]=r,s;if(n=e[c++],(n&192)!==128){c--;continue}if(c>=i)return this.interim[0]=r,this.interim[1]=n,s;if(o=e[c++],(o&192)!==128){c--;continue}if(c>=i)return this.interim[0]=r,this.interim[1]=n,this.interim[2]=o,s;if(l=e[c++],(l&192)!==128){c--;continue}if(h=(r&7)<<18|(n&63)<<12|(o&63)<<6|l&63,h<65536||h>1114111)continue;t[s++]=h}}return s}},cr="",Ge=" ",Mt=class dr{constructor(){this.fg=0,this.bg=0,this.extended=new Vt}static toColorRGB(t){return[t>>>16&255,t>>>8&255,t&255]}static fromColorRGB(t){return(t[0]&255)<<16|(t[1]&255)<<8|t[2]&255}clone(){let t=new dr;return t.fg=this.fg,t.bg=this.bg,t.extended=this.extended.clone(),t}isInverse(){return this.fg&67108864}isBold(){return this.fg&134217728}isUnderline(){return this.hasExtendedAttrs()&&this.extended.underlineStyle!==0?1:this.fg&268435456}isBlink(){return this.fg&536870912}isInvisible(){return this.fg&1073741824}isItalic(){return this.bg&67108864}isDim(){return this.bg&134217728}isStrikethrough(){return this.fg&2147483648}isProtected(){return this.bg&536870912}isOverline(){return this.bg&1073741824}getFgColorMode(){return this.fg&50331648}getBgColorMode(){return this.bg&50331648}isFgRGB(){return(this.fg&50331648)===50331648}isBgRGB(){return(this.bg&50331648)===50331648}isFgPalette(){return(this.fg&50331648)===16777216||(this.fg&50331648)===33554432}isBgPalette(){return(this.bg&50331648)===16777216||(this.bg&50331648)===33554432}isFgDefault(){return(this.fg&50331648)===0}isBgDefault(){return(this.bg&50331648)===0}isAttributeDefault(){return this.fg===0&&this.bg===0}getFgColor(){switch(this.fg&50331648){case 16777216:case 33554432:return this.fg&255;case 50331648:return this.fg&16777215;default:return-1}}getBgColor(){switch(this.bg&50331648){case 16777216:case 33554432:return this.bg&255;case 50331648:return this.bg&16777215;default:return-1}}hasExtendedAttrs(){return this.bg&268435456}updateExtended(){this.extended.isEmpty()?this.bg&=-268435457:this.bg|=268435456}getUnderlineColor(){if(this.bg&268435456&&~this.extended.underlineColor)switch(this.extended.underlineColor&50331648){case 16777216:case 33554432:return this.extended.underlineColor&255;case 50331648:return this.extended.underlineColor&16777215;default:return this.getFgColor()}return this.getFgColor()}getUnderlineColorMode(){return this.bg&268435456&&~this.extended.underlineColor?this.extended.underlineColor&50331648:this.getFgColorMode()}isUnderlineColorRGB(){return this.bg&268435456&&~this.extended.underlineColor?(this.extended.underlineColor&50331648)===50331648:this.isFgRGB()}isUnderlineColorPalette(){return this.bg&268435456&&~this.extended.underlineColor?(this.extended.underlineColor&50331648)===16777216||(this.extended.underlineColor&50331648)===33554432:this.isFgPalette()}isUnderlineColorDefault(){return this.bg&268435456&&~this.extended.underlineColor?(this.extended.underlineColor&50331648)===0:this.isFgDefault()}getUnderlineStyle(){return this.fg&268435456?this.bg&268435456?this.extended.underlineStyle:1:0}getUnderlineVariantOffset(){return this.extended.underlineVariantOffset}},Vt=class ur{constructor(t=0,i=0){this._ext=0,this._urlId=0,this._ext=t,this._urlId=i}get ext(){return this._urlId?this._ext&-469762049|this.underlineStyle<<26:this._ext}set ext(t){this._ext=t}get underlineStyle(){return this._urlId?5:(this._ext&469762048)>>26}set underlineStyle(t){this._ext&=-469762049,this._ext|=t<<26&469762048}get underlineColor(){return this._ext&67108863}set underlineColor(t){this._ext&=-67108864,this._ext|=t&67108863}get urlId(){return this._urlId}set urlId(t){this._urlId=t}get underlineVariantOffset(){let t=(this._ext&3758096384)>>29;return t<0?t^4294967288:t}set underlineVariantOffset(t){this._ext&=536870911,this._ext|=t<<29&3758096384}clone(){return new ur(this._ext,this._urlId)}isEmpty(){return this.underlineStyle===0&&this._urlId===0}},Le=class _r extends Mt{constructor(){super(...arguments),this.content=0,this.fg=0,this.bg=0,this.extended=new Vt,this.combinedData=""}static fromCharData(t){let i=new _r;return i.setFromCharData(t),i}isCombined(){return this.content&2097152}getWidth(){return this.content>>22}getChars(){return this.content&2097152?this.combinedData:this.content&2097151?Xe(this.content&2097151):""}getCode(){return this.isCombined()?this.combinedData.charCodeAt(this.combinedData.length-1):this.content&2097151}setFromCharData(t){this.fg=t[0],this.bg=0;let i=!1;if(t[1].length>2)i=!0;else if(t[1].length===2){let s=t[1].charCodeAt(0);if(55296<=s&&s<=56319){let r=t[1].charCodeAt(1);56320<=r&&r<=57343?this.content=(s-55296)*1024+r-56320+65536|t[2]<<22:i=!0}else i=!0}else this.content=t[1].charCodeAt(0)|t[2]<<22;i&&(this.combinedData=t[1],this.content=2097152|t[2]<<22)}getAsCharData(){return[this.fg,this.getChars(),this.getWidth(),this.getCode()]}},ps="di$target",vi="di$dependencies",ii=new Map;function pn(e){return e[vi]||[]}function ce(e){if(ii.has(e))return ii.get(e);let t=function(i,s,r){if(arguments.length!==3)throw new Error("@IServiceName-decorator can only be used to decorate a parameter");gn(t,i,r)};return t._id=e,ii.set(e,t),t}function gn(e,t,i){t[ps]===t?t[vi].push({id:e,index:i}):(t[vi]=[{id:e,index:i}],t[ps]=t)}var me=ce("BufferService"),fr=ce("CoreMouseService"),ot=ce("CoreService"),vn=ce("CharsetService"),Zi=ce("InstantiationService"),pr=ce("LogService"),Se=ce("OptionsService"),gr=ce("OscLinkService"),mn=ce("UnicodeService"),Lt=ce("DecorationService"),mi=class{constructor(e,t,i){this._bufferService=e,this._optionsService=t,this._oscLinkService=i}provideLinks(e,t){let i=this._bufferService.buffer.lines.get(e-1);if(!i){t(void 0);return}let s=[],r=this._optionsService.rawOptions.linkHandler,n=new Le,o=i.getTrimmedLength(),l=-1,h=-1,a=!1;for(let d=0;d<o;d++)if(!(h===-1&&!i.hasContent(d))){if(i.loadCell(d,n),n.hasExtendedAttrs()&&n.extended.urlId)if(h===-1){h=d,l=n.extended.urlId;continue}else a=n.extended.urlId!==l;else h!==-1&&(a=!0);if(a||h!==-1&&d===o-1){let c=this._oscLinkService.getLinkData(l)?.uri;if(c){let u={start:{x:h+1,y:e},end:{x:d+(!a&&d===o-1?1:0),y:e}},f=!1;if(!r?.allowNonHttpProtocols)try{let _=new URL(c);["http:","https:"].includes(_.protocol)||(f=!0)}catch{f=!0}f||s.push({text:c,range:u,activate:(_,g)=>r?r.activate(_,g,u):Sn(_,g),hover:(_,g)=>r?.hover?.(_,g,u),leave:(_,g)=>r?.leave?.(_,g,u)})}a=!1,n.hasExtendedAttrs()&&n.extended.urlId?(h=d,l=n.extended.urlId):(h=-1,l=-1)}}t(s)}};mi=Z([k(0,me),k(1,Se),k(2,gr)],mi);function Sn(e,t){if(confirm(`Do you want to navigate to ${t}?
|
|
2
2
|
|
|
3
3
|
WARNING: This link could potentially be dangerous`)){let i=window.open();if(i){try{i.opener=null}catch{}i.location.href=t}else console.warn("Opening link blocked as opener could not be cleared")}}var Qt=ce("CharSizeService"),Ke=ce("CoreBrowserService"),Qi=ce("MouseService"),Ue=ce("RenderService"),wn=ce("SelectionService"),vr=ce("CharacterJoinerService"),ut=ce("ThemeService"),mr=ce("LinkProviderService"),bn=class{constructor(){this.listeners=[],this.unexpectedErrorHandler=function(e){setTimeout(()=>{throw e.stack?gs.isErrorNoTelemetry(e)?new gs(e.message+`
|
|
4
4
|
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
import{r as h,j as e,N as f,t as b,ay as d,K as x,X as j}from"./index-D7Vr3zcV.js";/* empty css */function z({creation:s,training:r,compact:i=!1,onOpenTraining:t}){const[o,g]=h.useState(""),[c,u]=h.useState(""),n=s.state,a=!!r.busyAction;return h.useEffect(()=>{g(""),u("")},[s.id,n]),e.jsxs("section",{className:i?`composer-create-strip ${k(n)} training-create-strip`:"training-approval","aria-label":"Training task status",children:[i?e.jsxs("div",{className:"composer-create-strip-heading",children:[n==="planning"||n==="materializing"||n==="validating"?e.jsx(f,{className:"composer-create-spin",size:15}):n==="failed"?e.jsx(b,{size:15}):e.jsx(d,{size:15}),e.jsx("span",{children:v(n)}),e.jsx("small",{children:"training"})]}):null,n==="awaiting_disclosure_approval"?e.jsxs("div",{className:i?"composer-create-plan-summary":"training-creation-content",children:[i?null:e.jsx("strong",{children:"Review selected evidence with the authoring model?"}),e.jsxs("p",{children:["Approve sends excerpts from ",s.request.sourceIds.length," explicitly selected source",s.request.sourceIds.length===1?"":"s"," to ",s.request.analysisModel?.providerId,"/",s.request.analysisModel?.modelId," so it can propose a Taskset and grader. This does not start training."]}),e.jsxs("div",{className:i?"composer-create-actions":"training-inline-actions",children:[e.jsxs("button",{className:i?void 0:"training-button",disabled:a,onClick:()=>{r.actions.approveDisclosure(s.id,!0)},children:[e.jsx(x,{size:13}),e.jsx("span",{children:"Approve evidence"})]}),e.jsxs("button",{className:i?void 0:"training-button secondary",disabled:a,onClick:()=>{r.actions.approveDisclosure(s.id,!1)},children:[e.jsx(j,{size:13}),e.jsx("span",{children:"Decline"})]}),i&&t?e.jsxs("button",{disabled:a,onClick:t,children:[e.jsx(d,{size:13}),e.jsx("span",{children:"Open Training"})]}):null]})]}):n==="awaiting_materialization_approval"&&s.proposal?e.jsxs("div",{className:i?"composer-create-plan-summary":"training-creation-content",children:[i?null:e.jsx("strong",{children:s.proposal.name}),e.jsx("p",{children:s.proposal.objective}),e.jsxs("div",{className:"training-creation-plan-facts",children:[e.jsx("span",{children:s.proposal.taskKind.replaceAll("_"," ")}),e.jsxs("span",{children:[s.proposal.proposedGraders.length," grader",s.proposal.proposedGraders.length===1?"":"s"]}),e.jsx("span",{children:s.proposal.proposedMethod.replaceAll("_"," ")})]}),s.request.mode==="customize"?e.jsxs("div",{className:"training-question-answer",children:[e.jsx("input",{value:c,onChange:l=>u(l.target.value),placeholder:"Revise tasks, graders, fixtures, or policy"}),e.jsx("button",{className:i?void 0:"training-button secondary",disabled:!c.trim()||a,onClick:async()=>{const l=c;u(""),await r.actions.chatCreation(s.id,l)},children:"Revise"})]}):null,e.jsxs("div",{className:i?"composer-create-actions":"training-inline-actions",children:[e.jsxs("button",{className:i?void 0:"training-button",disabled:a,onClick:()=>{r.actions.materialize(s.id,!0)},children:[e.jsx(x,{size:13}),e.jsx("span",{children:"Materialize Taskset"})]}),t?e.jsxs("button",{className:i?void 0:"training-button secondary",disabled:a,onClick:t,children:[e.jsx(d,{size:13}),e.jsx("span",{children:"Review details"})]}):null,e.jsxs("button",{className:i?void 0:"training-button secondary",disabled:a,onClick:()=>{r.actions.materialize(s.id,!1)},children:[e.jsx(j,{size:13}),e.jsx("span",{children:"Cancel"})]})]})]}):n==="awaiting_questions"?e.jsx("div",{className:i?"composer-create-question":"training-creation-content",children:(()=>{const l=s.blockingQuestions.find(p=>!p.answer);return l?e.jsxs(e.Fragment,{children:[e.jsx("p",{children:l.prompt}),e.jsxs("div",{className:"training-question-answer",children:[e.jsx("input",{value:o,onChange:p=>g(p.target.value)}),e.jsx("button",{className:i?void 0:"training-button",disabled:!o.trim()||a,onClick:()=>{r.actions.answerQuestions(s.id,{[l.id]:o})},children:"Continue"})]})]}):null})()}):e.jsxs("div",{className:i?"composer-create-status-body":"training-creation-content",children:[e.jsx("p",{children:m(s)}),i&&t?e.jsx("div",{className:"composer-create-actions",children:e.jsxs("button",{onClick:t,children:[e.jsx(d,{size:13}),e.jsx("span",{children:"Open Training"})]})}):null]})]})}function C({creation:s}){return e.jsxs("section",{className:"chat-create-receipt","aria-label":"Training status",children:[e.jsxs("div",{className:"chat-create-receipt-heading",children:[e.jsx(d,{size:14}),e.jsx("span",{children:v(s.state)}),e.jsx("small",{children:"training"})]}),e.jsx("p",{children:s.request.objective??m(s)}),e.jsxs("div",{className:"chat-create-receipt-facts",children:[e.jsxs("span",{children:[s.request.sourceIds.length," selected source",s.request.sourceIds.length===1?"":"s"]}),e.jsx("span",{children:s.request.mode==="customize"?"guided plan":"fast draft"})]})]})}function v(s){return s==="awaiting_disclosure_approval"?"Training evidence review":s==="awaiting_materialization_approval"?"Training plan ready":s==="awaiting_questions"?"Training question":s==="materializing"?"Materializing Taskset":s==="ready"?"Taskset ready":s==="failed"?"Training plan failed":s==="cancelled"?"Training plan cancelled":"Preparing training plan"}function m(s){return s.blockedReason?s.blockedReason:s.state==="ready"?"The reviewed Taskset was materialized. Training still requires a separate approval.":s.state==="cancelled"?"Taskset creation was cancelled.":s.state==="planning"?"The authoring model is proposing tasks, graders, fixtures, and policy boundaries.":`Task Creator is ${s.state.replaceAll("_"," ")}.`}function k(s){return s==="ready"?"success":s==="failed"||s==="cancelled"?"danger":s==="awaiting_disclosure_approval"||s==="awaiting_materialization_approval"||s==="awaiting_questions"?"warning":"info"}export{z as TrainingCreationPanel,C as TrainingStatusReceipt};
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
import{j as s,Y as p,aw as x,ax as j}from"./index-D7Vr3zcV.js";/* empty css */function u({training:r,sessionId:t,expanded:i,onOpenTraining:d,onResizeStart:l,onToggleExpanded:o}){const n=r.payload?.sources.filter(e=>e.sessionId===t)??[],c=new Set(n.map(e=>e.id)),a=r.payload?.creations.find(e=>e.request.sourceIds.some(h=>c.has(h)))??null;return s.jsxs("aside",{className:`workspace-diff-panel training-draft-panel ${i?"expanded":""}`,"aria-label":"Training task draft",children:[i?null:s.jsx("div",{className:"workspace-diff-resize-handle",role:"separator","aria-orientation":"vertical","aria-label":"Resize task draft",onPointerDown:l}),s.jsxs("div",{className:"workspace-diff-topbar",children:[s.jsx("div",{className:"workspace-diff-tabs",children:s.jsxs("button",{type:"button",className:"workspace-diff-tab active",children:[s.jsx(p,{size:14}),s.jsx("span",{children:"Task draft"})]})}),s.jsx("div",{className:"workspace-diff-toolbar-actions",children:s.jsx("button",{className:"diff-icon-button",type:"button",onClick:o,"aria-label":i?"Dock task draft":"Expand task draft",children:i?s.jsx(x,{size:14}):s.jsx(j,{size:14})})})]}),s.jsxs("div",{className:"training-draft-body",children:[s.jsx("span",{className:"training-eyebrow",children:"Selected chat"}),s.jsx("h2",{children:n[0]?.title??"Not added to training"}),s.jsxs("dl",{className:"training-definition",children:[s.jsxs("div",{children:[s.jsx("dt",{children:"Sources"}),s.jsx("dd",{children:n.length})]}),s.jsxs("div",{children:[s.jsx("dt",{children:"Status"}),s.jsx("dd",{children:a?.state.replaceAll("_"," ")??"No draft"})]}),s.jsxs("div",{children:[s.jsx("dt",{children:"Method"}),s.jsx("dd",{children:a?.proposal?.proposedMethod??"Pending"})]})]}),a?.proposal?s.jsxs(s.Fragment,{children:[s.jsx("h3",{children:a.proposal.name}),s.jsx("p",{children:a.proposal.objective})]}):s.jsxs("p",{children:["Add this chat with the sidebar action or run ",s.jsx("code",{children:"/train"}),"."]}),a?.blockedReason?s.jsx("p",{className:"training-draft-warning",children:a.blockedReason}):null,s.jsx("button",{className:"training-button secondary",type:"button",onClick:d,children:"Open Training"})]})]})}export{u as TrainingDraftPanel};
|
|
@@ -0,0 +1,14 @@
|
|
|
1
|
+
const __vite__mapDeps=(i,m=__vite__mapDeps,d=(m.f||(m.f=["./WorkspaceMonacoEditor-0trp0-TI.js","./index-D7Vr3zcV.js","./index-8H-GDlM5.css","./WorkspaceMonacoEditor-BwKcXIZw.css"])))=>i.map(i=>d[i]);
|
|
2
|
+
import{d as je,j as e,ay as Ke,aF as js,t as qt,r as l,m as z,aG as ht,aH as mt,N as Ae,T as qn,aI as Vn,s as dt,F as Hn,aJ as Gn,Z as _s,aK as Kn,aL as Qn,K as Zn,X as vs,h as Xn,M as Yn,S as Jn,aM as ea,aw as ta,ax as sa,aN as na,R as ws,aO as Bt,aP as aa,aQ as ia,aR as Ms,aS as ra,aT as la,x as oa,aU as ca,aV as Mt,aW as da,aX as Ot,aY as xe,aZ as ua,a_ as ks,a$ as fa,b0 as pa,b1 as ys,b2 as ha,b3 as ma}from"./index-D7Vr3zcV.js";import{R as Ut}from"./refresh-cw-DE0u_nmZ.js";import{t as xa,a as ga,m as ba,s as ja,d as va,f as wa,b as ka}from"./training-model-data-BXUCzS0p.js";import{I as Ss}from"./info-D0xuy5IB.js";import{S as ya}from"./save-CBIVKaf8.js";const Sa=[["path",{d:"M21 5H3",key:"1fi0y6"}],["path",{d:"M15 12H3",key:"6jk70r"}],["path",{d:"M17 19H3",key:"z6ezky"}]],Na=je("text-align-start",Sa);const Ca=[["path",{d:"m17 11-5-5-5 5",key:"e8nh98"}],["path",{d:"m17 18-5-5-5 5",key:"2avn1x"}]],Ra=je("chevrons-up",Ca);const $a=[["rect",{width:"18",height:"18",x:"3",y:"3",rx:"2",key:"afitv7"}],["path",{d:"M12 3v18",key:"108xh3"}]],Fa=je("columns-2",$a);const Ea=[["path",{d:"M6 22a2 2 0 0 1-2-2V4a2 2 0 0 1 2-2h8a2.4 2.4 0 0 1 1.704.706l3.588 3.588A2.4 2.4 0 0 1 20 8v12a2 2 0 0 1-2 2z",key:"1oefj6"}],["path",{d:"M14 2v5a1 1 0 0 0 1 1h5",key:"wfsgrz"}]],Aa=je("file",Ea);const La=[["rect",{width:"18",height:"18",x:"3",y:"3",rx:"2",key:"afitv7"}],["path",{d:"M3 9h18",key:"1pudct"}]],Pa=je("panel-top",La);const Da=[["path",{d:"m15 14 5-5-5-5",key:"12vg1m"}],["path",{d:"M20 9H9.5A5.5 5.5 0 0 0 4 14.5A5.5 5.5 0 0 0 9.5 20H13",key:"6uklza"}]],Ta=je("redo-2",Da);const _a=[["path",{d:"M9 14 4 9l5-5",key:"102s5s"}],["path",{d:"M4 9h10.5a5.5 5.5 0 0 1 5.5 5.5a5.5 5.5 0 0 1-5.5 5.5H11",key:"f3b9sd"}]],Ma=je("undo-2",_a);function za({createRuntime:t,goalRuntime:s,subagentRuntime:n=null,onRunSubagentLifecycleAction:i}){const a=t?"Create/Improve Details":"Goal Details",d=t?U(t.run.state):n?.activeCount?n.label:s?.actionLabel??"No active goal";return e.jsxs("div",{className:"goal-details-view","aria-label":a,children:[e.jsxs("div",{className:"goal-details-header",children:[e.jsxs("div",{className:"goal-details-title",children:[e.jsx(Ke,{size:15,"aria-hidden":"true"}),e.jsx("span",{children:a})]}),e.jsx("span",{className:`goal-details-state ${ii(t?.run.state??null)}`,children:d})]}),e.jsx("div",{className:"goal-details-body",children:t?e.jsx(Ia,{runtime:t}):s||n?e.jsx(Ba,{goalRuntime:s,subagentRuntime:n,onRunSubagentLifecycleAction:i}):e.jsx(ai,{})})]})}function Ia({runtime:t}){const s=t.run,n=s.plan,i=js(n?.metadata)??js(s.metadata),a=s.questions,d=a.filter(c=>c.status==="pending"),o=s.sourceRefs,u=s.checkRefs,f=s.state,p=s.target.kind==="agent"?s.target.defaultActionKey:null;return e.jsxs(e.Fragment,{children:[e.jsx(O,{title:"Current Work",children:e.jsx(He,{rows:[["State",U(f)],["Operation",s.operation],["Target",U(s.target.kind)],["Name",s.target.displayName??s.target.id??"Pending"],["Target ID",s.target.id??"Pending"],["Default action",p??n?.defaultChatAction.key??"Pending"],["Adapter",U(s.adapter.kind)],["Run",s.id],["Revision",String(s.revision)]]})}),e.jsx(O,{title:"Plan",children:n?e.jsxs(e.Fragment,{children:[e.jsx("p",{className:"goal-details-summary",children:n.summary}),e.jsx(He,{rows:[["Objective",n.objective],["Context",n.capturedContextSummary],["Status",U(n.status)],["Plan ID",n.id],["Run ID",n.runId],["Approval",n.approvalId??"Pending"],["Approved",n.approvedAt??"Not approved"]]})]}):d.length?e.jsx("p",{className:"goal-details-summary",children:"Waiting for answers before the model finalizes the Create plan."}):e.jsx("p",{className:"goal-details-summary",children:"The model is preparing the Create plan."})}),i?e.jsxs(O,{title:"Action Shape",children:[e.jsx(He,{rows:[["Mode",i.label],["Default action",i.defaultActionKey??"None"],["Direct action",i.directActionHint??"None planned"],["Artifacts",i.artifactPolicy]]}),e.jsx("p",{className:"goal-details-note",children:i.detail})]}):null,a.length?e.jsx(O,{title:"Questions",children:e.jsx("div",{className:"goal-details-list",children:a.map(c=>e.jsxs("article",{className:"goal-details-list-item",children:[e.jsxs("div",{children:[e.jsx("strong",{children:c.title}),e.jsx("span",{className:`goal-details-inline-state ${c.status}`,children:U(c.status)})]}),e.jsx("p",{children:c.prompt}),c.answer?e.jsxs("small",{children:["Answer: ",c.answer.label??c.answer.value]}):c.options.length?e.jsxs("small",{children:["Options: ",c.options.map(g=>g.label).join(", ")]}):null]},c.id))})}):null,n?.requirements.length?e.jsx(O,{title:"Setup Requirements",children:e.jsx("div",{className:"goal-details-list",children:n.requirements.map(c=>e.jsxs("article",{className:"goal-details-list-item",children:[e.jsxs("div",{children:[e.jsx("strong",{children:c.name}),e.jsx("span",{className:`goal-details-inline-state ${c.status}`,children:U(c.status)})]}),e.jsxs("small",{children:[U(c.kind),c.detail?`: ${c.detail}`:""]})]},`${c.kind}:${c.name}`))})}):null,n?.sourcePlan.length?e.jsx(O,{title:"Source Plan",children:e.jsx(ct,{refs:n.sourcePlan.map(c=>({id:`${c.operation}:${c.path}`,primary:c.path,secondary:`${U(c.operation)}: ${c.reason}`}))})}):null,n?.checks.length?e.jsx(O,{title:"Checks",children:e.jsx(ct,{refs:n.checks.map(c=>({id:c.name,primary:c.name,secondary:`${c.required?"Required":"Optional"}: ${c.command}`}))})}):null,o.length||u.length?e.jsx(O,{title:"Run Refs",children:e.jsx(ct,{refs:[...o.map(c=>({id:`source:${c}`,primary:c,secondary:"Source ref"})),...u.map(c=>({id:`check:${c}`,primary:c,secondary:"Check ref"}))]})}):null,e.jsx(Wa,{run:s}),s.blockedReason?e.jsx(O,{title:"Blocked",children:e.jsxs("div",{className:"goal-details-alert",children:[e.jsx(qt,{size:15}),e.jsx("span",{children:s.blockedReason})]})}):null,e.jsx(O,{title:"Raw State",children:e.jsxs("details",{className:"goal-details-raw",children:[e.jsx("summary",{children:"Show structured payload"}),e.jsx("pre",{children:JSON.stringify(s,null,2)})]})})]})}function Wa({run:t}){const s=[...t.context.attachments.map(a=>({id:`attachment:${a.id??a.name}`,primary:a.name,secondary:a.ref??a.mediaType??"Attachment"})),...t.context.apps.map(a=>({id:`app:${a.id}`,primary:a.name,secondary:a.required?"Required app context":"Optional app context"})),...t.context.tools.map(a=>({id:`tool:${a.name}`,primary:a.name,secondary:a.outputSummary??a.inputSummary??"Tool context"})),...t.context.targetRepoAssumptions.map(a=>({id:`target:${a}`,primary:a,secondary:"Target assumption"}))],n=t.workflowCapture,i=n?[...n.files.map(a=>({id:`workflow-file:${a}`,primary:a,secondary:"Captured file"})),...n.outputArtifacts.map(a=>({id:`workflow-artifact:${a}`,primary:a,secondary:"Output artifact"})),...n.traceRefs.map(a=>({id:`workflow-trace:${a}`,primary:a,secondary:"Trace"}))]:[];return!s.length&&!i.length?null:e.jsx(O,{title:"Context",children:e.jsx(ct,{refs:[...s,...i]})})}function Ba({goalRuntime:t,subagentRuntime:s,onRunSubagentLifecycleAction:n}){return e.jsxs(e.Fragment,{children:[t?e.jsxs(O,{title:"Goal",children:[e.jsx("p",{className:"goal-details-summary",children:t.objective}),e.jsx(He,{rows:[["Status",t.actionLabel],["Runtime",t.timeLabel],["Detail",t.detail]]})]}):null,s?e.jsx(Oa,{runtime:s,onRunSubagentLifecycleAction:n}):null,e.jsx(O,{title:"Raw State",children:e.jsxs("details",{className:"goal-details-raw",children:[e.jsx("summary",{children:"Show structured payload"}),e.jsx("pre",{children:JSON.stringify({goalRuntime:t,subagentRuntime:s},null,2)})]})})]})}function Oa({runtime:t,onRunSubagentLifecycleAction:s}){const[n,i]=l.useState(null),[a,d]=l.useState(null),o=async(u,f)=>{if(!s)return;const p=`${u}:${f}`;i(p),d(null);try{await s({runId:u,action:f})}catch(c){d(c instanceof Error?c.message:String(c))}finally{i(c=>c===p?null:c)}};return e.jsxs(e.Fragment,{children:[e.jsxs(O,{title:"Subagents",children:[e.jsx(He,{rows:[["Background check",Qa(t)],["Latest update",Za(t)],["Active",String(t.activeCount)],["Blocked",String(t.blockedCount)],["Failed",String(ot(t,["failed","failed_with_artifacts"]))],["Cancelled",String(ot(t,["cancelled"]))],["Unresolved",String(t.unresolvedCount)],["Terminal",String(t.terminalCount)],["Archived",String(t.archivedCount)],["Review submitted",String(t.submittedCount)],["Review revision",String(t.needsRevisionCount)],["Review user input",String(t.needsUserInputCount)],["Review failed artifacts",String(t.failedWithArtifactsCount)],["Review accepted",String(t.acceptedCount)],["Required active",String(t.requiredActiveCount)],["Required submitted",String(t.requiredSubmittedForReviewCount)],["Required revision",String(t.requiredNeedsRevisionCount)],["Required user input",String(t.requiredNeedsUserInputCount)],["Required blocking",String(t.requiredBlockingCount)],["Required failed",String(ot(t,["failed","failed_with_artifacts"],!0))],["Required cancelled",String(ot(t,["cancelled"],!0))],["Required accepted",String(t.requiredAcceptedCount)],["Required terminal",String(t.requiredTerminalCount)],["Required archived",String(t.requiredArchivedCount)],["Required unresolved",String(t.requiredUnresolvedCount)],["Usage",Ja(t.usage.totalTokens,t.usage.requestCount)],["Evidence",String(t.evidenceRefs.length)],["Checks",String(t.testsRunCount)]]}),t.blockers.length>0?e.jsx("ul",{className:"goal-details-list compact",children:t.blockers.slice(0,4).map(u=>e.jsxs("li",{className:"goal-details-list-item",children:[e.jsx("span",{className:`goal-details-inline-state ${u.status}`,children:u.status}),e.jsxs("div",{children:[e.jsx("strong",{children:Qe(u.roleId)}),e.jsx("p",{children:u.message})]})]},`${u.runId}:${u.message}`))}):null,e.jsx("ul",{className:"goal-details-list",children:t.runs.slice(0,8).map(u=>e.jsxs("li",{className:"goal-details-list-item",children:[e.jsx("span",{className:`goal-details-inline-state ${u.status}`,children:u.status}),e.jsxs("div",{children:[e.jsx("strong",{children:Qe(u.roleId)}),e.jsx("p",{children:u.objective}),u.report?.summary?e.jsx("small",{children:u.report.summary}):null,s?e.jsx(qa,{pendingAction:n,run:u,onRun:o}):null]})]},u.id))}),a?e.jsxs("div",{className:"goal-details-alert",children:[e.jsx(qt,{size:15}),e.jsx("span",{children:a})]}):null]}),t.finalResults.length>0?e.jsx(Ua,{results:t.finalResults}):null,t.taskGraph.nodes.length>0?e.jsx(Xa,{runtime:t}):null]})}function Ua({results:t}){return e.jsx(O,{title:"Child Results",children:e.jsx("ol",{className:"goal-details-task-graph",children:t.slice(0,6).map(s=>e.jsxs("li",{className:"goal-details-task-node",children:[e.jsxs("div",{className:"goal-details-task-node-header",children:[e.jsx("span",{className:`goal-details-inline-state ${s.status}`,children:s.status}),e.jsxs("div",{children:[e.jsx("strong",{children:Qe(s.roleId)}),e.jsx("small",{children:s.objective})]})]}),e.jsx("p",{children:s.summary}),e.jsxs("div",{className:"goal-details-task-node-meta",children:[e.jsx("span",{children:s.required?"Required":"Optional"}),e.jsxs("span",{children:[s.refs.length," refs"]}),e.jsxs("span",{children:[s.testsRun.length+s.validationAttempts.length," checks"]}),e.jsxs("span",{children:[s.blockers.length," blockers"]}),e.jsx("span",{children:s.confidence?`${U(s.confidence)} confidence`:"Confidence unknown"}),e.jsxs("span",{children:[U(s.packetQualityStatus)," packet"]}),e.jsx("span",{children:s.independentReviewRecommended?"Independent review recommended":"Parent review"})]}),s.findings.length>0?e.jsxs("small",{children:["Findings: ",ie(s.findings,3)]}):null,s.changedFiles.length>0?e.jsxs("small",{children:["Files: ",ie(s.changedFiles,4)]}):null,s.testsRun.length>0?e.jsxs("small",{children:["Tests: ",ie(s.testsRun,3)]}):null,s.validationAttempts.length>0?e.jsxs("small",{children:["Validation: ",ie(s.validationAttempts,2)]}):null,Ns(s)?e.jsxs("small",{children:["Packet evidence: ",Ns(s)]}):null,s.reviewerRoutingReasons.length>0?e.jsxs("small",{children:["Review routing: ",ie(s.reviewerRoutingReasons.map(U),3)]}):null,s.refs.length>0?e.jsxs("small",{children:["Refs: ",ie(s.refs.map(ei),4)]}):null,s.blockers.length>0?e.jsxs("small",{children:["Blockers: ",ie(s.blockers,3)]}):null,s.workspaceRetention?e.jsxs("small",{children:["Workspace: ",si(s.workspaceRetention)]}):null,s.importantMessages.length>0?e.jsxs("small",{children:["Messages: ",ie(s.importantMessages.map(ti),2)]}):null]},s.runId))})})}function qa({pendingAction:t,run:s,onRun:n}){const i=Va(s);return i.length===0?null:e.jsx("div",{className:"goal-details-actions",children:i.map(a=>{const d=`${s.id}:${a}`,o=t===d;return e.jsx("button",{type:"button",disabled:!!t,onClick:()=>{n(s.id,a)},children:o?"Working...":Ha(a)},a)})})}function Va(t){const s=[],n=Ga(t),i=Ka(t);return n&&s.push("cleanup"),i&&s.push("archive"),s}function Ha(t){return t==="cleanup"?"Clean":t==="archive"?"Archive":"Clean + archive"}function Ga(t){if(!zs(t))return!1;const s=Ge(t.metadata);if(!s?.subagentWorkspace&&!s?.workspaceHandoff)return!1;const n=Ge(s.lifecycleCleanup),i=Ge(n?.workspaceCleanup),a=Ws(i?.status);return a!=="removed"&&a!=="deleted"&&a!=="retained"&&a!=="skipped"}function Ka(t){if(!t.childSessionId||!zs(t))return!1;const s=Ge(Ge(t.metadata)?.childSessionArchive),n=Ws(s?.status);return n!=="archived"&&n!=="already_archived"}function zs(t){return t.status==="accepted"||t.status==="completed"||t.status==="failed_with_artifacts"||t.status==="failed"||t.status==="cancelled"||t.status==="superseded"||t.review?.status==="accepted"}function Qa(t){if(!t.watcher)return"Not checked";const s=t.watcher.wakeQueued?"parent wake queued":t.watcher.wakePolicy==="not_waking_parent_for_routine_tick"?"routine check":t.watcher.wakePolicy?U(t.watcher.wakePolicy):"no parent wake",n=t.watcher.staleCount>0?` · ${t.watcher.staleCount} stale`:"";return`${Is(t.watcher.checkedAt)} · ${s}${n}`}function Za(t){const s=t.latestMeaningfulUpdate;return s?`${Qe(s.roleId)} ${s.status}: ${s.message}`:"No structured update"}function ot(t,s,n=!1){const i=new Set(s);return t.runs.filter(a=>(!n||a.required)&&i.has(a.status)).length}function Xa({runtime:t}){const s=new Map;for(const n of t.taskGraph.edges){const i=s.get(n.toRunId)??[];i.push(n),s.set(n.toRunId,i)}return e.jsx(O,{title:"Task Graph",children:e.jsx("ol",{className:"goal-details-task-graph",children:t.taskGraph.nodes.map(n=>{const i=s.get(n.runId)??[];return e.jsxs("li",{className:"goal-details-task-node",children:[e.jsxs("div",{className:"goal-details-task-node-header",children:[e.jsx("span",{className:`goal-details-inline-state ${n.status}`,children:n.status}),e.jsxs("div",{children:[e.jsx("strong",{children:Qe(n.roleId)}),e.jsxs("small",{children:[n.modelLabel," · ",n.isolationLabel]})]})]}),e.jsx("p",{children:n.objective}),e.jsxs("div",{className:"goal-details-task-node-meta",children:[e.jsx("span",{children:n.required?"Required":"Optional"}),e.jsxs("span",{children:[n.evidenceCount," evidence"]}),e.jsxs("span",{children:[n.testsRunCount," checks"]}),e.jsxs("span",{children:[n.blockerCount," blockers"]})]}),i.length>0?e.jsx("div",{className:"goal-details-task-edges",children:i.slice(0,3).map(a=>e.jsx("span",{children:Ya(a.fromRunId,a.label,t.sessionId)},a.id))}):null,n.summary?e.jsx("small",{children:n.summary}):null]},n.runId)})})})}function Ya(t,s,n){return t===`parent:${n}`?`Parent ${s.toLowerCase()}`:t.startsWith("parent:")?`Parent ${s.toLowerCase()}`:`${t} ${s.toLowerCase()}`}function Ja(t,s){if(t<=0&&s<=0)return"0 tokens";const n=`${s} ${s===1?"request":"requests"}`;return`${ni(t)} tokens · ${n}`}function Qe(t){return t.slice(0,1).toUpperCase()+t.slice(1).replace(/[-_]+/g," ")}function ei(t){return`${t.kind}: ${t.label}`}function ti(t){return`${U(t.kind)}: ${t.body}`}function Ns(t){const s=t.packetQualityEvidence,n=[t.packetQualityStatus!=="reviewable"?U(t.packetQualityStatus):null,s.finalSummaryPresent?null:"summary missing",s.requestedValidationCommandCount>0&&s.validationAttemptCount+s.testsRunCount===0?"validation missing":null,s.failedValidationCount>0?`${s.failedValidationCount} failed validation`:null,s.unvalidatedWorkspaceChanges?"unvalidated workspace changes":null,s.changedFileCount>0?`${s.changedFileCount} changed ${s.changedFileCount===1?"file":"files"}`:null].filter(Boolean);return n.length>0?ie(n,4):null}function si(t){const s=t.expiresAt?`until ${Is(t.expiresAt)}`:"for inspection",n=t.trigger?` · ${U(t.trigger)}`:"";return`retained ${s}${n}`}function ie(t,s){const n=t.slice(0,s),i=t.length-n.length;return i>0?`${n.join(", ")} +${i}`:n.join(", ")}function ni(t){if(t<1e3)return String(t);if(t>=1e6){const n=t/1e6;return`${Cs(n,n<10?2:1)}M`}const s=t/1e3;return`${Cs(s,s<10?1:0)}k`}function Is(t){const s=new Date(t);return Number.isNaN(s.getTime())?t:s.toLocaleString([],{month:"short",day:"numeric",hour:"numeric",minute:"2-digit"})}function Cs(t,s){return t.toFixed(s).replace(/\.0+$/,"").replace(/(\.\d*?)0+$/,"$1")}function ai(){return e.jsxs("div",{className:"goal-details-empty",children:[e.jsx(Ke,{size:18}),e.jsx("span",{children:"No active Goal or Create workflow."})]})}function O({children:t,title:s}){return e.jsxs("section",{className:"goal-details-section",children:[e.jsx("h2",{children:s}),t]})}function He({rows:t}){return e.jsx("dl",{className:"goal-details-grid",children:t.map(([s,n])=>e.jsxs("div",{children:[e.jsx("dt",{children:s}),e.jsx("dd",{children:n})]},s))})}function ct({refs:t}){return e.jsx("ul",{className:"goal-details-ref-list",children:t.map(s=>e.jsxs("li",{children:[e.jsx("code",{title:s.primary,children:s.primary}),e.jsx("span",{children:s.secondary})]},s.id))})}function Ge(t){return t&&typeof t=="object"&&!Array.isArray(t)?t:null}function Ws(t){return typeof t=="string"&&t.trim()?t.trim():null}function U(t){return t.split(/[_-]/g).filter(Boolean).map(s=>s.charAt(0).toUpperCase()+s.slice(1)).join(" ")}function ii(t){return t==="ready_local"||t==="published_hosted"?"success":t==="blocked"||t==="failed"||t==="cancelled"?"danger":t==="awaiting_questions"||t==="awaiting_plan_approval"?"warning":"active"}function ri({sandboxId:t,connection:s}){const[n,i]=l.useState(null),[a,d]=l.useState([]),[o,u]=l.useState(null),[f,p]=l.useState(null),[c,g]=l.useState(null),[w,k]=l.useState(null),C=n?.integrationLeases??[],I=l.useMemo(()=>a.filter(x=>x.status==="active"),[a]),T=l.useMemo(()=>oi(n),[n]),_=l.useCallback(async()=>{if(!s){g("OpenPond App server is not connected.");return}if(!t){i(null),d([]),g(null);return}u("summary"),g(null);try{const x=await z.sandbox(s,t),N=await z.integrationConnections(s,Rs(x.sandbox));i(x.sandbox),d(N.connections),k(null)}catch(x){g(x instanceof Error?x.message:String(x))}finally{u(null)}},[s,t]),q=l.useCallback(async()=>{if(!(!s||!n)){p("load"),k(null);try{const[x,N]=await Promise.all([z.integrationConnections(s,Rs(n)),z.sandboxIntegrationLeases(s,n.id)]);d(x.connections),i(N.sandbox)}catch(x){k(x instanceof Error?x.message:String(x))}finally{p(null)}}},[s,n]),W=l.useCallback(async x=>{if(!s||!n)return;const N=ht(x.provider),M=N?mt(N):null,P=M?.leasePolicy.allowedCapabilityIds??[];if(!N||!M?.leasePolicy.leaseable||P.length===0){k(`${J(x.provider)} cannot be attached to this sandbox.`);return}p(`attach:${x.id}`),k(null);try{const E=await z.attachSandboxIntegrationConnection(s,n.id,{connectionId:x.id,provider:x.provider,capabilities:P,...x.scopes.length>0?{scopes:x.scopes}:{},...M.leasePolicy.defaultTtlSeconds?{ttlSeconds:M.leasePolicy.defaultTtlSeconds}:{},required:!1});i(E.sandbox)}catch(E){k(E instanceof Error?E.message:String(E))}finally{p(null)}},[s,n]),G=l.useCallback(async x=>{if(!(!s||!n)){p(`remove:${x}`),k(null);try{const N=await z.removeSandboxIntegrationLease(s,n.id,x);i(N.sandbox)}catch(N){k(N instanceof Error?N.message:String(N))}finally{p(null)}}},[s,n]);return l.useEffect(()=>{_()},[_]),t?e.jsxs("div",{className:"sandbox-summary-tab",children:[e.jsxs("section",{className:"sandbox-workspace-section",children:[e.jsxs("div",{className:"sandbox-workspace-heading",children:[e.jsx("h3",{children:"Sandbox"}),e.jsxs("div",{className:"sandbox-workspace-heading-actions",children:[n?e.jsx("span",{children:n.state}):null,e.jsx("button",{type:"button",className:"diff-icon-button",title:"Refresh summary","aria-label":"Refresh summary",disabled:o!==null,onClick:()=>{_()},children:o==="summary"?e.jsx(Ae,{className:"spinning",size:14}):e.jsx(Ut,{size:14})})]})]}),c?e.jsx("div",{className:"sandbox-workspace-error",children:c}):null,n?e.jsxs("dl",{className:"sandbox-workspace-kv",children:[e.jsxs("div",{children:[e.jsx("dt",{children:"Sandbox"}),e.jsx("dd",{children:$s(n.id)})]}),e.jsxs("div",{children:[e.jsx("dt",{children:"Runtime"}),e.jsx("dd",{children:n.runtimeDriver})]}),e.jsxs("div",{children:[e.jsx("dt",{children:"Spend"}),e.jsxs("dd",{children:[zt(n.reservation.capturedUsd)," / ",zt(n.budget.maxUsd)]})]}),e.jsxs("div",{children:[e.jsx("dt",{children:"Reservation"}),e.jsx("dd",{children:n.reservation.status})]}),e.jsxs("div",{children:[e.jsx("dt",{children:"Idle cleanup"}),e.jsx("dd",{children:n.quotas?.idleTimeoutSeconds?`${Math.round(n.quotas.idleTimeoutSeconds/60)} min`:"-"})]}),e.jsxs("div",{children:[e.jsx("dt",{children:"Updated"}),e.jsx("dd",{children:Bs(n.updatedAt)})]}),T?e.jsxs("div",{children:[e.jsx("dt",{children:"Receipt"}),e.jsxs("dd",{children:[$s(T.id)," / ",zt(T.totalUsd)]})]}):null]}):e.jsxs("div",{className:"sandbox-workspace-loading",children:[o==="summary"?e.jsx(Ae,{className:"spinning",size:16}):null,e.jsx("span",{children:o==="summary"?"Loading sandbox":"Sandbox unavailable"})]})]}),e.jsxs("section",{className:"sandbox-workspace-section",children:[e.jsxs("div",{className:"sandbox-workspace-heading",children:[e.jsx("h3",{children:"Integrations"}),e.jsxs("div",{className:"sandbox-workspace-heading-actions",children:[e.jsx("span",{children:C.length}),e.jsx("button",{type:"button",className:"diff-icon-button",title:"Refresh integrations","aria-label":"Refresh integrations",disabled:f!==null||!n,onClick:()=>{q()},children:f==="load"?e.jsx(Ae,{className:"spinning",size:14}):e.jsx(Ut,{size:14})})]})]}),w?e.jsx("div",{className:"sandbox-workspace-error",children:w}):null,C.length>0?e.jsx("div",{className:"sandbox-workspace-integration-list",children:C.map(x=>e.jsxs("div",{className:"sandbox-workspace-integration-row",children:[e.jsxs("div",{className:"sandbox-workspace-integration-main",children:[e.jsx("span",{children:J(x.provider)}),e.jsxs("small",{children:[x.required?"required":"optional"," / ",ui(x)," / ",li(x)]})]}),e.jsx("button",{type:"button",className:"diff-icon-button",title:`Revoke ${J(x.provider)} lease`,"aria-label":`Revoke ${J(x.provider)} lease`,disabled:f!==null,onClick:()=>{G(x.leaseId)},children:f===`remove:${x.leaseId}`?e.jsx(Ae,{className:"spinning",size:14}):e.jsx(qn,{size:14})}),e.jsxs("div",{className:"sandbox-workspace-chip-row",children:[x.capabilities.slice(0,5).map(N=>e.jsx("span",{children:di(x.provider,N)},N)),x.capabilities.length>5?e.jsxs("span",{children:["+",x.capabilities.length-5]}):null]})]},x.leaseId))}):e.jsx("p",{className:"sandbox-workspace-empty",children:"No active integration leases."}),I.length>0?e.jsx("div",{className:"sandbox-workspace-integration-list",children:I.map(x=>{const N=C.some(E=>E.provider===x.provider),P=ci(x)?.leasePolicy.allowedCapabilityIds.length??0;return e.jsxs("div",{className:"sandbox-workspace-integration-row compact",children:[e.jsxs("div",{className:"sandbox-workspace-integration-main",children:[e.jsx("span",{children:fi(x)}),e.jsx("small",{children:pi(x,P)})]}),e.jsx("button",{type:"button",className:"diff-icon-button",title:N?`${J(x.provider)} already attached`:`Attach ${J(x.provider)}`,"aria-label":N?`${J(x.provider)} already attached`:`Attach ${J(x.provider)}`,disabled:N||f!==null||P===0,onClick:()=>{W(x)},children:f===`attach:${x.id}`?e.jsx(Ae,{className:"spinning",size:14}):e.jsx(Vn,{size:14})})]},x.id)})}):e.jsx("p",{className:"sandbox-workspace-empty",children:"No connected accounts available."})]})]}):e.jsx("div",{className:"sandbox-summary-tab",children:e.jsx("p",{className:"sandbox-workspace-empty",children:"No sandbox is attached yet."})})}function Rs(t){return{status:"active"}}function li(t){return t.proxyUrl?"runtime proxy available":"metadata only, no runtime proxy"}function oi(t){return t?.receipts?.at(-1)??null}function ci(t){const s=ht(t.provider);return s?mt(s):null}function J(t){const s=ht(t),n=s?mt(s):null;return n?n.label:t==="microsoft_teams"?"Microsoft Teams":t?t.replace(/_/g," "):"Integration"}function di(t,s){const n=ht(t);return(n?mt(n):null)?.capabilities.find(a=>a.id===s)?.label??s}function ui(t){return t.expiresAt?`expires ${Bs(t.expiresAt)}`:"active"}function fi(t){const s=t.providerAccountName?.trim();return s?`${J(t.provider)} / ${s}`:J(t.provider)}function pi(t,s){const n=[];return t.providerWorkspaceName&&n.push(t.providerWorkspaceName),n.push(`${s} lease ${s===1?"capability":"capabilities"}`),t.scopes.length>0&&n.push(`${t.scopes.length} ${t.scopes.length===1?"scope":"scopes"}`),n.join(" / ")}function $s(t){return t.length>10?`${t.slice(0,8)}...`:t}function Bs(t){if(!t)return"-";const s=new Date(t);return Number.isNaN(s.valueOf())?"-":new Intl.DateTimeFormat(void 0,{month:"short",day:"numeric",hour:"numeric",minute:"2-digit"}).format(s)}function zt(t){const s=Number(t??0);return new Intl.NumberFormat("en-US",{style:"currency",currency:"USD",maximumFractionDigits:s>=10?2:4}).format(Number.isFinite(s)?s:0)}function hi({summary:t}){const s=xa(t.taskset),n=t.taskset.learningSignals.demonstrations.filter(o=>o.approved).length,i=t.taskset.tasks.filter(o=>o.split==="frozen_eval").length,a=t.plan?.recipe.method==="sft"||t.plan?.recipe.method==="grpo"?t.plan.recipe:null,d=ga(t.taskset,t.plan);return e.jsxs("div",{className:"training-sidebar-summary",children:[e.jsxs("header",{children:[e.jsx("h2",{children:ba(t.taskset.name)}),e.jsx("span",{children:t.job?ja(t.job.status):t.taskset.readiness?.ready?"Ready to train":"Needs review"})]}),e.jsxs("section",{children:[e.jsx("h3",{children:"Run"}),e.jsxs("dl",{children:[e.jsx(B,{label:"Primary recommendation",value:s.toUpperCase()}),e.jsx(B,{label:"Training stage",value:d}),e.jsx(B,{label:"Base model",value:a?.baseModel.id??"Not selected"}),e.jsx(B,{label:"Compute",value:t.plan?va(t.plan.destinationId):"Not selected"}),e.jsx(B,{label:"Started",value:wa(t.job?.startedAt??null)}),e.jsx(B,{label:"Duration",value:ka(t.job?.startedAt??null,t.job?.completedAt??null)})]})]}),e.jsxs("section",{children:[e.jsx("h3",{children:"Data"}),e.jsxs("dl",{children:[e.jsx(B,{label:"Training examples",value:String(n)}),e.jsx(B,{label:"Test examples",value:String(i)}),e.jsx(B,{label:"Dataset sources",value:String(t.taskset.sourceRefs.length)})]})]}),a?e.jsxs("section",{children:[e.jsx("h3",{children:"Recipe"}),e.jsxs("dl",{children:[e.jsx(B,{label:"LoRA rank",value:String(a.lora.rank)}),e.jsx(B,{label:"Learning rate",value:String(a.optimizer.learningRate)}),e.jsx(B,{label:a.method==="grpo"?"Prompts per update":"Steps",value:String(a.optimizer.maxSteps)}),e.jsx(B,{label:a.method==="grpo"?"Prompt length":"Sequence length",value:String(a.method==="grpo"?a.dataset.maxPromptTokens:a.dataset.maxSequenceLength)})]})]}):null,e.jsxs("section",{children:[e.jsx("h3",{children:"Result"}),e.jsxs("dl",{children:[e.jsx(B,{label:"Adapter",value:t.lineage?`${d} ready`:"Not created"}),e.jsx(B,{label:"Evaluation",value:t.lineage?.frozenEvaluationArtifactId?"Completed":"Not completed"}),e.jsx(B,{label:"Artifacts",value:String(t.artifacts.length)})]})]})]})}function B({label:t,value:s}){return e.jsxs("div",{children:[e.jsx("dt",{children:t}),e.jsx("dd",{children:s})]})}function mi(t){const s=Fs("","","folder");for(const n of t){const i=n.endsWith("/"),a=n.split("/").filter(Boolean);if(a.length===0)continue;let d=s,o="";for(let u=0;u<a.length;u+=1){const f=a[u];o=o?`${o}/${f}`:f;const p=!i&&u===a.length-1?"file":"folder",c=`${p}:${f}`;let g=d.childMap.get(c);g||(g=Fs(f,o,p),d.childMap.set(c,g),d.children.push(g)),d=g}}return Os(s.children)}function Fs(t,s,n){return{name:t,path:s,type:n,children:[],childMap:new Map}}function Os(t){return t.sort((s,n)=>s.type!==n.type?s.type==="folder"?-1:1:s.name.localeCompare(n.name)).map(s=>({name:s.name,path:s.path,type:s.type,children:Os(s.children)}))}function xi({changedByPath:t,expandedFolderPaths:s,rootPath:n,repoFiles:i,selectedPath:a,onOpenFile:d,onToggleFolder:o}){const u=l.useMemo(()=>mi(i),[i]);return e.jsxs("div",{className:"workspace-file-tree-view",children:[e.jsxs("div",{className:"workspace-file-tree-header",children:[e.jsx(dt,{size:14}),e.jsx("strong",{title:n??void 0,children:n?n.split("/").at(-1):"Files"}),e.jsx("span",{children:i.length})]}),e.jsx("div",{className:"workspace-file-tree",children:u.map(f=>e.jsx(Us,{changedByPath:t,expandedFolderPaths:s,node:f,rootPath:n,selectedPath:a,onOpenFile:d,onToggleFolder:o},`${f.type}:${f.path}`))})]})}function Us({changedByPath:t,depth:s=0,expandedFolderPaths:n,node:i,rootPath:a,selectedPath:d,onOpenFile:o,onToggleFolder:u}){const f=a?`${a}/${i.path}`:i.path,p=i.type==="folder"&&n.has(f),c=t.get(f),g=2+s*11;return i.type==="folder"?e.jsxs("div",{className:"workspace-file-tree-node",children:[e.jsxs("button",{type:"button",className:"workspace-file-tree-row folder","aria-expanded":p,style:{paddingLeft:g},onClick:()=>u(f),children:[p?e.jsx(dt,{size:14}):e.jsx(Hn,{size:14}),e.jsx("span",{children:i.name})]}),p&&i.children.map(w=>e.jsx(Us,{changedByPath:t,depth:s+1,expandedFolderPaths:n,node:w,rootPath:a,selectedPath:d,onOpenFile:o,onToggleFolder:u},`${w.type}:${w.path}`))]}):e.jsxs("button",{type:"button",className:`workspace-file-tree-row file ${c?"changed":""} ${d===f?"selected":""}`,style:{paddingLeft:g},onClick:()=>o(f),children:[e.jsx(Aa,{size:13}),e.jsx("span",{children:i.name}),c&&e.jsxs("small",{children:[e.jsxs("span",{className:"diff-addition",children:["+",c.additions]}),e.jsxs("span",{className:"diff-deletion",children:["-",c.deletions]})]})]})}function Es({diff:t,expandedFolderPaths:s,rootPath:n,repoFiles:i,selectedPath:a,onOpenFile:d,onToggleFolder:o}){const u=t?.files??[],f=l.useMemo(()=>new Map(u.map(g=>[g.path,g])),[u]),p=n?.replace(/^\/+|\/+$/g,"")||null,c=l.useMemo(()=>{if(!p)return i;const g=`${p}/`;return i.filter(w=>w.startsWith(g)).map(w=>w.slice(g.length)).filter(Boolean)},[p,i]);return e.jsx("div",{className:"workspace-diff-files-view",children:e.jsx(xi,{changedByPath:f,expandedFolderPaths:s,rootPath:p,repoFiles:c,selectedPath:a,onOpenFile:d,onToggleFolder:o})})}function gi({collapsed:t,editorControlsVisible:s,hideWhiteSpace:n,loadFullFiles:i,renderMarkdown:a,wordDiffs:d,wordWrap:o,onClose:u,onCopyGitApply:f,onRefresh:p,onToggleCollapsed:c,onToggleEditorControlsVisible:g,onToggleHideWhiteSpace:w,onToggleLoadFullFiles:k,onToggleRenderMarkdown:C,onToggleWordDiffs:I,onToggleWordWrap:T}){return e.jsxs("div",{className:"workspace-diff-options-menu",role:"menu",children:[e.jsx(ae,{icon:e.jsx(Ut,{size:14}),label:"Refresh",onClick:p,onClose:u}),e.jsx(ae,{checked:o,icon:e.jsx(Gn,{size:14}),label:"Enable word wrap",onClick:T,onClose:u}),e.jsx(ae,{checked:t,icon:e.jsx(Ra,{size:14}),label:"Collapse all diffs",onClick:c,onClose:u}),e.jsx("div",{className:"workspace-diff-menu-divider"}),e.jsx(ae,{checked:s,icon:e.jsx(Pa,{size:14}),label:"Show editor controls",onClick:g,onClose:u}),e.jsx(ae,{checked:a,icon:e.jsx(_s,{size:14}),label:"Render Markdown",onClick:C,onClose:u}),e.jsx(ae,{checked:!i,icon:e.jsx(Ke,{size:14}),label:"Show diffs first",onClick:k,onClose:u}),e.jsx(ae,{checked:d,icon:e.jsx(Na,{size:14}),label:"Enable word diffs",onClick:I,onClose:u}),e.jsx(ae,{checked:n,icon:e.jsx(Kn,{size:14}),label:"Hide white space",onClick:w,onClose:u}),e.jsx(ae,{icon:e.jsx(Qn,{size:14}),label:"Copy git apply command",onClick:f,onClose:u})]})}function ae({checked:t,icon:s,label:n,onClick:i,onClose:a}){return e.jsxs("button",{type:"button",role:"menuitem",onClick:()=>{i?.(),a()},children:[s,e.jsx("span",{children:n}),t&&e.jsx(Zn,{size:14})]})}function bi({addMenuOpen:t,expanded:s,filteredFiles:n,dirtyFilePaths:i,openFiles:a,goalDetailsAvailable:d,searchOpen:o,searchQuery:u,selectedPath:f,sideChatTabs:p=[],summaryAvailable:c,sourceStatus:g,sourceSwitcher:w,visibleTab:k,onCloseFileTab:C,onCloseSideChat:I,onCloseSearch:T,onOpenFile:_,onOpenBrowser:q,onOpenSearch:W,onOpenSideChat:G,onSearchQueryChange:x,onSelectFile:N,onSelectFiles:M,onSelectGoal:P,onSelectSummary:E,onSelectSideChat:X,onToggleAddMenu:D,onToggleExpanded:H}){const K=l.useRef(null);l.useEffect(()=>{if(!t&&!o)return;function b(){t&&D(),o&&T()}function A(Pe){K.current?.contains(Pe.target)||b()}function Ze(Pe){Pe.key==="Escape"&&b()}return document.addEventListener("pointerdown",A),document.addEventListener("keydown",Ze),()=>{document.removeEventListener("pointerdown",A),document.removeEventListener("keydown",Ze)}},[t,T,D,o]);function te(b){if(b.key==="Escape"){T();return}b.key==="Enter"&&n[0]&&_(n[0])}return e.jsxs("div",{className:"workspace-diff-topbar",children:[e.jsxs("div",{className:"workspace-diff-tabs",role:"tablist","aria-label":"Right sidebar views",children:[d?e.jsxs("button",{type:"button",className:`workspace-diff-tab ${k==="goal"?"active":""}`,role:"tab","aria-selected":k==="goal",onClick:P,children:[e.jsx(Ke,{size:14}),e.jsx("span",{children:"Goal"})]}):null,c&&E?e.jsxs("button",{type:"button",className:`workspace-diff-tab ${k==="summary"?"active":""}`,role:"tab","aria-selected":k==="summary",onClick:E,children:[e.jsx(Ss,{size:14}),e.jsx("span",{children:"Summary"})]}):null,e.jsxs("button",{type:"button",className:`workspace-diff-tab ${k==="files"?"active":""}`,role:"tab","aria-selected":k==="files",onClick:M,children:[e.jsx(dt,{size:14}),e.jsx("span",{children:"Files"})]}),a.map(b=>e.jsxs("div",{className:`workspace-diff-tab file ${k==="file"&&f===b.path?"active":""}`,children:[e.jsxs("button",{type:"button",className:"workspace-diff-tab-main",role:"tab","aria-selected":k==="file"&&f===b.path,title:b.path,onClick:()=>N(b.path),children:[e.jsx(Ke,{className:"workspace-diff-tab-icon",size:13}),i.has(b.path)&&e.jsx("span",{className:"workspace-diff-tab-dirty","aria-hidden":"true"}),e.jsx("span",{children:b.path.split("/").pop()})]}),e.jsx("button",{type:"button",className:"workspace-diff-tab-close",title:`Close ${b.path}`,onClick:A=>C(b.path,A),children:e.jsx(vs,{size:12})})]},b.path)),p.map(b=>e.jsxs("div",{className:"workspace-diff-tab right-chat-tab",children:[e.jsx("button",{type:"button",className:"workspace-diff-tab-main",role:"tab","aria-selected":!1,title:b.title,onClick:()=>X?.(b.id),children:e.jsx("span",{children:b.title})}),I?e.jsx("button",{type:"button",className:"workspace-diff-tab-close",title:`Close ${b.title}`,"aria-label":`Close ${b.title}`,onClick:A=>{A.stopPropagation(),I(b.id)},children:e.jsx(vs,{size:12})}):null]},b.id)),e.jsxs("div",{className:"workspace-diff-add-anchor",ref:K,children:[e.jsx("button",{type:"button",className:`workspace-diff-add-tab ${t||o?"active":""}`,title:"Add","aria-label":"Add to right sidebar",onClick:D,children:e.jsx(Xn,{size:15})}),t&&e.jsxs("div",{className:"workspace-diff-add-menu",role:"menu",children:[G?e.jsxs("button",{type:"button",role:"menuitem",onClick:G,children:[e.jsx(Yn,{size:14}),e.jsx("span",{children:"New task"}),e.jsx("kbd",{})]}):null,e.jsxs("button",{type:"button",role:"menuitem",onClick:M,children:[e.jsx(dt,{size:14}),e.jsx("span",{children:"Files"}),e.jsx("kbd",{})]}),c&&E?e.jsxs("button",{type:"button",role:"menuitem",onClick:E,children:[e.jsx(Ss,{size:14}),e.jsx("span",{children:"Summary"}),e.jsx("kbd",{})]}):null,e.jsxs("button",{type:"button",role:"menuitem",onClick:W,children:[e.jsx(Jn,{size:14}),e.jsx("span",{children:"Open file"}),e.jsx("kbd",{children:"Ctrl+P"})]}),e.jsxs("button",{type:"button",role:"menuitem",onClick:q,children:[e.jsx(ea,{size:14}),e.jsx("span",{children:"Browser"}),e.jsx("kbd",{children:"Ctrl+I"})]})]}),o&&e.jsxs("div",{className:"workspace-file-search-popover",children:[e.jsx("input",{autoFocus:!0,placeholder:"Search files",value:u,onChange:b=>x(b.target.value),onKeyDown:te}),e.jsx("span",{children:"Files"}),e.jsx("div",{className:"workspace-file-search-results",children:n.length===0?e.jsx("small",{children:"Type to search for files"}):n.map(b=>e.jsx("button",{type:"button",onClick:()=>_(b),children:b},b))})]})]})]}),w||g?e.jsxs("div",{className:"workspace-diff-source-bar","aria-label":"Workspace source",children:[w?e.jsx("div",{className:"workspace-diff-source-toggle",role:"group","aria-label":"File source",children:w.options.map(b=>e.jsx("button",{type:"button",className:w.value===b.value?"active":"","aria-pressed":w.value===b.value,onClick:()=>w.onChange(b.value),children:b.label},b.value))}):null,g?e.jsx("span",{className:`workspace-diff-source-status ${g.tone}`,children:g.label}):null]}):null,e.jsx("button",{type:"button",className:"diff-icon-button",title:s?"Restore files panel":"Expand files panel","aria-label":s?"Restore files panel":"Expand files panel",onClick:H,children:s?e.jsx(ta,{size:14}):e.jsx(sa,{size:14})})]})}function ji({canCheckActiveFile:t,canSaveActiveFile:s,collapsed:n,editorControlsVisible:i,editorDiagnosticStatus:a,editorDiagnosticsChecking:d,hideWhiteSpace:o,loadFullFiles:u,menuOpen:f,renderMarkdown:p,showEditorCommandBar:c,showRenderMarkdownToggle:g,splitView:w,wordDiffs:k,wordWrap:C,onCopyGitApply:I,onEditorCheck:T,onEditorRedo:_,onEditorSave:q,onEditorUndo:W,onRefresh:G,onToggleCollapsed:x,onToggleEditorControlsVisible:N,onToggleHideWhiteSpace:M,onToggleLoadFullFiles:P,onToggleMenu:E,onToggleRenderMarkdown:X,onToggleSplitView:D,onToggleWordDiffs:H,onToggleWordWrap:K}){return e.jsx("div",{className:"workspace-diff-toolbar",children:e.jsxs("div",{className:"workspace-diff-toolbar-actions",children:[e.jsxs("div",{className:"workspace-diff-menu-anchor",children:[e.jsx("button",{type:"button",className:"diff-icon-button",title:"Diff options","aria-haspopup":"menu","aria-expanded":f,onClick:()=>E(),children:e.jsx(na,{size:15})}),f&&e.jsx(gi,{collapsed:n,editorControlsVisible:i,hideWhiteSpace:o,loadFullFiles:u,renderMarkdown:p,wordDiffs:k,wordWrap:C,onClose:()=>E(!1),onCopyGitApply:I,onRefresh:G,onToggleCollapsed:x,onToggleEditorControlsVisible:N,onToggleHideWhiteSpace:M,onToggleLoadFullFiles:P,onToggleRenderMarkdown:X,onToggleWordDiffs:H,onToggleWordWrap:K})]}),c&&e.jsxs("div",{className:"workspace-editor-command-bar","aria-label":"Editor controls",children:[e.jsx("button",{type:"button",className:"diff-icon-button",title:"Save file","aria-label":"Save file",disabled:!s,onClick:q,children:e.jsx(ya,{size:14})}),e.jsx("button",{type:"button",className:"diff-icon-button",title:"Undo","aria-label":"Undo",onClick:W,children:e.jsx(Ma,{size:14})}),e.jsx("button",{type:"button",className:"diff-icon-button",title:"Redo","aria-label":"Redo",onClick:_,children:e.jsx(Ta,{size:14})}),e.jsx("button",{type:"button",className:"diff-icon-button",title:"Check file","aria-label":"Check file",disabled:!t,onClick:T,children:d?e.jsx(Ae,{className:"spinning",size:14}):e.jsx(ws,{size:14})}),a&&e.jsxs("span",{className:`workspace-editor-diagnostic-chip ${a.severity}`,children:[a.severity==="error"||a.severity==="warning"||a.severity==="unavailable"?e.jsx(qt,{size:13}):e.jsx(ws,{size:13}),e.jsx("span",{children:a.label})]})]}),g&&e.jsx("button",{type:"button",className:`diff-icon-button ${p?"active":""}`,title:p?"Show Markdown source":"Render Markdown","aria-label":p?"Show Markdown source":"Render Markdown","aria-pressed":p,onClick:X,children:e.jsx(_s,{size:14})}),e.jsx("button",{type:"button",className:`diff-icon-button ${w?"active":""}`,title:w?"Show unified diff":"Show split diff","aria-label":w?"Show unified diff":"Show split diff","aria-pressed":w,onClick:D,children:e.jsx(Fa,{size:14})})]})})}const vi={cjs:"typescript",css:"css",html:"html",js:"typescript",json:"json",jsx:"typescript",md:"markdown",mjs:"typescript",py:"python",sh:"shell",ts:"typescript",tsx:"typescript",yaml:"yaml",yml:"yaml"};function Vt(t){const s=t.split("/").pop()?.toLowerCase()??"";if(s==="dockerfile")return"shell";if(s==="readme"||s==="readme.md")return"markdown";const n=s.includes(".")?s.split(".").pop()??"":"";return vi[n]??"text"}function wi(t,s){return t?s==="markdown"?ki(t):s==="json"?be(t,/("(?:\\.|[^"\\])*"(?=\s*:)|"(?:\\.|[^"\\])*"|[-]?\b\d+(?:\.\d+)?\b|\btrue\b|\bfalse\b|\bnull\b|[{}[\]:,])/g):s==="css"?be(t,/(\/\*.*?\*\/|#[\da-fA-F]{3,8}\b|--[\w-]+|[.#]?[\w-]+(?=\s*:)|"(?:\\.|[^"\\])*"|'(?:\\.|[^'\\])*'|\b\d+(?:\.\d+)?(?:px|rem|em|%|vh|vw)?\b|[{}():;,])/g):s==="html"?be(t,/(<!--.*?-->|<\/?[\w-]+|[\w:-]+(?==)|"(?:\\.|[^"\\])*"|'(?:\\.|[^'\\])*'|[<>/=])/g):s==="shell"?be(t,/(#.*$|"(?:\\.|[^"\\])*"|'(?:\\.|[^'\\])*'|\b(?:cd|cp|export|git|npm|pnpm|bun|yarn|rm|mkdir|test|if|then|fi|for|do|done|echo)\b|\$[\w_]+|&&|\|\||[|&;=])/g):s==="python"?be(t,/(#.*$|"""[\s\S]*?"""|"(?:\\.|[^"\\])*"|'(?:\\.|[^'\\])*'|\b(?:class|def|return|if|elif|else|for|while|try|except|finally|with|as|import|from|None|True|False|async|await|lambda|yield)\b|\b[A-Z][\w]*\b|\b\d+(?:\.\d+)?\b|[+\-*/%=<>!&|.:,()[\]{}]+)/g):be(t,/(\/\/.*$|\/\*.*?\*\/|`(?:\\.|[^`\\])*`|"(?:\\.|[^"\\])*"|'(?:\\.|[^'\\])*'|\b(?:abstract|as|async|await|boolean|break|case|catch|class|const|continue|default|else|enum|export|extends|false|finally|for|from|function|if|import|in|interface|let|new|null|number|of|return|string|switch|throw|true|try|type|undefined|void|while)\b|\b[A-Z][\w]*\b|\b\d+(?:\.\d+)?\b|[+\-*/%=<>!&|?:.,()[\]{}]+)/g):[{text:" ",kind:"plain"}]}function ki(t){return/^\s{0,3}#{1,6}\s/.test(t)?[{text:t,kind:"keyword"}]:/^\s*[-*+]\s/.test(t)?[{text:t,kind:"property"}]:be(t,/(`[^`]+`|\*\*[^*]+\*\*|\[[^\]]+\]\([^)]+\)|https?:\/\/\S+)/g)}function yi(t){return/^(\/\/|#|\/\*|<!--)/.test(t)?"comment":/^["'`]/.test(t)?"string":/^[-]?\d/.test(t)||/^#[\da-fA-F]{3,8}\b/.test(t)?"number":/^\b[A-Z]/.test(t)?"type":/^[.#]?[\w-]+$/.test(t)&&t.includes("-")?"property":/^(?:[{}()[\],.:;<>/=+\-*&|!?%]+)$/.test(t)?"operator":/^(?:--|\$)/.test(t)?"property":"keyword"}function be(t,s){const n=[];let i=0;for(const a of t.matchAll(s)){const d=a.index??0;d>i&&n.push({text:t.slice(i,d),kind:"plain"});const o=a[0];if(n.push({text:o,kind:yi(o)}),i=d+o.length,/^(\/\/|#|<!--)/.test(o))break}return i<t.length&&n.push({text:t.slice(i),kind:"plain"}),n.length>0?n:[{text:t,kind:"plain"}]}function ut({language:t,text:s}){return e.jsx(e.Fragment,{children:wi(s,t).map((n,i)=>e.jsx("span",{className:`syntax-token ${n.kind}`,children:n.text},`${i}-${n.text}`))})}const Si=`
|
|
3
|
+
|
|
4
|
+
[file truncated]`,Ni=l.lazy(()=>ca(()=>import("./WorkspaceMonacoEditor-0trp0-TI.js").then(t=>t.jc),__vite__mapDeps([0,1,2,3]),import.meta.url)),It=6,Ci=18,ge=22,As=44,Ri=160,Ls=12;function ft({path:t,workspaceName:s,workspaceRootPath:n,onSelectPath:i}){const a=Ms(t,n),d=ra(a),o=d?$i(a):s?.trim()||"Workspace",f=(d&&o!=="/"&&a.startsWith(`${o}/`)?a.slice(o.length+1):a).split("/").filter(Boolean),p=!!(i&&!d);return e.jsxs("span",{className:"workspace-file-breadcrumbs",title:d?a:`${o} > ${a}`,children:[i&&!d?e.jsx("button",{type:"button",onClick:()=>i(null),children:o}):e.jsx("span",{children:o}),f.map((c,g)=>{const w=g===f.length-1,k=f.slice(0,g+1).join("/");return e.jsxs("span",{className:"workspace-file-breadcrumb-segment",children:[e.jsx(la,{size:13}),i&&p&&!w?e.jsx("button",{type:"button",onClick:()=>i(k),children:c}):e.jsx("span",{children:c})]},`${g}-${c}`)})]})}function $i(t){const s=/^[A-Za-z]:\//.exec(t);return s?s[0].slice(0,-1):"/"}function Fi({collapsed:t=!1,diagnostics:s=[],draftContent:n,editable:i=!1,editorRef:a,error:d,file:o,hideWhiteSpace:u=!1,imageSrc:f,loading:p,loadFullFiles:c,onOpenImage:g,onSelectBreadcrumbPath:w,onDraftContentChange:k,onLspAction:C,onSave:I,renderMarkdown:T,saveError:_,saving:q=!1,splitView:W=!1,wordDiffs:G=!1,wordWrap:x,workspaceName:N,workspaceRootPath:M}){const P=n??o.content??"",E=l.useMemo(()=>P.split(`
|
|
5
|
+
`).slice(0,800),[P]),X=Vt(o.path),D=n!=null||o.content!=null,H=P.endsWith(Si),K=T&&D&&Bt(o.path),te=D&&aa(o.path)&&Di(P);return f?e.jsxs("div",{className:"workspace-file-preview",children:[e.jsx("div",{className:"workspace-diff-file-heading",children:e.jsxs("div",{children:[e.jsx(ft,{path:o.path,workspaceName:N,workspaceRootPath:M,onSelectPath:w}),e.jsxs("span",{className:"diff-addition",children:["+",o.additions]}),e.jsxs("span",{className:"diff-deletion",children:["-",o.deletions]})]})}),e.jsx("div",{className:"workspace-file-image-stage",children:e.jsx("button",{type:"button",className:"workspace-file-image-button","aria-label":`Open image preview for ${o.path}`,onClick:g,children:e.jsx("img",{alt:o.path,decoding:"async",src:f})})})]}):!c&&o.patch||!D&&o.patch?W?e.jsx(Ai,{collapsed:t,file:o,hideWhiteSpace:u,onSelectBreadcrumbPath:w,wordDiffs:G,wordWrap:x,workspaceName:N,workspaceRootPath:M}):e.jsx(Ei,{collapsed:t,file:o,hideWhiteSpace:u,wordWrap:x,workspaceName:N,workspaceRootPath:M,onSelectBreadcrumbPath:w}):e.jsxs("div",{className:`workspace-file-preview ${x?"wrap":""}`,children:[e.jsxs("div",{className:"workspace-diff-file-heading",children:[e.jsxs("div",{children:[e.jsx(ft,{path:o.path,workspaceName:N,workspaceRootPath:M,onSelectPath:w}),e.jsxs("span",{className:"diff-addition",children:["+",o.additions]}),e.jsxs("span",{className:"diff-deletion",children:["-",o.deletions]})]}),q?e.jsx("span",{className:"workspace-file-save-state",children:"Saving"}):null,_?e.jsx("span",{className:"workspace-file-save-error",title:_,children:"Save failed"}):null]}),D?K?e.jsx("div",{className:"workspace-markdown-preview",children:e.jsx(ia,{content:P})}):te?e.jsx(Li,{file:o,contentBase64:P}):i&&!H?e.jsx(l.Suspense,{fallback:e.jsx("div",{className:"workspace-diff-code-empty",children:"Loading editor"}),children:e.jsx(Ni,{diagnostics:s,filePath:o.path,onChange:b=>k?.(b),onLspAction:C,onSave:()=>I?.(),ref:a,value:P,wordWrap:x})}):e.jsx("div",{className:"workspace-file-code",children:E.map((b,A)=>e.jsxs("div",{className:"workspace-file-code-row",children:[e.jsx("span",{children:A+1}),e.jsx("code",{children:e.jsx(ut,{language:X,text:b||" "})})]},`${A}-${b}`))}):e.jsx("div",{className:"workspace-diff-code-empty",children:p?"Loading file content":d??"No file content available."})]})}function Ei({collapsed:t=!1,file:s,hideWhiteSpace:n=!1,wordWrap:i,workspaceName:a,workspaceRootPath:d,onSelectBreadcrumbPath:o}){const u=l.useMemo(()=>Vs(s.patch,n),[s.patch,n]),f=Vt(s.path);return e.jsxs("div",{className:`workspace-diff-preview ${i?"wrap":""}`,children:[e.jsx("div",{className:"workspace-diff-file-heading",children:e.jsxs("div",{children:[e.jsx(ft,{path:s.path,workspaceName:a??null,workspaceRootPath:d,onSelectPath:o}),e.jsxs("span",{className:"diff-addition",children:["+",s.additions]}),e.jsxs("span",{className:"diff-deletion",children:["-",s.deletions]})]})}),t?e.jsx("div",{className:"workspace-diff-code-empty",children:"Diff collapsed"}):e.jsx(qs,{ariaLabel:`${s.path} diff`,className:"workspace-diff-code",emptyMessage:"No patch available.",rows:u,renderRow:(p,c)=>p.kind==="spacer"?e.jsx("div",{className:"workspace-diff-spacer",role:"row",children:p.label},`${p.label}-${c}`):e.jsxs("div",{className:`workspace-diff-code-row ${p.kind}`,role:"row",children:[e.jsx("span",{className:"workspace-diff-line-number",role:"cell",children:p.newLine||p.oldLine}),e.jsx("code",{role:"cell",children:e.jsx(ut,{language:f,text:p.newContent||p.oldContent||" "})})]},`${p.oldLine}-${p.newLine}-${c}`),wordWrap:i})]})}function Ai({collapsed:t,file:s,hideWhiteSpace:n,wordDiffs:i,wordWrap:a,workspaceName:d,workspaceRootPath:o,onSelectBreadcrumbPath:u}){const f=l.useMemo(()=>Vs(s.patch,n),[s.patch,n]),p=Vt(s.path);return e.jsxs("div",{className:`workspace-diff-preview split ${a?"wrap":""} ${i?"word-diffs":""}`,children:[e.jsxs("div",{className:"workspace-diff-file-heading",children:[e.jsxs("div",{children:[e.jsx(ft,{path:s.path,workspaceName:d,workspaceRootPath:o,onSelectPath:u}),e.jsxs("span",{className:"diff-addition",children:["+",s.additions]}),e.jsxs("span",{className:"diff-deletion",children:["-",s.deletions]})]}),e.jsx(oa,{size:14})]}),t?e.jsx("div",{className:"workspace-diff-code-empty",children:"Diff collapsed"}):e.jsx(qs,{ariaLabel:`${s.path} split diff`,className:"workspace-split-code",emptyMessage:"No patch available.",rows:f,renderRow:(c,g)=>c.kind==="spacer"?e.jsx("div",{className:"workspace-diff-spacer split",role:"row",children:c.label},`${c.label}-${g}`):e.jsxs("div",{className:`workspace-split-row ${c.kind}`,role:"row",children:[e.jsx("span",{className:"workspace-diff-line-number old",role:"cell",children:c.oldLine}),e.jsx("code",{className:"old",role:"cell",children:e.jsx(ut,{language:p,text:c.oldContent||" "})}),e.jsx("span",{className:"workspace-diff-line-number new",role:"cell",children:c.newLine}),e.jsx("code",{className:"new",role:"cell",children:e.jsx(ut,{language:p,text:c.newContent||" "})})]},`${c.oldLine}-${c.newLine}-${g}`),wordWrap:a})]})}function Li({file:t,contentBase64:s}){const n=l.useMemo(()=>{const i=Ti(s);if(!i)return null;const a=new Blob([new Uint8Array(i)],{type:Pi(t.path)});return URL.createObjectURL(a)},[s,t.path]);return l.useEffect(()=>()=>{n&&URL.revokeObjectURL(n)},[n]),n?e.jsxs("div",{className:"workspace-document-preview",children:[e.jsxs("div",{className:"workspace-document-preview-card",children:[e.jsx("strong",{children:t.path.split("/").pop()}),e.jsx("span",{children:"Word document"}),e.jsx("a",{href:n,download:t.path.split("/").pop()||"document",children:"Download document"})]}),e.jsx("iframe",{src:n,title:`${t.path} preview`})]}):e.jsx("div",{className:"workspace-diff-code-empty",children:"Document preview unavailable."})}function Pi(t){return/\.docx$/i.test(t)?"application/vnd.openxmlformats-officedocument.wordprocessingml.document":"application/msword"}function Di(t){return t.length>0&&/^[A-Za-z0-9+/=\s]+$/.test(t)}function Ti(t){try{const s=atob(t.replace(/\s/g,"")),n=new Uint8Array(s.length);for(let i=0;i<s.length;i+=1)n[i]=s.charCodeAt(i);return n}catch{return null}}function qs({ariaLabel:t,className:s,emptyMessage:n,rows:i,renderRow:a,wordWrap:d}){const o=!d&&i.length>Ri,{endIndex:u,offsetTop:f,scrollRef:p,startIndex:c,totalHeight:g}=_i(i.length,o);return i.length===0?e.jsx("div",{className:s,role:"table","aria-label":t,children:e.jsx("div",{className:"workspace-diff-code-empty",children:n})}):o?e.jsx("div",{className:`${s} virtualized`,ref:p,role:"table","aria-label":t,"aria-rowcount":i.length,children:e.jsx("div",{className:"workspace-diff-virtual-spacer",style:{height:g},children:e.jsx("div",{className:"workspace-diff-virtual-window",style:{transform:`translateY(${f}px)`},children:i.slice(c,u).map((w,k)=>a(w,c+k))})})}):e.jsx("div",{className:s,role:"table","aria-label":t,children:i.map(a)})}function _i(t,s){const n=l.useRef(null),[i,a]=l.useState({height:ge*As,scrollTop:0}),d=l.useCallback(()=>{const p=n.current;p&&a({height:p.clientHeight||ge*As,scrollTop:p.scrollTop})},[]);if(l.useEffect(()=>{if(!s)return;const p=n.current;if(!p)return;d();let c=0;const g=()=>{if(typeof window>"u"){d();return}window.cancelAnimationFrame(c),c=window.requestAnimationFrame(d)};p.addEventListener("scroll",g,{passive:!0});const w=typeof ResizeObserver>"u"?null:new ResizeObserver(()=>g());return w?.observe(p),()=>{p.removeEventListener("scroll",g),w?.disconnect(),typeof window<"u"&&window.cancelAnimationFrame(c)}},[s,d]),!s)return{endIndex:t,offsetTop:0,scrollRef:n,startIndex:0,totalHeight:t*ge};const o=Math.ceil(i.height/ge),u=Math.max(0,Math.floor(i.scrollTop/ge)-Ls);return{endIndex:Math.min(t,u+o+Ls*2),offsetTop:u*ge,scrollRef:n,startIndex:u,totalHeight:t*ge}}function Vs(t,s){if(!t.trim())return[];const n=[];let i=0,a=0,d=null,o=null,u=!1,f=[];function p(){n.push(...Mi(f)),f=[]}function c(){u&&(p(),d=i,o=a,u=!1)}for(const g of t.split(`
|
|
6
|
+
`)){const w=/^@@ -(\d+)(?:,\d+)? \+(\d+)(?:,\d+)? @@/.exec(g);if(w){c();const I=Number(w[1]),T=Number(w[2]);if(d!==null&&o!==null){const _=Math.max(I-d,T-o,0);_>0&&n.push({kind:"spacer",label:Hs(_)})}i=I,a=T,u=!0;continue}if(g.startsWith("diff --git")||g.startsWith("index ")||g.startsWith("--- ")||g.startsWith("+++ ")||!u||g.startsWith("\\ No newline"))continue;const k=g.slice(1)||" ";if(s&&!k.trim())continue;if(g.startsWith("+")){p(),n.push({kind:"addition",oldLine:"",newLine:String(a||""),oldContent:"",newContent:k}),a+=1;continue}if(g.startsWith("-")){p(),n.push({kind:"deletion",oldLine:String(i||""),newLine:"",oldContent:k,newContent:""}),i+=1;continue}const C=g.startsWith(" ")?g.slice(1)||" ":g||" ";s&&!C.trim()||(f.push({kind:"context",oldLine:String(i||""),newLine:String(a||""),oldContent:C,newContent:C}),i+=1,a+=1)}return c(),n}function Mi(t){if(t.length<Ci)return t;const s=t.length-It*2;return s<=0?t:[...t.slice(0,It),{kind:"spacer",label:Hs(s)},...t.slice(-It)]}function Hs(t){return`${t} unmodified ${t===1?"line":"lines"}`}const pt=`
|
|
7
|
+
|
|
8
|
+
[file truncated]`,zi="openpond.sandboxSourceReadback.v1";async function Ii(t,s,n,i=[]){let a;try{a=await z.sandboxDownloadFile(t,s,n,{maxBytes:256*1024})}catch(o){const u=o instanceof Error?o.message:String(o);if(!Wi(u))throw o;const f=Ui(i,s,n);if(f)return f;const p=!!Ht(i,s)?.artifact,c=await z.sandbox(t,s).catch(()=>null);throw new Error(Bi(n,c?.sandbox??null,u,{hasReadbackArtifact:p}))}const d=a.file.isBinary?a.file.contentsBase64||null:`${a.contents}${a.file.truncated?pt:""}`;return{path:a.file.path,status:"",additions:0,deletions:0,patch:"",content:d}}function Wi(t){return t.includes("sandbox_not_ready")&&t.includes("placement_stale")||t.includes("sandbox_not_running")}function Bi(t,s,n="sandbox_not_ready:placement_stale",i={}){const a=s?qi(s):null,d=t||"this file";if(i.hasReadbackArtifact)return`Sandbox file content is unavailable because the stopped runtime placement is stale. The latest source checkpoint has a saved readback artifact, but ${d} was not captured as text. Resume the sandbox to inspect it. ${n}`;if(!a)return`Sandbox file content is unavailable because the stopped runtime placement is stale. Resume the sandbox to inspect ${d}. ${n}`;const o=a.preservedSha?a.preservedSha.slice(0,12):null,u=a.sourceRef?` (${a.sourceRef})`:"";return`Sandbox file content is unavailable because the stopped runtime placement is stale. The latest source checkpoint is saved${o?` at ${o}`:""}${u}, but this Desktop app cannot read file bodies from preserved source refs yet. Resume the sandbox to inspect ${d}.`}function Oi(t,s){if(!s)return null;const n=Ht(t,s);if(!n)return null;const i=Ks(n.artifact),a=new Map;for(const u of Gt(i))a.set(u.path,u);for(const u of Qs(n.artifact)){const f=Gs(n.artifact,u.path);f&&a.set(u.path,f)}const d=[...a.values()].sort((u,f)=>u.path.localeCompare(f.path)),o=[...new Set(d.map(u=>u.path))].sort((u,f)=>u.localeCompare(f));return{appId:s,repoPath:"",initialized:!0,dirty:!1,filesChanged:d.length,additions:d.reduce((u,f)=>u+f.additions,0),deletions:d.reduce((u,f)=>u+f.deletions,0),repoFiles:o,files:d,error:null,updatedAt:Le(ee(n.artifact)?.createdAt)??n.event.timestamp}}function Ui(t,s,n){if(!s)return null;const i=Ht(t,s);return i?Gs(i.artifact,n):null}function Ht(t,s){for(let n=t.length-1;n>=0;n-=1){const i=t[n];if(i?.name!=="workspace_action_result")continue;const a=ee(i.data),d=ee(a?.sourcePreservation),o=ee(d?.sourceReadbackArtifact);if(o&&o.schemaVersion===zi&&o.sandboxId===s)return{artifact:o,event:i}}return null}function Gs(t,s){const n=Gt(Ks(t)).find(d=>d.path===s),i=Qs(t).find(d=>d.path===s);if(!n&&!i)return null;const a=typeof i?.content=="string"?`${i.content}${i.truncated?pt:""}`:null;return{path:i?.path??n?.path??s,status:n?.status??"M",additions:n?.additions??0,deletions:n?.deletions??0,patch:n?.patch??"",content:a}}function Ks(t){const s=ee(t.patch);return typeof s?.text=="string"?s.text:""}function Qs(t){return(Array.isArray(t.files)?t.files:[]).map(n=>{const i=ee(n),a=Le(i?.path);return a?{path:a,...typeof i?.content=="string"?{content:i.content}:{},...i?.truncated===!0?{truncated:!0}:{}}:null}).filter(n=>!!n)}function qi(t){const s=ee(t.metadata)??{},n=ee(s.sourcePreservation)??ee(s.sourcePreserve),i=ee(s.sourceChangeDetection),a=Le(n?.preservedSha)??Le(i?.preservedSha)??null,d=Le(n?.sourceRef)??Le(i?.sourceRef)??(typeof t.repoRef=="string"?t.repoRef:null);return!a&&!d?null:{preservedSha:a,sourceRef:d}}function ee(t){return t&&typeof t=="object"&&!Array.isArray(t)?t:null}function Le(t){return typeof t=="string"&&t.trim()?t.trim():null}async function Vi(t,s,n,i){const a=await z.sandboxUploadFile(t,s,{path:n,contents:i});return await z.preserveSandboxSource(t,s,{message:"Auto-preserve source after right sidebar save"}),{path:a.file.path,status:"M",additions:0,deletions:0,patch:"",content:i}}function Hi(t){return t.filter(s=>s.type==="file").map(s=>s.path).sort((s,n)=>s.localeCompare(n))}function Gi(t,s){const n=new Map;for(const i of Gt(t?.diff??""))n.set(i.path,i);for(const i of Ki(s?.porcelain??""))n.has(i.path)||n.set(i.path,i);return[...n.values()].sort((i,a)=>i.path.localeCompare(a.path))}function Gt(t){const s=[];let n=null;const i=()=>{n&&(s.push({path:n.path,status:n.status,additions:n.additions,deletions:n.deletions,patch:n.patchLines.join(`
|
|
9
|
+
`),content:null}),n=null)};for(const a of t.split(`
|
|
10
|
+
`)){if(a.startsWith("diff --git ")){i(),n={path:Zi(a)??"changed-file",status:"M",additions:0,deletions:0,patchLines:[a]};continue}if(n){if(n.patchLines.push(a),a.startsWith("+++ ")){const d=Ps(a.slice(4));d&&(n.path=d);continue}if(a.startsWith("--- ")){const d=Ps(a.slice(4));d&&n.path==="changed-file"&&(n.path=d);continue}a.startsWith("new file mode ")&&(n.status="A"),a.startsWith("deleted file mode ")&&(n.status="D"),a.startsWith("rename to ")&&(n.status="R",n.path=a.slice(10).trim()||n.path),a.startsWith("+")&&!a.startsWith("+++")&&(n.additions+=1),a.startsWith("-")&&!a.startsWith("---")&&(n.deletions+=1)}}return i(),s}function Ki(t){const s=[];for(const n of t.split(`
|
|
11
|
+
`)){if(!n.trim())continue;const i=Qi(n);i&&s.push({path:i,status:n.slice(0,2).trim()||"M",additions:0,deletions:0,patch:"",content:null})}return s}function Qi(t){const s=t.slice(3).trim();return s?s.split(" -> ").pop()?.trim()||s:null}function Zi(t){const s=/^diff --git a\/(.+) b\/(.+)$/.exec(t.trim());return s?.[2]??s?.[1]??null}function Ps(t){const s=t.trim();return!s||s==="/dev/null"?null:s.startsWith("a/")||s.startsWith("b/")?s.slice(2):s}const Zs="openpond.workspace.editorControlsVisible";function Xi(){try{return window.localStorage.getItem(Zs)==="true"}catch{return!1}}function Yi(t){try{window.localStorage.setItem(Zs,String(t))}catch{}}function Ji({activeDiagnostics:t,activeServers:s,editorDiagnosticsChecking:n,editorLspEnabled:i,showEditorCommandBar:a}){if(!a)return null;if(!i)return{label:"LSP off",severity:"unavailable"};if(n)return{label:"Checking",severity:"info"};const d=t.filter(p=>p.severity==="error").length;if(d>0)return{label:`${d} error${d===1?"":"s"}`,severity:"error"};const o=t.filter(p=>p.severity==="warning").length;if(o>0)return{label:`${o} warning${o===1?"":"s"}`,severity:"warning"};const u=t.length;if(u>0)return{label:`${u} note${u===1?"":"s"}`,severity:"info"};if(!s)return null;const f=s.find(p=>p.status!=="connected");return f?{label:f.id==="none"?"No LSP":`${f.id} unavailable`,severity:"unavailable"}:{label:"No issues",severity:"none"}}const Ds=3e3,er=2e3,Ts=[],tr=[];function fr({appId:t,workspaceKind:s,connection:n,runtimeEvents:i,diff:a,editorPreferences:d,loading:o,workspaceName:u,workspaceInitialized:f,workspaceError:p,expanded:c,fileRootPath:g,filesWithPreview:w=!1,openFileRequest:k,readOnly:C=!1,sideChatTabs:I,sourceSwitcher:T,tabRequest:_,viewState:q,onRefresh:W,onResizeStart:G,onToggleExpanded:x,onOpenBrowser:N,onViewStateChange:M,onCloseSideChat:P,onOpenSideChat:E,onSelectSideChat:X,goalDetails:D,sandboxFileSource:H,trainingSummary:K}){return e.jsx(rr,{appId:t,workspaceKind:s,connection:n,runtimeEvents:i??[],diff:a,editorPreferences:d??null,loading:o,workspaceName:u,workspaceInitialized:f,workspaceError:p,expanded:c,fileRootPath:g??null,filesWithPreview:w,openFileRequest:k,readOnly:C,sideChatTabs:I??[],sourceSwitcher:T??null,tabRequest:_??null,viewState:q??null,onRefresh:W,onResizeStart:G,onToggleExpanded:x,onOpenBrowser:N,onViewStateChange:M,onCloseSideChat:P,onOpenSideChat:E,onSelectSideChat:X,goalDetails:D??null,sandboxFileSource:H??null,trainingSummary:K??null})}function sr(t,s,n,i){return t&&s?.content!=null?{...t,content:s.content}:s&&!t&&Wt(s)?s:t&&Wt(t)?t:s&&Wt(s)?s:t??s??n??Ot(i)}function Wt(t){return!!(t.patch||t.content!=null)}function nr({changedFiles:t,checkpointStatus:s,dirty:n,error:i,loading:a,preservedReadback:d,sandboxMode:o,sourcePending:u}){if(u)return{label:"sandbox pending",tone:"loading"};if(a)return{label:"refreshing",tone:"loading"};if(o&&d&&s)return s;if(i)return{label:"status unavailable",tone:"error"};if(o&&s?.tone==="error"||o&&s&&!n&&t===0)return s;if(n||t>0){const f=Math.max(1,t),p=f===1?"change":"changes";return{label:o?`${f} unpreserved ${p}`:`${f} local ${p}`,tone:"dirty"}}return{label:o?"sandbox clean":"local clean",tone:"clean"}}function ar(t,s){if(!s)return null;for(let n=t.length-1;n>=0;n-=1){const i=t[n];if(i?.name!=="workspace_action_result")continue;const a=i.data&&typeof i.data=="object"&&!Array.isArray(i.data)?i.data:null,d=a?.sourcePreservation&&typeof a.sourcePreservation=="object"&&!Array.isArray(a.sourcePreservation)?a.sourcePreservation:null;if(d?.attempted===!0&&d.sandboxId===s)return d.ok!==!0?{label:"checkpoint failed",tone:"error"}:d.preserved===!0?{label:"checkpoint saved",tone:"clean"}:{label:"checkpoint clean",tone:"clean"}}return null}function ir(t){const s=t.split("/").filter(Boolean);return s.map((n,i)=>s.slice(0,i+1).join("/"))}function rr({appId:t,workspaceKind:s,connection:n,runtimeEvents:i,diff:a,editorPreferences:d,loading:o,workspaceName:u,workspaceInitialized:f,workspaceError:p,expanded:c,fileRootPath:g,filesWithPreview:w,openFileRequest:k,readOnly:C,sideChatTabs:I,sourceSwitcher:T,tabRequest:_,viewState:q,onRefresh:W,onResizeStart:G,onToggleExpanded:x,onOpenBrowser:N,onViewStateChange:M,onCloseSideChat:P,onOpenSideChat:E,onSelectSideChat:X,goalDetails:D,sandboxFileSource:H,trainingSummary:K}){const te=q??ma(),[b,A]=l.useState(te.activeTab),[Ze,Pe]=l.useState(!1),[Xs,re]=l.useState(!1),[Ys,se]=l.useState(!1),[xt,Kt]=l.useState(""),[Q,Xe]=l.useState(()=>[...te.openFilePaths]),[j,ve]=l.useState(te.selectedPath),[Qt,Js]=l.useState(!1),[Zt,en]=l.useState(!1),[we,tn]=l.useState(!1),[gt,sn]=l.useState(!0),[Xt,nn]=l.useState(Xi),[Yt,an]=l.useState(!1),[Jt,rn]=l.useState(!1),[es,ln]=l.useState(!1),[Y,Ye]=l.useState({}),[le,De]=l.useState({}),[ts,bt]=l.useState(()=>new Set),[Te,_e]=l.useState(null),[on,jt]=l.useState(!1),[cn,Me]=l.useState(null),[ss,vt]=l.useState({}),[dn,wt]=l.useState({}),[un,kt]=l.useState(null),[fn,ke]=l.useState(null),[pn,ye]=l.useState(null),[yt,St]=l.useState(null),[hn,ze]=l.useState({}),[Je,Nt]=l.useState(null),[et,tt]=l.useState(null),[st,nt]=l.useState(null),Z=d??pa.editor,ns=l.useRef(Y),Ct=l.useRef(Mt(te)),Rt=l.useRef(Mt(te)),as=l.useRef(null),$t=l.useRef(W),ne=l.useRef(!1),Ie=l.useRef(null),We=l.useRef(0),oe=l.useRef(null),Be=l.useRef(null),F=H?.sandboxId?.trim()||null,S=!!H,Se=!!K||S&&!!F,at=S?`sandbox:${F??"pending"}`:`workspace:${t??"none"}`,is=S?!!F:!!t,rs=l.useRef(at),ce=!!(D?.createRuntime||D?.goalRuntime||D?.subagentRuntime),Ne=l.useCallback(async(r={})=>{if(S){if(!n){_e(null),Me("OpenPond App server is not connected.");return}if(!F){_e(null),Me(null);return}r.silent||jt(!0);try{const[h,m,y]=await Promise.allSettled([z.sandboxFiles(n,F,{recursive:!0,maxEntries:er}),z.sandboxGitStatus(n,F),z.sandboxGitDiff(n,F,{})]);if(h.status==="rejected")throw h.reason;const $=Hi(h.value.files),v=m.status==="fulfilled"?m.value.status:null,R=y.status==="fulfilled"?y.value.diff:null,L=Gi(R,v),Ve=L.reduce((Tt,_t)=>Tt+_t.additions,0),Un=L.reduce((Tt,_t)=>Tt+_t.deletions,0);_e({appId:F,repoPath:"",initialized:!0,dirty:v?!v.clean:L.length>0,filesChanged:L.length,additions:Ve,deletions:Un,repoFiles:$,files:L,error:null,updatedAt:new Date().toISOString()}),Me(null)}catch(h){_e(null),Me(h instanceof Error?h.message:String(h))}finally{r.silent||jt(!1)}}},[n,F,S]),ls=l.useMemo(()=>Oi(i,F),[i,F]),os=!!(Te&&((Te.files?.length??0)>0||(Te.repoFiles?.length??0)>0)),mn=S&&!os&&!!ls,de=S?os?Te:ls??Te:a,it=de?.repoPath??null,xn=l.useMemo(()=>ar(i,F),[i,F]),Ce=de?.files??Ts,cs=de?.files??Ts,fe=l.useMemo(()=>new Map(cs.map(r=>[r.path,r])),[cs]),pe=l.useMemo(()=>new Map(Ce.map(r=>[r.path,r])),[Ce]),Re=de?.repoFiles??(Ce.length>0?Ce.map(r=>r.path):tr),$e=l.useMemo(()=>Ce.filter(r=>!da(r,Re)),[Re,Ce]),he=l.useMemo(()=>st&&!Re.includes(st)?[st,...Re]:Re,[Re,st]),ds=l.useMemo(()=>Q.map(r=>fe.get(r)??Y[r]??pe.get(r)??Ot(r)),[fe,pe,Y,Q]),rt=l.useMemo(()=>{const r={};for(const h of Q){if(xe(h))continue;const m=fe.get(h)??Y[h]??pe.get(h)??Ot(h);m.content!=null&&(r[h]=m.content)}return r},[fe,pe,Y,Q]),Fe=l.useMemo(()=>{const r=new Set;for(const[h,m]of Object.entries(le))m.content!==m.savedContent&&r.add(h);return r},[le]),gn=l.useMemo(()=>{const r=xt.trim().toLowerCase(),h=he;return r?h.filter(m=>m.toLowerCase().includes(r)):h},[he,xt]),Ft=l.useMemo(()=>({activeTab:b,openFilePaths:Q,selectedPath:j}),[b,Q,j]);l.useEffect(()=>{ns.current=Y},[Y]),l.useEffect(()=>{Ie.current=Je},[Je]),l.useEffect(()=>{De(r=>{let h=!1;const m={...r},y=new Set(Q),$=a?.updatedAt?Date.parse(a.updatedAt):null;for(const[v,R]of Object.entries(m))y.has(v)||R.content!==R.savedContent||(delete m[v],h=!0);for(const[v,R]of Object.entries(rt)){const L=m[v];if(!L){m[v]={content:R,savedContent:R},h=!0;continue}if(L.content===L.savedContent&&L.savedContent!==R){if(L.savedAt&&($===null||$<L.savedAt))continue;m[v]={content:R,savedContent:R},h=!0}}return h?m:r})},[a?.updatedAt,rt,Q]),l.useEffect(()=>{$t.current=W},[W]),l.useEffect(()=>{if(!q)return;const r=ua(q,it);ks(Ct.current,r)||(Ct.current=r,Rt.current=r,A(r.activeTab),Xe(r.openFilePaths),ve(r.selectedPath))},[q,it]),l.useEffect(()=>{if(ks(Rt.current,Ft))return;const r=Mt(Ft);Rt.current=r,Ct.current=r,M?.(r)},[Ft,M]),l.useEffect(()=>{C||S||!n||!t||!f||a||p||ne.current||(ne.current=!0,Promise.resolve($t.current({silent:!0})).catch(()=>{}).finally(()=>{ne.current=!1}))},[t,n,a,C,S,p,f]),l.useEffect(()=>(rs.current!==at&&(rs.current=at,oe.current?.abort(new Error("lsp_diagnostics_source_changed")),oe.current=null,Xe([]),ve(null),Ye({}),De({}),bt(new Set),_e(null),Me(null),jt(!1),vt({}),wt({}),kt(null),ke(null),ye(null),St(null),ze({}),Nt(null),tt(null),nt(null)),()=>{oe.current?.abort(new Error("lsp_diagnostics_unmounted")),oe.current=null}),[at]),l.useEffect(()=>{!k||as.current===k.id||is&&(as.current=k.id,lt(k.path))},[is,k]),l.useEffect(()=>{if(!S||(Ne(),!n||!F))return;let r=!1;async function h(){if(!(r||ne.current)&&!(typeof document<"u"&&document.visibilityState==="hidden")){ne.current=!0;try{await Ne({silent:!0})}finally{ne.current=!1}}}const m=window.setInterval(()=>{h()},Ds),y=()=>{h()};return window.addEventListener("focus",y),()=>{r=!0,window.clearInterval(m),window.removeEventListener("focus",y)}},[n,Ne,F,S]),l.useEffect(()=>{if(C||S||!n||!t||!f)return;let r=!1;async function h(){if(!(r||ne.current)&&!(typeof document<"u"&&document.visibilityState==="hidden")){ne.current=!0;try{await $t.current({silent:!0})}catch{}finally{ne.current=!1}}}const m=window.setInterval(()=>{h()},Ds),y=()=>{h()};return window.addEventListener("focus",y),()=>{r=!0,window.clearInterval(m),window.removeEventListener("focus",y)}},[t,n,C,S,f]),l.useEffect(()=>{if(S||!n||!t||s==="local_project"){nt(null);return}let r=!1;return z.workspaceTemplateConfig(n,t).then(h=>{r||nt(h.exists?h.configPath??fa:null)}).catch(()=>{r||nt(null)}),()=>{r=!0}},[t,n,S,s]),l.useEffect(()=>{!j||he.includes(j)||Q.includes(j)||ve($e[0]?.path??null)},[$e,Q,he,j]),l.useEffect(()=>{D?.active&&ce&&A("goal")},[D?.active,ce]),l.useEffect(()=>{_&&A(_.tab)},[_]),l.useEffect(()=>{!ce&&b==="goal"&&A("files")},[b,ce]),l.useEffect(()=>{!Se&&b==="summary"&&A("files")},[b,Se]);const V=b==="file"||w&&b==="files"?j:null;l.useEffect(()=>{if(!n||!V)return;if(xe(V)){ye(null),ke(v=>v===V?null:v);return}const r=yt?.path===V,h=Oe(V);if(C&&(h?.content!=null||h?.patch)){ye(null),ke(v=>v===V?null:v);return}if(!r&&(h?.content!=null||h?.patch&&!we)){ye(null),ke(v=>v===V?null:v);return}let m=!1;const y=ns.current[V];return y?.content==null&&(we||!y?.patch)&&ke(V),ye(null),(S?F?Ii(n,F,V,i):Promise.reject(new Error(H?.emptyMessage??"No sandbox filesystem is available.")):t?z.workspaceFile(n,t,V):Promise.reject(new Error("Workspace files are unavailable."))).then(v=>{m||Ye(R=>{const L=R[v.path];return L?.content===v.content&&L.patch===v.patch&&L.status===v.status?R:{...R,[v.path]:v}})}).catch(v=>{m||ye(v instanceof Error?v.message:String(v))}).finally(()=>{m||(ke(v=>v===V?null:v),St(v=>v&&v.id===yt?.id&&v.path===V?null:v))}),()=>{m=!0}},[b,t,n,yt,we,C,i,H?.emptyMessage,F,S,V]);function lt(r){const h=Ms(r,it);h&&(Ye(m=>{if(!(h in m))return m;const y={...m};return delete y[h],y}),St({id:Date.now(),path:h}),w||Xe(m=>m.includes(h)?m:[...m,h]),ve(h),A(w?"files":"file"),!S&&n&&t&&xe(h)&&tt(h),re(!1),se(!1),Kt(""))}const bn=l.useCallback(()=>{nn(r=>{const h=!r;return Yi(h),h})},[]),Oe=r=>sr(fe.get(r),Y[r],pe.get(r),r),jn=l.useCallback((r,h)=>{De(m=>{const y=m[r],$=y?.savedContent??rt[r]??Oe(r).content??"";return{...m,[r]:{content:h,savedContent:$,savedAt:y?.savedAt}}}),ze(m=>{if(!(r in m))return m;const y={...m};return delete y[r],y})},[fe,pe,Y,rt]),Ee=l.useCallback(async(r,h={})=>{if(S||!n||!t||xe(r))return;const m=Oe(r),y=h.content??le[r]?.content??m.content??void 0;if(y?.endsWith(pt))return;const $=We.current+1;We.current=$,oe.current?.abort(new Error("lsp_diagnostics_superseded"));const v=new AbortController;oe.current=v,kt(r);try{const R=await z.workspaceLspTouch(n,t,{path:r,content:y,waitForDiagnostics:h.waitForDiagnostics??!0},{signal:v.signal});if($!==We.current)return;vt(L=>({...L,[R.path]:R.diagnostics})),wt(L=>({...L,[R.path]:R.servers}))}catch(R){if(v.signal.aborted||$!==We.current)return;const L=R instanceof Error?R.message:String(R);vt(Ve=>({...Ve,[r]:[]})),wt(Ve=>({...Ve,[r]:[{id:"lsp",root:"",status:"error",message:L}]}))}finally{if(oe.current===v&&(oe.current=null),v.signal.aborted)return;$===We.current&&kt(R=>R===r?null:R)}},[t,n,fe,pe,le,Y,S]),vn=l.useCallback(async r=>{if(S||!n||!t)throw new Error("Workspace LSP is unavailable.");return z.workspaceLspAction(n,t,r)},[t,n,S]),Ue=l.useCallback(async r=>{if(!n||!t&&!F||Ie.current===r)return;const h=le[r];if(!h||h.content===h.savedContent)return;const m=h.content,y=Date.now();Ie.current=r,Nt(r),ze($=>{if(!(r in $))return $;const v={...$};return delete v[r],v});try{const $=S?await Vi(n,F,r,m):await z.saveWorkspaceFile(n,t,{path:r,content:m});Ye(v=>({...v,[$.path]:$})),De(v=>{const R=v[r];return R?{...v,[r]:{content:R.content,savedContent:m,savedAt:y}}:v}),Z.languageServers!=="off"&&Z.checkOnSave&&await Ee(r,{content:m,waitForDiagnostics:!0}),S?await Ne({silent:!0}):await W({silent:!0})}catch($){ze(v=>({...v,[r]:$ instanceof Error?$.message:String($)}))}finally{Ie.current===r&&(Ie.current=null),Nt($=>$===r?null:$)}},[Z.checkOnSave,Z.languageServers,t,n,le,W,Ee,Ne,F,S]),us=j?Oe(j):null,me=j?le[j]?.content??us?.content??null:null,wn=!!(us?.patch&&!we),Et=!!(!C&&b==="file"&&!wn&&j&&me!=null&&!xe(j)&&!(gt&&Bt(j))&&!me.endsWith(pt));l.useEffect(()=>{if(Z.languageServers==="off"||!Z.diagnosticsWhileEditing||!j||!Et||me==null)return;const r=window.setTimeout(()=>{Ee(j,{content:me,waitForDiagnostics:!0})},700);return()=>window.clearTimeout(r)},[Z.diagnosticsWhileEditing,Z.languageServers,Ee,me,Et,j]),l.useEffect(()=>{function r(h){!(h.ctrlKey||h.metaKey)||h.key.toLowerCase()!=="s"||b!=="file"||!j||(h.preventDefault(),Fe.has(j)&&Ue(j))}return window.addEventListener("keydown",r),()=>window.removeEventListener("keydown",r)},[b,Fe,Ue,j]);const kn=l.useCallback(()=>{j&&(Be.current?Be.current.save():Ue(j))},[Ue,j]),yn=l.useCallback(()=>{Be.current?.undo()},[]),Sn=l.useCallback(()=>{Be.current?.redo()},[]),Nn=l.useCallback(()=>{j&&Z.languageServers!=="off"&&Ee(j,{content:me??void 0,waitForDiagnostics:!0})},[Z.languageServers,Ee,me,j]);function Cn(r,h){if(h.stopPropagation(),!(Fe.has(r)&&!window.confirm(`Discard unsaved changes to ${r}?`))&&(Fe.has(r)&&(De(m=>{if(!(r in m))return m;const y={...m};return delete y[r],y}),ze(m=>{if(!(r in m))return m;const y={...m};return delete y[r],y})),Xe(m=>m.filter(y=>y!==r)),j===r)){const m=ds.find(y=>y.path!==r)??null;ve(m?.path??$e[0]?.path??null),m||A("files")}}function Rn(){A("files"),re(!1),se(!1)}function fs(r){bt(h=>{const m=new Set(h);return m.has(r)?m.delete(r):m.add(r),m})}function $n(r){r&&bt(h=>{const m=new Set(h);for(const y of ir(r))m.add(y);return m}),A("files"),re(!1),se(!1)}function Fn(){const h=`git apply <<'PATCH'
|
|
12
|
+
${$e.map(m=>m.patch).filter(Boolean).join(`
|
|
13
|
+
`)}
|
|
14
|
+
PATCH`;navigator.clipboard?.writeText(h)}const En=$e.length>0,An=he.length>0,Ln=Q.length>0,Pn=ce||Se||En||An||Ln,ue=b==="goal"&&ce?"goal":b==="summary"&&Se?"summary":b==="file"&&j?"file":"files",Dn=ue==="files"?"No files to show":"No local changes",Tn=s==="local_project"&&!f&&!p,ps=S?on:o,At=S?cn:p,_n=nr({changedFiles:de?.filesChanged??$e.length,checkpointStatus:xn,dirty:!!de?.dirty,error:At,loading:ps,preservedReadback:mn,sandboxMode:S,sourcePending:S&&!F}),Mn=ps?"Loading workspace files":At||(S&&!F?H?.emptyMessage??"No sandbox filesystem is available.":Tn?"Loading workspace files":f?Dn:"No local files to show"),zn=!S&&j&&xe(j)?j:null,In=!S&&et&&xe(et)?et:null,Lt=ys(n,t,zn),hs=ys(n,t,In),ms=ue==="file"||w&&ue==="files"?j:null,Wn=!!(ms&&Bt(ms)),xs=j?ss[j]??[]:[],gs=j?dn[j]??null:null,Pt=!!(j&&un===j),Dt=Xt&&Et,qe=!C&&!S&&Z.languageServers!=="off",Bn=l.useMemo(()=>Ji({activeDiagnostics:xs,activeServers:gs,editorDiagnosticsChecking:Pt,editorLspEnabled:qe,showEditorCommandBar:Dt}),[xs,gs,Pt,qe,Dt]),On=l.useCallback(async r=>{if(!n)throw new Error("OpenPond server connection is unavailable.");await z.runSubagentLifecycleAction(n,r.runId,{action:r.action,reason:"User requested from Goal details."}),await W({silent:!0})},[n,W]),bs=j?e.jsx(Fi,{diagnostics:qe?ss[j]??[]:[],draftContent:le[j]?.content,editorRef:Be,editable:!C&&!Lt,error:pn,file:Oe(j),collapsed:Zt,hideWhiteSpace:Jt,imageSrc:Lt,loading:fn===j,loadFullFiles:we,saveError:hn[j]??null,saving:Je===j,onOpenImage:()=>{Lt&&tt(j)},onDraftContentChange:r=>jn(j,r),onLspAction:qe?vn:void 0,onSave:()=>{Ue(j)},onSelectBreadcrumbPath:$n,renderMarkdown:gt,splitView:es,wordDiffs:Yt,wordWrap:Qt,workspaceName:u,workspaceRootPath:it}):null;return e.jsxs(e.Fragment,{children:[e.jsxs("aside",{className:`workspace-diff-panel ${c?"expanded":""}`,"aria-label":"Workspace diffs",children:[!c&&e.jsx("div",{className:"workspace-diff-resize-handle",role:"separator","aria-orientation":"vertical","aria-label":"Resize diff panel",onPointerDown:G}),e.jsx(bi,{addMenuOpen:Xs,expanded:c,filteredFiles:gn,openFiles:ds,dirtyFilePaths:Fe,goalDetailsAvailable:ce,searchOpen:Ys,searchQuery:xt,selectedPath:j,sideChatTabs:I,summaryAvailable:Se,sourceStatus:_n,sourceSwitcher:T,visibleTab:ue,onCloseFileTab:Cn,onCloseSideChat:P,onCloseSearch:()=>se(!1),onOpenFile:lt,onOpenBrowser:()=>{re(!1),se(!1),N()},onOpenSearch:()=>{re(!1),se(!0)},onOpenSideChat:E?()=>{re(!1),se(!1),E()}:void 0,onSearchQueryChange:Kt,onSelectFile:r=>{ve(r),A("file")},onSelectFiles:Rn,onSelectGoal:()=>A("goal"),onSelectSummary:()=>{A("summary"),re(!1),se(!1)},onSelectSideChat:X,onToggleAddMenu:()=>{re(r=>!r),se(!1)},onToggleExpanded:x}),ue==="goal"&&ce?e.jsx(za,{createRuntime:D?.createRuntime??null,goalRuntime:D?.goalRuntime??null,subagentRuntime:D?.subagentRuntime??null,onRunSubagentLifecycleAction:n?On:void 0}):ue==="summary"&&Se?K?e.jsx(hi,{summary:K}):e.jsx(ri,{sandboxId:F,connection:n}):Pn?e.jsxs(e.Fragment,{children:[e.jsx(ji,{canSaveActiveFile:!!(!C&&j&&Fe.has(j)&&Je!==j),canCheckActiveFile:qe,collapsed:Zt,editorControlsVisible:Xt,editorDiagnosticStatus:Bn,editorDiagnosticsChecking:Pt,hideWhiteSpace:Jt,loadFullFiles:we,menuOpen:Ze,renderMarkdown:gt,showEditorCommandBar:Dt,showRenderMarkdownToggle:Wn,splitView:es,wordDiffs:Yt,wordWrap:Qt,onCopyGitApply:Fn,onEditorCheck:Nn,onEditorRedo:Sn,onEditorSave:kn,onEditorUndo:yn,onRefresh:()=>{S?Ne():W()},onToggleCollapsed:()=>en(r=>!r),onToggleEditorControlsVisible:bn,onToggleHideWhiteSpace:()=>rn(r=>!r),onToggleLoadFullFiles:()=>tn(r=>!r),onToggleMenu:r=>Pe(h=>r??!h),onToggleRenderMarkdown:()=>sn(r=>!r),onToggleSplitView:()=>ln(r=>!r),onToggleWordDiffs:()=>an(r=>!r),onToggleWordWrap:()=>Js(r=>!r)}),ue==="files"&&(w?e.jsxs("div",{className:"workspace-diff-files-preview-layout",children:[e.jsx(Es,{diff:de,expandedFolderPaths:ts,rootPath:g,repoFiles:he,selectedPath:j,onOpenFile:lt,onToggleFolder:fs}),bs??e.jsx("div",{className:"workspace-diff-files-preview-empty",children:"Select a file to review its changes."})]}):e.jsx(Es,{diff:de,expandedFolderPaths:ts,rootPath:g,repoFiles:he,selectedPath:j,onOpenFile:lt,onToggleFolder:fs})),ue==="file"&&j&&bs]}):e.jsx("div",{className:"workspace-diff-empty",children:e.jsx("span",{children:Mn})})]}),e.jsx(ha,{open:!!hs,src:hs,title:et??"",onClose:()=>tt(null)})]})}export{fr as WorkspaceDiffPanel};
|
|
@@ -1,4 +1,4 @@
|
|
|
1
|
-
import{d as ut,aj as Ye,r as m,ak as qt,al as Ut,j as t,X as mt,E as Lt,am as Ne,an as Ot,ag as at,ai as Ft,R as st,ao as Bt,v as Dt,ap as Gt,aq as Tt,ar as rt,m as O,n as kt,as as Ht,at as Vt,af as Ke,au as Xt,S as Kt,K as Jt}from"./index-CU2qhUYV.js";import{B as we}from"./boxes-DAaDUabq.js";import{I as Qt}from"./info-CQNTh78o.js";import{M as Zt}from"./monitor-DsIswrMV.js";import{P as $e}from"./play-CeRw21NV.js";import{G as Yt}from"./git-commit-horizontal-CAickXpN.js";import{R as Je}from"./refresh-cw-N5b_6AP5.js";const Wt=[["path",{d:"M22 12h-2.48a2 2 0 0 0-1.93 1.46l-2.35 8.36a.25.25 0 0 1-.48 0L9.24 2.18a.25.25 0 0 0-.48 0l-2.35 8.36A2 2 0 0 1 4.49 12H2",key:"169zse"}]],en=ut("activity",Wt);const tn=[["path",{d:"m15 12-9.373 9.373a1 1 0 0 1-3.001-3L12 9",key:"1hayfq"}],["path",{d:"m18 15 4-4",key:"16gjal"}],["path",{d:"m21.5 11.5-1.914-1.914A2 2 0 0 1 19 8.172v-.344a2 2 0 0 0-.586-1.414l-1.657-1.657A6 6 0 0 0 12.516 3H9l1.243 1.243A6 6 0 0 1 12 8.485V10l2 2h1.172a2 2 0 0 1 1.414.586L18.5 14.5",key:"15ts47"}]],nn=ut("hammer",tn);function an(e){const n=te(e?.data),a=te(n.preview);return(typeof a.url=="string"?a.url.trim():"")||null}function sn(){const e=window.open("","_blank");return e?(e.document.write('<!doctype html><title>Opening sandbox preview</title><body style="margin:0;background:#05070a;color:#f5f5f4;font:14px system-ui,sans-serif;display:grid;place-items:center;height:100vh;">Opening sandbox preview...</body>'),e.document.close(),e):null}function ye(e,n){if(!n){e?.close();return}if(e){e.opener=null,e.location.href=n;return}window.open(n,"_blank","noopener,noreferrer")}function pt(e){const n=rn(e),a=ln(te(e?.resources)),i=te(te(e?.inputs).schema),g=te(i.properties),u=new Set(ft(i.required)),l=[],x=[];for(const[p,N]of Object.entries(g)){const c=te(N),U=te(c["x-openpond-upload"]??c.xOpenPondUpload),I=typeof c.type=="string"?c.type:"string",H=te(c.items),z=pn(c,U),v=c.format==="file"||U.enabled===!0||I==="array"&&H.format==="file",M=typeof c.title=="string"&&c.title.trim()?c.title.trim():xn(p);if(v){x.push({name:p,label:M,required:u.has(p),multiple:I==="array"||U.multiple===!0,accept:gn(U,c),targetPath:bn(U,p),targetNames:z});continue}(I==="string"||I==="number"||I==="integer"||I==="boolean")&&l.push({name:p,label:M,required:u.has(p),type:I,defaultValue:typeof c.default=="string"||typeof c.default=="number"||typeof c.default=="boolean"?String(c.default):"",targetNames:z})}return{entrypoints:n,scalarInputs:l,fileInputs:x,envInputs:cn(e),resources:a,volumes:on(e,x),schedules:dn(e)}}function Fe(e,n){const a=n.trim();return e.filter(i=>!i.targetNames||i.targetNames.length===0?!0:i.targetNames.includes(a))}function rn(e){return e?Ye(e).flatMap(n=>{if(n.kind==="action")return[];const a=n.name.trim(),i=n.command.trim(),g=Be(n.timeoutSeconds),u=n.ports.flatMap(l=>{const x=Be(l.port);return x?[{port:x,label:typeof l.label=="string"&&l.label.trim()?l.label.trim():"web",access:l.access==="public"?"public":"private",path:typeof l.path=="string"&&l.path.trim()?l.path.trim():"/"}]:[]});return a&&i?[{name:a,command:i,timeoutSeconds:g,ports:u}]:[]}):[]}function ln(e){return{cpu:Qe(e.cpu)??1,memoryGb:Qe(e.memoryGb)??1,diskGb:Qe(e.diskGb)??8}}function on(e,n){const a=Array.isArray(e?.volumes)?e.volumes:[];if(a.length>0)return a.map((u,l)=>{const x=l===0?"volume":`volume-${l+1}`,p=typeof u.name=="string"&&u.name.trim()?u.name.trim():x;return{name:p,mountPath:typeof u.mountPath=="string"&&u.mountPath.trim()?u.mountPath.trim():`/workspace/volumes/${p}`,...Be(u.storageGb)?{storageGb:Be(u.storageGb)??void 0}:{},deleteOnSandboxDelete:u.deleteOnSandboxDelete===!0}});const i=n.find(u=>u.targetPath.startsWith("volumes/"));if(!i)return[];const[,g="volume"]=i.targetPath.split("/");return[{name:g,mountPath:`/workspace/volumes/${g}`,storageGb:8,deleteOnSandboxDelete:!1}]}function cn(e){return(Array.isArray(e?.inputs.env)?e.inputs.env:[]).flatMap(a=>{const i=typeof a.name=="string"?a.name.trim():"";return i?[{name:i,required:a.required===!0,secret:a.secret!==!1,description:typeof a.description=="string"?a.description.trim():""}]:[]})}function dn(e){return e?.schedules?.length?e.schedules.flatMap(n=>{const a=typeof n.name=="string"?n.name.trim():"",i=un(n);if(!a||!i.scheduleExpression)return[];try{return[{name:a,...typeof n.description=="string"&&n.description.trim()?{description:n.description.trim()}:{},enabled:!1,...i,...typeof n.timezone=="string"&&n.timezone.trim()?{timezone:n.timezone.trim()}:{},...typeof n.startAt=="string"&&n.startAt.trim()?{startAt:n.startAt.trim()}:{},...typeof n.endAt=="string"&&n.endAt.trim()?{endAt:n.endAt.trim()}:{},...typeof n.maxRuns=="number"&&Number.isInteger(n.maxRuns)&&n.maxRuns>0?{maxRuns:n.maxRuns}:{},runtimePolicy:n.runtimePolicy,target:mn(e,n),...n.budget?{budget:n.budget}:{},...n.resources?{resources:n.resources}:{},...n.quotas?{quotas:n.quotas}:{},...n.lifecycle?{lifecycle:n.lifecycle}:{},...n.retentionPolicy?{retentionPolicy:n.retentionPolicy}:{},...n.env?{env:n.env}:{},...n.integrationLeases?{integrationLeases:n.integrationLeases}:{},metadata:{...te(n.metadata),manifestScheduleName:a,source:"openpond-app-sandbox-template-start"}}]}catch{return[]}}):[]}function un(e){return e.scheduleExpression?{scheduleType:e.scheduleType??"cron",scheduleExpression:e.scheduleExpression}:e.rate?{scheduleType:"rate",scheduleExpression:/^rate\(/i.test(e.rate)?e.rate:`rate(${e.rate})`}:e.once?{scheduleType:"once",scheduleExpression:/^at\(/i.test(e.once)?e.once:`at(${e.once})`}:{scheduleType:"cron",scheduleExpression:e.cron??""}}function mn(e,n){const a=n.command??n.target?.command??null;if(a)return{kind:"command",command:a,requiresStart:n.requiresStart??n.target?.requiresStart??!1};const i=n.target?.kind??"action";if(i==="start")return{kind:"command",command:e.start.command,requiresStart:n.requiresStart??n.target?.requiresStart??e.start.requiresStart??!1};if(i==="service"){const l=n.target?.name??"",x=e.services.find(p=>p.name===l);if(!x)throw new Error("schedule_service_target_missing");return{kind:"command",command:x.command,requiresStart:n.requiresStart??n.target?.requiresStart??x.requiresStart??!1}}const g=n.actionName??n.action??n.target?.actionName??(n.target?.kind==="action"?n.target?.name:void 0),u=e.actions.find(l=>l.name===g);if(!u)throw new Error("schedule_action_target_missing");return{kind:"command",command:u.command,requiresStart:n.requiresStart??n.target?.requiresStart??u.requiresStart??!1}}function gt(e,n){return e.flatMap(a=>{const i=(n[a.name]??"").trim();return i?[{name:a.name,secretRef:i}]:[]})}function bt(e,n){const a={};for(const i of e){const g=n[i.name]??"";if(!(!g.trim()&&!i.required))if(i.type==="boolean")a[i.name]=g==="true";else if(i.type==="number"||i.type==="integer"){const u=Number(g);Number.isFinite(u)&&(a[i.name]=i.type==="integer"?Math.trunc(u):u)}else a[i.name]=g}return a}function pn(e,n){const a=e["x-openpond-targets"]??e.xOpenPondTargets??n.targets??n.actions,i=ft(a).map(g=>g.trim()).filter(Boolean);return i.length>0?[...new Set(i)]:null}function gn(e,n){return typeof e.accept=="string"?e.accept.trim():Array.isArray(e.accept)?e.accept.filter(a=>typeof a=="string").join(","):typeof n.accept=="string"?n.accept.trim():""}function bn(e,n){return(typeof e.targetPath=="string"&&e.targetPath.trim()?e.targetPath.trim():typeof e.path=="string"&&e.path.trim()?e.path.trim():`uploads/${n}`).replace(/^\/+/,"").replace(/^workspace\//,"").replace(/\/+$/,"")}function Qe(e){const n=Number(e);return Number.isFinite(n)&&n>0?n:null}function Be(e){const n=Number(e);return Number.isInteger(n)&&n>0?n:null}function fn(e,n){return[n,...e.slice(1)]}function ft(e){return Array.isArray(e)?e.filter(n=>typeof n=="string"):[]}function xn(e){return e.replace(/([a-z0-9])([A-Z])/g,"$1 $2").replace(/[-_]+/g," ").replace(/\b\w/g,n=>n.toUpperCase())}function te(e){return e&&typeof e=="object"&&!Array.isArray(e)?e:{}}function hn({busy:e,defaultRepoUrl:n,projectName:a,commitBeforeCreate:i,templateManifest:g,uploadBeforeCreate:u,onClose:l,onSubmit:x}){const p=m.useMemo(()=>pt(g),[g]),N=p.entrypoints[0]??null,[c,U]=m.useState(n),[I,H]=m.useState(N?.name??""),[z,v]=m.useState(N?.command??""),[M,V]=m.useState(N?.timeoutSeconds?String(N.timeoutSeconds):""),[X,b]=m.useState(`Update ${a}`),[j,w]=m.useState("0.05"),[_,F]=m.useState(()=>Object.fromEntries(p.scalarInputs.map(r=>[r.name,r.defaultValue]))),[B,ae]=m.useState(()=>Object.fromEntries(p.envInputs.map(r=>[r.name,""]))),[Z,fe]=m.useState({}),J=p.volumes[0]??null,[Y,o]=m.useState(p.volumes.length>0||p.fileInputs.length>0),[P,A]=m.useState(J?.name??"volume"),[R,$]=m.useState(J?.mountPath??"/workspace/volumes/volume"),[K,ce]=m.useState(String(J?.storageGb??8)),[Pe,de]=m.useState(!(J?.deleteOnSandboxDelete??!1)),[q,ze]=m.useState(p.schedules),Me=p.entrypoints.find(r=>r.name===I)??N,se=Me?.ports??[],re=se[0]??null,[ue,xe]=m.useState(!!re),[Ce,me]=m.useState(re?String(re.port):""),D=Number(Ce),he=Number(j),ie=Number(K),le=Number(M),ke=!M.trim()||Number.isInteger(le)&&le>0&&le<=86400,oe=!ue||Number.isInteger(D)&&D>=qt&&D<=Ut&&se.some(r=>r.port===D),Ie=Number.isFinite(he)&&he>0,ne=!Y||Number.isInteger(ie)&&ie>0,G=q.every(r=>!r.enabled||!!r.scheduleExpression.trim()),W=Fe(p.scalarInputs,I),je=Fe(p.fileInputs,I),qe=p.envInputs.every(r=>!r.required||!!(B[r.name]??"").trim()),ve=p.envInputs.filter(r=>r.required&&!(B[r.name]??"").trim()),Re=(u||!!c.trim())&&!!z.trim()&&Ie&&ke&&ne&&W.every(r=>!r.required||!!(_[r.name]??"").trim())&&je.every(r=>!r.required||(Z[r.name]?.length??0)>0)&&qe&&G&&oe;function He(r){H(r);const f=p.entrypoints.find(E=>E.name===r);if(!f)return;v(f.command),V(f.timeoutSeconds?String(f.timeoutSeconds):"");const y=f.ports[0]??null;me(y?String(y.port):""),xe(!!y)}function _e(r,f){F(y=>({...y,[r]:f}))}function pe(r,f){ae(y=>({...y,[r]:f}))}function Ve(r,f){const y=Array.from(f.target.files??[]);fe(E=>({...E,[r.name]:r.multiple?y:y.slice(0,1)}))}function ee(r,f){ze(y=>y.map((E,ge)=>ge===r?{...E,...f}:E))}function Ee(r){r.preventDefault(),!(!Re||e)&&x({repoUrl:c.trim(),command:z.trim(),entrypointName:I,commitMessage:X.trim(),budgetUsd:j.trim(),params:bt(W,_),env:gt(p.envInputs,B),timeoutSeconds:M.trim()&&Number.isInteger(le)?le:Me?.timeoutSeconds??null,uploads:je.flatMap(f=>{const y=Z[f.name]??[];return y.length>0?[{inputName:f.name,label:f.label,targetPath:f.targetPath,multiple:f.multiple,files:y}]:[]}),resources:p.resources,volumes:Y?fn(p.volumes,{...P.trim()?{name:P.trim()}:{},...R.trim()?{mountPath:R.trim()}:{},...Number.isInteger(ie)&&ie>0?{storageGb:ie}:{},deleteOnSandboxDelete:!Pe}):[],schedules:q.filter(f=>f.enabled),openPreview:ue,previewPort:ue?D:null,previewLabel:se.find(f=>f.port===D)?.label??"web",previewAccess:se.find(f=>f.port===D)?.access??"private"})}return t.jsx("div",{className:"git-dialog-backdrop",role:"presentation",children:t.jsxs("form",{className:"git-dialog run-once-dialog sandbox-start-dialog",role:"dialog","aria-modal":"true","aria-label":"Start sandbox",onSubmit:Ee,children:[t.jsx("button",{className:"git-dialog-close",disabled:e,type:"button",title:"Close","aria-label":"Close",onClick:l,children:t.jsx(mt,{size:15})}),t.jsxs("div",{className:"sandbox-start-dialog-heading",children:[t.jsx("div",{className:"git-dialog-icon",children:t.jsx(we,{size:18})}),t.jsx("h2",{children:"Start sandbox"}),t.jsxs("div",{className:"git-dialog-row",children:[t.jsx("span",{children:"Project"}),t.jsx("strong",{children:a})]})]}),t.jsxs("div",{className:"sandbox-start-dialog-body",children:[u?null:t.jsxs("label",{className:"git-dialog-field",children:[t.jsx("span",{children:"Repository"}),t.jsx("input",{disabled:e,value:c,onChange:r=>U(r.target.value)})]}),i?t.jsxs("label",{className:"git-dialog-field",children:[t.jsx("span",{children:"Commit message"}),t.jsx("input",{disabled:e,value:X,onChange:r=>b(r.target.value)})]}):null,p.entrypoints.length>0?t.jsxs("label",{className:"git-dialog-field",children:[t.jsx("span",{children:"Run target"}),t.jsx("select",{disabled:e,value:I,onChange:r=>He(r.target.value),children:p.entrypoints.map(r=>t.jsx("option",{value:r.name,children:r.name},r.name))})]}):null,t.jsxs("label",{className:"git-dialog-field",children:[t.jsx("span",{children:"Shell command"}),t.jsx("input",{disabled:e,value:z,onChange:r=>v(r.target.value)})]}),t.jsxs("label",{className:"git-dialog-field",children:[t.jsx("span",{children:"Timeout seconds"}),t.jsx("input",{disabled:e,inputMode:"numeric",value:M,onChange:r=>V(r.target.value)})]}),W.map(r=>r.type==="boolean"?t.jsxs("label",{className:"git-dialog-toggle",children:[t.jsx("input",{checked:(_[r.name]??"")==="true",disabled:e,type:"checkbox",onChange:f=>_e(r.name,f.target.checked?"true":"false")}),t.jsx("span",{}),r.label]},r.name):t.jsxs("label",{className:"git-dialog-field",children:[t.jsx("span",{children:r.label}),t.jsx("input",{disabled:e,inputMode:r.type==="number"||r.type==="integer"?"decimal":void 0,value:_[r.name]??"",onChange:f=>_e(r.name,f.target.value)})]},r.name)),je.map(r=>t.jsxs("label",{className:"git-dialog-field",children:[t.jsx("span",{children:r.label}),t.jsx("input",{accept:r.accept||void 0,disabled:e,multiple:r.multiple,type:"file",onChange:f=>Ve(r,f)})]},r.name)),p.envInputs.length>0?t.jsxs("div",{className:"sandbox-start-env-section",children:[t.jsx("div",{className:"sandbox-start-section-title",children:"Environment"}),ve.length>0?t.jsxs("p",{className:"sandbox-start-env-warning",role:"status",children:["Required sandbox secret ref missing: ",ve.map(r=>r.name).join(", ")]}):null,p.envInputs.map(r=>{const f=B[r.name]??"",y=r.required&&!f.trim(),E=`sandbox-env-${r.name}-description`;return t.jsxs("label",{className:"git-dialog-field",children:[t.jsxs("span",{children:[r.name,r.required?" *":""]}),t.jsx("input",{"aria-describedby":E,"aria-invalid":y,disabled:e,placeholder:"openpond://secret/...",value:f,onChange:ge=>pe(r.name,ge.target.value)}),t.jsx("small",{id:E,children:y?"Add a sandbox secret ref before starting.":r.description||"Sandbox secret ref only."})]},r.name)})]}):null,je.length>0||p.volumes.length>0?t.jsxs(t.Fragment,{children:[t.jsxs("label",{className:"git-dialog-toggle",children:[t.jsx("input",{checked:Y,disabled:e,type:"checkbox",onChange:r=>o(r.target.checked)}),t.jsx("span",{}),"Mount volume"]}),Y?t.jsxs(t.Fragment,{children:[t.jsxs("div",{className:"run-once-dialog-grid",children:[t.jsxs("label",{className:"git-dialog-field",children:[t.jsx("span",{children:"Volume"}),t.jsx("input",{disabled:e,value:P,onChange:r=>A(r.target.value)})]}),t.jsxs("label",{className:"git-dialog-field",children:[t.jsx("span",{children:"Storage GiB"}),t.jsx("input",{disabled:e,inputMode:"numeric",value:K,onChange:r=>ce(r.target.value)})]})]}),t.jsxs("label",{className:"git-dialog-field",children:[t.jsx("span",{children:"Mount path"}),t.jsx("input",{disabled:e,value:R,onChange:r=>$(r.target.value)})]}),t.jsxs("label",{className:"git-dialog-toggle",children:[t.jsx("input",{checked:Pe,disabled:e,type:"checkbox",onChange:r=>de(r.target.checked)}),t.jsx("span",{}),"Keep volume"]})]}):null]}):null,q.length>0?t.jsxs("div",{className:"sandbox-start-schedules",children:[t.jsx("div",{className:"sandbox-start-section-title",children:"Schedules"}),q.map((r,f)=>t.jsxs("div",{className:"sandbox-start-schedule-row",children:[t.jsxs("label",{className:"git-dialog-toggle",children:[t.jsx("input",{checked:r.enabled,disabled:e,type:"checkbox",onChange:y=>ee(f,{enabled:y.target.checked})}),t.jsx("span",{}),r.name]}),t.jsxs("div",{className:"run-once-dialog-grid",children:[t.jsxs("label",{className:"git-dialog-field",children:[t.jsx("span",{children:"Type"}),t.jsxs("select",{disabled:e||!r.enabled,value:r.scheduleType,onChange:y=>ee(f,{scheduleType:y.target.value}),children:[t.jsx("option",{value:"rate",children:"Rate"}),t.jsx("option",{value:"cron",children:"Cron"}),t.jsx("option",{value:"once",children:"Once"})]})]}),t.jsxs("label",{className:"git-dialog-field",children:[t.jsx("span",{children:"Max runs"}),t.jsx("input",{disabled:e||!r.enabled,inputMode:"numeric",value:r.maxRuns??"",onChange:y=>{const E=Number(y.target.value);ee(f,{maxRuns:Number.isInteger(E)&&E>0?E:null})}})]})]}),t.jsxs("label",{className:"git-dialog-field",children:[t.jsx("span",{children:"Expression"}),t.jsx("input",{disabled:e||!r.enabled,value:r.scheduleExpression,onChange:y=>ee(f,{scheduleExpression:y.target.value})})]})]},r.name))]}):null,t.jsxs("label",{className:"git-dialog-field",children:[t.jsx("span",{children:"Budget"}),t.jsx("input",{disabled:e,inputMode:"decimal",value:j,onChange:r=>w(r.target.value)})]}),se.length>0?t.jsxs(t.Fragment,{children:[t.jsxs("label",{className:"git-dialog-toggle",children:[t.jsx("input",{checked:ue,disabled:e,type:"checkbox",onChange:r=>xe(r.target.checked)}),t.jsx("span",{}),"Open preview"]}),t.jsxs("label",{className:"git-dialog-field",children:[t.jsx("span",{children:"Preview port"}),t.jsx("select",{disabled:e||!ue,value:Ce,onChange:r=>me(r.target.value),children:se.map(r=>t.jsx("option",{value:r.port,children:r.label?`${r.label} (${r.port})`:r.port},r.port))})]})]}):null]}),t.jsxs("div",{className:"git-dialog-footer sandbox-start-dialog-footer",children:[t.jsx("button",{className:"git-dialog-secondary",disabled:e,type:"button",onClick:l,children:"Cancel"}),t.jsxs("button",{className:"git-dialog-primary",disabled:e||!Re,title:qe?void 0:"Required sandbox secret refs are missing.",type:"submit",children:[t.jsx(Lt,{size:14}),"Start"]})]})]})})}function jn({busy:e,projectName:n,templateManifest:a,onClose:i,onSubmit:g}){const u=m.useMemo(()=>pt(a),[a]),l=m.useMemo(()=>a?Ye(a).filter(o=>o.kind==="action"):[],[a]),x=l[0]??null,[p,N]=m.useState("sandbox"),[c,U]=m.useState(x?.name??""),[I,H]=m.useState(()=>Object.fromEntries(u.scalarInputs.map(o=>[o.name,o.defaultValue]))),[z,v]=m.useState(()=>Object.fromEntries(u.envInputs.map(o=>[o.name,""]))),[M,V]=m.useState({}),X=Fe(u.scalarInputs,c),b=Fe(u.fileInputs,c),j=p==="sandbox"?u.envInputs:[],w=X.every(o=>!o.required||!!(I[o.name]??"").trim()),_=b.every(o=>!o.required||(M[o.name]?.length??0)>0),F=j.every(o=>!o.required||!!(z[o.name]??"").trim()),B=j.filter(o=>o.required&&!(z[o.name]??"").trim()),ae=!!c&&w&&_&&F;function Z(o,P){H(A=>({...A,[o]:P}))}function fe(o,P){v(A=>({...A,[o]:P}))}function J(o,P,A){const R=Array.from(A.target.files??[]);V($=>({...$,[o]:P?R:R.slice(0,1)}))}function Y(o){o.preventDefault(),!(!ae||e)&&g({mode:p,target:c,params:bt(X,I),env:p==="sandbox"?gt(j,z):[],uploads:b.flatMap(P=>{const A=M[P.name]??[];return A.length>0?[{inputName:P.name,label:P.label,targetPath:P.targetPath,multiple:P.multiple,files:A}]:[]})})}return t.jsx("div",{className:"git-dialog-backdrop",role:"presentation",children:t.jsxs("form",{className:"git-dialog run-once-dialog sandbox-start-dialog",role:"dialog","aria-modal":"true","aria-label":"Run sandbox action",onSubmit:Y,children:[t.jsx("button",{className:"git-dialog-close",disabled:e,type:"button",title:"Close","aria-label":"Close",onClick:i,children:t.jsx(mt,{size:15})}),t.jsxs("div",{className:"sandbox-start-dialog-heading",children:[t.jsx("div",{className:"git-dialog-icon",children:t.jsx($e,{size:18})}),t.jsx("h2",{children:"Run action"}),t.jsxs("div",{className:"git-dialog-row",children:[t.jsx("span",{children:"Project"}),t.jsx("strong",{children:n})]})]}),t.jsxs("div",{className:"sandbox-start-dialog-body",children:[t.jsxs("label",{className:"git-dialog-field",children:[t.jsx("span",{children:"Action"}),t.jsx("select",{disabled:e||l.length===0,value:c,onChange:o=>U(o.target.value),children:l.map(o=>t.jsx("option",{value:o.name,children:o.name},o.name))})]}),t.jsxs("label",{className:"git-dialog-field",children:[t.jsx("span",{children:"Run on"}),t.jsxs("select",{disabled:e,value:p,onChange:o=>N(o.target.value==="local"?"local":"sandbox"),children:[t.jsx("option",{value:"sandbox",children:"Hosted sandbox (start/update)"}),t.jsx("option",{value:"local",children:"Local machine"})]})]}),X.map(o=>o.type==="boolean"?t.jsxs("label",{className:"git-dialog-toggle",children:[t.jsx("input",{checked:(I[o.name]??"")==="true",disabled:e,type:"checkbox",onChange:P=>Z(o.name,P.target.checked?"true":"false")}),t.jsx("span",{}),o.label]},o.name):t.jsxs("label",{className:"git-dialog-field",children:[t.jsx("span",{children:o.label}),t.jsx("input",{disabled:e,inputMode:o.type==="number"||o.type==="integer"?"decimal":void 0,value:I[o.name]??"",onChange:P=>Z(o.name,P.target.value)})]},o.name)),b.map(o=>t.jsxs("label",{className:"git-dialog-field",children:[t.jsx("span",{children:o.label}),t.jsx("input",{accept:o.accept||void 0,disabled:e,multiple:o.multiple,type:"file",onChange:P=>J(o.name,o.multiple,P)})]},o.name)),j.length>0?t.jsxs("div",{className:"sandbox-start-env-section",children:[t.jsx("div",{className:"sandbox-start-section-title",children:"Environment"}),B.length>0?t.jsxs("p",{className:"sandbox-start-env-warning",role:"status",children:["Required sandbox secret ref missing: ",B.map(o=>o.name).join(", ")]}):null,j.map(o=>{const P=z[o.name]??"",A=o.required&&!P.trim(),R=`sandbox-action-env-${o.name}-description`;return t.jsxs("label",{className:"git-dialog-field",children:[t.jsxs("span",{children:[o.name,o.required?" *":""]}),t.jsx("input",{"aria-describedby":R,"aria-invalid":A,disabled:e,placeholder:"openpond://secret/...",value:P,onChange:$=>fe(o.name,$.target.value)}),t.jsx("small",{id:R,children:A?"Add a sandbox secret ref before running.":o.description||"Sandbox secret ref only."})]},o.name)})]}):null]}),t.jsxs("div",{className:"git-dialog-footer sandbox-start-dialog-footer",children:[t.jsx("button",{className:"git-dialog-secondary",disabled:e,type:"button",onClick:i,children:"Cancel"}),t.jsxs("button",{className:"git-dialog-primary",disabled:e||!ae,title:F?void 0:"Required sandbox secret refs are missing.",type:"submit",children:[t.jsx($e,{size:14}),"Run"]})]})]})})}function xt(e,n){const a=e.trim().toLowerCase().replace(/[^a-z0-9]+/g,"-").replace(/^-+|-+$/g,"")||"agent";return n==="cron"?`name: ${a}
|
|
1
|
+
import{d as ut,ak as Ye,r as m,al as qt,am as Ut,j as t,X as mt,E as Lt,an as Ne,ao as Ot,ah as at,aj as Ft,R as st,ap as Bt,v as Dt,aq as Gt,ar as Tt,as as rt,m as O,n as kt,at as Ht,au as Vt,ag as Ke,av as Xt,S as Kt,K as Jt}from"./index-D7Vr3zcV.js";import{B as we}from"./boxes-CFihgX2z.js";import{I as Qt}from"./info-D0xuy5IB.js";import{M as Zt}from"./monitor-B4-9Shtp.js";import{P as $e}from"./play-BJdhBqQE.js";import{G as Yt}from"./git-commit-horizontal-C5mUmACv.js";import{R as Je}from"./refresh-cw-DE0u_nmZ.js";const Wt=[["path",{d:"M22 12h-2.48a2 2 0 0 0-1.93 1.46l-2.35 8.36a.25.25 0 0 1-.48 0L9.24 2.18a.25.25 0 0 0-.48 0l-2.35 8.36A2 2 0 0 1 4.49 12H2",key:"169zse"}]],en=ut("activity",Wt);const tn=[["path",{d:"m15 12-9.373 9.373a1 1 0 0 1-3.001-3L12 9",key:"1hayfq"}],["path",{d:"m18 15 4-4",key:"16gjal"}],["path",{d:"m21.5 11.5-1.914-1.914A2 2 0 0 1 19 8.172v-.344a2 2 0 0 0-.586-1.414l-1.657-1.657A6 6 0 0 0 12.516 3H9l1.243 1.243A6 6 0 0 1 12 8.485V10l2 2h1.172a2 2 0 0 1 1.414.586L18.5 14.5",key:"15ts47"}]],nn=ut("hammer",tn);function an(e){const n=te(e?.data),a=te(n.preview);return(typeof a.url=="string"?a.url.trim():"")||null}function sn(){const e=window.open("","_blank");return e?(e.document.write('<!doctype html><title>Opening sandbox preview</title><body style="margin:0;background:#05070a;color:#f5f5f4;font:14px system-ui,sans-serif;display:grid;place-items:center;height:100vh;">Opening sandbox preview...</body>'),e.document.close(),e):null}function ye(e,n){if(!n){e?.close();return}if(e){e.opener=null,e.location.href=n;return}window.open(n,"_blank","noopener,noreferrer")}function pt(e){const n=rn(e),a=ln(te(e?.resources)),i=te(te(e?.inputs).schema),g=te(i.properties),u=new Set(ft(i.required)),l=[],x=[];for(const[p,N]of Object.entries(g)){const c=te(N),U=te(c["x-openpond-upload"]??c.xOpenPondUpload),I=typeof c.type=="string"?c.type:"string",H=te(c.items),z=pn(c,U),v=c.format==="file"||U.enabled===!0||I==="array"&&H.format==="file",M=typeof c.title=="string"&&c.title.trim()?c.title.trim():xn(p);if(v){x.push({name:p,label:M,required:u.has(p),multiple:I==="array"||U.multiple===!0,accept:gn(U,c),targetPath:bn(U,p),targetNames:z});continue}(I==="string"||I==="number"||I==="integer"||I==="boolean")&&l.push({name:p,label:M,required:u.has(p),type:I,defaultValue:typeof c.default=="string"||typeof c.default=="number"||typeof c.default=="boolean"?String(c.default):"",targetNames:z})}return{entrypoints:n,scalarInputs:l,fileInputs:x,envInputs:cn(e),resources:a,volumes:on(e,x),schedules:dn(e)}}function Fe(e,n){const a=n.trim();return e.filter(i=>!i.targetNames||i.targetNames.length===0?!0:i.targetNames.includes(a))}function rn(e){return e?Ye(e).flatMap(n=>{if(n.kind==="action")return[];const a=n.name.trim(),i=n.command.trim(),g=Be(n.timeoutSeconds),u=n.ports.flatMap(l=>{const x=Be(l.port);return x?[{port:x,label:typeof l.label=="string"&&l.label.trim()?l.label.trim():"web",access:l.access==="public"?"public":"private",path:typeof l.path=="string"&&l.path.trim()?l.path.trim():"/"}]:[]});return a&&i?[{name:a,command:i,timeoutSeconds:g,ports:u}]:[]}):[]}function ln(e){return{cpu:Qe(e.cpu)??1,memoryGb:Qe(e.memoryGb)??1,diskGb:Qe(e.diskGb)??8}}function on(e,n){const a=Array.isArray(e?.volumes)?e.volumes:[];if(a.length>0)return a.map((u,l)=>{const x=l===0?"volume":`volume-${l+1}`,p=typeof u.name=="string"&&u.name.trim()?u.name.trim():x;return{name:p,mountPath:typeof u.mountPath=="string"&&u.mountPath.trim()?u.mountPath.trim():`/workspace/volumes/${p}`,...Be(u.storageGb)?{storageGb:Be(u.storageGb)??void 0}:{},deleteOnSandboxDelete:u.deleteOnSandboxDelete===!0}});const i=n.find(u=>u.targetPath.startsWith("volumes/"));if(!i)return[];const[,g="volume"]=i.targetPath.split("/");return[{name:g,mountPath:`/workspace/volumes/${g}`,storageGb:8,deleteOnSandboxDelete:!1}]}function cn(e){return(Array.isArray(e?.inputs.env)?e.inputs.env:[]).flatMap(a=>{const i=typeof a.name=="string"?a.name.trim():"";return i?[{name:i,required:a.required===!0,secret:a.secret!==!1,description:typeof a.description=="string"?a.description.trim():""}]:[]})}function dn(e){return e?.schedules?.length?e.schedules.flatMap(n=>{const a=typeof n.name=="string"?n.name.trim():"",i=un(n);if(!a||!i.scheduleExpression)return[];try{return[{name:a,...typeof n.description=="string"&&n.description.trim()?{description:n.description.trim()}:{},enabled:!1,...i,...typeof n.timezone=="string"&&n.timezone.trim()?{timezone:n.timezone.trim()}:{},...typeof n.startAt=="string"&&n.startAt.trim()?{startAt:n.startAt.trim()}:{},...typeof n.endAt=="string"&&n.endAt.trim()?{endAt:n.endAt.trim()}:{},...typeof n.maxRuns=="number"&&Number.isInteger(n.maxRuns)&&n.maxRuns>0?{maxRuns:n.maxRuns}:{},runtimePolicy:n.runtimePolicy,target:mn(e,n),...n.budget?{budget:n.budget}:{},...n.resources?{resources:n.resources}:{},...n.quotas?{quotas:n.quotas}:{},...n.lifecycle?{lifecycle:n.lifecycle}:{},...n.retentionPolicy?{retentionPolicy:n.retentionPolicy}:{},...n.env?{env:n.env}:{},...n.integrationLeases?{integrationLeases:n.integrationLeases}:{},metadata:{...te(n.metadata),manifestScheduleName:a,source:"openpond-app-sandbox-template-start"}}]}catch{return[]}}):[]}function un(e){return e.scheduleExpression?{scheduleType:e.scheduleType??"cron",scheduleExpression:e.scheduleExpression}:e.rate?{scheduleType:"rate",scheduleExpression:/^rate\(/i.test(e.rate)?e.rate:`rate(${e.rate})`}:e.once?{scheduleType:"once",scheduleExpression:/^at\(/i.test(e.once)?e.once:`at(${e.once})`}:{scheduleType:"cron",scheduleExpression:e.cron??""}}function mn(e,n){const a=n.command??n.target?.command??null;if(a)return{kind:"command",command:a,requiresStart:n.requiresStart??n.target?.requiresStart??!1};const i=n.target?.kind??"action";if(i==="start")return{kind:"command",command:e.start.command,requiresStart:n.requiresStart??n.target?.requiresStart??e.start.requiresStart??!1};if(i==="service"){const l=n.target?.name??"",x=e.services.find(p=>p.name===l);if(!x)throw new Error("schedule_service_target_missing");return{kind:"command",command:x.command,requiresStart:n.requiresStart??n.target?.requiresStart??x.requiresStart??!1}}const g=n.actionName??n.action??n.target?.actionName??(n.target?.kind==="action"?n.target?.name:void 0),u=e.actions.find(l=>l.name===g);if(!u)throw new Error("schedule_action_target_missing");return{kind:"command",command:u.command,requiresStart:n.requiresStart??n.target?.requiresStart??u.requiresStart??!1}}function gt(e,n){return e.flatMap(a=>{const i=(n[a.name]??"").trim();return i?[{name:a.name,secretRef:i}]:[]})}function bt(e,n){const a={};for(const i of e){const g=n[i.name]??"";if(!(!g.trim()&&!i.required))if(i.type==="boolean")a[i.name]=g==="true";else if(i.type==="number"||i.type==="integer"){const u=Number(g);Number.isFinite(u)&&(a[i.name]=i.type==="integer"?Math.trunc(u):u)}else a[i.name]=g}return a}function pn(e,n){const a=e["x-openpond-targets"]??e.xOpenPondTargets??n.targets??n.actions,i=ft(a).map(g=>g.trim()).filter(Boolean);return i.length>0?[...new Set(i)]:null}function gn(e,n){return typeof e.accept=="string"?e.accept.trim():Array.isArray(e.accept)?e.accept.filter(a=>typeof a=="string").join(","):typeof n.accept=="string"?n.accept.trim():""}function bn(e,n){return(typeof e.targetPath=="string"&&e.targetPath.trim()?e.targetPath.trim():typeof e.path=="string"&&e.path.trim()?e.path.trim():`uploads/${n}`).replace(/^\/+/,"").replace(/^workspace\//,"").replace(/\/+$/,"")}function Qe(e){const n=Number(e);return Number.isFinite(n)&&n>0?n:null}function Be(e){const n=Number(e);return Number.isInteger(n)&&n>0?n:null}function fn(e,n){return[n,...e.slice(1)]}function ft(e){return Array.isArray(e)?e.filter(n=>typeof n=="string"):[]}function xn(e){return e.replace(/([a-z0-9])([A-Z])/g,"$1 $2").replace(/[-_]+/g," ").replace(/\b\w/g,n=>n.toUpperCase())}function te(e){return e&&typeof e=="object"&&!Array.isArray(e)?e:{}}function hn({busy:e,defaultRepoUrl:n,projectName:a,commitBeforeCreate:i,templateManifest:g,uploadBeforeCreate:u,onClose:l,onSubmit:x}){const p=m.useMemo(()=>pt(g),[g]),N=p.entrypoints[0]??null,[c,U]=m.useState(n),[I,H]=m.useState(N?.name??""),[z,v]=m.useState(N?.command??""),[M,V]=m.useState(N?.timeoutSeconds?String(N.timeoutSeconds):""),[X,b]=m.useState(`Update ${a}`),[j,w]=m.useState("0.05"),[_,F]=m.useState(()=>Object.fromEntries(p.scalarInputs.map(r=>[r.name,r.defaultValue]))),[B,ae]=m.useState(()=>Object.fromEntries(p.envInputs.map(r=>[r.name,""]))),[Z,fe]=m.useState({}),J=p.volumes[0]??null,[Y,o]=m.useState(p.volumes.length>0||p.fileInputs.length>0),[P,A]=m.useState(J?.name??"volume"),[R,$]=m.useState(J?.mountPath??"/workspace/volumes/volume"),[K,ce]=m.useState(String(J?.storageGb??8)),[Pe,de]=m.useState(!(J?.deleteOnSandboxDelete??!1)),[q,ze]=m.useState(p.schedules),Me=p.entrypoints.find(r=>r.name===I)??N,se=Me?.ports??[],re=se[0]??null,[ue,xe]=m.useState(!!re),[Ce,me]=m.useState(re?String(re.port):""),D=Number(Ce),he=Number(j),ie=Number(K),le=Number(M),ke=!M.trim()||Number.isInteger(le)&&le>0&&le<=86400,oe=!ue||Number.isInteger(D)&&D>=qt&&D<=Ut&&se.some(r=>r.port===D),Ie=Number.isFinite(he)&&he>0,ne=!Y||Number.isInteger(ie)&&ie>0,G=q.every(r=>!r.enabled||!!r.scheduleExpression.trim()),W=Fe(p.scalarInputs,I),je=Fe(p.fileInputs,I),qe=p.envInputs.every(r=>!r.required||!!(B[r.name]??"").trim()),ve=p.envInputs.filter(r=>r.required&&!(B[r.name]??"").trim()),Re=(u||!!c.trim())&&!!z.trim()&&Ie&&ke&&ne&&W.every(r=>!r.required||!!(_[r.name]??"").trim())&&je.every(r=>!r.required||(Z[r.name]?.length??0)>0)&&qe&&G&&oe;function He(r){H(r);const f=p.entrypoints.find(E=>E.name===r);if(!f)return;v(f.command),V(f.timeoutSeconds?String(f.timeoutSeconds):"");const y=f.ports[0]??null;me(y?String(y.port):""),xe(!!y)}function _e(r,f){F(y=>({...y,[r]:f}))}function pe(r,f){ae(y=>({...y,[r]:f}))}function Ve(r,f){const y=Array.from(f.target.files??[]);fe(E=>({...E,[r.name]:r.multiple?y:y.slice(0,1)}))}function ee(r,f){ze(y=>y.map((E,ge)=>ge===r?{...E,...f}:E))}function Ee(r){r.preventDefault(),!(!Re||e)&&x({repoUrl:c.trim(),command:z.trim(),entrypointName:I,commitMessage:X.trim(),budgetUsd:j.trim(),params:bt(W,_),env:gt(p.envInputs,B),timeoutSeconds:M.trim()&&Number.isInteger(le)?le:Me?.timeoutSeconds??null,uploads:je.flatMap(f=>{const y=Z[f.name]??[];return y.length>0?[{inputName:f.name,label:f.label,targetPath:f.targetPath,multiple:f.multiple,files:y}]:[]}),resources:p.resources,volumes:Y?fn(p.volumes,{...P.trim()?{name:P.trim()}:{},...R.trim()?{mountPath:R.trim()}:{},...Number.isInteger(ie)&&ie>0?{storageGb:ie}:{},deleteOnSandboxDelete:!Pe}):[],schedules:q.filter(f=>f.enabled),openPreview:ue,previewPort:ue?D:null,previewLabel:se.find(f=>f.port===D)?.label??"web",previewAccess:se.find(f=>f.port===D)?.access??"private"})}return t.jsx("div",{className:"git-dialog-backdrop",role:"presentation",children:t.jsxs("form",{className:"git-dialog run-once-dialog sandbox-start-dialog",role:"dialog","aria-modal":"true","aria-label":"Start sandbox",onSubmit:Ee,children:[t.jsx("button",{className:"git-dialog-close",disabled:e,type:"button",title:"Close","aria-label":"Close",onClick:l,children:t.jsx(mt,{size:15})}),t.jsxs("div",{className:"sandbox-start-dialog-heading",children:[t.jsx("div",{className:"git-dialog-icon",children:t.jsx(we,{size:18})}),t.jsx("h2",{children:"Start sandbox"}),t.jsxs("div",{className:"git-dialog-row",children:[t.jsx("span",{children:"Project"}),t.jsx("strong",{children:a})]})]}),t.jsxs("div",{className:"sandbox-start-dialog-body",children:[u?null:t.jsxs("label",{className:"git-dialog-field",children:[t.jsx("span",{children:"Repository"}),t.jsx("input",{disabled:e,value:c,onChange:r=>U(r.target.value)})]}),i?t.jsxs("label",{className:"git-dialog-field",children:[t.jsx("span",{children:"Commit message"}),t.jsx("input",{disabled:e,value:X,onChange:r=>b(r.target.value)})]}):null,p.entrypoints.length>0?t.jsxs("label",{className:"git-dialog-field",children:[t.jsx("span",{children:"Run target"}),t.jsx("select",{disabled:e,value:I,onChange:r=>He(r.target.value),children:p.entrypoints.map(r=>t.jsx("option",{value:r.name,children:r.name},r.name))})]}):null,t.jsxs("label",{className:"git-dialog-field",children:[t.jsx("span",{children:"Shell command"}),t.jsx("input",{disabled:e,value:z,onChange:r=>v(r.target.value)})]}),t.jsxs("label",{className:"git-dialog-field",children:[t.jsx("span",{children:"Timeout seconds"}),t.jsx("input",{disabled:e,inputMode:"numeric",value:M,onChange:r=>V(r.target.value)})]}),W.map(r=>r.type==="boolean"?t.jsxs("label",{className:"git-dialog-toggle",children:[t.jsx("input",{checked:(_[r.name]??"")==="true",disabled:e,type:"checkbox",onChange:f=>_e(r.name,f.target.checked?"true":"false")}),t.jsx("span",{}),r.label]},r.name):t.jsxs("label",{className:"git-dialog-field",children:[t.jsx("span",{children:r.label}),t.jsx("input",{disabled:e,inputMode:r.type==="number"||r.type==="integer"?"decimal":void 0,value:_[r.name]??"",onChange:f=>_e(r.name,f.target.value)})]},r.name)),je.map(r=>t.jsxs("label",{className:"git-dialog-field",children:[t.jsx("span",{children:r.label}),t.jsx("input",{accept:r.accept||void 0,disabled:e,multiple:r.multiple,type:"file",onChange:f=>Ve(r,f)})]},r.name)),p.envInputs.length>0?t.jsxs("div",{className:"sandbox-start-env-section",children:[t.jsx("div",{className:"sandbox-start-section-title",children:"Environment"}),ve.length>0?t.jsxs("p",{className:"sandbox-start-env-warning",role:"status",children:["Required sandbox secret ref missing: ",ve.map(r=>r.name).join(", ")]}):null,p.envInputs.map(r=>{const f=B[r.name]??"",y=r.required&&!f.trim(),E=`sandbox-env-${r.name}-description`;return t.jsxs("label",{className:"git-dialog-field",children:[t.jsxs("span",{children:[r.name,r.required?" *":""]}),t.jsx("input",{"aria-describedby":E,"aria-invalid":y,disabled:e,placeholder:"openpond://secret/...",value:f,onChange:ge=>pe(r.name,ge.target.value)}),t.jsx("small",{id:E,children:y?"Add a sandbox secret ref before starting.":r.description||"Sandbox secret ref only."})]},r.name)})]}):null,je.length>0||p.volumes.length>0?t.jsxs(t.Fragment,{children:[t.jsxs("label",{className:"git-dialog-toggle",children:[t.jsx("input",{checked:Y,disabled:e,type:"checkbox",onChange:r=>o(r.target.checked)}),t.jsx("span",{}),"Mount volume"]}),Y?t.jsxs(t.Fragment,{children:[t.jsxs("div",{className:"run-once-dialog-grid",children:[t.jsxs("label",{className:"git-dialog-field",children:[t.jsx("span",{children:"Volume"}),t.jsx("input",{disabled:e,value:P,onChange:r=>A(r.target.value)})]}),t.jsxs("label",{className:"git-dialog-field",children:[t.jsx("span",{children:"Storage GiB"}),t.jsx("input",{disabled:e,inputMode:"numeric",value:K,onChange:r=>ce(r.target.value)})]})]}),t.jsxs("label",{className:"git-dialog-field",children:[t.jsx("span",{children:"Mount path"}),t.jsx("input",{disabled:e,value:R,onChange:r=>$(r.target.value)})]}),t.jsxs("label",{className:"git-dialog-toggle",children:[t.jsx("input",{checked:Pe,disabled:e,type:"checkbox",onChange:r=>de(r.target.checked)}),t.jsx("span",{}),"Keep volume"]})]}):null]}):null,q.length>0?t.jsxs("div",{className:"sandbox-start-schedules",children:[t.jsx("div",{className:"sandbox-start-section-title",children:"Schedules"}),q.map((r,f)=>t.jsxs("div",{className:"sandbox-start-schedule-row",children:[t.jsxs("label",{className:"git-dialog-toggle",children:[t.jsx("input",{checked:r.enabled,disabled:e,type:"checkbox",onChange:y=>ee(f,{enabled:y.target.checked})}),t.jsx("span",{}),r.name]}),t.jsxs("div",{className:"run-once-dialog-grid",children:[t.jsxs("label",{className:"git-dialog-field",children:[t.jsx("span",{children:"Type"}),t.jsxs("select",{disabled:e||!r.enabled,value:r.scheduleType,onChange:y=>ee(f,{scheduleType:y.target.value}),children:[t.jsx("option",{value:"rate",children:"Rate"}),t.jsx("option",{value:"cron",children:"Cron"}),t.jsx("option",{value:"once",children:"Once"})]})]}),t.jsxs("label",{className:"git-dialog-field",children:[t.jsx("span",{children:"Max runs"}),t.jsx("input",{disabled:e||!r.enabled,inputMode:"numeric",value:r.maxRuns??"",onChange:y=>{const E=Number(y.target.value);ee(f,{maxRuns:Number.isInteger(E)&&E>0?E:null})}})]})]}),t.jsxs("label",{className:"git-dialog-field",children:[t.jsx("span",{children:"Expression"}),t.jsx("input",{disabled:e||!r.enabled,value:r.scheduleExpression,onChange:y=>ee(f,{scheduleExpression:y.target.value})})]})]},r.name))]}):null,t.jsxs("label",{className:"git-dialog-field",children:[t.jsx("span",{children:"Budget"}),t.jsx("input",{disabled:e,inputMode:"decimal",value:j,onChange:r=>w(r.target.value)})]}),se.length>0?t.jsxs(t.Fragment,{children:[t.jsxs("label",{className:"git-dialog-toggle",children:[t.jsx("input",{checked:ue,disabled:e,type:"checkbox",onChange:r=>xe(r.target.checked)}),t.jsx("span",{}),"Open preview"]}),t.jsxs("label",{className:"git-dialog-field",children:[t.jsx("span",{children:"Preview port"}),t.jsx("select",{disabled:e||!ue,value:Ce,onChange:r=>me(r.target.value),children:se.map(r=>t.jsx("option",{value:r.port,children:r.label?`${r.label} (${r.port})`:r.port},r.port))})]})]}):null]}),t.jsxs("div",{className:"git-dialog-footer sandbox-start-dialog-footer",children:[t.jsx("button",{className:"git-dialog-secondary",disabled:e,type:"button",onClick:l,children:"Cancel"}),t.jsxs("button",{className:"git-dialog-primary",disabled:e||!Re,title:qe?void 0:"Required sandbox secret refs are missing.",type:"submit",children:[t.jsx(Lt,{size:14}),"Start"]})]})]})})}function jn({busy:e,projectName:n,templateManifest:a,onClose:i,onSubmit:g}){const u=m.useMemo(()=>pt(a),[a]),l=m.useMemo(()=>a?Ye(a).filter(o=>o.kind==="action"):[],[a]),x=l[0]??null,[p,N]=m.useState("sandbox"),[c,U]=m.useState(x?.name??""),[I,H]=m.useState(()=>Object.fromEntries(u.scalarInputs.map(o=>[o.name,o.defaultValue]))),[z,v]=m.useState(()=>Object.fromEntries(u.envInputs.map(o=>[o.name,""]))),[M,V]=m.useState({}),X=Fe(u.scalarInputs,c),b=Fe(u.fileInputs,c),j=p==="sandbox"?u.envInputs:[],w=X.every(o=>!o.required||!!(I[o.name]??"").trim()),_=b.every(o=>!o.required||(M[o.name]?.length??0)>0),F=j.every(o=>!o.required||!!(z[o.name]??"").trim()),B=j.filter(o=>o.required&&!(z[o.name]??"").trim()),ae=!!c&&w&&_&&F;function Z(o,P){H(A=>({...A,[o]:P}))}function fe(o,P){v(A=>({...A,[o]:P}))}function J(o,P,A){const R=Array.from(A.target.files??[]);V($=>({...$,[o]:P?R:R.slice(0,1)}))}function Y(o){o.preventDefault(),!(!ae||e)&&g({mode:p,target:c,params:bt(X,I),env:p==="sandbox"?gt(j,z):[],uploads:b.flatMap(P=>{const A=M[P.name]??[];return A.length>0?[{inputName:P.name,label:P.label,targetPath:P.targetPath,multiple:P.multiple,files:A}]:[]})})}return t.jsx("div",{className:"git-dialog-backdrop",role:"presentation",children:t.jsxs("form",{className:"git-dialog run-once-dialog sandbox-start-dialog",role:"dialog","aria-modal":"true","aria-label":"Run sandbox action",onSubmit:Y,children:[t.jsx("button",{className:"git-dialog-close",disabled:e,type:"button",title:"Close","aria-label":"Close",onClick:i,children:t.jsx(mt,{size:15})}),t.jsxs("div",{className:"sandbox-start-dialog-heading",children:[t.jsx("div",{className:"git-dialog-icon",children:t.jsx($e,{size:18})}),t.jsx("h2",{children:"Run action"}),t.jsxs("div",{className:"git-dialog-row",children:[t.jsx("span",{children:"Project"}),t.jsx("strong",{children:n})]})]}),t.jsxs("div",{className:"sandbox-start-dialog-body",children:[t.jsxs("label",{className:"git-dialog-field",children:[t.jsx("span",{children:"Action"}),t.jsx("select",{disabled:e||l.length===0,value:c,onChange:o=>U(o.target.value),children:l.map(o=>t.jsx("option",{value:o.name,children:o.name},o.name))})]}),t.jsxs("label",{className:"git-dialog-field",children:[t.jsx("span",{children:"Run on"}),t.jsxs("select",{disabled:e,value:p,onChange:o=>N(o.target.value==="local"?"local":"sandbox"),children:[t.jsx("option",{value:"sandbox",children:"Hosted sandbox (start/update)"}),t.jsx("option",{value:"local",children:"Local machine"})]})]}),X.map(o=>o.type==="boolean"?t.jsxs("label",{className:"git-dialog-toggle",children:[t.jsx("input",{checked:(I[o.name]??"")==="true",disabled:e,type:"checkbox",onChange:P=>Z(o.name,P.target.checked?"true":"false")}),t.jsx("span",{}),o.label]},o.name):t.jsxs("label",{className:"git-dialog-field",children:[t.jsx("span",{children:o.label}),t.jsx("input",{disabled:e,inputMode:o.type==="number"||o.type==="integer"?"decimal":void 0,value:I[o.name]??"",onChange:P=>Z(o.name,P.target.value)})]},o.name)),b.map(o=>t.jsxs("label",{className:"git-dialog-field",children:[t.jsx("span",{children:o.label}),t.jsx("input",{accept:o.accept||void 0,disabled:e,multiple:o.multiple,type:"file",onChange:P=>J(o.name,o.multiple,P)})]},o.name)),j.length>0?t.jsxs("div",{className:"sandbox-start-env-section",children:[t.jsx("div",{className:"sandbox-start-section-title",children:"Environment"}),B.length>0?t.jsxs("p",{className:"sandbox-start-env-warning",role:"status",children:["Required sandbox secret ref missing: ",B.map(o=>o.name).join(", ")]}):null,j.map(o=>{const P=z[o.name]??"",A=o.required&&!P.trim(),R=`sandbox-action-env-${o.name}-description`;return t.jsxs("label",{className:"git-dialog-field",children:[t.jsxs("span",{children:[o.name,o.required?" *":""]}),t.jsx("input",{"aria-describedby":R,"aria-invalid":A,disabled:e,placeholder:"openpond://secret/...",value:P,onChange:$=>fe(o.name,$.target.value)}),t.jsx("small",{id:R,children:A?"Add a sandbox secret ref before running.":o.description||"Sandbox secret ref only."})]},o.name)})]}):null]}),t.jsxs("div",{className:"git-dialog-footer sandbox-start-dialog-footer",children:[t.jsx("button",{className:"git-dialog-secondary",disabled:e,type:"button",onClick:i,children:"Cancel"}),t.jsxs("button",{className:"git-dialog-primary",disabled:e||!ae,title:F?void 0:"Required sandbox secret refs are missing.",type:"submit",children:[t.jsx($e,{size:14}),"Run"]})]})]})})}function xt(e,n){const a=e.trim().toLowerCase().replace(/[^a-z0-9]+/g,"-").replace(/^-+|-+$/g,"")||"agent";return n==="cron"?`name: ${a}
|
|
2
2
|
version: 0.1.0
|
|
3
3
|
useCase: scheduled_report
|
|
4
4
|
start:
|
|
@@ -1 +1 @@
|
|
|
1
|
-
import{j as e,
|
|
1
|
+
import{j as e,ag as j,ah as z,ai as _,aj as D,X as B}from"./index-D7Vr3zcV.js";/* empty css */import{G as h}from"./git-commit-horizontal-C5mUmACv.js";function U({open:s,branch:l,filesChanged:i,additions:c,deletions:n,message:m,includeUnstaged:g,nextStep:a,draft:p,busy:t,canPush:u,canPublish:b,onMessageChange:f,onIncludeUnstagedChange:N,onNextStepChange:d,onDraftChange:C,onClose:v,onSubmit:k}){return s?e.jsx("div",{className:"git-dialog-backdrop",role:"presentation",children:e.jsxs("form",{className:"git-dialog commit-dialog","aria-label":"Commit changes",onSubmit:o=>{o.preventDefault(),k()},children:[e.jsx(x,{disabled:t,onClose:v}),e.jsx("div",{className:"git-dialog-icon",children:e.jsx(h,{size:18})}),e.jsx("h2",{children:"Commit your changes"}),e.jsxs("div",{className:"git-dialog-row",children:[e.jsx("span",{children:"Branch"}),e.jsxs("strong",{children:[e.jsx(j,{size:14}),l??"No branch"]})]}),e.jsxs("div",{className:"git-dialog-row",children:[e.jsx("span",{children:"Changes"}),e.jsxs("strong",{children:[i," ",i===1?"file":"files",e.jsxs("span",{className:"git-dialog-additions",children:["+",c]}),e.jsxs("span",{className:"git-dialog-deletions",children:["-",n]})]})]}),e.jsxs("label",{className:"git-dialog-toggle",children:[e.jsx("input",{checked:g,disabled:t,type:"checkbox",onChange:o=>N(o.target.checked)}),e.jsx("span",{}),"Include unstaged"]}),e.jsxs("label",{className:"git-dialog-field",children:[e.jsxs("span",{children:["Commit message",e.jsx("small",{children:"Leave blank to use an autogenerated message"})]}),e.jsx("textarea",{value:m,disabled:t,placeholder:"Update workspace",onChange:o=>f(o.target.value)})]}),e.jsxs("fieldset",{className:"git-dialog-next",children:[e.jsx("legend",{children:"Next steps"}),e.jsx(r,{active:a==="commit",icon:e.jsx(h,{size:14}),label:"Commit",disabled:t,onSelect:()=>d("commit")}),e.jsx(r,{active:a==="commit_push",icon:e.jsx(z,{size:14}),label:"Commit & push",disabled:t||!u,onSelect:()=>d("commit_push")}),b&&e.jsx(r,{active:a==="commit_publish",icon:e.jsx(_,{size:14}),label:"Commit & publish",disabled:t,onSelect:()=>d("commit_publish")}),e.jsx(r,{active:a==="commit_pr",icon:e.jsx(D,{size:14}),label:"Commit & create PR",disabled:!0,onSelect:()=>d("commit_pr")})]}),e.jsxs("div",{className:"git-dialog-footer",children:[e.jsxs("label",{className:"git-dialog-toggle draft-toggle",children:[e.jsx("input",{checked:p,disabled:t||a!=="commit_pr",type:"checkbox",onChange:o=>C(o.target.checked)}),e.jsx("span",{}),"Draft"]}),e.jsx("button",{className:"git-dialog-primary",disabled:t||i===0,type:"submit",children:"Continue"})]})]})}):null}function P({open:s,branchName:l,busy:i,onBranchNameChange:c,onSetPrefix:n,onClose:m,onSubmit:g}){return s?e.jsx("div",{className:"git-dialog-backdrop",role:"presentation",children:e.jsxs("form",{className:"git-dialog branch-dialog","aria-label":"Create branch",onSubmit:a=>{a.preventDefault(),g()},children:[e.jsx(x,{disabled:i,onClose:m}),e.jsx("div",{className:"git-dialog-icon",children:e.jsx(j,{size:18})}),e.jsx("h2",{children:"Work here"}),e.jsx("p",{children:"Create a branch to commit changes, push, and create a PR from this worktree."}),e.jsxs("label",{className:"git-dialog-field",children:[e.jsxs("span",{children:["Branch name",e.jsx("button",{className:"git-dialog-inline-action",disabled:i,type:"button",onClick:n,children:"Set prefix"})]}),e.jsx("input",{autoFocus:!0,disabled:i,value:l,onChange:a=>c(a.target.value)})]}),e.jsx("button",{className:"git-dialog-primary full",disabled:i||!l.trim(),type:"submit",children:"Create"})]})}):null}function r({active:s,icon:l,label:i,disabled:c,onSelect:n}){return e.jsxs("button",{"aria-pressed":s,className:s?"active":"",disabled:c,type:"button",onClick:n,children:[l,e.jsx("span",{children:i}),s&&e.jsx("span",{className:"git-dialog-check",children:"✓"})]})}function x({disabled:s,onClose:l}){return e.jsx("button",{className:"git-dialog-close",disabled:s,type:"button",onClick:l,children:e.jsx(B,{size:16})})}export{P as BranchDialog,U as CommitDialog};
|