@vibesdotdev/logging 0.0.2 → 1.0.0-rc.4
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/LICENSE +18 -0
- package/README.md +101 -8
- package/dist/audit/audit-retention.job.descriptor.d.ts +60 -0
- package/dist/audit/audit-retention.job.descriptor.d.ts.map +1 -0
- package/dist/audit/audit-retention.job.descriptor.js +42 -0
- package/dist/audit/audit-retention.job.descriptor.js.map +1 -0
- package/dist/audit/audit-retention.job.impl.d.ts +23 -0
- package/dist/audit/audit-retention.job.impl.d.ts.map +1 -0
- package/dist/audit/audit-retention.job.impl.js +24 -0
- package/dist/audit/audit-retention.job.impl.js.map +1 -0
- package/dist/audit/audit.descriptor.d.ts +6 -0
- package/dist/audit/audit.descriptor.d.ts.map +1 -1
- package/dist/audit/audit.descriptor.js +72 -5
- package/dist/audit/audit.descriptor.js.map +1 -1
- package/dist/audit/audit.storage.schema.d.ts +3 -3
- package/dist/audit/index.d.ts +3 -1
- package/dist/audit/index.d.ts.map +1 -1
- package/dist/audit/index.js +4 -1
- package/dist/audit/index.js.map +1 -1
- package/dist/audit/scheduled-audit-retention.d.ts +39 -0
- package/dist/audit/scheduled-audit-retention.d.ts.map +1 -0
- package/dist/audit/scheduled-audit-retention.js +38 -0
- package/dist/audit/scheduled-audit-retention.js.map +1 -0
- package/dist/browser/capture-error.d.ts +66 -0
- package/dist/browser/capture-error.d.ts.map +1 -0
- package/dist/browser/capture-error.js +82 -0
- package/dist/browser/capture-error.js.map +1 -0
- package/dist/browser/index.d.ts +11 -0
- package/dist/browser/index.d.ts.map +1 -0
- package/dist/browser/index.js +16 -0
- package/dist/browser/index.js.map +1 -0
- package/dist/browser/logging-browser.plugin.d.ts +9 -0
- package/dist/browser/logging-browser.plugin.d.ts.map +1 -0
- package/dist/browser/logging-browser.plugin.js +26 -0
- package/dist/browser/logging-browser.plugin.js.map +1 -0
- package/dist/browser/plugin.d.ts +2 -0
- package/dist/browser/plugin.d.ts.map +1 -0
- package/dist/browser/plugin.js +2 -0
- package/dist/browser/plugin.js.map +1 -0
- package/dist/browser/read-errors.d.ts +26 -0
- package/dist/browser/read-errors.d.ts.map +1 -0
- package/dist/browser/read-errors.js +38 -0
- package/dist/browser/read-errors.js.map +1 -0
- package/dist/browser/sinks/browser/browser.browser.descriptor.d.ts +10 -0
- package/dist/browser/sinks/browser/browser.browser.descriptor.d.ts.map +1 -0
- package/dist/browser/sinks/browser/browser.browser.descriptor.js +23 -0
- package/dist/browser/sinks/browser/browser.browser.descriptor.js.map +1 -0
- package/dist/browser/sinks/browser/browser.impl.browser.d.ts +83 -0
- package/dist/browser/sinks/browser/browser.impl.browser.d.ts.map +1 -0
- package/dist/browser/sinks/browser/browser.impl.browser.js +247 -0
- package/dist/browser/sinks/browser/browser.impl.browser.js.map +1 -0
- package/dist/cli/failures.d.ts +29 -0
- package/dist/cli/failures.d.ts.map +1 -0
- package/dist/cli/failures.js +44 -0
- package/dist/cli/failures.js.map +1 -0
- package/dist/cli/flags.d.ts +24 -0
- package/dist/cli/flags.d.ts.map +1 -0
- package/dist/cli/flags.js +56 -0
- package/dist/cli/flags.js.map +1 -0
- package/dist/cli/log-line.d.ts +23 -0
- package/dist/cli/log-line.d.ts.map +1 -0
- package/dist/cli/log-line.js +39 -0
- package/dist/cli/log-line.js.map +1 -0
- package/dist/cli/logging.logs.descriptor.d.ts +9 -0
- package/dist/cli/logging.logs.descriptor.d.ts.map +1 -0
- package/dist/cli/logging.logs.descriptor.js +16 -0
- package/dist/cli/logging.logs.descriptor.js.map +1 -0
- package/dist/cli/logs.audit.cleanup.descriptor.d.ts +7 -0
- package/dist/cli/logs.audit.cleanup.descriptor.d.ts.map +1 -0
- package/dist/cli/logs.audit.cleanup.descriptor.js +21 -0
- package/dist/cli/logs.audit.cleanup.descriptor.js.map +1 -0
- package/dist/cli/logs.audit.cleanup.impl.d.ts +14 -0
- package/dist/cli/logs.audit.cleanup.impl.d.ts.map +1 -0
- package/dist/cli/logs.audit.cleanup.impl.js +60 -0
- package/dist/cli/logs.audit.cleanup.impl.js.map +1 -0
- package/dist/cli/logs.audit.descriptor.d.ts +9 -0
- package/dist/cli/logs.audit.descriptor.d.ts.map +1 -0
- package/dist/cli/logs.audit.descriptor.js +41 -0
- package/dist/cli/logs.audit.descriptor.js.map +1 -0
- package/dist/cli/logs.audit.group.descriptor.d.ts +7 -0
- package/dist/cli/logs.audit.group.descriptor.d.ts.map +1 -0
- package/dist/cli/logs.audit.group.descriptor.js +15 -0
- package/dist/cli/logs.audit.group.descriptor.js.map +1 -0
- package/dist/cli/logs.audit.impl.d.ts +19 -0
- package/dist/cli/logs.audit.impl.d.ts.map +1 -0
- package/dist/cli/logs.audit.impl.js +83 -0
- package/dist/cli/logs.audit.impl.js.map +1 -0
- package/dist/cli/logs.descriptor.d.ts +1 -8
- package/dist/cli/logs.descriptor.d.ts.map +1 -1
- package/dist/cli/logs.descriptor.js +1 -15
- package/dist/cli/logs.descriptor.js.map +1 -1
- package/dist/cli/logs.list.impl.d.ts +4 -1
- package/dist/cli/logs.list.impl.d.ts.map +1 -1
- package/dist/cli/logs.list.impl.js +60 -63
- package/dist/cli/logs.list.impl.js.map +1 -1
- package/dist/cli/logs.rotate.descriptor.d.ts.map +1 -1
- package/dist/cli/logs.rotate.descriptor.js +7 -3
- package/dist/cli/logs.rotate.descriptor.js.map +1 -1
- package/dist/cli/logs.rotate.impl.d.ts +3 -1
- package/dist/cli/logs.rotate.impl.d.ts.map +1 -1
- package/dist/cli/logs.rotate.impl.js +72 -33
- package/dist/cli/logs.rotate.impl.js.map +1 -1
- package/dist/cli/logs.search.descriptor.d.ts.map +1 -1
- package/dist/cli/logs.search.descriptor.js +4 -0
- package/dist/cli/logs.search.descriptor.js.map +1 -1
- package/dist/cli/logs.search.impl.d.ts +3 -1
- package/dist/cli/logs.search.impl.d.ts.map +1 -1
- package/dist/cli/logs.search.impl.js +114 -108
- package/dist/cli/logs.search.impl.js.map +1 -1
- package/dist/cli/logs.tail.descriptor.d.ts.map +1 -1
- package/dist/cli/logs.tail.descriptor.js +2 -1
- package/dist/cli/logs.tail.descriptor.js.map +1 -1
- package/dist/cli/logs.tail.impl.d.ts +4 -2
- package/dist/cli/logs.tail.impl.d.ts.map +1 -1
- package/dist/cli/logs.tail.impl.js +84 -57
- package/dist/cli/logs.tail.impl.js.map +1 -1
- package/dist/cli/logs.view.impl.d.ts +2 -6
- package/dist/cli/logs.view.impl.d.ts.map +1 -1
- package/dist/cli/logs.view.impl.js +32 -50
- package/dist/cli/logs.view.impl.js.map +1 -1
- package/dist/cli/output.d.ts +29 -0
- package/dist/cli/output.d.ts.map +1 -0
- package/dist/cli/output.js +29 -0
- package/dist/cli/output.js.map +1 -0
- package/dist/{logging.cli.plugin.d.ts → cli/plugin.d.ts} +3 -3
- package/dist/cli/plugin.d.ts.map +1 -0
- package/dist/cli/plugin.js +45 -0
- package/dist/cli/plugin.js.map +1 -0
- package/dist/cli/resolve-output.d.ts +25 -0
- package/dist/cli/resolve-output.d.ts.map +1 -0
- package/dist/cli/resolve-output.js +75 -0
- package/dist/cli/resolve-output.js.map +1 -0
- package/dist/cli/types.d.ts +13 -5
- package/dist/cli/types.d.ts.map +1 -1
- package/dist/cli/types.js +3 -3
- package/dist/client/logging-client.d.ts +31 -0
- package/dist/client/logging-client.d.ts.map +1 -0
- package/dist/client/logging-client.js +44 -0
- package/dist/client/logging-client.js.map +1 -0
- package/dist/config/file-rotation.d.ts +11 -0
- package/dist/config/file-rotation.d.ts.map +1 -0
- package/dist/config/file-rotation.js +18 -0
- package/dist/config/file-rotation.js.map +1 -0
- package/dist/config/load-config.d.ts +7 -0
- package/dist/config/load-config.d.ts.map +1 -0
- package/dist/config/load-config.js +68 -0
- package/dist/config/load-config.js.map +1 -0
- package/dist/config/logging.config.descriptor.d.ts +350 -0
- package/dist/config/logging.config.descriptor.d.ts.map +1 -0
- package/dist/config/logging.config.descriptor.js +208 -0
- package/dist/config/logging.config.descriptor.js.map +1 -0
- package/dist/config/otel-service.d.ts +9 -0
- package/dist/config/otel-service.d.ts.map +1 -0
- package/dist/config/otel-service.js +18 -0
- package/dist/config/otel-service.js.map +1 -0
- package/dist/contexts/bootstrap.plugin.d.ts +3 -0
- package/dist/contexts/bootstrap.plugin.d.ts.map +1 -0
- package/dist/contexts/bootstrap.plugin.js +13 -0
- package/dist/contexts/bootstrap.plugin.js.map +1 -0
- package/dist/contexts/fallback-logger.d.ts +7 -2
- package/dist/contexts/fallback-logger.d.ts.map +1 -1
- package/dist/contexts/fallback-logger.js +73 -46
- package/dist/contexts/fallback-logger.js.map +1 -1
- package/dist/contexts/index.d.ts +2 -2
- package/dist/contexts/index.d.ts.map +1 -1
- package/dist/contexts/index.js +2 -3
- package/dist/contexts/index.js.map +1 -1
- package/dist/contexts/logger.d.ts +38 -14
- package/dist/contexts/logger.d.ts.map +1 -1
- package/dist/contexts/logger.js +241 -62
- package/dist/contexts/logger.js.map +1 -1
- package/dist/core/attempt.d.ts +30 -0
- package/dist/core/attempt.d.ts.map +1 -0
- package/dist/core/attempt.js +44 -0
- package/dist/core/attempt.js.map +1 -0
- package/dist/core/emission-window.d.ts +34 -0
- package/dist/core/emission-window.d.ts.map +1 -0
- package/dist/core/emission-window.js +25 -0
- package/dist/core/emission-window.js.map +1 -0
- package/dist/core/endpoint.d.ts +54 -0
- package/dist/core/endpoint.d.ts.map +1 -0
- package/dist/core/endpoint.js +256 -0
- package/dist/core/endpoint.js.map +1 -0
- package/dist/core/entry-context.d.ts +106 -0
- package/dist/core/entry-context.d.ts.map +1 -0
- package/dist/core/entry-context.js +150 -0
- package/dist/core/entry-context.js.map +1 -0
- package/dist/core/index.d.ts +4 -0
- package/dist/core/index.d.ts.map +1 -1
- package/dist/core/index.js +5 -0
- package/dist/core/index.js.map +1 -1
- package/dist/core/logger.d.ts +6 -1
- package/dist/core/logger.d.ts.map +1 -1
- package/dist/core/logger.js +133 -67
- package/dist/core/logger.js.map +1 -1
- package/dist/core/namespace.d.ts +5 -2
- package/dist/core/namespace.d.ts.map +1 -1
- package/dist/core/namespace.js +15 -7
- package/dist/core/namespace.js.map +1 -1
- package/dist/core/normalize.d.ts +31 -0
- package/dist/core/normalize.d.ts.map +1 -0
- package/dist/core/normalize.js +67 -0
- package/dist/core/normalize.js.map +1 -0
- package/dist/core/otlp-headers.d.ts +53 -0
- package/dist/core/otlp-headers.d.ts.map +1 -0
- package/dist/core/otlp-headers.js +64 -0
- package/dist/core/otlp-headers.js.map +1 -0
- package/dist/core/otlp-partial-success.d.ts +48 -0
- package/dist/core/otlp-partial-success.d.ts.map +1 -0
- package/dist/core/otlp-partial-success.js +55 -0
- package/dist/core/otlp-partial-success.js.map +1 -0
- package/dist/core/outcome.d.ts +21 -0
- package/dist/core/outcome.d.ts.map +1 -0
- package/dist/core/outcome.js +24 -0
- package/dist/core/outcome.js.map +1 -0
- package/dist/core/output-resources.d.ts +15 -0
- package/dist/core/output-resources.d.ts.map +1 -0
- package/dist/core/output-resources.js +51 -0
- package/dist/core/output-resources.js.map +1 -0
- package/dist/core/parsing.d.ts.map +1 -1
- package/dist/core/parsing.js +13 -10
- package/dist/core/parsing.js.map +1 -1
- package/dist/core/redact.d.ts +161 -0
- package/dist/core/redact.d.ts.map +1 -0
- package/dist/core/redact.js +581 -0
- package/dist/core/redact.js.map +1 -0
- package/dist/core/root-identity.d.ts +13 -0
- package/dist/core/root-identity.d.ts.map +1 -0
- package/dist/core/root-identity.js +23 -0
- package/dist/core/root-identity.js.map +1 -0
- package/dist/core/types.d.ts +5 -4
- package/dist/core/types.d.ts.map +1 -1
- package/dist/docs/cli.docs.descriptor.d.ts +4 -0
- package/dist/docs/cli.docs.descriptor.d.ts.map +1 -0
- package/dist/docs/cli.docs.descriptor.js +97 -0
- package/dist/docs/cli.docs.descriptor.js.map +1 -0
- package/dist/docs/index.d.ts +7 -0
- package/dist/docs/index.d.ts.map +1 -0
- package/dist/docs/index.js +7 -0
- package/dist/docs/index.js.map +1 -0
- package/dist/docs/levels.docs.descriptor.d.ts +1 -1
- package/dist/docs/levels.docs.descriptor.d.ts.map +1 -1
- package/dist/docs/levels.docs.descriptor.js +112 -246
- package/dist/docs/levels.docs.descriptor.js.map +1 -1
- package/dist/docs/logging.docs.descriptor.d.ts +4 -0
- package/dist/docs/logging.docs.descriptor.d.ts.map +1 -0
- package/dist/docs/logging.docs.descriptor.js +105 -0
- package/dist/docs/logging.docs.descriptor.js.map +1 -0
- package/dist/docs/observability.docs.descriptor.d.ts +4 -0
- package/dist/docs/observability.docs.descriptor.d.ts.map +1 -0
- package/dist/docs/observability.docs.descriptor.js +152 -0
- package/dist/docs/observability.docs.descriptor.js.map +1 -0
- package/dist/docs/structured.docs.descriptor.d.ts +1 -1
- package/dist/docs/structured.docs.descriptor.d.ts.map +1 -1
- package/dist/docs/structured.docs.descriptor.js +111 -267
- package/dist/docs/structured.docs.descriptor.js.map +1 -1
- package/dist/docs/transports.docs.descriptor.d.ts +1 -1
- package/dist/docs/transports.docs.descriptor.d.ts.map +1 -1
- package/dist/docs/transports.docs.descriptor.js +129 -344
- package/dist/docs/transports.docs.descriptor.js.map +1 -1
- package/dist/formatters/json/json.impl.d.ts +1 -1
- package/dist/formatters/json/json.impl.d.ts.map +1 -1
- package/dist/formatters/json/json.impl.js +3 -2
- package/dist/formatters/json/json.impl.js.map +1 -1
- package/dist/formatters/json5/json5.impl.d.ts +1 -1
- package/dist/formatters/json5/json5.impl.d.ts.map +1 -1
- package/dist/formatters/json5/json5.impl.js +3 -2
- package/dist/formatters/json5/json5.impl.js.map +1 -1
- package/dist/formatters/jsonl/jsonl.impl.d.ts +1 -1
- package/dist/formatters/jsonl/jsonl.impl.d.ts.map +1 -1
- package/dist/formatters/jsonl/jsonl.impl.js +3 -2
- package/dist/formatters/jsonl/jsonl.impl.js.map +1 -1
- package/dist/formatters/pretty/{pretty.impl.cli.d.ts → pretty.impl.consumer.d.ts} +1 -1
- package/dist/formatters/pretty/pretty.impl.consumer.d.ts.map +1 -0
- package/dist/formatters/pretty/{pretty.impl.cli.js → pretty.impl.consumer.js} +1 -1
- package/dist/formatters/pretty/pretty.impl.consumer.js.map +1 -0
- package/dist/host-files/file-audit.base.d.ts +39 -0
- package/dist/host-files/file-audit.base.d.ts.map +1 -0
- package/dist/host-files/file-audit.base.js +255 -0
- package/dist/host-files/file-audit.base.js.map +1 -0
- package/dist/host-files/file-output.base.d.ts +84 -0
- package/dist/host-files/file-output.base.d.ts.map +1 -0
- package/dist/host-files/file-output.base.js +401 -0
- package/dist/host-files/file-output.base.js.map +1 -0
- package/dist/host-files/file-output.factory.base.d.ts +31 -0
- package/dist/host-files/file-output.factory.base.d.ts.map +1 -0
- package/dist/host-files/file-output.factory.base.js +82 -0
- package/dist/host-files/file-output.factory.base.js.map +1 -0
- package/dist/host-files/file-output.read.base.d.ts +7 -0
- package/dist/host-files/file-output.read.base.d.ts.map +1 -0
- package/dist/host-files/file-output.read.base.js +229 -0
- package/dist/host-files/file-output.read.base.js.map +1 -0
- package/dist/host-files/file-sink.base.d.ts +22 -0
- package/dist/host-files/file-sink.base.d.ts.map +1 -0
- package/dist/host-files/file-sink.base.js +56 -0
- package/dist/host-files/file-sink.base.js.map +1 -0
- package/dist/host-files/host-file-logging.plugin.d.ts +11 -0
- package/dist/host-files/host-file-logging.plugin.d.ts.map +1 -0
- package/dist/host-files/host-file-logging.plugin.js +63 -0
- package/dist/host-files/host-file-logging.plugin.js.map +1 -0
- package/dist/host-files/index.d.ts +19 -0
- package/dist/host-files/index.d.ts.map +1 -0
- package/dist/host-files/index.js +18 -0
- package/dist/host-files/index.js.map +1 -0
- package/dist/host-files/rotate-appended-file.base.d.ts +35 -0
- package/dist/host-files/rotate-appended-file.base.d.ts.map +1 -0
- package/dist/host-files/rotate-appended-file.base.js +104 -0
- package/dist/host-files/rotate-appended-file.base.js.map +1 -0
- package/dist/host.d.ts +38 -0
- package/dist/host.d.ts.map +1 -0
- package/dist/host.js +39 -0
- package/dist/host.js.map +1 -0
- package/dist/index.d.ts +24 -13
- package/dist/index.d.ts.map +1 -1
- package/dist/index.js +27 -23
- package/dist/index.js.map +1 -1
- package/dist/kinds/audit.d.ts +40 -8
- package/dist/kinds/audit.d.ts.map +1 -1
- package/dist/kinds/audit.js +82 -20
- package/dist/kinds/audit.js.map +1 -1
- package/dist/kinds/contexts.d.ts +4 -3
- package/dist/kinds/contexts.d.ts.map +1 -1
- package/dist/kinds/file-output.d.ts +56 -0
- package/dist/kinds/file-output.d.ts.map +1 -0
- package/dist/kinds/file-output.js +11 -0
- package/dist/kinds/file-output.js.map +1 -0
- package/dist/kinds/formatter.d.ts +4 -6
- package/dist/kinds/formatter.d.ts.map +1 -1
- package/dist/kinds/formatter.js +4 -3
- package/dist/kinds/formatter.js.map +1 -1
- package/dist/kinds/index.d.ts +3 -3
- package/dist/kinds/index.d.ts.map +1 -1
- package/dist/kinds/index.js +3 -3
- package/dist/kinds/index.js.map +1 -1
- package/dist/kinds/logger.d.ts +4 -4
- package/dist/kinds/logger.d.ts.map +1 -1
- package/dist/kinds/logger.impl.d.ts +40 -13
- package/dist/kinds/logger.impl.d.ts.map +1 -1
- package/dist/kinds/logger.impl.js +179 -87
- package/dist/kinds/logger.impl.js.map +1 -1
- package/dist/kinds/logger.js +21 -11
- package/dist/kinds/logger.js.map +1 -1
- package/dist/kinds/logger.utils.d.ts +31 -4
- package/dist/kinds/logger.utils.d.ts.map +1 -1
- package/dist/kinds/logger.utils.js +58 -18
- package/dist/kinds/logger.utils.js.map +1 -1
- package/dist/kinds/output.d.ts +5 -11
- package/dist/kinds/output.d.ts.map +1 -1
- package/dist/kinds/output.impl.d.ts +9 -7
- package/dist/kinds/output.impl.d.ts.map +1 -1
- package/dist/kinds/output.impl.js +51 -29
- package/dist/kinds/output.impl.js.map +1 -1
- package/dist/kinds/output.js +10 -5
- package/dist/kinds/output.js.map +1 -1
- package/dist/kinds/output.types.d.ts +26 -7
- package/dist/kinds/output.types.d.ts.map +1 -1
- package/dist/kinds/sink.d.ts +6 -5
- package/dist/kinds/sink.d.ts.map +1 -1
- package/dist/kinds/sink.js +14 -7
- package/dist/kinds/sink.js.map +1 -1
- package/dist/logger.context.descriptor.d.ts +15 -1
- package/dist/logger.context.descriptor.d.ts.map +1 -1
- package/dist/logger.context.descriptor.js +1 -1
- package/dist/logger.context.descriptor.js.map +1 -1
- package/dist/logging.consumer.plugin.d.ts +4 -0
- package/dist/logging.consumer.plugin.d.ts.map +1 -0
- package/dist/logging.consumer.plugin.js +17 -0
- package/dist/logging.consumer.plugin.js.map +1 -0
- package/dist/logging.plugin.d.ts +3 -3
- package/dist/logging.plugin.d.ts.map +1 -1
- package/dist/logging.plugin.js +81 -42
- package/dist/logging.plugin.js.map +1 -1
- package/dist/observability/building-host.d.ts +11 -0
- package/dist/observability/building-host.d.ts.map +1 -0
- package/dist/observability/building-host.js +11 -0
- package/dist/observability/building-host.js.map +1 -0
- package/dist/observability/config.d.ts +36 -0
- package/dist/observability/config.d.ts.map +1 -0
- package/dist/observability/config.js +46 -0
- package/dist/observability/config.js.map +1 -0
- package/dist/observability/http/instrumented-fetch.d.ts +19 -0
- package/dist/observability/http/instrumented-fetch.d.ts.map +1 -0
- package/dist/observability/http/instrumented-fetch.js +175 -0
- package/dist/observability/http/instrumented-fetch.js.map +1 -0
- package/dist/observability/index.d.ts +8 -0
- package/dist/observability/index.d.ts.map +1 -0
- package/dist/observability/index.js +10 -0
- package/dist/observability/index.js.map +1 -0
- package/dist/observability/lifecycle.d.ts +18 -0
- package/dist/observability/lifecycle.d.ts.map +1 -0
- package/dist/observability/lifecycle.js +44 -0
- package/dist/observability/lifecycle.js.map +1 -0
- package/dist/observability/observability/error-tracker.d.ts +43 -0
- package/dist/observability/observability/error-tracker.d.ts.map +1 -0
- package/dist/observability/observability/error-tracker.js +130 -0
- package/dist/observability/observability/error-tracker.js.map +1 -0
- package/dist/observability/should-keep-log.d.ts +8 -0
- package/dist/observability/should-keep-log.d.ts.map +1 -0
- package/dist/observability/should-keep-log.js +10 -0
- package/dist/observability/should-keep-log.js.map +1 -0
- package/dist/observability/telemetry/otel.d.ts +47 -0
- package/dist/observability/telemetry/otel.d.ts.map +1 -0
- package/dist/observability/telemetry/otel.js +542 -0
- package/dist/observability/telemetry/otel.js.map +1 -0
- package/dist/observability/telemetry/partial-success.d.ts +35 -0
- package/dist/observability/telemetry/partial-success.d.ts.map +1 -0
- package/dist/observability/telemetry/partial-success.js +94 -0
- package/dist/observability/telemetry/partial-success.js.map +1 -0
- package/dist/observability/telemetry/sdk-lifecycle.d.ts +37 -0
- package/dist/observability/telemetry/sdk-lifecycle.d.ts.map +1 -0
- package/dist/observability/telemetry/sdk-lifecycle.js +132 -0
- package/dist/observability/telemetry/sdk-lifecycle.js.map +1 -0
- package/dist/observability/telemetry/telemetry-root.d.ts +78 -0
- package/dist/observability/telemetry/telemetry-root.d.ts.map +1 -0
- package/dist/observability/telemetry/telemetry-root.js +79 -0
- package/dist/observability/telemetry/telemetry-root.js.map +1 -0
- package/dist/observability/telemetry-instrumentation.d.ts +76 -0
- package/dist/observability/telemetry-instrumentation.d.ts.map +1 -0
- package/dist/observability/telemetry-instrumentation.js +69 -0
- package/dist/observability/telemetry-instrumentation.js.map +1 -0
- package/dist/otel/index.d.ts +9 -0
- package/dist/otel/index.d.ts.map +1 -0
- package/dist/otel/index.js +12 -0
- package/dist/otel/index.js.map +1 -0
- package/dist/otel/logging-otel.plugin.d.ts +11 -0
- package/dist/otel/logging-otel.plugin.d.ts.map +1 -0
- package/dist/otel/logging-otel.plugin.js +27 -0
- package/dist/otel/logging-otel.plugin.js.map +1 -0
- package/dist/otel/sinks/otel/otel.descriptor.d.ts +10 -0
- package/dist/otel/sinks/otel/otel.descriptor.d.ts.map +1 -0
- package/dist/otel/sinks/otel/otel.descriptor.js +23 -0
- package/dist/otel/sinks/otel/otel.descriptor.js.map +1 -0
- package/dist/otel/sinks/otel/otel.impl.d.ts +47 -0
- package/dist/otel/sinks/otel/otel.impl.d.ts.map +1 -0
- package/dist/otel/sinks/otel/otel.impl.js +202 -0
- package/dist/otel/sinks/otel/otel.impl.js.map +1 -0
- package/dist/otel/sinks/otel/otlp-log-exporter.d.ts +76 -0
- package/dist/otel/sinks/otel/otlp-log-exporter.d.ts.map +1 -0
- package/dist/otel/sinks/otel/otlp-log-exporter.js +178 -0
- package/dist/otel/sinks/otel/otlp-log-exporter.js.map +1 -0
- package/dist/outputs/file/file.outputs.descriptor.d.ts +10 -0
- package/dist/outputs/file/file.outputs.descriptor.d.ts.map +1 -0
- package/dist/outputs/file/file.outputs.descriptor.js +32 -0
- package/dist/outputs/file/file.outputs.descriptor.js.map +1 -0
- package/dist/outputs/remote/remote.descriptor.d.ts +1 -1
- package/dist/outputs/remote/remote.descriptor.d.ts.map +1 -1
- package/dist/outputs/remote/remote.descriptor.js +1 -2
- package/dist/outputs/remote/remote.descriptor.js.map +1 -1
- package/dist/outputs/remote/remote.factory.d.ts +9 -0
- package/dist/outputs/remote/remote.factory.d.ts.map +1 -0
- package/dist/outputs/remote/remote.factory.js +16 -0
- package/dist/outputs/remote/remote.factory.js.map +1 -0
- package/dist/outputs/remote/remote.impl.d.ts +40 -4
- package/dist/outputs/remote/remote.impl.d.ts.map +1 -1
- package/dist/outputs/remote/remote.impl.js +224 -99
- package/dist/outputs/remote/remote.impl.js.map +1 -1
- package/dist/outputs.context.descriptor.d.ts +15 -1
- package/dist/outputs.context.descriptor.d.ts.map +1 -1
- package/dist/outputs.context.descriptor.js +1 -1
- package/dist/outputs.context.descriptor.js.map +1 -1
- package/dist/outputs.context.impl.d.ts +2 -1
- package/dist/outputs.context.impl.d.ts.map +1 -1
- package/dist/outputs.context.impl.js +17 -9
- package/dist/outputs.context.impl.js.map +1 -1
- package/dist/paths.d.ts +24 -3
- package/dist/paths.d.ts.map +1 -1
- package/dist/paths.js +63 -3
- package/dist/paths.js.map +1 -1
- package/dist/rotation/rotate-appended-file.d.ts +15 -0
- package/dist/rotation/rotate-appended-file.d.ts.map +1 -0
- package/dist/rotation/rotate-appended-file.js +20 -0
- package/dist/rotation/rotate-appended-file.js.map +1 -0
- package/dist/rotation/rotation-policy.d.ts +19 -0
- package/dist/rotation/rotation-policy.d.ts.map +1 -0
- package/dist/rotation/rotation-policy.js +37 -0
- package/dist/rotation/rotation-policy.js.map +1 -0
- package/dist/schemas/audit.d.ts +25 -7
- package/dist/schemas/audit.d.ts.map +1 -1
- package/dist/schemas/audit.js +10 -4
- package/dist/schemas/audit.js.map +1 -1
- package/dist/schemas/entry.d.ts +11 -5
- package/dist/schemas/entry.d.ts.map +1 -1
- package/dist/schemas/entry.js +3 -2
- package/dist/schemas/entry.js.map +1 -1
- package/dist/schemas/file-host.d.ts +86 -0
- package/dist/schemas/file-host.d.ts.map +1 -0
- package/dist/schemas/file-host.js +10 -0
- package/dist/schemas/file-host.js.map +1 -0
- package/dist/schemas/formatter.d.ts +11 -1
- package/dist/schemas/formatter.d.ts.map +1 -1
- package/dist/schemas/formatter.js +1 -1
- package/dist/schemas/formatter.js.map +1 -1
- package/dist/schemas/index.d.ts +3 -2
- package/dist/schemas/index.d.ts.map +1 -1
- package/dist/schemas/index.js +3 -2
- package/dist/schemas/index.js.map +1 -1
- package/dist/schemas/logger.d.ts +16 -1
- package/dist/schemas/logger.d.ts.map +1 -1
- package/dist/schemas/logger.js +6 -1
- package/dist/schemas/logger.js.map +1 -1
- package/dist/schemas/output-defaults.d.ts +44 -0
- package/dist/schemas/output-defaults.d.ts.map +1 -0
- package/dist/schemas/output-defaults.js +53 -0
- package/dist/schemas/output-defaults.js.map +1 -0
- package/dist/schemas/output.d.ts +25 -1
- package/dist/schemas/output.d.ts.map +1 -1
- package/dist/schemas/output.js +29 -2
- package/dist/schemas/output.js.map +1 -1
- package/dist/schemas/sink.d.ts +32 -1
- package/dist/schemas/sink.d.ts.map +1 -1
- package/dist/schemas/sink.js +17 -1
- package/dist/schemas/sink.js.map +1 -1
- package/dist/sinks/buffer/buffer.descriptor.js +1 -1
- package/dist/sinks/buffer/buffer.descriptor.js.map +1 -1
- package/dist/sinks/buffer/{buffer.impl.cli.d.ts → buffer.impl.d.ts} +3 -3
- package/dist/sinks/buffer/buffer.impl.d.ts.map +1 -0
- package/dist/sinks/buffer/buffer.impl.js +42 -0
- package/dist/sinks/buffer/buffer.impl.js.map +1 -0
- package/dist/sinks/console/console.descriptor.js +1 -1
- package/dist/sinks/console/console.descriptor.js.map +1 -1
- package/dist/sinks/console/console.impl.browser.d.ts +4 -3
- package/dist/sinks/console/console.impl.browser.d.ts.map +1 -1
- package/dist/sinks/console/console.impl.browser.js +11 -14
- package/dist/sinks/console/console.impl.browser.js.map +1 -1
- package/dist/sinks/console/{console.impl.cli.d.ts → console.impl.consumer.d.ts} +5 -4
- package/dist/sinks/console/console.impl.consumer.d.ts.map +1 -0
- package/dist/sinks/console/{console.impl.cli.js → console.impl.consumer.js} +16 -8
- package/dist/sinks/console/console.impl.consumer.js.map +1 -0
- package/dist/sinks/file/file.sinks.descriptor.d.ts +10 -0
- package/dist/sinks/file/file.sinks.descriptor.d.ts.map +1 -0
- package/dist/sinks/file/file.sinks.descriptor.js +23 -0
- package/dist/sinks/file/file.sinks.descriptor.js.map +1 -0
- package/dist/sinks/index.d.ts +1 -1
- package/dist/sinks/index.d.ts.map +1 -1
- package/dist/sinks/memory/memory.descriptor.d.ts +1 -1
- package/dist/sinks/memory/memory.descriptor.js +2 -2
- package/dist/sinks/memory/memory.descriptor.js.map +1 -1
- package/dist/sinks/memory/memory.impl.d.ts +5 -11
- package/dist/sinks/memory/memory.impl.d.ts.map +1 -1
- package/dist/sinks/memory/memory.impl.js +46 -21
- package/dist/sinks/memory/memory.impl.js.map +1 -1
- package/dist/sinks/stdout/stdout.descriptor.js +1 -1
- package/dist/sinks/stdout/stdout.descriptor.js.map +1 -1
- package/dist/sinks/stdout/{stdout.impl.cli.d.ts → stdout.impl.d.ts} +5 -4
- package/dist/sinks/stdout/stdout.impl.d.ts.map +1 -0
- package/dist/sinks/stdout/stdout.impl.js +29 -0
- package/dist/sinks/stdout/stdout.impl.js.map +1 -0
- package/dist/sinks.context.descriptor.d.ts +15 -1
- package/dist/sinks.context.descriptor.d.ts.map +1 -1
- package/dist/sinks.context.descriptor.js +1 -1
- package/dist/sinks.context.descriptor.js.map +1 -1
- package/dist/sinks.context.impl.d.ts +2 -1
- package/dist/sinks.context.impl.d.ts.map +1 -1
- package/dist/sinks.context.impl.js +17 -9
- package/dist/sinks.context.impl.js.map +1 -1
- package/dist/stdout-capture/mcp-frame.d.ts +23 -0
- package/dist/stdout-capture/mcp-frame.d.ts.map +1 -0
- package/dist/stdout-capture/mcp-frame.js +80 -0
- package/dist/stdout-capture/mcp-frame.js.map +1 -0
- package/dist/stdout-capture/stdout-capture.descriptor.d.ts +10 -0
- package/dist/stdout-capture/stdout-capture.descriptor.d.ts.map +1 -0
- package/dist/stdout-capture/stdout-capture.descriptor.js +17 -0
- package/dist/stdout-capture/stdout-capture.descriptor.js.map +1 -0
- package/dist/stdout-capture/stdout-capture.impl.d.ts +19 -0
- package/dist/stdout-capture/stdout-capture.impl.d.ts.map +1 -0
- package/dist/stdout-capture/stdout-capture.impl.js +49 -0
- package/dist/stdout-capture/stdout-capture.impl.js.map +1 -0
- package/dist/stdout-capture/stdout-capture.lease.d.ts +45 -0
- package/dist/stdout-capture/stdout-capture.lease.d.ts.map +1 -0
- package/dist/stdout-capture/stdout-capture.lease.js +338 -0
- package/dist/stdout-capture/stdout-capture.lease.js.map +1 -0
- package/dist/stdout-capture/stdout-capture.output.descriptor.d.ts +4 -0
- package/dist/stdout-capture/stdout-capture.output.descriptor.d.ts.map +1 -0
- package/dist/stdout-capture/stdout-capture.output.descriptor.js +18 -0
- package/dist/stdout-capture/stdout-capture.output.descriptor.js.map +1 -0
- package/dist/stdout-capture/stdout-capture.state.d.ts +29 -0
- package/dist/stdout-capture/stdout-capture.state.d.ts.map +1 -0
- package/dist/stdout-capture/stdout-capture.state.js +80 -0
- package/dist/stdout-capture/stdout-capture.state.js.map +1 -0
- package/dist/stdout-capture.d.ts +24 -0
- package/dist/stdout-capture.d.ts.map +1 -0
- package/dist/stdout-capture.js +28 -0
- package/dist/stdout-capture.js.map +1 -0
- package/dist/stdout-capture.plugin.d.ts +7 -0
- package/dist/stdout-capture.plugin.d.ts.map +1 -0
- package/dist/stdout-capture.plugin.js +28 -0
- package/dist/stdout-capture.plugin.js.map +1 -0
- package/package.json +308 -224
- package/dist/contexts/audit.d.ts +0 -34
- package/dist/contexts/audit.d.ts.map +0 -1
- package/dist/contexts/audit.js +0 -13
- package/dist/contexts/audit.js.map +0 -1
- package/dist/formatters/index.d.ts +0 -7
- package/dist/formatters/index.d.ts.map +0 -1
- package/dist/formatters/index.js +0 -8
- package/dist/formatters/index.js.map +0 -1
- package/dist/formatters/pretty/pretty.impl.cli.d.ts.map +0 -1
- package/dist/formatters/pretty/pretty.impl.cli.js.map +0 -1
- package/dist/kinds/logger.contracts.d.ts +0 -16
- package/dist/kinds/logger.contracts.d.ts.map +0 -1
- package/dist/kinds/logger.contracts.js +0 -9
- package/dist/kinds/logger.contracts.js.map +0 -1
- package/dist/kinds/output.contracts.d.ts +0 -50
- package/dist/kinds/output.contracts.d.ts.map +0 -1
- package/dist/kinds/output.contracts.js +0 -10
- package/dist/kinds/output.contracts.js.map +0 -1
- package/dist/logging.cli.plugin.d.ts.map +0 -1
- package/dist/logging.cli.plugin.js +0 -39
- package/dist/logging.cli.plugin.js.map +0 -1
- package/dist/outputs/index.d.ts +0 -7
- package/dist/outputs/index.d.ts.map +0 -1
- package/dist/outputs/index.js +0 -8
- package/dist/outputs/index.js.map +0 -1
- package/dist/sinks/buffer/buffer.impl.cli.d.ts.map +0 -1
- package/dist/sinks/buffer/buffer.impl.cli.js +0 -34
- package/dist/sinks/buffer/buffer.impl.cli.js.map +0 -1
- package/dist/sinks/console/console.impl.cli.d.ts.map +0 -1
- package/dist/sinks/console/console.impl.cli.js.map +0 -1
- package/dist/sinks/stdout/stdout.impl.cli.d.ts.map +0 -1
- package/dist/sinks/stdout/stdout.impl.cli.js +0 -21
- package/dist/sinks/stdout/stdout.impl.cli.js.map +0 -1
- package/src/audit/audit.descriptor.ts +0 -45
- package/src/audit/audit.storage.schema.ts +0 -57
- package/src/audit/index.ts +0 -8
- package/src/cli/logs.descriptor.ts +0 -19
- package/src/cli/logs.list.descriptor.ts +0 -28
- package/src/cli/logs.list.impl.ts +0 -93
- package/src/cli/logs.rotate.descriptor.ts +0 -40
- package/src/cli/logs.rotate.impl.ts +0 -61
- package/src/cli/logs.search.descriptor.ts +0 -61
- package/src/cli/logs.search.impl.ts +0 -173
- package/src/cli/logs.tail.descriptor.ts +0 -49
- package/src/cli/logs.tail.impl.ts +0 -105
- package/src/cli/logs.view.descriptor.ts +0 -57
- package/src/cli/logs.view.impl.ts +0 -108
- package/src/cli/types.ts +0 -59
- package/src/contexts/audit.ts +0 -36
- package/src/contexts/fallback-logger.ts +0 -80
- package/src/contexts/index.ts +0 -23
- package/src/contexts/logger.ts +0 -119
- package/src/core/index.ts +0 -32
- package/src/core/logger.ts +0 -150
- package/src/core/namespace.ts +0 -195
- package/src/core/parsing.ts +0 -21
- package/src/core/types.ts +0 -82
- package/src/docs/levels.docs.descriptor.ts +0 -344
- package/src/docs/structured.docs.descriptor.ts +0 -444
- package/src/docs/transports.docs.descriptor.ts +0 -428
- package/src/formatters/index.ts +0 -6
- package/src/formatters/json/json.formatters.descriptor.ts +0 -25
- package/src/formatters/json/json.impl.ts +0 -41
- package/src/formatters/json5/json5.descriptor.ts +0 -25
- package/src/formatters/json5/json5.impl.ts +0 -43
- package/src/formatters/jsonl/jsonl.descriptor.ts +0 -26
- package/src/formatters/jsonl/jsonl.impl.ts +0 -39
- package/src/formatters/pretty/pretty.descriptor.ts +0 -26
- package/src/formatters/pretty/pretty.impl.cli.ts +0 -101
- package/src/index.ts +0 -190
- package/src/kinds/audit.ts +0 -169
- package/src/kinds/contexts.ts +0 -22
- package/src/kinds/formatter.ts +0 -117
- package/src/kinds/index.ts +0 -25
- package/src/kinds/logger.contracts.ts +0 -17
- package/src/kinds/logger.impl.ts +0 -206
- package/src/kinds/logger.ts +0 -46
- package/src/kinds/logger.utils.ts +0 -91
- package/src/kinds/output.contracts.ts +0 -54
- package/src/kinds/output.impl.ts +0 -118
- package/src/kinds/output.ts +0 -59
- package/src/kinds/output.types.ts +0 -105
- package/src/kinds/sink.ts +0 -100
- package/src/logger.context.descriptor.ts +0 -13
- package/src/logging.cli.plugin.ts +0 -43
- package/src/logging.plugin.ts +0 -93
- package/src/outputs/index.ts +0 -6
- package/src/outputs/remote/remote.descriptor.ts +0 -27
- package/src/outputs/remote/remote.impl.ts +0 -218
- package/src/outputs.context.descriptor.ts +0 -10
- package/src/outputs.context.impl.ts +0 -30
- package/src/paths.ts +0 -10
- package/src/schemas/audit.ts +0 -98
- package/src/schemas/entry.ts +0 -88
- package/src/schemas/formatter.ts +0 -37
- package/src/schemas/index.ts +0 -80
- package/src/schemas/logger.ts +0 -38
- package/src/schemas/output.ts +0 -62
- package/src/schemas/sink.ts +0 -39
- package/src/sinks/buffer/buffer.descriptor.ts +0 -13
- package/src/sinks/buffer/buffer.impl.cli.ts +0 -49
- package/src/sinks/console/console.descriptor.ts +0 -20
- package/src/sinks/console/console.impl.browser.ts +0 -69
- package/src/sinks/console/console.impl.cli.ts +0 -71
- package/src/sinks/index.ts +0 -8
- package/src/sinks/memory/memory.descriptor.ts +0 -20
- package/src/sinks/memory/memory.impl.ts +0 -119
- package/src/sinks/stdout/stdout.descriptor.ts +0 -13
- package/src/sinks/stdout/stdout.impl.cli.ts +0 -27
- package/src/sinks.context.descriptor.ts +0 -10
- 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 {
|
|
7
|
-
|
|
8
|
-
|
|
9
|
-
|
|
10
|
-
|
|
11
|
-
|
|
12
|
-
|
|
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
|
-
|
|
17
|
-
|
|
18
|
-
|
|
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 =
|
|
37
|
-
|
|
38
|
-
|
|
39
|
-
|
|
40
|
-
|
|
41
|
-
|
|
42
|
-
|
|
43
|
-
|
|
44
|
-
|
|
45
|
-
|
|
46
|
-
|
|
47
|
-
|
|
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
|
|
50
|
-
|
|
51
|
-
|
|
52
|
-
|
|
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
|
-
|
|
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
|
-
|
|
75
|
-
|
|
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":"AAAA
|
|
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":"
|
|
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 {
|
|
7
|
-
|
|
8
|
-
|
|
9
|
-
|
|
10
|
-
|
|
11
|
-
|
|
12
|
-
|
|
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
|
-
|
|
19
|
-
|
|
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 =
|
|
35
|
-
const
|
|
36
|
-
|
|
37
|
-
|
|
38
|
-
|
|
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
|
-
|
|
60
|
-
|
|
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
|
-
|
|
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
|
-
|
|
69
|
-
|
|
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
|
-
|
|
57
|
+
out.json(parsed);
|
|
76
58
|
return;
|
|
77
59
|
}
|
|
78
|
-
|
|
60
|
+
out.line(`\n📜 ${args.output ?? 'file'} (${entries.length} entries)\n`);
|
|
79
61
|
for (const entry of entries) {
|
|
80
|
-
|
|
62
|
+
out.line(formatLine(entry, opts.raw ?? false));
|
|
81
63
|
}
|
|
82
|
-
|
|
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":"AAAA;;;;GAIG;
|
|
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/
|
|
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/
|
|
18
|
+
declare const _default: import("@vibesdotdev/kernel").RuntimePlugin;
|
|
19
19
|
export default _default;
|
|
20
|
-
//# sourceMappingURL=
|
|
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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"}
|