@adonis-agora/telescope 0.5.1 → 0.6.0
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/CHANGELOG.md +6 -0
- package/dist/providers/telescope_alerts_provider.d.ts.map +1 -1
- package/dist/providers/telescope_alerts_provider.js +1 -1
- package/dist/providers/telescope_alerts_provider.js.map +1 -1
- package/dist/providers/telescope_mcp_provider.d.ts.map +1 -1
- package/dist/providers/telescope_mcp_provider.js +1 -1
- package/dist/providers/telescope_mcp_provider.js.map +1 -1
- package/dist/providers/telescope_provider.d.ts.map +1 -1
- package/dist/providers/telescope_provider.js +9 -3
- package/dist/providers/telescope_provider.js.map +1 -1
- package/dist/src/ai/index.d.ts +1 -1
- package/dist/src/ai/index.js +1 -1
- package/dist/src/alerts/alert_rule.d.ts +84 -3
- package/dist/src/alerts/alert_rule.d.ts.map +1 -1
- package/dist/src/alerts/alerter.d.ts +24 -2
- package/dist/src/alerts/alerter.d.ts.map +1 -1
- package/dist/src/alerts/alerter.js +122 -11
- package/dist/src/alerts/alerter.js.map +1 -1
- package/dist/src/alerts/define_config.d.ts +9 -1
- package/dist/src/alerts/define_config.d.ts.map +1 -1
- package/dist/src/alerts/define_config.js +8 -0
- package/dist/src/alerts/define_config.js.map +1 -1
- package/dist/src/alerts/exception_source.d.ts +16 -7
- package/dist/src/alerts/exception_source.d.ts.map +1 -1
- package/dist/src/alerts/exception_source.js +29 -17
- package/dist/src/alerts/exception_source.js.map +1 -1
- package/dist/src/alerts/index.d.ts +2 -2
- package/dist/src/alerts/index.d.ts.map +1 -1
- package/dist/src/alerts/index.js +1 -1
- package/dist/src/alerts/index.js.map +1 -1
- package/dist/src/alerts/slack_format.d.ts +8 -0
- package/dist/src/alerts/slack_format.d.ts.map +1 -1
- package/dist/src/alerts/slack_format.js +128 -3
- package/dist/src/alerts/slack_format.js.map +1 -1
- package/dist/src/client_errors/ingestor.d.ts.map +1 -1
- package/dist/src/client_errors/ingestor.js +20 -1
- package/dist/src/client_errors/ingestor.js.map +1 -1
- package/dist/src/client_errors/validation.d.ts.map +1 -1
- package/dist/src/client_errors/validation.js +7 -2
- package/dist/src/client_errors/validation.js.map +1 -1
- package/dist/src/define_config.d.ts +51 -0
- package/dist/src/define_config.d.ts.map +1 -1
- package/dist/src/define_config.js +6 -0
- package/dist/src/define_config.js.map +1 -1
- package/dist/src/diagnostics_registry.d.ts +15 -0
- package/dist/src/diagnostics_registry.d.ts.map +1 -1
- package/dist/src/diagnostics_registry.js +19 -0
- package/dist/src/diagnostics_registry.js.map +1 -1
- package/dist/src/diagnostics_watcher.d.ts +28 -1
- package/dist/src/diagnostics_watcher.d.ts.map +1 -1
- package/dist/src/diagnostics_watcher.js +17 -2
- package/dist/src/diagnostics_watcher.js.map +1 -1
- package/dist/src/extension/types.d.ts +35 -2
- package/dist/src/extension/types.d.ts.map +1 -1
- package/dist/src/extension/types.js.map +1 -1
- package/dist/src/index.d.ts +7 -7
- package/dist/src/index.d.ts.map +1 -1
- package/dist/src/index.js +3 -3
- package/dist/src/index.js.map +1 -1
- package/dist/src/mcp/index.d.ts +1 -1
- package/dist/src/mcp/index.js +1 -1
- package/dist/src/mcp/server.d.ts.map +1 -1
- package/dist/src/mcp/server.js +7 -2
- package/dist/src/mcp/server.js.map +1 -1
- package/dist/src/metrics/waterfall.d.ts.map +1 -1
- package/dist/src/metrics/waterfall.js +6 -0
- package/dist/src/metrics/waterfall.js.map +1 -1
- package/dist/src/redaction/redact.d.ts +21 -0
- package/dist/src/redaction/redact.d.ts.map +1 -1
- package/dist/src/redaction/redact.js +18 -0
- package/dist/src/redaction/redact.js.map +1 -1
- package/dist/src/redaction/redacting_store.d.ts.map +1 -1
- package/dist/src/redaction/redacting_store.js +10 -1
- package/dist/src/redaction/redacting_store.js.map +1 -1
- package/dist/src/registry.d.ts +8 -1
- package/dist/src/registry.d.ts.map +1 -1
- package/dist/src/registry.js +4 -1
- package/dist/src/registry.js.map +1 -1
- package/dist/src/request_watcher.d.ts +68 -0
- package/dist/src/request_watcher.d.ts.map +1 -1
- package/dist/src/request_watcher.js +101 -0
- package/dist/src/request_watcher.js.map +1 -1
- package/dist/src/service.d.ts.map +1 -1
- package/dist/src/service.js.map +1 -1
- package/dist/src/stores/lucid.d.ts +8 -0
- package/dist/src/stores/lucid.d.ts.map +1 -1
- package/dist/src/stores/lucid.js +21 -2
- package/dist/src/stores/lucid.js.map +1 -1
- package/dist/src/telescope_middleware.d.ts.map +1 -1
- package/dist/src/telescope_middleware.js +5 -1
- package/dist/src/telescope_middleware.js.map +1 -1
- package/dist/src/ui/dashboard.html +58 -10
- package/dist/src/ui/ext_table.d.ts +50 -0
- package/dist/src/ui/ext_table.d.ts.map +1 -0
- package/dist/src/ui/ext_table.js +42 -0
- package/dist/src/ui/ext_table.js.map +1 -0
- package/dist/src/ui/index.d.ts +3 -1
- package/dist/src/ui/index.d.ts.map +1 -1
- package/dist/src/ui/index.js +3 -1
- package/dist/src/ui/index.js.map +1 -1
- package/dist/src/watchers/index.d.ts +1 -1
- package/dist/src/watchers/index.js +1 -1
- package/dist/src/watchers/schedule_watcher.d.ts.map +1 -1
- package/dist/src/watchers/schedule_watcher.js +6 -1
- package/dist/src/watchers/schedule_watcher.js.map +1 -1
- package/package.json +1 -1
|
@@ -1,6 +1,8 @@
|
|
|
1
1
|
import { type ClientErrorsConfig, type ResolvedClientErrorsConfig } from './client_errors/config.js';
|
|
2
2
|
import type { TelescopeExtension } from './extension/types.js';
|
|
3
3
|
import { type PulseCardName } from './metrics/pulse.js';
|
|
4
|
+
import type { RedactBounds } from './redaction/redact.js';
|
|
5
|
+
import type { RequestCaptureOptions } from './request_watcher.js';
|
|
4
6
|
import { type SamplingConfig } from './sampling/sampling.js';
|
|
5
7
|
import type { TelescopeStore } from './store.js';
|
|
6
8
|
import { type StoreProvider, storage } from './stores/factory.js';
|
|
@@ -21,6 +23,15 @@ export interface RedactConfig {
|
|
|
21
23
|
* Matched case-insensitively at any depth.
|
|
22
24
|
*/
|
|
23
25
|
keys?: string[];
|
|
26
|
+
/**
|
|
27
|
+
* Per-entry-type overrides of the NUMERIC redaction bounds (e.g. a bigger
|
|
28
|
+
* `maxContentBytes` for `exception`/`client_exception`, whose stacks are
|
|
29
|
+
* legitimately many KB), keyed by entry `type`. Lets rare high-value entries
|
|
30
|
+
* carry a larger budget without loosening the global OOM guard on high-volume
|
|
31
|
+
* request/query/cache entries. Masking (`keys`) stays global. See
|
|
32
|
+
* {@link RedactBounds}.
|
|
33
|
+
*/
|
|
34
|
+
perType?: Record<string, RedactBounds>;
|
|
24
35
|
}
|
|
25
36
|
/** The set of watchers this headless slice ships. */
|
|
26
37
|
export type WatcherName = 'request' | 'diagnostics';
|
|
@@ -62,6 +73,20 @@ export interface TelescopeConfig {
|
|
|
62
73
|
* (`request` + `diagnostics`).
|
|
63
74
|
*/
|
|
64
75
|
watchers?: WatcherName[];
|
|
76
|
+
/**
|
|
77
|
+
* Fine-tunes the generic `diagnostics` watcher (only meaningful while it is
|
|
78
|
+
* active). Mute noisy channels via {@link DiagnosticsConfig.exclude}. Defaults
|
|
79
|
+
* are all-off (record every diagnostics event).
|
|
80
|
+
*/
|
|
81
|
+
diagnostics?: DiagnosticsConfig;
|
|
82
|
+
/**
|
|
83
|
+
* Opt-in request BODY capture, gated so a huge or binary body is never walked
|
|
84
|
+
* by the synchronous redaction pass. When set (even to `{}` for defaults), the
|
|
85
|
+
* request watcher captures the body through content-type / size / predicate
|
|
86
|
+
* gates; a gated-out body becomes a marker string. OFF by default (no `body`
|
|
87
|
+
* field on request entries). See {@link RequestCaptureOptions}.
|
|
88
|
+
*/
|
|
89
|
+
requestCapture?: RequestCaptureOptions;
|
|
65
90
|
/**
|
|
66
91
|
* Extensions contributed by sibling libs (e.g. `@adonis-agora/durable-telescope`) — each adds navigable
|
|
67
92
|
* entry types, dashboard pages, and the data providers those pages bind to. Default none.
|
|
@@ -137,6 +162,24 @@ export interface TelescopeConfig {
|
|
|
137
162
|
*/
|
|
138
163
|
clientErrors?: ClientErrorsConfig;
|
|
139
164
|
}
|
|
165
|
+
/** Diagnostics-watcher configuration (see {@link TelescopeConfig.diagnostics}). */
|
|
166
|
+
export interface DiagnosticsConfig {
|
|
167
|
+
/**
|
|
168
|
+
* `lib:event` keys to skip recording — the exact label the "Busiest events"
|
|
169
|
+
* panel shows (e.g. `'media:upload.progress'`). Mute high-frequency channels
|
|
170
|
+
* that would otherwise flood the timeline; the events stay live on their
|
|
171
|
+
* diagnostics channel for other subscribers (OTel, custom watchers). Default `[]`.
|
|
172
|
+
*/
|
|
173
|
+
exclude?: string[];
|
|
174
|
+
/**
|
|
175
|
+
* Record events whose `lib:event` key is claimed by a lib-specific watcher
|
|
176
|
+
* (via `@adonis-agora/diagnostics`'s `claimDiagnostics`), instead of skipping
|
|
177
|
+
* them by default. Default `false` — a claimed event is already recorded as a
|
|
178
|
+
* typed entry by the claiming lib, so recording it again here would duplicate
|
|
179
|
+
* it. `exclude` still mutes noisy events regardless of claim status.
|
|
180
|
+
*/
|
|
181
|
+
recordClaimed?: boolean;
|
|
182
|
+
}
|
|
140
183
|
/** Background-pruner configuration (see {@link TelescopeConfig.prune}). */
|
|
141
184
|
export interface PruneConfig {
|
|
142
185
|
/**
|
|
@@ -210,10 +253,18 @@ export interface ResolvedTelescopeConfig {
|
|
|
210
253
|
stores: Record<string, StoreProvider>;
|
|
211
254
|
maxEntries: number;
|
|
212
255
|
watchers: Set<WatcherName>;
|
|
256
|
+
/** Resolved diagnostics-watcher settings (always present; defaults record everything). */
|
|
257
|
+
diagnostics: {
|
|
258
|
+
exclude: string[];
|
|
259
|
+
recordClaimed: boolean;
|
|
260
|
+
};
|
|
261
|
+
/** Opt-in request body-capture gates, or `null` when body capture is off (default). */
|
|
262
|
+
requestCapture: RequestCaptureOptions | null;
|
|
213
263
|
extensions: TelescopeExtension[];
|
|
214
264
|
redact: {
|
|
215
265
|
enabled: boolean;
|
|
216
266
|
keys: string[];
|
|
267
|
+
perType: Record<string, RedactBounds>;
|
|
217
268
|
};
|
|
218
269
|
/** Normalized per-type sampling config; empty `{}` means record everything. */
|
|
219
270
|
sampling: SamplingConfig;
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"define_config.d.ts","sourceRoot":"","sources":["../../src/define_config.ts"],"names":[],"mappings":"AACA,OAAO,EACL,KAAK,kBAAkB,EACvB,KAAK,0BAA0B,EAEhC,MAAM,2BAA2B,CAAC;AACnC,OAAO,KAAK,EAAE,kBAAkB,EAAE,MAAM,sBAAsB,CAAC;AAC/D,OAAO,EAAe,KAAK,aAAa,EAAE,MAAM,oBAAoB,CAAC;AACrE,OAAO,EAAE,KAAK,cAAc,EAAmB,MAAM,wBAAwB,CAAC;AAC9E,OAAO,KAAK,EAAE,cAAc,EAAE,MAAM,YAAY,CAAC;AACjD,OAAO,EAAE,KAAK,aAAa,EAAE,OAAO,EAAE,MAAM,qBAAqB,CAAC;AAWlE;;;;GAIG;AACH,MAAM,WAAW,YAAY;IAC3B;;;OAGG;IACH,OAAO,CAAC,EAAE,OAAO,CAAC;IAClB;;;;OAIG;IACH,IAAI,CAAC,EAAE,MAAM,EAAE,CAAC;
|
|
1
|
+
{"version":3,"file":"define_config.d.ts","sourceRoot":"","sources":["../../src/define_config.ts"],"names":[],"mappings":"AACA,OAAO,EACL,KAAK,kBAAkB,EACvB,KAAK,0BAA0B,EAEhC,MAAM,2BAA2B,CAAC;AACnC,OAAO,KAAK,EAAE,kBAAkB,EAAE,MAAM,sBAAsB,CAAC;AAC/D,OAAO,EAAe,KAAK,aAAa,EAAE,MAAM,oBAAoB,CAAC;AACrE,OAAO,KAAK,EAAE,YAAY,EAAE,MAAM,uBAAuB,CAAC;AAC1D,OAAO,KAAK,EAAE,qBAAqB,EAAE,MAAM,sBAAsB,CAAC;AAClE,OAAO,EAAE,KAAK,cAAc,EAAmB,MAAM,wBAAwB,CAAC;AAC9E,OAAO,KAAK,EAAE,cAAc,EAAE,MAAM,YAAY,CAAC;AACjD,OAAO,EAAE,KAAK,aAAa,EAAE,OAAO,EAAE,MAAM,qBAAqB,CAAC;AAWlE;;;;GAIG;AACH,MAAM,WAAW,YAAY;IAC3B;;;OAGG;IACH,OAAO,CAAC,EAAE,OAAO,CAAC;IAClB;;;;OAIG;IACH,IAAI,CAAC,EAAE,MAAM,EAAE,CAAC;IAChB;;;;;;;OAOG;IACH,OAAO,CAAC,EAAE,MAAM,CAAC,MAAM,EAAE,YAAY,CAAC,CAAC;CACxC;AAED,qDAAqD;AACrD,MAAM,MAAM,WAAW,GAAG,SAAS,GAAG,aAAa,CAAC;AAEpD;;;GAGG;AACH,MAAM,WAAW,eAAe;IAC9B;;;OAGG;IACH,OAAO,CAAC,EAAE,OAAO,CAAC;IAElB;;;;;;;;;OASG;IACH,KAAK,CAAC,EAAE,MAAM,GAAG,cAAc,CAAC;IAEhC;;;;OAIG;IACH,MAAM,CAAC,EAAE,MAAM,CAAC,MAAM,EAAE,aAAa,CAAC,CAAC;IAEvC;;;;OAIG;IACH,UAAU,CAAC,EAAE,MAAM,CAAC;IAEpB;;;OAGG;IACH,QAAQ,CAAC,EAAE,WAAW,EAAE,CAAC;IAEzB;;;;OAIG;IACH,WAAW,CAAC,EAAE,iBAAiB,CAAC;IAEhC;;;;;;OAMG;IACH,cAAc,CAAC,EAAE,qBAAqB,CAAC;IAEvC;;;OAGG;IACH,UAAU,CAAC,EAAE,kBAAkB,EAAE,CAAC;IAElC;;;;;OAKG;IACH,MAAM,CAAC,EAAE,YAAY,CAAC;IAEtB;;;;;;;;;;OAUG;IACH,QAAQ,CAAC,EAAE,MAAM,GAAG,cAAc,CAAC;IAEnC;;;;OAIG;IACH,QAAQ,CAAC,EAAE,cAAc,CAAC;IAE1B;;;;;;;OAOG;IACH,KAAK,CAAC,EAAE,WAAW,CAAC;IAEpB;;;;;;OAMG;IACH,MAAM,CAAC,EAAE,YAAY,CAAC;IAEtB;;;;;;;OAOG;IACH,KAAK,CAAC,EAAE,WAAW,CAAC;IAEpB;;;;;;OAMG;IACH,QAAQ,CAAC,EAAE,cAAc,CAAC;IAE1B;;;;;;;;OAQG;IACH,YAAY,CAAC,EAAE,kBAAkB,CAAC;CACnC;AAED,mFAAmF;AACnF,MAAM,WAAW,iBAAiB;IAChC;;;;;OAKG;IACH,OAAO,CAAC,EAAE,MAAM,EAAE,CAAC;IACnB;;;;;;OAMG;IACH,aAAa,CAAC,EAAE,OAAO,CAAC;CACzB;AAED,2EAA2E;AAC3E,MAAM,WAAW,WAAW;IAC1B;;;;OAIG;IACH,OAAO,CAAC,EAAE,OAAO,CAAC;IAClB;;;;OAIG;IACH,KAAK,CAAC,EAAE,MAAM,GAAG,MAAM,CAAC;IACxB;;;;OAIG;IACH,QAAQ,CAAC,EAAE,MAAM,CAAC;IAClB,oEAAoE;IACpE,UAAU,CAAC,EAAE,MAAM,CAAC;CACrB;AAED,2EAA2E;AAC3E,MAAM,WAAW,cAAc;IAC7B,6DAA6D;IAC7D,OAAO,CAAC,EAAE,OAAO,CAAC;IAClB,6EAA6E;IAC7E,iBAAiB,CAAC,EAAE,MAAM,CAAC;IAC3B;;;;OAIG;IACH,cAAc,CAAC,EAAE,MAAM,CAAC;CACzB;AAED,0EAA0E;AAC1E,MAAM,WAAW,cAAc;IAC7B,uDAAuD;IACvD,OAAO,CAAC,EAAE,OAAO,CAAC;IAClB,0FAA0F;IAC1F,SAAS,CAAC,EAAE,MAAM,CAAC;CACpB;AAED,sEAAsE;AACtE,MAAM,WAAW,WAAW;IAC1B,sEAAsE;IACtE,OAAO,CAAC,EAAE,OAAO,CAAC;IAClB,+EAA+E;IAC/E,QAAQ,CAAC,EAAE,MAAM,CAAC;IAClB,wDAAwD;IACxD,IAAI,CAAC,EAAE,MAAM,CAAC;IACd,2DAA2D;IAC3D,OAAO,CAAC,EAAE,MAAM,CAAC;IACjB,yFAAyF;IACzF,WAAW,CAAC,EAAE,MAAM,CAAC;IACrB;;;OAGG;IACH,KAAK,CAAC,EAAE,aAAa,EAAE,CAAC;CACzB;AAED,sEAAsE;AACtE,MAAM,WAAW,YAAY;IAC3B,wEAAwE;IACxE,OAAO,CAAC,EAAE,OAAO,CAAC;CACnB;AAED,qEAAqE;AACrE,MAAM,WAAW,uBAAuB;IACtC,OAAO,EAAE,OAAO,CAAC;IACjB,KAAK,EAAE,MAAM,GAAG,cAAc,CAAC;IAC/B,MAAM,EAAE,MAAM,CAAC,MAAM,EAAE,aAAa,CAAC,CAAC;IACtC,UAAU,EAAE,MAAM,CAAC;IACnB,QAAQ,EAAE,GAAG,CAAC,WAAW,CAAC,CAAC;IAC3B,0FAA0F;IAC1F,WAAW,EAAE;QAAE,OAAO,EAAE,MAAM,EAAE,CAAC;QAAC,aAAa,EAAE,OAAO,CAAA;KAAE,CAAC;IAC3D,uFAAuF;IACvF,cAAc,EAAE,qBAAqB,GAAG,IAAI,CAAC;IAC7C,UAAU,EAAE,kBAAkB,EAAE,CAAC;IACjC,MAAM,EAAE;QAAE,OAAO,EAAE,OAAO,CAAC;QAAC,IAAI,EAAE,MAAM,EAAE,CAAC;QAAC,OAAO,EAAE,MAAM,CAAC,MAAM,EAAE,YAAY,CAAC,CAAA;KAAE,CAAC;IACpF,+EAA+E;IAC/E,QAAQ,EAAE,cAAc,CAAC;IACzB,uCAAuC;IACvC,QAAQ,EAAE;QAAE,OAAO,EAAE,OAAO,CAAC;QAAC,SAAS,EAAE,MAAM,CAAA;KAAE,CAAC;IAClD,sCAAsC;IACtC,KAAK,EAAE;QACL,OAAO,EAAE,OAAO,CAAC;QACjB,QAAQ,EAAE,MAAM,CAAC;QACjB,IAAI,EAAE,MAAM,CAAC;QACb,OAAO,EAAE,MAAM,CAAC;QAChB,WAAW,EAAE,MAAM,CAAC;QACpB,KAAK,EAAE,aAAa,EAAE,CAAC;KACxB,CAAC;IACF,qCAAqC;IACrC,MAAM,EAAE;QAAE,OAAO,EAAE,OAAO,CAAA;KAAE,CAAC;IAC7B;;;;OAIG;IACH,KAAK,EAAE;QACL,OAAO,EAAE,OAAO,CAAC;QACjB,OAAO,EAAE,MAAM,CAAC;QAChB,QAAQ,CAAC,EAAE,MAAM,CAAC;QAClB,UAAU,EAAE,MAAM,CAAC;KACpB,CAAC;IACF,oFAAoF;IACpF,QAAQ,EAAE;QACR,OAAO,EAAE,OAAO,CAAC;QACjB,iBAAiB,EAAE,MAAM,CAAC;QAC1B,cAAc,EAAE,MAAM,CAAC;KACxB,CAAC;IACF,6FAA6F;IAC7F,YAAY,EAAE,0BAA0B,CAAC;CAC1C;AAED;;;;;;;;;;;;;;;GAeG;AACH,wBAAgB,YAAY,CAAC,MAAM,EAAE,eAAe,GAAG,eAAe,CAErE;AAED,qDAAqD;AACrD,wBAAgB,aAAa,CAAC,MAAM,GAAE,eAAoB,GAAG,uBAAuB,CA2CnF;AAkBD,OAAO,EAAE,OAAO,EAAE,CAAC;AACnB,YAAY,EACV,gBAAgB,EAChB,iBAAiB,EACjB,YAAY,EACZ,aAAa,GACd,MAAM,qBAAqB,CAAC"}
|
|
@@ -39,10 +39,16 @@ export function resolveConfig(config = {}) {
|
|
|
39
39
|
stores: config.stores ?? {},
|
|
40
40
|
maxEntries: config.maxEntries ?? 1000,
|
|
41
41
|
watchers: new Set(watchers),
|
|
42
|
+
diagnostics: {
|
|
43
|
+
exclude: config.diagnostics?.exclude ?? [],
|
|
44
|
+
recordClaimed: config.diagnostics?.recordClaimed ?? false,
|
|
45
|
+
},
|
|
46
|
+
requestCapture: config.requestCapture ?? null,
|
|
42
47
|
extensions: config.extensions ?? [],
|
|
43
48
|
redact: {
|
|
44
49
|
enabled: config.redact?.enabled ?? true,
|
|
45
50
|
keys: config.redact?.keys ?? [],
|
|
51
|
+
perType: config.redact?.perType ?? {},
|
|
46
52
|
},
|
|
47
53
|
sampling: resolveSampling(config.sampling),
|
|
48
54
|
nPlusOne: {
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"define_config.js","sourceRoot":"","sources":["../../src/define_config.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,YAAY,EAAE,MAAM,4BAA4B,CAAC;AAC1D,OAAO,EAGL,mBAAmB,GACpB,MAAM,2BAA2B,CAAC;AAEnC,OAAO,EAAE,WAAW,EAAsB,MAAM,oBAAoB,CAAC;
|
|
1
|
+
{"version":3,"file":"define_config.js","sourceRoot":"","sources":["../../src/define_config.ts"],"names":[],"mappings":"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"}
|
|
@@ -22,6 +22,21 @@ export interface DiagnosticsRegistry {
|
|
|
22
22
|
* not loaded. Returned WITHOUT creating a slot — telescope only ever reads.
|
|
23
23
|
*/
|
|
24
24
|
export declare function getDiagnosticsRegistry(): DiagnosticsRegistry | undefined;
|
|
25
|
+
/**
|
|
26
|
+
* Whether `lib:event` is CLAIMED by a lib-specific consumer — i.e. some sibling
|
|
27
|
+
* watcher (nestjs-agent's, media's) already records it as a typed entry via
|
|
28
|
+
* `@adonis-agora/diagnostics`'s `claimDiagnostics`. Read structurally, WITHOUT
|
|
29
|
+
* importing `@adonis-agora/diagnostics`: the claim registry is a plain
|
|
30
|
+
* `Map<string, number>` (`lib:event` → active claim count) on the cross-copy-stable
|
|
31
|
+
* global slot `Symbol.for('@agora/diagnostics:claims')`. A key is claimed iff the
|
|
32
|
+
* map has it. Returns `false` when the package is absent (no slot) — telescope
|
|
33
|
+
* degrades to recording everything.
|
|
34
|
+
*
|
|
35
|
+
* MUST be consulted at RECORD time (not subscribe time) so claiming stays
|
|
36
|
+
* order-independent — the claiming lib may register its claim before or after the
|
|
37
|
+
* generic watcher started, and a released claim must un-skip the event again.
|
|
38
|
+
*/
|
|
39
|
+
export declare function isDiagnosticClaimed(lib: string, event: string): boolean;
|
|
25
40
|
/**
|
|
26
41
|
* The envelope `@adonis-agora/diagnostics` publishes on each channel. Defined LOCALLY
|
|
27
42
|
* (mirrors `DiagnosticEvent`) so telescope validates it structurally without an
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"diagnostics_registry.d.ts","sourceRoot":"","sources":["../../src/diagnostics_registry.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;GAWG;AAEH,mFAAmF;AACnF,MAAM,WAAW,mBAAmB;IAClC,4CAA4C;IAC5C,QAAQ,EAAE,GAAG,CAAC,MAAM,CAAC,CAAC;IACtB,iEAAiE;IACjE,SAAS,EAAE,GAAG,CAAC,CAAC,IAAI,EAAE,MAAM,KAAK,IAAI,CAAC,CAAC;CACxC;
|
|
1
|
+
{"version":3,"file":"diagnostics_registry.d.ts","sourceRoot":"","sources":["../../src/diagnostics_registry.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;GAWG;AAEH,mFAAmF;AACnF,MAAM,WAAW,mBAAmB;IAClC,4CAA4C;IAC5C,QAAQ,EAAE,GAAG,CAAC,MAAM,CAAC,CAAC;IACtB,iEAAiE;IACjE,SAAS,EAAE,GAAG,CAAC,CAAC,IAAI,EAAE,MAAM,KAAK,IAAI,CAAC,CAAC;CACxC;AAKD;;;GAGG;AACH,wBAAgB,sBAAsB,IAAI,mBAAmB,GAAG,SAAS,CAExE;AAED;;;;;;;;;;;;;GAaG;AACH,wBAAgB,mBAAmB,CAAC,GAAG,EAAE,MAAM,EAAE,KAAK,EAAE,MAAM,GAAG,OAAO,CAKvE;AAED;;;;GAIG;AACH,MAAM,WAAW,eAAe,CAAC,QAAQ,GAAG,OAAO;IACjD,gFAAgF;IAChF,CAAC,CAAC,EAAE,MAAM,CAAC;IACX,wDAAwD;IACxD,EAAE,EAAE,MAAM,CAAC;IACX,8CAA8C;IAC9C,GAAG,EAAE,MAAM,CAAC;IACZ,4DAA4D;IAC5D,KAAK,EAAE,MAAM,CAAC;IACd,+DAA+D;IAC/D,OAAO,CAAC,EAAE,MAAM,CAAC;IACjB,mCAAmC;IACnC,OAAO,EAAE,QAAQ,CAAC;CACnB;AAED,8DAA8D;AAC9D,wBAAgB,iBAAiB,CAAC,GAAG,EAAE,OAAO,GAAG,GAAG,IAAI,eAAe,CAYtE"}
|
|
@@ -11,6 +11,7 @@
|
|
|
11
11
|
* `node:diagnostics_channel` (which needs no import of the Agora package).
|
|
12
12
|
*/
|
|
13
13
|
const REGISTRY_KEY = Symbol.for('@agora/diagnostics:registry');
|
|
14
|
+
const CLAIMS_KEY = Symbol.for('@agora/diagnostics:claims');
|
|
14
15
|
/**
|
|
15
16
|
* The registry `@adonis-agora/diagnostics` published, or `undefined` when the package is
|
|
16
17
|
* not loaded. Returned WITHOUT creating a slot — telescope only ever reads.
|
|
@@ -18,6 +19,24 @@ const REGISTRY_KEY = Symbol.for('@agora/diagnostics:registry');
|
|
|
18
19
|
export function getDiagnosticsRegistry() {
|
|
19
20
|
return globalThis[REGISTRY_KEY];
|
|
20
21
|
}
|
|
22
|
+
/**
|
|
23
|
+
* Whether `lib:event` is CLAIMED by a lib-specific consumer — i.e. some sibling
|
|
24
|
+
* watcher (nestjs-agent's, media's) already records it as a typed entry via
|
|
25
|
+
* `@adonis-agora/diagnostics`'s `claimDiagnostics`. Read structurally, WITHOUT
|
|
26
|
+
* importing `@adonis-agora/diagnostics`: the claim registry is a plain
|
|
27
|
+
* `Map<string, number>` (`lib:event` → active claim count) on the cross-copy-stable
|
|
28
|
+
* global slot `Symbol.for('@agora/diagnostics:claims')`. A key is claimed iff the
|
|
29
|
+
* map has it. Returns `false` when the package is absent (no slot) — telescope
|
|
30
|
+
* degrades to recording everything.
|
|
31
|
+
*
|
|
32
|
+
* MUST be consulted at RECORD time (not subscribe time) so claiming stays
|
|
33
|
+
* order-independent — the claiming lib may register its claim before or after the
|
|
34
|
+
* generic watcher started, and a released claim must un-skip the event again.
|
|
35
|
+
*/
|
|
36
|
+
export function isDiagnosticClaimed(lib, event) {
|
|
37
|
+
const claims = globalThis[CLAIMS_KEY];
|
|
38
|
+
return claims?.has(`${lib}:${event}`) ?? false;
|
|
39
|
+
}
|
|
21
40
|
/** Strict structural validation of a diagnostics envelope. */
|
|
22
41
|
export function isDiagnosticEvent(msg) {
|
|
23
42
|
if (typeof msg !== 'object' || msg === null)
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"diagnostics_registry.js","sourceRoot":"","sources":["../../src/diagnostics_registry.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;GAWG;AAUH,MAAM,YAAY,GAAG,MAAM,CAAC,GAAG,CAAC,6BAA6B,CAAC,CAAC;
|
|
1
|
+
{"version":3,"file":"diagnostics_registry.js","sourceRoot":"","sources":["../../src/diagnostics_registry.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;GAWG;AAUH,MAAM,YAAY,GAAG,MAAM,CAAC,GAAG,CAAC,6BAA6B,CAAC,CAAC;AAC/D,MAAM,UAAU,GAAG,MAAM,CAAC,GAAG,CAAC,2BAA2B,CAAC,CAAC;AAE3D;;;GAGG;AACH,MAAM,UAAU,sBAAsB;IACpC,OAAQ,UAAsC,CAAC,YAAY,CAAoC,CAAC;AAClG,CAAC;AAED;;;;;;;;;;;;;GAaG;AACH,MAAM,UAAU,mBAAmB,CAAC,GAAW,EAAE,KAAa;IAC5D,MAAM,MAAM,GAAI,UAAsC,CAAC,UAAU,CAEpD,CAAC;IACd,OAAO,MAAM,EAAE,GAAG,CAAC,GAAG,GAAG,IAAI,KAAK,EAAE,CAAC,IAAI,KAAK,CAAC;AACjD,CAAC;AAsBD,8DAA8D;AAC9D,MAAM,UAAU,iBAAiB,CAAC,GAAY;IAC5C,IAAI,OAAO,GAAG,KAAK,QAAQ,IAAI,GAAG,KAAK,IAAI;QAAE,OAAO,KAAK,CAAC;IAC1D,MAAM,CAAC,GAAG,GAA8B,CAAC;IACzC,OAAO,CACL,OAAO,CAAC,CAAC,EAAE,KAAK,QAAQ;QACxB,OAAO,CAAC,CAAC,GAAG,KAAK,QAAQ;QACzB,OAAO,CAAC,CAAC,KAAK,KAAK,QAAQ;QAC3B,SAAS,IAAI,CAAC;QACd,CAAC,CAAC,CAAC,OAAO,KAAK,SAAS,IAAI,OAAO,CAAC,CAAC,OAAO,KAAK,QAAQ,CAAC;QAC1D,8EAA8E;QAC9E,CAAC,CAAC,CAAC,CAAC,KAAK,SAAS,IAAI,OAAO,CAAC,CAAC,CAAC,KAAK,QAAQ,CAAC,CAC/C,CAAC;AACJ,CAAC"}
|
|
@@ -3,6 +3,29 @@ import { type RecordInput } from './entry.js';
|
|
|
3
3
|
import type { TelescopeStore } from './store.js';
|
|
4
4
|
/** Telescope entry `type` produced by this watcher. */
|
|
5
5
|
export declare const DIAGNOSTIC_ENTRY_TYPE: "diagnostic";
|
|
6
|
+
/** Construction options for {@link DiagnosticsWatcher}. */
|
|
7
|
+
export interface DiagnosticsWatcherOptions {
|
|
8
|
+
/**
|
|
9
|
+
* `lib:event` keys to skip recording — the exact label the "Busiest events"
|
|
10
|
+
* dashboard panel shows (e.g. `'media:upload.progress'`). High-frequency
|
|
11
|
+
* channels can flood the timeline; muting one here drops only its Telescope
|
|
12
|
+
* entries. The event still publishes on its diagnostics channel, so other
|
|
13
|
+
* subscribers (OTel, custom watchers) keep seeing it.
|
|
14
|
+
*/
|
|
15
|
+
exclude?: readonly string[];
|
|
16
|
+
/**
|
|
17
|
+
* Record events whose `lib:event` key is CLAIMED by a lib-specific watcher —
|
|
18
|
+
* e.g. a sibling lib's own Telescope watcher, via `claimDiagnostics` from
|
|
19
|
+
* `@adonis-agora/diagnostics`. Default `false`: claimed keys are skipped here
|
|
20
|
+
* because the claiming lib already records them as a typed entry, and recording
|
|
21
|
+
* them again would duplicate every such event (once typed, once as a generic
|
|
22
|
+
* `diagnostic` entry). Set `true` to record everything regardless of claims,
|
|
23
|
+
* e.g. to see the raw feed alongside the typed one while debugging. Independent
|
|
24
|
+
* of `exclude`: `exclude` mutes noisy events outright; `recordClaimed` only
|
|
25
|
+
* concerns events another watcher already records.
|
|
26
|
+
*/
|
|
27
|
+
recordClaimed?: boolean;
|
|
28
|
+
}
|
|
6
29
|
/**
|
|
7
30
|
* What a single recorded diagnostic entry looks like. Mirrors the
|
|
8
31
|
* {@link DiagnosticEvent} envelope, with the library-defined data preserved
|
|
@@ -53,7 +76,11 @@ export declare class DiagnosticsWatcher {
|
|
|
53
76
|
private registryListener;
|
|
54
77
|
/** name → the subscribe handler we attached, so cleanup can detach exactly. */
|
|
55
78
|
private readonly subscriptions;
|
|
56
|
-
|
|
79
|
+
/** `lib:event` keys whose events are dropped instead of recorded. */
|
|
80
|
+
private readonly excluded;
|
|
81
|
+
/** See {@link DiagnosticsWatcherOptions.recordClaimed}. */
|
|
82
|
+
private readonly recordClaimed;
|
|
83
|
+
constructor(store: TelescopeStore, options?: DiagnosticsWatcherOptions);
|
|
57
84
|
/**
|
|
58
85
|
* Begin recording. Subscribes to every currently-registered channel and arms a
|
|
59
86
|
* listener for future ones. A no-op when `@adonis-agora/diagnostics` is not loaded
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"diagnostics_watcher.d.ts","sourceRoot":"","sources":["../../src/diagnostics_watcher.ts"],"names":[],"mappings":"AACA,OAAO,EACL,KAAK,eAAe,
|
|
1
|
+
{"version":3,"file":"diagnostics_watcher.d.ts","sourceRoot":"","sources":["../../src/diagnostics_watcher.ts"],"names":[],"mappings":"AACA,OAAO,EACL,KAAK,eAAe,EAIrB,MAAM,2BAA2B,CAAC;AACnC,OAAO,EAAa,KAAK,WAAW,EAAE,MAAM,YAAY,CAAC;AACzD,OAAO,KAAK,EAAE,cAAc,EAAE,MAAM,YAAY,CAAC;AAEjD,uDAAuD;AACvD,eAAO,MAAM,qBAAqB,cAAuB,CAAC;AAE1D,2DAA2D;AAC3D,MAAM,WAAW,yBAAyB;IACxC;;;;;;OAMG;IACH,OAAO,CAAC,EAAE,SAAS,MAAM,EAAE,CAAC;IAC5B;;;;;;;;;;OAUG;IACH,aAAa,CAAC,EAAE,OAAO,CAAC;CACzB;AAED;;;;GAIG;AACH,MAAM,WAAW,sBAAsB;IACrC,gFAAgF;IAChF,CAAC,EAAE,MAAM,GAAG,IAAI,CAAC;IACjB,8CAA8C;IAC9C,GAAG,EAAE,MAAM,CAAC;IACZ,4DAA4D;IAC5D,KAAK,EAAE,MAAM,CAAC;IACd,wDAAwD;IACxD,EAAE,EAAE,MAAM,CAAC;IACX,+DAA+D;IAC/D,OAAO,EAAE,MAAM,GAAG,IAAI,CAAC;IACvB,mDAAmD;IACnD,OAAO,EAAE,OAAO,CAAC;CAClB;AAED;;;;;;;;;;;;;;;;;;;;;;GAsBG;AACH,qBAAa,kBAAkB;IAa3B,OAAO,CAAC,QAAQ,CAAC,KAAK;IAZxB,QAAQ,CAAC,IAAI,eAAyB;IACtC,OAAO,CAAC,OAAO,CAAS;IACxB,gFAAgF;IAChF,OAAO,CAAC,gBAAgB,CAAyC;IACjE,+EAA+E;IAC/E,OAAO,CAAC,QAAQ,CAAC,aAAa,CAA6C;IAC3E,qEAAqE;IACrE,OAAO,CAAC,QAAQ,CAAC,QAAQ,CAAsB;IAC/C,2DAA2D;IAC3D,OAAO,CAAC,QAAQ,CAAC,aAAa,CAAU;gBAGrB,KAAK,EAAE,cAAc,EACtC,OAAO,GAAE,yBAA8B;IAMzC;;;;OAIG;IACH,KAAK,IAAI,IAAI;IAab,qEAAqE;IACrE,IAAI,IAAI,IAAI;IAYZ,gFAAgF;IAChF,OAAO,CAAC,SAAS;IAQjB,+EAA+E;IAC/E,OAAO,CAAC,UAAU;CAqBnB;AAED,iFAAiF;AACjF,wBAAgB,oBAAoB,CAAC,GAAG,EAAE,eAAe,GAAG,WAAW,CAAC,sBAAsB,CAAC,CAoB9F"}
|
|
@@ -1,5 +1,5 @@
|
|
|
1
1
|
import diagnostics_channel from 'node:diagnostics_channel';
|
|
2
|
-
import { getDiagnosticsRegistry, isDiagnosticEvent, } from './diagnostics_registry.js';
|
|
2
|
+
import { getDiagnosticsRegistry, isDiagnosticClaimed, isDiagnosticEvent, } from './diagnostics_registry.js';
|
|
3
3
|
import { EntryType } from './entry.js';
|
|
4
4
|
/** Telescope entry `type` produced by this watcher. */
|
|
5
5
|
export const DIAGNOSTIC_ENTRY_TYPE = EntryType.Diagnostic;
|
|
@@ -34,8 +34,14 @@ export class DiagnosticsWatcher {
|
|
|
34
34
|
registryListener = null;
|
|
35
35
|
/** name → the subscribe handler we attached, so cleanup can detach exactly. */
|
|
36
36
|
subscriptions = new Map();
|
|
37
|
-
|
|
37
|
+
/** `lib:event` keys whose events are dropped instead of recorded. */
|
|
38
|
+
excluded;
|
|
39
|
+
/** See {@link DiagnosticsWatcherOptions.recordClaimed}. */
|
|
40
|
+
recordClaimed;
|
|
41
|
+
constructor(store, options = {}) {
|
|
38
42
|
this.store = store;
|
|
43
|
+
this.excluded = new Set(options.exclude ?? []);
|
|
44
|
+
this.recordClaimed = options.recordClaimed ?? false;
|
|
39
45
|
}
|
|
40
46
|
/**
|
|
41
47
|
* Begin recording. Subscribes to every currently-registered channel and arms a
|
|
@@ -81,6 +87,15 @@ export class DiagnosticsWatcher {
|
|
|
81
87
|
try {
|
|
82
88
|
if (!isDiagnosticEvent(msg))
|
|
83
89
|
return;
|
|
90
|
+
// Mute high-frequency channels the host opted out of. The event still
|
|
91
|
+
// published on its diagnostics channel — only its Telescope entry is dropped.
|
|
92
|
+
if (this.excluded.has(`${msg.lib}:${msg.event}`))
|
|
93
|
+
return;
|
|
94
|
+
// Skip keys a lib-specific watcher already records as a typed entry, so an
|
|
95
|
+
// event is never recorded twice. Checked at RECORD time (not subscribe time)
|
|
96
|
+
// so claiming stays order-independent — see isDiagnosticClaimed's contract.
|
|
97
|
+
if (!this.recordClaimed && isDiagnosticClaimed(msg.lib, msg.event))
|
|
98
|
+
return;
|
|
84
99
|
// This runs inside a synchronous `node:diagnostics_channel` subscriber, so we
|
|
85
100
|
// CANNOT await the now-async store. Fire-and-forget and swallow rejections —
|
|
86
101
|
// telescope must never break (or block) an emitting code path.
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"diagnostics_watcher.js","sourceRoot":"","sources":["../../src/diagnostics_watcher.ts"],"names":[],"mappings":"AAAA,OAAO,mBAAqC,MAAM,0BAA0B,CAAC;AAC7E,OAAO,EAEL,sBAAsB,EACtB,iBAAiB,GAClB,MAAM,2BAA2B,CAAC;AACnC,OAAO,EAAE,SAAS,EAAoB,MAAM,YAAY,CAAC;AAGzD,uDAAuD;AACvD,MAAM,CAAC,MAAM,qBAAqB,GAAG,SAAS,CAAC,UAAU,CAAC;
|
|
1
|
+
{"version":3,"file":"diagnostics_watcher.js","sourceRoot":"","sources":["../../src/diagnostics_watcher.ts"],"names":[],"mappings":"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"}
|
|
@@ -79,7 +79,27 @@ export interface DataBinding {
|
|
|
79
79
|
/** Opaque query passed through to the provider's `resolve`. */
|
|
80
80
|
query?: Record<string, unknown>;
|
|
81
81
|
}
|
|
82
|
-
/**
|
|
82
|
+
/**
|
|
83
|
+
* A deep-link out of a table cell (to the durable dashboard, a telescope trace, etc.).
|
|
84
|
+
*
|
|
85
|
+
* @remarks Two href conventions:
|
|
86
|
+
* - **In-app hash route** — an `href` starting with `#/` (e.g. `'#/traces/{traceId}'`)
|
|
87
|
+
* is a route inside the Telescope SPA itself. The UI renders it as a plain
|
|
88
|
+
* anchor; browsers treat a same-document `#`-only href as a same-document
|
|
89
|
+
* navigation (URL hash update + `hashchange`, no page reload), which the
|
|
90
|
+
* dashboard's hash router picks up — the same mechanism the built-in Entries
|
|
91
|
+
* table and Entry detail view already use for their own trace links. Leave
|
|
92
|
+
* `external` unset for these.
|
|
93
|
+
* - **Host-console link** — an absolute path with no `#` (e.g.
|
|
94
|
+
* `'/durable/runs/{runId}'`) targets a page in the HOST application (the app
|
|
95
|
+
* embedding/linking to Telescope), not a Telescope route. This is a real
|
|
96
|
+
* top-level navigation; set `external: true` when it should open in a new tab.
|
|
97
|
+
*
|
|
98
|
+
* The one confirmed in-app hash route today is the trace waterfall view:
|
|
99
|
+
* `#/traces/{traceId}` (`traceId` is the row key to substitute), which shows the
|
|
100
|
+
* single-trace waterfall. Bridges that want to deep-link a table row to "show me
|
|
101
|
+
* this trace" should target that exact shape.
|
|
102
|
+
*/
|
|
83
103
|
export interface LinkSpec {
|
|
84
104
|
/** A URL template with `{key}` placeholders filled from the row, e.g. '/durable/runs/{runId}'. */
|
|
85
105
|
href: string;
|
|
@@ -116,6 +136,15 @@ export type Panel = {
|
|
|
116
136
|
title: string;
|
|
117
137
|
data: DataBinding;
|
|
118
138
|
columns: Column[];
|
|
139
|
+
/**
|
|
140
|
+
* Opt into paged-table mode: the UI renders prev/next controls (+ "page X
|
|
141
|
+
* of Y") and re-resolves this panel's provider with `query.page` (1-based)
|
|
142
|
+
* and `query.limit` merged in on top of the panel's own static `data.query`.
|
|
143
|
+
* The provider MUST then return `{ rows, total, page, limit }` instead of
|
|
144
|
+
* a bare `{ rows }` — see {@link DataProvider.resolve}. Omit (or `false`)
|
|
145
|
+
* for the existing bare-rows table, unchanged.
|
|
146
|
+
*/
|
|
147
|
+
paged?: boolean;
|
|
119
148
|
} | {
|
|
120
149
|
kind: 'distribution';
|
|
121
150
|
title: string;
|
|
@@ -146,7 +175,11 @@ export interface DataProvider {
|
|
|
146
175
|
* - stat → `{ value: number; delta?: number; deltaLabel?: string; spark?: number[] }`
|
|
147
176
|
* - timeseries → `{ rows: Array<{ label: string } & Record<string, number>> }`
|
|
148
177
|
* - topN → `{ items: Array<{ label: string; value: number; id?: string }> }`
|
|
149
|
-
* - table → `{ rows: Array<Record<string, unknown>> }
|
|
178
|
+
* - table → `{ rows: Array<Record<string, unknown>> }`, or — when the
|
|
179
|
+
* panel declares `paged: true` — `{ rows, total, page, limit }`
|
|
180
|
+
* (`page`/`limit` normally echo the requested `query.page` /
|
|
181
|
+
* `query.limit`; `total` is the full, unpaginated row count so
|
|
182
|
+
* the UI can compute "page X of Y")
|
|
150
183
|
* - distribution → `{ buckets: Array<{ label: string; count: number }>; p50?: number; p95?: number; p99?: number }`
|
|
151
184
|
* - gauge → `{ value: number; min?: number; max?: number }`
|
|
152
185
|
* - breakdown → `{ segments: Array<{ label: string; value: number; color?: string }> }`
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"types.d.ts","sourceRoot":"","sources":["../../../src/extension/types.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,uBAAuB,EAAE,MAAM,qBAAqB,CAAC;AACnE,OAAO,KAAK,EAAE,cAAc,EAAE,MAAM,aAAa,CAAC;AAElD;;;;;;;;;;GAUG;AACH,MAAM,WAAW,kBAAkB;IACjC,2EAA2E;IAC3E,IAAI,EAAE,MAAM,CAAC;IACb,gFAAgF;IAChF,UAAU,CAAC,CAAC,GAAG,EAAE,gBAAgB,GAAG,kBAAkB,EAAE,CAAC;IACzD,6DAA6D;IAC7D,UAAU,CAAC,CAAC,GAAG,EAAE,gBAAgB,GAAG,aAAa,EAAE,CAAC;IACpD,+EAA+E;IAC/E,aAAa,CAAC,CAAC,GAAG,EAAE,gBAAgB,GAAG,YAAY,EAAE,CAAC;CACvD;AAED,uFAAuF;AACvF,MAAM,WAAW,aAAa;IAC5B,IAAI,CAAC,CAAC,EAAE,KAAK,EAAE,OAAO,GAAG,OAAO,CAAC,CAAC,CAAC,CAAC;CACrC;AAED;;;;GAIG;AACH,MAAM,WAAW,gBAAgB;IAC/B,mEAAmE;IACnE,QAAQ,CAAC,KAAK,EAAE,cAAc,CAAC;IAC/B,sFAAsF;IACtF,QAAQ,CAAC,SAAS,EAAE,aAAa,CAAC;IAClC,qCAAqC;IACrC,QAAQ,CAAC,MAAM,EAAE,uBAAuB,CAAC;CAC1C;AAED,8FAA8F;AAC9F,MAAM,WAAW,kBAAkB;IACjC,yDAAyD;IACzD,EAAE,EAAE,MAAM,CAAC;IACX,mCAAmC;IACnC,KAAK,EAAE,MAAM,CAAC;IACd,kEAAkE;IAClE,GAAG,EAAE,MAAM,CAAC;CACb;AAED,mFAAmF;AACnF,MAAM,WAAW,eAAe;IAC9B,IAAI,EAAE,MAAM,CAAC;IACb,GAAG,EAAE,MAAM,CAAC;IACZ,SAAS,EAAE,QAAQ,GAAG,UAAU,CAAC;CAClC;AAED,qEAAqE;AACrE,MAAM,WAAW,gBAAgB;IAC/B,KAAK,CAAC,EAAE,MAAM,CAAC;IACf,IAAI,CAAC,EAAE,CAAC,GAAG,CAAC,GAAG,CAAC,CAAC;IACjB,MAAM,EAAE,KAAK,EAAE,CAAC;CACjB;AAED,oCAAoC;AACpC,MAAM,WAAW,aAAa;IAC5B,oFAAoF;IACpF,EAAE,EAAE,MAAM,CAAC;IACX,mCAAmC;IACnC,KAAK,EAAE,MAAM,CAAC;IACd,oCAAoC;IACpC,QAAQ,CAAC,EAAE,MAAM,CAAC;IAClB,oDAAoD;IACpD,MAAM,EAAE,KAAK,EAAE,CAAC;IAChB,gFAAgF;IAChF,QAAQ,CAAC,EAAE,gBAAgB,EAAE,CAAC;CAC/B;AAED,oFAAoF;AACpF,MAAM,WAAW,WAAW;IAC1B,wEAAwE;IACxE,QAAQ,EAAE,MAAM,CAAC;IACjB,+DAA+D;IAC/D,KAAK,CAAC,EAAE,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,CAAC;CACjC;AAED
|
|
1
|
+
{"version":3,"file":"types.d.ts","sourceRoot":"","sources":["../../../src/extension/types.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,uBAAuB,EAAE,MAAM,qBAAqB,CAAC;AACnE,OAAO,KAAK,EAAE,cAAc,EAAE,MAAM,aAAa,CAAC;AAElD;;;;;;;;;;GAUG;AACH,MAAM,WAAW,kBAAkB;IACjC,2EAA2E;IAC3E,IAAI,EAAE,MAAM,CAAC;IACb,gFAAgF;IAChF,UAAU,CAAC,CAAC,GAAG,EAAE,gBAAgB,GAAG,kBAAkB,EAAE,CAAC;IACzD,6DAA6D;IAC7D,UAAU,CAAC,CAAC,GAAG,EAAE,gBAAgB,GAAG,aAAa,EAAE,CAAC;IACpD,+EAA+E;IAC/E,aAAa,CAAC,CAAC,GAAG,EAAE,gBAAgB,GAAG,YAAY,EAAE,CAAC;CACvD;AAED,uFAAuF;AACvF,MAAM,WAAW,aAAa;IAC5B,IAAI,CAAC,CAAC,EAAE,KAAK,EAAE,OAAO,GAAG,OAAO,CAAC,CAAC,CAAC,CAAC;CACrC;AAED;;;;GAIG;AACH,MAAM,WAAW,gBAAgB;IAC/B,mEAAmE;IACnE,QAAQ,CAAC,KAAK,EAAE,cAAc,CAAC;IAC/B,sFAAsF;IACtF,QAAQ,CAAC,SAAS,EAAE,aAAa,CAAC;IAClC,qCAAqC;IACrC,QAAQ,CAAC,MAAM,EAAE,uBAAuB,CAAC;CAC1C;AAED,8FAA8F;AAC9F,MAAM,WAAW,kBAAkB;IACjC,yDAAyD;IACzD,EAAE,EAAE,MAAM,CAAC;IACX,mCAAmC;IACnC,KAAK,EAAE,MAAM,CAAC;IACd,kEAAkE;IAClE,GAAG,EAAE,MAAM,CAAC;CACb;AAED,mFAAmF;AACnF,MAAM,WAAW,eAAe;IAC9B,IAAI,EAAE,MAAM,CAAC;IACb,GAAG,EAAE,MAAM,CAAC;IACZ,SAAS,EAAE,QAAQ,GAAG,UAAU,CAAC;CAClC;AAED,qEAAqE;AACrE,MAAM,WAAW,gBAAgB;IAC/B,KAAK,CAAC,EAAE,MAAM,CAAC;IACf,IAAI,CAAC,EAAE,CAAC,GAAG,CAAC,GAAG,CAAC,CAAC;IACjB,MAAM,EAAE,KAAK,EAAE,CAAC;CACjB;AAED,oCAAoC;AACpC,MAAM,WAAW,aAAa;IAC5B,oFAAoF;IACpF,EAAE,EAAE,MAAM,CAAC;IACX,mCAAmC;IACnC,KAAK,EAAE,MAAM,CAAC;IACd,oCAAoC;IACpC,QAAQ,CAAC,EAAE,MAAM,CAAC;IAClB,oDAAoD;IACpD,MAAM,EAAE,KAAK,EAAE,CAAC;IAChB,gFAAgF;IAChF,QAAQ,CAAC,EAAE,gBAAgB,EAAE,CAAC;CAC/B;AAED,oFAAoF;AACpF,MAAM,WAAW,WAAW;IAC1B,wEAAwE;IACxE,QAAQ,EAAE,MAAM,CAAC;IACjB,+DAA+D;IAC/D,KAAK,CAAC,EAAE,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,CAAC;CACjC;AAED;;;;;;;;;;;;;;;;;;;;GAoBG;AACH,MAAM,WAAW,QAAQ;IACvB,kGAAkG;IAClG,IAAI,EAAE,MAAM,CAAC;IACb,oCAAoC;IACpC,QAAQ,CAAC,EAAE,OAAO,CAAC;CACpB;AAED,MAAM,WAAW,MAAM;IACrB,GAAG,EAAE,MAAM,CAAC;IACZ,KAAK,EAAE,MAAM,CAAC;IACd,IAAI,CAAC,EAAE,QAAQ,CAAC;CACjB;AAED,MAAM,MAAM,KAAK,GACb;IACE,IAAI,EAAE,MAAM,CAAC;IACb,KAAK,EAAE,MAAM,CAAC;IACd,IAAI,EAAE,WAAW,CAAC;IAClB,MAAM,CAAC,EAAE,QAAQ,GAAG,SAAS,GAAG,UAAU,GAAG,MAAM,CAAC;IACpD,MAAM,CAAC,EAAE,MAAM,CAAC;IAChB,6FAA6F;IAC7F,KAAK,CAAC,EAAE,OAAO,CAAC;IAChB,UAAU,CAAC,EAAE,eAAe,CAAC;CAC9B,GACD;IACE,IAAI,EAAE,YAAY,CAAC;IACnB,KAAK,EAAE,MAAM,CAAC;IACd,IAAI,EAAE,WAAW,CAAC;IAClB,MAAM,EAAE,MAAM,EAAE,CAAC;IACjB,KAAK,CAAC,EAAE,MAAM,GAAG,SAAS,CAAC;CAC5B,GACD;IAAE,IAAI,EAAE,MAAM,CAAC;IAAC,KAAK,EAAE,MAAM,CAAC;IAAC,IAAI,EAAE,WAAW,CAAC;IAAC,KAAK,CAAC,EAAE,MAAM,CAAA;CAAE,GAClE;IACE,IAAI,EAAE,OAAO,CAAC;IACd,KAAK,EAAE,MAAM,CAAC;IACd,IAAI,EAAE,WAAW,CAAC;IAClB,OAAO,EAAE,MAAM,EAAE,CAAC;IAClB;;;;;;;OAOG;IACH,KAAK,CAAC,EAAE,OAAO,CAAC;CACjB,GACD;IACE,IAAI,EAAE,cAAc,CAAC;IACrB,KAAK,EAAE,MAAM,CAAC;IACd,IAAI,EAAE,WAAW,CAAC;IAClB,OAAO,CAAC,EAAE,KAAK,CAAC,KAAK,GAAG,KAAK,GAAG,KAAK,CAAC,CAAC;IACvC,MAAM,CAAC,EAAE,UAAU,GAAG,QAAQ,CAAC;CAChC,GACD;IACE,IAAI,EAAE,OAAO,CAAC;IACd,KAAK,EAAE,MAAM,CAAC;IACd,IAAI,EAAE,WAAW,CAAC;IAClB,GAAG,CAAC,EAAE,MAAM,CAAC;IACb,GAAG,CAAC,EAAE,MAAM,CAAC;IACb,MAAM,CAAC,EAAE,QAAQ,GAAG,SAAS,GAAG,UAAU,GAAG,MAAM,CAAC;IACpD,UAAU,CAAC,EAAE,eAAe,CAAC;CAC9B,GACD;IAAE,IAAI,EAAE,WAAW,CAAC;IAAC,KAAK,EAAE,MAAM,CAAC;IAAC,IAAI,EAAE,WAAW,CAAC;IAAC,KAAK,CAAC,EAAE,OAAO,GAAG,KAAK,CAAA;CAAE,CAAC;AAErF,kDAAkD;AAClD,MAAM,WAAW,YAAY;IAC3B,6FAA6F;IAC7F,IAAI,EAAE,MAAM,CAAC;IACb;;;;;;;;;;;;;;OAcG;IACH,OAAO,CAAC,KAAK,EAAE,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,GAAG,SAAS,EAAE,GAAG,EAAE,gBAAgB,GAAG,OAAO,CAAC,OAAO,CAAC,CAAC;CAC9F;AAED,yEAAyE;AACzE,wBAAgB,wBAAwB,CAAC,GAAG,EAAE,kBAAkB,GAAG,kBAAkB,CAEpF"}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"types.js","sourceRoot":"","sources":["../../../src/extension/types.ts"],"names":[],"mappings":"
|
|
1
|
+
{"version":3,"file":"types.js","sourceRoot":"","sources":["../../../src/extension/types.ts"],"names":[],"mappings":"AAsMA,yEAAyE;AACzE,MAAM,UAAU,wBAAwB,CAAC,GAAuB;IAC9D,OAAO,GAAG,CAAC;AACb,CAAC"}
|
package/dist/src/index.d.ts
CHANGED
|
@@ -1,5 +1,5 @@
|
|
|
1
1
|
/** Keep in sync with this package's `version` in package.json. */
|
|
2
|
-
export declare const VERSION = "0.
|
|
2
|
+
export declare const VERSION = "0.6.0";
|
|
3
3
|
export { EntryType, isBatchOrigin } from './entry.js';
|
|
4
4
|
export type { BatchOrigin, BuiltinEntryType, Entry, RecordInput } from './entry.js';
|
|
5
5
|
export type { EntryQuery, TelescopeStore } from './store.js';
|
|
@@ -12,9 +12,9 @@ export type { LucidStoreConfig, MemoryStoreConfig, StoreContext, StoreProvider,
|
|
|
12
12
|
export { TelescopeService } from './service.js';
|
|
13
13
|
export type { CountBucket } from './service.js';
|
|
14
14
|
export { buildDiagnosticEntry, DIAGNOSTIC_ENTRY_TYPE, DiagnosticsWatcher, } from './diagnostics_watcher.js';
|
|
15
|
-
export type { DiagnosticEntryContent } from './diagnostics_watcher.js';
|
|
16
|
-
export { recordRequest } from './request_watcher.js';
|
|
17
|
-
export type { HttpContextLike, RecordRequestOptions, RequestEntryContent, } from './request_watcher.js';
|
|
15
|
+
export type { DiagnosticEntryContent, DiagnosticsWatcherOptions, } from './diagnostics_watcher.js';
|
|
16
|
+
export { recordRequest, resolveRequestCapture } from './request_watcher.js';
|
|
17
|
+
export type { CaptureRequestInfo, HttpContextLike, RecordRequestOptions, RequestCaptureOptions, RequestEntryContent, ResolvedRequestCapture, } from './request_watcher.js';
|
|
18
18
|
export { buildExceptionInput, recordException, recordExceptionInStore, } from './exception_watcher.js';
|
|
19
19
|
export type { ExceptionEntryContent, RecordExceptionContext, } from './exception_watcher.js';
|
|
20
20
|
export { exceptionFamilyHash } from './exception_family_hash.js';
|
|
@@ -24,7 +24,7 @@ export type { Column, ContainerLike, DashboardSection, DashboardSpec, DataBindin
|
|
|
24
24
|
export { ExtensionRegistry } from './extension/registry.js';
|
|
25
25
|
export { ClientErrorIngestor, type ClientErrorHttpContext, type ClientErrorIngestorDeps, type ClientErrorRequest, type ClientErrorResponse, type ClientErrorsConfig, ClientErrorRateLimiter, type ClientErrorValidation, type ClientExceptionContent, DEFAULT_CLIENT_ERRORS_PATH, DEFAULT_MAX_BODY_BYTES, DEFAULT_MAX_TRACKED_IPS, DEFAULT_RATE_LIMIT_PER_MINUTE, resolveClientErrors, type ResolvedClientErrorsConfig, storeRecorder, userIdentityTag, validateClientErrorBody, } from './client_errors/index.js';
|
|
26
26
|
export { defineConfig, resolveConfig } from './define_config.js';
|
|
27
|
-
export type { NPlusOneConfig, OverloadConfig, PruneConfig, PulseConfig, RedactConfig, ResolvedTelescopeConfig, StreamConfig, TelescopeConfig, WatcherName, } from './define_config.js';
|
|
27
|
+
export type { DiagnosticsConfig, NPlusOneConfig, OverloadConfig, PruneConfig, PulseConfig, RedactConfig, ResolvedTelescopeConfig, StreamConfig, TelescopeConfig, WatcherName, } from './define_config.js';
|
|
28
28
|
export { TelescopePruner } from './pruner.js';
|
|
29
29
|
export type { Clock, PruneRun, PruneTrigger, PrunerDeps, PrunerLogger, ResolvedPruneConfig, } from './pruner.js';
|
|
30
30
|
export { OverloadGuard } from './overload_guard.js';
|
|
@@ -54,7 +54,7 @@ export { buildWaterfall } from './metrics/waterfall.js';
|
|
|
54
54
|
export type { Waterfall, WaterfallSpan } from './metrics/waterfall.js';
|
|
55
55
|
export { buildHistogram, emptyHistogram, estimatePercentileFromHistogram, HISTOGRAM_BUCKET_COUNT, histogramBucketIndex, incrementHistogram, LATENCY_BOUNDARIES_MS, mergeHistograms, normalizeHistogram, ROLLUP_BUCKET_MS, } from './metrics/rollup.js';
|
|
56
56
|
export { compileRedactSpec, DEFAULT_MASK, DEFAULT_REDACT_KEYS, redact, redactBounded, redactBoundedWith, } from './redaction/redact.js';
|
|
57
|
-
export type { CompiledRedactSpec, RedactBoundedResult, RedactOptions, } from './redaction/redact.js';
|
|
57
|
+
export type { CompiledRedactSpec, RedactBoundedResult, RedactBounds, RedactOptions, } from './redaction/redact.js';
|
|
58
58
|
export { RedactingTelescopeStore } from './redaction/redacting_store.js';
|
|
59
59
|
export { getTelescopeRuntime, resetTelescopeRuntime, setTelescopeDiagnosisCoordinator, setTelescopeEntryEvents, setTelescopeExtensionRegistry, setTelescopeRuntime, } from './registry.js';
|
|
60
60
|
export type { TelescopeRuntime } from './registry.js';
|
|
@@ -64,7 +64,7 @@ export { MCP_INTERNAL_ERROR, MCP_METHOD_NOT_FOUND, MCP_TOOL_NAMES, MCP_TOOLS, MC
|
|
|
64
64
|
export type { DiagnoseExceptionHook, JsonRpcRequest, McpToolName, McpToolSpec, ResolvedTelescopeMcpConfig, TelescopeMcpConfig, TelescopeMcpServerOptions, } from './mcp/index.js';
|
|
65
65
|
export { currentTraceId, getContextAccessor } from './context_accessor.js';
|
|
66
66
|
export type { ContextAccessor } from './context_accessor.js';
|
|
67
|
-
export { getDiagnosticsRegistry, isDiagnosticEvent, } from './diagnostics_registry.js';
|
|
67
|
+
export { getDiagnosticsRegistry, isDiagnosticClaimed, isDiagnosticEvent, } from './diagnostics_registry.js';
|
|
68
68
|
export type { DiagnosticEvent, DiagnosticsRegistry } from './diagnostics_registry.js';
|
|
69
69
|
export { configure } from '../configure.js';
|
|
70
70
|
//# sourceMappingURL=index.d.ts.map
|
package/dist/src/index.d.ts.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../src/index.ts"],"names":[],"mappings":"AAAA,kEAAkE;AAClE,eAAO,MAAM,OAAO,UAAU,CAAC;AAG/B,OAAO,EAAE,SAAS,EAAE,aAAa,EAAE,MAAM,YAAY,CAAC;AACtD,YAAY,EAAE,WAAW,EAAE,gBAAgB,EAAE,KAAK,EAAE,WAAW,EAAE,MAAM,YAAY,CAAC;AAGpF,YAAY,EAAE,UAAU,EAAE,cAAc,EAAE,MAAM,YAAY,CAAC;AAC7D,OAAO,EAAE,sBAAsB,EAAE,MAAM,oBAAoB,CAAC;AAC5D,YAAY,EAAE,oBAAoB,EAAE,MAAM,oBAAoB,CAAC;AAC/D,OAAO,EACL,qBAAqB,EACrB,oBAAoB,EACpB,kBAAkB,EAClB,mBAAmB,EACnB,sBAAsB,GACvB,MAAM,mBAAmB,CAAC;AAC3B,YAAY,EACV,kBAAkB,EAClB,iBAAiB,EACjB,sBAAsB,EACtB,qBAAqB,EACrB,iBAAiB,EACjB,gBAAgB,GACjB,MAAM,mBAAmB,CAAC;AAC3B,OAAO,EAAE,OAAO,EAAE,MAAM,qBAAqB,CAAC;AAC9C,YAAY,EACV,gBAAgB,EAChB,iBAAiB,EACjB,YAAY,EACZ,aAAa,GACd,MAAM,qBAAqB,CAAC;AAG7B,OAAO,EAAE,gBAAgB,EAAE,MAAM,cAAc,CAAC;AAChD,YAAY,EAAE,WAAW,EAAE,MAAM,cAAc,CAAC;AAGhD,OAAO,EACL,oBAAoB,EACpB,qBAAqB,EACrB,kBAAkB,GACnB,MAAM,0BAA0B,CAAC;AAClC,YAAY,
|
|
1
|
+
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../src/index.ts"],"names":[],"mappings":"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"}
|
package/dist/src/index.js
CHANGED
|
@@ -1,5 +1,5 @@
|
|
|
1
1
|
/** Keep in sync with this package's `version` in package.json. */
|
|
2
|
-
export const VERSION = '0.
|
|
2
|
+
export const VERSION = '0.6.0';
|
|
3
3
|
// — entry model —
|
|
4
4
|
export { EntryType, isBatchOrigin } from './entry.js';
|
|
5
5
|
export { InMemoryTelescopeStore } from './stores/memory.js';
|
|
@@ -9,7 +9,7 @@ export { storage } from './stores/factory.js';
|
|
|
9
9
|
export { TelescopeService } from './service.js';
|
|
10
10
|
// — watchers —
|
|
11
11
|
export { buildDiagnosticEntry, DIAGNOSTIC_ENTRY_TYPE, DiagnosticsWatcher, } from './diagnostics_watcher.js';
|
|
12
|
-
export { recordRequest } from './request_watcher.js';
|
|
12
|
+
export { recordRequest, resolveRequestCapture } from './request_watcher.js';
|
|
13
13
|
export { buildExceptionInput, recordException, recordExceptionInStore, } from './exception_watcher.js';
|
|
14
14
|
export { exceptionFamilyHash } from './exception_family_hash.js';
|
|
15
15
|
// — extension SDK —
|
|
@@ -51,7 +51,7 @@ export { DiagnosisCoordinator, formatDiagnosisMarkdown, } from './ai/diagnosis_c
|
|
|
51
51
|
export { MCP_INTERNAL_ERROR, MCP_METHOD_NOT_FOUND, MCP_TOOL_NAMES, MCP_TOOLS, MCP_UNAUTHORIZED, TelescopeMcpServer, } from './mcp/index.js';
|
|
52
52
|
// — structural ecosystem readers —
|
|
53
53
|
export { currentTraceId, getContextAccessor } from './context_accessor.js';
|
|
54
|
-
export { getDiagnosticsRegistry, isDiagnosticEvent, } from './diagnostics_registry.js';
|
|
54
|
+
export { getDiagnosticsRegistry, isDiagnosticClaimed, isDiagnosticEvent, } from './diagnostics_registry.js';
|
|
55
55
|
// Re-export the configure hook from the package root so `node ace configure` finds it
|
|
56
56
|
export { configure } from '../configure.js';
|
|
57
57
|
//# sourceMappingURL=index.js.map
|
package/dist/src/index.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"index.js","sourceRoot":"","sources":["../../src/index.ts"],"names":[],"mappings":"AAAA,kEAAkE;AAClE,MAAM,CAAC,MAAM,OAAO,GAAG,OAAO,CAAC;AAE/B,kBAAkB;AAClB,OAAO,EAAE,SAAS,EAAE,aAAa,EAAE,MAAM,YAAY,CAAC;AAKtD,OAAO,EAAE,sBAAsB,EAAE,MAAM,oBAAoB,CAAC;AAE5D,OAAO,EACL,qBAAqB,EACrB,oBAAoB,EACpB,kBAAkB,EAClB,mBAAmB,EACnB,sBAAsB,GACvB,MAAM,mBAAmB,CAAC;AAS3B,OAAO,EAAE,OAAO,EAAE,MAAM,qBAAqB,CAAC;AAQ9C,gBAAgB;AAChB,OAAO,EAAE,gBAAgB,EAAE,MAAM,cAAc,CAAC;AAGhD,eAAe;AACf,OAAO,EACL,oBAAoB,EACpB,qBAAqB,EACrB,kBAAkB,GACnB,MAAM,0BAA0B,CAAC;
|
|
1
|
+
{"version":3,"file":"index.js","sourceRoot":"","sources":["../../src/index.ts"],"names":[],"mappings":"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"}
|
package/dist/src/mcp/index.d.ts
CHANGED
|
@@ -1,5 +1,5 @@
|
|
|
1
1
|
/** Keep in sync with this package's `version` in package.json. */
|
|
2
|
-
export declare const VERSION = "0.
|
|
2
|
+
export declare const VERSION = "0.6.0";
|
|
3
3
|
export { defineConfig, resolveConfig, MCP_TOOL_NAMES } from './define_config.js';
|
|
4
4
|
export type { McpToolName, ResolvedTelescopeMcpConfig, TelescopeMcpConfig, } from './define_config.js';
|
|
5
5
|
export { MCP_INTERNAL_ERROR, MCP_METHOD_NOT_FOUND, MCP_TOOLS, MCP_UNAUTHORIZED, TelescopeMcpServer, } from './server.js';
|
package/dist/src/mcp/index.js
CHANGED
|
@@ -1,5 +1,5 @@
|
|
|
1
1
|
/** Keep in sync with this package's `version` in package.json. */
|
|
2
|
-
export const VERSION = '0.
|
|
2
|
+
export const VERSION = '0.6.0';
|
|
3
3
|
// — config —
|
|
4
4
|
export { defineConfig, resolveConfig, MCP_TOOL_NAMES } from './define_config.js';
|
|
5
5
|
// — server (plain, testable JSON-RPC surface) —
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"server.d.ts","sourceRoot":"","sources":["../../../src/mcp/server.ts"],"names":[],"mappings":"AAAA,OAAO,
|
|
1
|
+
{"version":3,"file":"server.d.ts","sourceRoot":"","sources":["../../../src/mcp/server.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,KAAK,KAAK,EAAa,MAAM,aAAa,CAAC;AACpD,OAAO,KAAK,EAAE,cAAc,EAAE,MAAM,+BAA+B,CAAC;AACpE,OAAO,KAAK,EAAE,gBAAgB,EAAE,MAAM,eAAe,CAAC;AAEtD,OAAO,EAAkB,KAAK,WAAW,EAAE,MAAM,oBAAoB,CAAC;AAQtE,0FAA0F;AAC1F,eAAO,MAAM,gBAAgB,SAAS,CAAC;AACvC,mCAAmC;AACnC,eAAO,MAAM,oBAAoB,SAAS,CAAC;AAC3C,wDAAwD;AACxD,eAAO,MAAM,kBAAkB,SAAS,CAAC;AAEzC,6FAA6F;AAC7F,MAAM,WAAW,WAAW;IAC1B,IAAI,EAAE,WAAW,CAAC;IAClB,WAAW,EAAE,MAAM,CAAC;IACpB,WAAW,EAAE;QAAE,IAAI,EAAE,QAAQ,CAAC;QAAC,UAAU,EAAE,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,CAAC;QAAC,QAAQ,CAAC,EAAE,MAAM,EAAE,CAAA;KAAE,CAAC;CAC3F;AAED;;;;GAIG;AACH,eAAO,MAAM,SAAS,EAAE,SAAS,WAAW,EA0E3C,CAAC;AAEF,uGAAuG;AACvG,MAAM,WAAW,cAAc;IAC7B,OAAO,CAAC,EAAE,MAAM,CAAC;IACjB,EAAE,CAAC,EAAE,MAAM,GAAG,MAAM,GAAG,IAAI,CAAC;IAC5B,MAAM,CAAC,EAAE,MAAM,CAAC;IAChB,MAAM,CAAC,EAAE;QACP,eAAe,CAAC,EAAE,MAAM,CAAC;QACzB,IAAI,CAAC,EAAE,MAAM,CAAC;QACd,SAAS,CAAC,EAAE,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,CAAC;KACrC,CAAC;CACH;AAYD,8FAA8F;AAC9F,MAAM,MAAM,qBAAqB,GAAG,CAAC,KAAK,EAAE,KAAK,KAAK,OAAO,CAAC,MAAM,GAAG,IAAI,CAAC,GAAG,MAAM,GAAG,IAAI,CAAC;AAE7F,wDAAwD;AACxD,MAAM,WAAW,yBAAyB;IACxC,qDAAqD;IACrD,KAAK,CAAC,EAAE,WAAW,CAAC,WAAW,CAAC,CAAC;IACjC,6CAA6C;IAC7C,UAAU,CAAC,EAAE;QAAE,IAAI,EAAE,MAAM,CAAC;QAAC,OAAO,EAAE,MAAM,CAAA;KAAE,CAAC;IAC/C;;;;OAIG;IACH,QAAQ,CAAC,EAAE,qBAAqB,CAAC;CAClC;AAED;;;;;;;;;;;GAWG;AACH,qBAAa,kBAAkB;IAM3B,OAAO,CAAC,QAAQ,CAAC,OAAO;IACxB,OAAO,CAAC,QAAQ,CAAC,OAAO;IAN1B,OAAO,CAAC,QAAQ,CAAC,KAAK,CAA2B;IACjD,OAAO,CAAC,QAAQ,CAAC,UAAU,CAAoC;IAC/D,OAAO,CAAC,QAAQ,CAAC,QAAQ,CAAoC;gBAG1C,OAAO,EAAE,gBAAgB,EACzB,OAAO,EAAE,cAAc,EACxC,OAAO,GAAE,yBAA8B;IAOzC,oFAAoF;IACpF,aAAa,IAAI,WAAW,EAAE;IAI9B;;;;;;OAMG;IACG,MAAM,CAAC,IAAI,EAAE,cAAc,EAAE,UAAU,EAAE,OAAO,GAAG,OAAO,CAAC,OAAO,CAAC;IAoCzE,OAAO,CAAC,OAAO;IAIf,OAAO,CAAC,IAAI;YAME,QAAQ;CAmEvB"}
|
package/dist/src/mcp/server.js
CHANGED
|
@@ -27,7 +27,10 @@ export const MCP_TOOLS = [
|
|
|
27
27
|
type: 'string',
|
|
28
28
|
description: 'Entry type: request, query, exception, client_exception, log, event, mail, job, cache, http-client, redis, diagnostic…',
|
|
29
29
|
},
|
|
30
|
-
search: {
|
|
30
|
+
search: {
|
|
31
|
+
type: 'string',
|
|
32
|
+
description: 'Case-insensitive substring over entry content + tags',
|
|
33
|
+
},
|
|
31
34
|
tag: { type: 'string', description: 'Exact tag match, e.g. "status:500" or "lib:billing"' },
|
|
32
35
|
sinceMinutes: { type: 'number', description: 'Only entries from the last N minutes' },
|
|
33
36
|
limit: { type: 'number', description: 'Max entries (default 20, max 100)' },
|
|
@@ -153,7 +156,9 @@ export class TelescopeMcpServer {
|
|
|
153
156
|
return id === undefined || id === null ? null : { jsonrpc: '2.0', id, result };
|
|
154
157
|
}
|
|
155
158
|
fail(id, code, message) {
|
|
156
|
-
return id === undefined || id === null
|
|
159
|
+
return id === undefined || id === null
|
|
160
|
+
? null
|
|
161
|
+
: { jsonrpc: '2.0', id, error: { code, message } };
|
|
157
162
|
}
|
|
158
163
|
async callTool(name, args) {
|
|
159
164
|
if (name !== undefined && !this.tools.has(name)) {
|