@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.d.cts CHANGED
@@ -300,6 +300,9 @@ declare function groupSkillsForDisplay<T extends ProfileSkill>(skills: T[], opti
300
300
  * public-facing copy.
301
301
  */
302
302
  declare const APP_CATEGORIES: {
303
+ readonly Art: {
304
+ readonly phosphorIcon: "PaintBrush";
305
+ };
303
306
  readonly Articles: {
304
307
  readonly phosphorIcon: "Article";
305
308
  };
@@ -318,6 +321,9 @@ declare const APP_CATEGORIES: {
318
321
  readonly Events: {
319
322
  readonly phosphorIcon: "CalendarBlank";
320
323
  };
324
+ readonly Impact: {
325
+ readonly phosphorIcon: "Certificate";
326
+ };
321
327
  readonly Links: {
322
328
  readonly phosphorIcon: "LinkSimple";
323
329
  };
@@ -450,6 +456,10 @@ declare const APP_CATEGORY_MAP: {
450
456
  readonly zeens: "Photos";
451
457
  readonly locale: "Translations";
452
458
  readonly pckt: "Posts";
459
+ readonly hypercerts: "Impact";
460
+ readonly certified: "Endorsements";
461
+ readonly impactindexer: "Reviews";
462
+ readonly pinksea: "Art";
453
463
  readonly linkat: "Links";
454
464
  readonly kipclip: "Links";
455
465
  readonly statusphere: "Social";
package/dist/index.d.ts CHANGED
@@ -300,6 +300,9 @@ declare function groupSkillsForDisplay<T extends ProfileSkill>(skills: T[], opti
300
300
  * public-facing copy.
301
301
  */
302
302
  declare const APP_CATEGORIES: {
303
+ readonly Art: {
304
+ readonly phosphorIcon: "PaintBrush";
305
+ };
303
306
  readonly Articles: {
304
307
  readonly phosphorIcon: "Article";
305
308
  };
@@ -318,6 +321,9 @@ declare const APP_CATEGORIES: {
318
321
  readonly Events: {
319
322
  readonly phosphorIcon: "CalendarBlank";
320
323
  };
324
+ readonly Impact: {
325
+ readonly phosphorIcon: "Certificate";
326
+ };
321
327
  readonly Links: {
322
328
  readonly phosphorIcon: "LinkSimple";
323
329
  };
@@ -450,6 +456,10 @@ declare const APP_CATEGORY_MAP: {
450
456
  readonly zeens: "Photos";
451
457
  readonly locale: "Translations";
452
458
  readonly pckt: "Posts";
459
+ readonly hypercerts: "Impact";
460
+ readonly certified: "Endorsements";
461
+ readonly impactindexer: "Reviews";
462
+ readonly pinksea: "Art";
453
463
  readonly linkat: "Links";
454
464
  readonly kipclip: "Links";
455
465
  readonly statusphere: "Social";
package/dist/index.js CHANGED
@@ -977,12 +977,14 @@ function groupSkillsForDisplay(skills, options = {}) {
977
977
 
978
978
  // src/taxonomy/app-categories.ts
979
979
  var APP_CATEGORIES = {
980
+ Art: { phosphorIcon: "PaintBrush" },
980
981
  Articles: { phosphorIcon: "Article" },
981
982
  Chat: { phosphorIcon: "ChatsCircle" },
982
983
  Code: { phosphorIcon: "Code" },
983
984
  Domains: { phosphorIcon: "Globe" },
984
985
  Endorsements: { phosphorIcon: "HandHeart" },
985
986
  Events: { phosphorIcon: "CalendarBlank" },
987
+ Impact: { phosphorIcon: "Certificate" },
986
988
  Links: { phosphorIcon: "LinkSimple" },
987
989
  Lists: { phosphorIcon: "ListBullets" },
988
990
  Music: { phosphorIcon: "MusicNote" },
@@ -1125,6 +1127,15 @@ var APP_CATEGORY_MAP = {
1125
1127
  // at.locale.{project,translation} — localization projects and authored translation strings on locale.at
1126
1128
  pckt: "Posts",
1127
1129
  // blog.pckt.mini.post — microblog posts with no site.standard.document twin
1130
+ // Onboard from the holke.xyz profile audit (impact-funding ecosystem).
1131
+ hypercerts: "Impact",
1132
+ // org.hypercerts.{claim.activity,collection} — authored claims of work done, and the project collections that group them
1133
+ certified: "Endorsements",
1134
+ // app.certified.{badge.award,actor.membership} — endorsements issued to another DID, and group memberships
1135
+ impactindexer: "Reviews",
1136
+ // org.impactindexer.review.comment — written reviews of a hypercert claim
1137
+ pinksea: "Art",
1138
+ // com.shinolabs.pinksea.oekaki — hand-drawn artwork posted to the PinkSea oekaki BBS
1128
1139
  // Web-only (rendered in pills/cards via sifa-web atproto-apps.ts;
1129
1140
  // no backend scan collection yet)
1130
1141
  linkat: "Links",
@@ -1141,8 +1152,8 @@ function categoryForApp(appId) {
1141
1152
  // src/taxonomy/activity-tiers.json
1142
1153
  var activity_tiers_default = {
1143
1154
  $schema: "https://sifa.id/schemas/activity-tiers/v1.json",
1144
- version: "1.1.0",
1145
- updated: "2026-07-29",
1155
+ version: "1.2.0",
1156
+ updated: "2026-08-25",
1146
1157
  tiers: {
1147
1158
  creation: {
1148
1159
  label: "Made",
@@ -1170,26 +1181,6 @@ var activity_tiers_default = {
1170
1181
  tier: "creation",
1171
1182
  app: "atmobb"
1172
1183
  },
1173
- "at.locale.project": {
1174
- tier: "creation",
1175
- app: "locale",
1176
- notes: "A localization project the actor owns: git source, source and target locales."
1177
- },
1178
- "at.locale.translation": {
1179
- tier: "creation",
1180
- app: "locale",
1181
- notes: "One authored translated string for a message key in a target locale."
1182
- },
1183
- "blog.pckt.mini.post": {
1184
- tier: "creation",
1185
- app: "pckt",
1186
- notes: "A pckt microblog post. Long-form pckt posts are site.standard.document instead."
1187
- },
1188
- "app.photosky.collection": {
1189
- tier: "creation",
1190
- app: "zeens",
1191
- notes: "A curated photo collection on Zeens (still the app.photosky namespace)."
1192
- },
1193
1184
  "app.beaconbits.beacon": {
1194
1185
  tier: "creation",
1195
1186
  app: "beaconbits"
@@ -1255,6 +1246,16 @@ var activity_tiers_default = {
1255
1246
  app: "bluesky",
1256
1247
  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."
1257
1248
  },
1249
+ "app.certified.actor.membership": {
1250
+ tier: "creation",
1251
+ app: "certified",
1252
+ notes: "Joining a group is a commitment, same shape as a Colibri or Open Social membership."
1253
+ },
1254
+ "app.certified.badge.award": {
1255
+ tier: "creation",
1256
+ app: "certified",
1257
+ notes: "An endorsement issued to another DID. A trust signal the actor contributes, like a Bluesky verification."
1258
+ },
1258
1259
  "app.collectivesocial.feed.list": {
1259
1260
  tier: "creation",
1260
1261
  app: "collectivesocial",
@@ -1264,6 +1265,11 @@ var activity_tiers_default = {
1264
1265
  tier: "creation",
1265
1266
  app: "mcp"
1266
1267
  },
1268
+ "app.photosky.collection": {
1269
+ tier: "creation",
1270
+ app: "zeens",
1271
+ notes: "A curated photo collection on Zeens (still the app.photosky namespace)."
1272
+ },
1267
1273
  "app.sidetrail.trail": {
1268
1274
  tier: "creation",
1269
1275
  app: "semble"
@@ -1281,6 +1287,16 @@ var activity_tiers_default = {
1281
1287
  app: "userinput",
1282
1288
  notes: "Replies are authored text, consistent with app.bsky.feed.post covering replies."
1283
1289
  },
1290
+ "at.locale.project": {
1291
+ tier: "creation",
1292
+ app: "locale",
1293
+ notes: "A localization project the actor owns: git source, source and target locales."
1294
+ },
1295
+ "at.locale.translation": {
1296
+ tier: "creation",
1297
+ app: "locale",
1298
+ notes: "One authored translated string for a message key in a target locale."
1299
+ },
1284
1300
  "at.margin.annotation": {
1285
1301
  tier: "creation",
1286
1302
  app: "margin",
@@ -1308,6 +1324,11 @@ var activity_tiers_default = {
1308
1324
  tier: "creation",
1309
1325
  app: "youandme"
1310
1326
  },
1327
+ "blog.pckt.mini.post": {
1328
+ tier: "creation",
1329
+ app: "pckt",
1330
+ notes: "A pckt microblog post. Long-form pckt posts are site.standard.document instead."
1331
+ },
1311
1332
  "blue.flashes.feed.post": {
1312
1333
  tier: "creation",
1313
1334
  app: "flashes"
@@ -1325,6 +1346,11 @@ var activity_tiers_default = {
1325
1346
  tier: "creation",
1326
1347
  app: "minomobi"
1327
1348
  },
1349
+ "com.shinolabs.pinksea.oekaki": {
1350
+ tier: "creation",
1351
+ app: "pinksea",
1352
+ notes: "A drawing made in PinkSea's canvas, stored as an image blob with alt text and tags."
1353
+ },
1328
1354
  "com.voxport.podcast.series": {
1329
1355
  tier: "creation",
1330
1356
  app: "voxport"
@@ -1486,6 +1512,11 @@ var activity_tiers_default = {
1486
1512
  app: "sifa",
1487
1513
  notes: "OAuth scope record."
1488
1514
  },
1515
+ "id.sifa.confirmation": {
1516
+ tier: "action",
1517
+ app: "sifa",
1518
+ notes: "Confirmation that a record naming the actor is accurate (co-speaker credit, project membership)."
1519
+ },
1489
1520
  "id.sifa.endorsement": {
1490
1521
  tier: "creation",
1491
1522
  app: "sifa",
@@ -1496,11 +1527,6 @@ var activity_tiers_default = {
1496
1527
  app: "sifa",
1497
1528
  notes: "Confirmation/acceptance of an endorsement received."
1498
1529
  },
1499
- "id.sifa.confirmation": {
1500
- tier: "action",
1501
- app: "sifa",
1502
- notes: "Confirmation that a record naming the actor is accurate (co-speaker credit, project membership)."
1503
- },
1504
1530
  "id.sifa.graph.connection": {
1505
1531
  tier: "creation",
1506
1532
  app: "sifa",
@@ -1661,6 +1687,31 @@ var activity_tiers_default = {
1661
1687
  tier: "creation",
1662
1688
  app: "papili"
1663
1689
  },
1690
+ "org.hypercerts.claim.activity": {
1691
+ tier: "creation",
1692
+ app: "hypercerts",
1693
+ notes: "A hypercert: an authored claim of work done, with title, description, and weighted contributors."
1694
+ },
1695
+ "org.hypercerts.claim.collection": {
1696
+ tier: "creation",
1697
+ app: "hypercerts",
1698
+ notes: "Older shape of the project container that groups claims. Superseded by org.hypercerts.collection."
1699
+ },
1700
+ "org.hypercerts.claim.evaluation": {
1701
+ tier: "creation",
1702
+ app: "hypercerts",
1703
+ notes: "An assessment of a claim carrying a score and a written summary. An opinion with a body."
1704
+ },
1705
+ "org.hypercerts.collection": {
1706
+ tier: "creation",
1707
+ app: "hypercerts",
1708
+ notes: "An authored project container grouping hypercert claims, with its own title, banner, and description."
1709
+ },
1710
+ "org.impactindexer.review.comment": {
1711
+ tier: "creation",
1712
+ app: "impactindexer",
1713
+ notes: "A written review of a hypercert claim, like a Popfeed or BookHive review."
1714
+ },
1664
1715
  "org.v-it.skill": {
1665
1716
  tier: "creation",
1666
1717
  app: "vit"
@@ -3323,6 +3374,29 @@ var APP_URL_PATTERNS = Object.freeze({
3323
3374
  urlPattern: "https://kich.io/recipes/{rkey}",
3324
3375
  profileUrlPattern: "https://kich.io"
3325
3376
  },
3377
+ pinksea: {
3378
+ // PinkSea oekaki viewer. Verified live: GET /{did}/oekaki/{rkey} returns
3379
+ // 200 AND its og:image resolves to harbor.pinksea.art/{did}/{blobCid}
3380
+ // carrying the same CID as the record, so the route really is per-record
3381
+ // and not just an SPA catch-all.
3382
+ urlPattern: "https://pinksea.art/{did}/oekaki/{rkey}",
3383
+ profileUrlPattern: "https://pinksea.art/{did}"
3384
+ },
3385
+ hypercerts: {
3386
+ // No confirmed public per-record viewer. hyperscan.dev is a network-wide
3387
+ // search explorer (its input takes "DID, handle, AT-URI, or PDS host"),
3388
+ // and hypercerts.org 404s on every claim route tried. Recognized so the
3389
+ // pill renders, but cards stay non-clickable.
3390
+ },
3391
+ certified: {
3392
+ // certified.app is fully client-rendered and returns an identical
3393
+ // "Loading" shell for a real DID and a nonsense one, so no per-record
3394
+ // route could be verified. Non-clickable until one is confirmed.
3395
+ },
3396
+ impactindexer: {
3397
+ // Reviews are surfaced through hyperscan.dev/review, which has no
3398
+ // per-record route. Non-clickable.
3399
+ },
3326
3400
  recipe: {
3327
3401
  // recipe.exchange viewer. Verified: GET /recipes/{rkey} returns 200 (rkey
3328
3402
  // alone; no did needed) and /profiles/{handle} returns 200 for the author
@@ -3425,7 +3499,12 @@ var COLLECTION_TO_APP = [
3425
3499
  // Onboard from aaronstevenwhite.io profile audit.
3426
3500
  ["pub.chive.", "chive"],
3427
3501
  // Onboard from helene-cook.eu profile audit. Zeens kept its old NSID.
3428
- ["app.photosky.", "zeens"]
3502
+ ["app.photosky.", "zeens"],
3503
+ // Onboard from the holke.xyz profile audit.
3504
+ ["org.hypercerts.", "hypercerts"],
3505
+ ["app.certified.", "certified"],
3506
+ ["org.impactindexer.", "impactindexer"],
3507
+ ["com.shinolabs.pinksea.", "pinksea"]
3429
3508
  ];
3430
3509
 
3431
3510
  // src/cards/resolve-card-url.ts
@@ -5943,7 +6022,7 @@ function describeSifaRecord(collection, value) {
5943
6022
  }
5944
6023
 
5945
6024
  // src/index.ts
5946
- var SIFA_SDK_VERSION = "0.14.7";
6025
+ var SIFA_SDK_VERSION = "0.16.0";
5947
6026
 
5948
6027
  export { ACTIVITY_TIERS, ACTIVITY_VERBS, ACTIVITY_VISIBILITY_RULES, ADULT_CONTENT_LABELS, ALL_SECTIONS, APP_CATEGORIES, APP_CATEGORY_IDS, APP_CATEGORY_MAP, APP_URL_PATTERNS, ARTIFACT_LINK_KIND_LABELS, ARTIFACT_LINK_KIND_OPTIONS, ArtifactLinkSchema, AtmosphereFeedItemSchema, BlobRefSchema, CALENDAR_EVENT_MODE_LABELS, CALENDAR_EVENT_STATUS_LABELS, CATEGORY_LABELS, CATEGORY_ORDER, COLLECTION_TO_APP, COMPANY_OPTIONAL_EMPLOYMENT_TYPES, COMPANY_PAGE_MIN_FIRMOGRAPHIC_FIELDS, COMPLETENESS_MAX_SCORE, CONTINENTS, COUNTRIES, DIMENSIONS_MAX_SCORE, EMPLOYMENT_TYPE_GROUPS, EMPLOYMENT_TYPE_LABELS, ENTITY_REF_ANCHORS, EndorsementConfirmationRecordSchema, EndorsementRecordSchema, EntityImportSearchResponseSchema, EntityMintDomainResponseSchema, EntityResolveDomainRequestSchema, EntityResolveDomainResponseSchema, EntitySearchResponseSchema, EntitySearchResultSchema, EntitySelectRequestSchema, EntitySelectResponseSchema, FEATURE_FLAGS, FeatureAllowlistEntrySchema, FeedActorSchema, FollowFeedItemSchema, FollowFeedPageSchema, FollowProfilePageSchema, FollowProfileSchema, GraphFollowRecordSchema, INDUSTRY_OPTIONS, INVESTMENT_ROLE_LABELS, INVESTMENT_ROLE_OPTIONS, INVESTMENT_STAGE_LABELS, INVESTMENT_STAGE_OPTIONS, INVESTMENT_STATUS_LABELS, INVESTMENT_STATUS_OPTIONS, INVOLVEMENT_HEADING_ORDER, INVOLVEMENT_KIND_HEADINGS, INVOLVEMENT_KIND_LABELS, INVOLVEMENT_KIND_OPTIONS, InvestmentAmountSchema, MIN_SKILLS, ON_BEHALF_OF_EMPLOYMENT_TYPES, OPEN_TO_OPTIONS, OPEN_TO_TOKENS, OPEN_TO_TOKEN_TO_VALUE, OPEN_TO_VALUE_TO_TOKEN, OrgEmploymentAttestationRecordSchema, OrgProfileRecordSchema, PLATFORM_LABELS, PLATFORM_OPTIONS, PRESENTATION_LINK_TYPE_LABELS, PRESENTATION_LINK_TYPE_OPTIONS, PRESENTATION_ROLE_LABELS, PRESENTATION_ROLE_OPTIONS, PROFILE_INVESTMENT_NSID, PROFILE_INVOLVEMENT_NSID, PROJECT_ROLES, PUBLICATION_TYPE_LABELS, PUBLICATION_TYPE_OPTIONS, PUBLISHERS, PresentationDurationSchema, PresentationLinkSchema, ProfileCertificationRecordSchema, ProfileCourseRecordSchema, ProfileEducationRecordSchema, ProfileExternalAccountRecordSchema, ProfileHonorRecordSchema, ProfileInvestmentRecordSchema, ProfileInvolvementRecordSchema, ProfileLanguageRecordSchema, ProfilePositionRecordSchema, ProfilePresentationDeliveryRecordSchema, ProfilePresentationRecordSchema, ProfileProjectRecordSchema, ProfilePublicationRecordSchema, ProfileSelfRecordSchema, ProfileSkillRecordSchema, ProfileVolunteeringRecordSchema, PublicationAuthorSchema, ROADMAP_ISSUES_REPO, ROADMAP_ITEM_META, SECTION_GROUPS, SECTION_LABELS, SIFA_REPO_GROUPS, SIFA_SDK_VERSION, SKILL_CATEGORIES, STANDARD_PUBLISHER_ID, STREAM_VERBS, SifaFeedItemSchema, VERIFICATION_PROVIDERS, WORKPLACE_TYPE_LABELS, WORKPLACE_TYPE_OPTIONS, atUriSchema, buildMetaDescription, buildTalkSlug, categoryForApp, certDateExtractor, cidSchema, classifyEntityRef, completenessPercent, completenessScore, contrastRatio, countFilledDimensions, countRecentActivity, countryCodeToFlag, dateRangeExtractor, datetimeSchema, decodeFeedCursor, dedupeSkills, describeSifaRecord, detectPdsProvider, didSchema, dimensionsFromInputs, durationFromMinutes, encodeFeedCursor, entityDisambiguationLabel, entityResultKey, externalRecordRefSchema, filterHidden, findIndustry, formatCompanyName, formatDateRange, formatDisplayUrl, formatDistanceToNow, formatLocation, formatPresentationDuration, formatRelativeTime, formatTimelineDate, getActivityTaxonomyVersion, getActivityTier, getActivityVerbsVersion, getAppCategoryIcon, getAppIdForCollection, getArtifactLinkKindLabel, getCalendarEventModeLabel, getCalendarEventStatusLabel, getContinent, getDisplayLabel, getEmploymentTypeLabel, getFaviconUrl, getFilledDimensionsMap, getHandleStem, getIndustryLabelKey, getInvestmentRoleLabel, getInvestmentStageLabel, getInvestmentStatusLabel, getInvolvementKindHeading, getInvolvementKindLabel, getLexiconEntry, getOpenToLabelKey, getPdsDisplayName, getPlatformLabel, getPresentationLinkTypeLabel, getPresentationRoleLabel, getPublicationTypeLabel, getPublisherByHost, getPublisherById, getPublisherFromSiteUrl, getTierMeta, getVerificationProvider, getVisibleSectionIds, getWorkplaceTypeLabel, groupInvolvementByHeading, groupSkillsByCategory, groupSkillsBySubCategory, groupSkillsForDisplay, hasAdultContent, hasPersonalProfileContent, hoistPrimary, isAppCategory, isCompanyPageIndexable, isCompanyRequired, isKnownAppId, isKnownPlatform, isKnownVerificationProvider, isLinked, isOnBehalfOfApplicable, isPseudoEmployer, isRegistrableDomainHandle, isRoleLineRedundant, isSectionPopulated, isValidRgbColor, isVisibleActivityItem, languageTagSchema, lexiconDateExtractor, limitCombiningMarks, locationSegments, looksLikeDomain, makeGraphFollowRecordSchema, maxGraphemes, meetsContrastAA, normalizeCompanyKey, normalizeDoi, normalizeLegalForm, normalizeOpenTo, normalizePlatformId, normalizePresentationMode, normalizePresentationRole, normalizeSkillCategory, normalizeWorkplaceTypes, openToTokenToValue, openToValueToToken, parseIntendedAudiences, parseLocationString, parsePresentationDuration, parseTalkRkey, partialDateSchema, pdsProviderFromApi, pickPrimaryPosition, presentationCsvRowToRecord, presentationDeliveryCsvRowToRecord, primaryVerification, profileToDimensionInputs, qualifiesAsOrg, relativeLuminance, rendersCompanyProfile, rendersPersonalProfile, repoGroupForCollection, resolveAccountFacetMode, resolveCardHealth, resolveCardUrl, resolveEmbed, resolveVerifierProvider, rgbToString, roadmapIssueUrl, sanitizeDisplayText, sanitizeHandleInput, searchResultDisambiguation, selfLabelsSchema, singleDateExtractor, skillRefSchema, slugifyTitle, sortByActiveDateRange, sortByDateDesc, sortCertifications, sortEducation, sortHonors, sortLanguages, sortLanguagesByProficiency, sortPositions, sortProjects, sortPublications, streamAddressSchema, streamAuthorSchema, streamCardBodySchema, streamCardSubjectSchema, streamCardVMSchema, streamExternalLinkSchema, streamGeoSchema, streamMediaSchema, streamRichSegmentSchema, streamSourceSchema, streamThemeSchema, streamVerbSchema, stripHtmlToText, strongRefSchema, summarizePresentationDeliveries, summarizeProfileView, toStreamCardVM, toStreamCardVMs, truncateGraphemes, uriSchema, verbForCollection, visibleItems, youtubeThumbnailUrl, youtubeVideoId };
5949
6028
  //# sourceMappingURL=index.js.map