{"_id":"@agentage/observability","_rev":"33-f49e1679e45745335c0b1bfe9c151bf0","name":"@agentage/observability","dist-tags":{"latest":"1.1.0"},"versions":{"0.1.0":{"name":"@agentage/observability","version":"0.1.0","license":"MIT","_id":"@agentage/observability@0.1.0","maintainers":[{"name":"vreshch","email":"vreshch@gmail.com"}],"homepage":"https://github.com/agentage/observability#readme","bugs":{"url":"https://github.com/agentage/observability/issues"},"dist":{"shasum":"aa841b5467170f7d6c6a691c6a322574abd20b95","tarball":"https://registry.npmjs.org/@agentage/observability/-/observability-0.1.0.tgz","fileCount":26,"integrity":"sha512-3HKl8TnFOWc5FXdTx2tf3fknowJUss6PN0pt3siXX6GrLPD669FsnBdZEegrh+5Fo10TFfnTIHlaKB/VqGkAgA==","signatures":[{"sig":"MEUCIQDZ+GTMm7VCsAWBN3R54C0ezRyzrSIFXUWLiEh/ATyYfgIgYCohZYC9R/UnbC5i0UgMnOqQDGuqc4052smKZQMy7RU=","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"attestations":{"url":"https://registry.npmjs.org/-/npm/v1/attestations/@agentage%2fobservability@0.1.0","provenance":{"predicateType":"https://slsa.dev/provenance/v1"}},"unpackedSize":23075},"main":"dist/index.js","type":"module","types":"dist/index.d.ts","engines":{"node":">=22.13"},"exports":{".":{"types":"./dist/index.d.ts","import":"./dist/index.js"},"./bootstrap":{"types":"./dist/bootstrap.d.ts","import":"./dist/bootstrap.js"}},"gitHead":"e543cd9156f16d60b05a222c5a93f22df5cf6403","scripts":{"lint":"eslint .","test":"vitest run","build":"tsc -p tsconfig.build.json","format":"prettier --write .","verify":"npm run type-check && npm run lint && npm run format:check && npm run test && npm run build && npm run smoke:dist","smoke:dist":"node --input-type=module -e \"const k = await import('./dist/index.js'); if (typeof k.resolveTracingConfig !== 'function' || typeof k.createLogger !== 'function' || typeof k.captureError !== 'function') process.exit(1); await import('./dist/bootstrap.js'); console.log('dist smoke ok');\"","type-check":"tsc --noEmit","format:check":"prettier --check .","test:coverage":"vitest run --coverage","prepublishOnly":"npm run verify"},"_npmUser":{"name":"vreshch","email":"vreshch@gmail.com"},"repository":{"url":"git+https://github.com/agentage/observability.git","type":"git"},"_npmVersion":"10.9.8","description":"Shared observability kit for agentage services: OTLP trace bootstrap (node --import), pino logger preset with trace correlation, and one-call error capture.","directories":{},"_nodeVersion":"22.23.1","dependencies":{"pino":"^10.3.1","@opentelemetry/api":"1.9.1","@opentelemetry/sdk-node":"^0.221.0","@opentelemetry/resources":"2.10.0","@opentelemetry/instrumentation":"^0.221.0","@opentelemetry/semantic-conventions":"^1.43.0","@opentelemetry/auto-instrumentations-node":"^0.79.0"},"publishConfig":{"access":"public"},"_hasShrinkwrap":false,"devDependencies":{"eslint":"^10.0.0","vitest":"^4.0.18","prettier":"^3.6.2","@eslint/js":"^10.0.1","typescript":"^5.9.3","@types/node":"^24.0.0","@vitest/coverage-v8":"^4.0.18","eslint-config-prettier":"^10.1.8","eslint-plugin-prettier":"^5.5.4","@typescript-eslint/parser":"^8.46.4","@typescript-eslint/eslint-plugin":"^8.46.4"},"_npmOperationalInternal":{"tmp":"tmp/observability_0.1.0_1786147411510_0.06936608940674849","host":"s3://npm-registry-packages-npm-production"}},"0.1.1":{"name":"@agentage/observability","version":"0.1.1","license":"MIT","_id":"@agentage/observability@0.1.1","maintainers":[{"name":"vreshch","email":"vreshch@gmail.com"}],"homepage":"https://github.com/agentage/observability#readme","bugs":{"url":"https://github.com/agentage/observability/issues"},"dist":{"shasum":"5c34478ed828feb0c1e097ea1e8e9d93b9a5e0b5","tarball":"https://registry.npmjs.org/@agentage/observability/-/observability-0.1.1.tgz","fileCount":26,"integrity":"sha512-lK0Vp3nzTV1BoIAJYAjvtIuL0GLlNbbEswFLveVJFaV9pLE4KzQ5FWfDDMA8lj2BWOnluirzi8Q320UnPzT9bA==","signatures":[{"sig":"MEQCIAMdlfJXsJEiMR9M5feFNFv1WplrXvlCetdM0sAfApkBAiA+1WCiu34a6I3h8SNN9QuD/uE0nUuDAQ7sOpIVGknrEQ==","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"attestations":{"url":"https://registry.npmjs.org/-/npm/v1/attestations/@agentage%2fobservability@0.1.1","provenance":{"predicateType":"https://slsa.dev/provenance/v1"}},"unpackedSize":24121},"main":"dist/index.js","type":"module","types":"dist/index.d.ts","engines":{"node":">=22.13"},"exports":{".":{"types":"./dist/index.d.ts","import":"./dist/index.js"},"./bootstrap":{"types":"./dist/bootstrap.d.ts","import":"./dist/bootstrap.js"}},"gitHead":"cc5fcb899d7b676c3b4b9a246e59be7d7c4315b2","scripts":{"lint":"eslint .","test":"vitest run","build":"tsc -p tsconfig.build.json","format":"prettier --write .","verify":"npm run type-check && npm run lint && npm run format:check && npm run test && npm run build && npm run smoke:dist","smoke:dist":"node --input-type=module -e \"const k = await import('./dist/index.js'); if (typeof k.resolveTracingConfig !== 'function' || typeof k.createLogger !== 'function' || typeof k.captureError !== 'function') process.exit(1); await import('./dist/bootstrap.js'); console.log('dist smoke ok');\"","type-check":"tsc --noEmit","format:check":"prettier --check .","test:coverage":"vitest run --coverage","prepublishOnly":"npm run verify"},"_npmUser":{"name":"vreshch","email":"vreshch@gmail.com"},"repository":{"url":"git+https://github.com/agentage/observability.git","type":"git"},"_npmVersion":"10.9.8","description":"Shared observability kit for agentage services: OTLP trace bootstrap (node --import), pino logger preset with trace correlation, and one-call error capture.","directories":{},"_nodeVersion":"22.23.1","dependencies":{"pino":"^10.3.1","@opentelemetry/api":"1.9.1","@opentelemetry/sdk-node":"^0.221.0","@opentelemetry/resources":"2.10.0","@opentelemetry/instrumentation":"^0.221.0","@opentelemetry/semantic-conventions":"^1.43.0","@opentelemetry/auto-instrumentations-node":"^0.79.0"},"publishConfig":{"access":"public"},"_hasShrinkwrap":false,"devDependencies":{"eslint":"^10.0.0","vitest":"^4.0.18","prettier":"^3.6.2","@eslint/js":"^10.0.1","typescript":"^5.9.3","@types/node":"^24.0.0","@vitest/coverage-v8":"^4.0.18","eslint-config-prettier":"^10.1.8","eslint-plugin-prettier":"^5.5.4","@typescript-eslint/parser":"^8.46.4","@typescript-eslint/eslint-plugin":"^8.46.4"},"_npmOperationalInternal":{"tmp":"tmp/observability_0.1.1_1786148094791_0.8955712118888477","host":"s3://npm-registry-packages-npm-production"}},"0.2.0":{"name":"@agentage/observability","version":"0.2.0","license":"MIT","_id":"@agentage/observability@0.2.0","maintainers":[{"name":"vreshch","email":"vreshch@gmail.com"}],"homepage":"https://github.com/agentage/observability#readme","bugs":{"url":"https://github.com/agentage/observability/issues"},"dist":{"shasum":"d92d29c284a5f6c83e1d46a833aebd795406bb75","tarball":"https://registry.npmjs.org/@agentage/observability/-/observability-0.2.0.tgz","fileCount":30,"integrity":"sha512-FM5gxOBQYPTYEaE8ug2TNHaeUIGz4Iet2/KZADFDfG8W9ejhOWjDsnZP4YbQENwlsqIjgqkWLPjka4eN6hRY9w==","signatures":[{"sig":"MEUCIB1nWvQ1UDGFH84yyxO7pfhMc7WmpEFRW2LrtOHZVIylAiEAw0fnFY7E/OvkK9TVutN++Hcf6UpGDcXwSvol+kFhMO8=","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"attestations":{"url":"https://registry.npmjs.org/-/npm/v1/attestations/@agentage%2fobservability@0.2.0","provenance":{"predicateType":"https://slsa.dev/provenance/v1"}},"unpackedSize":26072},"main":"dist/index.js","type":"module","types":"dist/index.d.ts","engines":{"node":">=22.13"},"exports":{".":{"types":"./dist/index.d.ts","import":"./dist/index.js"},"./next":{"types":"./dist/next.d.ts","import":"./dist/next.js"},"./bootstrap":{"types":"./dist/bootstrap.d.ts","import":"./dist/bootstrap.js"}},"gitHead":"767e5875b93c5445e7233b1fc38d91d78175bbd1","scripts":{"lint":"eslint .","test":"vitest run","build":"tsc -p tsconfig.build.json","format":"prettier --write .","verify":"npm run type-check && npm run lint && npm run format:check && npm run test && npm run build && npm run smoke:dist","smoke:dist":"node --input-type=module -e \"const k = await import('./dist/index.js'); if (typeof k.resolveTracingConfig !== 'function' || typeof k.createLogger !== 'function' || typeof k.captureError !== 'function') process.exit(1); await import('./dist/bootstrap.js'); console.log('dist smoke ok');\"","type-check":"tsc --noEmit","format:check":"prettier --check .","test:coverage":"vitest run --coverage","prepublishOnly":"npm run verify"},"_npmUser":{"name":"vreshch","email":"vreshch@gmail.com"},"repository":{"url":"git+https://github.com/agentage/observability.git","type":"git"},"_npmVersion":"10.9.8","description":"Shared observability kit for agentage services: OTLP trace bootstrap (node --import), pino logger preset with trace correlation, and one-call error capture.","directories":{},"_nodeVersion":"22.23.1","dependencies":{"pino":"^10.3.1","@opentelemetry/api":"1.9.1","@opentelemetry/sdk-node":"^0.221.0","@opentelemetry/resources":"2.10.0","@opentelemetry/instrumentation":"^0.221.0","@opentelemetry/semantic-conventions":"^1.43.0","@opentelemetry/auto-instrumentations-node":"^0.79.0"},"publishConfig":{"access":"public"},"_hasShrinkwrap":false,"devDependencies":{"eslint":"^10.0.0","vitest":"^4.0.18","prettier":"^3.6.2","@eslint/js":"^10.0.1","typescript":"^5.9.3","@types/node":"^24.0.0","@vercel/otel":"^2.1.3","@vitest/coverage-v8":"^4.0.18","eslint-config-prettier":"^10.1.8","eslint-plugin-prettier":"^5.5.4","@typescript-eslint/parser":"^8.46.4","@typescript-eslint/eslint-plugin":"^8.46.4"},"peerDependencies":{"@vercel/otel":">=2"},"peerDependenciesMeta":{"@vercel/otel":{"optional":true}},"_npmOperationalInternal":{"tmp":"tmp/observability_0.2.0_1786148482645_0.2365601330922702","host":"s3://npm-registry-packages-npm-production"}},"0.2.1":{"name":"@agentage/observability","version":"0.2.1","license":"MIT","_id":"@agentage/observability@0.2.1","maintainers":[{"name":"vreshch","email":"vreshch@gmail.com"}],"homepage":"https://github.com/agentage/observability#readme","bugs":{"url":"https://github.com/agentage/observability/issues"},"dist":{"shasum":"e8abff962e125a352244a42c5c73c74d09046f8f","tarball":"https://registry.npmjs.org/@agentage/observability/-/observability-0.2.1.tgz","fileCount":30,"integrity":"sha512-shGQRYRNHJuCFzJRGF3P+wYVXI40CMto7ob5rbzG70gSuEL32UwhxTCS9SeCNrNOi2DTSW1OFqvQ9u/ZRHCMNQ==","signatures":[{"sig":"MEUCIDp21SuU+2Oq2sHPZ+a0J2Vbd6YD4zckoUBg4bxiudoLAiEAwmfXHxeCjHGBud76ZZyTfpJfZ/5VPjfQtA/CINHpIe4=","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"attestations":{"url":"https://registry.npmjs.org/-/npm/v1/attestations/@agentage%2fobservability@0.2.1","provenance":{"predicateType":"https://slsa.dev/provenance/v1"}},"unpackedSize":26089},"main":"dist/index.js","type":"module","types":"dist/index.d.ts","engines":{"node":">=22.13"},"exports":{".":{"types":"./dist/index.d.ts","import":"./dist/index.js"},"./next":{"types":"./dist/next.d.ts","import":"./dist/next.js"},"./bootstrap":{"types":"./dist/bootstrap.d.ts","import":"./dist/bootstrap.js"}},"gitHead":"9b9ac30d28f85e7b33501bc87ad56c89e5695d37","scripts":{"lint":"eslint .","test":"vitest run","build":"tsc -p tsconfig.build.json","format":"prettier --write .","verify":"npm run type-check && npm run lint && npm run format:check && npm run test && npm run build && npm run smoke:dist","smoke:dist":"node --input-type=module -e \"const k = await import('./dist/index.js'); if (typeof k.resolveTracingConfig !== 'function' || typeof k.createLogger !== 'function' || typeof k.captureError !== 'function') process.exit(1); await import('./dist/bootstrap.js'); console.log('dist smoke ok');\"","type-check":"tsc --noEmit","format:check":"prettier --check .","test:coverage":"vitest run --coverage","prepublishOnly":"npm run verify"},"_npmUser":{"name":"vreshch","email":"vreshch@gmail.com"},"repository":{"url":"git+https://github.com/agentage/observability.git","type":"git"},"_npmVersion":"10.9.8","description":"Shared observability kit for agentage services: OTLP trace bootstrap (node --import), pino logger preset with trace correlation, and one-call error capture.","directories":{},"_nodeVersion":"22.23.1","dependencies":{"pino":"^10.3.1","@opentelemetry/api":"1.9.1","@opentelemetry/sdk-node":"^0.221.0","@opentelemetry/resources":"2.10.0","@opentelemetry/instrumentation":"^0.221.0","@opentelemetry/semantic-conventions":"^1.43.0","@opentelemetry/auto-instrumentations-node":"^0.79.0"},"publishConfig":{"access":"public"},"_hasShrinkwrap":false,"devDependencies":{"eslint":"^10.0.0","vitest":"^4.0.18","prettier":"^3.6.2","@eslint/js":"^10.0.1","typescript":"^5.9.3","@types/node":"^24.0.0","@vercel/otel":"^2.1.3","@vitest/coverage-v8":"^4.0.18","eslint-config-prettier":"^10.1.8","eslint-plugin-prettier":"^5.5.4","@typescript-eslint/parser":"^8.46.4","@typescript-eslint/eslint-plugin":"^8.46.4"},"peerDependencies":{"@vercel/otel":">=2"},"peerDependenciesMeta":{"@vercel/otel":{"optional":true}},"_npmOperationalInternal":{"tmp":"tmp/observability_0.2.1_1786153323313_0.9785833080904662","host":"s3://npm-registry-packages-npm-production"}},"0.3.0":{"name":"@agentage/observability","version":"0.3.0","license":"MIT","_id":"@agentage/observability@0.3.0","maintainers":[{"name":"vreshch","email":"vreshch@gmail.com"}],"homepage":"https://github.com/agentage/observability#readme","bugs":{"url":"https://github.com/agentage/observability/issues"},"dist":{"shasum":"c94a4d3bf2fb895679cc6a36d3a7df7d9ec2012c","tarball":"https://registry.npmjs.org/@agentage/observability/-/observability-0.3.0.tgz","fileCount":34,"integrity":"sha512-/+Oxv6XDfjHTHWMA9MpLJSzhq2qbJZ4C42/owS6Ac/XtSG6Hk5PDKODf5Vdc7OnDkMZtbOLNbHfhQQ7F0ZyMFA==","signatures":[{"sig":"MEUCIQDlpcSGKgjzuVjJl+X4acIRDU4aS5iAzXk25FYA4ZlT3wIgIiN7yF30V+JluNY65vRXu2TY1vptT44UQ71Di709Y38=","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"attestations":{"url":"https://registry.npmjs.org/-/npm/v1/attestations/@agentage%2fobservability@0.3.0","provenance":{"predicateType":"https://slsa.dev/provenance/v1"}},"unpackedSize":31848},"main":"dist/index.js","type":"module","types":"dist/index.d.ts","engines":{"node":">=22.13"},"exports":{".":{"types":"./dist/index.d.ts","import":"./dist/index.js"},"./next":{"types":"./dist/next.d.ts","import":"./dist/next.js"},"./bootstrap":{"types":"./dist/bootstrap.d.ts","import":"./dist/bootstrap.js"}},"gitHead":"6afa42d5305b885c3e0c611bbee1a2191cad7e8b","scripts":{"lint":"eslint .","test":"vitest run","build":"tsc -p tsconfig.build.json","format":"prettier --write .","verify":"npm run type-check && npm run lint && npm run format:check && npm run test && npm run build && npm run smoke:dist","smoke:dist":"node --input-type=module -e \"const k = await import('./dist/index.js'); if (typeof k.resolveTracingConfig !== 'function' || typeof k.createLogger !== 'function' || typeof k.captureError !== 'function') process.exit(1); await import('./dist/bootstrap.js'); console.log('dist smoke ok');\"","type-check":"tsc --noEmit","format:check":"prettier --check .","test:coverage":"vitest run --coverage","prepublishOnly":"npm run verify"},"_npmUser":{"name":"vreshch","email":"vreshch@gmail.com"},"repository":{"url":"git+https://github.com/agentage/observability.git","type":"git"},"_npmVersion":"10.9.8","description":"Shared observability kit for agentage services: OTLP trace bootstrap (node --import), pino logger preset with trace correlation, and one-call error capture.","directories":{},"_nodeVersion":"22.23.1","dependencies":{"pino":"^10.3.1","@opentelemetry/api":"1.9.1","@opentelemetry/sdk-node":"^0.221.0","@opentelemetry/resources":"2.10.0","@opentelemetry/sdk-trace-base":"^2.2.0","@opentelemetry/instrumentation":"^0.221.0","@opentelemetry/semantic-conventions":"^1.43.0","@opentelemetry/auto-instrumentations-node":"^0.79.0"},"publishConfig":{"access":"public"},"_hasShrinkwrap":false,"devDependencies":{"eslint":"^10.0.0","vitest":"^4.0.18","prettier":"^3.6.2","@eslint/js":"^10.0.1","typescript":"^5.9.3","@types/node":"^24.0.0","@vercel/otel":"^2.1.3","@vitest/coverage-v8":"^4.0.18","eslint-config-prettier":"^10.1.8","eslint-plugin-prettier":"^5.5.4","@typescript-eslint/parser":"^8.46.4","@typescript-eslint/eslint-plugin":"^8.46.4"},"peerDependencies":{"@vercel/otel":">=2"},"peerDependenciesMeta":{"@vercel/otel":{"optional":true}},"_npmOperationalInternal":{"tmp":"tmp/observability_0.3.0_1786155636996_0.7779168356545498","host":"s3://npm-registry-packages-npm-production"}},"0.4.0":{"name":"@agentage/observability","version":"0.4.0","license":"MIT","_id":"@agentage/observability@0.4.0","maintainers":[{"name":"vreshch","email":"vreshch@gmail.com"}],"homepage":"https://github.com/agentage/observability#readme","bugs":{"url":"https://github.com/agentage/observability/issues"},"dist":{"shasum":"f7d630d559ebcf81db0dcd4c81a988ccd7f44074","tarball":"https://registry.npmjs.org/@agentage/observability/-/observability-0.4.0.tgz","fileCount":38,"integrity":"sha512-LCmiIQv4eUi+ZXHoyHyOHTr8vn9Qoy7K4luGRn1llHdZtzMrNEXAvz0JoOjxcHtrlwlMbfJBwmv3iX57BDX9hg==","signatures":[{"sig":"MEQCIAzyJyyR9Kp0ZNsL+LbozI+KJbXcSQZ7MAj7uZADawM0AiAgtLXmRpuLM41UriXG/J1AZgg4EJq6KRP7ZLBAVdP49w==","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"attestations":{"url":"https://registry.npmjs.org/-/npm/v1/attestations/@agentage%2fobservability@0.4.0","provenance":{"predicateType":"https://slsa.dev/provenance/v1"}},"unpackedSize":38739},"main":"dist/index.js","type":"module","types":"dist/index.d.ts","engines":{"node":">=22.13"},"exports":{".":{"types":"./dist/index.d.ts","import":"./dist/index.js"},"./next":{"types":"./dist/next.d.ts","import":"./dist/next.js"},"./bootstrap":{"types":"./dist/bootstrap.d.ts","import":"./dist/bootstrap.js"}},"gitHead":"9b8b0af3de1cd051ad05f9ded5ab786f60a80a7a","scripts":{"lint":"eslint .","test":"vitest run","build":"tsc -p tsconfig.build.json","format":"prettier --write .","verify":"npm run type-check && npm run lint && npm run format:check && npm run test && npm run build && npm run smoke:dist","smoke:dist":"node --input-type=module -e \"const k = await import('./dist/index.js'); if (typeof k.resolveTracingConfig !== 'function' || typeof k.createLogger !== 'function' || typeof k.captureError !== 'function') process.exit(1); await import('./dist/bootstrap.js'); console.log('dist smoke ok');\"","type-check":"tsc --noEmit","format:check":"prettier --check .","test:coverage":"vitest run --coverage","prepublishOnly":"npm run verify"},"_npmUser":{"name":"vreshch","email":"vreshch@gmail.com"},"repository":{"url":"git+https://github.com/agentage/observability.git","type":"git"},"_npmVersion":"10.9.8","description":"Shared observability kit for agentage services: OTLP trace bootstrap (node --import), pino logger preset with trace correlation, and one-call error capture.","directories":{},"_nodeVersion":"22.23.1","dependencies":{"pino":"^10.3.1","@opentelemetry/api":"1.9.1","@opentelemetry/sdk-node":"^0.221.0","@opentelemetry/resources":"2.10.0","@opentelemetry/sdk-trace-base":"^2.2.0","@opentelemetry/instrumentation":"^0.221.0","@opentelemetry/semantic-conventions":"^1.43.0","@opentelemetry/auto-instrumentations-node":"^0.79.0"},"publishConfig":{"access":"public"},"_hasShrinkwrap":false,"devDependencies":{"eslint":"^10.0.0","vitest":"^4.0.18","prettier":"^3.6.2","@eslint/js":"^10.0.1","typescript":"^5.9.3","@types/node":"^24.0.0","@vercel/otel":"^2.1.3","@vitest/coverage-v8":"^4.0.18","eslint-config-prettier":"^10.1.8","eslint-plugin-prettier":"^5.5.4","@typescript-eslint/parser":"^8.46.4","@typescript-eslint/eslint-plugin":"^8.46.4"},"peerDependencies":{"@vercel/otel":">=2"},"peerDependenciesMeta":{"@vercel/otel":{"optional":true}},"_npmOperationalInternal":{"tmp":"tmp/observability_0.4.0_1786181711211_0.25539677604913513","host":"s3://npm-registry-packages-npm-production"}},"0.5.0":{"name":"@agentage/observability","version":"0.5.0","license":"MIT","_id":"@agentage/observability@0.5.0","maintainers":[{"name":"vreshch","email":"vreshch@gmail.com"}],"homepage":"https://github.com/agentage/observability#readme","bugs":{"url":"https://github.com/agentage/observability/issues"},"dist":{"shasum":"f07815e24ca40a07c7eac9d7a4e269d219f274eb","tarball":"https://registry.npmjs.org/@agentage/observability/-/observability-0.5.0.tgz","fileCount":42,"integrity":"sha512-DcaLIqAqLsJYzrjbYGHd/m+gXBCP8vcprCS4YNsS3J1Cu2aFbiLffmwipUcpqjjPfbZYvxeLIMRz6aXwYSQ5Cw==","signatures":[{"sig":"MEYCIQDOLAFG9e5D3OWhsWC6VGHLWXdJOEKZ28hhIHgpv1XZowIhAPTHyHyHnXsiANu6leeqH4kS/EmMlC1Yet8Gm55edfF5","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"attestations":{"url":"https://registry.npmjs.org/-/npm/v1/attestations/@agentage%2fobservability@0.5.0","provenance":{"predicateType":"https://slsa.dev/provenance/v1"}},"unpackedSize":43998},"main":"dist/index.js","type":"module","types":"dist/index.d.ts","engines":{"node":">=22.13"},"exports":{".":{"types":"./dist/index.d.ts","import":"./dist/index.js"},"./next":{"types":"./dist/next.d.ts","import":"./dist/next.js"},"./bootstrap":{"types":"./dist/bootstrap.d.ts","import":"./dist/bootstrap.js"}},"gitHead":"82814a2535a6bee894c0eea0f60eb152c307058b","scripts":{"lint":"eslint .","test":"vitest run","build":"tsc -p tsconfig.build.json","format":"prettier --write .","verify":"npm run type-check && npm run lint && npm run format:check && npm run test && npm run build && npm run smoke:dist","smoke:dist":"node --input-type=module -e \"const k = await import('./dist/index.js'); if (typeof k.resolveTracingConfig !== 'function' || typeof k.createLogger !== 'function' || typeof k.captureError !== 'function') process.exit(1); await import('./dist/bootstrap.js'); console.log('dist smoke ok');\"","type-check":"tsc --noEmit","format:check":"prettier --check .","test:coverage":"vitest run --coverage","prepublishOnly":"npm run verify"},"_npmUser":{"name":"vreshch","email":"vreshch@gmail.com"},"repository":{"url":"git+https://github.com/agentage/observability.git","type":"git"},"_npmVersion":"10.9.8","description":"Shared observability kit for agentage services: OTLP trace bootstrap (node --import), pino logger preset with trace correlation, and one-call error capture.","directories":{},"_nodeVersion":"22.23.1","dependencies":{"pino":"^10.3.1","@opentelemetry/api":"1.9.1","@opentelemetry/sdk-node":"^0.221.0","@opentelemetry/resources":"2.10.0","@opentelemetry/sdk-trace-base":"^2.2.0","@opentelemetry/instrumentation":"^0.221.0","@opentelemetry/instrumentation-http":"^0.221.0","@opentelemetry/semantic-conventions":"^1.43.0","@opentelemetry/instrumentation-undici":"^0.31.0","@opentelemetry/instrumentation-express":"^0.69.0","@opentelemetry/exporter-trace-otlp-http":"^0.221.0"},"publishConfig":{"access":"public"},"_hasShrinkwrap":false,"devDependencies":{"eslint":"^10.0.0","vitest":"^4.0.18","prettier":"^3.6.2","@eslint/js":"^10.0.1","typescript":"^5.9.3","@types/node":"^24.0.0","@vercel/otel":"^2.1.3","@vitest/coverage-v8":"^4.0.18","eslint-config-prettier":"^10.1.8","eslint-plugin-prettier":"^5.5.4","@typescript-eslint/parser":"^8.46.4","@typescript-eslint/eslint-plugin":"^8.46.4"},"peerDependencies":{"@vercel/otel":">=2"},"peerDependenciesMeta":{"@vercel/otel":{"optional":true}},"_npmOperationalInternal":{"tmp":"tmp/observability_0.5.0_1786196343220_0.9601309847754875","host":"s3://npm-registry-packages-npm-production"}},"0.6.0":{"name":"@agentage/observability","version":"0.6.0","license":"MIT","_id":"@agentage/observability@0.6.0","maintainers":[{"name":"vreshch","email":"vreshch@gmail.com"}],"homepage":"https://github.com/agentage/observability#readme","bugs":{"url":"https://github.com/agentage/observability/issues"},"dist":{"shasum":"d2e3a9d749040456e04bf694f8c7174bae6429e5","tarball":"https://registry.npmjs.org/@agentage/observability/-/observability-0.6.0.tgz","fileCount":42,"integrity":"sha512-LwE8tajRkaROFy0UnDOR+Y8UZnrSQa0yjfGmQNIG1hRAuPdSzLVwlAbRcohIjS+jjqRWeHGB/OQsoFNwCMRWyg==","signatures":[{"sig":"MEQCIGh6RqfFOLTHY0oV+7hmSi7P8rS5iVxVnOBl2qLYK4VfAiATGWCm6GSqL8wRpL0j2k6ZzQ1ADV57yJG5UJ8Jcxociw==","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"attestations":{"url":"https://registry.npmjs.org/-/npm/v1/attestations/@agentage%2fobservability@0.6.0","provenance":{"predicateType":"https://slsa.dev/provenance/v1"}},"unpackedSize":45451},"main":"dist/index.js","type":"module","types":"dist/index.d.ts","engines":{"node":">=22.13"},"exports":{".":{"types":"./dist/index.d.ts","import":"./dist/index.js"},"./next":{"types":"./dist/next.d.ts","import":"./dist/next.js"},"./bootstrap":{"types":"./dist/bootstrap.d.ts","import":"./dist/bootstrap.js"}},"gitHead":"43a1bcadddf24dbff08306058aea1ac4e9261b56","scripts":{"lint":"eslint .","test":"vitest run","build":"tsc -p tsconfig.build.json","format":"prettier --write .","verify":"npm run type-check && npm run lint && npm run format:check && npm run test && npm run build && npm run smoke:dist","smoke:dist":"node --input-type=module -e \"const k = await import('./dist/index.js'); if (typeof k.resolveTracingConfig !== 'function' || typeof k.createLogger !== 'function' || typeof k.captureError !== 'function') process.exit(1); await import('./dist/bootstrap.js'); console.log('dist smoke ok');\"","type-check":"tsc --noEmit","format:check":"prettier --check .","test:coverage":"vitest run --coverage","prepublishOnly":"npm run verify"},"_npmUser":{"name":"vreshch","email":"vreshch@gmail.com"},"repository":{"url":"git+https://github.com/agentage/observability.git","type":"git"},"_npmVersion":"10.9.8","description":"Shared observability kit for agentage services: OTLP trace bootstrap (node --import), pino logger preset with trace correlation, and one-call error capture.","directories":{},"_nodeVersion":"22.23.1","dependencies":{"pino":"^10.3.1","@opentelemetry/api":"1.9.1","@opentelemetry/sdk-node":"^0.221.0","@opentelemetry/resources":"2.10.0","@opentelemetry/sdk-trace-base":"^2.2.0","@opentelemetry/instrumentation":"^0.221.0","@opentelemetry/instrumentation-pg":"^0.73.0","@opentelemetry/instrumentation-http":"^0.221.0","@opentelemetry/semantic-conventions":"^1.43.0","@opentelemetry/instrumentation-redis":"^0.69.0","@opentelemetry/instrumentation-undici":"^0.31.0","@opentelemetry/instrumentation-amqplib":"^0.68.0","@opentelemetry/instrumentation-express":"^0.69.0","@opentelemetry/instrumentation-mongodb":"^0.74.0","@opentelemetry/exporter-trace-otlp-http":"^0.221.0"},"publishConfig":{"access":"public"},"_hasShrinkwrap":false,"devDependencies":{"eslint":"^10.0.0","vitest":"^4.0.18","prettier":"^3.6.2","@eslint/js":"^10.0.1","typescript":"^5.9.3","@types/node":"^24.0.0","@vercel/otel":"^2.1.3","@vitest/coverage-v8":"^4.0.18","eslint-config-prettier":"^10.1.8","eslint-plugin-prettier":"^5.5.4","@typescript-eslint/parser":"^8.46.4","@typescript-eslint/eslint-plugin":"^8.46.4"},"peerDependencies":{"@vercel/otel":">=2"},"peerDependenciesMeta":{"@vercel/otel":{"optional":true}},"_npmOperationalInternal":{"tmp":"tmp/observability_0.6.0_1786196811539_0.6598882241889785","host":"s3://npm-registry-packages-npm-production"}},"0.6.1":{"name":"@agentage/observability","version":"0.6.1","license":"MIT","_id":"@agentage/observability@0.6.1","maintainers":[{"name":"vreshch","email":"vreshch@gmail.com"}],"homepage":"https://github.com/agentage/observability#readme","bugs":{"url":"https://github.com/agentage/observability/issues"},"dist":{"shasum":"b2adea606e94ed13083185ba11db6808d8c484ce","tarball":"https://registry.npmjs.org/@agentage/observability/-/observability-0.6.1.tgz","fileCount":42,"integrity":"sha512-eaMeZqeu+pITlaWMg0dzN2LQCqoTQQAzteF/fejv2Jlv5kqUnW9AR8DZqQRSFQnFJa8ibV37zjNxshHfOTCiWQ==","signatures":[{"sig":"MEUCIFvJV2kT1LKN14iLi4vss2JvTw8NUfIS0xYMtdRWYK2RAiEAgLqKBXUB2PvWzZ+G394W2mtUqnM5xww+Le/BXN4aWpk=","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"attestations":{"url":"https://registry.npmjs.org/-/npm/v1/attestations/@agentage%2fobservability@0.6.1","provenance":{"predicateType":"https://slsa.dev/provenance/v1"}},"unpackedSize":46020},"main":"dist/index.js","type":"module","types":"dist/index.d.ts","engines":{"node":">=22.13"},"exports":{".":{"types":"./dist/index.d.ts","import":"./dist/index.js"},"./next":{"types":"./dist/next.d.ts","import":"./dist/next.js"},"./bootstrap":{"types":"./dist/bootstrap.d.ts","import":"./dist/bootstrap.js"}},"gitHead":"9cb0d99fb8a90f1770b21f48ec4ee61c28dbc154","scripts":{"lint":"eslint .","test":"vitest run","build":"tsc -p tsconfig.build.json","format":"prettier --write .","verify":"npm run type-check && npm run lint && npm run format:check && npm run test && npm run build && npm run smoke:dist","smoke:dist":"node --input-type=module -e \"const k = await import('./dist/index.js'); if (typeof k.resolveTracingConfig !== 'function' || typeof k.createLogger !== 'function' || typeof k.captureError !== 'function') process.exit(1); await import('./dist/bootstrap.js'); console.log('dist smoke ok');\"","type-check":"tsc --noEmit","format:check":"prettier --check .","test:coverage":"vitest run --coverage","prepublishOnly":"npm run verify"},"_npmUser":{"name":"vreshch","email":"vreshch@gmail.com"},"repository":{"url":"git+https://github.com/agentage/observability.git","type":"git"},"_npmVersion":"10.9.8","description":"Shared observability kit for agentage services: OTLP trace bootstrap (node --import), pino logger preset with trace correlation, and one-call error capture.","directories":{},"_nodeVersion":"22.23.1","dependencies":{"pino":"^10.3.1","@opentelemetry/api":"1.9.1","@opentelemetry/sdk-node":"^0.221.0","@opentelemetry/resources":"2.10.0","@opentelemetry/sdk-trace-base":"^2.2.0","@opentelemetry/instrumentation":"^0.221.0","@opentelemetry/instrumentation-pg":"^0.73.0","@opentelemetry/instrumentation-http":"^0.221.0","@opentelemetry/semantic-conventions":"^1.43.0","@opentelemetry/instrumentation-redis":"^0.69.0","@opentelemetry/instrumentation-undici":"^0.31.0","@opentelemetry/instrumentation-amqplib":"^0.68.0","@opentelemetry/instrumentation-express":"^0.69.0","@opentelemetry/instrumentation-mongodb":"^0.74.0","@opentelemetry/exporter-trace-otlp-http":"^0.221.0"},"publishConfig":{"access":"public"},"_hasShrinkwrap":false,"devDependencies":{"eslint":"^10.0.0","vitest":"^4.0.18","prettier":"^3.6.2","@eslint/js":"^10.0.1","typescript":"^5.9.3","@types/node":"^24.0.0","@vercel/otel":"^2.1.3","@vitest/coverage-v8":"^4.0.18","eslint-config-prettier":"^10.1.8","eslint-plugin-prettier":"^5.5.4","@typescript-eslint/parser":"^8.46.4","@typescript-eslint/eslint-plugin":"^8.46.4"},"peerDependencies":{"@vercel/otel":">=2"},"peerDependenciesMeta":{"@vercel/otel":{"optional":true}},"_npmOperationalInternal":{"tmp":"tmp/observability_0.6.1_1786198475745_0.2602410613440771","host":"s3://npm-registry-packages-npm-production"}},"0.6.2":{"name":"@agentage/observability","version":"0.6.2","license":"MIT","_id":"@agentage/observability@0.6.2","maintainers":[{"name":"vreshch","email":"vreshch@gmail.com"}],"homepage":"https://github.com/agentage/observability#readme","bugs":{"url":"https://github.com/agentage/observability/issues"},"dist":{"shasum":"cf6b1d77511e26175cd15d62871da0ad3cb6ef2f","tarball":"https://registry.npmjs.org/@agentage/observability/-/observability-0.6.2.tgz","fileCount":42,"integrity":"sha512-0majcV+z1GWJ5D9ANjXeCxvrGea0e7z0qafwJfD7bmvHvT1K1lsqIp9sviPVRDgEgj5fj6fyDOxOFNuSfFd8QA==","signatures":[{"sig":"MEQCIDOq2HMNH1L8SiPVW76ia4xPwRI/I/RBT76t/qxylbBMAiAbt9pjr1I2lsU3lswIH1xAub6tppwwDI5LD4TJJAsl4g==","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"attestations":{"url":"https://registry.npmjs.org/-/npm/v1/attestations/@agentage%2fobservability@0.6.2","provenance":{"predicateType":"https://slsa.dev/provenance/v1"}},"unpackedSize":46245},"main":"dist/index.js","type":"module","types":"dist/index.d.ts","engines":{"node":">=22.13"},"exports":{".":{"types":"./dist/index.d.ts","import":"./dist/index.js"},"./next":{"types":"./dist/next.d.ts","import":"./dist/next.js"},"./bootstrap":{"types":"./dist/bootstrap.d.ts","import":"./dist/bootstrap.js"}},"gitHead":"c1f15327aab4692bee1e3fbdf8a031144c1f93d5","scripts":{"lint":"eslint .","test":"vitest run","build":"tsc -p tsconfig.build.json","format":"prettier --write .","verify":"npm run type-check && npm run lint && npm run format:check && npm run test && npm run build && npm run smoke:dist","smoke:dist":"node --input-type=module -e \"const k = await import('./dist/index.js'); if (typeof k.resolveTracingConfig !== 'function' || typeof k.createLogger !== 'function' || typeof k.captureError !== 'function') process.exit(1); await import('./dist/bootstrap.js'); console.log('dist smoke ok');\"","type-check":"tsc --noEmit","format:check":"prettier --check .","test:coverage":"vitest run --coverage","prepublishOnly":"npm run verify"},"_npmUser":{"name":"vreshch","email":"vreshch@gmail.com"},"repository":{"url":"git+https://github.com/agentage/observability.git","type":"git"},"_npmVersion":"10.9.8","description":"Shared observability kit for agentage services: OTLP trace bootstrap (node --import), pino logger preset with trace correlation, and one-call error capture.","directories":{},"_nodeVersion":"22.23.1","dependencies":{"pino":"^10.3.1","@opentelemetry/api":"1.9.1","@opentelemetry/sdk-node":"^0.221.0","@opentelemetry/resources":"2.10.0","@opentelemetry/sdk-trace-base":"^2.2.0","@opentelemetry/instrumentation":"^0.221.0","@opentelemetry/instrumentation-pg":"^0.73.0","@opentelemetry/instrumentation-http":"^0.221.0","@opentelemetry/semantic-conventions":"^1.43.0","@opentelemetry/instrumentation-redis":"^0.69.0","@opentelemetry/instrumentation-undici":"^0.31.0","@opentelemetry/instrumentation-amqplib":"^0.68.0","@opentelemetry/instrumentation-express":"^0.69.0","@opentelemetry/instrumentation-mongodb":"^0.74.0","@opentelemetry/exporter-trace-otlp-http":"^0.221.0"},"publishConfig":{"access":"public"},"_hasShrinkwrap":false,"devDependencies":{"eslint":"^10.0.0","vitest":"^4.0.18","prettier":"^3.6.2","@eslint/js":"^10.0.1","typescript":"^5.9.3","@types/node":"^24.0.0","@vercel/otel":"^2.1.3","@vitest/coverage-v8":"^4.0.18","eslint-config-prettier":"^10.1.8","eslint-plugin-prettier":"^5.5.4","@typescript-eslint/parser":"^8.46.4","@typescript-eslint/eslint-plugin":"^8.46.4"},"peerDependencies":{"@vercel/otel":">=2"},"peerDependenciesMeta":{"@vercel/otel":{"optional":true}},"_npmOperationalInternal":{"tmp":"tmp/observability_0.6.2_1786199857677_0.9173356952610479","host":"s3://npm-registry-packages-npm-production"}},"0.7.0":{"name":"@agentage/observability","version":"0.7.0","license":"MIT","_id":"@agentage/observability@0.7.0","maintainers":[{"name":"vreshch","email":"vreshch@gmail.com"}],"homepage":"https://github.com/agentage/observability#readme","bugs":{"url":"https://github.com/agentage/observability/issues"},"dist":{"shasum":"93c8df9b254279fd4826b6106695a7aabd77b478","tarball":"https://registry.npmjs.org/@agentage/observability/-/observability-0.7.0.tgz","fileCount":46,"integrity":"sha512-VZMemFhP/MoOWobvQr1RugCnItf0ejYtj9EMQR0ojeZl95VOQPQqeXnN8gb10qLpdUNlQKYQSt99PzqDzPFQ3g==","signatures":[{"sig":"MEQCIAWOqWXNMpuUDgXFXzScOSHOQg9immOINAu2/vnsyQIYAiAG+4MwImKO+JmiFDuP3oPCLNH21zs2l9fiGNmNbwPd6w==","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"attestations":{"url":"https://registry.npmjs.org/-/npm/v1/attestations/@agentage%2fobservability@0.7.0","provenance":{"predicateType":"https://slsa.dev/provenance/v1"}},"unpackedSize":49400},"main":"dist/index.js","type":"module","types":"dist/index.d.ts","engines":{"node":">=22.13"},"exports":{".":{"types":"./dist/index.d.ts","import":"./dist/index.js"},"./next":{"types":"./dist/next.d.ts","import":"./dist/next.js"},"./bootstrap":{"types":"./dist/bootstrap.d.ts","import":"./dist/bootstrap.js"}},"gitHead":"cdd98bfc336fe85a81e4d82c18ceaa6708453515","scripts":{"lint":"eslint .","test":"vitest run","build":"tsc -p tsconfig.build.json","format":"prettier --write .","verify":"npm run type-check && npm run lint && npm run format:check && npm run test && npm run build && npm run smoke:dist","smoke:dist":"node --input-type=module -e \"const k = await import('./dist/index.js'); if (typeof k.resolveTracingConfig !== 'function' || typeof k.createLogger !== 'function' || typeof k.captureError !== 'function') process.exit(1); await import('./dist/bootstrap.js'); console.log('dist smoke ok');\"","type-check":"tsc --noEmit","format:check":"prettier --check .","test:coverage":"vitest run --coverage","prepublishOnly":"npm run verify"},"_npmUser":{"name":"vreshch","email":"vreshch@gmail.com"},"repository":{"url":"git+https://github.com/agentage/observability.git","type":"git"},"_npmVersion":"10.9.8","description":"Shared observability kit for agentage services: OTLP trace bootstrap (node --import), pino logger preset with trace correlation, and one-call error capture.","directories":{},"_nodeVersion":"22.23.1","dependencies":{"pino":"^10.3.1","@opentelemetry/api":"1.9.1","@opentelemetry/sdk-node":"^0.221.0","@opentelemetry/resources":"2.10.0","@opentelemetry/sdk-trace-base":"^2.2.0","@opentelemetry/instrumentation":"^0.221.0","@opentelemetry/instrumentation-pg":"^0.73.0","@opentelemetry/instrumentation-http":"^0.221.0","@opentelemetry/semantic-conventions":"^1.43.0","@opentelemetry/instrumentation-redis":"^0.69.0","@opentelemetry/instrumentation-undici":"^0.31.0","@opentelemetry/instrumentation-amqplib":"^0.68.0","@opentelemetry/instrumentation-express":"^0.69.0","@opentelemetry/instrumentation-mongodb":"^0.74.0","@opentelemetry/exporter-trace-otlp-http":"^0.221.0"},"publishConfig":{"access":"public"},"_hasShrinkwrap":false,"devDependencies":{"eslint":"^10.0.0","vitest":"^4.0.18","prettier":"^3.6.2","@eslint/js":"^10.0.1","typescript":"^5.9.3","@types/node":"^24.0.0","@vercel/otel":"^2.1.3","@vitest/coverage-v8":"^4.0.18","eslint-config-prettier":"^10.1.8","eslint-plugin-prettier":"^5.5.4","@typescript-eslint/parser":"^8.46.4","@typescript-eslint/eslint-plugin":"^8.46.4"},"peerDependencies":{"@vercel/otel":">=2"},"peerDependenciesMeta":{"@vercel/otel":{"optional":true}},"_npmOperationalInternal":{"tmp":"tmp/observability_0.7.0_1786206183331_0.6900281900826495","host":"s3://npm-registry-packages-npm-production"}},"0.7.1":{"name":"@agentage/observability","version":"0.7.1","license":"MIT","_id":"@agentage/observability@0.7.1","maintainers":[{"name":"vreshch","email":"vreshch@gmail.com"}],"homepage":"https://github.com/agentage/observability#readme","bugs":{"url":"https://github.com/agentage/observability/issues"},"dist":{"shasum":"c8aad49c3c1419eb62a4de5b80b254deef30c253","tarball":"https://registry.npmjs.org/@agentage/observability/-/observability-0.7.1.tgz","fileCount":46,"integrity":"sha512-FigYHgtnOfbFfvXYIQJ6KkjAD00se/3FMdh25dx5hqkGucK6oONw0JpbOJi7RkDPqfnBjr4n2Vt+tkdX1zXzXA==","signatures":[{"sig":"MEUCIQDNWc1CKHwodItutvPR08oz9/TCBQ+LS1QFkDh9eyyKvAIgXhdyBCxGPWuEH1irZEtJVIyUiueF5ts5R70819Yqw4Y=","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"attestations":{"url":"https://registry.npmjs.org/-/npm/v1/attestations/@agentage%2fobservability@0.7.1","provenance":{"predicateType":"https://slsa.dev/provenance/v1"}},"unpackedSize":50282},"main":"dist/index.js","type":"module","types":"dist/index.d.ts","engines":{"node":">=22.13"},"exports":{".":{"types":"./dist/index.d.ts","import":"./dist/index.js"},"./next":{"types":"./dist/next.d.ts","import":"./dist/next.js"},"./bootstrap":{"types":"./dist/bootstrap.d.ts","import":"./dist/bootstrap.js"}},"gitHead":"cf87a17447606ba91236f2d113a9e575cc3db972","scripts":{"lint":"eslint .","test":"vitest run","build":"tsc -p tsconfig.build.json","format":"prettier --write .","verify":"npm run type-check && npm run lint && npm run format:check && npm run test && npm run build && npm run smoke:dist","smoke:dist":"node --input-type=module -e \"const k = await import('./dist/index.js'); if (typeof k.resolveTracingConfig !== 'function' || typeof k.createLogger !== 'function' || typeof k.captureError !== 'function') process.exit(1); await import('./dist/bootstrap.js'); console.log('dist smoke ok');\"","type-check":"tsc --noEmit","format:check":"prettier --check .","test:coverage":"vitest run --coverage","prepublishOnly":"npm run verify"},"_npmUser":{"name":"vreshch","email":"vreshch@gmail.com"},"repository":{"url":"git+https://github.com/agentage/observability.git","type":"git"},"_npmVersion":"10.9.8","description":"Shared observability kit for agentage services: OTLP trace bootstrap (node --import), pino logger preset with trace correlation, and one-call error capture.","directories":{},"_nodeVersion":"22.23.1","dependencies":{"pino":"^10.3.1","@opentelemetry/api":"1.9.1","@opentelemetry/sdk-node":"^0.221.0","@opentelemetry/resources":"2.10.0","@opentelemetry/sdk-trace-base":"^2.2.0","@opentelemetry/instrumentation":"^0.221.0","@opentelemetry/instrumentation-pg":"^0.73.0","@opentelemetry/instrumentation-http":"^0.221.0","@opentelemetry/semantic-conventions":"^1.43.0","@opentelemetry/instrumentation-redis":"^0.69.0","@opentelemetry/instrumentation-undici":"^0.31.0","@opentelemetry/instrumentation-amqplib":"^0.68.0","@opentelemetry/instrumentation-express":"^0.69.0","@opentelemetry/instrumentation-mongodb":"^0.74.0","@opentelemetry/exporter-trace-otlp-http":"^0.221.0"},"publishConfig":{"access":"public"},"_hasShrinkwrap":false,"devDependencies":{"eslint":"^10.0.0","vitest":"^4.0.18","prettier":"^3.6.2","@eslint/js":"^10.0.1","typescript":"^5.9.3","@types/node":"^24.0.0","@vercel/otel":"^2.1.3","@vitest/coverage-v8":"^4.0.18","eslint-config-prettier":"^10.1.8","eslint-plugin-prettier":"^5.5.4","@typescript-eslint/parser":"^8.46.4","@typescript-eslint/eslint-plugin":"^8.46.4"},"peerDependencies":{"@vercel/otel":">=2"},"peerDependenciesMeta":{"@vercel/otel":{"optional":true}},"_npmOperationalInternal":{"tmp":"tmp/observability_0.7.1_1786211332563_0.8343845260159668","host":"s3://npm-registry-packages-npm-production"}},"0.8.0":{"name":"@agentage/observability","version":"0.8.0","license":"MIT","_id":"@agentage/observability@0.8.0","maintainers":[{"name":"vreshch","email":"vreshch@gmail.com"}],"homepage":"https://github.com/agentage/observability#readme","bugs":{"url":"https://github.com/agentage/observability/issues"},"dist":{"shasum":"075dbbbcf44c0ea51539e1374b2dbf81f35ee499","tarball":"https://registry.npmjs.org/@agentage/observability/-/observability-0.8.0.tgz","fileCount":50,"integrity":"sha512-LwoO4rMFxDYoh0SijRhrnDH3O91vCovy3QcyLvN1Nt7zkXq+2H7ZGZbirdW5KJB6++bxB1nkSnqkL+wfu3vMLQ==","signatures":[{"sig":"MEYCIQDLzFedEcWLml/54nXUApt7zvzseplividbYd/slysBxAIhAL5dFSNgSY2j0WpQ3GMMJEhzcYwnwQLKjAlQOIQ71xdN","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"attestations":{"url":"https://registry.npmjs.org/-/npm/v1/attestations/@agentage%2fobservability@0.8.0","provenance":{"predicateType":"https://slsa.dev/provenance/v1"}},"unpackedSize":70995},"main":"dist/index.js","type":"module","types":"dist/index.d.ts","engines":{"node":">=22.13"},"exports":{".":{"types":"./dist/index.d.ts","import":"./dist/index.js"},"./next":{"types":"./dist/next.d.ts","import":"./dist/next.js"},"./health":{"types":"./dist/health.d.ts","import":"./dist/health.js"},"./bootstrap":{"types":"./dist/bootstrap.d.ts","import":"./dist/bootstrap.js"}},"gitHead":"83263e03b6515a6f2b90a9c2bf1d905dc51b2d10","scripts":{"lint":"eslint .","test":"vitest run","build":"tsc -p tsconfig.build.json","format":"prettier --write .","verify":"npm run type-check && npm run lint && npm run format:check && npm run test && npm run build && npm run smoke:dist","smoke:dist":"node --input-type=module -e \"const k = await import('./dist/index.js'); if (typeof k.resolveTracingConfig !== 'function' || typeof k.createLogger !== 'function' || typeof k.captureError !== 'function') process.exit(1); const h = await import('./dist/health.js'); if (h.healthEnvelope('smoke').data.service !== 'smoke' || typeof h.createHealthHandler !== 'function' || typeof h.staticHealthJson !== 'function') process.exit(1); await import('./dist/bootstrap.js'); console.log('dist smoke ok');\"","type-check":"tsc --noEmit","format:check":"prettier --check .","test:coverage":"vitest run --coverage","prepublishOnly":"npm run verify"},"_npmUser":{"name":"vreshch","email":"vreshch@gmail.com"},"repository":{"url":"git+https://github.com/agentage/observability.git","type":"git"},"_npmVersion":"10.9.8","description":"Shared observability kit for agentage services: OTLP trace bootstrap (node --import), pino logger preset with trace correlation, one-call error capture, and the estate /health envelope.","directories":{},"_nodeVersion":"22.23.1","dependencies":{"pino":"^10.3.1","@opentelemetry/api":"1.9.1","@opentelemetry/sdk-node":"^0.221.0","@opentelemetry/resources":"2.10.0","@opentelemetry/sdk-trace-base":"^2.2.0","@opentelemetry/instrumentation":"^0.221.0","@opentelemetry/instrumentation-pg":"^0.73.0","@opentelemetry/instrumentation-http":"^0.221.0","@opentelemetry/semantic-conventions":"^1.43.0","@opentelemetry/instrumentation-redis":"^0.69.0","@opentelemetry/instrumentation-undici":"^0.31.0","@opentelemetry/instrumentation-amqplib":"^0.68.0","@opentelemetry/instrumentation-express":"^0.69.0","@opentelemetry/instrumentation-mongodb":"^0.74.0","@opentelemetry/exporter-trace-otlp-http":"^0.221.0"},"publishConfig":{"access":"public"},"_hasShrinkwrap":false,"devDependencies":{"eslint":"^10.0.0","vitest":"^4.0.18","prettier":"^3.6.2","@eslint/js":"^10.0.1","typescript":"^5.9.3","@types/node":"^24.0.0","@vercel/otel":"^2.1.3","@vitest/coverage-v8":"^4.0.18","eslint-config-prettier":"^10.1.8","eslint-plugin-prettier":"^5.5.4","@typescript-eslint/parser":"^8.46.4","@typescript-eslint/eslint-plugin":"^8.46.4"},"peerDependencies":{"@vercel/otel":">=2"},"peerDependenciesMeta":{"@vercel/otel":{"optional":true}},"_npmOperationalInternal":{"tmp":"tmp/observability_0.8.0_1786285457908_0.22517698036015887","host":"s3://npm-registry-packages-npm-production"}},"0.8.1":{"name":"@agentage/observability","version":"0.8.1","license":"MIT","_id":"@agentage/observability@0.8.1","maintainers":[{"name":"vreshch","email":"vreshch@gmail.com"}],"homepage":"https://github.com/agentage/observability#readme","bugs":{"url":"https://github.com/agentage/observability/issues"},"dist":{"shasum":"31d0d157e80df58ff45aa1d2a7fc36c9fd2dcab6","tarball":"https://registry.npmjs.org/@agentage/observability/-/observability-0.8.1.tgz","fileCount":50,"integrity":"sha512-haJ2YFpLigtHlnKOp93y6c0PWFudn9izuzRioffYadJjNTzy/Ovg/7DI943bXANAW4iYbK3MAlJYT3qmxa521Q==","signatures":[{"sig":"MEUCIQDM80n1+fsGWQxCeTwJNwOOuWB+bv7XMOvWHth4vexKtQIgNZlIvOqGv+wjUdd9I7sSrnVZCKsJ1yFedi8CgAfBQOc=","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"attestations":{"url":"https://registry.npmjs.org/-/npm/v1/attestations/@agentage%2fobservability@0.8.1","provenance":{"predicateType":"https://slsa.dev/provenance/v1"}},"unpackedSize":75796},"main":"dist/index.js","type":"module","types":"dist/index.d.ts","engines":{"node":">=22.13"},"exports":{".":{"types":"./dist/index.d.ts","import":"./dist/index.js"},"./next":{"types":"./dist/next.d.ts","import":"./dist/next.js"},"./health":{"types":"./dist/health.d.ts","import":"./dist/health.js"},"./bootstrap":{"types":"./dist/bootstrap.d.ts","import":"./dist/bootstrap.js"}},"gitHead":"9bedc351310fefe5aa549b0f44c6f7969d6e51f3","scripts":{"lint":"eslint .","test":"vitest run","build":"tsc -p tsconfig.build.json","format":"prettier --write .","verify":"npm run type-check && npm run lint && npm run format:check && npm run test && npm run build && npm run smoke:dist","smoke:dist":"node --input-type=module -e \"const k = await import('./dist/index.js'); if (typeof k.resolveTracingConfig !== 'function' || typeof k.createLogger !== 'function' || typeof k.captureError !== 'function') process.exit(1); const h = await import('./dist/health.js'); if (h.healthEnvelope('smoke').data.service !== 'smoke' || typeof h.createHealthHandler !== 'function' || typeof h.staticHealthJson !== 'function') process.exit(1); await import('./dist/bootstrap.js'); console.log('dist smoke ok');\"","type-check":"tsc --noEmit","format:check":"prettier --check .","test:coverage":"vitest run --coverage","prepublishOnly":"npm run verify"},"_npmUser":{"name":"vreshch","email":"vreshch@gmail.com"},"repository":{"url":"git+https://github.com/agentage/observability.git","type":"git"},"_npmVersion":"10.9.8","description":"Shared observability kit for agentage services: OTLP trace bootstrap (node --import), pino logger preset with trace correlation, one-call error capture, and the estate /health envelope.","directories":{},"_nodeVersion":"22.23.1","dependencies":{"pino":"^10.3.1","@opentelemetry/api":"1.9.1","@opentelemetry/sdk-node":"^0.221.0","@opentelemetry/resources":"2.10.0","@opentelemetry/sdk-trace-base":"^2.2.0","@opentelemetry/instrumentation":"^0.221.0","@opentelemetry/instrumentation-pg":"^0.73.0","@opentelemetry/instrumentation-http":"^0.221.0","@opentelemetry/semantic-conventions":"^1.43.0","@opentelemetry/instrumentation-redis":"^0.69.0","@opentelemetry/instrumentation-undici":"^0.31.0","@opentelemetry/instrumentation-amqplib":"^0.68.0","@opentelemetry/instrumentation-express":"^0.69.0","@opentelemetry/instrumentation-mongodb":"^0.74.0","@opentelemetry/exporter-trace-otlp-http":"^0.221.0"},"publishConfig":{"access":"public"},"_hasShrinkwrap":false,"devDependencies":{"eslint":"^10.0.0","vitest":"^4.0.18","prettier":"^3.6.2","@eslint/js":"^10.0.1","typescript":"^5.9.3","@types/node":"^24.0.0","@vercel/otel":"^2.1.3","@vitest/coverage-v8":"^4.0.18","eslint-config-prettier":"^10.1.8","eslint-plugin-prettier":"^5.5.4","@typescript-eslint/parser":"^8.46.4","@typescript-eslint/eslint-plugin":"^8.46.4"},"peerDependencies":{"@vercel/otel":">=2"},"peerDependenciesMeta":{"@vercel/otel":{"optional":true}},"_npmOperationalInternal":{"tmp":"tmp/observability_0.8.1_1786285670137_0.30784731981597346","host":"s3://npm-registry-packages-npm-production"}},"0.9.0":{"name":"@agentage/observability","version":"0.9.0","license":"MIT","_id":"@agentage/observability@0.9.0","maintainers":[{"name":"vreshch","email":"vreshch@gmail.com"}],"homepage":"https://github.com/agentage/observability#readme","bugs":{"url":"https://github.com/agentage/observability/issues"},"dist":{"shasum":"0ad8bef30e645ff66ecf9d917487e8ae23148e46","tarball":"https://registry.npmjs.org/@agentage/observability/-/observability-0.9.0.tgz","fileCount":50,"integrity":"sha512-qO8l7DezNC41BSCcR9FpxUCPAGST/Z6PRLFZCi+2hZuLgI0doPRoYwTU/bdW3hpQnrweTCUhp33KY5z9jRU1LA==","signatures":[{"sig":"MEUCIQD55oU47CVotLx5Kd4ubs2RVAWkGCTasmroV94pyYZmQAIgeo1ElTwLlN5pYW0cvIwvoYt352VPrP9yAKOsHj4yGUo=","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"attestations":{"url":"https://registry.npmjs.org/-/npm/v1/attestations/@agentage%2fobservability@0.9.0","provenance":{"predicateType":"https://slsa.dev/provenance/v1"}},"unpackedSize":89724},"main":"dist/index.js","type":"module","types":"dist/index.d.ts","engines":{"node":">=22.13"},"exports":{".":{"types":"./dist/index.d.ts","import":"./dist/index.js"},"./next":{"types":"./dist/next.d.ts","import":"./dist/next.js"},"./health":{"types":"./dist/health.d.ts","import":"./dist/health.js"},"./bootstrap":{"types":"./dist/bootstrap.d.ts","import":"./dist/bootstrap.js"}},"gitHead":"35ec1110a591d76df86f5204d7bb14823fe68469","scripts":{"lint":"eslint .","test":"vitest run","build":"tsc -p tsconfig.build.json","format":"prettier --write .","verify":"npm run type-check && npm run lint && npm run format:check && npm run test && npm run build && npm run smoke:dist","smoke:dist":"node --input-type=module -e \"const k = await import('./dist/index.js'); if (typeof k.resolveTracingConfig !== 'function' || typeof k.createLogger !== 'function' || typeof k.captureError !== 'function') process.exit(1); const h = await import('./dist/health.js'); if (h.healthEnvelope('smoke').data.service !== 'smoke' || typeof h.createHealthHandler !== 'function' || typeof h.staticHealthJson !== 'function') process.exit(1); await import('./dist/bootstrap.js'); console.log('dist smoke ok');\"","type-check":"tsc --noEmit","format:check":"prettier --check .","test:coverage":"vitest run --coverage","prepublishOnly":"npm run verify"},"_npmUser":{"name":"vreshch","email":"vreshch@gmail.com"},"repository":{"url":"git+https://github.com/agentage/observability.git","type":"git"},"_npmVersion":"10.9.8","description":"Shared observability kit for agentage services: OTLP trace bootstrap (node --import), pino logger preset with trace correlation, one-call error capture, and the estate /health envelope.","directories":{},"_nodeVersion":"22.23.1","dependencies":{"pino":"^10.3.1","@opentelemetry/api":"1.9.1","@opentelemetry/sdk-node":"^0.221.0","@opentelemetry/resources":"2.10.0","@opentelemetry/sdk-trace-base":"^2.2.0","@opentelemetry/instrumentation":"^0.221.0","@opentelemetry/instrumentation-pg":"^0.73.0","@opentelemetry/instrumentation-http":"^0.221.0","@opentelemetry/semantic-conventions":"^1.43.0","@opentelemetry/instrumentation-redis":"^0.69.0","@opentelemetry/instrumentation-undici":"^0.31.0","@opentelemetry/instrumentation-amqplib":"^0.68.0","@opentelemetry/instrumentation-express":"^0.69.0","@opentelemetry/instrumentation-mongodb":"^0.74.0","@opentelemetry/exporter-trace-otlp-http":"^0.221.0"},"publishConfig":{"access":"public"},"_hasShrinkwrap":false,"devDependencies":{"eslint":"^10.0.0","vitest":"^4.0.18","prettier":"^3.6.2","@eslint/js":"^10.0.1","typescript":"^5.9.3","@types/node":"^24.0.0","@vercel/otel":"^2.1.3","@vitest/coverage-v8":"^4.0.18","eslint-config-prettier":"^10.1.8","eslint-plugin-prettier":"^5.5.4","@typescript-eslint/parser":"^8.46.4","@typescript-eslint/eslint-plugin":"^8.46.4"},"peerDependencies":{"@vercel/otel":">=2"},"peerDependenciesMeta":{"@vercel/otel":{"optional":true}},"_npmOperationalInternal":{"tmp":"tmp/observability_0.9.0_1786324127083_0.4039439598752885","host":"s3://npm-registry-packages-npm-production"}},"0.9.1":{"name":"@agentage/observability","version":"0.9.1","license":"MIT","_id":"@agentage/observability@0.9.1","maintainers":[{"name":"vreshch","email":"vreshch@gmail.com"}],"homepage":"https://github.com/agentage/observability#readme","bugs":{"url":"https://github.com/agentage/observability/issues"},"dist":{"shasum":"af13b81a075259f6f122562dcf8641e7fa401cf5","tarball":"https://registry.npmjs.org/@agentage/observability/-/observability-0.9.1.tgz","fileCount":50,"integrity":"sha512-cs8jR2lmlEEM3gvytG1QN+9r6Kbb4xT+X03/8BQlKbBpD5KZLriKoHK8KSls9pXbTQr80+yp0StPFWFl7NKGXg==","signatures":[{"sig":"MEUCIQCqK8QbmWcWrFm0uv8qKiF9YCAcssHf7U0FPO5+8ctVpwIgLiWGVEFGMm44zZdgPcWPVBhNe+CbivmK6KlF3lCl/GQ=","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"attestations":{"url":"https://registry.npmjs.org/-/npm/v1/attestations/@agentage%2fobservability@0.9.1","provenance":{"predicateType":"https://slsa.dev/provenance/v1"}},"unpackedSize":90573},"main":"dist/index.js","type":"module","types":"dist/index.d.ts","engines":{"node":">=22.13"},"exports":{".":{"types":"./dist/index.d.ts","import":"./dist/index.js"},"./next":{"types":"./dist/next.d.ts","import":"./dist/next.js"},"./health":{"types":"./dist/health.d.ts","import":"./dist/health.js"},"./bootstrap":{"types":"./dist/bootstrap.d.ts","import":"./dist/bootstrap.js"}},"gitHead":"7ce674ab6e968a2c40a52ad69ba88abb48787069","scripts":{"lint":"eslint .","test":"vitest run","build":"tsc -p tsconfig.build.json","format":"prettier --write .","verify":"npm run type-check && npm run lint && npm run format:check && npm run test && npm run build && npm run smoke:dist","smoke:dist":"node --input-type=module -e \"const k = await import('./dist/index.js'); if (typeof k.resolveTracingConfig !== 'function' || typeof k.createLogger !== 'function' || typeof k.captureError !== 'function') process.exit(1); const h = await import('./dist/health.js'); if (h.healthEnvelope('smoke').data.service !== 'smoke' || typeof h.createHealthHandler !== 'function' || typeof h.staticHealthJson !== 'function') process.exit(1); await import('./dist/bootstrap.js'); console.log('dist smoke ok');\"","type-check":"tsc --noEmit","format:check":"prettier --check .","test:coverage":"vitest run --coverage","prepublishOnly":"npm run verify"},"_npmUser":{"name":"vreshch","email":"vreshch@gmail.com"},"repository":{"url":"git+https://github.com/agentage/observability.git","type":"git"},"_npmVersion":"10.9.8","description":"Shared observability kit for agentage services: OTLP trace bootstrap (node --import), pino logger preset with trace correlation, one-call error capture, and the estate /health envelope.","directories":{},"_nodeVersion":"22.23.1","dependencies":{"pino":"^10.3.1","@opentelemetry/api":"1.9.1","@opentelemetry/sdk-node":"^0.221.0","@opentelemetry/resources":"2.10.0","@opentelemetry/sdk-trace-base":"^2.2.0","@opentelemetry/instrumentation":"^0.221.0","@opentelemetry/instrumentation-pg":"^0.73.0","@opentelemetry/instrumentation-http":"^0.221.0","@opentelemetry/semantic-conventions":"^1.43.0","@opentelemetry/instrumentation-redis":"^0.69.0","@opentelemetry/instrumentation-undici":"^0.31.0","@opentelemetry/instrumentation-amqplib":"^0.68.0","@opentelemetry/instrumentation-express":"^0.69.0","@opentelemetry/instrumentation-mongodb":"^0.74.0","@opentelemetry/exporter-trace-otlp-http":"^0.221.0"},"publishConfig":{"access":"public"},"_hasShrinkwrap":false,"devDependencies":{"eslint":"^10.0.0","vitest":"^4.0.18","prettier":"^3.6.2","@eslint/js":"^10.0.1","typescript":"^5.9.3","@types/node":"^24.0.0","@vercel/otel":"^2.1.3","@vitest/coverage-v8":"^4.0.18","eslint-config-prettier":"^10.1.8","eslint-plugin-prettier":"^5.5.4","@typescript-eslint/parser":"^8.46.4","@typescript-eslint/eslint-plugin":"^8.46.4"},"peerDependencies":{"@vercel/otel":">=2"},"peerDependenciesMeta":{"@vercel/otel":{"optional":true}},"_npmOperationalInternal":{"tmp":"tmp/observability_0.9.1_1786326238525_0.4623491805900046","host":"s3://npm-registry-packages-npm-production"}},"0.10.0":{"name":"@agentage/observability","version":"0.10.0","license":"MIT","_id":"@agentage/observability@0.10.0","maintainers":[{"name":"vreshch","email":"vreshch@gmail.com"}],"homepage":"https://github.com/agentage/observability#readme","bugs":{"url":"https://github.com/agentage/observability/issues"},"dist":{"shasum":"1902bb5926311edc0636b77e9e85597ae2924f9b","tarball":"https://registry.npmjs.org/@agentage/observability/-/observability-0.10.0.tgz","fileCount":51,"integrity":"sha512-L9TF5gKsp6CfKQHQLkxHNuRF7mQm9oGWGuIkjpfnBIeNQpWfQLBIYzvDUshvw/U51wms925EEgWlxW57iTC7Jw==","signatures":[{"sig":"MEQCICIIFtOR7Shsg8Bgp4D2gyfc2yUT/+YEbfbjwRR9K/N0AiAqZ5hjsMXkB5rma7F1AZ9lY/4XcYHH93q5ICiR3Be9eg==","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"attestations":{"url":"https://registry.npmjs.org/-/npm/v1/attestations/@agentage%2fobservability@0.10.0","provenance":{"predicateType":"https://slsa.dev/provenance/v1"}},"unpackedSize":95622},"main":"dist/index.js","type":"module","types":"dist/index.d.ts","engines":{"node":">=22.13"},"exports":{".":{"types":"./dist/index.d.ts","import":"./dist/index.js"},"./next":{"types":"./dist/next.d.ts","import":"./dist/next.js"},"./health":{"types":"./dist/health.d.ts","import":"./dist/health.js"},"./bootstrap":{"types":"./dist/bootstrap.d.ts","import":"./dist/bootstrap.js"}},"gitHead":"85721740bf113c71725f4ab96a45cef663be828e","scripts":{"lint":"eslint .","test":"vitest run","build":"tsc -p tsconfig.build.json","format":"prettier --write .","verify":"npm run type-check && npm run lint && npm run format:check && npm run test && npm run build && npm run smoke:dist","smoke:dist":"node --input-type=module -e \"const k = await import('./dist/index.js'); if (typeof k.resolveTracingConfig !== 'function' || typeof k.createLogger !== 'function' || typeof k.captureError !== 'function') process.exit(1); const h = await import('./dist/health.js'); if (h.healthEnvelope('smoke').data.service !== 'smoke' || typeof h.createHealthHandler !== 'function' || typeof h.staticHealthJson !== 'function' || typeof h.health !== 'function' || h.nodeHealth !== h.createHealthHandler || h.staticHealth !== h.staticHealthJson) process.exit(1); await import('./dist/bootstrap.js'); console.log('dist smoke ok');\"","type-check":"tsc --noEmit","format:check":"prettier --check .","test:coverage":"vitest run --coverage","prepublishOnly":"npm run verify"},"_npmUser":{"name":"vreshch","email":"vreshch@gmail.com"},"repository":{"url":"git+https://github.com/agentage/observability.git","type":"git"},"_npmVersion":"10.9.8","description":"Shared observability kit for agentage services: OTLP trace bootstrap (node --import), pino logger preset with trace correlation, one-call error capture, and the estate /health envelope.","directories":{},"_nodeVersion":"22.23.1","dependencies":{"pino":"^10.3.1","@opentelemetry/api":"1.9.1","@opentelemetry/sdk-node":"^0.221.0","@opentelemetry/resources":"2.10.0","@opentelemetry/sdk-trace-base":"^2.2.0","@opentelemetry/instrumentation":"^0.221.0","@opentelemetry/instrumentation-pg":"^0.73.0","@opentelemetry/instrumentation-http":"^0.221.0","@opentelemetry/semantic-conventions":"^1.43.0","@opentelemetry/instrumentation-redis":"^0.69.0","@opentelemetry/instrumentation-undici":"^0.31.0","@opentelemetry/instrumentation-amqplib":"^0.68.0","@opentelemetry/instrumentation-express":"^0.69.0","@opentelemetry/instrumentation-mongodb":"^0.74.0","@opentelemetry/exporter-trace-otlp-http":"^0.221.0"},"publishConfig":{"access":"public"},"_hasShrinkwrap":false,"devDependencies":{"eslint":"^10.0.0","vitest":"^4.0.18","prettier":"^3.6.2","@eslint/js":"^10.0.1","typescript":"^5.9.3","@types/node":"^24.0.0","@vercel/otel":"^2.1.3","@vitest/coverage-v8":"^4.0.18","eslint-config-prettier":"^10.1.8","eslint-plugin-prettier":"^5.5.4","@typescript-eslint/parser":"^8.46.4","@typescript-eslint/eslint-plugin":"^8.46.4"},"peerDependencies":{"@vercel/otel":">=2"},"peerDependenciesMeta":{"@vercel/otel":{"optional":true}},"_npmOperationalInternal":{"tmp":"tmp/observability_0.10.0_1786414269963_0.908036721653319","host":"s3://npm-registry-packages-npm-production"}},"0.10.1":{"name":"@agentage/observability","version":"0.10.1","license":"MIT","_id":"@agentage/observability@0.10.1","maintainers":[{"name":"vreshch","email":"vreshch@gmail.com"}],"homepage":"https://github.com/agentage/observability#readme","bugs":{"url":"https://github.com/agentage/observability/issues"},"dist":{"shasum":"909ddd06eee8d7fd77e63c09a0016a3d1b13681c","tarball":"https://registry.npmjs.org/@agentage/observability/-/observability-0.10.1.tgz","fileCount":51,"integrity":"sha512-itzO/rGJ/IB5ot6XaXkXROSGuj0glo0Y0IjPqZVZlRIcTK2TPWjETEWhxxF3F6RU7QTAxhcar/hwuyZxyeXGSQ==","signatures":[{"sig":"MEYCIQDYe75lKk40UDVPBKEhWuuVyCGfCJ25DucloMaT+K/f0AIhAMVh7tYSaXU1Xde/hU3dIYKCXty/zLAQosJNLH5e0WwS","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"attestations":{"url":"https://registry.npmjs.org/-/npm/v1/attestations/@agentage%2fobservability@0.10.1","provenance":{"predicateType":"https://slsa.dev/provenance/v1"}},"unpackedSize":98736},"main":"dist/index.js","type":"module","types":"dist/index.d.ts","engines":{"node":">=22.13"},"exports":{".":{"types":"./dist/index.d.ts","import":"./dist/index.js"},"./next":{"types":"./dist/next.d.ts","import":"./dist/next.js"},"./health":{"types":"./dist/health.d.ts","import":"./dist/health.js"},"./bootstrap":{"types":"./dist/bootstrap.d.ts","import":"./dist/bootstrap.js"}},"gitHead":"47b1f6fd11d2763dee3b1ca102e985944d190b86","scripts":{"lint":"eslint .","test":"vitest run","build":"tsc -p tsconfig.build.json","format":"prettier --write .","verify":"npm run type-check && npm run lint && npm run format:check && npm run test && npm run build && npm run smoke:dist","smoke:dist":"node --input-type=module -e \"const k = await import('./dist/index.js'); if (typeof k.resolveTracingConfig !== 'function' || typeof k.createLogger !== 'function' || typeof k.captureError !== 'function') process.exit(1); const h = await import('./dist/health.js'); if (h.healthEnvelope('smoke').data.service !== 'smoke' || typeof h.createHealthHandler !== 'function' || typeof h.staticHealthJson !== 'function' || typeof h.health !== 'function' || h.nodeHealth !== h.createHealthHandler || h.staticHealth !== h.staticHealthJson) process.exit(1); await import('./dist/bootstrap.js'); console.log('dist smoke ok');\"","type-check":"tsc --noEmit","format:check":"prettier --check .","test:coverage":"vitest run --coverage","prepublishOnly":"npm run verify"},"_npmUser":{"name":"vreshch","email":"vreshch@gmail.com"},"repository":{"url":"git+https://github.com/agentage/observability.git","type":"git"},"_npmVersion":"10.9.8","description":"Shared observability kit for agentage services: OTLP trace bootstrap (node --import), pino logger preset with trace correlation, one-call error capture, and the estate /health envelope.","directories":{},"_nodeVersion":"22.23.1","dependencies":{"pino":"^10.3.1","@opentelemetry/api":"1.9.1","@opentelemetry/sdk-node":"^0.221.0","@opentelemetry/resources":"2.10.0","@opentelemetry/sdk-trace-base":"^2.2.0","@opentelemetry/instrumentation":"^0.221.0","@opentelemetry/instrumentation-pg":"^0.73.0","@opentelemetry/instrumentation-http":"^0.221.0","@opentelemetry/semantic-conventions":"^1.43.0","@opentelemetry/instrumentation-redis":"^0.69.0","@opentelemetry/instrumentation-undici":"^0.31.0","@opentelemetry/instrumentation-amqplib":"^0.68.0","@opentelemetry/instrumentation-express":"^0.69.0","@opentelemetry/instrumentation-mongodb":"^0.74.0","@opentelemetry/exporter-trace-otlp-http":"^0.221.0"},"publishConfig":{"access":"public"},"_hasShrinkwrap":false,"devDependencies":{"eslint":"^10.0.0","vitest":"^4.0.18","prettier":"^3.6.2","@eslint/js":"^10.0.1","typescript":"^5.9.3","@types/node":"^24.0.0","@vercel/otel":"^2.1.3","@vitest/coverage-v8":"^4.0.18","eslint-config-prettier":"^10.1.8","eslint-plugin-prettier":"^5.5.4","@typescript-eslint/parser":"^8.46.4","@typescript-eslint/eslint-plugin":"^8.46.4"},"peerDependencies":{"@vercel/otel":">=2"},"peerDependenciesMeta":{"@vercel/otel":{"optional":true}},"_npmOperationalInternal":{"tmp":"tmp/observability_0.10.1_1786435781132_0.8289990567239913","host":"s3://npm-registry-packages-npm-production"}},"0.11.0":{"name":"@agentage/observability","version":"0.11.0","license":"MIT","_id":"@agentage/observability@0.11.0","maintainers":[{"name":"vreshch","email":"vreshch@gmail.com"}],"homepage":"https://github.com/agentage/observability#readme","bugs":{"url":"https://github.com/agentage/observability/issues"},"dist":{"shasum":"83fc25f560cb183df7750502a52d604631f8a5e9","tarball":"https://registry.npmjs.org/@agentage/observability/-/observability-0.11.0.tgz","fileCount":51,"integrity":"sha512-SuzCNEor0SkB9w0+N3ITBpHM70CUjRxA8cAyOrb4xYw1Std5zP5S1WiCW/pDU48fzkGG3FpRb3f2LlevtShHfQ==","signatures":[{"sig":"MEQCIDsSxXPXjIGZ6RC1e2Kuv0LNCaf+aoyM7syhgpBhB71jAiAai4b5lxqPNk4cI6SNaCOyzrr+FZjbsJHHKoaoyXTmMw==","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"attestations":{"url":"https://registry.npmjs.org/-/npm/v1/attestations/@agentage%2fobservability@0.11.0","provenance":{"predicateType":"https://slsa.dev/provenance/v1"}},"unpackedSize":101225},"main":"dist/index.js","type":"module","types":"dist/index.d.ts","engines":{"node":">=22.13"},"exports":{".":{"types":"./dist/index.d.ts","import":"./dist/index.js"},"./next":{"types":"./dist/next.d.ts","import":"./dist/next.js"},"./health":{"types":"./dist/health.d.ts","import":"./dist/health.js"},"./bootstrap":{"types":"./dist/bootstrap.d.ts","import":"./dist/bootstrap.js"}},"gitHead":"eda33c23b9274211c1d078d044b4f745ae101cda","scripts":{"lint":"eslint .","test":"vitest run","build":"tsc -p tsconfig.build.json","format":"prettier --write .","verify":"npm run type-check && npm run lint && npm run format:check && npm run test && npm run build && npm run smoke:dist","smoke:dist":"node --input-type=module -e \"const k = await import('./dist/index.js'); if (typeof k.resolveTracingConfig !== 'function' || typeof k.createLogger !== 'function' || typeof k.captureError !== 'function' || k.logger !== k.createLogger) process.exit(1); const h = await import('./dist/health.js'); if (h.healthEnvelope('smoke').data.service !== 'smoke' || typeof h.createHealthHandler !== 'function' || typeof h.staticHealthJson !== 'function' || typeof h.health !== 'function' || h.nodeHealth !== h.createHealthHandler || h.staticHealth !== h.staticHealthJson) process.exit(1); await import('./dist/bootstrap.js'); console.log('dist smoke ok');\"","type-check":"tsc --noEmit","format:check":"prettier --check .","test:coverage":"vitest run --coverage","prepublishOnly":"npm run verify"},"_npmUser":{"name":"vreshch","email":"vreshch@gmail.com"},"repository":{"url":"git+https://github.com/agentage/observability.git","type":"git"},"_npmVersion":"10.9.8","description":"Shared observability kit for agentage services: OTLP trace bootstrap (node --import), pino logger preset with trace correlation, one-call error capture, and the estate /health envelope.","directories":{},"_nodeVersion":"22.23.1","dependencies":{"pino":"^10.3.1","@opentelemetry/api":"1.9.1","@opentelemetry/sdk-node":"^0.221.0","@opentelemetry/resources":"2.10.0","@opentelemetry/sdk-trace-base":"^2.2.0","@opentelemetry/instrumentation":"^0.221.0","@opentelemetry/instrumentation-pg":"^0.73.0","@opentelemetry/instrumentation-http":"^0.221.0","@opentelemetry/semantic-conventions":"^1.43.0","@opentelemetry/instrumentation-redis":"^0.69.0","@opentelemetry/instrumentation-undici":"^0.31.0","@opentelemetry/instrumentation-amqplib":"^0.68.0","@opentelemetry/instrumentation-express":"^0.69.0","@opentelemetry/instrumentation-mongodb":"^0.74.0","@opentelemetry/exporter-trace-otlp-http":"^0.221.0"},"publishConfig":{"access":"public"},"_hasShrinkwrap":false,"devDependencies":{"eslint":"^10.0.0","vitest":"^4.0.18","prettier":"^3.6.2","@eslint/js":"^10.0.1","typescript":"^5.9.3","@types/node":"^24.0.0","@vercel/otel":"^2.1.3","@vitest/coverage-v8":"^4.0.18","eslint-config-prettier":"^10.1.8","eslint-plugin-prettier":"^5.5.4","@typescript-eslint/parser":"^8.46.4","@typescript-eslint/eslint-plugin":"^8.46.4"},"peerDependencies":{"@vercel/otel":">=2"},"peerDependenciesMeta":{"@vercel/otel":{"optional":true}},"_npmOperationalInternal":{"tmp":"tmp/observability_0.11.0_1786488466402_0.9533074552525331","host":"s3://npm-registry-packages-npm-production"}},"0.12.0":{"name":"@agentage/observability","version":"0.12.0","license":"MIT","_id":"@agentage/observability@0.12.0","maintainers":[{"name":"vreshch","email":"vreshch@gmail.com"}],"homepage":"https://github.com/agentage/observability#readme","bugs":{"url":"https://github.com/agentage/observability/issues"},"dist":{"shasum":"b5ca61621055c57ac01e9b5288651a85168c152c","tarball":"https://registry.npmjs.org/@agentage/observability/-/observability-0.12.0.tgz","fileCount":67,"integrity":"sha512-M5pzUdznf4eIVFPMG7NOFr6s4YJhN/1vSlAePlm/dJ7cx9hTKETHxCv1jXZpQyq8iDA6fLOvE1wvlC9jI+LToQ==","signatures":[{"sig":"MEQCIDZ1ir/Dk+67P9EGmLjEs5+8uQ8xNM9qCybyZNLCqI+yAiBMsfX9CxwmIuGloMPIa6NwFjNsoNiWqP6ruVN9/HQJAg==","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"attestations":{"url":"https://registry.npmjs.org/-/npm/v1/attestations/@agentage%2fobservability@0.12.0","provenance":{"predicateType":"https://slsa.dev/provenance/v1"}},"unpackedSize":149406},"main":"dist/index.js","type":"module","types":"dist/index.d.ts","engines":{"node":">=22.13"},"exports":{".":{"types":"./dist/index.d.ts","import":"./dist/index.js"},"./next":{"types":"./dist/next.d.ts","import":"./dist/next.js"},"./health":{"types":"./dist/health.d.ts","import":"./dist/health.js"},"./browser":{"types":"./dist/browser.d.ts","import":"./dist/browser.js"},"./bootstrap":{"types":"./dist/bootstrap.d.ts","import":"./dist/bootstrap.js"}},"gitHead":"03b460c21e3eede928172b39e30f89d15aa1fb93","scripts":{"lint":"eslint .","test":"vitest run","build":"tsc -p tsconfig.build.json","format":"prettier --write .","verify":"npm run type-check && npm run lint && npm run format:check && npm run test && npm run build && npm run smoke:dist","smoke:dist":"node --input-type=module -e \"const k = await import('./dist/index.js'); if (typeof k.resolveTracingConfig !== 'function' || typeof k.createLogger !== 'function' || typeof k.captureError !== 'function' || k.logger !== k.createLogger || typeof k.errorMiddleware !== 'function' || typeof k.onRequestError !== 'function' || typeof k.wrapToolHandler !== 'function' || typeof k.collectorHandler !== 'function' || typeof k.parseClientEvents !== 'function') process.exit(1); const b = await import('./dist/browser.js'); if (typeof b.installErrorReporter !== 'function' || typeof b.installErrorReporter({ endpoint: '/x', service: 'smoke' }) !== 'function') process.exit(1); const h = await import('./dist/health.js'); if (h.healthEnvelope('smoke').data.service !== 'smoke' || typeof h.createHealthHandler !== 'function' || typeof h.staticHealthJson !== 'function' || typeof h.health !== 'function' || h.nodeHealth !== h.createHealthHandler || h.staticHealth !== h.staticHealthJson) process.exit(1); await import('./dist/bootstrap.js'); console.log('dist smoke ok');\"","type-check":"tsc --noEmit","format:check":"prettier --check .","test:coverage":"vitest run --coverage","prepublishOnly":"npm run verify"},"_npmUser":{"name":"vreshch","email":"vreshch@gmail.com"},"repository":{"url":"git+https://github.com/agentage/observability.git","type":"git"},"_npmVersion":"10.9.8","description":"Shared observability kit for agentage services: OTLP trace bootstrap (node --import), pino logger preset with trace correlation, one-call error capture, and the estate /health envelope.","directories":{},"_nodeVersion":"22.23.1","dependencies":{"pino":"^10.3.1","@opentelemetry/api":"1.9.1","@opentelemetry/sdk-node":"^0.221.0","@opentelemetry/resources":"2.10.0","@opentelemetry/sdk-trace-base":"^2.2.0","@opentelemetry/instrumentation":"^0.221.0","@opentelemetry/instrumentation-pg":"^0.73.0","@opentelemetry/instrumentation-http":"^0.221.0","@opentelemetry/semantic-conventions":"^1.43.0","@opentelemetry/instrumentation-redis":"^0.69.0","@opentelemetry/instrumentation-undici":"^0.31.0","@opentelemetry/instrumentation-amqplib":"^0.68.0","@opentelemetry/instrumentation-express":"^0.69.0","@opentelemetry/instrumentation-mongodb":"^0.74.0","@opentelemetry/exporter-trace-otlp-http":"^0.221.0"},"publishConfig":{"access":"public"},"_hasShrinkwrap":false,"devDependencies":{"eslint":"^10.0.0","vitest":"^4.0.18","prettier":"^3.6.2","@eslint/js":"^10.0.1","typescript":"^5.9.3","@types/node":"^24.0.0","@vercel/otel":"^2.1.3","@vitest/coverage-v8":"^4.0.18","eslint-config-prettier":"^10.1.8","eslint-plugin-prettier":"^5.5.4","@typescript-eslint/parser":"^8.46.4","@typescript-eslint/eslint-plugin":"^8.46.4"},"peerDependencies":{"@vercel/otel":">=2"},"peerDependenciesMeta":{"@vercel/otel":{"optional":true}},"_npmOperationalInternal":{"tmp":"tmp/observability_0.12.0_1786582898364_0.29230614098668983","host":"s3://npm-registry-packages-npm-production"}},"0.12.1":{"name":"@agentage/observability","version":"0.12.1","license":"MIT","_id":"@agentage/observability@0.12.1","maintainers":[{"name":"vreshch","email":"vreshch@gmail.com"}],"homepage":"https://github.com/agentage/observability#readme","bugs":{"url":"https://github.com/agentage/observability/issues"},"dist":{"shasum":"8bad5fd3b1aa5b562ab1771568840e954c4e1826","tarball":"https://registry.npmjs.org/@agentage/observability/-/observability-0.12.1.tgz","fileCount":67,"integrity":"sha512-5bnOG1p4nbM3zcpfThZm+1INDaPVfq33SX0pFuE2ju2SdvsLLZuVVJojtSZpirvf1I69OcW/9m6BC0mgRFjv+Q==","signatures":[{"sig":"MEQCIDxVcNnzOVUvQFRhAbjAJ602TlhgvsMlcqA3oe1hvfPtAiBPMUfH3705f9DKwWCheV0EjgENJ97iWhfE4KNziGJLLw==","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"attestations":{"url":"https://registry.npmjs.org/-/npm/v1/attestations/@agentage%2fobservability@0.12.1","provenance":{"predicateType":"https://slsa.dev/provenance/v1"}},"unpackedSize":149833},"main":"dist/index.js","type":"module","types":"dist/index.d.ts","engines":{"node":">=22.13"},"exports":{".":{"types":"./dist/index.d.ts","import":"./dist/index.js"},"./next":{"types":"./dist/next.d.ts","import":"./dist/next.js"},"./health":{"types":"./dist/health.d.ts","import":"./dist/health.js"},"./browser":{"types":"./dist/browser.d.ts","import":"./dist/browser.js"},"./bootstrap":{"types":"./dist/bootstrap.d.ts","import":"./dist/bootstrap.js"}},"gitHead":"75080235f888d672f158dd4663c2827d5ed62136","scripts":{"lint":"eslint .","test":"vitest run","build":"tsc -p tsconfig.build.json","format":"prettier --write .","verify":"npm run type-check && npm run lint && npm run format:check && npm run test && npm run build && npm run smoke:dist","smoke:dist":"node --input-type=module -e \"const k = await import('./dist/index.js'); if (typeof k.resolveTracingConfig !== 'function' || typeof k.createLogger !== 'function' || typeof k.captureError !== 'function' || k.logger !== k.createLogger || typeof k.errorMiddleware !== 'function' || typeof k.onRequestError !== 'function' || typeof k.wrapToolHandler !== 'function' || typeof k.collectorHandler !== 'function' || typeof k.parseClientEvents !== 'function') process.exit(1); const b = await import('./dist/browser.js'); if (typeof b.installErrorReporter !== 'function' || typeof b.installErrorReporter({ endpoint: '/x', service: 'smoke' }) !== 'function') process.exit(1); const h = await import('./dist/health.js'); if (h.healthEnvelope('smoke').data.service !== 'smoke' || typeof h.createHealthHandler !== 'function' || typeof h.staticHealthJson !== 'function' || typeof h.health !== 'function' || h.nodeHealth !== h.createHealthHandler || h.staticHealth !== h.staticHealthJson) process.exit(1); await import('./dist/bootstrap.js'); console.log('dist smoke ok');\"","type-check":"tsc --noEmit","format:check":"prettier --check .","test:coverage":"vitest run --coverage","prepublishOnly":"npm run verify"},"_npmUser":{"name":"vreshch","email":"vreshch@gmail.com"},"repository":{"url":"git+https://github.com/agentage/observability.git","type":"git"},"_npmVersion":"10.9.8","description":"Shared observability kit for agentage services: OTLP trace bootstrap (node --import), pino logger preset with trace correlation, one-call error capture, and the estate /health envelope.","directories":{},"_nodeVersion":"22.23.1","dependencies":{"pino":"^10.3.1","@opentelemetry/api":"1.9.1","@opentelemetry/sdk-node":"^0.221.0","@opentelemetry/resources":"2.10.0","@opentelemetry/sdk-trace-base":"^2.2.0","@opentelemetry/instrumentation":"^0.221.0","@opentelemetry/instrumentation-pg":"^0.73.0","@opentelemetry/instrumentation-http":"^0.221.0","@opentelemetry/semantic-conventions":"^1.43.0","@opentelemetry/instrumentation-redis":"^0.69.0","@opentelemetry/instrumentation-undici":"^0.31.0","@opentelemetry/instrumentation-amqplib":"^0.68.0","@opentelemetry/instrumentation-express":"^0.69.0","@opentelemetry/instrumentation-mongodb":"^0.74.0","@opentelemetry/exporter-trace-otlp-http":"^0.221.0"},"publishConfig":{"access":"public"},"_hasShrinkwrap":false,"devDependencies":{"eslint":"^10.0.0","vitest":"^4.0.18","prettier":"^3.6.2","@eslint/js":"^10.0.1","typescript":"^5.9.3","@types/node":"^24.0.0","@vercel/otel":"^2.1.3","@vitest/coverage-v8":"^4.0.18","eslint-config-prettier":"^10.1.8","eslint-plugin-prettier":"^5.5.4","@typescript-eslint/parser":"^8.46.4","@typescript-eslint/eslint-plugin":"^8.46.4"},"peerDependencies":{"@vercel/otel":">=2"},"peerDependenciesMeta":{"@vercel/otel":{"optional":true}},"_npmOperationalInternal":{"tmp":"tmp/observability_0.12.1_1786584087287_0.11535296010628393","host":"s3://npm-registry-packages-npm-production"}},"0.13.0":{"name":"@agentage/observability","version":"0.13.0","license":"MIT","_id":"@agentage/observability@0.13.0","maintainers":[{"name":"vreshch","email":"vreshch@gmail.com"}],"homepage":"https://github.com/agentage/observability#readme","bugs":{"url":"https://github.com/agentage/observability/issues"},"dist":{"shasum":"d7207251ab537f60f890abb017b7f8550d61ccb1","tarball":"https://registry.npmjs.org/@agentage/observability/-/observability-0.13.0.tgz","fileCount":75,"integrity":"sha512-GzC0uiKd6A1W10GKdIS8NHNXqoyaVOJ25gxtB06UdOzkOUZpaFguaEP4bTW/eWZzRZ9AC5rfYN/s2BzELPiksA==","signatures":[{"sig":"MEQCIDGFdYp7Av02YzYvoepjoZgZWR6tltedvTXe7cKH82YpAiBfUDB88N9BRhSZb3uFeVRYdpmEfR8oill0qxtWnbhlKg==","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"attestations":{"url":"https://registry.npmjs.org/-/npm/v1/attestations/@agentage%2fobservability@0.13.0","provenance":{"predicateType":"https://slsa.dev/provenance/v1"}},"unpackedSize":165201},"main":"dist/index.js","type":"module","types":"dist/index.d.ts","engines":{"node":">=22.13"},"exports":{".":{"types":"./dist/index.d.ts","import":"./dist/index.js"},"./next":{"types":"./dist/next.d.ts","import":"./dist/next.js"},"./health":{"types":"./dist/health.d.ts","import":"./dist/health.js"},"./browser":{"types":"./dist/browser.d.ts","import":"./dist/browser.js"},"./bootstrap":{"types":"./dist/bootstrap.d.ts","import":"./dist/bootstrap.js"}},"gitHead":"504be1718fdd488d84f48e61e0b471d6cb563f37","scripts":{"lint":"eslint .","test":"vitest run","build":"tsc -p tsconfig.build.json","format":"prettier --write .","verify":"npm run type-check && npm run lint && npm run format:check && npm run test && npm run build && npm run smoke:dist","smoke:dist":"node --input-type=module -e \"const k = await import('./dist/index.js'); if (typeof k.resolveTracingConfig !== 'function' || typeof k.createLogger !== 'function' || typeof k.captureError !== 'function' || k.logger !== k.createLogger || typeof k.errorMiddleware !== 'function' || typeof k.onRequestError !== 'function' || typeof k.wrapToolHandler !== 'function' || typeof k.collectorHandler !== 'function' || typeof k.parseClientEvents !== 'function' || typeof k.tracedFetch !== 'function' || typeof k.rootCauseOf !== 'function' || typeof k.frameOf !== 'function' || k.errorFrameFields(new TypeError('x', { cause: Object.assign(new Error('dns'), { code: 'ENOTFOUND' }) })).error_code !== 'ENOTFOUND') process.exit(1); const b = await import('./dist/browser.js'); if (typeof b.installErrorReporter !== 'function' || typeof b.installErrorReporter({ endpoint: '/x', service: 'smoke' }) !== 'function') process.exit(1); const h = await import('./dist/health.js'); if (h.healthEnvelope('smoke').data.service !== 'smoke' || typeof h.createHealthHandler !== 'function' || typeof h.staticHealthJson !== 'function' || typeof h.health !== 'function' || h.nodeHealth !== h.createHealthHandler || h.staticHealth !== h.staticHealthJson) process.exit(1); await import('./dist/bootstrap.js'); console.log('dist smoke ok');\"","type-check":"tsc --noEmit","format:check":"prettier --check .","test:coverage":"vitest run --coverage","prepublishOnly":"npm run verify"},"_npmUser":{"name":"vreshch","email":"vreshch@gmail.com"},"repository":{"url":"git+https://github.com/agentage/observability.git","type":"git"},"_npmVersion":"10.9.8","description":"Shared observability kit for agentage services: OTLP trace bootstrap (node --import), pino logger preset with trace correlation, one-call error capture, and the estate /health envelope.","directories":{},"_nodeVersion":"22.23.1","dependencies":{"pino":"^10.3.1","@opentelemetry/api":"1.9.1","@opentelemetry/sdk-node":"^0.221.0","@opentelemetry/resources":"2.10.0","@opentelemetry/sdk-trace-base":"^2.2.0","@opentelemetry/instrumentation":"^0.221.0","@opentelemetry/instrumentation-pg":"^0.73.0","@opentelemetry/instrumentation-http":"^0.221.0","@opentelemetry/semantic-conventions":"^1.43.0","@opentelemetry/instrumentation-redis":"^0.69.0","@opentelemetry/instrumentation-undici":"^0.31.0","@opentelemetry/instrumentation-amqplib":"^0.68.0","@opentelemetry/instrumentation-express":"^0.69.0","@opentelemetry/instrumentation-mongodb":"^0.74.0","@opentelemetry/exporter-trace-otlp-http":"^0.221.0"},"publishConfig":{"access":"public"},"_hasShrinkwrap":false,"devDependencies":{"eslint":"^10.0.0","vitest":"^4.0.18","prettier":"^3.6.2","@eslint/js":"^10.0.1","typescript":"^5.9.3","@types/node":"^24.0.0","@vercel/otel":"^2.1.3","@vitest/coverage-v8":"^4.0.18","eslint-config-prettier":"^10.1.8","eslint-plugin-prettier":"^5.5.4","@typescript-eslint/parser":"^8.46.4","@typescript-eslint/eslint-plugin":"^8.46.4"},"peerDependencies":{"@vercel/otel":">=2"},"peerDependenciesMeta":{"@vercel/otel":{"optional":true}},"_npmOperationalInternal":{"tmp":"tmp/observability_0.13.0_1786616129138_0.449913338604774","host":"s3://npm-registry-packages-npm-production"}},"0.14.0":{"name":"@agentage/observability","version":"0.14.0","license":"MIT","_id":"@agentage/observability@0.14.0","maintainers":[{"name":"vreshch","email":"vreshch@gmail.com"}],"homepage":"https://github.com/agentage/observability#readme","bugs":{"url":"https://github.com/agentage/observability/issues"},"dist":{"shasum":"7f331e55a8565002c1638b1b14da54e528bf9924","tarball":"https://registry.npmjs.org/@agentage/observability/-/observability-0.14.0.tgz","fileCount":75,"integrity":"sha512-+YIVEL5Z12vCrr9hfOzNhBmJITpBam7Lnyw7Riwbs1+TVe683Tw9IeoX0N1MrqUmvNGa12C7f0sRp4sp1I+2JA==","signatures":[{"sig":"MEUCIEQ/kD3e8YI3n0JXqMSUR/mTng/iR3GAlyxwk5wPDTcWAiEA5AZksSAmk0daQc0IjfVEU18vILY0ite8+6kptElNkkc=","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"attestations":{"url":"https://registry.npmjs.org/-/npm/v1/attestations/@agentage%2fobservability@0.14.0","provenance":{"predicateType":"https://slsa.dev/provenance/v1"}},"unpackedSize":173701},"main":"dist/index.js","type":"module","types":"dist/index.d.ts","engines":{"node":">=22.13"},"exports":{".":{"types":"./dist/index.d.ts","import":"./dist/index.js"},"./next":{"types":"./dist/next.d.ts","import":"./dist/next.js"},"./health":{"types":"./dist/health.d.ts","import":"./dist/health.js"},"./browser":{"types":"./dist/browser.d.ts","import":"./dist/browser.js"},"./bootstrap":{"types":"./dist/bootstrap.d.ts","import":"./dist/bootstrap.js"}},"gitHead":"2aa812b7e675157335a715ba59ba1a0cc4feb4f4","scripts":{"lint":"eslint .","test":"vitest run","build":"tsc -p tsconfig.build.json","format":"prettier --write .","verify":"npm run type-check && npm run lint && npm run format:check && npm run test && npm run build && npm run smoke:dist","smoke:dist":"node --input-type=module -e \"const k = await import('./dist/index.js'); if (typeof k.resolveTracingConfig !== 'function' || typeof k.createLogger !== 'function' || typeof k.captureError !== 'function' || k.logger !== k.createLogger || typeof k.errorMiddleware !== 'function' || typeof k.onRequestError !== 'function' || typeof k.wrapToolHandler !== 'function' || typeof k.collectorHandler !== 'function' || typeof k.parseClientEvents !== 'function' || typeof k.tracedFetch !== 'function' || typeof k.rootCauseOf !== 'function' || typeof k.frameOf !== 'function' || typeof k.targetOf !== 'function' || typeof k.fetchTargetOf !== 'function' || k.categoryOf(Object.assign(new Error('d'), { code: 'ETIMEDOUT' })) !== 'timeout' || k.errorFrameFields(new TypeError('x', { cause: Object.assign(new Error('dns'), { code: 'ENOTFOUND' }) })).error_code !== 'ENOTFOUND') process.exit(1); const b = await import('./dist/browser.js'); if (typeof b.installErrorReporter !== 'function' || typeof b.installErrorReporter({ endpoint: '/x', service: 'smoke' }) !== 'function') process.exit(1); const h = await import('./dist/health.js'); if (h.healthEnvelope('smoke').data.service !== 'smoke' || typeof h.createHealthHandler !== 'function' || typeof h.staticHealthJson !== 'function' || typeof h.health !== 'function' || h.nodeHealth !== h.createHealthHandler || h.staticHealth !== h.staticHealthJson) process.exit(1); await import('./dist/bootstrap.js'); console.log('dist smoke ok');\"","type-check":"tsc --noEmit","format:check":"prettier --check .","test:coverage":"vitest run --coverage","prepublishOnly":"npm run verify"},"_npmUser":{"name":"vreshch","email":"vreshch@gmail.com"},"repository":{"url":"git+https://github.com/agentage/observability.git","type":"git"},"_npmVersion":"10.9.8","description":"Shared observability kit for agentage services: OTLP trace bootstrap (node --import), pino logger preset with trace correlation, one-call error capture, and the estate /health envelope.","directories":{},"_nodeVersion":"22.23.1","dependencies":{"pino":"^10.3.1","@opentelemetry/api":"1.9.1","@opentelemetry/sdk-node":"^0.221.0","@opentelemetry/resources":"2.10.0","@opentelemetry/sdk-trace-base":"^2.2.0","@opentelemetry/instrumentation":"^0.221.0","@opentelemetry/instrumentation-pg":"^0.73.0","@opentelemetry/instrumentation-http":"^0.221.0","@opentelemetry/semantic-conventions":"^1.43.0","@opentelemetry/instrumentation-redis":"^0.69.0","@opentelemetry/instrumentation-undici":"^0.31.0","@opentelemetry/instrumentation-amqplib":"^0.68.0","@opentelemetry/instrumentation-express":"^0.69.0","@opentelemetry/instrumentation-mongodb":"^0.74.0","@opentelemetry/exporter-trace-otlp-http":"^0.221.0"},"publishConfig":{"access":"public"},"_hasShrinkwrap":false,"devDependencies":{"eslint":"^10.0.0","vitest":"^4.0.18","prettier":"^3.6.2","@eslint/js":"^10.0.1","typescript":"^5.9.3","@types/node":"^24.0.0","@vercel/otel":"^2.1.3","@vitest/coverage-v8":"^4.0.18","eslint-config-prettier":"^10.1.8","eslint-plugin-prettier":"^5.5.4","@typescript-eslint/parser":"^8.46.4","@typescript-eslint/eslint-plugin":"^8.46.4"},"peerDependencies":{"@vercel/otel":">=2"},"peerDependenciesMeta":{"@vercel/otel":{"optional":true}},"_npmOperationalInternal":{"tmp":"tmp/observability_0.14.0_1786623823721_0.8444832657715589","host":"s3://npm-registry-packages-npm-production"}},"0.15.0":{"name":"@agentage/observability","version":"0.15.0","license":"MIT","_id":"@agentage/observability@0.15.0","maintainers":[{"name":"vreshch","email":"vreshch@gmail.com"}],"homepage":"https://github.com/agentage/observability#readme","bugs":{"url":"https://github.com/agentage/observability/issues"},"dist":{"shasum":"4dce506317456d7339c12e9958cab14de25fa98b","tarball":"https://registry.npmjs.org/@agentage/observability/-/observability-0.15.0.tgz","fileCount":79,"integrity":"sha512-LrqfKrJNxMdnZJkODymf9SnfiP46kbg1EhEjxDUnO29mpQLny29mqWG0lo/ZKi8kbYPVzW/2QF0OeUP2lfPuMg==","signatures":[{"sig":"MEUCIQCJvV0GB3+NnDO1aXBPODrZpfI8WxoNCkaKfWCZV0MdyQIgMeocCGnsRZUfgpHqEAddM0lESyrMDV338es/P99Y5HY=","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"attestations":{"url":"https://registry.npmjs.org/-/npm/v1/attestations/@agentage%2fobservability@0.15.0","provenance":{"predicateType":"https://slsa.dev/provenance/v1"}},"unpackedSize":181745},"main":"dist/index.js","type":"module","types":"dist/index.d.ts","engines":{"node":">=22.13"},"exports":{".":{"types":"./dist/index.d.ts","import":"./dist/index.js"},"./next":{"types":"./dist/next.d.ts","import":"./dist/next.js"},"./health":{"types":"./dist/health.d.ts","import":"./dist/health.js"},"./browser":{"types":"./dist/browser.d.ts","import":"./dist/browser.js"},"./bootstrap":{"types":"./dist/bootstrap.d.ts","import":"./dist/bootstrap.js"}},"gitHead":"3cad0d3bb661c5706cc4084a142064d7d4bc7cf5","scripts":{"lint":"eslint .","test":"vitest run","build":"tsc -p tsconfig.build.json","format":"prettier --write .","verify":"npm run type-check && npm run lint && npm run format:check && npm run test && npm run build && npm run smoke:dist","smoke:dist":"node --input-type=module -e \"const k = await import('./dist/index.js'); if (typeof k.resolveTracingConfig !== 'function' || typeof k.createLogger !== 'function' || typeof k.captureError !== 'function' || k.logger !== k.createLogger || typeof k.errorMiddleware !== 'function' || typeof k.onRequestError !== 'function' || typeof k.wrapToolHandler !== 'function' || typeof k.collectorHandler !== 'function' || typeof k.parseClientEvents !== 'function' || typeof k.tracedFetch !== 'function' || typeof k.rootCauseOf !== 'function' || typeof k.frameOf !== 'function' || typeof k.targetOf !== 'function' || typeof k.fetchTargetOf !== 'function' || k.categoryOf(Object.assign(new Error('d'), { code: 'ETIMEDOUT' })) !== 'timeout' || k.errorFrameFields(new TypeError('x', { cause: Object.assign(new Error('dns'), { code: 'ENOTFOUND' }) })).error_code !== 'ENOTFOUND') process.exit(1); const b = await import('./dist/browser.js'); if (typeof b.installErrorReporter !== 'function' || typeof b.installErrorReporter({ endpoint: '/x', service: 'smoke' }) !== 'function') process.exit(1); const h = await import('./dist/health.js'); if (h.healthEnvelope('smoke').data.service !== 'smoke' || typeof h.createHealthHandler !== 'function' || typeof h.staticHealthJson !== 'function' || typeof h.health !== 'function' || h.nodeHealth !== h.createHealthHandler || h.staticHealth !== h.staticHealthJson) process.exit(1); await import('./dist/bootstrap.js'); console.log('dist smoke ok');\"","type-check":"tsc --noEmit","format:check":"prettier --check .","test:coverage":"vitest run --coverage","prepublishOnly":"npm run verify"},"_npmUser":{"name":"vreshch","email":"vreshch@gmail.com"},"repository":{"url":"git+https://github.com/agentage/observability.git","type":"git"},"_npmVersion":"10.9.8","description":"Shared observability kit for agentage services: OTLP trace bootstrap (node --import), pino logger preset with trace correlation, one-call error capture, and the estate /health envelope.","directories":{},"_nodeVersion":"22.23.1","dependencies":{"pino":"^10.3.1","@opentelemetry/api":"1.9.1","@opentelemetry/sdk-node":"^0.221.0","@opentelemetry/resources":"2.10.0","@opentelemetry/sdk-trace-base":"^2.2.0","@opentelemetry/instrumentation":"^0.221.0","@opentelemetry/instrumentation-pg":"^0.73.0","@opentelemetry/instrumentation-http":"^0.221.0","@opentelemetry/semantic-conventions":"^1.43.0","@opentelemetry/instrumentation-redis":"^0.69.0","@opentelemetry/instrumentation-undici":"^0.31.0","@opentelemetry/instrumentation-amqplib":"^0.68.0","@opentelemetry/instrumentation-express":"^0.69.0","@opentelemetry/instrumentation-mongodb":"^0.74.0","@opentelemetry/exporter-trace-otlp-http":"^0.221.0"},"publishConfig":{"access":"public"},"_hasShrinkwrap":false,"devDependencies":{"eslint":"^10.0.0","vitest":"^4.0.18","prettier":"^3.6.2","@eslint/js":"^10.0.1","typescript":"^5.9.3","@types/node":"^24.0.0","@vercel/otel":"^2.1.3","@vitest/coverage-v8":"^4.0.18","eslint-config-prettier":"^10.1.8","eslint-plugin-prettier":"^5.5.4","@typescript-eslint/parser":"^8.46.4","@typescript-eslint/eslint-plugin":"^8.46.4"},"peerDependencies":{"@vercel/otel":">=2"},"peerDependenciesMeta":{"@vercel/otel":{"optional":true}},"_npmOperationalInternal":{"tmp":"tmp/observability_0.15.0_1786625537682_0.09696918293859147","host":"s3://npm-registry-packages-npm-production"}},"0.15.1":{"name":"@agentage/observability","version":"0.15.1","license":"MIT","_id":"@agentage/observability@0.15.1","maintainers":[{"name":"vreshch","email":"vreshch@gmail.com"}],"homepage":"https://github.com/agentage/observability#readme","bugs":{"url":"https://github.com/agentage/observability/issues"},"dist":{"shasum":"a5d0d1bebe895466c9fdcb04557f061f4471c581","tarball":"https://registry.npmjs.org/@agentage/observability/-/observability-0.15.1.tgz","fileCount":79,"integrity":"sha512-LHPVHxRPX8ij8RM/ae+vLPum+nqxqiJW2VrE617hlj20lhTJH326ge9HL68aRhBjjt1jTw4RPrDRrdJJq3Xlow==","signatures":[{"sig":"MEUCIDPqoG58zpNbmYpq+o04j+ETxDxKXCu6hXOR81w04xP/AiEAme45JZ4Lx64xnEbGpZQFr9J1m8E8vM+29ig8ReMeIPU=","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"attestations":{"url":"https://registry.npmjs.org/-/npm/v1/attestations/@agentage%2fobservability@0.15.1","provenance":{"predicateType":"https://slsa.dev/provenance/v1"}},"unpackedSize":182320},"main":"dist/index.js","type":"module","types":"dist/index.d.ts","engines":{"node":">=22.13"},"exports":{".":{"types":"./dist/index.d.ts","import":"./dist/index.js"},"./next":{"types":"./dist/next.d.ts","import":"./dist/next.js"},"./health":{"types":"./dist/health.d.ts","import":"./dist/health.js"},"./browser":{"types":"./dist/browser.d.ts","import":"./dist/browser.js"},"./bootstrap":{"types":"./dist/bootstrap.d.ts","import":"./dist/bootstrap.js"}},"gitHead":"ba71e11765356d1d5a329b5a824be46c1a27136b","scripts":{"lint":"eslint .","test":"vitest run","build":"tsc -p tsconfig.build.json","format":"prettier --write .","verify":"npm run type-check && npm run lint && npm run format:check && npm run test && npm run build && npm run smoke:dist","smoke:dist":"node --input-type=module -e \"const k = await import('./dist/index.js'); if (typeof k.resolveTracingConfig !== 'function' || typeof k.createLogger !== 'function' || typeof k.captureError !== 'function' || k.logger !== k.createLogger || typeof k.errorMiddleware !== 'function' || typeof k.onRequestError !== 'function' || typeof k.wrapToolHandler !== 'function' || typeof k.collectorHandler !== 'function' || typeof k.parseClientEvents !== 'function' || typeof k.tracedFetch !== 'function' || typeof k.rootCauseOf !== 'function' || typeof k.frameOf !== 'function' || typeof k.targetOf !== 'function' || typeof k.fetchTargetOf !== 'function' || k.categoryOf(Object.assign(new Error('d'), { code: 'ETIMEDOUT' })) !== 'timeout' || k.errorFrameFields(new TypeError('x', { cause: Object.assign(new Error('dns'), { code: 'ENOTFOUND' }) })).error_code !== 'ENOTFOUND') process.exit(1); const b = await import('./dist/browser.js'); if (typeof b.installErrorReporter !== 'function' || typeof b.installErrorReporter({ endpoint: '/x', service: 'smoke' }) !== 'function') process.exit(1); const h = await import('./dist/health.js'); if (h.healthEnvelope('smoke').data.service !== 'smoke' || typeof h.createHealthHandler !== 'function' || typeof h.staticHealthJson !== 'function' || typeof h.health !== 'function' || h.nodeHealth !== h.createHealthHandler || h.staticHealth !== h.staticHealthJson) process.exit(1); await import('./dist/bootstrap.js'); console.log('dist smoke ok');\"","type-check":"tsc --noEmit","format:check":"prettier --check .","test:coverage":"vitest run --coverage","prepublishOnly":"npm run verify"},"_npmUser":{"name":"vreshch","email":"vreshch@gmail.com"},"repository":{"url":"git+https://github.com/agentage/observability.git","type":"git"},"_npmVersion":"10.9.8","description":"Shared observability kit for agentage services: OTLP trace bootstrap (node --import), pino logger preset with trace correlation, one-call error capture, and the estate /health envelope.","directories":{},"_nodeVersion":"22.23.2","dependencies":{"pino":"^10.3.1","@opentelemetry/api":"1.9.1","@opentelemetry/sdk-node":"^0.221.0","@opentelemetry/resources":"2.10.0","@opentelemetry/sdk-trace-base":"^2.2.0","@opentelemetry/instrumentation":"^0.221.0","@opentelemetry/instrumentation-pg":"^0.73.0","@opentelemetry/instrumentation-http":"^0.221.0","@opentelemetry/semantic-conventions":"^1.43.0","@opentelemetry/instrumentation-redis":"^0.69.0","@opentelemetry/instrumentation-undici":"^0.31.0","@opentelemetry/instrumentation-amqplib":"^0.68.0","@opentelemetry/instrumentation-express":"^0.69.0","@opentelemetry/instrumentation-mongodb":"^0.74.0","@opentelemetry/exporter-trace-otlp-http":"^0.221.0"},"publishConfig":{"access":"public"},"_hasShrinkwrap":false,"devDependencies":{"eslint":"^10.0.0","vitest":"^4.0.18","prettier":"^3.6.2","@eslint/js":"^10.0.1","typescript":"^5.9.3","@types/node":"^24.0.0","@vercel/otel":"^2.1.3","@vitest/coverage-v8":"^4.0.18","eslint-config-prettier":"^10.1.8","eslint-plugin-prettier":"^5.5.4","@typescript-eslint/parser":"^8.46.4","@typescript-eslint/eslint-plugin":"^8.46.4"},"peerDependencies":{"@vercel/otel":">=2"},"peerDependenciesMeta":{"@vercel/otel":{"optional":true}},"_npmOperationalInternal":{"tmp":"tmp/observability_0.15.1_1786662280026_0.8098547867118417","host":"s3://npm-registry-packages-npm-production"}},"0.16.0":{"name":"@agentage/observability","version":"0.16.0","license":"MIT","_id":"@agentage/observability@0.16.0","maintainers":[{"name":"vreshch","email":"vreshch@gmail.com"}],"homepage":"https://github.com/agentage/observability#readme","bugs":{"url":"https://github.com/agentage/observability/issues"},"dist":{"shasum":"f999f34465c7e140cb0241f454539d3a2960208b","tarball":"https://registry.npmjs.org/@agentage/observability/-/observability-0.16.0.tgz","fileCount":83,"integrity":"sha512-Hmgk4TRKWG/J2AosPvhXLU+s2mUpAzQEMXitGT6PVJLPKHM/86z7emfYPO0OBIabTgORk0Iaw6qdUOPYcS7TfQ==","signatures":[{"sig":"MEQCIAUYNtKhc5lqWoDErNIxp0ZLnB8k+qd0iBwWqcwDvPbjAiAENgrKYh4yhuB1zeR+UTVhxDVUqve0XZYESgvHu2Y3xQ==","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"attestations":{"url":"https://registry.npmjs.org/-/npm/v1/attestations/@agentage%2fobservability@0.16.0","provenance":{"predicateType":"https://slsa.dev/provenance/v1"}},"unpackedSize":194237},"main":"dist/index.js","type":"module","types":"dist/index.d.ts","engines":{"node":">=22.13"},"exports":{".":{"types":"./dist/index.d.ts","import":"./dist/index.js"},"./next":{"types":"./dist/next.d.ts","import":"./dist/next.js"},"./health":{"types":"./dist/health.d.ts","import":"./dist/health.js"},"./browser":{"types":"./dist/browser.d.ts","import":"./dist/browser.js"},"./bootstrap":{"types":"./dist/bootstrap.d.ts","import":"./dist/bootstrap.js"}},"gitHead":"c575c41fb9a8fb86fa83a0be20b219acc16e5973","scripts":{"lint":"eslint .","test":"vitest run","build":"tsc -p tsconfig.build.json","format":"prettier --write .","verify":"npm run type-check && npm run lint && npm run format:check && npm run test && npm run build && npm run smoke:dist","smoke:dist":"node --input-type=module -e \"const k = await import('./dist/index.js'); if (typeof k.resolveTracingConfig !== 'function' || typeof k.createLogger !== 'function' || typeof k.captureError !== 'function' || k.logger !== k.createLogger || typeof k.errorMiddleware !== 'function' || typeof k.onRequestError !== 'function' || typeof k.wrapToolHandler !== 'function' || typeof k.collectorHandler !== 'function' || typeof k.parseClientEvents !== 'function' || typeof k.tracedFetch !== 'function' || typeof k.rootCauseOf !== 'function' || typeof k.frameOf !== 'function' || typeof k.targetOf !== 'function' || typeof k.fetchTargetOf !== 'function' || k.categoryOf(Object.assign(new Error('d'), { code: 'ETIMEDOUT' })) !== 'timeout' || k.errorFrameFields(new TypeError('x', { cause: Object.assign(new Error('dns'), { code: 'ENOTFOUND' }) })).error_code !== 'ENOTFOUND') process.exit(1); const b = await import('./dist/browser.js'); if (typeof b.installErrorReporter !== 'function' || typeof b.installErrorReporter({ endpoint: '/x', service: 'smoke' }) !== 'function') process.exit(1); const h = await import('./dist/health.js'); if (h.healthEnvelope('smoke').data.service !== 'smoke' || typeof h.createHealthHandler !== 'function' || typeof h.staticHealthJson !== 'function' || typeof h.health !== 'function' || h.nodeHealth !== h.createHealthHandler || h.staticHealth !== h.staticHealthJson) process.exit(1); await import('./dist/bootstrap.js'); console.log('dist smoke ok');\"","type-check":"tsc --noEmit","format:check":"prettier --check .","test:coverage":"vitest run --coverage","prepublishOnly":"npm run verify"},"_npmUser":{"name":"vreshch","email":"vreshch@gmail.com"},"repository":{"url":"git+https://github.com/agentage/observability.git","type":"git"},"_npmVersion":"10.9.8","description":"Shared observability kit for agentage services: OTLP trace bootstrap (node --import), pino logger preset with trace correlation, one-call error capture, and the estate /health envelope.","directories":{},"_nodeVersion":"22.23.2","dependencies":{"pino":"^10.3.1","@opentelemetry/api":"1.9.1","@opentelemetry/sdk-node":"^0.221.0","@opentelemetry/resources":"2.10.0","@opentelemetry/sdk-trace-base":"^2.2.0","@opentelemetry/instrumentation":"^0.221.0","@opentelemetry/instrumentation-pg":"^0.73.0","@opentelemetry/instrumentation-http":"^0.221.0","@opentelemetry/semantic-conventions":"^1.43.0","@opentelemetry/instrumentation-redis":"^0.69.0","@opentelemetry/instrumentation-undici":"^0.31.0","@opentelemetry/instrumentation-amqplib":"^0.68.0","@opentelemetry/instrumentation-express":"^0.69.0","@opentelemetry/instrumentation-mongodb":"^0.74.0","@opentelemetry/exporter-trace-otlp-http":"^0.221.0"},"publishConfig":{"access":"public"},"_hasShrinkwrap":false,"devDependencies":{"eslint":"^10.0.0","vitest":"^4.0.18","prettier":"^3.6.2","@eslint/js":"^10.0.1","typescript":"^5.9.3","@types/node":"^24.0.0","@vercel/otel":"^2.1.3","@vitest/coverage-v8":"^4.0.18","eslint-config-prettier":"^10.1.8","eslint-plugin-prettier":"^5.5.4","@typescript-eslint/parser":"^8.46.4","@typescript-eslint/eslint-plugin":"^8.46.4"},"peerDependencies":{"@vercel/otel":">=2"},"peerDependenciesMeta":{"@vercel/otel":{"optional":true}},"_npmOperationalInternal":{"tmp":"tmp/observability_0.16.0_1786725617744_0.23888211065934528","host":"s3://npm-registry-packages-npm-production"}},"0.17.0":{"name":"@agentage/observability","version":"0.17.0","license":"MIT","_id":"@agentage/observability@0.17.0","maintainers":[{"name":"vreshch","email":"vreshch@gmail.com"}],"homepage":"https://github.com/agentage/observability#readme","bugs":{"url":"https://github.com/agentage/observability/issues"},"dist":{"shasum":"bcecdfccdcfc2d4f784c96563a7c1e65226f3b47","tarball":"https://registry.npmjs.org/@agentage/observability/-/observability-0.17.0.tgz","fileCount":83,"integrity":"sha512-QtZmuajcx0Rh5q1ThndDsgBId1uJIYJlUY/V0/GUg9s4YrVQNBBqyG4lTJ7rqxUW5dw2/ywjQioQ4iWvaKa3EA==","signatures":[{"sig":"MEYCIQCQiYL7LyLf1AlmAlQcjAmINndHIzEvUG52TjtIh689+wIhALPxlhgxAVInbv27oSg/7FfV7dlhpXZ4v2R+6nt4lVnp","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"attestations":{"url":"https://registry.npmjs.org/-/npm/v1/attestations/@agentage%2fobservability@0.17.0","provenance":{"predicateType":"https://slsa.dev/provenance/v1"}},"unpackedSize":194237},"main":"dist/index.js","type":"module","types":"dist/index.d.ts","engines":{"node":">=22.13"},"exports":{".":{"types":"./dist/index.d.ts","import":"./dist/index.js"},"./next":{"types":"./dist/next.d.ts","import":"./dist/next.js"},"./health":{"types":"./dist/health.d.ts","import":"./dist/health.js"},"./browser":{"types":"./dist/browser.d.ts","import":"./dist/browser.js"},"./bootstrap":{"types":"./dist/bootstrap.d.ts","import":"./dist/bootstrap.js"}},"gitHead":"43a8a1f217ea4de48cdfdd58de990b7abfe2b036","scripts":{"lint":"eslint .","test":"vitest run","build":"tsc -p tsconfig.build.json","format":"prettier --write .","verify":"npm run type-check && npm run lint && npm run format:check && npm run test && npm run build && npm run smoke:dist","smoke:dist":"node --input-type=module -e \"const k = await import('./dist/index.js'); if (typeof k.resolveTracingConfig !== 'function' || typeof k.createLogger !== 'function' || typeof k.captureError !== 'function' || k.logger !== k.createLogger || typeof k.errorMiddleware !== 'function' || typeof k.onRequestError !== 'function' || typeof k.wrapToolHandler !== 'function' || typeof k.collectorHandler !== 'function' || typeof k.parseClientEvents !== 'function' || typeof k.tracedFetch !== 'function' || typeof k.rootCauseOf !== 'function' || typeof k.frameOf !== 'function' || typeof k.targetOf !== 'function' || typeof k.fetchTargetOf !== 'function' || k.categoryOf(Object.assign(new Error('d'), { code: 'ETIMEDOUT' })) !== 'timeout' || k.errorFrameFields(new TypeError('x', { cause: Object.assign(new Error('dns'), { code: 'ENOTFOUND' }) })).error_code !== 'ENOTFOUND') process.exit(1); const b = await import('./dist/browser.js'); if (typeof b.installErrorReporter !== 'function' || typeof b.installErrorReporter({ endpoint: '/x', service: 'smoke' }) !== 'function') process.exit(1); const h = await import('./dist/health.js'); if (h.healthEnvelope('smoke').data.service !== 'smoke' || typeof h.createHealthHandler !== 'function' || typeof h.staticHealthJson !== 'function' || typeof h.health !== 'function' || h.nodeHealth !== h.createHealthHandler || h.staticHealth !== h.staticHealthJson) process.exit(1); await import('./dist/bootstrap.js'); console.log('dist smoke ok');\"","type-check":"tsc --noEmit","format:check":"prettier --check .","test:coverage":"vitest run --coverage","prepublishOnly":"npm run verify"},"_npmUser":{"name":"vreshch","email":"vreshch@gmail.com"},"repository":{"url":"git+https://github.com/agentage/observability.git","type":"git"},"_npmVersion":"10.9.8","description":"Shared observability kit for agentage services: OTLP trace bootstrap (node --import), pino logger preset with trace correlation, one-call error capture, and the estate /health envelope.","directories":{},"_nodeVersion":"22.23.2","dependencies":{"pino":"^10.3.1","@opentelemetry/api":"1.9.1","@opentelemetry/sdk-node":"^0.221.0","@opentelemetry/resources":"2.10.0","@opentelemetry/sdk-trace-base":"^2.2.0","@opentelemetry/instrumentation":"^0.221.0","@opentelemetry/instrumentation-pg":"^0.73.0","@opentelemetry/instrumentation-http":"^0.221.0","@opentelemetry/semantic-conventions":"^1.43.0","@opentelemetry/instrumentation-redis":"^0.69.0","@opentelemetry/instrumentation-undici":"^0.31.0","@opentelemetry/instrumentation-amqplib":"^0.68.0","@opentelemetry/instrumentation-express":"^0.69.0","@opentelemetry/instrumentation-mongodb":"^0.74.0","@opentelemetry/exporter-trace-otlp-http":"^0.221.0"},"publishConfig":{"access":"public"},"_hasShrinkwrap":false,"devDependencies":{"eslint":"^10.0.0","vitest":"^4.0.18","prettier":"^3.6.2","@eslint/js":"^10.0.1","typescript":"^5.9.3","@types/node":"^26.2.0","@vercel/otel":"^2.1.3","@vitest/coverage-v8":"^4.0.18","eslint-config-prettier":"^10.1.8","eslint-plugin-prettier":"^5.5.4","@typescript-eslint/parser":"^8.46.4","@typescript-eslint/eslint-plugin":"^8.46.4"},"peerDependencies":{"@vercel/otel":">=2"},"peerDependenciesMeta":{"@vercel/otel":{"optional":true}},"_npmOperationalInternal":{"tmp":"tmp/observability_0.17.0_1787359025375_0.1094743288508484","host":"s3://npm-registry-packages-npm-production"}},"0.18.0":{"name":"@agentage/observability","version":"0.18.0","license":"MIT","_id":"@agentage/observability@0.18.0","maintainers":[{"name":"vreshch","email":"vreshch@gmail.com"}],"homepage":"https://github.com/agentage/observability#readme","bugs":{"url":"https://github.com/agentage/observability/issues"},"dist":{"shasum":"9be68bd5130deffd6c118f3d994b2f43f9d0c62b","tarball":"https://registry.npmjs.org/@agentage/observability/-/observability-0.18.0.tgz","fileCount":83,"integrity":"sha512-0xTX2def92t96d3Yu7sZbb2g9gu28K0XjfBvl/eUcHomm8IYd4Bg1qJJzptWL4gAYlMhw9dmPc7gXKtDugoVug==","signatures":[{"sig":"MEUCIQDLZD+VTz+x4s2ZmEt8zNYLDXKNWvBdh+DU37w9rv3PZwIgX2CA18uwV4uXbLprx8EY1HloUkEKQ4ttJKuNiagGgXs=","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"attestations":{"url":"https://registry.npmjs.org/-/npm/v1/attestations/@agentage%2fobservability@0.18.0","provenance":{"predicateType":"https://slsa.dev/provenance/v1"}},"unpackedSize":197675},"main":"dist/index.js","type":"module","types":"dist/index.d.ts","engines":{"node":">=22.13"},"exports":{".":{"types":"./dist/index.d.ts","import":"./dist/index.js"},"./next":{"types":"./dist/next.d.ts","import":"./dist/next.js"},"./health":{"types":"./dist/health.d.ts","import":"./dist/health.js"},"./browser":{"types":"./dist/browser.d.ts","import":"./dist/browser.js"},"./bootstrap":{"types":"./dist/bootstrap.d.ts","import":"./dist/bootstrap.js"}},"gitHead":"f8cf2fd1e44208f1228fea8581a682ad0a906679","scripts":{"lint":"eslint .","test":"vitest run","build":"tsc -p tsconfig.build.json","format":"prettier --write .","verify":"npm run type-check && npm run lint && npm run format:check && npm run test && npm run build && npm run smoke:dist","smoke:dist":"node --input-type=module -e \"const k = await import('./dist/index.js'); if (typeof k.resolveTracingConfig !== 'function' || typeof k.createLogger !== 'function' || typeof k.captureError !== 'function' || k.logger !== k.createLogger || typeof k.errorMiddleware !== 'function' || typeof k.onRequestError !== 'function' || typeof k.wrapToolHandler !== 'function' || typeof k.collectorHandler !== 'function' || typeof k.parseClientEvents !== 'function' || typeof k.tracedFetch !== 'function' || typeof k.rootCauseOf !== 'function' || typeof k.frameOf !== 'function' || typeof k.targetOf !== 'function' || typeof k.fetchTargetOf !== 'function' || k.categoryOf(Object.assign(new Error('d'), { code: 'ETIMEDOUT' })) !== 'timeout' || k.errorFrameFields(new TypeError('x', { cause: Object.assign(new Error('dns'), { code: 'ENOTFOUND' }) })).error_code !== 'ENOTFOUND') process.exit(1); const b = await import('./dist/browser.js'); if (typeof b.installErrorReporter !== 'function' || typeof b.installErrorReporter({ endpoint: '/x', service: 'smoke' }) !== 'function') process.exit(1); const h = await import('./dist/health.js'); if (h.healthEnvelope('smoke').data.service !== 'smoke' || typeof h.createHealthHandler !== 'function' || typeof h.staticHealthJson !== 'function' || typeof h.health !== 'function' || h.nodeHealth !== h.createHealthHandler || h.staticHealth !== h.staticHealthJson) process.exit(1); await import('./dist/bootstrap.js'); console.log('dist smoke ok');\"","type-check":"tsc --noEmit","format:check":"prettier --check .","test:coverage":"vitest run --coverage","prepublishOnly":"npm run verify"},"_npmUser":{"name":"vreshch","email":"vreshch@gmail.com"},"repository":{"url":"git+https://github.com/agentage/observability.git","type":"git"},"_npmVersion":"10.9.8","description":"Shared observability kit for agentage services: OTLP trace bootstrap (node --import), pino logger preset with trace correlation, one-call error capture, and the estate /health envelope.","directories":{},"_nodeVersion":"22.23.2","dependencies":{"pino":"^10.3.1","@opentelemetry/api":"1.9.1","@opentelemetry/sdk-node":"^0.221.0","@opentelemetry/resources":"2.10.0","@opentelemetry/sdk-trace-base":"^2.2.0","@opentelemetry/instrumentation":"^0.221.0","@opentelemetry/instrumentation-pg":"^0.73.0","@opentelemetry/instrumentation-http":"^0.221.0","@opentelemetry/semantic-conventions":"^1.43.0","@opentelemetry/instrumentation-redis":"^0.69.0","@opentelemetry/instrumentation-undici":"^0.31.0","@opentelemetry/instrumentation-amqplib":"^0.68.0","@opentelemetry/instrumentation-express":"^0.69.0","@opentelemetry/instrumentation-mongodb":"^0.74.0","@opentelemetry/exporter-trace-otlp-http":"^0.221.0"},"publishConfig":{"access":"public"},"_hasShrinkwrap":false,"devDependencies":{"eslint":"^10.0.0","vitest":"^4.0.18","prettier":"^3.6.2","@eslint/js":"^10.0.1","typescript":"^5.9.3","@types/node":"^26.2.0","@vercel/otel":"^2.1.3","@vitest/coverage-v8":"^4.0.18","eslint-config-prettier":"^10.1.8","eslint-plugin-prettier":"^5.5.4","@typescript-eslint/parser":"^8.46.4","@typescript-eslint/eslint-plugin":"^8.46.4"},"peerDependencies":{"@vercel/otel":">=2"},"peerDependenciesMeta":{"@vercel/otel":{"optional":true}},"_npmOperationalInternal":{"tmp":"tmp/observability_0.18.0_1787951634029_0.01051849433764973","host":"s3://npm-registry-packages-npm-production"}},"0.19.0":{"name":"@agentage/observability","version":"0.19.0","license":"MIT","_id":"@agentage/observability@0.19.0","maintainers":[{"name":"vreshch","email":"vreshch@gmail.com"}],"homepage":"https://github.com/agentage/observability#readme","bugs":{"url":"https://github.com/agentage/observability/issues"},"dist":{"shasum":"9c4157c479f74576181ec5a18f76861e774f379c","tarball":"https://registry.npmjs.org/@agentage/observability/-/observability-0.19.0.tgz","fileCount":83,"integrity":"sha512-iIdyWr+EsR//qGwOd2f31jCQodjZiaPr+/GZLKzX4jkJTPrPJZTND+xfib4uPXiaeowoNuOtMX13cAxxSlLa7w==","signatures":[{"sig":"MEYCIQCDSrUB6CZKFIRWnBOQZhMNn+cFbqHuKHHoqnNHA5gkVwIhAOq7ujIKUsUJ6LhHXHA2ghFSsFR8kSv5+9ir2ru4AHPx","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"},{"sig":"MEYCIQC902SYngrXxhU/ybbYEc4XE6lx85l6tgjyVZxStA1ezgIhAN2vVE2jlNZNxLB3culVibtbns8PSmV1c+UqW6sutEI1","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"attestations":{"url":"https://registry.npmjs.org/-/npm/v1/attestations/@agentage%2fobservability@0.19.0","provenance":{"predicateType":"https://slsa.dev/provenance/v1"}},"unpackedSize":197675},"main":"dist/index.js","type":"module","types":"dist/index.d.ts","engines":{"node":">=22.13"},"exports":{".":{"types":"./dist/index.d.ts","import":"./dist/index.js"},"./next":{"types":"./dist/next.d.ts","import":"./dist/next.js"},"./health":{"types":"./dist/health.d.ts","import":"./dist/health.js"},"./browser":{"types":"./dist/browser.d.ts","import":"./dist/browser.js"},"./bootstrap":{"types":"./dist/bootstrap.d.ts","import":"./dist/bootstrap.js"}},"gitHead":"582fed8c3bc9225318e26e18385db5d338ac80c8","scripts":{"lint":"eslint .","test":"vitest run","build":"tsc -p tsconfig.build.json","format":"prettier --write .","verify":"npm run type-check && npm run lint && npm run format:check && npm run test && npm run build && npm run smoke:dist","smoke:dist":"node --input-type=module -e \"const k = await import('./dist/index.js'); if (typeof k.resolveTracingConfig !== 'function' || typeof k.createLogger !== 'function' || typeof k.captureError !== 'function' || k.logger !== k.createLogger || typeof k.errorMiddleware !== 'function' || typeof k.onRequestError !== 'function' || typeof k.wrapToolHandler !== 'function' || typeof k.collectorHandler !== 'function' || typeof k.parseClientEvents !== 'function' || typeof k.tracedFetch !== 'function' || typeof k.rootCauseOf !== 'function' || typeof k.frameOf !== 'function' || typeof k.targetOf !== 'function' || typeof k.fetchTargetOf !== 'function' || k.categoryOf(Object.assign(new Error('d'), { code: 'ETIMEDOUT' })) !== 'timeout' || k.errorFrameFields(new TypeError('x', { cause: Object.assign(new Error('dns'), { code: 'ENOTFOUND' }) })).error_code !== 'ENOTFOUND') process.exit(1); const b = await import('./dist/browser.js'); if (typeof b.installErrorReporter !== 'function' || typeof b.installErrorReporter({ endpoint: '/x', service: 'smoke' }) !== 'function') process.exit(1); const h = await import('./dist/health.js'); if (h.healthEnvelope('smoke').data.service !== 'smoke' || typeof h.createHealthHandler !== 'function' || typeof h.staticHealthJson !== 'function' || typeof h.health !== 'function' || h.nodeHealth !== h.createHealthHandler || h.staticHealth !== h.staticHealthJson) process.exit(1); await import('./dist/bootstrap.js'); console.log('dist smoke ok');\"","type-check":"tsc --noEmit","format:check":"prettier --check .","test:coverage":"vitest run --coverage","prepublishOnly":"npm run verify"},"_npmUser":{"name":"vreshch","email":"vreshch@gmail.com"},"repository":{"url":"git+https://github.com/agentage/observability.git","type":"git"},"_npmVersion":"10.9.8","description":"Shared observability kit for agentage services: OTLP trace bootstrap (node --import), pino logger preset with trace correlation, one-call error capture, and the estate /health envelope.","directories":{},"_nodeVersion":"22.23.2","dependencies":{"pino":"^10.3.1","@opentelemetry/api":"1.9.1","@opentelemetry/sdk-node":"^0.222.0","@opentelemetry/resources":"2.11.0","@opentelemetry/sdk-trace-base":"^2.2.0","@opentelemetry/instrumentation":"^0.222.0","@opentelemetry/instrumentation-pg":"^0.74.0","@opentelemetry/instrumentation-http":"^0.222.0","@opentelemetry/semantic-conventions":"^1.43.0","@opentelemetry/instrumentation-redis":"^0.70.0","@opentelemetry/instrumentation-undici":"^0.32.0","@opentelemetry/instrumentation-amqplib":"^0.69.0","@opentelemetry/instrumentation-express":"^0.70.0","@opentelemetry/instrumentation-mongodb":"^0.75.0","@opentelemetry/exporter-trace-otlp-http":"^0.222.0"},"publishConfig":{"access":"public"},"_hasShrinkwrap":false,"devDependencies":{"eslint":"^10.0.0","vitest":"^4.0.18","prettier":"^3.6.2","@eslint/js":"^10.0.1","typescript":"^5.9.3","@types/node":"^26.2.0","@vercel/otel":"^2.1.3","@vitest/coverage-v8":"^4.0.18","eslint-config-prettier":"^10.1.8","eslint-plugin-prettier":"^5.5.4","@typescript-eslint/parser":"^8.46.4","@typescript-eslint/eslint-plugin":"^8.46.4"},"peerDependencies":{"@vercel/otel":">=2"},"peerDependenciesMeta":{"@vercel/otel":{"optional":true}},"_npmOperationalInternal":{"tmp":"tmp/observability_0.19.0_1788586602618_0.9669446087842033","host":"s3://npm-registry-packages-npm-production"}},"0.20.0":{"name":"@agentage/observability","version":"0.20.0","license":"MIT","_id":"@agentage/observability@0.20.0","maintainers":[{"name":"vreshch","email":"vreshch@gmail.com"}],"homepage":"https://github.com/agentage/observability#readme","bugs":{"url":"https://github.com/agentage/observability/issues"},"dist":{"shasum":"2f83fcd49e9ed69da3237951eba4e3d9bc38fae9","tarball":"https://registry.npmjs.org/@agentage/observability/-/observability-0.20.0.tgz","fileCount":83,"integrity":"sha512-LDJMTCqCSEmaaR0pF61QRymOkF8GfhjDxKM/zLb0Xbt7l0Hq5Rr9KXh1NlwgvAV0UFPr000C5ygYmf/goO/kAQ==","signatures":[{"sig":"MEUCIFQm2MIgmQNjmeEAQenHVfQiZj41k6Zrs6S4Rt1ESKSVAiEAn2vTr1T5KLuWnYIsgpUJar1OHwHZ7LRuu/6sjJnWbmw=","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"},{"sig":"MEYCIQCwdySuuqsj1gw5f3mps465C7/hQMc623qICKc0HG1WkAIhAIoYRV8p54X/530HAi7lStXsrUckZ4m2U8f2lDkfq3mP","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"attestations":{"url":"https://registry.npmjs.org/-/npm/v1/attestations/@agentage%2fobservability@0.20.0","provenance":{"predicateType":"https://slsa.dev/provenance/v1"}},"unpackedSize":209015},"main":"dist/index.js","type":"module","types":"dist/index.d.ts","engines":{"node":">=22.13"},"exports":{".":{"types":"./dist/index.d.ts","import":"./dist/index.js"},"./next":{"types":"./dist/next.d.ts","import":"./dist/next.js"},"./health":{"types":"./dist/health.d.ts","import":"./dist/health.js"},"./browser":{"types":"./dist/browser.d.ts","import":"./dist/browser.js"},"./bootstrap":{"types":"./dist/bootstrap.d.ts","import":"./dist/bootstrap.js"}},"gitHead":"f30c1a97b79e7dd1274328c1cbfb0c49f6f5003f","scripts":{"lint":"eslint .","test":"vitest run","build":"tsc -p tsconfig.build.json","format":"prettier --write .","verify":"npm run type-check && npm run lint && npm run format:check && npm run test && npm run build && npm run smoke:dist","smoke:dist":"node --input-type=module -e \"const k = await import('./dist/index.js'); if (typeof k.resolveTracingConfig !== 'function' || typeof k.createLogger !== 'function' || typeof k.captureError !== 'function' || k.logger !== k.createLogger || typeof k.errorMiddleware !== 'function' || typeof k.onRequestError !== 'function' || typeof k.wrapToolHandler !== 'function' || typeof k.collectorHandler !== 'function' || typeof k.parseClientEvents !== 'function' || typeof k.tracedFetch !== 'function' || typeof k.rootCauseOf !== 'function' || typeof k.frameOf !== 'function' || typeof k.targetOf !== 'function' || typeof k.fetchTargetOf !== 'function' || k.categoryOf(Object.assign(new Error('d'), { code: 'ETIMEDOUT' })) !== 'timeout' || k.errorFrameFields(new TypeError('x', { cause: Object.assign(new Error('dns'), { code: 'ENOTFOUND' }) })).error_code !== 'ENOTFOUND') process.exit(1); const b = await import('./dist/browser.js'); if (typeof b.installErrorReporter !== 'function' || typeof b.installErrorReporter({ endpoint: '/x', service: 'smoke' }) !== 'function') process.exit(1); const h = await import('./dist/health.js'); if (h.healthEnvelope('smoke').data.service !== 'smoke' || typeof h.createHealthHandler !== 'function' || typeof h.staticHealthJson !== 'function' || typeof h.health !== 'function' || h.nodeHealth !== h.createHealthHandler || h.staticHealth !== h.staticHealthJson) process.exit(1); await import('./dist/bootstrap.js'); console.log('dist smoke ok');\"","type-check":"tsc --noEmit","format:check":"prettier --check .","test:coverage":"vitest run --coverage","prepublishOnly":"npm run verify"},"_npmUser":{"name":"vreshch","email":"vreshch@gmail.com"},"repository":{"url":"git+https://github.com/agentage/observability.git","type":"git"},"_npmVersion":"10.9.8","description":"Shared observability kit for agentage services: OTLP trace bootstrap (node --import), pino logger preset with trace correlation, one-call error capture, and the estate /health envelope.","directories":{},"_nodeVersion":"22.23.2","dependencies":{"pino":"^10.3.1","@opentelemetry/api":"1.9.1","@opentelemetry/sdk-node":"^0.222.0","@opentelemetry/resources":"2.11.0","@opentelemetry/sdk-trace-base":"^2.2.0","@opentelemetry/instrumentation":"^0.222.0","@opentelemetry/instrumentation-pg":"^0.74.0","@opentelemetry/instrumentation-http":"^0.222.0","@opentelemetry/semantic-conventions":"^1.43.0","@opentelemetry/instrumentation-redis":"^0.70.0","@opentelemetry/instrumentation-undici":"^0.32.0","@opentelemetry/instrumentation-amqplib":"^0.69.0","@opentelemetry/instrumentation-express":"^0.70.0","@opentelemetry/instrumentation-mongodb":"^0.75.0","@opentelemetry/exporter-trace-otlp-http":"^0.222.0"},"publishConfig":{"access":"public"},"_hasShrinkwrap":false,"devDependencies":{"eslint":"^10.0.0","vitest":"^4.0.18","prettier":"^3.6.2","@eslint/js":"^10.0.1","typescript":"^5.9.3","@types/node":"^26.2.0","@vercel/otel":"^2.1.3","@vitest/coverage-v8":"^4.0.18","eslint-config-prettier":"^10.1.8","eslint-plugin-prettier":"^5.5.4","@typescript-eslint/parser":"^8.46.4","@typescript-eslint/eslint-plugin":"^8.46.4"},"peerDependencies":{"@vercel/otel":">=2"},"peerDependenciesMeta":{"@vercel/otel":{"optional":true}},"_npmOperationalInternal":{"tmp":"tmp/observability_0.20.0_1788814968892_0.4594021754566264","host":"s3://npm-registry-packages-npm-production"}},"0.21.0":{"name":"@agentage/observability","version":"0.21.0","license":"MIT","_id":"@agentage/observability@0.21.0","maintainers":[{"name":"vreshch","email":"vreshch@gmail.com"}],"homepage":"https://github.com/agentage/observability#readme","bugs":{"url":"https://github.com/agentage/observability/issues"},"dist":{"shasum":"9e264c296feb0d2887139a9ed9b90d7d0127b122","tarball":"https://registry.npmjs.org/@agentage/observability/-/observability-0.21.0.tgz","fileCount":83,"integrity":"sha512-rwp82kc1nqc1kNJacfDvmTkakHMu//dIuICLFucvEgD+SZNVtp0bI67WdxnCGXPVT6K1TsPqBZuFuWsy8Poh0Q==","signatures":[{"sig":"MEUCIQCIszT8CyugC7Uo5Pr6r1NVkevlWmbivhyA/55M2p+SjAIgDMCiKGqZDjmOtoDkgWjfuaPJq/M0S17WqJ9k1f011xo=","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"},{"sig":"MEYCIQDdsloG9d66N+8wA78EAc87QWxKXvmKJTwYAonHscsEVQIhAKlgTS97NMg9ZBC2TNHzEEE7u6q2HmAFv08vb4zzS0WR","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"attestations":{"url":"https://registry.npmjs.org/-/npm/v1/attestations/@agentage%2fobservability@0.21.0","provenance":{"predicateType":"https://slsa.dev/provenance/v1"}},"unpackedSize":209013},"main":"dist/index.js","type":"module","types":"dist/index.d.ts","engines":{"node":">=22.13"},"exports":{".":{"types":"./dist/index.d.ts","import":"./dist/index.js"},"./next":{"types":"./dist/next.d.ts","import":"./dist/next.js"},"./health":{"types":"./dist/health.d.ts","import":"./dist/health.js"},"./browser":{"types":"./dist/browser.d.ts","import":"./dist/browser.js"},"./bootstrap":{"types":"./dist/bootstrap.d.ts","import":"./dist/bootstrap.js"}},"gitHead":"96fa629e45f2856e0362c3dd69ebdec3d9cfcf07","scripts":{"lint":"eslint .","test":"vitest run","build":"tsc -p tsconfig.build.json","format":"prettier --write .","verify":"npm run type-check && npm run lint && npm run format:check && npm run test && npm run build && npm run smoke:dist","smoke:dist":"node --input-type=module -e \"const k = await import('./dist/index.js'); if (typeof k.resolveTracingConfig !== 'function' || typeof k.createLogger !== 'function' || typeof k.captureError !== 'function' || k.logger !== k.createLogger || typeof k.errorMiddleware !== 'function' || typeof k.onRequestError !== 'function' || typeof k.wrapToolHandler !== 'function' || typeof k.collectorHandler !== 'function' || typeof k.parseClientEvents !== 'function' || typeof k.tracedFetch !== 'function' || typeof k.rootCauseOf !== 'function' || typeof k.frameOf !== 'function' || typeof k.targetOf !== 'function' || typeof k.fetchTargetOf !== 'function' || k.categoryOf(Object.assign(new Error('d'), { code: 'ETIMEDOUT' })) !== 'timeout' || k.errorFrameFields(new TypeError('x', { cause: Object.assign(new Error('dns'), { code: 'ENOTFOUND' }) })).error_code !== 'ENOTFOUND') process.exit(1); const b = await import('./dist/browser.js'); if (typeof b.installErrorReporter !== 'function' || typeof b.installErrorReporter({ endpoint: '/x', service: 'smoke' }) !== 'function') process.exit(1); const h = await import('./dist/health.js'); if (h.healthEnvelope('smoke').data.service !== 'smoke' || typeof h.createHealthHandler !== 'function' || typeof h.staticHealthJson !== 'function' || typeof h.health !== 'function' || h.nodeHealth !== h.createHealthHandler || h.staticHealth !== h.staticHealthJson) process.exit(1); await import('./dist/bootstrap.js'); console.log('dist smoke ok');\"","type-check":"tsc --noEmit","format:check":"prettier --check .","test:coverage":"vitest run --coverage","prepublishOnly":"npm run verify"},"_npmUser":{"name":"vreshch","email":"vreshch@gmail.com"},"repository":{"url":"git+https://github.com/agentage/observability.git","type":"git"},"_npmVersion":"10.9.8","description":"Shared observability kit for agentage services: OTLP trace bootstrap (node --import), pino logger preset with trace correlation, one-call error capture, and the estate /health envelope.","directories":{},"_nodeVersion":"22.23.2","dependencies":{"pino":"^10.3.1","@opentelemetry/api":"1.9.1","@opentelemetry/sdk-node":"^0.222.0","@opentelemetry/resources":"2.11.0","@opentelemetry/sdk-trace-base":"^2.2.0","@opentelemetry/instrumentation":"^0.222.0","@opentelemetry/instrumentation-pg":"^0.74.0","@opentelemetry/instrumentation-http":"^0.222.0","@opentelemetry/semantic-conventions":"^1.43.0","@opentelemetry/instrumentation-redis":"^0.70.0","@opentelemetry/instrumentation-undici":"^0.32.0","@opentelemetry/instrumentation-amqplib":"^0.69.0","@opentelemetry/instrumentation-express":"^0.70.0","@opentelemetry/instrumentation-mongodb":"^0.75.0","@opentelemetry/exporter-trace-otlp-http":"^0.222.0"},"publishConfig":{"access":"public"},"_hasShrinkwrap":false,"devDependencies":{"eslint":"^10.0.0","vitest":"^5.0.0","prettier":"^3.6.2","@eslint/js":"^10.0.1","typescript":"^5.9.3","@types/node":"^26.2.0","@vercel/otel":"^2.1.3","@vitest/coverage-v8":"^5.0.0","eslint-config-prettier":"^10.1.8","eslint-plugin-prettier":"^5.5.4","@typescript-eslint/parser":"^8.46.4","@typescript-eslint/eslint-plugin":"^8.46.4"},"peerDependencies":{"@vercel/otel":">=2"},"peerDependenciesMeta":{"@vercel/otel":{"optional":true}},"_npmOperationalInternal":{"tmp":"tmp/observability_0.21.0_1789191407968_0.21304547787545824","host":"s3://npm-registry-packages-npm-production"}},"1.0.0":{"name":"@agentage/observability","version":"1.0.0","license":"MIT","_id":"@agentage/observability@1.0.0","maintainers":[{"name":"vreshch","email":"vreshch@gmail.com"}],"homepage":"https://github.com/agentage/observability#readme","bugs":{"url":"https://github.com/agentage/observability/issues"},"dist":{"shasum":"03555ff5b1618be83ef2d0c868b6641f9f39865e","tarball":"https://registry.npmjs.org/@agentage/observability/-/observability-1.0.0.tgz","fileCount":61,"integrity":"sha512-TbHSd4QGx5dky0x5bsabFWC955a2vTxafEcv3IYe1ppiYY4/JKcqSQCeoguvfwLlySsO8pN0ODvcz3yet6eibA==","signatures":[{"sig":"MEUCIC76qJcv5DbkLpk6PtYl2RMrVFjt/Dzfc8I8NvneFhbxAiEA9ZfeVldIRJJSztAMwVWflzEzoMG0yCfVhluPUv1m08Y=","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"},{"sig":"MEUCICJVonVV+iLb7hVM6p5dD8pc5z10tyt6B/yyOuqGdOivAiEAtlfammDzHYA2gewwoobbHtIM5qPh6jkhx+jrMeQ6oqo=","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"attestations":{"url":"https://registry.npmjs.org/-/npm/v1/attestations/@agentage%2fobservability@1.0.0","provenance":{"predicateType":"https://slsa.dev/provenance/v1"}},"unpackedSize":178855},"type":"module","engines":{"node":">=22.13"},"exports":{".":{"types":"./dist/index.d.ts","import":"./dist/index.js"},"./next":{"types":"./dist/next.d.ts","import":"./dist/next.js"},"./react":{"types":"./dist/react.d.ts","import":"./dist/react.js"},"./health":{"types":"./dist/health.d.ts","import":"./dist/health.js"},"./browser":{"types":"./dist/browser.d.ts","import":"./dist/browser.js"},"./bootstrap":{"types":"./dist/bootstrap.d.ts","import":"./dist/bootstrap.js"},"./package.json":"./package.json"},"gitHead":"570743e722b2a6461f1cc5cc09583d771c898574","scripts":{"lint":"eslint .","test":"vitest run","build":"tsc -p tsconfig.build.json","format":"prettier --write .","verify":"npm run type-check && npm run lint && npm run format:check && npm run test && npm run build && npm run smoke:dist && npm run smoke:bootstrap","smoke:dist":"node --input-type=module -e \"const k = await import('./dist/index.js'); if (typeof k.log.info !== 'function' || typeof k.span !== 'function' || typeof k.setUser !== 'function' || typeof k.health !== 'function') process.exit(1); const deprecated = ['createLogger', 'createRequestLog', 'errorMiddleware', 'onRequestError', 'collectorHandler', 'wrapToolHandler', 'setMcpTool', 'markSpanError', 'setSpanAttributes', 'tracedFetch', 'withSpan', 'classifyClientType']; if (deprecated.some((name) => typeof k[name] !== 'function')) process.exit(1); if (k.CLIENT_TYPE_HEADER !== 'x-client-type' || k.USER_TYPE_FIELD !== 'user_type' || k.UserType.Bot !== 'bot') process.exit(1); const pruned = ['captureError', 'logger', 'parseClientEvents', 'redactArgs', 'errorCodeOf', 'fingerprintOf', 'rootCauseOf', 'categoryOf', 'frameOf', 'targetOf', 'errorFrameFields', 'fetchTargetOf', 'resolveTracingConfig', 'samplerFromEnv', 'routeFromUrl', 'parseIpRanges', 'ipInRanges', 'stampUserType', 'userTypeFromContext', 'UNMATCHED_ROUTE']; if (pruned.some((name) => name in k)) process.exit(1); const b = await import('./dist/browser.js'); if (typeof b.observeBrowser !== 'function' || typeof b.installErrorReporter !== 'function' || typeof b.observeBrowser({ endpoint: '/x', service: 'smoke' }) !== 'function' || b.getTraceId() !== undefined) process.exit(1); const r = await import('./dist/react.js'); const { readFileSync } = await import('node:fs'); if (typeof r.ErrorReporter !== 'function' || !readFileSync('./dist/react.js', 'utf8').includes('use client')) process.exit(1); const h = await import('./dist/health.js'); if (h.healthEnvelope('smoke').data.service !== 'smoke' || typeof h.createHealthHandler !== 'function' || typeof h.healthResponse !== 'function' || typeof h.health !== 'function' || ['nodeHealth', 'staticHealth', 'staticHealthJson', 'runChecks', 'resolveHealth'].some((name) => name in h)) process.exit(1); const n = await import('./dist/next.js'); if (typeof n.register !== 'function' || typeof n.onRequestError !== 'function') process.exit(1); const mcp = await import('./dist/internal/patch/mcp.js'); if (mcp.installMcpPatch({ OBS_MCP_PATCH: 'off' }) !== false || mcp.redactToolArgs({ path: 'a.md', query: 'x', token: 's' }).path !== '<4 chars>' || mcp.redactToolArgs({ query: 'x' }).query !== 'x') process.exit(1); await import('./dist/bootstrap.js'); console.log('dist smoke ok');\"","type-check":"tsc --noEmit","format:check":"prettier --check .","test:coverage":"vitest run --coverage","prepublishOnly":"npm run verify","smoke:bootstrap":"node --import ./dist/bootstrap.js ./test/fixtures/bootstrap-app.mjs"},"_npmUser":{"name":"vreshch","email":"vreshch@gmail.com"},"repository":{"url":"git+https://github.com/agentage/observability.git","type":"git"},"_npmVersion":"10.9.8","description":"Shared observability kit for agentage services: OTLP trace bootstrap (node --import), pino logger preset with trace correlation, one-call error capture, and the estate /health envelope.","directories":{},"_nodeVersion":"22.23.2","dependencies":{"pino":"^10.3.1","@opentelemetry/resources":"2.11.0","@opentelemetry/sdk-trace-base":"^2.2.0","@opentelemetry/sdk-trace-node":"^2.11.0","@opentelemetry/instrumentation":"^0.222.0","@opentelemetry/instrumentation-http":"^0.222.0","@opentelemetry/semantic-conventions":"^1.43.0","@opentelemetry/instrumentation-undici":"^0.32.0","@opentelemetry/instrumentation-express":"^0.70.0","@opentelemetry/exporter-trace-otlp-http":"^0.222.0"},"publishConfig":{"access":"public"},"_hasShrinkwrap":false,"devDependencies":{"zod":"^4.6.3","react":"^19.3.0","eslint":"^10.0.0","vitest":"^5.0.0","express":"^5.2.1","express4":"npm:express@^4.22.2","prettier":"^3.6.2","@eslint/js":"^10.0.1","typescript":"^5.9.3","@types/node":"^26.2.0","@types/react":"^19.3.0","@vercel/otel":"^2.1.3","@types/express":"^5.0.6","@opentelemetry/api":"1.9.1","@vitest/coverage-v8":"^5.0.0","eslint-config-prettier":"^10.1.8","eslint-plugin-prettier":"^5.5.4","@modelcontextprotocol/sdk":"^1.30.0","@typescript-eslint/parser":"^8.46.4","@typescript-eslint/eslint-plugin":"^8.46.4","@opentelemetry/instrumentation-pg":"^0.74.0","@opentelemetry/instrumentation-redis":"^0.70.0","@opentelemetry/instrumentation-amqplib":"^0.69.0","@opentelemetry/instrumentation-mongodb":"^0.75.0"},"peerDependencies":{"react":">=18","@vercel/otel":">=2","@opentelemetry/api":"^1.9.0","@modelcontextprotocol/sdk":">=1.11 <2","@opentelemetry/instrumentation-pg":"^0.74.0","@opentelemetry/instrumentation-redis":"^0.70.0","@opentelemetry/instrumentation-amqplib":"^0.69.0","@opentelemetry/instrumentation-mongodb":"^0.75.0"},"peerDependenciesMeta":{"react":{"optional":true},"@vercel/otel":{"optional":true},"@modelcontextprotocol/sdk":{"optional":true},"@opentelemetry/instrumentation-pg":{"optional":true},"@opentelemetry/instrumentation-redis":{"optional":true},"@opentelemetry/instrumentation-amqplib":{"optional":true},"@opentelemetry/instrumentation-mongodb":{"optional":true}},"_npmOperationalInternal":{"tmp":"tmp/observability_1.0.0_1789258241013_0.32184064561004533","host":"s3://npm-registry-packages-npm-production"}},"1.1.0":{"_id":"@agentage/observability@1.1.0","bugs":{"url":"https://github.com/agentage/observability/issues"},"dist":{"shasum":"b5dda23d27aca15c03849c01c7dc0b2846078219","tarball":"https://registry.npmjs.org/@agentage/observability/-/observability-1.1.0.tgz","fileCount":65,"integrity":"sha512-02P7SpmqEbidrPMwok8f+UxKxQZjoDiX0qHmKcrx9L2DVaw9LoXip2NJCqNtJHtI11NlnUPiiNvc0NmBRq9Hsw==","signatures":[{"sig":"MEUCIQDQVmbXjW58rUZ158EI6PAJNy1h3QAlqJDuuZjva5e8KgIgCKEQxkRR7JOdUwJJrDHW6/XKyR5sAx1P0tzT0DAcyUk=","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"},{"keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U","sig":"MEYCIQCJNwBvRIgIFVeLjepn75garzEmAvgwmRaT8A0uxYCYqgIhAL4HNHlqnSjP/BDBL+dBepdco6ZZ04bwrm33wNdrwqfm"}],"attestations":{"url":"https://registry.npmjs.org/-/npm/v1/attestations/@agentage%2fobservability@1.1.0","provenance":{"predicateType":"https://slsa.dev/provenance/v1"}},"unpackedSize":194505},"name":"@agentage/observability","type":"module","engines":{"node":">=22.13"},"exports":{".":{"types":"./dist/index.d.ts","import":"./dist/index.js"},"./next":{"types":"./dist/next.d.ts","import":"./dist/next.js"},"./react":{"types":"./dist/react.d.ts","import":"./dist/react.js"},"./health":{"types":"./dist/health.d.ts","import":"./dist/health.js"},"./browser":{"types":"./dist/browser.d.ts","import":"./dist/browser.js"},"./bootstrap":{"types":"./dist/bootstrap.d.ts","import":"./dist/bootstrap.js"},"./package.json":"./package.json"},"gitHead":"663f9c0429f9eec5e4235531bbe791ea06a389ff","license":"MIT","scripts":{"lint":"eslint .","test":"vitest run","build":"tsc -p tsconfig.build.json","format":"prettier --write .","verify":"npm run type-check && npm run lint && npm run format:check && npm run test && npm run build && npm run smoke:dist && npm run smoke:bootstrap && npm run smoke:stdio","smoke:dist":"node --input-type=module -e \"const k = await import('./dist/index.js'); if (typeof k.log.info !== 'function' || typeof k.span !== 'function' || typeof k.setUser !== 'function' || typeof k.health !== 'function' || typeof k.serveHealth !== 'function') process.exit(1); const deprecated = ['createLogger', 'createRequestLog', 'errorMiddleware', 'onRequestError', 'collectorHandler', 'wrapToolHandler', 'setMcpTool', 'markSpanError', 'setSpanAttributes', 'tracedFetch', 'withSpan', 'classifyClientType']; if (deprecated.some((name) => typeof k[name] !== 'function')) process.exit(1); if (k.CLIENT_TYPE_HEADER !== 'x-client-type' || k.USER_TYPE_FIELD !== 'user_type' || k.UserType.Bot !== 'bot') process.exit(1); const pruned = ['captureError', 'logger', 'parseClientEvents', 'redactArgs', 'errorCodeOf', 'fingerprintOf', 'rootCauseOf', 'categoryOf', 'frameOf', 'targetOf', 'errorFrameFields', 'fetchTargetOf', 'resolveTracingConfig', 'samplerFromEnv', 'routeFromUrl', 'parseIpRanges', 'ipInRanges', 'stampUserType', 'userTypeFromContext', 'UNMATCHED_ROUTE']; if (pruned.some((name) => name in k)) process.exit(1); const b = await import('./dist/browser.js'); if (typeof b.observeBrowser !== 'function' || typeof b.installErrorReporter !== 'function' || typeof b.observeBrowser({ endpoint: '/x', service: 'smoke' }) !== 'function' || b.getTraceId() !== undefined) process.exit(1); const r = await import('./dist/react.js'); const { readFileSync } = await import('node:fs'); if (typeof r.ErrorReporter !== 'function' || !readFileSync('./dist/react.js', 'utf8').includes('use client')) process.exit(1); const h = await import('./dist/health.js'); if (h.healthEnvelope('smoke').data.service !== 'smoke' || typeof h.createHealthHandler !== 'function' || typeof h.healthResponse !== 'function' || typeof h.health !== 'function' || ['nodeHealth', 'staticHealth', 'staticHealthJson', 'runChecks', 'resolveHealth'].some((name) => name in h)) process.exit(1); const n = await import('./dist/next.js'); if (typeof n.register !== 'function' || typeof n.onRequestError !== 'function' || typeof n.collectorRoute !== 'function' || typeof n.collectorRoute() !== 'function') process.exit(1); const mcp = await import('./dist/internal/patch/mcp.js'); if (mcp.installMcpPatch({ OBS_MCP_PATCH: 'off' }) !== false || mcp.redactToolArgs({ path: 'a.md', query: 'x', token: 's' }).path !== '<4 chars>' || mcp.redactToolArgs({ query: 'x' }).query !== 'x') process.exit(1); await import('./dist/bootstrap.js'); console.log('dist smoke ok');\"","type-check":"tsc --noEmit","smoke:stdio":"node ./test/fixtures/stdio-guard.mjs","format:check":"prettier --check .","test:coverage":"vitest run --coverage","prepublishOnly":"npm run verify","smoke:bootstrap":"node --import ./dist/bootstrap.js ./test/fixtures/bootstrap-app.mjs"},"version":"1.1.0","_npmUser":{"name":"vreshch","email":"vreshch@gmail.com"},"homepage":"https://github.com/agentage/observability#readme","repository":{"url":"git+https://github.com/agentage/observability.git","type":"git"},"_npmVersion":"10.9.8","description":"Shared observability kit for agentage services: OTLP trace bootstrap (node --import), pino logger preset with trace correlation, one-call error capture, and the estate /health envelope.","directories":{},"maintainers":[{"name":"vreshch","email":"vreshch@gmail.com"}],"_nodeVersion":"22.23.2","dependencies":{"pino":"^10.3.1","@opentelemetry/resources":"2.11.0","@opentelemetry/sdk-trace-base":"^2.2.0","@opentelemetry/sdk-trace-node":"^2.11.0","@opentelemetry/instrumentation":"^0.222.0","@opentelemetry/instrumentation-http":"^0.222.0","@opentelemetry/semantic-conventions":"^1.43.0","@opentelemetry/instrumentation-undici":"^0.32.0","@opentelemetry/instrumentation-express":"^0.70.0","@opentelemetry/exporter-trace-otlp-http":"^0.222.0"},"publishConfig":{"access":"public"},"_hasShrinkwrap":false,"devDependencies":{"zod":"^4.6.3","react":"^19.3.0","eslint":"^10.0.0","vitest":"^5.0.0","express":"^5.2.1","express4":"npm:express@^4.22.2","prettier":"^3.6.2","@eslint/js":"^10.0.1","typescript":"^5.9.3","@types/node":"^26.2.0","@types/react":"^19.3.0","@vercel/otel":"^2.1.3","@types/express":"^5.0.6","@opentelemetry/api":"1.9.1","@vitest/coverage-v8":"^5.0.0","eslint-config-prettier":"^10.1.8","eslint-plugin-prettier":"^5.5.4","@modelcontextprotocol/sdk":"^1.30.0","@typescript-eslint/parser":"^8.46.4","@typescript-eslint/eslint-plugin":"^8.46.4","@opentelemetry/instrumentation-pg":"^0.74.0","@opentelemetry/instrumentation-redis":"^0.70.0","@opentelemetry/instrumentation-amqplib":"^0.69.0","@opentelemetry/instrumentation-mongodb":"^0.75.0"},"peerDependencies":{"react":">=18","@vercel/otel":">=2","@opentelemetry/api":"^1.9.0","@modelcontextprotocol/sdk":">=1.11 <2","@opentelemetry/instrumentation-pg":"^0.74.0","@opentelemetry/instrumentation-redis":"^0.70.0","@opentelemetry/instrumentation-amqplib":"^0.69.0","@opentelemetry/instrumentation-mongodb":"^0.75.0"},"peerDependenciesMeta":{"react":{"optional":true},"@vercel/otel":{"optional":true},"@modelcontextprotocol/sdk":{"optional":true},"@opentelemetry/instrumentation-pg":{"optional":true},"@opentelemetry/instrumentation-redis":{"optional":true},"@opentelemetry/instrumentation-amqplib":{"optional":true},"@opentelemetry/instrumentation-mongodb":{"optional":true}},"_npmOperationalInternal":{"host":"s3://npm-registry-packages-npm-production","tmp":"tmp/observability_1.1.0_1789339755017_0.7702367705991855"}}},"time":{"created":"2026-08-08T00:03:31.346Z","modified":"2026-09-13T22:49:15.463Z","0.1.0":"2026-08-08T00:03:31.661Z","0.1.1":"2026-08-08T00:14:54.934Z","0.2.0":"2026-08-08T00:21:22.797Z","0.2.1":"2026-08-08T01:42:03.457Z","0.3.0":"2026-08-08T02:20:37.184Z","0.4.0":"2026-08-08T09:35:11.330Z","0.5.0":"2026-08-08T13:39:03.376Z","0.6.0":"2026-08-08T13:46:51.683Z","0.6.1":"2026-08-08T14:14:35.891Z","0.6.2":"2026-08-08T14:37:37.808Z","0.7.0":"2026-08-08T16:23:03.482Z","0.7.1":"2026-08-08T17:48:52.705Z","0.8.0":"2026-08-09T14:24:18.049Z","0.8.1":"2026-08-09T14:27:50.276Z","0.9.0":"2026-08-10T01:08:47.215Z","0.9.1":"2026-08-10T01:43:58.684Z","0.10.0":"2026-08-11T02:11:10.100Z","0.10.1":"2026-08-11T08:09:41.272Z","0.11.0":"2026-08-11T22:47:46.537Z","0.12.0":"2026-08-13T01:01:38.506Z","0.12.1":"2026-08-13T01:21:27.452Z","0.13.0":"2026-08-13T10:15:29.307Z","0.14.0":"2026-08-13T12:23:43.884Z","0.15.0":"2026-08-13T12:52:17.805Z","0.15.1":"2026-08-13T23:04:40.199Z","0.16.0":"2026-08-14T16:40:17.886Z","0.17.0":"2026-08-22T00:37:05.537Z","0.18.0":"2026-08-28T21:13:54.169Z","0.19.0":"2026-09-05T05:36:42.704Z","0.20.0":"2026-09-07T21:02:48.981Z","0.21.0":"2026-09-12T05:36:48.044Z","1.0.0":"2026-09-13T00:10:41.102Z","1.1.0":"2026-09-13T22:49:15.098Z"},"bugs":{"url":"https://github.com/agentage/observability/issues"},"license":"MIT","homepage":"https://github.com/agentage/observability#readme","repository":{"url":"git+https://github.com/agentage/observability.git","type":"git"},"description":"Shared observability kit for agentage services: OTLP trace bootstrap (node --import), pino logger preset with trace correlation, one-call error capture, and the estate /health envelope.","maintainers":[{"name":"vreshch","email":"vreshch@gmail.com"}],"readme":"# @agentage/observability\n\nOne `/health` endpoint, one log shape, one trace pipeline - for every Node service you run.\nPreload it and an Express or MCP service reports itself with **no code at all**: request log,\nhealth, error envelope, per-tool spans. `health` works on its own with zero configuration, and\ntracing stays completely inert until you point it at a collector.\n\n## Setup\n\n```bash\nnpm install @agentage/observability\n```\n\n| Runtime            | Wiring                                                                                                  |\n| ------------------ | ------------------------------------------------------------------------------------------------------- |\n| Express / Node     | `node --import @agentage/observability/bootstrap dist/index.js` (Dockerfile `CMD`, or `NODE_OPTIONS`)   |\n| stdio MCP server   | `#!/usr/bin/env -S node --import @agentage/observability/bootstrap`                                     |\n| Next.js            | `src/instrumentation.ts`: `export { register } from '@agentage/observability/next';` (+ `@vercel/otel`) |\n| React / browser    | `<ErrorReporter endpoint=\"/api/client-errors\" service=\"web\" userId={user?.id} />` from `/react`         |\n| Workers, Deno, Bun | `export const GET = health();` from `/health` - zero dependencies, no Node APIs, edge-safe              |\n\n`--import`, never `--require`: a CJS preload cannot patch `import`ed modules, so your Express and\nHTTP spans silently vanish. `@opentelemetry/api` is a **peer** - install it alongside, since two\ncopies in one tree put spans on the wrong provider.\n\n## The API\n\nFour names over six entries - root, `/bootstrap`, `/next`, `/browser`, `/react`, `/health` - plus\ntwo mounts (`collectorRoute`, `serveHealth`) for the two runtimes the auto-wiring cannot patch.\n\n```ts\nimport { log, span, setUser, health } from '@agentage/observability';\n\nlog.info({ route: '/login' }, 'user signed in'); // JSON to stderr, trace ids attached\nlog.error(err); // + records the exception on the active span and marks it failed\n\nawait span('store.read', () => store.read(id), { memory: id }); // one properly parented span\nsetUser(session.user.id); // after auth, once\n\nexport const GET = health({\n  checks: { db: () => pool.query('SELECT 1') }, // throws, rejects, hangs or false = down\n  facts: () => ({ memories: count }), // counts and modes, never state\n});\n```\n\n`log` needs no construction call: `service` from `OTEL_SERVICE_NAME`, level from `LOG_LEVEL`,\nalways stderr (stdout is the JSON-RPC channel of a stdio MCP server). `span` is where trace depth\ncomes from - the auto-instrumentation stays at one span per request - and is inert without a\nstarted SDK, so library code can call it unconditionally. `setUser` rides the OTel context onto the\nrequest log line, every error raised under it and the active span, inside a scope the kit opened\n(the request log, or `span()`) - and it works with tracing unconfigured too, so a no-collector\ndeploy keeps its `user_id`. Zero-config `health()` is a valid **liveness** probe; add `checks` and\nthe same factory is your **readiness** probe. Pick the form by runtime, not by age: `health()`\nreturns a fetch-native handler (Next route handlers, Hono, Workers, Deno, Bun), **`createHealthHandler()`\nis the Express one** (`app.get('/health', createHealthHandler({ checks }))`) and neither is\ndeprecated; `healthResponse`/`healthEnvelope` are the raw `Response`/object. Never put it behind\nauth, a redirect or a rate limiter. In the browser, `getTraceId()` from `/browser` (also\n`document.documentElement.dataset.obsTrace`) is the id an error screen shows a user for support.\n\nTwo mounts the auto-wiring cannot reach, because there is no Express `listen()` to patch:\n\n```ts\n// app/api/client-errors/route.ts - the collector for <ErrorReporter /> on Next\nexport const dynamic = 'force-dynamic';\nexport const POST = collectorRoute(); // from '@agentage/observability/next'\n\n// a worker with no HTTP server of its own: a crawler, a queue consumer, a cron container\nconst probe = serveHealth(3003, { db: () => client.db.command({ ping: 1 }) });\nprocess.once('SIGTERM', () => void probe.close());\n```\n\n`collectorRoute()` is the same guards the Express collector applies, as a fetch handler: POST only,\nsame-origin by `Origin` against the forwarded host (plus any `OTEL_CLIENT_ERROR_ORIGINS`, or\n`Sec-Fetch-Site: same-origin` when the browser sends no `Origin`), 64KB and 20 events per request,\n60 requests a minute, `no-store` + `noindex` on every answer, `204` with an empty body on success -\nand never a `400`, because a malformed report is the reporter's problem, not the page's.\n`serveHealth(port, checks?, options?)` answers `GET`/`HEAD` on `/health` and `/api/health` with the\nsame envelope as everything else, binds every interface (the container probe uses `127.0.0.1`, the\nconsole reaches it over the overlay), and returns `{ listening, server, close() }` - `listening`\nresolves with the bound port, so `serveHealth(0)` works in a test, and rejects on `EADDRINUSE`\ninstead of killing the worker.\n\n## What you get automatically\n\n**One wide event per finished request**, emitted at the front of the stack so 404s and rejections\nare counted too. Probe paths (`/health`, `/api/health`, `/status`, `/hc`) emit none.\n\n<!-- prettier-ignore -->\n```jsonc\n{ \"kind\": \"http\", \"method\": \"GET\", \"path\": \"/api/memories/m1\", \"route\": \"/api/memories/:id\",\n  \"status\": 200, \"duration_ms\": 12, \"user_id\": \"u_1\", \"user_type\": \"user\",\n  \"trace_id\": \"a3ce...\", \"span_id\": \"9f21...\", \"service\": \"memory-mcp\", \"msg\": \"request\" }\n```\n\n`route` is the grouping key and stays bounded: the matched template, a template derived from the\nURL for a RegExp-mounted router, or the literal `(unmatched)`. `path` is the concrete target,\ncapped at 200 characters. `user_type` is `user` / `test` / `service` / `bot` - test and service\ncallers declare themselves via `x-client-type`, bots come from the UA, a scanner path or an IP in\n`OTEL_BOT_IP_RANGES`, and an empty or machine-client UA is `service`, which is why an SSR fetch is\nnot counted as a visitor. It lands on the span and in baggage too.\n\n**One event per MCP tool call**, for both `McpServer` (`registerTool`/`tool`) and a low-level\n`Server`'s `tools/call` handler, over HTTP or stdio, each call wrapped exactly once:\n\n<!-- prettier-ignore -->\n```jsonc\n{ \"kind\": \"tool\", \"tool\": \"memory__search\", \"duration_ms\": 34, \"status\": \"ok\",\n  \"user_id\": \"u_1\", \"user_type\": \"user\", \"msg\": \"tool_call\" }\n```\n\nIts span carries `mcp.tool.args` (content-bearing fields reduced to a `<N chars>` marker,\ncredential-looking keys redacted), `mcp.results.count` and `mcp.response.bytes`. An `isError`\nresult marks the span failed and sets `status: \"error\"` but raises **no** error event - those are\nusually expected refusals - unless `OBS_MCP_CAPTURE_ISERROR=on`.\n\n**One error line, one shape**, whatever the runtime - HTTP handler, Next render, tool call,\nbrowser, or an uncaught crash (logged `fatal` before the process dies):\n\n<!-- prettier-ignore -->\n```jsonc\n{ \"err\": { \"type\": \"TypeError\", \"message\": \"fetch failed\", \"stack\": \"...\" },\n  \"route\": \"/api/memories/:id\", \"method\": \"POST\", \"status\": 500, \"user_id\": \"u_1\",\n  \"error_code\": \"ENOTFOUND\", \"cause\": \"Error: getaddrinfo ENOTFOUND agentage-web_backend\",\n  \"frame\": \"src/provision.ts:42:11 in provisionMemory\", \"category\": \"connectivity\",\n  \"target\": \"POST api.test:8443/v1/memories/:id\", \"fingerprint\": \"...\", \"source\": \"server\" }\n```\n\n`cause` is the deepest `.cause` (capped at 5, cycle-safe) and its system `code` becomes\n`error_code` when the error carries none of its own. `frame` is the top in-app frame -\nnode_modules, `node:`, `internal/`, webpack-internal and native frames are skipped. `category` is\n`timeout` / `connectivity` / `db` (a SQLSTATE) / `logic`, always present. `target` names what an\noutbound call was reaching for; the patched global `fetch` attaches it, which is also what gives a\nbare `TypeError: fetch failed` an application `frame`. `source` is `server` / `client` / `tool`,\nand `err.fingerprint` overrides grouping. An Express error also answers one envelope, with the\ntrace id in the body and as the `X-Trace-Id` header; a 4xx answers it without emitting a line.\n\n<!-- prettier-ignore -->\n```jsonc\n{ \"success\": false, \"error\": { \"code\": \"ENOTFOUND\", \"message\": \"Internal server error\" }, \"traceId\": \"a3ce...\" }\n```\n\n**A 5xx answers `Internal server error`, never the thrown message** - a driver, git or fetch\nmessage is internal detail, and a browser is the wrong place to read it. The `code` is kept, the\nlogged line above keeps the full message and stack, and `traceId` is the handle that ties the\nuser's report to it. A 4xx keeps its real message (a client error is the client's to fix). Throw\nwith `expose: true` for a 5xx message you wrote for the caller, pass `maskServerErrors: false` to\nopt a handler out, or set `OBS_MASK_5XX=off` for the auto-wired one.\n\n**The `/health` envelope**, the same shape from every service:\n\n```jsonc\n{\n  \"success\": true, // false only on a real outage, paired with 503\n  \"data\": {\n    \"status\": \"ok\", // ok | degraded | unavailable - the worst check wins\n    \"service\": \"memory-mcp\", // defaults to OTEL_SERVICE_NAME\n    \"instance\": \"b82fc8d3\", // random per process - never the hostname\n    \"version\": \"21150d69...\",\n    \"commit\": \"21150d6\", // COMMIT_SHA, or \"0.0.0-dev\" / \"dev\"\n    \"buildTime\": \"2026-08-09T10:08:07Z\", // ISO or null, never \"\"\n    \"startedAt\": \"2026-08-09T10:09:50.122Z\",\n    \"uptimeSeconds\": 590,\n    \"checkedAt\": \"2026-08-10T01:04:40.586Z\", // when THIS payload was computed\n    \"durationMs\": 22.7, // total server-side cost\n    \"checks\": { \"store\": \"ok\" }, // ok | degraded | down | skipped\n    \"timings\": { \"store\": 21.5, \"facts\": 1.1 }, // a check near 0 is memoized, not measured\n    \"reasons\": { \"search\": \"timed out after 60ms\" }, // only when a check is not ok\n    \"facts\": { \"memories\": 412 }, // counts and modes only, never state\n  },\n}\n```\n\nAny `down` makes `status` `unavailable` (HTTP 503); a dependency the service survives without\nmust report `degraded`. **A check is state you determined, a fact is a count or a mode** - if the\nvalue can read healthy while the thing is broken, it is a fact. `data` is present even on a 503. A\nchanged `instance` across two probes means a different replica answered, not a cache; a frozen\n`checkedAt` means something in front is serving a copy. The same numbers go out as\n`Server-Timing: health;dur=22.7, store;dur=21.5`. Checks and the facts producer are both bounded\n(1s default), because an unbounded count off a wedged database outlives the container\n`HEALTHCHECK --timeout` and gets a merely-slow task killed.\n\n**Span names**, minimal by design: exactly one SERVER span per request, `{method} {route}` -\n`{method} (unmatched)` for scanner probes - plus CLIENT spans for outbound http/fetch calls, which\ncarry W3C propagation onward. A `fetch GET https://host/x?y=1` client span is renamed `{method}\n{route}` so one facet combination is not its own operation; on a matched route `http.route` and\n`url.path` are replaced by the template (the concrete path is customer data) and `url.full` is\ndropped; an MCP root span takes the bare tool name; Next's `RSC ` prefix becomes `next.rsc=true`.\nNo Express layer spans, no fs/dns/net auto-spans, health probes recorded in neither direction.\nDatastore and queue spans need the matching optional peer installed\n(`@opentelemetry/instrumentation-pg`, `-mongodb`, `-redis`, `-amqplib`); not installed means not\ntraced, silently.\n\n**Auto-mounted routes**, only where the service does not answer them itself: `GET /health` and\n`GET /api/health` (liveness), plus `POST /api/client-errors` when `OTEL_CLIENT_ERROR_ORIGINS` is\nset. The browser reporter posts `text/plain` over `sendBeacon`, rate-limits itself (20\nevents/minute), never throws, and mints one W3C trace id per user action that it sends as a\n`traceparent` header on same-origin `fetch` calls - so the click, the requests it fired and the\nerror line that came back share one id, and its sampled flag keeps a real user action traced in\nfull where the service samples at a ratio. Cross-origin requests are never touched.\n\n`COMMIT_SHA` and `BUILD_TIME` must be redeclared as `ARG` **and promoted to `ENV` in the runner\nstage** - ARGs do not cross Docker stage boundaries, and without that `/health` reports\n`0.0.0-dev` forever. A container health check needs no curl, since node is in the image:\n\n```\nNODE_OPTIONS= node -e \"fetch('http://127.0.0.1:3000/health').then(r=>process.exit(r.ok?0:1)).catch(()=>process.exit(1))\"\n```\n\nUse `127.0.0.1`, not `localhost`: an IPv6 resolution against an IPv4-only listener is a recurring\nway to fail a healthy container. And where a check can answer 503, do not assert `response.ok`\nthere, or the orchestrator restart-loops over an outage that restarting cannot fix.\n\n## Configuration\n\nStandard `OTEL_*`, read by the tracer and the exporter:\n\n| Variable                             | Notes                                                                                |\n| ------------------------------------ | ------------------------------------------------------------------------------------ |\n| `OTEL_EXPORTER_OTLP_ENDPOINT`        | Base URL; the exporter appends `/v1/traces`. Unset = tracing off.                    |\n| `OTEL_EXPORTER_OTLP_TRACES_ENDPOINT` | Signal-specific override; wins over the base URL.                                    |\n| `OTEL_SERVICE_NAME`                  | Required to start tracing; the default `service` in `/health` and on every log line. |\n| `OTEL_EXPORTER_OTLP_HEADERS`         | `Authorization=Bearer%20<token>` - percent-encoded (`,` and `=` inside a token too). |\n| `OTEL_RESOURCE_ATTRIBUTES`           | `deployment.environment`, `service.namespace`.                                       |\n| `OTEL_TRACES_SAMPLER[_ARG]`          | `parentbased_traceidratio` + a ratio matched to service volume.                      |\n| `OTEL_SDK_DISABLED`                  | `1`/`true`/`yes` = hard off even when configured.                                    |\n| `OTEL_LOG_LEVEL`                     | Unset = silent. `debug` to diagnose a missing-trace report.                          |\n| `OTEL_BOT_IP_RANGES`                 | Comma-separated IPv4 CIDRs classified as `bot`. Unset = no IP rule.                  |\n| `OTEL_CLIENT_ERROR_ORIGINS`          | Comma-separated origins allowed to POST client errors. Unset = no collector.         |\n| `LOG_LEVEL`                          | pino level (default `info`).                                                         |\n| `COMMIT_SHA` / `BUILD_TIME`          | Image build args, surfaced as `version`/`commit`/`buildTime`.                        |\n\n`OBS_*` are the escape hatches, each taking the literal `off`. Wiring is idempotent: the request\nlog and the error middleware carry a marker symbol, so a service that mounts either by hand keeps\nits own and the auto-wiring skips that piece - one line, one handler, never two.\n\n**The marker is only visible on the middleware itself.** The scan walks the app's own stack looking\nfor that symbol, so it sees the kit middleware **mounted directly**; wrap it in your own closure -\na `/health` skip, a conditional - and the symbol is hidden, the auto-wiring mounts a second one and\nevery request is logged twice. Either hang the original off the wrapper as `.wrapped`\n(`Object.assign(mine, { wrapped: createRequestLog(log) })`, which the scan follows), or set\n`OBS_REQUEST_LOG=off` and own the line yourself.\n\n| Variable                  | Off means                                                                 |\n| ------------------------- | ------------------------------------------------------------------------- |\n| `OBS_REQUEST_LOG`         | No request log line.                                                      |\n| `OBS_ERROR_MW`            | No error middleware, so errors reach Express's default handler.           |\n| `OBS_MASK_5XX`            | 5xx answer the thrown message instead of `Internal server error`.         |\n| `OBS_AUTO_HEALTH`         | No auto-mounted `/health` + `/api/health`.                                |\n| `OBS_COLLECTOR`           | No `/api/client-errors`, even with origins configured.                    |\n| `OBS_FETCH_PATCH`         | The global `fetch` is left alone (no call site or target on failures).    |\n| `OBS_CRASH_CAPTURE`       | No `uncaughtException`/`unhandledRejection` line; Node's default only.    |\n| `OBS_MCP_PATCH`           | MCP tools are not instrumented.                                           |\n| `OBS_MCP_CAPTURE_ISERROR` | Takes `on`, not `off`: also raise an error event for an `isError` result. |\n\n## Deprecated (removed in the next major)\n\nStill exported, still working - and every one of them is now automatic.\n\n- `createLogger(options?)` -> `log` · `withSpan` -> `span` · `installErrorReporter` -> `observeBrowser`\n- `tracedFetch(input, init?)` -> plain `fetch`; the bootstrap enriches the global one\n- `createRequestLog(log)`, `errorMiddleware(log)` -> mounted at `listen()`\n- `collectorHandler(log, options)` -> mounted at `listen()` with `OTEL_CLIENT_ERROR_ORIGINS`\n- `wrapToolHandler`, `setMcpTool`, `markSpanError`, `setSpanAttributes` -> the MCP patch\n- `classifyClientType`, `CLIENT_TYPE_HEADER`, `USER_TYPE_FIELD`, `UserType` -> `user_type` on the request log\n- `onRequestError(log)` (either entry, the factory call) -> `onRequestError` from `/next` **as a value**\n\n`onRequestError` is dual-mode, so `instrumentation.ts` is now a bare re-export and the singleton\ndoes the logging:\n\n```ts\nexport { register, onRequestError } from '@agentage/observability/next';\n```\n\nCalled with one logger-like argument it still returns a bound handler (the deprecated factory\nform); called the way Next calls it (`err, request, context`) it _is_ the handler. Before 1.1 the\nbare re-export above type-checked, shipped, and silently swallowed every server render error -\nNext called the factory, got a function back, and threw it away.\n\n## Testing a service that uses the kit\n\n`log` is a lazy Proxy over the real pino logger, so **`vi.spyOn(log, 'error')` silently no-ops** -\nthe spy is defined on the proxy target while every read goes through the trap to the logger. Assert\non the lines instead, by pointing a logger at your own destination:\n\n```ts\nconst lines: Record<string, unknown>[] = [];\nconst log = createLogger({\n  service: 'test',\n  destination: { write: (s) => lines.push(JSON.parse(s)) },\n});\n// or, for the singleton: vi.spyOn(process.stderr, 'write') and JSON.parse each chunk\n```\n\nTwo more that the estate settled on, for code that reaches the singleton through the kit rather\nthan through an injected logger:\n\n```ts\n// 1. stubLog - the Proxy's `set` trap writes THROUGH to the real pino logger, so an\n//    assignment sticks where a spy does not. Restore it, or the stub leaks across files.\nconst calls: unknown[][] = [];\nconst real = log.error;\nlog.error = ((...args: unknown[]) => calls.push(args)) as typeof log.error;\nafterEach(() => {\n  log.error = real;\n});\n\n// 2. the whole process: capture stderr and parse the JSON lines out of it. This is the\n//    only one that also proves nothing landed on stdout.\nvi.spyOn(process.stderr, 'write').mockImplementation((chunk: unknown) => {\n  for (const raw of String(chunk).split('\\n')) if (raw) lines.push(JSON.parse(raw));\n  return true;\n});\n```\n\n## Develop\n\n```bash\nnpm test       # vitest: test/contract (the shapes above), test/integration, test/unit\nnpm run verify # type-check + lint + format:check + test + build + dist and bootstrap smokes\n```\n\n`test/contract/edge-safety.test.ts` scans the raw source of the health module - comments and all -\nfor Node-only APIs and imports. That module must stay dependency-free and Web-API-only: bundlers\ndetect Node APIs in edge bundles **statically**, so a `typeof` guard does not save you, and a\nsingle slip breaks every app importing the module through a shared barrel.\n\n## Release\n\nA version bump to `package.json` on `master` publishes to npm via GitHub Actions; the workflow\nskips any version already published, so any other change to the file is a no-op. The Friday\nrelease train cuts the bump itself (minor by default, `major` on manual dispatch).\nChanges: [CHANGELOG.md](./CHANGELOG.md).\n\n## License\n\nMIT - see [LICENSE](./LICENSE).\n","readmeFilename":"README.md"}