@singi-labs/sifa-sdk 0.18.6 → 0.18.8

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
@@ -1148,6 +1148,13 @@ var APP_CATEGORY_MAP = {
1148
1148
  // app.greengale.blog.entry — authored blog posts (title, subtitle, Markdown body)
1149
1149
  kut: "Social",
1150
1150
  // social.kut.community.membership — joining a Kut community (a commitment)
1151
+ // Onboard from the upcoming profile-of-the-day audit.
1152
+ atmob: "Pastes",
1153
+ // in.atmob.paste.{document,bundle} — authored text/code pastes on atmob.in
1154
+ tokono: "Video",
1155
+ // ma.tokono.byov.video — authored videos hosted via the tokono.ma "bring your own video" feature
1156
+ portable: "Social",
1157
+ // agency.portable.membership — joining a community (a commitment), attested by another actor
1151
1158
  // Web-only (rendered in pills/cards via sifa-web atproto-apps.ts;
1152
1159
  // no backend scan collection yet)
1153
1160
  linkat: "Links",
@@ -1164,8 +1171,8 @@ function categoryForApp(appId) {
1164
1171
  // src/taxonomy/activity-tiers.json
1165
1172
  var activity_tiers_default = {
1166
1173
  $schema: "https://sifa.id/schemas/activity-tiers/v1.json",
1167
- version: "1.3.0",
1168
- updated: "2026-08-25",
1174
+ version: "1.4.0",
1175
+ updated: "2026-09-04",
1169
1176
  tiers: {
1170
1177
  creation: {
1171
1178
  label: "Made",
@@ -1184,6 +1191,23 @@ var activity_tiers_default = {
1184
1191
  }
1185
1192
  },
1186
1193
  lexicons: {
1194
+ "agency.portable.membership": {
1195
+ tier: "creation",
1196
+ app: "portable",
1197
+ notes: "Joining a community (a commitment), attested by another actor."
1198
+ },
1199
+ "in.atmob.paste.document": {
1200
+ tier: "creation",
1201
+ app: "atmob"
1202
+ },
1203
+ "in.atmob.paste.bundle": {
1204
+ tier: "creation",
1205
+ app: "atmob"
1206
+ },
1207
+ "ma.tokono.byov.video": {
1208
+ tier: "creation",
1209
+ app: "tokono"
1210
+ },
1187
1211
  "app.atmobb.discussion.reply": {
1188
1212
  tier: "creation",
1189
1213
  app: "atmobb",
@@ -3485,6 +3509,22 @@ var APP_URL_PATTERNS = Object.freeze({
3485
3509
  // its own; the card links to the community it joined, built from the
3486
3510
  // membership's community.uri in resolve-card-url. Homepage fallback only.
3487
3511
  profileUrlPattern: "https://kut.social"
3512
+ },
3513
+ atmob: {
3514
+ // atmob (atmob.in) is a paste app. Its SPA viewer renders any paste by its
3515
+ // full at-uri via a `?uri=` query param (verified in the app's app.js:
3516
+ // `location.search = ?uri=${encodeURIComponent(uri)}`). Both paste.document
3517
+ // and paste.bundle share that viewer, so the per-record URL is built
3518
+ // bespoke from the item's own uri in resolve-card-url. No pattern here.
3519
+ },
3520
+ tokono: {
3521
+ // tokono (tokono.ma) hosts "bring your own video" records, but tokono.ma is
3522
+ // the owner's static personal site with no public per-video viewer route.
3523
+ // Cards render non-clickable.
3524
+ },
3525
+ portable: {
3526
+ // agency.portable (handle portable.agency) has no resolving website, and a
3527
+ // membership record has no page of its own. Cards render non-clickable.
3488
3528
  }
3489
3529
  });
3490
3530
  var COLLECTION_TO_APP = [
@@ -3572,7 +3612,11 @@ var COLLECTION_TO_APP = [
3572
3612
  // Onboard from angrydutchman.houseofmadness.org profile audit.
3573
3613
  ["app.askeverything.", "askeverything"],
3574
3614
  ["app.greengale.", "greengale"],
3575
- ["social.kut.", "kut"]
3615
+ ["social.kut.", "kut"],
3616
+ // Onboard from the upcoming profile-of-the-day audit.
3617
+ ["in.atmob.paste.", "atmob"],
3618
+ ["ma.tokono.byov.", "tokono"],
3619
+ ["agency.portable.", "portable"]
3576
3620
  ];
3577
3621
 
3578
3622
  // src/cards/resolve-card-url.ts
@@ -3755,6 +3799,10 @@ function resolveCardHealth(item) {
3755
3799
  if (collection === "exchange.recipe.recipe") {
3756
3800
  return patternHealth("recipe", { handle: authorHandle, did: authorDid, rkey }, collection);
3757
3801
  }
3802
+ if (collection.startsWith("in.atmob.paste.")) {
3803
+ if (uri) return recordHealth(`https://atmob.in/?uri=${encodeURIComponent(uri)}`);
3804
+ return { url: null, strategy: "none" };
3805
+ }
3758
3806
  const recordUrl = stringOrNull(record.url);
3759
3807
  if (recordUrl) return urlHealth(recordUrl);
3760
3808
  return patternHealth(appId, { handle: authorHandle, did: authorDid, rkey }, collection);
@@ -6150,7 +6198,7 @@ function describeSifaRecord(collection, value) {
6150
6198
  }
6151
6199
 
6152
6200
  // src/index.ts
6153
- var SIFA_SDK_VERSION = "0.18.6";
6201
+ var SIFA_SDK_VERSION = "0.18.8";
6154
6202
 
6155
6203
  exports.ACTIVITY_TIERS = ACTIVITY_TIERS;
6156
6204
  exports.ACTIVITY_VERBS = ACTIVITY_VERBS;