@vibesdotdev/logging 0.0.1 → 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 (700) hide show
  1. package/LICENSE +18 -0
  2. package/README.md +89 -54
  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 +311 -228
  589. package/SPEC.md +0 -65
  590. package/dist/contexts/audit.d.ts +0 -34
  591. package/dist/contexts/audit.d.ts.map +0 -1
  592. package/dist/contexts/audit.js +0 -13
  593. package/dist/contexts/audit.js.map +0 -1
  594. package/dist/formatters/index.d.ts +0 -7
  595. package/dist/formatters/index.d.ts.map +0 -1
  596. package/dist/formatters/index.js +0 -8
  597. package/dist/formatters/index.js.map +0 -1
  598. package/dist/formatters/pretty/pretty.impl.cli.d.ts.map +0 -1
  599. package/dist/formatters/pretty/pretty.impl.cli.js.map +0 -1
  600. package/dist/kinds/logger.contracts.d.ts +0 -16
  601. package/dist/kinds/logger.contracts.d.ts.map +0 -1
  602. package/dist/kinds/logger.contracts.js +0 -9
  603. package/dist/kinds/logger.contracts.js.map +0 -1
  604. package/dist/kinds/output.contracts.d.ts +0 -50
  605. package/dist/kinds/output.contracts.d.ts.map +0 -1
  606. package/dist/kinds/output.contracts.js +0 -10
  607. package/dist/kinds/output.contracts.js.map +0 -1
  608. package/dist/logging.cli.plugin.d.ts.map +0 -1
  609. package/dist/logging.cli.plugin.js +0 -39
  610. package/dist/logging.cli.plugin.js.map +0 -1
  611. package/dist/outputs/index.d.ts +0 -7
  612. package/dist/outputs/index.d.ts.map +0 -1
  613. package/dist/outputs/index.js +0 -8
  614. package/dist/outputs/index.js.map +0 -1
  615. package/dist/sinks/buffer/buffer.impl.cli.d.ts.map +0 -1
  616. package/dist/sinks/buffer/buffer.impl.cli.js +0 -34
  617. package/dist/sinks/buffer/buffer.impl.cli.js.map +0 -1
  618. package/dist/sinks/console/console.impl.cli.d.ts.map +0 -1
  619. package/dist/sinks/console/console.impl.cli.js.map +0 -1
  620. package/dist/sinks/stdout/stdout.impl.cli.d.ts.map +0 -1
  621. package/dist/sinks/stdout/stdout.impl.cli.js +0 -21
  622. package/dist/sinks/stdout/stdout.impl.cli.js.map +0 -1
  623. package/src/audit/audit.descriptor.ts +0 -45
  624. package/src/audit/audit.storage.schema.ts +0 -57
  625. package/src/audit/index.ts +0 -8
  626. package/src/cli/logs.descriptor.ts +0 -19
  627. package/src/cli/logs.list.descriptor.ts +0 -28
  628. package/src/cli/logs.list.impl.ts +0 -93
  629. package/src/cli/logs.rotate.descriptor.ts +0 -40
  630. package/src/cli/logs.rotate.impl.ts +0 -61
  631. package/src/cli/logs.search.descriptor.ts +0 -61
  632. package/src/cli/logs.search.impl.ts +0 -173
  633. package/src/cli/logs.tail.descriptor.ts +0 -49
  634. package/src/cli/logs.tail.impl.ts +0 -105
  635. package/src/cli/logs.view.descriptor.ts +0 -57
  636. package/src/cli/logs.view.impl.ts +0 -108
  637. package/src/cli/types.ts +0 -59
  638. package/src/contexts/audit.ts +0 -36
  639. package/src/contexts/fallback-logger.ts +0 -80
  640. package/src/contexts/index.ts +0 -23
  641. package/src/contexts/logger.ts +0 -119
  642. package/src/core/index.ts +0 -32
  643. package/src/core/logger.ts +0 -150
  644. package/src/core/namespace.ts +0 -195
  645. package/src/core/parsing.ts +0 -21
  646. package/src/core/types.ts +0 -82
  647. package/src/docs/levels.docs.descriptor.ts +0 -344
  648. package/src/docs/structured.docs.descriptor.ts +0 -444
  649. package/src/docs/transports.docs.descriptor.ts +0 -428
  650. package/src/formatters/index.ts +0 -6
  651. package/src/formatters/json/json.formatters.descriptor.ts +0 -25
  652. package/src/formatters/json/json.impl.ts +0 -41
  653. package/src/formatters/json5/json5.descriptor.ts +0 -25
  654. package/src/formatters/json5/json5.impl.ts +0 -43
  655. package/src/formatters/jsonl/jsonl.descriptor.ts +0 -26
  656. package/src/formatters/jsonl/jsonl.impl.ts +0 -39
  657. package/src/formatters/pretty/pretty.descriptor.ts +0 -26
  658. package/src/formatters/pretty/pretty.impl.cli.ts +0 -101
  659. package/src/index.ts +0 -190
  660. package/src/kinds/audit.ts +0 -169
  661. package/src/kinds/contexts.ts +0 -22
  662. package/src/kinds/formatter.ts +0 -117
  663. package/src/kinds/index.ts +0 -25
  664. package/src/kinds/logger.contracts.ts +0 -17
  665. package/src/kinds/logger.impl.ts +0 -206
  666. package/src/kinds/logger.ts +0 -46
  667. package/src/kinds/logger.utils.ts +0 -91
  668. package/src/kinds/output.contracts.ts +0 -54
  669. package/src/kinds/output.impl.ts +0 -118
  670. package/src/kinds/output.ts +0 -59
  671. package/src/kinds/output.types.ts +0 -105
  672. package/src/kinds/sink.ts +0 -100
  673. package/src/logger.context.descriptor.ts +0 -13
  674. package/src/logging.cli.plugin.ts +0 -43
  675. package/src/logging.plugin.ts +0 -93
  676. package/src/outputs/index.ts +0 -6
  677. package/src/outputs/remote/remote.descriptor.ts +0 -27
  678. package/src/outputs/remote/remote.impl.ts +0 -218
  679. package/src/outputs.context.descriptor.ts +0 -10
  680. package/src/outputs.context.impl.ts +0 -30
  681. package/src/paths.ts +0 -10
  682. package/src/schemas/audit.ts +0 -98
  683. package/src/schemas/entry.ts +0 -88
  684. package/src/schemas/formatter.ts +0 -37
  685. package/src/schemas/index.ts +0 -80
  686. package/src/schemas/logger.ts +0 -38
  687. package/src/schemas/output.ts +0 -62
  688. package/src/schemas/sink.ts +0 -39
  689. package/src/sinks/buffer/buffer.descriptor.ts +0 -13
  690. package/src/sinks/buffer/buffer.impl.cli.ts +0 -49
  691. package/src/sinks/console/console.descriptor.ts +0 -20
  692. package/src/sinks/console/console.impl.browser.ts +0 -69
  693. package/src/sinks/console/console.impl.cli.ts +0 -71
  694. package/src/sinks/index.ts +0 -8
  695. package/src/sinks/memory/memory.descriptor.ts +0 -20
  696. package/src/sinks/memory/memory.impl.ts +0 -119
  697. package/src/sinks/stdout/stdout.descriptor.ts +0 -13
  698. package/src/sinks/stdout/stdout.impl.cli.ts +0 -27
  699. package/src/sinks.context.descriptor.ts +0 -10
  700. package/src/sinks.context.impl.ts +0 -30
@@ -0,0 +1,11 @@
1
+ /**
2
+ * The typed file-output contract (C092).
3
+ *
4
+ * The `logging/output` descriptor with id `file` is the file-storage backend a
5
+ * host package implements (`@vibesdotdev/host-node/logging`).
6
+ * Callers resolve it by id with these generics and call its required methods:
7
+ * no `instanceof`, no optional-method presence checks.
8
+ */
9
+ /** The `logging/output` id of the file-storage backend. */
10
+ export const FILE_OUTPUT_ID = 'file';
11
+ //# sourceMappingURL=file-output.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"file-output.js","sourceRoot":"","sources":["../../src/kinds/file-output.ts"],"names":[],"mappings":"AAAA;;;;;;;GAOG;AAKH,2DAA2D;AAC3D,MAAM,CAAC,MAAM,cAAc,GAAG,MAAM,CAAC"}
@@ -3,9 +3,9 @@
3
3
  *
4
4
  * Formatters serialize log entries to various output formats.
5
5
  */
6
- import type { RuntimeKindDescriptor, KindContext } from '@vibesdotdev/runtime/schemas/kind';
6
+ import type { RuntimeKindDescriptor, KindContext } from '@vibesdotdev/kernel/schemas/kind';
7
7
  import { type FormatterDescriptor } from '../schemas/formatter.ts';
8
- import type { RuntimeLogEntry } from '../schemas/entry.ts';
8
+ import { type RuntimeLogEntry } from '../schemas/entry.ts';
9
9
  /**
10
10
  * Formatter implementation interface.
11
11
  * Implementations convert log entries to/from string representation.
@@ -24,15 +24,13 @@ export interface FormatterImplementation {
24
24
  * Context provided to formatter implementations.
25
25
  */
26
26
  export interface FormatterContext extends KindContext {
27
- /** Runtime reference */
28
- readonly runtime: unknown;
29
27
  }
30
28
  /**
31
29
  * Formatter kind definition for runtime registration.
32
30
  */
33
31
  export declare const formatterKind: RuntimeKindDescriptor<FormatterDescriptor, FormatterImplementation, FormatterContext>;
34
- declare module '@vibesdotdev/runtime/schemas/kind-types' {
35
- interface KindTypeMap {
32
+ declare global {
33
+ interface VibesKindTypeMap {
36
34
  'logging/formatter': {
37
35
  descriptor: FormatterDescriptor;
38
36
  impl: FormatterImplementation;
@@ -1 +1 @@
1
- {"version":3,"file":"formatter.d.ts","sourceRoot":"","sources":["../../src/kinds/formatter.ts"],"names":[],"mappings":"AAAA;;;;GAIG;AAEH,OAAO,KAAK,EAAE,qBAAqB,EAAE,WAAW,EAAqB,MAAM,mCAAmC,CAAC;AAE/G,OAAO,EAA6B,KAAK,mBAAmB,EAAE,MAAM,yBAAyB,CAAC;AAC9F,OAAO,KAAK,EAAE,eAAe,EAAE,MAAM,qBAAqB,CAAC;AAE3D;;;GAGG;AACH,MAAM,WAAW,uBAAuB;IACvC,gCAAgC;IAChC,MAAM,CAAC,KAAK,EAAE,eAAe,GAAG,MAAM,CAAC;IACvC,iDAAiD;IACjD,KAAK,CAAC,SAAS,EAAE,MAAM,GAAG,eAAe,CAAC;IAC1C,mDAAmD;IACnD,WAAW,CAAC,CAAC,OAAO,EAAE,eAAe,EAAE,GAAG,MAAM,CAAC;IACjD,uCAAuC;IACvC,UAAU,CAAC,CAAC,SAAS,EAAE,MAAM,GAAG,eAAe,EAAE,CAAC;CAClD;AAED;;GAEG;AACH,MAAM,WAAW,gBAAiB,SAAQ,WAAW;IACpD,wBAAwB;IACxB,QAAQ,CAAC,OAAO,EAAE,OAAO,CAAC;CAC1B;AAiED;;GAEG;AACH,eAAO,MAAM,aAAa,EAAE,qBAAqB,CAChD,mBAAmB,EACnB,uBAAuB,EACvB,gBAAgB,CAOhB,CAAC;AAEF,OAAO,QAAQ,yCAAyC,CAAC;IACxD,UAAU,WAAW;QACpB,mBAAmB,EAAE;YAAE,UAAU,EAAE,mBAAmB,CAAC;YAAC,IAAI,EAAE,uBAAuB,CAAA;SAAE,CAAC;KACxF;CACD"}
1
+ {"version":3,"file":"formatter.d.ts","sourceRoot":"","sources":["../../src/kinds/formatter.ts"],"names":[],"mappings":"AAAA;;;;GAIG;AAEH,OAAO,KAAK,EAAE,qBAAqB,EAAE,WAAW,EAAqB,MAAM,kCAAkC,CAAC;AAE9G,OAAO,EAA6B,KAAK,mBAAmB,EAAE,MAAM,yBAAyB,CAAC;AAC9F,OAAO,EAAyB,KAAK,eAAe,EAAE,MAAM,qBAAqB,CAAC;AAElF;;;GAGG;AACH,MAAM,WAAW,uBAAuB;IACvC,gCAAgC;IAChC,MAAM,CAAC,KAAK,EAAE,eAAe,GAAG,MAAM,CAAC;IACvC,iDAAiD;IACjD,KAAK,CAAC,SAAS,EAAE,MAAM,GAAG,eAAe,CAAC;IAC1C,mDAAmD;IACnD,WAAW,CAAC,CAAC,OAAO,EAAE,eAAe,EAAE,GAAG,MAAM,CAAC;IACjD,uCAAuC;IACvC,UAAU,CAAC,CAAC,SAAS,EAAE,MAAM,GAAG,eAAe,EAAE,CAAC;CAClD;AAED;;GAEG;AACH,MAAM,WAAW,gBAAiB,SAAQ,WAAW;CACpD;AAiED;;GAEG;AACH,eAAO,MAAM,aAAa,EAAE,qBAAqB,CAChD,mBAAmB,EACnB,uBAAuB,EACvB,gBAAgB,CAOhB,CAAC;AAEF,OAAO,CAAC,MAAM,CAAC;IACd,UAAU,gBAAgB;QACzB,mBAAmB,EAAE;YAAE,UAAU,EAAE,mBAAmB,CAAC;YAAC,IAAI,EAAE,uBAAuB,CAAA;SAAE,CAAC;KACxF;CACD"}
@@ -4,6 +4,7 @@
4
4
  * Formatters serialize log entries to various output formats.
5
5
  */
6
6
  import { FormatterDescriptorSchema } from "../schemas/formatter.js";
7
+ import { RuntimeLogEntrySchema } from "../schemas/entry.js";
7
8
  /**
8
9
  * Default formatter implementation - JSON output.
9
10
  * Used when no specific implementation is registered.
@@ -13,13 +14,13 @@ class DefaultFormatterImplementation {
13
14
  descriptor;
14
15
  constructor(descriptor, _context) {
15
16
  this.id = descriptor.id;
16
- this.descriptor = descriptor;
17
+ this.descriptor = FormatterDescriptorSchema.parse(descriptor);
17
18
  }
18
19
  format(entry) {
19
20
  return JSON.stringify(entry);
20
21
  }
21
22
  parse(formatted) {
22
- return JSON.parse(formatted);
23
+ return RuntimeLogEntrySchema.parse(JSON.parse(formatted));
23
24
  }
24
25
  formatBatch(entries) {
25
26
  return entries.map((e) => this.format(e)).join('\n');
@@ -36,7 +37,7 @@ class DefaultFormatterImplementation {
36
37
  * Selects formatter based on format and hardware.
37
38
  */
38
39
  function resolveFormatter(candidates, scope, _context) {
39
- const typed = candidates;
40
+ const typed = FormatterDescriptorSchema.array().parse(candidates);
40
41
  if (typed.length === 0)
41
42
  return undefined;
42
43
  if (typed.length === 1)
@@ -1 +1 @@
1
- {"version":3,"file":"formatter.js","sourceRoot":"","sources":["../../src/kinds/formatter.ts"],"names":[],"mappings":"AAAA;;;;GAIG;AAIH,OAAO,EAAE,yBAAyB,EAA4B,MAAM,yBAAyB,CAAC;AA0B9F;;;GAGG;AACH,MAAM,8BAA8B;IAC1B,EAAE,CAAS;IACX,UAAU,CAAsB;IAEzC,YAAY,UAA6B,EAAE,QAA0B;QACpE,IAAI,CAAC,EAAE,GAAG,UAAU,CAAC,EAAE,CAAC;QACxB,IAAI,CAAC,UAAU,GAAG,UAAiC,CAAC;IACrD,CAAC;IAED,MAAM,CAAC,KAAsB;QAC5B,OAAO,IAAI,CAAC,SAAS,CAAC,KAAK,CAAC,CAAC;IAC9B,CAAC;IAED,KAAK,CAAC,SAAiB;QACtB,OAAO,IAAI,CAAC,KAAK,CAAC,SAAS,CAAoB,CAAC;IACjD,CAAC;IAED,WAAW,CAAC,OAA0B;QACrC,OAAO,OAAO,CAAC,GAAG,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,IAAI,CAAC,MAAM,CAAC,CAAC,CAAC,CAAC,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC;IACtD,CAAC;IAED,UAAU,CAAC,SAAiB;QAC3B,OAAO,SAAS;aACd,KAAK,CAAC,IAAI,CAAC;aACX,MAAM,CAAC,CAAC,IAAI,EAAE,EAAE,CAAC,IAAI,CAAC,IAAI,EAAE,CAAC;aAC7B,GAAG,CAAC,CAAC,IAAI,EAAE,EAAE,CAAC,IAAI,CAAC,KAAK,CAAC,IAAI,CAAC,CAAC,CAAC;IACnC,CAAC;CACD;AAED;;;GAGG;AACH,SAAS,gBAAgB,CACxB,UAA+B,EAC/B,KAAmB,EACnB,QAAqB;IAErB,MAAM,KAAK,GAAG,UAAmC,CAAC;IAClD,IAAI,KAAK,CAAC,MAAM,KAAK,CAAC;QAAE,OAAO,SAAS,CAAC;IACzC,IAAI,KAAK,CAAC,MAAM,KAAK,CAAC;QAAE,OAAO,KAAK,CAAC,CAAC,CAAC,CAAC;IAExC,MAAM,QAAQ,GAAG,KAAK,CAAC,QAAQ,CAAC;IAEhC,mCAAmC;IACnC,MAAM,QAAQ,GAAG,KAAK,CAAC,MAAM,CAAC,CAAC,CAAC,EAAE,EAAE;QACnC,IAAI,CAAC,CAAC,CAAC,QAAQ,IAAI,CAAC,CAAC,QAAQ,CAAC,MAAM,KAAK,CAAC;YAAE,OAAO,IAAI,CAAC;QACxD,OAAO,CAAC,CAAC,QAAQ,CAAC,QAAQ,CAAC,QAAQ,CAAC,CAAC;IACtC,CAAC,CAAC,CAAC;IAEH,IAAI,QAAQ,CAAC,MAAM,KAAK,CAAC;QAAE,OAAO,SAAS,CAAC;IAE5C,iDAAiD;IACjD,MAAM,QAAQ,GAAG,QAAQ,CAAC,MAAM,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC,QAAQ,IAAI,CAAC,CAAC,QAAQ,CAAC,MAAM,GAAG,CAAC,CAAC,CAAC;IAC7E,IAAI,QAAQ,CAAC,MAAM,GAAG,CAAC;QAAE,OAAO,QAAQ,CAAC,CAAC,CAAC,CAAC;IAE5C,OAAO,QAAQ,CAAC,CAAC,CAAC,CAAC;AACpB,CAAC;AAED;;GAEG;AACH,MAAM,CAAC,MAAM,aAAa,GAItB;IACH,EAAE,EAAE,mBAAmB;IACvB,gBAAgB,EAAE,yBAAyB;IAC3C,qBAAqB,EAAE,8BAA8B;IACrD,OAAO,EAAE,gBAAgB;IACzB,QAAQ,EAAE,EAAE;CACZ,CAAC"}
1
+ {"version":3,"file":"formatter.js","sourceRoot":"","sources":["../../src/kinds/formatter.ts"],"names":[],"mappings":"AAAA;;;;GAIG;AAIH,OAAO,EAAE,yBAAyB,EAA4B,MAAM,yBAAyB,CAAC;AAC9F,OAAO,EAAE,qBAAqB,EAAwB,MAAM,qBAAqB,CAAC;AAuBlF;;;GAGG;AACH,MAAM,8BAA8B;IAC1B,EAAE,CAAS;IACX,UAAU,CAAsB;IAEzC,YAAY,UAA6B,EAAE,QAA0B;QACpE,IAAI,CAAC,EAAE,GAAG,UAAU,CAAC,EAAE,CAAC;QACxB,IAAI,CAAC,UAAU,GAAG,yBAAyB,CAAC,KAAK,CAAC,UAAU,CAAC,CAAC;IAC/D,CAAC;IAED,MAAM,CAAC,KAAsB;QAC5B,OAAO,IAAI,CAAC,SAAS,CAAC,KAAK,CAAC,CAAC;IAC9B,CAAC;IAED,KAAK,CAAC,SAAiB;QACtB,OAAO,qBAAqB,CAAC,KAAK,CAAC,IAAI,CAAC,KAAK,CAAC,SAAS,CAAC,CAAC,CAAC;IAC3D,CAAC;IAED,WAAW,CAAC,OAA0B;QACrC,OAAO,OAAO,CAAC,GAAG,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,IAAI,CAAC,MAAM,CAAC,CAAC,CAAC,CAAC,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC;IACtD,CAAC;IAED,UAAU,CAAC,SAAiB;QAC3B,OAAO,SAAS;aACd,KAAK,CAAC,IAAI,CAAC;aACX,MAAM,CAAC,CAAC,IAAI,EAAE,EAAE,CAAC,IAAI,CAAC,IAAI,EAAE,CAAC;aAC7B,GAAG,CAAC,CAAC,IAAI,EAAE,EAAE,CAAC,IAAI,CAAC,KAAK,CAAC,IAAI,CAAC,CAAC,CAAC;IACnC,CAAC;CACD;AAED;;;GAGG;AACH,SAAS,gBAAgB,CACxB,UAA+B,EAC/B,KAAmB,EACnB,QAAqB;IAErB,MAAM,KAAK,GAAG,yBAAyB,CAAC,KAAK,EAAE,CAAC,KAAK,CAAC,UAAU,CAAC,CAAC;IAClE,IAAI,KAAK,CAAC,MAAM,KAAK,CAAC;QAAE,OAAO,SAAS,CAAC;IACzC,IAAI,KAAK,CAAC,MAAM,KAAK,CAAC;QAAE,OAAO,KAAK,CAAC,CAAC,CAAC,CAAC;IAExC,MAAM,QAAQ,GAAG,KAAK,CAAC,QAAQ,CAAC;IAEhC,mCAAmC;IACnC,MAAM,QAAQ,GAAG,KAAK,CAAC,MAAM,CAAC,CAAC,CAAC,EAAE,EAAE;QACnC,IAAI,CAAC,CAAC,CAAC,QAAQ,IAAI,CAAC,CAAC,QAAQ,CAAC,MAAM,KAAK,CAAC;YAAE,OAAO,IAAI,CAAC;QACxD,OAAO,CAAC,CAAC,QAAQ,CAAC,QAAQ,CAAC,QAAQ,CAAC,CAAC;IACtC,CAAC,CAAC,CAAC;IAEH,IAAI,QAAQ,CAAC,MAAM,KAAK,CAAC;QAAE,OAAO,SAAS,CAAC;IAE5C,iDAAiD;IACjD,MAAM,QAAQ,GAAG,QAAQ,CAAC,MAAM,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC,QAAQ,IAAI,CAAC,CAAC,QAAQ,CAAC,MAAM,GAAG,CAAC,CAAC,CAAC;IAC7E,IAAI,QAAQ,CAAC,MAAM,GAAG,CAAC;QAAE,OAAO,QAAQ,CAAC,CAAC,CAAC,CAAC;IAE5C,OAAO,QAAQ,CAAC,CAAC,CAAC,CAAC;AACpB,CAAC;AAED;;GAEG;AACH,MAAM,CAAC,MAAM,aAAa,GAItB;IACH,EAAE,EAAE,mBAAmB;IACvB,gBAAgB,EAAE,yBAAyB;IAC3C,qBAAqB,EAAE,8BAA8B;IACrD,OAAO,EAAE,gBAAgB;IACzB,QAAQ,EAAE,EAAE;CACZ,CAAC"}
@@ -1,13 +1,13 @@
1
1
  import { sinkKind, type SinkImplementation, type SinkContext } from './sink.ts';
2
2
  import { formatterKind, type FormatterImplementation, type FormatterContext } from './formatter.ts';
3
3
  import { outputKind, type OutputImplementation, type OutputContext } from './output.ts';
4
- import { auditKind, type AuditImplementation, type AuditContext, type AuditLogInput, type AuditQueryOptions } from './audit.ts';
4
+ import { auditKind, type AuditImplementation, type AuditContext, type AuditLogInput, type AuditQueryOptions, auditLog, buildAuditEntry, emitAuditEntry, redactAuditContext } from './audit.ts';
5
5
  import { loggerKind } from './logger.ts';
6
- import DefaultLoggerImplementation, { type LoggerImplementation, type LoggerContext } from './logger.impl';
6
+ import DefaultLoggerImplementation, { type LoggerImplementation, type LoggerContext } from './logger.impl.ts';
7
7
  export { sinkKind, type SinkImplementation, type SinkContext };
8
8
  export { formatterKind, type FormatterImplementation, type FormatterContext };
9
9
  export { outputKind, type OutputImplementation, type OutputContext };
10
- export { auditKind, type AuditImplementation, type AuditContext, type AuditLogInput, type AuditQueryOptions };
10
+ export { auditKind, type AuditImplementation, type AuditContext, type AuditLogInput, type AuditQueryOptions, auditLog, buildAuditEntry, emitAuditEntry, redactAuditContext };
11
11
  export { loggerKind };
12
12
  export { DefaultLoggerImplementation, type LoggerImplementation, type LoggerContext };
13
13
  //# sourceMappingURL=index.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../src/kinds/index.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,QAAQ,EAAE,KAAK,kBAAkB,EAAE,KAAK,WAAW,EAAE,MAAM,WAAW,CAAC;AAChF,OAAO,EAAE,aAAa,EAAE,KAAK,uBAAuB,EAAE,KAAK,gBAAgB,EAAE,MAAM,gBAAgB,CAAC;AACpG,OAAO,EAAE,UAAU,EAAE,KAAK,oBAAoB,EAAE,KAAK,aAAa,EAAE,MAAM,aAAa,CAAC;AACxF,OAAO,EACN,SAAS,EACT,KAAK,mBAAmB,EACxB,KAAK,YAAY,EACjB,KAAK,aAAa,EAClB,KAAK,iBAAiB,EACtB,MAAM,YAAY,CAAC;AACpB,OAAO,EAAE,UAAU,EAAE,MAAM,aAAa,CAAC;AACzC,OAAO,2BAA2B,EAAE,EAAE,KAAK,oBAAoB,EAAE,KAAK,aAAa,EAAE,MAAM,eAAe,CAAC;AAE3G,OAAO,EAAE,QAAQ,EAAE,KAAK,kBAAkB,EAAE,KAAK,WAAW,EAAE,CAAC;AAC/D,OAAO,EAAE,aAAa,EAAE,KAAK,uBAAuB,EAAE,KAAK,gBAAgB,EAAE,CAAC;AAC9E,OAAO,EAAE,UAAU,EAAE,KAAK,oBAAoB,EAAE,KAAK,aAAa,EAAE,CAAC;AACrE,OAAO,EACN,SAAS,EACT,KAAK,mBAAmB,EACxB,KAAK,YAAY,EACjB,KAAK,aAAa,EAClB,KAAK,iBAAiB,EACtB,CAAC;AACF,OAAO,EAAE,UAAU,EAAE,CAAC;AACtB,OAAO,EAAE,2BAA2B,EAAE,KAAK,oBAAoB,EAAE,KAAK,aAAa,EAAE,CAAC"}
1
+ {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../src/kinds/index.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,QAAQ,EAAE,KAAK,kBAAkB,EAAE,KAAK,WAAW,EAAE,MAAM,WAAW,CAAC;AAChF,OAAO,EAAE,aAAa,EAAE,KAAK,uBAAuB,EAAE,KAAK,gBAAgB,EAAE,MAAM,gBAAgB,CAAC;AACpG,OAAO,EAAE,UAAU,EAAE,KAAK,oBAAoB,EAAE,KAAK,aAAa,EAAE,MAAM,aAAa,CAAC;AACxF,OAAO,EACN,SAAS,EACT,KAAK,mBAAmB,EACxB,KAAK,YAAY,EACjB,KAAK,aAAa,EAClB,KAAK,iBAAiB,EACtB,QAAQ,EACR,eAAe,EACf,cAAc,EACd,kBAAkB,EAClB,MAAM,YAAY,CAAC;AACpB,OAAO,EAAE,UAAU,EAAE,MAAM,aAAa,CAAC;AACzC,OAAO,2BAA2B,EAAE,EAAE,KAAK,oBAAoB,EAAE,KAAK,aAAa,EAAE,MAAM,kBAAkB,CAAC;AAE9G,OAAO,EAAE,QAAQ,EAAE,KAAK,kBAAkB,EAAE,KAAK,WAAW,EAAE,CAAC;AAC/D,OAAO,EAAE,aAAa,EAAE,KAAK,uBAAuB,EAAE,KAAK,gBAAgB,EAAE,CAAC;AAC9E,OAAO,EAAE,UAAU,EAAE,KAAK,oBAAoB,EAAE,KAAK,aAAa,EAAE,CAAC;AACrE,OAAO,EACN,SAAS,EACT,KAAK,mBAAmB,EACxB,KAAK,YAAY,EACjB,KAAK,aAAa,EAClB,KAAK,iBAAiB,EACtB,QAAQ,EACR,eAAe,EACf,cAAc,EACd,kBAAkB,EAClB,CAAC;AACF,OAAO,EAAE,UAAU,EAAE,CAAC;AACtB,OAAO,EAAE,2BAA2B,EAAE,KAAK,oBAAoB,EAAE,KAAK,aAAa,EAAE,CAAC"}
@@ -1,13 +1,13 @@
1
1
  import { sinkKind } from "./sink.js";
2
2
  import { formatterKind } from "./formatter.js";
3
3
  import { outputKind } from "./output.js";
4
- import { auditKind } from "./audit.js";
4
+ import { auditKind, auditLog, buildAuditEntry, emitAuditEntry, redactAuditContext } from "./audit.js";
5
5
  import { loggerKind } from "./logger.js";
6
- import DefaultLoggerImplementation, {} from './logger.impl.js';
6
+ import DefaultLoggerImplementation, {} from "./logger.impl.js";
7
7
  export { sinkKind };
8
8
  export { formatterKind };
9
9
  export { outputKind };
10
- export { auditKind };
10
+ export { auditKind, auditLog, buildAuditEntry, emitAuditEntry, redactAuditContext };
11
11
  export { loggerKind };
12
12
  export { DefaultLoggerImplementation };
13
13
  //# sourceMappingURL=index.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"index.js","sourceRoot":"","sources":["../../src/kinds/index.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,QAAQ,EAA6C,MAAM,WAAW,CAAC;AAChF,OAAO,EAAE,aAAa,EAAuD,MAAM,gBAAgB,CAAC;AACpG,OAAO,EAAE,UAAU,EAAiD,MAAM,aAAa,CAAC;AACxF,OAAO,EACN,SAAS,EAKT,MAAM,YAAY,CAAC;AACpB,OAAO,EAAE,UAAU,EAAE,MAAM,aAAa,CAAC;AACzC,OAAO,2BAA2B,EAAE,EAAiD,MAAM,eAAe,CAAC;AAE3G,OAAO,EAAE,QAAQ,EAA6C,CAAC;AAC/D,OAAO,EAAE,aAAa,EAAuD,CAAC;AAC9E,OAAO,EAAE,UAAU,EAAiD,CAAC;AACrE,OAAO,EACN,SAAS,EAKT,CAAC;AACF,OAAO,EAAE,UAAU,EAAE,CAAC;AACtB,OAAO,EAAE,2BAA2B,EAAiD,CAAC"}
1
+ {"version":3,"file":"index.js","sourceRoot":"","sources":["../../src/kinds/index.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,QAAQ,EAA6C,MAAM,WAAW,CAAC;AAChF,OAAO,EAAE,aAAa,EAAuD,MAAM,gBAAgB,CAAC;AACpG,OAAO,EAAE,UAAU,EAAiD,MAAM,aAAa,CAAC;AACxF,OAAO,EACN,SAAS,EAKT,QAAQ,EACR,eAAe,EACf,cAAc,EACd,kBAAkB,EAClB,MAAM,YAAY,CAAC;AACpB,OAAO,EAAE,UAAU,EAAE,MAAM,aAAa,CAAC;AACzC,OAAO,2BAA2B,EAAE,EAAiD,MAAM,kBAAkB,CAAC;AAE9G,OAAO,EAAE,QAAQ,EAA6C,CAAC;AAC/D,OAAO,EAAE,aAAa,EAAuD,CAAC;AAC9E,OAAO,EAAE,UAAU,EAAiD,CAAC;AACrE,OAAO,EACN,SAAS,EAKT,QAAQ,EACR,eAAe,EACf,cAAc,EACd,kBAAkB,EAClB,CAAC;AACF,OAAO,EAAE,UAAU,EAAE,CAAC;AACtB,OAAO,EAAE,2BAA2B,EAAiD,CAAC"}
@@ -1,11 +1,11 @@
1
- import type { RuntimeKindDescriptor } from '@vibesdotdev/runtime/schemas/kind';
1
+ import type { RuntimeKindDescriptor } from '@vibesdotdev/kernel/schemas/kind';
2
2
  import { type LoggerDescriptor } from '../schemas/logger.ts';
3
- import { type LoggerImplementation } from './logger.impl';
3
+ import { type LoggerImplementation } from './logger.impl.ts';
4
4
  import type { LoggerContext } from './contexts.ts';
5
5
  export type { LoggerImplementation, LoggerContext };
6
6
  export declare const loggerKind: RuntimeKindDescriptor<LoggerDescriptor, LoggerImplementation, LoggerContext>;
7
- declare module '@vibesdotdev/runtime/schemas/kind-types' {
8
- interface KindTypeMap {
7
+ declare global {
8
+ interface VibesKindTypeMap {
9
9
  'logging/logger': {
10
10
  descriptor: LoggerDescriptor;
11
11
  impl: LoggerImplementation;
@@ -1 +1 @@
1
- {"version":3,"file":"logger.d.ts","sourceRoot":"","sources":["../../src/kinds/logger.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,qBAAqB,EAAkC,MAAM,mCAAmC,CAAC;AAE/G,OAAO,EAA0B,KAAK,gBAAgB,EAAE,MAAM,sBAAsB,CAAC;AACrF,OAAoC,EAAE,KAAK,oBAAoB,EAAE,MAAM,eAAe,CAAC;AACvF,OAAO,KAAK,EAAE,aAAa,EAAE,MAAM,eAAe,CAAC;AAEnD,YAAY,EAAE,oBAAoB,EAAE,aAAa,EAAE,CAAC;AAuBpD,eAAO,MAAM,UAAU,EAAE,qBAAqB,CAC7C,gBAAgB,EAChB,oBAAoB,EACpB,aAAa,CAOb,CAAC;AAEF,OAAO,QAAQ,yCAAyC,CAAC;IACxD,UAAU,WAAW;QACpB,gBAAgB,EAAE;YAAE,UAAU,EAAE,gBAAgB,CAAC;YAAC,IAAI,EAAE,oBAAoB,CAAA;SAAE,CAAC;KAC/E;CACD"}
1
+ {"version":3,"file":"logger.d.ts","sourceRoot":"","sources":["../../src/kinds/logger.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,qBAAqB,EAAkC,MAAM,kCAAkC,CAAC;AAE9G,OAAO,EAA8D,KAAK,gBAAgB,EAAE,MAAM,sBAAsB,CAAC;AACzH,OAAoC,EAAE,KAAK,oBAAoB,EAAE,MAAM,kBAAkB,CAAC;AAC1F,OAAO,KAAK,EAAE,aAAa,EAAE,MAAM,eAAe,CAAC;AAEnD,YAAY,EAAE,oBAAoB,EAAE,aAAa,EAAE,CAAC;AAyBpD,eAAO,MAAM,UAAU,EAAE,qBAAqB,CAC7C,gBAAgB,EAChB,oBAAoB,EACpB,aAAa,CAcb,CAAC;AAEF,OAAO,CAAC,MAAM,CAAC;IACd,UAAU,gBAAgB;QACzB,gBAAgB,EAAE;YAAE,UAAU,EAAE,gBAAgB,CAAC;YAAC,IAAI,EAAE,oBAAoB,CAAA;SAAE,CAAC;KAC/E;CACD"}
@@ -1,15 +1,25 @@
1
1
  import type { LogContext, LoggerChildOptions, RequestLogContext, JobLogContext, PerformanceTrackerParams, PerformanceTracker } from '../schemas/entry.ts';
2
2
  export type { PerformanceTracker } from '../schemas/entry.ts';
3
- import type { RuntimeDescriptor } from '@vibesdotdev/runtime/schemas/kind';
4
- import type { KindContext } from '@vibesdotdev/runtime/schemas/kind';
3
+ import type { SinkImplementation } from './sink.ts';
4
+ import { type LogMethod } from '../core/normalize.ts';
5
+ import type { LoggedError } from '../core/redact.ts';
6
+ import type { RuntimeDescriptor } from '@vibesdotdev/kernel/schemas/kind';
7
+ import type { KindContext } from '@vibesdotdev/kernel/schemas/kind';
5
8
  export type { LoggerContext } from './contexts.ts';
9
+ interface PreparedBackends {
10
+ readonly fallback: SinkImplementation;
11
+ readonly diagnostics: LoggerImplementation;
12
+ assertLive(): void;
13
+ /** Join an accepted write; its failure goes to `recover`, and a failed recovery is retained for close. */
14
+ accept(operation: Promise<void>, recover: (failure: LoggedError) => void): void;
15
+ }
6
16
  export interface LoggerImplementation {
7
17
  readonly namespace: string;
8
18
  readonly fullNamespace: string;
9
- debug(message: string, context?: unknown): void;
10
- info(message: string, context?: unknown): void;
11
- warn(message: string, context?: unknown): void;
12
- error(message: string, context?: unknown): void;
19
+ debug: LogMethod;
20
+ info: LogMethod;
21
+ warn: LogMethod;
22
+ error: LogMethod;
13
23
  child(options: LoggerChildOptions): LoggerImplementation;
14
24
  withContext(context: LogContext): LoggerImplementation;
15
25
  withRequestContext(context: RequestLogContext): LoggerImplementation;
@@ -20,17 +30,34 @@ export default class DefaultLoggerImplementation implements LoggerImplementation
20
30
  readonly namespace: string;
21
31
  readonly fullNamespace: string;
22
32
  private readonly descriptor;
23
- private readonly sinks;
24
- private readonly outputs;
33
+ private sinks;
34
+ private outputs;
35
+ private readonly needsSinkBindings;
36
+ private readonly needsOutputBindings;
37
+ private backendsInitialized;
25
38
  private readonly staticMetadata;
26
- constructor(descriptor: RuntimeDescriptor, context: KindContext, fullNamespace?: string, additionalMetadata?: LogContext);
39
+ private staticFailure;
40
+ private readonly runtime;
41
+ private backends;
42
+ constructor(descriptor: RuntimeDescriptor, context: KindContext, fullNamespace?: string, additionalMetadata?: LogContext, preparedBackends?: PreparedBackends);
43
+ /** Metadata that could not be read rides every entry as its `loggingError`; it is reported once, at the first emission. */
44
+ private reportStaticFailureOnce;
45
+ /** Runtime's kind hook awaits descriptor-owned providers before exposing the logger. */
46
+ initializeBackends(): Promise<void>;
27
47
  private getLevelSettings;
48
+ /** `readCall` reads the call's context; it runs only once the entry passed its level and sampling, so a dropped call never walks it. */
28
49
  private emit;
29
- debug(message: string, context?: unknown): void;
30
- info(message: string, context?: unknown): void;
31
- warn(message: string, context?: unknown): void;
32
- error(message: string, context?: unknown): void;
50
+ readonly debug: (args_0: string, args_1?: unknown, args_2?: unknown) => void;
51
+ readonly info: (args_0: string, args_1?: unknown, args_2?: unknown) => void;
52
+ readonly warn: (args_0: string, args_1?: unknown, args_2?: unknown) => void;
53
+ readonly error: (args_0: string, args_1?: unknown, args_2?: unknown) => void;
54
+ /**
55
+ * A logger derived from `merged` (read without throwing). A context that
56
+ * could not be read is reported once, here, and rides every entry the derived
57
+ * logger emits as its `loggingError`.
58
+ */
33
59
  private createContextualLogger;
60
+ /** The options are read once, without throwing; unreadable ones ride every entry as the `loggingError`, reported once here. */
34
61
  child(options: LoggerChildOptions): LoggerImplementation;
35
62
  withContext(context: LogContext): LoggerImplementation;
36
63
  withRequestContext(context: RequestLogContext): LoggerImplementation;
@@ -1 +1 @@
1
- {"version":3,"file":"logger.impl.d.ts","sourceRoot":"","sources":["../../src/kinds/logger.impl.ts"],"names":[],"mappings":"AACA,OAAO,KAAK,EAEX,UAAU,EAEV,kBAAkB,EAClB,iBAAiB,EACjB,aAAa,EACb,wBAAwB,EACxB,kBAAkB,EAClB,MAAM,qBAAqB,CAAC;AAC7B,YAAY,EAAE,kBAAkB,EAAE,MAAM,qBAAqB,CAAC;AAa9D,OAAO,KAAK,EAAE,iBAAiB,EAAE,MAAM,mCAAmC,CAAC;AAC3E,OAAO,KAAK,EAAE,WAAW,EAAE,MAAM,mCAAmC,CAAC;AAErE,YAAY,EAAE,aAAa,EAAE,MAAM,eAAe,CAAC;AAInD,MAAM,WAAW,oBAAoB;IACpC,QAAQ,CAAC,SAAS,EAAE,MAAM,CAAC;IAC3B,QAAQ,CAAC,aAAa,EAAE,MAAM,CAAC;IAC/B,KAAK,CAAC,OAAO,EAAE,MAAM,EAAE,OAAO,CAAC,EAAE,OAAO,GAAG,IAAI,CAAC;IAChD,IAAI,CAAC,OAAO,EAAE,MAAM,EAAE,OAAO,CAAC,EAAE,OAAO,GAAG,IAAI,CAAC;IAC/C,IAAI,CAAC,OAAO,EAAE,MAAM,EAAE,OAAO,CAAC,EAAE,OAAO,GAAG,IAAI,CAAC;IAC/C,KAAK,CAAC,OAAO,EAAE,MAAM,EAAE,OAAO,CAAC,EAAE,OAAO,GAAG,IAAI,CAAC;IAChD,KAAK,CAAC,OAAO,EAAE,kBAAkB,GAAG,oBAAoB,CAAC;IACzD,WAAW,CAAC,OAAO,EAAE,UAAU,GAAG,oBAAoB,CAAC;IACvD,kBAAkB,CAAC,OAAO,EAAE,iBAAiB,GAAG,oBAAoB,CAAC;IACrE,cAAc,CAAC,OAAO,EAAE,aAAa,GAAG,oBAAoB,CAAC;IAC7D,kBAAkB,CAAC,MAAM,EAAE,wBAAwB,GAAG,kBAAkB,CAAC;CACzE;AAmBD,MAAM,CAAC,OAAO,OAAO,2BAA4B,YAAW,oBAAoB;IAC/E,QAAQ,CAAC,SAAS,EAAE,MAAM,CAAC;IAC3B,QAAQ,CAAC,aAAa,EAAE,MAAM,CAAC;IAC/B,OAAO,CAAC,QAAQ,CAAC,UAAU,CAAmB;IAC9C,OAAO,CAAC,QAAQ,CAAC,KAAK,CAAuB;IAC7C,OAAO,CAAC,QAAQ,CAAC,OAAO,CAAyB;IACjD,OAAO,CAAC,QAAQ,CAAC,cAAc,CAAa;gBAG3C,UAAU,EAAE,iBAAiB,EAC7B,OAAO,EAAE,WAAW,EACpB,aAAa,CAAC,EAAE,MAAM,EACtB,kBAAkB,CAAC,EAAE,UAAU;IAehC,OAAO,CAAC,gBAAgB;IAQxB,OAAO,CAAC,IAAI;IA6BZ,KAAK,CAAC,OAAO,EAAE,MAAM,EAAE,OAAO,CAAC,EAAE,OAAO,GAAG,IAAI;IAC/C,IAAI,CAAC,OAAO,EAAE,MAAM,EAAE,OAAO,CAAC,EAAE,OAAO,GAAG,IAAI;IAC9C,IAAI,CAAC,OAAO,EAAE,MAAM,EAAE,OAAO,CAAC,EAAE,OAAO,GAAG,IAAI;IAC9C,KAAK,CAAC,OAAO,EAAE,MAAM,EAAE,OAAO,CAAC,EAAE,OAAO,GAAG,IAAI;IAE/C,OAAO,CAAC,sBAAsB;IAS9B,KAAK,CAAC,OAAO,EAAE,kBAAkB,GAAG,oBAAoB;IAUxD,WAAW,CAAC,OAAO,EAAE,UAAU,GAAG,oBAAoB;IAItD,kBAAkB,CAAC,OAAO,EAAE,iBAAiB,GAAG,oBAAoB;IAepE,cAAc,CAAC,OAAO,EAAE,aAAa,GAAG,oBAAoB;IAc5D,kBAAkB,CAAC,MAAM,EAAE,wBAAwB,GAAG,kBAAkB;CAsBxE"}
1
+ {"version":3,"file":"logger.impl.d.ts","sourceRoot":"","sources":["../../src/kinds/logger.impl.ts"],"names":[],"mappings":"AACA,OAAO,KAAK,EAEX,UAAU,EAEV,kBAAkB,EAClB,iBAAiB,EACjB,aAAa,EACb,wBAAwB,EACxB,kBAAkB,EAClB,MAAM,qBAAqB,CAAC;AAC7B,YAAY,EAAE,kBAAkB,EAAE,MAAM,qBAAqB,CAAC;AAC9D,OAAO,KAAK,EAAE,kBAAkB,EAAE,MAAM,WAAW,CAAC;AAKpD,OAAO,EAA4B,KAAK,SAAS,EAAE,MAAM,sBAAsB,CAAC;AAEhF,OAAO,KAAK,EAAE,WAAW,EAAE,MAAM,mBAAmB,CAAC;AAYrD,OAAO,KAAK,EAAE,iBAAiB,EAAE,MAAM,kCAAkC,CAAC;AAC1E,OAAO,KAAK,EAAE,WAAW,EAAE,MAAM,kCAAkC,CAAC;AAOpE,YAAY,EAAE,aAAa,EAAE,MAAM,eAAe,CAAC;AAEnD,UAAU,gBAAgB;IACzB,QAAQ,CAAC,QAAQ,EAAE,kBAAkB,CAAC;IACtC,QAAQ,CAAC,WAAW,EAAE,oBAAoB,CAAC;IAC3C,UAAU,IAAI,IAAI,CAAC;IACnB,0GAA0G;IAC1G,MAAM,CAAC,SAAS,EAAE,OAAO,CAAC,IAAI,CAAC,EAAE,OAAO,EAAE,CAAC,OAAO,EAAE,WAAW,KAAK,IAAI,GAAG,IAAI,CAAC;CAChF;AA0CD,MAAM,WAAW,oBAAoB;IACpC,QAAQ,CAAC,SAAS,EAAE,MAAM,CAAC;IAC3B,QAAQ,CAAC,aAAa,EAAE,MAAM,CAAC;IAC/B,KAAK,EAAE,SAAS,CAAC;IACjB,IAAI,EAAE,SAAS,CAAC;IAChB,IAAI,EAAE,SAAS,CAAC;IAChB,KAAK,EAAE,SAAS,CAAC;IACjB,KAAK,CAAC,OAAO,EAAE,kBAAkB,GAAG,oBAAoB,CAAC;IACzD,WAAW,CAAC,OAAO,EAAE,UAAU,GAAG,oBAAoB,CAAC;IACvD,kBAAkB,CAAC,OAAO,EAAE,iBAAiB,GAAG,oBAAoB,CAAC;IACrE,cAAc,CAAC,OAAO,EAAE,aAAa,GAAG,oBAAoB,CAAC;IAC7D,kBAAkB,CAAC,MAAM,EAAE,wBAAwB,GAAG,kBAAkB,CAAC;CACzE;AAED,MAAM,CAAC,OAAO,OAAO,2BAA4B,YAAW,oBAAoB;IAC/E,QAAQ,CAAC,SAAS,EAAE,MAAM,CAAC;IAC3B,QAAQ,CAAC,aAAa,EAAE,MAAM,CAAC;IAC/B,OAAO,CAAC,QAAQ,CAAC,UAAU,CAAmB;IAC9C,OAAO,CAAC,KAAK,CAAuB;IACpC,OAAO,CAAC,OAAO,CAAyB;IACxC,OAAO,CAAC,QAAQ,CAAC,iBAAiB,CAAU;IAC5C,OAAO,CAAC,QAAQ,CAAC,mBAAmB,CAAU;IAC9C,OAAO,CAAC,mBAAmB,CAAS;IACpC,OAAO,CAAC,QAAQ,CAAC,cAAc,CAAa;IAC5C,OAAO,CAAC,aAAa,CAA0B;IAC/C,OAAO,CAAC,QAAQ,CAAC,OAAO,CAAa;IACrC,OAAO,CAAC,QAAQ,CAA+B;gBAG9C,UAAU,EAAE,iBAAiB,EAC7B,OAAO,EAAE,WAAW,EACpB,aAAa,CAAC,EAAE,MAAM,EACtB,kBAAkB,CAAC,EAAE,UAAU,EAC/B,gBAAgB,CAAC,EAAE,gBAAgB;IAoBpC,2HAA2H;IAC3H,OAAO,CAAC,uBAAuB;IAO/B,wFAAwF;IAClF,kBAAkB,IAAI,OAAO,CAAC,IAAI,CAAC;IAuBzC,OAAO,CAAC,gBAAgB;IAQxB,wIAAwI;IACxI,OAAO,CAAC,IAAI;IAiDZ,QAAQ,CAAC,KAAK,+DAAqM;IACnN,QAAQ,CAAC,IAAI,+DAAoM;IACjN,QAAQ,CAAC,IAAI,+DAAoM;IACjN,QAAQ,CAAC,KAAK,+DAAqM;IAEnN;;;;OAIG;IACH,OAAO,CAAC,sBAAsB;IAW9B,+HAA+H;IAC/H,KAAK,CAAC,OAAO,EAAE,kBAAkB,GAAG,oBAAoB;IAKxD,WAAW,CAAC,OAAO,EAAE,UAAU,GAAG,oBAAoB;IAItD,kBAAkB,CAAC,OAAO,EAAE,iBAAiB,GAAG,oBAAoB;IAIpE,cAAc,CAAC,OAAO,EAAE,aAAa,GAAG,oBAAoB;IAI5D,kBAAkB,CAAC,MAAM,EAAE,wBAAwB,GAAG,kBAAkB;CAqBxE"}
@@ -1,21 +1,58 @@
1
- import { shouldLog, getNamespaceSettings } from "../core/namespace.js";
2
- import { resolveSinkContext, resolveOutputContext, createDefaultConsoleSink, deriveChildConfig, resolveSinks, resolveOutputs } from './logger.utils.js';
3
- const defaultSink = createDefaultConsoleSink();
4
- function normalizeLogContext(context) {
5
- if (context === undefined || context === null) {
6
- return {};
7
- }
8
- if (context instanceof Error) {
9
- return {
10
- errorName: context.name,
11
- errorMessage: context.message,
12
- stack: context.stack
13
- };
14
- }
15
- if (typeof context === 'object' && !Array.isArray(context)) {
16
- return context;
17
- }
18
- return { value: context };
1
+ import { LoggerDescriptorSchema } from "../schemas/logger.js";
2
+ import { shouldLog, getNamespaceSettings, updateNamespaceSettingsFromRuntime } from "../core/namespace.js";
3
+ import { captureLoggingConfig, getCapturedLoggingConfig } from "../config/load-config.js";
4
+ import { shouldKeepLog } from "../observability/should-keep-log.js";
5
+ import { PerformanceFailureSchema } from "../core/normalize.js";
6
+ import { BackendFailureSchema, derivedLoggerMetadata, JOB_CONTEXT_FIELDS, LogCallSchema, mergeCallContextFields, mergeCallContexts, mergeFailureContexts, prepareEntryContext, OptionalCallContextSchema, readTrackerParams, REQUEST_CONTEXT_FIELDS } from "../core/entry-context.js";
7
+ import { attempt, settle } from "../core/outcome.js";
8
+ import { isLoggingEmissionClosed } from "../core/emission-window.js";
9
+ import { resolveSinkContext, resolveOutputContext, createDefaultConsoleSink, deriveChildConfig, resolveSinks, resolveOutputs, reportBackendFailure } from "./logger.utils.js";
10
+ import { CapabilityError, getRuntimeConsole } from '@vibesdotdev/kernel';
11
+ import { createFallbackLogger } from "../contexts/fallback-logger.js";
12
+ import { trackLoggingResource, untrackLoggingResource } from "../core/output-resources.js";
13
+ async function prepareBackends(runtime) {
14
+ const fallback = createDefaultConsoleSink(await getRuntimeConsole(runtime));
15
+ const diagnostics = await createFallbackLogger('logging', runtime);
16
+ const lifecycle = runtime.lifecycle;
17
+ const accepted = new Set();
18
+ const failures = [];
19
+ let closing = false;
20
+ let closePromise;
21
+ const resource = {
22
+ close() {
23
+ if (closePromise)
24
+ return closePromise;
25
+ closing = true;
26
+ closePromise = (async () => {
27
+ await Promise.all(accepted);
28
+ untrackLoggingResource(runtime, resource);
29
+ if (failures.length)
30
+ throw new AggregateError(failures, 'Logger backend diagnostics failed.');
31
+ })();
32
+ return closePromise;
33
+ }
34
+ };
35
+ trackLoggingResource(runtime, resource);
36
+ return {
37
+ fallback, diagnostics,
38
+ assertLive() {
39
+ if (closing || isLoggingEmissionClosed(runtime))
40
+ throw new CapabilityError('The logger no longer accepts entries.', 'CANCELLED', {
41
+ reason: 'logger-runtime-disposed', cause: lifecycle.signal.reason
42
+ });
43
+ },
44
+ accept(operation, recover) {
45
+ const completed = settle(operation).then((written) => {
46
+ if (!written.failed)
47
+ return;
48
+ const recovered = attempt(() => recover(BackendFailureSchema.parse(written.cause)));
49
+ if (recovered.failed)
50
+ failures.push(BackendFailureSchema.parse(recovered.cause));
51
+ });
52
+ accepted.add(completed);
53
+ void completed.then(() => accepted.delete(completed));
54
+ }
55
+ };
19
56
  }
20
57
  export default class DefaultLoggerImplementation {
21
58
  namespace;
@@ -23,116 +60,171 @@ export default class DefaultLoggerImplementation {
23
60
  descriptor;
24
61
  sinks;
25
62
  outputs;
63
+ needsSinkBindings;
64
+ needsOutputBindings;
65
+ backendsInitialized = false;
26
66
  staticMetadata;
27
- constructor(descriptor, context, fullNamespace, additionalMetadata) {
28
- this.descriptor = descriptor;
29
- this.namespace = descriptor.namespace;
30
- this.fullNamespace = fullNamespace ?? descriptor.namespace;
31
- const typedCtx = context;
32
- this.sinks = resolveSinks(descriptor, resolveSinkContext(typedCtx), defaultSink);
33
- this.outputs = resolveOutputs(descriptor, resolveOutputContext(typedCtx));
34
- this.staticMetadata = {
35
- runtime: descriptor.runtime,
36
- ...descriptor.metadata,
37
- ...additionalMetadata
38
- };
67
+ staticFailure;
68
+ runtime;
69
+ backends;
70
+ constructor(descriptor, context, fullNamespace, additionalMetadata, preparedBackends) {
71
+ this.runtime = context.runtime;
72
+ this.backends = preparedBackends;
73
+ this.backendsInitialized = preparedBackends !== undefined;
74
+ this.descriptor = LoggerDescriptorSchema.parse(descriptor);
75
+ this.namespace = this.descriptor.namespace;
76
+ this.fullNamespace = fullNamespace ?? this.descriptor.namespace;
77
+ const sinks = resolveSinkContext(context);
78
+ const outputs = resolveOutputContext(context);
79
+ this.needsSinkBindings = sinks === undefined;
80
+ this.needsOutputBindings = outputs === undefined;
81
+ this.sinks = resolveSinks(this.descriptor, sinks, this.backends?.fallback);
82
+ this.outputs = resolveOutputs(this.descriptor, outputs);
83
+ // The static metadata is read (walked and redacted) once, here: each entry merges this snapshot with its call's.
84
+ const initial = mergeCallContexts({}, { runtime: this.descriptor.runtime, ...this.descriptor.metadata, ...additionalMetadata });
85
+ this.staticMetadata = derivedLoggerMetadata(initial);
86
+ this.staticFailure = initial.failure;
87
+ }
88
+ /** Metadata that could not be read rides every entry as its `loggingError`; it is reported once, at the first emission. */
89
+ reportStaticFailureOnce(backends) {
90
+ const failure = this.staticFailure;
91
+ if (failure === undefined)
92
+ return;
93
+ this.staticFailure = undefined;
94
+ backends.diagnostics.warn('Log context could not be normalized', { namespace: this.fullNamespace, error: failure });
95
+ }
96
+ /** Runtime's kind hook awaits descriptor-owned providers before exposing the logger. */
97
+ async initializeBackends() {
98
+ if (this.backendsInitialized)
99
+ return;
100
+ await captureLoggingConfig(this.runtime);
101
+ updateNamespaceSettingsFromRuntime(this.runtime);
102
+ this.backends = await prepareBackends(this.runtime);
103
+ if (!this.needsSinkBindings && this.sinks.length === 0)
104
+ this.sinks = [this.backends.fallback];
105
+ if (this.needsSinkBindings) {
106
+ const sinks = new Map();
107
+ for (const id of this.descriptor.sinks) {
108
+ sinks.set(id, await this.runtime.query('logging/sink').withId(id).resolve());
109
+ }
110
+ this.sinks = resolveSinks(this.descriptor, sinks, this.backends.fallback);
111
+ }
112
+ if (this.needsOutputBindings) {
113
+ const outputs = new Map();
114
+ for (const id of this.descriptor.outputs ?? []) {
115
+ outputs.set(id, await this.runtime.query('logging/output').withId(id).resolve());
116
+ }
117
+ this.outputs = resolveOutputs(this.descriptor, outputs);
118
+ }
119
+ this.backendsInitialized = true;
39
120
  }
40
121
  getLevelSettings() {
41
- const base = getNamespaceSettings();
122
+ const base = getNamespaceSettings(this.runtime);
42
123
  if (this.descriptor.level && base.defaultLevel !== this.descriptor.level) {
43
124
  return { ...base, defaultLevel: this.descriptor.level };
44
125
  }
45
126
  return base;
46
127
  }
47
- emit(level, message, context) {
128
+ /** `readCall` reads the call's context; it runs only once the entry passed its level and sampling, so a dropped call never walks it. */
129
+ emit(level, message, readCall) {
130
+ const backends = this.backends;
131
+ if (!this.backendsInitialized || !backends)
132
+ throw new CapabilityError('The logger has not been prepared by Runtime selection.', 'UNAVAILABLE', {
133
+ reason: 'logger-not-initialized', retryable: false
134
+ });
135
+ backends.assertLive();
48
136
  const settings = this.getLevelSettings();
49
137
  if (!shouldLog({ namespace: this.fullNamespace, level, settings }))
50
138
  return;
139
+ const infoRate = getCapturedLoggingConfig(this.runtime).infoSamplingRate;
140
+ // LogLevel ('debug'|'info'|'warn'|'error') is a subset of SampledLogLevel,
141
+ // which additionally carries 'fatal'. The guard this replaced enumerated
142
+ // every LogLevel member plus 'fatal' and fell back to 'info' — but no
143
+ // LogLevel value can miss that list, so the fallback was unreachable and
144
+ // the 'fatal' arm compared two types with no overlap. Passing `level`
145
+ // straight through is the same behavior with the dead branches gone.
146
+ if (!shouldKeepLog(level, infoRate)) {
147
+ return;
148
+ }
149
+ this.reportStaticFailureOnce(backends);
150
+ const prepared = prepareEntryContext(this.staticMetadata, readCall());
51
151
  const entry = {
52
152
  timestamp: new Date().toISOString(),
53
153
  level,
54
154
  namespace: this.fullNamespace,
55
155
  message,
56
- context: { ...this.staticMetadata, ...normalizeLogContext(context) }
156
+ context: prepared.context
157
+ };
158
+ // The entry is still delivered; the failure is reported once, with its namespace and level.
159
+ if (prepared.failure)
160
+ backends.diagnostics.warn('Log context could not be normalized', { namespace: this.fullNamespace, level, error: prepared.failure });
161
+ const recoverSink = (failure) => {
162
+ backends.fallback.emit(entry);
163
+ reportBackendFailure(backends.diagnostics, 'sink', failure);
57
164
  };
58
165
  for (const sink of this.sinks) {
59
- try {
60
- sink.emit(entry);
61
- }
62
- catch (e) {
63
- defaultSink.emit(entry);
64
- }
166
+ const emitted = attempt(() => sink.emit(entry));
167
+ if (emitted.failed)
168
+ recoverSink(BackendFailureSchema.parse(emitted.cause));
169
+ else if (emitted.value)
170
+ backends.accept(emitted.value, recoverSink);
65
171
  }
172
+ const recoverOutput = (failure) => reportBackendFailure(backends.diagnostics, 'output', failure);
66
173
  for (const output of this.outputs) {
67
- try {
68
- output.write(entry).catch(() => { });
69
- }
70
- catch {
71
- /* output sync error */
72
- }
174
+ const written = attempt(() => output.write(entry));
175
+ if (written.failed)
176
+ recoverOutput(BackendFailureSchema.parse(written.cause));
177
+ else
178
+ backends.accept(written.value, recoverOutput);
73
179
  }
74
180
  }
75
- debug(message, context) { this.emit('debug', message, context); }
76
- info(message, context) { this.emit('info', message, context); }
77
- warn(message, context) { this.emit('warn', message, context); }
78
- error(message, context) { this.emit('error', message, context); }
79
- createContextualLogger(merged) {
80
- return new DefaultLoggerImplementation(this.descriptor, { runtime: undefined, sinks: this.sinks, outputs: this.outputs }, this.fullNamespace, merged);
181
+ debug = LogCallSchema.implement((message, context, extra) => this.emit('debug', message, () => (extra === undefined ? OptionalCallContextSchema.parse(context) : mergeCallContexts({}, context, extra))));
182
+ info = LogCallSchema.implement((message, context, extra) => this.emit('info', message, () => (extra === undefined ? OptionalCallContextSchema.parse(context) : mergeCallContexts({}, context, extra))));
183
+ warn = LogCallSchema.implement((message, context, extra) => this.emit('warn', message, () => (extra === undefined ? OptionalCallContextSchema.parse(context) : mergeCallContexts({}, context, extra))));
184
+ error = LogCallSchema.implement((message, context, extra) => this.emit('error', message, () => (extra === undefined ? OptionalCallContextSchema.parse(context) : mergeCallContexts({}, context, extra))));
185
+ /**
186
+ * A logger derived from `merged` (read without throwing). A context that
187
+ * could not be read is reported once, here, and rides every entry the derived
188
+ * logger emits as its `loggingError`.
189
+ */
190
+ createContextualLogger(merged, fullNamespace = this.fullNamespace) {
191
+ if (merged.failure)
192
+ this.backends?.diagnostics.warn('Log context could not be normalized', { namespace: this.fullNamespace, error: merged.failure });
193
+ return new DefaultLoggerImplementation(this.descriptor, { runtime: this.runtime, sinks: this.sinks, outputs: this.outputs }, fullNamespace, derivedLoggerMetadata(merged), this.backends);
81
194
  }
195
+ /** The options are read once, without throwing; unreadable ones ride every entry as the `loggingError`, reported once here. */
82
196
  child(options) {
83
- const { nextNamespace, childMetadata } = deriveChildConfig(this.fullNamespace, options);
84
- return new DefaultLoggerImplementation(this.descriptor, { runtime: undefined, sinks: this.sinks, outputs: this.outputs }, nextNamespace, { ...this.staticMetadata, ...childMetadata });
197
+ const { nextNamespace, childMetadata, failure } = deriveChildConfig(this.fullNamespace, options);
198
+ return this.createContextualLogger({ context: { ...this.staticMetadata, ...childMetadata }, failure }, nextNamespace);
85
199
  }
86
200
  withContext(context) {
87
- return this.createContextualLogger({ ...this.staticMetadata, ...context });
201
+ return this.createContextualLogger(mergeCallContexts(this.staticMetadata, context));
88
202
  }
89
203
  withRequestContext(context) {
90
- const s = this.staticMetadata;
91
- return this.createContextualLogger({
92
- ...s,
93
- requestId: context.requestId ?? s.requestId,
94
- correlationId: context.correlationId ?? s.correlationId,
95
- sessionId: context.sessionId ?? s.sessionId,
96
- userId: context.userId ?? s.userId,
97
- userAgent: context.userAgent ?? s.userAgent,
98
- ip: context.ip ?? s.ip,
99
- route: context.route ?? s.route,
100
- method: context.method ?? s.method
101
- });
204
+ return this.createContextualLogger(mergeCallContextFields(this.staticMetadata, context, REQUEST_CONTEXT_FIELDS));
102
205
  }
103
206
  withJobContext(context) {
104
- const s = this.staticMetadata;
105
- return this.createContextualLogger({
106
- ...s,
107
- jobId: context.jobId ?? s.jobId,
108
- queueId: context.queueId ?? s.queueId,
109
- queueName: context.queueName ?? s.queueName,
110
- toolId: context.toolId ?? s.toolId,
111
- parentJobId: context.parentJobId ?? s.parentJobId,
112
- attempt: context.attempt ?? s.attempt,
113
- maxAttempts: context.maxAttempts ?? s.maxAttempts
114
- });
207
+ return this.createContextualLogger(mergeCallContextFields(this.staticMetadata, context, JOB_CONTEXT_FIELDS));
115
208
  }
116
209
  performanceTracker(params) {
117
210
  let startTime = 0;
118
- const tracker = this.withContext({ operation: params.operation, ...params.metadata });
211
+ // The params are read once, without throwing: a non-string operation is labelled `unlabeled` and reported once.
212
+ const { operation, merged } = readTrackerParams(this.staticMetadata, params);
213
+ const tracker = this.createContextualLogger(merged);
214
+ // `end`/`fail` contexts are read at the boundary too: an unreadable one becomes the entry's loggingError, reported once.
119
215
  return {
120
216
  start() {
121
217
  startTime = Date.now();
122
- tracker.debug(`operation.${params.operation}.start`);
218
+ tracker.debug(`operation.${operation}.start`);
123
219
  },
124
220
  end(successContext) {
125
221
  const duration = Date.now() - startTime;
126
- tracker.info(`operation.${params.operation}.success`, { duration, ...successContext });
222
+ tracker.emit('info', `operation.${operation}.success`, () => mergeCallContexts({ duration }, successContext));
127
223
  },
128
- fail(error, errorContext) {
224
+ fail: PerformanceFailureSchema.implement((error, errorContext) => {
129
225
  const duration = Date.now() - startTime;
130
- tracker.error(`operation.${params.operation}.failure`, {
131
- duration,
132
- error,
133
- ...errorContext
134
- });
135
- }
226
+ tracker.emit('error', `operation.${operation}.failure`, () => mergeFailureContexts({ duration }, error, errorContext));
227
+ })
136
228
  };
137
229
  }
138
230
  }