@nodii/telemetry 0.4.0 → 0.5.1

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (59) hide show
  1. package/dist/agent-invocable.d.ts +1 -1
  2. package/dist/agent-invocable.d.ts.map +1 -1
  3. package/dist/agent-invocable.js +1 -1
  4. package/dist/agent-invocable.js.map +1 -1
  5. package/dist/audit.d.ts +30 -1
  6. package/dist/audit.d.ts.map +1 -1
  7. package/dist/audit.js +64 -11
  8. package/dist/audit.js.map +1 -1
  9. package/dist/configure.d.ts +27 -8
  10. package/dist/configure.d.ts.map +1 -1
  11. package/dist/configure.js +12 -7
  12. package/dist/configure.js.map +1 -1
  13. package/dist/context.d.ts +1 -1
  14. package/dist/context.d.ts.map +1 -1
  15. package/dist/drizzle/audit-schema.d.ts +115 -11
  16. package/dist/drizzle/audit-schema.d.ts.map +1 -1
  17. package/dist/drizzle/audit-schema.js +124 -4
  18. package/dist/drizzle/audit-schema.js.map +1 -1
  19. package/dist/drizzle/index.d.ts +2 -2
  20. package/dist/drizzle/index.d.ts.map +1 -1
  21. package/dist/drizzle/index.js +1 -1
  22. package/dist/drizzle/index.js.map +1 -1
  23. package/dist/index.d.ts +22 -21
  24. package/dist/index.d.ts.map +1 -1
  25. package/dist/index.js +16 -15
  26. package/dist/index.js.map +1 -1
  27. package/dist/init.d.ts +1 -1
  28. package/dist/init.d.ts.map +1 -1
  29. package/dist/init.js +44 -4
  30. package/dist/init.js.map +1 -1
  31. package/dist/intent.js +4 -4
  32. package/dist/intent.js.map +1 -1
  33. package/dist/logger.d.ts +1 -1
  34. package/dist/logger.d.ts.map +1 -1
  35. package/dist/logger.js +5 -5
  36. package/dist/logger.js.map +1 -1
  37. package/dist/metrics.d.ts +56 -2
  38. package/dist/metrics.d.ts.map +1 -1
  39. package/dist/metrics.js +86 -6
  40. package/dist/metrics.js.map +1 -1
  41. package/dist/otlp-adapter.d.ts +2 -2
  42. package/dist/otlp-adapter.d.ts.map +1 -1
  43. package/dist/otlp-adapter.js +25 -4
  44. package/dist/otlp-adapter.js.map +1 -1
  45. package/dist/outbox-emit.js +2 -2
  46. package/dist/outbox-emit.js.map +1 -1
  47. package/dist/traceparent.d.ts +60 -0
  48. package/dist/traceparent.d.ts.map +1 -0
  49. package/dist/traceparent.js +88 -0
  50. package/dist/traceparent.js.map +1 -0
  51. package/dist/tracer.d.ts +20 -4
  52. package/dist/tracer.d.ts.map +1 -1
  53. package/dist/tracer.js +38 -9
  54. package/dist/tracer.js.map +1 -1
  55. package/dist/types.d.ts +47 -3
  56. package/dist/types.d.ts.map +1 -1
  57. package/dist/types.js +66 -0
  58. package/dist/types.js.map +1 -1
  59. package/package.json +9 -3
package/dist/tracer.js CHANGED
@@ -14,11 +14,12 @@
14
14
  // attached, the span ends with status ERROR; otherwise UNSET.
15
15
  // - `getSagaTracer()` ships as a tactical hold per D149; sunsets at
16
16
  // v0.2.0.
17
- import { getContext } from "./context";
18
- import { _setActiveSpanGetter } from "./active-span";
19
- import { attemptRedactFields } from "./redaction";
20
- import { incSdkCounter } from "./sdk-counters";
21
- import { uuidv7 } from "./uuid";
17
+ import { getContext } from "./context.js";
18
+ import { _setActiveSpanGetter } from "./active-span.js";
19
+ import { attemptRedactFields } from "./redaction.js";
20
+ import { incSdkCounter } from "./sdk-counters.js";
21
+ import { forensicParentValue, resolveSpanParent, } from "./traceparent.js";
22
+ import { uuidv7 } from "./uuid.js";
22
23
  const noopEmitter = {
23
24
  emit() {
24
25
  /* no-op; TS-12 replaces */
@@ -65,16 +66,37 @@ _setActiveSpanGetter(() => {
65
66
  */
66
67
  async function span(name, fn, opts) {
67
68
  const ctx = getContext();
68
- const parent = activeStack[activeStack.length - 1];
69
- const traceId = parent ? parent.trace_id : newTraceId();
69
+ const stackParent = activeStack[activeStack.length - 1];
70
+ // f08a4471 resolve the optional inbound parent first. A valid
71
+ // traceparent wins over the in-process stack parent so an ingress span
72
+ // inherits the upstream trace_id. A malformed traceparent falls back to
73
+ // root (or the stack parent, if any) + records a forensic attribute.
74
+ let inbound = null;
75
+ let inboundMalformed = false;
76
+ if (opts?.parent !== undefined) {
77
+ inbound = resolveSpanParent(opts.parent);
78
+ inboundMalformed = inbound === null;
79
+ }
80
+ // Trace-id precedence: inbound parent → in-process stack parent → new.
81
+ const traceId = inbound
82
+ ? inbound.traceId
83
+ : stackParent
84
+ ? stackParent.trace_id
85
+ : newTraceId();
86
+ // Parent-span-id precedence: inbound parent → in-process stack parent → null.
87
+ const parentSpanId = inbound
88
+ ? inbound.spanId
89
+ : (stackParent?.span_id ?? null);
70
90
  const spanId = newSpanId();
71
91
  const startNs = process.hrtime.bigint();
72
92
  // D26 mandatory attributes envelope. tenant_id and request_id come
73
- // from NodiiContext when present.
93
+ // from NodiiContext when present. The envelope is built UNCONDITIONALLY
94
+ // — bridged (parent-linked) spans still flow through the mandatory-attr
95
+ // SpanProcessor, which is the whole point of the bridge (vs raw OTel).
74
96
  const record = {
75
97
  trace_id: traceId,
76
98
  span_id: spanId,
77
- parent_span_id: parent?.span_id ?? null,
99
+ parent_span_id: parentSpanId,
78
100
  name,
79
101
  kind: opts?.kind ?? "INTERNAL",
80
102
  start_ns: startNs,
@@ -87,6 +109,13 @@ async function span(name, fn, opts) {
87
109
  intent_id: ctx.intent_id,
88
110
  }
89
111
  : {}),
112
+ // Forensic marker for a malformed inbound traceparent (preserves
113
+ // the edge interim behavior: record, don't throw, start as root).
114
+ ...(inboundMalformed && opts?.parent !== undefined
115
+ ? {
116
+ "telemetry.inbound_traceparent_malformed": capValue(forensicParentValue(opts.parent)),
117
+ }
118
+ : {}),
90
119
  ...(opts?.attributes ? capAttributes(opts.attributes) : {}),
91
120
  },
92
121
  status: "UNSET",
@@ -1 +1 @@
1
- {"version":3,"file":"tracer.js","sourceRoot":"","sources":["../src/tracer.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"tracer.js","sourceRoot":"","sources":["../src/tracer.ts"],"names":[],"mappings":"AAAA,uEAAuE;AACvE,+DAA+D;AAC/D,qEAAqE;AACrE,4BAA4B;AAC5B,EAAE;AACF,2BAA2B;AAC3B,uEAAuE;AACvE,sEAAsE;AACtE,sCAAsC;AACtC,oEAAoE;AACpE,oEAAoE;AACpE,mBAAmB;AACnB,sEAAsE;AACtE,kEAAkE;AAClE,sEAAsE;AACtE,cAAc;AAEd,OAAO,EAAE,UAAU,EAAE,MAAM,cAAc,CAAC;AAC1C,OAAO,EAAE,oBAAoB,EAAE,MAAM,kBAAkB,CAAC;AACxD,OAAO,EAAE,mBAAmB,EAAE,MAAM,gBAAgB,CAAC;AACrD,OAAO,EAAE,aAAa,EAAE,MAAM,mBAAmB,CAAC;AAClD,OAAO,EACL,mBAAmB,EACnB,iBAAiB,GAGlB,MAAM,kBAAkB,CAAC;AAC1B,OAAO,EAAE,MAAM,EAAE,MAAM,WAAW,CAAC;AAmEnC,MAAM,WAAW,GAAgB;IAC/B,IAAI;QACF,2BAA2B;IAC7B,CAAC;CACF,CAAC;AACF,IAAI,OAAO,GAAgB,WAAW,CAAC;AAEvC,MAAM,UAAU,eAAe,CAAC,CAAc;IAC5C,OAAO,GAAG,CAAC,CAAC;AACd,CAAC;AAED,MAAM,UAAU,yBAAyB;IACvC,OAAO,GAAG,WAAW,CAAC;AACxB,CAAC;AAED,MAAM,oBAAoB,GAAG,CAAC,GAAG,IAAI,CAAC;AAEtC,SAAS,QAAQ,CAAC,CAAU;IAC1B,IAAI,OAAO,CAAC,KAAK,QAAQ;QAAE,OAAO,CAAC,CAAC;IACpC,IAAI,MAAM,CAAC,UAAU,CAAC,CAAC,EAAE,MAAM,CAAC,IAAI,oBAAoB;QAAE,OAAO,CAAC,CAAC;IACnE,8CAA8C;IAC9C,MAAM,SAAS,GAAG,MAAM,CAAC,IAAI,CAAC,CAAC,EAAE,MAAM,CAAC;SACrC,QAAQ,CAAC,CAAC,EAAE,oBAAoB,CAAC;SACjC,QAAQ,CAAC,MAAM,CAAC,CAAC;IACpB,OAAO,GAAG,SAAS,mBAAmB,CAAC;AACzC,CAAC;AAED,SAAS,aAAa,CACpB,KAA8B;IAE9B,MAAM,GAAG,GAA4B,EAAE,CAAC;IACxC,KAAK,MAAM,CAAC,CAAC,EAAE,CAAC,CAAC,IAAI,MAAM,CAAC,OAAO,CAAC,KAAK,CAAC;QAAE,GAAG,CAAC,CAAC,CAAC,GAAG,QAAQ,CAAC,CAAC,CAAC,CAAC;IACjE,OAAO,GAAG,CAAC;AACb,CAAC;AAED,iFAAiF;AACjF,MAAM,WAAW,GAAiB,EAAE,CAAC;AAErC,yEAAyE;AACzE,oBAAoB,CAAC,GAAG,EAAE;IACxB,MAAM,GAAG,GAAG,WAAW,CAAC,WAAW,CAAC,MAAM,GAAG,CAAC,CAAC,CAAC;IAChD,IAAI,CAAC,GAAG;QAAE,OAAO,IAAI,CAAC;IACtB,OAAO,EAAE,QAAQ,EAAE,GAAG,CAAC,QAAQ,EAAE,OAAO,EAAE,GAAG,CAAC,OAAO,EAAE,CAAC;AAC1D,CAAC,CAAC,CAAC;AAEH;;;;GAIG;AACH,KAAK,UAAU,IAAI,CACjB,IAAY,EACZ,EAAkC,EAClC,IAAkB;IAElB,MAAM,GAAG,GAAG,UAAU,EAAE,CAAC;IACzB,MAAM,WAAW,GAAG,WAAW,CAAC,WAAW,CAAC,MAAM,GAAG,CAAC,CAAC,CAAC;IAExD,gEAAgE;IAChE,uEAAuE;IACvE,wEAAwE;IACxE,qEAAqE;IACrE,IAAI,OAAO,GAAgC,IAAI,CAAC;IAChD,IAAI,gBAAgB,GAAG,KAAK,CAAC;IAC7B,IAAI,IAAI,EAAE,MAAM,KAAK,SAAS,EAAE,CAAC;QAC/B,OAAO,GAAG,iBAAiB,CAAC,IAAI,CAAC,MAAM,CAAC,CAAC;QACzC,gBAAgB,GAAG,OAAO,KAAK,IAAI,CAAC;IACtC,CAAC;IAED,uEAAuE;IACvE,MAAM,OAAO,GAAG,OAAO;QACrB,CAAC,CAAC,OAAO,CAAC,OAAO;QACjB,CAAC,CAAC,WAAW;YACX,CAAC,CAAC,WAAW,CAAC,QAAQ;YACtB,CAAC,CAAC,UAAU,EAAE,CAAC;IACnB,8EAA8E;IAC9E,MAAM,YAAY,GAAG,OAAO;QAC1B,CAAC,CAAC,OAAO,CAAC,MAAM;QAChB,CAAC,CAAC,CAAC,WAAW,EAAE,OAAO,IAAI,IAAI,CAAC,CAAC;IACnC,MAAM,MAAM,GAAG,SAAS,EAAE,CAAC;IAC3B,MAAM,OAAO,GAAG,OAAO,CAAC,MAAM,CAAC,MAAM,EAAE,CAAC;IAExC,mEAAmE;IACnE,wEAAwE;IACxE,wEAAwE;IACxE,uEAAuE;IACvE,MAAM,MAAM,GAAe;QACzB,QAAQ,EAAE,OAAO;QACjB,OAAO,EAAE,MAAM;QACf,cAAc,EAAE,YAAY;QAC5B,IAAI;QACJ,IAAI,EAAE,IAAI,EAAE,IAAI,IAAI,UAAU;QAC9B,QAAQ,EAAE,OAAO;QACjB,MAAM,EAAE,EAAE;QACV,UAAU,EAAE;YACV,GAAG,CAAC,GAAG;gBACL,CAAC,CAAC;oBACE,SAAS,EAAE,GAAG,CAAC,SAAS;oBACxB,UAAU,EAAE,GAAG,CAAC,UAAU;oBAC1B,SAAS,EAAE,GAAG,CAAC,SAAS;iBACzB;gBACH,CAAC,CAAC,EAAE,CAAC;YACP,iEAAiE;YACjE,kEAAkE;YAClE,GAAG,CAAC,gBAAgB,IAAI,IAAI,EAAE,MAAM,KAAK,SAAS;gBAChD,CAAC,CAAC;oBACE,yCAAyC,EAAE,QAAQ,CACjD,mBAAmB,CAAC,IAAI,CAAC,MAAM,CAAC,CACjC;iBACF;gBACH,CAAC,CAAC,EAAE,CAAC;YACP,GAAG,CAAC,IAAI,EAAE,UAAU,CAAC,CAAC,CAAC,aAAa,CAAC,IAAI,CAAC,UAAU,CAAC,CAAC,CAAC,CAAC,EAAE,CAAC;SAC5D;QACD,MAAM,EAAE,OAAO;QACf,MAAM,EAAE,EAAE;KACX,CAAC;IACF,WAAW,CAAC,IAAI,CAAC,MAAM,CAAC,CAAC;IACzB,IAAI,iBAAiB,GAAG,KAAK,CAAC;IAC9B,MAAM,MAAM,GAAS;QACnB,QAAQ,EAAE,OAAO;QACjB,OAAO,EAAE,MAAM;QACf,YAAY,CAAC,GAAG,EAAE,KAAK;YACrB,MAAM,CAAC,UAAU,CAAC,GAAG,CAAC,GAAG,QAAQ,CAAC,KAAK,CAAC,CAAC;QAC3C,CAAC;QACD,aAAa,CAAC,KAAK;YACjB,MAAM,CAAC,MAAM,CAAC,MAAM,CAAC,UAAU,EAAE,aAAa,CAAC,KAAK,CAAC,CAAC,CAAC;QACzD,CAAC;QACD,QAAQ,CAAC,SAAS,EAAE,UAAU;YAC5B,MAAM,CAAC,MAAM,CAAC,IAAI,CAAC;gBACjB,IAAI,EAAE,SAAS;gBACf,KAAK,EAAE,OAAO,CAAC,MAAM,CAAC,MAAM,EAAE;gBAC9B,UAAU;aACX,CAAC,CAAC;QACL,CAAC;QACD,eAAe,CAAC,GAAG;YACjB,iBAAiB,GAAG,IAAI,CAAC;YACzB,MAAM,OAAO,GAAG,GAAG,YAAY,KAAK,CAAC,CAAC,CAAC,GAAG,CAAC,OAAO,CAAC,CAAC,CAAC,MAAM,CAAC,GAAG,CAAC,CAAC;YACjE,MAAM,KAAK,GAAG,GAAG,YAAY,KAAK,CAAC,CAAC,CAAC,GAAG,CAAC,KAAK,CAAC,CAAC,CAAC,SAAS,CAAC;YAC3D,MAAM,CAAC,MAAM,CAAC,IAAI,CAAC;gBACjB,IAAI,EAAE,WAAW;gBACjB,KAAK,EAAE,OAAO,CAAC,MAAM,CAAC,MAAM,EAAE;gBAC9B,UAAU,EAAE;oBACV,mBAAmB,EAAE,QAAQ,CAAC,OAAO,CAAC;oBACtC,sBAAsB,EAAE,KAAK,CAAC,CAAC,CAAC,QAAQ,CAAC,KAAK,CAAC,CAAC,CAAC,CAAC,SAAS;iBAC5D;aACF,CAAC,CAAC;QACL,CAAC;QACD,SAAS,CAAC,MAAM,EAAE,OAAO;YACvB,MAAM,CAAC,MAAM,GAAG,MAAM,CAAC;YACvB,MAAM,CAAC,cAAc,GAAG,OAAO,CAAC;QAClC,CAAC;KACF,CAAC;IAEF,IAAI,CAAC;QACH,MAAM,MAAM,GAAG,MAAM,EAAE,CAAC,MAAM,CAAC,CAAC;QAChC,IAAI,MAAM,CAAC,MAAM,KAAK,OAAO;YAAE,MAAM,CAAC,MAAM,GAAG,IAAI,CAAC;QACpD,OAAO,MAAM,CAAC;IAChB,CAAC;IAAC,OAAO,GAAG,EAAE,CAAC;QACb,MAAM,CAAC,eAAe,CAAC,GAAG,CAAC,CAAC;QAC5B,MAAM,CAAC,MAAM,GAAG,OAAO,CAAC;QACxB,MAAM,GAAG,CAAC;IACZ,CAAC;YAAS,CAAC;QACT,IAAI,iBAAiB,IAAI,MAAM,CAAC,MAAM,KAAK,OAAO,EAAE,CAAC;YACnD,+CAA+C;YAC/C,MAAM,CAAC,MAAM,GAAG,OAAO,CAAC;QAC1B,CAAC;QACD,MAAM,CAAC,MAAM,GAAG,OAAO,CAAC,MAAM,CAAC,MAAM,EAAE,CAAC;QACxC,kEAAkE;QAClE,6DAA6D;QAC7D,gDAAgD;QAChD,MAAM,QAAQ,GAAG,mBAAmB,CAAC,MAAM,CAAC,UAAU,CAAC,CAAC;QACxD,IAAI,QAAQ,CAAC,EAAE,EAAE,CAAC;YAChB,MAAM,CAAC,UAAU,GAAG,QAAQ,CAAC,QAAQ,CAAC;YACtC,OAAO,CAAC,IAAI,CAAC,MAAM,CAAC,CAAC;QACvB,CAAC;aAAM,CAAC;YACN,aAAa,CAAC,uCAAuC,EAAE;gBACrD,MAAM,EAAE,QAAQ,CAAC,MAAM;aACxB,CAAC,CAAC;QACL,CAAC;QACD,WAAW,CAAC,GAAG,EAAE,CAAC;IACpB,CAAC;AACH,CAAC;AAED,SAAS,UAAU;IACjB,qEAAqE;IACrE,uCAAuC;IACvC,OAAO,MAAM,EAAE,CAAC,OAAO,CAAC,IAAI,EAAE,EAAE,CAAC,CAAC;AACpC,CAAC;AAED,SAAS,SAAS;IAChB,mEAAmE;IACnE,oDAAoD;IACpD,OAAO,MAAM,EAAE,CAAC,OAAO,CAAC,IAAI,EAAE,EAAE,CAAC,CAAC,KAAK,CAAC,EAAE,EAAE,EAAE,CAAC,CAAC;AAClD,CAAC;AAED;;;;;GAKG;AACH,MAAM,SAAS,GAA8B,EAAE,CAAC;AAEhD,SAAS,kBAAkB,CACzB,KAA8B,EAC9B,EAAwB;IAExB,SAAS,CAAC,IAAI,CAAC,KAAK,CAAC,CAAC;IACtB,IAAI,CAAC;QACH,OAAO,EAAE,EAAE,CAAC;IACd,CAAC;YAAS,CAAC;QACT,SAAS,CAAC,GAAG,EAAE,CAAC;IAClB,CAAC;AACH,CAAC;AAED;;;;GAIG;AACH,SAAS,aAAa;IACpB,OAAO;QACL,IAAI,CACF,IAAY,EACZ,EAAkC,EAClC,IAA+C;YAE/C,OAAO,IAAI,CAAC,IAAI,EAAE,EAAE,EAAE;gBACpB,IAAI,EAAE,UAAU;gBAChB,UAAU,EAAE,EAAE,oBAAoB,EAAE,IAAI,EAAE,GAAG,CAAC,IAAI,EAAE,UAAU,IAAI,EAAE,CAAC,EAAE;aACxE,CAAC,CAAC;QACL,CAAC;KACF,CAAC;AACJ,CAAC;AAED,4CAA4C;AAC5C,MAAM,UAAU,yBAAyB;IACvC,WAAW,CAAC,MAAM,GAAG,CAAC,CAAC;IACvB,SAAS,CAAC,MAAM,GAAG,CAAC,CAAC;AACvB,CAAC;AAED,MAAM,CAAC,MAAM,MAAM,GAAG;IACpB,IAAI;CACI,CAAC;AAEX,OAAO,EAAE,kBAAkB,EAAE,aAAa,EAAE,CAAC"}
package/dist/types.d.ts CHANGED
@@ -19,10 +19,16 @@ export interface NodiiContext {
19
19
  /** D41 + D45/D46 (E5 reframe). Locked enum. */
20
20
  export type ActorType = "user" | "agent" | "system" | "service";
21
21
  /**
22
- * D18 lock: six metric families. SDK rejects metric registrations whose
23
- * declared family is outside this enum.
22
+ * D18 lock: the metric-family enum. SDK rejects metric registrations
23
+ * whose declared family is outside this enum.
24
+ *
25
+ * D197 (locked 2026-06-03) ADDS `replica_consumer` as a 7th family
26
+ * alongside the six original D18 families — it carries the locked
27
+ * `@nodii/replica-consumer` metric vocabulary (see
28
+ * `REPLICA_CONSUMER_VOCABULARY`). Additive + non-breaking: existing
29
+ * registrations keep working.
24
30
  */
25
- export type MetricFamily = "request_handler" | "saga" | "async_worker" | "outbox" | "pool" | "intent";
31
+ export type MetricFamily = "request_handler" | "saga" | "async_worker" | "outbox" | "pool" | "intent" | "replica_consumer";
26
32
  export declare const METRIC_FAMILIES: readonly MetricFamily[];
27
33
  /**
28
34
  * D156 lock (operator-confirmed: 7 fields despite prose saying "8"):
@@ -174,6 +180,18 @@ export interface InitTelemetryConfig {
174
180
  */
175
181
  disableOtlp?: boolean;
176
182
  }
183
+ /**
184
+ * The instrument kind a metric is recorded with. D197 adds `gauge` as a
185
+ * first-class kind alongside the original `counter` + `histogram`. Gauges
186
+ * carry snapshot semantics (current value) — they are NOT mapped onto
187
+ * histograms (that would conflate snapshot vs distributional).
188
+ *
189
+ * The registry may declare `kind` so `recordMetric`/`metrics.gauge` can
190
+ * fail-fast on a kind mismatch (e.g. registering a gauge name as a
191
+ * counter). Legacy vocabulary entries that omit `kind` are accepted by
192
+ * any instrument (back-compat).
193
+ */
194
+ export type MetricKind = "counter" | "histogram" | "gauge";
177
195
  /**
178
196
  * D24 lock: every metric name must be in this registry, with a family
179
197
  * + description + the D-number that ADR-gates its inclusion. Registry
@@ -185,8 +203,34 @@ export interface MetricVocabularyEntry {
185
203
  description: string;
186
204
  /** D-number reference, e.g. `D23`. */
187
205
  decision: string;
206
+ /**
207
+ * D197: optional instrument kind. When present, the SDK rejects a
208
+ * registration whose caller-declared kind disagrees with the
209
+ * registry. When omitted, any instrument kind is accepted
210
+ * (back-compat for the original D24 entries).
211
+ */
212
+ kind?: MetricKind;
213
+ /** Optional unit hint (e.g. `seconds`, `ms`); informational only. */
214
+ unit?: string;
188
215
  }
189
216
  export type MetricVocabularyRegistry = Record<string, MetricVocabularyEntry>;
217
+ /**
218
+ * D197 (locked 2026-06-03) — the LOCKED `@nodii/replica-consumer` metric
219
+ * vocabulary: 7 metrics under family `replica_consumer`. Merge this into
220
+ * `initTelemetry({ vocabularyRegistry })` so the canonical names don't
221
+ * trip `MetricVocabularyError`:
222
+ *
223
+ * initTelemetry({
224
+ * ...,
225
+ * vocabularyRegistry: { ...serviceVocab, ...REPLICA_CONSUMER_VOCABULARY },
226
+ * });
227
+ *
228
+ * Drives nodii-edge + every `@nodii/replica-consumer` consumer
229
+ * (nodii-auth slices 2-4, nodii-hr, nodii-ticketing, nodii-task-tracking).
230
+ * Names follow dot-grammar lowercase+underscores per 07-rbac § 2 applied
231
+ * to metric vocabulary (D149 + D20).
232
+ */
233
+ export declare const REPLICA_CONSUMER_VOCABULARY: MetricVocabularyRegistry;
190
234
  /**
191
235
  * Locked log envelope per D13. All 11 fields are SDK-injected from
192
236
  * `NodiiContext` + the initTelemetry config + active OTel context.
@@ -1 +1 @@
1
- {"version":3,"file":"types.d.ts","sourceRoot":"","sources":["../src/types.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"types.d.ts","sourceRoot":"","sources":["../src/types.ts"],"names":[],"mappings":"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"}
package/dist/types.js CHANGED
@@ -10,6 +10,7 @@ export const METRIC_FAMILIES = [
10
10
  "outbox",
11
11
  "pool",
12
12
  "intent",
13
+ "replica_consumer",
13
14
  ];
14
15
  export const AGENT_INVOCABLE_SIDE_EFFECTS = [
15
16
  "db.write",
@@ -38,6 +39,7 @@ export const DEFAULT_SAMPLING_CONFIG = {
38
39
  outbox: 1.0,
39
40
  pool: 1.0,
40
41
  intent: 1.0,
42
+ replica_consumer: 1.0,
41
43
  },
42
44
  baseline: {
43
45
  request_handler: 0.1,
@@ -46,6 +48,7 @@ export const DEFAULT_SAMPLING_CONFIG = {
46
48
  outbox: 0.1,
47
49
  pool: 0.1,
48
50
  intent: 0.1,
51
+ replica_consumer: 0.1,
49
52
  },
50
53
  },
51
54
  cascade: {
@@ -53,6 +56,69 @@ export const DEFAULT_SAMPLING_CONFIG = {
53
56
  keptTraceForcesKeptLogs: true,
54
57
  },
55
58
  };
59
+ /**
60
+ * D197 (locked 2026-06-03) — the LOCKED `@nodii/replica-consumer` metric
61
+ * vocabulary: 7 metrics under family `replica_consumer`. Merge this into
62
+ * `initTelemetry({ vocabularyRegistry })` so the canonical names don't
63
+ * trip `MetricVocabularyError`:
64
+ *
65
+ * initTelemetry({
66
+ * ...,
67
+ * vocabularyRegistry: { ...serviceVocab, ...REPLICA_CONSUMER_VOCABULARY },
68
+ * });
69
+ *
70
+ * Drives nodii-edge + every `@nodii/replica-consumer` consumer
71
+ * (nodii-auth slices 2-4, nodii-hr, nodii-ticketing, nodii-task-tracking).
72
+ * Names follow dot-grammar lowercase+underscores per 07-rbac § 2 applied
73
+ * to metric vocabulary (D149 + D20).
74
+ */
75
+ export const REPLICA_CONSUMER_VOCABULARY = {
76
+ "replica.consumer.lag_seconds": {
77
+ family: "replica_consumer",
78
+ kind: "gauge",
79
+ unit: "seconds",
80
+ description: "Wall-clock lag between source emission (occurred_at) and consumer apply (replicated_at).",
81
+ decision: "D197",
82
+ },
83
+ "replica.consumer.cursor_position": {
84
+ family: "replica_consumer",
85
+ kind: "gauge",
86
+ description: "Current XREADGROUP cursor (stream offset). Stall anomaly.",
87
+ decision: "D197",
88
+ },
89
+ "replica.consumer.events_dedupe_total": {
90
+ family: "replica_consumer",
91
+ kind: "counter",
92
+ description: "Dedupe drops (D39 event_id cache hit + LWW out-of-order entity_version).",
93
+ decision: "D197",
94
+ },
95
+ "replica.consumer.events_apply_total": {
96
+ family: "replica_consumer",
97
+ kind: "counter",
98
+ description: "Successful + failed applies.",
99
+ decision: "D197",
100
+ },
101
+ "replica.consumer.apply_duration_ms": {
102
+ family: "replica_consumer",
103
+ kind: "histogram",
104
+ unit: "ms",
105
+ description: "Per-event apply latency (deserialize + toRow + UPSERT in one tx).",
106
+ decision: "D197",
107
+ },
108
+ "replica.consumer.dlq_total": {
109
+ family: "replica_consumer",
110
+ kind: "counter",
111
+ description: "DLQ writes (per 09-replication § 8).",
112
+ decision: "D197",
113
+ },
114
+ "replica.consumer.snapshot_bootstrap_duration_ms": {
115
+ family: "replica_consumer",
116
+ kind: "histogram",
117
+ unit: "ms",
118
+ description: "Cold-start snapshot bootstrap (per 09-replication § 7).",
119
+ decision: "D197",
120
+ },
121
+ };
56
122
  /**
57
123
  * SDK error thrown when any public API is called before
58
124
  * `initTelemetry()` has run. Caller catches → fix init order.
package/dist/types.js.map CHANGED
@@ -1 +1 @@
1
- {"version":3,"file":"types.js","sourceRoot":"","sources":["../src/types.ts"],"names":[],"mappings":"AAAA,iDAAiD;AACjD,EAAE;AACF,sEAAsE;AACtE,oEAAoE;AACpE,qBAAqB;AAoCrB,MAAM,CAAC,MAAM,eAAe,GAA4B;IACtD,iBAAiB;IACjB,MAAM;IACN,cAAc;IACd,QAAQ;IACR,MAAM;IACN,QAAQ;CACA,CAAC;AAsCX,MAAM,CAAC,MAAM,4BAA4B,GACvC;IACE,UAAU;IACV,WAAW;IACX,YAAY;IACZ,UAAU;IACV,YAAY;IACZ,gBAAgB;IAChB,gBAAgB;IAChB,cAAc;IACd,YAAY;IACZ,mBAAmB;CACX,CAAC;AA4Db,sEAAsE;AACtE,MAAM,CAAC,MAAM,uBAAuB,GAAmB;IACrD,OAAO,EAAE,KAAK;IACd,SAAS,EAAE;QACT,MAAM,EAAE,GAAG;QACX,KAAK,EAAE,GAAG;QACV,eAAe,EAAE,GAAG;QACpB,MAAM,EAAE,GAAG;QACX,aAAa,EAAE;YACb,eAAe,EAAE,GAAG;YACpB,IAAI,EAAE,GAAG;YACT,YAAY,EAAE,GAAG;YACjB,MAAM,EAAE,GAAG;YACX,IAAI,EAAE,GAAG;YACT,MAAM,EAAE,GAAG;SACZ;QACD,QAAQ,EAAE;YACR,eAAe,EAAE,GAAG;YACpB,IAAI,EAAE,GAAG;YACT,YAAY,EAAE,GAAG;YACjB,MAAM,EAAE,GAAG;YACX,IAAI,EAAE,GAAG;YACT,MAAM,EAAE,GAAG;SACZ;KACF;IACD,OAAO,EAAE;QACP,wBAAwB,EAAE,IAAI;QAC9B,uBAAuB,EAAE,IAAI;KAC9B;CACF,CAAC;AA4IF;;;GAGG;AACH,MAAM,OAAO,uBAAwB,SAAQ,KAAK;IAChD;QACE,KAAK,CACH,qGAAqG,CACtG,CAAC;QACF,IAAI,CAAC,IAAI,GAAG,yBAAyB,CAAC;IACxC,CAAC;CACF"}
1
+ {"version":3,"file":"types.js","sourceRoot":"","sources":["../src/types.ts"],"names":[],"mappings":"AAAA,iDAAiD;AACjD,EAAE;AACF,sEAAsE;AACtE,oEAAoE;AACpE,qBAAqB;AA2CrB,MAAM,CAAC,MAAM,eAAe,GAA4B;IACtD,iBAAiB;IACjB,MAAM;IACN,cAAc;IACd,QAAQ;IACR,MAAM;IACN,QAAQ;IACR,kBAAkB;CACV,CAAC;AAsCX,MAAM,CAAC,MAAM,4BAA4B,GACvC;IACE,UAAU;IACV,WAAW;IACX,YAAY;IACZ,UAAU;IACV,YAAY;IACZ,gBAAgB;IAChB,gBAAgB;IAChB,cAAc;IACd,YAAY;IACZ,mBAAmB;CACX,CAAC;AA4Db,sEAAsE;AACtE,MAAM,CAAC,MAAM,uBAAuB,GAAmB;IACrD,OAAO,EAAE,KAAK;IACd,SAAS,EAAE;QACT,MAAM,EAAE,GAAG;QACX,KAAK,EAAE,GAAG;QACV,eAAe,EAAE,GAAG;QACpB,MAAM,EAAE,GAAG;QACX,aAAa,EAAE;YACb,eAAe,EAAE,GAAG;YACpB,IAAI,EAAE,GAAG;YACT,YAAY,EAAE,GAAG;YACjB,MAAM,EAAE,GAAG;YACX,IAAI,EAAE,GAAG;YACT,MAAM,EAAE,GAAG;YACX,gBAAgB,EAAE,GAAG;SACtB;QACD,QAAQ,EAAE;YACR,eAAe,EAAE,GAAG;YACpB,IAAI,EAAE,GAAG;YACT,YAAY,EAAE,GAAG;YACjB,MAAM,EAAE,GAAG;YACX,IAAI,EAAE,GAAG;YACT,MAAM,EAAE,GAAG;YACX,gBAAgB,EAAE,GAAG;SACtB;KACF;IACD,OAAO,EAAE;QACP,wBAAwB,EAAE,IAAI;QAC9B,uBAAuB,EAAE,IAAI;KAC9B;CACF,CAAC;AA+HF;;;;;;;;;;;;;;;GAeG;AACH,MAAM,CAAC,MAAM,2BAA2B,GAA6B;IACnE,8BAA8B,EAAE;QAC9B,MAAM,EAAE,kBAAkB;QAC1B,IAAI,EAAE,OAAO;QACb,IAAI,EAAE,SAAS;QACf,WAAW,EACT,0FAA0F;QAC5F,QAAQ,EAAE,MAAM;KACjB;IACD,kCAAkC,EAAE;QAClC,MAAM,EAAE,kBAAkB;QAC1B,IAAI,EAAE,OAAO;QACb,WAAW,EAAE,2DAA2D;QACxE,QAAQ,EAAE,MAAM;KACjB;IACD,sCAAsC,EAAE;QACtC,MAAM,EAAE,kBAAkB;QAC1B,IAAI,EAAE,SAAS;QACf,WAAW,EACT,0EAA0E;QAC5E,QAAQ,EAAE,MAAM;KACjB;IACD,qCAAqC,EAAE;QACrC,MAAM,EAAE,kBAAkB;QAC1B,IAAI,EAAE,SAAS;QACf,WAAW,EAAE,8BAA8B;QAC3C,QAAQ,EAAE,MAAM;KACjB;IACD,oCAAoC,EAAE;QACpC,MAAM,EAAE,kBAAkB;QAC1B,IAAI,EAAE,WAAW;QACjB,IAAI,EAAE,IAAI;QACV,WAAW,EACT,mEAAmE;QACrE,QAAQ,EAAE,MAAM;KACjB;IACD,4BAA4B,EAAE;QAC5B,MAAM,EAAE,kBAAkB;QAC1B,IAAI,EAAE,SAAS;QACf,WAAW,EAAE,sCAAsC;QACnD,QAAQ,EAAE,MAAM;KACjB;IACD,iDAAiD,EAAE;QACjD,MAAM,EAAE,kBAAkB;QAC1B,IAAI,EAAE,WAAW;QACjB,IAAI,EAAE,IAAI;QACV,WAAW,EAAE,yDAAyD;QACtE,QAAQ,EAAE,MAAM;KACjB;CACF,CAAC;AAqCF;;;GAGG;AACH,MAAM,OAAO,uBAAwB,SAAQ,KAAK;IAChD;QACE,KAAK,CACH,qGAAqG,CACtG,CAAC;QACF,IAAI,CAAC,IAAI,GAAG,yBAAyB,CAAC;IACxC,CAAC;CACF"}
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@nodii/telemetry",
3
- "version": "0.4.0",
3
+ "version": "0.5.1",
4
4
  "description": "Substrate observability library for the Nodii microservice stack — OTel wrapper, log envelope, intent lifecycle, audit signal, agent registry, context propagation. Spec: planning hub docKey=telemetry.",
5
5
  "license": "MIT",
6
6
  "type": "module",
@@ -43,11 +43,15 @@
43
43
  "@opentelemetry/semantic-conventions": "^1.28.0"
44
44
  },
45
45
  "peerDependencies": {
46
+ "@nodii/audit-chain": "^0.4.1",
46
47
  "@opentelemetry/api": "^1.9.0",
47
48
  "@opentelemetry/api-logs": "^0.57.2",
48
- "drizzle-orm": "^0.36.0"
49
+ "drizzle-orm": ">=0.36 <0.50"
49
50
  },
50
51
  "peerDependenciesMeta": {
52
+ "@nodii/audit-chain": {
53
+ "optional": true
54
+ },
51
55
  "@opentelemetry/api": {
52
56
  "optional": true
53
57
  },
@@ -59,7 +63,9 @@
59
63
  }
60
64
  },
61
65
  "devDependencies": {
62
- "drizzle-orm": "^0.36.0",
66
+ "@nodii/audit-chain": "0.4.1",
67
+ "drizzle-orm": "^0.45.2",
68
+ "postgres": "^3.4.0",
63
69
  "typescript": "^5.9.3"
64
70
  },
65
71
  "repository": {