@appland/appmap 3.137.1 → 3.137.2

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/CHANGELOG.md CHANGED
@@ -1,3 +1,11 @@
1
+ # [@appland/appmap-v3.137.2](https://github.com/getappmap/appmap-js/compare/@appland/appmap-v3.137.1...@appland/appmap-v3.137.2) (2024-04-26)
2
+
3
+
4
+ ### Bug Fixes
5
+
6
+ * Tolerate absence of source_location in compare-report ([a99f7aa](https://github.com/getappmap/appmap-js/commit/a99f7aaf96b97abd4ac2a4c8e72a456e24af2883))
7
+ * Tone down architecture pressure ([edff9ec](https://github.com/getappmap/appmap-js/commit/edff9ec5198c98e0ce14aa5c90515533187b05ed))
8
+
1
9
  # [@appland/appmap-v3.137.1](https://github.com/getappmap/appmap-js/compare/@appland/appmap-v3.137.0...@appland/appmap-v3.137.1) (2024-04-24)
2
10
 
3
11
 
@@ -848,16 +848,16 @@ See exactly how functions, web services, data stores, security, I/O and dependen
848
848
  ${k$e(e,t,r)}
849
849
  </div>`;var B$e=new dc(xR({langPrefix:"hljs language-",highlight(e,t){let r=ts.getLanguage(t)?t:"plaintext";return ts.highlight(e,{language:r}).value}}),{renderer:Pb}),F$e=z({render:function(){var e=this,t=e.$createElement,r=e._self._c||t;return r("div",{staticClass:"context",attrs:{"data-cy":"context"}},[e.contextResponse?[r("div",[r("h2",[e._v("Context")]),e._v(" "),r("div",{staticClass:"context__body"},e._l(Object.keys(e.contextTypes),function(n){return r("div",{key:n},[e.hasContext(n)?r("div",[r("h3",[e._v(`
850
850
  `+e._s(e.contextTypes[n])+`
851
- `),r("span",{staticClass:"context__count"},[e._v(e._s(e.contextItemCount(n)))])]),e._v(" "),r("div",{staticClass:"context__body__table"},e._l(e.contextItems(n),function(i,a){return r("v-context-item",{key:e.getContextItemKey(i),attrs:{contextItem:i,index:a,"data-cy":"context-item"}})}),1)]):e._e()])}),0)])]:[e._m(0)]],2)},staticRenderFns:[function(){var e=this,t=e.$createElement,r=e._self._c||t;return r("div",{staticClass:"context__notice-container"},[r("div",{staticClass:"context__notice",attrs:{"data-cy":"context-notice"}},[r("h2",[e._v("Navie's context")]),e._v(" "),r("p",[e._v(`
851
+ `),r("span",{staticClass:"context__count"},[e._v(e._s(e.contextItemCount(n)))])]),e._v(" "),r("div",{staticClass:"context__body__table"},e._l(e.contextItems(n),function(i,a){return r("v-context-item",{key:a,attrs:{contextItem:i,"data-cy":"context-item"}})}),1)]):e._e()])}),0)])]:[e._m(0)]],2)},staticRenderFns:[function(){var e=this,t=e.$createElement,r=e._self._c||t;return r("div",{staticClass:"context__notice-container"},[r("div",{staticClass:"context__notice",attrs:{"data-cy":"context-notice"}},[r("h2",[e._v("Navie's context")]),e._v(" "),r("p",[e._v(`
852
852
  When you ask Navie a question, this area will reflect the information that Navie is
853
853
  aware of when answering. You can use this information to better understand how Navie is
854
854
  responding.
855
- `)])])])}]},function(e){e&&e("data-v-496a8726_0",{source:".context[data-v-496a8726]{font-size:.9rem;color:#808b98;width:100%;min-height:100%}.context__count[data-v-496a8726]{font-size:.8rem;font-weight:400;color:#b8bec6;margin-left:.5rem;background-color:rgba(168,168,255,.15);border-radius:4rem;width:1.25rem;height:1.25rem;display:inline-flex;justify-content:center;align-items:center}.context h2[data-v-496a8726]{margin-top:0;margin-bottom:2rem;color:#e3e5e8}.context h3[data-v-496a8726]{color:#e1e2e2}.context__body__table[data-v-496a8726]{display:flex;flex-direction:column;padding:.25rem .5rem;margin-bottom:2.5rem}.context__body__table>*[data-v-496a8726]{border-bottom:1px solid #242c41}.context__body__table[data-v-496a8726]>:last-child{border-bottom:none}.context__notice-container[data-v-496a8726]{display:flex;flex-direction:column;align-items:center;justify-content:center;height:100%}.context__notice[data-v-496a8726]{margin:0 auto;max-width:40%;min-width:0;background-color:rgba(0,0,0,.25);border:1px solid rgba(255,255,255,.1);border-radius:.5rem;padding:1rem;color:rgba(255,255,255,.75);line-height:1.5}.context__notice h2[data-v-496a8726]{margin-top:0;margin-bottom:.5rem;color:rgba(255,255,255,.75)}",map:void 0,media:void 0})},{name:"v-context",components:{VContextItem:z({render:function(){var e=this,t=e.$createElement,r=e._self._c||t;return r("div",{staticClass:"context__body__table-row"},[r("div",{staticClass:"context__body__table-row__header",on:{click:e.openLocation}},[e.isCodeSnippet?r("v-code-icon",{staticClass:"row-icon"}):r("v-white-appmap-logo",{staticClass:"row-icon"}),e._v(" "),r("div",[e._v(e._s(e.header))])],1),e._v(" "),r("div",{staticClass:"context__body__table-row__content"},[r("span",{domProps:{innerHTML:e._s(e.highlightedContent)}})])])},staticRenderFns:[]},function(e){e&&e("data-v-4e2503e8_0",{source:".context__body__table-row{border-bottom:1px solid #343742}.context__body__table-row__header{padding:.65rem;cursor:pointer;color:#b8bec6;display:flex;height:100%}.context__body__table-row__header .row-icon{margin-right:.75rem;width:18px}.context__body__table-row__header:hover{background-color:rgba(200,200,255,.25)!important}.context__body__table-row__header.dark{background-color:rgba(0,0,0,.85)}.context__body__table-row__content{margin:0 0 2rem 1rem}.context__body__table-row__content span{line-height:1.3rem}.context__body__table-row__content span hr{border:none;border-top:1px solid rgba(255,255,255,.1);margin:1rem 0}.context__body__table-row__content span a{color:#0097fa;text-decoration:none}.context__body__table-row__content span a:hover{color:#2eacff;text-decoration:underline}.context__body__table-row__content span .md-code-snippet{margin:1rem 0;border-radius:.5rem;background-color:rgba(0,0,0,.1);border:1px solid rgba(255,255,255,.1);overflow:hidden}.context__body__table-row__content span .md-code-snippet pre{margin:0;border:0;border-radius:0;overflow:auto}.context__body__table-row__content span .md-code-snippet__header{display:flex;justify-content:space-between;align-items:center;background-color:rgba(0,0,0,.4);border-bottom:1px solid rgba(255,255,255,.1)}.context__body__table-row__content span .md-code-snippet__language{display:inline-block;padding:.25rem 1rem;border-right:1px solid rgba(255,255,255,.1);color:#e2e4e5}.context__body__table-row__content span .md-code-snippet__copy{display:inline-block;padding:.25rem 1rem;border-left:1px solid rgba(255,255,255,.1);color:#e2e4e5;cursor:pointer;transition:background-color .5s ease-in-out}.context__body__table-row__content span .md-code-snippet__copy svg{height:16px;width:16px}.context__body__table-row__content span .md-code-snippet__copy svg path{fill:#e2e4e5}.context__body__table-row__content span .md-code-snippet__copy:hover{background-color:rgba(255,255,255,.2)}.context__body__table-row__content span .md-code-snippet__copy:active{background-color:#4362b1;transition:background-color 0s}.context__body__table-row__content span code{border-radius:6px;background-color:rgba(0,0,0,.4);border:1px solid rgba(255,255,255,.1);padding:.25em .25rem 0 .25rem;color:#e2e4e5}.context__body__table-row__content span pre{padding:1rem;border-radius:.5rem;background-color:rgba(0,0,0,.4);border:1px solid rgba(255,255,255,.1)}.context__body__table-row__content span pre code{border:0;background-color:transparent;padding:0}",map:void 0,media:void 0})},{name:"v-context-item",components:{VCodeIcon:zse,VWhiteAppmapLogo:Db},props:{contextItem:{type:Object,required:!0},index:{type:Number,required:!0}},computed:{highlightedContent(){return this.getContext()},language(){switch(this.contextItem.type){case"code-snippet":return this.contextItem.location.replace(/:\d+(-\d+)?$/,"").split(".").pop();case"sequence-diagram":return"plantuml";case"data-request":if(this.contextItem.content.startsWith("query:"))return"sql";default:return"plaintext"}},header(){if(this.contextItem.location){if(this.contextItem.type==="code-snippet")return this.contextItem.location;{let[e]=this.contextItem.location.split(":");return e.split(/[\\/]/).pop().split(".").shift().replace(/_/g," ")}}return this.stripPrefix(this.contextItem.content).slice(0,25)+"..."},isCodeSnippet(){return this.contextItem.type==="code-snippet"}},methods:{toggleContent(){this.showContent=!this.showContent},getContext(){let e=`\`\`\`${this.language}
855
+ `)])])])}]},function(e){e&&e("data-v-45ad2764_0",{source:".context[data-v-45ad2764]{font-size:.9rem;color:#808b98;width:100%;min-height:100%}.context__count[data-v-45ad2764]{font-size:.8rem;font-weight:400;color:#b8bec6;margin-left:.5rem;background-color:rgba(168,168,255,.15);border-radius:4rem;width:1.25rem;height:1.25rem;display:inline-flex;justify-content:center;align-items:center}.context h2[data-v-45ad2764]{margin-top:0;margin-bottom:2rem;color:#e3e5e8}.context h3[data-v-45ad2764]{color:#e1e2e2}.context__body__table[data-v-45ad2764]{display:flex;flex-direction:column;padding:.25rem .5rem;margin-bottom:2.5rem}.context__body__table>*[data-v-45ad2764]{border-bottom:1px solid #242c41}.context__body__table[data-v-45ad2764]>:last-child{border-bottom:none}.context__notice-container[data-v-45ad2764]{display:flex;flex-direction:column;align-items:center;justify-content:center;height:100%}.context__notice[data-v-45ad2764]{margin:0 auto;max-width:40%;min-width:0;background-color:rgba(0,0,0,.25);border:1px solid rgba(255,255,255,.1);border-radius:.5rem;padding:1rem;color:rgba(255,255,255,.75);line-height:1.5}.context__notice h2[data-v-45ad2764]{margin-top:0;margin-bottom:.5rem;color:rgba(255,255,255,.75)}",map:void 0,media:void 0})},{name:"v-context",components:{VContextItem:z({render:function(){var e=this,t=e.$createElement,r=e._self._c||t;return r("div",{staticClass:"context__body__table-row"},[r("div",{staticClass:"context__body__table-row__header",on:{click:e.openLocation}},[e.isCodeSnippet?r("v-code-icon",{staticClass:"row-icon"}):r("v-white-appmap-logo",{staticClass:"row-icon"}),e._v(" "),r("div",[e._v(e._s(e.header))])],1),e._v(" "),e.isSequenceDiagram?e._e():r("div",{staticClass:"context__body__table-row__content",attrs:{"data-cy":"context-item-content"}},[r("span",{domProps:{innerHTML:e._s(e.highlightedContent)}})])])},staticRenderFns:[]},function(e){e&&e("data-v-3901f44a_0",{source:".context__body__table-row{border-bottom:1px solid #343742}.context__body__table-row__header{padding:.65rem;cursor:pointer;color:#b8bec6;display:flex;height:100%}.context__body__table-row__header .row-icon{margin-right:.75rem;width:18px}.context__body__table-row__header:hover{background-color:rgba(200,200,255,.25)!important}.context__body__table-row__header.dark{background-color:rgba(0,0,0,.85)}.context__body__table-row__content{margin:0 0 2rem 1rem}.context__body__table-row__content span{line-height:1.3rem}.context__body__table-row__content span hr{border:none;border-top:1px solid rgba(255,255,255,.1);margin:1rem 0}.context__body__table-row__content span a{color:#0097fa;text-decoration:none}.context__body__table-row__content span a:hover{color:#2eacff;text-decoration:underline}.context__body__table-row__content span .md-code-snippet{margin:1rem 0;border-radius:.5rem;background-color:rgba(0,0,0,.1);border:1px solid rgba(255,255,255,.1);overflow:hidden}.context__body__table-row__content span .md-code-snippet pre{margin:0;border:0;border-radius:0;overflow:auto}.context__body__table-row__content span .md-code-snippet__header{display:flex;justify-content:space-between;align-items:center;background-color:rgba(0,0,0,.4);border-bottom:1px solid rgba(255,255,255,.1)}.context__body__table-row__content span .md-code-snippet__language{display:inline-block;padding:.25rem 1rem;border-right:1px solid rgba(255,255,255,.1);color:#e2e4e5}.context__body__table-row__content span .md-code-snippet__copy{display:inline-block;padding:.25rem 1rem;border-left:1px solid rgba(255,255,255,.1);color:#e2e4e5;cursor:pointer;transition:background-color .5s ease-in-out}.context__body__table-row__content span .md-code-snippet__copy svg{height:16px;width:16px}.context__body__table-row__content span .md-code-snippet__copy svg path{fill:#e2e4e5}.context__body__table-row__content span .md-code-snippet__copy:hover{background-color:rgba(255,255,255,.2)}.context__body__table-row__content span .md-code-snippet__copy:active{background-color:#4362b1;transition:background-color 0s}.context__body__table-row__content span code{border-radius:6px;background-color:rgba(0,0,0,.4);border:1px solid rgba(255,255,255,.1);padding:.25em .25rem 0 .25rem;color:#e2e4e5}.context__body__table-row__content span pre{padding:1rem;border-radius:.5rem;background-color:rgba(0,0,0,.4);border:1px solid rgba(255,255,255,.1)}.context__body__table-row__content span pre code{border:0;background-color:transparent;padding:0}",map:void 0,media:void 0})},{name:"v-context-item",components:{VCodeIcon:zse,VWhiteAppmapLogo:Db},props:{contextItem:{type:Object,required:!0}},computed:{highlightedContent(){return this.isSequenceDiagram?"":this.getContext()},language(){switch(this.contextItem.type){case"code-snippet":return this.contextItem.location.replace(/:\d+(-\d+)?$/,"").split(".").pop();case"sequence-diagram":return"plantuml";case"data-request":if(this.contextItem.content.startsWith("query:"))return"sql";default:return"plaintext"}},header(){if(this.contextItem.location){if(this.contextItem.type==="code-snippet")return this.contextItem.location;{let[e]=this.contextItem.location.split(":");return e.split(/[\\/]/).pop().split(".").shift().replace(/_/g," ")}}return this.stripPrefix(this.contextItem.content).slice(0,25)+"..."},isCodeSnippet(){return this.contextItem.type==="code-snippet"},isSequenceDiagram(){return this.contextItem.type==="sequence-diagram"}},methods:{toggleContent(){this.showContent=!this.showContent},getContext(){let e=`\`\`\`${this.language}
856
856
  ${this.stripPrefix(this.contextItem.content)}
857
857
  \`\`\`
858
858
 
859
859
  `;return this.renderMarkdown(e)},stripPrefix:e=>e.replace(/^[a-z]+:/,""),renderMarkdown(e){let t=B$e.parse(e);return qN.default.sanitize(t)},async writeToClipboard(e){e&&typeof e=="string"&&this.hasClipboardAPI&&await navigator.clipboard.writeText(e.replace(/\n/g,`
860
- `))},bindCopyButtons(){this.hasClipboardAPI&&this.$el.querySelectorAll(".md-code-snippet__copy").forEach(e=>{e.addEventListener("click",async()=>{let t=e.closest(".md-code-snippet").querySelector("code");t&&await this.writeToClipboard(t.innerText)})})},hasClipboardAPI:()=>navigator&&navigator.clipboard&&typeof navigator.clipboard.writeText=="function",openLocation(){this.contextItem.location&&this.$root.$emit("open-location",this.contextItem.location)}},mounted(){this.bindCopyButtons()}},void 0,!1,void 0,!1,J,void 0,void 0)},props:{appmapStats:{type:Array,required:!1},contextResponse:{type:Array,required:!1}},computed:{numAppMaps(){return(this.appmapStats||[]).reduce((e,{numAppMaps:t})=>e+t,0)},contextTypes:()=>({"code-snippet":"Code Snippets","sequence-diagram":"Sequence Diagrams","data-request":"Data Requests"}),contextTypeKeys(){return Object.keys(this.contextTypes)}},methods:{getContextItemKey:e=>`${e.type}-${e.location||e.content}`,hasContext(e){return this.contextResponse.some(t=>t.type===e)},contextItems(e){return this.contextResponse.filter(t=>t.type===e)},contextItemCount(e){return this.contextItems(e).length}}},"data-v-496a8726",!1,void 0,!1,J,void 0,void 0),U$e=qoe();function zm(e,t,r){if(t)e&&e({message:t.toString()});else if(r)if(r.code)e&&e(r);else{let n=r.message||r.toString();e&&e({message:`An unexpected error occurred: ${n}`})}}var FN=class extends ise.EventEmitter{constructor(r){super();se(this,"client");this.client=r}explain(r,n){let i,a,o;typeof r=="string"?i=r:(i=r.question,a=r.codeSelection,o=r.appmaps);let s={question:i,appmaps:o,threadId:n,codeSelection:a};return new Promise((l,c)=>{this.client.request("explain",s,(u,d,p)=>{if(u||d)return zm(c,u,d);this.pollForStatus(p.userMessageId),this.onAck(p.userMessageId,p.threadId),l(p.userMessageId)})})}pollForStatus(r,n=500){let i=0,a=setInterval(()=>{this.client.request("explain.status",{userMessageId:r},(o,s,l)=>{if(s&&s.code===404&&clearInterval(a),o||s)return zm(this.onError.bind(this),o,s);this.emit("status",l);let c=l.explanation||[],u=c.length-i;if(u>0){let d=c.slice(-u);for(let p of d)this.onToken(p,r)}i=c.length,["complete","error"].includes(l.step)&&(clearInterval(a),this.onComplete())})},n)}onError(r){this.emit("error",r)}onAck(r,n){this.emit("ack",r,n)}onToken(r,n){this.emit("token",r,n)}onComplete(){this.emit("complete")}},UN=class{constructor(t){se(this,"client");var r;this.client=typeof t=="number"?(r=t,new U$e(function(n,i){let a={method:"POST",body:n,headers:{"Content-Type":"application/json"}};window.fetch(`http://localhost:${r}`,a).then(function(o){return o.text()}).then(function(o){i(null,o)}).catch(function(o){i(o)})},{})):t}appmapStats(){return new Promise((t,r)=>{this.client.request(nse.AppMapRpc.Stats.V2.Method,{},function(n,i,a){if(n||i)return zm(r,n,i);t(a)})})}appmapData(t,r){return new Promise((n,i)=>{this.client.request("appmap.data",{appmap:t,filter:r},function(a,o,s){if(a||o)return zm(i,a,o);n(s)})})}appmapMetadata(t){return new Promise((r,n)=>{this.client.request("appmap.metadata",{appmap:t},function(i,a,o){if(i||a)return zm(n,i,a);r(o)})})}explain(){return new FN(this.client)}};function G$e(e,t){let r,n=!1;function i(){let a=typeof t=="function"?t():t;n=!1,r=setTimeout(()=>{r=void 0,n&&i()},a),e()}return()=>{r?n=!0:i()}}var q$e=z({render:function(){var e=this,t=e.$createElement,r=e._self._c||t;return r("div",{staticClass:"chat-search-container",on:{mousemove:e.makeResizing,mouseup:e.stopResizing,mouseleave:e.stopResizing}},[r("div",{ref:"chatContainer",staticClass:"chat-container",attrs:{"data-cy":"resize-left"}},[r("v-chat",{ref:"vchat",staticClass:"chat-search-chat",attrs:{"send-message":e.sendMessage,"status-label":e.searchStatusLabel,question:e.question,"input-placeholder":e.inputPlaceholder},on:{clear:e.clear,isChatting:e.setIsChatting}},[e.showStatus?r("v-context-status",{attrs:{"appmap-stats":e.appmapStats}}):e._e()],1)],1),e._v(" "),r("div",{staticClass:"chat-search-container--drag",attrs:{"data-cy":"resize-handle"},on:{mousedown:e.startResizing}}),e._v(" "),r("div",{staticClass:"search-container"},[r("v-context",{staticClass:"no-match-instructions",attrs:{"appmap-stats":e.appmapStats,"context-response":e.contextResponse}})],1)])},staticRenderFns:[]},function(e){e&&e("data-v-5a79393a_0",{source:".chat-search-container[data-v-5a79393a]{display:grid;grid-template-columns:auto auto 1fr;min-width:100%;max-width:100vw;height:100vh;background-color:#242c41}.chat-search-container .chat-container[data-v-5a79393a]{overflow:hidden;min-width:375px;width:60vw;display:flex;flex-direction:column;background-color:#292c39}.chat-search-container .chat-container .navie-intro[data-v-5a79393a]{padding:1rem;align-self:center;margin:0 auto;padding:2rem;padding-bottom:0}.chat-search-container .chat-container .navie-intro a[data-v-5a79393a]{color:#768ecb;text-decoration:none}.chat-search-container .chat-container .navie-intro a[data-v-5a79393a]:hover{color:#4362b1}.chat-search-container .chat-container .chat-search-chat[data-v-5a79393a]{min-width:auto;margin:0;max-width:none!important}.chat-search-container .chat-search-container--drag[data-v-5a79393a]{width:4px;background:rgba(0,0,0,.1);cursor:col-resize;z-index:100}.chat-search-container .chat-search-container--drag[data-v-5a79393a]:hover{background:rgba(255,255,255,.1)}.chat-search-container .context-container[data-v-5a79393a],.chat-search-container .search-container[data-v-5a79393a]{font-size:1rem;color:#e3e5e8;flex-direction:column;overflow-y:auto;background-color:#14151b}.chat-search-container .instructions[data-v-5a79393a]{min-width:20rem}.chat-search-container .search-container[data-v-5a79393a]{max-height:100vh;display:flex;flex-direction:column;padding:1rem}.chat-search-container .search-container h2[data-v-5a79393a]{font-size:1.2rem;margin-right:1rem}.chat-search-container .search-container .appmap[data-v-5a79393a]{padding-top:.4rem;height:100%!important}.chat-search-container .search-container .appmap-empty[data-v-5a79393a]{height:100%;background-color:#010306;margin-top:0}",map:void 0,media:void 0})},{name:"v-chat-search",components:{VChat:Vse,VContext:F$e,VContextStatus:P$e},mixins:[Kse],props:{question:{type:String},appmapRpcPort:{type:Number},appmapRpcFn:{type:Function},savedFilters:{type:Array,default:()=>[]},appmaps:{type:Array,default:()=>[]},targetAppmapData:{type:Object},targetAppmapFsPath:{type:String},appmapYmlPresent:Boolean,mostRecentAppMaps:Array},data(){return{searchResponse:void 0,searching:!1,searchStatus:void 0,searchId:0,selectedSearchResultId:void 0,isPanelResizing:!1,initialPanelWidth:0,initialClientX:0,searchStatusLabel:void 0,appmapStats:void 0,searchStatusLabels:{"build-vector-terms":"Optimizing search terms","search-appmaps":"Searching AppMaps","collect-context":"Collecting context","expand-context":"Expanding context","build-prompt":"Building prompt",explain:"Explaining with AI"},ask:void 0,isChatting:!1,loadAppMapStats:G$e(async()=>{let e=this.rpcClient();try{this.appmapStats=await e.appmapStats()}catch(t){console.error("Error loading appmap stats",t)}},()=>Math.max(1e3,5*(this.appmapStats?.numAppMaps??0))),targetAppmap:this.targetAppmapData}},watch:{mostRecentAppMaps(){this.loadAppMapStats()},searchResponse:async function(e){if(!e)return void(this.selectedSearchResultId=void 0);let t=e,r=this.rpcClient(),n=0;for(let i of t.results){let a=await r.appmapMetadata(i.appmap);i.id=["search-result",this.searchId,n].join("_"),i.metadata=a,n+=1}t.results.length>0&&(this.selectedSearchResultId=t.results[0].id)},selectedSearchResultId:async function(e){this.$nextTick((async()=>{if(!this.$refs.vappmap)return;if(!e)return void this.$refs.vappmap.resetDiagram();let t=this.rpcClient(),r=this.selectedSearchResult,n=await t.appmapData(r.appmap);await this.$refs.vappmap.loadData(n),this.$refs.vappmap.setState(JSON.stringify({selectedObjects:r.events.map(i=>i.fqid)}))}).bind(this))},statusStep:function(e){if(e){if(e)if(this.searchStatus?.step){let t=this.searchStatusLabels[this.searchStatus.step];t&&(this.searchStatusLabel=[t,"..."].join(""))}else this.searchStatusLabel=void 0}else this.searchStatusLabel=void 0}},computed:{showStatus(){return!this.targetAppmap&&this.appmapStats&&!this.isChatting},targetAppmapName(){return this.targetAppmap?.metadata?.name},inputPlaceholder(){return this.targetAppmap?"What do you want to know about this AppMap?":"How can I help?"},statusStep(){return this.searchStatus?this.searchStatus.step:void 0},contextResponse(){return this.searchStatus?.contextResponse||this.createContextResponse()},selectedSearchResult(){if(this.searchResponse&&this.selectedSearchResultId)return this.searchResponse.results.find(e=>e.id===this.selectedSearchResultId)},hasAppMaps(){return this.appmapStats?.some(({numAppMaps:e})=>e>0)??!1}},methods:{createContextResponse(){if(!this.searchStatus)return;let{codeObjects:e,sequenceDiagrams:t,codeSnippets:r}=this.searchStatus,n=[];return e?.forEach(i=>{n.push({type:"data-request",content:i})}),t?.forEach(i=>{n.push({type:"sequence-diagram",content:i})}),r&&Object.keys(r).forEach(i=>{n.push({location:i,type:"code-snippet",content:this.searchStatus.codeSnippets[i]})}),n.length!==0?n:void 0},askAboutWorkspace(){this.targetAppmap=void 0,this.$refs.vchat.resetAppMaps(),this.$refs.vchat.clear()},getAppMapState(){return this.$refs.vappmap?.getState()},setAppMapState(e){this.$refs.vappmap?.setState(e)},updateFilters(e){this.$store.commit(SET_SAVED_FILTERS,e)},async sendMessage(e,t=[],r=[]){let n;return this.ask=this.rpcClient().explain(),this.searching=!0,this.lastStatusLabel=void 0,new Promise((i,a)=>{let o=!this.$refs.vchat.getMessage({isUser:!1}),s=this.$refs.vchat.addSystemMessage(),l,c="Analyzing your project";o&&(l={title:c},s.tools.push(l));let u=()=>{l&&l.title===c&&(l.title="Project analysis complete",l.complete=!0)},d=()=>{this.searching=!1,u(),s.complete=!0,i()},p=v=>{d(),this.$refs.vchat.onError(v,s),a()};this.ask.on("ack",(v,E)=>{n=E,this.$refs.vchat.onAck(v,E)}),this.ask.on("token",(v,E)=>{s.messageId||(s.messageId=E),u(),this.$refs.vchat.addToken(v,n,E)}),this.ask.on("error",p),this.ask.on("status",v=>{if(this.searchStatus=v,!this.searchResponse&&v.searchResponse&&(this.searchResponse=v.searchResponse,l)){let E=this.searchResponse.results.length;l.title="Project analysis complete",this.targetAppmap||(l.status=`Found ${E} relevant AppMap${E===1?"":"s"}`),l.complete=!0}}),this.ask.on("complete",d);let m={question:e};r.length>0&&(m.appmaps=r),t.length>0&&(m.codeSelection=t.join(`
860
+ `))},bindCopyButtons(){this.hasClipboardAPI&&this.$el.querySelectorAll(".md-code-snippet__copy").forEach(e=>{e.addEventListener("click",async()=>{let t=e.closest(".md-code-snippet").querySelector("code");t&&await this.writeToClipboard(t.innerText)})})},hasClipboardAPI:()=>navigator&&navigator.clipboard&&typeof navigator.clipboard.writeText=="function",openLocation(){this.contextItem.location&&this.$root.$emit("open-location",this.contextItem.location)}},mounted(){this.bindCopyButtons()}},void 0,!1,void 0,!1,J,void 0,void 0)},props:{appmapStats:{type:Array,required:!1},contextResponse:{type:Array,required:!1}},computed:{numAppMaps(){return(this.appmapStats||[]).reduce((e,{numAppMaps:t})=>e+t,0)},contextTypes:()=>({"code-snippet":"Code Snippets","sequence-diagram":"Sequence Diagrams","data-request":"Data Requests"}),contextTypeKeys(){return Object.keys(this.contextTypes)}},methods:{hasContext(e){return this.contextResponse.some(t=>t.type===e)},contextItems(e){return this.contextResponse.filter(t=>t.type===e)},contextItemCount(e){return this.contextItems(e).length}}},"data-v-45ad2764",!1,void 0,!1,J,void 0,void 0),U$e=qoe();function zm(e,t,r){if(t)e&&e({message:t.toString()});else if(r)if(r.code)e&&e(r);else{let n=r.message||r.toString();e&&e({message:`An unexpected error occurred: ${n}`})}}var FN=class extends ise.EventEmitter{constructor(r){super();se(this,"client");this.client=r}explain(r,n){let i,a,o;typeof r=="string"?i=r:(i=r.question,a=r.codeSelection,o=r.appmaps);let s={question:i,appmaps:o,threadId:n,codeSelection:a};return new Promise((l,c)=>{this.client.request("explain",s,(u,d,p)=>{if(u||d)return zm(c,u,d);this.pollForStatus(p.userMessageId),this.onAck(p.userMessageId,p.threadId),l(p.userMessageId)})})}pollForStatus(r,n=500){let i=0,a=setInterval(()=>{this.client.request("explain.status",{userMessageId:r},(o,s,l)=>{if(s&&s.code===404&&clearInterval(a),o||s)return zm(this.onError.bind(this),o,s);this.emit("status",l);let c=l.explanation||[],u=c.length-i;if(u>0){let d=c.slice(-u);for(let p of d)this.onToken(p,r)}i=c.length,["complete","error"].includes(l.step)&&(clearInterval(a),this.onComplete())})},n)}onError(r){this.emit("error",r)}onAck(r,n){this.emit("ack",r,n)}onToken(r,n){this.emit("token",r,n)}onComplete(){this.emit("complete")}},UN=class{constructor(t){se(this,"client");var r;this.client=typeof t=="number"?(r=t,new U$e(function(n,i){let a={method:"POST",body:n,headers:{"Content-Type":"application/json"}};window.fetch(`http://localhost:${r}`,a).then(function(o){return o.text()}).then(function(o){i(null,o)}).catch(function(o){i(o)})},{})):t}appmapStats(){return new Promise((t,r)=>{this.client.request(nse.AppMapRpc.Stats.V2.Method,{},function(n,i,a){if(n||i)return zm(r,n,i);t(a)})})}appmapData(t,r){return new Promise((n,i)=>{this.client.request("appmap.data",{appmap:t,filter:r},function(a,o,s){if(a||o)return zm(i,a,o);n(s)})})}appmapMetadata(t){return new Promise((r,n)=>{this.client.request("appmap.metadata",{appmap:t},function(i,a,o){if(i||a)return zm(n,i,a);r(o)})})}explain(){return new FN(this.client)}};function G$e(e,t){let r,n=!1;function i(){let a=typeof t=="function"?t():t;n=!1,r=setTimeout(()=>{r=void 0,n&&i()},a),e()}return()=>{r?n=!0:i()}}var q$e=z({render:function(){var e=this,t=e.$createElement,r=e._self._c||t;return r("div",{staticClass:"chat-search-container",on:{mousemove:e.makeResizing,mouseup:e.stopResizing,mouseleave:e.stopResizing}},[r("div",{ref:"chatContainer",staticClass:"chat-container",attrs:{"data-cy":"resize-left"}},[r("v-chat",{ref:"vchat",staticClass:"chat-search-chat",attrs:{"send-message":e.sendMessage,"status-label":e.searchStatusLabel,question:e.question,"input-placeholder":e.inputPlaceholder},on:{clear:e.clear,isChatting:e.setIsChatting}},[e.showStatus?r("v-context-status",{attrs:{"appmap-stats":e.appmapStats}}):e._e()],1)],1),e._v(" "),r("div",{staticClass:"chat-search-container--drag",attrs:{"data-cy":"resize-handle"},on:{mousedown:e.startResizing}}),e._v(" "),r("div",{staticClass:"search-container"},[r("v-context",{staticClass:"no-match-instructions",attrs:{"appmap-stats":e.appmapStats,"context-response":e.contextResponse}})],1)])},staticRenderFns:[]},function(e){e&&e("data-v-5a79393a_0",{source:".chat-search-container[data-v-5a79393a]{display:grid;grid-template-columns:auto auto 1fr;min-width:100%;max-width:100vw;height:100vh;background-color:#242c41}.chat-search-container .chat-container[data-v-5a79393a]{overflow:hidden;min-width:375px;width:60vw;display:flex;flex-direction:column;background-color:#292c39}.chat-search-container .chat-container .navie-intro[data-v-5a79393a]{padding:1rem;align-self:center;margin:0 auto;padding:2rem;padding-bottom:0}.chat-search-container .chat-container .navie-intro a[data-v-5a79393a]{color:#768ecb;text-decoration:none}.chat-search-container .chat-container .navie-intro a[data-v-5a79393a]:hover{color:#4362b1}.chat-search-container .chat-container .chat-search-chat[data-v-5a79393a]{min-width:auto;margin:0;max-width:none!important}.chat-search-container .chat-search-container--drag[data-v-5a79393a]{width:4px;background:rgba(0,0,0,.1);cursor:col-resize;z-index:100}.chat-search-container .chat-search-container--drag[data-v-5a79393a]:hover{background:rgba(255,255,255,.1)}.chat-search-container .context-container[data-v-5a79393a],.chat-search-container .search-container[data-v-5a79393a]{font-size:1rem;color:#e3e5e8;flex-direction:column;overflow-y:auto;background-color:#14151b}.chat-search-container .instructions[data-v-5a79393a]{min-width:20rem}.chat-search-container .search-container[data-v-5a79393a]{max-height:100vh;display:flex;flex-direction:column;padding:1rem}.chat-search-container .search-container h2[data-v-5a79393a]{font-size:1.2rem;margin-right:1rem}.chat-search-container .search-container .appmap[data-v-5a79393a]{padding-top:.4rem;height:100%!important}.chat-search-container .search-container .appmap-empty[data-v-5a79393a]{height:100%;background-color:#010306;margin-top:0}",map:void 0,media:void 0})},{name:"v-chat-search",components:{VChat:Vse,VContext:F$e,VContextStatus:P$e},mixins:[Kse],props:{question:{type:String},appmapRpcPort:{type:Number},appmapRpcFn:{type:Function},savedFilters:{type:Array,default:()=>[]},appmaps:{type:Array,default:()=>[]},targetAppmapData:{type:Object},targetAppmapFsPath:{type:String},appmapYmlPresent:Boolean,mostRecentAppMaps:Array},data(){return{searchResponse:void 0,searching:!1,searchStatus:void 0,searchId:0,selectedSearchResultId:void 0,isPanelResizing:!1,initialPanelWidth:0,initialClientX:0,searchStatusLabel:void 0,appmapStats:void 0,searchStatusLabels:{"build-vector-terms":"Optimizing search terms","search-appmaps":"Searching AppMaps","collect-context":"Collecting context","expand-context":"Expanding context","build-prompt":"Building prompt",explain:"Explaining with AI"},ask:void 0,isChatting:!1,loadAppMapStats:G$e(async()=>{let e=this.rpcClient();try{this.appmapStats=await e.appmapStats()}catch(t){console.error("Error loading appmap stats",t)}},()=>Math.max(1e3,5*(this.appmapStats?.numAppMaps??0))),targetAppmap:this.targetAppmapData}},watch:{mostRecentAppMaps(){this.loadAppMapStats()},searchResponse:async function(e){if(!e)return void(this.selectedSearchResultId=void 0);let t=e,r=this.rpcClient(),n=0;for(let i of t.results){let a=await r.appmapMetadata(i.appmap);i.id=["search-result",this.searchId,n].join("_"),i.metadata=a,n+=1}t.results.length>0&&(this.selectedSearchResultId=t.results[0].id)},selectedSearchResultId:async function(e){this.$nextTick((async()=>{if(!this.$refs.vappmap)return;if(!e)return void this.$refs.vappmap.resetDiagram();let t=this.rpcClient(),r=this.selectedSearchResult,n=await t.appmapData(r.appmap);await this.$refs.vappmap.loadData(n),this.$refs.vappmap.setState(JSON.stringify({selectedObjects:r.events.map(i=>i.fqid)}))}).bind(this))},statusStep:function(e){if(e){if(e)if(this.searchStatus?.step){let t=this.searchStatusLabels[this.searchStatus.step];t&&(this.searchStatusLabel=[t,"..."].join(""))}else this.searchStatusLabel=void 0}else this.searchStatusLabel=void 0}},computed:{showStatus(){return!this.targetAppmap&&this.appmapStats&&!this.isChatting},targetAppmapName(){return this.targetAppmap?.metadata?.name},inputPlaceholder(){return this.targetAppmap?"What do you want to know about this AppMap?":"How can I help?"},statusStep(){return this.searchStatus?this.searchStatus.step:void 0},contextResponse(){return this.searchStatus?.contextResponse||this.createContextResponse()},selectedSearchResult(){if(this.searchResponse&&this.selectedSearchResultId)return this.searchResponse.results.find(e=>e.id===this.selectedSearchResultId)},hasAppMaps(){return this.appmapStats?.some(({numAppMaps:e})=>e>0)??!1}},methods:{createContextResponse(){if(!this.searchStatus)return;let{codeObjects:e,sequenceDiagrams:t,codeSnippets:r}=this.searchStatus,n=[];return e?.forEach(i=>{n.push({type:"data-request",content:i})}),t?.forEach(i=>{n.push({type:"sequence-diagram",content:i})}),r&&Object.keys(r).forEach(i=>{n.push({location:i,type:"code-snippet",content:this.searchStatus.codeSnippets[i]})}),n.length!==0?n:void 0},askAboutWorkspace(){this.targetAppmap=void 0,this.$refs.vchat.resetAppMaps(),this.$refs.vchat.clear()},getAppMapState(){return this.$refs.vappmap?.getState()},setAppMapState(e){this.$refs.vappmap?.setState(e)},updateFilters(e){this.$store.commit(SET_SAVED_FILTERS,e)},async sendMessage(e,t=[],r=[]){let n;return this.ask=this.rpcClient().explain(),this.searching=!0,this.lastStatusLabel=void 0,new Promise((i,a)=>{let o=!this.$refs.vchat.getMessage({isUser:!1}),s=this.$refs.vchat.addSystemMessage(),l,c="Analyzing your project";o&&(l={title:c},s.tools.push(l));let u=()=>{l&&l.title===c&&(l.title="Project analysis complete",l.complete=!0)},d=()=>{this.searching=!1,u(),s.complete=!0,i()},p=v=>{d(),this.$refs.vchat.onError(v,s),a()};this.ask.on("ack",(v,E)=>{n=E,this.$refs.vchat.onAck(v,E)}),this.ask.on("token",(v,E)=>{s.messageId||(s.messageId=E),u(),this.$refs.vchat.addToken(v,n,E)}),this.ask.on("error",p),this.ask.on("status",v=>{if(this.searchStatus=v,!this.searchResponse&&v.searchResponse&&(this.searchResponse=v.searchResponse,l)){let E=this.searchResponse.results.length;l.title="Project analysis complete",this.targetAppmap||(l.status=`Found ${E} relevant AppMap${E===1?"":"s"}`),l.complete=!0}}),this.ask.on("complete",d);let m={question:e};r.length>0&&(m.appmaps=r),t.length>0&&(m.codeSelection=t.join(`
861
861
 
862
862
  `)),this.ask.explain(m,this.$refs.vchat.threadId).catch(p)})},setAppMapStats(e){this.appmapStats=e},clear(){this.searching=!1,this.searchStatus=void 0,this.searchResponse=void 0,this.selectedSearchResultId=void 0,this.searchId=0,this.searchStatusLabel=void 0,this.ask?.removeAllListeners(),this.searching=!1,this.loadAppMapStats()},rpcClient(){return new UN(this.appmapRpcFn?{request:this.appmapRpcFn}:this.appmapRpcPort||30101)},startResizing(e){document.body.style.userSelect="none",this.isPanelResizing=!0,this.initialPanelWidth=this.$refs.chatContainer.offsetWidth,this.initialClientX=e.clientX},makeResizing(e){if(this.isPanelResizing){let r=.75*window.innerWidth,n=this.initialPanelWidth+(e.clientX-this.initialClientX);n=Math.max(280,n),n=Math.min(r,n),this.$refs.chatContainer.style.width=`${n}px`}},stopResizing(){document.body.style.userSelect="",this.isPanelResizing=!1},includeCodeSelection(e){this.$refs.vchat.includeCodeSelection(e)},includeAppMap(e){this.$refs.vchat.includeAppMap(e)},setIsChatting(e){this.isChatting=e}},async mounted(){this.$refs.vappmap&&this.targetAppmap&&this.targetAppmapFsPath&&(this.includeAppMap(this.targetAppmapFsPath),await this.$refs.vappmap.loadData(this.targetAppmap)),this.loadAppMapStats()}},"data-v-5a79393a",!1,void 0,!1,J,void 0,void 0),Y$e={__proto__:null,VButton:Fi,VDetailsPanel:_se,VTabs:Cse,VVsCodeExtension:ew,VDiff:o$e,VInstallGuide:A$e,VAnalysisFindings:S$e,VFindingDetails:b$e,VSidebarSignIn:y$e,VSequenceDiagram:_$e,VChat:D$e,VChatSearch:q$e},GN=function(e){GN.installed||(GN.installed=!0,Object.entries(Y$e).forEach(([t,r])=>{e.component(t,r)}))},Wse={install:GN},H$e={__proto__:null,default:z({render:function(){var e=this,t=e.$createElement,r=e._self._c||t;return r("div",[e.areChildrenVisible?r("v-flamegraph-branch",{attrs:{events:e.children,factor:e.childrenFactor,focus:e.focus,"base-budget":e.baseBudget,"zoom-budget":e.childrenZoomBudget},on:{select:e.propagateSelect,hover:e.propagateHover}}):e._e(),e._v(" "),r("v-flamegraph-item",{attrs:{event:e.event,classes:e.classes,"item-style":e.style,content:e.content},on:{select:e.propagateSelect,hover:e.propagateHover,mousedown:e.mousedown,mouseup:e.mouseup}})],1)},staticRenderFns:[]},void 0,{name:"v-flamegraph-node",emits:["select","hover"],components:{VFlamegraphBranch:Dse,VFlamegraphItem:z({render:function(e,t){return(0,t._c)("div",{class:t.props.classes,style:t.props.itemStyle,on:{mousedown:function(){return t.listeners.mousedown()},mouseup:function(){return t.listeners.mouseup()},mouseenter:function(){return t.listeners.hover({type:"enter",target:t.props.event})},mouseleave:function(){return t.listeners.hover({type:"leave",target:t.props.event})}}},[t._v(`
863
863
  `+t._s(t.props.content)+`