archsight 0.4.2 → 0.4.3

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 (46) hide show
  1. checksums.yaml +4 -4
  2. data/docs/diagram.md +64 -0
  3. data/docs/modeling.md +3 -1
  4. data/lib/archsight/cli.rb +2 -1
  5. data/lib/archsight/database.rb +4 -3
  6. data/lib/archsight/diagram/cli.rb +11 -1
  7. data/lib/archsight/diagram/errors.rb +1 -0
  8. data/lib/archsight/diagram/includes.rb +168 -0
  9. data/lib/archsight/diagram/parser/ast.rb +5 -0
  10. data/lib/archsight/diagram/parser/table_layout.rb +2 -0
  11. data/lib/archsight/diagram/parser.rb +58 -16
  12. data/lib/archsight/diagram.rb +20 -4
  13. data/lib/archsight/export/confluence/storage.rb +6 -1
  14. data/lib/archsight/helpers/diagram_blocks.rb +34 -19
  15. data/lib/archsight/helpers/diagram_includes.rb +67 -0
  16. data/lib/archsight/helpers.rb +1 -0
  17. data/lib/archsight/linter.rb +10 -2
  18. data/lib/archsight/references.rb +4 -3
  19. data/lib/archsight/resources/application_component.rb +10 -0
  20. data/lib/archsight/resources/application_service.rb +9 -0
  21. data/lib/archsight/resources/technology_service.rb +9 -0
  22. data/lib/archsight/version.rb +1 -1
  23. data/lib/archsight/web/api/json_helpers.rb +3 -2
  24. data/lib/archsight/web/api/openapi/spec.yaml +9 -2
  25. data/lib/archsight/web/api/page_helpers.rb +1 -1
  26. data/lib/archsight/web/api/routes.rb +4 -3
  27. data/lib/archsight/web/application.rb +2 -1
  28. data/lib/archsight/web/public/vue/{DocPage-C8Ysway-.js → DocPage-L0GzDFiV.js} +1 -1
  29. data/lib/archsight/web/public/vue/{EditorPage-pr2MR6_b.js → EditorPage-B3iNbh1u.js} +1 -1
  30. data/lib/archsight/web/public/vue/{ErrorPage-FAkpW-hn.js → ErrorPage-Lro5vwhy.js} +1 -1
  31. data/lib/archsight/web/public/vue/{GraphView-liQJzFyo.js → GraphView-BRKwxa--.js} +1 -1
  32. data/lib/archsight/web/public/vue/{HomePage-DYpzSXG8.js → HomePage-DKgI1DXr.js} +2 -2
  33. data/lib/archsight/web/public/vue/{InstanceRouter-Ca_C8izS.css → InstanceRouter-CJSkGdBG.css} +1 -1
  34. data/lib/archsight/web/public/vue/InstanceRouter-CX6qxVTm.js +1 -0
  35. data/lib/archsight/web/public/vue/{KindList-CrgI4qDb.js → KindList-C556gf23.js} +1 -1
  36. data/lib/archsight/web/public/vue/{PageView-BIxT_t49.js → PageView-DAqHjL1x.js} +1 -1
  37. data/lib/archsight/web/public/vue/{QueryError-ChdyV8B1.js → QueryError-DvspMrsh.js} +1 -1
  38. data/lib/archsight/web/public/vue/{ResourceList-DdtaHY4k.js → ResourceList-BZOYa68X.js} +1 -1
  39. data/lib/archsight/web/public/vue/{SearchResults-BYRAcK_o.js → SearchResults-DaaOPG3t.js} +1 -1
  40. data/lib/archsight/web/public/vue/{WikiPage-CgvRN6R2.js → WikiPage-Bfx92Iig.js} +1 -1
  41. data/lib/archsight/web/public/vue/index-B_YGrWD8.css +1 -0
  42. data/lib/archsight/web/public/vue/{index-yiZbbvAs.js → index-DMhBow5t.js} +2 -2
  43. data/lib/archsight/web/public/vue.html +2 -2
  44. metadata +18 -16
  45. data/lib/archsight/web/public/vue/InstanceRouter-BdkBTmGO.js +0 -1
  46. data/lib/archsight/web/public/vue/index-BLSE5DSv.css +0 -1
@@ -1 +0,0 @@
1
- import{$ as e,B as t,E as n,F as r,G as i,H as a,I as o,J as s,K as c,L as l,M as u,N as d,P as f,Q as p,U as m,X as h,Z as g,a as _,at as v,et as y,g as b,h as x,i as S,it as C,j as w,k as T,nt as E,q as D,r as O,rt as k,s as A,tt as j,z as M}from"./index-yiZbbvAs.js";import{t as N}from"./useGraphviz-Dnm2pkon.js";import{t as P}from"./usePanZoom-HxgEsqq2.js";import{a as F,d as I,l as L,n as R,r as z,s as ee,u as te}from"./ResourceList-DdtaHY4k.js";import{a as ne,c as re,i as B,l as ie,n as ae,o as oe,r as V,s as se,u as H}from"./WikiPage-CgvRN6R2.js";import{n as ce,r as U}from"./PageView-BIxT_t49.js";var le=[`title`],ue=_({__name:`EmbedButton`,props:{kind:String,name:String},setup(e){let t=e,n=j(!1),r=d(()=>`![[${t.kind}/${t.name}]]`),i=d(()=>({View:`the result of this view`,Analysis:`the result of this analysis`})[t.kind]||`this description`);async function a(){try{await navigator.clipboard.writeText(r.value)}catch{window.prompt(`Copy this into a page:`,r.value);return}n.value=!0,setTimeout(()=>{n.value=!1},2e3)}return(e,t)=>(D(),l(`button`,{type:`button`,class:`btn-embed`,title:`Copy ${r.value} to show ${i.value} inside a page`,onClick:a},[f(`i`,{class:k(n.value?`iconoir-check`:`iconoir-copy`)},null,2),M(` `+v(n.value?`Copied`:`Embed`),1)],8,le))}},[[`__scopeId`,`data-v-04c65c40`]]),de={key:0,class:`relations-section`},fe={class:`relations-grid`},W={class:`relations-column relations-outgoing`},G={class:`relation-kind`},pe={class:`relation-verb`},K={class:`instance-badges`},me={key:1,class:`relations-empty`},q={id:`incoming`,class:`relations-column relations-incoming`},J={class:`relation-kind`},Y={class:`relation-verb`},he={class:`instance-badges`},ge={key:1,class:`relations-empty`},X=_({__name:`RelationsGrid`,props:{data:Object},setup(t){let n=t,i=a(`kinds`),c=d(()=>n.data.relations||{}),u=d(()=>n.data.references||{}),p=d(()=>Object.keys(c.value).length>0||Object.keys(u.value).length>0);function m(e){return i?.value?.kinds?i.value.kinds.find(t=>t.kind===e):null}function g(e){return m(e)?.icon||`cube`}function _(e){return m(e)?.layer||`technology`}let y=d(()=>{let e=[];for(let[t,n]of Object.entries(c.value))for(let[r,i]of Object.entries(n))e.push({verb:t,kind:r,names:[...i].sort()});return e}),b=d(()=>{let e=[];for(let[t,n]of Object.entries(u.value))for(let[r,i]of Object.entries(n))e.push({verb:r||`references`,kind:t,names:[...i].sort()});return e});return(t,n)=>{let i=h(`router-link`);return p.value?(D(),l(`article`,de,[n[2]||=f(`header`,null,[f(`h2`,null,`Relations`)],-1),f(`div`,fe,[f(`div`,W,[n[0]||=f(`h3`,null,[M(`Outgoing `),f(`i`,{class:`iconoir-arrow-right`})],-1),y.value.length?(D(!0),l(w,{key:0},s(y.value,(t,n)=>(D(),l(`div`,{key:`out-`+n,class:`relation-group`},[f(`div`,G,[f(`i`,{class:k(`iconoir-${g(t.kind)} icon-${_(t.kind)}`)},null,2),f(`span`,null,v(t.kind)+` (`+v(t.names.length)+`)`,1)]),f(`div`,pe,v(t.verb)+` (`+v(t.names.length)+`)`,1),f(`div`,K,[(D(!0),l(w,null,s(t.names,n=>(D(),r(i,{key:n,class:`badge badge-info`,to:{name:`instance`,params:{kind:t.kind,instance:n}}},{default:e(()=>[M(v(n),1)]),_:2},1032,[`to`]))),128))])]))),128)):(D(),l(`div`,me,`None`))]),f(`div`,q,[n[1]||=f(`h3`,null,[f(`i`,{class:`iconoir-arrow-right`}),M(` Incoming`)],-1),b.value.length?(D(!0),l(w,{key:0},s(b.value,(t,n)=>(D(),l(`div`,{key:`in-`+n,class:`relation-group`},[f(`div`,J,[f(`i`,{class:k(`iconoir-${g(t.kind)} icon-${_(t.kind)}`)},null,2),f(`span`,null,v(t.kind)+` (`+v(t.names.length)+`)`,1)]),f(`div`,Y,v(t.verb)+` (`+v(t.names.length)+`)`,1),f(`div`,he,[(D(!0),l(w,null,s(t.names,n=>(D(),r(i,{key:n,class:`badge badge-info`,to:{name:`instance`,params:{kind:t.kind,instance:n}}},{default:e(()=>[M(v(n),1)]),_:2},1032,[`to`]))),128))])]))),128)):(D(),l(`div`,ge,`None`))])])])):o(``,!0)}}},[[`__scopeId`,`data-v-5b9a2621`]]),_e={key:0},ve={key:1,class:`graph-error`},ye={key:2,class:`graph-container`},be=[`innerHTML`],xe=_({__name:`ModuleGraph`,props:{dot:String,label:{type:String,default:`Module Structure`}},setup(e){let t=e,n=j(``),r=j(!0),a=j(null),s=j(null),u=null;async function d(e){if(!e)r.value=!1;else{u?.destroy(),u=null,r.value=!0,a.value=null;try{n.value=await N(e)}catch(e){a.value=e?.message||`Failed to render module graph`,n.value=``}finally{if(r.value=!1,await m(),s.value){let e=s.value.querySelector(`svg`);e&&(u=P(e,s.value))}}}}return i(()=>d(t.dot)),p(()=>t.dot,d),c(()=>{u?.destroy()}),(t,i)=>(D(),l(`article`,null,[f(`header`,null,[f(`h2`,null,v(e.label),1)]),r.value?(D(),l(`div`,_e,[...i[0]||=[f(`p`,null,`Loading graph...`,-1)]])):a.value?(D(),l(`p`,ve,[i[1]||=f(`i`,{class:`iconoir-warning-triangle`},null,-1),M(` `+v(a.value),1)])):n.value?(D(),l(`div`,ye,[f(`div`,{ref_key:`graphEl`,ref:s,class:`canvas`,innerHTML:n.value},null,8,be)])):o(``,!0)]))}},[[`__scopeId`,`data-v-c3280c1e`]]),Se={key:0,class:`requirements-section`},Ce={__name:`RequirementsSection`,props:{data:Object},setup(e){let n=e,r=d(()=>{let e=n.data.relations||{},t=[];for(let[n,r]of Object.entries({realizes:`implemented`,partiallyRealizes:`partial`,plans:`planned`})){let i=e[n]||{},a=i.MotivationRequirement||i.motivationRequirements||[];for(let e of a)t.push({name:e,status:r,verb:n})}return t}),i=j([]);p(r,async e=>{if(!e.length){i.value=[];return}let t=await Promise.all(e.map(async e=>{try{let t=(await x(`MotivationRequirement`,e.name)).metadata?.annotations||{};return{...e,priority:t[`requirement/priority`]||null,story:t[`requirement/story`]||null}}catch{return{...e,priority:null,story:null}}}));i.value=t},{immediate:!0});function a(e){let t=n.data.name;return`/search?q=${encodeURIComponent(`MotivationRequirement: <- "${t}" & requirement/priority == "${e}"`)}`}return(e,n)=>r.value.length?(D(),l(`article`,Se,[n[0]||=f(`header`,null,[f(`h2`,null,`Requirements`)],-1),t(V,{items:i.value,"priority-link":a},null,8,[`items`])])):o(``,!0)}},Z={key:0},we=[`title`],Te=[`href`],Ee={class:`git-info`},De={class:`git-item`},Oe={class:`git-clone-command`},ke=_({__name:`GitInfo`,props:{annotations:Object},setup(e){let t=e,n=d(()=>t.annotations[`repository/git`]),r=d(()=>n.value?ee(n.value):null);function i(){navigator.clipboard.writeText(`git clone ${n.value}`)}return(e,t)=>n.value?(D(),l(`tr`,Z,[f(`th`,{scope:`row`,title:E(R)(`repository/git`)},[f(`a`,{class:`git-link`,href:r.value,target:`_blank`},`Git Repo`,8,Te)],8,we),f(`td`,null,[f(`div`,Ee,[f(`div`,De,[t[0]||=f(`i`,{class:`iconoir-git-branch`},null,-1),f(`code`,Oe,`git clone `+v(n.value),1)]),f(`button`,{class:`copy-button`,onClick:i,title:`Copy to clipboard`},[...t[1]||=[f(`i`,{class:`iconoir-copy`},null,-1)]])])])])):o(``,!0)}},[[`__scopeId`,`data-v-808bbe74`]]),Ae={key:0},je=[`title`],Me={class:`language-distribution`},Ne={class:`language-total`},Pe={class:`language-count`},Fe={class:`language-bar`},Ie=[`title`],Le={class:`language-legend`},Re={class:`other-languages`},ze=_({__name:`LanguageStats`,props:{annotations:Object,kind:String},setup(n){let i=n,a=d(()=>{let e=i.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(i.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),a=r.slice(0,10),o=[...r.slice(10),...t.filter(e=>e.loc/n*100<.1)],s=o.reduce((e,t)=>e+t.loc,0),c=[...a];return s>0&&c.push({name:`Other`,loc:s,isOther:!0,otherNames:o.map(e=>e.name)}),{display:c,total:n}});function c(e){return(e/a.value.total*100).toFixed(1)}function u(e,t){return t.isOther?`lang-other`:`lang-${e}`}function p(e,t){return{name:`search`,query:{q:`${e} == "${t}"`}}}return(n,i)=>{let d=h(`router-link`);return a.value?(D(),l(`tr`,Ae,[f(`th`,{scope:`row`,title:E(R)(`scc/languages`,`scc/language/<Language>/loc`)},`Languages`,8,je),f(`td`,null,[f(`div`,Me,[f(`div`,Ne,[f(`span`,Pe,v(E(L)(a.value.total)),1),i[0]||=f(`span`,{class:`language-label`},`lines of code`,-1)]),f(`div`,Fe,[(D(!0),l(w,null,s(a.value.display,(e,t)=>(D(),l(`div`,{key:e.name,class:k([`language-bar-segment`,u(t,e)]),style:C({width:c(e.loc)+`%`}),title:`${e.name}: ${E(L)(e.loc)} (${c(e.loc)}%)`},null,14,Ie))),128))]),f(`div`,Le,[(D(!0),l(w,null,s(a.value.display,(n,a)=>(D(),l(`div`,{key:n.name,class:`language-legend-item`},[f(`div`,{class:k([`language-legend-dot`,u(a,n)])},null,2),n.isOther?(D(),l(w,{key:0},[f(`span`,null,`Other `+v(c(n.loc))+`%`,1),f(`span`,Re,[i[1]||=M(` (`,-1),(D(!0),l(w,null,s(n.otherNames,(r,i)=>(D(),l(w,{key:r},[t(d,{to:p(`scc/languages`,r)},{default:e(()=>[M(v(r),1)]),_:2},1032,[`to`]),i<n.otherNames.length-1?(D(),l(w,{key:0},[M(`, `)],64)):o(``,!0)],64))),128)),i[2]||=M(`) `,-1)])],64)):(D(),r(d,{key:1,to:p(`scc/languages`,n.name)},{default:e(()=>[M(v(n.name)+` `+v(c(n.loc))+`% `,1)]),_:2},1032,[`to`]))]))),128))])])])])):o(``,!0)}}},[[`__scopeId`,`data-v-c1202fdd`]]),Be={key:0},Ve=[`title`],He={class:`project-estimate`},Ue={key:0,class:`estimate-item`},We={class:`estimate-value`},Ge={key:1,class:`estimate-item`},Ke={class:`estimate-value`},qe={key:2,class:`estimate-item`},Je={class:`estimate-value`},Ye=_({__name:`ProjectEstimate`,props:{annotations:Object},setup(e){let t=e,n=d(()=>z(`cost`,t.annotations[`scc/estimatedCost`])),r=d(()=>z(`schedule`,t.annotations[`scc/estimatedScheduleMonths`])),i=d(()=>z(`team`,t.annotations[`scc/estimatedPeople`])),a=d(()=>n.value!=null||r.value!=null||i.value!=null);return(e,t)=>a.value?(D(),l(`tr`,Be,[f(`th`,{scope:`row`,title:E(R)(`scc/estimatedCost`,`scc/estimatedScheduleMonths`,`scc/estimatedPeople`)},[...t[0]||=[M(` Project Estimate `,-1),f(`span`,{class:`estimate-note`,title:`Estimates adjusted for €80k salary and AI-assisted development (3x productivity)`},[f(`i`,{class:`iconoir-info-circle`})],-1)]],8,Ve),f(`td`,null,[f(`div`,He,[n.value==null?o(``,!0):(D(),l(`div`,Ue,[t[1]||=f(`i`,{class:`iconoir-euro`},null,-1),t[2]||=f(`span`,{class:`estimate-label`},`Cost:`,-1),f(`span`,We,v(E(I)(n.value)),1)])),r.value==null?o(``,!0):(D(),l(`div`,Ge,[t[3]||=f(`i`,{class:`iconoir-calendar`},null,-1),t[4]||=f(`span`,{class:`estimate-label`},`Schedule:`,-1),f(`span`,Ke,v(r.value.toFixed(1))+` months`,1)])),i.value==null?o(``,!0):(D(),l(`div`,qe,[t[5]||=f(`i`,{class:`iconoir-group`},null,-1),t[6]||=f(`span`,{class:`estimate-label`},`Team:`,-1),f(`span`,Je,v(i.value)+` people`,1)]))])])])):o(``,!0)}},[[`__scopeId`,`data-v-d97600d8`]]),Xe={key:0},Ze=[`title`],Qe={class:`repository-distribution`},$e={class:`repository-total`},et={class:`repository-count`},tt={class:`repository-bar`},nt=[`title`],rt={class:`repository-legend`},it=_({__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)),c=d(()=>parseInt(t.annotations[`repository/artifacts/highBusFactor`]||`0`,10)),u=d(()=>n.value>0),p=d(()=>r.value-c.value),m=d(()=>n.value-r.value-i.value-a.value);function h(e){return(e/n.value*100).toFixed(1)}let g=d(()=>{let e=[];return p.value>0&&e.push({cls:`status-active`,value:p.value,label:`Active (healthy)`}),c.value>0&&e.push({cls:`status-high-bus-factor`,value:c.value,label:`Active (high bus factor)`}),a.value>0&&e.push({cls:`status-archived`,value:a.value,label:`Archived`}),m.value>0&&e.push({cls:`status-other`,value:m.value,label:`Other`}),i.value>0&&e.push({cls:`status-abandoned`,value:i.value,label:`Abandoned`}),e});return(e,t)=>u.value?(D(),l(`tr`,Xe,[f(`th`,{scope:`row`,title:E(R)(`repository/artifacts/total`,`repository/artifacts/active`,`repository/artifacts/abandoned`,`repository/artifacts/archived`,`repository/artifacts/highBusFactor`)},`Repositories`,8,Ze),f(`td`,null,[f(`div`,Qe,[f(`div`,$e,[f(`span`,et,v(n.value),1),t[0]||=f(`span`,{class:`repository-label`},`repositories`,-1)]),f(`div`,tt,[(D(!0),l(w,null,s(g.value,e=>(D(),l(`div`,{key:e.cls,class:k([`repository-bar-segment`,e.cls]),style:C({width:h(e.value)+`%`}),title:`${e.label}: ${e.value} (${h(e.value)}%)`},null,14,nt))),128))]),f(`div`,rt,[(D(!0),l(w,null,s(g.value,e=>(D(),l(`div`,{key:e.cls,class:`repository-legend-item`},[f(`div`,{class:k([`repository-legend-dot`,e.cls])},null,2),f(`span`,null,v(e.value)+` `+v(e.label.toLowerCase()),1)]))),128))])])])])):o(``,!0)}},[[`__scopeId`,`data-v-6c3e5f7d`]]),at=[`title`],Q=_({__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)=>(D(),l(`div`,{class:k([`activity-sparkline`,e.colorClass])},[(D(!0),l(w,null,s(n.value,(e,t)=>(D(),l(`div`,{key:t,class:k([`activity-sparkline-bar`,{empty:e===0}]),style:C({height:i(e)+`px`}),title:e+a.value},null,14,at))),128))],2))}},[[`__scopeId`,`data-v-33cc84bd`]]),ot={key:0},st=[`title`],ct={class:`activity-summary`},lt={key:0,class:`activity-item`},ut=[`title`],dt={class:`activity-value sparkline-total`},ft={key:1,class:`activity-item`},pt=[`title`],mt={key:0,class:`activity-value sparkline-total`},ht={key:1,class:`activity-value contributors-total`},gt={key:2,class:`activity-item`},_t=[`title`],vt={class:`activity-value`},yt={key:3,class:`activity-item`},bt=[`title`],xt={key:4,class:`activity-item`},St=[`title`],Ct=_({__name:`ActivityInfo`,props:{annotations:Object,kind:String},setup(n){let r=n,i=d(()=>r.annotations[`activity/commits`]),a=d(()=>r.annotations[`activity/contributors`]),s=d(()=>r.annotations[`activity/contributors/6m`]),c=d(()=>r.annotations[`activity/contributors/total`]),u=d(()=>r.annotations[`activity/status`]),p=d(()=>r.annotations[`activity/busFactor`]),m=d(()=>r.annotations[`activity/createdAt`]),g=d(()=>i.value||a.value||u.value||p.value||m.value),_=d(()=>i.value?i.value.split(`,`).map(Number).reduce((e,t)=>e+t,0):0),y=d(()=>m.value?new Date(m.value).toLocaleDateString(`en`,{month:`short`,year:`numeric`}):null),b=d(()=>{let e=p.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 x(e,t){return{name:`search`,query:{q:`${e} == "${t}"`}}}return(n,r)=>{let d=h(`router-link`);return g.value?(D(),l(`tr`,ot,[f(`th`,{scope:`row`,title:E(R)(`activity/commits`,`activity/contributors`,`activity/contributors/6m`,`activity/contributors/total`,`activity/status`,`activity/busFactor`,`activity/createdAt`)},`Activity`,8,st),f(`td`,null,[f(`div`,ct,[i.value?(D(),l(`div`,lt,[r[0]||=f(`i`,{class:`iconoir-git-commit`},null,-1),f(`span`,{class:`activity-label`,title:E(R)(`activity/commits`)},`Commits:`,8,ut),t(Q,{values:i.value},null,8,[`values`]),f(`span`,dt,v(_.value),1)])):o(``,!0),a.value?(D(),l(`div`,ft,[r[1]||=f(`i`,{class:`iconoir-community`},null,-1),f(`span`,{class:`activity-label`,title:E(R)(`activity/contributors`,`activity/contributors/6m`,`activity/contributors/total`)},`Contributors:`,8,pt),t(Q,{values:a.value,"color-class":`contributors-sparkline`},null,8,[`values`]),s.value?(D(),l(`span`,mt,v(s.value),1)):o(``,!0),c.value?(D(),l(`span`,ht,`(`+v(c.value)+` total)`,1)):o(``,!0)])):o(``,!0),m.value?(D(),l(`div`,gt,[r[2]||=f(`i`,{class:`iconoir-calendar`},null,-1),f(`span`,{class:`activity-label`,title:E(R)(`activity/createdAt`)},`Created:`,8,_t),f(`span`,vt,v(y.value),1)])):o(``,!0),u.value?(D(),l(`div`,yt,[r[3]||=f(`i`,{class:`iconoir-info-circle`},null,-1),f(`span`,{class:`activity-label`,title:E(R)(`activity/status`)},`Status:`,8,bt),t(d,{class:k(`activity-value status-${u.value}`),to:x(`activity/status`,u.value)},{default:e(()=>[M(v(u.value),1)]),_:1},8,[`class`,`to`])])):o(``,!0),p.value?(D(),l(`div`,xt,[r[4]||=f(`i`,{class:`iconoir-warning-triangle`},null,-1),f(`span`,{class:`activity-label`,title:E(R)(`activity/busFactor`)},`Bus Factor:`,8,St),t(d,{class:k(`activity-value bus-factor-${p.value}`),to:x(`activity/busFactor`,p.value),title:b.value},{default:e(()=>[M(v(p.value),1)]),_:1},8,[`class`,`to`,`title`])])):o(``,!0)])])])):o(``,!0)}}},[[`__scopeId`,`data-v-a2e60c62`]]),wt={key:0},Tt={key:1},Et=[`title`],Dt={class:`jira-info`},Ot=[`href`],kt={class:`jira-metric`},At={class:`jira-metric-total`},jt={class:`jira-metric`},Mt={class:`jira-metric-total`},Nt={key:0,class:`iconoir-arrow-down-circle`},Pt={key:1,class:`iconoir-arrow-up-circle`},Ft={key:2,class:`iconoir-minus-circle`},It={class:`jira-trend-text`},Lt={key:2},Rt=[`title`],zt=[`href`],Bt={key:1,class:`team-value`},Vt={key:3},Ht=[`title`],Ut={class:`team-stats`},Wt={key:0,class:`team-stat-item`},Gt={class:`team-stat-value`},Kt={key:1,class:`team-stat-item`},qt={class:`team-stat-value`},Jt={key:4},Yt=[`title`],Xt={class:`team-members`},Zt=[`href`],Qt={key:1,class:`team-member`},$t=_({__name:`TeamInfo`,props:{annotations:Object,instance:Object},setup(n){let r=n,i=d(()=>r.annotations[`team/lead`]),a=d(()=>r.annotations[`team/members`]),c=d(()=>r.annotations[`team/size`]),u=d(()=>r.annotations[`team/lead/size`]),p=d(()=>r.annotations[`team/jira`]),m=d(()=>r.annotations[`jira/projectUrl`]),g=d(()=>r.annotations[`jira/issues/created`]),_=d(()=>r.annotations[`jira/issues/resolved`]),y=d(()=>r.instance?.kind===`BusinessActor`),b=d(()=>`kind in ("ApplicationService", "ApplicationComponent") & ~> $(TechnologyArtifact: -{maintainedBy}> "${r.instance?.name||``}")`),x=d(()=>a.value?a.value.split(/,|\n/).map(e=>e.trim()).filter(Boolean):[]);function S(e){let t=e.match(/<([^>]+@[^>]+)>/);return t?t[1]:null}function C(e){return{name:`search`,query:{q:e}}}let T=d(()=>g.value?g.value.split(`,`).map(Number).reduce((e,t)=>e+t,0):0),O=d(()=>_.value?_.value.split(`,`).map(Number).reduce((e,t)=>e+t,0):0),A=d(()=>g.value?g.value.split(`,`).map(Number):[]),j=d(()=>_.value?_.value.split(`,`).map(Number):[]),N=d(()=>(A.value.length?T.value/A.value.length:0)-(j.value.length?O.value/j.value.length:0)),P=d(()=>{let e=N.value;return e<-1?`positive`:e>1?`negative`:`neutral`});return(n,r)=>{let d=h(`router-link`);return D(),l(w,null,[y.value?(D(),l(`tr`,wt,[r[1]||=f(`th`,{scope:`row`},`Owned Services`,-1),f(`td`,null,[t(d,{class:`badge badge-info`,to:C(b.value)},{default:e(()=>[...r[0]||=[M(` Show ApplicationServices & Components `,-1)]]),_:1},8,[`to`])])])):o(``,!0),p.value&&m.value?(D(),l(`tr`,Tt,[f(`th`,{scope:`row`,title:E(R)(`team/jira`,`jira/projectUrl`,`jira/issues/created`,`jira/issues/resolved`)},`Jira Project`,8,Et),f(`td`,null,[f(`div`,Dt,[f(`a`,{class:`badge badge-info`,href:m.value,target:`_blank`},v(p.value),9,Ot),g.value||_.value?(D(),l(w,{key:0},[f(`div`,kt,[r[2]||=f(`span`,{class:`jira-metric-label`},`Created (6m):`,-1),t(Q,{values:g.value,type:`created`,"color-class":`jira-created-sparkline`},null,8,[`values`]),f(`span`,At,v(T.value),1)]),f(`div`,jt,[r[3]||=f(`span`,{class:`jira-metric-label`},`Resolved (6m):`,-1),t(Q,{values:_.value,type:`resolved`,"color-class":`jira-resolved-sparkline`},null,8,[`values`]),f(`span`,Mt,v(O.value),1)]),f(`div`,{class:k([`jira-trend`,`jira-trend-${P.value}`])},[P.value===`positive`?(D(),l(`i`,Nt)):P.value===`negative`?(D(),l(`i`,Pt)):(D(),l(`i`,Ft)),f(`span`,It,v(N.value>0?`+`:``)+v(N.value.toFixed(1))+`/mo`,1)],2)],64)):o(``,!0)])])])):o(``,!0),i.value?(D(),l(`tr`,Lt,[f(`th`,{scope:`row`,title:E(R)(`team/lead`)},`Team Lead`,8,Rt),f(`td`,null,[S(i.value)?(D(),l(`a`,{key:0,class:`team-value`,href:`mailto:${S(i.value)}`},v(i.value),9,zt)):(D(),l(`span`,Bt,v(i.value),1))])])):o(``,!0),c.value||u.value?(D(),l(`tr`,Vt,[f(`th`,{scope:`row`,title:E(R)(`team/size`,`team/lead/size`)},`Team Stats`,8,Ht),f(`td`,null,[f(`div`,Ut,[u.value?(D(),l(`div`,Wt,[f(`span`,Gt,v(u.value),1),r[4]||=f(`span`,{class:`team-stat-label`},`leads`,-1)])):o(``,!0),c.value?(D(),l(`div`,Kt,[f(`span`,qt,v(c.value),1),r[5]||=f(`span`,{class:`team-stat-label`},`members`,-1)])):o(``,!0)])])])):o(``,!0),a.value?(D(),l(`tr`,Jt,[f(`th`,{scope:`row`,title:E(R)(`team/members`)},`Team Members`,8,Yt),f(`td`,null,[f(`div`,Xt,[(D(!0),l(w,null,s(x.value,e=>(D(),l(w,{key:e},[S(e)?(D(),l(`a`,{key:0,class:`team-member`,href:`mailto:${S(e)}`},v(e),9,Zt)):(D(),l(`span`,Qt,v(e),1))],64))),128))])])])):o(``,!0)],64)}}},[[`__scopeId`,`data-v-ddf2e61d`]]),en={key:0},tn=[`title`],nn={class:`deployment-types`},rn=_({__name:`DeploymentInfo`,props:{annotations:Object,kind:String},setup(t){let n=t,i=d(()=>(n.annotations[`repository/artifacts`]||`none`).split(`,`).map(e=>e.trim())),a=d(()=>i.value[0]!==`none`),c=[{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 u(e,t){return{name:`search`,query:{q:`${e} == "${t}"`}}}return(t,n)=>{let d=h(`router-link`);return a.value?(D(),l(`tr`,en,[f(`th`,{scope:`row`,title:E(R)(`repository/artifacts`)},`Deployment Artifacts`,8,tn),f(`td`,null,[f(`div`,nn,[(D(),l(w,null,s(c,t=>(D(),l(w,{key:t.key},[i.value.includes(t.key)?(D(),r(d,{key:0,class:`deployment-item`,to:u(`repository/artifacts`,t.key)},{default:e(()=>[f(`i`,{class:k(t.icon)},null,2),f(`strong`,null,v(t.label),1)]),_:2},1032,[`to`])):o(``,!0)],64))),64))])])])):o(``,!0)}}},[[`__scopeId`,`data-v-c57237c3`]]),an=[`title`],on={class:`workflow-platforms`},sn=[`checked`],cn=[`checked`],ln=[`checked`],un={class:`info-section-cell`,colspan:`2`},dn={open:``},fn=[`title`],pn={class:`workflow-types`},mn={class:`workflow-category`},hn=[`checked`],gn=[`checked`],_n={class:`workflow-category`},vn=[`checked`],yn=[`checked`],bn=[`checked`],xn=[`checked`],Sn={class:`workflow-category`},Cn=[`checked`],wn=[`checked`],Tn={class:`workflow-category`},En=[`checked`],Dn=[`checked`],On=_({__name:`WorkflowInfo`,props:{annotations:Object,kind:String},setup(n){let r=n,i=d(()=>(r.annotations[`workflow/platforms`]||`none`).split(`,`).map(e=>e.trim())),a=d(()=>(r.annotations[`workflow/types`]||`none`).split(`,`).map(e=>e.trim())),s=d(()=>i.value[0]!==`none`||a.value[0]!==`none`),c=d(()=>a.value.includes(`test`));function u(e,t){return{name:`search`,query:{q:`${e} == "${t}"`}}}function p(e,t){return e.includes(t)}return(n,r)=>{let d=h(`router-link`);return s.value?(D(),l(w,{key:0},[f(`tr`,null,[f(`th`,{scope:`row`,title:E(R)(`workflow/platforms`)},`CI/CD Platforms`,8,an),f(`td`,null,[f(`div`,on,[t(d,{class:`workflow-platform-item`,to:u(`workflow/platforms`,`github-actions`)},{default:e(()=>[f(`input`,{type:`checkbox`,disabled:``,checked:p(i.value,`github-actions`)},null,8,sn),r[0]||=f(`label`,null,`GitHub Actions`,-1)]),_:1},8,[`to`]),t(d,{class:`workflow-platform-item`,to:u(`workflow/platforms`,`gitlab-ci`)},{default:e(()=>[f(`input`,{type:`checkbox`,disabled:``,checked:p(i.value,`gitlab-ci`)},null,8,cn),r[1]||=f(`label`,null,`GitLab CI`,-1)]),_:1},8,[`to`]),t(d,{class:`workflow-platform-item`,to:u(`workflow/platforms`,`makefile`)},{default:e(()=>[f(`input`,{type:`checkbox`,disabled:``,checked:p(i.value,`makefile`)},null,8,ln),r[2]||=f(`label`,null,`Makefile`,-1)]),_:1},8,[`to`])])])]),f(`tr`,null,[f(`td`,un,[f(`details`,dn,[f(`summary`,{title:E(R)(`workflow/types`)},[...r[3]||=[f(`strong`,null,`Workflow Types`,-1)]],8,fn),f(`div`,pn,[f(`div`,null,[f(`div`,mn,[r[6]||=f(`strong`,null,`Build & Deploy`,-1),f(`ul`,null,[f(`li`,null,[f(`input`,{type:`checkbox`,disabled:``,checked:p(a.value,`build`)},null,8,hn),t(d,{to:u(`workflow/types`,`build`)},{default:e(()=>[...r[4]||=[M(`Build`,-1)]]),_:1},8,[`to`])]),f(`li`,null,[f(`input`,{type:`checkbox`,disabled:``,checked:p(a.value,`deploy`)},null,8,gn),t(d,{to:u(`workflow/types`,`deploy`)},{default:e(()=>[...r[5]||=[M(`Deploy`,-1)]]),_:1},8,[`to`])])])]),f(`div`,_n,[r[11]||=f(`strong`,null,`Testing`,-1),f(`ul`,null,[f(`li`,null,[f(`input`,{type:`checkbox`,disabled:``,checked:p(a.value,`test`)},null,8,vn),t(d,{to:u(`workflow/types`,`test`)},{default:e(()=>[...r[7]||=[M(`Test (generic)`,-1)]]),_:1},8,[`to`])]),f(`li`,{class:k({"grayed-out":c.value})},[f(`input`,{type:`checkbox`,disabled:``,checked:p(a.value,`unit-test`)},null,8,yn),t(d,{to:u(`workflow/types`,`unit-test`)},{default:e(()=>[...r[8]||=[M(`Unit Tests`,-1)]]),_:1},8,[`to`])],2),f(`li`,{class:k({"grayed-out":c.value})},[f(`input`,{type:`checkbox`,disabled:``,checked:p(a.value,`integration-test`)},null,8,bn),t(d,{to:u(`workflow/types`,`integration-test`)},{default:e(()=>[...r[9]||=[M(`Integration Tests`,-1)]]),_:1},8,[`to`])],2),f(`li`,{class:k({"grayed-out":c.value})},[f(`input`,{type:`checkbox`,disabled:``,checked:p(a.value,`smoke-test`)},null,8,xn),t(d,{to:u(`workflow/types`,`smoke-test`)},{default:e(()=>[...r[10]||=[M(`Smoke Tests`,-1)]]),_:1},8,[`to`])],2)])]),f(`div`,Sn,[r[14]||=f(`strong`,null,`Quality & Security`,-1),f(`ul`,null,[f(`li`,null,[f(`input`,{type:`checkbox`,disabled:``,checked:p(a.value,`lint`)},null,8,Cn),t(d,{to:u(`workflow/types`,`lint`)},{default:e(()=>[...r[12]||=[M(`Linting`,-1)]]),_:1},8,[`to`])]),f(`li`,null,[f(`input`,{type:`checkbox`,disabled:``,checked:p(a.value,`security-scan`)},null,8,wn),t(d,{to:u(`workflow/types`,`security-scan`)},{default:e(()=>[...r[13]||=[M(`Security Scan`,-1)]]),_:1},8,[`to`])])])]),f(`div`,Tn,[r[17]||=f(`strong`,null,`Automation`,-1),f(`ul`,null,[f(`li`,null,[f(`input`,{type:`checkbox`,disabled:``,checked:p(a.value,`dependency-update`)},null,8,En),t(d,{to:u(`workflow/types`,`dependency-update`)},{default:e(()=>[...r[15]||=[M(`Dependency Updates`,-1)]]),_:1},8,[`to`])]),f(`li`,null,[f(`input`,{type:`checkbox`,disabled:``,checked:p(a.value,`ticket-creation`)},null,8,Dn),t(d,{to:u(`workflow/types`,`ticket-creation`)},{default:e(()=>[...r[16]||=[M(`Ticket Creation`,-1)]]),_:1},8,[`to`])])])])])])])])])],64)):o(``,!0)}}},[[`__scopeId`,`data-v-5e906c49`]]),kn=[`title`],An={class:`info-section-cell`,colspan:`2`},jn={class:`agentic-tools`},Mn={class:`tool-item-header`},Nn=[`checked`],Pn={class:`tool-item-description`},Fn=_({__name:`AgenticTools`,props:{annotations:Object,kind:String},setup(n){let r=n,i=d(()=>(r.annotations[`agentic/tools`]||`none`).split(`,`).map(e=>e.trim())),a=d(()=>i.value[0]!==`none`),c=[{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 u(e,t){return{name:`search`,query:{q:`${e} == "${t}"`}}}return(n,r)=>{let d=h(`router-link`);return a.value?(D(),l(w,{key:0},[f(`tr`,null,[f(`th`,{scope:`row`,colspan:`2`,title:E(R)(`agentic/tools`)},[...r[0]||=[f(`i`,{class:`iconoir-cpu`},null,-1),M(` AI Coding Assistants `,-1)]],8,kn)]),f(`tr`,null,[f(`td`,An,[f(`div`,jn,[(D(),l(w,null,s(c,n=>t(d,{key:n.key,class:k([`tool-item`,{"not-implemented":!i.value.includes(n.key)}]),to:u(`agentic/tools`,n.key)},{default:e(()=>[f(`div`,Mn,[f(`input`,{type:`checkbox`,checked:i.value.includes(n.key),disabled:``},null,8,Nn),f(`i`,{class:k([n.icon,i.value.includes(n.key)?`implemented`:`not-implemented`])},null,2),f(`strong`,null,v(n.name),1)]),f(`div`,Pn,v(n.description),1)]),_:2},1032,[`class`,`to`])),64))])])])],64)):o(``,!0)}}},[[`__scopeId`,`data-v-52b7b17d`]]),In={key:0},Ln=[`title`],Rn={class:`activity-summary`},zn={class:`activity-item`},Bn={key:0,class:`activity-item`},Vn={class:`activity-value`},Hn={key:1,class:`activity-item`},Un={key:0,class:`license-details-inline`},Wn={class:`badge badge-secondary`},Gn={class:`license-overflow`},Kn=_({__name:`LicenseInfo`,props:{annotations:Object,kind:String},setup(n){let i=n,a=d(()=>i.annotations[`license/spdx`]),c=d(()=>i.annotations[`license/category`]||`unknown`),u=d(()=>i.annotations[`license/dependencies/count`]),p=d(()=>(i.annotations[`license/dependencies/ecosystems`]||``).split(`,`).map(e=>e.trim()).filter(Boolean)),m=d(()=>i.annotations[`license/dependencies/risk`]||`unknown`),g=d(()=>i.annotations[`license/dependencies/copyleft`]||`unknown`),_=d(()=>(i.annotations[`license/dependencies/licenses`]||``).split(`,`).map(e=>e.trim()).filter(Boolean)),y=d(()=>{switch(c.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`}}),b=d(()=>{switch(m.value){case`low`:return`badge-success`;case`weak-copyleft`:return`badge-warning`;case`copyleft`:return`badge-danger`;default:return`badge-secondary`}}),x=d(()=>{switch(m.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`}}),S=d(()=>_.value.filter(e=>e!==`unknown`).map(e=>({name:e,count:parseInt(i.annotations[`license/dependencies/${e}/count`]||`0`,10)})).sort((e,t)=>t.count-e.count));function C(e,t){return{name:`search`,query:{q:`${e} == "${t}"`}}}return(n,i)=>{let d=h(`router-link`);return a.value?(D(),l(`tr`,In,[f(`th`,{scope:`row`,title:E(R)(`license/spdx`,`license/category`,`license/dependencies/count`,`license/dependencies/ecosystems`,`license/dependencies/risk`,`license/dependencies/copyleft`,`license/dependencies/licenses`)},`License`,8,Ln),f(`td`,null,[f(`div`,Rn,[f(`div`,zn,[i[0]||=f(`i`,{class:`iconoir-shield-check`},null,-1),t(d,{class:k([`badge`,y.value]),to:C(`license/spdx`,a.value)},{default:e(()=>[M(v(a.value),1)]),_:1},8,[`class`,`to`]),c.value===`unknown`?o(``,!0):(D(),r(d,{key:0,class:`badge badge-outline`,to:C(`license/category`,c.value)},{default:e(()=>[M(v(c.value),1)]),_:1},8,[`to`]))]),u.value&&parseInt(u.value)>0?(D(),l(`div`,Bn,[i[2]||=f(`i`,{class:`iconoir-box`},null,-1),i[3]||=f(`span`,{class:`activity-label`},`Dependencies:`,-1),f(`span`,Vn,v(u.value),1),(D(!0),l(w,null,s(p.value,t=>(D(),r(d,{key:t,class:`badge badge-info`,to:C(`license/dependencies/ecosystems`,t)},{default:e(()=>[M(v(t),1)]),_:2},1032,[`to`]))),128)),t(d,{class:k([`badge`,b.value]),title:x.value,to:C(`license/dependencies/risk`,m.value)},{default:e(()=>[M(`Risk: `+v(m.value),1)]),_:1},8,[`class`,`title`,`to`]),g.value===`true`?(D(),r(d,{key:0,class:`badge badge-warning`,to:C(`license/dependencies/copyleft`,`true`)},{default:e(()=>[...i[1]||=[M(`Copyleft present`,-1)]]),_:1},8,[`to`])):o(``,!0)])):o(``,!0),S.value.length?(D(),l(`div`,Hn,[i[4]||=f(`i`,{class:`iconoir-list`},null,-1),i[5]||=f(`span`,{class:`activity-label`},`Types:`,-1),(D(!0),l(w,null,s(S.value.slice(0,5),t=>(D(),r(d,{key:t.name,class:`badge badge-outline`,to:C(`license/dependencies/licenses`,t.name)},{default:e(()=>[M(v(t.count>0?`${t.name} (${t.count})`:t.name),1)]),_:2},1032,[`to`]))),128)),S.value.length>5?(D(),l(`details`,Un,[f(`summary`,Wn,`+`+v(S.value.length-5)+` more`,1),f(`div`,Gn,[(D(!0),l(w,null,s(S.value.slice(5),t=>(D(),r(d,{key:t.name,class:`badge badge-outline`,to:C(`license/dependencies/licenses`,t.name)},{default:e(()=>[M(v(t.count>0?`${t.name} (${t.count})`:t.name),1)]),_:2},1032,[`to`]))),128))])])):o(``,!0)])):o(``,!0)])])])):o(``,!0)}}},[[`__scopeId`,`data-v-126f0fee`]]),qn={key:0},Jn=[`title`],Yn={__name:`ExternalLinks`,props:{annotations:Object},setup(e){let n=e,r=d(()=>Object.fromEntries(Object.entries(n.annotations).filter(([e])=>e.startsWith(`link/`)).map(([e,t])=>[e.slice(5),t])));return(e,n)=>Object.keys(r.value).length?(D(),l(`tr`,qn,[f(`th`,{scope:`row`,title:E(R)(`link/<name>`)},`Links`,8,Jn),f(`td`,null,[t(U,{links:r.value},null,8,[`links`])])])):o(``,!0)}},Xn={"component/type":{executable:`play`,library:`book-stack`,module:`box-3d-three-points`,plugin:`plug-type-a`,frontend:`web-window`,other:`code-brackets`},"component/role":{service:`cloud-sync`,cli:`terminal`,job:`timer`,operator:`settings`,agent:`cpu`}},Zn={"architecture/kind":`Architecture style`,"architecture/size":`Architecture size`},Qn=[`architecture/aliases`,`component/type`,`component/role`,`architecture/kind`,`architecture/size`,`architecture/tags`];function $n(e,t){return Xn[e]?.[t]||null}function er(e){return Zn[e]||null}var tr={class:`chip-group`},nr={key:1,class:`chip-namespace`},$={__name:`TagChips`,props:{kind:{type:String,required:!0},annotationKey:{type:String,required:!0},values:{type:Array,required:!0},linked:{type:Boolean,default:!0}},setup(t){let n=t,i={planned:`chip-info`,deprecated:`chip-warning`,sunset:`chip-danger`,"end-of-life":`chip-danger`},a=/^([a-z][a-z0-9-]*):(.+)$/i;function c(e){return String(e).replace(/\\/g,`\\\\`).replace(/"/g,`\\"`)}let u=d(()=>n.values.map(e=>{let t=a.exec(e);return{value:e,namespace:t?t[1]:null,label:t?t[2]:e,symbol:$n(n.annotationKey,e),tone:n.annotationKey===`lifecycle/status`&&i[e]||null,to:{name:`search`,query:A(`${n.kind}: ${n.annotationKey} == "${c(e)}"`)}}}));return(n,i)=>(D(),l(`span`,tr,[(D(!0),l(w,null,s(u.value,n=>(D(),r(g(t.linked?`router-link`:`span`),{key:n.value,class:k([`chip`,n.tone]),to:t.linked?n.to:void 0,title:t.linked?`Show ${t.kind} resources with ${t.annotationKey} = ${n.value}`:void 0},{default:e(()=>[n.symbol?(D(),l(`i`,{key:0,class:k(`iconoir-${n.symbol} icon-application chip-symbol`),"aria-hidden":`true`},null,2)):o(``,!0),n.namespace?(D(),l(`span`,nr,v(n.namespace),1)):o(``,!0),f(`span`,null,v(n.label),1)]),_:2},1032,[`class`,`to`,`title`]))),128))]))}},rr={key:0},ir=[`title`],ar={class:`lifecycle-info`},or=[`title`],sr=_({__name:`LifecycleInfo`,props:{annotations:Object,kind:String,links:{type:Object,default:()=>({})},incoming:{type:Number,default:0}},setup(t){let n=t,i=[`deprecated`,`sunset`,`end-of-life`],a=d(()=>n.annotations[`lifecycle/status`]),s=d(()=>n.annotations[`lifecycle/replacedBy`]),c=d(()=>n.links?.[`lifecycle/replacedBy`]||null),u=d(()=>i.includes(a.value)&&n.incoming>0);return(n,i)=>{let d=h(`router-link`);return a.value||s.value?(D(),l(`tr`,rr,[f(`th`,{scope:`row`,title:E(R)(`lifecycle/status`)},`Lifecycle`,8,ir),f(`td`,null,[f(`div`,ar,[a.value?(D(),r($,{key:0,kind:t.kind,"annotation-key":`lifecycle/status`,values:[a.value]},null,8,[`kind`,`values`])):o(``,!0),s.value?(D(),l(`span`,{key:1,class:`lifecycle-replaced`,title:E(R)(`lifecycle/replacedBy`)},[i[0]||=f(`i`,{class:`iconoir-arrow-right`,"aria-hidden":`true`},null,-1),i[1]||=M(` replaced by `,-1),c.value?(D(),r(d,{key:0,to:c.value},{default:e(()=>[M(v(s.value),1)]),_:1},8,[`to`])):(D(),l(w,{key:1},[M(v(s.value),1)],64))],8,or)):o(``,!0),u.value?(D(),r(d,{key:2,class:`lifecycle-incoming`,to:{hash:`#incoming`}},{default:e(()=>[M(v(t.incoming)+` incoming `,1)]),_:1})):o(``,!0)])])])):o(``,!0)}}},[[`__scopeId`,`data-v-6c14f599`]]),cr=[`title`],lr=[`innerHTML`],ur=[`href`],dr={__name:`AnnotationRow`,props:{annotationKey:String,value:[String,Number,Boolean],kind:String,format:{type:String,default:null}},setup(e){let t=e,n=j(null);H(n);let i=d(()=>{let e=er(t.annotationKey);if(e)return e;let n=t.annotationKey.split(`/`);return n[n.length-1].replace(/([a-z])([A-Z])/g,`$1 $2`).replace(/^./,e=>e.toUpperCase())}),a=d(()=>typeof t.value==`string`&&/^https?:\/\//.test(t.value)),o=d(()=>t.format!==`identifier`||t.value==null?[]:String(t.value).split(`,`).map(e=>e.trim()).filter(Boolean)),s=d(()=>{if(![`tag_list`,`tag_word`].includes(t.format)||t.value==null)return[];let e=String(t.value);return t.format===`tag_list`?e.split(`,`).map(e=>e.trim()).filter(Boolean):[e]});return(t,c)=>(D(),l(`tr`,null,[f(`th`,{scope:`row`,title:E(R)(e.annotationKey)},v(i.value),9,cr),f(`td`,null,[e.format===`markdown`?(D(),l(`div`,{key:0,ref_key:`mdEl`,ref:n,innerHTML:e.value},null,8,lr)):o.value.length?(D(),r($,{key:1,kind:e.kind,"annotation-key":e.annotationKey,values:o.value,linked:!1},null,8,[`kind`,`annotation-key`,`values`])):s.value.length?(D(),r($,{key:2,kind:e.kind,"annotation-key":e.annotationKey,values:s.value},null,8,[`kind`,`annotation-key`,`values`])):(D(),l(w,{key:3},[a.value?(D(),l(`a`,{key:0,href:e.value,target:`_blank`},v(e.value),9,ur)):(D(),l(w,{key:1},[M(v(e.value),1)],64))],64))])]))}},fr={class:`instance-title-text`},pr={class:`instance-name`},mr={class:`instance-kind-subtitle`},hr={key:0,class:`generated-badge`},gr={class:`generated-script`},_r={key:0,class:`generated-time`},vr={class:`header-actions`},yr={key:0,class:`view-pager`,role:`group`,"aria-label":`Diagram view`},br=[`aria-pressed`],xr=[`aria-pressed`],Sr=[`innerHTML`],Cr={class:`graph-options`},wr={role:`group`,"aria-label":`Graph depth`},Tr=[`aria-pressed`,`title`,`onClick`],Er={role:`group`,"aria-label":`Graph layers`},Dr=[`aria-pressed`,`aria-label`,`disabled`,`title`,`onClick`],Or=[`innerHTML`],kr={key:3,class:`graph-too-large`},Ar=[`innerHTML`],jr={class:`documentation`},Mr=_({__name:`InstanceDetail`,props:{data:Object,kind:String,kindMeta:Object},setup(n){let a=n,g=j(``),_=j(null),x=j(null),A=!1,I=null,L=[1,2,3,null],R=S,z=e=>`${O.find(t=>t.id===e)?.title||e} layer`;function ee(e,t,n){try{let r=localStorage.getItem(e),i=r===null?t:JSON.parse(r);return n.includes(i)?i:t}catch{return t}}function ne(e,t){try{localStorage.setItem(e,JSON.stringify(t))}catch{}}let B=j(ee(`archsight.graphDepth`,2,L)),V=j([...a.data.graph_layers||R]);async function se(e){B.value=e,ne(`archsight.graphDepth`,e),A=!1,await Z()}async function ce(e){let t=V.value.includes(e);t&&V.value.length===1||(V.value=t?V.value.filter(t=>t!==e):R.filter(t=>t===e||V.value.includes(t)),A=!1,await Z())}let U=j(null);H(U);let{embeds:le,scanEmbeds:de}=oe(),fe=j(null);H(fe);let W=d(()=>a.data.metadata?.annotations||{}),G=d(()=>Object.keys(a.data.relations||{}).length>0),pe=d(()=>{let e=a.data.references||{};return G.value||Object.keys(e).length>0}),K=d(()=>W.value[`generated/script`]),me=d(()=>W.value[`generated/at`]),q=d(()=>W.value[`architecture/description`]),J=d(()=>a.data.diagram||``),Y=j(a.data.diagram?`diagram`:`graph`),he=[[`go`,`Go`],[`python`,`Python`],[`java`,`Java`],[`typescript`,`TypeScript`],[`javascript`,`JavaScript`],[`rust`,`Rust`],[`ruby`,`Ruby`],[`crystal`,`Crystal`],[`cpp`,`C++`],[`csharp`,`C#`],[`zig`,`Zig`],[`elixir`,`Elixir`]],ge=d(()=>{let e=he.filter(([e])=>W.value[`architecture/${e}/modules`]).map(([e,t])=>({label:`${t} Module Structure`,dot:W.value[`architecture/${e}/modules`]}));return!e.length&&W.value[`architecture/modules`]&&e.push({label:`Module Structure`,dot:W.value[`architecture/modules`]}),e}),_e=[`scc/language/`,`repository/artifacts/`,`link/`,`team/`,`jira/`,`generated/`,`license/`],ve=new Set([`scc/languages`,`architecture/description`,`architecture/diagram`,`architecture/modules`,`workflow/platforms`,`workflow/types`,`agentic/tools`,`repository/artifacts`,`repository/git`,`repository/visibility`,`lifecycle/status`,`lifecycle/replacedBy`,`component/dependents`]),ye=[/^scc\/estimated(Cost|ScheduleMonths|People)$/,/^activity\/(commits|contributors(\/.*)?|status|busFactor|createdAt)$/,/^scc\/language\/.+\/loc$/,/^repository\/$/,/^architecture\/.+\/modules$/],be=d(()=>{let e=new Set;for(let[t,n]of Object.entries(a.data.references||{}))for(let r of Object.values(n))r.forEach(n=>e.add(`${t}/${n}`));return e.size}),Se=d(()=>{let e=e=>{let t=Qn.indexOf(e);return t===-1?Qn.length:t};return Object.entries(W.value).filter(([e])=>!(ve.has(e)||_e.some(t=>e.startsWith(t))||ye.some(t=>t.test(e)))).sort(([t],[n])=>e(t)-e(n))});async function Z(){if(A||!G.value)return;A=!0;let e=await b(a.kind,a.data.name,{depth:B.value,layers:V.value});I?.destroy(),I=null,g.value=e?await N(e):``,await m(),Te()}async function we(e){Y.value=e,e===`graph`&&await Z()}i(async()=>{Y.value===`graph`&&await Z(),await m(),U.value&&(ie(U.value),re(U.value),de(U.value))}),p(q,async()=>{await m(),U.value&&(ie(U.value),re(U.value),de(U.value))}),c(()=>{I?.destroy()});function Te(){if(!_.value)return;let e=_.value.querySelector(`svg`);e&&(I=P(e,_.value,{fullscreenTarget:x.value}))}return(i,a)=>{let c=h(`router-link`);return D(),l(w,null,[f(`article`,null,[f(`header`,null,[f(`h2`,null,[n.kindMeta?(D(),l(`i`,{key:0,class:k(`iconoir-${n.kindMeta.icon} icon-${n.kindMeta.layer}`)},null,2)):o(``,!0),f(`div`,fr,[f(`span`,pr,v(E(F)(n.data.name,n.kind)),1),f(`span`,mr,v(n.kind),1)])]),K.value?(D(),l(`div`,hr,[f(`span`,gr,[a[2]||=M(` by `,-1),t(c,{to:{name:`instance`,params:{kind:`Import`,instance:K.value}}},{default:e(()=>[M(v(K.value),1)]),_:1},8,[`to`])]),me.value?(D(),l(`span`,_r,` generated `+v(E(te)(me.value)),1)):o(``,!0)])):o(``,!0),f(`div`,vr,[t(ue,{kind:n.kind,name:n.data.name},null,8,[`kind`,`name`]),K.value?o(``,!0):(D(),r(c,{key:0,class:`btn-header`,to:`/kinds/${n.kind}/instances/${n.data.name}/edit`,title:`Edit this resource`},{default:e(()=>[...a[3]||=[f(`i`,{class:`iconoir-edit-pencil`},null,-1),M(` Edit `,-1)]]),_:1},8,[`to`]))])]),J.value&&G.value?(D(),l(`div`,yr,[f(`button`,{type:`button`,class:k([`outline`,{secondary:Y.value!==`diagram`}]),"aria-pressed":Y.value===`diagram`,onClick:a[0]||=e=>we(`diagram`)},[...a[4]||=[f(`i`,{class:`iconoir-developer`},null,-1),M(` Diagram `,-1)]],10,br),f(`button`,{type:`button`,class:k([`outline`,{secondary:Y.value!==`graph`}]),"aria-pressed":Y.value===`graph`,onClick:a[1]||=e=>we(`graph`)},[...a[5]||=[f(`i`,{class:`iconoir-graph-up`},null,-1),M(` Dependencies `,-1)]],10,xr)])):o(``,!0),J.value?y((D(),l(`div`,{key:1,ref_key:`diagramEl`,ref:fe,class:`asd-diagram-wrap`,innerHTML:J.value},null,8,Sr)),[[T,Y.value===`diagram`]]):o(``,!0),G.value&&g.value?y((D(),l(`div`,{key:2,ref_key:`graphBox`,ref:x,class:`graph-container`},[f(`div`,Cr,[a[6]||=f(`i`,{class:`iconoir-depth`,title:`Depth: how many steps the graph follows`},null,-1),f(`div`,wr,[(D(),l(w,null,s(L,e=>f(`button`,{key:String(e),type:`button`,class:k({outline:B.value!==e,secondary:B.value!==e}),"aria-pressed":B.value===e,title:e?`Depth ${e}: ${e} step${e>1?`s`:``} from here`:`Depth: all the way`,onClick:t=>se(e)},v(e??`All`),11,Tr)),64))]),a[7]||=f(`i`,{class:`iconoir-color-filter`,title:`Layers the graph follows`},null,-1),f(`div`,Er,[(D(!0),l(w,null,s(E(R),e=>(D(),l(`button`,{key:e,type:`button`,class:k([`layer-toggle`,{outline:!V.value.includes(e),secondary:!V.value.includes(e)}]),"aria-pressed":V.value.includes(e),"aria-label":z(e),disabled:V.value.length===1&&V.value.includes(e),title:`${z(e)}: ${V.value.includes(e)?`shown, click to hide`:`hidden, click to show`}`,onClick:t=>ce(e)},[f(`span`,{class:`layer-swatch`,style:C({background:`var(--layer-${e}-fill, var(--pico-muted-border-color))`})},null,4)],10,Dr))),128))])]),f(`div`,{id:`graphviz`,ref_key:`graphEl`,ref:_,class:`canvas`,innerHTML:g.value},null,8,Or)],512)),[[T,Y.value===`graph`]]):pe.value&&!G.value&&!J.value?(D(),l(`p`,kr,[...a[8]||=[f(`i`,{class:`iconoir-graph-up`},null,-1),M(` No outgoing dependencies — graph omitted `,-1)]])):o(``,!0),q.value?(D(),l(`div`,{key:4,ref_key:`descEl`,ref:U,innerHTML:q.value,class:k([`prose`,{footer:pe.value}])},null,10,Ar)):o(``,!0),(D(!0),l(w,null,s(E(le),e=>(D(),r(u,{key:e.key,to:e.el},[t(ae,{kind:e.kind,name:e.name,spec:e.spec},null,8,[`kind`,`name`,`spec`])],8,[`to`]))),128))]),(D(!0),l(w,null,s(ge.value,e=>(D(),r(xe,{key:e.label,dot:e.dot,label:e.label},null,8,[`dot`,`label`]))),128)),t(Ce,{data:n.data},null,8,[`data`]),f(`article`,jr,[a[9]||=f(`header`,null,[f(`h2`,null,`Details`)],-1),f(`table`,null,[f(`tbody`,null,[t(ke,{annotations:W.value},null,8,[`annotations`]),t(ze,{annotations:W.value,kind:n.kind},null,8,[`annotations`,`kind`]),t(Ye,{annotations:W.value},null,8,[`annotations`]),t(it,{annotations:W.value},null,8,[`annotations`]),t(Ct,{annotations:W.value,kind:n.kind},null,8,[`annotations`,`kind`]),t($t,{annotations:W.value,instance:n.data},null,8,[`annotations`,`instance`]),t(rn,{annotations:W.value,kind:n.kind},null,8,[`annotations`,`kind`]),t(On,{annotations:W.value,kind:n.kind},null,8,[`annotations`,`kind`]),t(Fn,{annotations:W.value,kind:n.kind},null,8,[`annotations`,`kind`]),t(Kn,{annotations:W.value,kind:n.kind},null,8,[`annotations`,`kind`]),t(Yn,{annotations:W.value},null,8,[`annotations`]),t(sr,{annotations:W.value,kind:n.kind,links:n.data.annotation_links,incoming:be.value},null,8,[`annotations`,`kind`,`links`,`incoming`]),(D(!0),l(w,null,s(Se.value,([e,t])=>(D(),r(dr,{key:e,"annotation-key":e,value:t,kind:n.kind,format:n.data.annotation_formats?.[e]||null},null,8,[`annotation-key`,`value`,`kind`,`format`]))),128))])])]),t(X,{data:n.data},null,8,[`data`])],64)}}},[[`__scopeId`,`data-v-fc508dab`]]),Nr={class:`view-header`},Pr={class:`instance-title-text`},Fr={class:`instance-name`},Ir={class:`header-actions`},Lr=[`innerHTML`],Rr={key:1,class:`view-query-display`},zr={class:`query-item`},Br={class:`query-value`},Vr={key:1},Hr=_({__name:`ViewDetail`,props:{data:Object,kindMeta:Object},setup(e){let n=e,i=d(()=>n.data.metadata?.annotations||{}),a=d(()=>se(i.value)),s=d(()=>a.value.query),c=d(()=>i.value[`architecture/description`]),u=d(()=>a.value.fields),p=d(()=>a.value.sort),m=d(()=>a.value.showKind),h=j(null);return H(h),(n,i)=>(D(),l(w,null,[f(`article`,Nr,[f(`header`,null,[f(`h2`,null,[e.kindMeta?(D(),l(`i`,{key:0,class:k(`iconoir-${e.kindMeta.icon} icon-${e.kindMeta.layer}`)},null,2)):o(``,!0),f(`div`,Pr,[f(`span`,Fr,v(E(F)(e.data.name,`View`)),1),i[0]||=f(`span`,{class:`instance-kind-subtitle`},`View`,-1)])]),f(`div`,Ir,[t(ue,{kind:`View`,name:e.data.name},null,8,[`name`])])]),c.value?(D(),l(`div`,{key:0,ref_key:`descEl`,ref:h,class:`description-box prose`,innerHTML:c.value},null,8,Lr)):o(``,!0),s.value?(D(),l(`div`,Rr,[f(`p`,zr,[i[1]||=f(`span`,{class:`label`},`Query:`,-1),f(`code`,Br,v(s.value),1)])])):o(``,!0)]),s.value?(D(),r(ne,{key:0,query:s.value,fields:u.value,sort:p.value,"show-kind":m.value},null,8,[`query`,`fields`,`sort`,`show-kind`])):o(``,!0),s.value?o(``,!0):(D(),l(`article`,Vr,[...i[2]||=[f(`p`,{class:`view-empty-state`},[f(`em`,null,`No query defined`)],-1)]]))],64))}},[[`__scopeId`,`data-v-1c2b385e`]]),Ur={components:{RelationsGrid:X,AnalysisResults:B,EmbedButton:ue},props:{data:Object,kindMeta:Object},setup(e){let t=d(()=>e.data.metadata?.annotations||{}),n=d(()=>t.value[`analysis/description`]),r=d(()=>t.value[`architecture/description`]),i=d(()=>t.value[`analysis/script`]),a=j(null);H(a);let o=j(null);return H(o),{annotations:t,summary:n,description:r,analysisScript:i,descEl:a,summaryEl:o,displayName:F}}},Wr={class:`analysis-header`},Gr={class:`instance-title-text`},Kr={class:`instance-name`},qr={class:`header-actions`},Jr=[`innerHTML`],Yr=[`innerHTML`],Xr={key:1};function Zr(n,i,a,s,c,u){let d=h(`EmbedButton`),p=h(`router-link`),m=h(`AnalysisResults`),g=h(`RelationsGrid`);return D(),l(w,null,[f(`article`,Wr,[f(`header`,null,[f(`h2`,null,[a.kindMeta?(D(),l(`i`,{key:0,class:k(`iconoir-${a.kindMeta.icon} icon-${a.kindMeta.layer}`)},null,2)):o(``,!0),f(`div`,Gr,[f(`span`,Kr,v(s.displayName(a.data.name,`Analysis`)),1),i[0]||=f(`span`,{class:`instance-kind-subtitle`},`Analysis`,-1)])]),f(`div`,qr,[t(d,{kind:`Analysis`,name:a.data.name},null,8,[`name`]),t(p,{class:`btn-header`,to:`/kinds/Analysis/instances/${a.data.name}/edit`,title:`Edit this resource`},{default:e(()=>[...i[1]||=[f(`i`,{class:`iconoir-edit-pencil`},null,-1),M(` Edit `,-1)]]),_:1},8,[`to`])])]),s.summary?(D(),l(`div`,{key:0,ref:`summaryEl`,class:`analysis-summary prose`,innerHTML:s.summary},null,8,Jr)):o(``,!0),s.description?(D(),l(`div`,{key:1,ref:`descEl`,class:`description-box prose`,innerHTML:s.description},null,8,Yr)):o(``,!0)]),s.analysisScript?(D(),r(m,{key:0,name:a.data.name},null,8,[`name`])):(D(),l(`article`,Xr,[...i[2]||=[f(`p`,{class:`analysis-empty-state`},[f(`i`,{class:`iconoir-warning-triangle`}),M(` No script defined for this analysis. `)],-1)]])),t(g,{data:a.data},null,8,[`data`])],64)}var Qr=_(Ur,[[`render`,Zr],[`__scopeId`,`data-v-a10d9499`]]),$r={class:`import-header`},ei={class:`instance-title-text`},ti={class:`instance-name`},ni={class:`header-actions`},ri={key:0,class:`badge badge-primary`},ii={key:1,class:`badge badge-warning`},ai=[`innerHTML`],oi={key:0,class:`graph-container`},si=[`innerHTML`],ci={key:1,class:`graph-too-large`},li={key:2,class:`graph-too-large`},ui={class:`import-configuration`},di={class:`import-metadata`},fi={key:0,class:`import-meta-item`},pi={key:1,class:`import-meta-item`},mi={key:2,class:`import-meta-item`},hi={key:3,class:`import-meta-item status-enabled`},gi={key:4,class:`import-meta-item status-disabled`},_i={key:0,class:`import-output-path`},vi={key:1,class:`import-config-section`,open:``},yi={class:`import-config-table`},bi={scope:`row`},xi={key:0},Si=_({__name:`ImportDetail`,props:{data:Object,kindMeta:Object},setup(n){let r=n,a=j(``),u=j(null),p=null,g=j(null);H(g);let _=d(()=>r.data.metadata?.annotations||{}),y=d(()=>_.value[`import/handler`]),x=d(()=>_.value[`import/enabled`]!==`false`),S=d(()=>_.value[`import/cacheTime`]),C=d(()=>_.value[`import/priority`]),T=d(()=>_.value[`import/outputPath`]),O=d(()=>_.value[`architecture/description`]),A=d(()=>Object.entries(_.value).filter(([e])=>e.startsWith(`import/config/`)).map(([e,t])=>[e.replace(`import/config/`,``),t])),I=d(()=>{let e=r.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)}),L=d(()=>Object.keys(r.data.relations||{}).length>0),R=d(()=>{let e=r.data.references||{};return L.value||Object.keys(e).length>0}),z=d(()=>I.value>=50);i(async()=>{if(L.value&&!z.value){let e=await b(`Import`,r.data.name);a.value=e?await N(e):``,await m(),ee()}}),c(()=>{p?.destroy()});function ee(){if(!u.value)return;let e=u.value.querySelector(`svg`);e&&(p=P(e,u.value))}function te(e){return typeof e==`string`?e.startsWith(`http`)||e.startsWith(`git@`)||e.startsWith(`file://`):!1}return(r,i)=>{let c=h(`router-link`);return D(),l(w,null,[f(`article`,$r,[f(`header`,null,[f(`h2`,null,[n.kindMeta?(D(),l(`i`,{key:0,class:k(`iconoir-${n.kindMeta.icon} icon-${n.kindMeta.layer}`)},null,2)):o(``,!0),f(`div`,ei,[f(`span`,ti,v(E(F)(n.data.name,`Import`)),1),i[0]||=f(`span`,{class:`instance-kind-subtitle`},`Import`,-1)])]),f(`div`,ni,[y.value?(D(),l(`span`,ri,v(y.value),1)):o(``,!0),x.value?o(``,!0):(D(),l(`span`,ii,`Disabled`)),t(c,{class:`btn-header`,to:`/kinds/Import/instances/${n.data.name}/edit`,title:`Edit this resource`},{default:e(()=>[...i[1]||=[f(`i`,{class:`iconoir-edit-pencil`},null,-1),M(` Edit `,-1)]]),_:1},8,[`to`])])]),O.value?(D(),l(`div`,{key:0,ref_key:`descEl`,ref:g,class:`description-box prose`,innerHTML:O.value},null,8,ai)):o(``,!0),R.value?(D(),l(w,{key:1},[L.value&&!z.value&&a.value?(D(),l(`div`,oi,[f(`div`,{id:`graphviz`,ref_key:`graphEl`,ref:u,class:`canvas`,innerHTML:a.value},null,8,si)])):z.value?(D(),l(`p`,ci,[i[2]||=f(`i`,{class:`iconoir-warning-triangle`},null,-1),M(` Graph too large to display (`+v(I.value)+` relations) `,1)])):L.value?o(``,!0):(D(),l(`p`,li,[...i[3]||=[f(`i`,{class:`iconoir-graph-up`},null,-1),M(` No outgoing dependencies — graph omitted `,-1)]]))],64)):o(``,!0)]),f(`article`,ui,[i[11]||=f(`header`,null,[f(`h3`,null,[f(`i`,{class:`iconoir-settings`}),M(` Configuration`)])],-1),f(`div`,di,[y.value?(D(),l(`span`,fi,[i[4]||=f(`i`,{class:`iconoir-code`},null,-1),M(` `+v(y.value),1)])):o(``,!0),S.value?(D(),l(`span`,pi,[i[5]||=f(`i`,{class:`iconoir-timer`},null,-1),M(` `+v(S.value),1)])):o(``,!0),C.value?(D(),l(`span`,mi,[i[6]||=f(`i`,{class:`iconoir-sort-down`},null,-1),M(` Priority: `+v(C.value),1)])):o(``,!0),x.value?(D(),l(`span`,hi,[...i[7]||=[f(`i`,{class:`iconoir-check-circle`},null,-1),M(` Enabled `,-1)]])):(D(),l(`span`,gi,[...i[8]||=[f(`i`,{class:`iconoir-xmark-circle`},null,-1),M(` Disabled `,-1)]]))]),T.value?(D(),l(`div`,_i,[i[9]||=f(`strong`,null,`Output:`,-1),f(`code`,null,v(T.value),1)])):o(``,!0),A.value.length?(D(),l(`details`,vi,[i[10]||=f(`summary`,null,[f(`i`,{class:`iconoir-list`}),M(` Handler Settings `)],-1),f(`table`,yi,[f(`tbody`,null,[(D(!0),l(w,null,s(A.value,([e,t])=>(D(),l(`tr`,{key:e},[f(`th`,bi,v(e),1),f(`td`,null,[te(t)?(D(),l(`code`,xi,v(t),1)):(D(),l(w,{key:1},[M(v(t),1)],64))])]))),128))])])])):o(``,!0)]),t(X,{data:n.data},null,8,[`data`])],64)}}},[[`__scopeId`,`data-v-f0340aef`]]),Ci={class:`page-actions`},wi={class:`page-resource`},Ti={__name:`PageDetail`,props:{data:Object,kindMeta:Object},setup(n){return(r,i)=>{let a=h(`router-link`);return D(),l(w,null,[t(ce,{name:n.data.name},{actions:e(()=>[f(`div`,Ci,[f(`span`,wi,[n.kindMeta?(D(),l(`i`,{key:0,class:k(`iconoir-${n.kindMeta.icon} icon-${n.kindMeta.layer}`)},null,2)):o(``,!0),i[0]||=M(` Page `,-1),f(`code`,null,v(E(F)(n.data.name,`Page`)),1)]),t(a,{class:`btn-header`,to:{name:`page`,params:{name:n.data.name}},title:`Open in the handbook tree`},{default:e(()=>[...i[1]||=[f(`i`,{class:`iconoir-book`},null,-1),M(` Open in handbook `,-1)]]),_:1},8,[`to`]),t(a,{class:`btn-header`,to:`/kinds/Page/instances/${encodeURIComponent(n.data.name)}/edit`,title:`Edit this page`},{default:e(()=>[...i[2]||=[f(`i`,{class:`iconoir-edit-pencil`},null,-1),M(` Edit `,-1)]]),_:1},8,[`to`])])]),_:1},8,[`name`]),t(X,{data:n.data},null,8,[`data`])],64)}}},Ei={key:0},Di={key:1},Oi={__name:`InstanceRouter`,props:{kind:String,instance:String},setup(e){let t=e,i=n(),s=a(`kinds`),c=j(null),u=j(!0),d=j(null);async function m(){u.value=!0,d.value=null;try{c.value=await x(t.kind,t.instance);let e=c.value.kind||t.kind,n=c.value.name||t.instance;(e!==t.kind||n!==t.instance)&&i.replace({name:`instance`,params:{kind:e,instance:n}})}catch(e){d.value=e.message}finally{u.value=!1}}p(()=>[t.kind,t.instance],m,{immediate:!0});function h(){return s.value?s.value.kinds.find(e=>e.kind===t.kind):null}return(t,n)=>u.value?(D(),l(`article`,Ei,[...n[0]||=[f(`p`,null,`Loading...`,-1)]])):d.value?(D(),l(`article`,Di,[n[4]||=f(`header`,null,[f(`h2`,null,`Not Found`)],-1),f(`p`,null,[n[1]||=M(`Instance `,-1),f(`strong`,null,v(e.instance),1),n[2]||=M(` of kind `,-1),f(`strong`,null,v(e.kind),1),n[3]||=M(` was not found.`,-1)])])):c.value?(D(),l(w,{key:2},[e.kind===`View`?(D(),r(Hr,{key:0,data:c.value,"kind-meta":h()},null,8,[`data`,`kind-meta`])):e.kind===`Analysis`?(D(),r(Qr,{key:1,data:c.value,"kind-meta":h()},null,8,[`data`,`kind-meta`])):e.kind===`Import`?(D(),r(Si,{key:2,data:c.value,"kind-meta":h()},null,8,[`data`,`kind-meta`])):e.kind===`Page`?(D(),r(Ti,{key:3,data:c.value,"kind-meta":h()},null,8,[`data`,`kind-meta`])):(D(),r(Mr,{key:4,data:c.value,kind:e.kind,"kind-meta":h()},null,8,[`data`,`kind`,`kind-meta`]))],64)):o(``,!0)}};export{Oi as default};