@dmsdc-ai/aigentry-logger
v0.2.0
Published
aigentry-logger — passive TelemetryEvent NDJSON aggregator (MVP: receiver + query CLI + emitter SDK).
Readme
@dmsdc-ai/aigentry-logger
Passive TelemetryEvent NDJSON aggregator for the aigentry ecosystem — a
receiver, a query CLI, and an emitter SDK. Events are validated
against the canonical TelemetryEvent JSON Schema (Draft 2020-12) vendored
from @dmsdc-ai/aigentry-ssot.
At runtime the package depends only on ajv; its coupling to @dmsdc-ai/aigentry-ssot
is type-only (the schema is vendored into dist/).
Install
npm install @dmsdc-ai/aigentry-loggerKeep it a local, per-repo dependency — do not npm i -g the CLI. Each
consumer's emitter and receiver should run the same pinned version (see the
version-skew note below).
CLI
# Receive: read TelemetryEvent NDJSON from stdin, validate, append per-day
aigentry-logger receive --emitter <name>
# → ~/.aigentry/telemetry/<emitter>-<YYYY-MM-DD>.ndjson (rotated by emitted_at)
# Query: filter aggregated events
aigentry-logger query --kind <k> --role <r> --emitter <e> \
--since 1d --until <iso> --limit 100 --jq-filter .payload.task_id
aigentry-logger --version
aigentry-logger --help--since / --until accept Nd / Nh / Nm / Ns or ISO 8601.
--jq-filter takes a dot-path extractor (e.g. .role, .payload.task_id).
Emitter SDK
import { emit, makeEmitter } from '@dmsdc-ai/aigentry-logger';
await emit(event); // validate + append to the per-emitter file
const log = makeEmitter({ emitter: 'my-svc' }); // bind base dir / name / clock once
await log(event);Entry points: @dmsdc-ai/aigentry-logger (emit), @dmsdc-ai/aigentry-logger/emit,
@dmsdc-ai/aigentry-logger/receive, @dmsdc-ai/aigentry-logger/query.
Versioning
Pin @dmsdc-ai/aigentry-ssot by exact patch (per ssot's SEMVER.md CI gate) and
@dmsdc-ai/aigentry-logger by caret-minor. Never float latest in a daemon or
long-running process. See CHANGELOG.md for release history.
License
MIT — see LICENSE.
