@origintrail-official/dkg-node-ui 10.0.11 → 10.0.12

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.
package/dist/index.d.ts CHANGED
@@ -18,6 +18,6 @@ export type { MemoryToolContext, MemoryStats, MemoryEntity, SessionPublicationSt
18
18
  export { LlmClient, LlmRequestError } from './llm/client.js';
19
19
  export { resolveCapabilities } from './llm/capability-resolver.js';
20
20
  export type { LlmConfig, LlmChatRequest, LlmChatMessage, LlmStreamEvent, LlmCompletionResult, LlmCapabilities } from './llm/types.js';
21
- export { initTelemetry, shutdownTelemetry, isTelemetryConfigured, recordGauge, setOperationSpan, } from './telemetry.js';
21
+ export { initTelemetry, shutdownTelemetry, isTelemetryConfigured, flushTelemetry, TERMINAL_FLUSH_BUDGET_MS, recordGauge, setOperationSpan, } from './telemetry.js';
22
22
  export type { TelemetryInitConfig, TelemetryResource, OtlpSignalConfig, TelemetryConfig } from './telemetry.js';
23
23
  //# sourceMappingURL=index.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"AAAA,OAAO,EACL,WAAW,EACX,6BAA6B,EAC7B,yBAAyB,EACzB,KAAK,gCAAgC,EACrC,yBAAyB,EACzB,0BAA0B,EAC1B,uBAAuB,EACvB,mBAAmB,EAGnB,yBAAyB,EACzB,uBAAuB,EACvB,sBAAsB,EACtB,sBAAsB,GACvB,MAAM,SAAS,CAAC;AACjB,OAAO,EACL,2BAA2B,EAC3B,yCAAyC,GAC1C,MAAM,0BAA0B,CAAC;AAClC,YAAY,EACV,kBAAkB,EAClB,oBAAoB,EACpB,iBAAiB,EACjB,YAAY,EACZ,iBAAiB,EACjB,qBAAqB,EACrB,oBAAoB,EACpB,eAAe,EACf,cAAc,EACd,cAAc,EACd,MAAM,EACN,eAAe,EACf,aAAa,EACb,2BAA2B,EAC3B,+BAA+B,EAC/B,4BAA4B,EAC5B,gCAAgC,EAChC,0CAA0C,EAC1C,2CAA2C,EAC3C,wCAAwC,EACxC,wCAAwC,EACxC,yCAAyC,EACzC,+BAA+B,EAC/B,wBAAwB,EACxB,qBAAqB,EACrB,eAAe,EACf,qBAAqB,GACtB,MAAM,SAAS,CAAC;AAEjB,OAAO,EAAE,gBAAgB,EAAE,MAAM,wBAAwB,CAAC;AAC1D,OAAO,EAAE,gBAAgB,EAAE,MAAM,wBAAwB,CAAC;AAC1D,OAAO,EAAE,gBAAgB,EAAE,MAAM,wBAAwB,CAAC;AAC1D,YAAY,EAAE,aAAa,EAAE,MAAM,wBAAwB,CAAC;AAC5D,OAAO,EAAE,mBAAmB,EAAE,MAAM,UAAU,CAAC;AAC/C,OAAO,EAAE,kBAAkB,EAAE,qBAAqB,EAAE,MAAM,0BAA0B,CAAC;AACrF,YAAY,EACV,SAAS,EACT,yBAAyB,EACzB,wBAAwB,GACzB,MAAM,0BAA0B,CAAC;AAClC,YAAY,EAAE,oBAAoB,EAAE,0BAA0B,EAAE,MAAM,UAAU,CAAC;AACjF,OAAO,EAAE,aAAa,EAAE,MAAM,uBAAuB,CAAC;AACtD,YAAY,EAAE,oBAAoB,EAAE,MAAM,uBAAuB,CAAC;AAClE,OAAO,EAAE,aAAa,EAAE,MAAM,sBAAsB,CAAC;AACrD,YAAY,EAAE,oBAAoB,EAAE,MAAM,sBAAsB,CAAC;AACjE,OAAO,EAAE,iBAAiB,EAAE,MAAM,kBAAkB,CAAC;AACrD,YAAY,EACV,iBAAiB,EACjB,WAAW,EACX,YAAY,EACZ,wBAAwB,EACxB,oBAAoB,EACpB,0BAA0B,EAC1B,uBAAuB,GACxB,MAAM,kBAAkB,CAAC;AAC1B,OAAO,EAAE,SAAS,EAAE,eAAe,EAAE,MAAM,iBAAiB,CAAC;AAC7D,OAAO,EAAE,mBAAmB,EAAE,MAAM,8BAA8B,CAAC;AACnE,YAAY,EAAE,SAAS,EAAE,cAAc,EAAE,cAAc,EAAE,cAAc,EAAE,mBAAmB,EAAE,eAAe,EAAE,MAAM,gBAAgB,CAAC;AACtI,OAAO,EACL,aAAa,EAAE,iBAAiB,EAAE,qBAAqB,EAEvD,WAAW,EAAE,gBAAgB,GAC9B,MAAM,gBAAgB,CAAC;AACxB,YAAY,EAAE,mBAAmB,EAAE,iBAAiB,EAAE,gBAAgB,EAAE,eAAe,EAAE,MAAM,gBAAgB,CAAC"}
1
+ {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"AAAA,OAAO,EACL,WAAW,EACX,6BAA6B,EAC7B,yBAAyB,EACzB,KAAK,gCAAgC,EACrC,yBAAyB,EACzB,0BAA0B,EAC1B,uBAAuB,EACvB,mBAAmB,EAGnB,yBAAyB,EACzB,uBAAuB,EACvB,sBAAsB,EACtB,sBAAsB,GACvB,MAAM,SAAS,CAAC;AACjB,OAAO,EACL,2BAA2B,EAC3B,yCAAyC,GAC1C,MAAM,0BAA0B,CAAC;AAClC,YAAY,EACV,kBAAkB,EAClB,oBAAoB,EACpB,iBAAiB,EACjB,YAAY,EACZ,iBAAiB,EACjB,qBAAqB,EACrB,oBAAoB,EACpB,eAAe,EACf,cAAc,EACd,cAAc,EACd,MAAM,EACN,eAAe,EACf,aAAa,EACb,2BAA2B,EAC3B,+BAA+B,EAC/B,4BAA4B,EAC5B,gCAAgC,EAChC,0CAA0C,EAC1C,2CAA2C,EAC3C,wCAAwC,EACxC,wCAAwC,EACxC,yCAAyC,EACzC,+BAA+B,EAC/B,wBAAwB,EACxB,qBAAqB,EACrB,eAAe,EACf,qBAAqB,GACtB,MAAM,SAAS,CAAC;AAEjB,OAAO,EAAE,gBAAgB,EAAE,MAAM,wBAAwB,CAAC;AAC1D,OAAO,EAAE,gBAAgB,EAAE,MAAM,wBAAwB,CAAC;AAC1D,OAAO,EAAE,gBAAgB,EAAE,MAAM,wBAAwB,CAAC;AAC1D,YAAY,EAAE,aAAa,EAAE,MAAM,wBAAwB,CAAC;AAC5D,OAAO,EAAE,mBAAmB,EAAE,MAAM,UAAU,CAAC;AAC/C,OAAO,EAAE,kBAAkB,EAAE,qBAAqB,EAAE,MAAM,0BAA0B,CAAC;AACrF,YAAY,EACV,SAAS,EACT,yBAAyB,EACzB,wBAAwB,GACzB,MAAM,0BAA0B,CAAC;AAClC,YAAY,EAAE,oBAAoB,EAAE,0BAA0B,EAAE,MAAM,UAAU,CAAC;AACjF,OAAO,EAAE,aAAa,EAAE,MAAM,uBAAuB,CAAC;AACtD,YAAY,EAAE,oBAAoB,EAAE,MAAM,uBAAuB,CAAC;AAClE,OAAO,EAAE,aAAa,EAAE,MAAM,sBAAsB,CAAC;AACrD,YAAY,EAAE,oBAAoB,EAAE,MAAM,sBAAsB,CAAC;AACjE,OAAO,EAAE,iBAAiB,EAAE,MAAM,kBAAkB,CAAC;AACrD,YAAY,EACV,iBAAiB,EACjB,WAAW,EACX,YAAY,EACZ,wBAAwB,EACxB,oBAAoB,EACpB,0BAA0B,EAC1B,uBAAuB,GACxB,MAAM,kBAAkB,CAAC;AAC1B,OAAO,EAAE,SAAS,EAAE,eAAe,EAAE,MAAM,iBAAiB,CAAC;AAC7D,OAAO,EAAE,mBAAmB,EAAE,MAAM,8BAA8B,CAAC;AACnE,YAAY,EAAE,SAAS,EAAE,cAAc,EAAE,cAAc,EAAE,cAAc,EAAE,mBAAmB,EAAE,eAAe,EAAE,MAAM,gBAAgB,CAAC;AACtI,OAAO,EACL,aAAa,EAAE,iBAAiB,EAAE,qBAAqB,EAGvD,cAAc,EAAE,wBAAwB,EAExC,WAAW,EAAE,gBAAgB,GAC9B,MAAM,gBAAgB,CAAC;AACxB,YAAY,EAAE,mBAAmB,EAAE,iBAAiB,EAAE,gBAAgB,EAAE,eAAe,EAAE,MAAM,gBAAgB,CAAC"}
package/dist/index.js CHANGED
@@ -14,6 +14,9 @@ export { ChatMemoryManager } from './chat-memory.js';
14
14
  export { LlmClient, LlmRequestError } from './llm/client.js';
15
15
  export { resolveCapabilities } from './llm/capability-resolver.js';
16
16
  export { initTelemetry, shutdownTelemetry, isTelemetryConfigured,
17
+ // Flush-only hook for the daemon's terminal shutdown point: exports what has
18
+ // been recorded while leaving the provider live (shutdownTelemetry does not).
19
+ flushTelemetry, TERMINAL_FLUSH_BUDGET_MS,
17
20
  // Back-compat shims for the pre-#1317 telemetry API (no-ops / legacy config).
18
21
  recordGauge, setOperationSpan, } from './telemetry.js';
19
22
  //# sourceMappingURL=index.js.map
package/dist/index.js.map CHANGED
@@ -1 +1 @@
1
- {"version":3,"file":"index.js","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"AAAA,OAAO,EACL,WAAW,EACX,6BAA6B,EAC7B,yBAAyB,EAEzB,yBAAyB,EACzB,0BAA0B,EAC1B,uBAAuB,EACvB,mBAAmB;AACnB,uEAAuE;AACvE,sEAAsE;AACtE,yBAAyB,EACzB,uBAAuB,EACvB,sBAAsB,EACtB,sBAAsB,GACvB,MAAM,SAAS,CAAC;AACjB,OAAO,EACL,2BAA2B,EAC3B,yCAAyC,GAC1C,MAAM,0BAA0B,CAAC;AA+BlC,OAAO,EAAE,gBAAgB,EAAE,MAAM,wBAAwB,CAAC;AAC1D,OAAO,EAAE,gBAAgB,EAAE,MAAM,wBAAwB,CAAC;AAC1D,OAAO,EAAE,gBAAgB,EAAE,MAAM,wBAAwB,CAAC;AAE1D,OAAO,EAAE,mBAAmB,EAAE,MAAM,UAAU,CAAC;AAC/C,OAAO,EAAE,kBAAkB,EAAE,qBAAqB,EAAE,MAAM,0BAA0B,CAAC;AAOrF,OAAO,EAAE,aAAa,EAAE,MAAM,uBAAuB,CAAC;AAEtD,OAAO,EAAE,aAAa,EAAE,MAAM,sBAAsB,CAAC;AAErD,OAAO,EAAE,iBAAiB,EAAE,MAAM,kBAAkB,CAAC;AAUrD,OAAO,EAAE,SAAS,EAAE,eAAe,EAAE,MAAM,iBAAiB,CAAC;AAC7D,OAAO,EAAE,mBAAmB,EAAE,MAAM,8BAA8B,CAAC;AAEnE,OAAO,EACL,aAAa,EAAE,iBAAiB,EAAE,qBAAqB;AACvD,8EAA8E;AAC9E,WAAW,EAAE,gBAAgB,GAC9B,MAAM,gBAAgB,CAAC"}
1
+ {"version":3,"file":"index.js","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"AAAA,OAAO,EACL,WAAW,EACX,6BAA6B,EAC7B,yBAAyB,EAEzB,yBAAyB,EACzB,0BAA0B,EAC1B,uBAAuB,EACvB,mBAAmB;AACnB,uEAAuE;AACvE,sEAAsE;AACtE,yBAAyB,EACzB,uBAAuB,EACvB,sBAAsB,EACtB,sBAAsB,GACvB,MAAM,SAAS,CAAC;AACjB,OAAO,EACL,2BAA2B,EAC3B,yCAAyC,GAC1C,MAAM,0BAA0B,CAAC;AA+BlC,OAAO,EAAE,gBAAgB,EAAE,MAAM,wBAAwB,CAAC;AAC1D,OAAO,EAAE,gBAAgB,EAAE,MAAM,wBAAwB,CAAC;AAC1D,OAAO,EAAE,gBAAgB,EAAE,MAAM,wBAAwB,CAAC;AAE1D,OAAO,EAAE,mBAAmB,EAAE,MAAM,UAAU,CAAC;AAC/C,OAAO,EAAE,kBAAkB,EAAE,qBAAqB,EAAE,MAAM,0BAA0B,CAAC;AAOrF,OAAO,EAAE,aAAa,EAAE,MAAM,uBAAuB,CAAC;AAEtD,OAAO,EAAE,aAAa,EAAE,MAAM,sBAAsB,CAAC;AAErD,OAAO,EAAE,iBAAiB,EAAE,MAAM,kBAAkB,CAAC;AAUrD,OAAO,EAAE,SAAS,EAAE,eAAe,EAAE,MAAM,iBAAiB,CAAC;AAC7D,OAAO,EAAE,mBAAmB,EAAE,MAAM,8BAA8B,CAAC;AAEnE,OAAO,EACL,aAAa,EAAE,iBAAiB,EAAE,qBAAqB;AACvD,6EAA6E;AAC7E,8EAA8E;AAC9E,cAAc,EAAE,wBAAwB;AACxC,8EAA8E;AAC9E,WAAW,EAAE,gBAAgB,GAC9B,MAAM,gBAAgB,CAAC"}
@@ -70,6 +70,53 @@ export interface TelemetryConfig {
70
70
  export declare function initTelemetry(input: TelemetryInitConfig | TelemetryConfig): Promise<void>;
71
71
  /** True once EITHER signal (traces or metrics) has registered a real provider. */
72
72
  export declare function isTelemetryConfigured(): boolean;
73
+ /**
74
+ * Wall-clock reserve for the terminal flush in the daemon's graceful-shutdown
75
+ * path. `SHUTDOWN_HARD_TIMEOUT_MS` is 15 s and the catch-up grace drain ahead
76
+ * of this may already have consumed 5 s, so the flush gets a fixed 2 s — well
77
+ * under the ~10 s remainder, leaving room for runner close, `agent.stop()`,
78
+ * the final `shutdownTelemetry()` and the database close behind it.
79
+ */
80
+ export declare const TERMINAL_FLUSH_BUDGET_MS = 2000;
81
+ /**
82
+ * Flush pending spans/metrics WITHOUT tearing anything down.
83
+ *
84
+ * Exists because `shutdownTelemetry()` is not a flush: it shuts the providers
85
+ * down, clears the OTel API globals and calls `rebuildMetrics()`, so every
86
+ * later `getMetrics()` binds to a no-op meter. The daemon needs a point in
87
+ * shutdown where already-recorded terminal state is exported while the
88
+ * provider stays LIVE, because work that runs afterwards (`agent.stop()`
89
+ * quiescing parent-side sync) still emits the attempts, bytes and active time
90
+ * that belong to those same terminal records.
91
+ *
92
+ * ## Why each side is bounded differently
93
+ *
94
+ * Neither provider is bounded by default, and they are not bounded the same
95
+ * way (verified against the installed `@opentelemetry/sdk-*@2.8.0`):
96
+ *
97
+ * - `MetricReader.forceFlush(options)` applies **no timeout at all** when
98
+ * `options.timeoutMillis` is absent — it just awaits `onForceFlush()`, whose
99
+ * trailing `this._exporter.forceFlush()` is wrapped by nothing. Passing
100
+ * `timeoutMillis` routes the whole thing through `callWithTimeout`, so the
101
+ * argument — not this comment — is what bounds the meter.
102
+ * - `BasicTracerProvider.forceFlush()` accepts **no arguments**; it reads the
103
+ * constructor's `forceFlushTimeoutMillis` (default 30 000). The only way to
104
+ * bound it per call is to race it.
105
+ *
106
+ * The two bounded legs run concurrently, so the aggregate wait is also the
107
+ * budget. Deliberately there is NO extra outer race around both: an outer
108
+ * bound would return inside the budget even if one leg's own bound were
109
+ * removed, which would make the per-leg bounds untestable — and an untestable
110
+ * bound is how the previous "bounded" flush turned out to have no bound.
111
+ *
112
+ * Never throws into the shutdown path: a timeout or rejection is logged and
113
+ * teardown continues. Bounded effort, not a delivery guarantee — an exporter
114
+ * that cannot flush inside the reserve still loses its last points.
115
+ */
116
+ export declare function flushTelemetry(options?: {
117
+ budgetMs?: number;
118
+ log?: (message: string) => void;
119
+ }): Promise<void>;
73
120
  /**
74
121
  * Flush + shut down providers. Used both at daemon teardown AND when telemetry
75
122
  * is turned off via the runtime master gate, so it must FULLY reverse
@@ -77,6 +124,15 @@ export declare function isTelemetryConfigured(): boolean;
77
124
  * later `initTelemetry` (live re-enable) can register fresh providers — without
78
125
  * the `disable()` calls, the API keeps the first (now shut-down) provider and a
79
126
  * re-enable would silently no-op. Safe if never initialized; idempotent.
127
+ *
128
+ * Flush and shutdown run SEQUENTIALLY per provider, and that is not tidiness.
129
+ * They used to be pushed into one array and awaited by a single `Promise.all`,
130
+ * i.e. started concurrently against the same provider — and
131
+ * `MeterProvider.forceFlush()` opens with `if (this._shutdown) { diag.warn(…);
132
+ * return; }`. Whichever call won the race decided whether the flush happened at
133
+ * all; it worked only because the synchronous `_shutdown` read happened to be
134
+ * scheduled first. Awaiting the flush before starting the shutdown removes the
135
+ * race instead of relying on scheduling order.
80
136
  */
81
137
  export declare function shutdownTelemetry(): Promise<void>;
82
138
  /**
@@ -1 +1 @@
1
- {"version":3,"file":"telemetry.d.ts","sourceRoot":"","sources":["../src/telemetry.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;;;;;;;;;;GAuBG;AAGH,OAAO,EAA+B,KAAK,sBAAsB,EAAE,MAAM,yBAAyB,CAAC;AAKnG;;;;GAIG;AACH,MAAM,MAAM,iBAAiB,GAAG,sBAAsB,CAAC;AAEvD,MAAM,WAAW,gBAAgB;IAC/B,QAAQ,CAAC,EAAE,MAAM,CAAC;IAClB,2CAA2C;IAC3C,KAAK,CAAC,EAAE,MAAM,CAAC;IACf,OAAO,CAAC,EAAE,MAAM,CAAC,MAAM,EAAE,MAAM,CAAC,CAAC;IACjC,6FAA6F;IAC7F,OAAO,CAAC,EAAE,OAAO,CAAC;CACnB;AAED,MAAM,WAAW,mBAAmB;IAClC,sDAAsD;IACtD,OAAO,CAAC,EAAE,OAAO,CAAC;IAClB,QAAQ,CAAC,EAAE,iBAAiB,CAAC;IAC7B,MAAM,CAAC,EAAE,gBAAgB,GAAG;QAAE,WAAW,CAAC,EAAE,MAAM,CAAA;KAAE,CAAC;IACrD,OAAO,CAAC,EAAE,gBAAgB,GAAG;QAAE,gBAAgB,CAAC,EAAE,MAAM,CAAA;KAAE,CAAC;CAC5D;AAED;;;;;GAKG;AACH,MAAM,WAAW,eAAe;IAC9B,OAAO,CAAC,EAAE,OAAO,CAAC;IAClB,6EAA6E;IAC7E,eAAe,CAAC,EAAE,MAAM,CAAC;IACzB,2CAA2C;IAC3C,WAAW,CAAC,EAAE,MAAM,CAAC;CACtB;AA+BD;;;;;GAKG;AACH,wBAAsB,aAAa,CAAC,KAAK,EAAE,mBAAmB,GAAG,eAAe,GAAG,OAAO,CAAC,IAAI,CAAC,CAwD/F;AAED,kFAAkF;AAClF,wBAAgB,qBAAqB,IAAI,OAAO,CAE/C;AAED;;;;;;;GAOG;AACH,wBAAsB,iBAAiB,IAAI,OAAO,CAAC,IAAI,CAAC,CAyBvD;AAED;;;;GAIG;AACH,wBAAgB,WAAW,CAAC,KAAK,EAAE,MAAM,EAAE,MAAM,EAAE,MAAM,GAAG,IAAI,CAE/D;AAED;;;;GAIG;AACH,wBAAgB,gBAAgB,CAAC,YAAY,EAAE,MAAM,EAAE,cAAc,EAAE,MAAM,GAAG,IAAI,CAEnF"}
1
+ {"version":3,"file":"telemetry.d.ts","sourceRoot":"","sources":["../src/telemetry.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;;;;;;;;;;GAuBG;AAGH,OAAO,EAA+B,KAAK,sBAAsB,EAAE,MAAM,yBAAyB,CAAC;AAKnG;;;;GAIG;AACH,MAAM,MAAM,iBAAiB,GAAG,sBAAsB,CAAC;AAEvD,MAAM,WAAW,gBAAgB;IAC/B,QAAQ,CAAC,EAAE,MAAM,CAAC;IAClB,2CAA2C;IAC3C,KAAK,CAAC,EAAE,MAAM,CAAC;IACf,OAAO,CAAC,EAAE,MAAM,CAAC,MAAM,EAAE,MAAM,CAAC,CAAC;IACjC,6FAA6F;IAC7F,OAAO,CAAC,EAAE,OAAO,CAAC;CACnB;AAED,MAAM,WAAW,mBAAmB;IAClC,sDAAsD;IACtD,OAAO,CAAC,EAAE,OAAO,CAAC;IAClB,QAAQ,CAAC,EAAE,iBAAiB,CAAC;IAC7B,MAAM,CAAC,EAAE,gBAAgB,GAAG;QAAE,WAAW,CAAC,EAAE,MAAM,CAAA;KAAE,CAAC;IACrD,OAAO,CAAC,EAAE,gBAAgB,GAAG;QAAE,gBAAgB,CAAC,EAAE,MAAM,CAAA;KAAE,CAAC;CAC5D;AAED;;;;;GAKG;AACH,MAAM,WAAW,eAAe;IAC9B,OAAO,CAAC,EAAE,OAAO,CAAC;IAClB,6EAA6E;IAC7E,eAAe,CAAC,EAAE,MAAM,CAAC;IACzB,2CAA2C;IAC3C,WAAW,CAAC,EAAE,MAAM,CAAC;CACtB;AA+BD;;;;;GAKG;AACH,wBAAsB,aAAa,CAAC,KAAK,EAAE,mBAAmB,GAAG,eAAe,GAAG,OAAO,CAAC,IAAI,CAAC,CAwD/F;AAED,kFAAkF;AAClF,wBAAgB,qBAAqB,IAAI,OAAO,CAE/C;AAED;;;;;;GAMG;AACH,eAAO,MAAM,wBAAwB,OAAQ,CAAC;AAE9C;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;GAkCG;AACH,wBAAsB,cAAc,CAClC,OAAO,GAAE;IAAE,QAAQ,CAAC,EAAE,MAAM,CAAC;IAAC,GAAG,CAAC,EAAE,CAAC,OAAO,EAAE,MAAM,KAAK,IAAI,CAAA;CAAO,GACnE,OAAO,CAAC,IAAI,CAAC,CAqCf;AAMD;;;;;;;;;;;;;;;;GAgBG;AACH,wBAAsB,iBAAiB,IAAI,OAAO,CAAC,IAAI,CAAC,CAuBvD;AAED;;;;GAIG;AACH,wBAAgB,WAAW,CAAC,KAAK,EAAE,MAAM,EAAE,MAAM,EAAE,MAAM,GAAG,IAAI,CAE/D;AAED;;;;GAIG;AACH,wBAAgB,gBAAgB,CAAC,YAAY,EAAE,MAAM,EAAE,cAAc,EAAE,MAAM,GAAG,IAAI,CAEnF"}
package/dist/telemetry.js CHANGED
@@ -114,6 +114,89 @@ export async function initTelemetry(input) {
114
114
  export function isTelemetryConfigured() {
115
115
  return tracerProvider !== null || meterProvider !== null;
116
116
  }
117
+ /**
118
+ * Wall-clock reserve for the terminal flush in the daemon's graceful-shutdown
119
+ * path. `SHUTDOWN_HARD_TIMEOUT_MS` is 15 s and the catch-up grace drain ahead
120
+ * of this may already have consumed 5 s, so the flush gets a fixed 2 s — well
121
+ * under the ~10 s remainder, leaving room for runner close, `agent.stop()`,
122
+ * the final `shutdownTelemetry()` and the database close behind it.
123
+ */
124
+ export const TERMINAL_FLUSH_BUDGET_MS = 2_000;
125
+ /**
126
+ * Flush pending spans/metrics WITHOUT tearing anything down.
127
+ *
128
+ * Exists because `shutdownTelemetry()` is not a flush: it shuts the providers
129
+ * down, clears the OTel API globals and calls `rebuildMetrics()`, so every
130
+ * later `getMetrics()` binds to a no-op meter. The daemon needs a point in
131
+ * shutdown where already-recorded terminal state is exported while the
132
+ * provider stays LIVE, because work that runs afterwards (`agent.stop()`
133
+ * quiescing parent-side sync) still emits the attempts, bytes and active time
134
+ * that belong to those same terminal records.
135
+ *
136
+ * ## Why each side is bounded differently
137
+ *
138
+ * Neither provider is bounded by default, and they are not bounded the same
139
+ * way (verified against the installed `@opentelemetry/sdk-*@2.8.0`):
140
+ *
141
+ * - `MetricReader.forceFlush(options)` applies **no timeout at all** when
142
+ * `options.timeoutMillis` is absent — it just awaits `onForceFlush()`, whose
143
+ * trailing `this._exporter.forceFlush()` is wrapped by nothing. Passing
144
+ * `timeoutMillis` routes the whole thing through `callWithTimeout`, so the
145
+ * argument — not this comment — is what bounds the meter.
146
+ * - `BasicTracerProvider.forceFlush()` accepts **no arguments**; it reads the
147
+ * constructor's `forceFlushTimeoutMillis` (default 30 000). The only way to
148
+ * bound it per call is to race it.
149
+ *
150
+ * The two bounded legs run concurrently, so the aggregate wait is also the
151
+ * budget. Deliberately there is NO extra outer race around both: an outer
152
+ * bound would return inside the budget even if one leg's own bound were
153
+ * removed, which would make the per-leg bounds untestable — and an untestable
154
+ * bound is how the previous "bounded" flush turned out to have no bound.
155
+ *
156
+ * Never throws into the shutdown path: a timeout or rejection is logged and
157
+ * teardown continues. Bounded effort, not a delivery guarantee — an exporter
158
+ * that cannot flush inside the reserve still loses its last points.
159
+ */
160
+ export async function flushTelemetry(options = {}) {
161
+ const budgetMs = options.budgetMs ?? TERMINAL_FLUSH_BUDGET_MS;
162
+ const log = options.log ?? ((message) => console.warn(message));
163
+ const tracer = tracerProvider;
164
+ const meter = meterProvider;
165
+ if (!tracer && !meter)
166
+ return;
167
+ const legs = [];
168
+ if (meter) {
169
+ legs.push(meter.forceFlush({ timeoutMillis: budgetMs }).catch((err) => {
170
+ log(`[telemetry-flush] metrics flush did not complete: ${errText(err)}`);
171
+ }));
172
+ }
173
+ if (tracer) {
174
+ let timer;
175
+ const raced = Promise.race([
176
+ tracer.forceFlush(),
177
+ new Promise((resolve) => {
178
+ timer = setTimeout(() => resolve('timeout'), budgetMs);
179
+ }),
180
+ ])
181
+ .then((outcome) => {
182
+ if (outcome === 'timeout') {
183
+ log(`[telemetry-flush] traces flush exceeded ${budgetMs}ms; continuing teardown.`);
184
+ }
185
+ })
186
+ .catch((err) => {
187
+ log(`[telemetry-flush] traces flush did not complete: ${errText(err)}`);
188
+ })
189
+ .finally(() => {
190
+ if (timer)
191
+ clearTimeout(timer);
192
+ });
193
+ legs.push(raced);
194
+ }
195
+ await Promise.all(legs);
196
+ }
197
+ function errText(err) {
198
+ return err instanceof Error ? err.message : String(err);
199
+ }
117
200
  /**
118
201
  * Flush + shut down providers. Used both at daemon teardown AND when telemetry
119
202
  * is turned off via the runtime master gate, so it must FULLY reverse
@@ -121,20 +204,27 @@ export function isTelemetryConfigured() {
121
204
  * later `initTelemetry` (live re-enable) can register fresh providers — without
122
205
  * the `disable()` calls, the API keeps the first (now shut-down) provider and a
123
206
  * re-enable would silently no-op. Safe if never initialized; idempotent.
207
+ *
208
+ * Flush and shutdown run SEQUENTIALLY per provider, and that is not tidiness.
209
+ * They used to be pushed into one array and awaited by a single `Promise.all`,
210
+ * i.e. started concurrently against the same provider — and
211
+ * `MeterProvider.forceFlush()` opens with `if (this._shutdown) { diag.warn(…);
212
+ * return; }`. Whichever call won the race decided whether the flush happened at
213
+ * all; it worked only because the synchronous `_shutdown` read happened to be
214
+ * scheduled first. Awaiting the flush before starting the shutdown removes the
215
+ * race instead of relying on scheduling order.
124
216
  */
125
217
  export async function shutdownTelemetry() {
126
218
  const hadTracer = !!tracerProvider;
127
219
  const hadMeter = !!meterProvider;
128
- const tasks = [];
129
220
  if (tracerProvider) {
130
- tasks.push(tracerProvider.forceFlush().catch(() => { }));
131
- tasks.push(tracerProvider.shutdown().catch(() => { }));
221
+ await tracerProvider.forceFlush().catch(() => { });
222
+ await tracerProvider.shutdown().catch(() => { });
132
223
  }
133
224
  if (meterProvider) {
134
- tasks.push(meterProvider.forceFlush().catch(() => { }));
135
- tasks.push(meterProvider.shutdown().catch(() => { }));
225
+ await meterProvider.forceFlush().catch(() => { });
226
+ await meterProvider.shutdown().catch(() => { });
136
227
  }
137
- await Promise.all(tasks);
138
228
  // Reset the global API so a subsequent initTelemetry() can re-register
139
229
  // (setGlobal*Provider only takes effect once until the slot is disabled).
140
230
  if (hadTracer)
@@ -1 +1 @@
1
- {"version":3,"file":"telemetry.js","sourceRoot":"","sources":["../src/telemetry.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"telemetry.js","sourceRoot":"","sources":["../src/telemetry.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;;;;;;;;;;GAuBG;AAEH,OAAO,EAAE,OAAO,IAAI,WAAW,EAAE,KAAK,IAAI,SAAS,EAAE,MAAM,oBAAoB,CAAC;AAChF,OAAO,EAAE,2BAA2B,EAA+B,MAAM,yBAAyB,CAAC;AA2CnG,6EAA6E;AAC7E,qFAAqF;AACrF,IAAI,cAAc,GAA8B,IAAI,CAAC;AACrD,IAAI,aAAa,GAAyB,IAAI,CAAC;AAE/C,+EAA+E;AAC/E,4CAA4C;AAC5C,MAAM,UAAU,GAAG,2BAA2B,CAAC;AAE/C,SAAS,WAAW,CAAC,GAAqB;IACxC,MAAM,OAAO,GAAG,EAAE,GAAG,CAAC,GAAG,CAAC,OAAO,IAAI,EAAE,CAAC,EAAE,CAAC;IAC3C,IAAI,GAAG,CAAC,KAAK;QAAE,OAAO,CAAC,eAAe,CAAC,GAAG,UAAU,GAAG,CAAC,KAAK,EAAE,CAAC;IAChE,OAAO,MAAM,CAAC,IAAI,CAAC,OAAO,CAAC,CAAC,MAAM,CAAC,CAAC,CAAC,OAAO,CAAC,CAAC,CAAC,SAAS,CAAC;AAC3D,CAAC;AAED,qFAAqF;AACrF,SAAS,mBAAmB,CAAC,KAA4C;IACvE,MAAM,MAAM,GAAG,KAAwB,CAAC;IACxC,MAAM,IAAI,GAAG,KAA4B,CAAC;IAC1C,IAAI,MAAM,CAAC,eAAe,IAAI,CAAC,IAAI,CAAC,OAAO,IAAI,CAAC,IAAI,CAAC,MAAM,EAAE,CAAC;QAC5D,OAAO;YACL,OAAO,EAAE,MAAM,CAAC,OAAO;YACvB,QAAQ,EAAE,EAAE,WAAW,EAAE,MAAM,CAAC,WAAW,EAAE;YAC7C,OAAO,EAAE,EAAE,QAAQ,EAAE,MAAM,CAAC,eAAe,EAAE;SAC9C,CAAC;IACJ,CAAC;IACD,OAAO,IAAI,CAAC;AACd,CAAC;AAED;;;;;GAKG;AACH,MAAM,CAAC,KAAK,UAAU,aAAa,CAAC,KAA4C;IAC9E,MAAM,GAAG,GAAG,mBAAmB,CAAC,KAAK,CAAC,CAAC;IACvC,IAAI,CAAC,GAAG,CAAC,OAAO;QAAE,OAAO;IAEzB,4EAA4E;IAC5E,6EAA6E;IAC7E,2EAA2E;IAC3E,MAAM,QAAQ,GAAG,CAAC,CAAC,GAAG,CAAC,MAAM,EAAE,QAAQ,IAAI,GAAG,CAAC,MAAM,CAAC,OAAO,KAAK,KAAK,IAAI,cAAc,KAAK,IAAI,CAAC;IACnG,MAAM,SAAS,GAAG,CAAC,CAAC,GAAG,CAAC,OAAO,EAAE,QAAQ,IAAI,GAAG,CAAC,OAAO,CAAC,OAAO,KAAK,KAAK,IAAI,aAAa,KAAK,IAAI,CAAC;IACrG,IAAI,CAAC,QAAQ,IAAI,CAAC,SAAS;QAAE,OAAO;IAEpC,MAAM,EAAE,sBAAsB,EAAE,GAAG,MAAM,MAAM,CAAC,0BAA0B,CAAC,CAAC;IAC5E,MAAM,QAAQ,GAAG,sBAAsB,CAAC,UAAU,CAAC,GAAG,CAAC,QAAQ,CAAC,CAAC,CAAC;IAElE,eAAe;IACf,IAAI,QAAQ,EAAE,CAAC;QACb,MAAM,EAAE,kBAAkB,EAAE,kBAAkB,EAAE,kBAAkB,EAAE,wBAAwB,EAAE,GAC5F,MAAM,MAAM,CAAC,+BAA+B,CAAC,CAAC;QAChD,MAAM,EAAE,iBAAiB,EAAE,GAAG,MAAM,MAAM,CAAC,0CAA0C,CAAC,CAAC;QACvF,MAAM,QAAQ,GAAG,IAAI,iBAAiB,CAAC;YACrC,GAAG,EAAE,GAAG,CAAC,MAAO,CAAC,QAAQ;YACzB,OAAO,EAAE,WAAW,CAAC,GAAG,CAAC,MAAO,CAAC;SAClC,CAAC,CAAC;QACH,MAAM,KAAK,GAAG,GAAG,CAAC,MAAO,CAAC,WAAW,IAAI,CAAC,CAAC;QAC3C,cAAc,GAAG,IAAI,kBAAkB,CAAC;YACtC,QAAQ;YACR,OAAO,EAAE,IAAI,kBAAkB,CAAC,EAAE,IAAI,EAAE,IAAI,wBAAwB,CAAC,KAAK,CAAC,EAAE,CAAC;YAC9E,cAAc,EAAE,CAAC,IAAI,kBAAkB,CAAC,QAAQ,CAAC,CAAC;SACnD,CAAC,CAAC;QACH,wEAAwE;QACxE,gFAAgF;QAChF,cAAc,CAAC,QAAQ,EAAE,CAAC;IAC5B,CAAC;IAED,gBAAgB;IAChB,IAAI,SAAS,EAAE,CAAC;QACd,MAAM,EAAE,aAAa,EAAE,6BAA6B,EAAE,GAAG,MAAM,MAAM,CAAC,4BAA4B,CAAC,CAAC;QACpG,MAAM,EAAE,kBAAkB,EAAE,GAAG,MAAM,MAAM,CAAC,4CAA4C,CAAC,CAAC;QAC1F,MAAM,EAAE,cAAc,EAAE,GAAG,MAAM,MAAM,CAAC,gCAAgC,CAAC,CAAC;QAC1E,MAAM,QAAQ,GAAG,IAAI,kBAAkB,CAAC;YACtC,GAAG,EAAE,GAAG,CAAC,OAAQ,CAAC,QAAQ;YAC1B,OAAO,EAAE,WAAW,CAAC,GAAG,CAAC,OAAQ,CAAC;SACnC,CAAC,CAAC;QACH,aAAa,GAAG,IAAI,aAAa,CAAC;YAChC,QAAQ;YACR,OAAO,EAAE;gBACP,IAAI,6BAA6B,CAAC;oBAChC,QAAQ;oBACR,oBAAoB,EAAE,GAAG,CAAC,OAAQ,CAAC,gBAAgB,IAAI,MAAM;iBAC9D,CAAC;aACH;SACF,CAAC,CAAC;QACH,WAAW,CAAC,sBAAsB,CAAC,aAAa,CAAC,CAAC;QAClD,gEAAgE;QAChE,cAAc,EAAE,CAAC;IACnB,CAAC;AACH,CAAC;AAED,kFAAkF;AAClF,MAAM,UAAU,qBAAqB;IACnC,OAAO,cAAc,KAAK,IAAI,IAAI,aAAa,KAAK,IAAI,CAAC;AAC3D,CAAC;AAED;;;;;;GAMG;AACH,MAAM,CAAC,MAAM,wBAAwB,GAAG,KAAK,CAAC;AAE9C;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;GAkCG;AACH,MAAM,CAAC,KAAK,UAAU,cAAc,CAClC,UAAkE,EAAE;IAEpE,MAAM,QAAQ,GAAG,OAAO,CAAC,QAAQ,IAAI,wBAAwB,CAAC;IAC9D,MAAM,GAAG,GAAG,OAAO,CAAC,GAAG,IAAI,CAAC,CAAC,OAAe,EAAE,EAAE,CAAC,OAAO,CAAC,IAAI,CAAC,OAAO,CAAC,CAAC,CAAC;IACxE,MAAM,MAAM,GAAG,cAAc,CAAC;IAC9B,MAAM,KAAK,GAAG,aAAa,CAAC;IAC5B,IAAI,CAAC,MAAM,IAAI,CAAC,KAAK;QAAE,OAAO;IAE9B,MAAM,IAAI,GAAyB,EAAE,CAAC;IACtC,IAAI,KAAK,EAAE,CAAC;QACV,IAAI,CAAC,IAAI,CACP,KAAK,CAAC,UAAU,CAAC,EAAE,aAAa,EAAE,QAAQ,EAAE,CAAC,CAAC,KAAK,CAAC,CAAC,GAAY,EAAE,EAAE;YACnE,GAAG,CAAC,qDAAqD,OAAO,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC;QAC3E,CAAC,CAAC,CACH,CAAC;IACJ,CAAC;IACD,IAAI,MAAM,EAAE,CAAC;QACX,IAAI,KAAgD,CAAC;QACrD,MAAM,KAAK,GAAG,OAAO,CAAC,IAAI,CAAC;YACzB,MAAM,CAAC,UAAU,EAAE;YACnB,IAAI,OAAO,CAAY,CAAC,OAAO,EAAE,EAAE;gBACjC,KAAK,GAAG,UAAU,CAAC,GAAG,EAAE,CAAC,OAAO,CAAC,SAAS,CAAC,EAAE,QAAQ,CAAC,CAAC;YACzD,CAAC,CAAC;SACH,CAAC;aACC,IAAI,CAAC,CAAC,OAAO,EAAE,EAAE;YAChB,IAAI,OAAO,KAAK,SAAS,EAAE,CAAC;gBAC1B,GAAG,CAAC,2CAA2C,QAAQ,0BAA0B,CAAC,CAAC;YACrF,CAAC;QACH,CAAC,CAAC;aACD,KAAK,CAAC,CAAC,GAAY,EAAE,EAAE;YACtB,GAAG,CAAC,oDAAoD,OAAO,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC;QAC1E,CAAC,CAAC;aACD,OAAO,CAAC,GAAG,EAAE;YACZ,IAAI,KAAK;gBAAE,YAAY,CAAC,KAAK,CAAC,CAAC;QACjC,CAAC,CAAC,CAAC;QACL,IAAI,CAAC,IAAI,CAAC,KAAK,CAAC,CAAC;IACnB,CAAC;IACD,MAAM,OAAO,CAAC,GAAG,CAAC,IAAI,CAAC,CAAC;AAC1B,CAAC;AAED,SAAS,OAAO,CAAC,GAAY;IAC3B,OAAO,GAAG,YAAY,KAAK,CAAC,CAAC,CAAC,GAAG,CAAC,OAAO,CAAC,CAAC,CAAC,MAAM,CAAC,GAAG,CAAC,CAAC;AAC1D,CAAC;AAED;;;;;;;;;;;;;;;;GAgBG;AACH,MAAM,CAAC,KAAK,UAAU,iBAAiB;IACrC,MAAM,SAAS,GAAG,CAAC,CAAC,cAAc,CAAC;IACnC,MAAM,QAAQ,GAAG,CAAC,CAAC,aAAa,CAAC;IACjC,IAAI,cAAc,EAAE,CAAC;QACnB,MAAM,cAAc,CAAC,UAAU,EAAE,CAAC,KAAK,CAAC,GAAG,EAAE,GAAE,CAAC,CAAC,CAAC;QAClD,MAAM,cAAc,CAAC,QAAQ,EAAE,CAAC,KAAK,CAAC,GAAG,EAAE,GAAE,CAAC,CAAC,CAAC;IAClD,CAAC;IACD,IAAI,aAAa,EAAE,CAAC;QAClB,MAAM,aAAa,CAAC,UAAU,EAAE,CAAC,KAAK,CAAC,GAAG,EAAE,GAAE,CAAC,CAAC,CAAC;QACjD,MAAM,aAAa,CAAC,QAAQ,EAAE,CAAC,KAAK,CAAC,GAAG,EAAE,GAAE,CAAC,CAAC,CAAC;IACjD,CAAC;IACD,uEAAuE;IACvE,0EAA0E;IAC1E,IAAI,SAAS;QAAE,SAAS,CAAC,OAAO,EAAE,CAAC;IACnC,IAAI,QAAQ,EAAE,CAAC;QACb,WAAW,CAAC,OAAO,EAAE,CAAC;QACtB,uEAAuE;QACvE,4EAA4E;QAC5E,MAAM,EAAE,cAAc,EAAE,GAAG,MAAM,MAAM,CAAC,gCAAgC,CAAC,CAAC;QAC1E,cAAc,EAAE,CAAC;IACnB,CAAC;IACD,cAAc,GAAG,IAAI,CAAC;IACtB,aAAa,GAAG,IAAI,CAAC;AACvB,CAAC;AAED;;;;GAIG;AACH,MAAM,UAAU,WAAW,CAAC,KAAa,EAAE,MAAc;IACvD,gEAAgE;AAClE,CAAC;AAED;;;;GAIG;AACH,MAAM,UAAU,gBAAgB,CAAC,YAAoB,EAAE,cAAsB;IAC3E,4DAA4D;AAC9D,CAAC"}
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@origintrail-official/dkg-node-ui",
3
- "version": "10.0.11",
3
+ "version": "10.0.12",
4
4
  "type": "module",
5
5
  "main": "dist/index.js",
6
6
  "types": "dist/index.d.ts",
@@ -25,8 +25,8 @@
25
25
  "viem": "^2.53.1",
26
26
  "zod": "^3.25.76",
27
27
  "zustand": "^5.0.12",
28
- "@origintrail-official/dkg-graph-viz": "10.0.11",
29
- "@origintrail-official/dkg-core": "10.0.11"
28
+ "@origintrail-official/dkg-core": "10.0.12",
29
+ "@origintrail-official/dkg-graph-viz": "10.0.12"
30
30
  },
31
31
  "devDependencies": {
32
32
  "@playwright/test": "^1.59.1",