@singi-labs/sifa-sdk 0.14.7 → 0.16.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.
package/dist/index.cjs CHANGED
@@ -979,12 +979,14 @@ function groupSkillsForDisplay(skills, options = {}) {
979
979
 
980
980
  // src/taxonomy/app-categories.ts
981
981
  var APP_CATEGORIES = {
982
+ Art: { phosphorIcon: "PaintBrush" },
982
983
  Articles: { phosphorIcon: "Article" },
983
984
  Chat: { phosphorIcon: "ChatsCircle" },
984
985
  Code: { phosphorIcon: "Code" },
985
986
  Domains: { phosphorIcon: "Globe" },
986
987
  Endorsements: { phosphorIcon: "HandHeart" },
987
988
  Events: { phosphorIcon: "CalendarBlank" },
989
+ Impact: { phosphorIcon: "Certificate" },
988
990
  Links: { phosphorIcon: "LinkSimple" },
989
991
  Lists: { phosphorIcon: "ListBullets" },
990
992
  Music: { phosphorIcon: "MusicNote" },
@@ -1127,6 +1129,15 @@ var APP_CATEGORY_MAP = {
1127
1129
  // at.locale.{project,translation} — localization projects and authored translation strings on locale.at
1128
1130
  pckt: "Posts",
1129
1131
  // blog.pckt.mini.post — microblog posts with no site.standard.document twin
1132
+ // Onboard from the holke.xyz profile audit (impact-funding ecosystem).
1133
+ hypercerts: "Impact",
1134
+ // org.hypercerts.{claim.activity,collection} — authored claims of work done, and the project collections that group them
1135
+ certified: "Endorsements",
1136
+ // app.certified.{badge.award,actor.membership} — endorsements issued to another DID, and group memberships
1137
+ impactindexer: "Reviews",
1138
+ // org.impactindexer.review.comment — written reviews of a hypercert claim
1139
+ pinksea: "Art",
1140
+ // com.shinolabs.pinksea.oekaki — hand-drawn artwork posted to the PinkSea oekaki BBS
1130
1141
  // Web-only (rendered in pills/cards via sifa-web atproto-apps.ts;
1131
1142
  // no backend scan collection yet)
1132
1143
  linkat: "Links",
@@ -1143,8 +1154,8 @@ function categoryForApp(appId) {
1143
1154
  // src/taxonomy/activity-tiers.json
1144
1155
  var activity_tiers_default = {
1145
1156
  $schema: "https://sifa.id/schemas/activity-tiers/v1.json",
1146
- version: "1.1.0",
1147
- updated: "2026-07-29",
1157
+ version: "1.2.0",
1158
+ updated: "2026-08-25",
1148
1159
  tiers: {
1149
1160
  creation: {
1150
1161
  label: "Made",
@@ -1172,26 +1183,6 @@ var activity_tiers_default = {
1172
1183
  tier: "creation",
1173
1184
  app: "atmobb"
1174
1185
  },
1175
- "at.locale.project": {
1176
- tier: "creation",
1177
- app: "locale",
1178
- notes: "A localization project the actor owns: git source, source and target locales."
1179
- },
1180
- "at.locale.translation": {
1181
- tier: "creation",
1182
- app: "locale",
1183
- notes: "One authored translated string for a message key in a target locale."
1184
- },
1185
- "blog.pckt.mini.post": {
1186
- tier: "creation",
1187
- app: "pckt",
1188
- notes: "A pckt microblog post. Long-form pckt posts are site.standard.document instead."
1189
- },
1190
- "app.photosky.collection": {
1191
- tier: "creation",
1192
- app: "zeens",
1193
- notes: "A curated photo collection on Zeens (still the app.photosky namespace)."
1194
- },
1195
1186
  "app.beaconbits.beacon": {
1196
1187
  tier: "creation",
1197
1188
  app: "beaconbits"
@@ -1257,6 +1248,16 @@ var activity_tiers_default = {
1257
1248
  app: "bluesky",
1258
1249
  notes: "Diverges from app.bsky.graph.follow (action) on purpose: verifying another account's handle is a deliberate trust statement the actor authors, not a tap. Sifa renders it with its own card."
1259
1250
  },
1251
+ "app.certified.actor.membership": {
1252
+ tier: "creation",
1253
+ app: "certified",
1254
+ notes: "Joining a group is a commitment, same shape as a Colibri or Open Social membership."
1255
+ },
1256
+ "app.certified.badge.award": {
1257
+ tier: "creation",
1258
+ app: "certified",
1259
+ notes: "An endorsement issued to another DID. A trust signal the actor contributes, like a Bluesky verification."
1260
+ },
1260
1261
  "app.collectivesocial.feed.list": {
1261
1262
  tier: "creation",
1262
1263
  app: "collectivesocial",
@@ -1266,6 +1267,11 @@ var activity_tiers_default = {
1266
1267
  tier: "creation",
1267
1268
  app: "mcp"
1268
1269
  },
1270
+ "app.photosky.collection": {
1271
+ tier: "creation",
1272
+ app: "zeens",
1273
+ notes: "A curated photo collection on Zeens (still the app.photosky namespace)."
1274
+ },
1269
1275
  "app.sidetrail.trail": {
1270
1276
  tier: "creation",
1271
1277
  app: "semble"
@@ -1283,6 +1289,16 @@ var activity_tiers_default = {
1283
1289
  app: "userinput",
1284
1290
  notes: "Replies are authored text, consistent with app.bsky.feed.post covering replies."
1285
1291
  },
1292
+ "at.locale.project": {
1293
+ tier: "creation",
1294
+ app: "locale",
1295
+ notes: "A localization project the actor owns: git source, source and target locales."
1296
+ },
1297
+ "at.locale.translation": {
1298
+ tier: "creation",
1299
+ app: "locale",
1300
+ notes: "One authored translated string for a message key in a target locale."
1301
+ },
1286
1302
  "at.margin.annotation": {
1287
1303
  tier: "creation",
1288
1304
  app: "margin",
@@ -1310,6 +1326,11 @@ var activity_tiers_default = {
1310
1326
  tier: "creation",
1311
1327
  app: "youandme"
1312
1328
  },
1329
+ "blog.pckt.mini.post": {
1330
+ tier: "creation",
1331
+ app: "pckt",
1332
+ notes: "A pckt microblog post. Long-form pckt posts are site.standard.document instead."
1333
+ },
1313
1334
  "blue.flashes.feed.post": {
1314
1335
  tier: "creation",
1315
1336
  app: "flashes"
@@ -1327,6 +1348,11 @@ var activity_tiers_default = {
1327
1348
  tier: "creation",
1328
1349
  app: "minomobi"
1329
1350
  },
1351
+ "com.shinolabs.pinksea.oekaki": {
1352
+ tier: "creation",
1353
+ app: "pinksea",
1354
+ notes: "A drawing made in PinkSea's canvas, stored as an image blob with alt text and tags."
1355
+ },
1330
1356
  "com.voxport.podcast.series": {
1331
1357
  tier: "creation",
1332
1358
  app: "voxport"
@@ -1488,6 +1514,11 @@ var activity_tiers_default = {
1488
1514
  app: "sifa",
1489
1515
  notes: "OAuth scope record."
1490
1516
  },
1517
+ "id.sifa.confirmation": {
1518
+ tier: "action",
1519
+ app: "sifa",
1520
+ notes: "Confirmation that a record naming the actor is accurate (co-speaker credit, project membership)."
1521
+ },
1491
1522
  "id.sifa.endorsement": {
1492
1523
  tier: "creation",
1493
1524
  app: "sifa",
@@ -1498,11 +1529,6 @@ var activity_tiers_default = {
1498
1529
  app: "sifa",
1499
1530
  notes: "Confirmation/acceptance of an endorsement received."
1500
1531
  },
1501
- "id.sifa.confirmation": {
1502
- tier: "action",
1503
- app: "sifa",
1504
- notes: "Confirmation that a record naming the actor is accurate (co-speaker credit, project membership)."
1505
- },
1506
1532
  "id.sifa.graph.connection": {
1507
1533
  tier: "creation",
1508
1534
  app: "sifa",
@@ -1663,6 +1689,31 @@ var activity_tiers_default = {
1663
1689
  tier: "creation",
1664
1690
  app: "papili"
1665
1691
  },
1692
+ "org.hypercerts.claim.activity": {
1693
+ tier: "creation",
1694
+ app: "hypercerts",
1695
+ notes: "A hypercert: an authored claim of work done, with title, description, and weighted contributors."
1696
+ },
1697
+ "org.hypercerts.claim.collection": {
1698
+ tier: "creation",
1699
+ app: "hypercerts",
1700
+ notes: "Older shape of the project container that groups claims. Superseded by org.hypercerts.collection."
1701
+ },
1702
+ "org.hypercerts.claim.evaluation": {
1703
+ tier: "creation",
1704
+ app: "hypercerts",
1705
+ notes: "An assessment of a claim carrying a score and a written summary. An opinion with a body."
1706
+ },
1707
+ "org.hypercerts.collection": {
1708
+ tier: "creation",
1709
+ app: "hypercerts",
1710
+ notes: "An authored project container grouping hypercert claims, with its own title, banner, and description."
1711
+ },
1712
+ "org.impactindexer.review.comment": {
1713
+ tier: "creation",
1714
+ app: "impactindexer",
1715
+ notes: "A written review of a hypercert claim, like a Popfeed or BookHive review."
1716
+ },
1666
1717
  "org.v-it.skill": {
1667
1718
  tier: "creation",
1668
1719
  app: "vit"
@@ -3325,6 +3376,29 @@ var APP_URL_PATTERNS = Object.freeze({
3325
3376
  urlPattern: "https://kich.io/recipes/{rkey}",
3326
3377
  profileUrlPattern: "https://kich.io"
3327
3378
  },
3379
+ pinksea: {
3380
+ // PinkSea oekaki viewer. Verified live: GET /{did}/oekaki/{rkey} returns
3381
+ // 200 AND its og:image resolves to harbor.pinksea.art/{did}/{blobCid}
3382
+ // carrying the same CID as the record, so the route really is per-record
3383
+ // and not just an SPA catch-all.
3384
+ urlPattern: "https://pinksea.art/{did}/oekaki/{rkey}",
3385
+ profileUrlPattern: "https://pinksea.art/{did}"
3386
+ },
3387
+ hypercerts: {
3388
+ // No confirmed public per-record viewer. hyperscan.dev is a network-wide
3389
+ // search explorer (its input takes "DID, handle, AT-URI, or PDS host"),
3390
+ // and hypercerts.org 404s on every claim route tried. Recognized so the
3391
+ // pill renders, but cards stay non-clickable.
3392
+ },
3393
+ certified: {
3394
+ // certified.app is fully client-rendered and returns an identical
3395
+ // "Loading" shell for a real DID and a nonsense one, so no per-record
3396
+ // route could be verified. Non-clickable until one is confirmed.
3397
+ },
3398
+ impactindexer: {
3399
+ // Reviews are surfaced through hyperscan.dev/review, which has no
3400
+ // per-record route. Non-clickable.
3401
+ },
3328
3402
  recipe: {
3329
3403
  // recipe.exchange viewer. Verified: GET /recipes/{rkey} returns 200 (rkey
3330
3404
  // alone; no did needed) and /profiles/{handle} returns 200 for the author
@@ -3427,7 +3501,12 @@ var COLLECTION_TO_APP = [
3427
3501
  // Onboard from aaronstevenwhite.io profile audit.
3428
3502
  ["pub.chive.", "chive"],
3429
3503
  // Onboard from helene-cook.eu profile audit. Zeens kept its old NSID.
3430
- ["app.photosky.", "zeens"]
3504
+ ["app.photosky.", "zeens"],
3505
+ // Onboard from the holke.xyz profile audit.
3506
+ ["org.hypercerts.", "hypercerts"],
3507
+ ["app.certified.", "certified"],
3508
+ ["org.impactindexer.", "impactindexer"],
3509
+ ["com.shinolabs.pinksea.", "pinksea"]
3431
3510
  ];
3432
3511
 
3433
3512
  // src/cards/resolve-card-url.ts
@@ -5945,7 +6024,7 @@ function describeSifaRecord(collection, value) {
5945
6024
  }
5946
6025
 
5947
6026
  // src/index.ts
5948
- var SIFA_SDK_VERSION = "0.14.7";
6027
+ var SIFA_SDK_VERSION = "0.16.0";
5949
6028
 
5950
6029
  exports.ACTIVITY_TIERS = ACTIVITY_TIERS;
5951
6030
  exports.ACTIVITY_VERBS = ACTIVITY_VERBS;