@fluojs/studio 1.0.5 → 1.0.7

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.ko.md CHANGED
@@ -2,14 +2,14 @@
2
2
 
3
3
  <p><a href="./README.md"><kbd>English</kbd></a> <strong><kbd>한국어</kbd></strong></p>
4
4
 
5
- fluo 애플리케이션을 위한 runtime-connected React devtool이며, 기존 static/report artifact 로딩도 계속 지원합니다.
5
+ fluo 진단을 위한 CLI sidecar 및 React viewer workflow입니다. Node dev-runner live MVP와 기존 static/report artifact 로딩을 함께 지원합니다.
6
6
 
7
7
  ## 목차
8
8
 
9
9
  - [설치](#설치)
10
10
  - [릴리스 정책](#릴리스-정책)
11
- - [빠른 시작: Live Devtool](#빠른-시작-live-devtool)
12
- - [Static/Report 호환성](#staticreport-호환성)
11
+ - [빠른 시작: 라이브 개발 도구](#빠른-시작-라이브-개발-도구)
12
+ - [정적/리포트 호환성](#정적리포트-호환성)
13
13
  - [로컬 보안 모델](#로컬-보안-모델)
14
14
  - [런타임 지원 매트릭스](#런타임-지원-매트릭스)
15
15
  - [공개 API](#공개-api)
@@ -19,6 +19,14 @@ fluo 애플리케이션을 위한 runtime-connected React devtool이며, 기존
19
19
 
20
20
  ## 설치
21
21
 
22
+ 대부분의 애플리케이션 프로젝트는 Studio를 개발 전용 의존성으로 설치합니다. CLI가 `fluo dev --studio`, `fluo inspect --mermaid`, 패키징된 viewer 접근을 위해 Studio를 해석하며, 애플리케이션 런타임 자체는 Studio를 직접 import하지 않습니다.
23
+
24
+ ```bash
25
+ pnpm add -D @fluojs/studio
26
+ ```
27
+
28
+ 배포 패키지나 runtime automation이 실행 중에 `@fluojs/studio` 또는 `@fluojs/studio/contracts`를 import하는 경우에만 일반 dependency로 설치합니다.
29
+
22
30
  ```bash
23
31
  pnpm add @fluojs/studio
24
32
  ```
@@ -31,10 +39,10 @@ pnpm add @fluojs/studio
31
39
  ## 릴리스 정책
32
40
 
33
41
  - `@fluojs/studio`는 fluo의 intended public publish surface에 포함되는 공개 배포 패키지입니다.
34
- - Studio의 npm 설치 계약은 `pnpm add @fluojs/studio`이며, 저장소 내부 개발 경로는 계속 `pnpm --dir packages/studio dev`를 사용합니다.
42
+ - 애플리케이션 CLI/viewer 계약은 개발 전용 설치(`pnpm add -D @fluojs/studio`)입니다. Studio helper를 import하는 runtime tooling은 일반 dependency(`pnpm add @fluojs/studio`)로 선언해야 합니다. 저장소 내부 개발 경로는 계속 `pnpm --dir packages/studio dev`를 사용합니다.
35
43
  - 공개 패키지 표면은 additive입니다. live devtool 계약을 추가하면서도 file-first parsing, filtering, graph rendering, report artifact 호환성을 유지합니다.
36
44
 
37
- ## 빠른 시작: Live Devtool
45
+ ## 빠른 시작: 라이브 개발 도구
38
46
 
39
47
  로컬 앱을 runtime-connected Studio sidecar와 함께 실행합니다.
40
48
 
@@ -48,7 +56,9 @@ fluo dev --studio
48
56
  [fluo] Studio listening at http://127.0.0.1:51234/?token=...
49
57
  ```
50
58
 
51
- 그 URL을 열면 live React Studio dashboard에서 런타임 상태를 볼 수 있습니다. Dashboard 코드는 `src/app`, `src/pages`, `src/widgets`, `src/features`, `src/entities`, `src/shared`의 Feature-Sliced Design layer로 구성됩니다.
59
+ 그 URL을 열면 live React Studio dashboard에서 런타임 상태를 볼 수 있습니다. Dashboard 코드는 `src/app`, `src/pages`, `src/widgets`, `src/features`, `src/entities`, `src/shared`의 Feature-Sliced Design layer로 구성되며, static/report viewer가 여러 widget에서 공유하는 rendering helper는 root-level viewer file이 아니라 `src/shared/lib`에 둡니다.
60
+
61
+ Studio는 CLI가 실행하는 sidecar/viewer workflow입니다. fluo runtime 안에 mount하는 application module이 아닙니다. Live MVP는 Node dev-runner 경로를 대상으로 하며, non-Node 프로젝트는 dedicated Bun, Deno, Workers bridge가 구현되고 검증될 때까지 정적/리포트 inspect workflow를 사용해야 합니다.
52
62
 
53
63
  Live mode는 다음을 보여줍니다.
54
64
 
@@ -61,10 +71,12 @@ Live mode는 다음을 보여줍니다.
61
71
 
62
72
  MVP request flow는 route/handler와 dependency-graph correlation을 의미합니다. full method-level service call-chain tracing은 아직 포함하지 않습니다.
63
73
 
64
- ## Static/Report 호환성
74
+ ## 정적/리포트 호환성
65
75
 
66
76
  Studio는 여전히 fluo CLI가 내보낸 JSON 파일을 소비합니다. 런타임은 snapshot을 생산하고, CLI는 artifact export/write/delegation을 소유하며, Studio는 사람과 자동화 호출자가 사용할 수 있도록 snapshot을 파싱, 필터링, 검사, 렌더링하는 공개 헬퍼와 viewer surface를 소유합니다. 지원되는 inspect artifact에는 raw snapshot, snapshot-plus-timing envelope, `fluo inspect --report`가 생성한 report artifact, legacy standalone timing diagnostics가 포함됩니다.
67
77
 
78
+ 이 file-first 경로는 CI, support handoff, architecture review, non-Node runtime target을 위한 호환성 및 migration fallback입니다. Bun, Deno, Cloudflare Workers 프로젝트는 MVP에서 live sidecar event를 기대하는 대신 inspect/static artifact를 생성하고 패키징된 viewer로 열어야 합니다. 패키징된 viewer는 inspected artifact가 non-Node runtime fallback workflow에서 생성된 경우에도 Node 기반 package entrypoint(`node -p "require.resolve('@fluojs/studio/viewer')"`)로 resolve합니다.
79
+
68
80
  1. **Snapshot 내보내기**:
69
81
  ```bash
70
82
  fluo inspect ./src/app.module.ts --json > snapshot.json
@@ -89,20 +101,21 @@ Studio는 여전히 fluo CLI가 내보낸 JSON 파일을 소비합니다. 런타
89
101
  - Runtime ingestion과 browser state/SSE API는 실행마다 생성되는 token을 요구합니다.
90
102
  - Sidecar는 기본적으로 CORS를 활성화하지 않습니다.
91
103
  - Request body는 기본적으로 수집하지 않습니다. Live request event는 method/path/url/request id/route/handler/status/duration/error metadata만 포함합니다.
104
+ - Live request event validation은 Studio UI state가 값을 보관하기 전에 `body`, `rawBody`, `requestBody`, `responseBody` 같은 body-like payload field를 거부합니다.
92
105
  - Runtime Studio instrumentation은 CLI가 제공한 명시적 Studio config가 있을 때만 활성화됩니다. Runtime package source는 `process.env`를 직접 읽지 않으며, 유효한 injected config가 없으면 runtime 동작은 no-op입니다.
93
106
 
94
107
  ## 런타임 지원 매트릭스
95
108
 
96
109
  | Runtime target | MVP expectation |
97
110
  | --- | --- |
98
- | Node dev runner | `fluo dev --studio`를 통한 full support target입니다. |
99
- | Bun | 이번 MVP에서는 활성화하지 않습니다. Dedicated bridge를 구현하고 검증하기 전까지 `fluo dev --studio`는 Bun 프로젝트를 거부합니다. |
100
- | Deno | 이번 MVP에서는 활성화하지 않습니다. Dedicated bridge를 구현하고 검증하기 전까지 `fluo dev --studio`는 Deno 프로젝트를 거부합니다. |
101
- | Cloudflare Workers | 별도 worker bridge를 구현하고 검증하지 않는 한 이번 MVP에서는 unsupported입니다. |
111
+ | Node dev-runner | `fluo dev --studio`를 통한 live sidecar support target입니다. CLI가 명시적인 Studio runtime config를 Node 앱 child에 주입하고 snapshot/request/timing/diagnostic lifecycle event를 stream합니다. Static inspect artifact도 계속 지원합니다. |
112
+ | Bun | 이번 MVP에서는 live sidecar event를 활성화하지 않습니다. Dedicated bridge를 구현하고 검증하기 전까지 `fluo dev --studio`는 Bun 프로젝트를 거부합니다. Migration fallback으로 `fluo inspect` JSON/report artifact, Mermaid output, 패키징된 viewer를 사용합니다. |
113
+ | Deno | 이번 MVP에서는 live sidecar event를 활성화하지 않습니다. Dedicated bridge를 구현하고 검증하기 전까지 `fluo dev --studio`는 Deno 프로젝트를 거부합니다. Migration fallback으로 `fluo inspect` JSON/report artifact, Mermaid output, 패키징된 viewer를 사용합니다. |
114
+ | Cloudflare Workers | 별도 worker bridge를 구현하고 검증하지 않는 한 이번 MVP에서는 live sidecar event가 unsupported입니다. Migration fallback으로 static inspect/report artifact와 패키징된 viewer를 사용합니다. |
102
115
 
103
116
  ## 공개 API
104
117
 
105
- Studio는 주로 애플리케이션이지만, 배포된 패키지는 도구/자동화가 사용할 수 있는 계약도 함께 공개합니다. `@fluojs/studio`를 snapshot parsing, filtering, Mermaid graph rendering, live Studio event validation 의미론의 canonical owner로 취급합니다.
118
+ Studio는 주로 CLI가 실행하는 sidecar와 browser viewer이지만, 배포된 패키지는 도구/자동화가 사용할 수 있는 계약도 함께 공개합니다. `@fluojs/studio`를 snapshot parsing, filtering, Mermaid graph rendering, live Studio event validation 의미론의 canonical owner로 취급합니다. Root `@fluojs/studio` export는 `@fluojs/studio/contracts`의 helper function과 public type을 다시 export합니다.
106
119
 
107
120
  | 규격 | 설명 |
108
121
  |---|---|
@@ -110,11 +123,43 @@ Studio는 주로 웹 애플리케이션이지만, 배포된 패키지는 도구/
110
123
  | `applyFilters(snapshot, filter)` | 원본 snapshot을 변경하지 않고 readiness/severity/query filter를 적용합니다. |
111
124
  | `renderMermaid(snapshot)` | 내부 component dependency edge와 외부 dependency node를 포함해 로드된 platform graph를 Mermaid text로 변환합니다. |
112
125
  | `parseStudioLiveEvent(rawJson)` / `validateStudioLiveEvent(value)` | UI state가 사용하기 전에 runtime-connected sidecar/SSE envelope를 검증합니다. |
126
+ | `isStudioLiveEvent(value)` | parsing 또는 dispatch 전에 sidecar/SSE envelope를 확인하는 runtime-safe type guard입니다. |
113
127
  | `StudioLiveSnapshot` | React UI가 소비하는 live graph/routes/requests/timing/diagnostics snapshot입니다. |
114
128
  | `StudioLiveEvent` | `snapshot`, `request`, `timing`, `diagnostic`, `restart`, `disconnect`, `heartbeat`를 위한 versioned live event envelope입니다. |
115
129
  | `StudioPayload` / `StudioReportArtifact` / `StudioReportSummary` | Static/report 호환성 계약입니다. |
116
130
 
117
- ### 배포 패키지 entrypoint
131
+ ### Root type export
132
+
133
+ | Type export | 설명 |
134
+ |---|---|
135
+ | `FilterState` | 원본 snapshot을 변경하지 않고 Studio가 적용하는 query, readiness status, diagnostic severity filter입니다. |
136
+ | `ParsedPayload` | `parseStudioPayload(rawJson)`의 반환 shape로, parsed `StudioPayload`와 원본 JSON string을 포함합니다. |
137
+ | `PlatformDiagnosticIssue` | Studio 소비자를 위해 `@fluojs/runtime`에서 다시 export하는 runtime diagnostic issue type입니다. |
138
+ | `PlatformDiagnosticSeverity` | Filter와 live diagnostic에서 사용하는 diagnostic severity union입니다. |
139
+ | `PlatformReadinessStatus` | Filter와 graph annotation에서 사용하는 readiness status union입니다. |
140
+ | `PlatformShellSnapshot` | Inspect artifact를 위해 `@fluojs/runtime`에서 다시 export하는 runtime-produced snapshot type입니다. |
141
+ | `StudioPayload` | Snapshot, timing diagnostics, report artifact를 담을 수 있는 static artifact envelope입니다. |
142
+ | `StudioReportArtifact` | `fluo inspect --report`가 생성하는 CI/support report artifact입니다. |
143
+ | `StudioReportSummary` | Report artifact에 포함되는 stable summary field입니다. |
144
+ | `StudioConnectionState` | Live 또는 static Studio session을 위한 UI-side connection state입니다. |
145
+ | `StudioConnectionStatus` | Live lifecycle state와 `static`을 포함하는 connection status union입니다. |
146
+ | `StudioDisconnectPayload` | Live disconnect lifecycle payload입니다. |
147
+ | `StudioGraphEdge` | Runtime-connected Studio dependency graph의 serializable edge입니다. |
148
+ | `StudioGraphEdgeKind` | Import, ownership, route exposure, dependency, export 관계를 나타내는 edge kind union입니다. |
149
+ | `StudioGraphNode` | Runtime-connected Studio dependency graph의 serializable node입니다. |
150
+ | `StudioGraphNodeKind` | Module, provider, controller, route, platform node, external dependency를 나타내는 node kind union입니다. |
151
+ | `StudioHeartbeatPayload` | Sidecar/UI session을 fresh 상태로 유지하는 live heartbeat payload입니다. |
152
+ | `StudioLiveDiagnostic` | Live diagnostics panel에 표시되는 runtime diagnostic shape입니다. |
153
+ | `StudioLiveEvent` | Snapshot, request, timing, diagnostic, restart, disconnect, heartbeat를 위한 versioned sidecar/SSE event union입니다. |
154
+ | `StudioLiveEventBase` | 모든 live Studio event가 공유하는 generic base envelope입니다. |
155
+ | `StudioLiveEventSource` | Live Studio event에 붙는 app/runtime source metadata입니다. |
156
+ | `StudioLiveSnapshot` | React UI가 소비하는 live graph/routes/requests/timing/diagnostics snapshot입니다. |
157
+ | `StudioRequestStatus` | Live request trace에서 쓰는 request lifecycle status union입니다. |
158
+ | `StudioRequestTrace` | Request/response body 없이 emit되는 request trace metadata입니다. |
159
+ | `StudioRestartPayload` | CLI-owned dev supervision이 emit하는 runtime/app restart lifecycle payload입니다. |
160
+ | `StudioRouteDescriptor` | Live Studio UI에 투영되는 route descriptor입니다. |
161
+
162
+ ### 배포 패키지 진입점
118
163
 
119
164
  - `@fluojs/studio`: snapshot parsing/filtering/rendering과 live contract용 root helper barrel
120
165
  - `@fluojs/studio/contracts`: 계약 헬퍼를 직접 가져오고 싶은 도구용 명시적 subpath
package/README.md CHANGED
@@ -2,7 +2,7 @@
2
2
 
3
3
  <p><strong><kbd>English</kbd></strong> <a href="./README.ko.md"><kbd>한국어</kbd></a></p>
4
4
 
5
- Runtime-connected React devtool for fluo applications, with backward-compatible static/report artifact loading.
5
+ CLI sidecar and React viewer workflow for fluo diagnostics, with a Node dev-runner live MVP and backward-compatible static/report artifact loading.
6
6
 
7
7
  ## Table of Contents
8
8
 
@@ -19,6 +19,14 @@ Runtime-connected React devtool for fluo applications, with backward-compatible
19
19
 
20
20
  ## Installation
21
21
 
22
+ Most application projects install Studio as a development-only dependency. The CLI resolves it for `fluo dev --studio`, `fluo inspect --mermaid`, and packaged viewer access, while the application runtime itself does not import Studio.
23
+
24
+ ```bash
25
+ pnpm add -D @fluojs/studio
26
+ ```
27
+
28
+ Use a regular dependency only when a published package or runtime automation imports `@fluojs/studio` or `@fluojs/studio/contracts` at runtime:
29
+
22
30
  ```bash
23
31
  pnpm add @fluojs/studio
24
32
  ```
@@ -31,7 +39,7 @@ The published package serves these caller-facing entrypoints:
31
39
  ## Release Policy
32
40
 
33
41
  - `@fluojs/studio` is part of the intended public publish surface for fluo.
34
- - The npm install contract for Studio is `pnpm add @fluojs/studio`; local repo development still uses `pnpm --dir packages/studio dev`.
42
+ - The app-side CLI/viewer contract is development-only installation (`pnpm add -D @fluojs/studio`); runtime tooling that imports Studio helpers should declare a normal dependency (`pnpm add @fluojs/studio`). Local repo development still uses `pnpm --dir packages/studio dev`.
35
43
  - The public package surface is additive: live devtool contracts are added while file-first parsing, filtering, graph rendering, and report artifacts remain supported.
36
44
 
37
45
  ## Quick Start: Live Devtool
@@ -48,7 +56,9 @@ fluo dev --studio
48
56
  [fluo] Studio listening at http://127.0.0.1:51234/?token=...
49
57
  ```
50
58
 
51
- Open that URL to inspect the live React Studio dashboard. The dashboard is built with Feature-Sliced Design layers under `src/app`, `src/pages`, `src/widgets`, `src/features`, `src/entities`, and `src/shared`.
59
+ Open that URL to inspect the live React Studio dashboard. The dashboard is built with Feature-Sliced Design layers under `src/app`, `src/pages`, `src/widgets`, `src/features`, `src/entities`, and `src/shared`; cross-widget rendering helpers used by the static/report viewer live in `src/shared/lib` rather than root-level viewer files.
60
+
61
+ Studio is launched as a CLI-owned sidecar/viewer workflow. It is not an application module to mount inside your fluo runtime. The live MVP targets the Node dev-runner path; non-Node projects should use the static/report inspect workflow until dedicated Bun, Deno, or Workers bridges are implemented and verified.
52
62
 
53
63
  Live mode shows:
54
64
 
@@ -65,6 +75,8 @@ MVP request flow intentionally means route/handler and dependency-graph correlat
65
75
 
66
76
  Studio still accepts JSON exports from the fluo CLI. Runtime produces snapshots, the CLI owns artifact export/write/delegation, and Studio owns the public helpers and viewer surface that parse, filter, inspect, and render those snapshots for people and automation callers. Supported inspect artifacts include raw snapshots, snapshot-plus-timing envelopes, report artifacts produced by `fluo inspect --report`, and legacy standalone timing diagnostics.
67
77
 
78
+ This file-first path is the compatibility and migration fallback for CI, support handoffs, architecture reviews, and non-Node runtime targets. Bun, Deno, and Cloudflare Workers projects should generate inspect/static artifacts and open them with the packaged viewer instead of expecting live sidecar events in the MVP. The packaged viewer is resolved through the Node-based package entrypoint (`node -p "require.resolve('@fluojs/studio/viewer')"`), even when the inspected artifact came from a non-Node runtime fallback workflow.
79
+
68
80
  1. **Export a snapshot**:
69
81
  ```bash
70
82
  fluo inspect ./src/app.module.ts --json > snapshot.json
@@ -89,20 +101,21 @@ Studio still accepts JSON exports from the fluo CLI. Runtime produces snapshots,
89
101
  - Runtime ingestion and browser state/SSE APIs require generated per-run tokens.
90
102
  - The sidecar does not enable CORS by default.
91
103
  - Request bodies are not captured by default. Live request events include method/path/url/request id/route/handler/status/duration/error metadata only.
104
+ - Live request event validation rejects body-like payload fields such as `body`, `rawBody`, `requestBody`, and `responseBody` before Studio UI state can retain them.
92
105
  - Runtime Studio instrumentation is activated only by explicit CLI-provided Studio config. Runtime package source does not read `process.env` directly; without valid injected config, runtime behavior is a no-op.
93
106
 
94
107
  ## Runtime Support Matrix
95
108
 
96
109
  | Runtime target | MVP expectation |
97
110
  | --- | --- |
98
- | Node dev runner | Full support target through `fluo dev --studio`. |
99
- | Bun | Not enabled for this MVP; `fluo dev --studio` rejects Bun projects until a dedicated bridge is implemented and verified. |
100
- | Deno | Not enabled for this MVP; `fluo dev --studio` rejects Deno projects until a dedicated bridge is implemented and verified. |
101
- | Cloudflare Workers | Unsupported for this MVP unless a dedicated worker bridge is implemented and tested. |
111
+ | Node dev-runner | Live sidecar support target through `fluo dev --studio`; the CLI injects explicit Studio runtime config into the Node app child and streams snapshot/request/timing/diagnostic lifecycle events. Static inspect artifacts remain supported. |
112
+ | Bun | Live sidecar events are not enabled for this MVP; `fluo dev --studio` rejects Bun projects until a dedicated bridge is implemented and verified. Use `fluo inspect` JSON/report artifacts, Mermaid output, and the packaged viewer as the migration fallback. |
113
+ | Deno | Live sidecar events are not enabled for this MVP; `fluo dev --studio` rejects Deno projects until a dedicated bridge is implemented and verified. Use `fluo inspect` JSON/report artifacts, Mermaid output, and the packaged viewer as the migration fallback. |
114
+ | Cloudflare Workers | Live sidecar events are unsupported for this MVP unless a dedicated worker bridge is implemented and tested. Use static inspect/report artifacts and the packaged viewer as the migration fallback. |
102
115
 
103
116
  ## Public API
104
117
 
105
- Studio is primarily a web application, but the published package also exposes documented contracts used by tooling and automation. Treat `@fluojs/studio` as the canonical owner of snapshot parsing, filtering, Mermaid graph rendering, and live Studio event validation semantics.
118
+ Studio is primarily a CLI-launched sidecar and browser viewer, but the published package also exposes documented contracts used by tooling and automation. Treat `@fluojs/studio` as the canonical owner of snapshot parsing, filtering, Mermaid graph rendering, and live Studio event validation semantics. The root `@fluojs/studio` export re-exports the helper functions and public types from `@fluojs/studio/contracts`.
106
119
 
107
120
  | Contract | Description |
108
121
  |---|---|
@@ -110,10 +123,42 @@ Studio is primarily a web application, but the published package also exposes do
110
123
  | `applyFilters(snapshot, filter)` | Applies readiness/severity/query filters without mutating the source snapshot. |
111
124
  | `renderMermaid(snapshot)` | Produces Mermaid graph text from the loaded platform graph, including internal component dependency edges and external dependency nodes. |
112
125
  | `parseStudioLiveEvent(rawJson)` / `validateStudioLiveEvent(value)` | Validate runtime-connected sidecar/SSE envelopes before UI state consumes them. |
126
+ | `isStudioLiveEvent(value)` | Runtime-safe type guard for checking sidecar/SSE envelopes before parsing or dispatch. |
113
127
  | `StudioLiveSnapshot` | Live graph/routes/requests/timing/diagnostics snapshot consumed by the React UI. |
114
128
  | `StudioLiveEvent` | Versioned live event envelope for `snapshot`, `request`, `timing`, `diagnostic`, `restart`, `disconnect`, and `heartbeat`. |
115
129
  | `StudioPayload` / `StudioReportArtifact` / `StudioReportSummary` | Static/report compatibility contracts. |
116
130
 
131
+ ### Root type exports
132
+
133
+ | Type export | Description |
134
+ |---|---|
135
+ | `FilterState` | Query, readiness status, and diagnostic severity filters applied by Studio without mutating the source snapshot. |
136
+ | `ParsedPayload` | Return shape from `parseStudioPayload(rawJson)`, including the parsed `StudioPayload` and original JSON string. |
137
+ | `PlatformDiagnosticIssue` | Runtime diagnostic issue type re-exported from `@fluojs/runtime` for Studio consumers. |
138
+ | `PlatformDiagnosticSeverity` | Diagnostic severity union used by filters and live diagnostics. |
139
+ | `PlatformReadinessStatus` | Readiness status union used by filters and graph annotations. |
140
+ | `PlatformShellSnapshot` | Runtime-produced snapshot type re-exported from `@fluojs/runtime` for inspect artifacts. |
141
+ | `StudioPayload` | Static artifact envelope containing a snapshot, timing diagnostics, and/or report artifact. |
142
+ | `StudioReportArtifact` | CI/support report artifact produced by `fluo inspect --report`. |
143
+ | `StudioReportSummary` | Stable summary fields embedded in a report artifact. |
144
+ | `StudioConnectionState` | UI-side connection state for live or static Studio sessions. |
145
+ | `StudioConnectionStatus` | Connection status union, including live lifecycle states and `static`. |
146
+ | `StudioDisconnectPayload` | Live disconnect lifecycle payload. |
147
+ | `StudioGraphEdge` | Serializable edge in the runtime-connected Studio dependency graph. |
148
+ | `StudioGraphEdgeKind` | Edge kind union for imports, ownership, route exposure, dependency, and export relationships. |
149
+ | `StudioGraphNode` | Serializable node in the runtime-connected Studio dependency graph. |
150
+ | `StudioGraphNodeKind` | Node kind union for modules, providers, controllers, routes, platform nodes, and external dependencies. |
151
+ | `StudioHeartbeatPayload` | Live heartbeat payload used to keep sidecar/UI sessions fresh. |
152
+ | `StudioLiveDiagnostic` | Runtime diagnostic shape surfaced by the live diagnostics panel. |
153
+ | `StudioLiveEvent` | Versioned sidecar/SSE event union for snapshots, requests, timing, diagnostics, restarts, disconnects, and heartbeats. |
154
+ | `StudioLiveEventBase` | Generic base envelope shared by all live Studio events. |
155
+ | `StudioLiveEventSource` | App/runtime source metadata attached to live Studio events. |
156
+ | `StudioLiveSnapshot` | Live graph/routes/requests/timing/diagnostics snapshot consumed by the React UI. |
157
+ | `StudioRequestStatus` | Request lifecycle status union used by live request traces. |
158
+ | `StudioRequestTrace` | Request trace metadata emitted without request or response bodies. |
159
+ | `StudioRestartPayload` | Runtime/app restart lifecycle payload emitted by CLI-owned dev supervision. |
160
+ | `StudioRouteDescriptor` | Route descriptor projected into the live Studio UI. |
161
+
117
162
  ### Published package entrypoints
118
163
 
119
164
  - `@fluojs/studio`: root helper barrel for snapshot parsing/filtering/rendering and live contracts.