autotel-devtools 18.0.0 → 19.1.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/README.md +1 -1
- package/dist/cli.cjs +10 -4
- package/dist/cli.js +10 -4
- package/dist/{http-bOYC2_Z0.cjs → http-53ldVU8k.cjs} +13 -3
- package/dist/{http-BLmWVZP0.js → http-B8rl56bF.js} +13 -3
- package/dist/index.cjs +1 -1
- package/dist/index.js +1 -1
- package/dist/server/index.cjs +1 -1
- package/dist/server/index.d.cts +3 -0
- package/dist/server/index.d.ts +3 -0
- package/dist/server/index.js +1 -1
- package/dist/widget.global.js +1 -1
- package/package.json +2 -2
package/README.md
CHANGED
|
@@ -237,7 +237,7 @@ Options:
|
|
|
237
237
|
|
|
238
238
|
- `--port, -p` - Port to listen on (default: 4318). If the port is taken, the receiver walks forward to the next free port and prints a warning.
|
|
239
239
|
- `--host, -H` - Host to bind to (default: 127.0.0.1)
|
|
240
|
-
- `--title, -t` - Dashboard title
|
|
240
|
+
- `--title, -t` - Dashboard title, used for the startup banner and the browser tab (default: `autotel-devtools`). Useful when several dashboards are open at once.
|
|
241
241
|
|
|
242
242
|
When bound to a loopback host, the receiver listens on **both** `127.0.0.1`
|
|
243
243
|
and `::1`, so a client connecting via `localhost` reaches it regardless of how
|
package/dist/cli.cjs
CHANGED
|
@@ -1,5 +1,5 @@
|
|
|
1
1
|
#!/usr/bin/env node
|
|
2
|
-
const require_http = require('./http-
|
|
2
|
+
const require_http = require('./http-53ldVU8k.cjs');
|
|
3
3
|
const require_listen = require('./listen-DGzVi7DE.cjs');
|
|
4
4
|
let node_http = require("node:http");
|
|
5
5
|
let node_fs = require("node:fs");
|
|
@@ -9,7 +9,7 @@ let node_child_process = require("node:child_process");
|
|
|
9
9
|
|
|
10
10
|
//#region src/cli.ts
|
|
11
11
|
function printHelp() {
|
|
12
|
-
process.stdout.write("autotel-devtools - Standalone OTLP receiver with web devtools UI\n\nUsage: autotel-devtools [port] [options]\n autotel-devtools claude [claude args] [--print-env] [--log-prompts]\n\nSubcommands:\n claude Start the receiver AND launch Claude Code wired to it\n (HTTP/protobuf → this receiver, 1s intervals, session id on).\n Open the \"Agents\" tab to watch sessions, tokens, cost,\n tool / MCP / sub-agent / skill usage live.\n --print-env Print the telemetry env block and exit (don't launch)\n --log-prompts Capture prompt text (default: length only / private)\n\nArguments:\n port Port to listen on (shorthand for --port; must be a positive integer)\n\nOptions:\n -p, --port <port> Port to listen on (default: 4318, env: AUTOTEL_DEVTOOLS_PORT).\n If the port is taken, the next free port is used and a warning is shown.\n -H, --host <host> Host to bind to (default: 127.0.0.1, env: AUTOTEL_DEVTOOLS_HOST)\n -t, --title <title> Dashboard title (env: AUTOTEL_DEVTOOLS_TITLE)\n Env limits: AUTOTEL_MAX_TRACE_COUNT, AUTOTEL_MAX_LOG_COUNT, AUTOTEL_MAX_METRIC_COUNT\n -h, --help Show this help message\n -v, --version Show version number\n\nEndpoints:\n GET / Web devtools UI (fullpage)\n GET /widget.js Widget bundle (embed in your app)\n POST /v1/traces Receive OTLP JSON trace data\n GET /v1/traces Read back received traces (verify ingestion in tests)\n DELETE /v1/traces Clear captured telemetry (test reset)\n POST /v1/logs Receive OTLP JSON log data\n POST /v1/metrics Receive OTLP JSON metric data\n WS /ws WebSocket stream for real-time updates\n GET /healthz Health check\n\nExamples:\n npx autotel-devtools\n npx autotel-devtools 4319\n npx autotel-devtools -p 4319 -H 0.0.0.0\n npx autotel-devtools claude # watch Claude Code in the Agents tab\n npx autotel-devtools claude --print-env # just print the env (for MDM / VS Code)\n\nThen point your app:\n OTEL_EXPORTER_OTLP_PROTOCOL=http/json OTEL_EXPORTER_OTLP_ENDPOINT=http://localhost:4318 node app.js\n\nView in browser:\n http://localhost:4318\n\nOr embed widget in your app:\n <script src=\"http://localhost:4318/widget.js\"><\/script>\n\n");
|
|
12
|
+
process.stdout.write("autotel-devtools - Standalone OTLP receiver with web devtools UI\n\nUsage: autotel-devtools [port] [options]\n autotel-devtools claude [claude args] [--print-env] [--log-prompts]\n\nSubcommands:\n claude Start the receiver AND launch Claude Code wired to it\n (HTTP/protobuf → this receiver, 1s intervals, session id on).\n Open the \"Agents\" tab to watch sessions, tokens, cost,\n tool / MCP / sub-agent / skill usage live.\n --print-env Print the telemetry env block and exit (don't launch)\n --log-prompts Capture prompt text (default: length only / private)\n\nArguments:\n port Port to listen on (shorthand for --port; must be a positive integer)\n\nOptions:\n -p, --port <port> Port to listen on (default: 4318, env: AUTOTEL_DEVTOOLS_PORT).\n If the port is taken, the next free port is used and a warning is shown.\n -H, --host <host> Host to bind to (default: 127.0.0.1, env: AUTOTEL_DEVTOOLS_HOST)\n -t, --title <title> Dashboard title, shown in the banner and browser tab\n (env: AUTOTEL_DEVTOOLS_TITLE)\n Env limits: AUTOTEL_MAX_TRACE_COUNT, AUTOTEL_MAX_LOG_COUNT, AUTOTEL_MAX_METRIC_COUNT\n -h, --help Show this help message\n -v, --version Show version number\n\nEndpoints:\n GET / Web devtools UI (fullpage)\n GET /widget.js Widget bundle (embed in your app)\n POST /v1/traces Receive OTLP JSON trace data\n GET /v1/traces Read back received traces (verify ingestion in tests)\n DELETE /v1/traces Clear captured telemetry (test reset)\n POST /v1/logs Receive OTLP JSON log data\n POST /v1/metrics Receive OTLP JSON metric data\n WS /ws WebSocket stream for real-time updates\n GET /healthz Health check\n\nExamples:\n npx autotel-devtools\n npx autotel-devtools 4319\n npx autotel-devtools -p 4319 -H 0.0.0.0\n npx autotel-devtools claude # watch Claude Code in the Agents tab\n npx autotel-devtools claude --print-env # just print the env (for MDM / VS Code)\n\nThen point your app:\n OTEL_EXPORTER_OTLP_PROTOCOL=http/json OTEL_EXPORTER_OTLP_ENDPOINT=http://localhost:4318 node app.js\n\nView in browser:\n http://localhost:4318\n\nOr embed widget in your app:\n <script src=\"http://localhost:4318/widget.js\"><\/script>\n\n");
|
|
13
13
|
}
|
|
14
14
|
function printVersion() {
|
|
15
15
|
try {
|
|
@@ -79,12 +79,18 @@ async function startReceiver(options) {
|
|
|
79
79
|
host: options.host,
|
|
80
80
|
verbose: true
|
|
81
81
|
});
|
|
82
|
-
require_http.attachDevtoolsRoutes(httpServer, wsServer, {
|
|
82
|
+
require_http.attachDevtoolsRoutes(httpServer, wsServer, {
|
|
83
|
+
loopbackOnly,
|
|
84
|
+
title: options.title
|
|
85
|
+
});
|
|
83
86
|
const listeners = require_listen.listenLoopbackDualStack({
|
|
84
87
|
primary: httpServer,
|
|
85
88
|
port: options.port,
|
|
86
89
|
host: options.host,
|
|
87
|
-
attachSecondary: (s) => require_http.attachDevtoolsRoutes(s, wsServer, {
|
|
90
|
+
attachSecondary: (s) => require_http.attachDevtoolsRoutes(s, wsServer, {
|
|
91
|
+
loopbackOnly,
|
|
92
|
+
title: options.title
|
|
93
|
+
})
|
|
88
94
|
});
|
|
89
95
|
const { addresses, warnings, port: boundPort } = await listeners.ready;
|
|
90
96
|
if (boundPort !== options.port) if (await require_http.probePortHolder(options.host, options.port) === "autotel-devtools") warnings.push(`another autotel-devtools is already running on port ${options.port}; this instance is on ${boundPort}. Use the existing one, or stop it and restart here.`);
|
package/dist/cli.js
CHANGED
|
@@ -1,5 +1,5 @@
|
|
|
1
1
|
#!/usr/bin/env node
|
|
2
|
-
import { d as DevtoolsServer, i as probePortHolder, p as hostHeaderIsLoopback, t as attachDevtoolsRoutes } from "./http-
|
|
2
|
+
import { d as DevtoolsServer, i as probePortHolder, p as hostHeaderIsLoopback, t as attachDevtoolsRoutes } from "./http-B8rl56bF.js";
|
|
3
3
|
import { t as listenLoopbackDualStack } from "./listen-NVMbBWHw.js";
|
|
4
4
|
import { createServer } from "node:http";
|
|
5
5
|
import { readFileSync } from "node:fs";
|
|
@@ -9,7 +9,7 @@ import { spawn } from "node:child_process";
|
|
|
9
9
|
|
|
10
10
|
//#region src/cli.ts
|
|
11
11
|
function printHelp() {
|
|
12
|
-
process.stdout.write("autotel-devtools - Standalone OTLP receiver with web devtools UI\n\nUsage: autotel-devtools [port] [options]\n autotel-devtools claude [claude args] [--print-env] [--log-prompts]\n\nSubcommands:\n claude Start the receiver AND launch Claude Code wired to it\n (HTTP/protobuf → this receiver, 1s intervals, session id on).\n Open the \"Agents\" tab to watch sessions, tokens, cost,\n tool / MCP / sub-agent / skill usage live.\n --print-env Print the telemetry env block and exit (don't launch)\n --log-prompts Capture prompt text (default: length only / private)\n\nArguments:\n port Port to listen on (shorthand for --port; must be a positive integer)\n\nOptions:\n -p, --port <port> Port to listen on (default: 4318, env: AUTOTEL_DEVTOOLS_PORT).\n If the port is taken, the next free port is used and a warning is shown.\n -H, --host <host> Host to bind to (default: 127.0.0.1, env: AUTOTEL_DEVTOOLS_HOST)\n -t, --title <title> Dashboard title (env: AUTOTEL_DEVTOOLS_TITLE)\n Env limits: AUTOTEL_MAX_TRACE_COUNT, AUTOTEL_MAX_LOG_COUNT, AUTOTEL_MAX_METRIC_COUNT\n -h, --help Show this help message\n -v, --version Show version number\n\nEndpoints:\n GET / Web devtools UI (fullpage)\n GET /widget.js Widget bundle (embed in your app)\n POST /v1/traces Receive OTLP JSON trace data\n GET /v1/traces Read back received traces (verify ingestion in tests)\n DELETE /v1/traces Clear captured telemetry (test reset)\n POST /v1/logs Receive OTLP JSON log data\n POST /v1/metrics Receive OTLP JSON metric data\n WS /ws WebSocket stream for real-time updates\n GET /healthz Health check\n\nExamples:\n npx autotel-devtools\n npx autotel-devtools 4319\n npx autotel-devtools -p 4319 -H 0.0.0.0\n npx autotel-devtools claude # watch Claude Code in the Agents tab\n npx autotel-devtools claude --print-env # just print the env (for MDM / VS Code)\n\nThen point your app:\n OTEL_EXPORTER_OTLP_PROTOCOL=http/json OTEL_EXPORTER_OTLP_ENDPOINT=http://localhost:4318 node app.js\n\nView in browser:\n http://localhost:4318\n\nOr embed widget in your app:\n <script src=\"http://localhost:4318/widget.js\"><\/script>\n\n");
|
|
12
|
+
process.stdout.write("autotel-devtools - Standalone OTLP receiver with web devtools UI\n\nUsage: autotel-devtools [port] [options]\n autotel-devtools claude [claude args] [--print-env] [--log-prompts]\n\nSubcommands:\n claude Start the receiver AND launch Claude Code wired to it\n (HTTP/protobuf → this receiver, 1s intervals, session id on).\n Open the \"Agents\" tab to watch sessions, tokens, cost,\n tool / MCP / sub-agent / skill usage live.\n --print-env Print the telemetry env block and exit (don't launch)\n --log-prompts Capture prompt text (default: length only / private)\n\nArguments:\n port Port to listen on (shorthand for --port; must be a positive integer)\n\nOptions:\n -p, --port <port> Port to listen on (default: 4318, env: AUTOTEL_DEVTOOLS_PORT).\n If the port is taken, the next free port is used and a warning is shown.\n -H, --host <host> Host to bind to (default: 127.0.0.1, env: AUTOTEL_DEVTOOLS_HOST)\n -t, --title <title> Dashboard title, shown in the banner and browser tab\n (env: AUTOTEL_DEVTOOLS_TITLE)\n Env limits: AUTOTEL_MAX_TRACE_COUNT, AUTOTEL_MAX_LOG_COUNT, AUTOTEL_MAX_METRIC_COUNT\n -h, --help Show this help message\n -v, --version Show version number\n\nEndpoints:\n GET / Web devtools UI (fullpage)\n GET /widget.js Widget bundle (embed in your app)\n POST /v1/traces Receive OTLP JSON trace data\n GET /v1/traces Read back received traces (verify ingestion in tests)\n DELETE /v1/traces Clear captured telemetry (test reset)\n POST /v1/logs Receive OTLP JSON log data\n POST /v1/metrics Receive OTLP JSON metric data\n WS /ws WebSocket stream for real-time updates\n GET /healthz Health check\n\nExamples:\n npx autotel-devtools\n npx autotel-devtools 4319\n npx autotel-devtools -p 4319 -H 0.0.0.0\n npx autotel-devtools claude # watch Claude Code in the Agents tab\n npx autotel-devtools claude --print-env # just print the env (for MDM / VS Code)\n\nThen point your app:\n OTEL_EXPORTER_OTLP_PROTOCOL=http/json OTEL_EXPORTER_OTLP_ENDPOINT=http://localhost:4318 node app.js\n\nView in browser:\n http://localhost:4318\n\nOr embed widget in your app:\n <script src=\"http://localhost:4318/widget.js\"><\/script>\n\n");
|
|
13
13
|
}
|
|
14
14
|
function printVersion() {
|
|
15
15
|
try {
|
|
@@ -79,12 +79,18 @@ async function startReceiver(options) {
|
|
|
79
79
|
host: options.host,
|
|
80
80
|
verbose: true
|
|
81
81
|
});
|
|
82
|
-
attachDevtoolsRoutes(httpServer, wsServer, {
|
|
82
|
+
attachDevtoolsRoutes(httpServer, wsServer, {
|
|
83
|
+
loopbackOnly,
|
|
84
|
+
title: options.title
|
|
85
|
+
});
|
|
83
86
|
const listeners = listenLoopbackDualStack({
|
|
84
87
|
primary: httpServer,
|
|
85
88
|
port: options.port,
|
|
86
89
|
host: options.host,
|
|
87
|
-
attachSecondary: (s) => attachDevtoolsRoutes(s, wsServer, {
|
|
90
|
+
attachSecondary: (s) => attachDevtoolsRoutes(s, wsServer, {
|
|
91
|
+
loopbackOnly,
|
|
92
|
+
title: options.title
|
|
93
|
+
})
|
|
88
94
|
});
|
|
89
95
|
const { addresses, warnings, port: boundPort } = await listeners.ready;
|
|
90
96
|
if (boundPort !== options.port) if (await probePortHolder(options.host, options.port) === "autotel-devtools") warnings.push(`another autotel-devtools is already running on port ${options.port}; this instance is on ${boundPort}. Use the existing one, or stop it and restart here.`);
|
|
@@ -1176,7 +1176,16 @@ function findPackageRoot() {
|
|
|
1176
1176
|
return dir;
|
|
1177
1177
|
}
|
|
1178
1178
|
const DEVTOOLS_FAVICON_SVG = "<svg xmlns=\"http://www.w3.org/2000/svg\" viewBox=\"0 0 64 64\"><rect width=\"64\" height=\"64\" rx=\"14\" fill=\"#0f172a\"/><text x=\"32\" y=\"41\" text-anchor=\"middle\" font-size=\"32\">🛰️</text></svg>";
|
|
1179
|
-
|
|
1179
|
+
/**
|
|
1180
|
+
* The title is user-supplied (`--title` / `AUTOTEL_DEVTOOLS_TITLE`) and lands
|
|
1181
|
+
* inside `<title>`, where an unescaped `<` would close the element early.
|
|
1182
|
+
*/
|
|
1183
|
+
function escapeHtml(value) {
|
|
1184
|
+
return value.replaceAll("&", "&").replaceAll("<", "<").replaceAll(">", ">").replaceAll("\"", """).replaceAll("'", "'");
|
|
1185
|
+
}
|
|
1186
|
+
function renderFullpageHtml(title = "autotel-devtools") {
|
|
1187
|
+
return `<!DOCTYPE html><html><head><meta charset="UTF-8"><meta name="viewport" content="width=device-width, initial-scale=1.0"><title>${escapeHtml(title)}</title><link rel="icon" href="/favicon.svg" type="image/svg+xml"><style>*{margin:0;padding:0;box-sizing:border-box}html,body{height:100%;width:100%;overflow:hidden}</style></head><body><script src="/widget.js?mode=fullpage"><\/script></body></html>`;
|
|
1188
|
+
}
|
|
1180
1189
|
let cachedVersion = null;
|
|
1181
1190
|
function getVersion() {
|
|
1182
1191
|
if (cachedVersion !== null) return cachedVersion;
|
|
@@ -1203,6 +1212,7 @@ function getWidgetJs() {
|
|
|
1203
1212
|
}
|
|
1204
1213
|
function attachDevtoolsRoutes(httpServer, devtools, options = {}) {
|
|
1205
1214
|
const loopbackOnly = options.loopbackOnly ?? true;
|
|
1215
|
+
const fullpageHtml = renderFullpageHtml(options.title);
|
|
1206
1216
|
httpServer.on("request", async (req, res) => {
|
|
1207
1217
|
if (req.headers.upgrade?.toLowerCase() === "websocket") return;
|
|
1208
1218
|
res.setHeader("Access-Control-Allow-Origin", "*");
|
|
@@ -1219,9 +1229,9 @@ function attachDevtoolsRoutes(httpServer, devtools, options = {}) {
|
|
|
1219
1229
|
if (req.method === "GET" && url === "/") {
|
|
1220
1230
|
res.writeHead(200, {
|
|
1221
1231
|
"Content-Type": "text/html; charset=utf-8",
|
|
1222
|
-
"Content-Length": Buffer.byteLength(
|
|
1232
|
+
"Content-Length": Buffer.byteLength(fullpageHtml)
|
|
1223
1233
|
});
|
|
1224
|
-
res.end(
|
|
1234
|
+
res.end(fullpageHtml);
|
|
1225
1235
|
return;
|
|
1226
1236
|
}
|
|
1227
1237
|
if (req.method === "GET" && url.startsWith("/widget.js")) {
|
|
@@ -1148,7 +1148,16 @@ function findPackageRoot() {
|
|
|
1148
1148
|
return dir;
|
|
1149
1149
|
}
|
|
1150
1150
|
const DEVTOOLS_FAVICON_SVG = "<svg xmlns=\"http://www.w3.org/2000/svg\" viewBox=\"0 0 64 64\"><rect width=\"64\" height=\"64\" rx=\"14\" fill=\"#0f172a\"/><text x=\"32\" y=\"41\" text-anchor=\"middle\" font-size=\"32\">🛰️</text></svg>";
|
|
1151
|
-
|
|
1151
|
+
/**
|
|
1152
|
+
* The title is user-supplied (`--title` / `AUTOTEL_DEVTOOLS_TITLE`) and lands
|
|
1153
|
+
* inside `<title>`, where an unescaped `<` would close the element early.
|
|
1154
|
+
*/
|
|
1155
|
+
function escapeHtml(value) {
|
|
1156
|
+
return value.replaceAll("&", "&").replaceAll("<", "<").replaceAll(">", ">").replaceAll("\"", """).replaceAll("'", "'");
|
|
1157
|
+
}
|
|
1158
|
+
function renderFullpageHtml(title = "autotel-devtools") {
|
|
1159
|
+
return `<!DOCTYPE html><html><head><meta charset="UTF-8"><meta name="viewport" content="width=device-width, initial-scale=1.0"><title>${escapeHtml(title)}</title><link rel="icon" href="/favicon.svg" type="image/svg+xml"><style>*{margin:0;padding:0;box-sizing:border-box}html,body{height:100%;width:100%;overflow:hidden}</style></head><body><script src="/widget.js?mode=fullpage"><\/script></body></html>`;
|
|
1160
|
+
}
|
|
1152
1161
|
let cachedVersion = null;
|
|
1153
1162
|
function getVersion() {
|
|
1154
1163
|
if (cachedVersion !== null) return cachedVersion;
|
|
@@ -1175,6 +1184,7 @@ function getWidgetJs() {
|
|
|
1175
1184
|
}
|
|
1176
1185
|
function attachDevtoolsRoutes(httpServer, devtools, options = {}) {
|
|
1177
1186
|
const loopbackOnly = options.loopbackOnly ?? true;
|
|
1187
|
+
const fullpageHtml = renderFullpageHtml(options.title);
|
|
1178
1188
|
httpServer.on("request", async (req, res) => {
|
|
1179
1189
|
if (req.headers.upgrade?.toLowerCase() === "websocket") return;
|
|
1180
1190
|
res.setHeader("Access-Control-Allow-Origin", "*");
|
|
@@ -1191,9 +1201,9 @@ function attachDevtoolsRoutes(httpServer, devtools, options = {}) {
|
|
|
1191
1201
|
if (req.method === "GET" && url === "/") {
|
|
1192
1202
|
res.writeHead(200, {
|
|
1193
1203
|
"Content-Type": "text/html; charset=utf-8",
|
|
1194
|
-
"Content-Length": Buffer.byteLength(
|
|
1204
|
+
"Content-Length": Buffer.byteLength(fullpageHtml)
|
|
1195
1205
|
});
|
|
1196
|
-
res.end(
|
|
1206
|
+
res.end(fullpageHtml);
|
|
1197
1207
|
return;
|
|
1198
1208
|
}
|
|
1199
1209
|
if (req.method === "GET" && url.startsWith("/widget.js")) {
|
package/dist/index.cjs
CHANGED
|
@@ -1,5 +1,5 @@
|
|
|
1
1
|
Object.defineProperty(exports, Symbol.toStringTag, { value: 'Module' });
|
|
2
|
-
const require_http = require('./http-
|
|
2
|
+
const require_http = require('./http-53ldVU8k.cjs');
|
|
3
3
|
const require_listen = require('./listen-DGzVi7DE.cjs');
|
|
4
4
|
const require_server_exporter = require('./server/exporter.cjs');
|
|
5
5
|
const require_server_log_exporter = require('./server/log-exporter.cjs');
|
package/dist/index.js
CHANGED
|
@@ -1,4 +1,4 @@
|
|
|
1
|
-
import { b as ErrorAggregator, d as DevtoolsServer, p as hostHeaderIsLoopback, t as attachDevtoolsRoutes } from "./http-
|
|
1
|
+
import { b as ErrorAggregator, d as DevtoolsServer, p as hostHeaderIsLoopback, t as attachDevtoolsRoutes } from "./http-B8rl56bF.js";
|
|
2
2
|
import { t as listenLoopbackDualStack } from "./listen-NVMbBWHw.js";
|
|
3
3
|
import { DevtoolsSpanExporter } from "./server/exporter.js";
|
|
4
4
|
import { DevtoolsLogExporter } from "./server/log-exporter.js";
|
package/dist/server/index.cjs
CHANGED
|
@@ -1,5 +1,5 @@
|
|
|
1
1
|
Object.defineProperty(exports, Symbol.toStringTag, { value: 'Module' });
|
|
2
|
-
const require_http = require('../http-
|
|
2
|
+
const require_http = require('../http-53ldVU8k.cjs');
|
|
3
3
|
const require_server_exporter = require('./exporter.cjs');
|
|
4
4
|
const require_server_log_exporter = require('./log-exporter.cjs');
|
|
5
5
|
const require_server_remote_exporter = require('./remote-exporter.cjs');
|
package/dist/server/index.d.cts
CHANGED
|
@@ -13,6 +13,9 @@ interface DevtoolsRoutesOptions {
|
|
|
13
13
|
/** Bound to a loopback host (the default). Enables the DNS-rebinding `Host`
|
|
14
14
|
* check on read endpoints; an explicit non-loopback bind opts out. */
|
|
15
15
|
loopbackOnly?: boolean;
|
|
16
|
+
/** Browser tab title for the fullpage UI. Without it every dashboard reads
|
|
17
|
+
* `autotel-devtools`, which is unhelpful with several running at once. */
|
|
18
|
+
title?: string;
|
|
16
19
|
}
|
|
17
20
|
declare function attachDevtoolsRoutes(httpServer: Server, devtools: DevtoolsServer, options?: DevtoolsRoutesOptions): void;
|
|
18
21
|
declare function createDevtoolsHttpServer(devtools: DevtoolsServer, _options?: HttpServerOptions): Server;
|
package/dist/server/index.d.ts
CHANGED
|
@@ -13,6 +13,9 @@ interface DevtoolsRoutesOptions {
|
|
|
13
13
|
/** Bound to a loopback host (the default). Enables the DNS-rebinding `Host`
|
|
14
14
|
* check on read endpoints; an explicit non-loopback bind opts out. */
|
|
15
15
|
loopbackOnly?: boolean;
|
|
16
|
+
/** Browser tab title for the fullpage UI. Without it every dashboard reads
|
|
17
|
+
* `autotel-devtools`, which is unhelpful with several running at once. */
|
|
18
|
+
title?: string;
|
|
16
19
|
}
|
|
17
20
|
declare function attachDevtoolsRoutes(httpServer: Server, devtools: DevtoolsServer, options?: DevtoolsRoutesOptions): void;
|
|
18
21
|
declare function createDevtoolsHttpServer(devtools: DevtoolsServer, _options?: HttpServerOptions): Server;
|
package/dist/server/index.js
CHANGED
|
@@ -1,4 +1,4 @@
|
|
|
1
|
-
import { _ as appendWithLimit, a as decodeOtlpLogsRequest, b as ErrorAggregator, c as isProtobufContentType, d as DevtoolsServer, f as allowSensitiveRequest, g as appendManyWithLimit, h as originIsLoopback, i as probePortHolder, l as parseOtlpLogs, m as isLoopbackHostname, n as createDevtoolsHttpServer, o as decodeOtlpMetricsRequest, p as hostHeaderIsLoopback, r as DEVTOOLS_IDENTITY, s as decodeOtlpTraceRequest, t as attachDevtoolsRoutes, u as parseOtlpTraces, v as applyTelemetryLimits, y as resolveTelemetryLimits } from "../http-
|
|
1
|
+
import { _ as appendWithLimit, a as decodeOtlpLogsRequest, b as ErrorAggregator, c as isProtobufContentType, d as DevtoolsServer, f as allowSensitiveRequest, g as appendManyWithLimit, h as originIsLoopback, i as probePortHolder, l as parseOtlpLogs, m as isLoopbackHostname, n as createDevtoolsHttpServer, o as decodeOtlpMetricsRequest, p as hostHeaderIsLoopback, r as DEVTOOLS_IDENTITY, s as decodeOtlpTraceRequest, t as attachDevtoolsRoutes, u as parseOtlpTraces, v as applyTelemetryLimits, y as resolveTelemetryLimits } from "../http-B8rl56bF.js";
|
|
2
2
|
import { DevtoolsSpanExporter } from "./exporter.js";
|
|
3
3
|
import { DevtoolsLogExporter } from "./log-exporter.js";
|
|
4
4
|
import { DevtoolsRemoteExporter } from "./remote-exporter.js";
|