@kelceyp/caw-server 1.0.168 → 1.0.169
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/main.js +28 -28
- package/dist/public_html/main.js +1 -1
- package/package.json +1 -1
package/dist/public_html/main.js
CHANGED
|
@@ -3098,7 +3098,7 @@ In order to be iterable, non-array objects must have a [Symbol.iterator]() metho
|
|
|
3098
3098
|
${K}`),X.push(`**${Q} [${J}]**: ${O38(G)}
|
|
3099
3099
|
${U}`);return X.join(`
|
|
3100
3100
|
|
|
3101
|
-
`)};var j8=H0(O8(),1),VV9=({status:Z})=>{let Q={running:{icon:R6,class:"text-blue-700 border-blue-300 bg-blue-50",animate:!0},completed:{icon:KG,class:"text-green-700 border-green-300 bg-green-50",animate:!1},error:{icon:Nq,class:"text-red-700 border-red-300 bg-red-50",animate:!1},stopped:{icon:MO,class:"text-orange-700 border-orange-300 bg-orange-50",animate:!1},pending:{icon:YG,class:"text-gray-700 border-gray-300 bg-gray-50",animate:!1},"awaiting-resume":{icon:YG,class:"text-amber-700 border-amber-300 bg-amber-50",animate:!1}},{icon:J,class:X,animate:K}=Q[Z]||Q.pending;return j8.jsxDEV("span",{className:`inline-flex items-center gap-1.5 rounded border px-2 py-1 text-sm font-medium ${X}`,children:[j8.jsxDEV(J,{className:`w-4 h-4 ${K?"animate-spin":""}`},void 0,!1,void 0,this),Z]},void 0,!0,void 0,this)},M38=(Z)=>{if(!Z)return"-";return new Date(Z).toLocaleString(void 0,{month:"short",day:"numeric",year:"numeric",hour:"2-digit",minute:"2-digit",second:"2-digit"})},CV9=(Z)=>{if(Z===null||Z===void 0)return"-";let Q=parseInt(Z,10);if(isNaN(Q))return Z;if(Q>=1000)return`${(Q/1000).toFixed(1)}k`;return Q.toString()},L38=(Z)=>{if(!Z)return[];let Q=/---\n## Turn (\d+)\n/g,J=[...Z.matchAll(Q)];if(J.length===0)return[{turnNumber:1,content:Z.trim()}];let X=[],K=J[0].index,Y=Z.slice(0,K).trim();if(Y)X.push({turnNumber:1,content:Y});for(let U=0;U<J.length;U++){let G=J[U],z=parseInt(G[1],10),W=G.index+G[0].length,q=J[U+1]?.index??Z.length,H=Z.slice(W,q).trim();X.push({turnNumber:z,content:H})}return X},IV9=(Z)=>{if(!Z||!Array.isArray(Z))return!1;return Z.some((Q)=>Q.name==="prompt.md")},EV9=(Z)=>{if(!Z||!Array.isArray(Z))return[];let Q=/^prompt-(\d+)\.md$/,J=/^output-(\d+)\.md$/,X=Z.filter((Y)=>Y.name&&Q.test(Y.name)).map((Y)=>({...Y,turnNumber:parseInt(Y.name.match(Q)[1],10)})).sort((Y,U)=>Y.turnNumber-U.turnNumber),K=Z.filter((Y)=>Y.name&&J.test(Y.name)).reduce((Y,U)=>{let G=U.name.match(J);if(G)Y[parseInt(G[1],10)]=U;return Y},{});return X.map((Y)=>({turnNumber:Y.turnNumber,promptDoc:Y,outputDoc:K[Y.turnNumber]||null}))},A38=({title:Z,docId:Q,docName:J,docContent:X,isOpen:K,onToggle:Y,onFieldsClick:U,children:G})=>{let{id:z}=Y1();return j8.jsxDEV("div",{className:"border rounded-lg overflow-hidden",children:[j8.jsxDEV("div",{role:"button",tabIndex:0,onClick:()=>Y(!K),onKeyDown:(W)=>{if(W.key==="Enter"||W.key===" ")W.preventDefault(),Y(!K)},className:"w-full flex items-center gap-2 px-4 py-1.5 bg-muted/30 hover:bg-muted/50 transition-colors cursor-pointer",children:[K?j8.jsxDEV(rZ,{className:"w-4 h-4"},void 0,!1,void 0,this):j8.jsxDEV(IZ,{className:"w-4 h-4"},void 0,!1,void 0,this),j8.jsxDEV(VQ,{className:"w-4 h-4 text-muted-foreground"},void 0,!1,void 0,this),j8.jsxDEV("span",{className:"font-medium",children:Z},void 0,!1,void 0,this),Q&&j8.jsxDEV("span",{className:"text-xs text-muted-foreground ml-auto font-mono flex items-center gap-1",children:[U&&j8.jsxDEV(X8,{variant:"ghost",size:"icon",className:"h-5 w-5",onClick:(W)=>{W.stopPropagation(),U()},children:j8.jsxDEV(wO,{className:"w-3 h-3"},void 0,!1,void 0,this)},void 0,!1,void 0,this),Q,j8.jsxDEV(bK,{items:[{id:Q,name:J,content:X}],projectId:z,entityType:"document"},void 0,!1,void 0,this)]},void 0,!0,void 0,this)]},void 0,!0,void 0,this),K&&j8.jsxDEV("div",{className:"p-4 bg-muted",children:G},void 0,!1,void 0,this)]},void 0,!0,void 0,this)},N38=({turnNumber:Z,promptContent:Q,outputContent:J,promptDocId:X,outputDocId:K,promptDocName:Y,outputDocName:U,isPromptOpen:G,setIsPromptOpen:z,isOutputOpen:W,setIsOutputOpen:q,onInternalLinkClick:H,promptDeepLinkUrl:B,outputDeepLinkUrl:O,sectionRef:M,highlightedSection:A,onPromptFieldsClick:R,onOutputFieldsClick:N})=>{return j8.jsxDEV("div",{className:"space-y-4",ref:A?M:null,children:[j8.jsxDEV(A38,{title:`Turn ${Z} Prompt`,docId:X,docName:Y,docContent:Q,isOpen:G,onToggle:z,deepLinkUrl:B,onFieldsClick:R,children:j8.jsxDEV(jY,{markdown:Q||"",onInternalLinkClick:H},void 0,!1,void 0,this)},void 0,!1,void 0,this),J&&j8.jsxDEV(A38,{title:`Turn ${Z} Output`,docId:K,docName:U,docContent:J,isOpen:W,onToggle:q,deepLinkUrl:O,onFieldsClick:N,children:j8.jsxDEV(jY,{markdown:J,onInternalLinkClick:H},void 0,!1,void 0,this)},void 0,!1,void 0,this)]},void 0,!0,void 0,this)},DV9=({agent:Z,model:Q,onModelChange:J,dockerImage:X,onDockerImageChange:K,streaming:Y,onStreamingChange:U,skipPermissions:G,onSkipPermissionsChange:z,runLocation:W,onRunLocationChange:q,worktrees:H,isLoadingWorktrees:B,isGitProject:O,worktreeError:M,worktreeCreateError:A,onWorktreeCreateErrorClear:R})=>j8.jsxDEV(x2,{children:[j8.jsxDEV(h2,{asChild:!0,children:j8.jsxDEV(X8,{variant:"outline",size:"sm",className:"h-9",children:[j8.jsxDEV(TO,{className:"w-4 h-4"},void 0,!1,void 0,this),j8.jsxDEV("span",{className:"ml-1",children:"Options"},void 0,!1,void 0,this)]},void 0,!0,void 0,this)},void 0,!1,void 0,this),j8.jsxDEV(bU,{className:"w-[28rem]",align:"end",children:j8.jsxDEV("div",{className:"space-y-4",children:[j8.jsxDEV("div",{className:"space-y-2",children:[j8.jsxDEV(m7,{children:"Model"},void 0,!1,void 0,this),j8.jsxDEV(NZ,{value:Q,onChange:(N)=>J(N.target.value),placeholder:"Optional - uses current model if empty"},void 0,!1,void 0,this)]},void 0,!0,void 0,this),j8.jsxDEV("div",{className:"space-y-2",children:[j8.jsxDEV(m7,{children:"Docker Image"},void 0,!1,void 0,this),j8.jsxDEV(NZ,{value:X,onChange:(N)=>K(N.target.value),placeholder:"Optional"},void 0,!1,void 0,this)]},void 0,!0,void 0,this),Z==="claude"&&j8.jsxDEV(j8.Fragment,{children:[j8.jsxDEV("div",{className:"flex items-center gap-2",children:[j8.jsxDEV(T5,{id:"inline-streaming",checked:Y,onCheckedChange:U},void 0,!1,void 0,this),j8.jsxDEV(m7,{htmlFor:"inline-streaming",className:"text-sm font-normal cursor-pointer",children:"Enable streaming output"},void 0,!1,void 0,this)]},void 0,!0,void 0,this),j8.jsxDEV("div",{className:"flex items-center gap-2",children:[j8.jsxDEV(T5,{id:"inline-skip-permissions",checked:G,onCheckedChange:z},void 0,!1,void 0,this),j8.jsxDEV(m7,{htmlFor:"inline-skip-permissions",className:"text-sm font-normal cursor-pointer",children:"Skip permission prompts"},void 0,!1,void 0,this)]},void 0,!0,void 0,this)]},void 0,!0,void 0,this),j8.jsxDEV(qD,{value:W,onChange:q,worktrees:H,isLoadingWorktrees:B,isGitProject:O,error:M,createError:A,onCreateErrorClear:R},void 0,!1,void 0,this)]},void 0,!0,void 0,this)},void 0,!1,void 0,this)]},void 0,!0,void 0,this),SV9=({onSend:Z,isPending:Q,isCreatingWorktree:J,error:X,canContinue:K,agent:Y,model:U,onModelChange:G,dockerImage:z,onDockerImageChange:W,streaming:q,onStreamingChange:H,skipPermissions:B,onSkipPermissionsChange:O,runLocation:M,onRunLocationChange:A,worktrees:R,isLoadingWorktrees:N,isGitProject:w,worktreeError:P,worktreeCreateError:C,onWorktreeCreateErrorClear:T,projectId:V,storeCode:E})=>{let[D,k]=L7.useState(""),[b,_]=L7.useState(!1),j=L7.useRef(null),v=!D.trim()||Q||J||!K,f=async()=>{if(v)return;let h=D.trim();try{await Z(h),k(""),j.current?.focus()}catch{}};return j8.jsxDEV("div",{className:"flex-shrink-0 border-t bg-background px-4 py-3",children:[j8.jsxDEV("div",{className:"flex gap-2 items-start",children:[j8.jsxDEV("div",{className:"relative flex-1",children:[j8.jsxDEV(F2,{ref:j,value:D,onChange:(h)=>k(h.target.value),onKeyDown:(h)=>{if((h.metaKey||h.ctrlKey)&&h.key==="Enter")h.preventDefault(),f()},placeholder:"Continue the conversation… (Cmd/Ctrl+Enter to send)",rows:3,className:"resize-none pr-8"},void 0,!1,void 0,this),j8.jsxDEV(X8,{type:"button",variant:"ghost",size:"icon",className:"absolute top-1 right-1 h-6 w-6",onClick:()=>_(!0),"aria-label":"Open in editor",children:j8.jsxDEV(PM,{className:"h-4 w-4"},void 0,!1,void 0,this)},void 0,!1,void 0,this),j8.jsxDEV(nH,{open:b,onOpenChange:_,value:D,onSave:(h)=>{k(h),_(!1)},projectId:V,storeCode:E},void 0,!1,void 0,this)]},void 0,!0,void 0,this),j8.jsxDEV("div",{className:"flex flex-col gap-1",children:[j8.jsxDEV(X8,{onClick:f,disabled:v,size:"sm",className:"h-9",children:[Q||J?j8.jsxDEV(R6,{className:"w-4 h-4 animate-spin"},void 0,!1,void 0,this):j8.jsxDEV(vj,{className:"w-4 h-4"},void 0,!1,void 0,this),j8.jsxDEV("span",{className:"ml-1",children:"Send"},void 0,!1,void 0,this)]},void 0,!0,void 0,this),j8.jsxDEV(DV9,{agent:Y,model:U,onModelChange:G,dockerImage:z,onDockerImageChange:W,streaming:q,onStreamingChange:H,skipPermissions:B,onSkipPermissionsChange:O,runLocation:M,onRunLocationChange:A,worktrees:R,isLoadingWorktrees:N,isGitProject:w,worktreeError:P,worktreeCreateError:C,onWorktreeCreateErrorClear:T},void 0,!1,void 0,this)]},void 0,!0,void 0,this)]},void 0,!0,void 0,this),X&&j8.jsxDEV("div",{className:"mt-2 flex items-center gap-2 text-sm text-destructive",children:[j8.jsxDEV(F6,{className:"w-4 h-4 flex-shrink-0"},void 0,!1,void 0,this),X]},void 0,!0,void 0,this)]},void 0,!0,void 0,this)},jV9=86400000,kV9=["active","history"],cL0=()=>{let{id:Z,storeCode:Q,jobId:J}=Y1(),X=AZ(),K=x4(),{data:Y}=KQ(Z),{data:U}=UB(Z),{fromContext:G}=WA(),z=new URLSearchParams(K.search).get("doc");b5(Y?`${Y.name} - Job: ${J}`:"CAW");let W=L7.useRef(null),q=L7.useRef(!1),{data:H,isLoading:B,error:O}=IB8(Z,J),M=(H?.fields?.status==="completed"||H?.fields?.status==="error"||H?.fields?.status==="stopped")&&H?.fields?.sessionId,{data:A,isLoading:R}=EB8(Z,J),{isLegacy:N,promptDoc:w,outputDoc:P,turns:C}=L7.useMemo(()=>{if(!A)return{isLegacy:!0,promptDoc:null,outputDoc:null,turns:[]};let E0=A.documents||[];if(IV9(E0)){let D8=E0.find((A9)=>A9.name==="prompt.md"),J9=E0.find((A9)=>A9.name==="output.md");return{isLegacy:!0,promptDoc:D8,outputDoc:J9,turns:[]}}else{let D8=EV9(E0),J9=D8[D8.length-1];return{isLegacy:!1,promptDoc:J9?.promptDoc||null,outputDoc:J9?.outputDoc||null,turns:D8}}},[A]),{data:T}=iW(Z,N?w?.id:null),{data:V}=iW(Z,N?P?.id:null),E=L7.useMemo(()=>{if(N)return[];let E0=[];for(let K8 of C){if(K8.promptDoc?.id)E0.push(K8.promptDoc.id);if(K8.outputDoc?.id)E0.push(K8.outputDoc.id)}return E0},[N,C]),D=KN({queries:E.map((E0)=>({queryKey:["document",E0],queryFn:()=>GW(Z,E0),enabled:!!Z&&!!E0&&!N}))}),k=L7.useMemo(()=>{if(N)return{};let E0={};return E.forEach((K8,D8)=>{let J9=D[D8];if(J9?.data)E0[K8]=J9.data}),E0},[N,E,D]),b=L7.useMemo(()=>{if(N)return V;let E0=C[C.length-1];return E0?.outputDoc?.id?k[E0.outputDoc.id]:null},[N,V,C,k]),_=L7.useMemo(()=>{if(R||!A)return!1;if(N){if(w&&!T)return!1;if(P&&!V)return!1;return!0}return D.every((E0)=>E0.isSuccess)},[R,A,N,w,P,T,V,D]),{promptTurns:j,outputTurns:v}=L7.useMemo(()=>{if(N){let E0=T?.draftContent??T?.publishedContent??"",K8=V?.draftContent??V?.publishedContent??"";return{promptTurns:L38(E0),outputTurns:L38(K8)}}else{let E0=C.map((D8)=>{let J9=D8.promptDoc?.id?k[D8.promptDoc.id]:null,A9=J9?.draftContent??J9?.publishedContent??"";return{turnNumber:D8.turnNumber,content:A9}}),K8=C.map((D8)=>{let J9=D8.outputDoc?.id?k[D8.outputDoc.id]:null,A9=J9?.draftContent??J9?.publishedContent??"";return{turnNumber:D8.turnNumber,content:A9}});return{promptTurns:E0,outputTurns:K8}}},[N,T,V,C,k]),f=j.length>1||v.length>1,x=async({type:E0,id:K8,path:D8,anchor:J9})=>{if(E0==="anchor"){X(`${K.pathname}${K.search}#${J9}`,{replace:!0});return}if(E0==="id"){let a6=K8?.charAt(1)?.toLowerCase();if(a6==="d"||a6==="t"){G0({id:K8,anchor:J9||null});return}}let A9=J9?`#${J9}`:"",W9=Q?`/store/${Q}`:"";if(E0==="id"){let a6=K8?.charAt(1)?.toLowerCase();if(a6==="j")X(`/project/${Z}${W9}/job/${K8}${A9}`);else if(a6==="s")X(`/project/${Z}${W9}/story/${K8}${A9}`);else if(a6==="f")try{let l7=await IJ(Z,K8),d7=l7?.path||"";if(d7.startsWith("Templates/"))X(`/project/${Z}${W9}/templates?id=${K8}${A9}`);else if(d7.startsWith("Stories/")){let b6=l7?.parentId?.startsWith("As")?l7.parentId:null;if(!b6){let g8=l7?.parentId?await IJ(Z,l7.parentId):null;while(g8&&!b6)if(g8.parentId?.startsWith("As"))b6=g8.parentId;else if(g8.id?.startsWith("As"))b6=g8.id;else g8=g8.parentId?await IJ(Z,g8.parentId):null}if(b6)X(`/project/${Z}${W9}/story/${b6}?id=${K8}&tab=documents${A9}`);else X(`/project/${Z}${W9}/stories?id=${K8}${A9}`)}else X(`/project/${Z}${W9}/documents?id=${K8}${A9}`)}catch{X(`/project/${Z}${W9}/documents?id=${K8}${A9}`)}else X(`/project/${Z}${W9}/documents?id=${K8}${A9}`)}else if(E0==="path")X(`/project/${Z}${W9}${D8}${A9}`)},[h,g]=L7.useState({}),m=Math.max(j.length,v.length);L7.useEffect(()=>{g((E0)=>{let K8={...E0};for(let D8=0;D8<m;D8++)if(!(D8 in K8))K8[D8]={promptOpen:!0,outputOpen:!0};return K8})},[m]);let u=L7.useRef(null);L7.useEffect(()=>{if(!z)return;if(z!==w?.id&&z!==P?.id)return;let E0=z===w?.id,K8=z===P?.id;g(()=>{let D8={};for(let J9=0;J9<m;J9++)D8[J9]={promptOpen:E0,outputOpen:K8};return D8})},[z,w?.id,P?.id,m]);let d=`${window.location.origin}${K.pathname}`,p=w?.id?`${d}?doc=${w.id}${G?`&from=${G}`:""}`:null,s=P?.id?`${d}?doc=${P.id}${G?`&from=${G}`:""}`:null,Z0=z===w?.id?"prompt":z===P?.id?"output":null;L7.useEffect(()=>{q.current=!0},[J]),L7.useEffect(()=>{if(!q.current||!_)return;let E0=W.current;if(!E0)return;let K8=requestAnimationFrame(()=>{E0.scrollTop=E0.scrollHeight,q.current=!1});return()=>cancelAnimationFrame(K8)},[J,_]),L7.useEffect(()=>{if(q.current)return;let E0=W.current;if(!E0)return;if(E0.scrollTop+E0.clientHeight>=E0.scrollHeight-50)requestAnimationFrame(()=>{E0.scrollTop=E0.scrollHeight})},[v]);let r=()=>{g((E0)=>{let K8={};for(let D8 of Object.keys(E0))K8[D8]={promptOpen:!1,outputOpen:!1};return K8})},a=()=>{g((E0)=>{let K8={};for(let D8 of Object.keys(E0))K8[D8]={promptOpen:!0,outputOpen:!0};return K8})},Q0=(()=>{let E0=j.map((D8)=>D8.content).filter(Boolean).join(`
|
|
3101
|
+
`)};var j8=H0(O8(),1),VV9=({status:Z})=>{let Q={running:{icon:R6,class:"text-blue-700 border-blue-300 bg-blue-50",animate:!0},completed:{icon:KG,class:"text-green-700 border-green-300 bg-green-50",animate:!1},error:{icon:Nq,class:"text-red-700 border-red-300 bg-red-50",animate:!1},stopped:{icon:MO,class:"text-orange-700 border-orange-300 bg-orange-50",animate:!1},pending:{icon:YG,class:"text-gray-700 border-gray-300 bg-gray-50",animate:!1},"awaiting-resume":{icon:YG,class:"text-amber-700 border-amber-300 bg-amber-50",animate:!1}},{icon:J,class:X,animate:K}=Q[Z]||Q.pending;return j8.jsxDEV("span",{className:`inline-flex items-center gap-1.5 rounded border px-2 py-1 text-sm font-medium ${X}`,children:[j8.jsxDEV(J,{className:`w-4 h-4 ${K?"animate-spin":""}`},void 0,!1,void 0,this),Z]},void 0,!0,void 0,this)},M38=(Z)=>{if(!Z)return"-";return new Date(Z).toLocaleString(void 0,{month:"short",day:"numeric",year:"numeric",hour:"2-digit",minute:"2-digit",second:"2-digit"})},CV9=(Z)=>{if(Z===null||Z===void 0)return"-";let Q=parseInt(Z,10);if(isNaN(Q))return Z;if(Q>=1000)return`${(Q/1000).toFixed(1)}k`;return Q.toString()},L38=(Z)=>{if(!Z)return[];let Q=/---\n## Turn (\d+)\n/g,J=[...Z.matchAll(Q)];if(J.length===0)return[{turnNumber:1,content:Z.trim()}];let X=[],K=J[0].index,Y=Z.slice(0,K).trim();if(Y)X.push({turnNumber:1,content:Y});for(let U=0;U<J.length;U++){let G=J[U],z=parseInt(G[1],10),W=G.index+G[0].length,q=J[U+1]?.index??Z.length,H=Z.slice(W,q).trim();X.push({turnNumber:z,content:H})}return X},IV9=(Z)=>{if(!Z||!Array.isArray(Z))return!1;return Z.some((Q)=>Q.name==="prompt.md")},EV9=(Z)=>{if(!Z||!Array.isArray(Z))return[];let Q=/^prompt-(\d+)\.md$/,J=/^output-(\d+)\.md$/,X=Z.filter((Y)=>Y.name&&Q.test(Y.name)).map((Y)=>({...Y,turnNumber:parseInt(Y.name.match(Q)[1],10)})).sort((Y,U)=>Y.turnNumber-U.turnNumber),K=Z.filter((Y)=>Y.name&&J.test(Y.name)).reduce((Y,U)=>{let G=U.name.match(J);if(G)Y[parseInt(G[1],10)]=U;return Y},{});return X.map((Y)=>({turnNumber:Y.turnNumber,promptDoc:Y,outputDoc:K[Y.turnNumber]||null}))},A38=({title:Z,docId:Q,docName:J,docContent:X,isOpen:K,onToggle:Y,onFieldsClick:U,children:G})=>{let{id:z}=Y1();return j8.jsxDEV("div",{className:"border rounded-lg overflow-hidden",children:[j8.jsxDEV("div",{role:"button",tabIndex:0,onClick:()=>Y(!K),onKeyDown:(W)=>{if(W.key==="Enter"||W.key===" ")W.preventDefault(),Y(!K)},className:"w-full flex items-center gap-2 px-4 py-1.5 bg-muted/30 hover:bg-muted/50 transition-colors cursor-pointer",children:[K?j8.jsxDEV(rZ,{className:"w-4 h-4"},void 0,!1,void 0,this):j8.jsxDEV(IZ,{className:"w-4 h-4"},void 0,!1,void 0,this),j8.jsxDEV(VQ,{className:"w-4 h-4 text-muted-foreground"},void 0,!1,void 0,this),j8.jsxDEV("span",{className:"font-medium",children:Z},void 0,!1,void 0,this),Q&&j8.jsxDEV("span",{className:"text-xs text-muted-foreground ml-auto font-mono flex items-center gap-1",children:[U&&j8.jsxDEV(X8,{variant:"ghost",size:"icon",className:"h-5 w-5",onClick:(W)=>{W.stopPropagation(),U()},children:j8.jsxDEV(wO,{className:"w-3 h-3"},void 0,!1,void 0,this)},void 0,!1,void 0,this),Q,j8.jsxDEV(bK,{items:[{id:Q,name:J,content:X}],projectId:z,entityType:"document"},void 0,!1,void 0,this)]},void 0,!0,void 0,this)]},void 0,!0,void 0,this),K&&j8.jsxDEV("div",{className:"p-4 bg-muted",children:G},void 0,!1,void 0,this)]},void 0,!0,void 0,this)},N38=({turnNumber:Z,promptContent:Q,outputContent:J,promptDocId:X,outputDocId:K,promptDocName:Y,outputDocName:U,isPromptOpen:G,setIsPromptOpen:z,isOutputOpen:W,setIsOutputOpen:q,onInternalLinkClick:H,promptDeepLinkUrl:B,outputDeepLinkUrl:O,sectionRef:M,highlightedSection:A,onPromptFieldsClick:R,onOutputFieldsClick:N})=>{return j8.jsxDEV("div",{className:"space-y-4",ref:A?M:null,children:[j8.jsxDEV(A38,{title:`Turn ${Z} Prompt`,docId:X,docName:Y,docContent:Q,isOpen:G,onToggle:z,deepLinkUrl:B,onFieldsClick:R,children:j8.jsxDEV(jY,{markdown:Q||"",onInternalLinkClick:H},void 0,!1,void 0,this)},void 0,!1,void 0,this),(J||K)&&j8.jsxDEV(A38,{title:`Turn ${Z} Output`,docId:K,docName:U,docContent:J,isOpen:W,onToggle:q,deepLinkUrl:O,onFieldsClick:N,children:j8.jsxDEV(jY,{markdown:J||"",onInternalLinkClick:H},void 0,!1,void 0,this)},void 0,!1,void 0,this)]},void 0,!0,void 0,this)},DV9=({agent:Z,model:Q,onModelChange:J,dockerImage:X,onDockerImageChange:K,streaming:Y,onStreamingChange:U,skipPermissions:G,onSkipPermissionsChange:z,runLocation:W,onRunLocationChange:q,worktrees:H,isLoadingWorktrees:B,isGitProject:O,worktreeError:M,worktreeCreateError:A,onWorktreeCreateErrorClear:R})=>j8.jsxDEV(x2,{children:[j8.jsxDEV(h2,{asChild:!0,children:j8.jsxDEV(X8,{variant:"outline",size:"sm",className:"h-9",children:[j8.jsxDEV(TO,{className:"w-4 h-4"},void 0,!1,void 0,this),j8.jsxDEV("span",{className:"ml-1",children:"Options"},void 0,!1,void 0,this)]},void 0,!0,void 0,this)},void 0,!1,void 0,this),j8.jsxDEV(bU,{className:"w-[28rem]",align:"end",children:j8.jsxDEV("div",{className:"space-y-4",children:[j8.jsxDEV("div",{className:"space-y-2",children:[j8.jsxDEV(m7,{children:"Model"},void 0,!1,void 0,this),j8.jsxDEV(NZ,{value:Q,onChange:(N)=>J(N.target.value),placeholder:"Optional - uses current model if empty"},void 0,!1,void 0,this)]},void 0,!0,void 0,this),j8.jsxDEV("div",{className:"space-y-2",children:[j8.jsxDEV(m7,{children:"Docker Image"},void 0,!1,void 0,this),j8.jsxDEV(NZ,{value:X,onChange:(N)=>K(N.target.value),placeholder:"Optional"},void 0,!1,void 0,this)]},void 0,!0,void 0,this),Z==="claude"&&j8.jsxDEV(j8.Fragment,{children:[j8.jsxDEV("div",{className:"flex items-center gap-2",children:[j8.jsxDEV(T5,{id:"inline-streaming",checked:Y,onCheckedChange:U},void 0,!1,void 0,this),j8.jsxDEV(m7,{htmlFor:"inline-streaming",className:"text-sm font-normal cursor-pointer",children:"Enable streaming output"},void 0,!1,void 0,this)]},void 0,!0,void 0,this),j8.jsxDEV("div",{className:"flex items-center gap-2",children:[j8.jsxDEV(T5,{id:"inline-skip-permissions",checked:G,onCheckedChange:z},void 0,!1,void 0,this),j8.jsxDEV(m7,{htmlFor:"inline-skip-permissions",className:"text-sm font-normal cursor-pointer",children:"Skip permission prompts"},void 0,!1,void 0,this)]},void 0,!0,void 0,this)]},void 0,!0,void 0,this),j8.jsxDEV(qD,{value:W,onChange:q,worktrees:H,isLoadingWorktrees:B,isGitProject:O,error:M,createError:A,onCreateErrorClear:R},void 0,!1,void 0,this)]},void 0,!0,void 0,this)},void 0,!1,void 0,this)]},void 0,!0,void 0,this),SV9=({onSend:Z,isPending:Q,isCreatingWorktree:J,error:X,canContinue:K,agent:Y,model:U,onModelChange:G,dockerImage:z,onDockerImageChange:W,streaming:q,onStreamingChange:H,skipPermissions:B,onSkipPermissionsChange:O,runLocation:M,onRunLocationChange:A,worktrees:R,isLoadingWorktrees:N,isGitProject:w,worktreeError:P,worktreeCreateError:C,onWorktreeCreateErrorClear:T,projectId:V,storeCode:E})=>{let[D,k]=L7.useState(""),[b,_]=L7.useState(!1),j=L7.useRef(null),v=!D.trim()||Q||J||!K,f=async()=>{if(v)return;let h=D.trim();try{await Z(h),k(""),j.current?.focus()}catch{}};return j8.jsxDEV("div",{className:"flex-shrink-0 border-t bg-background px-4 py-3",children:[j8.jsxDEV("div",{className:"flex gap-2 items-start",children:[j8.jsxDEV("div",{className:"relative flex-1",children:[j8.jsxDEV(F2,{ref:j,value:D,onChange:(h)=>k(h.target.value),onKeyDown:(h)=>{if((h.metaKey||h.ctrlKey)&&h.key==="Enter")h.preventDefault(),f()},placeholder:"Continue the conversation… (Cmd/Ctrl+Enter to send)",rows:3,className:"resize-none pr-8"},void 0,!1,void 0,this),j8.jsxDEV(X8,{type:"button",variant:"ghost",size:"icon",className:"absolute top-1 right-1 h-6 w-6",onClick:()=>_(!0),"aria-label":"Open in editor",children:j8.jsxDEV(PM,{className:"h-4 w-4"},void 0,!1,void 0,this)},void 0,!1,void 0,this),j8.jsxDEV(nH,{open:b,onOpenChange:_,value:D,onSave:(h)=>{k(h),_(!1)},projectId:V,storeCode:E},void 0,!1,void 0,this)]},void 0,!0,void 0,this),j8.jsxDEV("div",{className:"flex flex-col gap-1",children:[j8.jsxDEV(X8,{onClick:f,disabled:v,size:"sm",className:"h-9",children:[Q||J?j8.jsxDEV(R6,{className:"w-4 h-4 animate-spin"},void 0,!1,void 0,this):j8.jsxDEV(vj,{className:"w-4 h-4"},void 0,!1,void 0,this),j8.jsxDEV("span",{className:"ml-1",children:"Send"},void 0,!1,void 0,this)]},void 0,!0,void 0,this),j8.jsxDEV(DV9,{agent:Y,model:U,onModelChange:G,dockerImage:z,onDockerImageChange:W,streaming:q,onStreamingChange:H,skipPermissions:B,onSkipPermissionsChange:O,runLocation:M,onRunLocationChange:A,worktrees:R,isLoadingWorktrees:N,isGitProject:w,worktreeError:P,worktreeCreateError:C,onWorktreeCreateErrorClear:T},void 0,!1,void 0,this)]},void 0,!0,void 0,this)]},void 0,!0,void 0,this),X&&j8.jsxDEV("div",{className:"mt-2 flex items-center gap-2 text-sm text-destructive",children:[j8.jsxDEV(F6,{className:"w-4 h-4 flex-shrink-0"},void 0,!1,void 0,this),X]},void 0,!0,void 0,this)]},void 0,!0,void 0,this)},jV9=86400000,kV9=["active","history"],cL0=()=>{let{id:Z,storeCode:Q,jobId:J}=Y1(),X=AZ(),K=x4(),{data:Y}=KQ(Z),{data:U}=UB(Z),{fromContext:G}=WA(),z=new URLSearchParams(K.search).get("doc");b5(Y?`${Y.name} - Job: ${J}`:"CAW");let W=L7.useRef(null),q=L7.useRef(!1),{data:H,isLoading:B,error:O}=IB8(Z,J),M=(H?.fields?.status==="completed"||H?.fields?.status==="error"||H?.fields?.status==="stopped")&&H?.fields?.sessionId,{data:A,isLoading:R}=EB8(Z,J),{isLegacy:N,promptDoc:w,outputDoc:P,turns:C}=L7.useMemo(()=>{if(!A)return{isLegacy:!0,promptDoc:null,outputDoc:null,turns:[]};let E0=A.documents||[];if(IV9(E0)){let D8=E0.find((A9)=>A9.name==="prompt.md"),J9=E0.find((A9)=>A9.name==="output.md");return{isLegacy:!0,promptDoc:D8,outputDoc:J9,turns:[]}}else{let D8=EV9(E0),J9=D8[D8.length-1];return{isLegacy:!1,promptDoc:J9?.promptDoc||null,outputDoc:J9?.outputDoc||null,turns:D8}}},[A]),{data:T}=iW(Z,N?w?.id:null),{data:V}=iW(Z,N?P?.id:null),E=L7.useMemo(()=>{if(N)return[];let E0=[];for(let K8 of C){if(K8.promptDoc?.id)E0.push(K8.promptDoc.id);if(K8.outputDoc?.id)E0.push(K8.outputDoc.id)}return E0},[N,C]),D=KN({queries:E.map((E0)=>({queryKey:["document",E0],queryFn:()=>GW(Z,E0),enabled:!!Z&&!!E0&&!N}))}),k=L7.useMemo(()=>{if(N)return{};let E0={};return E.forEach((K8,D8)=>{let J9=D[D8];if(J9?.data)E0[K8]=J9.data}),E0},[N,E,D]),b=L7.useMemo(()=>{if(N)return V;let E0=C[C.length-1];return E0?.outputDoc?.id?k[E0.outputDoc.id]:null},[N,V,C,k]),_=L7.useMemo(()=>{if(R||!A)return!1;if(N){if(w&&!T)return!1;if(P&&!V)return!1;return!0}return D.every((E0)=>E0.isSuccess)},[R,A,N,w,P,T,V,D]),{promptTurns:j,outputTurns:v}=L7.useMemo(()=>{if(N){let E0=T?.draftContent??T?.publishedContent??"",K8=V?.draftContent??V?.publishedContent??"";return{promptTurns:L38(E0),outputTurns:L38(K8)}}else{let E0=C.map((D8)=>{let J9=D8.promptDoc?.id?k[D8.promptDoc.id]:null,A9=J9?.draftContent??J9?.publishedContent??"";return{turnNumber:D8.turnNumber,content:A9}}),K8=C.map((D8)=>{let J9=D8.outputDoc?.id?k[D8.outputDoc.id]:null,A9=J9?.draftContent??J9?.publishedContent??"";return{turnNumber:D8.turnNumber,content:A9}});return{promptTurns:E0,outputTurns:K8}}},[N,T,V,C,k]),f=j.length>1||v.length>1,x=async({type:E0,id:K8,path:D8,anchor:J9})=>{if(E0==="anchor"){X(`${K.pathname}${K.search}#${J9}`,{replace:!0});return}if(E0==="id"){let a6=K8?.charAt(1)?.toLowerCase();if(a6==="d"||a6==="t"){G0({id:K8,anchor:J9||null});return}}let A9=J9?`#${J9}`:"",W9=Q?`/store/${Q}`:"";if(E0==="id"){let a6=K8?.charAt(1)?.toLowerCase();if(a6==="j")X(`/project/${Z}${W9}/job/${K8}${A9}`);else if(a6==="s")X(`/project/${Z}${W9}/story/${K8}${A9}`);else if(a6==="f")try{let l7=await IJ(Z,K8),d7=l7?.path||"";if(d7.startsWith("Templates/"))X(`/project/${Z}${W9}/templates?id=${K8}${A9}`);else if(d7.startsWith("Stories/")){let b6=l7?.parentId?.startsWith("As")?l7.parentId:null;if(!b6){let g8=l7?.parentId?await IJ(Z,l7.parentId):null;while(g8&&!b6)if(g8.parentId?.startsWith("As"))b6=g8.parentId;else if(g8.id?.startsWith("As"))b6=g8.id;else g8=g8.parentId?await IJ(Z,g8.parentId):null}if(b6)X(`/project/${Z}${W9}/story/${b6}?id=${K8}&tab=documents${A9}`);else X(`/project/${Z}${W9}/stories?id=${K8}${A9}`)}else X(`/project/${Z}${W9}/documents?id=${K8}${A9}`)}catch{X(`/project/${Z}${W9}/documents?id=${K8}${A9}`)}else X(`/project/${Z}${W9}/documents?id=${K8}${A9}`)}else if(E0==="path")X(`/project/${Z}${W9}${D8}${A9}`)},[h,g]=L7.useState({}),m=Math.max(j.length,v.length);L7.useEffect(()=>{g((E0)=>{let K8={...E0};for(let D8=0;D8<m;D8++)if(!(D8 in K8))K8[D8]={promptOpen:!0,outputOpen:!0};return K8})},[m]);let u=L7.useRef(null);L7.useEffect(()=>{if(!z)return;if(z!==w?.id&&z!==P?.id)return;let E0=z===w?.id,K8=z===P?.id;g(()=>{let D8={};for(let J9=0;J9<m;J9++)D8[J9]={promptOpen:E0,outputOpen:K8};return D8})},[z,w?.id,P?.id,m]);let d=`${window.location.origin}${K.pathname}`,p=w?.id?`${d}?doc=${w.id}${G?`&from=${G}`:""}`:null,s=P?.id?`${d}?doc=${P.id}${G?`&from=${G}`:""}`:null,Z0=z===w?.id?"prompt":z===P?.id?"output":null;L7.useEffect(()=>{q.current=!0},[J]),L7.useEffect(()=>{if(!q.current||!_)return;let E0=W.current;if(!E0)return;let K8=requestAnimationFrame(()=>{E0.scrollTop=E0.scrollHeight,q.current=!1});return()=>cancelAnimationFrame(K8)},[J,_]),L7.useEffect(()=>{if(q.current)return;let E0=W.current;if(!E0)return;if(E0.scrollTop+E0.clientHeight>=E0.scrollHeight-50)requestAnimationFrame(()=>{E0.scrollTop=E0.scrollHeight})},[v]);let r=()=>{g((E0)=>{let K8={};for(let D8 of Object.keys(E0))K8[D8]={promptOpen:!1,outputOpen:!1};return K8})},a=()=>{g((E0)=>{let K8={};for(let D8 of Object.keys(E0))K8[D8]={promptOpen:!0,outputOpen:!0};return K8})},Q0=(()=>{let E0=j.map((D8)=>D8.content).filter(Boolean).join(`
|
|
3102
3102
|
|
|
3103
3103
|
`),K8=v.map((D8)=>D8.content).filter(Boolean).join(`
|
|
3104
3104
|
|