@vibesdotdev/logging 0.0.1 → 1.0.0-rc.4
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/LICENSE +18 -0
- package/README.md +89 -54
- 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 +311 -228
- package/SPEC.md +0 -65
- 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
package/dist/contexts/logger.js
CHANGED
|
@@ -3,86 +3,265 @@
|
|
|
3
3
|
*
|
|
4
4
|
* Provides logger instances to runtime assets via context injection.
|
|
5
5
|
* Loggers are resolved from the runtime and cached for sync access.
|
|
6
|
+
*
|
|
7
|
+
* `getLogger(id)` expects `id` to match a registered `logging/logger` descriptor
|
|
8
|
+
* (not a dotted namespace). Use `descriptor.namespace` or `.child()` for namespacing.
|
|
9
|
+
*/
|
|
10
|
+
import * as z from 'zod/v4';
|
|
11
|
+
import { CapabilityError, getVibesRuntime } from '@vibesdotdev/kernel';
|
|
12
|
+
import { childOptionsSnapshot, deriveChildConfig } from "../kinds/logger.utils.js";
|
|
13
|
+
import { ForwardedLogCallSchema } from "../core/entry-context.js";
|
|
14
|
+
import { LoggedErrorSchema } from "../core/redact.js";
|
|
15
|
+
import { settle } from "../core/outcome.js";
|
|
16
|
+
import { prepareFallbackLoggerFactory, prepareUndeclaredLoggerFactory } from "./fallback-logger.js";
|
|
17
|
+
import { isLoggingEmissionClosed } from "../core/emission-window.js";
|
|
18
|
+
import { loggingRootOf } from "../core/root-identity.js";
|
|
19
|
+
export const LoggerContextConfigSchema = z.object({
|
|
20
|
+
defaultNamespace: z.string().min(1),
|
|
21
|
+
defaultRuntime: z.enum(['server', 'cli', 'worker', 'browser', 'mcp'])
|
|
22
|
+
});
|
|
23
|
+
/**
|
|
24
|
+
* Lazy logger: created without touching any runtime, bound at emit time.
|
|
25
|
+
*
|
|
26
|
+
* Each emit requires a bound Runtime prepared by initializeLoggers(runtime).
|
|
27
|
+
* It re-resolves its base target: that Root's registered logger, then that
|
|
28
|
+
* Root's resolved logger, then its prepared fallback. Caches follow the Root's
|
|
29
|
+
* identity, so another Root never inherits the first host's console. Derivations
|
|
30
|
+
* (child/with*) are replayed onto the base and cached by base identity.
|
|
31
|
+
*
|
|
32
|
+
* `namespace`/`fullNamespace` read the last bound target (the descriptor
|
|
33
|
+
* logger's own semantics) and use the id-based derivation until first bound;
|
|
34
|
+
* they never read the runtime.
|
|
6
35
|
*/
|
|
7
|
-
|
|
8
|
-
|
|
36
|
+
class LazyLoggerImplementation {
|
|
37
|
+
source;
|
|
38
|
+
handedRuntime;
|
|
39
|
+
derivations;
|
|
40
|
+
unboundNamespace;
|
|
41
|
+
unboundFullNamespace;
|
|
42
|
+
derivedByBase = new WeakMap();
|
|
43
|
+
lastDerived = null;
|
|
44
|
+
constructor(source, unboundId, fullNamespace = unboundId, derivations = [], handedRuntime) {
|
|
45
|
+
this.source = source;
|
|
46
|
+
this.handedRuntime = handedRuntime;
|
|
47
|
+
this.unboundNamespace = unboundId;
|
|
48
|
+
this.unboundFullNamespace = fullNamespace;
|
|
49
|
+
this.derivations = derivations;
|
|
50
|
+
}
|
|
51
|
+
get namespace() {
|
|
52
|
+
return this.lastDerived?.namespace ?? this.unboundNamespace;
|
|
53
|
+
}
|
|
54
|
+
get fullNamespace() {
|
|
55
|
+
return this.lastDerived?.fullNamespace ?? this.unboundFullNamespace;
|
|
56
|
+
}
|
|
57
|
+
resolveBase() {
|
|
58
|
+
const runtime = this.handedRuntime ?? getVibesRuntime();
|
|
59
|
+
const lifecycle = runtime.lifecycle;
|
|
60
|
+
if (this.handedRuntime && isLoggingEmissionClosed(runtime))
|
|
61
|
+
throw new CapabilityError('The logger Runtime no longer accepts entries.', 'CANCELLED', {
|
|
62
|
+
reason: 'logger-runtime-disposed', cause: lifecycle.signal.reason
|
|
63
|
+
});
|
|
64
|
+
const id = this.source.idFor(runtime);
|
|
65
|
+
const state = existingState(runtime);
|
|
66
|
+
const prepared = state?.prepared;
|
|
67
|
+
if (!state || !prepared)
|
|
68
|
+
throw new CapabilityError('Logging has not been prepared on this Runtime.', 'UNAVAILABLE', {
|
|
69
|
+
reason: 'logger-not-initialized', retryable: false, details: { id }
|
|
70
|
+
});
|
|
71
|
+
const registered = state.registered.get(id);
|
|
72
|
+
if (registered)
|
|
73
|
+
return registered;
|
|
74
|
+
const resolved = prepared.resolved.get(id);
|
|
75
|
+
if (resolved)
|
|
76
|
+
return resolved;
|
|
77
|
+
let fallback = prepared.fallbacks.get(id);
|
|
78
|
+
if (!fallback) {
|
|
79
|
+
fallback = prepared.createFallback(id);
|
|
80
|
+
prepared.fallbacks.set(id, fallback);
|
|
81
|
+
}
|
|
82
|
+
return fallback;
|
|
83
|
+
}
|
|
84
|
+
resolveTarget() {
|
|
85
|
+
const base = this.resolveBase();
|
|
86
|
+
let derived = this.derivedByBase.get(base);
|
|
87
|
+
if (!derived) {
|
|
88
|
+
derived = this.derivations.reduce((logger, derive) => derive(logger), base);
|
|
89
|
+
this.derivedByBase.set(base, derived);
|
|
90
|
+
}
|
|
91
|
+
this.lastDerived = derived;
|
|
92
|
+
return derived;
|
|
93
|
+
}
|
|
94
|
+
debug = ForwardedLogCallSchema.implement((message, context, extraContext) => { this.resolveTarget().debug(message, context, extraContext); });
|
|
95
|
+
info = ForwardedLogCallSchema.implement((message, context, extraContext) => { this.resolveTarget().info(message, context, extraContext); });
|
|
96
|
+
warn = ForwardedLogCallSchema.implement((message, context, extraContext) => { this.resolveTarget().warn(message, context, extraContext); });
|
|
97
|
+
error = ForwardedLogCallSchema.implement((message, context, extraContext) => { this.resolveTarget().error(message, context, extraContext); });
|
|
98
|
+
derive(fullNamespace, derivation) {
|
|
99
|
+
return new LazyLoggerImplementation(this.source, this.unboundNamespace, fullNamespace, [...this.derivations, derivation], this.handedRuntime);
|
|
100
|
+
}
|
|
101
|
+
/**
|
|
102
|
+
* The options are read once, here, without throwing; the bound logger is
|
|
103
|
+
* handed the detached snapshot, never the caller's object, so no later log
|
|
104
|
+
* call reads it again. An unreadable one rides every entry as the
|
|
105
|
+
* `loggingError` and is reported once by the logger the snapshot binds to.
|
|
106
|
+
*/
|
|
107
|
+
child(options) {
|
|
108
|
+
const config = deriveChildConfig(this.unboundFullNamespace, options);
|
|
109
|
+
const snapshot = childOptionsSnapshot(options, config);
|
|
110
|
+
return this.derive(config.nextNamespace, (logger) => logger.child(snapshot));
|
|
111
|
+
}
|
|
112
|
+
withContext(context) {
|
|
113
|
+
return this.derive(this.unboundFullNamespace, (logger) => logger.withContext(context));
|
|
114
|
+
}
|
|
115
|
+
withRequestContext(context) {
|
|
116
|
+
return this.derive(this.unboundFullNamespace, (logger) => logger.withRequestContext(context));
|
|
117
|
+
}
|
|
118
|
+
withJobContext(context) {
|
|
119
|
+
return this.derive(this.unboundFullNamespace, (logger) => logger.withJobContext(context));
|
|
120
|
+
}
|
|
121
|
+
performanceTracker(params) {
|
|
122
|
+
return this.resolveTarget().performanceTracker(params);
|
|
123
|
+
}
|
|
124
|
+
}
|
|
125
|
+
const defaultConfig = LoggerContextConfigSchema.parse({
|
|
9
126
|
defaultNamespace: 'vibes',
|
|
10
127
|
defaultRuntime: 'server'
|
|
11
|
-
};
|
|
12
|
-
|
|
13
|
-
|
|
14
|
-
|
|
15
|
-
|
|
16
|
-
|
|
17
|
-
|
|
18
|
-
|
|
19
|
-
|
|
20
|
-
|
|
21
|
-
|
|
22
|
-
|
|
23
|
-
|
|
24
|
-
|
|
25
|
-
|
|
26
|
-
|
|
27
|
-
|
|
28
|
-
|
|
29
|
-
|
|
30
|
-
|
|
31
|
-
|
|
32
|
-
|
|
33
|
-
|
|
34
|
-
|
|
35
|
-
|
|
36
|
-
|
|
37
|
-
|
|
38
|
-
|
|
39
|
-
|
|
40
|
-
|
|
41
|
-
|
|
42
|
-
|
|
43
|
-
|
|
44
|
-
|
|
45
|
-
|
|
128
|
+
});
|
|
129
|
+
const stateByRoot = new WeakMap();
|
|
130
|
+
/**
|
|
131
|
+
* In-flight `initializeLoggers` per lifecycle: one preparation reads one
|
|
132
|
+
* registry (a generation's may differ from its Root's), and its result is
|
|
133
|
+
* the Root's preparation.
|
|
134
|
+
*/
|
|
135
|
+
const pendingByLifecycle = new WeakMap();
|
|
136
|
+
/** The provider bound to one handed runtime: its lazy loggers keep that runtime's emission window. */
|
|
137
|
+
const boundLoggerContexts = new WeakMap();
|
|
138
|
+
/** The state of this Runtime's Root, if any was recorded. */
|
|
139
|
+
function existingState(runtime) {
|
|
140
|
+
return stateByRoot.get(loggingRootOf(runtime));
|
|
141
|
+
}
|
|
142
|
+
/** The state this Runtime's Root owns, created on first use. */
|
|
143
|
+
function stateFor(runtime) {
|
|
144
|
+
const found = existingState(runtime);
|
|
145
|
+
if (found)
|
|
146
|
+
return found;
|
|
147
|
+
const state = { registered: new Map(), config: { ...defaultConfig }, provider: undefined, prepared: undefined };
|
|
148
|
+
stateByRoot.set(loggingRootOf(runtime), state);
|
|
149
|
+
return state;
|
|
150
|
+
}
|
|
151
|
+
/** The Runtime a call targets: the one handed, else the process's default binding (refuses when none is bootstrapped). */
|
|
152
|
+
function targetRuntime(runtime) {
|
|
153
|
+
return runtime ?? getVibesRuntime();
|
|
154
|
+
}
|
|
155
|
+
/** Configure this Runtime's logger-context defaults; they never reach another Runtime. */
|
|
156
|
+
export function configureLoggerContext(config, runtime) {
|
|
157
|
+
const state = stateFor(targetRuntime(runtime));
|
|
158
|
+
state.config = { ...state.config, ...LoggerContextConfigSchema.partial().parse(config) };
|
|
159
|
+
}
|
|
160
|
+
export function getLoggerContextConfig(runtime) {
|
|
161
|
+
return { ...(existingState(targetRuntime(runtime))?.config ?? defaultConfig) };
|
|
162
|
+
}
|
|
163
|
+
function withHostEnvironment(logger, runtime) {
|
|
164
|
+
const tier = runtime.scope.qualifiers.environmentTier;
|
|
165
|
+
return tier ? logger.withContext({ environment: tier }) : logger;
|
|
166
|
+
}
|
|
167
|
+
/** Register `logger` for `id` on this Runtime only; it takes precedence over the Runtime's resolved logger. */
|
|
168
|
+
export function registerLogger(id, logger, runtime) {
|
|
169
|
+
stateFor(targetRuntime(runtime)).registered.set(id, logger);
|
|
170
|
+
}
|
|
171
|
+
/** Prepare only host diagnostics; registration must never read stored settings. */
|
|
172
|
+
export async function prepareLoggerContext(runtime) {
|
|
173
|
+
const state = stateFor(runtime);
|
|
174
|
+
if (state.prepared)
|
|
175
|
+
return;
|
|
176
|
+
const createFallback = await prepareUndeclaredLoggerFactory(runtime);
|
|
177
|
+
state.prepared = { createFallback, resolved: new Map(), fallbacks: new Map() };
|
|
178
|
+
}
|
|
179
|
+
/** Explicit awaited host preparation; synchronous emits never start host work. */
|
|
180
|
+
export function initializeLoggers(runtime) {
|
|
181
|
+
if (!runtime)
|
|
182
|
+
return Promise.reject(new CapabilityError('Logger initialization requires a handed Runtime.', 'INVALID_INPUT', {
|
|
183
|
+
reason: 'logger-runtime-missing', retryable: false
|
|
184
|
+
}));
|
|
185
|
+
const lifecycle = runtime.lifecycle;
|
|
186
|
+
const pending = pendingByLifecycle.get(lifecycle);
|
|
187
|
+
if (pending)
|
|
188
|
+
return pending;
|
|
189
|
+
const operation = prepareLoggers(runtime).finally(() => pendingByLifecycle.delete(lifecycle));
|
|
190
|
+
pendingByLifecycle.set(lifecycle, operation);
|
|
191
|
+
return operation;
|
|
192
|
+
}
|
|
193
|
+
async function prepareLoggers(runtime) {
|
|
194
|
+
const createFallback = await prepareUndeclaredLoggerFactory(runtime);
|
|
195
|
+
const resolved = new Map();
|
|
196
|
+
const errors = [];
|
|
197
|
+
if (runtime.hasKind('logging/logger')) {
|
|
198
|
+
for (const descriptor of runtime.query('logging/logger').descriptors()) {
|
|
199
|
+
if (descriptor.runtime === 'mcp' && runtime.scope.surface !== 'mcp' && runtime.scope.purpose !== 'mcp')
|
|
200
|
+
continue;
|
|
201
|
+
const loaded = await settle(runtime.query('logging/logger').withId(descriptor.id).resolve()
|
|
202
|
+
.then(logger => withHostEnvironment(logger, runtime)));
|
|
203
|
+
if (loaded.failed)
|
|
204
|
+
errors.push({ id: descriptor.id, error: LoggedErrorSchema.parse(loaded.cause) });
|
|
205
|
+
else
|
|
206
|
+
resolved.set(descriptor.id, loaded.value);
|
|
46
207
|
}
|
|
47
208
|
}
|
|
48
|
-
|
|
49
|
-
|
|
50
|
-
|
|
51
|
-
fallbackLogger.debug('Runtime not available for logger initialization, using fallback loggers', {
|
|
52
|
-
error: error instanceof Error ? error.message : String(error)
|
|
209
|
+
if (errors.length) {
|
|
210
|
+
(await prepareFallbackLoggerFactory(runtime))('logging').warn(`Failed to initialize ${errors.length} logger(s):`, {
|
|
211
|
+
loggerIds: errors.map(failure => failure.id), errors: errors.map(failure => failure.error)
|
|
53
212
|
});
|
|
54
213
|
}
|
|
214
|
+
stateFor(runtime).prepared = { createFallback, resolved, fallbacks: new Map() };
|
|
55
215
|
}
|
|
56
|
-
|
|
57
|
-
|
|
216
|
+
/** A provider's lazy loggers bind at emit to the Runtime handed here, else to the default binding. */
|
|
217
|
+
export function createLoggerContextProvider(config, runtime) {
|
|
218
|
+
const overrides = LoggerContextConfigSchema.partial().parse(config ?? {});
|
|
219
|
+
const defaultNamespaceFor = (target) => overrides.defaultNamespace ?? getLoggerContextConfig(target).defaultNamespace;
|
|
220
|
+
// Memoize lazy loggers per provider so getLogger('x') returns the same instance
|
|
221
|
+
const lazyLoggerCache = new Map();
|
|
222
|
+
let lazyDefault;
|
|
58
223
|
return {
|
|
59
224
|
getLogger(id) {
|
|
60
|
-
|
|
61
|
-
|
|
62
|
-
|
|
63
|
-
|
|
64
|
-
|
|
65
|
-
|
|
225
|
+
// Return a lazy logger that defers resolution to first emit
|
|
226
|
+
let lazy = lazyLoggerCache.get(id);
|
|
227
|
+
if (!lazy) {
|
|
228
|
+
lazy = new LazyLoggerImplementation({ idFor: () => id }, id, id, [], runtime);
|
|
229
|
+
lazyLoggerCache.set(id, lazy);
|
|
230
|
+
}
|
|
231
|
+
return lazy;
|
|
66
232
|
},
|
|
67
233
|
getDefaultLogger() {
|
|
68
|
-
|
|
234
|
+
// The default namespace is the emitting Runtime's own configuration, read at emit.
|
|
235
|
+
lazyDefault ??= new LazyLoggerImplementation({ idFor: defaultNamespaceFor }, overrides.defaultNamespace ?? (runtime ? getLoggerContextConfig(runtime).defaultNamespace : defaultConfig.defaultNamespace), undefined, [], runtime);
|
|
236
|
+
return lazyDefault;
|
|
69
237
|
}
|
|
70
238
|
};
|
|
71
239
|
}
|
|
72
|
-
|
|
73
|
-
export function getLoggerContext() {
|
|
74
|
-
|
|
75
|
-
|
|
240
|
+
/** The provider this Runtime serves: the one substituted with `setLoggerContext`, else the one bound to it. */
|
|
241
|
+
export function getLoggerContext(runtime) {
|
|
242
|
+
const target = targetRuntime(runtime);
|
|
243
|
+
const substituted = existingState(target)?.provider;
|
|
244
|
+
if (substituted)
|
|
245
|
+
return substituted;
|
|
246
|
+
let provider = boundLoggerContexts.get(target);
|
|
247
|
+
if (!provider) {
|
|
248
|
+
provider = createLoggerContextProvider(undefined, target);
|
|
249
|
+
boundLoggerContexts.set(target, provider);
|
|
76
250
|
}
|
|
77
|
-
return
|
|
251
|
+
return provider;
|
|
78
252
|
}
|
|
79
|
-
|
|
80
|
-
|
|
253
|
+
/** Substitute the provider that `getLogger(id, runtime)` and `getDefaultLogger(runtime)` serve for this Runtime only. */
|
|
254
|
+
export function setLoggerContext(provider, runtime) {
|
|
255
|
+
stateFor(targetRuntime(runtime)).provider = provider;
|
|
81
256
|
}
|
|
82
|
-
|
|
83
|
-
|
|
257
|
+
/**
|
|
258
|
+
* A logger by id. With a Runtime it is that Runtime's logger through its
|
|
259
|
+
* provider; without one it is a lazy logger bound at emit to the default binding.
|
|
260
|
+
*/
|
|
261
|
+
export function getLogger(id, runtime) {
|
|
262
|
+
return (runtime ? getLoggerContext(runtime) : createLoggerContextProvider()).getLogger(id);
|
|
84
263
|
}
|
|
85
|
-
export function getDefaultLogger() {
|
|
86
|
-
return getLoggerContext().getDefaultLogger();
|
|
264
|
+
export function getDefaultLogger(runtime) {
|
|
265
|
+
return (runtime ? getLoggerContext(runtime) : createLoggerContextProvider()).getDefaultLogger();
|
|
87
266
|
}
|
|
88
267
|
//# sourceMappingURL=logger.js.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"logger.js","sourceRoot":"","sources":["../../src/contexts/logger.ts"],"names":[],"mappings":"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"}
|
|
1
|
+
{"version":3,"file":"logger.js","sourceRoot":"","sources":["../../src/contexts/logger.ts"],"names":[],"mappings":"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"}
|
|
@@ -0,0 +1,30 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* Keep a raised failure as a value so the caller decides what it means.
|
|
3
|
+
*
|
|
4
|
+
* A host call (filesystem, stdio, a handed callback) answers with a value or
|
|
5
|
+
* raises. These helpers turn the raise into a `Failure` that carries the
|
|
6
|
+
* failure exactly as raised plus the errno category it names, parsed once
|
|
7
|
+
* here. A caller then handles only the categories it owns (a missing path is
|
|
8
|
+
* `ENOENT`) and rethrows, records or reports every other failure with its
|
|
9
|
+
* cause intact.
|
|
10
|
+
*/
|
|
11
|
+
/** A failure an operation raised. */
|
|
12
|
+
export interface Failure {
|
|
13
|
+
/** The errno category (`ENOENT`, `EACCES`, …), or null when the failure names none. */
|
|
14
|
+
readonly code: string | null;
|
|
15
|
+
/** The failure as it was raised; a caller that does not handle it rethrows this value unchanged. */
|
|
16
|
+
readonly cause: unknown;
|
|
17
|
+
}
|
|
18
|
+
/** What an operation answered: its value, or the failure it raised, never both. */
|
|
19
|
+
export type Attempt<T> = {
|
|
20
|
+
readonly value: T;
|
|
21
|
+
} | {
|
|
22
|
+
readonly failure: Failure;
|
|
23
|
+
};
|
|
24
|
+
/** Run a synchronous operation and keep its failure as a value. */
|
|
25
|
+
export declare function attemptSync<T>(operation: () => T): Attempt<T>;
|
|
26
|
+
/** Run an asynchronous operation and keep its failure (a throw or a rejection) as a value. */
|
|
27
|
+
export declare function attempt<T>(operation: () => Promise<T>): Promise<Attempt<T>>;
|
|
28
|
+
/** The one confirmed-absence category: the path is not there. */
|
|
29
|
+
export declare function isMissingPath(failure: Failure): boolean;
|
|
30
|
+
//# sourceMappingURL=attempt.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"attempt.d.ts","sourceRoot":"","sources":["../../src/core/attempt.ts"],"names":[],"mappings":"AAAA;;;;;;;;;GASG;AAgBH,qCAAqC;AACrC,MAAM,WAAW,OAAO;IACvB,uFAAuF;IACvF,QAAQ,CAAC,IAAI,EAAE,MAAM,GAAG,IAAI,CAAC;IAC7B,oGAAoG;IACpG,QAAQ,CAAC,KAAK,EAAE,OAAO,CAAC;CACxB;AAED,mFAAmF;AACnF,MAAM,MAAM,OAAO,CAAC,CAAC,IAAI;IAAE,QAAQ,CAAC,KAAK,EAAE,CAAC,CAAA;CAAE,GAAG;IAAE,QAAQ,CAAC,OAAO,EAAE,OAAO,CAAA;CAAE,CAAC;AAE/E,mEAAmE;AACnE,wBAAgB,WAAW,CAAC,CAAC,EAAE,SAAS,EAAE,MAAM,CAAC,GAAG,OAAO,CAAC,CAAC,CAAC,CAM7D;AAED,8FAA8F;AAC9F,wBAAsB,OAAO,CAAC,CAAC,EAAE,SAAS,EAAE,MAAM,OAAO,CAAC,CAAC,CAAC,GAAG,OAAO,CAAC,OAAO,CAAC,CAAC,CAAC,CAAC,CAMjF;AAED,iEAAiE;AACjE,wBAAgB,aAAa,CAAC,OAAO,EAAE,OAAO,GAAG,OAAO,CAEvD"}
|
|
@@ -0,0 +1,44 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* Keep a raised failure as a value so the caller decides what it means.
|
|
3
|
+
*
|
|
4
|
+
* A host call (filesystem, stdio, a handed callback) answers with a value or
|
|
5
|
+
* raises. These helpers turn the raise into a `Failure` that carries the
|
|
6
|
+
* failure exactly as raised plus the errno category it names, parsed once
|
|
7
|
+
* here. A caller then handles only the categories it owns (a missing path is
|
|
8
|
+
* `ENOENT`) and rethrows, records or reports every other failure with its
|
|
9
|
+
* cause intact.
|
|
10
|
+
*/
|
|
11
|
+
import * as z from 'zod/v4';
|
|
12
|
+
import { attempt as attemptOutcome } from "./outcome.js";
|
|
13
|
+
const NativeCodeSchema = z.object({ code: z.string() });
|
|
14
|
+
/**
|
|
15
|
+
* The errno category a raised value names, or null. Reading it never throws: a
|
|
16
|
+
* value whose `code` read throws (a getter or Proxy trap) names no category.
|
|
17
|
+
*/
|
|
18
|
+
const NativeCodeOfSchema = z.unknown().transform((cause) => {
|
|
19
|
+
const native = attemptOutcome(() => NativeCodeSchema.safeParse(cause));
|
|
20
|
+
return !native.failed && native.value.success ? native.value.data.code : null;
|
|
21
|
+
});
|
|
22
|
+
/** Run a synchronous operation and keep its failure as a value. */
|
|
23
|
+
export function attemptSync(operation) {
|
|
24
|
+
try {
|
|
25
|
+
return { value: operation() };
|
|
26
|
+
}
|
|
27
|
+
catch (cause) {
|
|
28
|
+
return { failure: { code: NativeCodeOfSchema.parse(cause), cause } };
|
|
29
|
+
}
|
|
30
|
+
}
|
|
31
|
+
/** Run an asynchronous operation and keep its failure (a throw or a rejection) as a value. */
|
|
32
|
+
export async function attempt(operation) {
|
|
33
|
+
try {
|
|
34
|
+
return { value: await operation() };
|
|
35
|
+
}
|
|
36
|
+
catch (cause) {
|
|
37
|
+
return { failure: { code: NativeCodeOfSchema.parse(cause), cause } };
|
|
38
|
+
}
|
|
39
|
+
}
|
|
40
|
+
/** The one confirmed-absence category: the path is not there. */
|
|
41
|
+
export function isMissingPath(failure) {
|
|
42
|
+
return failure.code === 'ENOENT';
|
|
43
|
+
}
|
|
44
|
+
//# sourceMappingURL=attempt.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"attempt.js","sourceRoot":"","sources":["../../src/core/attempt.ts"],"names":[],"mappings":"AAAA;;;;;;;;;GASG;AAEH,OAAO,KAAK,CAAC,MAAM,QAAQ,CAAC;AAC5B,OAAO,EAAE,OAAO,IAAI,cAAc,EAAE,MAAM,cAAc,CAAC;AAEzD,MAAM,gBAAgB,GAAG,CAAC,CAAC,MAAM,CAAC,EAAE,IAAI,EAAE,CAAC,CAAC,MAAM,EAAE,EAAE,CAAC,CAAC;AAExD;;;GAGG;AACH,MAAM,kBAAkB,GAAG,CAAC,CAAC,OAAO,EAAE,CAAC,SAAS,CAAC,CAAC,KAAK,EAAiB,EAAE;IACzE,MAAM,MAAM,GAAG,cAAc,CAAC,GAAG,EAAE,CAAC,gBAAgB,CAAC,SAAS,CAAC,KAAK,CAAC,CAAC,CAAC;IACvE,OAAO,CAAC,MAAM,CAAC,MAAM,IAAI,MAAM,CAAC,KAAK,CAAC,OAAO,CAAC,CAAC,CAAC,MAAM,CAAC,KAAK,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC,CAAC,IAAI,CAAC;AAC/E,CAAC,CAAC,CAAC;AAaH,mEAAmE;AACnE,MAAM,UAAU,WAAW,CAAI,SAAkB;IAChD,IAAI,CAAC;QACJ,OAAO,EAAE,KAAK,EAAE,SAAS,EAAE,EAAE,CAAC;IAC/B,CAAC;IAAC,OAAO,KAAK,EAAE,CAAC;QAChB,OAAO,EAAE,OAAO,EAAE,EAAE,IAAI,EAAE,kBAAkB,CAAC,KAAK,CAAC,KAAK,CAAC,EAAE,KAAK,EAAE,EAAE,CAAC;IACtE,CAAC;AACF,CAAC;AAED,8FAA8F;AAC9F,MAAM,CAAC,KAAK,UAAU,OAAO,CAAI,SAA2B;IAC3D,IAAI,CAAC;QACJ,OAAO,EAAE,KAAK,EAAE,MAAM,SAAS,EAAE,EAAE,CAAC;IACrC,CAAC;IAAC,OAAO,KAAK,EAAE,CAAC;QAChB,OAAO,EAAE,OAAO,EAAE,EAAE,IAAI,EAAE,kBAAkB,CAAC,KAAK,CAAC,KAAK,CAAC,EAAE,KAAK,EAAE,EAAE,CAAC;IACtE,CAAC;AACF,CAAC;AAED,iEAAiE;AACjE,MAAM,UAAU,aAAa,CAAC,OAAgB;IAC7C,OAAO,OAAO,CAAC,IAAI,KAAK,QAAQ,CAAC;AAClC,CAAC"}
|
|
@@ -0,0 +1,34 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* When a Runtime's loggers stop accepting entries.
|
|
3
|
+
*
|
|
4
|
+
* Disposal begins by aborting `lifecycle.signal`, then runs every plugin's
|
|
5
|
+
* `onDispose` in reverse dependency order, so a plugin that depends on Logging
|
|
6
|
+
* finalizes while Logging is still open and may log while it does. Emission
|
|
7
|
+
* therefore stays open through finalization and closes once Logging's own
|
|
8
|
+
* finalization ran on the Root (its plugin's or the host preparation plugin's
|
|
9
|
+
* `onDispose`), or once the handed runtime's own lifecycle phase is
|
|
10
|
+
* `disposed`.
|
|
11
|
+
*
|
|
12
|
+
* Two granularities, on purpose. The close Logging's finalization records is
|
|
13
|
+
* the Root's (`loggingRootOf(runtime)`): the Root, its views and every reload
|
|
14
|
+
* generation it still holds refuse from then on, because the services they
|
|
15
|
+
* borrow are being finalized. A runtime's own `disposed` phase is that
|
|
16
|
+
* lifecycle's: a retired generation refuses on its own, and its retirement
|
|
17
|
+
* never closes the Root or the generation now serving.
|
|
18
|
+
*/
|
|
19
|
+
import type { RuntimeRef } from '@vibesdotdev/kernel';
|
|
20
|
+
/**
|
|
21
|
+
* Logging's finalization on `runtime` ran: its Root's loggers refuse every
|
|
22
|
+
* later entry. It closes only a finalizing lifecycle. On a live Runtime
|
|
23
|
+
* (Logging retracted by `retractPlugin`, or a replaced Logging retiring with
|
|
24
|
+
* its reload generation, while the Root keeps running) it records nothing, so
|
|
25
|
+
* the Root's later disposal opens a full finalization window again.
|
|
26
|
+
*/
|
|
27
|
+
export declare function closeLoggingEmission(runtime: RuntimeRef): void;
|
|
28
|
+
/**
|
|
29
|
+
* True once `runtime` no longer accepts log entries: once Logging finalized
|
|
30
|
+
* its Root, and always once the runtime's own lifecycle is `disposed`; never
|
|
31
|
+
* otherwise, so a live or finalizing runtime of an open Root still emits.
|
|
32
|
+
*/
|
|
33
|
+
export declare function isLoggingEmissionClosed(runtime: RuntimeRef): boolean;
|
|
34
|
+
//# sourceMappingURL=emission-window.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"emission-window.d.ts","sourceRoot":"","sources":["../../src/core/emission-window.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;;;;GAiBG;AACH,OAAO,KAAK,EAAE,UAAU,EAAE,MAAM,qBAAqB,CAAC;AAMtD;;;;;;GAMG;AACH,wBAAgB,oBAAoB,CAAC,OAAO,EAAE,UAAU,GAAG,IAAI,CAG9D;AAED;;;;GAIG;AACH,wBAAgB,uBAAuB,CAAC,OAAO,EAAE,UAAU,GAAG,OAAO,CAGpE"}
|
|
@@ -0,0 +1,25 @@
|
|
|
1
|
+
import { loggingRootOf } from "./root-identity.js";
|
|
2
|
+
const closedRoots = new WeakSet();
|
|
3
|
+
/**
|
|
4
|
+
* Logging's finalization on `runtime` ran: its Root's loggers refuse every
|
|
5
|
+
* later entry. It closes only a finalizing lifecycle. On a live Runtime
|
|
6
|
+
* (Logging retracted by `retractPlugin`, or a replaced Logging retiring with
|
|
7
|
+
* its reload generation, while the Root keeps running) it records nothing, so
|
|
8
|
+
* the Root's later disposal opens a full finalization window again.
|
|
9
|
+
*/
|
|
10
|
+
export function closeLoggingEmission(runtime) {
|
|
11
|
+
if (runtime.lifecycle.phase === 'live')
|
|
12
|
+
return;
|
|
13
|
+
closedRoots.add(loggingRootOf(runtime));
|
|
14
|
+
}
|
|
15
|
+
/**
|
|
16
|
+
* True once `runtime` no longer accepts log entries: once Logging finalized
|
|
17
|
+
* its Root, and always once the runtime's own lifecycle is `disposed`; never
|
|
18
|
+
* otherwise, so a live or finalizing runtime of an open Root still emits.
|
|
19
|
+
*/
|
|
20
|
+
export function isLoggingEmissionClosed(runtime) {
|
|
21
|
+
if (closedRoots.has(loggingRootOf(runtime)))
|
|
22
|
+
return true;
|
|
23
|
+
return runtime.lifecycle.phase === 'disposed';
|
|
24
|
+
}
|
|
25
|
+
//# sourceMappingURL=emission-window.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"emission-window.js","sourceRoot":"","sources":["../../src/core/emission-window.ts"],"names":[],"mappings":"AAmBA,OAAO,EAAE,aAAa,EAAE,MAAM,oBAAoB,CAAC;AAGnD,MAAM,WAAW,GAAG,IAAI,OAAO,EAAuB,CAAC;AAEvD;;;;;;GAMG;AACH,MAAM,UAAU,oBAAoB,CAAC,OAAmB;IACvD,IAAI,OAAO,CAAC,SAAS,CAAC,KAAK,KAAK,MAAM;QAAE,OAAO;IAC/C,WAAW,CAAC,GAAG,CAAC,aAAa,CAAC,OAAO,CAAC,CAAC,CAAC;AACzC,CAAC;AAED;;;;GAIG;AACH,MAAM,UAAU,uBAAuB,CAAC,OAAmB;IAC1D,IAAI,WAAW,CAAC,GAAG,CAAC,aAAa,CAAC,OAAO,CAAC,CAAC;QAAE,OAAO,IAAI,CAAC;IACzD,OAAO,OAAO,CAAC,SAAS,CAAC,KAAK,KAAK,UAAU,CAAC;AAC/C,CAAC"}
|
|
@@ -0,0 +1,54 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* Endpoint echoes. A configured endpoint may carry credentials in its userinfo
|
|
3
|
+
* (`user:password@host`) or query (`?token=...`). Everything Logging logs,
|
|
4
|
+
* reports or returns about an endpoint passes through these schemas, so only
|
|
5
|
+
* scheme, host, port and path are ever echoed. Path segments are kept (they
|
|
6
|
+
* name the collector route); a secret does not belong in a path.
|
|
7
|
+
*/
|
|
8
|
+
import * as z from 'zod/v4';
|
|
9
|
+
import { type LoggedError } from './redact.ts';
|
|
10
|
+
/** What an endpoint that is not a URL echoes as: its text could be anything, so none of it is shown. */
|
|
11
|
+
export declare const UNPARSEABLE_ENDPOINT = "[unparseable-endpoint]";
|
|
12
|
+
/** An endpoint reduced to the parts that are safe to echo: userinfo, query and fragment are dropped. Any other value refuses as a `ZodError`. */
|
|
13
|
+
export declare const RedactedEndpointSchema: z.ZodPipe<z.ZodCustom<string, string>, z.ZodTransform<string, string>>;
|
|
14
|
+
/**
|
|
15
|
+
* Query parameter names whose value is a credential (case-insensitive). The
|
|
16
|
+
* rule is the log redaction's own: every name `isSecretKey` calls secret (so
|
|
17
|
+
* the two share one credential-word list, `CREDENTIAL_KEY_WORDS`), plus
|
|
18
|
+
* the names a URL uses for a credential that a log key does not (`code`,
|
|
19
|
+
* `session`, `sid`, `sig`) and any name ending in `_key` or `-key`. This list
|
|
20
|
+
* names the common ones; every one of them is a credential under that rule.
|
|
21
|
+
* Other parameters (`format=json`, `v=1`) are not credentials, so their values
|
|
22
|
+
* are not matched on their own; the whole query still is.
|
|
23
|
+
*/
|
|
24
|
+
export declare const CREDENTIAL_QUERY_PARAMETER_NAMES: readonly ["token", "key", "apikey", "api_key", "access_token", "secret", "sig", "signature", "password", "pass", "pwd", "auth", "authorization", "code", "session", "sessionid", "sid", "jwt", "bearer", "credential"];
|
|
25
|
+
/** Below this length a fragment is matched only as a whole token; at or above it, anywhere. */
|
|
26
|
+
export declare const SUBSTRING_FRAGMENT_MIN_LENGTH = 4;
|
|
27
|
+
/** What a response-derived text becomes when it cannot be scrubbed (not a string, or the scrubber cannot be built): none of it is shown. */
|
|
28
|
+
export declare const UNSCRUBBABLE_TEXT = "[unscrubbable-text]";
|
|
29
|
+
/**
|
|
30
|
+
* A text a peer of `endpoint` controls (a collector's HTTP reason phrase, a
|
|
31
|
+
* header or body excerpt), with the endpoint's credentials removed by the same
|
|
32
|
+
* one-pass scrubber as a failure description. A collector can echo the request
|
|
33
|
+
* line (`401 rejected POST /v1/logs?token=...`), so such text is never logged,
|
|
34
|
+
* reported or attributed raw. `secrets` are the secret values the request
|
|
35
|
+
* carried beside the endpoint (its header values); each is removed the same way.
|
|
36
|
+
* It never throws: a value that is not a string, or a scrubber that cannot be
|
|
37
|
+
* built, becomes {@link UNSCRUBBABLE_TEXT}.
|
|
38
|
+
*/
|
|
39
|
+
export declare function createEndpointTextSchema(endpoint: string, secrets?: readonly string[]): z.ZodType<string>;
|
|
40
|
+
/** What a failure is described as when its description cannot be scrubbed: no value of it is shown. */
|
|
41
|
+
export declare const UNSCRUBBABLE_FAILURE_MESSAGE = "The failure could not be described without its endpoint credentials, so none of its text is shown.";
|
|
42
|
+
/**
|
|
43
|
+
* A schema describing any thrown value that failed while using `endpoint`, with the
|
|
44
|
+
* endpoint's credentials removed from every string value the description carries
|
|
45
|
+
* (message, stack, fields such as a runtime's request `path`, details, cause chain,
|
|
46
|
+
* aggregate members), and every value in `secrets` (the header values a request
|
|
47
|
+
* carried: a transport failure can echo one, e.g. `Header 'Authorization' has
|
|
48
|
+
* invalid value: 'Bearer ...'`) removed the same way, so a failure from a
|
|
49
|
+
* credentialed request carries none of its header values. It never throws: a value that cannot be described and
|
|
50
|
+
* scrubbed is described by name and a fixed message, so the caller's own failure
|
|
51
|
+
* (a fetch error, a write's re-buffering) is never replaced by a scrub failure.
|
|
52
|
+
*/
|
|
53
|
+
export declare function createEndpointFailureSchema(endpoint: string, secrets?: readonly string[]): z.ZodType<LoggedError>;
|
|
54
|
+
//# sourceMappingURL=endpoint.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"endpoint.d.ts","sourceRoot":"","sources":["../../src/core/endpoint.ts"],"names":[],"mappings":"AAAA;;;;;;GAMG;AACH,OAAO,KAAK,CAAC,MAAM,QAAQ,CAAC;AAG5B,OAAO,EAAgE,KAAK,WAAW,EAAE,MAAM,aAAa,CAAC;AAE7G,wGAAwG;AACxG,eAAO,MAAM,oBAAoB,2BAA2B,CAAC;AAE7D,iJAAiJ;AACjJ,eAAO,MAAM,sBAAsB,wEAUjC,CAAC;AAgCH;;;;;;;;;GASG;AACH,eAAO,MAAM,gCAAgC,wNAGnC,CAAC;AAsDX,+FAA+F;AAC/F,eAAO,MAAM,6BAA6B,IAAI,CAAC;AAkC/C,4IAA4I;AAC5I,eAAO,MAAM,iBAAiB,wBAAwB,CAAC;AAEvD;;;;;;;;;GASG;AACH,wBAAgB,wBAAwB,CAAC,QAAQ,EAAE,MAAM,EAAE,OAAO,GAAE,SAAS,MAAM,EAAO,GAAG,CAAC,CAAC,OAAO,CAAC,MAAM,CAAC,CAO7G;AA2CD,uGAAuG;AACvG,eAAO,MAAM,4BAA4B,uGAAuG,CAAC;AAmBjJ;;;;;;;;;;GAUG;AACH,wBAAgB,2BAA2B,CAAC,QAAQ,EAAE,MAAM,EAAE,OAAO,GAAE,SAAS,MAAM,EAAO,GAAG,CAAC,CAAC,OAAO,CAAC,WAAW,CAAC,CAYrH"}
|