@adonis-agora/telescope 0.3.3 → 0.5.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 +10 -0
- package/dist/configure.d.ts.map +1 -1
- package/dist/configure.js +6 -0
- package/dist/configure.js.map +1 -1
- package/dist/providers/telescope_ai_provider.d.ts +9 -1
- package/dist/providers/telescope_ai_provider.d.ts.map +1 -1
- package/dist/providers/telescope_ai_provider.js +22 -2
- package/dist/providers/telescope_ai_provider.js.map +1 -1
- package/dist/providers/telescope_alerts_provider.d.ts +1 -0
- package/dist/providers/telescope_alerts_provider.d.ts.map +1 -1
- package/dist/providers/telescope_alerts_provider.js +37 -1
- package/dist/providers/telescope_alerts_provider.js.map +1 -1
- package/dist/providers/telescope_mcp_provider.d.ts +26 -0
- package/dist/providers/telescope_mcp_provider.d.ts.map +1 -0
- package/dist/providers/telescope_mcp_provider.js +114 -0
- package/dist/providers/telescope_mcp_provider.js.map +1 -0
- package/dist/providers/telescope_provider.d.ts +8 -0
- package/dist/providers/telescope_provider.d.ts.map +1 -1
- package/dist/providers/telescope_provider.js +56 -1
- package/dist/providers/telescope_provider.js.map +1 -1
- package/dist/providers/telescope_ui_provider.d.ts +2 -0
- package/dist/providers/telescope_ui_provider.d.ts.map +1 -1
- package/dist/providers/telescope_ui_provider.js +106 -22
- package/dist/providers/telescope_ui_provider.js.map +1 -1
- package/dist/providers/telescope_watchers_provider.d.ts +13 -2
- package/dist/providers/telescope_watchers_provider.d.ts.map +1 -1
- package/dist/providers/telescope_watchers_provider.js +57 -7
- package/dist/providers/telescope_watchers_provider.js.map +1 -1
- package/dist/src/ai/define_config.d.ts +39 -7
- package/dist/src/ai/define_config.d.ts.map +1 -1
- package/dist/src/ai/define_config.js +14 -4
- package/dist/src/ai/define_config.js.map +1 -1
- package/dist/src/ai/diagnosis_coordinator.d.ts +106 -0
- package/dist/src/ai/diagnosis_coordinator.d.ts.map +1 -0
- package/dist/src/ai/diagnosis_coordinator.js +143 -0
- package/dist/src/ai/diagnosis_coordinator.js.map +1 -0
- package/dist/src/ai/factory.d.ts +8 -5
- package/dist/src/ai/factory.d.ts.map +1 -1
- package/dist/src/ai/factory.js +20 -8
- package/dist/src/ai/factory.js.map +1 -1
- package/dist/src/ai/index.d.ts +3 -1
- package/dist/src/ai/index.d.ts.map +1 -1
- package/dist/src/ai/index.js +3 -1
- package/dist/src/ai/index.js.map +1 -1
- package/dist/src/alerts/alert_rule.d.ts +79 -11
- package/dist/src/alerts/alert_rule.d.ts.map +1 -1
- package/dist/src/alerts/alerter.d.ts +11 -1
- package/dist/src/alerts/alerter.d.ts.map +1 -1
- package/dist/src/alerts/alerter.js +21 -1
- package/dist/src/alerts/alerter.js.map +1 -1
- package/dist/src/alerts/alerter_service.d.ts +103 -0
- package/dist/src/alerts/alerter_service.d.ts.map +1 -0
- package/dist/src/alerts/alerter_service.js +215 -0
- package/dist/src/alerts/alerter_service.js.map +1 -0
- package/dist/src/alerts/index.d.ts +4 -2
- package/dist/src/alerts/index.d.ts.map +1 -1
- package/dist/src/alerts/index.js +4 -2
- package/dist/src/alerts/index.js.map +1 -1
- package/dist/src/alerts/slack_format.d.ts.map +1 -1
- package/dist/src/alerts/slack_format.js +35 -2
- package/dist/src/alerts/slack_format.js.map +1 -1
- package/dist/src/client_errors/config.d.ts +66 -0
- package/dist/src/client_errors/config.d.ts.map +1 -0
- package/dist/src/client_errors/config.js +17 -0
- package/dist/src/client_errors/config.js.map +1 -0
- package/dist/src/client_errors/index.d.ts +5 -0
- package/dist/src/client_errors/index.d.ts.map +1 -0
- package/dist/src/client_errors/index.js +5 -0
- package/dist/src/client_errors/index.js.map +1 -0
- package/dist/src/client_errors/ingestor.d.ts +87 -0
- package/dist/src/client_errors/ingestor.d.ts.map +1 -0
- package/dist/src/client_errors/ingestor.js +135 -0
- package/dist/src/client_errors/ingestor.js.map +1 -0
- package/dist/src/client_errors/rate_limiter.d.ts +53 -0
- package/dist/src/client_errors/rate_limiter.d.ts.map +1 -0
- package/dist/src/client_errors/rate_limiter.js +83 -0
- package/dist/src/client_errors/rate_limiter.js.map +1 -0
- package/dist/src/client_errors/validation.d.ts +62 -0
- package/dist/src/client_errors/validation.d.ts.map +1 -0
- package/dist/src/client_errors/validation.js +109 -0
- package/dist/src/client_errors/validation.js.map +1 -0
- package/dist/src/define_config.d.ts +120 -0
- package/dist/src/define_config.d.ts.map +1 -1
- package/dist/src/define_config.js +41 -0
- package/dist/src/define_config.js.map +1 -1
- package/dist/src/entry.d.ts +20 -0
- package/dist/src/entry.d.ts.map +1 -1
- package/dist/src/entry.js +20 -0
- package/dist/src/entry.js.map +1 -1
- package/dist/src/index.d.ts +17 -4
- package/dist/src/index.d.ts.map +1 -1
- package/dist/src/index.js +16 -3
- package/dist/src/index.js.map +1 -1
- package/dist/src/mcp/define_config.d.ts +57 -0
- package/dist/src/mcp/define_config.d.ts.map +1 -0
- package/dist/src/mcp/define_config.js +35 -0
- package/dist/src/mcp/define_config.js.map +1 -0
- package/dist/src/mcp/index.d.ts +7 -0
- package/dist/src/mcp/index.d.ts.map +1 -0
- package/dist/src/mcp/index.js +7 -0
- package/dist/src/mcp/index.js.map +1 -0
- package/dist/src/mcp/server.d.ts +89 -0
- package/dist/src/mcp/server.d.ts.map +1 -0
- package/dist/src/mcp/server.js +279 -0
- package/dist/src/mcp/server.js.map +1 -0
- package/dist/src/metrics/pulse.d.ts +158 -0
- package/dist/src/metrics/pulse.d.ts.map +1 -0
- package/dist/src/metrics/pulse.js +414 -0
- package/dist/src/metrics/pulse.js.map +1 -0
- package/dist/src/overload_guard.d.ts +77 -0
- package/dist/src/overload_guard.d.ts.map +1 -0
- package/dist/src/overload_guard.js +134 -0
- package/dist/src/overload_guard.js.map +1 -0
- package/dist/src/pruner.d.ts +93 -0
- package/dist/src/pruner.d.ts.map +1 -0
- package/dist/src/pruner.js +120 -0
- package/dist/src/pruner.js.map +1 -0
- package/dist/src/registry.d.ts +26 -0
- package/dist/src/registry.d.ts.map +1 -1
- package/dist/src/registry.js +19 -0
- package/dist/src/registry.js.map +1 -1
- package/dist/src/service.d.ts +16 -1
- package/dist/src/service.d.ts.map +1 -1
- package/dist/src/service.js +19 -1
- package/dist/src/service.js.map +1 -1
- package/dist/src/stores/lucid.d.ts +20 -0
- package/dist/src/stores/lucid.d.ts.map +1 -1
- package/dist/src/stores/lucid.js +89 -4
- 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 +3 -1
- package/dist/src/telescope_middleware.js.map +1 -1
- package/dist/src/ui/api.d.ts +9 -1
- package/dist/src/ui/api.d.ts.map +1 -1
- package/dist/src/ui/api.js +23 -1
- package/dist/src/ui/api.js.map +1 -1
- package/dist/src/ui/auth.d.ts +112 -0
- package/dist/src/ui/auth.d.ts.map +1 -0
- package/dist/src/ui/auth.js +130 -0
- package/dist/src/ui/auth.js.map +1 -0
- package/dist/src/ui/dashboard_auth.d.ts +34 -0
- package/dist/src/ui/dashboard_auth.d.ts.map +1 -0
- package/dist/src/ui/dashboard_auth.js +57 -0
- package/dist/src/ui/dashboard_auth.js.map +1 -0
- package/dist/src/ui/define_config.d.ts +15 -0
- package/dist/src/ui/define_config.d.ts.map +1 -1
- package/dist/src/ui/define_config.js +4 -0
- package/dist/src/ui/define_config.js.map +1 -1
- package/dist/src/ui/index.d.ts +7 -1
- package/dist/src/ui/index.d.ts.map +1 -1
- package/dist/src/ui/index.js +6 -1
- package/dist/src/ui/index.js.map +1 -1
- package/dist/src/ui/login_page.d.ts +23 -0
- package/dist/src/ui/login_page.d.ts.map +1 -0
- package/dist/src/ui/login_page.js +170 -0
- package/dist/src/ui/login_page.js.map +1 -0
- package/dist/src/ui/session_cookie.d.ts +42 -0
- package/dist/src/ui/session_cookie.d.ts.map +1 -0
- package/dist/src/ui/session_cookie.js +97 -0
- package/dist/src/ui/session_cookie.js.map +1 -0
- package/dist/src/watchers/define_config.d.ts +115 -12
- package/dist/src/watchers/define_config.d.ts.map +1 -1
- package/dist/src/watchers/define_config.js +48 -11
- package/dist/src/watchers/define_config.js.map +1 -1
- package/dist/src/watchers/http_client_watcher.d.ts +91 -31
- package/dist/src/watchers/http_client_watcher.d.ts.map +1 -1
- package/dist/src/watchers/http_client_watcher.js +161 -53
- package/dist/src/watchers/http_client_watcher.js.map +1 -1
- package/dist/src/watchers/index.d.ts +9 -5
- package/dist/src/watchers/index.d.ts.map +1 -1
- package/dist/src/watchers/index.js +6 -2
- package/dist/src/watchers/index.js.map +1 -1
- package/dist/src/watchers/lucid_query_watcher.d.ts +20 -2
- package/dist/src/watchers/lucid_query_watcher.d.ts.map +1 -1
- package/dist/src/watchers/lucid_query_watcher.js +44 -10
- package/dist/src/watchers/lucid_query_watcher.js.map +1 -1
- package/dist/src/watchers/profiling_watcher.d.ts +144 -0
- package/dist/src/watchers/profiling_watcher.d.ts.map +1 -0
- package/dist/src/watchers/profiling_watcher.js +231 -0
- package/dist/src/watchers/profiling_watcher.js.map +1 -0
- package/dist/src/watchers/query_family_hash.d.ts +7 -2
- package/dist/src/watchers/query_family_hash.d.ts.map +1 -1
- package/dist/src/watchers/query_family_hash.js +8 -3
- package/dist/src/watchers/query_family_hash.js.map +1 -1
- package/dist/src/watchers/record.d.ts.map +1 -1
- package/dist/src/watchers/record.js +4 -0
- package/dist/src/watchers/record.js.map +1 -1
- package/dist/src/watchers/schedule_watcher.d.ts +143 -0
- package/dist/src/watchers/schedule_watcher.d.ts.map +1 -0
- package/dist/src/watchers/schedule_watcher.js +195 -0
- package/dist/src/watchers/schedule_watcher.js.map +1 -0
- package/dist/stubs/config/telescope.stub +0 -65
- package/dist/stubs/config/telescope_ai.stub +0 -36
- package/dist/stubs/config/telescope_alerts.stub +0 -47
- package/dist/stubs/config/telescope_mcp.stub +0 -0
- package/dist/stubs/config/telescope_ui.stub +0 -53
- package/dist/stubs/config/telescope_watchers.stub +0 -41
- package/dist/stubs/database/migrations/create_telescope_entries_table.stub +2 -2
- package/package.json +12 -2
|
@@ -3,10 +3,12 @@ import { getTelescopeRuntime } from '../src/registry.js';
|
|
|
3
3
|
import { TelescopeService } from '../src/service.js';
|
|
4
4
|
import { streamEntries } from '../src/stream/stream_handler.js';
|
|
5
5
|
import { TelescopeApi } from '../src/ui/api.js';
|
|
6
|
-
import {
|
|
6
|
+
import { performLogin } from '../src/ui/auth.js';
|
|
7
|
+
import { clearSessionCookie, enforceDashboardAuth, writeSessionCookie, } from '../src/ui/dashboard_auth.js';
|
|
7
8
|
import { resolveConfig, } from '../src/ui/define_config.js';
|
|
8
9
|
import { ExtensionApi } from '../src/ui/extension_api.js';
|
|
9
10
|
import { enforceGuard } from '../src/ui/guard.js';
|
|
11
|
+
import { renderLoginPage } from '../src/ui/login_page.js';
|
|
10
12
|
/**
|
|
11
13
|
* Wires `@adonis-agora/telescope/ui` into the AdonisJS application.
|
|
12
14
|
*
|
|
@@ -25,6 +27,8 @@ export default class TelescopeUiProvider {
|
|
|
25
27
|
constructor(app) {
|
|
26
28
|
this.app = app;
|
|
27
29
|
}
|
|
30
|
+
/** Warn once so a throwing `login` hook doesn't spam the logs on every failed attempt. */
|
|
31
|
+
warnedOnHookThrow = false;
|
|
28
32
|
resolve() {
|
|
29
33
|
return resolveConfig(this.app.config.get('telescope_ui', undefined));
|
|
30
34
|
}
|
|
@@ -57,44 +61,114 @@ export default class TelescopeUiProvider {
|
|
|
57
61
|
enabled: config.replay.enabled,
|
|
58
62
|
...(config.replay.port !== undefined ? { port: config.replay.port } : {}),
|
|
59
63
|
...(config.replay.timeoutMs !== undefined ? { timeoutMs: config.replay.timeoutMs } : {}),
|
|
64
|
+
},
|
|
65
|
+
// Pulse rollup options from core `config.telescope.pulse`.
|
|
66
|
+
{
|
|
67
|
+
windowMs: coreConfig.pulse.windowMs,
|
|
68
|
+
topN: coreConfig.pulse.topN,
|
|
69
|
+
buckets: coreConfig.pulse.buckets,
|
|
70
|
+
slowRouteMs: coreConfig.pulse.slowRouteMs,
|
|
71
|
+
cards: coreConfig.pulse.cards,
|
|
72
|
+
...(coreConfig.nPlusOne.enabled
|
|
73
|
+
? { nPlusOneThreshold: coreConfig.nPlusOne.threshold }
|
|
74
|
+
: {}),
|
|
60
75
|
});
|
|
61
76
|
const apiBase = `${config.path}/api`;
|
|
62
77
|
const router = await this.app.container.make('router');
|
|
63
78
|
const guard = config.authorize;
|
|
64
|
-
|
|
65
|
-
|
|
66
|
-
|
|
79
|
+
const auth = config.dashboardAuth;
|
|
80
|
+
// Composed guard: the existing `authorize` hook FIRST (writes 401/403 on denial), then — only
|
|
81
|
+
// when `dashboardAuth` is configured — the signed-session guard (a missing/invalid session on an
|
|
82
|
+
// API request is a plain 401). When `dashboardAuth` is omitted `auth` is null, so this is exactly
|
|
83
|
+
// `enforceGuard` and behavior is byte-for-byte unchanged.
|
|
84
|
+
const gate = async (ctx) => {
|
|
67
85
|
if (!(await enforceGuard(ctx, guard)))
|
|
68
|
-
return;
|
|
69
|
-
|
|
70
|
-
|
|
71
|
-
|
|
72
|
-
|
|
86
|
+
return false;
|
|
87
|
+
if (auth === null)
|
|
88
|
+
return true;
|
|
89
|
+
return enforceDashboardAuth(ctx, auth, 'api', config.path);
|
|
90
|
+
};
|
|
91
|
+
// Built-in `dashboardAuth` login screen (opt-in). Registered ONLY when configured, so omitting
|
|
92
|
+
// `dashboardAuth` leaves route registration byte-for-byte as it was. These endpoints are public
|
|
93
|
+
// (behind NEITHER guard): they MINT/clear the session the guard checks for, and the login page
|
|
94
|
+
// must stay reachable while unauthenticated — including in production, where the default
|
|
95
|
+
// `authorize` hook would otherwise deny it.
|
|
96
|
+
if (auth !== null) {
|
|
97
|
+
const loginPath = `${config.path}/login`;
|
|
98
|
+
const logoutPath = `${config.path}/logout`;
|
|
99
|
+
// `GET <path>/login` → the server-rendered login page. A static route, so it takes precedence
|
|
100
|
+
// over the SPA's `<path>/*` wildcard in the AdonisJS router. `returnTo`/`error` are read
|
|
101
|
+
// client-side from the query (never server-echoed), so the body is a static template.
|
|
102
|
+
router
|
|
103
|
+
.get(loginPath, async (ctx) => {
|
|
104
|
+
ctx.response.header('content-type', 'text/html; charset=utf-8');
|
|
105
|
+
ctx.response.header('cache-control', 'no-store, must-revalidate');
|
|
106
|
+
return ctx.response.send(renderLoginPage(config.path));
|
|
107
|
+
})
|
|
108
|
+
.as('telescope_ui.login.page');
|
|
109
|
+
// `POST <path>/login` → verify credentials via the host `login` hook and mint the cookie.
|
|
110
|
+
// Uniform `401` on ANY failure (unknown user, wrong password, or a throwing hook) so there is
|
|
111
|
+
// no user-enumeration; a throwing hook is warn-logged once, never surfaced to the client.
|
|
112
|
+
router
|
|
113
|
+
.post(loginPath, async (ctx) => {
|
|
114
|
+
const outcome = await performLogin(auth, ctx.request.body(), config.path);
|
|
115
|
+
if (outcome.kind === 'bad-request') {
|
|
116
|
+
return ctx.response.status(400).json({ error: outcome.message });
|
|
117
|
+
}
|
|
118
|
+
if (outcome.kind === 'unauthorized') {
|
|
119
|
+
if (outcome.hookError !== undefined && !this.warnedOnHookThrow) {
|
|
120
|
+
this.warnedOnHookThrow = true;
|
|
121
|
+
const message = outcome.hookError instanceof Error
|
|
122
|
+
? outcome.hookError.message
|
|
123
|
+
: String(outcome.hookError);
|
|
124
|
+
const logger = await this.app.container.make('logger');
|
|
125
|
+
logger.warn(`dashboardAuth login hook threw; treating as denial. ${message}`);
|
|
126
|
+
}
|
|
127
|
+
return ctx.response.status(401).json({ error: outcome.message });
|
|
128
|
+
}
|
|
129
|
+
writeSessionCookie(ctx, auth, outcome.cookieValue);
|
|
130
|
+
return ctx.response.status(200).json({ redirectTo: outcome.redirectTo });
|
|
131
|
+
})
|
|
132
|
+
.as('telescope_ui.login.submit');
|
|
133
|
+
// `GET <path>/logout` → clear the cookie and redirect back to the login page. A plain GET
|
|
134
|
+
// (idempotent, only ever destroys the caller's own session) so a simple `<a href>` works.
|
|
135
|
+
router
|
|
136
|
+
.get(logoutPath, async (ctx) => {
|
|
137
|
+
clearSessionCookie(ctx);
|
|
138
|
+
return ctx.response.redirect().toPath(loginPath);
|
|
139
|
+
})
|
|
140
|
+
.as('telescope_ui.logout');
|
|
141
|
+
}
|
|
142
|
+
// Dashboard page: served by the `@adonis-agora/telescope-ui` SPA provider (it mounts the built
|
|
143
|
+
// Vite app at the prefix root, behind this same `authorize` guard). The legacy self-contained
|
|
144
|
+
// inline-HTML dashboard (`renderDashboard`) is no longer auto-routed here; it remains exported
|
|
145
|
+
// from `@adonis-agora/telescope/ui` for embedding. This provider owns only the JSON API + SSE
|
|
146
|
+
// under `<path>/api/*`, which the SPA consumes.
|
|
73
147
|
// JSON API.
|
|
74
148
|
router
|
|
75
149
|
.get(`${apiBase}/entries`, async (ctx) => {
|
|
76
|
-
if (!(await
|
|
150
|
+
if (!(await gate(ctx)))
|
|
77
151
|
return;
|
|
78
152
|
return api.list(ctx);
|
|
79
153
|
})
|
|
80
154
|
.as('telescope_ui.entries');
|
|
81
155
|
router
|
|
82
156
|
.get(`${apiBase}/entries/:id`, async (ctx) => {
|
|
83
|
-
if (!(await
|
|
157
|
+
if (!(await gate(ctx)))
|
|
84
158
|
return;
|
|
85
159
|
return api.show(ctx, String(ctx.params.id));
|
|
86
160
|
})
|
|
87
161
|
.as('telescope_ui.entry');
|
|
88
162
|
router
|
|
89
163
|
.get(`${apiBase}/trace/:traceId`, async (ctx) => {
|
|
90
|
-
if (!(await
|
|
164
|
+
if (!(await gate(ctx)))
|
|
91
165
|
return;
|
|
92
166
|
return api.trace(ctx, String(ctx.params.traceId));
|
|
93
167
|
})
|
|
94
168
|
.as('telescope_ui.trace');
|
|
95
169
|
router
|
|
96
170
|
.get(`${apiBase}/stats`, async (ctx) => {
|
|
97
|
-
if (!(await
|
|
171
|
+
if (!(await gate(ctx)))
|
|
98
172
|
return;
|
|
99
173
|
return api.stats(ctx);
|
|
100
174
|
})
|
|
@@ -104,7 +178,7 @@ export default class TelescopeUiProvider {
|
|
|
104
178
|
// 403 unless telescope_ui `replay.enabled` is set) on top of the read guard.
|
|
105
179
|
router
|
|
106
180
|
.post(`${apiBase}/requests/:id/replay`, async (ctx) => {
|
|
107
|
-
if (!(await
|
|
181
|
+
if (!(await gate(ctx)))
|
|
108
182
|
return;
|
|
109
183
|
return api.replayRequest(ctx, String(ctx.params.id), localPortOf(ctx));
|
|
110
184
|
})
|
|
@@ -112,39 +186,49 @@ export default class TelescopeUiProvider {
|
|
|
112
186
|
// Metrics analytics (stats/timeseries/percentiles/traces/waterfall) + N+1.
|
|
113
187
|
router
|
|
114
188
|
.get(`${apiBase}/metrics/stats`, async (ctx) => {
|
|
115
|
-
if (!(await
|
|
189
|
+
if (!(await gate(ctx)))
|
|
116
190
|
return;
|
|
117
191
|
return api.metricsStats(ctx);
|
|
118
192
|
})
|
|
119
193
|
.as('telescope_ui.metrics_stats');
|
|
120
194
|
router
|
|
121
195
|
.get(`${apiBase}/metrics/timeseries`, async (ctx) => {
|
|
122
|
-
if (!(await
|
|
196
|
+
if (!(await gate(ctx)))
|
|
123
197
|
return;
|
|
124
198
|
return api.metricsTimeseries(ctx);
|
|
125
199
|
})
|
|
126
200
|
.as('telescope_ui.metrics_timeseries');
|
|
127
201
|
router
|
|
128
202
|
.get(`${apiBase}/metrics/traces`, async (ctx) => {
|
|
129
|
-
if (!(await
|
|
203
|
+
if (!(await gate(ctx)))
|
|
130
204
|
return;
|
|
131
205
|
return api.metricsTraces(ctx);
|
|
132
206
|
})
|
|
133
207
|
.as('telescope_ui.metrics_traces');
|
|
134
208
|
router
|
|
135
209
|
.get(`${apiBase}/metrics/waterfall/:traceId`, async (ctx) => {
|
|
136
|
-
if (!(await
|
|
210
|
+
if (!(await gate(ctx)))
|
|
137
211
|
return;
|
|
138
212
|
return api.metricsWaterfall(ctx, String(ctx.params.traceId));
|
|
139
213
|
})
|
|
140
214
|
.as('telescope_ui.metrics_waterfall');
|
|
141
215
|
router
|
|
142
216
|
.get(`${apiBase}/metrics/n-plus-one/:traceId`, async (ctx) => {
|
|
143
|
-
if (!(await
|
|
217
|
+
if (!(await gate(ctx)))
|
|
144
218
|
return;
|
|
145
219
|
return api.metricsNPlusOne(ctx, String(ctx.params.traceId));
|
|
146
220
|
})
|
|
147
221
|
.as('telescope_ui.metrics_n_plus_one');
|
|
222
|
+
// Pulse — aggregated health rollup. Registered only when enabled in core config.
|
|
223
|
+
if (coreConfig.pulse.enabled) {
|
|
224
|
+
router
|
|
225
|
+
.get(`${apiBase}/metrics/pulse`, async (ctx) => {
|
|
226
|
+
if (!(await gate(ctx)))
|
|
227
|
+
return;
|
|
228
|
+
return api.metricsPulse(ctx);
|
|
229
|
+
})
|
|
230
|
+
.as('telescope_ui.metrics_pulse');
|
|
231
|
+
}
|
|
148
232
|
// ───────────────────────── SSE live-stream (additive) ─────────────────────────
|
|
149
233
|
// New entries (already redacted + post-sampling) streamed to the dashboard as
|
|
150
234
|
// they arrive. Registered only when the entry-events bus is live (core
|
|
@@ -153,7 +237,7 @@ export default class TelescopeUiProvider {
|
|
|
153
237
|
if (entryEvents) {
|
|
154
238
|
router
|
|
155
239
|
.get(`${apiBase}/stream`, async (ctx) => {
|
|
156
|
-
if (!(await
|
|
240
|
+
if (!(await gate(ctx)))
|
|
157
241
|
return;
|
|
158
242
|
const raw = ctx.response.response;
|
|
159
243
|
raw.writeHead(200, {
|
|
@@ -184,14 +268,14 @@ export default class TelescopeUiProvider {
|
|
|
184
268
|
const extApi = new ExtensionApi(registry, extCtx);
|
|
185
269
|
router
|
|
186
270
|
.get(`${apiBase}/meta`, async (ctx) => {
|
|
187
|
-
if (!(await
|
|
271
|
+
if (!(await gate(ctx)))
|
|
188
272
|
return;
|
|
189
273
|
return extApi.meta(ctx);
|
|
190
274
|
})
|
|
191
275
|
.as('telescope_ui.meta');
|
|
192
276
|
router
|
|
193
277
|
.get(`${apiBase}/ext/:ext/data/:provider`, async (ctx) => {
|
|
194
|
-
if (!(await
|
|
278
|
+
if (!(await gate(ctx)))
|
|
195
279
|
return;
|
|
196
280
|
return extApi.data(ctx, String(ctx.params.ext), String(ctx.params.provider));
|
|
197
281
|
})
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"telescope_ui_provider.js","sourceRoot":"","sources":["../../providers/telescope_ui_provider.ts"],"names":[],"mappings":"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"}
|
|
1
|
+
{"version":3,"file":"telescope_ui_provider.js","sourceRoot":"","sources":["../../providers/telescope_ui_provider.ts"],"names":[],"mappings":"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"}
|
|
@@ -18,6 +18,15 @@ export default class TelescopeWatchersProvider {
|
|
|
18
18
|
/** Read the watchers config from its own file or the telescope config block. */
|
|
19
19
|
private resolve;
|
|
20
20
|
boot(): Promise<void>;
|
|
21
|
+
/** Start the profiling watcher: it publishes a config-backed default for the
|
|
22
|
+
* opt-in `profile()` / `startProfile()` span helpers (no emitter, no global
|
|
23
|
+
* patch). While unstarted those helpers are a zero-cost no-op. */
|
|
24
|
+
private startProfilingWatcher;
|
|
25
|
+
/** Start the schedule watcher: it publishes a config-backed default for the
|
|
26
|
+
* opt-in `scheduleTask()` / `recordScheduledRun()` helpers (AdonisJS ships no
|
|
27
|
+
* scheduler event to tap, so integration is explicit — no emitter, no global
|
|
28
|
+
* patch). While unstarted those helpers are a zero-cost no-op. */
|
|
29
|
+
private startScheduleWatcher;
|
|
21
30
|
/** Start the queue watcher: it taps the engine's `node:diagnostics_channel`
|
|
22
31
|
* trace, so it needs no emitter and no container resolution. A no-op (nothing
|
|
23
32
|
* publishes) when `@adonisjs/queue` is absent. */
|
|
@@ -29,8 +38,10 @@ export default class TelescopeWatchersProvider {
|
|
|
29
38
|
* manager resolved from the container. A missing peer / binding degrades to a
|
|
30
39
|
* no-op (the watcher itself no-ops on a null manager). */
|
|
31
40
|
private startRedisWatcher;
|
|
32
|
-
/**
|
|
33
|
-
*
|
|
41
|
+
/** Wire the http-client watcher: it does NOT patch any global (Adonis has no
|
|
42
|
+
* single built-in HTTP client). Instead it publishes a config-backed default
|
|
43
|
+
* for the opt-in `instrumentFetch(fetch)` helper users wrap their client with,
|
|
44
|
+
* so it needs no emitter and no container resolution. */
|
|
34
45
|
private startHttpClientWatcher;
|
|
35
46
|
/** Start the logs watcher: it taps the application logger resolved from the
|
|
36
47
|
* container (instance-scoped, reversible method tee — no global patching). */
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"telescope_watchers_provider.d.ts","sourceRoot":"","sources":["../../providers/telescope_watchers_provider.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,kBAAkB,EAAE,MAAM,sBAAsB,CAAC;
|
|
1
|
+
{"version":3,"file":"telescope_watchers_provider.d.ts","sourceRoot":"","sources":["../../providers/telescope_watchers_provider.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,kBAAkB,EAAE,MAAM,sBAAsB,CAAC;AAgC/D;;;;;;;;;;;GAWG;AACH,MAAM,CAAC,OAAO,OAAO,yBAAyB;IAGhC,SAAS,CAAC,GAAG,EAAE,kBAAkB;IAF7C,OAAO,CAAC,QAAQ,CAAC,OAAO,CAAyC;gBAE3C,GAAG,EAAE,kBAAkB;IAE7C,gFAAgF;IAChF,OAAO,CAAC,OAAO;IAeT,IAAI;IAmCV;;uEAEmE;IACnE,OAAO,CAAC,qBAAqB;IAc7B;;;uEAGmE;IACnE,OAAO,CAAC,oBAAoB;IAW5B;;uDAEmD;IACnD,OAAO,CAAC,iBAAiB;IAWzB;iDAC6C;IAC7C,OAAO,CAAC,kBAAkB;IAW1B;;+DAE2D;YAC7C,iBAAiB;IAkB/B;;;8DAG0D;IAC1D,OAAO,CAAC,sBAAsB;IAe9B;mFAC+E;YACjE,gBAAgB;IAmB9B,uEAAuE;IACvE,OAAO,CAAC,YAAY;IAYd,QAAQ;CAUf"}
|
|
@@ -5,8 +5,10 @@ import { HttpClientWatcher } from '../src/watchers/http_client_watcher.js';
|
|
|
5
5
|
import { LogsWatcher } from '../src/watchers/logs_watcher.js';
|
|
6
6
|
import { LucidQueryWatcher } from '../src/watchers/lucid_query_watcher.js';
|
|
7
7
|
import { MailWatcher } from '../src/watchers/mail_watcher.js';
|
|
8
|
+
import { ProfilingWatcher } from '../src/watchers/profiling_watcher.js';
|
|
8
9
|
import { QueueWatcher } from '../src/watchers/queue_watcher.js';
|
|
9
10
|
import { RedisWatcher } from '../src/watchers/redis_watcher.js';
|
|
11
|
+
import { ScheduleWatcher } from '../src/watchers/schedule_watcher.js';
|
|
10
12
|
/**
|
|
11
13
|
* Wires `@adonis-agora/telescope/watchers` into the AdonisJS application.
|
|
12
14
|
*
|
|
@@ -47,14 +49,20 @@ export default class TelescopeWatchersProvider {
|
|
|
47
49
|
console.error(`TelescopeWatchersProvider: could not resolve the emitter: ${message}`);
|
|
48
50
|
return;
|
|
49
51
|
}
|
|
50
|
-
if (config.watchers.has('query'))
|
|
51
|
-
this.startWatcher(new LucidQueryWatcher(
|
|
52
|
+
if (config.watchers.has('query')) {
|
|
53
|
+
this.startWatcher(new LucidQueryWatcher({
|
|
54
|
+
slowMs: config.query.slowMs,
|
|
55
|
+
captureBindings: config.query.captureBindings,
|
|
56
|
+
ignoreConnections: config.query.ignoreConnections,
|
|
57
|
+
normalize: config.query.normalize,
|
|
58
|
+
}), emitter);
|
|
59
|
+
}
|
|
52
60
|
if (config.watchers.has('mail'))
|
|
53
61
|
this.startWatcher(new MailWatcher(), emitter);
|
|
54
62
|
if (config.watchers.has('cache'))
|
|
55
63
|
this.startWatcher(new CacheWatcher(), emitter);
|
|
56
64
|
if (config.watchers.has('http-client'))
|
|
57
|
-
this.startHttpClientWatcher();
|
|
65
|
+
this.startHttpClientWatcher(config);
|
|
58
66
|
if (config.watchers.has('logs'))
|
|
59
67
|
await this.startLogsWatcher();
|
|
60
68
|
if (config.watchers.has('queue'))
|
|
@@ -63,6 +71,42 @@ export default class TelescopeWatchersProvider {
|
|
|
63
71
|
this.startEventsWatcher(emitter);
|
|
64
72
|
if (config.watchers.has('redis'))
|
|
65
73
|
await this.startRedisWatcher();
|
|
74
|
+
if (config.watchers.has('profiling'))
|
|
75
|
+
this.startProfilingWatcher(config);
|
|
76
|
+
if (config.watchers.has('schedule'))
|
|
77
|
+
this.startScheduleWatcher(config);
|
|
78
|
+
}
|
|
79
|
+
/** Start the profiling watcher: it publishes a config-backed default for the
|
|
80
|
+
* opt-in `profile()` / `startProfile()` span helpers (no emitter, no global
|
|
81
|
+
* patch). While unstarted those helpers are a zero-cost no-op. */
|
|
82
|
+
startProfilingWatcher(config) {
|
|
83
|
+
const watcher = new ProfilingWatcher({
|
|
84
|
+
slowMs: config.profiling.slowMs,
|
|
85
|
+
minDurationMs: config.profiling.minDurationMs,
|
|
86
|
+
});
|
|
87
|
+
try {
|
|
88
|
+
watcher.start();
|
|
89
|
+
this.started.push(watcher);
|
|
90
|
+
}
|
|
91
|
+
catch (err) {
|
|
92
|
+
const message = err instanceof Error ? err.message : String(err);
|
|
93
|
+
console.error(`TelescopeWatchersProvider: failed to start profiling watcher: ${message}`);
|
|
94
|
+
}
|
|
95
|
+
}
|
|
96
|
+
/** Start the schedule watcher: it publishes a config-backed default for the
|
|
97
|
+
* opt-in `scheduleTask()` / `recordScheduledRun()` helpers (AdonisJS ships no
|
|
98
|
+
* scheduler event to tap, so integration is explicit — no emitter, no global
|
|
99
|
+
* patch). While unstarted those helpers are a zero-cost no-op. */
|
|
100
|
+
startScheduleWatcher(config) {
|
|
101
|
+
const watcher = new ScheduleWatcher({ slowMs: config.schedule.slowMs });
|
|
102
|
+
try {
|
|
103
|
+
watcher.start();
|
|
104
|
+
this.started.push(watcher);
|
|
105
|
+
}
|
|
106
|
+
catch (err) {
|
|
107
|
+
const message = err instanceof Error ? err.message : String(err);
|
|
108
|
+
console.error(`TelescopeWatchersProvider: failed to start schedule watcher: ${message}`);
|
|
109
|
+
}
|
|
66
110
|
}
|
|
67
111
|
/** Start the queue watcher: it taps the engine's `node:diagnostics_channel`
|
|
68
112
|
* trace, so it needs no emitter and no container resolution. A no-op (nothing
|
|
@@ -113,10 +157,16 @@ export default class TelescopeWatchersProvider {
|
|
|
113
157
|
console.error(`TelescopeWatchersProvider: failed to start redis watcher: ${message}`);
|
|
114
158
|
}
|
|
115
159
|
}
|
|
116
|
-
/**
|
|
117
|
-
*
|
|
118
|
-
|
|
119
|
-
|
|
160
|
+
/** Wire the http-client watcher: it does NOT patch any global (Adonis has no
|
|
161
|
+
* single built-in HTTP client). Instead it publishes a config-backed default
|
|
162
|
+
* for the opt-in `instrumentFetch(fetch)` helper users wrap their client with,
|
|
163
|
+
* so it needs no emitter and no container resolution. */
|
|
164
|
+
startHttpClientWatcher(config) {
|
|
165
|
+
const watcher = new HttpClientWatcher({
|
|
166
|
+
slowMs: config.httpClient.slowMs,
|
|
167
|
+
ignoreHosts: config.httpClient.ignoreHosts,
|
|
168
|
+
captureBodies: config.httpClient.captureBodies,
|
|
169
|
+
});
|
|
120
170
|
try {
|
|
121
171
|
watcher.start();
|
|
122
172
|
this.started.push(watcher);
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"telescope_watchers_provider.js","sourceRoot":"","sources":["../../providers/telescope_watchers_provider.ts"],"names":[],"mappings":"AACA,OAAO,EAAE,YAAY,EAAE,MAAM,kCAAkC,CAAC;AAChE,OAAO,EAGL,aAAa,GACd,MAAM,kCAAkC,CAAC;AAE1C,OAAO,EAAE,aAAa,EAAE,MAAM,mCAAmC,CAAC;AAClE,OAAO,EAAE,iBAAiB,EAAE,MAAM,wCAAwC,CAAC;AAC3E,OAAO,EAAmB,WAAW,EAAE,MAAM,iCAAiC,CAAC;AAC/E,OAAO,EAAE,iBAAiB,EAAE,MAAM,wCAAwC,CAAC;AAC3E,OAAO,EAAE,WAAW,EAAE,MAAM,iCAAiC,CAAC;AAC9D,OAAO,EAAE,YAAY,EAAE,MAAM,kCAAkC,CAAC;AAChE,OAAO,EAAE,YAAY,EAAE,MAAM,kCAAkC,CAAC;
|
|
1
|
+
{"version":3,"file":"telescope_watchers_provider.js","sourceRoot":"","sources":["../../providers/telescope_watchers_provider.ts"],"names":[],"mappings":"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"}
|
|
@@ -1,3 +1,4 @@
|
|
|
1
|
+
import type { AnthropicMessagesClient } from './telescope_ai_diagnoser.js';
|
|
1
2
|
/**
|
|
2
3
|
* Default Claude model for diagnosis. Sonnet 4.6 is the best speed/intelligence
|
|
3
4
|
* balance for a short structured triage; override with a more capable model
|
|
@@ -10,6 +11,12 @@ declare const DEFAULT_MODEL = "claude-sonnet-4-6";
|
|
|
10
11
|
* huge, expensive response. 1024 tokens comfortably fits cause + fix + confidence.
|
|
11
12
|
*/
|
|
12
13
|
declare const DEFAULT_MAX_TOKENS = 1024;
|
|
14
|
+
/**
|
|
15
|
+
* Default per-diagnosis wall-clock budget the coordinator enforces (ms). A slower
|
|
16
|
+
* model call loses the race and the caller (MCP tool / alert) proceeds without the
|
|
17
|
+
* AI note rather than hanging.
|
|
18
|
+
*/
|
|
19
|
+
declare const DEFAULT_TIMEOUT_MS = 8000;
|
|
13
20
|
/**
|
|
14
21
|
* The shape of `config/telescope_ai.ts`. The API key is sourced from the
|
|
15
22
|
* environment via the host's `env.get(...)` — never hardcoded — so it stays out of
|
|
@@ -17,27 +24,52 @@ declare const DEFAULT_MAX_TOKENS = 1024;
|
|
|
17
24
|
*/
|
|
18
25
|
export interface TelescopeAiConfig {
|
|
19
26
|
/**
|
|
20
|
-
* Master switch. When `false` (or when
|
|
21
|
-
* no-op: `diagnose` returns `null` and never calls
|
|
27
|
+
* Master switch. When `false` (or when neither an `apiKey` nor a `client`
|
|
28
|
+
* resolves), the diagnoser is a no-op: `diagnose` returns `null` and never calls
|
|
29
|
+
* the API. Default `true`.
|
|
22
30
|
*/
|
|
23
31
|
enabled?: boolean;
|
|
24
32
|
/**
|
|
25
|
-
* The Anthropic API key, e.g. `env.get('ANTHROPIC_API_KEY')`. When absent
|
|
26
|
-
* diagnoser is effectively disabled (no-op), so the
|
|
27
|
-
* no key configured.
|
|
33
|
+
* The Anthropic API key, e.g. `env.get('ANTHROPIC_API_KEY')`. When absent (and no
|
|
34
|
+
* `client` is supplied) the diagnoser is effectively disabled (no-op), so the
|
|
35
|
+
* package degrades safely with no key configured.
|
|
28
36
|
*/
|
|
29
37
|
apiKey?: string;
|
|
38
|
+
/**
|
|
39
|
+
* A host-supplied provider — any value matching {@link AnthropicMessagesClient}.
|
|
40
|
+
* When set, it is used verbatim (the `apiKey` is then ignored) so a host can wire
|
|
41
|
+
* its OWN model client without this package ever constructing the Anthropic SDK.
|
|
42
|
+
* This is the "provider hook" that keeps the LLM dependency optional.
|
|
43
|
+
*/
|
|
44
|
+
client?: AnthropicMessagesClient;
|
|
30
45
|
/** Claude model id. Default `claude-sonnet-4-6`. */
|
|
31
46
|
model?: string;
|
|
32
47
|
/** Hard cap on generated tokens per diagnosis. Default 1024. */
|
|
33
48
|
maxTokens?: number;
|
|
49
|
+
/**
|
|
50
|
+
* How long a cached diagnosis stays fresh, in ms. Defaults to the diagnosis
|
|
51
|
+
* cache's own default (24h). A family is diagnosed once, then served from cache
|
|
52
|
+
* until this elapses.
|
|
53
|
+
*/
|
|
54
|
+
cacheTtlMs?: number;
|
|
55
|
+
/**
|
|
56
|
+
* Per-diagnosis wall-clock timeout the coordinator enforces, in ms. `<= 0`
|
|
57
|
+
* disables it. Default 8000.
|
|
58
|
+
*/
|
|
59
|
+
timeoutMs?: number;
|
|
34
60
|
}
|
|
35
|
-
/** The fully-resolved AI config the diagnoser
|
|
61
|
+
/** The fully-resolved AI config the diagnoser/coordinator act on (no optionals). */
|
|
36
62
|
export interface ResolvedTelescopeAiConfig {
|
|
37
63
|
enabled: boolean;
|
|
38
64
|
apiKey: string | null;
|
|
65
|
+
/** A host-supplied provider, or `null` to construct one from `apiKey`. */
|
|
66
|
+
client: AnthropicMessagesClient | null;
|
|
39
67
|
model: string;
|
|
40
68
|
maxTokens: number;
|
|
69
|
+
/** Cache TTL override in ms, or `null` to use the cache's default. */
|
|
70
|
+
cacheTtlMs: number | null;
|
|
71
|
+
/** Coordinator per-diagnosis timeout in ms. */
|
|
72
|
+
timeoutMs: number;
|
|
41
73
|
}
|
|
42
74
|
/**
|
|
43
75
|
* Identity helper giving `config/telescope_ai.ts` full type-checking, mirroring the
|
|
@@ -52,5 +84,5 @@ export interface ResolvedTelescopeAiConfig {
|
|
|
52
84
|
export declare function defineConfig(config: TelescopeAiConfig): TelescopeAiConfig;
|
|
53
85
|
/** Apply defaults to a (possibly partial) config. */
|
|
54
86
|
export declare function resolveConfig(config?: TelescopeAiConfig): ResolvedTelescopeAiConfig;
|
|
55
|
-
export { DEFAULT_MODEL, DEFAULT_MAX_TOKENS };
|
|
87
|
+
export { DEFAULT_MODEL, DEFAULT_MAX_TOKENS, DEFAULT_TIMEOUT_MS };
|
|
56
88
|
//# sourceMappingURL=define_config.d.ts.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"define_config.d.ts","sourceRoot":"","sources":["../../../src/ai/define_config.ts"],"names":[],"mappings":"AAAA;;;;GAIG;AACH,QAAA,MAAM,aAAa,sBAAsB,CAAC;AAE1C;;;;GAIG;AACH,QAAA,MAAM,kBAAkB,OAAO,CAAC;AAEhC;;;;GAIG;AACH,MAAM,WAAW,iBAAiB;IAChC
|
|
1
|
+
{"version":3,"file":"define_config.d.ts","sourceRoot":"","sources":["../../../src/ai/define_config.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,uBAAuB,EAAE,MAAM,6BAA6B,CAAC;AAE3E;;;;GAIG;AACH,QAAA,MAAM,aAAa,sBAAsB,CAAC;AAE1C;;;;GAIG;AACH,QAAA,MAAM,kBAAkB,OAAO,CAAC;AAEhC;;;;GAIG;AACH,QAAA,MAAM,kBAAkB,OAAQ,CAAC;AAEjC;;;;GAIG;AACH,MAAM,WAAW,iBAAiB;IAChC;;;;OAIG;IACH,OAAO,CAAC,EAAE,OAAO,CAAC;IAClB;;;;OAIG;IACH,MAAM,CAAC,EAAE,MAAM,CAAC;IAChB;;;;;OAKG;IACH,MAAM,CAAC,EAAE,uBAAuB,CAAC;IACjC,oDAAoD;IACpD,KAAK,CAAC,EAAE,MAAM,CAAC;IACf,gEAAgE;IAChE,SAAS,CAAC,EAAE,MAAM,CAAC;IACnB;;;;OAIG;IACH,UAAU,CAAC,EAAE,MAAM,CAAC;IACpB;;;OAGG;IACH,SAAS,CAAC,EAAE,MAAM,CAAC;CACpB;AAED,oFAAoF;AACpF,MAAM,WAAW,yBAAyB;IACxC,OAAO,EAAE,OAAO,CAAC;IACjB,MAAM,EAAE,MAAM,GAAG,IAAI,CAAC;IACtB,0EAA0E;IAC1E,MAAM,EAAE,uBAAuB,GAAG,IAAI,CAAC;IACvC,KAAK,EAAE,MAAM,CAAC;IACd,SAAS,EAAE,MAAM,CAAC;IAClB,sEAAsE;IACtE,UAAU,EAAE,MAAM,GAAG,IAAI,CAAC;IAC1B,+CAA+C;IAC/C,SAAS,EAAE,MAAM,CAAC;CACnB;AAED;;;;;;;;;GASG;AACH,wBAAgB,YAAY,CAAC,MAAM,EAAE,iBAAiB,GAAG,iBAAiB,CAEzE;AAED,qDAAqD;AACrD,wBAAgB,aAAa,CAAC,MAAM,GAAE,iBAAsB,GAAG,yBAAyB,CAgBvF;AAED,OAAO,EAAE,aAAa,EAAE,kBAAkB,EAAE,kBAAkB,EAAE,CAAC"}
|
|
@@ -10,6 +10,12 @@ const DEFAULT_MODEL = 'claude-sonnet-4-6';
|
|
|
10
10
|
* huge, expensive response. 1024 tokens comfortably fits cause + fix + confidence.
|
|
11
11
|
*/
|
|
12
12
|
const DEFAULT_MAX_TOKENS = 1024;
|
|
13
|
+
/**
|
|
14
|
+
* Default per-diagnosis wall-clock budget the coordinator enforces (ms). A slower
|
|
15
|
+
* model call loses the race and the caller (MCP tool / alert) proceeds without the
|
|
16
|
+
* AI note rather than hanging.
|
|
17
|
+
*/
|
|
18
|
+
const DEFAULT_TIMEOUT_MS = 8_000;
|
|
13
19
|
/**
|
|
14
20
|
* Identity helper giving `config/telescope_ai.ts` full type-checking, mirroring the
|
|
15
21
|
* AdonisJS `defineConfig` convention.
|
|
@@ -26,14 +32,18 @@ export function defineConfig(config) {
|
|
|
26
32
|
/** Apply defaults to a (possibly partial) config. */
|
|
27
33
|
export function resolveConfig(config = {}) {
|
|
28
34
|
const apiKey = typeof config.apiKey === 'string' && config.apiKey.trim() !== '' ? config.apiKey : null;
|
|
35
|
+
const client = config.client ?? null;
|
|
29
36
|
return {
|
|
30
|
-
// A configured-but-
|
|
31
|
-
// calls
|
|
32
|
-
enabled: (config.enabled ?? true) && apiKey !== null,
|
|
37
|
+
// A configured-but-provider-less install (no key AND no client) is treated as
|
|
38
|
+
// disabled so nothing ever calls a model without a way to reach one.
|
|
39
|
+
enabled: (config.enabled ?? true) && (apiKey !== null || client !== null),
|
|
33
40
|
apiKey,
|
|
41
|
+
client,
|
|
34
42
|
model: config.model ?? DEFAULT_MODEL,
|
|
35
43
|
maxTokens: config.maxTokens ?? DEFAULT_MAX_TOKENS,
|
|
44
|
+
cacheTtlMs: typeof config.cacheTtlMs === 'number' && config.cacheTtlMs > 0 ? config.cacheTtlMs : null,
|
|
45
|
+
timeoutMs: typeof config.timeoutMs === 'number' ? config.timeoutMs : DEFAULT_TIMEOUT_MS,
|
|
36
46
|
};
|
|
37
47
|
}
|
|
38
|
-
export { DEFAULT_MODEL, DEFAULT_MAX_TOKENS };
|
|
48
|
+
export { DEFAULT_MODEL, DEFAULT_MAX_TOKENS, DEFAULT_TIMEOUT_MS };
|
|
39
49
|
//# sourceMappingURL=define_config.js.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"define_config.js","sourceRoot":"","sources":["../../../src/ai/define_config.ts"],"names":[],"mappings":"
|
|
1
|
+
{"version":3,"file":"define_config.js","sourceRoot":"","sources":["../../../src/ai/define_config.ts"],"names":[],"mappings":"AAEA;;;;GAIG;AACH,MAAM,aAAa,GAAG,mBAAmB,CAAC;AAE1C;;;;GAIG;AACH,MAAM,kBAAkB,GAAG,IAAI,CAAC;AAEhC;;;;GAIG;AACH,MAAM,kBAAkB,GAAG,KAAK,CAAC;AA0DjC;;;;;;;;;GASG;AACH,MAAM,UAAU,YAAY,CAAC,MAAyB;IACpD,OAAO,MAAM,CAAC;AAChB,CAAC;AAED,qDAAqD;AACrD,MAAM,UAAU,aAAa,CAAC,SAA4B,EAAE;IAC1D,MAAM,MAAM,GACV,OAAO,MAAM,CAAC,MAAM,KAAK,QAAQ,IAAI,MAAM,CAAC,MAAM,CAAC,IAAI,EAAE,KAAK,EAAE,CAAC,CAAC,CAAC,MAAM,CAAC,MAAM,CAAC,CAAC,CAAC,IAAI,CAAC;IAC1F,MAAM,MAAM,GAAG,MAAM,CAAC,MAAM,IAAI,IAAI,CAAC;IACrC,OAAO;QACL,8EAA8E;QAC9E,qEAAqE;QACrE,OAAO,EAAE,CAAC,MAAM,CAAC,OAAO,IAAI,IAAI,CAAC,IAAI,CAAC,MAAM,KAAK,IAAI,IAAI,MAAM,KAAK,IAAI,CAAC;QACzE,MAAM;QACN,MAAM;QACN,KAAK,EAAE,MAAM,CAAC,KAAK,IAAI,aAAa;QACpC,SAAS,EAAE,MAAM,CAAC,SAAS,IAAI,kBAAkB;QACjD,UAAU,EACR,OAAO,MAAM,CAAC,UAAU,KAAK,QAAQ,IAAI,MAAM,CAAC,UAAU,GAAG,CAAC,CAAC,CAAC,CAAC,MAAM,CAAC,UAAU,CAAC,CAAC,CAAC,IAAI;QAC3F,SAAS,EAAE,OAAO,MAAM,CAAC,SAAS,KAAK,QAAQ,CAAC,CAAC,CAAC,MAAM,CAAC,SAAS,CAAC,CAAC,CAAC,kBAAkB;KACxF,CAAC;AACJ,CAAC;AAED,OAAO,EAAE,aAAa,EAAE,kBAAkB,EAAE,kBAAkB,EAAE,CAAC"}
|