@skill-map/cli 0.40.0 → 0.41.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.
Files changed (38) hide show
  1. package/dist/cli/tutorial/sm-tutorial/SKILL.md +10 -1
  2. package/dist/cli.js +275 -53
  3. package/dist/cli.js.map +1 -1
  4. package/dist/index.js +22 -5
  5. package/dist/index.js.map +1 -1
  6. package/dist/kernel/index.d.ts +30 -0
  7. package/dist/kernel/index.js +22 -5
  8. package/dist/kernel/index.js.map +1 -1
  9. package/dist/migrations/001_initial.sql +8 -0
  10. package/dist/ui/chunk-5GD2GBPS.js +2190 -0
  11. package/dist/ui/chunk-5WJRN3LD.js +809 -0
  12. package/dist/ui/{chunk-3SI3TVER.js → chunk-C2YUQODZ.js} +2 -2
  13. package/dist/ui/{chunk-NGIFGXW7.js → chunk-CFJBTDAA.js} +1 -1
  14. package/dist/ui/chunk-DQ45L4EV.js +123 -0
  15. package/dist/ui/{chunk-3FPS5OIY.js → chunk-HEJCH7BA.js} +1 -1
  16. package/dist/ui/chunk-HFPA56IM.js +1 -0
  17. package/dist/ui/chunk-HP375T2O.js +2 -0
  18. package/dist/ui/{chunk-WQ42JTZB.js → chunk-IUDL3NDH.js} +1 -1
  19. package/dist/ui/{chunk-ASCTZSBZ.js → chunk-JPYAASHN.js} +1 -1
  20. package/dist/ui/chunk-JWI3M5RV.js +1 -0
  21. package/dist/ui/chunk-XJL4DZ4M.js +1 -0
  22. package/dist/ui/{chunk-GSTYLDCL.js → chunk-XOHD5XWA.js} +1 -1
  23. package/dist/ui/chunk-YL6SWAFJ.js +1024 -0
  24. package/dist/ui/chunk-ZVGHYOKP.js +315 -0
  25. package/dist/ui/index.html +2 -2
  26. package/dist/ui/main-JCF6OBGZ.js +3 -0
  27. package/dist/ui/{styles-2WO3KNOY.css → styles-6H4GSOHY.css} +1 -1
  28. package/migrations/001_initial.sql +8 -0
  29. package/package.json +2 -2
  30. package/dist/ui/chunk-2W6BCESO.js +0 -2589
  31. package/dist/ui/chunk-4KQGLZV2.js +0 -123
  32. package/dist/ui/chunk-MHEKCBIR.js +0 -317
  33. package/dist/ui/chunk-PFA2CVPN.js +0 -61
  34. package/dist/ui/chunk-PURF7B6R.js +0 -411
  35. package/dist/ui/chunk-UFCOGNZX.js +0 -1
  36. package/dist/ui/chunk-XEWWXGNE.js +0 -1
  37. package/dist/ui/chunk-YXFKPYK3.js +0 -965
  38. package/dist/ui/main-WLCA4YLM.js +0 -3
@@ -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-2WO3KNOY.css" media="print" onload="this.media='all'"><noscript><link rel="stylesheet" href="styles-2WO3KNOY.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-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>
31
31
  <body>
32
32
  <sm-root></sm-root>
33
- <link rel="modulepreload" href="chunk-XEWWXGNE.js"><link rel="modulepreload" href="chunk-PFA2CVPN.js"><link rel="modulepreload" href="chunk-UFCOGNZX.js"><link rel="modulepreload" href="chunk-WQ42JTZB.js"><link rel="modulepreload" href="chunk-YXFKPYK3.js"><link rel="modulepreload" href="chunk-3SI3TVER.js"><link rel="modulepreload" href="chunk-VB56BUGO.js"><script src="main-WLCA4YLM.js" type="module"></script></body>
33
+ <link rel="modulepreload" href="chunk-XJL4DZ4M.js"><link rel="modulepreload" href="chunk-HFPA56IM.js"><link rel="modulepreload" href="chunk-JWI3M5RV.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-JCF6OBGZ.js" type="module"></script></body>
34
34
  </html>
@@ -0,0 +1,3 @@
1
+ import{a as Oe,b as Le,c as De,d as Z,e as je,f as Ne,g as $e,h as Fe,i as ze,u as Ye,v as ne,w as Ze,x as qe}from"./chunk-XJL4DZ4M.js";import{k as Qe,l as We,m as Xe,n as E}from"./chunk-HFPA56IM.js";import{a as P,b as ie,c as tt,d as nt,e as it}from"./chunk-JWI3M5RV.js";import{a as xe,b as Te,c as U,d as Me,e as Re,f as Ee}from"./chunk-HP375T2O.js";import{b as et}from"./chunk-IUDL3NDH.js";import{Ab as w,Ad as Ke,Bb as ke,Bd as Ve,Ca as X,Cb as _,Cd as Je,Ed as te,Fa as a,Fd as m,Gd as K,Hd as He,I as T,Id as V,Jd as J,M as Q,N as s,Ob as ge,Pd as Ge,Qb as Ae,Ra as B,Rb as g,Sb as f,T as L,Tb as $,Tc as we,U as D,Xa as be,Z as ve,_a as G,bb as _e,cb as Pe,da as ye,db as I,ea as j,f as fe,fd as Be,ga as W,gb as M,gd as Ue,hb as R,m as z,mb as h,mc as p,nb as l,ob as c,pb as A,pc as Ce,qb as Y,rb as ue,sb as Ie,vc as Se,vd as q,wd as ee,yb as N}from"./chunk-YL6SWAFJ.js";import"./chunk-C2YUQODZ.js";import"./chunk-VB56BUGO.js";var he="skill-map",C={brand:he,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.",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:(n,e)=>{let t=`Run scan
2
+ ${n.toLocaleString()} nodes \xB7 ${e.raw.toLocaleString()} links`;if(e.raw===e.drawn)return t;let i=[],r=e.brokenSource+e.brokenTarget;return r>0&&i.push(`${r} broken`),e.selfLoops>0&&i.push(`${e.selfLoops} self-loop${e.selfLoops===1?"":"s"}`),e.duplicates>0&&i.push(`${e.duplicates} duplicate${e.duplicates===1?"":"s"}`),`${t}
3
+ ${e.drawn.toLocaleString()} drawn (${i.join(", ")})`},mapInfoA11y:(n,e)=>`Map contains ${n} 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:(n,e)=>{let t=n?`${n} - ${he}`:he;return e?`${t} v${e}`:t}};var rt=[{path:"",pathMatch:"full",redirectTo:"map"},{path:"map",loadComponent:()=>import("./chunk-ZVGHYOKP.js").then(n=>n.GraphView),title:C.nav.map},{path:"files",loadComponent:()=>import("./chunk-5GD2GBPS.js").then(n=>n.FilesView),title:C.nav.files},{path:"**",redirectTo:"map"}];var x={errors:{unknownMode:n=>`SKILL_MAP_MODE: unknown value "${n}"`,restPrefix:n=>`BFF error [${n}]: `,malformedResponse:"BFF returned a malformed response",demoFetchFailed:(n,e)=>`Demo bundle fetch failed for "${n}": ${e}`,demoParseFailed:(n,e)=>`Demo bundle parse failed for "${n}": ${e}`,graphFormatNotInDemo:n=>`Graph format "${n}" is not bundled in demo mode (only "ascii").`}};function re(n){let e=new TextEncoder().encode(n),t="";for(let i=0;i<e.length;i++)t+=String.fromCharCode(e[i]);return btoa(t).replace(/\+/g,"-").replace(/\//g,"_").replace(/=+$/,"")}var d="/api",oe=class n{http;ws;kindRegistry;contributionsRegistry;constructor(e,t,i,r){this.http=e??s(U),this.ws=t??s(V),this.kindRegistry=i??s(E),this.contributionsRegistry=r??s(ne)}async health(){return this.getJson(`${d}/health`)}async loadScan(){let[e]=await Promise.all([this.getJson(`${d}/scan`),this.listNodes({limit:0}).catch(()=>null)]);return e}async runScan(){return this.patchJson(`${d}/scan`,{},"POST")}async listNodes(e={}){let t=It(e),i=await this.getJson(`${d}/nodes${t}`);return this.ingestRegistry(i.kindRegistry),this.ingestContributionsRegistry(i.contributionsRegistry),i}async getNode(e,t={}){let i=re(e),r=t.includeBody?"?include=body":"";try{let o=await this.getJson(`${d}/nodes/${i}${r}`);return this.ingestRegistry(o.kindRegistry),this.ingestContributionsRegistry(o.contributionsRegistry),o}catch(o){if(o instanceof m&&o.code==="not-found")return null;throw o}}async listLinks(e={}){let t=kt(e),i=await this.getJson(`${d}/links${t}`);return this.ingestRegistry(i.kindRegistry),this.ingestContributionsRegistry(i.contributionsRegistry),i}async listIssues(e={}){let t=At(e),i=await this.getJson(`${d}/issues${t}`);return this.ingestRegistry(i.kindRegistry),this.ingestContributionsRegistry(i.contributionsRegistry),i}async loadGraph(e="ascii"){let t=`${d}/graph?format=${encodeURIComponent(e)}`;try{return await z(this.http.get(t,{responseType:"text"}))}catch(i){throw this.translateError(i)}}async loadConfig(){let e=await this.getJson(`${d}/config`);return this.ingestRegistry(e.kindRegistry),this.ingestContributionsRegistry(e.contributionsRegistry),e.value}async listPlugins(){let e=await this.getJson(`${d}/plugins`);return this.ingestRegistry(e.kindRegistry),this.ingestContributionsRegistry(e.contributionsRegistry),e}async setPluginEnabled(e,t){let i=await this.patchJson(`${d}/plugins/${encodeURIComponent(e)}`,{enabled:t});return this.ingestRegistry(i.kindRegistry),this.ingestContributionsRegistry(i.contributionsRegistry),i}async setPluginExtensionEnabled(e,t,i){let r=await this.patchJson(`${d}/plugins/${encodeURIComponent(e)}/extensions/${encodeURIComponent(t)}`,{enabled:i});return this.ingestRegistry(r.kindRegistry),this.ingestContributionsRegistry(r.contributionsRegistry),r}async applyPluginChanges(e){let t=await this.patchJson(`${d}/plugins`,{changes:e});return this.ingestRegistry(t.kindRegistry),this.ingestContributionsRegistry(t.contributionsRegistry),t}async getPreferences(){return await this.getJson(`${d}/preferences`)}async setPreferences(e){return await this.patchJson(`${d}/preferences`,e)}async getProjectPreferences(){return await this.getJson(`${d}/project-preferences`)}async setProjectPreferences(e){return await this.patchJson(`${d}/project-preferences`,e)}async getProjectIgnore(){return await this.getJson(`${d}/project-ignore`)}async setProjectIgnore(e){return await this.patchJson(`${d}/project-ignore`,e)}async getActiveProvider(){return await this.getJson(`${d}/active-provider`)}async setActiveProvider(e){return await this.patchJson(`${d}/active-provider`,{activeProvider:e})}async setFavorite(e){let t=re(e);try{await z(this.http.put(`${d}/favorites/${t}`,null))}catch(i){throw this.translateError(i)}}async unsetFavorite(e){let t=re(e);try{await z(this.http.delete(`${d}/favorites/${t}`))}catch(i){throw this.translateError(i)}}async bumpSidecar(e,t={}){let i={nodePath:e};return t.force!==void 0&&(i.force=t.force),t.confirm!==void 0&&(i.confirm=t.confirm),this.patchJson(`${d}/sidecar/bump`,i,"POST")}async getUpdateStatus(){return this.getJson(`${d}/update-status`)}async getRegisteredAnnotations(){return(await this.getJson(`${d}/annotations/registered`)).items}ingestRegistry(e){e&&this.kindRegistry.ingest(e)}ingestContributionsRegistry(e){this.contributionsRegistry.setRegistry(e)}async lookupContribution(e,t,i){let r=new URLSearchParams({path:i});try{return(await this.getJson(`${d}/contributions/${encodeURIComponent(e)}/${encodeURIComponent(t)}?${r.toString()}`)).items[0]??null}catch{return null}}events(){return this.ws.events$}async getJson(e){try{return await z(this.http.get(e))}catch(t){throw this.translateError(t)}}async patchJson(e,t,i="PATCH"){try{let r=i==="POST"?this.http.post(e,t):this.http.patch(e,t);return await z(r)}catch(r){throw this.translateError(r)}}translateError(e){if(e instanceof m)return e;if(e instanceof Te){let i=Ct(e.error);return i?new m(i.error.code,i.error.message,i.error.details):new m("internal",e.message||x.errors.malformedResponse)}let t=e instanceof Error?e.message:String(e);return new m("internal",t)}static \u0275fac=function(t){return new(t||n)(Q(U),Q(V),Q(E),Q(ne))};static \u0275prov=T({token:n,factory:n.\u0275fac,providedIn:"root"})};function It(n){let e=new URLSearchParams;n.kind&&n.kind.length>0&&e.set("kind",n.kind.join(",")),n.hasIssues!==void 0&&e.set("hasIssues",String(n.hasIssues)),n.path&&e.set("path",n.path),n.limit!==void 0&&e.set("limit",String(n.limit)),n.offset!==void 0&&e.set("offset",String(n.offset));let t=e.toString();return t?`?${t}`:""}function kt(n){let e=new URLSearchParams;n.kind&&n.kind.length>0&&e.set("kind",n.kind.join(",")),n.from&&e.set("from",n.from),n.to&&e.set("to",n.to);let t=e.toString();return t?`?${t}`:""}function At(n){let e=new URLSearchParams;n.severity&&e.set("severity",n.severity),n.analyzerId&&e.set("analyzerId",n.analyzerId),n.node&&e.set("node",n.node),n.nodes&&n.nodes.length>0&&e.set("nodes",n.nodes.join(","));let t=e.toString();return t?`?${t}`:""}function Ct(n){if(typeof n!="object"||n===null)return null;let e=n;if(e.ok!==!1)return null;let t=e.error;if(typeof t!="object"||t===null)return null;let i=t;return typeof i.code!="string"||typeof i.message!="string"?null:{ok:!1,error:{code:i.code,message:i.message,details:i.details}}}var St="data.json",wt="data.meta.json",se=class{constructor(e=globalThis.fetch.bind(globalThis),t){this.fetchImpl=e;this.kindRegistry=t??s(E)}metaPromise=null;dataPromise=null;kindRegistry;async health(){return(await this.loadMeta()).health}async loadScan(){let[e,t]=await Promise.all([this.loadData(),this.loadMeta()]);return this.kindRegistry.ingest(t.nodes.kindRegistry),e}async listNodes(e={}){let t=await this.loadMeta();if(xt(e))return this.kindRegistry.ingest(t.nodes.kindRegistry),t.nodes;let i=await this.loadData(),r=i.issues,o=i.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=Rt(e.path);o=o.filter(S=>k.test(S.path))}if(e.hasIssues===!0){let k=ot(r);o=o.filter(S=>k.has(S.path))}else if(e.hasIssues===!1){let k=ot(r);o=o.filter(S=>!k.has(S.path))}let u=o.length,v=e.offset??0,y=e.limit??1e3,b=o.slice(v,v+y);return this.kindRegistry.ingest(t.nodes.kindRegistry),{schemaVersion:"1",kind:"nodes",items:b,filters:{kind:e.kind??null,hasIssues:e.hasIssues??null,path:e.path?[e.path]:null},counts:{total:u,returned:b.length,page:{offset:v,limit:y}},kindRegistry:t.nodes.kindRegistry}}async getNode(e,t={}){let[i,r]=await Promise.all([this.loadData(),this.loadMeta()]),o=i.nodes.find(b=>b.path===e);if(!o)return null;let u=i.links.filter(b=>b.target===e),v=i.links.filter(b=>b.source===e),y=i.issues.filter(b=>b.nodeIds.includes(e));return this.kindRegistry.ingest(r.nodes.kindRegistry),{schemaVersion:"1",kind:"node",item:o,links:{incoming:u,outgoing:v},issues:y,kindRegistry:r.nodes.kindRegistry}}async listLinks(e={}){let t=await this.loadMeta();if(Tt(e))return this.kindRegistry.ingest(t.links.kindRegistry),t.links;let r=(await this.loadData()).links;if(e.kind&&e.kind.length>0){let o=new Set(e.kind);r=r.filter(u=>o.has(u.kind))}return e.from&&(r=r.filter(o=>o.source===e.from)),e.to&&(r=r.filter(o=>o.target===e.to)),this.kindRegistry.ingest(t.links.kindRegistry),{schemaVersion:"1",kind:"links",items:r,filters:{kind:e.kind??null,from:e.from??null,to:e.to??null},counts:{total:r.length,returned:r.length},kindRegistry:t.links.kindRegistry}}async listIssues(e={}){let t=await this.loadMeta();if(Mt(e))return this.kindRegistry.ingest(t.issues.kindRegistry),t.issues;let r=(await this.loadData()).issues;if(e.severity&&(r=r.filter(o=>o.severity===e.severity)),e.analyzerId&&(r=r.filter(o=>o.analyzerId===e.analyzerId)),e.node&&(r=r.filter(o=>o.nodeIds.includes(e.node))),e.nodes&&e.nodes.length>0){let o=new Set(e.nodes);r=r.filter(u=>u.nodeIds.some(v=>o.has(v)))}return this.kindRegistry.ingest(t.issues.kindRegistry),{schemaVersion:"1",kind:"issues",items:r,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:r.length,returned:r.length},kindRegistry:t.issues.kindRegistry}}async loadGraph(e="ascii"){if(e!=="ascii")throw new m("bad-query",x.errors.graphFormatNotInDemo(e));return(await this.loadMeta()).graph.ascii}async loadConfig(){let e=await this.loadMeta();return this.kindRegistry.ingest(e.config.kindRegistry),e.config.value}async listPlugins(){let e=await this.loadMeta();return this.kindRegistry.ingest(e.plugins.kindRegistry),e.plugins}async setFavorite(e){throw new m("demo-readonly","Favorites are not available in demo mode (static bundle is immutable).")}async unsetFavorite(e){throw new m("demo-readonly","Favorites are not available in demo mode (static bundle is immutable).")}async setPluginEnabled(e,t){throw new m("demo-readonly","Plugin toggles are not available in demo mode (static bundle is immutable).")}async setPluginExtensionEnabled(e,t,i){throw new m("demo-readonly","Plugin toggles are not available in demo mode (static bundle is immutable).")}async applyPluginChanges(e){throw new m("demo-readonly","Plugin toggles are not available in demo mode (static bundle is immutable).")}async runScan(){throw new m("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 m("demo-readonly","Preference toggles are not available in demo mode (static bundle is immutable).")}async getProjectPreferences(){return{scan:{referencePaths:[]}}}async setProjectPreferences(e){throw new m("demo-readonly","Project preferences are not available in demo mode (static bundle is immutable).")}async getProjectIgnore(){return{patterns:[]}}async setProjectIgnore(e){throw new m("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 m("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 m("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(wt)),this.metaPromise}loadData(){return this.dataPromise||(this.dataPromise=this.fetchJson(St)),this.dataPromise}async fetchJson(e){let t;try{t=await this.fetchImpl(e)}catch(i){let r=i instanceof Error?i.message:String(i);throw new m("internal",x.errors.demoFetchFailed(e,r))}if(!t.ok)throw new m("internal",x.errors.demoFetchFailed(e,`HTTP ${t.status}`));try{return await t.json()}catch(i){let r=i instanceof Error?i.message:String(i);throw new m("internal",x.errors.demoParseFailed(e,r))}}};function xt(n){return!(n.kind&&n.kind.length>0||n.hasIssues!==void 0||n.path||n.offset!==void 0&&n.offset!==0||n.limit!==void 0)}function Tt(n){return!(n.kind&&n.kind.length>0||n.from||n.to)}function Mt(n){return!(n.severity||n.analyzerId||n.node||n.nodes&&n.nodes.length>0)}function ot(n){let e=new Set;for(let t of n)for(let i of t.nodeIds)e.add(i);return e}function Rt(n){let t=n.replace(/[.+^${}()|[\]\\]/g,"\\$&").replace(/\*/g,".*").replace(/\?/g,".");return new RegExp(`^${t}$`)}function st(){let n=s(K);if(n==="live")return new oe(s(U),s(V));if(n==="demo")return new se;let e=n;throw new Error(x.errors.unknownMode(String(e)))}var at="search",lt="kinds",dt="linkKinds",pt="stabilities",ct="hasIssues",mt="staleOnly",ut="favoritesOnly",gt="severities",Et=["error","warn"],le=class n{filters=s(Xe);router=s(je);activatedRoute=s(Le);kindRegistry=s(E);destroyRef=s(ve);suppressUrlReadback=!1;constructor(){this.applyUrlToFilters(this.currentParams()),this.router.events.pipe(Je(this.destroyRef)).subscribe(e=>{if(e instanceof Oe){if(this.suppressUrlReadback)return;this.applyUrlToFilters(this.currentParams())}}),W(()=>{let e=this.computeQueryParams();this.writeQueryParams(e)})}currentParams(){let e=this.router.parseUrl(this.router.url),t=new URLSearchParams;for(let[i,r]of Object.entries(e.queryParams))Array.isArray(r)?t.set(i,r.join(",")):r!=null&&t.set(i,String(r));return this.activatedRoute,t}applyUrlToFilters(e){let t=e.get(at)??"";t!==this.filters.searchText()&&this.filters.setSearchText(t);let i=Ot(e.get(lt),this.kindRegistry.kinds().map(S=>S.name));ae(i,this.filters.selectedKinds())||this.filters.setKinds(i);let r=Lt(e.get(pt));ae(r,this.filters.selectedStabilities())||this.filters.setStabilities(r);let o=e.get(ct)==="true";o!==this.filters.hasIssuesOnly()&&this.filters.setHasIssuesOnly(o);let u=e.get(mt)==="true";u!==this.filters.staleOnly()&&this.filters.setStaleOnly(u);let v=e.get(ut)==="true";v!==this.filters.favoritesOnly()&&this.filters.setFavoritesOnly(v);let y=Dt(e.get(dt));ae(y,this.filters.selectedLinkKinds())||this.filters.setLinkKinds(y);let b=jt(e.get(gt)),k=[];this.filters.severityErrorActive()&&k.push("error"),this.filters.severityWarnActive()&&k.push("warn"),ae(b,k)||this.filters.setSeverityFilters(b)}computeQueryParams(){let e=this.filters.searchText().trim(),t=this.filters.selectedKinds(),i=this.filters.selectedLinkKinds(),r=this.filters.selectedStabilities(),o=this.filters.hasIssuesOnly(),u=this.filters.staleOnly(),v=this.filters.favoritesOnly(),y=[];return this.filters.severityErrorActive()&&y.push("error"),this.filters.severityWarnActive()&&y.push("warn"),{[at]:e.length>0?e:null,[lt]:t.length>0?t.join(","):null,[dt]:i.length>0?i.join(","):null,[pt]:r.length>0?r.join(","):null,[ct]:o?"true":null,[mt]:u?"true":null,[ut]:v?"true":null,[gt]:y.length>0?y.join(","):null}}writeQueryParams(e){let t=this.currentParams(),i=new Map(Object.entries(e)),r=!1;for(let[o,u]of i)if((t.get(o)??null)!==u){r=!0;break}r&&(this.suppressUrlReadback=!0,this.router.navigate([],{relativeTo:this.activatedRoute,queryParams:e,queryParamsHandling:"merge",replaceUrl:!0}).finally(()=>{setTimeout(()=>{this.suppressUrlReadback=!1},0)}))}static \u0275fac=function(t){return new(t||n)};static \u0275prov=T({token:n,factory:n.\u0275fac,providedIn:"root"})};function Ot(n,e){if(!n)return[];let t=new Set(e);return n.split(",").map(i=>i.trim()).filter(i=>t.has(i))}function Lt(n){if(!n)return[];let e=new Set(Qe);return n.split(",").map(t=>t.trim()).filter(t=>e.has(t))}function Dt(n){if(!n)return[];let e=new Set(We);return n.split(",").map(t=>t.trim()).filter(t=>e.has(t))}function jt(n){if(!n)return[];let e=new Set(Et);return n.split(",").map(t=>t.trim()).filter(t=>e.has(t))}function ae(n,e){if(n.length!==e.length)return!1;for(let t=0;t<n.length;t++)if(n[t]!==e[t])return!1;return!0}var ht={healthFailed:n=>`ProjectInfoService: /api/health probe failed (${n})`};var O=class n{dataSource=s(te);status=j(null);cwd=p(()=>this.status()?.cwd??null);implVersion=p(()=>this.status()?.implVersion??null);dev=p(()=>this.status()?.dev===!0);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(ht.healthFailed(t))}}static \u0275fac=function(t){return new(t||n)};static \u0275prov=T({token:n,factory:n.\u0275fac,providedIn:"root"})};var de=class n extends Z{title=s(Ee);projectInfo=s(O);constructor(){super(),W(()=>{let e=ft(this.projectInfo.cwd()),t=this.projectInfo.implVersion();this.title.setTitle(C.documentTitle(e,t))})}updateTitle(e){let t=ft(this.projectInfo.cwd()),i=this.projectInfo.implVersion();this.title.setTitle(C.documentTitle(t,i))}static \u0275fac=function(t){return new(t||n)};static \u0275prov=T({token:n,factory:n.\u0275fac,providedIn:"root"})};function ft(n){if(!n)return null;let e=n.replace(/[\\/]+$/,"");if(!e||e===".")return null;let t=Math.max(e.lastIndexOf("/"),e.lastIndexOf("\\"));return(t>=0?e.slice(t+1):e)||null}function Nt(...n){for(let e of n)Promise.resolve(e.load())}var vt={providers:[ye(),Fe(rt,ze()),{provide:Z,useClass:de},Me(Re()),Ue({}),G(async()=>{let n=s(Be),[{default:e},{definePreset:t}]=await Promise.all([import("./chunk-DZBSELHN.js"),import("./chunk-CFJBTDAA.js")]),i=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"}}});n.setThemeConfig({theme:{preset:i,options:{darkModeSelector:".app-dark"}}})}),{provide:K,useFactory:He},{provide:te,useFactory:st},G(()=>{Nt(s(J),s(ie),s(O))}),G(()=>{s(le),s(Ye)})]};var F={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 yt={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 Ft(n,e){if(n&1){let t=N();l(0,"div",0),A(1,"span",1),l(2,"p",2),g(3),l(4,"code",3),g(5),c()(),l(6,"a",4),g(7),c(),l(8,"p-button",5),w("onClick",function(){L(t);let r=_();return D(r.dismiss())}),c()()}if(n&2){let t=_();a(3),$(" ",t.texts.body," "),a(2),f(t.texts.installCommand),a(),h("href",t.texts.homeHref,X),a(),f(t.texts.homeCta),a(),h("ariaLabel",t.texts.dismissAria)("text",!0)("rounded",!0)}}var bt="sm.demoBannerDismissed",pe=class n{mode=s(K);texts=yt;dismissed=j(this.readDismissed());visible=p(()=>this.mode==="demo"&&!this.dismissed());dismiss(){this.dismissed.set(!0);try{globalThis.localStorage?.setItem(bt,"1")}catch{}}readDismissed(){if(this.mode!=="demo")return!0;try{return globalThis.localStorage?.getItem(bt)==="1"}catch{return!1}}static \u0275fac=function(t){return new(t||n)};static \u0275cmp=B({type:n,selectors:[["sm-demo-banner"]],decls:1,vars:1,consts:[["role","status","data-testid","demo-banner",1,"demo-banner"],["aria-hidden","true",1,"demo-banner__icon","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,i){t&1&&M(0,Ft,9,7,"div",0),t&2&&R(i.visible()?0:-1)},dependencies:[ee,q],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 Pt={bodyAtLimit:(n,e)=>`Your graph has ${n} ${n===1?"node":"nodes"}, at the recommended limit of ${e}. Past this point the map gets hard to read and analyzer signal degrades.`,bodyOverLimit:(n,e,t)=>`Your graph has ${n} 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:(n,e,t)=>`Scan capped at ${e} ${e===1?"node":"nodes"} (${t==="override"?"--max-nodes":"scan.maxNodes"}). The walker stopped at ${n} ${n===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 zt(n,e){if(n&1){let t=N();Y(0,"div",0),Ie(1,"span",1),Y(2,"p",2),g(3),ue(),Y(4,"button",3),ke("click",function(){L(t);let r=_();return D(r.onCta())}),g(5),ue()()}if(n&2){let t=_();I("data-mode",t.state().mode),a(3),$(" ",t.state().body," "),a(),I("aria-label",t.texts.ctaAria),a(),$(" ",t.texts.cta," ")}}var ce=class n{loader=s(J);texts=Pt;openSettings=Ce();state=p(()=>{let e=this.loader.scan();if(!e)return{mode:"hidden",body:""};let t=e.recommendedNodeLimit;if(t===void 0)return{mode:"hidden",body:""};let i=e.overrideMaxNodes??null,r=i??t,o=e.stats.filesWalked,u=e.stats.nodesCount;return o>r?{mode:"capped",body:this.texts.bodyCapped(o,r,i!==null?"override":"setting")}:u<t?{mode:"hidden",body:""}:i!==null&&u>t?{mode:"overLimit",body:this.texts.bodyOverLimit(u,t,i)}:{mode:"atLimit",body:this.texts.bodyAtLimit(u,t)}});visible=p(()=>this.state().mode!=="hidden");onCta(){this.openSettings.emit()}static \u0275fac=function(t){return new(t||n)};static \u0275cmp=B({type:n,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,i){t&1&&M(0,zt,6,4,"div",0),t&2&&R(i.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 Bt=()=>[import("./chunk-DQ45L4EV.js").then(n=>n.SettingsModal)];function Ut(n,e){if(n&1&&(l(0,"span",11),g(1),c()),n&2){let t=_();h("pTooltip",t.versionTooltip()),I("aria-label",t.texts.devChipA11y),a(),f(t.texts.devChip)}}function Kt(n,e){if(n&1&&(l(0,"span",12),g(1),c()),n&2){let t=_();h("pTooltip",t.versionTooltip()),I("aria-label",t.versionA11y()),a(),f(t.versionLabel())}}function Vt(n,e){if(n&1){let t=N();l(0,"button",25),w("click",function(){L(t);let r=_();return D(r.copyUpdateCommand())}),A(1,"i",26),l(2,"span"),g(3),c()(),l(4,"a",27),A(5,"i",28),c()}if(n&2){let t=_();h("pTooltip",t.updateChipTooltip()),I("aria-label",t.updateChipA11y()),a(),Ae(t.updateChipIcon()),a(2),f(t.updateChipText()),a(),h("href",t.npmLinkUrl,X)("pTooltip",t.npmLinkTooltip),I("aria-label",t.npmLinkA11y)}}function Jt(n,e){if(n&1&&(l(0,"p",14)(1,"bdi",29),g(2),c()()),n&2){let t=e;I("title",t),a(2),f(t)}}function Ht(n,e){if(n&1){let t=N();l(0,"sm-settings-modal",30),w("visibleChange",function(r){L(t);let o=_();return D(o.settingsOpen.set(r))}),c()}if(n&2){let t=_();h("visible",t.settingsOpen())}}var me=class n{loader=s(J);theme=s(it);projectInfo=s(O);scanTrigger=s(nt);updateCheck=s(ie);texts=C;settingsTexts=tt;settingsOpen=j(!1);openSettings(){this.settingsOpen.set(!0)}scanning=this.scanTrigger.scanning;scanError=this.scanTrigger.scanError;triggerScan(){return this.scanTrigger.run()}updateChipCopied=j(!1);updateChipText=p(()=>this.updateChipCopied()?P.copiedLabel:P.available);updateChipIcon=p(()=>this.updateChipCopied()?"pi pi-check":"pi pi-download");updateChipTooltip=p(()=>this.updateChipCopied()?P.copiedTooltip:P.tooltip(this.updateCheck.latest()??""));updateChipA11y=p(()=>P.a11yLabel(this.updateCheck.latest()??""));npmLinkUrl=P.npmLinkUrl;npmLinkTooltip=P.npmLinkTooltip;npmLinkA11y=P.npmLinkA11y;async copyUpdateCommand(){try{await navigator.clipboard.writeText(P.copyCommand),this.updateChipCopied.set(!0),setTimeout(()=>this.updateChipCopied.set(!1),2e3)}catch{}}versionLabel=p(()=>P.versionLabel(this.updateCheck.current()??""));versionTooltip=p(()=>P.versionTooltip(this.updateCheck.current()??""));versionA11y=p(()=>P.versionA11yLabel(this.updateCheck.current()??""));isDevBuild=this.projectInfo.dev;count=this.loader.count;linkAnalysis=p(()=>qe(this.loader.nodes(),this.loader.scan()));linkCount=p(()=>this.linkAnalysis().raw);mapInfoTooltip=p(()=>C.badge.mapInfo(this.count(),this.linkAnalysis()));mapInfoA11y=p(()=>C.badge.mapInfoA11y(this.count(),this.linkAnalysis()));rootLabel=p(()=>{let e=this.projectInfo.cwd();if(e&&e!==".")return e;let t=this.loader.scan()?.roots??[];if(t.length===0)return"";let i=t[0].replace(/[\\/]+$/,"");return!i||i==="."?"":i});isDevMode=Se();themeMode=this.theme.mode;markSrc=p(()=>this.theme.extraTheme()==="matrix"?"skill-map-mark-matrix.svg":this.theme.resolved()==="dark"?"skill-map-mark-light.svg":"skill-map-mark-dark.svg");themeIcon=p(()=>{switch(this.themeMode()){case"auto":return"pi pi-desktop";case"light":return"pi pi-sun";case"dark":return"fa-regular fa-moon"}});themeLabel=p(()=>{switch(this.themeMode()){case"auto":return F.toggleToLight;case"light":return F.toggleToDark;case"dark":return F.toggleToAuto}});themeTooltip=p(()=>{switch(this.themeMode()){case"auto":return F.currentAuto;case"light":return F.currentLight;case"dark":return F.currentDark}});toggleTheme(){this.theme.toggle()}static \u0275fac=function(t){return new(t||n)};static \u0275cmp=B({type:n,selectors:[["sm-root"]],decls:40,vars:31,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"],[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"],["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,i){if(t&1&&(l(0,"div",0)(1,"div",1),A(2,"i",2),l(3,"h2",3),g(4),c(),l(5,"p",4),g(6),c(),l(7,"p",5),g(8),c()()(),l(9,"div",6),A(10,"sm-demo-banner"),l(11,"sm-oversized-banner",7),w("openSettings",function(){return i.openSettings()}),c(),l(12,"header",8)(13,"div",9),A(14,"img",10),l(15,"div")(16,"h1"),g(17),M(18,Ut,2,3,"span",11)(19,Kt,2,3,"span",12),l(20,"span",13),g(21),c(),M(22,Vt,6,8),c(),M(23,Jt,3,2,"p",14),c()(),l(24,"nav",15),A(25,"sm-view-contributions-host",16),l(26,"a",17),g(27),c(),l(28,"a",18),g(29),c()(),l(30,"div",19)(31,"button",20),w("click",function(){return i.triggerScan()}),A(32,"i",21),c(),l(33,"p-button",22),w("onClick",function(){return i.toggleTheme()}),c(),l(34,"p-button",23),w("onClick",function(){return i.openSettings()}),c()()(),l(35,"main",24),A(36,"router-outlet"),c(),be(37,Ht,1,1),_e(38,37,Bt),c()),t&2){let r,o;a(4),f(i.texts.viewportWarning.title),a(2),f(i.texts.viewportWarning.subtitle),a(2),f(i.texts.viewportWarning.body),a(6),h("ngSrc",i.markSrc()),a(3),$(" ",i.texts.brand," "),a(),R(i.isDevBuild()?18:(r=i.updateCheck.current())?19:-1,r),a(2),I("aria-label",i.texts.alpha),a(),f(i.texts.alpha),a(),R(i.updateCheck.isOutdated()&&!i.isDevMode?22:-1),a(),R((o=i.rootLabel())?23:-1,o),a(),I("aria-label",i.texts.a11y.viewSwitcher),a(),h("node",null),a(2),f(i.texts.nav.map),a(2),f(i.texts.nav.files),a(2),ge("is-spinning",i.scanning()),h("pTooltip",i.mapInfoTooltip())("disabled",i.scanning()),I("aria-label",i.mapInfoA11y()),a(),ge("pi-spin",i.scanning()),a(),h("icon",i.themeIcon())("ariaLabel",i.themeLabel())("pTooltip",i.themeTooltip())("text",!0)("rounded",!0),a(),h("ariaLabel",i.settingsTexts.a11y.triggerLabel)("pTooltip",i.settingsTexts.triggerTooltip)("text",!0)("rounded",!0),a(4),Pe(i.settingsOpen())}},dependencies:[De,Ne,$e,ee,q,et,Ve,Ke,Ge,we,pe,ce,Ze],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__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})};xe(me,vt).catch(n=>console.error(n));