@vibesdotdev/logging 0.0.2 → 1.0.0-rc.5

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (699) hide show
  1. package/LICENSE +18 -0
  2. package/README.md +101 -8
  3. package/dist/audit/audit-retention.job.descriptor.d.ts +60 -0
  4. package/dist/audit/audit-retention.job.descriptor.d.ts.map +1 -0
  5. package/dist/audit/audit-retention.job.descriptor.js +42 -0
  6. package/dist/audit/audit-retention.job.descriptor.js.map +1 -0
  7. package/dist/audit/audit-retention.job.impl.d.ts +23 -0
  8. package/dist/audit/audit-retention.job.impl.d.ts.map +1 -0
  9. package/dist/audit/audit-retention.job.impl.js +24 -0
  10. package/dist/audit/audit-retention.job.impl.js.map +1 -0
  11. package/dist/audit/audit.descriptor.d.ts +6 -0
  12. package/dist/audit/audit.descriptor.d.ts.map +1 -1
  13. package/dist/audit/audit.descriptor.js +72 -5
  14. package/dist/audit/audit.descriptor.js.map +1 -1
  15. package/dist/audit/audit.storage.schema.d.ts +3 -3
  16. package/dist/audit/index.d.ts +3 -1
  17. package/dist/audit/index.d.ts.map +1 -1
  18. package/dist/audit/index.js +4 -1
  19. package/dist/audit/index.js.map +1 -1
  20. package/dist/audit/scheduled-audit-retention.d.ts +39 -0
  21. package/dist/audit/scheduled-audit-retention.d.ts.map +1 -0
  22. package/dist/audit/scheduled-audit-retention.js +38 -0
  23. package/dist/audit/scheduled-audit-retention.js.map +1 -0
  24. package/dist/browser/capture-error.d.ts +66 -0
  25. package/dist/browser/capture-error.d.ts.map +1 -0
  26. package/dist/browser/capture-error.js +82 -0
  27. package/dist/browser/capture-error.js.map +1 -0
  28. package/dist/browser/index.d.ts +11 -0
  29. package/dist/browser/index.d.ts.map +1 -0
  30. package/dist/browser/index.js +16 -0
  31. package/dist/browser/index.js.map +1 -0
  32. package/dist/browser/logging-browser.plugin.d.ts +9 -0
  33. package/dist/browser/logging-browser.plugin.d.ts.map +1 -0
  34. package/dist/browser/logging-browser.plugin.js +26 -0
  35. package/dist/browser/logging-browser.plugin.js.map +1 -0
  36. package/dist/browser/plugin.d.ts +2 -0
  37. package/dist/browser/plugin.d.ts.map +1 -0
  38. package/dist/browser/plugin.js +2 -0
  39. package/dist/browser/plugin.js.map +1 -0
  40. package/dist/browser/read-errors.d.ts +26 -0
  41. package/dist/browser/read-errors.d.ts.map +1 -0
  42. package/dist/browser/read-errors.js +38 -0
  43. package/dist/browser/read-errors.js.map +1 -0
  44. package/dist/browser/sinks/browser/browser.browser.descriptor.d.ts +10 -0
  45. package/dist/browser/sinks/browser/browser.browser.descriptor.d.ts.map +1 -0
  46. package/dist/browser/sinks/browser/browser.browser.descriptor.js +23 -0
  47. package/dist/browser/sinks/browser/browser.browser.descriptor.js.map +1 -0
  48. package/dist/browser/sinks/browser/browser.impl.browser.d.ts +83 -0
  49. package/dist/browser/sinks/browser/browser.impl.browser.d.ts.map +1 -0
  50. package/dist/browser/sinks/browser/browser.impl.browser.js +247 -0
  51. package/dist/browser/sinks/browser/browser.impl.browser.js.map +1 -0
  52. package/dist/cli/failures.d.ts +29 -0
  53. package/dist/cli/failures.d.ts.map +1 -0
  54. package/dist/cli/failures.js +44 -0
  55. package/dist/cli/failures.js.map +1 -0
  56. package/dist/cli/flags.d.ts +24 -0
  57. package/dist/cli/flags.d.ts.map +1 -0
  58. package/dist/cli/flags.js +56 -0
  59. package/dist/cli/flags.js.map +1 -0
  60. package/dist/cli/log-line.d.ts +23 -0
  61. package/dist/cli/log-line.d.ts.map +1 -0
  62. package/dist/cli/log-line.js +39 -0
  63. package/dist/cli/log-line.js.map +1 -0
  64. package/dist/cli/logging.logs.descriptor.d.ts +9 -0
  65. package/dist/cli/logging.logs.descriptor.d.ts.map +1 -0
  66. package/dist/cli/logging.logs.descriptor.js +16 -0
  67. package/dist/cli/logging.logs.descriptor.js.map +1 -0
  68. package/dist/cli/logs.audit.cleanup.descriptor.d.ts +7 -0
  69. package/dist/cli/logs.audit.cleanup.descriptor.d.ts.map +1 -0
  70. package/dist/cli/logs.audit.cleanup.descriptor.js +21 -0
  71. package/dist/cli/logs.audit.cleanup.descriptor.js.map +1 -0
  72. package/dist/cli/logs.audit.cleanup.impl.d.ts +14 -0
  73. package/dist/cli/logs.audit.cleanup.impl.d.ts.map +1 -0
  74. package/dist/cli/logs.audit.cleanup.impl.js +60 -0
  75. package/dist/cli/logs.audit.cleanup.impl.js.map +1 -0
  76. package/dist/cli/logs.audit.descriptor.d.ts +9 -0
  77. package/dist/cli/logs.audit.descriptor.d.ts.map +1 -0
  78. package/dist/cli/logs.audit.descriptor.js +41 -0
  79. package/dist/cli/logs.audit.descriptor.js.map +1 -0
  80. package/dist/cli/logs.audit.group.descriptor.d.ts +7 -0
  81. package/dist/cli/logs.audit.group.descriptor.d.ts.map +1 -0
  82. package/dist/cli/logs.audit.group.descriptor.js +15 -0
  83. package/dist/cli/logs.audit.group.descriptor.js.map +1 -0
  84. package/dist/cli/logs.audit.impl.d.ts +19 -0
  85. package/dist/cli/logs.audit.impl.d.ts.map +1 -0
  86. package/dist/cli/logs.audit.impl.js +83 -0
  87. package/dist/cli/logs.audit.impl.js.map +1 -0
  88. package/dist/cli/logs.descriptor.d.ts +1 -8
  89. package/dist/cli/logs.descriptor.d.ts.map +1 -1
  90. package/dist/cli/logs.descriptor.js +1 -15
  91. package/dist/cli/logs.descriptor.js.map +1 -1
  92. package/dist/cli/logs.list.impl.d.ts +4 -1
  93. package/dist/cli/logs.list.impl.d.ts.map +1 -1
  94. package/dist/cli/logs.list.impl.js +60 -63
  95. package/dist/cli/logs.list.impl.js.map +1 -1
  96. package/dist/cli/logs.rotate.descriptor.d.ts.map +1 -1
  97. package/dist/cli/logs.rotate.descriptor.js +7 -3
  98. package/dist/cli/logs.rotate.descriptor.js.map +1 -1
  99. package/dist/cli/logs.rotate.impl.d.ts +3 -1
  100. package/dist/cli/logs.rotate.impl.d.ts.map +1 -1
  101. package/dist/cli/logs.rotate.impl.js +72 -33
  102. package/dist/cli/logs.rotate.impl.js.map +1 -1
  103. package/dist/cli/logs.search.descriptor.d.ts.map +1 -1
  104. package/dist/cli/logs.search.descriptor.js +4 -0
  105. package/dist/cli/logs.search.descriptor.js.map +1 -1
  106. package/dist/cli/logs.search.impl.d.ts +3 -1
  107. package/dist/cli/logs.search.impl.d.ts.map +1 -1
  108. package/dist/cli/logs.search.impl.js +114 -108
  109. package/dist/cli/logs.search.impl.js.map +1 -1
  110. package/dist/cli/logs.tail.descriptor.d.ts.map +1 -1
  111. package/dist/cli/logs.tail.descriptor.js +2 -1
  112. package/dist/cli/logs.tail.descriptor.js.map +1 -1
  113. package/dist/cli/logs.tail.impl.d.ts +4 -2
  114. package/dist/cli/logs.tail.impl.d.ts.map +1 -1
  115. package/dist/cli/logs.tail.impl.js +84 -57
  116. package/dist/cli/logs.tail.impl.js.map +1 -1
  117. package/dist/cli/logs.view.impl.d.ts +2 -6
  118. package/dist/cli/logs.view.impl.d.ts.map +1 -1
  119. package/dist/cli/logs.view.impl.js +32 -50
  120. package/dist/cli/logs.view.impl.js.map +1 -1
  121. package/dist/cli/output.d.ts +29 -0
  122. package/dist/cli/output.d.ts.map +1 -0
  123. package/dist/cli/output.js +29 -0
  124. package/dist/cli/output.js.map +1 -0
  125. package/dist/{logging.cli.plugin.d.ts → cli/plugin.d.ts} +3 -3
  126. package/dist/cli/plugin.d.ts.map +1 -0
  127. package/dist/cli/plugin.js +45 -0
  128. package/dist/cli/plugin.js.map +1 -0
  129. package/dist/cli/resolve-output.d.ts +25 -0
  130. package/dist/cli/resolve-output.d.ts.map +1 -0
  131. package/dist/cli/resolve-output.js +75 -0
  132. package/dist/cli/resolve-output.js.map +1 -0
  133. package/dist/cli/types.d.ts +13 -5
  134. package/dist/cli/types.d.ts.map +1 -1
  135. package/dist/cli/types.js +3 -3
  136. package/dist/client/logging-client.d.ts +31 -0
  137. package/dist/client/logging-client.d.ts.map +1 -0
  138. package/dist/client/logging-client.js +44 -0
  139. package/dist/client/logging-client.js.map +1 -0
  140. package/dist/config/file-rotation.d.ts +11 -0
  141. package/dist/config/file-rotation.d.ts.map +1 -0
  142. package/dist/config/file-rotation.js +18 -0
  143. package/dist/config/file-rotation.js.map +1 -0
  144. package/dist/config/load-config.d.ts +7 -0
  145. package/dist/config/load-config.d.ts.map +1 -0
  146. package/dist/config/load-config.js +68 -0
  147. package/dist/config/load-config.js.map +1 -0
  148. package/dist/config/logging.config.descriptor.d.ts +350 -0
  149. package/dist/config/logging.config.descriptor.d.ts.map +1 -0
  150. package/dist/config/logging.config.descriptor.js +208 -0
  151. package/dist/config/logging.config.descriptor.js.map +1 -0
  152. package/dist/config/otel-service.d.ts +9 -0
  153. package/dist/config/otel-service.d.ts.map +1 -0
  154. package/dist/config/otel-service.js +18 -0
  155. package/dist/config/otel-service.js.map +1 -0
  156. package/dist/contexts/bootstrap.plugin.d.ts +3 -0
  157. package/dist/contexts/bootstrap.plugin.d.ts.map +1 -0
  158. package/dist/contexts/bootstrap.plugin.js +13 -0
  159. package/dist/contexts/bootstrap.plugin.js.map +1 -0
  160. package/dist/contexts/fallback-logger.d.ts +7 -2
  161. package/dist/contexts/fallback-logger.d.ts.map +1 -1
  162. package/dist/contexts/fallback-logger.js +73 -46
  163. package/dist/contexts/fallback-logger.js.map +1 -1
  164. package/dist/contexts/index.d.ts +2 -2
  165. package/dist/contexts/index.d.ts.map +1 -1
  166. package/dist/contexts/index.js +2 -3
  167. package/dist/contexts/index.js.map +1 -1
  168. package/dist/contexts/logger.d.ts +38 -14
  169. package/dist/contexts/logger.d.ts.map +1 -1
  170. package/dist/contexts/logger.js +241 -62
  171. package/dist/contexts/logger.js.map +1 -1
  172. package/dist/core/attempt.d.ts +30 -0
  173. package/dist/core/attempt.d.ts.map +1 -0
  174. package/dist/core/attempt.js +44 -0
  175. package/dist/core/attempt.js.map +1 -0
  176. package/dist/core/emission-window.d.ts +34 -0
  177. package/dist/core/emission-window.d.ts.map +1 -0
  178. package/dist/core/emission-window.js +25 -0
  179. package/dist/core/emission-window.js.map +1 -0
  180. package/dist/core/endpoint.d.ts +54 -0
  181. package/dist/core/endpoint.d.ts.map +1 -0
  182. package/dist/core/endpoint.js +256 -0
  183. package/dist/core/endpoint.js.map +1 -0
  184. package/dist/core/entry-context.d.ts +106 -0
  185. package/dist/core/entry-context.d.ts.map +1 -0
  186. package/dist/core/entry-context.js +150 -0
  187. package/dist/core/entry-context.js.map +1 -0
  188. package/dist/core/index.d.ts +4 -0
  189. package/dist/core/index.d.ts.map +1 -1
  190. package/dist/core/index.js +5 -0
  191. package/dist/core/index.js.map +1 -1
  192. package/dist/core/logger.d.ts +6 -1
  193. package/dist/core/logger.d.ts.map +1 -1
  194. package/dist/core/logger.js +133 -67
  195. package/dist/core/logger.js.map +1 -1
  196. package/dist/core/namespace.d.ts +5 -2
  197. package/dist/core/namespace.d.ts.map +1 -1
  198. package/dist/core/namespace.js +15 -7
  199. package/dist/core/namespace.js.map +1 -1
  200. package/dist/core/normalize.d.ts +31 -0
  201. package/dist/core/normalize.d.ts.map +1 -0
  202. package/dist/core/normalize.js +67 -0
  203. package/dist/core/normalize.js.map +1 -0
  204. package/dist/core/otlp-headers.d.ts +53 -0
  205. package/dist/core/otlp-headers.d.ts.map +1 -0
  206. package/dist/core/otlp-headers.js +64 -0
  207. package/dist/core/otlp-headers.js.map +1 -0
  208. package/dist/core/otlp-partial-success.d.ts +48 -0
  209. package/dist/core/otlp-partial-success.d.ts.map +1 -0
  210. package/dist/core/otlp-partial-success.js +55 -0
  211. package/dist/core/otlp-partial-success.js.map +1 -0
  212. package/dist/core/outcome.d.ts +21 -0
  213. package/dist/core/outcome.d.ts.map +1 -0
  214. package/dist/core/outcome.js +24 -0
  215. package/dist/core/outcome.js.map +1 -0
  216. package/dist/core/output-resources.d.ts +15 -0
  217. package/dist/core/output-resources.d.ts.map +1 -0
  218. package/dist/core/output-resources.js +51 -0
  219. package/dist/core/output-resources.js.map +1 -0
  220. package/dist/core/parsing.d.ts.map +1 -1
  221. package/dist/core/parsing.js +13 -10
  222. package/dist/core/parsing.js.map +1 -1
  223. package/dist/core/redact.d.ts +161 -0
  224. package/dist/core/redact.d.ts.map +1 -0
  225. package/dist/core/redact.js +581 -0
  226. package/dist/core/redact.js.map +1 -0
  227. package/dist/core/root-identity.d.ts +13 -0
  228. package/dist/core/root-identity.d.ts.map +1 -0
  229. package/dist/core/root-identity.js +23 -0
  230. package/dist/core/root-identity.js.map +1 -0
  231. package/dist/core/types.d.ts +5 -4
  232. package/dist/core/types.d.ts.map +1 -1
  233. package/dist/docs/cli.docs.descriptor.d.ts +4 -0
  234. package/dist/docs/cli.docs.descriptor.d.ts.map +1 -0
  235. package/dist/docs/cli.docs.descriptor.js +97 -0
  236. package/dist/docs/cli.docs.descriptor.js.map +1 -0
  237. package/dist/docs/index.d.ts +7 -0
  238. package/dist/docs/index.d.ts.map +1 -0
  239. package/dist/docs/index.js +7 -0
  240. package/dist/docs/index.js.map +1 -0
  241. package/dist/docs/levels.docs.descriptor.d.ts +1 -1
  242. package/dist/docs/levels.docs.descriptor.d.ts.map +1 -1
  243. package/dist/docs/levels.docs.descriptor.js +112 -246
  244. package/dist/docs/levels.docs.descriptor.js.map +1 -1
  245. package/dist/docs/logging.docs.descriptor.d.ts +4 -0
  246. package/dist/docs/logging.docs.descriptor.d.ts.map +1 -0
  247. package/dist/docs/logging.docs.descriptor.js +105 -0
  248. package/dist/docs/logging.docs.descriptor.js.map +1 -0
  249. package/dist/docs/observability.docs.descriptor.d.ts +4 -0
  250. package/dist/docs/observability.docs.descriptor.d.ts.map +1 -0
  251. package/dist/docs/observability.docs.descriptor.js +152 -0
  252. package/dist/docs/observability.docs.descriptor.js.map +1 -0
  253. package/dist/docs/structured.docs.descriptor.d.ts +1 -1
  254. package/dist/docs/structured.docs.descriptor.d.ts.map +1 -1
  255. package/dist/docs/structured.docs.descriptor.js +111 -267
  256. package/dist/docs/structured.docs.descriptor.js.map +1 -1
  257. package/dist/docs/transports.docs.descriptor.d.ts +1 -1
  258. package/dist/docs/transports.docs.descriptor.d.ts.map +1 -1
  259. package/dist/docs/transports.docs.descriptor.js +129 -344
  260. package/dist/docs/transports.docs.descriptor.js.map +1 -1
  261. package/dist/formatters/json/json.impl.d.ts +1 -1
  262. package/dist/formatters/json/json.impl.d.ts.map +1 -1
  263. package/dist/formatters/json/json.impl.js +3 -2
  264. package/dist/formatters/json/json.impl.js.map +1 -1
  265. package/dist/formatters/json5/json5.impl.d.ts +1 -1
  266. package/dist/formatters/json5/json5.impl.d.ts.map +1 -1
  267. package/dist/formatters/json5/json5.impl.js +3 -2
  268. package/dist/formatters/json5/json5.impl.js.map +1 -1
  269. package/dist/formatters/jsonl/jsonl.impl.d.ts +1 -1
  270. package/dist/formatters/jsonl/jsonl.impl.d.ts.map +1 -1
  271. package/dist/formatters/jsonl/jsonl.impl.js +3 -2
  272. package/dist/formatters/jsonl/jsonl.impl.js.map +1 -1
  273. package/dist/formatters/pretty/{pretty.impl.cli.d.ts → pretty.impl.consumer.d.ts} +1 -1
  274. package/dist/formatters/pretty/pretty.impl.consumer.d.ts.map +1 -0
  275. package/dist/formatters/pretty/{pretty.impl.cli.js → pretty.impl.consumer.js} +1 -1
  276. package/dist/formatters/pretty/pretty.impl.consumer.js.map +1 -0
  277. package/dist/host-files/file-audit.base.d.ts +39 -0
  278. package/dist/host-files/file-audit.base.d.ts.map +1 -0
  279. package/dist/host-files/file-audit.base.js +255 -0
  280. package/dist/host-files/file-audit.base.js.map +1 -0
  281. package/dist/host-files/file-output.base.d.ts +84 -0
  282. package/dist/host-files/file-output.base.d.ts.map +1 -0
  283. package/dist/host-files/file-output.base.js +401 -0
  284. package/dist/host-files/file-output.base.js.map +1 -0
  285. package/dist/host-files/file-output.factory.base.d.ts +31 -0
  286. package/dist/host-files/file-output.factory.base.d.ts.map +1 -0
  287. package/dist/host-files/file-output.factory.base.js +82 -0
  288. package/dist/host-files/file-output.factory.base.js.map +1 -0
  289. package/dist/host-files/file-output.read.base.d.ts +7 -0
  290. package/dist/host-files/file-output.read.base.d.ts.map +1 -0
  291. package/dist/host-files/file-output.read.base.js +229 -0
  292. package/dist/host-files/file-output.read.base.js.map +1 -0
  293. package/dist/host-files/file-sink.base.d.ts +22 -0
  294. package/dist/host-files/file-sink.base.d.ts.map +1 -0
  295. package/dist/host-files/file-sink.base.js +56 -0
  296. package/dist/host-files/file-sink.base.js.map +1 -0
  297. package/dist/host-files/host-file-logging.plugin.d.ts +11 -0
  298. package/dist/host-files/host-file-logging.plugin.d.ts.map +1 -0
  299. package/dist/host-files/host-file-logging.plugin.js +63 -0
  300. package/dist/host-files/host-file-logging.plugin.js.map +1 -0
  301. package/dist/host-files/index.d.ts +19 -0
  302. package/dist/host-files/index.d.ts.map +1 -0
  303. package/dist/host-files/index.js +18 -0
  304. package/dist/host-files/index.js.map +1 -0
  305. package/dist/host-files/rotate-appended-file.base.d.ts +35 -0
  306. package/dist/host-files/rotate-appended-file.base.d.ts.map +1 -0
  307. package/dist/host-files/rotate-appended-file.base.js +104 -0
  308. package/dist/host-files/rotate-appended-file.base.js.map +1 -0
  309. package/dist/host.d.ts +38 -0
  310. package/dist/host.d.ts.map +1 -0
  311. package/dist/host.js +39 -0
  312. package/dist/host.js.map +1 -0
  313. package/dist/index.d.ts +24 -13
  314. package/dist/index.d.ts.map +1 -1
  315. package/dist/index.js +27 -23
  316. package/dist/index.js.map +1 -1
  317. package/dist/kinds/audit.d.ts +40 -8
  318. package/dist/kinds/audit.d.ts.map +1 -1
  319. package/dist/kinds/audit.js +82 -20
  320. package/dist/kinds/audit.js.map +1 -1
  321. package/dist/kinds/contexts.d.ts +4 -3
  322. package/dist/kinds/contexts.d.ts.map +1 -1
  323. package/dist/kinds/file-output.d.ts +56 -0
  324. package/dist/kinds/file-output.d.ts.map +1 -0
  325. package/dist/kinds/file-output.js +11 -0
  326. package/dist/kinds/file-output.js.map +1 -0
  327. package/dist/kinds/formatter.d.ts +4 -6
  328. package/dist/kinds/formatter.d.ts.map +1 -1
  329. package/dist/kinds/formatter.js +4 -3
  330. package/dist/kinds/formatter.js.map +1 -1
  331. package/dist/kinds/index.d.ts +3 -3
  332. package/dist/kinds/index.d.ts.map +1 -1
  333. package/dist/kinds/index.js +3 -3
  334. package/dist/kinds/index.js.map +1 -1
  335. package/dist/kinds/logger.d.ts +4 -4
  336. package/dist/kinds/logger.d.ts.map +1 -1
  337. package/dist/kinds/logger.impl.d.ts +40 -13
  338. package/dist/kinds/logger.impl.d.ts.map +1 -1
  339. package/dist/kinds/logger.impl.js +179 -87
  340. package/dist/kinds/logger.impl.js.map +1 -1
  341. package/dist/kinds/logger.js +21 -11
  342. package/dist/kinds/logger.js.map +1 -1
  343. package/dist/kinds/logger.utils.d.ts +31 -4
  344. package/dist/kinds/logger.utils.d.ts.map +1 -1
  345. package/dist/kinds/logger.utils.js +58 -18
  346. package/dist/kinds/logger.utils.js.map +1 -1
  347. package/dist/kinds/output.d.ts +5 -11
  348. package/dist/kinds/output.d.ts.map +1 -1
  349. package/dist/kinds/output.impl.d.ts +9 -7
  350. package/dist/kinds/output.impl.d.ts.map +1 -1
  351. package/dist/kinds/output.impl.js +51 -29
  352. package/dist/kinds/output.impl.js.map +1 -1
  353. package/dist/kinds/output.js +10 -5
  354. package/dist/kinds/output.js.map +1 -1
  355. package/dist/kinds/output.types.d.ts +26 -7
  356. package/dist/kinds/output.types.d.ts.map +1 -1
  357. package/dist/kinds/sink.d.ts +6 -5
  358. package/dist/kinds/sink.d.ts.map +1 -1
  359. package/dist/kinds/sink.js +14 -7
  360. package/dist/kinds/sink.js.map +1 -1
  361. package/dist/logger.context.descriptor.d.ts +15 -1
  362. package/dist/logger.context.descriptor.d.ts.map +1 -1
  363. package/dist/logger.context.descriptor.js +1 -1
  364. package/dist/logger.context.descriptor.js.map +1 -1
  365. package/dist/logging.consumer.plugin.d.ts +4 -0
  366. package/dist/logging.consumer.plugin.d.ts.map +1 -0
  367. package/dist/logging.consumer.plugin.js +17 -0
  368. package/dist/logging.consumer.plugin.js.map +1 -0
  369. package/dist/logging.plugin.d.ts +3 -3
  370. package/dist/logging.plugin.d.ts.map +1 -1
  371. package/dist/logging.plugin.js +81 -42
  372. package/dist/logging.plugin.js.map +1 -1
  373. package/dist/observability/building-host.d.ts +11 -0
  374. package/dist/observability/building-host.d.ts.map +1 -0
  375. package/dist/observability/building-host.js +11 -0
  376. package/dist/observability/building-host.js.map +1 -0
  377. package/dist/observability/config.d.ts +36 -0
  378. package/dist/observability/config.d.ts.map +1 -0
  379. package/dist/observability/config.js +46 -0
  380. package/dist/observability/config.js.map +1 -0
  381. package/dist/observability/http/instrumented-fetch.d.ts +19 -0
  382. package/dist/observability/http/instrumented-fetch.d.ts.map +1 -0
  383. package/dist/observability/http/instrumented-fetch.js +175 -0
  384. package/dist/observability/http/instrumented-fetch.js.map +1 -0
  385. package/dist/observability/index.d.ts +8 -0
  386. package/dist/observability/index.d.ts.map +1 -0
  387. package/dist/observability/index.js +10 -0
  388. package/dist/observability/index.js.map +1 -0
  389. package/dist/observability/lifecycle.d.ts +18 -0
  390. package/dist/observability/lifecycle.d.ts.map +1 -0
  391. package/dist/observability/lifecycle.js +44 -0
  392. package/dist/observability/lifecycle.js.map +1 -0
  393. package/dist/observability/observability/error-tracker.d.ts +43 -0
  394. package/dist/observability/observability/error-tracker.d.ts.map +1 -0
  395. package/dist/observability/observability/error-tracker.js +130 -0
  396. package/dist/observability/observability/error-tracker.js.map +1 -0
  397. package/dist/observability/should-keep-log.d.ts +8 -0
  398. package/dist/observability/should-keep-log.d.ts.map +1 -0
  399. package/dist/observability/should-keep-log.js +10 -0
  400. package/dist/observability/should-keep-log.js.map +1 -0
  401. package/dist/observability/telemetry/otel.d.ts +47 -0
  402. package/dist/observability/telemetry/otel.d.ts.map +1 -0
  403. package/dist/observability/telemetry/otel.js +542 -0
  404. package/dist/observability/telemetry/otel.js.map +1 -0
  405. package/dist/observability/telemetry/partial-success.d.ts +35 -0
  406. package/dist/observability/telemetry/partial-success.d.ts.map +1 -0
  407. package/dist/observability/telemetry/partial-success.js +94 -0
  408. package/dist/observability/telemetry/partial-success.js.map +1 -0
  409. package/dist/observability/telemetry/sdk-lifecycle.d.ts +37 -0
  410. package/dist/observability/telemetry/sdk-lifecycle.d.ts.map +1 -0
  411. package/dist/observability/telemetry/sdk-lifecycle.js +132 -0
  412. package/dist/observability/telemetry/sdk-lifecycle.js.map +1 -0
  413. package/dist/observability/telemetry/telemetry-root.d.ts +78 -0
  414. package/dist/observability/telemetry/telemetry-root.d.ts.map +1 -0
  415. package/dist/observability/telemetry/telemetry-root.js +79 -0
  416. package/dist/observability/telemetry/telemetry-root.js.map +1 -0
  417. package/dist/observability/telemetry-instrumentation.d.ts +76 -0
  418. package/dist/observability/telemetry-instrumentation.d.ts.map +1 -0
  419. package/dist/observability/telemetry-instrumentation.js +69 -0
  420. package/dist/observability/telemetry-instrumentation.js.map +1 -0
  421. package/dist/otel/index.d.ts +9 -0
  422. package/dist/otel/index.d.ts.map +1 -0
  423. package/dist/otel/index.js +12 -0
  424. package/dist/otel/index.js.map +1 -0
  425. package/dist/otel/logging-otel.plugin.d.ts +11 -0
  426. package/dist/otel/logging-otel.plugin.d.ts.map +1 -0
  427. package/dist/otel/logging-otel.plugin.js +27 -0
  428. package/dist/otel/logging-otel.plugin.js.map +1 -0
  429. package/dist/otel/sinks/otel/otel.descriptor.d.ts +10 -0
  430. package/dist/otel/sinks/otel/otel.descriptor.d.ts.map +1 -0
  431. package/dist/otel/sinks/otel/otel.descriptor.js +23 -0
  432. package/dist/otel/sinks/otel/otel.descriptor.js.map +1 -0
  433. package/dist/otel/sinks/otel/otel.impl.d.ts +47 -0
  434. package/dist/otel/sinks/otel/otel.impl.d.ts.map +1 -0
  435. package/dist/otel/sinks/otel/otel.impl.js +202 -0
  436. package/dist/otel/sinks/otel/otel.impl.js.map +1 -0
  437. package/dist/otel/sinks/otel/otlp-log-exporter.d.ts +76 -0
  438. package/dist/otel/sinks/otel/otlp-log-exporter.d.ts.map +1 -0
  439. package/dist/otel/sinks/otel/otlp-log-exporter.js +178 -0
  440. package/dist/otel/sinks/otel/otlp-log-exporter.js.map +1 -0
  441. package/dist/outputs/file/file.outputs.descriptor.d.ts +10 -0
  442. package/dist/outputs/file/file.outputs.descriptor.d.ts.map +1 -0
  443. package/dist/outputs/file/file.outputs.descriptor.js +32 -0
  444. package/dist/outputs/file/file.outputs.descriptor.js.map +1 -0
  445. package/dist/outputs/remote/remote.descriptor.d.ts +1 -1
  446. package/dist/outputs/remote/remote.descriptor.d.ts.map +1 -1
  447. package/dist/outputs/remote/remote.descriptor.js +1 -2
  448. package/dist/outputs/remote/remote.descriptor.js.map +1 -1
  449. package/dist/outputs/remote/remote.factory.d.ts +9 -0
  450. package/dist/outputs/remote/remote.factory.d.ts.map +1 -0
  451. package/dist/outputs/remote/remote.factory.js +16 -0
  452. package/dist/outputs/remote/remote.factory.js.map +1 -0
  453. package/dist/outputs/remote/remote.impl.d.ts +40 -4
  454. package/dist/outputs/remote/remote.impl.d.ts.map +1 -1
  455. package/dist/outputs/remote/remote.impl.js +224 -99
  456. package/dist/outputs/remote/remote.impl.js.map +1 -1
  457. package/dist/outputs.context.descriptor.d.ts +15 -1
  458. package/dist/outputs.context.descriptor.d.ts.map +1 -1
  459. package/dist/outputs.context.descriptor.js +1 -1
  460. package/dist/outputs.context.descriptor.js.map +1 -1
  461. package/dist/outputs.context.impl.d.ts +2 -1
  462. package/dist/outputs.context.impl.d.ts.map +1 -1
  463. package/dist/outputs.context.impl.js +17 -9
  464. package/dist/outputs.context.impl.js.map +1 -1
  465. package/dist/paths.d.ts +24 -3
  466. package/dist/paths.d.ts.map +1 -1
  467. package/dist/paths.js +63 -3
  468. package/dist/paths.js.map +1 -1
  469. package/dist/rotation/rotate-appended-file.d.ts +15 -0
  470. package/dist/rotation/rotate-appended-file.d.ts.map +1 -0
  471. package/dist/rotation/rotate-appended-file.js +20 -0
  472. package/dist/rotation/rotate-appended-file.js.map +1 -0
  473. package/dist/rotation/rotation-policy.d.ts +19 -0
  474. package/dist/rotation/rotation-policy.d.ts.map +1 -0
  475. package/dist/rotation/rotation-policy.js +37 -0
  476. package/dist/rotation/rotation-policy.js.map +1 -0
  477. package/dist/schemas/audit.d.ts +25 -7
  478. package/dist/schemas/audit.d.ts.map +1 -1
  479. package/dist/schemas/audit.js +10 -4
  480. package/dist/schemas/audit.js.map +1 -1
  481. package/dist/schemas/entry.d.ts +11 -5
  482. package/dist/schemas/entry.d.ts.map +1 -1
  483. package/dist/schemas/entry.js +3 -2
  484. package/dist/schemas/entry.js.map +1 -1
  485. package/dist/schemas/file-host.d.ts +86 -0
  486. package/dist/schemas/file-host.d.ts.map +1 -0
  487. package/dist/schemas/file-host.js +10 -0
  488. package/dist/schemas/file-host.js.map +1 -0
  489. package/dist/schemas/formatter.d.ts +11 -1
  490. package/dist/schemas/formatter.d.ts.map +1 -1
  491. package/dist/schemas/formatter.js +1 -1
  492. package/dist/schemas/formatter.js.map +1 -1
  493. package/dist/schemas/index.d.ts +3 -2
  494. package/dist/schemas/index.d.ts.map +1 -1
  495. package/dist/schemas/index.js +3 -2
  496. package/dist/schemas/index.js.map +1 -1
  497. package/dist/schemas/logger.d.ts +16 -1
  498. package/dist/schemas/logger.d.ts.map +1 -1
  499. package/dist/schemas/logger.js +6 -1
  500. package/dist/schemas/logger.js.map +1 -1
  501. package/dist/schemas/output-defaults.d.ts +44 -0
  502. package/dist/schemas/output-defaults.d.ts.map +1 -0
  503. package/dist/schemas/output-defaults.js +53 -0
  504. package/dist/schemas/output-defaults.js.map +1 -0
  505. package/dist/schemas/output.d.ts +25 -1
  506. package/dist/schemas/output.d.ts.map +1 -1
  507. package/dist/schemas/output.js +29 -2
  508. package/dist/schemas/output.js.map +1 -1
  509. package/dist/schemas/sink.d.ts +32 -1
  510. package/dist/schemas/sink.d.ts.map +1 -1
  511. package/dist/schemas/sink.js +17 -1
  512. package/dist/schemas/sink.js.map +1 -1
  513. package/dist/sinks/buffer/buffer.descriptor.js +1 -1
  514. package/dist/sinks/buffer/buffer.descriptor.js.map +1 -1
  515. package/dist/sinks/buffer/{buffer.impl.cli.d.ts → buffer.impl.d.ts} +3 -3
  516. package/dist/sinks/buffer/buffer.impl.d.ts.map +1 -0
  517. package/dist/sinks/buffer/buffer.impl.js +42 -0
  518. package/dist/sinks/buffer/buffer.impl.js.map +1 -0
  519. package/dist/sinks/console/console.descriptor.js +1 -1
  520. package/dist/sinks/console/console.descriptor.js.map +1 -1
  521. package/dist/sinks/console/console.impl.browser.d.ts +4 -3
  522. package/dist/sinks/console/console.impl.browser.d.ts.map +1 -1
  523. package/dist/sinks/console/console.impl.browser.js +11 -14
  524. package/dist/sinks/console/console.impl.browser.js.map +1 -1
  525. package/dist/sinks/console/{console.impl.cli.d.ts → console.impl.consumer.d.ts} +5 -4
  526. package/dist/sinks/console/console.impl.consumer.d.ts.map +1 -0
  527. package/dist/sinks/console/{console.impl.cli.js → console.impl.consumer.js} +16 -8
  528. package/dist/sinks/console/console.impl.consumer.js.map +1 -0
  529. package/dist/sinks/file/file.sinks.descriptor.d.ts +10 -0
  530. package/dist/sinks/file/file.sinks.descriptor.d.ts.map +1 -0
  531. package/dist/sinks/file/file.sinks.descriptor.js +23 -0
  532. package/dist/sinks/file/file.sinks.descriptor.js.map +1 -0
  533. package/dist/sinks/index.d.ts +1 -1
  534. package/dist/sinks/index.d.ts.map +1 -1
  535. package/dist/sinks/memory/memory.descriptor.d.ts +1 -1
  536. package/dist/sinks/memory/memory.descriptor.js +2 -2
  537. package/dist/sinks/memory/memory.descriptor.js.map +1 -1
  538. package/dist/sinks/memory/memory.impl.d.ts +5 -11
  539. package/dist/sinks/memory/memory.impl.d.ts.map +1 -1
  540. package/dist/sinks/memory/memory.impl.js +46 -21
  541. package/dist/sinks/memory/memory.impl.js.map +1 -1
  542. package/dist/sinks/stdout/stdout.descriptor.js +1 -1
  543. package/dist/sinks/stdout/stdout.descriptor.js.map +1 -1
  544. package/dist/sinks/stdout/{stdout.impl.cli.d.ts → stdout.impl.d.ts} +5 -4
  545. package/dist/sinks/stdout/stdout.impl.d.ts.map +1 -0
  546. package/dist/sinks/stdout/stdout.impl.js +29 -0
  547. package/dist/sinks/stdout/stdout.impl.js.map +1 -0
  548. package/dist/sinks.context.descriptor.d.ts +15 -1
  549. package/dist/sinks.context.descriptor.d.ts.map +1 -1
  550. package/dist/sinks.context.descriptor.js +1 -1
  551. package/dist/sinks.context.descriptor.js.map +1 -1
  552. package/dist/sinks.context.impl.d.ts +2 -1
  553. package/dist/sinks.context.impl.d.ts.map +1 -1
  554. package/dist/sinks.context.impl.js +17 -9
  555. package/dist/sinks.context.impl.js.map +1 -1
  556. package/dist/stdout-capture/mcp-frame.d.ts +23 -0
  557. package/dist/stdout-capture/mcp-frame.d.ts.map +1 -0
  558. package/dist/stdout-capture/mcp-frame.js +80 -0
  559. package/dist/stdout-capture/mcp-frame.js.map +1 -0
  560. package/dist/stdout-capture/stdout-capture.descriptor.d.ts +10 -0
  561. package/dist/stdout-capture/stdout-capture.descriptor.d.ts.map +1 -0
  562. package/dist/stdout-capture/stdout-capture.descriptor.js +17 -0
  563. package/dist/stdout-capture/stdout-capture.descriptor.js.map +1 -0
  564. package/dist/stdout-capture/stdout-capture.impl.d.ts +19 -0
  565. package/dist/stdout-capture/stdout-capture.impl.d.ts.map +1 -0
  566. package/dist/stdout-capture/stdout-capture.impl.js +49 -0
  567. package/dist/stdout-capture/stdout-capture.impl.js.map +1 -0
  568. package/dist/stdout-capture/stdout-capture.lease.d.ts +45 -0
  569. package/dist/stdout-capture/stdout-capture.lease.d.ts.map +1 -0
  570. package/dist/stdout-capture/stdout-capture.lease.js +338 -0
  571. package/dist/stdout-capture/stdout-capture.lease.js.map +1 -0
  572. package/dist/stdout-capture/stdout-capture.output.descriptor.d.ts +4 -0
  573. package/dist/stdout-capture/stdout-capture.output.descriptor.d.ts.map +1 -0
  574. package/dist/stdout-capture/stdout-capture.output.descriptor.js +18 -0
  575. package/dist/stdout-capture/stdout-capture.output.descriptor.js.map +1 -0
  576. package/dist/stdout-capture/stdout-capture.state.d.ts +29 -0
  577. package/dist/stdout-capture/stdout-capture.state.d.ts.map +1 -0
  578. package/dist/stdout-capture/stdout-capture.state.js +80 -0
  579. package/dist/stdout-capture/stdout-capture.state.js.map +1 -0
  580. package/dist/stdout-capture.d.ts +24 -0
  581. package/dist/stdout-capture.d.ts.map +1 -0
  582. package/dist/stdout-capture.js +28 -0
  583. package/dist/stdout-capture.js.map +1 -0
  584. package/dist/stdout-capture.plugin.d.ts +7 -0
  585. package/dist/stdout-capture.plugin.d.ts.map +1 -0
  586. package/dist/stdout-capture.plugin.js +28 -0
  587. package/dist/stdout-capture.plugin.js.map +1 -0
  588. package/package.json +308 -224
  589. package/dist/contexts/audit.d.ts +0 -34
  590. package/dist/contexts/audit.d.ts.map +0 -1
  591. package/dist/contexts/audit.js +0 -13
  592. package/dist/contexts/audit.js.map +0 -1
  593. package/dist/formatters/index.d.ts +0 -7
  594. package/dist/formatters/index.d.ts.map +0 -1
  595. package/dist/formatters/index.js +0 -8
  596. package/dist/formatters/index.js.map +0 -1
  597. package/dist/formatters/pretty/pretty.impl.cli.d.ts.map +0 -1
  598. package/dist/formatters/pretty/pretty.impl.cli.js.map +0 -1
  599. package/dist/kinds/logger.contracts.d.ts +0 -16
  600. package/dist/kinds/logger.contracts.d.ts.map +0 -1
  601. package/dist/kinds/logger.contracts.js +0 -9
  602. package/dist/kinds/logger.contracts.js.map +0 -1
  603. package/dist/kinds/output.contracts.d.ts +0 -50
  604. package/dist/kinds/output.contracts.d.ts.map +0 -1
  605. package/dist/kinds/output.contracts.js +0 -10
  606. package/dist/kinds/output.contracts.js.map +0 -1
  607. package/dist/logging.cli.plugin.d.ts.map +0 -1
  608. package/dist/logging.cli.plugin.js +0 -39
  609. package/dist/logging.cli.plugin.js.map +0 -1
  610. package/dist/outputs/index.d.ts +0 -7
  611. package/dist/outputs/index.d.ts.map +0 -1
  612. package/dist/outputs/index.js +0 -8
  613. package/dist/outputs/index.js.map +0 -1
  614. package/dist/sinks/buffer/buffer.impl.cli.d.ts.map +0 -1
  615. package/dist/sinks/buffer/buffer.impl.cli.js +0 -34
  616. package/dist/sinks/buffer/buffer.impl.cli.js.map +0 -1
  617. package/dist/sinks/console/console.impl.cli.d.ts.map +0 -1
  618. package/dist/sinks/console/console.impl.cli.js.map +0 -1
  619. package/dist/sinks/stdout/stdout.impl.cli.d.ts.map +0 -1
  620. package/dist/sinks/stdout/stdout.impl.cli.js +0 -21
  621. package/dist/sinks/stdout/stdout.impl.cli.js.map +0 -1
  622. package/src/audit/audit.descriptor.ts +0 -45
  623. package/src/audit/audit.storage.schema.ts +0 -57
  624. package/src/audit/index.ts +0 -8
  625. package/src/cli/logs.descriptor.ts +0 -19
  626. package/src/cli/logs.list.descriptor.ts +0 -28
  627. package/src/cli/logs.list.impl.ts +0 -93
  628. package/src/cli/logs.rotate.descriptor.ts +0 -40
  629. package/src/cli/logs.rotate.impl.ts +0 -61
  630. package/src/cli/logs.search.descriptor.ts +0 -61
  631. package/src/cli/logs.search.impl.ts +0 -173
  632. package/src/cli/logs.tail.descriptor.ts +0 -49
  633. package/src/cli/logs.tail.impl.ts +0 -105
  634. package/src/cli/logs.view.descriptor.ts +0 -57
  635. package/src/cli/logs.view.impl.ts +0 -108
  636. package/src/cli/types.ts +0 -59
  637. package/src/contexts/audit.ts +0 -36
  638. package/src/contexts/fallback-logger.ts +0 -80
  639. package/src/contexts/index.ts +0 -23
  640. package/src/contexts/logger.ts +0 -119
  641. package/src/core/index.ts +0 -32
  642. package/src/core/logger.ts +0 -150
  643. package/src/core/namespace.ts +0 -195
  644. package/src/core/parsing.ts +0 -21
  645. package/src/core/types.ts +0 -82
  646. package/src/docs/levels.docs.descriptor.ts +0 -344
  647. package/src/docs/structured.docs.descriptor.ts +0 -444
  648. package/src/docs/transports.docs.descriptor.ts +0 -428
  649. package/src/formatters/index.ts +0 -6
  650. package/src/formatters/json/json.formatters.descriptor.ts +0 -25
  651. package/src/formatters/json/json.impl.ts +0 -41
  652. package/src/formatters/json5/json5.descriptor.ts +0 -25
  653. package/src/formatters/json5/json5.impl.ts +0 -43
  654. package/src/formatters/jsonl/jsonl.descriptor.ts +0 -26
  655. package/src/formatters/jsonl/jsonl.impl.ts +0 -39
  656. package/src/formatters/pretty/pretty.descriptor.ts +0 -26
  657. package/src/formatters/pretty/pretty.impl.cli.ts +0 -101
  658. package/src/index.ts +0 -190
  659. package/src/kinds/audit.ts +0 -169
  660. package/src/kinds/contexts.ts +0 -22
  661. package/src/kinds/formatter.ts +0 -117
  662. package/src/kinds/index.ts +0 -25
  663. package/src/kinds/logger.contracts.ts +0 -17
  664. package/src/kinds/logger.impl.ts +0 -206
  665. package/src/kinds/logger.ts +0 -46
  666. package/src/kinds/logger.utils.ts +0 -91
  667. package/src/kinds/output.contracts.ts +0 -54
  668. package/src/kinds/output.impl.ts +0 -118
  669. package/src/kinds/output.ts +0 -59
  670. package/src/kinds/output.types.ts +0 -105
  671. package/src/kinds/sink.ts +0 -100
  672. package/src/logger.context.descriptor.ts +0 -13
  673. package/src/logging.cli.plugin.ts +0 -43
  674. package/src/logging.plugin.ts +0 -93
  675. package/src/outputs/index.ts +0 -6
  676. package/src/outputs/remote/remote.descriptor.ts +0 -27
  677. package/src/outputs/remote/remote.impl.ts +0 -218
  678. package/src/outputs.context.descriptor.ts +0 -10
  679. package/src/outputs.context.impl.ts +0 -30
  680. package/src/paths.ts +0 -10
  681. package/src/schemas/audit.ts +0 -98
  682. package/src/schemas/entry.ts +0 -88
  683. package/src/schemas/formatter.ts +0 -37
  684. package/src/schemas/index.ts +0 -80
  685. package/src/schemas/logger.ts +0 -38
  686. package/src/schemas/output.ts +0 -62
  687. package/src/schemas/sink.ts +0 -39
  688. package/src/sinks/buffer/buffer.descriptor.ts +0 -13
  689. package/src/sinks/buffer/buffer.impl.cli.ts +0 -49
  690. package/src/sinks/console/console.descriptor.ts +0 -20
  691. package/src/sinks/console/console.impl.browser.ts +0 -69
  692. package/src/sinks/console/console.impl.cli.ts +0 -71
  693. package/src/sinks/index.ts +0 -8
  694. package/src/sinks/memory/memory.descriptor.ts +0 -20
  695. package/src/sinks/memory/memory.impl.ts +0 -119
  696. package/src/sinks/stdout/stdout.descriptor.ts +0 -13
  697. package/src/sinks/stdout/stdout.impl.cli.ts +0 -27
  698. package/src/sinks.context.descriptor.ts +0 -10
  699. package/src/sinks.context.impl.ts +0 -30
@@ -1,78 +1,105 @@
1
1
  /**
2
2
  * Logs Tail CLI Command Implementation
3
3
  *
4
- * Follows a log output in real-time.
4
+ * Follows a log output in real-time until the handed runtime's host signals
5
+ * SIGINT or SIGTERM, or the runtime is disposed.
5
6
  */
6
- import { getVibesRuntime } from '@vibesdotdev/runtime';
7
- // Color codes for log levels
8
- const LEVEL_COLORS = {
9
- debug: '\x1b[90m', // gray
10
- info: '\x1b[36m', // cyan
11
- warn: '\x1b[33m', // yellow
12
- error: '\x1b[31m' // red
13
- };
14
- const RESET = '\x1b[0m';
7
+ import { CapabilityError, getRuntimeHostSignals } from '@vibesdotdev/kernel';
8
+ import { resolveOutputOrList } from "./resolve-output.js";
9
+ import { openCommandOutput } from "./output.js";
10
+ import { levelColor, readLogLine, RESET } from "./log-line.js";
11
+ import { attempt } from "../core/outcome.js";
12
+ import { ThrownMessageSchema } from "../core/redact.js";
13
+ import { CapabilityErrorOfSchema } from "./failures.js";
14
+ import { parseCountFlag, parseLevelFlag } from "./flags.js";
15
15
  function formatLine(line, levelFilter) {
16
- try {
17
- const entry = JSON.parse(line);
18
- const level = entry.level ?? 'info';
19
- // Filter by level if specified
20
- if (levelFilter && level !== levelFilter) {
21
- return null;
22
- }
23
- const color = LEVEL_COLORS[level] ?? '';
24
- const timestamp = entry.timestamp?.slice(11, 19) ?? '';
25
- const namespace = entry.namespace ?? '';
26
- const message = entry.message ?? '';
27
- return `${color}[${timestamp}] [${level.toUpperCase().padEnd(5)}] [${namespace}]${RESET} ${message}`;
28
- }
29
- catch {
30
- // Not JSON, return as-is
16
+ const read = readLogLine(line);
17
+ // Not a structured entry, return as-is
18
+ if (read.kind === 'text')
31
19
  return line;
20
+ const { entry } = read;
21
+ const level = entry.level ?? 'info';
22
+ // Filter by level if specified
23
+ if (levelFilter && level !== levelFilter) {
24
+ return null;
32
25
  }
26
+ const timestamp = entry.timestamp?.slice(11, 19) ?? '';
27
+ const namespace = entry.namespace ?? '';
28
+ const message = entry.message ?? '';
29
+ return `${levelColor(level)}[${timestamp}] [${level.toUpperCase().padEnd(5)}] [${namespace}]${RESET} ${message}`;
30
+ }
31
+ /** Run every step, carrying each failure as a value. */
32
+ function runAll(steps) {
33
+ const failures = [];
34
+ for (const step of steps) {
35
+ const outcome = attempt(step);
36
+ if (outcome.failed)
37
+ failures.push(outcome.cause);
38
+ }
39
+ return failures;
40
+ }
41
+ /** Run every cleanup step, then throw their failures together. */
42
+ function joinCleanup(steps, message) {
43
+ const failures = runAll(steps);
44
+ if (failures.length === 1)
45
+ throw failures[0];
46
+ if (failures.length > 1)
47
+ throw new AggregateError(failures, message);
48
+ }
49
+ /** Undo what was attached, then throw the failure joined with any undo failure. */
50
+ function rollback(failed, steps, message) {
51
+ const failures = [failed.cause, ...runAll(steps)];
52
+ throw failures.length === 1 ? failed.cause : new AggregateError(failures, message);
33
53
  }
34
54
  export default {
35
- async execute(args, opts) {
36
- const runtime = getVibesRuntime();
37
- const outputId = args.output ?? 'file';
38
- let output;
39
- try {
40
- output = await runtime
41
- .query('logging/output')
42
- .withId(outputId)
43
- .resolve();
44
- }
45
- catch (err) {
46
- console.error(`Failed to resolve output '${outputId}': ${err instanceof Error ? err.message : String(err)}`);
47
- process.exit(1);
55
+ async execute(args, opts, context) {
56
+ const runtime = context.runtime;
57
+ // Flags are parsed before anything is opened: a bad one refuses naming itself.
58
+ const lines = parseCountFlag('--lines', opts.lines, 10, 0);
59
+ const levelFilter = parseLevelFlag('--level', opts.level);
60
+ // Refuse on a host without text output or termination signals before tailing.
61
+ const [out, signals] = await Promise.all([openCommandOutput(runtime), getRuntimeHostSignals(runtime)]);
62
+ const source = await resolveOutputOrList(runtime, args.output);
63
+ const stop = Promise.withResolvers();
64
+ const lifecycle = runtime.lifecycle;
65
+ const onDispose = () => stop.resolve();
66
+ const detach = [() => lifecycle.signal.removeEventListener('abort', onDispose)];
67
+ lifecycle.signal.addEventListener('abort', onDispose, { once: true });
68
+ if (lifecycle.signal.aborted)
69
+ stop.resolve();
70
+ for (const signal of ['SIGINT', 'SIGTERM']) {
71
+ const subscribed = attempt(() => signals.subscribe(signal, () => stop.resolve()));
72
+ if (subscribed.failed)
73
+ rollback(subscribed, detach, 'Tail signal binding and rollback failed.');
74
+ detach.push(subscribed.value);
48
75
  }
49
- const lines = opts.lines ? parseInt(opts.lines, 10) : 10;
50
- console.log(`\n📜 Tailing ${outputId} (Ctrl+C to stop)\n`);
51
- let handle;
52
- try {
53
- handle = output.tail((line) => {
54
- const formatted = formatLine(line, opts.level);
76
+ const started = attempt(() => {
77
+ out.line(`\n📜 Tailing ${args.output ?? 'file'} (Ctrl+C to stop)\n`);
78
+ return source.tail((line) => {
79
+ const formatted = formatLine(line, levelFilter);
55
80
  if (formatted !== null) {
56
- console.log(formatted);
81
+ out.line(formatted);
57
82
  }
58
83
  }, {
59
84
  lines,
60
85
  filter: opts.filter,
61
86
  ignoreCase: opts.ignoreCase
62
87
  });
63
- }
64
- catch (err) {
65
- console.error(`Failed to tail: ${err instanceof Error ? err.message : String(err)}`);
66
- process.exit(1);
67
- }
68
- // Handle Ctrl+C gracefully
69
- process.on('SIGINT', () => {
70
- console.log('\n\nStopping...');
71
- handle.close();
72
- process.exit(0);
73
88
  });
74
- // Keep process alive
75
- await new Promise(() => { });
89
+ if (started.failed) {
90
+ const { cause } = started;
91
+ rollback({
92
+ failed: true,
93
+ cause: CapabilityErrorOfSchema.parse(cause) ?? new CapabilityError(`Failed to tail: ${ThrownMessageSchema.parse(cause)}`, 'INTERNAL', { cause })
94
+ }, detach, 'Tail start and signal detachment failed.');
95
+ }
96
+ const handle = started.value;
97
+ await stop.promise;
98
+ joinCleanup([
99
+ () => out.line('\n\nStopping...'),
100
+ () => handle.close(),
101
+ ...detach
102
+ ], 'Tail cleanup failed.');
76
103
  }
77
104
  };
78
105
  //# sourceMappingURL=logs.tail.impl.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"logs.tail.impl.js","sourceRoot":"","sources":["../../src/cli/logs.tail.impl.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"logs.tail.impl.js","sourceRoot":"","sources":["../../src/cli/logs.tail.impl.ts"],"names":[],"mappings":"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"}
@@ -1,8 +1,4 @@
1
- /**
2
- * Logs View CLI Command Implementation
3
- *
4
- * View log entries from an output.
5
- */
1
+ import type { CommandContext } from './types.ts';
6
2
  interface ViewArgs {
7
3
  output?: string;
8
4
  }
@@ -15,7 +11,7 @@ interface ViewOptions {
15
11
  raw?: boolean;
16
12
  }
17
13
  declare const _default: {
18
- execute(args: ViewArgs, opts: ViewOptions): Promise<void>;
14
+ execute(args: ViewArgs, opts: ViewOptions, context: CommandContext): Promise<void>;
19
15
  };
20
16
  export default _default;
21
17
  //# sourceMappingURL=logs.view.impl.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"logs.view.impl.d.ts","sourceRoot":"","sources":["../../src/cli/logs.view.impl.ts"],"names":[],"mappings":"AAAA;;;;GAIG;AAMH,UAAU,QAAQ;IACjB,MAAM,CAAC,EAAE,MAAM,CAAC;CAChB;AAED,UAAU,WAAW;IACpB,KAAK,CAAC,EAAE,MAAM,CAAC;IACf,MAAM,CAAC,EAAE,MAAM,CAAC;IAChB,MAAM,CAAC,EAAE,MAAM,CAAC;IAChB,UAAU,CAAC,EAAE,OAAO,CAAC;IACrB,IAAI,CAAC,EAAE,OAAO,CAAC;IACf,GAAG,CAAC,EAAE,OAAO,CAAC;CACd;;kBA8BoB,QAAQ,QAAQ,WAAW,GAAG,OAAO,CAAC,IAAI,CAAC;;AADhE,wBAyDE"}
1
+ {"version":3,"file":"logs.view.impl.d.ts","sourceRoot":"","sources":["../../src/cli/logs.view.impl.ts"],"names":[],"mappings":"AAMA,OAAO,KAAK,EAAE,cAAc,EAAE,MAAM,YAAY,CAAC;AAQjD,UAAU,QAAQ;IACjB,MAAM,CAAC,EAAE,MAAM,CAAC;CAChB;AAED,UAAU,WAAW;IACpB,KAAK,CAAC,EAAE,MAAM,CAAC;IACf,MAAM,CAAC,EAAE,MAAM,CAAC;IAChB,MAAM,CAAC,EAAE,MAAM,CAAC;IAChB,UAAU,CAAC,EAAE,OAAO,CAAC;IACrB,IAAI,CAAC,EAAE,OAAO,CAAC;IACf,GAAG,CAAC,EAAE,OAAO,CAAC;CACd;;kBAkBoB,QAAQ,QAAQ,WAAW,WAAW,cAAc,GAAG,OAAO,CAAC,IAAI,CAAC;;AADzF,wBA8CE"}
@@ -3,49 +3,34 @@
3
3
  *
4
4
  * View log entries from an output.
5
5
  */
6
- import { getVibesRuntime } from '@vibesdotdev/runtime';
7
- // Color codes for log levels
8
- const LEVEL_COLORS = {
9
- debug: '\x1b[90m', // gray
10
- info: '\x1b[36m', // cyan
11
- warn: '\x1b[33m', // yellow
12
- error: '\x1b[31m' // red
13
- };
14
- const RESET = '\x1b[0m';
6
+ import { CapabilityError } from '@vibesdotdev/kernel';
7
+ import { resolveOutputOrList } from "./resolve-output.js";
8
+ import { openCommandOutput } from "./output.js";
9
+ import { levelColor, readLogLine, RESET } from "./log-line.js";
10
+ import { parseCountFlag } from "./flags.js";
11
+ import { CapabilityErrorOfSchema } from "./failures.js";
12
+ import { ThrownMessageSchema } from "../core/redact.js";
15
13
  function formatLine(line, raw) {
16
14
  if (raw)
17
15
  return line;
18
- try {
19
- const entry = JSON.parse(line);
20
- const level = entry.level ?? 'info';
21
- const color = LEVEL_COLORS[level] ?? '';
22
- const timestamp = entry.timestamp?.slice(0, 19) ?? '';
23
- const namespace = entry.namespace ?? '';
24
- const message = entry.message ?? '';
25
- const context = entry.context ? ` ${JSON.stringify(entry.context)}` : '';
26
- return `${color}[${timestamp}] [${level.toUpperCase().padEnd(5)}] [${namespace}]${RESET} ${message}${context}`;
27
- }
28
- catch {
16
+ const read = readLogLine(line);
17
+ if (read.kind === 'text')
29
18
  return line;
30
- }
19
+ const { entry } = read;
20
+ const level = entry.level ?? 'info';
21
+ const timestamp = entry.timestamp?.slice(0, 19) ?? '';
22
+ const namespace = entry.namespace ?? '';
23
+ const message = entry.message ?? '';
24
+ const context = entry.context ? ` ${JSON.stringify(entry.context)}` : '';
25
+ return `${levelColor(level)}[${timestamp}] [${level.toUpperCase().padEnd(5)}] [${namespace}]${RESET} ${message}${context}`;
31
26
  }
32
27
  export default {
33
- async execute(args, opts) {
34
- const runtime = getVibesRuntime();
35
- const outputId = args.output ?? 'file';
36
- let output;
37
- try {
38
- output = await runtime
39
- .query('logging/output')
40
- .withId(outputId)
41
- .resolve();
42
- }
43
- catch (err) {
44
- console.error(`Failed to resolve output '${outputId}': ${err instanceof Error ? err.message : String(err)}`);
45
- process.exit(1);
46
- }
47
- const lines = opts.lines ? parseInt(opts.lines, 10) : 50;
48
- const offset = opts.offset ? parseInt(opts.offset, 10) : 0;
28
+ async execute(args, opts, context) {
29
+ const runtime = context.runtime;
30
+ const lines = parseCountFlag('--lines', opts.lines, 50, 1);
31
+ const offset = parseCountFlag('--offset', opts.offset, 0, 0);
32
+ const out = await openCommandOutput(runtime);
33
+ const output = await resolveOutputOrList(runtime, args.output);
49
34
  let entries;
50
35
  try {
51
36
  entries = await output.read({
@@ -56,30 +41,27 @@ export default {
56
41
  });
57
42
  }
58
43
  catch (err) {
59
- console.error(`Failed to read: ${err instanceof Error ? err.message : String(err)}`);
60
- process.exit(1);
44
+ if (CapabilityErrorOfSchema.parse(err))
45
+ throw err;
46
+ throw new CapabilityError(`Failed to read: ${ThrownMessageSchema.parse(err)}`, 'INTERNAL', { cause: err });
61
47
  }
62
48
  if (entries.length === 0) {
63
- console.log('No log entries found.');
49
+ out.line('No log entries found.');
64
50
  return;
65
51
  }
66
52
  if (opts.json) {
67
53
  const parsed = entries.map((line) => {
68
- try {
69
- return JSON.parse(line);
70
- }
71
- catch {
72
- return { raw: line };
73
- }
54
+ const read = readLogLine(line);
55
+ return read.kind === 'entry' ? read.entry : { raw: line };
74
56
  });
75
- console.log(JSON.stringify(parsed, null, 2));
57
+ out.json(parsed);
76
58
  return;
77
59
  }
78
- console.log(`\n📜 ${outputId} (${entries.length} entries)\n`);
60
+ out.line(`\n📜 ${args.output ?? 'file'} (${entries.length} entries)\n`);
79
61
  for (const entry of entries) {
80
- console.log(formatLine(entry, opts.raw ?? false));
62
+ out.line(formatLine(entry, opts.raw ?? false));
81
63
  }
82
- console.log('');
64
+ out.line();
83
65
  }
84
66
  };
85
67
  //# sourceMappingURL=logs.view.impl.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"logs.view.impl.js","sourceRoot":"","sources":["../../src/cli/logs.view.impl.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"logs.view.impl.js","sourceRoot":"","sources":["../../src/cli/logs.view.impl.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,29 @@
1
+ /**
2
+ * A `vibes logs` command's user output. Every line goes through the handed
3
+ * runtime's selected host text output (`runtime/stdio`), never the process
4
+ * console: results on stdout, diagnostics on stderr. A host without text
5
+ * output refuses `UNAVAILABLE stdio-unavailable` before the command does any
6
+ * work. Exit status is not this module's: a failed command throws its typed
7
+ * `CapabilityError` and the CLI surface owns the exit.
8
+ */
9
+ import { type RuntimeRef } from '@vibesdotdev/kernel';
10
+ /** A `vibes logs` command's `--json` result: one record per item it lists. */
11
+ export type JsonRecords = readonly object[];
12
+ /** One row of a text table: column name to cell text, the same columns in every row. */
13
+ export type TableRow = Readonly<Record<string, string>>;
14
+ /** Where a `vibes logs` command writes what it reports. */
15
+ export interface CommandOutput {
16
+ /** `text` and a newline on stdout; with no text, an empty line. */
17
+ line(text?: string): void;
18
+ /** `text` and a newline on stderr: a diagnostic, never a result. */
19
+ warn(text: string): void;
20
+ /** `payload` as two-space indented JSON and a newline on stdout. */
21
+ json(payload: JsonRecords): void;
22
+ /** `rows` as a boxed text table on stdout, an `(index)` column first. */
23
+ table(rows: readonly TableRow[]): void;
24
+ }
25
+ /** Render `rows` as a boxed, left-aligned table, its first column the row index. */
26
+ export declare function renderTable(rows: readonly TableRow[]): string;
27
+ /** Resolve the handed runtime's host text output for one command run. */
28
+ export declare function openCommandOutput(runtime: Pick<RuntimeRef, 'hasKind' | 'query'>): Promise<CommandOutput>;
29
+ //# sourceMappingURL=output.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"output.d.ts","sourceRoot":"","sources":["../../src/cli/output.ts"],"names":[],"mappings":"AAAA;;;;;;;GAOG;AACH,OAAO,EAAmB,KAAK,UAAU,EAAE,MAAM,qBAAqB,CAAC;AAEvE,8EAA8E;AAC9E,MAAM,MAAM,WAAW,GAAG,SAAS,MAAM,EAAE,CAAC;AAE5C,wFAAwF;AACxF,MAAM,MAAM,QAAQ,GAAG,QAAQ,CAAC,MAAM,CAAC,MAAM,EAAE,MAAM,CAAC,CAAC,CAAC;AAExD,2DAA2D;AAC3D,MAAM,WAAW,aAAa;IAC7B,mEAAmE;IACnE,IAAI,CAAC,IAAI,CAAC,EAAE,MAAM,GAAG,IAAI,CAAC;IAC1B,oEAAoE;IACpE,IAAI,CAAC,IAAI,EAAE,MAAM,GAAG,IAAI,CAAC;IACzB,oEAAoE;IACpE,IAAI,CAAC,OAAO,EAAE,WAAW,GAAG,IAAI,CAAC;IACjC,yEAAyE;IACzE,KAAK,CAAC,IAAI,EAAE,SAAS,QAAQ,EAAE,GAAG,IAAI,CAAC;CACvC;AAED,oFAAoF;AACpF,wBAAgB,WAAW,CAAC,IAAI,EAAE,SAAS,QAAQ,EAAE,GAAG,MAAM,CAS7D;AAED,yEAAyE;AACzE,wBAAsB,iBAAiB,CAAC,OAAO,EAAE,IAAI,CAAC,UAAU,EAAE,SAAS,GAAG,OAAO,CAAC,GAAG,OAAO,CAAC,aAAa,CAAC,CAQ9G"}
@@ -0,0 +1,29 @@
1
+ /**
2
+ * A `vibes logs` command's user output. Every line goes through the handed
3
+ * runtime's selected host text output (`runtime/stdio`), never the process
4
+ * console: results on stdout, diagnostics on stderr. A host without text
5
+ * output refuses `UNAVAILABLE stdio-unavailable` before the command does any
6
+ * work. Exit status is not this module's: a failed command throws its typed
7
+ * `CapabilityError` and the CLI surface owns the exit.
8
+ */
9
+ import { getRuntimeStdio } from '@vibesdotdev/kernel';
10
+ /** Render `rows` as a boxed, left-aligned table, its first column the row index. */
11
+ export function renderTable(rows) {
12
+ const columns = ['(index)', ...Object.keys(rows[0] ?? {})];
13
+ const cells = rows.map((row, index) => [String(index), ...columns.slice(1).map((column) => row[column] ?? '')]);
14
+ const widths = columns.map((column, at) => Math.max(column.length, ...cells.map((cell) => cell[at].length)));
15
+ const rule = (left, middle, right) => `${left}${widths.map((width) => '─'.repeat(width + 2)).join(middle)}${right}`;
16
+ const row = (values) => `│${values.map((value, at) => ` ${value.padEnd(widths[at])} `).join('│')}│`;
17
+ return [rule('┌', '┬', '┐'), row(columns), rule('├', '┼', '┤'), ...cells.map(row), rule('└', '┴', '┘')].join('\n');
18
+ }
19
+ /** Resolve the handed runtime's host text output for one command run. */
20
+ export async function openCommandOutput(runtime) {
21
+ const stdio = await getRuntimeStdio(runtime);
22
+ return {
23
+ line: (text = '') => stdio.write('stdout', `${text}\n`),
24
+ warn: (text) => stdio.write('stderr', `${text}\n`),
25
+ json: (payload) => stdio.write('stdout', `${JSON.stringify(payload, null, 2)}\n`),
26
+ table: (rows) => stdio.write('stdout', `${renderTable(rows)}\n`)
27
+ };
28
+ }
29
+ //# sourceMappingURL=output.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"output.js","sourceRoot":"","sources":["../../src/cli/output.ts"],"names":[],"mappings":"AAAA;;;;;;;GAOG;AACH,OAAO,EAAE,eAAe,EAAmB,MAAM,qBAAqB,CAAC;AAoBvE,oFAAoF;AACpF,MAAM,UAAU,WAAW,CAAC,IAAyB;IACpD,MAAM,OAAO,GAAG,CAAC,SAAS,EAAE,GAAG,MAAM,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC,CAAC,IAAI,EAAE,CAAC,CAAC,CAAC;IAC3D,MAAM,KAAK,GAAG,IAAI,CAAC,GAAG,CAAC,CAAC,GAAG,EAAE,KAAK,EAAE,EAAE,CAAC,CAAC,MAAM,CAAC,KAAK,CAAC,EAAE,GAAG,OAAO,CAAC,KAAK,CAAC,CAAC,CAAC,CAAC,GAAG,CAAC,CAAC,MAAM,EAAE,EAAE,CAAC,GAAG,CAAC,MAAM,CAAC,IAAI,EAAE,CAAC,CAAC,CAAC,CAAC;IAChH,MAAM,MAAM,GAAG,OAAO,CAAC,GAAG,CAAC,CAAC,MAAM,EAAE,EAAE,EAAE,EAAE,CAAC,IAAI,CAAC,GAAG,CAAC,MAAM,CAAC,MAAM,EAAE,GAAG,KAAK,CAAC,GAAG,CAAC,CAAC,IAAI,EAAE,EAAE,CAAC,IAAI,CAAC,EAAE,CAAC,CAAC,MAAM,CAAC,CAAC,CAAC,CAAC;IAC7G,MAAM,IAAI,GAAG,CAAC,IAAY,EAAE,MAAc,EAAE,KAAa,EAAU,EAAE,CACpE,GAAG,IAAI,GAAG,MAAM,CAAC,GAAG,CAAC,CAAC,KAAK,EAAE,EAAE,CAAC,GAAG,CAAC,MAAM,CAAC,KAAK,GAAG,CAAC,CAAC,CAAC,CAAC,IAAI,CAAC,MAAM,CAAC,GAAG,KAAK,EAAE,CAAC;IAC/E,MAAM,GAAG,GAAG,CAAC,MAAyB,EAAU,EAAE,CACjD,IAAI,MAAM,CAAC,GAAG,CAAC,CAAC,KAAK,EAAE,EAAE,EAAE,EAAE,CAAC,IAAI,KAAK,CAAC,MAAM,CAAC,MAAM,CAAC,EAAE,CAAC,CAAC,GAAG,CAAC,CAAC,IAAI,CAAC,GAAG,CAAC,GAAG,CAAC;IAC7E,OAAO,CAAC,IAAI,CAAC,GAAG,EAAE,GAAG,EAAE,GAAG,CAAC,EAAE,GAAG,CAAC,OAAO,CAAC,EAAE,IAAI,CAAC,GAAG,EAAE,GAAG,EAAE,GAAG,CAAC,EAAE,GAAG,KAAK,CAAC,GAAG,CAAC,GAAG,CAAC,EAAE,IAAI,CAAC,GAAG,EAAE,GAAG,EAAE,GAAG,CAAC,CAAC,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC;AACpH,CAAC;AAED,yEAAyE;AACzE,MAAM,CAAC,KAAK,UAAU,iBAAiB,CAAC,OAA8C;IACrF,MAAM,KAAK,GAAG,MAAM,eAAe,CAAC,OAAO,CAAC,CAAC;IAC7C,OAAO;QACN,IAAI,EAAE,CAAC,IAAI,GAAG,EAAE,EAAE,EAAE,CAAC,KAAK,CAAC,KAAK,CAAC,QAAQ,EAAE,GAAG,IAAI,IAAI,CAAC;QACvD,IAAI,EAAE,CAAC,IAAI,EAAE,EAAE,CAAC,KAAK,CAAC,KAAK,CAAC,QAAQ,EAAE,GAAG,IAAI,IAAI,CAAC;QAClD,IAAI,EAAE,CAAC,OAAO,EAAE,EAAE,CAAC,KAAK,CAAC,KAAK,CAAC,QAAQ,EAAE,GAAG,IAAI,CAAC,SAAS,CAAC,OAAO,EAAE,IAAI,EAAE,CAAC,CAAC,IAAI,CAAC;QACjF,KAAK,EAAE,CAAC,IAAI,EAAE,EAAE,CAAC,KAAK,CAAC,KAAK,CAAC,QAAQ,EAAE,GAAG,WAAW,CAAC,IAAI,CAAC,IAAI,CAAC;KAChE,CAAC;AACH,CAAC"}
@@ -12,9 +12,9 @@
12
12
  * machinery into their plugin chain.
13
13
  *
14
14
  * Apps that ship a CLI surface (account, ai, tools, cli-bin, etc.) should
15
- * include both `@vibesdotdev/cli/cli.plugin` and `@vibesdotdev/logging/cli.plugin`
15
+ * include both `@vibesdotdev/cli/plugin` and `@vibesdotdev/logging/cli/plugin`
16
16
  * after the core logging plugin in their `vibes.config.ts`.
17
17
  */
18
- declare const _default: import("@vibesdotdev/runtime").RuntimePlugin;
18
+ declare const _default: import("@vibesdotdev/kernel").RuntimePlugin;
19
19
  export default _default;
20
- //# sourceMappingURL=logging.cli.plugin.d.ts.map
20
+ //# sourceMappingURL=plugin.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"plugin.d.ts","sourceRoot":"","sources":["../../src/cli/plugin.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;;;GAgBG;;AAwBH,wBASG"}
@@ -0,0 +1,45 @@
1
+ /**
2
+ * Logging CLI Slice Plugin
3
+ *
4
+ * Registers the `vibes logs *` CLI surface (group + commands) against the
5
+ * `cli/group` and `cli/command` kinds owned by `@vibesdotdev/cli`.
6
+ *
7
+ * Per docs/architecture/RUNTIME-FIRST-MODULES.md §What Surfaces Are Allowed To Do
8
+ * and §Plugin Composition Rules, CLI is a surface adapter. The core
9
+ * `@vibesdotdev/logging/plugin` registers logging kinds and sinks/formatters/
10
+ * outputs that every consumer needs; this slice plugin layers the CLI surface
11
+ * on top so SSR/web/worker apps can consume logging without dragging the CLI
12
+ * machinery into their plugin chain.
13
+ *
14
+ * Apps that ship a CLI surface (account, ai, tools, cli-bin, etc.) should
15
+ * include both `@vibesdotdev/cli/plugin` and `@vibesdotdev/logging/cli/plugin`
16
+ * after the core logging plugin in their `vibes.config.ts`.
17
+ */
18
+ import { createRuntimePlugin, loader } from '@vibesdotdev/kernel';
19
+ import logsGroup from "./logging.logs.descriptor.js";
20
+ import logsList from "./logs.list.descriptor.js";
21
+ import logsSearch from "./logs.search.descriptor.js";
22
+ import logsTail from "./logs.tail.descriptor.js";
23
+ import logsRotate from "./logs.rotate.descriptor.js";
24
+ import logsAuditList from "./logs.audit.descriptor.js";
25
+ import logsAuditGroup from "./logs.audit.group.descriptor.js";
26
+ import logsAuditCleanup from "./logs.audit.cleanup.descriptor.js";
27
+ import logsView from "./logs.view.descriptor.js";
28
+ const loggingCliLoaders = [
29
+ loader('logs.list', { kind: 'cli/command' }, () => import("./logs.list.impl.js")),
30
+ loader('logs.search', { kind: 'cli/command' }, () => import("./logs.search.impl.js")),
31
+ loader('logs.tail', { kind: 'cli/command' }, () => import("./logs.tail.impl.js")),
32
+ loader('logs.rotate', { kind: 'cli/command' }, () => import("./logs.rotate.impl.js")),
33
+ loader('logs.audit.list', { kind: 'cli/command' }, () => import("./logs.audit.impl.js")),
34
+ loader('logs.audit.cleanup', { kind: 'cli/command' }, () => import("./logs.audit.cleanup.impl.js")),
35
+ loader('logs.view', { kind: 'cli/command' }, () => import("./logs.view.impl.js"))
36
+ ];
37
+ export default createRuntimePlugin({
38
+ id: 'logging.cli',
39
+ name: 'Logging CLI Surface',
40
+ description: '`vibes logs *` CLI commands for viewing, searching, tailing, rotating logs',
41
+ dependencies: ['logging', 'cli'],
42
+ descriptors: [logsGroup, logsAuditGroup, logsList, logsSearch, logsTail, logsRotate, logsAuditList, logsAuditCleanup, logsView],
43
+ loaders: loggingCliLoaders
44
+ });
45
+ //# sourceMappingURL=plugin.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"plugin.js","sourceRoot":"","sources":["../../src/cli/plugin.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;;;GAgBG;AAEH,OAAO,EAAE,mBAAmB,EAAE,MAAM,EAAE,MAAM,qBAAqB,CAAC;AAElE,OAAO,SAAS,MAAM,8BAA8B,CAAC;AACrD,OAAO,QAAQ,MAAM,2BAA2B,CAAC;AACjD,OAAO,UAAU,MAAM,6BAA6B,CAAC;AACrD,OAAO,QAAQ,MAAM,2BAA2B,CAAC;AACjD,OAAO,UAAU,MAAM,6BAA6B,CAAC;AACrD,OAAO,aAAa,MAAM,4BAA4B,CAAC;AACvD,OAAO,cAAc,MAAM,kCAAkC,CAAC;AAC9D,OAAO,gBAAgB,MAAM,oCAAoC,CAAC;AAClE,OAAO,QAAQ,MAAM,2BAA2B,CAAC;AAEjD,MAAM,iBAAiB,GAAG;IACzB,MAAM,CAAC,WAAW,EAAE,EAAE,IAAI,EAAE,aAAa,EAAE,EAAE,GAAG,EAAE,CAAC,MAAM,CAAC,qBAAqB,CAAC,CAAC;IACjF,MAAM,CAAC,aAAa,EAAE,EAAE,IAAI,EAAE,aAAa,EAAE,EAAE,GAAG,EAAE,CAAC,MAAM,CAAC,uBAAuB,CAAC,CAAC;IACrF,MAAM,CAAC,WAAW,EAAE,EAAE,IAAI,EAAE,aAAa,EAAE,EAAE,GAAG,EAAE,CAAC,MAAM,CAAC,qBAAqB,CAAC,CAAC;IACjF,MAAM,CAAC,aAAa,EAAE,EAAE,IAAI,EAAE,aAAa,EAAE,EAAE,GAAG,EAAE,CAAC,MAAM,CAAC,uBAAuB,CAAC,CAAC;IACrF,MAAM,CAAC,iBAAiB,EAAE,EAAE,IAAI,EAAE,aAAa,EAAE,EAAE,GAAG,EAAE,CAAC,MAAM,CAAC,sBAAsB,CAAC,CAAC;IACxF,MAAM,CAAC,oBAAoB,EAAE,EAAE,IAAI,EAAE,aAAa,EAAE,EAAE,GAAG,EAAE,CAAC,MAAM,CAAC,8BAA8B,CAAC,CAAC;IACnG,MAAM,CAAC,WAAW,EAAE,EAAE,IAAI,EAAE,aAAa,EAAE,EAAE,GAAG,EAAE,CAAC,MAAM,CAAC,qBAAqB,CAAC,CAAC;CACjF,CAAC;AAEF,eAAe,mBAAmB,CAAC;IAClC,EAAE,EAAE,aAAa;IACjB,IAAI,EAAE,qBAAqB;IAC3B,WAAW,EAAE,4EAA4E;IACzF,YAAY,EAAE,CAAC,SAAS,EAAE,KAAK,CAAC;IAEhC,WAAW,EAAE,CAAC,SAAS,EAAE,cAAc,EAAE,QAAQ,EAAE,UAAU,EAAE,QAAQ,EAAE,UAAU,EAAE,aAAa,EAAE,gBAAgB,EAAE,QAAQ,CAAC;IAE/H,OAAO,EAAE,iBAAiB;CAC1B,CAAC,CAAC"}
@@ -0,0 +1,25 @@
1
+ /**
2
+ * Shared output resolution helper for logs CLI commands.
3
+ *
4
+ * Resolves an output ID or lists available outputs with a helpful error message.
5
+ */
6
+ import { type VibesRuntime } from '@vibesdotdev/kernel';
7
+ import type { OutputDescriptor } from '../schemas/output.ts';
8
+ import type { OutputImplementation } from '../kinds/output.ts';
9
+ /** The enabled outputs a `vibes logs` command serves: every locally stored one a lease does not own. */
10
+ export declare function servableOutputDescriptors(runtime: VibesRuntime): OutputDescriptor[];
11
+ /**
12
+ * An output owned by a lease writes where the lease decides, which the CLI
13
+ * cannot know from the descriptor, and a remote output keeps nothing locally;
14
+ * naming either is a typed refusal, before anything is resolved or reported.
15
+ */
16
+ export declare function refuseUnservable(runtime: VibesRuntime, outputId: string): void;
17
+ /**
18
+ * Resolve an output by ID, or return available options on failure.
19
+ *
20
+ * Only a confirmed absence of that output id is `NOT_FOUND`, listing every
21
+ * enabled output id and suggesting `vibes logs list`. Any other failure to
22
+ * resolve it propagates typed (`CapabilityError.from`), its cause kept.
23
+ */
24
+ export declare function resolveOutputOrList(runtime: VibesRuntime, requestedId: string | undefined): Promise<OutputImplementation>;
25
+ //# sourceMappingURL=resolve-output.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"resolve-output.d.ts","sourceRoot":"","sources":["../../src/cli/resolve-output.ts"],"names":[],"mappings":"AAAA;;;;GAIG;AAEH,OAAO,EAAwC,KAAK,YAAY,EAAE,MAAM,qBAAqB,CAAC;AAC9F,OAAO,KAAK,EAAE,gBAAgB,EAAE,MAAM,sBAAsB,CAAC;AAC7D,OAAO,KAAK,EAAE,oBAAoB,EAAE,MAAM,oBAAoB,CAAC;AAW/D,wGAAwG;AACxG,wBAAgB,yBAAyB,CAAC,OAAO,EAAE,YAAY,GAAG,gBAAgB,EAAE,CAMnF;AAED;;;;GAIG;AACH,wBAAgB,gBAAgB,CAAC,OAAO,EAAE,YAAY,EAAE,QAAQ,EAAE,MAAM,GAAG,IAAI,CAc9E;AAED;;;;;;GAMG;AACH,wBAAsB,mBAAmB,CACxC,OAAO,EAAE,YAAY,EACrB,WAAW,EAAE,MAAM,GAAG,SAAS,GAC7B,OAAO,CAAC,oBAAoB,CAAC,CAwB/B"}
@@ -0,0 +1,75 @@
1
+ /**
2
+ * Shared output resolution helper for logs CLI commands.
3
+ *
4
+ * Resolves an output ID or lists available outputs with a helpful error message.
5
+ */
6
+ import { CapabilityError, CaughtFailureSchema } from '@vibesdotdev/kernel';
7
+ /**
8
+ * Whether a `vibes logs` command can read an output where it runs: a lease does
9
+ * not own it, and it is stored locally (a `remote` output ships its entries to
10
+ * its endpoint and keeps none to read, tail or rotate).
11
+ */
12
+ function isServable(descriptor) {
13
+ return descriptor.leaseOwned !== true && descriptor.storage !== 'remote';
14
+ }
15
+ /** The enabled outputs a `vibes logs` command serves: every locally stored one a lease does not own. */
16
+ export function servableOutputDescriptors(runtime) {
17
+ return runtime
18
+ .query('logging/output')
19
+ .enabled()
20
+ .descriptors()
21
+ .filter(isServable);
22
+ }
23
+ /**
24
+ * An output owned by a lease writes where the lease decides, which the CLI
25
+ * cannot know from the descriptor, and a remote output keeps nothing locally;
26
+ * naming either is a typed refusal, before anything is resolved or reported.
27
+ */
28
+ export function refuseUnservable(runtime, outputId) {
29
+ const named = runtime
30
+ .query('logging/output')
31
+ .descriptors()
32
+ .find((descriptor) => descriptor.id === outputId);
33
+ if (!named || isServable(named))
34
+ return;
35
+ if (named.leaseOwned === true)
36
+ throw new CapabilityError(`Output "${outputId}" is owned by its capture lease and is not served by \`vibes logs\`.`, 'INVALID_INPUT', {
37
+ reason: 'output-lease-owned', retryable: false, details: { kind: 'logging/output', id: outputId },
38
+ recoveryHint: 'Read the capture file in the global log directory directly (see `vibes docs show logging`).'
39
+ });
40
+ throw new CapabilityError(`Output "${outputId}" is a remote output: it ships entries elsewhere, so \`vibes logs\` has nothing local to read, tail or rotate.`, 'INVALID_INPUT', {
41
+ reason: 'output-not-readable', retryable: false, details: { kind: 'logging/output', id: outputId, storage: 'remote' },
42
+ recoveryHint: 'Read the entries where they land (the collector behind the output\'s endpoint).'
43
+ });
44
+ }
45
+ /**
46
+ * Resolve an output by ID, or return available options on failure.
47
+ *
48
+ * Only a confirmed absence of that output id is `NOT_FOUND`, listing every
49
+ * enabled output id and suggesting `vibes logs list`. Any other failure to
50
+ * resolve it propagates typed (`CapabilityError.from`), its cause kept.
51
+ */
52
+ export async function resolveOutputOrList(runtime, requestedId) {
53
+ const outputId = requestedId ?? 'file';
54
+ refuseUnservable(runtime, outputId);
55
+ try {
56
+ return await runtime
57
+ .query('logging/output')
58
+ .withId(outputId)
59
+ .resolve();
60
+ }
61
+ catch (caught) {
62
+ const error = CapabilityError.from(CaughtFailureSchema.parse(caught));
63
+ if (!CapabilityError.isAbsenceOf(error, 'logging/output', outputId))
64
+ throw error;
65
+ // Confirmed absence gets the list of outputs a `vibes logs` command can serve (never a lease-owned or remote one).
66
+ const availableIds = servableOutputDescriptors(runtime).map((d) => d.id);
67
+ const availableList = availableIds.length > 0 ? availableIds.join(', ') : '(none enabled)';
68
+ const message = `No output "${outputId}". Available: ${availableList}.` +
69
+ (availableIds.length > 0 ? ' Run `vibes logs list` for details.' : '');
70
+ throw new CapabilityError(message, 'NOT_FOUND', {
71
+ reason: 'not-registered', details: { kind: 'logging/output', id: outputId, available: availableIds }, cause: error
72
+ });
73
+ }
74
+ }
75
+ //# sourceMappingURL=resolve-output.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"resolve-output.js","sourceRoot":"","sources":["../../src/cli/resolve-output.ts"],"names":[],"mappings":"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"}