@singi-labs/sifa-sdk 0.11.8 → 0.11.10

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
package/dist/index.cjs CHANGED
@@ -911,8 +911,10 @@ var APP_CATEGORIES = {
911
911
  Places: { phosphorIcon: "MapPin" },
912
912
  Posts: { phosphorIcon: "ChatCircle" },
913
913
  "Q&A": { phosphorIcon: "Question" },
914
+ Recipes: { phosphorIcon: "CookingPot" },
914
915
  Research: { phosphorIcon: "Path" },
915
916
  Reviews: { phosphorIcon: "Star" },
917
+ Slides: { phosphorIcon: "Presentation" },
916
918
  Social: { phosphorIcon: "UsersThree" },
917
919
  Verification: { phosphorIcon: "Key" },
918
920
  Video: { phosphorIcon: "VideoCamera" }
@@ -1004,12 +1006,21 @@ var APP_CATEGORY_MAP = {
1004
1006
  // tech.waow.* — doodl drawings (dominant), polls, slides
1005
1007
  lichen: "Pages",
1006
1008
  // wiki.lichen — wiki notes + wikis
1009
+ // Onboard from aramzs.xyz profile audit — new named pills.
1010
+ aetherdocs: "Slides",
1011
+ // os.aether.docs.presentation — authored slide decks
1012
+ kich: "Recipes",
1013
+ // io.kich.recipe.recipe — authored recipes
1014
+ margin: "Research",
1015
+ // at.margin.{note,annotation} — web-annotation notes with a body
1016
+ // Onboard from moll.dev profile audit.
1017
+ recipe: "Recipes",
1018
+ // exchange.recipe.recipe — authored recipes on recipe.exchange
1007
1019
  // Web-only (rendered in pills/cards via sifa-web atproto-apps.ts;
1008
1020
  // no backend scan collection yet)
1009
1021
  linkat: "Links",
1010
1022
  kipclip: "Links",
1011
- statusphere: "Social",
1012
- margin: "Research"
1023
+ statusphere: "Social"
1013
1024
  };
1014
1025
  function isKnownAppId(appId) {
1015
1026
  return Object.prototype.hasOwnProperty.call(APP_CATEGORY_MAP, appId);
@@ -1947,6 +1958,26 @@ var APP_URL_PATTERNS = Object.freeze({
1947
1958
  // /r/{handle}/{rkey} and /u/{handle} both return 200.
1948
1959
  urlPattern: "https://atcr.io/r/{handle}/{rkey}",
1949
1960
  profileUrlPattern: "https://atcr.io/u/{handle}"
1961
+ },
1962
+ kich: {
1963
+ // Kich recipe viewer. Verified: GET /recipes/{rkey} returns 200 (the SPA
1964
+ // renders the recipe by rkey); /recipe/{rkey} 404s. No public per-handle
1965
+ // profile page, so the profile fallback points at the app root.
1966
+ urlPattern: "https://kich.io/recipes/{rkey}",
1967
+ profileUrlPattern: "https://kich.io"
1968
+ },
1969
+ recipe: {
1970
+ // recipe.exchange viewer. Verified: GET /recipes/{rkey} returns 200 (rkey
1971
+ // alone; no did needed) and /profiles/{handle} returns 200 for the author
1972
+ // page. /recipe/{rkey} 404s.
1973
+ urlPattern: "https://recipe.exchange/recipes/{rkey}",
1974
+ profileUrlPattern: "https://recipe.exchange/profiles/{handle}"
1975
+ },
1976
+ aetherdocs: {
1977
+ // Aether OS is a browser OS — presentations open inside it and there's no
1978
+ // public per-record viewer. The card embeds the deck from the record; the
1979
+ // outbound link points at the author's Aether OS space (mirrors aetheros).
1980
+ profileUrlPattern: "https://aetheros.computer/{handle}"
1950
1981
  }
1951
1982
  });
1952
1983
  var COLLECTION_TO_APP = [
@@ -2009,7 +2040,12 @@ var COLLECTION_TO_APP = [
2009
2040
  ["st.lifepo.", "lifepo"],
2010
2041
  ["stream.thought.", "streamthought"],
2011
2042
  ["tech.waow.", "waow"],
2012
- ["wiki.lichen.", "lichen"]
2043
+ ["wiki.lichen.", "lichen"],
2044
+ // Onboard from aramzs.xyz profile audit.
2045
+ ["os.aether.", "aetherdocs"],
2046
+ ["io.kich.recipe.recipe", "kich"],
2047
+ // Onboard from moll.dev profile audit.
2048
+ ["exchange.recipe.recipe", "recipe"]
2013
2049
  ];
2014
2050
 
2015
2051
  // src/cards/resolve-card-url.ts
@@ -2081,7 +2117,7 @@ function resolveCardUrl(item) {
2081
2117
  if (source) return source;
2082
2118
  return null;
2083
2119
  }
2084
- if (collection === "at.margin.annotation") {
2120
+ if (collection === "at.margin.annotation" || collection === "at.margin.note") {
2085
2121
  const target = record.target;
2086
2122
  if (target != null && typeof target === "object") {
2087
2123
  const source = stringOrNull(target.source);
@@ -2146,6 +2182,12 @@ function resolveCardUrl(item) {
2146
2182
  if (siteUrl && path) return `${siteUrl}${path}`;
2147
2183
  if (siteUrl) return siteUrl;
2148
2184
  }
2185
+ if (collection === "io.kich.recipe.recipe") {
2186
+ return patternUrl("kich", { handle: authorHandle, did: authorDid, rkey }, collection);
2187
+ }
2188
+ if (collection === "exchange.recipe.recipe") {
2189
+ return patternUrl("recipe", { handle: authorHandle, did: authorDid, rkey }, collection);
2190
+ }
2149
2191
  const recordUrl = stringOrNull(record.url);
2150
2192
  if (recordUrl) return recordUrl;
2151
2193
  return patternUrl(appId, { handle: authorHandle, did: authorDid, rkey }, collection);
@@ -2644,7 +2686,7 @@ var ProfileVolunteeringRecordSchema = zod.z.object({
2644
2686
  });
2645
2687
 
2646
2688
  // src/index.ts
2647
- var SIFA_SDK_VERSION = "0.11.8";
2689
+ var SIFA_SDK_VERSION = "0.11.10";
2648
2690
 
2649
2691
  exports.ACTIVITY_TIERS = ACTIVITY_TIERS;
2650
2692
  exports.ACTIVITY_VISIBILITY_RULES = ACTIVITY_VISIBILITY_RULES;