(e)
| 4113 | <path d="M320-203v-554l440 277-440 277Z"/> |
| 4114 | </svg> |
| 4115 | `;t.innerHTML=n,t.addEventListener("click",o=>{o.stopPropagation();let a=(A.textContent||"").trim();this.chatPanel&&(this.chatPanel.userInput=a,this.chatPanel.userInputChange.emit(a),setTimeout(()=>{this.chatPanel.sendMessage.emit(new Event("submit"))},50))}),e.appendChild(t)}static \u0275fac=function(A){return new(A||i)(st(ce),st(h1,8))};static \u0275cmp=vA({type:i,selectors:[["app-markdown"]],inputs:{text:[1,"text"],thought:[1,"thought"],isReadme:[1,"isReadme"]},features:[pt([GQ()])],decls:1,vars:4,consts:[[3,"data","ngStyle"]],template:function(A,t){A&1&&lA(0,"markdown",0),A&2&&H("data",t.text())("ngStyle",jl(2,I8A,t.thought()?"#9aa0a6":"inherit"))},dependencies:[li,vI,vK,DK],styles:[".mermaid-container[_ngcontent-%COMP%]{display:flex;justify-content:center;margin:16px 0}.mermaid[_ngcontent-%COMP%]{font-size:12px!important}.mermaid[_ngcontent-%COMP%] svg[_ngcontent-%COMP%]{max-width:100%;height:auto} .copy-code-button{position:absolute;top:4px;right:4px;z-index:10;display:flex;align-items:center;justify-content:center;width:28px;height:28px;padding:0;border-radius:4px;background-color:var(--mat-sys-surface-container-high)!important;color:var(--mat-sys-on-surface-variant);border:none;cursor:pointer;opacity:0;transition:opacity .2s ease-in-out,background-color .2s ease-in-out,color .2s ease-in-out} pre:hover .copy-code-button{opacity:1} .copy-code-button:hover{background-color:var(--mat-sys-secondary-container)!important;color:var(--mat-sys-on-secondary-container)!important} .copy-code-button:active{transform:scale(.95)} .copy-code-button.copied{color:#81c784!important;background-color:#4caf5026!important;opacity:1} pre:not(:hover) .copy-code-button.copied, code:not(pre code):not(:hover) .copy-code-button.copied{opacity:0!important;transition:none!important} .copy-code-button svg{width:16px;height:16px} .run-code-button{position:absolute;top:4px;right:4px;z-index:10;display:flex;align-items:center;justify-content:center;width:28px;height:28px;padding:0;border-radius:4px;background-color:var(--mat-sys-surface-container-high)!important;color:var(--mat-sys-on-surface-variant);border:none;cursor:pointer;opacity:0;transition:opacity .2s ease-in-out,background-color .2s ease-in-out,color .2s ease-in-out} .run-code-button:hover{background-color:var(--mat-sys-primary-container)!important;color:var(--mat-sys-on-primary-container)!important} .run-code-button:active{transform:scale(.95)} .run-code-button svg{width:16px;height:16px} code:not(pre code){display:inline-block;position:relative;padding:0 4px;background-color:var(--mat-sys-surface-container-high);vertical-align:top} code:not(pre code).runnable:hover{padding-right:68px!important} code:not(pre code) .copy-code-button{position:absolute;top:50%;right:2px;transform:translateY(-50%);width:28px;height:28px;opacity:0;transition:none!important} code:not(pre code):hover .copy-code-button{opacity:1} code:not(pre code).runnable:hover .copy-code-button{right:32px!important} code:not(pre code) .copy-code-button:active{transform:translateY(-50%)!important} code:not(pre code) .run-code-button{position:absolute;top:50%;right:2px;transform:translateY(-50%);width:28px;height:28px;opacity:0;transition:none!important} code:not(pre code).runnable:hover .run-code-button{opacity:1} code:not(pre code) .run-code-button:active{transform:translateY(-50%)!important}"]})};function h8A(i,e){if(i&1){let A=aA();I(0,"span",6),U("click",function(n){L(A);let o=p();return G(o.toggleExpand(n))}),h()}if(i&2){let A=p();_A("expanded",A.isExpanded)}}function E8A(i,e){if(i&1){let A=aA();I(0,"button",11),U("click",function(n){L(A);let o=p(2);return G(o.openMarkdownDialog(o.key,o.json,n))}),D(1," MARKDOWN "),h()}}function Q8A(i,e){if(i&1&&(I(0,"span",7),D(1),h(),I(2,"span",8),D(3,":"),h(),T(4,E8A,2,0,"button",9),I(5,"span",10),D(6,"\xA0"),h()),i&2){let A=p();Q(),nA(A.key),Q(3),O(A.showMarkdown&&A.hasLineBreaks(A.json)?4:-1)}}function u8A(i,e){i&1&&(I(0,"span",14),D(1,"..."),h(),I(2,"span",13),D(3,"]"),h())}function p8A(i,e){if(i&1&&(I(0,"span",13),D(1,"["),h(),T(2,u8A,4,0)),i&2){let A=p(2);Q(2),O(A.isExpanded?-1:2)}}function f8A(i,e){i&1&&(I(0,"span",14),D(1,"..."),h())}function m8A(i,e){if(i&1&&T(0,f8A,2,0,"span",14),i&2){let A=p(2);O(A.isExpanded?-1:0)}}function w8A(i,e){if(i&1){let A=aA();I(0,"span",12),U("click",function(n){L(A);let o=p();return G(o.toggleExpand(n))}),T(1,p8A,3,1)(2,m8A,1,1),h()}if(i&2){let A=p();Q(),O(A.isArray(A.json)?1:2)}}function y8A(i,e){if(i&1&&(I(0,"span",15),D(1),h()),i&2){let A=p(2);Q(),Ee('"',A.json,'"')}}function D8A(i,e){if(i&1&&(I(0,"span",16),D(1),h()),i&2){let A=p(2);Q(),nA(A.json)}}function v8A(i,e){if(i&1&&(I(0,"span",17),D(1),h()),i&2){let A=p(2);Q(),nA(A.json)}}function b8A(i,e){i&1&&(I(0,"span",18),D(1,"null"),h())}function M8A(i,e){i&1&&(I(0,"span",19),D(1,"undefined"),h())}function S8A(i,e){if(i&1&&(I(0,"span",4),T(1,y8A,2,1,"span",15)(2,D8A,2,1,"span",16)(3,v8A,2,1,"span",17)(4,b8A,2,0,"span",18)(5,M8A,2,0,"span",19),h()),i&2){let A=p();H("ngClass",A.getTypeClass(A.json)),Q(),O(A.isString(A.json)?1:A.isNumber(A.json)?2:A.isBoolean(A.json)?3:A.isNull(A.json)?4:A.isUndefined(A.json)?5:-1)}}function k8A(i,e){if(i&1&&lA(0,"app-custom-json-viewer",22),i&2){let A=e.$implicit,t=e.$index,n=p(3);H("json",A)("key",t)("depth",n.depth+1)("expanded",n.expanded)("showMarkdown",n.showMarkdown)}}function _8A(i,e){if(i&1&&ke(0,k8A,1,5,"app-custom-json-viewer",22,Ja),i&2){let A=p(2);_e(A.json)}}function x8A(i,e){if(i&1&&lA(0,"app-custom-json-viewer",22),i&2){let A=e.$implicit,t=p(3);H("json",t.json[A])("key",A)("depth",t.depth+1)("expanded",t.expanded)("showMarkdown",t.showMarkdown)}}function R8A(i,e){if(i&1&&ke(0,x8A,1,5,"app-custom-json-viewer",22,ni),i&2){let A=p(2);_e(A.getKeys(A.json))}}function N8A(i,e){i&1&&(I(0,"div",21),D(1,"]"),h())}function F8A(i,e){if(i&1&&(I(0,"div",20),T(1,_8A,2,0)(2,R8A,2,0),T(3,N8A,2,0,"div",21),h()),i&2){let A=p();_A("root-children",A.depth===0),Q(),O(A.isArray(A.json)?1:2),Q(2),O(A.isArray(A.json)?3:-1)}}var BR=class i{dialogRef=w(zn);data=w(Do);close(){this.dialogRef.close()}static \u0275fac=function(A){return new(A||i)};static \u0275cmp=vA({type:i,selectors:[["app-markdown-preview-dialog"]],decls:10,vars:2,consts:[[1,"md-dialog-header"],["mat-dialog-title","",1,"md-title"],[1,"title-icon"],["mat-icon-button","",1,"close-button",3,"click"],[1,"md-dialog-content"],[3,"text"]],template:function(A,t){A&1&&(I(0,"div",0)(1,"h2",1)(2,"mat-icon",2),D(3,"article"),h(),D(4),h(),I(5,"button",3),U("click",function(){return t.close()}),I(6,"mat-icon"),D(7,"close"),h()()(),I(8,"mat-dialog-content",4),lA(9,"app-markdown",5),h()),A&2&&(Q(4),Ee(" Markdown Preview - ",t.data.key," "),Q(5),H("text",t.data.value))},dependencies:[li,Ls,Xo,Ba,zt,yi,B1],styles:[".md-dialog-header[_ngcontent-%COMP%]{display:flex;justify-content:space-between;align-items:center;padding:16px 24px 8px;border-bottom:1px solid var(--mat-sys-outline-variant)}.md-title[_ngcontent-%COMP%]{display:flex;align-items:center;gap:8px;margin:0;font-size:1.25rem;font-weight:500;color:var(--mat-sys-on-surface)}.title-icon[_ngcontent-%COMP%]{color:var(--mat-sys-primary)}.close-button[_ngcontent-%COMP%]{color:var(--mat-sys-on-surface-variant)}.md-dialog-content[_ngcontent-%COMP%]{padding:24px;min-width:500px;max-width:80vw;max-height:70vh;overflow-y:auto;background-color:var(--mat-sys-surface-container-high);color:var(--mat-sys-on-surface)}"],changeDetection:0})},fl=class i{json;key;expanded=!0;depth=0;showMarkdown=!1;dialog=w(Xa);isExpanded=!0;ngOnInit(){this.isExpanded=this.expanded}isExpandable(){return this.json!==null&&typeof this.json=="object"}isObject(e){return e!==null&&typeof e=="object"&&!Array.isArray(e)}isArray(e){return Array.isArray(e)}isString(e){return typeof e=="string"}hasLineBreaks(e){return typeof e=="string"&&e.includes(` |
| 4116 | `)}isNumber(e){return typeof e=="number"}isBoolean(e){return typeof e=="boolean"}isNull(e){return e===null}isUndefined(e){return e===void 0}getKeys(e){return e?Object.keys(e):[]}getTypeClass(e){return this.isString(e)?"segment-type-string":this.isNumber(e)?"segment-type-number":this.isBoolean(e)?"segment-type-boolean":this.isNull(e)?"segment-type-null":"segment-type-undefined"}toggleExpand(e){e.stopPropagation(),this.isExpanded=!this.isExpanded}openMarkdownDialog(e,A,t){t.stopPropagation(),this.dialog.open(BR,{data:{key:e.toString(),value:A},width:"800px",maxWidth:"90vw",panelClass:"custom-md-dialog"})}static \u0275fac=function(A){return new(A||i)};static \u0275cmp=vA({type:i,selectors:[["app-custom-json-viewer"]],inputs:{json:"json",key:"key",expanded:"expanded",depth:"depth",showMarkdown:"showMarkdown"},decls:7,vars:6,consts:[[1,"segment"],[1,"segment-header"],[1,"segment-toggler",3,"expanded"],[1,"segment-value"],[1,"segment-value",3,"ngClass"],[1,"segment-children",3,"root-children"],[1,"segment-toggler",3,"click"],[1,"segment-key"],[1,"segment-separator"],["matTooltip","View in Markdown",1,"md-btn"],[1,"segment-space"],["matTooltip","View in Markdown",1,"md-btn",3,"click"],[1,"segment-value",3,"click"],[1,"bracket"],[1,"collapsed-summary"],[1,"value-string"],[1,"value-number"],[1,"value-boolean"],[1,"value-null"],[1,"value-undefined"],[1,"segment-children"],[1,"bracket","close-bracket"],[3,"json","key","depth","expanded","showMarkdown"]],template:function(A,t){A&1&&(I(0,"div",0)(1,"div",1),T(2,h8A,1,2,"span",2),T(3,Q8A,7,2),T(4,w8A,3,1,"span",3)(5,S8A,6,2,"span",4),h(),T(6,F8A,4,4,"div",5),h()),A&2&&(_A("segment-expandable",t.isExpandable()),Q(2),O(t.isExpandable()&&t.depth>0?2:-1),Q(),O(t.key!==void 0?3:-1),Q(),O(t.isExpandable()?4:5),Q(2),O(t.isExpandable()&&t.isExpanded?6:-1))},dependencies:[i,li,Vl,rn,Ls],styles:["[_nghost-%COMP%]{display:block;font-family:var(--ngx-json-font-family, monospace);font-size:var(--ngx-json-font-size, 13px);line-height:1.4}.segment[_ngcontent-%COMP%]{margin:2px 0;display:block}.segment-header[_ngcontent-%COMP%]{display:flex;align-items:flex-start;flex-wrap:wrap}.segment-toggler[_ngcontent-%COMP%]{cursor:pointer;display:inline-block;width:0;height:0;border-style:solid;border-width:5px 0 5px 6px;border-color:transparent transparent transparent var(--mat-sys-outline);margin-right:8px;margin-top:4px;transition:transform .15s ease}.segment-toggler.expanded[_ngcontent-%COMP%]{transform:rotate(90deg)}.segment-toggler[_ngcontent-%COMP%]:hover{border-left-color:var(--mat-sys-primary)}.segment-key[_ngcontent-%COMP%]{color:var(--mat-sys-primary);font-weight:400;cursor:pointer}.segment-separator[_ngcontent-%COMP%]{color:var(--mat-sys-on-surface)}.segment-space[_ngcontent-%COMP%]{display:inline-block;width:4px;-webkit-user-select:none;user-select:none}.segment-value[_ngcontent-%COMP%]{color:var(--mat-sys-on-surface)}.bracket[_ngcontent-%COMP%]{color:var(--mat-sys-outline);font-weight:400}.collapsed-summary[_ngcontent-%COMP%]{color:var(--mat-sys-on-surface-variant);font-size:11px;margin:0 4px}.segment-children[_ngcontent-%COMP%]{margin-left:12px;padding-left:4px}.segment-children.root-children[_ngcontent-%COMP%]{margin-left:0;padding-left:0}.close-bracket[_ngcontent-%COMP%]{display:block}.md-btn[_ngcontent-%COMP%]{border:none;outline:none;cursor:pointer;font-family:Roboto,sans-serif;font-size:10px;font-weight:700;letter-spacing:.5px;color:var(--mat-sys-primary);background-color:var(--mat-sys-primary-container);border-radius:4px;padding:2px 6px;margin-left:4px;margin-right:2px;display:inline-flex;align-items:center;justify-content:center;opacity:0;visibility:hidden;transition:opacity .2s ease,visibility .2s ease,background-color .2s ease,color .2s ease,transform .2s ease;height:16px}.md-btn[_ngcontent-%COMP%]:hover{opacity:1!important;transform:scale(1.05);background-color:var(--mat-sys-primary);color:var(--mat-sys-on-primary)}.segment-header[_ngcontent-%COMP%]:hover .md-btn[_ngcontent-%COMP%]{opacity:.5;visibility:visible}.segment-type-string[_ngcontent-%COMP%]{color:var(--ngx-json-string, #FF6B6B)}.segment-type-string[_ngcontent-%COMP%] .value-string[_ngcontent-%COMP%]{white-space:pre-wrap;word-break:break-word}.segment-type-number[_ngcontent-%COMP%]{color:var(--mat-sys-error)}.segment-type-boolean[_ngcontent-%COMP%]{color:var(--mat-sys-secondary)}.segment-type-null[_ngcontent-%COMP%], .segment-type-undefined[_ngcontent-%COMP%]{color:var(--mat-sys-outline);font-style:italic} .custom-md-dialog .mat-mdc-dialog-container{border-radius:12px!important;border:1px solid var(--mat-sys-outline-variant);box-shadow:0 12px 40px #0000004d!important;background-color:var(--mat-sys-surface-container-high)!important}"],changeDetection:0})};function L8A(i,e){if(i&1&&(I(0,"div",1),D(1),h()),i&2){let A=p();Q(),nA(A.title)}}var Ay=class i{title="";set json(e){if(typeof e=="string")try{this.parsedJson=JSON.parse(e)}catch(A){this.parsedJson=e}else this.parsedJson=e}parsedJson={};static \u0275fac=function(A){return new(A||i)};static \u0275cmp=vA({type:i,selectors:[["app-json-tooltip"]],inputs:{title:"title",json:"json"},decls:4,vars:3,consts:[[1,"tooltip-shell"],[1,"tooltip-title"],[1,"tooltip-content"],[3,"json","expanded"]],template:function(A,t){A&1&&(I(0,"div",0),T(1,L8A,2,1,"div",1),I(2,"div",2),lA(3,"app-custom-json-viewer",3),h()()),A&2&&(Q(),O(t.title?1:-1),Q(2),H("json",t.parsedJson)("expanded",!0))},dependencies:[fl],styles:["[_nghost-%COMP%]{display:block;font-size:12px;line-height:1.4;word-break:break-word;overflow:hidden}.tooltip-shell[_ngcontent-%COMP%]{display:flex;flex-direction:column;max-width:800px;max-height:80vh;overflow:hidden}.tooltip-content[_ngcontent-%COMP%]{min-height:0;overflow:auto;overscroll-behavior:contain;scrollbar-gutter:stable}.tooltip-title[_ngcontent-%COMP%]{font-weight:600;font-size:9px;color:var(--mat-sys-primary);opacity:.5;margin-bottom:4px;text-transform:uppercase;letter-spacing:.5px;position:sticky;top:0;background:inherit;z-index:1}app-custom-json-viewer[_ngcontent-%COMP%]{display:block;height:auto!important;min-width:0}"]})};var E1=class i{json="";title="";overlayRef=null;overlay=w(ad);elementRef=w(ce);show(){if(!this.json)return;let e=this.overlay.position().flexibleConnectedTo(this.elementRef).withPositions([{originX:"center",originY:"top",overlayX:"center",overlayY:"bottom",offsetY:-8},{originX:"center",originY:"bottom",overlayX:"center",overlayY:"top",offsetY:8},{originX:"start",originY:"top",overlayX:"start",overlayY:"bottom",offsetY:-8},{originX:"end",originY:"top",overlayX:"end",overlayY:"bottom",offsetY:-8}]).withViewportMargin(16).withPush(!1);this.overlayRef=this.overlay.create({positionStrategy:e,scrollStrategy:this.overlay.scrollStrategies.close(),panelClass:"json-tooltip-panel",maxWidth:"90vw"});let A=new Fs(Ay),t=this.overlayRef.attach(A);t.instance.json=this.json,t.instance.title=this.title,t.changeDetectorRef.detectChanges(),this.overlayRef.updatePosition()}hide(){this.overlayRef&&(this.overlayRef.dispose(),this.overlayRef=null)}ngOnDestroy(){this.hide()}static \u0275fac=function(A){return new(A||i)};static \u0275dir=VA({type:i,selectors:[["","appJsonTooltip",""]],hostBindings:function(A,t){A&1&&U("mouseenter",function(){return t.show()})("mouseleave",function(){return t.hide()})},inputs:{json:[0,"appJsonTooltip","json"],title:[0,"appJsonTooltipTitle","title"]}})},ey=class i{tooltipTemplate;context={};disabled=!1;overlayRef=null;overlay=w(ad);elementRef=w(ce);viewContainerRef=w(Jo);show(){if(this.disabled||!this.tooltipTemplate)return;let e=this.overlay.position().flexibleConnectedTo(this.elementRef).withPositions([{originX:"center",originY:"top",overlayX:"center",overlayY:"bottom",offsetY:-8},{originX:"center",originY:"bottom",overlayX:"center",overlayY:"top",offsetY:8},{originX:"start",originY:"top",overlayX:"start",overlayY:"bottom",offsetY:-8},{originX:"end",originY:"top",overlayX:"end",overlayY:"bottom",offsetY:-8}]).withViewportMargin(16).withPush(!1);this.overlayRef=this.overlay.create({positionStrategy:e,scrollStrategy:this.overlay.scrollStrategies.close(),panelClass:"html-tooltip-panel",maxWidth:"90vw"});let A=new jr(this.tooltipTemplate,this.viewContainerRef,this.context);this.overlayRef.attach(A)}hide(){this.overlayRef&&(this.overlayRef.dispose(),this.overlayRef=null)}ngOnDestroy(){this.hide()}static \u0275fac=function(A){return new(A||i)};static \u0275dir=VA({type:i,selectors:[["","appHtmlTooltip",""]],hostBindings:function(A,t){A&1&&U("mouseenter",function(){return t.show()})("mouseleave",function(){return t.hide()})},inputs:{tooltipTemplate:[0,"appHtmlTooltip","tooltipTemplate"],context:[0,"appHtmlTooltipContext","context"],disabled:[0,"appHtmlTooltipDisabled","disabled"]}})};function G8A(i,e){if(i&1&&(I(0,"div",3)(1,"mat-icon",4),D(2,"robot_2"),h()()),i&2){let A=p();ft("background-color",A.color),_A("hidden",!A.author),H("appJsonTooltip",A.tooltip)}}function K8A(i,e){if(i&1&&(I(0,"div",5),D(1),h()),i&2){let A=p();ft("background-color",A.color),_A("hidden",!A.author),H("appJsonTooltip",A.tooltip),Q(),Ee(" ",A.initial," ")}}function U8A(i,e){i&1&&(I(0,"div",2)(1,"mat-icon"),D(2,"person"),h()())}var ty=class i{role="user";author="";nodePath="";themeService=w(og);stringToColorService=w(g2);get tooltip(){if(this.role==="user")return"";let e={author:this.author,nodePath:this.nodePath||""};return JSON.stringify(e,null,2)}get color(){let e=this.getNodeName(this.nodePath||""),A=this.themeService.currentTheme();return this.stringToColorService.stc(e,A)}get initial(){let A=this.getNodeName(this.nodePath||"").match(/[A-Za-z0-9]/);return A?A[0].toUpperCase():"N"}getNodeName(e){return e.split(/[/.>]/).filter(Boolean).pop()||e}static \u0275fac=function(A){return new(A||i)};static \u0275cmp=vA({type:i,selectors:[["app-chat-avatar"]],inputs:{role:"role",author:"author",nodePath:"nodePath"},decls:3,vars:1,consts:[[1,"bot-avatar",3,"appJsonTooltip","hidden","background-color"],[1,"node-circle-icon",3,"background-color","appJsonTooltip","hidden"],[1,"user-avatar"],[1,"bot-avatar",3,"appJsonTooltip"],["fontSet","material-symbols-outlined"],[1,"node-circle-icon",3,"appJsonTooltip"]],template:function(A,t){A&1&&T(0,G8A,3,5,"div",0)(1,K8A,2,6,"div",1)(2,U8A,3,0,"div",2),A&2&&O(t.role==="bot"?0:t.role==="node"?1:t.role==="user"?2:-1)},dependencies:[li,Un,zt,qi,E1],styles:["[_nghost-%COMP%]{display:contents}.node-circle-icon[_ngcontent-%COMP%]{width:32px;height:32px;border-radius:50%;margin-left:4px;margin-right:16px;margin-top:2px;flex-shrink:0;display:inline-flex;align-items:center;justify-content:center;align-self:flex-start;color:#fff;font-size:14px;font-weight:600;line-height:1;text-transform:uppercase}.bot-avatar[_ngcontent-%COMP%], .user-avatar[_ngcontent-%COMP%]{width:40px;height:40px;border-radius:50%;display:inline-flex;align-items:center;justify-content:center;flex-shrink:0}.bot-avatar[_ngcontent-%COMP%]{margin-right:12px;color:#fff}.user-avatar[_ngcontent-%COMP%]{background-color:var(--mat-sys-primary);color:var(--mat-sys-on-primary)}.hidden[_ngcontent-%COMP%]{visibility:hidden}"]})};var iy=new MA("FeedbackService");var T8A={goodResponseTooltip:"Good response",badResponseTooltip:"Bad response",feedbackAdditionalLabel:"Additional feedback (Optional)",feedbackCommentPlaceholderDown:"Share what could be improved in the response",feedbackCommentPlaceholderUp:"Share what you liked about the response",feedbackCancelButton:"Cancel",feedbackSubmitButton:"Submit",feedbackDialogTitle:"Reasons for feedback (Select all that apply)",feedbackReasonHallucination:"Hallucinated libraries / APIs etc",feedbackReasonIncomplete:"Incomplete answer",feedbackReasonFollowup:"Didn't understand followup",feedbackReasonFactual:"Factual errors",feedbackReasonLinks:"Broken/incorrect links",feedbackReasonIrrelevant:"Irrelevant information",feedbackReasonRepetitive:"Repetitive",feedbackReasonAccurate:"Accurate info",feedbackReasonHelpful:"Helpful",feedbackReasonConcise:"Concise",feedbackReasonUnderstanding:"Good understanding",feedbackReasonClear:"Clear and easy to follow"},HX=new MA("Message Feedback Messages",{factory:()=>T8A});function O8A(i,e){i&1&&(I(0,"mat-icon"),D(1,"thumb_up_filled"),h())}function J8A(i,e){i&1&&(I(0,"mat-icon"),D(1,"thumb_up"),h())}function Y8A(i,e){i&1&&(I(0,"mat-icon"),D(1,"thumb_down_filled"),h())}function H8A(i,e){i&1&&(I(0,"mat-icon"),D(1,"thumb_down"),h())}function z8A(i,e){if(i&1&&(I(0,"mat-chip-option",7),D(1),h()),i&2){let A=e.$implicit;H("value",A),Q(),Ee(" ",A," ")}}function P8A(i,e){if(i&1){let A=aA();I(0,"div",4)(1,"div",5)(2,"h3"),D(3),h(),I(4,"mat-chip-listbox",6),ke(5,z8A,2,2,"mat-chip-option",7,ni),h()(),I(7,"div",8)(8,"h3"),D(9),h(),I(10,"mat-form-field",9)(11,"textarea",10),D(12," "),h()()(),I(13,"div",11)(14,"button",12),U("click",function(){L(A);let n=p();return G(n.onDetailedFeedbackCancelled())}),D(15),h(),I(16,"button",13),U("click",function(){L(A);let n=p();return G(n.onDetailedFeedbackSubmitted())}),D(17),h()()()}if(i&2){let A=p();Q(3),nA(A.i18n.feedbackDialogTitle),Q(),H("formControl",A.selectedReasons),Q(),_e(A.reasons()),Q(4),nA(A.i18n.feedbackAdditionalLabel),Q(2),H("formControl",A.comment)("placeholder",A.feedbackPlaceholder()),Q(4),Ee(" ",A.i18n.feedbackCancelButton," "),Q(2),Ee(" ",A.i18n.feedbackSubmitButton," ")}}var ny=class i{sessionName=ve.required();eventId=ve.required();i18n=w(HX);feedbackService=w(iy);existingFeedback=If({params:()=>({sessionName:this.sessionName(),eventId:this.eventId()}),stream:({params:e})=>this.feedbackService.getFeedback(e.sessionName,e.eventId)});selectedFeedbackDirection=mA(void 0);feedbackDirection=ye(()=>this.selectedFeedbackDirection()??this.existingFeedback.value()?.direction);isDetailedFeedbackVisible=mA(!1);feedbackPlaceholder=ye(()=>this.feedbackDirection()==="up"?this.i18n.feedbackCommentPlaceholderUp:this.i18n.feedbackCommentPlaceholderDown);positiveReasonsResource=If({stream:()=>this.feedbackService.getPositiveFeedbackReasons()});negativeReasonsResource=If({stream:()=>this.feedbackService.getNegativeFeedbackReasons()});reasons=ye(()=>this.feedbackDirection()==="up"?this.positiveReasonsResource.value():this.negativeReasonsResource.value());selectedReasons=new Ps([]);comment=new Ps("");isLoading=mA(!1);sendFeedback(e){this.feedbackDirection()===e?(this.isLoading.set(!0),this.feedbackService.deleteFeedback(this.sessionName(),this.eventId()).subscribe(()=>{this.isLoading.set(!1),this.selectedFeedbackDirection.set(void 0),this.resetDetailedFeedback()})):(this.selectedReasons.reset(),this.isLoading.set(!0),this.feedbackService.sendFeedback(this.sessionName(),this.eventId(),{direction:e}).subscribe(()=>{this.isLoading.set(!1),this.isDetailedFeedbackVisible.set(!0),this.selectedFeedbackDirection.set(e)}))}onDetailedFeedbackSubmitted(){let e=this.feedbackDirection();e&&(this.isLoading.set(!0),this.feedbackService.sendFeedback(this.sessionName(),this.eventId(),{direction:e,reasons:this.selectedReasons.value??[],comment:this.comment.value??void 0}).subscribe(()=>{this.isLoading.set(!1),this.resetDetailedFeedback()}))}onDetailedFeedbackCancelled(){this.selectedFeedbackDirection.set(void 0),this.resetDetailedFeedback()}resetDetailedFeedback(){this.isDetailedFeedbackVisible.set(!1),this.comment.reset(),this.selectedReasons.reset([])}static \u0275fac=function(A){return new(A||i)};static \u0275cmp=vA({type:i,selectors:[["app-message-feedback"]],inputs:{sessionName:[1,"sessionName"],eventId:[1,"eventId"]},decls:9,vars:7,consts:[[1,"message-feedback-container"],[1,"feedback-buttons"],["mat-icon-button","",3,"click","matTooltip","disabled"],["class","feedback-details-container",4,"ngIf"],[1,"feedback-details-container"],[1,"reasons-chips"],["multiple","",3,"formControl"],[3,"value"],[1,"additional-feedback"],["appearance","outline"],["matInput","",3,"formControl","placeholder"],[1,"actions"],["mat-stroked-button","",3,"click"],["mat-flat-button","","color","primary",3,"click"]],template:function(A,t){A&1&&(I(0,"div",0)(1,"div",1)(2,"button",2),U("click",function(){return t.sendFeedback("up")}),T(3,O8A,2,0,"mat-icon")(4,J8A,2,0,"mat-icon"),h(),I(5,"button",2),U("click",function(){return t.sendFeedback("down")}),T(6,Y8A,2,0,"mat-icon")(7,H8A,2,0,"mat-icon"),h()(),kt(8,P8A,18,7,"div",3),h()),A&2&&(Q(2),H("matTooltip",t.i18n.goodResponseTooltip)("disabled",t.isLoading()),Q(),O(t.feedbackDirection()==="up"?3:4),Q(2),H("matTooltip",t.i18n.badResponseTooltip)("disabled",t.isLoading()),Q(),O(t.feedbackDirection()==="down"?6:7),Q(2),H("ngIf",t.isDetailedFeedbackVisible()))},dependencies:[li,ql,WC,Gn,Kn,x1,qi,ki,yi,f5,Kx,Lx,Za,Zo,Un,zt,Ws,ka,Ha,rn],styles:[".message-feedback-container[_ngcontent-%COMP%]{display:block}.feedback-buttons[_ngcontent-%COMP%]{--mat-icon-button-touch-target-size: 32px;--button-size: 32px;--icon-size: 12px;margin-left:96px;display:flex}.feedback-buttons[_ngcontent-%COMP%] button[_ngcontent-%COMP%]{display:flex;align-items:center;justify-content:center;width:var(--button-size);height:var(--button-size);transition:all .2s ease}.feedback-buttons[_ngcontent-%COMP%] button[_ngcontent-%COMP%] mat-icon[_ngcontent-%COMP%]{font-size:var(--icon-size);height:var(--icon-size);width:var(--icon-size);transition:all .2s ease}.feedback-buttons[_ngcontent-%COMP%] button.selected[_ngcontent-%COMP%]{color:var(--side-panel-button-filled-label-text-color, white)}.feedback-buttons[_ngcontent-%COMP%] button.selected[_ngcontent-%COMP%] mat-icon[_ngcontent-%COMP%]{color:inherit}.reasons-chips[_ngcontent-%COMP%]{margin-bottom:20px}.feedback-details-container[_ngcontent-%COMP%]{margin-left:54px;max-width:500px;padding:16px;border-radius:8px;margin-top:8px;border:1px solid var(--builder-border-color)}.feedback-details-container[_ngcontent-%COMP%] .additional-feedback[_ngcontent-%COMP%] h3[_ngcontent-%COMP%]{font-weight:500;margin-bottom:8px;margin-top:0;color:var(--builder-text-secondary-color)}.feedback-details-container[_ngcontent-%COMP%] .additional-feedback[_ngcontent-%COMP%] mat-form-field[_ngcontent-%COMP%]{width:100%}.feedback-details-container[_ngcontent-%COMP%] .additional-feedback[_ngcontent-%COMP%] mat-form-field[_ngcontent-%COMP%] textarea[_ngcontent-%COMP%]{min-height:60px;resize:vertical}.feedback-details-container[_ngcontent-%COMP%] .actions[_ngcontent-%COMP%]{display:flex;justify-content:flex-end;gap:8px;margin-top:12px}.feedback-details-container[_ngcontent-%COMP%] .actions[_ngcontent-%COMP%] button[_ngcontent-%COMP%]{border-radius:18px;padding:0 16px;height:32px;line-height:32px;font-weight:500}"]})};var j8A={cancelButton:"Cancel",saveButton:"Save",invalidJsonAlert:"Invalid JSON: "},zX=new MA("Edit Json Dialog Messages",{factory:()=>j8A});var CI=class i{constructor(e,A){this.dialogRef=e;this.data=A;this.jsonString=JSON.stringify(A.jsonContent,null,2),this.functionName=A.functionName||""}jsonEditorComponent=Yo(Dc);jsonString="";functionName="";i18n=w(zX);ngOnInit(){}onSave(){try{this.jsonString=this.jsonEditorComponent().getJsonString();let e=JSON.parse(this.jsonString);this.dialogRef.close(e)}catch(e){alert(this.i18n.invalidJsonAlert+e)}}onCancel(){this.dialogRef.close(null)}static \u0275fac=function(A){return new(A||i)(st(zn),st(Do))};static \u0275cmp=vA({type:i,selectors:[["app-edit-json-dialog"]],viewQuery:function(A,t){A&1&&ls(t.jsonEditorComponent,Dc,5),A&2&&br()},decls:11,vars:5,consts:[[1,"dialog-container"],["mat-dialog-title",""],[1,"editor"],[3,"jsonString"],["align","end"],["mat-button","","mat-dialog-close",""],["mat-button","","cdkFocusInitial","",3,"click"]],template:function(A,t){A&1&&(I(0,"div",0)(1,"h2",1),D(2),h(),I(3,"mat-dialog-content",2),D(4),lA(5,"app-json-editor",3),h(),I(6,"mat-dialog-actions",4)(7,"button",5),D(8),h(),I(9,"button",6),U("click",function(){return t.onSave()}),D(10),h()()()),A&2&&(Q(2),nA(t.data.dialogHeader),Q(2),Ee(" ",t.functionName," "),Q(),H("jsonString",t.jsonString),Q(3),nA(t.i18n.cancelButton),Q(2),nA(t.i18n.saveButton))},dependencies:[Xo,Ba,Dc,ha,ki,r2],styles:[".dialog-container[_ngcontent-%COMP%]{border-radius:12px;padding:18px;width:500px;box-shadow:0 8px 16px var(--edit-json-dialog-container-box-shadow-color)}.editor[_ngcontent-%COMP%]{padding-top:12px;height:300px}"]})};function vE(i){if(!i)return!1;if(i.name==="computer"){let t=i.args?.action,n=i.args?.coordinate;return["left_click","right_click","middle_click","double_click"].includes(t)&&Array.isArray(n)&&n.length===2}let e=["click_at","hover_at","type_text_at","scroll_at","drag_and_drop","mouse_move","scroll_document","wait_5_seconds","navigate","open_web_browser"].includes(i.name),A=i.args?.x!=null&&i.args?.y!=null||Array.isArray(i.args?.coordinate)&&i.args?.coordinate.length===2;return e}function k0(i){return i?!!i.response?.image?.data:!1}var hR=(a=>(a[a.INACTIVE=0]="INACTIVE",a[a.PENDING=1]="PENDING",a[a.RUNNING=2]="RUNNING",a[a.COMPLETED=3]="COMPLETED",a[a.INTERRUPTED=4]="INTERRUPTED",a[a.FAILED=5]="FAILED",a))(hR||{});var V8A=()=>({type:"dots",color:"#424242",size:1,gap:10});function q8A(i,e){i&1&&(I(0,"span",2),D(1,"(Pinned - Click X to close)"),h())}function W8A(i,e){i&1&&(I(0,"span",2),D(1,"(Click to pin)"),h())}function Z8A(i,e){i&1&&(I(0,"mat-icon",10),D(1,"chevron_right"),h())}function X8A(i,e){if(i&1){let A=aA();I(0,"span",9),U("click",function(){let n=L(A).$index,o=p(2);return G(o.navigateToLevel(n))}),D(1),h(),T(2,Z8A,2,0,"mat-icon",10)}if(i&2){let A=e.$implicit,t=e.$index,n=p(2);_A("active",t===n.breadcrumbs().length-1),Q(),Ee(" ",A," "),Q(),O(t<n.breadcrumbs().length-1?2:-1)}}function $8A(i,e){if(i&1&&(I(0,"div",4),ke(1,X8A,3,4,null,null,Ja),h()),i&2){let A=p();Q(),_e(A.breadcrumbs())}}function AwA(i,e){i&1&&(I(0,"mat-icon",19),D(1,"zoom_in"),h())}function ewA(i,e){if(i&1&&(I(0,"div",23),D(1),h()),i&2){let A=p().$implicit;Q(),Ee("Retry: ",A.node.data().retryCount)}}function twA(i,e){if(i&1){let A=aA();I(0,"div",11),U("click",function(){let n=L(A).$implicit,o=p();return G(n.node.data().hasNestedStructure?o.navigateIntoNode(n.node.data().name):null)}),lA(1,"handle",12)(2,"handle",13)(3,"handle",14)(4,"handle",15),I(5,"div",16)(6,"mat-icon",17),D(7),h(),I(8,"span",18),D(9),h(),T(10,AwA,2,0,"mat-icon",19),I(11,"mat-icon",20),D(12),h()(),I(13,"div",21),D(14),h(),I(15,"div",22),D(16),h(),T(17,ewA,2,1,"div",23),h()}if(i&2){let A=e.$implicit,t=p();ft("border-color",t.getStatusColor(A.node.data().status)),_A("expandable",A.node.data().hasNestedStructure),Q(7),Ee(" ",t.getNodeTypeIcon(A.node.data().type)," "),Q(2),nA(A.node.data().name),Q(),O(A.node.data().hasNestedStructure?10:-1),Q(),ft("color",t.getStatusColor(A.node.data().status)),Q(),Ee(" ",t.getStatusIcon(A.node.data().status)," "),Q(2),nA(t.getNodeTypeLabel(A.node.data().type)),Q(),ft("color",t.getStatusColor(A.node.data().status)),Q(),Ee(" ",t.getStatusLabel(A.node.data().status)," "),Q(),O(A.node.data().retryCount&&A.node.data().retryCount>0?17:-1)}}function iwA(i,e){if(i&1&&(Et(),I(0,"g",24),lA(1,"path",25),h()),i&2){let A=e.$implicit;Q(),ie("d",A.path())("stroke",A.edge.data!=null&&A.edge.data.isActive?"#42A5F5":"rgba(138, 180, 248, 0.8)")("stroke-width",A.edge.data!=null&&A.edge.data.isActive?"3":"2")("class",A.edge.data!=null&&A.edge.data.isActive?"active-edge":"")("marker-end",A.markerEnd())}}var oy=class i{nodes=null;agentGraphData=null;nodePath=null;allNodes=null;isPinned=!1;onClose;graphNodes=mA([]);graphEdges=mA([]);NodeStatus=hR;connection={mode:"loose"};fullAgentData=null;navigationStack=[];breadcrumbs=mA([]);close(){this.onClose&&this.onClose()}ngOnInit(){this.buildGraph()}buildGraph(){if(this.agentGraphData?.root_agent){this.fullAgentData=this.agentGraphData.root_agent,this.navigationStack=[{name:this.agentGraphData.root_agent.name,data:this.agentGraphData.root_agent}],this.nodePath&&this.navigateToNodePath(this.nodePath),this.updateBreadcrumbs();let e=this.navigationStack[this.navigationStack.length-1].data;this.buildGraphFromStructure(e)}else this.buildGraphFromStateOnly()}buildGraphFromStructure(e){let A=[],t=[];if(e.nodes&&Array.isArray(e.nodes))this.buildMeshGraph(e.nodes,A,t);else if(e.graph&&e.graph.nodes){let n=IO(e.graph.nodes,e.graph.edges||[],g6);e.graph.nodes.forEach((o,a)=>{let r=tc(o,`node_${a}`),s=this.nodes?this.nodes[r]:null,l=o.type||"agent",g=n.positions.get(r)||{x:g6.startX,y:g6.startY},C=tC(o),d=this.getNodeStatusAtLevel(r,o);A.push({id:r,type:"html-template",point:mA({x:g.x,y:g.y}),width:mA(180),height:mA(80),data:mA({name:r,type:l,status:d,input:s?.input,triggeredBy:s?.triggered_by,retryCount:s?.retry_count,runId:s?.run_id,hasNestedStructure:C,nodeData:o})})}),e.graph.edges&&e.graph.edges.forEach((o,a)=>{let r=tc(o.from_node),s=tc(o.to_node);if(r&&s){let l=this.getNodeStatusAtLevel(r,o.from_node),g=this.getNodeStatusAtLevel(s,o.to_node),C=l===2||l===3&&(g===2||g===1);t.push({id:`${r}_to_${s}_${a}`,source:r,target:s,type:"template",data:{isActive:C},markers:{end:{type:"arrow-closed",width:15,height:15,color:C?"#42A5F5":"rgba(138, 180, 248, 0.8)"}}})}})}this.graphNodes.set(A),this.graphEdges.set(t)}buildMeshGraph(e,A,t){let n=e.findIndex(d=>d.name===e[0]?.name||d.type==="coordinator"),o=n>=0?e[n]:null,a=e.filter((d,B)=>B!==n),r=100,s=200,l=300,C=400-(a.length-1)*l/2;if(o){let d=tC(o),B=tc(o),u=this.getNodeStatusAtLevel(B,o);A.push({id:B,type:"html-template",point:mA({x:400,y:r}),width:mA(180),height:mA(80),data:mA({name:B,type:"agent",status:u,hasNestedStructure:d,nodeData:o})})}a.forEach((d,B)=>{let u=C+B*l,E=r+s,f=tC(d),m=tc(d),v=this.getNodeStatusAtLevel(m,d);if(A.push({id:m,type:"html-template",point:mA({x:u,y:E}),width:mA(180),height:mA(80),data:mA({name:m,type:"agent",status:v,hasNestedStructure:f,nodeData:d})}),o){let S=tc(o),k=this.getNodeStatusAtLevel(S,o),M=k===2||k===3&&(v===2||v===1);t.push({id:`${S}_to_${m}`,source:S,target:m,type:"template",floating:!0,data:{isActive:M},markers:{end:{type:"arrow-closed",width:15,height:15,color:M?"#42A5F5":"rgba(138, 180, 248, 0.8)"}}})}})}buildGraphFromStateOnly(){let e=[],A=[];if(!this.nodes){this.graphNodes.set(e),this.graphEdges.set(A);return}let a=Object.keys(this.nodes);a.forEach((r,s)=>{let l=this.nodes[r];e.push({id:r,type:"html-template",point:mA({x:200,y:50+s*120}),width:mA(180),height:mA(80),data:mA({name:r,type:r==="__START__"?"start":"agent",status:l.status,input:l.input,triggeredBy:l.triggered_by,retryCount:l.retry_count,runId:l.run_id})})}),a.forEach(r=>{let s=this.nodes[r];if(s.triggered_by&&a.includes(s.triggered_by)){let g=this.nodes[s.triggered_by]?.status===2;A.push({id:`${s.triggered_by}_to_${r}`,source:s.triggered_by,target:r,type:"template",floating:!0,data:{isActive:g},markers:{end:{type:"arrow-closed",width:15,height:15,color:g?"#42A5F5":"rgba(138, 180, 248, 0.8)"}}})}}),this.graphNodes.set(e),this.graphEdges.set(A)}getStatusColor(e){switch(e){case 0:return"#757575";case 1:return"#FFA726";case 2:return"#42A5F5";case 3:return"#66BB6A";case 4:return"#FFCA28";case 5:return"#EF5350";default:return"#757575"}}getStatusLabel(e){switch(e){case 0:return"INACTIVE";case 1:return"PENDING";case 2:return"RUNNING";case 3:return"COMPLETED";case 4:return"INTERRUPTED";case 5:return"FAILED";default:return"UNKNOWN"}}getStatusIcon(e){switch(e){case 0:return"radio_button_unchecked";case 1:return"schedule";case 2:return"play_circle";case 3:return"check_circle";case 4:return"pause_circle";case 5:return"error";default:return"help"}}updateBreadcrumbs(){this.breadcrumbs.set(this.navigationStack.map(e=>e.name))}navigateIntoNode(e){let A=this.navigationStack[this.navigationStack.length-1].data,t=LB(A,e);t&&tC(t)&&(this.navigationStack.push({name:e,data:t}),this.updateBreadcrumbs(),this.buildGraphFromStructure(t))}navigateToLevel(e){if(e>=0&&e<this.navigationStack.length){this.navigationStack=this.navigationStack.slice(0,e+1),this.updateBreadcrumbs();let A=this.navigationStack[this.navigationStack.length-1].data;this.buildGraphFromStructure(A)}}navigateToNodePath(e){this.navigationStack=QO(this.agentGraphData.root_agent,e)}getNodeStatusAtLevel(e,A){let t=EO(this.navigationStack);if(this.nodePath&&t===this.nodePath){let n=this.nodes?this.nodes[e]:null;if(n)return n.status}return this.nodePath&&tC(A)&&this.isInExecutionPath(e,t)?2:this.allNodes&&this.allNodes[t]&&this.allNodes[t][e]?this.allNodes[t][e].status:0}isInExecutionPath(e,A){if(!this.nodePath)return!1;if(this.nodePath.startsWith(A+"/")){let n=this.nodePath.substring(A.length+1).split("/")[0];return e===n}return!1}getNodeTypeIcon=BO;getNodeTypeLabel=hO;static \u0275fac=function(A){return new(A||i)};static \u0275cmp=vA({type:i,selectors:[["app-workflow-graph-tooltip"]],inputs:{nodes:"nodes",agentGraphData:"agentGraphData",nodePath:"nodePath",allNodes:"allNodes",isPinned:"isPinned",onClose:"onClose"},decls:14,vars:9,consts:[[1,"workflow-graph-tooltip"],[1,"tooltip-header"],[1,"pinned-hint"],["mat-icon-button","","aria-label","Close",1,"close-button",3,"click"],[1,"breadcrumb-nav"],[1,"vflow-container"],["view","auto",3,"nodes","edges","connection","background"],["nodeHtml",""],["edge",""],[1,"breadcrumb-item",3,"click"],[1,"breadcrumb-separator"],["selectable","",1,"workflow-node",3,"click"],["type","source","position","top","id","top"],["type","source","position","right","id","right"],["type","source","position","bottom","id","bottom"],["type","source","position","left","id","left"],[1,"node-header"],[1,"node-type-icon"],[1,"node-label"],[1,"expand-icon"],[1,"status-icon"],[1,"node-type"],[1,"node-status"],[1,"node-retry"],["customTemplateEdge",""],["fill","none"]],template:function(A,t){A&1&&(I(0,"div",0)(1,"div",1)(2,"span"),D(3,"Workflow Graph"),h(),T(4,q8A,2,0,"span",2)(5,W8A,2,0,"span",2),I(6,"button",3),U("click",function(){return t.close()}),I(7,"mat-icon"),D(8,"close"),h()()(),T(9,$8A,3,0,"div",4),I(10,"div",5)(11,"vflow",6),kt(12,twA,18,15,"ng-template",7)(13,iwA,2,5,"ng-template",8),h()()()),A&2&&(Q(4),O(t.isPinned?4:5),Q(2),ft("display",t.isPinned?"block":"none"),Q(3),O(t.breadcrumbs().length>1?9:-1),Q(2),H("nodes",t.graphNodes())("edges",t.graphEdges())("connection",t.connection)("background",Lc(8,V8A)))},dependencies:[li,Un,zt,qi,yi,K5,Dp,U5,QZ,hE,S5],styles:[".workflow-graph-tooltip[_ngcontent-%COMP%]{width:500px;height:400px;border-radius:8px;padding:12px;display:flex;flex-direction:column;box-shadow:0 4px 16px #0006}.tooltip-header[_ngcontent-%COMP%]{font-size:14px;font-weight:500;color:var(--mdc-dialog-supporting-text-color);margin-bottom:8px;padding-bottom:8px;border-bottom:1px solid rgba(255,255,255,.1);display:flex;align-items:center;gap:8px}.pinned-hint[_ngcontent-%COMP%]{font-size:12px;font-weight:400;opacity:.7;font-style:italic;flex:1}.close-button[_ngcontent-%COMP%]{width:24px;height:24px;line-height:24px;margin-left:auto}.close-button[_ngcontent-%COMP%] mat-icon[_ngcontent-%COMP%]{font-size:18px;width:18px;height:18px;line-height:18px}.breadcrumb-nav[_ngcontent-%COMP%]{display:flex;align-items:center;margin-bottom:8px;font-size:12px;color:var(--mdc-dialog-supporting-text-color)}.breadcrumb-item[_ngcontent-%COMP%]{cursor:pointer;padding:3px 6px;border-radius:3px;transition:background-color .2s}.breadcrumb-item.active[_ngcontent-%COMP%]{font-weight:500;cursor:default}.breadcrumb-separator[_ngcontent-%COMP%]{font-size:14px;width:14px;height:14px;opacity:.5;margin:0 2px}.vflow-container[_ngcontent-%COMP%]{flex:1;min-height:0;border:1px solid rgba(255,255,255,.1);border-radius:4px;overflow:hidden;position:relative}.vflow-container[_ngcontent-%COMP%] vflow[_ngcontent-%COMP%]{width:100%;height:100%;display:block}.workflow-node[_ngcontent-%COMP%]{border:2px solid;border-radius:6px;padding:8px 12px;min-width:160px;box-shadow:0 2px 6px #0000004d;transition:all .2s}.workflow-node.expandable[_ngcontent-%COMP%]{cursor:pointer}.workflow-node.expandable[_ngcontent-%COMP%]:hover{box-shadow:0 4px 12px #8ab4f84d;transform:scale(1.02)}.node-header[_ngcontent-%COMP%]{display:flex;align-items:center;gap:6px;margin-bottom:4px}.node-type-icon[_ngcontent-%COMP%]{font-size:16px;width:16px;height:16px;color:#8ab4f8e6}.status-icon[_ngcontent-%COMP%]{font-size:16px;width:16px;height:16px;margin-left:auto}.node-label[_ngcontent-%COMP%]{font-weight:500;font-size:13px;color:var(--mdc-dialog-supporting-text-color);white-space:nowrap;overflow:hidden;text-overflow:ellipsis;flex:1}.node-type[_ngcontent-%COMP%]{font-size:10px;color:#8ab4f8cc;font-weight:500;text-transform:uppercase;letter-spacing:.5px;margin-top:2px}.node-status[_ngcontent-%COMP%]{font-size:11px;font-weight:600;margin-top:2px}.node-retry[_ngcontent-%COMP%]{font-size:10px;color:var(--mdc-dialog-supporting-text-color);opacity:.7;margin-top:2px}[_nghost-%COMP%] .active-edge{animation:_ngcontent-%COMP%_dash 1.5s linear infinite;stroke-dasharray:8 4}@keyframes _ngcontent-%COMP%_dash{to{stroke-dashoffset:-12}}"]})};var ay=class i{appWorkflowGraphTooltip=null;agentGraphData=null;nodePath=null;allNodes=null;overlay=w(ad);overlayPositionBuilder=w(lm);viewContainerRef=w(Jo);overlayRef=null;isPinned=!1;onClick(e){e.stopPropagation(),!(!this.appWorkflowGraphTooltip||Object.keys(this.appWorkflowGraphTooltip).length===0)&&(this.isPinned?this.hide():this.showPinned())}show(){this.isPinned||!this.appWorkflowGraphTooltip||Object.keys(this.appWorkflowGraphTooltip).length===0||this.overlayRef||this.showTooltip(!1)}hide(){this.isPinned||this.overlayRef&&(this.overlayRef.dispose(),this.overlayRef=null)}showPinned(){this.overlayRef&&(this.overlayRef.dispose(),this.overlayRef=null),this.isPinned=!0,this.showTooltip(!0)}showTooltip(e){if(this.overlayRef)return;let A=this.overlayPositionBuilder.flexibleConnectedTo(this.viewContainerRef.element).withPositions([{originX:"center",originY:"top",overlayX:"center",overlayY:"bottom",offsetY:-8},{originX:"center",originY:"bottom",overlayX:"center",overlayY:"top",offsetY:8}]);this.overlayRef=this.overlay.create({positionStrategy:A,scrollStrategy:this.overlay.scrollStrategies.close(),hasBackdrop:e,backdropClass:e?"cdk-overlay-transparent-backdrop":void 0}),e&&this.overlayRef&&this.overlayRef.backdropClick().subscribe(()=>{this.isPinned=!1,this.hide()});let t=new Fs(oy),n=this.overlayRef.attach(t);n.instance.nodes=this.appWorkflowGraphTooltip,n.instance.agentGraphData=this.agentGraphData,n.instance.nodePath=this.nodePath,n.instance.allNodes=this.allNodes,n.instance.isPinned=e,n.instance.onClose=()=>{this.isPinned=!1,this.hide()}}ngOnDestroy(){this.isPinned=!1,this.hide()}static \u0275fac=function(A){return new(A||i)};static \u0275dir=VA({type:i,selectors:[["","appWorkflowGraphTooltip",""]],hostBindings:function(A,t){A&1&&U("click",function(o){return t.onClick(o)})("mouseenter",function(){return t.show()})("mouseleave",function(){return t.hide()})},inputs:{appWorkflowGraphTooltip:"appWorkflowGraphTooltip",agentGraphData:"agentGraphData",nodePath:"nodePath",allNodes:"allNodes"}})};function nwA(i,e){if(i&1){let A=aA();I(0,"div",5)(1,"img",10),U("load",function(n){L(A);let o=p(4);return G(o.onImageLoad(n))})("click",function(n){L(A),p(3);let o=Ki(0);return p().openImageViewer(o),G(n.stopPropagation())}),h(),lA(2,"div",11),h()}if(i&2){p(3);let A=Ki(0),t=p();Q(),H("src",A,mo),Q(),H("ngStyle",t.getClickBoxStyle())}}function owA(i,e){i&1&&(I(0,"div",6)(1,"mat-icon",12),D(2,"image_not_supported"),h(),I(3,"span",13),D(4,"No screenshot"),h()())}function awA(i,e){if(i&1){let A=aA();T(0,nwA,3,2,"div",5)(1,owA,5,0,"div",6),I(2,"div",7)(3,"span",8),D(4),h(),I(5,"mat-icon"),D(6,"arrow_forward"),h()(),I(7,"div",5)(8,"img",9),U("click",function(n){L(A),p(2);let o=Ki(1);return p().openImageViewer(o),G(n.stopPropagation())}),h()()}if(i&2){p(2);let A=Ki(0),t=Ki(1),n=p();O(A?0:1),Q(4),nA(n.getActionName()),Q(4),H("src",t,mo)}}function rwA(i,e){if(i&1){let A=aA();I(0,"div",5)(1,"img",10),U("load",function(n){L(A);let o=p(3);return G(o.onImageLoad(n))})("click",function(n){L(A),p(2);let o=Ki(0);return p().openImageViewer(o),G(n.stopPropagation())}),h(),lA(2,"div",11),h()}if(i&2){p(2);let A=Ki(0),t=p();Q(),H("src",A,mo),Q(),H("ngStyle",t.getClickBoxStyle())}}function swA(i,e){if(i&1){let A=aA();I(0,"div",3),U("click",function(){L(A);let n=p(2);return G(n.clickEvent.emit(n.index))}),I(1,"div",4),T(2,awA,9,3)(3,rwA,3,2,"div",5),h()()}if(i&2){p();let A=Ki(1);_A("dual-images",!!A),Q(2),O(A?2:3)}}function lwA(i,e){if(i&1){let A=aA();I(0,"div",14),U("click",function(){L(A);let n=p(2);return G(n.clickEvent.emit(n.index))}),I(1,"div",6)(2,"mat-icon",12),D(3,"image_not_supported"),h(),I(4,"span",13),D(5,"No screenshot"),h()()()}}function gwA(i,e){if(i&1&&(ro(0)(1),T(2,swA,4,3,"div",1)(3,lwA,6,0,"div",2)),i&2){let A=p(),t=so(A.getPreviousComputerUseScreenshot());Q();let n=so(A.getNextComputerUseScreenshot());Q(),O(t||n?2:3)}}function cwA(i,e){if(i&1){let A=aA();I(0,"div",15),U("click",function(){L(A);let n=p();return G(n.clickEvent.emit(n.index))}),I(1,"div",16)(2,"span",17),D(3),h()(),lA(4,"img",18),I(5,"div",19)(6,"mat-icon",20),D(7,"computer"),h(),I(8,"span",21),D(9),h()()()}if(i&2){let A=p();Q(3),nA(A.functionResponse.name),Q(),H("src",A.getComputerUseScreenshot(),mo),Q(5),nA(A.getComputerUseUrl())}}var ry=class i{functionCall;functionResponse;allMessages=[];index=0;clickEvent=new FA;openImage=new FA;imageDimensions=new Map;VIRTUAL_WIDTH=1e3;VIRTUAL_HEIGHT=1e3;isComputerUseResponse(){return!!this.functionResponse&&k0(this.functionResponse)}isComputerUseClick(){return!!this.functionCall&&vE(this.functionCall)}getComputerUseScreenshot(){return this.getScreenshotFromPayload(this.functionResponse?.response)}getComputerUseUrl(){return this.isComputerUseResponse()&&(this.functionResponse?.response).url||""}getPreviousComputerUseScreenshot(){for(let e=this.index-1;e>=0;e--){let A=this.allMessages[e];if(this.isMsgComputerUseResponse(A)&&A.functionResponses&&A.functionResponses.length>0)for(let t=A.functionResponses.length-1;t>=0;t--){let n=A.functionResponses[t];if(k0(n)){let a=n.response;return this.getScreenshotFromPayload(a)}let o=n.parts;if(Array.isArray(o))for(let a=o.length-1;a>=0;a--){let r=o[a];if(r.inlineData?.mimeType?.startsWith("image/")&&r.inlineData.data){let s=r.inlineData.mimeType,l=r.inlineData.data.replace(/-/g,"+").replace(/_/g,"/");return`data:${s};base64,${l}`}}}}return""}getNextComputerUseScreenshot(){for(let e=this.index+1;e<this.allMessages.length;e++){let A=this.allMessages[e];if(this.isMsgComputerUseResponse(A)&&A.functionResponses&&A.functionResponses.length>0)for(let t=0;t<A.functionResponses.length;t++){let n=A.functionResponses[t];if(k0(n)){let a=n.response;return this.getScreenshotFromPayload(a)}let o=n.parts;if(Array.isArray(o))for(let a=0;a<o.length;a++){let r=o[a];if(r.inlineData?.mimeType?.startsWith("image/")&&r.inlineData.data){let s=r.inlineData.mimeType,l=r.inlineData.data.replace(/-/g,"+").replace(/_/g,"/");return`data:${s};base64,${l}`}}}}return""}getActionName(){if(!this.functionCall)return"";let e=this.functionCall.name;return e==="computer"&&this.functionCall.args?.action||e}getClickCoordinates(e=this.functionCall){if(!e||!vE(e))return null;let A=e.args;return A?A.coordinate?{x:Number(A.coordinate[0]),y:Number(A.coordinate[1])}:A.x!=null&&A.y!=null?{x:Number(A.x),y:Number(A.y)}:null:null}getActualPixelCoordinates(){let e=this.getClickCoordinates();if(!e)return null;let A=this.imageDimensions.get(this.index);return A?{x:Math.round(e.x/this.VIRTUAL_WIDTH*A.width),y:Math.round(e.y/this.VIRTUAL_HEIGHT*A.height),isVirtual:!1}:$A(P({},e),{isVirtual:!0})}getClickBoxStyle(){let e=this.getClickCoordinates();if(!e)return{display:"none"};let A=e.x/this.VIRTUAL_WIDTH*100,t=e.y/this.VIRTUAL_HEIGHT*100;return{left:`${A}%`,top:`${t}%`}}onImageLoad(e){let A=e.target;A.naturalWidth&&A.naturalHeight&&this.imageDimensions.set(this.index,{width:A.naturalWidth,height:A.naturalHeight})}isMsgComputerUseResponse(e){return e.functionResponses&&e.functionResponses.length>0?e.functionResponses.some(A=>{if(k0(A))return!0;let t=A.parts;return Array.isArray(t)?t.some(n=>n.inlineData?.mimeType?.startsWith("image/")):!1}):!1}getScreenshotFromPayload(e){let A=e?.image;if(!A?.data)return"";let t=A.data;return t.startsWith("data:")?t:`data:${A.mimetype||"image/png"};base64,${t}`}getAllComputerUseScreenshots(){let e=[];for(let A of this.allMessages)if(this.isMsgComputerUseResponse(A)&&A.functionResponses)for(let t of A.functionResponses){if(k0(t)){let o=t.response;e.push(this.getScreenshotFromPayload(o))}let n=t.parts;if(Array.isArray(n)){for(let o of n)if(o.inlineData?.mimeType?.startsWith("image/")&&o.inlineData.data){let a=o.inlineData.mimeType,r=o.inlineData.data.replace(/-/g,"+").replace(/_/g,"/");e.push(`data:${a};base64,${r}`)}}}return e}getAllComputerUseUrls(){let e=[],A="";for(let t of this.allMessages)if(this.isMsgComputerUseResponse(t)&&t.functionResponses)for(let n of t.functionResponses){let o=n.response?.url;o&&(A=o),k0(n)&&e.push(A);let a=n.parts;if(Array.isArray(a))for(let r of a)r.inlineData?.mimeType?.startsWith("image/")&&r.inlineData.data&&e.push(A)}return e}getAllComputerUseCoordinates(){let e=[],A=null;for(let t of this.allMessages){let n=t.functionCalls;if(Array.isArray(n))for(let o of n)vE(o)?A=o:o.name==="computer"&&(A=null);if(this.isMsgComputerUseResponse(t)&&t.functionResponses)for(let o of t.functionResponses){let a=!1;k0(o)&&(a=!0);let r=o.parts;if(Array.isArray(r))for(let s of r)s.inlineData?.mimeType?.startsWith("image/")&&s.inlineData.data&&(a=!0);a&&(A&&e.length>0&&(e[e.length-1]=this.getClickCoordinates(A)),e.push(null))}}return e}openImageViewer(e){let A=this.getAllComputerUseScreenshots(),t=this.getAllComputerUseUrls(),n=this.getAllComputerUseCoordinates(),o=A.indexOf(e);this.openImage.emit({images:A,currentIndex:o,urls:t,coordinates:n})}static \u0275fac=function(A){return new(A||i)};static \u0275cmp=vA({type:i,selectors:[["app-computer-action"]],inputs:{functionCall:"functionCall",functionResponse:"functionResponse",allMessages:"allMessages",index:"index"},outputs:{clickEvent:"clickEvent",openImage:"openImage"},decls:2,vars:1,consts:[[1,"computer-use-container"],[1,"computer-use-container","click-visualization-container",3,"dual-images"],[1,"computer-use-container","click-visualization-container","fallback"],[1,"computer-use-container","click-visualization-container",3,"click"],[1,"images-wrapper-flex"],[1,"image-wrapper"],[1,"image-wrapper","fallback-image"],[1,"arrow-container"],[1,"action-name-above"],["alt","Next Screenshot",1,"computer-use-screenshot",3,"click","src"],["alt","Computer Use Screenshot",1,"computer-use-screenshot",3,"load","click","src"],[1,"click-overlay-box",3,"ngStyle"],[1,"missing-icon"],[1,"fallback-text"],[1,"computer-use-container","click-visualization-container","fallback",3,"click"],[1,"computer-use-container",3,"click"],[1,"computer-use-header"],[1,"computer-use-tool-name"],["alt","Computer Use Screenshot",1,"computer-use-screenshot",3,"src"],[1,"computer-use-footprint"],[1,"computer-icon"],[1,"url-text"]],template:function(A,t){A&1&&T(0,gwA,4,3)(1,cwA,10,3,"div",0),A&2&&O(t.isComputerUseClick()?0:t.isComputerUseResponse()?1:-1)},dependencies:[li,vI,Un,zt,Ha],styles:['[_nghost-%COMP%]{display:block}.computer-use-container[_ngcontent-%COMP%]{display:flex;flex-direction:column;border-radius:12px;border:1px solid var(--chat-panel-input-field-mat-mdc-text-field-wrapper-border-color);overflow:hidden;cursor:pointer;margin:5px 5px 10px;transition:opacity .2s}.computer-use-container[_ngcontent-%COMP%]:hover{opacity:.9}.computer-use-tool-name[_ngcontent-%COMP%]{font-size:12px;font-family:monospace;font-weight:600;color:var(--chat-panel-input-field-textarea-color);opacity:.9;padding:12px}.computer-use-tool-name[_ngcontent-%COMP%] .actual-pixels[_ngcontent-%COMP%]{opacity:.6;margin-left:8px;font-weight:400}.computer-use-screenshot[_ngcontent-%COMP%]{width:100%;height:auto;display:block;border-bottom:1px solid var(--chat-panel-input-field-mat-mdc-text-field-wrapper-border-color)}.computer-use-footprint[_ngcontent-%COMP%]{display:flex;align-items:center;padding:8px 12px;gap:8px}.computer-icon[_ngcontent-%COMP%]{font-size:18px;width:18px;height:18px;flex-shrink:0}.url-text[_ngcontent-%COMP%]{font-size:11px;font-family:monospace;white-space:normal;word-break:break-all;color:var(--chat-panel-input-field-textarea-color);opacity:.8;min-width:0}.image-wrapper[_ngcontent-%COMP%]{position:relative;width:100%}.images-wrapper-flex[_ngcontent-%COMP%]{display:flex;align-items:center;justify-content:center;width:580px;gap:12px}.images-wrapper-flex[_ngcontent-%COMP%] .image-wrapper[_ngcontent-%COMP%]{flex:1;min-width:0}.images-wrapper-flex[_ngcontent-%COMP%] .image-wrapper[_ngcontent-%COMP%] .computer-use-screenshot[_ngcontent-%COMP%]{box-shadow:0 4px 6px -1px #0000001a,0 2px 4px -1px #0000000f;border-radius:8px}.arrow-container[_ngcontent-%COMP%]{display:flex;flex-direction:column;align-items:center;justify-content:center;color:var(--chat-panel-input-field-textarea-color);opacity:.8;gap:4px}.arrow-container[_ngcontent-%COMP%] .action-name-above[_ngcontent-%COMP%]{font-size:11px;font-family:monospace;font-weight:600;white-space:nowrap;overflow:hidden;text-overflow:ellipsis;max-width:80px}.arrow-container[_ngcontent-%COMP%] mat-icon[_ngcontent-%COMP%]{font-size:32px;width:32px;height:32px}.fallback-image[_ngcontent-%COMP%]{background-color:var(--mat-sys-surface-container-high, #e0e0e0);width:240px;height:120px;margin:0 auto;display:flex;flex-direction:column;align-items:center;justify-content:center;gap:12px;color:var(--chat-panel-input-field-textarea-color);opacity:.7}.fallback-image[_ngcontent-%COMP%] .missing-icon[_ngcontent-%COMP%]{font-size:48px;width:48px;height:48px}.fallback-image[_ngcontent-%COMP%] .fallback-text[_ngcontent-%COMP%]{font-size:14px;font-weight:500}.click-overlay-box[_ngcontent-%COMP%]{position:absolute;width:24px;height:24px;border:1px solid rgba(255,255,255,.8);border-radius:50%;transform:translate(-50%,-50%);box-shadow:0 0 4px #00000080;pointer-events:none;display:flex;align-items:center;justify-content:center}.click-overlay-box[_ngcontent-%COMP%]:before{content:"";width:2px;height:2px;border-radius:50%;box-shadow:0 0 2px #fff}.click-overlay-box[_ngcontent-%COMP%]:after{content:"";position:absolute;width:100%;height:100%;border-radius:50%}']})};function CwA(i,e){if(i&1&&(I(0,"mat-icon"),D(1),h()),i&2){let A=p();Q(),nA(A.icon)}}var sy=class i{icon="";text="";tooltipContent=null;tooltipTitle="";disabled=!1;buttonClick=new FA;handleClick(e){this.buttonClick.emit(e)}static \u0275fac=function(A){return new(A||i)};static \u0275cmp=vA({type:i,selectors:[["app-hover-info-button"]],inputs:{icon:"icon",text:"text",tooltipContent:"tooltipContent",tooltipTitle:"tooltipTitle",disabled:"disabled"},outputs:{buttonClick:"buttonClick"},decls:3,vars:7,consts:[["mat-stroked-button","",1,"hover-info-button",3,"click","appJsonTooltip","appJsonTooltipTitle","disabled"]],template:function(A,t){A&1&&(I(0,"button",0),U("click",function(o){return t.handleClick(o)}),T(1,CwA,2,1,"mat-icon"),D(2),h()),A&2&&(_A("icon-only",!t.text),H("appJsonTooltip",t.tooltipContent)("appJsonTooltipTitle",t.tooltipTitle)("disabled",t.disabled),Q(),O(t.icon?1:-1),Q(),Ee(" ",t.text,` |
| 4117 | `))},dependencies:[li,qi,ki,Un,zt,E1],styles:[`.hover-info-button[_ngcontent-%COMP%]{color:var(--mat-sys-on-surface)!important;background-color:var(--mat-sys-surface-container-high)!important;border-color:transparent!important;margin:5px 5px 5px 0;font-size:11px!important;padding:6px 12px!important;min-height:24px!important;height:24px!important;border-radius:8px!important;font-family:Roboto Mono,monospace!important;max-width:300px;text-align:left;display:inline-flex;align-items:center}.hover-info-button[_ngcontent-%COMP%] mat-icon[_ngcontent-%COMP%]{font-size:18px!important;width:18px!important;height:18px!important;margin-right:6px!important;color:var(--mat-sys-on-surface)!important}.hover-info-button.icon-only[_ngcontent-%COMP%]{padding:0!important;min-width:24px!important;width:24px!important;justify-content:center}.hover-info-button.icon-only[_ngcontent-%COMP%] mat-icon[_ngcontent-%COMP%]{margin-right:-8px!important}.hover-info-button.icon-only[_ngcontent-%COMP%] .mdc-button__label[_ngcontent-%COMP%]{display:none!important}[_nghost-%COMP%] .hover-info-button{background-color:var(--mat-sys-surface-container-high)!important;color:var(--mat-sys-on-surface)!important}[_nghost-%COMP%] .hover-info-button .mdc-button__label{overflow:hidden!important;text-overflow:ellipsis!important;white-space:nowrap!important} |
| 4118 |
no outgoing calls