@skill-map/cli 0.10.0 → 0.11.1

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
@@ -827,7 +827,71 @@ interface IProviderKind {
827
827
  * disables the Provider with status `invalid-manifest`.
828
828
  */
829
829
  defaultRefreshAction: string;
830
+ /**
831
+ * Presentation metadata the UI consumes to render nodes of this kind
832
+ * (palette swatches, list tags, graph nodes, filter chips). Required
833
+ * so the UI never has to invent visuals for a Provider-declared kind.
834
+ * Mirrors `extensions/provider.schema.json#/properties/kinds/.../ui`.
835
+ */
836
+ ui: IProviderKindUi;
830
837
  }
838
+ /**
839
+ * Presentation contract for one Provider kind. The Provider declares
840
+ * intent (label + base color, optional dark variant + emoji + icon);
841
+ * the UI derives `bg`/`fg` tints per theme via a deterministic helper
842
+ * and reads the registry from the `kindRegistry` field embedded in REST
843
+ * envelopes. Single source of truth for what a kind looks like — the
844
+ * UI never hardcodes presentation for a built-in kind.
845
+ */
846
+ interface IProviderKindUi {
847
+ /**
848
+ * Plural human-readable label for groups of this kind (e.g. `'Skills'`,
849
+ * `'Agents'`, `'Cursor Rules'`). Used in filter dropdowns, palette
850
+ * tooltips, and any list grouping.
851
+ */
852
+ label: string;
853
+ /**
854
+ * Base hex color (`#RRGGBB`) for the light theme. The UI derives `bg`
855
+ * and `fg` tints from this value at runtime via a deterministic
856
+ * helper. Declaring one base value (instead of three) keeps the
857
+ * manifest small and centralises accessibility-driven contrast in the
858
+ * UI.
859
+ */
860
+ color: string;
861
+ /**
862
+ * Optional dark-theme variant of `color`. When absent, the UI falls
863
+ * back to `color`. Declared explicitly because a luminosity flip
864
+ * rarely matches the brand intent for kinds that should stand out in
865
+ * dark mode.
866
+ */
867
+ colorDark?: string;
868
+ /**
869
+ * Optional decorative emoji used as a fallback when `icon` is absent
870
+ * or fails to render. Length-bound so the UI can lay it out
871
+ * predictably alongside text.
872
+ */
873
+ emoji?: string;
874
+ /**
875
+ * Optional discriminated icon descriptor. The UI prefers `icon` over
876
+ * `emoji`; when both are absent, the UI falls back to the first
877
+ * letter of `label` colored with `color`.
878
+ */
879
+ icon?: IProviderKindIcon;
880
+ }
881
+ /**
882
+ * Discriminated icon contract. `pi` references a PrimeIcons identifier
883
+ * (e.g. `'pi-cog'`); `svg` carries raw SVG path data the UI wraps in a
884
+ * `<svg viewBox="0 0 24 24"><path d="…"/></svg>` element tinted with
885
+ * `currentColor`. The discriminator (`kind`) keeps the UI dispatch
886
+ * exhaustive without string-sniffing the payload.
887
+ */
888
+ type IProviderKindIcon = {
889
+ kind: 'pi';
890
+ id: string;
891
+ } | {
892
+ kind: 'svg';
893
+ path: string;
894
+ };
831
895
  interface IProvider extends IExtensionBase {
832
896
  kind: 'provider';
833
897
  /**
@@ -102,7 +102,7 @@ import yaml from "js-yaml";
102
102
  // package.json
103
103
  var package_default = {
104
104
  name: "@skill-map/cli",
105
- version: "0.10.0",
105
+ version: "0.11.1",
106
106
  description: "skill-map reference implementation \u2014 kernel + CLI + adapters.",
107
107
  license: "MIT",
108
108
  type: "module",