@atproto/bsky 0.3.0 → 0.3.2

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.
Files changed (55) hide show
  1. package/CHANGELOG.md +22 -0
  2. package/dist/api/app/bsky/embed/getEmbedExternalView.d.ts.map +1 -1
  3. package/dist/api/app/bsky/embed/getEmbedExternalView.js +5 -1
  4. package/dist/api/app/bsky/embed/getEmbedExternalView.js.map +1 -1
  5. package/dist/api/app/bsky/notification/grouping/grouping.d.ts +4 -1
  6. package/dist/api/app/bsky/notification/grouping/grouping.d.ts.map +1 -1
  7. package/dist/api/app/bsky/notification/grouping/grouping.js +10 -1
  8. package/dist/api/app/bsky/notification/grouping/grouping.js.map +1 -1
  9. package/dist/api/app/bsky/unspecced/getAtmosphereExploreTab.d.ts.map +1 -1
  10. package/dist/api/app/bsky/unspecced/getAtmosphereExploreTab.js +8 -3
  11. package/dist/api/app/bsky/unspecced/getAtmosphereExploreTab.js.map +1 -1
  12. package/dist/feature-gates/gates.d.ts +1 -0
  13. package/dist/feature-gates/gates.d.ts.map +1 -1
  14. package/dist/feature-gates/gates.js +1 -0
  15. package/dist/feature-gates/gates.js.map +1 -1
  16. package/dist/hydration/external.d.ts +31 -8
  17. package/dist/hydration/external.d.ts.map +1 -1
  18. package/dist/hydration/external.js +59 -22
  19. package/dist/hydration/external.js.map +1 -1
  20. package/dist/hydration/hydrator.d.ts +4 -0
  21. package/dist/hydration/hydrator.d.ts.map +1 -1
  22. package/dist/hydration/hydrator.js +36 -14
  23. package/dist/hydration/hydrator.js.map +1 -1
  24. package/dist/hydration/util.d.ts +1 -2
  25. package/dist/hydration/util.d.ts.map +1 -1
  26. package/dist/hydration/util.js +4 -5
  27. package/dist/hydration/util.js.map +1 -1
  28. package/dist/lexicons/social/grain/photo.defs.d.ts +11 -11
  29. package/dist/lexicons/social/grain/photo.defs.d.ts.map +1 -1
  30. package/dist/lexicons/social/grain/photo.defs.js +1 -1
  31. package/dist/lexicons/social/grain/photo.defs.js.map +1 -1
  32. package/dist/lexicons/tools/ozone/safelink/addRule.defs.d.ts +7 -1
  33. package/dist/lexicons/tools/ozone/safelink/addRule.defs.d.ts.map +1 -1
  34. package/dist/lexicons/tools/ozone/safelink/addRule.defs.js +2 -2
  35. package/dist/lexicons/tools/ozone/safelink/addRule.defs.js.map +1 -1
  36. package/dist/lexicons/tools/ozone/safelink/defs.defs.d.ts +10 -2
  37. package/dist/lexicons/tools/ozone/safelink/defs.defs.d.ts.map +1 -1
  38. package/dist/lexicons/tools/ozone/safelink/defs.defs.js +3 -3
  39. package/dist/lexicons/tools/ozone/safelink/defs.defs.js.map +1 -1
  40. package/dist/lexicons/tools/ozone/safelink/removeRule.defs.d.ts +6 -0
  41. package/dist/lexicons/tools/ozone/safelink/removeRule.defs.d.ts.map +1 -1
  42. package/dist/lexicons/tools/ozone/safelink/removeRule.defs.js +1 -1
  43. package/dist/lexicons/tools/ozone/safelink/removeRule.defs.js.map +1 -1
  44. package/dist/lexicons/tools/ozone/safelink/updateRule.defs.d.ts +7 -1
  45. package/dist/lexicons/tools/ozone/safelink/updateRule.defs.d.ts.map +1 -1
  46. package/dist/lexicons/tools/ozone/safelink/updateRule.defs.js +2 -2
  47. package/dist/lexicons/tools/ozone/safelink/updateRule.defs.js.map +1 -1
  48. package/dist/telemetry/events.d.ts +33 -4
  49. package/dist/telemetry/events.d.ts.map +1 -1
  50. package/dist/telemetry/events.js +49 -4
  51. package/dist/telemetry/events.js.map +1 -1
  52. package/dist/views/index.d.ts.map +1 -1
  53. package/dist/views/index.js +3 -6
  54. package/dist/views/index.js.map +1 -1
  55. package/package.json +8 -8
@@ -1,7 +1,22 @@
1
+ import type { app } from '../lexicons/index.js';
1
2
  export type HydrationSource = 'known_likers' | 'known_followers' | 'activity_subscriptions';
3
+ /** XRPC method that owns a hydration; set on `HydrateCtx` from the method's `$lxm`. */
4
+ export type HydrationXrpcEndpoint = app.bsky.embed.getEmbedExternalView.$lxm | app.bsky.unspecced.getAtmosphereExploreTab.$lxm;
5
+ /** Reported XRPC endpoint of an external hydration traversal. */
6
+ export type ExternalHydrationXrpcEndpoint = HydrationXrpcEndpoint | 'unknown';
2
7
  /** Entry point that owns an external hydration traversal. */
3
8
  export type ExternalHydrationRoot = 'uris' | 'refs' | 'dependencies';
4
- export type ExternalHydrationOutcome = 'completed' | 'capped' | 'failed';
9
+ /**
10
+ * `partial` is a returned traversal that recovered from a best-effort
11
+ * dependency failure; `capped` takes precedence over it.
12
+ */
13
+ export type ExternalHydrationOutcome = 'completed' | 'capped' | 'partial' | 'failed';
14
+ /** Bounded metric attributes of an external hydration traversal. */
15
+ type ExternalHydrationAttributes = {
16
+ xrpcEndpoint: ExternalHydrationXrpcEndpoint;
17
+ root: ExternalHydrationRoot;
18
+ outcome: ExternalHydrationOutcome;
19
+ };
5
20
  /**
6
21
  * Generic record lookup work of one external hydration traversal, across the
7
22
  * root and all nested dependency batches. Excludes profile/label hydration,
@@ -18,6 +33,21 @@ export type ExternalHydrationWork = {
18
33
  batches: number;
19
34
  /** Deepest fetched batch, where the root batch is pass 1; 0 if none. */
20
35
  maxPass: number;
36
+ /**
37
+ * Refs inspected by the traversal's first dependency discovery. A traversal
38
+ * whose root batch failed has none.
39
+ */
40
+ roots: number;
41
+ /** Roots available after takedown and owner moderation. */
42
+ rootsResolved: number;
43
+ /**
44
+ * Refs inspected by later dependency discoveries: records returned by
45
+ * successful nested batches. Lookups lost to a failed batch or the pass cap
46
+ * are excluded.
47
+ */
48
+ dependencies: number;
49
+ /** Dependencies available after takedown and owner moderation. */
50
+ dependenciesResolved: number;
21
51
  };
22
52
  /**
23
53
  * Central hub for reporting AppView events. Each method reports a
@@ -51,9 +81,8 @@ declare class EventReporter {
51
81
  *
52
82
  * @note this method should never throw
53
83
  */
54
- externalHydrationTraversal({ root, outcome, recordLookups, batches, maxPass, }: ExternalHydrationWork & {
55
- root: ExternalHydrationRoot;
56
- outcome: ExternalHydrationOutcome;
84
+ externalHydrationTraversal({ xrpcEndpoint, root, outcome, durationMs, recordLookups, batches, maxPass, roots, rootsResolved, dependencies, dependenciesResolved, }: ExternalHydrationWork & ExternalHydrationAttributes & {
85
+ durationMs: number;
57
86
  }): void;
58
87
  /** Reports fetched and returned raw-item counts once per completed page. */
59
88
  groupedNotifications({ itemsFetched, itemsReturned, }: {
@@ -1 +1 @@
1
- {"version":3,"file":"events.d.ts","sourceRoot":"","sources":["../../src/telemetry/events.ts"],"names":[],"mappings":"AAQA,MAAM,MAAM,eAAe,GACzB,cAAc,GAAG,iBAAiB,GAAG,wBAAwB,CAAA;AAE/D,6DAA6D;AAC7D,MAAM,MAAM,qBAAqB,GAAG,MAAM,GAAG,MAAM,GAAG,cAAc,CAAA;AACpE,MAAM,MAAM,wBAAwB,GAAG,WAAW,GAAG,QAAQ,GAAG,QAAQ,CAAA;AAExE;;;;GAIG;AACH,MAAM,MAAM,qBAAqB,GAAG;IAClC;;;;OAIG;IACH,aAAa,EAAE,MAAM,CAAA;IACrB,4EAA4E;IAC5E,OAAO,EAAE,MAAM,CAAA;IACf,wEAAwE;IACxE,OAAO,EAAE,MAAM,CAAA;CAChB,CAAA;AAED;;;;;;;;;;;;;;;;;;;GAmBG;AACH,cAAM,aAAa;;IA2FjB,eAAe,CAAC,EAAE,MAAM,EAAE,GAAG,EAAE,EAAE;QAAE,MAAM,EAAE,eAAe,CAAC;QAAC,GAAG,EAAE,OAAO,CAAA;KAAE,QAQzE;IAED;;;;;OAKG;IACH,0BAA0B,CAAC,EACzB,IAAI,EACJ,OAAO,EACP,aAAa,EACb,OAAO,EACP,OAAO,GACR,EAAE,qBAAqB,GAAG;QACzB,IAAI,EAAE,qBAAqB,CAAA;QAC3B,OAAO,EAAE,wBAAwB,CAAA;KAClC,QAcA;IAED,4EAA4E;IAC5E,oBAAoB,CAAC,EACnB,YAAY,EACZ,aAAa,GACd,EAAE;QACD,YAAY,EAAE,MAAM,CAAA;QACpB,aAAa,EAAE,MAAM,CAAA;KACtB,QAQA;CACF;AAED,eAAO,MAAM,MAAM,EAAE,aAAmC,CAAA"}
1
+ {"version":3,"file":"events.d.ts","sourceRoot":"","sources":["../../src/telemetry/events.ts"],"names":[],"mappings":"AAEA,OAAO,KAAK,EAAE,GAAG,EAAE,MAAM,sBAAsB,CAAA;AAO/C,MAAM,MAAM,eAAe,GACzB,cAAc,GAAG,iBAAiB,GAAG,wBAAwB,CAAA;AAE/D,uFAAuF;AACvF,MAAM,MAAM,qBAAqB,GAC7B,GAAG,CAAC,IAAI,CAAC,KAAK,CAAC,oBAAoB,CAAC,IAAI,GACxC,GAAG,CAAC,IAAI,CAAC,SAAS,CAAC,uBAAuB,CAAC,IAAI,CAAA;AAEnD,iEAAiE;AACjE,MAAM,MAAM,6BAA6B,GAAG,qBAAqB,GAAG,SAAS,CAAA;AAE7E,6DAA6D;AAC7D,MAAM,MAAM,qBAAqB,GAAG,MAAM,GAAG,MAAM,GAAG,cAAc,CAAA;AACpE;;;GAGG;AACH,MAAM,MAAM,wBAAwB,GAClC,WAAW,GAAG,QAAQ,GAAG,SAAS,GAAG,QAAQ,CAAA;AAE/C,oEAAoE;AACpE,KAAK,2BAA2B,GAAG;IACjC,YAAY,EAAE,6BAA6B,CAAA;IAC3C,IAAI,EAAE,qBAAqB,CAAA;IAC3B,OAAO,EAAE,wBAAwB,CAAA;CAClC,CAAA;AAED;;;;GAIG;AACH,MAAM,MAAM,qBAAqB,GAAG;IAClC;;;;OAIG;IACH,aAAa,EAAE,MAAM,CAAA;IACrB,4EAA4E;IAC5E,OAAO,EAAE,MAAM,CAAA;IACf,wEAAwE;IACxE,OAAO,EAAE,MAAM,CAAA;IACf;;;OAGG;IACH,KAAK,EAAE,MAAM,CAAA;IACb,2DAA2D;IAC3D,aAAa,EAAE,MAAM,CAAA;IACrB;;;;OAIG;IACH,YAAY,EAAE,MAAM,CAAA;IACpB,kEAAkE;IAClE,oBAAoB,EAAE,MAAM,CAAA;CAC7B,CAAA;AAED;;;;;;;;;;;;;;;;;;;GAmBG;AACH,cAAM,aAAa;;IA0HjB,eAAe,CAAC,EAAE,MAAM,EAAE,GAAG,EAAE,EAAE;QAAE,MAAM,EAAE,eAAe,CAAC;QAAC,GAAG,EAAE,OAAO,CAAA;KAAE,QAQzE;IAED;;;;;OAKG;IACH,0BAA0B,CAAC,EACzB,YAAY,EACZ,IAAI,EACJ,OAAO,EACP,UAAU,EACV,aAAa,EACb,OAAO,EACP,OAAO,EACP,KAAK,EACL,aAAa,EACb,YAAY,EACZ,oBAAoB,GACrB,EAAE,qBAAqB,GACtB,2BAA2B,GAAG;QAAE,UAAU,EAAE,MAAM,CAAA;KAAE,QA0CrD;IAED,4EAA4E;IAC5E,oBAAoB,CAAC,EACnB,YAAY,EACZ,aAAa,GACd,EAAE;QACD,YAAY,EAAE,MAAM,CAAA;QACpB,aAAa,EAAE,MAAM,CAAA;KACtB,QAQA;CACF;AAED,eAAO,MAAM,MAAM,EAAE,aAAmC,CAAA"}
@@ -34,7 +34,9 @@ class EventReporter {
34
34
  unit: '{lookup}',
35
35
  valueType: ValueType.INT,
36
36
  advice: {
37
- explicitBucketBoundaries: [0, 1, 2, 5, 10, 25, 50, 100, 250, 500, 1000],
37
+ explicitBucketBoundaries: [
38
+ 0, 1, 2, 5, 10, 25, 50, 100, 250, 500, 1000,
39
+ ],
38
40
  },
39
41
  });
40
42
  #externalHydrationBatches = meter.createHistogram('hydration.external.batches', {
@@ -44,6 +46,21 @@ class EventReporter {
44
46
  // @NOTE Traversals are capped at `MAX_EXTERNAL_HYDRATION_PASSES` (8).
45
47
  advice: { explicitBucketBoundaries: [0, 1, 2, 3, 4, 5, 6, 7, 8] },
46
48
  });
49
+ #externalHydrationDuration = meter.createHistogram('hydration.external.duration', {
50
+ description: 'Wall time of an external hydration traversal, including nested dependency batches',
51
+ unit: 'ms',
52
+ valueType: ValueType.DOUBLE,
53
+ advice: {
54
+ explicitBucketBoundaries: [
55
+ 5, 10, 25, 50, 100, 250, 500, 1000, 2500, 5000, 10000,
56
+ ],
57
+ },
58
+ });
59
+ #externalHydrationRecords = meter.createCounter('hydration.external.records', {
60
+ description: 'Root and dependency records inspected by external hydration traversals, by availability after moderation',
61
+ unit: '{record}',
62
+ valueType: ValueType.INT,
63
+ });
47
64
  #groupedNotificationsItemsFetched = meter.createHistogram('notifications.grouped.items_fetched', {
48
65
  description: 'Raw notifications fetched across all dataplane reads per grouped notifications response',
49
66
  unit: '{notification}',
@@ -101,17 +118,45 @@ class EventReporter {
101
118
  *
102
119
  * @note this method should never throw
103
120
  */
104
- externalHydrationTraversal({ root, outcome, recordLookups, batches, maxPass, }) {
121
+ externalHydrationTraversal({ xrpcEndpoint, root, outcome, durationMs, recordLookups, batches, maxPass, roots, rootsResolved, dependencies, dependenciesResolved, }) {
105
122
  this.#log('external_hydration_traversal', {
123
+ xrpcEndpoint,
106
124
  root,
107
125
  outcome,
126
+ durationMs,
108
127
  recordLookups,
109
128
  batches,
110
129
  maxPass,
130
+ roots,
131
+ rootsResolved,
132
+ dependencies,
133
+ dependenciesResolved,
111
134
  });
112
135
  try {
113
- this.#externalHydrationLookups.record(recordLookups, { root, outcome });
114
- this.#externalHydrationBatches.record(batches, { root, outcome });
136
+ const attributes = { xrpcEndpoint, root, outcome };
137
+ this.#externalHydrationLookups.record(recordLookups, attributes);
138
+ this.#externalHydrationBatches.record(batches, attributes);
139
+ this.#externalHydrationDuration.record(durationMs, attributes);
140
+ this.#externalHydrationRecords.add(rootsResolved, {
141
+ xrpcEndpoint,
142
+ kind: 'root',
143
+ status: 'resolved',
144
+ });
145
+ this.#externalHydrationRecords.add(roots - rootsResolved, {
146
+ xrpcEndpoint,
147
+ kind: 'root',
148
+ status: 'unresolved',
149
+ });
150
+ this.#externalHydrationRecords.add(dependenciesResolved, {
151
+ xrpcEndpoint,
152
+ kind: 'dependency',
153
+ status: 'resolved',
154
+ });
155
+ this.#externalHydrationRecords.add(dependencies - dependenciesResolved, {
156
+ xrpcEndpoint,
157
+ kind: 'dependency',
158
+ status: 'unresolved',
159
+ });
115
160
  }
116
161
  catch (err) {
117
162
  diag.error('Failed to record external_hydration_traversal:', err);
@@ -1 +1 @@
1
- {"version":3,"file":"events.js","sourceRoot":"","sources":["../../src/telemetry/events.ts"],"names":[],"mappings":"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","sourcesContent":["import { type Meter, ValueType, diag, metrics } from '@opentelemetry/api'\nimport { type Logger, SeverityNumber, logs } from '@opentelemetry/api-logs'\nimport { eventsLogger } from '../logger.js'\nimport { isAbortError, isTimeoutError } from './util.js'\n\nconst meter: Meter = metrics.getMeter('@atproto/bsky')\nconst logger: Logger = logs.getLogger('@atproto/bsky')\n\nexport type HydrationSource =\n 'known_likers' | 'known_followers' | 'activity_subscriptions'\n\n/** Entry point that owns an external hydration traversal. */\nexport type ExternalHydrationRoot = 'uris' | 'refs' | 'dependencies'\nexport type ExternalHydrationOutcome = 'completed' | 'capped' | 'failed'\n\n/**\n * Generic record lookup work of one external hydration traversal, across the\n * root and all nested dependency batches. Excludes profile/label hydration,\n * backlink sample/count RPCs, and legacy Standard Site reads.\n */\nexport type ExternalHydrationWork = {\n /**\n * Accepted latest/exact lookup identities scheduled for fetching, after\n * filtering duplicates and seen keys. Unavailable results and lookups in a\n * failed batch count; lookups skipped at the pass cap do not.\n */\n recordLookups: number\n /** Nonempty batches that scheduled generic fetches; not a raw RPC count. */\n batches: number\n /** Deepest fetched batch, where the root batch is pass 1; 0 if none. */\n maxPass: number\n}\n\n/**\n * Central hub for reporting AppView events. Each method reports a\n * single event to every relevant sink in one call:\n *\n * 1. a pino logger → stdout/stderr (docker logs)\n * 2. an OTEL counter → aggregated metric (low-cardinality dimensions only)\n * 3. the OTEL Logs SDK → structured, trace-correlated log record (full detail)\n *\n * This keeps the three concerns in sync: there is exactly one call site per\n * event, and the counter / log / attribute definitions live together here\n * rather than being duplicated and drifting across handlers.\n *\n * @note High-cardinality attributes (e.g. `did`, `uri`) belong in the pino and\n * OTEL log records but must stay OUT of the counters, whose attributes must\n * remain low-cardinality to avoid a metric-series explosion.\n *\n * @note The OTEL counters and log records are no-ops unless the corresponding\n * OTEL exporter is configured, so calling these methods is always safe and\n * essentially free when telemetry is disabled.\n */\nclass EventReporter {\n #hydrationFailedCounter = meter.createCounter<{\n source: HydrationSource\n reason: 'abort' | 'timeout' | 'error'\n }>('hydration.failed', {\n description:\n 'Number of fail-open hydration steps that did not produce a result',\n valueType: ValueType.INT,\n })\n\n #externalHydrationLookups = meter.createHistogram<{\n root: ExternalHydrationRoot\n outcome: ExternalHydrationOutcome\n }>('hydration.external.record_lookups', {\n description:\n 'Generic external record lookups scheduled per hydration traversal, including nested dependency batches',\n unit: '{lookup}',\n valueType: ValueType.INT,\n advice: {\n explicitBucketBoundaries: [0, 1, 2, 5, 10, 25, 50, 100, 250, 500, 1000],\n },\n })\n\n #externalHydrationBatches = meter.createHistogram<{\n root: ExternalHydrationRoot\n outcome: ExternalHydrationOutcome\n }>('hydration.external.batches', {\n description:\n 'Generic external record fetch batches per hydration traversal, one per nested pass',\n unit: '{batch}',\n valueType: ValueType.INT,\n // @NOTE Traversals are capped at `MAX_EXTERNAL_HYDRATION_PASSES` (8).\n advice: { explicitBucketBoundaries: [0, 1, 2, 3, 4, 5, 6, 7, 8] },\n })\n\n #groupedNotificationsItemsFetched = meter.createHistogram(\n 'notifications.grouped.items_fetched',\n {\n description:\n 'Raw notifications fetched across all dataplane reads per grouped notifications response',\n unit: '{notification}',\n valueType: ValueType.INT,\n advice: {\n explicitBucketBoundaries: [\n 50, 100, 150, 200, 300, 400, 500, 1000, 1500, 2000, 3000,\n ],\n },\n },\n )\n\n #groupedNotificationsItemsReturned = meter.createHistogram(\n 'notifications.grouped.items_returned',\n {\n description:\n 'Raw notifications represented by the final groups per grouped notifications response',\n unit: '{notification}',\n valueType: ValueType.INT,\n advice: {\n explicitBucketBoundaries: [\n 50, 100, 150, 200, 300, 400, 500, 1000, 1500, 2000, 3000,\n ],\n },\n },\n )\n\n /**\n * Fans a single event out to both the pino logger (stdout/stderr) and the\n * OTEL Logs SDK (structured record).\n *\n * @note this method should never throw\n */\n #log(\n eventName: string,\n attributes: Record<string, string | number | boolean | undefined>,\n ) {\n try {\n // Emits an OTEL log for the event (goes to collector).\n logger.emit({\n eventName,\n severityNumber: SeverityNumber.INFO,\n attributes,\n })\n\n // Emits a Pino log for the event (goes to stdout).\n // NOTE: We'll probably migrate towards only using OTEL.\n eventsLogger.info({ eventName, ...attributes })\n } catch (err) {\n diag.error(`Failed to log event ${eventName}:`, err)\n }\n }\n\n hydrationFailed({ source, err }: { source: HydrationSource; err: unknown }) {\n const reason = isAbortError(err)\n ? 'abort'\n : isTimeoutError(err)\n ? 'timeout'\n : 'error'\n this.#log('hydration_failed', { source, reason })\n this.#hydrationFailedCounter.add(1, { source, reason })\n }\n\n /**\n * Reports the totals of one top-level external hydration traversal. Numeric\n * totals are observations and log fields, never metric attributes.\n *\n * @note this method should never throw\n */\n externalHydrationTraversal({\n root,\n outcome,\n recordLookups,\n batches,\n maxPass,\n }: ExternalHydrationWork & {\n root: ExternalHydrationRoot\n outcome: ExternalHydrationOutcome\n }) {\n this.#log('external_hydration_traversal', {\n root,\n outcome,\n recordLookups,\n batches,\n maxPass,\n })\n try {\n this.#externalHydrationLookups.record(recordLookups, { root, outcome })\n this.#externalHydrationBatches.record(batches, { root, outcome })\n } catch (err) {\n diag.error('Failed to record external_hydration_traversal:', err)\n }\n }\n\n /** Reports fetched and returned raw-item counts once per completed page. */\n groupedNotifications({\n itemsFetched,\n itemsReturned,\n }: {\n itemsFetched: number\n itemsReturned: number\n }) {\n this.#log('grouped_notifications', { itemsFetched, itemsReturned })\n try {\n this.#groupedNotificationsItemsFetched.record(itemsFetched)\n this.#groupedNotificationsItemsReturned.record(itemsReturned)\n } catch (err) {\n diag.error('Failed to record grouped_notifications:', err)\n }\n }\n}\n\nexport const events: EventReporter = new EventReporter()\n"]}
1
+ {"version":3,"file":"events.js","sourceRoot":"","sources":["../../src/telemetry/events.ts"],"names":[],"mappings":"AAAA,OAAO,EAAc,SAAS,EAAE,IAAI,EAAE,OAAO,EAAE,MAAM,oBAAoB,CAAA;AACzE,OAAO,EAAe,cAAc,EAAE,IAAI,EAAE,MAAM,yBAAyB,CAAA;AAE3E,OAAO,EAAE,YAAY,EAAE,MAAM,cAAc,CAAA;AAC3C,OAAO,EAAE,YAAY,EAAE,cAAc,EAAE,MAAM,WAAW,CAAA;AAExD,MAAM,KAAK,GAAU,OAAO,CAAC,QAAQ,CAAC,eAAe,CAAC,CAAA;AACtD,MAAM,MAAM,GAAW,IAAI,CAAC,SAAS,CAAC,eAAe,CAAC,CAAA;AA8DtD;;;;;;;;;;;;;;;;;;;GAmBG;AACH,MAAM,aAAa;IACjB,uBAAuB,GAAG,KAAK,CAAC,aAAa,CAG1C,kBAAkB,EAAE;QACrB,WAAW,EACT,mEAAmE;QACrE,SAAS,EAAE,SAAS,CAAC,GAAG;KACzB,CAAC,CAAA;IAEF,yBAAyB,GACvB,KAAK,CAAC,eAAe,CACnB,mCAAmC,EACnC;QACE,WAAW,EACT,wGAAwG;QAC1G,IAAI,EAAE,UAAU;QAChB,SAAS,EAAE,SAAS,CAAC,GAAG;QACxB,MAAM,EAAE;YACN,wBAAwB,EAAE;gBACxB,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,GAAG,EAAE,GAAG,EAAE,GAAG,EAAE,IAAI;aAC5C;SACF;KACF,CACF,CAAA;IAEH,yBAAyB,GACvB,KAAK,CAAC,eAAe,CACnB,4BAA4B,EAC5B;QACE,WAAW,EACT,oFAAoF;QACtF,IAAI,EAAE,SAAS;QACf,SAAS,EAAE,SAAS,CAAC,GAAG;QACxB,sEAAsE;QACtE,MAAM,EAAE,EAAE,wBAAwB,EAAE,CAAC,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,CAAC,EAAE;KAClE,CACF,CAAA;IAEH,0BAA0B,GACxB,KAAK,CAAC,eAAe,CACnB,6BAA6B,EAC7B;QACE,WAAW,EACT,mFAAmF;QACrF,IAAI,EAAE,IAAI;QACV,SAAS,EAAE,SAAS,CAAC,MAAM;QAC3B,MAAM,EAAE;YACN,wBAAwB,EAAE;gBACxB,CAAC,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,GAAG,EAAE,GAAG,EAAE,GAAG,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,KAAK;aACtD;SACF;KACF,CACF,CAAA;IAEH,yBAAyB,GAAG,KAAK,CAAC,aAAa,CAI5C,4BAA4B,EAAE;QAC/B,WAAW,EACT,0GAA0G;QAC5G,IAAI,EAAE,UAAU;QAChB,SAAS,EAAE,SAAS,CAAC,GAAG;KACzB,CAAC,CAAA;IAEF,iCAAiC,GAAG,KAAK,CAAC,eAAe,CACvD,qCAAqC,EACrC;QACE,WAAW,EACT,yFAAyF;QAC3F,IAAI,EAAE,gBAAgB;QACtB,SAAS,EAAE,SAAS,CAAC,GAAG;QACxB,MAAM,EAAE;YACN,wBAAwB,EAAE;gBACxB,EAAE,EAAE,GAAG,EAAE,GAAG,EAAE,GAAG,EAAE,GAAG,EAAE,GAAG,EAAE,GAAG,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI;aACzD;SACF;KACF,CACF,CAAA;IAED,kCAAkC,GAAG,KAAK,CAAC,eAAe,CACxD,sCAAsC,EACtC;QACE,WAAW,EACT,sFAAsF;QACxF,IAAI,EAAE,gBAAgB;QACtB,SAAS,EAAE,SAAS,CAAC,GAAG;QACxB,MAAM,EAAE;YACN,wBAAwB,EAAE;gBACxB,EAAE,EAAE,GAAG,EAAE,GAAG,EAAE,GAAG,EAAE,GAAG,EAAE,GAAG,EAAE,GAAG,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI;aACzD;SACF;KACF,CACF,CAAA;IAED;;;;;OAKG;IACH,IAAI,CACF,SAAiB,EACjB,UAAiE;QAEjE,IAAI,CAAC;YACH,uDAAuD;YACvD,MAAM,CAAC,IAAI,CAAC;gBACV,SAAS;gBACT,cAAc,EAAE,cAAc,CAAC,IAAI;gBACnC,UAAU;aACX,CAAC,CAAA;YAEF,mDAAmD;YACnD,wDAAwD;YACxD,YAAY,CAAC,IAAI,CAAC,EAAE,SAAS,EAAE,GAAG,UAAU,EAAE,CAAC,CAAA;QACjD,CAAC;QAAC,OAAO,GAAG,EAAE,CAAC;YACb,IAAI,CAAC,KAAK,CAAC,uBAAuB,SAAS,GAAG,EAAE,GAAG,CAAC,CAAA;QACtD,CAAC;IACH,CAAC;IAED,eAAe,CAAC,EAAE,MAAM,EAAE,GAAG,EAA6C;QACxE,MAAM,MAAM,GAAG,YAAY,CAAC,GAAG,CAAC;YAC9B,CAAC,CAAC,OAAO;YACT,CAAC,CAAC,cAAc,CAAC,GAAG,CAAC;gBACnB,CAAC,CAAC,SAAS;gBACX,CAAC,CAAC,OAAO,CAAA;QACb,IAAI,CAAC,IAAI,CAAC,kBAAkB,EAAE,EAAE,MAAM,EAAE,MAAM,EAAE,CAAC,CAAA;QACjD,IAAI,CAAC,uBAAuB,CAAC,GAAG,CAAC,CAAC,EAAE,EAAE,MAAM,EAAE,MAAM,EAAE,CAAC,CAAA;IACzD,CAAC;IAED;;;;;OAKG;IACH,0BAA0B,CAAC,EACzB,YAAY,EACZ,IAAI,EACJ,OAAO,EACP,UAAU,EACV,aAAa,EACb,OAAO,EACP,OAAO,EACP,KAAK,EACL,aAAa,EACb,YAAY,EACZ,oBAAoB,GAEgC;QACpD,IAAI,CAAC,IAAI,CAAC,8BAA8B,EAAE;YACxC,YAAY;YACZ,IAAI;YACJ,OAAO;YACP,UAAU;YACV,aAAa;YACb,OAAO;YACP,OAAO;YACP,KAAK;YACL,aAAa;YACb,YAAY;YACZ,oBAAoB;SACrB,CAAC,CAAA;QACF,IAAI,CAAC;YACH,MAAM,UAAU,GAAG,EAAE,YAAY,EAAE,IAAI,EAAE,OAAO,EAAE,CAAA;YAClD,IAAI,CAAC,yBAAyB,CAAC,MAAM,CAAC,aAAa,EAAE,UAAU,CAAC,CAAA;YAChE,IAAI,CAAC,yBAAyB,CAAC,MAAM,CAAC,OAAO,EAAE,UAAU,CAAC,CAAA;YAC1D,IAAI,CAAC,0BAA0B,CAAC,MAAM,CAAC,UAAU,EAAE,UAAU,CAAC,CAAA;YAC9D,IAAI,CAAC,yBAAyB,CAAC,GAAG,CAAC,aAAa,EAAE;gBAChD,YAAY;gBACZ,IAAI,EAAE,MAAM;gBACZ,MAAM,EAAE,UAAU;aACnB,CAAC,CAAA;YACF,IAAI,CAAC,yBAAyB,CAAC,GAAG,CAAC,KAAK,GAAG,aAAa,EAAE;gBACxD,YAAY;gBACZ,IAAI,EAAE,MAAM;gBACZ,MAAM,EAAE,YAAY;aACrB,CAAC,CAAA;YACF,IAAI,CAAC,yBAAyB,CAAC,GAAG,CAAC,oBAAoB,EAAE;gBACvD,YAAY;gBACZ,IAAI,EAAE,YAAY;gBAClB,MAAM,EAAE,UAAU;aACnB,CAAC,CAAA;YACF,IAAI,CAAC,yBAAyB,CAAC,GAAG,CAAC,YAAY,GAAG,oBAAoB,EAAE;gBACtE,YAAY;gBACZ,IAAI,EAAE,YAAY;gBAClB,MAAM,EAAE,YAAY;aACrB,CAAC,CAAA;QACJ,CAAC;QAAC,OAAO,GAAG,EAAE,CAAC;YACb,IAAI,CAAC,KAAK,CAAC,gDAAgD,EAAE,GAAG,CAAC,CAAA;QACnE,CAAC;IACH,CAAC;IAED,4EAA4E;IAC5E,oBAAoB,CAAC,EACnB,YAAY,EACZ,aAAa,GAId;QACC,IAAI,CAAC,IAAI,CAAC,uBAAuB,EAAE,EAAE,YAAY,EAAE,aAAa,EAAE,CAAC,CAAA;QACnE,IAAI,CAAC;YACH,IAAI,CAAC,iCAAiC,CAAC,MAAM,CAAC,YAAY,CAAC,CAAA;YAC3D,IAAI,CAAC,kCAAkC,CAAC,MAAM,CAAC,aAAa,CAAC,CAAA;QAC/D,CAAC;QAAC,OAAO,GAAG,EAAE,CAAC;YACb,IAAI,CAAC,KAAK,CAAC,yCAAyC,EAAE,GAAG,CAAC,CAAA;QAC5D,CAAC;IACH,CAAC;CACF;AAED,MAAM,CAAC,MAAM,MAAM,GAAkB,IAAI,aAAa,EAAE,CAAA","sourcesContent":["import { type Meter, ValueType, diag, metrics } from '@opentelemetry/api'\nimport { type Logger, SeverityNumber, logs } from '@opentelemetry/api-logs'\nimport type { app } from '../lexicons/index.js'\nimport { eventsLogger } from '../logger.js'\nimport { isAbortError, isTimeoutError } from './util.js'\n\nconst meter: Meter = metrics.getMeter('@atproto/bsky')\nconst logger: Logger = logs.getLogger('@atproto/bsky')\n\nexport type HydrationSource =\n 'known_likers' | 'known_followers' | 'activity_subscriptions'\n\n/** XRPC method that owns a hydration; set on `HydrateCtx` from the method's `$lxm`. */\nexport type HydrationXrpcEndpoint =\n | app.bsky.embed.getEmbedExternalView.$lxm\n | app.bsky.unspecced.getAtmosphereExploreTab.$lxm\n\n/** Reported XRPC endpoint of an external hydration traversal. */\nexport type ExternalHydrationXrpcEndpoint = HydrationXrpcEndpoint | 'unknown'\n\n/** Entry point that owns an external hydration traversal. */\nexport type ExternalHydrationRoot = 'uris' | 'refs' | 'dependencies'\n/**\n * `partial` is a returned traversal that recovered from a best-effort\n * dependency failure; `capped` takes precedence over it.\n */\nexport type ExternalHydrationOutcome =\n 'completed' | 'capped' | 'partial' | 'failed'\n\n/** Bounded metric attributes of an external hydration traversal. */\ntype ExternalHydrationAttributes = {\n xrpcEndpoint: ExternalHydrationXrpcEndpoint\n root: ExternalHydrationRoot\n outcome: ExternalHydrationOutcome\n}\n\n/**\n * Generic record lookup work of one external hydration traversal, across the\n * root and all nested dependency batches. Excludes profile/label hydration,\n * backlink sample/count RPCs, and legacy Standard Site reads.\n */\nexport type ExternalHydrationWork = {\n /**\n * Accepted latest/exact lookup identities scheduled for fetching, after\n * filtering duplicates and seen keys. Unavailable results and lookups in a\n * failed batch count; lookups skipped at the pass cap do not.\n */\n recordLookups: number\n /** Nonempty batches that scheduled generic fetches; not a raw RPC count. */\n batches: number\n /** Deepest fetched batch, where the root batch is pass 1; 0 if none. */\n maxPass: number\n /**\n * Refs inspected by the traversal's first dependency discovery. A traversal\n * whose root batch failed has none.\n */\n roots: number\n /** Roots available after takedown and owner moderation. */\n rootsResolved: number\n /**\n * Refs inspected by later dependency discoveries: records returned by\n * successful nested batches. Lookups lost to a failed batch or the pass cap\n * are excluded.\n */\n dependencies: number\n /** Dependencies available after takedown and owner moderation. */\n dependenciesResolved: number\n}\n\n/**\n * Central hub for reporting AppView events. Each method reports a\n * single event to every relevant sink in one call:\n *\n * 1. a pino logger → stdout/stderr (docker logs)\n * 2. an OTEL counter → aggregated metric (low-cardinality dimensions only)\n * 3. the OTEL Logs SDK → structured, trace-correlated log record (full detail)\n *\n * This keeps the three concerns in sync: there is exactly one call site per\n * event, and the counter / log / attribute definitions live together here\n * rather than being duplicated and drifting across handlers.\n *\n * @note High-cardinality attributes (e.g. `did`, `uri`) belong in the pino and\n * OTEL log records but must stay OUT of the counters, whose attributes must\n * remain low-cardinality to avoid a metric-series explosion.\n *\n * @note The OTEL counters and log records are no-ops unless the corresponding\n * OTEL exporter is configured, so calling these methods is always safe and\n * essentially free when telemetry is disabled.\n */\nclass EventReporter {\n #hydrationFailedCounter = meter.createCounter<{\n source: HydrationSource\n reason: 'abort' | 'timeout' | 'error'\n }>('hydration.failed', {\n description:\n 'Number of fail-open hydration steps that did not produce a result',\n valueType: ValueType.INT,\n })\n\n #externalHydrationLookups =\n meter.createHistogram<ExternalHydrationAttributes>(\n 'hydration.external.record_lookups',\n {\n description:\n 'Generic external record lookups scheduled per hydration traversal, including nested dependency batches',\n unit: '{lookup}',\n valueType: ValueType.INT,\n advice: {\n explicitBucketBoundaries: [\n 0, 1, 2, 5, 10, 25, 50, 100, 250, 500, 1000,\n ],\n },\n },\n )\n\n #externalHydrationBatches =\n meter.createHistogram<ExternalHydrationAttributes>(\n 'hydration.external.batches',\n {\n description:\n 'Generic external record fetch batches per hydration traversal, one per nested pass',\n unit: '{batch}',\n valueType: ValueType.INT,\n // @NOTE Traversals are capped at `MAX_EXTERNAL_HYDRATION_PASSES` (8).\n advice: { explicitBucketBoundaries: [0, 1, 2, 3, 4, 5, 6, 7, 8] },\n },\n )\n\n #externalHydrationDuration =\n meter.createHistogram<ExternalHydrationAttributes>(\n 'hydration.external.duration',\n {\n description:\n 'Wall time of an external hydration traversal, including nested dependency batches',\n unit: 'ms',\n valueType: ValueType.DOUBLE,\n advice: {\n explicitBucketBoundaries: [\n 5, 10, 25, 50, 100, 250, 500, 1000, 2500, 5000, 10000,\n ],\n },\n },\n )\n\n #externalHydrationRecords = meter.createCounter<{\n xrpcEndpoint: ExternalHydrationXrpcEndpoint\n kind: 'root' | 'dependency'\n status: 'resolved' | 'unresolved'\n }>('hydration.external.records', {\n description:\n 'Root and dependency records inspected by external hydration traversals, by availability after moderation',\n unit: '{record}',\n valueType: ValueType.INT,\n })\n\n #groupedNotificationsItemsFetched = meter.createHistogram(\n 'notifications.grouped.items_fetched',\n {\n description:\n 'Raw notifications fetched across all dataplane reads per grouped notifications response',\n unit: '{notification}',\n valueType: ValueType.INT,\n advice: {\n explicitBucketBoundaries: [\n 50, 100, 150, 200, 300, 400, 500, 1000, 1500, 2000, 3000,\n ],\n },\n },\n )\n\n #groupedNotificationsItemsReturned = meter.createHistogram(\n 'notifications.grouped.items_returned',\n {\n description:\n 'Raw notifications represented by the final groups per grouped notifications response',\n unit: '{notification}',\n valueType: ValueType.INT,\n advice: {\n explicitBucketBoundaries: [\n 50, 100, 150, 200, 300, 400, 500, 1000, 1500, 2000, 3000,\n ],\n },\n },\n )\n\n /**\n * Fans a single event out to both the pino logger (stdout/stderr) and the\n * OTEL Logs SDK (structured record).\n *\n * @note this method should never throw\n */\n #log(\n eventName: string,\n attributes: Record<string, string | number | boolean | undefined>,\n ) {\n try {\n // Emits an OTEL log for the event (goes to collector).\n logger.emit({\n eventName,\n severityNumber: SeverityNumber.INFO,\n attributes,\n })\n\n // Emits a Pino log for the event (goes to stdout).\n // NOTE: We'll probably migrate towards only using OTEL.\n eventsLogger.info({ eventName, ...attributes })\n } catch (err) {\n diag.error(`Failed to log event ${eventName}:`, err)\n }\n }\n\n hydrationFailed({ source, err }: { source: HydrationSource; err: unknown }) {\n const reason = isAbortError(err)\n ? 'abort'\n : isTimeoutError(err)\n ? 'timeout'\n : 'error'\n this.#log('hydration_failed', { source, reason })\n this.#hydrationFailedCounter.add(1, { source, reason })\n }\n\n /**\n * Reports the totals of one top-level external hydration traversal. Numeric\n * totals are observations and log fields, never metric attributes.\n *\n * @note this method should never throw\n */\n externalHydrationTraversal({\n xrpcEndpoint,\n root,\n outcome,\n durationMs,\n recordLookups,\n batches,\n maxPass,\n roots,\n rootsResolved,\n dependencies,\n dependenciesResolved,\n }: ExternalHydrationWork &\n ExternalHydrationAttributes & { durationMs: number }) {\n this.#log('external_hydration_traversal', {\n xrpcEndpoint,\n root,\n outcome,\n durationMs,\n recordLookups,\n batches,\n maxPass,\n roots,\n rootsResolved,\n dependencies,\n dependenciesResolved,\n })\n try {\n const attributes = { xrpcEndpoint, root, outcome }\n this.#externalHydrationLookups.record(recordLookups, attributes)\n this.#externalHydrationBatches.record(batches, attributes)\n this.#externalHydrationDuration.record(durationMs, attributes)\n this.#externalHydrationRecords.add(rootsResolved, {\n xrpcEndpoint,\n kind: 'root',\n status: 'resolved',\n })\n this.#externalHydrationRecords.add(roots - rootsResolved, {\n xrpcEndpoint,\n kind: 'root',\n status: 'unresolved',\n })\n this.#externalHydrationRecords.add(dependenciesResolved, {\n xrpcEndpoint,\n kind: 'dependency',\n status: 'resolved',\n })\n this.#externalHydrationRecords.add(dependencies - dependenciesResolved, {\n xrpcEndpoint,\n kind: 'dependency',\n status: 'unresolved',\n })\n } catch (err) {\n diag.error('Failed to record external_hydration_traversal:', err)\n }\n }\n\n /** Reports fetched and returned raw-item counts once per completed page. */\n groupedNotifications({\n itemsFetched,\n itemsReturned,\n }: {\n itemsFetched: number\n itemsReturned: number\n }) {\n this.#log('grouped_notifications', { itemsFetched, itemsReturned })\n try {\n this.#groupedNotificationsItemsFetched.record(itemsFetched)\n this.#groupedNotificationsItemsReturned.record(itemsReturned)\n } catch (err) {\n diag.error('Failed to record grouped_notifications:', err)\n }\n }\n}\n\nexport const events: EventReporter = new EventReporter()\n"]}
@@ -1 +1 @@
1
- {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../src/views/index.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../src/views/index.ts"],"names":[],"mappings":"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"}
@@ -3,7 +3,7 @@ import { atUri, getBlobCidString, } from '@atproto/lex';
3
3
  import { AtUri, INVALID_HANDLE, normalizeDatetimeAlways, } from '@atproto/syntax';
4
4
  import { APPVIEW_NOTIFICATION_REASON, NOTIFICATION_REASON, } from '../api/app/bsky/notification/constants.js';
5
5
  import { getSiteStandardRecordsFromHydrationMapsByRefs, } from '../hydration/external.js';
6
- import { getStarterPackUriFromFollow, parseString, } from '../hydration/util.js';
6
+ import { getStarterPackUriFromNotification, parseString, } from '../hydration/util.js';
7
7
  import { app, site } from '../lexicons/index.js';
8
8
  import { viewsLogger } from '../logger.js';
9
9
  import { estimateReadingTimeMinutes, validateStandardSiteRecordsForUrl, } from '../util/external/standard-site.js';
@@ -2002,9 +2002,7 @@ export class Views {
2002
2002
  }
2003
2003
  else if (uri.collection === app.bsky.graph.follow.$type) {
2004
2004
  recordInfo = state.follows?.get(notif.uri);
2005
- if (recordInfo) {
2006
- starterPackUri = getStarterPackUriFromFollow(recordInfo.record);
2007
- }
2005
+ starterPackUri = getStarterPackUriFromNotification(notif.reasonSubject);
2008
2006
  }
2009
2007
  else if (uri.collection === app.bsky.graph.verification.$type) {
2010
2008
  // When a verification record is removed, the record won't be found,
@@ -2062,8 +2060,7 @@ export class Views {
2062
2060
  const defs = app.bsky.notification.getGroupedNotifications;
2063
2061
  const followItem = (item) => {
2064
2062
  const notif = item.raw;
2065
- const followRecord = state.follows?.get(notif.uri)?.record;
2066
- const starterPackUri = followRecord && getStarterPackUriFromFollow(followRecord);
2063
+ const starterPackUri = getStarterPackUriFromNotification(notif.reasonSubject);
2067
2064
  return {
2068
2065
  actor: item.actorDid,
2069
2066
  starterPack: starterPackUri &&