veryfront 0.1.246 → 0.1.248

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 (160) hide show
  1. package/esm/cli/mcp/tools/project-tools.d.ts +1 -1
  2. package/esm/cli/mcp/tools/scaffold-tools.d.ts +2 -2
  3. package/esm/cli/shared/server-startup.d.ts.map +1 -1
  4. package/esm/cli/shared/server-startup.js +8 -0
  5. package/esm/deno.d.ts +0 -9
  6. package/esm/deno.js +5 -12
  7. package/esm/src/agent/durable.d.ts +67 -0
  8. package/esm/src/agent/durable.d.ts.map +1 -1
  9. package/esm/src/agent/durable.js +134 -0
  10. package/esm/src/agent/index.d.ts +1 -1
  11. package/esm/src/agent/index.d.ts.map +1 -1
  12. package/esm/src/agent/index.js +1 -1
  13. package/esm/src/embedding/upload-loader.d.ts +2 -2
  14. package/esm/src/embedding/upload-loader.d.ts.map +1 -1
  15. package/esm/src/embedding/upload-loader.js +11 -48
  16. package/esm/src/errors/middleware/cli-error-boundary.js +1 -1
  17. package/esm/src/errors/middleware/http-error-boundary.js +1 -1
  18. package/esm/src/errors/tracing.d.ts +3 -3
  19. package/esm/src/errors/tracing.d.ts.map +1 -1
  20. package/esm/src/errors/tracing.js +3 -3
  21. package/esm/src/extensions/interfaces/index.d.ts +2 -2
  22. package/esm/src/extensions/interfaces/index.d.ts.map +1 -1
  23. package/esm/src/extensions/interfaces/node-compat.d.ts +68 -10
  24. package/esm/src/extensions/interfaces/node-compat.d.ts.map +1 -1
  25. package/esm/src/extensions/interfaces/tracing-exporter.d.ts +35 -1
  26. package/esm/src/extensions/interfaces/tracing-exporter.d.ts.map +1 -1
  27. package/esm/src/integrations/schema.d.ts +10 -10
  28. package/esm/src/mcp/index.d.ts +7 -2
  29. package/esm/src/mcp/index.d.ts.map +1 -1
  30. package/esm/src/mcp/index.js +7 -2
  31. package/esm/src/mcp/schemas/index.d.ts +1 -1
  32. package/esm/src/mcp/schemas/index.d.ts.map +1 -1
  33. package/esm/src/mcp/schemas/index.js +1 -1
  34. package/esm/src/mcp/schemas/mcp.schema.d.ts +13 -7
  35. package/esm/src/mcp/schemas/mcp.schema.d.ts.map +1 -1
  36. package/esm/src/mcp/schemas/mcp.schema.js +17 -7
  37. package/esm/src/mcp/server.d.ts +13 -0
  38. package/esm/src/mcp/server.d.ts.map +1 -1
  39. package/esm/src/mcp/server.js +43 -6
  40. package/esm/src/observability/auto-instrument/http-instrumentation.js +1 -1
  41. package/esm/src/observability/auto-instrument/react-instrumentation.js +1 -1
  42. package/esm/src/observability/instruments/build-instruments.d.ts +1 -1
  43. package/esm/src/observability/instruments/build-instruments.d.ts.map +1 -1
  44. package/esm/src/observability/instruments/cache-instruments.d.ts +1 -1
  45. package/esm/src/observability/instruments/cache-instruments.d.ts.map +1 -1
  46. package/esm/src/observability/instruments/data-instruments.d.ts +1 -1
  47. package/esm/src/observability/instruments/data-instruments.d.ts.map +1 -1
  48. package/esm/src/observability/instruments/error-instruments.d.ts +1 -1
  49. package/esm/src/observability/instruments/error-instruments.d.ts.map +1 -1
  50. package/esm/src/observability/instruments/http-instruments.d.ts +1 -1
  51. package/esm/src/observability/instruments/http-instruments.d.ts.map +1 -1
  52. package/esm/src/observability/instruments/instruments-factory.d.ts +1 -1
  53. package/esm/src/observability/instruments/instruments-factory.d.ts.map +1 -1
  54. package/esm/src/observability/instruments/memory-instruments.d.ts +1 -1
  55. package/esm/src/observability/instruments/memory-instruments.d.ts.map +1 -1
  56. package/esm/src/observability/instruments/render-instruments.d.ts +1 -1
  57. package/esm/src/observability/instruments/render-instruments.d.ts.map +1 -1
  58. package/esm/src/observability/instruments/rsc-instruments.d.ts +1 -1
  59. package/esm/src/observability/instruments/rsc-instruments.d.ts.map +1 -1
  60. package/esm/src/observability/metrics/manager.d.ts.map +1 -1
  61. package/esm/src/observability/metrics/manager.js +10 -2
  62. package/esm/src/observability/metrics/types.d.ts +1 -1
  63. package/esm/src/observability/metrics/types.d.ts.map +1 -1
  64. package/esm/src/observability/simple-metrics/otel-instruments.d.ts.map +1 -1
  65. package/esm/src/observability/simple-metrics/otel-instruments.js +7 -2
  66. package/esm/src/observability/simple-metrics/types.d.ts +1 -1
  67. package/esm/src/observability/simple-metrics/types.d.ts.map +1 -1
  68. package/esm/src/observability/tracing/api-shim.d.ts +177 -0
  69. package/esm/src/observability/tracing/api-shim.d.ts.map +1 -0
  70. package/esm/src/observability/tracing/api-shim.js +234 -0
  71. package/esm/src/observability/tracing/manager.d.ts.map +1 -1
  72. package/esm/src/observability/tracing/manager.js +29 -4
  73. package/esm/src/observability/tracing/otlp-setup.d.ts +12 -8
  74. package/esm/src/observability/tracing/otlp-setup.d.ts.map +1 -1
  75. package/esm/src/observability/tracing/otlp-setup.js +59 -136
  76. package/esm/src/observability/tracing/types.d.ts +1 -1
  77. package/esm/src/observability/tracing/types.d.ts.map +1 -1
  78. package/esm/src/platform/compat/kv/factory.d.ts.map +1 -1
  79. package/esm/src/platform/compat/kv/factory.js +15 -6
  80. package/esm/src/platform/compat/opaque-deps.d.ts +6 -5
  81. package/esm/src/platform/compat/opaque-deps.d.ts.map +1 -1
  82. package/esm/src/platform/compat/opaque-deps.js +13 -37
  83. package/esm/src/proxy/tracing.d.ts +7 -2
  84. package/esm/src/proxy/tracing.d.ts.map +1 -1
  85. package/esm/src/proxy/tracing.js +31 -96
  86. package/esm/src/rendering/rsc/client-module-strategy.d.ts.map +1 -1
  87. package/esm/src/rendering/rsc/client-module-strategy.js +9 -1
  88. package/esm/src/server/bootstrap.d.ts.map +1 -1
  89. package/esm/src/server/bootstrap.js +27 -1
  90. package/esm/src/server/context/request-context.d.ts.map +1 -1
  91. package/esm/src/server/context/request-context.js +7 -4
  92. package/esm/src/server/dev-server/middleware.js +1 -1
  93. package/esm/src/server/handlers/dev/files/dev-file.handler.d.ts.map +1 -1
  94. package/esm/src/server/handlers/dev/files/dev-file.handler.js +4 -14
  95. package/esm/src/server/services/rendering/ssr.service.d.ts.map +1 -1
  96. package/esm/src/server/services/rendering/ssr.service.js +4 -1
  97. package/esm/src/server/services/rsc/endpoints/rsc-bundles.generated.js +1 -1
  98. package/esm/src/utils/version-constant.d.ts +1 -1
  99. package/esm/src/utils/version-constant.js +1 -1
  100. package/esm/src/workflow/claude-code/workspace-sync.d.ts +17 -2
  101. package/esm/src/workflow/claude-code/workspace-sync.d.ts.map +1 -1
  102. package/esm/src/workflow/claude-code/workspace-sync.js +106 -19
  103. package/esm/src/workflow/schemas/workflow.schema.d.ts +3 -3
  104. package/package.json +1 -9
  105. package/src/cli/shared/server-startup.ts +8 -0
  106. package/src/deno.js +5 -12
  107. package/src/src/agent/durable.ts +237 -0
  108. package/src/src/agent/index.ts +4 -0
  109. package/src/src/cache/backends/factory.ts +1 -1
  110. package/src/src/cache/backends/redis.ts +1 -1
  111. package/src/src/cache/keys/utils.ts +1 -1
  112. package/src/src/cache/registry.ts +1 -1
  113. package/src/src/data/static-paths-fetcher.ts +1 -1
  114. package/src/src/embedding/upload-loader.ts +14 -63
  115. package/src/src/errors/middleware/cli-error-boundary.ts +1 -1
  116. package/src/src/errors/middleware/http-error-boundary.ts +1 -1
  117. package/src/src/errors/tracing.ts +4 -4
  118. package/src/src/extensions/interfaces/index.ts +7 -2
  119. package/src/src/extensions/interfaces/node-compat.ts +74 -10
  120. package/src/src/extensions/interfaces/tracing-exporter.ts +36 -1
  121. package/src/src/mcp/index.ts +7 -2
  122. package/src/src/mcp/schemas/index.ts +1 -0
  123. package/src/src/mcp/schemas/mcp.schema.ts +20 -7
  124. package/src/src/mcp/server.ts +60 -6
  125. package/src/src/observability/auto-instrument/http-instrumentation.ts +1 -1
  126. package/src/src/observability/auto-instrument/react-instrumentation.ts +1 -1
  127. package/src/src/observability/auto-instrument/wrappers.ts +1 -1
  128. package/src/src/observability/instruments/build-instruments.ts +1 -1
  129. package/src/src/observability/instruments/cache-instruments.ts +6 -1
  130. package/src/src/observability/instruments/data-instruments.ts +1 -1
  131. package/src/src/observability/instruments/error-instruments.ts +1 -1
  132. package/src/src/observability/instruments/http-instruments.ts +6 -1
  133. package/src/src/observability/instruments/instruments-factory.ts +1 -1
  134. package/src/src/observability/instruments/memory-instruments.ts +5 -1
  135. package/src/src/observability/instruments/render-instruments.ts +1 -1
  136. package/src/src/observability/instruments/rsc-instruments.ts +1 -1
  137. package/src/src/observability/metrics/manager.ts +11 -3
  138. package/src/src/observability/metrics/types.ts +7 -1
  139. package/src/src/observability/simple-metrics/otel-instruments.ts +7 -2
  140. package/src/src/observability/simple-metrics/types.ts +1 -1
  141. package/src/src/observability/tracing/api-shim.ts +409 -0
  142. package/src/src/observability/tracing/manager.ts +29 -4
  143. package/src/src/observability/tracing/otlp-setup.ts +76 -168
  144. package/src/src/observability/tracing/types.ts +1 -1
  145. package/src/src/platform/compat/kv/factory.ts +18 -7
  146. package/src/src/platform/compat/opaque-deps.ts +16 -44
  147. package/src/src/proxy/tracing.ts +43 -117
  148. package/src/src/rendering/rsc/client-module-strategy.ts +9 -1
  149. package/src/src/server/bootstrap.ts +38 -1
  150. package/src/src/server/context/request-context.ts +10 -7
  151. package/src/src/server/dev-server/middleware.ts +1 -1
  152. package/src/src/server/handlers/dev/files/dev-file.handler.ts +4 -22
  153. package/src/src/server/services/rendering/ssr.service.ts +4 -1
  154. package/src/src/server/services/rsc/endpoints/rsc-bundles.generated.ts +1 -1
  155. package/src/src/utils/version-constant.ts +1 -1
  156. package/src/src/workflow/claude-code/workspace-sync.ts +109 -20
  157. package/esm/src/utils/logger/trace-bridge.d.ts +0 -11
  158. package/esm/src/utils/logger/trace-bridge.d.ts.map +0 -1
  159. package/esm/src/utils/logger/trace-bridge.js +0 -12
  160. package/src/src/utils/logger/trace-bridge.ts +0 -14
@@ -1,4 +1,4 @@
1
- import type { Counter, Histogram, Meter } from "@opentelemetry/api";
1
+ import type { Counter, Histogram, Meter } from "../tracing/api-shim.js";
2
2
  import type { MetricsConfig } from "../metrics/types.js";
3
3
  export interface RscInstruments {
4
4
  rscRenderDuration: Histogram | null;
@@ -1 +1 @@
1
- {"version":3,"file":"rsc-instruments.d.ts","sourceRoot":"","sources":["../../../../src/src/observability/instruments/rsc-instruments.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,OAAO,EAAE,SAAS,EAAE,KAAK,EAAE,MAAM,oBAAoB,CAAC;AAEpE,OAAO,KAAK,EAAE,aAAa,EAAE,MAAM,qBAAqB,CAAC;AAEzD,MAAM,WAAW,cAAc;IAC7B,iBAAiB,EAAE,SAAS,GAAG,IAAI,CAAC;IACpC,iBAAiB,EAAE,SAAS,GAAG,IAAI,CAAC;IACpC,kBAAkB,EAAE,OAAO,GAAG,IAAI,CAAC;IACnC,cAAc,EAAE,OAAO,GAAG,IAAI,CAAC;IAC/B,gBAAgB,EAAE,OAAO,GAAG,IAAI,CAAC;IACjC,gBAAgB,EAAE,OAAO,GAAG,IAAI,CAAC;IACjC,eAAe,EAAE,OAAO,GAAG,IAAI,CAAC;CACjC;AAED,wBAAgB,oBAAoB,CAClC,KAAK,EAAE,KAAK,EACZ,MAAM,EAAE,aAAa,GACpB,cAAc,CA+ChB"}
1
+ {"version":3,"file":"rsc-instruments.d.ts","sourceRoot":"","sources":["../../../../src/src/observability/instruments/rsc-instruments.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,OAAO,EAAE,SAAS,EAAE,KAAK,EAAE,MAAM,wBAAwB,CAAC;AAExE,OAAO,KAAK,EAAE,aAAa,EAAE,MAAM,qBAAqB,CAAC;AAEzD,MAAM,WAAW,cAAc;IAC7B,iBAAiB,EAAE,SAAS,GAAG,IAAI,CAAC;IACpC,iBAAiB,EAAE,SAAS,GAAG,IAAI,CAAC;IACpC,kBAAkB,EAAE,OAAO,GAAG,IAAI,CAAC;IACnC,cAAc,EAAE,OAAO,GAAG,IAAI,CAAC;IAC/B,gBAAgB,EAAE,OAAO,GAAG,IAAI,CAAC;IACjC,gBAAgB,EAAE,OAAO,GAAG,IAAI,CAAC;IACjC,eAAe,EAAE,OAAO,GAAG,IAAI,CAAC;CACjC;AAED,wBAAgB,oBAAoB,CAClC,KAAK,EAAE,KAAK,EACZ,MAAM,EAAE,aAAa,GACpB,cAAc,CA+ChB"}
@@ -1 +1 @@
1
- {"version":3,"file":"manager.d.ts","sourceRoot":"","sources":["../../../../src/src/observability/metrics/manager.ts"],"names":[],"mappings":"AAAA;;;GAGG;AAIH,OAAO,KAAK,EAAE,cAAc,EAAE,MAAM,iCAAiC,CAAC;AAGtE,OAAO,EAAE,eAAe,EAAE,MAAM,eAAe,CAAC;AAChD,OAAO,KAAK,EAAE,aAAa,EAAsD,MAAM,YAAY,CAAC;AAKpG;;;GAGG;AACH,qBAAa,cAAc;IACzB,OAAO,CAAC,WAAW,CAAS;IAC5B,OAAO,CAAC,KAAK,CAAsB;IACnC,OAAO,CAAC,GAAG,CAAiC;IAC5C,OAAO,CAAC,WAAW,CAAqD;IACxE,OAAO,CAAC,YAAY,CAAqD;IACzE,OAAO,CAAC,QAAQ,CAA4D;IAE5E,OAAO,CAAC,sBAAsB;IAqCxB,UAAU,CAAC,MAAM,GAAE,OAAO,CAAC,aAAa,CAAM,EAAE,OAAO,CAAC,EAAE,cAAc,GAAG,OAAO,CAAC,IAAI,CAAC;IAgC9F,SAAS,IAAI,OAAO;IAIpB,WAAW,IAAI,eAAe,GAAG,IAAI;IAIrC,QAAQ,IAAI;QAAE,WAAW,EAAE,OAAO,CAAC;QAAC,SAAS,EAAE,MAAM,CAAC;QAAC,cAAc,EAAE,MAAM,CAAA;KAAE;IAQ/E,QAAQ,IAAI,IAAI;CASjB;AAGD,eAAO,MAAM,cAAc,gBAAuB,CAAC"}
1
+ {"version":3,"file":"manager.d.ts","sourceRoot":"","sources":["../../../../src/src/observability/metrics/manager.ts"],"names":[],"mappings":"AAAA;;;GAGG;AAKH,OAAO,KAAK,EAAE,cAAc,EAAE,MAAM,iCAAiC,CAAC;AAGtE,OAAO,EAAE,eAAe,EAAE,MAAM,eAAe,CAAC;AAChD,OAAO,KAAK,EAAE,aAAa,EAAsD,MAAM,YAAY,CAAC;AAKpG;;;GAGG;AACH,qBAAa,cAAc;IACzB,OAAO,CAAC,WAAW,CAAS;IAC5B,OAAO,CAAC,KAAK,CAAsB;IACnC,OAAO,CAAC,GAAG,CAAiC;IAC5C,OAAO,CAAC,WAAW,CAAqD;IACxE,OAAO,CAAC,YAAY,CAAqD;IACzE,OAAO,CAAC,QAAQ,CAA4D;IAE5E,OAAO,CAAC,sBAAsB;IAqCxB,UAAU,CAAC,MAAM,GAAE,OAAO,CAAC,aAAa,CAAM,EAAE,OAAO,CAAC,EAAE,cAAc,GAAG,OAAO,CAAC,IAAI,CAAC;IAuC9F,SAAS,IAAI,OAAO;IAIpB,WAAW,IAAI,eAAe,GAAG,IAAI;IAIrC,QAAQ,IAAI;QAAE,WAAW,EAAE,OAAO,CAAC;QAAC,SAAS,EAAE,MAAM,CAAC;QAAC,cAAc,EAAE,MAAM,CAAA;KAAE;IAQ/E,QAAQ,IAAI,IAAI;CASjB;AAGD,eAAO,MAAM,cAAc,gBAAuB,CAAC"}
@@ -2,6 +2,7 @@
2
2
  * Metrics Manager
3
3
  * Main OpenTelemetry metrics initialization and management
4
4
  */
5
+ import { getGlobalMetricsAPI } from "../tracing/api-shim.js";
5
6
  import { serverLogger } from "../../utils/index.js";
6
7
  import { loadConfig } from "./config.js";
7
8
  import { initializeInstruments } from "../instruments/index.js";
@@ -67,8 +68,15 @@ export class MetricsManager {
67
68
  return;
68
69
  }
69
70
  try {
70
- this.api = await import("@opentelemetry/api");
71
- this.meter = this.api.metrics.getMeter(finalConfig.prefix, RUNTIME_VERSION);
71
+ // The metrics API is injected by ext-opentelemetry via setGlobalMetricsAPI().
72
+ // When the extension is not active, metrics collection is disabled.
73
+ const metricsApi = getGlobalMetricsAPI();
74
+ if (!metricsApi) {
75
+ logger.debug("No metrics API available — metrics collection disabled");
76
+ return;
77
+ }
78
+ this.api = { metrics: metricsApi };
79
+ this.meter = metricsApi.getMeter(finalConfig.prefix, RUNTIME_VERSION);
72
80
  this.instruments = initializeInstruments(this.meter, finalConfig, this.runtimeState);
73
81
  this.recorder.instruments = this.instruments;
74
82
  logger.info("OpenTelemetry metrics initialized", {
@@ -2,7 +2,7 @@
2
2
  * Metrics Types
3
3
  * Type definitions for OpenTelemetry metrics system
4
4
  */
5
- import type { Counter, Histogram, Meter, ObservableGauge, UpDownCounter } from "@opentelemetry/api";
5
+ import type { Counter, Histogram, Meter, ObservableGauge, UpDownCounter } from "../tracing/api-shim.js";
6
6
  export interface OpenTelemetryAPI {
7
7
  metrics: {
8
8
  getMeter(name: string | undefined, version?: string): Meter;
@@ -1 +1 @@
1
- {"version":3,"file":"types.d.ts","sourceRoot":"","sources":["../../../../src/src/observability/metrics/types.ts"],"names":[],"mappings":"AAAA;;;GAGG;AAEH,OAAO,KAAK,EAAE,OAAO,EAAE,SAAS,EAAE,KAAK,EAAE,eAAe,EAAE,aAAa,EAAE,MAAM,oBAAoB,CAAC;AAEpG,MAAM,WAAW,gBAAgB;IAC/B,OAAO,EAAE;QACP,QAAQ,CAAC,IAAI,EAAE,MAAM,GAAG,SAAS,EAAE,OAAO,CAAC,EAAE,MAAM,GAAG,KAAK,CAAC;KAC7D,CAAC;CACH;AAED,MAAM,WAAW,kBAAkB;IACjC,kBAAkB,EAAE,OAAO,GAAG,IAAI,CAAC;IACnC,mBAAmB,EAAE,SAAS,GAAG,IAAI,CAAC;IACtC,kBAAkB,EAAE,aAAa,GAAG,IAAI,CAAC;IAEzC,eAAe,EAAE,OAAO,GAAG,IAAI,CAAC;IAChC,eAAe,EAAE,OAAO,GAAG,IAAI,CAAC;IAChC,gBAAgB,EAAE,OAAO,GAAG,IAAI,CAAC;IACjC,eAAe,EAAE,OAAO,GAAG,IAAI,CAAC;IAChC,sBAAsB,EAAE,OAAO,GAAG,IAAI,CAAC;IACvC,cAAc,EAAE,eAAe,GAAG,IAAI,CAAC;IAEvC,cAAc,EAAE,SAAS,GAAG,IAAI,CAAC;IACjC,aAAa,EAAE,OAAO,GAAG,IAAI,CAAC;IAC9B,kBAAkB,EAAE,OAAO,GAAG,IAAI,CAAC;IAEnC,iBAAiB,EAAE,SAAS,GAAG,IAAI,CAAC;IACpC,iBAAiB,EAAE,SAAS,GAAG,IAAI,CAAC;IACpC,kBAAkB,EAAE,OAAO,GAAG,IAAI,CAAC;IACnC,cAAc,EAAE,OAAO,GAAG,IAAI,CAAC;IAC/B,gBAAgB,EAAE,OAAO,GAAG,IAAI,CAAC;IACjC,gBAAgB,EAAE,OAAO,GAAG,IAAI,CAAC;IACjC,eAAe,EAAE,OAAO,GAAG,IAAI,CAAC;IAEhC,aAAa,EAAE,SAAS,GAAG,IAAI,CAAC;IAChC,mBAAmB,EAAE,SAAS,GAAG,IAAI,CAAC;IACtC,aAAa,EAAE,OAAO,GAAG,IAAI,CAAC;IAE9B,iBAAiB,EAAE,SAAS,GAAG,IAAI,CAAC;IACpC,gBAAgB,EAAE,OAAO,GAAG,IAAI,CAAC;IACjC,qBAAqB,EAAE,OAAO,GAAG,IAAI,CAAC;IAEtC,oBAAoB,EAAE,OAAO,GAAG,IAAI,CAAC;IACrC,sBAAsB,EAAE,OAAO,GAAG,IAAI,CAAC;IAEvC,gBAAgB,EAAE,eAAe,GAAG,IAAI,CAAC;IACzC,cAAc,EAAE,eAAe,GAAG,IAAI,CAAC;IACvC,cAAc,EAAE,eAAe,GAAG,IAAI,CAAC;IACvC,gBAAgB,EAAE,eAAe,GAAG,IAAI,CAAC;IAEzC,YAAY,EAAE,OAAO,GAAG,IAAI,CAAC;CAC9B;AAED,MAAM,WAAW,aAAa;IAC5B,OAAO,EAAE,OAAO,CAAC;IACjB,QAAQ,EAAE,YAAY,GAAG,MAAM,GAAG,SAAS,CAAC;IAC5C,QAAQ,CAAC,EAAE,MAAM,CAAC;IAClB,MAAM,CAAC,EAAE,MAAM,CAAC;IAChB,eAAe,CAAC,EAAE,MAAM,CAAC;IACzB,KAAK,CAAC,EAAE,OAAO,CAAC;CACjB;AAED,MAAM,WAAW,YAAY;IAC3B,SAAS,EAAE,MAAM,CAAC;IAClB,cAAc,EAAE,MAAM,CAAC;CACxB;AAED,MAAM,WAAW,WAAW;IAC1B,GAAG,EAAE,MAAM,CAAC;IACZ,QAAQ,EAAE,MAAM,CAAC;IACjB,SAAS,EAAE,MAAM,CAAC;CACnB"}
1
+ {"version":3,"file":"types.d.ts","sourceRoot":"","sources":["../../../../src/src/observability/metrics/types.ts"],"names":[],"mappings":"AAAA;;;GAGG;AAEH,OAAO,KAAK,EACV,OAAO,EACP,SAAS,EACT,KAAK,EACL,eAAe,EACf,aAAa,EACd,MAAM,wBAAwB,CAAC;AAEhC,MAAM,WAAW,gBAAgB;IAC/B,OAAO,EAAE;QACP,QAAQ,CAAC,IAAI,EAAE,MAAM,GAAG,SAAS,EAAE,OAAO,CAAC,EAAE,MAAM,GAAG,KAAK,CAAC;KAC7D,CAAC;CACH;AAED,MAAM,WAAW,kBAAkB;IACjC,kBAAkB,EAAE,OAAO,GAAG,IAAI,CAAC;IACnC,mBAAmB,EAAE,SAAS,GAAG,IAAI,CAAC;IACtC,kBAAkB,EAAE,aAAa,GAAG,IAAI,CAAC;IAEzC,eAAe,EAAE,OAAO,GAAG,IAAI,CAAC;IAChC,eAAe,EAAE,OAAO,GAAG,IAAI,CAAC;IAChC,gBAAgB,EAAE,OAAO,GAAG,IAAI,CAAC;IACjC,eAAe,EAAE,OAAO,GAAG,IAAI,CAAC;IAChC,sBAAsB,EAAE,OAAO,GAAG,IAAI,CAAC;IACvC,cAAc,EAAE,eAAe,GAAG,IAAI,CAAC;IAEvC,cAAc,EAAE,SAAS,GAAG,IAAI,CAAC;IACjC,aAAa,EAAE,OAAO,GAAG,IAAI,CAAC;IAC9B,kBAAkB,EAAE,OAAO,GAAG,IAAI,CAAC;IAEnC,iBAAiB,EAAE,SAAS,GAAG,IAAI,CAAC;IACpC,iBAAiB,EAAE,SAAS,GAAG,IAAI,CAAC;IACpC,kBAAkB,EAAE,OAAO,GAAG,IAAI,CAAC;IACnC,cAAc,EAAE,OAAO,GAAG,IAAI,CAAC;IAC/B,gBAAgB,EAAE,OAAO,GAAG,IAAI,CAAC;IACjC,gBAAgB,EAAE,OAAO,GAAG,IAAI,CAAC;IACjC,eAAe,EAAE,OAAO,GAAG,IAAI,CAAC;IAEhC,aAAa,EAAE,SAAS,GAAG,IAAI,CAAC;IAChC,mBAAmB,EAAE,SAAS,GAAG,IAAI,CAAC;IACtC,aAAa,EAAE,OAAO,GAAG,IAAI,CAAC;IAE9B,iBAAiB,EAAE,SAAS,GAAG,IAAI,CAAC;IACpC,gBAAgB,EAAE,OAAO,GAAG,IAAI,CAAC;IACjC,qBAAqB,EAAE,OAAO,GAAG,IAAI,CAAC;IAEtC,oBAAoB,EAAE,OAAO,GAAG,IAAI,CAAC;IACrC,sBAAsB,EAAE,OAAO,GAAG,IAAI,CAAC;IAEvC,gBAAgB,EAAE,eAAe,GAAG,IAAI,CAAC;IACzC,cAAc,EAAE,eAAe,GAAG,IAAI,CAAC;IACvC,cAAc,EAAE,eAAe,GAAG,IAAI,CAAC;IACvC,gBAAgB,EAAE,eAAe,GAAG,IAAI,CAAC;IAEzC,YAAY,EAAE,OAAO,GAAG,IAAI,CAAC;CAC9B;AAED,MAAM,WAAW,aAAa;IAC5B,OAAO,EAAE,OAAO,CAAC;IACjB,QAAQ,EAAE,YAAY,GAAG,MAAM,GAAG,SAAS,CAAC;IAC5C,QAAQ,CAAC,EAAE,MAAM,CAAC;IAClB,MAAM,CAAC,EAAE,MAAM,CAAC;IAChB,eAAe,CAAC,EAAE,MAAM,CAAC;IACzB,KAAK,CAAC,EAAE,OAAO,CAAC;CACjB;AAED,MAAM,WAAW,YAAY;IAC3B,SAAS,EAAE,MAAM,CAAC;IAClB,cAAc,EAAE,MAAM,CAAC;CACxB;AAED,MAAM,WAAW,WAAW;IAC1B,GAAG,EAAE,MAAM,CAAC;IACZ,QAAQ,EAAE,MAAM,CAAC;IACjB,SAAS,EAAE,MAAM,CAAC;CACnB"}
@@ -1 +1 @@
1
- {"version":3,"file":"otel-instruments.d.ts","sourceRoot":"","sources":["../../../../src/src/observability/simple-metrics/otel-instruments.ts"],"names":[],"mappings":"AAAA;;;GAGG;AAKH,OAAO,KAAK,EAAE,eAAe,EAAE,MAAM,YAAY,CAAC;AAKlD,wBAAgB,WAAW,CAAC,OAAO,EAAE,MAAM,EAAE,KAAK,CAAC,EAAE,OAAO,GAAG,IAAI,CAMlE;AAED,wBAAsB,qBAAqB,IAAI,OAAO,CAAC,IAAI,CAAC,CA0C3D;AAED,wBAAsB,iBAAiB,CACrC,SAAS,EAAE,MAAM,IAAI,GAAG,OAAO,CAAC,IAAI,CAAC,EACrC,YAAY,EAAE,MAAM,GACnB,OAAO,CAAC,IAAI,CAAC,CAOf;AAED,wBAAgB,kBAAkB,IAAI,eAAe,CAEpD;AAED,wBAAgB,oBAAoB,IAAI,IAAI,CAM3C"}
1
+ {"version":3,"file":"otel-instruments.d.ts","sourceRoot":"","sources":["../../../../src/src/observability/simple-metrics/otel-instruments.ts"],"names":[],"mappings":"AAAA;;;GAGG;AAMH,OAAO,KAAK,EAAE,eAAe,EAAE,MAAM,YAAY,CAAC;AAKlD,wBAAgB,WAAW,CAAC,OAAO,EAAE,MAAM,EAAE,KAAK,CAAC,EAAE,OAAO,GAAG,IAAI,CAMlE;AAED,wBAAsB,qBAAqB,IAAI,OAAO,CAAC,IAAI,CAAC,CA8C3D;AAED,wBAAsB,iBAAiB,CACrC,SAAS,EAAE,MAAM,IAAI,GAAG,OAAO,CAAC,IAAI,CAAC,EACrC,YAAY,EAAE,MAAM,GACnB,OAAO,CAAC,IAAI,CAAC,CAOf;AAED,wBAAgB,kBAAkB,IAAI,eAAe,CAEpD;AAED,wBAAgB,oBAAoB,IAAI,IAAI,CAM3C"}
@@ -5,6 +5,7 @@
5
5
  import { isDeno } from "../../platform/compat/runtime.js";
6
6
  import { serverLogger as logger } from "../../utils/index.js";
7
7
  import { VERSION } from "../../utils/version.js";
8
+ import { getGlobalMetricsAPI } from "../tracing/api-shim.js";
8
9
  let otelInitialized = false;
9
10
  const otel = {};
10
11
  export function safeLogWarn(message, error) {
@@ -22,8 +23,12 @@ export async function ensureOtelInstruments() {
22
23
  if (!isDeno)
23
24
  return;
24
25
  try {
25
- const { metrics } = await import("@opentelemetry/api");
26
- const meter = metrics.getMeter("veryfront", VERSION);
26
+ // The metrics API is injected by ext-opentelemetry via setGlobalMetricsAPI().
27
+ // When the extension is not active, the meter is unavailable and we return.
28
+ const metricsApi = getGlobalMetricsAPI();
29
+ if (!metricsApi)
30
+ return;
31
+ const meter = metricsApi.getMeter("veryfront", VERSION);
27
32
  otel.meter = meter;
28
33
  otel.ssrHistogram = meter.createHistogram("veryfront.ssr.duration", {
29
34
  description: "SSR render duration (ms)",
@@ -2,7 +2,7 @@
2
2
  * Metrics type definitions for Veryfront
3
3
  * @module
4
4
  **************************************************/
5
- import type { Counter, Histogram, Meter } from "@opentelemetry/api";
5
+ import type { Counter, Histogram, Meter } from "../tracing/api-shim.js";
6
6
  export type RSCRequestKind = "manifest" | "page" | "stream" | "action" | "error" | "flight_page";
7
7
  export interface ObservabilityMetrics {
8
8
  recordRender: (durationMs: number) => void;
@@ -1 +1 @@
1
- {"version":3,"file":"types.d.ts","sourceRoot":"","sources":["../../../../src/src/observability/simple-metrics/types.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"types.d.ts","sourceRoot":"","sources":["../../../../src/src/observability/simple-metrics/types.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,177 @@
1
+ /**
2
+ * Thin in-process shim for `@opentelemetry/api`.
3
+ *
4
+ * Core files that previously imported directly from `@opentelemetry/api` now
5
+ * import from this module. When the `ext-opentelemetry` extension is present
6
+ * the real SDK provider is wired in via `setGlobalTracerProvider`; otherwise
7
+ * every call falls back to a no-op implementation so the core boots without the
8
+ * extension installed.
9
+ *
10
+ * **Tracing types and constants** (exported for call-site use):
11
+ * `Span`, `Tracer`, `TracerProvider`, `Context`, `TextMapPropagator`
12
+ * `SpanKind`, `SpanStatusCode`
13
+ *
14
+ * **Metrics types** (re-exported structural shapes for the metrics subsystem;
15
+ * not backed by a live SDK — the metrics subsystem is wired separately):
16
+ * `Meter`, `Counter`, `Histogram`, `ObservableGauge`, `UpDownCounter`,
17
+ * `ObservableResult`
18
+ *
19
+ * @module observability/tracing/api-shim
20
+ */
21
+ export type AttributeValue = string | number | boolean | undefined;
22
+ export interface Span {
23
+ setAttribute(key: string, value: AttributeValue): Span;
24
+ setAttributes(attrs: Record<string, AttributeValue>): Span;
25
+ setStatus(status: {
26
+ code: number;
27
+ message?: string;
28
+ }): Span;
29
+ recordException(err: unknown): void;
30
+ addEvent(name: string, attrs?: Record<string, AttributeValue>): Span;
31
+ end(endTime?: number): void;
32
+ spanContext(): SpanContext;
33
+ updateName(name: string): void;
34
+ }
35
+ export interface SpanContext {
36
+ traceId: string;
37
+ spanId: string;
38
+ traceFlags: number;
39
+ }
40
+ export interface Tracer {
41
+ startSpan(name: string, options?: {
42
+ kind?: number;
43
+ attributes?: Record<string, AttributeValue>;
44
+ }, context?: Context): Span;
45
+ startActiveSpan<T>(name: string, fn: (span: Span) => T): T;
46
+ startActiveSpan<T>(name: string, options: {
47
+ kind?: number;
48
+ attributes?: Record<string, AttributeValue>;
49
+ }, fn: (span: Span) => T): T;
50
+ startActiveSpan<T>(name: string, options: {
51
+ kind?: number;
52
+ attributes?: Record<string, AttributeValue>;
53
+ }, context: Context, fn: (span: Span) => T): T;
54
+ }
55
+ export interface TracerProvider {
56
+ getTracer(name: string, version?: string): Tracer;
57
+ }
58
+ export interface Context {
59
+ getValue(key: symbol): unknown;
60
+ setValue(key: symbol, value: unknown): Context;
61
+ deleteValue(key: symbol): Context;
62
+ }
63
+ export interface TextMapGetter<C = Record<string, string>> {
64
+ keys(carrier: C): string[];
65
+ get(carrier: C, key: string): string | string[] | undefined;
66
+ }
67
+ export interface TextMapSetter<C = Record<string, string>> {
68
+ set(carrier: C, key: string, value: string): void;
69
+ }
70
+ export interface TextMapPropagator {
71
+ inject(context: Context, carrier: unknown, setter?: TextMapSetter<unknown>): void;
72
+ extract(context: Context, carrier: unknown, getter?: TextMapGetter<unknown>): Context;
73
+ fields(): string[];
74
+ }
75
+ export declare const SpanKind: {
76
+ readonly INTERNAL: 0;
77
+ readonly SERVER: 1;
78
+ readonly CLIENT: 2;
79
+ readonly PRODUCER: 3;
80
+ readonly CONSUMER: 4;
81
+ };
82
+ export type SpanKind = typeof SpanKind[keyof typeof SpanKind];
83
+ export declare const SpanStatusCode: {
84
+ readonly UNSET: 0;
85
+ readonly OK: 1;
86
+ readonly ERROR: 2;
87
+ };
88
+ export type SpanStatusCode = typeof SpanStatusCode[keyof typeof SpanStatusCode];
89
+ export interface ObservableResult {
90
+ observe(value: number, attributes?: Record<string, AttributeValue>): void;
91
+ }
92
+ export interface Counter {
93
+ add(value: number, attributes?: Record<string, AttributeValue>): void;
94
+ }
95
+ export interface UpDownCounter {
96
+ add(value: number, attributes?: Record<string, AttributeValue>): void;
97
+ }
98
+ export interface Histogram {
99
+ record(value: number, attributes?: Record<string, AttributeValue>): void;
100
+ }
101
+ export interface ObservableGauge {
102
+ addCallback(callback: (result: ObservableResult) => void): void;
103
+ }
104
+ export interface Meter {
105
+ createCounter(name: string, options?: {
106
+ description?: string;
107
+ unit?: string;
108
+ }): Counter;
109
+ createUpDownCounter(name: string, options?: {
110
+ description?: string;
111
+ unit?: string;
112
+ }): UpDownCounter;
113
+ createHistogram(name: string, options?: {
114
+ description?: string;
115
+ unit?: string;
116
+ advice?: {
117
+ explicitBucketBoundaries?: number[];
118
+ };
119
+ }): Histogram;
120
+ createObservableGauge(name: string, options?: {
121
+ description?: string;
122
+ unit?: string;
123
+ }): ObservableGauge;
124
+ getMeter?: never;
125
+ }
126
+ export interface MetricsAPI {
127
+ getMeter(name: string | undefined, version?: string): Meter;
128
+ }
129
+ /**
130
+ * Register the real OTel trace API's span accessors. Called by the
131
+ * ext-opentelemetry extension after it wires the SDK so that the shim's
132
+ * `trace.getActiveSpan()` / `trace.getSpan()` can return real spans.
133
+ */
134
+ export declare function setGlobalActiveSpanAccessor(accessor: {
135
+ getActiveSpan(): Span | undefined;
136
+ getSpan(ctx: Context): Span | undefined;
137
+ }): void;
138
+ /**
139
+ * Wire in the real SDK TracerProvider.
140
+ * Called from `src/server/bootstrap.ts` after `orchestrateExtensions()` runs.
141
+ */
142
+ export declare function setGlobalTracerProvider(p: TracerProvider): void;
143
+ export declare function getGlobalTracerProvider(): TracerProvider;
144
+ /**
145
+ * Get a tracer from the active provider.
146
+ * Returns the no-op tracer when ext-opentelemetry is not installed.
147
+ */
148
+ export declare function getTracer(name: string, version?: string): Tracer;
149
+ export declare const context: {
150
+ active(): Context;
151
+ with<T>(ctx: Context, fn: () => T): T;
152
+ setGlobalContextManager(_mgr: unknown): void;
153
+ };
154
+ export declare const trace: {
155
+ getTracer(name: string, version?: string): Tracer;
156
+ setGlobalTracerProvider(p: TracerProvider): void;
157
+ getGlobalTracerProvider(): TracerProvider;
158
+ setSpan(ctx: Context, _span: Span): Context;
159
+ getSpan(ctx: Context): Span | undefined;
160
+ getActiveSpan(): Span | undefined;
161
+ };
162
+ export declare const propagation: {
163
+ setGlobalPropagator(p: TextMapPropagator): void;
164
+ extract<C>(ctx: Context, carrier: C, getter?: TextMapGetter<C>): Context;
165
+ inject<C>(ctx: Context, carrier: C, setter?: TextMapSetter<C>): void;
166
+ };
167
+ export declare const defaultTextMapGetter: TextMapGetter<Record<string, string>>;
168
+ export declare const defaultTextMapSetter: TextMapSetter<Record<string, string>>;
169
+ /**
170
+ * Register the OTel Metrics API (from the SDK).
171
+ * Called by ext-opentelemetry in its setup hook so the metrics subsystem
172
+ * can use `getMeter()` when available.
173
+ */
174
+ export declare function setGlobalMetricsAPI(api: MetricsAPI): void;
175
+ export declare function getGlobalMetricsAPI(): MetricsAPI | null;
176
+ export declare function _resetShimForTests(): void;
177
+ //# sourceMappingURL=api-shim.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"api-shim.d.ts","sourceRoot":"","sources":["../../../../src/src/observability/tracing/api-shim.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,234 @@
1
+ /**
2
+ * Thin in-process shim for `@opentelemetry/api`.
3
+ *
4
+ * Core files that previously imported directly from `@opentelemetry/api` now
5
+ * import from this module. When the `ext-opentelemetry` extension is present
6
+ * the real SDK provider is wired in via `setGlobalTracerProvider`; otherwise
7
+ * every call falls back to a no-op implementation so the core boots without the
8
+ * extension installed.
9
+ *
10
+ * **Tracing types and constants** (exported for call-site use):
11
+ * `Span`, `Tracer`, `TracerProvider`, `Context`, `TextMapPropagator`
12
+ * `SpanKind`, `SpanStatusCode`
13
+ *
14
+ * **Metrics types** (re-exported structural shapes for the metrics subsystem;
15
+ * not backed by a live SDK — the metrics subsystem is wired separately):
16
+ * `Meter`, `Counter`, `Histogram`, `ObservableGauge`, `UpDownCounter`,
17
+ * `ObservableResult`
18
+ *
19
+ * @module observability/tracing/api-shim
20
+ */
21
+ // ---------------------------------------------------------------------------
22
+ // Span kind + status constants
23
+ // ---------------------------------------------------------------------------
24
+ export const SpanKind = {
25
+ INTERNAL: 0,
26
+ SERVER: 1,
27
+ CLIENT: 2,
28
+ PRODUCER: 3,
29
+ CONSUMER: 4,
30
+ };
31
+ export const SpanStatusCode = {
32
+ UNSET: 0,
33
+ OK: 1,
34
+ ERROR: 2,
35
+ };
36
+ // ---------------------------------------------------------------------------
37
+ // No-op provider (default when ext-opentelemetry is not installed)
38
+ // ---------------------------------------------------------------------------
39
+ function createNoopContext() {
40
+ return {
41
+ getValue: () => undefined,
42
+ setValue(_key, _value) {
43
+ return this;
44
+ },
45
+ deleteValue(_key) {
46
+ return this;
47
+ },
48
+ };
49
+ }
50
+ const NOOP_CONTEXT = createNoopContext();
51
+ const NOOP_SPAN_CONTEXT = {
52
+ traceId: "00000000000000000000000000000000",
53
+ spanId: "0000000000000000",
54
+ traceFlags: 0,
55
+ };
56
+ const NOOP_SPAN = {
57
+ setAttribute() {
58
+ return NOOP_SPAN;
59
+ },
60
+ setAttributes() {
61
+ return NOOP_SPAN;
62
+ },
63
+ setStatus() {
64
+ return NOOP_SPAN;
65
+ },
66
+ recordException() { },
67
+ addEvent() {
68
+ return NOOP_SPAN;
69
+ },
70
+ end() { },
71
+ spanContext() {
72
+ return NOOP_SPAN_CONTEXT;
73
+ },
74
+ updateName() { },
75
+ };
76
+ function createNoopTracer() {
77
+ return {
78
+ startSpan() {
79
+ return NOOP_SPAN;
80
+ },
81
+ startActiveSpan(_name, optionsOrFn, contextOrFn, fn) {
82
+ const callback = typeof optionsOrFn === "function"
83
+ ? optionsOrFn
84
+ : typeof contextOrFn === "function"
85
+ ? contextOrFn
86
+ : fn;
87
+ return callback(NOOP_SPAN);
88
+ },
89
+ };
90
+ }
91
+ function createNoopProvider() {
92
+ const noopTracer = createNoopTracer();
93
+ return { getTracer: () => noopTracer };
94
+ }
95
+ // ---------------------------------------------------------------------------
96
+ // Global provider state
97
+ // ---------------------------------------------------------------------------
98
+ let _provider = createNoopProvider();
99
+ let _activeContext = NOOP_CONTEXT;
100
+ let _propagator = null;
101
+ /**
102
+ * Optional accessor for the currently active span. Wired by
103
+ * ext-opentelemetry (via `setGlobalActiveSpanAccessor`) so `trace.getActiveSpan()`
104
+ * and `trace.getSpan()` return the real SDK span once the extension is active.
105
+ */
106
+ let _activeSpanAccessor = null;
107
+ /**
108
+ * Register the real OTel trace API's span accessors. Called by the
109
+ * ext-opentelemetry extension after it wires the SDK so that the shim's
110
+ * `trace.getActiveSpan()` / `trace.getSpan()` can return real spans.
111
+ */
112
+ export function setGlobalActiveSpanAccessor(accessor) {
113
+ _activeSpanAccessor = accessor;
114
+ }
115
+ /**
116
+ * Wire in the real SDK TracerProvider.
117
+ * Called from `src/server/bootstrap.ts` after `orchestrateExtensions()` runs.
118
+ */
119
+ export function setGlobalTracerProvider(p) {
120
+ _provider = p;
121
+ }
122
+ export function getGlobalTracerProvider() {
123
+ return _provider;
124
+ }
125
+ /**
126
+ * Get a tracer from the active provider.
127
+ * Returns the no-op tracer when ext-opentelemetry is not installed.
128
+ */
129
+ export function getTracer(name, version) {
130
+ return _provider.getTracer(name, version);
131
+ }
132
+ // ---------------------------------------------------------------------------
133
+ // Context API
134
+ // ---------------------------------------------------------------------------
135
+ export const context = {
136
+ active() {
137
+ return _activeContext;
138
+ },
139
+ with(ctx, fn) {
140
+ const prev = _activeContext;
141
+ _activeContext = ctx;
142
+ try {
143
+ return fn();
144
+ }
145
+ finally {
146
+ _activeContext = prev;
147
+ }
148
+ },
149
+ setGlobalContextManager(_mgr) {
150
+ // no-op in shim; real SDK sets this via the real OTel API
151
+ },
152
+ };
153
+ // ---------------------------------------------------------------------------
154
+ // Trace API (simplified subset used by core)
155
+ // ---------------------------------------------------------------------------
156
+ export const trace = {
157
+ getTracer(name, version) {
158
+ return _provider.getTracer(name, version);
159
+ },
160
+ setGlobalTracerProvider(p) {
161
+ _provider = p;
162
+ },
163
+ getGlobalTracerProvider() {
164
+ return _provider;
165
+ },
166
+ setSpan(ctx, _span) {
167
+ return ctx;
168
+ },
169
+ getSpan(ctx) {
170
+ return _activeSpanAccessor?.getSpan(ctx);
171
+ },
172
+ getActiveSpan() {
173
+ return _activeSpanAccessor?.getActiveSpan();
174
+ },
175
+ };
176
+ // ---------------------------------------------------------------------------
177
+ // Propagation API
178
+ // ---------------------------------------------------------------------------
179
+ export const propagation = {
180
+ setGlobalPropagator(p) {
181
+ _propagator = p;
182
+ },
183
+ extract(ctx, carrier, getter) {
184
+ if (!_propagator)
185
+ return ctx;
186
+ return _propagator.extract(ctx, carrier, getter);
187
+ },
188
+ inject(ctx, carrier, setter) {
189
+ if (!_propagator)
190
+ return;
191
+ _propagator.inject(ctx, carrier, setter);
192
+ },
193
+ };
194
+ // ---------------------------------------------------------------------------
195
+ // defaultTextMapGetter / defaultTextMapSetter (used by proxy/tracing.ts)
196
+ // ---------------------------------------------------------------------------
197
+ export const defaultTextMapGetter = {
198
+ keys(carrier) {
199
+ return Object.keys(carrier);
200
+ },
201
+ get(carrier, key) {
202
+ return carrier[key];
203
+ },
204
+ };
205
+ export const defaultTextMapSetter = {
206
+ set(carrier, key, value) {
207
+ carrier[key] = value;
208
+ },
209
+ };
210
+ // ---------------------------------------------------------------------------
211
+ // Metrics API registry (injected by ext-opentelemetry when active)
212
+ // ---------------------------------------------------------------------------
213
+ let _metricsApi = null;
214
+ /**
215
+ * Register the OTel Metrics API (from the SDK).
216
+ * Called by ext-opentelemetry in its setup hook so the metrics subsystem
217
+ * can use `getMeter()` when available.
218
+ */
219
+ export function setGlobalMetricsAPI(api) {
220
+ _metricsApi = api;
221
+ }
222
+ export function getGlobalMetricsAPI() {
223
+ return _metricsApi;
224
+ }
225
+ // ---------------------------------------------------------------------------
226
+ // Reset for tests
227
+ // ---------------------------------------------------------------------------
228
+ export function _resetShimForTests() {
229
+ _provider = createNoopProvider();
230
+ _activeContext = NOOP_CONTEXT;
231
+ _propagator = null;
232
+ _metricsApi = null;
233
+ _activeSpanAccessor = null;
234
+ }
@@ -1 +1 @@
1
- {"version":3,"file":"manager.d.ts","sourceRoot":"","sources":["../../../../src/src/observability/tracing/manager.ts"],"names":[],"mappings":"AACA,OAAO,KAAK,EAAE,cAAc,EAAE,MAAM,iCAAiC,CAAC;AAGtE,OAAO,EAAE,kBAAkB,EAAE,MAAM,0BAA0B,CAAC;AAC9D,OAAO,EAAE,cAAc,EAAE,MAAM,sBAAsB,CAAC;AACtD,OAAO,KAAK,EAAoB,aAAa,EAAE,YAAY,EAAE,MAAM,YAAY,CAAC;AAIhF;;;GAGG;AACH,qBAAa,cAAc;IACzB,OAAO,CAAC,KAAK,CAMX;IAEF,OAAO,CAAC,OAAO,CAA+B;IAC9C,OAAO,CAAC,WAAW,CAAmC;IAEhD,UAAU,CAAC,MAAM,GAAE,OAAO,CAAC,aAAa,CAAM,EAAE,OAAO,CAAC,EAAE,cAAc,GAAG,OAAO,CAAC,IAAI,CAAC;YA+BhF,gBAAgB;IAe9B,SAAS,IAAI,OAAO;IAIpB,UAAU,IAAI,OAAO;IAIrB,iBAAiB,IAAI,cAAc,GAAG,IAAI;IAI1C,qBAAqB,IAAI,kBAAkB,GAAG,IAAI;IAIlD,QAAQ,IAAI,YAAY;IAIxB,QAAQ,IAAI,IAAI;CASjB;AAED,eAAO,MAAM,cAAc,gBAAuB,CAAC"}
1
+ {"version":3,"file":"manager.d.ts","sourceRoot":"","sources":["../../../../src/src/observability/tracing/manager.ts"],"names":[],"mappings":"AACA,OAAO,KAAK,EAAE,cAAc,EAAE,MAAM,iCAAiC,CAAC;AAGtE,OAAO,EAAE,kBAAkB,EAAE,MAAM,0BAA0B,CAAC;AAC9D,OAAO,EAAE,cAAc,EAAE,MAAM,sBAAsB,CAAC;AACtD,OAAO,KAAK,EAAoB,aAAa,EAAE,YAAY,EAAE,MAAM,YAAY,CAAC;AAIhF;;;GAGG;AACH,qBAAa,cAAc;IACzB,OAAO,CAAC,KAAK,CAMX;IAEF,OAAO,CAAC,OAAO,CAA+B;IAC9C,OAAO,CAAC,WAAW,CAAmC;IAEhD,UAAU,CAAC,MAAM,GAAE,OAAO,CAAC,aAAa,CAAM,EAAE,OAAO,CAAC,EAAE,cAAc,GAAG,OAAO,CAAC,IAAI,CAAC;YA+BhF,gBAAgB;IAwC9B,SAAS,IAAI,OAAO;IAIpB,UAAU,IAAI,OAAO;IAIrB,iBAAiB,IAAI,cAAc,GAAG,IAAI;IAI1C,qBAAqB,IAAI,kBAAkB,GAAG,IAAI;IAIlD,QAAQ,IAAI,YAAY;IAIxB,QAAQ,IAAI,IAAI;CASjB;AAED,eAAO,MAAM,cAAc,gBAAuB,CAAC"}
@@ -43,13 +43,38 @@ export class TracingManager {
43
43
  }
44
44
  }
45
45
  async initializeTracer(config) {
46
- const api = (await import("@opentelemetry/api"));
46
+ // Use the shim API — delegates to the real SDK when ext-opentelemetry is wired.
47
+ const shimApi = await import("./api-shim.js");
48
+ const api = {
49
+ trace: {
50
+ getTracer: (name, version) => shimApi.getTracer(name ?? "veryfront", version),
51
+ setSpan: (ctx, _span) => ctx,
52
+ },
53
+ propagation: {
54
+ setGlobalPropagator: (p) => shimApi.propagation.setGlobalPropagator(p),
55
+ extract: (ctx, carrier) => shimApi.propagation.extract(ctx, carrier),
56
+ inject: (ctx, carrier) => shimApi.propagation.inject(ctx, carrier),
57
+ },
58
+ context: {
59
+ active: () => shimApi.context.active(),
60
+ with: (ctx, fn) => shimApi.context.with(ctx, fn),
61
+ },
62
+ SpanKind: shimApi.SpanKind,
63
+ SpanStatusCode: { OK: shimApi.SpanStatusCode.OK, ERROR: shimApi.SpanStatusCode.ERROR },
64
+ };
47
65
  this.state.api = api;
48
66
  this.state.tracer = api.trace.getTracer(config.serviceName ?? "veryfront", VERSION);
49
- const { W3CTraceContextPropagator } = await import("@opentelemetry/core");
50
- const propagator = new W3CTraceContextPropagator();
67
+ // No-op propagator used only when ext-opentelemetry is NOT installed.
68
+ // When the extension is active, it registers W3CTraceContextPropagator
69
+ // on the shim directly; we intentionally do NOT wrap shimApi.propagation
70
+ // here (doing so would cause infinite recursion when the global
71
+ // propagator is the wrapper itself).
72
+ const propagator = {
73
+ inject: (_ctx, _carrier) => { },
74
+ extract: (ctx, _carrier) => ctx,
75
+ fields: () => [],
76
+ };
51
77
  this.state.propagator = propagator;
52
- api.propagation.setGlobalPropagator(propagator);
53
78
  this.spanOps = this.state.tracer ? new SpanOperations(api, this.state.tracer) : null;
54
79
  this.contextProp = new ContextPropagation(api, propagator);
55
80
  }
@@ -1,13 +1,17 @@
1
1
  /**************************
2
- * OpenTelemetry OTLP Setup for Grafana Cloud
2
+ * OpenTelemetry OTLP Setup
3
+ *
4
+ * Thin wrapper that delegates to the `ext-opentelemetry` extension via the
5
+ * `TracingExporter` contract. When the extension is not installed, all span
6
+ * operations silently no-op.
3
7
  *
4
- * Configures the OTLP exporter to send traces to Grafana Cloud.
5
8
  * Reads configuration from environment variables:
6
9
  * - OTEL_TRACES_ENABLED: "true" to enable tracing
7
10
  * - OTEL_SERVICE_NAME: Service name for traces
8
- * - OTEL_EXPORTER_OTLP_ENDPOINT: OTLP endpoint (e.g., https://otlp-gateway-prod-eu-west-2.grafana.net/otlp)
9
- * - OTEL_EXPORTER_OTLP_HEADERS: Auth headers (e.g., Authorization=Basic ...)
11
+ * - OTEL_EXPORTER_OTLP_ENDPOINT: OTLP endpoint
12
+ * - OTEL_EXPORTER_OTLP_HEADERS: Auth headers
10
13
  **************************/
14
+ import { type Context, type Span } from "./api-shim.js";
11
15
  export interface OTLPConfig {
12
16
  serviceName: string;
13
17
  endpoint: string;
@@ -17,13 +21,14 @@ export interface OTLPConfig {
17
21
  export declare function initializeOTLP(): Promise<void>;
18
22
  export declare function shutdownOTLP(): Promise<void>;
19
23
  export declare function isOTLPEnabled(): boolean;
24
+ export declare function initializeOTLPWithApis(): Promise<void>;
20
25
  export declare function withSpan<T>(name: string, fn: () => Promise<T>, attributes?: Record<string, string | number | boolean>): Promise<T>;
21
26
  export declare function withSpanSync<T>(name: string, fn: () => T, attributes?: Record<string, string | number | boolean>): T;
22
- export declare function extractContext(headers: Headers): unknown;
27
+ export declare function extractContext(headers: Headers): Context | undefined;
23
28
  export declare function injectContext(headers: Headers): void;
24
29
  export declare function startServerSpan(method: string, path: string, parentContext?: unknown): {
25
- span: unknown;
26
- context: unknown;
30
+ span: Span;
31
+ context: Context;
27
32
  } | null;
28
33
  export declare function endServerSpan(span: unknown, statusCode: number, error?: Error): void;
29
34
  export declare function setSpanAttributes(span: unknown, attributes: Record<string, string | number | boolean>): void;
@@ -33,5 +38,4 @@ export declare function getTraceContext(): {
33
38
  traceId?: string;
34
39
  spanId?: string;
35
40
  };
36
- export declare function initializeOTLPWithApis(): Promise<void>;
37
41
  //# sourceMappingURL=otlp-setup.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"otlp-setup.d.ts","sourceRoot":"","sources":["../../../../src/src/observability/tracing/otlp-setup.ts"],"names":[],"mappings":"AAAA;;;;;;;;;4BAS4B;AAY5B,MAAM,WAAW,UAAU;IACzB,WAAW,EAAE,MAAM,CAAC;IACpB,QAAQ,EAAE,MAAM,CAAC;IACjB,OAAO,CAAC,EAAE,MAAM,CAAC,MAAM,EAAE,MAAM,CAAC,CAAC;IACjC,OAAO,EAAE,OAAO,CAAC;CAClB;AAsDD,wBAAsB,cAAc,IAAI,OAAO,CAAC,IAAI,CAAC,CA4EpD;AAED,wBAAsB,YAAY,IAAI,OAAO,CAAC,IAAI,CAAC,CASlD;AAED,wBAAgB,aAAa,IAAI,OAAO,CAEvC;AAED,wBAAsB,QAAQ,CAAC,CAAC,EAC9B,IAAI,EAAE,MAAM,EACZ,EAAE,EAAE,MAAM,OAAO,CAAC,CAAC,CAAC,EACpB,UAAU,CAAC,EAAE,MAAM,CAAC,MAAM,EAAE,MAAM,GAAG,MAAM,GAAG,OAAO,CAAC,GACrD,OAAO,CAAC,CAAC,CAAC,CAwBZ;AAED,wBAAgB,YAAY,CAAC,CAAC,EAC5B,IAAI,EAAE,MAAM,EACZ,EAAE,EAAE,MAAM,CAAC,EACX,UAAU,CAAC,EAAE,MAAM,CAAC,MAAM,EAAE,MAAM,GAAG,MAAM,GAAG,OAAO,CAAC,GACrD,CAAC,CAsBH;AAED,wBAAgB,cAAc,CAAC,OAAO,EAAE,OAAO,GAAG,OAAO,CAaxD;AAED,wBAAgB,aAAa,CAAC,OAAO,EAAE,OAAO,GAAG,IAAI,CAWpD;AAED,wBAAgB,eAAe,CAC7B,MAAM,EAAE,MAAM,EACd,IAAI,EAAE,MAAM,EACZ,aAAa,CAAC,EAAE,OAAO,GACtB;IAAE,IAAI,EAAE,OAAO,CAAC;IAAC,OAAO,EAAE,OAAO,CAAA;CAAE,GAAG,IAAI,CAW5C;AAED,wBAAgB,aAAa,CAAC,IAAI,EAAE,OAAO,EAAE,UAAU,EAAE,MAAM,EAAE,KAAK,CAAC,EAAE,KAAK,GAAG,IAAI,CAoBpF;AAED,wBAAgB,iBAAiB,CAC/B,IAAI,EAAE,OAAO,EACb,UAAU,EAAE,MAAM,CAAC,MAAM,EAAE,MAAM,GAAG,MAAM,GAAG,OAAO,CAAC,GACpD,IAAI,CAKN;AAED,wBAAgB,uBAAuB,CACrC,UAAU,EAAE,MAAM,CAAC,MAAM,EAAE,MAAM,GAAG,MAAM,GAAG,OAAO,CAAC,GACpD,IAAI,CAON;AAED,wBAAsB,WAAW,CAAC,CAAC,EAAE,WAAW,EAAE,OAAO,EAAE,EAAE,EAAE,MAAM,OAAO,CAAC,CAAC,CAAC,GAAG,OAAO,CAAC,CAAC,CAAC,CAG3F;AAED,wBAAgB,eAAe,IAAI;IAAE,OAAO,CAAC,EAAE,MAAM,CAAC;IAAC,MAAM,CAAC,EAAE,MAAM,CAAA;CAAE,CAQvE;AAED,wBAAsB,sBAAsB,IAAI,OAAO,CAAC,IAAI,CAAC,CAG5D"}
1
+ {"version":3,"file":"otlp-setup.d.ts","sourceRoot":"","sources":["../../../../src/src/observability/tracing/otlp-setup.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;4BAY4B;AAI5B,OAAO,EACL,KAAK,OAAO,EAMZ,KAAK,IAAI,EAIV,MAAM,eAAe,CAAC;AAIvB,MAAM,WAAW,UAAU;IACzB,WAAW,EAAE,MAAM,CAAC;IACpB,QAAQ,EAAE,MAAM,CAAC;IACjB,OAAO,CAAC,EAAE,MAAM,CAAC,MAAM,EAAE,MAAM,CAAC,CAAC;IACjC,OAAO,EAAE,OAAO,CAAC;CAClB;AAqCD,wBAAsB,cAAc,IAAI,OAAO,CAAC,IAAI,CAAC,CASpD;AAED,wBAAsB,YAAY,IAAI,OAAO,CAAC,IAAI,CAAC,CAGlD;AAED,wBAAgB,aAAa,IAAI,OAAO,CAEvC;AAED,wBAAsB,sBAAsB,IAAI,OAAO,CAAC,IAAI,CAAC,CAE5D;AAcD,wBAAsB,QAAQ,CAAC,CAAC,EAC9B,IAAI,EAAE,MAAM,EACZ,EAAE,EAAE,MAAM,OAAO,CAAC,CAAC,CAAC,EACpB,UAAU,CAAC,EAAE,MAAM,CAAC,MAAM,EAAE,MAAM,GAAG,MAAM,GAAG,OAAO,CAAC,GACrD,OAAO,CAAC,CAAC,CAAC,CAuBZ;AAED,wBAAgB,YAAY,CAAC,CAAC,EAC5B,IAAI,EAAE,MAAM,EACZ,EAAE,EAAE,MAAM,CAAC,EACX,UAAU,CAAC,EAAE,MAAM,CAAC,MAAM,EAAE,MAAM,GAAG,MAAM,GAAG,OAAO,CAAC,GACrD,CAAC,CAqBH;AAED,wBAAgB,cAAc,CAAC,OAAO,EAAE,OAAO,GAAG,OAAO,GAAG,SAAS,CAKpE;AAED,wBAAgB,aAAa,CAAC,OAAO,EAAE,OAAO,GAAG,IAAI,CAIpD;AAED,wBAAgB,eAAe,CAC7B,MAAM,EAAE,MAAM,EACd,IAAI,EAAE,MAAM,EACZ,aAAa,CAAC,EAAE,OAAO,GACtB;IAAE,IAAI,EAAE,IAAI,CAAC;IAAC,OAAO,EAAE,OAAO,CAAA;CAAE,GAAG,IAAI,CAUzC;AAED,wBAAgB,aAAa,CAAC,IAAI,EAAE,OAAO,EAAE,UAAU,EAAE,MAAM,EAAE,KAAK,CAAC,EAAE,KAAK,GAAG,IAAI,CAoBpF;AAED,wBAAgB,iBAAiB,CAC/B,IAAI,EAAE,OAAO,EACb,UAAU,EAAE,MAAM,CAAC,MAAM,EAAE,MAAM,GAAG,MAAM,GAAG,OAAO,CAAC,GACpD,IAAI,CAKN;AAED,wBAAgB,uBAAuB,CACrC,UAAU,EAAE,MAAM,CAAC,MAAM,EAAE,MAAM,GAAG,MAAM,GAAG,OAAO,CAAC,GACpD,IAAI,CAKN;AAED,wBAAsB,WAAW,CAAC,CAAC,EAAE,WAAW,EAAE,OAAO,EAAE,EAAE,EAAE,MAAM,OAAO,CAAC,CAAC,CAAC,GAAG,OAAO,CAAC,CAAC,CAAC,CAE3F;AAED,wBAAgB,eAAe,IAAI;IAAE,OAAO,CAAC,EAAE,MAAM,CAAC;IAAC,MAAM,CAAC,EAAE,MAAM,CAAA;CAAE,CAMvE"}