@vibesdotdev/logging 0.0.1

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 (393) hide show
  1. package/README.md +80 -0
  2. package/SPEC.md +65 -0
  3. package/dist/audit/audit.descriptor.d.ts +11 -0
  4. package/dist/audit/audit.descriptor.d.ts.map +1 -0
  5. package/dist/audit/audit.descriptor.js +40 -0
  6. package/dist/audit/audit.descriptor.js.map +1 -0
  7. package/dist/audit/audit.storage.schema.d.ts +79 -0
  8. package/dist/audit/audit.storage.schema.d.ts.map +1 -0
  9. package/dist/audit/audit.storage.schema.js +33 -0
  10. package/dist/audit/audit.storage.schema.js.map +1 -0
  11. package/dist/audit/index.d.ts +2 -0
  12. package/dist/audit/index.d.ts.map +1 -0
  13. package/dist/audit/index.js +2 -0
  14. package/dist/audit/index.js.map +1 -0
  15. package/dist/cli/logs.descriptor.d.ts +9 -0
  16. package/dist/cli/logs.descriptor.d.ts.map +1 -0
  17. package/dist/cli/logs.descriptor.js +16 -0
  18. package/dist/cli/logs.descriptor.js.map +1 -0
  19. package/dist/cli/logs.list.descriptor.d.ts +9 -0
  20. package/dist/cli/logs.list.descriptor.d.ts.map +1 -0
  21. package/dist/cli/logs.list.descriptor.js +23 -0
  22. package/dist/cli/logs.list.descriptor.js.map +1 -0
  23. package/dist/cli/logs.list.impl.d.ts +13 -0
  24. package/dist/cli/logs.list.impl.d.ts.map +1 -0
  25. package/dist/cli/logs.list.impl.js +81 -0
  26. package/dist/cli/logs.list.impl.js.map +1 -0
  27. package/dist/cli/logs.rotate.descriptor.d.ts +9 -0
  28. package/dist/cli/logs.rotate.descriptor.d.ts.map +1 -0
  29. package/dist/cli/logs.rotate.descriptor.js +34 -0
  30. package/dist/cli/logs.rotate.descriptor.js.map +1 -0
  31. package/dist/cli/logs.rotate.impl.d.ts +17 -0
  32. package/dist/cli/logs.rotate.impl.d.ts.map +1 -0
  33. package/dist/cli/logs.rotate.impl.js +48 -0
  34. package/dist/cli/logs.rotate.impl.js.map +1 -0
  35. package/dist/cli/logs.search.descriptor.d.ts +9 -0
  36. package/dist/cli/logs.search.descriptor.d.ts.map +1 -0
  37. package/dist/cli/logs.search.descriptor.js +55 -0
  38. package/dist/cli/logs.search.descriptor.js.map +1 -0
  39. package/dist/cli/logs.search.impl.d.ts +22 -0
  40. package/dist/cli/logs.search.impl.d.ts.map +1 -0
  41. package/dist/cli/logs.search.impl.js +145 -0
  42. package/dist/cli/logs.search.impl.js.map +1 -0
  43. package/dist/cli/logs.tail.descriptor.d.ts +9 -0
  44. package/dist/cli/logs.tail.descriptor.d.ts.map +1 -0
  45. package/dist/cli/logs.tail.descriptor.js +43 -0
  46. package/dist/cli/logs.tail.descriptor.js.map +1 -0
  47. package/dist/cli/logs.tail.impl.d.ts +19 -0
  48. package/dist/cli/logs.tail.impl.d.ts.map +1 -0
  49. package/dist/cli/logs.tail.impl.js +78 -0
  50. package/dist/cli/logs.tail.impl.js.map +1 -0
  51. package/dist/cli/logs.view.descriptor.d.ts +9 -0
  52. package/dist/cli/logs.view.descriptor.d.ts.map +1 -0
  53. package/dist/cli/logs.view.descriptor.js +51 -0
  54. package/dist/cli/logs.view.descriptor.js.map +1 -0
  55. package/dist/cli/logs.view.impl.d.ts +21 -0
  56. package/dist/cli/logs.view.impl.d.ts.map +1 -0
  57. package/dist/cli/logs.view.impl.js +85 -0
  58. package/dist/cli/logs.view.impl.js.map +1 -0
  59. package/dist/cli/types.d.ts +57 -0
  60. package/dist/cli/types.d.ts.map +1 -0
  61. package/dist/cli/types.js +9 -0
  62. package/dist/cli/types.js.map +1 -0
  63. package/dist/contexts/audit.d.ts +34 -0
  64. package/dist/contexts/audit.d.ts.map +1 -0
  65. package/dist/contexts/audit.js +13 -0
  66. package/dist/contexts/audit.js.map +1 -0
  67. package/dist/contexts/fallback-logger.d.ts +3 -0
  68. package/dist/contexts/fallback-logger.d.ts.map +1 -0
  69. package/dist/contexts/fallback-logger.js +67 -0
  70. package/dist/contexts/fallback-logger.js.map +1 -0
  71. package/dist/contexts/index.d.ts +8 -0
  72. package/dist/contexts/index.d.ts.map +1 -0
  73. package/dist/contexts/index.js +9 -0
  74. package/dist/contexts/index.js.map +1 -0
  75. package/dist/contexts/logger.d.ts +26 -0
  76. package/dist/contexts/logger.d.ts.map +1 -0
  77. package/dist/contexts/logger.js +88 -0
  78. package/dist/contexts/logger.js.map +1 -0
  79. package/dist/core/index.d.ts +9 -0
  80. package/dist/core/index.d.ts.map +1 -0
  81. package/dist/core/index.js +10 -0
  82. package/dist/core/index.js.map +1 -0
  83. package/dist/core/logger.d.ts +3 -0
  84. package/dist/core/logger.d.ts.map +1 -0
  85. package/dist/core/logger.js +118 -0
  86. package/dist/core/logger.js.map +1 -0
  87. package/dist/core/namespace.d.ts +69 -0
  88. package/dist/core/namespace.d.ts.map +1 -0
  89. package/dist/core/namespace.js +136 -0
  90. package/dist/core/namespace.js.map +1 -0
  91. package/dist/core/parsing.d.ts +3 -0
  92. package/dist/core/parsing.d.ts.map +1 -0
  93. package/dist/core/parsing.js +25 -0
  94. package/dist/core/parsing.js.map +1 -0
  95. package/dist/core/types.d.ts +69 -0
  96. package/dist/core/types.d.ts.map +1 -0
  97. package/dist/core/types.js +7 -0
  98. package/dist/core/types.js.map +1 -0
  99. package/dist/docs/levels.docs.descriptor.d.ts +4 -0
  100. package/dist/docs/levels.docs.descriptor.d.ts.map +1 -0
  101. package/dist/docs/levels.docs.descriptor.js +342 -0
  102. package/dist/docs/levels.docs.descriptor.js.map +1 -0
  103. package/dist/docs/structured.docs.descriptor.d.ts +4 -0
  104. package/dist/docs/structured.docs.descriptor.d.ts.map +1 -0
  105. package/dist/docs/structured.docs.descriptor.js +442 -0
  106. package/dist/docs/structured.docs.descriptor.js.map +1 -0
  107. package/dist/docs/transports.docs.descriptor.d.ts +4 -0
  108. package/dist/docs/transports.docs.descriptor.d.ts.map +1 -0
  109. package/dist/docs/transports.docs.descriptor.js +426 -0
  110. package/dist/docs/transports.docs.descriptor.js.map +1 -0
  111. package/dist/formatters/index.d.ts +7 -0
  112. package/dist/formatters/index.d.ts.map +1 -0
  113. package/dist/formatters/index.js +8 -0
  114. package/dist/formatters/index.js.map +1 -0
  115. package/dist/formatters/json/json.formatters.descriptor.d.ts +9 -0
  116. package/dist/formatters/json/json.formatters.descriptor.d.ts.map +1 -0
  117. package/dist/formatters/json/json.formatters.descriptor.js +22 -0
  118. package/dist/formatters/json/json.formatters.descriptor.js.map +1 -0
  119. package/dist/formatters/json/json.impl.d.ts +22 -0
  120. package/dist/formatters/json/json.impl.d.ts.map +1 -0
  121. package/dist/formatters/json/json.impl.js +32 -0
  122. package/dist/formatters/json/json.impl.js.map +1 -0
  123. package/dist/formatters/json5/json5.descriptor.d.ts +9 -0
  124. package/dist/formatters/json5/json5.descriptor.d.ts.map +1 -0
  125. package/dist/formatters/json5/json5.descriptor.js +22 -0
  126. package/dist/formatters/json5/json5.descriptor.js.map +1 -0
  127. package/dist/formatters/json5/json5.impl.d.ts +23 -0
  128. package/dist/formatters/json5/json5.impl.d.ts.map +1 -0
  129. package/dist/formatters/json5/json5.impl.js +34 -0
  130. package/dist/formatters/json5/json5.impl.js.map +1 -0
  131. package/dist/formatters/jsonl/jsonl.descriptor.d.ts +10 -0
  132. package/dist/formatters/jsonl/jsonl.descriptor.d.ts.map +1 -0
  133. package/dist/formatters/jsonl/jsonl.descriptor.js +23 -0
  134. package/dist/formatters/jsonl/jsonl.descriptor.js.map +1 -0
  135. package/dist/formatters/jsonl/jsonl.impl.d.ts +21 -0
  136. package/dist/formatters/jsonl/jsonl.impl.d.ts.map +1 -0
  137. package/dist/formatters/jsonl/jsonl.impl.js +30 -0
  138. package/dist/formatters/jsonl/jsonl.impl.js.map +1 -0
  139. package/dist/formatters/pretty/pretty.descriptor.d.ts +9 -0
  140. package/dist/formatters/pretty/pretty.descriptor.d.ts.map +1 -0
  141. package/dist/formatters/pretty/pretty.descriptor.js +23 -0
  142. package/dist/formatters/pretty/pretty.descriptor.js.map +1 -0
  143. package/dist/formatters/pretty/pretty.impl.cli.d.ts +23 -0
  144. package/dist/formatters/pretty/pretty.impl.cli.d.ts.map +1 -0
  145. package/dist/formatters/pretty/pretty.impl.cli.js +81 -0
  146. package/dist/formatters/pretty/pretty.impl.cli.js.map +1 -0
  147. package/dist/index.d.ts +67 -0
  148. package/dist/index.d.ts.map +1 -0
  149. package/dist/index.js +97 -0
  150. package/dist/index.js.map +1 -0
  151. package/dist/kinds/audit.d.ts +85 -0
  152. package/dist/kinds/audit.d.ts.map +1 -0
  153. package/dist/kinds/audit.js +71 -0
  154. package/dist/kinds/audit.js.map +1 -0
  155. package/dist/kinds/contexts.d.ts +21 -0
  156. package/dist/kinds/contexts.d.ts.map +1 -0
  157. package/dist/kinds/contexts.js +8 -0
  158. package/dist/kinds/contexts.js.map +1 -0
  159. package/dist/kinds/formatter.d.ts +42 -0
  160. package/dist/kinds/formatter.d.ts.map +1 -0
  161. package/dist/kinds/formatter.js +69 -0
  162. package/dist/kinds/formatter.js.map +1 -0
  163. package/dist/kinds/index.d.ts +13 -0
  164. package/dist/kinds/index.d.ts.map +1 -0
  165. package/dist/kinds/index.js +13 -0
  166. package/dist/kinds/index.js.map +1 -0
  167. package/dist/kinds/logger.contracts.d.ts +16 -0
  168. package/dist/kinds/logger.contracts.d.ts.map +1 -0
  169. package/dist/kinds/logger.contracts.js +9 -0
  170. package/dist/kinds/logger.contracts.js.map +1 -0
  171. package/dist/kinds/logger.d.ts +15 -0
  172. package/dist/kinds/logger.d.ts.map +1 -0
  173. package/dist/kinds/logger.impl.d.ts +40 -0
  174. package/dist/kinds/logger.impl.d.ts.map +1 -0
  175. package/dist/kinds/logger.impl.js +139 -0
  176. package/dist/kinds/logger.impl.js.map +1 -0
  177. package/dist/kinds/logger.js +28 -0
  178. package/dist/kinds/logger.js.map +1 -0
  179. package/dist/kinds/logger.utils.d.ts +15 -0
  180. package/dist/kinds/logger.utils.d.ts.map +1 -0
  181. package/dist/kinds/logger.utils.js +55 -0
  182. package/dist/kinds/logger.utils.js.map +1 -0
  183. package/dist/kinds/output.contracts.d.ts +50 -0
  184. package/dist/kinds/output.contracts.d.ts.map +1 -0
  185. package/dist/kinds/output.contracts.js +10 -0
  186. package/dist/kinds/output.contracts.js.map +1 -0
  187. package/dist/kinds/output.d.ts +20 -0
  188. package/dist/kinds/output.d.ts.map +1 -0
  189. package/dist/kinds/output.impl.d.ts +22 -0
  190. package/dist/kinds/output.impl.d.ts.map +1 -0
  191. package/dist/kinds/output.impl.js +84 -0
  192. package/dist/kinds/output.impl.js.map +1 -0
  193. package/dist/kinds/output.js +29 -0
  194. package/dist/kinds/output.js.map +1 -0
  195. package/dist/kinds/output.types.d.ts +92 -0
  196. package/dist/kinds/output.types.d.ts.map +1 -0
  197. package/dist/kinds/output.types.js +7 -0
  198. package/dist/kinds/output.types.js.map +1 -0
  199. package/dist/kinds/sink.d.ts +40 -0
  200. package/dist/kinds/sink.d.ts.map +1 -0
  201. package/dist/kinds/sink.js +61 -0
  202. package/dist/kinds/sink.js.map +1 -0
  203. package/dist/logger.context.descriptor.d.ts +21 -0
  204. package/dist/logger.context.descriptor.d.ts.map +1 -0
  205. package/dist/logger.context.descriptor.js +12 -0
  206. package/dist/logger.context.descriptor.js.map +1 -0
  207. package/dist/logging.cli.plugin.d.ts +20 -0
  208. package/dist/logging.cli.plugin.d.ts.map +1 -0
  209. package/dist/logging.cli.plugin.js +39 -0
  210. package/dist/logging.cli.plugin.js.map +1 -0
  211. package/dist/logging.plugin.d.ts +16 -0
  212. package/dist/logging.plugin.d.ts.map +1 -0
  213. package/dist/logging.plugin.js +83 -0
  214. package/dist/logging.plugin.js.map +1 -0
  215. package/dist/outputs/index.d.ts +7 -0
  216. package/dist/outputs/index.d.ts.map +1 -0
  217. package/dist/outputs/index.js +8 -0
  218. package/dist/outputs/index.js.map +1 -0
  219. package/dist/outputs/remote/remote.descriptor.d.ts +10 -0
  220. package/dist/outputs/remote/remote.descriptor.d.ts.map +1 -0
  221. package/dist/outputs/remote/remote.descriptor.js +24 -0
  222. package/dist/outputs/remote/remote.descriptor.js.map +1 -0
  223. package/dist/outputs/remote/remote.impl.d.ts +50 -0
  224. package/dist/outputs/remote/remote.impl.d.ts.map +1 -0
  225. package/dist/outputs/remote/remote.impl.js +178 -0
  226. package/dist/outputs/remote/remote.impl.js.map +1 -0
  227. package/dist/outputs.context.descriptor.d.ts +19 -0
  228. package/dist/outputs.context.descriptor.d.ts.map +1 -0
  229. package/dist/outputs.context.descriptor.js +9 -0
  230. package/dist/outputs.context.descriptor.js.map +1 -0
  231. package/dist/outputs.context.impl.d.ts +9 -0
  232. package/dist/outputs.context.impl.d.ts.map +1 -0
  233. package/dist/outputs.context.impl.js +18 -0
  234. package/dist/outputs.context.impl.js.map +1 -0
  235. package/dist/paths.d.ts +8 -0
  236. package/dist/paths.d.ts.map +1 -0
  237. package/dist/paths.js +10 -0
  238. package/dist/paths.js.map +1 -0
  239. package/dist/schemas/audit.d.ts +133 -0
  240. package/dist/schemas/audit.d.ts.map +1 -0
  241. package/dist/schemas/audit.js +80 -0
  242. package/dist/schemas/audit.js.map +1 -0
  243. package/dist/schemas/entry.d.ts +74 -0
  244. package/dist/schemas/entry.d.ts.map +1 -0
  245. package/dist/schemas/entry.js +62 -0
  246. package/dist/schemas/entry.js.map +1 -0
  247. package/dist/schemas/formatter.d.ts +46 -0
  248. package/dist/schemas/formatter.d.ts.map +1 -0
  249. package/dist/schemas/formatter.js +31 -0
  250. package/dist/schemas/formatter.js.map +1 -0
  251. package/dist/schemas/index.d.ts +12 -0
  252. package/dist/schemas/index.d.ts.map +1 -0
  253. package/dist/schemas/index.js +18 -0
  254. package/dist/schemas/index.js.map +1 -0
  255. package/dist/schemas/logger.d.ts +48 -0
  256. package/dist/schemas/logger.d.ts.map +1 -0
  257. package/dist/schemas/logger.js +27 -0
  258. package/dist/schemas/logger.js.map +1 -0
  259. package/dist/schemas/output.d.ts +68 -0
  260. package/dist/schemas/output.d.ts.map +1 -0
  261. package/dist/schemas/output.js +48 -0
  262. package/dist/schemas/output.js.map +1 -0
  263. package/dist/schemas/sink.d.ts +52 -0
  264. package/dist/schemas/sink.d.ts.map +1 -0
  265. package/dist/schemas/sink.js +30 -0
  266. package/dist/schemas/sink.js.map +1 -0
  267. package/dist/sinks/buffer/buffer.descriptor.d.ts +4 -0
  268. package/dist/sinks/buffer/buffer.descriptor.d.ts.map +1 -0
  269. package/dist/sinks/buffer/buffer.descriptor.js +11 -0
  270. package/dist/sinks/buffer/buffer.descriptor.js.map +1 -0
  271. package/dist/sinks/buffer/buffer.impl.cli.d.ts +21 -0
  272. package/dist/sinks/buffer/buffer.impl.cli.d.ts.map +1 -0
  273. package/dist/sinks/buffer/buffer.impl.cli.js +34 -0
  274. package/dist/sinks/buffer/buffer.impl.cli.js.map +1 -0
  275. package/dist/sinks/console/console.descriptor.d.ts +10 -0
  276. package/dist/sinks/console/console.descriptor.d.ts.map +1 -0
  277. package/dist/sinks/console/console.descriptor.js +17 -0
  278. package/dist/sinks/console/console.descriptor.js.map +1 -0
  279. package/dist/sinks/console/console.impl.browser.d.ts +21 -0
  280. package/dist/sinks/console/console.impl.browser.d.ts.map +1 -0
  281. package/dist/sinks/console/console.impl.browser.js +57 -0
  282. package/dist/sinks/console/console.impl.browser.js.map +1 -0
  283. package/dist/sinks/console/console.impl.cli.d.ts +21 -0
  284. package/dist/sinks/console/console.impl.cli.d.ts.map +1 -0
  285. package/dist/sinks/console/console.impl.cli.js +57 -0
  286. package/dist/sinks/console/console.impl.cli.js.map +1 -0
  287. package/dist/sinks/index.d.ts +8 -0
  288. package/dist/sinks/index.d.ts.map +1 -0
  289. package/dist/sinks/index.js +8 -0
  290. package/dist/sinks/index.js.map +1 -0
  291. package/dist/sinks/memory/memory.descriptor.d.ts +10 -0
  292. package/dist/sinks/memory/memory.descriptor.d.ts.map +1 -0
  293. package/dist/sinks/memory/memory.descriptor.js +17 -0
  294. package/dist/sinks/memory/memory.descriptor.js.map +1 -0
  295. package/dist/sinks/memory/memory.impl.d.ts +50 -0
  296. package/dist/sinks/memory/memory.impl.d.ts.map +1 -0
  297. package/dist/sinks/memory/memory.impl.js +88 -0
  298. package/dist/sinks/memory/memory.impl.js.map +1 -0
  299. package/dist/sinks/stdout/stdout.descriptor.d.ts +4 -0
  300. package/dist/sinks/stdout/stdout.descriptor.d.ts.map +1 -0
  301. package/dist/sinks/stdout/stdout.descriptor.js +11 -0
  302. package/dist/sinks/stdout/stdout.descriptor.js.map +1 -0
  303. package/dist/sinks/stdout/stdout.impl.cli.d.ts +10 -0
  304. package/dist/sinks/stdout/stdout.impl.cli.d.ts.map +1 -0
  305. package/dist/sinks/stdout/stdout.impl.cli.js +21 -0
  306. package/dist/sinks/stdout/stdout.impl.cli.js.map +1 -0
  307. package/dist/sinks.context.descriptor.d.ts +19 -0
  308. package/dist/sinks.context.descriptor.d.ts.map +1 -0
  309. package/dist/sinks.context.descriptor.js +9 -0
  310. package/dist/sinks.context.descriptor.js.map +1 -0
  311. package/dist/sinks.context.impl.d.ts +9 -0
  312. package/dist/sinks.context.impl.d.ts.map +1 -0
  313. package/dist/sinks.context.impl.js +18 -0
  314. package/dist/sinks.context.impl.js.map +1 -0
  315. package/package.json +331 -0
  316. package/src/audit/audit.descriptor.ts +45 -0
  317. package/src/audit/audit.storage.schema.ts +57 -0
  318. package/src/audit/index.ts +8 -0
  319. package/src/cli/logs.descriptor.ts +19 -0
  320. package/src/cli/logs.list.descriptor.ts +28 -0
  321. package/src/cli/logs.list.impl.ts +93 -0
  322. package/src/cli/logs.rotate.descriptor.ts +40 -0
  323. package/src/cli/logs.rotate.impl.ts +61 -0
  324. package/src/cli/logs.search.descriptor.ts +61 -0
  325. package/src/cli/logs.search.impl.ts +173 -0
  326. package/src/cli/logs.tail.descriptor.ts +49 -0
  327. package/src/cli/logs.tail.impl.ts +105 -0
  328. package/src/cli/logs.view.descriptor.ts +57 -0
  329. package/src/cli/logs.view.impl.ts +108 -0
  330. package/src/cli/types.ts +59 -0
  331. package/src/contexts/audit.ts +36 -0
  332. package/src/contexts/fallback-logger.ts +80 -0
  333. package/src/contexts/index.ts +23 -0
  334. package/src/contexts/logger.ts +119 -0
  335. package/src/core/index.ts +32 -0
  336. package/src/core/logger.ts +150 -0
  337. package/src/core/namespace.ts +195 -0
  338. package/src/core/parsing.ts +21 -0
  339. package/src/core/types.ts +82 -0
  340. package/src/docs/levels.docs.descriptor.ts +344 -0
  341. package/src/docs/structured.docs.descriptor.ts +444 -0
  342. package/src/docs/transports.docs.descriptor.ts +428 -0
  343. package/src/formatters/index.ts +6 -0
  344. package/src/formatters/json/json.formatters.descriptor.ts +25 -0
  345. package/src/formatters/json/json.impl.ts +41 -0
  346. package/src/formatters/json5/json5.descriptor.ts +25 -0
  347. package/src/formatters/json5/json5.impl.ts +43 -0
  348. package/src/formatters/jsonl/jsonl.descriptor.ts +26 -0
  349. package/src/formatters/jsonl/jsonl.impl.ts +39 -0
  350. package/src/formatters/pretty/pretty.descriptor.ts +26 -0
  351. package/src/formatters/pretty/pretty.impl.cli.ts +101 -0
  352. package/src/index.ts +190 -0
  353. package/src/kinds/audit.ts +169 -0
  354. package/src/kinds/contexts.ts +22 -0
  355. package/src/kinds/formatter.ts +117 -0
  356. package/src/kinds/index.ts +25 -0
  357. package/src/kinds/logger.contracts.ts +17 -0
  358. package/src/kinds/logger.impl.ts +206 -0
  359. package/src/kinds/logger.ts +46 -0
  360. package/src/kinds/logger.utils.ts +91 -0
  361. package/src/kinds/output.contracts.ts +54 -0
  362. package/src/kinds/output.impl.ts +118 -0
  363. package/src/kinds/output.ts +59 -0
  364. package/src/kinds/output.types.ts +105 -0
  365. package/src/kinds/sink.ts +100 -0
  366. package/src/logger.context.descriptor.ts +13 -0
  367. package/src/logging.cli.plugin.ts +43 -0
  368. package/src/logging.plugin.ts +93 -0
  369. package/src/outputs/index.ts +6 -0
  370. package/src/outputs/remote/remote.descriptor.ts +27 -0
  371. package/src/outputs/remote/remote.impl.ts +218 -0
  372. package/src/outputs.context.descriptor.ts +10 -0
  373. package/src/outputs.context.impl.ts +30 -0
  374. package/src/paths.ts +10 -0
  375. package/src/schemas/audit.ts +98 -0
  376. package/src/schemas/entry.ts +88 -0
  377. package/src/schemas/formatter.ts +37 -0
  378. package/src/schemas/index.ts +80 -0
  379. package/src/schemas/logger.ts +38 -0
  380. package/src/schemas/output.ts +62 -0
  381. package/src/schemas/sink.ts +39 -0
  382. package/src/sinks/buffer/buffer.descriptor.ts +13 -0
  383. package/src/sinks/buffer/buffer.impl.cli.ts +49 -0
  384. package/src/sinks/console/console.descriptor.ts +20 -0
  385. package/src/sinks/console/console.impl.browser.ts +69 -0
  386. package/src/sinks/console/console.impl.cli.ts +71 -0
  387. package/src/sinks/index.ts +8 -0
  388. package/src/sinks/memory/memory.descriptor.ts +20 -0
  389. package/src/sinks/memory/memory.impl.ts +119 -0
  390. package/src/sinks/stdout/stdout.descriptor.ts +13 -0
  391. package/src/sinks/stdout/stdout.impl.cli.ts +27 -0
  392. package/src/sinks.context.descriptor.ts +10 -0
  393. package/src/sinks.context.impl.ts +30 -0
@@ -0,0 +1,61 @@
1
+ /**
2
+ * Logs Search CLI Command Descriptor
3
+ *
4
+ * Search log entries by pattern.
5
+ */
6
+
7
+ import type { CLICommandAssetDescriptor } from './types.ts';
8
+
9
+ const descriptor: CLICommandAssetDescriptor = {
10
+ kind: 'cli/command',
11
+ id: 'logs.search',
12
+ name: 'search',
13
+ description: 'Search log entries by pattern',
14
+ group: 'logs',
15
+
16
+ arguments: [
17
+ {
18
+ name: 'pattern',
19
+ description: 'Search pattern (regex supported)',
20
+ required: true
21
+ }
22
+ ],
23
+
24
+ options: [
25
+ {
26
+ flags: '-o, --output <id>',
27
+ description: 'Search in specific output (default: all)'
28
+ },
29
+ {
30
+ flags: '-n, --max <count>',
31
+ description: 'Maximum results to return',
32
+ default: '100'
33
+ },
34
+ {
35
+ flags: '-i, --ignore-case',
36
+ description: 'Case-insensitive search'
37
+ },
38
+ {
39
+ flags: '--level <level>',
40
+ description: 'Filter by log level'
41
+ },
42
+ {
43
+ flags: '--since <time>',
44
+ description: 'Only show entries since (e.g., 1h, 30m, 2024-01-01)'
45
+ },
46
+ {
47
+ flags: '--json',
48
+ description: 'Output as JSON'
49
+ },
50
+ {
51
+ flags: '-C, --context <lines>',
52
+ description: 'Show context lines around matches'
53
+ }
54
+ ],
55
+
56
+ surfaces: ['cli'],
57
+ hardware: ['consumer'],
58
+ enabled: true
59
+ };
60
+
61
+ export default descriptor;
@@ -0,0 +1,173 @@
1
+ /**
2
+ * Logs Search CLI Command Implementation
3
+ *
4
+ * Search log entries by pattern.
5
+ */
6
+
7
+ import { getVibesRuntime } from '@vibesdotdev/runtime';
8
+ import type { OutputDescriptor } from '../schemas/output.ts';
9
+ import type { OutputImplementation } from '../kinds/output.ts';
10
+
11
+ interface SearchArgs {
12
+ pattern: string;
13
+ }
14
+
15
+ interface SearchOptions {
16
+ output?: string;
17
+ max?: string;
18
+ ignoreCase?: boolean;
19
+ level?: string;
20
+ since?: string;
21
+ json?: boolean;
22
+ context?: string;
23
+ }
24
+
25
+ // Color codes for log levels
26
+ const LEVEL_COLORS: Record<string, string> = {
27
+ debug: '\x1b[90m',
28
+ info: '\x1b[36m',
29
+ warn: '\x1b[33m',
30
+ error: '\x1b[31m'
31
+ };
32
+ const RESET = '\x1b[0m';
33
+ const HIGHLIGHT = '\x1b[43m\x1b[30m'; // Yellow background, black text
34
+
35
+ function formatLine(line: string, pattern: RegExp): string {
36
+ try {
37
+ const entry = JSON.parse(line);
38
+ const level = entry.level ?? 'info';
39
+ const color = LEVEL_COLORS[level] ?? '';
40
+ const timestamp = entry.timestamp?.slice(0, 19) ?? '';
41
+ const namespace = entry.namespace ?? '';
42
+ const message = entry.message ?? '';
43
+
44
+ // Highlight matches
45
+ const highlightedMessage = message.replace(
46
+ pattern,
47
+ (match: string) => `${HIGHLIGHT}${match}${RESET}`
48
+ );
49
+
50
+ return `${color}[${timestamp}] [${level.toUpperCase().padEnd(5)}] [${namespace}]${RESET} ${highlightedMessage}`;
51
+ } catch {
52
+ return line.replace(pattern, (match: string) => `${HIGHLIGHT}${match}${RESET}`);
53
+ }
54
+ }
55
+
56
+ function matchesLevel(line: string, levelFilter: string): boolean {
57
+ try {
58
+ const entry = JSON.parse(line);
59
+ return entry.level === levelFilter;
60
+ } catch {
61
+ return true;
62
+ }
63
+ }
64
+
65
+ function matchesSince(line: string, sinceMs: number): boolean {
66
+ try {
67
+ const entry = JSON.parse(line);
68
+ if (!entry.timestamp) return true;
69
+ const entryTime = new Date(entry.timestamp).getTime();
70
+ return entryTime >= sinceMs;
71
+ } catch {
72
+ return true;
73
+ }
74
+ }
75
+
76
+ function parseSince(since: string): number {
77
+ // Handle relative time (1h, 30m, 2d)
78
+ const match = since.match(/^(\d+)([smhd])$/);
79
+ if (match) {
80
+ const value = parseInt(match[1], 10);
81
+ const unit = match[2];
82
+ const multipliers: Record<string, number> = {
83
+ s: 1000,
84
+ m: 60 * 1000,
85
+ h: 60 * 60 * 1000,
86
+ d: 24 * 60 * 60 * 1000
87
+ };
88
+ return Date.now() - value * multipliers[unit];
89
+ }
90
+
91
+ // Try to parse as date
92
+ const date = new Date(since);
93
+ if (!isNaN(date.getTime())) {
94
+ return date.getTime();
95
+ }
96
+
97
+ return 0;
98
+ }
99
+
100
+ export default {
101
+ async execute(args: SearchArgs, opts: SearchOptions): Promise<void> {
102
+ const runtime = getVibesRuntime();
103
+ const maxResults = opts.max ? parseInt(opts.max, 10) : 100;
104
+ const sinceMs = opts.since ? parseSince(opts.since) : 0;
105
+
106
+ const flags = opts.ignoreCase ? 'gi' : 'g';
107
+ const pattern = new RegExp(args.pattern, flags);
108
+
109
+ // Get outputs to search
110
+ let outputIds: string[];
111
+ if (opts.output) {
112
+ outputIds = [opts.output];
113
+ } else {
114
+ const descriptors = runtime
115
+ .query<OutputDescriptor, OutputImplementation>('logging/output')
116
+ .enabled()
117
+ .descriptors();
118
+ outputIds = descriptors.map((d) => d.id);
119
+ }
120
+
121
+ const results: Array<{ output: string; line: string }> = [];
122
+
123
+ for (const outputId of outputIds) {
124
+ try {
125
+ const output = await runtime
126
+ .query<OutputDescriptor, OutputImplementation>('logging/output')
127
+ .withId(outputId)
128
+ .resolve();
129
+
130
+ // Read all available lines (up to a reasonable limit)
131
+ const lines = await output.read({ lines: 10000 });
132
+
133
+ for (const line of lines) {
134
+ // Apply filters
135
+ if (opts.level && !matchesLevel(line, opts.level)) continue;
136
+ if (sinceMs && !matchesSince(line, sinceMs)) continue;
137
+ if (!pattern.test(line)) continue;
138
+
139
+ results.push({ output: outputId, line });
140
+ if (results.length >= maxResults) break;
141
+ }
142
+ } catch {
143
+ // Skip outputs that can't be read
144
+ }
145
+
146
+ if (results.length >= maxResults) break;
147
+ }
148
+
149
+ if (results.length === 0) {
150
+ console.log('No matching entries found.');
151
+ return;
152
+ }
153
+
154
+ if (opts.json) {
155
+ const parsed = results.map(({ output, line }) => {
156
+ try {
157
+ return { output, ...JSON.parse(line) };
158
+ } catch {
159
+ return { output, raw: line };
160
+ }
161
+ });
162
+ console.log(JSON.stringify(parsed, null, 2));
163
+ return;
164
+ }
165
+
166
+ console.log(`\n🔍 Found ${results.length} matches\n`);
167
+ for (const { output, line } of results) {
168
+ const formatted = formatLine(line, pattern);
169
+ console.log(`[${output}] ${formatted}`);
170
+ }
171
+ console.log('');
172
+ }
173
+ };
@@ -0,0 +1,49 @@
1
+ /**
2
+ * Logs Tail CLI Command Descriptor
3
+ *
4
+ * Follows a log output in real-time.
5
+ */
6
+
7
+ import type { CLICommandAssetDescriptor } from './types.ts';
8
+
9
+ const descriptor: CLICommandAssetDescriptor = {
10
+ kind: 'cli/command',
11
+ id: 'logs.tail',
12
+ name: 'tail',
13
+ description: 'Follow a log output in real-time',
14
+ group: 'logs',
15
+
16
+ arguments: [
17
+ {
18
+ name: 'output',
19
+ description: 'Output ID to tail (e.g., mcp-server, file)',
20
+ required: false
21
+ }
22
+ ],
23
+
24
+ options: [
25
+ {
26
+ flags: '-n, --lines <count>',
27
+ description: 'Number of initial lines to show',
28
+ default: '10'
29
+ },
30
+ {
31
+ flags: '-f, --filter <pattern>',
32
+ description: 'Filter lines by pattern'
33
+ },
34
+ {
35
+ flags: '-i, --ignore-case',
36
+ description: 'Case-insensitive filtering'
37
+ },
38
+ {
39
+ flags: '--level <level>',
40
+ description: 'Filter by log level (debug, info, warn, error)'
41
+ }
42
+ ],
43
+
44
+ surfaces: ['cli'],
45
+ hardware: ['consumer'],
46
+ enabled: true
47
+ };
48
+
49
+ export default descriptor;
@@ -0,0 +1,105 @@
1
+ /**
2
+ * Logs Tail CLI Command Implementation
3
+ *
4
+ * Follows a log output in real-time.
5
+ */
6
+
7
+ import { getVibesRuntime } from '@vibesdotdev/runtime';
8
+ import type { OutputDescriptor } from '../schemas/output.ts';
9
+ import type { OutputImplementation, TailHandle } from '../kinds/output.ts';
10
+
11
+ interface TailArgs {
12
+ output?: string;
13
+ }
14
+
15
+ interface TailOptions {
16
+ lines?: string;
17
+ filter?: string;
18
+ ignoreCase?: boolean;
19
+ level?: string;
20
+ }
21
+
22
+ // Color codes for log levels
23
+ const LEVEL_COLORS: Record<string, string> = {
24
+ debug: '\x1b[90m', // gray
25
+ info: '\x1b[36m', // cyan
26
+ warn: '\x1b[33m', // yellow
27
+ error: '\x1b[31m' // red
28
+ };
29
+ const RESET = '\x1b[0m';
30
+
31
+ function formatLine(line: string, levelFilter?: string): string | null {
32
+ try {
33
+ const entry = JSON.parse(line);
34
+ const level = entry.level ?? 'info';
35
+
36
+ // Filter by level if specified
37
+ if (levelFilter && level !== levelFilter) {
38
+ return null;
39
+ }
40
+
41
+ const color = LEVEL_COLORS[level] ?? '';
42
+ const timestamp = entry.timestamp?.slice(11, 19) ?? '';
43
+ const namespace = entry.namespace ?? '';
44
+ const message = entry.message ?? '';
45
+
46
+ return `${color}[${timestamp}] [${level.toUpperCase().padEnd(5)}] [${namespace}]${RESET} ${message}`;
47
+ } catch {
48
+ // Not JSON, return as-is
49
+ return line;
50
+ }
51
+ }
52
+
53
+ export default {
54
+ async execute(args: TailArgs, opts: TailOptions): Promise<void> {
55
+ const runtime = getVibesRuntime();
56
+ const outputId = args.output ?? 'file';
57
+
58
+ let output: OutputImplementation;
59
+ try {
60
+ output = await runtime
61
+ .query<OutputDescriptor, OutputImplementation>('logging/output')
62
+ .withId(outputId)
63
+ .resolve();
64
+ } catch (err) {
65
+ console.error(
66
+ `Failed to resolve output '${outputId}': ${err instanceof Error ? err.message : String(err)}`
67
+ );
68
+ process.exit(1);
69
+ }
70
+
71
+ const lines = opts.lines ? parseInt(opts.lines, 10) : 10;
72
+
73
+ console.log(`\n📜 Tailing ${outputId} (Ctrl+C to stop)\n`);
74
+
75
+ let handle: TailHandle;
76
+ try {
77
+ handle = output.tail(
78
+ (line) => {
79
+ const formatted = formatLine(line, opts.level);
80
+ if (formatted !== null) {
81
+ console.log(formatted);
82
+ }
83
+ },
84
+ {
85
+ lines,
86
+ filter: opts.filter,
87
+ ignoreCase: opts.ignoreCase
88
+ }
89
+ );
90
+ } catch (err) {
91
+ console.error(`Failed to tail: ${err instanceof Error ? err.message : String(err)}`);
92
+ process.exit(1);
93
+ }
94
+
95
+ // Handle Ctrl+C gracefully
96
+ process.on('SIGINT', () => {
97
+ console.log('\n\nStopping...');
98
+ handle.close();
99
+ process.exit(0);
100
+ });
101
+
102
+ // Keep process alive
103
+ await new Promise(() => {});
104
+ }
105
+ };
@@ -0,0 +1,57 @@
1
+ /**
2
+ * Logs View CLI Command Descriptor
3
+ *
4
+ * View log entries from an output.
5
+ */
6
+
7
+ import type { CLICommandAssetDescriptor } from './types.ts';
8
+
9
+ const descriptor: CLICommandAssetDescriptor = {
10
+ kind: 'cli/command',
11
+ id: 'logs.view',
12
+ name: 'view',
13
+ description: 'View log entries from an output',
14
+ group: 'logs',
15
+
16
+ arguments: [
17
+ {
18
+ name: 'output',
19
+ description: 'Output ID to view (e.g., mcp-server, file)',
20
+ required: false
21
+ }
22
+ ],
23
+
24
+ options: [
25
+ {
26
+ flags: '-n, --lines <count>',
27
+ description: 'Number of lines to show',
28
+ default: '50'
29
+ },
30
+ {
31
+ flags: '--offset <count>',
32
+ description: 'Skip this many lines from the end'
33
+ },
34
+ {
35
+ flags: '-f, --filter <pattern>',
36
+ description: 'Filter lines by pattern'
37
+ },
38
+ {
39
+ flags: '-i, --ignore-case',
40
+ description: 'Case-insensitive filtering'
41
+ },
42
+ {
43
+ flags: '--json',
44
+ description: 'Output as JSON'
45
+ },
46
+ {
47
+ flags: '--raw',
48
+ description: 'Output raw log lines without formatting'
49
+ }
50
+ ],
51
+
52
+ surfaces: ['cli'],
53
+ hardware: ['consumer'],
54
+ enabled: true
55
+ };
56
+
57
+ export default descriptor;
@@ -0,0 +1,108 @@
1
+ /**
2
+ * Logs View CLI Command Implementation
3
+ *
4
+ * View log entries from an output.
5
+ */
6
+
7
+ import { getVibesRuntime } from '@vibesdotdev/runtime';
8
+ import type { OutputDescriptor } from '../schemas/output.ts';
9
+ import type { OutputImplementation } from '../kinds/output.ts';
10
+
11
+ interface ViewArgs {
12
+ output?: string;
13
+ }
14
+
15
+ interface ViewOptions {
16
+ lines?: string;
17
+ offset?: string;
18
+ filter?: string;
19
+ ignoreCase?: boolean;
20
+ json?: boolean;
21
+ raw?: boolean;
22
+ }
23
+
24
+ // Color codes for log levels
25
+ const LEVEL_COLORS: Record<string, string> = {
26
+ debug: '\x1b[90m', // gray
27
+ info: '\x1b[36m', // cyan
28
+ warn: '\x1b[33m', // yellow
29
+ error: '\x1b[31m' // red
30
+ };
31
+ const RESET = '\x1b[0m';
32
+
33
+ function formatLine(line: string, raw: boolean): string {
34
+ if (raw) return line;
35
+
36
+ try {
37
+ const entry = JSON.parse(line);
38
+ const level = entry.level ?? 'info';
39
+ const color = LEVEL_COLORS[level] ?? '';
40
+ const timestamp = entry.timestamp?.slice(0, 19) ?? '';
41
+ const namespace = entry.namespace ?? '';
42
+ const message = entry.message ?? '';
43
+ const context = entry.context ? ` ${JSON.stringify(entry.context)}` : '';
44
+
45
+ return `${color}[${timestamp}] [${level.toUpperCase().padEnd(5)}] [${namespace}]${RESET} ${message}${context}`;
46
+ } catch {
47
+ return line;
48
+ }
49
+ }
50
+
51
+ export default {
52
+ async execute(args: ViewArgs, opts: ViewOptions): Promise<void> {
53
+ const runtime = getVibesRuntime();
54
+ const outputId = args.output ?? 'file';
55
+
56
+ let output: OutputImplementation;
57
+ try {
58
+ output = await runtime
59
+ .query<OutputDescriptor, OutputImplementation>('logging/output')
60
+ .withId(outputId)
61
+ .resolve();
62
+ } catch (err) {
63
+ console.error(
64
+ `Failed to resolve output '${outputId}': ${err instanceof Error ? err.message : String(err)}`
65
+ );
66
+ process.exit(1);
67
+ }
68
+
69
+ const lines = opts.lines ? parseInt(opts.lines, 10) : 50;
70
+ const offset = opts.offset ? parseInt(opts.offset, 10) : 0;
71
+
72
+ let entries: string[];
73
+ try {
74
+ entries = await output.read({
75
+ lines,
76
+ offset,
77
+ filter: opts.filter,
78
+ ignoreCase: opts.ignoreCase
79
+ });
80
+ } catch (err) {
81
+ console.error(`Failed to read: ${err instanceof Error ? err.message : String(err)}`);
82
+ process.exit(1);
83
+ }
84
+
85
+ if (entries.length === 0) {
86
+ console.log('No log entries found.');
87
+ return;
88
+ }
89
+
90
+ if (opts.json) {
91
+ const parsed = entries.map((line) => {
92
+ try {
93
+ return JSON.parse(line);
94
+ } catch {
95
+ return { raw: line };
96
+ }
97
+ });
98
+ console.log(JSON.stringify(parsed, null, 2));
99
+ return;
100
+ }
101
+
102
+ console.log(`\n📜 ${outputId} (${entries.length} entries)\n`);
103
+ for (const entry of entries) {
104
+ console.log(formatLine(entry, opts.raw ?? false));
105
+ }
106
+ console.log('');
107
+ }
108
+ };
@@ -0,0 +1,59 @@
1
+ /**
2
+ * CLI Descriptor Types (local definitions)
3
+ *
4
+ * These types are defined locally because the CLI module hasn't been
5
+ * migrated to the monorepo yet. They mirror the shapes from the CLI
6
+ * module's descriptor schemas.
7
+ */
8
+
9
+ import type { RuntimeDescriptor } from '@vibesdotdev/runtime/schemas/descriptor';
10
+
11
+ export interface CLIGroupAssetDescriptor extends RuntimeDescriptor {
12
+ kind: 'cli/group';
13
+ name: string;
14
+ description: string;
15
+ parent?: string;
16
+ aliases?: string[];
17
+ surfaces?: ('cli' | 'web' | 'worker' | 'bridge')[];
18
+ internal?: boolean;
19
+ order?: number;
20
+ logBuffer?: {
21
+ enabled?: boolean;
22
+ sinks?: string[];
23
+ fallbackToStdout?: boolean;
24
+ };
25
+ }
26
+
27
+ export interface CLICommandAssetDescriptor extends RuntimeDescriptor {
28
+ kind: 'cli/command';
29
+ name: string;
30
+ description: string;
31
+ group: string;
32
+ arguments?: {
33
+ name: string;
34
+ description: string;
35
+ required?: boolean;
36
+ variadic?: boolean;
37
+ default?: unknown;
38
+ }[];
39
+ options?: {
40
+ flags: string;
41
+ description: string;
42
+ default?: unknown;
43
+ choices?: string[];
44
+ }[];
45
+ aliases?: string[];
46
+ surfaces?: ('cli' | 'web' | 'worker' | 'bridge')[];
47
+ internal?: boolean;
48
+ examples?: {
49
+ command: string;
50
+ description: string;
51
+ }[];
52
+ order?: number;
53
+ tuiAppId?: string;
54
+ logBuffer?: {
55
+ enabled?: boolean;
56
+ sinks?: string[];
57
+ fallbackToStdout?: boolean;
58
+ };
59
+ }
@@ -0,0 +1,36 @@
1
+ /**
2
+ * Audit Logger Context Types
3
+ *
4
+ * Consumers should use the runtime to query for audit implementations:
5
+ *
6
+ * ```ts
7
+ * const runtime = getVibesRuntime();
8
+ * const auditor = await runtime.query('logging/audit').withId('default').resolve();
9
+ * await auditor.log({ category: 'authorization', ... });
10
+ * ```
11
+ */
12
+
13
+ import type { AuditImplementation, AuditLogInput, AuditQueryOptions } from '../kinds/audit.ts';
14
+ import type { AuditEntry, AuditCategory } from '../schemas/audit.ts';
15
+
16
+ /**
17
+ * Audit context configuration.
18
+ */
19
+ export interface AuditContextConfig {
20
+ /** Workspace path for audit log storage */
21
+ workspacePath: string;
22
+ /** Default category for uncategorized events */
23
+ defaultCategory: AuditCategory;
24
+ }
25
+
26
+ /**
27
+ * Audit context provider interface.
28
+ */
29
+ export interface AuditContextProvider {
30
+ /** Log an audit event */
31
+ log(input: AuditLogInput): Promise<AuditEntry>;
32
+ /** Query audit entries */
33
+ query(options?: AuditQueryOptions): Promise<AuditEntry[]>;
34
+ /** Get auditor for a specific category */
35
+ forCategory(category: AuditCategory): Promise<AuditImplementation>;
36
+ }