autotel-devtools 13.1.0 → 14.0.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.
Files changed (38) hide show
  1. package/README.md +24 -23
  2. package/dist/cli.cjs.map +1 -1
  3. package/dist/cli.d.cts +1 -1
  4. package/dist/cli.d.ts +1 -1
  5. package/dist/cli.js.map +1 -1
  6. package/dist/{error-aggregator-C8X-RQRi.d.ts → error-aggregator-BrgYNNoC.d.ts} +2 -3
  7. package/dist/{error-aggregator-7Q2H7htn.d.cts → error-aggregator-bZ-prq97.d.cts} +2 -3
  8. package/dist/{exporter-yqXiHw1Q.d.ts → exporter-BLqTs00O.d.ts} +1 -2
  9. package/dist/{exporter-kXTGDFoH.d.cts → exporter-BSIS3Qgy.d.cts} +1 -2
  10. package/dist/genai/index.cjs.map +1 -1
  11. package/dist/genai/index.d.cts +0 -1
  12. package/dist/genai/index.d.ts +0 -1
  13. package/dist/genai/index.js.map +1 -1
  14. package/dist/http-BUHnkhrC.cjs.map +1 -1
  15. package/dist/http-yIS667nX.js.map +1 -1
  16. package/dist/index.cjs.map +1 -1
  17. package/dist/index.d.cts +2 -3
  18. package/dist/index.d.ts +2 -3
  19. package/dist/index.js.map +1 -1
  20. package/dist/listen-DGzVi7DE.cjs.map +1 -1
  21. package/dist/listen-NVMbBWHw.js.map +1 -1
  22. package/dist/resource-utils-B4UVvfnH.js.map +1 -1
  23. package/dist/resource-utils-DjHJB6uc.cjs.map +1 -1
  24. package/dist/server/exporter.cjs.map +1 -1
  25. package/dist/server/exporter.d.cts +1 -1
  26. package/dist/server/exporter.d.ts +1 -1
  27. package/dist/server/exporter.js.map +1 -1
  28. package/dist/server/index.d.cts +2 -3
  29. package/dist/server/index.d.ts +2 -3
  30. package/dist/server/log-exporter.cjs.map +1 -1
  31. package/dist/server/log-exporter.d.cts +0 -1
  32. package/dist/server/log-exporter.d.ts +0 -1
  33. package/dist/server/log-exporter.js.map +1 -1
  34. package/dist/server/remote-exporter.d.cts +0 -1
  35. package/dist/server/remote-exporter.d.ts +0 -1
  36. package/dist/widget.global.js +14 -13
  37. package/package.json +27 -27
  38. package/skills/autotel-devtools/SKILL.md +48 -46
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "autotel-devtools",
3
- "version": "13.1.0",
3
+ "version": "14.0.0",
4
4
  "description": "Standalone OTLP receiver with web UI for local development",
5
5
  "type": "module",
6
6
  "sideEffects": false,
@@ -49,49 +49,49 @@
49
49
  ],
50
50
  "dependencies": {
51
51
  "clsx": "^2.1.1",
52
- "@lucide/svelte": "^1.23.0",
53
- "protobufjs": "^8.7.0",
54
- "svelte": "^5.56.4",
52
+ "@lucide/svelte": "^1.25.0",
53
+ "protobufjs": "^8.7.1",
54
+ "svelte": "^5.56.7",
55
55
  "tailwind-merge": "^3.6.0",
56
- "ws": "^8.21.0",
56
+ "ws": "^8.21.1",
57
57
  "autotel-agents": "0.3.0"
58
58
  },
59
59
  "devDependencies": {
60
60
  "@chromatic-com/storybook": "^5.2.1",
61
61
  "@opentelemetry/api": "^1.9.1",
62
- "@opentelemetry/core": "^2.7.1",
63
- "@opentelemetry/otlp-transformer": "^0.218.0",
64
- "@opentelemetry/sdk-logs": "^0.218.0",
65
- "@opentelemetry/sdk-trace-base": "^2.7.1",
66
- "@storybook/addon-a11y": "^10.4.6",
67
- "@storybook/addon-vitest": "^10.4.6",
68
- "@storybook/svelte-vite": "^10.4.6",
62
+ "@opentelemetry/core": "^2.9.0",
63
+ "@opentelemetry/otlp-transformer": "^0.220.0",
64
+ "@opentelemetry/sdk-logs": "^0.220.0",
65
+ "@opentelemetry/sdk-trace-base": "^2.9.0",
66
+ "@storybook/addon-a11y": "^10.5.3",
67
+ "@storybook/addon-vitest": "^10.5.3",
68
+ "@storybook/svelte-vite": "^10.5.3",
69
69
  "@sveltejs/vite-plugin-svelte": "^7.2.0",
70
- "@tailwindcss/postcss": "^4.3.2",
71
- "@tailwindcss/vite": "^4.3.2",
72
- "@testing-library/jest-dom": "^6.9.1",
70
+ "@tailwindcss/postcss": "^4.3.3",
71
+ "@tailwindcss/vite": "^4.3.3",
72
+ "@testing-library/jest-dom": "^7.0.0",
73
73
  "@testing-library/svelte": "^5.4.2",
74
- "@types/node": "^26.1.0",
74
+ "@types/node": "^26.1.1",
75
75
  "@types/ws": "^8.18.1",
76
76
  "@vitest/browser-playwright": "4.1.10",
77
77
  "@vitest/coverage-v8": "4.1.10",
78
- "eslint-plugin-storybook": "^10.4.6",
79
- "eslint-plugin-svelte": "^3.20.0",
78
+ "eslint-plugin-storybook": "^10.5.3",
79
+ "eslint-plugin-svelte": "^3.22.0",
80
80
  "jsdom": "^29.1.1",
81
81
  "playwright": "^1.61.1",
82
- "postcss": "^8.5.16",
83
- "storybook": "^10.4.6",
84
- "svelte-check": "^4.7.2",
85
- "tailwindcss": "^4.3.2",
86
- "tsdown": "^0.22.3",
82
+ "postcss": "^8.5.21",
83
+ "storybook": "^10.5.3",
84
+ "svelte-check": "^4.7.3",
85
+ "tailwindcss": "^4.3.3",
86
+ "tsdown": "^0.22.12",
87
87
  "typescript": "^6.0.3",
88
- "vite": "^8.1.3",
88
+ "vite": "^8.1.5",
89
89
  "vitest": "^4.1.10",
90
- "vitest-browser-svelte": "^2.2.0",
91
- "vitest-mock-extended": "^4.0.0"
90
+ "vitest-browser-svelte": "^3.0.0",
91
+ "vitest-mock-extended": "^5.1.0"
92
92
  },
93
93
  "peerDependencies": {
94
- "autotel": "4.3.0"
94
+ "autotel": "5.0.0"
95
95
  },
96
96
  "peerDependenciesMeta": {
97
97
  "autotel": {
@@ -6,9 +6,9 @@ description: >
6
6
 
7
7
  # autotel-devtools
8
8
 
9
- Local-dev OTLP receiver with a browser UI. Think TanStack Devtools for OpenTelemetry — runs as CLI or embeds as a Shadow-DOM-isolated widget in any web app.
9
+ Local-dev OTLP receiver with a browser UI. Think TanStack Devtools for OpenTelemetry. Runs as CLI or embeds as a Shadow-DOM-isolated widget in any web app.
10
10
 
11
- ## Quick Start — pick an approach
11
+ ## Quick Start: pick an approach
12
12
 
13
13
  ### Standalone dashboard
14
14
 
@@ -36,12 +36,12 @@ OTEL_EXPORTER_OTLP_ENDPOINT=http://localhost:4318 python app.py
36
36
  <autotel-devtools></autotel-devtools>
37
37
  ```
38
38
 
39
- Shadow-DOM-isolated — never leaks styles into the host page.
39
+ Shadow-DOM-isolated. Never leaks styles into the host page.
40
40
 
41
41
  ### Programmatic (Node + autotel)
42
42
 
43
43
  ```typescript
44
- import { init, trace } from 'autotel';
44
+ import { init, withTracing } from 'autotel';
45
45
  import { createDevtools } from 'autotel-devtools';
46
46
 
47
47
  const { exporter, close } = createDevtools({ port: 4318, verbose: true });
@@ -52,48 +52,50 @@ init({
52
52
  spanProcessors: [exporter], // stream spans to the devtools UI
53
53
  });
54
54
 
55
- export const loadUser = trace(ctx => async (id: string) => {
56
- // ... span shows up live in devtools
57
- });
55
+ export const loadUser = withTracing({ name: 'user.load' })(
56
+ (ctx) => async (id: string) => {
57
+ // ... span shows up live in devtools
58
+ },
59
+ );
58
60
  ```
59
61
 
60
62
  ## Package Entry Points
61
63
 
62
- | Import | What |
63
- | --- | --- |
64
- | `autotel-devtools` | `createDevtools()`, `DevtoolsServer`, exporters, types |
65
- | `autotel-devtools/server` | `DevtoolsServer`, OTLP parsing (`parseOtlpTraces`, `parseOtlpLogs`), HTTP routes (`attachDevtoolsRoutes`, `createDevtoolsHttpServer`), telemetry-limit helpers |
66
- | `autotel-devtools/exporter` | `DevtoolsSpanExporter` (standalone) |
64
+ | Import | What |
65
+ | --------------------------- | -------------------------------------------------------------------------------------------------------------------------------------------------------------- |
66
+ | `autotel-devtools` | `createDevtools()`, `DevtoolsServer`, exporters, types |
67
+ | `autotel-devtools/server` | `DevtoolsServer`, OTLP parsing (`parseOtlpTraces`, `parseOtlpLogs`), HTTP routes (`attachDevtoolsRoutes`, `createDevtoolsHttpServer`), telemetry-limit helpers |
68
+ | `autotel-devtools/exporter` | `DevtoolsSpanExporter` (standalone) |
67
69
 
68
70
  ## Server Endpoints
69
71
 
70
- | Route | What |
71
- | --- | --- |
72
- | `POST /v1/traces` · `/v1/logs` · `/v1/metrics` | OTLP receivers — JSON or protobuf (`application/x-protobuf`) |
73
- | `GET /` | Dashboard UI (traces, logs, metrics, errors, resources, service map) |
74
- | `GET /widget.js` | Embeddable widget bundle (IIFE) |
75
- | `GET /healthz` | Health check |
76
- | `WS /ws` | WebSocket stream (history replay on connect) |
72
+ | Route | What |
73
+ | ---------------------------------------------- | -------------------------------------------------------------------- |
74
+ | `POST /v1/traces` · `/v1/logs` · `/v1/metrics` | OTLP receivers: JSON or protobuf (`application/x-protobuf`) |
75
+ | `GET /` | Dashboard UI (traces, logs, metrics, errors, resources, service map) |
76
+ | `GET /widget.js` | Embeddable widget bundle (IIFE) |
77
+ | `GET /healthz` | Health check |
78
+ | `WS /ws` | WebSocket stream (history replay on connect) |
77
79
 
78
80
  ## Views in the UI
79
81
 
80
- - **Traces** — waterfall + flame graph, search with 300 ms debounce
81
- - **Logs** — severity/resource filtering
82
- - **Metrics** — per-metric time series
83
- - **Errors** — aggregated and grouped by fingerprint
84
- - **Resources** — derived from ingested telemetry
85
- - **Service map** — visualises call graph
82
+ - **Traces**: waterfall + flame graph, search with 300 ms debounce
83
+ - **Logs**: severity/resource filtering
84
+ - **Metrics**: per-metric time series
85
+ - **Errors**: aggregated and grouped by fingerprint
86
+ - **Resources**: derived from ingested telemetry
87
+ - **Service map**: visualises call graph
86
88
 
87
89
  ## Environment Variables
88
90
 
89
- | Variable | Default | Purpose |
90
- | --- | --- | --- |
91
- | `AUTOTEL_DEVTOOLS_PORT` | `4318` | Server port |
92
- | `AUTOTEL_DEVTOOLS_HOST` | `127.0.0.1` | Bind host |
93
- | `AUTOTEL_DEVTOOLS_TITLE` | — | Dashboard title |
94
- | `AUTOTEL_MAX_TRACE_COUNT` | `100` | Max traces retained in memory |
95
- | `AUTOTEL_MAX_LOG_COUNT` | `100` | Max logs retained |
96
- | `AUTOTEL_MAX_METRIC_COUNT` | `100` | Max metric points retained |
91
+ | Variable | Default | Purpose |
92
+ | -------------------------- | ----------- | ----------------------------- |
93
+ | `AUTOTEL_DEVTOOLS_PORT` | `4318` | Server port |
94
+ | `AUTOTEL_DEVTOOLS_HOST` | `127.0.0.1` | Bind host |
95
+ | `AUTOTEL_DEVTOOLS_TITLE` | — | Dashboard title |
96
+ | `AUTOTEL_MAX_TRACE_COUNT` | `100` | Max traces retained in memory |
97
+ | `AUTOTEL_MAX_LOG_COUNT` | `100` | Max logs retained |
98
+ | `AUTOTEL_MAX_METRIC_COUNT` | `100` | Max metric points retained |
97
99
 
98
100
  ## CLI
99
101
 
@@ -102,22 +104,22 @@ npx autotel-devtools 4319 # port as bare p
102
104
  npx autotel-devtools --port 4319 --host 0.0.0.0 --title "My App"
103
105
  ```
104
106
 
105
- | Arg / Flag | Short | Purpose |
106
- | --- | --- | --- |
107
- | `[port]` | — | Listen port shorthand for `--port` (explicit `--port` wins) |
108
- | `--port` | `-p` | Listen port (default 4318); walks to next free port if taken |
109
- | `--host` | `-H` | Bind host (default 127.0.0.1) |
110
- | `--title` | `-t` | Dashboard title |
107
+ | Arg / Flag | Short | Purpose |
108
+ | ---------- | ----- | ------------------------------------------------------------ |
109
+ | `[port]` | — | Listen port shorthand for `--port` (explicit `--port` wins) |
110
+ | `--port` | `-p` | Listen port (default 4318); walks to next free port if taken |
111
+ | `--host` | `-H` | Bind host (default 127.0.0.1) |
112
+ | `--title` | `-t` | Dashboard title |
111
113
 
112
114
  ## Works With
113
115
 
114
- - **autotel** — pass `exporter` into `spanProcessors` for live streaming
115
- - **Standard OpenTelemetry SDK** — any OTLP exporter targeting `http://localhost:4318` works; autotel is not required
116
- - **Browser apps** — the widget is a custom element with Shadow DOM, so drop it in without CSS conflicts
116
+ - **autotel**: pass `exporter` into `spanProcessors` for live streaming
117
+ - **Standard OpenTelemetry SDK**: any OTLP exporter targeting `http://localhost:4318` works; autotel is not required
118
+ - **Browser apps**: the widget is a custom element with Shadow DOM, so drop it in without CSS conflicts
117
119
 
118
120
  ## Common Mistakes
119
121
 
120
- - Do NOT use the widget in Node — it's a browser-only IIFE bundle. Use `createDevtools()` server-side instead.
121
- - Do NOT set a production OTLP endpoint at `localhost:4318` — devtools is in-memory only (no persistence, caps at 100 items per signal by default). Bump `AUTOTEL_MAX_*_COUNT` for longer local sessions.
122
- - Do NOT embed the widget into pages served via strict CSP without allowing `http://localhost:4318` — the WebSocket connection and script load both need the devtools origin allowed.
123
- - Do NOT confuse the two builds — the **server** uses tsup (Node ESM + CJS), the **widget** uses Vite's IIFE build. Don't import `autotel-devtools/server` into widget code; it pulls in Node APIs.
122
+ - Do NOT use the widget in Node: it's a browser-only IIFE bundle. Use `createDevtools()` server-side instead.
123
+ - Do NOT set a production OTLP endpoint at `localhost:4318`: devtools is in-memory only (no persistence, caps at 100 items per signal by default). Bump `AUTOTEL_MAX_*_COUNT` for longer local sessions.
124
+ - Do NOT embed the widget into pages served via strict CSP without allowing `http://localhost:4318`: the WebSocket connection and script load both need the devtools origin allowed.
125
+ - Do NOT confuse the two builds: the **server** uses tsup (Node ESM + CJS), the **widget** uses Vite's IIFE build. Don't import `autotel-devtools/server` into widget code; it pulls in Node APIs.