@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 +8 -0
- package/built/html/appmap.js +3 -3
- package/built/html/appmap.js.map +2 -2
- package/built/html/sequenceDiagram.js +3 -3
- package/built/html/sequenceDiagram.js.map +2 -2
- package/built/report/urlHelpers.js +5 -0
- package/built/report/urlHelpers.js.map +1 -1
- package/built/rpc/explain/explain.js +2 -2
- package/built/rpc/explain/explain.js.map +1 -1
- package/package.json +1 -1
- package/resources/change-report/failed-tests/details.hbs +6 -2
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
|
|
package/built/html/appmap.js
CHANGED
|
@@ -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:
|
|
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-
|
|
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)+`
|