@singi-labs/sifa-sdk 0.11.7 → 0.11.9

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" }
@@ -972,12 +974,50 @@ var APP_CATEGORY_MAP = {
972
974
  // is io.atcr.repo.page (a published repository with a markdown README);
973
975
  // manifests and tags are low-level artifacts excluded backend-side.
974
976
  atcr: "Code",
977
+ // Batch onboard — apps surfaced on high-volume profiles. Each gives its
978
+ // collections a named pill + category icon instead of a raw NSID.
979
+ mcp: "Code",
980
+ // app.mcp.server — published MCP servers (name/tools/language)
981
+ userinput: "Social",
982
+ // app.userinput — roadmap discussions + replies
983
+ minomobi: "Music",
984
+ // com.minomobi.music.composition — authored music
985
+ voxport: "Video",
986
+ // com.voxport.podcast.series — podcast series
987
+ badges: "Verification",
988
+ // community.lexicon.badge.award — signed earned credentials
989
+ atvouch: "Endorsements",
990
+ // dev.atvouch.graph.vouch — trust vouches
991
+ watsm: "Code",
992
+ // io.calabro.watsm.program — published WASM programs
993
+ plonk: "Pastes",
994
+ // li.plonk.paste — text pastes
995
+ alternativeproto: "Links",
996
+ // net.alternativeproto.submission — app-directory listings
997
+ papili: "Links",
998
+ // one.papili.post — link posts
999
+ vit: "Code",
1000
+ // org.v-it.skill — published agent skills
1001
+ lifepo: "Social",
1002
+ // st.lifepo.lifeEvent — life-event timeline
1003
+ streamthought: "Posts",
1004
+ // stream.thought.blip — microblog thoughts
1005
+ waow: "Photos",
1006
+ // tech.waow.* — doodl drawings (dominant), polls, slides
1007
+ lichen: "Pages",
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
975
1016
  // Web-only (rendered in pills/cards via sifa-web atproto-apps.ts;
976
1017
  // no backend scan collection yet)
977
1018
  linkat: "Links",
978
1019
  kipclip: "Links",
979
- statusphere: "Social",
980
- margin: "Research"
1020
+ statusphere: "Social"
981
1021
  };
982
1022
  function isKnownAppId(appId) {
983
1023
  return Object.prototype.hasOwnProperty.call(APP_CATEGORY_MAP, appId);
@@ -1915,6 +1955,19 @@ var APP_URL_PATTERNS = Object.freeze({
1915
1955
  // /r/{handle}/{rkey} and /u/{handle} both return 200.
1916
1956
  urlPattern: "https://atcr.io/r/{handle}/{rkey}",
1917
1957
  profileUrlPattern: "https://atcr.io/u/{handle}"
1958
+ },
1959
+ kich: {
1960
+ // Kich recipe viewer. Verified: GET /recipes/{rkey} returns 200 (the SPA
1961
+ // renders the recipe by rkey); /recipe/{rkey} 404s. No public per-handle
1962
+ // profile page, so the profile fallback points at the app root.
1963
+ urlPattern: "https://kich.io/recipes/{rkey}",
1964
+ profileUrlPattern: "https://kich.io"
1965
+ },
1966
+ aetherdocs: {
1967
+ // Aether OS is a browser OS — presentations open inside it and there's no
1968
+ // public per-record viewer. The card embeds the deck from the record; the
1969
+ // outbound link points at the author's Aether OS space (mirrors aetheros).
1970
+ profileUrlPattern: "https://aetheros.computer/{handle}"
1918
1971
  }
1919
1972
  });
1920
1973
  var COLLECTION_TO_APP = [
@@ -1961,7 +2014,26 @@ var COLLECTION_TO_APP = [
1961
2014
  ["quest.atmo.", "atmorsvp"],
1962
2015
  ["community.opensocial.", "opensocial"],
1963
2016
  ["is.kevara.", "kevara"],
1964
- ["io.atcr.", "atcr"]
2017
+ ["io.atcr.", "atcr"],
2018
+ // Batch onboard — named pills for apps that were leaking as raw NSIDs.
2019
+ ["app.mcp.", "mcp"],
2020
+ ["app.userinput.", "userinput"],
2021
+ ["com.minomobi.", "minomobi"],
2022
+ ["com.voxport.", "voxport"],
2023
+ ["community.lexicon.badge.", "badges"],
2024
+ ["dev.atvouch.", "atvouch"],
2025
+ ["io.calabro.watsm.", "watsm"],
2026
+ ["li.plonk.", "plonk"],
2027
+ ["net.alternativeproto.", "alternativeproto"],
2028
+ ["one.papili.", "papili"],
2029
+ ["org.v-it.", "vit"],
2030
+ ["st.lifepo.", "lifepo"],
2031
+ ["stream.thought.", "streamthought"],
2032
+ ["tech.waow.", "waow"],
2033
+ ["wiki.lichen.", "lichen"],
2034
+ // Onboard from aramzs.xyz profile audit.
2035
+ ["os.aether.", "aetherdocs"],
2036
+ ["io.kich.recipe.recipe", "kich"]
1965
2037
  ];
1966
2038
 
1967
2039
  // src/cards/resolve-card-url.ts
@@ -2033,7 +2105,7 @@ function resolveCardUrl(item) {
2033
2105
  if (source) return source;
2034
2106
  return null;
2035
2107
  }
2036
- if (collection === "at.margin.annotation") {
2108
+ if (collection === "at.margin.annotation" || collection === "at.margin.note") {
2037
2109
  const target = record.target;
2038
2110
  if (target != null && typeof target === "object") {
2039
2111
  const source = stringOrNull(target.source);
@@ -2098,6 +2170,9 @@ function resolveCardUrl(item) {
2098
2170
  if (siteUrl && path) return `${siteUrl}${path}`;
2099
2171
  if (siteUrl) return siteUrl;
2100
2172
  }
2173
+ if (collection === "io.kich.recipe.recipe") {
2174
+ return patternUrl("kich", { handle: authorHandle, did: authorDid, rkey }, collection);
2175
+ }
2101
2176
  const recordUrl = stringOrNull(record.url);
2102
2177
  if (recordUrl) return recordUrl;
2103
2178
  return patternUrl(appId, { handle: authorHandle, did: authorDid, rkey }, collection);
@@ -2596,7 +2671,7 @@ var ProfileVolunteeringRecordSchema = zod.z.object({
2596
2671
  });
2597
2672
 
2598
2673
  // src/index.ts
2599
- var SIFA_SDK_VERSION = "0.11.7";
2674
+ var SIFA_SDK_VERSION = "0.11.9";
2600
2675
 
2601
2676
  exports.ACTIVITY_TIERS = ACTIVITY_TIERS;
2602
2677
  exports.ACTIVITY_VISIBILITY_RULES = ACTIVITY_VISIBILITY_RULES;