@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,581 @@
1
+ /**
2
+ * Logging-owned redaction and structured error schemas.
3
+ *
4
+ * Raw values enter the published schemas. Redaction uses keys and secret()
5
+ * values; free text remains data. Parsing yields a detached snapshot.
6
+ *
7
+ * One rule governs every value read off an Error or a context: each field is
8
+ * read exactly once, inside a guard. A string is kept (and passes the same
9
+ * key and `secret()` redaction as everything else); any other value goes
10
+ * through the one redaction walk; a value that cannot be read is never
11
+ * carried: an Error is then described value-free, and a context refuses with
12
+ * a typed `ZodError` issue holding a fixed message and the path.
13
+ */
14
+ import * as z from 'zod/v4';
15
+ import { attempt } from "./outcome.js";
16
+ export const REDACTED = '[REDACTED]';
17
+ /**
18
+ * Whole keys that hold a credential. A bare `tokens` is listed on purpose and
19
+ * stays secret even when it holds a count: a key carries no type, so the safe
20
+ * reading wins; a count says so in its name (`maxTokens`, `inputTokens`,
21
+ * `tokenCount` stay readable).
22
+ */
23
+ const SECRET_KEY_EXACT = new Set([
24
+ 'authorization', 'proxyauthorization', 'cookie', 'cookies', 'setcookie', 'bearer', 'auth', 'authheader',
25
+ 'credentialblob', 'tokens', 'secrets', 'jwt', 'sessionid', 'dsn', 'key'
26
+ ]);
27
+ // Plural forms are listed explicitly; a bare `tokens` suffix is not, so token
28
+ // counts (`maxTokens`, `inputTokens`) stay readable. Named key material
29
+ // (`sshKey`, `signingKey`, `encryptionKey`, `masterKey`, `privKey`) and one-time
30
+ // codes (`mfaCode`, `pinCode`) are secret; a key that names a key without
31
+ // holding one (`keyId`, `publicKey`, `primaryKey`, `cacheKey`) is not.
32
+ const SECRET_KEY_SUFFIXES = [
33
+ 'token', 'secret', 'secrets', 'password', 'passwords', 'passwd', 'passphrase', 'apikey', 'apikeys',
34
+ 'privatekey', 'privatekeys', 'privkey', 'privkeys', 'accesskey', 'accesskeys', 'secretkey', 'secretkeys',
35
+ 'sshkey', 'sshkeys', 'signingkey', 'signingkeys', 'encryptionkey', 'encryptionkeys', 'masterkey', 'masterkeys',
36
+ 'mfacode', 'mfacodes', 'pincode', 'pincodes', 'passcode', 'passcodes', 'credential', 'credentials',
37
+ 'signature', 'signatures', 'jwt', 'accesstokens', 'refreshtokens', 'idtokens', 'authtokens', 'apitokens',
38
+ 'bearertokens', 'sessiontokens', 'connectionstring', 'databaseurl'
39
+ ];
40
+ // Secret material named mid-key (`privateKeyPem`, `apiKeyId`, `passwordHash`).
41
+ const SECRET_KEY_INFIXES = ['password', 'privatekey', 'apikey', 'secretkey', 'clientsecret', 'accesstoken', 'refreshtoken'];
42
+ /**
43
+ * The credential words: a key (or query parameter name) whose last word is one
44
+ * of these names a credential. Matched as a whole word, never inside one, so
45
+ * `pwd`, `pass`, `pin`, `otp`, `totp`, `dbPwd` and `db_pass` are secret while `passage`,
46
+ * `bypass`, `spin` and `passCount` are not. A bare `key` is secret as the whole key only (the
47
+ * exact list), so `monkey`, `keyId`, `cacheKey` and `credentialKey` (which name
48
+ * a key, not hold one) stay readable. The endpoint scrubber's credential query
49
+ * parameters use the same rule (`isSecretKey`), so the two never disagree.
50
+ */
51
+ export const CREDENTIAL_KEY_WORDS = [
52
+ 'token', 'secret', 'password', 'passwd', 'pass', 'pwd', 'passphrase', 'pin', 'otp', 'totp', 'credential', 'signature', 'jwt', 'bearer'
53
+ ];
54
+ const CREDENTIAL_WORDS = new Set(CREDENTIAL_KEY_WORDS);
55
+ /** A key's words: split at separators and at a lower-to-upper case change (`sshKey` -> `ssh`, `key`), lowercased. */
56
+ function keyWords(key) {
57
+ return key.replace(/([a-z0-9])([A-Z])/g, '$1 $2').toLowerCase().split(/[^a-z0-9]+/).filter((word) => word !== '');
58
+ }
59
+ /**
60
+ * A string a caller hands in, refused as a `ZodError` issue for any other value.
61
+ * Zod's own `z.string()` describes a refused value's type with `Array.isArray`,
62
+ * which throws a `TypeError` for a revoked Proxy; this check reads only `typeof`.
63
+ */
64
+ export const CallerStringSchema = z.custom((value) => typeof value === 'string', { message: 'Expected a string.' });
65
+ /**
66
+ * Case- and separator-insensitive matching; token counts stay readable. A key
67
+ * is secret when its normalized form is a listed name, ends with a listed
68
+ * suffix or holds a listed infix (a bare `key` is listed), or when its last
69
+ * word is a credential word ({@link CREDENTIAL_KEY_WORDS}).
70
+ */
71
+ export function isSecretKey(key) {
72
+ // Total for any value a caller hands at runtime: only a string is a key (read by `typeof`, which runs no trap), anything else names no secret.
73
+ if (!CallerStringSchema.safeParse(key).success)
74
+ return false;
75
+ const normalized = key.toLowerCase().replace(/[^a-z0-9]/g, '');
76
+ const last = keyWords(key).at(-1);
77
+ return SECRET_KEY_EXACT.has(normalized) ||
78
+ SECRET_KEY_SUFFIXES.some((suffix) => normalized.endsWith(suffix)) ||
79
+ SECRET_KEY_INFIXES.some((infix) => normalized.includes(infix)) ||
80
+ (last !== undefined && CREDENTIAL_WORDS.has(last));
81
+ }
82
+ const SECRET_BRAND = Symbol.for('vibes.logging.secret-value');
83
+ /** A secret that redacts in serialization; reveal() is the explicit escape. */
84
+ export class SecretValue {
85
+ [SECRET_BRAND] = true;
86
+ #value;
87
+ constructor(value) { this.#value = value; }
88
+ reveal() { return this.#value; }
89
+ toJSON() { return REDACTED; }
90
+ toString() { return REDACTED; }
91
+ [Symbol.for('nodejs.util.inspect.custom')]() { return REDACTED; }
92
+ }
93
+ export function secret(value) {
94
+ return new SecretValue(value);
95
+ }
96
+ const ObjectValueSchema = z.custom((value) => typeof value === 'object' && value !== null);
97
+ /**
98
+ * Validates the branded secret protocol without copying the secret instance.
99
+ * Total: a value whose protocol reads throw (a trap, a getter, a revoked
100
+ * Proxy) is not a secret value and refuses as an issue, never rethrowing.
101
+ */
102
+ export const SecretValueSchema = z.custom((value) => {
103
+ const object = ObjectValueSchema.safeParse(value);
104
+ if (!object.success)
105
+ return false;
106
+ const candidate = object.data;
107
+ const branded = attempt(() => hasSecretProtocol(candidate));
108
+ return !branded.failed && branded.value;
109
+ });
110
+ /** The branded secret protocol's reads; any of them may throw (a trap, a getter, a revoked Proxy), so the schema runs this inside `attempt`. */
111
+ function hasSecretProtocol(candidate) {
112
+ return SECRET_BRAND in candidate && candidate[SECRET_BRAND] === true &&
113
+ 'reveal' in candidate && typeof candidate.reveal === 'function' &&
114
+ 'toJSON' in candidate && typeof candidate.toJSON === 'function' &&
115
+ 'toString' in candidate && typeof candidate.toString === 'function';
116
+ }
117
+ export const PlainLogRecordSchema = z.custom((value) => {
118
+ const object = ObjectValueSchema.safeParse(value);
119
+ if (!object.success || Array.isArray(object.data))
120
+ return false;
121
+ const prototype = Object.getPrototypeOf(object.data);
122
+ return prototype === Object.prototype || prototype === null;
123
+ });
124
+ const MAX_DEPTH = 8;
125
+ const MAX_CAUSE_DEPTH = 5;
126
+ /**
127
+ * The breadth cap of the walk: an array keeps its first `MAX_WALK_BREADTH`
128
+ * items and an object its first `MAX_WALK_BREADTH` own enumerable keys (an
129
+ * AggregateError its first `MAX_WALK_BREADTH` members). What is past the cap
130
+ * is not read; it is described by one truncation marker holding the count
131
+ * left out ({@link truncationMarker}): a last array item, an object's
132
+ * {@link TRUNCATED_KEY} field, or a last aggregate member named `Truncated`.
133
+ * Ordinary contexts are far below it; a 100,000-item array is walked in a few
134
+ * milliseconds instead of the hundreds a full walk takes.
135
+ */
136
+ export const MAX_WALK_BREADTH = 1000;
137
+ /** The key an object's truncation marker is carried under. */
138
+ export const TRUNCATED_KEY = '[Truncated]';
139
+ /** The marker for `omitted` items, keys or members past the breadth cap. */
140
+ export function truncationMarker(omitted) {
141
+ return `[Truncated: ${omitted} more]`;
142
+ }
143
+ const KNOWN_ERROR_KEYS = new Set([
144
+ 'name', 'message', 'stack', 'cause', 'code', 'reason', 'status',
145
+ 'statusCode', 'retryable', 'details', 'errors'
146
+ ]);
147
+ // Error metadata is optional. Unsupported representations have no typed field;
148
+ // they do not prevent describing the original thrown value.
149
+ const OptionalStringSchema = z.union([z.string(), z.unknown().transform(() => undefined)]).optional();
150
+ const OptionalNumberSchema = z.union([z.number(), z.unknown().transform(() => undefined)]).optional();
151
+ const ErrorMetadataSchema = z.object({
152
+ code: z.union([z.string(), z.number(), z.unknown().transform(() => undefined)]).optional(),
153
+ reason: OptionalStringSchema,
154
+ status: OptionalNumberSchema,
155
+ statusCode: OptionalNumberSchema,
156
+ retryable: z.union([z.boolean(), z.unknown().transform(() => undefined)]).optional(),
157
+ details: z.unknown().optional()
158
+ });
159
+ const JsonHookSchema = z.custom((value) => typeof value === 'function');
160
+ const ArrayValueSchema = z.custom((value) => Array.isArray(value));
161
+ const StringValueSchema = z.string();
162
+ /**
163
+ * A real Map or Set: an instance by its prototype chain that also passes the intrinsic brand check
164
+ * (`Map.prototype.has` / `Set.prototype.has` called on it, which runs no caller code). A Proxy of a Map fails the
165
+ * brand check and walks as the object it presents; a Map with a swapped or null prototype is not an instance and
166
+ * walks as a plain object. Every read after this goes through the built-in intrinsics captured here, so no
167
+ * caller-defined `size`, iterator, `entries` or `values` runs.
168
+ */
169
+ const MAP_HAS = Map.prototype.has;
170
+ const SET_HAS = Set.prototype.has;
171
+ const MAP_ENTRIES = Map.prototype.entries;
172
+ const SET_VALUES = Set.prototype.values;
173
+ const MapValueSchema = z.custom((value) => value instanceof Map && !attempt(() => MAP_HAS.call(value, undefined)).failed);
174
+ const SetValueSchema = z.custom((value) => value instanceof Set && !attempt(() => SET_HAS.call(value, undefined)).failed);
175
+ /** Takes the first `MAX_WALK_BREADTH` values of an intrinsic iterator; the rest are counted, never kept or walked. */
176
+ function collectionContents(iterator) {
177
+ const first = [];
178
+ let size = 0;
179
+ for (let step = iterator.next(); !step.done; step = iterator.next()) {
180
+ if (size < MAX_WALK_BREADTH)
181
+ first.push(step.value);
182
+ size += 1;
183
+ }
184
+ return { size, first };
185
+ }
186
+ /**
187
+ * A caller primitive that JSON cannot carry, as the JSON value every sink can
188
+ * serialize: a bigint as its decimal string (`10n` -> `"10"`), a symbol as its
189
+ * `Symbol(description)` text, a function as `[Function]`, and NaN / Infinity /
190
+ * -Infinity as the strings `"NaN"`, `"Infinity"`, `"-Infinity"`. JSON primitives
191
+ * pass unchanged. No sink downstream of the walk can then throw on a value.
192
+ * A function is recognized by `typeof`, which no Proxy trap can intercept.
193
+ */
194
+ export const FUNCTION_MARKER = '[Function]';
195
+ const JsonPrimitiveSchema = z.union([
196
+ z.bigint().transform((value) => value.toString()),
197
+ z.symbol().transform((value) => value.toString()),
198
+ JsonHookSchema.transform(() => FUNCTION_MARKER),
199
+ z.custom((value) => Number.isNaN(value) || value === Number.POSITIVE_INFINITY || value === Number.NEGATIVE_INFINITY).transform((value) => String(value)),
200
+ z.unknown()
201
+ ]);
202
+ /** The refusal message for a caller value that cannot be read: never what the read threw, which may carry the value. */
203
+ export const UNREADABLE_LOG_VALUE_MESSAGE = 'A log value could not be read (a getter, Proxy trap or conversion threw), so it cannot be snapshotted; what it threw is withheld because it may carry the value.';
204
+ /** The refusal message for a value whose own JSON hook throws; the hook's failure value never travels with it. */
205
+ export const JSON_HOOK_REFUSAL_MESSAGE = 'A log value\'s toJSON hook threw, so the value cannot be snapshotted.';
206
+ /**
207
+ * The refusals this module minted (a fixed message and a path, nothing read
208
+ * from a caller value). Only these leave a walk; a lookup runs no caller trap.
209
+ */
210
+ const OWN_REFUSALS = new WeakMap();
211
+ function refusal(message, path) {
212
+ const refused = new z.ZodError([{ code: 'custom', path: [...path], input: undefined, message }]);
213
+ OWN_REFUSALS.set(refused, refused);
214
+ return refused;
215
+ }
216
+ /**
217
+ * What a failure inside the walk becomes: the module's own refusal passes
218
+ * through (found by a lookup that reads nothing off the failure); anything
219
+ * else is the caller's thrown value, which may carry the secret, so it becomes
220
+ * the value-free unreadable refusal at `path`.
221
+ */
222
+ function createRefusalSchema(path) {
223
+ return z.unknown().transform((cause) => {
224
+ const object = ObjectValueSchema.safeParse(cause);
225
+ return (object.success ? OWN_REFUSALS.get(object.data) : undefined) ?? refusal(UNREADABLE_LOG_VALUE_MESSAGE, path);
226
+ });
227
+ }
228
+ /**
229
+ * One structural read of a caller value (a property, a key list, a prototype
230
+ * check, a hook lookup). Whatever it throws becomes the value-free unreadable
231
+ * refusal at `path`: the thrown value is the caller's and may carry the
232
+ * secret, so the refusal states the fact and the place, never the value.
233
+ */
234
+ function guardedRead(path, read) {
235
+ const outcome = attempt(read);
236
+ if (!outcome.failed)
237
+ return outcome.value;
238
+ throw createRefusalSchema(path).parse(outcome.cause);
239
+ }
240
+ /**
241
+ * Sets `key` on a snapshot as an own data property. Plain assignment would run
242
+ * the `__proto__` setter and drop that key (changing the snapshot's prototype
243
+ * instead), so a caller's own `__proto__` field survives as data.
244
+ */
245
+ function defineField(target, key, value) {
246
+ Object.defineProperty(target, key, { value, enumerable: true, writable: true, configurable: true });
247
+ }
248
+ /** Any caller object or array viewed as its keyed fields; the view is the same reference, nothing is copied or read. */
249
+ const KeyedFieldsSchema = z.custom((value) => typeof value === 'object' && value !== null);
250
+ /** Reads the field `key` of a caller object exactly once (presence, then one read), inside the guard. */
251
+ function createFieldSchema(key, path) {
252
+ return z.unknown().transform((target) => guardedRead([...path, key], () => {
253
+ const fields = KeyedFieldsSchema.parse(target);
254
+ return key in fields ? { present: true, value: fields[key] } : { present: false };
255
+ }));
256
+ }
257
+ /**
258
+ * The named fields of a caller value (an audit input, a tracker's params), each
259
+ * read exactly once inside the guard, as a record of the raw values read; an
260
+ * absent field is left out, and a value that is not an object has no fields.
261
+ * A read that throws (a getter, a Proxy trap, a revoked Proxy) refuses with
262
+ * the value-free unreadable `ZodError` issue at that field's path: nothing it
263
+ * threw is carried, and the schema never throws it. The values read are still
264
+ * raw; the caller walks or validates them.
265
+ */
266
+ export function createFieldsReadSchema(keys) {
267
+ return z.unknown().transform((value, context) => {
268
+ const fields = {};
269
+ if (!ObjectValueSchema.safeParse(value).success)
270
+ return fields;
271
+ for (const key of keys) {
272
+ const read = attempt(() => createFieldSchema(key, []).parse(value));
273
+ if (read.failed) {
274
+ for (const issue of createRefusalSchema([key]).parse(read.cause).issues)
275
+ context.issues.push({ code: 'custom', message: issue.message, path: issue.path, input: undefined });
276
+ return z.NEVER;
277
+ }
278
+ if (read.value.present)
279
+ defineField(fields, key, read.value.value);
280
+ }
281
+ return fields;
282
+ });
283
+ }
284
+ /** A walked value as text: a string as itself, any other JSON value as its JSON text, `undefined` as `undefined`. */
285
+ const WalkedTextSchema = z.unknown().transform((walked) => {
286
+ const text = StringValueSchema.safeParse(walked);
287
+ if (text.success)
288
+ return text.data;
289
+ return walked === undefined ? 'undefined' : JSON.stringify(walked);
290
+ });
291
+ /**
292
+ * A text field of a description (an Error's name, message or stack, a thrown
293
+ * primitive's message): a string is kept; any other value goes through the
294
+ * redaction walk and is carried as the walked value's text, so an object is
295
+ * redacted by key and a bigint, symbol or function is converted, never raw.
296
+ */
297
+ function createTextSchema(seen, depth, path) {
298
+ return z.unknown().transform((value) => {
299
+ const text = StringValueSchema.safeParse(value);
300
+ return text.success ? text.data : WalkedTextSchema.parse(createWalkSchema(seen, depth, path).parse(value).value);
301
+ });
302
+ }
303
+ /** A present, non-empty text field read once off `error`, by the one field rule. */
304
+ function readText(seen, error, key, depth) {
305
+ const read = createFieldSchema(key, []).parse(error);
306
+ if (!read.present || read.value === undefined || read.value === null || read.value === '')
307
+ return undefined;
308
+ return createTextSchema(seen, depth + 1, [key]).parse(read.value);
309
+ }
310
+ /**
311
+ * The one redaction walk. Each traversal carries its own cycle/depth state;
312
+ * every container is detached; every JSON hook is read once and runs exactly
313
+ * once; every structural read is guarded, so the walk throws only this
314
+ * module's typed, value-free refusals; and a nested Error is described by the
315
+ * total describer, in place.
316
+ */
317
+ function createWalkSchema(seen, depth, path) {
318
+ return z.unknown().transform((value) => {
319
+ const object = ObjectValueSchema.safeParse(value);
320
+ if (!object.success)
321
+ return { value: guardedRead(path, () => JsonPrimitiveSchema.parse(value)) };
322
+ const target = object.data;
323
+ if (seen.has(target))
324
+ return { value: '[Circular]' };
325
+ if (depth >= MAX_DEPTH)
326
+ return { value: '[MaxDepth]' };
327
+ // A provable Error is described before any other read, so a trap elsewhere on it costs only its own description.
328
+ if (guardedRead(path, () => target instanceof Error))
329
+ return { value: createDescribedThrownSchema(seen, 0, depth, UNDESCRIBABLE_ERROR_MESSAGE).parse(target).error };
330
+ if (guardedRead(path, () => SecretValueSchema.safeParse(target).success))
331
+ return { value: REDACTED };
332
+ const hook = createFieldSchema('toJSON', path).parse(target);
333
+ const callable = hook.present ? JsonHookSchema.safeParse(hook.value) : undefined;
334
+ const child = (next) => createWalkSchema(seen, depth + 1, next);
335
+ seen.add(target);
336
+ try {
337
+ if (callable?.success) {
338
+ const run = callable.data;
339
+ const key = path.length === 0 ? '' : String(path[path.length - 1]);
340
+ const snapshot = attempt(() => run.call(target, key));
341
+ // The refusal is typed and carries no hook failure: a hook's thrown value is its own secret to keep.
342
+ if (snapshot.failed)
343
+ throw refusal(JSON_HOOK_REFUSAL_MESSAGE, path);
344
+ return child(path).parse(snapshot.value);
345
+ }
346
+ const list = guardedRead(path, () => ArrayValueSchema.safeParse(target));
347
+ if (list.success) {
348
+ const items = list.data;
349
+ // Length and each kept item are read once; a hole or `undefined` item is `null`, as JSON writes it. Items past the cap are not read.
350
+ const length = guardedRead(path, () => items.length);
351
+ const kept = Math.min(length, MAX_WALK_BREADTH);
352
+ const read = guardedRead(path, () => Array.from({ length: kept }, (_, index) => items[index]));
353
+ const walked = read.map((item, index) => child([...path, index]).parse(item).value ?? null);
354
+ if (length > kept)
355
+ walked.push(truncationMarker(length - kept));
356
+ return { value: walked };
357
+ }
358
+ // A Map is its entries: each key as text (a string as itself, any other key as its walked JSON text) and each
359
+ // value walked and redacted by that key, like an object's fields; a Set is its values, like an array. Both keep
360
+ // their first MAX_WALK_BREADTH entries and carry one truncation marker for the rest, which are never pulled.
361
+ const map = guardedRead(path, () => MapValueSchema.safeParse(target));
362
+ if (map.success) {
363
+ const { size, first: entries } = guardedRead(path, () => collectionContents(MAP_ENTRIES.call(map.data)));
364
+ const copy = {};
365
+ entries.forEach(([key, entry], index) => {
366
+ const field = WalkedTextSchema.parse(child([...path, index]).parse(key).value);
367
+ defineField(copy, field, isSecretKey(field) && entry !== undefined && entry !== null
368
+ ? REDACTED
369
+ : child([...path, field]).parse(entry).value);
370
+ });
371
+ if (size > entries.length)
372
+ defineField(copy, TRUNCATED_KEY, truncationMarker(size - entries.length));
373
+ return { value: copy };
374
+ }
375
+ const set = guardedRead(path, () => SetValueSchema.safeParse(target));
376
+ if (set.success) {
377
+ const { size, first: members } = guardedRead(path, () => collectionContents(SET_VALUES.call(set.data)));
378
+ const walked = members.map((member, index) => child([...path, index]).parse(member).value ?? null);
379
+ if (size > members.length)
380
+ walked.push(truncationMarker(size - members.length));
381
+ return { value: walked };
382
+ }
383
+ // Own enumerable fields must be redacted regardless of their prototype; each kept one is read once, the rest not at all.
384
+ const keys = guardedRead(path, () => Object.keys(target));
385
+ const fields = KeyedFieldsSchema.parse(target);
386
+ const copy = {};
387
+ for (const field of keys.slice(0, MAX_WALK_BREADTH)) {
388
+ // The read is guarded at the container's path, as a whole-object read would be.
389
+ const entry = guardedRead(path, () => fields[field]);
390
+ defineField(copy, field, isSecretKey(field) && entry !== undefined && entry !== null
391
+ ? REDACTED
392
+ : child([...path, field]).parse(entry).value);
393
+ }
394
+ if (keys.length > MAX_WALK_BREADTH)
395
+ defineField(copy, TRUNCATED_KEY, truncationMarker(keys.length - MAX_WALK_BREADTH));
396
+ return { value: copy };
397
+ }
398
+ finally {
399
+ seen.delete(target);
400
+ }
401
+ });
402
+ }
403
+ /** An Error's metadata, each field read once. */
404
+ function readMetadata(error) {
405
+ const read = (key) => createFieldSchema(key, []).parse(error);
406
+ const valueOf = (field) => ({ value: field.present ? field.value : undefined });
407
+ return ErrorMetadataSchema.parse({
408
+ code: valueOf(read('code')).value,
409
+ reason: valueOf(read('reason')).value,
410
+ status: valueOf(read('status')).value,
411
+ statusCode: valueOf(read('statusCode')).value,
412
+ retryable: valueOf(read('retryable')).value,
413
+ details: valueOf(read('details')).value
414
+ });
415
+ }
416
+ /** The full description; it may throw (a guarded read's refusal, a trap), and only the total describer runs it. */
417
+ function createLoggedErrorSchema(seen, causeDepth, depth) {
418
+ return z.unknown().transform((thrown) => {
419
+ if (!(thrown instanceof Error)) {
420
+ const object = ObjectValueSchema.safeParse(thrown);
421
+ return object.success
422
+ ? { name: 'NonError', message: '[non-error thrown]', details: createWalkSchema(seen, depth, []).parse(thrown).value }
423
+ : { name: 'NonError', message: createTextSchema(seen, depth, []).parse(thrown) };
424
+ }
425
+ const error = thrown;
426
+ const head = () => ({ name: readText(seen, error, 'name', depth) ?? '', message: readText(seen, error, 'message', depth) ?? '' });
427
+ if (seen.has(error))
428
+ return { ...head(), details: '[Circular]' };
429
+ seen.add(error);
430
+ try {
431
+ const logged = head();
432
+ const metadata = readMetadata(error);
433
+ if (metadata.code !== undefined)
434
+ logged.code = metadata.code;
435
+ if (metadata.reason !== undefined)
436
+ logged.reason = metadata.reason;
437
+ const status = metadata.status ?? metadata.statusCode;
438
+ if (status !== undefined)
439
+ logged.status = status;
440
+ if (metadata.retryable !== undefined)
441
+ logged.retryable = metadata.retryable;
442
+ if (metadata.details !== undefined)
443
+ logged.details = createWalkSchema(seen, depth + 1, ['details']).parse(metadata.details).value;
444
+ // The other own fields, bounded like any object: the first MAX_WALK_BREADTH are read once each, the rest not at all.
445
+ const fields = {};
446
+ const ownFields = guardedRead([], () => Object.keys(error)).filter((key) => !KNOWN_ERROR_KEYS.has(key));
447
+ for (const key of ownFields.slice(0, MAX_WALK_BREADTH)) {
448
+ const read = createFieldSchema(key, []).parse(error);
449
+ defineField(fields, key, read.present ? read.value : undefined);
450
+ }
451
+ if (ownFields.length > 0) {
452
+ if (depth + 1 >= MAX_DEPTH)
453
+ logged.fields = { value: '[MaxDepth]' };
454
+ else {
455
+ const walked = PlainLogRecordSchema.parse(createWalkSchema(seen, depth + 1, ['fields']).parse(fields).value);
456
+ if (ownFields.length > MAX_WALK_BREADTH)
457
+ defineField(walked, TRUNCATED_KEY, truncationMarker(ownFields.length - MAX_WALK_BREADTH));
458
+ logged.fields = walked;
459
+ }
460
+ }
461
+ const stack = readText(seen, error, 'stack', depth);
462
+ if (stack !== undefined)
463
+ logged.stack = stack;
464
+ const cause = createFieldSchema('cause', []).parse(error);
465
+ if (cause.present && cause.value !== undefined) {
466
+ logged.cause = causeDepth >= MAX_CAUSE_DEPTH ? '[MaxCauseDepth]' : createCauseSchema(seen, causeDepth + 1, depth + 1).parse(cause.value).value;
467
+ }
468
+ if (error instanceof AggregateError && causeDepth < MAX_CAUSE_DEPTH) {
469
+ const members = createFieldSchema('errors', []).parse(error);
470
+ if (members.present) {
471
+ const list = ArrayValueSchema.safeParse(members.value);
472
+ // A non-array `errors` is one member; an array's length and kept items are read once, up to the breadth cap.
473
+ const length = list.success ? list.data.length : 1;
474
+ const kept = Math.min(length, MAX_WALK_BREADTH);
475
+ const items = list.success ? Array.from({ length: kept }, (_, index) => list.data[index]) : [members.value];
476
+ const member = createDescribedThrownSchema(seen, causeDepth + 1, depth + 1, UNDESCRIBABLE_ERROR_MESSAGE);
477
+ logged.errors = items.map((value) => member.parse(value).error);
478
+ if (length > kept)
479
+ logged.errors.push({ name: 'Truncated', message: truncationMarker(length - kept) });
480
+ }
481
+ }
482
+ return logged;
483
+ }
484
+ finally {
485
+ seen.delete(error);
486
+ }
487
+ });
488
+ }
489
+ /** What a thrown value's description says when describing it throws: never the thrown message, which a hostile getter or trap can fill with the value. */
490
+ export const UNDESCRIBABLE_ERROR_MESSAGE = 'The thrown value could not be described (a getter, toJSON, conversion or Proxy trap threw); its message is withheld because it may carry the value.';
491
+ /** An error name a value-free description may carry: an identifier that names no secret. */
492
+ const SafeErrorNameSchema = z.string().regex(/^[A-Za-z_$][A-Za-z0-9_$]{0,63}$/).refine((name) => !isSecretKey(name));
493
+ /**
494
+ * The name a value-free description carries: a provable Error's own name when it
495
+ * reads without throwing and is a plain identifier naming no secret, else
496
+ * `Error`; `NonError` for anything not provably an Error (`instanceof` reads the
497
+ * prototype, which a Proxy trap or a revoked Proxy throws from).
498
+ */
499
+ export const ReadableErrorNameSchema = z.unknown().transform((value) => {
500
+ const error = attempt(() => (value instanceof Error ? value : undefined));
501
+ if (error.failed || error.value === undefined)
502
+ return 'NonError';
503
+ const thrown = error.value;
504
+ const name = attempt(() => SafeErrorNameSchema.parse(thrown.name));
505
+ return name.failed ? 'Error' : name.value;
506
+ });
507
+ /** Describes a thrown value without the value: its readable error name and the fixed `message`. */
508
+ export function valueFreeFailureSchema(message) {
509
+ return z.unknown().transform((cause) => ({ name: ReadableErrorNameSchema.parse(cause), message }));
510
+ }
511
+ /**
512
+ * The total description of one thrown value: the full `LoggedError` when it can
513
+ * be built, else the value-free one (readable name and `undescribable`). Any
514
+ * failure while describing (a getter, `toJSON`, conversion or Proxy trap,
515
+ * `instanceof` included) selects the value-free form; nothing it threw travels.
516
+ */
517
+ function createDescribedThrownSchema(seen, causeDepth, depth, undescribable) {
518
+ return z.unknown().transform((value) => {
519
+ const full = attempt(() => createLoggedErrorSchema(seen, causeDepth, depth).parse(value));
520
+ if (!full.failed)
521
+ return { error: full.value, described: true };
522
+ return { error: { name: ReadableErrorNameSchema.parse(value), message: undescribable }, described: false };
523
+ });
524
+ }
525
+ /** An Error's cause: an Error is described, any other value walked; one that cannot be either is described value-free, so it never costs the Error its own description. */
526
+ function createCauseSchema(seen, causeDepth, depth) {
527
+ return z.unknown().transform((cause) => {
528
+ const nested = attempt(() => cause instanceof Error
529
+ ? { value: createLoggedErrorSchema(seen, causeDepth, depth).parse(cause) }
530
+ : createWalkSchema(seen, depth, ['cause']).parse(cause));
531
+ if (!nested.failed)
532
+ return nested.value;
533
+ return { value: { name: ReadableErrorNameSchema.parse(cause), message: UNDESCRIBABLE_ERROR_MESSAGE } };
534
+ });
535
+ }
536
+ /**
537
+ * The total describer of a thrown value, with the message its value-free form
538
+ * carries. It never throws, for any input, and its description is JSON.
539
+ */
540
+ export function createThrownValueSchema(undescribable) {
541
+ return createDescribedThrownSchema(new WeakSet(), 0, 0, undescribable);
542
+ }
543
+ /** {@link createThrownValueSchema} with {@link UNDESCRIBABLE_ERROR_MESSAGE}. */
544
+ export const ThrownValueSchema = createThrownValueSchema(UNDESCRIBABLE_ERROR_MESSAGE);
545
+ /**
546
+ * Raw thrown values normalize here, including primitives and non-Error objects.
547
+ * Total: it never throws. An ordinary Error is described in full (name,
548
+ * message, metadata, redacted details and fields, stack, cause chain,
549
+ * aggregate members), each field read once: a string field is kept, a
550
+ * non-string one is walked and carried as its redacted JSON text. A value
551
+ * whose description throws is described as its readable error name
552
+ * (`ReadableErrorNameSchema`) and `UNDESCRIBABLE_ERROR_MESSAGE`, and a cause or
553
+ * aggregate member that cannot be described is described that way in place.
554
+ */
555
+ export const LoggedErrorSchema = ThrownValueSchema.transform((thrown) => thrown.error);
556
+ /** A thrown value's message for a report line, through the total describer: never throws, never the text of a value that cannot be described. */
557
+ export const ThrownMessageSchema = ThrownValueSchema.transform((thrown) => thrown.error.message);
558
+ /**
559
+ * The one nested-value schema. A consumer that parses a value with it owns a
560
+ * detached, redacted snapshot: secret keys and `secret()` values are replaced,
561
+ * Errors become `LoggedError` (described in place by the total describer),
562
+ * every object's callable `toJSON` runs exactly once and its returned value is
563
+ * normalized the same way, and no caller container is retained. A value that
564
+ * cannot be read (a getter or Proxy trap throws) or whose hook throws refuses
565
+ * with a `ZodError` issue holding a fixed message and the path; nothing the
566
+ * value threw is carried, and the schema never throws it. `JSON.stringify` of
567
+ * the result runs no hook.
568
+ */
569
+ export const RedactedLogValueSchema = z.unknown().transform((value, context) => {
570
+ const walked = attempt(() => createWalkSchema(new WeakSet(), 0, []).parse(value));
571
+ if (!walked.failed)
572
+ return walked.value.value;
573
+ // Every structural read is guarded, so the walk throws only its own refusals; the one rule maps the failure either way.
574
+ const refused = createRefusalSchema([]).parse(walked.cause);
575
+ for (const issue of refused.issues)
576
+ context.issues.push({ code: 'custom', message: issue.message, path: issue.path, input: undefined });
577
+ return z.NEVER;
578
+ });
579
+ /** The emitted path reuses {@link RedactedLogValueSchema}: delivery and the public schema are one contract. */
580
+ export const EmittedLogValueSchema = RedactedLogValueSchema;
581
+ //# sourceMappingURL=redact.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"redact.js","sourceRoot":"","sources":["../../src/core/redact.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,13 @@
1
+ /**
2
+ * The Root a runtime belongs to, as the kernel knows it. Logging keys every
3
+ * per-Root state (registrations, settings, namespace selection, emission
4
+ * window, resources, stdout capture, error tracking, telemetry) by it.
5
+ *
6
+ * It is `rootIdentityOf(runtime)`, never the runtime's own `rootIdentity`
7
+ * property: a Proxy or derived object can answer another Root's readable
8
+ * identity, and must not reach that Root's Logging state. A runtime the kernel
9
+ * neither constructed nor viewed names no Root and is refused typed.
10
+ */
11
+ import { type RuntimeRef, type RuntimeRootIdentity } from '@vibesdotdev/kernel';
12
+ export declare function loggingRootOf(runtime: RuntimeRef): RuntimeRootIdentity;
13
+ //# sourceMappingURL=root-identity.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"root-identity.d.ts","sourceRoot":"","sources":["../../src/core/root-identity.ts"],"names":[],"mappings":"AAAA;;;;;;;;;GASG;AACH,OAAO,EAAmC,KAAK,UAAU,EAAE,KAAK,mBAAmB,EAAE,MAAM,qBAAqB,CAAC;AAEjH,wBAAgB,aAAa,CAAC,OAAO,EAAE,UAAU,GAAG,mBAAmB,CAUtE"}