You signed in with another tab or window. Reload to refresh your session.You signed out in another tab or window. Reload to refresh your session.You switched accounts on another tab or window. Reload to refresh your session.Dismiss alert
docs: add and update README files across all packages
- Root README: updated with full package table, architecture diagram,
and references to both browser and VS Code extensions
- devtools-core: new README documenting annotators, diagnosis, event
store, and export modules
- devtools-ui: new README documenting Elm views, ports, and build
- vscode-extension: new README with quick start, commands, architecture
- devtools-extension: updated architecture section to reference shared
packages (devtools-core, devtools-ui)
- devtools-bridge: updated to reference VS Code extension and CDP
capture path
- devtools-types: added FlowState/FlowExport/OidcSemantics to exports
table and consumers section
- e2e: new README documenting test suite and mock OIDC server
Co-Authored-By: Claude Opus 4.6 (1M context) <noreply@anthropic.com>
Copy file name to clipboardExpand all lines: README.md
+140-8Lines changed: 140 additions & 8 deletions
Display the source diff
Display the rich diff
Original file line number
Diff line number
Diff line change
@@ -2,7 +2,7 @@
2
2
3
3
**Captures, correlates, and diagnoses** OIDC/OAuth 2.0 authentication flows in real time — works standalone with any OIDC provider or as an enhanced companion to the Ping Identity SDK.
4
4
5
-
A browser DevTools panel for Chrome and Firefox that replaces the Network-panel-and-jwt.io workflow with a single view: OIDC-annotated network traffic, SDK-level event correlation, inline JWT decoding, and an automated diagnosis engine that tells you what went wrong and how to fix it.
5
+
Available as a **browser DevTools panel** (Chrome & Firefox) and a **VS Code extension** (via Chrome DevTools Protocol). Both share the same annotation engine, diagnosis rules, and Elm UI.
6
6
7
7

8
8
@@ -12,14 +12,19 @@ A browser DevTools panel for Chrome and Firefox that replaces the Network-panel-
12
12
13
13
| Package | Description | npm |
14
14
| --- | --- | --- |
15
-
|[`@wolfcola/devtools-extension`](packages/devtools-extension)| Browser extension (Chrome & Firefox) — DevTools panel with Timeline, Flow, and Learn views | private |
16
-
|[`@wolfcola/devtools-bridge`](packages/devtools-bridge)| Opt-in SDK adapter — emits `AuthEvent`s from DaVinci, Journey, and OIDC clients |[](https://www.npmjs.com/package/@wolfcola/devtools-bridge)|
17
-
|[`@wolfcola/devtools-types`](packages/devtools-types)| Shared `AuthEvent` Effect Schema definitions and TypeScript types |[](https://www.npmjs.com/package/@wolfcola/devtools-types)|
|[`devtools-ui`](packages/devtools-ui)| Shared Elm UI — compiled JS, CSS, TypeScript port interface | private |
19
+
|[`devtools-bridge`](packages/devtools-bridge)| SDK adapter — emits events from DaVinci, Journey, and OIDC clients |[](https://www.npmjs.com/package/@wolfcola/devtools-bridge)|
20
+
|[`devtools-types`](packages/devtools-types)| Effect Schema definitions for AuthEvent, FlowState |[](https://www.npmjs.com/package/@wolfcola/devtools-types)|
18
21
19
22
---
20
23
21
24
## Quick start
22
25
26
+
### Browser extension
27
+
23
28
```bash
24
29
pnpm install
25
30
pnpm build # Chrome (default)
@@ -28,14 +33,30 @@ pnpm build:firefox # Firefox
28
33
29
34
Load the extension as unpacked from `packages/devtools-extension/dist/` — see the [extension README](packages/devtools-extension) for full instructions.
30
35
36
+
### VS Code extension
37
+
38
+
```bash
39
+
pnpm install
40
+
pnpm build
41
+
```
42
+
43
+
Open the `packages/vscode-extension` folder in VS Code and press F5 to launch. Then:
44
+
45
+
1. Launch Chrome with `--remote-debugging-port=9222`
46
+
2. Run **"OIDC DevTools: Start Capture"** from the command palette
47
+
48
+
See the [VS Code extension README](packages/vscode-extension) for details.
The extension automatically detects and annotates OIDC/OAuth 2.0 traffic without any SDK integration. It works out of the box with **any OIDC provider** — Ping Identity, Auth0, Okta, Keycloak, or any spec-compliant authorization server.
109
+
110
+
**Well-known discovery** — parses `/.well-known/openid-configuration` responses and matches subsequent requests against discovered endpoints.
111
+
112
+
**OIDC semantic annotation:**
113
+
114
+
| Phase | Extracted data |
115
+
| --- | --- |
116
+
|**discovery**| Issuer, all discovered endpoints |
Every captured event is run through a rule engine that produces flow-level and per-event diagnostics with severity ratings and numbered remediation steps.
Chronological event table with type badges (NET, SDK, SES, CFG), status codes, OIDC phase tags, and inline CORS/DPoP indicators. A graph sidebar draws SDK node-change events as a vertical rail. The Inspector panel shows contextual tabs (Headers, SDK State, Collectors, OIDC, Diagnosis, etc.).
152
+
153
+
### Flow
154
+
155
+
Visual representation of the authentication flow as a sequence of SDK nodes. Includes a node rail, detail cards, playback controls, and a Flow Health banner for diagnosis.
156
+
157
+
### Learn
158
+
159
+
Canvas-based flow lifecycle visualization with layout variants for DaVinci, Journey, OIDC Code, OIDC+DPoP, and OIDC+PAR flows.
160
+
161
+
---
162
+
56
163
## Development
57
164
58
165
```bash
59
166
pnpm install
60
-
pnpm build # build all packages (Chrome)
61
-
pnpm build:firefox # build Firefox variant
167
+
pnpm build # build all packages
168
+
pnpm test# vitest (308 tests)
169
+
pnpm typecheck # TypeScript type checking
62
170
pnpm lint # eslint
63
-
pnpm test# vitest
64
171
```
65
172
173
+
| Script | Description |
174
+
| --- | --- |
175
+
|`pnpm build`| Build all packages |
176
+
|`pnpm test`| Run all unit tests |
177
+
|`pnpm typecheck`| TypeScript type checking |
178
+
|`pnpm lint`| Lint all packages |
179
+
|`pnpm changeset`| Create a changeset for versioning |
180
+
|`pnpm version`| Apply changesets and bump versions |
181
+
|`pnpm release`| Build and publish to npm |
182
+
183
+
### Tech stack
184
+
185
+
-**TypeScript** with strict mode and Effect for typed functional effects
186
+
-**Elm 0.19** for the DevTools panel UI
187
+
-**esbuild** for bundling
188
+
-**Vitest** for unit tests, **Playwright** for e2e tests
189
+
-**pnpm workspaces** for monorepo management
190
+
-**Changesets** for versioning and publishing
191
+
192
+
---
193
+
194
+
## Security and privacy
195
+
196
+
The extension requests only `storage` and `clipboardWrite`/`clipboardRead` — no `cookies`, `webRequest`, `tabs`, or other sensitive APIs. Content scripts use a two-world architecture to prevent arbitrary page code from injecting messages into the background script. All SDK events are decoded through `AuthEventSchema` (Effect Schema) before reaching the EventStore — malformed payloads are dropped. Captured data is stored locally and never transmitted off-device.
Copy file name to clipboardExpand all lines: packages/devtools-bridge/README.md
+16-1Lines changed: 16 additions & 1 deletion
Display the source diff
Display the rich diff
Original file line number
Diff line number
Diff line change
@@ -1,6 +1,6 @@
1
1
# @wolfcola/devtools-bridge
2
2
3
-
Opt-in SDK adapter that connects your Ping Identity / ForgeRock application to the [WolfCola DevTools extension](../devtools-extension). Add it to your app in one line — it is a no-op when the extension is not installed, so it is safe to ship in production builds.
3
+
Opt-in SDK adapter that connects your Ping Identity / ForgeRock application to WolfCola DevTools — either the [browser extension](../devtools-extension) or the [VS Code extension](../vscode-extension). Add it to your app in one line — it is a no-op when the extension is not installed, so it is safe to ship in production builds.
VS Code extension host ──▶ TreeView + WebView (Elm)
181
194
```
182
195
196
+
The VS Code extension captures SDK events via a CDP-injected script that listens for the same `__pingDevtools` postMessage — no browser extension needed.
Shared logic for WolfCola DevTools. Contains annotators, diagnosis engine, event store, and export utilities. Used by both the browser extension and VS Code extension.
4
+
5
+
## Modules
6
+
7
+
### Annotators (`src/annotators/`)
8
+
9
+
Pure functions that analyze network traffic and detect OIDC/OAuth patterns.
10
+
11
+
| Module | Purpose |
12
+
|--------|---------|
13
+
|`network-observer`| Filters auth-related requests and builds `AuthEvent` from HAR entries |
0 commit comments