@skill-map/cli 0.55.0 → 0.56.0

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/index.js CHANGED
@@ -1,6 +1,6 @@
1
1
  // kernel/i18n/registry.texts.ts
2
2
 
3
- !function(){try{var e="undefined"!=typeof window?window:"undefined"!=typeof global?global:"undefined"!=typeof globalThis?globalThis:"undefined"!=typeof self?self:{},n=(new e.Error).stack;n&&(e._sentryDebugIds=e._sentryDebugIds||{},e._sentryDebugIds[n]="1f2129d2-2039-52b2-acb6-f7adcf338044")}catch(e){}}();
3
+ !function(){try{var e="undefined"!=typeof window?window:"undefined"!=typeof global?global:"undefined"!=typeof globalThis?globalThis:"undefined"!=typeof self?self:{},n=(new e.Error).stack;n&&(e._sentryDebugIds=e._sentryDebugIds||{},e._sentryDebugIds[n]="2dc805c3-48a5-5cde-8fdd-5ba75f99be02")}catch(e){}}();
4
4
  var REGISTRY_TEXTS = {
5
5
  duplicateExtension: "Extension already registered: {{kind}}:{{qualifiedId}}",
6
6
  unknownKind: "Unknown extension kind: {{kind}}",
@@ -102,7 +102,7 @@ import { Tiktoken as Tiktoken2 } from "js-tiktoken/lite";
102
102
  // package.json
103
103
  var package_default = {
104
104
  name: "@skill-map/cli",
105
- version: "0.55.0",
105
+ version: "0.56.0",
106
106
  description: "skill-map reference implementation \u2014 kernel + CLI + adapters.",
107
107
  license: "MIT",
108
108
  type: "module",
@@ -745,6 +745,10 @@ function matchesFilter(hook, event) {
745
745
  function buildHookContext(_hook, trigger, event) {
746
746
  const data = event.data ?? {};
747
747
  const ctx = {
748
+ // `settings` is always populated (possibly empty) so hooks can read
749
+ // `ctx.settings.<id>` without a presence check. The composer
750
+ // populated `resolvedSettings` on each composed hook.
751
+ settings: _hook.resolvedSettings ?? {},
748
752
  event: {
749
753
  type: trigger,
750
754
  timestamp: event.timestamp,
@@ -1266,7 +1270,7 @@ function runActionProjections(actions, nodes, links, emitter) {
1266
1270
  }
1267
1271
 
1268
1272
  // kernel/orchestrator/analyzers.ts
1269
- async function runAnalyzers(analyzers, nodes, internalLinks, orphanSidecars, sidecarRoots, annotationContributions, viewContributions, orphanJobFiles, referenceablePaths, cwd, registeredActionIds, emitter, hookDispatcher, reservedNodePaths, signals, seedIssues = []) {
1273
+ async function runAnalyzers(analyzers, nodes, internalLinks, orphanSidecars, sidecarRoots, annotationContributions, viewContributions, orphanJobFiles, referenceablePaths, cwd, registeredActionIds, emitter, hookDispatcher, reservedNodePaths, brokenLinks, signals, seedIssues = []) {
1270
1274
  const issues = [...seedIssues];
1271
1275
  const contributions = [];
1272
1276
  const contributionErrors = [];
@@ -1343,6 +1347,10 @@ async function runAnalyzers(analyzers, nodes, internalLinks, orphanSidecars, sid
1343
1347
  const emitted = await analyzer.evaluate({
1344
1348
  nodes,
1345
1349
  links: internalLinks,
1350
+ // `settings` is always populated (possibly empty) so analyzers can
1351
+ // read `ctx.settings.<id>` without a presence check. The composer
1352
+ // populated `resolvedSettings` on each composed analyzer.
1353
+ settings: analyzer.resolvedSettings ?? {},
1346
1354
  orphanSidecars: analyzerOrphans,
1347
1355
  sidecarRoots,
1348
1356
  annotationContributions,
@@ -1356,6 +1364,7 @@ async function runAnalyzers(analyzers, nodes, internalLinks, orphanSidecars, sid
1356
1364
  ...referenceablePaths ? { referenceablePaths } : {},
1357
1365
  ...cwd ? { cwd } : {},
1358
1366
  ...reservedNodePaths ? { reservedNodePaths } : {},
1367
+ ...brokenLinks ? { brokenLinks } : {},
1359
1368
  ...signals && signals.length > 0 ? { signals } : {},
1360
1369
  emitContribution
1361
1370
  });
@@ -1643,6 +1652,15 @@ function liftResolvedLinkConfidence(links, nodes, ctx) {
1643
1652
  if (link.confidence < 1) applyResolution(link, indexes, ctx);
1644
1653
  }
1645
1654
  }
1655
+ function collectBrokenLinks(links, nodes, ctx) {
1656
+ const broken = /* @__PURE__ */ new Set();
1657
+ if (links.length === 0) return broken;
1658
+ const indexes = buildIndexes(nodes, ctx);
1659
+ for (const link of links) {
1660
+ if (isGenuinelyBroken(link, indexes)) broken.add(link);
1661
+ }
1662
+ return broken;
1663
+ }
1646
1664
  function applyResolution(link, indexes, ctx) {
1647
1665
  const resolution = resolve5(link, indexes, ctx);
1648
1666
  if (resolution === "none") {
@@ -3124,6 +3142,7 @@ async function runScanInternal(_kernel, options) {
3124
3142
  walked.signals = resolved.resolvedSignals;
3125
3143
  const postWalkCtx = buildPostWalkTransformCtx(exts.providers, walked.nodes, activeProviderId);
3126
3144
  walked.internalLinks = applyPostWalkTransforms(walked.internalLinks, walked.nodes, postWalkCtx);
3145
+ const brokenLinks = collectBrokenLinks(walked.internalLinks, walked.nodes, postWalkCtx);
3127
3146
  recomputeLinkCounts(walked.nodes, walked.internalLinks);
3128
3147
  recomputeExternalRefsCount(walked.nodes, walked.externalLinks, walked.cachedPaths);
3129
3148
  await dispatchExtractorCompleted(exts.extractors, emitter, hookDispatcher);
@@ -3145,6 +3164,7 @@ async function runScanInternal(_kernel, options) {
3145
3164
  emitter,
3146
3165
  hookDispatcher,
3147
3166
  postWalkCtx.reservedNodePaths,
3167
+ brokenLinks,
3148
3168
  walked.signals,
3149
3169
  // Seed the accumulator with orchestrator-emitted frontmatter
3150
3170
  // issues so the aggregate phase (`core/issue-counter`) counts
@@ -3746,4 +3766,4 @@ export {
3746
3766
  runScanWithRenames
3747
3767
  };
3748
3768
  //# sourceMappingURL=index.js.map
3749
- //# debugId=1f2129d2-2039-52b2-acb6-f7adcf338044
3769
+ //# debugId=2dc805c3-48a5-5cde-8fdd-5ba75f99be02
@@ -7,7 +7,7 @@ type TSlotName = 'card.title.right' | 'card.subtitle.left' | 'card.footer.left'
7
7
  * Closed enum of input-type names for plugin settings. Mirror of
8
8
  * `spec/schemas/input-types.schema.json#/$defs/InputTypeName`.
9
9
  */
10
- type TInputTypeName = 'string-list' | 'single-string' | 'boolean-flag' | 'integer' | 'enum-pick' | 'enum-multipick' | 'path-glob' | 'regex' | 'secret' | 'key-value-list';
10
+ type TInputTypeName = 'string-list' | 'single-string' | 'boolean-flag' | 'integer' | 'number' | 'enum-pick' | 'enum-multipick' | 'path-glob' | 'regex' | 'secret' | 'key-value-list';
11
11
  /**
12
12
  * Closed severity palette aligned with PrimeNG `<p-tag>` / `<p-message>` severities. Used by counter, tag, alert, and icon slots for color/contrast hints. The UI maps each severity to a theme-aware tint; plugins do not pick raw colors.
13
13
  */
@@ -115,7 +115,7 @@ interface ActionPrompt {
115
115
  /**
116
116
  * Input-type id from the closed catalog. The UI renders the matching control before dispatch (`single-string`, `enum-pick` and `string-list` today; other types degrade to a graceful 'unsupported' notice).
117
117
  */
118
- inputType: ('string-list' | 'single-string' | 'boolean-flag' | 'integer' | 'enum-pick' | 'enum-multipick' | 'path-glob' | 'regex' | 'secret' | 'key-value-list') & string;
118
+ inputType: ('string-list' | 'single-string' | 'boolean-flag' | 'integer' | 'number' | 'enum-pick' | 'enum-multipick' | 'path-glob' | 'regex' | 'secret' | 'key-value-list') & string;
119
119
  /**
120
120
  * Key under which the collected value is placed in the dispatch `input` body.
121
121
  */
@@ -390,6 +390,13 @@ interface ISetting_Integer extends ISettingCommon {
390
390
  max?: number;
391
391
  step?: number;
392
392
  }
393
+ interface ISetting_Number extends ISettingCommon {
394
+ type: 'number';
395
+ default?: number;
396
+ min?: number;
397
+ max?: number;
398
+ step?: number;
399
+ }
393
400
  interface ISetting_EnumOption {
394
401
  value: string;
395
402
  label: string;
@@ -446,7 +453,7 @@ interface ISetting_KeyValueList extends ISettingCommon {
446
453
  *
447
454
  * Mirror of `input-types.schema.json#/$defs/ISettingDeclaration`.
448
455
  */
449
- type TSettingDeclaration = ISetting_StringList | ISetting_SingleString | ISetting_BooleanFlag | ISetting_Integer | ISetting_EnumPick | ISetting_EnumMultipick | ISetting_PathGlob | ISetting_Regex | ISetting_Secret | ISetting_KeyValueList;
456
+ type TSettingDeclaration = ISetting_StringList | ISetting_SingleString | ISetting_BooleanFlag | ISetting_Integer | ISetting_Number | ISetting_EnumPick | ISetting_EnumMultipick | ISetting_PathGlob | ISetting_Regex | ISetting_Secret | ISetting_KeyValueList;
450
457
  /**
451
458
  * Runtime value type for a setting, derived from its declaration. The
452
459
  * kernel exposes settings to extractors as `Record<string, TSettingValue>`
@@ -2933,6 +2940,12 @@ interface IAnalyzerOrphanSidecar {
2933
2940
  interface IAnalyzerContext {
2934
2941
  nodes: Node[];
2935
2942
  links: Link[];
2943
+ /**
2944
+ * Resolved values of the analyzer's declared `settings`, populated
2945
+ * from project config + user overrides. Empty object when no settings
2946
+ * are declared.
2947
+ */
2948
+ settings: Record<string, unknown>;
2936
2949
  /**
2937
2950
  * Step 9.6.2, orphaned sidecars discovered during the scan walk.
2938
2951
  * Empty when sidecar discovery did not run (legacy callers) or
@@ -3024,6 +3037,20 @@ interface IAnalyzerContext {
3024
3037
  * `runScan` sites that never wired the field through).
3025
3038
  */
3026
3039
  reservedNodePaths?: ReadonlySet<string>;
3040
+ /**
3041
+ * Links the post-walk lift judged genuinely broken: target matches no
3042
+ * node `path` AND the stripped trigger matches no entry in the cross-
3043
+ * kind name index (`spec/architecture.md` §Provider · resolution
3044
+ * rules). Computed once per scan by the orchestrator from the same
3045
+ * `deriveNodeIdentifiers`-backed index the confidence-lift transform
3046
+ * uses, so a link that resolves only via a filename / dirname
3047
+ * identifier is NOT in the set. Membership is by object identity (the
3048
+ * orchestrator threads the SAME link objects). The single consumer is
3049
+ * `core/reference-broken`, which projects one issue per member (after
3050
+ * its `referenceablePaths` escape hatch). Absent for legacy callers
3051
+ * that never wired the field through, the rule then emits nothing.
3052
+ */
3053
+ brokenLinks?: ReadonlySet<Link>;
3027
3054
  /**
3028
3055
  * Absolute path of the scan's project root (cwd of the invocation).
3029
3056
  * Threaded into the analyzer pass so an analyzer that needs to
@@ -3285,6 +3312,12 @@ interface IFormatterContext {
3285
3312
  nodes: Node[];
3286
3313
  links: Link[];
3287
3314
  issues: Issue[];
3315
+ /**
3316
+ * Resolved values of the formatter's declared `settings`, populated
3317
+ * from project config + user overrides. Empty object when no settings
3318
+ * are declared.
3319
+ */
3320
+ settings: Record<string, unknown>;
3288
3321
  /**
3289
3322
  * Full persisted scan, when the caller has it on hand. Optional so
3290
3323
  * formatters that only consume (nodes, links, issues) keep working
@@ -3388,6 +3421,12 @@ declare const HOOK_TRIGGERS: readonly THookTrigger[];
3388
3421
  * Deterministic hooks SHOULD ignore the field.
3389
3422
  */
3390
3423
  interface IHookContext {
3424
+ /**
3425
+ * Resolved values of the hook's declared `settings`, populated from
3426
+ * project config + user overrides. Empty object when no settings are
3427
+ * declared.
3428
+ */
3429
+ settings: Record<string, unknown>;
3391
3430
  /** The raw event the dispatcher matched. */
3392
3431
  event: {
3393
3432
  type: THookTrigger;
@@ -1,6 +1,6 @@
1
1
  // kernel/i18n/registry.texts.ts
2
2
 
3
- !function(){try{var e="undefined"!=typeof window?window:"undefined"!=typeof global?global:"undefined"!=typeof globalThis?globalThis:"undefined"!=typeof self?self:{},n=(new e.Error).stack;n&&(e._sentryDebugIds=e._sentryDebugIds||{},e._sentryDebugIds[n]="912d41a1-01f9-59a0-81d9-5e20e8ed3de6")}catch(e){}}();
3
+ !function(){try{var e="undefined"!=typeof window?window:"undefined"!=typeof global?global:"undefined"!=typeof globalThis?globalThis:"undefined"!=typeof self?self:{},n=(new e.Error).stack;n&&(e._sentryDebugIds=e._sentryDebugIds||{},e._sentryDebugIds[n]="bed984e8-cc93-51f3-94cd-c0789fe21577")}catch(e){}}();
4
4
  var REGISTRY_TEXTS = {
5
5
  duplicateExtension: "Extension already registered: {{kind}}:{{qualifiedId}}",
6
6
  unknownKind: "Unknown extension kind: {{kind}}",
@@ -102,7 +102,7 @@ import { Tiktoken as Tiktoken2 } from "js-tiktoken/lite";
102
102
  // package.json
103
103
  var package_default = {
104
104
  name: "@skill-map/cli",
105
- version: "0.55.0",
105
+ version: "0.56.0",
106
106
  description: "skill-map reference implementation \u2014 kernel + CLI + adapters.",
107
107
  license: "MIT",
108
108
  type: "module",
@@ -745,6 +745,10 @@ function matchesFilter(hook, event) {
745
745
  function buildHookContext(_hook, trigger, event) {
746
746
  const data = event.data ?? {};
747
747
  const ctx = {
748
+ // `settings` is always populated (possibly empty) so hooks can read
749
+ // `ctx.settings.<id>` without a presence check. The composer
750
+ // populated `resolvedSettings` on each composed hook.
751
+ settings: _hook.resolvedSettings ?? {},
748
752
  event: {
749
753
  type: trigger,
750
754
  timestamp: event.timestamp,
@@ -1266,7 +1270,7 @@ function runActionProjections(actions, nodes, links, emitter) {
1266
1270
  }
1267
1271
 
1268
1272
  // kernel/orchestrator/analyzers.ts
1269
- async function runAnalyzers(analyzers, nodes, internalLinks, orphanSidecars, sidecarRoots, annotationContributions, viewContributions, orphanJobFiles, referenceablePaths, cwd, registeredActionIds, emitter, hookDispatcher, reservedNodePaths, signals, seedIssues = []) {
1273
+ async function runAnalyzers(analyzers, nodes, internalLinks, orphanSidecars, sidecarRoots, annotationContributions, viewContributions, orphanJobFiles, referenceablePaths, cwd, registeredActionIds, emitter, hookDispatcher, reservedNodePaths, brokenLinks, signals, seedIssues = []) {
1270
1274
  const issues = [...seedIssues];
1271
1275
  const contributions = [];
1272
1276
  const contributionErrors = [];
@@ -1343,6 +1347,10 @@ async function runAnalyzers(analyzers, nodes, internalLinks, orphanSidecars, sid
1343
1347
  const emitted = await analyzer.evaluate({
1344
1348
  nodes,
1345
1349
  links: internalLinks,
1350
+ // `settings` is always populated (possibly empty) so analyzers can
1351
+ // read `ctx.settings.<id>` without a presence check. The composer
1352
+ // populated `resolvedSettings` on each composed analyzer.
1353
+ settings: analyzer.resolvedSettings ?? {},
1346
1354
  orphanSidecars: analyzerOrphans,
1347
1355
  sidecarRoots,
1348
1356
  annotationContributions,
@@ -1356,6 +1364,7 @@ async function runAnalyzers(analyzers, nodes, internalLinks, orphanSidecars, sid
1356
1364
  ...referenceablePaths ? { referenceablePaths } : {},
1357
1365
  ...cwd ? { cwd } : {},
1358
1366
  ...reservedNodePaths ? { reservedNodePaths } : {},
1367
+ ...brokenLinks ? { brokenLinks } : {},
1359
1368
  ...signals && signals.length > 0 ? { signals } : {},
1360
1369
  emitContribution
1361
1370
  });
@@ -1643,6 +1652,15 @@ function liftResolvedLinkConfidence(links, nodes, ctx) {
1643
1652
  if (link.confidence < 1) applyResolution(link, indexes, ctx);
1644
1653
  }
1645
1654
  }
1655
+ function collectBrokenLinks(links, nodes, ctx) {
1656
+ const broken = /* @__PURE__ */ new Set();
1657
+ if (links.length === 0) return broken;
1658
+ const indexes = buildIndexes(nodes, ctx);
1659
+ for (const link of links) {
1660
+ if (isGenuinelyBroken(link, indexes)) broken.add(link);
1661
+ }
1662
+ return broken;
1663
+ }
1646
1664
  function applyResolution(link, indexes, ctx) {
1647
1665
  const resolution = resolve5(link, indexes, ctx);
1648
1666
  if (resolution === "none") {
@@ -3124,6 +3142,7 @@ async function runScanInternal(_kernel, options) {
3124
3142
  walked.signals = resolved.resolvedSignals;
3125
3143
  const postWalkCtx = buildPostWalkTransformCtx(exts.providers, walked.nodes, activeProviderId);
3126
3144
  walked.internalLinks = applyPostWalkTransforms(walked.internalLinks, walked.nodes, postWalkCtx);
3145
+ const brokenLinks = collectBrokenLinks(walked.internalLinks, walked.nodes, postWalkCtx);
3127
3146
  recomputeLinkCounts(walked.nodes, walked.internalLinks);
3128
3147
  recomputeExternalRefsCount(walked.nodes, walked.externalLinks, walked.cachedPaths);
3129
3148
  await dispatchExtractorCompleted(exts.extractors, emitter, hookDispatcher);
@@ -3145,6 +3164,7 @@ async function runScanInternal(_kernel, options) {
3145
3164
  emitter,
3146
3165
  hookDispatcher,
3147
3166
  postWalkCtx.reservedNodePaths,
3167
+ brokenLinks,
3148
3168
  walked.signals,
3149
3169
  // Seed the accumulator with orchestrator-emitted frontmatter
3150
3170
  // issues so the aggregate phase (`core/issue-counter`) counts
@@ -3746,4 +3766,4 @@ export {
3746
3766
  runScanWithRenames
3747
3767
  };
3748
3768
  //# sourceMappingURL=index.js.map
3749
- //# debugId=912d41a1-01f9-59a0-81d9-5e20e8ed3de6
3769
+ //# debugId=bed984e8-cc93-51f3-94cd-c0789fe21577
@@ -0,0 +1 @@
1
+ import{$ as l,B as C,E as R,H as w,K as g,N as p,P as c,_ as I,c as y,d as M,f as T,ga as d,ia as v,sc as h,u as S}from"./chunk-Q2A6FWC7.js";import{a as m,b}from"./chunk-WCABR6TI.js";var A=new p("DATA_SOURCE"),F=class extends Error{code;details;constructor(r,e,t){super(e),this.name="DataSourceError",this.code=r,this.details=t}};function E(n){n||(n=c(l));let r=new y(e=>{if(n.destroyed){e.next();return}return n.onDestroy(e.next.bind(e))});return e=>e.pipe(R(r))}function me(n,r){let t=!r?.manualCleanup?r?.injector?.get(l)??c(l):null,o=B(r?.equal),s;r?.requireSync?s=d({kind:0},{equal:o}):s=d({kind:1,value:r?.initialValue},{equal:o});let a,i=n.subscribe({next:u=>s.set({kind:1,value:u}),error:u=>{s.set({kind:2,error:u}),a?.()},complete:()=>{a?.()}});if(r?.requireSync&&s().kind===0)throw new w(601,!1);return a=t?.onDestroy(i.unsubscribe.bind(i)),h(()=>{let u=s();switch(u.kind){case 1:return u.value;case 2:throw u.error;case 0:throw new w(601,!1)}},{equal:r?.equal})}function B(n=Object.is){return(r,e)=>r.kind===1&&e.kind===1&&n(r.value,e.value)}var O=new p("SKILL_MAP_MODE");function be(){return typeof document>"u"?"live":document.querySelector('meta[name="skill-map-mode"]')?.content==="demo"?"demo":"live"}function D(n){if(typeof n!="object"||n===null)return!1;let r=n;if(typeof r.type!="string"||r.type.length===0)return!1;let e=r.timestamp;return!(typeof e!="number"&&typeof e!="string"||!("data"in r))}function j(n){if(!D(n)||n.type!=="sidecar.bumped")return!1;let r=n.data;if(typeof r!="object"||r===null||typeof r.nodePath!="string"||r.nodePath.length===0)return!1;let e=r.version;return!(e!==null&&typeof e!="number"||r.status!=="fresh")}var f={connected:n=>`[ws] connected to ${n}`,closed:(n,r)=>`[ws] closed (code=${n}, reason="${r}")`,malformedFrame:n=>`[ws] malformed frame dropped: ${n}`,socketError:n=>`[ws] socket error: ${n}`,reconnectScheduled:(n,r)=>`[ws] reconnect attempt ${r} scheduled in ${n}ms`,reconnectGiveUp:n=>`[ws] giving up after ${n} failed reconnect attempts`};var N=[1e3,2e3,4e3,8e3,16e3,3e4],L=10,K=new Set([1e3]);function W(){return typeof window>"u"||!window.location?"ws://127.0.0.1:4242/ws":`${window.location.protocol==="https:"?"wss:":"ws:"}//${window.location.host}/ws`}var H=new p("WS_SOCKET_FACTORY",{providedIn:"root",factory:()=>n=>new WebSocket(n)}),V=new p("WS_URL",{providedIn:"root",factory:()=>W()}),P=(()=>{class n{mode=c(O);destroyRef=c(l);subject=new M;socket=null;reconnectTimer=null;reconnectAttempt=0;disposed=!1;_connectionState=d("connecting");connectionState=this._connectionState.asReadonly();socketFactory=c(H);url=c(V);events$;scanCompleted$;sidecarBumped$;constructor(){this.mode!=="live"?this.events$=T:this.events$=new y(e=>{!this.socket&&!this.disposed&&this.connect();let t=this.subject.subscribe(e);return()=>t.unsubscribe()}).pipe(C({resetOnRefCountZero:!1})),this.scanCompleted$=this.events$.pipe(S(e=>e.type==="scan.completed")),this.sidecarBumped$=this.events$.pipe(S(j)),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()}}reconnect(){this.disposed||this.socket||(this.reconnectTimer!==null&&(clearTimeout(this.reconnectTimer),this.reconnectTimer=null),this.reconnectAttempt=0,this._connectionState.set("connecting"),this.connect())}ngOnDestroy(){this.disconnect()}connect(){if(this.disposed)return;let e;try{e=this.socketFactory(this.url)}catch(t){let o=t instanceof Error?t.message:String(t);console.warn(f.socketError(o)),this.scheduleReconnect();return}this.socket=e,e.onopen=()=>{this.reconnectAttempt=0,this._connectionState.set("open"),console.info(f.connected(this.url))},e.onmessage=t=>{this.handleFrame(t.data)},e.onerror=t=>{let o=typeof t=="object"&&t!==null&&"message"in t?String(t.message??"unknown"):"unknown";console.warn(f.socketError(o))},e.onclose=t=>{console.info(f.closed(t.code,t.reason)),this.socket=null,!this.disposed&&(K.has(t.code)||this.scheduleReconnect())}}handleFrame(e){if(typeof e!="string"){console.warn(f.malformedFrame("non-string frame"));return}let t;try{t=JSON.parse(e)}catch(o){let s=o instanceof Error?o.message:String(o);console.warn(f.malformedFrame(s));return}if(!D(t)){console.warn(f.malformedFrame("envelope shape"));return}this.subject.next(t)}scheduleReconnect(){if(this.disposed)return;if(this.reconnectAttempt>=L){console.warn(f.reconnectGiveUp(L)),this._connectionState.set("lost");return}this._connectionState.set("reconnecting");let e=Math.min(this.reconnectAttempt,N.length-1),t=N[e];this.reconnectAttempt+=1,console.info(f.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=g({token:n,factory:n.\u0275fac,providedIn:"root"})}return n})();var Oe=(()=>{class n{dataSource=c(A);wsEvents=c(P);destroyRef=c(l);_nodes=d([]);_scan=d(null);_loading=d(!1);_error=d(null);pendingRefresh=!1;wsConnectedBefore=!1;nodes=this._nodes.asReadonly();scan=this._scan.asReadonly();loading=this._loading.asReadonly();error=this._error.asReadonly();count=h(()=>this._nodes().length);byKind=h(()=>{let e=new Map;for(let t of this._nodes()){let o=e.get(t.kind);o?o.push(t):e.set(t.kind,[t])}return e});hasAnyFavorites=h(()=>this._nodes().some(e=>e.isFavorite===!0));constructor(){this.wsEvents.scanCompleted$.pipe(E(this.destroyRef)).subscribe(()=>{this.load()}),this.wsEvents.sidecarBumped$.pipe(E(this.destroyRef)).subscribe(e=>{this.patchSidecarFromBump({nodePath:e.data.nodePath,version:e.data.version,status:e.data.status})}),v(()=>{this.wsEvents.connectionState()==="open"&&(this.wsConnectedBefore&&this.load(),this.wsConnectedBefore=!0)})}setFavoriteLocal(e,t){this._nodes.update(o=>{let s=!1,a=o.map(i=>i.path!==e||i.isFavorite===t?i:(s=!0,b(m({},i),{isFavorite:t})));return s?a:o})}async toggleFavorite(e,t){this.setFavoriteLocal(e,t);try{return t?await this.dataSource.setFavorite(e):await this.dataSource.unsetFavorite(e),t}catch(o){this.setFavoriteLocal(e,!t);let s=o instanceof Error?o.message:String(o);return this._error.set(s),!t}}patchSidecarFromBump(e){this._nodes.update(t=>{let o=!1,s=t.map(a=>{if(a.path!==e.nodePath)return a;o=!0;let i=a.sidecar,u=m({},i?.annotations??{});return e.version!==null&&(u.version=e.version),b(m({},a),{sidecar:m({present:!0,status:e.status,annotations:u},i?.root===void 0?{}:{root:i.root})})});return o?s:t})}async load(){if(this._loading()){this.pendingRefresh=!0;return}this._loading.set(!0),this._error.set(null);try{let e=await this.dataSource.loadScan();this._scan.set(e),this._nodes.set(e.nodes.map(X))}catch(e){let t=e instanceof Error?e.message:String(e);this._error.set(t)}finally{this._loading.set(!1),this.pendingRefresh&&(this.pendingRefresh=!1,queueMicrotask(()=>{this.load()}))}}static \u0275fac=function(t){return new(t||n)};static \u0275prov=g({token:n,factory:n.\u0275fac,providedIn:"root"})}return n})();function X(n){let r=n.kind,e=n.frontmatter??{},t=b(m({},e),{name:typeof e.name=="string"?e.name:"",description:typeof e.description=="string"?e.description:""}),o={path:n.path,kind:r,provider:n.provider,frontmatter:t,linksOutCount:n.linksOutCount,linksInCount:n.linksInCount,externalRefsCount:n.externalRefsCount,bytesTotal:n.bytes?.total,tokensTotal:n.tokens?.total,modifiedAtMs:n.modifiedAtMs??void 0,bodyHash:n.bodyHash,frontmatterHash:n.frontmatterHash,isFavorite:n.isFavorite===!0};return n.sidecar&&(o.sidecar=m({},n.sidecar)),n.contributions&&(o.contributions=[...n.contributions]),o}var _=[{id:"neon-red",htmlClass:"app-neon-red",forcesDark:!0,label:"Neon R",description:"Electric-red glow on a deep console."},{id:"neon-green",htmlClass:"app-neon-green",forcesDark:!0,label:"Neon G",description:"Electric-green glow on a deep console."},{id:"neon",htmlClass:"app-neon",forcesDark:!0,label:"Neon B",description:"Electric-cyan glow on a deep-navy console."},{id:"matrix",htmlClass:"app-matrix",forcesDark:!0,favicon:"favicon-matrix.svg",fontHref:"https://fonts.googleapis.com/css2?family=JetBrains+Mono&display=swap",fontLinkId:"sm-matrix-font",label:"Matrix",description:"Cyber-green retint on the dark palette."}];function k(n){return n?_.find(r=>r.id===n)??null:null}var U="skill-map.ui.theme",x="skill-map.ui.extra-theme",Y="app-dark",G="dark",q="(prefers-color-scheme: dark)",J="favicon.svg",Q='link[rel="icon"][type="image/svg+xml"]',Be=(()=>{class n{doc=c(I);destroyRef=c(l);mode=d(this.readInitialMode());extraTheme=d(this.readInitialExtra());systemPrefersDark=d(this.readSystemPref());resolved=h(()=>{let e=this.mode();return e==="auto"?this.systemPrefersDark()?"dark":"light":e});constructor(){this.subscribeToSystemPref(),v(()=>{let e=this.extraTheme(),t=k(e),s=this.resolved()==="dark"||t?.forcesDark===!0,a=this.doc.documentElement;a.classList.toggle(Y,s),a.classList.toggle(G,s);for(let i of _)a.classList.toggle(i.htmlClass,t?.id===i.id);this.applyFavicon(t?.favicon??J),t&&this.ensureExtraThemeFont(t);try{let i=this.doc.defaultView?.localStorage;i?.setItem(U,this.mode()),t===null?i?.removeItem(x):i?.setItem(x,t.id)}catch{}})}toggle(){this.extraTheme()!==null&&this.extraTheme.set(null),this.mode.update(e=>e==="auto"?"light":e==="light"?"dark":"auto")}set(e){this.mode.set(e)}setExtraTheme(e){this.extraTheme.set(k(e)?.id??null)}readInitialMode(){try{let e=this.doc.defaultView?.localStorage.getItem(U);if(e==="auto"||e==="light"||e==="dark")return e}catch{}return"auto"}readInitialExtra(){try{let e=this.doc.defaultView?.localStorage.getItem(x);return k(e)?.id??null}catch{return null}}readSystemPref(){try{return this.doc.defaultView?.matchMedia(q).matches??!1}catch{return!1}}ensureExtraThemeFont(e){if(!e.fontHref||!e.fontLinkId||this.doc.getElementById(e.fontLinkId))return;let t=this.doc.head;if(!t)return;let o=this.doc.createElement("link");o.id=e.fontLinkId,o.rel="stylesheet",o.href=e.fontHref,t.appendChild(o)}applyFavicon(e){let t=this.doc.querySelector(Q);t&&t.getAttribute("href")!==e&&t.setAttribute("href",e)}subscribeToSystemPref(){let e=this.doc.defaultView;if(!e||typeof e.matchMedia!="function")return;let t=e.matchMedia(q),o=s=>{this.systemPrefersDark.set(s.matches)};t.addEventListener("change",o),this.destroyRef.onDestroy(()=>t.removeEventListener("change",o))}static \u0275fac=function(t){return new(t||n)};static \u0275prov=g({token:n,factory:n.\u0275fac,providedIn:"root"})}return n})();export{E as a,me as b,A as c,F as d,O as e,be as f,P as g,Oe as h,_ as i,Be as j};
@@ -0,0 +1,2 @@
1
+ import{b as Tt,i as Se}from"./chunk-UBQUCSQ4.js";import{a as Et,c as St,d as Be,j as kt}from"./chunk-4ITL7E6U.js";import{K as V,L as H,R as Mt,S as Nt}from"./chunk-H6O2DYVT.js";import{g as wt}from"./chunk-LCOYSPKE.js";import{$ as pt,$a as ut,Bb as _t,Eb as he,Gb as Ne,Ha as p,Hb as yt,Ib as h,K as Q,N as lt,P as K,Tb as xt,Ub as te,V as me,W as ge,Wa as A,Wb as je,Xb as C,Yb as M,Zb as Ee,_ as dt,ab as ft,ga as F,gb as mt,hb as gt,hc as bt,ia as Me,ib as vt,ic as Ct,jb as k,mb as N,nb as E,ob as ht,qb as W,rb as X,sb as $,sc as d,tb as I,ub as D,uc as P,vb as ee,wb as T,xb as S,yb as de}from"./chunk-Q2A6FWC7.js";import{a as Te,b as st,d as ct}from"./chunk-WCABR6TI.js";var Hn=new Set(["stale-body","stale-frontmatter","stale-both"]);function Dt(e){return e?Hn.has(e.status??null):!1}function _e(e){let i=e.metadata;return i&&typeof i=="object"&&!Array.isArray(i)?i:null}function Eo(e){if(!e)return null;let i=e.sidecar?.annotations;if(i&&typeof i.version=="number")return`v${i.version}`;let t=_e(e.frontmatter)?.version;return typeof t=="string"&&t.length>0?`v${t}`:null}function So(e){if(!e)return null;let t=e.sidecar?.annotations?.stability;if(t==="stable"||t==="experimental"||t==="deprecated")return t;let n=_e(e.frontmatter)?.stability;return n==="stable"||n==="experimental"||n==="deprecated"?n:null}function ko(e){return Dt(e?.sidecar)}function Do(e){if(!e)return null;let t=e.sidecar?.annotations?.supersededBy;if(typeof t=="string"&&t.length>0)return t;let n=_e(e.frontmatter)?.supersededBy;return typeof n=="string"&&n.length>0?n:null}function Ot(e){if(!e)return[];let t=e.sidecar?.annotations?.tags;if(Array.isArray(t))return t.filter(o=>typeof o=="string"&&o.length>0);let n=_e(e.frontmatter)?.tags;return Array.isArray(n)?n.filter(o=>typeof o=="string"&&o.length>0):[]}function Oo(e,i){switch(e?.sidecar?.status){case"stale-body":return i.staleBody;case"stale-frontmatter":return i.staleFrontmatter;case"stale-both":return i.staleBoth;default:return""}}function Io(e){return e<1e3?`${e}`:e<1e4?`${(e/1e3).toFixed(1).replace(/\.0$/,"")}k`:`${Math.round(e/1e3)}k`}function Po(e){let i=new Date(e);if(isNaN(i.getTime()))return e;let t=Date.now()-i.getTime(),n=Math.floor(t/1e3);if(n<60)return"just now";let o=Math.floor(n/60);if(o<60)return`${o} minute${o===1?"":"s"} ago`;let r=Math.floor(o/60);if(r<24)return`${r} hour${r===1?"":"s"} ago`;let s=Math.floor(r/24);if(s<30)return`${s} day${s===1?"":"s"} ago`;let a=Math.floor(s/30);if(a<12)return`${a} month${a===1?"":"s"} ago`;let c=Math.floor(s/365);return`${c} year${c===1?"":"s"} ago`}function Ao(e){return Number.isFinite(e)?new Date(e).toISOString().slice(0,10):""}function Fo(e){return Number.isFinite(e)?`${new Date(e).toISOString().slice(0,19).replace("T"," ")}Z`:""}var It=["invokes","references","points","mentions","supersedes"],Pt="sm.workspace.search-affects-map";function Gn(){return typeof localStorage>"u"?!1:localStorage.getItem(Pt)==="1"}function Yn(e){if(!(typeof localStorage>"u"))try{localStorage.setItem(Pt,e?"1":"0")}catch{}}var Bo=(()=>{class e{_searchText=F("");_selectedKinds=F([]);_kindToggleExplicitEmpty=F(!1);_favoritesOnly=F(!1);_selectedLinkKinds=F([]);_severityErrorActive=F(!1);_severityWarnActive=F(!1);_searchAffectsMap=F(Gn());searchText=this._searchText.asReadonly();searchAffectsMap=this._searchAffectsMap.asReadonly();selectedKinds=this._selectedKinds.asReadonly();favoritesOnly=this._favoritesOnly.asReadonly();selectedLinkKinds=this._selectedLinkKinds.asReadonly();severityErrorActive=this._severityErrorActive.asReadonly();severityWarnActive=this._severityWarnActive.asReadonly();kindToggleExplicitEmpty=this._kindToggleExplicitEmpty.asReadonly();isActive=d(()=>this._searchText().trim().length>0||this._selectedKinds().length>0||this._kindToggleExplicitEmpty()||this._favoritesOnly()||this._selectedLinkKinds().length>0||this._severityErrorActive()||this._severityWarnActive());setSearchText(t){this._searchText.set(t)}toggleSearchAffectsMap(){let t=!this._searchAffectsMap();this._searchAffectsMap.set(t),Yn(t)}setKinds(t){this._kindToggleExplicitEmpty.set(!1),this._selectedKinds.set([...t])}toggleKind(t,n){let o=this._selectedKinds(),r=n,a=this._kindToggleExplicitEmpty()?new Set:o.length===0?new Set(r):new Set(o);a.has(t)?a.delete(t):a.add(t),a.size===r.length?(this._selectedKinds.set([]),this._kindToggleExplicitEmpty.set(!1)):a.size===0?(this._selectedKinds.set([]),this._kindToggleExplicitEmpty.set(!0)):(this._selectedKinds.set([...a]),this._kindToggleExplicitEmpty.set(!1))}isKindActive(t){if(this._kindToggleExplicitEmpty())return!1;let n=this._selectedKinds();return n.length===0?!0:n.includes(t)}setFavoritesOnly(t){this._favoritesOnly.set(t)}setLinkKinds(t){this._selectedLinkKinds.set([...t])}toggleLinkKind(t){let n=this._selectedLinkKinds(),o=n.length===0?new Set(It):new Set(n);o.has(t)?o.delete(t):o.add(t),o.size===It.length?this._selectedLinkKinds.set([]):this._selectedLinkKinds.set([...o])}isLinkKindActive(t){let n=this._selectedLinkKinds();return n.length===0?!0:n.includes(t)}toggleSeverity(t){t==="error"?this._severityErrorActive.set(!this._severityErrorActive()):this._severityWarnActive.set(!this._severityWarnActive())}isSeverityActive(t){return t==="error"?this._severityErrorActive():this._severityWarnActive()}setSeverityFilters(t){let n=new Set(t);this._severityErrorActive.set(n.has("error")),this._severityWarnActive.set(n.has("warn"))}reset(){this._searchText.set(""),this._selectedKinds.set([]),this._kindToggleExplicitEmpty.set(!1),this._favoritesOnly.set(!1),this._selectedLinkKinds.set([]),this._severityErrorActive.set(!1),this._severityWarnActive.set(!1)}apply(t,n,o){let s=o?.includeSearch??!0?this.searchText().trim().toLowerCase():"",a=this.selectedKinds(),c=this._kindToggleExplicitEmpty(),l=this.favoritesOnly(),f=this._severityErrorActive(),y=this._severityWarnActive(),_=(f||y)&&n!==void 0;return t.filter(m=>{if(s){let w=Ot(m).join(" ");if(![m.path,m.frontmatter.name??"",m.frontmatter.description??"",w].join(" ").toLowerCase().includes(s))return!1}return!(c||a.length>0&&!a.includes(m.kind)||l&&m.isFavorite!==!0||_&&(f&&!n.errors.has(m.path)||y&&!n.warns.has(m.path)))})}static \u0275fac=function(n){return new(n||e)};static \u0275prov=Q({token:e,factory:e.\u0275fac,providedIn:"root"})}return e})();var Wn=(()=>{class e{router=K(Se);open(t){this.router.navigate(["/"],{queryParams:{path:t}})}static \u0275fac=function(n){return new(n||e)};static \u0275prov=Q({token:e,factory:e.\u0275fac,providedIn:"root"})}return e})(),At=new lt("NODE_OPEN_INTENT",{providedIn:"root",factory:()=>K(Wn)});var ke="sm-debug-slots",Xn="debug",qn="is-debug-slots",Ft=(()=>{class e{visible=F(!1);constructor(){this.visible.set(this.resolveInitial()),Me(()=>{let t=this.visible();document.documentElement.classList.toggle(qn,t)})}toggle(){let t=!this.visible();this.visible.set(t);try{localStorage.setItem(ke,t?"1":"0")}catch{}}resolveInitial(){let n=new URLSearchParams(window.location.search).get(Xn);if(n!==null&&n!=="0"&&n!=="false"){try{localStorage.setItem(ke,"1")}catch{}return!0}if(n==="0"||n==="false"){try{localStorage.setItem(ke,"0")}catch{}return!1}try{return localStorage.getItem(ke)==="1"}catch{return!1}}static \u0275fac=function(n){return new(n||e)};static \u0275prov=Q({token:e,factory:e.\u0275fac,providedIn:"root"})}return e})();var $t=(()=>{class e{registry=F({});setRegistry(t){t&&this.registry.set(t)}get(t){return this.registry()[t]}all(){return this.registry()}static \u0275fac=function(n){return new(n||e)};static \u0275prov=Q({token:e,factory:e.\u0275fac,providedIn:"root"})}return e})();function Z(e){return typeof e=="object"&&e!==null}function ae(e,i){return Z(e)&&Array.isArray(e[i])}function De(e,i){return Z(e)&&typeof e[i]=="string"}var G={panelHeader:"Plugin contributions",panelCount:e=>`${e} contribution${e===1?"":"s"}`,emptyDefault:"No contributions for this node.",rendererInvalid:"Contribution data failed schema validation.",rendererUnknownSlot:e=>`Unknown slot: ${e}. Update the UI to a newer catalog version.`,overflowBadge:e=>`+${e}`,overflowTooltip:e=>`Hidden: ${e}`,recordsCell:{boolTrue:"yes",boolFalse:"no"}};var Qn=(e,i)=>i.label;function Zn(e,i){if(e&1&&(T(0,"h5",1),C(1),S()),e&2){let t=h();p(),M(t.label())}}function Jn(e,i){if(e&1&&(T(0,"p",2),C(1),S()),e&2){let t=h();p(),M(t.emptyText())}}function ei(e,i){if(e&1&&(T(0,"li",4)(1,"span",5),C(2),S(),T(3,"span",6),de(4,"span",7),S(),T(5,"span",8),C(6),S()()),e&2){let t=i.$implicit,n=h(2);k("title",t.tooltip??""),p(2),M(t.label),p(2),xt("width",n.percent(t.value),"%"),p(2),M(t.value)}}function ti(e,i){if(e&1&&(T(0,"ul",3),W(1,ei,7,5,"li",4,Qn),S()),e&2){let t=h();p(),X(t.bars())}}var Lt=(()=>{class e{inputs=P.required();typed=d(()=>{let t=this.inputs().payload;return Z(t)?ae(t,"bars")?t:{bars:[]}:{bars:[]}});bars=d(()=>this.typed().bars??[]);label=d(()=>this.inputs().label);emptyText=d(()=>this.inputs().emptyText??G.emptyDefault);maxValue=d(()=>this.bars().reduce((n,o)=>o.value>n?o.value:n,0));percent(t){let n=this.maxValue();return n===0?0:Math.round(t/n*100)}static \u0275fac=function(n){return new(n||e)};static \u0275cmp=A({type:e,selectors:[["sm-node-breakdown"]],inputs:{inputs:[1,"inputs"]},decls:4,vars:3,consts:[[1,"vc-breakdown"],[1,"vc-breakdown__header"],[1,"vc-breakdown__empty"],[1,"vc-breakdown__rows"],[1,"vc-breakdown__row"],[1,"vc-breakdown__label"],[1,"vc-breakdown__bar-track"],["aria-hidden","true",1,"vc-breakdown__bar"],[1,"vc-breakdown__value"]],template:function(n,o){n&1&&(T(0,"section",0),N(1,Zn,2,1,"h5",1),N(2,Jn,2,1,"p",2)(3,ti,3,0,"ul",3),S()),n&2&&(k("data-testid","renderer-node-breakdown"),p(),E(o.label()?1:-1),p(),E(o.bars().length===0?2:3))},styles:[".vc-breakdown__header[_ngcontent-%COMP%]{font-size:.85rem;color:var(--p-text-muted-color);margin:0 0 .5rem}.vc-breakdown__rows[_ngcontent-%COMP%]{list-style:none;padding:0;margin:0;display:flex;flex-direction:column;gap:.25rem}.vc-breakdown__row[_ngcontent-%COMP%]{display:grid;grid-template-columns:minmax(4rem,.4fr) 1fr 3rem;align-items:center;gap:.5rem;font-size:.85rem}.vc-breakdown__label[_ngcontent-%COMP%]{color:var(--p-text-color);white-space:nowrap;overflow:hidden;text-overflow:ellipsis}.vc-breakdown__bar-track[_ngcontent-%COMP%]{background:var(--p-surface-100);border-radius:var(--sm-radius-md);height:.625rem;overflow:hidden}.vc-breakdown__bar[_ngcontent-%COMP%]{display:block;height:100%;background:var(--p-primary-500)}.vc-breakdown__value[_ngcontent-%COMP%]{text-align:right;color:var(--p-text-color)}.vc-breakdown__empty[_ngcontent-%COMP%]{color:var(--p-text-muted-color);font-size:.85rem;margin:0}"],changeDetection:0})}return e})();function ni(e,i){if(e&1&&(T(0,"span",1),C(1),S()),e&2){let t=h(),n=h();je(n.hostClass()),p(),M(t.text)}}function ii(e,i){if(e&1&&de(0,"i",1),e&2){let t=h(),n=h();je(n.hostClass()+" "+t.cls)}}function oi(e,i){e&1&&N(0,ni,2,3,"span",0)(1,ii,1,2,"i",0),e&2&&E(i.kind==="emoji"?0:1)}function ze(e){if(!e)return null;let i=e.trim();if(i.length===0)return null;let t=i.codePointAt(0)??0;if(!(t>=65&&t<=90||t>=97&&t<=122))return{kind:"emoji",text:i};if(/^pi pi-[a-z0-9-]+$/.test(i))return{kind:"pi",cls:i};if(/^pi-[a-z0-9-]+$/.test(i))return{kind:"pi",cls:`pi ${i}`};if(/^fa-(?:solid|regular|brands) fa-[a-z0-9-]+$/.test(i))return{kind:"fa",cls:i};if(/^fa-[a-z0-9-]+$/.test(i)){let o=i.slice(3);return o==="solid"||o==="regular"||o==="brands"||o.includes("fa-")?null:{kind:"fa",cls:`fa-solid ${i}`}}return null}var oe=(()=>{class e{icon=P(void 0);hostClass=P("");resolved=d(()=>{let t=this.icon(),n=ze(t);return t&&!n&&console.warn(`[sm-icon] Invalid icon string "${t}". Expected emoji, pi-foo, pi pi-foo, fa-{solid|regular|brands} fa-foo, or fa-foo.`),n});static \u0275fac=function(n){return new(n||e)};static \u0275cmp=A({type:e,selectors:[["sm-icon"]],inputs:{icon:[1,"icon"],hostClass:[1,"hostClass"]},decls:1,vars:1,consts:[["aria-hidden","true",3,"class"],["aria-hidden","true"]],template:function(n,o){if(n&1&&N(0,oi,2,1),n&2){let r;E((r=o.resolved())?0:-1,r)}},styles:["[_nghost-%COMP%] i[_ngcontent-%COMP%], [_nghost-%COMP%] span[_ngcontent-%COMP%]{font-size:inherit;line-height:inherit}[_nghost-%COMP%] i[_ngcontent-%COMP%]{transform:translateY(1px)}"],changeDetection:0})}return e})();function ri(e,i){if(e&1&&(I(0,"span",3),C(1),D()),e&2){let t=h();k("aria-label",t.ariaLabel()),p(),M(t.value())}}var Oe=(()=>{class e{inputs=P.required();typed=d(()=>{let t=this.inputs().payload;return typeof t!="object"||t===null?{value:0}:t});value=d(()=>this.typed().value);icon=d(()=>this.inputs().icon);severity=d(()=>this.typed().severity);resolvedTooltip=d(()=>this.typed().tooltip??this.inputs().tooltip??"");ariaLabel=d(()=>this.inputs().label??"");static \u0275fac=function(n){return new(n||e)};static \u0275cmp=A({type:e,selectors:[["sm-node-counter"]],inputs:{inputs:[1,"inputs"]},decls:4,vars:12,consts:[[1,"vc-counter",3,"pTooltip"],[1,"vc-counter__icon"],[3,"icon"],[1,"vc-counter__value"]],template:function(n,o){n&1&&(I(0,"span",0)(1,"span",1),ee(2,"sm-icon",2),D(),N(3,ri,2,2,"span",3),D()),n&2&&(te("vc-counter--info",o.severity()==="info")("vc-counter--warn",o.severity()==="warn")("vc-counter--success",o.severity()==="success")("vc-counter--danger",o.severity()==="danger"),$("pTooltip",o.resolvedTooltip()),k("data-testid","renderer-node-counter"),p(2),$("icon",o.icon()),p(),E(o.value()>0?3:-1))},dependencies:[H,V,oe],styles:[".vc-counter[_ngcontent-%COMP%]{display:inline-flex;align-items:center;gap:.3rem;line-height:1;color:var(--p-text-color)}.vc-counter__icon[_ngcontent-%COMP%]{font-size:.6rem;line-height:1;display:block}.vc-counter__value[_ngcontent-%COMP%]{font-weight:600;color:var(--p-text-color);line-height:1;display:block}.vc-counter--info[_ngcontent-%COMP%], .vc-counter--info[_ngcontent-%COMP%] .vc-counter__value[_ngcontent-%COMP%]{color:var(--sm-severity-info)}.vc-counter--warn[_ngcontent-%COMP%]{color:var(--sm-severity-warn);opacity:.85}.vc-counter--warn[_ngcontent-%COMP%] .vc-counter__value[_ngcontent-%COMP%]{color:var(--sm-severity-warn)}.vc-counter--success[_ngcontent-%COMP%], .vc-counter--success[_ngcontent-%COMP%] .vc-counter__value[_ngcontent-%COMP%]{color:var(--sm-severity-success)}.vc-counter--danger[_ngcontent-%COMP%]{color:var(--sm-severity-error);opacity:.85}.vc-counter--danger[_ngcontent-%COMP%] .vc-counter__value[_ngcontent-%COMP%]{color:var(--sm-severity-error)}"],changeDetection:0})}return e})();var ai=(e,i)=>i.key;function si(e,i){if(e&1&&(I(0,"h5",1),C(1),D()),e&2){let t=h();p(),M(t.label())}}function ci(e,i){if(e&1&&(I(0,"p",2),C(1),D()),e&2){let t=h();p(),M(t.emptyText())}}function li(e,i){if(e&1&&(I(0,"dt",4),C(1),D(),I(2,"dd"),C(3),D()),e&2){let t=i.$implicit,n=h(2);$("pTooltip",t.tooltip??""),p(),M(t.key),p(2),M(n.formatValue(t.value))}}function di(e,i){if(e&1&&(I(0,"dl",3),W(1,li,4,3,null,null,ai),D()),e&2){let t=h();p(),X(t.pairs())}}var Rt=(()=>{class e{inputs=P.required();typed=d(()=>{let t=this.inputs().payload;return Z(t)?ae(t,"pairs")?t:{pairs:[]}:{pairs:[]}});pairs=d(()=>this.typed().pairs??[]);label=d(()=>this.inputs().label);emptyText=d(()=>this.inputs().emptyText??G.emptyDefault);formatValue(t){return t==null?"\xB7":typeof t=="boolean"?t?"true":"false":String(t)}static \u0275fac=function(n){return new(n||e)};static \u0275cmp=A({type:e,selectors:[["sm-node-key-values"]],inputs:{inputs:[1,"inputs"]},decls:4,vars:3,consts:[[1,"vc-kv"],[1,"vc-kv__header"],[1,"vc-kv__empty"],[1,"vc-kv__list"],[3,"pTooltip"]],template:function(n,o){n&1&&(I(0,"section",0),N(1,si,2,1,"h5",1),N(2,ci,2,1,"p",2)(3,di,3,0,"dl",3),D()),n&2&&(k("data-testid","renderer-node-key-values"),p(),E(o.label()?1:-1),p(),E(o.pairs().length===0?2:3))},dependencies:[H,V],styles:[".vc-kv__header[_ngcontent-%COMP%]{font-size:.85rem;color:var(--p-text-muted-color);margin:0 0 .5rem}.vc-kv__list[_ngcontent-%COMP%]{display:grid;grid-template-columns:minmax(6rem,max-content) 1fr;gap:.25rem .75rem;margin:0;font-size:.85rem}.vc-kv__list[_ngcontent-%COMP%] dt[_ngcontent-%COMP%]{color:var(--p-text-muted-color);font-weight:500}.vc-kv__list[_ngcontent-%COMP%] dd[_ngcontent-%COMP%]{color:var(--p-text-color);margin:0;word-break:break-word}.vc-kv__empty[_ngcontent-%COMP%]{color:var(--p-text-muted-color);font-size:.85rem;margin:0}"],changeDetection:0})}return e})();var pi=(e,i)=>i.path;function ui(e,i){if(e&1&&(T(0,"h5",1),C(1),S()),e&2){let t=h();p(),M(t.label())}}function fi(e,i){if(e&1&&(T(0,"p",2),C(1),S()),e&2){let t=h();p(),M(t.emptyText())}}function mi(e,i){if(e&1&&(T(0,"span",5),C(1),S()),e&2){let t=h().$implicit;p(),M(t.kind)}}function gi(e,i){if(e&1){let t=he();T(0,"li")(1,"button",4),yt("click",function(){let o=me(t).$implicit,r=h(2);return ge(r.onOpenPath(o.path))}),N(2,mi,2,1,"span",5),T(3,"span",6),C(4),S()()()}if(e&2){let t=i.$implicit;p(2),E(t.kind?2:-1),p(2),M(t.label??t.path)}}function vi(e,i){if(e&1&&(T(0,"ul",3),W(1,gi,5,2,"li",null,pi),S()),e&2){let t=h();p(),X(t.links())}}var jt=(()=>{class e{openIntent=K(At);inputs=P.required();typed=d(()=>{let t=this.inputs().payload;return Z(t)?ae(t,"links")?t:{links:[]}:{links:[]}});links=d(()=>this.typed().links??[]);label=d(()=>this.inputs().label);emptyText=d(()=>this.inputs().emptyText??G.emptyDefault);onOpenPath(t){this.openIntent.open(t)}static \u0275fac=function(n){return new(n||e)};static \u0275cmp=A({type:e,selectors:[["sm-node-link-list"]],inputs:{inputs:[1,"inputs"]},decls:4,vars:3,consts:[[1,"vc-links"],[1,"vc-links__header"],[1,"vc-links__empty"],[1,"vc-links__list"],["type","button",1,"vc-links__btn",3,"click"],[1,"vc-links__kind"],[1,"vc-links__label"]],template:function(n,o){n&1&&(T(0,"section",0),N(1,ui,2,1,"h5",1),N(2,fi,2,1,"p",2)(3,vi,3,0,"ul",3),S()),n&2&&(k("data-testid","renderer-node-link-list"),p(),E(o.label()?1:-1),p(),E(o.links().length===0?2:3))},styles:[".vc-links__header[_ngcontent-%COMP%]{font-size:.85rem;color:var(--p-text-muted-color);margin:0 0 .5rem}.vc-links__list[_ngcontent-%COMP%]{list-style:none;padding:0;margin:0;display:flex;flex-direction:column;gap:.125rem;font-size:.85rem}.vc-links__btn[_ngcontent-%COMP%]{display:inline-flex;align-items:center;gap:.5rem;background:transparent;border:0;padding:.25rem .5rem;border-radius:var(--sm-radius-md);color:var(--p-primary-color);cursor:pointer;text-align:left;width:100%}.vc-links__btn[_ngcontent-%COMP%]:hover{background:var(--p-surface-100)}.vc-links__kind[_ngcontent-%COMP%]{color:var(--p-text-muted-color);font-family:var(--sm-font-mono);font-size:.75rem}.vc-links__label[_ngcontent-%COMP%]{word-break:break-all}.vc-links__empty[_ngcontent-%COMP%]{color:var(--p-text-muted-color);font-size:.85rem;margin:0}"],changeDetection:0})}return e})();var Bt=(e,i)=>i.key;function hi(e,i){if(e&1&&(T(0,"h5",1),C(1),S()),e&2){let t=h();p(),M(t.label())}}function _i(e,i){if(e&1&&(T(0,"p",2),C(1),S()),e&2){let t=h();p(),M(t.emptyText())}}function yi(e,i){if(e&1&&(T(0,"th"),C(1),S()),e&2){let t=i.$implicit;p(),M(t.label)}}function xi(e,i){if(e&1&&de(0,"i",4),e&2){let t=h(4);k("aria-label",t.texts.boolTrue)}}function bi(e,i){if(e&1&&de(0,"i",5),e&2){let t=h(4);k("aria-label",t.texts.boolFalse)}}function Ci(e,i){}function wi(e,i){if(e&1&&C(0),e&2){let t=h().$implicit,n=h().$implicit,o=h(2);Ee(" ",o.cellText(n[t.key])," ")}}function Ti(e,i){if(e&1&&(T(0,"td"),N(1,xi,1,1,"i",4)(2,bi,1,1,"i",5)(3,Ci,0,0)(4,wi,1,1),S()),e&2){let t,n=i.$implicit,o=h().$implicit,r=h(2);p(),E((t=r.cellKind(o[n.key]))==="bool-true"?1:t==="bool-false"?2:t==="empty"?3:4)}}function Mi(e,i){if(e&1&&(T(0,"tr"),W(1,Ti,5,1,"td",null,Bt),S()),e&2){let t=h(2);p(),X(t.columns())}}function Ni(e,i){if(e&1&&(T(0,"table",3)(1,"thead")(2,"tr"),W(3,yi,2,1,"th",null,Bt),S()(),T(5,"tbody"),W(6,Mi,3,0,"tr",null,ht),S()()),e&2){let t=h();p(3),X(t.columns()),p(3),X(t.rows())}}var zt=(()=>{class e{inputs=P.required();typed=d(()=>{let t=this.inputs().payload;return Z(t)?!ae(t,"columns")||!ae(t,"rows")?{columns:[],rows:[]}:t:{columns:[],rows:[]}});columns=d(()=>this.typed().columns??[]);rows=d(()=>this.typed().rows??[]);label=d(()=>this.inputs().label);emptyText=d(()=>this.inputs().emptyText??G.emptyDefault);texts=G.recordsCell;cellKind(t){return t==null?"empty":typeof t=="boolean"?t?"bool-true":"bool-false":"text"}cellText(t){return t==null?"":String(t)}static \u0275fac=function(n){return new(n||e)};static \u0275cmp=A({type:e,selectors:[["sm-node-records"]],inputs:{inputs:[1,"inputs"]},decls:4,vars:3,consts:[[1,"vc-records"],[1,"vc-records__header"],[1,"vc-records__empty"],[1,"vc-records__table"],["role","img",1,"pi","pi-check","vc-records__bool","vc-records__bool--true"],["role","img",1,"pi","pi-minus","vc-records__bool","vc-records__bool--false"]],template:function(n,o){n&1&&(T(0,"section",0),N(1,hi,2,1,"h5",1),N(2,_i,2,1,"p",2)(3,Ni,8,0,"table",3),S()),n&2&&(k("data-testid","renderer-node-records"),p(),E(o.label()?1:-1),p(),E(o.rows().length===0?2:3))},styles:[".vc-records__header[_ngcontent-%COMP%]{font-size:.85rem;color:var(--p-text-muted-color);margin:0 0 .5rem}.vc-records__table[_ngcontent-%COMP%]{width:100%;border-collapse:collapse;font-size:.85rem}.vc-records__table[_ngcontent-%COMP%] th[_ngcontent-%COMP%]{text-align:left;padding:.25rem .5rem;border-bottom:1px solid var(--p-surface-200);color:var(--p-text-muted-color);font-weight:600}.vc-records__table[_ngcontent-%COMP%] td[_ngcontent-%COMP%]{padding:.25rem .5rem;border-bottom:1px solid var(--p-surface-100);color:var(--p-text-color);white-space:nowrap;overflow:hidden;text-overflow:ellipsis;max-width:16rem}.vc-records__empty[_ngcontent-%COMP%]{color:var(--p-text-muted-color);font-size:.85rem;margin:0}.vc-records__bool[_ngcontent-%COMP%]{font-size:.9rem;line-height:1}.vc-records__bool--true[_ngcontent-%COMP%]{color:var(--p-primary-color)}.vc-records__bool--false[_ngcontent-%COMP%]{color:var(--p-text-muted-color)}"],changeDetection:0})}return e})();function Ei(e,i){if(e&1&&(T(0,"h5",1),C(1),S()),e&2){let t=h();p(),M(t.label())}}function Si(e,i){if(e&1&&(T(0,"p",2),C(1),S()),e&2){let t=h();p(),M(t.emptyText())}}function ki(e,i){if(e&1&&(T(0,"pre",3),C(1),S()),e&2){let t=h();p(),M(t.markdown())}}var Kt=(()=>{class e{inputs=P.required();typed=d(()=>{let t=this.inputs().payload;return Z(t)?De(t,"markdown")?t:{markdown:""}:{markdown:""}});markdown=d(()=>this.typed().markdown??"");label=d(()=>this.inputs().label);emptyText=d(()=>this.inputs().emptyText??G.emptyDefault);static \u0275fac=function(n){return new(n||e)};static \u0275cmp=A({type:e,selectors:[["sm-node-markdown"]],inputs:{inputs:[1,"inputs"]},decls:4,vars:3,consts:[[1,"vc-markdown"],[1,"vc-markdown__header"],[1,"vc-markdown__empty"],[1,"vc-markdown__body"]],template:function(n,o){n&1&&(T(0,"section",0),N(1,Ei,2,1,"h5",1),N(2,Si,2,1,"p",2)(3,ki,2,1,"pre",3),S()),n&2&&(k("data-testid","renderer-node-markdown"),p(),E(o.label()?1:-1),p(),E(o.markdown()?3:2))},styles:[".vc-markdown__header[_ngcontent-%COMP%]{font-size:.85rem;color:var(--p-text-muted-color);margin:0 0 .5rem}.vc-markdown__body[_ngcontent-%COMP%]{font-size:.85rem;color:var(--p-text-color);background:var(--p-surface-50);padding:.5rem;border-radius:var(--sm-radius-md);white-space:pre-wrap;word-break:break-word;margin:0;max-height:12rem;overflow:auto}.vc-markdown__empty[_ngcontent-%COMP%]{color:var(--p-text-muted-color);font-size:.85rem;margin:0}"],changeDetection:0})}return e})();var Ut={countAriaFallback:"count"};function Di(e,i){if(e&1&&(I(0,"span",1),ee(1,"sm-icon",4),D()),e&2){let t=h();p(),$("icon",t.icon())}}function Oi(e,i){if(e&1&&(I(0,"span",2),C(1),D()),e&2){let t=h();p(),M(t.label())}}function Ii(e,i){if(e&1&&(I(0,"span",3),C(1),D()),e&2){let t=h();k("aria-label",t.countAria()),p(),M(t.count())}}var Vt=(()=>{class e{inputs=P.required();texts=Ut;typed=d(()=>{let t=this.inputs().payload;return typeof t!="object"||t===null?{}:t});icon=d(()=>this.inputs().icon);label=d(()=>{let t=this.typed().label;return typeof t=="string"?t:""});count=d(()=>{let t=this.typed().count;return typeof t=="number"&&Number.isFinite(t)?t:null});severity=d(()=>this.typed().severity);hasTint=d(()=>!!this.severity()&&this.label().length>0);resolvedTooltip=d(()=>this.typed().tooltip??this.inputs().tooltip??"");countAria=d(()=>this.inputs().label??(this.label()||this.texts.countAriaFallback));static \u0275fac=function(n){return new(n||e)};static \u0275cmp=A({type:e,selectors:[["sm-node-badge"]],inputs:{inputs:[1,"inputs"]},decls:4,vars:15,consts:[["tooltipPosition","left",1,"vc-badge",3,"pTooltip"],[1,"vc-badge__icon"],[1,"vc-badge__label"],[1,"vc-badge__count"],[3,"icon"]],template:function(n,o){n&1&&(I(0,"span",0),N(1,Di,2,1,"span",1),N(2,Oi,2,1,"span",2),N(3,Ii,2,2,"span",3),D()),n&2&&(te("vc-badge--tinted",o.hasTint())("vc-badge--info",o.severity()==="info")("vc-badge--warn",o.severity()==="warn")("vc-badge--success",o.severity()==="success")("vc-badge--danger",o.severity()==="danger"),$("pTooltip",o.resolvedTooltip()),k("data-testid","renderer-node-badge"),p(),E(o.icon()?1:-1),p(),E(o.label()?2:-1),p(),E(o.count()!==null?3:-1))},dependencies:[H,V,oe],styles:[".vc-badge[_ngcontent-%COMP%]{display:inline-flex;align-items:center;gap:.3rem;line-height:1;color:var(--p-text-color)}.vc-badge__icon[_ngcontent-%COMP%]{font-size:.6rem;line-height:1;display:block}.vc-badge__label[_ngcontent-%COMP%]{font-weight:500;line-height:1;display:block}.vc-badge__count[_ngcontent-%COMP%]{font-weight:600;line-height:1;display:block}.vc-badge--info[_ngcontent-%COMP%]:not(.vc-badge--tinted){color:var(--sm-severity-info)}.vc-badge--warn[_ngcontent-%COMP%]:not(.vc-badge--tinted){color:var(--sm-severity-warn);opacity:.85}.vc-badge--success[_ngcontent-%COMP%]:not(.vc-badge--tinted){color:var(--sm-severity-success)}.vc-badge--danger[_ngcontent-%COMP%]:not(.vc-badge--tinted){color:var(--sm-severity-error);opacity:.85}.vc-badge--tinted[_ngcontent-%COMP%]{padding:.1rem .4rem;border-radius:var(--sm-radius-sm)}.vc-badge--tinted.vc-badge--info[_ngcontent-%COMP%]{background:var(--sm-severity-info-bg);color:var(--sm-severity-info)}.vc-badge--tinted.vc-badge--warn[_ngcontent-%COMP%]{background:var(--sm-severity-warn-bg);color:var(--sm-severity-warn)}.vc-badge--tinted.vc-badge--success[_ngcontent-%COMP%]{background:var(--sm-severity-success-bg);color:var(--sm-severity-success)}.vc-badge--tinted.vc-badge--danger[_ngcontent-%COMP%]{background:var(--sm-severity-error-bg);color:var(--sm-severity-error)}"],changeDetection:0})}return e})();var Ht={errorPrefix:"Action failed:",errorFresh:"This node is fresh; nothing to do.",errorNotFound:"Node not found on the server.",errorReadonly:"Actions are not available in demo mode.",errorGeneric:"Could not run the action."};var Gt=(()=>{class e{dataSource=K(St);texts=Ht;inFlightSig=F(!1);errorSig=F(null);consentOpenSig=F(!1);inFlight=this.inFlightSig.asReadonly();error=this.errorSig.asReadonly();consentOpen=this.consentOpenSig.asReadonly();idle=d(()=>!this.inFlightSig());pending=null;async dispatch(t,n,o){this.inFlightSig()||(this.errorSig.set(null),await this.run(t,n,o,{}))}resolveConsent(t){this.consentOpenSig.set(!1);let n=this.pending;if(this.pending=null,!n||!t.accepted)return;let o=t.always?{confirm:!0,always:!0}:{confirm:!0};this.run(n.actionId,n.nodePath,n.input,o)}dismissError(){this.errorSig.set(null)}async run(t,n,o,r){this.inFlightSig.set(!0);try{await this.dataSource.dispatchAction(t,n,Te({input:o},r))}catch(s){if(r.confirm!==!0&&s instanceof Be&&s.code==="confirm-required"&&Pi(s.details)){this.pending={actionId:t,nodePath:n,input:o},this.consentOpenSig.set(!0);return}this.errorSig.set(this.formatError(s))}finally{this.inFlightSig.set(!1)}}formatError(t){if(t instanceof Be)switch(t.code){case"sidecar-fresh":return`${this.texts.errorPrefix} ${this.texts.errorFresh}`;case"not-found":return`${this.texts.errorPrefix} ${this.texts.errorNotFound}`;case"demo-readonly":return`${this.texts.errorPrefix} ${this.texts.errorReadonly}`;default:return`${this.texts.errorPrefix} ${t.message||this.texts.errorGeneric}`}let n=t instanceof Error?t.message:String(t);return`${this.texts.errorPrefix} ${n||this.texts.errorGeneric}`}static \u0275fac=function(n){return new(n||e)};static \u0275prov=Q({token:e,factory:e.\u0275fac,providedIn:"root"})}return e})();function Pi(e){return typeof e!="object"||e===null?!1:e.key==="allowEditSmFiles"}var Yt={fallbackLabel:"Run action",dismissErrorAriaLabel:"Dismiss",promptDialogHeader:"Provide a value"};var Ai=()=>[import("./chunk-RS3ANRT5.js").then(e=>e.ActionPromptDialog)];function Fi(e,i){if(e&1){let t=he();I(0,"span",2)(1,"span",3),C(2),D(),I(3,"button",4),Ne("click",function(){me(t);let o=h();return ge(o.dismissError())}),ee(4,"i",5),D()()}if(e&2){let t=h();p(2),M(i),p(),k("aria-label",t.texts.dismissErrorAriaLabel)}}function $i(e,i){if(e&1){let t=he();I(0,"sm-action-prompt-dialog",7),Ne("confirmed",function(o){me(t);let r=h(2);return ge(r.onPromptConfirmed(o))})("closed",function(){me(t);let o=h(2);return ge(o.cancelPrompt())}),D()}if(e&2){let t=h(2);$("open",t.promptOpen())("descriptor",t.promptDescriptor())("headerText",t.dialogHeader())("busy",t.inFlight())}}function Li(e,i){if(e&1&&N(0,$i,1,4,"sm-action-prompt-dialog",6),e&2){let t,n=h();E((t=n.prompt())?0:-1,t)}}var Wt=(()=>{class e{inputs=P.required();texts=Yt;dispatcher=K(Gt);inFlightSig=F(!1);errorSig=F(null);promptOpenSig=F(!1);promptOpenedSig=F(!1);inFlight=this.inFlightSig.asReadonly();error=this.errorSig.asReadonly();promptOpen=this.promptOpenSig.asReadonly();promptOpened=this.promptOpenedSig.asReadonly();typed=d(()=>{let t=this.inputs().payload;return typeof t!="object"||t===null?{actionId:""}:t});actionId=d(()=>this.typed().actionId||"");label=d(()=>this.typed().label??this.inputs().label??this.texts.fallbackLabel);icon=d(()=>{let t=ze(this.typed().icon??this.inputs().icon);return t&&t.kind!=="emoji"?t.cls:void 0});enabled=d(()=>this.typed().enabled!==!1);severity=d(()=>{switch(this.typed().severity){case"info":return"info";case"warn":return"warn";case"success":return"success";case"danger":return"danger";default:return}});tooltip=d(()=>this.enabled()?this.inputs().tooltip??"":this.typed().disabledReason??"");prompt=d(()=>{let t=this.typed().prompt;return!t||typeof t!="object"||!t.inputType||!t.paramKey?null:t});promptDescriptor=d(()=>{let t=this.prompt();return{inputType:t?.inputType??"",label:t?.label??"",options:t?.options,defaultValue:t?.defaultValue}});dialogHeader=d(()=>this.typed().label??this.texts.promptDialogHeader);run(){if(!(!this.enabled()||this.inFlightSig())){if(this.prompt()){this.openPrompt();return}this.dispatch(this.typed().input)}}openPrompt(){this.errorSig.set(null),this.promptOpenedSig.set(!0),this.promptOpenSig.set(!0)}onPromptConfirmed(t){let n=this.prompt();if(!n)return;this.promptOpenSig.set(!1);let o=st(Te({},this.typed().input??{}),{[n.paramKey]:t});this.dispatch(o)}cancelPrompt(){this.promptOpenSig.set(!1)}async dispatch(t){let n=this.actionId(),o=this.inputs().nodePath;if(!(!n||!o)){this.errorSig.set(null),this.inFlightSig.set(!0);try{await this.dispatcher.dispatch(n,o,t);let r=this.dispatcher.error();r&&this.errorSig.set(r)}finally{this.inFlightSig.set(!1)}}}dismissError(){this.errorSig.set(null),this.dispatcher.dismissError()}static \u0275fac=function(n){return new(n||e)};static \u0275cmp=A({type:e,selectors:[["sm-node-action-button"]],inputs:{inputs:[1,"inputs"]},decls:6,vars:9,consts:[["data-testid","renderer-node-action-button",1,"vc-action"],["size","small",3,"onClick","label","icon","severity","disabled","loading","pTooltip"],["role","alert","data-testid","renderer-node-action-button-error",1,"vc-action__error"],[1,"vc-action__error-text"],["type","button","data-testid","renderer-node-action-button-error-dismiss",1,"vc-action__error-dismiss",3,"click"],["aria-hidden","true",1,"pi","pi-times"],[3,"open","descriptor","headerText","busy"],[3,"confirmed","closed","open","descriptor","headerText","busy"]],template:function(n,o){if(n&1&&(I(0,"span",0)(1,"p-button",1),Ne("onClick",function(){return o.run()}),D(),N(2,Fi,5,2,"span",2),D(),ft(3,Li,1,1),mt(4,3,Ai),vt()),n&2){let r;p(),$("label",o.label())("icon",o.icon()??"")("severity",o.severity())("disabled",!o.enabled()||o.inFlight())("loading",o.inFlight())("pTooltip",o.tooltip()),k("data-testid","action-"+o.actionId()),p(),E((r=o.error())?2:-1,r),p(2),gt(o.promptOpened())}},dependencies:[Nt,Mt,H,V],styles:[".vc-action[_ngcontent-%COMP%]{display:inline-flex;align-items:center;gap:.4rem;flex-wrap:wrap}.vc-action__error[_ngcontent-%COMP%]{display:inline-flex;align-items:center;gap:.3rem;font-size:.8rem;color:var(--sm-severity-error);background:var(--sm-severity-error-bg);padding:.1rem .4rem;border-radius:var(--sm-radius-sm)}.vc-action__error-dismiss[_ngcontent-%COMP%]{background:none;border:none;cursor:pointer;padding:0;line-height:1;color:var(--sm-severity-error);display:inline-flex}.vc-action__error-dismiss[_ngcontent-%COMP%] .pi[_ngcontent-%COMP%]{font-size:.7rem}"],changeDetection:0})}return e})();var Ri=()=>[],Xt=(e,i)=>i.label;function ji(e,i){if(e&1&&(T(0,"h5",1),C(1),S()),e&2){let t=h();p(),M(t.label())}}function Bi(e,i){if(e&1&&(T(0,"p",2),C(1),S()),e&2){let t=h();p(),M(t.emptyText())}}function zi(e,i){if(e&1&&(T(0,"span",5),C(1),S()),e&2){let t=h().$implicit;p(),M(t.marker)}}function Ki(e,i){if(e&1&&(T(0,"span",5),C(1),S()),e&2){let t=h().$implicit;p(),M(t.marker)}}function Ui(e,i){if(e&1&&(T(0,"li",4),N(1,Ki,2,1,"span",5),T(2,"span",6),C(3),S()()),e&2){let t=i.$implicit;k("title",t.tooltip??""),p(),E(t.marker?1:-1),p(2),M(t.label)}}function Vi(e,i){if(e&1&&(T(0,"ul",7),W(1,Ui,4,3,"li",4,Xt),S()),e&2){let t=h().$implicit;p(),X(t.children)}}function Hi(e,i){if(e&1&&(T(0,"li",4),N(1,zi,2,1,"span",5),T(2,"span",6),C(3),S(),N(4,Vi,3,0,"ul",7),S()),e&2){let t=i.$implicit;k("title",t.tooltip??""),p(),E(t.marker?1:-1),p(2),M(t.label),p(),E(t.children&&t.children.length>0?4:-1)}}function Gi(e,i){if(e&1&&(T(0,"ul",3),W(1,Hi,5,4,"li",4,Xt),S()),e&2){let t=h();p(),X(t.root().children??bt(0,Ri))}}var qt=(()=>{class e{inputs=P.required();root=d(()=>{let t=this.inputs().payload;return Z(t)?De(t,"label")?t.children!==void 0&&!Array.isArray(t.children)?{label:""}:t:{label:""}:{label:""}});rootIsEmpty=d(()=>{let t=this.root();return!t.children||t.children.length===0});label=d(()=>this.inputs().label);emptyText=d(()=>this.inputs().emptyText??G.emptyDefault);static \u0275fac=function(n){return new(n||e)};static \u0275cmp=A({type:e,selectors:[["sm-node-tree"]],inputs:{inputs:[1,"inputs"]},decls:4,vars:3,consts:[[1,"vc-tree"],[1,"vc-tree__header"],[1,"vc-tree__empty"],["role","tree",1,"vc-tree__list"],["role","treeitem"],["aria-hidden","true",1,"vc-tree__marker"],[1,"vc-tree__label"],["role","group",1,"vc-tree__list"]],template:function(n,o){n&1&&(T(0,"section",0),N(1,ji,2,1,"h5",1),N(2,Bi,2,1,"p",2)(3,Gi,3,1,"ul",3),S()),n&2&&(k("data-testid","renderer-node-tree"),p(),E(o.label()?1:-1),p(),E(o.rootIsEmpty()?2:3))},styles:[".vc-tree__header[_ngcontent-%COMP%]{font-size:.85rem;color:var(--p-text-muted-color);margin:0 0 .5rem}.vc-tree__list[_ngcontent-%COMP%]{list-style:none;padding-left:1rem;margin:0;font-size:.85rem}.vc-tree__list[_ngcontent-%COMP%] > li[_ngcontent-%COMP%]{padding:.125rem 0}.vc-tree__marker[_ngcontent-%COMP%]{margin-right:.25rem;opacity:.7}.vc-tree__label[_ngcontent-%COMP%]{color:var(--p-text-color)}.vc-tree__empty[_ngcontent-%COMP%]{color:var(--p-text-muted-color);font-size:.85rem;margin:0}"],changeDetection:0})}return e})();function Yi(e,i){if(e&1&&(I(0,"span",2),C(1),D()),e&2){let t=h();p(),M(t.formattedCount())}}var Qt=(()=>{class e{inputs=P.required();typed=d(()=>{let t=this.inputs().payload;return typeof t!="object"||t===null?{}:t});icon=d(()=>this.typed().icon??this.inputs().icon);severity=d(()=>this.typed().severity);count=d(()=>this.typed().count??null);resolvedTooltip=d(()=>this.typed().tooltip??this.inputs().tooltip??"");formattedCount=d(()=>{let t=this.count();return t===null?"":t>=99?"99+":String(t)});static \u0275fac=function(n){return new(n||e)};static \u0275cmp=A({type:e,selectors:[["sm-node-alert"]],inputs:{inputs:[1,"inputs"]},decls:3,vars:12,consts:[[1,"vc-alert",3,"pTooltip"],["hostClass","vc-alert__icon",3,"icon"],[1,"vc-alert__count"]],template:function(n,o){n&1&&(I(0,"span",0),ee(1,"sm-icon",1),N(2,Yi,2,1,"span",2),D()),n&2&&(te("vc-alert--info",o.severity()==="info")("vc-alert--warn",o.severity()==="warn")("vc-alert--success",o.severity()==="success")("vc-alert--danger",o.severity()==="danger"),$("pTooltip",o.resolvedTooltip()),k("data-testid","renderer-node-alert"),p(),$("icon",o.icon()),p(),E(o.count()!==null?2:-1))},dependencies:[H,V,oe],styles:[".vc-alert[_ngcontent-%COMP%]{display:inline-flex;align-items:center;justify-content:center;gap:.125rem;min-width:1.1rem;min-height:1.1rem;font-size:.85rem;color:var(--p-surface-700)}.vc-alert--info[_ngcontent-%COMP%]{color:var(--sm-severity-info)}.vc-alert--warn[_ngcontent-%COMP%]{color:var(--sm-severity-warn)}.vc-alert--success[_ngcontent-%COMP%]{color:var(--sm-severity-success)}.vc-alert--danger[_ngcontent-%COMP%]{color:var(--sm-severity-error)}"],changeDetection:0})}return e})();var Zt=(()=>{class e{inputs=P.required();typed=d(()=>{let t=this.inputs().payload;return typeof t!="object"||t===null?{}:t});icon=d(()=>this.typed().icon??this.inputs().icon);severity=d(()=>this.typed().severity);resolvedTooltip=d(()=>this.typed().tooltip??this.inputs().tooltip??"");ariaLabel=d(()=>this.inputs().label??"");static \u0275fac=function(n){return new(n||e)};static \u0275cmp=A({type:e,selectors:[["sm-node-icon"]],inputs:{inputs:[1,"inputs"]},decls:2,vars:12,consts:[[1,"vc-icon",3,"pTooltip"],["hostClass","vc-icon__glyph",3,"icon"]],template:function(n,o){n&1&&(I(0,"span",0),ee(1,"sm-icon",1),D()),n&2&&(te("vc-icon--info",o.severity()==="info")("vc-icon--warn",o.severity()==="warn")("vc-icon--success",o.severity()==="success")("vc-icon--danger",o.severity()==="danger"),$("pTooltip",o.resolvedTooltip()),k("aria-label",o.ariaLabel())("data-testid","renderer-node-icon"),p(),$("icon",o.icon()))},dependencies:[H,V,oe],styles:[".vc-icon[_ngcontent-%COMP%]{display:inline-flex;align-items:center;justify-content:center;line-height:1;width:22px;height:22px}.vc-icon__glyph[_ngcontent-%COMP%]{font-size:.7rem;line-height:1;display:block}.vc-icon--info[_ngcontent-%COMP%]{color:var(--sm-severity-info)}.vc-icon--warn[_ngcontent-%COMP%]{color:var(--sm-severity-warn)}.vc-icon--success[_ngcontent-%COMP%]{color:var(--sm-severity-success)}.vc-icon--danger[_ngcontent-%COMP%]{color:var(--sm-severity-error)}"],changeDetection:0})}return e})();function Wi(e,i){if(e&1&&(I(0,"span",3),C(1),D()),e&2){let t=h();p(),M(t.label())}}var Jt=(()=>{class e{inputs=P.required();typed=d(()=>{let t=this.inputs().payload;return typeof t!="object"||t===null?{value:""}:t});value=d(()=>String(this.typed().value??""));label=d(()=>this.typed().label??this.inputs().label);icon=d(()=>this.inputs().icon);severity=d(()=>this.typed().severity);resolvedTooltip=d(()=>this.typed().tooltip??this.inputs().tooltip??"");static \u0275fac=function(n){return new(n||e)};static \u0275cmp=A({type:e,selectors:[["sm-scope-stat"]],inputs:{inputs:[1,"inputs"]},decls:5,vars:13,consts:[[1,"vc-stat",3,"pTooltip"],["hostClass","vc-stat__icon",3,"icon"],[1,"vc-stat__value"],[1,"vc-stat__label"]],template:function(n,o){n&1&&(I(0,"span",0),ee(1,"sm-icon",1),I(2,"span",2),C(3),D(),N(4,Wi,2,1,"span",3),D()),n&2&&(te("vc-stat--info",o.severity()==="info")("vc-stat--warn",o.severity()==="warn")("vc-stat--success",o.severity()==="success")("vc-stat--danger",o.severity()==="danger"),$("pTooltip",o.resolvedTooltip()),k("data-testid","renderer-scope-stat"),p(),$("icon",o.icon()),p(2),M(o.value()),p(),E(o.label()?4:-1))},dependencies:[H,V,oe],styles:[".vc-stat[_ngcontent-%COMP%]{display:inline-flex;align-items:center;gap:.25rem;padding:.125rem .5rem;border-radius:.75rem;font-size:.85rem;background:var(--p-surface-100);color:var(--p-surface-800)}.vc-stat__label[_ngcontent-%COMP%]{color:var(--p-surface-500);font-size:.8rem}.vc-stat--info[_ngcontent-%COMP%]{background:var(--p-blue-100);color:var(--p-blue-700)}.vc-stat--warn[_ngcontent-%COMP%]{background:var(--p-yellow-100);color:var(--p-yellow-800)}.vc-stat--success[_ngcontent-%COMP%]{background:var(--p-green-100);color:var(--p-green-700)}.vc-stat--danger[_ngcontent-%COMP%]{background:var(--p-red-100);color:var(--p-red-700)}"],changeDetection:0})}return e})();var Ke={"card.title.right":Zt,"card.subtitle.left":Oe,"card.footer.left":Oe,"card.footer.right":Oe,"graph.node.alert":Qt,"inspector.header.badge":Vt,"inspector.action.button":Wt,"inspector.body.panel.breakdown":Lt,"inspector.body.panel.records":zt,"inspector.body.panel.tree":qt,"inspector.body.panel.key-values":Rt,"inspector.body.panel.link-list":jt,"inspector.body.panel.markdown":Kt,"topbar.nav.start":Jt};function en(e){return e in Ke}var Za=new Set(["inspector.body.panel.breakdown","inspector.body.panel.records","inspector.body.panel.tree","inspector.body.panel.key-values","inspector.body.panel.link-list","inspector.body.panel.markdown"]),le={"topbar.nav.start":{id:"topbar.nav.start",cardinality:"multi",maxItems:3,order:"alphabetical",strategy:"append"},"inspector.header.badge":{id:"inspector.header.badge",cardinality:"multi",maxItems:4,order:"priority",strategy:"append",respectSeverity:!0},"inspector.action.button":{id:"inspector.action.button",cardinality:"multi",order:"priority",strategy:"append",respectSeverity:!0},"inspector.body.panel.breakdown":{id:"inspector.body.panel.breakdown",cardinality:"multi",maxItems:50,order:"alphabetical",strategy:"append"},"inspector.body.panel.records":{id:"inspector.body.panel.records",cardinality:"multi",maxItems:50,order:"alphabetical",strategy:"append"},"inspector.body.panel.tree":{id:"inspector.body.panel.tree",cardinality:"multi",maxItems:50,order:"alphabetical",strategy:"append"},"inspector.body.panel.key-values":{id:"inspector.body.panel.key-values",cardinality:"multi",maxItems:50,order:"alphabetical",strategy:"append"},"inspector.body.panel.link-list":{id:"inspector.body.panel.link-list",cardinality:"multi",maxItems:50,order:"alphabetical",strategy:"append"},"inspector.body.panel.markdown":{id:"inspector.body.panel.markdown",cardinality:"multi",maxItems:50,order:"alphabetical",strategy:"append"},"card.footer.left":{id:"card.footer.left",cardinality:"multi",maxItems:5,order:"priority",strategy:"append",respectSeverity:!0},"card.footer.right":{id:"card.footer.right",cardinality:"multi",maxItems:5,order:"priority",strategy:"append",respectSeverity:!0},"card.subtitle.left":{id:"card.subtitle.left",cardinality:"multi",maxItems:3,order:"priority",strategy:"append",respectSeverity:!0},"card.title.right":{id:"card.title.right",cardinality:"multi",maxItems:2,order:"priority",strategy:"append",respectSeverity:!0},"graph.node.alert":{id:"graph.node.alert",cardinality:"multi",maxItems:1,order:"severity",strategy:"append",showOverflowBadge:!1}};function tn(e,i,t,n){let o=le[i].respectSeverity!==!1,r=e.payload;if(!o&&typeof r=="object"&&r!==null&&"severity"in r){let a=r,{severity:c}=a;r=ct(a,["severity"])}let s={pluginId:e.pluginId,extensionId:e.extensionId,contributionId:e.contributionId,nodePath:t,payload:r};return n?.label&&(s.label=n.label),n?.tooltip&&(s.tooltip=n.tooltip),n?.icon&&(s.icon=n.icon),n?.emptyText&&(s.emptyText=n.emptyText),s}var Xi=e=>({inputs:e}),qi=(e,i)=>i.qualifiedId;function Qi(e,i){e&1&&_t(0)}function Zi(e,i){if(e&1&&(I(0,"span",1),ut(1,Qi,1,0,"ng-container",3),D()),e&2){let t=i.$implicit,n=h(2);k("data-testid","contribution-"+t.qualifiedId.replaceAll("/","-")),p(),$("ngComponentOutlet",n.rendererFor(t.slot))("ngComponentOutletInputs",Ct(3,Xi,t.rendererInputs))}}function Ji(e,i){if(e&1&&(I(0,"span",2),C(1),D()),e&2){let t=h(2);$("pTooltip",t.overflowTooltip()),p(),Ee(" ",t.overflowBadge()," ")}}function eo(e,i){if(e&1&&(I(0,"span",0),W(1,Zi,2,5,"span",1,qi),N(3,Ji,2,2,"span",2),D()),e&2){let t=h();k("data-testid","view-contributions-host-"+t.testidSuffix()),p(),X(t.visible()),p(2),E(t.overflowCount()>0&&t.showOverflowBadge()?3:-1)}}var ms=(()=>{class e{slot=P.required();node=P(null);debugSlots=K(Ft);debugVisible=this.debugSlots.visible;testidSuffix=d(()=>this.slot().replaceAll(".","-"));registry=K($t);dispatched=d(()=>{let t=this.node();if(!t)return[];let n=t.contributions??[];if(n.length===0)return[];let o=this.slot(),r=n.filter(s=>s.slot===o).filter(s=>en(s.slot));return this.sortBySlotOrder(r,o).map(s=>({qualifiedId:`${s.pluginId}/${s.extensionId}/${s.contributionId}`,slot:s.slot,rendererInputs:this.buildInputs(s,o,t.path)}))});visible=d(()=>{let t=this.dispatched(),n=le[this.slot()].maxItems;return n===void 0?t:t.slice(0,n)});debugTitle=d(()=>{if(!this.debugVisible())return null;let t=this.dispatched();return t.length===0?null:t.map(n=>n.qualifiedId).join(`
2
+ `)});overflowCount=d(()=>{let t=this.dispatched(),n=le[this.slot()].maxItems;return n===void 0?0:Math.max(0,t.length-n)});showOverflowBadge=d(()=>le[this.slot()].showOverflowBadge!==!1);overflowBadge=d(()=>G.overflowBadge(this.overflowCount()));overflowTooltip=d(()=>{let t=this.dispatched(),n=le[this.slot()].maxItems;if(n===void 0)return"";let o=t.slice(n).map(r=>r.qualifiedId).join(", ");return G.overflowTooltip(o)});rendererFor(t){return Ke[t]}buildInputs(t,n,o){let r=`${t.pluginId}/${t.extensionId}/${t.contributionId}`;return tn(t,n,o,this.registry.get(r))}sortBySlotOrder(t,n){let o=le[n].order;return o==="fifo"?t.slice():o==="priority"?t.slice().sort((r,s)=>{let a=this.priorityFor(r),c=this.priorityFor(s);return a!==c?a-c:Ue(r,s)}):o==="severity"?t.slice().sort((r,s)=>{let a=nn(r),c=nn(s);return a!==c?c-a:Ue(r,s)}):t.slice().sort(Ue)}priorityFor(t){let n=`${t.pluginId}/${t.extensionId}/${t.contributionId}`;return this.registry.get(n)?.priority??100}static \u0275fac=function(n){return new(n||e)};static \u0275cmp=A({type:e,selectors:[["sm-view-contributions-host"]],hostVars:4,hostBindings:function(n,o){n&2&&(k("data-debug-slot",o.debugVisible()?o.slot():null)("title",o.debugTitle()),te("sm-debug-slot",o.debugVisible()))},inputs:{slot:[1,"slot"],node:[1,"node"]},decls:1,vars:1,consts:[[1,"vch"],[1,"vch__slot"],["data-testid","view-contributions-host-overflow",1,"vch__overflow",3,"pTooltip"],[4,"ngComponentOutlet","ngComponentOutletInputs"]],template:function(n,o){n&1&&N(0,eo,4,2,"span",0),n&2&&E(o.visible().length>0||o.overflowCount()>0?0:-1)},dependencies:[wt,H,V],styles:["[_nghost-%COMP%]{display:contents}.vch[_ngcontent-%COMP%]{display:inline-flex;align-items:center;gap:.7rem;flex-wrap:wrap}.vch__slot[_ngcontent-%COMP%]{display:inline-flex}.vch__overflow[_ngcontent-%COMP%]{display:inline-flex;align-items:center;padding:.125rem .5rem;border-radius:.75rem;background:var(--p-surface-100);color:var(--p-surface-600);font-size:.8rem;cursor:default}"],changeDetection:0})}return e})();function Ue(e,i){let t=`${e.pluginId}/${e.extensionId}/${e.contributionId}`,n=`${i.pluginId}/${i.extensionId}/${i.contributionId}`;return t<n?-1:t>n?1:0}function nn(e){let i=e.payload;if(typeof i!="object"||i===null)return 0;switch(i.severity){case"danger":return 4;case"warn":return 3;case"info":return 2;case"success":return 1;default:return 0}}var vs="https://bb9dce0fd2cb4ab27ac0475aa394aeb4@o4511475590037504.ingest.de.sentry.io/4511475725959248",Ve="phc_vMX3PcNeDsacWNg2hYEbKVXDijSWcjKFzabCkzU7RNEr",on="https://eu.i.posthog.com";var to="<HOME>",no=["server_name","user"],io=[/[A-Za-z]:[\\/]Users[\\/][^\\/\s:*?"<>|]+/g,/\/(?:home|Users)\/[^/\s:]+/g,/\/root(?=\/|\b)/g];function oo(e){let i=e;for(let t of io)i=i.replace(t,to);return i}function rn(e){let i=He(e);if(i!==null&&typeof i=="object"&&!Array.isArray(i)){let t=i;for(let n of no)n in t&&delete t[n]}return i}function He(e){if(typeof e=="string")return oo(e);if(Array.isArray(e))return e.map(i=>He(i));if(e!==null&&typeof e=="object"){let i={};for(let[t,n]of Object.entries(e))i[t]=He(n);return i}return e}var an=!1,ye=null;async function bs(e){if(an||Ve===""||!e.consentEnabled||e.distinctId===null)return;let{default:i}=await import("./chunk-P3SNMV4X.js");i.init(Ve,{api_host:on,autocapture:!1,capture_pageview:!1,capture_pageleave:!1,disable_session_recording:!0,person_profiles:"identified_only",bootstrap:{distinctID:e.distinctId},before_send:t=>t===null?null:rn(t)}),ye=i,an=!0}function Ge(e,i={}){ye!==null&&ye.capture(e,i)}function sn(e){ye!==null&&ye.register(e)}var ks=(()=>{class e{router=K(Se);theme=K(kt);destroyRef=K(pt);constructor(){this.router.events.pipe(Et(this.destroyRef)).subscribe(t=>{if(t instanceof Tt){let n=ro(t.urlAfterRedirects);n!==null&&Ge(`ui.view.${n}`)}}),Me(()=>this.syncTheme())}trackFeature(t){Ge(`ui.feature.${t}`)}syncTheme(){sn({theme_base:this.theme.resolved(),theme_extra:this.theme.extraTheme()??"none"})}static \u0275fac=function(n){return new(n||e)};static \u0275prov=Q({token:e,factory:e.\u0275fac,providedIn:"root"})}return e})();function ro(e){return(e.split("?")[0]??"")==="/"?"workspace":null}function Ye(e,i){var t,n=1;e==null&&(e=0),i==null&&(i=0);function o(){var r,s=t.length,a,c=0,l=0;for(r=0;r<s;++r)a=t[r],c+=a.x,l+=a.y;for(c=(c/s-e)*n,l=(l/s-i)*n,r=0;r<s;++r)a=t[r],a.x-=c,a.y-=l}return o.initialize=function(r){t=r},o.x=function(r){return arguments.length?(e=+r,o):e},o.y=function(r){return arguments.length?(i=+r,o):i},o.strength=function(r){return arguments.length?(n=+r,o):n},o}function cn(e){let i=+this._x.call(null,e),t=+this._y.call(null,e);return ln(this.cover(i,t),i,t,e)}function ln(e,i,t,n){if(isNaN(i)||isNaN(t))return e;var o,r=e._root,s={data:n},a=e._x0,c=e._y0,l=e._x1,f=e._y1,y,_,m,w,g,u,v,x;if(!r)return e._root=s,e;for(;r.length;)if((g=i>=(y=(a+l)/2))?a=y:l=y,(u=t>=(_=(c+f)/2))?c=_:f=_,o=r,!(r=r[v=u<<1|g]))return o[v]=s,e;if(m=+e._x.call(null,r.data),w=+e._y.call(null,r.data),i===m&&t===w)return s.next=r,o?o[v]=s:e._root=s,e;do o=o?o[v]=new Array(4):e._root=new Array(4),(g=i>=(y=(a+l)/2))?a=y:l=y,(u=t>=(_=(c+f)/2))?c=_:f=_;while((v=u<<1|g)===(x=(w>=_)<<1|m>=y));return o[x]=r,o[v]=s,e}function dn(e){var i,t,n=e.length,o,r,s=new Array(n),a=new Array(n),c=1/0,l=1/0,f=-1/0,y=-1/0;for(t=0;t<n;++t)isNaN(o=+this._x.call(null,i=e[t]))||isNaN(r=+this._y.call(null,i))||(s[t]=o,a[t]=r,o<c&&(c=o),o>f&&(f=o),r<l&&(l=r),r>y&&(y=r));if(c>f||l>y)return this;for(this.cover(c,l).cover(f,y),t=0;t<n;++t)ln(this,s[t],a[t],e[t]);return this}function pn(e,i){if(isNaN(e=+e)||isNaN(i=+i))return this;var t=this._x0,n=this._y0,o=this._x1,r=this._y1;if(isNaN(t))o=(t=Math.floor(e))+1,r=(n=Math.floor(i))+1;else{for(var s=o-t||1,a=this._root,c,l;t>e||e>=o||n>i||i>=r;)switch(l=(i<n)<<1|e<t,c=new Array(4),c[l]=a,a=c,s*=2,l){case 0:o=t+s,r=n+s;break;case 1:t=o-s,r=n+s;break;case 2:o=t+s,n=r-s;break;case 3:t=o-s,n=r-s;break}this._root&&this._root.length&&(this._root=a)}return this._x0=t,this._y0=n,this._x1=o,this._y1=r,this}function un(){var e=[];return this.visit(function(i){if(!i.length)do e.push(i.data);while(i=i.next)}),e}function fn(e){return arguments.length?this.cover(+e[0][0],+e[0][1]).cover(+e[1][0],+e[1][1]):isNaN(this._x0)?void 0:[[this._x0,this._y0],[this._x1,this._y1]]}function U(e,i,t,n,o){this.node=e,this.x0=i,this.y0=t,this.x1=n,this.y1=o}function mn(e,i,t){var n,o=this._x0,r=this._y0,s,a,c,l,f=this._x1,y=this._y1,_=[],m=this._root,w,g;for(m&&_.push(new U(m,o,r,f,y)),t==null?t=1/0:(o=e-t,r=i-t,f=e+t,y=i+t,t*=t);w=_.pop();)if(!(!(m=w.node)||(s=w.x0)>f||(a=w.y0)>y||(c=w.x1)<o||(l=w.y1)<r))if(m.length){var u=(s+c)/2,v=(a+l)/2;_.push(new U(m[3],u,v,c,l),new U(m[2],s,v,u,l),new U(m[1],u,a,c,v),new U(m[0],s,a,u,v)),(g=(i>=v)<<1|e>=u)&&(w=_[_.length-1],_[_.length-1]=_[_.length-1-g],_[_.length-1-g]=w)}else{var x=e-+this._x.call(null,m.data),O=i-+this._y.call(null,m.data),b=x*x+O*O;if(b<t){var L=Math.sqrt(t=b);o=e-L,r=i-L,f=e+L,y=i+L,n=m.data}}return n}function gn(e){if(isNaN(f=+this._x.call(null,e))||isNaN(y=+this._y.call(null,e)))return this;var i,t=this._root,n,o,r,s=this._x0,a=this._y0,c=this._x1,l=this._y1,f,y,_,m,w,g,u,v;if(!t)return this;if(t.length)for(;;){if((w=f>=(_=(s+c)/2))?s=_:c=_,(g=y>=(m=(a+l)/2))?a=m:l=m,i=t,!(t=t[u=g<<1|w]))return this;if(!t.length)break;(i[u+1&3]||i[u+2&3]||i[u+3&3])&&(n=i,v=u)}for(;t.data!==e;)if(o=t,!(t=t.next))return this;return(r=t.next)&&delete t.next,o?(r?o.next=r:delete o.next,this):i?(r?i[u]=r:delete i[u],(t=i[0]||i[1]||i[2]||i[3])&&t===(i[3]||i[2]||i[1]||i[0])&&!t.length&&(n?n[v]=t:this._root=t),this):(this._root=r,this)}function vn(e){for(var i=0,t=e.length;i<t;++i)this.remove(e[i]);return this}function hn(){return this._root}function _n(){var e=0;return this.visit(function(i){if(!i.length)do++e;while(i=i.next)}),e}function yn(e){var i=[],t,n=this._root,o,r,s,a,c;for(n&&i.push(new U(n,this._x0,this._y0,this._x1,this._y1));t=i.pop();)if(!e(n=t.node,r=t.x0,s=t.y0,a=t.x1,c=t.y1)&&n.length){var l=(r+a)/2,f=(s+c)/2;(o=n[3])&&i.push(new U(o,l,f,a,c)),(o=n[2])&&i.push(new U(o,r,f,l,c)),(o=n[1])&&i.push(new U(o,l,s,a,f)),(o=n[0])&&i.push(new U(o,r,s,l,f))}return this}function xn(e){var i=[],t=[],n;for(this._root&&i.push(new U(this._root,this._x0,this._y0,this._x1,this._y1));n=i.pop();){var o=n.node;if(o.length){var r,s=n.x0,a=n.y0,c=n.x1,l=n.y1,f=(s+c)/2,y=(a+l)/2;(r=o[0])&&i.push(new U(r,s,a,f,y)),(r=o[1])&&i.push(new U(r,f,a,c,y)),(r=o[2])&&i.push(new U(r,s,y,f,l)),(r=o[3])&&i.push(new U(r,f,y,c,l))}t.push(n)}for(;n=t.pop();)e(n.node,n.x0,n.y0,n.x1,n.y1);return this}function bn(e){return e[0]}function Cn(e){return arguments.length?(this._x=e,this):this._x}function wn(e){return e[1]}function Tn(e){return arguments.length?(this._y=e,this):this._y}function ue(e,i,t){var n=new We(i??bn,t??wn,NaN,NaN,NaN,NaN);return e==null?n:n.addAll(e)}function We(e,i,t,n,o,r){this._x=e,this._y=i,this._x0=t,this._y0=n,this._x1=o,this._y1=r,this._root=void 0}function Mn(e){for(var i={data:e.data},t=i;e=e.next;)t=t.next={data:e.data};return i}var q=ue.prototype=We.prototype;q.copy=function(){var e=new We(this._x,this._y,this._x0,this._y0,this._x1,this._y1),i=this._root,t,n;if(!i)return e;if(!i.length)return e._root=Mn(i),e;for(t=[{source:i,target:e._root=new Array(4)}];i=t.pop();)for(var o=0;o<4;++o)(n=i.source[o])&&(n.length?t.push({source:n,target:i.target[o]=new Array(4)}):i.target[o]=Mn(n));return e};q.add=cn;q.addAll=dn;q.cover=pn;q.data=un;q.extent=fn;q.find=mn;q.remove=gn;q.removeAll=vn;q.root=hn;q.size=_n;q.visit=yn;q.visitAfter=xn;q.x=Cn;q.y=Tn;function j(e){return function(){return e}}function ie(e){return(e()-.5)*1e-6}function ao(e){return e.x+e.vx}function so(e){return e.y+e.vy}function Xe(e){var i,t,n,o=1,r=1;typeof e!="function"&&(e=j(e==null?1:+e));function s(){for(var l,f=i.length,y,_,m,w,g,u,v=0;v<r;++v)for(y=ue(i,ao,so).visitAfter(a),l=0;l<f;++l)_=i[l],g=t[_.index],u=g*g,m=_.x+_.vx,w=_.y+_.vy,y.visit(x);function x(O,b,L,Y,J){var B=O.data,ne=O.r,z=g+ne;if(B){if(B.index>_.index){var se=m-B.x-B.vx,ce=w-B.y-B.vy,re=se*se+ce*ce;re<z*z&&(se===0&&(se=ie(n),re+=se*se),ce===0&&(ce=ie(n),re+=ce*ce),re=(z-(re=Math.sqrt(re)))/re*o,_.vx+=(se*=re)*(z=(ne*=ne)/(u+ne)),_.vy+=(ce*=re)*z,B.vx-=se*(z=1-z),B.vy-=ce*z)}return}return b>m+z||Y<m-z||L>w+z||J<w-z}}function a(l){if(l.data)return l.r=t[l.data.index];for(var f=l.r=0;f<4;++f)l[f]&&l[f].r>l.r&&(l.r=l[f].r)}function c(){if(i){var l,f=i.length,y;for(t=new Array(f),l=0;l<f;++l)y=i[l],t[y.index]=+e(y,l,i)}}return s.initialize=function(l,f){i=l,n=f,c()},s.iterations=function(l){return arguments.length?(r=+l,s):r},s.strength=function(l){return arguments.length?(o=+l,s):o},s.radius=function(l){return arguments.length?(e=typeof l=="function"?l:j(+l),c(),s):e},s}function co(e){return e.index}function Nn(e,i){var t=e.get(i);if(!t)throw new Error("node not found: "+i);return t}function qe(e){var i=co,t=y,n,o=j(30),r,s,a,c,l,f=1;e==null&&(e=[]);function y(u){return 1/Math.min(a[u.source.index],a[u.target.index])}function _(u){for(var v=0,x=e.length;v<f;++v)for(var O=0,b,L,Y,J,B,ne,z;O<x;++O)b=e[O],L=b.source,Y=b.target,J=Y.x+Y.vx-L.x-L.vx||ie(l),B=Y.y+Y.vy-L.y-L.vy||ie(l),ne=Math.sqrt(J*J+B*B),ne=(ne-r[O])/ne*u*n[O],J*=ne,B*=ne,Y.vx-=J*(z=c[O]),Y.vy-=B*z,L.vx+=J*(z=1-z),L.vy+=B*z}function m(){if(s){var u,v=s.length,x=e.length,O=new Map(s.map((L,Y)=>[i(L,Y,s),L])),b;for(u=0,a=new Array(v);u<x;++u)b=e[u],b.index=u,typeof b.source!="object"&&(b.source=Nn(O,b.source)),typeof b.target!="object"&&(b.target=Nn(O,b.target)),a[b.source.index]=(a[b.source.index]||0)+1,a[b.target.index]=(a[b.target.index]||0)+1;for(u=0,c=new Array(x);u<x;++u)b=e[u],c[u]=a[b.source.index]/(a[b.source.index]+a[b.target.index]);n=new Array(x),w(),r=new Array(x),g()}}function w(){if(s)for(var u=0,v=e.length;u<v;++u)n[u]=+t(e[u],u,e)}function g(){if(s)for(var u=0,v=e.length;u<v;++u)r[u]=+o(e[u],u,e)}return _.initialize=function(u,v){s=u,l=v,m()},_.links=function(u){return arguments.length?(e=u,m(),_):e},_.id=function(u){return arguments.length?(i=u,_):i},_.iterations=function(u){return arguments.length?(f=+u,_):f},_.strength=function(u){return arguments.length?(t=typeof u=="function"?u:j(+u),w(),_):t},_.distance=function(u){return arguments.length?(o=typeof u=="function"?u:j(+u),g(),_):o},_}var lo={value:()=>{}};function Sn(){for(var e=0,i=arguments.length,t={},n;e<i;++e){if(!(n=arguments[e]+"")||n in t||/[\s.]/.test(n))throw new Error("illegal type: "+n);t[n]=[]}return new Ie(t)}function Ie(e){this._=e}function po(e,i){return e.trim().split(/^|\s+/).map(function(t){var n="",o=t.indexOf(".");if(o>=0&&(n=t.slice(o+1),t=t.slice(0,o)),t&&!i.hasOwnProperty(t))throw new Error("unknown type: "+t);return{type:t,name:n}})}Ie.prototype=Sn.prototype={constructor:Ie,on:function(e,i){var t=this._,n=po(e+"",t),o,r=-1,s=n.length;if(arguments.length<2){for(;++r<s;)if((o=(e=n[r]).type)&&(o=uo(t[o],e.name)))return o;return}if(i!=null&&typeof i!="function")throw new Error("invalid callback: "+i);for(;++r<s;)if(o=(e=n[r]).type)t[o]=En(t[o],e.name,i);else if(i==null)for(o in t)t[o]=En(t[o],e.name,null);return this},copy:function(){var e={},i=this._;for(var t in i)e[t]=i[t].slice();return new Ie(e)},call:function(e,i){if((o=arguments.length-2)>0)for(var t=new Array(o),n=0,o,r;n<o;++n)t[n]=arguments[n+2];if(!this._.hasOwnProperty(e))throw new Error("unknown type: "+e);for(r=this._[e],n=0,o=r.length;n<o;++n)r[n].value.apply(i,t)},apply:function(e,i,t){if(!this._.hasOwnProperty(e))throw new Error("unknown type: "+e);for(var n=this._[e],o=0,r=n.length;o<r;++o)n[o].value.apply(i,t)}};function uo(e,i){for(var t=0,n=e.length,o;t<n;++t)if((o=e[t]).name===i)return o.value}function En(e,i,t){for(var n=0,o=e.length;n<o;++n)if(e[n].name===i){e[n]=lo,e=e.slice(0,n).concat(e.slice(n+1));break}return t!=null&&e.push({name:i,value:t}),e}var Qe=Sn;var ve=0,be=0,xe=0,Dn=1e3,Pe,Ce,Ae=0,fe=0,Fe=0,we=typeof performance=="object"&&performance.now?performance:Date,On=typeof window=="object"&&window.requestAnimationFrame?window.requestAnimationFrame.bind(window):function(e){setTimeout(e,17)};function et(){return fe||(On(fo),fe=we.now()+Fe)}function fo(){fe=0}function Ze(){this._call=this._time=this._next=null}Ze.prototype=$e.prototype={constructor:Ze,restart:function(e,i,t){if(typeof e!="function")throw new TypeError("callback is not a function");t=(t==null?et():+t)+(i==null?0:+i),!this._next&&Ce!==this&&(Ce?Ce._next=this:Pe=this,Ce=this),this._call=e,this._time=t,Je()},stop:function(){this._call&&(this._call=null,this._time=1/0,Je())}};function $e(e,i,t){var n=new Ze;return n.restart(e,i,t),n}function In(){et(),++ve;for(var e=Pe,i;e;)(i=fe-e._time)>=0&&e._call.call(void 0,i),e=e._next;--ve}function kn(){fe=(Ae=we.now())+Fe,ve=be=0;try{In()}finally{ve=0,go(),fe=0}}function mo(){var e=we.now(),i=e-Ae;i>Dn&&(Fe-=i,Ae=e)}function go(){for(var e,i=Pe,t,n=1/0;i;)i._call?(n>i._time&&(n=i._time),e=i,i=i._next):(t=i._next,i._next=null,i=e?e._next=t:Pe=t);Ce=e,Je(n)}function Je(e){if(!ve){be&&(be=clearTimeout(be));var i=e-fe;i>24?(e<1/0&&(be=setTimeout(kn,e-we.now()-Fe)),xe&&(xe=clearInterval(xe))):(xe||(Ae=we.now(),xe=setInterval(mo,Dn)),ve=1,On(kn))}}function Pn(){let e=1;return()=>(e=(1664525*e+1013904223)%4294967296)/4294967296}function An(e){return e.x}function Fn(e){return e.y}var vo=10,ho=Math.PI*(3-Math.sqrt(5));function tt(e){var i,t=1,n=.001,o=1-Math.pow(n,1/300),r=0,s=.6,a=new Map,c=$e(y),l=Qe("tick","end"),f=Pn();e==null&&(e=[]);function y(){_(),l.call("tick",i),t<n&&(c.stop(),l.call("end",i))}function _(g){var u,v=e.length,x;g===void 0&&(g=1);for(var O=0;O<g;++O)for(t+=(r-t)*o,a.forEach(function(b){b(t)}),u=0;u<v;++u)x=e[u],x.fx==null?x.x+=x.vx*=s:(x.x=x.fx,x.vx=0),x.fy==null?x.y+=x.vy*=s:(x.y=x.fy,x.vy=0);return i}function m(){for(var g=0,u=e.length,v;g<u;++g){if(v=e[g],v.index=g,v.fx!=null&&(v.x=v.fx),v.fy!=null&&(v.y=v.fy),isNaN(v.x)||isNaN(v.y)){var x=vo*Math.sqrt(.5+g),O=g*ho;v.x=x*Math.cos(O),v.y=x*Math.sin(O)}(isNaN(v.vx)||isNaN(v.vy))&&(v.vx=v.vy=0)}}function w(g){return g.initialize&&g.initialize(e,f),g}return m(),i={tick:_,restart:function(){return c.restart(y),i},stop:function(){return c.stop(),i},nodes:function(g){return arguments.length?(e=g,m(),a.forEach(w),i):e},alpha:function(g){return arguments.length?(t=+g,i):t},alphaMin:function(g){return arguments.length?(n=+g,i):n},alphaDecay:function(g){return arguments.length?(o=+g,i):+o},alphaTarget:function(g){return arguments.length?(r=+g,i):r},velocityDecay:function(g){return arguments.length?(s=1-g,i):1-s},randomSource:function(g){return arguments.length?(f=g,a.forEach(w),i):f},force:function(g,u){return arguments.length>1?(u==null?a.delete(g):a.set(g,w(u)),i):a.get(g)},find:function(g,u,v){var x=0,O=e.length,b,L,Y,J,B;for(v==null?v=1/0:v*=v,x=0;x<O;++x)J=e[x],b=g-J.x,L=u-J.y,Y=b*b+L*L,Y<v&&(B=J,v=Y);return B},on:function(g,u){return arguments.length>1?(l.on(g,u),i):l.on(g)}}}function nt(){var e,i,t,n,o=j(-30),r,s=1,a=1/0,c=.81;function l(m){var w,g=e.length,u=ue(e,An,Fn).visitAfter(y);for(n=m,w=0;w<g;++w)i=e[w],u.visit(_)}function f(){if(e){var m,w=e.length,g;for(r=new Array(w),m=0;m<w;++m)g=e[m],r[g.index]=+o(g,m,e)}}function y(m){var w=0,g,u,v=0,x,O,b;if(m.length){for(x=O=b=0;b<4;++b)(g=m[b])&&(u=Math.abs(g.value))&&(w+=g.value,v+=u,x+=u*g.x,O+=u*g.y);m.x=x/v,m.y=O/v}else{g=m,g.x=g.data.x,g.y=g.data.y;do w+=r[g.data.index];while(g=g.next)}m.value=w}function _(m,w,g,u){if(!m.value)return!0;var v=m.x-i.x,x=m.y-i.y,O=u-w,b=v*v+x*x;if(O*O/c<b)return b<a&&(v===0&&(v=ie(t),b+=v*v),x===0&&(x=ie(t),b+=x*x),b<s&&(b=Math.sqrt(s*b)),i.vx+=v*m.value*n/b,i.vy+=x*m.value*n/b),!0;if(m.length||b>=a)return;(m.data!==i||m.next)&&(v===0&&(v=ie(t),b+=v*v),x===0&&(x=ie(t),b+=x*x),b<s&&(b=Math.sqrt(s*b)));do m.data!==i&&(O=r[m.data.index]*n/b,i.vx+=v*O,i.vy+=x*O);while(m=m.next)}return l.initialize=function(m,w){e=m,t=w,f()},l.strength=function(m){return arguments.length?(o=typeof m=="function"?m:j(+m),f(),l):o},l.distanceMin=function(m){return arguments.length?(s=m*m,l):Math.sqrt(s)},l.distanceMax=function(m){return arguments.length?(a=m*m,l):Math.sqrt(a)},l.theta=function(m){return arguments.length?(c=m*m,l):Math.sqrt(c)},l}function it(e){var i=j(.1),t,n,o;typeof e!="function"&&(e=j(e==null?0:+e));function r(a){for(var c=0,l=t.length,f;c<l;++c)f=t[c],f.vx+=(o[c]-f.x)*n[c]*a}function s(){if(t){var a,c=t.length;for(n=new Array(c),o=new Array(c),a=0;a<c;++a)n[a]=isNaN(o[a]=+e(t[a],a,t))?0:+i(t[a],a,t)}}return r.initialize=function(a){t=a,s()},r.strength=function(a){return arguments.length?(i=typeof a=="function"?a:j(+a),s(),r):i},r.x=function(a){return arguments.length?(e=typeof a=="function"?a:j(+a),s(),r):e},r}function ot(e){var i=j(.1),t,n,o;typeof e!="function"&&(e=j(e==null?0:+e));function r(a){for(var c=0,l=t.length,f;c<l;++c)f=t[c],f.vy+=(o[c]-f.y)*n[c]*a}function s(){if(t){var a,c=t.length;for(n=new Array(c),o=new Array(c),a=0;a<c;++a)n[a]=isNaN(o[a]=+e(t[a],a,t))?0:+i(t[a],a,t)}}return r.initialize=function(a){t=a,s()},r.strength=function(a){return arguments.length?(i=typeof a=="function"?a:j(+a),s(),r):i},r.y=function(a){return arguments.length?(e=typeof a=="function"?a:j(+a),s(),r):e},r}var _o=["network-simplex","longest-path","force"];function Gc(e){return e!=="force"}var yo=["TOP_BOTTOM","BOTTOM_TOP","LEFT_RIGHT","RIGHT_LEFT"];var $n={compact:{nodeGap:40,layerGap:56},normal:{nodeGap:64,layerGap:96},spacious:{nodeGap:96,layerGap:144}},Yc="network-simplex",Wc="LEFT_RIGHT",Xc="normal";function qc(e){return typeof e=="string"&&_o.includes(e)}function Qc(e){return typeof e=="string"&&yo.includes(e)}var rt=260,Ln=120;function Rn(e){return e.resolvedTarget??e.target}function il(e,i){let t=i?.links??[],n=new Set(e.map(f=>f.path)),o=new Set,r=0,s=0,a=0,c=0,l=0;for(let f of t){if(!n.has(f.source)){r++;continue}let y=Rn(f);if(!n.has(y)){s++;continue}if(f.source===y){a++;continue}let _=jn(f.kind,f.source,y);if(o.has(_)){c++;continue}o.add(_),l++}return{raw:t.length,drawn:l,brokenSource:r,brokenTarget:s,selfLoops:a,duplicates:c}}function ol(e,i){let t=e.map(o=>o.path).sort(),n=i.map(o=>o.id).sort();return`${t.length}|${t.join(",")}|${n.length}|${n.join(",")}`}function rl(e,i){let t=new Set(e.map(c=>c.path)),n=new Map,o=i?.links??[];for(let c of o){if(!t.has(c.source))continue;let l=Rn(c);if(!t.has(l)||c.source===l)continue;let f=jn(c.kind,c.source,l),y=typeof c.confidence=="number"?c.confidence:.6,_=n.get(f);_?y>_.confidence&&(_.confidence=y):n.set(f,{id:f,from:c.source,to:l,kind:c.kind,confidence:y})}let r=[...n.values()],s=new Map;for(let c of e)s.set(c.path,c);let a=new Map;for(let c of i?.nodes??[])a.set(c.path,c);return{nodesByPath:s,apiNodesByPath:a,edges:r}}async function al(e,i,t,n){let o={width:rt,height:Ln},r=i.map(f=>({id:f.path,size:o})),s=t.map(f=>({source:f.from,target:f.to})),a=$n[n.spacing],c=await e.calculate(r,s,{algorithm:n.algorithm,direction:n.direction,nodeGap:a.nodeGap,layerGap:a.layerGap}),l=new Map;for(let{id:f,position:y}of c.nodes)l.set(f,{x:y.x,y:y.y});return l}function sl(e,i){let t=e.map(a=>({id:a.path})),n=i.map(a=>({source:a.from,target:a.to})),o=tt(t).force("link",qe(n).id(a=>a.id).distance(90).strength(1)).force("charge",nt().strength(-200)).force("center",Ye(0,0)).force("x",it(0).strength(.06)).force("y",ot(0).strength(.06)).force("collide",Xe(rt/2+12)).stop(),r=400;for(let a=0;a<r;a++)o.tick();let s=new Map;for(let a of t)s.set(a.id,{x:(a.x??0)-rt/2,y:(a.y??0)-Ln/2});return s}function cl(e,i,t,n=null){let o=e.edges.filter(c=>i.has(c.from)&&i.has(c.to)&&(n===null||n.has(c.kind))),r=new Map,s=new Map;for(let c of o)r.set(c.from,(r.get(c.from)??0)+1),s.set(c.to,(s.get(c.to)??0)+1);let a=[];for(let c of i){let l=e.nodesByPath.get(c);if(!l)continue;let f=e.apiNodesByPath.get(c),y=t.get(c),_=e.positions.get(c)??{x:0,y:0},m=y?{x:y.x,y:y.y}:_;a.push({id:c,path:c,view:l,kind:l.kind,position:m,stats:{linksIn:s.get(c)??0,linksOut:r.get(c)??0,bytesTotal:f?.bytes.total,tokensTotal:f?.tokens?.total,externalRefsCount:f?.externalRefsCount},summary:xo(l)})}return{nodes:a,edges:o}}function xo(e){let i={injectionDetected:!1,contentQuality:"clean"},t=(e.frontmatter.description??e.frontmatter.name??"").trim();return{kind:"markdown",confidence:.6,safety:i,whatItCovers:t||`${e.kind} entry`,topics:[],keyFacts:[]}}function jn(e,i,t){return`${e}:${i}::${t}`}var Bn={invalidHex:e=>`deriveTints: invalid hex color "${e}" (expected #RRGGBB)`};function Le(e,i,t){return[Math.round(e[0]+(i[0]-e[0])*t),Math.round(e[1]+(i[1]-e[1])*t),Math.round(e[2]+(i[2]-e[2])*t)]}function bo(e){let i=/^#([0-9a-f]{6})$/i.exec(e);if(!i)throw new Error(Bn.invalidHex(e));let t=parseInt(i[1],16);return[t>>16&255,t>>8&255,t&255]}function Re([e,i,t]){let n=o=>Math.max(0,Math.min(255,o)).toString(16).padStart(2,"0");return`#${n(e)}${n(i)}${n(t)}`}var zn=[255,255,255],Kn=[0,0,0];function at(e,i){let t=bo(e);return i==="light"?{bg:Re(Le(t,zn,.85)),fg:Re(Le(t,Kn,.5))}:{bg:Re(Le(t,Kn,.7)),fg:Re(Le(t,zn,.6))}}var Co=/^[a-zA-Z][a-zA-Z0-9_-]{0,63}$/,Un=/^#[0-9a-f]{6}$/i,hl=(()=>{class e{doc=K(dt);_entries=F([]);kinds=this._entries.asReadonly();index=d(()=>{let t=new Map;for(let n of this._entries())t.set(n.name,n);return t});ingest(t){if(!t)return;let n=[];for(let[r,s]of Object.entries(t)){if(!Co.test(r))continue;let a=s.providers[s.primaryProviderId];if(!a)continue;let c={name:r,primaryProviderId:s.primaryProviderId,providers:s.providers,label:a.label,color:a.color};a.colorDark!==void 0&&(c.colorDark=a.colorDark),a.emoji!==void 0&&(c.emoji=a.emoji),a.icon!==void 0&&(c.icon=a.icon),n.push(c)}let o=this._entries();To(o,n)||(this._entries.set(n),this.applyCssVars())}lookup(t){return this.index().get(t)}labelOf(t){return this.lookup(t)?.label??t}colorOf(t,n="light"){let o=this.lookup(t);return o?n==="dark"?o.colorDark??o.color:o.color:"#9ca3af"}iconOf(t){return this.lookup(t)?.icon}emojiOf(t){return this.lookup(t)?.emoji}providersOf(t){return this.lookup(t)?.providers}applyCssVars(){if(!this.doc.head)return;let t=wo(this.doc),n=[],o=[];for(let r of this._entries()){if(!Un.test(r.color))continue;let s=r.colorDark??r.color;if(Un.test(s))try{let a=at(r.color,"light"),c=at(s,"dark");n.push(`--sm-kind-${r.name}: ${r.color};`),n.push(`--sm-kind-${r.name}-bg: ${a.bg};`),n.push(`--sm-kind-${r.name}-fg: ${a.fg};`),o.push(`--sm-kind-${r.name}: ${s};`),o.push(`--sm-kind-${r.name}-bg: ${c.bg};`),o.push(`--sm-kind-${r.name}-fg: ${c.fg};`)}catch{continue}}t.textContent=`:root { ${n.join(" ")} } .app-dark { ${o.join(" ")} }`}static \u0275fac=function(n){return new(n||e)};static \u0275prov=Q({token:e,factory:e.\u0275fac,providedIn:"root"})}return e})(),Vn="sm-kind-vars";function wo(e){let i=e.getElementById(Vn);return i||(i=e.createElement("style"),i.id=Vn,e.head.appendChild(i)),i}function To(e,i){if(e.length!==i.length)return!1;for(let t=0;t<e.length;t++){let n=e[t],o=i[t];if(n.name!==o.name||n.primaryProviderId!==o.primaryProviderId||JSON.stringify(n.providers)!==JSON.stringify(o.providers))return!1}return!0}export{Eo as a,So as b,ko as c,Do as d,Ot as e,Oo as f,Io as g,Po as h,Ao as i,Fo as j,It as k,Bo as l,At as m,_o as n,Gc as o,yo as p,Yc as q,Wc as r,Xc as s,qc as t,Qc as u,hl as v,Ft as w,$t as x,oe as y,Gt as z,Ke as A,en as B,Za as C,tn as D,ms as E,vs as F,rn as G,bs as H,sn as I,ks as J,il as K,ol as L,rl as M,al as N,sl as O,cl as P};
@@ -1 +1 @@
1
- import{c as l,d,h as p}from"./chunk-XAM6VKXM.js";import{K as o,P as s,ga as r,sc as a}from"./chunk-Q2A6FWC7.js";import{a as c}from"./chunk-WCABR6TI.js";var S={triggerLabel:"Settings",triggerTooltip:"Settings",modalTitle:"Settings",closeLabel:"Close",sections:{plugins:"Plugins",general:"General",project:"Project",changelog:"Changelog",about:"About"},general:{heading:"General",intro:"Per-machine preferences.",loadErrorPrefix:"Could not load preferences:",saveErrorPrefix:"Could not save preferences:",toggles:{"updateCheck.enabled":{label:"Check for updates",description:"Check npm for newer @skill-map/cli releases."},telemetry:{label:"Send anonymous error & usage reports",description:"Report crashes and which features you use. No file contents or paths.",hint:"Restart sm for this to take effect."}},extraTheme:{label:"Theme",description:"Pick a specialty theme.",options:{none:{label:"None",description:"Use the topbar dark/light toggle."}}},storageHintLabel:"Settings are stored in:",storageHintPath:"~/.skill-map/settings.json"},project:{heading:"Project",introPrefix:"These settings apply only to this project and are saved in",introPath:".skill-map/settings.local.json",introSuffix:".",loadErrorPrefix:"Could not load project settings:",saveErrorPrefix:"Could not save project settings:",referencePathsLabel:"Folders for link validation",referencePathsDescription:"If your notes link to files outside this project, list those folders here. Skill-map checks them only to confirm the links work, nothing from these folders shows up in the map.",referencePathsPlaceholder:"~/Documents/research",referencePathsInputAriaLabel:"New folder path",commaForbidden:"Add one path at a time, without commas.",addPathLabel:"Add path",removePathLabel:"Remove",confirmDialogHeader:"Allow access to folders outside this project?",confirmDialogIntro:"This change lets the scan read files in:",confirmDialogAccept:"Allow access",confirmDialogReject:"Cancel",ignorePatternsLabel:"Ignored patterns",ignorePatternsDescriptionPrefix:"Patterns that exclude files and folders from the scan, stored in",ignorePatternsDescriptionFile:".skillmapignore",ignorePatternsDescriptionMiddle:"at the project root. Same syntax as",ignorePatternsDescriptionGitignore:".gitignore",ignorePatternsDescriptionSuffix:"(one pattern per line).",ignorePatternsPlaceholder:"secrets.md",ignorePatternsInputAriaLabel:"New ignore pattern",ignorePatternEmpty:"Pattern cannot be empty or whitespace-only.",ignorePatternHasControlChar:"Pattern must be a single line without control characters.",ignorePatternDuplicate:"This pattern is already in the list.",addIgnorePatternLabel:"Add pattern",removeIgnorePatternLabel:"Remove",activeProviderLabel:"Active provider",activeProviderDescription:"Selects which provider sees this project. The map reflects how the chosen provider interprets your files.",activeProviderSourceAutodetect:"Auto-detected from your files (no value saved yet).",activeProviderSourceNone:"No provider detected. Install or enable a provider to start.",activeProviderDetectedPrefix:"Detected:",activeProviderEmptyOption:"(none)",activeProviderDisabledSuffix:"(disabled)",activeProviderConfirmHeader:"Switch the active provider?",activeProviderConfirmIntro:"Switching will clear the persisted scan (nodes, links, issues). Jobs and history are kept. You will need to run `sm scan` after the switch.",activeProviderConfirmAccept:"Switch and clear scan",activeProviderConfirmReject:"Cancel",activeProviderSwitchedPrefix:"Lens switched. Cleared",activeProviderSwitchedSuffix:"scan table(s). Run `sm scan` to repopulate.",activeProviderSwitchedNoDb:"Lens switched. Run `sm scan` to populate the map under the new lens."},changelogHeading:"Changelog",changelogIntro:"What's new in skill-map. Each entry covers a release of @skill-map/cli (the CLI + bundled UI) and lists the user-facing changes plus the workspace(s) each one affects.",changelogEmpty:"No release notes yet. Future releases will populate this list automatically from the changesets shipped in each PR.",changelogInternalRelease:"Internal release. Focus on stability, infra, and refactors. No user-facing changes this time.",changelogAffectedPackages:"Affected packages",changelogFooterText:"Want the full changelog?",changelogFooterLinkLabel:"See it on GitHub \u2192",changelogFooterUrl:"https://github.com/crystian/skill-map/blob/main/src/CHANGELOG.md",aboutHeading:"About",aboutIntro:"Version information for the running CLI / server.",aboutCliLabel:"skill-map CLI",aboutSpecLabel:"Spec version",aboutSchemaLabel:"Schema version",aboutFolderLabel:"Project folder",aboutDbLabel:"Project DB",aboutDbValue:(e,n)=>e==="present"?n:`${e} \xB7 ${n}`,aboutLoading:"Loading\u2026",aboutUnknown:"-",aboutErrorPrefix:"Could not read health endpoint:",aboutLinksHeading:"Links",aboutWebsiteLabel:"Website",aboutGithubLabel:"GitHub",aboutWebsiteUrl:"https://skill-map.ai/",aboutGithubUrl:"https://github.com/crystian/skill-map",aboutStarHeading:"Enjoying skill-map?",aboutStarBody:"If it's useful to you, drop us a star on GitHub, it helps a lot and keeps the project alive.",aboutStarCta:"Star on GitHub",aboutStarA11y:"Open the skill-map repository on GitHub to give it a star",pluginsHeading:"Plugins",pluginsIntro:"Enable or disable installed plugins.",pluginsSearchPlaceholder:"Filter by name\u2026",pluginsSearchA11y:"Filter plugins by name",pluginsSearchEmpty:e=>`No plugins match "${e}".`,pluginsKindFilterAll:"All",pluginsKindFilterOptionA11y:(e,n)=>n?`Show only ${e} extensions`:"Show all kinds",pluginsSourceFilterOptionA11y:(e,n)=>n?`Show only ${e} plugins`:"Show all sources",pluginsFilterA11y:"Filter plugins by source and kind",pluginsFilterAllA11y:"Show every plugin (clear the source and kind filters)",pluginsProjectEmpty:"No project plugins yet. Drop one under .skill-map/plugins/ or create it with sm plugins create <id>.",unsavedChangesMessage:e=>e===1?'1 unsaved change. Click "Apply" to persist it.':`${e} unsaved changes. Click "Apply" to persist them.`,startsAsDisabledRowHint:"This plugin started disabled and is not loaded in memory. Restart `sm serve` for the change to take effect.",startsAsDisabledFooterHint:"Some plugins were disabled when the server started. Consider restarting `sm serve` so they take effect.",discardChanges:"Discard",applyAndClose:"Apply",discardA11y:"Discard pending plugin changes",applyA11y:"Apply pending plugin changes and refresh the map",confirmCloseTitle:"Apply pending changes?",confirmCloseBody:e=>e===1?"You have 1 unsaved change.":`You have ${e} unsaved changes.`,keepEditing:"Keep editing",sourceBuiltIn:"Built-in",sourceProject:"Project",enabledLabel:"Enabled",disabledLabel:"Disabled",lockedLabel:"Locked",lockedTooltip:"Locked by the host (cannot be toggled).",expandLabel:"Show extensions",collapseLabel:"Hide extensions",stability:{experimental:"experimental",beta:"beta",deprecated:"deprecated",tooltip:"Lifecycle stage declared by the extension manifest."},runtimeErrors:{badge:e=>e===1?"1 runtime error":`${e} runtime errors`,badgeTooltip:"This plugin loaded fine, but some of its contributions were rejected during the last scan. Expand for details.",expandLabel:"Show runtime errors",collapseLabel:"Hide runtime errors",extensionPrefix:"Extension:",slotPrefix:"Slot:",contributionPrefix:"Contribution:",a11y:{toggle:(e,n)=>`Runtime errors for plugin ${e} (${n})`}},statusFailure:{"incompatible-spec":"Incompatible spec version","invalid-manifest":"Invalid manifest","load-error":"Failed to load","id-collision":"Plugin id collision"},loading:"Loading plugins\u2026",empty:"No plugins installed.",errorPrefix:"Could not load plugins:",toggleErrorPrefix:"Toggle failed:",a11y:{triggerLabel:"Open settings",pluginToggle:(e,n)=>n?`Enable plugin ${e}`:`Disable plugin ${e}`,extensionToggle:(e,n)=>n?`Enable ${e}`:`Disable ${e}`,pluginRow:e=>`Plugin ${e} row`,extensionRow:e=>`Extension ${e} row`}};var y="#9ca3af",P="#6b7280",A=(()=>{class e{_entries=r([]);providers=this._entries.asReadonly();index=a(()=>{let t=new Map;for(let i of this._entries())t.set(i.id,i);return t});ingest(t){if(!t)return;let i=[];for(let[b,v]of Object.entries(t))i.push(c({id:b},v));k(this._entries(),i)||this._entries.set(i)}lookup(t){return this.index().get(t)}cardChip(t){if(!t)return null;let i=this.lookup(t);return i?i.hideChip?null:u(i):g(t)}lensChip(t){if(!t)return null;let i=this.lookup(t);return i?u(i):g(t)}static \u0275fac=function(i){return new(i||e)};static \u0275prov=o({token:e,factory:e.\u0275fac,providedIn:"root"})}return e})();function u(e){let n={label:e.label,color:e.color};return e.colorDark!==void 0&&(n.colorDark=e.colorDark),n}function g(e){return{label:e,color:y,colorDark:P}}function k(e,n){if(e.length!==n.length)return!1;for(let t=0;t<e.length;t++)if(JSON.stringify(e[t])!==JSON.stringify(n[t]))return!1;return!0}var f={available:"Update available",copiedLabel:"Copied!",tooltip:e=>`v${e} is available. Click to copy the install command.`,copyCommand:"npm i -g @skill-map/cli@latest",copiedTooltip:"Copied! Paste it in your terminal.",npmLinkUrl:"https://www.npmjs.com/package/@skill-map/cli",npmLinkTooltip:"Open on npm",npmLinkA11y:"Open the @skill-map/cli package page on npm",a11yLabel:e=>`Update available: version ${e}, click to copy the install command`,versionLabel:e=>`v${e}`,versionTooltip:e=>`skill-map CLI v${e}`,versionA11yLabel:e=>`Running version ${e}`,fetchFailed:e=>`UpdateCheckService: fetch failed (${e})`};var R=(()=>{class e{dataSource=s(l);status=r(null);isOutdated=a(()=>this.status()?.isOutdated===!0);latest=a(()=>this.status()?.latest??null);current=a(()=>this.status()?.current??null);async load(){try{let t=await this.dataSource.getUpdateStatus();this.status.set(t)}catch(t){let i=t instanceof Error?t.message:String(t);console.warn(f.fetchFailed(i))}}static \u0275fac=function(i){return new(i||e)};static \u0275prov=o({token:e,factory:e.\u0275fac,providedIn:"root"})}return e})();var m={scanFailed:e=>`scan-trigger failed: ${e}`};var M=(()=>{class e{dataSource=s(l);loader=s(p);scanning=r(!1);scanError=r(null);async run(){if(!this.scanning()){this.scanning.set(!0),this.scanError.set(null);try{await this.dataSource.runScan(),await this.loader.load()}catch(t){let i=t instanceof d||t instanceof Error?t.message:String(t);this.scanError.set(i),console.warn(m.scanFailed(i))}finally{this.scanning.set(!1)}}}static \u0275fac=function(i){return new(i||e)};static \u0275prov=o({token:e,factory:e.\u0275fac,providedIn:"root"})}return e})();export{A as a,f as b,R as c,S as d,M as e};
1
+ import{c as l,d,h as p}from"./chunk-4ITL7E6U.js";import{K as o,P as s,ga as r,sc as a}from"./chunk-Q2A6FWC7.js";import{a as c}from"./chunk-WCABR6TI.js";var S={triggerLabel:"Settings",triggerTooltip:"Settings",modalTitle:"Settings",closeLabel:"Close",sections:{plugins:"Plugins",general:"General",project:"Project",changelog:"Changelog",about:"About"},general:{heading:"General",intro:"Per-machine preferences.",loadErrorPrefix:"Could not load preferences:",saveErrorPrefix:"Could not save preferences:",toggles:{"updateCheck.enabled":{label:"Check for updates",description:"Check npm for newer @skill-map/cli releases."},telemetry:{label:"Send anonymous error & usage reports",description:"Report crashes and which features you use. No file contents or paths.",hint:"Restart sm for this to take effect."}},extraTheme:{label:"Theme",description:"Pick a specialty theme.",options:{none:{label:"None",description:"Use the topbar dark/light toggle."}}},storageHintLabel:"Settings are stored in:",storageHintPath:"~/.skill-map/settings.json"},project:{heading:"Project",introPrefix:"These settings apply only to this project and are saved in",introPath:".skill-map/settings.local.json",introSuffix:".",loadErrorPrefix:"Could not load project settings:",saveErrorPrefix:"Could not save project settings:",referencePathsLabel:"Folders for link validation",referencePathsDescription:"If your notes link to files outside this project, list those folders here. Skill-map checks them only to confirm the links work, nothing from these folders shows up in the map.",referencePathsPlaceholder:"~/Documents/research",referencePathsInputAriaLabel:"New folder path",commaForbidden:"Add one path at a time, without commas.",addPathLabel:"Add path",removePathLabel:"Remove",confirmDialogHeader:"Allow access to folders outside this project?",confirmDialogIntro:"This change lets the scan read files in:",confirmDialogAccept:"Allow access",confirmDialogReject:"Cancel",ignorePatternsLabel:"Ignored patterns",ignorePatternsDescriptionPrefix:"Patterns that exclude files and folders from the scan, stored in",ignorePatternsDescriptionFile:".skillmapignore",ignorePatternsDescriptionMiddle:"at the project root. Same syntax as",ignorePatternsDescriptionGitignore:".gitignore",ignorePatternsDescriptionSuffix:"(one pattern per line).",ignorePatternsPlaceholder:"secrets.md",ignorePatternsInputAriaLabel:"New ignore pattern",ignorePatternEmpty:"Pattern cannot be empty or whitespace-only.",ignorePatternHasControlChar:"Pattern must be a single line without control characters.",ignorePatternDuplicate:"This pattern is already in the list.",addIgnorePatternLabel:"Add pattern",removeIgnorePatternLabel:"Remove",activeProviderLabel:"Active provider",activeProviderDescription:"Selects which provider sees this project. The map reflects how the chosen provider interprets your files.",activeProviderSourceAutodetect:"Auto-detected from your files (no value saved yet).",activeProviderSourceNone:"No provider detected. Install or enable a provider to start.",activeProviderDetectedPrefix:"Detected:",activeProviderEmptyOption:"(none)",activeProviderDisabledSuffix:"(disabled)",activeProviderConfirmHeader:"Switch the active provider?",activeProviderConfirmIntro:"Switching will clear the persisted scan (nodes, links, issues). Jobs and history are kept. You will need to run `sm scan` after the switch.",activeProviderConfirmAccept:"Switch and clear scan",activeProviderConfirmReject:"Cancel",activeProviderSwitchedPrefix:"Lens switched. Cleared",activeProviderSwitchedSuffix:"scan table(s). Run `sm scan` to repopulate.",activeProviderSwitchedNoDb:"Lens switched. Run `sm scan` to populate the map under the new lens."},changelogHeading:"Changelog",changelogIntro:"What's new in skill-map. Each entry covers a release of @skill-map/cli (the CLI + bundled UI) and lists the user-facing changes plus the workspace(s) each one affects.",changelogEmpty:"No release notes yet. Future releases will populate this list automatically from the changesets shipped in each PR.",changelogInternalRelease:"Internal release. Focus on stability, infra, and refactors. No user-facing changes this time.",changelogAffectedPackages:"Affected packages",changelogFooterText:"Want the full changelog?",changelogFooterLinkLabel:"See it on GitHub \u2192",changelogFooterUrl:"https://github.com/crystian/skill-map/blob/main/src/CHANGELOG.md",aboutHeading:"About",aboutIntro:"Version information for the running CLI / server.",aboutCliLabel:"skill-map CLI",aboutSpecLabel:"Spec version",aboutSchemaLabel:"Schema version",aboutFolderLabel:"Project folder",aboutDbLabel:"Project DB",aboutDbValue:(e,n)=>e==="present"?n:`${e} \xB7 ${n}`,aboutLoading:"Loading\u2026",aboutUnknown:"-",aboutErrorPrefix:"Could not read health endpoint:",aboutLinksHeading:"Links",aboutWebsiteLabel:"Website",aboutGithubLabel:"GitHub",aboutWebsiteUrl:"https://skill-map.ai/",aboutGithubUrl:"https://github.com/crystian/skill-map",aboutStarHeading:"Enjoying skill-map?",aboutStarBody:"If it's useful to you, drop us a star on GitHub, it helps a lot and keeps the project alive.",aboutStarCta:"Star on GitHub",aboutStarA11y:"Open the skill-map repository on GitHub to give it a star",pluginsHeading:"Plugins",pluginsIntro:"Enable or disable installed plugins.",pluginsSearchPlaceholder:"Filter by name\u2026",pluginsSearchA11y:"Filter plugins by name",pluginsSearchEmpty:e=>`No plugins match "${e}".`,pluginsKindFilterAll:"All",pluginsKindFilterOptionA11y:(e,n)=>n?`Show only ${e} extensions`:"Show all kinds",pluginsSourceFilterOptionA11y:(e,n)=>n?`Show only ${e} plugins`:"Show all sources",pluginsFilterA11y:"Filter plugins by source and kind",pluginsFilterAllA11y:"Show every plugin (clear the source and kind filters)",pluginsProjectEmpty:"No project plugins yet. Drop one under .skill-map/plugins/ or create it with sm plugins create <id>.",unsavedChangesMessage:e=>e===1?'1 unsaved change. Click "Apply" to persist it.':`${e} unsaved changes. Click "Apply" to persist them.`,startsAsDisabledRowHint:"This plugin started disabled and is not loaded in memory. Restart `sm serve` for the change to take effect.",startsAsDisabledFooterHint:"Some plugins were disabled when the server started. Consider restarting `sm serve` so they take effect.",discardChanges:"Discard",applyAndClose:"Apply",discardA11y:"Discard pending changes",applyA11y:"Apply pending changes and refresh the map",applyErrorPrefix:"Could not apply changes:",confirmCloseTitle:"Apply pending changes?",confirmCloseBody:e=>e===1?"You have 1 unsaved change.":`You have ${e} unsaved changes.`,keepEditing:"Keep editing",sourceBuiltIn:"Built-in",sourceProject:"Project",enabledLabel:"Enabled",disabledLabel:"Disabled",lockedLabel:"Locked",lockedTooltip:"Locked by the host (cannot be toggled).",expandLabel:"Show extensions",collapseLabel:"Hide extensions",stability:{experimental:"experimental",beta:"beta",deprecated:"deprecated",tooltip:"Lifecycle stage declared by the extension manifest."},runtimeErrors:{badge:e=>e===1?"1 runtime error":`${e} runtime errors`,badgeTooltip:"This plugin loaded fine, but some of its contributions were rejected during the last scan. Expand for details.",expandLabel:"Show runtime errors",collapseLabel:"Hide runtime errors",extensionPrefix:"Extension:",slotPrefix:"Slot:",contributionPrefix:"Contribution:",a11y:{toggle:(e,n)=>`Runtime errors for plugin ${e} (${n})`}},pluginSection:{navLabel:e=>e,intro:"Configure this plugin's options. Changes apply when you click Apply.",formA11y:e=>`Settings for ${e}`,sectionA11y:e=>`Settings for plugin ${e}`},statusFailure:{"incompatible-spec":"Incompatible spec version","invalid-manifest":"Invalid manifest","load-error":"Failed to load","id-collision":"Plugin id collision"},loading:"Loading plugins\u2026",empty:"No plugins installed.",errorPrefix:"Could not load plugins:",toggleErrorPrefix:"Toggle failed:",a11y:{triggerLabel:"Open settings",pluginToggle:(e,n)=>n?`Enable plugin ${e}`:`Disable plugin ${e}`,extensionToggle:(e,n)=>n?`Enable ${e}`:`Disable ${e}`,pluginRow:e=>`Plugin ${e} row`,extensionRow:e=>`Extension ${e} row`}};var y="#9ca3af",P="#6b7280",A=(()=>{class e{_entries=r([]);providers=this._entries.asReadonly();index=a(()=>{let t=new Map;for(let i of this._entries())t.set(i.id,i);return t});ingest(t){if(!t)return;let i=[];for(let[b,v]of Object.entries(t))i.push(c({id:b},v));k(this._entries(),i)||this._entries.set(i)}lookup(t){return this.index().get(t)}cardChip(t){if(!t)return null;let i=this.lookup(t);return i?i.hideChip?null:u(i):g(t)}lensChip(t){if(!t)return null;let i=this.lookup(t);return i?u(i):g(t)}static \u0275fac=function(i){return new(i||e)};static \u0275prov=o({token:e,factory:e.\u0275fac,providedIn:"root"})}return e})();function u(e){let n={label:e.label,color:e.color};return e.colorDark!==void 0&&(n.colorDark=e.colorDark),n}function g(e){return{label:e,color:y,colorDark:P}}function k(e,n){if(e.length!==n.length)return!1;for(let t=0;t<e.length;t++)if(JSON.stringify(e[t])!==JSON.stringify(n[t]))return!1;return!0}var f={available:"Update available",copiedLabel:"Copied!",tooltip:e=>`v${e} is available. Click to copy the install command.`,copyCommand:"npm i -g @skill-map/cli@latest",copiedTooltip:"Copied! Paste it in your terminal.",npmLinkUrl:"https://www.npmjs.com/package/@skill-map/cli",npmLinkTooltip:"Open on npm",npmLinkA11y:"Open the @skill-map/cli package page on npm",a11yLabel:e=>`Update available: version ${e}, click to copy the install command`,versionLabel:e=>`v${e}`,versionTooltip:e=>`skill-map CLI v${e}`,versionA11yLabel:e=>`Running version ${e}`,fetchFailed:e=>`UpdateCheckService: fetch failed (${e})`};var R=(()=>{class e{dataSource=s(l);status=r(null);isOutdated=a(()=>this.status()?.isOutdated===!0);latest=a(()=>this.status()?.latest??null);current=a(()=>this.status()?.current??null);async load(){try{let t=await this.dataSource.getUpdateStatus();this.status.set(t)}catch(t){let i=t instanceof Error?t.message:String(t);console.warn(f.fetchFailed(i))}}static \u0275fac=function(i){return new(i||e)};static \u0275prov=o({token:e,factory:e.\u0275fac,providedIn:"root"})}return e})();var m={scanFailed:e=>`scan-trigger failed: ${e}`};var M=(()=>{class e{dataSource=s(l);loader=s(p);scanning=r(!1);scanError=r(null);async run(){if(!this.scanning()){this.scanning.set(!0),this.scanError.set(null);try{await this.dataSource.runScan(),await this.loader.load()}catch(t){let i=t instanceof d||t instanceof Error?t.message:String(t);this.scanError.set(i),console.warn(m.scanFailed(i))}finally{this.scanning.set(!1)}}}static \u0275fac=function(i){return new(i||e)};static \u0275prov=o({token:e,factory:e.\u0275fac,providedIn:"root"})}return e})();export{A as a,f as b,R as c,S as d,M as e};