@bluelibs/runner-dev 6.1.0 → 6.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.
- package/README.md +143 -14
- package/dist/cli/generators/initUtils.js +1 -1
- package/dist/cli/generators/initUtils.js.map +1 -1
- package/dist/cli/generators/scaffold/templates/README.md.js +21 -5
- package/dist/cli/generators/scaffold/templates/README.md.js.map +1 -1
- package/dist/cli/generators/scaffold/templates/index.d.ts +2 -3
- package/dist/cli/generators/scaffold/templates/index.js +5 -7
- package/dist/cli/generators/scaffold/templates/index.js.map +1 -1
- package/dist/cli/generators/scaffold/templates/package.json.d.ts +11 -8
- package/dist/cli/generators/scaffold/templates/package.json.js +11 -8
- package/dist/cli/generators/scaffold/templates/package.json.js.map +1 -1
- package/dist/cli/generators/scaffold/templates/src/app.test.ts.d.ts +1 -0
- package/dist/cli/generators/scaffold/templates/src/app.test.ts.js +29 -0
- package/dist/cli/generators/scaffold/templates/src/app.test.ts.js.map +1 -0
- package/dist/cli/generators/scaffold/templates/src/app.ts.d.ts +1 -0
- package/dist/cli/generators/scaffold/templates/src/app.ts.js +15 -0
- package/dist/cli/generators/scaffold/templates/src/app.ts.js.map +1 -0
- package/dist/cli/generators/scaffold/templates/src/main.test.ts.js +3 -1
- package/dist/cli/generators/scaffold/templates/src/main.test.ts.js.map +1 -1
- package/dist/cli/generators/scaffold/templates/src/main.ts.js +3 -10
- package/dist/cli/generators/scaffold/templates/src/main.ts.js.map +1 -1
- package/dist/cli/generators/scaffold/templates/tsconfig.json.d.ts +2 -0
- package/dist/cli/generators/scaffold/templates/tsconfig.json.js +2 -0
- package/dist/cli/generators/scaffold/templates/tsconfig.json.js.map +1 -1
- package/dist/cli/generators/scaffold.js +2 -3
- package/dist/cli/generators/scaffold.js.map +1 -1
- package/dist/cli/init.js +1 -2
- package/dist/cli/init.js.map +1 -1
- package/dist/docs/packageDocs.d.ts +16 -0
- package/dist/docs/packageDocs.js +107 -0
- package/dist/docs/packageDocs.js.map +1 -0
- package/dist/exportDocs.d.ts +10 -0
- package/dist/exportDocs.js +98 -0
- package/dist/exportDocs.js.map +1 -0
- package/dist/generated/resolvers-types.d.ts +127 -42
- package/dist/index.d.ts +5 -2
- package/dist/index.js +3 -1
- package/dist/index.js.map +1 -1
- package/dist/mcp/env.d.ts +5 -0
- package/dist/mcp/env.js +30 -1
- package/dist/mcp/env.js.map +1 -1
- package/dist/mcp/help.d.ts +8 -1
- package/dist/mcp/help.js +30 -4
- package/dist/mcp/help.js.map +1 -1
- package/dist/mcp/http.js +10 -0
- package/dist/mcp/http.js.map +1 -1
- package/dist/mcp/projectOverview.js +13 -4
- package/dist/mcp/projectOverview.js.map +1 -1
- package/dist/mcp/snapshot.d.ts +22 -0
- package/dist/mcp/snapshot.js +347 -0
- package/dist/mcp/snapshot.js.map +1 -0
- package/dist/mcp/tools/graphql.mutation.js +4 -1
- package/dist/mcp/tools/graphql.mutation.js.map +1 -1
- package/dist/mcp/tools/graphql.ping.js +1 -1
- package/dist/mcp/tools/graphql.ping.js.map +1 -1
- package/dist/mcp/tools/graphql.query.js +1 -1
- package/dist/mcp/tools/graphql.query.js.map +1 -1
- package/dist/mcp/tools/help.read.js +7 -5
- package/dist/mcp/tools/help.read.js.map +1 -1
- package/dist/mcp/tools/help.runner.js +3 -1
- package/dist/mcp/tools/help.runner.js.map +1 -1
- package/dist/mcp/tools/help.runnerDev.js +4 -4
- package/dist/mcp/tools/help.runnerDev.js.map +1 -1
- package/dist/mcp.js +4 -9
- package/dist/mcp.js.map +1 -1
- package/dist/resources/cli.config.resource.js +1 -1
- package/dist/resources/cli.config.resource.js.map +1 -1
- package/dist/resources/coverage.resource.js +1 -1
- package/dist/resources/coverage.resource.js.map +1 -1
- package/dist/resources/dev.resource.d.ts +1 -1
- package/dist/resources/dev.resource.js +1 -1
- package/dist/resources/dev.resource.js.map +1 -1
- package/dist/resources/docs.generator.resource.js +1 -1
- package/dist/resources/docs.generator.resource.js.map +1 -1
- package/dist/resources/docsPayload.d.ts +33 -0
- package/dist/resources/docsPayload.js +171 -0
- package/dist/resources/docsPayload.js.map +1 -0
- package/dist/resources/docsUiAssets.d.ts +27 -0
- package/dist/resources/docsUiAssets.js +150 -0
- package/dist/resources/docsUiAssets.js.map +1 -0
- package/dist/resources/graphql-accumulator.resource.d.ts +1 -0
- package/dist/resources/graphql-accumulator.resource.js +31 -27
- package/dist/resources/graphql-accumulator.resource.js.map +1 -1
- package/dist/resources/graphql.cli.resource.js +1 -1
- package/dist/resources/graphql.cli.resource.js.map +1 -1
- package/dist/resources/graphql.query.cli.task.d.ts +2 -4
- package/dist/resources/graphql.query.cli.task.js +1 -1
- package/dist/resources/graphql.query.cli.task.js.map +1 -1
- package/dist/resources/graphql.query.task.d.ts +2 -4
- package/dist/resources/graphql.query.task.js +1 -1
- package/dist/resources/graphql.query.task.js.map +1 -1
- package/dist/resources/http.tag.js +1 -1
- package/dist/resources/http.tag.js.map +1 -1
- package/dist/resources/introspector.cli.resource.js +1 -1
- package/dist/resources/introspector.cli.resource.js.map +1 -1
- package/dist/resources/introspector.resource.js +1 -1
- package/dist/resources/introspector.resource.js.map +1 -1
- package/dist/resources/live.resource.js +4 -4
- package/dist/resources/live.resource.js.map +1 -1
- package/dist/resources/models/Introspector.d.ts +16 -4
- package/dist/resources/models/Introspector.js +68 -39
- package/dist/resources/models/Introspector.js.map +1 -1
- package/dist/resources/models/durable.tools.js +3 -1
- package/dist/resources/models/durable.tools.js.map +1 -1
- package/dist/resources/models/initializeFromStore.js +5 -5
- package/dist/resources/models/initializeFromStore.js.map +1 -1
- package/dist/resources/models/initializeFromStore.utils.d.ts +2 -2
- package/dist/resources/models/initializeFromStore.utils.js +424 -78
- package/dist/resources/models/initializeFromStore.utils.js.map +1 -1
- package/dist/resources/models/introspector.tools.js +103 -19
- package/dist/resources/models/introspector.tools.js.map +1 -1
- package/dist/resources/routeHandlers/createDocsServeHandler.js +13 -37
- package/dist/resources/routeHandlers/createDocsServeHandler.js.map +1 -1
- package/dist/resources/routeHandlers/getDocsData.d.ts +1 -6
- package/dist/resources/routeHandlers/getDocsData.js +10 -168
- package/dist/resources/routeHandlers/getDocsData.js.map +1 -1
- package/dist/resources/routeHandlers/registerHttpRoutes.hook.js +1 -1
- package/dist/resources/routeHandlers/registerHttpRoutes.hook.js.map +1 -1
- package/dist/resources/server.resource.js +1 -2
- package/dist/resources/server.resource.js.map +1 -1
- package/dist/resources/swap.cli.resource.js +1 -1
- package/dist/resources/swap.cli.resource.js.map +1 -1
- package/dist/resources/swap.resource.js +1 -1
- package/dist/resources/swap.resource.js.map +1 -1
- package/dist/resources/telemetry.resource.js +27 -6
- package/dist/resources/telemetry.resource.js.map +1 -1
- package/dist/resources/ui.static.js +4 -9
- package/dist/resources/ui.static.js.map +1 -1
- package/dist/runtime/symbolMetadata.d.ts +1 -0
- package/dist/{architect/core/interfaces.js → runtime/symbolMetadata.js} +1 -1
- package/dist/runtime/symbolMetadata.js.map +1 -0
- package/dist/schema/model.d.ts +18 -0
- package/dist/schema/model.js +14 -0
- package/dist/schema/model.js.map +1 -1
- package/dist/schema/query.js +6 -4
- package/dist/schema/query.js.map +1 -1
- package/dist/schema/types/AllType.js +2 -21
- package/dist/schema/types/AllType.js.map +1 -1
- package/dist/schema/types/AsyncContextType.js +21 -17
- package/dist/schema/types/AsyncContextType.js.map +1 -1
- package/dist/schema/types/ErrorType.js +1 -3
- package/dist/schema/types/ErrorType.js.map +1 -1
- package/dist/schema/types/EventType.js +6 -19
- package/dist/schema/types/EventType.js.map +1 -1
- package/dist/schema/types/HookType.js +4 -16
- package/dist/schema/types/HookType.js.map +1 -1
- package/dist/schema/types/ResourceType.js +50 -23
- package/dist/schema/types/ResourceType.js.map +1 -1
- package/dist/schema/types/TaskLikeCommon.js +2 -2
- package/dist/schema/types/TaskLikeCommon.js.map +1 -1
- package/dist/schema/types/TaskType.js +6 -19
- package/dist/schema/types/TaskType.js.map +1 -1
- package/dist/schema/types/middleware/UsageTypes.d.ts +1 -0
- package/dist/schema/types/middleware/UsageTypes.js +16 -5
- package/dist/schema/types/middleware/UsageTypes.js.map +1 -1
- package/dist/schema/types/middleware/common.js +2 -2
- package/dist/schema/types/middleware/common.js.map +1 -1
- package/dist/ui/.vite/manifest.json +2 -2
- package/dist/ui/assets/docs-Beb_xRuE.js +304 -0
- package/dist/ui/assets/docs-Beb_xRuE.js.map +1 -0
- package/dist/ui/assets/docs-lid1amCk.css +1 -0
- package/dist/ui/docs/favicon.ico +0 -0
- package/dist/utils/lane-resources.d.ts +69 -0
- package/dist/utils/lane-resources.js +154 -1
- package/dist/utils/lane-resources.js.map +1 -1
- package/dist/utils/runner-namespace.d.ts +1 -0
- package/dist/utils/runner-namespace.js +9 -0
- package/dist/utils/runner-namespace.js.map +1 -0
- package/dist/utils/schemaFormat.d.ts +6 -0
- package/dist/utils/schemaFormat.js +244 -0
- package/dist/utils/schemaFormat.js.map +1 -0
- package/dist/utils/system-namespace.d.ts +1 -0
- package/dist/utils/system-namespace.js +9 -0
- package/dist/utils/system-namespace.js.map +1 -0
- package/dist/version.d.ts +1 -1
- package/dist/version.js +1 -1
- package/package.json +29 -11
- package/readmes/API_REFERENCE.md +364 -0
- package/readmes/COMPACT_GUIDE.md +254 -0
- package/skills/core/SKILL.md +27 -0
- package/skills/core/references/readmes/API_REFERENCE.md +364 -0
- package/skills/core/references/readmes/COMPACT_GUIDE.md +254 -0
- package/AI.md +0 -622
- package/dist/app/tasks/create-user.task.d.ts +0 -5
- package/dist/app/tasks/create-user.task.js +0 -20
- package/dist/app/tasks/create-user.task.js.map +0 -1
- package/dist/app/tasks/index.d.ts +0 -1
- package/dist/app/tasks/index.js +0 -18
- package/dist/app/tasks/index.js.map +0 -1
- package/dist/architect/core/errors.d.ts +0 -39
- package/dist/architect/core/errors.js +0 -143
- package/dist/architect/core/errors.js.map +0 -1
- package/dist/architect/core/index.d.ts +0 -3
- package/dist/architect/core/index.js +0 -21
- package/dist/architect/core/index.js.map +0 -1
- package/dist/architect/core/interfaces.d.ts +0 -158
- package/dist/architect/core/interfaces.js.map +0 -1
- package/dist/architect/core/types.d.ts +0 -544
- package/dist/architect/core/types.js +0 -49
- package/dist/architect/core/types.js.map +0 -1
- package/dist/architect/execution/executor.d.ts +0 -23
- package/dist/architect/execution/executor.js +0 -476
- package/dist/architect/execution/executor.js.map +0 -1
- package/dist/architect/execution/index.d.ts +0 -1
- package/dist/architect/execution/index.js +0 -19
- package/dist/architect/execution/index.js.map +0 -1
- package/dist/architect/executor.d.ts +0 -7
- package/dist/architect/executor.js +0 -150
- package/dist/architect/executor.js.map +0 -1
- package/dist/architect/index.d.ts +0 -45
- package/dist/architect/index.js +0 -76
- package/dist/architect/index.js.map +0 -1
- package/dist/architect/llmClient.d.ts +0 -10
- package/dist/architect/llmClient.js +0 -33
- package/dist/architect/llmClient.js.map +0 -1
- package/dist/architect/models/base.d.ts +0 -16
- package/dist/architect/models/base.js +0 -68
- package/dist/architect/models/base.js.map +0 -1
- package/dist/architect/models/factory.d.ts +0 -16
- package/dist/architect/models/factory.js +0 -73
- package/dist/architect/models/factory.js.map +0 -1
- package/dist/architect/models/index.d.ts +0 -3
- package/dist/architect/models/index.js +0 -21
- package/dist/architect/models/index.js.map +0 -1
- package/dist/architect/models/openai.d.ts +0 -7
- package/dist/architect/models/openai.js +0 -71
- package/dist/architect/models/openai.js.map +0 -1
- package/dist/architect/planner.d.ts +0 -9
- package/dist/architect/planner.js +0 -42
- package/dist/architect/planner.js.map +0 -1
- package/dist/architect/planning/index.d.ts +0 -4
- package/dist/architect/planning/index.js +0 -22
- package/dist/architect/planning/index.js.map +0 -1
- package/dist/architect/planning/optimizer.d.ts +0 -14
- package/dist/architect/planning/optimizer.js +0 -275
- package/dist/architect/planning/optimizer.js.map +0 -1
- package/dist/architect/planning/planner.d.ts +0 -15
- package/dist/architect/planning/planner.js +0 -124
- package/dist/architect/planning/planner.js.map +0 -1
- package/dist/architect/planning/prompts.d.ts +0 -6
- package/dist/architect/planning/prompts.js +0 -111
- package/dist/architect/planning/prompts.js.map +0 -1
- package/dist/architect/planning/validator.d.ts +0 -16
- package/dist/architect/planning/validator.js +0 -331
- package/dist/architect/planning/validator.js.map +0 -1
- package/dist/architect/prompt.d.ts +0 -1
- package/dist/architect/prompt.js +0 -13
- package/dist/architect/prompt.js.map +0 -1
- package/dist/architect/types.d.ts +0 -4
- package/dist/architect/types.js +0 -24
- package/dist/architect/types.js.map +0 -1
- package/dist/cli/generators/scaffold/templates/jest.config.cjs.d.ts +0 -1
- package/dist/cli/generators/scaffold/templates/jest.config.cjs.js +0 -24
- package/dist/cli/generators/scaffold/templates/jest.config.cjs.js.map +0 -1
- package/dist/cli/generators/scaffold/templates/tsconfig.jest.json.d.ts +0 -11
- package/dist/cli/generators/scaffold/templates/tsconfig.jest.json.js +0 -17
- package/dist/cli/generators/scaffold/templates/tsconfig.jest.json.js.map +0 -1
- package/dist/client/documentation.d.ts +0 -8
- package/dist/client/documentation.js +0 -144
- package/dist/client/documentation.js.map +0 -1
- package/dist/components/Documentation/Documentation.d.ts +0 -8
- package/dist/components/Documentation/Documentation.js +0 -283
- package/dist/components/Documentation/Documentation.js.map +0 -1
- package/dist/components/Documentation/components/DiagnosticsPanel.d.ts +0 -7
- package/dist/components/Documentation/components/DiagnosticsPanel.js +0 -189
- package/dist/components/Documentation/components/DiagnosticsPanel.js.map +0 -1
- package/dist/components/Documentation/components/EventCard.d.ts +0 -8
- package/dist/components/Documentation/components/EventCard.js +0 -290
- package/dist/components/Documentation/components/EventCard.js.map +0 -1
- package/dist/components/Documentation/components/HookCard.d.ts +0 -8
- package/dist/components/Documentation/components/HookCard.js +0 -282
- package/dist/components/Documentation/components/HookCard.js.map +0 -1
- package/dist/components/Documentation/components/MiddlewareCard.d.ts +0 -8
- package/dist/components/Documentation/components/MiddlewareCard.js +0 -314
- package/dist/components/Documentation/components/MiddlewareCard.js.map +0 -1
- package/dist/components/Documentation/components/ResourceCard.d.ts +0 -8
- package/dist/components/Documentation/components/ResourceCard.js +0 -228
- package/dist/components/Documentation/components/ResourceCard.js.map +0 -1
- package/dist/components/Documentation/components/Sidebar.d.ts +0 -13
- package/dist/components/Documentation/components/Sidebar.js +0 -165
- package/dist/components/Documentation/components/Sidebar.js.map +0 -1
- package/dist/components/Documentation/components/TagCard.d.ts +0 -7
- package/dist/components/Documentation/components/TagCard.js +0 -75
- package/dist/components/Documentation/components/TagCard.js.map +0 -1
- package/dist/components/Documentation/components/TaskCard.d.ts +0 -8
- package/dist/components/Documentation/components/TaskCard.js +0 -196
- package/dist/components/Documentation/components/TaskCard.js.map +0 -1
- package/dist/components/Documentation/index.d.ts +0 -2
- package/dist/components/Documentation/index.js +0 -6
- package/dist/components/Documentation/index.js.map +0 -1
- package/dist/components/Documentation/utils/formatting.d.ts +0 -8
- package/dist/components/Documentation/utils/formatting.js +0 -84
- package/dist/components/Documentation/utils/formatting.js.map +0 -1
- package/dist/components/ExampleComponent.d.ts +0 -10
- package/dist/components/ExampleComponent.js +0 -89
- package/dist/components/ExampleComponent.js.map +0 -1
- package/dist/mcp/z3.d.ts +0 -1
- package/dist/mcp/z3.js +0 -9
- package/dist/mcp/z3.js.map +0 -1
- package/dist/project-writer/AIModel.d.ts +0 -29
- package/dist/project-writer/AIModel.js +0 -48
- package/dist/project-writer/AIModel.js.map +0 -1
- package/dist/resources/docs.route.d.ts +0 -23
- package/dist/resources/docs.route.js +0 -73
- package/dist/resources/docs.route.js.map +0 -1
- package/dist/resources/durable.workflow.tag.d.ts +0 -2
- package/dist/resources/durable.workflow.tag.js +0 -28
- package/dist/resources/durable.workflow.tag.js.map +0 -1
- package/dist/resources/getFileContents.task.d.ts +0 -17
- package/dist/resources/getFileContents.task.js +0 -44
- package/dist/resources/getFileContents.task.js.map +0 -1
- package/dist/resources/introspector.tools.d.ts +0 -47
- package/dist/resources/introspector.tools.js +0 -505
- package/dist/resources/introspector.tools.js.map +0 -1
- package/dist/resources/models/extractTunnelInfo.d.ts +0 -8
- package/dist/resources/models/extractTunnelInfo.js +0 -85
- package/dist/resources/models/extractTunnelInfo.js.map +0 -1
- package/dist/resources/models/tunnel.tools.d.ts +0 -3
- package/dist/resources/models/tunnel.tools.js +0 -35
- package/dist/resources/models/tunnel.tools.js.map +0 -1
- package/dist/runner-compat.d.ts +0 -85
- package/dist/runner-compat.js +0 -178
- package/dist/runner-compat.js.map +0 -1
- package/dist/runner-node-compat.d.ts +0 -2
- package/dist/runner-node-compat.js +0 -28
- package/dist/runner-node-compat.js.map +0 -1
- package/dist/schema/types/TunnelInfoType.d.ts +0 -5
- package/dist/schema/types/TunnelInfoType.js +0 -86
- package/dist/schema/types/TunnelInfoType.js.map +0 -1
- package/dist/tasks/create-user.d.ts +0 -5
- package/dist/tasks/create-user.js +0 -20
- package/dist/tasks/create-user.js.map +0 -1
- package/dist/tasks/index.d.ts +0 -1
- package/dist/tasks/index.js +0 -18
- package/dist/tasks/index.js.map +0 -1
- package/dist/ui/assets/docs-CHvYnckk.js +0 -302
- package/dist/ui/assets/docs-CHvYnckk.js.map +0 -1
- package/dist/ui/assets/docs-CipvKUxZ.css +0 -1
- package/dist/ui-test/index.html +0 -1
- package/readmes/runner-AI.md +0 -740
- package/readmes/runner-durable-workflows.md +0 -2247
- package/readmes/runner-full-guide.md +0 -5869
- package/readmes/runner-remote-lanes.md +0 -909
|
@@ -0,0 +1,254 @@
|
|
|
1
|
+
# Runner-Dev Compact Guide
|
|
2
|
+
|
|
3
|
+
Runner-Dev is the developer-facing toolkit for inspecting, querying, and debugging Runner apps through a docs UI, GraphQL endpoint, MCP server, live telemetry, and controlled hot-swapping. Use it when the task is about what a Runner app looks like at runtime, what the docs/AI layer sees, or how runner-dev exposes that information.
|
|
4
|
+
|
|
5
|
+
It also supports a static export path through `exportDocs(app, { output?, overwrite? })` when you want the visual catalog without keeping a live server around.
|
|
6
|
+
|
|
7
|
+
## Use This When
|
|
8
|
+
|
|
9
|
+
- The task touches `/docs/data`, docs UI, chat context, agent-facing documentation, or the topology graph / blast-radius / mindmap views.
|
|
10
|
+
- You need GraphQL or MCP access to runtime topology, telemetry, schema, or diagnostics.
|
|
11
|
+
- You are debugging telemetry, live events, durable metadata, hook targets, or lane surfaces.
|
|
12
|
+
- You are changing runner-dev CLI, MCP tools, docs payload shaping, or introspection behavior.
|
|
13
|
+
|
|
14
|
+
## Fastest Path To Success
|
|
15
|
+
|
|
16
|
+
1. Decide whether the target app is already running.
|
|
17
|
+
2. If it is running, prefer MCP or GraphQL before reading lots of source.
|
|
18
|
+
3. If it is package work, locate the subsystem first:
|
|
19
|
+
- docs payloads and docs UI
|
|
20
|
+
- introspector/store serialization
|
|
21
|
+
- MCP tools
|
|
22
|
+
- live telemetry
|
|
23
|
+
- swap/hot-reload
|
|
24
|
+
4. Patch the smallest surface that explains the behavior.
|
|
25
|
+
5. Run the narrowest relevant test first, then widen only if needed.
|
|
26
|
+
|
|
27
|
+
## Quick Setup
|
|
28
|
+
|
|
29
|
+
Register runner-dev in the Runner root:
|
|
30
|
+
|
|
31
|
+
```ts
|
|
32
|
+
import { r } from "@bluelibs/runner";
|
|
33
|
+
import { dev } from "@bluelibs/runner-dev";
|
|
34
|
+
|
|
35
|
+
export const app = r
|
|
36
|
+
.resource("app")
|
|
37
|
+
.register([
|
|
38
|
+
dev.with({
|
|
39
|
+
port: 1337,
|
|
40
|
+
maxEntries: 1000,
|
|
41
|
+
}),
|
|
42
|
+
])
|
|
43
|
+
.build();
|
|
44
|
+
```
|
|
45
|
+
|
|
46
|
+
Expected endpoints after the app starts:
|
|
47
|
+
|
|
48
|
+
- UI: `http://localhost:1337`
|
|
49
|
+
- GraphQL: `http://localhost:1337/graphql`
|
|
50
|
+
- Live stream: `http://localhost:1337/live/stream`
|
|
51
|
+
- Docs payload: `http://localhost:1337/docs/data`
|
|
52
|
+
|
|
53
|
+
Static export option:
|
|
54
|
+
|
|
55
|
+
```ts
|
|
56
|
+
// scripts/export-docs.ts
|
|
57
|
+
import { exportDocs } from "@bluelibs/runner-dev";
|
|
58
|
+
import { app } from "../src/app";
|
|
59
|
+
|
|
60
|
+
await exportDocs(app);
|
|
61
|
+
// Optional custom destination:
|
|
62
|
+
await exportDocs(app, {
|
|
63
|
+
output: "./artifacts/runner-dev-catalog",
|
|
64
|
+
overwrite: true,
|
|
65
|
+
});
|
|
66
|
+
```
|
|
67
|
+
|
|
68
|
+
Add a package script:
|
|
69
|
+
|
|
70
|
+
```json
|
|
71
|
+
{
|
|
72
|
+
"scripts": {
|
|
73
|
+
"docs:export": "tsx scripts/export-docs.ts"
|
|
74
|
+
}
|
|
75
|
+
}
|
|
76
|
+
```
|
|
77
|
+
|
|
78
|
+
Then run:
|
|
79
|
+
|
|
80
|
+
```bash
|
|
81
|
+
npm run docs:export
|
|
82
|
+
```
|
|
83
|
+
|
|
84
|
+
Notes:
|
|
85
|
+
|
|
86
|
+
- default output is `./runner-dev-catalog`
|
|
87
|
+
- `exportDocs()` uses Runner dry-run under the hood: it effectively does `run(app, { dryRun: true })` and snapshots the composed in-memory store
|
|
88
|
+
- `exportDocs(app)` writes a standalone `index.html` plus `snapshot.json`
|
|
89
|
+
- custom non-empty directories require `overwrite: true`
|
|
90
|
+
- the exported `index.html` is standalone and can be opened directly over `file://`
|
|
91
|
+
- `snapshot.json` is still written as an auxiliary artifact for inspection, debugging, and snapshot-backed MCP
|
|
92
|
+
- this works well in CI too: upload the export folder as a build artifact and inspect it after the pipeline finishes
|
|
93
|
+
- in this repository, `npm run play:export` is the same pattern wired to the enhanced showcase app
|
|
94
|
+
|
|
95
|
+
## MCP Quickstart
|
|
96
|
+
|
|
97
|
+
Use MCP against either a live Dev GraphQL endpoint or an exported `snapshot.json`.
|
|
98
|
+
|
|
99
|
+
Minimal client config:
|
|
100
|
+
|
|
101
|
+
```json
|
|
102
|
+
{
|
|
103
|
+
"mcpServers": {
|
|
104
|
+
"runner-dev": {
|
|
105
|
+
"command": "npx",
|
|
106
|
+
"args": ["@bluelibs/runner-dev", "mcp"],
|
|
107
|
+
"env": {
|
|
108
|
+
"ENDPOINT": "http://localhost:1337/graphql",
|
|
109
|
+
"ALLOW_MUTATIONS": "false"
|
|
110
|
+
}
|
|
111
|
+
}
|
|
112
|
+
}
|
|
113
|
+
}
|
|
114
|
+
```
|
|
115
|
+
|
|
116
|
+
Authenticated variant:
|
|
117
|
+
|
|
118
|
+
```json
|
|
119
|
+
{
|
|
120
|
+
"mcpServers": {
|
|
121
|
+
"runner-dev": {
|
|
122
|
+
"command": "npx",
|
|
123
|
+
"args": ["@bluelibs/runner-dev", "mcp"],
|
|
124
|
+
"env": {
|
|
125
|
+
"ENDPOINT": "http://localhost:1337/graphql",
|
|
126
|
+
"HEADERS": "{\"Authorization\":\"Bearer <token>\"}",
|
|
127
|
+
"ALLOW_MUTATIONS": "false"
|
|
128
|
+
}
|
|
129
|
+
}
|
|
130
|
+
}
|
|
131
|
+
}
|
|
132
|
+
```
|
|
133
|
+
|
|
134
|
+
Direct launch:
|
|
135
|
+
|
|
136
|
+
```bash
|
|
137
|
+
ENDPOINT=http://localhost:1337/graphql npx -y @bluelibs/runner-dev mcp
|
|
138
|
+
SNAPSHOT_FILE=./runner-dev-catalog/snapshot.json npx -y @bluelibs/runner-dev mcp
|
|
139
|
+
```
|
|
140
|
+
|
|
141
|
+
First checks, in order:
|
|
142
|
+
|
|
143
|
+
1. `graphql.ping`
|
|
144
|
+
2. `project.overview`
|
|
145
|
+
3. `graphql.query`
|
|
146
|
+
|
|
147
|
+
Shell equivalents:
|
|
148
|
+
|
|
149
|
+
```bash
|
|
150
|
+
ENDPOINT=http://localhost:1337/graphql npx @bluelibs/runner-dev ping
|
|
151
|
+
ENDPOINT=http://localhost:1337/graphql npx @bluelibs/runner-dev overview --details 5
|
|
152
|
+
ENDPOINT=http://localhost:1337/graphql npx @bluelibs/runner-dev query 'query { tasks { id } resources { id } }' --format pretty
|
|
153
|
+
```
|
|
154
|
+
|
|
155
|
+
Notes:
|
|
156
|
+
|
|
157
|
+
- Keep `ALLOW_MUTATIONS=false` unless you intentionally need write access.
|
|
158
|
+
- Set `HEADERS` if the GraphQL endpoint requires auth.
|
|
159
|
+
- `SNAPSHOT_FILE` enables read-only MCP over an exported catalog without starting the app.
|
|
160
|
+
- If `graphql.ping` fails, check that the app is running, the port is correct, and `HEADERS` is valid JSON.
|
|
161
|
+
|
|
162
|
+
## First Things To Inspect
|
|
163
|
+
|
|
164
|
+
If the app is running:
|
|
165
|
+
|
|
166
|
+
- Start from `/docs/data` when the question is about what the docs UI or AI sees.
|
|
167
|
+
- Use `project.overview` for a fast topology summary.
|
|
168
|
+
- Use GraphQL for focused reads, not giant dumps.
|
|
169
|
+
- Use live telemetry only with narrow limits such as `last: 10`.
|
|
170
|
+
|
|
171
|
+
Minimal topology query:
|
|
172
|
+
|
|
173
|
+
```graphql
|
|
174
|
+
query FirstLook {
|
|
175
|
+
tasks {
|
|
176
|
+
id
|
|
177
|
+
}
|
|
178
|
+
resources {
|
|
179
|
+
id
|
|
180
|
+
}
|
|
181
|
+
hooks {
|
|
182
|
+
id
|
|
183
|
+
}
|
|
184
|
+
diagnostics {
|
|
185
|
+
severity
|
|
186
|
+
code
|
|
187
|
+
message
|
|
188
|
+
}
|
|
189
|
+
}
|
|
190
|
+
```
|
|
191
|
+
|
|
192
|
+
Minimal live query:
|
|
193
|
+
|
|
194
|
+
```graphql
|
|
195
|
+
query LiveFirstLook {
|
|
196
|
+
live {
|
|
197
|
+
logs(last: 10) {
|
|
198
|
+
level
|
|
199
|
+
message
|
|
200
|
+
correlationId
|
|
201
|
+
}
|
|
202
|
+
errors(last: 10) {
|
|
203
|
+
sourceKind
|
|
204
|
+
message
|
|
205
|
+
correlationId
|
|
206
|
+
}
|
|
207
|
+
}
|
|
208
|
+
}
|
|
209
|
+
```
|
|
210
|
+
|
|
211
|
+
## High-Value Source Files
|
|
212
|
+
|
|
213
|
+
When working inside `@bluelibs/runner-dev`, start here:
|
|
214
|
+
|
|
215
|
+
- `src/resources/routeHandlers/getDocsData.ts` for docs payloads and bundled context
|
|
216
|
+
- `src/resources/models/Introspector.ts` and related store initialization for topology
|
|
217
|
+
- `src/mcp/tools/*` for MCP help/query behavior
|
|
218
|
+
- `src/resources/live.resource.ts` and telemetry resources for live data
|
|
219
|
+
- `src/ui/src/components/Documentation/*` for docs/chat UI behavior
|
|
220
|
+
- `src/ui/src/components/Documentation/components/TopologyPanel.tsx` and `src/ui/src/components/Documentation/utils/topologyGraph.ts` for topology graph projections and rendering
|
|
221
|
+
- `src/resources/swap.resource.ts` and `src/resources/swap.tools.ts` for hot-swapping surfaces
|
|
222
|
+
|
|
223
|
+
## Core Surfaces
|
|
224
|
+
|
|
225
|
+
- Docs UI: the browser surface for architecture, live data, and AI assistance
|
|
226
|
+
- Topology graph: a focused lens for blast-radius analysis and resource mindmaps
|
|
227
|
+
- `/docs/data`: the JSON payload feeding docs UI and in-app AI context
|
|
228
|
+
- GraphQL: the main runtime introspection surface
|
|
229
|
+
- MCP: the fastest AI-native access path when the app is already running
|
|
230
|
+
- Live telemetry: logs, emissions, errors, runs, and correlation-driven inspection
|
|
231
|
+
- Swap tooling: controlled runtime task replacement and restoration
|
|
232
|
+
|
|
233
|
+
## Current Compatibility Notes
|
|
234
|
+
|
|
235
|
+
Assume current Runner reality, not old examples:
|
|
236
|
+
|
|
237
|
+
- Identity moved from `asyncContexts.tenant` to `asyncContexts.identity`; related middleware uses `identityScope`.
|
|
238
|
+
- Hook targets may come from selectors such as `subtreeOf(...)` or predicates, not only raw `hook.on`.
|
|
239
|
+
- Event Lane routing comes from `r.eventLane(...).applyTo([...])`, not old lane-tag assumptions.
|
|
240
|
+
- Runner supports `run(app, { signal })`, `run(app, { identity })`, and `runtime.dispose({ force: true })`.
|
|
241
|
+
|
|
242
|
+
## AI Working Strategy
|
|
243
|
+
|
|
244
|
+
- Use the Runner skill for framework design or core Runner contracts.
|
|
245
|
+
- Use runner-dev context for tooling behavior, docs payloads, MCP, GraphQL, telemetry, and UI integration.
|
|
246
|
+
- Prefer focused tests first: `npm run test -- docs.data`, `npm run test -- mcp`, `npm run test -- live`, or another narrow suite near the touched surface.
|
|
247
|
+
- Use `pure: true` when validating swapped task behavior safely.
|
|
248
|
+
- Avoid huge live queries, broad schema dumps, or mutation access unless the task truly needs them.
|
|
249
|
+
|
|
250
|
+
## Go Deeper
|
|
251
|
+
|
|
252
|
+
- Read `README.md` for installation, CLI, and broader examples.
|
|
253
|
+
- Read the Runner skill for framework-level architecture and contracts.
|
|
254
|
+
- Read source near the touched surface before broadening to unrelated subsystems.
|
|
@@ -0,0 +1,27 @@
|
|
|
1
|
+
---
|
|
2
|
+
name: Runner DevTools Usage
|
|
3
|
+
description: Use when working on @bluelibs/runner-dev itself, especially for docs UI behavior, introspection resources, GraphQL tooling, MCP helpers, telemetry surfaces, and agent-facing documentation. Start here when the task needs runner-dev-specific context instead of the general Runner framework skill.
|
|
4
|
+
---
|
|
5
|
+
|
|
6
|
+
# Runner Dev
|
|
7
|
+
|
|
8
|
+
Start with `./references/readmes/COMPACT_GUIDE.md`.
|
|
9
|
+
It is the canonical compact runner-dev guide and should stay aligned with the current toolkit behavior.
|
|
10
|
+
|
|
11
|
+
Use `./references/README.md` when the task needs installation, CLI, or broader user-facing usage details.
|
|
12
|
+
Use `./references/readmes/API_REFERENCE.md` when the task needs the current GraphQL surface used by docs or MCP flows.
|
|
13
|
+
|
|
14
|
+
Reference layout:
|
|
15
|
+
|
|
16
|
+
- `./references/README.md` mirrors the repo root `README.md`
|
|
17
|
+
- `./references/readmes/` mirrors the repo `readmes/` directory, including `COMPACT_GUIDE.md` and `API_REFERENCE.md`
|
|
18
|
+
|
|
19
|
+
Use this skill when the task involves:
|
|
20
|
+
|
|
21
|
+
- docs UI behavior, `/docs/data`, in-app documentation delivery, or the topology graph / blast-radius / mindmap views
|
|
22
|
+
- MCP helpers, GraphQL tooling, introspection resources, or chat context wiring
|
|
23
|
+
- live telemetry, hot-swapping, CLI surfaces, or other runner-dev tooling
|
|
24
|
+
- agent-facing documentation that must stay aligned with `readmes/COMPACT_GUIDE.md` and `README.md`
|
|
25
|
+
- GraphQL schema and MCP contract work grounded in `./references/readmes/API_REFERENCE.md`
|
|
26
|
+
|
|
27
|
+
Reach for the general Runner skill when the problem is about framework design rather than runner-dev's tooling surface.
|
|
@@ -0,0 +1,364 @@
|
|
|
1
|
+
# GraphQL API Reference
|
|
2
|
+
|
|
3
|
+
This document tracks the current `@bluelibs/runner-dev` GraphQL surface.
|
|
4
|
+
It has been refreshed for the current SDL and focuses on the entry points people actually reach for first: root queries, mutations, live telemetry, and the higher-signal topology types.
|
|
5
|
+
|
|
6
|
+
If you need the complete schema SDL instead of the guided summary below, print it directly from the current build:
|
|
7
|
+
|
|
8
|
+
```bash
|
|
9
|
+
# Against a running app
|
|
10
|
+
runner-dev schema sdl --endpoint http://localhost:1337/graphql
|
|
11
|
+
|
|
12
|
+
# Or in dry-run mode from a local entry file
|
|
13
|
+
runner-dev schema sdl --entry-file src/main.ts
|
|
14
|
+
```
|
|
15
|
+
|
|
16
|
+
## Highlights
|
|
17
|
+
|
|
18
|
+
- Introspection spans tasks, hooks, resources, events, tags, errors, async contexts, middleware, run options, and interceptor ownership.
|
|
19
|
+
- Resource docs now include `isolation`, `subtree`, cooldown/ready/health flags, and resolved registrations.
|
|
20
|
+
- Task docs include durable workflow metadata, `flowShape`, RPC lane summary, and runtime interceptor ownership.
|
|
21
|
+
- Live telemetry includes logs, event emissions, errors, runs, process stats, and per-resource health reports.
|
|
22
|
+
- Mutations cover task swapping, unswapping, task/event invocation, file editing, and guarded eval.
|
|
23
|
+
|
|
24
|
+
## Query Root
|
|
25
|
+
|
|
26
|
+
The current `Query` type exposes:
|
|
27
|
+
|
|
28
|
+
- `root: Resource`
|
|
29
|
+
- `runOptions: RunOptions!`
|
|
30
|
+
- `interceptorOwners: InterceptorOwnersSnapshot!`
|
|
31
|
+
- `all(idIncludes: ID): [BaseElement!]!`
|
|
32
|
+
- `tags: [Tag!]!`
|
|
33
|
+
- `tag(id: ID!): Tag`
|
|
34
|
+
- `task(id: ID!): Task`
|
|
35
|
+
- `tasks(idIncludes: ID): [Task!]!`
|
|
36
|
+
- `hook(id: ID!): Hook`
|
|
37
|
+
- `hooks(idIncludes: ID): [Hook!]!`
|
|
38
|
+
- `resource(id: ID!): Resource`
|
|
39
|
+
- `resources(idIncludes: ID): [Resource!]!`
|
|
40
|
+
- `event(id: ID!): Event`
|
|
41
|
+
- `events(filter: EventFilterInput): [Event!]!`
|
|
42
|
+
- `middleware(id: ID!): Middleware`
|
|
43
|
+
- `middlewares(idIncludes: ID): [Middleware!]!`
|
|
44
|
+
- `taskMiddlewares(idIncludes: ID): [TaskMiddleware!]!`
|
|
45
|
+
- `resourceMiddlewares(idIncludes: ID): [ResourceMiddleware!]!`
|
|
46
|
+
- `error(id: ID!): Error`
|
|
47
|
+
- `errors(idIncludes: ID): [Error!]!`
|
|
48
|
+
- `asyncContext(id: ID!): AsyncContext`
|
|
49
|
+
- `asyncContexts(idIncludes: ID): [AsyncContext!]!`
|
|
50
|
+
- `live: Live!`
|
|
51
|
+
- `diagnostics: [Diagnostic!]!`
|
|
52
|
+
- `swappedTasks: [SwappedTask!]!`
|
|
53
|
+
|
|
54
|
+
### Common Query Filters
|
|
55
|
+
|
|
56
|
+
- `EventFilterInput`
|
|
57
|
+
- `hasNoHooks: Boolean`
|
|
58
|
+
- `hideSystem: Boolean`
|
|
59
|
+
- `idIncludes: String`
|
|
60
|
+
- `RunFilterInput`
|
|
61
|
+
- `nodeKinds`, `nodeIds`, `ok`, `parentIds`, `rootIds`, `correlationIds`
|
|
62
|
+
- `LogFilterInput`
|
|
63
|
+
- `levels`, `messageIncludes`, `correlationIds`
|
|
64
|
+
- `EmissionFilterInput`
|
|
65
|
+
- `eventIds`, `emitterIds`, `correlationIds`
|
|
66
|
+
- `ErrorFilterInput`
|
|
67
|
+
- `sourceKinds`, `sourceIds`, `messageIncludes`, `correlationIds`
|
|
68
|
+
|
|
69
|
+
## Mutation Root
|
|
70
|
+
|
|
71
|
+
The current `Mutation` type exposes:
|
|
72
|
+
|
|
73
|
+
- `swapTask(taskId: ID!, runCode: String!): SwapResult!`
|
|
74
|
+
- `unswapTask(taskId: ID!): SwapResult!`
|
|
75
|
+
- `unswapAllTasks: [SwapResult!]!`
|
|
76
|
+
- `invokeTask(taskId: ID!, inputJson: String, pure: Boolean = false, evalInput: Boolean = false): InvokeResult!`
|
|
77
|
+
- `invokeEvent(eventId: ID!, inputJson: String, evalInput: Boolean = false): InvokeEventResult!`
|
|
78
|
+
- `editFile(path: String!, content: String!): EditFileResult!`
|
|
79
|
+
- `eval(code: String!): EvalResult!`
|
|
80
|
+
|
|
81
|
+
### Mutation Notes
|
|
82
|
+
|
|
83
|
+
- `swapTask` replaces a task's `run()` implementation at runtime.
|
|
84
|
+
- `invokeTask` supports `pure: true` to bypass middleware.
|
|
85
|
+
- `editFile` accepts structured paths such as `workspace:src/index.ts`.
|
|
86
|
+
- `eval` is guarded and disabled in production unless `RUNNER_DEV_EVAL=1`.
|
|
87
|
+
|
|
88
|
+
## Core Types
|
|
89
|
+
|
|
90
|
+
### BaseElement
|
|
91
|
+
|
|
92
|
+
Shared across tasks, hooks, resources, middleware, events, tags, errors, and async contexts:
|
|
93
|
+
|
|
94
|
+
- `id`
|
|
95
|
+
- `meta`
|
|
96
|
+
- `filePath`
|
|
97
|
+
- `fileContents(startLine, endLine)`
|
|
98
|
+
- `markdownDescription`
|
|
99
|
+
- `isPrivate`
|
|
100
|
+
- `visibilityReason`
|
|
101
|
+
- `tags`
|
|
102
|
+
- `tagsDetailed`
|
|
103
|
+
|
|
104
|
+
Many concrete element types also expose:
|
|
105
|
+
|
|
106
|
+
- `coverage`
|
|
107
|
+
- `coverageContents`
|
|
108
|
+
- `registeredBy`
|
|
109
|
+
- resolved variants such as `registeredByResolved`
|
|
110
|
+
|
|
111
|
+
### Task
|
|
112
|
+
|
|
113
|
+
Key fields:
|
|
114
|
+
|
|
115
|
+
- `dependsOn`, `dependsOnResolved`
|
|
116
|
+
- `middleware`, `middlewareResolved`, `middlewareResolvedDetailed`
|
|
117
|
+
- `emits`, `emitsResolved`
|
|
118
|
+
- `inputSchema`, `inputSchemaReadable`
|
|
119
|
+
- `rpcLane`
|
|
120
|
+
- `interceptorCount`, `hasInterceptors`, `interceptorOwnerIds`
|
|
121
|
+
- `runs(afterTimestamp, last, filter)`
|
|
122
|
+
- `isDurable`, `durableResource`, `flowShape`
|
|
123
|
+
- `overriddenBy`, `registeredBy`
|
|
124
|
+
|
|
125
|
+
The middleware usage objects now include subtree provenance details:
|
|
126
|
+
|
|
127
|
+
- `TaskMiddlewareUsage.id`
|
|
128
|
+
- `TaskMiddlewareUsage.config`
|
|
129
|
+
- `TaskMiddlewareUsage.origin`
|
|
130
|
+
- `TaskMiddlewareUsage.subtreeOwnerId`
|
|
131
|
+
- `TaskMiddlewareUsage.node`
|
|
132
|
+
|
|
133
|
+
### Hook
|
|
134
|
+
|
|
135
|
+
Key fields:
|
|
136
|
+
|
|
137
|
+
- `events`
|
|
138
|
+
- `event` (deprecated singular form)
|
|
139
|
+
- `hookOrder`
|
|
140
|
+
- `dependsOn`, `depenendsOnResolved`
|
|
141
|
+
- `middleware`, `middlewareResolvedDetailed`
|
|
142
|
+
- `runs(...)`
|
|
143
|
+
|
|
144
|
+
### Resource
|
|
145
|
+
|
|
146
|
+
Key fields:
|
|
147
|
+
|
|
148
|
+
- `dependsOn`, `dependsOnResolved`
|
|
149
|
+
- `config`, `configSchema`, `configSchemaReadable`
|
|
150
|
+
- `context`
|
|
151
|
+
- `middleware`, `middlewareResolvedDetailed`
|
|
152
|
+
- `overrides`, `overridesResolved`
|
|
153
|
+
- `registers`, `registersResolved`
|
|
154
|
+
- `usedBy`
|
|
155
|
+
- `emits`
|
|
156
|
+
- `registeredBy`, `registeredByResolved`
|
|
157
|
+
- `hasCooldown`, `hasReady`, `hasHealthCheck`
|
|
158
|
+
- `isolation`
|
|
159
|
+
- `subtree`
|
|
160
|
+
|
|
161
|
+
Important nested resource types:
|
|
162
|
+
|
|
163
|
+
- `ResourceIsolation`
|
|
164
|
+
- `deny`
|
|
165
|
+
- `only`
|
|
166
|
+
- `whitelist`
|
|
167
|
+
- `exports`
|
|
168
|
+
- `exportsMode`
|
|
169
|
+
- `ResourceSubtreePolicy`
|
|
170
|
+
- `tasks`
|
|
171
|
+
- `middleware`
|
|
172
|
+
- `resources`
|
|
173
|
+
- `hooks`
|
|
174
|
+
- `taskMiddleware`
|
|
175
|
+
- `resourceMiddleware`
|
|
176
|
+
- `events`
|
|
177
|
+
- `tags`
|
|
178
|
+
|
|
179
|
+
Subtree policy now covers identity-aware summaries too:
|
|
180
|
+
|
|
181
|
+
- `ResourceSubtreeTaskBranch.identity`
|
|
182
|
+
- `ResourceSubtreeMiddlewareScope.identityScope`
|
|
183
|
+
|
|
184
|
+
### Middleware
|
|
185
|
+
|
|
186
|
+
The generic `Middleware` type exposes the combined view used by the introspector:
|
|
187
|
+
|
|
188
|
+
- `autoApply`
|
|
189
|
+
- `emits`
|
|
190
|
+
- `configSchema`, `configSchemaReadable`
|
|
191
|
+
- `usedByTasks`, `usedByTasksResolved`, `usedByTasksDetailed`
|
|
192
|
+
- `usedByResources`, `usedByResourcesResolved`, `usedByResourcesDetailed`
|
|
193
|
+
|
|
194
|
+
Specialized views:
|
|
195
|
+
|
|
196
|
+
- `TaskMiddleware.usedBy`
|
|
197
|
+
- `TaskMiddleware.usedByDetailed`
|
|
198
|
+
- `ResourceMiddleware.usedBy`
|
|
199
|
+
- `ResourceMiddleware.usedByDetailed`
|
|
200
|
+
|
|
201
|
+
### Event
|
|
202
|
+
|
|
203
|
+
Key fields:
|
|
204
|
+
|
|
205
|
+
- `payloadSchema`, `payloadSchemaReadable`
|
|
206
|
+
- `transactional`
|
|
207
|
+
- `parallel`
|
|
208
|
+
- `eventLane`
|
|
209
|
+
- `rpcLane`
|
|
210
|
+
- `emittedBy`, `emittedByResolved`
|
|
211
|
+
- `listenedToBy`, `listenedToByResolved`
|
|
212
|
+
- `registeredBy`, `registeredByResolved`
|
|
213
|
+
|
|
214
|
+
### Tag
|
|
215
|
+
|
|
216
|
+
Tags now fan out across the full model:
|
|
217
|
+
|
|
218
|
+
- `configSchema`
|
|
219
|
+
- `config`
|
|
220
|
+
- `targets`
|
|
221
|
+
- `tasks`
|
|
222
|
+
- `hooks`
|
|
223
|
+
- `resources`
|
|
224
|
+
- `taskMiddlewares`
|
|
225
|
+
- `resourceMiddlewares`
|
|
226
|
+
- `events`
|
|
227
|
+
- `errors`
|
|
228
|
+
- `all`
|
|
229
|
+
|
|
230
|
+
### Error
|
|
231
|
+
|
|
232
|
+
Key fields:
|
|
233
|
+
|
|
234
|
+
- `dataSchema`
|
|
235
|
+
- `thrownBy`
|
|
236
|
+
|
|
237
|
+
### AsyncContext
|
|
238
|
+
|
|
239
|
+
Key fields:
|
|
240
|
+
|
|
241
|
+
- `serialize`
|
|
242
|
+
- `parse`
|
|
243
|
+
- `usedBy`
|
|
244
|
+
- `requiredBy`
|
|
245
|
+
- `providedBy`
|
|
246
|
+
|
|
247
|
+
### RunOptions
|
|
248
|
+
|
|
249
|
+
Runner-dev now exposes effective startup/runtime settings through `runOptions`:
|
|
250
|
+
|
|
251
|
+
- `mode`
|
|
252
|
+
- `debug`, `debugMode`
|
|
253
|
+
- `logsEnabled`, `logsPrintThreshold`, `logsPrintStrategy`, `logsBuffer`
|
|
254
|
+
- `errorBoundary`
|
|
255
|
+
- `shutdownHooks`
|
|
256
|
+
- `dryRun`
|
|
257
|
+
- `lazy`
|
|
258
|
+
- `lifecycleMode`
|
|
259
|
+
- `dispose`
|
|
260
|
+
- `executionContext`
|
|
261
|
+
- `hasOnUnhandledError`
|
|
262
|
+
- `rootId`
|
|
263
|
+
|
|
264
|
+
Nested types:
|
|
265
|
+
|
|
266
|
+
- `RunDisposeOptions`
|
|
267
|
+
- `totalBudgetMs`
|
|
268
|
+
- `drainingBudgetMs`
|
|
269
|
+
- `cooldownWindowMs`
|
|
270
|
+
- `RunExecutionContextOptions`
|
|
271
|
+
- `enabled`
|
|
272
|
+
- `cycleDetection`
|
|
273
|
+
|
|
274
|
+
### InterceptorOwnersSnapshot
|
|
275
|
+
|
|
276
|
+
Useful when debugging `taskDependency.intercept(...)` and middleware interceptors:
|
|
277
|
+
|
|
278
|
+
- `tasksById`
|
|
279
|
+
- `middleware.globalTaskInterceptorOwnerIds`
|
|
280
|
+
- `middleware.globalResourceInterceptorOwnerIds`
|
|
281
|
+
- `middleware.perTaskMiddlewareInterceptorOwnerIds`
|
|
282
|
+
- `middleware.perResourceMiddlewareInterceptorOwnerIds`
|
|
283
|
+
|
|
284
|
+
## Live Telemetry
|
|
285
|
+
|
|
286
|
+
`live: Live!` exposes:
|
|
287
|
+
|
|
288
|
+
- `memory: MemoryStats!`
|
|
289
|
+
- `cpu: CpuStats!`
|
|
290
|
+
- `eventLoop(reset: Boolean): EventLoopStats!`
|
|
291
|
+
- `gc(windowMs: Float): GcStats!`
|
|
292
|
+
- `logs(afterTimestamp, last, filter): [LogEntry!]!`
|
|
293
|
+
- `emissions(afterTimestamp, last, filter): [EmissionEntry!]!`
|
|
294
|
+
- `errors(afterTimestamp, last, filter): [ErrorEntry!]!`
|
|
295
|
+
- `runs(afterTimestamp, last, filter): [RunRecord!]!`
|
|
296
|
+
- `healthReport: ResourceHealthReport`
|
|
297
|
+
|
|
298
|
+
Supporting types include:
|
|
299
|
+
|
|
300
|
+
- `LogEntry`
|
|
301
|
+
- `EmissionEntry`
|
|
302
|
+
- `ErrorEntry`
|
|
303
|
+
- `RunRecord`
|
|
304
|
+
- `ResourceHealthReport`
|
|
305
|
+
- `ResourceHealthTotals`
|
|
306
|
+
- `ResourceHealthEntry`
|
|
307
|
+
|
|
308
|
+
## Durable Workflow Types
|
|
309
|
+
|
|
310
|
+
Durable tasks now surface extracted structure without execution:
|
|
311
|
+
|
|
312
|
+
- `DurableFlowShape.nodes`
|
|
313
|
+
- `FlowStepNode`
|
|
314
|
+
- `FlowSleepNode`
|
|
315
|
+
- `FlowSignalNode`
|
|
316
|
+
- `FlowEmitNode`
|
|
317
|
+
- `FlowSwitchNode`
|
|
318
|
+
- `FlowNoteNode`
|
|
319
|
+
|
|
320
|
+
## Diagnostics And Swap Types
|
|
321
|
+
|
|
322
|
+
- `Diagnostic`
|
|
323
|
+
- `severity`
|
|
324
|
+
- `code`
|
|
325
|
+
- `message`
|
|
326
|
+
- `nodeId`
|
|
327
|
+
- `nodeKind`
|
|
328
|
+
- `SwapResult`
|
|
329
|
+
- `SwappedTask`
|
|
330
|
+
- `InvokeResult`
|
|
331
|
+
- `InvokeEventResult`
|
|
332
|
+
- `EvalResult`
|
|
333
|
+
- `EditFileResult`
|
|
334
|
+
|
|
335
|
+
## Enums Worth Knowing
|
|
336
|
+
|
|
337
|
+
- `LogLevelEnum`
|
|
338
|
+
- `trace`, `debug`, `info`, `warn`, `error`, `fatal`, `log`
|
|
339
|
+
- `SourceKindEnum`
|
|
340
|
+
- `TASK`, `HOOK`, `RESOURCE`, `MIDDLEWARE`, `INTERNAL`
|
|
341
|
+
- `NodeKindEnum`
|
|
342
|
+
- `TASK`, `HOOK`
|
|
343
|
+
- `MiddlewareApplyScope`
|
|
344
|
+
- `WHERE_VISIBLE`, `SUBTREE`
|
|
345
|
+
- `IsolationExportsMode`
|
|
346
|
+
- `UNSET`, `NONE`, `LIST`
|
|
347
|
+
- `TagTarget`
|
|
348
|
+
- `TASKS`, `RESOURCES`, `EVENTS`, `HOOKS`, `TASK_MIDDLEWARES`, `RESOURCE_MIDDLEWARES`, `ERRORS`
|
|
349
|
+
- `ResourceHealthStatus`
|
|
350
|
+
- `healthy`, `degraded`, `unhealthy`
|
|
351
|
+
|
|
352
|
+
## SDL Regeneration
|
|
353
|
+
|
|
354
|
+
When this file drifts, regenerate your view from the actual schema rather than hand-guessing:
|
|
355
|
+
|
|
356
|
+
```bash
|
|
357
|
+
runner-dev schema sdl --endpoint http://localhost:1337/graphql
|
|
358
|
+
```
|
|
359
|
+
|
|
360
|
+
Or from the repo without a running server:
|
|
361
|
+
|
|
362
|
+
```bash
|
|
363
|
+
runner-dev schema sdl --entry-file src/main.ts
|
|
364
|
+
```
|