@bluelibs/runner-dev 5.0.1 → 5.3.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 (99) hide show
  1. package/AI.md +107 -1
  2. package/README.md +66 -6
  3. package/dist/cli/overview.js +20 -3
  4. package/dist/cli/overview.js.map +1 -1
  5. package/dist/generated/resolvers-types.d.ts +213 -6
  6. package/dist/index.d.ts +4 -0
  7. package/dist/mcp/projectOverview.js +20 -3
  8. package/dist/mcp/projectOverview.js.map +1 -1
  9. package/dist/resources/docs.generator.resource.d.ts +1 -0
  10. package/dist/resources/durable.workflow.tag.d.ts +2 -0
  11. package/dist/resources/durable.workflow.tag.js +28 -0
  12. package/dist/resources/durable.workflow.tag.js.map +1 -0
  13. package/dist/resources/graphql-accumulator.resource.js +1 -0
  14. package/dist/resources/graphql-accumulator.resource.js.map +1 -1
  15. package/dist/resources/graphql.query.task.d.ts +2 -0
  16. package/dist/resources/introspector.cli.resource.js +27 -1
  17. package/dist/resources/introspector.cli.resource.js.map +1 -1
  18. package/dist/resources/introspector.resource.d.ts +1 -0
  19. package/dist/resources/introspector.resource.js +4 -2
  20. package/dist/resources/introspector.resource.js.map +1 -1
  21. package/dist/resources/live.resource.d.ts +3 -0
  22. package/dist/resources/live.resource.js +26 -0
  23. package/dist/resources/live.resource.js.map +1 -1
  24. package/dist/resources/models/Introspector.d.ts +58 -7
  25. package/dist/resources/models/Introspector.js +190 -15
  26. package/dist/resources/models/Introspector.js.map +1 -1
  27. package/dist/resources/models/durable.runtime.d.ts +5 -3
  28. package/dist/resources/models/durable.runtime.js +52 -10
  29. package/dist/resources/models/durable.runtime.js.map +1 -1
  30. package/dist/resources/models/durable.tools.d.ts +4 -0
  31. package/dist/resources/models/durable.tools.js +34 -0
  32. package/dist/resources/models/durable.tools.js.map +1 -1
  33. package/dist/resources/models/initializeFromStore.js +147 -6
  34. package/dist/resources/models/initializeFromStore.js.map +1 -1
  35. package/dist/resources/models/initializeFromStore.utils.d.ts +14 -1
  36. package/dist/resources/models/initializeFromStore.utils.js +59 -1
  37. package/dist/resources/models/initializeFromStore.utils.js.map +1 -1
  38. package/dist/resources/models/introspector.tools.d.ts +8 -0
  39. package/dist/resources/models/introspector.tools.js +63 -0
  40. package/dist/resources/models/introspector.tools.js.map +1 -1
  41. package/dist/resources/models/tunnel.tools.d.ts +3 -0
  42. package/dist/resources/models/tunnel.tools.js +35 -0
  43. package/dist/resources/models/tunnel.tools.js.map +1 -0
  44. package/dist/resources/routeHandlers/createLiveStreamHandler.d.ts +16 -0
  45. package/dist/resources/routeHandlers/createLiveStreamHandler.js +127 -0
  46. package/dist/resources/routeHandlers/createLiveStreamHandler.js.map +1 -0
  47. package/dist/resources/routeHandlers/getDocsData.js +20 -0
  48. package/dist/resources/routeHandlers/getDocsData.js.map +1 -1
  49. package/dist/resources/routeHandlers/registerHttpRoutes.hook.d.ts +2 -0
  50. package/dist/resources/routeHandlers/requestCorrelation.d.ts +11 -0
  51. package/dist/resources/routeHandlers/requestCorrelation.js +29 -0
  52. package/dist/resources/routeHandlers/requestCorrelation.js.map +1 -0
  53. package/dist/resources/server.resource.d.ts +2 -0
  54. package/dist/resources/server.resource.js +13 -1
  55. package/dist/resources/server.resource.js.map +1 -1
  56. package/dist/resources/swap.resource.d.ts +1 -0
  57. package/dist/resources/ui.static.js +6 -3
  58. package/dist/resources/ui.static.js.map +1 -1
  59. package/dist/schema/index.js +4 -0
  60. package/dist/schema/index.js.map +1 -1
  61. package/dist/schema/model.d.ts +40 -0
  62. package/dist/schema/model.js.map +1 -1
  63. package/dist/schema/query.js +23 -0
  64. package/dist/schema/query.js.map +1 -1
  65. package/dist/schema/types/AllType.js +8 -0
  66. package/dist/schema/types/AllType.js.map +1 -1
  67. package/dist/schema/types/AsyncContextType.js +21 -1
  68. package/dist/schema/types/AsyncContextType.js.map +1 -1
  69. package/dist/schema/types/BaseElementCommon.js +10 -0
  70. package/dist/schema/types/BaseElementCommon.js.map +1 -1
  71. package/dist/schema/types/InterceptorOwnersType.d.ts +2 -0
  72. package/dist/schema/types/InterceptorOwnersType.js +63 -0
  73. package/dist/schema/types/InterceptorOwnersType.js.map +1 -0
  74. package/dist/schema/types/LiveType.js +14 -76
  75. package/dist/schema/types/LiveType.js.map +1 -1
  76. package/dist/schema/types/ResourceType.js +12 -9
  77. package/dist/schema/types/ResourceType.js.map +1 -1
  78. package/dist/schema/types/RunOptionsType.d.ts +2 -0
  79. package/dist/schema/types/RunOptionsType.js +71 -0
  80. package/dist/schema/types/RunOptionsType.js.map +1 -0
  81. package/dist/schema/types/TaskType.js +36 -4
  82. package/dist/schema/types/TaskType.js.map +1 -1
  83. package/dist/schema/types/index.d.ts +2 -0
  84. package/dist/schema/types/index.js +5 -1
  85. package/dist/schema/types/index.js.map +1 -1
  86. package/dist/ui/.vite/manifest.json +2 -2
  87. package/dist/ui/assets/docs-BhRuaJ5l.css +1 -0
  88. package/dist/ui/assets/docs-H4oDZj7p.js +302 -0
  89. package/dist/ui/assets/docs-H4oDZj7p.js.map +1 -0
  90. package/dist/ui-test/assets/app.js +1 -1
  91. package/dist/utils/healthCollectors.d.ts +37 -0
  92. package/dist/utils/healthCollectors.js +147 -0
  93. package/dist/utils/healthCollectors.js.map +1 -0
  94. package/dist/version.d.ts +1 -1
  95. package/dist/version.js +1 -1
  96. package/package.json +2 -4
  97. package/dist/ui/assets/docs-CLK_iFXw.css +0 -1
  98. package/dist/ui/assets/docs-DnmhGz-y.js +0 -378
  99. package/dist/ui/assets/docs-DnmhGz-y.js.map +0 -1
package/AI.md CHANGED
@@ -12,6 +12,9 @@ Runner-Dev is a powerful development toolkit for applications built with the **@
12
12
  - **GraphQL API**: Comprehensive query interface for all system data
13
13
  - **MCP Integration**: AI-native development environment
14
14
  - **Tags (first-class)**: Discover Tag objects and reverse usage via GraphQL (`tags`, `tag(id)`).
15
+ - **Documentation UI Overviews**: Sortable and searchable overview tables with a `Used By` counter column for faster cross-element inspection.
16
+ - **Visibility Awareness**: Every element exposes `isPrivate` (based on Runner `exports()` boundaries), and resources expose `exports`.
17
+ - **Task Interceptor Introspection**: Tasks expose `interceptorCount` and `hasInterceptors` for runtime `task.intercept(...)` registrations.
15
18
 
16
19
  ## Available GraphQL Queries
17
20
 
@@ -22,18 +25,39 @@ Runner-Dev is a powerful development toolkit for applications built with the **@
22
25
  query SystemOverview {
23
26
  all {
24
27
  id
28
+ isPrivate
25
29
  meta {
26
30
  title
27
31
  description
28
32
  }
29
33
  filePath
30
34
  }
35
+ runOptions {
36
+ mode
37
+ debug
38
+ debugMode
39
+ logsEnabled
40
+ logsPrintThreshold
41
+ logsPrintStrategy
42
+ logsBuffer
43
+ errorBoundary
44
+ shutdownHooks
45
+ dryRun
46
+ lazy
47
+ initMode
48
+ runtimeEventCycleDetection
49
+ hasOnUnhandledError
50
+ rootId
51
+ }
31
52
  }
32
53
 
33
54
  # Get specific element types
34
55
  query Architecture {
35
56
  tasks {
36
57
  id
58
+ isPrivate
59
+ interceptorCount
60
+ hasInterceptors
37
61
  meta {
38
62
  title
39
63
  description
@@ -46,6 +70,8 @@ query Architecture {
46
70
  }
47
71
  resources {
48
72
  id
73
+ isPrivate
74
+ exports
49
75
  meta {
50
76
  title
51
77
  description
@@ -145,6 +171,28 @@ query LiveTelemetry {
145
171
  }
146
172
  ```
147
173
 
174
+ ### SSE Live Streaming
175
+
176
+ Server-Sent Events endpoint at `GET /live/stream` for near-instant push instead of polling:
177
+
178
+ - **`telemetry`** event: `{ logs, emissions, errors, runs }` pushed ~100ms after each record (debounced)
179
+ - **`health`** event: `{ memory, cpu, eventLoop, gc }` every 2s
180
+ - Heartbeat comment every 15s to keep proxies alive
181
+ - `Live.onRecord(callback)` fires synchronously on each `record*` call; returns an unsubscribe function
182
+ - The built-in Live Panel auto-uses SSE and falls back to configurable-interval polling (500ms–10s)
183
+
184
+ ### Correlation ID Trace View
185
+
186
+ The Live Panel includes a built-in **Trace View** — a unified timeline showing every log, event emission, error, and task run sharing a single `correlationId`, ordered chronologically. Click any correlationId badge (shown on logs, events, errors, and runs) to open the trace modal. This provides an in-process "distributed tracing" experience (like Jaeger).
187
+
188
+ ### Unified Modal System
189
+
190
+ All UI modals (CodeModal, ExecuteModal, TraceView, RecentLogs, OverviewStatsPanel) are built on a shared `BaseModal` primitive (`src/ui/src/components/Documentation/components/modals/`). It provides:
191
+
192
+ - **Stacking**: A `ModalStackContext` tracks open modals and assigns ascending z-indexes (base 10 000 + 10 per layer). Global Escape closes the topmost modal first.
193
+ - **Consistent UX**: Portal to `document.body`, backdrop blur, scroll lock, focus trap, slide-up animation, ARIA `role="dialog"`.
194
+ - **Sizes**: `sm | md | lg | xl | fullscreen` with responsive fallback to fullscreen on small viewports.
195
+
148
196
  ### Diagnostics & Health
149
197
 
150
198
  ```graphql
@@ -261,9 +309,11 @@ npx @bluelibs/runner-dev new <project-name>
261
309
  # Example
262
310
  npx @bluelibs/runner-dev new my-awesome-app
263
311
  ```
312
+
264
313
  This command creates a new Runner project with a complete TypeScript setup, Jest for testing, and all necessary dependencies.
265
314
 
266
315
  Key flags for `new`:
316
+
267
317
  - `--install`: Install dependencies after scaffolding.
268
318
  - `--run-tests`: Run the generated test suite after installation.
269
319
  - `--run`: Start the dev server after installation.
@@ -273,11 +323,13 @@ Key flags for `new`:
273
323
  All commands can be prefixed with environment variables like `ENDPOINT` and `HEADERS`.
274
324
 
275
325
  **Ping the server:**
326
+
276
327
  ```bash
277
328
  ENDPOINT=http://localhost:1337/graphql npx @bluelibs/runner-dev ping
278
329
  ```
279
330
 
280
331
  **Execute a GraphQL query (Remote Mode):**
332
+
281
333
  ```bash
282
334
  # Simple query
283
335
  ENDPOINT=http://localhost:1337/graphql npx @bluelibs/runner-dev query 'query { tasks { id } }'
@@ -305,11 +357,13 @@ npx @bluelibs/runner-dev query 'query { tasks { id } }' \
305
357
  ```
306
358
 
307
359
  Selection logic:
360
+
308
361
  - If `--entry-file` is provided, dry-run mode is used (no server; requires ts-node).
309
362
  - Otherwise, the CLI uses a remote endpoint via `--endpoint` or `ENDPOINT/GRAPHQL_ENDPOINT`.
310
363
  - If neither is provided, the command errors.
311
364
 
312
365
  **Generate a project overview:**
366
+
313
367
  ```bash
314
368
  ENDPOINT=http://localhost:1337/graphql npx @bluelibs/runner-dev overview --details 10
315
369
  ```
@@ -338,7 +392,6 @@ ENDPOINT=http://localhost:1337/graphql npx @bluelibs/runner-dev schema json
338
392
 
339
393
  This direct CLI access provides a powerful way for AI assistants with shell access to script complex interactions, perform detailed introspection, and validate application state without relying on MCP tools.
340
394
 
341
-
342
395
  ## Common Use Cases
343
396
 
344
397
  ### 1. Understanding System Architecture
@@ -448,6 +501,59 @@ mutation TestTask {
448
501
  }
449
502
  ```
450
503
 
504
+ ### 5. Durable Workflow Introspection (Node)
505
+
506
+ Durable workflows are regular Runner tasks tagged with `durableWorkflowTag` from `@bluelibs/runner/node`.
507
+ Runner-Dev exposes durable metadata directly on tasks:
508
+
509
+ - `isDurable`
510
+ - `durableResource`
511
+ - `flowShape` (checkpoint structure from `durable.describe(...)`)
512
+
513
+ ```graphql
514
+ query DurableTasks {
515
+ tasks {
516
+ id
517
+ isDurable
518
+ durableResource {
519
+ id
520
+ }
521
+ flowShape {
522
+ nodes {
523
+ __typename
524
+ }
525
+ }
526
+ }
527
+ }
528
+ ```
529
+
530
+ Minimal workflow setup pattern:
531
+
532
+ ```ts
533
+ import { r } from "@bluelibs/runner";
534
+ import {
535
+ durableWorkflowTag,
536
+ memoryDurableResource,
537
+ } from "@bluelibs/runner/node";
538
+
539
+ const durable = memoryDurableResource.fork("app.durable");
540
+ const durableRegistration = durable.with({});
541
+
542
+ const workflow = r
543
+ .task("app.tasks.orderWorkflow")
544
+ .dependencies({ durable })
545
+ .tags([durableWorkflowTag])
546
+ .run(async (input, { durable }) => {
547
+ const ctx = durable.use();
548
+ await ctx.step("validate", async () => ({ ok: true }));
549
+ await ctx.sleep(250, { stepId: "cooldown" });
550
+ return { ok: true };
551
+ })
552
+ .build();
553
+
554
+ const app = r.resource("app").register([durableRegistration, workflow]).build();
555
+ ```
556
+
451
557
  ## Best Practices for AI Assistants
452
558
 
453
559
  ### Documentation & Information Gathering
package/README.md CHANGED
@@ -39,7 +39,11 @@ const app = resource({
39
39
  ## What you get
40
40
 
41
41
  - Fully-featured UI with AI assistance to explore your app, call tasks, emit events, diagnostics, logs and more.
42
+ - Overview tables across UI sections now include sortable and searchable columns (`ID`, `Title`, `Description`, `Used By`) with per-element usage counters.
43
+ - Overview tables now include `Visibility` (`Public`/`Private`) derived from Runner resource `exports()` boundaries.
42
44
  - Introspector: programmatic API to inspect tasks, hooks, resources, events, middleware, and diagnostics (including file paths, contents)
45
+ - Task introspection includes runtime `interceptorCount` / `hasInterceptors` (registered via `taskDependency.intercept(...)` in resource init).
46
+ - Resource introspection includes `exports` (resolved list of ids exposed by `.exports([...])`).
43
47
  - Live: in-memory logs and event emissions
44
48
  - Live File Previews and Saving.
45
49
  - GraphQL server: deep graph navigation over your app’s topology and live data
@@ -85,6 +89,7 @@ Once your application is running with the `dev` resource, you can access the vis
85
89
  🚀 **Open [http://localhost:1337](http://localhost:1337) in your browser.**
86
90
 
87
91
  Inside the UI, you can:
92
+
88
93
  - Explore the resource graph.
89
94
  - Manually invoke tasks with custom inputs.
90
95
  - Inspect live logs and event emissions in real-time.
@@ -317,13 +322,13 @@ Precedence:
317
322
 
318
323
  ### CLI Summary
319
324
 
320
- | Category | Description |
321
- | --- | --- |
322
- | **New Project** | `runner-dev new <project-name>` |
325
+ | Category | Description |
326
+ | --------------- | --------------------------------------------------------- |
327
+ | **New Project** | `runner-dev new <project-name>` |
323
328
  | **Scaffolding** | `runner-dev new <resource\|task\|event\|tag\|middleware>` |
324
- | **Queries** | `runner-dev query 'query { ... }'` |
325
- | **Overview** | `runner-dev overview --details 10` |
326
- | **Schema** | `runner-dev schema sdl` |
329
+ | **Queries** | `runner-dev query 'query { ... }'` |
330
+ | **Overview** | `runner-dev overview --details 10` |
331
+ | **Schema** | `runner-dev schema sdl` |
327
332
 
328
333
  ---
329
334
 
@@ -546,6 +551,41 @@ Notes:
546
551
  - `cpu.usage` is a ratio; `loadAverage` is 1‑minute OS load.
547
552
  - `eventLoop.lag` may be 0 if `monitorEventLoopDelay` is unavailable.
548
553
 
554
+ ### SSE Live Streaming
555
+
556
+ In addition to GraphQL polling, the server exposes a **Server-Sent Events** endpoint at `GET /live/stream` for near-instant telemetry delivery:
557
+
558
+ ```http
559
+ GET /live/stream
560
+ Accept: text/event-stream
561
+ ```
562
+
563
+ The endpoint pushes two event types:
564
+
565
+ | Event | Cadence | Payload |
566
+ | ----------- | -------------------------------------------- | ----------------------------------------------------------- |
567
+ | `telemetry` | ~100ms after each `record*` call (debounced) | `{ logs, emissions, errors, runs }` (delta since last push) |
568
+ | `health` | Every 2s | `{ memory, cpu, eventLoop, gc }` |
569
+
570
+ A heartbeat comment (`: heartbeat`) is sent every 15s to keep the connection alive through proxies.
571
+
572
+ **JavaScript client example:**
573
+
574
+ ```js
575
+ const es = new EventSource("http://localhost:1337/live/stream");
576
+ es.addEventListener("telemetry", (e) => {
577
+ const { logs, emissions, errors, runs } = JSON.parse(e.data);
578
+ // merge into your state
579
+ });
580
+ es.addEventListener("health", (e) => {
581
+ const { memory, cpu, eventLoop, gc } = JSON.parse(e.data);
582
+ });
583
+ ```
584
+
585
+ The built-in Live Panel UI automatically uses SSE when available and falls back to configurable-interval polling (500ms–10s slider) when SSE is not supported.
586
+
587
+ **Programmatic notification hook:** The `Live` interface exposes `onRecord(callback)` which fires synchronously whenever a `record*` method is called, returning an unsubscribe function. This is the mechanism the SSE endpoint uses internally.
588
+
549
589
  ### Correlation and call chains
550
590
 
551
591
  - What is correlationId? An opaque UUID (via `crypto.randomUUID()`) created for the first task in a run chain.
@@ -582,6 +622,14 @@ query TraceByCorrelation($ts: Float, $cid: String!) {
582
622
  }
583
623
  ```
584
624
 
625
+ #### Trace View (UI)
626
+
627
+ The Live Panel includes a built-in **Trace View** — click any `correlationId` badge in the Logs, Events, Errors, or Runs sub-tabs to open a unified timeline modal showing every entry that shares that ID, ordered chronologically. Each entry is color-coded by kind (log, event, error, run) with a vertical timeline gutter, relative offset labels, and expandable details. This provides an in-process "distributed tracing" experience similar to Jaeger or Zipkin, but entirely within the Dev UI.
628
+
629
+ #### Unified Modal System
630
+
631
+ All Dev UI modals (code viewer, execute, trace view, log details, stats overlay) share a common `BaseModal` primitive that provides portal rendering, backdrop blur, focus trap, scroll lock, slide-up animation, and ARIA dialog semantics. A `ModalStackContext` manages stacking so modals can open on top of other modals — each layer gets a higher z-index and the global <kbd>Esc</kbd> key always closes the topmost one first.
632
+
585
633
  ## Emitting Events (Runner-native)
586
634
 
587
635
  - Define an event:
@@ -682,6 +730,18 @@ export const app = resource({
682
730
 
683
731
  #### Queries
684
732
 
733
+ **Get the effective run options (how the app was started):**
734
+
735
+ ```graphql
736
+ query {
737
+ runOptions {
738
+ mode
739
+ debug
740
+ rootId
741
+ }
742
+ }
743
+ ```
744
+
685
745
  **Get currently swapped tasks:**
686
746
 
687
747
  ```graphql
@@ -3,6 +3,21 @@
3
3
  Object.defineProperty(exports, "__esModule", { value: true });
4
4
  exports.main = main;
5
5
  const shared_1 = require("./shared");
6
+ /**
7
+ * Counts total connections (dependencies + middleware usage) across
8
+ * tasks, hooks, and resources. Each dependsOn entry and each middleware
9
+ * entry counts as one connection.
10
+ */
11
+ function countConnections(tasks, hooks, resources) {
12
+ let total = 0;
13
+ for (const node of [...tasks, ...hooks, ...resources]) {
14
+ if (Array.isArray(node.dependsOn))
15
+ total += node.dependsOn.length;
16
+ if (Array.isArray(node.middleware))
17
+ total += node.middleware.length;
18
+ }
19
+ return total;
20
+ }
6
21
  function printHelp() {
7
22
  console.log(`
8
23
  runner-dev overview
@@ -52,9 +67,9 @@ async function main(argv) {
52
67
  const includeLive = Boolean(opts.get("include-live"));
53
68
  const namespace = opts.get("namespace") || undefined;
54
69
  const query = `query Overview($liveLast: Int) {
55
- tasks { id meta { title description } filePath inputSchemaReadable }
56
- hooks { id meta { title description } events filePath inputSchemaReadable }
57
- resources { id meta { title description } filePath configSchemaReadable }
70
+ tasks { id meta { title description } filePath inputSchemaReadable dependsOn middleware }
71
+ hooks { id meta { title description } events filePath inputSchemaReadable dependsOn middleware }
72
+ resources { id meta { title description } filePath configSchemaReadable dependsOn middleware }
58
73
  middlewares { id meta { title description } filePath configSchemaReadable }
59
74
  events { id meta { title description } filePath payloadSchemaReadable emittedBy listenedToBy }
60
75
  diagnostics { severity code message nodeId nodeKind }
@@ -96,12 +111,14 @@ async function main(argv) {
96
111
  lines.push("");
97
112
  lines.push(`Endpoint: ${endpointResolved}`);
98
113
  lines.push("");
114
+ const totalConnections = countConnections(tasks, hooks, resources);
99
115
  lines.push(`## Topology Summary`);
100
116
  lines.push(`- Tasks: ${tasks.length}`);
101
117
  lines.push(`- Hooks: ${hooks.length}`);
102
118
  lines.push(`- Resources: ${resources.length}`);
103
119
  lines.push(`- Middleware: ${middlewares.length}`);
104
120
  lines.push(`- Events: ${events.length}`);
121
+ lines.push(`- Connections: ${totalConnections}`);
105
122
  lines.push(`- Diagnostics: ${diagnostics.length}`);
106
123
  if (Object.keys(diagBySeverity).length) {
107
124
  const sevStr = Object.entries(diagBySeverity)
@@ -1 +1 @@
1
- {"version":3,"file":"overview.js","sourceRoot":"","sources":["../../src/cli/overview.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"overview.js","sourceRoot":"","sources":["../../src/cli/overview.ts"],"names":[],"mappings":"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"}