@dxos/observability 0.14.0 → 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.
Files changed (62) hide show
  1. package/dist/lib/Observability.mjs +1 -248
  2. package/dist/lib/ai/AiObservability.mjs +1 -238
  3. package/dist/lib/chunk-AiObservability.mjs +238 -0
  4. package/dist/lib/chunk-AiObservability.mjs.map +1 -0
  5. package/dist/lib/chunk-Observability.mjs +248 -0
  6. package/dist/lib/chunk-Observability.mjs.map +1 -0
  7. package/dist/lib/chunk-ObservabilityClientProvider.mjs.map +1 -1
  8. package/dist/lib/chunk-ObservabilityExtension.mjs +38 -11
  9. package/dist/lib/chunk-ObservabilityExtension.mjs.map +1 -1
  10. package/dist/lib/chunk-ObservabilityProvider.mjs.map +1 -1
  11. package/dist/lib/chunk-OtelLogSink.mjs +105 -0
  12. package/dist/lib/{extensions/otel/OtelLogSink.mjs.map → chunk-OtelLogSink.mjs.map} +1 -1
  13. package/dist/lib/chunk-OtelMetricsSink.mjs +49 -0
  14. package/dist/lib/{extensions/otel/OtelMetricsSink.mjs.map → chunk-OtelMetricsSink.mjs.map} +1 -1
  15. package/dist/lib/chunk-OtelSpanSink.mjs.map +1 -1
  16. package/dist/lib/chunk-extensions.mjs.map +1 -1
  17. package/dist/lib/chunk-logs.mjs.map +1 -1
  18. package/dist/lib/chunk-support-logs.mjs +1 -1
  19. package/dist/lib/chunk-support-logs.mjs.map +1 -1
  20. package/dist/lib/extensions/otel/OtelLogSink.mjs +1 -105
  21. package/dist/lib/extensions/otel/OtelMetricsSink.mjs +1 -49
  22. package/dist/lib/extensions/otel/OtelSpanSink.mjs +1 -2
  23. package/dist/lib/index.mjs +4 -4
  24. package/dist/lib/posthog-transport.node.mjs.map +1 -1
  25. package/dist/lib/providers/ObservabilityClientProvider.mjs +1 -2
  26. package/dist/lib/storage.node.mjs.map +1 -1
  27. package/dist/lib/traces.mjs.map +1 -1
  28. package/dist/lib/traces.node.mjs.map +1 -1
  29. package/dist/types/src/ObservabilityExtension.d.ts +1 -1
  30. package/dist/types/src/ObservabilityExtension.d.ts.map +1 -1
  31. package/dist/types/src/ai/AiObservability.js +2 -2
  32. package/dist/types/src/ai/AiObservability.js.map +1 -1
  33. package/dist/types/src/ai/AiObservability.test.js +11 -11
  34. package/dist/types/src/ai/AiObservability.test.js.map +1 -1
  35. package/dist/types/src/extensions/otel/tail-sampling.test.js +1 -1
  36. package/dist/types/src/extensions/otel/tail-sampling.test.js.map +1 -1
  37. package/dist/types/src/extensions/posthog/before-send.d.ts +4 -0
  38. package/dist/types/src/extensions/posthog/before-send.d.ts.map +1 -0
  39. package/dist/types/src/extensions/posthog/before-send.js +19 -0
  40. package/dist/types/src/extensions/posthog/before-send.js.map +1 -0
  41. package/dist/types/src/extensions/posthog/before-send.test.d.ts +2 -0
  42. package/dist/types/src/extensions/posthog/before-send.test.d.ts.map +1 -0
  43. package/dist/types/src/extensions/posthog/before-send.test.js +30 -0
  44. package/dist/types/src/extensions/posthog/before-send.test.js.map +1 -0
  45. package/dist/types/src/extensions/posthog/extension.d.ts +10 -0
  46. package/dist/types/src/extensions/posthog/extension.d.ts.map +1 -1
  47. package/dist/types/src/extensions/posthog/extension.js +22 -2
  48. package/dist/types/src/extensions/posthog/extension.js.map +1 -1
  49. package/dist/types/src/version.d.ts +1 -1
  50. package/dist/types/src/version.js +1 -1
  51. package/dist/types/tsconfig.tsbuildinfo +1 -1
  52. package/package.json +20 -20
  53. package/src/ObservabilityExtension.ts +1 -1
  54. package/src/ai/AiObservability.test.ts +12 -11
  55. package/src/ai/AiObservability.ts +2 -2
  56. package/src/extensions/otel/tail-sampling.test.ts +1 -1
  57. package/src/extensions/posthog/before-send.test.ts +36 -0
  58. package/src/extensions/posthog/before-send.ts +26 -0
  59. package/src/extensions/posthog/extension.ts +30 -1
  60. package/src/version.ts +1 -1
  61. package/dist/lib/Observability.mjs.map +0 -1
  62. package/dist/lib/ai/AiObservability.mjs.map +0 -1
@@ -1,49 +1 @@
1
- import { t as __exportAll } from "../../chunk-rolldown-runtime.mjs";
2
- import { t as OtelMetrics } from "../../chunk-metrics.mjs";
3
- import { defaultResource, resourceFromAttributes } from "@opentelemetry/resources";
4
- //#region src/extensions/otel/OtelMetricsSink.ts
5
- var OtelMetricsSink_exports = /* @__PURE__ */ __exportAll({ Sink: () => Sink });
6
- var Sink = class {
7
- #metrics;
8
- #tags;
9
- constructor(init, options = {}) {
10
- this.#tags = { ...init.tags };
11
- this.#metrics = new OtelMetrics({
12
- destinations: init.destinations,
13
- resource: defaultResource().merge(resourceFromAttributes(init.resourceAttributes)),
14
- getTags: () => this.#tags,
15
- exporter: options.exporter,
16
- registerTraceProcessor: false
17
- });
18
- }
19
- append(batch) {
20
- for (const metric of batch.metrics) for (const value of metric.values) this.#record(metric, value);
21
- }
22
- setTags(tags) {
23
- this.#tags = {
24
- ...this.#tags,
25
- ...tags
26
- };
27
- }
28
- flush() {
29
- return this.#metrics.flush();
30
- }
31
- close() {
32
- return this.#metrics.close();
33
- }
34
- #record(metric, value) {
35
- switch (metric.op) {
36
- case "increment":
37
- this.#metrics.increment(metric.name, value, metric.tags, metric.meta);
38
- break;
39
- case "distribution":
40
- this.#metrics.distribution(metric.name, value, metric.tags, metric.meta);
41
- break;
42
- case "gauge": this.#metrics.gauge(metric.name, value, metric.tags, metric.meta);
43
- }
44
- }
45
- };
46
- //#endregion
47
- export { Sink, OtelMetricsSink_exports as t };
48
-
49
- //# sourceMappingURL=OtelMetricsSink.mjs.map
1
+ export { n as Sink } from "../../chunk-OtelMetricsSink.mjs";
@@ -1,2 +1 @@
1
- import { i as serializeReadableSpan, n as PortSpanProcessor, r as Sink } from "../../chunk-OtelSpanSink.mjs";
2
- export { PortSpanProcessor, Sink, serializeReadableSpan };
1
+ export { n as PortSpanProcessor, r as Sink, i as serializeReadableSpan } from "../../chunk-OtelSpanSink.mjs";
@@ -1,9 +1,9 @@
1
1
  import { t as OtelSpanSink_exports } from "./chunk-OtelSpanSink.mjs";
2
2
  import { t as ObservabilityExtension_exports } from "./chunk-ObservabilityExtension.mjs";
3
- import { t as Observability_exports } from "./Observability.mjs";
4
- import { t as AiObservability_exports } from "./ai/AiObservability.mjs";
5
- import { t as OtelLogSink_exports } from "./extensions/otel/OtelLogSink.mjs";
6
- import { t as OtelMetricsSink_exports } from "./extensions/otel/OtelMetricsSink.mjs";
3
+ import { t as Observability_exports } from "./chunk-Observability.mjs";
4
+ import { t as AiObservability_exports } from "./chunk-AiObservability.mjs";
5
+ import { t as OtelLogSink_exports } from "./chunk-OtelLogSink.mjs";
6
+ import { t as OtelMetricsSink_exports } from "./chunk-OtelMetricsSink.mjs";
7
7
  import { t as ObservabilityClientProvider_exports } from "./chunk-ObservabilityClientProvider.mjs";
8
8
  import { t as ObservabilityProvider_exports } from "./chunk-ObservabilityProvider.mjs";
9
9
  export { AiObservability_exports as AiObservability, Observability_exports as Observability, ObservabilityClientProvider_exports as ObservabilityClientProvider, ObservabilityExtension_exports as ObservabilityExtension, ObservabilityProvider_exports as ObservabilityProvider, OtelLogSink_exports as OtelLogSink, OtelMetricsSink_exports as OtelMetricsSink, OtelSpanSink_exports as OtelSpanSink };
@@ -1 +1 @@
1
- {"version":3,"file":"posthog-transport.node.mjs","names":[],"sources":["../../src/extensions/posthog/node.ts"],"sourcesContent":["//\n// Copyright 2026 DXOS.org\n//\n\nimport * as Effect from 'effect/Effect';\n\nimport { getEnvString } from '@dxos/config';\nimport { log } from '@dxos/log';\n\nimport buildSecrets from '../../cli-observability-secrets.json';\nimport * as ObservabilityExtension from '../../ObservabilityExtension.ts';\nimport { DXOS_VERSION } from '../../version.ts';\nimport { stubExtension } from '../stub.ts';\nimport { type ExtensionsOptions } from './extension.ts';\n\nconst DEFAULT_HOST = 'https://eu.i.posthog.com';\n\n/** `URL` keeps the brackets on an IPv6 host, so the literal is matched as it parses. */\nconst LOOPBACK = new Set(['localhost', '127.0.0.1', '[::1]']);\n\n/** Loopback is exempt: a developer pointing at a local collector has no certificate to present. */\nconst isEncrypted = (host: string): boolean => {\n try {\n const { protocol, hostname } = new URL(host);\n return protocol === 'https:' || (protocol === 'http:' && LOOPBACK.has(hostname));\n } catch {\n return false;\n }\n};\n\n/**\n * PostHog for a node host, over `posthog-node`.\n *\n * The client is `PostHogMCP` rather than plain `PostHog` — a drop-in subclass that builds the\n * canonical `$mcp_*` events this extension answers `kind: 'mcp'` with.\n */\nexport const extensions: (options: ExtensionsOptions) => Effect.Effect<ObservabilityExtension.Extension> = Effect.fn(\n function* ({ config, release, environment, node }) {\n const { apiKey: _apiKey, host: _host, distinctId: initialDistinctId, mcpServer } = node ?? {};\n const apiKey =\n _apiKey ??\n process.env.DX_POSTHOG_API_KEY ??\n getEnvString(config, 'DX_POSTHOG_API_KEY') ??\n buildSecrets.POSTHOG_API_KEY;\n if (!apiKey) {\n log.info('Missing POSTHOG_API_KEY');\n return stubExtension;\n }\n\n // Any host is allowed so a proxy on your own domain works, but not over plaintext: events carry\n // the identity DID, and a mistyped host would put it on the wire in the clear.\n const host = _host ?? DEFAULT_HOST;\n if (!isEncrypted(host)) {\n log.warn('PostHog host must be https', { host });\n return stubExtension;\n }\n\n const { PostHogMCP } = yield* Effect.promise(() => import('@posthog/mcp'));\n const client = new PostHogMCP(apiKey, { host, enableExceptionAutocapture: true });\n\n const superProperties: ObservabilityExtension.Attributes = {\n sdkVersion: DXOS_VERSION,\n ...(release ? { release } : {}),\n ...(environment ? { environment } : {}),\n };\n let distinctId = initialDistinctId;\n let enabled = true;\n\n const attribution = (): string | undefined => (enabled ? distinctId : undefined);\n const properties = (attributes?: ObservabilityExtension.EventAttributes) => ({ ...superProperties, ...attributes });\n\n const mcpProperties = () => ({\n ...superProperties,\n ...(mcpServer ? { $mcp_server_name: mcpServer.name, $mcp_server_version: mcpServer.version } : {}),\n });\n\n return {\n close: () => Effect.promise(() => client.shutdown()),\n flush: () => Effect.promise(() => client.flush()),\n enable: () =>\n Effect.sync(() => {\n enabled = true;\n }),\n disable: () =>\n Effect.sync(() => {\n enabled = false;\n }),\n identify: (id, attributes, setOnceAttributes) => {\n distinctId = id;\n client.identify({ distinctId: id, properties: { ...attributes, $set_once: setOnceAttributes } });\n },\n alias: (id, previousId) => {\n const previous = previousId ?? distinctId;\n if (previous) {\n client.alias({ distinctId: previous, alias: id });\n }\n distinctId = id;\n },\n setTags: (tags) => {\n Object.assign(superProperties, tags);\n },\n get enabled() {\n return enabled;\n },\n apis: [\n {\n kind: 'events',\n isAvailable: () => Effect.succeed(true),\n captureEvent: (event, attributes) => {\n const id = attribution();\n if (id) {\n client.capture({ distinctId: id, event, properties: properties(attributes) });\n }\n },\n },\n {\n kind: 'errors',\n isAvailable: () => Effect.succeed(true),\n captureException: (error, attributes) => {\n const id = attribution();\n if (id) {\n client.captureException(error, id, properties(attributes));\n }\n },\n },\n {\n kind: 'mcp',\n isAvailable: () => Effect.succeed(true),\n captureInitialize: ({ clientName, clientVersion, sessionId, protocolVersion }) => {\n const id = attribution();\n if (id) {\n client.captureInitialize({\n clientName: clientName || ObservabilityExtension.UNKNOWN_MCP_CLIENT,\n clientVersion: clientVersion || undefined,\n sessionId,\n protocolVersion,\n distinctId: id,\n properties: mcpProperties(),\n });\n }\n },\n captureToolCall: ({ clientName, clientVersion, sessionId, protocolVersion, ...call }) => {\n const id = attribution();\n if (id) {\n client.captureToolCall({\n ...call,\n sessionId,\n protocolVersion,\n distinctId: id,\n // `captureToolCall` takes no client name, so the calls carry it as a property.\n properties: {\n ...mcpProperties(),\n $mcp_client_name: clientName || ObservabilityExtension.UNKNOWN_MCP_CLIENT,\n ...(clientVersion ? { $mcp_client_version: clientVersion } : {}),\n },\n });\n }\n },\n },\n ],\n };\n },\n);\n"],"mappings":"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"}
1
+ {"version":3,"file":"posthog-transport.node.mjs","names":["buildSecrets"],"sources":["../../src/extensions/posthog/node.ts"],"sourcesContent":["//\n// Copyright 2026 DXOS.org\n//\n\nimport * as Effect from 'effect/Effect';\n\nimport { getEnvString } from '@dxos/config';\nimport { log } from '@dxos/log';\n\nimport buildSecrets from '../../cli-observability-secrets.json';\nimport * as ObservabilityExtension from '../../ObservabilityExtension.ts';\nimport { DXOS_VERSION } from '../../version.ts';\nimport { stubExtension } from '../stub.ts';\nimport { type ExtensionsOptions } from './extension.ts';\n\nconst DEFAULT_HOST = 'https://eu.i.posthog.com';\n\n/** `URL` keeps the brackets on an IPv6 host, so the literal is matched as it parses. */\nconst LOOPBACK = new Set(['localhost', '127.0.0.1', '[::1]']);\n\n/** Loopback is exempt: a developer pointing at a local collector has no certificate to present. */\nconst isEncrypted = (host: string): boolean => {\n try {\n const { protocol, hostname } = new URL(host);\n return protocol === 'https:' || (protocol === 'http:' && LOOPBACK.has(hostname));\n } catch {\n return false;\n }\n};\n\n/**\n * PostHog for a node host, over `posthog-node`.\n *\n * The client is `PostHogMCP` rather than plain `PostHog` — a drop-in subclass that builds the\n * canonical `$mcp_*` events this extension answers `kind: 'mcp'` with.\n */\nexport const extensions: (options: ExtensionsOptions) => Effect.Effect<ObservabilityExtension.Extension> = Effect.fn(\n function* ({ config, release, environment, node }) {\n const { apiKey: _apiKey, host: _host, distinctId: initialDistinctId, mcpServer } = node ?? {};\n const apiKey =\n _apiKey ??\n process.env.DX_POSTHOG_API_KEY ??\n getEnvString(config, 'DX_POSTHOG_API_KEY') ??\n buildSecrets.POSTHOG_API_KEY;\n if (!apiKey) {\n log.info('Missing POSTHOG_API_KEY');\n return stubExtension;\n }\n\n // Any host is allowed so a proxy on your own domain works, but not over plaintext: events carry\n // the identity DID, and a mistyped host would put it on the wire in the clear.\n const host = _host ?? DEFAULT_HOST;\n if (!isEncrypted(host)) {\n log.warn('PostHog host must be https', { host });\n return stubExtension;\n }\n\n const { PostHogMCP } = yield* Effect.promise(() => import('@posthog/mcp'));\n const client = new PostHogMCP(apiKey, { host, enableExceptionAutocapture: true });\n\n const superProperties: ObservabilityExtension.Attributes = {\n sdkVersion: DXOS_VERSION,\n ...(release ? { release } : {}),\n ...(environment ? { environment } : {}),\n };\n let distinctId = initialDistinctId;\n let enabled = true;\n\n const attribution = (): string | undefined => (enabled ? distinctId : undefined);\n const properties = (attributes?: ObservabilityExtension.EventAttributes) => ({ ...superProperties, ...attributes });\n\n const mcpProperties = () => ({\n ...superProperties,\n ...(mcpServer ? { $mcp_server_name: mcpServer.name, $mcp_server_version: mcpServer.version } : {}),\n });\n\n return {\n close: () => Effect.promise(() => client.shutdown()),\n flush: () => Effect.promise(() => client.flush()),\n enable: () =>\n Effect.sync(() => {\n enabled = true;\n }),\n disable: () =>\n Effect.sync(() => {\n enabled = false;\n }),\n identify: (id, attributes, setOnceAttributes) => {\n distinctId = id;\n client.identify({ distinctId: id, properties: { ...attributes, $set_once: setOnceAttributes } });\n },\n alias: (id, previousId) => {\n const previous = previousId ?? distinctId;\n if (previous) {\n client.alias({ distinctId: previous, alias: id });\n }\n distinctId = id;\n },\n setTags: (tags) => {\n Object.assign(superProperties, tags);\n },\n get enabled() {\n return enabled;\n },\n apis: [\n {\n kind: 'events',\n isAvailable: () => Effect.succeed(true),\n captureEvent: (event, attributes) => {\n const id = attribution();\n if (id) {\n client.capture({ distinctId: id, event, properties: properties(attributes) });\n }\n },\n },\n {\n kind: 'errors',\n isAvailable: () => Effect.succeed(true),\n captureException: (error, attributes) => {\n const id = attribution();\n if (id) {\n client.captureException(error, id, properties(attributes));\n }\n },\n },\n {\n kind: 'mcp',\n isAvailable: () => Effect.succeed(true),\n captureInitialize: ({ clientName, clientVersion, sessionId, protocolVersion }) => {\n const id = attribution();\n if (id) {\n client.captureInitialize({\n clientName: clientName || ObservabilityExtension.UNKNOWN_MCP_CLIENT,\n clientVersion: clientVersion || undefined,\n sessionId,\n protocolVersion,\n distinctId: id,\n properties: mcpProperties(),\n });\n }\n },\n captureToolCall: ({ clientName, clientVersion, sessionId, protocolVersion, ...call }) => {\n const id = attribution();\n if (id) {\n client.captureToolCall({\n ...call,\n sessionId,\n protocolVersion,\n distinctId: id,\n // `captureToolCall` takes no client name, so the calls carry it as a property.\n properties: {\n ...mcpProperties(),\n $mcp_client_name: clientName || ObservabilityExtension.UNKNOWN_MCP_CLIENT,\n ...(clientVersion ? { $mcp_client_version: clientVersion } : {}),\n },\n });\n }\n },\n },\n ],\n };\n },\n);\n"],"mappings":"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"}
@@ -1,2 +1 @@
1
- import { n as client_observability_exports, r as sync_state_exports } from "../chunk-ObservabilityClientProvider.mjs";
2
- export { client_observability_exports as Client, sync_state_exports as SyncState };
1
+ export { n as Client, r as SyncState } from "../chunk-ObservabilityClientProvider.mjs";
@@ -1 +1 @@
1
- {"version":3,"file":"storage.node.mjs","names":[],"sources":["../../src/storage/node.ts"],"sourcesContent":["import yaml from 'js-yaml';\n//\n// Copyright 2022 DXOS.org\n//\nimport { existsSync, statSync } from 'node:fs';\nimport { mkdir, readFile, writeFile } from 'node:fs/promises';\nimport { join } from 'node:path';\nimport { v4 as uuid, validate as validateUuid } from 'uuid';\n\nimport { log } from '@dxos/log';\n\n/**\n * Print observability banner once per installation.\n */\nexport const showObservabilityBanner = async (configDir: string, bannercb: (input: string) => void) => {\n const path = join(configDir, '.observability-banner-printed');\n if (existsSync(path)) {\n return;\n }\n bannercb(\n [\n 'Basic observability data will be sent to the DXOS team in order to improve the product.',\n 'This includes performance metrics, error logs, and usage data. No personally identifiable',\n 'information, other than your public key, is included with this data and no private data',\n 'ever leaves your devices. To disable sending observability data, set the environment',\n 'variable DX_DISABLE_OBSERVABILITY=true.',\n ].join(' '),\n );\n\n await mkdir(configDir, { recursive: true });\n await writeFile(path, '', 'utf-8');\n};\n\n/**\n * @param configDir - Filesystem path to the directory containing the `observability.yml` state file.\n */\nexport const isObservabilityDisabled = async (configDir: string): Promise<boolean> => {\n try {\n const observabilityState = await getObservabilityState(configDir);\n return observabilityState.disabled;\n } catch (err) {\n log.catch('Failed to check if observability is disabled, assuming it is', err);\n return true;\n }\n};\n\n/**\n * Stable per-installation id, minted on first read.\n *\n * @param configDir - Filesystem path to the directory containing the `observability.yml` state file.\n */\nexport const getInstallationId = async (configDir: string): Promise<string | undefined> => {\n try {\n return (await getObservabilityState(configDir)).installationId;\n } catch (err) {\n log.catch('Failed to read the installation id', err);\n return undefined;\n }\n};\n\n/**\n * @param configDir - Filesystem path to the directory containing the `observability.yml` state file.\n */\n// NOTE: read-modify-write is not atomic; concurrent callers could overwrite each other.\n// Acceptable here because writes are infrequent and triggered by explicit user action.\nexport const storeObservabilityDisabled = async (configDir: string, value: boolean) => {\n const observabilityState = await getObservabilityState(configDir);\n observabilityState.disabled = value;\n await writeFile(join(configDir, 'observability.yml'), yaml.dump(observabilityState), 'utf-8');\n};\n\n/**\n * The identity this installation has already been aliased to, so the transition from the\n * installation id is recorded once rather than on every run.\n *\n * @param configDir - Filesystem path to the directory containing the `observability.yml` state file.\n */\nexport const getAliasedDid = async (configDir: string): Promise<string | undefined> => {\n try {\n return (await getObservabilityState(configDir)).aliasedDid;\n } catch (err) {\n log.catch('Failed to read the aliased identity', err);\n return undefined;\n }\n};\n\n/**\n * @param configDir - Filesystem path to the directory containing the `observability.yml` state file.\n */\nexport const storeAliasedDid = async (configDir: string, did: string) => {\n const observabilityState = await getObservabilityState(configDir);\n observabilityState.aliasedDid = did;\n await writeFile(join(configDir, 'observability.yml'), yaml.dump(observabilityState), 'utf-8');\n};\n\n/**\n * @param configDir - Filesystem path to the directory containing the `observability.yml` state file.\n */\nexport const getObservabilityGroup = async (configDir: string): Promise<string | undefined> => {\n const observabilityState = await getObservabilityState(configDir);\n return observabilityState.group;\n};\n\n/**\n * @param configDir - Filesystem path to the directory containing the `observability.yml` state file.\n */\nexport const storeObservabilityGroup = async (configDir: string, value: string) => {\n const observabilityState = await getObservabilityState(configDir);\n observabilityState.group = value;\n await writeFile(join(configDir, 'observability.yml'), yaml.dump(observabilityState), 'utf-8');\n};\n\nconst getObservabilityState = async (configDir: string): Promise<PersistentObservabilityState> => {\n // check whether configDir exists and if it's a directory\n\n if (existsSync(configDir)) {\n if (!statSync(configDir).isDirectory()) {\n throw new Error(`Config directory ${configDir} exists but is not a directory`);\n }\n } else {\n await mkdir(configDir, { recursive: true });\n }\n\n const idPath = join(configDir, 'observability.yml');\n if (existsSync(idPath)) {\n const context = await readFile(idPath, 'utf-8');\n return validate(context) ?? initializeState(idPath);\n }\n\n return initializeState(idPath);\n};\n\nexport type PersistentObservabilityState = {\n installationId: string;\n disabled: boolean;\n group?: string;\n aliasedDid?: string;\n};\n\n// create initial state and write to file, using environment variables to override defaults.\nconst initializeState = async (idPath: string): Promise<PersistentObservabilityState> => {\n // TODO(nf): read initial values from config or seed file\n const observabilityState = {\n installationId: uuid(),\n disabled: process.env.DX_DISABLE_OBSERVABILITY ? true : false,\n group: process.env.DX_OBSERVABILITY_GROUP ?? undefined,\n };\n\n await writeFile(\n idPath,\n '# This file is automatically generated by the @dxos/cli.\\n' + yaml.dump(observabilityState),\n 'utf-8',\n );\n\n return observabilityState;\n};\n\n/** Not applicable in Node.js contexts; OTEL log level override is browser-only. */\nexport const getOtelLogLevel = async (_namespace: string): Promise<string | null> => null;\n\n/** Not applicable in Node.js contexts; OTEL log level override is browser-only. */\nexport const storeOtelLogLevel = async (_namespace: string, _value: string | null): Promise<void> => {};\n\nconst validate = (contextString: string) => {\n const context = yaml.load(contextString) as PersistentObservabilityState;\n if (Boolean(context.installationId) && validateUuid(context.installationId!)) {\n return {\n ...context,\n disabled: process.env.DX_DISABLE_OBSERVABILITY ? true : (context.disabled ?? false),\n };\n }\n};\n"],"mappings":"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"}
1
+ {"version":3,"file":"storage.node.mjs","names":["validate","uuid","validateUuid"],"sources":["../../src/storage/node.ts"],"sourcesContent":["import yaml from 'js-yaml';\n//\n// Copyright 2022 DXOS.org\n//\nimport { existsSync, statSync } from 'node:fs';\nimport { mkdir, readFile, writeFile } from 'node:fs/promises';\nimport { join } from 'node:path';\nimport { v4 as uuid, validate as validateUuid } from 'uuid';\n\nimport { log } from '@dxos/log';\n\n/**\n * Print observability banner once per installation.\n */\nexport const showObservabilityBanner = async (configDir: string, bannercb: (input: string) => void) => {\n const path = join(configDir, '.observability-banner-printed');\n if (existsSync(path)) {\n return;\n }\n bannercb(\n [\n 'Basic observability data will be sent to the DXOS team in order to improve the product.',\n 'This includes performance metrics, error logs, and usage data. No personally identifiable',\n 'information, other than your public key, is included with this data and no private data',\n 'ever leaves your devices. To disable sending observability data, set the environment',\n 'variable DX_DISABLE_OBSERVABILITY=true.',\n ].join(' '),\n );\n\n await mkdir(configDir, { recursive: true });\n await writeFile(path, '', 'utf-8');\n};\n\n/**\n * @param configDir - Filesystem path to the directory containing the `observability.yml` state file.\n */\nexport const isObservabilityDisabled = async (configDir: string): Promise<boolean> => {\n try {\n const observabilityState = await getObservabilityState(configDir);\n return observabilityState.disabled;\n } catch (err) {\n log.catch('Failed to check if observability is disabled, assuming it is', err);\n return true;\n }\n};\n\n/**\n * Stable per-installation id, minted on first read.\n *\n * @param configDir - Filesystem path to the directory containing the `observability.yml` state file.\n */\nexport const getInstallationId = async (configDir: string): Promise<string | undefined> => {\n try {\n return (await getObservabilityState(configDir)).installationId;\n } catch (err) {\n log.catch('Failed to read the installation id', err);\n return undefined;\n }\n};\n\n/**\n * @param configDir - Filesystem path to the directory containing the `observability.yml` state file.\n */\n// NOTE: read-modify-write is not atomic; concurrent callers could overwrite each other.\n// Acceptable here because writes are infrequent and triggered by explicit user action.\nexport const storeObservabilityDisabled = async (configDir: string, value: boolean) => {\n const observabilityState = await getObservabilityState(configDir);\n observabilityState.disabled = value;\n await writeFile(join(configDir, 'observability.yml'), yaml.dump(observabilityState), 'utf-8');\n};\n\n/**\n * The identity this installation has already been aliased to, so the transition from the\n * installation id is recorded once rather than on every run.\n *\n * @param configDir - Filesystem path to the directory containing the `observability.yml` state file.\n */\nexport const getAliasedDid = async (configDir: string): Promise<string | undefined> => {\n try {\n return (await getObservabilityState(configDir)).aliasedDid;\n } catch (err) {\n log.catch('Failed to read the aliased identity', err);\n return undefined;\n }\n};\n\n/**\n * @param configDir - Filesystem path to the directory containing the `observability.yml` state file.\n */\nexport const storeAliasedDid = async (configDir: string, did: string) => {\n const observabilityState = await getObservabilityState(configDir);\n observabilityState.aliasedDid = did;\n await writeFile(join(configDir, 'observability.yml'), yaml.dump(observabilityState), 'utf-8');\n};\n\n/**\n * @param configDir - Filesystem path to the directory containing the `observability.yml` state file.\n */\nexport const getObservabilityGroup = async (configDir: string): Promise<string | undefined> => {\n const observabilityState = await getObservabilityState(configDir);\n return observabilityState.group;\n};\n\n/**\n * @param configDir - Filesystem path to the directory containing the `observability.yml` state file.\n */\nexport const storeObservabilityGroup = async (configDir: string, value: string) => {\n const observabilityState = await getObservabilityState(configDir);\n observabilityState.group = value;\n await writeFile(join(configDir, 'observability.yml'), yaml.dump(observabilityState), 'utf-8');\n};\n\nconst getObservabilityState = async (configDir: string): Promise<PersistentObservabilityState> => {\n // check whether configDir exists and if it's a directory\n\n if (existsSync(configDir)) {\n if (!statSync(configDir).isDirectory()) {\n throw new Error(`Config directory ${configDir} exists but is not a directory`);\n }\n } else {\n await mkdir(configDir, { recursive: true });\n }\n\n const idPath = join(configDir, 'observability.yml');\n if (existsSync(idPath)) {\n const context = await readFile(idPath, 'utf-8');\n return validate(context) ?? initializeState(idPath);\n }\n\n return initializeState(idPath);\n};\n\nexport type PersistentObservabilityState = {\n installationId: string;\n disabled: boolean;\n group?: string;\n aliasedDid?: string;\n};\n\n// create initial state and write to file, using environment variables to override defaults.\nconst initializeState = async (idPath: string): Promise<PersistentObservabilityState> => {\n // TODO(nf): read initial values from config or seed file\n const observabilityState = {\n installationId: uuid(),\n disabled: process.env.DX_DISABLE_OBSERVABILITY ? true : false,\n group: process.env.DX_OBSERVABILITY_GROUP ?? undefined,\n };\n\n await writeFile(\n idPath,\n '# This file is automatically generated by the @dxos/cli.\\n' + yaml.dump(observabilityState),\n 'utf-8',\n );\n\n return observabilityState;\n};\n\n/** Not applicable in Node.js contexts; OTEL log level override is browser-only. */\nexport const getOtelLogLevel = async (_namespace: string): Promise<string | null> => null;\n\n/** Not applicable in Node.js contexts; OTEL log level override is browser-only. */\nexport const storeOtelLogLevel = async (_namespace: string, _value: string | null): Promise<void> => {};\n\nconst validate = (contextString: string) => {\n const context = yaml.load(contextString) as PersistentObservabilityState;\n if (Boolean(context.installationId) && validateUuid(context.installationId!)) {\n return {\n ...context,\n disabled: process.env.DX_DISABLE_OBSERVABILITY ? true : (context.disabled ?? false),\n };\n }\n};\n"],"mappings":"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"}
@@ -1 +1 @@
1
- {"version":3,"file":"traces.mjs","names":[],"sources":["../../src/extensions/otel/traces-browser.ts"],"sourcesContent":["//\n// Copyright 2024 DXOS.org\n//\n\nimport {\n ROOT_CONTEXT,\n SpanStatusCode,\n type Tracer,\n context as otelContext,\n propagation,\n trace,\n} from '@opentelemetry/api';\nimport { getWebAutoInstrumentations } from '@opentelemetry/auto-instrumentations-web';\nimport { W3CTraceContextPropagator } from '@opentelemetry/core';\nimport { OTLPTraceExporter } from '@opentelemetry/exporter-trace-otlp-http';\nimport { registerInstrumentations } from '@opentelemetry/instrumentation';\nimport { AlwaysOnSampler, BatchSpanProcessor } from '@opentelemetry/sdk-trace-base';\nimport { StackContextManager, WebTracerProvider } from '@opentelemetry/sdk-trace-web';\nimport { ATTR_SERVICE_VERSION } from '@opentelemetry/semantic-conventions';\n\nimport { log } from '@dxos/log';\nimport { type RemoteSpan, type StartSpanOptions, TRACE_ALL_KEY, TRACE_PROCESSOR } from '@dxos/tracing';\n\nimport * as AiContent from './ai-content.ts';\nimport { type OtelOptions, signalUrl } from './otel.ts';\nimport * as OtelSpanSink from './OtelSpanSink.ts';\nimport * as SpanFanout from './span-fanout.ts';\nimport { TagInjectorSpanProcessor } from './span-processors.ts';\nimport * as TailSampling from './tail-sampling.ts';\n\nexport type OtelTracesOptions = OtelOptions & {\n /**\n * When set, ended spans are posted to the observability worker's `OtelSpanSink` instead of\n * being batched and exported here. Sampling, IDs, and propagation stay in this realm.\n */\n spanSink?: OtelSpanSink.Handle;\n};\n\nexport class OtelTraces {\n private _tracer: Tracer;\n private readonly _tracerProvider: WebTracerProvider;\n readonly #samplingProcessors: TailSampling.TailSamplingSpanProcessor[];\n\n constructor(private readonly options: OtelTracesOptions) {\n propagation.setGlobalPropagator(new W3CTraceContextPropagator());\n\n const forceTraceAll = typeof localStorage !== 'undefined' && localStorage.getItem(TRACE_ALL_KEY) === 'true';\n\n this.#samplingProcessors = options.spanSink\n ? []\n : this.options.destinations.map(\n (destination) =>\n new TailSampling.TailSamplingSpanProcessor(\n new AiContent.AiContentStrippingSpanProcessor(\n new BatchSpanProcessor(\n new OTLPTraceExporter({\n url: signalUrl(destination, 'traces'),\n headers: destination.headers,\n concurrencyLimit: 10,\n }),\n { scheduledDelayMillis: 5_000 },\n ),\n ),\n { ratio: forceTraceAll ? 1 : undefined },\n ),\n );\n\n this._tracerProvider = new WebTracerProvider({\n resource: this.options.resource,\n sampler: new AlwaysOnSampler(),\n spanProcessors: [\n new TagInjectorSpanProcessor(this.options.getTags),\n new SpanFanout.FanoutSpanProcessor(),\n ...(options.spanSink ? [new OtelSpanSink.PortSpanProcessor(options.spanSink.post)] : this.#samplingProcessors),\n ],\n });\n\n trace.setGlobalTracerProvider(this._tracerProvider);\n // Without a context manager `context.active()` is always the root, so the Effect tracer's\n // context hook is inert and a log emitted inside a span cannot find it.\n otelContext.setGlobalContextManager(new StackContextManager().enable());\n\n this._tracer = trace.getTracer(\n 'dxos-observability',\n this.options.resource.attributes[ATTR_SERVICE_VERSION]?.toString(),\n );\n }\n\n /**\n * Forcibly flush the BatchSpanProcessor. Call before process exit / page unload\n * to avoid losing queued spans (which manifests as \"Missing Span\" in SigNoz —\n * their already-exported children reference a parent that never made it to OTLP).\n */\n public async flush(): Promise<void> {\n await this._tracerProvider.forceFlush();\n }\n\n /**\n * Flush + shut down the tracer provider via `WebTracerProvider.shutdown()`,\n * which forces a final export then terminates all span processors.\n *\n * Terminal and effectively one-shot: safe to call after `flush()`, but\n * `flush()` MUST NOT be called after `close()` — shutdown stops further\n * exporting, so subsequent `close()`/`flush()` calls resolve without\n * emitting new spans.\n */\n public async close(): Promise<void> {\n await this._tracerProvider.shutdown();\n }\n\n /**\n * Keeps the rest of a trace a warning or error log named. Reaches the in-thread sampler only;\n * with a worker deciding, its own log sink promotes there instead.\n */\n public promote(traceId: string): void {\n for (const processor of this.#samplingProcessors) {\n processor.promote(traceId);\n }\n }\n\n public start(): void {\n log('trace processor registered');\n\n registerInstrumentations({\n instrumentations: [\n getWebAutoInstrumentations({\n '@opentelemetry/instrumentation-fetch': { enabled: false, ignoreUrls: [/api\\.ipdata\\.co/] },\n '@opentelemetry/instrumentation-document-load': { enabled: false },\n '@opentelemetry/instrumentation-xml-http-request': { enabled: false },\n '@opentelemetry/instrumentation-user-interaction': { enabled: false },\n }),\n ],\n });\n\n const tracer = this._tracer;\n\n TRACE_PROCESSOR.tracingBackend = {\n startSpan: (options: StartSpanOptions): RemoteSpan => {\n log('begin otel trace', { options });\n const parentCtx = options.parentContext\n ? propagation.extract(ROOT_CONTEXT, {\n traceparent: options.parentContext.traceparent,\n tracestate: options.parentContext.tracestate ?? '',\n })\n : otelContext.active();\n\n const span = tracer.startSpan(options.name, options, parentCtx);\n\n const sc = span.spanContext();\n const spanContext =\n sc && sc.traceId && sc.spanId\n ? {\n traceparent: `00-${sc.traceId}-${sc.spanId}-${(sc.traceFlags ?? 0).toString(16).padStart(2, '0')}`,\n tracestate: sc.traceState?.serialize(),\n }\n : undefined;\n\n return {\n end: (endTime?: number) => span.end(endTime),\n setAttributes: (attrs: Record<string, any>) => span.setAttributes(attrs),\n setError: (err: unknown) => {\n if (err instanceof Error) {\n span.recordException(err);\n }\n span.setStatus({ code: SpanStatusCode.ERROR, message: err instanceof Error ? err.message : String(err) });\n },\n spanContext,\n };\n },\n };\n }\n}\n"],"mappings":"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"}
1
+ {"version":3,"file":"traces.mjs","names":["TailSampling.TailSamplingSpanProcessor","AiContent.AiContentStrippingSpanProcessor","SpanFanout.FanoutSpanProcessor","OtelSpanSink.PortSpanProcessor","otelContext"],"sources":["../../src/extensions/otel/traces-browser.ts"],"sourcesContent":["//\n// Copyright 2024 DXOS.org\n//\n\nimport {\n ROOT_CONTEXT,\n SpanStatusCode,\n type Tracer,\n context as otelContext,\n propagation,\n trace,\n} from '@opentelemetry/api';\nimport { getWebAutoInstrumentations } from '@opentelemetry/auto-instrumentations-web';\nimport { W3CTraceContextPropagator } from '@opentelemetry/core';\nimport { OTLPTraceExporter } from '@opentelemetry/exporter-trace-otlp-http';\nimport { registerInstrumentations } from '@opentelemetry/instrumentation';\nimport { AlwaysOnSampler, BatchSpanProcessor } from '@opentelemetry/sdk-trace-base';\nimport { StackContextManager, WebTracerProvider } from '@opentelemetry/sdk-trace-web';\nimport { ATTR_SERVICE_VERSION } from '@opentelemetry/semantic-conventions';\n\nimport { log } from '@dxos/log';\nimport { type RemoteSpan, type StartSpanOptions, TRACE_ALL_KEY, TRACE_PROCESSOR } from '@dxos/tracing';\n\nimport * as AiContent from './ai-content.ts';\nimport { type OtelOptions, signalUrl } from './otel.ts';\nimport * as OtelSpanSink from './OtelSpanSink.ts';\nimport * as SpanFanout from './span-fanout.ts';\nimport { TagInjectorSpanProcessor } from './span-processors.ts';\nimport * as TailSampling from './tail-sampling.ts';\n\nexport type OtelTracesOptions = OtelOptions & {\n /**\n * When set, ended spans are posted to the observability worker's `OtelSpanSink` instead of\n * being batched and exported here. Sampling, IDs, and propagation stay in this realm.\n */\n spanSink?: OtelSpanSink.Handle;\n};\n\nexport class OtelTraces {\n private _tracer: Tracer;\n private readonly _tracerProvider: WebTracerProvider;\n readonly #samplingProcessors: TailSampling.TailSamplingSpanProcessor[];\n\n constructor(private readonly options: OtelTracesOptions) {\n propagation.setGlobalPropagator(new W3CTraceContextPropagator());\n\n const forceTraceAll = typeof localStorage !== 'undefined' && localStorage.getItem(TRACE_ALL_KEY) === 'true';\n\n this.#samplingProcessors = options.spanSink\n ? []\n : this.options.destinations.map(\n (destination) =>\n new TailSampling.TailSamplingSpanProcessor(\n new AiContent.AiContentStrippingSpanProcessor(\n new BatchSpanProcessor(\n new OTLPTraceExporter({\n url: signalUrl(destination, 'traces'),\n headers: destination.headers,\n concurrencyLimit: 10,\n }),\n { scheduledDelayMillis: 5_000 },\n ),\n ),\n { ratio: forceTraceAll ? 1 : undefined },\n ),\n );\n\n this._tracerProvider = new WebTracerProvider({\n resource: this.options.resource,\n sampler: new AlwaysOnSampler(),\n spanProcessors: [\n new TagInjectorSpanProcessor(this.options.getTags),\n new SpanFanout.FanoutSpanProcessor(),\n ...(options.spanSink ? [new OtelSpanSink.PortSpanProcessor(options.spanSink.post)] : this.#samplingProcessors),\n ],\n });\n\n trace.setGlobalTracerProvider(this._tracerProvider);\n // Without a context manager `context.active()` is always the root, so the Effect tracer's\n // context hook is inert and a log emitted inside a span cannot find it.\n otelContext.setGlobalContextManager(new StackContextManager().enable());\n\n this._tracer = trace.getTracer(\n 'dxos-observability',\n this.options.resource.attributes[ATTR_SERVICE_VERSION]?.toString(),\n );\n }\n\n /**\n * Forcibly flush the BatchSpanProcessor. Call before process exit / page unload\n * to avoid losing queued spans (which manifests as \"Missing Span\" in SigNoz —\n * their already-exported children reference a parent that never made it to OTLP).\n */\n public async flush(): Promise<void> {\n await this._tracerProvider.forceFlush();\n }\n\n /**\n * Flush + shut down the tracer provider via `WebTracerProvider.shutdown()`,\n * which forces a final export then terminates all span processors.\n *\n * Terminal and effectively one-shot: safe to call after `flush()`, but\n * `flush()` MUST NOT be called after `close()` — shutdown stops further\n * exporting, so subsequent `close()`/`flush()` calls resolve without\n * emitting new spans.\n */\n public async close(): Promise<void> {\n await this._tracerProvider.shutdown();\n }\n\n /**\n * Keeps the rest of a trace a warning or error log named. Reaches the in-thread sampler only;\n * with a worker deciding, its own log sink promotes there instead.\n */\n public promote(traceId: string): void {\n for (const processor of this.#samplingProcessors) {\n processor.promote(traceId);\n }\n }\n\n public start(): void {\n log('trace processor registered');\n\n registerInstrumentations({\n instrumentations: [\n getWebAutoInstrumentations({\n '@opentelemetry/instrumentation-fetch': { enabled: false, ignoreUrls: [/api\\.ipdata\\.co/] },\n '@opentelemetry/instrumentation-document-load': { enabled: false },\n '@opentelemetry/instrumentation-xml-http-request': { enabled: false },\n '@opentelemetry/instrumentation-user-interaction': { enabled: false },\n }),\n ],\n });\n\n const tracer = this._tracer;\n\n TRACE_PROCESSOR.tracingBackend = {\n startSpan: (options: StartSpanOptions): RemoteSpan => {\n log('begin otel trace', { options });\n const parentCtx = options.parentContext\n ? propagation.extract(ROOT_CONTEXT, {\n traceparent: options.parentContext.traceparent,\n tracestate: options.parentContext.tracestate ?? '',\n })\n : otelContext.active();\n\n const span = tracer.startSpan(options.name, options, parentCtx);\n\n const sc = span.spanContext();\n const spanContext =\n sc && sc.traceId && sc.spanId\n ? {\n traceparent: `00-${sc.traceId}-${sc.spanId}-${(sc.traceFlags ?? 0).toString(16).padStart(2, '0')}`,\n tracestate: sc.traceState?.serialize(),\n }\n : undefined;\n\n return {\n end: (endTime?: number) => span.end(endTime),\n setAttributes: (attrs: Record<string, any>) => span.setAttributes(attrs),\n setError: (err: unknown) => {\n if (err instanceof Error) {\n span.recordException(err);\n }\n span.setStatus({ code: SpanStatusCode.ERROR, message: err instanceof Error ? err.message : String(err) });\n },\n spanContext,\n };\n },\n };\n }\n}\n"],"mappings":"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"}
@@ -1 +1 @@
1
- {"version":3,"file":"traces.node.mjs","names":[],"sources":["../../src/extensions/otel/traces.ts"],"sourcesContent":["//\n// Copyright 2024 DXOS.org\n//\n\nimport {\n ROOT_CONTEXT,\n SpanStatusCode,\n type Tracer,\n context as otelContext,\n propagation,\n trace,\n} from '@opentelemetry/api';\nimport { W3CTraceContextPropagator } from '@opentelemetry/core';\nimport { OTLPTraceExporter } from '@opentelemetry/exporter-trace-otlp-http';\nimport { BatchSpanProcessor } from '@opentelemetry/sdk-trace-base';\nimport { NodeTracerProvider } from '@opentelemetry/sdk-trace-node';\nimport { ATTR_SERVICE_VERSION } from '@opentelemetry/semantic-conventions';\n\nimport { log } from '@dxos/log';\nimport { type RemoteSpan, type StartSpanOptions, TRACE_PROCESSOR } from '@dxos/tracing';\n\nimport * as AiContent from './ai-content.ts';\nimport { type OtelOptions, signalUrl } from './otel.ts';\nimport * as OtelSpanSink from './OtelSpanSink.ts';\nimport * as SpanFanout from './span-fanout.ts';\nimport { TagInjectorSpanProcessor } from './span-processors.ts';\n\nexport type OtelTracesOptions = OtelOptions & {\n /**\n * When set, ended spans are posted to the observability worker's `OtelSpanSink` instead of\n * being batched and exported here. Sampling, IDs, and propagation stay in this realm.\n */\n spanSink?: OtelSpanSink.Handle;\n};\n\nexport class OtelTraces {\n private _tracer: Tracer;\n private readonly _tracerProvider: NodeTracerProvider;\n\n constructor(private readonly options: OtelTracesOptions) {\n this._tracerProvider = new NodeTracerProvider({\n resource: this.options.resource,\n spanProcessors: [\n new TagInjectorSpanProcessor(this.options.getTags),\n new SpanFanout.FanoutSpanProcessor(),\n ...(options.spanSink\n ? [new OtelSpanSink.PortSpanProcessor(options.spanSink.post)]\n : this.options.destinations.map(\n (destination) =>\n new AiContent.AiContentStrippingSpanProcessor(\n new BatchSpanProcessor(\n new OTLPTraceExporter({\n url: signalUrl(destination, 'traces'),\n headers: destination.headers,\n concurrencyLimit: 10,\n }),\n ),\n ),\n )),\n ],\n });\n\n // Registers the provider, the propagator, and an async-hooks context manager. Without the\n // last, `context.active()` is always the root, so the Effect tracer's context hook is inert and\n // a log emitted inside a span cannot find it; async hooks carry it across awaits, which node\n // code does constantly and the browser's stack manager could not follow.\n this._tracerProvider.register({ propagator: new W3CTraceContextPropagator() });\n this._tracer = trace.getTracer(\n 'dxos-observability',\n this.options.resource.attributes[ATTR_SERVICE_VERSION]?.toString(),\n );\n }\n\n /** Same surface as the browser tracer; this one exports every span, so there is nothing to promote. */\n public promote(_traceId: string): void {}\n\n /**\n * Forcibly flush the BatchSpanProcessor. Call before process exit to avoid\n * losing queued spans (which manifests as \"Missing Span\" in SigNoz — their\n * already-exported children reference a parent that never made it to OTLP).\n */\n public async flush(): Promise<void> {\n await this._tracerProvider.forceFlush();\n }\n\n /**\n * Flush + shut down the tracer provider via `BasicTracerProvider.shutdown()`,\n * which forces a final export then terminates all span processors.\n *\n * Terminal and effectively one-shot: safe to call after `flush()`, but\n * `flush()` MUST NOT be called after `close()` — shutdown stops further\n * exporting, so subsequent `close()`/`flush()` calls resolve without\n * emitting new spans.\n */\n public async close(): Promise<void> {\n await this._tracerProvider.shutdown();\n }\n\n public start(): void {\n log('trace processor registered');\n\n const tracer = this._tracer;\n\n TRACE_PROCESSOR.tracingBackend = {\n startSpan: (options: StartSpanOptions): RemoteSpan => {\n log('begin otel trace', { options });\n const parentCtx = options.parentContext\n ? propagation.extract(ROOT_CONTEXT, {\n traceparent: options.parentContext.traceparent,\n tracestate: options.parentContext.tracestate ?? '',\n })\n : otelContext.active();\n\n const span = tracer.startSpan(options.name, options, parentCtx);\n\n const sc = span.spanContext();\n const spanContext =\n sc && sc.traceId && sc.spanId\n ? {\n traceparent: `00-${sc.traceId}-${sc.spanId}-${(sc.traceFlags ?? 0).toString(16).padStart(2, '0')}`,\n tracestate: sc.traceState?.serialize(),\n }\n : undefined;\n\n return {\n end: (endTime?: number) => span.end(endTime),\n setAttributes: (attrs: Record<string, any>) => span.setAttributes(attrs),\n setError: (err: unknown) => {\n if (err instanceof Error) {\n span.recordException(err);\n }\n span.setStatus({ code: SpanStatusCode.ERROR, message: err instanceof Error ? err.message : String(err) });\n },\n spanContext,\n };\n },\n };\n }\n}\n"],"mappings":";;;;;;;;;;;;;;AAmCA,IAAa,aAAb,MAAwB;CAIO;CAH7B;CACA;CAEA,YAAY,SAA6C;EAA5B,KAAA,UAAA;EAC3B,KAAK,kBAAkB,IAAI,mBAAmB;GAC5C,UAAU,KAAK,QAAQ;GACvB,gBAAgB;IACd,IAAI,yBAAyB,KAAK,QAAQ,OAAO;IACjD,IAAI,oBAA+B;IACnC,GAAI,QAAQ,WACR,CAAC,IAAI,kBAA+B,QAAQ,SAAS,IAAI,CAAC,IAC1D,KAAK,QAAQ,aAAa,KACvB,gBACC,IAAI,gCACF,IAAI,mBACF,IAAI,kBAAkB;KACpB,KAAK,UAAU,aAAa,QAAQ;KACpC,SAAS,YAAY;KACrB,kBAAkB;IACpB,CAAC,CACH,CACF,CACJ;GACN;EACF,CAAC;EAMD,KAAK,gBAAgB,SAAS,EAAE,YAAY,IAAI,0BAA0B,EAAE,CAAC;EAC7E,KAAK,UAAU,MAAM,UACnB,sBACA,KAAK,QAAQ,SAAS,WAAW,qBAAqB,EAAE,SAAS,CACnE;CACF;;CAGA,QAAe,UAAwB,CAAC;;;;;;CAOxC,MAAa,QAAuB;EAClC,MAAM,KAAK,gBAAgB,WAAW;CACxC;;;;;;;;;;CAWA,MAAa,QAAuB;EAClC,MAAM,KAAK,gBAAgB,SAAS;CACtC;CAEA,QAAqB;EACnB,IAAI,8BAA2B,KAAA,GAAA;GAAA,YAAA;GAAA,GAAA;GAAA,GAAA;GAAA,GAAA;EAAA,CAAC;EAEhC,MAAM,SAAS,KAAK;EAEpB,gBAAgB,iBAAiB,EAC/B,YAAY,YAA0C;GACpD,IAAI,oBAAoB,EAAE,QAAQ,GAAA;IAAA,YAAA;IAAA,GAAA;IAAA,GAAA;IAAA,GAAA;GAAA,CAAC;GACnC,MAAM,YAAY,QAAQ,gBACtB,YAAY,QAAQ,cAAc;IAChC,aAAa,QAAQ,cAAc;IACnC,YAAY,QAAQ,cAAc,cAAc;GAClD,CAAC,IACD,QAAY,OAAO;GAEvB,MAAM,OAAO,OAAO,UAAU,QAAQ,MAAM,SAAS,SAAS;GAE9D,MAAM,KAAK,KAAK,YAAY;GAS5B,OAAO;IACL,MAAM,YAAqB,KAAK,IAAI,OAAO;IAC3C,gBAAgB,UAA+B,KAAK,cAAc,KAAK;IACvE,WAAW,QAAiB;KAC1B,IAAI,eAAe,OACjB,KAAK,gBAAgB,GAAG;KAE1B,KAAK,UAAU;MAAE,MAAM,eAAe;MAAO,SAAS,eAAe,QAAQ,IAAI,UAAU,OAAO,GAAG;KAAE,CAAC;IAC1G;IACA,aAhBA,MAAM,GAAG,WAAW,GAAG,SACnB;KACE,aAAa,MAAM,GAAG,QAAQ,GAAG,GAAG,OAAO,IAAI,GAAG,cAAc,EAAA,CAAG,SAAS,EAAE,CAAC,CAAC,SAAS,GAAG,GAAG;KAC/F,YAAY,GAAG,YAAY,UAAU;IACvC,IACA,KAAA;GAYN;EACF,EACF;CACF;AACF"}
1
+ {"version":3,"file":"traces.node.mjs","names":["SpanFanout.FanoutSpanProcessor","OtelSpanSink.PortSpanProcessor","AiContent.AiContentStrippingSpanProcessor","otelContext"],"sources":["../../src/extensions/otel/traces.ts"],"sourcesContent":["//\n// Copyright 2024 DXOS.org\n//\n\nimport {\n ROOT_CONTEXT,\n SpanStatusCode,\n type Tracer,\n context as otelContext,\n propagation,\n trace,\n} from '@opentelemetry/api';\nimport { W3CTraceContextPropagator } from '@opentelemetry/core';\nimport { OTLPTraceExporter } from '@opentelemetry/exporter-trace-otlp-http';\nimport { BatchSpanProcessor } from '@opentelemetry/sdk-trace-base';\nimport { NodeTracerProvider } from '@opentelemetry/sdk-trace-node';\nimport { ATTR_SERVICE_VERSION } from '@opentelemetry/semantic-conventions';\n\nimport { log } from '@dxos/log';\nimport { type RemoteSpan, type StartSpanOptions, TRACE_PROCESSOR } from '@dxos/tracing';\n\nimport * as AiContent from './ai-content.ts';\nimport { type OtelOptions, signalUrl } from './otel.ts';\nimport * as OtelSpanSink from './OtelSpanSink.ts';\nimport * as SpanFanout from './span-fanout.ts';\nimport { TagInjectorSpanProcessor } from './span-processors.ts';\n\nexport type OtelTracesOptions = OtelOptions & {\n /**\n * When set, ended spans are posted to the observability worker's `OtelSpanSink` instead of\n * being batched and exported here. Sampling, IDs, and propagation stay in this realm.\n */\n spanSink?: OtelSpanSink.Handle;\n};\n\nexport class OtelTraces {\n private _tracer: Tracer;\n private readonly _tracerProvider: NodeTracerProvider;\n\n constructor(private readonly options: OtelTracesOptions) {\n this._tracerProvider = new NodeTracerProvider({\n resource: this.options.resource,\n spanProcessors: [\n new TagInjectorSpanProcessor(this.options.getTags),\n new SpanFanout.FanoutSpanProcessor(),\n ...(options.spanSink\n ? [new OtelSpanSink.PortSpanProcessor(options.spanSink.post)]\n : this.options.destinations.map(\n (destination) =>\n new AiContent.AiContentStrippingSpanProcessor(\n new BatchSpanProcessor(\n new OTLPTraceExporter({\n url: signalUrl(destination, 'traces'),\n headers: destination.headers,\n concurrencyLimit: 10,\n }),\n ),\n ),\n )),\n ],\n });\n\n // Registers the provider, the propagator, and an async-hooks context manager. Without the\n // last, `context.active()` is always the root, so the Effect tracer's context hook is inert and\n // a log emitted inside a span cannot find it; async hooks carry it across awaits, which node\n // code does constantly and the browser's stack manager could not follow.\n this._tracerProvider.register({ propagator: new W3CTraceContextPropagator() });\n this._tracer = trace.getTracer(\n 'dxos-observability',\n this.options.resource.attributes[ATTR_SERVICE_VERSION]?.toString(),\n );\n }\n\n /** Same surface as the browser tracer; this one exports every span, so there is nothing to promote. */\n public promote(_traceId: string): void {}\n\n /**\n * Forcibly flush the BatchSpanProcessor. Call before process exit to avoid\n * losing queued spans (which manifests as \"Missing Span\" in SigNoz — their\n * already-exported children reference a parent that never made it to OTLP).\n */\n public async flush(): Promise<void> {\n await this._tracerProvider.forceFlush();\n }\n\n /**\n * Flush + shut down the tracer provider via `BasicTracerProvider.shutdown()`,\n * which forces a final export then terminates all span processors.\n *\n * Terminal and effectively one-shot: safe to call after `flush()`, but\n * `flush()` MUST NOT be called after `close()` — shutdown stops further\n * exporting, so subsequent `close()`/`flush()` calls resolve without\n * emitting new spans.\n */\n public async close(): Promise<void> {\n await this._tracerProvider.shutdown();\n }\n\n public start(): void {\n log('trace processor registered');\n\n const tracer = this._tracer;\n\n TRACE_PROCESSOR.tracingBackend = {\n startSpan: (options: StartSpanOptions): RemoteSpan => {\n log('begin otel trace', { options });\n const parentCtx = options.parentContext\n ? propagation.extract(ROOT_CONTEXT, {\n traceparent: options.parentContext.traceparent,\n tracestate: options.parentContext.tracestate ?? '',\n })\n : otelContext.active();\n\n const span = tracer.startSpan(options.name, options, parentCtx);\n\n const sc = span.spanContext();\n const spanContext =\n sc && sc.traceId && sc.spanId\n ? {\n traceparent: `00-${sc.traceId}-${sc.spanId}-${(sc.traceFlags ?? 0).toString(16).padStart(2, '0')}`,\n tracestate: sc.traceState?.serialize(),\n }\n : undefined;\n\n return {\n end: (endTime?: number) => span.end(endTime),\n setAttributes: (attrs: Record<string, any>) => span.setAttributes(attrs),\n setError: (err: unknown) => {\n if (err instanceof Error) {\n span.recordException(err);\n }\n span.setStatus({ code: SpanStatusCode.ERROR, message: err instanceof Error ? err.message : String(err) });\n },\n spanContext,\n };\n },\n };\n }\n}\n"],"mappings":";;;;;;;;;;;;;;AAmCA,IAAa,aAAb,MAAwB;CAIO;CAH7B;CACA;CAEA,YAAY,SAA6C;EAA5B,KAAA,UAAA;EAC3B,KAAK,kBAAkB,IAAI,mBAAmB;GAC5C,UAAU,KAAK,QAAQ;GACvB,gBAAgB;IACd,IAAI,yBAAyB,KAAK,QAAQ,OAAO;IACjD,IAAIA,oBAA+B;IACnC,GAAI,QAAQ,WACR,CAAC,IAAIC,kBAA+B,QAAQ,SAAS,IAAI,CAAC,IAC1D,KAAK,QAAQ,aAAa,KACvB,gBACC,IAAIC,gCACF,IAAI,mBACF,IAAI,kBAAkB;KACpB,KAAK,UAAU,aAAa,QAAQ;KACpC,SAAS,YAAY;KACrB,kBAAkB;IACpB,CAAC,CACH,CACF,CACJ;GACN;EACF,CAAC;EAMD,KAAK,gBAAgB,SAAS,EAAE,YAAY,IAAI,0BAA0B,EAAE,CAAC;EAC7E,KAAK,UAAU,MAAM,UACnB,sBACA,KAAK,QAAQ,SAAS,WAAW,qBAAqB,EAAE,SAAS,CACnE;CACF;;CAGA,QAAe,UAAwB,CAAC;;;;;;CAOxC,MAAa,QAAuB;EAClC,MAAM,KAAK,gBAAgB,WAAW;CACxC;;;;;;;;;;CAWA,MAAa,QAAuB;EAClC,MAAM,KAAK,gBAAgB,SAAS;CACtC;CAEA,QAAqB;EACnB,IAAI,8BAA2B,KAAA,GAAA;GAAA,YAAA;GAAA,GAAA;GAAA,GAAA;GAAA,GAAA;EAAA,CAAC;EAEhC,MAAM,SAAS,KAAK;EAEpB,gBAAgB,iBAAiB,EAC/B,YAAY,YAA0C;GACpD,IAAI,oBAAoB,EAAE,QAAQ,GAAA;IAAA,YAAA;IAAA,GAAA;IAAA,GAAA;IAAA,GAAA;GAAA,CAAC;GACnC,MAAM,YAAY,QAAQ,gBACtB,YAAY,QAAQ,cAAc;IAChC,aAAa,QAAQ,cAAc;IACnC,YAAY,QAAQ,cAAc,cAAc;GAClD,CAAC,IACDC,QAAY,OAAO;GAEvB,MAAM,OAAO,OAAO,UAAU,QAAQ,MAAM,SAAS,SAAS;GAE9D,MAAM,KAAK,KAAK,YAAY;GAS5B,OAAO;IACL,MAAM,YAAqB,KAAK,IAAI,OAAO;IAC3C,gBAAgB,UAA+B,KAAK,cAAc,KAAK;IACvE,WAAW,QAAiB;KAC1B,IAAI,eAAe,OACjB,KAAK,gBAAgB,GAAG;KAE1B,KAAK,UAAU;MAAE,MAAM,eAAe;MAAO,SAAS,eAAe,QAAQ,IAAI,UAAU,OAAO,GAAG;KAAE,CAAC;IAC1G;IACA,aAhBA,MAAM,GAAG,WAAW,GAAG,SACnB;KACE,aAAa,MAAM,GAAG,QAAQ,GAAG,GAAG,OAAO,IAAI,GAAG,cAAc,EAAA,CAAG,SAAS,EAAE,CAAC,CAAC,SAAS,GAAG,GAAG;KAC/F,YAAY,GAAG,YAAY,UAAU;IACvC,IACA,KAAA;GAYN;EACF,EACF;CACF;AACF"}
@@ -72,7 +72,7 @@ export type Inference = {
72
72
  parentSpanId?: string;
73
73
  /** Provider span name, e.g. `LanguageModel.streamText`. */
74
74
  spanName: string;
75
- /** `gen_ai.system` — the serving product, not the wire dialect. */
75
+ /** `gen_ai.provider.name` — the serving product, not the wire dialect. */
76
76
  provider?: string;
77
77
  model?: string;
78
78
  /** Conversation the call belongs to, when the call site named one. */
@@ -1 +1 @@
1
- {"version":3,"file":"ObservabilityExtension.d.ts","sourceRoot":"","sources":["../../../src/ObservabilityExtension.ts"],"names":[],"mappings":"AAMA,OAAO,KAAK,KAAK,MAAM,MAAM,eAAe,CAAC;AAE7C,OAAO,EAAE,KAAK,SAAS,EAAE,MAAM,aAAa,CAAC;AAC7C,OAAO,EAAE,KAAK,cAAc,EAAE,MAAM,eAAe,CAAC;AAEpD,cAAc,uBAAuB,CAAC;AAEtC;;;;;;;;;;;GAWG;AACH,MAAM,MAAM,IAAI,GAAG,IAAI,GAAG,QAAQ,GAAG,QAAQ,GAAG,SAAS,GAAG,MAAM,GAAG,KAAK,GAAG,SAAS,GAAG,QAAQ,CAAC;AAElG;;GAEG;AACH,MAAM,MAAM,gBAAgB,CAAC,CAAC,SAAS,IAAI,GAAG,IAAI,IAAI;IACpD,IAAI,EAAE,CAAC,CAAC;IACR,WAAW,IAAI,MAAM,CAAC,MAAM,CAAC,OAAO,CAAC,CAAC;CACvC,CAAC;AAEF;;;GAGG;AACH,MAAM,MAAM,UAAU,GAAG;IAAE,IAAI,CAAC,EAAE,MAAM,CAAC;IAAC,WAAW,CAAC,EAAE,MAAM,CAAA;CAAE,CAAC;AAEjE;;GAEG;AACH,MAAM,MAAM,OAAO,GAAG;IACpB,KAAK,CAAC,IAAI,EAAE,MAAM,EAAE,KAAK,EAAE,MAAM,EAAE,IAAI,CAAC,EAAE,UAAU,EAAE,IAAI,CAAC,EAAE,UAAU,GAAG,IAAI,CAAC;IAC/E,SAAS,CAAC,IAAI,EAAE,MAAM,EAAE,KAAK,CAAC,EAAE,MAAM,EAAE,IAAI,CAAC,EAAE,UAAU,EAAE,IAAI,CAAC,EAAE,UAAU,GAAG,IAAI,CAAC;IACpF,YAAY,CAAC,IAAI,EAAE,MAAM,EAAE,KAAK,EAAE,MAAM,EAAE,IAAI,CAAC,EAAE,UAAU,EAAE,IAAI,CAAC,EAAE,UAAU,GAAG,IAAI,CAAC;IACtF;;;;OAIG;IACH,OAAO,CAAC,IAAI,EAAE,MAAM,EAAE,QAAQ,EAAE,cAAc,EAAE,IAAI,CAAC,EAAE,UAAU,EAAE,IAAI,CAAC,EAAE,UAAU,GAAG,SAAS,CAAC;CAClG,CAAC;AAEF;;GAEG;AACH,MAAM,MAAM,MAAM,GAAG;IACnB,gBAAgB,CAAC,KAAK,EAAE,KAAK,EAAE,UAAU,CAAC,EAAE,UAAU,GAAG,IAAI,CAAC;CAC/D,CAAC;AAEF;;;GAGG;AACH,MAAM,MAAM,eAAe,GAAG,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,CAAC;AAEtD;;GAEG;AACH,MAAM,MAAM,MAAM,GAAG;IACnB,YAAY,CAAC,KAAK,EAAE,MAAM,EAAE,UAAU,CAAC,EAAE,eAAe,GAAG,IAAI,CAAC;CACjE,CAAC;AAEF;;;;GAIG;AACH,MAAM,MAAM,SAAS,GAAG;IACtB,OAAO,EAAE,MAAM,CAAC;IAChB,MAAM,EAAE,MAAM,CAAC;IACf,YAAY,CAAC,EAAE,MAAM,CAAC;IACtB,2DAA2D;IAC3D,QAAQ,EAAE,MAAM,CAAC;IACjB,mEAAmE;IACnE,QAAQ,CAAC,EAAE,MAAM,CAAC;IAClB,KAAK,CAAC,EAAE,MAAM,CAAC;IACf,sEAAsE;IACtE,SAAS,CAAC,EAAE,MAAM,CAAC;IACnB,6EAA6E;IAC7E,UAAU,CAAC,EAAE,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,CAAC;IACrC,+FAA+F;IAC/F,WAAW,CAAC,EAAE,MAAM,CAAC;IACrB,YAAY,CAAC,EAAE,MAAM,CAAC;IACtB,gFAAgF;IAChF,eAAe,CAAC,EAAE,MAAM,CAAC;IACzB,gBAAgB,CAAC,EAAE,MAAM,CAAC;IAC1B,uCAAuC;IACvC,OAAO,EAAE,MAAM,CAAC;IAChB,SAAS,EAAE,OAAO,CAAC;IACnB,yDAAyD;IACzD,OAAO,CAAC,EAAE,iBAAiB,CAAC;IAC5B,gGAAgG;IAChG,UAAU,CAAC,EAAE,MAAM,CAAC;CACrB,CAAC;AAEF,MAAM,MAAM,iBAAiB,GAAG;IAC9B,4FAA4F;IAC5F,KAAK,CAAC,EAAE,OAAO,CAAC;IAChB,MAAM,CAAC,EAAE,OAAO,CAAC;IACjB,KAAK,CAAC,EAAE,OAAO,CAAC;IAChB,kFAAkF;IAClF,SAAS,CAAC,EAAE,OAAO,CAAC;CACrB,CAAC;AAEF,kGAAkG;AAClG,MAAM,MAAM,UAAU,GAAG;IACvB,OAAO,EAAE,MAAM,CAAC;IAChB,MAAM,EAAE,MAAM,CAAC;IACf,YAAY,CAAC,EAAE,MAAM,CAAC;IACtB,+DAA+D;IAC/D,QAAQ,EAAE,MAAM,CAAC;IACjB,sEAAsE;IACtE,SAAS,CAAC,EAAE,MAAM,CAAC;IACnB,uCAAuC;IACvC,OAAO,EAAE,MAAM,CAAC;IAChB,yDAAyD;IACzD,OAAO,CAAC,EAAE,aAAa,CAAC;IACxB,0DAA0D;IAC1D,UAAU,CAAC,EAAE,MAAM,CAAC;CACrB,CAAC;AAEF,MAAM,MAAM,aAAa,GAAG;IAC1B,KAAK,CAAC,EAAE,OAAO,CAAC;IAChB,MAAM,CAAC,EAAE,OAAO,CAAC;IACjB,kFAAkF;IAClF,SAAS,CAAC,EAAE,OAAO,CAAC;CACrB,CAAC;AAEF;;;GAGG;AACH,MAAM,MAAM,IAAI,GAAG,UAAU,CAAC;AAE9B,kGAAkG;AAClG,MAAM,MAAM,QAAQ,GAAG,UAAU,CAAC;AAElC;;GAEG;AACH,MAAM,MAAM,EAAE,GAAG;IACf,gBAAgB,CAAC,SAAS,EAAE,SAAS,GAAG,IAAI,CAAC;IAC7C,WAAW,CAAC,IAAI,EAAE,IAAI,GAAG,IAAI,CAAC;IAC9B,eAAe,CAAC,QAAQ,EAAE,QAAQ,GAAG,IAAI,CAAC;CAC3C,CAAC;AAEF,+GAA+G;AAC/G,eAAO,MAAM,kBAAkB,YAAY,CAAC;AAE5C,6FAA6F;AAC7F,MAAM,MAAM,UAAU,GAAG;IACvB,6FAA6F;IAC7F,SAAS,EAAE,MAAM,CAAC;IAClB,UAAU,CAAC,EAAE,MAAM,CAAC;IACpB,aAAa,CAAC,EAAE,MAAM,CAAC;IACvB,eAAe,CAAC,EAAE,MAAM,CAAC;CAC1B,CAAC;AAEF,sDAAsD;AACtD,MAAM,MAAM,GAAG,GAAG;IAChB,uCAAuC;IACvC,iBAAiB,CAAC,OAAO,EAAE,UAAU,GAAG,IAAI,CAAC;IAC7C,eAAe,CACb,IAAI,EAAE,UAAU,GAAG;QAAE,QAAQ,EAAE,MAAM,CAAC;QAAC,UAAU,CAAC,EAAE,OAAO,CAAC;QAAC,UAAU,EAAE,MAAM,CAAC;QAAC,OAAO,EAAE,OAAO,CAAA;KAAE,GAClG,IAAI,CAAC;CACT,CAAC;AAEF;;GAEG;AACH,MAAM,MAAM,cAAc,GAAG;IAAE,QAAQ,EAAE,MAAM,CAAA;CAAE,GAAG;IAAE,QAAQ,EAAE,MAAM,CAAA;CAAE,CAAC;AAEzE,qFAAqF;AACrF,MAAM,MAAM,iBAAiB,GAAG,MAAM,GAAG,YAAY,CAAC;AAEtD,MAAM,MAAM,OAAO,GAAG;IACpB,UAAU,IAAI,OAAO,CAAC,MAAM,GAAG,SAAS,CAAC,CAAC;IAC1C,uGAAuG;IACvG,YAAY,CAAC,MAAM,EAAE,MAAM,EAAE,IAAI,EAAE,iBAAiB,GAAG,OAAO,CAAC,MAAM,GAAG,SAAS,CAAC,CAAC;IACnF,cAAc,IAAI,qBAAqB,GAAG,SAAS,CAAC;IACpD,SAAS,CAAC,UAAU,EAAE,cAAc,GAAG,OAAO,CAAC,IAAI,CAAC,CAAC;CACtD,CAAC;AAEF,MAAM,MAAM,YAAY,GACpB,CAAC,gBAAgB,CAAC,QAAQ,CAAC,GAAG,MAAM,CAAC,GACrC,CAAC,gBAAgB,CAAC,QAAQ,CAAC,GAAG,MAAM,CAAC,GACrC,CAAC,gBAAgB,CAAC,SAAS,CAAC,GAAG,OAAO,CAAC,GACvC,CAAC,gBAAgB,CAAC,IAAI,CAAC,GAAG,EAAE,CAAC,GAE7B,CAAC,gBAAgB,CAAC,KAAK,CAAC,GAAG,GAAG,CAAC,GAC/B,gBAAgB,CAAC,MAAM,CAAC,GACxB,CAAC,gBAAgB,CAAC,SAAS,CAAC,GAAG,OAAO,CAAC,GAEvC,gBAAgB,CAAC,QAAQ,CAAC,CAAC;AAE/B;;;GAGG;AACH,MAAM,MAAM,qBAAqB,GAAG;IAClC,UAAU,EAAE,MAAM,CAAC;IACnB,qFAAqF;IACrF,eAAe,EAAE,MAAM,CAAC;IACxB,SAAS,CAAC,EAAE,MAAM,CAAC;IACnB,SAAS,CAAC,EAAE,MAAM,CAAC;IACnB,UAAU,CAAC,EAAE,MAAM,CAAC;CACrB,CAAC;AAEF;;GAEG;AACH,MAAM,MAAM,UAAU,GAAG,MAAM,CAAC,MAAM,EAAE,MAAM,GAAG,MAAM,GAAG,OAAO,GAAG,SAAS,CAAC,CAAC;AAE/E,MAAM,MAAM,gBAAgB,GAAG;IAC7B,OAAO,CAAC,IAAI,EAAE,UAAU,EAAE,IAAI,CAAC,EAAE,IAAI,GAAG,IAAI,CAAC;CAC9C,CAAC;AAEF;;GAEG;AACH,MAAM,MAAM,SAAS,GAAG;IACtB,UAAU,CAAC,CAAC,OAAO,EAAE,gBAAgB,GAAG,MAAM,CAAC,MAAM,CAAC,IAAI,EAAE,KAAK,CAAC,CAAC;IACnE,KAAK,CAAC,IAAI,MAAM,CAAC,MAAM,CAAC,IAAI,CAAC,CAAC;IAC9B,MAAM,CAAC,IAAI,MAAM,CAAC,MAAM,CAAC,IAAI,CAAC,CAAC;IAC/B,OAAO,CAAC,IAAI,MAAM,CAAC,MAAM,CAAC,IAAI,CAAC,CAAC;IAChC,KAAK,CAAC,IAAI,MAAM,CAAC,MAAM,CAAC,IAAI,CAAC,CAAC;IAC9B,QAAQ,CAAC,CAAC,UAAU,EAAE,MAAM,EAAE,UAAU,CAAC,EAAE,UAAU,EAAE,iBAAiB,CAAC,EAAE,UAAU,GAAG,IAAI,CAAC;IAC7F,KAAK,CAAC,CAAC,UAAU,EAAE,MAAM,EAAE,UAAU,CAAC,EAAE,MAAM,GAAG,IAAI,CAAC;IACtD,OAAO,CAAC,CAAC,IAAI,EAAE,MAAM,CAAC,MAAM,EAAE,MAAM,CAAC,EAAE,IAAI,CAAC,EAAE,IAAI,GAAG,IAAI,CAAC;IAC1D,OAAO,EAAE,OAAO,CAAC;IACjB,IAAI,EAAE,YAAY,EAAE,CAAC;CACtB,CAAC"}
1
+ {"version":3,"file":"ObservabilityExtension.d.ts","sourceRoot":"","sources":["../../../src/ObservabilityExtension.ts"],"names":[],"mappings":"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"}
@@ -81,7 +81,7 @@ export const contentCaptureAllowed = (_spaceId) => {
81
81
  /** The span `effect/ai` names for a streamed call; anything else is a single response. */
82
82
  const STREAM_SPAN_NAME = 'LanguageModel.streamText';
83
83
  /** Marker attributes identifying a GenAI span (per OTel GenAI semantic conventions). */
84
- const GEN_AI_MARKERS = ['gen_ai.system', 'gen_ai.request.model', 'gen_ai.response.model'];
84
+ const GEN_AI_MARKERS = ['gen_ai.provider.name', 'gen_ai.request.model', 'gen_ai.response.model'];
85
85
  /**
86
86
  * Session/content attributes stamped by `AiTelemetry.ATTRIBUTES` in `@dxos/ai` (not part of the
87
87
  * GenAI spec). Restated rather than imported because telemetry sits below the AI stack, not above
@@ -181,7 +181,7 @@ export class AiSpanProcessor {
181
181
  spanId: spanContext.spanId,
182
182
  parentSpanId: span.parentSpanContext?.spanId,
183
183
  spanName: span.name,
184
- provider: stringAttribute(attributes['gen_ai.system']),
184
+ provider: stringAttribute(attributes['gen_ai.provider.name']),
185
185
  model: stringAttribute(attributes['gen_ai.response.model'] ?? attributes['gen_ai.request.model']),
186
186
  sessionId: stringAttribute(attributes[SESSION_ID_ATTR]),
187
187
  parameters: modelParameters(attributes),
@@ -1 +1 @@
1
- {"version":3,"file":"AiObservability.js","sourceRoot":"","sources":["../../../../src/ai/AiObservability.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"AiObservability.js","sourceRoot":"","sources":["../../../../src/ai/AiObservability.ts"],"names":[],"mappings":"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"}
@@ -38,7 +38,7 @@ describe('AiSpanProcessor', () => {
38
38
  tracer
39
39
  .startSpan('LanguageModel.streamText', {
40
40
  attributes: {
41
- 'gen_ai.system': 'anthropic',
41
+ 'gen_ai.provider.name': 'anthropic',
42
42
  'gen_ai.request.model': 'claude-sonnet-5',
43
43
  'gen_ai.request.temperature': 0.5,
44
44
  'gen_ai.usage.input_tokens': 10,
@@ -68,7 +68,7 @@ describe('AiSpanProcessor', () => {
68
68
  test('reduces errors to the exception class', async ({ expect }) => {
69
69
  const { inferences, tracer } = await setup();
70
70
  const span = tracer.startSpan('LanguageModel.generateText', {
71
- attributes: { 'gen_ai.system': 'anthropic' },
71
+ attributes: { 'gen_ai.provider.name': 'anthropic' },
72
72
  });
73
73
  span.recordException(new TypeError('the user secret'));
74
74
  span.setStatus({ code: SpanStatusCode.ERROR, message: 'the user secret' });
@@ -81,7 +81,7 @@ describe('AiSpanProcessor', () => {
81
81
  tracer
82
82
  .startSpan('LanguageModel.generateText', {
83
83
  attributes: {
84
- 'gen_ai.system': 'anthropic',
84
+ 'gen_ai.provider.name': 'anthropic',
85
85
  'spaceId': PLAINTEXT_SPACE,
86
86
  'dxos.ai.input': JSON.stringify([{ role: 'user', content: 'hi' }]),
87
87
  'dxos.ai.output': '[{"role":"assist',
@@ -96,7 +96,7 @@ describe('AiSpanProcessor', () => {
96
96
  tracer
97
97
  .startSpan('LanguageModel.generateText', {
98
98
  attributes: {
99
- 'gen_ai.system': 'anthropic',
99
+ 'gen_ai.provider.name': 'anthropic',
100
100
  'spaceId': PLAINTEXT_SPACE,
101
101
  'dxos.ai.output': '[{"role":"assist',
102
102
  'dxos.ai.truncated': true,
@@ -110,7 +110,7 @@ describe('AiSpanProcessor', () => {
110
110
  tracer
111
111
  .startSpan('LanguageModel.generateText', {
112
112
  attributes: {
113
- 'gen_ai.system': 'anthropic',
113
+ 'gen_ai.provider.name': 'anthropic',
114
114
  'gen_ai.usage.input_tokens': 3,
115
115
  'spaceId': 'encrypted-space',
116
116
  'dxos.ai.cache_read_tokens': 11,
@@ -126,7 +126,7 @@ describe('AiSpanProcessor', () => {
126
126
  tracer
127
127
  .startSpan('LanguageModel.generateText', {
128
128
  attributes: {
129
- 'gen_ai.system': 'anthropic',
129
+ 'gen_ai.provider.name': 'anthropic',
130
130
  'gen_ai.usage.input_tokens': 10,
131
131
  'spaceId': 'encrypted-space',
132
132
  'dxos.ai.input': JSON.stringify([{ role: 'user', content: 'private' }]),
@@ -150,7 +150,7 @@ describe('AiSpanProcessor', () => {
150
150
  tracer
151
151
  .startSpan('LanguageModel.generateText', {
152
152
  attributes: {
153
- 'gen_ai.system': 'anthropic',
153
+ 'gen_ai.provider.name': 'anthropic',
154
154
  'gen_ai.usage.input_tokens': 10,
155
155
  'dxos.ai.input': JSON.stringify([{ role: 'user', content: 'private' }]),
156
156
  },
@@ -164,7 +164,7 @@ describe('AiSpanProcessor', () => {
164
164
  const { inferences, tracer } = await setup({ captureEnabled: () => false });
165
165
  tracer
166
166
  .startSpan('LanguageModel.generateText', {
167
- attributes: { 'gen_ai.system': 'anthropic', 'spaceId': PLAINTEXT_SPACE },
167
+ attributes: { 'gen_ai.provider.name': 'anthropic', 'spaceId': PLAINTEXT_SPACE },
168
168
  })
169
169
  .end();
170
170
  expect(inferences).toHaveLength(0);
@@ -172,7 +172,7 @@ describe('AiSpanProcessor', () => {
172
172
  test('reads the opt-in per span, so a mid-session toggle takes effect', async ({ expect }) => {
173
173
  let enabled = false;
174
174
  const { inferences, tracer } = await setup({ captureEnabled: () => enabled });
175
- const emit = () => tracer.startSpan('LanguageModel.generateText', { attributes: { 'gen_ai.system': 'a' } }).end();
175
+ const emit = () => tracer.startSpan('LanguageModel.generateText', { attributes: { 'gen_ai.provider.name': 'a' } }).end();
176
176
  emit();
177
177
  expect(inferences).toHaveLength(0);
178
178
  enabled = true;
@@ -247,7 +247,7 @@ describe('AiSpanProcessor', () => {
247
247
  ],
248
248
  });
249
249
  const span = provider.getTracer('test').startSpan('LanguageModel.generateText', {
250
- attributes: { 'gen_ai.system': 'anthropic' },
250
+ attributes: { 'gen_ai.provider.name': 'anthropic' },
251
251
  });
252
252
  expect(() => span.end()).not.toThrow();
253
253
  });
@@ -293,7 +293,7 @@ describe('AiSpanProcessor wired to @dxos/ai', () => {
293
293
  });
294
294
  const stubModel = LanguageModel.make({
295
295
  generateText: ({ span }) => Effect.sync(() => {
296
- Telemetry.addGenAIAnnotations(span, { system: 'anthropic', request: { model: 'test-model' } });
296
+ Telemetry.addGenAIAnnotations(span, { provider: { name: 'anthropic' }, request: { model: 'test-model' } });
297
297
  return [
298
298
  { type: 'text', text: 'hello' },
299
299
  {
@@ -1 +1 @@
1
- {"version":3,"file":"AiObservability.test.js","sourceRoot":"","sources":["../../../../src/ai/AiObservability.test.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"AiObservability.test.js","sourceRoot":"","sources":["../../../../src/ai/AiObservability.test.ts"],"names":[],"mappings":"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"}
@@ -30,7 +30,7 @@ describe('TailSampler', () => {
30
30
  });
31
31
  test('keeps a model call the ratio would have dropped', ({ expect }) => {
32
32
  const sampler = new TailSampler();
33
- expect(sampler.keep(span({ attributes: { 'gen_ai.system': 'anthropic' } }))).toEqual(true);
33
+ expect(sampler.keep(span({ attributes: { 'gen_ai.provider.name': 'anthropic' } }))).toEqual(true);
34
34
  });
35
35
  test('keeps a turn or tool-call span the ratio would have dropped', ({ expect }) => {
36
36
  expect(new TailSampler().keep(span({ attributes: { 'dxos.ai.kind': 'turn' } }))).toEqual(true);
@@ -1 +1 @@
1
- {"version":3,"file":"tail-sampling.test.js","sourceRoot":"","sources":["../../../../../src/extensions/otel/tail-sampling.test.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"tail-sampling.test.js","sourceRoot":"","sources":["../../../../../src/extensions/otel/tail-sampling.test.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,4 @@
1
+ import { type BeforeSendFn } from 'posthog-js';
2
+ /** Drops `$exception` events whose every exception is benign. */
3
+ export declare const dropBenignExceptions: BeforeSendFn;
4
+ //# sourceMappingURL=before-send.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"before-send.d.ts","sourceRoot":"","sources":["../../../../../src/extensions/posthog/before-send.ts"],"names":[],"mappings":"AAIA,OAAO,EAAE,KAAK,YAAY,EAAE,MAAM,YAAY,CAAC;AAQ/C,iEAAiE;AACjE,eAAO,MAAM,oBAAoB,EAAE,YAYlC,CAAC"}
@@ -0,0 +1,19 @@
1
+ //
2
+ // Copyright 2026 DXOS.org
3
+ //
4
+ /**
5
+ * Browser-raised errors with no stack and no effect on the user: a ResizeObserver callback that resized an element
6
+ * mid-delivery is reported this way, and the browser delivers the skipped notifications on the next frame.
7
+ */
8
+ const BENIGN_EXCEPTIONS = [/^ResizeObserver loop/];
9
+ /** Drops `$exception` events whose every exception is benign. */
10
+ export const dropBenignExceptions = (capture) => {
11
+ if (capture?.event !== '$exception') {
12
+ return capture;
13
+ }
14
+ const exceptions = capture.properties.$exception_list ?? [];
15
+ const benign = exceptions.length > 0 &&
16
+ exceptions.every(({ value }) => typeof value === 'string' && BENIGN_EXCEPTIONS.some((pattern) => pattern.test(value)));
17
+ return benign ? null : capture;
18
+ };
19
+ //# sourceMappingURL=before-send.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"before-send.js","sourceRoot":"","sources":["../../../../../src/extensions/posthog/before-send.ts"],"names":[],"mappings":"AAAA,EAAE;AACF,0BAA0B;AAC1B,EAAE;AAIF;;;GAGG;AACH,MAAM,iBAAiB,GAAG,CAAC,sBAAsB,CAAC,CAAC;AAEnD,iEAAiE;AACjE,MAAM,CAAC,MAAM,oBAAoB,GAAiB,CAAC,OAAO,EAAE,EAAE;IAC5D,IAAI,OAAO,EAAE,KAAK,KAAK,YAAY,EAAE,CAAC;QACpC,OAAO,OAAO,CAAC;IACjB,CAAC;IAED,MAAM,UAAU,GAA0B,OAAO,CAAC,UAAU,CAAC,eAAe,IAAI,EAAE,CAAC;IACnF,MAAM,MAAM,GACV,UAAU,CAAC,MAAM,GAAG,CAAC;QACrB,UAAU,CAAC,KAAK,CACd,CAAC,EAAE,KAAK,EAAE,EAAE,EAAE,CAAC,OAAO,KAAK,KAAK,QAAQ,IAAI,iBAAiB,CAAC,IAAI,CAAC,CAAC,OAAO,EAAE,EAAE,CAAC,OAAO,CAAC,IAAI,CAAC,KAAK,CAAC,CAAC,CACrG,CAAC;IACJ,OAAO,MAAM,CAAC,CAAC,CAAC,IAAI,CAAC,CAAC,CAAC,OAAO,CAAC;AACjC,CAAC,CAAC"}
@@ -0,0 +1,2 @@
1
+ export {};
2
+ //# sourceMappingURL=before-send.test.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"before-send.test.d.ts","sourceRoot":"","sources":["../../../../../src/extensions/posthog/before-send.test.ts"],"names":[],"mappings":""}