archsight 0.2.6 → 0.2.8

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.
Files changed (60) hide show
  1. checksums.yaml +4 -4
  2. data/chart/archsight/Chart.yaml +1 -1
  3. data/chart/archsight/templates/deployment.yaml +7 -0
  4. data/chart/archsight/values.yaml +13 -0
  5. data/lib/archsight/import/handlers/rest_api_index.rb +16 -5
  6. data/lib/archsight/version.rb +1 -1
  7. data/lib/archsight/web/public/vue/{ApiDocsPage-DHSCaHEn.js → ApiDocsPage-DgouiX10.js} +1 -1
  8. data/lib/archsight/web/public/vue/DocPage-4OHaac0-.js +1 -0
  9. data/lib/archsight/web/public/vue/EditorPage-TVDkBDgE.js +35 -0
  10. data/lib/archsight/web/public/vue/{ErrorPage-C4JutrYc.js → ErrorPage-B4eyf6e2.js} +1 -1
  11. data/lib/archsight/web/public/vue/{GraphView-Bqlbt6dK.js → GraphView-C-kr_6N2.js} +1 -1
  12. data/lib/archsight/web/public/vue/InstanceRouter-CcBQw1-H.js +2 -0
  13. data/lib/archsight/web/public/vue/{KindList-CPDaNron.js → KindList-X3h6vyQ6.js} +1 -1
  14. data/lib/archsight/web/public/vue/{ResourceList-B5w9yiyS.js → ResourceList-iVEBqeMm.js} +1 -1
  15. data/lib/archsight/web/public/vue/{SearchResults-FpkhdBFu.js → SearchResults-BqxFIMjh.js} +1 -1
  16. data/lib/archsight/web/public/vue/architecture-TIHT7OUA-DDp7mpgs.js +1 -0
  17. data/lib/archsight/web/public/vue/cynefin-VYW2F7L2-I5kWUuYI.js +1 -0
  18. data/lib/archsight/web/public/vue/eventmodeling-45OFAUF4-Cu4FiAuE.js +1 -0
  19. data/lib/archsight/web/public/vue/gitGraph-TEB2WS4Q-D6aFdcYh.js +1 -0
  20. data/lib/archsight/web/public/vue/graphviz-SXWTgZH5.js +3 -0
  21. data/lib/archsight/web/public/vue/index-jMbNuijl.js +3 -0
  22. data/lib/archsight/web/public/vue/info-DKCQHKI2-CbP0Vldj.js +1 -0
  23. data/lib/archsight/web/public/vue/katex-CXMH3UgJ.js +257 -0
  24. data/lib/archsight/web/public/vue/mermaid-MUrMUmp1.js +3279 -0
  25. data/lib/archsight/web/public/vue/packet-7NZHBO7P-CddRksf4.js +1 -0
  26. data/lib/archsight/web/public/vue/pie-RZYD4A2V-BQWf9okf.js +1 -0
  27. data/lib/archsight/web/public/vue/radar-I7S5WNFK-ClQV9YJE.js +1 -0
  28. data/lib/archsight/web/public/vue/railroad-3IZDKUUU-CTKh0Vox.js +1 -0
  29. data/lib/archsight/web/public/vue/railroad-abnf-AHOZXSZD-B14KoGsf.js +1 -0
  30. data/lib/archsight/web/public/vue/railroad-ebnf-EBAXGLYW-x56ODILn.js +1 -0
  31. data/lib/archsight/web/public/vue/railroad-peg-LSFZ7HO6-HZ2VrHj9.js +1 -0
  32. data/lib/archsight/web/public/vue/{rolldown-runtime-QTnfLwEv.js → rolldown-runtime-hePW80VL.js} +1 -1
  33. data/lib/archsight/web/public/vue/treeView-QDETBFTQ-C5pxMh00.js +1 -0
  34. data/lib/archsight/web/public/vue/treemap-6X3UGDF4-BBjiFYFJ.js +1 -0
  35. data/lib/archsight/web/public/vue/{useGraphviz-EKSrE4q_.js → useGraphviz-BhDHewrr.js} +2 -2
  36. data/lib/archsight/web/public/vue/useHighlight-CLpP3akD.js +10 -0
  37. data/lib/archsight/web/public/vue/{useMermaid-CIZxhy_r.js → useMermaid-BiVpKDxX.js} +2 -2
  38. data/lib/archsight/web/public/vue/usePanZoom-GQYikC2Z.js +11 -0
  39. data/lib/archsight/web/public/vue/wardley-OPB4EBWU-ChwCbRUZ.js +1 -0
  40. data/lib/archsight/web/public/vue.html +3 -3
  41. metadata +34 -29
  42. data/lib/archsight/web/public/vue/DocPage-DszOPlFy.js +0 -1
  43. data/lib/archsight/web/public/vue/EditorPage-DsiuZ7fg.js +0 -35
  44. data/lib/archsight/web/public/vue/InstanceRouter-D8SEY2eu.js +0 -2
  45. data/lib/archsight/web/public/vue/architecture-7EHR7CIX-DpNNjAIc.js +0 -1
  46. data/lib/archsight/web/public/vue/eventmodeling-FCH6USID-CiThxoWl.js +0 -1
  47. data/lib/archsight/web/public/vue/gitGraph-WXDBUCRP-BODMGpAm.js +0 -1
  48. data/lib/archsight/web/public/vue/graphviz-09t3o0af.js +0 -13
  49. data/lib/archsight/web/public/vue/index-T1YqCmM1.js +0 -2
  50. data/lib/archsight/web/public/vue/info-J43DQDTF-fLq04sri.js +0 -1
  51. data/lib/archsight/web/public/vue/katex-5qHlIbPR.js +0 -261
  52. data/lib/archsight/web/public/vue/mermaid-DYyHQk7x.js +0 -3093
  53. data/lib/archsight/web/public/vue/packet-YPE3B663-DoY1fbqu.js +0 -1
  54. data/lib/archsight/web/public/vue/pie-LRSECV5Y-C7ZQVwRe.js +0 -1
  55. data/lib/archsight/web/public/vue/radar-GUYGQ44K-CRtY5oqf.js +0 -1
  56. data/lib/archsight/web/public/vue/treeView-BLDUP644-Csx2WLLh.js +0 -1
  57. data/lib/archsight/web/public/vue/treemap-LRROVOQU-CfEnRbTx.js +0 -1
  58. data/lib/archsight/web/public/vue/useHighlight-BcVbGyrK.js +0 -10
  59. data/lib/archsight/web/public/vue/usePanZoom-C2slpyY9.js +0 -11
  60. data/lib/archsight/web/public/vue/wardley-L42UT6IY-97oUvxhz.js +0 -1
@@ -1,2 +1,2 @@
1
- import{D as e,E as t,F as n,L as r,N as i,P as a,S as o,T as s,U as c,V as l,b as u,f as d,g as f,h as p,t as m,w as h,x as g,y as _}from"./index-T1YqCmM1.js";var v={key:0},y={class:`error-header`},b={class:`error-message`},x={class:`error-location`},S={class:`error-line-badge`},C={key:0,class:`error-code-block`},w={class:`line-number`},T={key:1},E=m({__name:`ErrorPage`,setup(m){let E=p(),D=f(),O=g(()=>{try{return E.query.data?JSON.parse(E.query.data):null}catch{return null}});async function k(){let e=await d();e.error?D.replace({name:`error`,query:{data:JSON.stringify(e.error)}}):(D.push(`/`),window.location.reload())}return(d,f)=>{let p=n(`router-link`);return O.value?(i(),s(`div`,v,[o(`header`,null,[o(`article`,y,[f[1]||=o(`h3`,null,[o(`i`,{class:`iconoir-warning-triangle`}),t(` Error `)],-1),o(`p`,b,c(O.value.error),1),o(`p`,x,[f[0]||=o(`i`,{class:`iconoir-page`},null,-1),t(` `+c(O.value.path)+` `,1),o(`span`,S,`Line `+c(O.value.line_no),1)])]),o(`a`,{href:`#`,class:`reload-btn`,onClick:_(k,[`prevent`])},[...f[2]||=[o(`i`,{class:`iconoir-refresh`},null,-1),t(` Reload `,-1)]])]),O.value.context?(i(),s(`div`,C,[o(`pre`,null,[o(`code`,null,[(i(!0),s(u,null,a(O.value.context,e=>(i(),s(`span`,{key:e.line_no,class:l(e.selected?`error-line`:`code-line`)},[o(`span`,w,c(String(e.line_no).padStart(4,` `)),1),t(c(e.content)+`
1
+ import{D as e,E as t,F as n,L as r,N as i,P as a,S as o,T as s,U as c,V as l,b as u,f as d,g as f,h as p,t as m,w as h,x as g,y as _}from"./index-jMbNuijl.js";var v={key:0},y={class:`error-header`},b={class:`error-message`},x={class:`error-location`},S={class:`error-line-badge`},C={key:0,class:`error-code-block`},w={class:`line-number`},T={key:1},E=m({__name:`ErrorPage`,setup(m){let E=p(),D=f(),O=g(()=>{try{return E.query.data?JSON.parse(E.query.data):null}catch{return null}});async function k(){let e=await d();e.error?D.replace({name:`error`,query:{data:JSON.stringify(e.error)}}):(D.push(`/`),window.location.reload())}return(d,f)=>{let p=n(`router-link`);return O.value?(i(),s(`div`,v,[o(`header`,null,[o(`article`,y,[f[1]||=o(`h3`,null,[o(`i`,{class:`iconoir-warning-triangle`}),t(` Error `)],-1),o(`p`,b,c(O.value.error),1),o(`p`,x,[f[0]||=o(`i`,{class:`iconoir-page`},null,-1),t(` `+c(O.value.path)+` `,1),o(`span`,S,`Line `+c(O.value.line_no),1)])]),o(`a`,{href:`#`,class:`reload-btn`,onClick:_(k,[`prevent`])},[...f[2]||=[o(`i`,{class:`iconoir-refresh`},null,-1),t(` Reload `,-1)]])]),O.value.context?(i(),s(`div`,C,[o(`pre`,null,[o(`code`,null,[(i(!0),s(u,null,a(O.value.context,e=>(i(),s(`span`,{key:e.line_no,class:l(e.selected?`error-line`:`code-line`)},[o(`span`,w,c(String(e.line_no).padStart(4,` `)),1),t(c(e.content)+`
2
2
  `,1)],2))),128))])])])):h(``,!0)])):(i(),s(`div`,T,[f[4]||=o(`p`,null,`No error data available.`,-1),e(p,{to:`/`},{default:r(()=>[...f[3]||=[t(`Back to home`,-1)]]),_:1})]))}}},[[`__scopeId`,`data-v-109cf8ab`]]);export{E as default};
@@ -1 +1 @@
1
- import{M as e,N as t,S as n,T as r,c as i,j as a,k as o,t as s,z as c}from"./index-T1YqCmM1.js";import{t as l}from"./useGraphviz-EKSrE4q_.js";import{t as u}from"./usePanZoom-C2slpyY9.js";var d={key:0},f={key:1,class:`graph-container graph-expand`},p=[`innerHTML`],m=s({__name:`GraphView`,setup(s){let m=c(``),h=c(!0),g=c(null),_=null;a(async()=>{let e=await i();m.value=e?await l(e):``,h.value=!1,await o(),v()}),e(()=>{_?.destroy()});function v(){if(!g.value)return;let e=g.value.querySelector(`svg`);e&&(_=u(e,g.value))}return(e,i)=>(t(),r(`article`,null,[i[1]||=n(`header`,null,[n(`h2`,null,`Architecture Overview`)],-1),h.value?(t(),r(`div`,d,[...i[0]||=[n(`p`,null,`Loading graph...`,-1)]])):(t(),r(`div`,f,[n(`div`,{id:`graphviz`,ref_key:`graphEl`,ref:g,class:`fullcanvas`,innerHTML:m.value},null,8,p)]))]))}},[[`__scopeId`,`data-v-7d4eb553`]]);export{m as default};
1
+ import{M as e,N as t,S as n,T as r,c as i,j as a,k as o,t as s,z as c}from"./index-jMbNuijl.js";import{t as l}from"./useGraphviz-BhDHewrr.js";import{t as u}from"./usePanZoom-GQYikC2Z.js";var d={key:0},f={key:1,class:`graph-container graph-expand`},p=[`innerHTML`],m=s({__name:`GraphView`,setup(s){let m=c(``),h=c(!0),g=c(null),_=null;a(async()=>{let e=await i();m.value=e?await l(e):``,h.value=!1,await o(),v()}),e(()=>{_?.destroy()});function v(){if(!g.value)return;let e=g.value.querySelector(`svg`);e&&(_=u(e,g.value))}return(e,i)=>(t(),r(`article`,null,[i[1]||=n(`header`,null,[n(`h2`,null,`Architecture Overview`)],-1),h.value?(t(),r(`div`,d,[...i[0]||=[n(`p`,null,`Loading graph...`,-1)]])):(t(),r(`div`,f,[n(`div`,{id:`graphviz`,ref_key:`graphEl`,ref:g,class:`fullcanvas`,innerHTML:m.value},null,8,p)]))]))}},[[`__scopeId`,`data-v-7d4eb553`]]);export{m as default};
@@ -0,0 +1,2 @@
1
+ import{A as e,B as t,C as n,D as r,E as i,F as a,H as o,I as s,L as c,M as l,N as u,O as d,P as f,S as p,T as m,U as h,V as g,b as _,g as v,j as y,k as b,l as x,m as S,n as C,t as w,u as T,w as E,x as D,z as O}from"./index-jMbNuijl.js";import{t as k}from"./useHighlight-CLpP3akD.js";import{t as A}from"./useGraphviz-BhDHewrr.js";import{t as j}from"./usePanZoom-GQYikC2Z.js";import{a as M,c as N,i as P,n as F,o as I,r as L,s as R,t as z}from"./ResourceList-iVEBqeMm.js";import{t as B}from"./useMermaid-BiVpKDxX.js";function V(t){let n=v();function r(e){let t=e.target.closest(`a[href]`);if(!t)return;let r=t.getAttribute(`href`);!r||!r.startsWith(`/kinds/`)||(e.preventDefault(),n.push(r))}y(()=>{t.value?.addEventListener(`click`,r)}),e(()=>{t.value?.removeEventListener(`click`,r)})}var H={key:0,class:`relations-section`},U={class:`relations-grid`},W={class:`relations-column relations-outgoing`},G={class:`relation-kind`},ee={class:`relation-verb`},te={class:`instance-badges`},ne={key:1,class:`relations-empty`},re={class:`relations-column relations-incoming`},K={class:`relation-kind`},q={class:`relation-verb`},J={class:`instance-badges`},Y={key:1,class:`relations-empty`},X=w({__name:`RelationsGrid`,props:{data:Object},setup(e){let t=e,r=d(`kinds`),o=D(()=>t.data.relations||{}),s=D(()=>t.data.references||{}),l=D(()=>Object.keys(o.value).length>0||Object.keys(s.value).length>0);function v(e){return r?.value?.kinds?r.value.kinds.find(t=>t.kind===e):null}function y(e){return v(e)?.icon||`cube`}function b(e){return v(e)?.layer||`technology`}let x=D(()=>{let e=[];for(let[t,n]of Object.entries(o.value))for(let[r,i]of Object.entries(n))e.push({verb:t,kind:r,names:[...i].sort()});return e}),S=D(()=>{let e=[];for(let[t,n]of Object.entries(s.value))for(let[r,i]of Object.entries(n))e.push({verb:r||`references`,kind:t,names:[...i].sort()});return e});return(e,t)=>{let r=a(`router-link`);return l.value?(u(),m(`article`,H,[t[2]||=p(`header`,null,[p(`h2`,null,`Relations`)],-1),p(`div`,U,[p(`div`,W,[t[0]||=p(`h3`,null,[i(`Outgoing `),p(`i`,{class:`iconoir-arrow-right`})],-1),x.value.length?(u(!0),m(_,{key:0},f(x.value,(e,t)=>(u(),m(`div`,{key:`out-`+t,class:`relation-group`},[p(`div`,G,[p(`i`,{class:g(`iconoir-${y(e.kind)} icon-${b(e.kind)}`)},null,2),p(`span`,null,h(e.kind)+` (`+h(e.names.length)+`)`,1)]),p(`div`,ee,h(e.verb)+` (`+h(e.names.length)+`)`,1),p(`div`,te,[(u(!0),m(_,null,f(e.names,t=>(u(),n(r,{key:t,class:`badge badge-info`,to:{name:`instance`,params:{kind:e.kind,instance:t}}},{default:c(()=>[i(h(t),1)]),_:2},1032,[`to`]))),128))])]))),128)):(u(),m(`div`,ne,`None`))]),p(`div`,re,[t[1]||=p(`h3`,null,[p(`i`,{class:`iconoir-arrow-right`}),i(` Incoming`)],-1),S.value.length?(u(!0),m(_,{key:0},f(S.value,(e,t)=>(u(),m(`div`,{key:`in-`+t,class:`relation-group`},[p(`div`,K,[p(`i`,{class:g(`iconoir-${y(e.kind)} icon-${b(e.kind)}`)},null,2),p(`span`,null,h(e.kind)+` (`+h(e.names.length)+`)`,1)]),p(`div`,q,h(e.verb)+` (`+h(e.names.length)+`)`,1),p(`div`,J,[(u(!0),m(_,null,f(e.names,t=>(u(),n(r,{key:t,class:`badge badge-info`,to:{name:`instance`,params:{kind:e.kind,instance:t}}},{default:c(()=>[i(h(t),1)]),_:2},1032,[`to`]))),128))])]))),128)):(u(),m(`div`,Y,`None`))])])])):E(``,!0)}}},[[`__scopeId`,`data-v-3a1d98d9`]]),ie={key:0},ae={key:1,class:`graph-error`},oe={key:2,class:`graph-container`},se=[`innerHTML`],ce=w({__name:`ModuleGraph`,props:{dot:String,label:{type:String,default:`Module Structure`}},setup(e){let t=e,n=O(``),r=O(!0),a=O(null),o=O(null),c=null;async function d(e){if(!e){r.value=!1;return}c?.destroy(),c=null,r.value=!0,a.value=null;try{n.value=await A(e)}catch(e){a.value=e?.message||`Failed to render module graph`,n.value=``}finally{if(r.value=!1,await b(),o.value){let e=o.value.querySelector(`svg`);e&&(c=j(e,o.value))}}}return y(()=>d(t.dot)),s(()=>t.dot,d),l(()=>{c?.destroy()}),(t,s)=>(u(),m(`article`,null,[p(`header`,null,[p(`h2`,null,h(e.label),1)]),r.value?(u(),m(`div`,ie,[...s[0]||=[p(`p`,null,`Loading graph...`,-1)]])):a.value?(u(),m(`p`,ae,[s[1]||=p(`i`,{class:`iconoir-warning-triangle`},null,-1),i(` `+h(a.value),1)])):n.value?(u(),m(`div`,oe,[p(`div`,{ref_key:`graphEl`,ref:o,class:`canvas`,innerHTML:n.value},null,8,se)])):E(``,!0)]))}},[[`__scopeId`,`data-v-084799f5`]]),le={key:0,class:`requirements-section`},ue={class:`requirements-table`},de={class:`requirement-status`},fe=[`title`],pe={key:1,class:`view-empty-value`},me={class:`requirement-story`},he=[`innerHTML`],ge={key:1,class:`view-empty-value`},_e=w({__name:`RequirementsSection`,props:{data:Object},setup(e){let t=e,o=D(()=>{let e=t.data.relations||{},n=[];for(let[t,r]of Object.entries({realizes:`implemented`,partiallyRealizes:`partial`,plans:`planned`})){let i=e[t]||{},a=i.BusinessRequirement||i.businessRequirements||[];for(let e of a)n.push({name:e,status:r,verb:t})}return n}),l=O([]);s(o,async e=>{if(!e.length){l.value=[];return}let t=await Promise.all(e.map(async e=>{try{let t=(await x(`BusinessRequirement`,e.name)).metadata?.annotations||{};return{...e,priority:t[`requirement/priority`]||null,story:t[`requirement/story`]||null}}catch{return{...e,priority:null,story:null}}}));l.value=t},{immediate:!0});function d(e){switch(e){case`implemented`:return`iconoir-check-circle`;case`partial`:return`iconoir-half-moon`;case`planned`:return`iconoir-calendar`;default:return`iconoir-circle`}}function v(e){let n=t.data.name;return`/search?q=${encodeURIComponent(`BusinessRequirement: <- "${n}" & requirement/priority == "${e}"`)}`}return(e,t)=>{let s=a(`router-link`);return o.value.length?(u(),m(`article`,le,[t[1]||=p(`header`,null,[p(`h2`,null,`Business Requirements`)],-1),p(`table`,ue,[t[0]||=p(`thead`,null,[p(`tr`,null,[p(`th`),p(`th`,null,`Name`),p(`th`,null,`Priority`),p(`th`,null,`Story`)])],-1),p(`tbody`,null,[(u(!0),m(_,null,f(l.value,e=>(u(),m(`tr`,{key:e.name},[p(`td`,de,[p(`i`,{class:g([[d(e.status),`status-${e.status}`],`requirement-status-icon`]),title:e.status},null,10,fe)]),p(`td`,null,[r(s,{to:{name:`instance`,params:{kind:`BusinessRequirement`,instance:e.name}}},{default:c(()=>[i(h(e.name),1)]),_:2},1032,[`to`])]),p(`td`,null,[e.priority?(u(),n(s,{key:0,class:`badge badge-info`,to:v(e.priority)},{default:c(()=>[i(h(e.priority),1)]),_:2},1032,[`to`])):(u(),m(`span`,pe,`-`))]),p(`td`,me,[e.story?(u(),m(`div`,{key:0,innerHTML:e.story},null,8,he)):(u(),m(`span`,ge,`-`))])]))),128))])])])):E(``,!0)}}},[[`__scopeId`,`data-v-1e32a2b6`]]),ve={key:0},ye={scope:`row`},be=[`href`],xe={class:`git-info`},Se={class:`git-item`},Ce={class:`git-clone-command`},we=w({__name:`GitInfo`,props:{annotations:Object},setup(e){let t=e,n=D(()=>t.annotations[`repository/git`]),r=D(()=>n.value?P(n.value):null);function i(){navigator.clipboard.writeText(`git clone ${n.value}`)}return(e,t)=>n.value?(u(),m(`tr`,ve,[p(`th`,ye,[p(`a`,{class:`git-link`,href:r.value,target:`_blank`},`Git Repo`,8,be)]),p(`td`,null,[p(`div`,xe,[p(`div`,Se,[t[0]||=p(`i`,{class:`iconoir-git-branch`},null,-1),p(`code`,Ce,`git clone `+h(n.value),1)]),p(`button`,{class:`copy-button`,onClick:i,title:`Copy to clipboard`},[...t[1]||=[p(`i`,{class:`iconoir-copy`},null,-1)]])])])])):E(``,!0)}},[[`__scopeId`,`data-v-ae19746e`]]),Te={key:0},Ee={class:`language-distribution`},De={class:`language-total`},Oe={class:`language-count`},ke={class:`language-bar`},Ae=[`title`],je={class:`language-legend`},Me={class:`other-languages`},Ne=w({__name:`LanguageStats`,props:{annotations:Object,kind:String},setup(e){let s=e,l=D(()=>{let e=s.annotations[`scc/languages`];if(!e)return null;let t=e.split(`,`).map(e=>{let t=`scc/language/${e.trim()}/loc`;return{name:e.trim(),loc:parseInt(s.annotations[t]||`0`,10)}}).sort((e,t)=>t.loc-e.loc),n=t.reduce((e,t)=>e+t.loc,0);if(n<=0)return null;let r=t.filter(e=>e.loc/n*100>=.1),i=r.slice(0,10),a=[...r.slice(10),...t.filter(e=>e.loc/n*100<.1)],o=a.reduce((e,t)=>e+t.loc,0),c=[...i];return o>0&&c.push({name:`Other`,loc:o,isOther:!0,otherNames:a.map(e=>e.name)}),{display:c,total:n}});function d(e){return(e/l.value.total*100).toFixed(1)}function v(e,t){return t.isOther?`lang-other`:`lang-${e}`}function y(e,t){return{name:`search`,query:{q:`${e} == "${t}"`}}}return(e,s)=>{let b=a(`router-link`);return l.value?(u(),m(`tr`,Te,[s[3]||=p(`th`,{scope:`row`},`Languages`,-1),p(`td`,null,[p(`div`,Ee,[p(`div`,De,[p(`span`,Oe,h(t(I)(l.value.total)),1),s[0]||=p(`span`,{class:`language-label`},`lines of code`,-1)]),p(`div`,ke,[(u(!0),m(_,null,f(l.value.display,(e,n)=>(u(),m(`div`,{key:e.name,class:g([`language-bar-segment`,v(n,e)]),style:o({width:d(e.loc)+`%`}),title:`${e.name}: ${t(I)(e.loc)} (${d(e.loc)}%)`},null,14,Ae))),128))]),p(`div`,je,[(u(!0),m(_,null,f(l.value.display,(e,t)=>(u(),m(`div`,{key:e.name,class:`language-legend-item`},[p(`div`,{class:g([`language-legend-dot`,v(t,e)])},null,2),e.isOther?(u(),m(_,{key:0},[p(`span`,null,`Other `+h(d(e.loc))+`%`,1),p(`span`,Me,[s[1]||=i(` (`,-1),(u(!0),m(_,null,f(e.otherNames,(t,n)=>(u(),m(_,{key:t},[r(b,{to:y(`scc/languages`,t)},{default:c(()=>[i(h(t),1)]),_:2},1032,[`to`]),n<e.otherNames.length-1?(u(),m(_,{key:0},[i(`, `)],64)):E(``,!0)],64))),128)),s[2]||=i(`) `,-1)])],64)):(u(),n(b,{key:1,to:y(`scc/languages`,e.name)},{default:c(()=>[i(h(e.name)+` `+h(d(e.loc))+`% `,1)]),_:2},1032,[`to`]))]))),128))])])])])):E(``,!0)}}},[[`__scopeId`,`data-v-c306da87`]]),Pe={key:0},Fe={class:`project-estimate`},Ie={key:0,class:`estimate-item`},Le={class:`estimate-value`},Re={key:1,class:`estimate-item`},ze={class:`estimate-value`},Be={key:2,class:`estimate-item`},Ve={class:`estimate-value`},He=w({__name:`ProjectEstimate`,props:{annotations:Object},setup(e){let n=e,r=D(()=>F(`cost`,n.annotations[`scc/estimatedCost`])),a=D(()=>F(`schedule`,n.annotations[`scc/estimatedScheduleMonths`])),o=D(()=>F(`team`,n.annotations[`scc/estimatedPeople`])),s=D(()=>r.value!=null||a.value!=null||o.value!=null);return(e,n)=>s.value?(u(),m(`tr`,Pe,[n[6]||=p(`th`,{scope:`row`},[i(` Project Estimate `),p(`span`,{class:`estimate-note`,title:`Estimates adjusted for €80k salary and AI-assisted development (3x productivity)`},[p(`i`,{class:`iconoir-info-circle`})])],-1),p(`td`,null,[p(`div`,Fe,[r.value==null?E(``,!0):(u(),m(`div`,Ie,[n[0]||=p(`i`,{class:`iconoir-euro`},null,-1),n[1]||=p(`span`,{class:`estimate-label`},`Cost:`,-1),p(`span`,Le,h(t(N)(r.value)),1)])),a.value==null?E(``,!0):(u(),m(`div`,Re,[n[2]||=p(`i`,{class:`iconoir-calendar`},null,-1),n[3]||=p(`span`,{class:`estimate-label`},`Schedule:`,-1),p(`span`,ze,h(a.value.toFixed(1))+` months`,1)])),o.value==null?E(``,!0):(u(),m(`div`,Be,[n[4]||=p(`i`,{class:`iconoir-group`},null,-1),n[5]||=p(`span`,{class:`estimate-label`},`Team:`,-1),p(`span`,Ve,h(o.value)+` people`,1)]))])])])):E(``,!0)}},[[`__scopeId`,`data-v-6cb46a9d`]]),Ue={key:0},We={class:`repository-distribution`},Ge={class:`repository-total`},Ke={class:`repository-count`},qe={class:`repository-bar`},Je=[`title`],Ye={class:`repository-legend`},Xe=w({__name:`RepositoriesBar`,props:{annotations:Object},setup(e){let t=e,n=D(()=>parseInt(t.annotations[`repository/artifacts/total`]||`0`,10)),r=D(()=>parseInt(t.annotations[`repository/artifacts/active`]||`0`,10)),i=D(()=>parseInt(t.annotations[`repository/artifacts/abandoned`]||`0`,10)),a=D(()=>parseInt(t.annotations[`repository/artifacts/archived`]||`0`,10)),s=D(()=>parseInt(t.annotations[`repository/artifacts/highBusFactor`]||`0`,10)),c=D(()=>n.value>0),l=D(()=>r.value-s.value),d=D(()=>n.value-r.value-i.value-a.value);function v(e){return(e/n.value*100).toFixed(1)}let y=D(()=>{let e=[];return l.value>0&&e.push({cls:`status-active`,value:l.value,label:`Active (healthy)`}),s.value>0&&e.push({cls:`status-high-bus-factor`,value:s.value,label:`Active (high bus factor)`}),a.value>0&&e.push({cls:`status-archived`,value:a.value,label:`Archived`}),d.value>0&&e.push({cls:`status-other`,value:d.value,label:`Other`}),i.value>0&&e.push({cls:`status-abandoned`,value:i.value,label:`Abandoned`}),e});return(e,t)=>c.value?(u(),m(`tr`,Ue,[t[1]||=p(`th`,{scope:`row`},`Repositories`,-1),p(`td`,null,[p(`div`,We,[p(`div`,Ge,[p(`span`,Ke,h(n.value),1),t[0]||=p(`span`,{class:`repository-label`},`repositories`,-1)]),p(`div`,qe,[(u(!0),m(_,null,f(y.value,e=>(u(),m(`div`,{key:e.cls,class:g([`repository-bar-segment`,e.cls]),style:o({width:v(e.value)+`%`}),title:`${e.label}: ${e.value} (${v(e.value)}%)`},null,14,Je))),128))]),p(`div`,Ye,[(u(!0),m(_,null,f(y.value,e=>(u(),m(`div`,{key:e.cls,class:`repository-legend-item`},[p(`div`,{class:g([`repository-legend-dot`,e.cls])},null,2),p(`span`,null,h(e.value)+` `+h(e.label.toLowerCase()),1)]))),128))])])])])):E(``,!0)}},[[`__scopeId`,`data-v-1fbb3e92`]]),Ze=[`title`],Z=w({__name:`SparklineChart`,props:{values:{type:String,required:!0},type:{type:String,default:`commits`},maxHeight:{type:Number,default:16},colorClass:{type:String,default:null}},setup(e){let t=e,n=D(()=>!t.values||t.values.trim()===``?[]:t.values.split(`,`).map(e=>parseInt(e,10)||0)),r=D(()=>{let e=Math.max(...n.value);return e===0?1:e});function i(e){return e===0?0:Math.max(2,Math.round(e/r.value*t.maxHeight))}let a=D(()=>{switch(t.type){case`created`:return` issues created`;case`resolved`:return` issues resolved`;default:return` commits`}});return(t,r)=>(u(),m(`div`,{class:g([`activity-sparkline`,e.colorClass])},[(u(!0),m(_,null,f(n.value,(e,t)=>(u(),m(`div`,{key:t,class:g([`activity-sparkline-bar`,{empty:e===0}]),style:o({height:i(e)+`px`}),title:e+a.value},null,14,Ze))),128))],2))}},[[`__scopeId`,`data-v-c5e6ffa5`]]),Qe={key:0},$e={class:`activity-summary`},et={key:0,class:`activity-item`},tt={class:`activity-value sparkline-total`},nt={key:1,class:`activity-item`},rt={key:0,class:`activity-value sparkline-total`},it={key:1,class:`activity-value contributors-total`},at={key:2,class:`activity-item`},ot={class:`activity-value`},st={key:3,class:`activity-item`},ct={key:4,class:`activity-item`},lt=w({__name:`ActivityInfo`,props:{annotations:Object,kind:String},setup(e){let t=e,n=D(()=>t.annotations[`activity/commits`]),o=D(()=>t.annotations[`activity/contributors`]),s=D(()=>t.annotations[`activity/contributors/6m`]),l=D(()=>t.annotations[`activity/contributors/total`]),d=D(()=>t.annotations[`activity/status`]),f=D(()=>t.annotations[`activity/busFactor`]),_=D(()=>t.annotations[`activity/createdAt`]),v=D(()=>n.value||o.value||d.value||f.value||_.value),y=D(()=>n.value?n.value.split(`,`).map(Number).reduce((e,t)=>e+t,0):0),b=D(()=>_.value?new Date(_.value).toLocaleDateString(`en`,{month:`short`,year:`numeric`}):null),x=D(()=>{let e=f.value,t=``;switch(e){case`high`:t=`High risk: One contributor accounts for >75% of commits in the last 6 months`;break;case`medium`:t=`Medium risk: One contributor accounts for 50-75% of commits in the last 6 months`;break;case`low`:t=`Low risk: No single contributor dominates the codebase`;break;default:t=`Unknown: Not enough recent activity to assess`}return s.value&&(t+=` (${s.value} unique contributors)`),t});function S(e,t){return{name:`search`,query:{q:`${e} == "${t}"`}}}return(e,t)=>{let C=a(`router-link`);return v.value?(u(),m(`tr`,Qe,[t[10]||=p(`th`,{scope:`row`},`Activity`,-1),p(`td`,null,[p(`div`,$e,[n.value?(u(),m(`div`,et,[t[0]||=p(`i`,{class:`iconoir-git-commit`},null,-1),t[1]||=p(`span`,{class:`activity-label`},`Commits:`,-1),r(Z,{values:n.value},null,8,[`values`]),p(`span`,tt,h(y.value),1)])):E(``,!0),o.value?(u(),m(`div`,nt,[t[2]||=p(`i`,{class:`iconoir-community`},null,-1),t[3]||=p(`span`,{class:`activity-label`},`Contributors:`,-1),r(Z,{values:o.value,"color-class":`contributors-sparkline`},null,8,[`values`]),s.value?(u(),m(`span`,rt,h(s.value),1)):E(``,!0),l.value?(u(),m(`span`,it,`(`+h(l.value)+` total)`,1)):E(``,!0)])):E(``,!0),_.value?(u(),m(`div`,at,[t[4]||=p(`i`,{class:`iconoir-calendar`},null,-1),t[5]||=p(`span`,{class:`activity-label`},`Created:`,-1),p(`span`,ot,h(b.value),1)])):E(``,!0),d.value?(u(),m(`div`,st,[t[6]||=p(`i`,{class:`iconoir-info-circle`},null,-1),t[7]||=p(`span`,{class:`activity-label`},`Status:`,-1),r(C,{class:g(`activity-value status-${d.value}`),to:S(`activity/status`,d.value)},{default:c(()=>[i(h(d.value),1)]),_:1},8,[`class`,`to`])])):E(``,!0),f.value?(u(),m(`div`,ct,[t[8]||=p(`i`,{class:`iconoir-warning-triangle`},null,-1),t[9]||=p(`span`,{class:`activity-label`},`Bus Factor:`,-1),r(C,{class:g(`activity-value bus-factor-${f.value}`),to:S(`activity/busFactor`,f.value),title:x.value},{default:c(()=>[i(h(f.value),1)]),_:1},8,[`class`,`to`,`title`])])):E(``,!0)])])])):E(``,!0)}}},[[`__scopeId`,`data-v-c3143572`]]),ut={key:0},dt={key:1},ft={class:`jira-info`},pt=[`href`],mt={class:`jira-metric`},ht={class:`jira-metric-total`},gt={class:`jira-metric`},_t={class:`jira-metric-total`},vt={key:0,class:`iconoir-arrow-down-circle`},yt={key:1,class:`iconoir-arrow-up-circle`},bt={key:2,class:`iconoir-minus-circle`},xt={class:`jira-trend-text`},St={key:2},Ct=[`href`],wt={key:1,class:`team-value`},Tt={key:3},Et={class:`team-stats`},Dt={key:0,class:`team-stat-item`},Ot={class:`team-stat-value`},kt={key:1,class:`team-stat-item`},At={class:`team-stat-value`},jt={key:4},Mt={class:`team-members`},Nt=[`href`],Pt={key:1,class:`team-member`},Ft=w({__name:`TeamInfo`,props:{annotations:Object,instance:Object},setup(e){let t=e,n=D(()=>t.annotations[`team/lead`]),o=D(()=>t.annotations[`team/members`]),s=D(()=>t.annotations[`team/size`]),l=D(()=>t.annotations[`team/lead/size`]),d=D(()=>t.annotations[`team/jira`]),v=D(()=>t.annotations[`jira/projectUrl`]),y=D(()=>t.annotations[`jira/issues/created`]),b=D(()=>t.annotations[`jira/issues/resolved`]),x=D(()=>t.instance?.kind===`BusinessActor`),S=D(()=>`kind in ("ApplicationService", "ApplicationComponent") & ~> $(TechnologyArtifact: -{maintainedBy}> "${t.instance?.name||``}")`),C=D(()=>o.value?o.value.split(/,|\n/).map(e=>e.trim()).filter(Boolean):[]);function w(e){let t=e.match(/<([^>]+@[^>]+)>/);return t?t[1]:null}function T(e){return{name:`search`,query:{q:e}}}let O=D(()=>y.value?y.value.split(`,`).map(Number).reduce((e,t)=>e+t,0):0),k=D(()=>b.value?b.value.split(`,`).map(Number).reduce((e,t)=>e+t,0):0),A=D(()=>y.value?y.value.split(`,`).map(Number):[]),j=D(()=>b.value?b.value.split(`,`).map(Number):[]),M=D(()=>(A.value.length?O.value/A.value.length:0)-(j.value.length?k.value/j.value.length:0)),N=D(()=>{let e=M.value;return e<-1?`positive`:e>1?`negative`:`neutral`});return(e,t)=>{let D=a(`router-link`);return u(),m(_,null,[x.value?(u(),m(`tr`,ut,[t[1]||=p(`th`,{scope:`row`},`Owned Services`,-1),p(`td`,null,[r(D,{class:`badge badge-info`,to:T(S.value)},{default:c(()=>[...t[0]||=[i(` Show ApplicationServices & Components `,-1)]]),_:1},8,[`to`])])])):E(``,!0),d.value&&v.value?(u(),m(`tr`,dt,[t[4]||=p(`th`,{scope:`row`},`Jira Project`,-1),p(`td`,null,[p(`div`,ft,[p(`a`,{class:`badge badge-info`,href:v.value,target:`_blank`},h(d.value),9,pt),y.value||b.value?(u(),m(_,{key:0},[p(`div`,mt,[t[2]||=p(`span`,{class:`jira-metric-label`},`Created (6m):`,-1),r(Z,{values:y.value,type:`created`,"color-class":`jira-created-sparkline`},null,8,[`values`]),p(`span`,ht,h(O.value),1)]),p(`div`,gt,[t[3]||=p(`span`,{class:`jira-metric-label`},`Resolved (6m):`,-1),r(Z,{values:b.value,type:`resolved`,"color-class":`jira-resolved-sparkline`},null,8,[`values`]),p(`span`,_t,h(k.value),1)]),p(`div`,{class:g([`jira-trend`,`jira-trend-${N.value}`])},[N.value===`positive`?(u(),m(`i`,vt)):N.value===`negative`?(u(),m(`i`,yt)):(u(),m(`i`,bt)),p(`span`,xt,h(M.value>0?`+`:``)+h(M.value.toFixed(1))+`/mo`,1)],2)],64)):E(``,!0)])])])):E(``,!0),n.value?(u(),m(`tr`,St,[t[5]||=p(`th`,{scope:`row`},`Team Lead`,-1),p(`td`,null,[w(n.value)?(u(),m(`a`,{key:0,class:`team-value`,href:`mailto:${w(n.value)}`},h(n.value),9,Ct)):(u(),m(`span`,wt,h(n.value),1))])])):E(``,!0),s.value||l.value?(u(),m(`tr`,Tt,[t[8]||=p(`th`,{scope:`row`},`Team Stats`,-1),p(`td`,null,[p(`div`,Et,[l.value?(u(),m(`div`,Dt,[p(`span`,Ot,h(l.value),1),t[6]||=p(`span`,{class:`team-stat-label`},`leads`,-1)])):E(``,!0),s.value?(u(),m(`div`,kt,[p(`span`,At,h(s.value),1),t[7]||=p(`span`,{class:`team-stat-label`},`members`,-1)])):E(``,!0)])])])):E(``,!0),o.value?(u(),m(`tr`,jt,[t[9]||=p(`th`,{scope:`row`},`Team Members`,-1),p(`td`,null,[p(`div`,Mt,[(u(!0),m(_,null,f(C.value,e=>(u(),m(_,{key:e},[w(e)?(u(),m(`a`,{key:0,class:`team-member`,href:`mailto:${w(e)}`},h(e),9,Nt)):(u(),m(`span`,Pt,h(e),1))],64))),128))])])])):E(``,!0)],64)}}},[[`__scopeId`,`data-v-4e1ea26f`]]),It={key:0},Lt={class:`deployment-types`},Rt=w({__name:`DeploymentInfo`,props:{annotations:Object,kind:String},setup(e){let t=e,r=D(()=>(t.annotations[`repository/artifacts`]||`none`).split(`,`).map(e=>e.trim())),i=D(()=>r.value[0]!==`none`),o=[{key:`container`,icon:`iconoir-box`,label:`Container Image`},{key:`chart`,icon:`iconoir-packages`,label:`Helm Chart`},{key:`binary`,icon:`iconoir-terminal`,label:`Binary`},{key:`debian`,icon:`iconoir-package`,label:`Debian Package`},{key:`rpm`,icon:`iconoir-package`,label:`RPM Package`}];function s(e,t){return{name:`search`,query:{q:`${e} == "${t}"`}}}return(e,t)=>{let l=a(`router-link`);return i.value?(u(),m(`tr`,It,[t[0]||=p(`th`,{scope:`row`},`Deployment Artifacts`,-1),p(`td`,null,[p(`div`,Lt,[(u(),m(_,null,f(o,e=>(u(),m(_,{key:e.key},[r.value.includes(e.key)?(u(),n(l,{key:0,class:`deployment-item`,to:s(`repository/artifacts`,e.key)},{default:c(()=>[p(`i`,{class:g(e.icon)},null,2),p(`strong`,null,h(e.label),1)]),_:2},1032,[`to`])):E(``,!0)],64))),64))])])])):E(``,!0)}}},[[`__scopeId`,`data-v-7cfa7667`]]),zt={class:`workflow-platforms`},Bt=[`checked`],Vt=[`checked`],Ht=[`checked`],Ut={class:`info-section-cell`,colspan:`2`},Wt={open:``},Gt={class:`workflow-types`},Kt={class:`workflow-category`},qt=[`checked`],Jt=[`checked`],Yt={class:`workflow-category`},Xt=[`checked`],Zt=[`checked`],Qt=[`checked`],$t=[`checked`],en={class:`workflow-category`},tn=[`checked`],nn=[`checked`],rn={class:`workflow-category`},an=[`checked`],on=[`checked`],sn=w({__name:`WorkflowInfo`,props:{annotations:Object,kind:String},setup(e){let t=e,n=D(()=>(t.annotations[`workflow/platforms`]||`none`).split(`,`).map(e=>e.trim())),o=D(()=>(t.annotations[`workflow/types`]||`none`).split(`,`).map(e=>e.trim())),s=D(()=>n.value[0]!==`none`||o.value[0]!==`none`),l=D(()=>o.value.includes(`test`));function d(e,t){return{name:`search`,query:{q:`${e} == "${t}"`}}}function f(e,t){return e.includes(t)}return(e,t)=>{let h=a(`router-link`);return s.value?(u(),m(_,{key:0},[p(`tr`,null,[t[3]||=p(`th`,{scope:`row`},`CI/CD Platforms`,-1),p(`td`,null,[p(`div`,zt,[r(h,{class:`workflow-platform-item`,to:d(`workflow/platforms`,`github-actions`)},{default:c(()=>[p(`input`,{type:`checkbox`,disabled:``,checked:f(n.value,`github-actions`)},null,8,Bt),t[0]||=p(`label`,null,`GitHub Actions`,-1)]),_:1},8,[`to`]),r(h,{class:`workflow-platform-item`,to:d(`workflow/platforms`,`gitlab-ci`)},{default:c(()=>[p(`input`,{type:`checkbox`,disabled:``,checked:f(n.value,`gitlab-ci`)},null,8,Vt),t[1]||=p(`label`,null,`GitLab CI`,-1)]),_:1},8,[`to`]),r(h,{class:`workflow-platform-item`,to:d(`workflow/platforms`,`makefile`)},{default:c(()=>[p(`input`,{type:`checkbox`,disabled:``,checked:f(n.value,`makefile`)},null,8,Ht),t[2]||=p(`label`,null,`Makefile`,-1)]),_:1},8,[`to`])])])]),p(`tr`,null,[p(`td`,Ut,[p(`details`,Wt,[t[18]||=p(`summary`,null,[p(`strong`,null,`Workflow Types`)],-1),p(`div`,Gt,[p(`div`,null,[p(`div`,Kt,[t[6]||=p(`strong`,null,`Build & Deploy`,-1),p(`ul`,null,[p(`li`,null,[p(`input`,{type:`checkbox`,disabled:``,checked:f(o.value,`build`)},null,8,qt),r(h,{to:d(`workflow/types`,`build`)},{default:c(()=>[...t[4]||=[i(`Build`,-1)]]),_:1},8,[`to`])]),p(`li`,null,[p(`input`,{type:`checkbox`,disabled:``,checked:f(o.value,`deploy`)},null,8,Jt),r(h,{to:d(`workflow/types`,`deploy`)},{default:c(()=>[...t[5]||=[i(`Deploy`,-1)]]),_:1},8,[`to`])])])]),p(`div`,Yt,[t[11]||=p(`strong`,null,`Testing`,-1),p(`ul`,null,[p(`li`,null,[p(`input`,{type:`checkbox`,disabled:``,checked:f(o.value,`test`)},null,8,Xt),r(h,{to:d(`workflow/types`,`test`)},{default:c(()=>[...t[7]||=[i(`Test (generic)`,-1)]]),_:1},8,[`to`])]),p(`li`,{class:g({"grayed-out":l.value})},[p(`input`,{type:`checkbox`,disabled:``,checked:f(o.value,`unit-test`)},null,8,Zt),r(h,{to:d(`workflow/types`,`unit-test`)},{default:c(()=>[...t[8]||=[i(`Unit Tests`,-1)]]),_:1},8,[`to`])],2),p(`li`,{class:g({"grayed-out":l.value})},[p(`input`,{type:`checkbox`,disabled:``,checked:f(o.value,`integration-test`)},null,8,Qt),r(h,{to:d(`workflow/types`,`integration-test`)},{default:c(()=>[...t[9]||=[i(`Integration Tests`,-1)]]),_:1},8,[`to`])],2),p(`li`,{class:g({"grayed-out":l.value})},[p(`input`,{type:`checkbox`,disabled:``,checked:f(o.value,`smoke-test`)},null,8,$t),r(h,{to:d(`workflow/types`,`smoke-test`)},{default:c(()=>[...t[10]||=[i(`Smoke Tests`,-1)]]),_:1},8,[`to`])],2)])]),p(`div`,en,[t[14]||=p(`strong`,null,`Quality & Security`,-1),p(`ul`,null,[p(`li`,null,[p(`input`,{type:`checkbox`,disabled:``,checked:f(o.value,`lint`)},null,8,tn),r(h,{to:d(`workflow/types`,`lint`)},{default:c(()=>[...t[12]||=[i(`Linting`,-1)]]),_:1},8,[`to`])]),p(`li`,null,[p(`input`,{type:`checkbox`,disabled:``,checked:f(o.value,`security-scan`)},null,8,nn),r(h,{to:d(`workflow/types`,`security-scan`)},{default:c(()=>[...t[13]||=[i(`Security Scan`,-1)]]),_:1},8,[`to`])])])]),p(`div`,rn,[t[17]||=p(`strong`,null,`Automation`,-1),p(`ul`,null,[p(`li`,null,[p(`input`,{type:`checkbox`,disabled:``,checked:f(o.value,`dependency-update`)},null,8,an),r(h,{to:d(`workflow/types`,`dependency-update`)},{default:c(()=>[...t[15]||=[i(`Dependency Updates`,-1)]]),_:1},8,[`to`])]),p(`li`,null,[p(`input`,{type:`checkbox`,disabled:``,checked:f(o.value,`ticket-creation`)},null,8,on),r(h,{to:d(`workflow/types`,`ticket-creation`)},{default:c(()=>[...t[16]||=[i(`Ticket Creation`,-1)]]),_:1},8,[`to`])])])])])])])])])],64)):E(``,!0)}}},[[`__scopeId`,`data-v-62c25aa1`]]),cn={class:`info-section-cell`,colspan:`2`},ln={class:`agentic-tools`},un={class:`tool-item-header`},dn=[`checked`],fn={class:`tool-item-description`},pn=w({__name:`AgenticTools`,props:{annotations:Object,kind:String},setup(e){let t=e,n=D(()=>(t.annotations[`agentic/tools`]||`none`).split(`,`).map(e=>e.trim())),o=D(()=>n.value[0]!==`none`),s=[{key:`claude`,icon:`iconoir-brain`,name:`Claude`,description:`Anthropic Claude API`},{key:`cursor`,icon:`iconoir-edit-pencil`,name:`Cursor`,description:`AI code editor`},{key:`aider`,icon:`iconoir-terminal`,name:`Aider`,description:`CLI pair programmer`},{key:`github-copilot`,icon:`iconoir-github`,name:`GitHub Copilot`,description:`GitHub AI assistant`},{key:`agents`,icon:`iconoir-cpu-warning`,name:`Custom Agents`,description:`Custom AI agents`}];function l(e,t){return{name:`search`,query:{q:`${e} == "${t}"`}}}return(e,t)=>{let d=a(`router-link`);return o.value?(u(),m(_,{key:0},[t[0]||=p(`tr`,null,[p(`th`,{scope:`row`,colspan:`2`},[p(`i`,{class:`iconoir-cpu`}),i(` AI Coding Assistants `)])],-1),p(`tr`,null,[p(`td`,cn,[p(`div`,ln,[(u(),m(_,null,f(s,e=>r(d,{key:e.key,class:g([`tool-item`,{"not-implemented":!n.value.includes(e.key)}]),to:l(`agentic/tools`,e.key)},{default:c(()=>[p(`div`,un,[p(`input`,{type:`checkbox`,checked:n.value.includes(e.key),disabled:``},null,8,dn),p(`i`,{class:g([e.icon,n.value.includes(e.key)?`implemented`:`not-implemented`])},null,2),p(`strong`,null,h(e.name),1)]),p(`div`,fn,h(e.description),1)]),_:2},1032,[`class`,`to`])),64))])])])],64)):E(``,!0)}}},[[`__scopeId`,`data-v-9f667c51`]]),mn={key:0},hn={class:`activity-summary`},gn={class:`activity-item`},_n={key:0,class:`activity-item`},vn={class:`activity-value`},yn={key:1,class:`activity-item`},bn={key:0,class:`license-details-inline`},xn={class:`badge badge-secondary`},Sn={class:`license-overflow`},Cn=w({__name:`LicenseInfo`,props:{annotations:Object,kind:String},setup(e){let t=e,o=D(()=>t.annotations[`license/spdx`]),s=D(()=>t.annotations[`license/category`]||`unknown`),l=D(()=>t.annotations[`license/dependencies/count`]),d=D(()=>(t.annotations[`license/dependencies/ecosystems`]||``).split(`,`).map(e=>e.trim()).filter(Boolean)),v=D(()=>t.annotations[`license/dependencies/risk`]||`unknown`),y=D(()=>t.annotations[`license/dependencies/copyleft`]||`unknown`),b=D(()=>(t.annotations[`license/dependencies/licenses`]||``).split(`,`).map(e=>e.trim()).filter(Boolean)),x=D(()=>{switch(s.value){case`permissive`:return`badge-success`;case`weak-copyleft`:return`badge-warning`;case`source-available`:return`badge-warning`;case`copyleft`:return`badge-danger`;default:return`badge-secondary`}}),S=D(()=>{switch(v.value){case`low`:return`badge-success`;case`weak-copyleft`:return`badge-warning`;case`copyleft`:return`badge-danger`;default:return`badge-secondary`}}),C=D(()=>{switch(v.value){case`copyleft`:return`Copyleft dependencies (GPL, AGPL) or >50% unknown licenses`;case`weak-copyleft`:return`Weak-copyleft dependencies (LGPL, MPL) present`;case`low`:return`All dependencies have known permissive licenses`;default:return`No dependency license data available`}}),w=D(()=>b.value.filter(e=>e!==`unknown`).map(e=>({name:e,count:parseInt(t.annotations[`license/dependencies/${e}/count`]||`0`,10)})).sort((e,t)=>t.count-e.count));function T(e,t){return{name:`search`,query:{q:`${e} == "${t}"`}}}return(e,t)=>{let b=a(`router-link`);return o.value?(u(),m(`tr`,mn,[t[6]||=p(`th`,{scope:`row`},`License`,-1),p(`td`,null,[p(`div`,hn,[p(`div`,gn,[t[0]||=p(`i`,{class:`iconoir-shield-check`},null,-1),r(b,{class:g([`badge`,x.value]),to:T(`license/spdx`,o.value)},{default:c(()=>[i(h(o.value),1)]),_:1},8,[`class`,`to`]),s.value===`unknown`?E(``,!0):(u(),n(b,{key:0,class:`badge badge-outline`,to:T(`license/category`,s.value)},{default:c(()=>[i(h(s.value),1)]),_:1},8,[`to`]))]),l.value&&parseInt(l.value)>0?(u(),m(`div`,_n,[t[2]||=p(`i`,{class:`iconoir-box`},null,-1),t[3]||=p(`span`,{class:`activity-label`},`Dependencies:`,-1),p(`span`,vn,h(l.value),1),(u(!0),m(_,null,f(d.value,e=>(u(),n(b,{key:e,class:`badge badge-info`,to:T(`license/dependencies/ecosystems`,e)},{default:c(()=>[i(h(e),1)]),_:2},1032,[`to`]))),128)),r(b,{class:g([`badge`,S.value]),title:C.value,to:T(`license/dependencies/risk`,v.value)},{default:c(()=>[i(`Risk: `+h(v.value),1)]),_:1},8,[`class`,`title`,`to`]),y.value===`true`?(u(),n(b,{key:0,class:`badge badge-warning`,to:T(`license/dependencies/copyleft`,`true`)},{default:c(()=>[...t[1]||=[i(`Copyleft present`,-1)]]),_:1},8,[`to`])):E(``,!0)])):E(``,!0),w.value.length?(u(),m(`div`,yn,[t[4]||=p(`i`,{class:`iconoir-list`},null,-1),t[5]||=p(`span`,{class:`activity-label`},`Types:`,-1),(u(!0),m(_,null,f(w.value.slice(0,5),e=>(u(),n(b,{key:e.name,class:`badge badge-outline`,to:T(`license/dependencies/licenses`,e.name)},{default:c(()=>[i(h(e.count>0?`${e.name} (${e.count})`:e.name),1)]),_:2},1032,[`to`]))),128)),w.value.length>5?(u(),m(`details`,bn,[p(`summary`,xn,`+`+h(w.value.length-5)+` more`,1),p(`div`,Sn,[(u(!0),m(_,null,f(w.value.slice(5),e=>(u(),n(b,{key:e.name,class:`badge badge-outline`,to:T(`license/dependencies/licenses`,e.name)},{default:c(()=>[i(h(e.count>0?`${e.name} (${e.count})`:e.name),1)]),_:2},1032,[`to`]))),128))])])):E(``,!0)])):E(``,!0)])])])):E(``,!0)}}},[[`__scopeId`,`data-v-1b458fa7`]]),wn={key:0},Tn=[`href`],En=[`href`],Dn={__name:`ExternalLinks`,props:{annotations:Object},setup(e){let n=e,r=D(()=>Object.entries(n.annotations).filter(([e])=>e.startsWith(`link/`)).sort(([e],[t])=>e.localeCompare(t))),a=D(()=>r.value.length>0),o=D(()=>{if(r.value.length<=10)return null;let e={};for(let[t,n]of r.value){let r=L(n);e[r]||(e[r]=[]),e[r].push({key:t,url:n,name:t.replace(`link/`,``)})}return Object.entries(e).sort(([e],[t])=>e.localeCompare(t))});return(e,n)=>a.value?(u(),m(`tr`,wn,[n[4]||=p(`th`,{scope:`row`},`Links`,-1),p(`td`,null,[o.value?(u(!0),m(_,{key:0},f(o.value,([e,r])=>(u(),m(_,{key:e},[p(`strong`,null,h(e),1),n[1]||=p(`br`,null,null,-1),(u(!0),m(_,null,f(r,e=>(u(),m(_,{key:e.key},[p(`a`,{href:e.url,target:`_blank`,rel:`noopener noreferrer`},[p(`span`,{class:g(t(M)(e.url))},null,2),i(` `+h(e.name),1)],8,Tn),n[0]||=p(`br`,null,null,-1)],64))),128)),n[2]||=p(`br`,null,null,-1)],64))),128)):(u(!0),m(_,{key:1},f(r.value,([e,r])=>(u(),m(_,{key:e},[p(`a`,{href:r,target:`_blank`,rel:`noopener noreferrer`},[p(`span`,{class:g(t(M)(r))},null,2),i(` `+h(e.replace(`link/`,``)),1)],8,En),n[3]||=p(`br`,null,null,-1)],64))),128))])])):E(``,!0)}},On={scope:`row`},kn=[`innerHTML`],An={key:1,class:`instance-badges`},jn=[`href`],Mn={__name:`AnnotationRow`,props:{annotationKey:String,value:[String,Number,Boolean],kind:String,format:{type:String,default:null}},setup(e){let t=e,r=O(null);V(r);let o=D(()=>{let e=t.annotationKey.split(`/`);return e[e.length-1].replace(/([a-z])([A-Z])/g,`$1 $2`).replace(/^./,e=>e.toUpperCase())}),s=D(()=>typeof t.value==`string`&&/^https?:\/\//.test(t.value)),l=D(()=>t.format!==`tag_list`||typeof t.value!=`string`?[]:t.value.split(`,`).map(e=>e.trim()).filter(Boolean));function d(e){return`/search?q=${encodeURIComponent(`${t.kind}: ${t.annotationKey} == "${e}"`)}`}return(t,g)=>{let v=a(`router-link`);return u(),m(`tr`,null,[p(`th`,On,h(o.value),1),p(`td`,null,[e.format===`markdown`?(u(),m(`div`,{key:0,ref_key:`mdEl`,ref:r,innerHTML:e.value},null,8,kn)):e.format===`tag_list`?(u(),m(`div`,An,[(u(!0),m(_,null,f(l.value,e=>(u(),n(v,{key:e,class:`badge badge-info`,to:d(e)},{default:c(()=>[i(h(e),1)]),_:2},1032,[`to`]))),128))])):e.format===`tag_word`?(u(),n(v,{key:2,class:`badge badge-info`,to:d(e.value)},{default:c(()=>[i(h(e.value),1)]),_:1},8,[`to`])):(u(),m(_,{key:3},[s.value?(u(),m(`a`,{key:0,href:e.value,target:`_blank`},h(e.value),9,jn)):(u(),m(_,{key:1},[i(h(e.value),1)],64))],64))])])}}},Nn={class:`instance-title-text`},Pn={class:`instance-name`},Fn={class:`instance-kind-subtitle`},In={key:0,class:`generated-badge`},Ln={class:`generated-script`},Rn={key:0,class:`generated-time`},zn={key:0,class:`graph-container`},Bn=[`innerHTML`],Vn={key:1,class:`graph-too-large`},Hn=[`innerHTML`],Un={class:`documentation`},Wn=w({__name:`InstanceDetail`,props:{data:Object,kind:String,kindMeta:Object},setup(e){let o=e,d=O(``),v=O(null),x=null,S=O(null);V(S);let C=D(()=>o.data.metadata?.annotations||{}),w=D(()=>Object.keys(o.data.relations||{}).length>0),k=D(()=>{let e=o.data.references||{};return w.value||Object.keys(e).length>0}),M=D(()=>C.value[`generated/script`]),N=D(()=>C.value[`generated/at`]),P=D(()=>C.value[`architecture/description`]),F=[[`go`,`Go`],[`python`,`Python`],[`java`,`Java`],[`typescript`,`TypeScript`],[`javascript`,`JavaScript`],[`rust`,`Rust`],[`ruby`,`Ruby`],[`crystal`,`Crystal`],[`cpp`,`C++`],[`csharp`,`C#`],[`zig`,`Zig`],[`elixir`,`Elixir`]],I=D(()=>{let e=F.filter(([e])=>C.value[`architecture/${e}/modules`]).map(([e,t])=>({label:`${t} Module Structure`,dot:C.value[`architecture/${e}/modules`]}));return!e.length&&C.value[`architecture/modules`]&&e.push({label:`Module Structure`,dot:C.value[`architecture/modules`]}),e}),L=[`scc/language/`,`repository/artifacts/`,`link/`,`team/`,`jira/`,`generated/`,`license/`],z=new Set([`scc/languages`,`architecture/description`,`architecture/modules`,`workflow/platforms`,`workflow/types`,`agentic/tools`,`repository/artifacts`,`repository/git`,`repository/visibility`]),H=[/^scc\/estimated(Cost|ScheduleMonths|People)$/,/^activity\/(commits|contributors(\/.*)?|status|busFactor|createdAt)$/,/^scc\/language\/.+\/loc$/,/^repository\/$/,/^architecture\/.+\/modules$/],U=D(()=>Object.entries(C.value).filter(([e])=>!(z.has(e)||L.some(t=>e.startsWith(t))||H.some(t=>t.test(e)))));y(async()=>{if(w.value){let e=await T(o.kind,o.data.name);d.value=e?await A(e):``,await b(),W()}await b(),S.value&&B(S.value)}),s(P,async()=>{await b(),S.value&&B(S.value)}),l(()=>{x?.destroy()});function W(){if(!v.value)return;let e=v.value.querySelector(`svg`);e&&(x=j(e,v.value))}return(o,s)=>{let l=a(`router-link`);return u(),m(_,null,[p(`article`,null,[p(`header`,null,[p(`h2`,null,[e.kindMeta?(u(),m(`i`,{key:0,class:g(`iconoir-${e.kindMeta.icon} icon-${e.kindMeta.layer}`)},null,2)):E(``,!0),p(`div`,Nn,[p(`span`,Pn,h(e.data.name),1),p(`span`,Fn,h(e.kind),1)])]),M.value?(u(),m(`div`,In,[p(`span`,Ln,[s[0]||=i(` by `,-1),r(l,{to:{name:`instance`,params:{kind:`Import`,instance:M.value}}},{default:c(()=>[i(h(M.value),1)]),_:1},8,[`to`])]),N.value?(u(),m(`span`,Rn,` generated `+h(t(R)(N.value)),1)):E(``,!0)])):(u(),n(l,{key:1,class:`btn-header`,to:`/kinds/${e.kind}/instances/${e.data.name}/edit`,title:`Edit this resource`},{default:c(()=>[...s[1]||=[p(`i`,{class:`iconoir-edit-pencil`},null,-1),i(` Edit `,-1)]]),_:1},8,[`to`]))]),w.value&&d.value?(u(),m(`div`,zn,[p(`div`,{id:`graphviz`,ref_key:`graphEl`,ref:v,class:`canvas`,innerHTML:d.value},null,8,Bn)])):k.value&&!w.value?(u(),m(`p`,Vn,[...s[2]||=[p(`i`,{class:`iconoir-graph-up`},null,-1),i(` No outgoing dependencies — graph omitted `,-1)]])):E(``,!0),P.value?(u(),m(`div`,{key:2,ref_key:`descEl`,ref:S,innerHTML:P.value,class:g({footer:k.value})},null,10,Hn)):E(``,!0)]),(u(!0),m(_,null,f(I.value,e=>(u(),n(ce,{key:e.label,dot:e.dot,label:e.label},null,8,[`dot`,`label`]))),128)),r(_e,{data:e.data},null,8,[`data`]),p(`article`,Un,[s[4]||=p(`header`,null,[p(`h2`,null,`Details`)],-1),p(`table`,null,[s[3]||=p(`thead`,null,[p(`tr`,null,[p(`th`,{scope:`col`},`Name`),p(`th`,{scope:`col`},`Value`)])],-1),p(`tbody`,null,[r(we,{annotations:C.value},null,8,[`annotations`]),r(Ne,{annotations:C.value,kind:e.kind},null,8,[`annotations`,`kind`]),r(He,{annotations:C.value},null,8,[`annotations`]),r(Xe,{annotations:C.value},null,8,[`annotations`]),r(lt,{annotations:C.value,kind:e.kind},null,8,[`annotations`,`kind`]),r(Ft,{annotations:C.value,instance:e.data},null,8,[`annotations`,`instance`]),r(Rt,{annotations:C.value,kind:e.kind},null,8,[`annotations`,`kind`]),r(sn,{annotations:C.value,kind:e.kind},null,8,[`annotations`,`kind`]),r(pn,{annotations:C.value,kind:e.kind},null,8,[`annotations`,`kind`]),r(Cn,{annotations:C.value,kind:e.kind},null,8,[`annotations`,`kind`]),r(Dn,{annotations:C.value},null,8,[`annotations`]),(u(!0),m(_,null,f(U.value,([t,r])=>(u(),n(Mn,{key:t,"annotation-key":t,value:r,kind:e.kind},null,8,[`annotation-key`,`value`,`kind`]))),128))])])]),r(X,{data:e.data},null,8,[`data`])],64)}}},[[`__scopeId`,`data-v-5b464f89`]]),Gn={class:`view-header`},Kn=[`innerHTML`],qn={key:1,class:`view-query-display`},Jn={class:`query-item`},Yn={class:`query-value`},Xn={key:0,class:`search-error`},Zn={class:`search-error-message`},Qn={key:1,class:`view-results`},$n={class:`view-result-meta`},er={key:2},Q=100,tr=w({__name:`ViewDetail`,props:{data:Object,kindMeta:Object},setup(e){let t=e,n=D(()=>t.data.metadata?.annotations||{}),a=D(()=>n.value[`view/query`]),o=D(()=>n.value[`architecture/description`]),c=D(()=>n.value[`view/type`]||`list:name+kind`),l=D(()=>c.value===`list:name+kind`),d=D(()=>(n.value[`view/fields`]||``).split(`,`).map(e=>e.trim()).filter(Boolean)),f=D(()=>(n.value[`view/sort`]||``).split(`,`).map(e=>e.trim()).filter(Boolean)),v=O(null);V(v);let y=O([]),b=O(0),x=O(0),C=O(!1),w=O(!1),T=O(null),k=0;function A(e,t){return t.length?[...e].sort((e,n)=>{for(let r of t){let t=r.startsWith(`-`),i=t?r.slice(1):r,a=e.annotations?.[i]??``,o=n.annotations?.[i]??``,s=String(a).localeCompare(String(o),void 0,{numeric:!0});if(s!==0)return t?-s:s}return 0}):e}let j=D(()=>A(y.value,f.value));async function M(){if(a.value){C.value=!0,T.value=null,k=0;try{let e=d.value.length?`annotations`:`brief`,t=await S(a.value,{limit:Q,offset:0,output:e});y.value=t.instances||[],b.value=t.total||0,x.value=t.query_time_ms||0,k=y.value.length}catch(e){T.value=e.message}finally{C.value=!1}}}async function N(){if(!(w.value||k>=b.value||!a.value)){w.value=!0;try{let e=d.value.length?`annotations`:`brief`,t=(await S(a.value,{limit:Q,offset:k,output:e})).instances||[];y.value=[...y.value,...t],k+=t.length}catch{}w.value=!1}}return s(()=>t.data,M,{immediate:!0}),(t,n)=>(u(),m(_,null,[p(`article`,Gn,[p(`header`,null,[p(`h2`,null,[e.kindMeta?(u(),m(`i`,{key:0,class:g(`iconoir-${e.kindMeta.icon} icon-${e.kindMeta.layer}`)},null,2)):E(``,!0),i(` `+h(e.data.name),1)])]),o.value?(u(),m(`div`,{key:0,ref_key:`descEl`,ref:v,class:`view-description`,innerHTML:o.value},null,8,Kn)):E(``,!0),a.value?(u(),m(`div`,qn,[p(`p`,Jn,[n[0]||=p(`span`,{class:`label`},`Query:`,-1),p(`code`,Yn,h(a.value),1)])])):E(``,!0)]),T.value?(u(),m(`div`,Xn,[n[1]||=p(`div`,{class:`search-error-header`},[p(`i`,{class:`iconoir-warning-triangle`}),i(` Query Error`)],-1),p(`div`,Zn,h(T.value),1)])):E(``,!0),!C.value&&a.value&&!T.value?(u(),m(`article`,Qn,[p(`header`,null,[n[2]||=p(`h3`,null,`Results`,-1),p(`span`,$n,h(b.value)+` `+h(b.value===1?`item`:`items`)+` in `+h(x.value)+` ms`,1)]),r(z,{instances:j.value,"omit-kind":!l.value,fields:d.value.length?d.value:null,total:b.value,"loading-more":w.value,onLoadMore:N},null,8,[`instances`,`omit-kind`,`fields`,`total`,`loading-more`])])):E(``,!0),a.value?E(``,!0):(u(),m(`article`,er,[...n[3]||=[p(`p`,{class:`view-empty-state`},[p(`em`,null,`No query defined`)],-1)]]))],64))}},[[`__scopeId`,`data-v-f921d1a2`]]),nr=[`innerHTML`],rr={key:3,class:`analysis-table-wrapper`},ir={key:4,class:`analysis-list`},ar={key:5,class:`code`},or={components:{RelationsGrid:X,AnalysisSection:w({__name:`AnalysisSection`,props:{section:Object},setup(e){let t={error:`xmark-circle`,warning:`warning-triangle`,info:`info-circle`};return(n,r)=>e.section.type===`heading`?(u(),m(`div`,{key:0,class:g([`analysis-heading`,`level-`+e.section.level])},h(e.section.text),3)):e.section.type===`text`?(u(),m(`div`,{key:1,class:`analysis-text`,innerHTML:e.section.content},null,8,nr)):e.section.type===`message`?(u(),m(`div`,{key:2,class:g([`analysis-message`,`message-`+e.section.level])},[p(`i`,{class:g(`iconoir-${t[e.section.level]||`info-circle`}`)},null,2),i(` `+h(e.section.message),1)],2)):e.section.type===`table`?(u(),m(`div`,rr,[p(`table`,null,[p(`thead`,null,[p(`tr`,null,[(u(!0),m(_,null,f(e.section.headers,e=>(u(),m(`th`,{key:e},h(e),1))),128))])]),p(`tbody`,null,[(u(!0),m(_,null,f(e.section.rows,(e,t)=>(u(),m(`tr`,{key:t},[(u(!0),m(_,null,f(e,(e,t)=>(u(),m(`td`,{key:t},h(e),1))),128))]))),128))])])])):e.section.type===`list`?(u(),m(`ul`,ir,[(u(!0),m(_,null,f(e.section.items,(e,t)=>(u(),m(`li`,{key:t},h(e),1))),128))])):e.section.type===`code`?(u(),m(`pre`,ar,[p(`code`,{class:g(e.section.lang?`language-`+e.section.lang:``)},h(e.section.content),3)])):E(``,!0)}},[[`__scopeId`,`data-v-4d3d107a`]])},props:{data:Object,kindMeta:Object},setup(e){let t=D(()=>e.data.metadata?.annotations||{}),n=D(()=>t.value[`architecture/description`]),r=D(()=>t.value[`analysis/script`]),i=D(()=>t.value[`analysis/handler`]||`ruby`),a=D(()=>t.value[`analysis/timeout`]||`30s`),o=O(null);V(o);let c=O(null),l=O(!1);async function u(){l.value=!0,c.value=await C(e.data.name),l.value=!1}function d(){r.value&&navigator.clipboard.writeText(r.value)}function f(e){let t=[],n={title:null,sections:[]};for(let r of e)r.type===`heading`&&r.level===0?((n.title||n.sections.length)&&t.push(n),n={title:r.text,sections:[]}):n.sections.push(r);return(n.title||n.sections.length)&&t.push(n),t}let p=D(()=>c.value?.sections?.length?f(c.value.sections):[]),m=D(()=>p.value.some(e=>e.title)),h=O(null);return s(c,async()=>{await b(),h.value&&k(h.value)}),y(()=>{r.value&&u()}),{annotations:t,description:n,analysisScript:r,handler:i,timeout:a,descEl:o,rootEl:h,result:c,executing:l,sectionGroups:p,hasTitledGroups:m,run:u,copyScript:d}}},sr={class:`analysis-header`},cr={class:`instance-title-text`},lr={class:`instance-name`},ur={class:`header-actions`},dr=[`innerHTML`],fr={ref:`rootEl`,class:`analysis-execution`},pr={class:`analysis-execute-controls`},mr=[`disabled`],hr={class:`analysis-result-header`},gr={class:`status-indicator`},_r={key:0,class:`duration`},vr={key:0,class:`analysis-error-details`},yr={key:0},br={class:`code`},xr={key:1,class:`analysis-output`},Sr={key:0},Cr=[`open`],wr={key:1,class:`analysis-results-placeholder`},Tr={class:`analysis-details-section`},Er={class:`analysis-details-content`},Dr={class:`analysis-metadata`},Or={class:`analysis-meta-item`},kr={class:`analysis-meta-item`},Ar={class:`analysis-script`},jr={class:`analysis-script-header`},Mr={class:`code`},Nr={class:`language-ruby`},Pr={key:1};function Fr(e,t,o,s,l,d){let v=a(`router-link`),y=a(`AnalysisSection`),b=a(`RelationsGrid`);return u(),m(_,null,[p(`article`,sr,[p(`header`,null,[p(`h2`,null,[o.kindMeta?(u(),m(`i`,{key:0,class:g(`iconoir-${o.kindMeta.icon} icon-${o.kindMeta.layer}`)},null,2)):E(``,!0),p(`div`,cr,[p(`span`,lr,h(o.data.name),1),t[2]||=p(`span`,{class:`instance-kind-subtitle`},`Analysis`,-1)])]),p(`div`,ur,[r(v,{class:`btn-header`,to:`/kinds/Analysis/instances/${o.data.name}/edit`,title:`Edit this resource`},{default:c(()=>[...t[3]||=[p(`i`,{class:`iconoir-edit-pencil`},null,-1),i(` Edit `,-1)]]),_:1},8,[`to`])])]),s.description?(u(),m(`div`,{key:0,ref:`descEl`,class:`analysis-description`,innerHTML:s.description},null,8,dr)):E(``,!0)]),s.analysisScript?(u(),m(_,{key:0},[p(`article`,fr,[p(`header`,null,[t[4]||=p(`h3`,null,[p(`i`,{class:`iconoir-play`}),i(` Results`)],-1),p(`div`,pr,[p(`button`,{class:`secondary outline`,onClick:t[0]||=(...e)=>s.run&&s.run(...e),disabled:s.executing},[p(`i`,{class:g([`iconoir-refresh`,{spinning:s.executing}])},null,2),i(` `+h(s.executing?`Running...`:`Re-run`),1)],8,mr)])]),s.result?(u(),m(`div`,{key:0,class:g([`analysis-result-container`,s.result.success?`success`:`failed`])},[p(`div`,hr,[p(`span`,gr,[s.result.success?(u(),m(_,{key:0},[s.result.has_findings?(u(),m(_,{key:0},[t[5]||=p(`i`,{class:`iconoir-warning-triangle status-findings`},null,-1),t[6]||=i(` Completed with findings `,-1)],64)):(u(),m(_,{key:1},[t[7]||=p(`i`,{class:`iconoir-check-circle status-success`},null,-1),t[8]||=i(` Completed successfully `,-1)],64))],64)):(u(),m(_,{key:1},[t[9]||=p(`i`,{class:`iconoir-xmark-circle status-error`},null,-1),t[10]||=i(` Failed `,-1)],64))]),s.result.duration?(u(),m(`span`,_r,[t[11]||=p(`i`,{class:`iconoir-timer`},null,-1),i(` `+h(s.result.duration.toFixed(2))+`s `,1)])):E(``,!0)]),s.result.success?E(``,!0):(u(),m(`div`,vr,[t[13]||=p(`strong`,null,`Error:`,-1),i(` `+h(s.result.error)+` `,1),s.result.error_backtrace?.length?(u(),m(`details`,yr,[t[12]||=p(`summary`,null,`Show backtrace`,-1),p(`pre`,br,h(s.result.error_backtrace.join(`
2
+ `)),1)])):E(``,!0)])),s.result.sections?.length?(u(),m(`div`,xr,[s.hasTitledGroups?(u(!0),m(_,{key:1},f(s.sectionGroups,(e,t)=>(u(),m(_,{key:t},[e.title?(u(),m(_,{key:1},[t>0&&s.sectionGroups[t-1]?.title?(u(),m(`hr`,Sr)):E(``,!0),p(`details`,{open:t===0||t===1&&!s.sectionGroups[0].title},[p(`summary`,null,h(e.title),1),(u(!0),m(_,null,f(e.sections,(e,r)=>(u(),n(y,{key:`g${t}-${r}`,section:e},null,8,[`section`]))),128))],8,Cr)],64)):(u(!0),m(_,{key:0},f(e.sections,(e,t)=>(u(),n(y,{key:`u${t}`,section:e},null,8,[`section`]))),128))],64))),128)):(u(!0),m(_,{key:0},f(s.sectionGroups[0]?.sections,(e,t)=>(u(),n(y,{key:t,section:e},null,8,[`section`]))),128))])):E(``,!0)],2)):s.executing?(u(),m(`div`,wr,` Running analysis... `)):E(``,!0)],512),p(`details`,Tr,[t[18]||=p(`summary`,null,[p(`i`,{class:`iconoir-code-brackets-square`}),i(` Script Details `)],-1),p(`div`,Er,[p(`div`,Dr,[p(`span`,Or,[t[14]||=p(`i`,{class:`iconoir-code`},null,-1),i(` `+h(s.handler),1)]),p(`span`,kr,[t[15]||=p(`i`,{class:`iconoir-timer`},null,-1),i(` `+h(s.timeout),1)])]),p(`div`,Ar,[p(`div`,jr,[t[17]||=p(`strong`,null,`Script`,-1),p(`button`,{class:`copy-button`,onClick:t[1]||=(...e)=>s.copyScript&&s.copyScript(...e),title:`Copy script to clipboard`},[...t[16]||=[p(`i`,{class:`iconoir-copy`},null,-1)]])]),p(`pre`,Mr,[p(`code`,Nr,h(s.analysisScript),1)])])])])],64)):(u(),m(`article`,Pr,[...t[19]||=[p(`p`,{class:`analysis-empty-state`},[p(`i`,{class:`iconoir-warning-triangle`}),i(` No script defined for this analysis. `)],-1)]])),r(b,{data:o.data},null,8,[`data`])],64)}var Ir=w(or,[[`render`,Fr],[`__scopeId`,`data-v-19706829`]]),Lr={class:`import-header`},Rr={class:`instance-title-text`},zr={class:`instance-name`},$={class:`header-actions`},Br={key:0,class:`badge badge-primary`},Vr={key:1,class:`badge badge-warning`},Hr=[`innerHTML`],Ur={key:0,class:`graph-container`},Wr=[`innerHTML`],Gr={key:1,class:`graph-too-large`},Kr={key:2,class:`graph-too-large`},qr={class:`import-configuration`},Jr={class:`import-metadata`},Yr={key:0,class:`import-meta-item`},Xr={key:1,class:`import-meta-item`},Zr={key:2,class:`import-meta-item`},Qr={key:3,class:`import-meta-item status-enabled`},$r={key:4,class:`import-meta-item status-disabled`},ei={key:0,class:`import-output-path`},ti={key:1,class:`import-config-section`,open:``},ni={class:`import-config-table`},ri={scope:`row`},ii={key:0},ai=w({__name:`ImportDetail`,props:{data:Object,kindMeta:Object},setup(e){let t=e,n=O(``),o=O(null),s=null,d=O(null);V(d);let v=D(()=>t.data.metadata?.annotations||{}),x=D(()=>v.value[`import/handler`]),S=D(()=>v.value[`import/enabled`]!==`false`),C=D(()=>v.value[`import/cacheTime`]),w=D(()=>v.value[`import/priority`]),k=D(()=>v.value[`import/outputPath`]),M=D(()=>v.value[`architecture/description`]),N=D(()=>Object.entries(v.value).filter(([e])=>e.startsWith(`import/config/`)).map(([e,t])=>[e.replace(`import/config/`,``),t])),P=D(()=>{let e=t.data.relations||{};return Object.values(e).reduce((e,t)=>typeof t==`object`?e+Object.values(t).reduce((e,t)=>e+(Array.isArray(t)?t.length:0),0):e,0)}),F=D(()=>Object.keys(t.data.relations||{}).length>0),I=D(()=>{let e=t.data.references||{};return F.value||Object.keys(e).length>0}),L=D(()=>P.value>=50);y(async()=>{if(F.value&&!L.value){let e=await T(`Import`,t.data.name);n.value=e?await A(e):``,await b(),R()}}),l(()=>{s?.destroy()});function R(){if(!o.value)return;let e=o.value.querySelector(`svg`);e&&(s=j(e,o.value))}function z(e){return typeof e==`string`?e.startsWith(`http`)||e.startsWith(`git@`)||e.startsWith(`file://`):!1}return(t,s)=>{let l=a(`router-link`);return u(),m(_,null,[p(`article`,Lr,[p(`header`,null,[p(`h2`,null,[e.kindMeta?(u(),m(`i`,{key:0,class:g(`iconoir-${e.kindMeta.icon} icon-${e.kindMeta.layer}`)},null,2)):E(``,!0),p(`div`,Rr,[p(`span`,zr,h(e.data.name),1),s[0]||=p(`span`,{class:`instance-kind-subtitle`},`Import`,-1)])]),p(`div`,$,[x.value?(u(),m(`span`,Br,h(x.value),1)):E(``,!0),S.value?E(``,!0):(u(),m(`span`,Vr,`Disabled`)),r(l,{class:`btn-header`,to:`/kinds/Import/instances/${e.data.name}/edit`,title:`Edit this resource`},{default:c(()=>[...s[1]||=[p(`i`,{class:`iconoir-edit-pencil`},null,-1),i(` Edit `,-1)]]),_:1},8,[`to`])])]),M.value?(u(),m(`div`,{key:0,ref_key:`descEl`,ref:d,class:`import-description`,innerHTML:M.value},null,8,Hr)):E(``,!0),I.value?(u(),m(_,{key:1},[F.value&&!L.value&&n.value?(u(),m(`div`,Ur,[p(`div`,{id:`graphviz`,ref_key:`graphEl`,ref:o,class:`canvas`,innerHTML:n.value},null,8,Wr)])):L.value?(u(),m(`p`,Gr,[s[2]||=p(`i`,{class:`iconoir-warning-triangle`},null,-1),i(` Graph too large to display (`+h(P.value)+` relations) `,1)])):F.value?E(``,!0):(u(),m(`p`,Kr,[...s[3]||=[p(`i`,{class:`iconoir-graph-up`},null,-1),i(` No outgoing dependencies — graph omitted `,-1)]]))],64)):E(``,!0)]),p(`article`,qr,[s[11]||=p(`header`,null,[p(`h3`,null,[p(`i`,{class:`iconoir-settings`}),i(` Configuration`)])],-1),p(`div`,Jr,[x.value?(u(),m(`span`,Yr,[s[4]||=p(`i`,{class:`iconoir-code`},null,-1),i(` `+h(x.value),1)])):E(``,!0),C.value?(u(),m(`span`,Xr,[s[5]||=p(`i`,{class:`iconoir-timer`},null,-1),i(` `+h(C.value),1)])):E(``,!0),w.value?(u(),m(`span`,Zr,[s[6]||=p(`i`,{class:`iconoir-sort-down`},null,-1),i(` Priority: `+h(w.value),1)])):E(``,!0),S.value?(u(),m(`span`,Qr,[...s[7]||=[p(`i`,{class:`iconoir-check-circle`},null,-1),i(` Enabled `,-1)]])):(u(),m(`span`,$r,[...s[8]||=[p(`i`,{class:`iconoir-xmark-circle`},null,-1),i(` Disabled `,-1)]]))]),k.value?(u(),m(`div`,ei,[s[9]||=p(`strong`,null,`Output:`,-1),p(`code`,null,h(k.value),1)])):E(``,!0),N.value.length?(u(),m(`details`,ti,[s[10]||=p(`summary`,null,[p(`i`,{class:`iconoir-list`}),i(` Handler Settings `)],-1),p(`table`,ni,[p(`tbody`,null,[(u(!0),m(_,null,f(N.value,([e,t])=>(u(),m(`tr`,{key:e},[p(`th`,ri,h(e),1),p(`td`,null,[z(t)?(u(),m(`code`,ii,h(t),1)):(u(),m(_,{key:1},[i(h(t),1)],64))])]))),128))])])])):E(``,!0)]),r(X,{data:e.data},null,8,[`data`])],64)}}},[[`__scopeId`,`data-v-ceaaa6c2`]]),oi={key:0},si={key:1},ci={__name:`InstanceRouter`,props:{kind:String,instance:String},setup(e){let t=e,r=d(`kinds`),a=O(null),o=O(!0),c=O(null);async function l(){o.value=!0,c.value=null;try{a.value=await x(t.kind,t.instance)}catch(e){c.value=e.message}finally{o.value=!1}}s(()=>[t.kind,t.instance],l,{immediate:!0});function f(){return r.value?r.value.kinds.find(e=>e.kind===t.kind):null}return(t,r)=>o.value?(u(),m(`article`,oi,[...r[0]||=[p(`p`,null,`Loading...`,-1)]])):c.value?(u(),m(`article`,si,[r[4]||=p(`header`,null,[p(`h2`,null,`Not Found`)],-1),p(`p`,null,[r[1]||=i(`Instance `,-1),p(`strong`,null,h(e.instance),1),r[2]||=i(` of kind `,-1),p(`strong`,null,h(e.kind),1),r[3]||=i(` was not found.`,-1)])])):a.value?(u(),m(_,{key:2},[e.kind===`View`?(u(),n(tr,{key:0,data:a.value,"kind-meta":f()},null,8,[`data`,`kind-meta`])):e.kind===`Analysis`?(u(),n(Ir,{key:1,data:a.value,"kind-meta":f()},null,8,[`data`,`kind-meta`])):e.kind===`Import`?(u(),n(ai,{key:2,data:a.value,"kind-meta":f()},null,8,[`data`,`kind-meta`])):(u(),n(Wn,{key:3,data:a.value,kind:e.kind,"kind-meta":f()},null,8,[`data`,`kind`,`kind-meta`]))],64)):E(``,!0)}};export{ci as default};
@@ -1 +1 @@
1
- import{D as e,E as t,F as n,I as r,L as i,N as a,O as o,S as s,T as c,U as l,V as u,d,w as f,z as p}from"./index-T1YqCmM1.js";import{t as m}from"./ResourceList-B5w9yiyS.js";var h={key:0},g={class:`header-actions`},_={key:1},v=100,y={__name:`KindList`,props:{kind:String},setup(y){let b=y,x=o(`kinds`),S=p([]),C=p(0),w=p(!0),T=p(!1),E=p(null),D=0;async function O(){w.value=!0,D=0;try{let e=await d(b.kind,{limit:v,offset:0,output:`brief`});S.value=e.instances||[],C.value=e.total||0,D=S.value.length}catch{S.value=[],C.value=0}x.value&&(E.value=x.value.kinds.find(e=>e.kind===b.kind)),w.value=!1}async function k(){if(!(T.value||D>=C.value)){T.value=!0;try{let e=(await d(b.kind,{limit:v,offset:D,output:`brief`})).instances||[];S.value=[...S.value,...e],D+=e.length}catch{}T.value=!1}}r(()=>b.kind,O,{immediate:!0});function A(e){return e.replace(/([a-z])([A-Z])/g,`$1_$2`).toLowerCase()}return(r,o)=>{let d=n(`router-link`);return w.value?(a(),c(`article`,_,[...o[1]||=[s(`p`,null,`Loading...`,-1)]])):(a(),c(`article`,h,[s(`header`,null,[s(`h2`,null,[E.value?(a(),c(`i`,{key:0,class:u(`iconoir-${E.value.icon} icon-${E.value.layer}`)},null,2)):f(``,!0),t(` `+l(y.kind),1)]),s(`div`,g,[e(d,{class:`kind-help`,to:{name:`doc`,params:{filename:`resources/`+A(y.kind)}},title:`Documentation`},{default:i(()=>[...o[0]||=[s(`i`,{class:`iconoir-help-circle`},null,-1)]]),_:1},8,[`to`])])]),e(m,{instances:S.value,"omit-kind":!0,total:C.value,"loading-more":T.value,onLoadMore:k},null,8,[`instances`,`total`,`loading-more`])]))}}};export{y as default};
1
+ import{D as e,E as t,F as n,I as r,L as i,N as a,O as o,S as s,T as c,U as l,V as u,d,w as f,z as p}from"./index-jMbNuijl.js";import{t as m}from"./ResourceList-iVEBqeMm.js";var h={key:0},g={class:`header-actions`},_={key:1},v=100,y={__name:`KindList`,props:{kind:String},setup(y){let b=y,x=o(`kinds`),S=p([]),C=p(0),w=p(!0),T=p(!1),E=p(null),D=0;async function O(){w.value=!0,D=0;try{let e=await d(b.kind,{limit:v,offset:0,output:`brief`});S.value=e.instances||[],C.value=e.total||0,D=S.value.length}catch{S.value=[],C.value=0}x.value&&(E.value=x.value.kinds.find(e=>e.kind===b.kind)),w.value=!1}async function k(){if(!(T.value||D>=C.value)){T.value=!0;try{let e=(await d(b.kind,{limit:v,offset:D,output:`brief`})).instances||[];S.value=[...S.value,...e],D+=e.length}catch{}T.value=!1}}r(()=>b.kind,O,{immediate:!0});function A(e){return e.replace(/([a-z])([A-Z])/g,`$1_$2`).toLowerCase()}return(r,o)=>{let d=n(`router-link`);return w.value?(a(),c(`article`,_,[...o[1]||=[s(`p`,null,`Loading...`,-1)]])):(a(),c(`article`,h,[s(`header`,null,[s(`h2`,null,[E.value?(a(),c(`i`,{key:0,class:u(`iconoir-${E.value.icon} icon-${E.value.layer}`)},null,2)):f(``,!0),t(` `+l(y.kind),1)]),s(`div`,g,[e(d,{class:`kind-help`,to:{name:`doc`,params:{filename:`resources/`+A(y.kind)}},title:`Documentation`},{default:i(()=>[...o[0]||=[s(`i`,{class:`iconoir-help-circle`},null,-1)]]),_:1},8,[`to`])])]),e(m,{instances:S.value,"omit-kind":!0,total:C.value,"loading-more":T.value,onLoadMore:k},null,8,[`instances`,`total`,`loading-more`])]))}}};export{y as default};
@@ -1 +1 @@
1
- import{A as e,B as t,D as n,E as r,F as i,I as a,L as o,N as s,P as c,S as l,T as u,U as d,V as f,b as p,j as m,t as h,w as g,x as _,z as v}from"./index-T1YqCmM1.js";function y(e){return e.toString().replace(/\B(?=(\d{3})+(?!\d))/g,`,`)}function b(e){let t=(Math.round(e*100)/100).toFixed(2).split(`.`);return t[0]=t[0].replace(/\B(?=(\d{3})+(?!\d))/g,`,`),`\u20AC${t.join(`.`)}`}var x={cocomoSalary:15e4,targetSalary:8e4,aiCostMultiplier:3,aiScheduleMultiplier:2.5,aiTeamMultiplier:3};function S(e,t){if(t==null)return null;let n=x.targetSalary/x.cocomoSalary,r=parseFloat(t);switch(e){case`cost`:return r*n/x.aiCostMultiplier;case`schedule`:return r/x.aiScheduleMultiplier;case`team`:return Math.ceil(r/x.aiTeamMultiplier);default:return null}}function C(e){return e.replace(/\.git$/,``).replace(`:`,`/`).replace(`git@`,`https://`)}function w(e){if(!e)return null;let t=new Date(e),n=Math.floor((Date.now()-t.getTime())/1e3);if(n<10)return`just now`;let r=[[60,`second`],[60,`minute`],[24,`hour`],[7,`day`],[4,`week`],[12,`month`],[1/0,`year`]],i=n;for(let[e,t]of r){if(i<e)return`${i} ${t}${i===1?``:`s`} ago`;i=Math.floor(i/e)}return`${i} years ago`}function T(e){return/docs\.google\.com\/(document|spreadsheets|presentation)/.test(e)?`iconoir-google-docs`:/github\.com/.test(e)?`iconoir-github`:/gitlab/.test(e)?`iconoir-git-fork`:/confluence\.|atlassian\.net/.test(e)?`iconoir-page-edit`:/jira\.|atlassian\.net.*jira/.test(e)?`iconoir-list`:/grafana/.test(e)?`iconoir-graph-up`:/prometheus/.test(e)?`iconoir-database`:/api\./.test(e)?`iconoir-code`:/docs\./.test(e)?`iconoir-book`:`iconoir-internet`}function E(e){return/docs\.google\.com/.test(e)?`Documentation`:/github\.com|gitlab/.test(e)?`Code Repository`:/confluence\.|atlassian\.net/.test(e)?`Documentation`:/jira\.|atlassian\.net.*jira/.test(e)?`Project Management`:/grafana|prometheus/.test(e)?`Monitoring`:/api\./.test(e)?`API`:/docs\./.test(e)?`Documentation`:`Other`}var D={key:0,class:`empty-state`},O={key:1,class:`resource-list-table`},k={key:0,class:`col-kind`},A={class:`col-name`},j={key:0,class:`col-kind`},M={class:`instance-kind`},N=[`title`],P={key:1,class:`empty-value`},F={key:2,class:`search-instance-list`},I={class:`instance-main`},L={key:0,class:`instance-kind`},R={key:0},z=h({__name:`ResourceList`,props:{instances:{type:Array,required:!0},omitKind:{type:Boolean,default:!1},fields:{type:Array,default:null},total:{type:Number,default:0},loadingMore:{type:Boolean,default:!1}},emits:[`load-more`],setup(h,{emit:y}){let b=h,x=y,S=v(null),C=null,T=_(()=>b.total>b.instances.length);function E(){C&&C.disconnect(),S.value&&(C=new IntersectionObserver(e=>{e[0].isIntersecting&&T.value&&!b.loadingMore&&x(`load-more`)},{rootMargin:`200px`}),C.observe(S.value))}m(E),a(S,E),e(()=>{C&&C.disconnect()});let z=_(()=>b.fields&&b.fields.length>0),B=_(()=>b.fields?b.fields.map(e=>{let t=e.split(`/`),n;return n=t.length>=2?`${t[t.length-2]} ${t[t.length-1]}`:t[t.length-1],n=n.replace(/([a-z])([A-Z])/g,`$1 $2`).replace(/^./,e=>e.toUpperCase()),{key:e,title:n}}):[]);function V(e,t){return(e.annotations||{})[t]??null}function H(e){return/at$/i.test(e)||/date$/i.test(e)||/time$/i.test(e)}return(e,a)=>{let m=i(`router-link`);return s(),u(p,null,[h.instances.length?z.value?(s(),u(`table`,O,[l(`thead`,null,[l(`tr`,null,[a[1]||=l(`th`,{class:`col-name`},`Name`,-1),h.omitKind?g(``,!0):(s(),u(`th`,k,`Kind`)),(s(!0),u(p,null,c(B.value,e=>(s(),u(`th`,{key:e.key,class:`col-annotation`},d(e.title),1))),128))])]),l(`tbody`,null,[(s(!0),u(p,null,c(h.instances,e=>(s(),u(`tr`,{key:e.name,class:`resource-list-row`},[l(`td`,A,[n(m,{class:`instance-name`,to:{name:`instance`,params:{kind:e.kind,instance:e.name}}},{default:o(()=>[e.icon?(s(),u(`i`,{key:0,class:f(`iconoir-${e.icon} icon-${e.layer}`)},null,2)):g(``,!0),r(` `+d(e.name),1)]),_:2},1032,[`to`])]),h.omitKind?g(``,!0):(s(),u(`td`,j,[l(`span`,M,d(e.kind),1)])),(s(!0),u(p,null,c(B.value,n=>(s(),u(`td`,{key:n.key,class:`col-annotation`},[V(e,n.key)==null?(s(),u(`span`,P,`—`)):(s(),u(p,{key:0},[H(n.key)?(s(),u(`span`,{key:0,title:V(e,n.key)},d(t(w)(V(e,n.key))),9,N)):(s(),u(p,{key:1},[r(d(V(e,n.key)),1)],64))],64))]))),128))]))),128))])])):(s(),u(`ul`,F,[(s(!0),u(p,null,c(h.instances,e=>(s(),u(`li`,{key:e.name,class:`search-instance-item`},[l(`div`,I,[n(m,{class:`instance-name`,to:{name:`instance`,params:{kind:e.kind,instance:e.name}}},{default:o(()=>[e.icon?(s(),u(`i`,{key:0,class:f(`iconoir-${e.icon} icon-${e.layer}`)},null,2)):g(``,!0),r(` `+d(e.name),1)]),_:2},1032,[`to`]),h.omitKind?g(``,!0):(s(),u(`span`,L,d(e.kind),1))])]))),128))])):(s(),u(`p`,D,[...a[0]||=[l(`i`,null,`No resources found`,-1)]])),T.value?(s(),u(`div`,{key:3,ref_key:`sentinel`,ref:S,class:`load-more-sentinel`},[h.loadingMore?(s(),u(`small`,R,`Loading more…`)):g(``,!0)],512)):g(``,!0)],64)}}},[[`__scopeId`,`data-v-baa693c5`]]);export{T as a,b as c,C as i,S as n,y as o,E as r,w as s,z as t};
1
+ import{A as e,B as t,D as n,E as r,F as i,I as a,L as o,N as s,P as c,S as l,T as u,U as d,V as f,b as p,j as m,t as h,w as g,x as _,z as v}from"./index-jMbNuijl.js";function y(e){return e.toString().replace(/\B(?=(\d{3})+(?!\d))/g,`,`)}function b(e){let t=(Math.round(e*100)/100).toFixed(2).split(`.`);return t[0]=t[0].replace(/\B(?=(\d{3})+(?!\d))/g,`,`),`\u20AC${t.join(`.`)}`}var x={cocomoSalary:15e4,targetSalary:8e4,aiCostMultiplier:3,aiScheduleMultiplier:2.5,aiTeamMultiplier:3};function S(e,t){if(t==null)return null;let n=x.targetSalary/x.cocomoSalary,r=parseFloat(t);switch(e){case`cost`:return r*n/x.aiCostMultiplier;case`schedule`:return r/x.aiScheduleMultiplier;case`team`:return Math.ceil(r/x.aiTeamMultiplier);default:return null}}function C(e){return e.replace(/\.git$/,``).replace(`:`,`/`).replace(`git@`,`https://`)}function w(e){if(!e)return null;let t=new Date(e),n=Math.floor((Date.now()-t.getTime())/1e3);if(n<10)return`just now`;let r=[[60,`second`],[60,`minute`],[24,`hour`],[7,`day`],[4,`week`],[12,`month`],[1/0,`year`]],i=n;for(let[e,t]of r){if(i<e)return`${i} ${t}${i===1?``:`s`} ago`;i=Math.floor(i/e)}return`${i} years ago`}function T(e){return/docs\.google\.com\/(document|spreadsheets|presentation)/.test(e)?`iconoir-google-docs`:/github\.com/.test(e)?`iconoir-github`:/gitlab/.test(e)?`iconoir-git-fork`:/confluence\.|atlassian\.net/.test(e)?`iconoir-page-edit`:/jira\.|atlassian\.net.*jira/.test(e)?`iconoir-list`:/grafana/.test(e)?`iconoir-graph-up`:/prometheus/.test(e)?`iconoir-database`:/api\./.test(e)?`iconoir-code`:/docs\./.test(e)?`iconoir-book`:`iconoir-internet`}function E(e){return/docs\.google\.com/.test(e)?`Documentation`:/github\.com|gitlab/.test(e)?`Code Repository`:/confluence\.|atlassian\.net/.test(e)?`Documentation`:/jira\.|atlassian\.net.*jira/.test(e)?`Project Management`:/grafana|prometheus/.test(e)?`Monitoring`:/api\./.test(e)?`API`:/docs\./.test(e)?`Documentation`:`Other`}var D={key:0,class:`empty-state`},O={key:1,class:`resource-list-table`},k={key:0,class:`col-kind`},A={class:`col-name`},j={key:0,class:`col-kind`},M={class:`instance-kind`},N=[`title`],P={key:1,class:`empty-value`},F={key:2,class:`search-instance-list`},I={class:`instance-main`},L={key:0,class:`instance-kind`},R={key:0},z=h({__name:`ResourceList`,props:{instances:{type:Array,required:!0},omitKind:{type:Boolean,default:!1},fields:{type:Array,default:null},total:{type:Number,default:0},loadingMore:{type:Boolean,default:!1}},emits:[`load-more`],setup(h,{emit:y}){let b=h,x=y,S=v(null),C=null,T=_(()=>b.total>b.instances.length);function E(){C&&C.disconnect(),S.value&&(C=new IntersectionObserver(e=>{e[0].isIntersecting&&T.value&&!b.loadingMore&&x(`load-more`)},{rootMargin:`200px`}),C.observe(S.value))}m(E),a(S,E),e(()=>{C&&C.disconnect()});let z=_(()=>b.fields&&b.fields.length>0),B=_(()=>b.fields?b.fields.map(e=>{let t=e.split(`/`),n;return n=t.length>=2?`${t[t.length-2]} ${t[t.length-1]}`:t[t.length-1],n=n.replace(/([a-z])([A-Z])/g,`$1 $2`).replace(/^./,e=>e.toUpperCase()),{key:e,title:n}}):[]);function V(e,t){return(e.annotations||{})[t]??null}function H(e){return/at$/i.test(e)||/date$/i.test(e)||/time$/i.test(e)}return(e,a)=>{let m=i(`router-link`);return s(),u(p,null,[h.instances.length?z.value?(s(),u(`table`,O,[l(`thead`,null,[l(`tr`,null,[a[1]||=l(`th`,{class:`col-name`},`Name`,-1),h.omitKind?g(``,!0):(s(),u(`th`,k,`Kind`)),(s(!0),u(p,null,c(B.value,e=>(s(),u(`th`,{key:e.key,class:`col-annotation`},d(e.title),1))),128))])]),l(`tbody`,null,[(s(!0),u(p,null,c(h.instances,e=>(s(),u(`tr`,{key:e.name,class:`resource-list-row`},[l(`td`,A,[n(m,{class:`instance-name`,to:{name:`instance`,params:{kind:e.kind,instance:e.name}}},{default:o(()=>[e.icon?(s(),u(`i`,{key:0,class:f(`iconoir-${e.icon} icon-${e.layer}`)},null,2)):g(``,!0),r(` `+d(e.name),1)]),_:2},1032,[`to`])]),h.omitKind?g(``,!0):(s(),u(`td`,j,[l(`span`,M,d(e.kind),1)])),(s(!0),u(p,null,c(B.value,n=>(s(),u(`td`,{key:n.key,class:`col-annotation`},[V(e,n.key)==null?(s(),u(`span`,P,`—`)):(s(),u(p,{key:0},[H(n.key)?(s(),u(`span`,{key:0,title:V(e,n.key)},d(t(w)(V(e,n.key))),9,N)):(s(),u(p,{key:1},[r(d(V(e,n.key)),1)],64))],64))]))),128))]))),128))])])):(s(),u(`ul`,F,[(s(!0),u(p,null,c(h.instances,e=>(s(),u(`li`,{key:e.name,class:`search-instance-item`},[l(`div`,I,[n(m,{class:`instance-name`,to:{name:`instance`,params:{kind:e.kind,instance:e.name}}},{default:o(()=>[e.icon?(s(),u(`i`,{key:0,class:f(`iconoir-${e.icon} icon-${e.layer}`)},null,2)):g(``,!0),r(` `+d(e.name),1)]),_:2},1032,[`to`]),h.omitKind?g(``,!0):(s(),u(`span`,L,d(e.kind),1))])]))),128))])):(s(),u(`p`,D,[...a[0]||=[l(`i`,null,`No resources found`,-1)]])),T.value?(s(),u(`div`,{key:3,ref_key:`sentinel`,ref:S,class:`load-more-sentinel`},[h.loadingMore?(s(),u(`small`,R,`Loading more…`)):g(``,!0)],512)):g(``,!0)],64)}}},[[`__scopeId`,`data-v-baa693c5`]]);export{T as a,b as c,C as i,S as n,y as o,E as r,w as s,z as t};
@@ -1 +1 @@
1
- import{C as e,E as t,I as n,N as r,S as i,T as a,U as o,b as s,h as c,m as l,t as u,w as d,z as f}from"./index-T1YqCmM1.js";import{t as p}from"./ResourceList-B5w9yiyS.js";var m={key:0,class:`search-error`},h={class:`search-error-message`},g={class:`search-error-query`},_={class:`search-context`},v={class:`search-query-display`},y={class:`query-item`},b={class:`query-value`},x={key:0,class:`query-item`},S={class:`kind-value`},C={key:1,class:`query-item`},w={class:`result-count`},T={class:`query-item`},E={class:`search-time`},D={key:1,class:`search-results`},O={key:0},k={key:2},A=100,j=u({__name:`SearchResults`,setup(u){let j=c(),M=f([]),N=f(0),P=f(0),F=f(``),I=f(null),L=f(!1),R=f(!1),z=f(null),B=0;async function V(){let e=j.query.q;if(I.value=j.query.kind||null,!e){M.value=[],N.value=0;return}F.value=e,L.value=!0,z.value=null,B=0;try{let t=await l(e,{limit:A,offset:0,output:`brief`});M.value=t.instances||[],N.value=t.total||0,P.value=t.query_time_ms||0,B=M.value.length}catch(e){z.value=e.message,M.value=[]}finally{L.value=!1}}async function H(){if(R.value||B>=N.value)return;let e=j.query.q;if(e){R.value=!0;try{let t=(await l(e,{limit:A,offset:B,output:`brief`})).instances||[];M.value=[...M.value,...t],B+=t.length}catch{}R.value=!1}}return n(()=>j.query.q,V,{immediate:!0}),(n,c)=>(r(),a(s,null,[z.value?(r(),a(`div`,m,[c[1]||=i(`div`,{class:`search-error-header`},[i(`i`,{class:`iconoir-warning-triangle`}),t(` Query Syntax Error `)],-1),i(`div`,h,o(z.value),1),i(`div`,g,[c[0]||=t(`Query: `,-1),i(`code`,null,o(F.value),1)])])):d(``,!0),i(`article`,_,[c[6]||=i(`header`,null,[i(`h3`,null,`Search Query`)],-1),i(`div`,v,[i(`p`,y,[c[2]||=i(`span`,{class:`label`},`Query:`,-1),i(`code`,b,o(F.value),1)]),I.value?(r(),a(`p`,x,[c[3]||=i(`span`,{class:`label`},`Kind:`,-1),i(`code`,S,o(I.value),1)])):d(``,!0),z.value?d(``,!0):(r(),a(`p`,C,[c[4]||=i(`span`,{class:`label`},`Results:`,-1),i(`span`,w,o(N.value)+` `+o(N.value===1?`item`:`items`),1)])),i(`p`,T,[c[5]||=i(`span`,{class:`label`},`Time:`,-1),i(`span`,E,o(P.value)+` ms`,1)])])]),!z.value&&!L.value?(r(),a(`article`,D,[c[8]||=i(`header`,null,[i(`h3`,null,`Results`)],-1),M.value.length?(r(),e(p,{key:1,instances:M.value,"omit-kind":!!I.value,total:N.value,"loading-more":R.value,onLoadMore:H},null,8,[`instances`,`omit-kind`,`total`,`loading-more`])):(r(),a(`p`,O,[...c[7]||=[i(`em`,null,`No results found`,-1)]]))])):d(``,!0),L.value?(r(),a(`article`,k,[...c[9]||=[i(`p`,null,`Searching...`,-1)]])):d(``,!0)],64))}},[[`__scopeId`,`data-v-1926309f`]]);export{j as default};
1
+ import{C as e,E as t,I as n,N as r,S as i,T as a,U as o,b as s,h as c,m as l,t as u,w as d,z as f}from"./index-jMbNuijl.js";import{t as p}from"./ResourceList-iVEBqeMm.js";var m={key:0,class:`search-error`},h={class:`search-error-message`},g={class:`search-error-query`},_={class:`search-context`},v={class:`search-query-display`},y={class:`query-item`},b={class:`query-value`},x={key:0,class:`query-item`},S={class:`kind-value`},C={key:1,class:`query-item`},w={class:`result-count`},T={class:`query-item`},E={class:`search-time`},D={key:1,class:`search-results`},O={key:0},k={key:2},A=100,j=u({__name:`SearchResults`,setup(u){let j=c(),M=f([]),N=f(0),P=f(0),F=f(``),I=f(null),L=f(!1),R=f(!1),z=f(null),B=0;async function V(){let e=j.query.q;if(I.value=j.query.kind||null,!e){M.value=[],N.value=0;return}F.value=e,L.value=!0,z.value=null,B=0;try{let t=await l(e,{limit:A,offset:0,output:`brief`});M.value=t.instances||[],N.value=t.total||0,P.value=t.query_time_ms||0,B=M.value.length}catch(e){z.value=e.message,M.value=[]}finally{L.value=!1}}async function H(){if(R.value||B>=N.value)return;let e=j.query.q;if(e){R.value=!0;try{let t=(await l(e,{limit:A,offset:B,output:`brief`})).instances||[];M.value=[...M.value,...t],B+=t.length}catch{}R.value=!1}}return n(()=>j.query.q,V,{immediate:!0}),(n,c)=>(r(),a(s,null,[z.value?(r(),a(`div`,m,[c[1]||=i(`div`,{class:`search-error-header`},[i(`i`,{class:`iconoir-warning-triangle`}),t(` Query Syntax Error `)],-1),i(`div`,h,o(z.value),1),i(`div`,g,[c[0]||=t(`Query: `,-1),i(`code`,null,o(F.value),1)])])):d(``,!0),i(`article`,_,[c[6]||=i(`header`,null,[i(`h3`,null,`Search Query`)],-1),i(`div`,v,[i(`p`,y,[c[2]||=i(`span`,{class:`label`},`Query:`,-1),i(`code`,b,o(F.value),1)]),I.value?(r(),a(`p`,x,[c[3]||=i(`span`,{class:`label`},`Kind:`,-1),i(`code`,S,o(I.value),1)])):d(``,!0),z.value?d(``,!0):(r(),a(`p`,C,[c[4]||=i(`span`,{class:`label`},`Results:`,-1),i(`span`,w,o(N.value)+` `+o(N.value===1?`item`:`items`),1)])),i(`p`,T,[c[5]||=i(`span`,{class:`label`},`Time:`,-1),i(`span`,E,o(P.value)+` ms`,1)])])]),!z.value&&!L.value?(r(),a(`article`,D,[c[8]||=i(`header`,null,[i(`h3`,null,`Results`)],-1),M.value.length?(r(),e(p,{key:1,instances:M.value,"omit-kind":!!I.value,total:N.value,"loading-more":R.value,onLoadMore:H},null,8,[`instances`,`omit-kind`,`total`,`loading-more`])):(r(),a(`p`,O,[...c[7]||=[i(`em`,null,`No results found`,-1)]]))])):d(``,!0),L.value?(r(),a(`article`,k,[...c[9]||=[i(`p`,null,`Searching...`,-1)]])):d(``,!0)],64))}},[[`__scopeId`,`data-v-1926309f`]]);export{j as default};
@@ -0,0 +1 @@
1
+ import{j as e}from"./mermaid-MUrMUmp1.js";export{e as createArchitectureServices};
@@ -0,0 +1 @@
1
+ import{k as e}from"./mermaid-MUrMUmp1.js";export{e as createCynefinServices};
@@ -0,0 +1 @@
1
+ import{D as e}from"./mermaid-MUrMUmp1.js";export{e as createEventModelingServices};
@@ -0,0 +1 @@
1
+ import{T as e}from"./mermaid-MUrMUmp1.js";export{e as createGitGraphServices};