mirror of
https://github.com/hanzoai/o11y.git
synced 2026-10-15 12:58:33 +00:00
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.
15 lines
281 B
JSON
15 lines
281 B
JSON
{
|
|
"compilerOptions": {
|
|
"target": "ES2022",
|
|
"module": "ES2022",
|
|
"moduleResolution": "bundler",
|
|
"declaration": true,
|
|
"outDir": "dist",
|
|
"rootDir": "src",
|
|
"strict": true,
|
|
"skipLibCheck": true,
|
|
"types": ["node"]
|
|
},
|
|
"include": ["src/**/*.ts"]
|
|
}
|