@skill-map/cli 0.13.0 → 0.14.1
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/dist/cli/guide/sm-guide.md +798 -0
- package/dist/cli.js +752 -332
- package/dist/cli.js.map +1 -1
- package/dist/index.js +2 -2
- package/dist/index.js.map +1 -1
- package/dist/kernel/index.js +2 -2
- package/dist/kernel/index.js.map +1 -1
- package/dist/ui/{chunk-NUUSKOAE.js → chunk-AVRC55YV.js} +1 -1
- package/dist/ui/{chunk-MFQFSZZ5.js → chunk-DOJURY6T.js} +1 -1
- package/dist/ui/{chunk-J3FDTSKA.js → chunk-G6SL4UFD.js} +1 -1
- package/dist/ui/{chunk-VYSE3ZFQ.js → chunk-T5SUVDLE.js} +12 -12
- package/dist/ui/{chunk-SKGGJQY3.js → chunk-TEPC3SFH.js} +2 -2
- package/dist/ui/chunk-VJAWM5V3.js +210 -0
- package/dist/ui/{chunk-6EW3JAB6.js → chunk-WFJRSBK6.js} +2 -2
- package/dist/ui/{chunk-ZTVMUEY2.js → chunk-ZF7H74JY.js} +1 -1
- package/dist/ui/favicon-32x32.png +0 -0
- package/dist/ui/favicon.svg +14 -0
- package/dist/ui/index.html +10 -2
- package/dist/ui/main-TG4BEOVI.js +1 -0
- package/package.json +2 -2
- package/dist/ui/chunk-RN7YDIJP.js +0 -210
- package/dist/ui/favicon.ico +0 -0
- package/dist/ui/main-7S2SK7UD.js +0 -1
|
@@ -1,4 +1,4 @@
|
|
|
1
|
-
import{a as
|
|
1
|
+
import{a as de,b as ce}from"./chunk-DOJURY6T.js";import{d as oe,e as ae,f as Ge,g as le}from"./chunk-ZF7H74JY.js";import{$ as V,A as T,B as W,Ba as $,Cb as ze,D as xe,Da as Le,Db as He,Ea as G,Fa as P,Fc as $e,G as Se,Ga as d,Gc as je,H as q,Ha as c,Hc as z,I as i,Ia as ge,Ic as ee,Ja as w,Kc as Ue,Nc as Qe,O as B,Oa as he,Oc as Ke,P as we,Pa as J,Qa as f,R as Ee,Ra as Ne,S as Pe,T as h,Ta as j,Uc as U,Vc as te,W as E,Z as m,_,_a as Fe,aa as b,ab as R,ad as ne,ba as k,bb as De,bd as ie,ca as p,cb as A,cd as We,da as r,dd as re,ea as a,fa as y,fd as Xe,ga as X,gd as Ye,ha as fe,i as be,ia as Me,ja as Ce,ka as ye,l as K,la as S,m as ke,n as Te,oa as L,ob as Re,p as v,qa as N,qb as Z,r as M,ra as l,rb as Ae,s as O,sa as Oe,ta as Y,tc as qe,ua as Ve,w as Ie,wa as F,xa as D,yb as Be}from"./chunk-AVRC55YV.js";import"./chunk-Q7L6LLAK.js";var Je=`
|
|
2
2
|
.p-card {
|
|
3
3
|
background: dt('card.background');
|
|
4
4
|
color: dt('card.color');
|
|
@@ -35,4 +35,4 @@ import{a as re,b as le}from"./chunk-MFQFSZZ5.js";import{d as oe,e as ae,f as Ge,
|
|
|
35
35
|
.p-card {
|
|
36
36
|
display: block;
|
|
37
37
|
}
|
|
38
|
-
`,St={root:"p-card p-component",header:"p-card-header",body:"p-card-body",caption:"p-card-caption",title:"p-card-title",subtitle:"p-card-subtitle",content:"p-card-content",footer:"p-card-footer"},Ze=(()=>{class t extends Ue{name="card";style=It;classes=St;static \u0275fac=(()=>{let e;return function(s){return(e||(e=xe(t)))(s||t)}})();static \u0275prov=K({token:t,factory:t.\u0275fac})}return t})();var et=new Te("CARD_INSTANCE"),Q=(()=>{class t extends Ke{componentName="Card";$pcCard=v(et,{optional:!0,skipSelf:!0})??void 0;bindDirectiveInstance=v(U,{self:!0});_componentStyle=v(Ze);onAfterViewChecked(){this.bindDirectiveInstance.setAttrs(this.ptms(["host","root"]))}header;subheader;set style(e){qe(this._style(),e)||(this._style.set(e),this.el?.nativeElement&&e&&Object.keys(e).forEach(o=>{this.el.nativeElement.style[o]=e[o]}))}get style(){return this._style()}styleClass;headerFacet;footerFacet;headerTemplate;titleTemplate;subtitleTemplate;contentTemplate;footerTemplate;_headerTemplate;_titleTemplate;_subtitleTemplate;_contentTemplate;_footerTemplate;_style=T(null);getBlockableElement(){return this.el.nativeElement}templates;onAfterContentInit(){this.templates.forEach(e=>{switch(e.getType()){case"header":this._headerTemplate=e.template;break;case"title":this._titleTemplate=e.template;break;case"subtitle":this._subtitleTemplate=e.template;break;case"content":this._contentTemplate=e.template;break;case"footer":this._footerTemplate=e.template;break;default:this._contentTemplate=e.template;break}})}static \u0275fac=(()=>{let e;return function(s){return(e||(e=xe(t)))(s||t)}})();static \u0275cmp=B({type:t,selectors:[["p-card"]],contentQueries:function(o,s,C){if(o&1&&Ve(C,$e,5)(C,je,5)(C,lt,4)(C,dt,4)(C,ct,4)(C,st,4)(C,pt,4)(C,z,4),o&2){let x;F(x=D())&&(s.headerFacet=x.first),F(x=D())&&(s.footerFacet=x.first),F(x=D())&&(s.headerTemplate=x.first),F(x=D())&&(s.titleTemplate=x.first),F(x=D())&&(s.subtitleTemplate=x.first),F(x=D())&&(s.contentTemplate=x.first),F(x=D())&&(s.footerTemplate=x.first),F(x=D())&&(s.templates=x)}},hostVars:4,hostBindings:function(o,s){o&2&&(G(s._style()),P(s.cn(s.cx("root"),s.styleClass)))},inputs:{header:"header",subheader:"subheader",style:"style",styleClass:"styleClass"},features:[Ne([Ze,{provide:et,useExisting:t},{provide:Qe,useExisting:t}]),Ee([U]),Pe],ngContentSelectors:_t,decls:8,vars:11,consts:[[3,"pBind","class",4,"ngIf"],[3,"pBind"],[4,"ngTemplateOutlet"],[4,"ngIf"]],template:function(o,s){o&1&&(Oe(mt),h(0,xt,3,4,"div",0),r(1,"div",1),h(2,yt,3,5,"div",0)(3,vt,3,5,"div",0),r(4,"div",1),Y(5),h(6,bt,1,0,"ng-container",2),a(),h(7,Tt,3,4,"div",0),a()),o&2&&(p("ngIf",s.headerFacet||s.headerTemplate||s._headerTemplate),i(),P(s.cx("body")),p("pBind",s.ptm("body")),i(),p("ngIf",s.header||s.titleTemplate||s._titleTemplate),i(),p("ngIf",s.subheader||s.subtitleTemplate||s._subtitleTemplate),i(),P(s.cx("content")),p("pBind",s.ptm("content")),i(2),p("ngTemplateOutlet",s.contentTemplate||s._contentTemplate),i(),p("ngIf",s.footerFacet||s.footerTemplate||s._footerTemplate))},dependencies:[Ae,Re,Z,ee,te,U],encapsulation:2,changeDetection:0})}return t})(),pe=(()=>{class t{static \u0275fac=function(o){return new(o||t)};static \u0275mod=we({type:t});static \u0275inj=ke({imports:[Q,ee,te,ee,te]})}return t})();var nt={emptyNoSelection:{title:"No node selected",descPrefix:"Pick a node from the ",listLink:"list",descMiddle:" or ",graphLink:"graph",descSuffix:"."},emptyNotFound:{title:"Node not found",descSuffix:" does not exist in the collection. ",backLink:"Back to list",descAfterLink:"."},backToList:"\u2190 back to list",cards:{agent:"Agent",command:"Command",hook:"Hook",skill:"Skill",relations:"Relations",metadata:"Metadata",tools:"Tools",external:"External",body:"Body"},fields:{model:"Model",shortcut:"Shortcut",arguments:"Arguments",event:"Event",condition:"Condition",blocking:"Blocking",idempotent:"Idempotent",inputs:"Inputs",outputs:"Outputs",supersededBy:"Superseded by",supersedes:"Supersedes",requires:"Requires",related:"Related",provides:"Provides",conflictsWith:"Conflicts with",tags:"Tags",toolsAllowlist:"Tools (allowlist)",allowedTools:"Allowed tools (pre-approved)",source:"Source",docs:"Docs",homepage:"Homepage",examples:"Examples",version:"Version",priority:"Priority",priorityScale:" / 10",author:"Author",authors:"Authors",license:"License",created:"Created",updated:"Updated",released:"Released",category:"Category",specCompat:"Spec compat"},yes:"yes",no:"no",required:"required",body:{loading:"Loading body\u2026",empty:"This file has no body content (only frontmatter).",unavailable:"Body content unavailable \u2014 the source file may have moved or been deleted since the last scan.",renderError:"Failed to render markdown body.",refreshLabel:"Refresh body"},relations:{verifyHint:"This path is not in the current scan scope. Click to check whether the file exists.",deadConfirmed:"Verified: this path does not resolve to a known node."},authorsSeparator:", ",argTypePrefix:": ",argDescSeparator:" \u2014 ",missing:"\u2014",placeholders:{enrichmentTitle:"Enrichment",summaryTitle:"Summary",findingsTitle:"Findings",body:"Available in v0.8.0"}};var me=class t{sanitizer=v(Be);libsPromise=null;async render(n){let e=await this.loadLibs(),o=e.md.render(n),s=e.purify.sanitize(o);return this.sanitizer.bypassSecurityTrustHtml(s)}async renderToHtml(n){let e=await this.loadLibs(),o=e.md.render(n);return e.purify.sanitize(o)}loadLibs(){return this.libsPromise||(this.libsPromise=wt()),this.libsPromise}static \u0275fac=function(e){return new(e||t)};static \u0275prov=K({token:t,factory:t.\u0275fac,providedIn:"root"})};async function wt(){let[t,n]=await Promise.all([import("./chunk-STE4Z72W.js"),import("./chunk-N2C45VIA.js")]),e=t.default,o=new e({html:!1,linkify:!0}),s=n.default;return{md:o,purify:s}}var _e=class t{title=A.required();body=A.required();icon=A("pi pi-clock");testId=A(null);static \u0275fac=function(e){return new(e||t)};static \u0275cmp=B({type:t,selectors:[["sm-empty-state"]],inputs:{title:[1,"title"],body:[1,"body"],icon:[1,"icon"],testId:[1,"testId"]},decls:6,vars:5,consts:[[1,"empty-state-card"],["aria-hidden","true",1,"empty-state-card__icon"],[1,"empty-state-card__title"],[1,"empty-state-card__body"]],template:function(e,o){if(e&1&&(X(0,"div",0),Me(1,"span",1),X(2,"p",2),d(3),fe(),X(4,"p",3),d(5),fe()()),e&2){let s=o.testId();E("data-testid",s),i(),P(o.icon()),i(2),c(o.title()),i(2),c(o.body())}},styles:["[_nghost-%COMP%]{display:block}.empty-state-card[_ngcontent-%COMP%]{display:flex;flex-direction:column;align-items:flex-start;gap:.5rem;padding:1rem 1.25rem;border:1px dashed var(--p-content-border-color);border-radius:var(--p-border-radius-md);background:var(--p-content-background);color:var(--p-text-muted-color)}.empty-state-card__icon[_ngcontent-%COMP%]{font-size:1.25rem;color:var(--p-text-muted-color);opacity:.7}.empty-state-card__title[_ngcontent-%COMP%]{margin:0;font-weight:600;color:var(--p-text-color)}.empty-state-card__body[_ngcontent-%COMP%]{margin:0;font-size:.85rem;line-height:1.4}"],changeDetection:0})};var ot={cardHeader:"Linked nodes",refreshLabel:"Refresh links",outgoingHeader:"Outgoing",incomingHeader:"Incoming",loading:"Loading links\u2026",error:"Failed to load links.",emptyOutgoing:"No outgoing links from this node.",emptyIncoming:"No incoming links to this node.",confidence:{high:"high",medium:"medium",low:"low"},sourcesPrefix:"detected by ",sourcesSeparator:", "};var at=(t,n)=>n.source+"|"+n.target+"|"+n.kind+"|"+((n.trigger==null?null:n.trigger.normalizedTrigger)??"");function Vt(t,n){if(t&1){let e=L();r(0,"div",4)(1,"h3",5),d(2),a(),r(3,"p-button",6),N("onClick",function(){M(e);let s=l(2);return O(s.refresh())}),a()()}if(t&2){let e=l(2);i(2),c(e.texts.cardHeader),i(),p("rounded",!0)("text",!0)("ariaLabel",e.texts.refreshLabel)("pTooltip",e.texts.refreshLabel)("disabled",e.state()==="loading")}}function Lt(t,n){if(t&1&&(r(0,"p",2),d(1),a()),t&2){let e=l(2);i(),c(e.texts.loading)}}function Nt(t,n){if(t&1&&(r(0,"p",3),d(1),a()),t&2){let e=l(2);i(),c(e.texts.error)}}function Ft(t,n){if(t&1&&(r(0,"p",9),d(1),a()),t&2){let e=l(3);i(),c(e.texts.emptyOutgoing)}}function Dt(t,n){if(t&1&&(r(0,"span",17),d(1),a()),t&2){let e=l().$implicit,o=l(4);i(),w(" ",o.texts.sourcesPrefix,"",e.sources.join(o.texts.sourcesSeparator)," ")}}function Rt(t,n){if(t&1){let e=L();r(0,"li",13),y(1,"p-tag",14),r(2,"button",15),N("click",function(){let s=M(e).$implicit,C=l(4);return O(C.onOpen(s.target))}),d(3),a(),y(4,"p-tag",16),m(5,Dt,2,2,"span",17),a()}if(t&2){let e=n.$implicit,o=l(4);E("data-testid","linked-nodes-outgoing-row-"+e.target),i(),p("value",e.kind)("severity",o.kindSeverity(e.kind)),i(),E("data-testid","linked-nodes-outgoing-link-"+e.target),i(),ge(" ",e.target," "),i(),p("value",o.confidenceLabel(e.confidence))("severity",o.confidenceSeverity(e.confidence))("rounded",!0),i(),_(e.sources.length?5:-1)}}function At(t,n){if(t&1&&(r(0,"ul",10),b(1,Rt,6,9,"li",13,at),a()),t&2){let e=l(3);i(),k(e.outgoing())}}function Bt(t,n){if(t&1&&(r(0,"p",12),d(1),a()),t&2){let e=l(3);i(),c(e.texts.emptyIncoming)}}function zt(t,n){if(t&1&&(r(0,"span",17),d(1),a()),t&2){let e=l().$implicit,o=l(4);i(),w(" ",o.texts.sourcesPrefix,"",e.sources.join(o.texts.sourcesSeparator)," ")}}function Ht(t,n){if(t&1){let e=L();r(0,"li",13),y(1,"p-tag",14),r(2,"button",15),N("click",function(){let s=M(e).$implicit,C=l(4);return O(C.onOpen(s.source))}),d(3),a(),y(4,"p-tag",16),m(5,zt,2,2,"span",17),a()}if(t&2){let e=n.$implicit,o=l(4);E("data-testid","linked-nodes-incoming-row-"+e.source),i(),p("value",e.kind)("severity",o.kindSeverity(e.kind)),i(),E("data-testid","linked-nodes-incoming-link-"+e.source),i(),ge(" ",e.source," "),i(),p("value",o.confidenceLabel(e.confidence))("severity",o.confidenceSeverity(e.confidence))("rounded",!0),i(),_(e.sources.length?5:-1)}}function qt(t,n){if(t&1&&(r(0,"ul",10),b(1,Ht,6,9,"li",13,at),a()),t&2){let e=l(3);i(),k(e.incoming())}}function $t(t,n){if(t&1&&(r(0,"section",7)(1,"h4",8),d(2),a(),m(3,Ft,2,1,"p",9)(4,At,3,0,"ul",10),a(),r(5,"section",11)(6,"h4",8),d(7),a(),m(8,Bt,2,1,"p",12)(9,qt,3,0,"ul",10),a()),t&2){let e=l(2);i(2),c(e.texts.outgoingHeader),i(),_(e.outgoing().length===0?3:4),i(4),c(e.texts.incomingHeader),i(),_(e.incoming().length===0?8:9)}}function jt(t,n){if(t&1&&(r(0,"p-card",0),h(1,Vt,4,6,"ng-template",1),m(2,Lt,2,1,"p",2)(3,Nt,2,1,"p",3)(4,$t,10,4),a()),t&2){let e,o=l();i(2),_((e=o.state())==="loading"?2:e==="error"?3:e==="ready"?4:-1)}}var Ut={invokes:"warn",references:"info",mentions:"secondary",supersedes:"success"},Qt={high:"success",medium:"info",low:"warn"},ue=class t{dataSource=v(de);destroyRef=v(Ie);texts=ot;path=A(null);openPath=De();state=T("idle");outgoing=T([]);incoming=T([]);fetchToken=0;hasResults=R(()=>this.state()==="ready"&&(this.outgoing().length>0||this.incoming().length>0));constructor(){this.dataSource.events().pipe(be(n=>n.type==="scan.completed"),We(this.destroyRef)).subscribe(()=>{let n=this.path();n&&this.fetch(n)}),W(()=>{let n=this.path();if(!n){this.fetchToken++,this.state.set("idle"),this.outgoing.set([]),this.incoming.set([]);return}this.fetch(n)})}refresh(){let n=this.path();n&&this.fetch(n)}onOpen(n){this.openPath.emit(n)}kindSeverity(n){return Ut[n]??"secondary"}confidenceSeverity(n){return Qt[n]??"info"}confidenceLabel(n){return this.texts.confidence[n]??n}async fetch(n){let e=++this.fetchToken;this.state.set("loading");try{let[o,s]=await Promise.all([this.dataSource.listLinks({from:n}),this.dataSource.listLinks({to:n})]);if(e!==this.fetchToken)return;this.outgoing.set(o.items),this.incoming.set(s.items),this.state.set("ready")}catch{if(e!==this.fetchToken)return;this.outgoing.set([]),this.incoming.set([]),this.state.set("error")}}static \u0275fac=function(e){return new(e||t)};static \u0275cmp=B({type:t,selectors:[["sm-linked-nodes-panel"]],inputs:{path:[1,"path"]},outputs:{openPath:"openPath"},decls:1,vars:1,consts:[["styleClass","linked-nodes-panel","data-testid","linked-nodes-panel"],["pTemplate","header"],["data-testid","linked-nodes-loading",1,"linked-nodes-panel__status"],["data-testid","linked-nodes-error",1,"linked-nodes-panel__status","linked-nodes-panel__status--warn"],[1,"linked-nodes-panel__header"],[1,"linked-nodes-panel__title"],["icon","pi pi-refresh","severity","secondary","data-testid","linked-nodes-refresh",3,"onClick","rounded","text","ariaLabel","pTooltip","disabled"],["data-testid","linked-nodes-outgoing",1,"linked-nodes-panel__section"],[1,"linked-nodes-panel__section-title"],["data-testid","linked-nodes-outgoing-empty",1,"linked-nodes-panel__status"],[1,"linked-nodes-panel__rows"],["data-testid","linked-nodes-incoming",1,"linked-nodes-panel__section"],["data-testid","linked-nodes-incoming-empty",1,"linked-nodes-panel__status"],[1,"linked-nodes-panel__row"],[3,"value","severity"],["type","button",1,"linked-nodes-panel__path",3,"click"],[3,"value","severity","rounded"],[1,"linked-nodes-panel__sources"]],template:function(e,o){e&1&&m(0,jt,5,1,"p-card",0),e&2&&_(o.path()?0:-1)},dependencies:[pe,Q,z,le,re,ce,ie,ne,ae,oe],styles:["[_nghost-%COMP%]{display:block}.linked-nodes-panel__header[_ngcontent-%COMP%]{display:flex;align-items:center;justify-content:space-between;gap:.5rem;padding:.75rem 1rem 0}.linked-nodes-panel__title[_ngcontent-%COMP%]{margin:0;font-size:.95rem;font-weight:600}.linked-nodes-panel__status[_ngcontent-%COMP%]{margin:0;font-size:.85rem;color:var(--p-text-muted-color);font-style:italic}.linked-nodes-panel__status--warn[_ngcontent-%COMP%]{color:var(--sm-severity-warn);font-style:normal}.linked-nodes-panel__section[_ngcontent-%COMP%] + .linked-nodes-panel__section[_ngcontent-%COMP%]{margin-top:1rem}.linked-nodes-panel__section-title[_ngcontent-%COMP%]{margin:0 0 .5rem;font-size:.8rem;font-weight:600;text-transform:uppercase;letter-spacing:.04em;color:var(--p-text-muted-color)}.linked-nodes-panel__rows[_ngcontent-%COMP%]{list-style:none;margin:0;padding:0;display:flex;flex-direction:column;gap:.5rem}.linked-nodes-panel__row[_ngcontent-%COMP%]{display:flex;align-items:center;gap:.5rem;flex-wrap:wrap;padding:.4rem .5rem;border-radius:4px;background:var(--p-content-background);border:1px solid var(--p-content-border-color)}.linked-nodes-panel__path[_ngcontent-%COMP%]{font-family:ui-monospace,SFMono-Regular,Menlo,Monaco,Consolas,monospace;font-size:.85rem;color:var(--p-primary-color);background:none;border:none;padding:0;cursor:pointer;text-decoration:underline;text-underline-offset:2px}.linked-nodes-panel__path[_ngcontent-%COMP%]:hover{text-decoration:none}.linked-nodes-panel__sources[_ngcontent-%COMP%]{font-size:.75rem;color:var(--p-text-muted-color);margin-left:auto}"],changeDetection:0})};var Kt=t=>({path:t,testIdPrefix:"rel-supersededBy"}),Wt=t=>({path:t,testIdPrefix:"rel-supersedes"}),Xt=t=>({path:t,testIdPrefix:"rel-requires"}),Yt=t=>({path:t,testIdPrefix:"rel-related"}),ve=(t,n)=>n.name;function Gt(t,n){if(t&1&&(r(0,"section",1)(1,"div",2),y(2,"span",3),r(3,"p",4),d(4),a(),r(5,"p",5),d(6),r(7,"a",6),d(8),a(),d(9),r(10,"a",7),d(11),a(),d(12),a()()()),t&2){let e=l();i(4),c(e.texts.emptyNoSelection.title),i(2),c(e.texts.emptyNoSelection.descPrefix),i(2),c(e.texts.emptyNoSelection.listLink),i(),c(e.texts.emptyNoSelection.descMiddle),i(2),c(e.texts.emptyNoSelection.graphLink),i(),c(e.texts.emptyNoSelection.descSuffix)}}function Jt(t,n){if(t&1&&(r(0,"section",1)(1,"div",8),y(2,"span",9),r(3,"p",4),d(4),a(),r(5,"p",5)(6,"code"),d(7),a(),d(8),r(9,"a",6),d(10),a(),d(11),a()()()),t&2){let e=l();i(4),c(e.texts.emptyNotFound.title),i(3),c(e.path()),i(),c(e.texts.emptyNotFound.descSuffix),i(2),c(e.texts.emptyNotFound.backLink),i(),c(e.texts.emptyNotFound.descAfterLink)}}function Zt(t,n){if(t&1&&y(0,"p-tag",13),t&2){l();let e=f(1),o=l();p("value",e.stability)("severity",o.stabilitySeverity(e.stability))("rounded",!0)}}function en(t,n){if(t&1&&(r(0,"p-card",21)(1,"dl",29)(2,"dt"),d(3),a(),r(4,"dd")(5,"code"),d(6),a()()()()),t&2){let e=l(2);p("header",e.texts.cards.agent),i(3),c(e.texts.fields.model),i(3),c(n.model??e.texts.missing)}}function tn(t,n){if(t&1&&(r(0,"dt"),d(1),a(),r(2,"dd")(3,"code"),d(4),a()()),t&2){let e=l(),o=l(2);i(),c(o.texts.fields.shortcut),i(3),c(e.shortcut)}}function nn(t,n){if(t&1&&(r(0,"span",40),d(1),a()),t&2){let e=l().$implicit,o=l(4);i(),w("",o.texts.argTypePrefix,"",e.type)}}function on(t,n){if(t&1&&(r(0,"span",41),d(1),a()),t&2){let e=l(5);i(),c(e.texts.required)}}function an(t,n){if(t&1&&d(0),t&2){let e=l().$implicit,o=l(4);w(" ",o.texts.argDescSeparator,"",e.description," ")}}function rn(t,n){if(t&1&&(r(0,"li")(1,"code"),d(2),a(),m(3,nn,2,2,"span",40),m(4,on,2,1,"span",41),m(5,an,1,2),a()),t&2){let e=n.$implicit;i(2),c(e.name),i(),_(e.type?3:-1),i(),_(e.required?4:-1),i(),_(e.description?5:-1)}}function ln(t,n){if(t&1&&(r(0,"h4"),d(1),a(),r(2,"ul",39),b(3,rn,6,4,"li",null,ve),a()),t&2){let e=l(),o=l(2);i(),c(o.texts.fields.arguments),i(2),k(e.args)}}function dn(t,n){if(t&1&&(r(0,"p-card",22)(1,"dl",29),m(2,tn,5,2),a(),m(3,ln,5,1),a()),t&2){let e=n,o=l(2);p("header",o.texts.cards.command),i(2),_(e.shortcut?2:-1),i(),_(e.args!=null&&e.args.length?3:-1)}}function cn(t,n){if(t&1&&(r(0,"dt"),d(1),a(),r(2,"dd")(3,"code",42),d(4),a()()),t&2){let e=l(),o=l(2);i(),c(o.texts.fields.condition),i(3),c(e.condition)}}function sn(t,n){if(t&1&&(r(0,"p-card",23)(1,"dl",29)(2,"dt"),d(3),a(),r(4,"dd")(5,"code"),d(6),a()(),m(7,cn,5,2),r(8,"dt"),d(9),a(),r(10,"dd"),d(11),a(),r(12,"dt"),d(13),a(),r(14,"dd"),d(15),a()()()),t&2){let e=n,o=l(2);p("header",o.texts.cards.hook),i(3),c(o.texts.fields.event),i(3),c(e.event??o.texts.missing),i(),_(e.condition?7:-1),i(2),c(o.texts.fields.blocking),i(2),c(e.blocking?o.texts.yes:o.texts.no),i(2),c(o.texts.fields.idempotent),i(2),c(e.idempotent?o.texts.yes:o.texts.no)}}function pn(t,n){if(t&1&&(r(0,"span",40),d(1),a()),t&2){let e=l().$implicit,o=l(4);i(),w("",o.texts.argTypePrefix,"",e.type)}}function mn(t,n){if(t&1&&(r(0,"span",41),d(1),a()),t&2){let e=l(5);i(),c(e.texts.required)}}function _n(t,n){if(t&1&&d(0),t&2){let e=l().$implicit,o=l(4);w(" ",o.texts.argDescSeparator,"",e.description," ")}}function un(t,n){if(t&1&&(r(0,"li")(1,"code"),d(2),a(),m(3,pn,2,2,"span",40),m(4,mn,2,1,"span",41),m(5,_n,1,2),a()),t&2){let e=n.$implicit;i(2),c(e.name),i(),_(e.type?3:-1),i(),_(e.required?4:-1),i(),_(e.description?5:-1)}}function xn(t,n){if(t&1&&(r(0,"h4"),d(1),a(),r(2,"ul",39),b(3,un,6,4,"li",null,ve),a()),t&2){let e=l(),o=l(2);i(),c(o.texts.fields.inputs),i(2),k(e.inputs)}}function fn(t,n){if(t&1&&(r(0,"span",40),d(1),a()),t&2){let e=l().$implicit,o=l(4);i(),w("",o.texts.argTypePrefix,"",e.type)}}function Cn(t,n){if(t&1&&d(0),t&2){let e=l().$implicit,o=l(4);w(" ",o.texts.argDescSeparator,"",e.description," ")}}function yn(t,n){if(t&1&&(r(0,"li")(1,"code"),d(2),a(),m(3,fn,2,2,"span",40),m(4,Cn,1,2),a()),t&2){let e=n.$implicit;i(2),c(e.name),i(),_(e.type?3:-1),i(),_(e.description?4:-1)}}function gn(t,n){if(t&1&&(r(0,"h4"),d(1),a(),r(2,"ul",39),b(3,yn,5,3,"li",null,ve),a()),t&2){let e=l(),o=l(2);i(),c(o.texts.fields.outputs),i(2),k(e.outputs)}}function hn(t,n){if(t&1&&(r(0,"p-card",24),m(1,xn,5,1),m(2,gn,5,1),a()),t&2){let e=n,o=l(2);p("header",o.texts.cards.skill),i(),_(e.inputs!=null&&e.inputs.length?1:-1),i(),_(e.outputs!=null&&e.outputs.length?2:-1)}}function vn(t,n){t&1&&y(0,"i",47)}function bn(t,n){t&1&&y(0,"i",48)}function kn(t,n){t&1&&y(0,"i",49)}function Tn(t,n){if(t&1){let e=L();r(0,"button",46),N("click",function(){M(e);let s=l().path,C=l(2);return O(C.verifyDeadLink(s))}),m(1,vn,1,0,"i",47)(2,bn,1,0,"i",48)(3,kn,1,0,"i",49),a()}if(t&2){let e=l(),o=e.path,s=e.testIdPrefix,C=f(0),x=l(2);Le("rel-chip__verify--confirmed",C==="dead-confirmed"),p("disabled",x.isVerifying(o))("pTooltip",C==="dead-confirmed"?x.texts.relations.deadConfirmed:x.texts.relations.verifyHint),E("data-testid",s+"-verify-"+o),i(),_(x.isVerifying(o)?1:C==="dead-confirmed"?2:3)}}function In(t,n){if(t&1){let e=L();he(0),r(1,"span",43)(2,"p-chip",44),N("click",function(){let s=M(e).path,C=f(0),x=l(2);return O(C==="live"&&x.openPath(s))}),a(),m(3,Tn,4,6,"button",45),a()}if(t&2){let e=n.path,o=n.testIdPrefix,s=J(l(2).linkStatus(e));i(),E("data-testid",o+"-"+e),i(),p("label",e)("styleClass",s==="live"?"chip--link":s==="dead-confirmed"?"chip--dead chip--dead-confirmed":"chip--dead"),i(),_(s!=="live"?3:-1)}}function Sn(t,n){t&1&&S(0)}function wn(t,n){if(t&1&&(r(0,"h4"),d(1),a(),r(2,"div",50),h(3,Sn,1,0,"ng-container",51),a()),t&2){l(2);let e=$(25),o=f(1),s=l();i(),c(s.texts.fields.supersededBy),i(2),p("ngTemplateOutlet",e)("ngTemplateOutletContext",j(3,Kt,o.supersededBy))}}function En(t,n){t&1&&S(0)}function Pn(t,n){if(t&1&&h(0,En,1,0,"ng-container",51),t&2){let e=n.$implicit;l(3);let o=$(25);p("ngTemplateOutlet",o)("ngTemplateOutletContext",j(2,Wt,e))}}function Mn(t,n){if(t&1&&(r(0,"h4"),d(1),a(),r(2,"div",50),b(3,Pn,1,4,"ng-container",null,V),a()),t&2){l(2);let e=f(1),o=l();i(),c(o.texts.fields.supersedes),i(2),k(e.supersedes)}}function On(t,n){t&1&&S(0)}function Vn(t,n){if(t&1&&h(0,On,1,0,"ng-container",51),t&2){let e=n.$implicit;l(3);let o=$(25);p("ngTemplateOutlet",o)("ngTemplateOutletContext",j(2,Xt,e))}}function Ln(t,n){if(t&1&&(r(0,"h4"),d(1),a(),r(2,"div",50),b(3,Vn,1,4,"ng-container",null,V),a()),t&2){l(2);let e=f(1),o=l();i(),c(o.texts.fields.requires),i(2),k(e.requires)}}function Nn(t,n){t&1&&S(0)}function Fn(t,n){if(t&1&&h(0,Nn,1,0,"ng-container",51),t&2){let e=n.$implicit;l(3);let o=$(25);p("ngTemplateOutlet",o)("ngTemplateOutletContext",j(2,Yt,e))}}function Dn(t,n){if(t&1&&(r(0,"h4"),d(1),a(),r(2,"div",50),b(3,Fn,1,4,"ng-container",null,V),a()),t&2){l(2);let e=f(1),o=l();i(),c(o.texts.fields.related),i(2),k(e.related)}}function Rn(t,n){if(t&1&&y(0,"p-chip",52),t&2){let e=n.$implicit;p("label",e)}}function An(t,n){if(t&1&&(r(0,"h4"),d(1),a(),r(2,"div",50),b(3,Rn,1,1,"p-chip",52,V),a()),t&2){l(2);let e=f(1),o=l();i(),c(o.texts.fields.provides),i(2),k(e.provides)}}function Bn(t,n){if(t&1&&y(0,"p-chip",53),t&2){let e=n.$implicit;p("label",e)}}function zn(t,n){if(t&1&&(r(0,"h4"),d(1),a(),r(2,"div",50),b(3,Bn,1,1,"p-chip",53,V),a()),t&2){l(2);let e=f(1),o=l();i(),c(o.texts.fields.conflictsWith),i(2),k(e.conflictsWith)}}function Hn(t,n){if(t&1&&(r(0,"p-card",25),m(1,wn,4,5),m(2,Mn,5,1),m(3,Ln,5,1),m(4,Dn,5,1),m(5,An,5,1),m(6,zn,5,1),a()),t&2){l();let e=f(1),o=l();p("header",o.texts.cards.relations),i(),_(e!=null&&e.supersededBy?1:-1),i(),_(!(e==null||e.supersedes==null)&&e.supersedes.length?2:-1),i(),_(!(e==null||e.requires==null)&&e.requires.length?3:-1),i(),_(!(e==null||e.related==null)&&e.related.length?4:-1),i(),_(!(e==null||e.provides==null)&&e.provides.length?5:-1),i(),_(!(e==null||e.conflictsWith==null)&&e.conflictsWith.length?6:-1)}}function qn(t,n){if(t&1&&(r(0,"dt"),d(1),a(),r(2,"dd"),d(3),a()),t&2){l();let e=f(1),o=l();i(),c(o.texts.fields.priority),i(2),w("",e.priority,"",o.texts.fields.priorityScale)}}function $n(t,n){if(t&1&&(r(0,"dt"),d(1),a(),r(2,"dd"),d(3),a()),t&2){l();let e=f(0),o=l();i(),c(o.texts.fields.author),i(2),c(e.author)}}function jn(t,n){if(t&1&&(r(0,"dt"),d(1),a(),r(2,"dd"),d(3),a()),t&2){l();let e=f(0),o=l();i(),c(o.texts.fields.authors),i(2),c(e.authors.join(o.texts.authorsSeparator))}}function Un(t,n){if(t&1&&(r(0,"dt"),d(1),a(),r(2,"dd"),d(3),a()),t&2){l();let e=f(0),o=l();i(),c(o.texts.fields.license),i(2),c(e.license)}}function Qn(t,n){if(t&1&&(r(0,"dt"),d(1),a(),r(2,"dd"),d(3),a()),t&2){l();let e=f(1),o=l();i(),c(o.texts.fields.created),i(2),c(e.created)}}function Kn(t,n){if(t&1&&(r(0,"dt"),d(1),a(),r(2,"dd"),d(3),a()),t&2){l();let e=f(1),o=l();i(),c(o.texts.fields.updated),i(2),c(e.updated)}}function Wn(t,n){if(t&1&&(r(0,"dt"),d(1),a(),r(2,"dd"),d(3),a()),t&2){l();let e=f(1),o=l();i(),c(o.texts.fields.released),i(2),c(e.released)}}function Xn(t,n){if(t&1&&(r(0,"dt"),d(1),a(),r(2,"dd"),d(3),a()),t&2){l();let e=f(1),o=l();i(),c(o.texts.fields.category),i(2),c(e.category)}}function Yn(t,n){if(t&1&&(r(0,"dt"),d(1),a(),r(2,"dd")(3,"code"),d(4),a()()),t&2){l();let e=f(1),o=l();i(),c(o.texts.fields.specCompat),i(3),c(e.specCompat)}}function Gn(t,n){if(t&1&&y(0,"p-chip",52),t&2){let e=n.$implicit;p("label",e)}}function Jn(t,n){if(t&1&&(r(0,"h4"),d(1),a(),r(2,"div",50),b(3,Gn,1,1,"p-chip",52,V),a()),t&2){l();let e=f(1),o=l();i(),c(o.texts.fields.tags),i(2),k(e.tags)}}function Zn(t,n){if(t&1&&y(0,"p-chip",52),t&2){let e=n.$implicit;p("label",e)}}function ei(t,n){if(t&1&&(r(0,"h4"),d(1),a(),r(2,"div",50),b(3,Zn,1,1,"p-chip",52,V),a()),t&2){l(2);let e=f(0),o=l();i(),c(o.texts.fields.toolsAllowlist),i(2),k(e.tools)}}function ti(t,n){if(t&1&&y(0,"p-chip",52),t&2){let e=n.$implicit;p("label",e)}}function ni(t,n){if(t&1&&(r(0,"h4"),d(1),a(),r(2,"div",50),b(3,ti,1,1,"p-chip",52,V),a()),t&2){l(2);let e=f(0),o=l();i(),c(o.texts.fields.allowedTools),i(2),k(e.allowedTools)}}function ii(t,n){if(t&1&&(r(0,"p-card",30),m(1,ei,5,1),m(2,ni,5,1),a()),t&2){l();let e=f(0),o=l();p("header",o.texts.cards.tools),i(),_(e.tools!=null&&e.tools.length?1:-1),i(),_(e.allowedTools!=null&&e.allowedTools.length?2:-1)}}function oi(t,n){if(t&1&&(r(0,"dt"),d(1),a(),r(2,"dd")(3,"a",54),d(4),a()()),t&2){l(2);let e=f(1),o=l();i(),c(o.texts.fields.source),i(2),p("href",e.source,q),i(),c(e.source)}}function ai(t,n){if(t&1&&(r(0,"dt"),d(1),a(),r(2,"dd")(3,"a",54),d(4),a()()),t&2){l(2);let e=f(1),o=l();i(),c(o.texts.fields.docs),i(2),p("href",e.docsUrl,q),i(),c(e.docsUrl)}}function ri(t,n){if(t&1&&(r(0,"dt"),d(1),a(),r(2,"dd")(3,"a",54),d(4),a()()),t&2){l(2);let e=f(1),o=l();i(),c(o.texts.fields.homepage),i(2),p("href",e.homepage,q),i(),c(e.homepage)}}function li(t,n){if(t&1&&(r(0,"dt"),d(1),a(),r(2,"dd")(3,"a",54),d(4),a()()),t&2){l(2);let e=f(1),o=l();i(),c(o.texts.fields.examples),i(2),p("href",e.examplesUrl,q),i(),c(e.examplesUrl)}}function di(t,n){if(t&1&&(r(0,"p-card",31)(1,"dl",29),m(2,oi,5,3),m(3,ai,5,3),m(4,ri,5,3),m(5,li,5,3),a()()),t&2){l();let e=f(1),o=l();p("header",o.texts.cards.external),i(2),_(e!=null&&e.source?2:-1),i(),_(e!=null&&e.docsUrl?3:-1),i(),_(e!=null&&e.homepage?4:-1),i(),_(e!=null&&e.examplesUrl?5:-1)}}function ci(t,n){if(t&1){let e=L();r(0,"div",55)(1,"h3",56),d(2),a(),r(3,"p-button",57),N("onClick",function(){M(e);let s=l(2);return O(s.refreshBody())}),a()()}if(t&2){let e=l(2);i(2),c(e.texts.cards.body),i(),p("rounded",!0)("text",!0)("ariaLabel",e.texts.body.refreshLabel)("pTooltip",e.texts.body.refreshLabel)("disabled",e.bodyState()==="loading"||!e.path())}}function si(t,n){if(t&1&&(r(0,"p",34),d(1),a()),t&2){let e=l(2);i(),c(e.texts.body.loading)}}function pi(t,n){if(t&1&&(r(0,"p",35),d(1),a()),t&2){let e=l(2);i(),c(e.texts.body.empty)}}function mi(t,n){if(t&1&&(r(0,"p",36),d(1),a()),t&2){let e=l(2);i(),c(e.texts.body.unavailable)}}function _i(t,n){if(t&1&&(r(0,"p",37),d(1),a()),t&2){let e=l(2);i(),c(e.texts.body.renderError)}}function ui(t,n){if(t&1&&y(0,"div",38),t&2){let e=l(2);p("innerHTML",e.bodyHtml(),Se)}}function xi(t,n){if(t&1){let e=L();he(0)(1),r(2,"section",1)(3,"header",10)(4,"div",11),y(5,"p-tag",12),m(6,Zt,1,3,"p-tag",13),r(7,"h2"),d(8),a()(),r(9,"a",14),d(10),a()(),r(11,"p",15)(12,"code"),d(13),a()(),r(14,"p",16),d(15),a(),r(16,"div",17),y(17,"sm-empty-state",18)(18,"sm-empty-state",19)(19,"sm-empty-state",20),m(20,en,7,3,"p-card",21),m(21,dn,4,3,"p-card",22),m(22,sn,16,8,"p-card",23),m(23,hn,3,3,"p-card",24),h(24,In,4,5,"ng-template",null,0,Fe),m(26,Hn,7,7,"p-card",25),r(27,"div",26)(28,"sm-linked-nodes-panel",27),N("openPath",function(s){M(e);let C=l();return O(C.openPath(s))}),a()(),r(29,"p-card",28)(30,"dl",29)(31,"dt"),d(32),a(),r(33,"dd")(34,"code"),d(35),a()(),m(36,qn,4,3),m(37,$n,4,2),m(38,jn,4,2),m(39,Un,4,2),m(40,Qn,4,2),m(41,Kn,4,2),m(42,Wn,4,2),m(43,Xn,4,2),m(44,Yn,5,2),a(),m(45,Jn,5,1),a(),m(46,ii,3,3,"p-card",30),m(47,di,6,5,"p-card",31),r(48,"p-card",32),h(49,ci,4,6,"ng-template",33),m(50,si,2,1,"p",34)(51,pi,2,1,"p",35)(52,mi,2,1,"p",36)(53,_i,2,1,"p",37)(54,ui,1,1,"div",38),a()()()}if(t&2){let e,o,s,C,x,g=l(),H=g.node(),I=J(H.frontmatter);i();let u=J(I.metadata);i(4),G(g.kindStyle(H.kind)),p("value",g.kindLabel(H.kind)),i(),_(u!=null&&u.stability?6:-1),i(2),c(I.name),i(2),c(g.texts.backToList),i(3),c(H.path),i(2),c(I.description),i(2),p("title",g.texts.placeholders.enrichmentTitle)("body",g.texts.placeholders.body),i(),p("title",g.texts.placeholders.summaryTitle)("body",g.texts.placeholders.body),i(),p("title",g.texts.placeholders.findingsTitle)("body",g.texts.placeholders.body),i(),_((e=g.asAgent())?20:-1,e),i(),_((o=g.asCommand())?21:-1,o),i(),_((s=g.asHook())?22:-1,s),i(),_((C=g.asSkill())?23:-1,C),i(3),_(!(u==null||u.supersedes==null)&&u.supersedes.length||u!=null&&u.supersededBy||!(u==null||u.requires==null)&&u.requires.length||!(u==null||u.related==null)&&u.related.length||!(u==null||u.provides==null)&&u.provides.length||!(u==null||u.conflictsWith==null)&&u.conflictsWith.length?26:-1),i(2),p("path",H.path),i(),p("header",g.texts.cards.metadata),i(3),c(g.texts.fields.version),i(3),c((u==null?null:u.version)??g.texts.missing),i(),_((u==null?null:u.priority)!=null?36:-1),i(),_(I.author?37:-1),i(),_(I.authors!=null&&I.authors.length?38:-1),i(),_(I.license?39:-1),i(),_(u!=null&&u.created?40:-1),i(),_(u!=null&&u.updated?41:-1),i(),_(u!=null&&u.released?42:-1),i(),_(u!=null&&u.category?43:-1),i(),_(u!=null&&u.specCompat?44:-1),i(),_(!(u==null||u.tags==null)&&u.tags.length?45:-1),i(),_(I.tools!=null&&I.tools.length||I.allowedTools!=null&&I.allowedTools.length?46:-1),i(),_(u!=null&&u.source||u!=null&&u.docsUrl||u!=null&&u.homepage||u!=null&&u.examplesUrl?47:-1),i(3),_((x=g.bodyState())==="loading"?50:x==="empty"?51:x==="unavailable"?52:x==="error"?53:x==="ready"?54:-1)}}var fi={stable:"success",experimental:"info",deprecated:"warn"},rt=class t{loader=v(Xe);router=v(ze);kindRegistry=v(Ye);dataSource=v(de);markdown=v(me);texts=nt;path=A(void 0);node=R(()=>{let n=this.path();return n?this.loader.nodes().find(e=>e.path===n)??null:null});pathSet=R(()=>{let n=new Set;for(let e of this.loader.nodes())n.add(e.path);return n});asAgent=R(()=>this.node()?.kind==="agent"?this.node().frontmatter:null);asCommand=R(()=>this.node()?.kind==="command"?this.node().frontmatter:null);asHook=R(()=>this.node()?.kind==="hook"?this.node().frontmatter:null);asSkill=R(()=>this.node()?.kind==="skill"?this.node().frontmatter:null);bodyState=T("idle");bodyHtml=T(null);fetchToken=0;verifiedAlive=T(new Set);verifiedDead=T(new Set);verifyInFlight=T(new Set);constructor(){W(()=>{let n=this.path(),e=++this.fetchToken;if(this.bodyHtml.set(null),this.verifiedAlive.set(new Set),this.verifiedDead.set(new Set),this.verifyInFlight.set(new Set),!n){this.bodyState.set("idle");return}this.bodyState.set("loading"),this.fetchAndRenderBody(n,e)})}ngOnInit(){this.loader.nodes().length===0&&!this.loader.loading()&&this.loader.load()}kindLabel(n){return this.kindRegistry.labelOf(n)}kindStyle(n){return{background:`var(--sm-kind-${n}-bg)`,color:`var(--sm-kind-${n}-fg)`}}stabilitySeverity(n){return fi[n]}openPath(n){this.router.navigate(["/inspector"],{queryParams:{path:n}})}pathExists(n){return this.pathSet().has(n)}linkStatus(n){return this.pathSet().has(n)||this.verifiedAlive().has(n)?"live":this.verifiedDead().has(n)?"dead-confirmed":"dead-heuristic"}isVerifying(n){return this.verifyInFlight().has(n)}async verifyDeadLink(n){if(!(this.verifiedAlive().has(n)||this.verifiedDead().has(n))&&!this.verifyInFlight().has(n)){this.verifyInFlight.update(e=>new Set(e).add(n));try{await this.dataSource.getNode(n)===null?this.verifiedDead.update(o=>new Set(o).add(n)):this.verifiedAlive.update(o=>new Set(o).add(n))}catch{}finally{this.verifyInFlight.update(e=>{let o=new Set(e);return o.delete(n),o})}}}refreshBody(){let n=this.path();if(!n||this.bodyState()==="loading")return;let e=++this.fetchToken;this.bodyHtml.set(null),this.bodyState.set("loading"),this.fetchAndRenderBody(n,e)}async fetchAndRenderBody(n,e){try{let o=await this.dataSource.getNode(n,{includeBody:!0});if(e!==this.fetchToken)return;if(o===null){this.bodyState.set("unavailable");return}let s=o.item.body;if(s===null){this.bodyState.set("unavailable");return}if(s===void 0||s.trim().length===0){this.bodyState.set("empty");return}let C=await this.markdown.render(s);if(e!==this.fetchToken)return;this.bodyHtml.set(C),this.bodyState.set("ready")}catch{if(e!==this.fetchToken)return;this.bodyState.set("error")}}static \u0275fac=function(e){return new(e||t)};static \u0275cmp=B({type:t,selectors:[["app-inspector-view"]],inputs:{path:[1,"path"]},decls:3,vars:1,consts:[["pathChip",""],["data-testid","inspector-view",1,"inspector"],["data-testid","inspector-empty-no-selection",1,"empty-state"],[1,"empty-state__icon","pi","pi-eye"],[1,"empty-state__title"],[1,"empty-state__desc"],["routerLink","/list",1,"inspector__back"],["routerLink","/graph",1,"inspector__back"],["data-testid","inspector-empty-not-found",1,"empty-state"],[1,"empty-state__icon","pi","pi-question-circle",2,"color","var(--sm-severity-warn)","opacity","1"],[1,"inspector__header"],["data-testid","inspector-title",1,"inspector__title"],[3,"value"],[3,"value","severity","rounded"],["routerLink","/list","data-testid","inspector-back",1,"inspector__back"],["data-testid","inspector-path",1,"inspector__path"],["data-testid","inspector-description",1,"inspector__desc"],[1,"inspector__grid"],["icon","pi pi-sparkles","testId","inspector-empty-enrichment",3,"title","body"],["icon","pi pi-file","testId","inspector-empty-summary",3,"title","body"],["icon","pi pi-search","testId","inspector-empty-findings",3,"title","body"],["styleClass","inspector__card","data-testid","inspector-card-agent",3,"header"],["styleClass","inspector__card","data-testid","inspector-card-command",3,"header"],["styleClass","inspector__card","data-testid","inspector-card-hook",3,"header"],["styleClass","inspector__card","data-testid","inspector-card-skill",3,"header"],["styleClass","inspector__card inspector__card--full","data-testid","inspector-card-relations",3,"header"],["data-testid","inspector-card-linked-nodes",1,"inspector__card","inspector__card--full"],[3,"openPath","path"],["styleClass","inspector__card","data-testid","inspector-card-metadata",3,"header"],[1,"kv"],["styleClass","inspector__card","data-testid","inspector-card-tools",3,"header"],["styleClass","inspector__card","data-testid","inspector-card-external",3,"header"],["styleClass","inspector__card inspector__card--full inspector__body","data-testid","inspector-card-body"],["pTemplate","header"],["data-testid","inspector-body-loading",1,"inspector__body-status"],["data-testid","inspector-body-empty",1,"inspector__body-status"],["data-testid","inspector-body-unavailable",1,"inspector__body-status","inspector__body-status--warn"],["data-testid","inspector-body-error",1,"inspector__body-status","inspector__body-status--warn"],["data-testid","inspector-body-rendered",1,"inspector__body-rendered",3,"innerHTML"],[1,"args"],[1,"args__type"],[1,"args__req"],[1,"cond"],[1,"rel-chip"],[3,"click","label","styleClass"],["type","button",1,"rel-chip__verify",3,"rel-chip__verify--confirmed","disabled","pTooltip"],["type","button",1,"rel-chip__verify",3,"click","disabled","pTooltip"],["aria-hidden","true",1,"pi","pi-spin","pi-spinner"],["aria-hidden","true",1,"pi","pi-times-circle"],["aria-hidden","true",1,"pi","pi-question-circle"],[1,"chips"],[4,"ngTemplateOutlet","ngTemplateOutletContext"],[3,"label"],["styleClass","chip--warn",3,"label"],["target","_blank","rel","noopener",3,"href"],[1,"inspector__body-header"],[1,"inspector__body-title"],["icon","pi pi-refresh","severity","secondary","data-testid","inspector-body-refresh",3,"onClick","rounded","text","ariaLabel","pTooltip","disabled"]],template:function(e,o){e&1&&m(0,Gt,13,6,"section",1)(1,Jt,12,5,"section",1)(2,xi,55,38,"section",1),e&2&&_(o.path()?o.node()?2:1:0)},dependencies:[He,Z,le,re,z,ce,Ge,pe,Q,ie,ne,ae,oe,_e,ue],styles:["[_nghost-%COMP%]{display:block}.inspector[_ngcontent-%COMP%]{display:flex;flex-direction:column;gap:1rem}.inspector--empty[_ngcontent-%COMP%]{padding:2rem;color:var(--p-text-muted-color)}.inspector--empty[_ngcontent-%COMP%] code[_ngcontent-%COMP%]{background:var(--sm-bg-hover);padding:.1rem .35rem;border-radius:.25rem;font-size:.85rem}.inspector__header[_ngcontent-%COMP%]{display:flex;justify-content:space-between;align-items:center;flex-wrap:wrap;gap:.5rem}.inspector__title[_ngcontent-%COMP%]{display:flex;align-items:center;gap:.5rem;flex-wrap:wrap}.inspector__title[_ngcontent-%COMP%] h2[_ngcontent-%COMP%]{margin:0;font-size:1.5rem;font-weight:600;letter-spacing:-.01em}.inspector__back[_ngcontent-%COMP%]{font-size:.9rem;color:var(--p-primary-color)}.inspector__path[_ngcontent-%COMP%]{margin:0}.inspector__path[_ngcontent-%COMP%] code[_ngcontent-%COMP%]{background:var(--sm-bg-hover);padding:.15rem .5rem;border-radius:.25rem;font-size:.85rem;color:var(--p-text-muted-color)}.inspector__desc[_ngcontent-%COMP%]{margin:0;color:var(--p-text-color);font-size:1rem;line-height:1.5;max-width:70ch}.inspector__grid[_ngcontent-%COMP%]{display:grid;grid-template-columns:1fr 1fr;gap:1rem}.inspector__card--full[_ngcontent-%COMP%]{grid-column:1 / -1}[_nghost-%COMP%] .inspector__card--hero .p-card{border-left:3px solid var(--p-primary-color)}.inspector__body[_ngcontent-%COMP%]{display:block}.inspector__body-header[_ngcontent-%COMP%]{display:flex;align-items:center;justify-content:space-between;gap:.5rem;padding:.75rem 1rem 0}.inspector__body-title[_ngcontent-%COMP%]{margin:0;font-size:.95rem;font-weight:600}.inspector__body-status[_ngcontent-%COMP%]{margin:0;font-size:.85rem;color:var(--p-text-muted-color);font-style:italic}.inspector__body-status--warn[_ngcontent-%COMP%]{color:var(--sm-severity-warn);font-style:normal}.inspector__body-rendered[_ngcontent-%COMP%]{font-size:.9rem;line-height:1.55;max-height:600px;overflow:auto}.inspector__body-rendered[_ngcontent-%COMP%] [_ngcontent-%COMP%]:first-child{margin-top:0}.inspector__body-rendered[_ngcontent-%COMP%] [_ngcontent-%COMP%]:last-child{margin-bottom:0}.inspector__body-rendered[_ngcontent-%COMP%] pre[_ngcontent-%COMP%]{background:var(--p-content-background);border:1px solid var(--p-content-border-color);border-radius:4px;padding:.75rem;margin:.75rem 0;white-space:pre-wrap;word-wrap:break-word;font-family:ui-monospace,SFMono-Regular,Menlo,Monaco,Consolas,monospace;font-size:.85rem;line-height:1.5;overflow-x:auto}.inspector__body-rendered[_ngcontent-%COMP%] code[_ngcontent-%COMP%]{background:var(--p-content-background);padding:.1rem .3rem;border-radius:3px;font-family:ui-monospace,SFMono-Regular,Menlo,Monaco,Consolas,monospace;font-size:.85em}.inspector__body-rendered[_ngcontent-%COMP%] pre[_ngcontent-%COMP%] code[_ngcontent-%COMP%]{background:transparent;padding:0;border-radius:0}.kv[_ngcontent-%COMP%]{display:grid;grid-template-columns:max-content 1fr;gap:.25rem .75rem;margin:0 0 .5rem;font-size:.9rem}.kv[_ngcontent-%COMP%] dt[_ngcontent-%COMP%]{color:var(--p-text-muted-color);font-weight:500}.kv[_ngcontent-%COMP%] dd[_ngcontent-%COMP%]{margin:0;word-break:break-word}.kv[_ngcontent-%COMP%] code[_ngcontent-%COMP%]{background:var(--sm-bg-hover);padding:.1rem .35rem;border-radius:.25rem;font-size:.85rem}.kv[_ngcontent-%COMP%] a[_ngcontent-%COMP%]{color:var(--p-primary-color);word-break:break-all}h4[_ngcontent-%COMP%]{margin:1rem 0 .5rem;font-size:.85rem;text-transform:uppercase;letter-spacing:.04em;color:var(--p-text-muted-color);font-weight:600}h4[_ngcontent-%COMP%]:first-child{margin-top:0}.chips[_ngcontent-%COMP%]{display:flex;flex-wrap:wrap;gap:.4rem}[_nghost-%COMP%] .chip--link .p-chip{cursor:pointer;background:var(--p-primary-50);color:var(--p-primary-color);transition:background .15s ease}[_nghost-%COMP%] .chip--link:hover .p-chip{background:var(--p-primary-100)}[_nghost-%COMP%] .chip--dead .p-chip{background:var(--sm-bg-hover);color:var(--p-text-muted-color);text-decoration:line-through;cursor:not-allowed}[_nghost-%COMP%] .chip--warn .p-chip{background:var(--sm-kind-command-bg);color:var(--sm-kind-command-fg)}[_nghost-%COMP%] .chip--dead-confirmed .p-chip{background:var(--sm-bg-hover);color:var(--sm-severity-error);border:1px dashed var(--sm-severity-error)}.rel-chip[_ngcontent-%COMP%]{display:inline-flex;align-items:center;gap:.2rem}.rel-chip__verify[_ngcontent-%COMP%]{background:none;border:none;padding:.15rem;cursor:pointer;color:var(--p-text-muted-color);border-radius:50%;display:inline-flex;align-items:center;justify-content:center;transition:color .15s ease,background .15s ease}.rel-chip__verify[_ngcontent-%COMP%]:hover:not(:disabled){color:var(--p-primary-color);background:var(--sm-bg-hover)}.rel-chip__verify[_ngcontent-%COMP%]:disabled{cursor:wait;opacity:.6}.rel-chip__verify--confirmed[_ngcontent-%COMP%]{color:var(--sm-severity-error)}.rel-chip__verify--confirmed[_ngcontent-%COMP%]:hover:not(:disabled){color:var(--sm-severity-error)}.args[_ngcontent-%COMP%]{margin:0;padding-left:1.25rem;display:flex;flex-direction:column;gap:.35rem;font-size:.9rem}.args[_ngcontent-%COMP%] code[_ngcontent-%COMP%]{background:var(--sm-bg-hover);padding:.1rem .35rem;border-radius:.25rem;font-size:.8rem;font-weight:500}.args__type[_ngcontent-%COMP%]{color:var(--p-text-muted-color);font-style:italic;margin-left:.25rem}.args__req[_ngcontent-%COMP%]{display:inline-block;margin-left:.5rem;padding:0 .4rem;font-size:.7rem;background:var(--sm-kind-command-bg);color:var(--sm-kind-command-fg);border-radius:.25rem;text-transform:uppercase;letter-spacing:.04em;font-weight:600}.cond[_ngcontent-%COMP%]{font-size:.8rem;word-break:break-all}.inspector__actions[_ngcontent-%COMP%]{display:flex;gap:.5rem}@media(max-width:1280px){.inspector__grid[_ngcontent-%COMP%]{grid-template-columns:1fr}}"],changeDetection:0})};export{rt as InspectorView};
|
|
38
|
+
`,St={root:"p-card p-component",header:"p-card-header",body:"p-card-body",caption:"p-card-caption",title:"p-card-title",subtitle:"p-card-subtitle",content:"p-card-content",footer:"p-card-footer"},Ze=(()=>{class t extends Ue{name="card";style=It;classes=St;static \u0275fac=(()=>{let e;return function(s){return(e||(e=xe(t)))(s||t)}})();static \u0275prov=K({token:t,factory:t.\u0275fac})}return t})();var et=new Te("CARD_INSTANCE"),Q=(()=>{class t extends Ke{componentName="Card";$pcCard=v(et,{optional:!0,skipSelf:!0})??void 0;bindDirectiveInstance=v(U,{self:!0});_componentStyle=v(Ze);onAfterViewChecked(){this.bindDirectiveInstance.setAttrs(this.ptms(["host","root"]))}header;subheader;set style(e){qe(this._style(),e)||(this._style.set(e),this.el?.nativeElement&&e&&Object.keys(e).forEach(o=>{this.el.nativeElement.style[o]=e[o]}))}get style(){return this._style()}styleClass;headerFacet;footerFacet;headerTemplate;titleTemplate;subtitleTemplate;contentTemplate;footerTemplate;_headerTemplate;_titleTemplate;_subtitleTemplate;_contentTemplate;_footerTemplate;_style=T(null);getBlockableElement(){return this.el.nativeElement}templates;onAfterContentInit(){this.templates.forEach(e=>{switch(e.getType()){case"header":this._headerTemplate=e.template;break;case"title":this._titleTemplate=e.template;break;case"subtitle":this._subtitleTemplate=e.template;break;case"content":this._contentTemplate=e.template;break;case"footer":this._footerTemplate=e.template;break;default:this._contentTemplate=e.template;break}})}static \u0275fac=(()=>{let e;return function(s){return(e||(e=xe(t)))(s||t)}})();static \u0275cmp=B({type:t,selectors:[["p-card"]],contentQueries:function(o,s,C){if(o&1&&Ve(C,$e,5)(C,je,5)(C,lt,4)(C,dt,4)(C,ct,4)(C,st,4)(C,pt,4)(C,z,4),o&2){let x;F(x=D())&&(s.headerFacet=x.first),F(x=D())&&(s.footerFacet=x.first),F(x=D())&&(s.headerTemplate=x.first),F(x=D())&&(s.titleTemplate=x.first),F(x=D())&&(s.subtitleTemplate=x.first),F(x=D())&&(s.contentTemplate=x.first),F(x=D())&&(s.footerTemplate=x.first),F(x=D())&&(s.templates=x)}},hostVars:4,hostBindings:function(o,s){o&2&&(G(s._style()),P(s.cn(s.cx("root"),s.styleClass)))},inputs:{header:"header",subheader:"subheader",style:"style",styleClass:"styleClass"},features:[Ne([Ze,{provide:et,useExisting:t},{provide:Qe,useExisting:t}]),Ee([U]),Pe],ngContentSelectors:_t,decls:8,vars:11,consts:[[3,"pBind","class",4,"ngIf"],[3,"pBind"],[4,"ngTemplateOutlet"],[4,"ngIf"]],template:function(o,s){o&1&&(Oe(mt),h(0,xt,3,4,"div",0),r(1,"div",1),h(2,yt,3,5,"div",0)(3,vt,3,5,"div",0),r(4,"div",1),Y(5),h(6,bt,1,0,"ng-container",2),a(),h(7,Tt,3,4,"div",0),a()),o&2&&(p("ngIf",s.headerFacet||s.headerTemplate||s._headerTemplate),i(),P(s.cx("body")),p("pBind",s.ptm("body")),i(),p("ngIf",s.header||s.titleTemplate||s._titleTemplate),i(),p("ngIf",s.subheader||s.subtitleTemplate||s._subtitleTemplate),i(),P(s.cx("content")),p("pBind",s.ptm("content")),i(2),p("ngTemplateOutlet",s.contentTemplate||s._contentTemplate),i(),p("ngIf",s.footerFacet||s.footerTemplate||s._footerTemplate))},dependencies:[Ae,Re,Z,ee,te,U],encapsulation:2,changeDetection:0})}return t})(),pe=(()=>{class t{static \u0275fac=function(o){return new(o||t)};static \u0275mod=we({type:t});static \u0275inj=ke({imports:[Q,ee,te,ee,te]})}return t})();var nt={emptyNoSelection:{title:"No node selected",descPrefix:"Pick a node from the ",listLink:"list",descMiddle:" or ",graphLink:"graph",descSuffix:"."},emptyNotFound:{title:"Node not found",descSuffix:" does not exist in the collection. ",backLink:"Back to list",descAfterLink:"."},backToList:"\u2190 back to list",cards:{agent:"Agent",command:"Command",hook:"Hook",skill:"Skill",relations:"Relations",metadata:"Metadata",tools:"Tools",external:"External",body:"Body"},fields:{model:"Model",shortcut:"Shortcut",arguments:"Arguments",event:"Event",condition:"Condition",blocking:"Blocking",idempotent:"Idempotent",inputs:"Inputs",outputs:"Outputs",supersededBy:"Superseded by",supersedes:"Supersedes",requires:"Requires",related:"Related",provides:"Provides",conflictsWith:"Conflicts with",tags:"Tags",toolsAllowlist:"Tools (allowlist)",allowedTools:"Allowed tools (pre-approved)",source:"Source",docs:"Docs",homepage:"Homepage",examples:"Examples",version:"Version",priority:"Priority",priorityScale:" / 10",author:"Author",authors:"Authors",license:"License",created:"Created",updated:"Updated",released:"Released",category:"Category",specCompat:"Spec compat"},yes:"yes",no:"no",required:"required",body:{loading:"Loading body\u2026",empty:"This file has no body content (only frontmatter).",unavailable:"Body content unavailable \u2014 the source file may have moved or been deleted since the last scan.",renderError:"Failed to render markdown body.",refreshLabel:"Refresh body"},relations:{verifyHint:"This path is not in the current scan scope. Click to check whether the file exists.",deadConfirmed:"Verified: this path does not resolve to a known node."},authorsSeparator:", ",argTypePrefix:": ",argDescSeparator:" \u2014 ",missing:"\u2014",placeholders:{enrichmentTitle:"Enrichment",summaryTitle:"Summary",findingsTitle:"Findings",body:"Available in v0.8.0"}};var me=class t{sanitizer=v(Be);libsPromise=null;async render(n){let e=await this.loadLibs(),o=e.md.render(n),s=e.purify.sanitize(o);return this.sanitizer.bypassSecurityTrustHtml(s)}async renderToHtml(n){let e=await this.loadLibs(),o=e.md.render(n);return e.purify.sanitize(o)}loadLibs(){return this.libsPromise||(this.libsPromise=wt()),this.libsPromise}static \u0275fac=function(e){return new(e||t)};static \u0275prov=K({token:t,factory:t.\u0275fac,providedIn:"root"})};async function wt(){let[t,n]=await Promise.all([import("./chunk-STE4Z72W.js"),import("./chunk-N2C45VIA.js")]),e=t.default,o=new e({html:!1,linkify:!0}),s=n.default;return{md:o,purify:s}}var _e=class t{title=A.required();body=A.required();icon=A("pi pi-clock");testId=A(null);static \u0275fac=function(e){return new(e||t)};static \u0275cmp=B({type:t,selectors:[["sm-empty-state"]],inputs:{title:[1,"title"],body:[1,"body"],icon:[1,"icon"],testId:[1,"testId"]},decls:6,vars:5,consts:[[1,"empty-state-card"],["aria-hidden","true",1,"empty-state-card__icon"],[1,"empty-state-card__title"],[1,"empty-state-card__body"]],template:function(e,o){if(e&1&&(X(0,"div",0),Me(1,"span",1),X(2,"p",2),d(3),fe(),X(4,"p",3),d(5),fe()()),e&2){let s=o.testId();E("data-testid",s),i(),P(o.icon()),i(2),c(o.title()),i(2),c(o.body())}},styles:["[_nghost-%COMP%]{display:block}.empty-state-card[_ngcontent-%COMP%]{display:flex;flex-direction:column;align-items:flex-start;gap:.5rem;padding:1rem 1.25rem;border:1px dashed var(--p-content-border-color);border-radius:var(--p-border-radius-md);background:var(--p-content-background);color:var(--p-text-muted-color)}.empty-state-card__icon[_ngcontent-%COMP%]{font-size:1.25rem;color:var(--p-text-muted-color);opacity:.7}.empty-state-card__title[_ngcontent-%COMP%]{margin:0;font-weight:600;color:var(--p-text-color)}.empty-state-card__body[_ngcontent-%COMP%]{margin:0;font-size:.85rem;line-height:1.4}"],changeDetection:0})};var ot={cardHeader:"Linked nodes",refreshLabel:"Refresh links",outgoingHeader:"Outgoing",incomingHeader:"Incoming",loading:"Loading links\u2026",error:"Failed to load links.",emptyOutgoing:"No outgoing links from this node.",emptyIncoming:"No incoming links to this node.",confidence:{high:"high",medium:"medium",low:"low"},sourcesPrefix:"detected by ",sourcesSeparator:", "};var at=(t,n)=>n.source+"|"+n.target+"|"+n.kind+"|"+((n.trigger==null?null:n.trigger.normalizedTrigger)??"");function Vt(t,n){if(t&1){let e=L();r(0,"div",4)(1,"h3",5),d(2),a(),r(3,"p-button",6),N("onClick",function(){M(e);let s=l(2);return O(s.refresh())}),a()()}if(t&2){let e=l(2);i(2),c(e.texts.cardHeader),i(),p("rounded",!0)("text",!0)("ariaLabel",e.texts.refreshLabel)("pTooltip",e.texts.refreshLabel)("disabled",e.state()==="loading")}}function Lt(t,n){if(t&1&&(r(0,"p",2),d(1),a()),t&2){let e=l(2);i(),c(e.texts.loading)}}function Nt(t,n){if(t&1&&(r(0,"p",3),d(1),a()),t&2){let e=l(2);i(),c(e.texts.error)}}function Ft(t,n){if(t&1&&(r(0,"p",9),d(1),a()),t&2){let e=l(3);i(),c(e.texts.emptyOutgoing)}}function Dt(t,n){if(t&1&&(r(0,"span",17),d(1),a()),t&2){let e=l().$implicit,o=l(4);i(),w(" ",o.texts.sourcesPrefix,"",e.sources.join(o.texts.sourcesSeparator)," ")}}function Rt(t,n){if(t&1){let e=L();r(0,"li",13),y(1,"p-tag",14),r(2,"button",15),N("click",function(){let s=M(e).$implicit,C=l(4);return O(C.onOpen(s.target))}),d(3),a(),y(4,"p-tag",16),m(5,Dt,2,2,"span",17),a()}if(t&2){let e=n.$implicit,o=l(4);E("data-testid","linked-nodes-outgoing-row-"+e.target),i(),p("value",e.kind)("severity",o.kindSeverity(e.kind)),i(),E("data-testid","linked-nodes-outgoing-link-"+e.target),i(),ge(" ",e.target," "),i(),p("value",o.confidenceLabel(e.confidence))("severity",o.confidenceSeverity(e.confidence))("rounded",!0),i(),_(e.sources.length?5:-1)}}function At(t,n){if(t&1&&(r(0,"ul",10),b(1,Rt,6,9,"li",13,at),a()),t&2){let e=l(3);i(),k(e.outgoing())}}function Bt(t,n){if(t&1&&(r(0,"p",12),d(1),a()),t&2){let e=l(3);i(),c(e.texts.emptyIncoming)}}function zt(t,n){if(t&1&&(r(0,"span",17),d(1),a()),t&2){let e=l().$implicit,o=l(4);i(),w(" ",o.texts.sourcesPrefix,"",e.sources.join(o.texts.sourcesSeparator)," ")}}function Ht(t,n){if(t&1){let e=L();r(0,"li",13),y(1,"p-tag",14),r(2,"button",15),N("click",function(){let s=M(e).$implicit,C=l(4);return O(C.onOpen(s.source))}),d(3),a(),y(4,"p-tag",16),m(5,zt,2,2,"span",17),a()}if(t&2){let e=n.$implicit,o=l(4);E("data-testid","linked-nodes-incoming-row-"+e.source),i(),p("value",e.kind)("severity",o.kindSeverity(e.kind)),i(),E("data-testid","linked-nodes-incoming-link-"+e.source),i(),ge(" ",e.source," "),i(),p("value",o.confidenceLabel(e.confidence))("severity",o.confidenceSeverity(e.confidence))("rounded",!0),i(),_(e.sources.length?5:-1)}}function qt(t,n){if(t&1&&(r(0,"ul",10),b(1,Ht,6,9,"li",13,at),a()),t&2){let e=l(3);i(),k(e.incoming())}}function $t(t,n){if(t&1&&(r(0,"section",7)(1,"h4",8),d(2),a(),m(3,Ft,2,1,"p",9)(4,At,3,0,"ul",10),a(),r(5,"section",11)(6,"h4",8),d(7),a(),m(8,Bt,2,1,"p",12)(9,qt,3,0,"ul",10),a()),t&2){let e=l(2);i(2),c(e.texts.outgoingHeader),i(),_(e.outgoing().length===0?3:4),i(4),c(e.texts.incomingHeader),i(),_(e.incoming().length===0?8:9)}}function jt(t,n){if(t&1&&(r(0,"p-card",0),h(1,Vt,4,6,"ng-template",1),m(2,Lt,2,1,"p",2)(3,Nt,2,1,"p",3)(4,$t,10,4),a()),t&2){let e,o=l();i(2),_((e=o.state())==="loading"?2:e==="error"?3:e==="ready"?4:-1)}}var Ut={invokes:"warn",references:"info",mentions:"secondary",supersedes:"success"},Qt={high:"success",medium:"info",low:"warn"},ue=class t{dataSource=v(re);destroyRef=v(Ie);texts=ot;path=A(null);openPath=De();state=T("idle");outgoing=T([]);incoming=T([]);fetchToken=0;hasResults=R(()=>this.state()==="ready"&&(this.outgoing().length>0||this.incoming().length>0));constructor(){this.dataSource.events().pipe(be(n=>n.type==="scan.completed"),We(this.destroyRef)).subscribe(()=>{let n=this.path();n&&this.fetch(n)}),W(()=>{let n=this.path();if(!n){this.fetchToken++,this.state.set("idle"),this.outgoing.set([]),this.incoming.set([]);return}this.fetch(n)})}refresh(){let n=this.path();n&&this.fetch(n)}onOpen(n){this.openPath.emit(n)}kindSeverity(n){return Ut[n]??"secondary"}confidenceSeverity(n){return Qt[n]??"info"}confidenceLabel(n){return this.texts.confidence[n]??n}async fetch(n){let e=++this.fetchToken;this.state.set("loading");try{let[o,s]=await Promise.all([this.dataSource.listLinks({from:n}),this.dataSource.listLinks({to:n})]);if(e!==this.fetchToken)return;this.outgoing.set(o.items),this.incoming.set(s.items),this.state.set("ready")}catch{if(e!==this.fetchToken)return;this.outgoing.set([]),this.incoming.set([]),this.state.set("error")}}static \u0275fac=function(e){return new(e||t)};static \u0275cmp=B({type:t,selectors:[["sm-linked-nodes-panel"]],inputs:{path:[1,"path"]},outputs:{openPath:"openPath"},decls:1,vars:1,consts:[["styleClass","linked-nodes-panel","data-testid","linked-nodes-panel"],["pTemplate","header"],["data-testid","linked-nodes-loading",1,"linked-nodes-panel__status"],["data-testid","linked-nodes-error",1,"linked-nodes-panel__status","linked-nodes-panel__status--warn"],[1,"linked-nodes-panel__header"],[1,"linked-nodes-panel__title"],["icon","pi pi-refresh","severity","secondary","data-testid","linked-nodes-refresh",3,"onClick","rounded","text","ariaLabel","pTooltip","disabled"],["data-testid","linked-nodes-outgoing",1,"linked-nodes-panel__section"],[1,"linked-nodes-panel__section-title"],["data-testid","linked-nodes-outgoing-empty",1,"linked-nodes-panel__status"],[1,"linked-nodes-panel__rows"],["data-testid","linked-nodes-incoming",1,"linked-nodes-panel__section"],["data-testid","linked-nodes-incoming-empty",1,"linked-nodes-panel__status"],[1,"linked-nodes-panel__row"],[3,"value","severity"],["type","button",1,"linked-nodes-panel__path",3,"click"],[3,"value","severity","rounded"],[1,"linked-nodes-panel__sources"]],template:function(e,o){e&1&&m(0,jt,5,1,"p-card",0),e&2&&_(o.path()?0:-1)},dependencies:[pe,Q,z,ce,de,le,ie,ne,ae,oe],styles:["[_nghost-%COMP%]{display:block}.linked-nodes-panel__header[_ngcontent-%COMP%]{display:flex;align-items:center;justify-content:space-between;gap:.5rem;padding:.75rem 1rem 0}.linked-nodes-panel__title[_ngcontent-%COMP%]{margin:0;font-size:.95rem;font-weight:600}.linked-nodes-panel__status[_ngcontent-%COMP%]{margin:0;font-size:.85rem;color:var(--p-text-muted-color);font-style:italic}.linked-nodes-panel__status--warn[_ngcontent-%COMP%]{color:var(--sm-severity-warn);font-style:normal}.linked-nodes-panel__section[_ngcontent-%COMP%] + .linked-nodes-panel__section[_ngcontent-%COMP%]{margin-top:1rem}.linked-nodes-panel__section-title[_ngcontent-%COMP%]{margin:0 0 .5rem;font-size:.8rem;font-weight:600;text-transform:uppercase;letter-spacing:.04em;color:var(--p-text-muted-color)}.linked-nodes-panel__rows[_ngcontent-%COMP%]{list-style:none;margin:0;padding:0;display:flex;flex-direction:column;gap:.5rem}.linked-nodes-panel__row[_ngcontent-%COMP%]{display:flex;align-items:center;gap:.5rem;flex-wrap:wrap;padding:.4rem .5rem;border-radius:4px;background:var(--p-content-background);border:1px solid var(--p-content-border-color)}.linked-nodes-panel__path[_ngcontent-%COMP%]{font-family:ui-monospace,SFMono-Regular,Menlo,Monaco,Consolas,monospace;font-size:.85rem;color:var(--p-primary-color);background:none;border:none;padding:0;cursor:pointer;text-decoration:underline;text-underline-offset:2px}.linked-nodes-panel__path[_ngcontent-%COMP%]:hover{text-decoration:none}.linked-nodes-panel__sources[_ngcontent-%COMP%]{font-size:.75rem;color:var(--p-text-muted-color);margin-left:auto}"],changeDetection:0})};var Kt=t=>({path:t,testIdPrefix:"rel-supersededBy"}),Wt=t=>({path:t,testIdPrefix:"rel-supersedes"}),Xt=t=>({path:t,testIdPrefix:"rel-requires"}),Yt=t=>({path:t,testIdPrefix:"rel-related"}),ve=(t,n)=>n.name;function Gt(t,n){if(t&1&&(r(0,"section",1)(1,"div",2),y(2,"span",3),r(3,"p",4),d(4),a(),r(5,"p",5),d(6),r(7,"a",6),d(8),a(),d(9),r(10,"a",7),d(11),a(),d(12),a()()()),t&2){let e=l();i(4),c(e.texts.emptyNoSelection.title),i(2),c(e.texts.emptyNoSelection.descPrefix),i(2),c(e.texts.emptyNoSelection.listLink),i(),c(e.texts.emptyNoSelection.descMiddle),i(2),c(e.texts.emptyNoSelection.graphLink),i(),c(e.texts.emptyNoSelection.descSuffix)}}function Jt(t,n){if(t&1&&(r(0,"section",1)(1,"div",8),y(2,"span",9),r(3,"p",4),d(4),a(),r(5,"p",5)(6,"code"),d(7),a(),d(8),r(9,"a",6),d(10),a(),d(11),a()()()),t&2){let e=l();i(4),c(e.texts.emptyNotFound.title),i(3),c(e.path()),i(),c(e.texts.emptyNotFound.descSuffix),i(2),c(e.texts.emptyNotFound.backLink),i(),c(e.texts.emptyNotFound.descAfterLink)}}function Zt(t,n){if(t&1&&y(0,"p-tag",13),t&2){l();let e=f(1),o=l();p("value",e.stability)("severity",o.stabilitySeverity(e.stability))("rounded",!0)}}function en(t,n){if(t&1&&(r(0,"p-card",21)(1,"dl",29)(2,"dt"),d(3),a(),r(4,"dd")(5,"code"),d(6),a()()()()),t&2){let e=l(2);p("header",e.texts.cards.agent),i(3),c(e.texts.fields.model),i(3),c(n.model??e.texts.missing)}}function tn(t,n){if(t&1&&(r(0,"dt"),d(1),a(),r(2,"dd")(3,"code"),d(4),a()()),t&2){let e=l(),o=l(2);i(),c(o.texts.fields.shortcut),i(3),c(e.shortcut)}}function nn(t,n){if(t&1&&(r(0,"span",40),d(1),a()),t&2){let e=l().$implicit,o=l(4);i(),w("",o.texts.argTypePrefix,"",e.type)}}function on(t,n){if(t&1&&(r(0,"span",41),d(1),a()),t&2){let e=l(5);i(),c(e.texts.required)}}function an(t,n){if(t&1&&d(0),t&2){let e=l().$implicit,o=l(4);w(" ",o.texts.argDescSeparator,"",e.description," ")}}function rn(t,n){if(t&1&&(r(0,"li")(1,"code"),d(2),a(),m(3,nn,2,2,"span",40),m(4,on,2,1,"span",41),m(5,an,1,2),a()),t&2){let e=n.$implicit;i(2),c(e.name),i(),_(e.type?3:-1),i(),_(e.required?4:-1),i(),_(e.description?5:-1)}}function ln(t,n){if(t&1&&(r(0,"h4"),d(1),a(),r(2,"ul",39),b(3,rn,6,4,"li",null,ve),a()),t&2){let e=l(),o=l(2);i(),c(o.texts.fields.arguments),i(2),k(e.args)}}function dn(t,n){if(t&1&&(r(0,"p-card",22)(1,"dl",29),m(2,tn,5,2),a(),m(3,ln,5,1),a()),t&2){let e=n,o=l(2);p("header",o.texts.cards.command),i(2),_(e.shortcut?2:-1),i(),_(e.args!=null&&e.args.length?3:-1)}}function cn(t,n){if(t&1&&(r(0,"dt"),d(1),a(),r(2,"dd")(3,"code",42),d(4),a()()),t&2){let e=l(),o=l(2);i(),c(o.texts.fields.condition),i(3),c(e.condition)}}function sn(t,n){if(t&1&&(r(0,"p-card",23)(1,"dl",29)(2,"dt"),d(3),a(),r(4,"dd")(5,"code"),d(6),a()(),m(7,cn,5,2),r(8,"dt"),d(9),a(),r(10,"dd"),d(11),a(),r(12,"dt"),d(13),a(),r(14,"dd"),d(15),a()()()),t&2){let e=n,o=l(2);p("header",o.texts.cards.hook),i(3),c(o.texts.fields.event),i(3),c(e.event??o.texts.missing),i(),_(e.condition?7:-1),i(2),c(o.texts.fields.blocking),i(2),c(e.blocking?o.texts.yes:o.texts.no),i(2),c(o.texts.fields.idempotent),i(2),c(e.idempotent?o.texts.yes:o.texts.no)}}function pn(t,n){if(t&1&&(r(0,"span",40),d(1),a()),t&2){let e=l().$implicit,o=l(4);i(),w("",o.texts.argTypePrefix,"",e.type)}}function mn(t,n){if(t&1&&(r(0,"span",41),d(1),a()),t&2){let e=l(5);i(),c(e.texts.required)}}function _n(t,n){if(t&1&&d(0),t&2){let e=l().$implicit,o=l(4);w(" ",o.texts.argDescSeparator,"",e.description," ")}}function un(t,n){if(t&1&&(r(0,"li")(1,"code"),d(2),a(),m(3,pn,2,2,"span",40),m(4,mn,2,1,"span",41),m(5,_n,1,2),a()),t&2){let e=n.$implicit;i(2),c(e.name),i(),_(e.type?3:-1),i(),_(e.required?4:-1),i(),_(e.description?5:-1)}}function xn(t,n){if(t&1&&(r(0,"h4"),d(1),a(),r(2,"ul",39),b(3,un,6,4,"li",null,ve),a()),t&2){let e=l(),o=l(2);i(),c(o.texts.fields.inputs),i(2),k(e.inputs)}}function fn(t,n){if(t&1&&(r(0,"span",40),d(1),a()),t&2){let e=l().$implicit,o=l(4);i(),w("",o.texts.argTypePrefix,"",e.type)}}function Cn(t,n){if(t&1&&d(0),t&2){let e=l().$implicit,o=l(4);w(" ",o.texts.argDescSeparator,"",e.description," ")}}function yn(t,n){if(t&1&&(r(0,"li")(1,"code"),d(2),a(),m(3,fn,2,2,"span",40),m(4,Cn,1,2),a()),t&2){let e=n.$implicit;i(2),c(e.name),i(),_(e.type?3:-1),i(),_(e.description?4:-1)}}function gn(t,n){if(t&1&&(r(0,"h4"),d(1),a(),r(2,"ul",39),b(3,yn,5,3,"li",null,ve),a()),t&2){let e=l(),o=l(2);i(),c(o.texts.fields.outputs),i(2),k(e.outputs)}}function hn(t,n){if(t&1&&(r(0,"p-card",24),m(1,xn,5,1),m(2,gn,5,1),a()),t&2){let e=n,o=l(2);p("header",o.texts.cards.skill),i(),_(e.inputs!=null&&e.inputs.length?1:-1),i(),_(e.outputs!=null&&e.outputs.length?2:-1)}}function vn(t,n){t&1&&y(0,"i",47)}function bn(t,n){t&1&&y(0,"i",48)}function kn(t,n){t&1&&y(0,"i",49)}function Tn(t,n){if(t&1){let e=L();r(0,"button",46),N("click",function(){M(e);let s=l().path,C=l(2);return O(C.verifyDeadLink(s))}),m(1,vn,1,0,"i",47)(2,bn,1,0,"i",48)(3,kn,1,0,"i",49),a()}if(t&2){let e=l(),o=e.path,s=e.testIdPrefix,C=f(0),x=l(2);Le("rel-chip__verify--confirmed",C==="dead-confirmed"),p("disabled",x.isVerifying(o))("pTooltip",C==="dead-confirmed"?x.texts.relations.deadConfirmed:x.texts.relations.verifyHint),E("data-testid",s+"-verify-"+o),i(),_(x.isVerifying(o)?1:C==="dead-confirmed"?2:3)}}function In(t,n){if(t&1){let e=L();he(0),r(1,"span",43)(2,"p-chip",44),N("click",function(){let s=M(e).path,C=f(0),x=l(2);return O(C==="live"&&x.openPath(s))}),a(),m(3,Tn,4,6,"button",45),a()}if(t&2){let e=n.path,o=n.testIdPrefix,s=J(l(2).linkStatus(e));i(),E("data-testid",o+"-"+e),i(),p("label",e)("styleClass",s==="live"?"chip--link":s==="dead-confirmed"?"chip--dead chip--dead-confirmed":"chip--dead"),i(),_(s!=="live"?3:-1)}}function Sn(t,n){t&1&&S(0)}function wn(t,n){if(t&1&&(r(0,"h4"),d(1),a(),r(2,"div",50),h(3,Sn,1,0,"ng-container",51),a()),t&2){l(2);let e=$(25),o=f(1),s=l();i(),c(s.texts.fields.supersededBy),i(2),p("ngTemplateOutlet",e)("ngTemplateOutletContext",j(3,Kt,o.supersededBy))}}function En(t,n){t&1&&S(0)}function Pn(t,n){if(t&1&&h(0,En,1,0,"ng-container",51),t&2){let e=n.$implicit;l(3);let o=$(25);p("ngTemplateOutlet",o)("ngTemplateOutletContext",j(2,Wt,e))}}function Mn(t,n){if(t&1&&(r(0,"h4"),d(1),a(),r(2,"div",50),b(3,Pn,1,4,"ng-container",null,V),a()),t&2){l(2);let e=f(1),o=l();i(),c(o.texts.fields.supersedes),i(2),k(e.supersedes)}}function On(t,n){t&1&&S(0)}function Vn(t,n){if(t&1&&h(0,On,1,0,"ng-container",51),t&2){let e=n.$implicit;l(3);let o=$(25);p("ngTemplateOutlet",o)("ngTemplateOutletContext",j(2,Xt,e))}}function Ln(t,n){if(t&1&&(r(0,"h4"),d(1),a(),r(2,"div",50),b(3,Vn,1,4,"ng-container",null,V),a()),t&2){l(2);let e=f(1),o=l();i(),c(o.texts.fields.requires),i(2),k(e.requires)}}function Nn(t,n){t&1&&S(0)}function Fn(t,n){if(t&1&&h(0,Nn,1,0,"ng-container",51),t&2){let e=n.$implicit;l(3);let o=$(25);p("ngTemplateOutlet",o)("ngTemplateOutletContext",j(2,Yt,e))}}function Dn(t,n){if(t&1&&(r(0,"h4"),d(1),a(),r(2,"div",50),b(3,Fn,1,4,"ng-container",null,V),a()),t&2){l(2);let e=f(1),o=l();i(),c(o.texts.fields.related),i(2),k(e.related)}}function Rn(t,n){if(t&1&&y(0,"p-chip",52),t&2){let e=n.$implicit;p("label",e)}}function An(t,n){if(t&1&&(r(0,"h4"),d(1),a(),r(2,"div",50),b(3,Rn,1,1,"p-chip",52,V),a()),t&2){l(2);let e=f(1),o=l();i(),c(o.texts.fields.provides),i(2),k(e.provides)}}function Bn(t,n){if(t&1&&y(0,"p-chip",53),t&2){let e=n.$implicit;p("label",e)}}function zn(t,n){if(t&1&&(r(0,"h4"),d(1),a(),r(2,"div",50),b(3,Bn,1,1,"p-chip",53,V),a()),t&2){l(2);let e=f(1),o=l();i(),c(o.texts.fields.conflictsWith),i(2),k(e.conflictsWith)}}function Hn(t,n){if(t&1&&(r(0,"p-card",25),m(1,wn,4,5),m(2,Mn,5,1),m(3,Ln,5,1),m(4,Dn,5,1),m(5,An,5,1),m(6,zn,5,1),a()),t&2){l();let e=f(1),o=l();p("header",o.texts.cards.relations),i(),_(e!=null&&e.supersededBy?1:-1),i(),_(!(e==null||e.supersedes==null)&&e.supersedes.length?2:-1),i(),_(!(e==null||e.requires==null)&&e.requires.length?3:-1),i(),_(!(e==null||e.related==null)&&e.related.length?4:-1),i(),_(!(e==null||e.provides==null)&&e.provides.length?5:-1),i(),_(!(e==null||e.conflictsWith==null)&&e.conflictsWith.length?6:-1)}}function qn(t,n){if(t&1&&(r(0,"dt"),d(1),a(),r(2,"dd"),d(3),a()),t&2){l();let e=f(1),o=l();i(),c(o.texts.fields.priority),i(2),w("",e.priority,"",o.texts.fields.priorityScale)}}function $n(t,n){if(t&1&&(r(0,"dt"),d(1),a(),r(2,"dd"),d(3),a()),t&2){l();let e=f(0),o=l();i(),c(o.texts.fields.author),i(2),c(e.author)}}function jn(t,n){if(t&1&&(r(0,"dt"),d(1),a(),r(2,"dd"),d(3),a()),t&2){l();let e=f(0),o=l();i(),c(o.texts.fields.authors),i(2),c(e.authors.join(o.texts.authorsSeparator))}}function Un(t,n){if(t&1&&(r(0,"dt"),d(1),a(),r(2,"dd"),d(3),a()),t&2){l();let e=f(0),o=l();i(),c(o.texts.fields.license),i(2),c(e.license)}}function Qn(t,n){if(t&1&&(r(0,"dt"),d(1),a(),r(2,"dd"),d(3),a()),t&2){l();let e=f(1),o=l();i(),c(o.texts.fields.created),i(2),c(e.created)}}function Kn(t,n){if(t&1&&(r(0,"dt"),d(1),a(),r(2,"dd"),d(3),a()),t&2){l();let e=f(1),o=l();i(),c(o.texts.fields.updated),i(2),c(e.updated)}}function Wn(t,n){if(t&1&&(r(0,"dt"),d(1),a(),r(2,"dd"),d(3),a()),t&2){l();let e=f(1),o=l();i(),c(o.texts.fields.released),i(2),c(e.released)}}function Xn(t,n){if(t&1&&(r(0,"dt"),d(1),a(),r(2,"dd"),d(3),a()),t&2){l();let e=f(1),o=l();i(),c(o.texts.fields.category),i(2),c(e.category)}}function Yn(t,n){if(t&1&&(r(0,"dt"),d(1),a(),r(2,"dd")(3,"code"),d(4),a()()),t&2){l();let e=f(1),o=l();i(),c(o.texts.fields.specCompat),i(3),c(e.specCompat)}}function Gn(t,n){if(t&1&&y(0,"p-chip",52),t&2){let e=n.$implicit;p("label",e)}}function Jn(t,n){if(t&1&&(r(0,"h4"),d(1),a(),r(2,"div",50),b(3,Gn,1,1,"p-chip",52,V),a()),t&2){l();let e=f(1),o=l();i(),c(o.texts.fields.tags),i(2),k(e.tags)}}function Zn(t,n){if(t&1&&y(0,"p-chip",52),t&2){let e=n.$implicit;p("label",e)}}function ei(t,n){if(t&1&&(r(0,"h4"),d(1),a(),r(2,"div",50),b(3,Zn,1,1,"p-chip",52,V),a()),t&2){l(2);let e=f(0),o=l();i(),c(o.texts.fields.toolsAllowlist),i(2),k(e.tools)}}function ti(t,n){if(t&1&&y(0,"p-chip",52),t&2){let e=n.$implicit;p("label",e)}}function ni(t,n){if(t&1&&(r(0,"h4"),d(1),a(),r(2,"div",50),b(3,ti,1,1,"p-chip",52,V),a()),t&2){l(2);let e=f(0),o=l();i(),c(o.texts.fields.allowedTools),i(2),k(e.allowedTools)}}function ii(t,n){if(t&1&&(r(0,"p-card",30),m(1,ei,5,1),m(2,ni,5,1),a()),t&2){l();let e=f(0),o=l();p("header",o.texts.cards.tools),i(),_(e.tools!=null&&e.tools.length?1:-1),i(),_(e.allowedTools!=null&&e.allowedTools.length?2:-1)}}function oi(t,n){if(t&1&&(r(0,"dt"),d(1),a(),r(2,"dd")(3,"a",54),d(4),a()()),t&2){l(2);let e=f(1),o=l();i(),c(o.texts.fields.source),i(2),p("href",e.source,q),i(),c(e.source)}}function ai(t,n){if(t&1&&(r(0,"dt"),d(1),a(),r(2,"dd")(3,"a",54),d(4),a()()),t&2){l(2);let e=f(1),o=l();i(),c(o.texts.fields.docs),i(2),p("href",e.docsUrl,q),i(),c(e.docsUrl)}}function ri(t,n){if(t&1&&(r(0,"dt"),d(1),a(),r(2,"dd")(3,"a",54),d(4),a()()),t&2){l(2);let e=f(1),o=l();i(),c(o.texts.fields.homepage),i(2),p("href",e.homepage,q),i(),c(e.homepage)}}function li(t,n){if(t&1&&(r(0,"dt"),d(1),a(),r(2,"dd")(3,"a",54),d(4),a()()),t&2){l(2);let e=f(1),o=l();i(),c(o.texts.fields.examples),i(2),p("href",e.examplesUrl,q),i(),c(e.examplesUrl)}}function di(t,n){if(t&1&&(r(0,"p-card",31)(1,"dl",29),m(2,oi,5,3),m(3,ai,5,3),m(4,ri,5,3),m(5,li,5,3),a()()),t&2){l();let e=f(1),o=l();p("header",o.texts.cards.external),i(2),_(e!=null&&e.source?2:-1),i(),_(e!=null&&e.docsUrl?3:-1),i(),_(e!=null&&e.homepage?4:-1),i(),_(e!=null&&e.examplesUrl?5:-1)}}function ci(t,n){if(t&1){let e=L();r(0,"div",55)(1,"h3",56),d(2),a(),r(3,"p-button",57),N("onClick",function(){M(e);let s=l(2);return O(s.refreshBody())}),a()()}if(t&2){let e=l(2);i(2),c(e.texts.cards.body),i(),p("rounded",!0)("text",!0)("ariaLabel",e.texts.body.refreshLabel)("pTooltip",e.texts.body.refreshLabel)("disabled",e.bodyState()==="loading"||!e.path())}}function si(t,n){if(t&1&&(r(0,"p",34),d(1),a()),t&2){let e=l(2);i(),c(e.texts.body.loading)}}function pi(t,n){if(t&1&&(r(0,"p",35),d(1),a()),t&2){let e=l(2);i(),c(e.texts.body.empty)}}function mi(t,n){if(t&1&&(r(0,"p",36),d(1),a()),t&2){let e=l(2);i(),c(e.texts.body.unavailable)}}function _i(t,n){if(t&1&&(r(0,"p",37),d(1),a()),t&2){let e=l(2);i(),c(e.texts.body.renderError)}}function ui(t,n){if(t&1&&y(0,"div",38),t&2){let e=l(2);p("innerHTML",e.bodyHtml(),Se)}}function xi(t,n){if(t&1){let e=L();he(0)(1),r(2,"section",1)(3,"header",10)(4,"div",11),y(5,"p-tag",12),m(6,Zt,1,3,"p-tag",13),r(7,"h2"),d(8),a()(),r(9,"a",14),d(10),a()(),r(11,"p",15)(12,"code"),d(13),a()(),r(14,"p",16),d(15),a(),r(16,"div",17),y(17,"sm-empty-state",18)(18,"sm-empty-state",19)(19,"sm-empty-state",20),m(20,en,7,3,"p-card",21),m(21,dn,4,3,"p-card",22),m(22,sn,16,8,"p-card",23),m(23,hn,3,3,"p-card",24),h(24,In,4,5,"ng-template",null,0,Fe),m(26,Hn,7,7,"p-card",25),r(27,"div",26)(28,"sm-linked-nodes-panel",27),N("openPath",function(s){M(e);let C=l();return O(C.openPath(s))}),a()(),r(29,"p-card",28)(30,"dl",29)(31,"dt"),d(32),a(),r(33,"dd")(34,"code"),d(35),a()(),m(36,qn,4,3),m(37,$n,4,2),m(38,jn,4,2),m(39,Un,4,2),m(40,Qn,4,2),m(41,Kn,4,2),m(42,Wn,4,2),m(43,Xn,4,2),m(44,Yn,5,2),a(),m(45,Jn,5,1),a(),m(46,ii,3,3,"p-card",30),m(47,di,6,5,"p-card",31),r(48,"p-card",32),h(49,ci,4,6,"ng-template",33),m(50,si,2,1,"p",34)(51,pi,2,1,"p",35)(52,mi,2,1,"p",36)(53,_i,2,1,"p",37)(54,ui,1,1,"div",38),a()()()}if(t&2){let e,o,s,C,x,g=l(),H=g.node(),I=J(H.frontmatter);i();let u=J(I.metadata);i(4),G(g.kindStyle(H.kind)),p("value",g.kindLabel(H.kind)),i(),_(u!=null&&u.stability?6:-1),i(2),c(I.name),i(2),c(g.texts.backToList),i(3),c(H.path),i(2),c(I.description),i(2),p("title",g.texts.placeholders.enrichmentTitle)("body",g.texts.placeholders.body),i(),p("title",g.texts.placeholders.summaryTitle)("body",g.texts.placeholders.body),i(),p("title",g.texts.placeholders.findingsTitle)("body",g.texts.placeholders.body),i(),_((e=g.asAgent())?20:-1,e),i(),_((o=g.asCommand())?21:-1,o),i(),_((s=g.asHook())?22:-1,s),i(),_((C=g.asSkill())?23:-1,C),i(3),_(!(u==null||u.supersedes==null)&&u.supersedes.length||u!=null&&u.supersededBy||!(u==null||u.requires==null)&&u.requires.length||!(u==null||u.related==null)&&u.related.length||!(u==null||u.provides==null)&&u.provides.length||!(u==null||u.conflictsWith==null)&&u.conflictsWith.length?26:-1),i(2),p("path",H.path),i(),p("header",g.texts.cards.metadata),i(3),c(g.texts.fields.version),i(3),c((u==null?null:u.version)??g.texts.missing),i(),_((u==null?null:u.priority)!=null?36:-1),i(),_(I.author?37:-1),i(),_(I.authors!=null&&I.authors.length?38:-1),i(),_(I.license?39:-1),i(),_(u!=null&&u.created?40:-1),i(),_(u!=null&&u.updated?41:-1),i(),_(u!=null&&u.released?42:-1),i(),_(u!=null&&u.category?43:-1),i(),_(u!=null&&u.specCompat?44:-1),i(),_(!(u==null||u.tags==null)&&u.tags.length?45:-1),i(),_(I.tools!=null&&I.tools.length||I.allowedTools!=null&&I.allowedTools.length?46:-1),i(),_(u!=null&&u.source||u!=null&&u.docsUrl||u!=null&&u.homepage||u!=null&&u.examplesUrl?47:-1),i(3),_((x=g.bodyState())==="loading"?50:x==="empty"?51:x==="unavailable"?52:x==="error"?53:x==="ready"?54:-1)}}var fi={stable:"success",experimental:"info",deprecated:"warn"},rt=class t{loader=v(Xe);router=v(ze);kindRegistry=v(Ye);dataSource=v(re);markdown=v(me);texts=nt;path=A(void 0);node=R(()=>{let n=this.path();return n?this.loader.nodes().find(e=>e.path===n)??null:null});pathSet=R(()=>{let n=new Set;for(let e of this.loader.nodes())n.add(e.path);return n});asAgent=R(()=>this.node()?.kind==="agent"?this.node().frontmatter:null);asCommand=R(()=>this.node()?.kind==="command"?this.node().frontmatter:null);asHook=R(()=>this.node()?.kind==="hook"?this.node().frontmatter:null);asSkill=R(()=>this.node()?.kind==="skill"?this.node().frontmatter:null);bodyState=T("idle");bodyHtml=T(null);fetchToken=0;verifiedAlive=T(new Set);verifiedDead=T(new Set);verifyInFlight=T(new Set);constructor(){W(()=>{let n=this.path(),e=++this.fetchToken;if(this.bodyHtml.set(null),this.verifiedAlive.set(new Set),this.verifiedDead.set(new Set),this.verifyInFlight.set(new Set),!n){this.bodyState.set("idle");return}this.bodyState.set("loading"),this.fetchAndRenderBody(n,e)})}ngOnInit(){this.loader.nodes().length===0&&!this.loader.loading()&&this.loader.load()}kindLabel(n){return this.kindRegistry.labelOf(n)}kindStyle(n){return{background:`var(--sm-kind-${n}-bg)`,color:`var(--sm-kind-${n}-fg)`}}stabilitySeverity(n){return fi[n]}openPath(n){this.router.navigate(["/inspector"],{queryParams:{path:n}})}pathExists(n){return this.pathSet().has(n)}linkStatus(n){return this.pathSet().has(n)||this.verifiedAlive().has(n)?"live":this.verifiedDead().has(n)?"dead-confirmed":"dead-heuristic"}isVerifying(n){return this.verifyInFlight().has(n)}async verifyDeadLink(n){if(!(this.verifiedAlive().has(n)||this.verifiedDead().has(n))&&!this.verifyInFlight().has(n)){this.verifyInFlight.update(e=>new Set(e).add(n));try{await this.dataSource.getNode(n)===null?this.verifiedDead.update(o=>new Set(o).add(n)):this.verifiedAlive.update(o=>new Set(o).add(n))}catch{}finally{this.verifyInFlight.update(e=>{let o=new Set(e);return o.delete(n),o})}}}refreshBody(){let n=this.path();if(!n||this.bodyState()==="loading")return;let e=++this.fetchToken;this.bodyHtml.set(null),this.bodyState.set("loading"),this.fetchAndRenderBody(n,e)}async fetchAndRenderBody(n,e){try{let o=await this.dataSource.getNode(n,{includeBody:!0});if(e!==this.fetchToken)return;if(o===null){this.bodyState.set("unavailable");return}let s=o.item.body;if(s===null){this.bodyState.set("unavailable");return}if(s===void 0||s.trim().length===0){this.bodyState.set("empty");return}let C=await this.markdown.render(s);if(e!==this.fetchToken)return;this.bodyHtml.set(C),this.bodyState.set("ready")}catch{if(e!==this.fetchToken)return;this.bodyState.set("error")}}static \u0275fac=function(e){return new(e||t)};static \u0275cmp=B({type:t,selectors:[["app-inspector-view"]],inputs:{path:[1,"path"]},decls:3,vars:1,consts:[["pathChip",""],["data-testid","inspector-view",1,"inspector"],["data-testid","inspector-empty-no-selection",1,"empty-state"],[1,"empty-state__icon","pi","pi-eye"],[1,"empty-state__title"],[1,"empty-state__desc"],["routerLink","/list",1,"inspector__back"],["routerLink","/graph",1,"inspector__back"],["data-testid","inspector-empty-not-found",1,"empty-state"],[1,"empty-state__icon","pi","pi-question-circle",2,"color","var(--sm-severity-warn)","opacity","1"],[1,"inspector__header"],["data-testid","inspector-title",1,"inspector__title"],[3,"value"],[3,"value","severity","rounded"],["routerLink","/list","data-testid","inspector-back",1,"inspector__back"],["data-testid","inspector-path",1,"inspector__path"],["data-testid","inspector-description",1,"inspector__desc"],[1,"inspector__grid"],["icon","pi pi-sparkles","testId","inspector-empty-enrichment",3,"title","body"],["icon","pi pi-file","testId","inspector-empty-summary",3,"title","body"],["icon","pi pi-search","testId","inspector-empty-findings",3,"title","body"],["styleClass","inspector__card","data-testid","inspector-card-agent",3,"header"],["styleClass","inspector__card","data-testid","inspector-card-command",3,"header"],["styleClass","inspector__card","data-testid","inspector-card-hook",3,"header"],["styleClass","inspector__card","data-testid","inspector-card-skill",3,"header"],["styleClass","inspector__card inspector__card--full","data-testid","inspector-card-relations",3,"header"],["data-testid","inspector-card-linked-nodes",1,"inspector__card","inspector__card--full"],[3,"openPath","path"],["styleClass","inspector__card","data-testid","inspector-card-metadata",3,"header"],[1,"kv"],["styleClass","inspector__card","data-testid","inspector-card-tools",3,"header"],["styleClass","inspector__card","data-testid","inspector-card-external",3,"header"],["styleClass","inspector__card inspector__card--full inspector__body","data-testid","inspector-card-body"],["pTemplate","header"],["data-testid","inspector-body-loading",1,"inspector__body-status"],["data-testid","inspector-body-empty",1,"inspector__body-status"],["data-testid","inspector-body-unavailable",1,"inspector__body-status","inspector__body-status--warn"],["data-testid","inspector-body-error",1,"inspector__body-status","inspector__body-status--warn"],["data-testid","inspector-body-rendered",1,"inspector__body-rendered",3,"innerHTML"],[1,"args"],[1,"args__type"],[1,"args__req"],[1,"cond"],[1,"rel-chip"],[3,"click","label","styleClass"],["type","button",1,"rel-chip__verify",3,"rel-chip__verify--confirmed","disabled","pTooltip"],["type","button",1,"rel-chip__verify",3,"click","disabled","pTooltip"],["aria-hidden","true",1,"pi","pi-spin","pi-spinner"],["aria-hidden","true",1,"pi","pi-times-circle"],["aria-hidden","true",1,"pi","pi-question-circle"],[1,"chips"],[4,"ngTemplateOutlet","ngTemplateOutletContext"],[3,"label"],["styleClass","chip--warn",3,"label"],["target","_blank","rel","noopener",3,"href"],[1,"inspector__body-header"],[1,"inspector__body-title"],["icon","pi pi-refresh","severity","secondary","data-testid","inspector-body-refresh",3,"onClick","rounded","text","ariaLabel","pTooltip","disabled"]],template:function(e,o){e&1&&m(0,Gt,13,6,"section",1)(1,Jt,12,5,"section",1)(2,xi,55,38,"section",1),e&2&&_(o.path()?o.node()?2:1:0)},dependencies:[He,Z,ce,de,z,le,Ge,pe,Q,ie,ne,ae,oe,_e,ue],styles:["[_nghost-%COMP%]{display:block}.inspector[_ngcontent-%COMP%]{display:flex;flex-direction:column;gap:1rem}.inspector--empty[_ngcontent-%COMP%]{padding:2rem;color:var(--p-text-muted-color)}.inspector--empty[_ngcontent-%COMP%] code[_ngcontent-%COMP%]{background:var(--sm-bg-hover);padding:.1rem .35rem;border-radius:.25rem;font-size:.85rem}.inspector__header[_ngcontent-%COMP%]{display:flex;justify-content:space-between;align-items:center;flex-wrap:wrap;gap:.5rem}.inspector__title[_ngcontent-%COMP%]{display:flex;align-items:center;gap:.5rem;flex-wrap:wrap}.inspector__title[_ngcontent-%COMP%] h2[_ngcontent-%COMP%]{margin:0;font-size:1.5rem;font-weight:600;letter-spacing:-.01em}.inspector__back[_ngcontent-%COMP%]{font-size:.9rem;color:var(--p-primary-color)}.inspector__path[_ngcontent-%COMP%]{margin:0}.inspector__path[_ngcontent-%COMP%] code[_ngcontent-%COMP%]{background:var(--sm-bg-hover);padding:.15rem .5rem;border-radius:.25rem;font-size:.85rem;color:var(--p-text-muted-color)}.inspector__desc[_ngcontent-%COMP%]{margin:0;color:var(--p-text-color);font-size:1rem;line-height:1.5;max-width:70ch}.inspector__grid[_ngcontent-%COMP%]{display:grid;grid-template-columns:1fr 1fr;gap:1rem}.inspector__card--full[_ngcontent-%COMP%]{grid-column:1 / -1}[_nghost-%COMP%] .inspector__card--hero .p-card{border-left:3px solid var(--p-primary-color)}.inspector__body[_ngcontent-%COMP%]{display:block}.inspector__body-header[_ngcontent-%COMP%]{display:flex;align-items:center;justify-content:space-between;gap:.5rem;padding:.75rem 1rem 0}.inspector__body-title[_ngcontent-%COMP%]{margin:0;font-size:.95rem;font-weight:600}.inspector__body-status[_ngcontent-%COMP%]{margin:0;font-size:.85rem;color:var(--p-text-muted-color);font-style:italic}.inspector__body-status--warn[_ngcontent-%COMP%]{color:var(--sm-severity-warn);font-style:normal}.inspector__body-rendered[_ngcontent-%COMP%]{font-size:.9rem;line-height:1.55;max-height:600px;overflow:auto}.inspector__body-rendered[_ngcontent-%COMP%] [_ngcontent-%COMP%]:first-child{margin-top:0}.inspector__body-rendered[_ngcontent-%COMP%] [_ngcontent-%COMP%]:last-child{margin-bottom:0}.inspector__body-rendered[_ngcontent-%COMP%] pre[_ngcontent-%COMP%]{background:var(--p-content-background);border:1px solid var(--p-content-border-color);border-radius:4px;padding:.75rem;margin:.75rem 0;white-space:pre-wrap;word-wrap:break-word;font-family:ui-monospace,SFMono-Regular,Menlo,Monaco,Consolas,monospace;font-size:.85rem;line-height:1.5;overflow-x:auto}.inspector__body-rendered[_ngcontent-%COMP%] code[_ngcontent-%COMP%]{background:var(--p-content-background);padding:.1rem .3rem;border-radius:3px;font-family:ui-monospace,SFMono-Regular,Menlo,Monaco,Consolas,monospace;font-size:.85em}.inspector__body-rendered[_ngcontent-%COMP%] pre[_ngcontent-%COMP%] code[_ngcontent-%COMP%]{background:transparent;padding:0;border-radius:0}.kv[_ngcontent-%COMP%]{display:grid;grid-template-columns:max-content 1fr;gap:.25rem .75rem;margin:0 0 .5rem;font-size:.9rem}.kv[_ngcontent-%COMP%] dt[_ngcontent-%COMP%]{color:var(--p-text-muted-color);font-weight:500}.kv[_ngcontent-%COMP%] dd[_ngcontent-%COMP%]{margin:0;word-break:break-word}.kv[_ngcontent-%COMP%] code[_ngcontent-%COMP%]{background:var(--sm-bg-hover);padding:.1rem .35rem;border-radius:.25rem;font-size:.85rem}.kv[_ngcontent-%COMP%] a[_ngcontent-%COMP%]{color:var(--p-primary-color);word-break:break-all}h4[_ngcontent-%COMP%]{margin:1rem 0 .5rem;font-size:.85rem;text-transform:uppercase;letter-spacing:.04em;color:var(--p-text-muted-color);font-weight:600}h4[_ngcontent-%COMP%]:first-child{margin-top:0}.chips[_ngcontent-%COMP%]{display:flex;flex-wrap:wrap;gap:.4rem}[_nghost-%COMP%] .chip--link .p-chip{cursor:pointer;background:var(--p-primary-50);color:var(--p-primary-color);transition:background .15s ease}[_nghost-%COMP%] .chip--link:hover .p-chip{background:var(--p-primary-100)}[_nghost-%COMP%] .chip--dead .p-chip{background:var(--sm-bg-hover);color:var(--p-text-muted-color);text-decoration:line-through;cursor:not-allowed}[_nghost-%COMP%] .chip--warn .p-chip{background:var(--sm-kind-command-bg);color:var(--sm-kind-command-fg)}[_nghost-%COMP%] .chip--dead-confirmed .p-chip{background:var(--sm-bg-hover);color:var(--sm-severity-error);border:1px dashed var(--sm-severity-error)}.rel-chip[_ngcontent-%COMP%]{display:inline-flex;align-items:center;gap:.2rem}.rel-chip__verify[_ngcontent-%COMP%]{background:none;border:none;padding:.15rem;cursor:pointer;color:var(--p-text-muted-color);border-radius:50%;display:inline-flex;align-items:center;justify-content:center;transition:color .15s ease,background .15s ease}.rel-chip__verify[_ngcontent-%COMP%]:hover:not(:disabled){color:var(--p-primary-color);background:var(--sm-bg-hover)}.rel-chip__verify[_ngcontent-%COMP%]:disabled{cursor:wait;opacity:.6}.rel-chip__verify--confirmed[_ngcontent-%COMP%]{color:var(--sm-severity-error)}.rel-chip__verify--confirmed[_ngcontent-%COMP%]:hover:not(:disabled){color:var(--sm-severity-error)}.args[_ngcontent-%COMP%]{margin:0;padding-left:1.25rem;display:flex;flex-direction:column;gap:.35rem;font-size:.9rem}.args[_ngcontent-%COMP%] code[_ngcontent-%COMP%]{background:var(--sm-bg-hover);padding:.1rem .35rem;border-radius:.25rem;font-size:.8rem;font-weight:500}.args__type[_ngcontent-%COMP%]{color:var(--p-text-muted-color);font-style:italic;margin-left:.25rem}.args__req[_ngcontent-%COMP%]{display:inline-block;margin-left:.5rem;padding:0 .4rem;font-size:.7rem;background:var(--sm-kind-command-bg);color:var(--sm-kind-command-fg);border-radius:.25rem;text-transform:uppercase;letter-spacing:.04em;font-weight:600}.cond[_ngcontent-%COMP%]{font-size:.8rem;word-break:break-all}.inspector__actions[_ngcontent-%COMP%]{display:flex;gap:.5rem}@media(max-width:1280px){.inspector__grid[_ngcontent-%COMP%]{grid-template-columns:1fr}}"],changeDetection:0})};export{rt as InspectorView};
|
|
@@ -1,4 +1,4 @@
|
|
|
1
|
-
import{Ac as U,B as Y,Ba as _t,D as E,Ea as Tt,Fa as v,Ga as Et,H as pt,Ha as bt,Hb as A,Hc as Pt,I as p,Ic as $,Jc as Ht,Kc as K,Lb as St,M as j,Mb as kt,N as dt,Nb as Vt,Nc as Q,O as F,Oc as G,P as R,
|
|
1
|
+
import{Ac as U,B as Y,Ba as _t,D as E,Ea as Tt,Fa as v,Ga as Et,H as pt,Ha as bt,Hb as A,Hc as Pt,I as p,Ic as $,Jc as Ht,Kc as K,Lb as St,M as j,Mb as kt,N as dt,Nb as Vt,Nc as Q,O as F,Oc as G,P as R,Q as ht,Qb as d,R as ut,Ra as Z,S as x,Sc as Bt,T as b,Tb as lt,Ub as q,Uc as P,Vb as Mt,Vc as at,W as w,Xb as W,Zc as Nt,_a as wt,ab as xt,ca as c,cb as M,da as L,dc as y,ea as I,fa as ft,ga as tt,ha as et,ia as it,ib as h,ja as nt,jb as C,ka as ot,l as H,lc as At,m as B,mb as Lt,n as N,oa as k,ob as It,p as T,pa as mt,qa as V,qb as Ct,r as m,ra as a,rb as Ot,s as g,sa as gt,sb as Dt,t as z,ta as vt,ua as yt,wa as st,x as X,xa as rt,y as ct}from"./chunk-AVRC55YV.js";import{a as f}from"./chunk-Q7L6LLAK.js";var zt=class n{static isArray(e,t=!0){return Array.isArray(e)&&(t||e.length!==0)}static isObject(e,t=!0){return typeof e=="object"&&!Array.isArray(e)&&e!=null&&(t||Object.keys(e).length!==0)}static equals(e,t,i){return i?this.resolveFieldData(e,i)===this.resolveFieldData(t,i):this.equalsByValue(e,t)}static equalsByValue(e,t){if(e===t)return!0;if(e&&t&&typeof e=="object"&&typeof t=="object"){var i=Array.isArray(e),o=Array.isArray(t),s,r,l;if(i&&o){if(r=e.length,r!=t.length)return!1;for(s=r;s--!==0;)if(!this.equalsByValue(e[s],t[s]))return!1;return!0}if(i!=o)return!1;var u=this.isDate(e),O=this.isDate(t);if(u!=O)return!1;if(u&&O)return e.getTime()==t.getTime();var D=e instanceof RegExp,S=t instanceof RegExp;if(D!=S)return!1;if(D&&S)return e.toString()==t.toString();var _=Object.keys(e);if(r=_.length,r!==Object.keys(t).length)return!1;for(s=r;s--!==0;)if(!Object.prototype.hasOwnProperty.call(t,_[s]))return!1;for(s=r;s--!==0;)if(l=_[s],!this.equalsByValue(e[l],t[l]))return!1;return!0}return e!==e&&t!==t}static resolveFieldData(e,t){if(e&&t){if(this.isFunction(t))return t(e);if(t.indexOf(".")==-1)return e[t];{let i=t.split("."),o=e;for(let s=0,r=i.length;s<r;++s){if(o==null)return null;o=o[i[s]]}return o}}else return null}static isFunction(e){return!!(e&&e.constructor&&e.call&&e.apply)}static reorderArray(e,t,i){let o;e&&t!==i&&(i>=e.length&&(i%=e.length,t%=e.length),e.splice(i,0,e.splice(t,1)[0]))}static insertIntoOrderedArray(e,t,i,o){if(i.length>0){let s=!1;for(let r=0;r<i.length;r++)if(this.findIndexInList(i[r],o)>t){i.splice(r,0,e),s=!0;break}s||i.push(e)}else i.push(e)}static findIndexInList(e,t){let i=-1;if(t){for(let o=0;o<t.length;o++)if(t[o]==e){i=o;break}}return i}static contains(e,t){if(e!=null&&t&&t.length){for(let i of t)if(this.equals(e,i))return!0}return!1}static removeAccents(e){return e&&(e=e.normalize("NFKD").replace(new RegExp("\\p{Diacritic}","gu"),"")),e}static isDate(e){return Object.prototype.toString.call(e)==="[object Date]"}static isEmpty(e){return e==null||e===""||Array.isArray(e)&&e.length===0||!this.isDate(e)&&typeof e=="object"&&Object.keys(e).length===0}static isNotEmpty(e){return!this.isEmpty(e)}static compare(e,t,i,o=1){let s=-1,r=this.isEmpty(e),l=this.isEmpty(t);return r&&l?s=0:r?s=o:l?s=-o:typeof e=="string"&&typeof t=="string"?s=e.localeCompare(t,i,{numeric:!0}):s=e<t?-1:e>t?1:0,s}static sort(e,t,i=1,o,s=1){let r=n.compare(e,t,o,i),l=i;return(n.isEmpty(e)||n.isEmpty(t))&&(l=s===1?i:s),l*r}static merge(e,t){if(!(e==null&&t==null)){{if((e==null||typeof e=="object")&&(t==null||typeof t=="object"))return f(f({},e||{}),t||{});if((e==null||typeof e=="string")&&(t==null||typeof t=="string"))return[e||"",t||""].join(" ")}return t||e}}static isPrintableCharacter(e=""){return this.isNotEmpty(e)&&e.length===1&&e.match(/\S| /)}static getItemValue(e,...t){return this.isFunction(e)?e(...t):e}static findLastIndex(e,t){let i=-1;if(this.isNotEmpty(e))try{i=e.findLastIndex(t)}catch{i=e.lastIndexOf([...e].reverse().find(t))}return i}static findLast(e,t){let i;if(this.isNotEmpty(e))try{i=e.findLast(t)}catch{i=[...e].reverse().find(t)}return i}static deepEquals(e,t){if(e===t)return!0;if(e&&t&&typeof e=="object"&&typeof t=="object"){var i=Array.isArray(e),o=Array.isArray(t),s,r,l;if(i&&o){if(r=e.length,r!=t.length)return!1;for(s=r;s--!==0;)if(!this.deepEquals(e[s],t[s]))return!1;return!0}if(i!=o)return!1;var u=e instanceof Date,O=t instanceof Date;if(u!=O)return!1;if(u&&O)return e.getTime()==t.getTime();var D=e instanceof RegExp,S=t instanceof RegExp;if(D!=S)return!1;if(D&&S)return e.toString()==t.toString();var _=Object.keys(e);if(r=_.length,r!==Object.keys(t).length)return!1;for(s=r;s--!==0;)if(!Object.prototype.hasOwnProperty.call(t,_[s]))return!1;for(s=r;s--!==0;)if(l=_[s],!this.deepEquals(e[l],t[l]))return!1;return!0}return e!==e&&t!==t}static minifyCSS(e){return e&&e.replace(/\/\*(?:(?!\*\/)[\s\S])*\*\/|[\r\n\t]+/g,"").replace(/ {2,}/g," ").replace(/ ([{:}]) /g,"$1").replace(/([;,]) /g,"$1").replace(/ !/g,"!").replace(/: /g,":")}static toFlatCase(e){return this.isString(e)?e.replace(/(-|_)/g,"").toLowerCase():e}static isString(e,t=!0){return typeof e=="string"&&(t||e!=="")}},Ft=0;function fe(n="pn_id_"){return Ft++,`${n}${Ft}`}function Gt(){let n=[],e=(s,r)=>{let l=n.length>0?n[n.length-1]:{key:s,value:r},u=l.value+(l.key===s?0:r)+2;return n.push({key:s,value:u}),u},t=s=>{n=n.filter(r=>r.value!==s)},i=()=>n.length>0?n[n.length-1].value:0,o=s=>s&&parseInt(s.style.zIndex,10)||0;return{get:o,set:(s,r,l)=>{r&&(r.style.zIndex=String(e(s,l)))},clear:s=>{s&&(t(o(s)),s.style.zIndex="")},getCurrent:()=>i(),generateZIndex:e,revertZIndex:t}}var J=Gt();var Rt=`
|
|
2
2
|
.p-tooltip {
|
|
3
3
|
position: absolute;
|
|
4
4
|
display: none;
|
|
Binary file
|
|
@@ -0,0 +1,14 @@
|
|
|
1
|
+
<svg xmlns="http://www.w3.org/2000/svg" width="256" height="256" viewBox="0 0 64 64" fill="none">
|
|
2
|
+
<style>
|
|
3
|
+
.a { stroke: #0E131A; fill: #0E131A; }
|
|
4
|
+
@media (prefers-color-scheme: dark) {
|
|
5
|
+
.a { stroke: #FFFFFF; fill: #FFFFFF; }
|
|
6
|
+
}
|
|
7
|
+
</style>
|
|
8
|
+
<line class="a" x1="16" y1="20" x2="48" y2="20" stroke-width="3.5" stroke-linecap="round"/>
|
|
9
|
+
<line class="a" x1="16" y1="20" x2="32" y2="48" stroke-width="3.5" stroke-linecap="round"/>
|
|
10
|
+
<line class="a" x1="48" y1="20" x2="32" y2="48" stroke-width="3.5" stroke-linecap="round"/>
|
|
11
|
+
<circle class="a" cx="16" cy="20" r="6"/>
|
|
12
|
+
<circle class="a" cx="48" cy="20" r="6"/>
|
|
13
|
+
<circle cx="32" cy="48" r="8" fill="#7C3AED"/>
|
|
14
|
+
</svg>
|
package/dist/ui/index.html
CHANGED
|
@@ -11,9 +11,17 @@
|
|
|
11
11
|
`content` to `demo` and bundles a precomputed snapshot alongside.
|
|
12
12
|
-->
|
|
13
13
|
<meta name="skill-map-mode" content="live">
|
|
14
|
-
|
|
14
|
+
<!--
|
|
15
|
+
Adaptive SVG favicon: the file carries an inline `prefers-color-scheme`
|
|
16
|
+
<style> block that flips strokes/fills between dark and light browser
|
|
17
|
+
tabs. The PNG entry is a last-resort fallback for ancient clients that
|
|
18
|
+
don't render SVG favicons. Mirrors web/index.html so the SPA and the
|
|
19
|
+
marketing site share one source of truth.
|
|
20
|
+
-->
|
|
21
|
+
<link rel="icon" type="image/svg+xml" href="favicon.svg">
|
|
22
|
+
<link rel="icon" type="image/png" sizes="32x32" href="favicon-32x32.png">
|
|
15
23
|
<style>:root{--ff-white:#ffffff;--ff-black:#000000;--ff-gray-0:#ffffff;--ff-gray-25:#fcfcfc;--ff-gray-50:#f8f8f7;--ff-gray-75:#f2f2f0;--ff-gray-100:#e9e9e6;--ff-gray-150:#dcdcd7;--ff-gray-200:#c9c9c1;--ff-gray-300:#afafa5;--ff-gray-400:#8d8d81;--ff-gray-500:#69695f;--ff-gray-600:#505048;--ff-gray-700:#3c3c36;--ff-gray-800:#272722;--ff-gray-900:#1b1b18;--ff-gray-950:#141412;--ff-gray-1000:#0f0f0d;--ff-alpha-black-04:rgba(15, 15, 13, .04);--ff-alpha-black-06:rgba(15, 15, 13, .06);--ff-alpha-black-08:rgba(15, 15, 13, .08);--ff-alpha-black-10:rgba(15, 15, 13, .1);--ff-alpha-black-12:rgba(15, 15, 13, .12);--ff-alpha-black-15:rgba(15, 15, 13, .15);--ff-alpha-black-20:rgba(15, 15, 13, .2);--ff-alpha-black-30:rgba(15, 15, 13, .3);--ff-alpha-black-40:rgba(15, 15, 13, .4);--ff-alpha-black-60:rgba(15, 15, 13, .6);--ff-alpha-white-04:rgba(255, 255, 255, .04);--ff-alpha-white-06:rgba(255, 255, 255, .06);--ff-alpha-white-08:rgba(255, 255, 255, .08);--ff-alpha-white-10:rgba(255, 255, 255, .1);--ff-alpha-white-12:rgba(255, 255, 255, .12);--ff-alpha-white-15:rgba(255, 255, 255, .15);--ff-alpha-white-20:rgba(255, 255, 255, .2);--ff-alpha-white-30:rgba(255, 255, 255, .3);--ff-alpha-white-40:rgba(255, 255, 255, .4);--ff-alpha-white-60:rgba(255, 255, 255, .6);--ff-blue-100:#e8f2ff;--ff-blue-200:#bad8ff;--ff-blue-300:#7db7ff;--ff-blue-400:#4176ff;--ff-blue-500:#2759db;--ff-blue-600:#1b3f9e;--ff-green-100:#e7f7ef;--ff-green-300:#71c795;--ff-green-400:#2b9b5f;--ff-green-500:#1e7748;--ff-yellow-100:#fff5de;--ff-yellow-300:#e1b354;--ff-yellow-400:#bb8121;--ff-yellow-500:#916112;--ff-red-100:#feeceb;--ff-red-300:#e48d85;--ff-red-400:#c55245;--ff-red-500:#9e3a2f;--ff-radius-4:4px;--ff-radius-6:6px;--ff-radius-pill:999px;--ff-font-family-sans:"Inter", ui-sans-serif, system-ui, sans-serif, "Apple Color Emoji", "Segoe UI Emoji", "Segoe UI Symbol", "Noto Color Emoji";--ff-font-family-mono:ui-monospace, "SFMono-Regular", "Menlo", "Monaco", "Consolas", "Liberation Mono", "Courier New", monospace;--ff-font-size-xs:12px;--ff-font-size-sm:14px;--ff-font-size-md:16px;--ff-font-size-lg:18px;--ff-shadow-1:0 1px 2px rgba(15, 15, 13, .05), 0 8px 20px rgba(15, 15, 13, .04);--ff-shadow-2:0 10px 28px rgba(15, 15, 13, .08), 0 3px 10px rgba(15, 15, 13, .05);--ff-shadow-3:0 18px 48px rgba(15, 15, 13, .12), 0 6px 16px rgba(15, 15, 13, .08)}:root{--ff-color-surface-page:var(--ff-gray-25);--ff-color-surface-canvas:var(--ff-gray-25);--ff-color-surface-card:var(--ff-white);--ff-color-surface-group:rgba(65, 118, 255, .14);--ff-color-surface-group-active:rgba(65, 118, 255, .2);--ff-color-surface-muted:var(--ff-gray-50);--ff-color-surface-soft:var(--ff-gray-75);--ff-color-surface-accent-soft:rgba(65, 118, 255, .1);--ff-color-border-default:var(--ff-alpha-black-12);--ff-color-border-subtle:var(--ff-alpha-black-08);--ff-color-border-strong:var(--ff-alpha-black-20);--ff-color-border-accent:var(--ff-blue-500);--ff-color-text-primary:var(--ff-gray-800);--ff-color-text-secondary:var(--ff-gray-500);--ff-color-text-tertiary:var(--ff-gray-400);--ff-color-text-inverse:var(--ff-white);--ff-color-accent:var(--ff-blue-500);--ff-color-accent-strong:var(--ff-blue-600);--ff-color-success:var(--ff-green-400);--ff-color-warning:var(--ff-yellow-400);--ff-color-danger:var(--ff-red-400);--ff-color-disabled-surface:var(--ff-gray-100);--ff-color-disabled-border:var(--ff-alpha-black-10);--ff-color-disabled-text:var(--ff-gray-300);--ff-color-selection-fill:rgba(65, 118, 255, .12);--ff-color-selection-stroke:rgba(65, 118, 255, .28);--ff-color-grid:var(--ff-alpha-black-08);--ff-color-grid-strong:var(--ff-alpha-black-15);--ff-color-connector-connected:var(--ff-blue-500);--ff-color-connection:var(--ff-gray-600);--ff-color-connection-muted:var(--ff-gray-300);--ff-color-connection-hover:var(--ff-alpha-black-12);--ff-color-grouping-drop-target-border:var(--ff-gray-800);--ff-color-grouping-drop-target-border-active:var(--ff-gray-800);--ff-color-waypoint-fill:var(--ff-white);--ff-color-waypoint-stroke:var(--ff-blue-500);--ff-color-waypoint-candidate-fill:var(--ff-white);--ff-color-waypoint-candidate-stroke:var(--ff-green-400);--ff-color-minimap-surface:var(--ff-white);--ff-color-minimap-node:var(--ff-gray-700);--ff-color-minimap-view:rgba(65, 118, 255, .14);--ff-color-magnetic-line:var(--ff-blue-500);--ff-color-magnetic-rect-fill:rgba(65, 118, 255, .08);--ff-color-magnetic-rect-border:rgba(65, 118, 255, .24);--ff-radius-node:var(--ff-radius-4);--ff-radius-group:var(--ff-radius-4);--ff-radius-control:var(--ff-radius-4);--ff-radius-socket-square:var(--ff-radius-6);--ff-radius-pill:var(--ff-radius-pill);--ff-font-sans:var(--ff-font-family-sans);--ff-font-mono:var(--ff-font-family-mono);--ff-font-size-body:var(--ff-font-size-sm);--ff-font-size-label:var(--ff-font-size-xs);--ff-shadow-surface:var(--ff-shadow-1);--ff-shadow-floating:var(--ff-shadow-2)}:root{--ff-flow-background-color:var(--ff-color-surface-page);--ff-flow-text-color:var(--ff-color-text-primary);--ff-flow-font-family:var(--ff-font-sans);--ff-flow-font-size:var(--ff-font-size-body);--ff-canvas-background-color:var(--ff-color-surface-canvas);--ff-node-background-color:var(--ff-color-surface-card);--ff-node-background-color-inverse:var(--ff-color-text-primary);--ff-node-border-color:var(--ff-color-border-default);--ff-node-border-color-selected:var(--ff-color-border-accent);--ff-node-color:var(--ff-color-text-primary);--ff-node-border-radius:var(--ff-radius-node);--ff-node-shadow:var(--ff-shadow-surface);--ff-node-shadow-selected:var(--ff-shadow-floating);--ff-node-width:120px;--ff-node-min-height:56px;--ff-node-padding:24px;--ff-group-background-color:var(--ff-color-surface-group);--ff-group-background-color-active:var(--ff-color-surface-group-active);--ff-group-border-color:var(--ff-color-border-subtle);--ff-group-border-color-selected:var(--ff-color-border-accent);--ff-group-border-color-active:var(--ff-color-border-accent);--ff-group-color:var(--ff-color-text-secondary);--ff-group-border-radius:var(--ff-radius-group);--ff-group-min-width:180px;--ff-group-min-height:120px;--ff-group-padding:24px;--ff-grouping-drop-target-border-color:var(--ff-color-grouping-drop-target-border);--ff-grouping-drop-target-border-style:dashed;--ff-grouping-drop-target-border-width:1px;--ff-grouping-drop-target-border-color-active:var(--ff-color-grouping-drop-target-border-active);--ff-grouping-drop-target-border-style-active:dashed;--ff-grouping-drop-target-border-width-active:2px;--ff-handle-background-color:var(--ff-color-surface-card);--ff-handle-border-color:var(--ff-color-border-strong);--ff-handle-color:var(--ff-color-text-secondary);--ff-handle-size:12px;--ff-handle-radius:var(--ff-radius-control);--ff-rotate-handle-size:16px;--ff-connector-background-color:var(--ff-color-surface-card);--ff-connector-border-color:var(--ff-color-border-default);--ff-connector-connected-color:var(--ff-color-connector-connected);--ff-connector-accent-color:var(--ff-color-accent);--ff-connector-disabled-color:var(--ff-color-disabled-surface);--ff-connector-disabled-border-color:var(--ff-color-disabled-border);--ff-connector-size:16px;--ff-connector-node-ring-color:var(--ff-canvas-background-color);--ff-outlet-background-color:var(--ff-color-surface-muted);--ff-outlet-border-color:var(--ff-color-border-default);--ff-outlet-color:var(--ff-color-accent);--ff-outlet-disabled-background-color:var(--ff-color-disabled-surface);--ff-outlet-disabled-border-color:var(--ff-color-disabled-border);--ff-outlet-disabled-color:var(--ff-color-disabled-text);--ff-outlet-border-radius:var(--ff-radius-pill);--ff-outlet-padding-y:6px;--ff-outlet-padding-x:12px;--ff-connection-color:var(--ff-color-connection);--ff-snap-connection-color:var(--ff-color-connection-muted);--ff-connection-hover-color:var(--ff-color-connection-hover);--ff-connection-selected-color:var(--ff-color-accent);--ff-connection-label-color:var(--ff-color-text-secondary);--ff-connection-content-color:var(--ff-node-color);--ff-connection-content-background-color:var(--ff-node-background-color);--ff-connection-content-border-color:var(--ff-node-border-color);--ff-connection-content-border-color-selected:var(--ff-connection-selected-color);--ff-connection-content-border-radius:var(--ff-node-border-radius);--ff-connection-content-font-size:13px;--ff-connection-content-padding-y:2px;--ff-connection-content-padding-x:8px;--ff-connection-width:2px;--ff-connection-hit-width:14px;--ff-connection-drag-handle-fill:var(--ff-color-surface-card);--ff-connection-drag-handle-stroke:var(--ff-color-accent);--ff-marker-color:var(--ff-connection-color);--ff-waypoint-fill:var(--ff-color-waypoint-fill);--ff-waypoint-stroke:var(--ff-color-waypoint-stroke);--ff-waypoint-candidate-fill:var(--ff-color-waypoint-candidate-fill);--ff-waypoint-candidate-stroke:var(--ff-color-waypoint-candidate-stroke);--ff-background-line-color:var(--ff-color-grid);--ff-background-dot-color:var(--ff-color-grid-strong);--ff-selection-area-color:var(--ff-color-selection-fill);--ff-selection-area-border-color:var(--ff-color-selection-stroke);--ff-minimap-background-color:var(--ff-color-minimap-surface);--ff-minimap-border-color:var(--ff-color-border-default);--ff-minimap-node-color:var(--ff-color-minimap-node);--ff-minimap-node-selected-color:var(--ff-color-accent);--ff-minimap-view-color:var(--ff-color-minimap-view);--ff-minimap-view-border-color:var(--ff-color-selection-stroke);--ff-minimap-border-radius:var(--ff-radius-node);--ff-minimap-shadow:var(--ff-shadow-floating);--ff-magnetic-line-color:var(--ff-color-magnetic-line);--ff-magnetic-rect-fill:var(--ff-color-magnetic-rect-fill);--ff-magnetic-rect-border-color:var(--ff-color-magnetic-rect-border);--ff-external-item-background-color:var(--ff-color-surface-card);--ff-external-item-border-color:var(--ff-color-border-default);--ff-external-item-color:var(--ff-color-text-primary);--ff-external-item-disabled-color:var(--ff-color-disabled-text);--ff-external-item-disabled-background-color:var(--ff-color-disabled-surface);--ff-external-item-border-radius:var(--ff-radius-node);--ff-external-item-shadow:var(--ff-shadow-surface);--ff-external-item-preview-shadow:var(--ff-shadow-floating);--ff-external-item-placeholder-background-color:var(--ff-color-surface-soft);--ff-external-item-placeholder-border-color:var(--ff-color-border-subtle)}@-webkit-keyframes fa-spin{0%{-webkit-transform:rotate(0deg);transform:rotate(0)}to{-webkit-transform:rotate(359deg);transform:rotate(359deg)}}:root{--sm-font-mono:ui-monospace, SFMono-Regular, Menlo, Monaco, Consolas, monospace;--sm-bg-page:#f8fafc;--sm-bg-content:#ffffff;--sm-bg-hover:#f1f5f9;--sm-border:#e2e8f0;--sm-nav-active-bg:#eff6ff;--sm-edge-invokes:#f59e0b;--sm-edge-references:#3b82f6;--sm-edge-mentions:#9ca3af;--sm-edge-supersedes:#8b5cf6;--sm-link-in-bg:#e0e7ff;--sm-link-in-fg:#3730a3;--sm-link-out-bg:#fef3c7;--sm-link-out-fg:#92400e;--sm-severity-info:#1e3a8a;--sm-severity-success:#065f46;--sm-severity-warn:#92400e;--sm-severity-error:#991b1b;--sm-severity-warn-bg:rgba(254, 243, 199, .35);--sm-severity-error-bg:rgba(254, 226, 226, .35);--sm-shadow-topbar:0 1px 2px rgba(0, 0, 0, .03);--sm-shadow-eventlog:0 -4px 16px rgba(0, 0, 0, .08);--sm-shadow-floating:0 4px 14px rgba(0, 0, 0, .08);--sm-shadow-card:0 1px 2px rgba(0, 0, 0, .05);--sm-shadow-card-hover:0 3px 12px rgba(0, 0, 0, .12)}html,body{margin:0;padding:0;height:100dvh;overflow:hidden;font-family:Inter,-apple-system,BlinkMacSystemFont,Segoe UI,Roboto,Helvetica,Arial,sans-serif,"Apple Color Emoji","Segoe UI Emoji";-webkit-font-smoothing:antialiased;-moz-osx-font-smoothing:grayscale;background:var(--sm-bg-page);color:var(--p-text-color)}*,*:before,*:after{box-sizing:border-box}</style><link rel="stylesheet" href="styles-TCK5JUQE.css" media="print" onload="this.media='all'"><noscript><link rel="stylesheet" href="styles-TCK5JUQE.css"></noscript></head>
|
|
16
24
|
<body>
|
|
17
25
|
<app-root></app-root>
|
|
18
|
-
<link rel="modulepreload" href="chunk-
|
|
26
|
+
<link rel="modulepreload" href="chunk-G6SL4UFD.js"><link rel="modulepreload" href="chunk-AVRC55YV.js"><link rel="modulepreload" href="chunk-Q7L6LLAK.js"><script src="main-TG4BEOVI.js" type="module"></script></body>
|
|
19
27
|
</html>
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
import{a as Ae,b as xe}from"./chunk-G6SL4UFD.js";import{A as T,Ab as fe,B as L,Bb as ye,Cb as ve,Db as Ie,Eb as be,Fb as ke,Ga as d,Gb as we,H as oe,Ha as m,I as l,Ia as N,Lc as Se,Mc as _e,O,V as se,W as ae,Z as le,_ as ce,a as X,ab as _,ad as F,b as Y,bd as j,c as C,ca as R,da as a,dd as Ee,ea as c,ed as p,f as V,fa as P,fd as Pe,gd as I,j as Z,l as v,n as q,o as D,oa as de,p as s,qa as W,r as ee,ra as G,s as te,tb as me,ub as pe,v as ne,vb as A,w as re,wb as ue,xb as he,z as ie,zb as ge}from"./chunk-AVRC55YV.js";import"./chunk-Q7L6LLAK.js";var Te=[{path:"",pathMatch:"full",redirectTo:"graph"},{path:"graph",loadComponent:()=>import("./chunk-VJAWM5V3.js").then(n=>n.GraphView),data:{title:"Graph"}},{path:"list",loadComponent:()=>import("./chunk-T5SUVDLE.js").then(n=>n.ListView),data:{title:"List"}},{path:"inspector",loadComponent:()=>import("./chunk-WFJRSBK6.js").then(n=>n.InspectorView),data:{title:"Inspector"}},{path:"**",redirectTo:"graph"}];var f={errors:{unknownMode:n=>`SKILL_MAP_MODE: unknown value "${n}"`,restPrefix:n=>`BFF error [${n}]: `,malformedResponse:"BFF returned a malformed response",demoFetchFailed:(n,e)=>`Demo bundle fetch failed for "${n}": ${e}`,demoParseFailed:(n,e)=>`Demo bundle parse failed for "${n}": ${e}`,graphFormatNotInDemo:n=>`Graph format "${n}" is not bundled in demo mode (only "ascii").`}};function Re(n){if(typeof n!="object"||n===null)return!1;let e=n;if(typeof e.type!="string"||e.type.length===0)return!1;let t=e.timestamp;return!(typeof t!="number"&&typeof t!="string"||!("data"in e))}var b=new q("SKILL_MAP_MODE");function Me(){return typeof document>"u"?"live":document.querySelector('meta[name="skill-map-mode"]')?.content==="demo"?"demo":"live"}var u={connected:n=>`[ws] connected to ${n}`,closed:(n,e)=>`[ws] closed (code=${n}, reason="${e}")`,malformedFrame:n=>`[ws] malformed frame dropped: ${n}`,socketError:n=>`[ws] socket error: ${n}`,reconnectScheduled:(n,e)=>`[ws] reconnect attempt ${e} scheduled in ${n}ms`,reconnectGiveUp:n=>`[ws] giving up after ${n} failed reconnect attempts`};var Ce=[1e3,2e3,4e3,8e3,16e3,3e4],J=10,Ve=new Set([1e3,1001]);function Ge(){return typeof window>"u"||!window.location?"ws://127.0.0.1:4242/ws":`${window.location.protocol==="https:"?"wss:":"ws:"}//${window.location.host}/ws`}var k=class n{mode=s(b);destroyRef=s(re);subject=new Y;socket=null;reconnectTimer=null;reconnectAttempt=0;disposed=!1;socketFactory=e=>new WebSocket(e);url=Ge();events$;_setSocketFactory(e){this.socketFactory=e}_setUrl(e){this.url=e}constructor(){this.mode!=="live"?this.events$=C:this.events$=new X(e=>{!this.socket&&!this.disposed&&this.connect();let t=this.subject.subscribe(e);return()=>t.unsubscribe()}).pipe(Z({resetOnRefCountZero:!1})),this.destroyRef.onDestroy(()=>this.disconnect())}disconnect(){if(!this.disposed){if(this.disposed=!0,this.reconnectTimer!==null&&(clearTimeout(this.reconnectTimer),this.reconnectTimer=null),this.socket){try{this.socket.close(1e3,"client disconnect")}catch{}this.socket=null}this.subject.complete()}}ngOnDestroy(){this.disconnect()}connect(){if(this.disposed)return;let e;try{e=this.socketFactory(this.url)}catch(t){let r=t instanceof Error?t.message:String(t);console.warn(u.socketError(r)),this.scheduleReconnect();return}this.socket=e,e.onopen=()=>{this.reconnectAttempt=0,console.info(u.connected(this.url))},e.onmessage=t=>{this.handleFrame(t.data)},e.onerror=t=>{let r=typeof t=="object"&&t!==null&&"message"in t?String(t.message??"unknown"):"unknown";console.warn(u.socketError(r))},e.onclose=t=>{console.info(u.closed(t.code,t.reason)),this.socket=null,!this.disposed&&(Ve.has(t.code)||this.scheduleReconnect())}}handleFrame(e){if(typeof e!="string"){console.warn(u.malformedFrame("non-string frame"));return}let t;try{t=JSON.parse(e)}catch(r){let i=r instanceof Error?r.message:String(r);console.warn(u.malformedFrame(i));return}if(!Re(t)){console.warn(u.malformedFrame("envelope shape"));return}this.subject.next(t)}scheduleReconnect(){if(this.disposed)return;if(this.reconnectAttempt>=J){console.warn(u.reconnectGiveUp(J)),this.subject.error(new Error(u.reconnectGiveUp(J)));return}let e=Math.min(this.reconnectAttempt,Ce.length-1),t=Ce[e];this.reconnectAttempt+=1,console.info(u.reconnectScheduled(t,this.reconnectAttempt)),this.reconnectTimer=setTimeout(()=>{this.reconnectTimer=null,this.connect()},t)}get _reconnectAttempt(){return this.reconnectAttempt}static \u0275fac=function(t){return new(t||n)};static \u0275prov=v({token:n,factory:n.\u0275fac,providedIn:"root"})};function De(n){let e=new TextEncoder().encode(n),t="";for(let r=0;r<e.length;r++)t+=String.fromCharCode(e[r]);return btoa(t).replace(/\+/g,"-").replace(/\//g,"_").replace(/=+$/,"")}var y="/api",$=class n{http;ws;kindRegistry;constructor(e,t,r){this.http=e??s(A),this.ws=t??s(k),this.kindRegistry=r??s(I)}async health(){return this.getJson(`${y}/health`)}async loadScan(){let[e]=await Promise.all([this.getJson(`${y}/scan`),this.listNodes({limit:0}).catch(()=>null)]);return e}async listNodes(e={}){let t=Xe(e),r=await this.getJson(`${y}/nodes${t}`);return this.ingestRegistry(r.kindRegistry),r}async getNode(e,t={}){let r=De(e),i=t.includeBody?"?include=body":"";try{let o=await this.getJson(`${y}/nodes/${r}${i}`);return this.ingestRegistry(o.kindRegistry),o}catch(o){if(o instanceof p&&o.code==="not-found")return null;throw o}}async listLinks(e={}){let t=Ye(e),r=await this.getJson(`${y}/links${t}`);return this.ingestRegistry(r.kindRegistry),r}async listIssues(e={}){let t=Ze(e),r=await this.getJson(`${y}/issues${t}`);return this.ingestRegistry(r.kindRegistry),r}async loadGraph(e="ascii"){let t=`${y}/graph?format=${encodeURIComponent(e)}`;try{return await V(this.http.get(t,{responseType:"text"}))}catch(r){throw this.translateError(r)}}async loadConfig(){let e=await this.getJson(`${y}/config`);return this.ingestRegistry(e.kindRegistry),e.value}async listPlugins(){let e=await this.getJson(`${y}/plugins`);return this.ingestRegistry(e.kindRegistry),e}ingestRegistry(e){e&&this.kindRegistry.ingest(e)}events(){return this.ws.events$}async getJson(e){try{return await V(this.http.get(e))}catch(t){throw this.translateError(t)}}translateError(e){if(e instanceof p)return e;if(e instanceof pe){let r=qe(e.error);return r?new p(r.error.code,r.error.message,r.error.details):new p("internal",e.message||f.errors.malformedResponse)}let t=e instanceof Error?e.message:String(e);return new p("internal",t)}static \u0275fac=function(t){return new(t||n)(D(A),D(k),D(I))};static \u0275prov=v({token:n,factory:n.\u0275fac,providedIn:"root"})};function Xe(n){let e=new URLSearchParams;n.kind&&n.kind.length>0&&e.set("kind",n.kind.join(",")),n.hasIssues!==void 0&&e.set("hasIssues",String(n.hasIssues)),n.path&&e.set("path",n.path),n.limit!==void 0&&e.set("limit",String(n.limit)),n.offset!==void 0&&e.set("offset",String(n.offset));let t=e.toString();return t?`?${t}`:""}function Ye(n){let e=new URLSearchParams;n.kind&&n.kind.length>0&&e.set("kind",n.kind.join(",")),n.from&&e.set("from",n.from),n.to&&e.set("to",n.to);let t=e.toString();return t?`?${t}`:""}function Ze(n){let e=new URLSearchParams;n.severity&&e.set("severity",n.severity),n.ruleId&&e.set("ruleId",n.ruleId),n.node&&e.set("node",n.node);let t=e.toString();return t?`?${t}`:""}function qe(n){if(typeof n!="object"||n===null)return null;let e=n;if(e.ok!==!1)return null;let t=e.error;if(typeof t!="object"||t===null)return null;let r=t;return typeof r.code!="string"||typeof r.message!="string"?null:{ok:!1,error:{code:r.code,message:r.message,details:r.details}}}var et="data.json",tt="data.meta.json",U=class{constructor(e=globalThis.fetch.bind(globalThis),t){this.fetchImpl=e;this.kindRegistry=t??s(I)}metaPromise=null;dataPromise=null;kindRegistry;async health(){return(await this.loadMeta()).health}async loadScan(){let[e,t]=await Promise.all([this.loadData(),this.loadMeta()]);return this.kindRegistry.ingest(t.nodes.kindRegistry),e}async listNodes(e={}){let t=await this.loadMeta();if(nt(e))return this.kindRegistry.ingest(t.nodes.kindRegistry),t.nodes;let r=await this.loadData(),i=r.issues,o=r.nodes;if(e.kind&&e.kind.length>0){let w=new Set(e.kind);o=o.filter(S=>w.has(S.kind))}if(e.path){let w=ot(e.path);o=o.filter(S=>w.test(S.path))}if(e.hasIssues===!0){let w=Le(i);o=o.filter(S=>w.has(S.path))}else if(e.hasIssues===!1){let w=Le(i);o=o.filter(S=>!w.has(S.path))}let g=o.length,E=e.offset??0,x=e.limit??1e3,h=o.slice(E,E+x);return this.kindRegistry.ingest(t.nodes.kindRegistry),{schemaVersion:"1",kind:"nodes",items:h,filters:{kind:e.kind??null,hasIssues:e.hasIssues??null,path:e.path?[e.path]:null},counts:{total:g,returned:h.length,page:{offset:E,limit:x}},kindRegistry:t.nodes.kindRegistry}}async getNode(e,t={}){let[r,i]=await Promise.all([this.loadData(),this.loadMeta()]),o=r.nodes.find(h=>h.path===e);if(!o)return null;let g=r.links.filter(h=>h.target===e),E=r.links.filter(h=>h.source===e),x=r.issues.filter(h=>h.nodeIds.includes(e));return this.kindRegistry.ingest(i.nodes.kindRegistry),{schemaVersion:"1",kind:"node",item:o,links:{incoming:g,outgoing:E},issues:x,kindRegistry:i.nodes.kindRegistry}}async listLinks(e={}){let t=await this.loadMeta();if(rt(e))return this.kindRegistry.ingest(t.links.kindRegistry),t.links;let i=(await this.loadData()).links;if(e.kind&&e.kind.length>0){let o=new Set(e.kind);i=i.filter(g=>o.has(g.kind))}return e.from&&(i=i.filter(o=>o.source===e.from)),e.to&&(i=i.filter(o=>o.target===e.to)),this.kindRegistry.ingest(t.links.kindRegistry),{schemaVersion:"1",kind:"links",items:i,filters:{kind:e.kind??null,from:e.from??null,to:e.to??null},counts:{total:i.length,returned:i.length},kindRegistry:t.links.kindRegistry}}async listIssues(e={}){let t=await this.loadMeta();if(it(e))return this.kindRegistry.ingest(t.issues.kindRegistry),t.issues;let i=(await this.loadData()).issues;return e.severity&&(i=i.filter(o=>o.severity===e.severity)),e.ruleId&&(i=i.filter(o=>o.ruleId===e.ruleId)),e.node&&(i=i.filter(o=>o.nodeIds.includes(e.node))),this.kindRegistry.ingest(t.issues.kindRegistry),{schemaVersion:"1",kind:"issues",items:i,filters:{severity:e.severity??null,ruleId:e.ruleId??null,node:e.node??null},counts:{total:i.length,returned:i.length},kindRegistry:t.issues.kindRegistry}}async loadGraph(e="ascii"){if(e!=="ascii")throw new p("bad-query",f.errors.graphFormatNotInDemo(e));return(await this.loadMeta()).graph.ascii}async loadConfig(){let e=await this.loadMeta();return this.kindRegistry.ingest(e.config.kindRegistry),e.config.value}async listPlugins(){let e=await this.loadMeta();return this.kindRegistry.ingest(e.plugins.kindRegistry),e.plugins}events(){return C}loadMeta(){return this.metaPromise||(this.metaPromise=this.fetchJson(tt)),this.metaPromise}loadData(){return this.dataPromise||(this.dataPromise=this.fetchJson(et)),this.dataPromise}async fetchJson(e){let t;try{t=await this.fetchImpl(e)}catch(r){let i=r instanceof Error?r.message:String(r);throw new p("internal",f.errors.demoFetchFailed(e,i))}if(!t.ok)throw new p("internal",f.errors.demoFetchFailed(e,`HTTP ${t.status}`));try{return await t.json()}catch(r){let i=r instanceof Error?r.message:String(r);throw new p("internal",f.errors.demoParseFailed(e,i))}}};function nt(n){return!(n.kind&&n.kind.length>0||n.hasIssues!==void 0||n.path||n.offset!==void 0&&n.offset!==0||n.limit!==void 0)}function rt(n){return!(n.kind&&n.kind.length>0||n.from||n.to)}function it(n){return!(n.severity||n.ruleId||n.node)}function Le(n){let e=new Set;for(let t of n)for(let r of t.nodeIds)e.add(r);return e}function ot(n){let t=n.replace(/[.+^${}()|[\]\\]/g,"\\$&").replace(/\*/g,".*").replace(/\?/g,".");return new RegExp(`^${t}$`)}function Oe(){let n=s(b);if(n==="live")return new $(s(A),s(k));if(n==="demo")return new U;let e=n;throw new Error(f.errors.unknownMode(String(e)))}var We={providers:[ie(),ke(Te,we()),ue(he()),_e({}),se(async()=>{let n=s(Se),{default:e}=await import("./chunk-FWFBO7KA.js");n.setThemeConfig({theme:{preset:e,options:{darkModeSelector:".app-dark"}}})}),{provide:b,useFactory:Me},{provide:Ee,useFactory:Oe}]};var Ne={brand:"skill-map",tag:"ui prototype \xB7 Step 3",nav:{graph:"Graph",list:"List",inspector:"Inspector"},actions:{},badge:{nodes:"nodes"},a11y:{viewSwitcher:"View switcher"},viewportWarning:{title:"Looks like you're on a small screen",subtitle:"skill-map is built for desktop",body:"The graph and inspector need room to breathe. Pop this open on a screen at least 768px wide \u2014 see you there."}};var K={toggleToAuto:"Switch to auto theme (follow system)",toggleToLight:"Switch to light theme",toggleToDark:"Switch to dark theme"};var Fe="search",je="kinds",$e="stabilities",Ue="hasIssues",B=class n{filters=s(xe);router=s(ve);activatedRoute=s(fe);kindRegistry=s(I);suppressUrlReadback=!1;constructor(){this.applyUrlToFilters(this.currentParams()),this.router.events.subscribe(e=>{if(e instanceof ge){if(this.suppressUrlReadback)return;this.applyUrlToFilters(this.currentParams())}}),L(()=>{let e=this.computeQueryParams();this.writeQueryParams(e)})}currentParams(){let e=this.router.parseUrl(this.router.url),t=new URLSearchParams;for(let[r,i]of Object.entries(e.queryParams))Array.isArray(i)?t.set(r,i.join(",")):i!=null&&t.set(r,String(i));return this.activatedRoute,t}applyUrlToFilters(e){let t=e.get(Fe)??"";t!==this.filters.searchText()&&this.filters.setSearchText(t);let r=st(e.get(je),this.kindRegistry.kinds().map(g=>g.name));Ke(r,this.filters.selectedKinds())||this.filters.setKinds(r);let i=at(e.get($e));Ke(i,this.filters.selectedStabilities())||this.filters.setStabilities(i);let o=e.get(Ue)==="true";o!==this.filters.hasIssuesOnly()&&this.filters.setHasIssuesOnly(o)}computeQueryParams(){let e=this.filters.searchText().trim(),t=this.filters.selectedKinds(),r=this.filters.selectedStabilities(),i=this.filters.hasIssuesOnly();return{[Fe]:e.length>0?e:null,[je]:t.length>0?t.join(","):null,[$e]:r.length>0?r.join(","):null,[Ue]:i?"true":null}}writeQueryParams(e){let t=this.currentParams(),r=new Map(Object.entries(e)),i=!1;for(let[o,g]of r)if((t.get(o)??null)!==g){i=!0;break}i&&(this.suppressUrlReadback=!0,this.router.navigate([],{relativeTo:this.activatedRoute,queryParams:e,queryParamsHandling:"merge",replaceUrl:!0}).finally(()=>{setTimeout(()=>{this.suppressUrlReadback=!1},0)}))}static \u0275fac=function(t){return new(t||n)};static \u0275prov=v({token:n,factory:n.\u0275fac,providedIn:"root"})};function st(n,e){if(!n)return[];let t=new Set(e);return n.split(",").map(r=>r.trim()).filter(r=>t.has(r))}function at(n){if(!n)return[];let e=new Set(Ae);return n.split(",").map(t=>t.trim()).filter(t=>e.has(t))}function Ke(n,e){if(n.length!==e.length)return!1;for(let t=0;t<n.length;t++)if(n[t]!==e[t])return!1;return!0}var Be="skill-map.ui.theme",lt="app-dark",ct="dark",Qe="(prefers-color-scheme: dark)",Q=class n{doc=s(ne);mode=T(this.readInitial());systemPrefersDark=T(this.readSystemPref());resolved=_(()=>{let e=this.mode();return e==="auto"?this.systemPrefersDark()?"dark":"light":e});constructor(){this.subscribeToSystemPref(),L(()=>{let e=this.resolved()==="dark",t=this.doc.documentElement;t.classList.toggle(lt,e),t.classList.toggle(ct,e);try{this.doc.defaultView?.localStorage.setItem(Be,this.mode())}catch{}})}toggle(){this.mode.update(e=>e==="auto"?"light":e==="light"?"dark":"auto")}set(e){this.mode.set(e)}readInitial(){try{let e=this.doc.defaultView?.localStorage.getItem(Be);if(e==="auto"||e==="light"||e==="dark")return e}catch{}return"auto"}readSystemPref(){try{return this.doc.defaultView?.matchMedia(Qe).matches??!1}catch{return!1}}subscribeToSystemPref(){let e=this.doc.defaultView;if(!e||typeof e.matchMedia!="function")return;e.matchMedia(Qe).addEventListener("change",r=>{this.systemPrefersDark.set(r.matches)})}static \u0275fac=function(t){return new(t||n)};static \u0275prov=v({token:n,factory:n.\u0275fac,providedIn:"root"})};var He={body:"You are viewing a static demo of skill-map's UI. Install it:",installCommand:"npm i -g @skill-map/cli",homeCta:"\u2190 Back to skill-map.dev",homeHref:"/",dismissAria:"Dismiss demo banner"};function pt(n,e){if(n&1){let t=de();a(0,"div",0),P(1,"span",1),a(2,"p",2),d(3),a(4,"code",3),d(5),c()(),a(6,"a",4),d(7),c(),a(8,"p-button",5),W("onClick",function(){ee(t);let i=G();return te(i.dismiss())}),c()()}if(n&2){let t=G();l(3),N(" ",t.texts.body," "),l(2),m(t.texts.installCommand),l(),R("href",t.texts.homeHref,oe),l(),m(t.texts.homeCta),l(),R("ariaLabel",t.texts.dismissAria)("text",!0)("rounded",!0)}}var ze="sm.demoBannerDismissed",H=class n{mode=s(b);texts=He;dismissed=T(this.readDismissed());visible=_(()=>this.mode==="demo"&&!this.dismissed());dismiss(){this.dismissed.set(!0);try{globalThis.localStorage?.setItem(ze,"1")}catch{}}readDismissed(){if(this.mode!=="demo")return!0;try{return globalThis.localStorage?.getItem(ze)==="1"}catch{return!1}}static \u0275fac=function(t){return new(t||n)};static \u0275cmp=O({type:n,selectors:[["sm-demo-banner"]],decls:1,vars:1,consts:[["role","status","data-testid","demo-banner",1,"demo-banner"],["aria-hidden","true",1,"demo-banner__icon","pi","pi-info-circle"],[1,"demo-banner__body"],["data-testid","demo-banner-install",1,"demo-banner__cmd"],["data-testid","demo-banner-home",1,"demo-banner__home",3,"href"],["icon","pi pi-times","severity","secondary","size","small","data-testid","demo-banner-dismiss",3,"onClick","ariaLabel","text","rounded"]],template:function(t,r){t&1&&le(0,pt,9,7,"div",0),t&2&&ce(r.visible()?0:-1)},dependencies:[j,F],styles:["[_nghost-%COMP%]{display:block}.demo-banner[_ngcontent-%COMP%]{display:flex;align-items:center;gap:.75rem;padding:.5rem 1rem;border-bottom:1px solid var(--p-content-border-color);background:var(--p-highlight-background);color:var(--p-text-color);font-size:.875rem}.demo-banner__icon[_ngcontent-%COMP%]{font-size:1.1rem;color:var(--p-primary-color)}.demo-banner__body[_ngcontent-%COMP%]{flex:1 1 auto;margin:0;line-height:1.4}.demo-banner__cmd[_ngcontent-%COMP%]{font-family:var(--font-family-mono, ui-monospace, SFMono-Regular, Menlo, Consolas, monospace);background:var(--p-content-background);border:1px solid var(--p-content-border-color);border-radius:.25rem;padding:.05rem .4rem;font-size:.85em;margin-left:.25rem}.demo-banner__home[_ngcontent-%COMP%]{color:var(--p-primary-color);font-weight:500;text-decoration:none;white-space:nowrap}.demo-banner__home[_ngcontent-%COMP%]:hover, .demo-banner__home[_ngcontent-%COMP%]:focus-visible{text-decoration:underline}"],changeDetection:0})};var z=class n{loader=s(Pe);theme=s(Q);_filterUrlSync=s(B);texts=Ne;count=this.loader.count;themeMode=this.theme.mode;themeIcon=_(()=>{switch(this.themeMode()){case"auto":return"pi pi-desktop";case"light":return"pi pi-sun";case"dark":return"pi pi-moon"}});themeLabel=_(()=>{switch(this.themeMode()){case"auto":return K.toggleToLight;case"light":return K.toggleToDark;case"dark":return K.toggleToAuto}});ngOnInit(){this.loader.load()}toggleTheme(){this.theme.toggle()}static \u0275fac=function(t){return new(t||n)};static \u0275cmp=O({type:n,selectors:[["app-root"]],decls:35,vars:15,consts:[["role","alert","data-testid","viewport-warning",1,"viewport-warning"],[1,"viewport-warning__card"],["aria-hidden","true",1,"pi","pi-desktop","viewport-warning__icon"],[1,"viewport-warning__title"],[1,"viewport-warning__subtitle"],[1,"viewport-warning__body"],["data-testid","shell",1,"shell"],["data-testid","shell-topbar",1,"shell__topbar"],[1,"shell__brand"],[1,"shell__brand-mark"],[1,"shell__tag"],["data-testid","shell-nav",1,"shell__nav"],["routerLink","/graph","routerLinkActive","is-active","data-testid","nav-graph"],["routerLink","/list","routerLinkActive","is-active","data-testid","nav-list"],["routerLink","/inspector","routerLinkActive","is-active","data-testid","nav-inspector"],[1,"shell__actions"],["severity","secondary","size","small","data-testid","action-theme-toggle",3,"onClick","icon","ariaLabel","text","rounded"],["aria-live","polite","data-testid","shell-nodes-badge",1,"shell__badge"],[1,"shell__main"]],template:function(t,r){t&1&&(a(0,"div",0)(1,"div",1),P(2,"i",2),a(3,"h2",3),d(4),c(),a(5,"p",4),d(6),c(),a(7,"p",5),d(8),c()()(),a(9,"div",6),P(10,"sm-demo-banner"),a(11,"header",7)(12,"div",8)(13,"span",9),d(14,"sm"),c(),a(15,"div")(16,"h1"),d(17),c(),a(18,"p",10),d(19),c()()(),a(20,"nav",11)(21,"a",12),d(22),c(),a(23,"a",13),d(24),c(),a(25,"a",14),d(26),c()(),a(27,"div",15)(28,"p-button",16),W("onClick",function(){return r.toggleTheme()}),c(),a(29,"div",17)(30,"strong"),d(31),c(),d(32),c()()(),a(33,"main",18),P(34,"router-outlet"),c()()),t&2&&(l(4),m(r.texts.viewportWarning.title),l(2),m(r.texts.viewportWarning.subtitle),l(2),m(r.texts.viewportWarning.body),l(9),m(r.texts.brand),l(2),m(r.texts.tag),l(),ae("aria-label",r.texts.a11y.viewSwitcher),l(2),m(r.texts.nav.graph),l(2),m(r.texts.nav.list),l(2),m(r.texts.nav.inspector),l(2),R("icon",r.themeIcon())("ariaLabel",r.themeLabel())("text",!0)("rounded",!0),l(3),m(r.count()),l(),N(" ",r.texts.badge.nodes," "))},dependencies:[ye,Ie,be,j,F,H],styles:["[_nghost-%COMP%]{display:block;height:100dvh}.shell[_ngcontent-%COMP%]{display:flex;flex-direction:column;height:100dvh}.shell__topbar[_ngcontent-%COMP%]{display:flex;align-items:center;gap:2rem;padding:.75rem 1.5rem;background:var(--sm-bg-content);border-bottom:1px solid var(--sm-border);box-shadow:var(--sm-shadow-topbar)}.shell__brand[_ngcontent-%COMP%]{display:flex;align-items:center;gap:.75rem}.shell__brand-mark[_ngcontent-%COMP%]{display:inline-flex;align-items:center;justify-content:center;width:2rem;height:2rem;border-radius:.5rem;background:var(--p-primary-color);color:var(--p-primary-contrast-color);font-weight:700;font-size:.85rem;letter-spacing:.04em}.shell__brand[_ngcontent-%COMP%] h1[_ngcontent-%COMP%]{margin:0;font-size:1.05rem;font-weight:600;letter-spacing:-.01em}.shell__tag[_ngcontent-%COMP%]{margin:0;font-size:.72rem;color:var(--p-text-muted-color);letter-spacing:.02em;text-transform:uppercase}.shell__nav[_ngcontent-%COMP%]{display:flex;gap:.25rem;margin-left:auto}.shell__nav[_ngcontent-%COMP%] a[_ngcontent-%COMP%]{padding:.5rem .9rem;border-radius:.5rem;font-size:.9rem;font-weight:500;color:var(--p-text-muted-color);transition:background .15s ease,color .15s ease}.shell__nav[_ngcontent-%COMP%] a[_ngcontent-%COMP%]:hover{background:var(--sm-bg-hover);color:var(--p-text-color)}.shell__nav[_ngcontent-%COMP%] a.is-active[_ngcontent-%COMP%]{background:var(--sm-nav-active-bg);color:var(--p-primary-color)}.shell__actions[_ngcontent-%COMP%]{display:flex;align-items:center;gap:.75rem}.shell__badge[_ngcontent-%COMP%]{padding:.4rem .8rem;border-radius:999px;background:var(--sm-bg-hover);color:var(--p-text-muted-color);font-size:.85rem}.shell__badge[_ngcontent-%COMP%] strong[_ngcontent-%COMP%]{color:var(--p-text-color);margin-right:.25rem}.shell__main[_ngcontent-%COMP%]{flex:1;min-height:0;overflow-y:auto;padding:1.5rem;max-width:1400px;width:100%;margin:0 auto}@media(max-width:1280px){.shell__topbar[_ngcontent-%COMP%]{gap:1rem;padding:.5rem 1rem}.shell__tag[_ngcontent-%COMP%]{display:none}.shell__nav[_ngcontent-%COMP%] a[_ngcontent-%COMP%]{padding:.4rem .7rem;font-size:.85rem}.shell__main[_ngcontent-%COMP%]{padding:1rem}}.viewport-warning[_ngcontent-%COMP%]{display:none}@media(max-width:767px){.viewport-warning[_ngcontent-%COMP%]{position:fixed;inset:0;z-index:100000;display:flex;align-items:center;justify-content:center;padding:1.5rem;background:var(--sm-bg-content)}.viewport-warning__card[_ngcontent-%COMP%]{display:flex;flex-direction:column;align-items:center;text-align:center;gap:.85rem;max-width:22rem}.viewport-warning__icon[_ngcontent-%COMP%]{font-size:3rem;color:var(--p-primary-color);margin-bottom:.25rem}.viewport-warning__title[_ngcontent-%COMP%]{margin:0;font-size:1.35rem;font-weight:700;color:var(--p-text-color);line-height:1.25}.viewport-warning__subtitle[_ngcontent-%COMP%]{margin:0;font-size:1rem;font-weight:500;color:var(--p-primary-color);line-height:1.35}.viewport-warning__body[_ngcontent-%COMP%]{margin:0;color:var(--p-text-muted-color);line-height:1.5;font-size:.9rem}.shell[_ngcontent-%COMP%]{display:none}}"],changeDetection:0})};me(z,We).catch(n=>console.error(n));
|
package/package.json
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "@skill-map/cli",
|
|
3
|
-
"version": "0.
|
|
3
|
+
"version": "0.14.1",
|
|
4
4
|
"description": "skill-map reference implementation — kernel + CLI + adapters.",
|
|
5
5
|
"license": "MIT",
|
|
6
6
|
"type": "module",
|
|
@@ -59,7 +59,7 @@
|
|
|
59
59
|
},
|
|
60
60
|
"dependencies": {
|
|
61
61
|
"@hono/node-server": "2.0.1",
|
|
62
|
-
"@skill-map/spec": "
|
|
62
|
+
"@skill-map/spec": "0.14.1",
|
|
63
63
|
"ajv": "8.18.0",
|
|
64
64
|
"ajv-formats": "3.0.1",
|
|
65
65
|
"chokidar": "5.0.0",
|