@vibesdotdev/logging 0.0.2 → 1.0.0-rc.4

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 (699) hide show
  1. package/LICENSE +18 -0
  2. package/README.md +101 -8
  3. package/dist/audit/audit-retention.job.descriptor.d.ts +60 -0
  4. package/dist/audit/audit-retention.job.descriptor.d.ts.map +1 -0
  5. package/dist/audit/audit-retention.job.descriptor.js +42 -0
  6. package/dist/audit/audit-retention.job.descriptor.js.map +1 -0
  7. package/dist/audit/audit-retention.job.impl.d.ts +23 -0
  8. package/dist/audit/audit-retention.job.impl.d.ts.map +1 -0
  9. package/dist/audit/audit-retention.job.impl.js +24 -0
  10. package/dist/audit/audit-retention.job.impl.js.map +1 -0
  11. package/dist/audit/audit.descriptor.d.ts +6 -0
  12. package/dist/audit/audit.descriptor.d.ts.map +1 -1
  13. package/dist/audit/audit.descriptor.js +72 -5
  14. package/dist/audit/audit.descriptor.js.map +1 -1
  15. package/dist/audit/audit.storage.schema.d.ts +3 -3
  16. package/dist/audit/index.d.ts +3 -1
  17. package/dist/audit/index.d.ts.map +1 -1
  18. package/dist/audit/index.js +4 -1
  19. package/dist/audit/index.js.map +1 -1
  20. package/dist/audit/scheduled-audit-retention.d.ts +39 -0
  21. package/dist/audit/scheduled-audit-retention.d.ts.map +1 -0
  22. package/dist/audit/scheduled-audit-retention.js +38 -0
  23. package/dist/audit/scheduled-audit-retention.js.map +1 -0
  24. package/dist/browser/capture-error.d.ts +66 -0
  25. package/dist/browser/capture-error.d.ts.map +1 -0
  26. package/dist/browser/capture-error.js +82 -0
  27. package/dist/browser/capture-error.js.map +1 -0
  28. package/dist/browser/index.d.ts +11 -0
  29. package/dist/browser/index.d.ts.map +1 -0
  30. package/dist/browser/index.js +16 -0
  31. package/dist/browser/index.js.map +1 -0
  32. package/dist/browser/logging-browser.plugin.d.ts +9 -0
  33. package/dist/browser/logging-browser.plugin.d.ts.map +1 -0
  34. package/dist/browser/logging-browser.plugin.js +26 -0
  35. package/dist/browser/logging-browser.plugin.js.map +1 -0
  36. package/dist/browser/plugin.d.ts +2 -0
  37. package/dist/browser/plugin.d.ts.map +1 -0
  38. package/dist/browser/plugin.js +2 -0
  39. package/dist/browser/plugin.js.map +1 -0
  40. package/dist/browser/read-errors.d.ts +26 -0
  41. package/dist/browser/read-errors.d.ts.map +1 -0
  42. package/dist/browser/read-errors.js +38 -0
  43. package/dist/browser/read-errors.js.map +1 -0
  44. package/dist/browser/sinks/browser/browser.browser.descriptor.d.ts +10 -0
  45. package/dist/browser/sinks/browser/browser.browser.descriptor.d.ts.map +1 -0
  46. package/dist/browser/sinks/browser/browser.browser.descriptor.js +23 -0
  47. package/dist/browser/sinks/browser/browser.browser.descriptor.js.map +1 -0
  48. package/dist/browser/sinks/browser/browser.impl.browser.d.ts +83 -0
  49. package/dist/browser/sinks/browser/browser.impl.browser.d.ts.map +1 -0
  50. package/dist/browser/sinks/browser/browser.impl.browser.js +247 -0
  51. package/dist/browser/sinks/browser/browser.impl.browser.js.map +1 -0
  52. package/dist/cli/failures.d.ts +29 -0
  53. package/dist/cli/failures.d.ts.map +1 -0
  54. package/dist/cli/failures.js +44 -0
  55. package/dist/cli/failures.js.map +1 -0
  56. package/dist/cli/flags.d.ts +24 -0
  57. package/dist/cli/flags.d.ts.map +1 -0
  58. package/dist/cli/flags.js +56 -0
  59. package/dist/cli/flags.js.map +1 -0
  60. package/dist/cli/log-line.d.ts +23 -0
  61. package/dist/cli/log-line.d.ts.map +1 -0
  62. package/dist/cli/log-line.js +39 -0
  63. package/dist/cli/log-line.js.map +1 -0
  64. package/dist/cli/logging.logs.descriptor.d.ts +9 -0
  65. package/dist/cli/logging.logs.descriptor.d.ts.map +1 -0
  66. package/dist/cli/logging.logs.descriptor.js +16 -0
  67. package/dist/cli/logging.logs.descriptor.js.map +1 -0
  68. package/dist/cli/logs.audit.cleanup.descriptor.d.ts +7 -0
  69. package/dist/cli/logs.audit.cleanup.descriptor.d.ts.map +1 -0
  70. package/dist/cli/logs.audit.cleanup.descriptor.js +21 -0
  71. package/dist/cli/logs.audit.cleanup.descriptor.js.map +1 -0
  72. package/dist/cli/logs.audit.cleanup.impl.d.ts +14 -0
  73. package/dist/cli/logs.audit.cleanup.impl.d.ts.map +1 -0
  74. package/dist/cli/logs.audit.cleanup.impl.js +60 -0
  75. package/dist/cli/logs.audit.cleanup.impl.js.map +1 -0
  76. package/dist/cli/logs.audit.descriptor.d.ts +9 -0
  77. package/dist/cli/logs.audit.descriptor.d.ts.map +1 -0
  78. package/dist/cli/logs.audit.descriptor.js +41 -0
  79. package/dist/cli/logs.audit.descriptor.js.map +1 -0
  80. package/dist/cli/logs.audit.group.descriptor.d.ts +7 -0
  81. package/dist/cli/logs.audit.group.descriptor.d.ts.map +1 -0
  82. package/dist/cli/logs.audit.group.descriptor.js +15 -0
  83. package/dist/cli/logs.audit.group.descriptor.js.map +1 -0
  84. package/dist/cli/logs.audit.impl.d.ts +19 -0
  85. package/dist/cli/logs.audit.impl.d.ts.map +1 -0
  86. package/dist/cli/logs.audit.impl.js +83 -0
  87. package/dist/cli/logs.audit.impl.js.map +1 -0
  88. package/dist/cli/logs.descriptor.d.ts +1 -8
  89. package/dist/cli/logs.descriptor.d.ts.map +1 -1
  90. package/dist/cli/logs.descriptor.js +1 -15
  91. package/dist/cli/logs.descriptor.js.map +1 -1
  92. package/dist/cli/logs.list.impl.d.ts +4 -1
  93. package/dist/cli/logs.list.impl.d.ts.map +1 -1
  94. package/dist/cli/logs.list.impl.js +60 -63
  95. package/dist/cli/logs.list.impl.js.map +1 -1
  96. package/dist/cli/logs.rotate.descriptor.d.ts.map +1 -1
  97. package/dist/cli/logs.rotate.descriptor.js +7 -3
  98. package/dist/cli/logs.rotate.descriptor.js.map +1 -1
  99. package/dist/cli/logs.rotate.impl.d.ts +3 -1
  100. package/dist/cli/logs.rotate.impl.d.ts.map +1 -1
  101. package/dist/cli/logs.rotate.impl.js +72 -33
  102. package/dist/cli/logs.rotate.impl.js.map +1 -1
  103. package/dist/cli/logs.search.descriptor.d.ts.map +1 -1
  104. package/dist/cli/logs.search.descriptor.js +4 -0
  105. package/dist/cli/logs.search.descriptor.js.map +1 -1
  106. package/dist/cli/logs.search.impl.d.ts +3 -1
  107. package/dist/cli/logs.search.impl.d.ts.map +1 -1
  108. package/dist/cli/logs.search.impl.js +114 -108
  109. package/dist/cli/logs.search.impl.js.map +1 -1
  110. package/dist/cli/logs.tail.descriptor.d.ts.map +1 -1
  111. package/dist/cli/logs.tail.descriptor.js +2 -1
  112. package/dist/cli/logs.tail.descriptor.js.map +1 -1
  113. package/dist/cli/logs.tail.impl.d.ts +4 -2
  114. package/dist/cli/logs.tail.impl.d.ts.map +1 -1
  115. package/dist/cli/logs.tail.impl.js +84 -57
  116. package/dist/cli/logs.tail.impl.js.map +1 -1
  117. package/dist/cli/logs.view.impl.d.ts +2 -6
  118. package/dist/cli/logs.view.impl.d.ts.map +1 -1
  119. package/dist/cli/logs.view.impl.js +32 -50
  120. package/dist/cli/logs.view.impl.js.map +1 -1
  121. package/dist/cli/output.d.ts +29 -0
  122. package/dist/cli/output.d.ts.map +1 -0
  123. package/dist/cli/output.js +29 -0
  124. package/dist/cli/output.js.map +1 -0
  125. package/dist/{logging.cli.plugin.d.ts → cli/plugin.d.ts} +3 -3
  126. package/dist/cli/plugin.d.ts.map +1 -0
  127. package/dist/cli/plugin.js +45 -0
  128. package/dist/cli/plugin.js.map +1 -0
  129. package/dist/cli/resolve-output.d.ts +25 -0
  130. package/dist/cli/resolve-output.d.ts.map +1 -0
  131. package/dist/cli/resolve-output.js +75 -0
  132. package/dist/cli/resolve-output.js.map +1 -0
  133. package/dist/cli/types.d.ts +13 -5
  134. package/dist/cli/types.d.ts.map +1 -1
  135. package/dist/cli/types.js +3 -3
  136. package/dist/client/logging-client.d.ts +31 -0
  137. package/dist/client/logging-client.d.ts.map +1 -0
  138. package/dist/client/logging-client.js +44 -0
  139. package/dist/client/logging-client.js.map +1 -0
  140. package/dist/config/file-rotation.d.ts +11 -0
  141. package/dist/config/file-rotation.d.ts.map +1 -0
  142. package/dist/config/file-rotation.js +18 -0
  143. package/dist/config/file-rotation.js.map +1 -0
  144. package/dist/config/load-config.d.ts +7 -0
  145. package/dist/config/load-config.d.ts.map +1 -0
  146. package/dist/config/load-config.js +68 -0
  147. package/dist/config/load-config.js.map +1 -0
  148. package/dist/config/logging.config.descriptor.d.ts +350 -0
  149. package/dist/config/logging.config.descriptor.d.ts.map +1 -0
  150. package/dist/config/logging.config.descriptor.js +208 -0
  151. package/dist/config/logging.config.descriptor.js.map +1 -0
  152. package/dist/config/otel-service.d.ts +9 -0
  153. package/dist/config/otel-service.d.ts.map +1 -0
  154. package/dist/config/otel-service.js +18 -0
  155. package/dist/config/otel-service.js.map +1 -0
  156. package/dist/contexts/bootstrap.plugin.d.ts +3 -0
  157. package/dist/contexts/bootstrap.plugin.d.ts.map +1 -0
  158. package/dist/contexts/bootstrap.plugin.js +13 -0
  159. package/dist/contexts/bootstrap.plugin.js.map +1 -0
  160. package/dist/contexts/fallback-logger.d.ts +7 -2
  161. package/dist/contexts/fallback-logger.d.ts.map +1 -1
  162. package/dist/contexts/fallback-logger.js +73 -46
  163. package/dist/contexts/fallback-logger.js.map +1 -1
  164. package/dist/contexts/index.d.ts +2 -2
  165. package/dist/contexts/index.d.ts.map +1 -1
  166. package/dist/contexts/index.js +2 -3
  167. package/dist/contexts/index.js.map +1 -1
  168. package/dist/contexts/logger.d.ts +38 -14
  169. package/dist/contexts/logger.d.ts.map +1 -1
  170. package/dist/contexts/logger.js +241 -62
  171. package/dist/contexts/logger.js.map +1 -1
  172. package/dist/core/attempt.d.ts +30 -0
  173. package/dist/core/attempt.d.ts.map +1 -0
  174. package/dist/core/attempt.js +44 -0
  175. package/dist/core/attempt.js.map +1 -0
  176. package/dist/core/emission-window.d.ts +34 -0
  177. package/dist/core/emission-window.d.ts.map +1 -0
  178. package/dist/core/emission-window.js +25 -0
  179. package/dist/core/emission-window.js.map +1 -0
  180. package/dist/core/endpoint.d.ts +54 -0
  181. package/dist/core/endpoint.d.ts.map +1 -0
  182. package/dist/core/endpoint.js +256 -0
  183. package/dist/core/endpoint.js.map +1 -0
  184. package/dist/core/entry-context.d.ts +106 -0
  185. package/dist/core/entry-context.d.ts.map +1 -0
  186. package/dist/core/entry-context.js +150 -0
  187. package/dist/core/entry-context.js.map +1 -0
  188. package/dist/core/index.d.ts +4 -0
  189. package/dist/core/index.d.ts.map +1 -1
  190. package/dist/core/index.js +5 -0
  191. package/dist/core/index.js.map +1 -1
  192. package/dist/core/logger.d.ts +6 -1
  193. package/dist/core/logger.d.ts.map +1 -1
  194. package/dist/core/logger.js +133 -67
  195. package/dist/core/logger.js.map +1 -1
  196. package/dist/core/namespace.d.ts +5 -2
  197. package/dist/core/namespace.d.ts.map +1 -1
  198. package/dist/core/namespace.js +15 -7
  199. package/dist/core/namespace.js.map +1 -1
  200. package/dist/core/normalize.d.ts +31 -0
  201. package/dist/core/normalize.d.ts.map +1 -0
  202. package/dist/core/normalize.js +67 -0
  203. package/dist/core/normalize.js.map +1 -0
  204. package/dist/core/otlp-headers.d.ts +53 -0
  205. package/dist/core/otlp-headers.d.ts.map +1 -0
  206. package/dist/core/otlp-headers.js +64 -0
  207. package/dist/core/otlp-headers.js.map +1 -0
  208. package/dist/core/otlp-partial-success.d.ts +48 -0
  209. package/dist/core/otlp-partial-success.d.ts.map +1 -0
  210. package/dist/core/otlp-partial-success.js +55 -0
  211. package/dist/core/otlp-partial-success.js.map +1 -0
  212. package/dist/core/outcome.d.ts +21 -0
  213. package/dist/core/outcome.d.ts.map +1 -0
  214. package/dist/core/outcome.js +24 -0
  215. package/dist/core/outcome.js.map +1 -0
  216. package/dist/core/output-resources.d.ts +15 -0
  217. package/dist/core/output-resources.d.ts.map +1 -0
  218. package/dist/core/output-resources.js +51 -0
  219. package/dist/core/output-resources.js.map +1 -0
  220. package/dist/core/parsing.d.ts.map +1 -1
  221. package/dist/core/parsing.js +13 -10
  222. package/dist/core/parsing.js.map +1 -1
  223. package/dist/core/redact.d.ts +161 -0
  224. package/dist/core/redact.d.ts.map +1 -0
  225. package/dist/core/redact.js +581 -0
  226. package/dist/core/redact.js.map +1 -0
  227. package/dist/core/root-identity.d.ts +13 -0
  228. package/dist/core/root-identity.d.ts.map +1 -0
  229. package/dist/core/root-identity.js +23 -0
  230. package/dist/core/root-identity.js.map +1 -0
  231. package/dist/core/types.d.ts +5 -4
  232. package/dist/core/types.d.ts.map +1 -1
  233. package/dist/docs/cli.docs.descriptor.d.ts +4 -0
  234. package/dist/docs/cli.docs.descriptor.d.ts.map +1 -0
  235. package/dist/docs/cli.docs.descriptor.js +97 -0
  236. package/dist/docs/cli.docs.descriptor.js.map +1 -0
  237. package/dist/docs/index.d.ts +7 -0
  238. package/dist/docs/index.d.ts.map +1 -0
  239. package/dist/docs/index.js +7 -0
  240. package/dist/docs/index.js.map +1 -0
  241. package/dist/docs/levels.docs.descriptor.d.ts +1 -1
  242. package/dist/docs/levels.docs.descriptor.d.ts.map +1 -1
  243. package/dist/docs/levels.docs.descriptor.js +112 -246
  244. package/dist/docs/levels.docs.descriptor.js.map +1 -1
  245. package/dist/docs/logging.docs.descriptor.d.ts +4 -0
  246. package/dist/docs/logging.docs.descriptor.d.ts.map +1 -0
  247. package/dist/docs/logging.docs.descriptor.js +105 -0
  248. package/dist/docs/logging.docs.descriptor.js.map +1 -0
  249. package/dist/docs/observability.docs.descriptor.d.ts +4 -0
  250. package/dist/docs/observability.docs.descriptor.d.ts.map +1 -0
  251. package/dist/docs/observability.docs.descriptor.js +152 -0
  252. package/dist/docs/observability.docs.descriptor.js.map +1 -0
  253. package/dist/docs/structured.docs.descriptor.d.ts +1 -1
  254. package/dist/docs/structured.docs.descriptor.d.ts.map +1 -1
  255. package/dist/docs/structured.docs.descriptor.js +111 -267
  256. package/dist/docs/structured.docs.descriptor.js.map +1 -1
  257. package/dist/docs/transports.docs.descriptor.d.ts +1 -1
  258. package/dist/docs/transports.docs.descriptor.d.ts.map +1 -1
  259. package/dist/docs/transports.docs.descriptor.js +129 -344
  260. package/dist/docs/transports.docs.descriptor.js.map +1 -1
  261. package/dist/formatters/json/json.impl.d.ts +1 -1
  262. package/dist/formatters/json/json.impl.d.ts.map +1 -1
  263. package/dist/formatters/json/json.impl.js +3 -2
  264. package/dist/formatters/json/json.impl.js.map +1 -1
  265. package/dist/formatters/json5/json5.impl.d.ts +1 -1
  266. package/dist/formatters/json5/json5.impl.d.ts.map +1 -1
  267. package/dist/formatters/json5/json5.impl.js +3 -2
  268. package/dist/formatters/json5/json5.impl.js.map +1 -1
  269. package/dist/formatters/jsonl/jsonl.impl.d.ts +1 -1
  270. package/dist/formatters/jsonl/jsonl.impl.d.ts.map +1 -1
  271. package/dist/formatters/jsonl/jsonl.impl.js +3 -2
  272. package/dist/formatters/jsonl/jsonl.impl.js.map +1 -1
  273. package/dist/formatters/pretty/{pretty.impl.cli.d.ts → pretty.impl.consumer.d.ts} +1 -1
  274. package/dist/formatters/pretty/pretty.impl.consumer.d.ts.map +1 -0
  275. package/dist/formatters/pretty/{pretty.impl.cli.js → pretty.impl.consumer.js} +1 -1
  276. package/dist/formatters/pretty/pretty.impl.consumer.js.map +1 -0
  277. package/dist/host-files/file-audit.base.d.ts +39 -0
  278. package/dist/host-files/file-audit.base.d.ts.map +1 -0
  279. package/dist/host-files/file-audit.base.js +255 -0
  280. package/dist/host-files/file-audit.base.js.map +1 -0
  281. package/dist/host-files/file-output.base.d.ts +84 -0
  282. package/dist/host-files/file-output.base.d.ts.map +1 -0
  283. package/dist/host-files/file-output.base.js +401 -0
  284. package/dist/host-files/file-output.base.js.map +1 -0
  285. package/dist/host-files/file-output.factory.base.d.ts +31 -0
  286. package/dist/host-files/file-output.factory.base.d.ts.map +1 -0
  287. package/dist/host-files/file-output.factory.base.js +82 -0
  288. package/dist/host-files/file-output.factory.base.js.map +1 -0
  289. package/dist/host-files/file-output.read.base.d.ts +7 -0
  290. package/dist/host-files/file-output.read.base.d.ts.map +1 -0
  291. package/dist/host-files/file-output.read.base.js +229 -0
  292. package/dist/host-files/file-output.read.base.js.map +1 -0
  293. package/dist/host-files/file-sink.base.d.ts +22 -0
  294. package/dist/host-files/file-sink.base.d.ts.map +1 -0
  295. package/dist/host-files/file-sink.base.js +56 -0
  296. package/dist/host-files/file-sink.base.js.map +1 -0
  297. package/dist/host-files/host-file-logging.plugin.d.ts +11 -0
  298. package/dist/host-files/host-file-logging.plugin.d.ts.map +1 -0
  299. package/dist/host-files/host-file-logging.plugin.js +63 -0
  300. package/dist/host-files/host-file-logging.plugin.js.map +1 -0
  301. package/dist/host-files/index.d.ts +19 -0
  302. package/dist/host-files/index.d.ts.map +1 -0
  303. package/dist/host-files/index.js +18 -0
  304. package/dist/host-files/index.js.map +1 -0
  305. package/dist/host-files/rotate-appended-file.base.d.ts +35 -0
  306. package/dist/host-files/rotate-appended-file.base.d.ts.map +1 -0
  307. package/dist/host-files/rotate-appended-file.base.js +104 -0
  308. package/dist/host-files/rotate-appended-file.base.js.map +1 -0
  309. package/dist/host.d.ts +38 -0
  310. package/dist/host.d.ts.map +1 -0
  311. package/dist/host.js +39 -0
  312. package/dist/host.js.map +1 -0
  313. package/dist/index.d.ts +24 -13
  314. package/dist/index.d.ts.map +1 -1
  315. package/dist/index.js +27 -23
  316. package/dist/index.js.map +1 -1
  317. package/dist/kinds/audit.d.ts +40 -8
  318. package/dist/kinds/audit.d.ts.map +1 -1
  319. package/dist/kinds/audit.js +82 -20
  320. package/dist/kinds/audit.js.map +1 -1
  321. package/dist/kinds/contexts.d.ts +4 -3
  322. package/dist/kinds/contexts.d.ts.map +1 -1
  323. package/dist/kinds/file-output.d.ts +56 -0
  324. package/dist/kinds/file-output.d.ts.map +1 -0
  325. package/dist/kinds/file-output.js +11 -0
  326. package/dist/kinds/file-output.js.map +1 -0
  327. package/dist/kinds/formatter.d.ts +4 -6
  328. package/dist/kinds/formatter.d.ts.map +1 -1
  329. package/dist/kinds/formatter.js +4 -3
  330. package/dist/kinds/formatter.js.map +1 -1
  331. package/dist/kinds/index.d.ts +3 -3
  332. package/dist/kinds/index.d.ts.map +1 -1
  333. package/dist/kinds/index.js +3 -3
  334. package/dist/kinds/index.js.map +1 -1
  335. package/dist/kinds/logger.d.ts +4 -4
  336. package/dist/kinds/logger.d.ts.map +1 -1
  337. package/dist/kinds/logger.impl.d.ts +40 -13
  338. package/dist/kinds/logger.impl.d.ts.map +1 -1
  339. package/dist/kinds/logger.impl.js +179 -87
  340. package/dist/kinds/logger.impl.js.map +1 -1
  341. package/dist/kinds/logger.js +21 -11
  342. package/dist/kinds/logger.js.map +1 -1
  343. package/dist/kinds/logger.utils.d.ts +31 -4
  344. package/dist/kinds/logger.utils.d.ts.map +1 -1
  345. package/dist/kinds/logger.utils.js +58 -18
  346. package/dist/kinds/logger.utils.js.map +1 -1
  347. package/dist/kinds/output.d.ts +5 -11
  348. package/dist/kinds/output.d.ts.map +1 -1
  349. package/dist/kinds/output.impl.d.ts +9 -7
  350. package/dist/kinds/output.impl.d.ts.map +1 -1
  351. package/dist/kinds/output.impl.js +51 -29
  352. package/dist/kinds/output.impl.js.map +1 -1
  353. package/dist/kinds/output.js +10 -5
  354. package/dist/kinds/output.js.map +1 -1
  355. package/dist/kinds/output.types.d.ts +26 -7
  356. package/dist/kinds/output.types.d.ts.map +1 -1
  357. package/dist/kinds/sink.d.ts +6 -5
  358. package/dist/kinds/sink.d.ts.map +1 -1
  359. package/dist/kinds/sink.js +14 -7
  360. package/dist/kinds/sink.js.map +1 -1
  361. package/dist/logger.context.descriptor.d.ts +15 -1
  362. package/dist/logger.context.descriptor.d.ts.map +1 -1
  363. package/dist/logger.context.descriptor.js +1 -1
  364. package/dist/logger.context.descriptor.js.map +1 -1
  365. package/dist/logging.consumer.plugin.d.ts +4 -0
  366. package/dist/logging.consumer.plugin.d.ts.map +1 -0
  367. package/dist/logging.consumer.plugin.js +17 -0
  368. package/dist/logging.consumer.plugin.js.map +1 -0
  369. package/dist/logging.plugin.d.ts +3 -3
  370. package/dist/logging.plugin.d.ts.map +1 -1
  371. package/dist/logging.plugin.js +81 -42
  372. package/dist/logging.plugin.js.map +1 -1
  373. package/dist/observability/building-host.d.ts +11 -0
  374. package/dist/observability/building-host.d.ts.map +1 -0
  375. package/dist/observability/building-host.js +11 -0
  376. package/dist/observability/building-host.js.map +1 -0
  377. package/dist/observability/config.d.ts +36 -0
  378. package/dist/observability/config.d.ts.map +1 -0
  379. package/dist/observability/config.js +46 -0
  380. package/dist/observability/config.js.map +1 -0
  381. package/dist/observability/http/instrumented-fetch.d.ts +19 -0
  382. package/dist/observability/http/instrumented-fetch.d.ts.map +1 -0
  383. package/dist/observability/http/instrumented-fetch.js +175 -0
  384. package/dist/observability/http/instrumented-fetch.js.map +1 -0
  385. package/dist/observability/index.d.ts +8 -0
  386. package/dist/observability/index.d.ts.map +1 -0
  387. package/dist/observability/index.js +10 -0
  388. package/dist/observability/index.js.map +1 -0
  389. package/dist/observability/lifecycle.d.ts +18 -0
  390. package/dist/observability/lifecycle.d.ts.map +1 -0
  391. package/dist/observability/lifecycle.js +44 -0
  392. package/dist/observability/lifecycle.js.map +1 -0
  393. package/dist/observability/observability/error-tracker.d.ts +43 -0
  394. package/dist/observability/observability/error-tracker.d.ts.map +1 -0
  395. package/dist/observability/observability/error-tracker.js +130 -0
  396. package/dist/observability/observability/error-tracker.js.map +1 -0
  397. package/dist/observability/should-keep-log.d.ts +8 -0
  398. package/dist/observability/should-keep-log.d.ts.map +1 -0
  399. package/dist/observability/should-keep-log.js +10 -0
  400. package/dist/observability/should-keep-log.js.map +1 -0
  401. package/dist/observability/telemetry/otel.d.ts +47 -0
  402. package/dist/observability/telemetry/otel.d.ts.map +1 -0
  403. package/dist/observability/telemetry/otel.js +542 -0
  404. package/dist/observability/telemetry/otel.js.map +1 -0
  405. package/dist/observability/telemetry/partial-success.d.ts +35 -0
  406. package/dist/observability/telemetry/partial-success.d.ts.map +1 -0
  407. package/dist/observability/telemetry/partial-success.js +94 -0
  408. package/dist/observability/telemetry/partial-success.js.map +1 -0
  409. package/dist/observability/telemetry/sdk-lifecycle.d.ts +37 -0
  410. package/dist/observability/telemetry/sdk-lifecycle.d.ts.map +1 -0
  411. package/dist/observability/telemetry/sdk-lifecycle.js +132 -0
  412. package/dist/observability/telemetry/sdk-lifecycle.js.map +1 -0
  413. package/dist/observability/telemetry/telemetry-root.d.ts +78 -0
  414. package/dist/observability/telemetry/telemetry-root.d.ts.map +1 -0
  415. package/dist/observability/telemetry/telemetry-root.js +79 -0
  416. package/dist/observability/telemetry/telemetry-root.js.map +1 -0
  417. package/dist/observability/telemetry-instrumentation.d.ts +76 -0
  418. package/dist/observability/telemetry-instrumentation.d.ts.map +1 -0
  419. package/dist/observability/telemetry-instrumentation.js +69 -0
  420. package/dist/observability/telemetry-instrumentation.js.map +1 -0
  421. package/dist/otel/index.d.ts +9 -0
  422. package/dist/otel/index.d.ts.map +1 -0
  423. package/dist/otel/index.js +12 -0
  424. package/dist/otel/index.js.map +1 -0
  425. package/dist/otel/logging-otel.plugin.d.ts +11 -0
  426. package/dist/otel/logging-otel.plugin.d.ts.map +1 -0
  427. package/dist/otel/logging-otel.plugin.js +27 -0
  428. package/dist/otel/logging-otel.plugin.js.map +1 -0
  429. package/dist/otel/sinks/otel/otel.descriptor.d.ts +10 -0
  430. package/dist/otel/sinks/otel/otel.descriptor.d.ts.map +1 -0
  431. package/dist/otel/sinks/otel/otel.descriptor.js +23 -0
  432. package/dist/otel/sinks/otel/otel.descriptor.js.map +1 -0
  433. package/dist/otel/sinks/otel/otel.impl.d.ts +47 -0
  434. package/dist/otel/sinks/otel/otel.impl.d.ts.map +1 -0
  435. package/dist/otel/sinks/otel/otel.impl.js +202 -0
  436. package/dist/otel/sinks/otel/otel.impl.js.map +1 -0
  437. package/dist/otel/sinks/otel/otlp-log-exporter.d.ts +76 -0
  438. package/dist/otel/sinks/otel/otlp-log-exporter.d.ts.map +1 -0
  439. package/dist/otel/sinks/otel/otlp-log-exporter.js +178 -0
  440. package/dist/otel/sinks/otel/otlp-log-exporter.js.map +1 -0
  441. package/dist/outputs/file/file.outputs.descriptor.d.ts +10 -0
  442. package/dist/outputs/file/file.outputs.descriptor.d.ts.map +1 -0
  443. package/dist/outputs/file/file.outputs.descriptor.js +32 -0
  444. package/dist/outputs/file/file.outputs.descriptor.js.map +1 -0
  445. package/dist/outputs/remote/remote.descriptor.d.ts +1 -1
  446. package/dist/outputs/remote/remote.descriptor.d.ts.map +1 -1
  447. package/dist/outputs/remote/remote.descriptor.js +1 -2
  448. package/dist/outputs/remote/remote.descriptor.js.map +1 -1
  449. package/dist/outputs/remote/remote.factory.d.ts +9 -0
  450. package/dist/outputs/remote/remote.factory.d.ts.map +1 -0
  451. package/dist/outputs/remote/remote.factory.js +16 -0
  452. package/dist/outputs/remote/remote.factory.js.map +1 -0
  453. package/dist/outputs/remote/remote.impl.d.ts +40 -4
  454. package/dist/outputs/remote/remote.impl.d.ts.map +1 -1
  455. package/dist/outputs/remote/remote.impl.js +224 -99
  456. package/dist/outputs/remote/remote.impl.js.map +1 -1
  457. package/dist/outputs.context.descriptor.d.ts +15 -1
  458. package/dist/outputs.context.descriptor.d.ts.map +1 -1
  459. package/dist/outputs.context.descriptor.js +1 -1
  460. package/dist/outputs.context.descriptor.js.map +1 -1
  461. package/dist/outputs.context.impl.d.ts +2 -1
  462. package/dist/outputs.context.impl.d.ts.map +1 -1
  463. package/dist/outputs.context.impl.js +17 -9
  464. package/dist/outputs.context.impl.js.map +1 -1
  465. package/dist/paths.d.ts +24 -3
  466. package/dist/paths.d.ts.map +1 -1
  467. package/dist/paths.js +63 -3
  468. package/dist/paths.js.map +1 -1
  469. package/dist/rotation/rotate-appended-file.d.ts +15 -0
  470. package/dist/rotation/rotate-appended-file.d.ts.map +1 -0
  471. package/dist/rotation/rotate-appended-file.js +20 -0
  472. package/dist/rotation/rotate-appended-file.js.map +1 -0
  473. package/dist/rotation/rotation-policy.d.ts +19 -0
  474. package/dist/rotation/rotation-policy.d.ts.map +1 -0
  475. package/dist/rotation/rotation-policy.js +37 -0
  476. package/dist/rotation/rotation-policy.js.map +1 -0
  477. package/dist/schemas/audit.d.ts +25 -7
  478. package/dist/schemas/audit.d.ts.map +1 -1
  479. package/dist/schemas/audit.js +10 -4
  480. package/dist/schemas/audit.js.map +1 -1
  481. package/dist/schemas/entry.d.ts +11 -5
  482. package/dist/schemas/entry.d.ts.map +1 -1
  483. package/dist/schemas/entry.js +3 -2
  484. package/dist/schemas/entry.js.map +1 -1
  485. package/dist/schemas/file-host.d.ts +86 -0
  486. package/dist/schemas/file-host.d.ts.map +1 -0
  487. package/dist/schemas/file-host.js +10 -0
  488. package/dist/schemas/file-host.js.map +1 -0
  489. package/dist/schemas/formatter.d.ts +11 -1
  490. package/dist/schemas/formatter.d.ts.map +1 -1
  491. package/dist/schemas/formatter.js +1 -1
  492. package/dist/schemas/formatter.js.map +1 -1
  493. package/dist/schemas/index.d.ts +3 -2
  494. package/dist/schemas/index.d.ts.map +1 -1
  495. package/dist/schemas/index.js +3 -2
  496. package/dist/schemas/index.js.map +1 -1
  497. package/dist/schemas/logger.d.ts +16 -1
  498. package/dist/schemas/logger.d.ts.map +1 -1
  499. package/dist/schemas/logger.js +6 -1
  500. package/dist/schemas/logger.js.map +1 -1
  501. package/dist/schemas/output-defaults.d.ts +44 -0
  502. package/dist/schemas/output-defaults.d.ts.map +1 -0
  503. package/dist/schemas/output-defaults.js +53 -0
  504. package/dist/schemas/output-defaults.js.map +1 -0
  505. package/dist/schemas/output.d.ts +25 -1
  506. package/dist/schemas/output.d.ts.map +1 -1
  507. package/dist/schemas/output.js +29 -2
  508. package/dist/schemas/output.js.map +1 -1
  509. package/dist/schemas/sink.d.ts +32 -1
  510. package/dist/schemas/sink.d.ts.map +1 -1
  511. package/dist/schemas/sink.js +17 -1
  512. package/dist/schemas/sink.js.map +1 -1
  513. package/dist/sinks/buffer/buffer.descriptor.js +1 -1
  514. package/dist/sinks/buffer/buffer.descriptor.js.map +1 -1
  515. package/dist/sinks/buffer/{buffer.impl.cli.d.ts → buffer.impl.d.ts} +3 -3
  516. package/dist/sinks/buffer/buffer.impl.d.ts.map +1 -0
  517. package/dist/sinks/buffer/buffer.impl.js +42 -0
  518. package/dist/sinks/buffer/buffer.impl.js.map +1 -0
  519. package/dist/sinks/console/console.descriptor.js +1 -1
  520. package/dist/sinks/console/console.descriptor.js.map +1 -1
  521. package/dist/sinks/console/console.impl.browser.d.ts +4 -3
  522. package/dist/sinks/console/console.impl.browser.d.ts.map +1 -1
  523. package/dist/sinks/console/console.impl.browser.js +11 -14
  524. package/dist/sinks/console/console.impl.browser.js.map +1 -1
  525. package/dist/sinks/console/{console.impl.cli.d.ts → console.impl.consumer.d.ts} +5 -4
  526. package/dist/sinks/console/console.impl.consumer.d.ts.map +1 -0
  527. package/dist/sinks/console/{console.impl.cli.js → console.impl.consumer.js} +16 -8
  528. package/dist/sinks/console/console.impl.consumer.js.map +1 -0
  529. package/dist/sinks/file/file.sinks.descriptor.d.ts +10 -0
  530. package/dist/sinks/file/file.sinks.descriptor.d.ts.map +1 -0
  531. package/dist/sinks/file/file.sinks.descriptor.js +23 -0
  532. package/dist/sinks/file/file.sinks.descriptor.js.map +1 -0
  533. package/dist/sinks/index.d.ts +1 -1
  534. package/dist/sinks/index.d.ts.map +1 -1
  535. package/dist/sinks/memory/memory.descriptor.d.ts +1 -1
  536. package/dist/sinks/memory/memory.descriptor.js +2 -2
  537. package/dist/sinks/memory/memory.descriptor.js.map +1 -1
  538. package/dist/sinks/memory/memory.impl.d.ts +5 -11
  539. package/dist/sinks/memory/memory.impl.d.ts.map +1 -1
  540. package/dist/sinks/memory/memory.impl.js +46 -21
  541. package/dist/sinks/memory/memory.impl.js.map +1 -1
  542. package/dist/sinks/stdout/stdout.descriptor.js +1 -1
  543. package/dist/sinks/stdout/stdout.descriptor.js.map +1 -1
  544. package/dist/sinks/stdout/{stdout.impl.cli.d.ts → stdout.impl.d.ts} +5 -4
  545. package/dist/sinks/stdout/stdout.impl.d.ts.map +1 -0
  546. package/dist/sinks/stdout/stdout.impl.js +29 -0
  547. package/dist/sinks/stdout/stdout.impl.js.map +1 -0
  548. package/dist/sinks.context.descriptor.d.ts +15 -1
  549. package/dist/sinks.context.descriptor.d.ts.map +1 -1
  550. package/dist/sinks.context.descriptor.js +1 -1
  551. package/dist/sinks.context.descriptor.js.map +1 -1
  552. package/dist/sinks.context.impl.d.ts +2 -1
  553. package/dist/sinks.context.impl.d.ts.map +1 -1
  554. package/dist/sinks.context.impl.js +17 -9
  555. package/dist/sinks.context.impl.js.map +1 -1
  556. package/dist/stdout-capture/mcp-frame.d.ts +23 -0
  557. package/dist/stdout-capture/mcp-frame.d.ts.map +1 -0
  558. package/dist/stdout-capture/mcp-frame.js +80 -0
  559. package/dist/stdout-capture/mcp-frame.js.map +1 -0
  560. package/dist/stdout-capture/stdout-capture.descriptor.d.ts +10 -0
  561. package/dist/stdout-capture/stdout-capture.descriptor.d.ts.map +1 -0
  562. package/dist/stdout-capture/stdout-capture.descriptor.js +17 -0
  563. package/dist/stdout-capture/stdout-capture.descriptor.js.map +1 -0
  564. package/dist/stdout-capture/stdout-capture.impl.d.ts +19 -0
  565. package/dist/stdout-capture/stdout-capture.impl.d.ts.map +1 -0
  566. package/dist/stdout-capture/stdout-capture.impl.js +49 -0
  567. package/dist/stdout-capture/stdout-capture.impl.js.map +1 -0
  568. package/dist/stdout-capture/stdout-capture.lease.d.ts +45 -0
  569. package/dist/stdout-capture/stdout-capture.lease.d.ts.map +1 -0
  570. package/dist/stdout-capture/stdout-capture.lease.js +338 -0
  571. package/dist/stdout-capture/stdout-capture.lease.js.map +1 -0
  572. package/dist/stdout-capture/stdout-capture.output.descriptor.d.ts +4 -0
  573. package/dist/stdout-capture/stdout-capture.output.descriptor.d.ts.map +1 -0
  574. package/dist/stdout-capture/stdout-capture.output.descriptor.js +18 -0
  575. package/dist/stdout-capture/stdout-capture.output.descriptor.js.map +1 -0
  576. package/dist/stdout-capture/stdout-capture.state.d.ts +29 -0
  577. package/dist/stdout-capture/stdout-capture.state.d.ts.map +1 -0
  578. package/dist/stdout-capture/stdout-capture.state.js +80 -0
  579. package/dist/stdout-capture/stdout-capture.state.js.map +1 -0
  580. package/dist/stdout-capture.d.ts +24 -0
  581. package/dist/stdout-capture.d.ts.map +1 -0
  582. package/dist/stdout-capture.js +28 -0
  583. package/dist/stdout-capture.js.map +1 -0
  584. package/dist/stdout-capture.plugin.d.ts +7 -0
  585. package/dist/stdout-capture.plugin.d.ts.map +1 -0
  586. package/dist/stdout-capture.plugin.js +28 -0
  587. package/dist/stdout-capture.plugin.js.map +1 -0
  588. package/package.json +308 -224
  589. package/dist/contexts/audit.d.ts +0 -34
  590. package/dist/contexts/audit.d.ts.map +0 -1
  591. package/dist/contexts/audit.js +0 -13
  592. package/dist/contexts/audit.js.map +0 -1
  593. package/dist/formatters/index.d.ts +0 -7
  594. package/dist/formatters/index.d.ts.map +0 -1
  595. package/dist/formatters/index.js +0 -8
  596. package/dist/formatters/index.js.map +0 -1
  597. package/dist/formatters/pretty/pretty.impl.cli.d.ts.map +0 -1
  598. package/dist/formatters/pretty/pretty.impl.cli.js.map +0 -1
  599. package/dist/kinds/logger.contracts.d.ts +0 -16
  600. package/dist/kinds/logger.contracts.d.ts.map +0 -1
  601. package/dist/kinds/logger.contracts.js +0 -9
  602. package/dist/kinds/logger.contracts.js.map +0 -1
  603. package/dist/kinds/output.contracts.d.ts +0 -50
  604. package/dist/kinds/output.contracts.d.ts.map +0 -1
  605. package/dist/kinds/output.contracts.js +0 -10
  606. package/dist/kinds/output.contracts.js.map +0 -1
  607. package/dist/logging.cli.plugin.d.ts.map +0 -1
  608. package/dist/logging.cli.plugin.js +0 -39
  609. package/dist/logging.cli.plugin.js.map +0 -1
  610. package/dist/outputs/index.d.ts +0 -7
  611. package/dist/outputs/index.d.ts.map +0 -1
  612. package/dist/outputs/index.js +0 -8
  613. package/dist/outputs/index.js.map +0 -1
  614. package/dist/sinks/buffer/buffer.impl.cli.d.ts.map +0 -1
  615. package/dist/sinks/buffer/buffer.impl.cli.js +0 -34
  616. package/dist/sinks/buffer/buffer.impl.cli.js.map +0 -1
  617. package/dist/sinks/console/console.impl.cli.d.ts.map +0 -1
  618. package/dist/sinks/console/console.impl.cli.js.map +0 -1
  619. package/dist/sinks/stdout/stdout.impl.cli.d.ts.map +0 -1
  620. package/dist/sinks/stdout/stdout.impl.cli.js +0 -21
  621. package/dist/sinks/stdout/stdout.impl.cli.js.map +0 -1
  622. package/src/audit/audit.descriptor.ts +0 -45
  623. package/src/audit/audit.storage.schema.ts +0 -57
  624. package/src/audit/index.ts +0 -8
  625. package/src/cli/logs.descriptor.ts +0 -19
  626. package/src/cli/logs.list.descriptor.ts +0 -28
  627. package/src/cli/logs.list.impl.ts +0 -93
  628. package/src/cli/logs.rotate.descriptor.ts +0 -40
  629. package/src/cli/logs.rotate.impl.ts +0 -61
  630. package/src/cli/logs.search.descriptor.ts +0 -61
  631. package/src/cli/logs.search.impl.ts +0 -173
  632. package/src/cli/logs.tail.descriptor.ts +0 -49
  633. package/src/cli/logs.tail.impl.ts +0 -105
  634. package/src/cli/logs.view.descriptor.ts +0 -57
  635. package/src/cli/logs.view.impl.ts +0 -108
  636. package/src/cli/types.ts +0 -59
  637. package/src/contexts/audit.ts +0 -36
  638. package/src/contexts/fallback-logger.ts +0 -80
  639. package/src/contexts/index.ts +0 -23
  640. package/src/contexts/logger.ts +0 -119
  641. package/src/core/index.ts +0 -32
  642. package/src/core/logger.ts +0 -150
  643. package/src/core/namespace.ts +0 -195
  644. package/src/core/parsing.ts +0 -21
  645. package/src/core/types.ts +0 -82
  646. package/src/docs/levels.docs.descriptor.ts +0 -344
  647. package/src/docs/structured.docs.descriptor.ts +0 -444
  648. package/src/docs/transports.docs.descriptor.ts +0 -428
  649. package/src/formatters/index.ts +0 -6
  650. package/src/formatters/json/json.formatters.descriptor.ts +0 -25
  651. package/src/formatters/json/json.impl.ts +0 -41
  652. package/src/formatters/json5/json5.descriptor.ts +0 -25
  653. package/src/formatters/json5/json5.impl.ts +0 -43
  654. package/src/formatters/jsonl/jsonl.descriptor.ts +0 -26
  655. package/src/formatters/jsonl/jsonl.impl.ts +0 -39
  656. package/src/formatters/pretty/pretty.descriptor.ts +0 -26
  657. package/src/formatters/pretty/pretty.impl.cli.ts +0 -101
  658. package/src/index.ts +0 -190
  659. package/src/kinds/audit.ts +0 -169
  660. package/src/kinds/contexts.ts +0 -22
  661. package/src/kinds/formatter.ts +0 -117
  662. package/src/kinds/index.ts +0 -25
  663. package/src/kinds/logger.contracts.ts +0 -17
  664. package/src/kinds/logger.impl.ts +0 -206
  665. package/src/kinds/logger.ts +0 -46
  666. package/src/kinds/logger.utils.ts +0 -91
  667. package/src/kinds/output.contracts.ts +0 -54
  668. package/src/kinds/output.impl.ts +0 -118
  669. package/src/kinds/output.ts +0 -59
  670. package/src/kinds/output.types.ts +0 -105
  671. package/src/kinds/sink.ts +0 -100
  672. package/src/logger.context.descriptor.ts +0 -13
  673. package/src/logging.cli.plugin.ts +0 -43
  674. package/src/logging.plugin.ts +0 -93
  675. package/src/outputs/index.ts +0 -6
  676. package/src/outputs/remote/remote.descriptor.ts +0 -27
  677. package/src/outputs/remote/remote.impl.ts +0 -218
  678. package/src/outputs.context.descriptor.ts +0 -10
  679. package/src/outputs.context.impl.ts +0 -30
  680. package/src/paths.ts +0 -10
  681. package/src/schemas/audit.ts +0 -98
  682. package/src/schemas/entry.ts +0 -88
  683. package/src/schemas/formatter.ts +0 -37
  684. package/src/schemas/index.ts +0 -80
  685. package/src/schemas/logger.ts +0 -38
  686. package/src/schemas/output.ts +0 -62
  687. package/src/schemas/sink.ts +0 -39
  688. package/src/sinks/buffer/buffer.descriptor.ts +0 -13
  689. package/src/sinks/buffer/buffer.impl.cli.ts +0 -49
  690. package/src/sinks/console/console.descriptor.ts +0 -20
  691. package/src/sinks/console/console.impl.browser.ts +0 -69
  692. package/src/sinks/console/console.impl.cli.ts +0 -71
  693. package/src/sinks/index.ts +0 -8
  694. package/src/sinks/memory/memory.descriptor.ts +0 -20
  695. package/src/sinks/memory/memory.impl.ts +0 -119
  696. package/src/sinks/stdout/stdout.descriptor.ts +0 -13
  697. package/src/sinks/stdout/stdout.impl.cli.ts +0 -27
  698. package/src/sinks.context.descriptor.ts +0 -10
  699. package/src/sinks.context.impl.ts +0 -30
@@ -0,0 +1,94 @@
1
+ import * as z from 'zod/v4';
2
+ import { attempt } from "../../core/outcome.js";
3
+ import { OtlpExportResponseSchema, readOtlpPartialRejection } from "../../core/otlp-partial-success.js";
4
+ /** The message the SDK's export delegate gives its diag logger for a partial success; its one argument is the JSON of `partialSuccess`. */
5
+ export const SDK_PARTIAL_SUCCESS_MESSAGE = 'Received Partial Success response:';
6
+ const SIGNALS = ['traces', 'metrics', 'logs'];
7
+ /** The SDK's JSON text of a `partialSuccess`, parsed; anything else is not a partial success. */
8
+ const PartialSuccessJsonSchema = z.string().transform((text, context) => {
9
+ const parsed = attempt(() => JSON.parse(text));
10
+ if (!parsed.failed)
11
+ return z.unknown().parse(parsed.value);
12
+ context.issues.push({ code: 'custom', message: 'not JSON', input: undefined });
13
+ return z.NEVER;
14
+ });
15
+ /** The diag message arguments, as the SDK passes them: the partial success JSON first. */
16
+ const DiagArgumentsSchema = z.tuple([PartialSuccessJsonSchema], z.unknown());
17
+ /**
18
+ * A diag logger that reports the SDK's partial-success warning, once per
19
+ * response, through `report`: the signal (by which rejected-record field it
20
+ * carries), the count and the collector's message scrubbed of `endpoint`'s
21
+ * credentials and the exporters' header values (`secrets`). A partial success
22
+ * that rejected nothing is not a failure and is not reported.
23
+ */
24
+ export function createPartialSuccessDiagLogger(endpoint, secrets, report) {
25
+ const drop = () => { };
26
+ return {
27
+ error: drop, info: drop, debug: drop, verbose: drop,
28
+ warn(message, ...args) {
29
+ if (message !== SDK_PARTIAL_SUCCESS_MESSAGE)
30
+ return;
31
+ const parsed = DiagArgumentsSchema.safeParse(args);
32
+ if (!parsed.success)
33
+ return;
34
+ const response = OtlpExportResponseSchema.safeParse({ partialSuccess: parsed.data[0] });
35
+ if (!response.success)
36
+ return;
37
+ for (const signal of SIGNALS) {
38
+ const rejection = readOtlpPartialRejection(signal, response.data, endpoint, secrets);
39
+ if (rejection) {
40
+ report(rejection);
41
+ return;
42
+ }
43
+ }
44
+ }
45
+ };
46
+ }
47
+ /**
48
+ * The OpenTelemetry API's process registry, as its cross-copy singleton
49
+ * protocol keys it (one global slot per API major version; `@opentelemetry/api`
50
+ * 1.x). The diag API offers no read of the logger it holds, so this is the one
51
+ * place that reads it: to put back a host's diag logger when Logging's goes.
52
+ */
53
+ const OTEL_API_REGISTRY_KEY = Symbol.for('opentelemetry.js.api.1');
54
+ /** One diag level's method. */
55
+ const DiagMethodSchema = z.custom((value) => typeof value === 'function');
56
+ /** A diag logger: every level a method. A read that throws throws out of the parse, and the reader below catches it. */
57
+ const DiagLoggerSchema = z.object({ error: DiagMethodSchema, warn: DiagMethodSchema, info: DiagMethodSchema, debug: DiagMethodSchema, verbose: DiagMethodSchema });
58
+ const OtelApiRegistrySchema = z.object({ diag: z.unknown() });
59
+ /**
60
+ * The diag logger the registry holds now (a host's, Logging's or none), as a
61
+ * copy carrying the registered wrapper's own bound methods, so two reads of one
62
+ * registration share their method identities; a registry that cannot be read
63
+ * holds none.
64
+ */
65
+ function registeredDiagLogger() {
66
+ const read = attempt(() => {
67
+ const registry = OtelApiRegistrySchema.safeParse(Object.getOwnPropertyDescriptor(globalThis, OTEL_API_REGISTRY_KEY)?.value);
68
+ const logger = registry.success ? DiagLoggerSchema.safeParse(registry.data.diag) : undefined;
69
+ return logger?.success ? logger.data : undefined;
70
+ });
71
+ return read.failed ? undefined : read.value;
72
+ }
73
+ /**
74
+ * Install `reporter` as the process diag logger (level `warn`) and answer its
75
+ * release. The release puts back the diag logger a host set before it (at the
76
+ * host's own level), or leaves none when there was none; when something else
77
+ * replaced Logging's logger in the meantime, the release leaves that one alone.
78
+ */
79
+ export function installPartialSuccessDiagLogger(api, reporter) {
80
+ const previous = registeredDiagLogger();
81
+ api.diag.setLogger(reporter, { logLevel: api.DiagLogLevel.WARN, suppressOverrideMessage: true });
82
+ const installed = registeredDiagLogger();
83
+ return () => {
84
+ // Still Logging's registration when its bound `warn` is the one the registry holds.
85
+ if (installed === undefined || registeredDiagLogger()?.warn !== installed.warn)
86
+ return;
87
+ // The previous entry is the host's logger already wrapped at its level, so it is put back passing every level.
88
+ if (previous)
89
+ api.diag.setLogger(previous, { logLevel: api.DiagLogLevel.ALL, suppressOverrideMessage: true });
90
+ else
91
+ api.diag.disable();
92
+ };
93
+ }
94
+ //# sourceMappingURL=partial-success.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"partial-success.js","sourceRoot":"","sources":["../../../src/observability/telemetry/partial-success.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,37 @@
1
+ export interface TelemetrySdkResource {
2
+ start(): void | Promise<void>;
3
+ shutdown(): Promise<void>;
4
+ }
5
+ export interface TelemetryInitializationFailure {
6
+ initializationError: unknown;
7
+ cleanupError?: unknown;
8
+ }
9
+ export interface TelemetryLifecycleCallbacks {
10
+ onStarted?(): void;
11
+ onInitializationFailure?(failure: TelemetryInitializationFailure): void;
12
+ }
13
+ /**
14
+ * Owns one OpenTelemetry SDK through initialization and shutdown.
15
+ *
16
+ * Initialization is deliberately non-throwing because telemetry must not take
17
+ * down its host. A partially started SDK is shut down immediately; if that
18
+ * cleanup fails, the SDK remains owned so an explicit shutdown can retry.
19
+ */
20
+ export declare class TelemetrySdkLifecycle<TSdk extends TelemetrySdkResource> {
21
+ private sdk;
22
+ private initialized;
23
+ private initializationPromise;
24
+ private shutdownPromise;
25
+ isInitialized(): boolean;
26
+ /** Whether this lifecycle holds an SDK: started, or an initialization still in flight. */
27
+ isHeld(): boolean;
28
+ initialize(createSdk: () => Promise<TSdk | null>, callbacks?: TelemetryLifecycleCallbacks): Promise<void>;
29
+ shutdown(): Promise<void>;
30
+ private shutdownOnce;
31
+ private initializeOnce;
32
+ private attemptInitialization;
33
+ /** Shut one SDK down, releasing ownership only once it has shut down. */
34
+ private release;
35
+ private reportInitializationFailure;
36
+ }
37
+ //# sourceMappingURL=sdk-lifecycle.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"sdk-lifecycle.d.ts","sourceRoot":"","sources":["../../../src/observability/telemetry/sdk-lifecycle.ts"],"names":[],"mappings":"AAEA,MAAM,WAAW,oBAAoB;IACpC,KAAK,IAAI,IAAI,GAAG,OAAO,CAAC,IAAI,CAAC,CAAC;IAC9B,QAAQ,IAAI,OAAO,CAAC,IAAI,CAAC,CAAC;CAC1B;AAED,MAAM,WAAW,8BAA8B;IAC9C,mBAAmB,EAAE,OAAO,CAAC;IAC7B,YAAY,CAAC,EAAE,OAAO,CAAC;CACvB;AAED,MAAM,WAAW,2BAA2B;IAC3C,SAAS,CAAC,IAAI,IAAI,CAAC;IACnB,uBAAuB,CAAC,CAAC,OAAO,EAAE,8BAA8B,GAAG,IAAI,CAAC;CACxE;AAaD;;;;;;GAMG;AACH,qBAAa,qBAAqB,CAAC,IAAI,SAAS,oBAAoB;IACnE,OAAO,CAAC,GAAG,CAAqB;IAChC,OAAO,CAAC,WAAW,CAAS;IAC5B,OAAO,CAAC,qBAAqB,CAA8B;IAC3D,OAAO,CAAC,eAAe,CAA8B;IAErD,aAAa,IAAI,OAAO;IAIxB,0FAA0F;IAC1F,MAAM,IAAI,OAAO;IAIjB,UAAU,CACT,SAAS,EAAE,MAAM,OAAO,CAAC,IAAI,GAAG,IAAI,CAAC,EACrC,SAAS,GAAE,2BAAgC,GACzC,OAAO,CAAC,IAAI,CAAC;IAahB,QAAQ,IAAI,OAAO,CAAC,IAAI,CAAC;YAYX,YAAY;YAYZ,cAAc;YASd,qBAAqB;IAkDnC,yEAAyE;YAC3D,OAAO;IAUrB,OAAO,CAAC,2BAA2B;CAcnC"}
@@ -0,0 +1,132 @@
1
+ import { CapabilityError } from '@vibesdotdev/kernel';
2
+ /**
3
+ * Owns one OpenTelemetry SDK through initialization and shutdown.
4
+ *
5
+ * Initialization is deliberately non-throwing because telemetry must not take
6
+ * down its host. A partially started SDK is shut down immediately; if that
7
+ * cleanup fails, the SDK remains owned so an explicit shutdown can retry.
8
+ */
9
+ export class TelemetrySdkLifecycle {
10
+ sdk = null;
11
+ initialized = false;
12
+ initializationPromise = null;
13
+ shutdownPromise = null;
14
+ isInitialized() {
15
+ return this.initialized;
16
+ }
17
+ /** Whether this lifecycle holds an SDK: started, or an initialization still in flight. */
18
+ isHeld() {
19
+ return this.initialized || this.initializationPromise !== null;
20
+ }
21
+ initialize(createSdk, callbacks = {}) {
22
+ if (this.initialized)
23
+ return Promise.resolve();
24
+ if (this.initializationPromise)
25
+ return this.initializationPromise;
26
+ const initializeOperation = this.initializeOnce(this.shutdownPromise, createSdk, callbacks).finally(() => {
27
+ if (this.initializationPromise === initializeOperation) {
28
+ this.initializationPromise = null;
29
+ }
30
+ });
31
+ this.initializationPromise = initializeOperation;
32
+ return initializeOperation;
33
+ }
34
+ shutdown() {
35
+ if (this.shutdownPromise)
36
+ return this.shutdownPromise;
37
+ const shutdownOperation = this.shutdownOnce(this.initializationPromise).finally(() => {
38
+ if (this.shutdownPromise === shutdownOperation) {
39
+ this.shutdownPromise = null;
40
+ }
41
+ });
42
+ this.shutdownPromise = shutdownOperation;
43
+ return shutdownOperation;
44
+ }
45
+ async shutdownOnce(pendingInitialization) {
46
+ if (pendingInitialization)
47
+ await pendingInitialization;
48
+ const activeSdk = this.sdk;
49
+ if (!activeSdk)
50
+ return;
51
+ await activeSdk.shutdown();
52
+ if (this.sdk === activeSdk) {
53
+ this.sdk = null;
54
+ this.initialized = false;
55
+ }
56
+ }
57
+ async initializeOnce(pendingShutdown, createSdk, callbacks) {
58
+ const outcome = await this.attemptInitialization(pendingShutdown, createSdk, callbacks);
59
+ if (outcome.failure)
60
+ this.reportInitializationFailure(callbacks, outcome.failure);
61
+ }
62
+ async attemptInitialization(pendingShutdown, createSdk, callbacks) {
63
+ if (pendingShutdown) {
64
+ try {
65
+ await pendingShutdown;
66
+ }
67
+ catch (error) {
68
+ return {
69
+ failure: {
70
+ initializationError: new Error('OpenTelemetry initialization could not start because prior shutdown failed', { cause: error })
71
+ }
72
+ };
73
+ }
74
+ }
75
+ if (this.sdk) {
76
+ const partialRelease = await this.release(this.sdk);
77
+ if (!partialRelease.released) {
78
+ return {
79
+ failure: {
80
+ initializationError: new Error('OpenTelemetry still owns a partially initialized SDK'),
81
+ cleanupError: partialRelease.cleanupError
82
+ }
83
+ };
84
+ }
85
+ }
86
+ let candidate = null;
87
+ try {
88
+ candidate = await createSdk();
89
+ if (!candidate)
90
+ return { failure: null };
91
+ this.sdk = candidate;
92
+ await candidate.start();
93
+ this.initialized = true;
94
+ callbacks.onStarted?.();
95
+ return { failure: null };
96
+ }
97
+ catch (initializationError) {
98
+ this.initialized = false;
99
+ const failure = { initializationError };
100
+ const candidateRelease = candidate ? await this.release(candidate) : null;
101
+ if (candidateRelease && !candidateRelease.released)
102
+ failure.cleanupError = candidateRelease.cleanupError;
103
+ return { failure };
104
+ }
105
+ }
106
+ /** Shut one SDK down, releasing ownership only once it has shut down. */
107
+ async release(sdk) {
108
+ try {
109
+ await sdk.shutdown();
110
+ if (this.sdk === sdk)
111
+ this.sdk = null;
112
+ return { released: true };
113
+ }
114
+ catch (cleanupError) {
115
+ return { released: false, cleanupError };
116
+ }
117
+ }
118
+ reportInitializationFailure(callbacks, failure) {
119
+ try {
120
+ callbacks.onInitializationFailure?.(failure);
121
+ }
122
+ catch (error) {
123
+ // A reporter cancelled with its runtime has nowhere left to report,
124
+ // so initialization stays fail-open. Any other reporter failure is
125
+ // a defect and propagates.
126
+ if (error instanceof CapabilityError && error.code === 'CANCELLED')
127
+ return;
128
+ throw error;
129
+ }
130
+ }
131
+ }
132
+ //# sourceMappingURL=sdk-lifecycle.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"sdk-lifecycle.js","sourceRoot":"","sources":["../../../src/observability/telemetry/sdk-lifecycle.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,78 @@
1
+ /**
2
+ * Per-Runtime telemetry state and the one process-wide fact telemetry cannot
3
+ * avoid.
4
+ *
5
+ * Everything Logging keeps about telemetry belongs to the Root that started
6
+ * it: its SDK lifecycle and its last typed outcome, keyed by that Root's
7
+ * `loggingRootOf(runtime)`. The Root, its plugin views, every reload generation
8
+ * and the generation dispatcher reach the same state (a generation asking is
9
+ * the Root asking, never another Runtime); two Roots in one process never
10
+ * share it.
11
+ *
12
+ * The OpenTelemetry SDK is the exception. `NodeSDK.start()` registers the
13
+ * tracer, meter and logger providers and patches the instrumented modules in
14
+ * the one global registry of the process (`@opentelemetry/api`'s own global),
15
+ * and a second registration is silently ignored by the SDK. Two Roots cannot
16
+ * each own that registry, so the first Root to start telemetry owns it and any
17
+ * other Root that asks gets a typed `CONFLICT` refusal, not a warning and not
18
+ * a no-op. The SDK's diag logger is the same kind of process-wide fact: the
19
+ * owner Root installs the partial-success reporter on it when its SDK starts
20
+ * and removes it when that SDK shuts down. The claim lasts while the owner's SDK is held (started or starting)
21
+ * and ends when it shuts down (`shutdownTelemetry`, `disposeObservability`,
22
+ * or Logging's last finalization on the Root) or fails to start. A
23
+ * generation's retirement does not end it, nor does disposing a Root whose SDK
24
+ * nobody stopped: the registry is still taken.
25
+ */
26
+ import { CapabilityError, type RuntimeRef } from '@vibesdotdev/kernel';
27
+ import type { LoggedError } from '../../core/redact.ts';
28
+ import type { TelemetryHeadersSource } from '../../core/otlp-headers.ts';
29
+ import { TelemetrySdkLifecycle, type TelemetrySdkResource } from './sdk-lifecycle.ts';
30
+ /**
31
+ * The typed outcome of a Runtime's last `initializeTelemetry` call, observable through
32
+ * `getTelemetryStatus(runtime).outcome` and `getTelemetryInitializationOutcome(runtime)`.
33
+ * A host that does not start telemetry says why; nothing is silently skipped.
34
+ */
35
+ export type TelemetryInitializationOutcome = {
36
+ readonly status: 'not-attempted';
37
+ } | {
38
+ readonly status: 'started';
39
+ readonly headers: TelemetryHeadersSource;
40
+ } | {
41
+ readonly status: 'already-initialized';
42
+ } | {
43
+ readonly status: 'disabled';
44
+ readonly reason: 'explicit-off' | 'not-enabled';
45
+ } | {
46
+ readonly status: 'unavailable';
47
+ readonly reason: 'otel-modules-absent';
48
+ readonly absentModules: readonly string[];
49
+ } | {
50
+ readonly status: 'unavailable';
51
+ readonly reason: 'trace-exporter-absent';
52
+ } | {
53
+ readonly status: 'failed';
54
+ readonly reason: 'telemetry-config-invalid' | 'otel-headers-unresolved' | 'otel-ambient-headers' | 'initialization-failed' | 'concurrent-initialization-failed' | 'telemetry-owned-by-another-runtime';
55
+ readonly error: LoggedError | null;
56
+ };
57
+ /** One Root's telemetry: its SDK, its last outcome, and the diag logger it installed while it owns the registry. */
58
+ export interface TelemetryRootState {
59
+ readonly sdk: TelemetrySdkLifecycle<TelemetrySdkResource>;
60
+ outcome: TelemetryInitializationOutcome;
61
+ /** Removes the partial-success diag logger this Root installed when its SDK started; set only while it is installed. */
62
+ releaseDiagnostics?: () => void;
63
+ }
64
+ /** This Root's telemetry state, created on first use. */
65
+ export declare function telemetryStateFor(runtime: RuntimeRef): TelemetryRootState;
66
+ /** This Root's telemetry state if it ever asked for any. */
67
+ export declare function existingTelemetryState(runtime: RuntimeRef): TelemetryRootState | undefined;
68
+ /**
69
+ * Claim the process's OpenTelemetry registry for `runtime`'s Root. Returns the
70
+ * typed refusal when another Root holds an SDK on it; the owning Root (through
71
+ * any of its runtimes) claims again without conflict.
72
+ */
73
+ export declare function claimTelemetryRegistry(runtime: RuntimeRef): CapabilityError | null;
74
+ /** End `runtime`'s Root's claim on the OpenTelemetry registry; another Root's claim is untouched. */
75
+ export declare function releaseTelemetryRegistry(runtime: RuntimeRef): void;
76
+ /** Shut down this Root's SDK, if it started one, and end its registry claim once it has stopped. */
77
+ export declare function shutdownRuntimeTelemetry(runtime: RuntimeRef): Promise<void>;
78
+ //# sourceMappingURL=telemetry-root.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"telemetry-root.d.ts","sourceRoot":"","sources":["../../../src/observability/telemetry/telemetry-root.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;;;;;;;;;;;GAwBG;AAEH,OAAO,EAAE,eAAe,EAAE,KAAK,UAAU,EAAE,MAAM,qBAAqB,CAAC;AACvE,OAAO,KAAK,EAAE,WAAW,EAAE,MAAM,sBAAsB,CAAC;AACxD,OAAO,KAAK,EAAE,sBAAsB,EAAE,MAAM,4BAA4B,CAAC;AACzE,OAAO,EAAE,qBAAqB,EAAE,KAAK,oBAAoB,EAAE,MAAM,oBAAoB,CAAC;AAItF;;;;GAIG;AACH,MAAM,MAAM,8BAA8B,GACvC;IAAE,QAAQ,CAAC,MAAM,EAAE,eAAe,CAAA;CAAE,GACpC;IAAE,QAAQ,CAAC,MAAM,EAAE,SAAS,CAAC;IAAC,QAAQ,CAAC,OAAO,EAAE,sBAAsB,CAAA;CAAE,GACxE;IAAE,QAAQ,CAAC,MAAM,EAAE,qBAAqB,CAAA;CAAE,GAC1C;IAAE,QAAQ,CAAC,MAAM,EAAE,UAAU,CAAC;IAAC,QAAQ,CAAC,MAAM,EAAE,cAAc,GAAG,aAAa,CAAA;CAAE,GAChF;IAAE,QAAQ,CAAC,MAAM,EAAE,aAAa,CAAC;IAAC,QAAQ,CAAC,MAAM,EAAE,qBAAqB,CAAC;IAAC,QAAQ,CAAC,aAAa,EAAE,SAAS,MAAM,EAAE,CAAA;CAAE,GACrH;IAAE,QAAQ,CAAC,MAAM,EAAE,aAAa,CAAC;IAAC,QAAQ,CAAC,MAAM,EAAE,uBAAuB,CAAA;CAAE,GAC5E;IAAE,QAAQ,CAAC,MAAM,EAAE,QAAQ,CAAC;IAAC,QAAQ,CAAC,MAAM,EAAE,0BAA0B,GAAG,yBAAyB,GAAG,sBAAsB,GAAG,uBAAuB,GAAG,kCAAkC,GAAG,oCAAoC,CAAC;IAAC,QAAQ,CAAC,KAAK,EAAE,WAAW,GAAG,IAAI,CAAA;CAAE,CAAC;AAE7Q,oHAAoH;AACpH,MAAM,WAAW,kBAAkB;IAClC,QAAQ,CAAC,GAAG,EAAE,qBAAqB,CAAC,oBAAoB,CAAC,CAAC;IAC1D,OAAO,EAAE,8BAA8B,CAAC;IACxC,wHAAwH;IACxH,kBAAkB,CAAC,EAAE,MAAM,IAAI,CAAC;CAChC;AASD,yDAAyD;AACzD,wBAAgB,iBAAiB,CAAC,OAAO,EAAE,UAAU,GAAG,kBAAkB,CAOzE;AAED,4DAA4D;AAC5D,wBAAgB,sBAAsB,CAAC,OAAO,EAAE,UAAU,GAAG,kBAAkB,GAAG,SAAS,CAE1F;AAED;;;;GAIG;AACH,wBAAgB,sBAAsB,CAAC,OAAO,EAAE,UAAU,GAAG,eAAe,GAAG,IAAI,CAUlF;AAED,qGAAqG;AACrG,wBAAgB,wBAAwB,CAAC,OAAO,EAAE,UAAU,GAAG,IAAI,CAElE;AAED,oGAAoG;AACpG,wBAAsB,wBAAwB,CAAC,OAAO,EAAE,UAAU,GAAG,OAAO,CAAC,IAAI,CAAC,CASjF"}
@@ -0,0 +1,79 @@
1
+ /**
2
+ * Per-Runtime telemetry state and the one process-wide fact telemetry cannot
3
+ * avoid.
4
+ *
5
+ * Everything Logging keeps about telemetry belongs to the Root that started
6
+ * it: its SDK lifecycle and its last typed outcome, keyed by that Root's
7
+ * `loggingRootOf(runtime)`. The Root, its plugin views, every reload generation
8
+ * and the generation dispatcher reach the same state (a generation asking is
9
+ * the Root asking, never another Runtime); two Roots in one process never
10
+ * share it.
11
+ *
12
+ * The OpenTelemetry SDK is the exception. `NodeSDK.start()` registers the
13
+ * tracer, meter and logger providers and patches the instrumented modules in
14
+ * the one global registry of the process (`@opentelemetry/api`'s own global),
15
+ * and a second registration is silently ignored by the SDK. Two Roots cannot
16
+ * each own that registry, so the first Root to start telemetry owns it and any
17
+ * other Root that asks gets a typed `CONFLICT` refusal, not a warning and not
18
+ * a no-op. The SDK's diag logger is the same kind of process-wide fact: the
19
+ * owner Root installs the partial-success reporter on it when its SDK starts
20
+ * and removes it when that SDK shuts down. The claim lasts while the owner's SDK is held (started or starting)
21
+ * and ends when it shuts down (`shutdownTelemetry`, `disposeObservability`,
22
+ * or Logging's last finalization on the Root) or fails to start. A
23
+ * generation's retirement does not end it, nor does disposing a Root whose SDK
24
+ * nobody stopped: the registry is still taken.
25
+ */
26
+ import { CapabilityError } from '@vibesdotdev/kernel';
27
+ import { TelemetrySdkLifecycle } from "./sdk-lifecycle.js";
28
+ import { loggingRootOf } from "../../core/root-identity.js";
29
+ const stateByRoot = new WeakMap();
30
+ /** The Root that owns the process's OpenTelemetry global registry; weak, so a collected Root never pins it. */
31
+ let registryOwner = null;
32
+ /** This Root's telemetry state, created on first use. */
33
+ export function telemetryStateFor(runtime) {
34
+ let state = stateByRoot.get(loggingRootOf(runtime));
35
+ if (!state) {
36
+ state = { sdk: new TelemetrySdkLifecycle(), outcome: { status: 'not-attempted' } };
37
+ stateByRoot.set(loggingRootOf(runtime), state);
38
+ }
39
+ return state;
40
+ }
41
+ /** This Root's telemetry state if it ever asked for any. */
42
+ export function existingTelemetryState(runtime) {
43
+ return stateByRoot.get(loggingRootOf(runtime));
44
+ }
45
+ /**
46
+ * Claim the process's OpenTelemetry registry for `runtime`'s Root. Returns the
47
+ * typed refusal when another Root holds an SDK on it; the owning Root (through
48
+ * any of its runtimes) claims again without conflict.
49
+ */
50
+ export function claimTelemetryRegistry(runtime) {
51
+ const owner = registryOwner?.deref();
52
+ if (owner && owner !== loggingRootOf(runtime) && stateByRoot.get(owner)?.sdk.isHeld()) {
53
+ return new CapabilityError('OpenTelemetry not started: another Runtime in this process owns the OpenTelemetry global registry.', 'CONFLICT', {
54
+ reason: 'telemetry-owned-by-another-runtime', retryable: false,
55
+ recoveryHint: 'Start telemetry on one Runtime per process, or shut the owning Runtime telemetry down first.'
56
+ });
57
+ }
58
+ registryOwner = new WeakRef(loggingRootOf(runtime));
59
+ return null;
60
+ }
61
+ /** End `runtime`'s Root's claim on the OpenTelemetry registry; another Root's claim is untouched. */
62
+ export function releaseTelemetryRegistry(runtime) {
63
+ if (registryOwner?.deref() === loggingRootOf(runtime))
64
+ registryOwner = null;
65
+ }
66
+ /** Shut down this Root's SDK, if it started one, and end its registry claim once it has stopped. */
67
+ export async function shutdownRuntimeTelemetry(runtime) {
68
+ const state = existingTelemetryState(runtime);
69
+ if (!state)
70
+ return;
71
+ await state.sdk.shutdown();
72
+ if (state.sdk.isInitialized())
73
+ return;
74
+ // The SDK has flushed and stopped, so its last partial success was reported; the diag logger goes with the claim.
75
+ state.releaseDiagnostics?.();
76
+ delete state.releaseDiagnostics;
77
+ releaseTelemetryRegistry(runtime);
78
+ }
79
+ //# sourceMappingURL=telemetry-root.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"telemetry-root.js","sourceRoot":"","sources":["../../../src/observability/telemetry/telemetry-root.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;;;;;;;;;;;GAwBG;AAEH,OAAO,EAAE,eAAe,EAAmB,MAAM,qBAAqB,CAAC;AAGvE,OAAO,EAAE,qBAAqB,EAA6B,MAAM,oBAAoB,CAAC;AACtF,OAAO,EAAE,aAAa,EAAE,MAAM,6BAA6B,CAAC;AA2B5D,MAAM,WAAW,GAAG,IAAI,OAAO,EAAoC,CAAC;AAEpE,+GAA+G;AAC/G,IAAI,aAAa,GAAiC,IAAI,CAAC;AAEvD,yDAAyD;AACzD,MAAM,UAAU,iBAAiB,CAAC,OAAmB;IACpD,IAAI,KAAK,GAAG,WAAW,CAAC,GAAG,CAAC,aAAa,CAAC,OAAO,CAAC,CAAC,CAAC;IACpD,IAAI,CAAC,KAAK,EAAE,CAAC;QACZ,KAAK,GAAG,EAAE,GAAG,EAAE,IAAI,qBAAqB,EAAwB,EAAE,OAAO,EAAE,EAAE,MAAM,EAAE,eAAe,EAAE,EAAE,CAAC;QACzG,WAAW,CAAC,GAAG,CAAC,aAAa,CAAC,OAAO,CAAC,EAAE,KAAK,CAAC,CAAC;IAChD,CAAC;IACD,OAAO,KAAK,CAAC;AACd,CAAC;AAED,4DAA4D;AAC5D,MAAM,UAAU,sBAAsB,CAAC,OAAmB;IACzD,OAAO,WAAW,CAAC,GAAG,CAAC,aAAa,CAAC,OAAO,CAAC,CAAC,CAAC;AAChD,CAAC;AAED;;;;GAIG;AACH,MAAM,UAAU,sBAAsB,CAAC,OAAmB;IACzD,MAAM,KAAK,GAAG,aAAa,EAAE,KAAK,EAAE,CAAC;IACrC,IAAI,KAAK,IAAI,KAAK,KAAK,aAAa,CAAC,OAAO,CAAC,IAAI,WAAW,CAAC,GAAG,CAAC,KAAK,CAAC,EAAE,GAAG,CAAC,MAAM,EAAE,EAAE,CAAC;QACvF,OAAO,IAAI,eAAe,CAAC,oGAAoG,EAAE,UAAU,EAAE;YAC5I,MAAM,EAAE,oCAAoC,EAAE,SAAS,EAAE,KAAK;YAC9D,YAAY,EAAE,8FAA8F;SAC5G,CAAC,CAAC;IACJ,CAAC;IACD,aAAa,GAAG,IAAI,OAAO,CAAC,aAAa,CAAC,OAAO,CAAC,CAAC,CAAC;IACpD,OAAO,IAAI,CAAC;AACb,CAAC;AAED,qGAAqG;AACrG,MAAM,UAAU,wBAAwB,CAAC,OAAmB;IAC3D,IAAI,aAAa,EAAE,KAAK,EAAE,KAAK,aAAa,CAAC,OAAO,CAAC;QAAE,aAAa,GAAG,IAAI,CAAC;AAC7E,CAAC;AAED,oGAAoG;AACpG,MAAM,CAAC,KAAK,UAAU,wBAAwB,CAAC,OAAmB;IACjE,MAAM,KAAK,GAAG,sBAAsB,CAAC,OAAO,CAAC,CAAC;IAC9C,IAAI,CAAC,KAAK;QAAE,OAAO;IACnB,MAAM,KAAK,CAAC,GAAG,CAAC,QAAQ,EAAE,CAAC;IAC3B,IAAI,KAAK,CAAC,GAAG,CAAC,aAAa,EAAE;QAAE,OAAO;IACtC,kHAAkH;IAClH,KAAK,CAAC,kBAAkB,EAAE,EAAE,CAAC;IAC7B,OAAO,KAAK,CAAC,kBAAkB,CAAC;IAChC,wBAAwB,CAAC,OAAO,CAAC,CAAC;AACnC,CAAC"}
@@ -0,0 +1,76 @@
1
+ /**
2
+ * Provider-neutral OpenTelemetry instrumentation seam.
3
+ *
4
+ * Framework owns this kind and the NodeSDK lifecycle. Integrations register
5
+ * provider factories (AWS SDK, Redis/ioredis) through this seam.
6
+ * Framework never imports a provider implementation.
7
+ */
8
+ import type { RuntimeDescriptor } from '@vibesdotdev/kernel/schemas/descriptor';
9
+ import type { KindContext, RuntimeKindDescriptor } from '@vibesdotdev/kernel/schemas/kind';
10
+ import * as z from 'zod/v4';
11
+ export declare const TELEMETRY_INSTRUMENTATION_KIND: "observability/telemetry-instrumentation";
12
+ /** Provider instrumentation options: JSON configuration keyed by option name. */
13
+ export declare const TelemetryInstrumentationOptionsSchema: z.ZodRecord<z.ZodString, z.ZodType<import("@vibesdotdev/kernel/bootstrap").JsonValue, import("@vibesdotdev/kernel/bootstrap").JsonValue, z.core.$ZodTypeInternals<import("@vibesdotdev/kernel/bootstrap").JsonValue, import("@vibesdotdev/kernel/bootstrap").JsonValue>>>;
14
+ export type TelemetryInstrumentationOptions = z.infer<typeof TelemetryInstrumentationOptionsSchema>;
15
+ export interface TelemetryInstrumentationFactory {
16
+ (options?: TelemetryInstrumentationOptions): object;
17
+ }
18
+ export interface TelemetryInstrumentationDescriptor extends RuntimeDescriptor {
19
+ kind: typeof TELEMETRY_INSTRUMENTATION_KIND;
20
+ config?: {
21
+ package: string;
22
+ version: string;
23
+ };
24
+ }
25
+ export declare const TelemetryInstrumentationDescriptorSchema: z.ZodObject<{
26
+ id: z.ZodString;
27
+ name: z.ZodOptional<z.ZodString>;
28
+ description: z.ZodOptional<z.ZodString>;
29
+ tags: z.ZodOptional<z.ZodArray<z.ZodString>>;
30
+ hardware: z.ZodOptional<z.ZodArray<z.ZodString>>;
31
+ enabled: z.ZodOptional<z.ZodBoolean>;
32
+ priority: z.ZodOptional<z.ZodNumber>;
33
+ capabilityId: z.ZodOptional<z.ZodString>;
34
+ requiredContext: z.ZodOptional<z.ZodArray<z.ZodString>>;
35
+ optionalContext: z.ZodOptional<z.ZodArray<z.ZodString>>;
36
+ retention: z.ZodOptional<z.ZodUnion<readonly [z.ZodString, z.ZodObject<{
37
+ maxAgeDays: z.ZodOptional<z.ZodNumber>;
38
+ maxEntries: z.ZodOptional<z.ZodNumber>;
39
+ maxBytes: z.ZodOptional<z.ZodNumber>;
40
+ cascadeFrom: z.ZodOptional<z.ZodString>;
41
+ ageField: z.ZodOptional<z.ZodString>;
42
+ reason: z.ZodString;
43
+ enforcedBy: z.ZodOptional<z.ZodString>;
44
+ }, z.core.$strip>]>>;
45
+ kind: z.ZodLiteral<"observability/telemetry-instrumentation">;
46
+ config: z.ZodOptional<z.ZodObject<{
47
+ package: z.ZodString;
48
+ version: z.ZodString;
49
+ }, z.core.$strip>>;
50
+ }, z.core.$strip>;
51
+ export declare const telemetryInstrumentationKind: RuntimeKindDescriptor<TelemetryInstrumentationDescriptor, TelemetryInstrumentationFactory, KindContext>;
52
+ /** The runtime a telemetry host resolves provider instrumentations on (only its registry is read). */
53
+ export interface TelemetryRuntimeQuery {
54
+ hasKind(kind: string): boolean;
55
+ query<TDescriptor extends RuntimeDescriptor, TImpl>(kind: string): {
56
+ enabled(): {
57
+ descriptors(): TDescriptor[];
58
+ };
59
+ withId(id: string): {
60
+ resolve(): Promise<TImpl>;
61
+ };
62
+ };
63
+ }
64
+ /**
65
+ * Resolve one provider instrumentation factory by id and build it. `null`
66
+ * only when the kind or that descriptor is not composed on this runtime (the
67
+ * confirmed absence); a composed provider that fails to load rejects.
68
+ */
69
+ export declare function resolveTelemetryInstrumentation(runtime: TelemetryRuntimeQuery, id: string): Promise<object | null>;
70
+ /**
71
+ * Every provider instrumentation the host composed on `runtime` (AWS SDK from
72
+ * `@vibesdotdev/integrations-aws`, Redis/ioredis from
73
+ * `@vibesdotdev/integrations-redis`, …), built. Framework imports none of them.
74
+ */
75
+ export declare function resolveComposedTelemetryInstrumentations(runtime: TelemetryRuntimeQuery): Promise<object[]>;
76
+ //# sourceMappingURL=telemetry-instrumentation.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"telemetry-instrumentation.d.ts","sourceRoot":"","sources":["../../src/observability/telemetry-instrumentation.ts"],"names":[],"mappings":"AAAA;;;;;;GAMG;AAGH,OAAO,KAAK,EAAE,iBAAiB,EAAE,MAAM,wCAAwC,CAAC;AAChF,OAAO,KAAK,EAAE,WAAW,EAAE,qBAAqB,EAAE,MAAM,kCAAkC,CAAC;AAE3F,OAAO,KAAK,CAAC,MAAM,QAAQ,CAAC;AAE5B,eAAO,MAAM,8BAA8B,EAAG,yCAAkD,CAAC;AAEjG,iFAAiF;AACjF,eAAO,MAAM,qCAAqC,2QAAwC,CAAC;AAC3F,MAAM,MAAM,+BAA+B,GAAG,CAAC,CAAC,KAAK,CAAC,OAAO,qCAAqC,CAAC,CAAC;AAEpG,MAAM,WAAW,+BAA+B;IAC/C,CAAC,OAAO,CAAC,EAAE,+BAA+B,GAAG,MAAM,CAAC;CACpD;AAED,MAAM,WAAW,kCAAmC,SAAQ,iBAAiB;IAC5E,IAAI,EAAE,OAAO,8BAA8B,CAAC;IAC5C,MAAM,CAAC,EAAE;QACR,OAAO,EAAE,MAAM,CAAC;QAChB,OAAO,EAAE,MAAM,CAAC;KAChB,CAAC;CACF;AAED,eAAO,MAAM,wCAAwC;;;;;;;;;;;;;;;;;;;;;;;;;iBAQnD,CAAC;AAOH,eAAO,MAAM,4BAA4B,EAAE,qBAAqB,CAC/D,kCAAkC,EAClC,+BAA+B,EAC/B,WAAW,CAKX,CAAC;AAEF,sGAAsG;AACtG,MAAM,WAAW,qBAAqB;IACrC,OAAO,CAAC,IAAI,EAAE,MAAM,GAAG,OAAO,CAAC;IAC/B,KAAK,CAAC,WAAW,SAAS,iBAAiB,EAAE,KAAK,EAAE,IAAI,EAAE,MAAM,GAAG;QAClE,OAAO,IAAI;YAAE,WAAW,IAAI,WAAW,EAAE,CAAA;SAAE,CAAC;QAC5C,MAAM,CAAC,EAAE,EAAE,MAAM,GAAG;YAAE,OAAO,IAAI,OAAO,CAAC,KAAK,CAAC,CAAA;SAAE,CAAC;KAClD,CAAC;CACF;AAED;;;;GAIG;AACH,wBAAsB,+BAA+B,CACpD,OAAO,EAAE,qBAAqB,EAC9B,EAAE,EAAE,MAAM,GACR,OAAO,CAAC,MAAM,GAAG,IAAI,CAAC,CAgBxB;AAED;;;;GAIG;AACH,wBAAsB,wCAAwC,CAAC,OAAO,EAAE,qBAAqB,GAAG,OAAO,CAAC,MAAM,EAAE,CAAC,CAShH"}
@@ -0,0 +1,69 @@
1
+ /**
2
+ * Provider-neutral OpenTelemetry instrumentation seam.
3
+ *
4
+ * Framework owns this kind and the NodeSDK lifecycle. Integrations register
5
+ * provider factories (AWS SDK, Redis/ioredis) through this seam.
6
+ * Framework never imports a provider implementation.
7
+ */
8
+ import { JsonValueSchema } from '@vibesdotdev/kernel/schemas/json';
9
+ import { RuntimeDescriptorSchema } from '@vibesdotdev/kernel/schemas/descriptor';
10
+ import * as z from 'zod/v4';
11
+ export const TELEMETRY_INSTRUMENTATION_KIND = 'observability/telemetry-instrumentation';
12
+ /** Provider instrumentation options: JSON configuration keyed by option name. */
13
+ export const TelemetryInstrumentationOptionsSchema = z.record(z.string(), JsonValueSchema);
14
+ export const TelemetryInstrumentationDescriptorSchema = RuntimeDescriptorSchema.extend({
15
+ kind: z.literal(TELEMETRY_INSTRUMENTATION_KIND),
16
+ config: z
17
+ .object({
18
+ package: z.string().min(1),
19
+ version: z.string().min(1)
20
+ })
21
+ .optional()
22
+ });
23
+ /** A resolved provider implementation is admitted only as a callable factory. */
24
+ const TelemetryInstrumentationFactorySchema = z.custom((value) => value instanceof Function);
25
+ export const telemetryInstrumentationKind = {
26
+ id: TELEMETRY_INSTRUMENTATION_KIND,
27
+ descriptorSchema: TelemetryInstrumentationDescriptorSchema,
28
+ contexts: []
29
+ };
30
+ /**
31
+ * Resolve one provider instrumentation factory by id and build it. `null`
32
+ * only when the kind or that descriptor is not composed on this runtime (the
33
+ * confirmed absence); a composed provider that fails to load rejects.
34
+ */
35
+ export async function resolveTelemetryInstrumentation(runtime, id) {
36
+ if (!runtime.hasKind(TELEMETRY_INSTRUMENTATION_KIND))
37
+ return null;
38
+ const composed = runtime
39
+ .query(TELEMETRY_INSTRUMENTATION_KIND)
40
+ .enabled()
41
+ .descriptors()
42
+ .some((descriptor) => descriptor.id === id);
43
+ if (!composed)
44
+ return null;
45
+ const factory = TelemetryInstrumentationFactorySchema.safeParse(
46
+ // The loader's value is unverified until parsed here, at the provider boundary.
47
+ await runtime.query(TELEMETRY_INSTRUMENTATION_KIND).withId(id).resolve());
48
+ if (!factory.success) {
49
+ throw new Error(`Telemetry instrumentation '${id}' did not load a factory function.`);
50
+ }
51
+ return factory.data();
52
+ }
53
+ /**
54
+ * Every provider instrumentation the host composed on `runtime` (AWS SDK from
55
+ * `@vibesdotdev/integrations-aws`, Redis/ioredis from
56
+ * `@vibesdotdev/integrations-redis`, …), built. Framework imports none of them.
57
+ */
58
+ export async function resolveComposedTelemetryInstrumentations(runtime) {
59
+ if (!runtime.hasKind(TELEMETRY_INSTRUMENTATION_KIND))
60
+ return [];
61
+ const ids = runtime
62
+ .query(TELEMETRY_INSTRUMENTATION_KIND)
63
+ .enabled()
64
+ .descriptors()
65
+ .map((descriptor) => descriptor.id);
66
+ const built = await Promise.all(ids.map((id) => resolveTelemetryInstrumentation(runtime, id)));
67
+ return built.filter((instrumentation) => instrumentation !== null);
68
+ }
69
+ //# sourceMappingURL=telemetry-instrumentation.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"telemetry-instrumentation.js","sourceRoot":"","sources":["../../src/observability/telemetry-instrumentation.ts"],"names":[],"mappings":"AAAA;;;;;;GAMG;AAEH,OAAO,EAAE,eAAe,EAAE,MAAM,kCAAkC,CAAC;AAGnE,OAAO,EAAE,uBAAuB,EAAE,MAAM,wCAAwC,CAAC;AACjF,OAAO,KAAK,CAAC,MAAM,QAAQ,CAAC;AAE5B,MAAM,CAAC,MAAM,8BAA8B,GAAG,yCAAkD,CAAC;AAEjG,iFAAiF;AACjF,MAAM,CAAC,MAAM,qCAAqC,GAAG,CAAC,CAAC,MAAM,CAAC,CAAC,CAAC,MAAM,EAAE,EAAE,eAAe,CAAC,CAAC;AAe3F,MAAM,CAAC,MAAM,wCAAwC,GAAG,uBAAuB,CAAC,MAAM,CAAC;IACtF,IAAI,EAAE,CAAC,CAAC,OAAO,CAAC,8BAA8B,CAAC;IAC/C,MAAM,EAAE,CAAC;SACP,MAAM,CAAC;QACP,OAAO,EAAE,CAAC,CAAC,MAAM,EAAE,CAAC,GAAG,CAAC,CAAC,CAAC;QAC1B,OAAO,EAAE,CAAC,CAAC,MAAM,EAAE,CAAC,GAAG,CAAC,CAAC,CAAC;KAC1B,CAAC;SACD,QAAQ,EAAE;CACZ,CAAC,CAAC;AAEH,iFAAiF;AACjF,MAAM,qCAAqC,GAAG,CAAC,CAAC,MAAM,CACrD,CAAC,KAAK,EAAE,EAAE,CAAC,KAAK,YAAY,QAAQ,CACpC,CAAC;AAEF,MAAM,CAAC,MAAM,4BAA4B,GAIrC;IACH,EAAE,EAAE,8BAA8B;IAClC,gBAAgB,EAAE,wCAAwC;IAC1D,QAAQ,EAAE,EAAE;CACZ,CAAC;AAWF;;;;GAIG;AACH,MAAM,CAAC,KAAK,UAAU,+BAA+B,CACpD,OAA8B,EAC9B,EAAU;IAEV,IAAI,CAAC,OAAO,CAAC,OAAO,CAAC,8BAA8B,CAAC;QAAE,OAAO,IAAI,CAAC;IAClE,MAAM,QAAQ,GAAG,OAAO;SACtB,KAAK,CAAsE,8BAA8B,CAAC;SAC1G,OAAO,EAAE;SACT,WAAW,EAAE;SACb,IAAI,CAAC,CAAC,UAAU,EAAE,EAAE,CAAC,UAAU,CAAC,EAAE,KAAK,EAAE,CAAC,CAAC;IAC7C,IAAI,CAAC,QAAQ;QAAE,OAAO,IAAI,CAAC;IAC3B,MAAM,OAAO,GAAG,qCAAqC,CAAC,SAAS;IAC9D,gFAAgF;IAChF,MAAM,OAAO,CAAC,KAAK,CAAsE,8BAA8B,CAAC,CAAC,MAAM,CAAC,EAAE,CAAC,CAAC,OAAO,EAAE,CAC7I,CAAC;IACF,IAAI,CAAC,OAAO,CAAC,OAAO,EAAE,CAAC;QACtB,MAAM,IAAI,KAAK,CAAC,8BAA8B,EAAE,oCAAoC,CAAC,CAAC;IACvF,CAAC;IACD,OAAO,OAAO,CAAC,IAAI,EAAE,CAAC;AACvB,CAAC;AAED;;;;GAIG;AACH,MAAM,CAAC,KAAK,UAAU,wCAAwC,CAAC,OAA8B;IAC5F,IAAI,CAAC,OAAO,CAAC,OAAO,CAAC,8BAA8B,CAAC;QAAE,OAAO,EAAE,CAAC;IAChE,MAAM,GAAG,GAAG,OAAO;SACjB,KAAK,CAAsE,8BAA8B,CAAC;SAC1G,OAAO,EAAE;SACT,WAAW,EAAE;SACb,GAAG,CAAC,CAAC,UAAU,EAAE,EAAE,CAAC,UAAU,CAAC,EAAE,CAAC,CAAC;IACrC,MAAM,KAAK,GAAG,MAAM,OAAO,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,CAAC,EAAE,EAAE,EAAE,CAAC,+BAA+B,CAAC,OAAO,EAAE,EAAE,CAAC,CAAC,CAAC,CAAC;IAC/F,OAAO,KAAK,CAAC,MAAM,CAAC,CAAC,eAAe,EAA6B,EAAE,CAAC,eAAe,KAAK,IAAI,CAAC,CAAC;AAC/F,CAAC"}
@@ -0,0 +1,9 @@
1
+ /**
2
+ * @vibesdotdev/logging/otel
3
+ *
4
+ * OpenTelemetry log sink for vibes logging.
5
+ */
6
+ export { default as loggingOtelPlugin, loggingOtelPlugin as default } from './logging-otel.plugin.ts';
7
+ export { otelSinkDescriptor } from './sinks/otel/otel.descriptor.ts';
8
+ export { default as OtelSink } from './sinks/otel/otel.impl.ts';
9
+ //# sourceMappingURL=index.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../src/otel/index.ts"],"names":[],"mappings":"AAAA;;;;GAIG;AAGH,OAAO,EAAE,OAAO,IAAI,iBAAiB,EAAE,iBAAiB,IAAI,OAAO,EAAE,MAAM,0BAA0B,CAAC;AAGtG,OAAO,EAAE,kBAAkB,EAAE,MAAM,iCAAiC,CAAC;AAGrE,OAAO,EAAE,OAAO,IAAI,QAAQ,EAAE,MAAM,2BAA2B,CAAC"}
@@ -0,0 +1,12 @@
1
+ /**
2
+ * @vibesdotdev/logging/otel
3
+ *
4
+ * OpenTelemetry log sink for vibes logging.
5
+ */
6
+ // Plugin
7
+ export { default as loggingOtelPlugin, loggingOtelPlugin as default } from "./logging-otel.plugin.js";
8
+ // Sink descriptors
9
+ export { otelSinkDescriptor } from "./sinks/otel/otel.descriptor.js";
10
+ // Implementation (for direct use / testing)
11
+ export { default as OtelSink } from "./sinks/otel/otel.impl.js";
12
+ //# sourceMappingURL=index.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"index.js","sourceRoot":"","sources":["../../src/otel/index.ts"],"names":[],"mappings":"AAAA;;;;GAIG;AAEH,SAAS;AACT,OAAO,EAAE,OAAO,IAAI,iBAAiB,EAAE,iBAAiB,IAAI,OAAO,EAAE,MAAM,0BAA0B,CAAC;AAEtG,mBAAmB;AACnB,OAAO,EAAE,kBAAkB,EAAE,MAAM,iCAAiC,CAAC;AAErE,4CAA4C;AAC5C,OAAO,EAAE,OAAO,IAAI,QAAQ,EAAE,MAAM,2BAA2B,CAAC"}