@skill-map/cli 0.40.1 → 0.42.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/cli/tutorial/sm-tutorial/SKILL.md +10 -1
- package/dist/cli.js +429 -95
- package/dist/cli.js.map +1 -1
- package/dist/index.js +39 -29
- package/dist/index.js.map +1 -1
- package/dist/kernel/index.d.ts +101 -0
- package/dist/kernel/index.js +39 -29
- package/dist/kernel/index.js.map +1 -1
- package/dist/migrations/001_initial.sql +8 -0
- package/dist/ui/chunk-5GD2GBPS.js +2190 -0
- package/dist/ui/{chunk-4HTOYDCM.js → chunk-5WJRN3LD.js} +1 -1
- package/dist/ui/{chunk-3SI3TVER.js → chunk-C2YUQODZ.js} +2 -2
- package/dist/ui/{chunk-NGIFGXW7.js → chunk-CFJBTDAA.js} +1 -1
- package/dist/ui/{chunk-YWWD62BR.js → chunk-HEJCH7BA.js} +1 -1
- package/dist/ui/chunk-HFPA56IM.js +1 -0
- package/dist/ui/chunk-HHPSCDLM.js +315 -0
- package/dist/ui/chunk-HP375T2O.js +2 -0
- package/dist/ui/chunk-HWP3HM55.js +123 -0
- package/dist/ui/{chunk-ZAEGBMF7.js → chunk-IUDL3NDH.js} +1 -1
- package/dist/ui/{chunk-Z3C2OSRL.js → chunk-JPYAASHN.js} +1 -1
- package/dist/ui/chunk-PZ6Q5AOT.js +1 -0
- package/dist/ui/chunk-XJL4DZ4M.js +1 -0
- package/dist/ui/{chunk-W2JMLJCF.js → chunk-XOHD5XWA.js} +1 -1
- package/dist/ui/chunk-YL6SWAFJ.js +1024 -0
- package/dist/ui/index.html +2 -2
- package/dist/ui/main-7VYTTJP7.js +3 -0
- package/dist/ui/{styles-6H4GSOHY.css → styles-HI4A6IWA.css} +1 -1
- package/migrations/001_initial.sql +8 -0
- package/package.json +2 -2
- package/dist/ui/chunk-4X4GYACU.js +0 -123
- package/dist/ui/chunk-7Q3IO77R.js +0 -317
- package/dist/ui/chunk-FL6RV2IG.js +0 -2
- package/dist/ui/chunk-HGNE4UVQ.js +0 -1
- package/dist/ui/chunk-IS5ULQSF.js +0 -1
- package/dist/ui/chunk-KVWYVO6I.js +0 -1
- package/dist/ui/chunk-N4XX4WPE.js +0 -2190
- package/dist/ui/chunk-P7TXZKUX.js +0 -2
- package/dist/ui/chunk-UVVXMEZT.js +0 -1025
- package/dist/ui/main-F7N5RV4Y.js +0 -3
package/dist/ui/index.html
CHANGED
|
@@ -27,8 +27,8 @@
|
|
|
27
27
|
preconnect handshake on first paint. Applied via `html.app-matrix`
|
|
28
28
|
in `themes/matrix.css`.
|
|
29
29
|
-->
|
|
30
|
-
<style>:root{--ff-white:#ffffff;--ff-black:#000000;--ff-gray-0:#ffffff;--ff-gray-25:#fcfcfc;--ff-gray-50:#f8f8f7;--ff-gray-75:#f2f2f0;--ff-gray-100:#e9e9e6;--ff-gray-150:#dcdcd7;--ff-gray-200:#c9c9c1;--ff-gray-300:#afafa5;--ff-gray-400:#8d8d81;--ff-gray-500:#69695f;--ff-gray-600:#505048;--ff-gray-700:#3c3c36;--ff-gray-800:#272722;--ff-gray-900:#1b1b18;--ff-gray-950:#141412;--ff-gray-1000:#0f0f0d;--ff-alpha-black-04:rgba(15, 15, 13, .04);--ff-alpha-black-06:rgba(15, 15, 13, .06);--ff-alpha-black-08:rgba(15, 15, 13, .08);--ff-alpha-black-10:rgba(15, 15, 13, .1);--ff-alpha-black-12:rgba(15, 15, 13, .12);--ff-alpha-black-15:rgba(15, 15, 13, .15);--ff-alpha-black-20:rgba(15, 15, 13, .2);--ff-alpha-black-30:rgba(15, 15, 13, .3);--ff-alpha-black-40:rgba(15, 15, 13, .4);--ff-alpha-black-60:rgba(15, 15, 13, .6);--ff-alpha-white-04:rgba(255, 255, 255, .04);--ff-alpha-white-06:rgba(255, 255, 255, .06);--ff-alpha-white-08:rgba(255, 255, 255, .08);--ff-alpha-white-10:rgba(255, 255, 255, .1);--ff-alpha-white-12:rgba(255, 255, 255, .12);--ff-alpha-white-15:rgba(255, 255, 255, .15);--ff-alpha-white-20:rgba(255, 255, 255, .2);--ff-alpha-white-30:rgba(255, 255, 255, .3);--ff-alpha-white-40:rgba(255, 255, 255, .4);--ff-alpha-white-60:rgba(255, 255, 255, .6);--ff-blue-100:#e8f2ff;--ff-blue-200:#bad8ff;--ff-blue-300:#7db7ff;--ff-blue-400:#4176ff;--ff-blue-500:#2759db;--ff-blue-600:#1b3f9e;--ff-green-100:#e7f7ef;--ff-green-300:#71c795;--ff-green-400:#2b9b5f;--ff-green-500:#1e7748;--ff-yellow-100:#fff5de;--ff-yellow-300:#e1b354;--ff-yellow-400:#bb8121;--ff-yellow-500:#916112;--ff-red-100:#feeceb;--ff-red-300:#e48d85;--ff-red-400:#c55245;--ff-red-500:#9e3a2f;--ff-radius-4:4px;--ff-radius-6:6px;--ff-radius-pill:999px;--ff-font-family-sans:"Inter", ui-sans-serif, system-ui, sans-serif, "Apple Color Emoji", "Segoe UI Emoji", "Segoe UI Symbol", "Noto Color Emoji";--ff-font-family-mono:ui-monospace, "SFMono-Regular", "Menlo", "Monaco", "Consolas", "Liberation Mono", "Courier New", monospace;--ff-font-size-xs:12px;--ff-font-size-sm:14px;--ff-font-size-md:16px;--ff-font-size-lg:18px;--ff-shadow-1:0 1px 2px rgba(15, 15, 13, .05), 0 8px 20px rgba(15, 15, 13, .04);--ff-shadow-2:0 10px 28px rgba(15, 15, 13, .08), 0 3px 10px rgba(15, 15, 13, .05);--ff-shadow-3:0 18px 48px rgba(15, 15, 13, .12), 0 6px 16px rgba(15, 15, 13, .08)}:root{--ff-color-surface-page:var(--ff-gray-25);--ff-color-surface-canvas:var(--ff-gray-25);--ff-color-surface-card:var(--ff-white);--ff-color-surface-group:rgba(65, 118, 255, .14);--ff-color-surface-group-active:rgba(65, 118, 255, .2);--ff-color-surface-muted:var(--ff-gray-50);--ff-color-surface-soft:var(--ff-gray-75);--ff-color-surface-accent-soft:rgba(65, 118, 255, .1);--ff-color-border-default:var(--ff-alpha-black-12);--ff-color-border-subtle:var(--ff-alpha-black-08);--ff-color-border-strong:var(--ff-alpha-black-20);--ff-color-border-accent:var(--ff-blue-500);--ff-color-text-primary:var(--ff-gray-800);--ff-color-text-secondary:var(--ff-gray-500);--ff-color-text-tertiary:var(--ff-gray-400);--ff-color-text-inverse:var(--ff-white);--ff-color-accent:var(--ff-blue-500);--ff-color-accent-strong:var(--ff-blue-600);--ff-color-success:var(--ff-green-400);--ff-color-warning:var(--ff-yellow-400);--ff-color-danger:var(--ff-red-400);--ff-color-disabled-surface:var(--ff-gray-100);--ff-color-disabled-border:var(--ff-alpha-black-10);--ff-color-disabled-text:var(--ff-gray-300);--ff-color-selection-fill:rgba(65, 118, 255, .12);--ff-color-selection-stroke:rgba(65, 118, 255, .28);--ff-color-grid:var(--ff-alpha-black-08);--ff-color-grid-strong:var(--ff-alpha-black-15);--ff-color-connector-connected:var(--ff-blue-500);--ff-color-connection:var(--ff-gray-600);--ff-color-connection-muted:var(--ff-gray-300);--ff-color-connection-hover:var(--ff-alpha-black-12);--ff-color-grouping-drop-target-border:var(--ff-gray-800);--ff-color-grouping-drop-target-border-active:var(--ff-gray-800);--ff-color-waypoint-fill:var(--ff-white);--ff-color-waypoint-stroke:var(--ff-blue-500);--ff-color-waypoint-candidate-fill:var(--ff-white);--ff-color-waypoint-candidate-stroke:var(--ff-green-400);--ff-color-minimap-surface:var(--ff-white);--ff-color-minimap-node:var(--ff-gray-700);--ff-color-minimap-view:rgba(65, 118, 255, .14);--ff-color-magnetic-line:var(--ff-blue-500);--ff-color-magnetic-rect-fill:rgba(65, 118, 255, .08);--ff-color-magnetic-rect-border:rgba(65, 118, 255, .24);--ff-radius-node:var(--ff-radius-4);--ff-radius-group:var(--ff-radius-4);--ff-radius-control:var(--ff-radius-4);--ff-radius-socket-square:var(--ff-radius-6);--ff-radius-pill:var(--ff-radius-pill);--ff-font-sans:var(--ff-font-family-sans);--ff-font-mono:var(--ff-font-family-mono);--ff-font-size-body:var(--ff-font-size-sm);--ff-font-size-label:var(--ff-font-size-xs);--ff-shadow-surface:var(--ff-shadow-1);--ff-shadow-floating:var(--ff-shadow-2)}:root{--ff-flow-background-color:var(--ff-color-surface-page);--ff-flow-text-color:var(--ff-color-text-primary);--ff-flow-font-family:var(--ff-font-sans);--ff-flow-font-size:var(--ff-font-size-body);--ff-canvas-background-color:var(--ff-color-surface-canvas);--ff-node-background-color:var(--ff-color-surface-card);--ff-node-background-color-inverse:var(--ff-color-text-primary);--ff-node-border-color:var(--ff-color-border-default);--ff-node-border-color-selected:var(--ff-color-border-accent);--ff-node-color:var(--ff-color-text-primary);--ff-node-border-radius:var(--ff-radius-node);--ff-node-shadow:var(--ff-shadow-surface);--ff-node-shadow-selected:var(--ff-shadow-floating);--ff-node-width:120px;--ff-node-min-height:56px;--ff-node-padding:24px;--ff-group-background-color:var(--ff-color-surface-group);--ff-group-background-color-active:var(--ff-color-surface-group-active);--ff-group-border-color:var(--ff-color-border-subtle);--ff-group-border-color-selected:var(--ff-color-border-accent);--ff-group-border-color-active:var(--ff-color-border-accent);--ff-group-color:var(--ff-color-text-secondary);--ff-group-border-radius:var(--ff-radius-group);--ff-group-min-width:180px;--ff-group-min-height:120px;--ff-group-padding:24px;--ff-grouping-drop-target-border-color:var(--ff-color-grouping-drop-target-border);--ff-grouping-drop-target-border-style:dashed;--ff-grouping-drop-target-border-width:1px;--ff-grouping-drop-target-border-color-active:var(--ff-color-grouping-drop-target-border-active);--ff-grouping-drop-target-border-style-active:dashed;--ff-grouping-drop-target-border-width-active:2px;--ff-handle-background-color:var(--ff-color-surface-card);--ff-handle-border-color:var(--ff-color-border-strong);--ff-handle-color:var(--ff-color-text-secondary);--ff-handle-size:12px;--ff-handle-radius:var(--ff-radius-control);--ff-rotate-handle-size:16px;--ff-connector-background-color:var(--ff-color-surface-card);--ff-connector-border-color:var(--ff-color-border-default);--ff-connector-connected-color:var(--ff-color-connector-connected);--ff-connector-accent-color:var(--ff-color-accent);--ff-connector-disabled-color:var(--ff-color-disabled-surface);--ff-connector-disabled-border-color:var(--ff-color-disabled-border);--ff-connector-size:16px;--ff-connector-node-ring-color:var(--ff-canvas-background-color);--ff-outlet-background-color:var(--ff-color-surface-muted);--ff-outlet-border-color:var(--ff-color-border-default);--ff-outlet-color:var(--ff-color-accent);--ff-outlet-disabled-background-color:var(--ff-color-disabled-surface);--ff-outlet-disabled-border-color:var(--ff-color-disabled-border);--ff-outlet-disabled-color:var(--ff-color-disabled-text);--ff-outlet-border-radius:var(--ff-radius-pill);--ff-outlet-padding-y:6px;--ff-outlet-padding-x:12px;--ff-connection-color:var(--ff-color-connection);--ff-snap-connection-color:var(--ff-color-connection-muted);--ff-connection-hover-color:var(--ff-color-connection-hover);--ff-connection-selected-color:var(--ff-color-accent);--ff-connection-label-color:var(--ff-color-text-secondary);--ff-connection-content-color:var(--ff-node-color);--ff-connection-content-background-color:var(--ff-node-background-color);--ff-connection-content-border-color:var(--ff-node-border-color);--ff-connection-content-border-color-selected:var(--ff-connection-selected-color);--ff-connection-content-border-radius:var(--ff-node-border-radius);--ff-connection-content-font-size:13px;--ff-connection-content-padding-y:2px;--ff-connection-content-padding-x:8px;--ff-connection-width:2px;--ff-connection-hit-width:14px;--ff-connection-drag-handle-fill:var(--ff-color-surface-card);--ff-connection-drag-handle-stroke:var(--ff-color-accent);--ff-marker-color:var(--ff-connection-color);--ff-waypoint-fill:var(--ff-color-waypoint-fill);--ff-waypoint-stroke:var(--ff-color-waypoint-stroke);--ff-waypoint-candidate-fill:var(--ff-color-waypoint-candidate-fill);--ff-waypoint-candidate-stroke:var(--ff-color-waypoint-candidate-stroke);--ff-background-line-color:var(--ff-color-grid);--ff-background-dot-color:var(--ff-color-grid-strong);--ff-selection-area-color:var(--ff-color-selection-fill);--ff-selection-area-border-color:var(--ff-color-selection-stroke);--ff-minimap-background-color:var(--ff-color-minimap-surface);--ff-minimap-border-color:var(--ff-color-border-default);--ff-minimap-node-color:var(--ff-color-minimap-node);--ff-minimap-node-selected-color:var(--ff-color-accent);--ff-minimap-view-color:var(--ff-color-minimap-view);--ff-minimap-view-border-color:var(--ff-color-selection-stroke);--ff-minimap-border-radius:var(--ff-radius-node);--ff-minimap-shadow:var(--ff-shadow-floating);--ff-magnetic-line-color:var(--ff-color-magnetic-line);--ff-magnetic-rect-fill:var(--ff-color-magnetic-rect-fill);--ff-magnetic-rect-border-color:var(--ff-color-magnetic-rect-border);--ff-external-item-background-color:var(--ff-color-surface-card);--ff-external-item-border-color:var(--ff-color-border-default);--ff-external-item-color:var(--ff-color-text-primary);--ff-external-item-disabled-color:var(--ff-color-disabled-text);--ff-external-item-disabled-background-color:var(--ff-color-disabled-surface);--ff-external-item-border-radius:var(--ff-radius-node);--ff-external-item-shadow:var(--ff-shadow-surface);--ff-external-item-preview-shadow:var(--ff-shadow-floating);--ff-external-item-placeholder-background-color:var(--ff-color-surface-soft);--ff-external-item-placeholder-border-color:var(--ff-color-border-subtle)}@-webkit-keyframes fa-spin{0%{-webkit-transform:rotate(0deg);transform:rotate(0)}to{-webkit-transform:rotate(359deg);transform:rotate(359deg)}}:root{--fa-family-brands:"Font Awesome 7 Brands";--fa-font-brands:normal 400 1em/1 var(--fa-family-brands)}:root{--fa-font-regular:normal 400 1em/1 var(--fa-family-classic)}:root{--fa-family-classic:"Font Awesome 7 Free";--fa-font-solid:normal 900 1em/1 var(--fa-family-classic);--fa-style-family-classic:var(--fa-family-classic)}:root{--sm-font-mono:ui-monospace, SFMono-Regular, Menlo, Monaco, Consolas, monospace;--sm-font-display-brand:"Geist", system-ui, sans-serif;--sm-radius-sm:3px;--sm-radius-md:4px;--sm-radius-lg:.5rem;--sm-radius-pill:999px;--sm-bg-page:#f8fafc;--sm-bg-content:#ffffff;--sm-bg-hover:#f1f5f9;--sm-border:#e2e8f0;--sm-nav-active-bg:#eff6ff;--sm-violet-50:#F5F3FF;--sm-violet-100:#EDE9FE;--sm-violet-200:#DDD6FE;--sm-violet-300:#C4B5FD;--sm-violet-400:#A78BFA;--sm-violet-500:#8B5CF6;--sm-violet-600:#7C3AED;--sm-violet-700:#6D28D9;--sm-violet-800:#4C1D95;--sm-violet-900:#2E1065;--sm-edge-invokes:#b8843a;--sm-edge-invokes-active:#f59e0b;--sm-edge-references:#7daa90;--sm-edge-references-active:#10b981;--sm-edge-mentions:#6fa2c0;--sm-edge-mentions-active:#0ea5e9;--sm-edge-supersedes:#9ca3af;--sm-edge-supersedes-active:#4b5563;--sm-link-in-bg:#e0e7ff;--sm-link-in-fg:#3730a3;--sm-link-out-bg:#fef3c7;--sm-link-out-fg:#92400e;--sm-severity-info:#1e3a8a;--sm-severity-success:#065f46;--sm-severity-warn:#ca8a04;--sm-severity-error:#991b1b;--sm-severity-info-bg:rgba(219, 234, 254, .35);--sm-severity-success-bg:rgba(209, 250, 229, .35);--sm-severity-warn-bg:rgba(254, 243, 199, .35);--sm-severity-error-bg:rgba(254, 226, 226, .35);--sm-stat-tokens-bg:rgba(59, 130, 246, .14);--sm-stat-bytes-bg:rgba(245, 158, 11, .16);--sm-shadow-topbar:0 1px 2px rgba(0, 0, 0, .03);--sm-shadow-eventlog:0 -4px 16px rgba(0, 0, 0, .08);--sm-shadow-floating:0 4px 14px rgba(0, 0, 0, .08);--sm-shadow-card:0 1px 2px rgba(0, 0, 0, .05);--sm-shadow-card-hover:0 3px 12px rgba(0, 0, 0, .12)}html,body{margin:0;padding:0;height:100dvh;overflow:hidden;font-family:Inter,-apple-system,BlinkMacSystemFont,Segoe UI,Roboto,Helvetica,Arial,sans-serif,"Apple Color Emoji","Segoe UI Emoji";-webkit-font-smoothing:antialiased;-moz-osx-font-smoothing:grayscale;background:var(--sm-bg-page);color:var(--p-text-color)}*,*:before,*:after{box-sizing:border-box}*{scrollbar-width:thin;scrollbar-color:color-mix(in srgb,var(--p-text-color) 30%,transparent) transparent}*::-webkit-scrollbar{width:10px;height:10px}*::-webkit-scrollbar-track{background:transparent}*::-webkit-scrollbar-thumb{background-color:color-mix(in srgb,var(--p-text-color) 25%,transparent);border-radius:var(--sm-radius-pill);border:2px solid transparent;background-clip:padding-box}*::-webkit-scrollbar-thumb:hover{background-color:color-mix(in srgb,var(--p-text-color) 45%,transparent)}</style><link rel="stylesheet" href="styles-6H4GSOHY.css" media="print" onload="this.media='all'"><noscript><link rel="stylesheet" href="styles-6H4GSOHY.css"></noscript></head>
|
|
30
|
+
<style>:root{--ff-white:#ffffff;--ff-black:#000000;--ff-gray-0:#ffffff;--ff-gray-25:#fcfcfc;--ff-gray-50:#f8f8f7;--ff-gray-75:#f2f2f0;--ff-gray-100:#e9e9e6;--ff-gray-150:#dcdcd7;--ff-gray-200:#c9c9c1;--ff-gray-300:#afafa5;--ff-gray-400:#8d8d81;--ff-gray-500:#69695f;--ff-gray-600:#505048;--ff-gray-700:#3c3c36;--ff-gray-800:#272722;--ff-gray-900:#1b1b18;--ff-gray-950:#141412;--ff-gray-1000:#0f0f0d;--ff-alpha-black-04:rgba(15, 15, 13, .04);--ff-alpha-black-06:rgba(15, 15, 13, .06);--ff-alpha-black-08:rgba(15, 15, 13, .08);--ff-alpha-black-10:rgba(15, 15, 13, .1);--ff-alpha-black-12:rgba(15, 15, 13, .12);--ff-alpha-black-15:rgba(15, 15, 13, .15);--ff-alpha-black-20:rgba(15, 15, 13, .2);--ff-alpha-black-30:rgba(15, 15, 13, .3);--ff-alpha-black-40:rgba(15, 15, 13, .4);--ff-alpha-black-60:rgba(15, 15, 13, .6);--ff-alpha-white-04:rgba(255, 255, 255, .04);--ff-alpha-white-06:rgba(255, 255, 255, .06);--ff-alpha-white-08:rgba(255, 255, 255, .08);--ff-alpha-white-10:rgba(255, 255, 255, .1);--ff-alpha-white-12:rgba(255, 255, 255, .12);--ff-alpha-white-15:rgba(255, 255, 255, .15);--ff-alpha-white-20:rgba(255, 255, 255, .2);--ff-alpha-white-30:rgba(255, 255, 255, .3);--ff-alpha-white-40:rgba(255, 255, 255, .4);--ff-alpha-white-60:rgba(255, 255, 255, .6);--ff-blue-100:#e8f2ff;--ff-blue-200:#bad8ff;--ff-blue-300:#7db7ff;--ff-blue-400:#4176ff;--ff-blue-500:#2759db;--ff-blue-600:#1b3f9e;--ff-green-100:#e7f7ef;--ff-green-300:#71c795;--ff-green-400:#2b9b5f;--ff-green-500:#1e7748;--ff-yellow-100:#fff5de;--ff-yellow-300:#e1b354;--ff-yellow-400:#bb8121;--ff-yellow-500:#916112;--ff-red-100:#feeceb;--ff-red-300:#e48d85;--ff-red-400:#c55245;--ff-red-500:#9e3a2f;--ff-radius-4:4px;--ff-radius-6:6px;--ff-radius-pill:999px;--ff-font-family-sans:"Inter", ui-sans-serif, system-ui, sans-serif, "Apple Color Emoji", "Segoe UI Emoji", "Segoe UI Symbol", "Noto Color Emoji";--ff-font-family-mono:ui-monospace, "SFMono-Regular", "Menlo", "Monaco", "Consolas", "Liberation Mono", "Courier New", monospace;--ff-font-size-xs:12px;--ff-font-size-sm:14px;--ff-font-size-md:16px;--ff-font-size-lg:18px;--ff-shadow-1:0 1px 2px rgba(15, 15, 13, .05), 0 8px 20px rgba(15, 15, 13, .04);--ff-shadow-2:0 10px 28px rgba(15, 15, 13, .08), 0 3px 10px rgba(15, 15, 13, .05);--ff-shadow-3:0 18px 48px rgba(15, 15, 13, .12), 0 6px 16px rgba(15, 15, 13, .08)}:root{--ff-color-surface-page:var(--ff-gray-25);--ff-color-surface-canvas:var(--ff-gray-25);--ff-color-surface-card:var(--ff-white);--ff-color-surface-group:rgba(65, 118, 255, .14);--ff-color-surface-group-active:rgba(65, 118, 255, .2);--ff-color-surface-muted:var(--ff-gray-50);--ff-color-surface-soft:var(--ff-gray-75);--ff-color-surface-accent-soft:rgba(65, 118, 255, .1);--ff-color-border-default:var(--ff-alpha-black-12);--ff-color-border-subtle:var(--ff-alpha-black-08);--ff-color-border-strong:var(--ff-alpha-black-20);--ff-color-border-accent:var(--ff-blue-500);--ff-color-text-primary:var(--ff-gray-800);--ff-color-text-secondary:var(--ff-gray-500);--ff-color-text-tertiary:var(--ff-gray-400);--ff-color-text-inverse:var(--ff-white);--ff-color-accent:var(--ff-blue-500);--ff-color-accent-strong:var(--ff-blue-600);--ff-color-success:var(--ff-green-400);--ff-color-warning:var(--ff-yellow-400);--ff-color-danger:var(--ff-red-400);--ff-color-disabled-surface:var(--ff-gray-100);--ff-color-disabled-border:var(--ff-alpha-black-10);--ff-color-disabled-text:var(--ff-gray-300);--ff-color-selection-fill:rgba(65, 118, 255, .12);--ff-color-selection-stroke:rgba(65, 118, 255, .28);--ff-color-grid:var(--ff-alpha-black-08);--ff-color-grid-strong:var(--ff-alpha-black-15);--ff-color-connector-connected:var(--ff-blue-500);--ff-color-connection:var(--ff-gray-600);--ff-color-connection-muted:var(--ff-gray-300);--ff-color-connection-hover:var(--ff-alpha-black-12);--ff-color-grouping-drop-target-border:var(--ff-gray-800);--ff-color-grouping-drop-target-border-active:var(--ff-gray-800);--ff-color-waypoint-fill:var(--ff-white);--ff-color-waypoint-stroke:var(--ff-blue-500);--ff-color-waypoint-candidate-fill:var(--ff-white);--ff-color-waypoint-candidate-stroke:var(--ff-green-400);--ff-color-minimap-surface:var(--ff-white);--ff-color-minimap-node:var(--ff-gray-700);--ff-color-minimap-view:rgba(65, 118, 255, .14);--ff-color-magnetic-line:var(--ff-blue-500);--ff-color-magnetic-rect-fill:rgba(65, 118, 255, .08);--ff-color-magnetic-rect-border:rgba(65, 118, 255, .24);--ff-radius-node:var(--ff-radius-4);--ff-radius-group:var(--ff-radius-4);--ff-radius-control:var(--ff-radius-4);--ff-radius-socket-square:var(--ff-radius-6);--ff-radius-pill:var(--ff-radius-pill);--ff-font-sans:var(--ff-font-family-sans);--ff-font-mono:var(--ff-font-family-mono);--ff-font-size-body:var(--ff-font-size-sm);--ff-font-size-label:var(--ff-font-size-xs);--ff-shadow-surface:var(--ff-shadow-1);--ff-shadow-floating:var(--ff-shadow-2)}:root{--ff-flow-background-color:var(--ff-color-surface-page);--ff-flow-text-color:var(--ff-color-text-primary);--ff-flow-font-family:var(--ff-font-sans);--ff-flow-font-size:var(--ff-font-size-body);--ff-canvas-background-color:var(--ff-color-surface-canvas);--ff-node-background-color:var(--ff-color-surface-card);--ff-node-background-color-inverse:var(--ff-color-text-primary);--ff-node-border-color:var(--ff-color-border-default);--ff-node-border-color-selected:var(--ff-color-border-accent);--ff-node-color:var(--ff-color-text-primary);--ff-node-border-radius:var(--ff-radius-node);--ff-node-shadow:var(--ff-shadow-surface);--ff-node-shadow-selected:var(--ff-shadow-floating);--ff-node-width:120px;--ff-node-min-height:56px;--ff-node-padding:24px;--ff-group-background-color:var(--ff-color-surface-group);--ff-group-background-color-active:var(--ff-color-surface-group-active);--ff-group-border-color:var(--ff-color-border-subtle);--ff-group-border-color-selected:var(--ff-color-border-accent);--ff-group-border-color-active:var(--ff-color-border-accent);--ff-group-color:var(--ff-color-text-secondary);--ff-group-border-radius:var(--ff-radius-group);--ff-group-min-width:180px;--ff-group-min-height:120px;--ff-group-padding:24px;--ff-grouping-drop-target-border-color:var(--ff-color-grouping-drop-target-border);--ff-grouping-drop-target-border-style:dashed;--ff-grouping-drop-target-border-width:1px;--ff-grouping-drop-target-border-color-active:var(--ff-color-grouping-drop-target-border-active);--ff-grouping-drop-target-border-style-active:dashed;--ff-grouping-drop-target-border-width-active:2px;--ff-handle-background-color:var(--ff-color-surface-card);--ff-handle-border-color:var(--ff-color-border-strong);--ff-handle-color:var(--ff-color-text-secondary);--ff-handle-size:12px;--ff-handle-radius:var(--ff-radius-control);--ff-rotate-handle-size:16px;--ff-connector-background-color:var(--ff-color-surface-card);--ff-connector-border-color:var(--ff-color-border-default);--ff-connector-connected-color:var(--ff-color-connector-connected);--ff-connector-accent-color:var(--ff-color-accent);--ff-connector-disabled-color:var(--ff-color-disabled-surface);--ff-connector-disabled-border-color:var(--ff-color-disabled-border);--ff-connector-size:16px;--ff-connector-node-ring-color:var(--ff-canvas-background-color);--ff-outlet-background-color:var(--ff-color-surface-muted);--ff-outlet-border-color:var(--ff-color-border-default);--ff-outlet-color:var(--ff-color-accent);--ff-outlet-disabled-background-color:var(--ff-color-disabled-surface);--ff-outlet-disabled-border-color:var(--ff-color-disabled-border);--ff-outlet-disabled-color:var(--ff-color-disabled-text);--ff-outlet-border-radius:var(--ff-radius-pill);--ff-outlet-padding-y:6px;--ff-outlet-padding-x:12px;--ff-connection-color:var(--ff-color-connection);--ff-snap-connection-color:var(--ff-color-connection-muted);--ff-connection-hover-color:var(--ff-color-connection-hover);--ff-connection-selected-color:var(--ff-color-accent);--ff-connection-label-color:var(--ff-color-text-secondary);--ff-connection-content-color:var(--ff-node-color);--ff-connection-content-background-color:var(--ff-node-background-color);--ff-connection-content-border-color:var(--ff-node-border-color);--ff-connection-content-border-color-selected:var(--ff-connection-selected-color);--ff-connection-content-border-radius:var(--ff-node-border-radius);--ff-connection-content-font-size:13px;--ff-connection-content-padding-y:2px;--ff-connection-content-padding-x:8px;--ff-connection-width:2px;--ff-connection-hit-width:14px;--ff-connection-drag-handle-fill:var(--ff-color-surface-card);--ff-connection-drag-handle-stroke:var(--ff-color-accent);--ff-marker-color:var(--ff-connection-color);--ff-waypoint-fill:var(--ff-color-waypoint-fill);--ff-waypoint-stroke:var(--ff-color-waypoint-stroke);--ff-waypoint-candidate-fill:var(--ff-color-waypoint-candidate-fill);--ff-waypoint-candidate-stroke:var(--ff-color-waypoint-candidate-stroke);--ff-background-line-color:var(--ff-color-grid);--ff-background-dot-color:var(--ff-color-grid-strong);--ff-selection-area-color:var(--ff-color-selection-fill);--ff-selection-area-border-color:var(--ff-color-selection-stroke);--ff-minimap-background-color:var(--ff-color-minimap-surface);--ff-minimap-border-color:var(--ff-color-border-default);--ff-minimap-node-color:var(--ff-color-minimap-node);--ff-minimap-node-selected-color:var(--ff-color-accent);--ff-minimap-view-color:var(--ff-color-minimap-view);--ff-minimap-view-border-color:var(--ff-color-selection-stroke);--ff-minimap-border-radius:var(--ff-radius-node);--ff-minimap-shadow:var(--ff-shadow-floating);--ff-magnetic-line-color:var(--ff-color-magnetic-line);--ff-magnetic-rect-fill:var(--ff-color-magnetic-rect-fill);--ff-magnetic-rect-border-color:var(--ff-color-magnetic-rect-border);--ff-external-item-background-color:var(--ff-color-surface-card);--ff-external-item-border-color:var(--ff-color-border-default);--ff-external-item-color:var(--ff-color-text-primary);--ff-external-item-disabled-color:var(--ff-color-disabled-text);--ff-external-item-disabled-background-color:var(--ff-color-disabled-surface);--ff-external-item-border-radius:var(--ff-radius-node);--ff-external-item-shadow:var(--ff-shadow-surface);--ff-external-item-preview-shadow:var(--ff-shadow-floating);--ff-external-item-placeholder-background-color:var(--ff-color-surface-soft);--ff-external-item-placeholder-border-color:var(--ff-color-border-subtle)}@-webkit-keyframes fa-spin{0%{-webkit-transform:rotate(0deg);transform:rotate(0)}to{-webkit-transform:rotate(359deg);transform:rotate(359deg)}}:root{--fa-family-brands:"Font Awesome 7 Brands";--fa-font-brands:normal 400 1em/1 var(--fa-family-brands)}:root{--fa-font-regular:normal 400 1em/1 var(--fa-family-classic)}:root{--fa-family-classic:"Font Awesome 7 Free";--fa-font-solid:normal 900 1em/1 var(--fa-family-classic);--fa-style-family-classic:var(--fa-family-classic)}:root{--sm-font-mono:ui-monospace, SFMono-Regular, Menlo, Monaco, Consolas, monospace;--sm-font-display-brand:"Geist", system-ui, sans-serif;--sm-radius-sm:3px;--sm-radius-md:4px;--sm-radius-lg:.5rem;--sm-radius-pill:999px;--sm-violet-50:#F5F3FF;--sm-violet-100:#EDE9FE;--sm-violet-200:#DDD6FE;--sm-violet-300:#C4B5FD;--sm-violet-400:#A78BFA;--sm-violet-500:#8B5CF6;--sm-violet-600:#7C3AED;--sm-violet-700:#6D28D9;--sm-violet-800:#4C1D95;--sm-violet-900:#2E1065}html,body{margin:0;padding:0;height:100dvh;overflow:hidden;font-family:Inter,-apple-system,BlinkMacSystemFont,Segoe UI,Roboto,Helvetica,Arial,sans-serif,"Apple Color Emoji","Segoe UI Emoji";-webkit-font-smoothing:antialiased;-moz-osx-font-smoothing:grayscale;background:var(--sm-bg-page);color:var(--p-text-color)}*,*:before,*:after{box-sizing:border-box}*{scrollbar-width:thin;scrollbar-color:color-mix(in srgb,var(--p-text-color) 30%,transparent) transparent}*::-webkit-scrollbar{width:10px;height:10px}*::-webkit-scrollbar-track{background:transparent}*::-webkit-scrollbar-thumb{background-color:color-mix(in srgb,var(--p-text-color) 25%,transparent);border-radius:var(--sm-radius-pill);border:2px solid transparent;background-clip:padding-box}*::-webkit-scrollbar-thumb:hover{background-color:color-mix(in srgb,var(--p-text-color) 45%,transparent)}:root{--sm-bg-page:#f8fafc;--sm-bg-content:#ffffff;--sm-bg-hover:#f1f5f9;--sm-border:#e2e8f0;--sm-nav-active-bg:#eff6ff;--sm-edge-invokes:#b8843a;--sm-edge-invokes-active:#f59e0b;--sm-edge-references:#7daa90;--sm-edge-references-active:#10b981;--sm-edge-mentions:#6fa2c0;--sm-edge-mentions-active:#0ea5e9;--sm-edge-supersedes:#9ca3af;--sm-edge-supersedes-active:#4b5563;--sm-edge-neutral:#6b7280;--sm-link-in-bg:#e0e7ff;--sm-link-in-fg:#3730a3;--sm-link-out-bg:#fef3c7;--sm-link-out-fg:#92400e;--sm-severity-info:#1e3a8a;--sm-severity-success:#065f46;--sm-severity-warn:#ca8a04;--sm-severity-error:#991b1b;--sm-severity-info-bg:rgba(219, 234, 254, .35);--sm-severity-success-bg:rgba(209, 250, 229, .35);--sm-severity-warn-bg:rgba(254, 243, 199, .35);--sm-severity-error-bg:rgba(254, 226, 226, .35);--sm-stat-tokens-bg:rgba(59, 130, 246, .14);--sm-stat-bytes-bg:rgba(245, 158, 11, .16);--sm-accent-fg:#ffffff;--sm-shadow-topbar:0 1px 2px rgba(0, 0, 0, .03);--sm-shadow-eventlog:0 -4px 16px rgba(0, 0, 0, .08);--sm-shadow-floating:0 4px 14px rgba(0, 0, 0, .08);--sm-shadow-card:0 1px 2px rgba(0, 0, 0, .05);--sm-shadow-card-hover:0 3px 12px rgba(0, 0, 0, .12)}</style><link rel="stylesheet" href="styles-HI4A6IWA.css" media="print" onload="this.media='all'"><noscript><link rel="stylesheet" href="styles-HI4A6IWA.css"></noscript></head>
|
|
31
31
|
<body>
|
|
32
32
|
<sm-root></sm-root>
|
|
33
|
-
<link rel="modulepreload" href="chunk-
|
|
33
|
+
<link rel="modulepreload" href="chunk-XJL4DZ4M.js"><link rel="modulepreload" href="chunk-HFPA56IM.js"><link rel="modulepreload" href="chunk-PZ6Q5AOT.js"><link rel="modulepreload" href="chunk-HP375T2O.js"><link rel="modulepreload" href="chunk-IUDL3NDH.js"><link rel="modulepreload" href="chunk-YL6SWAFJ.js"><link rel="modulepreload" href="chunk-C2YUQODZ.js"><link rel="modulepreload" href="chunk-VB56BUGO.js"><script src="main-7VYTTJP7.js" type="module"></script></body>
|
|
34
34
|
</html>
|
|
@@ -0,0 +1,3 @@
|
|
|
1
|
+
import{a as De,b as je,c as Ne,d as q,e as $e,f as Fe,g as ze,h as Be,i as Ue,u as qe,v as re,w as et,x as tt}from"./chunk-XJL4DZ4M.js";import{k as Xe,l as Ge,m as Ye,n as O}from"./chunk-HFPA56IM.js";import{a as L,b as I,c as ne,d as rt,e as nt,g as ot}from"./chunk-PZ6Q5AOT.js";import{a as Te,b as Me,c as V,d as Ee,e as Oe,f as Le}from"./chunk-HP375T2O.js";import{b as it}from"./chunk-IUDL3NDH.js";import{Ab as R,Ad as Je,Bb as Ce,Bd as He,Ca as G,Cb as f,Cd as Qe,Ed as ie,Fa as a,Fd as g,Gd as J,Hd as We,I as M,Id as H,Jd as Q,M as U,N as s,Nb as Ae,Ob as he,Pd as Ze,Qb as Se,Ra as K,Rb as u,Sb as v,T as j,Tb as F,Tc as Re,U as N,Xa as _e,Z as ye,_a as Y,bb as Pe,cb as Ie,da as be,db as P,ea as E,f as fe,fd as Ke,ga as X,gb as w,gd as Ve,hb as x,m as B,mb as h,mc as d,nb as l,ob as c,pb as C,pc as we,qb as Z,rb as ue,sb as ke,vc as xe,vd as ee,wd as te,yb as $}from"./chunk-YL6SWAFJ.js";import"./chunk-C2YUQODZ.js";import"./chunk-VB56BUGO.js";var ve="skill-map",A={brand:ve,alpha:"ALPHA - do not use in production",devChip:"dev",devChipTooltip:"BFF launched from a local checkout (not the npm install).",devChipA11y:"Development build: BFF is running from a local checkout.",lensChipTooltip:i=>`Active lens: ${i}. The map reflects how ${i} interprets your files.`,lensChipA11y:i=>`Active provider lens: ${i}.`,nav:{map:"Map",files:"Files",searchLabel:"Search nodes by name or tag",searchTooltip:"Search",searchPlaceholder:"Search by name or tag...",searchAriaLabel:"Search nodes by name or tag",searchClearLabel:"Clear search"},actions:{},badge:{nodes:"nodes",mapInfo:(i,e)=>{let t=`Run scan
|
|
2
|
+
${i.toLocaleString()} nodes \xB7 ${e.raw.toLocaleString()} links`;if(e.raw===e.drawn)return t;let r=[],n=e.brokenSource+e.brokenTarget;return n>0&&r.push(`${n} broken`),e.selfLoops>0&&r.push(`${e.selfLoops} self-loop${e.selfLoops===1?"":"s"}`),e.duplicates>0&&r.push(`${e.duplicates} duplicate${e.duplicates===1?"":"s"}`),`${t}
|
|
3
|
+
${e.drawn.toLocaleString()} drawn (${r.join(", ")})`},mapInfoA11y:(i,e)=>`Map contains ${i} nodes and ${e.raw} links; ${e.drawn} drawn on the canvas`},a11y:{viewSwitcher:"View switcher"},viewportWarning:{title:"Looks like you're on a small screen",subtitle:"skill-map is built for desktop",body:"The map and inspector need room to breathe. Pop this open on a screen at least 768px wide. See you there."},documentTitle:(i,e)=>{let t=i?`${i} - ${ve}`:ve;return e?`${t} v${e}`:t}};var st=[{path:"",pathMatch:"full",redirectTo:"map"},{path:"map",loadComponent:()=>import("./chunk-HHPSCDLM.js").then(i=>i.GraphView),title:A.nav.map},{path:"files",loadComponent:()=>import("./chunk-5GD2GBPS.js").then(i=>i.FilesView),title:A.nav.files},{path:"**",redirectTo:"map"}];var T={errors:{unknownMode:i=>`SKILL_MAP_MODE: unknown value "${i}"`,restPrefix:i=>`BFF error [${i}]: `,malformedResponse:"BFF returned a malformed response",demoFetchFailed:(i,e)=>`Demo bundle fetch failed for "${i}": ${e}`,demoParseFailed:(i,e)=>`Demo bundle parse failed for "${i}": ${e}`,graphFormatNotInDemo:i=>`Graph format "${i}" is not bundled in demo mode (only "ascii").`}};function oe(i){let e=new TextEncoder().encode(i),t="";for(let r=0;r<e.length;r++)t+=String.fromCharCode(e[r]);return btoa(t).replace(/\+/g,"-").replace(/\//g,"_").replace(/=+$/,"")}var p="/api",se=class i{http;ws;kindRegistry;providerRegistry;contributionsRegistry;constructor(e,t,r,n,o){this.http=e??s(V),this.ws=t??s(H),this.kindRegistry=r??s(O),this.contributionsRegistry=n??s(re),this.providerRegistry=o??s(L)}async health(){return this.getJson(`${p}/health`)}async loadScan(){let[e]=await Promise.all([this.getJson(`${p}/scan`),this.listNodes({limit:0}).catch(()=>null)]);return e}async runScan(){return this.patchJson(`${p}/scan`,{},"POST")}async listNodes(e={}){let t=Ct(e),r=await this.getJson(`${p}/nodes${t}`);return this.ingestRegistry(r.kindRegistry),this.ingestContributionsRegistry(r.contributionsRegistry),this.ingestProviderRegistry(r.providerRegistry),r}async getNode(e,t={}){let r=oe(e),n=t.includeBody?"?include=body":"";try{let o=await this.getJson(`${p}/nodes/${r}${n}`);return this.ingestRegistry(o.kindRegistry),this.ingestContributionsRegistry(o.contributionsRegistry),this.ingestProviderRegistry(o.providerRegistry),o}catch(o){if(o instanceof g&&o.code==="not-found")return null;throw o}}async listLinks(e={}){let t=At(e),r=await this.getJson(`${p}/links${t}`);return this.ingestRegistry(r.kindRegistry),this.ingestContributionsRegistry(r.contributionsRegistry),this.ingestProviderRegistry(r.providerRegistry),r}async listIssues(e={}){let t=St(e),r=await this.getJson(`${p}/issues${t}`);return this.ingestRegistry(r.kindRegistry),this.ingestContributionsRegistry(r.contributionsRegistry),this.ingestProviderRegistry(r.providerRegistry),r}async loadGraph(e="ascii"){let t=`${p}/graph?format=${encodeURIComponent(e)}`;try{return await B(this.http.get(t,{responseType:"text"}))}catch(r){throw this.translateError(r)}}async loadConfig(){let e=await this.getJson(`${p}/config`);return this.ingestRegistry(e.kindRegistry),this.ingestContributionsRegistry(e.contributionsRegistry),this.ingestProviderRegistry(e.providerRegistry),e.value}async listPlugins(){let e=await this.getJson(`${p}/plugins`);return this.ingestRegistry(e.kindRegistry),this.ingestContributionsRegistry(e.contributionsRegistry),this.ingestProviderRegistry(e.providerRegistry),e}async setPluginEnabled(e,t){let r=await this.patchJson(`${p}/plugins/${encodeURIComponent(e)}`,{enabled:t});return this.ingestRegistry(r.kindRegistry),this.ingestContributionsRegistry(r.contributionsRegistry),this.ingestProviderRegistry(r.providerRegistry),r}async setPluginExtensionEnabled(e,t,r){let n=await this.patchJson(`${p}/plugins/${encodeURIComponent(e)}/extensions/${encodeURIComponent(t)}`,{enabled:r});return this.ingestRegistry(n.kindRegistry),this.ingestContributionsRegistry(n.contributionsRegistry),this.ingestProviderRegistry(n.providerRegistry),n}async applyPluginChanges(e){let t=await this.patchJson(`${p}/plugins`,{changes:e});return this.ingestRegistry(t.kindRegistry),this.ingestContributionsRegistry(t.contributionsRegistry),this.ingestProviderRegistry(t.providerRegistry),t}async getPreferences(){return await this.getJson(`${p}/preferences`)}async setPreferences(e){return await this.patchJson(`${p}/preferences`,e)}async getProjectPreferences(){return await this.getJson(`${p}/project-preferences`)}async setProjectPreferences(e){return await this.patchJson(`${p}/project-preferences`,e)}async getProjectIgnore(){return await this.getJson(`${p}/project-ignore`)}async setProjectIgnore(e){return await this.patchJson(`${p}/project-ignore`,e)}async getActiveProvider(){return await this.getJson(`${p}/active-provider`)}async setActiveProvider(e){return await this.patchJson(`${p}/active-provider`,{activeProvider:e})}async setFavorite(e){let t=oe(e);try{await B(this.http.put(`${p}/favorites/${t}`,null))}catch(r){throw this.translateError(r)}}async unsetFavorite(e){let t=oe(e);try{await B(this.http.delete(`${p}/favorites/${t}`))}catch(r){throw this.translateError(r)}}async bumpSidecar(e,t={}){let r={nodePath:e};return t.force!==void 0&&(r.force=t.force),t.confirm!==void 0&&(r.confirm=t.confirm),this.patchJson(`${p}/sidecar/bump`,r,"POST")}async getUpdateStatus(){return this.getJson(`${p}/update-status`)}async getRegisteredAnnotations(){return(await this.getJson(`${p}/annotations/registered`)).items}ingestRegistry(e){e&&this.kindRegistry.ingest(e)}ingestProviderRegistry(e){e&&this.providerRegistry.ingest(e)}ingestContributionsRegistry(e){this.contributionsRegistry.setRegistry(e)}async lookupContribution(e,t,r){let n=new URLSearchParams({path:r});try{return(await this.getJson(`${p}/contributions/${encodeURIComponent(e)}/${encodeURIComponent(t)}?${n.toString()}`)).items[0]??null}catch{return null}}events(){return this.ws.events$}async getJson(e){try{return await B(this.http.get(e))}catch(t){throw this.translateError(t)}}async patchJson(e,t,r="PATCH"){try{let n=r==="POST"?this.http.post(e,t):this.http.patch(e,t);return await B(n)}catch(n){throw this.translateError(n)}}translateError(e){if(e instanceof g)return e;if(e instanceof Me){let r=wt(e.error);return r?new g(r.error.code,r.error.message,r.error.details):new g("internal",e.message||T.errors.malformedResponse)}let t=e instanceof Error?e.message:String(e);return new g("internal",t)}static \u0275fac=function(t){return new(t||i)(U(V),U(H),U(O),U(re),U(L))};static \u0275prov=M({token:i,factory:i.\u0275fac,providedIn:"root"})};function Ct(i){let e=new URLSearchParams;i.kind&&i.kind.length>0&&e.set("kind",i.kind.join(",")),i.hasIssues!==void 0&&e.set("hasIssues",String(i.hasIssues)),i.path&&e.set("path",i.path),i.limit!==void 0&&e.set("limit",String(i.limit)),i.offset!==void 0&&e.set("offset",String(i.offset));let t=e.toString();return t?`?${t}`:""}function At(i){let e=new URLSearchParams;i.kind&&i.kind.length>0&&e.set("kind",i.kind.join(",")),i.from&&e.set("from",i.from),i.to&&e.set("to",i.to);let t=e.toString();return t?`?${t}`:""}function St(i){let e=new URLSearchParams;i.severity&&e.set("severity",i.severity),i.analyzerId&&e.set("analyzerId",i.analyzerId),i.node&&e.set("node",i.node),i.nodes&&i.nodes.length>0&&e.set("nodes",i.nodes.join(","));let t=e.toString();return t?`?${t}`:""}function wt(i){if(typeof i!="object"||i===null)return null;let e=i;if(e.ok!==!1)return null;let t=e.error;if(typeof t!="object"||t===null)return null;let r=t;return typeof r.code!="string"||typeof r.message!="string"?null:{ok:!1,error:{code:r.code,message:r.message,details:r.details}}}var xt="data.json",Rt="data.meta.json",ae=class{constructor(e=globalThis.fetch.bind(globalThis),t,r){this.fetchImpl=e;this.kindRegistry=t??s(O),this.providerRegistry=r??s(L)}metaPromise=null;dataPromise=null;kindRegistry;providerRegistry;async health(){return(await this.loadMeta()).health}async loadScan(){let[e,t]=await Promise.all([this.loadData(),this.loadMeta()]);return this.kindRegistry.ingest(t.nodes.kindRegistry),this.providerRegistry.ingest(t.nodes.providerRegistry),e}async listNodes(e={}){let t=await this.loadMeta();if(Tt(e))return this.kindRegistry.ingest(t.nodes.kindRegistry),this.providerRegistry.ingest(t.nodes.providerRegistry),t.nodes;let r=await this.loadData(),n=r.issues,o=r.nodes;if(e.kind&&e.kind.length>0){let k=new Set(e.kind);o=o.filter(S=>k.has(S.kind))}if(e.path){let k=Ot(e.path);o=o.filter(S=>k.test(S.path))}if(e.hasIssues===!0){let k=at(n);o=o.filter(S=>k.has(S.path))}else if(e.hasIssues===!1){let k=at(n);o=o.filter(S=>!k.has(S.path))}let m=o.length,y=e.offset??0,b=e.limit??1e3,_=o.slice(y,y+b);return this.kindRegistry.ingest(t.nodes.kindRegistry),this.providerRegistry.ingest(t.nodes.providerRegistry),{schemaVersion:"1",kind:"nodes",items:_,filters:{kind:e.kind??null,hasIssues:e.hasIssues??null,path:e.path?[e.path]:null},counts:{total:m,returned:_.length,page:{offset:y,limit:b}},kindRegistry:t.nodes.kindRegistry,providerRegistry:t.nodes.providerRegistry}}async getNode(e,t={}){let[r,n]=await Promise.all([this.loadData(),this.loadMeta()]),o=r.nodes.find(_=>_.path===e);if(!o)return null;let m=r.links.filter(_=>_.target===e),y=r.links.filter(_=>_.source===e),b=r.issues.filter(_=>_.nodeIds.includes(e));return this.kindRegistry.ingest(n.nodes.kindRegistry),this.providerRegistry.ingest(n.nodes.providerRegistry),{schemaVersion:"1",kind:"node",item:o,links:{incoming:m,outgoing:y},issues:b,kindRegistry:n.nodes.kindRegistry,providerRegistry:n.nodes.providerRegistry}}async listLinks(e={}){let t=await this.loadMeta();if(Mt(e))return this.kindRegistry.ingest(t.links.kindRegistry),this.providerRegistry.ingest(t.links.providerRegistry),t.links;let n=(await this.loadData()).links;if(e.kind&&e.kind.length>0){let o=new Set(e.kind);n=n.filter(m=>o.has(m.kind))}return e.from&&(n=n.filter(o=>o.source===e.from)),e.to&&(n=n.filter(o=>o.target===e.to)),this.kindRegistry.ingest(t.links.kindRegistry),this.providerRegistry.ingest(t.links.providerRegistry),{schemaVersion:"1",kind:"links",items:n,filters:{kind:e.kind??null,from:e.from??null,to:e.to??null},counts:{total:n.length,returned:n.length},kindRegistry:t.links.kindRegistry,providerRegistry:t.links.providerRegistry}}async listIssues(e={}){let t=await this.loadMeta();if(Et(e))return this.kindRegistry.ingest(t.issues.kindRegistry),this.providerRegistry.ingest(t.issues.providerRegistry),t.issues;let n=(await this.loadData()).issues;if(e.severity&&(n=n.filter(o=>o.severity===e.severity)),e.analyzerId&&(n=n.filter(o=>o.analyzerId===e.analyzerId)),e.node&&(n=n.filter(o=>o.nodeIds.includes(e.node))),e.nodes&&e.nodes.length>0){let o=new Set(e.nodes);n=n.filter(m=>m.nodeIds.some(y=>o.has(y)))}return this.kindRegistry.ingest(t.issues.kindRegistry),this.providerRegistry.ingest(t.issues.providerRegistry),{schemaVersion:"1",kind:"issues",items:n,filters:{severity:e.severity??null,analyzerId:e.analyzerId??null,node:e.node??null,nodes:e.nodes&&e.nodes.length>0?[...e.nodes]:null},counts:{total:n.length,returned:n.length},kindRegistry:t.issues.kindRegistry,providerRegistry:t.issues.providerRegistry}}async loadGraph(e="ascii"){if(e!=="ascii")throw new g("bad-query",T.errors.graphFormatNotInDemo(e));return(await this.loadMeta()).graph.ascii}async loadConfig(){let e=await this.loadMeta();return this.kindRegistry.ingest(e.config.kindRegistry),this.providerRegistry.ingest(e.config.providerRegistry),e.config.value}async listPlugins(){let e=await this.loadMeta();return this.kindRegistry.ingest(e.plugins.kindRegistry),this.providerRegistry.ingest(e.plugins.providerRegistry),e.plugins}async setFavorite(e){throw new g("demo-readonly","Favorites are not available in demo mode (static bundle is immutable).")}async unsetFavorite(e){throw new g("demo-readonly","Favorites are not available in demo mode (static bundle is immutable).")}async setPluginEnabled(e,t){throw new g("demo-readonly","Plugin toggles are not available in demo mode (static bundle is immutable).")}async setPluginExtensionEnabled(e,t,r){throw new g("demo-readonly","Plugin toggles are not available in demo mode (static bundle is immutable).")}async applyPluginChanges(e){throw new g("demo-readonly","Plugin toggles are not available in demo mode (static bundle is immutable).")}async runScan(){throw new g("demo-readonly","Manual scan is not available in demo mode (static bundle is immutable).")}async getPreferences(){return{updateCheck:{enabled:!0}}}async setPreferences(e){throw new g("demo-readonly","Preference toggles are not available in demo mode (static bundle is immutable).")}async getProjectPreferences(){return{scan:{referencePaths:[]}}}async setProjectPreferences(e){throw new g("demo-readonly","Project preferences are not available in demo mode (static bundle is immutable).")}async getProjectIgnore(){return{patterns:[]}}async setProjectIgnore(e){throw new g("demo-readonly","Ignore patterns are not available in demo mode (static bundle is immutable).")}async getActiveProvider(){return{activeProvider:null,detected:[],source:"none"}}async setActiveProvider(e){throw new g("demo-readonly","Active provider lens is not available in demo mode (static bundle is immutable).")}async lookupContribution(){return null}async bumpSidecar(e,t={}){throw new g("demo-readonly","Sidecar bump is not available in demo mode (static bundle is immutable).")}async getUpdateStatus(){return{current:(await this.loadMeta()).health.implVersion,latest:null,isOutdated:!1,checkedAt:null,shownAt:null}}async getRegisteredAnnotations(){return[]}events(){return fe}loadMeta(){return this.metaPromise||(this.metaPromise=this.fetchJson(Rt)),this.metaPromise}loadData(){return this.dataPromise||(this.dataPromise=this.fetchJson(xt)),this.dataPromise}async fetchJson(e){let t;try{t=await this.fetchImpl(e)}catch(r){let n=r instanceof Error?r.message:String(r);throw new g("internal",T.errors.demoFetchFailed(e,n))}if(!t.ok)throw new g("internal",T.errors.demoFetchFailed(e,`HTTP ${t.status}`));try{return await t.json()}catch(r){let n=r instanceof Error?r.message:String(r);throw new g("internal",T.errors.demoParseFailed(e,n))}}};function Tt(i){return!(i.kind&&i.kind.length>0||i.hasIssues!==void 0||i.path||i.offset!==void 0&&i.offset!==0||i.limit!==void 0)}function Mt(i){return!(i.kind&&i.kind.length>0||i.from||i.to)}function Et(i){return!(i.severity||i.analyzerId||i.node||i.nodes&&i.nodes.length>0)}function at(i){let e=new Set;for(let t of i)for(let r of t.nodeIds)e.add(r);return e}function Ot(i){let t=i.replace(/[.+^${}()|[\]\\]/g,"\\$&").replace(/\*/g,".*").replace(/\?/g,".");return new RegExp(`^${t}$`)}function lt(){let i=s(J);if(i==="live")return new se(s(V),s(H));if(i==="demo")return new ae;let e=i;throw new Error(T.errors.unknownMode(String(e)))}var dt="search",pt="kinds",ct="linkKinds",mt="stabilities",gt="hasIssues",ut="staleOnly",ht="favoritesOnly",vt="severities",Lt=["error","warn"],de=class i{filters=s(Ye);router=s($e);activatedRoute=s(je);kindRegistry=s(O);destroyRef=s(ye);suppressUrlReadback=!1;constructor(){this.applyUrlToFilters(this.currentParams()),this.router.events.pipe(Qe(this.destroyRef)).subscribe(e=>{if(e instanceof De){if(this.suppressUrlReadback)return;this.applyUrlToFilters(this.currentParams())}}),X(()=>{let e=this.computeQueryParams();this.writeQueryParams(e)})}currentParams(){let e=this.router.parseUrl(this.router.url),t=new URLSearchParams;for(let[r,n]of Object.entries(e.queryParams))Array.isArray(n)?t.set(r,n.join(",")):n!=null&&t.set(r,String(n));return this.activatedRoute,t}applyUrlToFilters(e){let t=e.get(dt)??"";t!==this.filters.searchText()&&this.filters.setSearchText(t);let r=Dt(e.get(pt),this.kindRegistry.kinds().map(S=>S.name));le(r,this.filters.selectedKinds())||this.filters.setKinds(r);let n=jt(e.get(mt));le(n,this.filters.selectedStabilities())||this.filters.setStabilities(n);let o=e.get(gt)==="true";o!==this.filters.hasIssuesOnly()&&this.filters.setHasIssuesOnly(o);let m=e.get(ut)==="true";m!==this.filters.staleOnly()&&this.filters.setStaleOnly(m);let y=e.get(ht)==="true";y!==this.filters.favoritesOnly()&&this.filters.setFavoritesOnly(y);let b=Nt(e.get(ct));le(b,this.filters.selectedLinkKinds())||this.filters.setLinkKinds(b);let _=$t(e.get(vt)),k=[];this.filters.severityErrorActive()&&k.push("error"),this.filters.severityWarnActive()&&k.push("warn"),le(_,k)||this.filters.setSeverityFilters(_)}computeQueryParams(){let e=this.filters.searchText().trim(),t=this.filters.selectedKinds(),r=this.filters.selectedLinkKinds(),n=this.filters.selectedStabilities(),o=this.filters.hasIssuesOnly(),m=this.filters.staleOnly(),y=this.filters.favoritesOnly(),b=[];return this.filters.severityErrorActive()&&b.push("error"),this.filters.severityWarnActive()&&b.push("warn"),{[dt]:e.length>0?e:null,[pt]:t.length>0?t.join(","):null,[ct]:r.length>0?r.join(","):null,[mt]:n.length>0?n.join(","):null,[gt]:o?"true":null,[ut]:m?"true":null,[ht]:y?"true":null,[vt]:b.length>0?b.join(","):null}}writeQueryParams(e){let t=this.currentParams(),r=new Map(Object.entries(e)),n=!1;for(let[o,m]of r)if((t.get(o)??null)!==m){n=!0;break}n&&(this.suppressUrlReadback=!0,this.router.navigate([],{relativeTo:this.activatedRoute,queryParams:e,queryParamsHandling:"merge",replaceUrl:!0}).finally(()=>{setTimeout(()=>{this.suppressUrlReadback=!1},0)}))}static \u0275fac=function(t){return new(t||i)};static \u0275prov=M({token:i,factory:i.\u0275fac,providedIn:"root"})};function Dt(i,e){if(!i)return[];let t=new Set(e);return i.split(",").map(r=>r.trim()).filter(r=>t.has(r))}function jt(i){if(!i)return[];let e=new Set(Xe);return i.split(",").map(t=>t.trim()).filter(t=>e.has(t))}function Nt(i){if(!i)return[];let e=new Set(Ge);return i.split(",").map(t=>t.trim()).filter(t=>e.has(t))}function $t(i){if(!i)return[];let e=new Set(Lt);return i.split(",").map(t=>t.trim()).filter(t=>e.has(t))}function le(i,e){if(i.length!==e.length)return!1;for(let t=0;t<i.length;t++)if(i[t]!==e[t])return!1;return!0}var ft={healthFailed:i=>`ProjectInfoService: /api/health probe failed (${i})`};var D=class i{dataSource=s(ie);status=E(null);cwd=d(()=>this.status()?.cwd??null);implVersion=d(()=>this.status()?.implVersion??null);dev=d(()=>this.status()?.dev===!0);activeProviderState=E(null);activeProvider=d(()=>this.activeProviderState());async load(){try{let e=await this.dataSource.health();this.status.set(e)}catch(e){let t=e instanceof Error?e.message:String(e);console.warn(ft.healthFailed(t))}await this.reloadActiveProvider()}async reloadActiveProvider(){try{let e=await this.dataSource.getActiveProvider();this.activeProviderState.set(e.activeProvider)}catch{}}static \u0275fac=function(t){return new(t||i)};static \u0275prov=M({token:i,factory:i.\u0275fac,providedIn:"root"})};var pe=class i extends q{title=s(Le);projectInfo=s(D);constructor(){super(),X(()=>{let e=yt(this.projectInfo.cwd()),t=this.projectInfo.implVersion();this.title.setTitle(A.documentTitle(e,t))})}updateTitle(e){let t=yt(this.projectInfo.cwd()),r=this.projectInfo.implVersion();this.title.setTitle(A.documentTitle(t,r))}static \u0275fac=function(t){return new(t||i)};static \u0275prov=M({token:i,factory:i.\u0275fac,providedIn:"root"})};function yt(i){if(!i)return null;let e=i.replace(/[\\/]+$/,"");if(!e||e===".")return null;let t=Math.max(e.lastIndexOf("/"),e.lastIndexOf("\\"));return(t>=0?e.slice(t+1):e)||null}function Ft(...i){for(let e of i)Promise.resolve(e.load())}var bt={providers:[be(),Be(st,Ue()),{provide:q,useClass:pe},Ee(Oe()),Ve({}),Y(async()=>{let i=s(Ke),[{default:e},{definePreset:t}]=await Promise.all([import("./chunk-DZBSELHN.js"),import("./chunk-CFJBTDAA.js")]),r=t(e,{semantic:{primary:{50:"#F5F3FF",100:"#EDE9FE",200:"#DDD6FE",300:"#C4B5FD",400:"#A78BFA",500:"#8B5CF6",600:"#7C3AED",700:"#6D28D9",800:"#4C1D95",900:"#2E1065",950:"#1E0A4D"}}});i.setThemeConfig({theme:{preset:r,options:{darkModeSelector:".app-dark"}}})}),{provide:J,useFactory:We},{provide:ie,useFactory:lt},Y(()=>{Ft(s(Q),s(ne),s(D))}),Y(()=>{s(de),s(qe)})]};var z={toggleToAuto:"Switch to auto theme (follow system)",toggleToLight:"Switch to light theme",toggleToDark:"Switch to dark theme",currentAuto:"Auto theme (follows system)",currentLight:"Light theme",currentDark:"Dark theme"};var _t={body:"You are viewing a static demo of skill-map's UI. Install it:",installCommand:"npm i -g @skill-map/cli",homeCta:"\u2190 Back to skill-map.dev",homeHref:"/",dismissAria:"Dismiss demo banner"};function Bt(i,e){if(i&1){let t=$();l(0,"div",0),C(1,"span",1),l(2,"p",2),u(3),l(4,"code",3),u(5),c()(),l(6,"a",4),u(7),c(),l(8,"p-button",5),R("onClick",function(){j(t);let n=f();return N(n.dismiss())}),c()()}if(i&2){let t=f();a(3),F(" ",t.texts.body," "),a(2),v(t.texts.installCommand),a(),h("href",t.texts.homeHref,G),a(),v(t.texts.homeCta),a(),h("ariaLabel",t.texts.dismissAria)("text",!0)("rounded",!0)}}var Pt="sm.demoBannerDismissed",ce=class i{mode=s(J);texts=_t;dismissed=E(this.readDismissed());visible=d(()=>this.mode==="demo"&&!this.dismissed());dismiss(){this.dismissed.set(!0);try{globalThis.localStorage?.setItem(Pt,"1")}catch{}}readDismissed(){if(this.mode!=="demo")return!0;try{return globalThis.localStorage?.getItem(Pt)==="1"}catch{return!1}}static \u0275fac=function(t){return new(t||i)};static \u0275cmp=K({type:i,selectors:[["sm-demo-banner"]],decls:1,vars:1,consts:[["role","status","data-testid","demo-banner",1,"demo-banner"],["aria-hidden","true",1,"demo-banner__icon","fa-solid","fa-circle-info"],[1,"demo-banner__body"],["data-testid","demo-banner-install",1,"demo-banner__cmd"],["data-testid","demo-banner-home",1,"demo-banner__home",3,"href"],["icon","fa-solid fa-xmark","severity","secondary","size","small","data-testid","demo-banner-dismiss",3,"onClick","ariaLabel","text","rounded"]],template:function(t,r){t&1&&w(0,Bt,9,7,"div",0),t&2&&x(r.visible()?0:-1)},dependencies:[te,ee],styles:["[_nghost-%COMP%]{display:block}.demo-banner[_ngcontent-%COMP%]{display:flex;align-items:center;gap:.75rem;padding:.5rem 1rem;border-bottom:1px solid var(--p-content-border-color);background:var(--p-highlight-background);color:var(--p-text-color);font-size:.875rem}.demo-banner__icon[_ngcontent-%COMP%]{font-size:1.1rem;color:var(--p-primary-color)}.demo-banner__body[_ngcontent-%COMP%]{flex:1 1 auto;margin:0;line-height:1.4}.demo-banner__cmd[_ngcontent-%COMP%]{font-family:var(--sm-font-mono);background:var(--p-content-background);border:1px solid var(--p-content-border-color);border-radius:var(--sm-radius-md);padding:.05rem .4rem;font-size:.85em;margin-left:.25rem}.demo-banner__home[_ngcontent-%COMP%]{color:var(--p-primary-color);font-weight:500;text-decoration:none;white-space:nowrap}.demo-banner__home[_ngcontent-%COMP%]:hover, .demo-banner__home[_ngcontent-%COMP%]:focus-visible{text-decoration:underline}"],changeDetection:0})};var kt={bodyAtLimit:(i,e)=>`Your graph has ${i} ${i===1?"node":"nodes"}, at the recommended limit of ${e}. Past this point the map gets hard to read and analyzer signal degrades.`,bodyOverLimit:(i,e,t)=>`Your graph has ${i} nodes, over the recommended limit of ${e} (currently allowed via --max-nodes ${t}). Past this point the map gets hard to read and analyzer signal degrades.`,bodyCapped:(i,e,t)=>`Scan capped at ${e} ${e===1?"node":"nodes"} (${t==="override"?"--max-nodes":"scan.maxNodes"}). The walker stopped at ${i} ${i===1?"file":"files"}, additional files were dropped. The map and analyzers only see what made it through.`,cta:"Edit .skillmapignore",ctaAria:"Open Settings to edit ignored patterns"};function Ut(i,e){if(i&1){let t=$();Z(0,"div",0),ke(1,"span",1),Z(2,"p",2),u(3),ue(),Z(4,"button",3),Ce("click",function(){j(t);let n=f();return N(n.onCta())}),u(5),ue()()}if(i&2){let t=f();P("data-mode",t.state().mode),a(3),F(" ",t.state().body," "),a(),P("aria-label",t.texts.ctaAria),a(),F(" ",t.texts.cta," ")}}var me=class i{loader=s(Q);texts=kt;openSettings=we();state=d(()=>{let e=this.loader.scan();if(!e)return{mode:"hidden",body:""};let t=e.recommendedNodeLimit;if(t===void 0)return{mode:"hidden",body:""};let r=e.overrideMaxNodes??null,n=r??t,o=e.stats.filesWalked,m=e.stats.nodesCount;return o>n?{mode:"capped",body:this.texts.bodyCapped(o,n,r!==null?"override":"setting")}:m<t?{mode:"hidden",body:""}:r!==null&&m>t?{mode:"overLimit",body:this.texts.bodyOverLimit(m,t,r)}:{mode:"atLimit",body:this.texts.bodyAtLimit(m,t)}});visible=d(()=>this.state().mode!=="hidden");onCta(){this.openSettings.emit()}static \u0275fac=function(t){return new(t||i)};static \u0275cmp=K({type:i,selectors:[["sm-oversized-banner"]],outputs:{openSettings:"openSettings"},decls:1,vars:1,consts:[["role","status","data-testid","oversized-banner",1,"oversized-banner"],["aria-hidden","true",1,"oversized-banner__icon","fa-solid","fa-triangle-exclamation"],["data-testid","oversized-banner-body",1,"oversized-banner__body"],["type","button","data-testid","oversized-banner-cta",1,"oversized-banner__cta",3,"click"]],template:function(t,r){t&1&&w(0,Ut,6,4,"div",0),t&2&&x(r.visible()?0:-1)},styles:["[_nghost-%COMP%]{display:block}.oversized-banner[_ngcontent-%COMP%]{display:flex;align-items:center;gap:.75rem;padding:.5rem 1rem;border-bottom:1px solid var(--p-content-border-color);font-size:.875rem}.oversized-banner[data-mode=capped][_ngcontent-%COMP%]{background:var(--sm-severity-error-bg);color:var(--sm-severity-error)}.oversized-banner[data-mode=overLimit][_ngcontent-%COMP%], .oversized-banner[data-mode=atLimit][_ngcontent-%COMP%]{background:var(--sm-severity-warn-bg);color:var(--sm-severity-warn)}.oversized-banner__icon[_ngcontent-%COMP%]{font-size:1.1rem}.oversized-banner[data-mode=capped][_ngcontent-%COMP%] .oversized-banner__icon[_ngcontent-%COMP%]{color:var(--sm-severity-error)}.oversized-banner[data-mode=overLimit][_ngcontent-%COMP%] .oversized-banner__icon[_ngcontent-%COMP%], .oversized-banner[data-mode=atLimit][_ngcontent-%COMP%] .oversized-banner__icon[_ngcontent-%COMP%]{color:var(--sm-severity-warn)}.oversized-banner__body[_ngcontent-%COMP%]{flex:1 1 auto;margin:0;line-height:1.4}.oversized-banner__cta[_ngcontent-%COMP%]{flex:0 0 auto;background:transparent;color:inherit;border:1px solid currentColor;padding:.25rem .75rem;border-radius:var(--p-border-radius);font:inherit;font-size:.8125rem;font-weight:500;cursor:pointer;transition:background .15s ease}.oversized-banner__cta[_ngcontent-%COMP%]:hover, .oversized-banner__cta[_ngcontent-%COMP%]:focus-visible{background:color-mix(in srgb,currentColor 12%,transparent)}.oversized-banner__cta[_ngcontent-%COMP%]:focus-visible{outline:2px solid currentColor;outline-offset:2px}"],changeDetection:0})};var Kt=()=>[import("./chunk-HWP3HM55.js").then(i=>i.SettingsModal)];function Vt(i,e){if(i&1&&(l(0,"span",11),u(1),c()),i&2){let t=f();h("pTooltip",t.versionTooltip()),P("aria-label",t.texts.devChipA11y),a(),v(t.texts.devChip)}}function Jt(i,e){if(i&1&&(l(0,"span",12),u(1),c()),i&2){let t=f();h("pTooltip",t.versionTooltip()),P("aria-label",t.versionA11y()),a(),v(t.versionLabel())}}function Ht(i,e){if(i&1&&(l(0,"span",26),u(1),c()),i&2){let t=e,r=f();Ae("--provider-color",t.color)("--provider-color-dark",t.colorDark??t.color),h("pTooltip",r.texts.lensChipTooltip(t.label)),P("aria-label",r.texts.lensChipA11y(t.label)),a(),v(t.label)}}function Qt(i,e){if(i&1){let t=$();l(0,"button",27),R("click",function(){j(t);let n=f();return N(n.copyUpdateCommand())}),C(1,"i",28),l(2,"span"),u(3),c()(),l(4,"a",29),C(5,"i",30),c()}if(i&2){let t=f();h("pTooltip",t.updateChipTooltip()),P("aria-label",t.updateChipA11y()),a(),Se(t.updateChipIcon()),a(2),v(t.updateChipText()),a(),h("href",t.npmLinkUrl,G)("pTooltip",t.npmLinkTooltip),P("aria-label",t.npmLinkA11y)}}function Wt(i,e){if(i&1&&(l(0,"p",15)(1,"bdi",31),u(2),c()()),i&2){let t=e;P("title",t),a(2),v(t)}}function Xt(i,e){if(i&1){let t=$();l(0,"sm-settings-modal",32),R("visibleChange",function(n){j(t);let o=f();return N(o.onSettingsVisibleChange(n))}),c()}if(i&2){let t=f();h("visible",t.settingsOpen())}}var ge=class i{loader=s(Q);theme=s(ot);projectInfo=s(D);providerRegistry=s(L);scanTrigger=s(nt);updateCheck=s(ne);texts=A;settingsTexts=rt;settingsOpen=E(!1);openSettings(){this.settingsOpen.set(!0)}onSettingsVisibleChange(e){this.settingsOpen.set(e),e||this.projectInfo.reloadActiveProvider()}scanning=this.scanTrigger.scanning;scanError=this.scanTrigger.scanError;triggerScan(){return this.scanTrigger.run()}updateChipCopied=E(!1);updateChipText=d(()=>this.updateChipCopied()?I.copiedLabel:I.available);updateChipIcon=d(()=>this.updateChipCopied()?"pi pi-check":"pi pi-download");updateChipTooltip=d(()=>this.updateChipCopied()?I.copiedTooltip:I.tooltip(this.updateCheck.latest()??""));updateChipA11y=d(()=>I.a11yLabel(this.updateCheck.latest()??""));npmLinkUrl=I.npmLinkUrl;npmLinkTooltip=I.npmLinkTooltip;npmLinkA11y=I.npmLinkA11y;async copyUpdateCommand(){try{await navigator.clipboard.writeText(I.copyCommand),this.updateChipCopied.set(!0),setTimeout(()=>this.updateChipCopied.set(!1),2e3)}catch{}}versionLabel=d(()=>I.versionLabel(this.updateCheck.current()??""));versionTooltip=d(()=>I.versionTooltip(this.updateCheck.current()??""));versionA11y=d(()=>I.versionA11yLabel(this.updateCheck.current()??""));isDevBuild=this.projectInfo.dev;lensChip=d(()=>this.providerRegistry.lensChip(this.projectInfo.activeProvider()));count=this.loader.count;linkAnalysis=d(()=>tt(this.loader.nodes(),this.loader.scan()));linkCount=d(()=>this.linkAnalysis().raw);mapInfoTooltip=d(()=>A.badge.mapInfo(this.count(),this.linkAnalysis()));mapInfoA11y=d(()=>A.badge.mapInfoA11y(this.count(),this.linkAnalysis()));rootLabel=d(()=>{let e=this.projectInfo.cwd();if(e&&e!==".")return e;let t=this.loader.scan()?.roots??[];if(t.length===0)return"";let r=t[0].replace(/[\\/]+$/,"");return!r||r==="."?"":r});isDevMode=xe();themeMode=this.theme.mode;markSrc=d(()=>this.theme.extraTheme()==="matrix"?"skill-map-mark-matrix.svg":this.theme.resolved()==="dark"?"skill-map-mark-light.svg":"skill-map-mark-dark.svg");themeIcon=d(()=>{switch(this.themeMode()){case"auto":return"pi pi-desktop";case"light":return"pi pi-sun";case"dark":return"fa-regular fa-moon"}});themeLabel=d(()=>{switch(this.themeMode()){case"auto":return z.toggleToLight;case"light":return z.toggleToDark;case"dark":return z.toggleToAuto}});themeTooltip=d(()=>{switch(this.themeMode()){case"auto":return z.currentAuto;case"light":return z.currentLight;case"dark":return z.currentDark}});toggleTheme(){this.theme.toggle()}static \u0275fac=function(t){return new(t||i)};static \u0275cmp=K({type:i,selectors:[["sm-root"]],decls:41,vars:32,consts:[["role","alert","data-testid","viewport-warning",1,"viewport-warning"],[1,"viewport-warning__card"],["aria-hidden","true",1,"fa-solid","fa-desktop","viewport-warning__icon"],[1,"viewport-warning__title"],[1,"viewport-warning__subtitle"],[1,"viewport-warning__body"],["data-testid","shell",1,"shell"],[3,"openSettings"],["data-testid","shell-topbar",1,"shell__topbar"],[1,"shell__brand"],["width","32","height","32","priority","","alt","","aria-hidden","true",1,"shell__brand-mark",3,"ngSrc"],["tooltipPosition","bottom","data-testid","shell-dev",1,"shell__dev",3,"pTooltip"],["tooltipPosition","bottom","data-testid","shell-version",1,"shell__version",3,"pTooltip"],["tooltipPosition","bottom","data-testid","shell-lens",1,"shell__lens",3,"--provider-color","--provider-color-dark","pTooltip"],[1,"shell__alpha"],["data-testid","shell-root-label",1,"shell__tag"],["data-testid","shell-nav",1,"shell__nav"],["slot","topbar.nav.start",3,"node"],["routerLink","/map","routerLinkActive","is-active","queryParamsHandling","preserve","data-testid","nav-graph"],["routerLink","/files","routerLinkActive","is-active","queryParamsHandling","preserve","data-testid","nav-files"],[1,"shell__actions"],["type","button","tooltipPosition","bottom","data-testid","shell-refresh",1,"shell__refresh",3,"click","pTooltip","disabled"],["aria-hidden","true",1,"pi","pi-sync"],["severity","secondary","size","small","data-testid","action-theme-toggle",3,"onClick","icon","ariaLabel","pTooltip","text","rounded"],["icon","pi pi-sliders-h","severity","secondary","size","small","data-testid","action-settings",3,"onClick","ariaLabel","pTooltip","text","rounded"],[1,"shell__main"],["tooltipPosition","bottom","data-testid","shell-lens",1,"shell__lens",3,"pTooltip"],["type","button","tooltipPosition","bottom","data-testid","shell-update-chip",1,"shell__update-chip",3,"click","pTooltip"],["aria-hidden","true"],["target","_blank","rel","noopener noreferrer","tooltipPosition","bottom","data-testid","shell-update-npm-link",1,"shell__update-npm-link",3,"href","pTooltip"],["aria-hidden","true",1,"pi","pi-external-link"],["dir","ltr"],[3,"visibleChange","visible"]],template:function(t,r){if(t&1&&(l(0,"div",0)(1,"div",1),C(2,"i",2),l(3,"h2",3),u(4),c(),l(5,"p",4),u(6),c(),l(7,"p",5),u(8),c()()(),l(9,"div",6),C(10,"sm-demo-banner"),l(11,"sm-oversized-banner",7),R("openSettings",function(){return r.openSettings()}),c(),l(12,"header",8)(13,"div",9),C(14,"img",10),l(15,"div")(16,"h1"),u(17),w(18,Vt,2,3,"span",11)(19,Jt,2,3,"span",12),w(20,Ht,2,7,"span",13),l(21,"span",14),u(22),c(),w(23,Qt,6,8),c(),w(24,Wt,3,2,"p",15),c()(),l(25,"nav",16),C(26,"sm-view-contributions-host",17),l(27,"a",18),u(28),c(),l(29,"a",19),u(30),c()(),l(31,"div",20)(32,"button",21),R("click",function(){return r.triggerScan()}),C(33,"i",22),c(),l(34,"p-button",23),R("onClick",function(){return r.toggleTheme()}),c(),l(35,"p-button",24),R("onClick",function(){return r.openSettings()}),c()()(),l(36,"main",25),C(37,"router-outlet"),c(),_e(38,Xt,1,1),Pe(39,38,Kt),c()),t&2){let n,o,m;a(4),v(r.texts.viewportWarning.title),a(2),v(r.texts.viewportWarning.subtitle),a(2),v(r.texts.viewportWarning.body),a(6),h("ngSrc",r.markSrc()),a(3),F(" ",r.texts.brand," "),a(),x(r.isDevBuild()?18:(n=r.updateCheck.current())?19:-1,n),a(2),x((o=r.lensChip())?20:-1,o),a(),P("aria-label",r.texts.alpha),a(),v(r.texts.alpha),a(),x(r.updateCheck.isOutdated()&&!r.isDevMode?23:-1),a(),x((m=r.rootLabel())?24:-1,m),a(),P("aria-label",r.texts.a11y.viewSwitcher),a(),h("node",null),a(2),v(r.texts.nav.map),a(2),v(r.texts.nav.files),a(2),he("is-spinning",r.scanning()),h("pTooltip",r.mapInfoTooltip())("disabled",r.scanning()),P("aria-label",r.mapInfoA11y()),a(),he("pi-spin",r.scanning()),a(),h("icon",r.themeIcon())("ariaLabel",r.themeLabel())("pTooltip",r.themeTooltip())("text",!0)("rounded",!0),a(),h("ariaLabel",r.settingsTexts.a11y.triggerLabel)("pTooltip",r.settingsTexts.triggerTooltip)("text",!0)("rounded",!0),a(4),Ie(r.settingsOpen())}},dependencies:[Ne,Fe,ze,te,ee,it,He,Je,Ze,Re,ce,me,et],styles:['[_nghost-%COMP%]{display:block;height:100dvh;--shell-topbar-bg: #FFFFFF;--shell-topbar-border: var(--sm-violet-100);--shell-topbar-text: var(--sm-violet-800);--shell-topbar-text-strong: var(--sm-violet-900);--shell-topbar-text-muted: var(--sm-violet-600);--shell-topbar-hover-bg: color-mix(in srgb, var(--sm-violet-500) 10%, transparent);--shell-topbar-active-bg: var(--sm-violet-100);--shell-topbar-active-text: var(--sm-violet-800);--shell-topbar-badge-bg: var(--sm-violet-100)}.app-dark[_nghost-%COMP%], .app-dark [_nghost-%COMP%]{--shell-topbar-bg: #1A1B22;--shell-topbar-border: color-mix(in srgb, var(--sm-violet-300) 8%, transparent);--shell-topbar-text: var(--sm-violet-100);--shell-topbar-text-strong: var(--sm-violet-100);--shell-topbar-text-muted: var(--sm-violet-300);--shell-topbar-hover-bg: color-mix(in srgb, var(--sm-violet-400) 12%, transparent);--shell-topbar-active-bg: color-mix(in srgb, var(--sm-violet-500) 22%, transparent);--shell-topbar-active-text: var(--sm-violet-100);--shell-topbar-badge-bg: color-mix(in srgb, var(--sm-violet-500) 14%, transparent)}.shell[_ngcontent-%COMP%]{display:flex;flex-direction:column;height:100dvh}.shell__topbar[_ngcontent-%COMP%]{display:flex;align-items:center;gap:1rem;padding:.75rem 1.5rem;background:color-mix(in srgb,var(--shell-topbar-bg) 85%,transparent);backdrop-filter:blur(8px);-webkit-backdrop-filter:blur(8px);border-bottom:1px solid var(--shell-topbar-border);color:var(--shell-topbar-text)}.shell__brand[_ngcontent-%COMP%]{display:flex;align-items:center;gap:.75rem}.shell__brand-mark[_ngcontent-%COMP%]{width:2rem;height:2rem;display:block}.shell__brand[_ngcontent-%COMP%] h1[_ngcontent-%COMP%]{margin:0;font-size:1.05rem;font-weight:600;letter-spacing:-.01em;color:var(--shell-topbar-text-strong)}.shell__alpha[_ngcontent-%COMP%]{font-family:var(--sm-font-display-brand);font-weight:600;font-size:10px;line-height:1;letter-spacing:.06em;text-transform:uppercase;color:#ad322b;background:#ad322b14;border-radius:var(--sm-radius-sm);padding:4px 8px;margin-left:8px;-webkit-user-select:none;user-select:none;display:inline-block;vertical-align:middle;white-space:nowrap}.app-dark[_nghost-%COMP%] .shell__alpha[_ngcontent-%COMP%], .app-dark [_nghost-%COMP%] .shell__alpha[_ngcontent-%COMP%]{color:#e07570;background:#cf464024}.shell__version[_ngcontent-%COMP%]{display:inline-block;margin-left:6px;padding:2px 6px;border-radius:var(--sm-radius-sm);font-family:var(--p-monospace-font-family);font-size:11px;line-height:1;font-weight:500;letter-spacing:.02em;color:var(--p-text-muted-color);background:var(--p-content-hover-background);vertical-align:middle;-webkit-user-select:text;user-select:text}.shell__dev[_ngcontent-%COMP%]{display:inline-block;margin-left:6px;padding:2px 8px;border-radius:var(--sm-radius-sm);font-family:var(--sm-font-display-brand);font-size:10px;line-height:1;font-weight:700;letter-spacing:.08em;text-transform:uppercase;color:#8a5a00;background:#d69e2e29;vertical-align:middle;-webkit-user-select:none;user-select:none}.app-dark[_nghost-%COMP%] .shell__dev[_ngcontent-%COMP%], .app-dark [_nghost-%COMP%] .shell__dev[_ngcontent-%COMP%]{color:#fbd38d;background:#d69e2e38}.shell__lens[_ngcontent-%COMP%]{display:inline-block;margin-left:6px;padding:2px 8px;border-radius:var(--sm-radius-sm);font-size:11px;line-height:1;font-weight:600;letter-spacing:.02em;color:var(--provider-color);background:color-mix(in srgb,var(--provider-color) 14%,transparent);vertical-align:middle;-webkit-user-select:none;user-select:none}.app-dark[_nghost-%COMP%] .shell__lens[_ngcontent-%COMP%], .app-dark [_nghost-%COMP%] .shell__lens[_ngcontent-%COMP%]{color:var(--provider-color-dark);background:color-mix(in srgb,var(--provider-color-dark) 24%,transparent)}.shell__update-chip[_ngcontent-%COMP%]{display:inline-flex;align-items:center;gap:4px;margin-left:8px;padding:3px 8px;font-family:inherit;font-size:11px;line-height:1;font-weight:600;letter-spacing:.04em;text-transform:uppercase;color:var(--p-primary-color);background:var(--p-primary-50);border:1px solid var(--p-primary-200);border-radius:var(--sm-radius-pill);text-decoration:none;cursor:pointer;transition:background-color .12s ease,color .12s ease;vertical-align:middle}.shell__update-chip[_ngcontent-%COMP%]:hover, .shell__update-chip[_ngcontent-%COMP%]:focus-visible{background:var(--p-primary-100);color:var(--p-primary-700)}.shell__update-chip[_ngcontent-%COMP%] i[_ngcontent-%COMP%]{font-size:12px;transform:translateY(1px)}.app-dark[_nghost-%COMP%] .shell__update-chip[_ngcontent-%COMP%], .app-dark [_nghost-%COMP%] .shell__update-chip[_ngcontent-%COMP%]{color:var(--p-primary-300);background:#ffffff0a;border-color:var(--p-primary-700)}.shell__update-npm-link[_ngcontent-%COMP%]{display:inline-flex;align-items:center;justify-content:center;margin-left:4px;padding:3px 4px;color:var(--p-primary-color);text-decoration:none;border-radius:var(--sm-radius-pill);transition:color .12s ease,background-color .12s ease;vertical-align:middle}.shell__update-npm-link[_ngcontent-%COMP%]:hover, .shell__update-npm-link[_ngcontent-%COMP%]:focus-visible{color:var(--p-primary-700);background:var(--p-primary-50)}.shell__update-npm-link[_ngcontent-%COMP%] i[_ngcontent-%COMP%]{font-size:12px;transform:translateY(1px)}.app-dark[_nghost-%COMP%] .shell__update-npm-link[_ngcontent-%COMP%], .app-dark [_nghost-%COMP%] .shell__update-npm-link[_ngcontent-%COMP%]{color:var(--p-primary-300)}.app-dark[_nghost-%COMP%] .shell__update-npm-link[_ngcontent-%COMP%]:hover, .app-dark [_nghost-%COMP%] .shell__update-npm-link[_ngcontent-%COMP%]:hover, .app-dark[_nghost-%COMP%] .shell__update-npm-link[_ngcontent-%COMP%]:focus-visible, .app-dark [_nghost-%COMP%] .shell__update-npm-link[_ngcontent-%COMP%]:focus-visible{color:var(--p-primary-200);background:#ffffff0a}.shell__tag[_ngcontent-%COMP%]{margin:.35rem 0 0;font-size:.72rem;color:var(--shell-topbar-text-muted);letter-spacing:.02em;text-transform:uppercase;max-width:40rem;overflow:hidden;text-overflow:ellipsis;white-space:nowrap;direction:rtl}.shell__nav[_ngcontent-%COMP%]{display:flex;gap:.25rem;margin-left:auto}.shell__nav[_ngcontent-%COMP%] a[_ngcontent-%COMP%]{padding:.5rem .9rem;border-radius:.5rem;font-size:.9rem;font-weight:500;color:var(--shell-topbar-text-muted);transition:background .15s ease,color .15s ease}.shell__nav[_ngcontent-%COMP%] a[_ngcontent-%COMP%]:hover{background:var(--shell-topbar-hover-bg);color:var(--shell-topbar-text-strong)}.shell__nav[_ngcontent-%COMP%] a.is-active[_ngcontent-%COMP%]{background:var(--shell-topbar-active-bg);color:var(--shell-topbar-active-text)}.shell__search[_ngcontent-%COMP%]{display:inline-flex;align-items:center;gap:.25rem;position:relative}.shell__nav-search[_ngcontent-%COMP%]{display:inline-flex;align-items:center;justify-content:center;width:2.25rem;height:2.25rem;padding:0;border:none;border-radius:.5rem;background:transparent;color:var(--shell-topbar-text-muted);cursor:pointer;transition:background .15s ease,color .15s ease,opacity .15s ease}.shell__nav-search[_ngcontent-%COMP%]:hover{background:var(--shell-topbar-hover-bg);color:var(--shell-topbar-text-strong)}.shell__search.is-open[_ngcontent-%COMP%] .shell__nav-search[_ngcontent-%COMP%]{color:var(--shell-topbar-text-strong)}.shell__nav-search[_ngcontent-%COMP%] i[_ngcontent-%COMP%]{font-size:.95rem}.shell__search.has-query[_ngcontent-%COMP%]:not(.is-open) .shell__nav-search[_ngcontent-%COMP%]{position:relative;color:var(--shell-topbar-text-strong)}.shell__search.has-query[_ngcontent-%COMP%]:not(.is-open) .shell__nav-search[_ngcontent-%COMP%]:after{content:"";position:absolute;top:.45rem;right:.45rem;width:6px;height:6px;border-radius:50%;background:var(--p-primary-color)}.shell__search-input[_ngcontent-%COMP%]{width:240px;height:2.25rem}.shell__search-clear[_ngcontent-%COMP%]{display:inline-flex;align-items:center;justify-content:center;width:1.6rem;height:1.6rem;padding:0;border:none;border-radius:50%;background:transparent;color:var(--shell-topbar-text-muted);cursor:pointer;line-height:1}.shell__search-clear[_ngcontent-%COMP%]:hover{background:var(--shell-topbar-hover-bg);color:var(--shell-topbar-text-strong)}.shell__search-clear[_ngcontent-%COMP%] i[_ngcontent-%COMP%]{font-size:.7rem}.shell__actions[_ngcontent-%COMP%]{display:flex;align-items:center;gap:.75rem;--p-button-text-secondary-color: var(--shell-topbar-text-muted);--p-button-text-secondary-hover-color: var(--shell-topbar-text-strong);--p-button-text-secondary-hover-background: var(--shell-topbar-hover-bg);--p-button-text-secondary-active-color: var(--shell-topbar-text-strong);--p-button-text-secondary-active-background: var(--shell-topbar-hover-bg)}.shell__refresh[_ngcontent-%COMP%]{display:inline-flex;align-items:center;justify-content:center;width:2rem;height:2rem;padding:0;border:none;border-radius:var(--sm-radius-pill);background:transparent;color:var(--shell-topbar-text-muted);cursor:pointer;transition:background .15s ease,color .15s ease}.shell__refresh[_ngcontent-%COMP%]:hover:not(:disabled), .shell__refresh[_ngcontent-%COMP%]:focus-visible:not(:disabled){background:var(--shell-topbar-hover-bg);color:var(--shell-topbar-text-strong);outline:none}.shell__refresh[_ngcontent-%COMP%]:disabled{cursor:progress;opacity:.7}.shell__refresh[_ngcontent-%COMP%] i[_ngcontent-%COMP%]{font-size:1rem}.shell__main[_ngcontent-%COMP%]{flex:1;min-height:0;overflow-y:auto;width:100%}@media(max-width:1280px){.shell__topbar[_ngcontent-%COMP%]{gap:1rem;padding:.5rem 1rem}.shell__tag[_ngcontent-%COMP%]{max-width:26rem}.shell__nav[_ngcontent-%COMP%] a[_ngcontent-%COMP%]{padding:.4rem .7rem;font-size:.85rem}}.viewport-warning[_ngcontent-%COMP%]{display:none}@media(max-width:767px){.viewport-warning[_ngcontent-%COMP%]{position:fixed;inset:0;z-index:100000;display:flex;align-items:center;justify-content:center;padding:1.5rem;background:var(--sm-bg-content)}.viewport-warning__card[_ngcontent-%COMP%]{display:flex;flex-direction:column;align-items:center;text-align:center;gap:.85rem;max-width:22rem}.viewport-warning__icon[_ngcontent-%COMP%]{font-size:3rem;color:var(--p-primary-color);margin-bottom:.25rem}.viewport-warning__title[_ngcontent-%COMP%]{margin:0;font-size:1.35rem;font-weight:700;color:var(--p-text-color);line-height:1.25}.viewport-warning__subtitle[_ngcontent-%COMP%]{margin:0;font-size:1rem;font-weight:500;color:var(--p-primary-color);line-height:1.35}.viewport-warning__body[_ngcontent-%COMP%]{margin:0;color:var(--p-text-muted-color);line-height:1.5;font-size:.9rem}.shell[_ngcontent-%COMP%]{display:none}}'],changeDetection:0})};Te(ge,bt).catch(i=>console.error(i));
|