@adonis-agora/telescope 0.15.1 → 0.16.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 CHANGED
@@ -1,5 +1,26 @@
1
1
  # @adonis-agora/telescope
2
2
 
3
+ ## 0.16.0
4
+
5
+ ### Minor Changes
6
+
7
+ - [#61](https://github.com/DavideCarvalho/adonis-agora-telescope/pull/61) [`cbaf6d9`](https://github.com/DavideCarvalho/adonis-agora-telescope/commit/cbaf6d9284fceef2a798013b9e87a425d00f514a) Thanks [@DavideCarvalho](https://github.com/DavideCarvalho)! - Dois consertos no watcher de logs, os dois descobertos em produção.
8
+
9
+ **A mensagem gravada era o template, não o texto.** `extractLog` guardava a string de
10
+ formato e descartava os valores, então um log real virava `creating query client in %s
11
+ mode` — o `%s` nunca preenchido e o `dual` jogado fora. Uma mensagem de log virada em
12
+ template é a única forma em que ela não serve para nada. Agora as mensagens são
13
+ interpoladas como o pino faz (`%s`, `%d`/`%i`, `%o`/`%O`/`%j`, `%%`). Um placeholder sem
14
+ argumento fica **como está**: o template é uma mensagem pior, mas um valor inventado é uma
15
+ mensagem falsa.
16
+
17
+ **O watcher gravava o que o app tinha configurado para não logar.** O tee vê a chamada
18
+ mesmo quando o gate de nível do próprio logger a descarta. Em produção isso era o
19
+ `logger.trace()` de dentro do Lucid chegando a **243 entries/minuto** sob `LOG_LEVEL=info`
20
+ — linhas que não foram escritas em lugar nenhum. Agora o watcher respeita o
21
+ `isLevelEnabled` do logger; `captureBelowLoggerLevel: true` volta ao comportamento antigo
22
+ para quem quiser o console como um gravador mais fundo que o stdout.
23
+
3
24
  ## 0.15.1
4
25
 
5
26
  ### Patch Changes
@@ -1,5 +1,5 @@
1
1
  /** Keep in sync with this package's `version` in package.json. */
2
- export declare const VERSION = "0.15.1";
2
+ export declare const VERSION = "0.16.0";
3
3
  export type { ResolvedTelescopeAiConfig, TelescopeAiConfig, } from './define_config.js';
4
4
  export { DEFAULT_MAX_TOKENS, DEFAULT_MODEL, defineConfig, resolveConfig, } from './define_config.js';
5
5
  export type { Diagnosis, DiagnosisConfidence, ExceptionEntryContent } from './diagnoser.js';
@@ -1,5 +1,5 @@
1
1
  /** Keep in sync with this package's `version` in package.json. */
2
- export const VERSION = '0.15.1';
2
+ export const VERSION = '0.16.0';
3
3
  // — config —
4
4
  export { DEFAULT_MAX_TOKENS, DEFAULT_MODEL, defineConfig, resolveConfig, } from './define_config.js';
5
5
  // — diagnosis model + parsing —
@@ -1,5 +1,5 @@
1
1
  /** Keep in sync with this package's `version` in package.json. */
2
- export declare const VERSION = "0.15.1";
2
+ export declare const VERSION = "0.16.0";
3
3
  export type { AlertChannel, ChannelFetch, ConsoleSink } from './alert_channel.js';
4
4
  export { consoleChannel, customChannel, slackChannel, webhookChannel, } from './alert_channel.js';
5
5
  export type { AlertDiagnosis, AlertGeoLocation, AlertMetric, AlertPayload, AlertRule, ExceptionAlertContext, GeoLookup, ResolvedAlerts, } from './alert_rule.js';
@@ -1,5 +1,5 @@
1
1
  /** Keep in sync with this package's `version` in package.json. */
2
- export const VERSION = '0.15.1';
2
+ export const VERSION = '0.16.0';
3
3
  // — channels —
4
4
  export { consoleChannel, customChannel, slackChannel, webhookChannel, } from './alert_channel.js';
5
5
  // — alerter (exception source → tracker → channels) —
@@ -1,5 +1,5 @@
1
1
  /** Keep in sync with this package's `version` in package.json. */
2
- export declare const VERSION = "0.15.1";
2
+ export declare const VERSION = "0.16.0";
3
3
  export { configure } from '../configure.js';
4
4
  export type { DiagnoserLike, DiagnosisCoordinatorOptions, DiagnosisSummary, } from './ai/diagnosis_coordinator.js';
5
5
  export { DiagnosisCoordinator, formatDiagnosisMarkdown, } from './ai/diagnosis_coordinator.js';
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.15.1';
2
+ export const VERSION = '0.16.0';
3
3
  // Re-export the configure hook from the package root so `node ace configure` finds it
4
4
  export { configure } from '../configure.js';
5
5
  // — AI diagnosis coordinator (wires the MCP tool + the alerter; SDK-free) —
@@ -1,5 +1,5 @@
1
1
  /** Keep in sync with this package's `version` in package.json. */
2
- export declare const VERSION = "0.15.1";
2
+ export declare const VERSION = "0.16.0";
3
3
  export type { McpToolName, ResolvedTelescopeMcpConfig, TelescopeMcpConfig, } from './define_config.js';
4
4
  export { defineConfig, MCP_TOOL_NAMES, resolveConfig } from './define_config.js';
5
5
  export type { DiagnoseExceptionHook, JsonRpcRequest, McpToolSpec, TelescopeMcpServerOptions, } from './server.js';
@@ -1,5 +1,5 @@
1
1
  /** Keep in sync with this package's `version` in package.json. */
2
- export const VERSION = '0.15.1';
2
+ export const VERSION = '0.16.0';
3
3
  // — config —
4
4
  export { defineConfig, MCP_TOOL_NAMES, resolveConfig } from './define_config.js';
5
5
  // — server (plain, testable JSON-RPC surface) —
@@ -1,5 +1,5 @@
1
1
  /** Keep in sync with this package's `version` in package.json. */
2
- export declare const VERSION = "0.15.1";
2
+ export declare const VERSION = "0.16.0";
3
3
  export { aggregateCpuProfile } from './aggregate-profile.js';
4
4
  export type { CpuProfilerOptions, CpuProfilerResult, InspectorSessionLike, SessionFactory, } from './cpu-profiler.js';
5
5
  export { CpuProfiler, defaultSessionFactory } from './cpu-profiler.js';
@@ -1,5 +1,5 @@
1
1
  /** Keep in sync with this package's `version` in package.json. */
2
- export const VERSION = '0.15.1';
2
+ export const VERSION = '0.16.0';
3
3
  export { aggregateCpuProfile } from './aggregate-profile.js';
4
4
  export { CpuProfiler, defaultSessionFactory } from './cpu-profiler.js';
5
5
  export { defineConfig, resolveConfig } from './define_config.js';
@@ -1,5 +1,5 @@
1
1
  /** Keep in sync with this package's `version` in package.json. */
2
- export declare const VERSION = "0.15.1";
2
+ export declare const VERSION = "0.16.0";
3
3
  export type { AccessDeniedInfo, AccessDeniedPageOptions, AccessDeniedReason, } from './access_denied_page.js';
4
4
  export { CONSOLE as ACCESS_DENIED_CONSOLE, escapeHtml, renderAccessDeniedPage, resolveAccessDeniedPage, } from './access_denied_page.js';
5
5
  export type { EntrySummary, RetentionInfo, RetentionOptions, RetentionPruneOptions, RetentionSamplingRate, } from './api.js';
@@ -1,5 +1,5 @@
1
1
  /** Keep in sync with this package's `version` in package.json. */
2
- export const VERSION = '0.15.1';
2
+ export const VERSION = '0.16.0';
3
3
  // — the built-in "access denied" page (what a browser sees on a refused page navigation) —
4
4
  export { CONSOLE as ACCESS_DENIED_CONSOLE, escapeHtml, renderAccessDeniedPage, resolveAccessDeniedPage, } from './access_denied_page.js';
5
5
  // — JSON API —
@@ -1,5 +1,5 @@
1
1
  /** Keep in sync with this package's `version` in package.json. */
2
- export declare const VERSION = "0.15.1";
2
+ export declare const VERSION = "0.16.0";
3
3
  export type { CacheEntryContent, CacheEventLike, CacheOperation } from './cache_watcher.js';
4
4
  export { buildCacheEntry, CACHE_EVENTS, CacheWatcher } from './cache_watcher.js';
5
5
  export { nextCronRunMs } from './cron_next_run.js';
@@ -11,7 +11,7 @@ export { buildEventEntry, DEFAULT_IGNORED_EVENTS, EventsWatcher, hasOnAny, } fro
11
11
  export type { HttpClientEntryContent, HttpClientWatcherOptions, OutgoingCall, } from './http_client_watcher.js';
12
12
  export { buildHttpClientEntry, HttpClientWatcher, instrumentFetch, markInternalFetch, } from './http_client_watcher.js';
13
13
  export type { LogEntryContent, LoggerLike, LogLevel, LogsWatcherOptions, } from './logs_watcher.js';
14
- export { buildLogEntry, extractLog, LOG_LEVELS, LogsWatcher } from './logs_watcher.js';
14
+ export { buildLogEntry, extractLog, interpolate, LOG_LEVELS, LogsWatcher } from './logs_watcher.js';
15
15
  export type { DbQueryEventLike, LucidQueryWatcherOptions, QueryEntryContent, } from './lucid_query_watcher.js';
16
16
  export { buildQueryEntry, DB_QUERY_EVENT, LucidQueryWatcher } from './lucid_query_watcher.js';
17
17
  export type { MailEntryContent, MailSentEventLike } from './mail_watcher.js';
@@ -1 +1 @@
1
- {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../src/watchers/index.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../src/watchers/index.ts"],"names":[],"mappings":"AAAA,kEAAkE;AAClE,eAAO,MAAM,OAAO,WAAW,CAAC;AAEhC,YAAY,EAAE,iBAAiB,EAAE,cAAc,EAAE,cAAc,EAAE,MAAM,oBAAoB,CAAC;AAE5F,OAAO,EAAE,eAAe,EAAE,YAAY,EAAE,YAAY,EAAE,MAAM,oBAAoB,CAAC;AACjF,OAAO,EAAE,aAAa,EAAE,MAAM,oBAAoB,CAAC;AACnD,YAAY,EACV,uBAAuB,EACvB,sBAAsB,EACtB,kBAAkB,EAClB,yBAAyB,EACzB,kBAAkB,EAClB,+BAA+B,EAC/B,8BAA8B,EAC9B,0BAA0B,EAC1B,iCAAiC,EACjC,0BAA0B,EAC1B,6BAA6B,EAC7B,+BAA+B,EAC/B,qBAAqB,EACrB,uBAAuB,EACvB,WAAW,GACZ,MAAM,oBAAoB,CAAC;AAE5B,OAAO,EACL,gBAAgB,EAChB,YAAY,EACZ,aAAa,GACd,MAAM,oBAAoB,CAAC;AAE5B,YAAY,EAAE,WAAW,EAAE,OAAO,EAAE,MAAM,cAAc,CAAC;AACzD,YAAY,EAAE,cAAc,EAAE,iBAAiB,EAAE,MAAM,qBAAqB,CAAC;AAE7E,OAAO,EACL,eAAe,EACf,sBAAsB,EACtB,aAAa,EACb,QAAQ,GACT,MAAM,qBAAqB,CAAC;AAC7B,YAAY,EACV,sBAAsB,EACtB,wBAAwB,EACxB,YAAY,GACb,MAAM,0BAA0B,CAAC;AAGlC,OAAO,EACL,oBAAoB,EACpB,iBAAiB,EACjB,eAAe,EACf,iBAAiB,GAClB,MAAM,0BAA0B,CAAC;AAClC,YAAY,EACV,eAAe,EACf,UAAU,EACV,QAAQ,EACR,kBAAkB,GACnB,MAAM,mBAAmB,CAAC;AAE3B,OAAO,EAAE,aAAa,EAAE,UAAU,EAAE,WAAW,EAAE,UAAU,EAAE,WAAW,EAAE,MAAM,mBAAmB,CAAC;AACpG,YAAY,EACV,gBAAgB,EAChB,wBAAwB,EACxB,iBAAiB,GAClB,MAAM,0BAA0B,CAAC;AAElC,OAAO,EAAE,eAAe,EAAE,cAAc,EAAE,iBAAiB,EAAE,MAAM,0BAA0B,CAAC;AAC9F,YAAY,EAAE,gBAAgB,EAAE,iBAAiB,EAAE,MAAM,mBAAmB,CAAC;AAE7E,OAAO,EAAE,cAAc,EAAE,eAAe,EAAE,WAAW,EAAE,MAAM,mBAAmB,CAAC;AACjF,OAAO,EAAE,mBAAmB,EAAE,MAAM,4BAA4B,CAAC;AACjE,YAAY,EACV,gBAAgB,EAChB,mBAAmB,EACnB,WAAW,EACX,cAAc,EACd,aAAa,EACb,uBAAuB,GACxB,MAAM,wBAAwB,CAAC;AAEhC,OAAO,EACL,iBAAiB,EACjB,kBAAkB,EAClB,gBAAgB,EAChB,OAAO,EACP,YAAY,GACb,MAAM,wBAAwB,CAAC;AAChC,OAAO,EAAE,eAAe,EAAE,MAAM,wBAAwB,CAAC;AACzD,YAAY,EACV,OAAO,EACP,eAAe,EACf,gBAAgB,EAChB,iBAAiB,EACjB,WAAW,EACX,QAAQ,EACR,cAAc,EACd,kBAAkB,EAClB,SAAS,EACT,YAAY,EACZ,yBAAyB,EACzB,UAAU,EACV,YAAY,GACb,MAAM,oBAAoB,CAAC;AAE5B,OAAO,EACL,aAAa,EACb,YAAY,EACZ,aAAa,EACb,YAAY,EACZ,kBAAkB,GACnB,MAAM,oBAAoB,CAAC;AAC5B,YAAY,EACV,eAAe,EACf,eAAe,EACf,qBAAqB,EACrB,SAAS,EACT,mBAAmB,GACpB,MAAM,oBAAoB,CAAC;AAE5B,OAAO,EAAE,aAAa,EAAE,qBAAqB,EAAE,YAAY,EAAE,MAAM,oBAAoB,CAAC;AAExF,OAAO,EAAE,YAAY,EAAE,UAAU,EAAE,MAAM,aAAa,CAAC;AAEvD,YAAY,EACV,eAAe,EACf,gBAAgB,EAChB,mBAAmB,EACnB,iBAAiB,EACjB,gBAAgB,EAChB,mBAAmB,GACpB,MAAM,oBAAoB,CAAC;AAC5B,OAAO,EAAE,eAAe,EAAE,kBAAkB,EAAE,YAAY,EAAE,MAAM,oBAAoB,CAAC;AACvF,YAAY,EACV,kBAAkB,EAClB,YAAY,EACZ,oBAAoB,EACpB,oBAAoB,EACpB,YAAY,EACZ,oBAAoB,EACpB,iBAAiB,EACjB,sBAAsB,GACvB,MAAM,uBAAuB,CAAC;AAE/B,OAAO,EACL,kBAAkB,EAClB,uBAAuB,EACvB,kBAAkB,EAClB,gBAAgB,EAChB,yBAAyB,EACzB,eAAe,EACf,YAAY,EACZ,oBAAoB,EACpB,kBAAkB,GACnB,MAAM,uBAAuB,CAAC"}
@@ -1,5 +1,5 @@
1
1
  /** Keep in sync with this package's `version` in package.json. */
2
- export const VERSION = '0.15.1';
2
+ export const VERSION = '0.16.0';
3
3
  // — cache watcher —
4
4
  export { buildCacheEntry, CACHE_EVENTS, CacheWatcher } from './cache_watcher.js';
5
5
  export { nextCronRunMs } from './cron_next_run.js';
@@ -10,7 +10,7 @@ export { buildEventEntry, DEFAULT_IGNORED_EVENTS, EventsWatcher, hasOnAny, } fro
10
10
  // — http-client (outbound) watcher —
11
11
  export { buildHttpClientEntry, HttpClientWatcher, instrumentFetch, markInternalFetch, } from './http_client_watcher.js';
12
12
  // — logs watcher —
13
- export { buildLogEntry, extractLog, LOG_LEVELS, LogsWatcher } from './logs_watcher.js';
13
+ export { buildLogEntry, extractLog, interpolate, LOG_LEVELS, LogsWatcher } from './logs_watcher.js';
14
14
  // — Lucid query watcher (the headline watcher) —
15
15
  export { buildQueryEntry, DB_QUERY_EVENT, LucidQueryWatcher } from './lucid_query_watcher.js';
16
16
  // — mail watcher —
@@ -1 +1 @@
1
- {"version":3,"file":"index.js","sourceRoot":"","sources":["../../../src/watchers/index.ts"],"names":[],"mappings":"AAAA,kEAAkE;AAClE,MAAM,CAAC,MAAM,OAAO,GAAG,QAAQ,CAAC;AAGhC,oBAAoB;AACpB,OAAO,EAAE,eAAe,EAAE,YAAY,EAAE,YAAY,EAAE,MAAM,oBAAoB,CAAC;AACjF,OAAO,EAAE,aAAa,EAAE,MAAM,oBAAoB,CAAC;AAkBnD,aAAa;AACb,OAAO,EACL,gBAAgB,EAChB,YAAY,EACZ,aAAa,GACd,MAAM,oBAAoB,CAAC;AAI5B,mDAAmD;AACnD,OAAO,EACL,eAAe,EACf,sBAAsB,EACtB,aAAa,EACb,QAAQ,GACT,MAAM,qBAAqB,CAAC;AAO7B,qCAAqC;AACrC,OAAO,EACL,oBAAoB,EACpB,iBAAiB,EACjB,eAAe,EACf,iBAAiB,GAClB,MAAM,0BAA0B,CAAC;AAOlC,mBAAmB;AACnB,OAAO,EAAE,aAAa,EAAE,UAAU,EAAE,UAAU,EAAE,WAAW,EAAE,MAAM,mBAAmB,CAAC;AAMvF,iDAAiD;AACjD,OAAO,EAAE,eAAe,EAAE,cAAc,EAAE,iBAAiB,EAAE,MAAM,0BAA0B,CAAC;AAE9F,mBAAmB;AACnB,OAAO,EAAE,cAAc,EAAE,eAAe,EAAE,WAAW,EAAE,MAAM,mBAAmB,CAAC;AACjF,OAAO,EAAE,mBAAmB,EAAE,MAAM,4BAA4B,CAAC;AASjE,mEAAmE;AACnE,OAAO,EACL,iBAAiB,EACjB,kBAAkB,EAClB,gBAAgB,EAChB,OAAO,EACP,YAAY,GACb,MAAM,wBAAwB,CAAC;AAChC,OAAO,EAAE,eAAe,EAAE,MAAM,wBAAwB,CAAC;AAgBzD,8EAA8E;AAC9E,OAAO,EACL,aAAa,EACb,YAAY,EACZ,aAAa,EACb,YAAY,EACZ,kBAAkB,GACnB,MAAM,oBAAoB,CAAC;AAQ5B,0DAA0D;AAC1D,OAAO,EAAE,aAAa,EAAE,qBAAqB,EAAE,YAAY,EAAE,MAAM,oBAAoB,CAAC;AACxF,mCAAmC;AACnC,OAAO,EAAE,YAAY,EAAE,UAAU,EAAE,MAAM,aAAa,CAAC;AAUvD,OAAO,EAAE,eAAe,EAAE,kBAAkB,EAAE,YAAY,EAAE,MAAM,oBAAoB,CAAC;AAWvF,2EAA2E;AAC3E,OAAO,EACL,kBAAkB,EAClB,uBAAuB,EACvB,kBAAkB,EAClB,gBAAgB,EAChB,yBAAyB,EACzB,eAAe,EACf,YAAY,EACZ,oBAAoB,EACpB,kBAAkB,GACnB,MAAM,uBAAuB,CAAC"}
1
+ {"version":3,"file":"index.js","sourceRoot":"","sources":["../../../src/watchers/index.ts"],"names":[],"mappings":"AAAA,kEAAkE;AAClE,MAAM,CAAC,MAAM,OAAO,GAAG,QAAQ,CAAC;AAGhC,oBAAoB;AACpB,OAAO,EAAE,eAAe,EAAE,YAAY,EAAE,YAAY,EAAE,MAAM,oBAAoB,CAAC;AACjF,OAAO,EAAE,aAAa,EAAE,MAAM,oBAAoB,CAAC;AAkBnD,aAAa;AACb,OAAO,EACL,gBAAgB,EAChB,YAAY,EACZ,aAAa,GACd,MAAM,oBAAoB,CAAC;AAI5B,mDAAmD;AACnD,OAAO,EACL,eAAe,EACf,sBAAsB,EACtB,aAAa,EACb,QAAQ,GACT,MAAM,qBAAqB,CAAC;AAO7B,qCAAqC;AACrC,OAAO,EACL,oBAAoB,EACpB,iBAAiB,EACjB,eAAe,EACf,iBAAiB,GAClB,MAAM,0BAA0B,CAAC;AAOlC,mBAAmB;AACnB,OAAO,EAAE,aAAa,EAAE,UAAU,EAAE,WAAW,EAAE,UAAU,EAAE,WAAW,EAAE,MAAM,mBAAmB,CAAC;AAMpG,iDAAiD;AACjD,OAAO,EAAE,eAAe,EAAE,cAAc,EAAE,iBAAiB,EAAE,MAAM,0BAA0B,CAAC;AAE9F,mBAAmB;AACnB,OAAO,EAAE,cAAc,EAAE,eAAe,EAAE,WAAW,EAAE,MAAM,mBAAmB,CAAC;AACjF,OAAO,EAAE,mBAAmB,EAAE,MAAM,4BAA4B,CAAC;AASjE,mEAAmE;AACnE,OAAO,EACL,iBAAiB,EACjB,kBAAkB,EAClB,gBAAgB,EAChB,OAAO,EACP,YAAY,GACb,MAAM,wBAAwB,CAAC;AAChC,OAAO,EAAE,eAAe,EAAE,MAAM,wBAAwB,CAAC;AAgBzD,8EAA8E;AAC9E,OAAO,EACL,aAAa,EACb,YAAY,EACZ,aAAa,EACb,YAAY,EACZ,kBAAkB,GACnB,MAAM,oBAAoB,CAAC;AAQ5B,0DAA0D;AAC1D,OAAO,EAAE,aAAa,EAAE,qBAAqB,EAAE,YAAY,EAAE,MAAM,oBAAoB,CAAC;AACxF,mCAAmC;AACnC,OAAO,EAAE,YAAY,EAAE,UAAU,EAAE,MAAM,aAAa,CAAC;AAUvD,OAAO,EAAE,eAAe,EAAE,kBAAkB,EAAE,YAAY,EAAE,MAAM,oBAAoB,CAAC;AAWvF,2EAA2E;AAC3E,OAAO,EACL,kBAAkB,EAClB,uBAAuB,EACvB,kBAAkB,EAClB,gBAAgB,EAChB,yBAAyB,EACzB,eAAe,EACf,YAAY,EACZ,oBAAoB,EACpB,kBAAkB,GACnB,MAAM,uBAAuB,CAAC"}
@@ -14,6 +14,12 @@ type LogMethod = (...args: unknown[]) => void;
14
14
  */
15
15
  export type LoggerLike = {
16
16
  [Level in LogLevel]?: LogMethod;
17
+ } & {
18
+ /**
19
+ * Pino's / AdonisJS's own level gate. Optional: a stub logger without it simply
20
+ * gets no filtering, which is the old behaviour.
21
+ */
22
+ isLevelEnabled?(level: string): boolean;
17
23
  };
18
24
  /** The recorded body of a `log` entry. */
19
25
  export interface LogEntryContent {
@@ -30,12 +36,25 @@ export interface LogEntryContent {
30
36
  export interface LogsWatcherOptions {
31
37
  /** Only record at/above this level. Default `'trace'` (record everything). */
32
38
  minLevel?: LogLevel;
39
+ /**
40
+ * Record levels the LOGGER itself would discard. Default `false`.
41
+ *
42
+ * The watcher tees the level methods, so it sees a call even when the logger's own
43
+ * level filter drops it — the app writes nothing and telescope stores everything.
44
+ * In production that showed up as `logger.trace()` from inside Lucid arriving at
45
+ * 243 entries/minute, none of which the app had chosen to log.
46
+ *
47
+ * Turn on to capture below the app's level on purpose (the console as a deeper
48
+ * recorder than stdout); leave off to record what the app actually logs.
49
+ */
50
+ captureBelowLoggerLevel?: boolean;
33
51
  /** Extra tags appended to every recorded log entry. */
34
52
  tags?: readonly string[];
35
53
  }
36
54
  export declare class LogsWatcher {
37
55
  readonly type: "log";
38
56
  private readonly minLevelIndex;
57
+ private readonly captureBelowLoggerLevel;
39
58
  private readonly extraTags;
40
59
  private logger;
41
60
  /** The levels THIS instance teed, so `stop()` never unwinds another watcher's tap. */
@@ -59,6 +78,12 @@ export declare class LogsWatcher {
59
78
  * leaves the owner's tap intact.
60
79
  */
61
80
  stop(): void;
81
+ /**
82
+ * Whether a level survives the LOGGER's own gate. Opt out with
83
+ * {@link LogsWatcherOptions.captureBelowLoggerLevel} to record below the app's level
84
+ * on purpose. A logger without `isLevelEnabled` is not filtered.
85
+ */
86
+ shouldRecordLevel(logger: unknown, level: LogLevel): boolean;
62
87
  /** Build + record a log entry from the level method's arguments. */
63
88
  private record;
64
89
  }
@@ -72,6 +97,20 @@ export declare function extractLog(args: unknown[]): {
72
97
  message: string | null;
73
98
  context: Record<string, unknown> | null;
74
99
  };
100
+ /**
101
+ * Fill printf-style placeholders the way pino does, so the recorded message is the
102
+ * one a person would read.
103
+ *
104
+ * Without this the watcher stored the format string verbatim: a real production log
105
+ * came out as `creating query client in %s mode` — the placeholder never filled and
106
+ * the value (`dual`) discarded. Every formatted log in the app was being recorded as
107
+ * a template, which is the one form in which a log message is useless.
108
+ *
109
+ * Handles pino's set (`%s`, `%d`/`%i`, `%o`/`%O`/`%j`, and `%%` for a literal
110
+ * percent). A placeholder with no argument left is kept AS-IS rather than filled with
111
+ * "undefined" — the template is a worse message, but inventing a value is a lie.
112
+ */
113
+ export declare function interpolate(template: string, values: readonly unknown[]): string;
75
114
  /** Map a level + raw method args to a telescope {@link RecordInput}. Exported so
76
115
  * the entry shape can be unit-tested without teeing a logger. */
77
116
  export declare function buildLogEntry(level: LogLevel, args: unknown[], extraTags?: readonly string[]): RecordInput<LogEntryContent>;
@@ -1 +1 @@
1
- {"version":3,"file":"logs_watcher.d.ts","sourceRoot":"","sources":["../../../src/watchers/logs_watcher.ts"],"names":[],"mappings":"AACA,OAAO,EAAa,KAAK,WAAW,EAAE,MAAM,aAAa,CAAC;AAG1D,iFAAiF;AACjF,eAAO,MAAM,UAAU,YAAI,OAAO,EAAE,OAAO,EAAE,MAAM,EAAE,MAAM,EAAE,OAAO,EAAE,OAAO,CAAU,CAAC;AACxF,MAAM,MAAM,QAAQ,GAAG,CAAC,OAAO,UAAU,CAAC,CAAC,MAAM,CAAC,CAAC;AAEnD;;2CAE2C;AAC3C,KAAK,SAAS,GAAG,CAAC,GAAG,IAAI,EAAE,OAAO,EAAE,KAAK,IAAI,CAAC;AAE9C;;;;;GAKG;AACH,MAAM,MAAM,UAAU,GAAG;KACtB,KAAK,IAAI,QAAQ,CAAC,CAAC,EAAE,SAAS;CAChC,CAAC;AAEF,0CAA0C;AAC1C,MAAM,WAAW,eAAe;IAC9B,8CAA8C;IAC9C,KAAK,EAAE,QAAQ,CAAC;IAChB,8EAA8E;IAC9E,OAAO,EAAE,MAAM,GAAG,IAAI,CAAC;IACvB,oFAAoF;IACpF,OAAO,EAAE,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,GAAG,IAAI,CAAC;IACxC,kDAAkD;IAClD,OAAO,EAAE,MAAM,GAAG,IAAI,CAAC;CACxB;AAED,uCAAuC;AACvC,MAAM,WAAW,kBAAkB;IACjC,8EAA8E;IAC9E,QAAQ,CAAC,EAAE,QAAQ,CAAC;IACpB,uDAAuD;IACvD,IAAI,CAAC,EAAE,SAAS,MAAM,EAAE,CAAC;CAC1B;AA+CD,qBAAa,WAAW;IACtB,QAAQ,CAAC,IAAI,QAAiB;IAC9B,OAAO,CAAC,QAAQ,CAAC,aAAa,CAAS;IACvC,OAAO,CAAC,QAAQ,CAAC,SAAS,CAAoB;IAC9C,OAAO,CAAC,MAAM,CAA2B;IACzC,sFAAsF;IACtF,OAAO,CAAC,QAAQ,CAAC,UAAU,CAAkB;IAE7C,YAAY,OAAO,GAAE,kBAAuB,EAG3C;IAED;;;;;;;;;;OAUG;IACH,KAAK,CAAC,MAAM,EAAE,UAAU,GAAG,IAAI,CA4D9B;IAED;;;;OAIG;IACH,IAAI,IAAI,IAAI,CAUX;IAED,oEAAoE;IACpE,OAAO,CAAC,MAAM;CAGf;AAUD;;;;;GAKG;AACH,wBAAgB,UAAU,CAAC,IAAI,EAAE,OAAO,EAAE,GAAG;IAC3C,OAAO,EAAE,MAAM,GAAG,IAAI,CAAC;IACvB,OAAO,EAAE,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,GAAG,IAAI,CAAC;CACzC,CAQA;AAeD;kEACkE;AAClE,wBAAgB,aAAa,CAC3B,KAAK,EAAE,QAAQ,EACf,IAAI,EAAE,OAAO,EAAE,EACf,SAAS,GAAE,SAAS,MAAM,EAAO,GAChC,WAAW,CAAC,eAAe,CAAC,CAW9B"}
1
+ {"version":3,"file":"logs_watcher.d.ts","sourceRoot":"","sources":["../../../src/watchers/logs_watcher.ts"],"names":[],"mappings":"AACA,OAAO,EAAa,KAAK,WAAW,EAAE,MAAM,aAAa,CAAC;AAG1D,iFAAiF;AACjF,eAAO,MAAM,UAAU,YAAI,OAAO,EAAE,OAAO,EAAE,MAAM,EAAE,MAAM,EAAE,OAAO,EAAE,OAAO,CAAU,CAAC;AACxF,MAAM,MAAM,QAAQ,GAAG,CAAC,OAAO,UAAU,CAAC,CAAC,MAAM,CAAC,CAAC;AAEnD;;2CAE2C;AAC3C,KAAK,SAAS,GAAG,CAAC,GAAG,IAAI,EAAE,OAAO,EAAE,KAAK,IAAI,CAAC;AAE9C;;;;;GAKG;AACH,MAAM,MAAM,UAAU,GAAG;KACtB,KAAK,IAAI,QAAQ,CAAC,CAAC,EAAE,SAAS;CAChC,GAAG;IACF;;;OAGG;IACH,cAAc,CAAC,CAAC,KAAK,EAAE,MAAM,GAAG,OAAO,CAAC;CACzC,CAAC;AAEF,0CAA0C;AAC1C,MAAM,WAAW,eAAe;IAC9B,8CAA8C;IAC9C,KAAK,EAAE,QAAQ,CAAC;IAChB,8EAA8E;IAC9E,OAAO,EAAE,MAAM,GAAG,IAAI,CAAC;IACvB,oFAAoF;IACpF,OAAO,EAAE,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,GAAG,IAAI,CAAC;IACxC,kDAAkD;IAClD,OAAO,EAAE,MAAM,GAAG,IAAI,CAAC;CACxB;AAED,uCAAuC;AACvC,MAAM,WAAW,kBAAkB;IACjC,8EAA8E;IAC9E,QAAQ,CAAC,EAAE,QAAQ,CAAC;IACpB;;;;;;;;;;OAUG;IACH,uBAAuB,CAAC,EAAE,OAAO,CAAC;IAClC,uDAAuD;IACvD,IAAI,CAAC,EAAE,SAAS,MAAM,EAAE,CAAC;CAC1B;AA+CD,qBAAa,WAAW;IACtB,QAAQ,CAAC,IAAI,QAAiB;IAC9B,OAAO,CAAC,QAAQ,CAAC,aAAa,CAAS;IACvC,OAAO,CAAC,QAAQ,CAAC,uBAAuB,CAAU;IAClD,OAAO,CAAC,QAAQ,CAAC,SAAS,CAAoB;IAC9C,OAAO,CAAC,MAAM,CAA2B;IACzC,sFAAsF;IACtF,OAAO,CAAC,QAAQ,CAAC,UAAU,CAAkB;IAE7C,YAAY,OAAO,GAAE,kBAAuB,EAI3C;IAED;;;;;;;;;;OAUG;IACH,KAAK,CAAC,MAAM,EAAE,UAAU,GAAG,IAAI,CAiE9B;IAED;;;;OAIG;IACH,IAAI,IAAI,IAAI,CAUX;IAED;;;;OAIG;IACH,iBAAiB,CAAC,MAAM,EAAE,OAAO,EAAE,KAAK,EAAE,QAAQ,GAAG,OAAO,CAU3D;IAED,oEAAoE;IACpE,OAAO,CAAC,MAAM;CAGf;AAUD;;;;;GAKG;AACH,wBAAgB,UAAU,CAAC,IAAI,EAAE,OAAO,EAAE,GAAG;IAC3C,OAAO,EAAE,MAAM,GAAG,IAAI,CAAC;IACvB,OAAO,EAAE,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,GAAG,IAAI,CAAC;CACzC,CAWA;AAED;;;;;;;;;;;;GAYG;AACH,wBAAgB,WAAW,CAAC,QAAQ,EAAE,MAAM,EAAE,MAAM,EAAE,SAAS,OAAO,EAAE,GAAG,MAAM,CAiBhF;AAeD;kEACkE;AAClE,wBAAgB,aAAa,CAC3B,KAAK,EAAE,QAAQ,EACf,IAAI,EAAE,OAAO,EAAE,EACf,SAAS,GAAE,SAAS,MAAM,EAAO,GAChC,WAAW,CAAC,eAAe,CAAC,CAW9B"}
@@ -45,12 +45,14 @@ function describeForWarning(value) {
45
45
  export class LogsWatcher {
46
46
  type = EntryType.Log;
47
47
  minLevelIndex;
48
+ captureBelowLoggerLevel;
48
49
  extraTags;
49
50
  logger = null;
50
51
  /** The levels THIS instance teed, so `stop()` never unwinds another watcher's tap. */
51
52
  teedLevels = [];
52
53
  constructor(options = {}) {
53
54
  this.minLevelIndex = LOG_LEVELS.indexOf(options.minLevel ?? 'trace');
55
+ this.captureBelowLoggerLevel = options.captureBelowLoggerLevel ?? false;
54
56
  this.extraTags = options.tags ?? [];
55
57
  }
56
58
  /**
@@ -88,6 +90,12 @@ export class LogsWatcher {
88
90
  original.apply(this, args);
89
91
  if (index < watcher.minLevelIndex)
90
92
  return;
93
+ // Don't store what the app configured itself not to log. The tee sees the call
94
+ // even when the logger's own level gate drops it, so without this telescope
95
+ // records lines that were never written anywhere — in production that was
96
+ // Lucid's `logger.trace()` at 243 entries/minute under LOG_LEVEL=info.
97
+ if (!watcher.shouldRecordLevel(this, level))
98
+ return;
91
99
  recording = true;
92
100
  try {
93
101
  watcher.record(level, args);
@@ -140,6 +148,25 @@ export class LogsWatcher {
140
148
  }
141
149
  }
142
150
  }
151
+ /**
152
+ * Whether a level survives the LOGGER's own gate. Opt out with
153
+ * {@link LogsWatcherOptions.captureBelowLoggerLevel} to record below the app's level
154
+ * on purpose. A logger without `isLevelEnabled` is not filtered.
155
+ */
156
+ shouldRecordLevel(logger, level) {
157
+ if (this.captureBelowLoggerLevel)
158
+ return true;
159
+ const probe = logger?.isLevelEnabled;
160
+ if (typeof probe !== 'function')
161
+ return true;
162
+ try {
163
+ return probe.call(logger, level) !== false;
164
+ }
165
+ catch {
166
+ // A logger that throws on the probe is not a reason to lose the entry.
167
+ return true;
168
+ }
169
+ }
143
170
  /** Build + record a log entry from the level method's arguments. */
144
171
  record(level, args) {
145
172
  safeRecord(buildLogEntry(level, args, this.extraTags), 'LogsWatcher');
@@ -163,10 +190,50 @@ export function extractLog(args) {
163
190
  const [first, second] = args;
164
191
  if (isPlainObject(first)) {
165
192
  const context = boundContext(first);
166
- const message = typeof second === 'string' ? second : null;
193
+ const message = typeof second === 'string' ? interpolate(second, args.slice(2)) : null;
167
194
  return { message, context };
168
195
  }
169
- return { message: typeof first === 'string' ? first : null, context: null };
196
+ return {
197
+ message: typeof first === 'string' ? interpolate(first, args.slice(1)) : null,
198
+ context: null,
199
+ };
200
+ }
201
+ /**
202
+ * Fill printf-style placeholders the way pino does, so the recorded message is the
203
+ * one a person would read.
204
+ *
205
+ * Without this the watcher stored the format string verbatim: a real production log
206
+ * came out as `creating query client in %s mode` — the placeholder never filled and
207
+ * the value (`dual`) discarded. Every formatted log in the app was being recorded as
208
+ * a template, which is the one form in which a log message is useless.
209
+ *
210
+ * Handles pino's set (`%s`, `%d`/`%i`, `%o`/`%O`/`%j`, and `%%` for a literal
211
+ * percent). A placeholder with no argument left is kept AS-IS rather than filled with
212
+ * "undefined" — the template is a worse message, but inventing a value is a lie.
213
+ */
214
+ export function interpolate(template, values) {
215
+ // Só o `includes` como atalho: sair cedo por falta de valores deixaria `%%` sem
216
+ // desescapar, e o mesmo template renderizaria diferente conforme os argumentos.
217
+ if (!template.includes('%'))
218
+ return template;
219
+ let index = 0;
220
+ return template.replace(/%([sdijoO%])/g, (match, kind) => {
221
+ if (kind === '%')
222
+ return '%';
223
+ if (index >= values.length)
224
+ return match;
225
+ const value = values[index++];
226
+ if (kind === 's')
227
+ return String(value);
228
+ if (kind === 'd' || kind === 'i')
229
+ return String(Number(value));
230
+ try {
231
+ return JSON.stringify(value) ?? String(value);
232
+ }
233
+ catch {
234
+ return String(value);
235
+ }
236
+ });
170
237
  }
171
238
  /** Shallow-copy at most the first 50 own keys of a merging object — a bound so a
172
239
  * single log entry can't retain an unbounded structured payload. */
@@ -1 +1 @@
1
- {"version":3,"file":"logs_watcher.js","sourceRoot":"","sources":["../../../src/watchers/logs_watcher.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"logs_watcher.js","sourceRoot":"","sources":["../../../src/watchers/logs_watcher.ts"],"names":[],"mappings":"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"}
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@adonis-agora/telescope",
3
- "version": "0.15.1",
3
+ "version": "0.16.0",
4
4
  "description": "Laravel Telescope-style headless observability for AdonisJS — records HTTP requests and every Agora diagnostics event as queryable entries, plus opt-in subpaths for per-technology watchers, a web dashboard, AI exception diagnosis, and alerting.",
5
5
  "license": "MIT",
6
6
  "repository": {