Files
o11y/sdk/js/package-lock.json
zeekay 6b2c3106db feat(sdk): @hanzo/o11y is the telemetry SDK; the frontend is not
frontend/package.json claimed the name @hanzo/o11y. It is the web app — it has
src/components — so the SDK name was taken by something that is not an SDK. It
was never published, so the name was free: the app is now o11y-frontend and
private, and @hanzo/o11y is sdk/js.

The SDK is ZAP-native with no OpenTelemetry anywhere. A span is written in the
shape that goes on the wire, so export is JSON plus a frame and there is no
second span model in between. src/wire.ts mirrors luxfi/trace.SpanBatch field
for field; the frame matches pkg/zapreceiver — envelope version 2, message type
in the flags high byte, JSON in the root object's first field. Verified
byte-identical against the Go emitter's FinishWithFlags(MsgSpanBatch << 8).

⚠️ Encoding is done; delivery is not, and the package is private because of it.
pkg/zapreceiver is a ZAP node, reached in Go by node.ConnectDirect() and a send
to the resolved peer. @zap-proto/zap 1.6.0 is wire format only — Builder,
Message, envelopes, Pipeliner, and no node, client, connect or peer export. This
writes a correct frame onto a bare socket, the receiver accepts the connection
and decodes nothing. Proven end to end against a live receiver, not assumed.
Closing it needs the node/peer layer in @zap-proto/zap, after which O11y.send
swaps a socket write for a peer send and nothing else changes.

Frontend components belong in @hanzo/ui and have not moved yet.
2026-07-26 17:36:51 -07:00

64 lines
1.9 KiB
JSON

{
"name": "@hanzo/o11y",
"version": "0.1.0",
"lockfileVersion": 3,
"requires": true,
"packages": {
"": {
"name": "@hanzo/o11y",
"version": "0.1.0",
"license": "BSD-3-Clause",
"dependencies": {
"@zap-proto/zap": "^1.6.0"
},
"devDependencies": {
"@types/node": "^22.0.0",
"typescript": "^5.6.0"
},
"engines": {
"node": ">=18.12.0"
}
},
"node_modules/@types/node": {
"version": "22.20.1",
"resolved": "https://registry.npmjs.org/@types/node/-/node-22.20.1.tgz",
"integrity": "sha512-EANqOCF9QFyra+4pfxUcX9STKJpCLjMbObVzljIJomAWSnuSIEAvyzEU53GaajbXJEgdh0iEcPL+DGvpUd4k1Q==",
"dev": true,
"license": "MIT",
"dependencies": {
"undici-types": "~6.21.0"
}
},
"node_modules/@zap-proto/zap": {
"version": "1.6.0",
"resolved": "https://registry.npmjs.org/@zap-proto/zap/-/zap-1.6.0.tgz",
"integrity": "sha512-1avImBBILyNbwP+PngKAeM0vPfhZTBTeRs+Xge766t3Zdynvn5yVryYyCHrCJXQBNrb+lqa+tWYYsYF7aADaZA==",
"license": "MIT",
"bin": {
"zapgen": "dist/bin/zapgen.mjs"
}
},
"node_modules/typescript": {
"version": "5.9.3",
"resolved": "https://registry.npmjs.org/typescript/-/typescript-5.9.3.tgz",
"integrity": "sha512-jl1vZzPDinLr9eUt3J/t7V6FgNEw9QjvBPdysz9KfQDD41fQrC2Y4vKQdiaUpFT4bXlb1RHhLpp8wtm6M5TgSw==",
"dev": true,
"license": "Apache-2.0",
"bin": {
"tsc": "bin/tsc",
"tsserver": "bin/tsserver"
},
"engines": {
"node": ">=14.17"
}
},
"node_modules/undici-types": {
"version": "6.21.0",
"resolved": "https://registry.npmjs.org/undici-types/-/undici-types-6.21.0.tgz",
"integrity": "sha512-iwDZqg0QAGrg9Rav5H4n0M64c3mkR59cJ6wQp+7C4nI0gsmExaedaYLNO44eT4AtBBwjbTiGPMlt2Md0T9H9JQ==",
"dev": true,
"license": "MIT"
}
}
}